QorlQ P4040 Multicore Processor

Scopo di questo articolo, è quello di analizzare le caratteristiche del processore P4040, il primo processore con quattro core presente all’interno della famiglia P4 di QorlQ, e presentare anche una panoramica relativa agli strumenti di sviluppo e prototipazione offerti da Freescale.

QorlQ di Freescale rappresenta non solo una famiglia di processori ad elevate prestazioni, ma costituisce, soprattutto, una piattaforma hardware orientata spiccatamente alle applicazioni nel campo delle telecomunicazioni, ed è la naturale evoluzione della consolidata architettura PowerQUICC. I processori QorlQ sono tutti progettati e fabbricati utilizzando core ad elevate prestazioni basati su PowerArchitecture e sono destinati a giocare un ruolo fondamentale nella nuova era del networking, dove prestazioni, elevata capacità di calcolo, affidabilità, sicurezza e qualità del servizio, sono tutti fattori chiave per un’applicazione di successo.

IL PROCESSORE MULTICORE QORLQ P4040

Il P4040 è il primo prodotto quad-core presentato all’interno della piattaforma QorlQ P4 ed integra una logica di accelerazione del datapath ad elevate prestazioni, alla quale si aggiungono funzionalità specifiche di networking ed interfacciamento sul bus. Il “fratello” maggiore di questo processore, il P4080 dotato di otto core, è compatibile con il P4040 sia a livello software che di pin layout, facilitando enormemente la migrazione verso lo stesso e realizzando pertanto una vera e propria soluzione scalare. Il processore QorlQ P4040, visibile nella figura 1, è realizzato con tecnologia da 45 nm ed è capace di fornire servizi di networking di prossima generazione mantenendo, al contempo, dei consumi ridotti.

Figura 1: il processore QorlQ P4040.

Figura 1: il processore QorlQ P4040.

Il processore è particolarmente indicato per applicazioni con uso intensivo dell’unità di calcolo e uso intensivo dell’I/O. E’ pertanto ideale per applicazioni quali router, switch di rete, gateway, base station controller (BSC), radio network controller (RNC), access gateway per il Long Term Evolution (LTE), e più in generale tutti i sistemi embedded destinati alle applicazioni nei settori del networking, telecomunicazioni, industriale, aerospaziale e difesa.

I FATTORI CHIAVE P4040

La piattaforma QorlQ P4 include, innanzitutto, un’inedita gerarchia di cache a 3 livelli. Ciascun core, infatti, dispone di una cache integrata di livello 1 (L1), una backside cache dedicata di livello 2 (L2) in grado di incrementare significativamente le prestazioni ed infine una cache multi-megabyte di livello 3 (L3) particolarmente indicata per i sistemi che richiedono una cache condivisa. La coerenza della cache viene garantita dal sistema CoreNet, che offre anche una connettività punto-punto per il supporto del traffico concorrente da/e verso diverse risorse collegate al sistema. Il processore P4040 è estremamente flessibile e può essere configurato in modo tale da soddisfare le necessità di diversi tipi di applicazioni. I 4 core di tipo e500mc, nel pieno rispetto delle più avanzate tecniche di virtualizzazione, possono funzionare come 4 core simmetrici (SMP), oppure come 4 core completamente asimmetrici (AMP), oppure ancora possono operare con vari gradi di indipendenza combinando raggruppamenti di tipo SMP e AMP. Questa piena indipendenza dei processori, inclusa la capacità di eseguire in modo indipendente il boot ed il reset di ogni core e 500mc, è una caratteristica fondamentale del processore. Ne consegue la possibilità di eseguire sistemi operativi differenti sui diversi core, mentre la tecnologia di virtualizzazione avanzata permette agli sviluppatori del sistema di assicurarsi che il software in esecuzione su ogni CPU acceda soltanto alle risorse (memoria, periferiche, ecc...) per le quali è stato esplicitamente autorizzato. Un sistema supervisore integrato (embedded hypervisor) garantisce poi che istanze multiple di sistemi operativi possano operare in modo sicuro ed autonomo, permettendo ad esse di condividere risorse di sistema (inclusi i core stessi), memoria ed altre funzionalità presenti sul chip.

SPECIFICHE TECNICHE DEL P4040

Le caratteristiche tecniche del processore multicore P4040 possono essere così sintetizzate:

  • 4 core di tipo Power Architecture e500mc ad elevate prestazioni, ciascuno dotato di 32KB di cache dati ed istruzioni di livello 1 (L1), oltre ad una cache privata da 128KB di livello 2 (L2). E’ possibile eseguire il reset ed il boot di ciascun core in modo indipendente dagli altri. Le istruzioni possono essere eseguite a tre livelli: livello utente, livello supervisor e, infine, livello hypervisor. Ogni core processor può lavorare fino alla frequenza di 1.5 GHz
  • memoria cache CoreNet condivisa da 2MB
  • struttura di interconnessione CoreNet in grado di gestire transazioni sia di tipo coerente che non coerente, con allocazione della banda in base alla priorità
  • ampiezza di banda in lettura da 800 Gbps
  • gestione delle code con supporto a livello di pacchetto e schedulazione in base alla qualità del servizio (QoS)
  • doppio controllore di memoria DDR2 / DDR3 a 64-bit con supporto per ECC ed interleaving
  • architettura di accelerazione del datapath progettata per velocizzare le funzioni di: riconoscimento, classificazione ed inoltro dei pacchetti; di gestione delle code per la schedulazione, gestione della sequenzalità dei pacchetti e gestione del congestionamento; gestione hardware dei buffer con allocazione e deallocazione degli stessi; gestione della sicurezza tramite acceleratore crittografico (SEC 0); riconoscimento delle espressioni regolari (PME 2.0)
  • Interfacce Ethernet: sono disponibili 2 controllori Ethernet da 10 Gbps (XAUI) ed 8 controllori Ethernet da 1 Gbps (SGMII)
  • Interfacce periferiche ad elevata velocità comprendenti 3 controllori/porte PCI Express 0 con frequenza operativa fino a 5 GHz, 2 controller/porte RapidIO 1.2 con frequenza fino a 3.125 GHz
  • numerose periferiche addizionali tra cui: 2 controller USB con interfaccia ULPI per PHY esterno, interfaccia per schede di memoria SD/MMC, 4 controllori I2C, 2 UART doppie, enhanced local bus controller (eLBC), controllore degli interrupt programmabile (PIC) in versione multicore
  • 2 engine DMA a 4 canali.

In figura 2 è mostrato lo schema a blocchi relativo al processore P4040 con evidenziati i vari blocchi funzionali.

Figura 2: schema a blocchi del P4040.

Figura 2: schema a blocchi del P4040.

APPLICAZIONI

La piattaforma QorlQ di Freescale include processori multicore progettati sulla base dell’architettura PowerArchitecture ed in grado di integrarsi agevolmente con i DSP StarCore per realizzare base station di prossima generazione, come femtocell, picocell, metrocell e macrocell. Tra le principali applicazioni ricordiamo:

  • router di tipo enterprise e service provider
  • switch di rete
  • base station controller (BSC)
  • radio network controller (RNC)
  • sistemi di calcolo embedded di tipo general purpose e Long Term Evolution (LTE) per applicazioni nel campo del networking e delle telecomunicazioni
  • dispositivi ed infrastrutture per applicazioni wireless
  • applicazioni nel settore militare ed aerospaziale.

I SISTEMI DI SVILUPPO

Freescale ha sempre messo a disposizione dei progettisti hardware e software dei validi e completi sistemi di sviluppo, corredati sovente di numerose librerie pre-confezionate in grado di soddisfare le esigenze del cliente. Non fa eccezione a questa filosofia la famiglia di processori QorlQ P4, per la quale Freescale offre sostanzialmente due tool di sviluppo che ora andremo ad analizzare in dettaglio.

CodeWarrior Gigabit TAP

Gigabit TAP consente di eseguire il debugging direttamente sul sistema target tramite una porta standard di debug (tipicamente la porta JTAG), mentre il sistema è collegato alla stazione di sviluppo tramite una connessione di rete Ethernet. Attraverso questo strumento, gli sviluppatori possono debuggare l’applicazione da remoto, potendo anche condividere uno stesso target tra più stazioni di sviluppo. Il tool di sviluppo è stato progettato espressamente per lavorare in modo cooperato con il sistema di sviluppo CodeWarrior e con i processori della famiglia Freescale. Un tool come questo è fondamentale in tutte le fasi di sviluppo di un progetto ed è necessario per poter realizzare un’applicazione completa, testata e validata. Nella figura 3 è mostrata un’immagine del kit completo relativo al sistema di sviluppo Gigabit TAP.

Figura 3: il tool di sviluppo Gigabit TAP.

Figura 3: il tool di sviluppo Gigabit TAP.

LE PRINCIPALI CARATTERISTICHE DI GIGABIT TAP SI POSSONO RIASSUMERE COME SEGUE:

  • supporto per tutte le velocità e tutte le tensioni di alimentazione dei core appartenenti alla famiglia di processori Freescale
  • interfaccia di debug tramite porta JTAG
  • supporto automatico dei livelli di tensione da 8V a 1.3V
  • abbinato al rinomato tool di sviluppo CodeWarrior, sempre di Freescale, permette, inoltre, di programmare la memoria flash di sistema durante il debug e durante le fasi di sviluppo del proVengono supportati tutti i principali modelli di memoria flash ed in particolare tutti i tipi di flash presenti nei sistemi di sviluppo Freescale. Permette inoltre di controllare il sistema target anche nel caso in cui esso sia andato in crash per qualche motivo durante l’esecuzione dell’applicazione; di avere una completa visibilità e controllo del sistema, incluse operazioni quali: lettura e scrittura dei registri della CPU e dei registri mappati in memoria, lettura e scrittura a blocchi della memoria, esecuzione del debug in modalità single step, possibilità di impostare breakpoint sia di tipo software che hardware, monitoraggio dello stato del sistema target; avere il controllo completo dell’esecuzione sul sistema target, incluso il controllo di un core specifico o di tutti i core, e il reset del sistema
  • permette, tramite l’aggiunta di una daughter board opzionale ad elevate prestazioni, di eseguire il trace del codice in modalità real-time non intrusiva
  • il probe Gigabit TAP può anche connettersi al sistema target tramite la porta seriale utilizzando un accesso via telnet. Può, inoltre, connettersi ad un sistema collocato remotamente tramite la connessione Ethernet del Gigabit TAP; questa caratteristica permette il controllo remoto sul programma U-boot. Le novità apportate recentemente al Gigabit TAP sono le seguenti:
  • integrazione completa con il sistema di sviluppo CodeWarrior
  • esecuzione del download fino a 2,5 volte più veloce rispetto alla versione USB TAP
  • supporto per i target con basse tensioni di alimentazione
  • espandibilità garantita dalla presenza di una scheda addizionale (daughter board)
  • possibilità di connessione tramite interfaccia Ethernet 10/100/1000 BaseT Il contenuto del kit è il seguente: 1 Gigabit TAP Probe, 1 Gigabit TAP JTAG Probe TIP, 1 Gigabit TAP JTAG Probe TIP extension tip per collegamenti da eseguirsi in spazi ridotti, 1 Gigabit TAP Probe power supply.

CODEWARRIOR DEVELOPMENT STUDIO V10.0 PER POWER ARCHITECTURE® TECHNOLOGY (ECLIPSE)

Questo sistema di sviluppo  consente di sviluppare applicazioni anche di complessità elevata nel settore delle telecomunicazioni e del networking. Integrato all’interno del framework di sviluppo Eclipse, il CodeWarrior Development Studio per Power Architecture combina gli strumenti di sviluppo Linux ed il debugging su architetture multicore e multiprocessore con delle funzionalità avanzate di analisi del software. Ne risulta uno strumento adatto a realizzare, debuggare ed ottimizzare le prestazioni basate sui sistemi multicore Power Architecture. Le principali caratteristiche di questo strumento sono le seguenti:

  • rapresenta un IDE completo e ricco di funzionalità basato su Eclipse
  • gli strumenti di sviluppo basati su Eclipse sono aperti a possibili estensioni tramite l’utilizzo di appositi moduli plug-in
  • è uno strumento estremamente semplice da usare, con funzionalità comuni a diverse famiglie di processori Freescale
  • è possibile configurare secondo le proprie esigenze il layout delle finestre usate dall’applicazione
  • supporto per i seguenti dispositivi target: P4080 DS, P4040 DS, P2020 DS/RDB, P2010 DS/RDB.

Il multicore debugger fornito con CodeWarrior consente allo sviluppatore di eseguire dei comandi su un insieme di core definito dall’utente ed include il supporto per il kernel di Linux e lo sviluppo di applicazioni. Le funzionalità offerte dal debugger multicore comprendono: comandi multicore di run, start e stop, comando di reset multicore, supporto per il debugging di applicazioni che utilizzano Freescale hypervisor o Light Weight Executive. La funzionalità di analisi del software mette a disposizione degli sviluppatori uno strumento per ottimizzare le prestazioni dell’applicazione ed anche per eseguire il debugging nel caso vi siano evidenti problematiche di timing. Essa, inoltre, offre un supporto esteso ed integrato verso popolari tool di sviluppo open-source, come il GNU Linux Trace Tool (LTTng), OProfile e Valgrind. Va inoltre menzionato il supporto anche per le applicazioni Linux e per lo sviluppo a livello di kernel. In particolare, la funzionalità di trace analysis consente di eseguire il trace del flusso di programma, di monitorare l’accesso ai dati, di monitorare gli eventi di packet processing (solo su alcuni tipi di processore) e di monitorare gli eventi a livello di kernel tramite LTTng. Similarmente, la funzionalità di performance analysis fornisce un altro mezzo per debuggare in modo non intrusivo diversi tipi di problemi applicativi a livello funzionale e di performance. Lo strumento include la configurazione dei contatori di eventi e delle metriche predefinite significative per applicazioni nel campo del networking. Esempi di metriche sono i seguenti:

  • rapporto esistente tra i cache hit ed i cache miss
  • rapporto esistente tra i branch hit ed i branch miss
  • numero di istruzioni per ciclo
  • statistiche varie relative agli eventi.

Scrivi un commento