Buscar

Parte3_Sistemas Digitais Aplicados na Computação

Prévia do material em texto

15/05/2017
1
CIRCUITOS DIGITAIS
Sistemas Digitais Aplicados na
Computação
Prof Lemos
6.1 Introdução
• O Objetivo deste capítulo, é mostrar de que forma os circuitos digitais,
combinacionais e sequenciais, possibilitam a criação de uma infraestrutura lógica e
física para a construção de máquinas de processamento genéricas.
• Serão abordados dois circuitos necessários ao funcionamento da arquitetura
conceitual de Von Neuman, e que estão presentes de alguma forma, nos
computadores digitais. O primeiro dos circuitos a ser estudado será o Sistema de
Leitura e Escrita Indexada de Dados, onde serão mostrados projetos dos
subsistemas necessários para o armazenamento e recuperação de dados em
memória principal. O segundo circuito é a Unidade Lógica e Aritmética (ULA ou
ALU), parte integrante de qualquer unidade central de processamento (CPU), e
responsável pelas operações lógicas e aritméticas necessárias durante a execução
das operações pré-programadas de uma CPU.
• Vale lembrar que esses sistemas mencionados, são ainda enquadrados, em parte
ou em todo, na classificação mostrada no capítulo 4: combinacionais e
sequenciais, e portanto, requerem pleno conhecimento dos conceitos já
abordados anteriormente.
15/05/2017
2
6.2 Sistema Digital para Armazenamento e 
Recuperação de Dados
• Para entendermos de que forma podemos 
acessar um determinado dado, armazenado 
em um lugar específico da memória de um 
computador, temos inicialmente que definir 
alguns conceitos relativos à organização de 
computadores, em particular, a estrutura 
fundamental da memória principal (MP).
6.2.1 Estrutura da MP – Células e 
Endereços
• A memória precisa ter uma organização que permita ao
computador guardar e recuperar informações quando
necessário. Portanto, não basta transferir informações para
a memória. É preciso ter como encontrar essa informação
mais tarde, quando ela for necessária, e para isso é preciso
haver um mecanismo que registre exatamente onde a
informação foi armazenada (lembrando nossa analogia com
o computador hipotético, imagine encontrar uma
informação guardada ao acaso, se nosso escaninho tivesse
1 milhão de compartimentos ...).
• Em virtude desse problema, precisamos definir dois 
elementos necessários à estrutura organizacional de 
qualquer sistema de acesso à memória principal 
computacional. São eles:
• Célula é a unidade de armazenamento do computador. A memória
principal é organizada em células. Célula é a menor unidade da
memória que pode ser endereçada (não é possível buscar uma
"parte“ da célula) e tem um tamanho fixo (para cada máquina). As
memórias são compostas de um determinado número de células ou
posições. Cada célula é composta de um determinado número de
bits. Todas as células de um dado computador tem o mesmo
tamanho, isto é, todas as células daquele computador terão o
mesmo número de bits.
• Endereço é o “localizador” da célula, que permite identificar 
univocamente cada célula da memória. É utilizado pelo sistema e 
pelos programas para referenciar posições de memória. As células 
são numeradas sequencialmente, uma a uma, de 0 a (N-1), 
chamado o endereço da célula.
15/05/2017
3
• Assim, identificamos uma célula específica pelo seu endereço
associado.
• O tamanho em bits das células e dos endereços de uma memória,
está altamente acoplada à arquitetura interna do processador em
questão. Em geral o tamanho de uma célula poder ser igual aos da
palavra (unidade de processamento da CPU) e da unidade de
transferência (quantidade de bits que vem e vai da MP à CPU),
porém, por razões técnicas e de custo, são freqüentemente
diferentes.
• 6.2.2 Número de bits para representar um endereço
• A memória principal é constituída por posições memória (células)
todas com o mesmo número de bytes (1 byte =8bits), tendo cada
uma delas um endereço (valor numérico).
– Expressão geral: MP com endereços de 0 a (N-1)
– N = 2x logo: x = log2 N
– sendo x = nº de bits para representar um endereço e N o número
de endereços.
6.2.3 Capacidade da Memória Principal
• Num computador a capacidade memória (número de posições de 
memória) pode variar, mas está normalmente condicionado pelo 
número de endereços que a CPU pode aceitar.
• A capacidade da MP em bits é igual ao produto do nº de células 
pelo total de bits por célula.
– T = capacidade da memória em bits
– T = N x M
– N = nº de endereços ( como vimos anteriormente, N=2x sendo x = nº
de bits do endereço)
– M = nº de bits de cada célula
• Para encontrar a capacidade em bytes, bastaria encontrar a 
capacidade em bits e depois dividir por 8 (cada byte contém 8 bits) 
ou então converter o tamanho da célula para bytes e depois 
multiplicar pelo número de células.
• O último endereço na memória é o endereço N-1 ( os endereços 
começam em zero e vão até N-1).
6.2.4 Projeto Simplificado de Uma Memória
• Para exemplificar o acesso de leitura/escrita a 
uma posição de memória, vamos considerar 
um módulo de memória com:
• 4 posições de memória J 4 endereços de memória
• Cada posição com 3 bits.
• A cada posição de memória associa-se um endereço 
(que é um inteiro de 0 a 3). J Serão necessários 2 bits para 
representar um endereço (no caso geral, para 2n posições 
de memória serão necessários n bits – ver item 5.12).
15/05/2017
4
Define-se os seguintes dispositivos:
• Registrador de endereço (MAR – Memory Address Register) – que contém 
o endereço de uma posição de memória a que se quer gravar.
• Registrador de conteúdo (MBR – Memory Buffer Register) – que contém 
um valor a escrever na memória ou que irá conter um valor lido da 
memória.
• O registrador MAR tem 2 bits, o registro MBR tem 3 bits e cada uma das 
posições de memória, à esquerda, também tem 3 bits. Cada bit é um 
elemento de memória, como o exemplificado anteriormente.
• Habitualmente, uma memória de um bit é representada por um quadrado 
que pode conter o valor 0 ou 1, consoante o valor da sua linha de saída O. 
A esse valor chama-se também o seu conteúdo.
• Supondo-se que o registro MAR contenha num dos elementos o valor 0 e 
no outro o valor 1, então a sequência de bits 01 corresponde em binário 
ao endereço da posição de memória que se irá manipular.
• Obs: Em publicações na língua portuguesa é comum o uso dos termos RDM (registro de 
dados de memória) e
• REM (registro de endereço de memória) ao invés de MBR e MAR respectivamente.
6.2.4.1 Esquema do Circuito de Escrita
• Para uma operação de escrita, supomos que 
existe uma linha W tal que só se o seu valor 
for 1 é que a alteração da posição de memória 
é realizada.
• Figura pag 36
6.2.4.1 Esquema do Circuito de Escrita
15/05/2017
5
• O registrador de endereço MAR está ligado a um decodificador que 
ativa uma das suas 2n saídas de acordo com o valor da seqüência
de n bits de entrada (no decodificador). Para o caso com n=2, o 
decodificador ativa uma das suas 4 saídas, cada uma das quais está 
ligada a uma das posições de memória. Assim colocando-se o 
endereço de memória no MAR, o sistema identifica a posição de 
memória que se pretende alterar.
• O registrador de conteúdo MBR, isto é, cada um dos seus bits, está 
ligado com cada uma linhas de entrada I de cada posição de 
memória (isto é, com cada um dos respectivos bits). No esquema, a 
linha com uma seta na extremidade - que liga o MBR a cada posição 
de memória - , corresponde na realidade a 3 linhas uma para cada 
um dos bits das posições de memória.
• Para uma posição de memória (que tem 3 bits) têm-se:
6.2.4.1 Esquema do Circuito de Escrita
Figura pag 37 superior
• Quando o valor de W é 1 então, considerando 
os circuitos dos elementos de memória e o 
decodificador, facilmente se conclui que cada 
um dos bits da posição de memória apontada 
pelo MAR vai ficar com os valores dos 
respectivos bits do MBR. Neste caso, a posição 
de memória 3 (Bit-2 ativo) ficaria com a 
seqüência 101.
15/05/2017
6
6.2.4.2 Esquema do Circuito de Leitura
• 6.2.5 Intervalo de N-Formas (N-way interleaving)
• Uma abordagem interessantee de uso intensivo para aumentar a taxa de transferência de informações da MP 
sem a
• necessidade de se aumentar o tamanho do barramento (fios conectores entre as diversas partes da cpu e os
• elementos externos a ela) é a "n-way interleaving", que consiste em conjunto de memórias de mesmo tamanho 
com
• capacidade de operar de forma paralela.
• Em geral, as memórias utilizadas, dentro do contexto dessa abordagem, conseguem endereçar mais endereços do
• que sua quanSdade nominal (214→216).
• Quando, na CPU, um microprograma necessita buscar uma nova palavra, ele divide o endereço de 16 bits do nível
• convencional de máquina em duas partes. A parte mais direita, formada por dois bits especifica qual das 
memórias
• será usada: 0, 1, 2 ou 3. A parte mais a esquerda, formada por 14bits, especifica o endereço real da memória em
• questão.
• Após o microprograma, ter determinado qual memória usar, ele coloca os 14bits mais a esquerda do endereço
• envolvido no MAR associado a memória selecionada, e inicia o processo de leitura. Enquanto o microprograma
• aguarda o termino da leitura, ele pode acionar a leitura de outras memórias em paralelo para buscar outros 
dados.
• Note que as informações de endereços consecutivos k, k+1, k+2 e k+3, sempre estarão em memórias diferentes, e
• como resultado, ate 4 endereços (ou instruções) podem ser buscadas em paralelo. Note que este método 
independe
• do tamanho do MBR (no exemplo 16 bits).
15/05/2017
7
6.3 ULA (Unidade Lógica e Aritmética)
• A ULA ou ALU, pode ser vista como o coração de um processador 
por ser ela a responsável em realizar todas as operações lógicas e 
aritméticas que constantemente ocorrem em uma maquina de von 
newmann.
• A ULA é um circuito combinacional capaz de realizar operações 
elementares, que em conjunto, formam operações complexas: 
soma, subtração, incremento, and, or, xor, not e etc.
• Uma ULA típica possui dois barramentos de entrada de dados (X) e 
(Y), e um barramento de saída para os resultados (S).
• Além dos barramentos de e/s, uma ULA também possui um 
barramento de controle, através do qual determina-se a operação a 
ser realizada em um determinado instante, e quais linhas de saída 
adicionais (flags) serão acionadas para sinalizar a ocorrência de 
condições especiais(e. g. carry-out, overflow, e etc)
ULA – Unidade Lógica e Aritmética
• Apesar de uma ULA trabalhar com dois operandos, ela 
também pode executar operações que envolvam apenas 
um
• operando (armazenado no acumulador). Por esta razão, o 
acumulador possui uma lógica adicional além da
• necessária para torná-lo um registrador de uso geral como 
o registrador B.
• O registrador de flags mostra o status referente à última 
operação executada. Por exemplo, se o resultado da
• operação for zero, um flag (Z) é setado, indicando tal 
situação. Outros flags possíveis são : Carry, Paridade, Sinal,
• overflow, e etc.
15/05/2017
8
ULA – Unidade Lógica e Aritmética
• Operações com Um Operando : Clear, complementação, incremento, 
decremento, deslocamento à esquerda, deslocamento à direita, carga e 
saída de dados são exemplos de operações que ocorrem sobre um único 
operando. 
Operações com Dois Operandos : Soma, Subtração, Comparação, AND, OR e XOR 
são exemplos de operações que ocorrem sobre dois operandos.
Exemplo de Uma Operação de Complemento
Operações com Dois Operandos : Soma, Subtração, Comparação, AND, OR e XOR são 
exemplos de operações que ocorrem sobre dois operandos.
Exemplo de Uma Operação de Deslocamento à Esquerda
Exemplo de Uma Operação de Rotação à Esquerda

Continue navegando