Architettura degli Elaboratori

Похожие документы
Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS)

Architettura degli Elaboratori B Introduzione al corso

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

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

Richiami sull architettura del processore MIPS a 32 bit

Il linguaggio macchina

Richiami sull architettura del processore MIPS a 32 bit

Progetto CPU (ciclo singolo) Salvatore Orlando

L unità di controllo di CPU a singolo ciclo

Università degli Studi di Cassino

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

Istruzioni assembler Istruzione N Registri

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

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

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

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

ISA (Instruction Set Architecture) della CPU MIPS

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

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

Calcolatori Elettronici

Elementi base per la realizzazione dell unità di calcolo

Linguaggio Assembly e linguaggio macchina

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

Linguaggio Assembly e linguaggio macchina

Linguaggio Assembly e linguaggio macchina

Architettura di tipo registro-registro (load/store)

L'architettura del processore MIPS

Sommario Introduzione al linguaggio Assembly. Calcolatori Elettronici Prof. Gian Luca Marcialis. Le operazioni fondamentali

Architettura degli Elaboratori

Architettura degli Elaboratori Modulo 2

Elementi di informatica

CPU a ciclo multiplo

Architettura MIPS (RISC) Architetture dei Calcolatori (Lettere. Principi di Progettazione ISA MIPS MIPS R3000 ISA. Il Set di Istruzioni MIPS

Introduzione. Indice. Linguaggio macchina. Linguaggio assembler

Il processore: unità di controllo

Lecture 2: Prime Istruzioni

La macchina programmata Instruction Set Architecture (1)

Laboratorio di Architettura degli Elaboratori

Implementazione semplificata

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!

CPU pipeline hazards

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003

Lezione 15 Il Set di Istruzioni (1)

Accesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A.

Architettura hardware

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

MIPS Instruction Set 1

Lezione 2 Assembly MIPS (2)

Sistemi di Elaborazione delle Informazioni

1. Si effettui la divisione di 7/5 utilizzando un efficiente algoritmo e illustrando la corrispondente architettura hardware.

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni

Architettura di un calcolatore e ciclo macchina. Appunti per la classe 3 Dinf

Laboratorio di Architettura degli Elaboratori LabArch 2007 Terzo Quadimestre, a.a Docente: H. Muccini

Elementi di informatica

Il modello di von Neumann

Calcolatori Elettronici

COMPITINO #1 di CALCOLATORI ELETTRONICI 1 del COGNOME NOME

Architettura dei Calcolatori elettronici

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Architettura degli elaboratori - CPU multiciclo A.A. 2016/17. Architettura degli elaboratori

Транскрипт:

Architettura degli Elaboratori Linguaggio macchina e assembler (caso di studio: processore MIPS) slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello 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 macchina (ciclo Fetch Decode Execute) CPU legge (fetch) l istruzione corrente (indirizzata dal PC=Program Counter), e la pone in un registro speciale interno CPU usa i bit dell istruzione per "controllare (decodifica) le azioni da svolgere, e su questa base esegue l istruzione CPU determina la prossima istruzione e ripete il ciclo 3 Architettura degli Elaboratori 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: Linguaggio Assembler C code (interi): A = B + C 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 centrale 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): lw (Load Word): reg word in memoria word in memoria reg Esempio: C code: A[8] = h + A[8]; MIPS code: lw $15, 32($4) add $15, $5, $15 sw $15, 32($4) A array che contiene numeri interi Indirizzo della word in memoria &A[8]: $4 + 32 Nota che sw ha la destinazione come ultimo operando displacement Ricorda: gli operandi delle istruzioni 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 # branch if equal bne $6, $5, Label # 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 Formato R-type if $4 < $5 then $10 = 1 else $10 = 0 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 - 10; Istruzioni MIPS aritmetico/logiche con operandi immediati: addi $29, $29, 4 slti $8, $18, 10 andi $29, $29, 6 ori $29, $29, 4 slti $3, $1, 5 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 (and bit a bit) or $27, $8, $16 (or bit a bit) 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