1 ARM PROCESSORS FAMILY INTRODUZIONE ALL ISA ARM PIPELINES UTILIZZATE DAI PROCESSORI ARM ARM PROCESSOR CORES ARM CPU CORES EMBEDDED ARM-BASED SYSTEMS 2 INTRODUZIONE ALL'ISA ARM
PROCESSORI ARM 3 I processori della famiglia ARM sono largamente i più diffusi per sistemi integrati di tipo embedded (telefonia cellulare, sistemi wireless, PDA, ecc) L ISA è principalmente di tipo RISC con qualche concessione al CISC che non pregiudica l efficienza della pipeline Vedremo che una delle pipelines utilizzate è pressochè identica a quella del MIPS PROCESSORI ARM 4 EVOLUZIONE DELLA SPECIE Il primo processore ARM (Advanced RISC Machine) fu sviluppato a Cambridge presso la Acorn Computers Limited (successivamente ARM Limited), fra l Ottobre 1983 e l Aprile 1985, sulla base degli studi di Patterson e Ditzel che portarono alla realizzazione del primo processore RISC, il Berkeley RISC I. L architettura originale basata su 3 stadi di pipeline e rimasta sostanzialmente invariata fino alla versione 7 compresa (1995). Per ottenere un incremento si prestazioni nelle versioni 8 e 9 si e passati ad una pipeline a 5 stadi (simile a quella del MIPS). Per un ulteriore incremento di prestazioni si è passati a pipeline più complesse a 6 stadi e + stadi versioni 10 e 11.
ARM ISA REGISTRI INTERNI USER MODE r0 15 GPRs, PC, CPSR r1 r2 r3 (current program r4 r5 status register) r6 r7 SYSTEM MODES r8 r9 r10 Gli altri 16 registri del r11 r12 file register più altri 5 r13 r14 status registers sono r15 (PC) usati per le modalità di funzionamento speciali (gestione di interrupts e chiamate dal SO) CPSR user mode fiq mode r8_fiq r9_fiq r10_fiq r11_fiq r12_fiq r13_fiq r14_fiq SPSR_fiq svc mode r13_svc r14_svc SPSR_svc abort mode r13_abt r14_abt SPSR_abt irq mode Utilizzabili in user mode Utilizzabili in system modes r13_irq r14_irq r13_und r14_und SPSR_irq SPSR_und undefined mode 5 ARM ISA FORMATO DEL CPSR 6 N (Negative), Z (Zero), C (Carry), V (overflow) mode control processor mode T control instruction set T = 1 istruzioni 16-bit Thumb T = 0 instruzioni 32-bit ARM standard I F interrupt enables 31 28 27 8 7 6 5 4 0 N Z C V unused I F T mode
ARM ISA ECCEZIONI I processori ARM supportano un vasta varietà di eccezioni (interrupts, traps e chiamate da SO) Gestione delle eccezioni Lo stato corrente viene salvato copiando il PC su r14_exc e il CPSR su SPSR_exc (exc indica il tipo di eccezione, che può essere fiq, svc, abort, irq, undefined) La modalità operativa del processore passa da user mode all appropriato exception mode Il valore del PC viene forzato ad un valore compreso tra 00 16 e 1C 16, corrispondente alla specifica tipologia di eccezione L istruzione corrispondente alla locazione alla quale viene forzato il PC di solito contiene un branch alla routine di exception handling; l exception handler utilizza r13_exc, che è normalmente inizializzato per puntare ad uno stack in memoria utilizzato per salvare il contenuto di registri Al ritorno dall eccezione viene ripristinata la modalità user 7 ARM ISA ORGANIZZAZIONE DELLA MEMORIA Array lineare di bytes numerati da 0 a 2 32 1 Tipi di dato bytes (8 bits) half-words (16 bits) allineati su 4 byte 2-byte boundaries (con byte iniziale di indirizzo pari) words (32 bits) allineati su 4- byte (con byte iniziale di indirizzo multiplo di 4) Si può selezionare la modalità big endian o little endian (quella dell esempio) 23 19 15 11 7 3 bit 31 bit 0 22 18 word16 14 10 6 2 21 17 13 9 5 half-word4 1 20 16 12 half-word14 half-word12 word8 byte6 byte3 byte2 byte1 byte0 8 4 0 8 byte address
ARM ISA INSTRUCTION SET (1) Architettura Load-store Gli operandi sono sempre contenuti nei GPRs Le uniche istruzioni che coinvolgono la memoria sono quelle di load/store Tipologie di Istruzioni Data Processing utilizzano e modificano il contenuto dei registri Data Transfer copiano il contenuto di locazioni di memoria in registri (load) o copiano il contenuto di registri in locazioni della memoria (store) Control Flow branch branch-and-link salva l indirizzo di ritorno in modo da ripristinare la corretta sequenza d esecuzione Chiamate del sistema operativo (interrupt software) 9 ARM ISA INSTRUCTION SET (2) 10 Istruzioni di data processing a 3 operandi Esecuzione condizionale di ciascuna istruzione Istruzioni di load/store multiplo di registri Capacità di eseguire un operazione di shift e una operazione di tipo ALU tramite singola istruzione eseguibile in singolo ciclo (troughput) Possibilità di ampliare l Instruction Set Open utilizzando le operazioni del coprocessore Modalità di funzionamento Thumb che consente una rappresentazione compressa su 16 bit delle istruzioni
ARM ISA ISTRUZIONI DI DATA PROCESSING (1) 11 Classificazione delle istruzioni di data processing Operazioni Aritmetiche Operazioni logiche bit a bit Operazioni di spostamento dati fra registri Operazioni di comparazione Operandi: a 32-bit Tre tipologie di operandi: Contenuto di registri Il secondo operando può essere una costante (immediate) Un operando proveniente da un registro può essere shiftato Risultato a 32-bit salvato in un registro Le operazioni di long multiply fanno eccezione, infatti producono risultati a 64- bit ARM ISA ISTRUZIONI DI DATA PROCESSING (2) 12 Arithmetic Operations Bit-wise Logical Operations ADD r0, r1, r2 r0 := r1 + r2 AND r0, r1, r2 r0 := r1 and r2 ADC r0, r1, r2 r0 := r1 + r2 + C ORR r0, r1, r2 r0 := r1 or r2 SUB r0, r1, r2 r0 := r1 - r2 EOR r0, r1, r2 r0 := r1 xor r2 SBC r0, r1, r2 r0 := r1 - r2 + C - 1 BIC r0, r1, r2 r0 := r1 and (not) r2 RSB r0, r1, r2 r0 := r2 r1 RSC r0, r1, r2 r0 := r2 r1 + C - 1 Register Movement Comparison Operations MOV r0, r2 r0 := r2 CMP r1, r2 set cc on r1 - r2 MVN r0, r2 r0 := not r2 CMN r1, r2 set cc on r1 + r2 TST r1, r2 set cc on r1 and r2 TEQ r1, r2 set cc on r1 xor r2
ARM ISA ISTRUZIONI DI DATA PROCESSING (3) 13 Operandi immediati: è possibile rappresentare valori da 0 a 2 32 1, ma non tutti i valori: immediate = (0->255) x 2 2n, 0 <= n <= 12 ADD r3, r3, #3 AND r8, r7, #&ff Shift di uno degli operandi r3 := r3 + 3 r8 := r7 [7:0], & indica valore esadecimale E possibile shiftare il secondo operando prima che sia combinato con il primo ADD r3, r2, r1, LSL #3 ADD r5, r5, r3, LSL r2 r3 := r2 + 8 x r1 r5 := r5 + 2 r2 x r3 ARM ISA ISTRUZIONI DI DATA PROCESSING (4) 14 ISTRUZIONI DI SHIFT 31 0 31 0 LSL Logical Shift Left LSR Logical Shift Right ASR Arithmetic Shift Right ROR Rotate Right RRX Rotate Right Extended by 1 place 00000 00000 LSL #5 LSR #5 31 0 31 0 0 1 00000 0 11111 1 ASR #5, positive operand ASR #5, negative operand 31 0 31 0 C C C ROR #5 RRX
ARM ISA ISTRUZIONI DI DATA PROCESSING (5) BIT DI CONDIZIONE DEL CPSR Ciascuna Istruzione di Data Processing (DPI) può settare i bit di condizione (N, Z, V, and C) del CPSR Per tutte le DPI eccetto la comparazione dev essere fatta una richiesta specifica A livello assembly questo viene implementato agiungendo una S al nome dell istruzione Esempio (r3-r2 := r1-r0 + r3-r2) addizione a 64 bit fra i regs r1-r0 e r3-r2 15 ADDS r2, r2, r0 ADC r3, r3, r1 ; sommo le 2 word meno significative, il carry viene scritto su C e tiene conto del riporto ; sommo le 2 word più significative con l eventuale riporto Le operazioni aritmetiche settano tutti i flag (N, Z, C, and V) Le operazioni logiche e di spostamento dati settano N e Z I valori di V e C vengono preservati ARM ISA ISTRUZIONI DI DATA PROCESSING (6) MOLTIPLICAZIONI Esempio (Multiply, Multiply-Accumulate) MUL r4, r3, r2 r4 := [r3 x r2] <31:0> MLA r4, r3, r2, r1 r4 := [r3 x r2 + r1] <31:0> NB Vengono scritti sul registro destinazione i 32 bit meno significativi, gli altri bit vengono ignorati Non è supportato che il secondo operando sia un immediato Il registro destinazione non può coincidere con il primo registro sorgente Se l istruzione è di tipo `S`, il bit V viene preservato e il bit C diviene privo di significato Moltiplicazione per una costante: viene implementata spesso tramite add e shift esempio (r0 = r0 * 35) ADD r0, r0, r0, LSL #2 ; r0 = r0 x 5 RSB r0, r0, r0, LSL #3 ; r0 = 7 x r0 16
ARM ISA ISTRUZIONI DI DATA TRANSFER (1) 17 Istruzioni di Load e Store di registri singoli trasferimento di un dato (byte, half-word, word) tra un registro e la memoria Istruzioni di Load e Store di registri multipli rende possibile il trasfermento di grandi quantità di dati utilizzate per la chiamata ed il ritorno da funzione, per salvare/ripristinare lo stato dei registri, e per copiare blocchi di dati Istruzioni di swap di registri singoli rende possibile lo scambio del contenuto di un registro con il contenuto di una locazione di memoria usato per implementare semafori ARM ISA ISTRUZIONI DI DATA TRANSFER (2) LOAD E STORE DI SINGOLO REGISTRO 18 Indirizzamento Register-indirect Indirizzamento Base+offset (offset fino a 4Kbytes) LDR r0, [r1, #4] Indirizzamento Auto-indexing r0 := mem 32 [r1 +4] LDR r0, [r1] STR r0, [r1] LDRB r0, [r1] r0 := mem 32 [r1] mem 32 [r1] := r0 r0 := mem 8 [r1] LDR r0, [r1, #4]! r0 := mem 32 [r1 + 4] r1 := r1 + 4 Indirizzamento Post-indexed LDR r0, [r1], #4 r0 := mem 32 [r1] r1 := r1 + 4
ARM ISA ISTRUZIONI DI DATA TRANSFER (3) UTILIZZO DELL INDIRIZZAMENTO POST-INDEXED 19 COPY: LDR r1, TABLE1 ; r1 punta a TABLE1 LDR r2, TABLE2 ; r2 punta a TABLE2 LOOP: LDR r0, [r1] STR r0, [r2] ADD r1, r1, #4 ADD r2, r2, #4... TABLE1:... TABLE2: COPY: LDR r1, TABLE1 ; r1 punta a TABLE1 LDR r2, TABLE2 ; r2 punta a TABLE2 LOOP: LDR r0, [r1], #4 STR r0, [r2], #4... TABLE1:... TABLE2: ARM ISA ISTRUZIONI DI DATA TRANSFER (4) TRASFERIMENTO MULTIPLO DI DATI REGISTRI -MEMORIA 20 LDMIA r1, {r0, r2, r5} LDMIB r1, {r0, r2, r5} r0 := mem 32 [r1] r2 := mem 32 [r1 + 4] r5 := mem 32 [r1 + 8] r0 := mem 32 [r1 + 4] r2 := mem 32 [r1 + 8] r5 := mem 32 [r1 + 12] tutti I registri sono copiati tramite una singola istruzione l ordine dei registri non ha importanza includendo r15 nella lista dei registri causa una modifica del flusso di esecuzione LDMDA r1, {r0, r2, r5} r0 := mem 32 [r1] r2 := mem 32 [r1-4] r5 := mem 32 [r1-8] LDMDB r1, {r0, r2, r5} r0 := mem 32 [r1-4] r2 := mem 32 [r1-8] r5 := mem 32 [r1-12]
ARM ISA ISTRUZIONI DI MODIFICA DEL FLUSSO DI CONTROLLO (1) Branch Interpretation Normal uses B BAL Unconditional Always Always take this branch Always take this branch BEQ Equal Comparison equal or zero result BNE Not equal Comparison not equal or non-zero result BPL Plus Result positive or zero BMI Minus Result minus or negative BCC BLO Carry clear Lower Arithmetic operation did not give carry-out Unsigned comparison gave lower BCS BHS Carry set Higher or same Arithmetic operation gave carry-out Unsigned comparison gave higher or same BVC Overflow clear Signed integer operation; no overflow occurred BVS Overflow set Signed integer operation; overflow occurred BGT Greater than Signed integer comparison gave greater than BGE Greater or equal Signed integer comparison gave greater or equal BLT Less than Signed integer comparison gave less than BLE Less or equal Signed integer comparison gave less than or equal BHI Higher Unsigned comparison gave higher BLS Lower or same Unsigned comparison gave lower or same 21 ARM ISA ISTRUZIONI DI MODIFICA DEL FLUSSO DI CONTROLLO (2) ESECUZIONE CONDIZIONALE DELLE ISTRUZIONI L esecuzione condizionale è usata per evitare l utilizzo di istruzioni di salto nel caso si debba eventualmente evitare l esecuzione di un limitato numero di istruzioni Esempio Senza l esecuzione condizionale CMP r0, #5 ; BEQ BYPASS ; if (r0!=5) { ADD r1, r1, r0 ; r1:=r1+r0-r2 SUB r1, r1, r2 ; } BYPASS:... 22 Con l esecuzione condizionale CMP r0, #5 ; ADDNE r1, r1, r0 ; SUBNE r1, r1, r2 ;... Note: add 2 letter condition after the 3-letter opcode ; if ((a==b) && (c==d)) e++; CMP r0, r1 CMPEQ r2, r3 ADDEQ r4, r4, #1
ARM ISA ISTRUZIONI DI MODIFICA DEL FLUSSO DI CONTROLLO (3) ISTRUZIONI DI BRANCH AND LINK 23 Branch to subroutine (r14 è utilizzato come link register) BL SUBR ; branch to SUBR.. ; return here SUBR:.. ; SUBR entry point MOV pc, r14 ; return ARM ISA ISTRUZIONI DI MODIFICA DEL FLUSSO DI CONTROLLO (4) INTERRUPT SOFTWARE Il supervisore è un programma che opera ad un livello privilegiato può fare delle cose che un programma a livello utente non può fare direttamente Esempio: mandare in outptut del testo ad un display ARM ISA include SWI (SoftWare Interrupt) 24 ; output r0 [7:0] SWI SWI_WriteC ; return from a user program back to monitor SWI SWI_Exit
ARM ISA INSTRUCTION SET COMPLETO (1) 25 ARM ISA INSTRUCTION SET COMPLETO (2) 26
ARM ISA INSTRUCTION SET COMPLETO (3) 27 ARM ISA INSTRUCTION SET COMPLETO (4) 28
29 PIPELINES UTILIZZATE DAI PROCESSORI ARM ARM PIPELINES PIPELINE A 3 STADI (ARM 1-7) Register file 2 porte in lettura, 1 porta in scrittura + 1 porta in lettura e 1 in scrittura riservate per r15 (PC) Barrel shifter esegue lo shift o il rotate di un operando di un numero di bit a scelta ALU esegue le operazioni logiche ed aritmetiche Memory address register + incrementer Memory data registers Instruction decoder e logica di controllo associata A L U b u s A[31:0] address register P C A b u s incrementer register bank ALU multiply register barrel shifter data out register PC B b u s control 30 instruction decode & control data in register D[31:0]
Fetch ARM PIPELINES PIPELINE A 3 STADI (ARM 1-7) L istruzione viene prelevata dalla memoria e caricata nella pipeline Decode L istruzione viene decodificata e I segnali di controllo del datapath vengono settati per il ciclo successivo. In questo ciclo l istruzione utilizza la logica di decodifica ma non il datapath Execute L istruzione utilizza il datapath: vengono gli operandi dal file register, uno degli operandi viene eventualmente shiftato, la ALU calcola il risultato che viene scritto (write back) sul file register 31 ARM PIPELINES PIPELINE A 3 STADI (ARM 1-7) ESECUZIONI DELLE ISTRUZIONI SINGOLO CICLO 32 fetch decode execute add add r0,r1,#5 sub r2,r3,r6 fetch decode execute sub cmp r2,#3 fetch decode execute cmp 1 2 3 time
ARM PIPELINES PIPELINE A 3 STADI (ARM 1-7) ESECUZIONI DELLE ISTRUZIONI DI ACCESSO ALLA MEMORIA 33 1 fetch ADD decode execute LA LOGICA DI DECODIFICA GENERA SEMPRE I SEGNALI DI CONTROLLO UTILIZZATI DAL DATAPATH NEL CICLO SUCCESSIVO 2 fetch STR decode calc. addr. data xfer 3 fetch ADD decode execute 4 fetch ADD decode execute 5 fetch ADD decode execute instruction time ARM PIPELINES PIPELINE A 3 STADI (ARM 1-7) ESECUZIONI DELLE ISTRUZIONI DI ACCESSO MULTIPLO ALLA MEMORIA ldmia r0,{r2,r3} fetch decode ex ld r2 ex ld r3 Lo stadio di decode blocca L avanzamento delle istruzioni nella pipeline finchè LDMIA non ha terminato 34 sub r2,r3,r6 fetch decode ex sub cmp r2,#3 fetch decodeex cmp Instruzione ritardata time Il fetch della SUB avviene al ciclo standard, ma l istruzione non viene decodificata finchè LDMIA non è terminata
sub r2,r3,r6 foo add r0,r1,r2 ARM PIPELINES PIPELINE A 3 STADI (ARM 1-7) ESECUZIONI DI SALTO La decisione sulla destinazione del salto non può essere presa fino alla fase di execute bne foo fetch decode ex bne ex bne ex bne fetch decode 2 cicli vengono persi solo se il salto viene effettuato (Predict Branch Not Taken) fetch decode ex add time 35 ARM PIPELINES 36 PIPELINE A 3 STADI (ARM 1-7) DATA PROCESSING INSTRUCTION DATAPATH ACTIVITY Reg-Reg Rd = Rn op Rm r15 = AR + 4 AR = AR + 4 Reg-Imm Rd = Rn op Imm r15 = AR + 4 AR = AR + 4 address register Rd registers Rn increment mult Rm PC as ins. address register Rd registers Rn increment mult PC as ins. as instruction as instruction [7:0] data out data in i. pipe data out data in i. pipe (a) register register operations (b) register immediate operations
ARM PIPELINES PIPELINE A 3 STADI (ARM 1-7) STR (store register) DATAPATH ACTIVITY Compute address AR = Rn op Disp r15 = AR + 4 Store data AR = R15 mem[ar] = Rd<x:y> If autoindexing => Rn = Rn +/- 4 address register Rn registers mult increment lsl #0 = A / A + B / A - B PC [11:0] Rn address register PC registers mult increment Rd shifter = A+ B / A-B 37 data out data in i. pipe byte? data in i. pipe (a) 1 st cycle compute address (b) 2 nd cycle store data & auto-index ARM PIPELINES PIPELINE A 3 STADI (ARM 1-7) PRIMI DUE CICLI DI ESECUZIONE DI UN ISTRUZ DI SALTO Compute target address AR = r15 + Disp,lsl #2 Save return address (if required) r14 = r15 AR = AR + 4 address register PC registers mult increment lsl #2 Il terzo ciclo viene utilizzato per correggere il valore di = A + B r14. In caso contrario [23:0] punterebbe a PC+8 anzichè a PC+4, avendo continuato a fare fetch dopo il fetch del branch (a) 1 st cycle compute branch target data out data in i. pipe address register R14 registers PC = A increment mult shifter data out data in i. pipe (b) 2 nd cycle save return address 38
ARM PIPELINES 39 ISTRUZIONI THUMB ARM PIPELINES ARM 7 THUMB MANAGEMENT 40
ARM PIPELINES 41 INCREMENTO DELLE PRESTAZIONI Diminuzione del periodo di clock Riduzione del CPI Reimplementazione delle istruzioni a piu cicli Riduzione degli stalli della pipeline ARM PIPELINES PIPELINE A 5 STADI (ARM 8,9, strongarm) Architettura di Harvard La pipeline e simile a quella MIPS, le differenza riguardano: PC contenuto nel file dei registri, il che implica 2 porte in scrittura e 3 in lettura, al posto di 1 e 2 Barrel shifter Moltiplicatore Modulo per la gestione di pre e post indirizzamento autoincrementante che consenta il load e store di piu dati nella stessa istruzione next pc pc + 4 B, BL MOV pc SUBS pc LDR pc +4 pc+8 LDM/ STM postindex +4 pre-index mux load/store address r15 ALU I-cache I decode register read mul shift reg shift byte repl. D-cache rot/sgn ex fetch 42 instruction decode immediate fields forwarding paths execute buffer/ data register write write-back
PIPELINE A 5 STADI (ARM 8,9, strongarm) Fetch Decode L istruzione viene decodificata Vengono letti i 3 operandi Execute Un operando viene shiftato e la ALU genera il risultato, oppure Viene calcolato un indirizzo Buffer/data (Memory) Accesso alla memoria dati (load, store) Write-back Scrivo il risultato sul reg file ARM PIPELINES next pc pc + 4 B, BL MOV pc SUBS pc LDR pc +4 pc+8 LDM/ STM postindex +4 pre-index mux load/store address r15 ALU I-cache I decode register read mul shift reg shift byte repl. D-cache rot/sgn ex fetch instruction decode immediate fields forwarding paths execute buffer/ data 43 register write write-back ARM PIPELINES 44 CONFRONTO FRA LE 2 PIPELINES
ARM PIPELINES 45 CONFRONTO FRA LE 2 PIPELINES L architettura a 3 stadi esegue in sequenza la decompressione delle istruzioni thumb e quindi la decodifica. Nella pipeline a 5 stadi non c è tempo sufficiente, e la decodifica dei 2 tipi di istruzioni avviene in parallelo Lo stadio di memory della pipeline a 5 stadi non ha uno stadio equivalente nell altra pipe, poichè l accesso in memoria viene eseguito con un ciclo di execute addizionale che provoca uno svuotamento della pipeline. L incremento di prestazioni richiesto al sottosistema di memoria e notevole ARM PIPELINES 46 PIPELINE A 6 STADI (ARM10) Consente frequenze di clock ancora piu elevate (50%) Ottimizzazione degli stadi di fetch, memory ed execute, duplicazione dello stadio di decode
47 ARM CORES ARM CORES 48 TIPOLOGIE DI SISTEMI VLSI CHIP e COREs Un sistema VLSI, puo essere commercializzato in 3 diverse forme Chip Core Hardware (Silicon IP) Core Software (Soft IP) Nello sviluppo di System on Chip è indispensabile avvalersi di moduli IP (cores) sviluppati da terzi I processori e le CPU della famiglia ARM sono sempre commercializzati sotto forma di cores (a parte lo strongarm)
ARM PROCESSOR CORES 49 ARM7TDMI E attualmente il core ARM piu diffuso. E lo standard de-facto per applicazioni di telefonia mobile digitale Viene commercializzata sotto forma di macrocella customizzata per la tecnologia richiesta dall acquirente Supporta il subset di istruzioni a 16 bit THUMB, on-chip debug, EmbeddedICE hardware, moltiplicazione a 64 bit E stato fabbricato in numerose tecnologie CMOS diverse, con frequenze di clock fino a 100 MHz (66 typ) e alimentazioni fino a 0.9 V (3.3 typ) ARM PROCESSOR CORES ARM7TDMI 50
ARM PROCESSOR CORES 51 ARM7TDMI ARM PROCESSOR CORES 52 ARM7TDMI-S E la versione soft-ip dell ARM7TDMI, viene commercializzata come progetto verilog o VHDL e il porting sulla tecnologia target viene eseguito dall acquirente tramite sintesi Il processo di sintesi prevede la possibilta di introdurre modifiche architetturali quali l omissione del modulo embeddedice e/o la sostituzione del moltiplicatore a 64 bit con uno a 32 bit, con una conseguente riduzione della funzionalita ma anche di dimensioni e consumi La versione completa e il 50% piu estesa e consuma il 50% in piu rispetto alla versione hard a parita di tecnologia
ARM PROCESSOR CORES 53 ARM9TDMI E il core ARM per applicazioni che richiedano prestazioni tanto elevate da non poter essere soddisfatte dall architettura 7 Viene commercializzata sotto forma di macrocella customizzata per la tecnologia richiesta dall acquirente Ha le stesse funzionalita dell ARM7TDMI, con la pipeline del processore che passa da 3 a 5 stadi e un embeddedice hardware piu evoluto E stato fabbricato in tecnologie CMOS a 0.35, 0.25 e 0.18 micron, con alimentazioni fino da 3.3 a 1.2 V Necessita di 2 cache separate (istruzioni e dati) per poter sfruttare la propria potenza elaborativa ARM PROCESSOR CORES 54 ARM9TDMI
ARM PROCESSOR CORES 55 ARM9TDMI-S E la versione soft-ip dell ARM9TDMI, viene commercializzata come progetto verilog o VHDL e il porting sulla tecnologia target viene eseguito dall acquirente tramite sintesi Implementa una versione piu estesa dell instruction set rispetto alla versione hard, con l inclusione di istruzioni per il signal processing E il 30% piu estesa rispetto alla versione hard a parita di tecnologia ARM CPU CORES 56 CORES PIU EVOLUTI Oltre a core che includono semplicemente il processore la ARM commercializza anche core che includono i moduli che spesso è indispensabile integrare sul chip: memorie Cache, Memory Management Units (MMU) ed (eventualmente) bus controllers per la gestione di periferiche di I/O Tali moduli per poter raggiungere il massimo delle prestazioni potenziali del sistema devono essere fortemente ottimizzati per il processore ospite. Ha quindi senso per una società che intenda realizzare un System on Chip lasciare al fornitore del processore l onere di sviluppare anche questi moduli
ARM CPU CORES ARM710T 57 Core hardware commercializzato dalla ARM limited Il core comprende i seguenti moduli Pipeline a 3 stadi + circuiteria di debug e embeddedice (ARM7TDMI) Un cache unificata per i dati e le istruzioni di 8Kbyte di tipo 4-way associative, write back MMU Coprocessore Controller per il bus delle periferiche di I/O (AMBA) Ne esistono altre 2 versioni con caratteristiche simili (ARM720T e ARM740T) ARM CPU CORES ARM710T 58 N/A 53 11.7 0-59 240 220
ARM CPU CORES 59 strongarm CPU stand-alone sviluppata dalla Arm limited e da Digital Equipment Corporation. La versione attualmente in commercio, la SA-110, è prodotta da Intel, che ha acquisito la Digital nel 1998 Il chip comprende i seguenti moduli Pipeline a 5 stadi con register forwarding Esecuzione in singolo ciclo di tutte le istruzioni a parte la moltiplicazione a 64 bit e i trasferimenti multipli di registri Un cache per le istruzioni di 16Kbyte di tipo 32-way associative Un cache per i dati di 16Kbyte di tipo 32-way associative, write back MMU con gestione di TLB separata per istruzioni e dati Tra i processori aventi lo stesso livello di prestazioni, dimensioni e consumi a parità di tecnologia sono fra i più ridotti ARM CPU CORES 60 strongarm 16 Kbytes 16 Kbytes
ARM CPU CORES 61 StrongARM ARM CPU CORES ARM940T 62 Core hardware commercializzato dalla ARM limited Il core comprende i seguenti moduli Pipeline a 5 stadi + circuiteria di debug e embeddedice (ARM9TDMI) Un cache per le istruzioni di 16Kbyte di tipo 16-way associative Un cache per i dati di 16Kbyte di tipo 16-way associative, write back MMU unificata per dati e istruzioni Interfaccia per la gestione di un coprocessore esterno Controller per il bus delle periferiche di I/O (AMBA) Ne esiste un altra versione con caratteristiche simili, l ARM920T, che supporta WindowsCE
ARM CPU CORES ARM940T 63 16 Kbytes 16 Kbytes ARM CPU CORES ARM940T 64
65 EMBEDDED ARM-BASED SYSTEMS EMBEDDED ARM-BASED SYSTEMS OneC VWS22100 GSM chip 66
EMBEDDED ARM-BASED SYSTEMS Typical GSM handset architecture 67 EMBEDDED ARM-BASED SYSTEMS 68 ERICSSON - BLUETOOTH BASEBAND CONTROLLER
EMBEDDED ARM-BASED SYSTEMS BLUETOOTH SYSTEM 69