Baixe o app para aproveitar ainda mais
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
Compartilhar