next up previous contents
Next: Computadores com Jogo de Up: Arquitectura e Organiza��o Interna Previous: Jogos de Instru��es: Modos


Processador Estrutura e Fun��o

Este cap�tulo discute os aspectos do processador, ainda, n�o cobertos na parte III e estabelece a plataforma para a discuss�o das arquitecturas RISC e super-escalar nos cap�tulos 12 e 13.

O cap�tulo come�a com um resumo da organiza��o do processador. Os registos que constituem a mem�ria interna do processador s�o ent�o analisados. Ficamos, ent�o, numa posi��o para regressar � discuss�o (iniciada na sec��o 3.2) do ciclo de instru��o. Uma descri��o do ciclo de instru��o e duma t�cnica comum chamada encadeamento de instru��es completa a descri��o. O cap�tulo conclui com o exame de alguns aspectos adicionais da organiza��o do Pentium e do PowerPc.

Organiza��o do Processador

Para compreender a organiza��o do processador, consideremos os requisitos do processador, as coisas que tem de fazer: � necess�rio que fique claro que para poder ser capaz de fazer estas coisas o processador necessita de guardar, temporariamente, alguns dados. Tem de ter presente a posi��o da �ltima instru��o para que possa saber de onde extrair a pr�xima instru��o. Tem de preservar, temporariamente, instru��es e dados enquanto uma instru��o est� a ser executada. Por outras palavras, o processador necessita de uma pequena mem�ria interna.

A figura 11-1 � uma vista simplificada do processador, indicando as suas liga��es ao resto do sistema atrav�s do barramento de sistema.

Figura 11.1: O processador com o barramento de sistema
\begin{figure}
\end{figure}

Um interface semelhante seria necess�rio para cada uma das estruturas de interconex�o apresentadas no cap�tulo 3. O leitor recordar� que o componentes mais importantes do processador s�o a unidade l�gica e aritm�tica (ALU) e a unidade de controlo (UC). A ALU � quem efectivamente efectua os c�lculos e o processamento dos dados. A unidade de controlo dirige o movimento de dados e de instru��es de e para o processador e controla a opera��o da ALU. A figura mostra, al�m do mais, uma mem�ria interna m�nima constitu�da por um jogo de posi��es de armazenamento chamados registos.

A figura 11-2 � uma vista ligeiramente mais detalhada do processador. Est�o indicados os caminhos para a transfer�ncia de dados e para a l�gica de controlo, incluindo um elemento designado por barramento interno do processador. Este elemento � necess�rio para mover os dados entre os v�rios registos e a ALU, uma vez que a ALU, de facto, opera exclusivamente sobre dados na mem�ria interna do processador. A figura tamb�m mostra os elementos t�picos b�sicos da ALU. � de notar a similaridade entre a estrutura interna do computador como um todo e a estrutura interna do processador. Em ambos os casos, h� uma pequena colec��o de elementos mais importantes (computador: processador, E/S, mem�ria; processador: unidade de controlo, ALU, registos) ligados atrav�s de caminhos de dados.

Figura 11.2: Estrutura interna do processador.
\begin{figure}
\end{figure}

Organiza��o dos registos

Tal como foi discutido no cap�tulo 4, um sistema de computa��o usa uma hierarquia de mem�ria. Nos n�veis mais elevados da hierarquia, a mem�ria � mais r�pida, mais pequena e mais dispendiosa (por bit). Dentro do processador, h� um conjunto de registos que funcionam a um n�vel de mem�ria superior, na hierarquia, � mem�ria principal e � cache. Os registos no processador servem para duas fun��es:

N�o h� uma separa��o n�tida dos registos pertencentes a estas duas categorias. Por exemplo em algumas m�quinas o contador de programa � vis�vel ao programador (e.g. VAX) mas em muitos outros n�o �. Contudo, para efeito da discuss�o que segue iremos usar estas categorias.

Registos vis�veis ao utilizador

Um registo vis�vel ao utilizador � aquele que pode ser referenciado atrav�s da linguagem m�quina que o processador executa. Virtualmente todos os projectistas de processadores actuais oferecem um certo n�mero de registos vis�veis ao utilizador, por oposi��o a um �nico acumulador. Podemos categoriz�-los nas seguintes categorias: Os registos de uso-geral podem ser dedicados pelo programador a uma variedade de fun��es . Algumas vezes a sua utiliza��o no jogo de instru��es � ortogonal � opera��o. Isto corresponde a uma verdadeira utiliza��o de uso geral. Muitas vezes, por�m, h� restri��es. Por exemplo, podem existir registos dedicados para opera��es de v�rgula flutuante.

Em alguns casos, os registos de uso geral podem ser usados para fun��es de endere�amento (e.g. indirecto por registo, deslocamento). Em outros casos, h� uma n�tida, ou parcial, separa��o entre registos de dados e de endere�amento. Os registos de dados devem ser usados, apenas, para guardar dados e n�o dever�o ser usados para o c�lculo do endere�o de um operando. Os registos de endere�os podem eles pr�prios ser, de alguma forma, de uso geral, ou podem ser dedicados a um modo de endere�amento espec�fico. Os exemplos incluem:

H� diversos t�picos de projecto que dever�o ser aqui considerados. Um t�pico importante � se os registos dever�o ser totalmente de uso geral ou dever�o ser de uso especializado. J�, antes, em cap�tulos precedentes, toc�mos neste assunto, uma vez que este afecta o projecto de jogo de instru��es. Com o uso de registos especializados pode, em geral, estar impl�cito no c�digo de opera��o o tipo de registo a que uma certa especifica��o de operando se refere. O especifica��o de operando tem apenas de identificar um registo de entre um jogo de registos especializados em vez de um registo de entre a totalidade dos registos, desta forma, poupando bits. Noutra perspectiva, esta especializa��o limita a flexibilidade do programador. Para este t�pico de projecto n�o existe solu��o nem final nem melhor, mas, como foi mencionado, a tend�ncia parece ser favor�vel ao uso de registos especializados.

Um t�pico de projecto � o n�mero de registos, a oferecer tanto de uso geral, como de dados mais endere�os. De novo, isto afecta o projecto de jogo de instru��es, uma vez que mais registos obriga a mais bits de especifica��o de operandos. Tal como discutimos anteriormente, qualquer coisa entre 8 e 32 registos pode ser �ptimo. Menos registos resulta em mais refer�ncias � mem�ria; mais registos n�o reduz significativamente as refer�ncias � mem�ria (e.g. ver). Contudo, uma nova abordagem que encontra vantagens no uso de centenas de registos manifesta-se em alguns sistemas RISC e � discutida no cap�tulo 12.

Finalmente, h� o t�pico de comprimento de registo. Os registos que t�m de conter endere�os t�m, obviamente, de ser pelo menos suficientemente longos para conter o maior dos endere�os. Os registos de dados devem ser capazes de guardar valores do maior n�mero de tipos de dados. Algumas m�quinas permitem que dois registos cont�guos possam ser usados como um para guardar valores de duplo-tamanho.

Uma categoria final de registos, que s�o, pelo menos, parcialmente vis�veis ao utilizador guardam c�digos de condi��o (tamb�m referidos como bandeiras). Os c�digos de condi��o s�o bits ajustados pelo hardware do processador como resultado das opera��es. Por exemplo, uma opera��o aritm�tica pode produzir um resultado positivo, negativo, zero ou excesso. Al�m do resultado, ele pr�prio, ser guardado num registo ou em mem�ria, �, tamb�m, feito um ajuste do c�digo de condi��o. O c�digo pode ser subsequentemente testado como parte da opera��o de uma deriva��o condicional.

Os bits do c�digo de condi��o s�o coleccionados em um ou mais registos. Habitualmente, fazem parte de um registo de controlo. Geralmente, as instru��es m�quina permitem que estes bits sejam lidos atrav�s de refer�ncias impl�citas, mas n�o podem ser alterados pelo programador.

Em alguma m�quinas, uma chamada a uma sub-rotina resulta na salvaguarda autom�tica da todos os registos vis�veis que ir�o ser restaurados no retorno. A salvaguarda e o restauro � efectuado pelo processador como fazendo parte da execu��o das instru��es de chamada e de retorno. Isto permite a cada sub-rotina usar de forma independente os registos vis�veis do utilizador. Em outras m�quinas, � da responsabilidade do programador salvaguardar o conte�do dos registos vis�veis ao utilizador relevantes imediatamente antes de uma chamada a sub-rotina, atrav�s da inclus�o de instru��es para esse fim.

Registos de Controlo e de Estado

H� uma variedade de registos de processador que s�o empregues para controlar a opera��o do processador. A maior parte destes, ma maioria das m�quinas, n�o s�o vis�veis ao utilizador. Alguns deles podem ser vis�veis para as instru��es m�quina executadas em modo de controlo ou de sistema de explora��o.

Claro, m�quinas diferentes ter�o diferentes organiza��es de registos e ir�o usar diferentes terminologias. Listamos aqui uma lista, razoavelmente, completa de tipos de registos, juntamente com uma descri��o breve.

Quatro registos s�o essenciais para execu��o de instru��es:

O contador de programa cont�m o endere�o de uma instru��o. Tipicamente, o contador de programa � actualizado pelo processador depois de cada instru��o de forma a apontar sempre para a pr�xima instru��o a ser executada. Uma deriva��o ou instru��o de omiss�o tamb�m ir� modificar o conte�do do PC. A instru��o extra�da � carregada num registo de instru��o, onde o c�digo de opera��o e a especifica��o de operando � analisada. As trocas de dados com a mem�ria s�o atrav�s do MAR e MBR. Numa sistema organizado em barramento, o MAR liga-se directamente ao barramento de endere�os e o MBR liga directamente ao barramento de dados. Os registos vis�veis do utilizador, por sua vez, trocam dados com o MBR.

Os quatros registos que acabamos de referir s�o usados para a movimenta��o de dados entre o processador e a mem�ria. Dentro do processador, os dados tem de ser apresentados ao processador para serem processados. A ALU pode ter acesso directo ao MBR e aos registos vis�veis do utilizador. Em alternativa, podem existir registos tamp�o adicionais pr�ximos da ALU; estes registos servem como registos de entrada de sa�da para a ALU e trocam dados com o MBR e os registos vis�veis do utilizador.

Todos os projectos de processadores incluem um registo ou jogo de registos, muitas vezes conhecidos como palavra de estado do programa (PSW) que cont�m informa��o de status. O PSW cont�m, tipicamente, c�digos de condi��o mais informa��o de status. Os campos comuns ou bandeiras incluem o seguinte:

H� um certo n�mero de outros registos relacionados com o status e o controlo que podem ser encontrados em projectos particulares de processadores. A juntar ao PSW, pode existir um apontador para um bloco de mem�ria contendo informa��o de status adicional (e.g. blocos de controlo de processos). Em m�quinas que utilizam interrup��es vectorizadas, pode existir um registo de vector de interrup��o. Se uma pilha � usada para implementar certas fun��es (e.g. chamada a sub-rotina) ent�o � necess�rio um apontador de pilha. Um apontador para tabela de p�ginas � usado com um sistema de mem�ria virtual. Finalmente, podem ser usados registos para controlo de opera��es de E/S.

Um certo n�mero de factores influenciam o projecto de organiza��o dos registos de controlo e de status Um t�pico chave � o suporte ao sistema de opera��o. Certos tipos de informa��o de controlo s�o de utilidade espec�fica do sistema de opera��o. Se o projectista do processador tiver um conhecimento da funcionalidade do sistema de explora��o a ser usado, ent�o a organiza��o de registos pode, em certa medida, ser ajustado ao sistema de explora��o.

Um outro t�pico de projecto � a aloca��o de informa��o de controlo entre os registos e a mem�ria. � habitual dedicar as primeiras (mais baixos) centenas ou milhares de palavras de mem�ria para efeitos de controlo. O projectista tem de decidir quanta informa��o de controlo deve residir em registos e quanta deve residir em mem�ria. Surge ent�o o habitual compromisso custo versus velocidade.

Exemplo de Organiza��o de Registos de Micro-processador

� instrutivo examinar e comparar a organiza��o de registos de sistemas compar�veis. Nesta sec��o, olhamos para tr�s micro-processadores de 16-bits que foram projectados mais ou menos ao mesmo tempo: O Zilog Z8000 o Intel 8086 e o Motorola MC68000. A figura 11-3 mostra a organiza��o de registos de cada um; registos puramente internos, tais como registos de endere�amento de mem�ria n�o s�o apresentados.

Figura 11.3: Organiza��o dos registos de um microprocessador.
\begin{figure}
\end{figure}

O Z8000 faz uso de 16 registos de 16-bits de uso-geral, que podem ser usados para dados, endere�amento e indexa��o. Os projectistas sentiram que era mais importante oferecer um jogo de registos regularizados em vez de poupar em bits de instru��o atrav�s do uso de registos de uso-espec�fico. Al�m disso, eles preferiram deixar ao programador a atribui��o de fun��es aos registos, assumindo que poderiam existir diferentes arranjos para diferentes aplica��es. Os registos podem ser usados para opera��es de 8-bits e de 32-bits. � usado um espa�o de endere�amento segmentado ( 7-bits para n�mero de segmento, 16 bits para deslocamento) sendo necess�rio dois registos para conter um endere�o simples. Dois dos registos s�o tamb�m usados como apontadores de pilha impl�citos para modo de sistema e modo normal.

O Z8000 tamb�m inclui cinco registos relacionados com o status do programa. Dois registos cont�m o contador de programa e dois o endere�o da �rea de Status do Programa em mem�ria. Um registo de condi��es de 16-bits mant�m v�rios bits de status e de controlo.

O Intel 8086 segue uma abordagem diferente � organiza��o de registos. Todo o registo � de uso espec�fico, embora alguns registos possam tamb�m ser usados como registos de uso-geral. O 8086 cont�m quatro registos de dados de 16-bits que s�o acess�veis numa base de 8 ou 16-bits e quatro apontadores de 16-bits e registos e �ndice. Os registos de dados podem ser utilizados como de uso-geral em algumas instru��es. Em outras, os registos s�o usados implicitamente. Por exemplo uma instru��o de multiplica��o usa sempre o acumulador. Os quatro registos apontadores s�o tamb�m usados implicitamente num certo n�mero de instru��es; cada um cont�m um deslocamento de segmento. H� tamb�m quatro registos de segmentos de 16-bits. Tr�s dos quatro registos de segmento s�o usados, de forma dedicada e impl�cita, para apontar para o segmento da instru��o corrente (�til em instru��es de deriva��o), um segmento que cont�m dados e um segmento que cont�m a pilha, respectivamente. Estes usos dedicados e impl�citos suportam codifica��o compacta pagando o custo da redu��o em flexibilidade. O 8086 tamb�m inclui um apontador de instru��es e um jogo de condi��es de 1-bit para status e controlo.

O Motorola MC68000 cai, de alguma maneira, entre as filosofias de projecto dos micro-processadores Zilog e Intel. O MC68000 parte os seus registos de 32-bits em oito registos de dados e nove registos de endere�os. Os oito registos de dados s�o usados em primeiro lugar para o manuseamento de dados e s�o usados em endere�amento apenas como registos de �ndice. A largura dos registos permite opera��es de dados sobre 8-, 16- e 32-bits, determinadas pelo c�digo de opera��o. Os registos de endere�amento cont�m endere�os de 32-bits (sem segmenta��o); dois destes registos s�o tamb�m usados como apontadores para a pilha, um para utilizadores e outro para o sistema de explora��o, dependendo do modo de execu��o corrente. Ambos os registos t�m o n�mero 7, uma vez que s� um pode ser usado de cada vez. O MC68000 tamb�m inclui um contador de programa de 32-bits e um registo de status de 16-bits.

Tal como os projectistas do Zilog, A equipa da Motorola pretendia uma jogo de instru��es regular, sem registos de uso-especial. Uma preocupa��o com a efici�ncia do c�digo levou-os a dividir os registos em dois componentes funcionais, poupando um bit em cada especificador de registo. Isto parece um compromisso razo�vel entre a generaliza��o completa e a compacta��o do c�digo.

Os termos desta compara��o devem ser claros. N�o h�, ainda, nenhuma filosofia universalmente aceite acerca da melhor maneira de organizar os registos do processador. Tal como com o projecto de jogo de instru��es e muitos outros t�picos do projecto de processadores, � ainda uma quest�o de gosto e de op��o.

Um segundo ponto instrutivo respeitante � organiza��o de registos � ilustrado pela figura 11-4. Esta figura mostra a organiza��o dos registos vis�veis ao utilizadores para o Zilog 80000 e o Intel 80386 que s�o micro-processadores de 32-bits projectados como extens�es ao Z8000 e ao 8086 respectivamente11.1. Ambos os dois novos processadores usam, registos de 32-bits. Contudo, para manter a compatibilidade dos programas escritos para m�quinas mias antigas, ambos os novos processadores ret�m a organiza��o original dos registos embebida na nova organiza��o. Dadas estas restri��es os arquitectos de processadores de 32-bits tiveram uma flexibilidade limitada no projecto de organiza��o de registos.

Figura 11.4: Extens�o da organiza��o de registos em microprocessador de 32-bits.
\begin{figure}
\end{figure}

O ciclo de Instru��es

Na sec��o 3.2 descrevemos o ciclo de instru��es do processador. A figura 11.5 repete uma das figuras usadas na descri��o (fig. 3.9)..Para recordar, um ciclo de instru��es inclui os seguintes sub-ciclos: Estamos agora em posi��o para aumentar a elabora��o do ciclo de instru��es. Em primeiro lugar, temos de introduzir um sub-ciclo adicional, conhecido como ciclo indirecto.

Ciclo Indirecto

Vimos, no cap�tulo 10, que a execu��o de uma instru��o podia envolver um ou mais operandos na mem�ria, cada um dos quais necessitava de um acesso � mem�ria, Al�m disso, se fosse usado endere�amento indirecto, ent�o, eram necess�rios acessos adicionais � mem�ria.

Figura 11.5: Ciclo de instru��es com interrup��es.
\begin{figure}
\end{figure}

Podemos pensar na extrac��o de endere�os indirectos como mais um sub-ciclo de instru��o. O resultado � mostrado na figura 11-6. A linha principal de actividade consiste em actividades alternadas de extrac��o e execu��o de instru��es. Depois de ser extra�da uma instru��o � examinada para determinar se est� envolvido endere�amento indirecto. Se assim for, os operandos requeridos s�o extra�dos usando endere�amento indirecto.

Figura 11.6: O ciclo de instru��es.
\begin{figure}
\end{figure}

A seguir a execu��o e a interrup��o podem ser processadas antes da extrac��o da pr�xima instru��o.

Uma outra forma de ver este processo � mostrado na figura 11-7, que � uma vers�o revista da figura 3.12. Isto ilustra mais correctamente a natureza do ciclo de instru��es. Uma vez extra�da uma instru��o, os seus especificadores de operandos t�m de ser identificados.

Cada operando de entrada em mem�ria � ent�o extra�do e este processo pode necessitar de endere�amento indirecto. Operandos baseados em registos n�o necessitam de ser extra�dos. Uma vez executado o c�digo de opera��o um processo semelhante pode ser necess�rio para guardar o resultado na mem�ria principal.

Figura 11.7: Diagrama de estados do ciclo de instru��es.
\begin{figure}
\end{figure}

Fluxo de Dados

Durante um ciclo de instru��es, a sequ�ncia exacta de eventos depende do projecto do processador. Podemos contudo indicar, em termos gerais, o que tem de acontecer. Assumamos que o processador emprega um registo de endere�os de mem�ria (MAR), um registo de tamp�o de mem�ria, um contador de programa (PC) e um registo de instru��es (IR).

Durante um ciclo de instru��o � lida uma instru��o da mem�ria. A figura 11-8, mostra o fluxo de dados durante este ciclo.

Figura 11.8: Fluxo de dados, ciclo de extrac��o.
\begin{figure}
\end{figure}

O PC cont�m o endere�o da pr�xima instru��o a ser extra�da. O endere�o � posto no MAR e colocado no barramento de endere�os. A unidade de controlo faz um pedido de leitura de mem�ria e o resultado � colocado no barramento de dados e copiado para o MBR e depois levado para o IR. Entretanto, o PC � incrementado de 1, em prepara��o para a pr�xima extrac��o.

Uma vez terminado o ciclo de extrac��o, a unidade de controlo examina o conte�do do IR para determinar se este cont�m um especificador de operando que usa endere�amento indirecto. Se assim for, � efectuado um ciclo indirecto. Tal como se mostra na figura 11-9 este � um ciclo simples.

Figura 11.9: Fluxo de dados, ciclo de caminho indirecto.
\begin{figure}
\end{figure}

Os $N$-bits mais � direita do MBR, que cont�m a refer�ncia � mem�ria, s�o transferidos para o MAR. Da�, a unidade de controlo faz um pedido leitura � mem�ria, para colocar o endere�o pretendido do operando no MBR.

Os ciclos de caminho indirecto e de extrac��o s�o simples e previs�veis. O ciclo de instru��o assume v�rias formas uma vez que a forma depende de qual das v�rias instru��es m�quina est� no IR. Este ciclo pode envolver a transfer�ncia de dados entre registos, a leitura ou escrita da mem�ria ou da E/S e ou a chamada � ALU.

Tal como os ciclos de caminho indirecto e de extrac��o, o ciclo de interrup��o � simples e previs�vel (figura 11-10).

Figura 11.10: Fluxo de dados, ciclo de interrup��o.
\begin{figure}
\end{figure}

O conte�do corrente do PC deve ser salvaguardado para que o processador possa voltar � actividade normal ap�s a interrup��o. Assim, o conte�do do PC � transferido para o MBR para ser escrito na mem�ria. A posi��o especial da mem�ria reservada para este efeito � carregada no MAR da unidade de controlo. Pode ser, por exemplo, um apontador de pilha. O PC � carregado com o endere�o da rotina de interrup��o. Como resultado, o pr�ximo ciclo de instru��o ir� come�ar com a extrac��o da instru��o apropriada.

Linha de Encadeamento de Instru��es

� medida que os sistema de computa��o evoluem, maiores rendimentos podem ser alcan�ados aproveitando os melhoramentos da tecnologia, tais como, circuitos mais r�pidos. Adicionalmente, os melhoramentos na organiza��o do processador podem melhorar o rendimento. J� vimos alguns exemplos disto, tais como o uso de m�ltiplos registos, em vez de um simples acumulador e o uso da mem�ria cache. Uma outra abordagem organizacional, que � muito comum, � o encadeamento de instru��es.

Estrat�gia de Encadeamento

O encadeamento de instru��es � muito semelhante ao uso de uma linha de montagem de uma f�brica. Uma linha de montagem aproveita o facto de que um produto passa por diversos est�gios de produ��o. Ao optar por um processo de produ��o em linha de montagem os produtos em v�rios est�gios podem ser trabalhados simultaneamente. Este processo � tamb�m referido como linha de encadeamento, porque numa linha de encadeamento, novas entradas s�o aceites numa extremidade antes que entradas aceites previamente possam aparecer � sa�da na outra extremidade.

Para aplicar este conceito a execu��o de instru��es, devemos de reconhecer que, de facto, uma instru��o disp�e de um certo n�mero de est�gios. A figura 11-7, por exemplo, secciona o ciclo de instru��es em 10 tarefas, que ocorrem em sequ�ncia. Claramente, dever� existir alguma oportunidade para encadeamento.

Figura 11.11: Linha de Encadeamento de instru��es de dois est�gios.
\begin{figure}
\end{figure}

Numa abordagem simples consideremos a subdivis�o do processamento de instru��es em dois est�gios; extrac��o da instru��o e execu��o da instru��o. Haver� momentos durante a execu��o de uma instru��o em que n�o est� a ser feito um acesso � mem�ria. Estes momentos podem ser usados para extrair a pr�xima instru��o em paralelo com a execu��o da instru��o corrente. A figura 11-11(a) ilustra esta abordagem. O encadeamento tem dois est�gios independentes. O primeiro est�gio extrai a instru��o e coloca-a num tamp�o. Quando o segundo est�gio est� livre, o primeiro est�gio passa-lhe a instru��o no tamp�o. Enquanto o segundo est�gio est� a executar a instru��o, o primeiro est�gio aproveita n�o importa qual ciclo de mem�ria n�o usado para extrair e colocar no tamp�o a pr�xima instru��o. Isto � chamado pr�-extrac��o ou sobreposi��o da extrac��o.

Dever� ficar claro que este processo ir� acelerar a execu��o de instru��es. Se os est�gios de extrac��o e de execu��o forem de igual dura��o, o ciclo de instru��o passar� a metade. Contudo, se olharmos mais de perto para esta linha de encadeamento (figura 11-11(b), veremos tamb�m que esta duplica��o da taxa de execu��o � improv�vel por duas raz�es:

  1. O tempo de execu��o � em geral mais longo que o tempo de extrac��o. A execu��o envolve a leitura e armazenamento de operandos e a efectiva��o de algumas opera��es. Assim, o est�gio de extrac��o dever� de esperar algum tempo antes de esvaziar o seu tamp�o.
  2. Uma instru��o condicional de deriva��o torna desconhecido o endere�o da pr�xima instru��o a ser extra�da. Assim, o est�gio de extrac��o dever� esperar at� que receba o endere�o da pr�xima instru��o do est�gio de execu��o. O est�gio de execu��o poder� ter de esperar enquanto � extra�da a pr�xima instru��o.
O tempo perdido pela segunda raz�o pode ser reduzido por previs�o. Uma regra simples � a seguinte: Quando uma instru��o de deriva��o condicional passa do est�gio de extrac��o para o est�gio de execu��o, o est�gio de extrac��o extrai a pr�xima instru��o da mem�ria. Ent�o se n�o houver deriva��o, n�o h� perca de tempo. Se houver deriva��o a instru��o extra�da tem de ser descartada e extra�da uma nova instru��o.

Enquanto estes factores reduzem a potencial efic�cia do encadeamento de dois est�gios, produz-se algum ganho. Para obter maiores ganhos, o encadeamento dever� ter mais est�gios. Consideremos a seguinte decomposi��o do processamento de instru��es.

Com esta decomposi��o, os v�rios est�gios ser�o aproximadamente da mesma dura��o. Para efeitos de exemplifica��o, assumamos que possuem igual dura��o. Ent�o, a figura 11-2 mostra que um encadeamento de seis-est�gios de encadeamento pode reduzir o tempo de execu��o de 9 instru��es de 54 unidades de tempo para 14 unidades de tempo.

Figura 11.12: Diagrama temporal para uma opera��o de encadeamento de instru��es.
\begin{figure}
\end{figure}

V�rios coment�rios: O diagrama assume que cada instru��o atravessa todos os seis est�gios da linha de encadeamento. Isto n�o ser� sempre o caso. Por exemplo, uma instru��o de carregar n�o necessita do est�gio WO. Contudo para simplificar o hardware do encadeamento, a temporiza��o � feita assumindo que cada instru��o necessita dos seis est�gios. O diagrama assume, tamb�m, que todos os est�gios podem ser efectuados em paralelo. Em particular, �e assumido que n�o existem conflitos de mem�ria. Por exemplo, os est�gios FI, FO e WO envolvem o acesso � mem�ria. O diagrama implica que todos estes acessos podem ocorrer simultaneamente. A maioria dos sistemas de mem�ria n�o o permitiria. Assim, o valor pretendido pode estar na cache, ou os est�gios FO ou WO podem ser nulos. Pelo que, a maior parte do tempo, os conflitos de mem�ria n�o ir�o atrasar o encadeamento.

V�rios outros factores imp�em limita��es ao melhoramento do rendimento. Se os seis est�gios n�o tiverem igual dura��o, haver� alguma espera em v�rios est�gios de encadeamento, tal como antes foi discutido para o encadeamento de dois est�gios. Uma outra dificuldade � a instru��o de deriva��o condicional que pode invalidar a extrac��o de v�rios instru��es. Um evento semelhante, n�o previs�vel, � uma interrup��o. A figura 11-13 ilustra os efeitos de uma deriva��o condicional, usando o mesmo programa da figura 11-12. Assuma que a instru��o 3 � uma deriva��o condicional para a instru��o 15.

Figura 11.13: O efeito de uma deriva��o condicional para uma opera��o de encadeamento de instru��es.
\begin{figure}
\end{figure}

At� que a instru��o seja executada, n�o h� forma de saber qual a instru��o que vem a seguir. O encadeamento, neste exemplo, carrega simplesmente a pr�xima instru��o na sequ�ncia (instru��o 4) e prossegue. Na figura 11-12, n�o h� deriva��o e atingimos o rendimento m�ximo que adv�m do melhoramento. Na figura 11-13 h� deriva��o. Isto n�o � determinado antes do fim da unidade de tempo 7. Neste ponto, a linha de encadeamento deve ser esvaziada das instru��es que n�o s�o �teis. Durante a unidade de tempo 8, a instru��o 15 entra na linha de encadeamento. Nenhuma instru��o se completa durante as unidades de tempo de 9, 10, 11 e 12; isto � a penaliza��o do rendimento em que se incorre porque n�o podemos antecipar a deriva��o. A figura 11.14 indica a l�gica necess�ria para que o encadeamento tome em considera��o deriva��es e interrup��es.

Figura 11.14: Encadeamento de instru��es num processador de seis-est�gios.
\begin{figure}
\end{figure}

Surge outro problema que n�o apareceu na organiza��o simples de dois-est�gios. O est�gio CO pode depender do conte�do de um registo que podia ter sido alterado por uma instru��o anterior que ainda est� na linha de encadeamento. Outros conflitos de mem�ria e de registos podem ocorrer. O sistema tem de conter l�gica para entrar em considera��o com este tipo de conflitos.

Da discuss�o precedente, pode parecer que quanto maior o n�mero de est�gios na linha de encadeamento, maior � a taxa de execu��o. Alguns dos projectistas do IBM/360 real�aram dois factores que frustam este aparente padr�o simples para o projecto de alto-rendimento e que, hoje, se mant�m verdadeiro:

  1. Em cada est�gio da linha de encadeamento, h� alguma sobrecarga envolvida na movimenta��o de dados de tamp�o para tamp�o e na efectiva��o de v�rios fun��es de prepara��o e de entrega. Esta sobrecarga pode alongar de forma apreci�vel o tempo total de execu��o de uma instru��o simples. Isto � significativo quando as instru��es sequenciais s�o logicamente dependentes, quer pelo usointensivo de deriva��es quer atrav�s das depend�ncias nos acessos � mem�ria.
  2. A quantidade de l�gica de controlo necess�ria para manipular as depend�ncias da mem�ria e de registos e para optimizar o uso de linha de encadeamento, aumenta muit�ssimo com o n�mero de est�gios. Isto pode conduzir a uma situa��o onde a l�gica de entradas entre est�gios � muito mais complexa do que os est�gios que est�o a ser controlados.
O encadeamento de instru��es � uma t�cnica poderosa para melhorar o rendimento mas necessita de um projecto cuidadoso, com razo�vel complexidade, para alcan�ar resultados �ptimos.

Modo de proceder com deriva��es

Um dos maiores problemas no projecto de linha de encadeamento de instru��es � assegurar um fluxo constante de instru��es nos est�gios iniciais da linha de encadeamento. O primeiro impedimento, tal como vimos, � a instru��o de deriva��o condicional. At� que a instru��o seja efectivamente executada, � imposs�vel determinar se se segue ou n�o a deriva��o.

Uma variedade de abordagens t�m vindo a ser tomadas para lidar com deriva��es condicionais:

M�ltiplos fluxos

Uma linha de encadeamento simples � penalizado por uma instru��o de deriva��o porque tem de escolher de entre duas instru��es a pr�xima a extrair e pode fazer a escolha errada. Uma abordagem de for�a bruta � replicar as por��es iniciais da linha de encadeamento e permitir extrair ambas as instru��es, usando duas linhas de encadeamento. Com esta abordagem h� v�rias problemas: Apesar destes inconvenientes, esta estrat�gia pode melhorar o rendimento. Exemplos de m�quinas com duas ou mais linhas de encadeamento s�o o IBM 370/168 e o IBM 3033.

Pr�-extrac��o do alvo da deriva��o

Quando � reconhecida uma deriva��o condicional, o alvo da deriva��o � pr�-extra�do, conjuntamente com a instru��o a seguir � deriva��o. O alvo �, ent�o, salvaguardado at� que seja executada a instru��o de deriva��o. Se se segue a deriva��o, o alvo j� tinha sido pr�-extra�do.

O IBM 360/91 usa esta abordagem.

Tamp�o de la�o

Um tamp�o de la�o � um pequena mem�ria, de muito elevada velocidade, mantida pelo est�gio de pr�-extrac��o da linha de encadeamento, contendo, uma sequ�ncia, das $n$ mais recentes instru��es extra�das. Se for para seguir a deriva��o, o hardware come�a por verificar se o alvo da deriva��o est� no tamp�o. Se assim for, a pr�xima instru��o � extra�da do tamp�o. O tamp�o de la�o tem tr�s vantagens:
  1. Quando se usa pr�-extrac��o, o tamp�o de la�o conter� algumas instru��es sequencialmente � frente do endere�o de extrac��o da instru��o corrente. Assim, as instru��es extra�das em sequ�ncia estar�o dispon�veis sem os tempos habituais de acesso � mem�ria.
  2. Quando ocorre uma deriva��o para um endere�o apenas algumas posi��es adiante do endere�o da instru��o de deriva��o, o alvo j� ir� estar no tamp�o. Isto � �til no caso da muito habitual ocorr�ncia de sequ�ncias SE-ENT�O e SE-ENT�O-SEN�O.
  3. Esta estrat�gia � particularmente bem indicada para lidar com la�os, ou itera��es, da� o nome de tamp�o de la�o. Se o tamp�o de la�o for suficientemente grande para conter todas as instru��es de um la�o, ent�o, essas instru��es s� necessitam de ser extra�das da mem�ria, apenas uma vez, durante a primeira itera��o. Nas itera��es subsequentes todas as instru��es necess�rias j� est�o no tamp�o.
O tamp�o de la�o � semelhante, no princ�pio, a uma cache dedicada a instru��es. As diferen�as est�o em que o tamp�o de la�o apenas ret�m instru��es cont�guas e � muito mais pequeno em tamanho e por isso de custo mais reduzido.

A figura 11-15 d� um exemplo de tamp�o de la�o. Se o tamp�o contiver 256 octetos e for usado endere�amento ao octeto, ent�o os 8 bits menos significativos s�o usados para indexar o tamp�o. Os bits mais significativos, restantes, s�o verificados para determinar se o alvo da deriva��o est� no ambiente capturado pelo tamp�o.

Figura 11.15: Tamp�o de la�o.
\begin{figure}
\end{figure}

De entre as m�quinas que usam um tamp�o de la�o est�o algumas m�quinas CDC (Star 100, 600, 7600) e CRAY-1. Uma forma especializada de tamp�o de la�o est� dispon�vel no Motorola 68010, para executar um la�o de tr�s instru��es envolvendo uma instru��o DBcc (decremento deriva��o condicional) (ver Problema 11.8). � mantido um tamp�o de tr�s-palavras e o processador executa estas instru��es repetidamente at� a condi��o do la�o ser satisfeita.

Progn�stico de Deriva��o

V�rias t�cnicas podem ser usadas para predizer se uma deriva��o vai ocorrer. Entre as mais habituais est�o as seguintes: As tr�s primeiras abordagens s�o est�ticas: n�o dependem da hist�ria da execu��o at� chegar � instru��o de deriva��o condicional. As duas �ltimas abordagens s�o din�micas: dependem da hist�ria da execu��o.

As duas primeiras abordagens s�o as mais simples. Ou assumem, sempre, n�o seguir a deriva��o e continuam a extrair instru��es em sequ�ncia, ou assumem, sempre, seguir a deriva��o e extraem sempre do endere�o de deriva��o. O 68020 e o VAX 11/780 usam o progn�stico nunca seguir. O VAAX 11/780 tamb�m inclui uma caracter�stica para minimizar os efeitos de uma decis�o errada. Se a extrac��o da instru��o a seguir � deriva��o provocar uma falha de p�gina ou viola��o de protec��o, o processador suspende a pr�-extrac��o at� estar seguro que a instru��o deve ser extra�da.

Estudos que analisam o comportamento dos programas t�m mostrado que as deriva��es condicionais ocorrem mais do que 50% do tempo, da� que, se o custo de extrac��o de ambos o caminhos for o mesmo, ent�o, pr�-extrair do endere�o de deriva��o dever� proporcionar melhorar rendimento do que pr�-extrair do caminho na sequ�ncia. Contudo, numa m�quina com pagina��o, a pr�-extrac��o do alvo da deriva��o pode mais provavelmente provocar uma falha de p�gina do que extrair a pr�xima instru��o na sequ�ncia pelo que esta penaliza��o dever� ser tomada em considera��o. Pode ser usado um mecanismo de precau��o para reduzir esta penaliza��o.

A abordagem est�tica final toma a decis�o baseada no c�digo da instru��o de deriva��o. O processador assume que segue a deriva��o para algumas c�digos de deriva��o e n�o segue para outros. apresenta relat�rios com taxas de sucesso superiores a 75% usando esta estrat�gia.

As estrat�gias din�micas de deriva��o melhoram a precis�o do progn�stico registando a hist�ria das instru��es de deriva��o condicional de um programa. Por exemplo, um ou mais bits podem ser associados com cada instru��o de deriva��o condicional que reflecte a hist�ria recente das instru��es. Estes bits s�o referido como comutadores segue/n�o-segue que conduzem o processador a tomar decis�es particulares na pr�xima vez que encontra a instru��o. Tipicamente, a hist�ria destes bits n�o est� associada com a instru��o na mem�ria principal. Em vez, disso, s�o mantidos numa mem�ria local de alta-velocidade. Uma possibilidade � associar estes bits com toda a instru��o de deriva��o condicional que est� na cache. Quando a instru��o � substitu�da na cache, perde-se a sua hist�ria. Uma outra possibilidade � manter uma pequena tabela para as instru��es de deriva��o mais recentemente executadas com um ou mais bits por cada entrada. O processador pode fazer o acesso � tabela de modo associativo, como uma cache, ou usando os bits menos significativos do endere�o da instru��o de deriva��o.

Com um �nico bit, tudo o que pode ser registado � se a �ltima execu��o desta instru��o resultou, ou n�o, numa deriva��o. Um defeito da utiliza��o de um �nico bit ocorre no caso de uma instru��o de deriva��o condicional que se segue quase sempre, tal como uma instru��o de la�o. Com apenas um bit para hist�ria, um erro no progn�stico ocorre duas vezes para cada la�o: uma vez � entrada e uma vez � sa�da.

Se se usarem dois bits, estes podem registar o resultado das duas �ltimas inst�ncias da execu��o das instru��es associadas, ou para registar um estado de uma outra forma qualquer. A figura 11.16 mostra um abordagem t�pica (ver Problema 11-6 para outras possibilidades). O processo de decis�o pode ser representado por uma m�quina de estados finitos com quatro est�gios. Se as �ltimas duas deriva��es de uma dada instru��o tiverem seguido o mesmo caminho, o progn�stico � tomar aquele caminho de novo. Se o progn�stico estiver errado, mant�m-se o mesmo a pr�xima vez que a instru��o for encontrada. Se o progn�stico for errado de novo, contudo, o pr�ximo progn�stico ser� seguir o caminho oposto. Assim, o algoritmo requer dois progn�sticos errados consecutivos para mudar a decis�o sobre o progn�stico. Se uma deriva��o toma uma direc��o n�o-usual uma vez, tal como para um la�o, o progn�stico ser� errado s� uma vez.

Um exemplo de um sistema que usa a abordagem comutadores segue/n�o-segue � o IBM 3090/400.

Figura 11.16: Diagrama de estado de progn�sticos de deriva��o.
\begin{figure}
\end{figure}

A utiliza��o de bits de hist�ria, tal como foram apresentados, tem um inconveniente. Se a decis�o tomada for seguir a deriva��o, a instru��o alvo n�o pode ser extra�da sen�o quando o endere�o alvo, que � um operando na instru��o de deriva��o condicional, for descodificado. Pode alcan�ar-se um melhor rendimento se a extrac��o da instru��o poder ser iniciada mal for tomada a decis�o de deriva��o. Para este prop�sito, mais informa��o dever� ser salvaguardada, no que � conhecido como tamp�o de alvo da deriva��o, ou tabela de hist�ria da deriva��o.

A tabela de hist�ria da deriva��o � uma pequena mem�ria cache associada com o est�gio de extrac��o da linha de encadeamento. Cada entrada na tabela consiste de tr�s elementos: o endere�o da instru��o de deriva��o condicional, um certo n�mero de bits de hist�ria que registam o estado de utiliza��o daquela instru��o e informa��o sobre a instru��o alvo. O compromisso � claro: Guardar o endere�o alvo produz uma tabela mais pequena, mas um tempo de extrac��o de instru��o superior comparado com guardar a instru��o alvo.

A figura 11-17 faz um contraste deste esquema com o progn�stico nunca seguir. Com a primeira estrat�gia, o est�gio de extrac��o de instru��o extrai sempre o pr�ximo endere�o sequencial. Se a deriva��o for seguida, l�gica dentro do processador detecta isto e indica que a pr�xima instru��o deve ser extra�da do endere�o alvo (para al�m de descartar a linha de encadeamento). A tabela de hist�ria da deriva��o � usada como uma cache. Cada pr�-extrac��o acciona uma pesquisa na tabela de hist�ria da deriva��o. Se n�o houver nenhuma correspond�ncia, o pr�ximo endere�o sequencial � usado para a extrac��o. Se for encontrada uma correspond�ncia, � feito o progn�stico baseado no estado da instru��o: o pr�ximo endere�o sequencial ou o endere�o alvo da deriva��o vai alimentar a l�gica de selec��o.

Quando uma instru��o de deriva��o � executada, o est�gio de execu��o � actualizado para reflectir um progn�stico correcto ou incorrecto. Se o progn�stico for incorrecto, a l�gica se selec��o � redireccionada para o endere�o correcto para a pr�xima extrac��o. Quando uma instru��o de deriva��o condicional que n�o est� na tabela, � encontrada � adicionada � tabela e uma das entradas existentes � descartada, usando um dos algoritmos de substitui��o discutidos no cap�tulo 4.

Um exemplo da implementa��o de uma tabela de hist�ria da deriva��o � o processador Advanced Micro Device AMD29000.

Figura 11.17: Lidando com deriva��es.
\begin{figure}
\end{figure}

Linha de encadeamento do Intel 80846

O 80846 implementa uma linha de encadeamento com os seguintes est�gios: Com a utiliza��o de dois est�gios de descodifica��o, a linha de encadeamento pode sustentar um desempenho de perto de uma instru��o por ciclo de rel�gio. As instru��es complexas e as deriva��es condicionais podem fazer baixar esta taxa.

A figura 11.18 mostra exemplos da opera��o da linha de encadeamento. A parte a) mostra que n�o � introduzido nenhum atraso quando � necess�rio um acesso � mem�ria.

Figura 11.18: Exemplos da linha de encadeamento de instru��es do 80846.
\begin{figure}
\end{figure}

Contudo, tal como mostra a parte b), pode existir um atraso para valores usados para calcular endere�os da mem�ria. Isto �, se um valor for carregado da mem�ria para um registo e aquele registo for depois usado como um registo de base na pr�xima instru��o, o processador empata durante um ciclo. Neste exemplo, o processador faz o acesso � cache no est�gio EX da primeira instru��o e, no seu est�gio D2, guarda no registo o valor adquirido. Quando o est�gio D2 depara com o est�gio WB da instru��o precedente, sinais de passagem por cima permitem ao est�gio D2 ter acesso aos mesmos dados que est�o a ser usados pelo est�gio WB para escrita, poupando um est�gio da linha de encadeamento.

A figura 11.18 c) ilustra a temporiza��o de um instru��o de deriva��o, assumindo que se segue a deriva��o. A instru��o de compara��o actualiza os c�digos de condi��o no est�gio WB e, ao mesmo tempo, as passagens por cima, tornam-nos dispon�veis para o est�gio EX da instru��o de salto. Paralelamente, o processador executa um ciclo de extrac��o especulativo no endere�o alvo do salto, durante o est�gio EX da instru��o de salto. Se o processador identifica uma condi��o de deriva��o falsa, � descartada a pr�-extrac��o e a execu��o continua com a pr�xima instru��o sequencial (j� extra�da e descodificada).

O Processador Pentium

Um vista geral da organiza��o do processador Pentium � apresentada na figura 4-24. Nesta sec��o, examinamos alguns pormenores.

Tabela 11.1: Registos do Processador Pentium.
\begin{table}
\end{table}


Organiza��o de registos

A organiza��o de registos inclui os seguintes tipos de registos (tabela 11.1: H� tamb�m registos especialmente dedicados � unidade de v�rgula flutuante: A utiliza��o da maior parte dos registos, acima, � facilmente compreens�vel. Deixem-nos discorrer brevemente sobre v�rios dos registos.

Registo EFLAGS

O registo EFLAGS (Figura 11.19 indica o estado do processador e ajuda a controlar a sua opera��o. Inclui os seis c�digos de condi��o definidas na tablea [*] (transpor, paridade, auxiliar, zero, sinal e excesso) que relatam os resultados de uma opera��o inteira. Adicionalmente, h� bits no registo que podem ser chamados de bits de controlo, estes s�o

Figura 11.19: Registos EFLAGS do Processador Pentium.
\begin{figure}
\end{figure}

Adicionalmente, h� quatro bits relacionados com o sistema de opera��o. A bandeira de tarefa aninhada (NT) indica que a tarefa corrente est� aninhada dentro de outra tarefa que opera em modoprotegido. O bit de modo virtual (VM) permite ao programador autorizar ou inibir o modo virtual 8086 que determina se o processador corre como uma m�quina 8086. A bandeira de interrup��o virtual e a bandeira de interrup��o virtual pendente (VIP) s�o usadas em ambiente multi-tarefa.

Registos de Controlo

O Pentium emprega quatro registos de controlo de 32-bits (o registo CR1 n�o est� a uso) para controlar v�rios aspectos da opera��o do processador (Figura 11.20. O registo CR0 cont�m bandeiras de controlo do sistema que controlam os modos ou indicam os estados aplic�veis, em geral, ao processador em vez da aplica��o a tarefas individuais. As bandeiras s�o

Figura 11.20: Registos de Controlo do Processador Pentium.
\begin{figure}
\end{figure}

Quando a pagina��o est� habilitada, os registos CR2 e CR3 s�o v�lidos. O registo CR2 cont�m o endere�o linear de 32-bits da �ltima p�gina a que foi feito o acesso antes da interrup��o da falta de p�gina. Os 20-bits mais � esquerda de CR3 cont�m os 20-bits mais significativos do endere�o base do direct�rio de p�ginas. O resto do endere�o cont�m zeros. Dois bits de CR3 s�o usados para alimentar os pinos que controlam a opera��o da cache externa. O bit (PCD) activa ou desactiva a cache externa e o bit de escrita transparente (PWT) controla a escrita imediata na cache externa.

Seis bits de controlo adicionais s�o definidos em CR4:

Processamento de Interrup��es

O processamento de interrup��es num processador � uma facilidade fornecida para suportar o sistema de opera��o. Permite um programa de aplica��o ser suspendido, de forma a que uma variedade de condi��es de interrup��o possam ser servidas, e mais tarde retornado.

Excep��es e Interrup��es

Duas classes de eventos causam o Pentium suspender a execu��o do cadeia corrente de instru��es e responder ao evento: interrup��es e excep��es. Em ambos os casos, o processador salvaguarda o contexto do processo corrente e transfere-se para uma rotina pr�-definida para servir a condi��o. Uma interrup��o � gerada por um sinal do hardware isso pode ocorrer em instantes imprevisto durante a execu��o de um programa. Uma excep��o � gerada pelo software e � provocada pela execu��o de uma instru��o. H� duas fontes de interrup��o e duas fontes de excep��o:
  1. Interrup��es
  2. Excep��es

Tabela de Vector de Interrup��es

O processamento de interrup��es no Pentium usa a tabela de vector de interrup��es. A todo o tipo de interrup��o � atribu�do um n�mero e este n�mero � usado para indexa��o da tabela de vectores de interrup��o. Esta tabela cont�m 256 vectores de interrup��o de 32-bits, que � o endere�o (segmento e deslocamento) da rotina de servi�o de interrup��es para esse n�mero de interrup��o.

A tabela 11.2 mostra a atribui��o dos n�meros na tabela de vector de interrup��es; as entradas a sombreado representam interrup��es, enquanto as entradas n�o sombreadas s�o excep��es. A interrup��o de hardware NMI � tipo 2. �s interrup��es de hardware INTR s�o atribu�dos n�meros na gama 32-255; quando � gerada uma interrup��o, isso deve ser acompanhado no barramento com o n�mero de vector de interrup��o para esta interrup��o. Os restantes n�meros de vector s�o usados para excep��es.

Tabela 11.2: Tabela de vectores de excep��o e de interrup��o do Pentium.
\begin{table}
\end{table}


Se mais do que uma excep��o ou interrup��o estiver pendente, o processador serve-as numa ordem prevista. A localiza��o dos n�meros de vector n�o reflecte a prioridade. Em vez disso, a prioridade entre excep��es e interrup��es � organizada em cinco classes. Em ordem descendente de prioridade, estas s�o

Tratamento de Interrup��es

Tal como com a transfer�ncia da execu��o atrav�s da instru��o CALL, a transfer�ncia para a rotina de tratamento de interrup��es usa a pilha de sistema para salvaguardar o estado do processador. Quando uma interrup��o ocorre, e � reconhecida pelo processador, toma lugar a seguinte sequ�ncia de eventos.
  1. Se a transfer�ncia envolve uma altera��o do n�vel de privil�gio, ent�o o corrente registo de segmento de pilha ou o corrente registo estendido de segmento de pilha (ESP) � empurrado para a pilha.
  2. O valor corrente do registo EFLAGS 'empurrado para a pilha.
  3. Tanto a bandeira de interrup��o (IR) como a de armadilha (TF) s�o limpas. Isto desactiva as interrup��es INTR e a armadilha ou a propriedade passo a passo.
  4. Se a interrup��o for acompanhada por um c�digo de erro, ent�o o erro de c�digo empurrado para a pilha.
  5. O conte�do da tabela de vectores de interrup��es � extra�do e carregado para os registos CS e IP ou EIP. A execu��o continua da rotina de servi�o de interrup��o.

next up previous contents
Next: Computadores com Jogo de Up: Arquitectura e Organiza��o Interna Previous: Jogos de Instru��es: Modos

2000-05-10