25
Desenho do Processador Lu´ ıs Nogueira [email protected] Departamento Engenharia Inform ´ atica Instituto Superior de Engenharia do Porto Desenho do processador – p. 1

Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

Desenho do Processador

Luıs Nogueira

[email protected]

Departamento Engenharia Informatica

Instituto Superior de Engenharia do Porto

Desenho do processador – p. 1

Page 2: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

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

Page 3: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

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

Page 4: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

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

Page 5: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

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

Page 6: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

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

Page 7: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

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

Page 8: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

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

Page 9: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

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

Page 10: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

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

Page 11: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

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

Page 12: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

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

Page 13: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

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

Page 14: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

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

Page 15: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

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

Page 16: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

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

Page 17: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

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

Page 18: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

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

Page 19: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

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

Page 20: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

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

Page 21: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

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

Page 22: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

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

Page 23: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

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

Page 24: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

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

Page 25: Desenho do Processador - ipp.ptluis/orgc/slides/arquitectura/aula2.pdf · Desenho do processador – p. 2. Componentes necessarios´ • Memória de instruções - contém programa

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