Anteprima
Vedrai una selezione di 11 pagine su 50
Paniere con risposte aperte - Calcolatori elettronici e sistemi operativi (2023/2024) Pag. 1 Paniere con risposte aperte - Calcolatori elettronici e sistemi operativi (2023/2024) Pag. 2
Anteprima di 11 pagg. su 50.
Scarica il documento per vederlo tutto.
Paniere con risposte aperte - Calcolatori elettronici e sistemi operativi (2023/2024) Pag. 6
Anteprima di 11 pagg. su 50.
Scarica il documento per vederlo tutto.
Paniere con risposte aperte - Calcolatori elettronici e sistemi operativi (2023/2024) Pag. 11
Anteprima di 11 pagg. su 50.
Scarica il documento per vederlo tutto.
Paniere con risposte aperte - Calcolatori elettronici e sistemi operativi (2023/2024) Pag. 16
Anteprima di 11 pagg. su 50.
Scarica il documento per vederlo tutto.
Paniere con risposte aperte - Calcolatori elettronici e sistemi operativi (2023/2024) Pag. 21
Anteprima di 11 pagg. su 50.
Scarica il documento per vederlo tutto.
Paniere con risposte aperte - Calcolatori elettronici e sistemi operativi (2023/2024) Pag. 26
Anteprima di 11 pagg. su 50.
Scarica il documento per vederlo tutto.
Paniere con risposte aperte - Calcolatori elettronici e sistemi operativi (2023/2024) Pag. 31
Anteprima di 11 pagg. su 50.
Scarica il documento per vederlo tutto.
Paniere con risposte aperte - Calcolatori elettronici e sistemi operativi (2023/2024) Pag. 36
Anteprima di 11 pagg. su 50.
Scarica il documento per vederlo tutto.
Paniere con risposte aperte - Calcolatori elettronici e sistemi operativi (2023/2024) Pag. 41
Anteprima di 11 pagg. su 50.
Scarica il documento per vederlo tutto.
Paniere con risposte aperte - Calcolatori elettronici e sistemi operativi (2023/2024) Pag. 46
1 su 50
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

RET

Scrivere un programma in Assembly GAS che conti il numero di occorrenze ad uno in una doppia parola

GLOBAL _main

DATA

dato: LONG 0X0F0F0101

conteggio: BYTE0X00

TEXT

main: NOP

MOVB $0x00,%CL

MOVL dato, %EAX

comp: CMPL $0X00, %EAX

JE fine

SHRL %EAX

ADCB $0x0, %CL

JMP comp

fine: MOVB %CL, conteggio

RET

Si scriva un programma in Assembly GAS che calcola il fattoriale di un numero naturale (da 1 a 9)

Scrivere un programma Assembly GAS che conta il numero di occorrenze della lettera "e" in una stringa

specificata come parametro

Disegnare e discutere il diagramma temporale di un ciclo di scrittura in memoria (oppure in I/O) di un

semplice processore a 8 bit.

La scrittura dalla memoria, in questo caso, il processore specifica attraversoA31-A0 l’indirizzo della locazione

interessata. Contemporaneamente mettere a disposizione il byte da scrivere sui piedini D7-D0.

Successivamente viene generato un impulso di scrittura, di una durata di alcune decide di nano secondi,

attraverso il piedino /MWR. Sul fronte in salita dell’impulso, viene il banco di memoria interessato deve

prelevare il byte a disposizione su D7-D0. Durante il ciclo di lettura, i piedini /MRD, /IORD e /IOWR restano

inattivi. Per scrivere su una porta di I/O, avviene in maniera analoga alla precedente, con l’unica differenza

che l’indirizzo va specificato su 16 bit e quindi si utilizza solo la parte meno significativa dei bit di indirizzo

(A15-A0, mentre gli altri restano a zero). Ovviamente, l’impulso di scrittura viene mandato sul piedino

/IOWR

Disegnare e discutere il diagramma temporale di un ciclo di lettura in memoria (oppure in I/O) di un

semplice processore a 8 bit

La lettura può avvenire in memoria, in questo caso il processore, sui piedini A31-A0 specifica l’indirizzo della

locazione di memoria. Si genera quindi un impulso di lettura attraverso il piedino /MRD sul fronte di salita si

memorizza il byte depositato dal banco di memoria sui piedini D7-D0. Durante la lettura, i piedini /MWR,

/IORD e /IOWR restano inattivi. È possibile leggere anche da una periferica (sullo spazio di I/O). In questo

caso, del tutto analogo al precedente, l’indirizzo va specificato su 16 bit e quindi si utilizza la parte meno

significativa dei bit di indirizzo. Ovviamente la lettura è fatta tramite il piedino /IORD.

Discutere come un banco di memoria da 1Mx8 può essere montato nello spazio di memoria. Disegnare lo

schema corretto di montaggio.

Una interfaccia appare al programmatore come una piccola memoria costituita da registri di un byte. Per

indirizzare lo spazio di I/O si utilizzerà l’indirizzo interno del registro cui si somma l’indirizzo base

riconosciuto dalla maschera con i 14 bit più significativi.

Perchè il processore PC ha solo 30 piedini di indirizzo (A31-A2) pur indirizzando uno spazio di memoria da

4GB?

Oltre ai 30 (A31-A2) piedini del bus di indirizzo, sono utilizzati i 4 (/BE3-/BE0) piedini di bus-enable; i primi

indirizzano alla riga, i secondi selezionano la locazione o le locazioni da prendere in considerazione

Come viene vista una interfaccia nello spazio di I/O organizzato a linee a 32 bit. C'è differenza nel

montaggio e nella visione logica al variare della dimensione dei registri interni?

Le interfacce sono viste come delle piccole memorie con registri. I registri possono essere a 8, 16 o 32 bit. In

base alla dimensione dei registri, una interfaccia è collegata a tutto il bus (registro 32 bit), ai 16 bit (registro

a 16 bit) o agli 8 bit (registro a 8 bit) meno significativi. I registri delle interfacce stanno su parti

corrispondenti a linee consecutive. Quanto detto significa che una interfaccia con registro a 32 bit occupa

una intera linea, un registro a 16 bit occupa le prime due locazioni meno significative di una linea e un

registro a 8 bit la locazione meno significativa di una linea. Gli indirizzi di tali registri sono sempre multipli di

4.

Disegnare come il controllore del bus locale si collega al processore. Specificare quali sono i piedini che

formano effettivamente il bus.

Il latch per il pilotaggio degli indirizzi, il transceiver per il pilotaggio dei dati, il circuito di abilitazione che

produce l’abilitazione per i circuiti precedenti ed il circuito di comando che invia i comandi veri e propri

costituiscono il controllore del bus. A sinistra abbiamo i collegamenti con i piedini del processore ed a destra

il bus vero e proprio.

Come si può progettare il bus locale di un calcolatore che debba gestire uno spazio di memoria a 32 bit e

uno spazio di I/O a 32, 16 e 8 bit?

Il bus indirizzi può essere unico, deve comprendere una rete in grado di produrre i valori A1-A0 e di /BHE

partendo da /BE3-/BE0 secondo le tabelle: Anche il bus comandi può funzionare in maniera univoca. Per

quanto riguarda il bus dati, potrebbe essere:

Unico: in questo caso i piedini D31-D0 del processore sono connessi ai tre circuiti di pilotaggio, è

necessario un circuito che generi in maniera mutuamente esclusiva i segnali /EN, /E16 o /E8 in modo da

attivare correttamente tutto il bus, i 16 bit meno significativi oppure gli 8 bit meno significativi

Formato da 3 bus fisicamente distinti: con i bus a 16 e 8 bit esistano soltanto per lo spazio di I/O ed ogni

bus è pilotato dal suo specifico circuito. Nell’immagine a fianco il pilotaggio del bus dati unico con il circuito

R che produce i segnali A1, A0 e BHE da /BE3-/BE0 per selezionare correttamente la parte di bus dati da

utilizzare.

Disegnare lo schema dello specifico circuito di pilotaggio di un bus dati a 16 bit.

A sinistra abbiamo i piedini del processore che immagina di avere uno spazio esterno a 32 bit. In questo

spazio ogni linea è vista come due sotto linea individuate dal valore del bit A1: per A1=1 si individua la

semilinea alta, per A1=0 si individua la semilinea bassa. Le porte OR abilitano in modo mutuamente

esclusivo uno dei due transceiver in base al bit A1 ed al segnale /E16 (abilitazione del bus a 16 bit).Se si

abilita il transceiver superiore il contenuto del bus a 16 bit viene trasferito al processore tramite la semilinea

alta (A1=1), altrimenti il contenuto trasferito tramite la semilinea bassa (A1=0).Per selezionare il singolo

byte dal bus a 16 bit si utilizzano i segnali /BHE (Bus High Enable) e /BLE (Bus Low Enable) generati dalla

tabella:

Mostrare il codice Assembly del sottoprogramma di lettura (di scrittura) di un byte da una interfaccia e

come esso potrebbe essere richiamato da un main() scritto in C/C++.

.global inputb

inputb :

pushl %EAX

pushl %EDX

movl 12(%ESP),%EAX

inb %DX , %AL

movb %AL , (%EDX)

popl %EDX

popl %EAX

ret

Cosa si intende per programmazione mista? Discutere brevemente il paradigma di programmazione ad

essa associato.

I programmi scritti in linguaggi più ad alto livello, non possono accedere direttamente allo spazio di I/O. per

questo motivo si scrivono sottoprogrammi in assembly che possono essere richiamate da funzioni scritte in

linguaggi evoluti.

Discutere la differenza fra modalità testo e modalità grafica nella gestione dello schermo

Lo schermo appare suddiviso in righe e colonne, quelle di indice zero sono in alto a sinistra. Il punto di

incrocio è la posizione sullo schermo. In modalità testo ogni posizione è un carattere, in modalità grafica ad

ogni posizione si associa un pixel. Il numero di righe e colonne dipende dalla modalità di funzionamento.

Descrivere la tabella delle interruzioni e la struttura dei gate (o descrittori).

La tabella delle interruzioni è una porzione di memoria che contiene 256 entrate che prendono il nome di

descrittore o gate. L’indirizzo base è contenuto nel registro IDTR (Interrupt Descriptor Table Register). È

formato da 8 byte che contengono l’indirizzo della routine di interruzione e da un byte di accesso

(importanti i bit P e TI)

Perchè il meccanismo delle interruzioni si dice vettorizzato?

Si dice vettorizzato perchè ci sono 256 tipi dio interruzione,ogni interruzione ha associato un tipo che

determina l’accesso ad una specifica entrata della tabella delle interruzioni, l’esecuzione di una routine

dipende dal tipo dell’interruzione.

Le eccezioni e gli altri tipo di interruzioni vengono gestite alla stessa maniera?

No, per tutte le interruzioni, tranne le eccezione del processore, il valore di EIP salvato nella pila è

l’indirizzo della prossima istruzione da eseguire; l’istruzione corrente non è mai bloccata, si aspetta alla fine

l’aggiornamento di EIP. Le eccezioni del processore bloccano l’esecuzione dell’istruzione corrente, possono

essere di tre tipi:

Trap: vengono gestiti come le altre interruzioni alla fine dell’esecuzione dell’istruzione corrente. Un

esempio di trap è l’overflow durante l’istruzione INTO

Fault: si ha quando si incontrano anomalie nella fase di esecuzione di un’istruzione. Questa viene bloccata.

Nella pila si memorizza l’indirizzo dell’istruzione che ha sollevato l’eccezione. Anche quando un gate non è

presente il programma viene terminato

Abort: comporta la terminazione forzata dell’istruzione. In genere un abort si utilizza per problemi nelle

circuiterie.

Elencare i passi che il controllore APIC effettua per la gestione del meccanismo delle interruzioni

Il controllore APIC ad ogni nuova richiesta sui piedini di ingresso pone a 1 il bit di IRR corrispondente al tipo.

Per la gestione delle interruzioni, il controllore ripete ciclicamente:

Attende che il bit più significativo di IRR con valore 1 abbia una priorità maggiore del bit più significativo di

ISR con valore 1

Attiva il piedino /INTR

• Attende la risposta sul piedino /INTA e quando la riceve o Considera il bit più significativo di IRR (j-mo)o

Pone a 0 il j-mo bit più significativo di IRR ed a 1 il j-mo bit più significativo di ISRo Invia j (tipo

dell’interruzione) al processore sul piedino TP o Rimuove la richiesta di interruzione al processore

disattivando /INTR Ogni volta che via software riceve End Of Interrupt, azzera il bit più significativo di ISR di

valore 1. In sostanza il controllore permette la gestione delle richieste di interruzione annidate, un driver

può essere interrotto da una richiesta con priorità maggiore ma non da richieste di stessa o minore priorità.

Disegnare lo schema della circuiteria del controllore di interruzione APIC.

Un controllore APIC (Advanced Programmabile Interrupt Controller) consente la gestione avanza di richieste

multiple di interrupt da diverse interfacce nel calcolatore. Sui 24 piedini (IR0-IR23) di ingresso riceve le

richieste dalle interfacce e le comunica al processore tramite /INTR. Ogni piedino IR supporta più sorgenti di

interruzion

Dettagli
Publisher
A.A. 2023-2024
50 pagine
SSD Ingegneria industriale e dell'informazione ING-INF/01 Elettronica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Carlo9898 di informazioni apprese con la frequenza delle lezioni di Calcolatori elettronici e sistemi operativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università telematica "e-Campus" di Novedrate (CO) o del prof Ducange Pietro.