No nvel mais alto, um computador composto pela CPU, memria e dispositivos de
E/S, podendo conter um ou mais de cada um desses componentes. Para desempenhar a
funo bsica de um computador, ou seja, executar programas, esses componentes devem ser conectados de alguma maneira. Desse modo, para mostrar o funcionamento de um sistema de computao nesse nvel mais alto, devemos descrever (1) o comportamento externo de cada componente - os dados e os sinais de controlo que ele troca com os demais componentes e (2) a estrutura da interconexo.
Este captulo aborda as estruturas bsicas de interconexo dos componentes de um
computador. Para fornecer os conceitos fundamentais necessrios, ele inicia com um breve exame dos componentes bsicos de um sistema de computao e seus requisitos de interface. Em seguida, apresentada uma viso funcional do sistema. Estaremos ento preparados para examinar o uso de barramentos como mecanismo de interconexo dos componentes do sistema. A funo bsica desempenhada por um computador executar um programa que constitudo por um conjunto de instrues armazenadas na memria. O processador realiza o trabalho efetivo de executar as instrues especificadas no programa. Em sua forma mais simples, h dois passos para o processamento de instrues: o processador l (busca) instrues na memria, uma de cada vez, e executa cada uma. A execuo de um programa consiste na repetio desse processo de busca e execuo de instrues. A execuo de uma instruo pode envolver diversas operaes, dependendo da natureza da instruo. O processamento necessrio para a execuo de uma instruo chamado de ciclo de instruo. Utilizando uma descrio simplificada de dois passos, o ciclo de instruo mostrado na Figura 1. Os dois passos so denominados ciclo de Busca e ciclo de Execuo. A execuo de programas encerra-se somente se a mquina for desligada ou se ocorrer algum tipo de erro irrecupervel ou se for executada uma instruo de programa que pare a operao do computador.
Figura 1: Ciclo de Instrues bsicas
No incio de cada ciclo de instruo, o processador busca uma instruo da memria.
Em um processador tpico, um registrador chamado contador de instrues ou contador de programa (program counter - PC) utilizado para guardar o endereo da prxima instruo a ser procurada na memria. Normalmente, o processador sempre
incrementa o PC depois de cada busca de instruo, de modo que a prxima instruo
esteja em uma sequncia (isto , ela est localizada no endereo de memria seguinte). Por exemplo, considere um computador no qual cada palavra de memria tem 16 bits. Suponha que o PC contenha o endereo 300. O processador buscar a prxima instruo na posio de memria de endereo 300. Nos ciclos de instrues seguintes, ele buscar as instrues armazenadas nas posies de memria de endereos 301, 302, 303, e assim por diante. Essa sequncia pode ser alterada, como explicamos a seguir. A instruo procurada na memria carregada no registrador do processador conhecido como registrador de instrues (instruction register - IR). Ela contm bits que especificam a ao que o processador deve executar. O processador interpreta a instruo e executa a ao requisitada. Em geral, essas aes so classificadas em quatro categorias:
Processador-memria: transferncia de dados do processador para a memria
ou da memria para o processador. Processador-E/S: transferncia de dados entre o processador e um dispositivo perifrico por meio de um mdulo de E/S. Processamento de dados: execuo de operaes aritmticas ou lgicas sobre os dados. Controle: determinadas instrues podem especificar que a sequncia de execuo de instrues seja alterada. Por exemplo, o processador pode buscar uma instruo na posio de memria de endereo 149, que especifica que a prxima instruo a ser executada aquela contida na posio de memria de endereo 182. A execuo dessa instruo consiste em armazenar o endereo 182 no Pc. Assim, no prximo ciclo de busca, a instruo ser obtida do endereo 182, e no do endereo 150.
A execuo de uma instruo pode envolver uma combinao dessas aes.
Considere um exemplo simples, que utiliza uma mquina hipottica com as caractersticas ilustradas na Figura 2. O processador possui apenas um registrador de armazenamento de dados, denominado acumulador (AC). Instrues e dados tm, ambos, tamanho de 16 bits. conveniente, portanto, organizar a memria em palavras de 16 bits. O formato das instrues contm 4 bits para o cdigo de operao, podendo existir, assim, 2 4 = 16 cdigos de operao distintos e at 212 = 4.096 (4K) palavras de memria que podem ser endereadas diretamente. A Figura 3 ilustra a execuo parcial de um programa, mostrando as partes da memria e os registradores relevantes. O trecho de programa ilustrado acrescenta o contedo da palavra de memria de endereo 940 ao contedo da palavra de memria de endereo 941 e armazena o resultado nesse ltimo endereo. So necessrias trs instrues, que podem ser descritas em trs ciclos de busca e de execuo: 1. O contedo do PC 300, o endereo da primeira instruo. Essa instruo carregada dentro do registrador de instruo (IR). Note que esse processo envolve o uso do registrador de endereamento memria (MAR) e do
2. 3. 4. 5. 6.
registrador temporrio de dados (MBR). Por simplicidade, esses registradores
intermedirios so ignorados. Os quatro primeiros bits do IR indicam que um valor deve ser armazenado no registrador AC. Os 12 bits restantes especificam o endereo 940, de onde o valor deve ser obtido. O PC incrementado e a prxima instruo buscada. O contedo de AC somado com o contedo da posio de memria de endereo 941 e o resultado armazenado em AC. O PC incrementado e a prxima instruo procurada. O contedo de AC armazenado na posio de memria de endereo 941.
Figura 2: Caractersticas de uma mquina hipottica
Nesse exemplo, so necessrios trs ciclos de instrues, cada um com um ciclo de
busca e um ciclo de execuo, para somar os contedos dos endereos de memria 940 e 941. Em um computador com um conjunto de instrues mais complexo, um nmero menor de ciclos poderia ser necessrio. Processadores modernos incluem instrues que contm mais de um endereo. Desse modo, o ciclo de determinada instruo pode envolver mais de uma referncia memria. Uma instruo pode tambm especificar uma operao de EIS, em vez de uma referncia memria. Por exemplo. a instruo ADO B,A do PDP11 armazena a soma dos valores contidos nas posies de memria com endereos B e A no A. Apenas um nico ciclo de instruo executado com os seguintes passos:
A instruo ADO procurada.
O contedo do endereo de memria A carregado no processador.
O contedo do endereo de memria 8 carregado no processador. Para no
perder o contedo de A, o processador deve ter no mnimo dois registradores de dados para armazenar esses valores, em vez de um nico acumulador. Os dois valores so somados. O resultado obtido armazenado no endereo de memria A.
Figura 3: Exemplo ilustrativo de execuo de um trecho de programa