Está en la página 1de 8

DATA: 26/04/2010 LISTA DE EXERCCIOS SOBRE: NVEL ISA 1.

Explique a metodologia empregada pelos arquitetos de sistemas para o projeto do nvel ISA. R1. A metodologia empregada consiste na capacidade de traduzir programas escritos em diferentes linguagens de alto nvel para uma forma intermediria comum o nvel ISA e construir hardware que possa executar programas de nvel ISA diretamente. Comentrios 1. O nvel ISA est posicionado entre os nveis da microarquitetura e do sistema operacional, definindo a interface entre os compiladores e o hardware.

2. Quais so as caractersticas de uma boa ISA? R2. As caractersticas fundamentais que uma ISA deve apresentar so: 1. Compatibilidade com modelos anteriores, permitindo que uma nova mquina seja capaz de executar programas antigos sem alteraes, de modo que o conjunto de instrues possa ser implementado com eficincia em tecnologias atuais e futuras; 2. Regularidade e completude de uma faixa de opes. 3. Qual o papel do compilador na ligao entre uma linguagem de alto nvel e o ISA? R3. O papel do compilador entre uma linguagem de alto nvel e o nvel ISA se refere ao fato de que o cdigo de nvel ISA o que um compilador produz. Analogamente, enquanto o nvel ISA a interface entre a microarquitetura e o sistema operacional, o compilador funciona como uma interface entre a linguagem de alto nvel o nvel ISA. Comentrios 3. O escritor de compilador necessita conhecer qual o modelo de memria, quais e quantos so os registradores, quais tipos de dados e instrues esto disponveis e assim por diante. 4. Quais so os modos de execuo do nvel ISA? Qual a diferena entre esses modos? R4. Os modos de execuo do nvel ISA so o modo ncleo (kernel) que executa o sistema operacional, permitindo que todas as instrues sejam executadas; e o modo usurio que executa programas de aplicao e no permite que determinadas instrues sensveis, como as que manipulam diretamente a cache, sejam executadas. 5. Os registradores no nvel ISA podem ser classificados como? R5. Registradores no nvel ISA so divididos em de uso especfico e de uso geral. Os registradores de uso especfico incluem o contador de programa e o ponteiro de pilha onde os valores armazenados tm interpretaes especficas. Os registradores de uso geral contm variveis locais fundamentais e resultados intermedirios de clculos. 6. Qual a funo do registrador PSW? O PSW (registrador de flags) um registrador de controle que contm vrios bits diversos de que a CPU precisa. Os bits mais importantes so os cdigos de condio que so ajustados em todo ciclo da ULA e refletem o estado do resultado da operao mais recente.

Comentrio 6. Os cdigos de condio so importantes porque as instrues de comparao e desvio condicional os usam.

7. Quais os tipos de dados que o nvel ISA reconhece? R7. Normalmente, o nvel ISA pode reconhecer tipos de dados numricos, no numricos, booleanos e ponteiros. [inteiros, ponto flutuante, alfanumricos] Comentrio 7. Uma questo importante se h suporte de hardware para um tipo particular de dados. 8. Qual a composio de uma instruo? R8. Uma instruo formada basicamente por um opcode (cdigo de operao), usualmente associado a alguma informao adicional, que consiste em endereos.

9. Quais os formatos mais comuns de instruo? R9. Os formatos mais comuns de instrues so instrues sem endereo, instruo de um endereo, instruo de dois endereos e instrues de trs endereos.

10. Qual a vantagem e desvantagem de se ter instrues de tamanho fixo ou varivel? R10. Instrues de tamanho fixo so mais simples de manipular e apresentam maior facilidade de decodificao. Por outro lado, pode ocorrer desperdcio de espao, uma vez que todas as instrues necessitaro ter o mesmo tamanho da maior instruo. Instrues de tamanho varivel apresentam melhor aproveitamento do espao disponvel; porm, exigem maior lgica operacional.

11. Quais so os critrios para a determinao do formato das instrues? R11. A determinao do formato de instrues deve contemplar a capacidade de acrscimo de novas instrues e a possibilidade de incremento de novos recursos em funo dos possveis avanos tecnolgicos como, por exemplo, a melhoria no desempenho da velocidade do relgio da CPU, tempo de acesso RAM. O tamanho das instrues consiste num importante critrio de projeto que tem importantes implicaes para o desempenho. Outro critrio de projeto importante diz respeito existncia de espao suficiente no formato da instruo para expressar todas as operaes desejadas. No obstante, relevante considerar o nmero de bits em um campo de endereo. Comentrio 11. De modo geral, instrues curtas so melhores do que as longas devido a restries de espao de memria.

12. Quais os modos de endereamento existentes? R12. Os modos de endereamento existente so: endereamento imediato, endereamento direto, endereamento de registrador, endereamento indireto de registrador, endereamento indexado, endereamento de base indexado e endereamento de pilha. Comentrio 12. Modo de endereamento refere-se ao modo como os bits de um campo de endereo so interpretados para encontrar operandos.

13. Explique cada um dos modos de endereamento. R13. 1. Endereamento imediato o modo mais simples de uma instruo indicar um endereo que contm um operando, sendo este buscado automaticamente na memria. A vantagem reside no fato da no exigncia de uma referncia extra memria para busca do operando. A desvantagem que somente uma constante pode ser fornecida desse modo e, por outro lado, o nmero de valores est limitado pelo tamanho do campo; 2. Endereamento direto o mtodo de endereamento que especifica o endereo completo de um operando na memria. Nesse tipo de endereamento, a localizao da varivel na muda, embora seu valor possa ser modificado. utilizada para variveis globais cujos endereos so conhecidos no momento da compilao. 3. Endereamento de registrador conceitualmente idntico ao endereamento direto, mas especifica um registrador em vez de uma localizao de memria. o modo de endereamento mais comum na maioria dos computadores. Instrues carregue/armazene usam esse mtodo de endereamento. 3. Endereamento indireto de registrador CONTINUAR. [imediato no vem com endereo. O dado vem imediatamente com a instruo. Geralmente usado com constantes. Direto temos endereo e operando. Registrador ao invs de endereo de memria para valor do operando temos um endereo do registrador que contm o dado. Indireto via registrador semelhante ao registrador ao invs de ter endereo de memria utilizamos endereo de registrador. Indexado endereo inicial no registrador a esse endereo somado um valor que um ndice usado mais para vetores implcito est no registrador. Base indexado o ndice est no segundo registrador. Via pilha as instrues no tem endereos, os operandos esto numa pilha de onde sero obtidos os endereos; usado quando retorna de funo. 14. Elabore um esquema de expanso do cdigo de operao para permitir que os formatos de instrues mostrados a seguir sejam codificados em 36 bits: 7 instrues com dois endereos de 15 bits e um nmero de registrador de 3 bits; 500 instrues com um endereo de 15 bits e um nmero de registrador de 3 bits; 50 instrues sem referncia a endereo ou a registrador; Esquema de expanso de cdigo com 36 bits: - primeiros trs bits usados para instrues, os prximos 15 bits para o primeiro endereo, os 15 bits seguintes para o segundo endereo, os trs ltimos bits para o registrador. Com trs bits para instrues, podemos representar at oito instrues diferentes; como so apenas sete instrues, a oitava representao pertence prxima representao de instrues e indica que a o cdigo diferencial encontra-se nos prximos 9 bits que so suficientes para representar 526 instrues diferentes; os 3 bits seguintes R14. Para elaborar um esquema de expanso de cdigo de operao de acordo com os parmetros fornecidos TEMOS ...: Considerando 36 bits para o formato de instruo, como o primeiro requisito pede sete instrues, necessitamos de 3 bits para a codificao das instrues, 30 bits para endereos e 3 bits para o registrador, perfazendo um total de 36 bits. Para o segundo requisito, necessitamos de 9 bits para a codificao das instrues, 15 bits para endereos e 3 bits para o registrador, perfazendo um total de 27 bits. Para o terceiro requisito, necessitamos de seis bits para a codificao das instrues. O primeiro requisito atendido com a utilizao da tabela de cdigos binrios de trs dgitos de 000 a 110. O segundo requisito atendido pela representao de trs bits 1, indicando que a instruo encontra-se nos campos de bits de 4 a 12, o endereo de da instruo dos campos de bits de 13 a 27, e o registrador de 28 a 30. 000 001 010 011 100

101 110 111 15. possvel elaborar um esquema de expanso do cdigo de operao que permita que as instrues seguintes sejam codificadas em 12 bits? Uma referncia a registrador gasta 3 bits. Justifique. 4 instrues com trs registradores; 255 instrues com um registrador; 16 instrues sem referncia a registrador; R15. 16. Como so classificadas as instrues do nvel ISA? R16. Instrues do tipo registrador-memria e registrador-registrador. 17. Como existem duas fontes possveis para os dados (memria ou registrador) e dois destinos possveis (memria ou registrador), quais so os quatro tipos de cpia de dados possveis? R17. Cpia de memria para registrador (LOAD, por exemplo), registrador para memria (STORE, por exemplo), registrador para registrador (MOVE, por exemplo), memria para memria. CONFIRMAR.

18. O que so operaes didicas e operaes mondicas? R18. Operaes didicas so as que combinam dois operandos para produzir um resultado, incluindo tambm operaes booleanas. Operaes mondicas tm um s operando e produzem um s resultado.

19. Defina desvio condicional e comparao. R19. Desvio condicional um mtodo utilizado para testar se determinada condio foi atendida e, ento, realizar o desvio da instruo para determinado endereo de memria. Por exemplo, podemos utilizar um bit de cdigo de condio para avaliar se houve excesso em uma operao aritmtica e desviar a instruo para um cdigo de correo de erro. Comentrio 19. Todo programa precisa ter a capacidade de testar seus dados e alterar a seqncia de instrues a ser executada com base nos resultados. 20. O que um procedimento? R20. Um procedimento um grupo de instrues que realiza alguma tarefa e pode ser invocado (chamado) de diversas partes do programa. Comentrio 20. O termo sub-rotina muitas vezes usado em vez de procedimento, principalmente quando se refere a programas em linguagem de montagem. Quando o procedimento finalizado deve retornar um endereo que pode ser colocado na memria, no registrador ou na pilha. Devese evitar colocar o endereo de retorno numa nica localizao de memria fixa porque se o procedimento tiver chamado outro procedimento, a segunda chamada sobreporia a primeira, ocasionando a perda desta. Recurso a capacidade de um procedimento chamar a si mesmo. 21. Quais so os 3 esquemas de realizao de E/S e como eles funcionam? R21. Os esquemas de realizao de E/S so: 1. E/S programada com espera ocupada cujo funcionamento

o mtodo de E/S mais simples, comumente usado em processadores de baixa tecnologia, utilizado em sistemas embutidos ou em sistemas que tm de responder imediatamente a mudanas externas (sistemas de tempo real) [ utiliza um registrador de dados e um de status.] 2. Interrupo o processador s acionado quando gerada um interrupo. 3. DMA inclui uma controladora de DMA que informa ao processador que verifica a existncia de um controladora que passa o controle para ela. 22. O que fluxo de controle e como ele classificado? R22. Fluxo de controle se refere seqncia em que as instrues so executadas dinamicamente, isto , durante a execuo do programa. Isso significa que, em geral, na ausncia de desvios e chamadas de procedimentos, as instrues executadas em seqncia so buscadas em localizaes consecutivas de memria. Pode ser classificado em seqencial e desvios. Comentrio 22. Desvios, chamadas de procedimento, co-rotinas, excees e interrupes causam alterao no fluxo de controle. 23. Explique o conceito de co-rotinas. R23. Para exemplificar o conceito de co-rotinas, temos dois procedimentos A e B, cada um dos quais chamando o outro como um procedimento. Uma utilizao comum de co-rotinas simular processamento paralelo em uma nica CPU. No caso das co-rotinas, chamada a primeira vez e uma continua a outra, ou seja, reiniciar de onde foi parada a outra.

24. O que um trap? R24. Um trap (exceo) um tipo de chamada de procedimento automtica iniciada por alguma condio causada pelo programa, usualmente uma condio importante, mas que ocorre raramente. Um bom exemplo o excesso (overflow).

25. O que so interrupes e como elas so processadas? R25. Interrupes so alteraes no fluxo de controle que no so causadas pelo programa em execuo, mas por alguma outras coisa, em geral relacionada a E/S. O tratamento da interrupo consiste em parar a execuo do programa e transferir o controle para um tratador de interrupo, que executar uma ao adequada. Finalizado o tratamento da interrupo, o controle devolvido ao programa interrompido, que deve reiniciar o processo interrompido exatamente no mesmo estado em que estava quando ocorreu a interrupo, o que significa restaurar todos os registradores internos a seu estado anterior interrupo. Comentrio 25. A diferena essencial entre excees e interrupes que excees so sncronas com o programa e interrupes so assncronas. 26. Qual a diferena entre um trap e uma interrupo?

27. O que so interrupes mascarveis e no-mascarveis? R27. Mascarveis so aquelas tm prioridade inferior s no-mascarveis. No-mascarveis so aquelas que tm prioridade zero, devendo ser tratadas imediatamente devido a iminncia de comprometimento do sistema.

28. Elabore uma metodologia para trocar o contedo de duas variveis A e B sem usar uma terceira varivel ou um registrador. Dica: Pense na instruo EXCLUSIVE OR A 1 0 1 0 B 1 1 1 1 A xor B 0 B xor A 1 A xor B A 1 1 0 1

0 1

1 1

0 1

29. Compare mquinas de 0, 1, 2 e 3 endereos escrevendo os programas para que cada uma delas calcule o valor da expresso abaixo: X = (A + B X C)/(D E X F) As instrues disponveis para o uso em cada uma das mquinas so as seguintes: [push f; push e; mul; push d; sub; push b; push c; mul; push a; add; div.] 88 bits. [load 4; mul 5; store 6; load 3; sub 6; store 6; load 1; mul 2; add 0; div 6] 240 bits. 0a 1b 2c 3d 4e 5f 6 7

acc Load m armazena no acumulador Store m carrega o contedo do acumulador na memria [mul 4,5; sub 3,4; mul 1,2; add 0,1; div 0,3] 200 bits. 0a 1b 2c 3d 4e 5f 6 7 [mul 6,4,5; sub 7,6, 3; mul 6, 1,2; add 5,6,0; div 6, 7, 5)] 280 bits. 0a 1b 2c 3d 4e 5f 6 7

M um endereo de memria de 16 bits e X, Y e Z so endereos de memria de 16 bits ou nmeros de registradores de 4 bits. A mquina que no faz referncia a qualquer endereos usa uma pilha, a que referencia somente um endereo, usa o acumulador e as outras duas tm 16 registradores e instrues que operam sobre todas as combinaes de endereos de memria e registradores. SUB X, Y subtrai Y de X e SUB X,Y,Z subtrai Z de Y e coloca o resultado em X. Considerando cdigos de operao de 8 bits e comprimentos de instruo sempre mltiplos de 4, pergunta-se: quantos bits cada uma das mquinas gasta para calcular o valor de X? 30. Escreva um programa para clculo de Fatorial. Semelhante ao exemplo das Torres de Hani, ilustre os estados da pilha para clculo do fatorial de 8. Dicas: a. n! = n(n-1)! b. Condio-limite: 0! = 1

Comentrios pg. 197 5.1.2 Modelos de memria. O uso de clulas de 8 bits (um byte) tem relao com os caracteres ASCII que utilizam 7 bits. Isso permite que 1 bit seja utilizado para a paridade. Em geral, os bytes so agrupados em palavras de 4 bytes (32 bits) ou 8 bytes (64 bits). Muitas arquiteturas requerem que as palavras sejam alinhadas em suas fronteiras naturais; assim, por exemplo, uma palavra de 4 bytes pode comear no endereo 0, 4, 8, ... Uma palavra de 8 bytes pode comear no endereo 0, 8, 16, ... O alinhamento costuma ser exigido porque memrias funcionam com mais eficincia desse modo. Ter a capacidade de ler palavras em endereos arbitrrios requer lgica extra no chip, o que o torna maior e mais caro. Comentrios pg. 198 5.1.3 Registradores. Os registradores controlam a execuo do programa, retm resultados temporrios ... De modo geral, a funo do registrador prover acesso rpido a dados muito usados. Comentrios pg. 199 5.1.4 Instrues. A principal caracterstica do nvel ISA seu conjunto de instrues de mquina, que controlam o que a mquina pode fazer. Comentrios pg. 224 5.5.6 Controle de lao

Algumas vezes necessrio executar um grupo de instrues por um determinado nmero de vezes. Nesse tipo de operao, utiliza-se um contador que aumentado ou reduzido cada vez que o lao percorrido.