ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1
Índice 1. Introdução...3 1.1. O que é um Computador?... 3 1.2. Máquinas Multiníveis... 3 2
1. INTRODUÇÃO 1.1 O QUE É UM COMPUTADOR? Para estudarmos como um computador funciona, e como os seus vários componentes são organizados para possibilitar esse funcionamento, deveríamos primeiramente definir o que é um computador, o que não é uma tarefa simples. Segundo o Dicionário Houaiss 1, a definição de computador é: computador Datação 1789 cf. MS1 Acepções substantivo masculino 1 O que computa; calculador, calculista; 2 Rubrica: informática. Máquina destinada ao processamento de dados; dispositivo capaz de obedecer a instruções que visam produzir certas transformações nos dados, com o objetivo de alcançar um fim determinado. É claro que quem utiliza um computador, seja ele um computador doméstico, parte de um grande ambiente corporativo ou mesmo um telefone celular, sabe que tal definição nem de longe corresponde à capacidade que um desses dispositivos possui. O computador (de todos os portes imagináveis) hoje desempenha as funções mais diversas e se tornou parte do cotidiano de boa parte da população (mesmo que ela não saiba disso). O problema é que, em seu interior, o computador é uma máquina que consegue fazer muito poucas coisas. Somar e comparar números, mover valores de uma área de memória para outra e não muito mais que isso é o que o computador realmente consegue fazer, não importa o quão miraculoso ele nos pareça quando olhamos do lado de fora. Chega a ser paradoxal que um equipamento limitado como esse consiga ser capaz de ser usado em tantas aplicações. Mas não existe mágica aqui, apenas um longo e constante processo evolucionário que começou no século XVII e ainda está longe de acabar. Explicar parte dos processos que tornam isso possível é objetivo desta apostila. 1.2 MÁQUINAS MULTINÍVEIS Um computador é uma máquina que pode realizar um determinado conjunto de funções. As pessoas que utilizam os computadores desejam fazer certas atividades que não correspondem diretamente a esse conjunto de funções. 1 Disponível em <http://houaiss.uol.com.br/>. Consultado em 30/11/2008. 3
Para que seja possível que os usuá rios consigam executar as funções de que necessitam, é necessário que haja um processo de tradução. Os primeiros computadores que foram construídos só podiam ser utilizados pelos engenheiros que os construíram. Era necessário saber exatamente como os circuitos eletrônicos (ou eletromecânicos) se interligavam para que se conseguisse realizar as atividades mais simples. À medida que surgiu a necessidade de expandir a utilização dos computadores, foi necessário criar mecanismos que possibilitassem aos usuários realizar atividades sem que fosse necessário um conhecimento profundo da arquitetura desses mecanismos. Imaginemos que o computador possa realizar uma quantidade limitada de instruções ou comandos. Chamemos esse conjunto de linguagem de máquina. Figura 1. Tradução entre os níveis de um computador A linguagem que os usuários utilizam não pode se limitar à linguagem de máquina, ela precisa se aproximar da linguagem humana para atender problemas do mundo real. Chamemos esta segunda linguagem de linguagem de alto nível. Para que possa haver uma correspondência entre as duas linguagens, é necessário que o segundo conjunto seja traduzido para o conjunto inicial. Esse processo ocorre diversas vezes dentro de um computador. A história da evolução dos computadores é um processo de adição de níveis de tradução. Se os primeiros computadores só podiam ser utilizados pelos engenheiros que os construíram, os computadores atuais podem ser utilizados por pessoas com um conhecimento técnico mínimo, se tanto. Isso só é possível porque as necessidades desses usuários são submetidas a vários níveis de tradução até chegar a uma instrução que o computador consiga efetivamente executar por meio de impulsos elétricos. Esse processo de evolução nos levou ao computador contemporâneo, que possui diversos níveis, por isso o denominamos máquina multiníveis. A interação entre cada um dos níveis corresponde a um tipo de tradução. O nível 0, chamado lógico digital, corresponde aos circuitos eletrônicos que efetivamente realizam o processamento de informações na forma de impulsos elétricos dentro do processador. O nível 1 corresponde à microarquitetura do processador, que são elementos internos do processador: registradores (que são a memória de alta velocidade interna do processador) e a ULA unidade lógica aritmética (que é o elemento do processador que realiza operações aritméticas simples). Esses registradores são conectados à ULA para formar um caminho de dados, através do qual os dados transitam para dentro e para fora do processador. Uma operação normal do caminho de dados consiste em 4
selecionar o conteúdo de um ou dois registradores, submetê-lo à ULA e movimentar o resultado para outro registrador. O nível 2 corresponde ao conjunto de instruções suportado pelo processador. O conjunto de instruções corresponde aos comandos que o processador pode receber de fontes externas e é determinado pelo projeto do processador, e normalmente não pode ser alterado. O conjunto de instruções também é comum entre os processadores de uma mesma família, permitindo assim a interoperabilidade de programas e sistemas operacionais dentro dessa família. O nível 3 corresponde ao sistema operacional. O SO fornece uma plataforma que possibilita que os programas não tenham que interagir diretamente com o hardware. Aliás, isto é mandatório em se tratando de sistemas multitarefa. Não é possível existir um sistema multitarefa sem que exista um elemento arbitrando o acesso ao hardware essa função é do sistema operacional. Em sistemas computacionais modernos, todo acesso ao hardware é feito por meio do sistema operacional. O nível4 corresponde à linguagem de montagem. A linguagem de montagem, ou assembly, é uma linguagem dependente da plataforma, ou seja, processadores diferentes ou de famílias diferentes possuem linguagens de montagem diferentes incompatíveis entre si. Um programa escrito em linguagem de montagem só pode ser usado em uma determinada plataforma ou família de processadores. O nível 5 corresponde à linguagem orientada a problemas, ou linguagem de alto nível. Esse tipo de linguagem independe da plataforma em que for usada; ela deve ser traduzida (compilada) para um formato que o sistema operacional consiga interpretar e enviar para os níveis mais baixos da máquina multiníveis. Figura 2. Tradução entre os níveis de um computador contemporâneo 5