Strctra și Organizarea Calclatoarelor Titlar: BĂRBULESCU Lcian-Florentin
Capitoll 6 STRUCTURA SIMPLIFICATĂ A UNUI PROCESOTR MIPS
CONȚINUT Procesor MIPS c eecția pe n cicl Little-endian și Big-endian Registrele Mltipleor Vectorial Unitatea Aritmetică și Logică ALU Unitatea de control Analiza eecției ni instrcțini aritmetice Analiza eecției instrcținii LW Analiza eecției instrcținii SW Analiza eecției instrcținii BEQ 5/8/28 SOC_6 27-28 3
Procesor MIPS c eecția pe n cicl Pentr fiecare instrcține primii doi pași snt identici:. Trimite către nitatea de memorie valoarea din PC și etrage de la acea adresă instrcținea ce trebie eectată. 2. Citește nl sa doă registre, în fncție de anmite câmpri din instrcține. Dpă acești doi pași restl acținilor depind de tipl instrcținii. Snt trei tipri de instrcțini: - acces la memorie - aritmetică și logică - salt. 5/8/28 SOC_6 27-28 4
Procesor MIPS c eecția pe n cicl Branch M 4 Add Add M PC address Intstrctions Memory Instrction Registers data data Register # Register # data 2 Register # M A L U Zero Data Memory address data RegWrite data control ALUSrc MemtoReg ALU operation MemRead MemWrite Branch 5/8/28 SOC_6 27-28 5
Procesor MIPS c eecția pe n cicl Valoarea scrisă în PC provine de la nl din cele doă smatoare, iar datele scrise in registre provin fie de la ALU, fie de la Memorie. Aceste linii de date n pot fi legate direct între ele; trebie adăgat n element care permite alegerea nei srse din mai mlte disponibile si conectarea acesteia la destinație. Această selecție se realizează c n dispozitiv nmit mltipleor, deși mlt mai corect ar trebi denmit selector de date. Mltipleorl alege din mai mlte intrări pe baza liniilor sale de selecție. Valorile acestor linii se bazează pe informații etrase din instrcține. Și alte nități trebie controlate în fncție de instrcține. De eempl accesl la memorie trebie sa fie de tip citire pentr LW și scriere pentr SW. Sa ALU trebie să eecte diferite operații. Ca și mltipleoarele, aceste operații snt decise pe baza nor linii de control ce vor fi modificate în fncție de diferite câmpri din instrcține. 5/8/28 SOC_6 27-28 6
Procesor MIPS c eecția pe n cicl Figra anterioara prezintă fll de date împrenă c mltipleoarele și liniile de control pentr principalele nități fncționale. O Unitate de Control primește instrcținea ca intrare și determină valorile liniilor de control pentr nitățile fncționale și pentr doă din mltipleoare. Al treilea mltipleor, cel care determină dacă PC + 4 sa adresa de salt este scrisă in PC este controlat și de ieșirea Zero din ALU, folosită la instrcținea BEQ Deoarece instrcținile MIPS snt simple si rmează n format rigros, decodificarea instrcținilor este n proces simpl iar valorile liniilor de control pot fi foarte șor setate. 5/8/28 SOC_6 27-28 7
Procesor MIPS c eecția pe n cicl Eecția oricărei instrcțini începe prin tilizarea PC pentr a obține adresa de memorie a instrcținii. Dpă etragerea din memorie (FETCH), registrele operand snt identificate în fncție de câmprile din instrcține Dpă ce operanzii snt etrași ei snt folosiți pentr a calcla o adresă de memorie (pentr citire sa scriere în memorie), pentr a calcla n rezltat aritmetic (pentr instrcțini aritmetice și logice) sa o comparație (pentr instrcțini de salt) Daca instrcținea este de tip aritmetic sa logic atnci rezltatl ALU este salvat într-n registr. Dacă instrcținea este de tip acces de memorie atnci rezltatl ALU reprezintă adresa de memorie nde sa de nde trebie scrisă sa citită valoarea dintr-n registr. Instrcținile de salt pot folosi ALU pentr a calcla dacă conțintl a doa registre este identic (folosit de instrcținea BEQ) 5/8/28 SOC_6 27-28 8
CONȚINUT Procesor MIPS c eecția pe n cicl Little-endian și Big-endian Registre Mltipleor Vectorial Unitatea Aritmetică și Logică ALU Unitatea de control Analiza eecției ni instrcțini aritmetice Analiza eecției instrcținii LW Analiza eecției instrcținii SW Analiza eecției instrcținii BEQ 5/8/28 CSO_6 26-27 9
5/8/28 SOC_6 27-28 LITTLE-ENDIAN AND BIG-ENDIAN 7 8 5 6 23 24 3 5 4 3 2 9 8 7 6 5 4 3 2 Big-endian order 7 8 5 6 23 24 3 2 3 4 5 8 9 4 5 6 7 2 3 Little-endian order sperior address inferior address 2 4 8 address sperior address inferior address 2 4 8 address
CONTENT Procesor MIPS c eecția pe n cicl Little-endian și Big-endian Registre Mltipleor Vectorial Unitatea Aritmetică și Logică ALU Unitatea de control Analiza eecției ni instrcțini aritmetice Analiza eecției instrcținii LW Analiza eecției instrcținii SW Analiza eecției instrcținii BEQ 5/8/28 SOC_6 27-28
REGISTRE 32 from PC Read address Instr[3:26] to Unit Control Instr[25:2] Instr[2:6] 5 5 Read register Read register 2 Read data 32 To ALU Instr[3:] Instrction memory Instr[5:] RegDst MUX 5 32 Write register Write data Registers Read data 2 32 To ALU or Data memory Instr[5:] 6 Signetend from Data Memory/ALU to ALU RegWrite Instr[5:] to control ALU 5/8/28 SOC_6 27-28 2
REGISTRE Read register 5 32 Write register 5 DEC r r r2 r3 r4 MUX 32 Read data... MUX 2 32 Read data 2 Write Data 32 r3 RegWrite 5 Read register 2 5/8/28 CSO_6 26-27 3
CONȚINUT Procesor MIPS c eecția pe n cicl Little-endian și Big-endian Registre Mltipleor Vectorial Unitatea Aritmetică și Logică ALU Unitatea de control Analiza eecției ni instrcțini aritmetice Analiza eecției instrcținii LW Analiza eecției instrcținii SW Analiza eecției instrcținii BEQ 5/8/28 SOC_6 27-28 4
MULTIPLEXOR VECTORIAL SEL 2 A[7..] B[7..] 8 MUX 48 C[7..] D[7..] 5/8/28 SOC_6 27-28 5
MULTIPLEXOR VECTORIAL A B C D A B C D A2 B2 C2 D2 A3 B3 C3 D3 A4 B4 C4 D4 A5 B5 C5 D5 A6 B6 C6 D6 A7 B7 C7 D7 S MUX 4 MUX 4 MUX 4 MUX 4 MUX 4 MUX 4 MUX 4 MUX 4 S Y Y Y 2 Y 3 Y 4 Y 5 Y 6 Y 7 5/8/28 SOC_6 27-28 6
CONȚINUT Procesor MIPS c eecția pe n cicl Little-endian și Big-endian Registre Mltipleor Vectorial Unitatea Aritmetică și Logică - ALU Unitatea de control Analiza eecției ni instrcțini aritmetice Analiza eecției instrcținii LW Analiza eecției instrcținii SW Analiza eecției instrcținii BEQ 5/8/28 SOC_6 27-28 7
ALU Cellă ALU pe n bit Ainv Binv Cin operation 2 a reslt b + 2 Cot 5/8/28 SOC_6 27-28 8
ALU Cellă ALU pe n bit pentr MIPS Ainv Binv Cin operation 2 a reslt b + 2 Less 3 Cot 5/8/28 SOC_6 27-28 9
ALU Cellă ALU pe n bit pentr MIPS (MSB) Ainv Binv Cin Operation 2 [Op Op] a Reslt b + 2 Less 3 Set Overflow detection Overflow 5/8/28 SOC_6 27-28 2
Cin ALU Less Cot Cin ALU Less Cot Cin ALU2 Less Cot Cin ALU3 Less Reslt Reslt Reslt2 Reslt3 Overflow ALU ALU pentr MIPS Set Ainvert Binvert b3 a3 b2 a2 b a b a... Carryin Operation Zero 5/8/28 SOC_6 27-28 2
ALU Comenzi ALU Ainv Binv op op Fnction AND OR add sb Set on less than NOR 5/8/28 SOC_6 27-28 22
ALU Legătra între instrcțini și comenzi ALU Load/ store J type R type Opcode ALUop Instrction operation Instr[5:] ALU operation ALU command LW load word add SW store word add BEQ branch eqal sb ADD add add SUB sbtract sb AND AND AND OR OR OR SLT Set on less than Set on less than 5/8/28 SOC_6 27-28 23
ALU Tabela de adevăr pentr comenzi ALU ALUOp ALUop ALUop Instr [5:] F5 F4 F3 F2 F F ALU Commands Ainv Binv op op 5/8/28 SOC_6 27-28 24
Instr[5:] ALU Format etension 6 Sign-etended bs bs bs bs bs bs bs bs bs bs bs bs bs bs bs bs bs 4 3 2 9 8 7 6 5 4 3 2 bs bs bs bs bs bs bs bs bs bs bs bs bs bs bs 4 3 2 9 8 7 6 5 4 3 2 Shift left 2 5/8/28 SOC_6 27-28 25
CONȚINUT Procesor MIPS c eecția pe n cicl Little-endian și Big-endian Registre Mltipleor Vectorial Unitatea Aritmetică și Logică ALU Unitatea de control Fll de date pentr o instrcține aritmetică Fll de date pentr o instrcținea LW Fll de date pentr o instrcținea SW Fll de date pentr o instrcținea BEQ 5/8/28 SOC_6 27-28 26
DATAFLOW AND CONTROL UNIT 4 Add Shift left 2 Add M Branch Instr[3:26] RegDst control MemtoReg MemRead MemWrite ALUop ALUSrc RegWrite 2 PC Instrction memory Instrction address Instr[25:2] Instr[2:6] Instr[5:] M Registers Read register Read register 2 Write register Read data 2 Write data Read data M A L U Zero 4 Data memory Address Write data Read data M Instr[5:] Signetend ALU control Instr[5:] 5/8/28 SOC_6 27-28 27
UNITATEA DE CONTROL Semnale de control Signal name RegDst RegWrite ALUSrc Branch MemRead MemWrite MemtoReg Effect when deasserted (deactivated) The destination address register comes from instr[2:6] None The second ALU operand comes from the second register otpt Read data 2 The PC vale is compted in fetch phase (PC+4) None None At Write Data inpt is transmitted the ALU otpt Effect when asserted (activated) The destination address register comes from instr[5:] The vale from Data inpt is written in selected register The second ALU operand is Sign-etended The PC vale is replaced with compted vale for jmp Is read the selected location in Data memory Is written the information from Write data inpt in selected location in Data memory At Write Data inpt is transmitted the otpt from Data memory block 5/8/28 SOC_6 27-28 28
CONȚINUT Procesor MIPS c eecția pe n cicl Little-endian și Big-endian Registre Mltipleor Vectorial Unitatea Aritmetică și Logică ALU Unitatea de control Analiza eecției ni instrcțini aritmetice Analiza eecției instrcținii LW Analiza eecției instrcținii SW Analiza eecției instrcținii BEQ 5/8/28 SOC_6 27-28 29
Analiza eecției ni instrcțini aritmetice 4 Add M Branch Instr[3:26] control MemtoReg RegDst ALUop ALUSrc RegWrite 2 PC Instrction memory Instrction address Instr[25:2] Instr[2:6] Instr[5:] M Write data Registers Read register Read data Read register 2 Write register Read data 2 M A L U Zero 4 M Instr[5:] ALU control Instr[5:] 5/8/28 SOC_6 27-28 3
CONȚINUT Procesor MIPS c eecția pe n cicl Little-endian și Big-endian Registre Mltipleor Vectorial Unitatea Aritmetică și Logică ALU Unitatea de control Analiza eecției ni instrcțini aritmetice Analiza eecției instrcținii LW Analiza eecției instrcținii SW Analiza eecției instrcținii BEQ 5/8/28 SOC_6 27-28 3
Analiza eecției instrcținii LW 4 Add M Branch Instr[3:26] RegDst control MemtoReg MemRead MemWrite ALUop ALUSrc RegWrite 2 PC Instrction memory Instrction address Instr[25:2] Instr[2:6] M Write data Registers Read register Read data Read register 2 Write register Read data 2 M A L U Zero 4 Data memory Address Write data Read data M Instr[5:] Signetend ALU control 5/8/28 SOC_6 27-28 32
CONȚINUT Procesor MIPS c eecția pe n cicl Little-endian și Big-endian Registre Mltipleor Vectorial Unitatea Aritmetică și Logică ALU Unitatea de control Analiza eecției ni instrcțini aritmetice Analiza eecției instrcținii LW Analiza eecției instrcținii SW Analiza eecției instrcținii BEQ 5/8/28 CSO_6 26-27 33
Analiza eecției instrcținii SW 4 Add Shift left 2 Add M Branch Instr[3:26] RegDst control MemtoReg MemRead MemWrite ALUop ALUSrc RegWrite 2 PC Instrction memory Instrction address Instr[25:2] Instr[2:6] Instr[5:] M Write data Registers Read register Read data Read register 2 Write register Read data 2 M A L U Zero 4 Data memory Address Write data Read data Instr[5:] Signetend ALU control Instr[5:] 5/8/28 SOC_6 27-28 34
CONTENT Procesor MIPS c eecția pe n cicl Little-endian și Big-endian Registre Mltipleor Vectorial Unitatea Aritmetică și Logică ALU Unitatea de control Analiza eecției ni instrcțini aritmetice Analiza eecției instrcținii LW Analiza eecției instrcținii SW Analiza eecției instrcținii BEQ 5/8/28 SOC_6 27-28 35
Analiza eecției instrcținii BEQ 4 Add Shift left 2 Add M Branch Instr[3:26] control ALUop ALUSrc RegWrite 2 PC Instrction memory Instrction address Instr[25:2] Instr[2:6] Registers Read register Read data Read register 2 Read data 2 M A L U Zero 4 Instr[5:] Signetend ALU control 5/8/28 SOC_6 27-28 36
Referințe (Trebie Citit) Patterson David, Hennessy John- Compter Organization and Design The Hardware/Software Interface (4 th Edition), Morgan Kafmann Pblishers, 28, Capitoll 4, pag. 298-449 sa Patterson David, Hennessy John- Compter Organization and Design The Hardware/Software Interface (3 rd Edition), Morgan Kafmann Pblishers, 24, Capitoll 5, pag. 282-367 5/8/28 SOC_6 27-28 37
ÎNTREBĂRI? 5/8/28 SOC_6 27-28 38