Buscar

Arquitetura de Computadores

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Apostila sobre 
Organização e 
Arquitetura de 
Computadores 
Autor: Eder Santana Freire 
 
 
 
 
Versão 1.3 
Apresentação 
 
 
A idéia de preparar uma apostila que abordasse o tema de Organização e Arquitetura de Computadores 
surgiu ainda durante a graduação, mas foi durante a realização de uma pós-graduação nesta área que 
pude compilar os tópicos de maior interesse dentro desta área, com o objetivo e de ajudar outras 
pessoas em busca de conhecimento, além de me ajudar a fixar e aprofundar os conhecimentos na área. 
 
Esta apostila está estruturada em tópicos e sub-tópicos, retirados de livros, notas de aula e outras fontes 
na Internet, e fornecem o conhecimento básico necessário ao entendimento da operação do hardware 
dos computadores digitais. A sua leitura é bem objetiva e simples, e procurou-se abordar os temas de 
forma bastante direta, de modo a facilitar uma rápida consulta por parte do leitor. 
 
Deve-se salientar que o objetivo desta apostila é transmitir a idéia geral por trás do tema, e não um 
conhecimento aprofundado a respeito dos tópicos cobertos. Portanto, o texto aqui apresentado serve 
como ponto de partida para quem se interessar pelo assunto, cujo conhecimento adquirido não só pode, 
como deve ser aprofundado por meio de livros e de outras fontes. 
 
Este arquivo PDF é de livre distribuição, impressão, cópia e reprodução, desde que respeitados os 
créditos para o autor. O mesma pode ser baixado originalmente em: www.ederfreire.tk, onde também 
pode ser encontrado o meu currículo, além de trabalhos futuros. A sua comercialização, em todo ou em 
parte, é proibida de todas as formas devendo neste caso o autor ser contactado imediatamente através 
do e-mail ederfreire@gmail.com. Críticas, sugestões e avisos de erros também podem ser enviados 
para este endereço. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Sobre o autor: Eder Freire é bacharel em Engenharia de Computação pela Universidade Estadual de Feira de Santana 
(Bahia), onde adquiriu interesse pela área de Arquitetura de Computadores e Sistemas Digitais. Desenvolveu o seu trabalho 
de conclusão de curso baseado na arquitetura do sistema computacional Atari 2600, vídeo-game de grande sucesso nos anos 
1980. Foi selecionado como bolsista no Programa CI Brasil, do CNPq / Governo Federal, tendo concluído com sucesso a 
pós-graduação em Projeto de Circuitos Integrados, com ênfase em Sistemas Digitais, no Centro de Treinamento 2, 
localizado no Centro de Tecnologia da Informação Renato Archer (Campinas-SP). Atualmente é bolsista do CI BRASIL / 
CNPq em uma Design House em Salvador, e mestrando em Mecatrônica / Sistemas Computacionais pela Universidade 
Federal da Bahia – UFBA.
Índice 
 
Introdução ........................................................................................................................................................ 5 
1. Circuitos Lógicos Digitais ............................................................................................................................ 6 
1.2 Organização, Projeto e Arquitetura de Computadores ........................................................................ 7 
1.3 Portas Lógicas ........................................................................................................................................ 7 
1.4 Álgebra Booleana ................................................................................................................................. 10 
1.4.1 Identidades básicas da Álgebra Booleana ............................................................................................ 11 
1.4.2 Teorema de De-Morgan ....................................................................................................................... 11 
1.4.3 Complemento de uma função .............................................................................................................. 12 
1.5 Simplificação por Mapas de Karnaugh ............................................................................................... 13 
1.5.1 Mapas de Variáveis ............................................................................................................................. 13 
1.5.2 Simplificação por Soma-de-Produtos .................................................................................................. 14 
1.5.3 Simplificação por Produto-das-Somas ................................................................................................. 15 
1.5.4 Condições Irrelevantes (don't care) ..................................................................................................... 17 
1.6 Circuitos Combinacionais .................................................................................................................... 18 
1.6.1 Meio-Somador .................................................................................................................................... 18 
1.6.2 Somador Completo ............................................................................................................................. 19 
1.6.3 Flip-Flops ........................................................................................................................................... 19 
1.7 Circuitos Seqüenciais ........................................................................................................................... 23 
1.7.1 Procedimento para o Projeto de Circuitos Seqüenciais ......................................................................... 24 
2. Circuitos Integrados .................................................................................................................................. 25 
2.1 Circuitos Integrados ............................................................................................................................ 25 
2.2 Decodificadores .................................................................................................................................... 26 
2.3 Codificadores ....................................................................................................................................... 29 
2.4 Multiplexadores ................................................................................................................................... 29 
2.5 Registradores ....................................................................................................................................... 30 
2.6 Registradores de Deslocamento ........................................................................................................... 31 
2.7 Contadores Binários ............................................................................................................................ 32 
2.8 Unidade de Memória ........................................................................................................................... 32 
2.8.1 Memória de Acesso Aleatório (Random Access Memory – RAM) ........................................................ 33 
2.8.2 Memória Somente-Leitura (Read-Only Memory – ROM) .................................................................... 33 
3. Unidade Central de Processamento ........................................................................................................... 35 
3.1 A CPU ................................................................................................................................................... 35 
3.2 Organização Geral dos Registradores ................................................................................................. 35 
3.2.1 Organização da Pilha .......................................................................................................................... 39 
3.2.2 Pilha da Memória ................................................................................................................................40 
3.2.3 Formatos de Instrução ......................................................................................................................... 41 
3.2.4 Modos de Endereçamento ................................................................................................................... 43 
3.3 Manipulação e Transferência de Dados .............................................................................................. 44 
3.3.1 Instruções de Transferência de Dados .................................................................................................. 45 
3.3.2 Instruções de Manipulação de Dados ................................................................................................... 46 
3.3.3 Instruções Lógicas e de Manipulação de Bits ....................................................................................... 47 
3.3.4 Instruções de Deslocamento ................................................................................................................ 48 
3.4 Controle de Programa ......................................................................................................................... 49 
3.4.1 Condições de Bits de Estado ............................................................................................................... 50 
3.4.2 Instruções de Desvio Condicional ....................................................................................................... 50 
3.4.3 Tipos de Interrupção ........................................................................................................................... 51 
3.5 RISC (Reduced Instruction Set Computer) ........................................................................................... 52 
4. Organização de Entrada e Saída ............................................................................................................... 53 
4.1 Dispositivos Periféricos ........................................................................................................................ 53 
4.2 Caracteres Alfanuméricos ASCII ........................................................................................................ 56 
4.3 Interface de Entrada e Saída ............................................................................................................... 58 
4.3.1 Módulos de Barramento de E/S e Interface .......................................................................................... 59 
4.3.2 E/S versus Barramento de Memória .................................................................................................... 61 
4.3.3 E/S Isolada versus Mapeada na Memória ............................................................................................ 61 
4.3.4 Exemplo de Uma Interface de E/S ....................................................................................................... 62 
4.4 Transferência de Dados ....................................................................................................................... 63 
4.4.1 Transferência Síncrona ........................................................................................................................ 63 
4.4.3 Controle por Strobe ............................................................................................................................. 64 
4.4.4 Handshaking ....................................................................................................................................... 66 
4.4.5 Transmissão Serial e Paralela .............................................................................................................. 69 
4.4.6 Interface de Comunicação Assíncrona ................................................................................................. 71 
4.4.7 Buffer First In First Out – FIFO.......................................................................................................... 72 
4.5 Modos de Transferência ....................................................................................................................... 74 
4.5.1 Exemplo de E/S Programada ............................................................................................................... 75 
4.5.2 E/S Iniciada por Interrupção ................................................................................................................ 76 
4.6 Interrupção por Prioridade ................................................................................................................. 76 
4.6.1 Prioridade por Daisy Chaining ............................................................................................................ 77 
4.6.2 Interrupção por Prioridade Paralela ..................................................................................................... 78 
4.6.3 Codificador de Prioridade ................................................................................................................... 81 
4.6.4 Ciclo de Interrupção ............................................................................................................................ 81 
4.6.5 Rotinas de Software ............................................................................................................................ 82 
4.6.6 Operação Inicial e Final ...................................................................................................................... 84 
4.7 Acesso Direto à Memória ..................................................................................................................... 84 
4.7.1 Controlador DMA ............................................................................................................................... 85 
4.7.2 Transferência por DMA ...................................................................................................................... 87 
4.8 Processador de Entrada e Saída .......................................................................................................... 89 
4.8.1 Comunicação CPU – IOP .................................................................................................................... 90 
4.9 Comunicação Serial ........................................................................................................................ 92 
4.9.1 Protocolo Orientado a Caracteres ........................................................................................................ 93 
4.9.2 Exemplo de Transmissão ..................................................................................................................... 94 
5. Organização da Memória .......................................................................................................................... 96 
5.1 Memória principal ............................................................................................................................... 96 
5.1.1 Chips ROM e RAM ............................................................................................................................ 97 
5.1.2 Mapa de Endereços de Memória ......................................................................................................... 99 
5.1.3 Conexão da Memória com a CPU ....................................................................................................... 99 
5.2 Memória Associativa .......................................................................................................................... 101 
5.2.1 Organização do Hardware ................................................................................................................. 102 
5.3 Memória Cache .................................................................................................................................. 102 
5.3.1 Mapeamento Associativo ..................................................................................................................103 
5.3.2 Mapeamento Direto .......................................................................................................................... 103 
5.4 Memória Virtual ................................................................................................................................ 105 
5.4.1 Espaço de Endereço e Espaço de Memória ........................................................................................ 105 
5.4.2 Tabela de Páginas da Memória Associativa ........................................................................................ 106 
5.4.3 Substituição de Páginas ..................................................................................................................... 107 
Exercícios ...................................................................................................................................................... 111 
Seção I ....................................................................................................................................................... 111 
Seção II ..................................................................................................................................................... 113 
Seção III .................................................................................................................................................... 114 
Bibliografia ................................................................................................................................................... 116 
Organização e Arquitetura de Computadores 
Eder Santana Freire 5 
 
Introdução 
 
 
Todos sabemos que os computadores se tornaram parte da vida rotineira. O trabalho inteligente que eles 
executam com uma dada instrução vale à pena a sua exploração. À primeira vista, uma questão comum 
que surge quando começamos a estudar o funcionamento dos computadores é: “que tipo de processo 
está acontecendo dentro de um computador quando lhe damos uma instrução ou comando? o que 
acontece dentro dele?” É isto que vai ser explorado nesta apostila. 
 
Como o tema abordado é Organização e Arquitetura de Computadores, deve-se primeiramente 
diferenciar os termos organização e arquitetura. 
 
A Organização de Computadores está focada na forma com que os componentes de hardware estão 
interconectados para formar um sistema computacional. 
 
A Arquitetura de Computadores preocupa-se com a estrutura e comportamento dos vários módulos 
funcionais de um computador, e como eles interagem para atender às necessidades de processamento 
do usuário. 
 
Primeiramente, serão abordados os circuitos lógicos digitais, com a idéia de um computador básico, 
introdução às portas lógicas e suas características, álgebra booleana, simplificação por mapas, e 
circuitos combinacionais e seqüenciais. Em seguida, a apostila trata dos circuitos integrados, como 
codificadores, decodificadores, registradores, registradores de deslocamento e unidades de memória. 
 
Posteriormente, é abordada a unidade central de processamento, com a organização interna dos seus 
registradores, instruções, transferência e manipulação de dados, controle de programa e arquiteturas 
RISC. A organização do sistema de entrada e saída é também discutida, citando dispositivos 
periféricos, interfaces, modos de transferência de dados, interrupções, acesso direto à memória, 
processador de E/S, comunicação serial e paralela, entre outros. 
 
Por fim, o texto trata da organização de memória, que abrange a memória principal, memórias 
auxiliares, cache e seus tipos, e a memória virtual, com algoritmos de substituição de páginas. A 
apostila ainda conta com alguns exercícios, que servem como recurso para fixação do aprendizado. 
Organização e Arquitetura de Computadores 
Eder Santana Freire 6 
 
1. Circuitos Lógicos Digitais 
 
Este capítulo introduz o conceito fundamental para o projeto de sistemas digitais construídos a partir de 
portas lógicas individuais e flip-flops. O mesmo cobre álgebra booleana, e circuitos combinacionais e 
seqüenciais. Assim, é fornecida a base necessária para compreensão dos circuitos digitais a serem 
apresentados. 
 
1.1 Computadores Digitais 
• Computadores digitais usam o sistema numérico binário, o qual possui dois dígitos, 0 e 1. 
• Um dígito binário é chamado de bit (BInary digiT). 
• Bits podem ser agrupados em bytes (8 bits) ou palavras (vários bytes), para formar determinado 
tipo de representação compreendido pelo computador. 
• Uma seqüência de instruções para o computador é conhecida como um programa. 
 
O diagrama de blocos de um computador digital básico é demonstrado na figura 1, e é baseado na 
arquitetura proposta por John Von Neumann: 
 
 
Figura 1: Diagrama de um computador básico 
 
 
 
O hardware do computador normalmente é dividido em três partes principais: 
 
• A Unidade Central de Processamento (do inglês Central Processing Unit – CPU), que contém 
uma unidade lógico-aritmética para manipulação de dados, um número de registradores para 
manipulação de dados, e circuitos de controle para a coleta e execução de instruções. 
• A memória de um computador contém armazenamento para instruções e dados, e é chamada de 
Memória de Acesso Aleatório (Random Access Memory – RAM). A CPU pode acessar qualquer 
local de forma aleatória na memória, e recuperar a informação binária em um intervalo fixo de 
tempo. 
• O processador de entrada e saída contém circuitos eletrônicos para comunicação e controle da 
transferência de informações entre o computador e o mundo externo. 
Organização e Arquitetura de Computadores 
Eder Santana Freire 7 
 
• Os dispositivos de entrada e saída conectados ao computador incluem teclado, mouse, 
impressoras, terminais, discos magnéticos e outros dispositivos de comunicação. 
 
 
1.2 Organização, Projeto e Arquitetura de Computadores 
 
• A organização de computadores está envolvida com a forma com o que o hardware do 
computador opera e a forma com o que os seus dispositivos são interconectados para formar o 
sistema computacional. Supõe-se que os vários componentes estão nos seus devidos lugares, e a 
tarefa é investigar a estrutura organizacional a fim de se verificar que as partes do computador 
operam conforme deveriam. 
 
• O projeto de computadores está envolvido com o projeto do hardware de um computador 
propriamente dito. Uma vez que a especificação do computador é formulada, é tarefa do 
projetista desenvolver o hardware para o sistema. O projeto de computadores está preocupado 
com a determinação de qual componente de hardware deve ser utilizado, e como as suas partes 
devem ser conectadas. Este aspecto do hardware de computadores é algumas vezes chamado de 
implementação de computadores. 
 
 
• A arquitetura de computadores está direcionada à estrutura e comportamento do computador 
conforme a visão do seu usuário. Ela inclui os formatos da informação, o conjunto de instruções 
e técnicas para endereçamento da memória. 
 
1.3 Portas Lógicas 
 
• As informações binárias são representadas em computadores digitais por meio de sinais 
elétricos. 
• Estes sinais podem ser representados pela tensão, que vai especificar um estado, de dois 
possíveis. Por exemplo, se um fio contém um sinal de 3 volts, considera-se que o mesmo 
representa o valor digital 1. 
• Da mesma forma, se o fio contém 1.5 volts, então este representa o valor digital 0. 
• A manipulação de informação binária em um computador é feita por meio de circuitos lógicos, 
chamados portas. 
 
As portas são: 
 
E (AND) 
 
• A porta AND combina dois ou mais sinais de entrada de forma equivalente a um circuito em 
série, para produzir um único sinal desaída, ou seja, ela produz uma saída 1, se todos os sinais 
de entrada forem 1; caso qualquer um dos sinais de entrada for 0, a porta AND produzirá um 
sinal de saída igual a zero. 
 
 
 
 
 
Organização e Arquitetura de Computadores 
Eder Santana Freire 8 
 
 
 
 
 
 
 
 
Figura 2: Porta AND 
 
OU (OR) 
 
• A porta OR combina dois ou mais sinais de entrada de forma equivalente a um circuito em 
paralelo, para produzir um único sinal de saída, ou seja, ela produz uma saída 1, se qualquer um 
dos sinais de entrada for igual a 1; a porta OR produzirá um sinal de saída igual a zero apenas se 
todos os sinais de entrada forem 0. 
 
 
Figura 3: Porta OR 
 
Porta Não (Inversor, NOT) 
 
• A porta NOT inverte o sinal de entrada (executa a NEGAÇÃO do sinal de entrada), ou seja, se o 
sinal de entrada for 0 ela produz uma saída 1, se a entrada for 1 ela produz uma saída 0. 
 
Figura 4: Inversor 
 
Buffer 
 
• O buffer funciona como um circuito temporário para armazenamento de uma variável lógica, 
não modificando o seu valor inicial. 
 
Organização e Arquitetura de Computadores 
Eder Santana Freire 9 
 
 
Figura 5: Buffer 
 
“Não-E” (NAND) 
 
• A porta NAND equivale a uma porta AND seguida por uma porta NOT, isto é, ela produz uma 
saída que é o inverso da saída produzida pela porta AND. 
 
 
 
Figura 6: Porta NAND 
 
 
 
“Não-OU” (NOR) 
 
• A porta NOR equivale a uma porta OR seguida por uma porta NOT, isto é, ela produz uma 
saída que é o inverso da saída produzida pela porta OR. 
 
 
Figura 7: Porta NOR 
 
 
 
OU Exclusivo (XOR) 
 
• A porta XOR compara os bits; ela produz saída 0 quando todos os bits de entrada são iguais e 
saída 1 quando pelo menos um dos bits de entrada é diferente dos demais. 
 
 
Organização e Arquitetura de Computadores 
Eder Santana Freire 10 
 
 
Figura 8: Porta XOR 
 
“Não-OU” Exclusivo (XNOR) 
 
• Esta porta é também conhecida como porta lógica coincidência, cuja operação é a inversa da 
porta XOR. 
 
 
Figura 9: Porta XNOR 
 
 
1.4 Álgebra Booleana 
 
Podem ser utilizados para representar uma função booleana: 
• Tabelas-verdade 
• Diagramas lógicos 
• Expressões algébricas 
 
• Álgebra booleana é uma variação da álgebra para manipulação de variáveis binárias e operações 
lógicas. 
• Variáveis são designadas por letras, como A, B, x e y. 
• Uma função booleana pode ser expressada algebricamente por variáveis binárias, símbolos de 
operações lógicas, parênteses e o sinal de igual. 
• O resultado de uma operação booleana será sempre 0 ou 1. 
• Considere a seguinte função booleana: 
 
F = xy + z' 
 
• A função F é igual a 1 se ambos x e y possuírem valor 1, ou se a expressão z' for verdadeira. 
Organização e Arquitetura de Computadores 
Eder Santana Freire 11 
 
• Notar que, para que a expressão z' seja verdadeira, é necessário que z possua valor 0, uma vez 
que z' representa o complemento de z. 
 
1.4.1 Identidades básicas da Álgebra Booleana 
 
Abaixo são listadas as 17 identidades básicas da álgebra de Boole, para consulta do leitor: 
 
 
 
1.4.2 Teorema de De-Morgan 
 
• Este teorema é muito importante para a manipulação de portas NOR e NAND. Ele declara que 
uma porta NOR que executa a função (x + y)' é equivalente à função x'y'. De forma similar, uma 
função NAND pode ser expressa tanto por (xy)' como por (x' + y'). Por esta razão, as portas 
NOR e NAND possuem dois símbolos gráficos distintos. 
 
 
 
Figura 10: OU invertido e inversor-E 
Organização e Arquitetura de Computadores 
Eder Santana Freire 12 
 
• Os símbolos para as portas inversor-E e para a porta OU invertido seguem o teorema de De-
Morgan, onde foi convencionado que os pequenos círculos utilizados denotam 
complementação. 
• De forma similar, as portas NAND possuem dois símbolos distintos, conforme mostra a figura: 
 
 
Figura 11: Inversor-OU e E invertido 
 
 
1.4.3 Complemento de uma função 
 
• O complemento de uma função F, quando expresso em uma tabela verdade, é obtido pela 
permuta de 1's e 0's nos valores de F da tabela. 
• Quando a função é expressa na forma algébrica, o complemento da função pode ser derivado 
por meio do teorema de De-Morgan. 
• A forma geral do teorema de De-Morgan pode ser expressa da seguinte forma: 
 
(x1+x2+x3+….Xn) = x1’x2’x3’…xn’ 
(x1x2x3…xn)’=x1’+x2’+x3’+…+xn’ 
 
• Ao se substituir todas as operações OR por operações AND e vice-versa, e complementar cada 
variável individual, é possível derivar um procedimento simples para obtenção do complemento 
da uma expressão algébrica. Por exemplo: 
 
F = AB+C’D’+B’D 
F’=(A’+B’)(C+D)(B+D’) 
 
• Portanto, a expressão complementar é obtida pelo intercâmbio de operações AND e OR, e o 
posterior complemento de cada operando. 
 
 
 
Organização e Arquitetura de Computadores 
Eder Santana Freire 13 
 
1.5 Simplificação por Mapas de Karnaugh 
 
• Além do uso da Álgebra Booleana para simplificação de uma função, uma técnica chamada 
simplificação por mapas também pode ser utilizada. 
• O método de mapas é conhecido como mapa de Karnaugh ou mapa-K. 
• Cada combinação de variáveis em uma tabela verdade é chamada de minitermo. 
• Existem 2n minitermos para uma função com n variáveis. 
• Uma quarta representação de uma função Booleana pode ser dada pela soma dos minitermos 
das funções (soma dos produtos). 
 
Exemplos 
 
F(x,y,z)=Σ(1,4,5,6,7) 
 
1.5.1 Mapas de Variáveis 
 
A seguir estão mapas para funções de duas, três ou quatro variáveis: 
 
 
 
 
Figura 12: Mapas para funções de 2, 3 e 4 variáveis 
 
• Os nomes das variáveis são listados por ambos os lados da linha diagonal na extremidade do 
mapa. 
• Os 0's e 1's marcados ao longo de cada linha e coluna designam os valores das variáveis. 
Organização e Arquitetura de Computadores 
Eder Santana Freire 14 
 
• Cada variável sob as chaves contém metade dos quadrados no mapa, onde a mesma aparece 
pronta para uso. 
• O minitermo representado por um quadrado é determinado pela atribuição binária da variável 
ao longo das extremidades superiores à esquerda do mapa. 
• Aqui, o minitermo 5, no mapa de três variáveis, é representado por 101, na segunda coluna. 
Este minitermo representa um valor para as variáveis binárias A, B e C, com A e C não estando 
pronta e B sendo estando pronta para uso. 
 
1.5.2 Simplificação por Soma-de-Produtos 
 
• Uma função booleana representada por uma tabela verdade é plotada no mapa ao se inserir 1's 
nestes quadrados onde a função é 1. 
• As funções booleanas podem então ser simplificadas pela identificação de quadrados adjacentes 
no mapa de Karnaugh que contém um 1. 
• Um quadrado é considerado adjacente a outro quadrado se está próximo, acima ou abaixo dele. 
Além disso, quadrados nos extremos da mesma linha horizontal também são considerados 
adjacentes. O mesmo se aplica para quadrados no topo e na base de uma coluna. 
• O objetivo é identificar quadrados adjacentes contendo 1's e agrupá-los. 
• Os grupos devem conter um número de quadrados que é uma potência integral de 2. 
• Grupos de quadrados adjacentes combinados podem compartilhar um ou mais quadrados com 
um ou mais grupos. 
• Cada grupo de quadrados representa um termo algébrico, e a operação OR desses termos 
fornece a expressão algébrica simplificada para a função. 
• Para encontrar a expressão algébrica mais simplificada, o objetivoda simplificação por mapas é 
identificar o menor número de grupos com o maior número possível de membros. 
 
• Simplificando a função Booleana F (A,B,C) = Σ(3,4,6,7): 
• O mapa de três variáveis para esta função é mostrado na figura anterior. 
• Existem quatro quadrados marcados com 1's, um para cada minitermo que produz 1 para a 
função. Estes quadrados pertencem ao minitermo 3,4,6,7 e são reconhecidos na figura b. 
• Dois quadrados adjacentes são combinados na terceira coluna. Esta coluna pertence 
conjuntamente a B e C e produz o termo BC. 
• Os dois últimos quadrados restantes com 1's nos dois cantos da segunda linha são adjacentes, e 
pertencem às linhas e colunas de C', de modo que eles produzem o termo AC'. 
 
A expressão simplificada para a função é a função OR dos dois termos: 
 
F = BC + AC’ 
 
• O segundo exemplo simplifica a seguinte função booleana: 
 
F(A,B,C) = Σ(0,2,4,5,6) 
 
• Os cinco minitermos são marcados com 1's nos quadrados correspondentes do mapa de três 
variáveis. 
• Os quatro quadrados na primeira e quarta colunas são adjacentes, e representam o termo C'. 
• O quadrado restante marcado com 1 pertence ao minitermo 5 e pode ser combinado com o 
Organização e Arquitetura de Computadores 
Eder Santana Freire 15 
 
quadrado de minitermo 4 para produzir o termo AB'. A função simplificada é: 
 
F = C’+AB’ 
 
 
 
 
 
 
 
 
 
 
Figura 13: Mapa para F (A,B,C) = Σ(3,4,6,7) 
 
O terceiro exemplo necessita de um mapa de quatro variáveis: 
 
F(A,B,C,D)=Σ(0,1,2,6,8,9,10) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 14: Mapa para F(A,B,C,D)=Σ(0,1,2,6,8,9,10) 
 
• A área no mapa coberta por estas quatro variáveis consiste nos quadrados marcados com 1's na 
figura 14 acima. A função contém 1's nos quatro cantos que, quando tomados como grupos, 
fornecem o termo B'D'. Isto é possível porque estes quatro quadrados são adjacentes quando o 
mapa é considerado com as suas bordas superior e inferior ou esquerda e direita se tocando. 
• Os dois 1's na linha da base são combinados com os dois 1's na esquerda da linha da base para 
fornecer o termo B'C'. 
• O 1 restante no quadrado do minitermo 6 é combinado com o minitermo 2 para fornecer o 
termo A'CD'. A função simplificada é: 
 
F = B’D’ + B’C’ + A’CD’ 
 
1.5.3 Simplificação por Produto-das-Somas 
 
• Outro método para simplifcação de expressões booleanas pode ser representar a função como 
um produto de somas. 
Organização e Arquitetura de Computadores 
Eder Santana Freire 16 
 
• Esta aproximação é similar à simplificação por Soma-dos-Produtos, mas identificando 
quadrados adjacentes contendo 0's ao invés de 1's para formar grupos de quadrados adjacentes. 
• Então, ao invés de representar a função como uma soma de produtos, a função é representada 
como um produto de somas. 
 
Exemplos: 
 
F(A,B,C,D) = Σ(0,1,2,5,8,9,10) 
 
• Os 1's marcados no mapa da figura 15 representam os minitermos que produzem 1 para a 
função, 
• Os quadrados marcados com 0's representam o minitermo não incluso em F e portanto denotam 
o o seu complemento. 
• Ao se combinar os quadrados com 1's, se obtém a função simplificada na forma da soma-de-
produtos: 
 
F = B’D +B’C’+A’C’D 
 
• Se os quadrados marcados com 0's são combinados conforme mostrado no diagrama, se obtém 
a função complementar simplificada: 
 
F’=(A’+B’)(C’D’)(B’+D) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 15: Mapa para F(A,B,C,D) = Σ(0,1,2,5,8,9,10) 
 
• O diagrama lógico das duas expressões simplificadas são mostrados na figura 16: 
 
 
Organização e Arquitetura de Computadores 
Eder Santana Freire 17 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 16: Diagramas lógicos com portas AND e OR 
 
• A expressão da soma de produtos é implementada na figura 16(a), com um grupo de portas 
AND, uma para cada termo AND. 
• As saídas das portas AND são conectadas às entradas de uma única porta OR. A mesma função 
é implementada na figura 16(b) na forma de produto das somas, com um grupo de portas OR, uma 
para cada termo OR, e as suas saídas são conectadas às entradas de uma única porta AND. 
• Em cada caso, pressupõe-se que as variáveis de entrada estão diretamente disponíveis nos seus 
complementos, logo inversores não estão inclusos. 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 17: Diagramas lógicos com portas NAND e NOR 
 
 
1.5.4 Condições Irrelevantes (don't care) 
 
• Nesta ocasião, não importa se a função produz um 0 ou 1 para um dado minitermo. 
• Quando esta condição ocorre, um X é usado no mapa para representar a condição de don't care. 
• Então, ao se efetuar a simplificação por mapa, um quadrado contendo um X pode ser usado em 
ambas aproximações Soma-de-Produtos e Produto-das-Somas. 
• Ao se escolher quadrados adjacentes para a função no mapa, pode se assumir que os x's 
possuem valor 0 ou 1, seja qual for retornará a expressão mais simples. 
• Além disso, um X não precisa ser usado na expressão, uma vez que o mesmo não contribui para 
a simplificação da função. 
• Em cada caso a escolha depende somente da simplificação que pode ser obtida. 
 
Como exemplo, considere as seguintes funções booleanas, juntamente com os minitermos don't 
Organização e Arquitetura de Computadores 
Eder Santana Freire 18 
 
care: 
 
F(A,B,C) = Σ(0,2,6) 
d(A,B,C) = Σ(1,3,5) 
 
• O minitermo listado em F produz um 1 para a função. Os mini-termos don't care listados em d 
podem produzir tanto um 0 quanto um 1 para a função. Os minitermos restantes 4,7 produzem 
um 0 para a função. 
• Os minitermos de F são marcados com 1's, os de d são marcados com x's, e os quadrados 
restantes são marcados com 0's. 
• Os 1's e x's são combinados em qualquer maneira conveniente, de forma a aproximar o máximo 
número de quadrados adjacentes 
• Não é necessário incluir os minitermos don't care 1 e 3. 
• Com os 1's na primeira linha obtemos o termo, BC'. A expressão simplificada é dada por: 
 
F = A’ + BC 
 
 
1.6 Circuitos Combinacionais 
 
• Um circuito combinacional é um arranjo de portas lógicas conectadas a um conjunto de 
entradas e saídas. 
• A qualquer tempo, os valores binários das saídas são uma função dos valores binários das suas 
entradas. 
• O projeto de um circuito combinacional se inicia pelo esboço verbal do problema e finaliza com 
um diagrama de circuito lógico. O procedimento envolve os seguintes passos: 
• O problema é iniciado. 
• As variáveis de entrada e saída são relacionadas a letras e símbolos. 
• A tabela verdade que define a relação entre entradas e saídas é derivada. 
• As funções booleanas simplificadas para cada saída são obtidas. 
• O diagrama lógico é desenhado. 
 
1.6.1 Meio-Somador 
 
• É o circuito aritmético mais básico. 
• Realiza a adição de dois dígitos binários. 
• As variáveis de entrada de um meio-somador são dois valores lógicos quaisquer ( 0 ou 1); 
• As variáveis de saída de um meio-somador são chamadas de soma e carry (vai - um). 
 
 
 
 
Organização e Arquitetura de Computadores 
Eder Santana Freire 19 
 
 
Figura 18: Meio-somador 
 
1.6.2 Somador Completo 
 
• Um somador completo realiza a adição de três dígitos binários. 
• Dois meio-somadores podem ser combinados para formar um somador completo. 
 
 
 
Figura 19: circuito de um somador completo 
 
• Embora um somador completo possua três entradas, o mesmo ainda possui somente duas 
saídas, já que o maior número possível é 1 + 1 + 1 = 3, e 3 pode ser representado por doisbits. 
• O circuito do somador completo contém dois meio-somadores e uma porta OR. 
 
 
 
Tabela 1: Tabela verdade para o somador completo. 
 
1.6.3 Flip-Flops 
 
• Um Flip-flop é uma célula binária capaz de armazenar um bit de informação. 
Organização e Arquitetura de Computadores 
Eder Santana Freire 20 
 
• Ele possui duas saídas, uma para o valor normal e outra para o complemento do bit que está 
armazenando. 
• Flip-flops são elementos de armazenamento utilizados em circuitos seqüenciais síncronos. 
• Circuitos seqüenciais síncronos empregam sinais que afetam elementos de armazenamento 
apenas em instâncias discretas de tempo. 
• Um dispositivo de temporização chamado gerador de pulso de clock, que produz uma sucessão 
periódica de pulsos de clock, é o elemento responsável pela sincronização. 
• Os valores mantidos pelos elementos de armazenamento podem mudar apenas por meio de 
pulsos de clock. 
• Assim, um flip-flop mantém um estado binário até que seja direcionado por um pulso de clock 
para alternar os estados. 
• A diferença dos tipos de flip-flops é o número de entradas e a maneira pela qual as entradas 
afetam o estado binário. 
• Flip-flops podem ser descritos por uma tabela de características que permuta todas as possíveis 
entradas (da mesma forma que uma tabela verdade). 
• A tabela de características de um flip-flop descreve todas as saídas possíveis (chamadas de 
próximo estado) no tempo Q(t + 1), a partir de todas as entradas possíveis e do estado atual no 
tempo Q(t). 
• Os tipos de flip-flop mais comuns são: 
 
� Flip-flops SR 
� Flip-flops D 
� Flip-flops JK 
� Flip-flops T 
 
Flip-Flop SR 
 
Entradas: 
• S (para set) 
• R (para reset) 
• C (para clock) 
 
Saídas: 
• Q 
• Q' 
 
 
Tabela 2: Características do flip-flop SR 
 
 
 
 
Organização e Arquitetura de Computadores 
Eder Santana Freire 21 
 
• A operação do flip-flop SR se dá da seguinte forma: 
• Se não há sinal na entrada de clock C,a saída do circuito não pode mudar, independentemente 
dos valores nas entradas S e R. 
• Somente quando o sinal de clock muda de 0 para 1, a saída pode ser afetada de acordo com os 
valores nas entradas S e R. 
• Se S = 1 e R = 0 quando C muda de 0 para 1, a saída Q terá valor 1. 
• Se S = 0 e R = 1 quando C muda de 0 para 1, a saída Q terá valor 0. 
• Se ambos S e R possuem valor 0 durante a transição de clock, a saída não se modifica. 
• Quando ambas entradas S e R são iguais a 1, a saída é imprevisível e pode se tornar tanto 0 
como 1, dependendo da temporização interna que ocorre dentro do circuito. 
 
Flip-Flop D 
 
Entradas: 
• D (para dados) 
• C (para clock) 
 
Saídas: 
• Q 
• Q' 
 
 
Tabela 3: Características do flip-flop D 
 
 
Flip-Flop JK 
 
Entradas: 
• J 
• K 
• C (para clock) 
 
Saídas: 
• Q 
• Q' 
 
 
 
Organização e Arquitetura de Computadores 
Eder Santana Freire 22 
 
 
 
Tabela 4: Características do flip-flop JK 
 
 
Flip-Flop T 
 
Entradas: 
• T (para toggle) 
• C (para clock) 
 
Saídas: 
• Q 
• Q' 
 
 
Tabela 5: Características do flip-flop T 
 
 
• A maioria dos flip-flops é sensível à borda, o que significa que a transição de valores ocorre em 
um nível específico do pulso de clock. 
• Uma transição em borda positiva ocorre na borda de subida do sinal de clock. 
• Uma transição em borda negativa ocorre na borda de descida do sinal de clock. 
• Um outro tipo de flip-flop é o chamado flip-flop mestre-escravo, que consiste basicamente de 
dois flip-flops em série. 
• Os flip-flops também podem incluir terminais especiais de entrada para setar ou resetar (zerar) o 
flip-flop assincronamente. Estas entradas são normalmente chamadas de preset e clear e são úteis 
para inicializar os flip-flops antes que as operações de clock se iniciem. 
 
 
 
Tabelas de Excitação dos Flip-Flops 
 
• Durante o projeto de circuitos seqüenciais, a transição requerida do estado atual para o próximo 
estado é conhecida. 
• O que o projetista precisa saber é quais condições de entrada precisam existir para implementar 
o que é requerido. 
Organização e Arquitetura de Computadores 
Eder Santana Freire 23 
 
• Para isto se torna necessário o uso de tabelas de excitação de flip-flops. 
 
 
 
 
Tabela 6: Excitação dos flip-flops SR e JK 
 
 
 
 
Tabela 7: Excitação dos flip-flops D e T 
 
 
1.7 Circuitos Seqüenciais 
 
• Quando um circuito contém somente portas, é chamado de circuito combinacional. 
• Entretanto, se um circuito usa tanto portas como flip-flops, o mesmo é chamado de circuito 
seqüencial. 
• Assim, um circuito seqüencial é uma interconexão de flip-flops e portas lógicas. 
• Pode-se considerar um circuito seqüencial como uma caixa preta que, quando alimentada com 
determinadas entradas externas, produz determinadas saídas externas. Um circuito seqüencial típico 
funcionaria da seguinte forma: 
• As entradas externas constituem algumas das entradas para o circuito combinacional. 
• As entradas internas do circuito combinacional são as entradas internas conectadas aos flip-
flops. 
• As saídas internas dos flip-flops constituem as entradas restantes para o circuito combinacional. 
• As saídas externas são combinações das saídas provenientes dos circuitos combinacionais e de 
flip-flops. 
Organização e Arquitetura de Computadores 
Eder Santana Freire 24 
 
• O comportamento de um circuito seqüencial é determinado por suas entradas, saídas e pelo 
estado dos seus flip-flops. 
• Ambas as saídas e o próximo estado são determinados pelas entradas e pelo estado atual do 
circuito. Uma tabela de estados pode representar este relacionamento. 
• Um diagrama de estados pode representar a informação em uma tabela de estados graficamente, 
onde os estados são representados por círculos (vértices), e transições em entradas específicas são 
representadas pelos rótulos nas linhas direcionadas (bordas) conectando os círculos. 
 
 
1.7.1 Procedimento para o Projeto de Circuitos Seqüenciais 
 
1. Formular o comportamento do circuito por meio de um diagrama de estados. 
2. Determinar o número n de flip-flops necessários (igual a n bits nos círculos). 
3. Determinar o número n de entradas (especificadas por bordas no diagrama). 
4. Criar uma tabela de estados, designando letras para flip-flops, e variáveis de entrada e saída. 
5. Para cada linha, listar o próximo estado como especificado no diagrama de estados. 
6. Selecionar o tipo de flip-flop a ser usado no circuito. 
7. Estender a tabela de estados para uma tabela de excitação, incluindo colunas para cada entrada, 
de cada flip-flop. 
8. Usando a tabela de excitação e as atuais transições do estado atual para o próximo estado, 
formular as condições de entrada para os flip-flops. 
9. Construir a tabela verdade para o circuito combinacional usando o estado atual e as colunas de 
entrada da tabela de excitação (para entradas) e entradas dos flip-flops (para saídas). 
10. Usar a simplificação por mapas da tabela verdade para obter as equações de entrada dos flip-
flops.** 
11. Determinar as saídas externas para o circuito seqüencial (saídas de flip-flops, e potencialmente 
saídas de circuitos combinacionais). 
12. Desenhar o diagrama lógico da seguinte forma: 
13. Desenhar flip-flops e nomear todas as suas entradas e saídas. 
14. Desenhar o circuito combinacional a partir das expressões booleanas dadas pelas equações de 
entrada dos flip-flops. 
15. Conectar as saídas dos flip-flops às entradas do circuito combinacional. 
16. Conectar as saídas do circuito combinacional àsentradas dos flip-flops. 
 
* Para m flip-flops e n entradas, a tabela de estados irá consistir de m colunas para o estado atual, n 
colunas para as entradas e m colunas para o próximo estado. O número de linhas na tabela será de 
até 2m+n, uma linha para cada combinação binária entre o atual estado e as entradas. 
 
** Cada equação de entrada dos flip-flops especifica um diagrama lógico cuja saída deve ser 
conectada ao uma das entradas do flip-flop. 
Organização e Arquitetura de Computadores 
Eder Santana Freire 25 
 
2. Circuitos Integrados 
 
Este capítulo explica em detalhes as operações lógicas dos componentes digitais padrão mais 
comuns. Isto inclui decodificadores, registradores de multiplexadores, contadores e memórias. 
Estes componentes digitais são usados como blocos prontos para o projeto de unidades maiores, no 
capítulo seguinte. 
 
2.1 Circuitos Integrados 
 
• Circuitos digitais são construídos a partir de circuitos integrados. 
• Um circuito integrado (CI) é um pequeno cristal semicondutor de silicone, chamado de chip, e 
contém os componentes eletrônicos necessários para as portas digitais. 
• As portas são interconectadas no interior do chip para formar o requerido circuito. 
• O chip é montado em um encapsulamento de cerâmica ou plástico, e fios finos de ouro fazem a 
ligação com os pinos externos, para formar as conexões soldadas do circuito integrado. 
• O número de pinos pode variar de 14 em um pequeno encapsulamento de CI para milhares em 
um grande encapsulamento. 
• À medida que a tecnologia evoluiu, o número de portas que podiam ser colocadas em um único 
chip aumentou consideravelmente. 
• Os chips são classificados nas seguintes categorias, primariamente baseadas no número de 
portas que cada uma contém. 
 
• Integração em pequena escala (Small-scale integration – SII) 
• Número de portas normalmente menor que 10. 
• Entradas e saídas tipicamente conectadas diretamente aos pinos. 
 
• Integração em média escala (Medium-scale integration – MSI) 
• Número de portas: entre 10 e 200. 
• Tipicamente executam funções digitais elementares específicas. 
• Exemplos: decodificadores, somadores, registradores 
 
• Integração em larga escala (Large Scale Integration - LSI) 
• Número de portas: entre 200 e alguns milhares 
• Sistemais digitais mais complexos 
• Exemplos: Processadores, chips de memória, módulos programáveis 
 
• Integração em larga escala (Very Large Scale Integration VLSI) 
• Número de portas: milhares 
• Sistemas digitais ainda mais complexos 
• Exemplos: grandes arranjos de memória, chips de microcomputador complexos 
 
• Circuitos integrados digitais são classificados não apenas pelas suas operações lógicas, mas 
também pela tecnologia específica do circuito (família de lógica digital) às quais eles pertencem. 
 
As famílias de lógica digital mais populares são: 
 
Organização e Arquitetura de Computadores 
Eder Santana Freire 26 
 
• Lógica transistor-transistor (Transistor-transistor logic – TTL) 
• Família lógica amplamente utilizada 
• Utiliza transistores para implementar as portas 
 
• Lógica acoplada por emissor (Emitter-coupled logic – ECL) 
• Usada em sistemas de alta performance 
• Utiliza transistores especiais não-saturados para atingir velocidades muito altas 
 
• Semicondutor metal-óxido (Metal-oxide semiconductor – MOS) 
• Usada em circuitos que possuem alta densidade de componentes 
• Utiliza transistores unipolares 
 
• Semicondutor metal-óxido complementar (Complementary metal-oxide semiconductor – 
CMOS) 
• Também utilizada em circuitos que possuem alta densidade de componentes 
• Também utiliza transistores unipolares, mas os conecta em uma disposição complementar 
• Mais econômica que a MOS devido ao baixo consumo de potência 
 
2.2 Decodificadores 
 
• Um código binário de n bits é capaz de representar até 2n elementos distintos em informação 
codificada. 
• Um decodificador é um circuito combinacional que converte informação binária das n entradas 
codificadas em um número máximo de 2n saídas distintas. 
 
Decodificador de 3-8 linhas 
 
• Se a informação codificada em n bits tem combinações de bits não utilizadas, o decodificador 
pode possuir menos do que 2n saídas. 
• Um decodificador de n-para-m linhas, onde m <= 2n, tem até m variáveis de saída para n 
variáveis de entrada. 
• Decodificadores tipicamente incluem uma ou mais entradas de habilitação (enable) para 
controlar (habilitar/desabilitar) a operação do circuito. 
 
 
Tabela 8: Tabela-verdade do decodificador 3-para-8 
Organização e Arquitetura de Computadores 
Eder Santana Freire 27 
 
A saída do decodificador 3-para-8 pode ser expressa pelas seguintes funções binárias: 
 
D0 = EA2'A1'A0' 
D1 = EA2'A1'A0 
D2 = EA2'A1A0' 
D3 = EA2'A1A0 
D4 = EA2A1'A0' 
D5 = EA2A1'A0 
D6 = EA2A1A0' 
D7 = EA2A1A0 
 
Deste modo, é possível construir o circuito do decodificador, da seguinte forma: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 20: Esquema do decodificador de 3 para 8 
 
• Um decodificador também pode ser construído a partir das portas lógicas AND e NAND. 
• A figura 21 abaixo demonstra um decodificador de 2-para-4 construído com portas NAND: 
 
 
 
 
 
 
 
 
 
 
Figura 21: Decodificador 2-para-4 com portas NAND 
Organização e Arquitetura de Computadores 
Eder Santana Freire 28 
 
 
Tabela 9: Tabela verdade do decodificador 2-para-4 
 
• Uma técnica chamada expansão de decodificador pode ser utilizada para construir 
decodificadores maiores a partir de alguns menores. Por exemplo, dois decodificadores 2-para-4 
podem ser combinados para construir um decodificador 3-para-8. 
 
 
 
Figura 22: Decodificador 3-para-8 construído a partir de dois decodificadores 2-para-4 
 
 
• A figura 22 acima mostra como decodificadores com entradas de habilitação podem ser 
conectados para formar um decodificador maior. 
• Como pode ser visto na figura, dois decodificadores 2-para-4 são combinados para se obter um 
decodificador 3-para-8. 
• Os dois bits menos significativos da entrada são conectados a ambos decodificadores. 
• O bit mais significativo é conectado à entrada de habilitação (E) de um decodificador e, por 
meio de um inversor, à entrada de habilitação do outro decodificador. 
• Aqui, assume-se que cada decodificador é habilitado quando a sua entrada E é igual a 1. 
• Quando E é igual a zero, o decodificador é desabilitado, e todas as suas saídas estão no nível 0. 
Quando A2 = 0, o decodificador mais acima é habilitado e o mais abaixo é desabilitado. 
• As saídas do decodificador de baixo se tornam inativas com todas as saídas em 0. As saídas do 
decodificador de cima geram as saídas D0 a D3, dependendo dos valores de A1 a A0 (enquanto A2 
= 0). 
Organização e Arquitetura de Computadores 
Eder Santana Freire 29 
 
• Quando A2 = 1, o decodificador de baixo é habilitado e o de cima é desabilitado. O 
decodificador de baixo gera o equivalente binário D4 a D7, uma vez que estes números binários 
possuem 1 na posição A2. 
 
2.3 Codificadores 
 
• Um codificador é um circuito combinacional que executa a operação inversa de um 
decodificador. 
• As suas linhas de saída geram o código binário correspondente aos valores de entrada de um 
decodificador. 
• Um codificador possui 2n (ou menos) entradas distintas e n saídas. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 23: Esquema de um codificador 4-para-2 
 
• Portanto, a saída do codificador 4-para-2 pode ser expressa pelas seguintes funçõesbinárias: 
 
F0 = A3 + A0 
F1 = A1' . A0' 
 
2.4 Multiplexadores 
 
• Um multiplexador é um circuito combinacional que recebe a entrada de uma das suas 2n linhas 
de entrada e direciona-a para uma única linha de saída. 
• A seleção de uma linha de entrada de dados para uma saída em particular é determinada por um 
conjunto de entradas de seleção. 
• Um multiplexador 2n-para-1 possui 2n linhas de entrada de dados e n linhas de seleção de 
entrada para determinar qual linha de entrada deve ser selecionada e direcionada à única linha de 
saída. 
• Uma tabela de função pode ser usada para descrever a funcionalidade de um multiplexador, 
conforme demonstra a figura: 
Organização e Arquitetura de Computadores 
Eder Santana Freire 30 
 
 
 
 
Tabela 10: Tabela de função para um multiplexador 4-para-1 
 
• Assim como os codificadores, os multiplexadores podem ter uma entrada de habilitação para 
controlar a operação da unidade. 
• Adicionalmente, multiplexadores podem ser agrupados entre si para executar tarefas de maior 
complexidade. 
• Também são chamados pela abreviação MUX (do inglês multiplexer), e são identificados pelo 
símbolo da figura 24: 
 
 
 
 
 
 
 
 
 
 
 
Figura 24: Esquema de um multiplexador de 2 entradas 
 
 
2.5 Registradores 
 
• Um registrador é um grupo de flip-flops dispostos em conjunto, capazes de armazenar, cada um, 
1 bit de informação. 
• Um registrador de n bits possui um grupo de n flip-flops e é capaz de armazenar qualquer 
informação binária de até n bits. 
• Adicionalmente aos flip-flops, os registradores podem possuir portas lógicas combinacionais 
que executam determinadas tarefas de processamento de dados. As portas controlam como e 
quando novas informações são transferidas para os registradores. 
• A transferência de novas informações para um registrador é conhecida como carga do 
registrador (register load). Se a carga ocorre simultaneamente a uma transição de pulso de clock 
comum, se dizer que a carga é feita em paralelo. 
• A entrada da carga em um registrador determina a ação a ser tomada a cada pulso de clock. 
• Quando a entrada de carga é 1, o dado nas linhas de entrada é transferido para os flip-flops do 
registrador. Quando a entrada de carga é 0, as entradas de dados são inibidas e o flip-flop mantém o 
seu estado atual. 
Organização e Arquitetura de Computadores 
Eder Santana Freire 31 
 
2.6 Registradores de Deslocamento 
 
• Um registrador capaz de deslocar a sua informação binária em uma ou ambas direções é 
chamado de registrador de deslocamento. 
• Registradores de deslocamento são construídos conectando-se flip-flops em cascata, onde a 
saída de um flip-flop é conectada á entrada do flip-flop seguinte. 
• Todos os flip-flops recebem o mesmo pulso de clock, que inicia o deslocamento de um estágio 
para o próximo. 
• Um registrador de deslocamento com entrada serial possui uma única entrada externa (chamada 
de entrada serial), entrando no flip-flop mais externo. Cada flip-flop restante usa a saída do flip-flop 
anterior como sua entrada, com o último flip-flop produzindo a saída externa (chamada de saída 
serial). 
• Um registrador capaz de deslocar em apenas uma direção (somente da esquerda para a direita, 
ou da direita para a esquerda) é chamado de registrador de deslocamento unidirecional. 
• Já um registrador capaz de deslocar os dados em ambas as direções (esquerda ou direita) é 
chamado de registrador de deslocamento bidirecional. 
• De um modo geral, um registrador de deslocamento pode possuir os seguintes componentes: 
• Uma entrada para pulsos de clock para sincronizar todas as operações. 
• Uma operação de deslocamento à direita e uma linha de entrada serial associada ao 
deslocamento à direita. 
• Uma operação de deslocamento à esquerda e uma linha de entrada serial associada ao 
deslocamento à esquerda. 
• Uma operação de carga paralela e n linhas de entrada associadas à transferência paralela. 
• N linhas de saída paralelas. 
• Um controle de estado que permite que a informação no registrador fique intacta, mesmo 
quando pulsos de clock são aplicados continuamente. 
• Um controle de modo para determinar que tipo de operação realizar. 
• A figura 25 abaixo demonstra o esquema de um registrador de deslocamento básico. 
 
 
 
 
 
 
 
 
 
 
Figura 25: esquema básico de um registrador de deslocamento à direita 
 
Organização e Arquitetura de Computadores 
Eder Santana Freire 32 
 
 
 
Tabela 11: Tabela de função para o modo de controle de um registrador de deslocamento 
 
 
2.7 Contadores Binários 
 
• Um registrador que armazena uma seqüência predeterminada de estados a partir da aplicação de 
pulsos de entrada é chamado de contador. 
• Os pulsos de entrada podem ser pulsos de clock ou podem se originar em uma fonte externa. 
Eles podem ocorrer em períodos uniformes de tempo ou de forma aleatória. 
• Um contador que segue uma seqüência binária é chamado de contador binário. Um contador 
binário de n bits é um registrador com n flip-flops juntamente com um circuito combinacional que 
produz continuamente uma contagem binária de n bits, possuindo valores entre 0 e 2n-1. 
• De forma geral, um registrador contador binário possui as seguintes características: 
• Uma entrada para pulsos de clock para sincronizar todas as operações. 
• Uma operação de incremento que faz com que o registrador incremente o seu valor em 1. 
• Uma operação paralela de clear que seta todos os valores em flip-flops para 0. 
• Uma operação paralela de carga que seta todos os valores dos flip-flops de acordo com os 
valores das n linhas de entrada associadas à carga paralela. 
• N linhas de saída paralelas. 
• Um controle de estado que permite que a informação no registrador fique intacta, mesmo 
quando pulsos de clock são aplicados continuamente. 
 
 
 
Tabela 12: Tabela de função de um registrador contador binário 
 
 
2.8 Unidade de Memória 
 
• Uma unidade de memória é uma coleção de células de armazenamento juntamente com 
circuitos associados, necessários para transferir informações de entrada e saída. 
Organização e Arquitetura de Computadores 
Eder Santana Freire 33 
 
• Uma memória armazena informações binárias em grupos de bits chamados palavras. 
• Uma palavra de memória pode ser usada para representar qualquer tipo de informação em 
codificação binária. 
• Um grupo de oito bits é chamado de byte. A maioria dos sistemas usam palavras de memória, 
que são múltiplas de oito. 
• Assim, uma palavra de 16 bits contém dois bytes. Uma palavra de 32 bits contém quatro bytes, 
e assim por diante. 
• O número de palavras contidas em uma unidade memória e o número de bits em cada palavra 
definem a sua estrutura interna. 
• Linhas de entrada especiais chamadas linhas de endereço são usadas para selecionar uma 
palavra em particular. 
• Cada palavra na memória está relacionada a um único endereço, variando de 0 para 2k-1, onde k 
é o número de linhas de endereço. 
• Ao se aplicar o endereço binário de k bits nas linhas de endereço da memória faz com que a 
mesma selecione uma palavra específica na memória. 
• Um decodificador integrado à memória aceita o endereço e abre os caminhos necessários para 
selecionar os bits na palavra especificada. 
• Memórias de computador variam a partir de 1024 palavras, necessitando de um endereço de 10 
bits, até 232 palavras, necessitando de 32 bits para endereçamento. 
• É comum a referência do número de palavras em uma memória ser feita com as letras K (kilo), 
M (mega), G (giga), T (tera), onde K é igual a 210, M é igual a 220, G é igual a 230, e T é igual a 240. 
• Assim, 64K = 216, 2M= 221, 4G = 232 e 1T = 240. 
• Dois tipos principais de memória são usados em sistemas computacionais, conforme será visto a 
seguir. 
 
2.8.1 Memória de Acesso Aleatório (Random Access Memory – RAM) 
 
• O conceito de acesso aleatório vem do fato de que o processo de localização de uma palavra na 
memória é sempre o mesmo, e requer um mesmo intervalo de tempo independentemente da sua 
posição física. 
• Transferências de dados ocorrem através das linhas de entrada e saída de dados, linhas de 
seleção de endereços e linhas de controle. 
• As duas operações que uma memória de acesso aleatório pode executar são as de leitura e 
escrita (read e write). 
• Para executar a operação de leitura, o endereço de memória da palavra a ser lida é colocado nas 
linhas de seleção de endereço e a linha de controle de leitura é habilitada. A unidade de memória 
então coloca os dados desejados nas linhas de saída de dados. 
• De forma similar, para executar a operação de gravação, o endereço de memória da palavra a 
ser gravada é colocado nas linhas de seleção de endereço, os dados a serem gravados são colocados 
nas linhas de entrada de dados, e a linha de controle de gravação é habilitada. 
 
2.8.2 Memória Somente-Leitura (Read-Only Memory – ROM) 
 
• Como o nome sugere, a memória somente leitura pode executar, a princípio, apenas operações 
de leitura. 
• A inserção de dados em uma ROM deve ser feita no momento da produção do seu hardware. 
• A operação de leitura em uma ROM é idêntica à operação em uma RAM, constando como 
Organização e Arquitetura de Computadores 
Eder Santana Freire 34 
 
única diferença a ausência de linhas para controle de escrita. 
• Um tipo especial de ROM, chamado de ROM programável (programmable read-only memory – 
PROM) permite ao seu usuário escrever na memória apenas uma vez. 
 
• Existe também outro tipo de ROM, chamado de PROM apagável (eraseable PROM – 
EPROM), que permite ao usuário do sistema a capacidade de modificar os dados em uma ROM. 
Entretanto, isto deve ser feito fisicamente, colocando-se o chip de memória sobre luz ultravioleta 
por um intervalo específico de tempo. 
 
• Finalmente, existe ainda um quarto tipo de ROM, que permite a sua programação por meio 
elétrico (electrically eraseable programmable read-only memory – EEPROM). Embora possam ser 
reprogramados mais de uma vez, este número é limitado (entre 100 mil e 1 milhão de vezes), 
devido à deterioração interna do chip à medida que o mesmo é reprogramado. 
 
 
 
 
Organização e Arquitetura de Computadores 
Eder Santana Freire 35 
 
3. Unidade Central de Processamento 
 
 
3.1 A CPU 
 
• A CPU é o ponto focal de um computador, guiando todas as ações que se desenvolvem no 
sistema. 
• A mesma contém uma unidade lógico-aritmética, ou ULA (Arithmetic and Logic Unit – ALU), 
para executar todas as adições, subtrações, operações lógicas, etc. 
• A ULA também contém diversos registradores, que funcionam como pequenas porções muito 
rápidas de memória, usadas para armazenar temporariamente os dados sendo utilizados pela 
mesma. 
• Contém toda a lógica de controle, para coordenar as ações entre todos os elementos da CPU, 
assim como os outros componentes de hardware do computador. 
• A CPU geralmente está contida inteiramente em um único circuito integrado (CI), ou chip. 
 
 
 
 
Figura 26: Esquema básico de uma CPU 
 
 
3.2 Organização Geral dos Registradores 
 
• O conjunto de registradores em um computador está conectado à ULA através de barramentos e 
multiplexadores. 
• Uma palavra de controle de 14 bits especifica dois registradores de origem (SELA e SELB), um 
registrador de destino (SELD), e uma operação (OPR). 
 
 
 
 
 
 
 
 
Organização e Arquitetura de Computadores 
Eder Santana Freire 36 
 
 
 
Figura 27: Conjunto de registradores com uma ULA comum 
 
 
 
 
 
 
 
 
Organização e Arquitetura de Computadores 
Eder Santana Freire 37 
 
• Os registradores podem ser especificados usando três bits cada, conforme segue: 
 
 
Código Binário SELA SELB SELD 
000 Entrada Entrada Nenhum 
001 R1 R1 R1 
010 R2 R2 R2 
011 R3 R3 R3 
100 R5 R5 R5 
101 R5 R5 R5 
110 R6 R6 R6 
111 R7 R7 R7 
 
Tabela 13: Codificação dos Registradores 
 
 
Os quatro bits restantes da palavra de controle podem ser usados para especificar as seguintes 
operações da ULA: 
 
Seleção de OPR Operação Símbolo 
00000 Transfere A TSFA 
00001 Incremento de A INCA 
00010 Adiciona A + B ADD 
00101 Subtrai A - B SUB 
00110 Decrementa A DECA 
01000 A AND B AND 
01010 A OR B OR 
01100 A XOR B XOR 
01110 Complemento de A COMA 
10000 Desloca A à direita SHRA 
11000 Desloca A à esquerda SHLA 
 
Tabela 14: Operações da ULA 
 
São exemplos de micro-operações: 
 
• Uma palavra de controle de 14 bits é necessária para especificar uma micro operação da CPU. A 
palavra de controle para uma dada micro operação pode ser derivada das variáveis de seleção. Por 
exemplo, a micro operação de subtração dada pela declaração 
 
Organização e Arquitetura de Computadores 
Eder Santana Freire 38 
 
 R1 ← R2 – R3 
 
 especifica R2 para a entrada A da ULA, R3 para a entrada B, R1 para o registrador de destino, e 
uma operação da ULA para subtrair A – B. 
 
• Assim, a palavra de controle é especificada pelos quatro campos e pelo valor binário 
correspondente para cada campo é obtido pela codificação listada nas tabelas x e y. 
• A palavra de controle binária para a micro-operação de subtração é: 
 
010 011 001 00101, e é obtida do seguinte modo: 
 
Campo: SELA SELB SELD OPR 
Símbolo: R2 R3 R1 SUB 
Palavra de controle: 010 011 001 0010 
 
Tabela 15: Palavra binária para operação de subtração 
 
• As palavras de controle para esta e outras micro operações estão listadas na tabela 16. 
• As micro operações de incremento e transferência não utilizam a entrada B da ULA. Para estes 
casos, o campo B é marcado com um hífen “-”. Aqui, foi atribuído o valor 000 para um campo não 
utilizado, embora qualquer outro número binário possa ser utilizado. 
 
Micro-operação SELA SELB SELD OPR Palavra de Controle 
R1 ← R2 – R3 R2 R3 R1 SUB 010 011 001 00101 
R4 ← R4 v R5 R4 R5 R4 OR 100 101 100 01010 
R6 ← R6 + 1 R6 - R6 INCA 110 000 110 00001 
R7 ← R1 R1 - R7 TSFA 001 000 111 00000 
Saída ← R2 R2 - Nenhum TSFA 010 000 000 00000 
Saída ← Entrada Entrada - Nenhum TSFA 000 000 000 00000 
R4 ← shl R4 R4 R5 R5 SHLA 100 000 100 11000 
R5 ← 0 R5 R5 R5 XOR 101 101 101 01100 
 
Tabela 16: Exemplos de micro-operações de uma CPU 
 
• É importante ver, através destes exemplos, que muitas outras micro-operações podem ser 
geradas na CPU. A maneira mais eficiente de gerar palavras de controle com um grande número de 
bits é armazená-los em uma unidade de memória. 
• Uma unidade de memória que armazena palavras de controle é conhecida como memória de 
controle. Ao se ler palavras de controle consecutivas da memória, é possível se iniciar a sequência 
desejada de micro-operações para a CPU. 
• Este tipo de controle é conhecido como controle micro-programado. Uma unidade de controle 
micro-programado é mostrada na figura 27. A palavra de controle binária para a CPU é recebida a 
partir das saídas da memória de controle marcadas como “micro-ops”. 
Organização e Arquitetura de Computadores 
Eder Santana Freire 39 
 
 
3.2.1 Organização da Pilha 
 
• Uma pilha é um dispositivo de armazenamento que guarda as informações em uma disposição 
último a entrar, primeiro a sair (last-in, first-out – LIFO). 
• As pilhas possuembasicamente duas operações: push, que insere os dados para armazenamento, 
e pop, que retira os dados da memória. 
• Um computador pode ter uma memória separada, reservada apenas para operações de pilha. 
Entretanto, a maioria utiliza a memória principal para representar pilhas. 
• Assim, todos os programas de montagem devem alocar memória para a utilização de uma pilha. 
• O diagrama de blocos de uma pilha pode ser visto na figura 28 a seguir: 
 
 
 
 
 
Figura 28: diagrama de blocos para uma pilha de 64 palavras 
 
• O registrador SP (de stack pointer) inicialmente é carregado com o endereço do topo da pilha. 
• Na memória, a pilha na verdade trabalha de cima para baixo, de modo que quando alguma 
informação é inserida na pilha, o stack pointer é decrementado. 
 
SP ← SP – 1 
M[SP] ← DR 
 
• E, quando algum dado é retirado da pilha, o stack pointer é incrementado: 
 
DR ← M[SP] 
SP ← SP + 1 
• As instruções push e pop podem ser explicitamente executadas em um programa. Entretanto, 
elas também são implicitamente executadas em outras operações, tais como procedure calls 
Organização e Arquitetura de Computadores 
Eder Santana Freire 40 
 
(chamadas de procedimentos) e interrupções. 
• Deve-se tomar cuidado ao efetuar operações de pilha para garantir que um overflow ou 
underflow da pilha (isto é, a ultrapassagem dos seus limites, para cima ou para baixo) não ocorra. 
 
3.2.2 Pilha da Memória 
 
A figura 29 a seguir mostra uma porção de uma memória de computador particionada em três 
segmentos: Programa, dados e pilha. 
 
 
 
 
Figura 29: Memória de computador com os segmentos de programa, dados e pilha 
 
A partir do exemplo dado pela figura acima, é possível tirar as seguintes conclusões: 
 
• O contador de programa (Program Counter – PC) aponta para o endereço da próxima instrução 
do programa. 
• O registrador de endereço (Address Register – AR) aponta para um arranjo de dados. 
• O ponteiro da pilha SP aponta para o topo da mesma. 
• Os três registradores estão conectados a um barramento de endereços comum, e qualquer um 
pode fornecer um endereço para a memória. 
Organização e Arquitetura de Computadores 
Eder Santana Freire 41 
 
• O PC é usado durante a fase de coleta, para a leitura de uma instrução. 
• O AR é usado durante a fase de execução, para a leitura de um operando. 
• O SP é usado para inserir ou retirar itens para ou da pilha. 
• O valor inicial do SP é 4001 e a pilha cresce com endereços decrescentes. Assim, o primeiro 
item é armazenado no endereço 4000, o segundo item é armazenado no último endereço que pode 
ser utilizado pela pilha, no caso, 3000. 
• Assume-se que o item na pilha se comunica com o registrador de dados – DR. Um novo item é 
inserido a partir de uma operação push, conforme segue: 
 
SP ← SP – 1 
M[SP] ← DR 
 
• O ponteiro da pilha é decrementado de modo que o mesmo aponte para o endereço da próxima 
palavra. 
• Uma operação de escrita na memória insere a palavra em DR no topo da pilha. 
• Um novo item é deletado a partir de uma operação pop, conforme segue: 
 
DR ← M[SP] 
SP ← SP + 1 
 
• O item no topo da pilha é transferido para o registrador DR. 
• O ponteiro da pilha é então incrementado de modo que o mesmo aponte para o próximo item da 
mesma. 
 
 
3.2.3 Formatos de Instrução 
 
• Já foram demonstrados aqui alguns tipos diferentes de formatos de instrução. De fato, existem 
diversos tipos diferentes de formatos. 
• Entretanto, cada tipo de formato normalmente possui as seguintes características em comum: 
• Um campo de código de operação que especifica a operação a ser realizada. 
• Um campo de endereço que designa um endereço de memória ou registradores do 
processador. 
• Um campo de modo que especifica a forma com o que o operando ou o endereço efetivo é 
determinado. 
 
• As instruções também podem variar em comprimento. O tamanho é tipicamente um fator de 
quantos endereços são especificados na instrução. 
• O número de endereços usados pelas instruções dependem da organização interna dos 
registradores do computador. A maioria dos computadores se encaixa em um dos três tipos de 
organização de CPUs: 
• Organização de registrador geral 
• Organização de acumulador único 
• Organização de pilha 
 
 
 
Organização e Arquitetura de Computadores 
Eder Santana Freire 42 
 
Instruções de Três Endereços 
 
Computadores com formatos de instrução de três endereços se encaixam na categoria de 
organização de registrador geral. 
Os três endereços podem ser usados para especificar registradores do processador ou endereços de 
memória. 
 
Exemplo 
 
Add R1, A, B R1 ← M[A] + M[B] 
Add R2, C, D R2 ← M[C] + M[D] 
Mul X, R1, R2 M[X] ← R1 * R2 
 
• Assume-se que o computador possui dois registradores do processador, R1 e R2. 
• O símbolo M[A] denota o operando no endereço de memória simbolizado por A. 
• A vantagem do formato de três endereços é que o mesmo resulta em programas curtos, quando 
se avalia expressões aritméticas. 
• A desvantagem é que as instruções codificadas em binário necessitam de muitos bits para 
especificar três endereços. 
 
Instruções de Dois Endereços 
 
• Computadores com formatos de instrução de dois endereços também entram na categoria de 
organização de acumulador único. 
• Estes endereços sempre expecificam endereços de memória, uma vez que está implícito que o 
registrador acumulador (AC) será usado para todas as manipulações de dados. 
• O programa para se avaliar X = (A+B) * (C+D) segue como exemplo: 
 
Exemplo 
 
MOV R1, A R1 ← M[A] 
ADD R1, B, R1 ← R1 + M[B] 
MOV R2, C R2 ← M[C] 
ADD R2, D R2 ← R2 + M[D] 
MUL R1, R2 R1 ← R1 * R2 
MOV X, R1 M[X] ← R1 
 
Instruções de Um Endereço 
 
• Computadores com formatos de instrução de um endereço se encaixam na categoria de 
organização de acumulador. 
• Da mesma forma que nas instruções de dois endereços, este campo endereço deve especificar 
um endereço de memória, já que novamente o registrador AC é usado para manipular dados. 
• O exemplo a seguir mostra o trecho assembly para calcular X = (A+B) * (C+D): 
 
 
 
 
Organização e Arquitetura de Computadores 
Eder Santana Freire 43 
 
Exemplo 
 
LOAD A AC ← M[A] 
ADD B AC ← AC + M[B] 
STORE T M[T] ← AC 
LOAD C AC ← M[C] 
ADD D AC ← AC + M[D] 
MUL T AC ← AC * M[T] 
STORE X M[X] ← AC 
 
Instruções de Zero Endereços 
 
• Computadores com formatos de instrução de zero endereços se encaixam na categoria de 
organização de pilha. 
• Embora chamada de instrução de zero endereço, um endereço de memória precisa ser 
especificado ao se inserir ou retirar itens da pilha. 
• Entretanto, instruções como ADD ou MUL não necessitam de endereços. 
• O seguinte programa mostra como X = (A + B) * (C + D) pode ser escrito em um computador 
organizado por pilha.: 
 
 
Exemplo: 
 
PUSH A TOS ← A 
PUSH B TOS ← B 
ADD TOS ← (A + B) 
PUSH C TOS ← C 
PUSH D TOS ← D 
ADD TOS ← (C + D) 
MUL TOS ← (C + D) * (A + B) 
POP X M[X] ← TOS 
 
• Onde TOS representa o topo da pilha (Top of Stack) 
 
 
3.2.4 Modos de Endereçamento 
 
Modo Implícito – Operandos são especificados implicitamente na definição da instrução 
(instruções de acumulador ou de zero endereços). 
 
Modo Imediato – Operandos especificados na instrução propriamente dita. O campo do operando 
contém o que será de fato usado em conjunção com a operação especificada na instrução. 
 
Modo Registrador – O campo endereço especifica um registrador do processador. Os operandos 
são os valores

Continue navegando