Anteprima
Vedrai una selezione di 21 pagine su 102
Appunti completi del corso di Calcolatori elettronici Pag. 1 Appunti completi del corso di Calcolatori elettronici Pag. 2
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 6
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 11
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 16
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 21
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 26
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 31
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 36
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 41
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 46
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 51
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 56
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 61
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 66
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 71
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 76
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 81
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 86
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 91
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 96
1 su 102
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Memoria

Una memoria si può pensare come un insieme di registri collegati come in figura 18. Questa rappresentazione, seppure molto conveniente, presenta un problema poiché ogni registro è associato a due segnali di controllo quindi può facilmente portare a una difficoltà nella gestione di tali bits.

Per semplificare il problema si può pensare di associare a ogni registro un numero identificativo progressivo; di tutti i registri che compongono la memoria ne sarà attivo solo uno alla volta, ovvero quello scelto da un ingresso su cui si fa passare il numero identificativo del registro in gioco. Una volta scelto l'indirizzo del registro, il comportamento della memoria sarà identico a quello del registro stesso.

La memoria rappresenta un sistema con il quale i processori vogliono dialogare, in particolare le azioni che i processori possono svolgere con la memoria sono due: lettura o scrittura.

scrittura. Quindi è banale affermare che la memoria possa avere un bit che identifichi la volontà di scrivere e un bit che indichi la volontà di leggere. Se il processore vuole leggere dalla memoria, esso le dovrà comunicare l'intenzione di leggere grazie al flag di (LD) e l'indirizzo da cui vuole leggere e si aspetterà un dato in uscita. Se il processore vuole scrivere sulla memoria, esso le dovrà comunicare l'intenzione di scrivere grazie al flag di (WR) e l'indirizzo su cui vuole scrivere e poi fornire il dato alla memoria. Quindi, il sistema memoria che si è descritto fin'ora presenta le seguenti caratteristiche: - un filo ingresso a bits con il quale poter abilitare uno tra 2 registri; - due fili a bits m corrispondenti ai canali di input e output dei dati e la cui dimensione è pari alla capacità dei singoli registri; - due segnali di controllo per alternare la fase di scrittura e di lettura; - infine è ovvia la presenza di un segnale diclock.m Di mDMEM on ALD STCLK2.3.5 Circuiti pre - ADE8 Sia analizzi più nel dettaglio il sistema a tre registri in figura 1834 Reti logiche Data Bus QD REGIE OE1IE CLK1 QD REGIE OE2IE CLK2 QD REGIE OE3IE CLK3 Si noti come se tutti gli Output Enable dei registri sono disattivati, sul Data Bus non sarà presente alcun valore poiché sarebbe una situazione equivalente a un filo non collegato a nulla. Se nel primo registro è presente il valore 45 e lo si vuole ricopiare nel terzo, supponendo a zero tutti i segnali di controllo, la procedura è la seguente 1. Si abilita OE così che 45 sia il valore presente sul Data Bus; un eventuale fronte di salita del clock non cambia nulla poiché tutti gli Input Enable sono disattivati. 2. Abilitando IE al successivo fronte di salita del clock, il 45 viene memorizzato nel terzo registro. I segnali come IE, OE e clock fanno capo a una parte di circuito denominata controller, staccata dalla parte in cui sono presenti i registri e che prende il nome didata path. Quindi, si è visto come una combinazione di bits nel controller equivalga a un'azione nel data path al successivo fronte di salita del clock; quindi, se il controller è abbastanza veloce da cambiare la combinazione di bits nel tempo che intercorre tra due fronti successivi, si ottiene un'azione ogni fronte di clock. Per far sì di poter intervenire e cambiare dall'esterno il valore dei registri, si può pensare di ampliare il controller con un ingresso esterno semplicemente collegato come segue: Reti logiche Data Bus QD REG IE OE1 IE CLK1 QD D REG IE OE2 IE CLK2 QD REG IE OE3 IE CLK3 Per ora il circuito è in grado di mettere in pratica alcune operazioni di base. Un esempio di sequenza di azioni è riassumibile con il seguente algoritmo: R ← R ← R riceve il contenuto di R, OE = 1, IE = 1 R ← 37h R riceve il valore 37 esadecimale, Data = 37h, Data OE = 1, IE = 3 R ← R ← R riceve il contenuto di R, OE = 1, IE = 1

circuito fin'ora costruito riesce solo a memorizzare dati arrivati dall'esterno e spostarli tra un registro e l'altro; per potenziarne le capacità si può implementare una ALU nel sistema.

Gli ingressi e le uscite della ALU si interfacciano con il Data Bus tramite tre registri, due che contengono i dati in ingresso e uno che memorizza il dato in uscita; invece, il Carry in ingresso e il selettore dell'operazione sono segnali che faranno parte del controller.

Lo schema è quindi il seguente:

C SinData Bus C S Qin D ALUOUTyA IEQD ALUA ALU ALUOUTIE CLKB FGIEALUAIE CLK QD FLAGQD ALUB IEIE FLAGIE CLKALUBIE CLK 36 ALUOUTOE Reti logiche

In verità il registro ALUB può essere omesso in modo tale che la ALU abbia in ingresso il dato memorizzato in ALUA e il Data Bus, così da ottimizzare le operazioni.

Nella costruzione dell'architettura didattica d'esempio ADE8, è stato necessario scegliere quanti registri volti alla memorizzazione dei dati tenere: è

comprendere come ottenere un dato dalla memoria, si evidenziano le connessioni importanti per questa fase: - Il segnale di controllo "LD ACC" viene utilizzato per caricare il dato presente nel registro MDR nell'accumulatore ACC. - Il segnale di controllo "ACCIE" viene utilizzato per abilitare l'accumulatore ACC. - Il segnale di controllo "MDRIE" viene utilizzato per abilitare il registro MDR. - Il segnale di controllo "MDROE" viene utilizzato per abilitare l'output del registro MDR. - Il segnale di controllo "MARIE" viene utilizzato per abilitare il registro MAR. - Il segnale di controllo "CLK" viene utilizzato per sincronizzare le operazioni dei registri. Inoltre, sono presenti i seguenti componenti: - Un multiplexer (MUX) che seleziona tra il dato proveniente dalla memoria (QD) e il dato proveniente dall'accumulatore (ACC) da inviare al registro MDR. - Un registro MDR (Memory Data Register) che memorizza il dato proveniente dalla memoria o dall'accumulatore. - Un registro MAR (Memory Address Register) che memorizza l'indirizzo con cui interagire con la memoria. - Un bus di dati (MDRBus) utilizzato per il trasferimento dei dati tra il registro MDR e la memoria. - Un bus di indirizzi (MARBus) utilizzato per il trasferimento degli indirizzi tra il registro MAR e la memoria. Si noti che il testo fornito non specifica il tipo di memoria utilizzata né come avvengano le operazioni di scrittura sulla memoria.

leggere un dato dalla memoria l'algoritmo è il seguente:

  1. Si memorizza nel MAR l'indirizzo da cui si vuole leggere con meccanismi già visti in precedenza
  2. Si attiva MDRBusIE così che il dato contenuto all'indirizzo presente nel MAR vada in uscita dalla memoria e contemporaneamente in ingresso al MDR, di cui, così facendo, si è abilitato l'Input Enable
  3. Al successivo fronte di clock il dato dalla memoria verrà memorizzato nel MDR e quindi reso disponibile per il resto del data path

Per comprendere come memorizzare un dato in memoria, si evidenziano le connessioni importanti per questa fase:

38 Reti logiche
A MUX QD
MEM D ACCoD IEi ACCOEST LD ACCIE CLK
CLK QD MDR
IE MDRBusOE CLK QD MAR
MDRBusIE MDR
IE MAROE
MARIE CLK

Per salvare un valore in memoria l'algoritmo è il seguente:

  1. Si memorizza nel MAR l'indirizzo al quale si vuole scrivere con meccanismi già visti in precedenza
  2. Si memorizza nel MDR il dato da scrivere
Si abilita MDRBusOE così da far arrivare il dato memorizzato nel MDR all'ingresso della memoria che allo stesso tempo è stata predisposta a ricevere un dato in ingresso. Al successivo fronte di clock il dato viene salvato in memoria. 39ADE83 ADE83.1 Data path Con le conoscenze acquisite nella sezione precedente si può cominciare a costruire il datapath di ADE8; per adesso lo schema è il seguente: Data Bus 8ACC ALU AMDR MEM ALU MAR ALU OUT FLAG Nell'unità di controllo, parte del processore separata dal data path e per ora ancora non esplorata in dettaglio, è presente una stringa di bits corrispondenti ai vari segnali di controllo degli elementi del data path a cui, a ogni fronte di clock, corrisponde una micro operazione nel data path stesso. L'unità di controllo decide la forma della stringa di bits in base a una lista di azioni, scritta da un programmatore, e caricata in memoria. È verosimile che un programmatore, nello scrivere questo algoritmo, non pensi a qualibitsettare e quali resettare ma ragioni a un livello d'astrazione più alto. Si dice che il programmatore debba sapere i concetti dell'ISA (Instruction Set Architecture), ovvero la lista di macro operazioni che il processore è in grado di compiere. A esempio una macro operazione potrebbe essere la somma di due valori. Esempio 30. Mentre una micro operazione potrebbe essere spostare un valore da ACC ad ALUA. 40 ADE8. Il linguaggio con cui si può programmare ADE8 è il linguaggio assemblativo (Assembly) specifico per tale processore; il formato delle istruzioni in questo linguaggio è il seguente:
Dettagli
A.A. 2022-2023
102 pagine
SSD Ingegneria industriale e dell'informazione ING-INF/01 Elettronica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Filippo_Viappiani di informazioni apprese con la frequenza delle lezioni di Calcolatori elettronici 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à degli Studi di Modena e Reggio Emilia o del prof Vezzani Roberto.