Computadores XVIII: Lógica temporizada



Documentos relacionados
Computadores XXI: Busca e execução Final

Computadores XXXIII: Posições de memória A8 Texto 3

ARQUITETURA DE COMPUTADORES

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

ARQUITETURA DE COMPUTADORES

Flip-Flops (Aplicações) Prof. Rômulo Calado Pantaleão Camara

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

CP C U P U - Un U i n da d d a e d e Ce C n e t n ral a de d e Pr P oc o es e sam a e m n e t n o o Pr P oc o es e sad a o d r o Aula 03

ARQUITETURA DE COMPUTADORES

Computadores XLII: Placas controladoras do PC A9 Texto 6

ARQUITETURA DE COMPUTADORES - CONCEITUAL

Microprocessadores. Prof. Leonardo Barreto Campos 1

O quê um Processador e qual a sua função?

5 Entrada e Saída de Dados:

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Memórias Prof. Galvez Gonçalves

Quadro de consulta (solicitação do mestre)

Arquitetura de Rede de Computadores

PARANÁ GOVERNO DO ESTADO

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

Processadores. Prof. Alexandre Beletti Ferreira

05/04/2013. Para efetuar medidas é necessário fazer uma padronização, escolhendo unidades para cada grandeza.

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

Introdução aos Computadores

1. NÍVEL CONVENCIONAL DE MÁQUINA

Computadores XII: Aprendendo a Somar A4 Texto 3

DECODIFICADOR DE DISPLAY DE 7 SEGMENTOS COM LATCH

Operador de Computador. Informática Básica

Protocolo TCP/IP. Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados:

ULA Sinais de Controle enviados pela UC

EA773 - Experimento 5

3. Arquitetura Básica do Computador

28/9/2010. Unidade de Controle Funcionamento e Implementação

Introdução a Informática. Prof.: Roberto Franciscatto

Sistemas Computacionais II Professor Frederico Sauer

1.2) Na tela seguinte, o primeiro item a ser selecionado é o Unidade Acumuladora1.

ORGANIZACÃO DE COMPUTADORES PROCESSADORES CHIPS TRANSISTORES

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Inventario de produtos

PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012

Fundamentos de Hardware

for Information Interchange.

Montagem e Manutenção. Luís Guilherme A. Pontes

Fundamentos em Informática (Sistemas de Numeração e Representação de Dados)

Contando os Pontos Números Binários

R S Q Tabela 17 - Tabela verdade NOR

2. Representação Numérica

Copyright 2013 VW Soluções

Aula 2 Modelo Simplificado de Computador

Introdução a Informática. Prof.: Roberto Franciscatto

Eletrônica Industrial Apostila sobre Modulação PWM página 1 de 6 INTRODUÇÃO

Tutorial de Eletrônica Aplicações com 555 v

20/09/2009 TRANSFORMANDO DADOS EM. PROCESSANDO DADOS George Gomes Cabral SISTEMAS NUMÉRICOS INFORMAÇÕES

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Como utilizar um multímetro digital

Computadores I: Dados e informações

Conversão Analógica Digital

APOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo)

Manual. Atualização nº 1160 Novembro/ /11/2015

PROJETO DE REDES

Processadores de Núcleo Duplo

COMO ATUALIZAR AUTOMATICAMENTE PLANILHAS EM EXCEL OBTENDO INFORMAÇÕES ON-LINE VIA INTERNET

Manual de configuração do sistema

Gerenciamento de Projetos

Processadores clock, bits, memória cachê e múltiplos núcleos

INSTITUTO DE EMPREGO E FORMAÇÃO PROFISSIONAL, I.P.

Fundamentos em Informática

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA


Sistemas Distribuídos Aula 10

AULA 1. Informática Básica. Gustavo Leitão. Disciplina: Professor:

Manual do Aluno. O Moodle é um sistema que gerencia ambientes educacionais de aprendizagem que podem ser denominados como:

AS LEIS DE NEWTON PROFESSOR ANDERSON VIEIRA

Como melhorar o sinal da rede sem fio mudando o canal Wi-Fi do roteador

Guia Site Empresarial

PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS

Leitor MaxProx-Lista-PC

Dadas a base e a altura de um triangulo, determinar sua área.

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 10

Manual SAGe Versão 1.2 (a partir da versão )

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

INTRODUÇÃO BARRAMENTO PCI EXPRESS.

Técnicas de Manutenção de Computadores

Processadores. Guilherme Pontes

Ao ligar o equipamento, você verá a mensagem abaixo, o objetivo dela é fazer a configuração mínima para LOGAR ao servidor da Internet.

Aula 8 Circuitos Integrados

Gerenciamento de Contatos

Domo Estrutura do Sistema Físico e Lógico

LÓGICA DE PROGRAMAÇÃO

ARQUITETURA DE COMPUTADORES Prof. João Inácio

Hardware de Computadores

Como instalar uma impressora?

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Conceitos básicos do

UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE CIÊNCIAS INTEGRADAS DO PONTAL FÍSICA EXPERIMENTAL III

Guilherme Pina Cardim. Relatório de Sistemas Operacionais I

Visão Geral da Arquitetura de Computadores. Prof. Elthon Scariel Dias

Criar alertas de suprimentos e serviço

Transcrição:

Computadores XVIII: Lógica temporizada A6 Texto 3 http://www.bpiropo.com.br/fpc20051219.htm Sítio Fórum PCs /Colunas Coluna: B. Piropo Publicada em 19/12/2005 Autor: B.Piropo Para entendermos o que vem a ser lógica temporizada (em inglês, clocked logic ) devemos ter em mente que tudo o que ocorre no interior dos computadores depende da alteração, ao longo do tempo, do estado de grandezas elétricas. Tomemos como exemplo a própria memória principal, MP, ou memória RAM, que discutimos na coluna anterior (embora apenas superficialmente; voltaremos a ela em detalhes mais adiante): sua característica mais importante é justamente a possibilidade de alterar o valor armazenado em cada uma de suas muitas posições. E isto é feito alterando o estado de cada um dos oito capacitores usados nas oito células de memória que armazenam o valor de cada posição. Alterando-se o estado de um capacitor de carregado para descarregado, altera-se o valor do bit correspondente de um para zero. Então, para alterar o valor contido (ou escrever novo valor) em uma posição de memória é necessário modificar o estado dos oito capacitores elementares que a constituem, carregando-os ou descarregando-os. O que pode ser feito, respectivamente, aplicando-se tensões elétricas a seus terminais ou fechando-se um curto-circuito entre eles (operação realizada pelo controlador da memória). E é fundamental que estas modificações ocorram de forma tão simultânea quanto possível, ou seja, que os oito capacitores mudem de carga ao mesmo tempo. Porém, por mais cuidadosa que seja a técnica de fabricação, alguns destes capacitores podem demorar um pouco mais para se carregarem ou descarregarem que outros (note que falamos aqui de intervalos de tempo da ordem de nanossegundos, ou bilionésimos de segundo). Nesse contexto, a importância do fator tempo é crucial e é fácil entender o porquê. Imagine que se tente fazer uma leitura do conteúdo de uma dada posição de memória logo após ter-se escrito nela um novo valor. Imagine ainda que o procedimento de escrita em cada uma das oito células que formam aquela posição de memória não tenha sido simultâneo e ainda não tivesse sido encerrado quando a leitura foi feita. O resultado disso será a leitura do valor em um instante em que o estado de alguns capacitores já foram alterados e outros ainda não. E o valor lido não estará correto. Pois a lógica temporizada visa evitar justamente situações como estas. E consegue de uma forma simples e engenhosa. Vejamos como através de um exemplo.

Figura 1: Lendo dados na varanda Imagine que você e um amigo que mora em um prédio próximo, cujas varandas são mutuamente visíveis, como as da Figura 1, decidam se comunicar hasteando bandeiras nas varandas. Usariam o código ASCII no qual cada um de seus 256 caracteres é representado por um byte. E, para formar os bytes, recorreriam a varais estendidos nas varandas, onde pendurariam bandeiras brancas ou negras, fazendo uma bandeira negra corresponder ao bit um e uma bandeira branca ao bit zero. Combinando oito bandeiras de cada vez (que, juntas, formariam um byte) você e seu amigo poderiam trocar mensagens escrevendo um caractere após o outro. Mas enfrentariam um problema: depois de ler um caractere anotando a combinação de bandeiras brancas e pretas que formam o byte a ele correspondente, como saber se o amigo na outra varanda já teria terminado de ajustar todas as oito bandeiras para gerar o próximo caractere? Bem, há diversas soluções. Uma delas seria instalar em um ponto visível de ambas as varandas, como o do poste mostrado na Figura 1, uma lâmpada que pisque em intervalos regulares. Digamos, de minuto em minuto. Você e seu amigo combinariam anotar as posições das bandeiras somente após cada lampejo da lâmpada. Desta forma, cada um de vocês teria um minuto inteiro para ajeitar as bandeiras formando os bytes (caracteres) desejados e a certeza que, no momento da leitura, todas as oito bandeiras já estariam em suas devidas posições. ANIMAÇÃO 2: CLIQUE AQUI PARA ACOMPANHAR A TRANSMISSÃO DE UMA MENSAGEM DE Bom_dia Será que funciona? Acompanhe o que acontece na Animação 2. Veja, depois de cada lampejo da lâmpada sobre o poste, como as bandeiras mudam uma a uma até formarem o byte correspondente a cada caractere. Repare que elas já estarão devidamente arrumadas antes do próximo lampejo, garantindo que o observador leia o valor correto quando a lâmpada piscar novamente. E a mensagem prossegue, caractere a caractere, até o último. O método é simples, quase tosco, mas funciona. Pois bem: a forma que você e seu amigo escolheram para se comunicar pode até não ser muito prática. Mas, com ela, vocês acabaram de inventar a lógica temporizada. Nossos micros funcionam exatamente assim. Ou quase: em vez da lâmpada que pisca, usam cristais de quartzo que emitem pulsos de tensão elétrica em intervalos absolutamente regulares.

O quartzo é um tipo de rocha cujos cristais apresentam uma curiosa propriedade: quando a eles se aplica uma corrente elétrica, vibram emitindo pulsos de tensão em uma freqüência absolutamente constante (chamada freqüência de ressonância) que depende das dimensões e da forma do cristal. Quando se necessita marcar tempos com grande precisão em circuitos eletrônicos, aplica-se uma corrente elétrica a um cristal lapidado de forma a manter uma freqüência de ressonância exata. Contando-se as vibrações determina-se os tempos decorridos (por exemplo: se o cristal oscilar em 1 KHz, ou mil vezes por segundo, basta contar mil oscilações para obter um segundo; a freqüência de oscilação é tão regular que as imprecisões acumuladas andam na casa de poucos segundos por mês). Relógios digitais são feitos a partir de cristais de quartzo. Como vimos na coluna anterior, um dos elementos contidos em uma UCP (mais especificamente em sua unidade de controle) é um temporizador (ou clock ), constituído por um cristal que determina a freqüência de operação da UCP, ou seja, o ritmo em que transcorrem suas ações internas. O intervalo entre dois pulsos emitidos sucessivamente por este cristal corresponde ao ciclo de máquina da UCP. Nos primeiros computadores pessoais (como o PC/XT, o primeiro computador pessoal da IBM lançado em agosto de 1981 cuja UCP era o microprocessador 8088 da Intel com freqüência de operação de 4,77 MHz) o cristal contido na UCP comandava não somente o ritmo de suas operações internas como também o das transferências de dados entre ela e os componentes da placa-mãe. Em outras palavras: nessas máquinas a freqüência de operação da UCP era igual à do barramento. Porém nestes 25 anos a tecnologia de fabricação de microprocessadores evoluiu muito mais rapidamente que a de fabricação dos módulos de memória RAM. O resultado disso é que já não se pode ler e escrever na MP com a mesma rapidez com que se sucedem os ciclos de máquina da UCP. Trocando em miúdos: a freqüência de operação interna das UCPs modernas é muito mais rápida que a dos barramentos. No que diz respeito ao barramento frontal, ou seja, à comunicação entre UCP e MP, em geral a freqüência interna da UCP é um múltiplo da freqüência do barramento. Por exemplo: um moderno microprocessador cuja freqüência de operação é de 2 GHz pode funcionar em uma placa-mãe cujo barramento frontal opere, digamos, com a freqüência de 200 MHz. É prática corrente dizer que nessa situação o multiplicador é igual a dez (200 MHz x 10 = 2.000 MHz = 2 GHz), o que dá a idéia de que a freqüência é gerada para controlar o barramento e somente então multiplicada por dez para ser aplicada à UCP. Na verdade ocorre justamente o oposto: o sinal (sucessão de pulsos) gerado pelo cristal interno da UCP para determinar sua freqüência de operação interna é que é dividido por dez (ou seja: submetido a um contador que deixa passar apenas um pulso a cada dez que recebe) para ser aplicado ao barramento (mais especificamente: à linha de clock, ou linha CLK, do barramento). Figura 3: Sinais (pulsos elétricos) de freqüência constante

Veja como a coisa funciona examinando o esquema da Figura 3. Em sua parte superior aparece, em vermelho, o sinal produzido por um cristal de quartzo lapidado para gerar uma freqüência de 100 MHz. Este cristal emitirá um pulso de tensão a cada dez nanossegundos (um ns é igual a um bilionésimo de segundo; em um segundo são então emitidos cem milhões de pulsos com a duração de 10 ns, o que garante a freqüência de 100 MHz). Se acompanharmos a variação da tensão na linha (condutor elétrico) onde este pulso é aplicado, veremos que ela sobe rapidamente até atingir seu valor máximo, mantém-se neste máximo por alguns ns, cai rapidamente até zero e aí se mantém por mais alguns ns, repetindo este ciclo continuamente. O período (ou seja, a duração de um ciclo completo) é medido desde o início de um ciclo (quando a tensão começa a subir) até o início do ciclo seguinte. E, como se vê no gráfico da parte superior da Figura 3, dura exatos 10 ns. Já na parte inferior vê-se o mesmo sinal, porém submetido a um divisor por cinco, ou seja, um circuito que de cada cinco pulsos deixa passar apenas um. O resultado disso é um sinal cujos pulsos se sucedem a cada 50 ns. Um sinal destes corresponde a uma freqüência de operação de 20 MHz (faça as contas, dividindo um segundo por 20 milhões). O exemplo é apenas ilustrativo (não há computadores comerciais cuja UCP opere em 100 MHz e cujo barramento frontal opere em 20 MHz), mas dá uma idéia razoável de como é possível operar um sistema no qual a UCP e o barramento frontal operam em freqüências diferentes e, sobretudo, explica porque quando isto ocorre a freqüência de operação da UCP é sempre um múltiplo daquela em que opera o barramento frontal. Se tudo isso lhe parece complicado, guarde apenas um detalhe: uma das linhas do barramento de controle do FSB serve apenas para ditar o ritmo de funcionamento do barramento, ou sua freqüência de operação. Isto é feito através de pulsos sucessivos de tensão elétrica aplicados a esta linha. E se observarmos a variação da tensão ao longo do tempo nessa linha, teríamos um resultado parecido com o dos gráficos exibidos na Figura 3. Esta linha chama-se linha de clock, ou simplesmente CLK. Na comunicação entre os componentes da placa-mãe estes pulsos desempenham o mesmo papel da lâmpada no poste da Figura 1. A coisa funciona assim: digamos que a UCP quer enviar um número para a memória. Imaginemos que seja um número a ser escrito em uma das posições da MP. No exemplo da placa-mãe que vimos na coluna anterior, o número terá oito bits (pois cada posição de memória pode armazenar um byte). Portanto, o barramento que transportará este valor terá oito linhas, das quais cada uma transportará um bit. Como este valor é um dado a ser escrito na MP, este conjunto de linhas denomina-se barramento de dados (veja a coluna anterior, < http://www.forumpcs.com.br/viewtopic.php?t=141948 > Placas-mãe e memória principal ). Os oito bits que formam o número serão então transportados pelo barramento de dados da UCP para o controlador da memória, que depois tomará as providências para escrevê-los no endereço desejado. Mas como um condutor elétrico pode transportar um bit? Fácil: através de uma tensão elétrica. Se aplicarmos uma tensão em uma das extremidades do condutor, esta tensão se propagará por todo o condutor (senão ele não seria um condutor, verdade?) e poderá ser percebida (ou lida ) na extremidade oposta.

Então, para transportar um bit um da UCP para a memória basta que a UCP aplique uma tensão na extremidade de uma das linhas do barramento frontal (que, como sabemos, liga a UCP à MP) e espere esta tensão ser lida pelo controlador da memória na extremidade oposta da linha. E para transportar um bit zero basta não aplicar tensão alguma no condutor correspondente. Imagine que o número a ser transportado seja 00110011. O barramento de dados tem oito condutores (ou linhas ) paralelos. Então basta aplicar uma tensão nos dois condutores da extremidade direita, não aplicar tensão alguma nos seus dois vizinhos da esquerda, aplicar tensões nos próximos dois condutores e não aplicar nos dois últimos. Mas estas tensões não podem permanecer aplicadas por todo o tempo. Elas são aplicadas apenas até o momento em que, do outro lado, o controlador da memória as lê. E quando isso ocorrerá? Bem, lembra-se do poste entre os dois edifícios lá na Figura 2? Pois o condutor elétrico denominado linha de clock (ou CLK) do barramento de controle desempenha uma função equivalente. A UCP dispõe de todo o tempo transcorrido entre dois pulsos sucessivos para aplicar as tensões devidas no seu lado do barramento. Em seguida, espera até que um pulso seja disparado na linha CLK. Este pulso também é percebido pelo controlador da memória (pois o barramento se estende por todos os elementos da placa-mãe). E exatamente neste momento, ao sentir o pulso, o controlador da memória lê as tensões em sua extremidade do barramento. O fato das leituras das tensões nas oito linhas do barramento de dados serem feitas sempre no início de cada pulso garante que todas sejam lidas simultaneamente. Portanto, mesmo que a UCP ou o controlador da MP demorem um pouco mais ou um pouco menos para ajustar cada tensão, como este ajuste é feito sempre nos intervalos entre pulsos, haverá tempo suficiente para que tudo esteja nos conformes no momento em o novo pulso é disparado, garantindo assim que o valor lido estará sempre correto. E assim a faina prossegue: cada vez que um pulso é disparado na linha CLK (o que corresponde ao início do lampejo da lâmpada no poste) o controlador da memória lê as oito tensões nos condutores do barramento de dados. Para leituras sucessivas, a UCP altera as tensões no intervalo entre pulsos, colocando um novo valor lá do seu lado. Que será lido pelo controlador da memória no lado oposto assim que for disparado mais um pulso. E assim são transportados números entre UCP e memória, byte após byte. Evidentemente, para transportar dados entre memória e UCP, o procedimento é exatamente o mesmo, porém no sentido inverso: o controlador da memória ajusta as tensões na sua extremidade das linhas de dados e, no próximo pulso da linha CLK, a UCP as lê lá na sua extremidade. Assim funciona a chamada lógica temporizada. Que, para quem gosta de definir as expressões com propriedade, é uma metodologia de projeto da lógica digital baseada em um sinal temporizado ( clock signal ) usada na implementação de circuitos lógicos combinatórios para sincronizar transmissão de dados através de barramentos. Agora já podemos destrinchar os procedimentos de leitura e escrita na memória. Na próxima coluna, naturalmente.