MICROPROCESSADORES. Arquitectura do Conjunto de Instruções. Nuno Cavaco Gomes Horta. Universidade Técnica de Lisboa / Instituto Superior Técnico



Documentos relacionados
Arquitectura de Computadores

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann

MICROPROCESSADORES Nuno Cavaco Gomes Horta Universidade Técnica de Lisboa / Instituto Superior Técnico

Conjunto de instruções. O Conjunto de Instruções. Conjunto de instruções. Instruções típicas. Instruções típicas. Instruções típicas

Arquitectura de Computadores

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

Arquitetura de Computadores - Revisão -

MICROPROCESSADORES. Unidade de Entrada/Saída (I/O) Nuno Cavaco Gomes Horta. Universidade Técnica de Lisboa / Instituto Superior Técnico.

Edeyson Andrade Gomes

Arquitetura de Computadores RISC x CISC. Gustavo Pinto Vilar

Introdução à Arquitetura de Computadores

BARRAMENTO DO SISTEMA

Arquitetura de Computadores. Tipos de Instruções

3º Trabalho de Laboratório. Unidade de Controlo Microprogramada

Componentes básicos de um sistema computacional. Cap. 1 (Stallings)

Componentes do Computador e. aula 3. Profa. Débora Matos

A Unidade Central de Processamento é a responsável pelo processamento e execução de programas armazenados na MP.

Arquitetura de Computadores - Princípio de Funcionamento da CPU. Por Helcio Wagner da Silva

Dispositivos de Entrada e Saída

Modos de entrada/saída

Interrupções. As interrupções são casos especiais de chamadas de procedimentos.

ARQUITETURA DE COMPUTADORES

Arquitectura de Computadores 2007/2008 2º Semestre Repescagem 1º Teste - 03/07/2008

Informática I. Aula 5. Aula 5-13/05/2006 1

Sistemas Operativos. Sumário. Estruturas de sistemas de computação. ! Operação de um sistema de computação. ! Estruturas de E/S

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano

Arquitectura de Computadores

Conjunto de Instruções e Arquitectura p.1

Arquitectura de Computadores RECUPERAÇÃO DO 1º TESTE

Sistemas Computacionais II Professor Frederico Sauer

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

Geração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO

Estrutura de um Computador

O Nível ISA. Modelo de programação Arquitecturas CISC e RISC Introdução ao IA-32 da Intel

2 Formalidades referentes ao trabalho

28/9/2010. Unidade de Controle Funcionamento e Implementação

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Figura 1 - O computador

Arquiteturas RISC. (Reduced Instructions Set Computers)

Aula 26: Arquiteturas RISC vs. CISC

Sistemas Operacionais. Revisando alguns Conceitos de Hardware

Processadores BIP. Conforme Morandi et al (2006), durante o desenvolvimento do BIP, foram definidas três diretrizes de projeto:

ULA Sinais de Controle enviados pela UC

ARQUITETURA DE COMPUTADORES

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

Arquitetura e Organização de Computadores

Organização de Computadores 1

3. O NIVEL DA LINGUAGEM DE MONTAGEM

1. NÍVEL CONVENCIONAL DE MÁQUINA (Cont.) 1.3. INSTRUÇÕES Conceitos Básicos

Nível da Microarquitetura

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

Capítulo 3 Processadores de Propósito Geral: Software

Arquitetura de Computadores

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

4-1. Parte2: A Arquitetura do Conjunto de Instruções

Introdução. ULA: Faz os Cálculos UC: Como isso tudo ocorre?

RISC - Reduced Instruction Set Computer

MODOS DE ENDEREÇAMENTO

Unidade Central de Processamento

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Arquitetura de Computadores - Arquitetura RISC. por Helcio Wagner da Silva

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Introdução à programação em linguagem assembly

Conjunto de instruções e modos de. aula 4. Profa. Débora Matos

Primeiro nível desenvolvido, historicamente Atualmente existente entre o nível da microarquitetura e do sistema operacional

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Arquitectura de Computadores. Dicas e Truques do Assembly do P3

Primeiros "computadores" digitais. Execução de um programa. Consolas. Primórdios dos computadores. Memória interna. Computadores com memória interna

Arquitetura de Computadores. Ivan Saraiva Silva

Sistemas Operacionais. Prof. André Y. Kusumoto

Informática I. Aula 4. Aula 4-11/09/2006 1

Arquitectura de Computadores

Arquitectura de Computadores

Organização Básica do Computador

ARQUITETURA DE COMPUTADORES

1. SINTAXE DA LINGUAGEM ASSEMBLY

Introdução à Programação 2006/07. Computadores e Programação

Selecção de Instruções

Processador ( CPU ) E/S. Memória. Sistema composto por Processador, Memória e dispositivos de E/S, interligados por um barramento

Arquitetura de Computadores. Arquitetura de Computadores 1

Sistemas Operacionais

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Microprocessadores. Sistemas de Entrada / Saída

Arquitetura de Von Neumann. Computador ISA

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis

Organização e Arquitetura de Computadores I. Introdução. Ivan Saraiva Silva Leonardo Casillo

Organização e Arquitetura de Computadores I. de Computadores

Programação de Sistemas

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

ArchC. Wesley Nunes Gonçalves

RISC simples. Aula de Março de

Aula 14: Instruções e Seus Tipos

Processadores Características (Introdução)

Transcrição:

MICROPROCESSADORES Nuno Cavaco Gomes Horta Universidade Técnica de Lisboa / Instituto Superior Técnico Sumário Introdução Unidade de Processamento Unidade de Controlo Conjunto de Instruções Unidade Central de Processamento (CPU) Unidade de Entrada/Saída (I/O) Unidade de Memória Perspectiva Evolutiva das Arquitecturas de Computadores N. Horta, IST - UTL 2005/2006 2 1

Arquitectura Genérica de um Computador N. Horta, IST - UTL 2005/2006 3 Conceitos/Definições das Arquitecturas de Computadores Linguagem Máquina: Linguagem binária utilizada na definição e armazenamento de instruções em memória. Linguagem Assembly: Linguagem simbólica, utilizada para efeito de programação, que utiliza nomes em vez dos códigos de operação, endereços e operandos binários. Formato das Instruções: O conjunto de bits que compõem a instrução organizam-se em grupos ou campos designados por (podem surgir outras tipo de campos não especificados nesta fase): opcode - código da operação a ser executada; address - endereço para selecção de uma posição de memória ou registo do processador; mode - modo como o campo de endereço deve ser interpretado. N. Horta, IST - UTL 2005/2006 4 2

Conceitos/Definições das Arquitecturas de Computadores Ciclo Básico de Operação de um Computador: A U. de Controlo é projectada para executar cada instrução de um programa seguindo os seguintes passos: 1. Aquisição de instrução da memória para um registo de controlo. 2. Descodificação de instrução 3. Localização dos operandos utilizados pela instrução. 4. Aquisição de operando da memória (caso seja necessário) 5. Execução da operação 6. Armazenamento do resultado e regresso ao passo 1. Conjunto de Registos: Registos da CPU acessíveis ao programador, normalmente descritos no manual de programação Assembly, neste caso: Registos de uso geral (R0 a R7) Contador do Programa (PC Program Counter) Registo de Estado (PSR Processor Status Register) Apontador para a Pilha (SP Stack Pointer) N. Horta, IST - UTL 2005/2006 5 Conceitos/Definições das Arquitecturas de Computadores Endereçamento de Operandos: O endereçamento explícito de operandos pode ser através da especificação do endereço de memória ou do endereço do registo do processador, contudo, o endereçamento de um operando pode também ser feito de forma implícita através do código da operação. Definição da : O número de operandos de endereçamento explícito, numa instrução de manipulação de dados, e destes o número de operandos que podem ser directamente endereçados em memória são factores fundamentais na definição de uma Arquitectura para o Conjunto de Instruções e, naturalmente, na dimensão das instruções. N. Horta, IST - UTL 2005/2006 6 3

Endereçamento de Operandos A influência do número de operandos no desenvolvimento de programas será ilustrada através do cálculo da seguinte expressão aritmética: X=(A+B)(C+D) Instruções com 3 Operandos, de Endereçamento Explícito: (a) Armazenamento temporário em memória (A,B,C,D,X,T1,T2 são Endereços de memória) ADD T1,A,B ADD T2,C,D MUL X,T1,T2 M[T1]M[A]+M[B] M[T2]M[C]+M[D] M[X]M[T1]xM[T2] (b) Armazenamento temporário em registo ADD R1,A,B ADD R2,C,D MUL X,R1,R2 R1M[A]+M[B] R2M[C]+M[D] M[X]R1xR2 A B C D X T1 T2 MEM. 12 3 4 8 180 15 12 N. Horta, IST - UTL 2005/2006 7 Endereçamento de Operandos (cont.) X=(A+B)(C+D) Instruções com 2 Operandos: Cada campo de endereço permite especificar um registo ou um endereço de memória. O registo R1 pode substituir T1 (endereço de memória) no armazenamento temporário. MEM. MOVE T1,A ADD T1,B MOVE X,C ADD X,D M[T1]M[A] M[T1]M[T1]+M[B] M[X]M[C] M[X]M[X]+M[D] A B C D 12 3 4 8 MUL X,T1 M[X]M[X]x M[T1] X 180 T1 T2 15 12 N. Horta, IST - UTL 2005/2006 8 4

Endereçamento de Operandos (cont.) X=(A+B)(C+D) Instruções com 1 Operando: No caso das arquitecturas com instruções de apenas um operando (explícito) é utilizado um registo - acumulador - de forma implícita para obter um dos operandos e para localizar o resultado da operação. MEM. LD A ADD B ST X LD C ACCM[A] ACCACC+M[B] M[X]ACC ACCM[C] ACC A B C D 12 3 4 8 ADD D ACCACC+M[D] X 180 MUL X ACCACC x M[X] T1 15 ST X M[X]ACC T2 12 N. Horta, IST - UTL 2005/2006 9 Endereçamento de Operandos (cont.) X=(A+B)(C+D) Instruções sem Operandos: No caso das arquitecturas com instruções sem operandos (explícitos), todos os operandos terão de surgir de forma implícita. A forma convencional de solucionar este problema é recorrendo a um STACK (pilha), estrutura de memória do tipo LIFO para armazenamento de dados dinâmicos. (TOS Top of Stack) PUSH A TOSM[A] STACK STACK STACK STACK STACK PUSH B TOSM[B] [A] [A]+[B] [A]+[B] [A]+[B] (...) x (...) ADD TOSTOS+TOS -1 PUSH C TOSM[C] [D] [B] [C] [C]+[D] PUSH D TOSM[D] ADD TOSTOS+TOS -1 MUL TOSTOSxTOS -1 N. Horta, IST POP - UTL X M[X]TOS 2005/2006 10 5

Arquitecturas de Endereçamento Classificação: 1. Memory-Memory: O endereçamento dos operandos é na totalidade realizado sobre a memória. 2. Register-Register ou Load/Store: O endereçamento dos operandos faz-se com recusro a registos. O acesso à memória é restrito às instruções do tipo LD (load) e ST (store). Nota: No caso de ser necessária uma palavra de memória adicional para especificar o endereço de cada operando, o número de acessos à memória no primeiro caso é de 21, enquanto no segundo é de 18.Justifique! MEMORY-MEMORY REGISTER-REGISTER ADD T1,A,B M[T1]M[A]+M[B] LD R1,A R1M[A] ADD T2,C,D M[T2]M[C]+M[D] LD R2,B R2M[B] MUL X,T1,T2 M[X]M[T1]xM[T2] ADD R3,R1,R2 R3R1+R2 LD R1,C R1M[C] A solução Memory-Memory conduz a uma LD R2,D R2M[D] maior complexidade das estruturas de ADD R1,R1,R2 R1R1+R2 N. controlo, Horta, IST enquanto - UTL na Register-Register é 2005/2006 MUL R1,R1,R3 R1R1xR311 necessário um maior número de registos. ST X,R1 M[X]R1 Arquitecturas de Endereçamento (cont.) Classificação: 3. Register-Memory: O endereçamento dos operandos faz-se com recurso a registos e memória. 4. Single Accumulator: O endereçamento não recorre a registos de uso geral, sendo as transferências realizadas na totalidade entre a memória e o registo Acumulador. 5. Stack: O endereçamento é realizado de forma implícita com recurso ao STACK. N. Horta, IST - UTL 2005/2006 12 6

Modos de Endereçamento O modo de endereçamento descreve o modo como os operandos são seleccionados durante a execução do programa. O endereço do operando obtido pelas regras subjacentes aos modos de endereçamento designa-se endereço efectivo. Os vários modos de endereçamento tem por objectivos fundamentais: 1. Conferir Flexibilidade de Programação através da utilização de apontadores para memória, contadores para controlo de ciclos, indexação dos dados e relocalização de programas. 2. Reduzir o número de bits nos campos de endereço da instrução. A especificação do modo de endereçamento pode ser através de um campo próprio ou fazer parte do código da operação. N. Horta, IST - UTL 2005/2006 13 Modos de Endereçamento (Formato das Instruções) N. Horta, IST - UTL 2005/2006 14 7

Modos de Endereçamento Opcode Endereço ou Operando 1. Implícito: Operando especificado de forma implícita, não é referido explicitamente na instrução, e.g., ADD. 2. Imediato: Operando especificado na instrução, e.g., MOVE R1,3. 3. Registo: Operando corresponde a um registo do processador, e.g., MUL R1,R2,R3. Add Move Mul 4. Indirecto por Registo: Endereço do operando corresponde ao conteúdo do registo especificado na operação, e.g., ADD (R1),3. Add N. Horta, IST - UTL 2005/2006 15 ---- 3 --- 3 Modo Implícito Imediato Registo Indirecto p/ Reg. Modos de Endereçamento 5. Directo: Operando obtido pela especificação do seu endereço em memória no campo de endereço da instrução, e.g,, ACCM[ADRS]. N. Horta, IST - UTL 2005/2006 16 8

Modos de Endereçamento 5. Directo (cont.):... e.g., instrução de salto condicional. N. Horta, IST - UTL 2005/2006 17 Modos de Endereçamento 6. Indirecto: O campo de endereço da instrução especifica o endereço de memória que guarda o endereço efectivo do operando, e.g., ACCM[M[ADRS]]. LD ADRS Indirecto 7. Relativo: O endereço efectivo do operando é determinado pela soma do valor do campo de endereço da instrução com o conteúdo de um registo da CPU, tipicamente o PC, i.e., end.efectivo = campo_end_inst + PC. LD ADRS Relativo 8. Indexado: O endereço efectivo do operando é determinado pela soma do valor do campo de endereço da instrução com o conteúdo de um registo de índice ou de base que define o endereço de início de um array, i.e., end.efectivo = campo_end_inst + Registo_Índice. LD Indexado N. Horta, IST - UTL 2005/2006 18 ADRS 9

Modos de Endereçamento - Sumário Simbologia (Mano): ADRS Endereço Efectivo #NBR Número @ ou [ADRS] Endereço Indirecto $ADRS Endereço Efectivo relativo ao PC ADRS (R1) Endereço Efectivo relativo ao R1 R1 Registo (R1) N. Horta, IST Endereço - UTL Efectivo em R1 2005/2006 19 Modos de Endereçamento - Sumário Simbologia (Mano): ADRS Endereço Efectivo #NBR Número @ ou [ADRS] Endereço Indirecto $ADRS Endereço Efectivo relativo ao PC ADRS (R1) Endereço Efectivo relativo ao R1 R1 Registo (R1) N. Horta, IST Endereço - UTL Efectivo em R1 2005/2006 20 10

Modos de Endereçamento - Sumário Simbologia (Mano): ADRS Endereço Efectivo #NBR Número @ ou [ADRS] Endereço Indirecto $ADRS Endereço Efectivo relativo ao PC ADRS (R1) Endereço Efectivo relativo ao R1 R1 Registo (R1) N. Horta, IST Endereço - UTL Efectivo em R1 2005/2006 21 Modos de Endereçamento - Sumário Simbologia (Mano): ADRS Endereço Efectivo #NBR Número + @ ou [ADRS] Endereço Indirecto $ADRS Endereço Efectivo relativo ao PC ADRS (R1) Endereço Efectivo relativo ao R1 R1 Registo (R1) N. Horta, IST Endereço - UTL Efectivo em R1 2005/2006 22 11

Modos de Endereçamento - Sumário Simbologia (Mano): ADRS Endereço Efectivo #NBR Número @ ou [ADRS] Endereço Indirecto $ADRS Endereço Efectivo relativo ao PC ADRS (R1) Endereço Efectivo relativo ao R1 R1 Registo + (R1) N. Horta, IST Endereço - UTL Efectivo em R1 2005/2006 23 Modos de Endereçamento - Sumário Simbologia (Mano): ADRS Endereço Efectivo #NBR Número @ ou [ADRS] Endereço Indirecto $ADRS Endereço Efectivo relativo ao PC ADRS (R1) Endereço Efectivo relativo ao R1 R1 Registo (R1) N. Horta, IST Endereço - UTL Efectivo em R1 2005/2006 24 12

Modos de Endereçamento - Sumário Simbologia (Mano): ADRS Endereço Efectivo #NBR Número @ ou [ADRS] Endereço Indirecto $ADRS Endereço Efectivo relativo ao PC ADRS (R1) Endereço Efectivo relativo ao R1 R1 Registo (R1) N. Horta, IST Endereço - UTL Efectivo em R1 2005/2006 25 Arquitecturas do Conjunto de Instruções O conjunto de instruções de diferentes computadores varia em vários aspectos, e.g., código de operação no campo opcode da instrução, o nome simbólico dado às instruções, etc. Classes de Arquitecturas de Instruções: RISC Reduced Instruction Set Computers 1. Acesso à memória restrito a instruções de carregamento load - e armazenamento store. As instruções de manipulação de dados são do tipo Registo-Registo. 2. Modos de Endereçamento em número limitado. 3. Formatos das Instruções todos da mesma dimensão. 4. As instruções correspondem à execução de operações elementares O objectivo das arquitecturas RISC é conferir um elevado ritmo de execução, para isso minimiza os acessos à memória e em contrapartida aumenta o número de registos da CPU. A dimensão fixa das instruções e a simplicidade das suas operações conduz a unidades de controlo relativamente simples, tipicamente Hardwired e arquitecturas pipelined. N. Horta, IST - UTL 2005/2006 26 13

Arquitecturas do Conjunto de Instruções Classes de Arquitecturas de Instruções: (cont.) CISC Complex Instruction Set Computers 1. Acesso à memória disponível para a generalidade dos tipos de instrução. 2. Modos de Endereçamento em número elevado. 3. Formatos das Instruções de diferentes dimensões. 4. As instruções executam tanto operações elementares como operações complexas. O objectivo das arquitecturas CISC é conferir uma maior proximidade entre as operações utilizadas em linguagens de programação e as operações desencadeadas por cada instrução. Facilita o desenvolvimento de programas compactos e eficiência em termos de desempenho advém de um menor número de acessos à memória em relação ao número de operações elementares realizadas. Neste caso, a CPU apresenta um menor número de registos do que nas arquitecturas RISC e a utilização do controlo microprogramado é o mais usual dada a variedade de formatos de instruções utilizados. Nota: Cada instrução CISC, em geral, corresponde a uma sequência de instruções RISC. N. Horta, IST - UTL 2005/2006 27 Arquitecturas do Conjunto de Instruções Classes de Arquitecturas de Instruções: (cont.) RISC, CISC Independentemente das arquitecturas serem CISC, RISC ou uma solução híbrida CISC-RISC, existe, tipicamente, um conjunto de operações elementares disponíveis na generalidade dos casos e associadas às seguintes classes: Instruções de Transferência de Dados: Transferência de dados de uma localização para outra sem alterar a informação. Instruções de Manipulação de Dados: Execução de operações aritméticas, lógicas e de deslocamento. Instruções de Controlo de Programa: Permitem decidir sobre o fluxo do programa durante a sua execução. N. Horta, IST - UTL 2005/2006 28 14

Instruções de Transferência de Dados Memória Registo LD, ST, MOVE, XCH Registo Registo MOVE, XCH Memória Memória MOVE, XCH Stack (Pilha) Registo, Memória PUSH, POP I/O (Entradas/Saídas - Periféricos) IN, OUT N. Horta, IST - UTL 2005/2006 29 Instruções de Transferência de Dados EXEMPLO: STACK (Instruções) Instrução PUSH R1 Microoperação SPSP-1, M[SP]R1 STACK POP R1 R1M[SP], SPSP+1 A memória em STACK apresenta a vantagem de poder ser referida pelo processador sem ter de especificar o endereço. N. Horta, IST - UTL 2005/2006 30 15

Instruções de Transferência de Dados EXEMPLO: I/O (Instruções) a) I/O Isolado Instrução Microoperação IN R1, Porto R1[Porto] OUT Porto, R1 [Porto]R1 b) Memory-Mapped I/O Instrução Microoperação LD R1, Porto R1[Porto] Porto: Registo, identificado por um endereço, associado a um determinado periférico. I/O Isolado: Espaço de endereçamento específico para I/O. Memory-Mapped I/O: Espaço de endereçamento idêntico para acessos à memória e a I/O. Neste caso, não existe diferenciação entre instruções de acesso a memória e a I/O. ST Porto, R1 [Porto]R1 N. Horta, IST - UTL 2005/2006 31 Instruções de Manipulação de Dados Aritméticas N. Horta, IST - UTL 2005/2006 32 16

Instruções de Manipulação de Dados Lógicas N. Horta, IST - UTL 2005/2006 33 Instruções de Manipulação de Dados Deslocamento N. Horta, IST - UTL 2005/2006 34 17

Instruções de Controlo de Programa Salto Incondicional JMP, SKP Salto Condicional - BR Chamada/Retorno a/de Procedimento CALL, RET Comparação CMP, TEST N. Horta, IST - UTL 2005/2006 35 Instruções de Controlo de Programa Salto Condicional Bits de estado Num. sem sinal Num. com sinal N. Horta, IST - UTL 2005/2006 36 18

Instruções de Controlo de Programa Chamada/Retorno a/de Procedimento EXEMPLO: CALL e RET a) CALL Instrução CALL PROC b) RET Instrução RET Microoperação SPSP-1, M[SP]PC, PCENDEREÇO EFECTIVO Microoperação PCM[SP], SPSP+1 CALL: Chamada a procedimento com armazenamento no STACK do endereço de retorno e carregamento do PC com o endereço de início do procedimento. RET: Retorno do procedimento com carregamento do PC com o endereço de retorno no programa principal. N. Horta, IST - UTL 2005/2006 37 Interrupções A Interrupção corresponde à ocorrência de um pedido interno ou externo ao processador que provoca a interrupção do programa correntemente em execução passando a ser executado o programa ou rotina de serviço a essa Interrupção. O controlo regressa ao programa original após a execução da rotina de serviço à Interrupção. Interrupção vs CALL 1. A interrupção surge, normalmente, num ponto indeterminado do programa e em consequência de um sinal interno ou externo ao processador. 2. O endereço da rotina de atendimento da interrupção é determinado por mecanismos de hardware em vez de ser através do campo de endereço de uma instrução. 3. A resposta a uma interrupção obriga à salvaguarda dos conteúdos dos vários registos do processador, uma vez que pode ocorrer em qualquer instante, em vez do simples armazenamento do endereço de retorno. N. Horta, IST - UTL 2005/2006 38 19

Interrupções Tipos de Interrupções: Interrupção Externa (hardware): Iniciada por um periférico de entrada ou de saída, por um circuito de monitorização da alimentação ou por qualquer outra fonte externa, e.g., transferência de dados, falha de alimentação, etc. Interrupção Interna (hardware): Provocada pelo uso ilegal ou erróneo de uma instrução ou dado, e.g., overflow aritmético, divisão por zero, etc. Interrupção de Software: Instrução executada na sequência, natural, da execução de um programa, e.g., chamadas ao sistema. N. Horta, IST - UTL 2005/2006 39 Interrupções Processamento de Interrupções Externas Microinstruções SPSP-1, M[SP]PC, SPSP-1, M[SP]PSR, EI0, INTACK1, PCIVAD N. Horta, IST - UTL 2005/2006 40 20

BIBLIOGRAFIA [1] M. Morris Mano, Charles R. Kime, Logic and Computer Design Fundamentals, Prentice-Hall International, Inc. (Capítulo 9) N. Horta, IST - UTL 2005/2006 41 21