Una piattaforma SoC per il test dei chip

L’industria elettronica ha investito pesantemente nello sviluppo di nuove tecnologie di memoria quali Pram, Mram e Rram. Le prestazioni dei prototipi realizzati nelle nuove tecnologie di memoria stanno migliorando rapidamente, ma occorre ancora molto lavoro prima che questi dispositivi possano essere introdotti su larga scala per competere con le memorie convenzionali o per sostituirle. In generale, quando è disponibile un prototipo realizzato in una nuova tecnologia di memoria, sono stati già effettuati i test di base per verificare la sussistenza di problemi legati alla fabbricazione, come i guasti con valore fisso, di transizione o legati alla decodifica degli indirizzi.Tuttavia, è necessario anche un altro tipo di test, sotto forma di prove legate alle prestazioni, che indicheranno la velocità con cui è possibile accedere al chip in modo affidabile, oltre a determinare di quanto la velocità di accesso al chip impatta sulle prestazioni dell’intero sistema di calcolo. Per effettuare con successo le verifiche pianificate sulle prestazioni, l’ambiente di test deve essere in grado di generare forme d’onda digitali configurabili per accedere al chip. Quest’ultimo deve poter anche mettere in piedi un ambiente di calcolo completo per misurare l’impatto della velocità di accesso al chip. Esistono molti modi per creare o per acquistare un ambiente di test per soddisfare queste esigenze. In ogni caso, il team in Qualcomm ha deciso di realizzarlo internamente, utilizzando il kit di valutazione ZC706 del SoC Interamente Programmabile Zynq7000 di Xilinx.

Pro e contro delle memorie
Le tecnologie di memoria convenzionali come Dram, Sram e flash immagazzinano uni e zeri attraverso delle cariche elettriche posizionate in ciascuna cella di memoria. La tecnologia Dram è ampiamente usata nei PC e nei dispositivi informatici mobili per l’esecuzione di programmi e per l’archiviazione di dati temporanei. La Sram è comunemente usata come memoria cache e di registro nei microprocessori. Si trova anche di frequente nei sistemi dedicati, nei casi in cui il consumo di potenza costituisca un parametro di progetto critico. Al contrario di una Dram o di una Sram, la memoria flash assicura l’archiviazione permanente dei dati anche quando viene rimossa l’alimentazione dal sistema. La memoria flash è più lenta delle altre, e potrebbe essere soggetta a fenomeni di usura con un numero particolarmente elevato di cicli di programmazione. Rispetto alle tecnologie convenzionali di memoria, basate sull’immagazzinamento di cariche elettriche, le nuove tecnologie di memoria sono basate su altre proprietà fisiche dei propri elementi di memoria. Ad esempio, un elemento di memoria di una Ram magnetoresistiva è formato da due terminali ferromagnetici separati da un sottile strato di isolante. Ciascun terminale è in grado di mantenere uno stato di magnetizzazione. In uno di essi è permanente, nell’altro può essere modificato per mezzo di un campo elettrico esterno per memorizzare i dati. Questi ultimi vengono letti misurando la resistenza elettrica dell’elemento. La Mram è simile a una Sram in termini di velocità, e a una Dram in termini di densità. Rispetto a una memoria flash, la Mram è molto più veloce e non è soggetta a fenomeni di degrado da programmazione.

Analisi dei requisiti
Nell’ideare uno schema per valutare un prototipo di memoria Mram, abbiamo optato per un approccio basato su SoC Zynq in base alle seguenti considerazioni:

  • l’interfaccia per scheda Fpga mezzanino (Fmc) presente sulla scheda ZC706 fornisce la capacità di trasmettere segnali ad alta velocità da e verso il prototipo di memoria, per mezzo di una scheda figlia Fmc;
  • la porzione in logica programmabile (PL) del SoC Zynq consente di costruire unità di controllore di memoria parametrizzabili. Ciò è essenziale per assicurare la possibilità di variare la velocità di accesso al prototipo;
  • il sistema di elaborazione (PS) del SoC Zynq consiste in due core Arm A9, e permette di modificare la velocità di accesso al prototipo via software;
  • il PS consente anche di realizzare un sistema di calcolo completo. Questo è indispensabile per permettere la misura, attraverso il sistema di test, dell’impatto della velocità di accesso al chip in un ambiente di calcolo completo.

Architettura hardware e di sistema
Consideriamo l’architettura hardware del nostro ambiente di test del chip. Il software gira su processori Arm A9 all’interno del SoC Zynq, mentre un’unità controllore di memoria è stata creata usando la logica programmabile. Abbiamo stabilito un canale Dma fra il PS e l’unità controllore per spostare facilmente grossi blocchi di dati fra di loro. Il prototipo di memoria risiede sulla scheda figlia Fmc, e dialoga con l’unità controllore di memoria attraverso l’interfaccia della Fmc. I tre strati alla base sono di tipo hardware e i tre strati in cima sono di tipo software. Abbiamo scelto Linux come sistema operativo perché è open source, e di conseguenza il codice sorgente può essere modificato se necessario. Malgrado non siano state apportate modifiche nell’attuale stadio dello sviluppo, potrebbe essere necessario sfruttare alcune delle proprietà uniche dei nuovi chip di memoria strada facendo. Il software che abbiamo scritto a livello applicativo ricadeva in due categorie. Una riguardava la configurazione dell’unità controllore di memoria, e l’altra si occupava della profilazione delle prestazioni del chip di memoria e delle prestazioni dell’intero sistema.

Semplicità di migrazione di hardware e software
Con l’aiuto del Fae locale di Xilinx, abbiamo allestito l’ambiente di test nel giro di un mese. Gran parte del nostro sforzo si è concentrato nel progettare e nel realizzare l’interfaccia fra gli strati software e quelli hardware. Questo è in realtà uno dei motivi per cui abbiamo preferito il SoC Zynq: contenendo sia i microprocessori, sia la logica programmabile in un unico dispositivo, rende alquanto semplice la migrazione delle funzioni fra hardware e software. Nel nostro progetto abbiamo regolato con precisione la partizione software/hardware un paio di volte e infine abbiamo optato per quella preferita. Per lavorare con agio su un sistema basato su SoC Zynq, è necessaria una comprensione ragionevolmente buona degli elementi hardware e software. Un altro aspetto che abbiamo apprezzato è stato il pacchetto di tool di progettazione Vivado. L’ambiente Vivado mostra in modo intuitivo i blocchi del progetto, assegna in modo automatico gli indirizzi di registro e individua gli errori prima di esportare le informazioni sull’hardware per il processo di sviluppo del software. Vivado Design Suite consente inoltre di effettuare la ricerca guasti a livello di segnale internamente al sistema, funzione questa indispensabile per determinare con precisione la causa all’origine di un problema a livello Rtl. Il sistema operativo Linux merita un’ultima considerazione. Il nostro software a livello applicativo è basato pesantemente su interfacce utente grafiche. La popolarità del sistema operativo Linux ci ha consentito di sfruttare la nostra esperienza precedentemente acquisita sulle GUI Linux, di modo da poter rendere operativi i programmi di test in tempi rapidi.

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome