LA FAMIGLIA DI PROCESSORI MIPS
|
|
- Gennaro Rosso
- 7 anni fa
- Visualizzazioni
Transcript
1 1 INTRODUZIONE ALLA PROGRAMMAZIONE ASSEMBLY DI PROCESSORI MIPS IL PROCESSORE MIPS ISA RIDOTTO emips PROGRAMMAZIONE ASSEMBLY DELL emips FRAMEWORK PER L'ESECUZIONE DI APPLICAZIONI ASSEMBLY SUL MODELLO VERILOG DI UN SISTEMA DI ELABORAZIONE BASATO SUL PROCESSORE emips-sc 2 LA FAMIGLIA DI PROCESSORI MIPS
2 LA FAMIGLIA MIPS 3 La prima versione dell ISA MIPS è una delle prime architetture di tipo RISC (Reduced Instruction Set Compnent) ed è stata sviluppata da John L. Hennessy. L ISA si è quindi evoluta in innumerevoli versioni ciascuna delle quali è stata implementata da diverse microarchitetture. Si parla di famiglia di processori Mips. Le più evolute versioni di processori MIPS sono attualmente integrate in dispositivi elettronici embedded di largo utilizzo. Consolle per l intrattenimento (la Playstation!!) Stampanti Laser Decoder TV Satellitare Router Navigatori satellitari per automobili Macchine fotografiche digitali MIPS ISA: GENERALITA 4 L architettura dei processori della famiglia Mips è di tipo load/store: non è possibile operare direttamente sui dati residenti in memoria ma è necessario prima copiarli nei registri interni tramite istruzioni dedicate. E prevista la presenza di un moltiplicare integrato per dati a 32 bit con risultato a 64 bit. I registri interni visibili del Mips sono: 32 registri general purpose a 32 bit, il registro zero contiene 0 e non può essere modificato due registri a 32 bit, Hi e Lo, per memorizzare rispettivamente i 32 bit più significativi e i 32 bit meno significativi del risultato di moltiplicazione un registro Program Counter a 32 bit, che contiene l indirizzo dell istruzione da eseguire un registro Interrupt Address Register Registri per elaborazione Floating Point
3 MIPS R2000 ISA : ISTRUZIONI 5 Il documento che specifica l'instruction Set completo è disponibile sul sito 6 INSTRUCTION SET MIPS R2000
4 INSTRUCTION SET MIPS R2000 ISTRUZIONI DI ACCESSO ALLA MEMORIA (8) 5 load e 3 store. L indirizzo di accesso (addr) è sempre la somma dell immediato e del contenuto del registro puntato da rs 7 Nome Load word Load half word Load byte Load half word unsigned Load byte unsigned Store word Store half word Store byte Sintassi lw rt, imm(rs) lh rt, imm(rs) lb rt, imm(rs) lhu rt, imm(rs) lbu rt, imm(rs) sw rt, imm(rs) sh rt, imm(rs) sb rt, imm(rs) Descrizione Regs[rt]<={mem[addr],mem[addr+1],mem[addr+2],mem[addr+3]} Regs[rt]<={{16{mem[addr] 31 }},mem[addr],mem[addr+1]} Regs[rt]<={{24{mem[addr] 31 }},mem[addr]} Regs[rt]<={{16{1 b0}},mem[addr]} Regs[rt]<={{24{1 b0}}mem[addr]} Mem[addr]<=Regs[rt] Mem[addr]<=Regs[rt] [15:0] Mem[addr]<=Regs[rt] [7:0] INSTRUCTION SET MIPS R2000 ISTRUZIONI LOGICO-ARITMETICHE CON INDIRIZZAMENTO IMMEDIATO (10) 8 Nome Addition Immediate (with overflow) Addition Immediate (without overflow) And Immediate Or Immediate Xor Immediate Sub Immediate(with overflow) Sub Immediatte(without overflow) Shift left logical Shift right aritmetic Shift right logical Sintassi addi rt, rs, imm addiu rt, rs, imm andi rt, rs, imm ori rt, rs, imm xori rt, rs, imm sub rt, rs, imm subu rt, rs, imm sll rd, rt, shamt sra rd, rt, shamt srl rd, rt, shamt Descrizione Regs[rt]<=Regs[rs]+imm Regs[rt]<=Regs[rs]+imm Regs[rt]<=Regs[rs] and imm Regs[rt]<=Regs[rs] or imm Regs[rt]<=Regs[rs] xor imm Regs[rt]<=Regs[rs]-imm Regs[rt]<=Regs[rs]-imm Regs[rd]<=Regs[rs]<<shamt Regs[rd]=(Regs[rt]>>shamt) ({32{Regs[rs] [31] }}<<( 32-shamt)) Regs[rd]<=Regs[rs]>>shamt
5 INSTRUCTION SET MIPS R2000 ISTRUZIONI LOGICO-ARITMETICHE CON INDIRIZZ. REGISTER (19) 9 Nome Sintassi Absolute value abs rt, rs Addition (with overflow) add rd, rs, rt Addition (without overflow) addu rd, rs, rt And and rd, rs, rt Multiply mult rs, rt Unsigned Multiply multu rs, rt Negate (with overflow) neg rd, rs Negate (without overflow) negu rd, rs Nor nor rd, rs, rt Not not rt, rs Or or rd, rs, rt Shift left logical variable sllv rd, rs, rt Shift right logical variable srlv rd, rs, rt Shift right aritmetic variable srav rd, rs, rt Rotate left rol rd, rs, rt Rotate right ror rd, rs, rt Subtract(with overflow) sub rd, rs, rt Subtract(without overflow) subu rd, rs, rt Exclusive or xor rd, rs, rt Descrizione Regs[rt]=abs(Regs[rs]) Regs[rt]=Regs[rs]+Regs[rt] Regs[rt]=Regs[rs]+Regs[rt] Regs[rt]=Regs[rs] and Regs[rt] Regs[hi]=(Regs[rs]*Regs[rt]) [63:32] Regs[lo]=(Regs[rs]*Regs[rt]) [31:0] Come mult senza tener conto del segno degli operandi Regs[rd]=-Regs[rs] Regs[rd]=-Regs[rs] Regs[rt]=Regs[rs] nor Regs[rt] Regs[rd]=~Regs[rs] Regs[rt]=Regs[rs] or Regs[rt] Regs[rt]=Regs[rs]<<Regs[rt] Regs[rt]=Regs[rs]>>Regs[rt] Regs[rd]=(Regs[rt]>>Regs[rs]) ({32{Regs[rs] [31] }}<<(32-Regs[rs])) Regs[rt]=Regs[rs]+Regs[rt] Regs[rt]=Regs[rs]+Regs[rt] Regs[rt]=Regs[rs]-Regs[rt] Regs[rt]=Regs[rs]-Regs[rt] Regs[rt]=Regs[rs] xor Regs[rt] INSTRUCTION SET MIPS R2000 ISTRUZIONI DI COMPARAZIONE (12) 10 2 con indirizzamento immediato e 10 con indirizzamento register Nome Set on less than Set on less than unsigned Set on less than immediate Set on less than immediate unsigned Set on equal Set on greater than or equal Set on greater than or equal unsigned Set on greater than Set on greater than unsigned Set on less than or equal Set on less than or equal unsigned Set on not equal Sintassi slt rd, rs, rt sltu rd, rs, rt slti rt, rs, imm sltiu rt, rs, imm seq rd, rs, rt sge rd, rs, rt sgeu rd, rs, rt sgt rd, rs, rt sgtu rd, rs, rt sle rd, rs, rt sleu rd, rs, rt sne rd, rs, rt Descrizione If(Regs[rs]<Regs[rt]) Regs[rd]=1 else Regs[rd]=0 Come slt senza tenere conto del segno degli operandi If(Regs[rs]<imm) Regs[rd]=1 else Regs[rd]=0 Come slti senza tenere conto del segno degli operandi If(Regs[rs]=Regs[rt]) Regs[rd]=1 else Regs[rd]=0 If(Regs[rs]>=Regs[rt]) Regs[rd]=1 else Regs[rd]=0 Come sge senza tenere conto del segno degli operandi If(Regs[rs]>Regs[rt]) Regs[rd]=1 else Regs[rd]=0 Come sgt senza tenere conto del segno degli operandi If(Regs[rs]<=Regs[rt]) Regs[rd]=1 else Regs[rd]=0 Come sle senza tenere conto del segno degli operandi If(Regs[rs]!=Regs[rt]) Regs[rd]=1 else Regs[rd]=0
6 INSTRUCTION SET MIPS R2000 ISTRUZIONI DI SALTO CONDIZIONATO (17) 11 LABEL indica l'istruzione alla quale saltare Nome Branch on equal Branch on greater than equal zero Branch on greater than equal zero and link Branch on greater than zero Branch on less than equal zero Branch on less than and link Branch on less than zero Branch on not equal Branch on greater than equal Branch on greater than equal unsigned Branch on greater than Branch on greater than unsigned Branch on less than equal Branch on less than equal unsigned Branch on less than Branch on less than unsigned Branch on not equal zero Sintassi beq rs, rt, LABEL bgez rs, LABEL bgezal rs, LABEL bgtz rs, LABEL blez rs, LABEL bltzal rs, LABEL bltz rs, LABEL bne rs, rt, LABEL bge rs, rt, LABEL bgeu rs, rt, LABEL bgt rs, rt, LABEL bgtu rs, rt, LABEL ble rs, rt, LABEL bleu rs, rt, LABEL blt rs, rt, LABEL bltu rs, rt, LABEL bnez rs, rt, LABEL Descrizione Salta se Regs[rs]=Regs[rt] Salta se Regs[rs]>=0 Salta e Regs[31]<=PC+4 se Regs[rs]>=0 Salta se Regs[rs]>0 Salta se Regs[rs]<=0 Salta e Regs[31]<=PC+4 se Regs[rs]<0 Salta se Regs[rs]<0 Salta se Regs[rs]!=Regs[rt] Salta se Regs[rs]>=Regs[rt] Come bge senza tenere conto del segno degli operandi Salta se Regs[rs]>Regs[rt] Come bgt senza tenere conto del segno degli operandi Salta se Regs[rs]<=Regs[rt] Come ble senza tenere conto del segno degli operandi Salta se Regs[rs]<Regs[rt] Come blt senza tenere conto del segno degli operandi Salta se Regs[rs]!=0 INSTRUCTION SET MIPS R2000 ISTRUZIONI DI SALTO INCONDIZIONATO (4) 12 Nome Jump Jump and link Jump register Jump and link register Sintassi j target jal target jr rs jalr rs, rd Descrizione PC={{(PC+4) [31:28] },{target},{2 b00}} Regs[31]<=PC+4 e PC={{(PC+4) [31:28] },{target},{2 b00}} PC=Regs[rs] Regs[rd]<=PC+4 e PC=Regs[rs]
7 INSTRUCTION SET MIPS R2000 ISTRUZIONI DI SPOSTAMENTO DATI FRA REGISTRI (4) 13 Nome Move from hi Move from lo Move to hi Move to lo Sintassi mfhi rd mflo rd mthi rs mtlo rs Descrizione Regs[rd]=Regs[hi] Regs[rd]=Regs[hi] Regs[hi]=Regs[rs] Regs[lo]=Regs[rs] ISTRUZIONI DI MANIPOLAZIONI COSTANTI A 32 BIT (1) Nome Load upper immediate Sintassi lui rt, imm Descrizione Regs[rt]<= {imm,{16 h0 } } ISTRUZIONI SPECIALI (2) Nome No operation Return from exeption Sintassi nop rfe Descrizione - PC<=IAR e int_enable=1 INSTRUCTION SET MIPS R2000 PSEUDO-ISTRUZIONI (2) 14 Nome Sintassi Descrizione Implementazione move move Rs, Rd Regs[Rd]=Regs[Rs] add Rd, Rs, $0 load 32 bit immediate li Rd, imm 32 Regs[Rd] = imm 32 lui Rd, imm[31:16] ori Rd, Rd, imm[15:0]
8 MIPS R2000 ISA DEDICATO AGLI INTERI 15 Ci occuperemo del sottoinsieme dell ISA del MIPS R2000 (da ora in poi semplicemente MIPS ISA) dedicato agli interi. Trascureremo per motivi di tempo la gestione dell elaborazione floating point (che è comunque opzionale nella maggior parte degli ISA per elaborazione embedded) Il sottoinsieme dedicato agli interi consta di 75 istruzioni, che possono essere classificate per funzionalità: Istruzioni di lettura e scrittura dalla memoria (8) Istruzioni aritmetico-logiche (40) Istruzioni di scambio dati fra registri interni (4) Istruzioni di modifica del flusso di esecuzione Salto incondizionato (4) Salto condizionato (17) MIPS ISA: FORMATO DELLE ISTRUZIONI 16 Le istruzioni sono a lunghezza fissa (32 bit), in tre possibili formati: 1. Immediate (I Type) opcode rs rt Immediate 6bit 5bit 5bit 16bit 2. Reg Type (R Type) opcode rs rt rd shamt function 6bit 5bit 5bit 5bit 5bit 6bit 3. Jump (J Type) opcode target 6bit 26bit
9 17 MIPS ISA RIDOTTO: emips INSTRUCTION SET emips 18 Inizieremo la trattazione analizzando nel dettaglio microarchitetture semplificate che implementano un sottoinsieme minimo delle istruzioni, che chiameremo emips Non è implementata la moltiplicazione, non vi sono quindi istruzioni di scambio fra registri interni. L IS semplificato contiene almeno una istruzione per ciascuna delle categorie rimanenti: Istruzioni di lettura e scrittura dalla memoria (2 su 8) Istruzioni aritmetico-logiche (5 su 40) Istruzioni di scambio di dati tra registri interni (0 su 4) Istruzioni di modifica del flusso di esecuzione - Salto incondizionato (0 su 4) - Salto condizionato (1 su 17)
10 INSTRUCTION SET emips 19 load word (lw): carica su un registro interno un valore dalla memoria store word (sw): scrive in memoria il valore contenuto in un registro add : somma del valore di due registri subtract (sub): sottrazione tra il valore di due registri and: and logico bit a bit del contenuto di due registri or: or logico bit a bit del contenuto di due registri set on less than (slt): scrive 1 sul registro destinazione se il primo operando è minore del secondo, zero altrimenti. branch on equal (beq): salto condizionato all'uguaglianza dei valori contenuti nei 2 registri confrontati INSTRUCTION SET emips 20 NOTAZIONE CON INDICAZIONE DI REGISTRI GENERICI DESCRIZIONE Load word Store word Add Subtract And Or Set on less than Branch if equal ASSEMBLY lw Rt, imm(rs) sw Rt, imm(rs) add Rd, Rs, Rt sub Rd, Rs, Rt and Rd, Rs, Rt or Rd, Rs, Rt slt Rd, Rs, Rt beq Rs, Rt, label1 FUNZIONALITA REGS[Rt] = Mem(REGS[Rs]+imm) Mem(REGS[Rs] + imm) = REGS[Rt] REGS[Rd] = REGS[Rs] + REGS[Rt] REGS[Rd] = REGS[Rs] REGS[Rt] REGS[Rd]= REGS[Rs] and REGS[Rt] REGS[Rd] = REGS[Rs] or REGS[Rt] if (REGS[Rs]<REGS[Rt]) REGS[Rd] = 1 if (REGS[Rs]==REGS[Rt]) PC = PC+4+imm N.B. REGS[Rs] = contenuto del registro Rs del register file imm = valore che concorre a definire la locazione di memoria interessata al trasferimento
11 INSTRUCTION SET emips 21 NOTAZIONE CON INDICAZIONE DI REGISTRI DI ESEMPIO DESCRIZIONE ASSEMBLY FUNZIONALITA Load word lw $3, 0x0100($2) REGS[$3] = Mem(REGS[$2]+0x0100) Store word sw $3, 0x0100($2) Mem(REGS[$2] + 0x0100) = REGS[$3] Add add $4, $2, $3 REGS[$4] = REGS[$2] + REGS[$3] Subtract sub $4, $2, $3 REGS[$4] = REGS[$2] REGS[$3] And and $4, $2, $3 REGS[$4]= REGS[$2] and REGS[$3] Or or $4, $2, $3 REGS[$4 = REGS[$2] or REGS[$3] Set on less than slt $4, $2, $3 if (REGS[$2]<REGS[$3]) REGS[$4] = 1 Branch if equal beq $2, $3, label1 if (REGS[$2]==REGS[$3]) PC = PC+4+imm N.B. $2 = REGISTRO 2 REGS[$2] = contenuto del registro $2 del register file INSTRUCTION SET emips: GESTIONE DELLA MEMORIA L'ISA MIPS completo gestisce dati di 6 tipi diversi: a 8, 16, 32 bit in rappresentazione naturale o complemento a 2. Il sistema di memoria deve poter gestire tutti i tipi di dato esistenti, fornendo i dati in uscita nella maniera appropriata, a seconda del valore assunto dai bit di controllo associati (optype). Essendo il dato minimo a 8 bit, la locazione di memoria elementare deve essere di 8 01 // Most significant byte del dato 21 // byte 2 del dato AB // byte 3 del dato 00 // Least significant byte del dato 43 // Most significant byte del dato 01 // Least significant byte del dato C1 // Dato 3 DATO 1, a 32 bit: 0121AB00 DATO 2, a 16 bit: 4301 DATO 3, a 8 bit: C1 // MODELLO VERILOG DELLA MEMORIA DATI case (optype) (word) DataOut = {Data[Addr+0],Data[Addr+1],Data[Addr+2],Data[Addr+3]}; (halfword) DataOut = {16 h0000,data[addr+0],data[addr+1]}; (byte) DataOut = {24 h000000, Data[Addr] }; endcase 22
12 INSTRUCTION SET emips: GESTIONE DELLA MEMORIA 23 Per non escludere la possibilità che al processore sia associato un sistema di memoria con memoria dati ed istruzioni non separate (memoria unica, modello di Von Neumann) è necessario che anche la memoria istruzioni sia indirizzabile un byte alla volta, nonostante le istruzioni siano sempre di 4 byte Ciò implica che l'aggiornamento del PC sia di 4 in 01 // Most significant byte dell istr 00 // Least significant byte dell istr 43 // Most significant byte dell istr 01 // Least significant byte dell istr 2 ISTRUZIONE 1:0121AB00 ISTRUZIONE 2: 4301C101 // MODELLO VERILOG DELLA MEMORIA INSTRUZIONI DataOut = {Data[Addr+0],Data[Addr+1],Data[Addr+2],Data[Addr+3]}; 24 PROGRAMMAZIONE ASSEMBLY DEL PROCESSORE emips-sc
13 25 PROGRAMMAZIONE ASSEMBLY: ISTRUZIONI DI ASSEGNAMENTO SIMULAZIONE emips_s1 Specifica C emips assembly integer A,B,C; // dati a 32 bit C = A + B; Specifica aggiuntiva 1: lw $1,0x0100($0) lw $2, 0x0104($0) add $3,$2,$1 sw $3, 0x0200($0) memoria dati B Specifica aggiuntiva 2: memoria dati (t=fine C 26 PROGRAMMAZIONE ASSEMBLY: ESECUZIONE CONDIZIONALE (1) L'ESECUZIONE CONDIZIONALE PUÒ ESSERE GESTITA TRAMITE L'USO DI ISTRUZIONI DI SALTO CONDIZIONATO E DI SALTO INCONDIZIONATO. if (cond) A; else B; if (cond) A; branch(cond==1),taga; tagb: B; branch(1),end; taga: A; end: branch(cond==1),taga; branch(1),end; taga: A; end:
14 27 PROGRAMMAZIONE ASSEMBLY: ESECUZIONE CONDIZIONALE (2) SIMULAZIONE emips_s2 Specifica C integer A,B,C; // dati a 32 bit if (A!=B) C = A + B; else C = A - B; Specifica aggiuntiva 1: memoria dati B Specifica aggiuntiva 2: emips assembly lw $1,0x0100($0) lw $2, 0x0104($0) beq $1,$2, else_tag if_tag: add $3,$2,$1 beq $0,$0, store else_tag: sub $3,$2,$1 store: sw $3, 0x0200($0) memoria dati (t=fine C PROGRAMMAZIONE ASSEMBLY: CICLI E VETTORI (1) 28 SIMULAZIONI emips_s3 ed emips_s4: SPECIFICA C Specifica C integer acc; // dati a 32 bit integer a[16]; acc = 0; for( i=0; i<16;i++ ) acc=acc+a[i]; Specifica aggiuntiva 1: memoria dati 0x4 Specifica aggiuntiva 2: memoria dati (t=fine acc
15 PROGRAMMAZIONE ASSEMBLY: CICLI E VETTORI (2) 29 L'ESECUZIONE CICLICA (LOOP) VIENE GESTITA TRAMITE L'UTILIZZO DI UN REGISTRO DETTO INDICE CHE: VIENE INIZIALIZZATO ALL'ESTERNO DEL LOOP IN FUNZIONE DEL NUMERO DI ITERAZIONI DA ESEGUIRE VIENE AGGIORNATO AD OGNI ITERAZIONE DEL LOOP VIENE TESTATO AD OGNI ITERAZIONE DEL LOOP, IL TEST CHE VERIFICA LA FINE DEL CICLO NE INTERROMPE L'ESECUZIONE L'ACCESSO AGLI ELEMENTI DI UN VETTORE CON INDICE DIPENDENTE DALL'INDICE DEL LOOP PUO' ESSERE GESTITA TRAMITE UN REGISTRO DETTO PUNTATORE CHE: VIENE INIZIALIZZATO ALL'ESTERNO DEL LOOP VINE UTILIZZATO AD OGNI ITERAZIONE DEL LOOP PER COMPORRE L'INDIRIZZO DELLA LOCAZIONE CORRENTE VIENE AGGIORNATO AD OGNI ITERAZIONE DEL LOOP. L'AGGIORNAMENTO DIPENDE DAL NUMERO DI LOCAZIONI DI MEMORIA OCCUPATE DA CIASCUN ELEMENTO DEL VETTORE PROGRAMMAZIONE ASSEMBLY: CICLI E VETTORI (3) 30 SIMULAZIONE emips_s3: CODIFICA ASSEMBLY UTILIZZO DEI REGISTRI $1 HA LA FUNZIONE DI REGISTRO ACCUMULATORE $2 HA LA FUNZIONE DI INDICE DEL LOOP $3 HA LA FUNZIONE DI PUNTATORE ALL'ELEMENTO CORRENTE DEL VETTORE $4 MEMORIZZA LA COSTANTE USATA PER AGGIORNARE IL REGISTRO INDICE $5 MEMORIZZA LA COSTANTE USATA PER AGGIORNARE IL REGISTRO PUNTATORE $6 MEMORIZZA LA COSTANTE USATA PER IL TEST DI FINE CICLO $7 HA LA FUNZIONE DI BUFFER TEMPORANEO LA SEQUENZA UTILIZZATA E' CRESCENTE, DALL'ELEMENTO 1 ALL'ELEMENTO 15. L'ELEMENTO 0 E' UTILIZZATO PER INIZIALIZZARE L'ACCUMULATORE
16 PROGRAMMAZIONE ASSEMBLY: CICLI E VETTORI (4) 31 SIMULAZIONE emips_s3: CODIFICA ASSEMBLY lw $1,0x100($0) ; inizializza il registro accumulatore $1 col dato a[0] add $2,$0,$0 ; inizializza il reg indice $2 a 0 add $3,$0,$0 ; inizializza il reg puntatore $3 a 0 lw $4,0x400($0) ; inizializza il reg $4 utilizzato per aggiornare il registro indice lw $5,0x404($0) ; inizializza il reg $5 utilizzato per aggiornare il reg puntatore lw $6,0x408($0) ; inizializza il registro utilizzato per il test di fine ciclo a 15=0xF loop: add $2,$2,$4 ; aggiorna il registro indice sommando 1 add $3,$3,$5 ; aggiorna il registro puntatore sommando 4 lw $7, 0x100($3); carica il dato a[i] sul registro buffer $7, la seq è 1,2,..,15. add $1,$1,$7 ; aggiorna l'accumulatore sommando il buffer beq $2,$6,store ; fa il test del registro indice, se $2=$6 interrompe il ciclo beq $0,$0, loop ; salta all'inizio del ciclo store: sw $1,0x200($0) ; scrive il risultato in memoria ;la coppia di istruzioni seguente provoca lo stop della simulazione lw $10, 0x500($0); sw $0, 0x0($10) ; PROGRAMMAZIONE ASSEMBLY: CICLI E VETTORI (5) 32 SIMULAZIONE emips_s4: CODIFICA ASSEMBLY E' POSSIBILE UTILIZZARE UN SOLO REGISTRO CHE ACCORPI LE FUNZIONALITA' DI REGISTRO INDICE PER PER IL TEST DI FINE CICLO E DI REGISTRO PUNTATORE IN QUESTO CASO L'INIZIALIZZAZIONE E L'AGGIORNAMENTO DEL REGISTRO, NONCHE' IL TEST DI FINE CICLO, VANNO GESTITI IN FUNZIONE DEL FATTO CHE LA FUNZIONALITA' DI REGISTRO PUNTATORE RICHIEDE L'ACCESSO A DATI CHE POSSONO OCCUPARE PIU' LOCAZIONI DI MEMORIA
17 PROGRAMMAZIONE ASSEMBLY: CICLI E VETTORI (6) 33 SIMULAZIONE emips_s4: CODIFICA ASSEMBLY UTILIZZO DEI REGISTRI $1 HA LA FUNZIONE DI REGISTRO ACCUMULATORE $2 HA LA FUNZIONE DI INDICE DEL LOOP E ANCHE DI PUNTATORE ALL'ELEMENTO CORRENTE DEL VETTORE $3 HA LA FUNZIONE DI BUFFER TEMPORANEO $4 MEMORIZZA LA COSTANTE USATA PER AGGIORNARE IL REGISTRO INDICE-PUNTATORE LA SEQUENZA UTILIZZATA E' STAVOLTA DECRESCENTE, DALL'ELEMENTO 15 ALL'ELEMENTO 1. L'ELEMENTO 0 E' UTILIZZATO PER INIZIALIZZARE L'ACCUMULATORE PROGRAMMAZIONE ASSEMBLY: CICLI E VETTORI (7) 34 SIMULAZIONE emips_s4: CODIFICA ASSEMBLY lw $1,0x100($0) ; inizializza l'accumulatore col dato a[0] lw $2,0x400($0) ; inizializza il reg indice/puntatore $2 lw $4,0x404($0) ; inizializza il reg utilizzato per aggiornare il reg indice/puntatore loop: lw $3, 0x100($2); carica il dato su $3, la seq è 15,14,..,1. sub $2,$2,$4 ; aggiorna il registro indice sottraendo 4 add $1,$1,$3 ; aggiorna l'accumulatore beq $2,$0,store ; fa il test del registro indice, se $2=0 interrompe il ciclo beq $0,$0, loop ; salta all'inizio del ciclo store: sw $1,0x200($0); scrive il risultato in memoria ;la coppia di istruzioni seguente provoca lo stop della simulazione lw $10, 0x500($0); sw $0, 0x0($10);
18 35 MIPS: TRADUZIONE ASSEMBLY -> LINGUAGGIO MACCHINA MIPS: TRADUZIONE ASSEMBLY => LINGUAGGIO MACCHINA 36 CODIFICA IN LINGUAGGIO MACCHINA: emips_s2-istr #0 lw $1, 0x100($0) // inizializza l accumulatore col dato a[0] ASM Op=6h 23 Rs=$0 Rt=$1 Imm=16h 100 BIN BIN HEX 8 c HEX Istruzioni I-type: lw Rt, Imm(Rs) opcode Rs Rt Immediate 6 bit 5 bit 5 bit 8c bit
19 MIPS: TRADUZIONE ASSEMBLY => LINGUAGGIO MACCHINA 37 CODIFICA IN LINGUAGGIO MACCHINA: emips_s2-istr #1 lw $2, 0x104($0) // inizializza l accumulatore col dato a[0] ASM Op=6h 23 Rs=$0 Rt=$2 Imm=16h 104 BIN BIN HEX 8 c HEX Istruzioni I-type: lw Rt, Imm(Rs) opcode Rs Rt Immediate 6 bit 5 bit 5 bit 8c bit 38 FRAMEWORK PER L'ESECUZIONE DI APPLICAZIONI ASSEMBLY SUL MODELLO VERILOG DI UN SISTEMA DI ELABORAZIONE BASATO SUL PROCESSORE emips-sc
20 MODELLO VERILOG DEL PROCESSORE 39 MODELLO VERILOG DEL SISTEMA COMPLETO La gerarchia del modello verilog del sistema è la seguente: testbench.v (istanza testbench) instructions_rom.v (istanza InstrROM) data_ram.v (istanza DataRAM) emips_sc.v (istanza MIPS) pc_reg.v (istanza PC) pc_adder.v (istanza NPC)... FRAMEWORK DI SVILUPPO (I) 40 file instructions.hex MIPS ASSEMBLER CON CONVERSIONE IN UN FORMATO LEGGIBILE DAL SIMULATORE VERILOG (READMEMH) CODICE ASSEMBLY MEMORIA ISTRUZIONI (MODELLO VERILOG) INSTRUCTIONS BUS INSTR ADDRESSES BUS MIPS (MODELLO VERILOG) DATA BUS DATA ADDRESSES BUS MEMORIA DATI (MODELLO VERILOG) SIMULATORE VERILOG (MODELSIM) DATI INIZIALI CONVERSIONE IN UN FORMATO LEGGIBILE DAL SIMULATORE VERILOG (READMEMH) file data_ram.hex
21 FRAMEWORK DI SVILUPPO (II) STRUTTURA DI FILE E DIRECTORY 41 emips-sc_s3 S1.mpf compila.bat emips_s3.asm HEX instructions.hex data_ram.hex ASM file eseguibili dell'assembler... VERILOG testbench_emips_s3.v Memories emips-sc FRAMEWORK DI SVILUPPO (III) SEQUENZA DELLE OPERAZIONI PER LA SIMULAZIONE DELLE APPLICAZIONI 1. Creare il progetto e caricare i file verilog. Il progetto va creato nella cartella cartella2, allo stesso livello delle cartelle HEX e VERILOG. 2. Caricare anche i file assembla.bat, emips_s3.asm, instructions.hex, data_ram.hex 3. Editare il file assembly nella directory ASM. 4. Lanciare il comando assembla.bat rieditando il file instructions.hex fino a verificare che non ci siano più errori 5. Editare il file data_ram.hex per definire l'inizializzazione dei dati iniziali e delle costanti del programma 6. Impostare la simulazione (modificando opportunamente il testbench) in modo che si stoppi all esecuzione di ogni istruzione oppure solo alla fine della stessa. 7. Compilare il progetto, caricare il top del progetto, e lanciare la simulazione. 8. VERIFICARE IL CORRETTO FUNZIONAMENTO DELLA SIMULAZIONE VERIFICANDO CHE I REGISTRI E LE LOCAZ DI MEMORIA INTERESSATI ASSUMANO IL VALORE CORRETTO. Per verificare la sequenza delle istruzioni utilizzare come promemoria i file emips_sx.asm ed instructions.hex. 42
22 FRAMEWORK DI SVILUPPO (IV) STOP DELLA SIMULAZIONE I sistemi di sviluppo dei compilatori mettono a disposizione la possibilità di eseguire dei breakpoints, stoppando la simulazione. Una funzionalità di questo tipo risulta molto utile quando si vuole stoppare la simulazione solo alla fine della stessa. Questa funzionalità è stata implementata nel nostro framework facendo interagire il fw ed il simulatore verilog. Una coppia di istruzioni assembly, accoppiate ad un processo verilog nel testbench, fanno si che all'esecuzione di questa coppia di istruzioni la simulazione sia stoppata tramite una istruzione $stop. La coppia di istruzioni assembly fa si che il processore tenti una scrittura del valore 0 sulla locazione 0x7FFF. La scrittura non ha alcun esito poichè non vi è alcuna locazione di memoria a quell'indirizzo (..) Il processo dedicato esegue la funzione stop e fa il display di una scritta che indica la fine della simulazione 43 ASSEMBLY LEVEL - FRAMMENTO DI CODICE... lw $10, 0x500($0); sw $0, 0x0($10) ;... ASSEMBLY LEVEL - INIZIALIZZ MEMORIA F FF... VERILOG LEVEL - PROCESSO DEDICATO PER IL BREAKPOINT clk) if ( (data_addr_bus == (32'h7FFF)) && (MemWrite == 1)) begin $display(" \n \n STOP FW-SW DELLA SIMULAZIONE \n \n \n \n \n \n \n \n \n "); $stop; end
Riassunto. Riassunto. Ciclo fetch&execute. Concetto di programma memorizzato. Istruzioni aritmetiche add, sub, mult, div
MIPS load/store word, con indirizzamento al byte aritmetica solo su registri Istruzioni Significato add $t1, $t2, $t3 $t1 = $t2 + $t3 sub $t1, $t2, $t3 $t1 = $t2 - $t3 mult $t1, $t2 Hi,Lo = $t1*$t2 div
DettagliIl set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini
Architettura degli Elaboratori e delle Reti Il set istruzioni di MIPS Modalità di indirizzamento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliLe etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j
L insieme delle istruzioni (2) Architetture dei Calcolatori (lettere A-I) Istruzioni per operazioni logiche: shift Shift (traslazione) dei bit di una parola a destra o sinistra sll (shift left logical):
DettagliUniversità degli Studi di Cassino
Corso di Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. Anno Accademico 2007/2008 Francesco Tortorella Istruzioni di confronto Istruzione Significato slt $t1,$t2,$t3 if
Dettagli(a) INTRODUZIONE ALLE ARCHITETTURE E ALLA SIMULAZIONE VERILOG DI PROCESSORI
1 (a) INTRODUZIONE ALLE ARCHITETTURE E ALLA SIMULAZIONE VERILOG DI PROCESSORI ISA E MICROARCHITETTURA DI PROCESSORI IL PROCESSORE MU0 MODELLAZIONE VERILOG E SIMULAZIONE DEL PROCESSORE MU0 2 ISA E MICROARCHITETTURA
DettagliCorso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M.
di Cassino e del Lazio Meridionale Corso di MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. Anno Accademico 201/201 Francesco Tortorella Istruzioni di confronto Istruzione
DettagliLinguaggio Assembly e linguaggio macchina
Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliFRAMEWORK PER L'ESECUZIONE DI APPLICAZIONI ASSEMBLY SUL MODELLO VERILOG DI UN SISTEMA DI ELABORAZIONE BASATO SUL PROCESSORE emips-sc
44 FRAMEWORK PER L'ESECUZIONE DI APPLICAZIONI ASSEMBLY SUL MODELLO VERILOG DI UN SISTEMA DI ELABORAZIONE BASATO SUL PROCESSORE emips-sc MODELLO VERILOG DEL PROCESSORE 45 MODELLO VERILOG DEL SISTEMA COMPLETO
DettagliLezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly
Architettura degli Elaboratori Lezione 20 Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Prof. F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliLinguaggio Assembly e linguaggio macchina
Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliIl linguaggio del calcolatore: linguaggio macchina e linguaggio assembly
Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin ORGANIZZAZIONE DEL CALCOLATORE:
DettagliLaboratorio di Architettura degli Elaboratori LabArch 2007 Terzo Quadimestre, a.a Docente: H. Muccini
[http://www.di.univaq.it/muccini/labarch] Laboratorio di Architettura degli Elaboratori LabArch 2007 Terzo Quadimestre, a.a. 2006-2007 Docente: H. Muccini Lecture 12: - Numeri con segno -Somma e sottrazione
DettagliUniversità degli Studi di Cassino
Corso di MIPS: modello di programmazione Anno Accademico 2007/2008 Francesco Tortorella CPU Compito della CPU: eseguire istruzioni Le istruzioni costituiscono le operazioni primitiva eseguibili dalla CPU
DettagliCalcolatori Elettronici
Calcolatori Elettronici ISA di riferimento: MIPS Massimiliano Giacomin 1 DOVE CI TROVIAMO Livello funzionale Livello logico Livello circuitale Livello del layout istruzioni macchina, ISA Reti logiche:
DettagliAssembly. Motivazioni. Programmazione Assembly
Assembly Programmazione in linguaggio macchina (o meglio in assembly): programmare utilizzando istruzioni direttamente eseguibili dal processore. Questa parte del corsi si accompagna a lezioni in laboratorio:
DettagliIstruzioni assembler Istruzione N Registri
Istruzioni assembler Istruzione N Registri Aritmetica add a, b, c a = b+c addi a, b, num a = b + sub a, b, c a = b - c mul a, b, c a = b*c div a, b, c a = b/c utilizzati Descrizione 3 Somma. Somma b e
DettagliCOMPITINO #1 di CALCOLATORI ELETTRONICI 1 del 03-11-09 COGNOME NOME
MATRICOLA COGNOME NOME 1) [28/40] Trovare il codice assembly MIPS corrispondente dei seguenti micro-benchmark (utilizzando solo e unicamente istruzioni dalla tabella sottostante), rispettando le convenzioni
DettagliRichiami sull architettura del processore MIPS a 32 bit
Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini Caratteristiche principali dell architettura del processore MIPS E un architettura RISC
DettagliAssembler MIPS R2000/3000
TITLE Assembler MIPS R2000/3000 Alberto Montresor Programma delle lezioni! Introduzione ai concetti di assembler, compilatore, linker, programma eseguibile! Introduzione all assembly Sintassi del linguaggio
DettagliCome caricare costanti lunghe 32 bits. Caricamento di costanti. Indirizzamento nei salti. Indirizzamento nei salti
Come caricare costanti lunghe 32 bits Si procede in due passi. Esempio: caricare 0xaabbccdd. Si caricano i 16 bit piu significativi lui $t0, 1010 1010 1011 1011 Bit meno significativi posti a zero Si caricano
DettagliLezione 2 Assembly MIPS (2)
Lezione 2 Assembly MIPS (2) http://www.dii.unisi.it/~giorgi/didattica/arcal1 All figures from Computer Organization and Design: The Hardware/Software Approach, Second Edition, by David Patterson and John
DettagliUN PO DI STORIA, CONCETTI BASE e DEFINIZIONI GENERALI
1 RICHIAMI SUL MIPS UN PO DI STORIA, CONCETTI BASE e DEFINIZIONI GENERALI L ARCHITETTURA DI RIFERIMENTO: LA MACCHINA MIPS INSTRUCTION SET MIPS R2000 ISTRUCTION SET SEMPLIFICATO: emips ESEMPI DI PROGRAMMAZIONE
DettagliMotivazioni. Assembly. Programmazione Assembly. Programmazione Assembly
Assembly Programmazione in linguaggio macchina (o meglio in assembly): programmare utilizzando istruzioni direttamente eseguibili dal processore. Questa parte del corsi si accompagna a lezioni in laboratorio:
DettagliUN PO DI STORIA, CONCETTI BASE e DEFINIZIONI GENERALI
1 RICHIAMI SUL MIPS UN PO DI STORIA, CONCETTI BASE e DEFINIZIONI GENERALI L ARCHITETTURA DI RIFERIMENTO: LA MACCHINA MIPS INSTRUCTION SET MIPS R2000 ISTRUCTION SET SEMPLIFICATO: emips ESEMPI DI PROGRAMMAZIONE
DettagliIntroduzione. Indice. Linguaggio macchina. Linguaggio assembler
Indice Linguaggio ad alto livello, linguagio assembler e linguaggio macchina Il linguaggio assembler MIPS: istruzioni aritmetiche, di trasferimento dati e di salto Conversione linguaggio assembler in linguaggio
DettagliArchitettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H
Architettura dei calcolatori e sistemi operativi Il processore Capitolo 4 P&H 4. 11. 2015 Sommario Instruction Set di riferimento per il processore Esecuzione delle istruzioni Struttura del processore
DettagliIl linguaggio del calcolatore: linguaggio macchina e linguaggio assembly
Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Richiamo sull
DettagliImplementazione semplificata
Il processore 168 Implementazione semplificata Copre un sottoinsieme limitato di istruzioni rappresentative dell'isa MIPS aritmetiche/logiche: add, sub, and, or, slt accesso alla memoria: lw, sw trasferimento
DettagliIl Linguaggio Assembly: Gestione della memoria e controllo
Il Linguaggio Assembly: Gestione della memoria e controllo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano 1/42 Sommario L organizzazione
DettagliLa programmazione dei calcolatori. Architetture dei Calcolatori (Lettere. Benefici dei linguaggi ad alto livello. Vantaggi e svantaggi dell assembler
La programmazione dei calcolatori Architetture dei Calcolatori (Lettere A-I) Il Set di Istruzioni MIPS Prof. Francesco Lo Presti Linguaggio macchina (codifica con numeri binari) Linguaggio direttamente
DettagliArchitettura MIPS (RISC) Architetture dei Calcolatori (Lettere. Principi di Progettazione ISA MIPS MIPS R3000 ISA. Il Set di Istruzioni MIPS
Architettura MIPS (RISC) Architetture dei Calcolatori (Lettere A-I) Il Set di Istruzioni MIPS Ing.. Francesco Lo Presti Sviluppata e progettata a Stanford (USA) Progettata nei primi anni 80 Prodotta e
DettagliIl processore: unità di elaborazione
Il processore: unità di elaborazione Architetture dei Calcolatori (lettere A-I) Progettazione dell unità di elaborazioni dati e prestazioni Le prestazioni di un calcolatore sono determinate da: Numero
DettagliUniversità degli Studi di Roma La Sapienza
Università degli Studi di Roma La Sapienza Architettura degli elaboratori II Introduzione ai concetti ed al simulatore SPIM Indice degli argomenti Introduzione Assembler, compilatore, linker, programma
DettagliSommario Introduzione al linguaggio Assembly. Calcolatori Elettronici Prof. Gian Luca Marcialis. Le operazioni fondamentali
Prof. Gian Luca Marcialis Corso di Laurea di Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Fonti principali: Patterson, A.D., Hennessy, J., "Struttura, organizzazione e progetto dei calcolatori
DettagliDal sorgente all eseguibile I programmi Assembly. Prof. Alberto Borghese Dipartimento di Scienze dell Informazione
Dal sorgente all eseguibile I programmi Assembly Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Riferimenti sul Patterson: Cap. 2.10 + Appendice B, tranne B.7
DettagliLinguaggio Assembler MIPS
Linguaggio Assembler MIPS Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Architettura MIPS Architettura RISC sviluppata
DettagliPiccola Introduzione al Linguaggio Assembly e Simili Amenità. Luca Abeni
Piccola Introduzione al Linguaggio Assembly e Simili Amenità Luca Abeni 20 aprile 2016 Capitolo 1 Il Linguaggio Assembly 1.1 Introduzione La CPU (Central Processing Unit) di un computer funziona eseguendo
DettagliAssembler MIPS R2000/R3000 Assembly I
TITLE Assembler MIPS R2000/R3000 Assembly I Riccardo Solmi 1 Bibliografia MIPS Assembly Language Programmer s Guide Manuale di programmazione assembly MIPS Assemblers, Linkers, and the SPIM Simulator Contiene
DettagliArchitettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini
Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock Prof. Andrea Sterbini sterbini@di.uniroma1.it Argomenti Progetto della CPU MIPS a 1 colpo di clock - Istruzioni da implementare - Unità
DettagliElementi base per la realizzazione dell unità di calcolo
Elementi base per la realizzazione dell unità di calcolo Memoria istruzioni elemento di stato dove le istruzioni vengono memorizzate e recuperate tramite un indirizzo. ind. istruzione Memoria istruzioni
DettagliProgetto CPU (ciclo singolo) Salvatore Orlando
Progetto CPU (ciclo singolo) Salvatore Orlando Arch. Elab. - S. Orlando 1 Processore: Datapath & Control Possiamo finalmente vedere il progetto di un processore MIPS-like semplificato Semplificato in modo
Dettagli1. Si effettui la divisione di 7/5 utilizzando un efficiente algoritmo e illustrando la corrispondente architettura hardware.
1. Si effettui la divisione di 7/5 utilizzando un efficiente algoritmo e illustrando la corrispondente architettura hardware. 2. Spiegare i diversi tipi di indirizzamento usati dalle istruzioni del set
DettagliProcessore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)
Processore Memoria Control (Parte di controllo) Datapath (Parte operativa) I/O Memoria La dimensione del Register File è piccola registri usati per memorizzare singole variabili di tipo semplice purtroppo
DettagliLe costanti Le modalità di indirizzamento L assembly del MIPS
Le costanti Le modalità di indirizzamento L assembly del MIPS Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano 1/45 Sommario Le costanti
DettagliArchitettura degli Elaboratori B Introduzione al corso
Architettura degli Elaboratori B Introduzione al corso Salvatore Orlando Arch. Elab. - S. Orlando 1 Componenti di un calcolatore convenzionale Studieremo il progetto e le prestazioni delle varie componenti
DettagliProcessore: Datapath & Control. Progetto CPU (ciclo singolo) Rivediamo i formati delle istruzioni. ISA di un MIPS-lite
Processore: Datapath & Control Possiamo finalmente vedere il progetto di un processore MIPS-like semplificato Progetto CPU (ciclo singolo) Semplificato in modo tale da eseguire solo: istruzioni di memory-reference:
DettagliArchitettura di tipo registro-registro (load/store)
Caratteristiche principali dell architettura del processore MIPS E un architettura RISC (Reduced Instruction Set Computer) Esegue soltanto istruzioni con un ciclo base ridotto, cioè costituito da poche
DettagliIstruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni
Istruzioni macchina Linguaggio macchina Insieme delle istruzioni (instruction set) che la CPU puo eseguire Capitolo 10 1 2 Elementi di un istruzione macchina Codice operativo Specifica l operazione da
DettagliLinguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche
3 tipi di istruzioni macchina Linguaggio macchina e assembler 1) trasferimento tra RAM e registri di calcolo della CPU 2) operazioni aritmetiche: somma, differenza, moltiplicazione e divisione 3) operazioni
DettagliEsempio di procedura annidata. L insieme delle istruzioni (5) Esempio di procedura annidata (2) set_array: Esempio di procedura annidata (3)
L insieme delle istruzioni (5) Architetture dei Calcolatori (lettere A-I) Esempio di procedura annidata Codice C Assumiamo che set_array sia la prima procedura chiamata Assumiamo che la variabile i corrisponde
DettagliElementi di Informatica e Programmazione. # Memoria di massa. Problema: comprare un PC. Architettura del calcolatore. Architettura di Von Neumann
Elementi di Informatica e Programmazione Architettura del calcolatore (prima parte) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Problema:
DettagliArchitettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione
Architettura di un calcolatore e linguaggio macchina Primo modulo Tecniche della programmazione CPU Central Processing Unit, processore Unita logica/aritmetica: elaborazione dati Unita di controllo: coordina
DettagliLinguaggio Assembler MIPS
Linguaggio Assembler MIPS Corso di Calcolatori Elettronici Corso di Calcolatori Elettronici A A.A. 2000/2001 Dr. Daniela Fogli Notazione Operazioni aritmetiche: Somma add a, b, c fa la somma di b e c e
DettagliIntroduzione al MIPS64
Introduzione al MIPS64 Interfaccia Hardware/Software High Level Language Program (e.g., C) Compiler Assembly Language Program (e.g., MIPS) Assembler Machine Language Program int a; a = vett[0] +7; LW R2,
DettagliArchitettura dei calcolatori e sistemi operativi. Set istruzioni e struttura del programma Direttive all Assemblatore.
Architettura dei calcolatori e sistemi operativi Set istruzioni e struttura del programma Direttive all Assemblatore Capitolo 2 P&H 23. 11. 2015 Istruzioni: sottoinsieme del linguaggio assembler MIPS Formati
DettagliCalcolatori Elettronici A a.a. 2008/2009
Calcolatori Elettronici A a.a. 2008/2009 ISA e LINGUAGGIO ASSEMBLY MIPS Massimiliano Giacomin 1 Architettura MIPS Architettura RISC e load-store sviluppata da John Hennessy nel 1981 Usata da NEC, Nintendo,
DettagliMateriale didattico. Materiale didattico. Architettura MIPS. Il linguaggio Assembly parte I. Architettura degli Elaboratori e delle Reti
Materiale didattico Il linguaggio Assembly parte I Architettura degli Elaboratori e delle Reti Capitolo 3, 8 + Appendice A del testo: Struttura, organizzazione e progetto dei calcolatori: interdipendenza
DettagliArchitettura hardware
Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione
DettagliLecture 2: Prime Istruzioni
[http://www.di.univaq.it/muccini/labarch] Modulo di Laboratorio di Architettura degli Elaboratori Corso di Architettura degli Elaboratori con Laboratorio Docente: H. Muccini Lecture 2: Prime Istruzioni
DettagliIl calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica
Il calcolatore È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica ogni livello di descrizione è caratterizzato da una struttura rappresentante l organizzazione
DettagliLaboratorio di Architettura degli Elaboratori
Laboratorio di Architettura degli Elaboratori Dott. Massimo Tivoli Set di istruzioni del MIPS32: istruzioni aritmetiche e di trasferimento Istruzioni (Alcune) Categorie di istruzioni in MIPS Istruzioni
DettagliArchitettura di una CPU
Massimo VIOLANTE Politecnico di Torino Dipartimento di Automatica e Informatica Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni 2 M. Violante 1.1
DettagliAMBIENTE DI SIMULAZIONE ASIM
LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 10 Prof. Rosario Cerbone rosario.cerbone@uniparthenope.it http://digilander.libero.it/rosario.cerbone a.a. 2008-2009 AMBIENTE DI SIMULAZIONE ASIM Digitazione
DettagliLaboratorio di Architetture degli Elaboratori II (A.A )
Laboratorio di Architetture degli Elaboratori II (A.A. 2015-2016) Matteo Re, matteo.re@unimi.it [cognomi G-Z] (Nicola Basilico, [cognomi A-D]) Ufficio S210, Dipartimento di Informatica, Via Comelico 39/41-20135
DettagliElementi di Architettura
Elementi di Architettura Fondamenti di Informatica Roberto BASILI Marzo, 2007 Classi di Istruzioni Istruzioni di assegnamento/modifica Istruzioni di controllo delle sequenze Istruzioni di I/O Classi di
DettagliLezione4: MIPS e Istruzioni (1 Parte)
Architettura degli Elaboratori Lezione4: MIPS e Istruzioni (1 Parte) Michele Nappi mnappi@unisa.it http://www.biplab.unisa.it/ Alcune slide di questa lezione sono prodotte dal Prof. Luigi Palopoli AGENDA
DettagliArchitettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 18 Febbraio Attenzione:
Cognome.. Nome.... Architettura degli Elaboratori Classe 3 Prof.ssa Anselmo Appello del 18 Febbraio 2015 Attenzione: Inserire i propri dati nell apposito spazio sottostante e in testa a questa pagina.
DettagliCPU a singolo ciclo: l unità di controllo, istruzioni tipo J
Architettura degli Elaboratori e delle Reti Lezione 9 CPU a singolo ciclo: l unità di controllo, istruzioni tipo J Pro. A. Borghese, F. Pedersini Dipartimento di Scienze dell Inormazione Università degli
DettagliDISPENSE DI CALCOLATORI ELETTRONICI 1
UNIVERSITÀ DEGLI STUDI DI SIENA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA MODULO PROFESSIONALIZZANTE "TECNOLOGIE PER IL KNOWLEDGE MANAGEMENT" A.A. 2005/2006 DISPENSE DI CALCOLATORI
DettagliArchitettura dei sistemi di elaborazione: La CPU: Architettura (parte1)
Architettura dei sistemi di elaborazione: La CPU: Architettura (parte1) La CPU Architettura L organizzazione interna di una CPU è caratterizzata dal data path, che è costituito da una serie di componenti,
DettagliLinguaggio Assembly. Architettura di riferimento Formato istruzioni Classi di istruzioni Modalità di indirizzamento Direttive Codice macchina
Linguaggio Assembly Architettura di riferimento Formato istruzioni Classi di istruzioni Modalità di indirizzamento Direttive Codice macchina Modello di architettura di riferimento Nel seguito faremo riferimento
DettagliArchitettura degli Elaboratori
circuiti combinatori: ALU slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello 1 ALU ALU (Arithmetic Logic Unit) circuito combinatorio all interno del processore per l esecuzione di istruzioni
DettagliASSEMBLY MIPS GUIDA RAPIDA ALLA COMPRENSIONE
ASSEMBLY MIPS GUIDA RAPIDA ALLA COMPRENSIONE Autore: Borsato Claudio Bibliografia: Strutture e progetto dei calcolatori Patterson, Hennessy Programmare in Assembly in GNU/Linux con sintassi AT&T Ferroni
DettagliMotorola 68000: primi programmi assembly
Corso di Calcolatori Elettronici I A.A. 2012-2013 Motorola 68000: primi programmi assembly ing. Alessandro Cilardo Accademia Aeronautica di Pozzuoli Corso Pegaso V GArn Elettronici Organizzazione dei dati
DettagliL unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti
Il processore: unità di lo Architetture dei Calcolatori (lettere A-I) L unità di lo L unità di lo è responsabile della generazione dei segnali di lo che vengono inviati all unità di elaborazione Alcune
DettagliARCHITETTURA DI UN SISTEMA DI ELABORAZIONE
ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE Il computer o elaboratore è una macchina altamente organizzata capace di immagazzinare, elaborare e trasmettere dati con notevole precisione e rapidità. Schematicamente
DettagliComparazione fra vari processori
RISC Reduced Instruction Set Computer Caratteristiche chiave Numero elevato di registri ad uso generale oppure utilizzo di compilatori per ottimizzare l uso dei registri Set istruzioni semplice e limitato
DettagliL architettura del calcolatore (Prima parte)
L architettura del calcolatore (Prima parte) Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Calcolatore astratto e reale Concetto astratto
DettagliIl linguaggio Assembly
Il linguaggio Assembly Linguaggio macchina Linguaggio definito da un insieme di istruzioni, codificate come stringhe di bit, che il processore può interpretare ed eseguire direttamente Linguaggio Assembly
Dettagli.: CALCOLATORI 7 MAGGIO 2015
.: CALCOLATORI 7 MAGGIO 2015 .: AGENDA.: MIPS, X86, ARM.: CARATTERISTICHE DI ARM ( CONFRONTO A MIPS ).: ESEMPIO COPIA_STRINGA SU ARCHITETTURA ARM.: ESEMPIO FATTORIALE SU MIPS, ARM ADVANCED RISC MACHINE.:
DettagliLa programmazione dei calcolatori. L insieme delle istruzioni. Vantaggi e svantaggi dell assembler. Benefici dei linguaggi ad alto livello
La programmazione dei calcolatori L insieme delle istruzioni Architetture dei Calcolatori (lettere A-I) Linguaggio macchina (codifica con numeri binari) Linguaggio direttamente comprensibile dal calcolatore
DettagliLezione 3 Assembly MIPS (2)
Lezione 3 Assembly MIPS (2) http://www.dii.unisi.it/~giorgi/didattica/calel All figures from Computer Organization and Design: The Hardware/Software Approach, Second Edition, by David Patterson and John
DettagliL insieme delle istruzioni
L insieme delle istruzioni Architetture dei Calcolatori (lettere A-I) La programmazione dei calcolatori Linguaggio macchina (codifica con numeri binari) Linguaggio direttamente comprensibile dal calcolatore
DettagliEsame di Architetture Canale MZ Prof. Sterbini 8/6/15
Esame di Architetture Canale MZ Prof. Sterbini 8/6/15 Cognome e Nome: Matricola: Parte 1 (per chi non ha superato l'esonero 1 ora) Esercizio 1 (14 punti). In una partita di CPU a ciclo di clock singolo
DettagliArchitettura degli Elaboratori Modulo 2
Architettura degli Elaboratori Modulo 2 Salvatore Orlando http://www.dsi.unive.it/~architet Arch. Elab. - S. Orlando 1 Contenuti Approfondiremo il progetto e le prestazioni delle varie componenti di un
DettagliArchitetture dei Calcolatori
Architetture dei Calcolatori Lezione 11 -- 10/12/2011 Procedure Emiliano Casalicchio emiliano.casalicchio@uniroma2.it Fattoriale: risparmiamo sull uso dei registri q Rispetto alla soluzione precedente
DettagliRichiami: v[i] e &v[i] Organizzazione della memoria. Organizzazione della memoria. Esercitazione di Calcolatori Elettronici Ing. Gian Luca Marcialis
Esercitazione di Ing. Gian Luca Corso di Laurea in Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Richiami: v[i] e &v[i] v[i] è il valore dell elemento i nel vettore v; &v[i] è il suo indirizzo.
DettagliPROVA SCRITTA DEL MODULO/CORSO DI. 24 novembre 2016
PROVA SCRITTA DEL MODULO/CORSO DI 24 novembre 206 MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI NOME: COGNOME: MATRICOLA: ESERCIZIO (6 punti) Progettare un riconoscitore
DettagliAssembly III SPIM: un ambiente di simulazione MIPS
Architettura degli Elaboratori e delle Reti Lezione 13 Assembly III SPIM: un ambiente di simulazione MIPS Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi
DettagliStruttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU:
Struttura e Funzione del Processore Capitolo 12 Struttura CPU Compiti CPU: Prelevare istruzioni Interpretare istruzioni Prelevare dati Elaborare dati Scrivere (memorizzare) dati 1 CPU con bus di sistema
DettagliEsercitazione 8 Eccezioni & Interruzioni in MIPS 32 Claudia Raibulet raibulet@disco.unimib.it Eccezioni Le eccezioni = variazioni delle condizioni normali di funzionamento della CPU Conseguenze delle eccezioni
DettagliArchitettura del calcolatore
Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macro-componenti: Hardware Software Architettura del calcolatore L architettura dell hardware di un calcolatore reale
DettagliL ambiente di simulazione SPIM
Architettura degli Elaboratori e delle Reti Lezione 14 L ambiente di simulazione SPIM Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 14 1/28
DettagliEsercitazione di Calcolatori Elettronici Ing. Battista Biggio. Corso di Laurea in Ingegneria Elettronica. Capitolo 5 Linguaggio Assembly
Esercitazione di Calcolatori Elettronici Ing. Battista Biggio Corso di Laurea in Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Richiami: v[i] e &v[i] v[i] è il valore dell elemento i nel vettore
DettagliCapitolo 5 Elementi architetturali di base
Capitolo 5 Elementi architetturali di base Giuseppe Lami Istituto di Scienza e Tecnologie dell Informazione CNR Via Moruzzi, 1 - Pisa giuseppe.lami@isti.cnr.it Struttura - Unità di elaborazione e controllo
DettagliArchitettura dei computer
Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale (memoria centrale, RAM) la memoria secondaria i dispositivi di input/output La
DettagliMicroelettronica Corso introduttivo di progettazione di sistemi embedded
Microelettronica Corso introduttivo di progettazione di sistemi embedded Architettura dei sistemi a microprocessore prof. Stefano Salvatori A.A. 2014/2015 Eccetto dove diversamente specificato, i contenuti
DettagliComponenti e connessioni. Capitolo 3
Componenti e connessioni Capitolo 3 Componenti principali CPU (Unità Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro Architettura di Von Neumann Dati e instruzioni in memoria (lettura
DettagliElaborazione dell informazione
Elaborazione dell informazione Primo esempio Ricominciamo dai numeri (45 + 25) è definita rigorosamente Un primo calcolatore (a) Figura 1.1 Configurazione del pallottoliere (a) prima e (b) dopo l esecuzione
DettagliORG $8800 N DC 9,11,1,4,5,7,2
ESEMPI DI ASSEMBLY M68000 Esercizio 1 Scrivere un programma non segmentato in linguaggio macchina (simbolico), con sintassi nativa M6800, che rispetti la seguente specifica. Dati 7 numeri di tipo Word,
Dettagli