Post on 30-Sep-2020
DSC/CEEI/UFCGDSC/CEEI/UFCG
Universidade Federal de Campina GrandeUniversidade Federal de Campina Grande
Unidade Acadêmica de Sistemas e ComputaUnidade Acadêmica de Sistemas e Computaççãoão
Curso de Bacharelado em Ciência da ComputaCurso de Bacharelado em Ciência da Computaççãoão
NNíível da vel da MicroarquiteturaMicroarquitetura(Parte Complementar) (Parte Complementar)
ProfProfaa Joseana Joseana MacêdoMacêdo FechineFechine RRéégis de Aragis de Araúújojojoseana@computacao.ufcg.edu.brjoseana@computacao.ufcg.edu.br
Carga Horária: 60 horas
OrganizaOrganizaçção e Arquitetura ão e Arquitetura de Computadores Ide Computadores I
2DSC/CEEI/UFCGDSC/CEEI/UFCG
Tópicos
� Nível ISA
� Nível da Microarquitetura
− Datapath
− Unidade de Controle
3DSC/CEEI/UFCGDSC/CEEI/UFCG
Microarquitetura
� Microarquitetura: forma como está implementada a
arquitetura em hardware
� Processador:
� Datapath: blocos funcionais
� Controle: sinais de controle
Physics
Devices
Analog
Circuits
Digital
Circuits
Logic
Micro-
architecture
Architecture
OperatingSystems
Application
Software
electrons
transistors
diodes
amplifiers
filters
AND gates
NOT gates
adders
memories
datapaths
controllers
instructions
registers
device drivers
programs
4DSC/CEEI/UFCGDSC/CEEI/UFCG
Microarquitetura
Múltiplas implementações para uma mesmaarquitetura:
� Single-cycle− Cada instrução é executada em um único ciclo
� Multicycle− A execução de cada instrução é dividida em uma série
de passos menores
� Pipelined− A execução de cada instrução é dividida em uma série
de passos menores− Múltiplas instruções (parte de) executando ao mesmo
tempo.
5DSC/CEEI/UFCGDSC/CEEI/UFCG
Microarquitetura
Conceitos importantes:
� Program execution time
Execution Time = (# instructions)(cycles/instruction)(seconds/cycle)
− Cycles/instruction = CPI
− Seconds/cycle = clock period
− 1/CPI = Instructions/cycle = IPC
� Desafios na implementação de uma microarquitetura
� Custo
� Power
� Desempenho
6DSC/CEEI/UFCGDSC/CEEI/UFCG
Microarquitetura
� Processador MIPS
� Subconjunto das instruções MIPS:− R-type instructions: and, or, add, sub, slt
− Memory instructions: lw, sw
− Branch instructions: beq
7DSC/CEEI/UFCGDSC/CEEI/UFCG
Micro-Arquitetura
� Estado da Arquitetura
� Determina o estado do Processador em um dado instante de tempo
− PC
− 32 registradores
− Memória
8DSC/CEEI/UFCGDSC/CEEI/UFCG
Microarquitetura
� Elementos de estados do MIPS:
A RD
Instruction
Memory
A RD
Data
Memory
WD
WE
CLK
32 32
32
32
32
CLK A1
A3
WD3
RD2
RD1WE3
A2
CLK
Register
File
PCPC'
32 32
32
32
32
5
5
5
9DSC/CEEI/UFCGDSC/CEEI/UFCG
Microarquitetura -Processador MIPS
� Datapath
� Unidade de Controle
10DSC/CEEI/UFCGDSC/CEEI/UFCG
ProcessadorMIPS Single-Cycle
� Execução de lw
1: Fetch da Instrução
CLK
A RD
InstructionMemory
A1
A3
WD3
RD2
RD1WE3
A2
CLK
RegisterFile
A RD
DataMemory
WD
WEPCPC'
Instr
CLK
11DSC/CEEI/UFCGDSC/CEEI/UFCG
ProcessadorMIPS Single-Cycle
� Execução de lw
2: Lê o operando fonte do RF
Instr
CLK
A RD
InstructionMemory
A1
A3
WD3
RD2
RD1WE3
A2
CLK
RegisterFile
A RD
DataMemory
WD
WEPCPC'
25:21
CLK
12DSC/CEEI/UFCGDSC/CEEI/UFCG
ProcessadorMIPS Single-Cycle
� Execução de lw
3: Sign-extend o imediato
SignImm
CLK
A RD
InstructionMemory
A1
A3
WD3
RD2
RD1WE3
A2
CLK
Sign Extend
RegisterFile
A RD
DataMemory
WD
WEPCPC' Instr
25:21
15:0
CLK
13DSC/CEEI/UFCGDSC/CEEI/UFCG
ProcessadorMIPS Single-Cycle
� Execução de lw
4: Calcula o endereço efetivo de memória
SignImm
CLK
A RD
InstructionMemory
A1
A3
WD3
RD2
RD1WE3
A2
CLK
Sign Extend
RegisterFile
A RD
DataMemory
WD
WEPCPC' Instr
25:21
15:0
SrcB
ALUResult
SrcA Zero
CLK
ALUControl2:0
ALU
010
14DSC/CEEI/UFCGDSC/CEEI/UFCG
ProcessadorMIPS Single-Cycle
� Execução de lw
5: Lê o dado da memória e o escreva no RF
A1
A3
WD3
RD2
RD1WE3
A2
SignImm
CLK
A RD
InstructionMemory
CLK
Sign Extend
Register
File
A RD
DataMemory
WD
WEPCPC' Instr
25:21
15:0
SrcB20:16
ALUResult ReadData
SrcA
RegWrite
Zero
CLK
ALUControl2:0
ALU
0101
15DSC/CEEI/UFCGDSC/CEEI/UFCG
ProcessadorMIPS Single-Cycle
� Execução de lw
6: Determina o endereço da próxima instrução
SignImm
CLK
A RD
InstructionMemory
+
4
A1
A3
WD3
RD2
RD1WE3
A2
CLK
Sign Extend
RegisterFile
A RD
DataMemory
WD
WEPCPC' Instr
25:21
15:0
SrcB20:16
ALUResult ReadData
SrcA
PCPlus4
Result
RegWrite
Zero
CLK
ALUControl2:0
ALU
0101
16DSC/CEEI/UFCGDSC/CEEI/UFCG
ProcessadorMIPS Single-Cycle
� Execução de sw
� Precisa escrever o valor do registrador na memória
SignImm
CLK
A RD
InstructionMemory
+
4
A1
A3
WD3
RD2
RD1WE3
A2
CLK
Sign Extend
RegisterFile
A RD
DataMemory
WD
WEPCPC' Instr
25:21
20:16
15:0
SrcB20:16
ALUResult ReadData
WriteData
SrcA
PCPlus4
Result
MemWriteRegWrite
Zero
CLK
ALUControl2:0
AL
U
10100
17DSC/CEEI/UFCGDSC/CEEI/UFCG
ProcessadorMIPS Single-Cycle
� Instruções R-Type: add, sub, and, or, ….
� Escrever ALUResult no RF
− Escreve em rd e não em rt
SignImm
CLK
A RD
InstructionMemory
+
4
A1
A3
WD3
RD2
RD1WE3
A2
CLK
Sign Extend
RegisterFile
0
1
0
1
A RD
DataMemory
WD
WE0
1
PCPC' Instr25:21
20:16
15:0
SrcB
20:16
15:11
ALUResult ReadData
WriteData
SrcA
PCPlus4WriteReg
4:0
Result
RegDst MemWrite MemtoRegALUSrcRegWrite
Zero
CLK
ALUControl2:0
ALU
0varies1 001
18DSC/CEEI/UFCGDSC/CEEI/UFCG
ProcessadorMIPS Single-Cycle
� Instrução beq
� Determina se os conteúdos dos registradores são iguais
� Calcula o endereço alvo do desvio
− (sign-extended immediate + PC+4)
SignImm
CLK
A RD
InstructionMemory
+
4
A1
A3
WD3
RD2
RD1WE3
A2
CLK
Sign Extend
RegisterFile
0
1
0
1
A RD
DataMemory
WD
WE0
1
PC0
1
PC' Instr25:21
20:16
15:0
SrcB
20:16
15:11
<<2
+
ALUResult ReadData
WriteData
SrcA
PCPlus4
PCBranch
WriteReg4:0
Result
RegDst Branch MemWrite MemtoRegALUSrcRegWrite
Zero
PCSrc
CLK
ALUControl2:0
ALU
01100 x0x 1
19DSC/CEEI/UFCGDSC/CEEI/UFCG
ProcessadorMIPS Single-Cycle
Unidade de Controle
SignImm
CLK
A RD
InstructionMemory
+
4
A1
A3
WD3
RD2
RD1WE3
A2
CLK
Sign Extend
RegisterFile
0
1
0
1
A RD
DataMemory
WD
WE0
1
PC0
1
PC' Instr25:21
20:16
15:0
5:0
SrcB
20:16
15:11
<<2
+
ALUResult ReadData
WriteData
SrcA
PCPlus4
PCBranch
WriteReg4:0
Result
31:26
RegDst
Branch
MemWrite
MemtoReg
ALUSrc
RegWrite
Op
Funct
ControlUnit
Zero
PCSrc
CLK
ALUControl2:0
ALU
20DSC/CEEI/UFCGDSC/CEEI/UFCG
ProcessadorMIPS Single-Cycle
RegDst
Branch
MemWrite
MemtoReg
ALUSrcOpcode5:0
ControlUnit
ALUControl2:0Funct5:0
MainDecoder
ALUOp1:0
ALUDecoder
RegWrite
Control Unit
21DSC/CEEI/UFCGDSC/CEEI/UFCG
Processador MIPS Single-Cycle
ALU
A & B000
A | B001
A + B010
not used011
A & ~B100
A | ~B101
A - B110
SLT111
FunctionF2:0
ALU
N N
N
3
A B
Y
F
22DSC/CEEI/UFCGDSC/CEEI/UFCG
ProcessadorMIPS Single-Cycle
+
2 01
A B
Cout
Y
3
01
F2
F1:0
[N-1] S
NN
N
N
N NNN
N
2
Ze
roE
xte
nd
ALU
23DSC/CEEI/UFCGDSC/CEEI/UFCG
ProcessadorMIPS Single-Cycle
ALU Decoder
Not Used11
Look at Funct10
Subtract01
Add00
MeaningALUOp1:0
111 (SLT)101010 (slt)1X
001 (Or)100101 (or)1X
000 (And)100100 (and)1X
110 (Subtract)100010 (sub)1X
010 (Add)100000 (add)1X
110 (Subtract)XX1
010 (Add)X00
ALUControl2:0FunctALUOp1:0
24DSC/CEEI/UFCGDSC/CEEI/UFCG
ProcessadorMIPS Single-Cycle
� Funcionalidades
SignImm
CLK
A RD
InstructionMemory
+
4
A1
A3
WD3
RD2
RD1WE3
A2
CLK
Sign Extend
RegisterFile
0
1
0
1
A RD
DataMemory
WD
WE0
1
PC0
1PC' Instr
25:21
20:16
15:0
5:0
SrcB
20:16
15:11
<<2
+
ALUResult ReadData
WriteData
SrcA
PCPlus4
PCBranch
WriteReg4:0
Result
31:26
RegDst
Branch
MemWrite
MemtoReg
ALUSrc
RegWrite
Op
Funct
ControlUnit
Zero
PCSrc
CLK
ALUControl2:0
ALU
0
1
25:0 <<2
27:0 31:28
PCJump
Jump
25DSC/CEEI/UFCGDSC/CEEI/UFCG
ProcessadorMIPS Single-Cycle
� Decodificador Principal
1XXX0XXX0000100j
0
0
0
0
0
Jump
00000101001000addi
01X010X0000100beq
00X101X0101011sw
00100101100011lw
10000011000000R-type
ALUOp1:0
MemtoRegMemWriteBranchAluSrcRegDstRegWriteOp5:0
Instruction
26DSC/CEEI/UFCGDSC/CEEI/UFCG
ProcessadorMIPS Single-Cycle
� Desempenho: Quão rápido é o processador?
� Cycle time: limitado pelo caminho crítico - lw
SignImm
CLK
A RD
InstructionMemory
+
4
A1
A3
WD3
RD2
RD1WE3
A2
CLK
Sign Extend
RegisterFile
0
1
0
1
A RD
DataMemory
WD
WE0
1
PC0
1
PC' Instr25:21
20:16
15:0
5:0
SrcB
20:16
15:11
<<2
+
ALUResult ReadData
WriteData
SrcA
PCPlus4
PCBranch
WriteReg4:0
Result
31:26
RegDst
Branch
MemWrite
MemtoReg
ALUSrc
RegWrite
Op
Funct
ControlUnit
Zero
PCSrc
CLK
ALUControl2:0
ALU
1
0100
1
0
1
0 0
27DSC/CEEI/UFCGDSC/CEEI/UFCG
Processador MIPS Single-Cycle
� Caminho crítico
Tc = tpcq_PC + tmem + max(tRFread, tsext) + tmux + tALU + tmem + tmux + tRFsetup
� Na maioria das implementações os caminhos
limitantes são: memória, ALU, register file. Assim,
Tc = tpcq_PC + 2tmem + tRFread + 2tmux + tALU + tRFsetup
28DSC/CEEI/UFCGDSC/CEEI/UFCG
ProcessadorMIPS Single-Cycle
30tpcq_PCRegister clock-to-Q
Delay (ps)ParameterElement
20tsetupRegister setup
25tmuxMultiplexer
200tALUALU
250tmemMemory read
150tRFreadRegister file read
20tRFsetupRegister file setup
Tc = tpcq_PC + 2tmem + tRFread + 2tmux + tALU + tRFsetup
= [30 + 2(250) + 150 + 2(25) + 200 + 20] ps
= 950 ps
29DSC/CEEI/UFCGDSC/CEEI/UFCG
ProcessadorMIPS Single-Cycle
� Para um programa com 100 bilhões de instruções executandoem um processador MIPS single-cycle,
� Execution Time
= (# instructions)(cycles/instruction)(seconds/cycle)
= (100 × 109)(1)(950 × 10-12 s)
= 95 seconds
30DSC/CEEI/UFCGDSC/CEEI/UFCG
Processadores Intel
Evolução dos Microprocessadores Intel
31DSC/CEEI/UFCGDSC/CEEI/UFCG
Processadores Intel
32DSC/CEEI/UFCGDSC/CEEI/UFCG
Processadores Intel IA-32
Chip do Pentium 4
Chip do Core Duo
33DSC/CEEI/UFCGDSC/CEEI/UFCG
Chip do Core i7
Processadores Intel IA-32
Chip do Core i3 Chip do Core i5
34DSC/CEEI/UFCGDSC/CEEI/UFCG
Processadores Intel IA-32
Fonte: http://techreport.com/review/18216/intel-core-i3-and-i5-dual-core-processors