Thesis etd-01152015-123636 |
Link copiato negli appunti
Thesis type
Tesi di laurea magistrale
Author
MAZZAGLIA, CRISTINA
URN
etd-01152015-123636
Thesis title
AHB-Lite bus interface for embedded Flash IP. Development and performance evaluation.
Department
INGEGNERIA DELL'INFORMAZIONE
Course of study
INGEGNERIA ELETTRONICA
Supervisors
correlatore Ing. Carissimi, Marcella
relatore Prof. Fanucci, Luca
relatore Prof. Fanucci, Luca
Keywords
- AMBA
- Cortex
- FLASH
Graduation session start date
20/02/2015
Availability
Full
Summary
L'obiettivo di tale progetto di tesi svolto presso il gruppo TR&D CCDS di STMicroelectronics, prevede la realizzazione in linguaggio HDL Verilog di tre wrappers per tre diversi tagli di FLASH memory IPs prodotte da STMicroelectronics (NVM136KBFc M10ULP, NVM272KBFa M10ULP e NVM8Kx128Fa M10ULP, rispettivamente con word-size di 32, 64 e 128 bit), in modo da renderle integrabili in sistemi basati su architetture ARM che implementino il protocollo di comunicazione AMBA 3 AHB-Lite e stimarne le prestazioni in termini di tempi di accesso e power consumption.
Le analisi di performance e power sono state condotte allo scopo di guidare i clienti delle divisioni ST nella scelta dei vari cut di memoria disponibili, in base all’applicazione e al tipo di architettura richiesto.
A tal fine, e' stato realizzato da ST, con un approccio basato su Standard Cell, un Test Chip che implementa un SoC integrante il processore Cortex-M4 e le tre IPs con le rispettive interfacce.
Per garantire il corretto funzionamento della periferica, i wrapper oltre che fornire gli appositi segnali ai blocchi di memoria, devono garantire il rispetto delle temporizzazioni; ossia nel caso in cui il core vada a una frequenza troppo elevata tale che la Flash non riesca a completare la fase dati del generico trasferimento in un solo ciclo di clock, devono rendere possibile l'inserimento di un certo numero di wait states. Il tempo di accesso in Read-Mode delle macrocelle Flash adoperate e di circa 35ns, mentre le sequenze di Program ed Erase in generale richiedono tempi di gran lunga maggiori.
Dunque nel caso in cui la FLASH sia adoperata come SLAVE (no CODE FLASH), al fine di evitare l'occupazione prolungata del bus di sistema con l'inserimento di un numero elevato di wait states, si e scelto di gestire le operazioni di programmazione e cancellazione con la generazione di una interrupt (FLASH INTERRUPT) che segnali al sistema il loro completamento; mentre l'operazione di lettura viene gestita con l'introduzione, dipendentemente dalla frequenza di core, del minimo numero di wait states necessari; il numero di wait states e congurato tramite la scrittura su un registro utente interno ai controller, di cui si discutera nell'elaborato. Per sistemi in cui la periferica viene integrata come CODE FLASH, le operazioni di Program ed Erase richiedono invece l'introduzione dei wait states per consentire la momentanea interruzione del fetch delle istruzioni e quindi una volta terminata l'operazione di modica in Flash, riprendere l'esecuzione del programma.
Data la necessita di tale comportamento duale, i controller prevedono un bit di congurazione, che permette di attivare o disattivare l'inserimento di wait states sulle operazioni di modica del contenuto della FLASH.
Le interfacce di memoria realizzate, hanno consentito di embeddare le tre FLASH IPs in SoC basati su architetture ARM e tale soluzione è risultata particolarmente vantaggiosa per alcune divisioni ST, consentendo la realizzazione di nuovi prodotti che integrassero al loro interno una o più cut di tali memorie in modo più efficiente.
Molti dei prodotti che realizzano Sistemi Embedded integranti le suddette FLASH sono nel campo della sensoristica, per cui la divisione che maggiormente ha tratto beneficio da tale soluzione è la AMS (Analog, MEMS and Sensors). Alcuni dei prodotti realizzati da tale divisione con le IPs AMBA compliant, sono un fingerTip sensor, che integra la NVM8Kx128Fa M10ULP, un sensor HUB con le NVM136KBFc M10ULP e NVM272KBFa M10ULP IPs e infine un sensore evoluto di pressione che sfrutta un MEMS. Nel campo dell’automazione industriale, divisione IPD (Industrial and Power Discrete), è stato invece realizzato sfruttando tali IPs un Power Consumption Meter, ossia un contatore in kWh per la stima del consumo energetico.
Inoltre i wrapper sono serviti al gruppo CCDS per stimare il consumo di potenza e le prestazioni in termini di DMIPS (Dhrystone MIPS) raggiungibili dalle IPs quando integrate in tali sistemi ARM based.
Il codice HDL implementato, ha costituito per il team la base di partenza per la realizzazione di nuove IP AMBA compliant, ossia che implementassero
gi` al loro interno le interfacce di memoria AHB-Lite.
Esempi di tali IP sono la AHB NVM136KBFa M10ULP la NVM 32kBPa BCD9s.
La AHB NVM136KBFc M10ULP IP non e' altro che la NVM136KBFc M10ULP FLASH memory IP che implementa l'AHB-Lite controller; la NVM 32kBPa BCD9s IP e la IP di una memoria PCM (Phase Change Memory), nuova e promettente tecnologia di memoria non volatile, per la quale sono in fase di realizzazione un Test Vehicle per la qualica della tecnologia e un Test Chip per la validazione della IP stessa. Infine per quanto riguarda i possibili sviluppi futuri dei controllers realizzati, e stata presa in considerazione l'implementazione di un prefetch per i tagli di memoria a 64 e 128 bit, in modo da trarre maggiore vantaggio dalla word-size in caso di alte frequenze e di conseguenza di elevati wait states.
Le analisi di performance e power sono state condotte allo scopo di guidare i clienti delle divisioni ST nella scelta dei vari cut di memoria disponibili, in base all’applicazione e al tipo di architettura richiesto.
A tal fine, e' stato realizzato da ST, con un approccio basato su Standard Cell, un Test Chip che implementa un SoC integrante il processore Cortex-M4 e le tre IPs con le rispettive interfacce.
Per garantire il corretto funzionamento della periferica, i wrapper oltre che fornire gli appositi segnali ai blocchi di memoria, devono garantire il rispetto delle temporizzazioni; ossia nel caso in cui il core vada a una frequenza troppo elevata tale che la Flash non riesca a completare la fase dati del generico trasferimento in un solo ciclo di clock, devono rendere possibile l'inserimento di un certo numero di wait states. Il tempo di accesso in Read-Mode delle macrocelle Flash adoperate e di circa 35ns, mentre le sequenze di Program ed Erase in generale richiedono tempi di gran lunga maggiori.
Dunque nel caso in cui la FLASH sia adoperata come SLAVE (no CODE FLASH), al fine di evitare l'occupazione prolungata del bus di sistema con l'inserimento di un numero elevato di wait states, si e scelto di gestire le operazioni di programmazione e cancellazione con la generazione di una interrupt (FLASH INTERRUPT) che segnali al sistema il loro completamento; mentre l'operazione di lettura viene gestita con l'introduzione, dipendentemente dalla frequenza di core, del minimo numero di wait states necessari; il numero di wait states e congurato tramite la scrittura su un registro utente interno ai controller, di cui si discutera nell'elaborato. Per sistemi in cui la periferica viene integrata come CODE FLASH, le operazioni di Program ed Erase richiedono invece l'introduzione dei wait states per consentire la momentanea interruzione del fetch delle istruzioni e quindi una volta terminata l'operazione di modica in Flash, riprendere l'esecuzione del programma.
Data la necessita di tale comportamento duale, i controller prevedono un bit di congurazione, che permette di attivare o disattivare l'inserimento di wait states sulle operazioni di modica del contenuto della FLASH.
Le interfacce di memoria realizzate, hanno consentito di embeddare le tre FLASH IPs in SoC basati su architetture ARM e tale soluzione è risultata particolarmente vantaggiosa per alcune divisioni ST, consentendo la realizzazione di nuovi prodotti che integrassero al loro interno una o più cut di tali memorie in modo più efficiente.
Molti dei prodotti che realizzano Sistemi Embedded integranti le suddette FLASH sono nel campo della sensoristica, per cui la divisione che maggiormente ha tratto beneficio da tale soluzione è la AMS (Analog, MEMS and Sensors). Alcuni dei prodotti realizzati da tale divisione con le IPs AMBA compliant, sono un fingerTip sensor, che integra la NVM8Kx128Fa M10ULP, un sensor HUB con le NVM136KBFc M10ULP e NVM272KBFa M10ULP IPs e infine un sensore evoluto di pressione che sfrutta un MEMS. Nel campo dell’automazione industriale, divisione IPD (Industrial and Power Discrete), è stato invece realizzato sfruttando tali IPs un Power Consumption Meter, ossia un contatore in kWh per la stima del consumo energetico.
Inoltre i wrapper sono serviti al gruppo CCDS per stimare il consumo di potenza e le prestazioni in termini di DMIPS (Dhrystone MIPS) raggiungibili dalle IPs quando integrate in tali sistemi ARM based.
Il codice HDL implementato, ha costituito per il team la base di partenza per la realizzazione di nuove IP AMBA compliant, ossia che implementassero
gi` al loro interno le interfacce di memoria AHB-Lite.
Esempi di tali IP sono la AHB NVM136KBFa M10ULP la NVM 32kBPa BCD9s.
La AHB NVM136KBFc M10ULP IP non e' altro che la NVM136KBFc M10ULP FLASH memory IP che implementa l'AHB-Lite controller; la NVM 32kBPa BCD9s IP e la IP di una memoria PCM (Phase Change Memory), nuova e promettente tecnologia di memoria non volatile, per la quale sono in fase di realizzazione un Test Vehicle per la qualica della tecnologia e un Test Chip per la validazione della IP stessa. Infine per quanto riguarda i possibili sviluppi futuri dei controllers realizzati, e stata presa in considerazione l'implementazione di un prefetch per i tagli di memoria a 64 e 128 bit, in modo da trarre maggiore vantaggio dalla word-size in caso di alte frequenze e di conseguenza di elevati wait states.
File
Nome file | Dimensione |
---|---|
tesi_Mazzaglia.pdf | 3.30 Mb |
Contatta l’autore |