Instituto Politécnico Curso: Tec. Redes de Computadores Disciplina: Organização de Computadores Prof.: Fábio Lucena Veloso Curso: Tec. Análise de Sistemas Disciplina: Organização de Computadores Prof.: Roberto Barros 1 Profs. Fábio Lucena Veloso e Roberto Barros 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 Unidade Lógica Aritmética (ULA) 3 4 2 1 Para o mundo exterior Do mundo exterior Entrada Controle 10 Saída 12 7 6 8 11 9 Memória (Fig. 1) – Organização de um sistema de computação Profs. Fábio Lucena Veloso e Roberto Barros 2 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 digitaisanaló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 Profs. Fábio Lucena Veloso e Roberto Barros 3 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. 4 Profs. Fábio Lucena Veloso e Roberto Barros 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. Barramento de dados UCP RDM (MBR) MP ULA ACC Registradores 0 a R-1 REM (MAR) CI (PC) 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 atividade fim 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. 5 Profs. Fábio Lucena Veloso e Roberto Barros 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; Operação lógica AND; Operação lógica OR; Operação de complemento; Deslocamento à direita; Incremento; Decremento. Divisão; Operação lógica XOR; Deslocamento à esquerda 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 Profs. Fábio Lucena Veloso e Roberto Barros 6 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 Profs. Fábio Lucena Veloso e Roberto Barros 7 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 dentro do sistema auxiliará a explicação do uso das diversas unidades dentro do microcomputador. 8 Profs. Fábio Lucena Veloso e Roberto Barros 1 Pressione A Microcomputador Teclado 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. 9 Profs. Fábio Lucena Veloso e Roberto Barros A no teclado 5 Porta 1 de entrada 5 Acumulador UMP Registrador de instrução 16 Micropocessador 1 Barramento de endereço e linhas de controle 3 6 8 12 14 Endereço Conteúdos 100 Entre com dados 101 da porta 1 102 ARMAZENE os dados 103 no endereço 200 de memória 104 SAIA com os dados 105 para a porta 10 2 4 7 Barramento de dados 9 13 15 106 Memória de programa 10 Endereço Conteúdos 200 A 11 201 202 203 Memória de dados 16 Porta 10 de saída 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. Profs. Fábio Lucena Veloso e Roberto Barros 10 A seqüência de eventos dentro do microcomputador para o caso do exemplo de entradaarmazenamento-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 buscardecodificar-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. Profs. Fábio Lucena Veloso e Roberto Barros 11 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 efetivamente são ditadas pelas instruções listadas na memória do programa. 12 Profs. Fábio Lucena Veloso e Roberto Barros 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. armazenar (escrita) 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 leitura (recuperar) 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. Características das memórias. A seguir serão definidos os principais parâmetros para análise das características das memórias: Profs. Fábio Lucena Veloso e Roberto Barros 13 • 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. 14 Profs. Fábio Lucena Veloso e Roberto Barros MP endereço 0 M bits M bits M bits endereço 1 endereço 2 endereço 3 N células endereço N-2 Todas as células têm a mesma quantidade M de bits endereço N-1 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. 15 Profs. Fábio Lucena Veloso e Roberto Barros MP 1 MP 2 MP 3 end. 0 12 bits end. 0 16 bits end. 0 8 bits end. 1 12 bits end. 1 16 bits end. 1 8 bits end. 254 end. 255 12 bits 12 bits end. 254 end. 255 16 bits 16 bits end. 254 end. 255 8 bits 8 bits (a) (b) (c) (Fig. 7) 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. MP 1 end. 0000 end. 0001 end. 0002 end. 1AC5 MP 2 end. 000000 end. 000001 B5 end. FFFE end. FFFF end. 32A57B C3 end. FFFFFE end. FFFFFF (a) MP 3 end. 00000000 end. 00000001 end. A315C000 24 end. FFFFFFFE end. FFFFFFFF (b) (c) (Fig. 8) 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. Profs. Fábio Lucena Veloso e Roberto Barros 16 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 Profs. Fábio Lucena Veloso e Roberto Barros 17 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, desejase saber o tamanho do RDM, REM, endereço inicial em hexadecimal e final em decimal. 18 Profs. Fábio Lucena Veloso e Roberto Barros 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. MP UCP RDM REM UC Barramento de controle Barramento de endereços Barramento de dados 19 Profs. Fábio Lucena Veloso e Roberto Barros 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 destina final. UCP MP end. 0000 outro reg. PC RDM REM UC end. FFFF barramento de controle barramento de endereços 5C barramento de dados 20 Profs. Fábio Lucena Veloso e Roberto Barros 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 21 Profs. Fábio Lucena Veloso e Roberto Barros 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. Profs. Fábio Lucena Veloso e Roberto Barros 22 UCP Controle Endereço Dados Memória Principal / Cache (Fig. 12) UCP Memória Principal Controle Endereço Sistema de E/S Dados * 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. 23 Profs. Fábio Lucena Veloso e Roberto Barros 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. 24 Profs. Fábio Lucena Veloso e Roberto Barros UCP MP 1 bit de ca da ve muito z baixa veloc idade Disquete bo a 1b it d ec gr b a ada ve up ixa vez vel lo os o ci cid da de ade de b ,c its re sc en do a vez e cad bits d ade mais elocid 1 ou dia v a mé baixa bits ts cos u bi o p e s de d m o a o t c id ui da po loc m oci gru oa ve l m b e co a v o lt up a a r g uit m Teclado Disco Rígido Vídeo Mouse Impressora (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 25 Profs. Fábio Lucena Veloso e Roberto Barros 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 1 0 1 0 2 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 CONTROLE Sinais de estado Dados 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. 26 Profs. Fábio Lucena Veloso e Roberto Barros 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 27 Profs. Fábio Lucena Veloso e Roberto Barros 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. UCP Memória Principal P1 P2 CONTROLADOR DE E/S - 1 CONTROLADOR DE E/S - 2 P3 P4 P5 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. 28 Profs. Fábio Lucena Veloso e Roberto Barros 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 BUFFER Serial 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. 29 Profs. Fábio Lucena Veloso e Roberto Barros 1 ms 10101100 T 1 ms 1 ms 1 ms 1 ms 1 ms 1 ms 1 ms 1 ms 1 ms 1 0 1 0 1 1 0 0 R Linha de transmissão Transmissor 1000 bps Receptor 1000 bps transmissor: 1 bit = 1/1000 s = 1 ms (Fig. 16) 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) queda de tensão STOP 0 1 0 1 0 0 1 T Caractere ASCII - R” (Fig. 17) START R Linha de transmissão 01010010 0 30 Profs. Fábio Lucena Veloso e Roberto Barros 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. Caractere chega em paralelo 0 1 0 0 1 0 1 0 bit a bit 01001010 Transmissor serial UART UART Transmissão 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. 31 Profs. Fábio Lucena Veloso e Roberto Barros Dados de Entrada (1 caractere) Unidade de controle Relógio “Buffer” de saída Dados para transmissão Sinal de controle Registrador de Transmissão Dados em série Registrador de recepção Sinal de controle Relógio externo Relógio Sinal de controle Registrador de Estado Dados em série “Buffer” de saída Dado recebido Dado de saída (Fig. 19) 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: 32 Profs. Fábio Lucena Veloso e Roberto Barros 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 = 95% 105 caracteres 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 C1, C2, C3..... caracteres de dados CC caracteres especiais de controle (Fig. 20) Receptor 33 Profs. Fábio Lucena Veloso e Roberto Barros 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 0 1 0 1 0 0 1 0 caractere 2 Transmissor (Fig. 21) 1 0 0 1 1 0 0 0 R caractere 1 Receptor 34 Profs. Fábio Lucena Veloso e Roberto Barros ESTRUTURA BÁSICA DE UMA UART D7 µP D0 UART Via de dados paralela R x CLK (8) Receptor (Rx) Transmissor (Tx) Dispositivos de E/S serial Registrador de dados do receptor (R x DR) (8) Registrador de dados do transmissor (T x DR) “Buffer” da via de dados Dados seriais recebidos (R x DATA) Dados seriais transmitidos (T x DATA) T x CLK Fábio Lucena Veloso Página 39 Relógio de transmissão 4 1 T x CLK 3 HABILITA 14 Ger. de paridade Ger. de Relógio LEITURA / ESCRITA 13 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 Seleção de Pastilha e controle de LEITURA / ESCRITA Registrador de Dados de TRANSMISSÃO (T x DR) 2 Dados TRANSMITIDOS (T x D) 6 Controle de TRANSMISSÃO 5 D0 22 D1 21 D2 20 D3 19 D4 18 D5 17 D6 16 D7 15 Registrador de Deslocamento de TRANSMISSÃO (TSR) Livre para enviar 24 Registrador de Estado Lógica de INTERPRETAÇÃO “Buffers” da via de dados REQUISIÇÃO DE INTERRUPÇÃO 7 Detector de Portadora de Dados 23 Registrador de Controle 6 VDD = pino 12 Registrador de Dados de RECEPÇÃO (R x DR) VSS = pino 1 R x CLK REQUISIÇÃO PARA ENVIO (RTS) 5 Controle de RECEPÇÃO Registrador de Deslocamento de RECEPÇÃO (RSR) Ger. de relógio Relógio de recepção 3 Verificação de paridade 4 Seis blocos funcionais da UART MC 6850 Dados RECEBIDOS (R x D) 2 Lógica de sincronismo