Arquitetura de Computadores Sistemas de Informao Prof. Rafael Teixeira rafael.teixeira@foa.org.br 1 Introduo
Um computador digital uma mquina capaz solucionar problemas por meio da execuo de instrues que lhe so fornecidas.
Programa uma seqncia de instrues que descrevem como executar uma tarefa.
Os circuitos eletrnicos de cada computador podem reconhecer e executar diretamente um conjunto limitado de instrues simples. Para serem executados, todos os programas precisam ser convertidos para esta linguagem primitiva, chamada linguagem de mquina ou linguagem de montagem (assembly language). Esta a linguagem que a mquina realmente entende. Trata-se do cdigo binrio, correspondente a sinais eltricos, que o que uma mquina realmente capaz de executar.
Ao se projetar um computador se decide sobre quais dessas instrues primitivas devem estar presentes. Geralmente os projetistas tentam fazer as instrues primitivas to simples quanto possveis, consistentes com o uso pretendido e necessidades de desempenho, daquele projeto de mquina, a fim de reduzir a complexidade e o custo da eletrnica empregada. Devido a esta simplicidade as linguagens de mquinas tornam-se difceis e tediosas de usar para a realizao de tarefas mais complexas. Este tipo de linguagem tambm chamado de linguagem de baixo nvel, pois esta mais prxima do hardware (eletrnica da mquina).
Para facilitar a comunicao dos seres humanos com a mquina, foram desenvolvidas linguagens mais prximas daquelas usadas pelos humanos, as chamadas linguagens de alto nvel (C, C++, Delphi, Pascal, Fortran, JAVA etc.). Estas linguagens precisam ser convertidas para linguagem de mquina para serem executadas. H dois mtodos de converso das linguagens de alto nvel: a traduo e a interpretao. Estes mtodos so similares. Em ambos as instrues de alto nvel so executadas pelas seqncias equivalentes em linguagem de mquina. A diferena que na traduo o programa completo de alto nvel primeiro convertido para a linguagem de mquina para ento ser executado. Na interpretao, depois de cada instruo de alto nvel ser examinada e decodificada, ela executada imediatamente. Nenhum programa traduzido gerado. Ambos os mtodos so amplamente usados pelos compiladores.
FUNDAO OSWALDO ARANHA CENTRO UNIVERSITRIO DE VOLTA REDONDA
Arquitetura de Computadores Sistemas de Informao Prof. Rafael Teixeira rafael.teixeira@foa.org.br 2
Figura 1 Mquina de seis nveis (adaptado de Tanenbaum, 2007).
Mquina Multinvel A maioria dos computadores modernos possuem dois ou mais nveis. As mquinas de seis nveis so muito comuns, como est mostrado na Figura 1.
Nvel 0 - o hardware verdadeiro da mquina. Seus circuitos executam os programas em linguagem de mquina de nvel 1. No nvel de lgica digital, esto as portas lgicas (basicamente portas AND e OR) que so os elementos primrios de circuitos lgicos mais complexos. H ainda a existncia de outros nveis abaixo do nvel 0, que no esto representados na figura. Estes nveis situam-se no campo da engenharia eltrica e da fsica do estado slido. Nestes nveis os projetistas enxergam portas lgicas, transistores individuais e o cristal semicondutor, que o substrato dos circuitos integrados. O nvel 0 e os nveis abaixo dele fogem ao escopo desta disciplina.
FUNDAO OSWALDO ARANHA CENTRO UNIVERSITRIO DE VOLTA REDONDA
Arquitetura de Computadores Sistemas de Informao Prof. Rafael Teixeira rafael.teixeira@foa.org.br 3
Nvel 1- Nvel de microprogramao, logo acima, que inicia o conceito de programa como uma seqncia de instrues a serem executadas diretamente pelos circuitos eletrnicos. No nvel 1 h um programa denominado microprograma, cuja funo interpretar as instrues de nvel 2. Poucas so as mquinas que tm mais de 20 instrues no nvel do microprograma, e a maior parte destas instrues envolve a movimentao de dados de uma parte da mquina para outra ou alguns testes simples. A microprogramao utilizada especialmente nas mquinas classificadas de CISC Complex Instruction Set Computer. Este tipo de mquina implementa instrues complexas correspondentes ao nvel 2. Isto tende a facilitar a programao de compiladores de uma linguagem de alto nvel especfica, mas de uma maneira geral compromete o desempenho da mquina. Isto acontece porque a complexidade dos circuitos lgicos tende a aumentar, criando um caminho mais longo para a propagao do sinal eltrico gerando um maior atraso. Tal atraso implica em uma menor freqncia de operao dos circuitos.
Nvel 2 - Corresponde linguagem de mquina ou o cdigo binrio executado pelo hardware. Na Figura 1 este nvel interpretado para o nvel de microprogramao, porm nas mquinas RISC - Reduced Instruction Set Computer - o nvel 1 (microprogramao) no existe. Neste tipo de mquina, o nvel 2 executado (interpretado) diretamente no nvel 0. Atualmente este tipo de mquina considerado mais eficiente e flexvel que as CISC. Isto porque, as instrues delas tendem a ser executadas em poucos (ou mesmo um nico) ciclos de relgio, permitindo assim ao projetista do compilador, ou ao projetista do Sistema Operacional uma programao mais sob medida (customizado) para cada situao. Entretanto, o cdigo gerado tende a ser mais longo e complexo. Cada mquina ou processador tem sua linguagem prpria de nvel 2, a qual documentada em manuais especficos de cada fabricante.
Nvel 3 O nvel do Sistema Operacional (S.O.) - responsvel por fornecer servios bsicos para os nveis acima. Tais servios so: interface (grfica ou linha de comando) com o usurio (Shell), gerenciamento de memria, escalonamento de processos, acionamento de dispositivos de entrada e sada de dados etc. Este nvel geralmente desenvolvido de forma hbrida, ou seja, parte em uma linguagem de alto nvel (como C ou C++, por exemplo), e parte diretamente em linguagem de mquina. Aps o seu desenvolvimento, o programa executvel em cdigo de mquina gerado para ser carregado nas mquinas a que se destina. S.O. complexos so desenvolvidos em ambientes computacionais apropriados, porm, os mais simples podem ser desenvolvidos diretamente em linguagem de mquina.
H uma ruptura fundamental entre os nveis 3 e 4. Os trs nveis inferiores no esto projetados para o uso direto do programador mdio comum. Os interpretadores e tradutores fazem a interface entre o programador dos aplicativos (os nveis superiores) e os nveis mais prximos ao hardware. Estes interpretadores e tradutores so escritos pelos chamados de programadores de sistema, que so especialistas em projetar e implementar novas mquinas virtuais.
Os nveis 4 e superiores so dirigidos aos programadores de aplicao, que desejam usar o computador apenas como meio para resoluo de problemas. Uma outra mudana que ocorre no nvel 4 no mtodo pelo qual os nveis superiores so implementados. Os nveis 2 e 3 so sempre interpretados. Os nveis 4, 5 e superiores so geralmente, mas nem sempre, implementados por traduo.
Uma outra diferena ainda entre os nveis 1, 2 e 3, de um lado, e os nveis 4, 5 e superiores, de outro, a natureza da linguagem provida. As linguagens de mquina de nveis 1; 2 e 3 so freqentemente numricas (cdigo binrio, hexadecimal ou octal). Os programas escritos nestas linguagens so timos para as mquinas, mas pssimos para o entendimento lgico das pessoas. A partir do nvel 4, as linguagens contm palavras e abreviaturas significativas para as pessoas, ou seja, mnemnicos.
FUNDAO OSWALDO ARANHA CENTRO UNIVERSITRIO DE VOLTA REDONDA
Arquitetura de Computadores Sistemas de Informao Prof. Rafael Teixeira rafael.teixeira@foa.org.br 4 O nvel 4, o nvel de linguagem de montagem, realmente uma forma simblica para uma linguagem subjacente. Todas as linguagens de alto nvel so simblicas, isto , usam agrupamentos de caracteres alfanumricos que representam palavras ou expresses matemticas que apelidam uma instruo de mquina ou correspondem a uma seqncia (rotina) de instrues de mquina.
Tais apelidos so mais expressivos para os humanos que os cdigos numricos computacionais. Os compiladores traduzem estes caracteres em linguagem de mquina. O nvel 4 prov um mtodo para as pessoas escreverem programas para os nveis 1, 2, e 3 de uma maneira mais agradvel e amigvel.
Neste nvel cada instruo de mquina apelidada por um mnemnico (por exemplo add, load, store etc.) que normalmente correspondem diretamente a uma nica instruo de mquina. Assim, o mnemnico um apelido, mais significativo para os humanos, que representa uma instruo de mquina, ou seja, um cdigo binrio executvel. Os programas em linguagem de montagem so primeiramente traduzidos para uma linguagem do nvel 1, 2 ou 3, e ento so interpretados pela mquina real ou virtual apropriada. O programa que executa a traduo denominado montador.
O nvel 5 consiste em linguagens projetadas para serem utilizadas por programadores de aplicao (software aplicativo) com problemas a serem resolvidos. Tais linguagens possuem muitos nomes, dentre eles linguagens de alto nvel e linguagens orientadas para problemas. (FORTRAN, PASCAL, Delphi, C, COBOL, LISP, JAVA etc.). Os programas escritos nestas linguagens so geralmente traduzidos para o nvel 3 ou nvel 4 por tradutores conhecidos como compiladores, embora s vezes sejam interpretados.
Os nveis 6 e superiores (no representados na Figura 1) consistem em colees de programas projetados para criar mquinas virtuais especialmente adequadas para certas aplicaes (aplicativos computacionais). Estes nveis contm grandes quantidades de informao acerca da aplicao. Pode-se imaginar mquinas virtuais voltadas a aplicaes em administrao, educao, projeto de computadores, realidade virtual etc. Estes nveis esto no terreno da pesquisa atual.
Em resumo, o ponto-chave a ser lembrado que os computadores so projetados como uma srie de nveis, cada um deles construdo sobre seu predecessor. Cada nvel representa uma abstrao distinta, com diferentes objetos e operaes presentes. Ao projetar e analisar computadores deste modo, podemos temporariamente suprimir detalhes irrelevantes dos nveis inferiores, e assim reduzir um assunto complexo a algo mais fcil de ser compreendido.
FUNDAO OSWALDO ARANHA CENTRO UNIVERSITRIO DE VOLTA REDONDA
Arquitetura de Computadores Sistemas de Informao Prof. Rafael Teixeira rafael.teixeira@foa.org.br 5
Figura 2: Etapas de execuo de um programa (adaptado de Patterson e Henessy, 2005).
Modelo de von Neumann Nos anos 40 o matemtico John von Neumann desenvolveu um modelo terico do funcionamento dos computadores. Este modelo usado at hoje com apenas algumas modificaes. Von Neumann props construir computadores que:
FUNDAO OSWALDO ARANHA CENTRO UNIVERSITRIO DE VOLTA REDONDA
Arquitetura de Computadores Sistemas de Informao Prof. Rafael Teixeira rafael.teixeira@foa.org.br 6 1. Codificassem instrues que pudessem ser armazenadas na memria e sugeriu que usassem cadeias de uns e zeros (binrio) para codific-las; 2. Armazenassem na memria as instrues e todas as informaes que fossem necessrias para a execuo da tarefa desejada; 3. Ao processarem o programa, as instrues fossem buscadas na diretamente na memria. Este o conceito de programa armazenado.
Figura 3 Diagrama esquemtico da arquitetura proposta por von Neumann.
As principais caractersticas deste modelo so: Uma nica UCP responsvel por todo controle do fluxo de dados; Uma memria nica; Dispositivos de E/S cujas transferncias so feitas por meio da UCP.
A maioria dos computadores tem sido construda desta maneira at o surgimento das arquiteturas paralelas e redes neurais. O sucesso deste modelo se justifica pelo fato de que o processador (UCP) desempenha uma funo por vez e toma os dados e programas de um nico banco de memria.
Unidade central de processamento (UCP) A Unidade Central de Processamento a responsvel pelo processamento e execuo de programas armazenados na MP (memria principal). Funes: Executar instrues - realizar aquilo que a instruo determina. Realizar o controle das operaes no computador.
Memria principal (MP) A Memria Principal tem por finalidade armazenar toda a informao que manipulada pelo computador - programas e dados. Para que um programa possa ser manipulado pela mquina, ele primeiro precisa estar armazenado na memria principal. Obs.: os circuitos da Memria Principal no so combinacionais, eles tem capacidade de armazenar bits. Os circuitos usados so do tipo seqencial que se baseiam num dispositivo eletrnico chamado de "flip-flop".
Dispositivos de entrada e sada (E/S) Tem por finalidade permitir a comunicao entre o usurio e o computador. Obs.: Para executar um programa, bastaria UCP e MP; no entanto, sem os dispositivos de E/S no haveria a comunicao entre o usurio e o computador.
Modelo de Barramentos O modelo de barramentos basicamente o modelo de von Neumann com o acrscimo de maior flexibilidade de comunicao. Os barramentos interconectam os elementos bsicos UCP, memria e dispositivos E/S entre si. Fisicamente, barramento um conjunto de linhas de comunicao que permite a interligao entre dispositivos, como o UCP, a memria e outros perifricos (E/S).
FUNDAO OSWALDO ARANHA CENTRO UNIVERSITRIO DE VOLTA REDONDA
Arquitetura de Computadores Sistemas de Informao Prof. Rafael Teixeira rafael.teixeira@foa.org.br 7
Figura 4 Arquitetura de barramentos.
Neste modelo possvel transferncia direta de dados entre os dispositivos de E/S e a memria. Este tipo de transferncia feito por dispositivos especiais (controlador de DMA direct memory access ou processador E/S) que assumem momentaneamente o controle do barramento e isolam a comunicao UCP com a memria e dispositivos E/S. Estas tcnicas tendem a acelerar a transferncia dos dados entre os dispositivos E/S e a memria. Os barramentos podem ser unidirecionais (conduzir os sinais em uma nica direo), bidirecionais (conduzir ora em uma direo e ora em outra de acordo com comandos eletrnicos), serem de trs estados (bidirecionais acrescidos da possibilidade de se desconectarem eletricamente), ou unidirecional com a possibilidade de desconexo eltrica. A possibilidade de desconexo eltrica controlada eletronicamente e torna vivel a comunicao seletiva entre os dispositivos. Por exemplo, a UCP se comunica com a memria e se desconecta dos dispositivos E/S ou a um dispositivo de entrada transfere dados para memria desconectando a UCP e os dispositivos de sada do barramento.
H logicamente trs tipos de barramentos: barramento de dados barramento de endereos barramento de controle
Figura 5 Detalhamento da arquitetura de barramentos.
O barramento de dados responsvel pela transferncia de dados entre os dispositivos e instrues entre a UCP e memria. de trs estados (tri-state) e liga a memria, a UCP e os dispositivos E/S. Frequentemente o nmero de linhas do barramento de dados um valor que corresponde a uma potncia de 2 (8, 16, 32, 64 etc.).
O barramento de endereos aquele que conduz o endereo a ser selecionado na memria ou dispositivos E/S. geralmente unidirecional entre a UCP (que define o endereo) e a memria e os dispositivos E/S. Da mesma forma que o barramento de dados, o nmero de linhas do barramento de endereos um valor que corresponde a uma potncia de 2.
FUNDAO OSWALDO ARANHA CENTRO UNIVERSITRIO DE VOLTA REDONDA
Arquitetura de Computadores Sistemas de Informao Prof. Rafael Teixeira rafael.teixeira@foa.org.br 8
O barramento de controle transfere os sinais de controle que ativam ou desativam os dispositivos, que selecionam determinado modo de operao ou sincronizam os circuitos. Cada linha ou conjunto de linhas tem uma caracterstica de operao prpria de acordo com a sua funo.
Algumas vezes os barramentos podem estar multiplexados. A multiplexao uma tcnica que permite a utilizao das mesmas linhas fsicas por mais de um conjunto de sinais. Em alguns modelos de computadores os barramentos de dados e de endereos correspondem s mesmas linhas fsicas. Em um determinado instante os dados esto presentes no barramento e em outro os endereos. Neste caso os sinais de controle coordenam a operao. A multiplexao torna o sistema mais econmico em termos de hardware, porm diminui a velocidade de operao.
Em termos fsicos, os tipos de barramentos de um computador so: Barramento do processador; Barramento de cach; Barramento de memria; Barramento de entrada e sada.
Figura 6 Exemplo de uma arquitetura de barramentos
O Barramento do Processador utilizado pelo processador internamente.
O Barramento de Cache em organizaes de computadores mais recentes, um barramento dedicado para acesso memria cache do computador. A memria cache de mais alta velocidade que a memria principal podendo ser interna ou externa a UCP.
O barramento de Memria responsvel pela conexo da memria principal ao processador e possui velocidade mais baixa que o da memria principal.
O Barramento de Entrada e Sada (ou E/S) um conjunto de circuitos e linhas de comunicao que possibilitam a ligao dos perifricos com a parte interna do computador (UCP e chipset placa me).
Este barramento normalmente segue padres internacionais e as freqncias de transferncia so mais baixas que as anteriores. So exemplos de barramentos de entrada e sada: VESA, ISA, MCA, EISA, VLB, PCI, AGP, PCI Express.