Você está na página 1de 12

1

Captulo 1 Introduo ao Estudo dos Computadores


A execuo de instrues um dos pontos centrais num sistema computacional. Vrios aspectos na definio e implementao da arquitetura de um computador so influenciados pelas caractersticas de cada uma das instrues. Este captulo discute alguns conceitos bsicos envolvidos no funcionamento de um computador eletrnico digital. Um dos pontos que dificulta a compreenso do seu funcionamento justamente o fato deles serem eletrnicos. Grande parte do trabalho destes sistemas realizado por sinais eltricos e por componentes eletrnicos. O usurio comum, em geral, no est familiarizado em este tipo de operao.

1.1 Introduo
Os computadores so mquinas que podem ser utilizadas eficientemente na soluo de alguns tipos de problemas. A deciso de usar ou no o computador na soluo de um problema depende da necessidade do usurio. Em geral, essa deciso baseada na complexidade do problema a ser resolvido. Por exemplo, suponha que desejamos calcular uma equao algbrica do vigsimo grau. Sua soluo manual quase impossvel devido a grande quantidade de clculos necessrios obteno da soluo numrica. Outro aspecto relevante nesta deciso o volume de dados a serem processados. As aplicaes que exigem a manipulao de uma grande quantidade de informaes se beneficiam dos sistemas computacionais. interessante observar que podemos identificar quatro tipos de problemas se considerarmos a sua complexidade e a quantidade de informaes que devem ser manipuladas, que so os problemas de: a) natureza simples e com baixo volume de dados; b) natureza simples e com grande volume de dados; c) natureza complexa e com baixo volume de dados; d) natureza complexa e com grande volume de dados; Os problemas de natureza simples e com pequena quantidade de informaes no precisam necessariamente do uso do computador para serem solucionados. Entretanto, os demais devem necessariamente utiliz-lo na obteno de uma soluo em um intervalo de

tempo vivel. Assim, os computadores so mquinas que podem ser utilizadas eficientemente na soluo dos tipos de problemas que possuem uma grande complexidade ou um grande volume de dados. Para que um problema possa ser resolvido por computador necessrio criar um algoritmo computacional. Um algoritmo computacional composto por uma seqncia de passos (aes) que expressam a soluo do problema. As principais fases de um algoritmo para a obteno de uma soluo computacional so: a) elaborao do algoritmo computacional referente ao problema; b) codificao do algoritmo computacional em uma linguagem de alto nvel (programa fonte); c) traduo do programa fonte para o cdigo correspondente em linguagem de mquina (programa objeto); d) execuo do programa objeto pelo computador. A traduo de um programa fonte para um programa objeto, pode ser realizada de duas maneiras: interpretando ou compilando o programa fonte. Na verdade, a interpretao no cria um programa objeto. Cada instruo expressa em linguagem de alto nvel interpretada e executada diretamente pelo hardware do computador. No processo de compilao um programa fonte, composto por instrues de alto nvel, transformado em instrues bsicas de um processador. Essas instrues bsicas que so executadas diretamente pelos circuitos eletrnicos do computador.

Exerccio 1 - Elabore, codifique, em uma linguagem de programao sua escolha, e


execute pelo menos um dos seguintes algoritmos: (a) Encontrar as razes reais de uma equao do segundo grau. Executar o programa com trs diferentes valores de entrada. (b) Listar os 200 primeiros nmeros primos. (c) Mostrar a transposta uma matriz quadrada de dimenso N.

1.2 Conceitos Bsicos


Organizao Tpica de um Computador A funo de um sistema de computador atender as solicitaes de servio dos usurios para terem seu problema resolvido. Qualquer sistema de computador possui trs componentes bsicos: uma unidade central de processamento (CPU ou processador), um sub-sistema de memria e um sub-sistema de entrada e sada de dados. Estes componentes esto interligados atravs de um barramento.

A funo do processador controlar todo o sistema e realizar todas as operaes sobre os dados, de acordo com o indicado pelas instrues no cdigo do programa. A memria principal armazena as instrues que so executadas pelo processador, e os dados que sero manipulados. As interfaces de entrada e de sada so as portas de comunicao para o mundo externo, s quais esto conectados os dispositivos perifricos tais como vdeo, teclado, discos e impressora. atravs do barramento que o processador se comunica com a memria principal e as interfaces de entrada/sada. A Figura 1.1 mostra a organizao tpica de um computador pessoal ou estao de trabalho que fazem parte do seu cotidiano.

Processador

Memria Principal

Interface de E/S

Interface de E/S

Interface de E/S

. Disco Vdeo Rede

Figura 1.1. Organizao tpica de um computador.

Inicialmente necessrio definir como os problemas podem ser apresentados ao sistema. Isto , qual a linguagem de comunicao entre os usurios e o sistema computacional. Definida uma linguagem comum, bastaria entregar na entrada do sistema a descrio do problema, e aguardar na sua sada o resultado do pedido. Neste caso precisamos de um sistema capaz de manipular informaes em todas as reas de atuao dos usurios. O sistema receber um determinado problema e dever providenciar a sua soluo. Note que o sistema deve estar preparado para solucionar uma diversidade enorme de problemas.

Contexto de Software Em geral, atravs das linguagens de alto nvel que os usurios costumam especificar os problemas que devem ser solucionados. Como exemplo de linguagens de alto nvel podemos citar a linguagem C, Pascal, Fortran entre outras. A Figura 1.2 situa o conjunto de instrues do processador dentro dos diversos nveis de software existentes em um sistema de computao.
Programa em Linguagem de Alto Nvel Comandos de Alto Nvel

Compilador

Programa em Linguagem Assembly

Instrues da Arquitetura

Assembler

Linker/Loader

Programa Executvel

Figura 1.2. O conjunto de instrues dentro do contexto de software.

O compilador traduz o programa de alto nvel em uma seqncia de instrues de processador. O resultado desta traduo o programa em linguagem de montagem ou linguagem de mquina (assembly language). A linguagem de montagem uma forma de representar textualmente as instrues oferecidas pela arquitetura do processador. Cada arquitetura possui uma linguagem de montagem particular. No programa em linguagem de montagem, as instrues so representadas atravs de mnemnicos, que associam o nome da instruo sua funo, como por exemplo, ADD ou SUB, isto soma e subtrao, respectivamente. O programa em linguagem de montagem convertido para um programa em cdigo objeto pelo montador (assembler). O montador traduz diretamente uma instruo da forma

textual para a forma de cdigo binrio. sob a forma binria que a instruo carregada na memria e interpretada pelo processador. Os programas complexos so normalmente estruturados em mdulos. Cada mdulo compilado separadamente e submetido ao montador, gerando diversos mdulos em cdigo objeto. Estes mdulos so reunidos pelo ligador (linker), resultando finalmente no programa executvel que carregado na memria. A comunicao entre um sistema de computador e os usurios deve ser realizada atravs de uma linguagem simples. Isto , a comunicao deve ser composta de pequenos passos, cada um deles bem fcil de ser executado. Assim, o problema submetido ao sistema deve, ento, conter uma srie de passos. Dessa forma, quando os passos forem executados na seqncia eles podem produzir o resultado desejado. O programa do usurio transformado para uma linguagem de baixo nvel, adequada ao processador, para que possa ser executado e produzir os mesmos resultados do programa escrito em linguagem de alto nvel. Para que um computador possa executar um programa necessrio que esse programa esteja armazenado na memria. A memria um dispositivo eletrnico capaz de armazenar instrues e dados. Ela pode receber e armazenar informaes e fornec-las quando solicitada. Um programa escrito em linguagem de baixo nvel, ento, composto de um conjunto de instrues de processador muito simples de serem executadas. Cada uma destas instrues composta necessariamente por um cdigo de operao. Esse cdigo de operao identifica de maneira inequvoca a operao a ser realizada, e, dependendo da instruo pode necessitar de operandos. Em resumo, podemos dizer que o cdigo de operao de uma instruo especifica a ao que deve ser realizada quando esta instruo for executada. J o operando ou os operandos so elementos que complementam a ao. No computador os operandos podem ser referenciados por seu valor ou por seu endereo. No caso da referncia ao operando ser realizada por valor, a prpria instruo contm um nmero que interpretado como sendo o valor numrico do operando. No caso da referncia ser realizada por endereo, a instruo contm um nmero que interpretado como o endereo da locao de memria que o operando ocupa. Tema para reflexo Discuta as diferenas entre endereo e contedo de endereo da memria.

Passos de Execuo de uma Instruo Aps o programa ser armazenado na memria, em uma srie de endereos consecutivos, podemos iniciar o procedimento de soluo do problema. O primeiro endereo de um programa contm necessariamente uma instruo de processador. Para realizar o processamento, propriamente dito, necessrio buscar a instruo que estiver armazenada no primeiro endereo de memria onde se encontra o programa. Em seguida, essa instruo decodificada. Em outras palavras, o processador define o cdigo de operao daquela instruo em particular. O passo seguinte o de execuo da instruo, seguido de um outro passo para armazenar o resultado, caso seja necessrio. Tema para reflexo Porque existem diferentes instrues de soma ? Resumindo podemos afirmar que a execuo de uma instruo realizada com quatro passos bsicos: busca; decodificao; execuo e resultado. Um programa executado quando colocamos em loop esses quatro passos bsicos.

Exerccio 2 - Defina:
(a) Instruo de processador; (b) Operando referenciado por valor; (c) Operando referenciado por endereo; (d) Programa armazenado; (e) Ciclo de execuo de instrues.

1.3 Arquitetura deVon Neumann


A Figura 1.3 mostra o modelo de computador proposto em 1940 por John von Neumann, um matemtico hngaro, naturalizado americano. Sua contribuio para o desenvolvimento da Cincia da Computao foi significativa, a ponto de tornar seu nome sinnimo da arquitetura de um computador uniprocessador (mquina de von Neumann). O modelo de von Neumann ainda representa a base dos projetos das mquinas atuais. Na Figura 1.3 podemos identificar os componentes responsveis pelo processamento, armazenamento e entrada e sada das informaes. A diferena entre os computadores antigos e os atuais est na sua tecnologia de fabricao. Considerando o desenvolvimento da tecnologia de implementao dos circuitos eletrnicos podemos dividir os computadores em geraes. As mquinas da primeira gerao eram fabricadas com vlvulas, as da segunda com

transistores, as da terceira com circuitos integrados de densidade mdia e as da quarta com circuitos integrados de alta densidade.

Unidade de Memria

Unidade de Entrada

Unidade de Controle

Unidade de Sada

Unidade Lgica Aritmtica


Figura 1.3. O modelo de von Neumann.

1.3 Formas de Representao da Informao


Os computadores eletrnicos digitais so assim denominados porque so equipamentos construdos a partir de circuitos eletrnicos. Esses computadores so capazes de realizar clculos, operaes lgicas e movimentao de dados entre seus dispositivos de armazenamento. Os sistemas digitais, em seu nvel mais baixo, representam as informaes atravs de dgitos. Num nvel mais alto, uma codificao com estes dgitos formam diferentes combinaes que podem representar qualquer tipo de informao. Os sistemas digitais so constitudos por uma combinao de dispositivos que manipulam informao representada por dgitos. Na maioria das vezes as informaes so representadas internamente por sinais eltricos binrios (5 Volts = 1 e 0 Volts = 0). Isto , eles s assumem dois valores associados a 0 e 1. Includo nesta categoria, o computador digital um sistema digital binrio, pois a informao representada nele atravs dos dgitos binrios.

Em resumo, um computador eletrnico digital processa informaes que s podem assumir estados discretos. O termo digital significa que a informao processada neste tipo de computador s pode ser representada por um nmero fixo de valores. Adicionalmente, o fato do nmero de valores disponveis para representar a informao ser igual a dois, faz com que o sistema digital seja denominado de sistema digital binrio.

Exerccio 3 - Mostre como se codifica os nmeros decimais em nmeros binrios. 1.4 Outros Conceitos Bsicos
Como citado anteriormente, podemos dizer que um sistema de computador composto por trs componentes bsicos: o processador, o sub-sistema de memria e o sub-sistema de entrada e sada. Alm disso, podemos dizer que os quatro passos bsicos que compem a execuo de uma instruo so: busca, decodificao, execuo e resultado. Esses quatro passos so repetidos, formando ciclos de execuo de instrues, desde a primeira at a ltima instruo do programa. Todas as atividades realizadas pelo computador so executadas em tempos bem definidos. A seguir definimos resumidamente alguns conceitos importantes para o nosso entendimento, e que so apresentados mais detalhadamente durante o curso. Sinal de clock Para coordenar as atividades entre os componentes bsicos que compem o sistema de um computador existe um componente eletrnico que gera um sinal de clock. Mais especificamente gera um sinal peridico que alterna entre tenses altas e baixas (0s e 1s). A velocidade do clock medida em hertz ou ciclos por segundo. Um sinal de 1 Hz alterna valores altos e baixos uma vez em cada segundo. J um sinal de 1 MHz alterna esses valores um milho de vezes por segundo. Diz-se, portanto, que a freqncia destes sinais igual a 1 Hz e 1 MHz, respectivamente. O tempo entre duas repeties sucessivas do clock denominado perodo do clock, sendo o perodo o inverso da freqncia. A Figura 1.4 mostra um ciclo de clock. f = 1/ perodo Clock perodo
Figura 1.4. O Ciclo de clock.

O perodo do sinal de clock a menor unidade de tempo perceptvel por um sistema digital. Em outras palavras, em sistemas digitais, todas as aes ocorrem em intervalos de

tempo que so mltiplos inteiros do perodo do clock da mquina. Portanto, o ciclo de execuo de instrues realizado em um tempo que um mltiplo inteiro do perodo do clock da mquina. Os processadores modernos conseguem executar milhes de instrues em um segundo. A freqncia do sinal de clock gira em torno de 800 MHz nas mquinas com um custo acessvel maioria dos usurios. Embora j estejam disponveis processadores com mais de 1 GHz, porm com custo ainda elevado para a maioria dos usurios comuns. Organizao Genrica de um Processador Uma organizao seja de um processador, ou sistema de computador, deve ser definida atravs dos seus componentes, da funcionalidade de cada um desses componentes e como eles interagem entre si. A execuo de uma instruo tpica, tal como a soma de dois valores, requerer um conjunto de aes separadas (busca na memria, decodificao, uso da unidade lgica aritmtica, armazenamento), cada uma delas ocorrendo em um perodo do clock do sistema. A Figura 1.5 mostra uma organizao genrica de um processador.

ALU Estado R0 ..... Rn


Unidade de Controle

PC

MAR

MBR

IR

Figura 1.5. Organizao genrica de um processador.

Um processador pode ser visto como possuindo duas sees: a seo de controle e a seo de processamento. na seo de processamento que as informaes so manipuladas. A seo de controle responsvel por enviar sinais seo de processamento para controlar cada um de seus componentes.

10

A seo de controle composta por uma unidade de controle e um registrador de instrues. A seo de processamento composta por diversos registradores e uma ALU (Arithmetic Logic Unit). O registradores podem ser classificados como registradores de propsito geral (R0 a Rn), propsito especfico (estado, PC program counter, IR instruction register) e temporrios ou auxiliares ( MAR Memory Address Register, MBR Memory Buffer Register). A ALU responsvel por manipular todas as informaes, isto , realizar as operaes lgicas e aritmticas propriamente ditas. Associado a ela existe um registrador de estado para armazenar as informaes sobre os resultados produzidos pela ALU. O registrador PC armazena o endereo de memria da prxima instruo a ser executada. Os registradores MAR e MBR so responsveis por realizar a transferncia de informaes entre o processador entre a memria. As instrues so armazenadas na memria, da mesma maneira que os dados, e recuperadas uma a uma no momento de sua execuo. Vale observar que os dados necessrios execuo de tais instrues tambm esto na memria, sendo recuperados exatamente da mesma maneira que as instrues. A nica diferena que a instruo quando vem da memria armazenada no registrador MBR e depois transferida para o IR. O dado, que tambm armazenado no MBR, depois transferido para um registrador de propsito geral. As instrues permanecem no IR enquanto so executadas. As instrues, os dados e os endereos so sempre formados por cadeias de 0s e 1s. Em ltima anlise eles formam uma cadeia binria. Uma determinada cadeia binria armazenada na memria de um processador pode ser interpretada de vrias formas diferentes. A Tabela 1.1 mostra como a cadeia de bits 10100000 pode ser interpretada de diferentes maneiras pelo processador 8086 da Intel. Contedo da Memria 10100000 10100000 10100000 10100000 Significado A 160 MOVE Cdigo Caracter EBCDIC Nmero inteiro Caracter ASCII-8 Instruo Intel 8086

Tabela 1.1. Exemplos de significados de cadeias binrias.

O valor binrio 1010000 pode ser interpretado pelo processador 8086 como um caracter EBCDIC, um nmero inteiro, um caracter ASCII, ou como uma instruo de processador.

11

O processador capaz de interpretar a cadeia binria armazenada em determinado endereo de memria, a partir do endereo da primeira instruo do programa a ser executado. Todo processador projetado de modo a carregar no PC (Program Counter) um determinado valor, sempre que a mquina for ligada. Este valor corresponde ao endereo de memria onde est armazenada a primeira instruo de um programa de inicializao do sistema. To logo este endereo tenha sido carregado no PC, o processador inicia a busca da cadeia de bits armazenada no endereo inicial, para em seguida transferi-la para o IR. Enquanto o processador estiver aguardando que a memria envie a cadeia de bits que representa a instruo para o MBR, ele atualiza o valor do PC. Esta atualizao faz com que o PC aponte para a prxima instruo a ser executada. Para se ter uma idia de como uma cadeia binria pode ser aumentada para tambm aumentar a funcionalidade de um conjunto de instrues citamos, a seguir, a quantidade de instrues de alguns dos processadores antigos da famlia da Intel. Os processadores 8088 e 8086 interpretam em torno de 120 instrues. Isto significa que o decodificador associado ao IR reconhece 120 cadeias binrias diferentes, transformando cada uma delas em um conjunto de aes discretas. Cada cadeia de bits responsvel pela execuo de uma instruo. O 80286 acrescenta 23 instrues ao conjunto de instrues do 8086, executando, portanto, 143 instrues. J o 80386 executa em torno de 200 instrues diferentes. Barramento Define-se barramento como um caminho eltrico estabelecido entre dois ou mais componentes de um sistema de computador. Os sistemas possuem trs barramentos: o de dados, o de endereos e o de controle. Cada um destes barramentos formado por um nmero de fios diferentes. Alm disso, os barramentos podem ser mantidos em trs estados que correspondem ao nvel lgico 1, ao nvel lgico 0, e um estado neutro. O estado neutro no representa nenhum dos dois nveis lgicos mencionados. Ele pode ser interpretado como se o componente ligado a ele estivesse desconectado do sistema. A seguir apresentamos uma descrio de cada um dos trs barramentos envolvidos na interligao dos componentes de um sistema de computador. Barramento de dados: um barramento bidirecional, onde circulam as informaes que trafegam entre o processador e a memria principal. Neste barramento circulam tanto as instrues, sempre no sentido da memria para o processador, quanto os dados, estes em ambos os sentidos. O registrador MBR est diretamente ligado a este barramento. Isto , as informaes que so transferidas entre o processador e a memria passam necessariamente pelo MBR. O tamanho deste barramento indica o tamanho da palavra (a quantidade mxima de bits) num acesso memria.

12

Barramento de endereos: um barramento unidirecional, no sentido do processador para a memria ou para as interfaces de entrada e sada. Por ele circulam os endereos das informaes nos acessos a esses componentes. O registrador MAR armazena o endereo das informaes a serem acessadas e est diretamente ligado ao barramento de endereos. O N tamanho do MAR est associado ao tamanho da memria. Para uma memria com 2 endereos o MAR possui N bits. Barramento de controle: um barramento bidirecional, por onde trafegam os sinais necessrios ao controle da troca de informaes entre o processador e os demais componentes do sistema. Como exemplo de sinais de controle podemos citar os que controlam a leitura, a escrita ou a espera por um dispositivo. Alm das memrias, tambm esto ligados aos barramentos um conjunto de interfaces de entrada e sada. Cada interface de entrada e sada possui conectado a ela um dispositivo de entrada e sada. Essas interfaces tornam transparente para o processador os detalhes fsicos dos dispositivos de entrada e sada do computador. Em um computador existem vrios dispositivos perifricos como o teclado, o vdeo, o disco, a impressora entre outros. Unidades Computacionais Bsicas Quando nos referimos capacidade de processamento do processador, a capacidade de armazenamento da memria ou a transferncia de informaes entre dispositivos, costumamos utilizar diferentes unidades de medidas e seus mltiplos. A seguir esto exemplificadas, na Tabela 1.2, as unidades mais comuns usadas quando nos referimos a estes componentes.
Capacidade de Processamento (segundos) um Mili = 10 (ms) um Micro = 10 um Pico = 10
-6 -3

Capacidade de Armazenamento (bytes) um Kilo = 2


10 20

Transferncia de Informao (ordem de grandeza) Tempo de acesso a disco: ms Tempo de acesso a memria: s Ciclo de mquina: s / s Execuo de instrues: s / s

(s) (ps)

um Mega = 2 um Tera = 2

um Nano = 10-9 (s)


-12

um Giga = 230
40

Tabela 1.2. Exemplos de unidades de medidas utilizadas em sistemas computacionais.

Bibliografia
Computer Organization and Design: The Hardware/Software Interface David Patterson and John Henessy, Morgan Kaufmann Publishers, Inc. Organizao e Projeto de Computadores: A Interface de Hardware e Software David Patterson and John Henessy LTC Editora.

Você também pode gostar