Escolar Documentos
Profissional Documentos
Cultura Documentos
1 - Introduo ............................................................................................................................................ 2
2 Arquitetura do P1 ............................................................................................................................. 3
2.1 Registrador contador de programa. ............................................................................................. 4
2.2 - Entrada e REM ............................................................................................................................. 5
2.3 - RAM............................................................................................................................................... 5
2.4 - Registrador de Instrues .............................................................................................................. 5
2.5 - Controlador-Seqencializador ....................................................................................................... 6
2.6 Acumulador A e Registrador B .................................................................................................... 6
2.7 - Somador-subtrator ......................................................................................................................... 7
2.8 - Registrador de Sada e Indicador visual binrio .......................................................................... 7
3 Conjunto de instrues do P1 ........................................................................................................... 7
3.1 Instruo LDA .............................................................................................................................. 8
3.2 Instruo ADD .............................................................................................................................. 8
3.3 Instruo SUB ............................................................................................................................... 8
3.4 Instruo OUT .............................................................................................................................. 9
3.5 Instruo HLT .............................................................................................................................. 9
4 Estrutura de programa e programao do P1 .................................................................................. 9
5 Organizao lgica do P1 e seus ciclos de mquina ........................................................................12
5.1 Ciclo de busca ..............................................................................................................................14
5.1.1 Estado T1: estado de endereo .............................................................................................14
5.1.2 Estado T2: estado de incremento .........................................................................................14
5.1.3 Estado T3: estado de memria .............................................................................................15
5.2 Ciclo de execuo .........................................................................................................................15
5.2.1 Ciclo de execuo de LDA ....................................................................................................15
5.2.2 Ciclo de execuo de ADD ...................................................................................................16
5.2.3 Ciclo de execuo de SUB ....................................................................................................18
5.2.4 Ciclo de execuo de OUT....................................................................................................18
5.2.5 Ciclo de execuo de HLT ....................................................................................................19
6 Hardware do P1 ................................................................................................................................19
Anexo A - Lista de componentes para montagem do P1......................................................................24
1 - Introduo
Este documento tem como propsito bsico a descrio e projeto de uma arquitetura de
processador simples de 4 bits que ser denominado neste texto como P1. Embora seja um
processador sem grandes aplicaes prticas dada sua grande simplicidade, o interesse primrio
exemplificar de forma concreta os principais componentes funcionais de um processador e sistema de
computao bsico de modo a traduzir em prtica importantes conceitos aprendidos em disciplinas
tericas. Apesar de sua aparente simplicidade, o leitor que se interessar na montagem do projeto
perceber que esta tarefa no to simples quanto se mostra em uma primeira impresso.
O P1 apresenta muitos dos conceitos revolucionrios introduzidos por John Von Neumann
principalmente no que diz respeito ao princpio de programa armazenado em memria, regio de
instrues e dados, troca de informao entre a CPU e memria e ciclo de busca e execuo de
instrues na memria atravs de uma unidade de controle. Estes mesmo conceitos norteiam a
informtica contempornea sendo um de seus pilares. Alm disto, apresenta outros conceitos
1
Neste ponto importante que o leitor conhea a diferena entre arquitetura versus organizao de computadores.
2
FACULDADE DE ENGENHARIA ELTRICA - UNIVERSIDADE FEDERAL DE UBERLNDIA
Projeto didtico do microprocessador P1 Prof. Alan Petrnio Pinheiro - www.alan.eng.br
Para um aprofundamento terico e prtico dos itens avaliados aqui, recomenda-se a leitura de
material bibliogrfico especfico da rea [1-5]. As prximas sees definem a arquitetura do
processador e suas unidades funcionais. Feito isto, outras subsees so destinadas a organizao e
implementao prtica do P1 utilizando chips discretos2.
2 Arquitetura do P1
Figura 2 Estrutura do P1. Note que no mesmo integrado uma memria de programa (aqui denominada de RAM)
que tem 16 elementos endereveis sendo cada um deles composto por 8 bits.
2
Embora a implementao deste usando tecnologia FPGA possa parecer interessante e bem mais simples, os autores recomendam sua
implementao utilizando componentes discretos para que o leitor tenha um melhor conhecimento de cada elemento que compem o
projeto.
3
FACULDADE DE ENGENHARIA ELTRICA - UNIVERSIDADE FEDERAL DE UBERLNDIA
Projeto didtico do microprocessador P1 Prof. Alan Petrnio Pinheiro - www.alan.eng.br
lgica e aritmtica (ULA), (iii) memria3 e (iv) unidade de entrada e sada (E/S). Estes elementos
so mostrados na Figura 2. Note que nesta figura, a memria principal (rotulada como RAM) foi
incorporada ao processador.
No sistema descrito na Figura 2, cada unidade tem uma funo especfica e muito bem
definida. Para isto, todos os elementos devem trabalhar de forma sincronizada. A unidade
controlador-sequencializador define este sincronismo atravs de um barramento de controle (este no
ilustrado na Figura 2) composto por doze variveis
. Estes sinais
controlam o funcionamento dos chips e o sincronismo entre as unidades que fazem parte da Figura 2.
Alm disto, existe um sinal de clock que ajuda no sincronismo dos circuitos integrados do projeto e
de alguns eventos. No caso do P1, o clock de 1 kHz4. Contudo, antes de chegar organizao e
hardware necessrios para implementar este microprocessador, as prximas subsees dedicam-se a
descrever o comportamento funcional de cada uma das unidades ilustradas na Figura 2. So
igualmente descritas as instrues que este microprocessador capaz de executar assim como deve ser
feita sua programao.
3
Ao contrrio do que acontece aqui, os elementos de memria de um processador moderno so registradores, banco de memrias
transistorizadas e em alguns casos memria cache. A memria de programa externa ao processador e no faz parte deste. Contudo, neste
documento consideraremos a memria de programa como interna ao mesmo j que ela essencial para seu funcionamento.
4
Este valor pode variar com a tecnologia de famlia de circuitos integrados e fortemente dependente da montagem. Recomenda-se que
montagem didtica e testes utilize um clock de 1 Hz ou menos.
5
Os caracteres 0x indicam que o nmero hexadecimal. Assim, por exemplo, 0xA o valor A em hexadecimal ou 10 em decimal.
6
Trata-se de um barramento multiplexado por onde passam dados, instrues e endereos em diferentes perodos de tempo.
4
FACULDADE DE ENGENHARIA ELTRICA - UNIVERSIDADE FEDERAL DE UBERLNDIA
Projeto didtico do microprocessador P1 Prof. Alan Petrnio Pinheiro - www.alan.eng.br
2.3 - RAM
Como mencionado na seo anterior, podemos programar a memria RAM (memria de
acesso aleatrio; random access memory) por meio das chaves e do REM. Isto nos permite armazenar
um programa e os dados na memria antes de um processamento do computador. Durante um
processamento do computador, a RAM recebe endereos de 4 bits do REM e executada uma
operao de leitura. Desta maneira, a instruo ou palavra de dados armazenada na RAM colocada
no barramento w para uso em alguma outra parte do processador.
7
Vale recordar que quatro bits equivalem a 1 nibble assim como 8 bits equivalem a 1 byte.
5
FACULDADE DE ENGENHARIA ELTRICA - UNIVERSIDADE FEDERAL DE UBERLNDIA
Projeto didtico do microprocessador P1 Prof. Alan Petrnio Pinheiro - www.alan.eng.br
2.5 - Controlador-Seqencializador
Um dos blocos mais importantes, se no o mais, o controlador-seqeencializador. Sua funo
bsica gerar todos os sinais de controle vistos na Figura 2 de tal forma a indicar quais unidades
devem estar ativas em um determinado instante de tempo e o que devem fazer segundo estes sinais
de controle.
Antes de cada processamento, um sinal complementar ao sinal CLR (clear) enviado ao PC e
ao IR. Isto restabelece o contador de programa em 0x0 e elimina a ltima instruo no IR para evitar
lixo de memria. Um sinal CLK (clock) enviado a todos os registradores de memria intermediria.
Isto sincroniza a operao do computador, assegurando que as coisas aconteam quando elas so
passveis de acontecer. importante destacar que todas as transferncias de registradores ocorrem na
transio positiva (i.e., pulso de subida) de um sinal CLK comum a todos os circuitos do sistema.
Observemos que um sinal complementar ao sinal CLK tambm chega ao PC.
Os 12 bits de controle que so gerados pelo controlador-sequencializador controlam o resto do
sistema (como um supervisor que diz aos outros o que fazer). Deste modo, a palavra de controle ser
organizada aqui como
=
6
FACULDADE DE ENGENHARIA ELTRICA - UNIVERSIDADE FEDERAL DE UBERLNDIA
Projeto didtico do microprocessador P1 Prof. Alan Petrnio Pinheiro - www.alan.eng.br
2.7 - Somador-subtrator
O P1 usa um somador-subtrator de complemento de dois8. Quando SU=0, o resultado uma
soma em sua forma normal (sem complemento de 2). Caso contrrio (quando SU=1), o valor
guardado no registrador B enviado ao sumador-subtrator na sua forma de complemento de 2 para
que seja executada a subtrao de B (valor armazenado no registrador de B) no valor de A. O
somador-subtrator assncrono; isto significa que seu contedo pode variar logo que suas entradas
(contedo do acumulador e registrador B) mudarem. Contudo, as entradas mudam s quando o
controlador-sequencializador produz uma palavra de controle que tem influncia sobre estes
registradores. Quando o sinal de controle E = 1, o contedo da soma presente na sada do somador-
subtrator enviada ao barramento w (ver Figura 2). Logo, esta sada deve ser three-state.
3 Conjunto de instrues do P1
8
Lembre que o complemento de dois equivalente a uma mudana de sinal do decimal
9
Tambm conhecida como programao de baixo nvel justamente por envolver tratar de forma direta com as instrues do hardware.
7
FACULDADE DE ENGENHARIA ELTRICA - UNIVERSIDADE FEDERAL DE UBERLNDIA
Projeto didtico do microprocessador P1 Prof. Alan Petrnio Pinheiro - www.alan.eng.br
significa "carregar no acumulador o contedo (dado) que est armazenado no local 0x8 da memria
RAM". Convenciona-se que endereos de memria sempre sero representados na base hexadecimal.
ADD 9
Durante a execuo de ADD 9, acontece uma srie de passos. Primeiro, o valor armazenado
em 0x9 carregado no registrador B. Como o somador-subtrator assncrono, esta soma feita quase
que instantaneamente (s que no armazenada em nenhum registrador). Depois, o controlador-
sequencializador produz uma palavra de controle que pega a sada do somador-subtrator e armazena
no acumulador obtendo:
Acumulador = 0000 0101
Sendo assim, esta instruo carrega a palavra endereada na RAM para o registrador B e a sada do
somador-subtrator armazenada no acumulador.
8
FACULDADE DE ENGENHARIA ELTRICA - UNIVERSIDADE FEDERAL DE UBERLNDIA
Projeto didtico do microprocessador P1 Prof. Alan Petrnio Pinheiro - www.alan.eng.br
Sendo assim, uma lista de instrues ordenadas formam um programa. Para exemplificar,
considere que os 16 endereos de memria RAM tenham o seguinte contedo:
9
FACULDADE DE ENGENHARIA ELTRICA - UNIVERSIDADE FEDERAL DE UBERLNDIA
Projeto didtico do microprocessador P1 Prof. Alan Petrnio Pinheiro - www.alan.eng.br
Antes de entendermos o programa como um todo, destaca-se que no endereo 0x5 temos uma
instruo HLT indicando o fim do programa. Assim, o programa est na parte baixa da memria
entre os endereos 0x0 a 0x5. Quando o processador chegar instruo HLT, ele saber que os
prximos endereos de memria no contm instrues e sim dados! A regio de endereos
compreendida entre o intervalo 0x6 a 0xF chamada regio de dados ou pilha e est na dita regio
alta de memria.
A primeira instruo do programa (endereo 0x0) carrega o acumulador com o contedo do
local 0x9 da memria. Deste modo, Acumulador = 01. A segunda instruo soma o contedo do local 0xA
da memria ao contedo do acumulador para produzir um novo valor que armazenado no prprio
acumulador (Acumulador = 01 + 02 = 03). Similarmente, a terceira instruo soma o contedo do local
0xB da memria (Acumulador = 03 + 03 = 06). A instruo SUB subtrai o contedo do local 0xC da
memria para produzir Acumulador = 06 - 04 = 02. A instruo OUT carrega o contedo do acumulador
para a porta de sada e o visual em binrio mostra a sequencia de bits 0000 0010. A instruo HLT
interrompe o processamento dos dados e o processador pra de buscar e executar instrues
hibernando.
Apesar de usarmos mnemnico na Tabela 2 para ilustrar um exemplo de programa, sabe-
seque a memria RAM capaz de guardar somente valores binrios. Assim, cada instruo tem um
correspondente binrio. A Tabela 3 ilustra esta correspondncia entre os mnemnicos das instrues e
seus correspondentes cdigos binrios10.
10
Estes cdigos binrios foram originalmente chamados de opcode. Um programador redige seu programa usando
mnemnicos pois so mais fceis de decorar e o compilador converte estes mnemnicos em cdigos binrios similares aos
vistos na Tabela 3 (imagine um programador tendo que decorar todos os cdigos binrios).
10
FACULDADE DE ENGENHARIA ELTRICA - UNIVERSIDADE FEDERAL DE UBERLNDIA
Projeto didtico do microprocessador P1 Prof. Alan Petrnio Pinheiro - www.alan.eng.br
Endereo Mnemnico
0x0 LDA F
0x1 ADD E
0x2 HLT
No caso do programa da tabela anterior, que emprega mnemnico para descrever a sequncia
de cdigos desejada, dizemos que o programa esta no formato de linguagem de mquina ou linguagem
Assembly. Contudo, s o programador o entende j que o microprocessador capaz de manipular
somente bits!
Para inserir o programa anterior na memria atravs das chaves, convertemos seu contedo
no correspondente binrio. A tabela seguinte mostra o contedo que deve ser armazenado na
memria. Os bits nomeados por X no tem relevncia pois no mudam o resultado do programa j
que esto associados instrues que no necessitam de endereo como operandos.
Endereo Mnemnico
0x0 0000 1111
0x1 0001 1110
0x2 1111 XXXX
0000 1111
Campo de instruo Campo de endereo
11
FACULDADE DE ENGENHARIA ELTRICA - UNIVERSIDADE FEDERAL DE UBERLNDIA
Projeto didtico do microprocessador P1 Prof. Alan Petrnio Pinheiro - www.alan.eng.br
Como descrito nas sees anteriores, em uma nica instruo so executadas um conjunto de
tarefas. Por exemplo, a instruo ADD 9 tem que (i) ser lida da memria, (ii) codificada, (iii) ler o
dado armazenado no endereo 0x9, (iv) carreg-lo no acumulador e (v) executar a soma. Logo, uma
nica instruo demanda uma sria de aes que pode variar de instruo para instruo.
Obviamente que estas aes necessitam serem executadas em diferentes instantes de tempo. Assim,
uma nica instruo pode utilizar mais do que um clico de clock. No caso do P1, so fornecidos seis
ciclos de clock para que ele execute qualquer instruo. Logo, nestes seis ciclos ele pode executar seis
diferentes aes que no conjunto representam a funo de uma nica instruo. Contudo, nem todas
instrues necessitam desta totalidade de ciclos11. Mesmo assim, pra facilitar o projeto do
microprocessador, so fornecidos seis ciclos.
Sabe-se que o processo de execuo de um programa acontece atravs da busca e execuo de
instrues. No caso do P1, onde so designados seis pulsos de clock para cada instruo, trs deles
so utilizados para a busca e carregamento da instruo (fetch) para os registradores do
11
Ao contrrio do que acontece aqui, em alguns processadores modernos a quantidade de pulsos de clock necessrios para
cada instruo varia. Nos casos de processadores RISC, cada instruo geralmente gasta um nico pulso de clock para
executar uma instruo.
12
FACULDADE DE ENGENHARIA ELTRICA - UNIVERSIDADE FEDERAL DE UBERLNDIA
Projeto didtico do microprocessador P1 Prof. Alan Petrnio Pinheiro - www.alan.eng.br
Figura 4 Elemento responsvel por gerar os seis estados que fazem parte do ciclo de mquina do microprocessador.
13
FACULDADE DE ENGENHARIA ELTRICA - UNIVERSIDADE FEDERAL DE UBERLNDIA
Projeto didtico do microprocessador P1 Prof. Alan Petrnio Pinheiro - www.alan.eng.br
em anel se restabelece (reset) em 000001 e o ciclo se repete. Cada palavra de anel representa um
estado T.
A Figura 5 mostra os pulsos de temporizao fora do contador em anel. O estado inicial T1
comea com uma transio negativa de clock e termina com a prxima transio negativa de clock.
Durante este estado T, o nico bit em alto o T1. Durante o prximo estado, T2 est alto; o estado
seguinte tem um T3 alto; depois um T4 alto e assim por diante. Conforme podemos ver, o contador
em anel produz seis estados T. Cada instruo buscada e executada durante estes seis estados T.
Novamente, observemos que uma transio CLK positiva ocorre a meio caminho em cada estado T.
A importncia disto ser ressaltada mais tarde.
=
= 0101 1110 0011
14
FACULDADE DE ENGENHARIA ELTRICA - UNIVERSIDADE FEDERAL DE UBERLNDIA
Projeto didtico do microprocessador P1 Prof. Alan Petrnio Pinheiro - www.alan.eng.br
=
= 1011 1110 0011
=
= 0010 0110 0011
Durante o estado T4, o campo 0000 de instruo vai para o controlador-sequencializador onde
decodificado. O campo 1001 de endereos carregado no REM. A Figura 7a mostra as partes ativas
do P1 durante o estado T4. Note que EI e LM so ativos enquanto que todos os outros bits de
controle so inativos.
Durante o estado T5, CE e LA tornam-se altos. Isto significa que a palavra de dados
endereada na RAM ser carregada no acumulador na prxima transio positiva de clock. Ver
Figura 7b.
15
FACULDADE DE ENGENHARIA ELTRICA - UNIVERSIDADE FEDERAL DE UBERLNDIA
Projeto didtico do microprocessador P1 Prof. Alan Petrnio Pinheiro - www.alan.eng.br
No caso da instruo LDA, T6 um estado sem operao. Durante este terceiro estado de
execuo, todos os registradores esto inativos (ver Figura 7c). Isto significa que o controlador-
sequencializador est produzindo uma palavra cujos bits so todos inativos. Este estado de
hibernao algumas vezes denominado de nop (no operation). Assim, o estado T6 da rotina
LDA um nop. Isto acontece porque foi dado uma valor constate de seis ciclos de clock para todas
instrues do microprocessador ainda que nem todas precisassem destes ciclos. Como j mencionado,
em processadores mais sofisticados isto no acontece porque a quantidade de ciclos gasta por cada
instruo varivel a fim de se evitar estes nops.
A Figura 8 tambm exibe o diagrama de temporizao das rotinas LDA desde o ciclo de
busca (que comum a todas rotinas) at o de execuo. Todos estes sinais so gerados pelo
controlador-sequencializador.
Figura 8 Diagrama de temporizao da rotina LDA desde seus ciclo de busca (T1 a T3) at seu ciclo de execuo (T4 a
T6).
Resumindo todo o processo da instruo LDA, durante o estado T1, EP e LM esto ativos. A
transio positiva de clock a meio caminho atravs deste estado transferir o endereo no contador de
programa para o REM. Durante o estado T2, CP est ativo e o contador de programa incrementado
na transio positiva de clock. Durante o estado T3, CE e LI esto ativos. Quando ocorre a transio
positiva de clock, a palavra da RAM endereada transferi para o registrador de instrues. A
execuo de LDA comea com o estado T4, onde LM e EI esto ativos. Na transio positiva de clock,
o campo de endereo no registrador de instrues transferido para o REM. Durante o estado T5, os
sinais de controle CE e LA esto ativos. Isto significa que o contedo da RAM endereada
transferido para o acumulador na transio positiva de clock. O estado T6 da rotina LDA um nop.
IR = 0001 1011
16
FACULDADE DE ENGENHARIA ELTRICA - UNIVERSIDADE FEDERAL DE UBERLNDIA
Projeto didtico do microprocessador P1 Prof. Alan Petrnio Pinheiro - www.alan.eng.br
No estado T5, os bits de controle CE e LB esto ativos. Isto permite que os dados na RAM
endereada sejam transferidos para o registrador B (Figura 9b). Usualmente, o carregamento ocorre a
meio caminho atravs do estado quando a transio positiva de clock atinge a entrada CLK do
registrador B.
Figura 10 Diagrama de temporizao da rotina ADD desde seus ciclo de busca (T1 a T3) at seu ciclo de execuo (T4 a
T6).
17
FACULDADE DE ENGENHARIA ELTRICA - UNIVERSIDADE FEDERAL DE UBERLNDIA
Projeto didtico do microprocessador P1 Prof. Alan Petrnio Pinheiro - www.alan.eng.br
Figura 11 Diagrama de blocos das unidades ativas (blocos em branco) e inativas (blocos em cinza) durante o estado T4 da
instruo OUT. Os estados T5 e T6 so nop.
18
FACULDADE DE ENGENHARIA ELTRICA - UNIVERSIDADE FEDERAL DE UBERLNDIA
Projeto didtico do microprocessador P1 Prof. Alan Petrnio Pinheiro - www.alan.eng.br
Figura 12 Diagrama de temporizao da rotina OUT desde seus ciclo de busca (T1 a T3) at seu ciclo de execuo (T4).
IR = 1111 XXXX
6 Hardware do P1
19
FACULDADE DE ENGENHARIA ELTRICA - UNIVERSIDADE FEDERAL DE UBERLNDIA
Projeto didtico do microprocessador P1 Prof. Alan Petrnio Pinheiro - www.alan.eng.br
Os circuitos exibidos at aqui so responsveis por gerar alguns sinais de controle que
alimentam o microcontrolador. Os diagramas das prximas pginas contm os circuitos essenciais do
microcontrolador.
20
FACULDADE DE ENGENHARIA ELTRICA - UNIVERSIDADE FEDERAL DE UBERLNDIA
Projeto didtico do microprocessador P1 Prof. Alan Petrnio Pinheiro - www.alan.eng.br
21
FACULDADE DE ENGENHARIA ELTRICA - UNIVERSIDADE FEDERAL DE UBERLNDIA
Projeto didtico do microprocessador P1 Prof. Alan Petrnio Pinheiro - www.alan.eng.br
22
FACULDADE DE ENGENHARIA ELTRICA - UNIVERSIDADE FEDERAL DE UBERLNDIA
Projeto didtico do microprocessador P1 Prof. Alan Petrnio Pinheiro - www.alan.eng.br
23
FACULDADE DE ENGENHARIA ELTRICA - UNIVERSIDADE FEDERAL DE UBERLNDIA
Projeto didtico do microprocessador P1 Prof. Alan Petrnio Pinheiro - www.alan.eng.br
7 Referncias
[1] John Hennessy, David Patterson. Computer architecture: a quantitative approach. Elsevier, 5 edio, 2011
[3] David Patterson, John L. Hennessy. Computer organization and design. MK, 4 edio, 2011.
[5] Carls Hamacher, Zvonko Vranesic, Safwat Zaky, Naraig Nanjikian. Computer organization and embedded
systems. Mc Graw Hill, 6 edio, 2012
24