2015-06-12 13 views
12

cos'è la memoria TCM sui processori ARM, è una memoria dedicata che risiede accanto al processore o solo una regione di RAM che è configurata come TCM ??.cos'è la memoria ARM TCM

se si tratta di una memoria dedicata, perché è possibile configurarne la posizione e le dimensioni ?.

risposta

14

TCM, memoria strettamente accoppiata è una (o più) piccola area di memoria dedicata che, come suggerisce il nome, è molto vicina alla CPU. Il vantaggio principale è che la CPU può accedere al TCM ad ogni ciclo. Contrariamente alla memoria ordinaria non è coinvolta la cache che rende prevedibili tutti gli accessi alla memoria.

L'uso principale di TCM è quello di memorizzare dati e codice di prestazioni critici. I gestori di interrupt, i dati per le attività in tempo reale e le strutture di controllo del SO sono un esempio comune.

se è una memoria dedicata, il motivo per cui possiamo configurare la sua posizione e le dimensioni

Rendere configurabile sarebbe solo complicare l'indirizzo di decodifica per tutti accessi alla memoria dando alcun beneficio reale nel corso di un intervallo di indirizzi fisso . Quindi probabilmente era più facile e veloce legare il TCM a un indirizzo fisso.

Btw, se stai lavorando su un sistema che ha un TCM e non lo stai ancora utilizzando, prova a mettere lo stack lì. Questo di solito offre una percentuale di guadagno di prestazioni gratis poiché tutti gli accessi alla memoria dello stack sono ora a ciclo singolo e non inquinano più la cache dei dati.

+0

che ne dici delle sue dimensioni, come possiamo configurare le sue dimensioni poiché è un hardware – mikmak

+0

Che dipende dall'hardware esatto. Esistono architetture ARM che consentono di dividere il TCM in modo da poterne utilizzare alcune come TCM e il resto come cache dei dati. Dal punto di vista dei progettisti di chip, quando si progetta un microcontroller è possibile decidere quale sarà il vostro TCM. –

+0

quello che capisco è, quando si imposta lo stack sulla RAM, il processore recupera i dati della RAM dello stack nella cache L1 e lavora con esso. ma quando si imposta STACK su TCM, i dati rimarrebbero sempre su TCM (non vi è alcun recupero da TCM a cache L1), quindi ci sarà sempre meno cache miss sul programma in esecuzione? o mi sbaglio ?? – mikmak