
Atualizado em 17/03/98
Prof. Rui Mano
E-mail: rmano@tpd.puc-rio.br
COMUNICAÇÃO ENTRE MEMÓRIA PRINCIPAL E UCP
BARRAMENTOS
Os diversos componentes dos computadores se comunicam através de barramentos. Barramento é um conjunto de
condutores elétricos que interligam os diversos componentes do computador e de circuitos eletrônicos que controlam o fluxo
dos bits. Para um dado ser transportado de um componente a outro, é preciso emitir os sinais de controle necessários para o
componente-origem colocar o dado no barramento e para o componente-destino ler o dado do barramento. Como um dado
é composto por bits (geralmente um ou mais bytes) o barramento deverá ter tantas linhas condutoras quanto forem os bits a
serem transportados de cada vez.
Obs.: Em alguns computadores (usando uma abordagem que visa a redução de custos), os dados podem ser transportados
usando mais de um ciclo do barramento.
Assim, se quisermos transferir um byte - por exemplo, 01001010 - da UCP para a Memória Principal, os circuitos de controle se encarregarão de colocar o byte 01001010 no barramento, ou seja, colocariam sinais de tensão "high" nas 2ª, 4ª e 7ª linhas do barramento (por convenção, os bits são sempre ordenados da direita para a esquerda) e de informar à memória para ler o dado no barramento. Os dados são representados no barramento na forma de sinais de tensão, sendo que um sinal de tensão de uns poucos volts ("high") representa o bit "1" e um sinal próximo de zero volts ("low") representa o bit "0".
REGISTRADORES UTILIZADOS
A comunicação entre MP e UCP usa dois registradores da UCP chamados de Registrador de Endereços de Memória -
REM ou, em inglês, Memory Address Register (MAR), bem o como Registrador de Dados da Memória - RDM ou, em
inglês, Memory Buffer Register (MBR).
x = no de bits do barramento de endereços; em geral (mas não obrigatoriamente) é igual ao nº de bits do Registrador de
Endereços de Memória - REM.
M = nº de bits contidos em uma célula; M em geral (mas não obrigatoriamente) é igual ao nº de bits do Registrador de Dados
da Memória - RDM.
ESQUEMÁTICO DE FUNCIONAMENTO DA COMUNICAÇÃO MP / UCP

UCP / MP
Barramento de endereços - unidirecional
(só a UCP envia dados - write - ou lê dados - read - da MP)
Barramento de dados - bidirecional
Barramento de controle - bidirecional
UCP ---> MP (controles ... - r/w)
MP -----> UCP (wait ... )
ELEMENTOS ENVOLVIDOS:
Barramentos:
de dados - bidirecional
de endereços -unidirecional
de controle - bidirecional
Registradores:
REM - Registrador de Endereços de Memória (MAR - Memory Address Register)
RDM - Registrador de Dados de Memória (MBR - Memory Buffer Register)
Exercícios:
1) Quais das seguintes memórias são passíveis de implementação?
| MEMÓRIA | Nº BITS NO REM | Nº DE CÉLULAS | TAMANHO DA CÉLULA EM BITS |
| a | 10 | 1024 | 8 |
| b | 10 | 1024 | 12 |
| c | 9 | 1024 | 10 |
| d | 11 | 1024 | 10 |
| e | 10 | 10 | 1024 |
| f | 1024 | 10 | 10 |
2) Um computador tem 512 endereços e cada célula tem 10 bits. Qual a capacidade:
a) do REM;
b) do RDM;
c) da MP em bits.
3) Um computador tem um RDM de 16 bits e um REM de 20 bits. Sabe-se que a célula desse computador é de 8 bits e que
ele tem um número de células igual à sua possibilidade de endereçamento. Pede-se:
a) qual o tamanho da barra de endereços?
b) quantas células são lidas da memória em uma única operação?
c) quantos bits tem a memória desse computador?
PALAVRA (UNIDADE DE INFORMAÇÃO)
Palavra é a unidade de informação do sistema UCP / MP.
A conceituação mais usada (IBM, Digital) define palavra como sendo a capacidade de manipulação de bits do núcleo do
computador (UCP e MP). Pressupõe-se aqui que todos os elementos do núcleo do computador (o que inclue o tamanho da
UAL, do acumulador e registradores gerais da UCP e o barramento de dados) tenham a mesma largura (processem
simultaneamente o mesmo número de bits), o que nem sempre acontece. Muitas vezes encontram-se computadores em que o
tamanho da UAL e do acumulador (e registradores gerais) não é o mesmo tamanho dos barramentos. Desta forma,
encontram-se especificações de "computadores de 64 bits" mesmo quando seu barramento de dados é de 32 bits, nesse
caso referindo-se exclusivamente à capacidade de manipulação da UCP de 64 bits (isto é, sua UAL e acumulador tem 64
bits). Esta conceituação é imprecisa (às vezes, enganosa) e pode levar a erros de avaliação da capacidade de processamento
de um computador.
Como exemplos, citamos os microprocessadores Intel 8086 (16 bits, sendo todos seus elementos de 16 bits) e seu "irmão"
mais novo 8088, usado nos primeiros IBM/PC e XT (idêntico sob quase todos os aspectos ao 8086 e também dito de 16
bits, sendo que UAL e registradores são de 16 bits mas o barramento de dados é de apenas 8 bits, por economia e razões
de compatibilidade com toda uma geração de placas de 8 bits). Destaque-se que nesse caso as transferências de dados
através do barramento de dados se fazem em duas etapas, um byte de cada vez, e em conseqüência no 8088 elas consomem
o dobro dos ciclos de barramento que o 8086), o que torna suas operações de transferência de dados mais lentas que as de
seu "irmão" 8086.
Concluindo, deve-se analisar caso a caso, porque a simples menção ao tamanho da palavra não é uma terminologia que
permita definir de forma conclusiva sobre a arquitetura do computador.
Em geral, o termo "célula" é usada para definir a unidade de armazenamento (o tamanho de células de memória) e o termo
"palavra" para definir a unidade de transferência e processamento, significando na prática quantos bits o computador
movimenta e processa em cada operação.
Não confundir: célula não é sinônimo de palavra, embora em algumas máquinas a palavra seja igual à célula. A palavra de um
computador pode ter 1 byte (p.ex, 8080), 2 bytes (p.ex. 80286), 4 bytes (p.ex. 486, o Pentium, e muitos mainframes IBM) e
mesmo 8 bytes (p.ex. o Alpha da DEC).
Células de memória muitas vezes tem o tamanho de 1 ou 2 bytes - de 8 a 16 bits.
TEMPO DE ACESSO
Tempo de acesso (ou tempo de acesso para leitura) é o tempo decorrido entre uma requisição de leitura de uma posição de memória e o instante em que a informação requerida está disponível para utilização pela UCP. Ou seja, o tempo que a memória consome para colocar o conteúdo de uma célula no barramento de dados. O tempo de acesso de uma memória depende da tecnologia da memória. As memórias DRAM (Dynamic RAM - as mais comuns hoje) tem tempo de acesso na faixa de 60 ns.
Tempo de ciclo (ou ciclo de memória é conceituado como o tempo decorrido entre dois ciclos sucessivos de acesso à memória. As memórias dinâmicas perdem seu conteúdo em alguns instantes e dependem de ser periodicamente atualizadas (ciclo de "refresh"). No caso das SRAM (Static RAM ou memórias estáticas), que não dependem de "refresh", o tempo de ciclo é igual ao tempo de acesso. As memórias dinâmicas, no entanto, requerem ciclos periódicos de "refresh", o que faz com que a memória fique indisponível para novas transferências, a intervalos regulares necessários para os ciclos de "refresh". Assim, as memórias DRAM tem ciclo de memória maior que o tempo de acesso.
O tempo de acesso de qualquer memória tipo RAM (Random Access Memory ou memória de acesso aleatório) é independente do endereço a ser acessado (a posição de memória a ser escrita ou lida), isso é, o tempo de acesso é o mesmo qualquer que seja o endereço acessado.
ACESSO À MEMÓRIA PRINCIPAL
O acesso à MP é ALEATÓRIO, portanto qualquer que seja o endereço (a posição) de memória que se queira acessar, o
tempo de acesso é o mesmo (constante).
Obs.: Embora a MP seja endereçada por célula, a UCP em geral acessa a MP por palavra.
O endereçamento por célula dá maior flexibilidade de armazenamento, em compensação o número de acessos é em geral
maior.
FUNCIONAMENTO
A MP pode ser acessada através de duas operações:
ACESSO Tipo LER ou ESCREVER
a) LEITURA: LER DA MEMÓRIA
Significa requisitar à MP o conteúdo de uma determinada célula (recuperar uma informação). Esta operação de recuperação
da informação armazenada na MP consiste na transferência de um conjunto de bits (cópia) da MP para a UCP e é não
destrutiva, isto é, o conteúdo da célula não é alterado.
SENTIDO: da MP para a UCP
PASSOS EXECUTADOS PELO HARDWARE:
a.1) a UCP armazena no REM o endereço onde a informação requerida está armazenada;
a.2) a UCP comanda uma leitura;
a.3) o conteúdo da posição identificada pelo endereço contido no REM é transferido para o RDM e fica disponível para a
UCP.
b) ESCRITA: ESCREVER NA MEMÓRIA
Significa escrever uma informação em uma célula da MP (armazenar uma informação). Esta operação de armazenamento da
informação na MP consiste na transferência de um conjunto de bits da UCP para a MP e é destrutiva (isto significa que
qualquer informação que estiver gravada naquela célula será sobregravada).
SENTIDO: da UCP para a MP
PASSOS EXECUTADOS PELO HARDWARE:
b.1) a UCP armazena no REM o endereço de memória da informação a ser gravada e no RDM a própria informação;
b.2) a UCP comanda uma operação de escrita;
b.3) a informação armazenada no RDM é transferida para a posição de memória cujo endereço está contido no REM.
CLASSIFICAÇÃO DAS MEMÓRIAS
Quanto à leitura e escrita, as memórias podem ser classificadas como:
R/W - Read and Write (memória de leitura e escrita), comumente (e impropriamente) chamada de RAM (Random Access
Memory ou memória de acesso aleatório), embora não seja a única RAM.
Esta memória permite operações de escrita e leitura pelo usuário e pelos programas. Seu tempo de acesso é da ordem de
70ns e independe do endereço acessado. É construída com tecnologia de semicondutores (bipolar, CCD), pode ser estática
(SRAM) ou dinâmica (DRAM) e é volátil. A MP é construída com memória R/W.
ROM - Read Only Memory ou memória apenas de leitura
Esta memória permite apenas a leitura e uma vez gravada não pode mais ser alterada. Também é de acesso aleatório (isto é,
é também uma RAM), mas não é volátil. É utilizada geralmente por fabricantes para gravar programas que não se deseja
permitir que o usuário possa alterar ou apagar acidentalmente (tal como por ex..a BIOS - Basic Input Output System e
microprogramas de memórias de controle). Quando se liga uma máquina, é da ROM que vem os programas que são
carregados e processados no "boot" (na inicialização o hardware aponta automaticamente para o primeiro endereço da
ROM). Desta forma, parte do espaço de endereçamento da MP é ocupado por ROM. A ROM é mais lenta que a R/W e é
barata, porém o processo produtivo depende de ser programada por máscara ("mask programmed") em fábrica e devido
ao alto custo da máscara somente se torna econômica em grandes quantidades.
Obs.: Boot (ou bootstrap loader) é o processo de inicialização e carga dos programas básicos de um computador,
automática, sem intervenção externa. Este termo vem de uma analogia com um processo (impossível) que seria uma pessoa
se levantar puxando-se pelos cordões de suas próprias botas.
PROM - Programmable Read Only Memory ou memória apenas de leitura, programável. Esta memória é uma ROM
programável (em condições e com máquinas adequadas, chamadas queimadores de PROM) e geralmente é comprada
"virgem" (sem nada gravado), sendo muito utilizada no processo de testar programas no lugar da ROM, ou sempre que se
queira produzir ROM em quantidades pequenas. Uma vez programada (em fábrica ou não), não pode mais ser alterada.
EPROM - Erasable Programmable Read Only Memory ou memória apenas de leitura, programável (com queimadores de
PROM) e apagável (com máquinas adequadas, à base de raios ultra-violeta). Esta memória é uma PROM apagável. Tem
utilização semelhante à da PROM, para testar programas no lugar da ROM, ou sempre que se queira produzir ROM em
quantidades pequenas, com a vantagem de poder ser apagada e reutilizada.
EEPROM (ou E2PROM) - Electrically Erasable Programmable Read Only Memory ou memória apenas de leitura,
programável e eletronicamente alterável. Também chamada EAROM (Electrically Alterable ROM). Esta memória é uma
EPROM apagável por processo eletrônico, sob controle da UCP, com equipamento e programas adequados. É mais cara e
é geralmente utilizada em dispositivos aos quais se deseja permitir a alteração, via modem, possibilitando a carga de novas
versões de programas à distância ou então para possibilitar a reprogramação dinâmica de funções específicas de um
determinado programa, geralmente relativas ao hardware (p.ex., a reconfiguração de teclado ou de modem, programação de
um terminal, etc).
[P15] [Índice] [Home-page] [Início da Página] [Seção Anterior] [Próxima Seção]
[Sistemas de Numeração] [Representação de Dados] [Componentes do Computador] [Representação de Instruções] [Circuitos Lógicos] [Entrada e Saída] [Tópicos Avançados de Arquitetura] [Sistemas de Arquivos] [Glossário]