organização de unidades de processamentojca/feup/aspd/slides/aspd-slides-cpu-org... · mesmo...

45
Outline Caminho de dados Implementação uniciclo Implementação multiciclo Microprogramação Organização de Unidades de Processamento João Canas Ferreira Março de 2004 Contém figuras de: Computer Organization & Design, D. A Patterson e J. L. Hennessy, 2 a ed. (cap. 5) c JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 1/45

Upload: dohanh

Post on 13-Dec-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Organização de Unidades de Processamento

João Canas Ferreira

Março de 2004

Contém figuras de:Computer Organization & Design, D. A Patterson e J. L. Hennessy, 2a ed.(cap. 5)

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 1/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Caminho de dadosAspectos geraisEspecificação das instruçõesCaminho de dados genéricoConstrução do caminho dedados

Implementação unicicloUnidade de controlo unicicloFuncionamento do caminho dedadosSaltos

Implementação multiciclo

Desempenho da implementaçãounicicloModificações do caminho dedadosExecução faseada de instruçõesUnidade de controlo baseadaem máquinas de estados

MicroprogramaçãoUnidade de controlomicroprogramadaFormato das micro-instruçõesImplementação domicroprograma

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 2/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Aspectos geraisEspecificação das instruçõesCaminho de dados genéricoConstrução do caminho de dados

Implementação de um processador

I Subconjunto de instruções do CPU MIPS R2000.I operações aritméticas/lógicas: add, sub, and, or e sltI instruções de acesso a memória: lw e swI instruções de controlo de fluxo: j e beq

I Todas as instruções têm o mesmo comprimento: 32 bits.I Três formatos diferentes: R, I e ?I Número reduzido de modos de endereçamento.I Acesso a memória por instruções dedicadas (load/store).I Optimizar a situação mais frequente.I Simplicidade favorece a regularidade.

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 3/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Aspectos geraisEspecificação das instruçõesCaminho de dados genéricoConstrução do caminho de dados

Sistema digital síncrono

Para esta implementação vamos assumir que todos os elementossão sensíveis ao flanco do sinal de relógio (edge-triggered).

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 4/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Aspectos geraisEspecificação das instruçõesCaminho de dados genéricoConstrução do caminho de dados

Estrutura abstracta do caminho de dados

A figura mostra as principais unidades funcionais de um CPU e ofluxo de dados entre elas.O diagrama não mostra como o fluxo é controlado.

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 5/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Aspectos geraisEspecificação das instruçõesCaminho de dados genéricoConstrução do caminho de dados

Codificação das instruções aritméticas/lógicasFormato R (operações entre registos): rd ← rs op rt

012345678910111213141516171819202122232425262728293031

op rs rt rd shamt funct

6 bits 5 bits 5 bits 5 bits 5 bits 6 bits

Instrução op rs rt rd shamt funct

add 0 reg reg reg 0 32add 0 reg reg reg 0 34and 0 reg reg reg 0 36or 0 reg reg reg 0 37slt (<) 0 reg reg reg 0 42

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 6/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Aspectos geraisEspecificação das instruçõesCaminho de dados genéricoConstrução do caminho de dados

Codificação dos acessos a memória

Formato I (inclui valor imediato)012345678910111213141516171819202122232425262728293031

op rs rt end/imediato

6 bits 5 bits 5 bits 16 bits

Instrução op rs rt imediato/endreço

lw 35 reg reg imediatosw 43 reg reg imediato

rt é o registo afectado (rs é usado para o cálculo do endereço)

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 7/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Aspectos geraisEspecificação das instruçõesCaminho de dados genéricoConstrução do caminho de dados

Codificação dos saltosSalto condicional: formato I.

Instrução op rs rt imediato/endereço

beq 4 reg reg deslocamento

Salto incondicional: formato J012345678910111213141516171819202122232425262728293031

op endereço

6 bits 26 bits

012345678910111213141516171819202122232425262728293031

MSbdo PC

endereço 00

4 bits 26 bits2

bits

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 8/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Aspectos geraisEspecificação das instruçõesCaminho de dados genéricoConstrução do caminho de dados

Obtenção de instruções

Secção do caminho de dados que lê uma instrução de memória eincrementa o contador do programa (program counter).

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 9/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Aspectos geraisEspecificação das instruçõesCaminho de dados genéricoConstrução do caminho de dados

Registos e ALU

Banco de registos: os valores da saída são determinados pelasentradas de selecção correspondentes. A escrita é activada por umsina edge-triggered. É legal ler e escreve simultaneamente nomesmo ciclo de relógio.A unidade de processamento executa as diversas operações sobrevalores de 32 bits.

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 10/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Aspectos geraisEspecificação das instruçõesCaminho de dados genéricoConstrução do caminho de dados

Acesso a memória

A memória (externa) tem dois sinais de controlo (leitura e escrita);apenas um deles está activo num dado instante. A saída só temvalores válidos durante uma operação de leitura.A unidade de extensão de sinal produz um valor de 32 bits a partirde um de 16 bits.

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 11/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Aspectos geraisEspecificação das instruçõesCaminho de dados genéricoConstrução do caminho de dados

Avaliação de condições e saltosA ALU avalia a condição e um somador adicional é usado paracalcular o destino (branch target). O deslocamento (de 2 bits)apenas perde “bits de sinal” e permite aumentar a “distância” desalto.

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 12/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Aspectos geraisEspecificação das instruçõesCaminho de dados genéricoConstrução do caminho de dados

Caminho de dados simples

Este caminho de dados suporta todas as instruções básicas, comexcepção dos saltos incondicionais (instrução j).Qualquer instrução é implementada num ciclo de relógio.

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 13/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Unidade de controlo unicicloFuncionamento do caminho de dadosSaltos

Caminho de dados detalhado

Esta ilustração do caminho de dados inclui todos osmultiplexadores e linhas de controlo necessários.

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 14/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Unidade de controlo unicicloFuncionamento do caminho de dadosSaltos

Caminho de dados e unidade de controlo

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 15/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Unidade de controlo unicicloFuncionamento do caminho de dadosSaltos

Obtenção de uma instrução

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 16/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Unidade de controlo unicicloFuncionamento do caminho de dadosSaltos

Obtenção de operandos

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 17/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Unidade de controlo unicicloFuncionamento do caminho de dadosSaltos

Activação da ALU

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 18/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Unidade de controlo unicicloFuncionamento do caminho de dadosSaltos

Armazenamento do resultado

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 19/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Unidade de controlo unicicloFuncionamento do caminho de dadosSaltos

Acesso à memória de dados

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 20/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Unidade de controlo unicicloFuncionamento do caminho de dadosSaltos

Saltos condicionais

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 21/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Unidade de controlo unicicloFuncionamento do caminho de dadosSaltos

Saltos incondicionais

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 22/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Desempenho da implementação unicicloModificações do caminho de dadosExecução faseada de instruçõesUnidade de controlo baseada em máquinas de estados

Cenário 1

Assuma que as unidades funcionais têm os seguintes tempos deresposta:

I unidade de memória: 2 nsI ALU e somadores: 2 nsI banco de registos: 1 ns

Assuma que as outras unidades não introduzem atrasos.

Qual é o menor período de relógio para que o circuito funcionecorrectamente?

[8 ns]

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 23/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Desempenho da implementação unicicloModificações do caminho de dadosExecução faseada de instruçõesUnidade de controlo baseada em máquinas de estados

Cenário 2Assumindo os mesmos tempos de resposta que anteriormente,suponha agora que a duração do ciclo de relógio pode ser variadade acordo com a instrução a processar, de forma a que cadainstrução dure apenas o tempo necessário.Assuma a seguinte composição de instruções:

I loads: 24%I stores: 12%I instruções do tipo R: 44%I saltos condicionais: 18%I saltos: 2%

Qual é o menor período de relógio médio para que o circuitofuncione correctamente? [6,3 ns] melhoria de 1,27 vezes

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 24/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Desempenho da implementação unicicloModificações do caminho de dadosExecução faseada de instruçõesUnidade de controlo baseada em máquinas de estados

Problema central da implementação uniciclo

Numa implementação uniciclo, todas as instruções demoram omesmo tempo.O período do relógio é determinado pela instrução maisprolongada.⇒ Uma parte apreciável do desempenho é perdida.

Como resolver o problema?

Aumentar a “granularidade” temporal: Decompor a operação dopercurso de dados em várias secções mais curtas; cada instruçãotem pode ter um número diferente de secções.

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 25/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Desempenho da implementação unicicloModificações do caminho de dadosExecução faseada de instruçõesUnidade de controlo baseada em máquinas de estados

Caminho de dados multiciclo

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 26/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Desempenho da implementação unicicloModificações do caminho de dadosExecução faseada de instruçõesUnidade de controlo baseada em máquinas de estados

Caminho de dados multiciclo - detalhe

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 27/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Desempenho da implementação unicicloModificações do caminho de dadosExecução faseada de instruçõesUnidade de controlo baseada em máquinas de estados

Caminho de dados multiciclo completo

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 28/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Desempenho da implementação unicicloModificações do caminho de dadosExecução faseada de instruçõesUnidade de controlo baseada em máquinas de estados

Obtenção de instruções

Operações:

IR = Mem[PC];PC = PC + 4;

I Leitura:MemRead⇑, IRWrite⇑, IorD = 0 (PC é a fonte).

I Incrementar PC:ALUSrcA = 0, ALUSrcB=01, ALUOp=00, PCWrite⇑

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 29/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Desempenho da implementação unicicloModificações do caminho de dadosExecução faseada de instruçõesUnidade de controlo baseada em máquinas de estados

Descodificação de instruções e acesso a registos

Operações:

A = Reg[IR[25-21]];B = Reg[IR[20-16]];ALUOut = PC + (ext (IR[15-0]) << 2)

I Cálculo do “destino”:ALUSrcA=0, ALUSrcB=11, ALUOp=00

Nesta fase ainda não é “conhecida” a instrução: apenas sãoefectuadas operações que podem ser feitas para qualquer instruçãoou que não sejam “prejudiciais”.

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 30/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Desempenho da implementação unicicloModificações do caminho de dadosExecução faseada de instruçõesUnidade de controlo baseada em máquinas de estados

Execução...

Referência a memória: ALUOut = A + ext(IR[15-0]);

I ALUSrcA=1, ALUSrcB=10, ALUOp=00

Instrução do tipo R: ALUOut = A op B;

I ALUSrcA=1, ALUSrcB=00, ALUOp=10

Salto condicional: if (A == B) PC = ALUOut;

I ALUSrcA=1, ALUSrcB=00, ALUOp=01, PCCondWrite⇑,PCSource=01

Salto incondicional: PC = PC[31-28] || (IR[25-0] << 2)

I PCWrite⇑, PCSource=10

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 31/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Desempenho da implementação unicicloModificações do caminho de dadosExecução faseada de instruçõesUnidade de controlo baseada em máquinas de estados

Acesso a memória ou finalização

Escrita (store):Mem[ALUOut] = B;

I MemWrite⇑

Leitura (load):MDR = Mem[ALUOut];

I MemRead⇑, IOrD=1, MDR é alterado em qualquer ciclo derelógio

Instrução do tipo R:Reg[IR[15-11]] = ALUOut;

I RegDst=1, RegWrite⇑, MemtoReg=0

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 32/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Desempenho da implementação unicicloModificações do caminho de dadosExecução faseada de instruçõesUnidade de controlo baseada em máquinas de estados

Finalização de leitura

Finalmente. . . :

Leitura (load):Reg[IR[20-16]]=MDR;

I RegDst=0, RegWrite⇑, MemtoReg=1

Já está. . .

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 33/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Desempenho da implementação unicicloModificações do caminho de dadosExecução faseada de instruçõesUnidade de controlo baseada em máquinas de estados

CPI da implementação multiciclo

Assuma a distribuição de instruções seguinte:

I load: 22%I store: 11%I instruções de tipo R: 49%I saltos condicionais: 16%I saltos incondicionais: 2%

Qual é o CPI da implementação multiciclo? [4,04]

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 34/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Desempenho da implementação unicicloModificações do caminho de dadosExecução faseada de instruçõesUnidade de controlo baseada em máquinas de estados

Estrutura global da máquina de estados

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 35/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Desempenho da implementação unicicloModificações do caminho de dadosExecução faseada de instruçõesUnidade de controlo baseada em máquinas de estados

MEF: Obtenção e descodificação de instruções

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 36/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Desempenho da implementação unicicloModificações do caminho de dadosExecução faseada de instruçõesUnidade de controlo baseada em máquinas de estados

MEF: Referências a memória

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 37/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Desempenho da implementação unicicloModificações do caminho de dadosExecução faseada de instruçõesUnidade de controlo baseada em máquinas de estados

MEF: Completa

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 38/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Desempenho da implementação unicicloModificações do caminho de dadosExecução faseada de instruçõesUnidade de controlo baseada em máquinas de estados

MEF: Implementação

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 39/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Unidade de controlo microprogramadaFormato das micro-instruçõesImplementação do microprograma

Como simplificar a implementação da secção de controlo

Para um processador complexo, a MEF pode ter milhares deestados e ainda mais transições.

Alternativa: Considerar o conjunto de sinais de controlo que devemser activados em cada ciclo como uma micro-instrução a serexecutada pelo caminho de dados.

Executar uma micro-instrução = activar os sinais especificados

Também é necessário especificar a sequência das instruções.

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 40/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Unidade de controlo microprogramadaFormato das micro-instruçõesImplementação do microprograma

Campos das micro-instruções

Campo Função

Controlo ALU operação efectuada pela ALUSRC1 fonte do 1o perando da ALUSRC2 fonte do 2o operando da ALUControlo Reg leitura ou escrita dos registos e origem

de valor para escritaMemória leitura (e origem) ou escrita (e destino)Controlo PCWrite actualização do contadorSequenciamento modo de escolha da próxima micro-

instrução

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 41/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Unidade de controlo microprogramadaFormato das micro-instruçõesImplementação do microprograma

Valores legais dos campos da microinstrução

Campo Valores legais

Etiqueta string (dígito indica tabela de despacho)Controlo ALU add, sub, funcSRC1 PC , ASRC2 B, 4, xt, xtsh, readControlo Reg wr ALU (usa rd), wr MDR (usa rt)Memória rd PC, rd ALU, wr ALU (B tem dados)Controlo PCWrite ALU, cond (ver cond. ALU), endSequenciamento seq, Fetch, to i (i=1 ou 2)

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 42/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Unidade de controlo microprogramadaFormato das micro-instruçõesImplementação do microprograma

Microprogramação: Implementação

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 43/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Unidade de controlo microprogramadaFormato das micro-instruçõesImplementação do microprograma

Microprogramação: Sequenciador

MUX3 2 1 0

Estado

ROM 1 (despacho) ROM 2 (despacho)

1

+

PLA/ROM

0

Opcode

AddrCtl

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 44/45

OutlineCaminho de dados

Implementação unicicloImplementação multiciclo

Microprogramação

Unidade de controlo microprogramadaFormato das micro-instruçõesImplementação do microprograma

O microprograma

Etiq. Op. SRC1 SRC2 Reg. Mem PCWr Seq

Fetch add PC 4 rd PC ALU seq

Add PC xtsh read to 1

Mem1 add A xt to 2

LW2 rd ALU seq

wr MDR Fetch

SW2 wr ALU Fetch

RForm1 func A B Fetch

wr ALU Fetch

BEQ1 sub A B cond Fetch

JUMP1 end Fetch

c©JCF, 2004 — ASPD (FEUP/LEEC) Organização de Unidades de Processamento 45/45