Download - Arquitetura de Computadores

Transcript

Arquitetura de Computadores

Arquitetura de ComputadoresProf: Ellson SilvaEmail: [email protected]. Conceitos Bsicos1.1. Introduo aos Sistemas de Computao

1.2 Projecto de Sistemas de Computao

O principal objetivo apresentar os princpios que regem a organizao (sistema / estrutura ) de computadores. A motivao para criar mquinas de computao sempre foi, essencialmente, melhorar a velocidade de clculos, uma vez que a velocidade de calculos humana limitada. Adicionalmente, buscava-se tambm reduzir fontes de erros, tais como distraes, descuidos e cansaoA pr-histria das mquinas computacionais foi marcada pela criao das mquinas de calcular, tais como a Pascalene (Pascal, 164243), o Stepped Reckoner (Leibniz, 1674) e o Engenho a diferenas (Babbage, 18221842).Organizao das mquinas de calcularSomador/AcumuladorEntrada/Operando1.1. Introduo aos Sistemas de Computao O Engenho Analtico (1834/71) de Charles Babbage, foi o que se pode denominar de o primeiro computador (ou algo mais prximo de uma calculadora programvel

Caracteristicas :Capacidade de computar qualquer operao matematicaUnidade para quatro operaes bsicas (Mill), com 2 acumuladores principais e alguns auxiliaresUnidade para armazenar dados (Store), com capacidade para 100 nmerosCartes perfurados para operaes e variaveisUnidades de saida (impressora ou cartos perfurado)Primeiros Computadores Os marcos tecnolgicos que precederam a era da computao foram a introduo de sequncia de cartes perfurados para controle de tear (J.-M. Jacquard, 1801) e a concepo da lgebra booleana (G. Boole, 1854).MILLOPERATIONCARDSSTOREVARIABLECARDSPRINTER/CARD.PERF Organizao do engenho analticoOs computadores eletrnicosOs primeiros marcos tecnolgicos da era dos computadores eletrnicos foram:

O desenvolvimento da vlvula triodo (L. de Forest, 1906) como uma extenso da vlvula diodo (J. Fleming, 1904);Desenvolvimento de circuitos binrios baseados em lgebra booleana (G. Stibitz, 1937).John Vincent Atanasoff e Clifford Berry, de Iowa State University, desenvolveram uma Calculadora eletrnica dedicada para a resoluo de sistemas de equaes lineares simultneas, denominado ABC (Atanasoff-Berry Computer)Alan Turing, na Inglaterra, fez a especificao de computador mecnico que se tornou operacional em 1940.

Colossus foi o primeiro computador completamente eletrnico, por Newman com participao de Alan Turing.

Maior impacto teve o Projeto ENIAC (Electronic Numerator, Integrator, Analyzer, and Computer), desenvolvido entre 1943 e 46, por John W. Mauchly e J. Presper Eckert, pesava cerca de 30 toneladas e consumia 140 KW. Utilizava aritmtica decimal, com memria de 20 acumuladores de 10 dgitos, cada dgito usando 10 bits para sua representao.

Vrios novos projetos surgiram a partir dele.Os computadores eletrnicos, apesar de representar grande avano em relao a seus similares eletromecnicos, apresentavam duas grandes limitaes: baixa capacidade de memria e longo tempo de programao.

O marco para quebrar essa barreira foi a concepo do conceito de programa armazenado, associada ao projeto EDVAC (Eletronic Discrete Variable Automatic Computer), um sucessor do ENIAC com ampla capacidade de memria e que utilizava aritmtica binria.

U.CU.AEntradaMemria (Programas e dados)SaidaOrganizao do EDVAC.Consiste num conjunto de dispositivos eletrnicos (hardware) capazes de processar informaes de acordo com um programa (software).Pode ainda ser composto:Rede de computadores,servidorese cluser, dependendo da situao e das necessidades.Os principais elementos de um sistema de computao:CPUMemria PrincipalSubsistema de Entrada e Saida (E/S)Mecanismos de interconexo entre esses componentesO sistema operacional o software mais importante porque ele fornece as bases para a execuo das aplicaes, s quais o usurio deseja executar. Exemplos de sistemas operacionais so o Windows, o Macintosh e o Linux, dentre outrosSistema de computaoEstrutura geral de um sistema de computaoAplicativosSistemaOperacionalComponentesFsicosComponentes FsicosComponentes BsicosPerifricosComponentes MultimdiaComponentes de rede

Sistema OperacionalNcleo do sistema operacionalProgramas de sistema (utilitrios, bibliotecas, ...)Arquivos de configurao

AplicativosBrowser (Netscape, Explorer, Google Chrome, etc)Estrutura geral de um sistema de computaoAplicativosSistemaOperacionalComponentesFsicosMonitorTecladoMouse Gabinete de sistema Placa principalProcessadorMemria Placas controladoras de perifricosPlaca controladora de vdeo, de disco, de rede, etc) Unidades de armazenamentoDiscos MagnticosUnidade leitora de FloppyComponentes fsicosEstrutura geral de um sistema de computaoAplicativosSistemaOperacionalComponentesFsicos composto por: Ncleo (kernel) do sistema operacionalPermanece carregado em memria Processos de gerncia Arquivos de configurao Utilitrios do sistemaProgramas bsicos necessrios para operao do sistema Ex: DOS: format, dir, edit, copy, type, .... Ex: UNIX: mkfs, ls, ps, vi, ...Sistema OperacionalClassificaoQuanto ao nmero de processos simultneosMonotarefaMultitarefaQuanto ao nmero de usurios simultneosMonousurioMultiusurioEstrutura geral de um sistema de computaoAplicativosSistemaOperacionalComponentesFsicosAplicativosBrowser (Netscape, Explorer)Programa de editorao eletrnicaProgama de processamento de imagemCADBanco de Dados Quanto ao tipo de sistemaMicrocomputador pessoalMinicomputadorEstao grfica de trabalhoServidorSuper estao grfica de trabalhoSupercomputadorMainframeMicrocomputador pessoalObjetivo:Utilizao por uma nica pessoaBaixo custo

Caractersticassistema operacional simplificadocusto reduzido (hardware barato e de baixo desempenho)capacidade de processamento reduzidaQuanto aos servios oferecidosCliente de servio Servidor de servioCaracterizao de um sistema de computaoMini Computador

Objetivo:Sistema que permita utilizao por vrios usuriosSem necessidade de interface grfica

CaractersticasVrios terminais alfanumricos (no grvicos)Sem interface grficaSistema operacional robusto (geralmente UNIX)Hardware de mdio custoProcessador de mdio desempenhoWorkstation (Estao grfica de trabalho)

Objetivo:Sistema para utilizao em aplicaes que necessitem de interfaces grficas

CaractersticasPossui uma sistema grfico de alta resoluo (monitor +hardware grfico)Possui software de gerenciamento de janelas (geralmente o X-Windows)Sistema operacional robusto (geralmente UNIX)Hardware de mdio custoProcessador de mdio desempenhoSuper estao grfica de trabalho

Objetivo:Sistema para utilizao em aplicaes que necessitem de interfaces grficas de altissimo desempenho, geralmente para apresentao de imagens em tempo real

CaractersticasPossui um hardware acelerador grficoAlta capacidade de armazenamento (disco)Alta taxa de E/S (disco)Hardware de alto custoProcessador de bom desempenhoServidorObjetivo:Sistema cuja finalidade executar um determinado servio

CaractersticasSistema operacional robusto (geralmente UNIX)Processador de bom desempenhoSubsistema de E/S de bom desempenhoOutras caractersticas - de acordo com o tipo de servio oferecidoSupercomputador

Objetivo:Sistema para execuo de aplicaes que necessitem de grande capacidade de processamento

Caractersticas Usualmente possui uma nica interface para operao (no necessriamente grfica) Alta capacidade de armazenamento (disco) Alta Taxa de E/S (disco) Processador de altssimo desempenho Sistema de custo muito elevado

MainframeObjetivo: Sisteam para execuo de aplicaes que necessitem de confiabilidade de processamento

Caractersticas No possui interface grfica Bom subsistema de E/S Processador de bom desempenho Sistema geralmente no interopervel (no um Sistema Aberto) Geralmente confivelCliente de servioCliente de servio de arquivoscliente de servio de impressocliente de servio de e-mailcliente de servio de WEBcliente de servio de FTPcliente de servio DNScliente de servio de processamentoServidor de servioServidor de arquivosServidor de impressoServidor de e-mailServidor WEBServidor FTPServidor DNSServidor de processamento1.2. Projecto de Sistemas de ComputaoNo projeto de sistemas computacionais no nvel de processador, os tipos de componentes so: Processadores , Memrias, Dispositivos de entrada e sada, e meios de interconexo.

Processadores. Contemplam componentes tais como CPU, controladores e coprocessadores. Tm um conjunto de instrues (de propsito geral para a CPU, especializado para coprocessadores) operandosobre instrues e dados (obtidos e armazenados externamente) organizados em palavras.

Memrias. Incluem dois subsistemas principais, memria principal e memria secundria. O custo associado memria est diretamente relacionado sua capacidade de armazenamento e sua velocidade de operao.

Dispositivos de entrada e sada. So conversores de representao fsica de dados. Em geral, so lentos quando comparados com o processador.

Meios de interconexo. Estabelecem a comunicao entre componentes atravs de barramentos sob seu controle. Um problema crtico na utilizao dos meios de interconexo a conteno, a disputa pelo uso simultneo de recursos compartilhados.

Ilustrao de uma CPURD Registrador de dadosRE Registrador de endereos da memriaACC Registrador acumuladorPC Registrador contador de programaRI Registrador de instruesULA Unidade lgica e aritmticaO projeto de um sistema de computadores com arquitetura de alto desempenho oferece diversas alternativas. Em alguns casos, possvel atingir os resultados esperados atravs da manipulao do algoritmo para melhor ajust-lo organizao do sistema. Em outros casos, mudanas na organizao bsica do sistema podem ser necessrias. H ainda casos onde organizaes alternativas, tais como o uso de paralelismo, podem ser mais adequadas.

Durante o processo de definio de arquitetura, algumas questes de interesse so:Qual o espao de armazenamento necessrio para um dado conjunto de programas ou dados?Qual o fator de utilizao dos diversos componentes do sistema?

Assim, no desenvolvimento de um sistema computacional de alto desempenho, os aspectos relevantes a serem considerados so:

Projeto de processadores: os fatores que mais afetam o desempenho da unidade central de processamento.Como acelerar o processamento (decodificao e execuo) de instrues. Ascontribuies da abordagem RISC.

Sistemas de memria hierrquica: estratgias para melhorar velocidade de acesso nos diversos nveisda hierarquia de memria, com nfase para cache.

Sistemas paralelos: vantagens e dificuldades relacionadas.1.2. Projecto de Sistemas de ComputaoCPU

Classificao bsicaCom base no relacionamento e organizao dos componentes de um sistema computacional, esses sistemas podem ser classificados entre mquinas von Neumann e mquinas no-von Neumann.2.1.1 Mquinas von NeumannA caracterstica de mquinas von Neumann a composio do sistema a partir de trs subsistemas bsicos: CPU, memria principal e sistema de entrada e sada Eles Utilizam o conceito de programa armazenado, a execuo seqencial de instrues e a existncia de um caminho nico entre memria e unidade.

A CPU (unidade central de processamento), por sua vez, tem trs blocos principais: unidade de controle (UC), unidade lgico-aritmtica (ALU) e registradores, incluindo-se a um registrador contador de programa (PC) que indica a posio da instruo a executar.

Memoria principalUnidade de controloSistema de E/SALURegistradores

PCArquitetura de mquinas von NeumannMquinas no-von NeumannAs mquinas que no se enquadram na definio de mquinas von Neumann so denominadas mquinas no-von Neumann. Essa categoria ampla, incluindo sistemas computacionais tais como:

Mquinas paralelas: vrias unidades de processamento executando programas de forma cooperativa, com controle centralizado ou no;Mquinas de fluxo de dados: no executam instrues de um programa, mas realizam operaes de acordo com a disponibilidade dos dados envolvidos;

Redes neurais artificiais: tambm no executam instrues de um programa, trabalhando com um modelo onde resultados so gerados a partir de respostas a estmulos de entrada;

Processadores sistlicos (VLSI): processamento ocorre pela passagem de dados por arranjo de clulas de processamento executando operaes bsicas, organizadas de forma a gerar o resultado desejado.

2.1. Unidade de Processamento 2.2. Unidade de Controlo 2.3. Linguagem de Descrio do Hardware 2.4. Unidade Lgica e Aritmtica

2. CIRCUITOS DE APLICAO ESPECFICA

Descreveremos projecto de sistemas digitais em termos de duas componentes: - Unidade de Processamento, tambm chamada de circuito de dados, que contm toda a lgica que faz os clculos propriamente ditos bem como os registos onde os dados so guardados. - Unidade de Controlo que gere quais as operaes que a unidade de processamento deve efectuar em cada ciclo de relgio.

Para permitir descrever de maneira clara o algoritmo de realizao de operaes complexas em termos das operaes bsicas da unidade de processamento, foram desenvolvidas linguagens de descrio de hardware.

Embora as unidades de processamento possam ser projectadas para um fim especfico, em muitos casos opta-se por usar unidades que disponibilizam um conjunto de operaes aritmticas e lgicas tpicas, chamadas Unidades Aritmticas e Lgicas ou ULA

O projecto de sistemas complexos envolve diferentes nveis de abstraco, o projecto incia no mais abstracto, descendo sucessivamente para nveis mais concretos. projecto sucessivamente dividido em mdulos mais pequenos, o que permite ir aumentando o nvel de detalhe, mantendo-o sempre como um problema gervel em cada nvel. este processo de dividir para conquistar que faz o sucesso deste conceito de nveis de abstraco.

Os sistemas digitais so, assim, normalmente estruturados em duas unidades principais, a Unidade de Processamento e a Unidade de Controlo2. CIRCUITOS DE APLICAO ESPECFICAA unidade de processamento constituda por pequenos mdulos interligados para armazenar e processar a informao til do sistema. Recebe as entradas a processar.As unidades de processamento so tipicamente construdas usando os mduloscombinatrios de mdia complexidade

A unidade de controlo responsvel por gerar os sinais de controlo que sequenciam as operaes bsicas da unidade de processamento de forma a que o sistema realize operaes complexas.

O conjunto de sinais de controlo que saem da UC para a unidade de processamento chama-se palavra de controlo. A sequncia de sinais de controlo gerada pela unidade de controlo pode depender dos resultados dos clculos efectuados pela unidade de processamento. Esta informao fornecida unidade de controlo por bits de estado ou flags,

Linguagem de Descrio de Hardware a Linguagem de especificao de sistemas mais complexos. Faz a descrio com um nvel de abstraco mais elevado do que as funes booleanas ou os diagramas de estado (HDL).

Embora o nvel de abstraco possa variar, em geral esta descrio feita ao nvel de transferncia entre registos, em que o projectista define quais as micro-operaes efectuadas entre registos em cada ciclo de relgioExistem vrios formatos possveis para as linguagens de descrio de hardware: AHDL (Altera Hardware Description Language) e os padres VHDL e Verilog.

3. Arquitectura de um Computador3.1 Tipos de Computadores 3.2 Organizao Interna

3.3 Interaco com o Exterior Um computador um sistema digital programvel atravs de uma sequncia de instrues guardadas em memria, que o intruem a executar operaes elementares de manipulao de dados. O seu elemento crucial a sua unidade central de processamento, ou processador.

Arquitectura de um ComputadorA ideia de um sistema de processamento de informao que seja reconfigurvel atravs de um programa guardado em alguma forma de memria muito antiga, remontando aos princpios do sculo XIX. Charles Babbage projectou o primeiro computador mecnico capaz de desempenhar sequncias de operaes automaticamente, o difference engine (engenho Diferencial)

ENIAC, foi o 1 computador funcional, que ficou operacional em 1946 e podia ser programado para calcular tabelas matemticas relacionadas com aplicaes militares. Usava uma tecnologia baseada em vlvulas electrnicas e era programado atravs de um conjunto de cabos que, conforme estivessem ligados ou desligados, especificavam o contedo da memria do programa. Os seus resultados eram escritos em cartes perfurados ou numa mquina de escrever elctrica.

Este conceito de usar a memria para guardar tanto o programa como os dados atribuda a John von Neumann, Por essa razo, as arquiteturas em que uma s memria guarda tanto os dados como os programas, de arquitetura de von Neumann . Esta arquitetura veio a impr-se alternativa de ter duas memrias separadas para os dados e para o cdigo, que conhecida como arquitetura de Harvard .

A utilizao de transstores como tecnologia de base veio permitir a evoluo para a segunda gerao de computadores, que j usavam tecnologias de discos magnticos para guardar a informao de forma no voltil e tinham memrias baseadas em ferrites.

A 3 gerao de computadores surgiu com o advento dos circuitos integrados, em 1961, o que permitiu uma grande reduo no tamanho dos computadores e o consequente aumento do nmero de portas lgicas.

A criao do circuito integrado com grande escala de integrao (VLSI ) veio permitir a criao de processadores inteiramente contidos num s circuito integrado, o que fez baixar o preo de um computador por forma a permitir o seu uso como um computador pessoal.

O 1 processador disponvel num nico circuito integrado foi 4004, da IntelO 1 computador pessoal tenha sido baseado no processador 8080, da Intel, mas o passo mais importante para os computadores pessoais foi a definio pela IBM, de um modelo padro para computadores pessoais, ou PCs , baseados no processador 8086. O sucesso deste tipo de computadores, baseados em diversos processadores desta famlia da Intel conhecido (80286, 80386, 80486, Pentium, Pentium II, Pentium III e Pentium IV).3.1 Tipos de ComputadoresApesar de existir um maior numero de PCs baseados nos processadores Intel, existem ainda muitos outros tipos de processadores, tais como:os computadores da Apple, nos processadores da srie 680X0 e na famlia de processadores PowerPC, ambos da Motorola.

A criao dos circuitos integrados possibilitou a utilizao de processadores para controlar sistemas electrnicos autnomos, geralmente conhecidos como micro-controladores, so mais simples, menos dispendiosos e mais flexveis no que respeita aos sistemas deentrada/sada.

Um outro tipo de processadores dedicados so os processadores de sinal, que so projetados para serem extremamente eficientes em aplicaes de processamento de sinal, e so usados em sistemas para telecomunicaes tais como telefones e televises.3.2 Organizao Interna de um ComputadorUm computador um sistema digital programvel atravs de uma sequncia de instrues guardada em memria. Estas instrues especificam qual a sequncia de operaes de manipulao de dados que deve ser executada.

A unidade que processa a sequncia de instrues a unidade central de processamento (CPU) , ela constituda por circuitos combinatrios que permitem efetuar operaes lgicas e aritmticas, e por registos que permitem guardar os dados e os resultados dessas operaes.

A memria encontra-se ligada unidade central de processamento atravs de dois barramentos

Esquematicamente, a execuo de uma instruo guardada em memria passa pelas seguintes fases:

A UCP envia para a memria o endereo da prxima instruo a executar e recebe uma palavra de memria que guarda a codificao da instruo a executar.

A UCP descodifica a instruo, identificando quais os operandos e qual o tipo

A UCP faz um ou mais acessos memria para carregar os operandos especificados pela instruo para registos internos.

Na posse de todos os operandos, a unidade central de processamento executa a operao especificada na instruo.

Aps obter o resultado, a UCP escreve o mesmo em memria, caso seja necessrio, ou num registo interno.

A CPU e a memria, so o ncleo central de um computador, mas, por si s, no podem desempenhar qualquer funo til. Para comunicar com os utilizadores, o computador usa diversos dispositivos perifricos tais como teclados, ratos, monitores, impressoras, discos e fitas magnticas para armazenar dados, e interfaces de rede para comunicar com outros computadores.

A comunicao com os outros dispositivos feita por portos de entrada/sada, os mesmos controlam os perifricos usando protocolos que variam de perifrico para perifrico.

A CPU, a memria e os portos de entrada/sada so acoplados numa nica unidade fsica, para que possam comunicar atravs de barramentos curtos e de alta velocidade

O tratamento que cada porto de entrada/sada d aos dados depende do perifrico que lhe est ligado. Por exemplo, um porto de entrada/sada que corresponda a uma porta srie envia os dados recebidos para uma linha srie. Esses dados so depois interpretados por um perifrico que entenda o protocolo srie, como, por exemplo, um modem.

3.3 Interaco com o Exterior

Outros portos de entrada/sada tratam os dados de forma diferente. Um porto paralelo pode ser usado para comunicar comuma impressora. Outros portos correspondem a perifricosmais complexos, como, por exemplo, placas grficas e controladores de disco. e

4.1 Linguagem Assembly

4.2 Instrues Assembly

4.3 Especificao dos Operandos

4.4 Codificao das Instrues

4.5 Instrues do P3 4. ARQUITECTURA DE CONJUNTO DE INSTRUESO processador P3 semelhante a processadores comerciais, exibindo muitas das suas caractersticas, evitando, no entanto, as idiossincrasias inerentes a estes. Almde se apresentar a linguagem assembly deste processador, descreve-se tambm a forma como uma instruo assembly traduzida para linguagem mquina, sendo assim abordados os nveis 2 e 3

ARQUITECTURA DE CONJUNTO DE INSTRUESUm computador , de facto, um sistema digital programvel ou configurado a diversos nveis de abstraco. A figura acima, ilustra os diversos nveis de abstraco a que um computador pode ser visto.

da responsabilidade dos programadores interpretarem as especificaes que definem o funcionamento de uma aplicao e escreverem o cdigo em linguagem de alto nvel que as realiza. Este cdigo de alto nvel no directamente executado pelo computador, sendo primeiro traduzido, por um outro programa, chamado compilador, para uma linguagem muito mais simples, a linguagem assembly.

Apesar da sua simplicidade, a linguagemassembly no ainda directamente executada pelo processador. Temde ser traduzida para linguagemmquina, que, essa sim, executada directamente pelo processadorInstrues AssemblyUma instruo guardada em memria como uma combinao de bits que especifica, de forma nica, uma sequncia de operaes de transferncias entre registos que deve ser executada pelo processador. De um modo geral, as instrues so executadas pela ordem em que esto ordenadas em memria. Em alguns casos, esta sequncia de execuo alterada, quer porque executada uma instruo de controlo, quer porque o processador recebe um pedido externo e tem de alterar a ordem de execuo das instrues.

Existem trs grandes classes de instrues: As instrues de transferncia de dados transferem informao de um local (registo, posio dememria ou porto de entrada/sada) para outro, sem alterar a informao original.

As instrues de manipulao de dados aplicam um operador aritmtico ou lgico ao operando ou operandos, especificados pela sua localizao, e guardam o resultado da mesma.

As instrues de controlo permitem alterar a sequncia normal de instrues e definir qual a prxima instruo a ser executada.

As instrues de transferncia de dados so usadas para copiar ou salvaguardar dados. Copiam valores para registos ou posies de memria onde possam ser manipulados, para criar diversos tipos de estruturas de dados como, por exemplo, arrays e listas, e, ainda, para efectuar operaes de entrada e sada.

No processador P3, a instruo de transferncia de dados mais simples a instruo MOV. Por exemplo, a instruo MOV R1, M[00A0h] copia o contedo da posio de memria 00A0h para o registo R1.

As instrues de manipulao de dados so as que efectivamente executam as operaes teis num programa. Todos os processadores suportam instrues aritmticas bsicas tais como adio e subtraco. Suportam ainda operaes lgicas bsicas, como a disjuno e a conjuno, e operaes de deslocamento. Muitos processadores executam tambm operaes aritmticas mais complexas como multiplicao, diviso e outras funes matemticas sobre nmeros inteiros ou reais.Entre estas instrues encontram-se, tipicamente, instrues como ADD, SUB, INC, MULT, AND, OR e XOR.

Por exemplo, no processador P3, a instruo ADD R1,M[00B0h] soma o contedo do registo R1 ao contedo da posio de memria 00B0h, guardando o resultado no registo R1.

A sequncia de instrues a executar controlada por um registo especial, o contador de programa, este registo designado por PC (program counter), que contm o endereo de memria onde se encontra a prxima instruo a ser executada.

As instrues de transferncia e de manipulao de dados incrementam o contador de programa para o valor correspondente posio de memria onde se inicia a instruo que se segue na sequncia normal de execuo, o que faz com que essa instruo seja a prxima a ser executada.As instrues de controlo permitem alterar a ordem de execuo de instrues, incondicionalmente ou, em alternativa, apenas se a operao anterior produzir um resultado que satisfaa certas condies. Mais especificamente, as instrues de controlo permitem especificar qual o endereo da prxima instruo a executar, atravs da alterao do registo contador de programa, PC.

4.3 - Especificao dos OperandosExistem quatro origens possveis para os operandos de uma instruo: registos internos do processador, constante especificada na prpria instruo, uma localizao em memria, e portos de entrada/sada.

Registos InternosA utilizao de operandos em registos vantajosa por duas razes. 1. O acesso a dados guardados num registo interno muito mais rpido do que o acesso a dados em memria. 2. Existem menos registos internos do que posies de memria, o que permite utilizar menos bits para especificar um registo do que uma posio de memria.

Isto leva a que as instrues que utilizam apenas registos necessitem de menos bits para a sua codificao, ocupando menos memria e sendo lidas e executadas mais rapidamente.Memria e Portos de Entrada/SadaExistem duas formas possveis de tratar os dados provenientes de portos de entrada/sada. Uma filosofia, adoptada em muitas famlias de processadores, consiste emdisponibilizar umconjunto de instrues especiais para a entrada e sada de dados.Esta soluo equivale a ter entradas/sadas independentes do sistema dememria (independent IO). Neste caso, existe um espao de endereamento especfico para operaes de entrada sada.

Um acesso a um dado porto de entrada/sada especificado colocando um dado valor nos bits de endereo do processador (ou em parte deles) e controlando uma ou mais linhas adicionais que especificam que a operao uma operao de entrada ou sada e no um acesso a memria.

Codificao das InstruesNa maioria dos processadores, as instrues bsicas de manipulao de dados actuam sobre um mximo de dois operandos. Por exemplo, uma instruo de adio poder calcular RES=OP1 + OP2. Para especificar completamente uma instruo deste tipo, necessrio especificar qual o tipo de operao, quais os operandos OP1 e OP2 bem como qual a localizao de destino do resultado. Para analisar as diversas possibilidades de codificao das instrues de um processador, considere-se um processador com a seguinte configurao:

Registos: o processador possui 8 registos internos de 16 bits cada um, numerados de 0 a 7.

Memria: o processador acede a uma memria de 216 palavras de 16 bits cada, o que significa que cada posio de memria acedida com um endereo de 16 bits. Isto corresponde a uma capacidade total de endereamento de 64K palavras ou 128K octetos.

Portos de entrada/sada: os portos de entrada sada so mapeados em memria, fazendo-se o acesso aos mesmos atravs de instrues normais de transferncia de dados.

Instrues: o conjunto de instrues contm 40 instrues.