processador 4 bits - logisim

Upload: guilherme-cardoso

Post on 07-Jul-2018

867 views

Category:

Documents


71 download

TRANSCRIPT

  • 8/19/2019 Processador 4 bits - LOGISIM

    1/19

    Aluno: Guilherme CardosoProfessor: Felipe Pedroso

    ORGANIZAÇÃO DE COMPUTADORESProjeto - Processador

    13 de junho de 2014.Vila Velha - ES

  • 8/19/2019 Processador 4 bits - LOGISIM

    2/19

    2

    1. PROCESSADOR

    Um processador é um dispositivo de extrema importância em qualquercircuito, ele é capaz de executar diversas funções de cálculos e tomar inúmerasdecisões. Para entendermos a fundo como funciona um processador, foiproposto a criação de um processador de 4 bits ao longo do semestre utilizandoo software “Logisim” para descrevermos o funcionamento do mesmo, comomostra a figura 01.

    Figura 01: Layout de um processador utilizando o Logisim.

    Esse processador realiza operações de 4 bits, além de apresentardispositivos de entrada e saída, conta com três registradores (PC, IR e AC), umaULA, uma unidade de controle, além de conter uma memória ROM e umamemória RAM, que serão estudados a seguir.

  • 8/19/2019 Processador 4 bits - LOGISIM

    3/19

    3

    2. UNIDADE DE CONTROLE

    A unidade de controle é responsável por administrar todo o processador,além de dizer a hora que cada componente deve ser ativado, contando com um

    divisor de clock, entrada e saída de dados e dois registradores para os flag’s (vertópico 4).

    Figura 02: Visão geral da unidade de controle.

    Como podemos ver na figura 02, toda lógica da unidade de controle foifeita utilizando portas lógicas assim como em todo o processador.

    2.1. Divisor de clock

    O divisor de clock é responsável por “quebrar” o clock de entrada em

    vários clock’s, ele também é responsável pela veloci dade de execução doprocessador, ou seja, quanto mais você dividir um ciclo de clock, mais tarefasserão executadas, tornando assim o processador mais rápido, no caso do divisorde clock utilizado nesse processador mostrado na figura 03, faz com que a cada

    ciclo de clock ele execute dois clock’s .

  • 8/19/2019 Processador 4 bits - LOGISIM

    4/19

    4

    Figura 03: Unidade de Controle – Divisor de clock.

    Esse divisor de clock foi feito utilizando dois flip-flops do tipo D, gerandoum contador “Gray” (faz com que a cada clock só atualize um bit por vez) de 2bits, filtrando a saída do contador com portas AND, gerando C1, C2, C3 e C4.

    2.2. Conjunto de instruções

    O conjunto de instruções é o que dá um “norte” para a unidade controle,

    ela define tudo o que será feito pela unidade de controle, e algumas funções, sãobaseadas nessa tabela, como por exemplo, a ULA (Unidade Lógica Aritmética)foi toda projetada para executar as operações MOV, ADD, SUB, OR e NOT.

    Conjunto de InstruçõesCod. Função OPC+E Descrição

    0 MOV 0000 AC

  • 8/19/2019 Processador 4 bits - LOGISIM

    5/19

    5

    2.3. Entradas

    A unidade de controle conta com 5 entradas de dados, duas entradasreservadas para alimentação e reinicialização da unidade de controle, o CLK(clock) e o CLR (reset), mais duas entradas para flag’s (ver tópico 4) e umaentrada para instrução (Essa entrada é o que defini o que o processador tem quefazer).

    Figura 04: Unidade de Controle – Entrada de dados.

    A Instrução vem do acumulador IR, que estudaremos mais adiante, ela é

    composta de 8 bits, sendo que ela é dívida em três partes, o “OPC” – OperationCode (Código de Operação) que é constituído de 3 bits, o “E” que é referente àatribuição para a maioria das vezes, onde o mesmo informa se deve ser usado

    o valor “X” ou usar o valor “M(X)” ( memória RAM), e por fim o “X” que é a

    informaçãoOs dois flag’s da unidade de controle que aparecem no canto inferior

    direito da figura 04, estão acompanhados de flip- flop’s do tipo D, pois estes flag’sativam uma determinada função baseados no ciclo anterior, ou seja, eles existempara que eles não venham a gerar algum tipo de interferência referente ao cicloatual.

  • 8/19/2019 Processador 4 bits - LOGISIM

    6/19

    6

    2.4. Saídas

    As saídas da unidade de controle são responsáveis pela ativação de todos

    os outros componentes, os acumuladores, os reset’s, as memórias ROM e RAM,

    a ULA,as saídas filtradas da “Instrução” (OPC, E, X) e algumas delas são saídasque ativam determinadas ações, que podemos chama-las de especiais (store,buffer e load), toda a lógica por de trás das saídas da unidade de controle estábaseada em portas lógicas, fazendo com que as saídas obedeçam certascondições.

    Figura 05: Unidade de controle – Saídas.

  • 8/19/2019 Processador 4 bits - LOGISIM

    7/19

    7

    3. ACUMULADORES

    3.1. PC – Program Counter (Contador de Programa)

    Os acumuladores são mecanismos que recebem uma informação epassam a mesma adiante só quando recebem o clock, só que o PC recebealguns componentes a mais, pois o PC é responsável pela posição que a ROMirá tomar (a ROM é onde o código será inserido pelo programador, baseado noconjunto de instruções da tabela 01).

    Figura 06: PC – Program Counter.

    Esse acumulador é constituído de um contador de 4 bits além de umsistema de inserção de dados (usado pelas funções GoTo e Jump). Foi utilizadoum contador síncrono com flip-flop’s JK, constituído de um sistema baseado maisuma vez em portas lógicas, onde o que estiver na posição X irá aparecer nasaída se e somente se Load for 1 junto com um pulso de clock, nos dando apossibilidade de manipular as posições da ROM, ao invés de fazer códigossequências.

  • 8/19/2019 Processador 4 bits - LOGISIM

    8/19

    8

    3.2. IR – Instruction Register (Registrador de Instruções)

    O IR é um acumulador simples com a única diferença que os seus dadostêm 8 bits, a sua função é pegar o que está na ROM como instrução e transferirpara a unidade de controle, para que assim a unidade de controle possa executara instrução.

    Figura 07: IR – Instruction Register.

    3.3. AC – Accumulator (Acumulador)

    O AC é igual ao IR, um acumulador simples com a única diferença que osseus dados têm 4 bits, a sua função é pegar o que está na saída da ULA ealimentar o buffer, realimentar a ULA e mostra no display de 7 segmentos, e coma adição de componentes de entrada e saída, o AC também alimenta a saída dedados (se olharmos a figura 01, quando a OUT é ativada a saída faz um paralelocom o AC).

  • 8/19/2019 Processador 4 bits - LOGISIM

    9/19

    9

    Figura 07: IR – Instruction Register.

    Um ponto importante a ser lembrado é de que todos os acumuladores donosso processador (PC, IR e AC) contém uma entrada em todos eles referenteao reset, na qual todos eles são ligados à um Master Reset, que fica noprocessador, podemos observar o mesmo na figura 01. Podemos citar tambéma memória de todos os acumuladores, aqui usamos o flip-flop do tipo D, que temcomo característica principal de memorizar o valor recebido pela entrada D apósum pulso de clock, fazendo com que entrou vá para a saída e só se atualize comum novo pulso de clock.

  • 8/19/2019 Processador 4 bits - LOGISIM

    10/19

    10

    4. ULA – UNIDADE LÓGICA ARITMÉTICA

    Um dos componentes indispensáveis de um processador é a ULA, quenada mais é do que uma calculadora que efetua diversas operações.Basicamente a ULA é constituída de três entradas e três saídas, sendo duasentradas para os dados a serem trabalhados, a outra entrada sendo a queseleciona a operação, conhecida como “Operation Code” (Essa entrada leva aum circuito responsável pela seleção da função a ser executada, chamada de

    “Gerador de Produtos Canônico” ), uma saída para o resultado e as outras duassaídas usadas como indicadores, chamadas de “Flag de Zero” e “Flag deOverflow”. O Flag de Zero indica que na saída do resultado não há nenhum bit

    ativo (quando a saída retorna zero), fazendo com que o indicador retorne “1”, já

    o Flag de Overflow indica quando há um estouro na saída, isso acontece quando,por exemplo, as duas entradas de 4 bits retornam uma saída de 5 bits sendo que

    a saída suporta apenas 4 bits, fazendo com que retorne “1” para o indicador.

    Iremos dividir a nossa ULA em basicamente três componentes:

    Operadores – MOV, ADD, SUB, AND, OR, NOT Gerador de Produtos Canônicos – GPC

    Saidas – Flag’s e Saída

    4.1. Enable

    Antes de começar a falar sobre as operações, abordaremos um pontoimportante da ULA, o circuito que faz com que as operações sejam liberadasdepois de terem sido escolhidas pelo Gerador de Produtos Canônicos – GPC,circuito esse que fica dentro de cada circuito de operação, seja ele o de MOV,

    ADD, SUB, AND, OR ou NOT, como mostra a figura 08.Basicamente esse circuito auxilia a ULA a não deixar com que haja mais

    de uma saída de operadores (MOV, ADD, SUB, OR ou NOT) na saída final daULA, impedindo que haja conflitos de informações no resultado.

  • 8/19/2019 Processador 4 bits - LOGISIM

    11/19

    11

    Figura 08: ULA – Enable.

    4.2. Operation Code (OPC) e Gerador de Produtos Canônicos (GPC)

    OPC: Circuito responsável pela definição da função a ser realizada pelaULA, para esse circuito foi feito uma simples “Tabela Verdade”:

    Função OPC MOV 000 ADD 001SUB 010OR 011

    NOT 100Tabela 02: Tabela verdade e

    suas referentes funções.

    GPC: Circuito responsável por receber o OPC e habilitar a funçãoprogramada, o circuito abaixo foi feito baseado na Tabela 1:

    Figura 09: Circuito GPC

  • 8/19/2019 Processador 4 bits - LOGISIM

    12/19

    12

    4.3. MOV - Mover

    O circuito MOV nada mais é do que um circuito passador, ou seja, o queentra sai, mas como falado anteriormente o mesmo já está subordinado aocircuito Enable, como mostra a figura 10:

    Figura 10: ULA – Circuito MOV.

    4.4. ADD – Somador

    O circuito somador foi feito em duas partes, a primeira parte foi umsomador de 1 bit, e depois dele pronto, foi feito uma associação com 4 deles,formando assim um somador de 4 bits, segue a Tabela Verdade e os mapas deKarnaugh referente ao circuito somador de 1 bit:

    Vem A B Saída Vai

    0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1

    Tabela 03: Tabela verdade de um somador de 1 bit.

  • 8/19/2019 Processador 4 bits - LOGISIM

    13/19

    13

    Figura 11: Mapa de Karnaugh referente à Saída do somador de 1 bit.

    Figura 12: Mapa de Karnaugh referente ao “Vai Um” do somador de 1 bit.

    Figura 13: Circuito somador de 1 bit.

    Logo após ter concluído o circuito somador de 1 bit, foi associado 4circuitos somadores de 1 bit, fazendo com que se tornasse um circuito somadorde 4 bits, nesse circuito em sua saída foi adicionado mais uma vez o circuito

    “Enable”, na f igura 14 podemos observar como foi feito essa associação.

  • 8/19/2019 Processador 4 bits - LOGISIM

    14/19

    14

    Figura 14: Circuito somador de 4 bits.

    Podemos notar que para este circuito foi “isolado” de certa forma o “vem

    um” forçando a sempre entrar zero, mas não alterando o “vai um” do último

    circuito, o flag de overflow.

    4.5. SUB – Subtrator

    Para este circuito foi utilizado um circuito somador, mas foi implementadoo complemento dois. O complemento dois nada mais é do que inverter os bits daparte negativa e somar mais um bit:

    Figura 15: Demonstração de complemento dois.

    Dessa forma foi utilizado um método para que sempre que fosse ativadoo SUB pelo GPC, ele invertesse a parte negativa.

    Carry-Out: Aciona o Flag de Overflow

  • 8/19/2019 Processador 4 bits - LOGISIM

    15/19

    15

    Figura 16: Circuito subtrator de 4 bits.

    A figura 16 mostra que foi utilizado uma porta XOR (essa porta faz comque retorne 1 apenas quando as entradas forem diferentes) da seguinte forma.

    Em uma das entradas chega “B” de 4 bits, e para inverter os bits de B foi feito

    um XOR com uma entrada de 4 bits, todas elas em nível Alto (número quinze -1111), por exemplo, quando SUB estiver ativado e B for 0100 (número quatroem binário) e na outra entrada for 1111 (número quinze em binário), e sabendocomo a porta XOR funciona, a saída será o valor 1011, o inverso de B, e para

    finalizar o “Complemento 2”, uma saída nível alto entra no “Vem Um” do primeiro

    somador de 1 bit fazendo com que agora o valor de B seja 1100, dessa forma ovalor de B está pronto para ser somado com A. Quando a OPC libera a funçãoSUB para o GPC, o mesmo retorna nível alto para o Enable do SUB, um detalheimportante que podemos observar na figura 16 é que a mesma entrada doEnable serve para ativar (retornar um) ao vem um e ativar a segunda entrada doXOR.

    4.6. OR – OU

    O circuito OR faz um “ou lógico” entre A e B (todos os dois de 4 bits),fazendo com que retorne 1 apenas quando uma das entradas forem nível alto.

    Figura 17: Circuito OR de 4 bits.

  • 8/19/2019 Processador 4 bits - LOGISIM

    16/19

    16

    4.7. NOT – NÃO

    O circuito NOT faz uma negação do que entra em B (4 bits), fazendo comque retorne o valor inverso da entrada.

    Figura 18: Circuito NOT de 4 bits.

  • 8/19/2019 Processador 4 bits - LOGISIM

    17/19

    17

    5. MEMÓRIA ROM E MEMÓRIA RAM

    5.1. Memória ROM

    A memória ROM é um componente capaz armazenar instruções a seremrealizadas pelo processador, a memória ROM utilizada nesse processador éuma ROM com 16 posições que são acessadas por um endereço de 4 bits e 8bits para dados, é importante lembrar que a programação na ROM é feita emhexadecimal. Ela funciona da seguinte forma, o PC libera um endereço na

    entrada “A” da ROM, a unidade de controle libera o clock fazendo com que a

    saída “D” alimente o IR.

    Figura 19: Memória ROM 8x16.

    5.2. Memória RAM

    A memória RAM é utilizada para alojar valores resultantes das desiçõesda unidade de controle, seguindo o mesmo tamanha da ROM.

    Figura 20: Memória RAM 8x16.

  • 8/19/2019 Processador 4 bits - LOGISIM

    18/19

    18

    6. DISPOSITIVO DE ENTRADAS E SAÍDAS

    6.1. Entradas

    O dispositivo de entrada deste processador, foi intitulado de “USB 3.0”,ele tem por finalidade a entrada de dados, o USB 3.0 tem 16 entradas de dados,todas elas no tamanho de 4 bits. Quando a função é escrita na ROM, em seusprimeiros quatros número a unidade de controle define que tem que ativar odispositivo de entrada, fazendo com que primeiramente ele ative um MUX paraque o valor de AC não seja contaminado pelos outros quatro bits da ROM, poisa função do dispositivo de entrada é pegar o que estiver na posição descrita etransferi-la para o AC, abaixo podemos ver como foi feito tal dispositivo.

    Figura 21: Dispositivo de Entrada – “ USB 3.0 ” – visão interna e visão geral.

  • 8/19/2019 Processador 4 bits - LOGISIM

    19/19

    6.2. Saídas

    O dispositivo de saída desse processador foi intitulado de “HDMI”, suafunção é transferir o que estiver no AC para a saída, respeitando a posiçãodescrita na ROM, o dispositivo de saída necessitou de um DMX(Demultiplexador) e de 16 flip-flop’s do tipo D (com a mesma finalidade dosregistradores dos flag ’s), para que as saídas não fiquem “flutuando” além de umaporta AND, para o circuito de acionamento do “HDMI”, na figura podemosobservar o dispositivo.

    Figura 22: Dispositivo de Saída – “ HDMI ” – visão geral.