Anteprima
Vedrai una selezione di 8 pagine su 33
Tesina Architettura dei calcolatori elettronici Pag. 1 Tesina Architettura dei calcolatori elettronici Pag. 2
Anteprima di 8 pagg. su 33.
Scarica il documento per vederlo tutto.
Tesina Architettura dei calcolatori elettronici Pag. 6
Anteprima di 8 pagg. su 33.
Scarica il documento per vederlo tutto.
Tesina Architettura dei calcolatori elettronici Pag. 11
Anteprima di 8 pagg. su 33.
Scarica il documento per vederlo tutto.
Tesina Architettura dei calcolatori elettronici Pag. 16
Anteprima di 8 pagg. su 33.
Scarica il documento per vederlo tutto.
Tesina Architettura dei calcolatori elettronici Pag. 21
Anteprima di 8 pagg. su 33.
Scarica il documento per vederlo tutto.
Tesina Architettura dei calcolatori elettronici Pag. 26
Anteprima di 8 pagg. su 33.
Scarica il documento per vederlo tutto.
Tesina Architettura dei calcolatori elettronici Pag. 31
1 su 33
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Esecuzione e calcolo del risultato

EXECUTE- : Esecuzione e calcolo del risultato.

Scrittura del risultato nel registro destinazione e Accesso alla memoria

MEMORY ACCESS- : Scrittura del risultato nel registro destinazione e Accesso alla memoria.

Scrittura del risultato in memoria

WRITE-BACK- : Scrittura del risultato in memoria.

Esempi di Istruzioni in Formato R

add $2, $3, $4• : somma il contenuto dei registri 3 e 4 e salva il risultato nel registro 2;

sub $1, $2, $3• : sottrae il contenuto del registro 3 dal contenuto del registro 2 e salva il risultato nel registro 1;

Esempi di Istruzioni in Formato I

sw $2, 100($3)• : (store word) salva il contenuto del registro 2 nella locazione di memoria di indirizzo 100 +$3;

lw $2, 100($3)• : (load word) salva il contenuto della locazione di memoria di indirizzo 100+$3 nel registro 2;

bne $1 , $2, L: salta ad L se i contenuti di 1 e 2 sono diversi;• (branch on not equal)

Esempi di Istruzioni in Formato J

jal L• : (jump and link) salta ad L, salvando l'indirizzo della prossima istruzione nel $ra (registro di ritorno).

j L• : (jump)

salta ad L.DIRETTIVE E ALLOCAZIONE DI MEMORIA Durante la fase di programmazione di un software MIPS, vengono fornite alcune direttive all'assemblatore, ossia come e dove memorizzare il programma e i dati in memoria. Le direttive iniziano con il carattere "." e possono: -DIRETTIVE AL SEGMENTO DATI: (con direttiva .data) contenente le dichiarazioni di variabili e costanti. -DIRETTIVE AL SEGMENTO TESTO: (con direttiva .text) contenente il sorgente del programma. La memoria associata al programma è divisa in tre parti: -SEGMENTO TESTO: contenente le istruzioni del programma. -SEGMENTO DATI: contenente i dati di elaborazione, a sua volta suddiviso in DATI STATICI, già presenti in memoria dalla compilazione fino all'esecuzione; DATI DINAMICI, dove lo spazio è allocato dinamicamente al momento dell'esecuzione, su richiesta. -SEGMENTO STACK: contenente lo stack (pila) allocato automaticamente da un programma durante l'esecuzione. I/O MIPS Dal punto di

Vista della CPU, un dispositivo I / O appare come un insieme di registri per scopi speciali, di tre tipi generali:

  • Registri di stato
  • Registri di configurazione/controllo
  • Registri di dati

Il circuito logico che contiene questi registri è chiamato controller del dispositivo e il software che comunica con il controller si chiama driver di dispositivo. Dispositivi semplici come tastiere e mouse possono essere rappresentati solo da pochi registri, mentre quelli più complessi come unità disco e adattatori grafici possono avere dozzine di registri. Ciascuno dei registri I / O, così come la memoria, deve avere un indirizzo in modo che la CPU possa leggere o scrivere registri specifici.

Nell'architettura MIPS, si utilizzano I / O mappati in memoria. Quando si utilizza l'I / O mappato in memoria, lo stesso spazio di indirizzo è condiviso dai dispositivi di memoria e I / O. Alcuni indirizzi rappresentano celle di memoria, mentre altri rappresentano registri nei dispositivi.

I / O. Non sono necessarie istruzioni I / O separate in una CPU che utilizza I / O mappati in memoria. Invece, si possono eseguire operazioni di I / O usando qualsiasi istruzione che possa fare riferimento alla memoria.

Sull'architettura MIPS, si accede a ROM, RAM e I / O usando le istruzioni di caricamento e memorizzazione. Il tipo di dispositivo a cui si accede dipende solo dall'indirizzo utilizzato.

L'architettura MIPS a 32 bit ha un indirizzo a 32 bit e quindi uno spazio di indirizzi di 4 gigabyte. Gli indirizzi da 0x00000000 a 0xfffeffff vengono utilizzati per la memoria e gli indirizzi 0xffff0000 - 0xffffffff (gli ultimi 64 kilobyte) sono riservati per i registri dei dispositivi I / O. Questa è una frazione molto piccola dello spazio totale degli indirizzi, e tuttavia molto più spazio di quanto è necessario per i dispositivi I / O su un singolo computer. A ciascun registro all'interno di un controller I / O deve essere assegnato un indirizzo.

univoco all'interno dello spazio degli indirizzi. Questo indirizzo può essere fissato per alcuni dispositivi e assegnato automaticamente ad altri. (I dispositivi plug-and-play per PC hanno indirizzi I / O assegnati automaticamente, che vengono determinati durante l'avvio.)

PIPELINING

Il pipelining è il processo di accumulo di istruzioni dal processore attraverso una pipeline (tubatura). Permette di archiviare ed eseguire istruzioni in un processo ordinato. È anche noto come elaborazione della pipeline. Questa è una tecnica in cui più istruzioni vengono sovrapposte durante l'esecuzione. La pipeline è divisa in fasi e queste fasi sono collegate tra loro per formare una struttura simile a una tubatura. Le istruzioni entrano da un'estremità e escono da un'altra estremità. La tecnica aumenta il rendimento complessivo delle istruzioni. In questo sistema, ogni segmento è costituito da un registro di ingresso seguito da

Un circuito combinatorio. Il registro viene utilizzato per conservare i dati e il circuito combinatorio esegue operazioni su di esso. L'uscita del circuito combinatorio viene applicata al registro di ingresso del segmento successivo. Vi sono due tipologie di pipeline:

Pipeline aritmetica - Sono utilizzate per operazioni in virgola mobile, moltiplicazione di numeri in virgola fissa ecc.

Pipeline di istruzioni - legge le istruzioni dalla memoria mentre le istruzioni precedenti vengono eseguite in altri segmenti della pipeline. Quindi si possono eseguire più istruzioni contemporaneamente. La pipeline sarà più efficiente se il ciclo di istruzioni è diviso in segmenti di uguale durata.

Le istruzioni eseguite nella pipeline sono dipendenti l'una con l'altra, e potrebbero verificarsi dei conflitti di dati, situazioni incoerenti, chiamate "alee". Per evitare questo rischio, vi sono due tecniche di risoluzione:

1. COMPILAZIONE DEL CODICE: Inserimento

di istruzioni N-OP (No Operation), che rendono temporaneamente inattive le unità, nel caso non si trovassero istruzioni indipendenti da poter inserire tra quelle con conflitto; Scheduling (Riordino) delle istruzioni. -AGGIUNTA DI STALLI NELLA PIPELINE: così da creare spazio ed evitare ravvicinamenti a livello hardware. ALEE A causa dei ritardi differenti nell' "attraversamento" di porte logiche da parte dei segnali, si possono verificare malfunzionamenti dei valori delle uscite al variare degli ingressi. Questi malfunzionamenti prendono il nome di alee. Le alee corrispondono a valori di un segnale logico temporaneamente diversi da quello atteso, a causa dei ritardi introdotti dai vari gate di una rete combinatoria. Vi sono due tipologie di alee: -ALEE STATICHE: dove il segnale di uscita, invece di rimanere costante, assume un altro valore -ALEE DINAMICHE: dove il segnale di uscita, oscilla ripetutamente prima di assumere il valore stabilito. INPUT/OUTPUT E

L'interfaccia input/output è una componente hw-sw che permette un maggiore scambio di dati tra utente e calcolatore, ottenendo dati in ingresso e restituendo le elaborazioni in uscita. Quando la CPU inserisce l'indirizzo di una periferica sul bus degli indirizzi, l'interfaccia input/output decodifica l'indirizzo e identifica la periferica interessata del computer con cui deve essere eseguita un'operazione di trasferimento dati. L'interfaccia deve anche interpretare il comando sul bus di controllo in modo che i tempi del trasferimento dei dati siano corretti. Un'ulteriore funzione molto importante dell'interfaccia input/output è quella di fornire un accesso diretto per il flusso di dati tra il bus dati del computer e la periferica esterna. Dal punto di vista componentistico, parlando di dispositivi di I/O, sono costituiti da: 1) il dispositivo hardware; 2) una componente di controllo (Controller), la quale coordina le

funzionalità di periferica, processore e memoria al fine di consentire il corretto funzionamento della periferica stessa, ricevendo gli ordini dal processore e trasferendoli alla periferica;

un software chiamato driver, che, una volta ricevuto il segnale binario in cui è stato tramutato l'evento fisico, lo "traduce" in dati elaborabili, consentendo inoltre la configurazione della periferica.

ELENCO TIPI DI I/O

La gestione dei dati tra Interfaccia I/O ed il resto del Sistema, avviene tramite tre tecniche principali:

  • I/O programmato: controllo completo delle operazioni di I/O affidato al processore, che esegue istruzioni specifiche, delegando però il controllo delle periferiche alle periferiche stesse.
  • I/O da interruzione: alla ricezione del segnale di interruzione da parte della periferica, viene fermata l'esecuzione del programma attuale per gestire le operazioni di I/O.
  • I/O con accesso diretto alla memoria: Nelle prime due tecniche, il

Il processore è sempre stato il responsabile del trasferimento dati; infatti, la velocità di trasferimento è limitata dalla velocità del processore nel gestire il dispositivo. Perciò, per evitare che ci siano perdite di efficienza, nel caso di dati di grandi dimensioni, è stata introdotta la tecnica DMA (Direct Memory Access) che utilizza un ulteriore modulo sul bus di sistema che simula il comportamento del processore, incaricato di gestire le operazioni di I/O, utilizzando anche segnali di interruzione.

RICHIAMI DI MULTIPROGRAMMAZIONE

La gestione dei dati di I/O è ritrovabile nei sistemi che supportano la multiprogrammazione, che vede la presenza di più processi in memoria nello stesso momento, dove la CPU alterna l'esecuzione di questi ultimi, sospendendoli e ripristinandoli. Tutti i processi passano per determinati stati, che formano il CICLO DI VITA di ogni processo. Gli stati che un processo assume sono:

  • NEW: il processo viene

creato o inizializzato.- READY: il processo è pronto per essere eseguito.- RUNNING: il processo è in esecuzione.- WAITING: il processo è sospeso in attesa di un altro evento.- HALTED: il processo termina la sua esecuzione.

Durante la sua creazione, il processo è nello stato NEW. Quando viene dichiarato pronto per l'esecuzione, il processo passa da NEW a READY. Successivamente, entrano in gioco i due del sistema operativo, ossia lo scheduler e il dispatcher. Il primo seleziona il processo da eseguire, tra quelli caricati in memoria. Il secondo, alloca la CPU al processo selezionato, avviandone l'esecuzione, passando così allo stato di RUNNING e se nel tempo che gli viene concesso riesce a eseguire tutte le sue istruzioni passa allo stato HALTED, altrimenti se esaurisce il tempo o necessita, ad esempio, di un input, passa allo stato WAITING. Quando un evento di input si verifica, il processo può tornare allo stato READY e successivamente essere nuovamente selezionato dallo scheduler per essere eseguito.

Dettagli
A.A. 2019-2020
33 pagine
1 download

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher gabrieledamiano999 di informazioni apprese con la frequenza delle lezioni di Architettura dei calcolatori elettronici 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 della Basilicata o del prof Carpentieri Marco.