DI2022802 2024 2 AULA07
1 Codificadores e Decodificadores
- OBJETIVOS
- O aluno deverá ser capaz de:
- Identificar codificadores e decodificadores;
- Diferenciar tipos de códigos digitais; e
- Projetar um decodificador digital.
- METODOLOGIA
- A aula será expositiva e dialogada, utilizando apresentação de texto base na Internet, onde serão mostrados e simulados exemplos de circuitos com codificadores e decodificadores, também a projeto de circuitos digitais utilizando o mapa de Karnaugh.
- INTRODUÇÃO
- Estes termos diferenciam-se por uma questão de referência dos circuitos combinacionais. O termo decodificador significa obter informação a partir de um código. O termo codificador significa gerar um código a partir de uma informação. A Figura 1 ilustra a diferença entre codificador e decodificador.

Figura 1 - Exemplo de codificação e decodificação digital.
O teclado faz o papel de um codificador, transformando a linguagem natural (conhecida) em linguagem digital. O codificador transforma essa linguagem e códigos binários para serem utilizadas no processamento. Depois do processamento, essa linguagem binária é decodificada para a linguagem natural para ser exibida num display de 7 segmentos. Resumidamente o teclado converte um número em código decimal para uma número em código binário e depois do binário para decimal para mostrar no display. Mas antes de entrarmos mais a fundo nos codificadores e decodificadores, vamos apresentar alguns códigos (linguagens) utilizados em sistemas digitais.
1.1 Códigos Binários
O código binário é a forma de traduzir a necessidades de representação das informações em um sistema binário. Codificação é a solução padrão para estes casos, ou seja, cada informação pode ser associada a uma palavra binária. Dependendo a situação um código apresenta vantagens em relação a outros. Existem códigos muito difundidos para representar caracteres numéricos ou alfanuméricos tais como ASC e EBCDIC, sendo que ASC ou ASCII os mais conhecidos.
1.1.1 Código BCD 8421
A sigla BCD representa as iniciais de Binary-Coded Decimal, que significa decimal codificado em binário. Os dígitos 8421 representam o valor em decimal do correspondente dígito em binário (). A Tabela abaixo mostra o código BCD.
Decimal | BCD 8421 |
---|---|
0 | 0000 |
1 | 0001 |
2 | 0010 |
3 | 0011 |
4 | 0100 |
5 | 0101 |
6 | 0110 |
7 | 0111 |
8 | 1000 |
9 | 1001 |
Em decimal um dígito pode ter no máximo o valor 9, logo são necessários 4 bits para codificar cada dígito (onde 9 é 1001). Para ver na prática como seria essa conversão temos como exemplo o número decimal 748, com cada dígito convertido no equivalente binário, temos:
7 4 8 -> decimal ↓ ↓ ↓ 0111 0100 1000 -> BCD
A lógica é aplicada para qualquer número, abaixo temos 95 como exemplo:
9 5 -> decimal ↓ ↓ 1001 0101 -> BCD
- Comparação entre BCD e binário
É preciso destacar que o BCD não se trata de outro sistema de numeração (como binário, decimal e hexadecimal), é basicamente um sistema decimal em que cada dígito está escrito em binário.
Além disso, um número BCD não é a mesma coisa de um número binário puro. Onde binário puro seria o número decimal por completo representado em binário, não somente os dígitos. Para visualizar melhor a diferença temos a conversão do número 371 para binário e BCD abaixo:
371d = 101110011b -> binário 371d = 0011 0111 0001 -> BCD
Observe que no BCD são necessários 12 bits, enquanto que no binário apenas 8. Em contrapartida, a conversão decimal-BCD é bem mais simples que a decimal-binário.
1.1.2 Código excesso 3
Este código é obtido transformando-se o número decimal no binário correspondente e somando-se três unidades a este.
- Exemplo
Decimal | Excesso 3 |
---|---|
0 | 0011 |
1 | 0100 |
2 | 0101 |
3 | 0110 |
4 | 0111 |
5 | 1000 |
6 | 1001 |
7 | 1010 |
8 | 1011 |
9 | 1100 |
1.1.3 Código 2 entre 5
Este código sempre possui dois bits 1 dentre 5.
Decimal | 2 entre 5 |
---|---|
0 | 00011 |
1 | 00101 |
2 | 00110 |
3 | 01001 |
4 | 01010 |
5 | 01100 |
6 | 10001 |
7 | 10010 |
8 | 10100 |
9 | 11000 |
1.1.4 Código Johnson
Utilizado pelo contador deslocador em anel com saída invertida, conhecido como contador Johnson.
Decimal | Johnson |
---|---|
0 | 00000 |
1 | 10000 |
2 | 11000 |
3 | 11100 |
4 | 11110 |
5 | 11111 |
6 | 01111 |
7 | 00111 |
8 | 00011 |
9 | 00001 |
1.1.5 Código 9876543210
Este código utiliza 10 dígitos binários para representar um dígito decimal. Notem que o bit 1 vai na posição correspondente ao dígito binário da direita para esquerda começando do 0 (zero).
Decimal | 9876543210 |
---|---|
0 | 0000000001 |
1 | 0000000010 |
2 | 0000000100 |
3 | 0000001000 |
4 | 0000010000 |
5 | 0000100000 |
6 | 0001000000 |
7 | 0010000000 |
8 | 0100000000 |
9 | 1000000000 |
1.1.6 Código Gray
Os sistemas digitais atuam sob altas velocidades e respondem às variações realizadas nas entradas. Por conta disso, quando várias condições de entradas variam ao mesmo tempo, o sistema pode interpretar e reagir de forma errada. Por exemplo, quando temos que mudar um número binário, composto por 3 bits, do número 3 para o número 4 todos os 3 bits são alterados.
Com o intuito de reduzir esses erros de interpretação pelos circuitos digitais, Frank Gray desenvolveu o sistema de representação que carrega seu nome.
O Código Gray caracteriza-se pelo fato que entre um número e outro apenas um bit varia. Porém, é importante lembrar que esse código não é ponderado nem é um código aritmético, isto é, não há pesos específicos atribuídos às posições dos bits. O caráter importante do código Gray é que ele exibe só uma mudança de um bit de um número de código para o seguinte. Esta propriedade é muito importante em muitas aplicações, tais como codificadores, onde a suscetibilidade a erros se incrementa com o número de mudanças de bit em sequência entre números adjacentes. A Tabela abaixo mostra o código Gray comparado ao binário.
Decimal | Binário | Gray |
---|---|---|
0 | 0000 | 0000 |
1 | 0001 | 0001 |
2 | 0010 | 0011 |
3 | 0011 | 0010 |
4 | 0100 | 0110 |
5 | 0101 | 0111 |
6 | 0110 | 0101 |
7 | 0111 | 0100 |
8 | 1000 | 1100 |
9 | 1001 | 1101 |
10 | 1010 | 1111 |
11 | 1011 | 1110 |
12 | 1100 | 1010 |
13 | 1101 | 1011 |
14 | 1110 | 1001 |
15 | 1111 | 1000 |
A Tabela acima representa o código Gray de quatro bits para números decimais de 0 a 15. Como os números binários, o código Gray pode ter qualquer número de bits. Note a mudança de único bit entre os números sucessivos do código Gray. Por exemplo, lendo do decimal 3 ao 4, o código Gray muda de 0010 a 0110, enquanto a mudança binária vai de 0011 para 0100, uma mudança de três bits. Em uma única mudança, no terceiro bit da direita, origina-se o código Gray, sendo que os bits restantes permanecem iguais.
1.2 Códigos Alfanuméricos
Para a representação de números em sistemas digitais, existem diversos códigos como os que estudamos até agora. Porém, a linguagem moderna precisa representar os símbolos, como texto, por exemplo. Ao longo do tempo, muitos códigos foram utilizados para representar letras, números e símbolos como BAUDOT, EBCDIC, TRANSCODE e ASCII. Este último foi universalmente adotado para a maior parte dos sistemas digitais.
1.2.1 Código ASCII
O código ASCII (American Standart Code for Information Interchange) surgiu em 1963 é um dos códigos mais amplamente utilizados para representar informações textuais. Os caracteres do PC, e nos computadores mais modernos, ocupam um byte de 8 bits, de forma que pode haver , ou seja, 256 caracteres diferentes. A figura abaixo mostra cada um destes caracteres, e os seus códigos numéricos em decimal e respectivo valor em hexadecimal. Se observarmos mais atentamente para a tabela ASCII, veremos que ela começa com um grupo de caracteres bem estranho (os primeiros 32 caracteres, cujos códigos decimais vão de 0 a 31), seguidos por três colunas bem conhecidas: os dígitos de 0 a 9, as letras maiúsculas e minúsculas do alfabeto, e diversos sinais de pontuação. Estas quatro colunas constituem a primeira metade do conjunto de caracteres do PC, os caracteres ASCII, pois seguem um padrão universal em computadores. O ASCII propriamente dito são 128 caracteres, com códigos decimais de 0-127. Nosso conjunto de caracteres do PC tem o dobro, incluindo os códigos de 128 até 256. Em geral estes códigos maiores, que compõem a outra metade, são chamados caracteres ASCII estendidos. Estritamente falando, somente na primeira metade, os códigos 0-127, há códigos ASCII, mas ouviremos frequentemente as pessoas usando o termo ASCII como conjunto estendido, ou forma padrão de bits que representa um caractere. Desta forma, permite codificar cada letra e numero num código decimal que depois é armazenado no formato binário.
- Um grupo de caracteres especiais
A metade ASCII de nosso conjunto de caracteres tem significado e definição que vão além da família PC - é um código universal usado por muitos computadores e outros equipamentos eletrônicos. Os caracteres ASCII estendidos, no entanto, constituem uma outra justificativa. Não há regras para esta metade de 128 a 255, e estes caracteres da figura foram especialmente criados para o PC. Por causa da importância e popularidade do PC, Os caracteres ASCII estendidos são usados não só pela família PC, mas também foram adotados no conjunto de caracteres de muitos computadores, parentes distantes do PC. Estes caracteres são organizados em três grupos principais: o grupo de caracteres estrangeiros, caracteres de desenho e os caracteres científicos. A Figura 2 mostra a tabela ASCII completa e seus respectivos códigos binário, octal e Hexadecimal.

Figura 2 - Tabela ASCII e conversão para outros sistemas.
- Caracteres ASCII comuns
Os caracteres convencionais da escrita possuem códigos de 32 a 127. Embora pareça que não há muito a falar sobre estes caracteres há diversos detalhes que podem ser extraídos com o intuito do entendimento. A tabela deixa bem claro que há uma separação entre letras maiúsculas e minúsculas, que A não é a mesma coisa que a. Então, quando se usa um programa que ordene em ordem alfabética o a aparecerá depois que o A ou o Z, por exemplo.
- Caracteres de controle ASCII
Os primeiros 32 códigos no conjunto de caracteres ASCII, códigos de 0 a 31, têm um uso especial que não tem nada a ver com a aparência dos caracteres mostrados. Eles são utilizados para funções especiais de impressão e em protocolos de comunicação. Eles podem por exemplo ser utilizados para informar o final de uma linha ou final de uma página, etc. A tabela a seguir mostra estes caracteres de controle e seu significado.
- Resumo
- "A tabela ASCII existe dentro de todos os computadores do planeta terra!"
Permite codificar cada letra e numero num código decimal que depois é armazenado no formato binário.
1.3 Conversor de código BCD 8421 para 9876543210
Deseja-se encontrar o conversor que transforme as informações codificadas em BCD 8421 para 9876543210. A Tabela abaixo mostra um processo de conversão BCD - Decimal - 9876543210.
BCD 8421 ABCD |
Decimal | 9876543210 S9S8S7S6S5S4S3S2S1S0 |
---|---|---|
0000 | 0 | 0 0 0 0 0 0 0 0 0 1 |
0001 | 1 | 0 0 0 0 0 0 0 0 1 0 |
0010 | 2 | 0 0 0 0 0 0 0 1 0 0 |
0011 | 3 | 0 0 0 0 0 0 1 0 0 0 |
0100 | 4 | 0 0 0 0 0 1 0 0 0 0 |
0101 | 5 | 0 0 0 0 1 0 0 0 0 0 |
0110 | 6 | 0 0 0 1 0 0 0 0 0 0 |
0111 | 7 | 0 0 1 0 0 0 0 0 0 0 |
1000 | 8 | 0 1 0 0 0 0 0 0 0 0 |
1001 | 9 | 1 0 0 0 0 0 0 0 0 0 |
1010 | -- | X X X X X X X X X X |
1011 | -- | X X X X X X X X X X |
1100 | -- | X X X X X X X X X X |
1101 | -- | X X X X X X X X X X |
1110 | -- | X X X X X X X X X X |
1111 | -- | X X X X X X X X X X |
Notem que não existe representação dos números 10, 11, 12, 13, 14 e 15 no
código 9876543210 e nem no código BCD 8421, mas existe representação destes
números quando da utilização de 4 dígitos binários. Assim a solução consiste em não
permitir a ocorrência dos números de 10 até 15 e considerar o código 9876543210
irrelevante nestas condições, o que poderá resultar na simplificação das funções.
- Exercício de fixação
Faça a simplificação da Tabela abaixo utilizando os Mapas de Karnaugh considerando dos termos irrelevantes (10 a 15) para uma melhor simplificação.
ABCD | S9S8S7S6S5S4S3S2S1S0 | Expressão |
---|---|---|
0000 | ||
0001 | ||
0010 | ||
0011 | ||
0100 | ||
0101 | ||
0110 | ||
0111 | ||
1000 | ||
1001 |
1.4 Conversor BCD 8421 para Excesso 3
A Tabela abaixo mostra o processo do circuito digital conversor do código BCD 8421 para Excesso 3.
BCD 8421 ABCD |
Decimal | Excesso 3 S3S2S1S0 |
---|---|---|
0000 | 0 | 0011 |
0001 | 1 | 0100 |
0010 | 2 | 0101 |
0011 | 3 | 0110 |
0100 | 4 | 0111 |
0101 | 5 | 1000 |
0110 | 6 | 1001 |
0111 | 7 | 1010 |
1000 | 8 | 1011 |
1001 | 9 | 1100 |
1010 | -- | XXXX |
1011 | -- | XXXX |
1100 | -- | XXXX |
1101 | -- | XXXX |
1110 | -- | XXXX |
1111 | -- | XXXX |
Abaixo estão as funções simplificadas, utilizando o Mapa de Karnaugh e condições irrelevantes. Lembrando que, diferentemente da simplificação BCD - 9876543210, - onde apenas uma saída por vez era atvida, agora existem mais saídas que devem fazer parte da simplificação.
Solução |
---|
|
1.5 Conversor BCD 8421 para Display de 7 Segmentos
Este conversor é comumente chamado decodificador BCD para 7 segmentos. O display de 7 segmentos permite à escrita de números de 0 a 9 e alguns símbolos que podem ser letras ou sinais. A Figura 3 apresenta o um display de 7 segmentos com a identificação de cada um dos seus segmentos.

Figura 3 - Display de 7 segmentos.
Existem dois tipos de display de 7 segmentos: cátodo comum e ânodo comum. Para acender qualquer dos segmentos é necessário ativar o referido segmento. No caso do cátodo comum a lógica é positiva ou ativo alto, ou seja, se acende segmento colocando em nível lógico alto, como por exemplo (na lógica TTL) coloca-se: +5V. Também é preciso de um resistor limitador de corrente para que o segmento do display não queime, a corrente máxima que passa em cada segmento, deve ficar entre 10 e 20mA. Sendo um valor muito utilizado um resistor de 330 ohms para cada segmento. No caso de ânodo comum a lógica é negativa ou ativo baixo. Para se acender um dos segmentos é necessário aplicar o nível lógico baixo (0V da lógica TTL). Mas lembres-se, também é preciso fazer uso do resistor limitador de corrente
sobre pena de queimar o segmento do display. A Figura 4 mostra como é a representação de cada número conforme os LEDs acessos no display de 7 segmentos.

Figura 4 - Representação dos números no Display de 7 segmentos.
1.5.1 Implementação do conversor BCD para 7 segmentos
A Tabela abaixo mostra conversor do código BCD 8421 para display de 7 segmentos cátodo comum.
BCD 8421 ABCD |
Decimal | 7 segmentos a b c d e f g |
---|---|---|
0000 | 0 | 1 1 1 1 1 1 0 |
0001 | 1 | 0 1 1 0 0 0 0 |
0010 | 2 | 1 1 0 1 1 0 1 |
0011 | 3 | 1 1 1 1 0 0 1 |
0100 | 4 | 0 1 1 0 0 1 1 |
0101 | 5 | 1 0 1 1 0 1 1 |
0110 | 6 | 0 0 1 1 1 1 1 |
0111 | 7 | 1 1 1 0 0 0 0 |
1000 | 8 | 1 1 1 1 1 1 1 |
1001 | 9 | 1 1 1 1 0 1 1 |
1010 | -- | X X X X X X X |
1011 | -- | X X X X X X X |
1100 | -- | X X X X X X X |
1101 | -- | X X X X X X X |
1110 | -- | X X X X X X X |
1111 | -- | X X X X X X X |
As expressões simplificadas são:
Solução |
---|
|
2 Memórias
- OBJETIVOS
- O aluno será capaz de:
- Classificar tipos de memórias;
- Conhecer a terminologia utilizada para memórias;
- Conhecer os princípios de operação de memórias; e
- Saber sobre a evolução de memórias.
- INTRODUÇÃO
- A principal vantagem dos sistemas digitais sobre os analógicos é a capacidade de armazenar, facilmente, grandes quantidades de informação e/ou dados por períodos longos ou curtos de tempo. Esta capacidade de memória é o que torna os sistemas digitais tão versáteis e adaptáveis às diversas situações. Por exemplo, em um computador digital, a memória principal armazena instruções que informam ao computador o que fazer sob qualquer circunstância possível, de modo que o computador realize sua tarefa com um mínimo de intervenção humana. Vamos estudar os tipos mais comuns desses dispositivos e sistema de memória. Já estamos bem familiarizados com o flip-flop, que é um dispositivo eletrônico de memória. Os avanços na tecnologia LSI (Large Scale Integration) e VLSI (Very Large Scale Integration) tornaram possível a obtenção de um grande número de flip-flops em um único chip, organizados em vários arranjos de memória.

Figura 1 - Disquete de 5 1/4 polegadas de dupla densidade com 360 kb de espaço disponível.
Então as memórias são os dispositivos que armazenam informações, essas por
sua vez codificadas, digitalmente, através de um código binário qualquer. Essas
informações podem ser números, letras, caracteres quaisquer, comandos de operações,
endereços ou ainda qualquer outro tipo de dado. Essas informações armazenam dados
para endereçamento, programação e para constituir o conjunto de funções internas para
a funcionalidade do próprio sistema. Outro tipo de aplicação consiste em utilizá-las para
executarem quaisquer funções de circuitos combinacionais, e ainda, com o auxílio de
contadores comuns e conversores, gerarem formas de onda de diversas maneiras de
modo mais simples.
2.1 Classificação das memórias
As memórias podem ser classificas de acordo com as seguintes características:
- Acesso;
- Volatilidade;
- Escrita/Leitura ou apenas de leitura;
- Tipo de armazenamento.
Vamos analisar cada item:
- ACESSO
As memórias armazenam informações em lugares denominadas palavras, ou localidade de memória. Cada uma das palavras possui um conjunto de bits que nos permite o seu acesso, a esse conjunto de bits damos o nome de endereço. Esse conceito é de fácil compreensão, pois como o próprio nome diz, o conjunto de bits representa o endereço da palavra onde está armazenada uma informação. O tempo de acesso de uma memória é o tempo necessário desde a entrada de um endereço até o momento em que a informação aparece na saída. Para as memórias de escrita/leitura é também o tempo necessário para a informação ser gravada. Podemos ter acesso a uma dada localidade de memória de duas maneiras diferentes:
- Acesso sequencial;
- Acesso aleatório.
- VOLATILIDADE
As memórias podem ser voláteis ou não voláteis. As memórias voláteis são aquelas que ao retirada a alimentação perdem as informações armazenadas. São memórias feitas, geralmente, a partir de semicondutores e na maioria das vezes, possuem como elemento de memória o flip-flop. Um exemplo típico é a memória RAM. As memórias não voláteis são aquelas que mesmo sem alimentação continuam com as informações armazenadas. Dentre essas se destacam as memórias magnéticas e as eletrônicas: ROM, PROM e EPROM.
- ESCRITA/LEITURA OU APENAS LEITURA
As memórias de escrita/leitura são aquelas que permitem acesso a uma célula qualquer para escrevermos a informação desejada, além disso, permitem o acesso também para a leitura do dado. As memórias RAM também se enquadraram nessa situação. Por sua vez, as memórias apenas de leitura, são aquelas em que a informação é fixa, só podendo efetuar-se a leitura de cada célula. São também conhecidas como ROM (“Read Only Memory”).
- TIPOS DE ARMAZENAMENTO
Quanto ao tipo de armazenamento as memórias classificam-se em estáticas e dinâmicas. As memórias de armazenamento estático são aquelas em que uma vez inserido o dado numa célula, este lá permanece. As memórias de armazenamento dinâmico são aquelas em que necessitamos inserir a informação de tempos em tempos, pois de acordo com as características de seus elementos internos essas informações são perdidas após um determinado tempo.
As memórias de armazenamento estático apresentam como vantagem a
simplicidade de utilização quando comparadas às dinâmicas. Em contrapartidas
as memórias estáticas são mais lentas para acesso que as dinâmicas.
2.2 Terminologia
O estudo dos sistemas e dos dispositivos de memória está repleto de termos. É de grande valia compreender o significado de alguns termos mais básicos, que são apresentados a seguir:
- Célula de memória
Um dispositivo ou circuito elétrico utilizado para armazenar um único bit (0 ou 1). Exemplos de célula de memória incluem: um flip-flop, um capacitor carregado e uma pequena região numa fita ou disco magnético.
- Palavra de memória
Um grupo de bits (células) em uma memória que representa instruções ou dados de algum tipo. Por exemplo, um registrador de oito flip-flops pode ser considerado uma memória que esta armazenando uma palavra de 8 bits. Os tamanhos de palavra nos computadores modernos variam tipicamente de 4 a 64 bits, dependendo do porte do computador.
- Byte
Um termo especial usado para um grupo de oito bits. Um byte sempre é constituído de 8 bits. Tamanhos de palavra podem ser expressos em bytes assim como em bits. Por exemplo, uma palavra de 8 bits é também uma palavra de um byte; uma palavra de 16 bits tem dois bytes, e assim por diante.
- Capacidade
Uma maneira de especificar quantos bits podem ser armazenados em um determinado dispositivo de memória ou num sistema de memória completo. Para ilustrar, suponha que temos uma memória capaz de armazenar 4096 palavras de 20 bits. Isto representa uma capacidade total de 81920 bits (4096×20=81920). Poderíamos também expressar essa capacidade de memória como 4096×20 . Quando representada desse modo, o primeiro número (4.096) é o número de palavras, e o segundo número (20) é o número de bits por palavra (tamanho da palavra). O número de palavras em uma memória frequentemente é um múltiplo de 1024. É comum usar a designação "1k" para representar 1024 = quando nos referimos à capacidade de memória. Logo, uma memória com uma capacidade de armazenamento de 4k×20 é na verdade uma memória de 4096×20 . O desenvolvimento de memórias maiores trouxe a designação "1M" ou "1 mega" para representar . Assim, uma memória que possui uma capacidade de 2M ×8 tem na verdade uma capacidade de 2097152×8. A designação "giga" se refere a .
- Densidade
Outro termo para capacidade. Quando dizemos que um dispositivo de memória tem uma densidade maior do que outro, queremos dizer que ele pode armazenar mais bits no mesmo espaço, ou seja, ele é mais de denso;
- Endereço
É um número que identifica a posição de palavra na memória. Cada palavra armazenada em um dispositivo ou sistema de memória possui um endereço único. Endereços sempre existem num sistema digital como um número binário, embora, por conveniência, números em octal, hexadecimal e decimal sejam frequentemente utilizados para representar esses endereços. A Tabela 1 ilustra uma pequena memória constituída de oito palavras.
Endereço | Dado |
---|---|
0 0 0 | Palavra 0 |
0 0 1 | Palavra 1 |
0 1 0 | Palavra 2 |
0 1 1 | Palavra 3 |
1 0 0 | Palavra 4 |
1 0 1 | Palavra 5 |
1 1 0 | Palavra 6 |
1 1 1 | Palavra 7 |
Cada uma destas oito palavras tem um endereço específico representado por um
número de três bits que varia de 000 até 111. Sempre que nos referimos a uma
posição específica na memória, utilizamos seu código de endereço para
identificá-la.
- Operação de Leitura
Operação na qual a palavra binária armazenada numa determinada posição (endereço) de memória é detectada e então transferida para outro dispositivo. Por exemplo, se desejamos utilizar a palavra 4 da memória para algum propósito, devemos realizar uma operação de leitura no endereço 100. A operação de leitura frequentemente é chamada de operação de busca, pois a palavra está sendo buscada da memória. Utilizaremos os dois termos indistintamente.
- Operação de Escrita
Operação na qual uma nova palavra é colocada numa determinada posição de memória. Também é chamada de operação de armazenamento. Sempre que uma nova palavra é escrita numa posição de memória, ela substitui a palavra que estava previamente armazenada lá.
- Tempo de Acesso
Uma medida da velocidade de operação de um dispositivo de memória. É o tempo necessário para realizar uma operação de leitura. Mais especificamente, é o tempo entre a memória receber uma nova entrada de endereço e os dados se tornarem disponíveis na saída da memória.
- Memória Volátil
Qualquer tipo de memória que necessita da aplicação de energia, alimentação, para poder armazenar informação. Se a energia elétrica é removida, todas as informações armazenadas na memória são perdidas. Muitas das memórias semicondutoras são voláteis, enquanto todas as memórias magnéticas são não-voláteis, o que significa que elas podem manter a informação sem energia elétrica;
- Memória de Acesso Aleatório (RAM – Random Access Memory)
A RAM e a memória na qual a posição física real de uma palavra da memória não tem efeito sobre o tempo necessário para ler ou escrever nesta posição. Em outras palavras, o tempo de acesso é o mesmo para qualquer endereço na memória. A maioria das memórias semicondutoras são de acesso aleatório. A Figura 2 apresenta a arquitetura interna de uma memória RAM 4x4.

Figura 2 - Arquitetura interna de uma memória RAM 4x4.
- Memória de Acesso Sequencial (SAM – Sequence Access Memory)
É um tipo de memória no qual o tempo de acesso não é constante, mas varia dependendo do endereço. Uma determinada palavra armazenada é encontrada percorrendo todos os endereços até que o endereço desejado seja alcançado. Isto produz tempos de acesso que são muito maiores do que os das memórias de acesso aleatório. Um exemplo de dispositivo de memória de acesso sequencial é uma fita magnética.
Para entender a diferença entre SAM e RAM, considere a situação na qual você gravou 60 minutos de música numa fita cassete de áudio. Quando desejar alcançar uma música em particular, você terá que retroceder ou avançar a fita até a encontrar. O processo é relativamente lento, e o tempo necessário depende de onde a música desejada está gravada na fita. Isto é SAM, já que você percorreu através das informações registradas até encontrar o que estava procurando. A contrapartida RAM para isso seria um CD ou MD de áudio, no qual você pode rapidamente selecionar qualquer música informando o código apropriado, e ele gasta aproximadamente o mesmo tempo, não importando a música selecionada. As memórias de acesso seqüencial são utilizadas onde os dados a serem acessados sempre vêm numa longa seqüência de palavras sucessivas. A memória de vídeo do microcomputador, por exemplo, deve fornecer seu conteúdo na mesma ordem repetidamente para manter a imagem na tela.
- Memória de Leitura e Escrita (RWM – Read/Write Memory)
Qualquer memória que possa ser lida ou escrita de maneira igualmente fácil.
- Memória somente de Leitura (ROM – Read-Only Memory)
Uma vasta classe de memórias semicondutoras, projetadas para aplicações nas quais a razão entre as operações de leitura e escrita é muito alta. Tecnicamente, uma ROM pode ser escrita (programada) apenas uma vez, e esta operação normalmente é realizada pelo fabricante da mesma. Depois disso, as informações podem ser somente lidas da memória. Outros tipos de ROM são na verdade RMM (“read-mostly memories”), nas quais se pode escrever mais de uma vez; porém a operação de escrita é mais complicada do que a de leitura, e não é realizada freqüentemente. Todas as ROMs são não-voláteis e mantém os dados quando a energia é removida.
- Dispositivos de Memória Estática
Dispositivos de memória semicondutora nos quais os dados permanecem armazenados enquanto a energia está presente, sem a necessidade de reescrever periodicamente os dados na mesma.
- Dispositivos de Memória Dinâmica
São dispositivos de memória semicondutora nos quais os dados não permanecem armazenados, mesmo com a energia presente, a menos que os dados sejam periodicamente reescritos. Sendo esta operação de reescrita denominada de refresh.
2.3 Princípios de operação da memória
Embora cada tipo de memória seja diferente na sua operação interna, certos princípios básicos são comuns a todas elas. A Figura 3 mostra como é realizada as operações com memórias.

Figura 3 - Operação da memória.
Todos os dispositivos de memória necessitam de diversos tipos diferentes de linhas de entrada e de saída para realizar as seguintes funções:
- 1. Selecionar o endereço na memória que está sendo acessado para uma operação de leitura ou escrita;
- 2. Selecionar uma operação de leitura ou escrita que será realizada;
- 3. Fornecer os dados de entrada a serem armazenados na memória durante uma operação de escrita;
- 4. Manter os dados de saída vindos da memória durante uma operação de leitura;
- 5. Habilitar (ou desabilitar) a memória de modo que ela responda (ou não) às entradas de endereçamento e ao comando de leitura/escrita.
- Entradas de endereço
Utilizando o bloco anterior como exemplo, a memória armazena 32 palavras, logo a mesma possui 32 posições de armazenamento diferentes e, portanto possui 32 endereços binários diferentes, variando de 00000 até 11111 (0 a 31 em decimal). Desta forma, existem cinco entradas de endereço, A0 até A4. Para acessar cada uma das posições de memória para uma operação de leitura ou escrita, o código de endereçamento de cinco bits para essa posição é aplicado nas entradas de endereço. De um modo geral, N entradas de endereço são necessárias para uma memória que possui uma capacidade de palavras.
Podemos visualizar a memória da Figura 3 como um arranjo de 32 registradores, no qual cada registrador guarda uma palavra de quatro bits. Cada posição é mostrada contendo quatro células de memória que guardam 1’s ou 0’s, que formam a palavra de dados armazenada nesta posição. Vejamos o seguinte exemplo, a palavra 0110 está armazenada no endereço 00000, a palavra de dados 1111 está armazenada no endereço 00010, e assim por diante.
- A entrada R/W
Esta entrada controla qual operação deve ser realizada na memória: leitura (R – read) ou Escrita (W – write). A entrada é identificada por , e como não existe a barra sobre R, isto indica que a operação de leitura ocorre quando . A barra sobre W indica que a operação de escrita acontece quando . Outros identificadores (nomenclaturas de outros autores) são usados frequentemente para essa entrada. Dois dos mais comuns são (escrita) e (write enable - habilitação de escrita). Novamente, a barra indica que a operação de escrita ocorre quando a entrada está em nível baixo, portanto, fica subentendido que a operação de leitura ocorre para nível alto.
- Habilitação da memória
Muitos sistemas de memória tem algum modo de desabilitar completamente uma parte ou toda a memória, de modo que ela não possa responder às outras entradas. Isto é representado na Figura 3 pela entrada ME, embora ela possa ter nomes diferentes nos vários tipos de memória, tais como chip enable (CE) ou chip select (CS). Na Figura 3, ela é mostrada como uma entrada ativa em nível alto que habilita a memória, de modo que ela não responderá às entradas de endereço e de quando estiver em nível baixo. Este tipo de entrada é útil quando vários módulos de memória são combinados para formar uma memória maior.
2.4 Evolução das memórias
Memórias são todos os dispositivos que permitem que um dispositivo eletrônico, neste caso, possa armazenar dados de forma permanente ou temporariamente. Existem as memórias primárias que são essenciais para o funcionamento do computador (RAM, ROM, Memória Cache) que normalmente servem como uma ponte para as memórias secundárias (Hard Disk, CDs, DVDs) para serem tratadas pelo processador.
No passado foram utilizadas várias tecnologias para implementar os mais diversos usos de memórias, como por exemplo: Memórias de tecnologia delay line, uma das primeiras tecnologias de memória principal, que armazenavam os dados na forma de pulsos sonoros em uma coluna de mercúrio. Memórias CRT, também chamadas de Williams-tube, um tipo de memória que usava um tubo CRT para armazenar dados na forma de pontos luminosos. Memórias de núcleo de ferrite, uma tecnologia popular de implementação da memória principal nas décadas de 1940 e 1950. Memórias de filme fino, uma melhoria da tecnologia de núcleo de ferrite, utilizada em alguns computadores na década de 1960. Cartões e fitas perfuradas, que já foram os principais meios de memória não volátil.
Na história mais recentemente foram criadas tecnologias de implementações de memórias bem sucedidas e muito bem utilizadas como: Portas lógicas e flip-flops, usados na implementação da memória cache. Transistores e circuitos de refrescamento, usados na implementação da memória principal. Arranjos de conexões, utilizados na implementação de certas ROMs (memórias de leitura). Fitas magnéticas, utilizadas principalmente para cópias de segurança e arquivamento a longo prazo. Discos magnéticos, como discos rígidos e disquetes - a principal tecnologia de implementação de memória secundária. Discos ópticos, como CDs e DVDs, e suas diversas variações. Memória flash, um tipo de memória semi condutora não volátil muito usada em câmeras digitais e leitores de MP3.
2.4.1 Pendrive
A história do pendrive é bem curta e teve início no ano 2000. Já a da memória flash, que é a utilizada nestes dispositivos, começou em 1980 com a Toshiba. Os primeiros modelos de pendrive foram fabricados pela Trek Technology em conjunto com a IBM, e eram chamados de DiskOnKey. A capacidade de armazenamento dos primeiros pendrives começou em 8 MB, o que era muito para época, tendo em vista que os disquetes armazenavam no máximo 2,88 MB. O tempo foi passando e, dos míseros 8 MB, chegamos a pendrives com 64 GB ou mais em menos de dez anos de história.

Figura 4 - Pendrive também conhecidos por USB Flash Drives.
Ninguém duvida que os pendrives sejam fenômenos de venda em todos os lugares do mundo. Mas, o que faz deles tão populares? A resposta pode estar em uma palavra: energia. Parece estranho, mas um dos fatores que contribuiu para o boom deste tipo de dispositivo é a não necessidade de energia para manter os dados armazenados, e continuar sendo muito seguro e estável – ao contrário dos disquetes.
O princípio é parecido com o de alguns celulares mais antigos, por exemplo. Eles armazenam configurações como hora e data, mas quando retiramos a bateria – deixamos de fornecer energia – estes dados são perdidos. Isso não acontece nos pendrives, pois se nenhum acidente ocorrer, os dados sempre estarão lá.
Os pendrives também são conhecidos por USB Flash Drives, pois utilizam uma memória flash como modo de armazenamento. Uma das vantagens desse tipo de memória para as demais é o fato de ela ser eletrônica e não magnética – como eram os disquetes -, dessa maneira os dados gravados dificilmente se perdem caso haja interferências de campos magnéticos. Simplificando, os pendrives possuem um chip gravável e regravável e o processo de armazenamento se dá por meio de elétrons que ao receberem carga positiva se tornam um número 1 e, ao perder em carga, se transformam em 0. É o código binário em ação.
Além de ter todos os atributos conhecidos, os pendrives também fazem sucesso por terem adotado a famosa entrada USB com porta de comunicação. Esse tipo de conexão foi desenvolvido com o intuito de tornar a comunicação do computador com outros dispositivos mais rápida e fácil e contribuiu para a massificação da porta USB tentando padronizar as entradas dos computadores. Desta forma, com o tempo elas acabaram se tornando mais populares que os próprios leitores de CDs, justamente porque permitirem a conexão de vários dispositivos com a máquina, não somente para a leitura de dados.
2.4.2 SSD
O termo SSD se aplica a dispositivos de estado sólido, que é um tipo de memória sem parte móveis para o armazenamento de dados digitais. Podemos encontrar esses dispositivos com capacidade desde alguns GB (109) até TB (1012).

Figura 5 - SSD dispositivo de estado sólido.
- EXERCÍCIOS
- Um certo chip de memória semicondutora é especificado como 4k X 8. Quantas palavras podem ser armazenadas neste chip? Qual é o tamanho da palavra? Quantos bits este chip pode armazenar no total?
- Qual das memórias armazena mais bits: uma memória de 5M X 8 ou uma memória que armazena 2M palavras com um tamanho de palavra de 16 bits?
- Descreva as condições de cada entrada e saída quando o conteúdo da posição cujo endereço é 00100 deve ser lido.
- Descreva as condições de cada entrada e saída quando a palavra 1110 deve ser escrita na posição de endereço 01101
- Uma determinada memória tem uma capacidade de 4k X 8.
- a) Quantas linhas de entrada de dados e saída de dados ela tem?
- b) Quantas linhas de endereço ela tem?
- c) Qual é a sua capacidade em bytes?
Respostas |
---|
1. 4k=4096. 8 bits (1 byte). 4096x8=32768. 2. 5M X 8.
3. (MSB) A4=0, A3=0, A2=1, A1=0, A0=0 (LSB); W\=1, R=1. 4. (MSB) A4=0, A3=1, A2=1, A1=0, A0=1 (LSB); (MSB) D3=1, D2=1, D1=1 e D0=0 (LSB); W\=0, R=0. 5. a) 8. b) 12. c) 4096 bytes (32768 bits). 2.5 Circuitos Integrados de memória (TTL)
|
3 Lista de Exercícios
- Desenhe os circuitos lógicos para o codificador e decodificador BCD 8421 e Exesso3.
- Projetar os seguintes conversores de código:
- Excesso 3 para BCD 8421;
- BCD 8421 para 2 entre 5;
- BCD 8421 para Johnson;
- BCD 8421 para Gray;
- Gray para BCD 8421.
- Desenhe o circuito do conversor BCD para 7 segmentos.
- Projete o circuito do conversor BCD para 16 segmentos (de 0 a 9).

Figura 5 - Display de 16 segmentos.

Figura 6 - Representação dos números e alfabeto (maíusculas) no Display de 16 segmentos.
4 Referências
[1] CASAGRANDE, Jorge H. B.. Apostila: ELETRÔNICA DIGITAL 1 CAPÍTULO 3 – Circuitos Combinacionais. CEFET/SC, 2005.
[2] Mapa de Veitch-Karnaugh On-line
[3] https://embarcados.com.br/codigo-gray-eletronica-digital/