UN DIAGRAMMA DELL’OPERAZIONE TOTALE NON DESCRIVE IL COMPORTAMENTO DI UN SISTEMA MICROISTRUZIONE: LA DESCRIZIONE DELLE FUNZIONI CHE DEVONO ESSERE ESEGUITE DAL SISTEMA PO PC IN UN SINGOLO PASSO ELEMENTARE MICROPROGRAMMA: LA DESCRIZIONE DEL COMPORTAMENTO DEL SISTEMA DURANTE L’ESECUZIONE PASSO PASSO UN’OPERAZIONE MICROPROGRAMMA TOTALE: IL MICROPROGRAMMA CHE DESCRIVE IL COMPORTAMENTO DEL SISTEMA NELLA ESECUZIONE DI OGNI SUO PASSO E QUINDI DELLE OPERAZIONE TOTALE. DIAGRAMMA A BLOCCHI: DESCRIVE UN’OPERAZIONE MICROPROGRAMMA: IL MODO IN CUI L’OPERAZIONE E’ ESEGUITA DAL SISTEMA. DI MICROPROGRAMMAZIONE: DELL’OPERAZIONE E’ LA CONVERSIONE IN UN MICROPROGRAMMA DEL DIAGRAMMA A BLOCCHI CHE DESCRIVE L’OPERAZIONE • • • IL TERMINE “MICROPROGRAMMAZIONE” E’ STATO CONIATO (ANCHE SE IN UNA ECCEZIONE UN PO’ DIVERSA) DALL’INGLESE WILKES NEL 1951; LA SERIE 360 IBM LANCIA TALE TECNICA DI COSTRUZIONE DELLE UNITA’ DI CONTROLLO DI UN CALCOLATORE MICROISRUZIONE TS A STRUTTURA GENERALE h |OJ (C1 )1K ;(C2 ).2K ;...;(Cq ) qK . h : OJ A lt (C1) 1K (C2 ) 2K . (3) . . (Cq ) qK LA MICROISTRUZIONE GENERALE Ts PUO’ ESSERE USATA COME UN CASO PARTICOLARE DELLE qs OiJ OJ i 1.. q QUANDO DI iKHA K i 1.. q SE NELLA ts SI QUESTA ASSUME LA FORMA CONTRATTA K: OJ , K (4) • PS E TS SONO I CAPOSTIPITI DELLA FAMIGLIA DI LINGUAGGI ps E ts DA ESSI DERIVABILE IMPONENDO DEI VINCOLI ALLE RISPETTIVE ESPRESSIONI. • I VINCOLI SI TRADUCONO IN LIMITAZIONI NEL NUMERO DELLE FRASI CONDIZIONATE (TRASFERIMENTI COND.) DIVERSE CHE POSSONO ESSERE CONTENUTE IN UNA MICROISTRUZIONE E/O NELLE MICROOPERAZIONI E/O NEI TRASFERIMENTI CHE UN MICROISTRUZIONE PUO’ ESEGUIRE. K - IN Y - IN Z - OUT ENABLE COND IZIONAL SELECT ED GUAR DED RICONOSCITORE DI SEGUENZA X clk VHDL ENTITY ARCHITECTURE ENTITY SIGNAL ARCHITECTURE VARIABLE COMPONENT PROCEDURE FUNCTION CONCURRENT SEQUENTIAL ASSIGNMENT SPECIFICATION BEHAVIORAL STRUCTURAL DATAFLOW BEHAVIORAL DESCRIZIONE DI UNITA’ HW PER TRAMITE DI MAPPING I/O SENZA SPECIFICARE TECNOLOGIA, NETLIST, DATA PATH PROCESS MULTILEVEL HARDWARE LANGUAGE UN’UNICA INTERFACCIA PIU’ DESCRIZIONI DI OPERAZIONI • • IN BASE ALLE FUNZIONALITA’ STRUTTURALMENTE IN TERMINI DI SOTTOCOMPONENTI • A FISSO LIVELLO PER TRAMINTE DI DESCRIZIONI DI COMPONENTI IN TERMINI DELLE FUNZIONALITA’ E SENZA L’USO DI SOTTOCOMPONENTI UNA DESCRIZIONE STRUTTURALE DI COMPONENTE PUO’ ESSERE EFFETTUATA A TUTTI I LIVELLI DEL PROGETTO OPERAZIONE SPECIALE: ESAMINA IL CODICE DI OPERAZIONE APPLICATO ALL’INGRESSO ESTERNO E ORDINA L’ESECUZIONE DELL’OPERAZIONE CORRISPONDENTE, LA QUALE ALLA FINE DELLA SUA ESECUZIONE, PROVVEDE A RIATTIVARE LA OPERAZIONE SPECIALE, E COSI’ VIA DUE POSSIBILI DIAGRAMMI DELL’OPERAZIONE SPECIALE TIPO A TIPO B K1 K =O =O K K1 =1 =1 OPERAZIONE TOTALE: L’OPERAZIONE CHE RISULTA DALLA SUCCESSIONE DELLE SINGOLE OPERAZIONI CHE UN SISTEMA PUO’ COMPIERE DAL MOMENTO IN CUI INIZIA AL MOMENTO IN CUI CESSA DI FUNZIONARE . ESSA DESCRIVE DUNQUE L’OPERARE COMPLESSIVO DEL SISTEMA. ingresso Operazione speciale Operazione 1 Operazione 2 Operazione n. • • • (A) IL DIAGRAMMA A BLOCCHI DELL’OPERAZIONE TOTALE HA UN SOLO INGRESSO E NESSUNA USCITA (B) NON DEBBONO ESISTERE NEL DIAGRAMMA CATENE DI BLOCCHI DI DECISIONE CHE FORMANO CICLI UN INSIEME INTERCONNESSO DI BLOCCHI DI DECISIONE DEVE AVERE STRUTTURA AD ALBERO (C) SE IN UN DIAGRAMMA ESISTE UN CICLO DI BLOCCHI IN CUI L’UNICO BLOCCO DI OPERAZIONE E’ LA MICROOPERAZIONE NULLA, CI DEVE ESSERE NEL CICLO ALMENO UN BLOCCO DI DECISIONE CHE CONTIENE UNA VARIABILE DI CONDIZIONE CHE E’ FUNZIONE, ANCHE SE NON ESCLUSIVAMENTE, DI INFORMAZIONI ESTERNE AL SISTEMA (DATI E CODICE DI OPERAZIONE) SE L’OPERAZIONE SPECIALE, E’ DI TIPO (A) LA (B) E’ SEMPRE VERIFICATA PER L’OPERAZIONE TOTALE E ESSA E’ SODDISFATTA PER OGNI SINGOLA OEPRAZIONE. SE LA OPERAZIONE SPECIALE E’ DI TIPO (B) POTREBBERO INNESCARSI CICLI. OCCORRE INCLUDERE ALLORA UN BLOCCO CON MICROOPERAZIONE NULLA 0, CHE PRODUCE (A A: B B; ………; K K) SU TUTTI I REGISTRI NEL CICLO DI BLOCCHI DI DECISIONE . LA CONDIZIONE (C) SERVE AD IMPEDIRE CHE IL SISTEMA RIMANGA INDEFINITIVAMENTE BLOCCATO IN UN CICLO SENZA POTERNE PIU’ USCIRE. T’ T’’ T • • IN T’ AVVIENE L’ELABORAZIONE DELLE RETI COMBINATORIE IN T’’ AVVIENE LA SCRITTURA NEI REGISTRI. TALE TEMPO COINCIDE CON P DURATA DELL’IMPULSO DI CARICAMENTO DI UN REGISTRO REG P • LA MICROOPERAZIONE R + 1 R FUNZIONA CORRETTAMENTE SE L’USCITA DI R PUO’ CAMBIARE SOLO DOPO CHE L’IMPULSO E’ TERMINATO (USO DI FLIP -FLOP MASTER-SLAVE O EDGE TRIPPED). • LE FUNZIONI CHE COMPAIONO NELLE MICROOPERAZ. POSSONO ESSRE CONSIDERATE FUNZIONI PREFISSATE (REALIZZATE IN HARDWARE) ED APPARTENENTE AD UN INSIEME PREDEFINITO DEI COMPONENTI LOGICI COMP. LOGICI CONFRONTATORE, SEMIADDIZIONATORE, DECODIFICATORE, ROM, ADDIZIONATORE PARAL, COMMUTATORE, REGISTRO, FUNZIONI BEOLEONE ELEMENT, (AND, NOT, OR), ETC. • SISTEMA DI ELABORAZIONE DATI COD. OP. STRUTTURA LOGICA RISULTATI (a) SISTEMA: UNA STRUTTURA LOGICA CAPACE DI ESEGUIRE SEQUENZE DI OPERAZIONI - MODELLO GENERALE DI UN SISTEMA S INGRESSI ESTERNI USCITE ESTERNE PO Oj 1, 2, ….., m Xr X1 X1, X2, ….., Xs PC Oj Oj, j = 0..p CODICE MICROOP. -S X2 CODICE CONDIZ. LOGICA PO PARTE OPERATIVA ESEGUE LE OPERAZ. DEL SISTEMA PC PARTE DI CONTROLLO COMANDA LA LORO ESECUZIONE CON UNA SUCCESSIONE DI MIICROOPERAZIONI IL SISTEMA S E’ DECOMPOSTO IN DUE SOTTOSISTEMI (PO,PC) CHE SONO REALIZZATI MEDIANTE MACCHINE INTERCONNESSE CHE FORMANO UN SISTEMA DI RETI SINCRONIZZATE ESEMPIO L’ESEMPIO DI MICROLINGUAGGI Ts, PRESENTATO HA LE SEGUENTI LIMITAZIONI: (1a) ED (1b) NON POSSONO CONTENERE TRASFERIMENTI CONDIZIONATI. (1c) AMMETTE LE POSSIBILITA’ DI SOLO 2 TRASFERIMENTI CONDIZIONATI. (1a) NON PUO’ ESEGUIRE LA MICROOPERAZIONE NULLA O0 (1b) ED (1c) POSSONO SOLO ESEGUIRE LA O0 IN (1a) IL TRASFERIMENTO E’ RELATIVO ALLA MICROISTRUZIONE CHE ESEGUE LA CORRENTE h ANALOGA COSA ACCADE ALLA PRIMA PARTE DI (1c) h |ov , h 1 (1a ) h |o0 , h (1b) h |o0 (cr ) h 1;(cr ) h (1c) • MICROISTRUZIONE PS A STRUTTURA GENERALE h |(C1)o1J , 1k ; (C2 ) O2J ; 2h ;...;(Cq )OqJ qh UNA ED UNA SOLA MICROOPERAZIONE DELLA ISTRUZIONE h VIENE ATTIVATA DALLA VERITA’ DI UAN ED UNA SOLA DELLE q CONDIZIONI. TALE STRUTTURA E’ RAPPRESENTABILE MEDIANTE ISTRUZIONI CON GUARDIA : Alt h (C1) O1J 1 h ( 2) (C2 ) O2j 2 h . . . (Cq ) Oqj q k LA VERITA’ DI UNA SOLA GUARDIA FRA LE q DEVE EESERE GARANTITA STRUTTURALMENTE NELLA IMPLEMENTAZIONE DEL SISTEMA OPERAZIONI DEL SISTEMA • DESCRIZIONE DELLE OPERAZIONI MEDIANTE DIAGRAMMA A BLOCCHI: DUE TIPI DI BLOCCO •BLOCCO DI OPERAZIONE •BLOCCO DI DECISIONE UN BLOCCO DI OPERAZIONE CONTIENE LA DESCRIZIONE DI UNA MICROOPERAZIONE Oj FATTA MEDIANTE UNA LISTA DI RELAZIONI DI TRASFERIMENTO Oj : 1 A ; 0 B ; Ñ + 1 C UN BLOCCO DI DECISIONE CONTIENE UNA VARIABILE LOGICA X1 (VARIABILE DI CONDIZIONE) IL CUI VALORE INDICA QUALE USCITA DEL BLOCCO DEVE ESSERE SELEZIONATA. SI SUPPONE CHE LE X 1 SIANO FUNZIONE SOLO DI CONTENUTI DI REGISTRI E/O DI INFORMAZIONI ESTERNE AL SISTEMA . BLOCCO DI DECISIONE Oj BLOCCO DI OPERAZIONE =0 Xi =1 Oj / R1, R2 , …, Rn I RISULTATI DI Oj NEI REGISTRI Ri Xi = Ri (R1, R2, …, Rn, …., OP, …. M) Xi DIPENDE DAI VALORI CONTENUTI IN Ri, DAL COD. OPERAT. OP, DAL DATO EST. M, MICROPR OGR AM MI • • • • • • • • MICROORDINE ESEGUI Oj Oj TRASFERIMENTO VAI A h h ESPRESSIONE CONDIZIONALE SE Cr E’ VERO, ALLORA (Cr) CON Cr = f (Xi…… Xs) FRASE: <Oj, h > (a) FRASE CONDIZIONATA <(Cr ) Oj, h > (b) TRASFERIM. CONDIZION.: <(Cr ) h > (c) MICROLIUNGUAGGI A STRUTTURA DI FRASE “PS” CONTENGONO ISTRUZIONI DI TIPO (b) MICROLINGUAGGI A STRUTTURA DI TRASFERIMENTI “TS” CONTENGONO ISTRUZIONI DI TIPO (c) ESEMPIO DI MICROLINGUAGGIO Ts DETTO M • • h |Ov , h 1 (1a) h |O0 , h (1b) h |O0 ,(Cr ) h1;(Cr ) h (1c) ANALOGIA FRA STRUTTURA N ISTRUZIONI E ISTRUZIONI DI UN CALCOLATORE DIVERSI LIVELLI DI LINGUAGGI: ALTO EV. ……. LING. MICROPROGRAMMI E AUTOMI A STATI FINITI • • UN MICROLINGUAGGI E’ GENERALE SE CONSENTE DI DESCRIVERE IL COMPORTAMENTO DI UN QUALSIASI SISTEMA PS E TS SONO GENERALI PO Orj Xr PC i LE MACROINSTRUZIONI PS E TS DEFINISCE LA RIGA DI UNA TABELLADI FLUSSO. IL MICROPROGRAMMA CHIUSO, SCRITTO IN PS O TS, L’INTERA TABELLA DI FLUSSO DI PC i :Oi ; C1 i1, Cr ir ,...., Cm im S’ R S T A T O S ROM …. MUX Oj SEL