Universidade Federal de Campina Grande Unidade cadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e rquitetura de Computadores I Organização e rquitetura Básicas B de Computadores (Parte IV - Microarquitetura) Prof a Joseana Macêdo Fechine Régis de raújo joseana@computacao.ufcg.edu.br Carga Horária: 6 horas
Tópicos Microarquitetura forma como está implementada a arquitetura em hardware. 2
Microarquitetura pplication Software Operating Systems rchitecture Microarchitecture Logic Digital Circuits nalog Circuits Devices programs device drivers instructions registers datapaths controllers adders memories ND gates NOT gates amplifiers filters transistors diodes Physics electrons 3
Microarquitetura Múltiplas implementações para uma mesma arquitetura: Single-cycle Cada instrução é executada em um único ciclo Multicycle execução de cada instrução é dividida em uma série de passos menores Pipelined execução de cada instrução é dividida em uma série de passos menores Múltiplas instruções (parte de) executando ao mesmo tempo. 4
Microarquitetura - MIPS Datapath Unidade de Controle 3:26 5: MemtoReg Control MemWrite Unit Branch LUControl 2: Op LUSrc Funct RegDst RegWrite PCSrc PC' PC Instruction Instr 25:2 2:6 2 3 WD3 WE3 Register File 2 Src SrcB LU Zero LUResult WriteData WE Data WD ReadData 4 + PCPlus4 2:6 5: 5: WriteReg 4: Sign Extend SignImm <<2 + PCBranch Result 5
Control Unit Control Unit Opcode 5: Main Decoder MemtoReg MemWrite Branch LUSrc RegDst RegWrite LUOp : Funct 5: LU Decoder LUControl 2: 6
MIPS Single-Cycle LU F 2: Function N B N & B B + B LU N Y 3 F not used & ~B ~B - B SLT 7
LU N B N N N F 2 C out + [N-] S Zero Extend N N N N 2 3 2 F : Y N 8
LU Decoder LUOp : Meaning dd Control Unit MemtoReg Subtract Opcode 5: Main Decoder MemWrite Branch LUSrc RegDst RegWrite Look at Funct Not Used LUOp : Funct 5: LU Decoder LUControl 2: LUOp : Funct X LUControl 2: (dd) X X (Subtract) X (add) (dd) X (sub) (Subtract) X (and) (nd) X (or) (Or) X (slt) (SLT) 9
Processador Funcionalidades SignImm Instruction + 4 3 WD3 2 WE3 2 Sign Extend Register File Data WD WE PC PC' Instr 25:2 2:6 5: 5: SrcB 2:6 5: <<2 + LUResult ReadData WriteData Src PCPlus4 PCBranch WriteReg 4: Result 3:26 RegDst Branch MemWrite MemtoReg LUSrc RegWrite Op Funct Control Unit Zero PCSrc LUControl 2: LU 25: <<2 27: 3:28 PCJump Jump
Processador Decodificador Principal XX X X X X j Jump addi X X beq X X sw lw R-type LUOp : MemtoReg MemWrite Branch lusrc RegDst RegWrite Op 5: Instruction
Microarquitetura - MIPS Estado da rquitetura Determina o estado do Processador em um dado instante de tempo (PC, 32 registradores, Memória) PC' PC 5 5 2 WE3 2 32 32 32 32 Instruction 32 32 5 32 3 WD3 Register File 32 32 Data WD WE 32 2
Microarquitetura - MIPS Subconjunto das instruções MIPS: instructions: lw, sw R-type instructions: and, or, add, sub, slt Branch instructions: beq 3
Execução de lw [rt] = [ddress] : Fetch da Instrução PC' PC Instruction Instr 2 3 WD3 WE3 Register File 2 Data WD WE Importante: [reg]: contents of the register imm: 6-bit immediate field of the I-type instruction addr: 26-bit address field of the J-type instruction SignImm: sign-extended immediate {{6{imm[5]}}, imm} ZeroImm: zero-extended immediate {6b, imm} ddress: [rs] = SignImm [ddress]: contents of memory location ddress 4
Execução de lw 2: Lê o operando fonte do RF PC' PC Instruction Instr 25:2 2 3 WD3 WE3 Register File 2 Data WD WE 5
Execução de lw 3: Sign-extend o imediato PC' PC Instruction Instr 25:2 2 3 WD3 WE3 Register File 2 Data WD WE 5: Sign Extend SignImm 6
Execução de lw 4: Calcula o endereço efetivo de memória LUControl 2: PC' PC Instruction Instr 25:2 2 3 WD3 WE3 Register File 2 Src SrcB LU Zero LUResult Data WD WE 5: Sign Extend SignImm 7
Execução de lw 5: Lê o dado da memória e o escreve no RF PC' PC Instruction Instr 25:2 2:6 2 3 WD3 RegWrite WE3 Register File 2 LUControl 2: Src SrcB LU Zero LUResult WE Data WD ReadData 5: Sign Extend SignImm 8
Execução de lw 6: Determina o endereço da próxima instrução PC' PC Instruction Instr 25:2 2:6 2 3 WD3 RegWrite WE3 Register File 2 LUControl 2: Src SrcB LU Zero LUResult Data WD WE ReadData 4 + PCPlus4 5: Sign Extend SignImm Result 9
Execução de sw Precisa escrever o valor do registrador na memória PC' PC Instruction Instr 25:2 2:6 2:6 2 3 WD3 RegWrite WE3 Register File 2 LUControl 2: Src SrcB LU Zero LUResult WriteData MemWrite WE Data WD ReadData 4 + PCPlus4 5: Sign Extend SignImm Result 2
Instruções R-Type: add, sub, and, or,. Escrever LUResult no RF Escreve emrd e não emrt PC' PC Instruction Instr 25:2 2:6 RegWrite RegDst LUSrc LUControl 2: MemWrite MemtoReg varies 2 3 WD3 WE3 Register File 2 Src SrcB LU Zero LUResult WriteData WE Data WD ReadData 4 + PCPlus4 2:6 5: 5: WriteReg 4: Sign Extend SignImm Result 2
Instruçãobeq Determina se os conteúdos dos registradores são iguais Calcula o endereço alvo do desvio (sign-extended immediate + PC+4) PCSrc PC' PC Instruction Instr 25:2 2:6 RegWrite RegDst LUSrc LUControl 2: Branch MemWrite MemtoReg x x 2 3 WD3 WE3 Register File 2 Src SrcB LU Zero LUResult WriteData WE Data WD ReadData 4 + PCPlus4 2:6 5: 5: WriteReg 4: Sign Extend SignImm <<2 + PCBranch Result 22
Desempenho: Quão rápido é o processador? Cycle time: limitado pelo caminho crítico -lw 3:26 5: MemtoReg Control MemWrite Unit Branch LUControl 2: Op LUSrc Funct RegDst RegWrite PCSrc PC' PC 4 Instruction + PCPlus4 Instr 25:2 2:6 2:6 5: 5: 2 3 WD3 WE3 Register File 2 WriteReg 4: Sign Extend SignImm Src SrcB <<2 Zero LU + LUResult WriteData PCBranch Data WD WE ReadData Result 23
MIPS Single- Cycle Caminho crítico T c = t pcq_pc + t mem + max(t RFread, t sext ) + t mux + t LU + t mem + t mux + t RFsetup Na maioria das implementações os caminhos limitantes são: memória, LU, register file. ssim, T c = t pcq_pc + 2t mem + t RFread + 2t mux + t LU + t RFsetup 24
Element Register clock-to-q Register setup Multiplexer LU read Register file read Register file setup Parameter t pcq_pc t setup t mux t LU t mem t RFread t RFsetup Delay (ps) 3 2 25 2 25 5 2 T c = t pcq_pc + 2t mem + t RFread + 2t mux + t LU + t RFsetup = [3 + 2(25) + 5 + 2(25) + 2 + 2] ps = 95 ps 25
Para um programa com bilhões de instruções executando em um processador MIPS single-cycle, Execution Time = (# instructions)(cycles/instruction)(seconds/cycle) = ( 9 )()(95-2 s) = 95 seconds Program execution time Execution Time = (# instructions)(cycles/instruction)(seconds/cycle) Cycles/instruction = CPI Seconds/cycle = clock period /CPI = Instructions/cycle = IPC 26
es Intel Evolução dos Microprocessadores Intel 27
Microarquitetura Desafios na implementação de uma microarquitetura Custo Power Desempenho 28