O que são interrupções e como podem ser geradas no microprocessador Z80

This work describes the technical aspects of VXt version 2.5, a software simulator of Intel 8086 processor that is being developed at Computing Science Department of FURB - Universidade Regional de Blumenau. This software is being used as a tool in Operating Systems and Hardware Architecture classes. Palavras-chave: arquitetura de computadores, simulação, sistemas operacionais, software didático. 1. Introdução O currículo

Interrup��es

Motiva��o

Para controlar entrada e sa�da de dados, n�o � interessante que a CPU tenha que ficar continuamente monitorando e status de dispositivos como discos ou teclados. O mecanismo de interrup��es permite que o hardware "chame a aten��o" da CPU quando h� algo a ser feito.

Interrup��es ass�ncronas e s�ncronas

Interrup��es geradas por algum dispositivo externo � CPU, como teclado ou controlador de disco, s�o chamadas de interrup��es de hardware ou ass�ncronas (ocorrem independentemente das instru��es que a CPU est� executando.

Quando ocorre uma interrup��o, a CPU interrompe o processamento do programa em execu��o e executa um peda�o de c�digo (tipicamente parte do sistema operacional) chamado de tratador de interrup��o. Em muitos casos, ap�s a execu��o do tratador, a CPU volta a executar o programa interrompido.

 ----------------------------------------------------------------------
 exec. de prog. P  | exec. do tratador de interrup��o| retomada de P
                   |                                 |
 ----------------------------------------------------------------------
                  ^
                  |
                  interrup��o

Observe que, em termos de fluxo de controle, a execu��o do tratador � um pouco como uma chamada de rotina. No entanto, a chamada de rotina � iniciada por instru��es do programa em execu��o, e o tratador de interrup��o ass�ncrona n�o. Por isso, n�o h� nenhuma comunica��o entre o programa interrompido e o tratador (par�metros ou retorno)!

Um tipo importante de interrup��o de hardware � a interrup��o do rel�gio. Em particular, esse mecanismo permite ao sistema operacional atribuir quotas de tempos de execu��o (fatias de tempo) para cada um dos processos em um sistema multiprograma. A cada interrup��o do rel�gio, o tratador pode verificar se a fatia de tempo do processo em execu��o j� se esgotou e, se for esse o caso, suspend�-lo e acionar o escalonador para que esse escolha outro processo para colocar em execu��o.

Um outro tipo de interrup��o s�o as interrup��es s�ncronas, muitas vezes tamb�m chamadas de traps. Traps ocorrem em consequ�ncia da instru��o sendo executada.

Algumas s�o geradas pelo hardware, para indicar por exemplo overflow em opera��es aritm�ticas ou acesso a regi�es de mem�ria n�o permitidas. Essas s�o situa��es em que o programa n�o teria como prosseguir. O hardware sinaliza uma interrup��o para passar o controle para uma parte do sistema operacional (o tratador da interrup��o em quest�o), que tipicamente termina a execu��o do programa.

Traps tamb�m podem ser geradas explicitamente por instru��es do programa. Essa � uma forma do programa acionar o sistema operacional, por exemplo para requisitar um servi�o de entrada ou sa�da. Um programa n�o pode "chamar" uma rotina do sistema operacional, j� que o sistema operacional � um processo a parte, com seu pr�prio espa�o de endere�amento. Atrav�s do mecanismo de interrup��o de software, um processo qualquer pode ativar um tratador que pode "encaminhar" uma chamada ao sistema operacional.

Traps tamb�m s�o usadas em situa��es onde o programa n�o tem como prosseguir pois aconteceu uma exce��o como overflow aritm�tico, tentativa de acesso a endere�o inv�lido ou estouro da pilha.

Como as interrup��es s�ncronas ocorrem em fun��o da instru��o que est� sendo executada, nesse caso � at� poss�vel o programa passar algum par�metro para o tratador. Isso ocorre com frequencia no caso de interrup��es usadas para chamar o sistema operacional.

Suporte de hardware

Tipicamente, o hardware detecta que ocorreu uma interrup��o, aguarda o final da execu��o da instru��o corrente e aciona o tratador, antes salvando o contexto de execu��o so processo interrompido. Para que a execu��o do processo possa ser reiniciada mais tarde, � necess�rio salvar o program counter e outros registradores de status. Os registradores com dados do programa devem ser salvos pelo pr�prio tratador (ou seja, por software) caso ele os utilize.

Em muitas arquiteturas, existe uma pilha independente associada ao tratamento de interrup��es.

Chamadas ao sistema no IA-32

A instru��o int n do assembly IA-32 gera um trap. Historicamente, chamadas ao sistema s�o feitas com int $0x80. No Linux, antes de se executar essa instru��o, o n�mero da chamada (ou seja, a defini��o do servi�o a ser executado) deve ser colocado no registrador %eax, e os argumentos nos registradores %ebx, %ecx, %edx, %esi e %edi. Depois que o sistema operacional executa o servi�o requisitado, o controle retorna � instru��o seguinte a int, com o valor de retorno em %eax.

Refer�ncias:

  • CS:APP, se��o 8.1.
  • livro Karen Miller, se��es 14.1-14.3, na pasta 1329 do copias.com

O que são interrupções em dispositivos microprocessados?

Interrupção é um evento que obriga o microprocessador a suspender suas atividades temporariamente, para atender exclusivamente uma rotina indicada pelo evento que o interrompeu. Interrupção pode ser considerada um desvio de um ponto do software para outro preestabelecido.

O que são interrupções e quais são seus tipos?

Se implementado como parte do controlador de memória, as interrupções são mapeadas para dentro do sistema de espaço de endereço de memória. Interrupções podem ser categorizadas em: maskable interrupt, non-maskable interrupt (NMI), inter-processor interrupt (IPI), software interrupt, e spurios interrupt.

O que são interrupções como funcionam?

Uma interrupção é um evento externo que causa o processador parar a execução do programa corrente e desviar a execução para um bloco de código chamado rotina de interrupção (normalmente são decorrentes de operações de E/S).