Architettura di un processore basato su registri generali.

Documenti analoghi
Fondamenti Teorici. Antonio Pescapè e Marcello Esposito Parte Seconda v2.0

Dispensa di Informatica I.3

Corso di Alfabetizzazione Informatica 2001/2002. La CPU. F. Tortorella Università degli Studi. di Cassino

Architettura del calcolatore (Seconda parte)

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura. Argomenti. Modello di Von Neumann. Corso di Laurea in Ingegneria Biomedica aa 2003/2004. Ing. Antonio Coronato. Modello di Von Neumann

Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003

Capitolo 5 Elementi architetturali di base

Architettura di un calcolatore: primi cenni introduttivi

Architettura di un calcolatore: primi cenni introduttivi. Calcolatore: sottosistemi

A.A. 2018/2019. CPU e Linguaggio Macchina FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

Fondamenti di Informatica e Programmazione. P ro f. G i a n n i D A n g e l o

Architettura di un calcolatore: introduzione

Architettura dell elaboratore

Architettura dell elaboratore

ESERCITAZIONE Unità centrale di elaborazione Ciclo base di un istruzione Meccanismo di interruzione

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!

Introduzione all'architettura dei Calcolatori. Maurizio Palesi

Ogni CPU è in grado di eseguire un insieme limitato di istruzioni macchina codificate in binario secondo il seguente schema generale.

La macchina di Von Neumann. UNIVERSITÀ DEGLI STUDI DEL SANNIO Benevento DING DIPARTIMENTO DI INGEGNERIA CORSO DI "PROGRAMMAZIONE I"

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Cenni sull architettura del calcolatore

Fondamenti di Informatica A. A / 1 9

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Architettura del Calcolatore

L architettura del calcolatore (Seconda parte)

Sistemi e reti CPU Concetti di base

Componenti di un processore

Struttura di un elaboratore

Componenti principali

Elementi di informatica

Abilità Informatiche e Telematiche

Lezione 15. L elaboratore Elettronico

Architettura di von Neumann

ARCHITETTURA DI UN ELABORATORE. Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).

Abilità Informatiche e Telematiche

Architettura del Calcolatore

Architettura e funzionamento del calcolatore

Corso di Fondamenti di Informatica Elementi di Architettura

Architettura dei computer

Il Processore: l unità di controllo

Le istruzioni del linguaggio gg macchina corrispondono ad operazioni elementari di elaborazione operazioni aritmetiche

Macchina di Von Neumann

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Architettura degli elaboratori CPU a ciclo singolo

ARCHITETTURA DI UN ELABORATORE

Architettura di una CPU

Architettura del calcolatore. Prima parte

Architettura dei Calcolatori Elettronici

ARCHITETTURA DEL CALCOLATORE

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (2) Le operazioni e gli operandi. Dove siamo nel corso. Cosa abbiamo fatto

Architettura hardware

Componenti e connessioni. Capitolo 3

ARCHITETTURA DI UN ELABORATORE

Architettura del. Calcolatori (1) Calcolatori (2) L architettura di Von Neumann. CPU RAM Memoria I/O. secondaria. bus

Programmazione A.A Architettura dei Calcolatori. ( Lezione V ) Componenti hardware e loro schema funzionale

ESERCIZIO: PROGETTO DI UNA CPU A PIU REGISTRI

Laboratorio di Informatica L-A 1

Il processore - CPU (CENTRAL PROCESSING UNIT)

Architettura del calcolatore

Un quadro della situazione. Lezione 14 Il Set di Istruzioni (2) Dove siamo nel corso. I principi di progetto visti finora. Cosa abbiamo fatto

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti

Sistemi di numerazione

Architettura dei computer

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

Il Microprocessore. Modello di Von Neumann

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti. Proff. A. Borghese, F. Pedersini

L ARCHITETTURA DEI CALCOLATORI. Il processore La memoria centrale La memoria di massa Le periferiche di I/O

Macchina di Riferimento: argomenti

CPUSim. Laboratorio 30/11/2016

ARCHITETTURA DI UN ELABORATORE

Elementi di informatica

Introduzione al linguaggio macchina

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

FONDAMENTI DI INFORMATICA Lezione n. 10

Pag. 1. Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni. Architettura del calcolatore (parte II)

Microelettronica Corso introduttivo di progettazione di sistemi embedded

memoria PSW R1 R2 CPU Struttura logica dell elaboratore unità di controllo ALU unità di ingresso unità organo coordinatore clock di uscita

FONDAMENTI DI INFORMATICA Lezione n. 10

Macchina di von Neumann/Turing

Macchine Astratte. Luca Abeni. February 22, 2017

Corso di Calcolatori Elettronici I

Architettura di un calcolatore e ciclo macchina. Appunti per la classe 3 Dinf

Struttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU:

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2

Architettura degli Elaboratori

Corso di Laurea in Informatica Architetture degli Elaboratori

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Memoria centrale (RAM) Registri della CPU. Definizioni. Architettura considerata in CPUSim. Programma in linguaggio macchina

Richiami sull architettura del processore MIPS a 32 bit

Transcript:

Architettura di un processore basato su registri generali. M. Esposito (mesposit@unina.it) 26 febbraio 2007 In Fig. 1 è riportato uno schema di principio che raffigura l architettura di un processore basato su registri generali. In esso si notano una serie di componenti: l Arithmetic Logic Unit (ALU); la Control Unit (CU); la memoria; l Internal Bus, il Data Bus e l Address Bus; i registri del processore (o interni): il Program Counter (PC), il Memory Address Register (MAR), il Memory Data Register (MDR), l Instruction Register (IR), lo Status Register (SR) e i cosiddetti registri generali R1..Rn. I registri sono organi di memoria atti a memorizzare una serie di bit. Valori tipici del numero di bit che essi memorizzano sono: 8, 16, 32 o 64. Nel seguito si descrivono più nel dettaglio i componenti raffigurati. L Internal Bus. È un canale di comunicazione condiviso dai vari componenti ed attraverso cui essi possono dialogare. In questo contesto, il dialogo consiste nello scambio di dati binari tra registri secondo una modalità parallela. Ciò significa che un certo numero di bit viene contemporaneamente trasferito attraverso il bus da un registro mittente ad un registro destinatario. Durante un operazione di trasferimento, i due registri implicati nella comunicazione si trovano in uno stato di lettura (destinatario) e scrittura (mittente) in modo tale da poter acquisire il dato presente sul bus e da potercelo scrivere, rispettivamente. Tutti gli altri registri sono in uno stato di 1

2 Address Bus Data Bus Memory PC MAR MDR Internal Bus ALU R1 R2 R3 Rn IR Control Unit SR Fig. 1: Un esempio di architettura basata su registri generali. riposo nel quale non possono né leggere i dati che circolano sul bus né influenzare lo stato del bus con i dati che contengono. Il numero di bit contemporaneamente trasferiti, indica il parallelismo del bus ed è pari al numero di bit contenuti in un singolo registro. Esso caratterizza anche il parallelismo interno del processore. Il Data Bus e il registro MDR. Il Data Bus è un bus che collega la memoria con il registro MDR. Serve a trasferire dati in entrambi i sensi, sempre secondo una modalità parallela. Tutti i dati e le istruzioni che dalla memoria devono essere elaborati nel processore, transitano per il registro MDR e successivamente, da questo, raggiungono gli opportuni registri per l elaborazione vera e propria. Analogamente, tutti i risultati di un elaborazione che devono essere immagazzinati in memoria, transitano prima per il registro MDR e da esso raggiungono poi la esatta locazione di memoria. L Address Bus e il registro MAR. Durante un accesso alla memoria, sia in fase di lettura che in fase di scrittura, il registro MAR contiene l indirizzo della locazione di memoria che viene acceduta. Questo indirizzo, trasferito all organo memoria attraverso l Address Bus, abilita alla comunicazione una sola tra tutte le locazioni disponibili (tipicamente in numero molto elevato).

3 Il registro PC. Il valore memorizzato nel registro PC rappresenta per definizione l indirizzo della locazione di memoria contenente la successiva istruzione da eseguire. Esso viene interrogato tipicamente all inizio di ogni fase di fetch ed immediatamente dopo viene aggiornato alla locazione di memoria seguente ; in questo modo lo si prepara per il prelievo della successiva istruzione. Può accadere comunque che l istruzione prelevata rientri nella categoria delle istruzioni di salto: in questo caso si procede ad un ulteriore aggiornamento del PC durante la fase di execute dell istruzione. Da questo deriva che lo scopo di un istruzione di salto (condizionato) è esclusivamente quello di alterare (eventualmente) il valore del PC. Spesso il registro PC è chiamato anche IP (Instruction Pointer). Il registro IR. Questo registro ha il compito di accogliere dalla memoria (attraverso il MDR), durante una fase di fetch, l istruzione da eseguire, quella cioè puntata dal PC. Una volta in questo registro, l istruzione deve essere interpretata dall unità di controllo per procedere alla eventuale fase di preparazione degli operandi ed alla fase di esecuzione. La ALU. L unità logico-aritmetica è l organo deputato allo svolgimento di operazioni aritmetiche e di confronti logici. Essa preleva gli operandi tipicamente dai registri generali, così come nei registri generali depone i risultati dei calcoli. In seguito ad un calcolo ha anche il compito di impostare alcuni dei flags del SR in modo da tenere traccia di determinati eventi. Il registro SR. Lo Status Register è un registro che memorizza una serie di bit indicativi dello stato corrente del processore. Può indicare, ad esempio, se il risultato dell ultima operazione aritmetica effettuata dall ALU ha dato risultato nullo, o se ha generato un riporto. I registri generali. I registri generali non hanno un preciso ruolo come gli altri, e da ciò scaturisce il loro nome. Sono utilizzati per contenere i dati in transito per un elaborazione: gli addendi di un addizione che l ALU sta per effettuare, il risultato di un calcolo che l ALU ha effettuato, un indirizzo di memoria in cui si trova un dato che dovrà essere acceduto in seguito... etc. Un numero elevato di tali registri conferisce maggiore flessibilità nella programmazione, ma complica la struttura del processore dal punto di vista architetturale.

4 L unità di controllo. È l organo che presiede a tutte le operazioni attraverso il pilotaggio dei componenti presenti nel processore 1. Ad esso spetta, ad esempio, l interpretazione dell istruzione che si trova di volta in volta nel registro IR; ad esso spetta abilitare alla lettura ed alla scrittura due registri tra i quali deve avvenire uno scambio di informazione. Tutte le fasi del ciclo del processore avvengono attraverso l invio ai vari componenti di un insieme di impulsi di controllo, in una sequenza temporale ben precisa. Più precisamente, ad ogni colpo di clock le linee di controllo assumono un particolare stato; il susseguirsi dei diversi stati contribuisce all esecuzione completa di un istruzione. Per questo motivo si può dire che una singola istruzione in linguaggio macchina viene eseguita attraverso la opportuna composizione di più micro-operazioni. La memoria. Contiene un numero in genere molto elevato di registri nei quali vengono memorizzati i dati e le istruzioni di un programma. Il tempo impiegato per accedere ad un registro di memoria è generalmente molto superiore a quello impiegato per l accesso ad uno dei registri del processore. È per questo motivo che, per quanto possibile, si tenta di utilizzare i registri interni per effettuare le operazioni, limitando gli accessi in memoria allo stretto necessario. Pur contenendo la memoria un numero molto elevato di registri, in ciascun istante temporale solo uno di questi è abilitato a partecipare ad operazioni di lettura o scrittura: quello il cui indirizzo è contenuto nel registro MAR. Con riferimento al ciclo del processore, riportato in Fig. 2, analizziamo come avviene lo scambio di informazioni, nell ambito dell architettura esposta, in un caso reale. Supponiamo che, durante la sua elaborazione, il processore si trovi ad un certo istante a dover eseguire un istruzione che abbia lo scopo di spostare il contenuto corrente del registro generale R1 nella locazione di memoria avente indirizzo D. Rappresentiamo simbolicamente una tale operazione con il seguente comando: mov R1,D Una tale istruzione, per essere eseguita, deve fare parte del bagaglio assembler del processore in questione e, come tale, essere opportunamente rap- 1 Gli impulsi di controllo vengono inviati mediante collegamenti non visualizzati in Fig. 1.

5 bootstrap fetch operand assembly execute Fig. 2: Il ciclo del processore. presentabile in linguaggio macchina. Si immagini, dunque, che l istruzione sia rappresentata in memoria così come riportato in Fig. 3. MOV R1, D n n+1 D Fig. 3: Lo stato della memoria. Essa parte dalla n-esima locazione di memoria ma, non potendo essere contenuta completamente in una singola locazione, occupa anche la locazione successiva. In particolare, la locazione n-esima contiene una stringa di bit che verrà interpretata dall unità di controllo come una move la cui sorgente è il registro R1 e la cui destinazione è la locazione di memoria il cui indirizzo è contenuto immediatamente di seguito. I passi necessari ad eseguire questa operazione sono: 1. PC MAR 2. Inc(PC) 3. Memory Read 4. MDR IR

6 5. PC MAR 6. Inc(PC) 7. Memory Read 8. MDR MAR 9. R1 MDR 10. Memory Write Analizziamone nel dettaglio il significato. Trovandoci all inizio della fase di fetch, bisogna prelevare l istruzione dalla memoria: essa, per definizione, è contenuta all indirizzo puntato dal registro PC. Il passo 1 copia il contenuto del PC nel MAR in modo da preparare la memoria ad un accesso alla giusta locazione. Il passo 2, in maniera del tutto generale, incrementa il PC in modo che esso punti alla locazione di memoria successiva, essendo questa la locazione da accedere nel seguito con la maggiore probabilità. Il passo 3 ordina alla memoria di scrivere sul Data Bus e, contemporaneamente, al MDR di leggere dal Data Bus. In seguito a questa operazione il MDR conterrà la prima parte dell istruzione da eseguire. Essa, per essere interpretata, deve comunque essere trasferita nel IR. Questo avviene al passo 4. Una volta che l istruzione è stata interpretata, l unità di controllo capisce che l istruzione è stata prelevata solo parzialmente e bisogna prelevarne un altro frammento. Qui la fase di fetch termina ed inizia la fase di preparazione degli operandi. Nel passo 5, di nuovo il PC viene copiato nel MAR per permettere un nuovo accesso alla memoria; immediatamente dopo, nel passo 6, viene nuovamente incremementato così da farlo puntare alla successiva istruzione, quella che verrà prelevata ed eseguita durante il ciclo successivo. Nel passo 7 la memoria viene letta e l indirizzo D viene copiato nel MDR. Qui termina anche la fase di preparazione degli operandi ed inizia la fase di esecuzione vera e propria dell istruzione. Dal momento che la scrittura deve avvenire proprio all indirizzo ora contenuto nel MDR, questo viene copiato nel passo 8 sul MAR. Nel passo 9 il contenuto del registro R1 viene copiato nel MDR e infine da qui, nel passo 10, viene copiato in memoria alla giusta locazione attraverso un operazione di scrittura. Termina così anche la fase di esecuzione. A questo punto il PC punta alla successiva istruzione da eseguire, ed una nuova fase di fetch può avere inizio.

RIFERIMENTI BIBLIOGRAFICI 7 Riferimenti bibliografici [1] John F. Wakerly, Microcomputer Architecture and Programming: The 68000 Family, ISBN: 978-0-471-85319-0, 784 pages, May 1989, Wiley.