Galleria mappe mentale Capitolo 5 Unità centrale di elaborazione
Questa è una mappa mentale relativa al Capitolo 5 Unità di elaborazione centrale, che riassume le funzioni e la struttura di base della CPU, il processo di esecuzione delle istruzioni, le funzioni e la struttura di base del percorso dei dati e altri punti di conoscenza.
Modificato alle 2024-01-16 15:53:05Questa è una mappa mentale su una breve storia del tempo. "Una breve storia del tempo" è un'opera scientifica popolare con un'influenza di vasta portata. Non solo introduce i concetti di base della cosmologia e della relatività, ma discute anche dei buchi neri e dell'espansione dell'universo. questioni scientifiche all’avanguardia come l’inflazione e la teoria delle stringhe.
Dopo aver letto "Il coraggio di essere antipatico", "Il coraggio di essere antipatico" è un libro filosofico che vale la pena leggere. Può aiutare le persone a comprendere meglio se stesse, a comprendere gli altri e a trovare modi per ottenere la vera felicità.
"Il coraggio di essere antipatico" non solo analizza le cause profonde di vari problemi nella vita, ma fornisce anche contromisure corrispondenti per aiutare i lettori a comprendere meglio se stessi e le relazioni interpersonali e come applicare la teoria psicologica di Adler nella vita quotidiana.
Questa è una mappa mentale su una breve storia del tempo. "Una breve storia del tempo" è un'opera scientifica popolare con un'influenza di vasta portata. Non solo introduce i concetti di base della cosmologia e della relatività, ma discute anche dei buchi neri e dell'espansione dell'universo. questioni scientifiche all’avanguardia come l’inflazione e la teoria delle stringhe.
Dopo aver letto "Il coraggio di essere antipatico", "Il coraggio di essere antipatico" è un libro filosofico che vale la pena leggere. Può aiutare le persone a comprendere meglio se stesse, a comprendere gli altri e a trovare modi per ottenere la vera felicità.
"Il coraggio di essere antipatico" non solo analizza le cause profonde di vari problemi nella vita, ma fornisce anche contromisure corrispondenti per aiutare i lettori a comprendere meglio se stessi e le relazioni interpersonali e come applicare la teoria psicologica di Adler nella vita quotidiana.
Capitolo 5 Unità centrale di elaborazione
processore
Funzioni della CPU e struttura di base
Funzioni della CPU
composizione
operatore
La funzione dell'operatore è quella di elaborare i dati.
controllore
La funzione del controller è quella di coordinare e controllare la sequenza di istruzioni per ciascun componente del computer per eseguire il programma, comprese le istruzioni di recupero, di analisi e di esecuzione delle istruzioni.
Funzioni specifiche
controllo dei comandi
Controllo del funzionamento
controllo del tempo
elaborazione dati
Gestione delle interruzioni
Struttura di base della CPU
operatore
Unità logica aritmetica
blocco note
registro di accumulo
Set di registri per uso generale
registro delle parole di stato del programma
cambio
contatore
controllore
contatore di programma
registro delle istruzioni
decodificatore di istruzioni
registro degli indirizzi di memoria
registro dei dati di memoria
sistema di cronometraggio
generatore di segnali di microoperazione
Processo di esecuzione delle istruzioni
ciclo di istruzioni
Ci sono operazioni di accesso alla CPU
Il ciclo di recupero serve per recuperare le istruzioni
Il ciclo di indirizzo indiretto serve per ottenere l'indirizzo effettivo (operando)
Il ciclo di esecuzione consiste nell'ottenere l'operando
Il ciclo di interruzione serve a salvare i punti di interruzione del programma
flusso di dati del ciclo di istruzioni
ciclo di recupero
PC → MAR → Bus indirizzi → Memoria principale La CU invia il comando di lettura → bus di controllo → memoria principale Memoria principale → bus dati → MDR → IR (istruzioni di memorizzazione) La CU invia un segnale di controllo → Il contenuto del PC aumenta di 1
Il compito del ciclo fetch è quello di prelevare il codice istruzione dalla memoria principale in base al contenuto del PC e memorizzarlo nell'IR.
ciclo di indirizzi indiretti
Ad(IR)(o MDR) → MAR → Bus indirizzi → Memoria principale La CU invia il comando di lettura → bus di controllo → memoria principale Memoria principale → bus dati → MDR (indirizzo effettivo di memorizzazione)
Il compito del ciclo di indirizzi indiretti è ottenere l'indirizzo effettivo dell'operando.
ciclo di esecuzione
Il compito del ciclo di esecuzione è prendere l'operando e generare il risultato dell'esecuzione attraverso l'operazione ALU secondo il codice operativo della parola di istruzione nell'IR.
ciclo di interruzione
La CU controlla il decremento di SP di 1, SP → MAR → bus indirizzi → memoria principale La CU invia il comando di scrittura → bus di controllo → memoria principale PC → MDR → Bus dati → Memoria principale (i punti di arresto del programma vengono salvati nella memoria principale) CU (indirizzo di ingresso della routine di servizio di interruzione) → PC
La CU invia l'indirizzo speciale della memoria utilizzata per salvare il punto di interruzione del programma (come il contenuto dello stack pointer) al MAR e lo invia al bus degli indirizzi. Quindi la CU invia un comando di scrittura alla memoria e invia il contenuto del PC (punto di interruzione del programma) al MAR all'MDR e infine il punto di interruzione del programma viene memorizzato tramite il bus dati. Inoltre, la CU deve anche inviare l'indirizzo di popolazione del programma di servizio di interruzione al PC per prepararsi al ciclo di recupero delle istruzioni del ciclo di istruzioni successivo.
Il compito del ciclo di interruzione è gestire le richieste di interruzione.
PC a tre fili (bus dati, bus indirizzi, bus di controllo).
Piano di esecuzione delle istruzioni
singolo ciclo di istruzioni
cicli multipli di istruzioni
Soluzione di pipeline
Funzioni del percorso dati e struttura di base
Funzioni del percorso dati
La funzione del percorso dati è realizzare lo scambio di dati tra le unità aritmetiche e i registri all'interno della CPU.
Struttura di base del percorso dati
Struttura basilare
percorso dati della struttura bus
Modalità bus singolo interno della CPU
Solo un componente può inviare dati contemporaneamente, altrimenti si verificheranno conflitti di segnale. La soluzione è: tutte le uscite dei componenti (e che conducono al bus o ad altre direzioni ma con conflitti di segnale) devono essere collegate al bus tramite porte a tre stati, ad eccezione dei componenti con la propria funzione di uscita a tre stati.
Poiché l'uscita di un componente logico combinatorio dipende solo dal suo ingresso, i terminali di ingresso e di uscita del componente logico combinatorio non possono essere collegati sullo stesso bus, altrimenti si verificheranno conflitti di segnale. La prima soluzione è aggiungere un registro (o latch) in modo che solo uno di tutti i terminali di ingresso e di uscita sia collegato direttamente allo stesso bus. La seconda soluzione è aumentare il numero di bus in modo che ciascun terminale di ingresso e uscita sia collegato a un bus diverso.
A, B e F non possono essere collegati allo stesso bus, quindi sono necessari 2 registri (o latch) aggiuntivi oppure viene adottata una struttura a tre bus oppure viene adottata una struttura a doppio bus e viene aggiunto un registro.
Le contraddizioni risolte aggiungendo registri e aggiungendo porte a tre stati sono diverse. Le porte a tre stati si concentrano sulla risoluzione dei conflitti sul bus, mentre i registri si concentrano sulla risoluzione dei conflitti sui componenti logici combinatori.
Modalità multi-bus interna della CPU
Approccio al percorso dati dedicato
Poiché lo stesso terminale di ingresso è collegato a più terminali di uscita del componente, per ricevere dati da un solo terminale di uscita del componente contemporaneamente, ciascun terminale di ingresso del componente deve essere collegato a un terminale di uscita del componente diverso tramite un multiplexer del componente il terminale di ingresso è collegato solo a un terminale di uscita del componente, tranne quando è collegata l'uscita del componente.
Poiché non ci sono conflitti di output, i GPR possono impostare due porte di lettura per migliorare le prestazioni di trasferimento dei dati.
Trasferimento dati tra registri
(PC)→MAR PCout e MARin sono validi, contenuto PC→MAR
Trasferimento dati tra memoria principale e CPU
(PC)→MAR PCout e MARin sono validi, l'indirizzo di comando corrente→MAR 1→R CU invia il comando di lettura MEM(MAR)→MDR MDRin è valido (MDR)→IR MDRout e IRin sono validi, il comando corrente→IR
Eseguire operazioni aritmetiche o logiche
(MDR)→MAR Sono validi MDRout e MARin, l'indirizzo effettivo dell'operando→MAR 1→R CU invia il comando di lettura MEM(MAR)→operando MDR dalla memoria→MDR (MDR)→Y MDRout e Yin sono validi, operando Y (ACC) (Y)→Z ACCout e ALUin sono validi, CU invia un comando di aggiunta ad ALU, il risultato→Z (Z)→ACC Zout e ACCin sono validi, il risultato→ACC
Il componente funzionale necessario per analizzare la fase dell'istruzione è il decodificatore dell'istruzione, ma non appartiene al percorso dati.
Percorso dati della struttura a bus singolo
A causa della struttura a bus singolo, l'unità aritmetica ALU nella figura utilizza due registri temporanei X e Z. dove X viene utilizzato per mettere in scena l'operando A dell'ALU. L'altro operando B dell'ALU proviene dal bus interno. Z viene utilizzato per memorizzare temporaneamente i risultati delle operazioni.
Il registro PSW è un registro di stato del programma, utilizzato per memorizzare i flag di stato operativo dell'ALU e i flag di stato temporanei verranno inviati al controller operativo.
I registri PC, AR, DR, IR, X, Z e il file di registro Reg sono collegati direttamente al bus interno. Inoltre i registri AR e DR sono collegati anche alla memoria MEM tramite il bus esterno.
In una struttura a bus il numero di trasferimenti di dati che possono avvenire contemporaneamente dipende dal numero di bus. Per una singola struttura bus, possono esserci più moduli sul bus che ricevono dati contemporaneamente, ma solo un modulo può inviare dati al bus in un determinato momento, altrimenti si verificheranno conflitti di dati.
Pertanto, i componenti collegati al bus richiedono il controllo dell'uscita per evitare conflitti di dati sul bus. Per questo motivo, tutti i componenti funzionali che escono sul bus in entrata nella figura utilizzano porte a tre stati per il controllo dell'uscita (indicate da frecce triangolari cave nella figura).
Segnali di controllo e loro funzioni
Istruzioni MIPS32 tipiche
Processo di esecuzione dell'istruzione lw
La funzione dell'istruzione lw è leggere una parola di memoria a 32 bit dalla memoria principale. Il codice assembly è lw rt, imm (rs)
L'indirizzo di accesso alla memoria è il registro corrispondente al campo rs più l'imm immediato con segno a 16 bit. Questo è un tipico indirizzamento indicizzato lw preleva 4 byte dalla corrispondente unità di memoria principale e li invia al registro rt per la memorizzazione.
Poiché la larghezza del bit del registro è di 32 bit, il segno dell'imm immediato a 16 bit deve essere esteso a 32 bit prima di poter essere inviato all'ALU per calcolare l'indirizzo di accesso alla memoria.
lw processo operativo delle istruzioni e segnali di controllo
L'operazione del ciclo di recupero del battito T3 M[AR] → DR può anche essere posizionata nel battito T2 e le due funzioni sono equivalenti. Ogni M[AR] → DR può essere accompagnato da una transazione di trasmissione sul bus su chip per migliorare la velocità di esecuzione delle istruzioni.
Flusso di esecuzione del comando sw
La funzione dell'istruzione sw è di scrivere una parola di memoria a 32 bit nella memoria principale. Il codice assembly è sw rt,imm(rs)
processo operativo del comando sw e segnali di controllo
Flusso di esecuzione dell'istruzione beq
L'istruzione beq è un'istruzione di salto condizionale e il codice assembly è beq rs,rt,imm. La funzione dell'istruzione beq è confrontare i valori dei registri rs e rt ed eseguire un salto di ramo se sono uguali.
Il valore di imm indica l'indirizzo di destinazione del ramo relativo all'istruzione successiva, che è il numero di istruzioni di PC 4. Pertanto, quando si calcola l'indirizzo di destinazione del ramo, il valore di PC (aggiornato a PC 4 durante la fase di recupero delle istruzioni) e il segno di imm dovrebbe essere esteso a 32 bit e poi lasciato. Vengono aggiunti i valori spostati di due bit Lo scopo dello spostamento di due bit a sinistra qui è quello di calcolare l'offset del byte.
processo operativo delle istruzioni beq e segnali di controllo
componenti del percorso dati
Componenti operativi (circuiti logici combinatori)
unità di elaborazione dati
L'unità di elaborazione dati è composta da circuiti logici combinatori, la cui uscita è correlata solo all'ingresso corrente ed è responsabile dell'elaborazione dei dati, come ALU, unità di estensione del segno, decodificatore, ecc.
Componenti di stato (circuiti logici sequenziali)
deposito statale
L'unità di memorizzazione dello stato (unità di stato) si riferisce a un'unità con funzione di memorizzazione, come memoria e registro.
Percorso dati tipico del processore a ciclo singolo
Un processore MIPS a ciclo singolo è un processore MIPS in cui tutte le istruzioni vengono completate in un ciclo di clock.
Sebbene il tempo di esecuzione di diverse istruzioni possa variare, in base al principio del barile, il ciclo di clock di un processore a ciclo singolo è determinato dall'istruzione che viene eseguita più lentamente.
Poiché il recupero e l'esecuzione delle istruzioni possono essere completati solo entro un ciclo di clock, qualsiasi risorsa nel percorso dati durante l'esecuzione delle istruzioni non può essere riutilizzata. Dovrebbero essere percorsi dati e risorse dedicati che devono essere utilizzati più volte (come i sommatori). è necessario impostarne multipli.
Sia le operazioni di recupero delle istruzioni che quelle di recupero degli operandi richiedono l'accesso alla memoria, quindi le istruzioni e i dati vengono archiviati rispettivamente nella memoria delle istruzioni e nella memoria dei dati per evitare conflitti di risorse.
Poiché il processore MIPS a ciclo singolo deve completare l'istruzione entro un ciclo di clock, il registro dell'istruzione IR non viene impostato, ma la parola dell'istruzione recuperata dalla memoria delle istruzioni viene analizzata direttamente. Altrimenti, il semplice recupero dell'istruzione nell'IR richiederà un clock ciclo.
Percorso dati dell'istruzione aritmetica di tipo R
Le istruzioni di operazione aritmetica e logica in MIPS sono istruzioni di tipo R. Di seguito viene presa come esempio l'istruzione di addizione. aggiungi rd,rs,rt #RTL descrizione della funzione: R[rs] R[rt] → R[rd]
Le componenti funzionali coinvolte nell'esecuzione delle istruzioni comprendono principalmente il file di registro e l'ALU. È sufficiente inviare i campi del registro sorgente rs e rt nella parola di istruzione letta dalla memoria delle istruzioni rispettivamente ai due terminali del numero di registro di lettura R1# e R2# del file di registro e inviare il campo del registro di destinazione rd al registro di scrittura del file di registro. Terminale numerico W#, i valori dei due registri sorgente letti dal file di registro vengono emessi all'unità aritmetica attraverso le porte R1 e R2 il campo funct nella parola di istruzione determina l'AluOp da controllare; ALU per eseguire l'operazione corrispondente (l'aggiunta deve essere selezionata qui). Il risultato viene inviato alla porta dati di scrittura WD del file di registro Quando arriva il fronte di salita del clock, il risultato dell'operazione verrà scritto nel registro di destinazione rd.
Percorso dati dell'istruzione di accesso alla memoria di tipo I
Le istruzioni di accesso alla memoria MIPS appartengono alle istruzioni di tipo I, incluso il recupero e la memorizzazione dei dati, prendendo come esempio le istruzioni di accesso alle parole. lw rt,imm16(rs) #RTL descrizione della funzione:M[R[rs] SignExt(imm16)] → R[rt] sw rt,imm16(rs) Descrizione della funzione #RTL: R[rt] → M[R[rs] SignExt(imm16)]
Il campo rs nella parola di istruzione viene ancora inviato all'estremità R1# del file di registro; il campo del registro di destinazione rt viene inviato all'estremità del numero di registro di scrittura W# del file di registro inoltre, il numero immediato a 16 bit imm16; deve essere convertito in 32 bit tramite l'unità di estensione del segno. Quindi viene inviato all'ALU e viene aggiunto al valore del registro indice rs per formare l'indirizzo di accesso finale. Quindi i dati nella memoria dati vengono letti e inviati a registrare il file scrivere la porta dati WD.
Inviare i campi rs e rt nella parola di istruzione rispettivamente alle estremità R1# e R2# del file di registro, convertire i dati immediati a 16 bit in 32 bit tramite l'unità di estensione del segno e inviarli all'ALU e aggiungerli a; il valore del registro indice rs Forma l'indirizzo finale della memoria principale invia il valore del registro rt letto dal file di registro alla porta dati di scrittura della memoria dati WD.
Funzioni del controller e principio di funzionamento
Struttura e funzione del controllore
La funzione principale
Recupera un'istruzione dalla memoria principale e indica la posizione dell'istruzione successiva nella memoria principale.
Decodifica o testa le istruzioni e genera segnali di controllo operativo corrispondenti per avviare azioni specifiche.
Dirige e controlla la direzione del flusso di dati tra CPU, memoria principale, dispositivi di input e output.
controller cablato
Schema della centralina cablata
Sorgente del segnale di ingresso CU
Le informazioni sull'istruzione generate decodificando il decodificatore dell'istruzione.
Segnali di periodo della macchina e segnali di battimento generati dai sistemi di cronometraggio.
Le informazioni di feedback dall'unità di esecuzione sono il flag.
Segnali di controllo dal bus di sistema (bus di controllo), come richieste di interruzione e richieste DMA.
Sistema di temporizzazione e micro-operazioni per controller cablati
sistema di cronometraggio
ciclo dell'orologio
La larghezza di ogni battuta corrisponde esattamente a un ciclo di clock.
ciclo della macchina
Il ciclo macchina può essere considerato come un tempo di riferimento durante l'esecuzione di tutte le istruzioni.
Il tempo più breve necessario per leggere una parola di istruzione dalla memoria è considerato il ciclo della macchina.
È possibile completare diverse micro-operazioni in un ciclo macchina. Ciascuna micro-operazione richiede una certa quantità di tempo. Il segnale di clock può essere utilizzato per controllare la generazione di ciascun comando di micro-operazione.
ciclo di istruzioni
Il tempo impiegato dalla CPU per recuperare ed eseguire un'istruzione dalla memoria principale è chiamato ciclo di istruzioni.
I cicli di istruzione sono spesso rappresentati da diversi cicli macchina e un ciclo macchina contiene diversi cicli di clock (chiamati anche battiti o cicli T, che sono l'unità base del funzionamento della CPU).
Il numero di cicli macchina in ciascun ciclo di istruzioni può variare, così come può variare anche il numero di battute in ciascun ciclo macchina.
Le operazioni atomiche si riferiscono a operazioni che non possono essere perfezionate. Di solito, le operazioni atomiche all'interno della CPU sono chiamate micro-operazioni (μOP) e i segnali di controllo dei componenti che implementano μOP sono chiamati segnali di controllo di micro-operazioni, chiamati anche comandi di micro-operazioni (. μOPCmd). Il tempo necessario per completare un μOP è chiamato battito e più μOP possono essere controllati in tempo attraverso diversi segnali di battito per formare una sequenza μOP.
Analisi dei comandi di micro-operazione
Comandi di micro-operazione nel ciclo di recupero
Comandi di micro-operazioni per cicli di indirizzi indiretti
Esegui comandi periodici di micro-operazione
istruzioni di accesso non alla memoria
Istruzioni per l'accesso
istruzione di trasferimento
Metodo di controllo della CPU
Metodo di controllo sincrono
Possono essere suddivisi nelle seguenti tipologie
Ciclo di istruzioni a lunghezza fissa
Il numero di cicli della macchina è fisso, ma il numero di battute non è fisso
Controllo combinato centrale e locale
La relazione temporale del controllo sincrono è relativamente semplice e il design del controller è conveniente, ma c'è il problema della bassa efficienza della CPU quando si utilizzano componenti lenti.
Metodo di controllo asincrono
La tempistica di ciascun componente funzionale e operazione viene implementata utilizzando un meccanismo di risposta Dopo che il componente di controllo invia un segnale di controllo operativo al componente funzionale, deve attendere finché il componente funzionale non invia un segnale di risposta prima di avviare l'operazione successiva.
Il vantaggio è che ciascun componente può funzionare in base al tempo effettivamente richiesto e non vi è alcun processo di quello veloce in attesa di quello lento, migliorando così la velocità del sistema, ma la struttura del metodo di controllo asincrono è più complicata.
metodo del controllo congiunto
La maggior parte delle sequenze di controllo operativo sono controllate in modo sincrono utilizzando i cicli della macchina e i potenziali di battimento. Per un numero limitato di operazioni difficili da determinare in un determinato momento, è possibile utilizzare il controllo asincrono.
Fasi di progettazione dell'unità di controllo cablata
controller microprogrammato
Concetti base del controllo dei microprogrammi
L'idea progettuale è di scrivere ciascuna istruzione macchina in un microprogramma. Ciascun microprogramma contiene diverse microistruzioni e ciascuna microistruzione corrisponde a uno o più comandi di microoperazione.
terminologia di base
Microcomandi e microoperazioni
Un'istruzione macchina può essere scomposta in una sequenza di micro-operazioni. Queste micro-operazioni sono le operazioni più basilari e irriducibili nel computer.
I vari comandi di controllo impartiti dalla componente di controllo alla componente di esecuzione sono chiamati microcomandi, che sono le unità più piccole che costituiscono una sequenza di controllo.
Microcomandi e microoperazioni hanno una corrispondenza biunivoca. I microcomandi sono i segnali di controllo delle microoperazioni e le microoperazioni sono i processi di esecuzione dei microcomandi.
Microistruzioni e microcicli
microistruzioni
Campi di controllo delle operazioni
campo di controllo della sequenza
Il microciclo si riferisce al tempo richiesto per eseguire una microistruzione, solitamente un ciclo di clock.
Le microistruzioni controllano l'esecuzione di un corrispondente insieme di microoperazioni per realizzare parte delle funzioni di un'istruzione.
Memoria principale e memoria di controllo
La memoria principale viene utilizzata per archiviare programmi e dati e viene implementata all'esterno della CPU utilizzando la RAM.
La memoria di controllo (CM) viene utilizzata per archiviare microprogrammi, che vengono implementati all'interno della CPU utilizzando la ROM.
Programmi e microprogrammi
Un programma è una raccolta ordinata di istruzioni.
La funzione di un'istruzione è implementata da un microprogramma.
Un microprogramma è equivalente a una sequenza μOPCmd, una microistruzione è equivalente a tutti i μOPCmd in un passaggio della sequenza μOPCmd e un microcomando è equivalente a un μOPCmd.
Ogni microprogramma è composto da diverse microistruzioni
Ogni microistruzione corrisponde ad un insieme di μOPCmd
I microcomandi puntano ai segnali di controllo inviati dai componenti, corrispondenti a μOPCmd uno a uno
Composizione e processo di funzionamento del controller microprogrammato
Componenti di base del controller microprogrammato
memoria di controllo
Memorizzare il microprogramma corrispondente a ciascuna istruzione.
registro delle microistruzioni
Viene utilizzato per memorizzare le microistruzioni recuperate da CM. Il suo numero di bit è uguale alla lunghezza della parola della microistruzione.
registro dei microindirizzi
Ricevi il microindirizzo inviato dal componente di formazione del microindirizzo per prepararti alla lettura delle microistruzioni nel CM.
Il processo di lavoro del controller microprogrammato
Si noti che il campo indirizzo inferiore dell'ultima microistruzione di un microprogramma solitamente punta all'indirizzo di ingresso del microprogramma di recupero delle istruzioni per garantire che la fase di recupero delle istruzioni possa essere nuovamente inserita dopo l'esecuzione dell'istruzione.
Microprogrammi e istruzioni macchina
Il numero di microprogrammi dovrebbe essere il numero di istruzioni macchina più il numero di microprogrammi pubblici corrispondenti al recupero delle istruzioni, all'indirizzamento indiretto e ai cicli di interruzione.
Come vengono codificate le microistruzioni
Metodo di codifica diretta (controllo diretto).
Ognuno rappresenta un microcomando.
Metodo di codifica diretta sul campo
Raggruppare microcomandi che si escludono a vicenda nello stesso campo e raggruppare microcomandi compatibili in campi diversi. Pertanto, tra i microcomandi definiti da ciascun sottocampo, esiste al più un microcomando valido per volta.
Ogni campo è codificato in modo indipendente, ogni codice rappresenta un microcomando e il significato di ciascun codice di campo è definito separatamente.
I microcomandi devono essere emessi dopo essere passati attraverso il circuito di decodifica, quindi è più lento del metodo di codifica diretta.
Lo scenario peggiore per la codifica diretta sul campo è il metodo di codifica diretta.
Metodo di codifica indiretta del campo
Alcuni microcomandi in un campo devono essere interpretati da altri microcomandi in un altro campo.
Tra i tre metodi di codifica, il metodo di codifica diretta ha il campo di controllo operativo più lungo e la formazione del segnale di controllo μOP più semplice. Il metodo di codifica indiretta sul campo ha il campo di controllo operativo più breve e la formazione del segnale di controllo μOP più complicata un compromesso tra i due.
Il metodo di formazione degli indirizzi delle microistruzioni
Indicato direttamente dal campo indirizzo inferiore della microistruzione.
I codici operativi vengono formati in base alle istruzioni della macchina.
Formato microistruzioni
microistruzioni orizzontali
Una microistruzione orizzontale definisce ed esegue diverse operazioni parallele di base.
microistruzioni verticali
Una microistruzione verticale può definire ed eseguire solo un'operazione di base.
Microistruzioni miste
Fasi di progettazione dell'unità di controllo del microprogramma
Elenca tutte le sequenze μOPCmd
Progettare il formato delle microistruzioni
Compilare il microprogramma
Circuiti correlati alla progettazione
Microprogrammazione dinamica e nanoprogrammazione
Se il microprogramma può essere modificato in base alle esigenze dell'utente, la macchina ha capacità di microprogrammazione dinamica.
Se l'hardware non è controllato direttamente da microprogrammi, ma viene interpretato da nanoprogrammi archiviati nella memoria di controllo di secondo livello, questa memoria di controllo di secondo livello viene chiamata nanomemoria e l'hardware è controllato direttamente da istruzioni femto.
Caratteristiche del cablaggio e dei controllori programmabili
Meccanismo di eccezione e di interruzione
Concetti base di eccezioni e interruzioni
Gli eventi imprevisti generati internamente dalla CPU sono chiamati eccezioni.
Una richiesta di interruzione inviata alla CPU da un dispositivo esterno alla CPU viene chiamata interruzione.
Classificazione delle eccezioni e delle interruzioni
Classificazione anomala
Colpa
Trappola
Le trappole vengono generalmente rilevate alla fine dell'esecuzione dell'istruzione e, una volta rilevata una trap, la gestione delle eccezioni avviene immediatamente.
Le istruzioni di chiamata di sistema e le istruzioni condizionali di auto-trappola (come teq, teqi, tme, tnei, ecc. in MIPS) sono tutte istruzioni trap.
Nella modalità di debug a passaggio singolo, ogni istruzione ordinaria può essere utilizzata come istruzione trap per generare un'eccezione trap. L'eccezione trap viene attivata dall'esecuzione dell'istruzione trap. Similmente a una chiamata di funzione, non vi è alcun punto di interruzione del programma le istruzioni causeranno una chiamata incondizionata o condizionale al programma del kernel del sistema operativo e lo eseguiranno. Dopo aver completato l'esecuzione, ritorna all'istruzione successiva dell'istruzione self-trap per l'esecuzione. (Quando l'istruzione trap è un'istruzione di salto, non ritorna all'istruzione successiva per l'esecuzione, ma ritorna all'istruzione di destinazione del salto per l'esecuzione.)
Interrompere
Un guasto hardware casuale che impedisce alla CPU di continuare l'esecuzione non ha nulla a che fare con istruzioni specifiche.
Il rilevamento delle anomalie interne è implementato dalla logica interna della CPU. Non è necessario avvisare la CPU tramite qualche segnale esterno.
Classificazione delle interruzioni
Interruzione mascherabile
Quando gli interrupt sono disattivati, gli interrupt mascherabili non possono ottenere una risposta dalla CPU.
interruzione non mascherabile
Anche agli interrupt non mascherabili è necessario rispondere in modalità di interruzione.
Processo di risposta alle eccezioni e alle interruzioni
Disattiva gli interrupt
Salva punti di interruzione e stato del programma
Identificare eccezioni e interruzioni e rivolgersi ai gestori appropriati
pipeline di istruzioni
Concetti base di pipeline di istruzioni
Miglioramento del parallelismo del processore da due aspetti
parallelismo temporale
Tecnologia della catena di montaggio
parallelismo spaziale
processore superscalare
Definizione di pipeline di istruzioni
Il processo di esecuzione delle istruzioni
recuperare(SE)
Recupera le istruzioni dalla memoria delle istruzioni o dalla cache
Registro di decodifica/lettura (D)
Il controllore operativo decodifica l'istruzione e recupera gli operandi dal file di registro.
Indirizzo di esecuzione/calcolo (EX)
Accesso alla memoria (MEM)
Leggere e scrivere nella memoria
Rispondi (WB)
Riscrive i risultati dell'esecuzione delle istruzioni nel file di registro
Il principio di progettazione della pipeline è che il numero di segmenti della pipeline di istruzioni si basa sul numero di segmenti funzionali utilizzati dalle istruzioni più complesse.
Come esprimere la pipeline
Implementazione di base della pipeline
L'introduzione dei registri della pipeline consente di parallelizzare nel tempo le istruzioni in ciascun segmento.
Percorso dati della pipeline
Aggiungere un lungo componente di registro della pipeline nella posizione della linea tratteggiata nella figura.
Tieni presente che non ci sono registri della pipeline dietro il segmento WB, ma i dati in questo segmento vengono eventualmente riscritti nel file di registro. Il PC contatore del programma può anche essere considerato come un registro della pipeline, che fornisce i dati per il recupero delle istruzioni del segmento IF.
Il file di registro nel segmento ID è un componente funzionale relativamente speciale. È responsabile della lettura degli operandi del registro nel segmento ID. L'operazione di lettura appartiene alla logica combinatoria. Allo stesso tempo, il file di registro del segmento ID è anche responsabile dell'operazione di riscrittura dei risultati dell'esecuzione dell'istruzione del segmento WB. L'operazione di scrittura richiede la cooperazione dell'orologio ed è una logica sequenziale.
La sorgente di ingresso della porta W# del numero di registro di scrittura del file di registro viene selezionata dal multiplexer di controllo del segnale RegDst in base alla parola di istruzione del segmento ID mentre i dati di scrittura WD provengono dal segmento WB, ovvero l'indirizzo di scrittura e scrittura; i dati appartengono a istruzioni diverse, il che causerà confusione nei dati.
Innanzitutto, regolare la posizione di output del numero di registro di scrittura WriteReg# emesso dal multiplexer del segmento ID. Non viene più inviato all'estremità W# del file di registro, ma inviato direttamente al registro della pipeline ID/EX per il latch, quindi. segmento per segmento passato al segmento WB; infine, il registro della pipeline MEM/WB del segmento WB lo restituisce alla porta del numero di registro di scrittura W# del file di registro. Si noti nella figura che il multiplexer per il segmento ID è stato leggermente riposizionato.
Le informazioni sui dati trasferite dai diversi latch del registro della pipeline non sono le stesse.
Il registro della pipeline IF/ID deve bloccare la parola di istruzione recuperata dalla memoria delle istruzioni e il valore di PC 4.
Il registro della pipeline ID/EX deve agganciare i due operandi RS e RT estratti dal file di registro (i valori dei registri corrispondenti ai campi rs e rt nella parola di istruzione) e il numero del registro di scrittura WriteReg#, come così come il valore immediato con segno esteso, PC 4 e altri operandi che possono essere utilizzati successivamente.
I registri della pipeline EX/MEM devono bloccare i risultati delle operazioni ALU, i dati da scrivere nella memoria dati WriteData, il numero di registro di scrittura WriteReg# e altri dati.
Il registro della pipeline MEM/WB deve bloccare i risultati dell'operazione ALU, i dati letti dalla memoria dati, il numero di registro di scrittura WriteReg# e altri dati.
Segnali di controllo della pipeline
Classificazione dei segnali di controllo
Il processo di esecuzione della pipeline (prendendo come esempio l'istruzione di scrittura dalla memoria dati al registro)
recuperare(SE)
Sebbene l'istruzione lw non utilizzerà PC 4 nelle sezioni funzionali successive, PC 4 verrà comunque trasferito al registro della pipeline IF/ID per essere utilizzato da altre istruzioni (come beq).
Quando arriva l'orologio, la parola di istruzione verrà bloccata nel registro della pipeline IF/ID e PC verrà aggiornato al valore di PC 4.
Registro di decodifica/lettura (ID)
Nel segmento ID, il controller operativo genera i segnali di controllo operativo richiesti per i segmenti successivi in base alle parole di istruzione nel registro della pipeline IF/ID e li trasmette all'indietro.
Inoltre, il segmento ID leggerà anche i valori RS e RT dei registri rs e rt nel file di registro in base ai campi rs e rt nella parola di istruzione.
L'unità di estensione del segno estende il valore letterale a 16 bit nella parola di istruzione a 32 bit.
Il multiplexer genera il possibile numero di registro di scrittura dell'istruzione WriteReg# in base alla parola dell'istruzione (alcune istruzioni non richiedono la scrittura di registri).
Questi 4 dati verranno trasferiti al registro della pipeline ID/EX insieme all'indirizzo di istruzione sequenziale PC 4.
Indirizzo di esecuzione/calcolo (EX)
Per l'istruzione lw, il segmento EX viene utilizzato principalmente per calcolare l'indirizzo di accesso alla memoria. L'indirizzo di accesso alla memoria ottenuto sommando il valore RS nel registro della pipeline ID/EX e il valore immediato con estensione del segno viene inviato alla pipeline EX/MEM. Registrati.
Il segmento EX deve inoltre calcolare l'indirizzo di destinazione del ramo e generare il segnale di salto del ramo BranchTaken.
Il valore di RT nel registro della pipeline ID/EX verrà utilizzato come dati di scrittura nel segmento MEM, quindi il valore di RT verrà inviato al registro della pipeline EX/MEM come dati di scrittura WriteData.
Anche il numero del registro di scrittura WriteReg# nel registro della pipeline ID/EX verrà trasferito direttamente al registro della pipeline EX/MEM.
Accesso alla memoria (MEM) (lettura o scrittura)
Principalmente in base ai risultati dell'operazione ALU bloccati nel registro della pipeline EX/MEM: indirizzo di accesso alla memoria, dati di scrittura e segnale di controllo di lettura e scrittura della memoria MemWrite, la memoria viene letta o scritta.
I risultati dell'operazione ALU, WriteReg# e i dati letti dalla memoria dati nel registro della pipeline EX/MEM verranno inviati all'estremità di input del registro della pipeline MEM/WB.
Rispondi (WB)
Il segmento WB seleziona il risultato dell'operazione ALU o i dati di accesso alla memoria dal registro della pipeline MEM/WB e lo riscrive nel registro designato WriteReg# del file di registro.
Ciascuna sezione funzionale nella pipeline non distingue la funzione dell'istruzione. Tutte le informazioni sui dati e i segnali di controllo operativo vengono emessi dal registro della pipeline all'inizio della sezione, quindi tutti i dati e i segnali di controllo operativo che possono essere utilizzati dalle sezioni funzionali successive. deve essere passato all'indietro.
Avventure e lavorazioni della catena di montaggio
avventura della struttura
I conflitti causati da più istruzioni che utilizzano la stessa unità operativa nello stesso ciclo di clock sono chiamati conflitti strutturali.
Il calcolo del PC 4, il calcolo dell'indirizzo di destinazione della filiale e le operazioni aritmetiche richiedono tutti l'uso di unità aritmetiche.
Sia l'accesso alle istruzioni che l'accesso ai dati richiedono l'uso della memoria.
Esistono anche conflitti strutturali tra le operazioni del registro di lettura del segmento ID e del registro di scrittura del segmento WB. Tuttavia, poiché la logica di lettura e scrittura del file di registro MIPS è una logica completamente indipendente, gli indirizzi di lettura e scrittura e i dati entrano attraverso porte diverse. , e la logica di lettura e scrittura può operare contemporaneamente. Pertanto questo conflitto strutturale non esiste.
Soluzione
Utilizzare memoria istruzioni e memoria dati indipendenti.
Blocca il contatore del programma PC, provocando la pausa del segmento IF per un ciclo di clock Quando arriva il clock successivo, il registro della pipeline IF/ID viene cancellato in modo sincrono. L'immissione del segmento ID è un'operazione no-op (un'istruzione MIPS di tutti 0 lo è equivalente a un no-op). Attendere fino a quando l'istruzione Load accede al Dopo aver completato l'operazione di salvataggio, il segmento IF viene riavviato.
avventura sui dati
L'istruzione corrente deve utilizzare il risultato dell'operazione dell'istruzione precedente, ma questo risultato non è stato ancora generato o non è stato consegnato alla posizione specificata, il che impedirà all'istruzione corrente di continuare l'esecuzione. Questo è chiamato dato conflitto.
I possibili conflitti di dati tra le due istruzioni sono i seguenti:
Conflitto di scrittura prima di lettura (RAW)
Se l'operando sorgente dell'istruzione I2 è l'operando di destinazione dell'istruzione I1, questo conflitto di dati è chiamato conflitto di scrittura prima della lettura.
Quando le istruzioni vengono eseguite in modalità pipeline, poiché l'istruzione I2 utilizza il risultato dell'istruzione I1, se l'istruzione I2 legge il vecchio valore del registro nel segmento ID prima che l'istruzione I1 scriva il risultato nel registro, causerà un errore di lettura dei dati .
Conflitto di lettura prima di scrittura (WAR)
Se l'operando di destinazione dell'istruzione I2 è l'operando di origine dell'istruzione I1, questo conflitto di dati viene chiamato conflitto di lettura prima della scrittura.
Questa dipendenza dai dati non ha alcun impatto sull'esecuzione delle istruzioni.
Conflitto di scrittura dopo scrittura (WAW)
Se gli operandi di destinazione delle istruzioni I2 e I1 sono gli stessi, questo conflitto di dati viene chiamato conflitto di scrittura dopo scrittura.
Quando le istruzioni vengono eseguite in modalità pipeline, questo conflitto scrittura dopo scrittura non ha alcun impatto sull'esecuzione delle istruzioni.
La soluzione
Stallo hardware e inserimento software delle istruzioni "NOP".
Registra la gestione delle avventure RAW
tecnologia di bypass dei dati
Se c'è correlazione tra i dati, gli operandi del registro RS e RT del segmento EX sono dati errati. I dati corretti dovrebbero provenire dagli operandi di destinazione delle istruzioni dei segmenti MEM e WB e queste istruzioni hanno completato l'operazione attraverso il segmento EX.
Ad eccezione delle istruzioni di accesso alla memoria della classe Load, gli operandi di destinazione vengono effettivamente archiviati nei registri della pipeline EX/MEM e MEM/WB. Gli operandi corretti possono essere reindirizzati direttamente (Inoltro) dalle loro posizioni alle posizioni appropriate nel segmento EX ( Also chiamato bypass).
Non è necessario inserire bolle, il che può risolvere la maggior parte dei problemi relativi ai dati, evitare il degrado delle prestazioni della pipeline causato dall'inserimento delle bolle e ottimizzare notevolmente le prestazioni della pipeline.
Ottimizzazione della compilazione delle istruzioni e regolazione dell'ordine delle istruzioni
Prendi il controllo dell'avventura
Quando la pipeline incontra un'istruzione di ramo o altre istruzioni che modificheranno il valore PC, le istruzioni adiacenti caricate nella pipeline dopo l'istruzione di ramo potrebbero non entrare nella fase di esecuzione a causa di salti di ramo. Questo conflitto è chiamato conflitto di controllo, noto anche come un ramo.
Soluzione
Eseguire la previsione delle diramazioni sulle istruzioni di trasferimento e generare gli indirizzi di destinazione del trasferimento il prima possibile.
Precarica le istruzioni di destinazione sia nelle direzioni del flusso di controllo riuscito che in quello non riuscito.
Velocizzare e anticipare la formazione del codice condizionale.
Migliora la precisione nell'indovinare la direzione del trasferimento.
Indicatori di prestazione della pipeline
Produttività della pipeline
Accelerazione della pipeline
Tecnologia avanzata delle tubazioni
Tecnologia delle pipeline superscalari
IPC<1
È possibile eseguire contemporaneamente più istruzioni indipendenti in ciascun ciclo di clock, ovvero due o più istruzioni vengono compilate ed eseguite in funzionamento parallelo.
Il processore deve essere dotato di più componenti funzionali e circuiti di decodifica delle istruzioni, nonché di più porte e bus di registro, in modo che più operazioni possano essere eseguite simultaneamente.
Tecnologia super pipeline
Più segmenti funzionali della pipeline vengono divisi, più breve è il ciclo di clock e maggiore è la velocità di throughput delle istruzioni. Pertanto, la tecnologia super-pipeline migliora le prestazioni della pipeline aumentando la frequenza principale della pipeline.
Nel ciclo di clock originale, il componente funzionale viene utilizzato tre volte, facendo funzionare la pipeline a una frequenza di clock tre volte superiore a quella originale.
IPC=1
Tecnologia delle parole di istruzione molto lunga
Utilizzando un'architettura in cui più istruzioni vengono elaborate in parallelo in più componenti di elaborazione, più istruzioni possono fluire in un ciclo di clock.
Concetti base sui multiprocessori
Concetti base di SISD, SIMD e MIMD
Architettura a flusso singolo di istruzioni (SISD).
Architettura SIMD (Single Instruction Multiple Data).
Architettura MISD (multiple instructions stream single data stream).
Architettura MIMD (Multiple Instruction Multiple Data).
Concetti base del multithreading hardware
Multithreading a grana fine
Multithreading a grana grossa
Multithreading simultaneo
Concetti base dei processori multi-core
Concetti base dei multiprocessori a memoria condivisa
Anche se questi sistemi condividono lo stesso spazio di indirizzi fisici, possono comunque eseguire programmi in modo indipendente nei propri spazi di indirizzi virtuali.
due tipi
Multiprocessore Unified Memory Access (UMA).
Multiprocessori ad accesso non uniforme alla memoria (NUMA).