ARM Cortex

L'ARM Cortex è una famiglia di microprocessori presentata nel 2005 dalla ARM Holdings e basati sul set di istruzioni ARMv7.
La famiglia Cortex è formata da una serie di blocchi funzionali che possono essere collegati tra loro al fine di soddisfare le esigenze dei clienti, quindi un specifico processore Cortex non ha necessariamente tutte le unità funzionali della famiglia. I processori Cortex sono disponibili in configurazione singolo core o multicore e per ogni famiglia esistono più core con prestazioni diverse.
La famiglia Cortex è suddivisa nella serie A (Application), la serie R (Realtime) e la serie M (Microcontroller).
La famiglia Cortex A è stata sviluppata al fine di ottenere prestazioni elevate e consumi ridotti. I processori di questa serie si suddividono in tre core, il core 5, 8 e 9. Il core 5 ha una pipeline a 8 stadi, il core 8 ha due pipeline a 13 stadi e il core 9 ha due pipeline a 8 stadi. Le pipeline dei primi ARM erano a 3 stadi e in seguito sono state sviluppate unità fino a 9 stadi. Lo sviluppo di un processore a 13 stadi si è reso necessario per innalzare la frequenza di funzionamento del processore. Al fine di evitare che i salti condizionati deprimessero eccessivamente le prestazioni per via della pipeline lunga tutti i core implementa un'unità di predizione delle diramazioni che secondo le dichiarazioni del costruttore predice correttamente il 95% dei salti. Il processore al fine di non richiedere un numero eccessivo di transistor non implementa nel core 8 l'esecuzione fuori ordine delle istruzioni, mentre il core 9 introduce anche questa caratteristica, il core 3 avendo una sola pipeline non può eseguire più di un'istruzione per ciclo di clock. Nel core 8 la prima istruzione viene caricata dalla prima pipeline, la seconda istruzione viene caricata dalla seconda pipeline; nel caso di vincoli l'istruzione vincolata viene bloccata fino a quando l'altra istruzione non è completata e quindi il vincolo è risolto. Le pipeline sono indipendenti ed equivalenti, tranne per l'operazione di moltiplicazione che può essere eseguita solo dalla prima pipeline. Questo normalmente non è un grave vincolo dato che le operazioni di moltiplicazioni sono normalmente rare. Il core 9 gestendo l'esecuzione fuori ordine analizza il codice e ricerca due istruzioni non vincolate per eseguirle in parallelo, fornendo prestazioni migliori del core 8. Il core 9 gestisce anche la ridenominazione dei registri al fine di ridurre i vincoli e migliorare l'esecuzione parallela delle istruzioni. I core 5 e 9 possono essere assemblati in integrati che possono contenere fino a 4 core. (fonte: Wikipedia)
Loading....