Che materia stai cercando?

Anteprima

ESTRATTO DOCUMENTO

Si descriva l’architettura di una generica CPU evidenziando in

particolare le funzioni che vengono svolte dall’IR e dal

decodificatore e commentando il coinvolgimento delle risorse della

CPU durante la fase di fetch dell’istruzione.

La CPU (Central Processing Unit) è l'unità fondamentale di ogni calcolatore,

quella che di fatto compie le varie operazioni tra i dati.

Ha più componenti :

I Bus sono i collegamenti fisici attraverso i quali passano i segnali elettrici e

collegano le varie componenti della cpu o la cpu con l'esterno. Si dividono in

base al tipo di informazione trasportata: dati (bus dati), indirizzi di memoria

(bus indirizzi), istruzioni di controllo del processo o gestione delle priorità

(bus di controllo)

Inoltre per agire più velocemente sui dati, quelli di interesse in un certo

momento sono salvati in piccoli blocchi di memoria detti registri. Alcuni

registri inoltre sono specializzati per racchiudere un certo tipo di informazioni:

I Flag: registri che contengono un controllo sull'output di un'elaborazione per

verificare se è andata a buon fine e non vi sono errori

Il Program Counter : un registro che contiene sempre l'indirizzo dell'istruzione

successiva da eseguire (è un puntatore → punta all'istruzione successiva)

Lo stack Pointer invece contiene l'indirizzo della cima di uno stack pila,

particolare struttura di dati che torna utile nella gestione di chiamate a

sottoprogrammi.

L'IR (Instruction Register) è utilizzato invece per conservare il codice

operativo dell'istruzione da eseguire, da qui poi la sequanza di bit del op code

verrà decodificata per mezzo di un decodificatore che ricevute le n linee di

ingresso attiva i (2^n) circuiti appropriati per l'esecuzione dell'istruzione.

La alu infine è l'unità che svolge le operazioni aritmetiche e logiche tra

sequenze di bit, interagendo col registo dei flag per la rilevazione di errori.

Spesso utilizza un registro detto accumulatore nel quale mantiene

temporaneamente gli operandi o il risultato.

La fetch è la prima fase di esecuzione di un programma e consiste nel

prelevare dalla memoria tutto ciò che serve per far partire la decodifica e

l'esecuzione dell'istruzione.

In un primo momento il PC (Program Counter) punta all'istruzione da

eseguire che avrà un certo indirizzo di memoria, il quale viene trasferito in un

particolare registro della memoria (principale) detto MAR (Memory Address

Register) quindi verrà prelevata l'istruzione relativa all'indirizzo contenuto nel

MAR e messa in un altro registro della memoria, il MBR (Memory Buffer

Register).

A questo punto il PC si autoincrementa per puntare all'istruzione successiva

mentre il contenuto dell'MBR, l'istruzione stessa, verrà scomposta nei vari

campi e il codice operativo verrà immesso nell'IR. Se tutti gli operandi sono

pronti e l'op code è nell'IR, termina la fase di FETCH e inizia quella di

decodifica.

Si elenchino i tipi di istruzioni presenti tipicamente in una CPU

descrivendo in particolare le funzioni svolte dalle istruzioni di

“Controllo programma”.

In un calcolatore ci sono diversi tipi di istruzioni:

Aritmetiche

Logiche

Rotazione e Shift

Trasferimento dati

Controllo programma

Controllo macchina

Le istruzioni in genere sono memorizzate nel calcolatore usando un linguaggio,

intermedio tra il linguaggio di alto livello e il linguaggio macchina, detto

linguaggio assembler.

Le istruzioni di controllo programma sono quelle che vanno a modificare

l'ordine in cui le istruzioni di un programma vengono prelevate dalla

memoria. Se devo far partire un programma infatti questo verrà caricato dal

disco (memoria secondaria) in RAM, che è più veloce. Le istruzioni vengono

eseguite in maniera sequenziale, ma spesso è utile imporre delle decisioni al

calcolatore che possono andare a intaccare la sequenzialità, facendo si che

istruzioni successive debbano essere prelevate in altre zone della memoria

RAM (zone non contigue). Per far ciò si utilizzano le istruzioni di controllo

programma. Sono istruzioni di tipo SALTO e possono essere incondizionati;

ovvero a un certo punto del programma si salta all'inidirizzo indicato in ogni

caso, o condizionati; ovvero si salta a una certa istruzione solo se è verificata

una certa condizione. Inoltre possono essere con ritorno o meno; infatti non è

sempre necessario ritornare al punto in cui il programma aveva effettuato il

salto. Il salto può essere anche relativo a una posizione, in tal caso è

necessario riportare l'entità dello spostamento (displacement)

Salto condizionato JP -condizione-indirizzo

Salto incondizionato JP -indirizzo

Salto relativo incondizionato JR -displacement

Salto relativo condizionato JR- condizione-displacement

Le Istruzioni di salto con ritorno sono dei casi in cui un programma chiama

dei sottoprogrammi che ricevono i dati dal main, li elaborano e restutuiscono i

risultati al programma principale.

Nella chiamata a sottoprogramma è necessario non perdere il contenuto del

PC relativo all'istruzione successiva a quella in esecuzione nel main appena

prima della chiamata, questo costituirà l'indirizzo di ritorno e verrà salvato

come primo elemento (ultimo che uscirà) in una struttura stack pila.

Es. di salto con ritorno: Lo Stack Pointer viene decrementato per far spazio

all'indirizzo di ritorno che sarà PC+4( 4 byte = 1 word) SP-4 -> SP ; SP ->

MAR ; PC+4 -> MBR; MBR -> MAR

Con questi passaggi abbiamo liberato uno spazio nella stack pila per inserire

l'istruzione di ritorno (PC+4); a questo punto, essento il ritorno salvato nello

stack, possiamo scrivere l'indirizzo di inizio routine nel program counter.

Si dimostri perché l’operatore NOR sia considerato universale. Si

elenchino gli elementi usati dall’algebra di Boole, gli operatori e le

proprietà note.

L'operatore NOR si definisce universale perchè insieme all'operatore NAND

possono costituire tutte le operazioni di base dell'algebra booleana (AND,

NOT e OR). Questa si basa su due valori che possono essere on/off, 1/0,

Vero/Falso ecc...Si Basa su più operandi e le relative tabelle di verità indicano

per ciascuno degli ingressi il valore in uscita.

Esempio. AND: 1*1=1; 1*0=0*1=0*0=0

Si descrivano e si confrontino i sistemi operativi dedicati,

multiprogrammati e a condivisione di tempo (time sharing)

I sistemi operativi sono il software di base di ogni calcolaatore e sono


ACQUISTATO

2 volte

PAGINE

8

PESO

56.62 KB

AUTORE

UNSIGNED

PUBBLICATO

7 mesi fa


DETTAGLI
Corso di laurea: Corso di laurea in ingegneria informatica (MANTOVA - PAVIA)
SSD:
Università: Pavia - Unipv
A.A.: 2018-2019

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher UNSIGNED di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica 1 e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Pavia - Unipv o del prof Danese Giovanni.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Fondamenti di informatica 1

Conversioni Numeriche per Fondamenti di Informatica 1
Appunto
Architettura di Von Neumann
Appunto
Appunti ed Esercizi Analisi 1
Appunto
Riassunto Analisi 2
Appunto