Cap 5 - Instruction Set Architecture Flashcards
Quali sono i punti fermi lato sw e lato hw che devono essere rispettati quando si parla di ISA?
SW: l’architettura deve definire strumenti e risorse per il programmatore.
HW: l’architettura deve essere implementata attraverso un sistema digitale opportunamente progettato, in modo che si arrivi a un dispositivo che rispetti i requisiti di performance, costi, consumi e dimensioni del computer programmabile.
Quale distinzione generale si può fare nella classificazione di un’ISA?
Due macro-categorie: RISC: Reduced Instruction Set Computers; CISC: Complex Instruction Set Computers.
Quale vincolo rendeva l’approccio CISC ottimale nella progettazione di un’architettura?
Il costo e le dimensioni della memoria, motivo per cui l’obiettivo era ottenere computer che ne richiedessero poca.
Qual è l’idea che sta dietro la progettazione di tipo CISC?
Mantenere basso l’instruction count (# istruzioni richieste per algoritmo), in modo da minimizzare l’occupazione di memoria. Per questo motivo l’ISA deve prevedere 2 tipi di istruzioni: operazioni semplici e operazioni complesse e strutturate.
Qual è l’aspetto negativo di una progettazione dell’ISA con approccio CISC?
Le istruzioni complesse hanno un impatto in termini di performance, con CPI che potrebbe essere alto per tali istruzioni e clock rate che è influenzato dalla complessità del sistema digitale, e di conseguenza hanno un impatto sui costi, per la realizzazione di un sistema digitale che raggiunga certi standard di performance.
Qual è l’obiettivo dell’approccio RISC alla progettazione di un’architettura?
Semplificare il processore, e quindi ridurre i costi complessivi per la realizzazione del computer.
Qual è l’idea che sta dietro alla progettazione di tipo RISC?
Le istruzioni eseguono solo operazioni elementari, e le operazioni complesse sono realizzate componendo operazioni elementari. Questo era possibile anche dal fatto che la memoria fosse diventata più economica e meno ingombrante.
Quali sono i possibili svantaggi/vantaggi di un’implementazione di tipo RISC di un’architettura?
RISC potrebbe risultare meno efficiente rispetto a CISC, con un instruction count inevitabilmente maggiore. Tuttavia, istruzioni elementari implicano la possibilità di abbassare CPI e anche semplificare la struttura del sistema digitale che deve implementare le istruzioni, con vantaggi su costi e consumi.
Come può essere caratterizzato l’ISA MIPS?
Microprocessor without Interlocked Pipeline Stages
- anni ‘80
- RISC
- 2 versioni: 32 bit, 64 bit
- progettato pensando ai sistemi embedded.
Come può essere caratterizzato l’ISA RISC V?
- consolidata attorno al 2015
- RISC
- royalty free + open source => non necessario pagare per realizzare processore su questa base
- ISA modulare
- principalmente adatto a sistemi embedded, ma può essere adattato a diversi contesti e applicazioni.
Come può essere caratterizzato l’ISA ARM?
Advanced RISC Machine
- anni ‘80
- ISA ibrido: nasce RISC ma utilizza anche soluzioni tipiche del CISC
- pensato per realizzare processori con performance elevate e consumi contenuti
- sistemi embedded / mobile.
Come può essere caratterizzato l’ISA Intel x86?
- sigla per ISA sviluppati da Intel
- storia che inizia nel 1978
- tutti processori Intel 32 bit sono basati su ISA della famiglia x86.
Che cosa definisce l’ISA in termini di dati?
L’ISA definisce i tipi di dato messi a disposizione del programmatore e la dimensione in byte di ogni tipo.
Qual è il compito del compilatore quando si parla di dati?
Il compilatore deve associare ad ogni tipo di dato definito dal linguaggio di programmazione ai tipi messi a disposizione dall’ISA.
Che cosa si intende per word?
E’ la dimensione in bit del tipo di riferimento per l’architettura. Un’architettura prevede istruzioni che operano su dati di tipo word e suoi sottomultipli.
Che cosa definisce l’ISA dal punto di vista del livello hw, conosciuta la word del sistema?
Definisce le risorse necessarie a supportare le operazioni su interi (ed eventualmente floating point). Quindi la ALU dovrà essere progettata in funzione della word del sistema, anche se caratteristiche come latenza e area occupata vengono definite dal livello hw.
Come può essere riassunta l’organizzazione dei dati all’interno del computer?
- RAM: elemento esterno alla CPU che ospita generalmente i dati e che detta i tempi per lo scambio di dati con il processore. Ha una capienza maggiore ma anche una latenza maggiore.
- Register File (RF): banco di registri locale interno al processore, composto da poche unità ma a latenza più bassa. E’ possibile spostarvici i dati dalla RAM per un accesso più rapido.
Il banco di registri può sostituire la memoria all’interno di un computer?
No, dal momento che non è possibile usare registri per memorizzare strutture con # elevato di dati (array, struct, liste dinamiche, etc…). Inoltre un processore può ospitare al massimo un centinaio di registri, e si avrebbe il problema di come ricavare spazio utile all’interno del processore.
Quali categorie di registri vengono definite dall’ISA?
- General purpose registers: registri a completa disposizione del programmatore.
- Special function registers: l’ISA definisce per loro compiti specifici, quindi devono essere usati in maniera consona dal programmatore. L’ISA può anche inibire al programmatore l’accesso a tali registri.
Quali regole sono definite dall’ISA per gestire da dove la ALU riceva i dati e dove possa scrivere il risultato?
- Register-memory: in ogni istruzione che coinvolga un’operazione aritmetico-logica gli input possono essere registri o locazioni di memoria e l’output anche.
- Load-Store: in ogni istruzione che coinvolga un’operazione aritmetico-logica gli input possono essere solo registri e gli output solo un registro.
Quali sono i vantaggi della politica Register-memory per la comunicazione ALU-RF/memoria in termini di performance?
Ci si aspetta un instruction count migliore (approccio CISC) e si ha una maggiore flessibilità nell’accesso ai dati, poiché si possono risparmiare spostamenti tra memoria e registri. Ottimo se il # di registri a disposizione è ridotto.
Quali sono i vantaggi della politica Load-Store per la comunicazione ALU-RF/memoria in termini di performance?
La latenza delle operazioni aritmetico logiche può essere migliore poiché la ALU accede direttamente ai registri; di contro, generalmente sono richiesti più registri, e ciò ha ricadute sul livello hw. Nel complesso permette di semplificare la struttura della CPU, e può essere più facile trovare un compromesso performance/consumi.
Come si possono caratterizzare RISC V e Intel x86 in termini di accesso ai registri/memoria da parte della ALU?
RISC V: - RISC - load-store - 32 registri general-purpose, altri 32 dedicati per unità FP.
Intel x86: - CISC - register-memory - 16 registri general-purpose, 8 per interi, 8 per FP - altri registri non visibili o con compiti dedicati.
In che modo il metodo di codifica di un’istruzione impatta negativamente sulla CPU?
Dopo il fetch, la fase di decode viene effettuata dalla MSF nella CPU per poter poi passare all’esecuzione, e scegliere un metodo di codifica complicato per le istruzioni può avere un impatto sulla complessità della MSF.