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 = n
o 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).