200 likes | 447 Views
Tesi di laurea di: Daniela Di Sclafani. SVILUPPO DI UNA STRUTTURA INTEGRATA PER LA GESTIONE DEGLI ‘INTERRUPT’ NEI MICROCONTROLLORI. Tutor universitario: Prof. Ing. Giuseppe Caruso
E N D
Tesi di laurea di: Daniela Di Sclafani SVILUPPO DI UNA STRUTTURA INTEGRATA PER LA GESTIONE DEGLI ‘INTERRUPT’ NEI MICROCONTROLLORI Tutor universitario: Prof. Ing. Giuseppe Caruso Tutor aziendale STMicroelectronics : Ing. Vincenzo Matranga ANNO ACCADEMICO 2005/2006
Sviluppo di istruzioni di “Interrupt Management” Implementazione di blocchi di decodifica e di esecuzione per le istruzioni ideate - uso del brevetto “US6,668,199” Ing.Matranga V. et al. (UC a struttura modulare) OBIETTIVI
Sistemi EDA: - Ncsim di Cadence, - Design Compiler e Physical Compiler di Synopsys, - Design Framework II (icfb) di Cadence, - Silicon Ensamble di Cadence, - Virtuoso di Cadence. Workstation SUN Microsystems Sistema operativo SOLARIS (UNIX) AMBIENTE DI LAVORO
SP_RAM MBUS(15:0) SP ALU Unità di elaborazione PC MADDR(15:0) MICROCONTROLLORE “EMBEDDED” • architettura Harward con “core” a 16 bit “MICRO” Unità di controllo segnali di uscita segnali d’ingresso
Abilitazione / Disabilitazione / Reset • Gestione delle priorità • RETI : ritorno dalla subroutine corrente 4 bits fixed width 2 bits 2 bits 2 bits 4 bits fixed width 3 bits 6 bits 4 bits 4 bits fixed width 2 bits 2 bits 8 bits 5 bits 8 downto 5 6 5 15 downto 12 11 10 9 7 1 0 8 4 downto 0 5 downto 0 11 10 4 3 2 9 7 15 downto 12 6 10 11 15 downto 12 9 8 1101 conditions 1101 1 S0 Lev.1 1101 INTM 1 1 0 G Pr.SG S’2 Lev.4 S S’0 INTM S’3 S’1 S1 Reserved S3 Lev.2 Lev.3 S2 0 B G 0 A INTM Interrupt signals • LOAD sull’Interrupt Vector Table • 16 segnali di interrupt indirizzabili Seleziona la sottoclasse del gruppo di segnali di interrupt S G Pr.SG Lev.3 Lev.2 Lev.1 Lev.4 4 bits fixed width 3 bits 9 bits Seleziona il gruppo di segnali di interrupt coinvolto nell’istruzione 8 downto 0 G0_MSB(3:0) G0_LSB(3:0) G1_MSB(3:0) G1_LSB(3:0) 15 downto 12 11 10 9 Assegna il livello di priorità alla sottoclasse selezionata G0 G1 1101 1 0 INTM Reserved 1 Assegnano i diversi segnali della sottoclasse a cui si associano i livelli di priorità 3, 2, 1. Bit fittizi, calcolati per esclusione, che assegnano il segnale con livello di priorità massimo. ISTRUZIONI DI INTERRUPT • 16 livelli di priorità
Codice Operativo Campo Operando 15 downto 12 11 downto 0 WORD Istruzioni di forzatura per i segnali di uscita Istruzioni logiche ed aritmetiche Istruzioni di caricamento e salto Istruzioni per la gestione degli interrupt Istruzioni di wait SET DI ISTRUZIONI 0000 1001 1010 0100 0101 0111 1011 LDWR (Caricamento di word su registro) BRANCH (Salto ad un indirizzo relativo) MOVE (Spostamento tra registri) LSRAM (Load e Save da/su RAM) LOGIC_SIGN (Operazioni logiche su segnali di ingresso) SREGOP (Operazioni logiche su singolo registro) DREGOP (Operazioni logiche su due registri) SET CLEAR PULSE WAIT INTM 0001 0010 0011 1000 1101
BUS UC_LOGIC UC_LOAD COLLECTOR UC_FORCE UC_WAIT UC_INT UNITA’ DI CONTROLLO MODULARE • VANTAGGI: • Moduli indipendenti • Simulazioni separate • Debbugging facilitato • Facili modifiche (inserimento / cancellazione di istruzioni)
Descrizione comportamentale Simulazioni comportamentali Sintesi fisica Simulazioni gate-level (back-annotation) Layout Simulazioni post-layout VHDL -------- -------- <blocco>.vhd tb_<blocco>.vhd IMPLEMENTAZIONE BLOCCHI Design For Testability
Unità di controllo word INTERRUPT Unità di elaborazione UC_INT ed INT_CONTROLLER
INT_MANAGER INTERRUPT INTERRUPT CONDIZIONATI • Abilita/Maschera i segnali di interrupt • Fornisce i RESET dei segnali di interrupt: • - istruzione RESET di microcodice • - dopo il salto alla subroutine relativa • Gestisce la fase preliminare all’esecuzione delle istruzioni per la gestione delle priorità 4 sottoblocchi : 1
1 4 PR_CONTROLLER INTERRUPT CONDIZIONATI INTERRUPT ORDINATI • Smista i segnali di interrupt in ordine di priorità • Formato da 5 sottoblocchi: 4 sottoblocchi : 2
INTERRUPT ORDINATI DEC_ROUTINE • Decodifica la richiesta di interrupt a priorità maggiore • Fornisce il segnale di selezione dell’indirizzo della subroutine da servire • Comunica all’unità di controllo che si sta servendo un interrupt 4 sottoblocchi : 3
INT VECT TABLE SCHEMATICO INT_CONTROLLER MUX_ROUTINE • Contiene la matrice con gli indirizzi delle subroutine • Contiene un mux attraverso il quale si seleziona l’indirizzo corrispondente all’interrupt da servire Microcode Memory PC 4 sottoblocchi : 4 INT_PC
REPORTs del PROGETTO Operating Conditions: wc_1.60V_105C Library: FLASHT11_LV (65 nm) Celle combinatorie Flip Flop Area totale celle Data arrival time 35 497,9 µm2 6 432,5 µm2 930,4 µm2 (22 gates) 2,28 ns 854 18891,9 µm2 245 17272,2 µm2 36164,1 µm2 (851 gates) 7,92 ns
CATENA DI SCAN UC_INT DFT - 6 Flip-Flop di tipo scan
Subroutine interrupt INT_G0(6) => FC44 : FC4A Subroutine interrupt INT_G0(4) => FC34 : FC3A SIMULAZIONE LOGICA del “MICRO with INTERRUPTs” a priorità maggiore
SIMULAZIONE ‘GATE-LEVEL’ INT_CONTROLLER Operating Conditions: wc_1.60V_105C Library: FLASHT11_LV (65 nm)
UC_INT UC_LOAD UC_LOGIC UC_LOAD UC_FORCE UNITA’ DI CONTROLLO MODULARE LAYOUT
Ringraziamenti Tutor universitario: Prof.Ing. Giuseppe Caruso Tutor aziendale: Ing.Vincenzo Matranga Responsabile del ‘Development Center STMicroelectronics’ di Palermo: Ing. Biagio Giacalone