Baixe o app para aproveitar ainda mais
Prévia do material em texto
Resumo: chips de CPU e barramentos. Amanda Klein1 1Instituto de Matemática e Computação - Universidade Federal de Itajubá (UNIFEI) 37500-903 – Itajubá – MG – Brasil amandaklein@unifei.edu.br 1. Introdução Em qualquer sistema de computador, um chip de CPU é formado por componentes eletrônicos de baixa capacidade, em um circuito integrado, que gerencia o fluxo de dados entre o processador, memória e periféricos. É normalmente encontrado na placa mãe. Chips de CPU são normalmente projetados para trabalhar com uma famı́lia especı́fica de microprocessadores. Por controlar as comunicações entre o processador e dispositivos externos, o chip de CPU desempenha um papel crucial na determinação do desempenho do sistema. Já os barramentos, são conjuntos de comunicação que permitem a interligação entre dispositivos, como a CPU, a memória e outros periféricos. São as linhas de trans- missão que transmitem as informações entre o processador, memória e todos os demais periféricos do computador. Estes, possuem tipos diferentes de comunicação que serão abordados posteriormente. O presente resumo tem como objetivo definir, categorizar e caracterizar os chips de CPU e barramentos, além de destacar pontos importantes de seus componentes e funções, partindo do livro ”Organização estruturada de computadores” de Tanenbaum & Austin (2013). 2. Discussão 2.1. Chips de CPU Atualmente, todas as CPUs são contidas em um único chip que interage com o resto do sistema de forma bem definida. Cada chip de CPU tem um conjunto de pinos por meio dos quais deve ocorrer toda suas comunicação com os dispositivos exteriores. Desse modo, entendendo a função de todos esses pinos, é possı́vel aprender como a CPU interage com a memória e os dispositivos E/S no nı́vel lógico digital. De acordo com Tanenbaum & Austin (2013), os pinos de um chip de CPU podem ser categorizados em em três tipos: de endereço, de dados e de controle. Esses pinos são conectados à outros dispositivos por meio de um conjunto de fios paralelos, chamados de barramentos. Dessa forma, para buscar uma instrução, a CPU coloca o endereço de memória dessa instrução em seus pinos de endereço e a memória responde colocando a palavra requisitada nos pinos de dados da CPU. Além disso, a CPU se comunica com a memória e com dispositivos de E/S apresentando e aceitando sinais em seus pinos, não sendo possı́vel nenhuma outra forma de comunicação. Dois dos indicadores que determinam o desempenho de uma CPU são o número de pinos de endereço e o número de pinos de dados, por exemplo, um chip com m pinos de endereço pode endereçar até 2m localizações de memória e, de forma parecida, um chip com n pinos de dados pode ler ou escrever uma palavra de n bits de uma única operação. Assim, quanto mais pinos tem o chip, mais rápido e mais caro ele é. Além dos pinos de endereço, cada CPU também contém pinos de controle, que regulam o fluxo e a temporização de dados que vêm da CPU e vão para ela. Ademais, todas as CPUs têm pinos para energia elétrica, para terra e para um sinal de clock, mas outros pinos variam muito de um chip para o outro. Conforme Tanenbaum & Austin (2013), os pinos de controle são divididos em: controle de barramento, interrupções, arbitragem de barramento, sinalização de copro- cessador, estado e diversos. A maioria dos pinos de controle do barramento são saı́das da CPU para o barramento, a CPU usa esses pinos para controlar o resto do sistema e infor- mar o que ela quer fazer. Já os pinos de interrupção, são entradas que vêm de dispositivos de E/S para a CPU, quando uma operação de E/S estiver concluı́da, o chip controlador de E/S ativa um sinal em um desses pinos para interromper a CPU e fazê-la prestar al- gum serviço ao dispositivo de E/S. Os pinos de arbitragem de barramento são necessários para disciplinar o tráfego no barramento de modo a impedir que dois dispositivos tentem usá-lo ao mesmo tempo. Alguns chips de CPUs são projetados para funcionar com co- processadores, como chips de ponto flutuante, mas às vezes também com chips gráficos ou outros chips. Para facilitar a comunicação entre CPU e coprocessador, há pinos espe- ciais dedicados a fazer e aceitar requisições e além desses, há pinos diversos em algumas CPUs. 2.2. Barramentos de computador Um barramento é um caminho elétrico comum entre vários dispositivos. Os barramentos podem ser categorizados por sua função. Podem ser usados no interior da CPU para transportar dados de e para a ULA ou serem externos à CPU, para conectá-la à memória ou a dispositivos de E/S. Os primeiros computadores pessoais tinham somente um barramento externo, ou barramento do sistema, porém, hoje em dia os computadores pessoais em geral têm um barramento de uso especial entre a CPU e a memória e (pelo menos) outro barramento para os dispositivos de E/S. Há regras bem definidas sobre o modo de funcionamento do barramento, às quais todos os dispositivos a ele ligados têm de obedecer que são denominadas protocolo de barramento. Ainda assim, outros barramentos não possuem especificações mecânicas, pois são projetados para serem usados dentro de um circuito integrado. Alguns dos mais conhecidos barramentos, no passado e atualmente, são: Om- nibus (PDP-8), Unibus (PDP-11), Multibus (8086), barramento vME (equipamento para laboratório de fı́sica), barramento do iBM PC (PC/xT), barramento iSA (PC/AT), barra- mento EiSA (80386), Microchannel (PS/2), Nubus (Macintosh), barramento PCi (muitos PCs), barramento SCSi (muitos PCs e estações de trabalho), Universal Serial Bus (PCs modernos) e FireWire (equipamentos eletrônicos de consumo). Além disso, alguns dispositivos ligados a um barramento são ativos e podem ini- ciar transferências no barramento, enquanto que outros são passivos e devem esperar requisições. Os ativos são denominados mestres; os passivos são denominados escravos. Desse modo, quando a CPU ordena a um controlador que leia ou escreva um bloco, ela está agindo como mestre e o controlador de disco, como escravo. Os sinais binários emitidos por dispositivos de computador muitas vezes são fracos demais para energizar um barramento, por isso, a maioria dos mestres de barramento está conectada a ele por um chip denominado controlador de barramento, que é nada mais que um amplificador digital. A grande parte dos escravos está conectada ao barramento por um receptor de barramento. Quando dispositivos podem agir como mestres e também como escravos, é usado um chip combinado denominado transceptor de barramento. Essas interfaces de barramento são com frequência dispositivos de três estados, chamado de coletor aberto. Quando dois ou mais dispositivos em uma linha de coletor aberto ativam a linha ao mesmo tempo, o resultado é o OR booleano de todos os sinais. Esse configuração costuma ser denominada OR cabeado (wired-OR). Assim como uma CPU, um barramento também tem linhas de endereço, de da- dos e de controle, por exemplo, algumas CPUs têm três pinos que codificam se ela está fazendo uma leitura de memória, uma escrita na memória, uma leitura de E/S, uma es- crita de E/S ou alguma outra operação. Um barramento tı́pico poderia ter uma linha para leitura de memória, uma segunda para escrita na memória, uma terceira para leitura de E/S, uma quarta para escrita de E/S e assim por diante. De maneira semelhante, os prin- cipais tópicos do projeto de barramento são largura, clock, arbitragem e operações. 2.3. Largura do barramento Quanto mais linhas de endereço tiver um barramento, mais memória a CPU pode endereçar diretamente. Se um barramento tiver n linhas de endereço, uma CPU pode usá-las para endereçar 2n localizações de memórias diferentes. O que dificulta é que bar- ramentos largos precisam de mais fios do que os estreitos, e também ocupam mais espaço fı́sico (por exemplo, na placa-mãe), além de precisar de conectores maiores.Todos esses fatores encarecem o barramento e, por isso, há um compromisso entre tamanho máximo de memória e custo do sistema. Não é apenas o número de linhas de endereço que tende a crescer com o tempo, mas também o número de linhas de dados, porém, por uma razão diferente. Há dois modos de aumentar a largura de banda de dados de um barramento: re- duzir o tempo deste ou aumentar sua largura de dados. Acelerar o barramento é possı́vel, mas difı́cil, porque os sinais trafegam em linhas diferentes com velocidades ligeiramente diferentes, um problema conhecido como atraso diferencial do barramento. Quanto mais rápido o barramento, mais sério se torna o atraso diferencial.Para contornar o problema de barramentos muito largos, às vezes os projetistas optam por um barramento multiplexado. Nesse projeto, em vez de as linhas de endereços e dados serem separadas, há, por exem- plo, 32 linhas para endereços e dados juntos. No inı́cio de uma operação de barramento, as linhas são usadas para o endereço. Mais tarde, são usadas para dados. 2.4. Clock do barramento Barramentos podem ser divididos em duas categorias distintas, dependendo de seu clock. Um barramento sı́ncrono tem uma linha comandada por um oscilador de cristal. O sinal nessa linha consiste em uma onda quadrada com uma frequência em geral entre 5 e 133 MHz. Todas as atividades do barramento tomam um número inteiro desses ciclos denom- inados ciclos de barramento. O outro tipo de barramento, o barramento assı́ncrono, não tem um clock mestre. Ciclos de barramento podem ter qualquer largura requerida e não são os mesmos entre todos os pares de dispositivos. • Barramentos sı́ncronos: sinais de controle podem ser ativados baixos ou altos. Cabe aos projetistas do barramento determinar o que é mais conveniente. Podemos entendê-la como equivalente em hardware à decisão que o programador toma de representar blocos de discos livres em um mapa de bits como 0s ou 1s. • Barramentos assı́ncronos: tudo funciona como múltiplos do clock do barramento. Ainda que CPU e memória possam concluir uma transferência em 3,1 ciclos, elas terão de prolongar o ciclo até 4,0 porque ciclos fracionários são proibidos. A razão é que é mais fácil construir um sistema sı́ncrono. A CPU apenas ativa seus sinais e a memória apenas reage. Não há realimentação (causa e efeito), mas, se os componentes foram escolhidos adequadamente, tudo funcionará sem dependência. 2.5. Arbitragem de Barramento De acordo com Tanenbaum & Austin (2013), chips de E/S têm de se tornar mestres de barramento para ler e escrever na memória e também para causar interrupções. De modo semelhante, coprocessadores também podem precisar se tornar mestres de barramento. Então, quando dois ou mais dispositivos querem se tornar mestre no mesmo barramento, é preciso algum mecanismo de arbitragem de barramento para evitar o caos. Mecanismos de arbitragem podem ser centralizados ou descentralizados. 2.5.1. Arbitragem centralizada Na arbitragem centralizada, um único árbitro de barramento determina quem entra em seguida. O barramento contém uma única linha de requisição OR cabeada que pode ser afirmada por um ou mais dispositivos a qualquer tempo. Não há nenhum modo de o árbitro dizer quantos dispositivos requisitaram o barramento. As únicas categorias que ele pode distinguir são algumas requisições e nenhuma requisição.Quando o dispositivo que está fisicamente mais próximo do árbitro vê a concessão, verifica para confirmar se fez uma requisição. Caso positivo, toma o barramento. Se não fez uma requisição, ele propaga a concessão até o próximo dispositivo na linha que se comporta da mesma maneira, e assim por diante, até algum deles aceitar a concessão e tomar o barramento. O arranjo anterior é denominado encadeamento em série (daisy chaining), que tem a propriedade de designar prioridades aos dispositivos dependendo da distância entre eles e o árbitro. O que estiver mais próximo vence. Em sistemas em que a memória está no barramento principal, a CPU deve com- petir pelo barramento com todos os dispositivos de E/S em praticamente todos os ciclos. Uma solução comum para essa situação é dar à CPU a prioridade mais baixa, de modo que ela obtenha o barramento apenas quando ninguém mais o quiser. Nesse caso, a ideia é que a CPU sempre pode esperar, mas os dispositivos de E/S muitas vezes precisam adquirir logo o barramento ou então perdem os dados que chegam. 2.5.2. Arbitragem descentralizada Quando um dispositivo quer usar o barramento, ele afirma sua linha de requisição. Todos os dispositivos monitoram todas as linhas de requisição, de modo que, ao final de cada ciclo de barramento, cada dispositivo sabe se foi o requisitante de prioridade mais alta e, portanto, se tem permissão de usar o barramento durante o próximo ciclo. Comparado à arbitragem centralizada, o método descentralizado requer mais linhas de barramento, mas evita o custo potencial do árbitro. Além disso, limita o número de dispositivos ao número de linhas de requisição. Outro tipo de arbitragem de barramento descentralizada usa apenas três linhas, não importando quantos dispositivos estiverem presentes. A primeira é uma linha OR cabeada para requisitar o barramento. A segunda é denominada busy e é ativada pelo mestre de barramento corrente. A terceira linha é usada para arbitrar o barramento. Assim, esse esquema é similar à arbitragem original por encadeamento em série, com a exceção de não ter o árbitro. Por isso é mais barato, mais rápido e não está sujeito a falhas do árbitro. 2.6. Operações de Barramento Além dos ciclos de barramentos supracitados, como ler e escrever, existem vários outros tipos. Por exemplo, em um sistema multiprocessador com duas ou mais CPUs no mesmo barramento, muitas vezes é necessário garantir que só uma CPU por vez use alguma es- trutura de dados crı́tica na memória. Um modo tı́pico de organizar isso é ter uma variável na memória que é 0 quando nenhuma CPU estiver usando a estrutura de dados e 1 quando esta estiver em uso. Porém, duas CPUs podem ler a variável em ciclos de barramento consecutivos, e para evitar isso sistemas multiprocessadores costumam ter um ciclo de barramento especial ler-modificar-escrever que permite a qualquer CPU ler uma palavra da memória, inspecionar e modificar essa palavra, e escrevê-la novamente na memória, tudo sem liberar o barramento. Outro tipo importante de ciclo de barramento é o usado para manipular interrupções. Quando ordena que um dispositivo de E/S faça algo, a CPU espera uma interrupção quando o trabalho for concluı́do. A sinalização da interrupção requer o barramento. 3. Conclusão Por fim, é possı́vel concluir que Cada chip de CPU tem um conjunto de pinos por meio dos quais deve ocorrer toda suas comunicação com os dispositivos exteriores. Estes pinos podem ser dividos em pinos de endereço, de dados e de controle, sendo este último cate- gorizado em controle de barramento, interrupção, arbitragem de barramento, sinalização de coprocessador, estado e diversos. Assim, cada um deles possui funcões primordiais dentro do chip, se comunicando com dispositivos por meio de barramentos. Já os barramentos, são caminhos elétricos comuns entre dispositivos e podem ser divididos de acordo com suas funções. Além disso, alguns dispositivos ligados a um barramento são ativos e podem iniciar transferências no barramento, enquanto que outros são passivos e devem esperar requisições, sendo estes, mestre e escravo, respectivamente. Sobre sua arbitragem, ela pode ocorrer de forma centralizada ou descentralizada. Dessa forma, foi possı́vel definir chips de CPU e barramentos e caracterizar seu funcionamento e componentes, além de especificar seus tipos e exceções. 4. Referência Bibliográfica Tanenbaum, A. S., Austin, T. (2013) Organização estruturada de computadores. 6a edição. São Paulo: PearsonPrentice Hall (p.147-158).
Compartilhar