Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador...
Transcript of Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador...
Desenho do Processador
Luıs Nogueira
Departamento Engenharia Informatica
Instituto Superior de Engenharia do Porto
Desenho do processador – p. 1
Introducao
• Definindo o seguinte subconjunto da ISA MIPS◦ Aritméticas e lógicas: add, sub, and, or, slt◦ Acesso à memória: lw, sw◦ Salto condicional e incondicional: beq, bne, j
• Desenhar um processador◦ Que componentes precisamos?◦ Como ligamos os componentes?◦ Como controlamos o fluxo de execução?
• Análise◦ ISA influencia a implementação◦ Estratégias seguidas influenciam ciclo de relógio
Desenho do processador – p. 2
Componentes necessarios
• Memória de instruções - contém programa a executar• PC - endereço da próxima instrução• Incrementador - avançar PC para próxima instrução
PC
Instruction address
Instruction
Instruction memory
Add Sum
a. Instruction memory b. Program counter c. Adder
Desenho do processador – p. 3
Componentes necessarios
• Registos - armazenar operandos e resultados• ALU - cálculo aritmético e lógico
Read register 1
Read register 2
Write register
Write Data
Registers ALUData
Data
Zero
ALU result
RegWrite
a. Registers b. ALU
5
5
5
Register numbers
Read data 1
Read data 2
ALU operation4
Desenho do processador – p. 4
Componentes necessarios
• Memória de dados - armazenar valores• Conversor 16/32 bits - manipulação de endereços
AddressRead data
Data memory
a. Data memory unit
Write data
MemRead
MemWrite
b. Sign-extension unit
Sign extend
16 32
Desenho do processador – p. 5
Classificacao dos componentes
• Elementos funcionais (lógica combinacional)◦ Dado o mesmo input produzem sempre o mesmo output◦ Não guardam informação internamente◦ ALU, incrementador, conversor
• Elementos com estado◦ Armazenam dados, instruções e resultados temporários◦ Contêm informação necessária à re-inicialização◦ Registos, memórias, PC
Desenho do processador – p. 6
Sinal de relogio
• Sinal eléctrico com uma dada frequência (MHz)• Decide momento de actualização dos elementos com
estado• Dois estados: (1) sinal activo, (0) sinal inactivo• Sinal rectangular: mudança de estado nos lados verticais
State element
1
State element
2Combinational logic
Clock cycle
Desenho do processador – p. 7
Ciclo de execucao de uma instrucao
1. Obter instrução da memória apontada por PC
2. Obter os operandos (endereço ou registos)
3. ALU executa operação ou calcula endereço
4. Instruções lw/sw acedem à memória
5. Resultado é armazenado(a) Dados da memória são escritos em registos(b) Resultado da ALU escrito em registo(c) Novo endereço escrito no PC
• Como interligar os componentes?
Desenho do processador – p. 8
Obter instrucao apontada por PC
• Aceder à memória de instruções• Preparar a execução da instrução seguinte
◦ Incrementar PC
PCRead address
Instruction
Instruction memory
Add
4
Desenho do processador – p. 9
Instrucoes formato R e lw/sw
• Instruções aritméticas e de acesso à memória são similares◦ ALU calcula operação sobre registos ou endereços◦ Resultado armazenado em registo ou memória
Read register 1
Read register 2
Write register
Write data
Write data
Registers ALU
Zero
RegWrite
MemRead
MemWrite
MemtoReg
Read data 1
Read data 2
ALU operation4
Sign extend
16 32
InstructionALU
resultM u x
0
1
M u x
1
0
ALUSrc
Address
Data memory
Read data
Desenho do processador – p. 10
Instrucoes de salto condicional
• Comparar valor dos registos• Calcular endereço destino
Read register 1
Read register 2
Write register
Write data
Registers ALU Zero
RegWrite
Read data 1
Read data 2
ALU operation4
To branch control logic
Add SumBranch target
PC+4 from instruction datapath
Sign extend
16 32
Instruction
Shift left 2
Desenho do processador – p. 11
Arquitectura do processador
Read register 1
Read register 2
Write register
Write data
Write data
Registers ALU
Add
Zero
RegWrite
MemRead
MemWrite
PCSrc
MemtoReg
Read data 1
Read data 2
ALU operation4
Sign extend
16 32
InstructionALU
result
Add
ALU result
M u x
M u x
M u x
ALUSrc
Address
Data memory
Read data
Shift left 2
4
Read address
Instruction memory
PC
Desenho do processador – p. 12
Controlo do fluxo de informacao
• Necessário garantir que. . .
◦ próxima instrução só começa quando actual termina
◦ ALU executa operação correcta
◦ durante escrita de registos não há leituras de registo
◦ durante escrita na memória não há leituras da memória
◦ PC avança para próxima instrução ou “salta”
◦ numa instrução lw/sw ALU gera endereço de memória
◦ após instrução aritmética o resultado é escrito numregisto
Desenho do processador – p. 13
Controlo do fluxo de informacao
• Relógio◦ Sinal de controlo global que afecta todos os
componentes◦ Determina ritmo a que a informação circula◦ Exemplo: 1 GHz equivale a um ciclo de 1 nano-segundo
• Sinais de controlo◦ Activam apenas uma parte do circuito◦ Dependem do tipo de instrução e da fase em que a
instrução se encontra◦ São despoletados pelo opcode da instrução
Desenho do processador – p. 14
Sinais de controlo
Formato Ropcode rs rt rd shamt funct
31:26 25:21 20:16 15:11 10:6 5:0
Formato Iopcode rs rt addr
31:26 25:21 20:16 15:0
• Registo destino◦ rt em lw nos bits 20:16◦ rd em instruções formato R nos bits 15:11
• Adicionar multiplexador para seleccionar campo dainstrução
Desenho do processador – p. 15
Sinais de controlo
• ALUOptipo de operação na ALU
• RegDest registo de destino
• ALUSrc distingue instruções formato R e I
• PCSrc/Branch determina se PC avança 4 bytes ou “salta”
• MemReadcontrola leitura da memória
• MemWrite controla escrita na memória
• MemtoReg selecciona resultado da ALU ou da memória
• RegWrite controla escrita nos registos
Desenho do processador – p. 16
Sinais de controlo
Instrução RegDest ALUSrc MemtoReg RegWrite
Formato R 1 0 0 1lw 0 1 1 1sw X 1 X 0beq/bne X 0 X 0
Instrução MemRead MemWrite Branch ALUOp
Formato R 0 0 0 10lw 1 0 0 00sw 0 1 0 00beq/bne 0 0 1 01
Desenho do processador – p. 17
Sinais de controlo
Read register 1
Read register 2
Write register
Write data
Write data
Registers
ALU
Add
Zero
Read data 1
Read data 2
Sign extend
16 32
Instruction [31–0] ALU
result
Add
ALU result
M u x
M u x
M u x
Address
Data memory
Read data
Shift left 2
4
Read address
Instruction memory
PC
1
0
0
1
0
1
M u x
0
1
ALU control
Instruction [5–0]
Instruction [25–21]
Instruction [31–26]
Instruction [15–11]
Instruction [20–16]
Instruction [15–0]
RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite
Control
Desenho do processador – p. 18
Controlo de fluxo lw $1,offset($2)
1. Instrução é obtida da memória de instruções e PC éincrementado
2. Instrução descodificada. Valor do registo $2 é lido dosregistos• Branch=0
3. ALU calcula soma do valor do registo e deslocamentoconvertido• ALUSrc=1, ALUop=00
4. Resultado da ALU usado como endereço na memória dedados• MemRead=1, MemWrite=0
5. Valor em endereço escrito no registo destino• RegDest=0, RegWrite=1, MemtoReg=1
Desenho do processador – p. 19
Saltos absolutos
Formato Jopcode addr
31:26 25:0
• Endereço final◦ Conversor 26 para 28 bits◦ Últimos 4 bits são dependentes do PC
• Acrescentar ao processador◦ Sinal de controlo Jump◦ Multiplexador (salto condicional ou absoluto)
Desenho do processador – p. 20
Saltos absolutos
Read register 1
Read register 2
Write register
Write data
Write data
Registers
Add
Read data 1
Read data 2
Sign extend
16 32
Instruction [31–0]
Add
ALU result
M u x
M u x
M u x
Address
Data memory
Read data
Shift left 2
Shift left 2
4
Read address
Instruction memory
PC
1
0
0
1
1
0
M u x
0
1
M u x
0
1
ALU control
Instruction [5–0]
Instruction [25–21]
Instruction [31–26]
Instruction [15–11]
Instruction [20–16]
Instruction [15–0]
RegDst Jump Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite
Control
Instruction [25–0] Jump address [31–0]
26 28PC + 4 [31–28]
ALU
Zero
ALU result
Desenho do processador – p. 21
Implementacao do controlo
• Hardwired◦ Directamente nos circuitos◦ Possível se ISA tem poucas e simples instruções◦ Mais rápido
• Microcódigo◦ Em ROMs/PLAs com pequenos programas◦ Programas activam sinais de controlo em função do
opcode◦ Exemplo: Intel IA-32
Desenho do processador – p. 22
Controlador de microcodigo
Microprogram counter
Address select logic
Adder
1
Input
Datapath
control
outputs
Microcode
storage
Inputs from instruction
register opcode field
Outputs
Sequencing
control
Desenho do processador – p. 23
Intel IA-32
• Instruções complexas que demoram vários ciclos de relógio
• Maior no e complexidade de modos de endereçamento
• Adaptar fluxo de dados◦ Instruções variam no no de ciclos de relógio◦ Reutilização de componentes numa instrução
• A partir do 80486 combinação de controlo hardwired emicrocódigo◦ Hardwired para instruções simples◦ Microcódigo para instruções complexas
Desenho do processador – p. 24
Intel IA-32
• Tradução de instruções complexas em micro-instruções◦ Semelhantes a instruções MIPS
• Controlo hardwired das micro-instruções
• Pentium II, Pentium III e Pentium Pro◦ Lê 3 instruções IA-32 simultaneamente◦ Usa PLAs para gerar até 6 micro-instruções
• Menor ciclo de relógio do Pentium 4 exigiu alterações◦ Se tradução origina até 3 micro-instruções→trace cache◦ Maior no de micro-instruções→ ROM de
micro-instruções (8000 instruções)
Desenho do processador – p. 25