Estratto del documento

sistemi

Organizzazione dei di calcolo

Indice

Calcolatori elettronici

Modello di Von Neuman

Scheda Madre

CPU Registri

Data path

Formato delle Istruzioni

CISC vs RISC

Esecuzione delle istruzioni

Interruzioni

Trap

Interrupt

Dispositivi di I/O

Tecniche di I/O

Hard Disk

RAID

SSD

Dischi ottici

Scheda Video

Scheda Audio

Stampanti

Sistemi Embedded

Parallelismo a livello di istruzioni e di processore

La legge di Moore

Pipeline

Architettura Superscalare

Trattamento dei Salti

Categorie di calcolatori con Tassonomia di Flynn

Multiprocessore

Multicomputer

SMP

Organizzazione dei sistemi di calcolo

Calcolatori elettronici

I calcolatori elettronici si possono classificare tenendo presente:

• la potenza di calcolo e la loro capacità di memorizzazione

• l’ambiente e lo scopo per cui sono utilizzati

In generale si distinguono:

personal computer: usati come elaboratori di testo, Internet, banche dati, strumenti da ufficio ecc.

workstation: usati per il calcolo e la programmazione, per la grafica avanzata e la ricerca

mainframe: grandi aziende, banche, gestione di complesse reti di computer e di apparecchiature, applicazioni gestionali

network computer: computer collegati in rete condividendo dati (dischi) e altre risorse. I “terminali” sono postazioni

prive di capacità di elaborazione, dotate solo di monitor e tastiera e collegate ad un computer centrale di cui sfruttano la

CPU e la memoria.

Architettura dei calcolatori e dei dispositivi di Input/Output

L’architettura (o schema di progettazione) di calcolatori elettronici su cui si basano i moderni PC è un’estensione

dell’architettura ideata dal matematico John Von Neumann.

L’architettura di Von-Neumann (estesa) comprende:

• CPU

• ROM

• RAM

• Dispositivi di I/O:

o Monitor

o Hard Disk

o Drive CD/DVD

o Stampanti

• BUS

Scheda Madre

In un calcolatore, la scheda madre raccoglie la circuiteria elettronica di interfaccia fra le componenti principali, tra

queste e i bus di espansione e le interfacce verso l’esterno. E’ responsabile della trasmissione e temporizzazione

corretta dei segnali.

I principali componenti montati sulla motherboard sono:

o Processore

o RAM

o ROM(BIOS)

o Scheda video, audio

I principali componenti connessi tramite cavi sono:

o hard disk

o Lettore DVD

o Alimentatore

o Slot USB, ecc.

CPU

La CPU esegue le istruzioni di un programma (che deve essere presente in memoria RAM/ROM/cache).

Durante l’esecuzione, la CPU legge o scrive dati dalla/nella memoria; il risultato dell’esecuzione dipende dal dato su cui

opera e dallo stato interno della CPU stessa, che tiene traccia delle operazioni.

Elementi fondamentali:

Registri: locazioni di memoria interne alla CPU, molto veloci. Il valore complessivo di tutti i registri della CPU costituisce

lo stato in cui essa si trova in un determinato istante.

ALU (Arithmetic Logic Unit): esegue le operazioni logiche e aritmetiche

Unità di controllo (CU): preleva dalla memoria le istruzioni, le decodifica, se occorre preleva i dati necessari, esegui

l’istruzione ed eventualmente memorizza il risultato salvandolo in memoria o in un registro.

I registri del processore possono essere:

visibili all’utente:

• disponibili per tutti i programmi

• permettono di ridurre gli accessi alla memoria principale

• tipicamente sono:

o dati ▪ general purpose

▪ dedicati (ad uno scopo)

o indirizzi (es index register, segment pointer, stack pointer)

o codici di condizione (flag – parzialmente visibili)

di stato e di controllo:

• memorizzano l’esito delle operazioni

• solo alcuni programmi possono averne accesso in modalità di controllo o di sistema operativo

Scambio dati con la memoria:

MAR (Memory Address Register): indirizzo di riferimento alla memoria

MDR (Memory Data Register): dati provenienti/da inviare alla memoria

Scambio di dati con i moduli di I/O:

I/O AR (Input Output Address Register): specifica dispositivo di I/O

I/O BR (Input Output Buffer Register): contiene i dati da scambiare col dispositivo

Esecuzione delle istruzioni:

PC (Program counter): indirizzo della successiva istruzione da eseguire (è un puntatore)

IR (Instruction Register): istruzione corrente

Controllo dell’esecuzione:

PSW (Program Status Word) informazioni di stato (abilitazione/disabilitazione di interrupt, bit selezione SU o

utente); alcune info sono specifiche per un SO

Data path in una macchina di Von Neumann

La figura mostra com’è organizzata internamente una parte, chiamata percorso dati (data path), di una tipica CPU di

Von Neumann; essa è composta dai registri (generalmente da 1 a 32), dalla ALU (Arithmetic Logic Unit, “unità

aritmetico-logica”) e da alcuni bus che connettono fra loro le diverse parti. I registri alimentano due registri di input

della ALU (indicati nella figura con le lettere A e B) che mantengono i dati d’ingresso della ALU mentre questa è

occupata nell’esecuzione di alcune computazioni. Il percorso dati riveste una grande importanza in tutte le macchine e

nel corso del libro lo tratteremo in m odo approfondito. La ALU esegue alcune semplici operazioni sui suoi input, come

addizioni e sottrazioni, e genera un risultato che viene memorizzato in un suo apposito registro di output. Questo valore

può essere successivamente immagazzinato in uno dei registri della CPU che, volendo, può essere copiato in memoria in

un secondo momento.

La maggior parte delle istruzioni può essere divisa in due categorie principali: le istruzioni registro-memoria e quelle

registro-registro. Le “parole” sono le unità di dati che vengono spostate tra la memoria e i registri; una parola potrebbe

essere un intero. Il processo che consiste nel portare i due operandi attraverso la ALU e nel memorizzare il risultato è

chiamato ciclo del percorso dati e rappresenta il cuore della maggior parte delle CPU. Con buona approssimazione si

può dire che definisca che cosa sia in grado di fare una macchina; inoltre più veloce è il ciclo del percorso dati, maggiore

risulta la velocità del calcolatore.

I processori possono implementare al loro interno più unità di esecuzione per eseguire più operazioni

contemporaneamente. Questo approccio incrementa le prestazioni delle CPU ma ne complica l’esecuzione: per poter

eseguire in modo efficiente più operazioni in parallelo la CPU deve poter organizzare le istruzioni.

La possibilità di disporre di più CPU permette al sistema operativo di far eseguire in parallelo più programmi

aumentando notevolmente le prestazioni (multi threading).

ISTRUZIONI

Un programma è una sequenza di istruzioni.

Un’istruzione è un comando; eventualmente opera su dati.

Tipi di istruzioni:

• trasferimento:

o processore - memoria (e viceversa)

o processore - modulo I/O (e viceversa)

• elaborazione dati (operazioni logico-aritmetiche)

• controllo (modifica della sequenza di esecuzione)

Un’istruzione può anche essere una combinazione delle precedenti possibilità. Il set di istruzioni (ISA) dipende dal

processore.

Formato delle istruzioni (esempi)

8 bit: codice operativo 4 bit: n registro 20 bit: indirizzo parola RAM

Trasferimento registri <-> RAM

Operazioni aritmetiche (somma, differenza, moltiplicazione e divisione utilizzando i registri come operandi)

Confronto: paragona il contenuto di 2 registri R e R e:

i j

• se R < R mette -1 nel registro RC

i j

• se R = R mette 0 in RC

i j

• se R > R mette 1 in RC

i j

GAP semantico

Un linguaggio di alto livello deve essere compilato affinché possa essere eseguito da un calcolatore. La differenza tra il

linguaggio di alto livello e il linguaggio macchina rappresenta il GAP semantico.

Ci sono quindi due possibili interpretazioni della questione:

• avere un’architettura molto complessa che includa un numero elevato di istruzioni e modi di indirizzamento e

che includa anche istruzioni molto vicine a quelle presenti nel linguaggio di alto livello (CISC – Complex

Instruction Set Computer)

Esempi di sistemi basati su architettura CISC sono System/360, VAX, PDP-11, la famiglia Motorola 68000,

l'architettura x86 di Intel e AMD.

• semplificare il set di istruzioni e adeguarlo alla necessità dell’utente (RISC - Redox). L’architettura RISC è anche

detta load-store poiché solo queste due istruzioni permettono di operare sulla memoria, in contrasto con

l’architettura CISC.

Ampiamente utilizzata nei processori MIPS (Console portatili) e ARM (Smartphone).

Esecuzione dell'istruzione

La CPU esegue ogni istruzione compiendo una serie di piccoli passi che, in linea generale, possono essere descritti nel

seguente modo:

1. prelevare la successiva istruzione dalla memoria per portarla nell’IR

2. modificare il PC per farlo puntare all’istruzione seguente

3. determinare il tipo dell’istruzione appena prelevata

4. se l’istruzione usa una parola in memoria, determinare dove si trova

5. se necessario, prelevare la parola per portarla in un registro della C PU

6. eseguire l’istruzione

7. tornare al punto 1 per iniziare l’esecuzione dell’istruzione successiva.

Spesso ci si riferisce a questa sequenza di passi con il termine di ciclo esecutivo delle istruzioni, o ciclo di prelievo-

decodifica-esecuzione. Essa ha un’importanza centrale nel funzionamento di qualsiasi calcolatore.

L’esecuzione di un’istruzione attraverso le seguenti fasi:

1. INSTRUCTION FETCH: (acquisizione dell’istruzione): il processore preleva l’istruzione dalla memoria, specificata

dal registro PC e la carica nell’IR; incrementa il valore del PC

2. INSTRUCTION DECODE: (decodifica dell’istruzione): dall’istruzione prelevata viene determinata quale

operazione debba essere eseguita e come ottenere gli operandi mediante la conoscenza dei codici operativi

(operazione svolta dalla Control Unit)

3. INSTRUCTION EXECUTE: (esecuzione dell’istruzione): viene eseguita la computazione richiesta

4. MEMORY ACCESS: nel caso in cui l’istruzione richieda un accesso alla memoria, questa fase sostituisce o segue

la precedente

5. WRITE BACK: il risultato viene scritto in memoria.

Interruzioni

Le interruzioni sono dei segnali che consentono di interrompere la normale elaborazione del processore.

La loro funzione principale è di migliorare l’efficienza dell’elaborazione: quando viene richiesta un’operazione di I/O, il

processore può continuare con l’elaborazione. Quando l’operazione termina, il dispositivo segnala l’evento al processore

con un segnale di interruzione.

Le interruzioni possono essere di due tipi:

- interrupt: generate da un dispositivo hardware;

- trap: generate da un programma in esecuzione.

Vi sono diverse classi di interruzione:

• Programma: derivanti da un errore di esecuzione (overflow, divisione per 0, …)

• Timer: operazioni pianificate

• I/O

• Errore hardware (ad esempio caduta di tensione).

TRAP:

Una trap è una chiamata di procedura automatica effettuata quando si verificano condizioni causate da un programma.

Ne è un esempio l’overflow: se il risultato di un’operazione aritmetica eccede il più grande numero rappresentabile, si

verifica una trap, ovvero il controllo del flusso viene interrotto e riprende da una locazione di memoria prefissata, invece

di proseguire in sequenza. In tale locazione di memoria si trova l’indirizzo per un salto ad una procedura detta gestore di

trap, che svolge azioni appropriate come ad esempio la stampa di un messaggio di errore.

Il concetto chiave delle trap è che sono fatte scattare da condizioni eccezionali causate dal programma e sono rilevate

dall’hardware o dal microprogramma.

La verifica potrebbe anche essere inserita nel programma dal programmatore, ma significherebbe inserire un controllo

dopo ogni operazio

Anteprima
Vedrai una selezione di 8 pagine su 34
Organizzazione dei sistemi di calcolo Pag. 1 Organizzazione dei sistemi di calcolo Pag. 2
Anteprima di 8 pagg. su 34.
Scarica il documento per vederlo tutto.
Organizzazione dei sistemi di calcolo Pag. 6
Anteprima di 8 pagg. su 34.
Scarica il documento per vederlo tutto.
Organizzazione dei sistemi di calcolo Pag. 11
Anteprima di 8 pagg. su 34.
Scarica il documento per vederlo tutto.
Organizzazione dei sistemi di calcolo Pag. 16
Anteprima di 8 pagg. su 34.
Scarica il documento per vederlo tutto.
Organizzazione dei sistemi di calcolo Pag. 21
Anteprima di 8 pagg. su 34.
Scarica il documento per vederlo tutto.
Organizzazione dei sistemi di calcolo Pag. 26
Anteprima di 8 pagg. su 34.
Scarica il documento per vederlo tutto.
Organizzazione dei sistemi di calcolo Pag. 31
1 su 34
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher gian_fri99 di informazioni apprese con la frequenza delle lezioni di Architettura degli elaboratori e sistemi operativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Bari o del prof Pirlo Giuseppe.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community