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
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).