equalização de canais de comunicação baseada em redes...

37
EA869 Computadores Microprogramados Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. Levy Boccato 1

Upload: vutruc

Post on 09-Dec-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

EA869Computadores Microprogramados

Faculdade de Engenharia Eltrica e de Computao (FEEC)Universidade Estadual de Campinas (UNICAMP)

Prof. Levy Boccato 1

Introduo Controlador:

Circuito que sequencia a execuo das instrues de mquina, sendo responsvel por mover os dados atravs do hardware e acionar apropriadamente as unidades que vo processar a informao.

Como ele faz isto? Gerando todos os sinais de controle, tambm chamados de

microcomandos, nos instantes apropriados. Em uma implementao uniciclo, temos um circuito combinacional. Em uma implementao multiciclo, como vista no tpico anterior,

temos um circuito sequencial.

2

Introduo Uma abordagem direta para a construo do controlador consiste em

projetar o circuito sequencial que implementa todos os ciclos de execuo de uma instruo, desde a busca da instruo, seguindo para a decodificao, a leitura de operandos, etc.

3

Introduo Possveis desvantagens:

Processo mais complexo.

Teste e verificao do hardware so relativamente difceis.

Circuito inflexvel: difcil alter-lo caso uma nova instruo de mquina precise ser acrescentada.

Por outro lado, uma opo vivel considerando uma abordagem RISC.

4

Microprogramao Microprogramao: mtodo alternativo para gerar os sinais de

controle de maneira sistemtica e ordenada.

Ideia central: Uma memria de controle armazena sequncias de cdigos

binrios que disparam apropriadamente os sinais de controle que executam determinadas microoperaes.

Microprograma: sequncia de microinstrues cuja execuo corresponde a uma instruo de mquina. Para cada instruo de mquina, h um microprograma especfico que

indica todas as microoperaes necessrias para sua execuo. Executar um microprograma, portanto, tem o mesmo efeito que

executar uma instruo de mquina.

5

Microprogramao Podemos enxergar a microprogramao como uma nova aplicao

da ideia de programa armazenado, mas agora dentro do prprio controlador:

6

Processador Memria

Instruo

Operao realizada: ADD, SUB, MOV, etc.

A ao que o processador ir realizar determinada a partir da leitura de uma instruo de mquina, a qual est armazenada em sua memria interna.

CLSSICO

Microprogramao Podemos enxergar a microprogramao como uma nova aplicao

da ideia de programa armazenado, mas agora dentro do prprio controlador:

7

Controlador Micromemria

Microinstruo

Sada: sinais de controle que devem ser ativados

A ao que o controlador ir realizar determinada a partir da leitura de uma microinstruo, a qual est armazenada em sua memria interna.

MICROPROGRAMAO

Microprogramao - Firmware A linguagem de programao dentro do controlador ainda mais

elementar que a simblica.

Firmware: ponte entre hardware e software.

mais fcil projetar um firmware do que um hardware.

mais difcil escrever um microprograma (firmware) do que um programa em linguagem de alto nvel (software).

8

Microprogramao Equivalncia de conceitos:

9

Instruo em linguagem simblica

Microprograma Microinstruo Microoperao Sinais de controle

Uma instruo de mquina

Um microprograma

1 REM (PC) TPC

2RI ((REM)) E, ReadMem, TB

PC (PC )+ 1 IPC

3

Microprogramao

10

ADD R1, R3SUB R1 , R5B label

ALGORITMO

PROGRAMA

Instruo Assembly

Lida pelo Controlador microprogramado...

...e executada por um microprograma...

...composto por microinstrues.

Domnio do usurio Domnio do firmware/hardware

Cada microinstruo um conjunto de sinais de controle.

Microprogramao Proposta original: Wilkes (1951)

11

Microprogramao Proposta original: Wilkes (1951)

Inicialmente, o opcode mapeado em um endereo da matriz de controle e carregado no respectivo registrador.

O decodificador de endereos interpreta o opcode e seleciona uma linha horizontal (microinstruo).

As linhas verticais que interceptam a linha horizontal ativada (indicadas por ) tambm so acionadas, tanto na matriz de controle quanto na matriz de sequenciamento.

As sadas da matriz de controle ativam um subconjunto de microcomandos.

As sadas da matriz de sequenciamento preparam o endereo da prxima microinstruo (aps a unidade de atraso).

12

Microprogramao Proposta original: Wilkes (1951)

O desvio condicional na organizao de Wilkes pode ser feito atravs da subdiviso da linha horizontal.

Dependendo do contedo de um flip-flop de condio, uma das linhas ser selecionada.

13

Microprogramao Estrutura da unidade de controle microprogramada:

14

Microprogramao O modus operandi de um computador microprogramado idntico ao

de um computador convencional, exceto pelo funcionamento da unidade de controle:

1. Busca da instruo: o opcode transferido para o controlador.

2. (Convencional) O opcode decodificado e, assim, ativa-se uma sequncia de estados especfica para a execuo da instruo.

2. (Microprogramado) O opcode mapeado em um endereo da memria de controle. A respectiva posio da memria de controle acessada, dando incio execuo do microprograma associado quela instruo de mquina.

15

Microprogramao

16

Controlador

RI

Microcomandos

Vamos ento exemplificar passo a passo a execuo de uma instruo...

ULAULA

MICROMEMRIA

MPC

MIR

DECOD.

ADD R1 R2

1. Instruo carregada em RI.

ADD R1 R2

2. Controlador l o CO e o decodifica para identificar o microendereo.

25

3. Microendereo enviado ao MPC.4. Microinstruo enviada MIR.

101...110

5. Microcomandos so acionados sequencialmente.

6. Terminada a execuo da microinstruo, a mesma passa ao decodificador um sinal, o qual calcula o endereo da prxima microinstruo a ser executada, repetindo este ciclo at o trmino da execuo da instruo de mquina.

Microinstrues Microoperaes podem ser executadas em um nico ciclo de relgio

por meio do acionamento de um conjunto de sinais de controle (microcomandos).

Uma microinstruo prev a ativao de um conjunto de microcomandos que implementam algumas microoperaes.

Existem algumas formas de representao dos microcomandos nas microinstrues.

17

Microinstrues Microinstruo horizontal:

Na microinstruo, h a especificao de todas as possveis microoperaes da mquina, associando um bit a cada sinal de controle existente.

Cuidado: algumas combinaes de microoperaes so invlidas, i.e., no podem ser realizadas dentro do mesmo ciclo de relgio. Exemplo: transferir o contedo de dois registradores diferentes

para o mesmo barramento.

18

Microinstrues Exemplo:

Unidade lgico-aritmtica: implementa 8 operaes distintas. 16 registradores de 8 bits. 3 barramentos de 8 bits.

19

Microinstrues Exemplo:

Microoperaes:

Transferncia do contedo de um registrador para o barramento A 16 microcomandos, cada um referenciando um dos 16 registradores.

Transferncia do contedo de um registrador para o barramento B 16 microcomandos, cada um referenciando um dos 16 registradores.

Seleo da operao da ALU 8 microcomandos, cada um referenciando uma das 8 operaes permitidas para a ALU.

Transferncia do contedo do barramento C para um registrador 16 microcomandos, cada um referenciando um dos 16 registradores.

20

Microinstrues Exemplo:

Microinstruo horizontal:

Instruo: ADD R2, R3, R4 R4 (R2) + (R3) Dois ciclos de relgio duas microinstrues

21

Sel. ALU A Regi B Regi Regi C

8 bits 16 bits 16 bits 16 bits

00000001 0000000000000100 0000000000001000 0000000000000000

00000000 0000000000000000 0000000000000000 0000000000010000

ADD TAR2 TBR3

TCR4

Microinstrues Microinstruo horizontal:

Vantagens: Maior eficincia na utilizao dos recursos de hardware ao

explorar o paralelismo das microoperaes.

Desvantagens: Desperdcio de memria de controle: apenas alguns sinais de

controle so utilizados em cada microinstruo. Dificuldade de programao em funo da grande quantidade

de bits que controlam os sinais de controle.

22

Microinstrues Microinstruo vertical:

Cada microinstruo especifica uma nica microoperao a ser executada.

Vantagens: Todos os campos da microinstruo so teis para identificar a

microoperao. Simplicidade do formato facilita a preparao das microinstrues.

Desvantagens: Gera microprogramas mais longos, com maior tempo de execuo. No explora o potencial paralelismo de algumas microoperaes.

23

Microinstrues Exemplo:

Microinstrues verticais:

24

Sel. A Regi2 bits 16 bits

Sel. B Regi2 bits 16 bits

Sel. C Regi2 bits 16 bits

Sel. ALU Sem uso

2 bits 8 bits

Operao

A (Regi)

B (Regi )

Regi (C)

Seleciona a operao da ALU

Microinstrues Exemplo:

Microinstrues verticais:

necessrio acrescentar um campo Cdigo da Microoperao (CO), equivalente ao opcode de instrues de mquina, para identificar a microoperao a ser executada pela microinstruo.

Um bit da microinstruo pode controlar mais de um microcomando (multiplexagem de microcomandos), acionando microoperaes que nunca so executadas ao mesmo tempo. Isto exige um hardware adicional para acionar o microcomando apropriado.

25

Microinstrues Exemplo:

Microinstrues verticais:

26

00 0000000000000100

2 bits TAR2

01 0000000000001000

2 bits TBR3

11 0000000000010000

2 bits TCR4

10 Sem uso

2 bits ADD

00000001

A (R2)

B (R3)

R4 (C)

Seleciona a operao ADD

Microinstrues Microinstruo diagonal:

Soluo de compromisso entre as opes horizontal e vertical.

Alguns microcomandos so associados a bits de uma microinstruo individualmente como na configurao horizontal e outros a um conjunto de bits como na configurao vertical.

Esta estratgia permite um certo grau de paralelismo na execuo de microoperaes sem o inconveniente de uma microinstruo muito longa.

27

Microinstrues Codificao de microinstruo:

O princpio explorado no caso da microinstruo vertical pode ser estendido para os demais campos, lembrando sempre que ser necessrio acrescentar hardware adicional para a decodificao.

Exemplo: em vez de usar 16 bits, um para cada registrador, poderamos codificar este campo usando somente 4 bits. No entanto, uma etapa adicional de decodificao para gerar um sinal de

controle especfico para cada registrador seria necessria.

28

Exemplo

29

Controlador

Microcomandos

ULAULA

MICROMEMRIA

MPC

MIR

DECOD.

C.O.

Vamos supor que desejemos executar a instruo ADD end do processador EA869 projetado durante o estudo de arquitetura de computadores.

O controlador necessita acionar, sequencialmente, os seguintes sinais de controle:

Lembrando que uma instruo nada mais do que uma sequncia de bits, como poderamos criar uma microinstruo para acionar estes comandos?

TRIE, RTRB, WTRT, REWE

12345

Exemplo

30

Controlador

Microcomandos

ULAULA

MICROMEMRIA

MPC

MIR

DECOD.

C.O.

TRIE, RTRB, WTRT, REWE

12345

Microinstruo HorizontalTRI TB TRB WT RT CT IT ... RE WE

Ideia: associar cada bit da microinstruo diretamente a um sinal de controle. Assim, um bit 1 indica que o SC faz parte daquela microoperao, enquanto o 0 serve

para indicar que ele no deve ser ativado. O processador EA869 possui 19 sinais de controle. Desta forma, as palavras da nossa

microinstruo devem ter pelo menos 19 bits.

Exemplo

31

Consideremos agora que o processador EA869 tenha um controlador microprogramado onde cada bit da microinstruo refere-se a um sinal de controle (microinstruo horizontal).

TRI IPC TBR E R IPC TRB WT TB RA RT WA RE WE I C Z

TRIE, RTRB, WTRT, REWE

12345

O que precisamos para executar a instruo ADD end?

Uma soluo configurar todos os sinais de controle na microinstruo.

1 0 0 1 1 0 1 1 0 0 1 0 1 1 0 0 0

Qual o problema

dessa soluo?

Qual o problema

dessa soluo?

Todos os sinais de controle sero acionados no mesmo ciclo de relgio!

SoluesSoluesUsar uma microinstruo para cada conjunto de SCs acionados no mesmo ciclo de relgio.

Soluo ruim: uso excessivo de memria

Dividir a microinstruo em fases, onde cada fase refere-se a um ciclo de relgio diferente.

FASE 1 FASE 2 FASE 3 FASE 4 FASE 5

Desta forma conseguimos executar um conjunto de microoperaes com poucas microinstrues!

MICROINSTRUO POLIFSICA

REM (RI.end) RDM ((REM)) TMP (RDM) (ACC) + (TMP) ACC ( )

Microinstrues Microinstruo polifsica: o ciclo de execuo da microinstruo se

divide em vrias fases.

A execuo de microoperaes no-paralelas sequencial.

Em cada fase, porm, algumas microoperaes podem ser executadas simultaneamente.

Duas categorias: Sncronas: o nmero de fases o mesmo para todas as microinstrues. Ou

seja, o tempo de execuo de cada microinstruo igual. Assncronas: o nmero de fases pode variar conforme a microinstruo.

32

Microinstrues Exemplo: busca de instruo

Microoperaes Sinais de controle1. REM (PC) TPC2. RDM ((REM)) E, R/W, WRDM3. PC (PC) + 1 IPC4. RI (RDM) RRDM, WRI

Microinstruo horizontal representao:

33

2 3 4 5 6 71

TPC E R/W

WRDMIPC RRDM WRI

Microinstrues Exemplo: busca de instruo

Microoperaes Sinais de controle1. REM (PC) TPC2. RDM ((REM)) E, R/W, WRDM3. PC (PC) + 1 IPC4. RI (RDM) RRDM, WRI

Microinstruo horizontal monofsica:

34

0 0 0 0 0 01

1 1 1 1 0 00

0 0 0 0 1 10

1

2 e 3

4

Microinstrues Exemplo: busca de instruo

Microoperaes Sinais de controle1. REM (PC) TPC2. RDM ((REM)) E, R/W, WRDM3. PC (PC) + 1 IPC4. RI (RDM) RRDM, WRI

Microinstruo horizontal polifsica:

Fase 1: bit 1 Fase 2: bits 2 a 5 Fase 3: bits 6 a 7

35

1 1 1 1 1 11 Fase 1

Fase 2Fase 3

Exemplo

36

Encontramos, assim, uma implementao eficiente, conhecida como microinstruo horizontal (cada bit refere-se a um SC) e polifsica (execuo da microinstruo dividida em fases do relgio).

SC1 SC2 SC3 SC4 SC5 SC6 SC7 SC8 ... SCP

FASE 1 FASE 2 FASE 3 ... FASE X Falta agora acertarmos um ltimo detalhe:

Ao terminar a execuo de uma microinstruo, qual ser a prxima microinstruo a ser executada? Como inform-la ao controlador?

Ao terminar a execuo de uma microinstruo, duas opes so possveis:

1. Executar a prxima microinstruo:

2. Desviar para outra rea da micromemria:

MPC (MPC) + 1

MPC end

Como? Atravs de um bit Desvio/Incrementa

D/I

D/I

0: indica que, aps a execuo dos SCs, MPC deve ser incrementado. MPC (MPC) + 1

1: SCs so desativados e a microinstruo lida como um endereo, o qual carregado em MPC.MPC end

Crditos

37

Este material est baseado nas notas de aula elaboradas pelo Prof. Lo Pini e pelo aluno de doutorado Tiago Novaes.

EA869 Computadores MicroprogramadosIntroduoIntroduoIntroduoMicroprogramaoMicroprogramaoMicroprogramaoMicroprogramao - FirmwareMicroprogramaoMicroprogramaoMicroprogramaoMicroprogramaoMicroprogramaoMicroprogramaoMicroprogramaoMicroprogramaoMicroinstruesMicroinstruesMicroinstruesMicroinstruesMicroinstruesMicroinstruesMicroinstruesMicroinstruesMicroinstruesMicroinstruesMicroinstruesMicroinstruesExemploExemploExemploMicroinstruesMicroinstruesMicroinstruesMicroinstruesExemploCrditos