Registro (informatica): differenze tra le versioni

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
m fix
Riga 1: Riga 1:
Nell'[[architettura dei calcolatori]],a livello ASSEMBLER, un '''registro''' (o '''registro del processore''') è una piccola parte di [[memoria (informatica)|memoria]] utilizzata per velocizzare l'esecuzione dei [[Programma (informatica)|programmi]] fornendo un accesso rapido ai valori usati più frequentemente — tipicamente, i valori correntemente in uso in una determinata parte di un calcolo. La maggior parte delle moderne architetture dei computer (ma non tutte) sono basate sul principio di copiare i dati dalla memoria ai registri, operando su questi ultimi, e poi di copiare a loro volta i risultati nella memoria — la cosiddetta [[architettura load-store]].
Nell'[[architettura dei calcolatori]],a livello ASSEMBLER, un '''registro''' (o '''registro del processore''') è una piccola parte di [[memoria (informatica)|memoria]] utilizzata per velocizzare l'esecuzione dei [[Programma (informatica)|programmi]] fornendo un accesso rapido ai valori usati più frequentemente — tipicamente, i valori correntemente in uso in una determinata parte di un calcolo. La maggior parte delle moderne architetture dei computer (ma non tutte) sono basate sul principio di copiare i dati dalla memoria ai registri, operando su questi ultimi, e poi di copiare a loro volta i risultati nella memoria — la cosiddetta [[architettura load-store]].


I registri costituiscono il punto più alto della [[gerarchia della memoria]], e sono il meccanismo più rapido per il sistema di manipolare i dati. I registri sono normalmente misurati in base al numero di [[bit]] che possono contenere (ad esempio, registri a [[8 bit]] o registri a [[32 bit]]). Attualmente i registri sono implementati normalmente con [[file dei registri]], ma in passato sono stati implementati usando [[flip-flop]] individuali, [[memoria a nuclei di ferrite]] ad alta velocità, [[memoria thin film]] e vari alti modi.
I registri costituiscono il punto più alto della [[gerarchia della memoria]], e sono il meccanismo più rapido per il sistema di manipolare i dati. I registri sono normalmente misurati in base al numero di [[bit]] che possono contenere (ad esempio, registri a [[8 bit]] o registri a [[32 bit]]). Attualmente i registri sono implementati normalmente con [[file dei registri]], ma in passato sono stati implementati usando [[flip-flop]] individuali, [[memoria a nuclei di ferrite]] ad alta velocità, [[memoria thin film]] e vari altri modi.


Il termine è usato spesso per riferirsi esclusivamente al gruppo di registri che possono essere direttamente indirizzati dalle istruzioni di input e output del [[microprocessore]]. Più propriamente, queste registri sono definiti "architected registers". Per esempio, nell'architettura [[x86]] è disponibile un set di otto registri utilizzabili dalle istruzioni del [[linguaggio macchina]], ma la [[CPU]] conterrà molti più registri per uso interno o con funzioni speciali.
Il termine è usato spesso per riferirsi esclusivamente al gruppo di registri che possono essere direttamente indirizzati dalle istruzioni di input e output del [[microprocessore]]. Più propriamente, queste registri sono definiti "architected registers". Per esempio, nell'architettura [[x86]] è disponibile un set di otto registri utilizzabili dalle istruzioni del [[linguaggio macchina]], ma la [[CPU]] conterrà molti più registri per uso interno o con funzioni speciali.
Riga 11: Riga 11:
* ''Registro generico'': può contenere sia dati che indirizzi.
* ''Registro generico'': può contenere sia dati che indirizzi.
* ''Registri floating-point'': sono usati per memorizzare numeri a [[virgola mobile]].
* ''Registri floating-point'': sono usati per memorizzare numeri a [[virgola mobile]].
* ''Registri costanti'': contengono dati a sola lettura (ad esempio zedo, uno, pi grego, ecc.).
* ''Registri costanti'': contengono dati a sola lettura (ad esempio zero, uno, pi greco, ecc.).
* ''Registri vettoriali'': contengono dati utilizzati dalle istruzioni [[SIMD]] (''Single Instruction, Multiple Data'').
* ''Registri vettoriali'': contengono dati utilizzati dalle istruzioni [[SIMD]] (''Single Instruction, Multiple Data'').
* ''Registri speciali'': contengono dati interni della CPU, come il [[program counter]], lo [[stack pointer]] e il [[registro di stato]].
* ''Registri speciali'': contengono dati interni della CPU, come il [[program counter]], lo [[stack pointer]] e il [[registro di stato]].
Riga 32: Riga 32:
Registri visibili all'utente del linguaggio macchina eseguito dal processore. Sono tipicamente registri disponibili sia ai programmi applicativi che a quelli di sistema. Tali registri sono quello dei '''dati''', degli '''indirizzi''' e dei '''condition code'''.
Registri visibili all'utente del linguaggio macchina eseguito dal processore. Sono tipicamente registri disponibili sia ai programmi applicativi che a quelli di sistema. Tali registri sono quello dei '''dati''', degli '''indirizzi''' e dei '''condition code'''.
I ''registri dei dati'' possono essere destinati dal programmatore per diverse funzioni. Solitamente sono ristretti a particolari tipi di funzione (es: registri dedicati dedicati ad operazioni in virgola mobile), tuttavia possono essere usati in qualsiasi istruzione macchina.
I ''registri dei dati'' possono essere destinati dal programmatore per diverse funzioni. Solitamente sono ristretti a particolari tipi di funzione (es: registri dedicati dedicati ad operazioni in virgola mobile), tuttavia possono essere usati in qualsiasi istruzione macchina.
I registri degli indirizzi contengono gli indirizzi dei dati e delle istruzioni contenute nella memoria. Tali registri possono essere di tipo generale o dedicati ad un particolare modo di indirizzamento (index register, segment pointer, stack pointer) .
I registri degli indirizzi contengono gli indirizzi dei dati e delle istruzioni contenute nella memoria. Tali registri possono essere di tipo generale o dedicati ad un particolare modo di indirizzamento (index register, segment pointer, stack pointer).
I condition code sono

--[[Utente:Simondiali|Simondiali]] 00:25, 15 nov 2006 (CET)


[[Categoria:Elettronica digitale]]
[[Categoria:Elettronica digitale]]

Versione delle 17:38, 19 nov 2006

Nell'architettura dei calcolatori,a livello ASSEMBLER, un registro (o registro del processore) è una piccola parte di memoria utilizzata per velocizzare l'esecuzione dei programmi fornendo un accesso rapido ai valori usati più frequentemente — tipicamente, i valori correntemente in uso in una determinata parte di un calcolo. La maggior parte delle moderne architetture dei computer (ma non tutte) sono basate sul principio di copiare i dati dalla memoria ai registri, operando su questi ultimi, e poi di copiare a loro volta i risultati nella memoria — la cosiddetta architettura load-store.

I registri costituiscono il punto più alto della gerarchia della memoria, e sono il meccanismo più rapido per il sistema di manipolare i dati. I registri sono normalmente misurati in base al numero di bit che possono contenere (ad esempio, registri a 8 bit o registri a 32 bit). Attualmente i registri sono implementati normalmente con file dei registri, ma in passato sono stati implementati usando flip-flop individuali, memoria a nuclei di ferrite ad alta velocità, memoria thin film e vari altri modi.

Il termine è usato spesso per riferirsi esclusivamente al gruppo di registri che possono essere direttamente indirizzati dalle istruzioni di input e output del microprocessore. Più propriamente, queste registri sono definiti "architected registers". Per esempio, nell'architettura x86 è disponibile un set di otto registri utilizzabili dalle istruzioni del linguaggio macchina, ma la CPU conterrà molti più registri per uso interno o con funzioni speciali.

Vi sono molte classi di registri:

  • Registri di dati: sono usati per memorizzare numeri interi. Nelle CPU più semplici o più vecchie, uno speciale registro per i dati è l'accumulatore, usato per calcoli aritmetici.
  • Registri di indirizzo: contengono gli indirizzi e sono usati per accedere alla memoria.
  • Registro generico: può contenere sia dati che indirizzi.
  • Registri floating-point: sono usati per memorizzare numeri a virgola mobile.
  • Registri costanti: contengono dati a sola lettura (ad esempio zero, uno, pi greco, ecc.).
  • Registri vettoriali: contengono dati utilizzati dalle istruzioni SIMD (Single Instruction, Multiple Data).
  • Registri speciali: contengono dati interni della CPU, come il program counter, lo stack pointer e il registro di stato.
    • Registro di istruzione: contiene l'istruzione corrente.
    • Registri indice: sono usati per modificare l'indirizzo degli operandi.
  • In alcune architetture, vi sono dei registri specifici del modello di processore, che memorizzano dati e impostazioni del processore stesso. Essendo registri legati a caratteristische peculiare di uno specifico modello, non è garantita la presenza o lo stesso funzionamento nelle generazioni successive di quel processore.
  • Vi sono inoltre registri dedicati al "fetching" (trasferimento dalla RAM verso la CPU).

I registri hardware a livello FIRMWARE sono simili ai registri dei processori, ma sono presenti esternamente alle CPU.


Registri del microprocessore I registri del microprocessore forniscono un livello di memoria più veloce e ridotto rispetto alla memoria principale e svolgono principalmente le seguenti due funzioni:

. registri visibili all'utente: registri ottimizzabili dal programmatore a livello di liguaggio macchina o Assembler. Nei casi di programmazione ad alto livello il compilatore cercherà di fare scelte intelligenti riguardo alle variabili da assegnare ai registri e alla localizzazione della memoria. Esistono casi in cui è possibile con linguaggi di alto livello (come con il C ) specificare al compilatore quali variabili si vorrebbe memorizzare nei registri.

.registri di stato e di controllo: usate dal microprocessore per controllare le sue operazioni e dal sistema operativo per le sue routine privilegiate per il controllo esecuzione comandi.

registri visibili all'utente: Registri visibili all'utente del linguaggio macchina eseguito dal processore. Sono tipicamente registri disponibili sia ai programmi applicativi che a quelli di sistema. Tali registri sono quello dei dati, degli indirizzi e dei condition code. I registri dei dati possono essere destinati dal programmatore per diverse funzioni. Solitamente sono ristretti a particolari tipi di funzione (es: registri dedicati dedicati ad operazioni in virgola mobile), tuttavia possono essere usati in qualsiasi istruzione macchina. I registri degli indirizzi contengono gli indirizzi dei dati e delle istruzioni contenute nella memoria. Tali registri possono essere di tipo generale o dedicati ad un particolare modo di indirizzamento (index register, segment pointer, stack pointer).