You are on page 1of 61

UNIVERSIDADE CATLICA DE GOIS DEPARTAMENTO DE COMPUTAO GRADUAO EM ENGENHARIA DE COMPUTAO

PROJETO DE UM PROCESSADOR MODULAR PARA FINS DIDTICOS

JULIANO ADRNO MAIA TAYNARA MENDONA SANTANA

JUNHO 2009

PROJETO DE UM PROCESSADOR MODULAR PARA FINS DIDTICOS

JULIANO ADRNO MAIA TAYNARA MENDONA SANTANA

Trabalho de Concluso de Curso apresentado por Juliano Adorno Maia e Taynara Mendona Santana Universidade Catlica de Gois, como parte dos requisitos para obteno do ttulo de Bacharel em Engenharia de Computao.

Prof. Carlos Alexandre F. de Lima, MsC. Orientador

Prof. Jeov Martins Ribeiro, Esp. Coordenador de TCC

ii

DEDICATRIA

Aos familiares, pela compreenso, carinho e confiana em ns depositada. Aos colegas, pelo apoio e incentivo.

iii

Divide as dificuldades que tenhas de examinar em tantas partes quantas for possvel, para uma melhor soluo. Ren Descartes

iv

AGRADECIMENTOS

Ao Professor Carlos Alexandre, orientador acadmico, pelo apoio e confiana depositada. Aos professores Charles dos Santos Costa e Felippe dos Santos e Silva, pela inestimvel colaborao. Coordenao do Departamento de Computao e ao Departamento de Engenharia da Universidade Catlica de Gois por ter ajudado de forma inestimvel na execuo deste trabalho. Ao colega Emanuel de Azevedo, pela colaborao e apoio. Tambm o apoio tcnico do laboratorista Valdemar Flores Jnior.

RESUMO

Apresenta-se um projeto sobre o desenvolvimento de um processador para fins didticos. Este trabalho tem como caractersticas dar apoio ao ensino das disciplinas de Arquitetura de Computadores e Sistemas Digitais. Caracteriza-se por implementar seus mdulos de forma discreta mostrando a funo de cada componente interno da arquitetura bsica de uma unidade processadora de dados. Neste trabalho foram desenvolvidos alguns componentes, mas dando a oportunidade para projetos futuros onde podero ser desenvolvidos os dispositivos restantes e toda a sincronizao entre eles finalizando assim a implementao de um processador.

Palavras-Chave: Processador, Arquitetura de Computadores, Fins didticos, Componentes.

vi

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.

vii

PROJETO DE UM PROCESSADOR MODULAR PARA FINS DIDTICOS SUMRIO LISTA DE FIGURAS LISTAS DE TABELAS LISTA DE ABREVIATURAS E SIGLAS I. INTRODUO II. FUNDAMENTOS DE PROCESSADORES 2.1. Principais Elementos de um Computador 2.1.1 Processador e Microprocessador 2.1.1.1 Unidade de Controle 2.1.1.2 Unidade Lgica e Aritmtica 2.1.1.3 Conjunto de Registradores 2.1.2 Memria 2.1.3 Dispositivo de Entrada e Sada 2.1.4 Barramento do Sistema 2.2 Funcionamento de um Processador Primitivo 2.3 Consideraes sobre Desempenho III. EVOLUO DOS PROCESSADORES ELETRNICOS 3.1 Consideraes Iniciais 3.2 Microprocessadores 3.2.1 Primeiros Processadores 3.2.2 Processador 286 3.2.3 Processador 386 3.2.4 Processador 486 3.2.5 Pentium 3.2.6 Pentium PRO 3.2.7 Pentium II 3.2.8 Pentium III 3.2.9 Pentium IV 3.2.10 Celeron 3.2.11 Xeon 3.3 Como so Fabricados os chips de Processadores 3.4 Consideraes Finais IV. PROPOSTAS DE PROCESSADORES MODULARES 4.1 Processador Modular 4.2 Trabalhos Relacionados 4.2.1 SAP 1 4.2.1.1 Descrio do Funcionamento do SAP 1 4.2.1.2 Conjunto de Instrues do SAP 4.2.1.3 Programao do SAP 4.2.2 VSM 4.2.2.1 Estrutura Fsica do VSM 4.2.2.2 Conjunto de Instrues do VSM V. DESCRIO DO PROJETO 5.1 Aspectos didticos 5.1.1 Mtodos e Tcnicas de ensino 5.1.2 Recursos didticos 5.2 Descrio dos mdulos x xi xii 1 3 3 4 5 5 6 6 6 7 7 10 12 12 13 13 14 14 14 14 15 15 15 16 16 16 17 19 21 21 21 22 23 25 26 26 26 27 29 29 29 30 31 viii

5.2.1 Unidade de controle e temporizao 5.2.2 Unidade lgica aritmtica 5.2.3 Memria de trabalho 5.2.4 Registrador de dados e endereo 5.2.5 contador de programa 5.3 Observaes Gerais VI. IMPLEMENTAES E TESTES 6.1 Desenvolvimento da ULA de oito bits 6.2 Construo de cabos e barramentos 6.3 Desenvolvimento de um display 6.4 Desenvolvimento de registradores 6.5 Desenvolvimento da unidade 6.6 Integrao entre os mdulos VII. CONCLUSO E PROPOSTAS PARA PROJETOS FUTUROS Referncias

31 33 33 33 33 34 35 35 39 40 41 42 44 46 48

ix

LISTA DE FIGURAS Figura 2.1 Elementos bsicos de um computador Figura 2.2 Arquitetura simplificada de um processador Figura 2.3 Fluxo de instrues e dados (Exemplo) Figura 3.1 Evoluo dos microprocessadores da Intel Figura 4.1 Arquitetura do funcionamento do SAP-1 Figura 4.2 Arquitetura do VSM Figura 5.1 Diagrama de blocos do projeto Figura 6.1 Circuito de Expanso de duas ULAs de 4 bits para a ULA de 8 bits Figura 6.2 Prottipo da ULA de 8 bits, montado em um Protoboard Figura 6.3 Layout do circuito impresso da ULA de 8 bits Figura 6.4(a) Lado da fiao impressa Figura 6.4(b) Placa da ULA, lado dos componentes Figura 6.5(a) cabo de 2 vias Figura 6.5(b) cabo de 8 vias Figura 6.5(c) cabo de 6 vias Figura 6.5(d) cabo de 1 via Figura 6.6 Dispositivo de entrada Figura 6.7 Prottipo de um registrador de 8 bits Figura 6.8 Circuito de uma chave de dados de 1 bits Figura 6.9 Circuito implementado das chaves de dados de 8 bits Figura 6.10 Arquitetura proposta no projeto de desenvolvimento do processador para fins didticos Figura 6.11(a) Vista frontal da bancada Figura 6.11(b) Vista posterior da bancada Figura 6.11(c) Bancada pronta com os mdulos em funcionamento 4 5 8 20 23 26 32 36 36 38 38 39 40 40 40 40 41 42 43 43 44 45 45 45

LISTA DE TABELAS Tabela 3.1 Evoluo dos microprocessadores da Intel Tabela 6.1 Instrues utilizadas na ULA Tabela 6.2 Converso do cdigo BCD para o hexadecimal 20 36 41

xi

LISTA DE ABREVIATURAS E SIGLAS PC FPU MMX AGP DMA SSE DIB ULA SIMD CPU SAP VSM REM LED TTL UCP Personal Computer Floating Point Unit Math Matrix Extensions Advanced Graphics Surppot Dynamic Memory Acess). Streaming SIMD Extentions Dual Independent Architetura Unidade Lgica Aritmtica Simple Instruction, Multiple Data Central Processing Unit Simple-As-Possible A Very Simple Microprocessor Registrador de endereo na memria Diodos Emissores de Luz Transistor, Transistor Logic Unidade Central de Processamento

xii

PROJETO DE UM PROCESSADOR MODULAR PARA FINS DIDTICOS CAPTULO I INTRODUO Nos dias de hoje, a grande importncia e utilizao de computadores e sistemas microprocessados, desperta em estudantes de cursos tecnolgicos 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 simulaes. Este trabalho de concluso de curso consiste no projeto de um processador modular para fins didticos, de oito bits, construdo a partir de circuitos integrados tradicionais TTL, idealizado para o auxlio de disciplinas como Arquitetura de Computadores e Sistemas Digitais. A motivao deste vem das dificuldades que os alunos encontram, principalmente na disciplina de Arquitetura e Organizao de Computadores, em entender e visualizar certos conceitos sobre a estrutura interna de um microprocessador bsico. 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, atravs da construo, verificao e acompanhamento das etapas de funcionamento passo a passo. A eficcia deste tipo de abordagem pde ser confirmada em entrevistas informais com alunos e professores da Computao e da Engenharia Eltrica da UCG (Universidade Catlica de Gois), que desenvolveram, durante um semestre, projetos de relgio digital e minicalculador. Esse projeto d oportunidade a que alunos possam construir um processador modular, treinando e aplicando conceitos de processamento de dados na prtica. Pode ser utilizado sob roteiros elaborados por professores da rea quando houver um conjunto j montado e pode ser usado para experimentao de novas propostas, o que representa uma novidade em trabalhos da UCG: a perspectiva didtica. A abordagem didtica est caracterizada na possibilidade de modularizar a soluo de um problema. O usurio pode identificar atravs de rtulos cada parte da estrutura interna do processador. A construo de pequenos sistemas utilizando uma UCP pode ser feita pelos usurios, desde que estes tenham um conhecimento razovel de Sistemas Digitais e Arquitetura de Computadores. Pelas mesmas razes tambm fica fcil a manuteno em seus aparatos, haja vista que, se houver um problema em um dispositivo, s remov-lo e verificar onde est a falha.

O texto deste trabalho foi organizado em sete captulos. Esta Introduo, de acordo com as diretrizes do Departamento de Computao, corresponde ao Captulo I. No Captulo II se caracteriza um sistema, em particular um computador genrico elementar, seus aspectos construtivos e operacionais. Um fragmento de programa referido ao nvel da mquina usado para descrever o seu funcionamento. O Captulo III apresenta, a ttulo de estado da arte, um breve histrico dos computadores e microprocessadores, sua evoluo e um resumo sobre processo de fabricao. O Captulo IV explora duas propostas de mquinas simples, relacionadas com a filosofia deste trabalho, elaboradas com o intuito de demonstrao e construo de projetos. No Captulo V se define e caracteriza o objeto principal de estudo deste trabalho, o processador modular, que construdo em forma de vrias placas cada uma com uma funo especfica que, em conjunto, desempenham o papel do processador. Os aspectos prticos sobre o desenvolvimento do projeto, representado por uma ULA (Unidade Lgica Aritmtica) de oito bits, vias de comunicao entre dispositivos, unidade de sada (um visualizador de dados), registradores de propsito geral e chaves de dados so vistos no Captulo VI. Na concluso do trabalho (Captulo VII) so colocados aspectos sobre as dificuldades e os resultados obtidos na implementao do projeto, alguns argumentos em defesa viabilidade do processador modular como recurso alternativo no ensino de Arquitetura e Organizao de Computadores e possveis projetos futuros, tais como a implementao dos mdulos restantes ou, ainda, a ampliao do Projeto. A metodologia usada na elaborao deste trabalho envolveu a pesquisa tanto de conceitos tcnicos, como didticos, os fatores determinantes no desenvolvimento de um projeto desta natureza. A parte tcnica teve dois focos bsicos de investigao: a pesquisa bibliogrfica (conceitos, fundamentos e componentes dedicados) e as tcnicas de implementao, sempre visando a comodidade do futuro usurio. Na parte experimental foram utilizados recursos prprios (a maioria dos componentes, placas e servios) e da UCG (suporte dos profissionais, laboratrios e ferramentas). O conhecimento adquirido ao longo do curso de Engenharia de Computao, nos contedos de disciplinas como Eletrnica, Sistemas Digitais e Arquitetura e Organizao de Computadores foi o que propiciou o desenvolvimento e a elaborao prtica do trabalho.

PROJETO DE UM PROCESSADOR MODULAR PARA FINS DIDTICOS CAPTULO II FUNDAMENTOS DE PROCESSADORES O processador a parte essencial de um computador digital. O computador digital um sistema sequencial programvel, destinado ao processamento automtico de informaes na forma binria1 por exemplo, a resoluo de problemas, superviso e controle de mquinas e aparelhos etc. , que se conecta com o mundo exterior atravs de um conjunto de entradas e de sadas. 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 aes elementares, responsveis pelo cumprimento de uma tarefa, so executadas uma aps a outra. programvel porque permite alteraes nas tarefas sem a necessidade de modificar ou substituir partes fsicas do sistema. Entradas so dispositivos ou linhas eltricas por onde se fornecem os dados que determinam e condicionam a tarefa a se cumprir, enquanto sadas so dispositivos que fornecem os resultados. Este captulo, apesar de fazer parte de um trabalho sobre processador, introduz um resumo sobre componentes de um computador elementar, necessrio ao acompanhamento do trabalho, porque, para efeito de demonstrao prtica, o sistema mnimo 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 mquina que um programador deve conhecer para compreender o que o programa realizar em tempo de execuo. Ela representada fisicamente na estrutura e na organizao de componentes de hardware, que se referem ao funcionamento interno do computador, e logicamente no conjunto de instrues e nos modos de endereamento. [STALLINGS] Apesar da grande evoluo ocorrida na computao desde o aparecimento dos primeiros computadores, o diagrama bsico apresentado na Figura 2.1 ainda pode ser utilizado para descrever um sistema computacional atual. O processador responsvel pelo tratamento de informaes armazenadas em memria (programas em cdigo de mquina e

Informao binria aquela que se apresenta codificada em cadeias de bits (dgitos binrios), zeros e uns.

dados). A memria trata do pelo armazenamento dos programas e dados. Os perifricos so os dispositivos responsveis pelas entradas e sadas de dados, ou seja, pelas interaes entre o computador e o mundo externo. Interconectando-se um processador a alguns circuitos auxiliares e de memria, foi possvel construir-se um computador inteiro em uma nica placa. O barramento interliga eletricamente estes componentes: uma via de comunicao por onde transitam todos os dados tratados pelo computador.
Mundo Exterior

Memria

Processador

Dispositivos de E/S

Barramento

Figura 2.1 Elementos bsicos de um computador. [MONSERRAT]

2.1.1 Processador e microprocessador O processador considerado o crebro do computador. Sua funo bsica executar instrues, fazer clculos e tomar decises, de acordo com um programa armazenado na memria. O processador tambm conhecido por UCP (Unidade Central de Processamento) ou, em ingls, 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 nmero de chips, distribudos ao longo de uma ou mais placas de circuito impresso. A filosofia do presente projeto, para atendimento questo didtica, segue esta ltima orientao, sendo seu processador formado de placas separadas, aqui chamadas de mdulos. Um processador (ou microprocessador) composto basicamente de trs elementos: a unidade de controle, a unidade lgica e aritmtica e o conjunto de registradores. A Figura 2.2 ilustra de forma simplificada estas partes e sua inter-relao.

Barramento de endereos

Unidade Lgica e Aritmtica

Registrador temporrio Acumulador


Barramento de dados

Contador de Programa Decodificador de instrues Registrador de Instrues

Linhas de controle

Linhas de entrada

Unidade de Controle (e Temporizao)

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 execuo do programa e a utilizao dos dados nas operaes que os manipulam. Assim, ela gerencia todos os eventos associados operao do computador, particularmente as chamadas interrupes2. Associado unidade de controle est um circuito de temporizao (clock), representado por um oscilador, que fornece os pulsos utilizados para sincronizar e ditar a medida de tempo de transferncia de dados no computador. A frequncia do clock um dos fatores relacionados com a capacidade de processamento do computador. Este, no entanto, no objeto de estudo do presente trabalho. 2.1.1.2 Unidade lgica e aritmtica Componente essencial no sistema computacional, a ULA (Unidade Lgica e Aritmtica), ou ALU (Arithmetic Logic Unit), realiza as operaes lgicas e aritmticas a serem realizadas no contexto de uma tarefa. O parmetro da ALU que influencia no desempenho global de um sistema computacional a quantidade de operaes que ela suporta.

Interrupes so mecanismos que interrompem a execuo normal para atender a um evento prioritrio. [STALLINGS]

2.1.1.3 Conjunto de registradores Os registradores so dispositivos de armazenamento temporrio e de acesso rpido, porque se localizam no interior do processador. Possuem um nmero fixo de bits, geralmente usado para definir o tamanho do processador. Cada registrador tem uma funo especfica, por exemplo, o Acumulador, que operando na maioria das instrues aritmticas, o Contador de Programa, que aponta para prxima instruo a se executar, e o Registrador de Instruo, que armazena o cdigo da instruo. Os registradores de propsito geral, que tambm costumam ter funes especficas, so diretamente acessados pelo programador. O tamanho dos registradores influencia no desempenho global do sistema: quanto maior o registrador, mais fcil realizar operaes com grandes valores, sem precisar usar artifcios. 2.1.2 Memria um conjunto de circuitos capaz de armazenar os dados e os programas a serem executados. H diferentes categorias de memrias: a memria principal o local onde normalmente ficam armazenados os programas e os dados a serem manipulados pelo processador, a memria secundria permite armazenar uma maior quantidade de dados e instrues por um perodo de tempo mais longo e a memria cache, que consiste de uma pequena poro de memria com curto tempo de resposta, geralmente integrada aos processadores, o que permite incrementar o desempenho durante a execuo do programa. 2.1.3 Dispositivos de entrada/sada Atravs dos dispositivos de entrada e sada (I/O, Input/Output), tambm chamados de perifricos, o computador pode armazenar ler, transmitir e receber dados. So equipamentos utilizados como portadores das informaes que o computador processa. Alguns so especficos de entrada; outros apenas de sada. Por exemplo, quando se pressiona uma tecla de um microcomputador, o circuito de interface do teclado envia o cdigo da tecla pressionada para a CPU. Por outro lado, quando a CPU precisa enviar uma mensagem para o usurio, esta colocada na tela do monitor, atravs do circuito chamado de interface de vdeo. claro que h dispositivos que combinam as duas funes.

2.1.4 Barramento do sistema Barramento o caminho em que os dados e sinais de controle trafegam dentro do computador. utilizado para comunicao de sinais digitais e pode ser estabelecido entre dois ou mais elementos do computador (processador, memria, chips da placa-me e perifricos). O tamanho do barramento importante para determinar quantos dados podem ser transmitidos de uma s vez. Uma caracterstica marcante do barramento ser compartilhado: vrios 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, clculos, armazenamento e sada de resultados so tarefas tpicas de um computador. Esta seo examina um exemplo de operao de um processador primitivo, baseado na Figura 2.2, relativo a um fragmento de programa que executa a seguinte lista: 1. 2. 3. 4. Carregar o Acumulador com o valor imediato3 (constante) 53 Carregar o Registrador temporrio com o imediato 165 Adicionar o contedo do Acumulador com o do Registrador Armazenar o resultado no acumulador A descrio a seguir no detalha o aparato eletrnico (hardware) usado para realizar o procedimento, apenas o fluxo de dados dentro do sistema. Tambm no explorado o sincronismo4 das operaes. Opcionalmente, o resultado poderia ser apresentado em um mostrador ou monitor, bastando colocar-se alguma instruo que possa transferi-lo para o dispositivo de sada. Esta direo no foi adotada para reduzir o nmero de passos. previsvel, ainda, a existncia de instrues que disponibilizam o teclado, decodificam caracteres e os enviam para o processador que, por simplicidade, no sero exploradas neste exemplo. O diagrama da Figura 2.3 auxilia na explicao do processo e da participao dos elementos internos do processador na sequncia de eventos. O fluxo de instrues e dados ser descrito em passos, sendo cada passo indicado em um crculo respectivamente numerado
3 4

O operando imediato fica no prprio cdigo da instruo, no pode ser mudado em tempo de execuo. Os pulsos clock estabelecem o momento da ocorrncia de eventos, sincronizam a comunicao entre elementos do hardware.

na Figura 2.3. O processador centraliza e controla todas as operaes, sempre obedecendo sequncia: busca, decodifica e executa. Entretanto, as operaes realizadas so ditadas pelas instrues listadas na memria de programa. Os endereos esto em decimal, os contedos em binrio. Em primeiro lugar, supe-se que os contedos da memria de programa incluem as instrues j carregadas em cinco posies contguas de memria (cdigos fictcios), a partir da posio adotada 200, valor inicial do PC (Progmam Counter contador de programa ou ponteiro de instrues). Apesar aparentemente de ter quatro instrues no fragmento exemplo, so cinco os locais na memria de programa. A principal razo para isto o tamanho da unidade de armazenamento em memria, o byte, que corresponde a uma cadeia de 8 bits. Cada posio-byte tem um endereo nico na memria. Como nem sempre possvel se codificar uma instruo em um nico byte, algumas instrues precisam ser divididas em pores de armazenamento. o caso das duas primeiras instrues que armazenam os respectivos operandos imediatos em bytes separados. Surpreendentemente, a terceira e a quarta instrues so codificadas em um mesmo byte.
Barramento de endereos
10 11 4

Barramento de dados

Unidade Lgica e Aritmtica


10

Acumulador
10

Registrador temporrio
8

8 11 4

MAR

3 5 7 9

Memria de Programa Endereo Contedo ... ... 200 00000000 201 00110101 202 00000001 203 10100101 204 00000011 ... ... Contador de Programa
3 7 5 9 12 2 6 10

1 3 5 7 9

MBR

1 3 5 7 9

Decodificador de instrues

2 6 10

Registrador de Instrues
2 6 10

2 6 10

Unidade de Controle e Temporizao (UCT) Figura 2.3 Fluxo de instrues e dados (Exemplo). Adaptada de [TOKHEIM]

Passo 1: o processador coloca o endereo 200 no barramento. O acesso memria, em geral, feito atravs de um MAR (Memory Address Register Registrador de endereamento memria). Uma linha de controle habilita a leitura do contedo endereado na memria de programa, isto , copia a informao de uma posio de memria para outro local, no caso um MBR (Memory Buffer Register Registrador temporrio de dados) que se comunica com o barramento de dados. A primeira instruo (cdigo fictcio 00000000: carregar o imediato no Acumulador) transferida para barramento de dados. Passo 2: a primeira instruo colocada pelo processador (sinal de habilitao) no IR (Instruction Register Registrador de instrues). O processador decodifica (interpreta) a instruo e descobre no cdigo que o operando de destino o Acumulador e que o operando de origem est na prxima posio de memria. Passo 3: o processador incrementa o contador de programa, envia o endereo (201) para o barramento de endereo e habilita a linha de controle da memria 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 Temporizao). Neste ponto, completa-se a execuo da primeira instruo: o valor 53 (00110101) est no Acumulador. Passo 5: o processador incrementa novamente o PC, coloca o endereo (202) no MAR e habilita a memria para leitura do contedo endereado. O cdigo (fictcio) da segunda instruo (00000001: Carregar o imediato para o Registrador Temporrio) colocado no barramento de dados. Passo 6: o cdigo da segunda instruo 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 prxima posio, cujo destino o Registrador temporrio. Passo 7: o processador incrementa o contador de programa, envia o endereo (203) para o barramento de endereo e habilita a linha de controle da memria de programa. A UCT vai gerar os sinais que preparam o Registrador para receber o dado.

Passo 8: o dado lido vai para o Registrador Temporrio, dirigido pelos sinais gerados pela UCT. Neste ponto, completa-se a execuo da segunda instruo: o valor 165 (10100101) est no Registrador Temporrio. Passo 9: o processador incrementa o contador de programa, envia o endereo (204) para o barramento de endereo e habilita a linha de controle da memria de programa. O contedo lido vai para o barramento de dados. Passo 10: o Registrador de Instrues recebe o dado do barramento o qual, em seguida, decodificado, de modo que a UCT gera os sinais que vo dirigir a atuao da ULA. O processador envia os sinais para a ULA executar a adio dos dois contedos (Acumulador + Registrador Temporrio). A unidade lgica e aritmtica um circuito combinacional: est sempre operando com suas entradas, de acordo com suas linhas de seleo (acionadas pelos sinais de controle). Isto significa que sua sada j est presente o valor correspondente soma de 53 com 165, ou seja, 218 (11011010), resultado da execuo da terceira instruo do fragmento, bastando uma autorizao para ser carregado no Acumulador. Passo 11: a autorizao referida no passo 10 tambm um sinal de controle enviado pela UCT ao habilitador do Acumulador. Executa-se, assim, o que seria a quarta instruo do fragmento. No se trata de uma nova instruo porque nenhum cdigo foi buscado na memria. O valor antigo do Acumulador perdido (substitudo). O resultado est disponvel no Acumulador. Passo 12 em diante (no contemplados neste fragmento-exemplo): o processador repete seu ritual de busca prxima instruo, decodificao e execuo. 2.3 Consideraes sobre desempenho Numa viso simplificada, o desempenho de um sistema se refere ao intervalo de tempo em que ele executa um programa (tempo de resposta, tempo de execuo) ou um grupo de programas (throughput, taxa de transferncia efetiva). Esta seo descreve sucintamente formas de medida, e os principais fatores que influenciam no desempenho global de um sistema, apesar de no ser exatamente o foco deste trabalho.

10

O tempo gasto total (em segundos) para completar uma tarefa computacional, que inclui os acessos memria e ao disco, as atividades de entrada e sada e o overhead (processamento ou armazenamento em excesso) a medida usual de desempenho de um sistema de computacional. Os projetistas usam a freqncia (constante) do clock para medir a velocidade do hardware. Por exemplo, um ciclo de clock igual a 2s corresponde a uma freqncia de 500MHz. Uma alternativa a MIPS (Million Instruction Per Second), que especifica a taxa de execuo de instrues, mas no considera a capacidade de executar mais ou menos trabalho, no servindo, portanto, para comparar mquinas com conjuntos de instrues diferentes. Outra a mtrica denominada MFLOPS (Million Floating-Point Operations Per Second), que relaciona o nmero de operaes de ponto-flutuante (adio, subtrao, multiplicao ou diviso), aplicadas a operandos expressos em preciso simples ou dupla, com o tempo de execuo. Alm da velocidade do processador, representada pela frequncia do clock, as caractersticas essenciais para se determinar o desempenho de um computador so: o comprimento do cdigo que pode ser trabalhado nos barramentos, as instrues j implementadas em hardware, a memria de trabalho e os dispositivos de entrada e sada. Um barramento rpido permite o aumento da velocidade de transferncia de dados. Devido organizao dos programas, o processador geralmente acessa repetidas vezes as mesmas posies de memria. Para se tirar proveito desta repetio foi criado o cache de memria, um banco de memria pequeno, porm rpido, que armazena o contedo das ltimas posies de memria solicitadas pelo processador. Assim, o processador primeiro consulta o cache e, se o contedo da posio necessria j estiver nele, no ser necessrio esperar que ele seja transferido da memria. Os primeiros processadores trabalhavam apenas com cache externo, chamado de nvel dois (L2), que armazena dados gerais da memria. Depois, comearam a trabalhar com cache interno bem pequeno, muito mais rpido, chamado de nvel um (L1), utilizado para armazenar instrues e dados da execuo dinmica do processador. [LATORRE]

11

PROJETO DE UM PROCESSADOR MODULAR PARA FINS DIDTICOS CAPTULO III EVOLUO DOS PROCESSADORES ELETRNICOS Este captulo, baseado em [STALLINGS], apresenta um breve histrico dos computadores, um relato sobre como os microprocessadores comerciais foram evoluindo ao longo do tempo e um resumo do processo de fabricao dos circuitos integrados de microprocessadores. 3.1 Consideraes iniciais Os computadores digitais (decimais) j existiam no sculo XIX. Eram mecnicos, acionados por manivelas e realizavam clculos atravs de um sistema de engrenagens, comuns em caixas registradoras da poca. No final do sculo, surgiram os rels, dispositivos eletromecnicos formados por peas magnticas que podem se deslocar, pela ao da corrente eltrica, e unir dois contatos metlicos. Estes dispositivos foram usados inicialmente na construo de centrais telefnicas. Os rels associados s vlvulas terminicas propiciaram o invento dos primeiros computadores eletrnicos digitais, no final da dcada de 40, utilizados para codificao e decodificao de mensagens e alguns clculos. O alto custo, o tamanho exagerado, a lentido dos rels que demoravam mais que um milsimo 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 vrios mdulos. Vrios pesquisadores comearam a procurar alternativas para os componentes digitais. O primeiro projeto de transistor foi apresentado em 1947, ainda utilizando um bloco de Germnio, um dos semicondutores mais pesquisados na poca, e trs filamentos de Ouro. Um filamento era o polo positivo, outro o polo negativo, e o terceiro tinha a funo de controle. Durante a dcada de 50, os modelos foram sendo aperfeioados. Assim, a vlvula foi substituda pelo transistor porque este gastava uma frao de energia gasta por ela e, ao mesmo tempo, era muito mais rpido na comutao. Uma outra grande evoluo ocorreu com a substituio do Germnio pelo Silcio, que permitiu a reduo de custos e miniaturizao. Surgiram ento os primeiros computadores pessoais, j na dcada de 70.

3.2

Microprocessadores comerciais Nesta seo, por razes de simplificao, so relacionados apenas os processadores

(ou microprocessadores) lanados pela Intel. 3.2.1 Primeiros processadores O primeiro microchip (circuito integrado de microprocessador) o 4004 foi lanado 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 instruo, o que equivale a 100.000 instrues por segundo. Pouco tempo depois, a Intel lanou 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 verso econmica do 8086, que havia sido lanado 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 so processadores de 16 bits. A diferena entre eles que o 8088, apesar de internamente trabalhar com palavras binrias 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 perifricos, como placas de vdeo, 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 lanado em agosto de 81. Possua apenas 64 Kbytes de memria 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 rgido. O sistema operacional usado era o MS-DOS 1.0. Dois anos depois, foi lanado o PC XT, que, apesar de continuar usando o 8088 de 4,77 MHz, vinha com 256 Kbytes de RAM, um disco rgido de 10 Mbyte, monitor CGA e o MS-DOS 2.0. Um detalhe importante na rpida evoluo dos processadores que ela no foi acompanhada por muitas placas perifricas, por questes econmicas e tambm para permitir a compatibilidade de novos equipamentos com equipamentos antigos. O processador permite a comunicao com estas placas atravs de um barramento de menor capacidade, ou seja, possvel um processador 64 bits trocar informaes com placas de 8, 16, 32 bits.

13

3.2.2 Processador 286 Com o 286 surgiu a segunda gerao de processadores, sendo ele o nico exemplar. Este processador introduziu diferenas significativas em relao aos processadores da primeira gerao, 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 evoludo que o do processador 286. Foi a partir da que comearam a aparecer os sistemas operacionais multitarefa, capazes de executar vrios programas em separado, protegidos um da capacidade destrutiva do outro. Os sistemas operacionais grficos se tornaram possveis com este novo recurso. Seu coprocessador matemtico5 era o 387. 3.2.4 Processador 486 O 486 foi um melhoramento do 386. Alm de adicionadas algumas instrues, a verso original possua processador matemtico interno e no um circuito integrado parte. Dessa forma, a velocidade de processamento matemtico inerente ao processador. 3.2.5 Pentium A Intel registrou a marca Pentium para ter um nome prprio para um novo e poderoso processador de 64 bits de barramento. Possui vrios clocks internos diferentes que chegam a 200 MHz e, tambm, cache interno. A melhora do desempenho que destaca o Pentium em relao aos anteriores que, a partir dele, foi usado nos processadores da famlia 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 operaes, quando possvel, so desmembradas em operaes elementares e executadas aos pedaos.
FPU (Floating Point Unit Unidade de Ponto Flutuante), outro nome pelo qual o coprocessador matemtico tambm chamado.
5

14

3.2.6 Pentium Pro O Pentium Pro marca o incio da sexta gerao 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 trs unidades de execuo e preditivo: monitora 20 a 30 instrues frente no software, analisa quais instrues so dependentes de cada resultado, criando uma lista otimizada dessas instrues. Baseadas nesta lista, instrues so carregadas especulativamente. Isto permite que ele consiga realizar trs instrues em um nico ciclo, agilizando o trabalho em sistemas que utilizam processamento paralelo. 3.2.7 Pentium II O Pentium II foi lanado em 1997, sendo compatvel 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 instrues, cache L2 interna de 512 Kbytes e suporte para a tecnologia MMX (Math Matrix Extensions). Estruturalmente, a principal alterao do Pentium II foi utilizar um conector em vez de um soquete para efetuar a montagem da placa me. A Intel tambm utilizou a tecnologia AGP (Advanced Graphics Surppot), que um conjunto de chips grficos com acesso dedicado memria principal do computador, memria com ECC (Error Correction Code) e compatibilidade com discos rgidos 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-me atravs de um conector. Depois, foi lanado um outro modelo em que o sistema de encaixe um soquete. As inovaes importantes do Pentium III foram a utilizao da tecnologia SSE (Streaming SIMD6 Extensions) um conjunto de 70 novas instrues e a arquitetura com dois barramentos independentes DIB (Dual Independent Bus). Assim como no Pentium II o processador Pentium III adotou o sistema de memria cache externa ao processador.
Instrues SIMD (Single Instruction Multiple Data) so utilizadas para a resoluo de problemas de engenharia, em que existem estruturas de dados regulares como vetores e matrizes.
6

15

3.2.9 Pentium IV O Pentium IV contm 144 novas instrues em relao tecnologia SSE usada no Pentium III. A novidade o uso de registradores de 128 bits. O Pentium IV conversa com a memria RAM usando 128 bits por vez, mas continua sendo um processador de 32 bits, pois utiliza a mesma arquitetura bsica de 386. 3.2.10 Celeron H muitas caractersticas semelhantes no Pentium IV e no Celeron, cuja as unidades lgicas aritmticas (ULA) trabalham no dobro da freqncia do ncleo do processador. As instrues deste processador aceleram a operao da aplicao que tenha sido compilada usando estas instrues. Aplicaes tpicas que se beneficiam dessas instrues so codificao de vdeo, sincronizao de threads7 e converso de nmeros de pontos flutuante em inteiros. 3.2.11 Xeon A partir do Pentium II, para cada processador de uso geral, a Intel lanou tambm uma verso voltada para o mercado de servidores, os chamados Xeon (pronuncia-se zion). o processador Xeon reconhece mais memria RAM, permite trabalhar em ambiente multiprocessado8 e possui um desempenho muito maior que os processadores convencionais. A configurao de multiprocessamento simtrico (mais de um processador no mesmo micro) no funciona em sistemas operacionais comuns como o Windows 9x e o Windows ME e os recursos oferecidos pelas placas-me, para esses processadores tem recursos caros que normalmente s so interessantes para servidores. Em 2005 a Intel lanou oficialmente o ltimo membro da sua famlia de processadores o qual ainda no tinha uma verso de 64 bits: o Xeon MP, um processador voltado para servidores multiprocessados contendo quatro ou mais processadores, baseado na microarquitetura do Pentium IV.

Thread uma seqncia de instrues que vo ser executadas num programa, independentemente umas das outras. 8 Multiprocessados, placas-me com vrios processadores instalados sobre elas.

16

3.3

Como so Fabricados os chips de processadores O componente principal na fabricao de circuitos integrados o transistor. As

condies de corte e de saturao so utilizadas na modelagem dos dois estados de chaveamento. Usando a regio ativa, tambm possvel modelar outros componentes, como diodos, resistores e capacitores. A mudana de estado de um transistor comanda a mudana de estado de outros estgios, permitindo processar dados binrios. Estas mudanas de estado podem ser feitas bilhes de vezes por segundo, obviamente gerando calor na converso de energia eltrica. por isso que, quanto mais rpidos se tornam os processadores, mais eles se aquecem e consomem energia. Quando se desenvolveu a tecnologia para construir vrios transistores sobre o mesmo substrato de Silcio, a fabricao de processadores teve seu custo bastante reduzido. Foi assim com o primeiro microchip comercial, lanado pela Intel em 1971 com o nome de 4004, um processador de apenas 4 bits composto por pouco mais de 2000 transistores. O elemento bsico para a construo de qualquer chip um waffer, obtido atravs da fuso do Silcio com produtos qumicos que permitem sua dopagem. Inicialmente so produzidos cilindros de 20 a 30 centmetros de dimetro, que so cortados em fatias bastante finas que, por sua vez, so polidas para se obter os waffers. Um waffer usado para produzir vrios processadores que sero separados e encapsulados individualmente, ao final da produo. A primeira etapa do processo oxidar a parte superior do waffer, transformando-o em dixido de silcio. Isto obtido expondo o waffer a gases corrosivos e altas temperaturas. A fina camada de dixido de silcio que se forma que ser usada. Em seguida, aplicada uma camada bastante fina de um material fotossensvel sobre a camada de dixido de silcio. Usando uma mscara especial, projetada luz ultravioleta que vai incidir em apenas em algumas regies da superfcie. A mscara tem um padro diferente para cada rea do processador, de acordo com o desenho (projeto) que se pretende obter. A tcnica descrita aqui chamada de litografia ptica. A camada fotossensvel originalmente slida, mas ao ser atingida por ultravioleta transforma-se numa substncia gelatinosa, que pode ser facilmente removida. Depois de remover as partes moles da camada fotossensvel restam algumas reas do dixido de silcio expostas, e outras que continuam cobertas pelo que restou da camada. O waffer ento, banhado com um produto especial que remove as partes do dixido de silcio que no esto protegidas pelo material que restou da camada fotossensvel. O restante continua intacto. 17

Finalmente, removida a parte que ficou da camada fotossensvel. Como se tm substncias diferentes, possvel remover uma camada de cada vez, ora o dixido de silcio, ora a prpria camada fotossensvel. Com isto possvel se desenhar as estruturas necessrias para formar os transistores, elementos bsicos que compem os circuitos do processador. Comea, ento, a construo da segunda camada do transistor. Inicialmente, o waffer passa novamente pelo processo de oxidao inicial, sendo coberto por uma nova camada (desta vez bem mais fina) de dixido de silcio a base. Apesar da incluso desta nova camada, o desenho conseguido anteriormente mantido. Em seguida, aplicada sobre a estrutura uma camada de cristal de silcio e sobre esta aplicada uma nova camada de material fotossensvel. Novamente, o waffer passa pelo processo de litografia, desta vez utilizando uma mscara diferente e conveniente para o projeto e mais uma vez a parte da camada fotossensvel que foi exposta radiao removida, deixando expostas partes das camadas de cristal de silcio e dixido de silcio, que so removidas em seguida. Assim como na etapa anterior, o que restou da camada fotossensvel removido e termina, ento, a construo da segunda camada dos transistores. Uma das principais etapas do processo de fabricao a aplicao das impurezas, que transformaro partes do waffer de silcio em um material condutor. Os ons aderem apenas camada de silcio que foi exposta no processo anterior e no s camadas de dixido de silcio ou na camada de cristal de silcio. adicionada, ento, a terceira camada, composta de um tipo diferente de cristal de silcio e novamente aplicada uma camada fotossensvel sobre tudo. O waffer passa novamente pelo processo de litografia, usando mais uma vez uma mscara diferente e de acordo com o projeto. As partes das matrias fotossensveis expostas luz so removidas, expondo partes das camadas inferiores, que so removidas em seguida. A terceira camada do transistor est pronta, faltam apenas os filamentos condutores, trs para cada transistor. Uma finssima camada de metal aplicada sobre a estrutura anterior. Nos processadores atuais, que so produzidos atravs de uma tcnica de produo de 0,13 mcrons, esta camada metlica tem equivalente a apenas 6 tomos de espessura. O processo de aplicao da camada fotossensvel, de litografia e de remoo das camadas aplicado mais uma vez, com o objetivo de remover as partes indesejadas da camada de metal. Os transistores esto prontos. Cada processador constitudo por milhes de transistores. Um Pentium II possui pouco mais de 9 milhes de transistores, um Pentium II j possui 22 milhes, um Athlon possui 35 milhes de transistores, enquanto um Pentium IV possui incrveis 42 milhes. Graas ao atual nvel de miniaturizao, estas quantidades fabulosas de transistores ocupam 18

uma rea muito pequena. Um Athlon, por exemplo, mede apenas 112 milmetros quadrados. Com isto, um nico waffer de silcio suficiente para produzir vrios processadores, que so depois separados e encapsulados numa estrutura de silcio, que os protege e facilita o manuseio e instalao. O formato do encapsulamento varia de processador para processador. 3.4 Consideraes finais Uma caracterstica fcil de observar no grfico da Figura 3.1, e que tambm 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 contramo da histria, mas, conforme previamente esclarecido, de acordo com os objetivos traados para este trabalho, os microprocessadores no fazem parte do foco do projeto. Estas informaes foram aqui colocadas a ttulo de ilustrao e, no mximo, guiariam a evoluo de futuros trabalhos nesta linha.

10

10

10

Pentium Pro Pentium 486 386 80286

Pentium II

10

8086 10
4

10

4004 1975 1980 1985 1990 1995 2000 2005

1970

Figura 3.1 Crescimento do nmero de transistores da CPU. [STALLINGS]

19

Tabela 3.1 Evoluo dos microprocessadores da Intel [STALLINGS] MICROPROCESSADORES DA DCADA DE 70 Processador Lanamento Clock Barramento Transistores Tamanho Cap. Endereo Mem. Virtual Processador Lanamento Clock Barramento Transistores Tamanho Cap. Endereo Mem. Virtual Processador Lanamento Clock Barramento Transistores Tamanho Cap. Endereo Mem. Virtual 4004 15/11/1971 108 kHz 4 bits 2.300 10 mcrons 640 bytes 286 1/2/1982 6/12,5 MHz 16 bits 134.000 1,5 16 megabytes 1 gigabyte 486SX 22/4/1991 16/33 MHz 32 bits 1,185 milho 1 4 megabytes 64 gigabytes 8008 1/4/1972 108 kHz 8 bits 3.500 6 mcrons 16 kbytes 386DX 17/10/1985 16/33 MHz 32 bits 275.000 1 4 gigabytes 64 terabytes Pentium 22/3/1993 60/166 MHz 32 bits 3,1 milhes 0,8 4 gigabytes 64 terabytes 8080 1/4/1974 2MHz 8 bits 6.000 6 mcrons 64 kbytes 386SX 16/6/1988 16/33 MHz 16 bits 275.000 1 4 gigabytes 64 terabytes Pentium Pro 1/11/1995 150/200 MHz 64 bits 5,5 milhes 0,6 64 gigabytes 64 terabytes 8086 8/6/1978 5/8/10 MHz 16 bits 29.000 3 mcrons 1 megabyte 8088 1/6/1979 5/8 MHz 8 bits 29.000 3 mcrons 1 megabyte 486DX 10/4/1989 25/50 MHz 32 bits 1,2 milho 0,8 4 gigabytes 64 terabytes Pentium II 7/5/1997 200/300 MHz 64 bits 7,5 milhes 0,6 64 gigabytes 64 terabytes

MICROPROCESSADORES DA DCADA DE 80

MICROPROCESSADORES DA DCADA DE 90

20

PROJETO DE UM PROCESSADOR MODULAR PARA FINS DIDTICOS CAPTULO IV PROPOSTAS DE PROCESSADORES MODULARES Neste captulo se define processador modular e se listam as caractersticas 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 concluso de curso, descrito no Captulo V. 4.1 Processador modular A modularidade ajuda o pesquisador ou projetista a resolver problemas, dividindo-os em um conjunto de problemas menores, cujas solues combinadas representam a soluo total. Um processador modular um circuito digital construdo em blocos funcionais que propiciam o projeto flexvel de um sistema e favorecem a compreenso do todo, a partir do domnio das partes. O conjunto de mdulos proposto neste projeto baseado em circuitos integrados digitais tradicionais, de relativa simplicidade de manuseio e de aquisio. A interligao lgica destes mdulos permite a construo de um sistema em diferentes nveis de complexidade. A flexibilidade admite mudanas de rumos e novas propostas de projeto, alterando-se, por exemplo, a arquitetura ou o conjunto de instrues, com a implementao de unidades alternativas. claro que, para tirar proveito deste recurso, um aluno (usurio) deve primeiro adquirir os conhecimentos de arquitetura que orientaro posicionamento dos mdulos e as interconexes que resultaro na funo lgica desejada. 4.2 Trabalhos relacionados Os computadores SAP (Simple As Possible Simples Quanto Possvel) [MALVINO] e o VSM (Very Simple Microprocessor Microprocessador Muito Simples) [SICARD] so as duas propostas mais difundidas de aparatos computacionais modulares utilizados para fins didticos. Na verdade, o projeto do SAP tem trs geraes, sendo o VSM uma verso 21

avanada do SAP-1, em termos de conjunto de instrues, apesar de ser 4 bits, enquanto o SAP de 8 bits so considerados computadores primitivos, devido pobreza de recursos implementados, j que foram projetados para principiantes, com a finalidade de introduzir conceitos relacionados operao interna, razo pela qual so examinados neste texto. A segunda gerao do SAP, o SAP-2 (8 bits), inclui instrues de salto que possibilitam a construo de estruturas de controle de fluxo, como seleo e repetio. O SAP-3 j uma proposta de processador de 8 bits comparvel ao microprocessador 8085, incluindo instrues complexas como as de manipulao de pilha. 4.2.1 SAP-1 O SAP-1 considerado um computador porque armazena o programa e os dados antes de comear os clculos. Depois, executa automaticamente as instrues de programa, sem a interveno humana. Com uma arquitetura organizada em barramentos, todas as sadas dos registradores para o mesmo so de trs estados (tri-state), o que possibilita a transferncia de dados ordenadamente, sem risco de coliso. A Figura 4.1 mostra um diagrama correspondente arquitetura do SAP-1. Os nmeros nas setas da Figura 4.1 significa o nmero de bits ou de vias.

22

Barramento

CP CLK CLR EP
Contador de Programa
4

8 8

LA
Acumulador A

EA
8

LM CLK

Entrada e REM

SU
4 8

Somador / Subtrator

EU
4 4 4

LB
RAM

16 x 8

Registrador B

CLK

CE

LI CLK CLR EI

Registrador de Instrues
4

8 4

Registrador de Sada
8

LO CLK

controlador / sequencializad or
12

CLK CLK CLR CLR

Indicao Visual

binria

CP EP L M CEL I EI L A E A SU EU L B L O

Figura 4.1 Arquitetura do SAP [MALVINO].

4.2.1.1 Descrio 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 memria o endereo da prxima instruo a ser buscada e executada. Pode contar de 0000 a 1111 (de zero a quinze em

23

decimal). A primeira instruo armazenada no endereo binrio 0000 (zero), a segunda instruo no endereo 0001 (um), a terceira no endereo 0010 (dois) e assim por diante. Quando comea o processamento ou execuo no computador, o contador de programa envia o endereo 0000 memria, e se incrementa para 0001. Depois de a primeira instruo ser buscada e executada, o contador envia o endereo 0001 e, novamente, incrementado. A segunda instruo buscada e executada, o endereo 0010 fornecido memria para o desenvolvimento da prxima instruo, o PC novamente incrementado e continua assim at a ltima instruo (parada). O endereo no contador de programa retido no registrador de endereo de memria. Mais tarde o REM aplica este endereo de 4 bits RAM, onde uma operao de leitura ser realizada. A memria RAM pode ser programada por meio dos registradores, de chave de dados e de endereos. Isto permite armazenar um programa e os dados antes de um processamento no computador. Durante o processamento do computador, a RAM recebe endereo de 4 bits do REM e nela se executa uma operao de leitura. Desta maneira a instruo ou palavra de dados armazenada colocada no barramento para uso em alguma outra parte no computador. O registrador de Instrues faz parte da unidade de controle. Para buscar uma instruo, o computador realiza uma operao de leitura de memria, coloca o contedo do local de memria endereado no barramento. Ao mesmo tempo, o registrador de instrues preparado para carregamento na prxima transio positiva de clock. O contedo do registrador de instrues dividido em dois nibbles (2x4 bits). O nibble superior uma sada de dois estados que vai diretamente ao bloco rotulado, controlador-sequencializador. O nibble inferior uma sada de trs estados que lida no barramento quando necessrio. Antes de cada processamento, um sinal CLR enviado ao contador de programa e um sinal CLR enviado ao registrador de instrues. Isso zera o contador de programa e elimina a ltima instruo no registrador de instrues. Um sinal clock (CLK) enviado a todos os registradores de memria intermediria, sincronizando a operao do computador ou seja, todas as transferncias ocorrem na transio positiva de um sinal CLK comum. Observa-se que um sinal CLK tambm vai ao contador de programa.

24

O Acumulador um registrador de memria inrtermediria que tambm armazena respostas durante um processamento. A sada de dois estados liga-se diretamente ao somadorsubtrador. A saida de trs estados vai ao barramento. O somador-subtrador um circuito combinacional, o que siginifica que seu contedo pode variar logo que suas palavras de entrada variem. O registrador B um registrador de memria intermediria, usado em operaes aritmticas. Um baixo Lb e uma transio positiva do clock carregam a palavra do barramento dentro do registrador B. A sada de dois estados do registrador B alimenta o somadorsubtrador, fornecendo o nmero a ser adcionado ou subtrado do contedo do acumulador. No final de um processamento, o acumulador contm a resposta ao problema que est sendo resolvido. Neste ponto para transferir a resposta para o mundo exterior. Usa-se o registrador de sada. Quando Ea for alto e Lo for baixo, a prxima transio positiva do clock carregar a palavra do acumulador no registrador de sada. O registrador de saida, conectado aos circuitos de interface que comandam dispositivos perifricos, por exemplo um display. O indicador visual em binrio uma fileira de oito diodos emissores de luz (LEDs). Usada para mostrar o contedo da porta de sada. Aps a transferncia da resposta ao acumulador pode-se ver a resposta em forma binria. 4.2.1.2 Conjunto de instrues do SAP Antes de se programar em baixo nvel preciso saber o conjunto de instrues e operaes bsicas que podem ser executadas. No caso em anlise tem o seguinte conjunto de instrues: a) LDA, carrega o acumulador com contedo relativo ao endereo hexadecimal colocado em seguida; b) ADD, acrescenta o contedo do local e memria especificado ao contedo do acumulador, substituindo o contedo original; c) SUB, subtrai um contedo do local e memria especificado do contedo do acumulador; d) OUT, trasfere o contedo do acumulador para a porta de sada, e HTL suspende o processamento de dados.

25

4.2.1.3 Programao do SAP A programao do SAP realizada atravs de cdigos especficos, que so utilizados para carregar palavras e instrues chamadas, tambm, de cdigo operao. Devido ao projeto do SAP ser terico e no houver nenhuma implementao deste, o autor no mencionol como os dados poderiam entrar na memria (falta uma unidade de entrada). 4.2.2 VSM O VSM (Very Simple Microprocessor = microprocessador muito simples), uma verso atualizada da arquitetura de computador muito popular, o SAP. Tambm introduz os conceitos bsicos da arquitetura de um microprocessador da maneira mais simples possvel. 4.2.2.1 Estrutura fsica do VSM

BARRAMENTO INTERNO

CLOCK CLEAR

CONTROLADOR

ACUMULADOR A

HABILITA SINAIS DESABILITA SINAIS

UNIDADE ARITMTICA

CONTADOR DE PROGRAMA

ACUMULADOR B

MEMORIA DO PROGRAMA (8x8)

REGISTRADOR DE ENTRADA

DADOS EXTERNOS

REGISTRADOR DE SADA

DADOS EXTERNOS

Figura 4.2 - Arquitetura do VSM.

26

O contador de programa, conta de 0000 at 1111, monitora o endereo das instrues ativas. Inicialmente est ativado com o endereo 0000. Assim, o processador inicia da primeira instruo da memria. A memria do programa, armazena o programa a ser executado. Cada linha de programa tem o tamanho de 8 bits: Os quatro bits mais significantes so instrues prprias, os bits menos significantes so os dados que acompanham as intrues, quando estes forem necessrios. 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 nmero a ser adicionado ou subtrado do acumulador A. A unidade aritmtica realiza as operaces de adio e subtrao, entre outras do gnero, 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 sada, transfere os dados do barramento interno para o mundo exterior. Normalmente, a instruo realizada no final do programa para apresentar o resultado final. O registrador de sada armazena os dados na borda descendente do pulso de clock. Este registrador conectado a uma interface com o display de sada para mostrar o resultado ao usurio. 4.2.2.2 Conjunto de instrues do VSM As instrues bsicas esto listadas a seguir. As mesmas esto codificadas em 4 bits, portanto sendo possvel obter apenas 16 instrues. a) No Operao (NOP = 0000) A instruo NOP no tem efeito interno nos registradores. Contudo, esta instruo muito interessante para entender-se como trabalha o controle de um ciclo bsico de clock. b) Adio (ADD = 0001) O contedo do acumulador A adicionado ao dado que vem como parmetro, e o resultado atualizado no acumulador A. A adio feita com 2 nmeros de 4 bits. O carry ignorado. c) Subtrao (SUB = 0010) 27

O contedo do acumulador A subtrado ao dado que vem como parmetro e o resultado atualizado no acumulador A. A subtrao realizada nos 4 bits. O carry ignorado. d) Obter Entrada (IN = 0011) O contedo da porta de entrada transferido para o acumulador A. Enviar os dados para a sada (OUT = 0100).Os dados do acumulador A armazenado na porta de sada. A porta de sada um registrador de 4 bits que armazena os valores conservando-se permanentemente at que a instruo OUT seja novamente atualizada. e) Carregar Instruo (LDA = 0101) LDA serve para carregar o acumulador A com um valor.

28

PROJETO DE UM PROCESSADOR MODULAR PARA FINS DIDTICOS CAPTULO V DESCRIO DO PROJETO Este captulo descreve o projeto de um processador modular de 8 bits, na verdade, um sistema mnimo, idealizado para auxiliar o aprendizado de contedos de sistemas digitais em cursos de tecnologia. difcil para acadmicos de Engenharia tratar, com autoridade, de aspectos da teoria didtica porque no se tem muito contato com ela no decorrer do curso regular. Alm disso, num trabalho de concluso de curso, o espao limitado para se aprofundar nas ideias. Por estas razes, possvel que alguns conceitos aqui veiculados no tenham sido colocados de modo muito preciso, do ponto de vista educacional. 5.1 Aspectos didticos A teoria construtivista, representada principalmente por Piaget, Bruner e Vygotsky, trata de contedos que mais se aproximam da idia do projeto. Segundo esta teoria, o aprendizado um processo ativo, no qual o aprendiz adquire, filtra, transforma informaes e constri novos conceitos, habilidades, atitudes e valores, baseado em conhecimentos prvios e nos que esto sendo estudados e no contato com a realidade, o meio ambiente e as outras pessoas. Considerando a possibilidade de alterao no desempenho de uma pessoa pela interferncia de outra, o professor traduz a informao para um formato adequado compreenso 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 informao recebida em sala de aula e transform-la numa nova informao atravs de inferncia de hipteses, assim, construindo um novo conhecimento. [MOTA] 5.1.1 Mtodos e tcnicas de ensino Para que o processo ensino-aprendizagem seja proveitoso e produza os resultados esperados, necessrio que se adotem mtodos e tcnicas adequadas. Mtodos so roteiros gerais para executar as atividades e tcnicas so as formas concretas de proceder. claro que 29

cada contedo exige tcnicas prprias e, em geral, variadas. Um projeto como este aqui apresentado no tem a pretenso de ser o caminho, apenas mais um recurso. A educao sistemtica uma atividade de socializao, de relacionamento. claro que o mtodo socializado importante; conhecimentos podem ser adquiridos por meio da colaborao, mas o indivduo quem aprende e no o grupo. Sem individualizao a aprendizagem no se realiza, porque ela um fenmeno ou processo essencialmente individual. Por isso, ela muito importante, tanto no incio de uma atividade (para oferecer elementos de conhecimento e informao), como no final (para aprofundar e integrar os conhecimentos adquiridos). Para efeito de utilizao deste projeto, um mtodo que rene os dois aspectos (scio-individualizado) deve ser pesquisado. As tcnicas mais utilizadas na sala de aula so expositivas, como a palavra do professor, os cartazes e os audiovisuais, tm como caracterstica principal transmitir uma mensagem codificada, com ideias estruturadas, mas no fechadas (idealmente). Estas tcnicas so ruins quando a interpretao limitada ou condicionante. De preferncia, devem ser associadas experimentao, na busca de rendimento. 5.1.2 Recursos didticos Meios de ensino ou recursos didticos so os materiais utilizados pelo professor e pelos alunos para a organizao e conduo metdica do processo de ensino/aprendizagem [LIBNEO]. Devem ser utilizados para facilitar, acelerar e intensificar a aprendizagem, auxiliando o professor no papel de facilitador. Os meios que so mais utilizados so a prpria voz do professor, quadro-de-giz ou quadro-branco, ilustraes, projees e materiais impressos. Com o desenvolvimento tecnolgico, equipamentos e aparelhos eletroeletrnicos esto 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 reforo, autodidatismo, levantamento de previses de resultados e Ensino a Distncia, mas dificilmente vo satisfazer aqueles que gostam de ver o resultado concreto. Para estes, a sada so as matrizes de contato, as placas de circuito impresso e os kits didticos. nesta categoria que o projeto se encaixa, como um recurso ativo e dinmico, que permite ao educando tentar e testar novas alternativas.

30

5.2

Descrio dos mdulos H muitas empresas produzindo microprocessadores para finalidades diversas e outras

tantas montando microcomputadores a partir de microprocessadores, memrias e outros componentes. O computador aqui descrito genrico e primitivo, projetado em mdulos baseados em circuitos integrados tradicionais, mas que possibilita observar algumas caractersticas comuns dos microcomputadores usuais, como a arquitetura (registradores e barramentos), o conjunto de instrues (transferncia de dados, operaes lgicas e aritmticas) e os sinais de controle. O fato de ser modular traz a vantagem da flexibilidade de montagem das experincias e a possibilidade de visualizar os dados nos diversos pontos do circuito numa execuo passo-a-passo. A Figura 5.1 mostra um sistema tpico montado com elementos examinados neste projeto. A descrio a seguir se orienta nesta figura. No se trata de prottipo porque o processador modular, ou seja, as combinaes podem variar dependendo da proposta adotada. Nem todos os mdulos projetados ou previstos foram implementados, apenas um sistema mnimo para teste, conforme descrito no Captulo VI. 5.2.1 Unidade de controle e temporizao Os sinais gerados pelo circuito de sincronismo afetam todos os eventos da CPU. So linhas de sada que indicam aos outros componentes quando eles devem operar, por exemplo, governar a leitura e escrita da memria ou habilitar algum alimentador do barramento (buffer tri-state). O computador inicia com um reset automtico, pode reiniciar a qualquer momento, usando a tecla RST. A UCT possui um gerador de onda quadrada chamado de clock automtico e um contador em anel. Um multiplexador seleciona entre o clock automtico (do gerador) e um clock manual de uma chave sem rebatimento. O clock automtico de alguns quilohertz (no importante o valor, s a faixa) atua no modo de execuo direta (R); o manual no modo passo a passo (RPP). O contador em anel um circuito de recirculao de 4 bits baseado em registrador de deslocamento que ativa uma das 4 sadas de cada vez, e na mesma sequncia. Estas sadas determinam as quatro fases do ciclo de busca e execuo da instruo. Na primeira, o endereo apontado pelo PC armazenado no registrador de endereos. Na segunda, o PC, ou seja, aponta para o endereo da prxima instruo. Na terceira, o endereo armazenado no 31

MAR transferido para o barramento de endereos e a memria habilitada para leitura. O contedo da memria deve corresponder a um cdigo de uma instruo, cujo valor armazenado no Registrador de Instrues. Na quarta, a instruo executada.

DADOS PC BUFFER B MAR END

ACC

RAM

MBR FLAGS

IR

UCT
CLOCK RST LD R RPP Teclado UDE

REG ENTRADA
Teclado

Figura 5.1 Diagrama de blocos do Projeto

32

5.2.2 Unidade Lgica e Aritmtica A Unidade Lgica e Aritmtica responsvel por realizar as a maioria das operaes do processador, tais como: adio, subtrao, incrementao, inverso, AND, OR e XOR. As entradas de seleo, geradas a partir da decodificao da instruo, definem o tipo de operao a ser realizada. A partir da operao da ULA, tambm podem ser carregados os bits indicadores do status da mquina num registrador chamado de FLAGS. Os indicadores tpicos so de estouro de aritmtica natural (carry), de estouro de aritmtica sinalizada (overflow), de zero, de sinal e auxiliar. 5.2.3 Memria de trabalho A memria RAM programada atravs do Registrador de Entrada, no modo programa (LD). Recebe sinais de habilitao para escrita: o contedo do barramento de dados armazenado no endereo indicado. Sinais de controle vo alternando endereos e dados de acordo com os comandos: Acima (U), Abaixo (D) e Enter (E). No momento apropriado, a interface de teclado interrompe a CPU atravs de linhas especiais. 5.2.4 Registradores de dados e endereos Na fase de busca da instruo ou no modo de carga do programa, o Registrador de Endereos armazena o contedo do Contador de Programa. Os registradores de dados so o Acumulador (ACC) bidirecional e o Registrador Temporrio (B). 5.2.5 Contador de programa O Contador de Programa indica o endereo da prxima instruo a ser executada. Tem sinais associados que permitem sua carga paralela (com o dado do barramento de dados), habilitador de contagem, habilitador de transferncia (para o barramento de dados), direo (crescente ou decrescente) e inicializao (reset)

33

5.3

Observaes gerais O decodificador de instrues est dentro da UCT e utiliza uma tabela armazenada em

uma ROM (Read Only Memory Memria s de leitura, no voltil) para gerar sinais a partir da instruo fornecida pelo Registrador de Instrues. As setas mais grossas no diagrama da Figura 5.1 indicam vias de dados com mais de um bit. Monitores auxiliares, construdos 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, sada da ULA, FLAGS e Registrador de Entrada) so tri-states para evitar coliso 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 impedncia. Os sinais de controle deterninam a fonte da vez. O Registrador de Entrada tambm pode operar na entrada de dados em tempo de execuo, associado tecla Enter. Alm das operaes (e instrues) lgicas e aritmticas, o sistema pode executar instrues de transferncia (carga e armazenamento). Registradores de trabalho podem ser implementados na RAM, usando modo de endereamento indireto (varivel de memria). Alguns recursos no foram contemplados no projeto: a pilha do programa e seu respectivo apontador, as funes de teste, comparao e desvio e a fonte de alimentao. Eles foram relacionados no captulo de concluso como sugestes para futuros trabalhos. O sistema usa um bloco de dois displays de sete segmentos para indicar o contedo do barramento de dados em hexadecimal. O registrador (buffer) de sada opcional.

34

PROJETO DE UM PROCESSADOR MODULAR PARA FINS DIDTICOS

CAPTULO VI IMPLEMENTAES E TESTES

Neste captulo so abordados os aspectos prticos do projeto do processador digital para fins estudantis. Ser demonstrado o desenvolvimento da ULA de oito bits, os barramentos de dados e instrues, uma interface para a sada de dados, um banco de registradores que auxiliaro 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 instrues originais. A integrao entre as duas ULAs, foi feita utilizando o CI 74182 (Carry Look-Ahead). O funcionamento deste baseado em uma gerao e propagao de um carry instantaneamente, ou seja, sempre que for feita a soma binria entre dois ou mais bits 1. Os bits de entrada dos operandos da ULA so inseridos atravs de duas vias de dados de oito bits: um dado vindo do acumulador (ACC = registrador A) ou do registrador auxiliar (registrador temporrio). O resultado da operao lgica ou aritmtica, de acordo com as linhas de seleo, pode ser enviado a um registrador de sada, ou ao ACC, neste caso para atender a algumas instrues que necessitam de vrias operaes aritmticas ou lgicas 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 funo deste efetuar uma operao aritmtica obtendo o bit de carry diretamente a partir dos bits de entrada, sem precisar dos bits de sada de cada ULA, necessitando apenas dos pinos P e G, os carrys do CI 74181 [FARCHILD I]. As linhas de dados foram omitidas para no sobrecarregar a figura e fixar a ateno no que de interesse imediato a integrao das ULAs de 4 bits.

16

Co G P G1 P1 G0 P0 Cn

ULA 1
17 Cn 7 74LS181 15

1 2 3 4 13
Carry LookAhead

74LS182 12

Cn+x

ULA 0
C0 Cn 74LS181 7

17 15

G P

Figura 6.1 - Circuito de Expanso de duas ULAs de 4 bits para uma ULA d e 8 bits

A ULA em questo possui 48 instrues, sendo 32 aritmticas e 16 lgicas. Considerando a aplicao no trabalho proposto, foram utilizadas 7 lgicas e 4 aritmticas, conforme a Tabela 6.1.
Tabela 6. 1 - Instrues Utilizadas na ULA

Instrues Lgicas (M = 1) Cn = X S3 S2 S1 S0 Operao 0 0 0 0 Not A 0 1 0 1 Not 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

Instrues Aritmticas (M = 0) Cn = 0 S3 S2 S1 S0 Operao 0 0 0 0 Inc A 0 1 1 0 A minus B ---------------------------------------------------------------------------Cn = 1 S3 S2 S1 S0 Operao 1 0 0 1 A plus B 1 1 1 1 A dec B -------------------------------------------------------------------------------------

Os componentes utilizados para a montagem de um prottipo a nvel de teste do circuito mostrado na Figura 6.1 foram: 36

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 prottipo de testes da ULA de oito bits aps ter sido montada e feitas as simulaes necessrias para o funcionamento correto desta.

Figura 6. 2 - Prottipo da ULA de 8 bits, montado em um Protoboard

Atravs da Figura 6.2 possvel perceber a complexidade das ligaes Feitas e entre os CIs. Este emaranhado de fios obrigou a elaborao de uma placa de Circuito Impresso. Para tal foi utilizando o Software Proteus, verso 7.0 DEMO encontrado no site do fabricante, a Labcenter: http://www.labcenter.co.uk/download/prodemo_download.cfm#professional. O Layout gerado pode ser visto na Figura 6.3. 37

Figura 6.3 - Layout do Circuito Impresso da ULA de 8 Bits

Aps ter sido feito o layout do circuito impresso, o mesmo foi produzido em uma placa de fenolite, onde os componentes foram montados e soldados, como pode ser visto na Figura 6.4 (a) e na Figura 6.4(b).

Figura 6.4(a) - Lado da fiao impressa

38

Figura 6.4(b) - Placa da ULA, lado dos componentes

6.2

Construo dos cabos e barramentos Neste item ser demonstrado todo o planejamento e montagem dos cabos, barramentos

de dados e de instrues. Toda a comunicao entre os mdulos, placas de circuito impresso, ser feita utilizando os cabos padronizados desenvolvidos especificamente para este projeto. No projeto foram utilizados fios coloridos de aproximadamente 20 cm, onde foram feitos os cabos de 1, 2, 6 e 8 vias, utilizados para alimentar os circuitos, transferir dados, instrues e bits de carry. Para os cabos de alimentao, com apenas duas vias, foram utilizados as cores: vermelho para a tenso positiva (+5 volts) e o marrom para o negativo (comum ou referncia), como poder ser observado na Figura 6.5(a). As vias de dados de 1 byte (oito bits), foram feitas utilizando as seguintes cores: D0 = Alaranjado D1 = Amarelo D2 = Verde D3 = Azul D4 = Roxo D5 = Cinza D6 = Branca D7 = Preta 39

A Figura 6.5(b) mostra essa sequncia de cores. J o barramento de instrues de seis vias foi feito utilizando as mesmas cores do barramentos de dados, mas utilizando as seis primeiras apenas, conforme Figura6.5(c). Por ltimo, foi utilizado um fio de cor alaranjada para servir de comunicao dos carrys entre os mdulos ULA e display, conforme mostra a Figura 6.5(d).

Figura 6.5(a) - cabo de 2 vias

Figura 6.5(b) - cabo de 8 vias

Figura 6.5(c) - cabo de 6 vias

Figura 6.5(d) - cabo de 1 via

O barramento de dados foi confeccionado em placas de fenolite e conectores de oito pinos. Ele pode ser utilizado para qualquer tipo de transferncia de palavras com at oito bits de tamanho. 6.3 Desenvolvimento de um display Para exibir os dados processados na ULA e os que esto armazenados nos registradores, foi necessrio no projeto a implementao de um mostrador simples de dados na forma hexadecimal. Este utiliza dois displays de 7 segmentos, com dois decodificadores BCD para mostrar ao usurio os resultados. Como os dados de sada estaro no formato hexadecimal, mas o decodificador BCD, necessrio converter as figuras. Para tal foi criada uma de equivalencia BCD-hexadecimal. 40

Esta deciso de projeto ocorreu devido a problemas tcnicos em encontrar um decodificador Hexadecimal para Displays de 7-segmentos. A Tabela 6.2 mostra essa converso.

Tabela 6. 2 - Converso do cdigo BCD para o Hexadecimal

BCD HEXA O mostrador foi projetado para a visualizao de qualquer tipo de dados de 8 bits e, alm disso, os pontos de cada display de 7 segmentos sero utilizados para mostrador carry de sada. Essa iniciativa foi tomada pensando em deixar mais simples este hardware, ou seja, um circuito menos complexo para o desenvolvimento e at mesmo para deteco de possveis problemas. Este dispositivo pode ser visto na Figura 6.6.

Figura 6.6 - Dispositivo de sada

6.4

Desenvolvimento dos Registradores Os registradores tm como funo o armazenamento temporrio de dados, de flags e

de instrues. Cada registrador de oito bits foi criado utilizando dois CIs 74LS75 (registradores de quatro bits). 41

Neste trabalho so utilizados dois registradores: o ACC (acumulador, ou registrador A) e um registrador temporrio. Tambm foram desenvolvidas duas placas para os registradores, uma para cada circuito. A Figura 6.7 mostra o prottipo montado no protoboard de um registrador de oito bits. Nele est armazenado a seguinte palavra binria 00111000 (LED aceso = 1; LED apagado = 0).

Figura 6.7 - Prottipo de um registrador de 8 bits

6.5

Desenvolvimento da Unidade de Entrada A unidade de entrada ou chaves de dados a interface responsvel pela entrada dos

dados no caso dos registradores ou instrues no caso de selao de instruo da ULA. Esse dispositivo foi elaborado a partir de uma ferramenta fundamental e importante, o Flip-Flop. O circuito entre duas portas NAND interligadas de modo cruzado pode ser chamado de latch com portas NAND ou Flip-Flop ativado com nvel baixo. Este tem a seguinte funo: Quando a entrada set recebe o nvel zero (comum ou referncia), fora a sada principal a 1 (nvel lgico alto, 5 volts) e sada complementar a zero. O valor 1 da sada principal enviado para o circuito receptor e o LED aceso com a sada 0 (dreno de corrente), monitora o estado do bit. Para desligar ou resetar o Flip-Flop, o nvel zero colocado na entrada do reset. 42

A Figura 6.8 demonstra o circuito de um bit da unidade de entrada, entretanto o dispositivo composto A figura 6.8 demonstra o circuito de um bit da unidade de entrada, haja vista que o dispositivo composto de oito bits. Por isso foram utilizados 4 CIs, 4 portas por CI, 16 portas no total, ou seja, 8 flip-flops.

Sada principal set

+ 5,0 V

reset

Sada complementar

Figura 6.8 -Circuito de uma chave de dados de 1 bit

O circuito representado na Figura 6.8 foi implementado utilizando resistores, LEDs, pinos conectores e as portas lgicas (CI 74LS00, conforme datasheet [FARCHILD II]) em placas padro de circuito impresso. A Figura 6.9 mostra as chaves de dados depois de implementadas.

Figura 6.9 - Circuito implementado das chaves de dados de 8 bits

43

6.6

Integrao entre os mdulos Aps o desenvolvimento dos mdulos mostrados anteriormente, pode-se montar uma

parte do processador proposto no captulo V. A integrao entre os mdulos feita atravs dos cabos e barramentos desenvolvidos como foi mostrado no item 6.2, e a alimentao de todos os circuitos feita utilizando uma fonte de tenso de 5 volts, de corrente contnua. Para que se possa demonstrar esse projeto, segue-se a Figura 6.10, que mostra como a arquitetura das partes implementadas neste trabalho de concluso de curso.
Barramento de oito vias Reg. Temp.

ACC

Chave de dados 1

ULA

Display

Chave de dados 2 Figura 6.10 - Arquitetura proposta no projeto de desenvolvimento do processador para fins didticos

Na Figura 6.10 podem ser vistas todas as estruturas descritas ao longo deste captulo. Nela se encontra a unidade de entrada para as instrues (chave de dados 1), a entrada para dados (chave de dados 2), a ULA, o Display, o barramento de dados e os registradores. Neste experimento o display exibe o resultado obtido na ULA, considerando a flexibilidade da estrutura do projeto, o mostrador poderia ser colocado na sada de qualquer mdulo. Porm se o usurio quiser visualizar os dados que esto nos registradores ACC (registrador A), e registrador temporrio (registrador B), ento ele ter que fazer o uso de uma das instrues lgicas citadas na Tabela 6.1 (transparente A = 1111, ou transparente B = 1010). Os comandos em questo colocam o contedo do registrado A ou do B na sada da ULA, que enviado posteriormente ao display.

44

O ACC e o Registrador Temporrio so os dispositivos para o armazenamento momentneo dos dados antes de inseri-los na Unidade Lgica Aritmtica. Estes so circuitos controlados tambm pela chave de dados 1. (1 bit de habilitao para cada registrador). Para colocar os mdulos dispostos da maneira citada na figura 6.10, foi desenvolvida uma bancada de PVC, com a frente de metal ferromagntico. Alm disso foi colocada uma pelcula magntica na parte posterior de cada placa, o que possibilitou que esses dispositivos ficassem fixados na estrutura apoiadora. A motivao pela construo desta parte mecnica de apoio s placas, foi devido ao conforto e praticidade em alterar a posio de todos mdulos quando eles estiverem integrados. A fonte de tenso utilizada, fica localizada na parte posterior da bancada. Esta uma fonte regulada que no faz parte do desenvolvimento deste Projeto. E atravs de pinos e barramentos de tenso desenvolvidos para este trabalho, que se distribui a energia para todos os mdulos. As Figuras 6.11(a), e 6.11(b) mostram esse apoio para os mdulos. E na figura 6.11(c) pode ser visualizada todo projeto j em funcionamento.

Figura 6.11(a) - Vista Frontal da bancada


registradore s

Figura 6.11(b) - Vista Posterior da Bancada


Chave de dados, fechada com uma caixa protetora Chave de dados

Barramento De dados

display ULA

Figura 6.11(c) -Bancada pronta com os mdulos em funcionamento

45

PROJETO DE UM PROCESSADOR MODULAR PARA FINS DIDTICOS CAPTULO VII CONCLUSO E PROPOSTAS PARA PROJETOS FUTUROS A tecnologia na rea digital evolui muito rapidamente. Novos produtos e dispositivos surgem com uma velocidade tal que fica difcil de acompanhar no ambiente de ensino. Assim, conhecimentos ditos bsicos, mesmo que ultrapassados com relao s tecnologias em uso no mercado de trabalho, mas necessrios para o entendimento de novas tecnologias, devem ser desenvolvidos rapidamente para dar chance e tempo aos alunos de buscarem as novidades. Neste trabalho foi desenvolvido um recurso para auxiliar o ensino de contedos relacionados Eletrnica Digital, seguindo a idia de que o aluno tem que adquirir os conhecimentos prticos de bancada e sentir as dificuldades envolvidas. visvel a sensao de prazer quando o aluno alcana os resultados esperados nos experimentos. Atividades assim, inclusive, ajudam a reduzir a evaso escolar. Esta concluso emprica, baseada em pesquisa informal junto a alunos de Engenharia Eltrica e de Computao, que semestralmente montam seu relgio digital e calculador, respectivamente. Como j ocorre nas montagens com matrizes de contato e kits didticos, este projeto prope o uso menos intenso dos componentes e equipamentos. Assim, o laboratrio ganha uma perspectiva de vida til maior. Outra caracterstica o ganho de tempo sobre blocos que ele j domina e que so encapsulados nos mdulos, dando a possibilidade do desenvolvimento de prticas mais complexas. No sistema proposto, h possibilidades de se reproduzir um experimento padro, modificar ou propor experincias alternativas. Tambm ficou clara a flexibilidade inerente ao projeto e o campo propcio criatividade, j que o sistema permite variaes de arquitetura. No desenvolvimento deste projeto, foi implementada apenas uma parte da estrutura elaborada teoricamente, ficando como sugesto para um projeto futuro a construo dos mdulos restantes. O ideal seria montar e interconectar todos os mdulos do projeto, mas dificuldades tcnicas, financeiras, de falta de tempo e espao no painel magntico impediram esta meta de ser atingida. Nos testes, por exemplo, a unidade de controle foi simulada por uma pessoa. Ela pode ser construda com componentes tradicionais ou implementada num microcontrolador (com clock prprio). Fica tambm como sugesto de implementao a integrao atravs de um clock, ou seja, o sincronismo total de todos os dispositivos e a ampliao do conjunto de instrues

(pode ser uma nova ULA) para incluir, por exemplo, a pilha do programa e seu respectivo apontador, as funes de teste, comparao e desvio, deslocamento e rotao de bits. Tambm se pode investir mais nos modos de endereamento. Mesmo com todos os mdulos do processador proposto implementados, ainda cabem expanses ao projeto. Isso aconteceria fazendo unidades de entrada e sada mais robustas com armazenamento temporrio e controle prprios, desenvolvendo um barramento multiplexado para todos os dispositivos e por fim uma memria de armazenamento de massa de pequena capacidade, para que se possa simular todas as estruturas bsicas de um computador. Alm disso, h outros estudantes que se interessam por temas de didtica. Estes poderiam desenvolver um manual de utilizao para o conjunto de mdulos e criar softwares utilizando animaes grficas para mostrar de uma forma visual mais adequada todo o fluxo dos dados e instrues. Isso auxiliaria as experincias propostas pelo professor sobre o processador apresentado neste trabalho. Neste projeto, objetivou-se o estudo e o desenvolvimento de mdulos de um processador para fins didticos. Para que a metodologia fosse executada, foi necessria uma pesquisa anterior nas referncias bibliogrficas. Posterior a essa ao foi feito um feedback entre os participantes deste trabalho, cuja a finalidade era a organizao estrutural, cronolgica e operacional do plano aqui apresentado. Foi realizado um estudo das arquiteturas existentes, e o desenvolvimento do processador com base em funes modulares. Em seguida foram pesquisados os CIs comerciais, elaborados os circuitos eletrnicos, simulados alguns e definidas as instrues do processador. As montagens foram realizadas de forma variada, usando matriz de contato, placas de circuito impresso projetadas pelos autores do projeto e placas padro. Os resultados so satisfatrios em relao aos objetivos traados.

47

REFERNCIAS CLOCK, BITS, MEMRIA. Disponvel em: <http://www.infowester.com/processadores1.php.>. Acessado em: 25/08/2008 MONSERRAT. Disponvel em: <http://www.dcc.ufla.br/~monserrat/icc/Introducao_arq_computador.pdf> Acessado em: 19/09/2008 PROCESSADORES - FABRICAO, MINIATURIZAO E ENCAPSULAMENTO. Disponvel em: <http:/ /www.infowester.com/processadores2.php>. Acessado em: 15/10/2008. Datasheet 74ls181, FARCHILD I Semicondutor. Disponvel em: <http://pdf1.alldatasheet.com/datasheet-pdf/view/51046/FAIRCHILD/74LS181.html> Acessado em: 20/10/2008. Datasheet 74ls00, FARCHILD II Semiconductor. Disponvel em: <http://www.datasheetcatalog.org/datasheets/70/232209_DS.pdf> Acessado em: 17/03/2009. Manual do Hardware Completo. Disponvel em: <http://guiadohardware.net/livros/hardware.> Acessado em: 20/03/2009. HENNESSY, J L; PATTERSON, D A. Computer Organization and Design The Hardware/Software Interface. Second Edition. Morgan Kaufmann Publishers, Inc, 1998. LIBANEO, J C. Didtica. Editora Cortez, 2004.

48

MALVINO, A. Microcomputadores e Microprocessadores. McGraw-Hill, So Paulo, 1986. MOTA, A M F O. Ambiente para utilizao em recursos didticos programveis via Internet. Universidade Estadual do Cear. Centro Federal de Educao Tecnolgica do Cear. PATTERSON, D A; HENNESSY, J L. Computer Architecture a Quantitative Approach. Second Edition. Morgan Kaufmann Publishers, Inc, 1990,1996. SICARD, E. A Very Simple Machine. 2005 p.1-28. STALLINGS, W. Computer Organization and Architecture Designing for Performance. Fourth Edition. Prentice Hall, 1996. TOKHEIM, L R. Introduo aos Microprocessadores. MacGraw-Hill do Brasil, So Paulo, 1985.

49

You might also like