Domanda

Ho un kit di valutazione che ha un'implementazione di core ARM Cortex-A8. Gli stati Scheda processore che ha un

  

core ARM Cortex A8 ™, che funziona a velocità fino a 800 MHz e fino a 200MHz DDR2 RAM.

Che cosa posso aspettarmi da questo sistema? Ho ragione di ritenere che gli accessi di memoria sarà un collo di bottiglia in quanto opera in solo 200 MHz?

Hai bisogno di maggiori informazioni su come interpretare questo.

È stato utile?

Soluzione

Il processore funziona con una cache interna (in realtà, vari) che può accedere a "velocità massima". La cache è piccolo (tipicamente da 8 a 32 kilobyte) ed è riempito da blocchi ( "linee cache") dalla RAM esterna (una linea di cache sarà poche decine di byte consecutivi). Quando il codice ha bisogno di alcuni dati che non è attualmente nella cache, il processore dovrà prendere la linea dalla RAM principale; questo è chiamato un Cache Miss .

Qual è la velocità della linea di cache può essere ottenuto dalla RAM principale è descritto da due parametri, chiamato latenza e larghezza di banda . Latenza è la quantità di tempo tra il momento in cui i problemi del processore della richiesta, e il momento in cui la prima linea di cache byte ricevuto. latenze tipiche sono circa 30ns. A 800 MHz, 30ns medi cicli di clock 24. Larghezza di banda descrive quanti byte per nanosecondi possono essere inviati sul bus. "200 MHz DDR2" significa che il clock del bus funzionerà a 200 MHz. DDR2 RAM può inviare due elementi di dati per ciclo (quindi 400 milioni di elementi al secondo). Larghezza di banda poi dipende da quante fili ci sono tra la CPU e la RAM: con un bus a 64 bit e 200 MHz DDR2 RAM, si poteva sperare per 3,2 GByte / s in condizioni ideali. Così che, mentre il primo byte prende un po 'di tempo per essere ottenuto (la latenza è alta per quanto riguarda quello che la CPU può fare), il resto della linea di cache viene letta abbastanza rapidamente.

Nella direzione opposta:. La CPU scrive alcuni dati a sua cache, e alcuni circuiti si propaga la modifica RAM principale al suo tempo libero

La descrizione di cui sopra è eccessivamente semplicistico; cache e la gestione della cache sono un settore complesso. Linea di fondo è il seguente: se il codice utilizza le tabelle di dati grandi in memoria e accede in modo apparentemente casuale, quindi l'applicazione sarà lento, perché la maggior parte del tempo del processore sarà solo aspettare che i dati dalla memoria principale. D'altra parte, se il codice può funzionare con poca RAM, a meno di qualche decina di kilobyte, allora è probabile che esso verrà eseguito il più delle volte con la cache più interno, e la velocità di RAM esterna sarà irrilevante. Capacità di memoria make accessi in modo che funziona bene con le cache è chiamato frazione di riferimento .

Vedere la href="http://en.wikipedia.org/wiki/CPU_cache" rel="nofollow"> pagina di Wikipedia su per un'introduzione e puntatori in materia di cache.

(Big precalcolate tavoli erano un trucco ottimizzazione comune durante gli anni '80, perché in quel processori di tempo non erano più veloce di RAM, e accesso alla memoria di un ciclo era la regola. È per questo che un 8 MHz Motorola 68000 CPU non aveva cache. ma in questi giorni sono ormai lontani.)

Altri suggerimenti

Sì, la memoria potrebbe essere un collo di bottiglia, ma vi sarà molto improbabile che sia in esecuzione un'applicazione che fa non , ma lettura e scrittura alla memoria.

All'interno della CPU, il collo di bottiglia della memoria non avrà un effetto.

scroll top