Buscar

sap1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 61 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 61 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 61 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UNIVERSIDADE CATÓLICA DE GOIÁS 
DEPARTAMENTO DE COMPUTAÇÃO 
GRADUAÇÃO EM ENGENHARIA DE COMPUTAÇÃO 
 
 
 
 
 
 
 
PROJETO DE UM PROCESSADOR MODULAR 
PARA FINS DIDÁTICOS 
 
 
 
 
 
 
JULIANO ADÔRNO MAIA 
TAYNARA MENDONÇA SANTANA 
 
 
 
 
JUNHO 
2009 
 
 ii
PROJETO DE UM PROCESSADOR MODULAR 
PARA FINS DIDÁTICOS 
 
 
 
 
 
 
JULIANO ADÔRNO MAIA 
TAYNARA MENDONÇA SANTANA 
 
 
 
 
 
 
 
 Trabalho de Conclusão de Curso apresentado por Juliano Adorno Maia e Taynara 
Mendonça Santana à Universidade Católica de Goiás, como parte dos requisitos para 
obtenção do título de Bacharel em Engenharia de Computação. 
 
 
 
 
 
 
 
 
 
Prof. Carlos Alexandre F. de Lima, MsC. Prof. Jeová Martins Ribeiro, Esp. 
Orientador Coordenador de TCC 
 
 
 iii
DEDICATÓRIA 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Aos familiares, pela compreensão, carinho e confiança em nós depositada. 
Aos colegas, pelo apoio e incentivo. 
 
 iv 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
“Divide as dificuldades que tenhas de examinar em 
tantas partes quantas for possível, para uma melhor 
solução”. 
René Descartes 
 
 
 v 
AGRADECIMENTOS 
 
 
 Ao Professor Carlos Alexandre, orientador acadêmico, pelo apoio e confiança 
depositada. Aos professores Charles dos Santos Costa e Felippe dos Santos e Silva, pela 
inestimável colaboração. À Coordenação do Departamento de Computação e ao 
Departamento de Engenharia da Universidade Católica de Goiás por ter ajudado de forma 
inestimável na execução deste trabalho. Ao colega Emanuel de Azevedo, pela colaboração e 
apoio. Também o apoio técnico do laboratorista Valdemar Flores Júnior. 
 
 vi 
RESUMO 
 
 Apresenta-se um projeto sobre o desenvolvimento de um processador para fins 
didáticos. Este trabalho tem como características dar apoio ao ensino das disciplinas de 
Arquitetura de Computadores e Sistemas Digitais. Caracteriza-se por implementar seus 
módulos de forma discreta mostrando a função de cada componente interno da arquitetura 
básica de uma unidade processadora de dados. Neste trabalho foram desenvolvidos alguns 
componentes, mas dando a oportunidade para projetos futuros onde poderão ser 
desenvolvidos os dispositivos restantes e toda a sincronização entre eles finalizando assim a 
implementação de um processador. 
 
Palavras-Chave: Processador, Arquitetura de Computadores, Fins didáticos, Componentes. 
 
 vii
ABSTRACT 
 
 It's presented a project about the development of a processor for didactic purposes. 
This work has as particularities to give support to teaching of Computers Architecture and 
Digital Systems. It's characterized by implementing their modules in a discrete form showing 
the function of each internal component of the basic architecture of a data processing unity. In 
this work was developed some components but giving the chance for future projects where 
can be developed the remainder devices and all the synchronization between them, thus 
ending the implementation of a processor. 
 
Keywords: Processor, Computers Architecture, Didactic Purposes, Components. 
 
 viii
PROJETO DE UM PROCESSADOR MODULAR PARA FINS DIDÁTICOS 
 
SUMÁRIO 
 
LISTA DE FIGURAS x 
LISTAS DE TABELAS xi 
LISTA DE ABREVIATURAS E SIGLAS xii 
I. INTRODUÇÃO 1 
II. FUNDAMENTOS DE PROCESSADORES 3 
2.1. Principais Elementos de um Computador 3 
2.1.1 Processador e Microprocessador 4 
2.1.1.1 Unidade de Controle 5 
2.1.1.2 Unidade Lógica e Aritmética 5 
2.1.1.3 Conjunto de Registradores 6 
2.1.2 Memória 6 
2.1.3 Dispositivo de Entrada e Saída 6 
2.1.4 Barramento do Sistema 7 
2.2 Funcionamento de um Processador Primitivo 7 
2.3 Considerações sobre Desempenho 10 
III. EVOLUÇÃO DOS PROCESSADORES ELETRÔNICOS 12 
3.1 Considerações Iniciais 12 
3.2 Microprocessadores 13 
3.2.1 Primeiros Processadores 13 
3.2.2 Processador 286 14 
3.2.3 Processador 386 14 
3.2.4 Processador 486 14 
3.2.5 Pentium 14 
3.2.6 Pentium PRO 15 
3.2.7 Pentium II 15 
3.2.8 Pentium III 15 
3.2.9 Pentium IV 16 
3.2.10 Celeron 16 
3.2.11 Xeon 16 
3.3 Como são Fabricados os chips de Processadores 17 
3.4 Considerações Finais 19 
IV. PROPOSTAS DE PROCESSADORES MODULARES 21 
4.1 Processador Modular 21 
4.2 Trabalhos Relacionados 21 
4.2.1 SAP – 1 22 
4.2.1.1 Descrição do Funcionamento do SAP – 1 23 
4.2.1.2 Conjunto de Instruções do SAP 25 
4.2.1.3 Programação do SAP 26 
4.2.2 VSM 26 
4.2.2.1 Estrutura Física do VSM 26 
4.2.2.2 Conjunto de Instruções do VSM 27 
V. DESCRIÇÃO DO PROJETO 29 
5.1 Aspectos didáticos 29 
5.1.1 Métodos e Técnicas de ensino 29 
5.1.2 Recursos didáticos 30 
5.2 Descrição dos módulos 31 
 
 ix
5.2.1 Unidade de controle e temporização 31 
5.2.2 Unidade lógica aritmética 33 
5.2.3 Memória de trabalho 33 
5.2.4 Registrador de dados e endereço 33 
5.2.5 contador de programa 33 
5.3 Observações Gerais 34 
VI. IMPLEMENTAÇÕES E TESTES 35 
6.1 Desenvolvimento da ULA de oito bits 35 
6.2 Construção de cabos e barramentos 39 
6.3 Desenvolvimento de um display 40 
6.4 Desenvolvimento de registradores 41 
6.5 Desenvolvimento da unidade 42 
6.6 Integração entre os módulos 44 
VII. CONCLUSÃO E PROPOSTAS PARA PROJETOS FUTUROS 46 
Referências 48 
 
 
 x
LISTA DE FIGURAS 
 
Figura 2.1 – Elementos básicos de um computador 4 
Figura 2.2 – Arquitetura simplificada de um processador 5 
Figura 2.3 – Fluxo de instruções e dados (Exemplo) 8 
Figura 3.1 – Evolução dos microprocessadores da Intel 20 
Figura 4.1 – Arquitetura do funcionamento do SAP-1 23 
Figura 4.2 – Arquitetura do VSM 26 
Figura 5.1 – Diagrama de blocos do projeto 32 
Figura 6.1 – Circuito de Expansão de duas ULAs de 4 bits para a ULA de 8 bits 36 
Figura 6.2 – Protótipo da ULA de 8 bits, montado em um Protoboard 36 
Figura 6.3 – Layout do circuito impresso da ULA de 8 bits 38 
Figura 6.4(a) – Lado da fiação impressa 38 
Figura 6.4(b) – Placa da ULA, lado dos componentes 39 
Figura 6.5(a) – cabo de 2 vias 40 
Figura 6.5(b) – cabo de 8 vias 40 
Figura 6.5(c) – cabo de 6 vias 40 
Figura 6.5(d) – cabo de 1 via 40 
Figura 6.6 – Dispositivo de entrada 41 
Figura 6.7 – Protótipo de um registrador de 8 bits 42 
Figura 6.8 – Circuito de uma chave de dados de 1 bits 43 
Figura 6.9 – Circuito implementado das chaves de dados de 8 bits 43 
Figura 6.10 – Arquitetura proposta no projeto de desenvolvimento do processador 
para fins didáticos 
44 
Figura 6.11(a) – Vista frontal da bancada 45 
Figura 6.11(b) – Vista posterior da bancada 45 
Figura 6.11(c) – Bancada pronta com os módulos em funcionamento 45 
 
 
 xi
LISTA DE TABELAS 
 
Tabela 3.1 – Evolução dos microprocessadores da Intel 20 
Tabela 6.1 – Instruções utilizadas na ULA 36 
Tabela 6.2 – Conversão do código BCD para o hexadecimal 41 
 
 
 
 
 
 
 
 
 
 xii
LISTA DE ABREVIATURAS E SIGLAS 
 
PC Personal Computer 
FPU Floating Point Unit 
MMX Math Matrix Extensions 
AGP Advanced Graphics Surppot 
DMA Dynamic Memory Acess). 
SSE Streaming SIMD Extentions 
DIB Dual Independent Architetura 
ULA Unidade Lógica Aritmética 
SIMD Simple Instruction, Multiple Data 
CPU Central Processing Unit 
SAP Simple-As-Possible 
VSM A Very Simple Microprocessor 
REM Registrador de endereço na memória 
LED Diodos Emissores de Luz 
TTL Transistor, Transistor Logic 
UCP Unidade Central de Processamento 
 
 
 
 
 
 
 
 
PROJETO DE UM PROCESSADOR MODULAR PARA FINS DIDÁTICOS 
 
CAPÍTULO I 
INTRODUÇÃO 
 
 Nos dias de hoje, agrande importância e utilização de computadores e sistemas 
microprocessados, desperta em estudantes de cursos tecnológicos o interesse em dominar o 
conhecimento de cada parte integrante de uma UCP (Unidade Central de Processamento) e, 
nem sempre, se satisfazem com leitura de manuais ou simulações. 
 Este trabalho de conclusão de curso consiste no projeto de um processador modular 
para fins didáticos, de oito bits, construído a partir de circuitos integrados tradicionais TTL, 
idealizado para o auxílio de disciplinas como Arquitetura de Computadores e Sistemas 
Digitais. 
 A motivação deste vem das dificuldades que os alunos encontram, principalmente na 
disciplina de Arquitetura e Organização de Computadores, em entender e visualizar certos 
conceitos sobre a estrutura interna de um microprocessador básico. Este projeto, mostra de 
forma modularizada as partes principais de uma unidade processadora digital de dados, com 
objetivo de facilitar o entendimento da estrutura de uma unidade processadora, através da 
construção, verificação e acompanhamento das etapas de funcionamento passo a passo. A 
eficácia deste tipo de abordagem pôde ser confirmada em entrevistas informais com alunos e 
professores da Computação e da Engenharia Elétrica da UCG (Universidade Católica de 
Goiás), que desenvolveram, durante um semestre, projetos de relógio digital e minicalculador. 
 Esse projeto dá oportunidade a que alunos possam construir um processador modular, 
treinando e aplicando conceitos de processamento de dados na prática. Pode ser utilizado sob 
roteiros elaborados por professores da área quando houver um conjunto já montado e pode ser 
usado para experimentação de novas propostas, o que representa uma novidade em trabalhos 
da UCG: a perspectiva didática. 
 A abordagem didática está caracterizada na possibilidade de modularizar a solução de 
um problema. O usuário pode identificar através de rótulos cada parte da estrutura interna do 
processador. A construção de pequenos sistemas utilizando uma UCP pode ser feita pelos 
usuários, desde que estes tenham um conhecimento razoável de Sistemas Digitais e 
Arquitetura de Computadores. Pelas mesmas razões também fica fácil a manutenção em seus 
aparatos, haja vista que, se houver um problema em um dispositivo, é só removê-lo e verificar 
onde está a falha. 
 
 2 
 O texto deste trabalho foi organizado em sete capítulos. Esta Introdução, de acordo 
com as diretrizes do Departamento de Computação, corresponde ao Capítulo I. 
 No Capítulo II se caracteriza um sistema, em particular um computador genérico 
elementar, seus aspectos construtivos e operacionais. Um fragmento de programa referido ao 
nível da máquina é usado para descrever o seu funcionamento. 
 O Capítulo III apresenta, a título de estado da arte, um breve histórico dos 
computadores e microprocessadores, sua evolução e um resumo sobre processo de fabricação. 
 O Capítulo IV explora duas propostas de máquinas simples, relacionadas com a 
filosofia deste trabalho, elaboradas com o intuito de demonstração e construção de projetos. 
 No Capítulo V se define e caracteriza o objeto principal de estudo deste trabalho, o 
processador modular, que é construído em forma de várias placas cada uma com uma função 
específica que, em conjunto, desempenham o papel do processador. 
 Os aspectos práticos sobre o desenvolvimento do projeto, representado por uma ULA 
(Unidade Lógica Aritmética) de oito bits, vias de comunicação entre dispositivos, unidade de 
saída (um visualizador de dados), registradores de propósito geral e chaves de dados são 
vistos no Capítulo VI. 
 Na conclusão do trabalho (Capítulo VII) são colocados aspectos sobre as dificuldades 
e os resultados obtidos na implementação do projeto, alguns argumentos em defesa 
viabilidade do processador modular como recurso alternativo no ensino de Arquitetura e 
Organização de Computadores e possíveis projetos futuros, tais como a implementação dos 
módulos restantes ou, ainda, a ampliação do Projeto. 
 A metodologia usada na elaboração deste trabalho envolveu a pesquisa tanto de 
conceitos técnicos, como didáticos, os fatores determinantes no desenvolvimento de um 
projeto desta natureza. A parte técnica teve dois focos básicos de investigação: a pesquisa 
bibliográfica (conceitos, fundamentos e componentes dedicados) e as técnicas de 
implementação, sempre visando a comodidade do futuro usuário. 
 Na parte experimental foram utilizados recursos próprios (a maioria dos componentes, 
placas e serviços) e da UCG (suporte dos profissionais, laboratórios e ferramentas). 
 O conhecimento adquirido ao longo do curso de Engenharia de Computação, nos 
conteúdos de disciplinas como Eletrônica, Sistemas Digitais e Arquitetura e Organização de 
Computadores foi o que propiciou o desenvolvimento e a elaboração prática do trabalho. 
 
PROJETO DE UM PROCESSADOR MODULAR PARA FINS DIDÁTICOS 
 
CAPÍTULO II 
FUNDAMENTOS DE PROCESSADORES 
 
 O processador é a parte essencial de um computador digital. O computador digital é 
um sistema sequencial programável, destinado ao processamento automático de informações 
na forma binária1 – por exemplo, a resolução de problemas, supervisão e controle de 
máquinas e aparelhos etc. –, que se conecta com o mundo exterior através de um conjunto de 
entradas e de saídas. Genericamente, sistema é um conjunto de partes interligadas e 
coordenadas entre si, com uma finalidade definida que, por sua vez, envolve tarefas 
predeterminadas. O computador é sequencial porque suas ações elementares, responsáveis 
pelo cumprimento de uma tarefa, são executadas uma após a outra. É programável porque 
permite alterações nas tarefas sem a necessidade de modificar ou substituir partes físicas do 
sistema. Entradas são dispositivos ou linhas elétricas por onde se fornecem os dados que 
determinam e condicionam a tarefa a se cumprir, enquanto saídas são dispositivos que 
fornecem os resultados. Este capítulo, apesar de fazer parte de um trabalho sobre processador, 
introduz um resumo sobre componentes de um computador elementar, necessário ao 
acompanhamento do trabalho, porque, para efeito de demonstração prática, o sistema mínimo 
do projeto requer e inclui tais componentes, adquirindo status de computador. 
 
2.1 Principais elementos de um computador 
 
A arquitetura de um computador é definida como o conjunto de atributos da máquina que um 
programador deve conhecer para compreender o que o programa realizará em tempo de 
execução. Ela é representada “fisicamente” na estrutura e na organização de componentes de 
hardware, que se referem ao funcionamento interno do computador, e “logicamente” no 
conjunto de instruções e nos modos de endereçamento. [STALLINGS] 
 Apesar da grande evolução ocorrida na computação desde o aparecimento dos 
primeiros computadores, o diagrama básico apresentado na Figura 2.1 ainda pode ser 
utilizado para descrever um sistema computacional atual. O processador é responsável pelo 
tratamento de informações armazenadas em memória (programas em código de máquina e 
 
1
 Informação binária é aquela que se apresenta codificada em cadeias de bits (dígitos binários), “zeros” e “uns”. 
 
 4 
dados). A memória trata do pelo armazenamento dos programas e dados. Os periféricos são os 
dispositivos responsáveis pelas entradas e saídas de dados, ou seja, pelas interações entre o 
computador e o mundo externo. Interconectando-se um processador a alguns circuitos 
auxiliares e de memória, foi possível construir-se um computador inteiro em uma única placa. 
O barramento interliga eletricamente estes componentes: é uma via de comunicação por onde 
transitam todos os dados tratados pelo computador. 
 
 
 
 
 
 
 
 
Figura 2.1 – Elementos básicos de um computador. [MONSERRAT] 
 
2.1.1 Processador e microprocessadorO processador é considerado o “cérebro” do computador. Sua função básica é executar 
instruções, fazer cálculos e tomar decisões, de acordo com um programa armazenado na 
memória. O processador é também conhecido por UCP (Unidade Central de Processamento) 
ou, em inglês, CPU (Central Processing Unit). Quando está encerrado em um único circuito 
integrado (chip), é chamado de microprocessador. Antes do advento dos microprocessadores, 
as CPUs eram formadas por um grande número de chips, distribuídos ao longo de uma ou 
mais placas de circuito impresso. A filosofia do presente projeto, para atendimento à questão 
didática, segue esta última orientação, sendo seu processador formado de placas separadas, 
aqui chamadas de módulos. 
 Um processador (ou microprocessador) é composto basicamente de três elementos: a 
unidade de controle, a unidade lógica e aritmética e o conjunto de registradores. A Figura 2.2 
ilustra de forma simplificada estas partes e sua inter-relação. 
Memória Processador Dispositivos de E/S 
Barramento 
 
Mundo Exterior 
 
 5 
 
 
 
 
 
 
 
 
 
 
Figura 2.2 – Arquitetura simplificada de um processador. [TOKHEIM] 
 
2.1.1.1 Unidade de controle 
 
 A unidade de controle coordena as tarefas do processador, comandando os demais 
componentes da sua arquitetura para garantir a correta execução do programa e a utilização 
dos dados nas operações que os manipulam. Assim, ela gerencia todos os eventos associados 
à operação do computador, particularmente as chamadas “interrupções”2. 
 Associado à unidade de controle está um circuito de temporização (clock), 
representado por um oscilador, que fornece os pulsos utilizados para sincronizar e ditar a 
medida de tempo de transferência de dados no computador. A frequência do clock é um dos 
fatores relacionados com a capacidade de processamento do computador. Este, no entanto, 
não é objeto de estudo do presente trabalho. 
 
2.1.1.2 Unidade lógica e aritmética 
 
 Componente essencial no sistema computacional, a ULA (Unidade Lógica e 
Aritmética), ou ALU (Arithmetic Logic Unit), realiza as operações lógicas e aritméticas a 
serem realizadas no contexto de uma tarefa. O parâmetro da ALU que influencia no 
desempenho global de um sistema computacional é a quantidade de operações que ela 
suporta. 
 
 
2
 Interrupções são mecanismos que interrompem a execução normal para atender a um evento prioritário. 
[STALLINGS] 
Unidade Lógica 
e Aritmética 
 
Registrador 
temporário 
Acumulador 
Contador de Programa 
Registrador 
de Instruções 
Decodificador 
de instruções 
 
 
Unidade de Controle (e Temporização) 
Linhas de 
entrada 
Linhas de 
controle 
Barramento 
de 
endereços 
Barramento 
de 
dados 
 
 6 
2.1.1.3 Conjunto de registradores 
 
 Os registradores são dispositivos de armazenamento temporário e de acesso rápido, 
porque se localizam no interior do processador. Possuem um número fixo de bits, geralmente 
usado para definir o “tamanho” do processador. Cada registrador tem uma função específica, 
por exemplo, o Acumulador, que é operando na maioria das instruções aritméticas, o 
Contador de Programa, que aponta para próxima instrução a se executar, e o Registrador de 
Instrução, que armazena o código da instrução. Os registradores de propósito geral, que 
também costumam ter funções específicas, são diretamente acessados pelo programador. O 
tamanho dos registradores influencia no desempenho global do sistema: quanto maior o 
registrador, mais fácil realizar operações com grandes valores, sem precisar usar artifícios. 
 
2.1.2 Memória 
 
 É um conjunto de circuitos capaz de armazenar os dados e os programas a serem 
executados. Há diferentes categorias de memórias: a memória principal é o local onde 
normalmente ficam armazenados os programas e os dados a serem manipulados pelo 
processador, a memória secundária permite armazenar uma maior quantidade de dados e 
instruções por um período de tempo mais longo e a memória cache, que consiste de uma 
pequena porção de memória com curto tempo de resposta, geralmente integrada aos 
processadores, o que permite incrementar o desempenho durante a execução do programa. 
 
2.1.3 Dispositivos de entrada/saída 
 
Através dos dispositivos de entrada e saída (I/O, Input/Output), também chamados de 
periféricos, o computador pode armazenar ler, transmitir e receber dados. São equipamentos 
utilizados como portadores das informações que o computador processa. Alguns são 
específicos de entrada; outros apenas de saída. Por exemplo, quando se pressiona uma tecla de 
um microcomputador, o circuito de interface do teclado envia o código da tecla pressionada 
para a CPU. Por outro lado, quando a CPU precisa enviar uma mensagem para o usuário, esta 
é colocada na tela do monitor, através do circuito chamado de interface de vídeo. É claro que 
há dispositivos que combinam as duas funções. 
 
 7 
2.1.4 Barramento do sistema 
 
 Barramento é o caminho em que os dados e sinais de controle trafegam dentro do 
computador. É utilizado para comunicação de sinais digitais e pode ser estabelecido entre dois 
ou mais elementos do computador (processador, memória, chips da placa-mãe e periféricos). 
O tamanho do barramento é importante para determinar quantos dados podem ser 
transmitidos de uma só vez. Uma característica marcante do barramento é ser compartilhado: 
vários dispositivos podem ser conectados neles, desde que só um por vez funcione como 
fonte; os outros ficam recebendo. 
 
2.2 Funcionamento de um processador primitivo 
 
 Procedimentos envolvendo entrada de dados, cálculos, armazenamento e saída de 
resultados são tarefas típicas de um computador. Esta seção examina um exemplo de operação 
de um processador primitivo, baseado na Figura 2.2, relativo a um fragmento de programa 
que executa a seguinte lista: 
1. Carregar o Acumulador com o valor imediato3 (constante) 53 
2. Carregar o Registrador temporário com o imediato 165 
3. Adicionar o conteúdo do Acumulador com o do Registrador 
4. Armazenar o resultado no acumulador 
 A descrição a seguir não detalha o aparato eletrônico (hardware) usado para realizar o 
procedimento, apenas o fluxo de dados dentro do sistema. Também não é explorado o 
sincronismo4 das operações. Opcionalmente, o resultado poderia ser apresentado em um 
mostrador ou monitor, bastando colocar-se alguma instrução que possa transferi-lo para o 
dispositivo de saída. Esta direção não foi adotada para reduzir o número de passos. É 
previsível, ainda, a existência de instruções que disponibilizam o teclado, decodificam 
caracteres e os enviam para o processador que, por simplicidade, não serão exploradas neste 
exemplo. 
 O diagrama da Figura 2.3 auxilia na explicação do processo e da participação dos 
elementos internos do processador na sequência de eventos. O fluxo de instruções e dados 
será descrito em passos, sendo cada passo indicado em um círculo respectivamente numerado 
 
3
 O operando imediato fica no próprio código da instrução, não pode ser mudado em tempo de execução. 
4
 Os pulsos clock estabelecem o momento da ocorrência de eventos, sincronizam a comunicação entre elementos 
do hardware. 
 
 8 
na Figura 2.3. O processador centraliza e controla todas as operações, sempre obedecendo à 
sequência: busca, decodifica e executa. Entretanto, as operações realizadas são ditadas pelas 
instruções listadas na memória de programa. Os endereços estão em decimal, os conteúdos em 
binário. 
 Em primeiro lugar, supõe-se que os conteúdos da memória de programa incluem as 
instruções já carregadas em cinco posições contíguas de memória (códigos fictícios), a partir 
da posição adotada 200, valor inicial do PC(Progmam Counter – contador de programa ou 
ponteiro de instruções). Apesar aparentemente de ter quatro instruções no fragmento exemplo, 
são cinco os locais na memória de programa. A principal razão para isto é o tamanho da 
unidade de armazenamento em memória, o byte, que corresponde a uma cadeia de 8 bits. 
Cada posição-byte tem um endereço único na memória. Como nem sempre é possível se 
codificar uma instrução em um único byte, algumas instruções precisam ser divididas em 
porções de armazenamento. É o caso das duas primeiras instruções que armazenam os 
respectivos operandos imediatos em bytes separados. Surpreendentemente, a terceira e a 
quarta instruções são codificadas em um mesmo byte. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 2.3 – Fluxo de instruções e dados (Exemplo). Adaptada de [TOKHEIM] 
Unidade Lógica 
e Aritmética 
 
Registrador 
temporário 
Acumulador 
Contador de Programa 
Registrador 
de Instruções 
Decodificador 
de instruções 
Unidade de Controle e Temporização (UCT) 
Barramento 
de 
endereços 
Barramento 
de 
dados 
Memória de Programa 
Endereço Conteúdo 
 
 ... ... 
200 00000000 
201 00110101 
202 00000001 
203 10100101 
 
204 00000011 
 
 ... ... 
 
MAR MBR 
1 
3 
5 
7 
9 
1 
3 
5 
7 
9 
1 
3 
5 
7 
9 3 5 
7 9 
12 
2 
6 
10 
2 
6 
10 
10 
10 
10 
11 4 
4 11 8 
8 
1 3 5 7 9 
2 6 10 2 6 10 
 
 9 
Passo 1: o processador coloca o endereço 200 no barramento. O acesso à memória, em geral, 
é feito através de um MAR (Memory Address Register – Registrador de endereçamento à 
memória). Uma linha de controle habilita a leitura do conteúdo endereçado na memória de 
programa, isto é, copia a informação de uma posição de memória para outro local, no caso um 
MBR (Memory Buffer Register – Registrador temporário de dados) que se comunica com o 
barramento de dados. A primeira instrução (código fictício 00000000: carregar o imediato no 
Acumulador) é transferida para barramento de dados. 
 
Passo 2: a primeira instrução é colocada pelo processador (sinal de habilitação) no IR 
(Instruction Register – Registrador de instruções). O processador decodifica (interpreta) a 
instrução e “descobre” no código que o operando de destino é o Acumulador e que o 
operando de origem está na próxima posição de memória. 
 
Passo 3: o processador incrementa o contador de programa, envia o endereço (201) para o 
barramento de endereço e habilita a linha de controle da memória de programa. O dado lido 
(00110101) está no barramento de dados. 
 
Passo 4: o dado vai para o Acumulador, dirigido por sinais adequados gerados pela UCT 
(Unidade de Controle e Temporização). Neste ponto, completa-se a execução da primeira 
instrução: o valor 53 (00110101) está no Acumulador. 
 
Passo 5: o processador incrementa novamente o PC, coloca o endereço (202) no MAR e 
habilita a memória para leitura do conteúdo endereçado. O código (fictício) da segunda 
instrução (00000001: Carregar o imediato para o Registrador Temporário) é colocado no 
barramento de dados. 
 
Passo 6: o código da segunda instrução é armazenado no IR e interpretado, para orientar a 
UCT a gerar os sinais de controle. O processador já “sabe” que há um outro operando na 
próxima posição, cujo destino é o Registrador temporário. 
 
Passo 7: o processador incrementa o contador de programa, envia o endereço (203) para o 
barramento de endereço e habilita a linha de controle da memória de programa. A UCT vai 
gerar os sinais que preparam o Registrador para receber o dado. 
 
 
 10 
Passo 8: o dado lido vai para o Registrador Temporário, dirigido pelos sinais gerados pela 
UCT. Neste ponto, completa-se a execução da segunda instrução: o valor 165 (10100101) está 
no Registrador Temporário. 
 
Passo 9: o processador incrementa o contador de programa, envia o endereço (204) para o 
barramento de endereço e habilita a linha de controle da memória de programa. O conteúdo 
lido vai para o barramento de dados. 
 
Passo 10: o Registrador de Instruções recebe o dado do barramento o qual, em seguida, é 
decodificado, de modo que a UCT gera os sinais que vão dirigir a atuação da ULA. O 
processador envia os sinais para a ULA executar a adição dos dois conteúdos (Acumulador + 
Registrador Temporário). A unidade lógica e aritmética é um circuito combinacional: está 
sempre operando com suas entradas, de acordo com suas linhas de seleção (acionadas pelos 
sinais de controle). Isto significa que à sua saída já está presente o valor correspondente à 
soma de 53 com 165, ou seja, 218 (11011010), resultado da execução da terceira instrução do 
fragmento, bastando uma “autorização” para ser carregado no Acumulador. 
 
Passo 11: a autorização referida no passo 10 também é um sinal de controle enviado pela 
UCT ao habilitador do Acumulador. Executa-se, assim, o que seria a quarta instrução do 
fragmento. Não se trata de uma nova instrução porque nenhum código foi buscado na 
memória. O valor antigo do Acumulador é perdido (substituído). O resultado está disponível 
no Acumulador. 
 
Passo 12 em diante (não contemplados neste fragmento-exemplo): o processador repete seu 
ritual de busca à próxima instrução, decodificação e execução. 
 
2.3 Considerações sobre desempenho 
 
 Numa visão simplificada, o desempenho de um sistema se refere ao intervalo de tempo 
em que ele executa um programa (tempo de resposta, tempo de execução) ou um grupo de 
programas (throughput, taxa de transferência efetiva). Esta seção descreve sucintamente 
formas de medida, e os principais fatores que influenciam no desempenho global de um 
sistema, apesar de não ser exatamente o foco deste trabalho. 
 
 11 
 O tempo gasto total (em segundos) para completar uma tarefa computacional, que 
inclui os acessos à memória e ao disco, as atividades de entrada e saída e o overhead 
(processamento ou armazenamento em excesso) é a medida usual de desempenho de um 
sistema de computacional. 
 Os projetistas usam a freqüência (constante) do clock para medir a velocidade do 
hardware. Por exemplo, um ciclo de clock igual a 2ηs corresponde a uma freqüência de 
500MHz. Uma alternativa é a MIPS (Million Instruction Per Second), que especifica a taxa de 
execução de instruções, mas não considera a capacidade de executar mais ou menos trabalho, 
não servindo, portanto, para comparar máquinas com conjuntos de instruções diferentes. 
Outra é a métrica denominada MFLOPS (Million Floating-Point Operations Per Second), que 
relaciona o número de operações de ponto-flutuante (adição, subtração, multiplicação ou 
divisão), aplicadas a operandos expressos em precisão simples ou dupla, com o tempo de 
execução. 
 Além da velocidade do processador, representada pela frequência do clock, as 
características essenciais para se determinar o desempenho de um computador são: o 
comprimento do código que pode ser trabalhado nos barramentos, as instruções já 
implementadas em hardware, a memória de trabalho e os dispositivos de entrada e saída. Um 
barramento rápido permite o aumento da velocidade de transferência de dados. 
 Devido à organização dos programas, o processador geralmente acessa repetidas vezes 
as mesmas posições de memória. Para se tirar proveito desta repetição foi criado o cache de 
memória, um banco de memória pequeno, porém rápido, que armazena o conteúdo das 
últimas posições de memória solicitadas pelo processador. Assim, o processador primeiro 
consulta o cache e, se o conteúdo da posição necessária já estiver nele, não será necessário 
esperar que ele seja transferido da memória. Os primeiros processadores trabalhavam apenas 
com cache externo, chamado de nível dois (L2), que armazena dados gerais da memória. 
Depois, começaram a trabalharcom cache interno bem pequeno, muito mais rápido, chamado 
de nível um (L1), utilizado para armazenar instruções e dados da execução dinâmica do 
processador. [LATORRE] 
 
PROJETO DE UM PROCESSADOR MODULAR PARA FINS DIDÁTICOS 
 
CAPÍTULO III 
EVOLUÇÃO DOS PROCESSADORES ELETRÔNICOS 
 
 Este capítulo, baseado em [STALLINGS], apresenta um breve histórico dos 
computadores, um relato sobre como os microprocessadores comerciais foram evoluindo ao 
longo do tempo e um resumo do processo de fabricação dos circuitos integrados de 
microprocessadores. 
 
3.1 Considerações iniciais 
 
 Os computadores digitais (decimais) já existiam no século XIX. Eram mecânicos, 
acionados por manivelas e realizavam cálculos através de um sistema de engrenagens, 
comuns em caixas registradoras da época. No final do século, surgiram os relés, dispositivos 
eletromecânicos formados por peças magnéticas que podem se deslocar, pela ação da corrente 
elétrica, e unir dois contatos metálicos. Estes dispositivos foram usados inicialmente na 
construção de centrais telefônicas. 
 Os relés associados às válvulas termiônicas propiciaram o invento dos primeiros 
computadores eletrônicos digitais, no final da década de 40, utilizados para codificação e 
decodificação de mensagens e alguns cálculos. O alto custo, o tamanho exagerado, a lentidão 
dos relés – que demoravam mais que um milésimo de segundo para fechar um circuito –, o 
alto consumo de energia e problemas de aquecimento inviabilizavam estes equipamentos para 
uso pessoal. De qualquer forma, já aparecia o conceito de processador digital e, 
inevitavelmente para a época, ele era composto de vários módulos. 
 Vários pesquisadores começaram a procurar alternativas para os componentes digitais. 
O primeiro projeto de transistor foi apresentado em 1947, ainda utilizando um bloco de 
Germânio, um dos semicondutores mais pesquisados na época, e três filamentos de Ouro. Um 
filamento era o polo positivo, outro o polo negativo, e o terceiro tinha a função de controle. 
 Durante a década de 50, os modelos foram sendo aperfeiçoados. Assim, a válvula foi 
substituída pelo transistor porque este gastava uma fração de energia gasta por ela e, ao 
mesmo tempo, era muito mais rápido na comutação. Uma outra grande evolução ocorreu com 
a substituição do Germânio pelo Silício, que permitiu a redução de custos e miniaturização. 
Surgiram então os primeiros computadores pessoais, já na década de 70. 
 
 13 
3.2 Microprocessadores comerciais 
 
 Nesta seção, por razões de simplificação, são relacionados apenas os processadores 
(ou microprocessadores) lançados pela Intel. 
 
3.2.1 Primeiros processadores 
 
 O primeiro microchip (circuito integrado de microprocessador) – o 4004 – foi lançado 
pela Intel, em 1971. Bastante rudimentar, processava em apenas 4 bits por vez e operava a 1 
MHz. O processador 4004 demorava 10 ciclos para processar cada instrução, o que equivale a 
100.000 instruções por segundo. Pouco tempo depois, a Intel lançou um novo processador que 
fez sucesso durante muitos anos, o 8080, um processador de 8 bits que operava 2 MHz. O 
8085 pode ser considerado uma variante do 8080. O 8088 era uma versão econômica do 8086, 
que havia sido lançado pela Intel em 78. Quando a IBM estava desenvolvendo seu 
computador pessoal, chegou a ser cogitado o uso do 8086, mas acabou sendo escolhido o 
8088 devido ao seu baixo custo. Tanto o 8086 quanto o 8088 são processadores de 16 bits. A 
diferença entre eles é que o 8088, apesar de internamente trabalhar com palavras binárias de 
16 bits, usava um barramento de apenas 8 bits, ou seja, apesar de processar 16 bits de dados 
de cada vez, ele se comunicava com os demais periféricos, como placas de vídeo, discos, etc. 
usando palavras de apenas 8 bits. Isso permitiu à IBM utilizar componentes mais baratos no 
PC, já que na época componentes de 16 bits eram extremamente caros. O PC original da IBM 
foi lançado em agosto de 81. Possuía apenas 64 Kbytes de memória RAM, um monitor MDA 
mono de 12 polegadas, usava uma unidade de disquetes de 5 1/4 de apenas 160 Kbytes, e 
vinha sem disco rígido. O sistema operacional usado era o MS-DOS 1.0. Dois anos depois, foi 
lançado o PC XT, que, apesar de continuar usando o 8088 de 4,77 MHz, vinha com 256 
Kbytes de RAM, um disco rígido de 10 Mbyte, monitor CGA e o MS-DOS 2.0. 
 Um detalhe importante na rápida evolução dos processadores é que ela não foi 
acompanhada por muitas placas periféricas, por questões econômicas e também para permitir 
a compatibilidade de novos equipamentos com equipamentos antigos. O processador permite 
a comunicação com estas placas através de um barramento de menor capacidade, ou seja, é 
possível um processador 64 bits trocar informações com placas de 8, 16, 32 bits. 
 
 14 
3.2.2 Processador 286 
 
 Com o 286 surgiu a segunda geração de processadores, sendo ele o único exemplar. 
Este processador introduziu diferenças significativas em relação aos processadores da 
primeira geração, uma delas, um marco no desenvolvimento dos processadores: o modo 
protegido. 
 
3.2.3 Processador 386 
 
 O 386 foi o primeiro processador de 32 bits – operava, tanto internamente, quanto 
externamente a 32 bits. Este processador continuou com o modo real para manter 
compatibilidade com os processadores anteriores, mas seu modo protegido era mais evoluído 
que o do processador 286. Foi a partir daí que começaram a aparecer os sistemas operacionais 
multitarefa, capazes de executar vários programas em separado, protegidos um da 
“capacidade destrutiva” do outro. Os sistemas operacionais gráficos se tornaram possíveis 
com este novo recurso. Seu coprocessador matemático5 era o 387. 
 
3.2.4 Processador 486 
 
 O 486 foi um melhoramento do 386. Além de adicionadas algumas instruções, a 
versão original possuía processador matemático interno e não um circuito integrado à parte. 
Dessa forma, a velocidade de processamento matemático é inerente ao processador. 
 
3.2.5 Pentium 
 
 A Intel registrou a marca Pentium para ter um nome próprio para um novo e poderoso 
processador de 64 bits de barramento. Possui vários clocks internos diferentes que chegam a 
200 MHz e, também, cache interno. A melhora do desempenho que destaca o Pentium em 
relação aos anteriores é que, a partir dele, foi usado nos processadores da família Intel, o 
recurso do paralelismo. Na verdade, um Pentium equivale a dois processadores 486 em um só 
componente, com um algoritmo de processamento paralelo. Assim, as operações, quando 
possível, são desmembradas em operações elementares e executadas aos pedaços. 
 
5
 FPU (Floating Point Unit– Unidade de Ponto Flutuante), é outro nome pelo qual o coprocessador matemático é 
também chamado. 
 
 15 
3.2.6 Pentium Pro 
 
 O Pentium Pro marca o início da sexta geração de microprocessadores. Sua arquitetura 
foi usada como base para o Pentium II e o Pentium III, assim como para o Xeon e o Celeron, 
processadores examinados mais adiante. Ele possui três unidades de execução e é preditivo: 
monitora 20 a 30 instruções à frente no software, analisa quais instruções são dependentes de 
cada resultado, criando uma lista otimizada dessas instruções. Baseadas nesta lista, instruções 
são carregadas especulativamente. Isto permite que ele consiga realizar três instruções em um 
único ciclo, agilizando o trabalho em sistemas que utilizam processamento paralelo. 
 
3.2.7 Pentium II 
 
 O Pentium II foi lançado em 1997, sendo compatível com todas as arquiteturas Intel 
anteriores. Ele é um processador baseado no Pentium Pro, com cache L1 de 32 Kbytes, 
separada em dois blocos 16 Kytes para dados e instruções, cache L2 interna de 512 Kbytes e 
suporte para a tecnologia MMX (Math Matrix Extensions). Estruturalmente, a principal 
alteração do Pentium II foiutilizar um conector em vez de um soquete para efetuar a 
montagem da placa mãe. A Intel também utilizou a tecnologia AGP (Advanced Graphics 
Surppot), que é um conjunto de chips gráficos com acesso dedicado á memória principal do 
computador, memória com ECC (Error Correction Code) e compatibilidade com discos 
rígidos com ultra DMA (Dynamic Memory Acess). 
 
3.2.8 Pentium III 
 
 Os primeiros modelos do Pentium III eram montados em um cartucho parecido com o 
do Pentium II, encaixados na placa-mãe através de um conector. Depois, foi lançado um outro 
modelo em que o sistema de encaixe é um soquete. As inovações importantes do Pentium III 
foram a utilização da tecnologia SSE (Streaming SIMD6 Extensions) – um conjunto de 70 
novas instruções – e a arquitetura com dois barramentos independentes DIB (Dual 
Independent Bus). 
 Assim como no Pentium II o processador Pentium III adotou o sistema de memória 
cache externa ao processador. 
 
6
 Instruções SIMD (Single Instruction Multiple Data) são utilizadas para a resolução de problemas de 
engenharia, em que existem estruturas de dados regulares como vetores e matrizes. 
 
 16 
3.2.9 Pentium IV 
 
 O Pentium IV contém 144 novas instruções em relação à tecnologia SSE usada no 
Pentium III. A novidade é o uso de registradores de 128 bits. O Pentium IV “conversa” com a 
memória RAM usando 128 bits por vez, mas continua sendo um processador de 32 bits, pois 
utiliza a mesma arquitetura básica de 386. 
 
3.2.10 Celeron 
 
 Há muitas características semelhantes no Pentium IV e no Celeron, cuja as unidades 
lógicas aritméticas (ULA) trabalham no dobro da freqüência do núcleo do processador. As 
instruções deste processador aceleram a operação da aplicação que tenha sido compilada 
usando estas instruções. Aplicações típicas que se beneficiam dessas instruções são 
codificação de vídeo, sincronização de threads7 e conversão de números de pontos flutuante 
em inteiros. 
 
3.2.11 Xeon 
 
 A partir do Pentium II, para cada processador de uso geral, a Intel lançou também uma 
versão voltada para o mercado de servidores, os chamados Xeon (pronuncia-se “zion”). o 
processador Xeon reconhece mais memória RAM, permite trabalhar em ambiente 
multiprocessado8 e possui um desempenho muito maior que os processadores convencionais. 
A configuração de multiprocessamento simétrico (mais de um processador no mesmo micro) 
não funciona em sistemas operacionais comuns como o Windows 9x e o Windows ME e os 
recursos oferecidos pelas placas-mãe, para esses processadores tem recursos caros que 
normalmente só são interessantes para servidores. 
 Em 2005 a Intel lançou oficialmente o último membro da sua família de processadores 
o qual ainda não tinha uma versão de 64 bits: o Xeon MP, um processador voltado para 
servidores multiprocessados contendo quatro ou mais processadores, baseado na micro-
arquitetura do Pentium IV. 
 
7
 Thread é uma seqüência de instruções que vão ser executadas num programa, independentemente umas das 
outras. 
8
 Multiprocessados, placas-mãe com vários processadores instalados sobre elas. 
 
 17 
 3.3 Como são Fabricados os chips de processadores 
 
 O componente principal na fabricação de circuitos integrados é o transistor. As 
condições de corte e de saturação são utilizadas na modelagem dos dois estados de 
chaveamento. Usando a região ativa, também é possível modelar outros componentes, como 
diodos, resistores e capacitores. A mudança de estado de um transistor comanda a mudança 
de estado de outros estágios, permitindo processar dados binários. Estas mudanças de estado 
podem ser feitas bilhões de vezes por segundo, obviamente gerando calor na conversão de 
energia elétrica. É por isso que, quanto mais rápidos se tornam os processadores, mais eles se 
aquecem e consomem energia. 
 Quando se desenvolveu a tecnologia para construir vários transistores sobre o mesmo 
substrato de Silício, a fabricação de processadores teve seu custo bastante reduzido. Foi assim 
com o primeiro microchip comercial, lançado pela Intel em 1971 com o nome de 4004, um 
processador de apenas 4 bits composto por pouco mais de 2000 transistores. 
 O elemento básico para a construção de qualquer chip é um waffer, obtido através da 
fusão do Silício com produtos químicos que permitem sua dopagem. Inicialmente são 
produzidos cilindros de 20 a 30 centímetros de diâmetro, que são cortados em fatias bastante 
finas que, por sua vez, são polidas para se obter os waffers. Um waffer é usado para produzir 
vários processadores que serão separados e encapsulados individualmente, ao final da 
produção. 
 A primeira etapa do processo é oxidar a parte superior do waffer, transformando-o em 
dióxido de silício. Isto é obtido expondo o waffer a gases corrosivos e altas temperaturas. A 
fina camada de dióxido de silício que se forma é que será usada. Em seguida, é aplicada uma 
camada bastante fina de um material fotossensível sobre a camada de dióxido de silício. 
Usando uma máscara especial, é projetada luz ultravioleta que vai incidir em apenas em 
algumas regiões da superfície. A máscara tem um padrão diferente para cada área do 
processador, de acordo com o desenho (projeto) que se pretende obter. A técnica descrita aqui 
é chamada de litografia óptica. 
 A camada fotossensível é originalmente sólida, mas ao ser atingida por ultravioleta 
transforma-se numa substância gelatinosa, que pode ser facilmente removida. Depois de 
remover as partes moles da camada fotossensível restam algumas áreas do dióxido de silício 
expostas, e outras que continuam cobertas pelo que restou da camada. O waffer é então, 
banhado com um produto especial que remove as partes do dióxido de silício que não estão 
protegidas pelo material que restou da camada fotossensível. O restante continua intacto. 
 
 18 
Finalmente, é removida a parte que ficou da camada fotossensível. Como se têm substâncias 
diferentes, é possível remover uma camada de cada vez, ora o dióxido de silício, ora a própria 
camada fotossensível. Com isto é possível se desenhar as estruturas necessárias para formar 
os transistores, elementos básicos que compõem os circuitos do processador. 
 Começa, então, a construção da segunda camada do transistor. Inicialmente, o waffer 
passa novamente pelo processo de oxidação inicial, sendo coberto por uma nova camada 
(desta vez bem mais fina) de dióxido de silício – a base. Apesar da inclusão desta nova 
camada, o desenho conseguido anteriormente é mantido. Em seguida, é aplicada sobre a 
estrutura uma camada de cristal de silício e sobre esta é aplicada uma nova camada de 
material fotossensível. Novamente, o waffer passa pelo processo de litografia, desta vez 
utilizando uma máscara diferente e conveniente para o projeto e mais uma vez a parte da 
camada fotossensível que foi exposta à radiação é removida, deixando expostas partes das 
camadas de cristal de silício e dióxido de silício, que são removidas em seguida. Assim como 
na etapa anterior, o que restou da camada fotossensível é removido e termina, então, a 
construção da segunda camada dos transistores. 
 Uma das principais etapas do processo de fabricação é a aplicação das impurezas, que 
transformarão partes do waffer de silício em um material condutor. Os íons aderem apenas à 
camada de silício que foi exposta no processo anterior e não às camadas de dióxido de silício 
ou na camada de cristal de silício. 
 É adicionada, então, a terceira camada, composta de um tipo diferente de cristal de 
silício e novamente aplicada uma camada fotossensível sobre tudo. O waffer passa novamente 
pelo processo de litografia, usando mais uma vez uma máscara diferente e de acordo com o 
projeto. As partes das matérias fotossensíveis expostas à luz são removidas, expondo partesdas camadas inferiores, que são removidas em seguida. A terceira camada do transistor está 
pronta, faltam apenas os filamentos condutores, três para cada transistor. Uma finíssima 
camada de metal é aplicada sobre a estrutura anterior. Nos processadores atuais, que são 
produzidos através de uma técnica de produção de 0,13 mícrons, esta camada metálica tem 
equivalente a apenas 6 átomos de espessura. O processo de aplicação da camada 
fotossensível, de litografia e de remoção das camadas é aplicado mais uma vez, com o 
objetivo de remover as partes indesejadas da camada de metal. Os transistores estão prontos. 
 Cada processador é constituído por milhões de transistores. Um Pentium II possui 
pouco mais de 9 milhões de transistores, um Pentium II já possui 22 milhões, um Athlon 
possui 35 milhões de transistores, enquanto um Pentium IV possui incríveis 42 milhões. 
Graças ao atual nível de miniaturização, estas quantidades fabulosas de transistores ocupam 
 
 19 
uma área muito pequena. Um Athlon, por exemplo, mede apenas 112 milímetros quadrados. 
Com isto, um único waffer de silício é suficiente para produzir vários processadores, que são 
depois separados e encapsulados numa estrutura de silício, que os protege e facilita o 
manuseio e instalação. O formato do encapsulamento varia de processador para processador. 
 
3.4 Considerações finais 
 
 Uma característica fácil de observar no gráfico da Figura 3.1, e que também é 
ilustrada na Tabela 3.1, é a crescente densidade de elementos (transistores por pastilha). Do 
ponto de vista da Figura 3.1, o projeto de um processador modular estaria “na contramão da 
história”, mas, conforme previamente esclarecido, de acordo com os objetivos traçados para 
este trabalho, os microprocessadores não fazem parte do foco do projeto. Estas informações 
foram aqui colocadas a título de ilustração e, no máximo, guiariam a evolução de futuros 
trabalhos nesta linha. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 3.1 – Crescimento do número de transistores da CPU. [STALLINGS] 
 
 
1975 1970 1980 1985 1990 1995 2000 2005 
4004 
8086 
80286 
386 
486 
Pentium 
Pentium Pro Pentium II 
103 
104 
105 
106 
107 
108 
 
 20 
Tabela 3.1 – Evolução dos microprocessadores da Intel [STALLINGS] 
MICROPROCESSADORES DA DÉCADA DE 70 
Processador 4004 8008 8080 8086 8088 
Lançamento 15/11/1971 1/4/1972 1/4/1974 8/6/1978 1/6/1979 
Clock 108 kHz 108 kHz 2MHz 5/8/10 MHz 5/8 MHz 
Barramento 4 bits 8 bits 8 bits 16 bits 8 bits 
Transistores 2.300 3.500 6.000 29.000 29.000 
Tamanho 10 mícrons 6 mícrons 6 mícrons 3 mícrons 3 mícrons 
Cap. Endereço 640 bytes 16 kbytes 64 kbytes 1 megabyte 1 megabyte 
Mem. Virtual — — — — — 
MICROPROCESSADORES DA DÉCADA DE 80 
Processador 286 386DX 386SX 486DX 
Lançamento 1/2/1982 17/10/1985 16/6/1988 10/4/1989 
Clock 6/12,5 MHz 16/33 MHz 16/33 MHz 25/50 MHz 
Barramento 16 bits 32 bits 16 bits 32 bits 
Transistores 134.000 275.000 275.000 1,2 milhão 
Tamanho 1,5 1 1 0,8 
Cap. Endereço 16 megabytes 4 gigabytes 4 gigabytes 4 gigabytes 
Mem. Virtual 1 gigabyte 64 terabytes 64 terabytes 64 terabytes 
MICROPROCESSADORES DA DÉCADA DE 90 
Processador 486SX Pentium® Pentium® Pro Pentium® II 
Lançamento 22/4/1991 22/3/1993 1/11/1995 7/5/1997 
Clock 16/33 MHz 60/166 MHz 150/200 MHz 200/300 MHz 
Barramento 32 bits 32 bits 64 bits 64 bits 
Transistores 1,185 milhão 3,1 milhões 5,5 milhões 7,5 milhões 
Tamanho 1 0,8 0,6 0,6 
Cap. Endereço 4 megabytes 4 gigabytes 64 gigabytes 64 gigabytes 
Mem. Virtual 64 gigabytes 64 terabytes 64 terabytes 64 terabytes 
 
 
 
 
 
 
 
 
 
 
 
 
 21 
PROJETO DE UM PROCESSADOR MODULAR PARA FINS DIDÁTICOS 
 
CAPÍTULO IV 
PROPOSTAS DE PROCESSADORES MODULARES 
 
 Neste capítulo se define “processador modular” e se listam as características de duas 
propostas de processador-computador modular: o SAP (Simple As Possible) e o VSM (Very 
Simple Microprocessor). O projeto do processador modular, objeto deste trabalho de 
conclusão de curso, é descrito no Capítulo V. 
 
4.1 Processador modular 
 
 A modularidade ajuda o pesquisador ou projetista a resolver problemas, dividindo-os 
em um conjunto de problemas menores, cujas soluções combinadas representam a solução 
total. 
 Um processador modular é um circuito digital construído em blocos funcionais que 
propiciam o projeto flexível de um sistema e favorecem a compreensão do todo, a partir do 
domínio das partes. 
 O conjunto de módulos proposto neste projeto é baseado em circuitos integrados 
digitais tradicionais, de relativa simplicidade de manuseio e de aquisição. A interligação 
lógica destes módulos permite a construção de um sistema em diferentes níveis de 
complexidade. A flexibilidade admite mudanças de rumos e novas propostas de projeto, 
alterando-se, por exemplo, a arquitetura ou o conjunto de instruções, com a implementação de 
unidades alternativas. 
 É claro que, para tirar proveito deste recurso, um aluno (usuário) deve primeiro 
adquirir os conhecimentos de arquitetura que orientarão posicionamento dos módulos e as 
interconexões que resultarão na função lógica desejada. 
 
4.2 Trabalhos relacionados 
 
 Os computadores SAP (Simple As Possible – Simples Quanto Possível) [MALVINO] 
e o VSM (Very Simple Microprocessor – Microprocessador Muito Simples) [SICARD] são as 
duas propostas mais difundidas de aparatos computacionais modulares utilizados para fins 
didáticos. Na verdade, o projeto do SAP tem três gerações, sendo o VSM uma versão 
 
 22 
avançada do SAP-1, em termos de conjunto de instruções, apesar de ser 4 bits, enquanto o 
SAP é de 8 bits são considerados computadores primitivos, devido à pobreza de recursos 
implementados, já que foram projetados para principiantes, com a finalidade de introduzir 
conceitos relacionados à operação interna, razão pela qual são examinados neste texto. A 
segunda geração do SAP, o SAP-2 (8 bits), inclui instruções de salto que possibilitam a 
construção de estruturas de controle de fluxo, como seleção e repetição. O SAP-3 já é uma 
proposta de processador de 8 bits comparável ao microprocessador 8085, incluindo instruções 
complexas como as de manipulação de pilha. 
 
4.2.1 SAP-1 
 
 O SAP-1 é considerado um computador porque armazena o programa e os dados antes 
de começar os cálculos. Depois, executa automaticamente as instruções de programa, sem a 
intervenção humana. Com uma arquitetura organizada em barramentos, todas as saídas dos 
registradores para o mesmo são de três estados (tri-state), o que possibilita a transferência de 
dados ordenadamente, sem risco de colisão. A Figura 4.1 mostra um diagrama 
correspondente à arquitetura do SAP-1. Os números nas setas da Figura 4.1 significa o 
número de bits ou de vias. 
 
 23 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 4.1 – Arquitetura do SAP [MALVINO]. 
 
4.2.1.1 Descrição do funcionamento do SAP-1 
 
 O funcionamento inicia com um Reset, antes da cada processamento no computador, 
que “zera” o Contador de Programa. Sua tarefa é fornecer à memória o endereço da próxima 
instrução a ser buscada e executada. Pode contar de 0000 a 1111 (de zero a quinze em 
Contador de 
Programa 
Entrada 
e REM 
RAM 
16 x 8 
Registrador de 
Instruções 
controlador / 
sequencializad
or 
8 8 
8 
8 
8 
8 
8 
8 
4 
4 
4 
4 4 
4 
12 
8 
8 
Acumulador 
A 
Somador / 
Subtrator 
Registrador 
B 
Registrador 
de Saída 
Indicação Visual 
binária 
4 
Barramento 
ML 
CLK 
PC 
CLK 
CLR 
PE 
CE 
IL 
CLK 
CLR 
IE 
CLK 
CLR 
CLK 
CLR 
AL 
CLKAE 
US 
UE 
BL 
CLK 
OL 
OBUUAAIIMPP LLESELELCELEC 
 
 24 
decimal). A primeira instrução é armazenada no endereço binário 0000 (zero), a segunda 
instrução no endereço 0001 (um), a terceira no endereço 0010 (dois) e assim por diante. 
 Quando começa o processamento ou execução no computador, o contador de 
programa envia o endereço 0000 à memória, e se incrementa para 0001. Depois de a primeira 
instrução ser buscada e executada, o contador envia o endereço 0001 e, novamente, é 
incrementado. A segunda instrução é buscada e executada, o endereço 0010 é fornecido à 
memória para o desenvolvimento da próxima instrução, o PC é novamente incrementado e 
continua assim até a última instrução (parada). 
O endereço no contador de programa é retido no registrador de endereço de memória. 
Mais tarde o REM aplica este endereço de 4 bits à RAM, onde uma operação de leitura será 
realizada. 
 A memória RAM pode ser programada por meio dos registradores, de chave de dados 
e de endereços. Isto permite armazenar um programa e os dados antes de um processamento 
no computador. 
 Durante o processamento do computador, a RAM recebe endereço de 4 bits do REM e 
nela se executa uma operação de leitura. Desta maneira a instrução ou palavra de dados 
armazenada é colocada no barramento para uso em alguma outra parte no computador. 
 O registrador de Instruções faz parte da unidade de controle. Para buscar uma 
instrução, o computador realiza uma operação de leitura de memória, coloca o conteúdo do 
local de memória endereçado no barramento. Ao mesmo tempo, o registrador de instruções é 
preparado para carregamento na próxima transição positiva de clock. 
 O conteúdo do registrador de instruções é dividido em dois nibbles (2x4 bits). O 
nibble superior é uma saída de dois estados que vai diretamente ao bloco rotulado, 
“controlador-sequencializador”. O nibble inferior é uma saída de três estados que é lida no 
barramento quando necessário. 
Antes de cada processamento, um sinal CLR é enviado ao contador de programa e um 
sinal CLR é enviado ao registrador de instruções. Isso zera o contador de programa e elimina 
a última instrução no registrador de instruções. 
 Um sinal clock (CLK) é enviado a todos os registradores de memória intermediária, 
sincronizando a operação do computador ou seja, todas as transferências ocorrem na transição 
positiva de um sinal CLK comum. Observa-se que um sinal CLK também vai ao contador de 
programa. 
 
 25 
 O Acumulador é um registrador de memória inrtermediária que também armazena 
respostas durante um processamento. A saída de dois estados liga-se diretamente ao somador-
subtrador. A saida de três estados vai ao barramento. 
O somador-subtrador é um circuito combinacional, o que siginifica que seu conteúdo 
pode variar logo que suas palavras de entrada variem. 
 O registrador B é um registrador de memória intermediária, usado em operações 
aritméticas. Um baixo Lb e uma transição positiva do clock carregam a palavra do barramento 
dentro do registrador B. A saída de dois estados do registrador B alimenta o somador-
subtrador, fornecendo o número a ser adcionado ou subtraído do conteúdo do acumulador. 
 No final de um processamento, o acumulador contém a resposta ao problema que está 
sendo resolvido. Neste ponto para transferir a resposta para o mundo exterior. Usa-se o 
registrador de saída. Quando Ea for alto e Lo for baixo, a próxima transição positiva do clock 
carregará a palavra do acumulador no registrador de saída. O registrador de saida, é conectado 
aos circuitos de interface que comandam dispositivos periféricos, por exemplo um display. 
O indicador visual em binário é uma fileira de oito diodos emissores de luz (LEDs). 
Usada para mostrar o conteúdo da porta de saída. Após a transferência da resposta ao 
acumulador pode-se ver a resposta em forma binária. 
 
4.2.1.2 Conjunto de instruções do SAP 
 
 Antes de se programar em baixo nível é preciso saber o conjunto de instruções e 
operações básicas que podem ser executadas. No caso em análise tem o seguinte conjunto de 
instruções: 
 a) LDA, carrega o acumulador com conteúdo relativo ao endereço hexadecimal 
colocado em seguida; 
 b) ADD, acrescenta o conteúdo do local e memória especificado ao conteúdo do 
acumulador, substituindo o conteúdo original; 
 c) SUB, subtrai um conteúdo do local e memória especificado do conteúdo do 
acumulador; 
 d) OUT, trasfere o conteúdo do acumulador para a porta de saída, e HTL suspende o 
processamento de dados. 
 
 
 
 
 26 
4.2.1.3 Programação do SAP 
 
 A programação do SAP é realizada através de códigos específicos, que são utilizados 
para carregar palavras e instruções chamadas, também, de código operação. Devido ao 
projeto do SAP ser teórico e não houver nenhuma implementação deste, o autor não 
mencionol como os dados poderiam entrar na memória (falta uma unidade de entrada). 
 
4.2.2 VSM 
 
 O VSM (Very Simple Microprocessor = microprocessador muito simples), é uma 
versão atualizada da arquitetura de computador muito popular, o SAP. Também introduz os 
conceitos básicos da arquitetura de um microprocessador da maneira mais simples possível. 
 
4.2.2.1 Estrutura física do VSM 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 4.2 - Arquitetura do VSM. 
CLOCK 
CLEAR 
 
CONTROLADOR 
• HABILITA SINAIS 
• DESABILITA SINAIS 
CONTADOR 
DE 
PROGRAMA 
MEMORIA 
DO 
PROGRAMA 
(8x8) 
BARRAMENTO 
 INTERNO 
 
ACUMULADOR 
“A” 
 
UNIDADE 
ARITMÉTICA 
 
ACUMULADOR 
“B” 
 
REGISTRADOR 
DE ENTRADA 
 
REGISTRADOR 
DE SAÍDA 
DADOS 
EXTERNOS 
DADOS 
EXTERNOS 
 
 27 
O contador de programa, conta de 0000 até 1111, monitora o endereço das instruções 
ativas. Inicialmente está ativado com o endereço 0000. Assim, o processador inicia da 
primeira instrução da memória. 
 A memória do programa, armazena o programa a ser executado. Cada linha de 
programa tem o tamanho de 8 bits: Os quatro bits mais significantes são instruções próprias, 
os bits menos significantes são os dados que acompanham as intruções, quando estes forem 
necessários. 
 O acumulador “A” armazena temporariamente os resultados computados pelo 
microprocessador. O acumulador é um registrador de 4 bits. Quando o resultado é requisitado 
o acumulador coloca o mesmo no barramento interno. 
 O acumulador “B”, é semelhante ao acumulador “A”. É utilizado principalmente para 
o fornecimento do número a ser adicionado ou subtraído do acumulador “A”. 
 A unidade aritmética realiza as operacões de adição e subtração, entre outras do 
gênero, como incremente e decremeto. 
 O registrador de entrada dá a oportunidade de entrar com dados do mundo exterior 
para dentro do processador. 
 O registrador de saída, transfere os dados do barramento interno para o mundo 
exterior. Normalmente, a instrução é realizada no final do programa para apresentar o 
resultado final. O registrador de saída armazena os dados na borda descendente do pulso de 
clock. Este registrador é conectado a uma interface com o display de saída para mostrar o 
resultado ao usuário. 
 
4.2.2.2 Conjunto de instruções do VSM 
 
As instruções básicas estão listadas a seguir. As mesmas estão codificadas em 4 bits, 
portanto sendo possível obter apenas 16 instruções. 
 a) Não Operação (NOP = 0000) 
 A instrução NOP não tem efeito interno nos registradores. Contudo, esta instrução é 
muito interessante para entender-se como trabalha o controle de um ciclo básico de clock. 
 b) Adição (ADD = 0001) 
 O conteúdo do acumulador “A” é adicionado ao dado que vem como parâmetro, e o 
resultado é atualizado no acumulador “A”. A adição é feita com 2 números de 4 bits. O carry 
é ignorado. 
 c) Subtração (SUB = 0010) 
 
 28 
 O conteúdo do acumulador“A” é subtraído ao dado que vem como parâmetro e o 
resultado é atualizado no acumulador “A”. A subtração é realizada nos 4 bits. O carry é 
ignorado. 
 d) Obter Entrada (IN = 0011) 
 O conteúdo da porta de entrada é transferido para o acumulador “A”. Enviar os dados 
para a saída (OUT = 0100).Os dados do acumulador “A” é armazenado na porta de saída. A 
porta de saída é um registrador de 4 bits que armazena os valores conservando-se 
permanentemente até que a instrução “OUT” seja novamente atualizada. 
 e) Carregar Instrução (LDA = 0101) 
 LDA serve para carregar o acumulador “A” com um valor. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 29 
PROJETO DE UM PROCESSADOR MODULAR PARA FINS DIDÁTICOS 
 
CAPÍTULO V 
DESCRIÇÃO DO PROJETO 
 
 Este capítulo descreve o projeto de um processador modular de 8 bits, na verdade, um 
sistema mínimo, idealizado para auxiliar o aprendizado de conteúdos de sistemas digitais em 
cursos de tecnologia. É difícil para acadêmicos de Engenharia tratar, com autoridade, de 
aspectos da teoria didática porque não se tem muito contato com ela no decorrer do curso 
regular. Além disso, num trabalho de conclusão de curso, o espaço é limitado para se 
aprofundar nas ideias. Por estas razões, é possível que alguns conceitos aqui veiculados não 
tenham sido colocados de modo muito preciso, do ponto de vista educacional. 
 
5.1 Aspectos didáticos 
 
 A teoria construtivista, representada principalmente por Piaget, Bruner e Vygotsky, 
trata de conteúdos que mais se aproximam da idéia do projeto. Segundo esta teoria, o 
aprendizado é um processo ativo, no qual o aprendiz adquire, filtra, transforma informações e 
constrói novos conceitos, habilidades, atitudes e valores, baseado em conhecimentos prévios e 
nos que estão sendo estudados e no contato com a realidade, o meio ambiente e as outras 
pessoas. Considerando a possibilidade de alteração no desempenho de uma pessoa pela 
interferência de outra, o professor traduz a informação para um formato adequado à 
compreensão do aluno e incentiva suas descobertas. Os materiais servem de ponte entre o que 
o aprendiz já sabe e o que ele deve saber a fim de que o material possa ser aprendido de forma 
significativa. Dessa forma, o ambiente proposto, é um facilitador do desenvolvimento 
cognitivo porque, ao usá-lo, o aprendiz precisa filtrar a informação recebida em sala de aula e 
transformá-la numa nova informação através de inferência de hipóteses, assim, construindo 
um novo conhecimento. [MOTA] 
 
5.1.1 Métodos e técnicas de ensino 
 
 Para que o processo ensino-aprendizagem seja proveitoso e produza os resultados 
esperados, é necessário que se adotem métodos e técnicas adequadas. Métodos são roteiros 
gerais para executar as atividades e técnicas são as formas concretas de proceder. É claro que 
 
 30 
cada conteúdo exige técnicas próprias e, em geral, variadas. Um projeto como este aqui 
apresentado não tem a pretensão de ser “o caminho”, apenas mais um recurso. 
 A educação sistemática é uma atividade de socialização, de relacionamento. É claro 
que o método socializado é importante; conhecimentos podem ser adquiridos por meio da 
colaboração, mas é o indivíduo quem aprende e não o grupo. Sem individualização a 
aprendizagem não se realiza, porque ela é um fenômeno ou processo essencialmente 
individual. Por isso, ela é muito importante, tanto no início de uma atividade (para oferecer 
elementos de conhecimento e informação), como no final (para aprofundar e integrar os 
conhecimentos adquiridos). Para efeito de utilização deste projeto, um método que reúne os 
dois aspectos (sócio-individualizado) deve ser pesquisado. 
 As técnicas mais utilizadas na sala de aula são expositivas, como a palavra do 
professor, os cartazes e os audiovisuais, têm como característica principal transmitir uma 
mensagem codificada, com ideias estruturadas, mas não fechadas (idealmente). Estas técnicas 
são ruins quando a interpretação é limitada ou condicionante. De preferência, devem ser 
associadas à experimentação, na busca de rendimento. 
 
5.1.2 Recursos didáticos 
 
 Meios de ensino ou recursos didáticos são os materiais utilizados pelo professor e 
pelos alunos para a organização e condução metódica do processo de ensino/aprendizagem 
[LIBÂNEO]. Devem ser utilizados para facilitar, acelerar e intensificar a aprendizagem, 
auxiliando o professor no papel de facilitador. Os meios que são mais utilizados são a própria 
voz do professor, quadro-de-giz ou quadro-branco, ilustrações, projeções e materiais 
impressos. Com o desenvolvimento tecnológico, equipamentos e aparelhos eletroeletrônicos 
estão cada vez presentes na sala de aula, com destaque para o computador, em particular, os 
programas simuladores, com uma vasta biblioteca de componentes que permitem o 
desenvolvimento de experimentos sem a necessidade dos componentes reais. Esses programas 
podem servir para aulas de reforço, autodidatismo, levantamento de previsões de resultados e 
Ensino a Distância, mas dificilmente vão satisfazer aqueles que gostam de ver o resultado 
concreto. Para estes, a saída são as matrizes de contato, as placas de circuito impresso e os kits 
didáticos. É nesta categoria que o projeto se encaixa, como um recurso ativo e dinâmico, que 
permite ao educando tentar e testar novas alternativas. 
 
 
 
 31 
5.2 Descrição dos módulos 
 
 Há muitas empresas produzindo microprocessadores para finalidades diversas e outras 
tantas montando microcomputadores a partir de microprocessadores, memórias e outros 
componentes. O computador aqui descrito é genérico e primitivo, projetado em módulos 
baseados em circuitos integrados tradicionais, mas que possibilita observar algumas 
características comuns dos microcomputadores usuais, como a arquitetura (registradores e 
barramentos), o conjunto de instruções (transferência de dados, operações lógicas e 
aritméticas) e os sinais de controle. O fato de ser modular traz a vantagem da flexibilidade de 
montagem das experiências e a possibilidade de visualizar os dados nos diversos pontos do 
circuito numa execução passo-a-passo. 
 A Figura 5.1 mostra um sistema típico montado com elementos examinados neste 
projeto. A descrição a seguir se orienta nesta figura. Não se trata de protótipo porque o 
processador é modular, ou seja, as combinações podem variar dependendo da proposta 
adotada. Nem todos os módulos projetados ou previstos foram implementados, apenas um 
sistema mínimo para teste, conforme é descrito no Capítulo VI. 
 
5.2.1 Unidade de controle e temporização 
 
 Os sinais gerados pelo circuito de sincronismo afetam todos os eventos da CPU. São 
linhas de saída que indicam aos outros componentes quando eles devem operar, por exemplo, 
governar a leitura e escrita da memória ou habilitar algum alimentador do barramento (buffer 
tri-state). O computador inicia com um reset automático, pode reiniciar a qualquer momento, 
usando a tecla RST. 
 A UCT possui um gerador de onda quadrada chamado de clock automático e um 
contador em anel. Um multiplexador seleciona entre o clock automático (do gerador) e um 
clock manual de uma chave sem rebatimento. O clock automático de alguns quilohertz (não é 
importante o valor, só a faixa) atua no modo de execução direta (R); o manual no modo passo 
a passo (RPP). 
 O contador em anel é um circuito de recirculação de 4 bits baseado em registrador de 
deslocamento que ativa uma das 4 saídas de cada vez, e na mesma sequência. Estas saídas 
determinam as quatro fases do ciclo de busca e execução da instrução. Na primeira, o 
endereço apontado pelo PC é armazenado no registrador de endereços. Na segunda, o PC, ou 
seja, aponta para o endereço da próxima instrução. Na terceira, o endereço armazenado no 
 
 32 
MAR é transferido para o barramentode endereços e a memória é habilitada para leitura. O 
conteúdo da memória deve corresponder a um código de uma instrução, cujo valor é 
armazenado no Registrador de Instruções. Na quarta, a instrução é executada. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 5.1 – Diagrama de blocos do Projeto 
 
PC 
 
ACC 
B 
FLAGS 
IR 
CLOCK 
RST LD R RPP 
BUFFER 
RAM 
MBR 
DADOS 
REG 
ENTRADA 
END 
MAR 
 
UCT 
Teclado 
Teclado U D E 
 
 33 
5.2.2 Unidade Lógica e Aritmética 
 
 A Unidade Lógica e Aritmética é responsável por realizar as a maioria das operações 
do processador, tais como: adição, subtração, incrementação, inversão, AND, OR e XOR. As 
entradas de seleção, geradas a partir da decodificação da instrução, definem o tipo de 
operação a ser realizada. 
 A partir da operação da ULA, também podem ser carregados os bits indicadores do 
status da máquina num registrador chamado de FLAGS. Os indicadores típicos são de estouro 
de aritmética natural (carry), de estouro de aritmética sinalizada (overflow), de zero, de sinal e 
auxiliar. 
 
5.2.3 Memória de trabalho 
 
 A memória RAM é programada através do Registrador de Entrada, no modo programa 
(LD). Recebe sinais de habilitação para escrita: o conteúdo do barramento de dados é 
armazenado no endereço indicado. Sinais de controle vão alternando endereços e dados de 
acordo com os comandos: Acima (U), Abaixo (D) e Enter (E). No momento apropriado, a 
interface de teclado interrompe a CPU através de linhas especiais. 
 
5.2.4 Registradores de dados e endereços 
 
 Na fase de busca da instrução ou no modo de carga do programa, o Registrador de 
Endereços armazena o conteúdo do Contador de Programa. 
 Os registradores de dados são o Acumulador (ACC) bidirecional e o Registrador 
Temporário (B). 
 
5.2.5 Contador de programa 
 
 O Contador de Programa indica o endereço da próxima instrução a ser executada. Tem 
sinais associados que permitem sua carga paralela (com o dado do barramento de dados), 
habilitador de contagem, habilitador de transferência (para o barramento de dados), direção 
(crescente ou decrescente) e inicialização (reset) 
 
 
 
 34 
5.3 Observações gerais 
 
 O decodificador de instruções está dentro da UCT e utiliza uma tabela armazenada em 
uma ROM (Read Only Memory – Memória só de leitura, não volátil) para gerar sinais a partir 
da instrução fornecida pelo Registrador de Instruções. 
 As setas mais grossas no diagrama da Figura 5.1 indicam vias de dados com mais de 
um bit. Monitores auxiliares, construídos na forma de barra de leds podem ser usados para 
indicar o estado destas vias a qualquer instante. 
 Todos os dispositivos que alimentam o barramento de dados (MBR, PC, ACC, saída 
da ULA, FLAGS e Registrador de Entrada) são tri-states para evitar colisão de dados. Num 
instante qualquer considerado apenas um destes dispositivos funciona como fonte para o 
barramento; os outros, ou recebem dados, ou ficam em alta impedância. Os sinais de controle 
deterninam a fonte da vez. 
 O Registrador de Entrada também pode operar na entrada de dados em tempo de 
execução, associado à tecla Enter. 
 Além das operações (e instruções) lógicas e aritméticas, o sistema pode executar 
instruções de transferência (carga e armazenamento). Registradores de trabalho podem ser 
implementados na RAM, usando modo de endereçamento indireto (variável de memória). 
 Alguns recursos não foram contemplados no projeto: a pilha do programa e seu 
respectivo apontador, as funções de teste, comparação e desvio e a fonte de alimentação. Eles 
foram relacionados no capítulo de conclusão como sugestões para futuros trabalhos. 
 O sistema usa um bloco de dois displays de sete segmentos para indicar o conteúdo do 
barramento de dados em hexadecimal. O registrador (buffer) de saída é opcional. 
 
 
 
 
 
 
 
PROJETO DE UM PROCESSADOR MODULAR PARA FINS DIDÁTICOS 
 
CAPÍTULO VI 
IMPLEMENTAÇÕES E TESTES 
 
 
 Neste capítulo são abordados os aspectos práticos do projeto do processador digital 
para fins estudantis. Será demonstrado o desenvolvimento da ULA de oito bits, os 
barramentos de dados e instruções, uma interface para a saída de dados, um banco de 
registradores que auxiliarão no controle e processamento dos dados, uma unidade de entrada 
(chave de dados) e, por último, uma estrutura para apoiar todos os componente citados 
anteriormente. 
6.1 Desenvolvimento da ULA de oito bits 
 
 O primeiro questionamento no projeto foi o desenvolvimento de uma ULA oito bits, a 
partir de duas de quatro bits (74ls181), com as mesmas instruções originais. A integração 
entre as duas ULAs, foi feita utilizando o CI 74182 (Carry Look-Ahead). O funcionamento 
deste é baseado em uma geração e propagação de um carry instantaneamente, ou seja, sempre 
que for feita a soma binária entre dois ou mais bits 1. 
Os bits de entrada dos operandos da ULA são inseridos através de duas vias de dados 
de oito bits: um dado vindo do acumulador (ACC = registrador A) ou do registrador auxiliar 
(registrador temporário). O resultado da operação lógica ou aritmética, de acordo com as 
linhas de seleção, pode ser enviado a um registrador de saída, ou ao ACC, neste caso para 
atender a algumas instruções que necessitam de várias operações aritméticas ou lógicas sobre 
o mesmo valor de entrada. 
 A Figura 6.1 mostra o circuito que integra as duas ULAs de quatro bits utilizando um 
carry look ahead, já que a função deste é efetuar uma operação aritmética obtendo o bit de 
carry diretamente a partir dos bits de entrada, sem precisar dos bits de saída de cada ULA, 
necessitando apenas dos pinos P e G, os carrys do CI 74181 [FARCHILD I]. As linhas de 
dados foram omitidas para não sobrecarregar a figura e fixar a atenção no que é de interesse 
imediato a integração das ULAs de 4 bits. 
 
 
 
 36 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 6.1 - Circuito de Expansão de duas ULAs de 4 bits para uma ULA d e 8 bits 
 
A ULA em questão possui 48 instruções, sendo 32 aritméticas e 16 lógicas. 
Considerando a aplicação no trabalho proposto, foram utilizadas 7 lógicas e 4 aritméticas, 
conforme a Tabela 6.1. 
 
 Tabela 6. 1 - Instruções Utilizadas na ULA 
Instruções Lógicas 
(M = 1) 
Instruções Aritméticas 
(M = 0) 
Cn = X Cn = 0 Cn = 1 
S3 S2 S1 S0 Operação S3 S2 S1 S0 Operação S3 S2 S1 S0 Operação 
0 0 0 0 Not A 0 0 0 0 Inc A 1 0 0 1 A plus B 
0 1 0 1 Not B 0 1 1 0 A minus B 1 1 1 1 A dec B 
0 1 1 0 A xor B -------- --------- --------- ---------- 
1 0 1 0 B -------- --------- --------- ---------- 
1 0 1 1 A and B -------- --------- --------- ---------- 
1 1 1 0 A or B -------- --------- --------- ---------- 
1 1 1 1 A -------- --------- --------- --------- 
 
Os componentes utilizados para a montagem de um protótipo a nível de teste do 
circuito mostrado na Figura 6.1 foram: 
Cn+x 
74LS181 
74LS181 
ULA 1 
ULA 0 
74LS182 
Carry Look-
Ahead 
Cn 
G 
G 
P 
P 
Cn 
G0 
G1 
 
P0 
P1 
Cn 
13 
12 
15 
15 
17 
17 
Co 16 
7 
7 
4 
3 
2 
1 
C0 
 
 37 
• Um matriz de contatos (Protoboard) 
• Fios finos 
• Uma fonte de energia de 5 volts 
• Dip Switches (pequenas chaves seletoras) 
• 22 Resistores de 220Ω 
• 2 CIs 74LS181 (ULA de 4 bits) 
• 1 CI 74 LS182 (Carry Look-Ahead) 
• 9 LEDs 
A Figura 6.2 mostra como ficou o protótipo de testes da ULA de oito bits após ter 
sido montada e feitas as simulações necessárias para o funcionamento correto desta.

Outros materiais