Introduzione. Un calcolatore digitale è costituito da un sistema interconnesso dei seguenti dispositivi:



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

Elementi di base del calcolatore

Architettura dei computer

ARCHITETTURA DI UN ELABORATORE

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

Laboratorio di Informatica L-A 1

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

Architettura dei computer

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

Il modello di Von Neumann

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

Architettura hardware

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

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

Modulo 1: Le I.C.T. UD 1.4d: La Memoria Centrale

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

Introduzione all'architettura dei Calcolatori. Maurizio Palesi

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Lezione 15. L elaboratore Elettronico

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

Architettura del Calcolatore

Architettura di un calcolatore: primi cenni introduttivi

Macchina di Von Neumann

ARCHITETTURA DI UN ELABORATORE

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

ARCHITETTURA DI UN ELABORATORE

LABORATORIO DI INFORMATICA

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

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

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

Il Processore: l unità di controllo

Architettura di un elaboratore. Il modello di von Neumann

Architettura del calcolatore. Prima parte

Cenni sull architettura del calcolatore

Architettura di un elaboratore

Architettura dei Calcolatori Elettronici

Architettura del calcolatore (Seconda parte)

Componenti e connessioni. Capitolo 3

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un elaboratore

Informatica: Lez. 1. Andrea Payaro. (European Logistics Association)

Sistemi di numerazione

Componenti di un processore

Architettura hardware

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

ARCHITETTURA DI UN ELABORATORE

Sistemi di Elaborazione delle Informazioni

Fondamenti di Informatica A. A / 1 9

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

Architettura di un elaboratore

Architettura di un elaboratore

MODELLO DI MACCHINA MULTILIVELLO Introduzione

La memoria principale

2. Architettura di un calcolatore

Struttura di un sistema di elaborazione. SDE: basi. Descrizione dei componenti (2) Descrizione delle componenti

Abilità Informatiche e Telematiche

Ispirata al modello della Macchina di Von Neumann. Macchina di Von Neumann: Non distingueva fra RAM e ROM Non aveva un bus ma collegamenti punto-punto

Componenti principali

Architettura del calcolatore

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.

Struttura di un elaboratore

Architettura dei calcolatori

Architettura del computer

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

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

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

Abilità Informatiche e Telematiche

Informatica di base 4 crediti 32 ore!!

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

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

Lezione 1: L hardware

Elementi di Informatica Chiara Epifanio

6: Macchina di Von Neumann

Le tipologie di memoria...

Note sull architettura del calcolatore

Sistemi a microprocessore

Architettura dei calcolatori I parte Introduzione, CPU

Macchina di Von Neumann

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

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

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica.

Corso di Informatica

L architettura del calcolatore (Seconda parte)

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Memorie a semiconduttore

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

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

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

Architettura dei Calcolatori elettronici

Lez. 5 I dispositivi di I/O. Prof. Pasquale De Michele Gruppo 2

Costruire memorie ancora più grandi

Architettura di un Sistema Informatico

Transcript:

Appunti di Calcolatori Elettronici Organizzazione dei sistemi di elaborazione Introduzione... 1 La CPU... 2 Ciclo di esecuzione delle istruzioni... 3 Insieme delle istruzioni... 4 Organizzazione della CPU... 4 La memoria... 6 I bit... 6 Gli indirizzi di memoria... 7 Proprietà generali della memoria: RAM e ROM... 8 Introduzione Un calcolatore digitale è costituito da un sistema interconnesso dei seguenti dispositivi: processori; memorie; dispositivi di I/O. La figura seguente riporta una schematizzazione assolutamente generale di un calcolatore automatico: dati algoritmo risultati Unità di ingresso (input) Memoria Unità di uscita (output) Unità aritmetica e logica Unità di controllo

Appunti di Calcolatori Elettronici L insieme dell unità aritmetica e logica e dell unità di controllo è quello che oggi si definisce processore. La CPU L'organizzazione di un semplice calcolatore dotato di bus per il collegamento tra i dispositivi è mostrata nella seguente: Unità Centrale di Elaborazione (CPU) Unità di controllo Unità aritmetica e logica Registri...... Memoria centrale Disco Stampante BUS Organizzazione di un semplice calcolatore con una CPU e due dispositivi di I/O il cuore del sistema è costituito dalla CPU (Unità centrale di elaborazione), la quale consta a sua volta delle seguenti componenti: o unità di controllo o unità aritmetica e logica (ALU) o registri interni; in posizione fisicamente adiacente alla CPU c'è la memoria centrale (di tipo RAM, Random Access Memory, cioè ad accesso casuale uniforme); seguono i vari dispositivi di Input (disco, tastiera, mouse, scanner,...) e di Output (video, stampante,...). 2

Organizzazione dei sistemi di elaborazione Occupiamoci in particolare della CPU e delle sue componenti: l' unità di controllo ha il compito di prelevare le istruzioni dalla memoria principale e di determinarne il tipo, oltre che di sovrintendere al funzionamento generale del calcolatore; l' unità aritmetico-logica esegue le operazioni elementari (OR, AND, XOR, somma, moltiplicazione,...) richieste dalle istruzioni; i registri interni sono una specie di piccola memoria ad altissima velocità, usata dalla CPU per memorizzare i risultati temporanei delle proprie operazioni e certe informazioni di controllo; ognuno di questi registri ha una particolare funzione; ad esempio: o il registro più importante è il Program Counter (PC), il quale punta alla prossima istruzione da eseguire ( 1 ); o il registro delle istruzioni Instruction Register (IR) contiene di volta in volta l'istruzione da eseguire. Ciicllo dii esecuziione delllle iistruziionii La CPU esegue un programma (ossia una sequenza di istruzioni) attraverso la successione dei seguenti passi: 1. legge la nuova istruzione dalla memoria (usando l indirizzo contenuto nel registro PC) e la pone nel registro delle istruzioni (IR); questa fase è detta di fetch dell istruzione; 2. cambia il valore del registro PC, in modo che punti all istruzione seguente; 3. determina il tipo di istruzione appena prelevata, leggendo i primi bit del registro IR (i quali recano il codice operativo dell istruzione); 4. se l istruzione usa dei dati (operandi) nella memoria, determina la loro posizione; 5. preleva i suddetti dati e li pone nei registri interni della CPU; 6. esegue l istruzione, tramite l uso dell unità aritmetica e logica; 1 Si noti che il nome contatore di programma è decisamente fuorviante, in quanto non ha niente a che fare con il conteggio di qualcosa. 3

Appunti di Calcolatori Elettronici 7. memorizza il risultato nel posto previsto dalla istruzione (sia esso un registro o una locazione di memoria); 8. ritorna al passo 1 e comincia ad eseguire l istruzione seguente. Spesso, questa sequenza di passi viene detta ciclo preleva-decodifica-esegui, per evidenti motivi. Essa è alla base del funzionamento di tutti i calcolatori. IInsiieme delllle iistruziionii Il gruppo di tutte le istruzioni disponibili per un programmatore, ad un determinato livello, si chiama insieme di istruzioni di quel livello. Il numero di istruzioni contenute in tale insieme varia sia da livello a livello sia da macchina a macchina. Un grosso insieme di istruzioni non necessariamente è migliore di uno piccolo; al contrario, spesso vale il concetto opposto, dato che un grosso insieme di istruzioni significa che tali istruzioni sono piuttosto specifiche, mentre invece i compilatori dei linguaggi ad alto livello (come il Pascal o il C) lavorano meglio su macchine con insiemi di istruzioni piccoli e ben scelti. Le macchine con insiemi di istruzioni molto piccoli sono dette macchine RISC (Reduced Instruction Set Computers) e si contrappongono alle macchine CISC (Complex Instruction Set Computers): esempi di macchine CISC sono i processori Intel a partire dal 80386, oppure i più vecchi IBM 360, Motorola 780030 o il DEC VAX. Le macchina RISC non usano la microprogrammazione e sono molto veloci. Organiizzaziione delllla CPU L organizzazione interna di una parte della classica CPU di Von Neumann è mostrata dettagliatamente nella figura seguente, facendo riferimento ad un esempio semplice di somma tra due numeri: 4

Organizzazione dei sistemi di elaborazione A+B A Registro della CPU B A B Registri di input della ALU ALU A+B Registro di output della ALU Cammino dei dati di una tipica macchina di Von Neumann Quando l'unità aritmetica e logica deve eseguire una operazione tra due dati, il cammino di tali dati, secondo lo schema di Von Neumann, è il seguente: i due dati vengono prelevati dai registri interni della CPU (oppure dalla memoria); vengono quindi inviati a due registri di input per l'alu; l'alu esegue l'operazione richiesta sui dati contenuti in tali registri e deposita il risultato in un registro di output (sempre specifico della ALU), dal quale i dati verranno successivamente trasportati nella destinazione finale (che potrà essere un registro della CPU, come in figura, oppure una locazione della memoria centrale). A proposito della posizione degli operandi di una istruzione e del risultato di una operazione su di essi, si distinguono tre categorie di istruzioni: o istruzioni da memoria a registro, che permettono il passaggio delle parole dalla memoria ai registri della CPU, dove possono essere usate come input dell ALU, quali operandi di istruzioni; 5

Appunti di Calcolatori Elettronici o istruzioni da registro a registro, che prendono i due operandi dai registri della CPU, li portano nei registri di input della ALU, eseguono l operazione su di essi e memorizzano il risultato di nuovo in un registro della CPU; o istruzioni da memoria a memoria, che portano gli operandi dalla memoria direttamente ai registri di input dell ALU, eseguono l operazione e riscrivono il risultato direttamente in memoria. Il cammino dei dati è il cuore della maggior parte delle CPU, in quanto, in un certo senso, definisce ciò che la macchina può fare. La memoria La memoria è quella parte del calcolatore in cui sono immagazzinati i programmi ed i dati. Senza una memoria in cui i processori possano leggere e scrivere informazioni, non esisterebbero calcolatori digitali con programmi memorizzati. II biit L unità fondamentale della memoria è la cifra binaria, detta bit. Ogni bit può contenere uno 0 oppure un 1. E dunque l unità più semplice possibile da memorizzare ed elaborare. Spesso si dice che i calcolatori usano l aritmetica binaria perché è più efficiente; in realtà, l aritmetica binaria gode di due pregi: l efficienza e l affidabilità. Cominciamo proprio dall affidabilità: l informazione digitale può essere memorizzata distinguendo tra i diversi valori di qualche grandezza fisica continua (o, meglio, analogica), come la tensione o la corrente; quanti più valori devono essere distinti, tanto meno separazione esisterà tra valori adiacenti e quindi tanto meno la memoria sarà affidabile; allora, nel caso del sistema di numerazione binaria, i valori da distinguere sono solo due, il che lo rende il sistema più affidabile possibile per la codifica delle informazioni. Talvolta, si pubblicizzano alcuni calcolatori, come i grandi mainframe IBM, dicendo che sono dotati dell aritmetica decimale oltre che di quella binaria. Il trucco, in questa affermazione, è semplice: si usano 4 bit per memorizzare una singola cifra decimale, secondo una tecnica chiamata BCD (Binary-Coded Decimal). 6

Organizzazione dei sistemi di elaborazione Evidentemente, dato che 4 bit forniscono 2 4 =16 combinazioni, 10 di queste sono usate per le 10 cifre decimali (da 0 a 9), mentre le rimanenti 6 rimangono inutilizzate. Così facendo, ad esempio, il numero 1944 sarà codificato nel modo seguente: sistema decimale: 0001 1001 0100 0100 sistema binario: 0000011110011000 In entrambi i casi, sono stati usati 16 bit, ma con una differenza fondamentale: i 16 bit del formato decimale possono memorizzare solo i numeri da 0 a 9999, permettendo cioè solo 10000 combinazioni, mentre invece i 16 bit binari consentono di rappresentare 65536 diverse combinazioni, ossia più di 6 volte tanto. Per questa ragione si dice che l aritmetica binaria è più efficiente. Gllii iindiiriizzii dii memoriia La memoria principale di un calcolatore è costituita da un numero di celle (o locazioni), ognuna delle quali può immagazzinare un elemento di informazione. Ogni cella è individuata da un proprio numero (detto indirizzo) con il quale i programmi possono riferirsi ad essa. Se una memoria ha N celle, allora tali celle avranno indirizzi compresi tra 0 e N-1. cella #0 cella #1 cella #2 cella... cella #N-2 cella #N-1 Schematizzazione della divisione in celle di una memoria, numerate in modo progressivo da 0 ad N-1, dove N è il numero di celle Ogni cella di memoria contiene lo stesso numero di bit. Se una cella contiene K bit, allora essa può contenere una qualsiasi delle 2 K combinazioni diverse di tali bit. Le celle adiacenti hanno ovviamente indirizzi consecutivi. I calcolatori che usano l' aritmetica binaria esprimono anche gli indirizzi di memoria tramite numeri binari. Ad esempio, se un indirizzo di memoria binario è 7

Appunti di Calcolatori Elettronici costituito da M bit, significa che il numero massimo di celle direttamente indirizzabili è 2 M. Il numero di bit nell'indirizzo è dunque collegato al numero massimo di celle direttamente indirizzabili, ma invece non dipende affatto dal numero di bit per ogni cella. Ad esempio, una memoria con 2 12 celle ciascuna da 8 bit avrebbe bisogno di indirizzi a 12 bit così come una memoria con 2 12 celle da 60 bit: ciò che conta è il numero di celle e non la loro dimensione. La cella è l unità indirizzabile più piccola. Negli ultimi anni, molti costruttori hanno standardizzato celle a 8 bit, dette byte. A loro volta, i byte sono raggruppati in parole. Il numero di byte costituenti una parola varia da calcolatore e calcolatore: ad esempio, un calcolatore con una parola a 16 bit ha evidentemente 2 byte/parola, mentre invece un calcolatore con una parola a 32 bit ha evidentemente 4 byte/parola (questo è il caso oggi più comune). La ragione per l uso delle parole è che molte istruzioni operano su parole intere: un esempio classico è la somma tra due parole. Di conseguenza, una macchina a 16 bit (ossia con parole a 16 bit) avrà registri a 16 bit e istruzioni per manipolare parole a 16 bit, mentre invece una macchina a 32 bit (ossia con parole a 32 bit) avrà registri a 32 bit e istruzioni per spostare, sommare, sottrarre e manipolare parole a 32 bit. Propriietà generallii delllla memoriia:: RAM e ROM Le memorie che possono essere sia scritte sia lette sono chiamate RAM (Random Access Memory, ossia memoria ad accesso casuale), che in realtà è un termine improprio (per quanto ormai diffusamente utilizzato), dato che tutti i chip di memoria sono accessibili in maniera casuale. Le RAM si dividono in due varietà: le RAM statiche (SRAM) sono costruite internamente in modo che il loro contenuto venga mantenuto fin quando sono alimentate; le RAM dinamiche (DRAM) sono sostanzialmente delle matrici di piccoli condensatori, ognuno dei quali può essere caricato o scaricato, in modo da memorizzare uno 0 oppure un 1. Dato che la carica elettrica tende a disperdersi, ogni bit di una DRAM deve essere rinfrescato ogni pochi millisecondi se si vuole che i dati non svaniscano. Dato che deve essere la logica esterna a curare il rinfrescamento, le memorie DRAM richiedono 8

Organizzazione dei sistemi di elaborazione una interfaccia più complessa rispetto alle SRAM; a fronte di questo svantaggio, le DRAM hanno il pregio di capacità generalmente maggiori rispetto alle SRAM. Alcune DRAM hanno inoltre la logica di rinfrescamento direttamente sul chip, il che permette sia una grande capacità sia una interfaccia semplice: si parla in questo caso di chip quasi-statici. Le RAM non sono comunque l unico tipo di chip di memoria; in molte applicazioni, infatti, il programma da eseguire e parti dei dati necessari devono rimanere memorizzati anche quando la corrente viene disinserita; oltre a questo, molti programmi devono necessariamente rimanere inalterati una volta installati. Questi requisiti hanno portato allo sviluppo delle memorie ROM (Read-Only Memory, ossia memorie a sola lettura): il contenuto di queste memorie non può essere cambiato o cancellato in alcun modo. Il contenuto di una ROM viene inserito durante la costruzione del chip, esponendo un materiale fotosensibile attraverso una maschera che contiene la configurazione desiderata di bit e poi incidendo la superficie esposta (oppure quella non esposta). Le ROM sono molto più economiche delle RAM, specialmente se ordinate in grandi quantità per sostenere le spese della creazione della maschera. Tuttavia, queste memorie sono evidentemente poco flessibili proprio perché non modificabili. Le cosiddette memorie PROM (Programmable ROM, ossia ROM programmabili) sono state allora introdotte per facilitare lo sviluppo di nuovi prodotti basati su ROM: il chip è come una ROM, ma può essere programmato (anche se una sola volta) sul campo. Lo sviluppo successivo di questi chip è stato quelle delle memorie EPROM (Erasable PROM, ossia PROM cancellabili): questi chip non solo sono programmabili come le PROM, ma sono anche cancellabili. In poche parole, quando la cosiddetta finestra al quarzo di una EPROM viene esposta ad una forte luce ultravioletta per 15 minuti, tutti i bit vengono posti ad 1. Nei casi in cui sono necessari molti cambiamenti durante il ciclo di progettazione, la EPROM è senz altro più economia della PROM, proprio perché può essere riutilizzata. Ancora meglio delle EPROM sono le memorie EEPROM (Electrically Erasable PROM, ossia PROM cancellabili elettricamente), dette anche EAROM (Electrically Alterable ROM, ossia ROM alterabili elettricamente): queste memorie possono essere cancellate semplicemente applicando degli impulsi elettrici anziché inserendole in una camera speciale per l esposizione alla luce ultravioletta. 9

Appunti di Calcolatori Elettronici Segnaliamo che una EEPROM differisce da una RAM poiché sia la scrittura di un byte sia la cancellazione di un byte richiedono un tempo migliaia di volte più lungo; al contrario, i tempi di accesso per la lettura delle memorie ROM in generale sono comparabili con quelli delle RAM. e-mail: sandry@iol.it sito personale: http://users.iol.it/sandry 10