Architettura degli Elaboratori

Documenti analoghi
Architettura degli Elaboratori

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS)

Istruzioni e linguaggio macchina

Rappresentazione dell informazione

Architettura degli Elaboratori B Introduzione al corso

Architettura degli Elaboratori B Introduzione al corso

Fetch Decode Execute Program Counter controllare esegue prossima

Riassunto. Riassunto. Ciclo fetch&execute. Concetto di programma memorizzato. Istruzioni aritmetiche add, sub, mult, div

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Istruzioni e linguaggio macchina

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Linguaggio macchina. Architettura degli Elaboratori e delle Reti. Il linguaggio macchina. Lezione 16. Proff. A. Borghese, F.

Istruzioni di trasferimento dati

Il linguaggio macchina

Lezione 18 Il Set di Istruzioni (4)

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (2) Le operazioni e gli operandi. Dove siamo nel corso. Cosa abbiamo fatto

Lezione 17 Il Set di Istruzioni (3)

L unità di controllo di CPU a singolo ciclo

Un altro tipo di indirizzamento. L insieme delle istruzioni (3) Istruz. di somma e scelta con operando (2) Istruzioni di somma e scelta con operando

Il linguaggio macchina

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (3) Dove siamo nel corso. Organizzazione della lezione. Cosa abbiamo fatto

Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento

Informazioni varie. Lezione 18 Il Set di Istruzioni (5) Dove siamo nel corso. Un quadro della situazione

Progetto CPU (ciclo singolo)

Modifiche di orario. Lezione 19 Il Set di Istruzioni (6) Dove siamo nel corso. Un quadro della situazione

Istruzioni di controllo del flusso

Progetto CPU (ciclo singolo) Salvatore Orlando

Linguaggio macchina e register file

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti

Richiami sull architettura del processore MIPS a 32 bit

slt $t1,$t2,$t3 if ($t2<$t3) $t1=1; Confronto tra registri slti $t1,$t2,100 if ($t2<100)$t1=1; Cfr. registro-costante

Un quadro della situazione. Lezione 14 Il Set di Istruzioni (2) Dove siamo nel corso. I principi di progetto visti finora. Cosa abbiamo fatto

Istruzioni assembler Istruzione N Registri

Università degli Studi di Cassino

Autilia Vitiello Dip. di Informatica ed Applicazioni Stecca 7, 2 piano, stanza 12

L unità di controllo di CPU a singolo ciclo

Lezione 12. Assembly II. Set di Istruzioni MIPS Strutture di controllo in Assembly

Ricevimento inviate una e mail a con oggetto [Tutorato Arch] o [Tutorato Prog1]

Processore: Datapath & Control. Progetto CPU (ciclo singolo) Rivediamo i formati delle istruzioni. ISA di un MIPS-lite

Il Linguaggio Assembly: Controllo del flusso: istruzioni e costrutti

Corso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M.

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Richiami sull architettura del processore MIPS a 32 bit

Lezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano

Architettura degli Elaboratori B Introduzione al corso

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Progetto CPU a singolo ciclo

Progettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore

La struttura delle istruzioni elementari: il linguaggio Macchina. Sommario

Architettura degli Elaboratori B. Introduzione al corso. Componenti di un calcolatore convenzionale. (ciclo singolo) Progetto CPU. Contenuti del corso

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti. Proff. A. Borghese, F. Pedersini

Architettura degli elaboratori CPU a ciclo singolo

Il processore: unità di elaborazione

Lezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano

ISA (Instruction Set Architecture) della CPU MIPS32

ISA (Instruction Set Architecture) della CPU MIPS

Architettura degli Elaboratori Modulo 2

Architettura degli Elaboratori Modulo 2

Progetto CPU a singolo ciclo

L insieme delle istruzioni del processore MIPS. Corso Calcolatori Elettronici presso POLITECNICO DI MILANO

Architettura degli elaboratori CPU a ciclo singolo

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

Università degli Studi di Cassino

Architettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H

Elementi base per la realizzazione dell unità di calcolo

Linguaggio Assembly e linguaggio macchina

ISA e linguaggio assembler

Università degli Studi di Cassino

Architettura dell elaboratore

Architettura dell elaboratore

Manualino minimale MIPS

Linguaggio Assembly e linguaggio macchina

Controllo di flusso. Università degli Studi di Milano Corso di Laurea in Informatica, A.A Homepage del corso

Il linguaggio assembly

ISA e linguaggio macchina

Linguaggio Assembly e linguaggio macchina

La CPU a singolo ciclo

La CPU a singolo ciclo

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

Il linguaggio assembly

Calcolatore: sottosistemi

Calcolatori Elettronici Prof. Fabio Roli. Linguaggio Assembly. Capitolo 5. Corso di Laurea di Ingegneria Elettronica

Fondamenti di Informatica A. A / 1 9

21 March : ESERCITAZIONE 01 GESTIONE DELLA MEMORIA VETTORI CONTROLLOO O DI FLUSSO DI UN PROGRAMMA. I. Frosio

Il Linguaggio Assembly: Gestione della memoria e controllo

Architettura degli Elaboratori

Architettura degli elaboratori

Circuiti Sequenziali

L'architettura del processore MIPS

CPU a singolo ciclo: l unità di controllo, esecuzione istruzioni tipo J

Controllo di flusso. Università degli Studi di Milano Corso di Laurea in Informatica, A.A

Il linguaggio Assembly. Architettura degli Elaboratori e delle Reti Turno I

Transcript:

Architettura degli Elaboratori Linguaggio macchina e assembler (caso di studio: processore MIPS) slide a cura di Salvatore Orlando, Andrea Torsello, Marta Simeoni " Architettura degli Elaboratori 1 1

Istruzioni e Linguaggio Macchina" I Linguaggi Macchina sono composti da istruzioni macchina, codificate in binario, con formato ben definito" processori diversi hanno linguaggi macchina simili" scopo: massimizzare le prestazioni" veloce interpretazione da parte del processore" efficace traduzione/compilazione di programmi ad alto livello " Molto più primitivi dei Linguaggi ad Alto Livello! es., controllo del flusso poco sofisticato (non ci sono for, while, if) " Linguaggi molto restrittivi" es., istruzioni aritmetiche con numero fisso di operandi Architettura degli Elaboratori 2 2

Concetto di Stored Program " Istruzioni sono stringhe di bit" Programmi: sequenze di istruzioni" Programmi (come i dati) memorizzati in memoria " La CPU legge le istruzioni dalla memoria (come i dati) CPU Memory memoria usata per i dati e i programmi (compilatori, editor, etc.) Ciclo Fetch & Execute" CPU legge (fetch) istruzione corrente (indirizzata dal PC=Program Counter), e la pone in un registro speciale interno" CPU usa i bit dellʼistruzione per "controllare" le azioni da svolgere, e su questa base esegue lʼistruzione" CPU determina la prossima istruzione e ripete il ciclo" Architettura degli Elaboratori 3 3

Livelli di astrazione" Livelli e Linguaggi" Linguaggio ad Alto Livello" Linguaggio Assembler" Linguaggio Macchina" Scendendo di livello, diventiamo più concreti e scopriamo più informazione" Il livello più astratto omette dettagli, ma ci permette di trattare la complessità Architettura degli Elaboratori 4 4

Istruzioni e Linguaggio Macchina" Il processore che studieremo sarà il MIPS, usato da Nintendo, Silicon Graphics, Sony... " lʼinstruction Set del MIPS è simile a quello di altre architetture RISC sviluppate dal 1980 " le istruzioni aritmetiche del MIPS permettono solo operazioni elementari (add, sub, mult, div) tra coppie di operandi a 32 bit" le istruzioni MIPS operano su particolari operandi in memoria denominati registri, la cui lunghezza è di 32 bit = 4 Byte = 1 Word" Architettura degli Elaboratori 5 5

Istruzioni Aritmetiche del MIPS" Tutte le istruzioni hanno 3 operandi" Lʼordine degli operandi è fisso " lʼoperando destinazione in prima posizione Esempio: "C code (interi): "A = B + C Linguaggio Assembler "MIPS code: "add $8, $9, $10 " " " " (variabili associate con i registri dal compilatore)" Architettura degli Elaboratori 6 6

Istruzioni Aritmetiche MIPS" Principio di Progetto: semplicità favorisce la regolarità" Ma la regolarità può complicare le cose. "C code:" " A = B + C + D; E = F - A; "MIPS code: " "add $8, $4, $5 add $8, $8, $6 sub $9, $7, $8 Operandi = 32 Registri grandi 4B" $0, $1, $2, $3,. " Principio di progetto: più piccolo è anche più veloce" Architettura degli Elaboratori 7 7

Registri e Memoria" Le istruzioni aritmetiche operano su registri" Compilatore associa variabili con registri" Register File fa parte del Datapath del Processore" Control Datapath Processor Memory Input Output I/O Cosa succede con programmi con tanti dati (tante variabili, o array)?" Usiamo la memoria" Memoria MIPS indirizzata al Byte" Architettura degli Elaboratori 8 0 1 2 3 4 5 6... 8 bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data 8

Instruzioni di load / store" sw (Store Word): "reg word in memoria" lw (Load Word): "word in memoria reg " Esempio: "C code: " "A[8] = h + A[8]; A array che contiene numeri interi "MIPS code: " "lw $15, 32($4) add $15, $5, $15 sw $15, 32($4) Indirizzo della word in memoria &A[8]: $4 + 32 "" Nota che sw ha la destinazione come ultimo operando" Ricorda: gli operandi delle istr. aritmetiche sono registri, non celle di memoria! Architettura degli Elaboratori 9 9

Riassumendo" MIPS " load/store word, con indirizzamento al byte " aritmetica solo su registri Istruzioni " " " Significato add $4, $5, $6 $4 = $5 + $6 sub $4, $5, $6 $4 = $5 $6 lw $4, 100($5) $4 = Memory[$5+100] sw $4, 100($5) Memory[$5+100] = $4 Architettura degli Elaboratori 10 10

Linguaggio Macchina" Anche le istruzioni sono rappresentate in memoria con 1 word (4B)" Esempio: add $8, $17, $18 Formato R-type (Register type) per istruzioni aritmetico-logiche: 000000 10001 10010 01000 00000 100000 op rs rt rd shamt funct op: operazione base dell istruzione rs: registro del primo operando rt: registro del secondo operando rd: registro destinazione, che contiene il risultato dell operazione shamt: utilizzato per istruzioni di shift; posto a zero per le altre istruzioni funct: seleziona la specifica variante dell operazione base definita nel campo op. Architettura degli Elaboratori 11 11

Linguaggio Macchina" Formato istruzioni lw e sw" necessario introdurre un nuovo tipo di formato" I-type (Immediate type) " diverso dal formato R-type usato per le istruzioni aritmetico-logiche" Esempio: lw $9, 32($18) 35 18 9 32 op rs rt 16 bit number Compromesso di progetto" anche lw/sw sono lunghe 4B" displacement nellʼistruzione (operando immediato = 2B)" rt in questo caso è il registro destinazione!" Architettura degli Elaboratori 12 12

Istruzioni di controllo" Istruzioni per prendere decisioni sul futuro " alterano il controllo di flusso (sequenziale)" cambiano quindi la prossima" istruzione da eseguire (PC)" Istruzioni MIPS di salto condizionato: "beq $4, $5, Label bne $6, $5, Label # branch if equal # branch if not equal Esempio: " if (i==j) h = i + j; " " " "bne $4, $5, Label add $19, $4, $5 Label:... Formato I-type" Architettura degli Elaboratori 13 13

Istruzioni di controllo" Salto non condizionato j label" Esempio: "if (i!=j) beq $4, $5, Lab1 h=i+j; add $3, $4, $5 else j Lab2 h=i-j; Lab1: sub $3, $4, $5 Lab2:... Formato j-type (jump type)" op" 26 bit number" Architettura degli Elaboratori 14 14

Riassumendo" Istruzione " " "Significato add $4,$5,$6 $4 = $5 + $6 sub $4,$5,$6 $4 = $5 $6 lw $4,100($5) $4 = Memory[$5+100] sw $4,100($5) Memory[$5+100] = $4 bne $4,$5,Label Se $s4 $s5, prossima istr. caricata dall indirizzo Label beq $4,$5,Label Se $s4 = $s5, prossima istr. caricata dall indirizzo Label j Label Prossima istr. caricata dall indirizzo Label Formati:" R I J op rs rt rd shamt funct op rs rt 16 bit address op 26 bit address Architettura degli Elaboratori 15 15

Istruzioni di controllo" Abbiamo visto: beq, bne" ma come facciamo per esprimere Branch-if-less-than?" Nel MIPS cʼè unʼistruzione aritmetica " slt: Set-if-Less-Than" slt può essere usata in congiunzione con beq e bne "Istruzione " " " "Significato slt $10, $4, $5 if $4 < $5 then $10 = 1 else $10 = 0 Formato R-type" Architettura degli Elaboratori 16 16

Costanti" Costanti piccole sono molto frequenti (50% degli operandi), e trovano posto allʼinterno delle istruzioni come operandi immediati " "es.: "A = A + 5; " " "B = B + 1; " " "C = C - 18; Istruzioni MIPS aritmetico/logiche con operandi immediati: addi $29, $29, 4 slti $8, $18, 10 andi $29, $29, 6 ori $29, $29, 4 Formato I-type" Architettura degli Elaboratori 17 17

Riassunto istruzioni MIPS " Istruzioni aritmetico/logiche: add $8, $8, $6 sub $9, $7, $8 slt $10, $4, $5 and $29, $28, $6 or $27, $8, $16 addi $29, $29, 4 slti $8, $18, 10 andi $29, $29, 6 ori $29, $29, 4 Istruzioni di salto:" bne $4, $5, Label beq $4, $5, Label j Label Istruzioni di lettura/scrittura in memoria:" lw $15, 32($4) sw $15, 32($4) vedere lʼelenco completo" sul libro di testo!" Architettura degli Elaboratori 18 18