Capítulo 5. Parte de Controle

Documentos relacionados
Latch SR (Set/Reset)

Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA. Prof. Fabian Vargas ÍNDICE

Memórias Parte 1. SEL-0415 Introdução à Organização de Computadores. Aula 4. Prof. Dr. Marcelo Andrade da Costa Vieira

Microprocessadores. São máquinas elétricas onde podemos armazenar instruções lógicas, aritméticas e de tomada de decisão;

18/10/2010. Unidade de Controle Controle. UC Microprogramada

Memórias. Memórias: Utilização:

Microprocessadores CPU. Unidade de Controle. Prof. Henrique

Memória Interna. Prof. Leonardo Barreto Campos 1

1ª Lista de Arquitetura de Computadores

Endereçamento de Memórias e Lógica de Seleção

Microprocessadores I. Aula 6 Arquitetura do Microprocessador Pinagem e Diagrama de Temporização

Circuito combinacional

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca

SEL-433 Aplicação de Microprocessadores I. Prof: Adilson Gonzaga

MEMÓRIAS. Sistemas Digitais II Prof. Marcelo Wendling Nov/18

Dispositivo Lógico Programável(PLD)

Memória. Arquitetura de Computadores I. DCC-IM/UFRJ Prof. Gabriel P. Silva

EL68E Sistemas Embarcados Prof. Douglas RENAUX

ELE Microprocessadores I. AULA 12 Arquitetura do Microprocessador Interface com as memórias

Organização e Arquitetura de Computadores INTRODUÇÃO

Arquitetura de Computadores. Conjunto de Instruções

Aula 11: Memória Principal: Conceitos Básicos e Organização

SSC510 Arquitetura de Computadores 1ª AULA

Aula 5: Introdução a Arquitetura do Microcontrolador 8051

SSC0112 Organização de Computadores Digitais I

ENGENHARIA DE SISTEMAS MICROPROCESSADOS

O Nível da Microarquitetura. Um Exemplo de Microarquitetura. Um Exemplo de Microarquitetura. Um Exemplo de Microarquitetura

Organização e Arquitetura de Computadores I

Painel Luminoso com LEDs

Memória. Memória Cache

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 12: MEMÓRIA CACHE: FUNÇÃO DE MAPEAMENTO (PARTE 1)

Eletrônica Digital II (Memórias) Prof. Eng. Antonio Carlos Lemos Júnior

CAPÍTULO VI DECODIFICAÇÃO DE I/O E MEMÓRIA

Organização e Arquitetura de Computadores

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Arquitetura de Computadores - Controle Microprogramado. por Helcio Wagner da Silva

SSC0112 Organização de Computadores Digitais I

COMPUTADOR. Adão de Melo Neto

Organização e Arquitetura de Computadores I

Gerenciamento de Memória

UNIVERSIDADE PAULISTA (UNIP) Curso de Engenharia Mecatrônica Disciplina: Microprocessadores e Microcontroladores (MM) LISTA III

Painel Luminoso com LEDs

a) Obtenha a tabela verdade das operações com 01 bit

EXERCÍCIOS DE PREPARAÇÃO PARA PROVA B2

ELE Microprocessadores I

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL

Organização e Arquitetura de Computadores I

14/3/2016. Prof. Evandro L. L. Rodrigues

Aula 10 Microcontrolador Intel 8051 Parte 1

MEMÓRIAS SEMICONDUTORAS

DECODIFICADORES. Capítulo 5

Níveis de memória. Diferentes velocidades de acesso. Memória Cache. Memórias Auxiliar e Auxiliar-Backup

ARQUITETURA DE COMPUTADORES

Estrutura Básica de um Computador

1ª Lista de Arquitetura de Computadores

Arquitetura do Disciplina de Microcontroladores. Prof. Ronnier Prof. Rubão

SEL-614 MICROPROCESSADORES E APLICAÇÕES. Adilson Gonzaga

Circuitos Lógicos. Profa. Grace S. Deaecto. Faculdade de Engenharia Mecânica / UNICAMP , Campinas, SP, Brasil.

Aula 4. Engenharia de Sistemas Embarcados. Prof. Abel Guilhermino Tópico: Arquitetura de um microcontrolador 8051

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

COMPUTADOR. Adão de Melo Neto

ENDEREÇAMENTO DE INSTRUÇÕES. Adão de Melo Neto

Visão geral do sistema de memória de computadores

Aula 12: Memória: Barramentos e Registradores

Organização e Arquitetura de Computadores I

Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação. Arquitetura de Computadores I. Organização Básica do Computador

ESTRATÉGIAS DE ALOCAÇÃO AULA 11 Sistemas Operacionais Gil Eduardo de Andrade

Organização Básica III

Aula 09. Módulos de Entrada e Saída

Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:

INSTITUTO FEDERAL CATARINENSE Campus Ibirama

Gerência de Memória. Endereçamento Virtual (1) Paginação. Endereçamento Virtual (2) Endereçamento Virtual (3)

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

9/3/2009. Aula 4. Engenharia de Sistemas Embarcados. Cenário: Sistema de Controle de LEDs


ATIVIDADES PRÁTICAS SUPERVISIONADASS

Organização de computadores. Segundo Bimestre CNAT Prof. Jean Galdino

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO4: MEMÓRIAPRINCIPAL

ARQUITETURA DE COMPUTADORES. Organização de Sistemas Computacionais. Prof.: Agostinho S. Riofrio

ELETRÔNICA DIGITAL II. AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR

Gerência de Memória. Paginação

ARQUITETURA DE COMPUTADORES. Nível da Lógica Digital. Prof.: Agostinho S. Riofrio

Microcontrolador 8051:

Infraestrutura de Hardware. Funcionamento de um Computador

Memória (conceitos) MEMÓRIA VOLÁTIL

Transcrição:

Capítulo 5 Parte de Controle 5.1. Introdução Partes de controle de computadores podem ser implementadas de duas formas principais, a saber: através de lógica aleatória ou de lógica regular (ROM ou PLA microprogramadas). Ambas as técnicas são extensivamente utilizadas, porém, devido à questões de espaço e complexidade, este capítulo tratará em detalhes somente arquiteturas envolvendo ROM microprogramadas. As figuras 5.1 e 5.2 mostram um diagrama de blocos contendo as três partes principais de uma unidade de controle baseada em ROM micropropramada: o Microseqüenciador; a ROM Microprogramada; e o Registrador de Estados, o qual contém o(s) endereços do(s) próximo(s) estado(s) possível(is), e os sinais de controle (Z Control signals) necessários para ativar a parte operativa do sistema. Fig. 5.1. Estrutura geral de uma unidade de controle baseada em uma ROM microprogramada. 47

Fig. 5.2. ROM microprogramada: uma tabela de estados. 5.2. Sistemas Baseados em ROM Microprogramadas As figuras 5.3, 5.4 e 5.5 mostram detalhes de partes de controle implementadas através de ROM microprogramadas. Na fig. 5.3, os sinais de controle Z 1 Z 2 iguais a 01 indicam para a parte operativa que ela deve fornecer o sinal verde, 10, o amarelo, e o sinal 00, o vermelho. Fig. 5.3. ROM microprogramada para uma semáforo de trânsito. 48

(c) Fig. 5.4. ROM microprogramada para uma pilha de 4 posições: (a) estrutura do sistema; (b) diagrama de estados; (c) implementação do sistema. Fig. 5.5. Uma implementação típica da parte de controle para a pilha de 4 posições utilizando lógica aleatória (wired lógic). 49

Capítulo 6 Organização e Mapeamento de Memórias 6.1. Introdução Num contexto de sistemas computacionais a palavra memória é utilizada para designar um conjunto de bits no qual são armazenados programas e dados. Sob o ponto de vista do processador, não há muita diferença se estes programas são sistemas operacionais, assemblers, compiladores ou softwares de aplicação tais como editores de texto, planilhas ou jogos eletrônicos. É importante observar que a mesma informação que é considerada dado em um momento pode transformar-se em código no momento seguinte. Por exemplo, quando o sistema operacional está carregando um editor de texto na memória, o conjunto de instruções que formam o programa do editor de texto é considerado como dado pelo sistema operacional. Para entender o funcionamento da memória, começamos com duas alternativas para a estrutura interna da mesma; abstraímos a organização interna da memória na forma de um chip de memória; examinamos gráficos rudimentares de temporização de leitura/escrita diferenciando o funcionamento síncrono do funcionamento assíncrono de uma memória; examinamos os mecanismos de decodificação de endereços abordando mapeamento de I/O no espaço de memória; e finalmente diferenciamos os vários tipos de memória existentes. 6.2. Organização Interna de uma Memória Uma memória constitui-se de uma matriz (array) de células de memória, cada célula com capacidade de armazenar um bit. Da mesma forma que em programas de alto nível, estes arrays podem ser unidimensionais ou multidimensionais. Para reduzir o número de linhas 50

necessárias para comunicar o endereço da célula (ou palavra) que está sendo endereçada, o endereço fornecido pelo processador é codificado em N linhas de endereço. Dado este endereço, é preciso utilizar um circuito decodificador para identificar dentre as 2 N possíveis posições de memória, qual que está sendo lida/escrita. Um possível circuito decodificador é ilustrado na fig. 6.1. O circuito que implementa o decodificador desta figura é mostrado na fig. 6.2. Fig. 6.1. Circuito decodificador de 3 para 8 linhas. Fig. 6.2. Circuito que implementa o decodificador de 3 para 8 linhas. Observe que para um codificador de 3 linhas de endereço para 8 linhas de dados são necessárias 8 portas AND com 3 entradas por porta. Numa estrutura de array unidimensional, um único decodificador é necessário, conforme ilustrado na fig. 6.3. Considere uma memória com 4 Kbits (4096 bits). Para endereçar individualmente cada um dos bits desta estrutura são necessárias 12 linhas de endereço. Na estrutura unidimensional é necessário um decodificador com 4096 portas AND, cada uma com 12 entradas. Para simplificar os decodificadores, arrays bidimensionais são mais comumente utilizados para implementar memórias. A mesma memória de 4Kbits pode ser endereçada através de 6 linhas de endereço de linha e 6 linhas de endereço de coluna. Esta memória precisa de dois decodificadores, cada decodificador com 64 portas AND, com 6 entradas cada uma. Isto representa uma economia de 4096 - (2 x 64) = 3968 portas AND. Uma estrutura interna bidimensional é mostrada na fig. 6.4. 51

Fig. 6.3. Estrutura interna unidimensional de uma memória. Fig. 6.4. Estrutura interna bidimensional de uma memória. Além da vantagem de redução na complexidade dos decodificadores, um array bidimensional pode reduzir o número de pinos necessários no chip de memória. Isto é feito através da multiplexação dos pinos que fornecem o endereço de linha e de coluna. A fig. 6.5 ilustra os processos de multiplexação e demultiplicação que ocorre para cada par de linhas fora e dentro do chip, respectivamente. Observe que uma estrutura similar à mostrada na fig. 6.5 terá que ser construída para cada par de linhas de endereços que compartilham pinos do chip. Fig. 6.5. Multiplexação de linhas de endereço para compartilhamento de pinos. Por exemplo, o chip de memória µpd4216800 da NEC Electronics que possui uma 52

capacidade de armazenamento de 2 Mbytes tem apenas doze linhas de endereço. Isto é conseguido endereçando os dados não bit-a-bit, mas byte-a-byte. O que significa que cada uma das células do array de memória armazena não mais um bit, mas sim um byte. Ainda assim, doze linhas de endereço seriam apenas suficiente para endereçar 2 12 = 4096 = 4Kbytes. Como é feita a mágica? A mágica é realizada por uma multiplexação externa ao chip das linhas de endereço e uma demultiplexação interna como ilustra a fig. 6.6. Neste chip especificamente são utilizadas 12 linhas de endereço para endereçar as linhas da matriz de memória e 9 linhas para as colunas. Portanto temos uma matriz de 2 12 x 2 9 = 4096 x 512 = 2 21 = 2.097.152 = 2Mbytes. Fig. 6.6. Representação do chip µpd4216800. Pergunta: É possível implementar a mesma organização de memória (2 Mbytes) com apenas 11 linhas de endereço? E com 10? Com 11 linhas, sim: implementando o array de células com fator de forma quase igual a 1. Assim, multiplexa-se as 11 linhas de endereço para as linhas da matriz e depois dez das onze linhas para as colunas, num total de 2 11 x 2 10 = 2 21 bytes acessados. Com 10 linhas de endereço não é possível: 2 10 x 2 10 = 2 20 = 1.048.576 = 1Mbytes. 6.3. Chip de Memória Agora que conhecemos a estrutura interna de uma memória, podemos subir um nível de abstração e considerar memórias como chips prontos, que podemos utilizar em um sistema computacional baseado em microprocessadores. Um destes chips é representado na fig. 6.6. RAS (Row Address Strobe) é o sinal que indica para o chip de memória que o endereço da linha da memória que está sendo acessada está presente no barramento de endereço. CAS (Column Address Strobe) indica que o endereço da coluna da memória que está sendo acessada está presente no barramento de endereços e WE indica que a operação é de escrita (quando está ativado) ou de leitura (quando está desativado) 1. Para operar adequadamente, os sinais de endereço e dados devem ser fornecidos ao chip de memória em sincronismo com os sinais de controle (RAS, CAS e WE). O diagrama de tempos simplificado para o ciclo de leitura é apresentado na fig. 6.7. 1 A barra em cima do nome do sinal indica que o sinal é ativo baixo, isto é, o sinal deve ser considerado ativado ou verdadeiro quando o seu nível elétrico é baixo e desativado ou falso quando o seu nível elétrico é alto. 53

Fig. 6.7. Diagrama de tempo simplificado do ciclo de leitura do µpd4216800. 6.4. Mapeamento de Memória Considere um chip de memória capaz de armazenar 2 Mbytes e suponha que queremos implementar um sistema microprocessado com capacidade de armazenamento de 16 Mbytes, cuja memória é organizada em palavras de 16 bits. Como organizaríamos este sistema? Uma forma natural de organizar esta memória seria colocar dois chips µpd4216800 lado a lado para formar uma palavra de 16 bits, e utilizar 4 destas combinações para alcançar os 16 Mbytes de memória desejado. Supondo que esta área de 16 Mbytes de memória inicie no endereço 0000.0000, a organização desta memória ficaria conforme indicado na tabela 6.1. Endereços Dados (16 bits) (23 bits) A31 A0 d15 d8 d7 d0 0000 0000 001F FFFF 0020 0000 003F FFFF 0040 0000 005F FFFF 0060 0000 007F FFFF Palavras Endereçáveis Mem0 Mem1 2M Mem2 Mem3 2M Mem4 Mem5 2M Mem6 Mem7 2M Tabela 6.1. Organização do espaço de endereçamento de memória. Como a tabela 6.1 indica, as linhas de endereçamento A 22 e A 21 (A 22 /A 21 = 00, 01, 10, 11, para Mem0/Mem1, Mem2/Mem3, Mem4/Mem5, Mem6/Mem7, respectivamente) são utilizadas para fazer a seleção entre os 4 slots do sistema. Estas linhas podem ser usadas como entradas de um decodificador cujas saídas são utilizadas na geração de um sinal de Chip Select (CS) para os respectivos slots, conforme ilustrado na fig. 6.8. 54

Bancos de Memória Linhas de Endereço 22 21 20 19 Mem0/Mem1 Mem2/Mem3 Mem4/Mem5 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 A22 A21 Chip Select' Mem0/Mem1 Mem2/Mem3 Mem4/Mem5 Mem6/Mem7 Mem6/Mem7 1 1 0 0 1 1 1 1 Fig. 6.8. Decodificador de endereços. Fig. 6.9. Organização do Sistema de Memória com capacidade para 16MBytes e palavras de 16 bits. 55