Architettura del calcolatore

Documenti analoghi
Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione

Calcolatore: sottosistemi

Architettura di un calcolatore: Introduzione parte 2

Architettura di un calcolatore: primi cenni introduttivi

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

Corso di Calcolatori Elettronici I A.A Il processore Lezione 18

Sottosistemi ed Architetture Memorie

Architettura di un calcolatore: introduzione

Architettura dei Calcolatori elettronici

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

Architettura del calcolatore (Seconda parte)

Architettura hardware

Modi di indirizzamento del processore MC68000 parte 1

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

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

Architettura e funzionamento del calcolatore

Introduzione al linguaggio macchina

Modi di indirizzamento parte 1. Modello di programmazione del processore MC68000

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Capitolo 5 Elementi architetturali di base

ARCHITETTURA DI UN ELABORATORE

Laboratorio di Informatica L-A 1

Architettura hardware

Lezione 15. L elaboratore Elettronico

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

Struttura di un elaboratore

Introduzione all'architettura dei Calcolatori. Maurizio Palesi

L architettura del calcolatore (Seconda parte)

ARCHITETTURA DI UN ELABORATORE

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

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

Processore M68000: organizzazione della memoria

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

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

Architettura dell elaboratore

Architettura dell elaboratore

Architettura dei computer

Architettura di un calcolatore: introduzione

Architettura dei computer

Architettura dei calcolatori

Componenti di un processore

Architettura dei calcolatori

Cenni sull architettura del calcolatore

Architettura di un processore basato su registri generali.

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

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

ARCHITETTURA DEL CALCOLATORE

Componenti principali

Abilità Informatiche e Telematiche

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

Abilità Informatiche e Telematiche

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

Elementi di informatica

ARCHITETTURA DI UN ELABORATORE

Il Processore: l unità di controllo

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

Istruzioni e linguaggio macchina

Componenti e connessioni. Capitolo 3

Architettura dei calcolatori. Architettura dei calcolatori. Cos'è un computer?

ARCHITETTURA DI UN ELABORATORE

Modi di indirizzamento del processore MC68000 (parte prima)

Il processore - CPU (CENTRAL PROCESSING UNIT)

INFORMATICA GENERALE

Architettura dei calcolatori

Architettura e funzionamento del calcolatore

Il Processore. Informatica di Base -- R.Gaeta 27

Elementi di informatica

Architettura di una CPU

Architettura dell elaboratore

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

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

Architettura di von Neumann

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

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

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

Fondamenti di Informatica A. A / 1 9

Modi di indirizzamento del processore MC68000 (parte prima)

Corso di Calcolatori Elettronici I

Architettura degli Elaboratori

L architettura di riferimento

architettura degli elaboratori Alberto Ferrari Alberto Ferrari Informatica e Laboratorio di Programmazione

Richiami sull architettura del processore MIPS a 32 bit

Architettura dei Calcolatori Elettronici

CPU. ALU e Registri della CPU. Elementi della CPU. CPU e programmazione (Parte 1) Central Processing Unit, processore

2. Architettura di un calcolatore

Organizzata secondo il modello della macchina di von Neumann definita nei tardi anni 40 all Institute for Advanced Study di Princeton.

Macchina di von Neumann

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno.

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

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

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

Transcript:

Corso di Calcolatori Elettronici I Architettura del calcolatore ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica

Architettura del calcolatore Processore o CPU(Central Processing Unit) Memoria centrale Sottosistema di input/output (I/O)

Il processore (CPU) È in grado di eseguire un insieme di azioni elaborative elementari più o meno complesse Le istruzioni sono comandi che» governano il trasferimento di informazioni sia all interno del processore sia tra il processore e la memoria ed i dispositivi di I/O» specificano le operazioni aritmetiche e logiche che devono essere effettuate sui dati I datidi ingresso e di uscita dell elaborazione e la sequenza di istruzioni da eseguire (programma) sono immagazzinati nella memoria centrale Il processore preleva ed esegue le istruzioni dalla memoria una ad una, per poi eseguirle al proprio interno

CPU: struttura interna

CPU: struttura interna

CPU: struttura interna Componenti fondamentali del processore: Unità di controllo determina cosail processore deve fare, ovvero quali sono i passi elementari da compiere per eseguire le istruzioni Unità logico-aritmetica (ALU) contiene i circuiti necessari per effettuare le operazioni logico/matematiche direttamente eseguibili dal processore il suo funzionamento è guidato dall unità di controllo Sezione di collegamento con la memoria contiene i circuiti necessari per far transitare dati da e verso la memoria (che è un componente esterno alla CPU) Sezione di collegamento con Ingresso-Uscita Il linguaggio macchinadi un processore è costituito dalla codifica in binario delle istruzioni eseguibili dal processore

La memoria centrale La memoria centrale è un contenitore di dati E organizzata come una sequenza di gruppi di bit, ciascuno di lunghezza m, detti locazioni Gli mbit di una locazione sono accessibili in blocco dal processore (in lettura/scrittura) mediante un unica operazione gli mbit costituiscono una parolain memoria tipiche dimensioni della parola sono 8, 16, 32, 64 bit Ogni locazione è individuata da un indirizzo, cioè un intero compreso tra 0 e N-1, con N = 2 c m bit 0 1 2.... N-2 N-1» [0, N-1] = SPAZIO DI INDIRIZZAMENTO La memoria centrale è ad accesso casuale(ram) in quanto il tempo di accesso nondipende dalla posizione del dato locazione (m bit)

Operazioni di lettura e scrittura Le operazioni di letturasi effettuano fornendo alla memoria l informazione che indica dove leggere la parola viene ovvero fornito l indirizzo la memoria risponde fornendo il valore della parola contenuta a quell indirizzo lettura indirizzo 0 1 2.... N-2 N-1 parola letta memoria

Operazioni di lettura e scrittura Le operazioni di scritturasi effettuano fornendo alla memoria la parola da scrivere e l informazione che indica dovescrivere la parola stessa vengono ovvero forniti sia il dato che l indirizzo in questo caso la memoria non fornisce risposta scrittura parola da scrivere indirizzo 0 1 2.... N-2 N-1 memoria

Parole in memoria tipiche dimensioni della parola m sono 8, 16, 32, 64 bit Le parole ospitano dati elementari: numeri codificati in binario, caratteri, numeri in virgola mobile, etc.. E importante conoscere l ordine con cui sono memorizzati i bit in una parola ovvero dove, tra gli mbit, è collocato il MSB (most significant bit) e dove il LSB (least significant bit) m bit 0 1 2.... N-2 N-1 bit m-1 bit 0 MSB LSB

Parole in memoria Quando le parole sono composte da più byte(tipicamente 2, 4 o 8), molti calcolatori prevedono la possibilità di localizzare tramite l indirizzo lo specifico byte all interno della parola L indirizzo è in tal caso associato al byteall interno di ciascuna parola, e non alla parola stessa prima parola seconda parola terza parola parola i-esima parola (i+1)-esima Esempio con parole di 4 byte ed indirizzabilità a livello di singolo byte 3 2 1 0 7 6 5 4 11 10 9 8 4i+3 4i+2 4i+1 4*i indirizzo(del byte) 0 4 8 4*i 4*(i+1)

Parole in memoria: little-endian Memorizziamo il seguente numero binario: 11010000 00001110 11110000 00000001 all indirizzo 28 Si noti l ordine: 11010000 è all indirizzo 31 00001110 è all indirizzo 30 11110000 è all indirizzo 29 00000001 è all indirizzo 28 Byte meno significativi finiscono in indirizzi più bassi: organizzazione little-endian 31 30 29 28 11010000 00001110 11110000 00000001 indirizzo(del byte) 0 4 8 28

Parole in memoria: big-endian Memorizziamo il numero binario 11010000 00001110 11110000 00000001 all indirizzo 28 Si noti l ordine: 11010000 è all indirizzo 28 00001110 è all indirizzo 29 11110000 è all indirizzo 30 00000001 è all indirizzo 31 Byte meno significativi finiscono in indirizzi più alti: organizzazione big-endian 31 30 29 28 00000001 11110000 00001110 11010000 indirizzo(del byte) 0 4 8 28

little-endian e big-endian Ai fini dell organizzazione del calcolatore, la scelta tra little-endian e big-endian è indifferente. Tuttavia, una volta fatta, questa scelta condiziona il modo nel quale sono organizzate le strutture dati dei programmi e gli accessi in memoria da parte del processore programmi scritti per architetture big-endiannon sono compatibili con programmi scritti per architetture littleendian Processore Motorola 68000: esempio di processore big-endian Processore Intel 8086: esempio di processore little-endian

Allineamento Per un processore a parola di 16 bit, una parolache inizia ad un indirizzo pari si dice allineata sul limite di parola Tipicamente, un tale processore è in grado di accedere ai due byte che costituiscono una parola allineata mediante una sola operazione di lettura Ad esempio, il processore 8086 consente l utilizzo di parole non allineate, cioè parole che iniziano ad un indirizzo dispari, ma in tal caso sono necessari 2 distinti accessi in memoria Il processore 68000 NON consente l accesso a parole non allineate Parola X Parola X+2 X X+1 X+2 X+3 X+1 X+2 (X pari) La parola (X+1) non è allineata sul limite di parola

Collegamento CPU-memoria Interfacciamento fisico tra processore e memoria Address bus Memoria Data bus read write MA MB Unitàdi controllo del processore

Collegamento CPU-memoria MA(Memory Address): registro usato dal processore per scrivere l indirizzoda comunicare alla memoria per accedere ad una determinata locazione MB(Memory Buffer): registro usato per trasferire il dato da/verso la memoria segnali read/ write: dicono alla memoria se si vuole effettuare un operazione di lettura o di scrittura Address bus Memoria Data bus read write MA MB Unitàdi controllo del processore

Memoria dati ed istruzioni La memoria è usata per ospitare sia le istruzioni(programmi) che il processore deve eseguire, sia i datisu cui deve lavorare memoria programmi dati

Memoria dati ed istruzioni Esempio di organizzazione in memoria Alcuni gruppi di locazioni sono utilizzati per ospitare le istruzioniin sequenza (area codice, o istruzioni) altre parti della memoria sono usate per ospitare i dati (area dati) i i+1 i+2 Area codice Area dati ISTR1 ISTR2 ISTR3 datoa.. datob.. datoc

Algoritmo del processore Qualsiasi processore contiene due registri speciali Registro PC: contiene l indirizzo in memoria della prossima istruzione che deve essere eseguita Registro IR: contiene una copia dell istruzione da eseguire prelevata dalla memoria

Algoritmo del processore Prelievo dell istruzione(fetch) La CPU preleva dalla memoria l istruzione leggendola dall area codice all indirizzo indicato dal registro PC L istruzione viene copiata nel registro IR Decodifica / prelievo degli operandi(operand Assembly) L unità di controllo esamina il contenuto di IRe ricava il tipo di operazione ed i relativi operandi Eventuali operandi contenuti in memoria vengono prelevati con un ulteriore accesso in lettura (dall area dati) Esecuzione dell istruzione(execute) L unità di controllo richiede all ALUl operazione specificata nell istruzione ed invia il risultato ad un registro o alla memoria PC IR

Algoritmo del processore L unità di controllo opera in un ciclo infinito: Prelievo (fetch) Preparazione degli operandi (operand assembly) Esecuzione Nella fase di bootstrapil ciclo viene inizializzato avviene solo all accensione viene avviata l esecuzione di un programma iniziale in una memoria non volatile inserendo un valore iniziale opportuno nel registro PC Bootstrap Instruction fetch Operand assembly Execute

Componenti del processore modello a registri generali MEMORIA CPU MA MB IR Collegamento I/O RI Unità di Controllo PC R 0 R 1... O1 ALU O2 RU SR R n-1 U

Componenti del processore Componenti fondamentali del processore: Unità di controllo registro Program Counter (PC) o Prossima Istruzione Instruction Register o registro di decodifica (IR) registri di Macchina Unità aritmetico-logica (ALU) Sezione di Collegamento con la memoria registro degli indirizzi di memoria o Memory Address (MA) registro di transito dei dati dalla memoria Memory Buffer (MB) Sezione di Collegamento con Ingresso-Uscita

Unità logico-aritmetica L Unità di controllo fornisce alla ALU gli operandi, insieme ad un comandoche indica l operazione da effettuare Gli operandi sono copiati nei registri di ingresso della ALU (O 1, O 2 ) La ALU esegue l operazione e pone il risultato nel registro risultato (U); inoltre, altera il valore dei bit (o flag) del registro di stato (SR) in funzione del risultato. Esempi di flag: C: bit che viene alzato se l operazione ha determinato un riporto (Carry) V: bit che viene alzato se l operazione ha determinato un overflow etc.. comando dati dati / + -* O 1 O 2 ALU U C V........ SR: registro di stato

Registri del processore Registri interni» Necessari al funzionamento del processore» Non direttamente utilizzabili dal programmatore» non appartengono al modello di programmazione» Es. MA, MB, IR, Registri di macchina» Visibili al programmatore (ovvero, utilizzabili)» appartengono al modello di programmazione Registri generali (R 0, R 1, R n-1 ) Registri speciali (PC, SR, )

Registri del processore Insieme di registri R 0, R 1,..., R N-1 utilizzabili indifferentemente Le istruzioni che operano su registri sono più velocidi quelle che operano su locazioni di memoria Il programmatore può utilizzare i registri del processore per memorizzare i dati di uso più frequente invece che tenere i dati in memoria (concetto di gerarchia di memorie) Istruzioni con operandi registri: [R 0 ] + [R 1 ] R 1 Istruzioni con operandi memoria-registri: [R 0 ] + M[1000] R 0 (memory-to-register) M[1000] + [R 1 ] M[1000] (register-to-memory)

Registri del processore Istruzioni con operandi registri: preleva il contenuto dei registri R 0 e di R 1, somma i due valori tramite l ALU, poni il risultato in R 1 (sovrascrivendo il precedente contenuto) [R 0 ] + [R 1 ] R 1 Istruzioni con operandi memoria-registri: memory-to-register: preleva il contenuto di R 0 e della locazione numero 1000 in memoria(m), somma i due valori tramite l ALU, poni il risultato in R 0 [R 0 ] + M[1000] R 0 register-to-memory: M[1000] + [R 1 ] M[1000] preleva il contenuto della locazione numero 1000 in memoriae di R 1, somma i due valori tramite l ALU, poni il risultato in memoriaall indirizzo 1000 (sovrascrivendo il precedente contenuto)

Fase di fetch Descrizione dettagliata del processo di fetch M[PC] IR; PC + k PC k è la dimensione in byte di una parola in memoria, ad es. 4 byte (32 bit) PC 00 0000 1000 00 0000 1000 0100 0000 0001 0000 MA 00 0000 1000 MB 0100 0000 0001 0000 Memoria centrale IR 0100 0000 0001 0000 Codice operativo

Fase di fetch M[PC] IR; PC+k PC preleva il contenuto della locazione in memoriail cui indirizzo è PCe spostane il contenuto nel registro IR: l istruzione viene così caricata dalla memoria all interno del processore incrementa PCdella dimensione della parola (k). In questo modo, PCassume il valore dell indirizzo della successiva istruzione presente in memoria, la prossima da caricare ed eseguire PC 00 0000 1000 00 0000 1000 0100 0000 0001 0000 MA 00 0000 1000 MB 0100 0000 0001 0000 Memoria centrale IR 0100 0000 0001 0000 Codice operativo

Fase di fetch Alla fine della fase fetch: PC = PC+k k = lunghezza istruzioni in byte serve a far sì che PC punti all istruzione posta in memoria subito dopo in questo esempio, verranno caricate ed eseguite una dopo l altra ISTR1, ISTR2, Esecuzione delle istruzioni in sequenza nell ordine in cui sono memorizzate nella memoria Per cicli e strutture di controllo (if-then, if-then-else, switch) si usano istruzioni di salto che modificano PC ordine di esecuzione delle istruzioni Area codice Area dati i i+1 i+2 ISTR1 ISTR2 ISTR3 datoa.. datob.. datoc

Architettura del processore 68000 Registri generali D0-D7, A0-A7 PC 16 x 32 ALU 32 32 TEMP 32 EAR IR Control unit 16 SR 8 8 CCR Interfaccia memoria ed I/O Bus di memoria e di I/O in rosso, il numero di bit di ogni registro

Architettura del processore 68000 Dati: All esterno: parola di 16 bit (16 segnali, o pin, per i dati) All interno: registri di 32 bit Indirizzi: All esterno: 24 bit (spazio di indirizzamento fisico 2 24 = 16M) 512 pagine (2 9 ) da 32K (2 15 ) All interno: 32 bit

Architettura del processore 68000 Parallelismo della memoria: Parole di 16 bit, ognuna costituita da due byte con indirizzi distinti (memoria byte addressable, ovvero indirizzabile a livello di byte) Convenzioni della memoria: Una parola deve essere allineata ad un indirizzo pari (even boundary) Convenzione big-endian

Architettura del processore 68000 Modello di programmazione del 68000 31 1615 8 7 0 D0 D1 D2 D3 D4 D5 D6 D7 A0 A1 A2 A3 A4 A5 A6 A7 PC T S I 2 I 1 I 0 X NZ V CSR

Codifica delle istruzioni ESEMPIO: una CPU con istruzioni a lunghezza fissa di 32 bit LD R1, Var ; R1 M[Var] ADD R1, R2, R3 ; R1 R2 + R3 Alessandro da: G. Bucci. Cilardo Calcolatori Architettura Elettronici Architettura del calcolatore e organizzazione. McGraw-Hill, 2009

Sequenze di istruzioni in memoria Lo statement a = b + c si traduce come: LD R2, B ;B indirizzo a cui è allocata la parola b LD R3, C ;C indirizzo a cui è allocata la parola c ADD R1, R2, R3 ST A, R1 ;A indirizzo a cui è allocata la parola a Alessandro da: G. Bucci. Cilardo Calcolatori Architettura Elettronici Architettura del calcolatore e organizzazione. McGraw-Hill, 2009

Codifica istruzioni MC68000

Codifica istruzioni MC68000 (2) Si analizza qui solo la struttura della prima word (16 bit) del codice di una istruzione, detta OPCODE WORD