Você está na página 1de 21

UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA

LOURIVAL OLIVEIRA DA SILVA

Projeto de Microprocessador Digital

Feira de Santana, 19 de Julho de 2004

UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA

LOURIVAL OLIVEIRA DA SILVA

Projeto de Microprocessador

Relatrio do Problema de Projeto de Microprocessador Digital apresentado para avaliao e da Disciplina de de Arquitetura Organizao

Computadores do 2. semestre, do Curso de Engenharia de Computao, da Universidade Estadual de Feira de Santana sob orientao do Prof. Dr. Mrcio.

Feira de Santana, 19 de Julho de 2004

Sumrio
Introduo................................................................................................................................4 O Processador..........................................................................................................................5 Programao....................................................................................................................... 5 As Instrues..................................................................................................................5 Arquitetura do processador.................................................................................................6 Registradores................................................................................................................. 7 Contador de Programa................................................................................................... 7 Acumulador................................................................................................................... 8 Registrador de Dados da Memria................................................................................ 8 Registrador de Endereo de Memria............................................................................8 A Unidade Aritmtica Lgica........................................................................................ 8 Implementao das ULA de 1 bit..............................................................................9 Soma.....................................................................................................................9 OR...................................................................................................................... 10 AND................................................................................................................... 10 NOT....................................................................................................................10 Flags de resultado (Z e N)....................................................................................... 10 Caminho de Dados (Data Path)................................................................................... 10 A Memria RAM.........................................................................................................11 Unidade de Controle (UC)........................................................................................... 11 Busca....................................................................................................................... 11 Decodificao..........................................................................................................11 Execuo................................................................................................................. 12 Micro-Operaes.....................................................................................................12 Micro-instrues..................................................................................................... 12 Implementao........................................................................................................ 13 Lista das Micro-instrues................................................................................. 13 Funes matemticas..................................................................................... 15 Funes Load e Store.....................................................................................15 Funes de Desvio.........................................................................................15 Funes do Sistema....................................................................................... 16 Concluso.............................................................................................................................. 17 Referncias Bibliogrficas.................................................................................................... 18 Anexo I.................................................................................................................................. 19 Anexo II.................................................................................................................................20

Introduo
Discutir o projeto e a implementao de um microprocessador programavl o intuito deste trabalho. O tema ser tratado de uma forma mais abstrata no comeo, discutindo sobre o que o processador deve fazer, e as consideraes que foram feitas nas tomadas de decises que levaram arquitetura proposta, ao longo do texto procurou-se explanar cada detalhe desta arquitetura, definindose a funo de cada componente empregado e os caminhos de dados que os interligam. Ser abordada a implementao de cada registrador, tanto o de propsito geral (AC), como os de propsito espcifico com RDM, e REM. Depois ser apresentada a implementao da ULA, com seus sub-componentes e cdigo de controle. Por fim o trabalho busca esclarecer a implementao da Unidade de Controle, detalhando as consideraes feitas para definio e gerao das microinstrues implementadas, tanto para o processo de busca como tambm para decodificao e execuo de cada funo proposta.

O Processador
O projeto de microprocessador proposto apresenta as caracteristicas bsicas dos processadores de propsito geral. As suas instrues operam sobre 8 bits de dados, sendo capaz de enderear 1024B de dados, a memria e compartilhados entre os dados e as instrues do sistema. O diagrama de blocos abaixo proporciona uma viso geral das partes que compem o sistema.

PC REM RDM AC

Mux

1KB RAM
resultado z N

ALU 10 bits

RI UC

Programao
Um computador de propsito geral deve ser capaz de executar diferentes sequncias de instrues. Para tal estas instrues so lidas de algum tipo de memria no voltil e carregadas na memria para que ento possam ser executadas pelo processador, sendo assim para que tais comandos possam ser processados eles devem seguir as normas da arquitetura interna do processador, que neste exemplo foi definida como segue.

As Instrues
Cada instruo composta por 16 bits onde os 4 primeiros guardam o cdigo da operao, e os prximos dez bits indicam o endereo de memria do operando. Apesar de algumas funes como NOP 5

e HLT no possuirem operandos seus tamanhos foram mantidos em 16 bits para respeitar a uniformidade das instrues, pois fica mais fcil trabalhar com instrues uniformes, assim dispensa-se a implementao de diferentes instrues de busca, esta mesma observao justifica o fato das intrues terem 16 bits e no os 14 realmente nescessrios, este arranjo se justifica pelo fato das memrias trabalharem com palavras de 1 byte, mantendo-se as instrues em 16 bits facilitou a leitura da instruo na memria. Os 16 bits de cada instruo na memria so ocupados de acordo a seguinte conveo: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Cdigo da Operao

Reservado

Endereo de memria do operando

O cdigo de cada operao foi definido de acordo com a tabela abaixo, observe que os bits dos cdigos das instrues ADD, OR, AND e NOT, LDA coincidem com os valores utilizados para controlar a ALU exibidos mais adiante, assim nestas operaes basta copiar este bits para entrada de controle de operao da ALU simplificando assim o projeto da UC que ser detalhado no final deste trabalho:
OPCod Inst 23 22 21 20 B STA LDA ADD OR NOT AND JMP JN JZ NOP HLT 0 1 1 1 1 1 0 0 1 1 0 A 1 0 1 1 1 1 0 1 0 0 0 F1 F0 0 1 1 1 0 0 0 0 0 0 0 Hx

1 Operando

2 Operando
Acumulador Acumulador Acumulador Acumulador Acumulador Acumulador -

Saida Para
Memria Acumulador Acumulador Acumulador Acumulador Acumulador PC PC PC -

Classe
Mem Mem Mat Mat Mat Mat Desvio Desvio Desvio Sistema Sistema

1 0A Endereo de Destino 1 0B Endereo de Origem 1 0F Endereo de Origem 0 0E Endereo de Origem 1 0D 0 0C Endereo de Origem 1 01 Endereo de Memria

1 05 Endereo de Memria Reg.Status N 1 09 Endereo de Memria Reg.Status Z 0 08 0 00 -

Arquitetura do processador
A nivl de hardware este projeto segue a arquitetura proposta nas literaturas, que distinguem um conjunto bsico de componentes para um processador, sendo estes os seguintes: Contador de Programa, Acumulador, Registrador de Dados da Memria, Registrador de Endereo de Memria, Unidade Aritmtica Lgica, Registradores de Estado, Unidade de Controle

Cada uma destas partes tem funes bem definidas e so ativadas de forma bem controlada pela Unidade de Controle durante a busca e execuo de cada instruo. As sees seguintes visam detalhar cada uma destas partes que compe o projeto proposto.

Registradores
Registradores so as unidades bsicas de armazenamento do processador, neste projeto h somente um registrador de uso geral AC, e outros dois de propsito especifico RDM de 8 bits e REM de 10 bits, a implementao de ambos segue o mesmo principio, um conjunto de Flip-Flops tipo D com o sinal de clock associado, para que seja realizada a escrita simultnea de todos os Flip-Flops, o valor a ser escrito aquele que estiver presente na entrada P0 a P7 durante a transio positiva de clock como definido para este tipo de componente, a figura abaixo expe a implementao de um registrador:
RD-Dados RD
P0 P1 P2 P3 P4 P5 P6 P7 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7

G2-Corp.Inc.
CLK

U1
D CP Q _ Q D

U2
CP Q _ Q D

U3
CP Q _ Q D

U4
CP Q _ Q D

U5
CP Q _ Q D

U6
CP Q _ Q D

U7
CP Q _ Q D

U8
CP Q _ Q

Contador de Programa (PC)


Este um registrador de propsito espcifico ele responsavl por armazenar o endereo da prxima instruo a ser executada no processador, por representar endereos de memria este registrador possui dez bits de capacidade, isto o habilita a enderear os 1024 bytes de dados da memria do sistema. O valor de PC incrementado duas vezes durante cada ciclo de execuo, a primeira incrementao ocorre aps a leitura da operaa da memra, ento o operando copiado da memra e o PC incrementado uma segunda vez, assim seu valor passa a apontar para o endereo da prxima instruo a ser executada. Alm da modificao por incrementao o endereo de PC pode ser alterado pelas instrues desvio (jz, jn, jmp) que definem um novo valor para este registrador efetuando assim desvios na execuo do programa. Para facilitar a sua incrementao o PC implementado como um conjunto de contadores JK assincronos, assim a incrementao feita por um simples pulso de clock na entrada CLK incrementando assim os contadores, j nas operaes de desvio as portas presets so usadas para definir o valor do contador, porm antes que as portas porsets sejam escritas o contador e zerado, para garantir que a limpeza dos contadores ocorram antes da execuo dos presets um bloco de atraso foi 7

adicionado, assim o pulso de clock alcana primeiro o reset depois o presets que compiam as entradas Pn para os contadores. A implementao completa deste circuito pode ser observada no Anexo II deste trabalho. Este o nico registrador que no segue a implementao do registrador demostrado anteriormente.

Acumulador (AC)
Por possuir somente um registrador de prposito geral este registrador nomeado de acumulador, pois seu papel resume em armazenar o resultado das operaes da ALU. Este registrador armazena 8 bits de dados, e o operando das instruos executadas no processador, seu valor modificado quando da execuo das instrues. Sua implementao se resume a um conjunto de FlipFlops do Tipo D com a porta de escrita controla da pela UC, seguindo o mesmo principio do registrador mencionado anteriormente.

Registrador de Dados da Memria (RDM)


Este registrador ligado memria do sistema, e garda o valor do endereo de memria endereado por REM ou por PC durante a busca. O tamanho deste registrador se limita a 8 bits, sendo este o maior bloco que se pode ler da memria do sistema a cada ciclo de execuo. Sua implementao segue o mesmo modelo dos registradores de uso geral.

Registrador de Endereo de Memria (REM)


Este o registrador de endereo de memria, para enderear os 1024B de memria este registrador possui dez bits de dados (210), que endeream blocos de 8 bits de memria que sero copiados para o RDM. Este registrador possui uma ligao com o PC para que nas operaes de desvio seu valor seja inserido diretamente em PC, quando da ocorrncia do desvio se conmfirmar (JN, JZ) ou se este for incondicional (JMP). Vale obervar que por possui dez bits de dados o valor deste processador definido como os dois ltimos bits do primero byte lido, combinado com os segundo byte que representa a instruo.

A Unidade Aritmtica Lgica (ALU)


A ULA do sistema foi-se implementada atravs da associao de 8 ULAs de 1bit cada, que implementam as funes bsicas de SOMA, OR, AND e NOT binrios. Alm disto a ULA adiciona algumas portas para habilitao/desabilitao das entradas A e/ou B, assim como sinais de controles que definem qual operao ser executada, internamente estas entradas so utilizadas para controlar as ULAs de 1 bit, sendo os sinais de controle repassados para definir a operao a ser executada. A sada de cada ULA ligada sada da ULA de 8 bits respeitando a correspondncia entre os bits tanto nas entradas quanto na sada das ULAs de 1 bit, alm do resultado da operao a ULA retorna duas flags estado Z e N que indicam respectivamente se um resultado da operao Zero ou se o valor retornado um nmero negativo. Admitindo a possibilitade de expanso foram adicionadas as entrada Carry In e Carry Out na ULA, para que esta possa ser associada a outra ULA configurando assim uma ULA de 16 bits ou mais.

B0 B1 B2

U6B U6A U5D U5C U5B U5A F1 F0


B A F1 F0

A0 A1 A2

ENB

ENA U1
B A F1 F0

U2
F1 F0 B A

U3

Corp. Inc. G2 S ULA

Corp. Inc. G2 S ULA

Corp. Inc. G2 ULA

ULA-1bit

ULA-1bit

cout

U4A Z

cin

cin

Na tabela ao lado pode-se conferir o cdigo de cada operao implementada na ULA. Vale ressaltar que a operao NOT unria e atua sobre a entrada A, sendo todas as demais operaes binrias. A figura acima explicita uma verso reduzida da ULA com capacidade de efetuar clculos de 3 bits, a ULA implementada aqui se resume to somente expanso do modelo acima para 8 bits.

S2

S1

Instruo AND NOT OR ADD

S0

ULA-1bit

cout

cout

cin

F0 0 1 0 1

F1 0 0 1 1

Tabela 1Cdigo das operaes da ALU

Implementao das ULA de 1 bit A ULA de um bit implemetada pela associao de uma somador completo, e circuitos de OR, NOT e AND que so acionados de acordo com o cdigo de operao definidos por F0 e F1, cada uma das quatro combinaes possivis aciona uma das portas AND que filtram o resultado de cada operao de acordo com a tabela apresentada acima. Para que diversas ULAs possa ser associadas cada uma delas possuem um Carry-In e um Carry-Out atravs destas portas possivl se combinar um nmero arbitrrio destes elemento para formar uma ULA com capacidade para manipular nmeros maiores.

Soma
A operao de soma implementada internamente na ALU, atravs de um conjunto de somadores completos, a sada do Carrie-Out do bit mais significativo utilizado para indicar se o nmero resultante positivo ou negativo.

OR
Esta operao de fcil implementao, pois possui componentes digitais que as implementam diretamente.

AND
A funo AND realizada utilizando-se a porta lgica bsica que a implementa. NOT Neste projeto a operao NOT se resume inverso dos valores dos bits da entrada A da ALU, assim sua implementao direta.
ULA-1bit
cin A B F0 F1

ULA S G2 Corp. Inc.


cout

U8A

cin S

A F0 F1

cout

Flags de resultado (Z e N)
Cada operao executada na ALU alm do seu resultado definem o resultado de dois flags neste projeto: N e Z, que indicam se o resultado da ltima operao foi um nmero negativo (acionando N), ou se foi o nmero zero (acionando Z). Estes resultados so usados como condicionais nas intrues de desvio JZ e JN e so copiados para UC para que sejam preservados entre as operaes.

Caminho de Dados (Data Path)


Os componentes do sistema precisam de vias especiais para transmisso dos sinais, estas vias so constituidas de conjuntos de fios que interconectam os dispositivos, no diagrama apresentado no inicio deste trabalho estas vias so representadas pelas setas que ligam os dispositivos.

10

A Memria RAM
A memria do sistema possui capacidade para 1024 bytes, este S espao compartilhado entre as instrues e os dados, sua D Q _ implementao foge ao escopo deste trabalho sendo resumido aqui CP R Q somente os sinais de controle utilizados para sua manipulao. H neste mdulo 10 vias para definir o endereo que est sendo 1K RAM A9 CS WE acessado (A0-A9), na face oposta se encontram as oito vias que so A8 IO7 A7 utilizadas para leitura/escrita do/no byte endereado (IO0-IO7), a A6 IO6 A5 IO5 operao a ser executada definida atravs de duas outras portas (CS e A4 IO4 A3 IO3 WE), a primeira entrada CS deve ser mantida em zero para que as A2 IO2 A1 IO1 A0 IO0 operaes de leitura escrita possam ser executadas, a segunda entrada WE alterna entre leitura (1) e escrita (0). Devido a um certo atraso no estabelacimento do sinal RWM (explicado posteriormente), o arranjo ao lado foi adicionado para que CS fique e 1 at que o sina de RWM fique estavl isto evita que a primeira instruo seja apagada durante a incializao do sistema.

Unidade de Controle (UC)


A Unidade de Controle a parte do processador responsavl por gerar as microinstrues de cada operao implementada, da responsabilidade deste circuito sequnciar as microinstrues nescessrias executao da instruo. A execuo de cada operao segue um ciclo definido como Busca, Decodificao e Execuo.

Busca
O processo de busca consiste na recuperao da prxima instruo a ser executada na memria, a partir destes dados a Unidade de Controle define o que fazer dos dados. Devido uniformidade das funes o processo de busca um s para todas as operaes. Isto levou a certa anomalias como a leitura de um operando fantasma para as funes que no possuem um, em contrapartida as microinstrues ficaram bastante reduzidas.

Decodificao
O processo de decodificao consiste na verificao do cdigo de operao para determinar qual instruo est sendo executada, assim como o significado do seu operando, se este ser utilizado para ler/escrever na memria, ou se deve ser silenciosamente descartado o operando da operao corrente, como em uma instruo NOP ou HLT. Neste projeto o cdigo de operao copiado para o RI durante o processo de decodificao. Outro ponto que vale ressaltar que os bits mais significativos do 1 byte da operao so copiados para dois Flip-Flops tipo D, para que no prximo ciclo seja estes dois bits sejam combinados com o segundo byte da operao para que o endereo do operando seja recomposto para os seus 10 bits originais, isso faz com que o endereo de 10 bits do operando seja lido em duas partes, permitindo assim utilizar os dez bits de endereamentos nescessrios para acessar os 1024B de RAM do sistema.

11

LER/ESCR

Execuo
Depois que os dados nescessrios operao esto carregados o prximo passo consiste na execuo prpriamente dita da instruo espcificada, esta operao feita atravs da execuo ordenada das microinstrues definidas para a operao corrente. Esta sequncia de microinstrues foi-se de tal forma reduzida que optei por utilizar circuitos combinacionais para gerar a sequncia de microoperaes a serem executadas a partir do valor do OPCode da instruo corrente.

Micro-Operaes
Micro operaes so as operaes funcionais ou atmicas de um processador, para execuo de cada operao se executado um conjunto de micro-operaes previamente definidas pela UC.

Micro-instrues
Micro-instrues so os sinais de controle gerados pela UC para acionar os diversos componentes do sistema, permitindo assim a implementao de cada instruo, a gerao destas microinstrues podem ser feitas tanto atravs da leitura de dados gravados em ROM, quanto atravs de circuitos combinacionais, a implementao proposta para este trabalho usa um misto entre memrais ROM e circuitos combinacionais, para gerar tais sinais (12 externos UC, e 1 de controle de estado da UC). Para facilitar a discusso da implementao da UC e suas micro-instrues adotou-se uma nomeclatura para permitir identificar cada um dos 13 sinais utilizados. Os sinais de controle gerados pela UC neste projeto foram nomeados como segue abaixo: PC Indica o acionamento da porta CLK do contador de programa, o que implica o incremento do valor deste registrador; REM Representa a porta de escrita do registrador de mesmo nome, que acionada na transio positiva do clock; RDM Representa a porta de escrita do registrador de mesmo nome, que acionada na transio positiva do clock; RI Est associada porta de escrita de mesmo nome, bem como, porta de escrita dos dois Flip-Flops que iro guardar os dois ltimos bites do primeiro byte da instruo; JMP Este sinal foi ligado porta JMP do PC, seu acionamento redefine o valor do registrador PC, para o valor das entradas deste registrador; MRW Alterna entre o modo de escrita e leitura da memria do sistema, simultneamente ele desabilita ou reabilita a ligao entre o registrador AC e a memria; MXE Utilizado para controlar o MUX que alterna a entrada do endereo de memria entre o valor dos registradores PC e REM; AC Ativa a porta de escrita do registrador AC; AEN Ativa a entrada A da ULA, que esta ligada a registrador AC; BEN Ativa a entrada B da ULA, que esta ligada ao registrador RDM; F0 e F1 Define a funo a ser executada pela ULA segundo a tabela apresentada; FIM Comando interno da UC que define o fim de cada estado, utilizado para alternar entre a busca e execuo de cada instruo.

12

Implementao
A Unidade de Controle implementada como uma mquina de estado, onde h dois estados possivis: Busca e Decodificao representa o primeiro estado, e, Execuo representa o segundo. Cada estado deve executar sua tarefa e ento alterar o estado da mquina sinalizando que sua execuo terminou atravs de um pulso de clock aplicado ao sinal de FIM, no caso da busca este ciclo nico, porm para cada operao a Execuo pode levar a diferentes comportamento de acordo com o OPCODE vigente. A figura abaixo identifica os principais blocos do sistema. Os blocos de atraso so nescessrios para impedir que a transio de estado ocorra antes que o sinal de controle se estabilize fora da UC. Vale esclarecer que o sinal de clock (CLK) alternado entre o bloco de decodificao e o bloco de execuo sendo assim o sinal de CLK mostrado nas tabelas de micro-operaes so esto ativos para um dos blocos.

Gerador de Sequncia
Data 8 Seq 7
6 5 4 3 2 1

AC RD REM RI PC JMP MXE MXA MXD MRW UZ UN

Ri0 Ri1 Ri2 Ri3

CP D

Q _ Q Q _ Q

UC G2 Corp. I

CP

CP1 CP2

Acionamento do AC

ALUB ALUA ALU1 ALU0

CLK

0V

Registrador de estado

J CP K

Funes de Desvio
Q _ Q

Funo NOP Funo STA Blocos de Atraso


Lista das Micro-instrues As tabelas abaixo exprimem as micro-instrues geradas durante a sequncia de busca e execuo das operaes, A primeria tabela detalha o processo de busca, sendo que todas as operaes deste processador seguem este roteiro idependente de ter ou no um segundo operando.

13

# PC REM RDM RI JMP MRW MXE AEN AC BEN F0 F1 FIM

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

2 1 0 0 1 0 1 0 0 0 0 0 0 0

3 0 0 0 0 0 1 0 0 0 0 0 0 0

4 0 0 1 0 0 1 0 0 0 0 0 0 0

5 0 0 0 0 0 1 1 0 0 0 0 0 0

6 0 1 0 0 0 1 1 0 0 0 0 0 0

7 1 0 0 0 0 1 1 0 0 0 0 0 0

8 0 0 1 0 0 1 1 0 0 0 0 0 1

9 0 0 0 0 0 1 1 0 0 0 0 0 0

Os campos em cinza indicam que estes valores no so alterados durante a sequncia de busca e decodificao. Abaixo podemos observar a micro-instruo gerada por cada operao, observe que as microinstrues da ULA correspondem ao cdigo de operao vigente, observe tambm que os valores definidos no final do processo de busca e decodificao continuam constantes durante o processo de execuo, e s sero alterados quando o ciclo de busca recomear, a funo HLT a nica que no aciona o FIM pois ela prossegue indefinidamente, impedindo que a prxima intruo possa ser executada.
ADD PC REM RDM RI JMP MRW MXE BEN AEN F1 F0 AC FIM 0 0 0 0 0 1 1 1 1 1 1 CLK CLK OR 0 0 0 0 0 1 1 1 1 1 0 CLK CLK AND 0 0 0 0 0 1 1 1 1 0 0 CLK CLK NOT 0 0 0 0 0 1 1 1 1 0 1 CLK CLK LDA 0 0 0 0 0 1 1 1 0 1 1 CLK STA 0 0 0 0 0 CLK 1 1 0 1 0 0 JMP 0 0 0 0 1 1 0 0 0 1 0 JN 0 0 0 0 1 1 0 1 0 1 0 CLK JZ 0 0 0 0 1 1 1 0 0 1 0 CLK NOP 0 0 0 0 0 1 1 1 0 0 0 0 CLK HLT 0 0 0 0 0 1 1 0 0 0 0 0 0

CLK CLK ^ N CLK ^ Z

CLK CLK CLK

14

Funes matemticas Todas as funes que operam sobre o valor de AC diferem somente no cdigo de operao da ALU, como este cdigo gerado atravs do OPCODE vigente, o que resta definir a condio para efetivao do pulso de clock que aciona a escrita em AC, assim observou-se a correspondncia dos dois bits mais significativos do OPCODE, que esto ligados para todas as operaes matemticas, assim adicionou-se uma porta AND com as entrada alimentadas pelos dois ltimos bits do OPCode, e a sua sada foi associada entrada de outra porta AND que tem como segunda entrada o Clock do sistema como ilustra a figura ao lado. Somente com este circuito definiu-se as microperaes de todas as operaes matemticas. Funes Load e Store
AC CLK

OPCODE4 OPCODE3

AC

A carga de uma valor da memria em AC muito implementada atravs de um artificil bem simples, o CLK OPCODE de LDA foi definido para que corresponde-se operao de soma na ULA com a entrada B ativa e a entrada A desativada (1011), assim o valor de AC seria definido como B + 0, ou seja o valor de B. Para OPCODE4 implementar tal comportamento bastou adicionar mais uma OPCODE3 condio ao circuito da operaes matemticas que resultou OPCODE2 OPCODE1 no circuito ao lado. J a funo STA tem um comportamento muito peculiar, sua funo consiste na inverso do valor de MRW, quando isto a memria do sitema passa para o modo de escrita e AC ligado sua entrada atravs de 3-States que se ativam quando a inverso ocorre, para que este sinal permaneca por um perido maior so adicionados blocos de atrasos, que nada mais so que um conjunto de portas AND, esta implementao pode ser visualizada na ilustrao da UC apresentada anteriormente.
NEGATIVO OPCODE1 OPCODE2 OPCODE3 OPCODE4

Funes de Desvio
ZERO

CLK

Aqui outra coincidncia proposital de valores permitiu que todas as funes de desvio fossem tratadas de forma nica, por possurem o OPCODE no formato XX10 elas foram implementadas como mostra a figura ao lado, observe que a condio para que o desvio ocorre que o 3 bit esteja zerado ou a flag N esteja ativa e o 4 bit seja zero ou a flag Z esteja ativa, assim o desvio incondicional (JMP) tem os dois ltimos bits zerados (0001), o desvio se negativo tem o 3 bit em 1 e o 4 em Zero (0101), e o desvio se zero tem o 3 bit com zero e o 4 bit com o valor 1 (1001). Vale ressaltar que a designao de 3 e 4 bit se referem de forma inversa sua posio no nmero assim o bit que representa 20 o primero e 23 o quarto bit por isso aparecem no inicio do nmero apresentado.

Funes do Sistema 15

JMP

H duas funo especias no conjunto proposto, NOP e HLT, a primeira serve para adicionar atrasos ao ciclo de execuo, no tendo nenhum efeito colateral, a segunda suspende a execuo do sistema. Para implementar a funo NOP basta verificar se o OPCODE vigente da funo NOP ento mudar o estado da UC para Busca e Decodificao como todas as outras funes fazem aps a execuo. Observe que o sinal de continue foi suprimido nas funes acima mais eles podem ser observados na figura que descreve a UC de forma completa.
OPCODE1 OPCODE2 OPCODE3 OPCODE4 CLK CONTINUE

A funo HLT a de mais simples implementao, ..., ela no tem uma implementao, assim como a UC implementada como uma mquina de estados ela vai ficar no estado de execuo sem fazer nada indefinidamente, pois no h nenhuma condio que a faa voltar para o estado de busca, o cdigo de HLT foi definido como 0000, assim sempre que no houver nenhuma funo definida suspendida a execuo do programa.

16

Concluso
Num projeto de processador tanto o caminho de dados e os elementos de estados e combinacionais possuem uma relevncia muito grande, a correta disposio destes componentes possibilitam uma reduo siginificativa no tamanho e complexidade do projeto, porm deve-se medir o impacto que cada escolha far ao projeto no tocante velocidade, e custo de implementao. Apesar de ser um projeto reduzido de processador, como no poderia deixar de ser enquanto projeto didtico, sua implementao possibilitou um profundo entendimento sobre como funciona um processador convencional. Para tornar a implementao mais enxuta algumas concesses foram feitas, como por exemplo a uniformidade no tamanho das funes, o que ocasiona uma perda de espao na memria j que algumas operaes poderiam ocupar somente um byte, e tambm reduzi o tempo de busca pela metade em operaes como NOT, NOP e HLT.

17

Referncias Bibliogrficas
IRVINE, Kip R., Assembly Language for Intel-Based Computers, Fourth Edition, Prentice Hall, 2003. PATTERSON, David A. e HENNESSY, John L., Organizao e projeto de computadores a interface hardware/software, Segunda edio. Rio de Janeiro: LTC, 2000. GAJSKI, Daniel D., Principles Of Digital Design, Prentice-Hall Inc., 1997 STALLINGS, Willian, Computer Organization and Architecture Design for Performance, Sixth Edition, Prentice Hall, 2003. TANENBAUM, Andrew. S., Organizao Estruturada de Computadores, Quarta Edio. Rio de Janeiro: Prentice-Hall do Brasil, 1999. IDOETA, Ivan V., CAPUANO, Francisco F., Elementos de Eletrnica Digital. 6 Edio. So Paulo: rica, 1984. TOCCI, R. J. Sistemas Digitais: Princpios e Aplicaes Ed.LTC, 2000, 7 edio WEBER, Raul Fernando, Fundamentos de Arquitetura de Computadores, 2 edio. Porto Alegre: Editora Sagra Luzzatto, 2001. Matriais Tcnicos Intel Architecture Software Developers Manual Volume 1: Basic Architecture Intel Architecture Software Developers Manual Volume 2: Instruction Set Reference IA-32 Intel Architecture Optimization Reference Manual

18

Anexo I
Programa de Teste: Abaixo segue uma programa usado para testar todas as instrues do sistema:
Endereo Binrio 600 601 602 603 604 605 606 607 610 Endereo 0 2 4 6 8 10 12 14 18 20 22 24 26 NOP; LDA 600; NOT; STA 701; OR 600; STA 702; LDA 602; ADD 603; AND 604; JZ 30; HLT; AND 610; STA 700; 00110010 01101011 00010101 00100101 11000101 01000011 01111000 01011010 00000000 Valor Inicial Hexa 32 6B 15 25 C5 43 78 5A 00 Dec 50 107 21 37 197 67 120 90 0 Endereo 28 30 32 34 36 38 40 42 44 46 48 50 52 HLT; STA 703; LDA 605; ADD 606; JN 22; ADD 607; JN 44; HLT; STA 704; NOP; NOP; HLT; Operao 700 701 702 703 704 Endereo Binrio 11001101 11111111 00000000 00010101 Valor Final Hexa CD FF 00 15 Dec 205 255 0 21

Operao

19

Anexo II
Modelo de Implementao do Contador de Programa:

20

U11A U11B U11C U11D U12A U12B U12C U12D U13A U13B
Reset CLK JMP P0 Q0 Program P1 Q1 Counter Q2 P2 Q3 P3 P4 Reg/Count Q4 Q5 P6 P6 Q6 P7 Q7 G2-Corp. Inc.Q8 P8 Q9 P9

PC-Registrado

U10B

+V

21
V1 5V U6B U6C U6D U7A U7B U9F
S Q _ Q R R J CP K Q _ Q J CP K Q _ Q S J CP K S S S Q _ Q R J CP K J CP K Q _ Q R J CP K

U9C

U9B

U9E U9D

U14A

U7C

U7D

U8A

U8B

U8C

U14B

U14C

U10A U9A
R

Q _ Q R

J CP K

Q _ Q R

J CP K

Q _ Q R

J CP K

Q _ Q R

J CP K

Q _ Q R

Você também pode gostar