Você está na página 1de 9

Ciclo de uma Instruo

Na coluna anterior vimos que microprocessadores so circuitos integrados versteis,


capazes de executar diferentes operaes de acordo com as instrues que recebem.
Aprendemos ainda o que uma instruo e vimos que um programa um conjunto de
instrues encadeadas. Com isso podemos prosseguir nosso caminho para destrinchar
o funcionamento e o procedimento de inicializao de um computador.
O microprocessador apenas um dos componentes de um computador. O mais
importante deles, verdade, mas que pouco pode fazer sozinho. Por isso o
microprocessador est inserido em um grande circuito impresso denominado placa-
me (do ingls motherboard). Se voc abrir o gabinete de seu computador poder
v-la com facilidade no fundo dos gabinetes horizontais ou junto a uma das paredes
laterais dos gabinetes verticais.

A placa-me contm centenas de componentes. Para o que nos interessa, fixemos


nossa ateno em quatro deles, o microprocessador, tambm conhecido como Unidade
Central de Processamento, ou UCP, a Memria Principal (MP, ou memria RAM), os
encaixes para as controladoras dos dispositivos de entrada e sada (ou slots) e o
barramento (conjunto de condutores eltricos e seus circuitos de controle que interliga
os demais elementos da placa-me). O aspecto de uma placa-me o mostrado na
Figura 1, onde esto assinalados os slots, o soquete onde se encaixar a unidade
central de processamento (UCP) e os conectores onde sero inseridos os mdulos da
memria principal (MP). Os condutores eltricos que formam o barramento podem ser
percebidos sob a forma de finos riscos dourados sobre a placa.

Figura 1: Aspecto de uma placa-me


O microprocessador o corao de um computador. A ele compete processar dados,
executando as instrues em uma determinada seqncia. Portanto, ele s pode
funcionar se for continuamente alimentado com instrues, uma aps a outra.
Instrues, como vimos na coluna anterior, so nmeros que o microprocessador
interpreta como ordens (ou comandos) para executar determinadas aes que, em
conjunto, constituem um programa. Para que possam ser introduzidas no
microprocessador, as instrues devem estar armazenadas em algum lugar. Esse lugar
a memria principal, ou memria RAM. Daqui para diante vamos nos referir a ela
como MP.

Nos computadores modernos a MP constituda por um conjunto de circuitos


integrados montados em plaquetas de circuito impresso denominadas mdulos de
memria (ou pentes de memria). Cada um deles abriga um grande nmero de
clulas de memria. Cada clula da MP pode assumir um dentre dois estados
diferentes (nos mdulos de memria cujas clulas so formadas por microscpicos
capacitores, estes estados so carregado e descarregado). Se associarmos um
destes estados ao valor um e outro ao valor zero, poderemos usar uma clula da
MP para armazenar um bit (bit a contrao da expresso inglesa binary digit,
ou algarismo binrio; um e zero so os dois nicos algarismos utilizados para
representar qualquer nmero no sistema numrico binrio, ou de base dois, usado
internamente nos computadores). Se agruparmos clulas adjacentes oito a oito, cada
conjunto de oito clulas pode armazenar oito bits, ou um byte. Este grupo de oito
clulas forma uma posio de memria. Ento, do ponto de vista lgico, a MP um
enorme conjunto de posies de memria, cada uma capaz de armazenar um byte.
A memria s tem serventia para armazenar dados se for possvel recuper-los mais
adiante, quando for preciso us-los. Portanto, se eu armazeno um dado em uma
posio de memria, preciso identific-la para que mais tarde eu possa voltar a ela
para buscar meu dado. Para que isso seja possvel cada posio de memria
associada a um nmero, ou endereo. Logo, se do ponto de vista fsico a memria
principal formada por um ou mais mdulos contendo circuitos integrados, do ponto
de vista lgico ela nada mais que uma imensa pilha de posies de memria
identificadas por seus endereos, cada uma com oito clulas. Veja, na Figura 2, um
diagrama esquemtico da mesma placa-me mostrada na Figura 1, porm vista sob
seu aspecto lgico. Repare na memria principal: no esquema usado como exemplo,
ela constituda por 256 posies de memria de oito clulas cada, identificadas por
seus endereos que vo de zero a 255 (nmeros em azul, mostrados tanto em decimal
quanto em binrio).
Figura 2: Placa-me, diagrama esquemtico
Agora, examinemos os demais componentes. No alto, direita, aparecem os slots,
conectores eltricos nos quais so encaixadas as placas controladoras dos perifricos,
ou dispositivos de entrada e sada. Deix-mo-los de lado por ora, eles nada tm a ver
com nosso assunto de hoje.

Em baixo, direita, aparece a UCP e seus componentes internos. J voltaremos a ela.


Antes, examinemos o barramento.

O barramento representado por um conjunto de linhas paralelas em verde, azul e


vermelho. Essas linhas interligam os trs outros elementos: o conjunto dos slots, a
CPU e a MP (mais especificamente, o circuito integrado controlador da MP, que faz
parte do barramento e que controla as operaes de leitura e escrita na memria).
O trecho do barramento representado pelas linhas verdes chamado de barramento
de dados. Nessas linhas, apenas circulam dados. O trecho do barramento
representado pelas linhas azuis o barramento de endereos. Como de esperar,
nessas linhas somente circulam endereos. Note que tanto dados quanto endereos
so nmeros representados no sistema binrio que usa apenas os algarismos um e
zero. Portanto, tanto dados como endereos circulam no barramento sob a forma de
pulsos eltricos (tenses eltricas aplicadas por um curto perodo) simultneos nas
diversas linhas, onde uma linha que transporta um pulso representa um e a que
apresenta ausncia de tenso naquele mesmo momento representa um zero. J o
trecho do barramento representado pelas linhas vermelhas o barramento de
controle. Nele tambm circulam pulsos eltricos, mas nesse caso os pulsos no
precisam necessariamente serem combinados para formar nmeros. Cada linha tem
sua funo, e os pulsos que as percorrem so interpretados como sinais de controle de
acordo com a funo da linha correspondente.

Agora, sim, vamos dar uma espiada na UCP. Ela consiste de quatro elementos: a
Unidade de Controle, a Unidade Lgica e Aritmtica (ULA), os Registradores (Regs.) e
a Unidade de Entrada e Sada (representada por um canal por onde circulam dados e
dois registradores especiais, o Registrador de Dados da Memria, ou RDM, e o
Registrador de Endereos da Memria, ou REM).

A ULA o elemento da UCP capaz de executar operaes aritmticas (somas,


subtraes, multiplicaes, etc.) e lgicas (comparaes, deslocamentos ou
complementos de bits, etc.). Ela usada quando a execuo de uma instruo exige
uma destas operaes. No momento, ela no nos interessa.

A Unidade de Controle, ou UC, a parte mais importante da UCP. Nela esto os


circuitos lgicos que so acionados para executar cada instruo ao serem energizados
pelo decodificador, que tambm faz parte dela (veja coluna anterior). a UC que
aciona a ULA, quando necessrio, e providencia as operaes de leitura e escrita na MP
e nos dispositivos de entrada e sada. Seu funcionamento bastante complexo, mas
por ora nos interessa apenas um aspecto: a UC a responsvel pela execuo das
instrues. Cada vez que uma instruo fornecida UC, esta instruo
imediatamente decodificada e executada (j veremos como se fornecem instrues
UC).
Os Registradores so posies de memria que se localizam dentro da UCP. Mas so
posies de memrias to importantes que no so identificadas por endereos
(nmeros), mas sim por nomes. Cada registrador tem um nome. Um deles, por
exemplo, o Acumulador (ACC), que geralmente recebe o resultado das operaes
efetuadas pela ULA. Registradores so usados todo o tempo pela CPU. Funcionam
como uma espcie de bloco de rascunho. Neles so armazenados operandos das
operaes aritmticas ou lgicas, resultados intermedirios, endereos, etc. Alguns so
to importantes que desempenham exclusivamente uma funo. Como os dois
assinalados na Figura 2, o Ponteiro de Instrues (PI) e Registrador de Instrues (RI),
que desempenham papel fundamental na execuo dos programas, como j veremos.
Note que o RI o nico registrador que se comunica diretamente com a Unidade de
Controle.
A Unidade de Entrada e Sada da UCP controla no apenas a entrada e sada de dados
e endereos como tambm efetua a comunicao entre seus componentes internos.
Repare que ela comunica todos os registradores com a ULA e com seus dois
registradores REM e RDM.

A funo do REM conter o endereo da posio da MP onde se realizar cada


operao de leitura ou escrita. Toda a vez que a UCP precisa se comunicar com a MP,
seja para armazenar, seja para ler um dado em uma certa posio de memria, o
endereo desta posio de memria escrito no REM e enviado para a controladora da
MP atravs do barramento de endereos. A unidade de controle da MP ento aponta
seus circuitos internos para a posio de memria correspondente a este endereo.
A funo do RDM servir de passagem para dados que entram e saem da UCP.
Quando um dado vai ser escrito na MP, ele antes transcrito no RDM. A controladora
da MP l ento no REM o endereo da posio da memria em que o dado dever ser
escrito e, atravs do barramento de dados, o envia do RDM para a controladora da MP,
que providencia a escrita. Quando a operao de leitura, a controladora da MP l no
REM o endereo da posio de memria de onde o dado dever ser lido, vai buscar o
dado no referido endereo e o transporta atravs do barramento de dados,
escrevendo-o no RDM. Dados somente podem entrar e sair da UCP passando pelo
RDM. Pronto, agora que conhecemos os diversos elementos envolvidos, poderemos
entender como programas so executados.

Embora a UCP seja eventualmente chamada de circuito inteligente, sua inteligncia


bastante limitada. Na verdade, ela s sabe fazer uma coisa: executar continuamente
o chamado ciclo de busca e execuo. E ela faz isso durante todo o tempo em que
est energizada, ou seja, desde o momento em que o micro ligado at ele ser
desligado. E exclusivamente atravs da repetio contnua do ciclo de busca e
execuo que a UCP consegue executar todos os programas. Vejamos ento no que
consiste este ciclo.

O ciclo de busca e execuo consiste de trs passos que so executados


seqencialmente e repetidos exausto. Vamos examin-lo passo a passo.
Imaginemos que, no momento em que comea a nossa observao, o Ponteiro de
Instruo (PI) contenha o valor binrio 01111001 (correspondente ao decimal 121)
em suas oito clulas de memria. Imaginemos ainda que na posio da MP cujo
endereo 121 exista o valor 00001011, como mostrado na Figura 3. E imaginemos
ainda que as posies de memria imediatamente acima da correspondente ao
endereo 121 contenham os valores mostrados na Figura 3, que exibe o estado inicial
dos registradores da UCP e das posies da MP ao comearmos a observar o ciclo. O
contedo das demais posies da MP, assim como dos demais registradores da UCP,
no so relevantes para nossa discusso e podem ser quaisquer.

Figura 3: Estado inicial dos registradores e da MP


Uma posio de memria, esteja ela na MP ou nos registradores, s pode conter um
nmero expresso no sistema binrio (no exemplo, tanto as posies de MP quanto os
registradores tm oito clulas, ou seja, uma largura de oito bits, o que significa que
podem conter um byte; os registradores dos modernos microprocessadores em geral
tm uma largura de 64 bits, ou oito bytes, mas o do nosso exemplo, embora
elementar, serve perfeitamente para ilustrar o ciclo de busca e execuo). Esse
nmero, no entanto, pode ter diversos significados ou funes, dependendo de como
seja interpretado.

Seno vejamos: todos os dados processados pelo computador so expressos sob a


forma de nmeros (ou seja, digitalizados; veja as colunas anteriores sobre
digitalizao de sons). Portanto, um nmero contido em uma posio de memria pode
representar um dado.

Por outro lado, como vimos na coluna passada, as instrues que o microprocessador
decodifica e executa, tambm so nmeros. Nos primrdios da era dos computadores
havia uma memria especfica para conter instrues e uma outra, independente,
apenas para conter dados. Porm, durante o final da primeira metade do sculo
passado, um genial matemtico nascido na Hungria e naturalizado americano, John
von Neumann (pronuncia-se fn niman), percebeu que isso complicava
desnecessariamente a arquitetura (ou organizao interna) dos computadores e
sugeriu que tanto os dados quanto as instrues passassem a ser armazenadas na
mesma memria, ou seja, na MP. Isso deu origem chamada arquitetura de von
Neumann. Hoje em dia, todos os computadores modernos so mquinas de von
Neumann, ou seja, mquinas que armazenam tanto dados quanto instrues no
mesmo espao de endereamento de memria. Portanto, um nmero contido em uma
posio de memria tambm pode representar uma instruo.

Finalmente, endereos de posies da memria principal tambm so nmeros. E


quando se deseja armazenar a referncia a uma determinada posio da MP,
armazena-se seu endereo em outra posio de memria. Portanto, um nmero
contido em uma posio de memria tambm pode representar um endereo. As
posies de memria, quando utilizadas para armazenar endereos de outras posies
de memria, recebem a designao genrica de Ponteiro.

Portanto, fica fcil concluir que o registrador denominado Ponteiro de instrues, ou


PI, contm um endereo. Mais especificamente: contm o endereo da posio da MP
que armazena a prxima instruo a ser executada.

Ento, o primeiro passo do ciclo de busca e execuo consiste justamente em ir buscar


esta instruo na memria principal e transcrev-la no registrador denominado
Registrador de Instrues, ou RI.

Este passo, o da busca da instruo, est representado na Figura 4. A linha azul


mostra o local (posio da MP) para o qual o PI aponta, enquanto a linha verde
representa a tranporte do contedo daquela posio de memria para o RI.
Figura 4: Representao do passo busca.
Repare que, concludo este passo, o valor 00001011, contido na posio de memria
apontada pelo PI (de endereo 121, ou 01111001) aparece transcrito no interior do
registrador de instruo, ou RI.

O segundo passo um passo intermedirio. Ele consiste simplesmente em ajustar o


ponteiro de instrues de forma a faz-lo apontar para o endereo da posio da MP
que contm a instruo seguinte, a prxima a ser executada. Em princpio, essa
instruo a que fica na posio de memria subseqente da que acabou de ser
transferida para o RI. Esclarecendo: se a instruo a ser executada neste ciclo a
contida na posio de MP de endereo 121, a prxima ser aquela armazenada na
posio cujo endereo 122. Portanto, esse passo intermedirio nada mais faz que
incrementar (somar um, aumentar em uma unidade) o contedo do PI. Veja o
resultado na Figura 5. O registrador PI contm agora o nmero 01111010, que
corresponde ao decimal 122. Note que a seta azul, que mostra o endereo da posio
de memria para a qual PI est apontando, agora aponta para o endereo 122.
Figura 5: Segundo passo: incrementando PI
Note que PI foi incrementado antes que a instruo correspondente a este ciclo tenha
sido executada. E h boas razes para isso. Se a instruo fosse executada e somente
depois disso PI fosse incrementado, a instruo subseqente seria obrigatoriamente a
contida na posio de memria seguinte (no exemplo, a de endereo 122). Mas
incrementar o ponteiro antes de executar a instruo enseja que o contedo de PI seja
alterado durante a execuo da instruo. Ou seja: o prprio programa pode controlar
seu fluxo. Se no fosse isso, todo programa seria executado ordenadamente da
primeira ltima instruo, inexoravelmente, sem que o usurio pudesse alterar esta
ordem. justamente a possibilidade de que uma instruo altere o contedo do PI,
decidindo assim que instruo ser executada seguir, que torna a arte da
programao to flexvel e fascinante. Vale a pena pensar um pouco sobre isso para
perceber a imensa complexidade que se esconde por detrs de um conceito to
singelo.
Executados os dois primeiros passos, o terceiro o mais simples de ser descrito,
embora seja de fato o mais complexo de ser completado pela UCP: o nmero contido
no RI (no exemplo, o valor 00001011, transcrito da posio de memria 121)
introduzido na Unidade de Controle, interpretado como uma instruo, que
imediatamente executada. Este terceiro e ltimo passo do ciclo de busca e execuo
o passo da execuo. Veja sua representao grfica na Figura 6.
Figura 6: Representao do passo execuo.
O que esta instruo faz, como ela executada, que tarefas intermedirios envolve,
nada disso relevante para a anlise do ciclo de busca e execuo. A nica coisa que
importa que este ciclo, constitudo pelos trs passos acima descritos, repetido
indefinidamente pela UCP, ciclo aps ciclo, durante todo o tempo em que o micro
permanece ligado.

Agora podemos entender porque pode-se armazenar dados, endereos e instrues no


mesmo espao de memria, j que todos so nmeros. O micro funciona de forma
absolutamente automtica, introduzindo na UC o nmero contido no RI, interpretando-
o como uma instruo que decodificada e executada. No importa como o nmero foi
parar l: se ele est no RI, ser considerado uma instruo que ser executada (o que
explica alguns travamentos do computador: um programa mal concebido pode colocar
no RI um nmero errado e o resultado pode ser desastroso).

Na medida que os ciclos de busca e execuo so repetidos, as instrues so


executadas uma aps a outra e o programa segue seu curso.

E se voc entendeu como funciona o ciclo de busca e execuo, certamente j


descobriu um ponto fundamental: para que uma instruo seja executada, preciso
que ela seja lida em uma das posies da MP e transferida para o RI. A prpria
natureza do ciclo de busca e execuo impede que qualquer instruo seja executada
se ela no for lida de uma posio da MP. Ou seja: para que um programa seja
executado, preciso que suas instrues sejam antes transcritas para a MP.
Quem faz esta transcrio? Ou seja, quem pe o programa na MP?
Quando descobrirmos isso na prxima coluna, estaremos a um passo de decifrar o
aparente mistrio do boot.