função básica da cpu

31
Função básica da CPU Buscar uma instrução na memória Interpretar qual operação é representada pela instrução Trazer (se for o caso) os operandos para a CPU Executar a operação Armazenar (se for o caso) os dados de saída Repetir o processo com uma nova instrução etapas do Ciclo de Instrução

Upload: ziven

Post on 21-Jan-2016

38 views

Category:

Documents


0 download

DESCRIPTION

Função básica da CPU. Buscar uma instrução na memória Interpretar qual operação é representada pela instrução Trazer (se for o caso) os operandos para a CPU Executar a operação Armazenar (se for o caso) os dados de saída Repetir o processo com uma nova instrução - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Função básica da CPU

Função básica da CPU

• Buscar uma instrução na memória• Interpretar qual operação é representada

pela instrução• Trazer (se for o caso) os operandos para a

CPU• Executar a operação• Armazenar (se for o caso) os dados de saída• Repetir o processo com uma nova instrução

etapas do Ciclo de Instrução

Page 2: Função básica da CPU

Performance• Medida de performance baseada em:– número de instruções– período do clock– ciclos de clock por instrução (CPI)

• Clock– dispositivo gerador de pulsos (medido em Hertz)– Para cada pulso do relógio se realiza uma micro-

instrução• A quantidade de vezes que o pulso se repete

em um segundo define a velocidade do clock– Freqüência medida em Hertz (1 ciclo por segundo)

Ex: 1 MHertz

Page 3: Função básica da CPU

Performance• Número de instruções– Depende do programa

• Período do clock e ciclos de clock por instrução– Dependem da implementação do processador

Page 4: Função básica da CPU

Implementação da UCP

• Definir como a instrução• Construção do caminho do dados• Definição da unidade de controle• Começar por uma implementação simples

(cada instrução dura exatamente um clock) e ir melhorando iterativamente

Page 5: Função básica da CPU

Unidades da UCP

Composta por 2 tipos de unidades funcionais:• Elementos que operam sobre valores de

dados– Ex: ULA (Unidade Lógica e Aritmética) = ALU

• Elementos de estados– Ex: Registradores e a memória de instruções e

dados

Page 6: Função básica da CPU

Unidades da UCP

• Elementos “combinacionais”:– Elementos que operam sobre valores de dados– Saída depende somente das entradas– Dado o mesmo conjunto de entradas, produz sempre a

mesma saída– Saída é uma “combinação” dos dados de entrada

• Elementos “seqüenciais”:– Elementos de estados– A saída depende tanto da entrada como do estado interno

do elemento– Ex: Uma operação no banco de registradores depende

tanto do número do registrador quanto do valor armazenado no registrador

Page 7: Função básica da CPU

Elementos necessários para construção da UCP

• Lugar para guardar as instruções do programa– Memória de instruções (elemento de estados)

• Elementos para guardar o endereço da instrução– Program Counter (PC) (elemento de estados)

• Elemento para adicionar 1 ao PC para que este possa ir para a próxima instrução– ULA (Unidade Lógica e Aritmética) (elemento

combinacional)

Page 8: Função básica da CPU

Elementos necessários para construção (I)• Memória de instruções

• PC

• ULA só de soma

Memória de Instruções

Endereço deleitura

Instrução

PC

Somador

Page 9: Função básica da CPU

Caminho de dados da Busca da Instrução

• Busca a instrução na memória, cujo endereço está no contador de programa PC

• Incrementa o contador de programa PC de 1

Memória de Instruções

Endereço deleitura

Instrução

PC

1Somador

Page 10: Função básica da CPU

Subconjunto de instruções

• O foco será dado em um subconjunto de instruções:– Aritmética: add e addi– Memória: lw e sw– Desvio: beq

• Para cada instrução iremos definir o caminho de dados

• O método de implementação das outras instruções ocorre a partir das instruções básicas

Page 11: Função básica da CPU

Revisão do Formato das Instruções (I)

• R-FORMAT (lê dois registradores e escreve o resultado em outro registrador)

– add regA regB destreg

op: código de operação

regA: registrador com primeiro operando fonte

regB: registrador com segundo operando fonte

destreg: registrador que guarda resultado da operação

00 regArd regBop destreg

7 bits 3 bits 3 bits 3 bits 13 bits 3 bits

31 25 24 22 21 19 18 16 15 3 2 0

Page 12: Função básica da CPU

Exemplo: Instrução de Soma

• add regA regB destreg– Mem[PC] Obtém instrução da memória

– R[destreg] R[regA] + R[regB] Executa operação de soma

– PC PC + 1 Calcula próximo endereço1) Buscar informação dos registradores2) Somar os valores3) Guardar informação no registrador

Page 13: Função básica da CPU

Elementos necessários para construção (II)• Banco de Registradores com 8 registradores– Registrador selecionado por• Reg a ser lido #1• Reg a ser lido #2• “Reg a ser escrito” seleciona registro que recebe

“dado a ser escrito” quando EscReg=1

– Um barramento de 32 bits de entrada• Dado a ser escrito

– Dois barramentos de 32 bits de saída• Dado lido #1 e Dado lido #2

– Registrador 0 tem o valor 0

Page 14: Função básica da CPU

Elementos necessários para construção (II)

• Banco de Registradores com 8 registradores

Reg a ser lido # 1

Reg a ser lido #2

Reg a ser escrito

Dado de escrita

Dado lido #1

Dadolido #2

3

3

3

32

32

32

EscReg

Dado

Dado

No do registrador

Page 15: Função básica da CPU

Elementos necessários para construção (III)

• Elementos Combinacionais

3

Soma = X + Y

Somador

Controle da ULA(operação a ser executada)

Zero

Resultado da UALULA

X

Y

32MUX

32

32A

BC

Select (=0 linha de cima, =1 linha de baixo)

Usado para verificar se 2 dados são iguais

32

32

32

Multiplexador

Page 16: Função básica da CPU

Caminho de Dados para Instruções do tipo R-FORMAT

• R[destreg] R[regA] op R[regB]

– Reg a ser lido #1 = regA, Reg a ser lido #2=regB

– Reg a ser escrito= destreg

– Controle da UAL e de EscReg baseado no código da instrução

Page 17: Função básica da CPU

Caminho de Dados para Instruções do tipo R-FORMAT

Reg a ser lido # 1

Reg a ser lido #2

Reg a ser escrito

Dado de escrita

Dado lido #1

Dadolido #2

3

3

3

32

32

32

EscReg

3Operação da UAL

Resultado da UAL

Zero

• R[destreg] R[regA] op R[regB]

INSTRUÇÃO

UAL

Page 18: Função básica da CPU

Revisão do Formato das Instruções (II)

• I-Format (trabalha com imm)

– lw regA regB imm– sw regA regB imm– addi regA regB imm– beq regA regB imm• Desvio utiliza endereço PC relativo

(PC + 1 + imm)

op regBregA

7 bits 3 bits 3 bits 16 bits

imm

3 bits

0

31 25 24 22 21 19 18 16 15 0

Page 19: Função básica da CPU

Exemplo: Instrução de Carga

• lw regA regB imm– mem[PC] Busca instrução na memória

– End R[regA]+SignExt(imm) Calcula o endereço da memória

– R[regB] Mem[End] Carrega os dados damemória no

registrador– PC PC+1 Calcula o próximo endereço1) Buscar informação em registrador

2) Transformar 16 bits em 32 bits3) Pegar informação da memória4) Guardar informação do registrador

32 bits 16 bits

Page 20: Função básica da CPU

Elementos necessários para construção (IV)

• Extensão de sinal– Transformar um número com 16 bits em um com

32 bits– Replicar o bit mais significativo:

– Ex: (2)10 = 0000 0000 0000 0010 (com 16 bits) 0000 0000 0000 0000 0000 0000 0000 0010

– Ex: (-2)10 = inv (0000 0000 0000 0010)+1= 1111 1111 1111 1110 (com 16 bits)1111 1111 1111 1111 1111 1111 1111 1110

Page 21: Função básica da CPU

Elementos necessários para construção (IV)

• Extensão de sinal

16 32

Extensãode sinal

Page 22: Função básica da CPU

Elementos necessários para construção (V)

• Memória – Um barramento de entrada: Dado a ser escrito– Um barramento de saída: Dado lido

• Seleção de endereço– Endereço seleciona a palavra a ser colocada em

Dado lido ou endereço no qual o Dado a ser escrito será posto

– Para escrever no endereço, seta EscMem para 1– Para ler do endereço, seta LerMem para 1

Page 23: Função básica da CPU

Elementos necessários para construção (V)

• Memória

Endereço

Dado a ser escrito

Dadolido

LerMem

EscMen

Page 24: Função básica da CPU

Caminho de Dados para Instrução de Carga

Reg a ser lido # 1

Reg a ser lido #2

Reg a ser escrito

Dado de escrita

Dado lido #1

Dadolido #2

3

3

32

32

EscReg

3Operação da UAL

Zero

Endereço

Dado a ser escrito

Dadolido

LerMem

EscMen

16 32

Extensãode sinal

INSTRUÇÃO

• lw regA regB imm(guarda no regB o dado do endereço de memória regA+imm)

UAL

Page 25: Função básica da CPU

Exemplo: Instrução de Armazenamento

• sw regA regB imm– mem[PC] Busca instrução na memória

– End R[regA]+SignExt(imm) Calcula o endereço da memória

– Mem[End] R[regB] Carrega os dados na memória

– PC PC+1 Calcula o próximo endereço1) Buscar informação em registrador2) Transformar 16 bits em 32 bits3) Pegar informação em registrador4) Guardar informação na memória

Page 26: Função básica da CPU

Caminho de Dados para Instrução de Armazenamento

Reg a ser lido # 1

Reg a ser lido #2

Reg a ser escrito

Dado de escrita

Dado lido #1

Dadolido #2

3

3 32

EscReg

3Operação da UAL

Zero

Endereço

Dado a ser escrito

Dadolido

LerMem

EscMen

16 32

Extensãode sinal

INSTRUÇÃO

• sw regA regB imm(guarda no enderenço de memória regA+imm o dado de regB)

UAL

Page 27: Função básica da CPU

Revisão do Formato de Instrução de Desvio Condicional (III)

• beq regA regB imm– mem[PC] Busca instrução na memória

– Cond R[regA]-R[regB] Calcula a condição de desvio

– if (Cond eq 0)• PC PC+1 + SignExt(imm) Calcula endereço PC

relativo

– else• PC PC+1 Calcula o próximo endereço

Page 28: Função básica da CPU

Reg a ser lido # 1

Reg a ser lido #2

Reg a ser escrito

Dado de escrita

Dado lido #1

Dadolido #2

3

3

EscReg

3Operação da UAL

ZeroUAL

16 32

Extensãode sinal

Somador

PC+1 vindo do caminho de dados de busca de uma instrução

Endereço alvodo desvio condicional

Para a lógica de controle do desvio condicional

INSTRUÇÃO

Caminho de Dados para Instrução de Desvio Condicional

Se R[regA]-R[regB] = 0o sinal na saída Zero é 1.

Se R[regA]-R[regB] != 0o sinal na saída Zero é 0.

Page 29: Função básica da CPU

Passos do Projeto• Objetivos: projetar um caminho de dados para possibilitar a

execução de todas as instruções vistas em um único ciclo de clock

• De acordo com a arquitetura do conjunto de instruções, define-se uma estrutura organizacional macro.

• Essa estrutura é refinada para definir os componentes do caminho de dados, suas interconexões e pontos de controle

• Estrutura de controle é definida• O projeto do caminho de dados e controle é refinado para

projeto físico e validação funcional

Page 30: Função básica da CPU

Caminho de Dados• Busca de Instrução + Instruções Aritm. e Lóg. (R-format) + Instruções de Referência à Memória (I-Format)

Reg a ser lido # 1

Reg a ser lido #2

Reg a ser escrito

Dado de escrita

Dado lido #1

Dadolido #2

EscReg

3

Operação da UAL

Zero

Endereço

Dado a ser escrito

Dadolido

LerMem

EscMen

Extensãode sinal

UAL

MUX

MUX

Memória de Instruções

Endereço deleitura

Instrução

PC

1 Somador

16 32

MUX

Page 31: Função básica da CPU

Caminho de Dados• Busca de Instrução + Instruções Aritm. e Lóg. (R-format) + Instruções de Referência à Memória (I-Format) + Desvio

Reg a ser lido # 1

Reg a ser lido #2

Reg a ser escrito

Dado de escrita

Dado lido #1

Dadolido #2

EscReg

3

Endereço

Dado a ser escrito

Dadolido

LerMem

EscMen

Extensãode sinal

UAL

MUX

MUX

Memória de Instruções

Endereço deleitura

Instrução

PC

1 Somador

16 32

MUX

UAL

MUX

DvC