Estratto del documento

Organizzazione dei sistemi 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:
    • Monitor
    • Hard disk
    • Drive CD/DVD
    • 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. È responsabile della trasmissione e temporizzazione corretta dei segnali.

I principali componenti montati sulla motherboard sono:

  • Processore
  • RAM
  • ROM (BIOS)
  • Scheda video, audio

I principali componenti connessi tramite cavi sono:

  • Hard disk
  • Lettore DVD
  • Alimentatore
  • 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, esegue l’istruzione ed eventualmente memorizza il risultato salvandolo in memoria o in un registro.

Registri del processore

I registri del processore possono essere:

Visibili all’utente:

  • Disponibili per tutti i programmi
  • Permettono di ridurre gli accessi alla memoria principale
  • Tipicamente sono:
    • Dati: general purpose; dedicati (ad uno scopo)
    • Indirizzi (es index register, segment pointer, stack pointer)
    • 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 modo 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:
    • Processore - memoria (e viceversa)
    • 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

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 Ri e Rj e:

  • Se Ri < Rj mette -1 nel registro RC
  • Se Ri = Rj mette 0 in RC
  • Se Ri > Rj mette 1 in RC

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 CPU
  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