Buscar

Apostila Geral Arq Comp02

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Prof. Fábio Lucena Veloso		� PAGE �1�
Instituto Politécnico
Curso: Tec. Redes de Computadores Disciplina: Organização de Computadores Prof.: Fábio Lucena Veloso
�
Organização básica de sistemas de computação.
Qualquer computador conta em cinco elementos ou unidades essenciais; a unidade lógica aritmética (ULA), a unidade de memória, a unidade de controle, a unidade de entrada e a unidade de saída. A interconexão básica destas unidades está mostrada na figura abaixo (fig. 1). As setas nestes diagramas indicam a direção na qual os sinais de dados, informações ou controle estão fluindo. São usadas setas de dois tamanhos diferentes; as setas maiores representam dados ou informações que, na verdade, consistem em um número relativamente grande de linhas paralelas, e as setas menores representam sinais de controle que são, normalmente, apenas uma ou algumas linhas. As setas também estão numeradas para permitir uma fácil referência das mesmas nas descrições que virão a seguir.
Unidade Central de
Processamento (UCP)	5
�
Do mundo exterior
�
3
2
Entrada	10
�
Unidade Lógica
Aritmética (ULA)
1
Controle
�
4
Para o mundo exterior
Saída
12
�
67	11
8	9
Memória
(Fig. 1) – Organização de um sistema de computação
�
Unidade lógica aritmética
Esta é a área do computador onde são realizadas as operações aritméticas e lógicas com os dados. O tipo de operação a ser executada é determinado pelos sinais da unidade de controle (seta 1). Os dados a serem operados pela ULA poderão vir tanto da unidade de memória (seta 2) como da unidade de entrada (seta 3). Os resultados das operações realizadas pela ULA podem ser transferidos tanto para a unidade de memória, para armazenamento (seta 4), como para a unidade de saída (seta 5).
Unidade de memória
A unidade de memória armazena grupos de dígitos binários (palavras) que podem representar instruções (programa), que o computador deverá executar, e os dados a serem operados pelo programa. A memória também serve para o armazenamento de resultados intermediários e finais de operações aritméticas (seta 4): A operação da memória é controlada pela unidade de controle (seta 6), que sinaliza as operações tanto da leitura como de escrita. Uma dada locação na memória é acessada pela unidade de controle; que providencia o código de endereço apropriado (seta 7). As informações podem ser escritas na memória a partir da ULA ou da unidade de entrada (seta 8), novamente sob o controle da unidade de controle. As informações podem ser lidas da memória par a ULA (seta 2) ou para a unidade de saída (seta 9).
Unidade de entrada
A unidade de entrada é composta por todos os dispositivos utilizados para tomar informações e dados que são externos ao computador, e introduzi-los na unidade de memória (seta 8) ou na ULA (seta 3). A unidade de controle determina para onde esta informação de entrada é enviada (seta 10). A unidade de entrada é utilizada para
"entrar" o programa e os dados na memória, antes de se dar a "partida" no computador. Esta unidade também é utilizada par entrar dados para a ULA, vindos de algum dispositivo externo, durante a execução de um programa. Alguns dispositivos de entrada mais comuns são: teclados, scanners, unidades de disco, fax-modem, microfone, ou qualquer dispositivo analógico-digital.
A unidade de saída
Esta unidade é composta pelos dispositivos utilizados para transferir dados e informações do computador para o mundo exterior. Os dispositivos de saída são dirigidos pela unidade de controle (seta 12) e podem receber dados da memória (seta 9) ou da ULA (seta 5), que são, então, colocados na forma apropriada para uso externo, exemplos de alguns dispositivos de saída mais comuns: monitores de vídeo, impressoras, unidades de disco, unidade de fax modem e dispositivos digitais- analógicos.
Unidade de controle
Esta unidade dirige a operação de todas as outras unidades, fornecendo sinais de temporização e de controle. Esta unidade contém os circuitos lógicos e de temporização que geram os sinais necessários à execução de cada instrução de um programa.
A unidade de controle busca uma instrução na memória, mandando em endereço (seta
7) e um comando de leitura (seta 6) para a unidade de memória. A palavra de instrução armazenada na locação da memória é, então, transferida para a unidade de controle (seta
11). Esta palavra de instrução, que é alguma forma de código binário, é decodificada
�
pelos circuitos lógicos na unidade de controle para determinar que instrução está sendo reverenciada. A unidade de controle usa esta informação para gerar os sinais necessários para a execução da instrução.
Unidade Central de Processamento
Funções básicas da UCP:
O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento (os cálculos matemáticos, etc) e de controle, durante a execução de um programa.
Um programa, para ser efetivamente executado pelo processador, deve ser constituído de uma série de instruções. Para que a execução tenha início, as instruções devem ser armazenadas em células sucessivas, na memória principal.
A função da UCP consiste, então, em:
a) buscar uma instrução na memória (operação de leitura), um de cada vez;
b) interpretar que operação a instrução está explicitando (pode ser uma soma de dois números, uma multiplicação, uma operação de entrada ou de saída de dados, ou ainda uma operação de movimentação de um dado de uma célula para outra);
c) buscar os dados onde estiverem armazenados, para trazê-los até a UCP;
d) executar efetivamente a operação com o(s) dado(s), guardar o resultado (se houver algum) no local definido na instrução; e, finalmente,
e) reiniciar o processo apanhando nova instrução.
Estas etapas compõem o que se denomina um ciclo de instrução. Este ciclo se repete indefinidamente (fig. 2) até que o sistema seja desligado, ou ocorra algum tipo de erro, ou seja, encontrada uma instrução de parada. Em outras palavras, a UCP é projetada e fabricada com o propósito único de executar sucessivamente pequenas operações matemáticas (ou outras manipulações simples com dados), na ordem e na seqüência definidas pela organização do programa.
INÍCIO
Buscar a próxima instrução
Interpretar a instrução
(decodificar)
Executar a instrução
TÉRMINO
(Fig. 2) – Fluxo básico (resumido) de um ciclo de instrução.
�
A figura abaixo (fig. 3), mostra o diagrama de blocos de uma UCP, com os principais elementos que compõem cada categoria funcional.
O diagrama baseia-se em uma UCP de um microprocessador simples, justamente para facilitar as primeiras explicações sobre o assunto. Foram inseridos apenas os elementos básicos de uma UCP. Um processador real e moderno possui muitos outros elementos complementares, porém os que estão mostrados no diagrama da figura permanecem válidos.
�
UCP
�
Barramento de dados
�
RDM (MBR)
�
ULA
�
ACC Registradores
0 a R-1	CI (PC)
�
REM (MAR)
�
MP
Barramento de endereços
�
RI (IR)
�
Relógio
�
UC	Decodificador de instruções
�
Barramento de controle
�
controle
dados / endereço
(Fig. 3) – Esquema simplificado de uma UCP
As atividades realizadas pela UCP podem ser divididas em duas grandes categorias funcionais:
- Função processamento
- Função controle
A função processamento se encarrega de realizar as atividades relacionadas com a efetiva execução de uma operação, ou seja, processar. Processamento de dados foi definido como a ação de manipular um ou mais valores (dados) em uma certa seqüência de ações, de modo a produzir um resultado útil. O resultado muda conforme o tipo de operação realizada (ou seja, de acordo com a seqüência de ações – de acordo com instrução específica). Processar o dado é executar com ele uma ação que produza algum tipo de resultado. Esta é, pois, a atividadefim do sistema; ele existe para processar dados.
Entre as tarefas comuns a esta função (processamento) podemos citar:
• operações aritméticas (somar, subtrair, multiplicar, dividir);
• operações lógicas (and, or, xor, etc.);
• movimentação de dados (memória – UCP, UCP – memória, registrador – registrador, etc.);
• desvios (alteração de seqüência de execução de instruções);
• operações de entrada ou saída.
�
O dispositivo principal desta área de atividades de uma UCP é chamado de ULA – Unidade Lógica e Aritmética. Os demais componentes relacionados com a função processamento são os registradores, que servem para armazenar dados (ou para guardar resultados) a serem usados pela ULA. A interligação entre estes componentes é efetuada pelo barramento interno da UCP.
Unidade Lógica Aritmética (ULA)
A ULA é o dispositivo da UCP que executa realmente as operações matemáticas com os dados. Tais operações podem ser:
Soma; Multiplicação; Subtração;	 Divisão;
Operação lógica AND;	Operação lógica OR;	Operação lógica XOR; Operação de complemento;	Deslocamento à direita;	Deslocamento à esquerda Incremento;	Decremento.
A ULA é um aglomerado de circuitos lógicos e componentes eletrônicos simples que, integrados, realizam as operações já mencionadas.
Registradores
Para que um dado possa ser transferido para a ULA, é necessário que ele permaneça, mesmo que por um breve instante, armazenado em um registrador. Além disso, o resultado de uma operação aritmética ou lógica realizada na ULA deve ser armazenado temporariamente, de modo que possa ser reutilizado mais adiante (por outra instrução) ou apenas para ser, em seguida, transferido para a memória.
Para atender a esses propósitos, a UCP é fabricada com uma certa quantidade de registradores, destinados ao armazenamento de dados. Servem, pois, de memória auxiliar da ULA. Existem sistemas nos quais um desses registradores, denominado acumulador (ACC), além de armazenar dados, serve de elemento de ligação da ULA com os restantes dos dispositivos da UCP.
A função controle é exercida pelos componentes da UCP que se encarregam das atividades de busca, interpretação e controle da execução das instruções, bem como do controle da ação dos demais componentes do sistema de computação (memória, entrada/saída).
A área de controle de uma UCP é a parte funcional que realiza as atividades de:
a)	Buscar da instrução que será executada, armazenando-a em um registrador especialmente projetado para esta finalidade.
b)	Interpretação das ações a serem desencadeadas com a execução da instrução.
c)	Geração dos sinais de controle apropriados para a ativação das atividades requeridas para a execução propriamente dita da instrução identificada. Esses sinais de controle são enviados aos diversos componentes do sistema, sejam internos da UCP ou externos.
Os dispositivos principais que fazem parte desta área funcional são:
Unidade de Controle:
É o dispositivo mais complexo da UCP. Além de possuir a lógica necessária para realizar a movimentação de dados e instruções de e para a UCP, através dos sinais de
�
controle que emite instantes de tempo programados, esse dispositivo controla a ação da ULA. Os sinais de controle emitidos pela unidade de controle ocorrem em vários instantes durante o período de realização de um ciclo de instrução e, de modo geral, todos possuem uma duração fixa e igual, originada em um gerador de sinais usualmente conhecido como relógio (CLOCK).
Relógio (CLOCK):
É o dispositivo gerador de pulsos cuja duração é chamada de ciclo. A quantidade de vezes em que este pulso básico se repete em um segundo define a unidade de medida do relógio, denominada freqüência, a qual também usamos para definir a velocidade da UCP. Um ciclo de relógio ou de máquina é o intervalo de tempo entre o início de um pulso e o início do seguinte. Este ciclo está relacionado à realização de uma operação elementar, durante o ciclo de uma instrução. No entanto, mesmo esta operação elementar não se realiza em um só passo e, por esta razão, costuma-se dividir o ciclo de máquina em ciclos menores defasados no tempo, de modo que cada um aciona um passo diferente da operação elementar.
Registrador de instrução (RI):
É o registrador que tem a função específica de armazenar a instrução a ser executada pela UCP. Ao se iniciar um ciclo de instrução, a unidade controle emite o sinal de controle que acarretará a realização de um ciclo de leitura para buscar a instrução na memória, e que, via barramento de dados e registrador de dados memória (EDM), será armazenada no registrador de instruções.
Contador de programas (PC):
É o registrador cuja função específica é armazenar o endereço da próxima instrução a ser executada. Tão logo a instrução que vai ser executada seja buscada (lida) da memória para a UCP, o sistema providencia a modificação do conteúdo do contador de programas de modo que ele passe a armazenar o endereço da próxima instrução na seqüência. Por isso, é comum definir a função do contador de programas como sendo a de “armazenas o endereço da próxima instrução”, que é o que realmente ele faz durante a maior parte da realização de um ciclo de instrução.
Decodificador de instruções (DI):
É o dispositivo utilizado para identificar as operações a serem realizadas, que estão correlacionadas à instrução em execução. Em outras palavras, cada instrução é uma ordem para que a UCP realize uma determinada operação. Este registrador pega a instrução sob a forma de um código e a interpreta para o conjunto de instruções do processador. A unidade de controle está, por sua vez, preparada para sinalizar adequadamente aos diversos dispositivos da UCP, conforme ela tenha identificado a instrução a ser executada.
Registrador de dados de memória (RDM):
Este armazena temporariamente a informação (conteúdo de uma ou mais células) que está sendo transferida da memória principal para a UCP (em uma operação de leitura) ou da UCP para a memória principal (em uma operação de escrita). Em seguida, a referida informação é reencaminhada para um outro elemento da CUP para processamento ou para uma célula da memória principal, conforme o tipo da operação
�
de transferência. Permite armazenar a mesma quantidade de bits do barramento de dados.
Registrador de endereços de memória (REM):
Armazena temporariamente o endereço de acesso a uma posição de memória, ao se iniciar uma operação de leitura ou de escrita. Em seguida, o referido endereço é encaminhado à área de controle da memória principal para decodificação e localização da célula desejada. Permite armazenar a mesma quantidade de bis do barramento de endereços.
Barramento de dados:
Esta é uma via bidirecional, que interliga o RDM a memória principal e aos dispositivos de entrada e saída. Sua função é a transferência de dados (informações) entre a UCP e a memória principal e os dispositivos de entrada e saída.
Barramento de endereços:
Esta é uma via unidirecional, cuja função é a transferência de bits que representam um determinado endereço. Esta via liga a UCP a memória principal e aos dispositivos de entrada e saída.
Barramento de controle:
Esta é uma via bidirecional que serve para o transporte de sinais de controle utilizados para controlar as atividades dos diversos elementos do computador.
OPERAÇÃO SIMPLIFICADA DE UM MICROCOMPUTADOR
Como exemplo de uma operação em microcomputador, refira-se à Fig. abaixo (Fig. 4). Neste exemplo, ilustra-se o seguinte procedimento:
1. Pressione a tecla A do teclado.
2. Armazene a letra A na memória.
3. Imprima a letra A na tela do monitor de vídeo.
O procedimento de entrada-armazenamento-saída delineado na figura é uma típica operação de microcomputador. A eletrônica (hardware) usada num sistema como o da Figura é bem complicada. Entretanto, a transferência de dados dentrodo sistema auxiliará a explicação do uso das diversas unidades dentro do microcomputador.
�
1	Pressione A
�
Teclado
�
Microcomputador
�
Entrada
UCP
�
Armazene A	2
�
Memória
Saída
�
Monitor de vídeo
�
A
Imprima A
3
(Fig. 4) – Operação típica de um microcomputador
Um diagrama mais detalhado será apresentado abaixo (Fig. 5) e auxiliará na compreensão do procedimento típico de	entrada-armazenamento-saída de um microcomputador. Em primeiro lugar, observe cuidadosamente os conteúdos da memória de programa da Fig. 5, note que as instruções já forma carregadas nas seis primeiras posições de memória. Da Fig. 5, determina-se que as instruções correntemente presentes na memória de programa são:
1. ENTRE com dados da porta 1 de entrada.
2. ARMAZENE os dados da porta 1 na posição ou endereço 200 de memória.
3. SAIA com os dados para a porta 10 de saída.
�
A no teclado
5
Porta 1
de entrada
5
Acumulador
UMP
Registrador de instrução
Micropocessador	16
�
1
3
Barramento de endereço e linhas	6
de controle	8
12
14
�
Endereço
100
101
102
103
104
105
106
�
Conteúdos
Entre com dados
da porta 1
ARMAZENE os dados
no endereço 200
de memória
SAIA com os dados
para a porta 10
�
2
4
Barramento de
7	dados
9
13
15
�
Memória de programa
�
Endereço
10	200
201
202
�
Conteúdos
A	11
�
203
�
Memória de dados
�
Porta 10
de saída
16
16
A para o monitor de vídeo
(Fig. 5) – Operação passo a passo da execução de instruções da memória do programa Observe que há apenas três instruções no programa acima. Na Fig. 5, parece haver seis instruções na memória de programa. A razão para tal é que as instruções são usualmente divididas em partes. A primeira parte da instrução 1 acima é ENTRE com dados. A segunda parte diz de onde os dados vêm (da porta 1). A primeira parte da instrução que define a ação é chamada de operação e a segunda parte, de operando. A operação e o operando estão localizados em posições diferentes na memória de programa da Fig. 5. No caso da primeira instrução da Fig. 5, a posição ou endereço 100 da memória de programa contém a operação ENTRE, enquanto a posição 101 contém o operando
(porta 1), que diz por onde a informação será introduzida.
Na Fig. 5, duas novas partes foram identificadas dentro do microprocessador. São os registradores. Estes registradores especiais são o acumulador e o registrador de instrução.
�
A seqüência de eventos dentro do microcomputador para o caso do exemplo de entrada- armazenamento-saída da Fig. 4 está delineada na Fig. 5, o fluxo de instruções e dados será seguido com base nos círculos numerados do diagrama. Lembre-se de que o microprocessador é o centro de todas as operações e transferências de dados. Para todos os passos abaixo, refira-se à Fig. 5.
Passo 1: O microprocessador envia o endereço 100 para o barramento de endereço. Uma linha de controle habilita (ativa) a entrada a ler do circuito integrado com a memória de programa (ler significa copiar uma informação de uma posição de memória). Na Fig. 5, este passo está indicado pelo círculo 1.
Passo 2: A memória de programa coloca a primeira instrução “ENTRE com dados” no barramento de dados e o microprocessador aceita esta mensagem codificada. A instrução é colocada numa posição	especial de memorização dentro do microprocessador chamada de registrador de instrução. O microprocessador decodifica
(interpreta) a instrução e determina que falta saber qual é o operando da instrução
“ENTRE com dados”.
Passo 3: O microprocessador envia o endereço 101 para o barramento de endereço. A
linha de controle habilita a entrada de leitura da memória de programa.
Passo 4: A memória de programa coloca o operando “da porta 1” no barramento de dados. O operando estava no endereço 101 da memória de programa. Esta mensagem codificada (o endereço para a porta 1) é recebida através do barramento de dados e colocada no registrador de instrução do microprocessador. Este passa a decodificar a instrução “ENTRE com dados da porta 1” como um todo.
Passo 5: Através do barramento de endereço e das linhas de controle, o microprocessador obriga a porta 1 a se abrir recebendo os dados da unidade de entrada, no caso, o teclado. A forma codificada da letra A é introduzida e armazenada no acumulador do microprocessador.
É importante notar que o microprocessador sempre segue uma seqüência buscar- decodificar-executar. Primeiramente, ele busca a instrução na memória de programa. A seguir, o microprocessador decodifica a instrução. Em terceiro lugar, ele executa a instrução. Tente acompanhar esta seqüência buscar-decodificar-executar nas duas próximas instruções. Continue acompanhando o programa listado na memória de programa da Fig. 5.
Passo 6: O microprocessador lança o valor 102 no barramento de endereço. Usando as linhas de controle, o microprocessador ativa a linha de leitura na memória de programa.
Passo 7: O código da instrução “ARMAZENE os dados” é posto no barramento de dados e aceito e transferido para o registrador de instrução pelo microprocessador.
Passo 8: O microprocessador decodifica a instrução “ARMAZENE os dados” e determina que falta o operando. O microprocessador endereça a próxima posição (103) de memória e habilita a linha de leitura da memória de programa.
�
Passo 9: O código “no endereço 200 de memória” é colocado no barramento de dados pela memória de programa. O microprocessador aceita este operando e o coloca no registrador de instrução. A instrução inteira “ARMAZENE os dados no endereço 200 de memória” foi buscada na memória e decodificada.
Passo 10: Agora começa o processo de execução. O microprocessador lança o valor
200 no barramento de endereço e habilita a linha de escrever da memória de dados
(escrever significa copiar dados numa posição de memória).
Passo 11: O microprocessador coloca a informação armazenada no acumulador no barramento de dados (a forma codificada da letra A). A letra A é escrita na posição 200 da memória de dados. A segunda instrução acaba de ser executada. Este processo de ARMAZENE não destruiu os conteúdos do acumulador. O acumulador ainda contém também a forma codificada da letra A.
Passo 12: O microprocessador deve buscar a próxima instrução. Ele endereça a posição
104 e habilita a linha de leitura da memória de programa.
Passo 13: O código de instrução “SAIA com os dados” é colocado no barramento de dados. O microprocessador aceita a instrução, colocando-a em seu registrador de instrução. O microprocessador decodifica a instrução e determina que falta o operando.
Passo 14: O microprocessador coloca o valor 105 no barramento de endereço e habilita a linha de leitura da memória de programa.
Passo 15: A memória de programa coloca o código “para a porta 10” (operando) no barramento de dados. O microprocessador aceita este código, colocando-o no seu registrador de instrução.
Passo 16: O microprocessador decodifica a instrução inteira “SAIA com os dados para a porta 10”. Usando o barramento de endereço e as linhas de controle, o microprocessador ativa a porta 10 ligando-se com a unidade de saída. O microprocessador coloca o código da letra A (ainda armazenado no acumulador) no barramento de dados. A letra A é transmitida para o monitor de vídeo através da porta
10.
A maioria dos microprocessadores transfere a informação de modo semelhante ao detalhado na Fig. 5, as maiores diferenças serão encontradas provavelmente nas seções de entrada e saída. Para que elas operem adequadamente, pode-se necessitar de um número bem maior de passos.
É importante notar que o microprocessador centraliza e controla todas as operações. Ele segue a seqüência buscar-decodificar-executar. Entretanto, as operações que serão realizadas efetivamentesão ditadas pelas instruções listadas na memória do programa.
�
Memórias.
Os circuitos integrados de memória armazenam informações binárias em grupos chamados palavras. Uma palavra é a unidade básica de informação utilizada por um computador. O número de bits que constitui uma palavra varia de computador para computador.
A memória é o componente de um sistema de computação cuja função é armazenar as informações que são, foram ou serão manipuladas pelo sistema. Conceitualmente, a memória é um componente muito simples; na verdade pode ser visto como um depósito onde estão guardados certos elementos (informações) para serem usados quando desejado (recuperação da informação armazenada).
No entanto, na prática, a memória de computador possui tantas várias características, tais como: velocidade, capacidade de armazenamento, tecnologia de construção e alguns outros. A figura abaixo (fig. 6) mostra um esquema conceitual de um tipo qualquer de memória, imaginado como se fosse um depósito para uso de algum tipo.
101	102	103	104
�
armazenar
(escrita)
�
105	106	107	108
�
leitura
(recuperar)
�
109	110	111	112
113	114	115	116
Cada caixa de correio tem um endereço
(Fig. 6)
Conforme pode ser observado na figura acima (fig. 6), existem duas únicas ações que podem ser realizadas em um depósito (memória). A primeira é a ação de guardar um elemento (ou um grupo de elementos). Em computação, esta ação é genericamente denominada de armazenar e a operação em si realizada é chamada de escrita. A segunda é a ação de recuperação do elemento guardado (ou grupo de elementos) para um uso qualquer. Em computação esta ação se denomina recuperar e a operação para realizá-la chama-se leitura.
Hierarquia da Memória:
Todos nós estamos acostumados a ver utilizações da curva ABC, tanto em estoques, quanto na organização social de nosso país. Sabe-se que as memórias quanto mais velozes mais caras são e, portanto, devemos utilizar memórias mais rápidas quando a velocidade for crucialmente importante, o que ocorre por exemplo dentro de uma CPU, mas nesse caso o número de bits necessários é muito pequeno. Por outro lado, a memória principal não precisa ser tão rápida, mas precisa ter uma capacidade bem grande de armazenamento.
A memória secundária (discos) deve fundamentalmente possuir uma capacidade enorme de armazenar informações, e portanto não podemos exigir que sua velocidade seja tão alta quanto a memória principal. De um modo geral, as memórias são classificadas entre dois extremos:
•	Custo baixo, velocidade baixa, capacidade elevada e;
•	Custo alto, velocidade alta, baixa capacidade.
Como veremos a seguir, pode-se usar uma memória mais rápida para acelerar o uso de uma outra com maior capacidade e menor velocidade. É o caso do uso de memória RAM para acelerar o acesso a disco (SMARTDRV) , ou de memória CACHE para acelerar o acesso à memória RAM.
Hoje em dia não se implementa um sistema de computadores com apenas uma memória. Os diversos tipos de memória utilizados se interligam de maneira estruturada, formando o chamado subsistema de memória, que é projetado de forma que seus componentes sejam hierárquicos, podendo ser representados em forma de pirâmide, onde o vértice indica menor capacidade, e a base indica maior capacidade:
�
Registradores
Memória cache
Memória principal
Memória secundária
�
Custo alto Velocidade alta Capacidade baixa
↑
↓
Custo Baixo Velocidade baixa Capacidade elevada
�
15
Fábio Lucena Veloso
Registradores:
O destino de todo dado armazenado na memória é ser em algum momento processado pela CPU. Devido à grande velocidade de processamento das CPUs, é necessário que os dados, no momento de serem processados, estejam em memórias de altíssima velocidade, que é o caso dos registradores. As instruções são trazidas da memória para a CPU, e colocadas no registrador de instrução, de onde são decodificados e extraídos os endereços de memória dos operandos. A seguir, os operandos são trazidos da memória principal e armazenados na CPU, em outros registradores. Após o processamento da instrução, caso algum novo dado tenha sido produzido por ela, este será armazenada de volta na MP.
Principais Registradores:
•	Registradores de Dados da Memória (RDM)
•	Registrador de Endereços da Memória (REM)
Memória Cache:
Para a CPU processar uma instrução, é necessário que esta seja carregada no registrador de instrução, e seus operandos sejam trazidos da memória para os demais registradores. Ora, enquanto estes acessos à MP são feitos, a CPU tem que ficar esperando que os dados sejam disponibilizados. Para que a MP não seja um gargalo que limite a velocidade de processamento da CPU, foi criado um esquema de utilização de memória Cache, que é muito mais rápida que a principal, com tempos de acesso compatíveis com a velocidade da CPU, e que serve para guardar as últimas posições de memória acessadas. Como a experiência nos mostra que a reutilização dos mesmos dados ou instruções é muito intensa, este processo aumenta enormemente o desempenho do sistema de computação. Comparando com o ser humano, a memória Cache é a
memória de fatos recentes. Qualquer um pode repetir, sem consultar anotações, o que foi decidido na reunião de hoje de manhã, mas um mês depois possivelmente não nos lembraremos mais, e precisaremos recorrer à ata da reunião.
Memória Principal:
Esta memória é a que é usada para armazenar os programas e seus dados, durante a execução do mesmo pela CPU. A CPU só pode executar uma instrução imediatamente após a outra porque elas estão armazenadas na MP. Esta memória normalmente é volátil, ou seja, quando se desliga o computador todo o seu conteúdo é perdido.
�
Características das memórias.
A seguir serão definidos os principais parâmetros para análise das características das memórias:
•	Tempo de acesso: indica quanto tempo a memória gasta para colocar uma informação na barra de dados após uma determinada posição ter sido endereçada. Isto é, o período de tempo decorrido desde o instante em que foi iniciada a operação de acesso até que a informação requerida tenha sido efetivamente transferida.
•	Volatilidade: as memórias podem ser do tipo volátil ou não volátil. Voláteis são aquelas que perdem suas informações armazenadas quando ha falta de energia elétrica. Já as memórias não voláteis são aquelas que não perdem suas informações mesmo quando não existe energia elétrica.
•	Acesso: as memórias podem acessar uma informação através de dois modos. Acesso seqüencial ou aleatório. No acesso seqüencial para se chegar a uma determinada posição tem de passar por todas as posições intermediárias. Já no acesso aleatório vai-se direto à informação desejada sem ter de passar por nenhuma outra informação anteriormente.
•	Temporariedade: trata-se de uma característica que indica o conceito de tempo de permanência da informação em um dado tipo de memória. Memórias estáticas são aquelas que uma vez inserido um dado em uma determinada localidade, este lá permanece. Já as memórias dinâmicas a informação tem de ser inserida de tempos em tempos, pois devido às características do material, este se perde.
Organização da memória principal.
Essencialmente o espaço de armazenamento da memória principal é um grupo de N células cada uma podendo armazenar um grupo de M bits. Esta é a memória de trabalho da UCP e, portanto, deve permitir o armazenamento de instruções e dados (operação de leitura) e também a leitura destas mesmas instruções e dados. Chama-se a isso memória do tipo leitura e escrita.
�
�
endereço 0
endereço 1
endereço 2
endereço 3
�
MP
M bits M bits M bits
�
N células
�
endereço N-2
endereço N-1
�
Todas as células têm a mesma quantidade M de bits
�
bit 0	bit 1	bit m-1
Organização básica da memória principal
Considerações sobre a organização da memória principal.Quantidade de bits de uma célula:
Como já foi mencionado, cada célula é constituída de um conjunto de circuitos eletrônicos que permitem o armazenamento de valor 0 ou 1, os quais representam um dado ou uma instrução. A quantidade de bits que pode ser armazenada em cada celular é definida pelo fabricante. Uma célula contendo M bits permite o armazenamento de 2M combinações de valores, um de cada vez. A figura abaixo (fig. 7) demonstra alguns exemplos de memória com diferentes tamanhos de células.
�
�
MP 1
�
MP 2
�
MP 3
�
end. 0
end. 1
end. 254
end. 255
(Fig. 7)
�
12 bits
12 bits
12 bits
12 bits
(a)
�
end. 0
end. 1
end. 254
end. 255
(b)
�
16 bits
16 bits
16 bits
16 bits
�
end. 0
end. 1
end. 254
end. 255
(c)
�
8 bits
8 bits
8 bits
8 bits
�
Relação endereço X conteúdo de uma célula:
A figura acima (fig. 7) mostra exemplos de memórias com diferentes tamanhos de célula, porém com a mesma quantidade de células, endereçadas de 0(10) a 255(10) ou de
00(16) a FF(16) ou ainda 00000000(2) a 11111111(2). A próxima figura (fig. 8) mostra outros exemplos de organização de memória, desta vez com memórias de mesmo tamanho de células, porém, com quantidades diferentes de células.
�
end. 0000
end. 0001
end. 0002
�
MP 1
�
end. 000000
end. 000001
�
MP 2
�
end. 00000000
end. 00000001
�
MP 3
�
end. 1AC5	B5
�
end. 32A57B	C3
�
end. A315C000	24
�
end. FFFE
end. FFFF
�
end. FFFFFE
end. FFFFFF
�
end. FFFFFFFE
end. FFFFFFFF
�
(Fig. 8)
�
(a)
�
(b)
�
(c)
�
A comparação entre essas duas figuras (fig. 7 e 8) indica que os valores de endereço e conteúdo de célula embora associados, ou seja, o endereço 1AC5 está associado ao conteúdo B5 no exemplo da fig. 8 (a) tem origens diversas. Em outras palavras, a quantidade de bits do número que representa um determinado endereço, por exemplo,
16 bits do número 1AC5 no exemplo da figura 8 (a) define a quantidade máxima de endereços que uma memória principal pode ter, bem como de endereçamento. No exemplo citado, de endereçamento ou capacidade máxima na memória é:
64 K células, porque 216 = 26 x 2 10 = 64 K
Como todas as células tem tamanho de 1 byte, a quantidade de células é sempre igual à quantidade de bytes.
�
Capacidade da memória principal.
Conforme já vimos, as memórias são organizadas em conjuntos de células, cada uma podendo armazenar uma certa quantidade de bits. A informação em si seja a uma instrução (ou parte dela) ou um dado (ou parte dele).
Considerando que instruções e dados precisam estar armazenados na memória principal para que o programa possa ser executado pela UCP, e considerando ainda que é possível, e bastante desejável, que vários programas possam ser executados concorrentemente pela UCP, é importante conceituar o que seja capacidade de uma memória e como podemos calcular e entender aumentos de capacidade e outras informações concernentes.
Capacidade de memória refere-se genericamente a quantidade de informações que nela podem ser amarzenadas em um instante de tempo. Tratando-se de um computador, cuja unidade básica de representação de informação é o bit, pode-se imaginar este elemento como unidade de medida de capacidade. Neste caso, poder-se-ia expressar a capacidade de uma memória por valores do tipo:
512 bits	16384 bits	8.388.608 bits.
À medida que os valores crescem, torna-se mais complicado e pouco prático indicar-se o valor pela sua completa quantidade de algarismos. Por isso utilizamos múltiplos e submúltiplos para simplificar a informação. Como exemplo utilizamos o K (quilo) =>
(210 = 1024) o M (mega) => (220 = 1048576) e outros múltiplos.
Deste modo os mesmos valores indicados acima podem ser escritos de forma simplificada:
512 bits	16 K bits	8 M bits.
Uma outra forma de se expressar valores muito utilizada é a utilização do termo byte ao invés de bit, a unidade byte corresponde ao conjunto de 8 bits.
Não há uma padronização para indicar valores de capacidade de memória, embora seja mais comum se usar “quantidade de bytes” em vez de por ex., “quantidade de palavras” ou mesmo “quantidade de bits”.
Vamos exemplificar abaixo formas comuns de representar capacidade de memória.
2 K bytes = 2 x 210 = 2048 bytes
384 K células = 384 x 210 = 393216 células
�
Cálculos com capacidade da memória principal.
Como já vimos uma memória RAM é um conjunto de N células cada um armazenando um valor de M bits, então a quantidade de endereços contida no espaço endereçável de memória é também igual a N visto que cada conteúdo de células está associado a um número que é o seu endereço.
O valor de N representa a capacidade da memória através da quantidade de células ou de endereços, o valor de M indica a quantidade de bits que podem ser armazenados em uma determinada célula.
Como um bit representa apenas um entre dois valores (binário) podemos concluir que se pode armazenar em cada célula um valor entre 0 e 2M-1, porém, um de cada vez, são 2M combinações.
Já o número de endereços pode ser relacionado à fórmula N = 2E que é igual à quantidade de bits que representa cada um dos N endereços. O total de bits que pode ser armazenado em nossa memória e T = N x M ou T = 2E x M.
Exercícios:
1 – Uma memória RAM tem um espaço máximo de endereçamento de 2 K e cada célula pode armazenar 16 bits. Calcule o valor total de bits desta memória e qual o tamanho de cada endereço.
2 – Uma memória RAM é fabricada com a possibilidade de armazenar um máximo de
256 K bits, cada célula armazenando 8 bits. Qual o tamanho de cada endereço, escreva o endereço inicial e final desta memória (em binário e em hexadecimal) e qual o total de célula que pode ser utilizado.
3 – Um computador cuja memória principal tem uma capacidade máxima de 2 K palavras de 16 bits cada. Calcule o tamanho dos registradores RDM e REM, o valor do último endereço desta memória (em binário e em decimal) e qual a quantidade total de bits que podem ser armazenados.
4 – Uma memória com um total de bits armazenados de 65.536 bits com 4K células, deseja-se calcular o tamanho de cada célula, o endereço final e inicial em binário, hexadecimal e décima.
5 – Uma memória com capacidade máxima de armazenamento de 65.536 bytes com cada célula armazenando 16 bits, calcule seu RDM, REM, endereço inicial em binário e hexadecimal e endereço final em decimal e hexadecimal.
6 – Uma memória de 1.048.576 bytes cujo tamanho de cada célula é de 8 bytes, deseja- se saber o tamanho do REM, REM, endereço inicial em hexadecimal e fina em decimal.
�
Operações com a memória principal.
Conforme já observamos é possível realizar duas operações em uma memória: escrita, ou seja, armazenar informações na memória ou leitura, recuperar informações armazenadas na memória.
Uma operação de leitura não destrói o conteúdo da memória, ela apenas providencia a transferência de uma cópia do que está armazenado para um destino selecionado, enquanto a informação desejada continua intacta. Somente uma operação de escrita destrói as informações que estavam armazenadas, pois esta copia uma nova informação por cima da antiga.
Veremos abaixo os elementos que compões a estrutura UCP / MEMÓRIA PRINCIPAL
e que são utilizados nas operações de leitura e escrita.
UCP	MP
�
RDM
�
REM	UC
�
Barramento de controle
Barramento de endereços
Barramento de dados
�
Operação de leitura.
No primeiro passo, a unidade de controle inicia a operação de leitura através da transferência do endereço que deseja acessar através do PC para o REM e coloca um sinal de leitura (READ) na barramento de controle para indicar a memória o que fazer em seguida.
A memória decodifica o endereço recebido e transfere seu conteúdo para o RDM através do barramento de dados. Do RDM a informação desejada é transferida para o elemento da UCP de destinafinal.
�
UCP
�
MP
end. 0000
�
outro reg.	PC
�
RDM
�
REM	UC
�
end. FFFF
barramento de controle
barramento de endereços
5C	barramento de dados
�
Operação de escrita.
Nos primeiros passos o PC coloca o endereço desejado no REM, um registrador específico coloca o dado (informação) a ser transferido no RDM. O endereço é colocado no barramento de endereços, o dado (informação) no barramento de dados e um sinal de escrita (WRITE) é acionado no barramento de controle.
Como resultada da decodificação do endereço recebido, a memória armazena na célula especificado o dado (informação) vindo pelo barramento de dados.
�
UCP
�
MP
end. 0000
�
RDM
�
REM	UC
�
end. FFFF
barramento de controle
barramento de endereços
barramento de dados
Memória Secundária:
Armazena permanentemente o acervo de programas e dados do usuário. Por isso precisa ter uma capacidade muito maior que a da memória principal, uma vez que praticamente tudo que vai para a memória principal estava armazenada em discos, CDs ou fitas. Esta memória pode estar em dispositivos fixos (discos rígidos) ou removíveis (disquetes, CD, fitas, etc.). A principal característica da memória secundária é a não volatilidade.
�
Entrada e saída (E/S)
Já verificamos os componentes básicos de um sistema de computação: a unidade central de processamento (UCP) e a memória; falta verificarmos sobre dispositivos de entrada / saída.
Para que possamos desfrutar da rapidez e flexibilidade de um computador, não basta sabermos que ele pode armazenar na memória os programas e dados que desejamos processar e nem que ele pode executar mais de um milhão de instruções por segundo. É preciso que o programa que temos escrito em uma folha de papel ou os dados que serão por ele manipulados sejam inseridos no sistema, caractere por caractere, inclusive os espaços em branco entre os caracteres, os sinais de pontuação e os símbolos de operações matemáticas. Para tanto, precisamos de um meio qualquer que faça essa comunicação homem máquina. Um teclado do tipo semelhante ao de uma máquina de escrever pode servir como elemento de entrada, em geral, os dispositivos de entrada ou de saída são denominados de periféricos.
A figura 11 mostra um esquema representativo dessa comunicação entre o usuário e a máquina.
UCP MP
Entrada	Saída
Monitor de Vídeo
(Fig. 11)
Da mesma forma que temos a necessidade de comunicação com a máquina, também é preciso que haja comunicação no sentido contrário, isto é, máquina-homem, de modo que o usuário possa entender os resultados de um processamento. Uma impressora ou uma tela de vídeo podem servir como dispositivos de saída ou periféricos de saída.
A figura 12 mostra o modo de interligação adotado para a comunicação UCP memória principal: o barramento. Este mesmo método define a interligação do conjunto CUP / memória principal. Á através do barramento do sistema que se pode, então, interligar todos os componentes do sistema de computação e por onde fluem os mesmos tipos de informação, dados, endereços e sinais de controle. A figura 13 mostra um diagrama simplificado destas ligações.
�
UCP
Controle	Endereço	Dados
Memória Principal / Cache
(Fig. 12)
UCP
Memória Principal
Controle	Endereço	Dados
Sistema de E/S	* Diversos componentes
(Fig. 13)
Na realidade. O barramento do sistema permite o compartilhamento de informações entre os diversos componentes de um computador, da mesma forma que o barramento interno da UCP permite trânsito de informações entre os registradores e demais unidades da UCP. A figura 14 mostra dois exemplos do uso do barramento no sistema em computadores.
�
�
UCP	MP
�
E/S
�
E/S
�
E/S
�
DADOS
ENDEREÇOS
CONTROLE
(Fig. 14 (a))
UCP	MP	MP	E/S	E/S	E/S
DADOS - ENDEREÇO - CONTROLE
(Fig. 14 (b))
O funcionamento do conjunto de dispositivos de entrada e saída em um computador é, em geral, caracterizado pela existência de diversos elementos que, embora realizem o mesmo tipo de função (tenham o mesmo objetivo de comunicação um homem e máquina), possuem características bem diversas. Por isso, costuma se integrar os diversos elementos que cooperam no processo de entrada e saída em um subsistema. Um subsistema de entrada e saída deve, em conjunto, ser capaz de realizar duas funções
•	Receber ou enviar informações ao meio exterior.
•	Converter as informações (de entrada ou de saída) em uma forma inteligível para a máquina (se estiver recebendo transparentes para o operador – se estiver enviando).
Sobre a relação UCP memória principal e o subsistema de entrada e saída a algum, mas observações interessantes que devem ser mencionadas neste ponto:
a) a primeira observação refere-se as diferentes características de cada dispositivo de entrada saída o que tornaria extremamente complicada a comunicação UCP periférico, se esta fosse realizada direta e individualmente, isto é, se houvesse uma comunicação direta entre a UCP e o teclado, entre a UCP e impressora, por exemplo. A figura 15 mostra um esquema deste tipo de comunicação apenas para o entendimento, pois este não é prático nem economicamente viável. Obviamente nesta figura não estão assinaladas todas as diferenças entre os diversos dispositivos, existindo diferenças até mesmo relativas à parte elétrica de geração e interpretação dos sinais de transmissão.
�
UCP
MP
�
Disquete
�
Teclado
�
Disco Rígido
�
Mouse	Impressora
�
Vídeo
�
(Fig. 15)
Por causa disto, na prática a UCP não se conecta diretamente com cada periférico, mas sim com dispositivos que realizam a “tradução” e a compatibilização das características de um dispositivo (de entrada e saída) para o outro o (UCP a memória principal), além de realizar outras tarefas de controle, esses dispositivos costumam ser chamados de interface de entrada e saída.
A função deste dispositivo é a de compatibilizar as diferentes características de um periférico e da UCP / memória principal, permitindo um fluxo correto de dados em uma velocidade adequada a ambos os elementos que estão sendo interconectados.
b) os diversos tipos de dispositivos que podem ser conectados em um computador são classificados em três categorias.
1 – os que transmitem / recebem informações inteligíveis para o ser humano, são adequados para estabelecimentos de comunicação com o usuário. Por exemplo, impressoras, monitores de vídeo, teclados.
2 – os que transmitem / recebem informações inteligíveis apenas para máquina, são adequados para comunicação máquina a máquina ou internamente a uma máquina. São exemplos desta categoria os discos magnéticos e sensores.
3 – os que transmitem / recebem “de a para” outros dispositivos remotamente instalados. São exemplos destes os modens e regeneradores digitais.
c) há duas maneiras básicas de se realizar transmissão e recepção de dados entre os periféricos / interfaces e UCP / memória principal, bem como entre dispositivos inter conectados entre si, local ou remotamente:
1) A informação pode ser transmitida e recebida BIT a BIT um em seguida ao outro, isso caracteriza uma TRANSMISSÃO SERIAL.
1001101
1	2
Transmissão Serial
�
2) A informação pode ser transmitida e recebida em grupos de BITS de cada vez, isto é, um grupo de bits é transmitido simultaneamente de cada vez, a isto chamamos de TRANSMISSÃO PARELELA.
1
01	2
1
0
Transmissão Paralela
A escolha de um desses tipos para interliga a entrada / saída ao sistema UCP / memória principal depende de vários fatores, tais como: tipo e natureza do periférico, custo de implementação e velocidade de transmissão desejada.
d) basicamente, um dispositivo de entrada ou saída se comunica com o meio exterior
(usuário do sistema, outro dispositivo) e com sua interface de entrada e saída. Esta comunicação compreende o envio e recebimento de dados (bits)e sinais de controle.
INTERFACE
Dados
Sinais de Controle	Sinais de estado	Dados
CONTROLE	DADOS
Dados	 (depedne do dispositivo)
De / para o ambiente externo
O desenho acima mostra os tipos de informação bem como o sentido da direção do fluxo, transmitidas e recebidas entre elementos que se conectam a um dispositivo periférico. Embora cada dispositivo tenha característica de funcionamento próprias e distintas dos outros o fluxo de informações é basicamente o mesmo.
�
Interfaces de entrada e saída.
Como já verificamos é necessário que haja um elemento entre o conjunto UCP / memória principal e um periférico, visando a compatibilizar as diferentes características entre ambos, este dispositivo é a interface; vamos verificar alguns aspectos:
a) Existe no mercado uma quantidade muito grade de dispositivos periféricos que podem ser conectados a uma UCP, cada um possuindo modos próprios e específicos de funcionar, certamente diferentes uns dos outros. Seria impraticável dotar a UCP de lógica específica para tratar com cada periférico.
b) A velocidade de transferência de dados de um periférico é, em geral, muito menor que a da UCP. Não seria eficaz conectar os periféricos diretamente ao barramento d sistema, pois isto reduziria a velocidade da UCP / memória principal em sua comunicação. Além disso, cada periférico tem velocidade diversa um de outro, o que corrobora ainda mais a informação de que não é possível usar o mesmo caminha por usuários diversos. Por exemplo, o teclado é muito mais lente que um disco, que por sua vez, á muito mais lento que a memória principal.
c) Os periféricos costumam usar formatos e tamanhos diferentes de unidades de transferência de dados, isto é, uns transmitem um bit de cada vez (a unidade de transferência é, então, o bit), outros transferem um byte ou caractere por vez, enquanto alguns periféricos podem enviar ou receber centenas ou até milhares de bits em um único bloco de transferência. Por outro lado os fabricantes também adotam diversos tamanhos de palavra de dados da UCP. Por exemplo, o processador INTEL 8088 trabalha com palavra de 16 bits, enquanto o processador Alpha da DEC trabalha com uma palavra de dados de 64 bits.
Estes aspectos garantem, portanto, a necessidade do emprego de um dispositivo intermediário, ligando a UCP / memória principal a um periférico ou a um grupo de periféricos, o qual costuma ser chamado de interface de entrada e saída.
Uma interface de entrada e saída pode servir apenas para a conexão a UCP / memória principal e para o controle de um único dispositivo de entrada e saída ou pode atender a vários dispositivos, até mesmo dispositivos diferentes.
UCP
Memória Principal
Controle	Endereço	Dados
Sistema de E/S
P1	P2	P3
�
Uma interface ou controlador da de entrada e saída é em geral responsável pelas seguintes tarefas:
a) Controlar e sincronizar fluxo de dados entre a UCP / memória principal e o periférico b) Realizar a comunicação com a UCP, inclusive interpretando suas instruções ou sinais de controle para o acesso físico ao periférico.
c) Servir de memória auxiliar para o trânsito das informações entre os componentes
(“buffer” de dados)
d) Realizar algum tipo de detecção e correção de erros durante as transmissões.
�
P1	P2
�
P3	P4	P5
�
UCP
Memória
Principal
�
CONTROLADOR DE E/S - 1
�
CONTROLADOR DE E/S - 2
�
CONTROLADOR DE E/S - N
�
Em geral, uma interface de entrada e saída se comunica com o periférico através das seguintes ações básicas:
1) A interface envia um sinal de controle interrogando o periférico sobra a disponibilidade de receber dados (se for uma operação de escrita) ou de enviar dados (se for uma operação de leitura).
2) O periférico responde.
3) A interface transmite os dados (a quantidade de bits em cada transmissão depende da unidade de transferência de dados adotada pelo periférico).
4) O periférico certifica o recebimento ou o término da leitura.
A utilização de um “buffer” interno pelas interfaces é um fator fundamental para a compatibilização de velocidades diferentes entre o barramento do sistema e suas linhas externas.
�
Transmissão Serial
Na transmissão serial, o periférico é conectado ao dispositivo controlador ou interface de E/S por uma única linha de transmissão de dados, de como que a transferência dos dados é realizada um BIT de cada vez, embora o controlador ou interface possa ser conectado a UCP através de barramento de várias linhas.
�
UCP/MEMÓRIA	INTERFACE
�
Serial
�
BUFFER	PERIFÉRICO
A transmissão serial é geralmente mais lenta que a transmissão paralela, visto que só envia um bit de cada vez, sendo normalmente utilizada em periféricos de baixa velocidade ou cuja característica é típica de transmissão bit a bit.
Como a transmissão é bit a bit, é necessário que o receptor e o transmissor estejam sincronizados bit a bit, isto é, o transmissor transmite os bits sempre com a mesmo velocidade e, conseqüentemente, todos os bits terão a mesma duração no tempo.
Por exemplo, se o transmissor estiver funcionando na velocidade de 1000 bits/segundo, isto significa que cada bit dura 1/1000 segundos ou 1 milisegundo. Para que o receptor seja capaz de receber todos os bits enviados, ele precisa saber quando um bit inicia e qual a sua duração (também conhecida como largura do bit). Se a cada 1 milisegundo o transmissor envia um bit, então, a cada 1 milisegundo o receptor deve verificar o nível de tensão da linha para captar o bit que está chegando e identificá-lo como 0 ou 1. O receptor deve trabalhar, para isso, com a mesma velocidade (1000 bps no nosso exemplo) do transmissor.
Para que haja uma maior confiabilidade no processo é comum o receptor fazer a verificação no instante que o bit está na metade de sua duração, de modo a evitar possíveis erros como, por exemplo, se for verificado próximo a subida ou descida do pulso.
Receber bit a bit não é suficiente, é preciso que o receptor saiba identificar grupos de bits que tenham um significado, como por exemplo, a representação de um caractere. Dependendo do código de representação utilizado, cada caractere será representado por um grupo de n bits.
�
1 ms	1 ms
�
10101100
T
�
1 ms
1
�
1 ms
0
�
1 ms
1
�
1 ms
0
�
1 ms
1
�
1 ms
1
�
1 ms
0
�
1 ms
0
R
�
Linha de transmissão
�
Transmissor
1000 bps
�
Receptor
1000 bps
�
(Fig. 16)
�
transmissor: 1 bit = 1/1000 s = 1 ms
�
Há dois métodos de se realizar uma transmissão serial:
•	SÍNCRONA
•	ASSÍNCRONA
Transmissão Assíncrona.
É um método mais antigo, simples e barato, utilizado por antigos terminais e atualmente também usado em larga escala por microcomputadores. Ele consiste em um processo de sincronização do receptor a cada novo caractere transmitido. Para isso, antes de iniciar a transmissão, cada caractere é acrescido de 2 pulsos, um no início do caractere denominado START com duração exata de um bit e valor de tensão correspondente ao bit 0, e o outro, denominado STOP, tem valor de tensão igual ao do bit 1 e duração variável entre 1 e 2 bits. No caso do START trata-se de um bit 0 inserido antes do primeiro bit do caractere passando a ser o novo primeiro bit do caractere, conforme a figura 17.
A figura 17 mostra um caractere ACII transmitido pelo método assíncrono, isto é, os 8 bits ASCII, mais o START no início e o STOP no final do caractere. Quando não há transmissão, o transmissor envia continuamente bits 1 pela linha (nível alto de tensão). Quando um caractere é enviado, o receptor detecta a queda de tensão e entra em sincronismo, recebendo, daí por diante, os demais bits do caractere, até o STOP.
�
nível alto (bit 1)
�
nível alto (bit 1)
�
STOP
�
0 0	0	01 1	1	START
�
queda de tensão
�
T	R
�
01010010
Caractere ASCII - R”
(Fig.17)
�
Linha de transmissão
�
Para realizar a transmissão serial de forma assíncrona é necessário que, em ambos os lados da linha de transmissão, haja um dispositivo capaz de decompor cada caractere bit a bit e providenciar a inclusão dos bits START / STOP na transmissão e sua retirada após a recepção do caractere. Um dispositivo muito comum usado em microcomputadores e que faz parte da maioria das pastilhas de entrada e saída denomina-se UART (Universal Asynchronous Receiver / Transmiter), transmissor / receptor universal assíncrono. A UART é uma pastilha que emprega integração em larga escala (LSI), cuja função básica é a decomposição e composição de um caractere em bits e vice-versa conforme mostrado na figura 18.
�
0
1
Caractere 0
chega em 0
paralelo	1
0
1
0
�
UART
Transmissão
�
bit a bit
01001010
Transmissor serial
�
UART
Receptor
�
(Fig. 18)
A figura 19 mostra o diagrama em blocos de uma UART indicando seus principais componentes.
“Buffer” de saída de dados a serem transmitidos – recebe os n bits do caractere (pode ser 5, 6, 7 ou 8 dependendo do dispositivo que está sendo usado) e envia para o registrador de transmissão.
Registrados de transmissão – desloca os bits do caractere um a um para a linha de saída. Este deslocamento é realizado a cada pulso de relógio da UART.
�
Dados de Entrada (1 caractere)
�
Unidade de controle
�
“Buffer” de saída
Dados para transmissão
�
Sinal de controle
�
Relógio externo
(Fig. 19)
�
Relógio
Relógio
�
Sinal de controle
Registrador de Estado
�
Registrador de
Transmissão
Registrador de recepção
“Buffer” de saída
Dado recebido
Dado de saída
�
Dados em série
Dados em série
Sinal de controle
�
Registrador de recepção e “buffer” de saída de dados recebidos – funcionam de modo semelhante, porém em sentido inverso ao dos registradores já descritos. O caractere é recebido bit a bit no registrador de recepção, que efetua o deslocamento de cada bit até completar todo o caractere e, então, o encaminha para o “buffer” de saída.
Unidade de controle – permite que a UART funcione de modo diferente, conforme a escolha do usuário: opção de paridade, e se houver, se será par ou ímpar, opção de 1 ou
2 bits Stop.
Registrador de estado (semelhante ao flag dos microprocessadores) – possui um bit para indicar algumas ocorrências durante o funcionamento da UART, tais como: erro de paridade, erro de sincronização (a UART perdeu o bit START), dados disponíveis (para que o microprocessador leia o caractere).
Relógio – divide a freqüência de transmissão (taxa de bands) para permitir o deslocamento da cada bit dos registradores de deslocamento.
Transmissão Síncrona.
É uma técnica mais eficiente que a transmissão assíncrona, pois são transmitidos de cada vez blocos de caracteres, sem intervalo entre eles e sem pulso START / STOP (isto reduz a quantidade de bits que não são usados para efetivar representação dos caracteres e que ocupam a capacidade da linha). Por exemplo, uma transmissão de 100 caracteres ASII de modo assíncrono tem uma eficiência de:
�
�
Quantidade da informação =
Quantidade total de bits da transmissão
�
7 bits x 100 	
(7 + 1 + 1 +1) x 100
bits de paridade bits stop
bits start
bits de informação
�
A eficiência de 70% neste caso em que todos os caracteres estão sendo considerados sem intervalo, é a mesma para a transmissão de 1 ou de N caracteres, mas poderia ser menor ainda se ocorresse intervalo entre os caracteres, pois o denominador de fração iria aumentar (um intervalo de 20 milisegundos em uma transmissão com a taxa de 100 bps corresponde a cerca de 20 bits – 20 x 1/1000).
Na transmissão síncrona, a eficiência seria:
�
100 caracteres
=E
105 caracteres
�
=	95%
�
Os 105 caracteres do denominador compreendem os 100 caracteres da informação que se deseja transmitir mais 5 caracteres especiais necessários ao controle da transmissão e formato do bloco de caracteres.
A figura 20 mostra um esquema de transmissão síncrona, cujas características principais são:
a) não há intervalo entre os caracteres de um bloco, isto é, o transmissor monta um bloco, usualmente com cerca de 128 a 256 caracteres, e este é transmitido bit a bit sem intervalo entre o primeiro e o último bit;
b) para que o receptor se mantenha sincronizado (“sensar” a linha no mesmo intervalo de tempo que dura um bit – ver figura 16) é necessário que ele funcione com a mesmo freqüência do relógio do transmissor. Uma possibilidade de sincronizar os relógios é incluir uma linha de transmissão separada por onde circulam os pulsos de sincronização. Outra alternativa consiste na inclusão dos pulsos de sincronização junto com os bits de informação, utilizando-se alguma forma de codificação. Ambas as técnicas tem sido utilizadas com eficiência.
bloco de transmissão
CC CC CN	C2 C1 CC CC CC
�
T
Transmissor
�
R
transmissão	Receptor
�
C1, C2, C3.....	 caracteres de dados
CC	caracteres especiais de controle
(Fig. 20)
�
No entanto, como os caracteres são agrupados em blocos, segue a necessidade de um outro nível de sincronização entre transmissor e receptor para identificação do início e fim do bloco. Para tanto, usa-se a inserção de um grupo de bits no início do bloco
(marca o início da contagem de bits a serem recebidos) e outro no seu final.
Há pastilhas que podem realizar as tarefas necessárias à formação do bloco de transmissão, inclusão dos caracteres especiais de controle e detecção de erros, denominadas USART (Universal Synchronous Asynclironoiis Receiver Transmiter), transmissor / receptor universal síncrono e assíncrono, que também podem realizar as atividades de uma UART.
Transmissão Paralela
Com o uso de transmissão em paralelo, um grupo de bits é transmitido de cada vez, cada um sendo enviado por uma linha separada de transmissão, conforme mostrado na figura
21.
transmissão
�
T
Transmissor
�
0
1
0
1
0
0
1
0
caractere 2
�
1
0
0
1
1
0
0
0
caractere 1
�
R
Receptor
�
(Fig. 21)
�
ESTRUTURA BÁSICA DE UMA UART
D7
µP
�
D0
Via de dados paralela
�
UART
�
R x CLK
�
Dados seriais recebidos (R x DATA)
�
(8)
�
Receptor (Rx)
�
(8)
�
Transmissor (Tx)
�
Dados seriais transmitidos (T x DATA)
T x CLK
�
�
Relógio de transmissão 4
�
T x CLK
�
1	HABILITA 14
LEITURA / ESCRITA 13
�
3
Seleção de
�
Ger. de
Relógio
�
Ger. de paridade
�
Seleção de Pastilha 0 (CS0) 8
Seleção de Pastilha 1 (Cs1) 10
Seleção de Pastilha 2 (Cs2) 9
Seleção de Registrador 11
�Pastilha e controle de LEITURA / ESCRITA
�
Registrador de Dados de TRANSMISSÃO
(T x DR)
�
Registrador de Desloca- mento de TRANSMISSÃO
(TSR)
�
Dados TRANSMITIDOS
(T x D) 6
�
2	Controle de
5	TRANSMISSÃO
�
Livre para enviar 24
�
D0 22
D1 21
D2 20
D3 19
D4 18
D5 17
D6 16
D7 15
�
“Buffers” da via de dados
�
Registrador de Estado
Registrador
�
Lógica de
INTERPRETAÇÃO
�
REQUISIÇÃO DE INTERRUPÇÃO 7
Detector de Portadora de Dados 23
REQUISIÇÃO PARA ENVIO
(RTS) 5
�
de Controle
6
�Controle de
RECEPÇÃO
�Verificação de paridade
�
VDD = pino 12
VSS = pino 1
�
Registrador de Dados de RECEPÇÃO
(R x DR)
�
Registrador de Deslo- camento de RECEPÇÃO
(RSR)
�
Dados RECEBIDOS
(R x D) 2
�
Relógio de recepção 3
�
R x CLK
4
�
Ger. de relógio
�
Lógica de sin- cronismo
�
Seis blocos funcionais da UART MC 6850

Outros materiais