Vous êtes sur la page 1sur 12

10

Captulo 2 Conceitos Bsicos de Arquitetura de Processador


Este captulo descreve a arquitetura bsica de um processador. Podemos considerar que um processador organizado em duas unidades, a seo de processamento e a seo de controle. Este captulo descreve os principais componentes em cada uma destas unidades. Dentro deste contexto, o captulo tambm descreve como um processador executa as instrues de um programa. No captulo seguinte, aborda-se um tema central na arquitetura de um processador, qual seja, um exemplo de um caminho de dados e seu controle.

2.1 A Seo de Processamento


A seo de processamento formada basicamente pela unidade lgica e aritmtica (ALU) e por diversos registradores. Estes componentes normalmente esto organizados conforme mostra a Figura 2.1.
A ALU B R

estado

R31 . . . R1 R0 registradores de dados

MAR

MDR PC S1 S2 D

Figura 2.1. Componentes da seo de processamento.

11

A ALU realiza as operaes aritmticas, tais como adio e subtrao, e operaes lgicas, tais como and, or, not. Podemos dizer ento que a ALU o componente da arquitetura que, de fato, manipula os dados. Os registradores so utilizados para armazenar informaes internamente no processador. Um registrador pode ser utilizado tanto para acesso de leitura quanto para acesso de escrita: uma informao armazenada no registrador em uma operao de escrita, enquanto a informao contida no registrador recuperada em uma operao de leitura. A Figura 2.1 mostra aqueles registradores normalmente encontrados na seo de processamento. Os diversos registradores possuem um uso bem definido dentro da arquitetura, e de uma maneira geral podem ser classificados em trs tipos: registradores de uso geral, registradores de uso especfico e registradores auxiliares. Os registradores de uso geral normalmente so usados para armazenar dados que sero processados pela ALU, bem como resultados produzidos pela ALU. Na seo de processamento mostrada na Figura 2.1, existem 32 registradores de uso geral, denominados R0,...,R31. Coletivamente, estes registradores so chamados de conjunto de registradores de dados (data register file). O registrador de estado (status register) associado ALU um registrador de uso especfico, e contm informaes sobre o resultado produzido pela ALU. Este registrador possui bits sinalizadores que so ativados ou desativados1 de acordo com o tipo de resultado produzido pela ALU. Por exemplo, o registrador de estado pode ter um bit denominado Z, o qual ativado quando o resultado for nulo e desativado quando o resultado for no-nulo. Tambm comum encontrar no registrador de estado um bit chamado N que ativado se o resultado for negativo, sendo desativado se o resultado for positivo. Um outro exemplo de registrador de uso especfico o contador de programa (program counter). O contador de programa contm o endereo da locao de memria onde se encontra a prxima instruo a ser executada pelo processador. Os registradores auxiliares normalmente so usados para armazenamento temporrio. Este o caso dos registradores A e B, que armazenam os operandos de entrada da ALU, enquanto estes esto sendo processados. Antes de cada operao da ALU, os operandos so transferidos dos registradores de dados ou da memria principal para estes registradores temporrios. O resultado produzido pela ALU temporariamente armazenado no registrador R at ser transferido para o seu destino, que pode ser um registrador de dados ou a memria principal. A Figura 2.1 mostra dois outros registradores temporrios, denominados MAR (Memory Address Register) e MDR (Memory Data Register). O registrador MAR armazena o

Considera-se aqui que um bit ativado quando ele recebe o valor lgico 1, sendo desativado ao receber o valor lgico 0.

12

endereo da locao de memria onde ser feito o acesso, ao passo que o registrador MDR armazena temporariamente a informao transferida de ou para a locao de memria endereada por MAR. Em geral, registradores auxiliares no so visveis, no sentido que um programador de baixo nvel no dispe de instrues para acessar diretamente tais registradores. A interligao entre a ALU e os registradores feita atravs de trs vias, chamadas barramentos internos. Os barramentos internos S1 e S2 permitem a transferncia de dados dos registradores para a ALU. O barramento interno D permite a transferncia do resultado produzido pela ALU, temporariamente armazenado no registrador R, para outro registrador. Uma arquitetura de processador uma arquitetura de n bits quando todas as operaes da ALU podem ser realizadas sobre operandos de at n bits. Normalmente, em uma arquitetura de n bits os registradores de dados e os barramentos internos tambm so de n bits, de forma a permitir que os dados sejam armazenados e transferidos de forma eficiente.

2.2 A Execuo de Instrues


Tendo examinado os componentes e a organizao da seo de processamento, podemos agora analisar como as instrues so executadas. A execuo de uma instruo envolve a realizao de uma seqncia de passos, que podemos chamar de passos de execuo. Em geral, a execuo de uma instruo envolve quatro passos, como mostra a Figura 2.2.

busca

decodificao

execuo

resultado

Figura 2.2. Passos na execuo de uma instruo.

No primeiro passo, denominado busca, o processador realiza o acesso ao cdigo binrio da instruo, armazenado na memria principal. A etapa seguinte a decodificao da instruo, na qual as informaes contidas no cdigo da instruo so interpretadas. Em algumas arquiteturas, neste passo tambm so acessados os dados usados pela instruo. Aps a decodificao, a execuo da instruo entra no terceiro passo, denominado execuo, no qual a operao indicada pela instruo (por exemplo, uma operao na ALU) efetuada. Finalmente no quarto passo, chamado resultado, armazenado em um registrador ou na memria principal o resultado produzido pela instruo.

13

Cada passo de execuo envolve a realizao de vrias operaes bsicas. As operaes bsicas acontecem dentro da seo de processamento, sob a coordenao da seo de controle. Existem quatro tipos principais de operaes bsicas: transferncia de dados entre os registradores e a ALU; transferncia de dados entre os registradores; transferncia de dados entre os registradores e a memria; operaes aritmticas e lgicas realizadas pela ALU. Esta sub-diviso dos passos de execuo em operaes bsicas pode ser visualizada na Figura 2.3.
busca decodificao execuo resultado

Figura 2.3. Diviso dos passos de execuo em operaes bsicas.

A sub-diviso dos passos sugerida pela Figura 2.3 apenas um exemplo ilustrativo. Os passos de execuo no possuem necessariamente o mesmo nmero de operaes bsicas em todas as instrues. O que diferencia cada instruo justamente o nmero e o tipo de operaes bsicas executadas em cada passo. Para tornar mais claro o mecanismo de execuo de instrues, considere uma arquitetura com uma seo de processamento idntica da Figura 2.1. Considere tambm que a arquitetura oferece quatro tipos de instrues: instrues aritmticas e lgicas, instrues de desvio incondicional e condicional, e instrues de acesso memria. Exemplos destes tipos de instrues aparecem no quadro da Figura 2.4.
Tipo lgica/aritmtica desvio incondiconal desvio condicional Exemplo ADD R1,R2,Rd JMP dst JZ dst Descrio O contedo dos registradores R1 e R2 devem ser somados e o resultado armazenado em Rd A prxima instruo a ser executada deve ser a que se encontra na locao de memria com endereo dst A prxima instruo a ser executada deve ser a que se encontra no endereo dst, caso o bit Z do registrador de estado esteja ativado O dado armazenado na locao de memria com endereo end deve ser transferido para o registrador R1 (LOAD)

acesso memria

LOAD end,R1 STORE end,R1

Figura 2.4. Exemplos de instrues.

14

A Figura 2.5 apresenta um exemplo hipottico relacionando, para cada tipo de instruo, as operaes bsicas que acontecem dentro de cada passo de execuo. Nesta figura, Ry Rx representa a transferncia do contedo do registrador Rx para o registrador Ry. M[R] denota o contedo da locao de memria cujo endereo est no registrador R. Finalmente, IR (Instruction Register) representa um registrador especial que recebe o cdigo da instruo a ser executada, enquanto PC o contador de programa.
Aritmticas e Lgicas MAR PC MDR M[MAR] IR MDR PC++ decod A Rs1 B Rs2 R A op B Desvios Incondicionais MAR PC MDR M[MAR] IR MDR PC++ decod Desvios Condicionais MAR PC MDR M[MAR] IR MDR PC++ decod Acessos Memria MAR PC MDR M[MAR] IR MDR PC++ decod

Busca

Decodificao

Execuo

PC destino

cond se (cond) PC destino

MAR end MDR Rs (E) M[MAR] MDR (E) MDR M[MAR] (L) Rd MDR (L)

Resultado

Rd R

Figura 2.5. Operaes bsicas na execuo de instrues.

O passo de busca idntico para todos os tipos de instrues e envolve quatro operaes bsicas: (1) o contedo do contador de programa transferido para o registrador de endereo de memria MAR; (2) realizado o acesso memria, usando o endereo contido em MAR; (3) o cdigo de instruo recebido da memria, temporariamente armazenado em MDR, transferido para o registrador de instruo IR (este registrador faz parte da seo de controle, como pode ser visto na seo 2.3); (4) contador de programa incrementado, passando a indicar a prxima instruo onde ser feito o acesso e executada. Concludo o passo de busca, inicia-se o passo de decodificao da instruo armazenada em IR. A interpretao do cdigo da instruo indicado por decod na Figura 2.5. Como mencionado, em algumas arquiteturas este passo tambm inclui o acesso aos operandos da instruo. Na Figura 2.5, isto indicado pela transferncia do contedo dos registradores de dados Rs1 e Rs2 para os registradores temporrios A e B, respectivamente, no caso de instrues aritmticas e lgicas.

15

O prximo passo o de execuo. As operaes bsicas neste passo dependem inteiramente do tipo de instruo que est sendo executada. No caso das instrues aritmticas e lgicas, este passo corresponde execuo pela ALU da operao indicada na instruo, utilizando como operandos o contedo dos registradores A e B, com armazenamento do resultado no registrador R. Em instrues de desvio incondicional, apenas uma operao bsica realizada: o endereo destino carregado no contador de programa. Como o contador de programa indica a prxima instruo a ser executada, isto resulta em um desvio para a instruo armazenada no endereo destino. Em desvios condicionais, o contador de programa modificado somente se a condio de desvio for verdadeira. A avaliao da condio de desvio indicada por cond, na Figura 2.5. O endereo destino carregado no contador de programa apenas se a condio de desvio testada for verdadeira. Em instrues de acesso memria, o passo de execuo inicia-se com a transferncia do endereo da locao onde ser feito o acesso para o registrador MAR. As demais operaes bsicas dependem se o acesso de escrita (indicadas por E) ou de leitura (indicadas por L). No caso de uma escrita, so executadas duas operaes bsicas: a transferncia do dado a ser escrito para o registrador MDR e a escrita na memria propriamente dita. No caso de uma leitura, realizado o acesso locao de memria e o dado obtido armazenado no registrador MDR. O ltimo passo o de armazenamento do resultado. Em instrues aritmticas e lgicas, o resultado armazenado no registrador R transferido para o registrador destino indicado na instruo. Em instrues de leitura memria, o dado que se encontra no registrador MDR transferido para o registrador destino. importante salientar que o quadro na Figura 2.5 extremamente simplificado. Por exemplo, na prtica um acesso memria no feito por uma nica operao bsica como indicado. Ele normalmente requer vrias operaes bsicas. No entanto, este quadro reflete corretamente como a execuo de uma instruo logicamente organizada.

2.3 A Seo de Controle


Como mencionado anteriormente, as operaes bsicas que ocorrem dentro da seo de processamento so todas comandadas pela seo de controle. Ao efetuar a busca da instruo, a unidade de controle interpreta a instruo de modo a identificar quais as operaes bsicas que devem ser realizadas, e ativa os sinais de controle que fazem uma operao bsica de fato acontecer.

16

A Figura 2.6 apresenta um diagrama em blocos da seo de controle e, de forma bastante simplificada e ilustrativa, a sua interligao com a seo de processamento. Como mostra a figura, a seo de controle formada basicamente pela unidade de controle e pelo registrador de instruo, ou IR (Instruction Register). A interpretao do cdigo da instruo e a ativao dos sinais de controle so realizadas pela unidade de controle. Os sinais de controle que so ativados, bem como a seqncia com que so ativados, depende de cada instruo em particular.

A s3 ALU B s4 s5 s6 s7 unidade de controle s1 R2 s2 R3 s8 R1 R

IR seo de controle S1 S2 seo de processamento D

Figura 2.6. A seo de controle e a parte de processamento.

A ttulo de exemplo suponha a execuo da instruo ADD R1,R2,R3. Essa e todas as demais instrues so coordenadas pela unidade de controle. Para tanto, a seo de processamento na Figura 2.6 foi representada apenas com os trs registradores de dados

17

envolvidos na execuo desta instruo. A execuo desta instruo requer as seguintes operaes bsicas: (1) transferncia do contedo do registrador de dados R1 para o registrador temporrio A; (2) transferncia do contedo do registrador de dados R2 para o registrador temporrio B; (3) adio dos dados armazenados nos registradores A e B e armazenamento do resultado no registrador R; (4) transferncia do contedo do registrador R para o registrador R3. A seqncia de ativao dos sinais de controle, com as operaes bsicas correspondentes apresentada na Figura 2.7.
operao bsica (1) (2) sinal de controle s1, s2 descrio da operao bsica coloca o contedo de R1 e R2 nos barramentos S1 e S2, respectivamente. armazena a informao presente nos barramentos S1e S2 em A e B, respectivamente. seleciona a operao de soma na ALU. armazena o resultado produzido pela ALU em R. coloca o contedo de R no barramento D. armazena a informao presente no barramento D em R3.

s3,s4 (3) s5 s6 (4) s7 s8

Figura 2.7. Ativao dos sinais de controle e operaes bsicas correspondentes.

Este um exemplo tpico de como a unidade de controle coordena a execuo das operaes bsicas na seo de processamento. Para cada registrador existem sinais que controlam a leitura e a escrita do registrador. Outros sinais indicam ALU a operao aritmtica ou lgica que deve realizada. Para qualquer outro componente na seo de processamento existem os sinais de controle necessrios. Para executar uma operao bsica, a unidade de controle simplesmente ativa os sinais apropriados na seqncia correta. O Sinal de Clock Pode-se observar pelo exemplo citado que a ordem na qual os sinais de controle so ativados crtica. Alguns sinais devem obrigatoriamente preceder outros (s3, por exemplo, no pode ser ativado antes de s1), enquanto que outros sinais podem ser ativados simultaneamente (s1 e s2, por exemplo). Mais ainda, para garantir um tempo suficiente para a transmisso da

18

informao atravs dos barramentos internos, em alguns casos deve ser observado um intervalo de tempo mnimo entre a ativao de dois sinais. Para atender as relaes de tempo requeridas na ativao dos sinais de controle, a unidade de controle opera em sincronismo com um sinal de clock. A execuo de uma instruo consome um certo nmero de ciclos de clock. O nmero de ciclos de clock por instruo no o mesmo para todas as instrues, j que cada instruo pode envolver um nmero diferente de operaes bsicas em cada passo de execuo. O tamanho do ciclo de clock um dos fatores que determinam diretamente o desempenho de um processador. Quanto menor o tamanho do ciclo de clock, menor ser o tempo de execuo das instrues, e assim maior ser o nmero de instrues executadas por unidade de tempo. Ao longo das dcadas de 70 e 80, procurava-se diminuir o tamanho do ciclo de clock com novas tecnologias que permitissem velocidades de operao cada vez maiores. No entanto, as tecnologias de integrao foram se aproximando dos limites impostos pela prpria fsica, tornando esta evoluo mais lenta e elevando os custos. Por este motivo, a reduo do ciclo de clock passou a ser considerada sob o ponto de vista arquitetural. Atualmente, procura-se diminuir o ciclo de clock no somente atravs de novas tecnologias, mas tambm atravs de simplificaes na arquitetura, de modo que ela possa ser implementada atravs de circuitos mais simples e inerentemente mais rpidos. Implementao da Unidade de Controle Existem basicamente duas maneiras de implementar uma unidade de controle. A primeira delas usando lgica aleatria (o termo original hardwared control). A outra forma usando microprogramao. A Figura 2.8 mostra a estrutura tpica de uma unidade de controle implementada com lgica aleatria.
Registrador de Instruo

. . .
Circuito Lgico Seo de Processamento

clock

Seo de Controle

Figura 2.8. Organizao de uma unidade de controle implementada com lgica aleatria.

19

Na implementao por lgica aleatria, a unidade de controle formada por um nico circuito lgico, cuja entrada o cdigo de instruo armazenado em IR e cujas sadas so os prprios sinais de controle que comandam as operaes bsicas na seo de processamento. De acordo com o cdigo da instruo, a cada ciclo de clock este circuito ativa os sinais de controle que comandam as operaes bsicas que devem ser realizadas naquele ciclo. A desvantagem desta forma de implementao que a complexidade do circuito de controle, em termos do nmero de dispositivos lgicos, aumenta rapidamente com o nmero de instrues oferecidas pela arquitetura e com o nmero de operaes bsicas que devem ser realizadas na execuo de uma instruo. Em arquiteturas com instrues funcionalmente complexas, o projeto de uma unidade de controle com lgica aleatria torna-se muito difcil e propenso a erros. A tcnica de microprogramao corrige esta desvantagem da implementao com lgica aleatria. Nela, cada instruo oferecida pela arquitetura, que passa a ser chamada de macroinstruo, na realidade executada por uma seqncia de instrues primitivas, extremamente simples, chamadas microinstrues. Os prprios bits das microinstrues so usados para ativar e desativar os sinais de controle que comandam as operaes bsicas. A seqncia de microinstrues que executa uma macroinstruo forma uma microrotina. Usando de uma interpretao mais simples, podemos considerar que a execuo de uma macroinstruo consiste na chamada de uma microrotina, feita pela unidade de controle. As microinstrues da microrotina executam as operaes bsicas associadas macroinstruo. A Figura 2.9 mostra a estrutura de uma unidade de controle implementada com a tcnica de microprogramao.
Registrador de Macroinstruo

clock

Seqenciador

Memria de Microprograma

Registrador de Microinstruo

. . .

Sinais de Controle

Figura 2.9. Organizao de uma unidade de controle microprogramada.

20

As microrotinas encontram-se armazenadas na memria de microprograma. Quando o cdigo da macroinstruo armazenado no registrador de (macro)instruo, o seqenciador interpreta este cdigo e determina o endereo de entrada da microrotina que executa aquela macroinstruo. O seqenciador fornece, a cada ciclo de clock, o endereo da prxima microinstruo a ser executada. Aps o acesso microinstruo, ela armazenada no registrador de microinstruo. Alguns bits da microinstruo so usados diretamente para comandar os sinais de controle para a seo de processamento. Outros bits so utilizados pelo seqenciador para determinar a prxima microinstruo a ser executada. A execuo de uma microinstruo envolve o acesso da microinstruo na memria de microprograma, o armazenamento no registrador de microinstruo e a realizao das operaes bsicas comandadas pelos bits da microinstruo. Uma nova microinstruo executada a cada ciclo de clock. Quando a execuo de uma microrotina concluda, uma nova macroinstruo acessada na memria principal e armazenada no registrador de instruo, e iniciada a execuo de uma nova microrotina. A vantagem da microprogramao est no fato de que a implementao das instrues reduz-se basicamente escrita das microrotinas que sero gravadas na memria de microprograma. Esta vantagem se torna especialmente significativa quando a arquitetura oferece um grande nmero de instrues e estas instrues so complexas, ou seja, a sua execuo envolve um grande nmero de operaes bsicas. Neste caso, o projeto de um circuito lgico complicado, como aconteceria na implementao com lgica aleatria, substitudo pela escrita das microrotinas, uma tarefa comparativamente bem mais simples.

2.4 Excees
Uma das partes mais difceis do controle a implementao das excees e das interrupes porque elas mudam o fluxo normal da execuo das instrues. Uma exceo um evento inesperado gerado dentro do prprio processador. Como exemplo podemos citar o overflow aritmtico. Uma interrupo tambm um evento inesperado s que gerado externamente ao processador, Como exemplo podemos citar as interrupes geradas por um dispositivo de entrada e sada para se comunicar com o processador. A deteco das condies excepcionais faz parte do caminho crtico de uma mquina. Elas esto relacionadas a temporizao, influenciam na determinao do perodo de clock e em conseqncia no desempenho. As aes bsicas que a mquina precisa realizar so salvar os endereos da instruo envolvida no evento e transferir o controle para o sistema operacional num determinado endereo. O sistema operacional pode ento realizar as aes apropriadas. A manipulao de

21

uma exceo pelo sistema operacional pressupe que ele conhea a razo da exceo, alm da instruo que a causou. Existem dois mtodos conhecidos para comunicar ao sistema operacional a razo de uma exceo. Um deles inclui um registrador de causa, que tem um campo adicional para indicar o motivo da exceo. O outro utiliza um vetor de interrupes em que o endereo para o qual o controle transferido determinado pela causa da exceo.

2.5 Resumo
Este captulo mostra que a arquitetura de um processador organizada em uma seo de processamento e uma seo de controle. A seo de processamento contm a unidade aritmtica e lgica, os registradores de dados e outros registradores com funes especficas. A ALU e os registradores so interconectados pelos barramentos internos. A execuo de uma instruo pode ser dividida em passos. Dentro de cada passo so executadas operaes bsicas, tais como uma operao da ALU, a transferncia de dados entre um registrador e a ALU, entre um registrador e a memria ou ainda entre dois registradores. Estas operaes so todas sincronizadas pelo sinal de clock. Uma operao bsica ocorre dentro do intervalo de tempo de um ciclo de clock. A execuo completa de uma instruo consome alguns ciclos de clock. Quanto menor o ciclo de clock, menor ser o tempo de execuo da instruo, e maior ser o desempenho. Na seo de controle encontra-se o componente que comanda todas as operaes bsicas. A unidade de controle interpreta a instruo e ativa os sinais de controle apropriados que comandam as operaes bsicas que devem ser realizadas para aquela instruo. Uma maneira de implementar a unidade de controle atravs de um circuito monoltico. No entanto, o projeto deste circuito pode tornar-se difcil. Com a tcnica de microprogramao, uma (macro)instruo executada por uma seqncia de microinstrues, ou microrotina. O estado dos sinais de controle dado pelos prprios bits das microinstrues. Uma microinstruo executada a cada ciclo de clock. Com a microprogramao, a implementao da unidade de controle transforma-se basicamente na tarefa de escrever as microrotinas.

Vous aimerez peut-être aussi