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
Top Related