Next: Mem�ria Interna Up: Arquitectura e Organiza��o Interna Previous: Evolu��o dos Computadores e
Ao n�vel superior, um computador compreende o processador, a mem�ria e os componentes de E/S, com um ou mais m�dulos de cada tipo. Estes componentes s�o interligados de alguma forma para realizar a fun��o b�sica de um computador que � a execu��o de programas. Assim, ao n�vel superior, podemos descrever um computador (1) descrevendo o comportamento externo de cada componente, isto �, os sinais de controlo e os dados que este troca com os outros componentes e (2) descrevendo a estrutura de interconex�o e de controlo requerida para manipular a estrutura de interconex�o. Esta vista de n�vel superior da estrutura e fun��o � importante por causa do seu poder explicativo na compreens�o da natureza do computador. Igualmente importante � o seu uso para a compreens�o da crescente complexidade dos t�picos da avalia��o de rendimento. Uma compreens�o ao n�vel superior da estrutura e da fun��o d�-nos discernimento sobre os gargalos do sistema, os caminhos alternativos, a dimens�o das defici�ncias do sistema quando um componente falha e da facilidade de melhorar o rendimento. Em muitos casos, os requisitos de maior pot�ncia do sistema e capacidades de supera��o das falhas s�o alcan�adas atrav�s de mudan�as no desenho em vez de aumentar, meramente, a velocidade e a confian�a dos componentes individuais. Show
Este cap�tulo p�e a �nfase nas estruturas b�sicas usados para a interconex�o dos componentes do computador. Como conhecimento de base, o cap�tulo come�a com uma breve aprecia��o dos componentes b�sicos e dos requisitos de interface. Segue-se a apresenta��o de uma vis�o funcional geral. Estaremos ent�o preparados para examinar o uso dos barramentos para a interligar os componentes do sistema. Componentes do computadorTal como foi discutido no cap�tulo 2, virtualmente, todos os projectos de computadores contempor�neos s�o baseados nos conceitos desenvolvidos por John von Neumann, no Instituto para estudos Avan�ados, Princepton. Tal projecto � referido como a arquitectura de von Neumann e � baseada em tr�s conceitos:
Se toda a programa��o fosse realizada dessa forma, muito pouco uso poderia ser feito desse tipo de hardware. Mas consideremos, agora, a seguinte alternativa. Suponhamos que constru�amos uma configura��o de fun��es aritm�ticas e l�gicas de uso-geral. Este tipo de hardware efectuaria v�rias fun��es sobre os dados dependendo dos sinais de controlo aplicados ao hardware. No caso original de personaliza��o do hardware, o sistema aceita dados e produz resultados. (Figura 3.1a). Figura 3.1: Abordagens por software e hardware. Como � que se procede para fornecer os sinais de controlo? A resposta � simples mas subtil. O programa na sua totalidade � com efeito uma sequ�ncia de passos. Em cada passo, � efectuada alguma opera��o aritm�tica ou l�gica sobre alguns dados. Se com efeito, fornecermos um c�digo �nico para cada poss�vel jogo de sinais de controlo e se adicionarmos ao hardware de uso-geral um segmento que possa aceitar um c�digo e gerar sinais de controlo (Figura 3.1b). Agora, programar � muito mais f�cil. Em vez de refazer o hardware para cada novo programa, tudo o que necessitamos de fazer � fornecer uma sequ�ncia de c�digos. Com efeito, cada c�digo � uma instru��o e uma parte do hardware interpreta cada instru��o e gera sinais de controlo. Para distinguir este novo m�todo de programa��o, uma sequ�ncia de c�digos ou instru��es � designada por software. A figura 3.1b mostra dois componentes principais do sistema: um interpretador de instru��es e um m�dulo de fun��es aritm�ticas e l�gicas de uso-geral. Estes dois constituem o processador. V�rios outros componentes s�o necess�rios para produzir um computador funcional. Dados e instru��es t�m de ser introduzidos no sistema. Para isso, necessitamos de um qualquer tipo de m�dulo de entrada. Este m�dulo cont�m componentes b�sicos para aceitar dados e instru��es em determinados formatos e convert�-los num formato interno de sinais utiliz�vel pelo sistema. Uma forma conveniente de reportar resultados � necess�ria e esta assume a forma de um m�dulo de sa�da. Vistos em conjunto, estes s�o designado por componentes de E/S. � necess�rio ainda um outro componente. Um dispositivo de entrada transporta instru��es e dados em sequ�ncia. Mas, um programa n�o � invariavelmente executado sequencialmente; pode saltar � volta (e.g. a instru��o de deriva��o do IAS). Da mesma forma, as opera��es sobre os dados podem necessitar de mais do que um elemento em cada momento numa sequ�ncia pr�-determinada. Assim, tem de existir um local para armazenar temporariamente tanto instru��es como dados. Aquele m�dulo � designado por mem�ria ou mem�ria principal para poder distingui-la do armazenamento externo ou dispositivos externos. Von Neumann real�ou que a mesma mem�ria pode ser usada para armazenar tanto dados como instru��es. Os dados deveriam ser vistos como informa��o sobre a qual os c�lculos s�o efectuados. As instru��es deveriam ser tratadas como dados para serem interpretados como c�digos para gerar sinais de controlo. A figura 3.2 ilustra estes componentes de n�vel superior e sugere a interac��o entre si. O processador est� tipicamente em posi��o de controlo. Troca dados com a mem�ria. Para esse efeito, faz tipicamente uso de dois registos internos (� unidade de CPU): um registo de endere�amento de mem�ria (MAR), que especifica o endere�o na mem�ria para a pr�xima opera��o de leitura ou escrita e um registo tamp�o de mem�ria (MBR) que cont�m a informa��o a escrever na mem�ria ou recebe a informa��o a ser lida da mem�ria. De forma semelhante, um registo de endere�amento de E/S (E/S AR) especifica um dispositivo particular de E/S. Um registo tamp�o de E/S � usado para trocar informa��o entre um m�dulo de E/S e o processador. Um m�dulo de mem�ria consiste num conjunto de localiza��es, definidas por uma sequ�ncia de endere�os sequenciais. Cada localiza��o cont�m um n�mero bin�rio que pode ser interpretado como uma instru��o ou dado. Um m�dulo de E/S transfere informa��o dos dispositivos externos para o processador e a mem�ria e vice-versa. Esta cont�m tamp�es internos para manter a informa��o at� que esta possa ser enviada. Tendo observado brevemente os componentes principais, passamos agora para uma vista geral da forma como estes componentes trabalham em conjunto para executar programas. Figura 3.2: Componentes do computador: vista de n�vel superior. Fun��es do computadorA fun��o b�sica efectuada por um computador � a execu��o de programas. O programa a ser executado consiste num conjunto de instru��es armazenado na mem�ria. A unidade de processamento (CPU) faz o trabalho efectivo executando as instru��es especificadas pelo programa.Para obter uma maior compreens�o desta fun��o e da forma como os componentes principais do computador interactuam para executar um programa, necessitamos de olhar com mais detalhe o processo de execu��o de programas. O ponto de vista mais simples � considerar o processamento de instru��es como sendo constitu�do por dois passos: O processador l� (extrai) as instru��es da mem�ria uma de cada vez e executa cada instru��o. A execu��o do programa consiste na repeti��o do processo de extrac��o e execu��o de instru��es. Claro que a execu��o de uma instru��o pode, pelo seu lado, envolver um certo n�mero de passos ( ver por exemplo, a por��o inferior da figura 2.4). Neste est�gio, podemos justificar a divis�o do processamento de instru��es em dois est�gios de busca e de execu��o da seguinte forma: A busca de instru��o � uma opera��o comum para cada instru��o e consiste na leitura de uma instru��o de uma localiza��o na mem�ria. A execu��o da instru��o pode envolver v�rias opera��es e depende da natureza da instru��o. O processamento necess�rio para uma opera��o simples � chamado de ciclo de instru��o. Usando a descri��o simplificada de dois passos, exposta acima, o ciclo de instru��o � ilustrado na Figura 3.3. Os dos passos s�o referidos como ciclo de extrac��o e ciclo de execu��o. A execu��o do programa � suspensa apenas, se a m�quina for desligada, se ocorrer um erro n�o recuper�vel, ou se for encontrada uma instru��o de programa que o suspenda. Figura 3.3: Ciclo de instru��o b�sico. Os Ciclos de Extrac��o e de Execu��oNo in�cio de cada ciclo de instru��o, o processador extrai uma instru��o da mem�ria. Num processador t�pica, um registo chamado contador de programa (PC) � usado para tomar conta da pr�xima instru��o a extrair. A menos que instru�do de outra forma, o processador incrementa sempre o PC depois da extrac��o de cada instru��o, de forma a que possa extrair a pr�xima instru��o na sequ�ncia (isto �, a instru��o localizada no endere�o de mem�ria mais alto seguinte). Assim, por exemplo, considere um computador no qual cada instru��o ocupa na mem�ria uma palavra de 16-bits. Assuma que o contador de programa � ajustado para a posi��o 300. O processador em seguida extrai a instru��o na localiza��o 300. Nos ciclos de instru��o seguintes, ir� extrair instru��es das localiza��es 301, 302, 303 e assim sucessivamente, como foi explicado.A instru��o extra�da � carregada num registo do processador conhecida por registo de instru��o (IR). A instru��o est� na forma de um c�digo bin�rio que especifica a ac��o a tomar pelo processador. O processador interpreta a instru��o e efectua as ac��es requeridas. Em geral, estas ac��es caem em quatro categorias:
Figura 3.4: Caracter�sticas de uma m�quina hipot�tica. Consideremos um exemplo simples usando uma m�quina hipot�tica que inclua as caracter�sticas listadas na figura 3.4. O processador cont�m um acumulador (AC) para guardar informa��o tempor�ria. Tanto os dados como as instru��es t�m 16 bits de comprimento. Assim, � conveniente organizar a mem�ria usando localiza��es, ou palavras, de 16 bits. O formato da instru��o indica que podem existir c�digos de opera��o diferentes e at� (4K) palavras de mem�ria podem ser directamente endere��veis. A Figura 3.5 ilustra a execu��o parcial de um programa, mostrando as por��es relevantes da mem�ria e dos registos do processador. A nota��o usada � hexadecimal. Figura 3.5: Exemplo de um programa em execu��o.
Notar tamb�m que o diagrama permite m�ltiplos operandos e m�ltiplos resultados, uma vez que algumas instru��es em algumas m�quinas t�m necessidade disso. Por exemplo, a instru��o ADD A,B do PDP-11 resulta na seguinte sequ�ncia de instru��es: iac, if, iod, oac, of, oac, of, do, oac, os. Finalmente, em algumas m�quinas, uma simples instru��o pode especificar uma opera��o a ser efectuada num vector (lista uni-dimensional) de n�meros ou cadeias de caracteres. Como a Figura 3.6 indica, isto envolveria opera��es repetidas de extrac��o de operandos e/ou de opera��es de armazenamento. Figura 3.6: Diagrama de estados de um ciclo de instru��o. Interrup��esVirtualmente todos os computadores fornecem um mecanismo atrav�s do qual outros m�dulos (E/S, mem�ria) podem interromper o processamento normal do processador. A tabela 3.1 lista as classes mais comuns de interrup��es. A natureza espec�fica destas interrup��es � examinada mais tarde neste livro, especialmente nos cap�tulos 6 e 11. Contudo, necessitamos de introduzir os conceitos, agora, para compreender mais claramente a natureza dos ciclo de instru��o e as implica��es das interrup��es na estrutura de interconex�o. O leitor n�o necessita de, nesta fase, estar preocupado com os detalhes da gera��o e processamento das interrup��es, mas apenas prestar aten��o � comunica��o entre m�dulos que resulta das interrup��es.Tabela 3.1: Classes de interrup��o. As interrup��es servem em primeiro lugar como uma maneira de melhorar a efici�ncia de processamento. Por exemplo, a maior parte dos dispositivos externos s�o muito mais lentos do que os processadores. Suponhamos que o processador est� a transferir dados para uma impressora usando o esquema de ciclo de instru��es da figura 3.3. Depois de cada opera��o de escrita, o processador ter� que suspender e ficar ocioso at� que a impressora recuperar. O comprimento desta pausa pode ser da ordem das muitas centenas ou at� milhares de ciclos de instru��o que n�o envolvem a mem�ria. Com interrup��es o processador pode envolver-se na execu��o de outras instru��es enquanto a opera��o de E/S est� em progresso. A figura 3.7(a) ilustra este estado de coisas para a aplica��o mencionada no �ltimo par�grafo. O programa do utilizador efectua uma s�rie de chamadas de ESCRITA entremeadas com o processamento. Os segmentos de c�digo 1,2 e 3 referem-se a sequ�ncias de instru��es que n�o envolvem a E/S. As chamadas de ESCRITA s�o chamadas a um programa de E/S que � um utilit�rio do sistema e que ir�o efectuar a opera��o efectiva de E/S. O programa de E/S consiste de tr�s sec��es:
Figura 3.7: Fluxo de controlo com e sem interrup��o. Interrup��es e o Ciclo de Instru��oCom interrup��es, o processador pode ser envolvido na execu��o de outras instru��es enquanto a opera��o de E/S est� em progresso. Consideremos o fluxo de controlo na figura 3.7(b). Tal como antes, o programa do utilizador chega a um ponto em que faz uma chamada ao sistema sob a forma de uma chamada de ESCRITA. O programa de E/S que � evocado neste caso consiste apenas do c�digo de prepara��o e o comando efectivo de E/S. Depois destas poucas instru��es terem sido executadas, o controlo regressa ao programa do utilizador. Entretanto, o dispositivo exterior est� ocupado a aceitar dados da mem�ria do computador e a imprimi-los. Esta opera��o de E/S � efectuada concorrentemente com a execu��o de instru��es do programa do utilizador.Quando o dispositivo externo ficar pronto para ser servido, isto �, quando estiver pronto para aceitar mais dados do processador, o m�dulo de E/S para aquele dispositivo envia um sinal de pedido de interrup��o para o processador. O processador responde suspendendo a opera��o do programa corrente, derivando para um programa de tratamento de interrup��es de servi�o espec�fico daquele dispositivo de E/S e reassumindo a execu��o original depois do dispositivo ser servido. Os pontos em que tais interrup��es ocorrem s�o indicados com asterisco na figura 3.7(b). Do ponto de vista do programa do utilizador, a interrup��o � apenas isto: uma interrup��o da sequ�ncia normal de execu��o. Quando o processamento da interrup��o estiver conclu�da, a execu��o � reassumida (figura 3.8). Assim, o programa do utilizador n�o tem de conter nenhum c�digo especial para acomodar interrup��es; o processador e o sistema de explora��o s�o respons�veis por suspender o programa do utilizador e de o retomar no mesmo ponto. Figura 3.8: Transfer�ncia de controlo atrav�s de interrup��es.
Figura 3.9: Ciclo de instru��es com interrup��es. � claro que h� algum trabalho adicional envolvido neste processo. Instru��es extra tem de ser executadas (pela rotina de atendimento) para determinar a natureza da interrup��o e para decidir as ac��es apropriadas. De qualquer forma, por causa do relativamente longo tempo que seria desperdi�ado se simplesmente se ficasse � espera da opera��o de E/S, o processador pode ser usado com muito maior efici�ncia atrav�s do uso de interrup��es. Figura 3.10: Temporiza��o do programa; espera curta de E/S. A figura 3.7 (b) e 3.10 assumem que o tempo requerido para a opera��o de E/S � relativamente curto: inferior ao tempo necess�rio para completar a execu��o das instru��es entre as opera��es de escrita do programa do utilizador. O caso mais t�pico, especialmente para um dispositivo lento, tal como uma impressora, � que a opera��o de E/S demore mais tempo do que executar uma sequ�ncia de instru��es do utilizador. A figura 3.7(c) indica este estado de coisas. Neste caso, o programa do utilizador chega � segunda chamada de ESCRITA antes que o opera��o de E/S evocada pela primeira chamada esteja completa. O resultado � que o programa do utilizador fica suspenso naquele ponto. Quando a opera��o precedente de E/S se completar, esta nova chamada de ESCRITA pode prosseguir e arrancar uma nova opera��o de E/S. A figura 3.11 mostra a temporiza��o para esta situa��o com e sem o uso de interrup��es. Figura 3.11: Temporiza��o do programa; espera longa de E/S. A figura 3.12 mostra um diagrama de ciclo de instru��o revisto que inclui o processamento do ciclo de interrup��o. Figura 3.12: Diagrama de estados do ciclo de instru��o com interrup��es. Interrup��es M�ltiplasA discuss�o anterior apenas tratou da ocorr�ncia de uma simples interrup��o. Suponhamos, contudo, que podem ocorrer m�ltiplas interrup��es. Por exemplo, um programa pode estar a receber dados de uma linha de comunica��es e a imprimir resultados. A impressora ir� gerar interrup��es sempre que completa as opera��es de impress�o. O controlador de linha de comunica��es ir� gerar uma interrup��o sempre que chega uma unidade de dados. A unidade pode ser um simples car�cter ou um bloco, dependendo da natureza do protocolo de comunica��es. Em qualquer dos casos, � poss�vel ocorrerem interrup��es de comunica��o enquanto uma interrup��o de impress�o est� a ser processada.Duas abordagens podem ser feitas para tratar com m�ltiplas interrup��es. A primeira � impedir interrup��es enquanto uma interrup��o est� a ser processada. O impedimento de interrup��es significa, simplesmente, que o processador pode e ir� ignorar o sinal de pedido de interrup��o. Se uma interrup��o ocorrer durante aquele per�odo, em geral, mant�m-se pendente e ir� ser testado pelo processador ap�s o processador ter desimpedido as interrup��es. Assim, quando um programa de utilizador est� em execu��o e ocorre uma interrup��o, s�o, imediatamente, impedidas as interrup��es. Depois de conclu�da a rotina de tratamento de interrup��es, antes de retomar o programa do utilizador as interrup��es s�o desimpedidas e o processador verifica se ocorreram interrup��es adicionais. Esta abordagem � simples e elegante, uma vez que as interrup��es s�o manipuladas numa ordem estritamente sequencial (figura 3.13 (a)). Figura 3.13: Transfer�ncia de controlo com m�ltiplas interrup��es. Uma segunda abordagem � definir prioridades para as interrup��es e permitir a uma interrup��o de mais alta prioridade levar a que seja interrompido um atendedor de interrup��es de mais baixa prioridade (figura 3.13(b). Como um exemplo da segunda abordagem, consideremos um sistema com tr�s dispositivos de E/S: uma impressora, um disco e uma linha de comunica��es, com prioridades crescente de 2, 4 e 5 respectivamente. A figura 3.14 ilustra uma poss�vel sequ�ncia. Um programa de utilizador come�a em . Em ocorre uma interrup��o da impressora; a informa��o do utilizador � colocada na pilha do sistema e a execu��o continua na rotina de servi�o de interrup��o de impressora (ISR). Figura 3.14: Exemplo da sequ�ncia temporal de m�ltiplas interrup��es. Quando a ISR termina () o estado anterior do processador, que � a ISR da impressora, � restaurado. Contudo, antes mesmo que uma simples instru��o possa ser executada, o processador honra a interrup��o do disco, de prioridade superior, e o controlo � transferido para a ISR do disco. Apenas � retomado o programa ISR da impressora quando aquela rotina termina (). Quando, finalmente, aquela rotina termina o controlo retorna ao programa do utilizador. Fun��o de E/SAntes, discutimos a opera��o do computador como sendo controlada pelo CPU e olhamos em primeiro lugar para a interac��o entre o processador e a mem�ria. A discuss�o apenas aludiu ao papel da componente E/S. Este papel � discutido em detalhe no cap�tulo 6, mas um resumo breve � apropriado aqui.Um m�dulo de E/S pode trocar dados directamente com o processador. Tal como o processador pode iniciar uma leitura ou escrita com a mem�ria, designando o endere�o de uma localiza��o espec�fica, o processador pode tamb�m ler ou escrever informa��o de um m�dulo de E/S. Neste �ltimo caso, o processador identifica um dispositivo espec�fico que � controlado por um m�dulo particular de E/S. Assim, uma sequ�ncia de instru��o semelhante em forma � da figura 3.5 pode ocorrer, com instru��es de E/S em vez de instru��es de refer�ncia � mem�ria. Em alguns casos � desej�vel permitir que as transfer�ncias de E/S ocorram directamente com a mem�ria. Em tais casos, o processador garante a um m�dulo de E/S a autoridade para ler ou escrever na mem�ria, de forma a que a transfer�ncia possa ocorrer sem perturbar o processador. Durante tal tipo de trransfer�ncia o m�dulo de E/S emite comandos de leitura ou de escrita, libertando o processador da responsabilidade da transfer�ncia. Esta opera��o � conhecida por acesso directo a mem�ria (DMA) e ir� ser examinada com detalhe no cap�tulo 6. Por agaora, tudo o que necessitamos � saber que a estrutura de interliga��o do computador pode ter necessidade de interac��o directa mem�ria-E/S. Estruturas de Interconex�oUm computador compreende um conjunto de componentes ou m�dulos de tr�s tipos b�sicos (processador, mem�ria e E/S) que comunicam entre si. Com efeito, um computador � uma rede de m�dulos b�sicos. Assim, t�m de existir caminhos para ligar os m�dulos em conjunto.Figura 3.15: M�dulos de um computador. A figura 3.15 sugere os tipos de trocas que s�o necess�rios indicando as formas maiores de entrada e de sa�da para cada tipo de m�dulos:
Barramentos de Interconex�oUm barramento � uma via de comunica��o que liga dois ou mais dispositivos. Uma caracter�stica chave do barramento � que � um meio de transmiss�o partilhado. M�ltiplos dispositivos ligam ao barramento e um sinal emitido por qualquer dispositivo fica dispon�vel para ser recebido por todos os outros dispositivos agarrados ao barramento. Se dois dispositivos emitem durante o mesmo per�odo de tempo, os seus sinais sobrepor-se-�o e tonar-se-�o adulterados. Por isso, apenas um dispositivo pode emitir com sucesso em cada momento.Em muitos casos, um barramento compreende m�ltiplos caminhos, ou linhas, de comunica��o. Cada linha � capaz de transmitir sinais representando os bin�rios 1 e 0. Ao longo do tempo uma sequ�ncia de d�gitos bin�rios pode ser transmitida atrav�s de um simples linha. Tomados em conjunto, v�rias linhas de um barramento podem ser usadas para transmitir v�rios d�gitos bin�rios simultaneamente (em paralelo). Por exemplo, uma unidade de 8-bits pode ser transmitida atrav�s de oito linhas de barramento. Os sistemas de computa��o cont�m um certo n�mero de diferentes barramentos que fornecem os caminhos entre componentes nos v�rios n�veis de hierarquia do sistema de computa��o. Um barramento que liga os componentes principais (processador, mem�ria e E/S) � chamado barramento de sistema. As estrutura mais comuns de interliga��o num computador s�o baseadas no uso de um ou mais barramentos. Estrutura do BarramentoUm barramento de sistema consiste, tipicamente, de 50 a 100 linhas separadas. A cada linha � atribu�do um significado ou fun��o particular. Embora haja muitos desenhos diferentes de barramentos, em qualquer barramento as linhas podem ser classificadas em tr�s grupos funcionais (Figura 3.16): dados, endere�os e linhas de controlo. Adicionalmente, podem existir linhas de distribui��o de pot�ncia que fornecem a alimenta��o dos m�dulos agarrados. As linhas de dados estabelecem o caminho para mover dados entre m�dulos de sistema. Estas linhas s�o colectivamente designadas por barramento de dados. O barramento de dados consiste, tipicamente, de 8, 16, ou 32 linhas separadas, linhas que s�o referidas como largura do barramento de dados.Figura 3.16: Esquema de barramento de interconex�o. As linhas de endere�o s�o usadas para designar a origem ou o destino dos dados no barramento de dados. Por exemplo, se o processador pretende ler uma palavra (8, 16, ou 32-bits) de dados da mem�ria p�e o endere�o da palavra pretendida nas linhas de endere�o. A largura do barramento de endere�os determina, claramente, a m�xima capacidade poss�vel de mem�ria do sistema. Para al�m disso, as linhas de endere�o s�o, tamb�m, geralmente usadas para endere�ar os portos de E/S. Tipicamente, os bits mais significativos s�o usados para seleccionar um m�dulo particular e os bit menos significativos seleccionam uma posi��o de mem�ria ou de porto de E/S, dentro do m�dulo. Por exemplo, num barramento de 8-bits de largura, os endere�os 01111111 e abaixo podem referenciar posi��es do m�dulo de mem�ria (m�dulo 0) com 128 palavras de mem�ria e os endere�os 10000000 e acima referenciar dispositivos agarrados a um m�dulo de E/S (m�dulo 1). As linhas de controlo s�o usadas para comandar o acesso e o uso das linhas de dados e linhas de endere�os. Uma vez que as linhas de dados e de endere�os s�o partilhadas por todos os componentes tem de existir um meio de controlar o seu uso. Os sinais de controlo transmitem tanto comandos como informa��o temporal entre m�dulos de sistema. Os sinais de tempo indicam a validade da informa��o de dados e de endere�os. Os sinais de controlo especificam as opera��es a realizar. As linhas de controlo incluem tipicamente:
Fisicamente, o barramento de sistema �, na verdade, um certo n�mero de condutores el�ctricos paralelos. Estes condutores s�o linhas met�licas estampadas num cart�o ou placa (placa de circuito impresso). O barramento estende-se atrav�s de todos os componentes de sistema, cada um dos quais se liga a alguma ou a todas as linhas do barramento. Um arranjo f�sico muito comum � apresentado na figura 3.17. Neste exemplo, o barramento compreende duas colunas de condutores verticais. Em intervalos regulares ao longo das colunas, h� pontos de amarra��o sob a forma de ranhuras que se estendem horizontalmente para suportar uma placa de circuito impresso. Cada um dos componentes principais ocupam uma ou mais placas e encaixam no barramento atrav�s das ranhuras. O sistema na sua totalidade � preso num chassis. Este arranjo � o mais conveniente. Pode ser adquirido um pequeno sistema de computa��o e mais tarde expandido (mais mem�ria, mais E/S) atrav�s da jun��o de mais placas. Se um componente numa placa falhar, a placa pode ser facilmente removida e substitu�da. Figura 3.17: Realiza��o f�sica t�pica de uma arquitectura de barramento. Hierarquia de M�ltiplos BarramentosSe um grande n�mero de dispositivos forem ligados ao barramento o rendimento � afectado. H� duas causas principais :
� poss�vel ligar os controladores de E/S directamente ao barramento. Uma solu��o mais eficiente � recorrer a um ou mais barramentos de expans�o para este efeito. O interface de um barramento de expans�o faz a tamporiza��o das transfer�ncias de dados entre o barramento de sistema e os controladores de E/S no barramento de expans�o. Este arranjo permite ao sistema suportar uma vasta gama de dispositivos de E/S e ao mesmo tempo isolar o tr�fico mem�ria-processador, do tr�fico de E/S. Figura 3.18: Exemplos de configura��o de barramentos. Esta arquitectura tradicional do barramento � razoavelmente eficiente mas come�a a dar sinais de fraqueza � medida que os dispositivos de E/S exibem rendimentos cada vez mais elevados. Em resposta a esta crescente demanda, uma abordagem comum tomada pela ind�stria � construir um barramento de elevada velocidade que seja completamente integrado com o resto do sistema, necessitando apenas de uma ponte entre o barramento do processador e o barramento de alta-velocidade. Esta arranjo � �s vezes conhecido como uma arquitectura mezzanine. A figura 3.18 (b) mostra uma realiza��o t�pica desta abordagem. De novo, h� um barramento local que liga o processador ao controlador de cache, o qual por sua vez � ligado a um barramento de sistema que suporta a mem�ria principal. O controlador de cache � integrado numa ponte, ou dispositivo de tamporiza��o, que se liga ao barramento de alta velocidade. Este barramento suporta a liga��o a redes (LAN) de alta-velocidade, tais como (FDDI)3.2 a 100Mbps, controladores de v�deo e gr�ficos de esta��es de trabalho, assim como, controladores de interface para barramentos locais de perif�ricos incluindo SCSI e P1394. Este �ltimo arranjo � um barramento de alta-velocidade especificamente projectado para suportar dispositivos de E/S de elevada capacidade. Dispositivos de baixa-velocidade s�o ainda suportados atrav�s de um barramento de expans�o, com um interface para tamporiza��o do tr�fego entre o barramento de expans�o e o barramento de elevada-velocidade. As vantagens deste arranjo � que o barramento de alta velocidade traz dispositivos com exig�ncias de alta-velocidade para uma integra��o mais pr�xima do processador e ao mesmo tempo � independente do processador. Assim, s�o toleradas diferen�as entre velocidades e defini��es de linhas de sinal do processador e dos barramentos de alta-velocidade. As mudan�as na arquitectura do processador n�o afectam o barramento de alta-velocidade e vice-versa. Elementos do projecto de BarramentoEmbora exista uma variedade de diferentes realiza��es de barramentos, h� uns poucos par�metros b�sicos ou elementos de projecto que servem para classificar e diferenciar os barramentos. A tabela 3.2 lista os elementos chave.Tabela 3.2: Elementos do projecto de barramentos. Tipos de BarramentosAs linhas do barramento podem ser separadas em dois tipos gen�ricos: dedicadas e multiplexadas. Uma linha dedicada de barramento est� permanente atribu�da a uma fun��o ou a um subconjunto f�sico de componentes do computador.Um exemplo de dedica��o funcional � o uso de linhas separadas de endere�o e de dados que � comum a muitos barramentos. Contudo, n�o � essencial. Por exemplo, informa��o de endere�os e de dados pode ser transmitida atrav�s do mesmo conjunto de linhas usando uma linha de controlo de Valida��o de Endere�o. No in�cio da transfer�ncia o endere�o � colocado no barramento e a linha de Valida��o de Endere�os � activado. Neste ponto, cada m�dulo tem um per�odo de tempo espec�fico para copiar os endere�os e determinar se � o m�dulo endere�ado. O endere�o � depois removido do barramento e as mesmas liga��es s�o usadas para as subsequentes transfer�ncias de dados de leitura ou de escrita. Este m�todo de usar as mesma linhas para m�ltiplos prop�sitos � chamada multiplexa��o no tempo. A vantagem da multiplexa��o no tempo � o uso de menos linhas o que poupam espa�o e, habitualmente, em custo. A desvantagem � a necessidade de circuitos mais complexos dentro de cada m�dulo. H�, tamb�m, uma potencial redu��o do rendimento uma vez que certos eventos que partilham as mesmas linhas n�o poderem ocorrer em paralelo. A dedica��o f�sica refere-se ao uso de m�ltiplos barramentos, cada um dos quais liga apenas um subconjunto de m�dulos. Um exemplo t�pico � o uso de um barramento de E/S para interligar todos os m�dulos de E/S; este barramento � por sua vez ligado ao barramento principal atrav�s de algum tipo de adaptador de m�dulos de E/S. A vantagem potencial da dedica��o f�sica � o elevado desempenho, porque h� menor conten��o do barramento, a desvantagem � o aumento do tamanho e do custo do sistema. M�todo de ArbitragemEm todos, menos nos sistemas mais simples, mais do que um m�dulo pode necessitar de controlar o barramento. Por exemplo, um m�dulo de E/S pode necessitar de ler ou de escrever directamente na mem�ria, sem enviar dados para o processador. Uma vez que apenas uma unidade, em cada momento, pode transmitir com sucesso atrav�s barramento, � necess�rio algum m�todo de arbitragem. Os v�rios m�todos podem ser grosseiramente classificados como sendo centralizados ou distribu�dos. Num esquema centralizado, um dispositivo f�sico simples, referido como �rbitro ou controlador de barramento � respons�vel pela atribui��o de tempo no barramento. O dispositivo pode ser um m�dulo separado ou parte do processador. Num esquema distribu�do, n�o h� controlador central. Pelo contr�rio, cada m�dulo cont�m l�gica de controlo de acesso e os m�dulos actuam em conjunto para partilhar o barramento. Com ambos os m�todos de arbitragem, a inten��o � designar um dispositivo, o processador ou um m�dulo de E/S como mestre. O mestre pode ent�o iniciar a transfer�ncia de dados (e.g. leitura ou escrita) com qualquer outro dispositivo que age como servo para esta troca particular. Veremos exemplos de ambos os m�todos de arbitragem mais tarde nesta sec��o.Temporiza��oA temporiza��o refere a forma pela qual os eventos no barramento s�o coordenados. Com temporiza��o s�ncrona, a ocorr�ncia de eventos no barramento � determinada por um rel�gio. O barramento inclui uma linha de rel�gio atrav�s da qual o rel�gio transmite uma sequ�ncia regular alternada de 1s e de 0s de igual dura��o. Uma transmiss�o 1-0 simples � referida como um ciclo de rel�gio ou ciclo de barramento e define uma fatia de tempo. Todos os outros dispositivos no barramento podem ler a linha de rel�gio e todos os eventos come�am no in�cio de um ciclo de rel�gio. A figura 3.19 (a) mostra o diagrama temporal de uma opera��o de leitura s�ncrona (ver o ap�ndice 3A para uma apresenta��o de diagramas temporais).Figura 3.19: Temporiza��o de opera��o de leitura. Com temporiza��o ass�ncrona, a ocorr�ncia de um evento no barramento segue e depende da ocorr�ncia de um evento precedente. No exemplo simples da figura 3.19(b), o processador coloca endere�os e sinais de leitura no barramento. Depois de uma pausa para que aqueles sinais estabilizem, emite um sinal (MSYNC)3.3, indicando a presen�a de um endere�o v�lido e sinais de controlo. O m�dulo de mem�ria responde com os dados e um sinal SSYNC3.4, indicando a resposta. A temporiza��o s�ncrona � mais simples de realizar e de testar. Contudo, � menos flex�vel do que a temporiza��o ass�ncrona. Porque todos os dispositivos num barramento s�ncrono est�o presos a uma taxa fixa de rel�gio, o sistema n�o pode tirar partido dos avan�os em rendimento dos dispositivos. Com a temporiza��o ass�ncrona, uma mistura de dispositivos lentos e r�pidos, usando tecnologias antigas e novas, podem partilhar um barramento. Veremos exemplos de temporiza��o s�ncrona e ass�ncrona. Largura do BarramentoJ� toc�mos o conceito de largura do barramento. A largura do barramento de dados tem um impacto no rendimento do sistema: quanto mais largo for o barramento, maior o n�mero de bits transferidos num s� instante. A largura do barramento de endere�os tem um impacto na capacidade do sistema: quanto mais largo for o barramento de endere�os, maior a gama de localiza��es que podem ser referenciadas.Tipos de Transfer�ncias de DadosFinalmente, um barramento suporta v�rios tipos de transfer�ncias de dados, tal como � ilustrado na figura 3.20, Todos os barramentos suportam transfer�ncias tanto de escrita (mestre para servo) como de leitura (servo para mestre). No caso de um barramento com multiplexa��o endere�os/dados o barramento � usado em primeiro lugar para especificar o endere�o e em seguida para transferir os dados. Para uma opera��o de leitura, h� tipicamente uma espera enquanto os dados s�o extra�dos do servo para serem postos no barramento. Tanto na leitura como na escrita, pode existir um atraso, para o que resta da opera��o, se for necess�rio ir atrav�s de arbitragem para obter o controlo do barramento (i.e. apoderar-se do barramento para requer uma leitura ou escrita e de novo se apoderar do barramento para efectuar a leitura ou a escrita).No caso de barramentos dedicados para endere�os e dados, o endere�o � posto no barramento de endere�os e permanece l� enquanto os dados s�o postos no barramento. Para uma opera��o de escrita, o mestre coloca os dados no barramento logo que o endere�o estiver estabilizado e o servo tenha tido a oportunidade para reconhecer seu endere�o. Para um opera��o de leitura, o servo p�e os dados no barramento de dados logo que tenha reconhecido o seu endere�o e extra�do os dados. H�, tamb�m, v�rias opera��es combinadas permitidas por alguns barramentos. Uma opera��o de leitura-escrita-modificada � simplesmente uma leitura imediatamente seguida de uma escrita no mesmo endere�o. O endere�o � difundido apenas uma vez no in�cio da opera��o. A opera��o total � tipicamente indivis�vel para poder prevenir o acesso ao mesmo elemento por outros potenciais mestres de barramento. O principal objectivo desta capacidade � proteger recursos de mem�ria partilhada em sistemas de multi-programa��o (ver cap�tulo 7). Leitura-ap�s-escrita � uma opera��o indivis�vel que compreende uma escrita imediatamente seguida de uma leitura do mesmo endere�o. A opera��o de leitura pode ser efectuada para efeito de confirma��o. Alguns barramentos, tamb�m, suportam transfer�ncias de dados em bloco. Neste caso, um ciclo de endere�o � seguido de ciclos de dados. O primeiro item de dados � transferido para ou de um endere�o espec�fico; os restantes itens de dados s�o transferidos de ou para endere�os subsequentes. Figura 3.20: Tipos de transfer�ncias de dados. PCIO PCI3.5 � um barramento recente de elevada largura de banda, independente do processador que pode funcionar como mezzanine ou como barramento perif�rico. Comparado com outras especifica��es de barramentos comuns, O PCI apresenta melhor rendimento para sub-sistemas de E/S de alta-velocidade (e.g. adaptadores de visor gr�ficos, controladores para interfaces de rede, controladores de disco, etc.). A norma actual permite o uso de at� 64 linhas de dados a 33 MHz, para transfer�ncias de 264MOctetos/seg ou 2.112 Gb/s. Mas n�o � apenas a alta-velocidade que torna o PCI atractivo. O PCI � especificamente projectado para ir de encontro aos requisitos econ�micos da E/S dos sistemas actuais; s�o necess�rios muito poucos circuitos integrados para implementar e suportar outros barramentos pendurados no barramento PCI.A Intel come�ou a trabalhar no PCI em 1990 para os seus sistemas baseados no Pentium. A Intel cedo entregou todas as patentes ao dom�nio p�blico e promoveu a cria��o de uma associa��o industrial, O PCI SIG, para desenvolver e continuar a manter a compatibilidade das especifica��es PCI. O resultado foi que o PCI tem vindo a ser largamente adoptado e est� a encontrar um uso crescente em computadores pessoais, esta��es de trabalho e sistemas servidores. A vers�o actual, PCI 2.0, foi licenciada em 1993. Porque a especifica��o � de dom�nio p�blico e � suportada por uma importante parcela da ind�stria de micro-processadores e perif�ricos, os produtos PCI constru�dos por diferentes construtores s�o compat�veis. O PCI foi projectado para suportar uma variedade de configura��es baseadas em micro-processadores. Em concord�ncia, oferece um conjunto de fun��es de uso geral. Faz uso de temporiza��o s�ncrona e um esquema de arbitragem centralizado. A figura 3.21 (a) mostra um uso t�pico do PCI num sistema uni-processador. Uma combina��o de controlador de DRAM e ponte para o barramento PCI oferece um acoplamento compacto com o processador e a habilidade para transferir dados a alta-velocidade. A ponte actua como um tamp�o de dados de forma a que a velocidade do barramento possa diferir da capacidade de E/S do processador. Num sistema multi-processador (Figura 3.21 (b), uma ou mais configura��es PCI podem ser interligados atrav�s de pontes ao barramento de sistema dos processadores. O barramento de sistema suporta apenas as unidades processador/ cache, mem�ria principal e pontes PCI. De novo, o uso de pontes mant�m o PCI independente da velocidade do processador, ao mesmo tempo que oferece a habilidade para receber e entregar dados rapidamente. Figura 3.21: Exemplo de configura��es PCI. Estrutura do BarramentoO PCI pode ser configurado como um barramento de 32 ou 64-bits. A tabela 3.3. define as 50 linhas de sinal mandat�rias. Estes pinos s�o divis�veis nos seguintes grupos funcionais:
Tabela 3.3: Linhas de sinais mandat�rias em PCI. Cumulativamente, a especifica��o PCI define 50 linhas de sinal opcionais (Tabela 3.4) divididas nos seguintes grupos funcionais de pinos:
Tabela 3.4: Linhas de sinais opcionais em PCI. Comandos PCIA actividade do barramento ocorre sob a forma de transa��es entre um iniciador, ou mestre, e um alvo. Quando um mestre no barramento adquire o controlo do barramento, determina o tipo de transac��o que ir� ocorrer a seguir. Durante a fase de transac��o, as linhas C/BE s�o usadas para sinalizar o tipo de transac��o. Os comandos s�o
O comando Ciclo Especial � usado pelo iniciador para difundir uma mensagem para um ou mais alvos. Os comandos de Leitura e Escrita da E/S s�o usados para transferir dados entre o iniciador e um controlador de E/S. Cada dispositivo de E/S tem o seu pr�prio espa�o de endere�amento e as linhas de endere�os s�o usadas para indicar um dispositivo particular e para especificar os dados transferidos para ou daquele dispositivo. O conceito de endere�amento de E/S � explorado no cap�tulo 6. Os comandos de Leitura e Escrita de Mem�ria s�o usados para especificar a transfer�ncia de uma rajada de dados, que ocupa um ou mais ciclos de mem�ria. A interpreta��o destes comandos est� dependente do controlador de mem�ria suportar ou n�o o protocolo PCI para transfer�ncias entre a mem�ria e a cache. Em caso afirmativo, a transfer�ncia de dados
para e da mem�ria � tipicamente em termos de linhas de cache, ou blocos. Os tr�s comandos de leitura de mem�ria tem o uso apresentado na Tabela 3.5. O comando de escrita � usado para transferir dados, em um ou mais ciclos de dados, para a mem�ria. Tabela 3.5: Interpreta��o dos comandos de leitura em PCI. O comando de Invalida��o e Escrita de Mem�ria transfere dados em um ou mais ciclos para a mem�ria. Cumulativamente, garante que pelo menos uma linha de cache � escrita. Este comando suporta a fun��o cache de escrita de uma linha para a mem�ria. Os dois comandos de configura��o habilitam um mestre a ler e actualizar os par�metros de configura��o de um dispositivo ligado ao PCI. Cada dispositivo PCI pode incluir at� 256 registos internos que s�o usados durante a inicia��o do sistema para configura o dispositivo. O comando Ciclo Duplo de Endere�amento � usado por um iniciador para indicar que est� a ser usado um endere�amento de 64-bits. Transfer�ncia de DadosToda a transfer�ncia de dados no barramento PCI � uma transac��o simples que compreende uma fase de endere�os e uma ou mais fases de dados. Nesta discuss�o, ilustramos uma opera��o t�pica de leitura; a opera��o de escrita � processada similarmente.A figura 3.22 mostra a temporiza��o da transac��o de leitura. Todos os eventos s�o sincronizados pela transi��o descendente do rel�gio que ocorre no meio de cada ciclo de rel�gio. Os eventos mais significativos, etiquetados no diagrama, s�o os seguintes:
Figura 3.22: Opera��o de Leitura no PCI. ArbitragemO PCI recorre a um esquema de arbitragem centralizada e s�ncrona no qual cada mestre tem um sinal �nico para requerimento e para concess�o. Estas linhas de sinais est�o presas a um �rbitro central (Figura 3.23) e um simples esquema requerimento-concess�o � usado para obter o acesso ao barramento.A especifica��o PCI n�o imp�e um algoritmo particular de arbitragem. O �rbitro pode usar uma abordagem primeiro a chegar primeiro a ser servido, uma abordagem andar � volta ou qualquer outra esp�cie de esquema de prioridade. Figura 3.23: �rbitro num barramento PCI. A figura 3.24 � um exemplo no qual os dispositivos A e B s�o submetidos � decis�o de posse do barramento. A seguinte sequ�ncia ocorre: Figura 3.24: Arbitragem de barramento PCI entre dois mestres.
� de notar que a arbitragem ocorre ao mesmo tempo que o mestre corrente est� a efectuar uma transfer�ncia de dados. Consequentemente, n�o h� perda de ciclos de rel�gio durante a arbitragem. Isto � referido por arbitragem escondida ResumoA especifica��o Futurebus+ � uma das normaliza��es tecnicamente mais complexas alguma vez produzida. A norma cobre a camada l�gica, a camada f�sica e, perfis, recomenda��es pr�ticas e, ainda refer�ncias para outras dcoumentos normativos. O resultado � uma especifica��o de barramento que pode ser usada para o barramento mem�ria-processador ou que pode competir com o PCI no suporte aos perif�ricos de elevada-velocidade. Tanto o PCI como o Futurebus+ suportam taxas de transfer�ncia muito elevadas. A chave distintiva � que o PCI � dirigido para uma implementa��o de baixo custo que recorre a uma �rea f�sica m�nima, enquanto que o Futurebus+ pretende dar flexibilidade e uma vasta funcionalidade para de ir de encontro �s necessidades de uma vasta variedade de sistemas de elevado rendimento, em particular sistemas de alto-custo. -----------------------------------------Leitura RecomendadaA literatura sobre barramento e outras estruturas de interconex�o e, surpreendemente, n�o muito extensa. [ALEX93] inclui um tratamento em profundidade das estruturas de barramento e temas sobre transfer�ncias em barramento, incluindo a descri��o de v�rios barramentos espec�ficos.A mais clara extensa descri��o do PCI � em [SHAN94a]. [SOLA94] tamb�m cont�m informa��o consistente sobre o PCI. ALEX93 Alexandridis, N. Design of Micro-processor-Based Systems. Englewood Cliffs, NJ: Prentice Hall, 1993. SHAN94a Shanley, T., and Anderson, D. PCI Systems Architecture. Richardson, TX: Mindshare Press, 1994. SOLA94 Solari, E., and Willse, G. PCI Hardware and Software: Architecture and Design. San Diego, CA: Annabooks, 1994. Next: Mem�ria Interna Up: Arquitectura e Organiza��o Interna Previous: Evolu��o dos Computadores e 2000-05-10 O que é barramento multiplexado?✦ Barramento multiplexado:
✓ Linhas compartilhadas e usadas para vários propósitos.
Como funciona o barramento?Barramento tipo pente: Funciona como uma régua metálica revestida por um plástico isolante. Dessa régua saem alguns “dentes” para encaixar em vários disjuntores de uma única vez. Assim, todos os disjuntores conectados no barramento tipo pente ficam energizados juntos, sendo possível fazer as derivações necessárias.
Qual a diferença entre um barramento dedicado é um multiplexado?Dedicado: Cada elemento do barramento é dedicado exclusivamente ou a uma função ou a um subconjunto de componentes do computador. Multiplexado: Nesse tipo de barramento sinais podem ser multiplexados no tempo para comportar diferentes funções.
Qual é a função do barramento de dados?Barramento de dados – como o próprio nome já deixa a entender, é por este tipo de barramento que ocorre as trocas de dados no computador, tanto enviados quanto recebidos. Barramento de endereços – indica o local onde os processos devem ser extraídos e para onde devem ser enviados após o processamento.
|