Buscar

Resumo 2 Arquitetura de Computadores

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

RGA: 202011722019
Nome: Tainá Isabela Monteiro da Silva
I. 3.4 Chips de CPU e Barramentos.
Todas as CPUs modernas são contidas em um único chip, o que faz sua interação
com o resto do sistema ser bem definida. Uma CPU com 8 pinos de dados
efetuará quatro operações para ler uma palavra de 32 bits, enquanto uma CPU
com 32 pinos de dados pode executar a mesma tarefa em uma única operação.
Todas as CPUs têm pinos para energia elétrica (geralmente +1,2 volt a +1,5 volt),
para terra e para um sinal de clock (uma onda quadrada com uma frequência
bem definida), mas os outros pinos variam muito de um chip para outro.
Na maioria dos pinos de controle do barramento são saídas da CPU para o
barramento (e, portanto, entradas para a memória e chips de E/S) que informam
se a CPU quer ler ou escrever na memória ou fazer outra coisa qualquer.
Quando a 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 algum serviço ao
dispositivo de E/S, por exemplo, verificar se ocorreram erros de E/S.
Alguns deles fornecem ou aceitam informações de estado, outros são úteis para
depuração ou para reiniciar o computador, e outros mais estão presentes para
garantir a compatibilidade com chips de E/S mais antigos.
Os primeiros computadores pessoais tinham somente um barramento externo,
ou barramento do sistema, que consistia em 50 a 100 fios de cobre paralelos
gravados na placa-mãe, com conectores a intervalos regulares para ligação com a
memória e placas de E/S.
Quando todos os bits são do mesmo tipo, por exemplo, todos são bits de
endereço ou todos são bits de dados, então costuma ser usada a representação
pelo segmento de reta diagonal.
Embora os projetistas de CPUs tenham liberdade para usar qualquer tipo de
barramento que quiserem dentro do chip, para possibilitar a ligação de placas
projetadas por terceiros ao barramento de sistema é preciso haver regras bem
definidas sobre o modo de funcionamento do barramento, às quais todos os
dispositivos a ele ligados têm de obedecer.
Além disso, são necessárias especificações mecânicas e elétricas, de modo que
placas de terceiros caibam no suporte da placa e tenham conectores compatíveis
com os da placa-mãe, tanto em termos mecânicos quanto em termos de tensões,
temporizações etc.
Ainda assim, outros barramentos não possuem especificações mecânicas, pois
são projetados para serem usados dentro de um circuito integrado, por exemplo,
para unir componentes dentro de um sistema-em-um-chip (SoC –
System-on-a-Chip).
atualmente (com exemplos), são: Omnibus (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), barramento 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).
Infelizmente, a padronização nessa área parece muito improvável porque muito
dinheiro já foi investido em todos esses sistemas incompatíveis A propósito,
existe outra interconexão, PCI Express, que geralmente é chamada de
barramento, mas na verdade não é barramento algum.
Em nenhuma circunstância a memória pode ser mestre.Os sinais binários
emitidos por dispositivos de computador muitas vezes são fracos demais para
energizar um barramento, em especial se ele for relativamente longo ou tiver
muitos dispositivos ligados a ele.
Essas interfaces de barramento são com frequência dispositivos de três estados,
o que permite que flutuem (se desconectem) quando não são necessários ou
então se conectem de modo um tanto diferente, denominado coletor aberto, que
consegue um efeito semelhante.
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.
Nesse caso, seria necessário um chip decodificador entre a CPU e o barramento
para compatibilizar os dois lados, isto é, converter o sinal de 3 bits codificado em
sinais separados que podem comandar as linhas do barramento.
problema é que barramentos 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.
Um sistema com barramento de endereços de 64 linhas e 232 bytes de memória
custará mais que um com 32 linhas e os mesmos 232 bytes de memória.
Os 20 bits permitiam ao PC endereçar 1 MB de memória Quando lançou seu
próximo chip de CPU (o 80286), a Intel decidiu aumentar o espaço de endereços
para 16 MB, por isso precisou adicionar quatro linhas de barramento (sem mexer
nas 20 originais, por razões de compatibilidade), como ilustrado na Figura 3.37(b).
Há dois modos de aumentar a largura de banda de dados de um barramento:
reduzir o tempo deste (mais transferências por segundo) ou aumentar sua
largura de dados (mais bits por transferência).
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.
Observe que nenhuma das bordas ascendentes ou descendentes foi desenhada
na linha vertical porque nenhum sinal elétrico pode trocar seu valor em tempo
zero.
Uma vez que a memória leva 15 ns após o endereço estar estável (a meio caminho
no primeiro ciclo de clock), ela não pode entregar os dados requisitados durante
T2.
As especificações de temporização também requerem que os dados estejam
disponíveis nas linhas de dados no mínimo TDS (2 nanossegundos) antes da
borda descendente de T3 para lhes dar tempo para se acomodarem antes que a
CPU os leia.
A combinação de restrições impostas a Tad e TDS significa que, na pior das
hipóteses, a memória terá somente 25 – 4 – 2 = 19 ns desde o instante em que o
endereço aparece até o instante em que ela deve produzir os dados.
Esse tempo pode ser importante se mreq comandar a seleção de chip no chip de
memória, porque algumas memórias requerem um tempo de estabelecimento de
endereço antes da seleção do chip.
As limitações impostas a TM e TRL significam que ambos, mreq e rd, serão
ativados dentro de 3 ns a partir da borda descendente T1 do clock.
No pior caso, o chip de memória terá somente 10 + 10 – 3 – 2 = 15 ns após a
ativação de mreq e rd para levar seus dados até o barramento.
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.
Por exemplo, suponha que alguns anos após a construção do sistema da Figura
3.38 sejam lançadas novas memórias com tempos de acesso de 8 ns em vez de 15
ns, que eliminam o estado de espera e dão mais velocidade à máquina.
Exprimindo esses fatos em termos um pouco diferentes, se um barramento
síncrono tiver uma coleção heterogênea de dispositivos, alguns rápidos, alguns
lentos, ele tem de ser ajustado para o mais lento, e os mais rápidos não podem
usar todo o seu potencial.
Em vez de vincular tudo ao clock, quando o mestre de barramento tiver ativado o
endereço, mreq, rd e tudo o mais que precisa, em seguida ele ativa um sinal
especial que denominaremos msyn (Master SYNchronization).
Assim que o mestre perceber ssyn ativado, sabe que os dados estão disponíveis,
portanto, ele os serializa e então desativa as linhas de endereço, junto com mreq,
rd e msyn.
Quando o escravo percebe a negação de msyn, sabe que o ciclo foi concluído,
portanto, nega ssyn, e voltamos à situação original, com todos os sinais negados,
esperando pelo próximo mestre.
Então, surge a pergunta: “O que acontece se dois ou mais dispositivos quiserem
se tornar mestres de barramento ao mesmo tempo?” A resposta é que é preciso
algum mecanismo de arbitragem de barramento para evitar o caos.
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 tomaro barramento.
A propósito, tecnicamente não é necessário ligar a linha de concessão de
barramento de nível 2 em série passando pelos dispositivos 1 e 2, já que eles não
podem fazer requisições nessa linha.
Contudo, por conveniência de execução, é mais fácil ligar todas as linhas de
concessão passando por todos os dispositivos, em vez de fazer ligações especiais
que dependem da prioridade de dispositivo.
Em muitos sistemas modernos de computadores, esse problema é evitado ao se
colocar a memória em um barramento separado dos dispositivos de E/S de
modo que estes não tenham de competir pelo acesso ao barramento.
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.
O início dessa cadeia é ativado ligando-o a uma fonte de alimentação Quando
nenhum dispositivo quiser o barramento, a linha de arbitragem ativada é
propagada por todos os outros.
Quando o processo terminar, somente um dispositivo terá in ativado e out
negado, e é ele que se torna o mestre de barramento, ativa busy e out e inicia sua
transferência.
.
II. 3.5 Exemplos de Chip de CPUs.
O Core i7 é um descendente direto da CPU 8088 usada no IBM PC original.
O primeiro Core i7 foi lançado em novembro de 2008 como uma CPU de 731
milhões de transistores de quatro processadores que funcionava em 3,2 GHz
com uma largura de linha de 45 nanômetros.
Para fins de comparação, os fios de cabelo humano ficam na faixa de 20 mil a 100
mil nanômetros de diâmetro, sendo o cabelo loiro mais fino do que o preto.
Uma arquitetura digna de nota foi a série K da AMD, projetada para quebrar a
posição aparentemente invulnerável da Intel no segmento de CPU para desktop.
O codinome dos processadores da série K foi “Kryptonite”, uma referência à
única substância capaz de ferir o Super-homem, e um golpe inteligente na
dominante Intel.
O novo Core i7 baseado na Sandy Bridge evoluiu para ter 1,16 bilhão de
transistores e trabalha em velocidades de até 3,5 GHz, com larguras de linha de
32 nanômetros.
Embora o Core i7 esteja longe do 8088 com 29 mil transistores, ele é totalmente
compatível com o 8088 e pode rodar sem modificação os programas binários do
8088 (sem falar também nos programas para todos os processadores
intermediários).
Tem todas as mesmas características ISA de nível de usuário que os chips 80386,
80486, Pentium, Pentium II, Pentium Pro, Pentium III e Pentium 4, inclusive os
mesmos registradores, as mesmas instruções e uma execução completa no chip
do padrão IEEE 754 de ponto flutuante.
Se os programadores escreverem um programa paralelo, usando threads e locks,
é possível obter ganhos significativos na velocidade do programa, explorando
o
O hyperthreading (normalmente denominado “multithreading simultâneo” pelos
arquitetos de computador) permite que latências muito curtas, como faltas de
cache, sejam toleradas com trocas de thread de hardware.
O threading baseado no software só pode tolerar latências muito longas, como
faltas de página, devido às centenas de ciclos necessárias para executar as trocas
de threads baseadas em software.
Todos os núcleos compartilham uma só cache unificada de nível 3 (L3), cujo
tamanho varia de 4 a 15 MB, dependendo do modelo de processador.
Ter três níveis de cache melhora significativamente o desempenho do
processador, mas com um grande custo na área de silício, pois as CPUs Core i7
podem ter até 17 MB de cache total em um único substrato de silício.
Visto que todos os chips Core i7 têm múltiplos processadores com caches de
dados privadas, surge um problema quando uma CPU modifica uma palavra na
cache privada que esteja contida na de outro processador.
Se o outro processador tentar ler aquela palavra da memória, obterá um valor
ultrapassado, já que palavras de cache modificadas não são escritas de imediato
de volta na memória.
Para manter a consistência da memória, cada CPU em um sistema
microprocessador escuta (snoops) o barramento de memória em busca de
referências de palavras que tenha em cache.
Ele contém 1.155 pinos na parte inferior, dos quais 286 são para alimentação e
360 são aterramento, para reduzir o ruído.
Além disso, 20 outros pinos estão faltando no perímetro em um padrão
assimétrico, para impedir que o chip seja inserido incorretamente em sua base O
chip é equipado com uma placa de montagem para um dissipador distribuir o
calor e um ventilador para resfriá-lo.
Para ter uma ideia do tamanho do problema da potência, ligue uma lâmpada
incandescente de 150 watts, deixe-a aquecer e depois coloque suas mãos ao seu
redor (mas não a toque).
Para resolver essa questão, a Intel oferece um meio de pôr a CPU para dormir
quando ela estiver ociosa e de fazê-la cair em sono profundo quando é provável
que fique adormecida durante algum tempo.
Os 1.155 pinos do Core i7 são usados para 447 sinais, 286 conexões de energia
elétrica (em diversas voltagens diferentes), 360 terras e 62 reservados para uso
futuro.
O Core i7 admite dois canais DRAM DDR3 independentes, rodando com um clock
de barramento de 666 MHz que transfere nas duas bordas, para permitir 1.333
milhões de transações por segundo.
A interface DDR3 tem 64 bits de largura, e assim, as duas interfaces DDR3
trabalham em sequência para dar aos programas com muita utilização de
memória até 20 gigabytes de dados a cada segundo.
O enlace do Core i7 é uma interface x16, significando que pode utilizar 16 vias
simultaneamente para uma largura de banda agregada de 16 GB/s.
Apesar de ser um canal serial, um rico conjunto de comandos trafega pelos
enlaces PCI Express, incluindo comandos de leituras de dispositivo, escrita,
interrupção e configuração.
A interface DMI é semelhante à interface PCI Express, embora trabalhe com
cerca de metade da velocidade, pois quatro vias podem fornecer apenas taxas de
transferência de dados de até 2,5 GB por segundo.
Core i7 pode ser configurado para usar interrupções do mesmo modo que o 8088
(para fins de compatibilidade) ou também pode usar um novo sistema de
interrupção que utiliza um dispositivo denominado APIC (Advanced
Programmable Interrupt Controller – controlador de interrupção programável
avançado).
Se os sensores internos detectarem que o processador está para superaquecer,
ele iniciará o estrangulamento térmico, uma técnica que logo reduz a geração de
calor, usando o processador apenas a cada N-ésimo ciclo de clock.
sinal Clock fornece o clock do sistema ao processador, que internamente é usado
para gerar uma variedade de clocks com base em um múltiplo ou fração do clock
do sistema.
Finalmente, o grupo Diversos é uma miscelânea de outros sinais que possuem
diversas finalidades especiais CPUs modernas como o Core i7 colocam grandes
demandas sobre as memórias DRAM.
Os processadores individuais podem criar requisições de acesso muito mais
depressa do que uma DRAM lenta consegue produzir valores, e esse problema é
aumentado quando vários processadores estão fazendo requisições simultâneas.
Por esse motivo, o barramento de memória DDR3 do Core i7 pode ser operado de
uma forma paralela, com até quatro transações de memória simultâneas
ocorrendo ao mesmo tempo.
A fase READ ou WRITE da memória, na qual vários acessos podem ser feitos a
palavras individuais dentro da linha DRAM aberta ou a várias palavras sequenciais
dentro da linha de DRAM atual, usando um modo de rajada.
Assim, ele antecipa o retorno dos dados no ciclo correto e saberá evitar o início
de uma operação de pré-carga antes que se passem dois ciclos de sua última
operação de leitura.
Mesmo com todo esse conhecimento, a criação de uma interface de memória
DDR3 com paralelismo completo e com alto desempenho é uma tarefa longe de
ser trivial, exigindo muitos temporizadores internos e detectores de conflito
para realizar o tratamento eficaz da requisição de DRAM.
Com um nome apropriado, um sistema-em-um-chip incorpora uma grande
variedade de dispositivos, de modo que, combinadocom periféricos físicos (tela
sensível ao toque, memória flash etc.), ele executa um dispositivo de computação
completo.
Há também no sistema OMAP4430 uma gama de interfaces periféricas, incluindo
uma tela sensível ao toque e controladores de teclado, DRAM e interfaces flash,
USB
e
Projetos futuros terão mais de tudo – mais núcleos ARM, mais GPUs e mais
periféricos diversos O sistema OMAP4430 foi lançado no início de 2011 com dois
núcleos ARM A9 rodando a 1 GHz usando uma implementação de silício de 45
nanômetros.
Um aspecto chave do projeto do OMAP4430 é que ele realiza quantidades
significativas de cálculo com muito pouca potência, pois é visado para aplicações
móveis, alimentadas por uma bateria.
O processador gráfico, ISP, e o IVA3 são todos aceleradores programáveis que
fornecem capacidades de cálculo eficientes com significativamente menos
energia em comparação com as mesmas tarefas sendo executadas apenas nas
CPUs ARM A9.
Para reduzir ainda mais as demandas de potência do OMAP4430, o projeto
incorpora uma série de facilidades de gerenciamento de energia, incluindo a
escalada dinâmica de tensão e o chaveamento de energia.
Em muitos ciclos, menos de duas instruções serão executadas devido aos
milhares de “hazards” (acasos) que podem adiar as instruções, levando a uma
vazão de execução mais baixa.
Para resolver muitos desses limitadores de vazão, o ARM A9 incorpora um
poderoso previsor de desvio, escalonamento de instruções fora de ordem e um
sistema de memória altamente otimizado.
Assim como o Core i7, ele também usa uma cache nível 2 (L2) no chip, mas,
diferente do Core i7, ela é uma memória de 1 MB relativamente pequena em
tamanho, sendo compartilhada por ambos os núcleos ARM A9.
Além disso, o controlador de memória incorpora uma série de otimizações de
acesso à memória, como a pré-busca de memória ladrilhada e o suporte para
rotação na memória.
Quando há uma ausência na cache de nível 1, a CPU envia o identificador da linha
que está procurando (endereço de tag) para a cache de nível 2.
Se a linha de cache não estiver na cache de nível 2, ela deve ser buscada da
memória principal por meio da interface de memória LPDDR2.
Por exemplo, uma ausência na cache durante a busca antecipada de uma
instrução não inibe a execução de uma ou mais instruções já buscadas, cada uma
das quais pode se referir a dados que não estão em quaisquer das caches.
Uma operação de memória pode utilizar uma leitura ou escrita no modo rajada,
permitindo que vários endereços contíguos dentro da mesma linha da DRAM
sejam lidos ou escritos.
Uma matriz em grade de bola é semelhante a uma matriz de grade de terra,
exceto que as conexões no chip são pequenas bolas de metal, em vez de
plataformas quadradas usadas na LGA.
O pacote do OMAP4430 consiste em uma matriz retangular de 28 × 26 bolas, com
os dois anéis de bolas mais internos faltando, e mais duas meias linhas e colunas
assimétricas de bolas faltando, para impedir que o chip seja inserido
incorretamente no soquete BGA.
Por exemplo, os dois núcleos ARM A9 no OMAP4430 têm uma velocidade máxima
de execução de quatro instruções por ciclo de clock, dando-lhe quase a mesma
taxa de execução dos processadores superescalares de largura 4 do Core i7.
Entretanto, o Core i7 alcança execução de programa mais rápida, pois tem até
seis processadores rodando com uma velocidade de clock 3,5 vezes mais rápida
(3,5 GHz) que o OMAP4430.
O OMAP4430 pode parecer uma tartaruga correndo ao lado da lebre do Core i7,
mas a tartaruga usa muito menos potência, e pode terminar primeiro, ainda mais
se a bateria da lebre não for muito grande.
Tanto o Core i7 quanto a OMAP4430 são exemplos de CPUs de alto desempenho
projetadas para construir dispositivos de computação altamente eficazes, com o
Core i7 voltado para aplicações de desktop enquanto o OMAP4430 é voltado para
aplicações móveis.
Hoje, é certo que televisores, telefones celulares, agendas eletrônicas, fornos de
micro-ondas, filmadoras, aparelhos de DVD, impressoras a laser, alarmes
antifurto, aparelhos de surdez, jogos eletrônicos e outros incontáveis dispositivos
são todos controlados por computador.
Os computadores que estão dentro desses aparelhos costumam ser otimizados
para baixo preço e não para alto desempenho, o que provoca compromissos
diferentes dos feitos para CPUs de tecnologia avançada que estudamos até aqui.
Como mencionamos no Capítulo 1, o Atmel ATmega168 provavelmente é o
microcontrolador mais popular em uso hoje, em grande parte por causa de seu
custo muito baixo (cerca de 1 dólar).
Agora, vamos examinar esse chip Como podemos ver na figura, o ATmega168
normalmente vem em um pacote padrão de 28 pinos, embora haja outros pacotes
disponíveis.
Toda a memória, SRAM e flash, está contida dentro do processador, evitando a
necessidade de quaisquer pinos de endereço e dados Em vez de pinos de
endereço e dados, o ATmega168 tem 27 portas de E/S digitais, 8 linhas na porta
B.
O sensor de temperatura seria conectado a uma entrada de porta C, e o software
poderia ler a tensão do sensor e depois convertê-la em uma temperatura usando
uma função de tradução específica do sensor.
Os pinos restantes no ATmega168 são a entrada de tensão (vcc), dois pinos de
terra (gnd) e dois pinos para configurar os circuitos de E/S analógica (aref, avcc).
O processador tem 8 bits, o que significa que opera sobre valores de dados de 8
bits, e internamente seus registradores possuem um tamanho de 8 bits.
O conjunto de instruções incorpora instruções especiais que permitem ao
processador de 8 bits operar de modo eficiente sobre tipos de dados maiores.
Por exemplo, para realizar adições de 16 bits ou maiores, o processador fornece a
instrução “add- -with-carry” (somar com vai-um), que soma dois valores e mais o
“vai-um” da adição anterior.
Os outros componentes internos englobam o clock em tempo real e uma
variedade de lógica de interface, incluindo suporte para enlaces seriais, enlaces
PWM (pulse-width-modulated – modulado por largura de pulso), enlaces I2C
(barramento Inter-IC) e controladores analógico e digital.
III. 3.6 Exemplos de Barramentos.
No IBM PC original, a maioria das aplicações era baseada em texto.
Contudo, com o passar do tempo, quando muitas aplicações, em especial jogos
em multimídia, começaram a usar computadores para exibir vídeo em tela cheia
e com movimento completo, a situação mudou radicalmente.
Na verdade, é pior do que isso, pois para apresentar um vídeo a partir de um
disco rígido, CD-ROM ou DVD, os dados devem passar do drive de disco para o
barramento e ir até a memória.
Portanto, precisamos de uma largura de banda de barramento de 135 MB por
segundo só para o vídeo, sem contar a largura de banda de que a CPU e outros
dispositivos precisam.
predecessor do barramento PCI, o ISA, funcionava à taxa máxima de 8,33 MHz e
podia transferir 2 bytes por ciclo para uma largura de banda máxima de 16,7
MB/s.
Claro que nenhuma dessas taxas sequer chegava perto do que era necessário
para apresentação de vídeo completo em tela.
Isso exige 1.920 × 1.080 quadros a 30 quadros/segundo para uma taxa de dados
de 155 MB/s (ou 310 MB/s se os dados tiverem que atravessar o barramento duas
vezes).
Para incentivar sua utilização, a Intel patenteou o PCI e então passou todas as
patentes para domínio público, de modo que qualquer empresa podia construir
periféricos para esse barramento sem ter de pagar royalties.
barramento PCI original transferia 32 bits por ciclo e funcionava em 33 MHz
(tempo de ciclo de 30 ns) para uma largura de banda total de 133 MB/s.
Dois componentes fundamentais dessa arquitetura são os dois chips de pontes,
fabricados pela Intel – daí seu interesse em todo esse projeto.
Quase todos os sistemas PC usando essa arquitetura vêm com um ou mais
encaixes PCI livres para acrescentar novos periféricos de alta velocidade e um ou
mais encaixes ISA para acrescentar periféricos de baixa velocidade.
Computadores mais antigos usam em geral 5 volts e os mais novos tendem a usar
3,3 volts, portanto, o barramento PCI suporta ambos.
Osconectores são os mesmos, exceto por dois pedacinhos de plástico que estão
lá para impedir que as pessoas insiram uma placa de 5 volts em um barramento
PCI de 3,3 volts ou vice-versa.
Contudo, nessa mesma época a resolução de monitores tinha aumentado, em
alguns casos para 1.600 × 1.200, e a demanda por vídeo de tela inteira e
movimento total também cresceu, em especial no contexto de jogos de alto grau
de interação, portanto, a Intel acrescentou mais um outro barramento só para
comandar
a
Hoje, até mesmo o barramento AGP 3.0 de alto desempenho foi substituído por
outros ainda mais rápidos, em particular, o PCI Express, que pode bombear
incríveis 16 GB/s de dados por enlaces de barramento serial de alta velocidade.
Os dois canais de memória DDR3, rodando a 1.333 transações/s, conectam-se à
memória principal e oferecem uma largura de banda agregada de 10 GB/s por
canal.
Também integrado à CPU está um canal PCI Express de 16 vias, que idealmente
pode ser configurado em um único barramento PCI Express de 16 bits ou
barramentos PCI Express independentes de 8 bits.
CPU se conecta ao chip da ponte principal, o P67, por meio da interface de mídia
direta (DMI) serial de 20 Gb/s (2,5 GB/s).
Desse modo, nas placas PCI são necessários somente 64 pinos para endereço
mais sinais de dados, ainda que o PCI suporte endereços de 64 bits e dados de 64
bits.
Para requisitar o barramento, um dispositivo PCI (incluindo a CPU) ativa req# e
espera até ver sua linha gnt# ativada pelo árbitro.
Se um dispositivo quiser executar uma segunda transação e nenhum outro
dispositivo estiver requisitando o barramento, ele pode entrar de novo, apesar de
ser preciso inserir um ciclo ocioso entre transações.
Contudo, em circunstâncias especiais, na ausência de disputa pelo barramento,
um dispositivo pode fazer uma transação atrás da outra sem ter de inserir um
ciclo ocioso.
Se um mestre de barramento estiver realizando uma transferência muito longa e
algum outro dispositivo requisitar o barramento, o árbitro pode negar a linha
gnt#.
Esse esquema permite transferências muito longas (que são eficientes) quando
há só um mestre de barramento candidato, mas ainda assim dá resposta rápida a
dispositivos concorrentes.
O restante dos 120 ou 184 pinos são usados para energia, aterramento e diversas
funções relacionadas, e não aparecem nessa lista.
Ao contrário do ISA, uma transação de barramento PCI começa na borda
descendente do clk, que está no meio do ciclo, em vez de estar no início.
No ciclo 2, contém um mapa de bits de 4 bits que informa quais bytes da palavra
de 32 bits são válidos.
sinal idsel está relacionado ao fato de que todo dispositivo PCI deve ter um
espaço de configuração de 256 bytes que outros dispositivos possam ler
(ativando idsel).
Se devsel# não for ativado em certo limite de tempo, o mestre esgota sua
temporização e supõe que o dispositivo endereçado está ausente ou avariado.
O último sinal obrigatório é rst#, usado para reiniciar o sistema, seja porque o
usuário apertou a tecla RESET seja porque algum dispositivo do sistema notou
um erro fatal.
Agora, chegamos aos sinais opcionais, cuja maioria está relacionada à expansão
de 32 bits para 64 bits.
Os sinais req64# e ack64# permitem que o mestre peça permissão para
conduzir uma transação de 64 bits e permite que o escravo aceite,
respectivamente.
Os três sinais seguintes não estão relacionados aos 32 bits contra 64 bits, mas a
sistemas multiprocessadores, algo que as placas PCI não são obrigadas a
suportar.
Para ter uma ideia melhor dele, considere o diagrama temporal da Figura 3.55,
onde podemos ver uma transação de leitura seguida por um ciclo ocioso, seguida
por uma transação de escrita pelo mesmo mestre de barramento.
Quando a borda descendente do clock acontece durante T1, o mestre põe o
endereço de memória em ad e o comando de barramento em c/be#.
O mestre também muda c/be# para indicar quais bytes na palavra endereçada
ele quer habilitar, isto é, quais quer que sejam lidos.
Se o escravo não puder responder com tanta rapidez, ainda assim ele ativaria
devsel# para anunciar sua presença, mas manteria trdy# negado até que
pudesse obter os dados que lá estão.
Embora o funcionamento do barramento PCI seja adequado para a maioria das
aplicações, a necessidade de maior largura de banda de E/S está causando uma
confusão na antes limpa arquitetura interna do PC.
Elevar a frequência de clock do barramento não é uma boa solução porque então
os problemas de atraso diferencial no barramento, interferência na fiação e
efeitos de capacitância só ficariam piores.
Toda vez que um dispositivo de E/S fica muito rápido para o barramento PCI
(como as placas gráficas, disco rígido, redes etc.), a Intel acrescenta uma porta
especial para o chip ponte para permitir que o dispositivo contorne o
barramento PCI.
Placas PCI padrão costumam ter 17,5 cm por 10,7 cm e placas inferiores possuem
12,0 cm por 3,6 cm.
Além disso, alguns deles gostariam de repartir o espaço interno do PC, colocando
a CPU e a memória dentro de uma pequena caixa selada e o disco rígido dentro
do monitor.
Ela tem pouco a ver com o barramento PCI e, na verdade nem é um barramento,
mas o pessoal do marketing não quer largar mão do famoso nome PCI.
O coração da solução PCI Express (em geral, abreviado como PCIe) é se livrar do
barramento paralelo com seus muitos mestres e escravos e passar para um
projeto baseado em conexões seriais ponto a ponto de alta velocidade.
Essa solução representa uma ruptura radical com a tradição do barramento
ISA/EISA/PCI e toma emprestadas muitas ideias do mundo das redes locais, em
especial a Ethernet comutada.
O que o PCI Express faz é fornecer um comutador de uso geral para conectar
chips usando ligações seriais Como mostra a figura, a CPU, a memória e a cache
estão conectadas ao chip ponte no modo tradicional.
A novidade aqui é um comutador conectado à ponte (talvez parte do próprio chip
ponte ou integrado diretamente ao processador).
Cada canal é composto de dois fios, um para o sinal e outro para o terra, para dar
imunidade contra ruído alto durante a transmissão de alta velocidade.
Já vimos dois deles: um comutador centralizado contra um barramento
multidrop e a utilização de conexões seriais ponto a ponto estreitas contra um
barramento paralelo largo.
A quarta é que o código de detecção de erro é usado somente nos pacotes, o que
dá um grau de confiabilidade mais alto do que o barramento PCI.
A quinta é que a conexão entre um chip e o comutador é mais longa do que era,
até 50 cm, para permitir a repartição do sistema.
Por fim, uma vez que conectores seriais são muito menores do que os antigos
conectores PCI, podem-se fabricar dispositivos e computadores muito menores.
Ela obedece a certas convenções referentes à localização e ao conteúdo do
cabeçalho, ao endereço do destinatário, à data, aos cumprimentos, ao corpo, à
assinatura e assim por diante.
Além disso, há outro conjunto de convenções referentes ao envelope, como
tamanho, local e formato do endereço do remetente, local e formato do
endereço do destinatário, local do selo e assim por diante.
Produtos de primeira geração devem suportar uma taxa de dados de no mínimo
2,5 Gbps, mas espera-se que logo a velocidade passe para 10 Gbps em cada
direção.
Entre os 1.024 símbolos de 10 bits possíveis, foram escolhidos como legais os que
têm suficientes transições de clock para manter remetente e destinatário
sincronizados nas fronteiras de bits, mesmo sem um clock mestre.
Uma consequência da codificação 8b/10b é que um enlace que tenha uma
capacidade bruta de 2,5 Gbps só pode transmitir 2 Gbps (líquidos) de dados de
usuário.
Ela pega o cabeçalho e a carga útil passados para ela pela camada de transação e
acrescenta a eles um número de sequência e um código de correção de erro
denominado CRC (Cyclic Redundancy Check – verificação por redundância
cíclica).
Quando um pacote é recebido, o destinatário efetua alguns cálculos no
cabeçalho e nos dados e compara o resultado com o CRC anexado ao pacote.
Desse modo, a integridade dos dados melhoramuito em relação ao sistema de
barramento PCI, que não tem nenhuma prescrição para verificação e
retransmissão de dados enviados pelo barramento.
Para evitar que um transmissor rápido soterre um receptor lento com pacotes
que ele não pode manipular, é usado um mecanismo de controle de fluxo que
funciona da seguinte maneira: o receptor concede ao transmissor certo número
de créditos que correspondem em essência à quantidade de espaço de buffer de
que ele dispõe para armazenar pacotes que chegam.
Esse esquema, que é muito usado em todas as redes, evita a perda de dados em
consequência da incompatibilidade entre as velocidades do transmissor e do
receptor.
Ler uma palavra da memória requer duas transações: uma iniciada pela CPU ou
canal DMA que está requisitando alguns dados e outra iniciada pelo alvo que está
fornecendo os dados.
A camada de transação pode rotular pacotes de acordo com sua classe de
tráfego, o que pode incluir atributos como “alta prioridade”, “baixa prioridade”,
“não escute”, “pode ser entregue fora da ordem” e outros mais.
Quando é dado um comando à camada de software, esta o passa para a camada
de transação, que o formula em termos de um cabeçalho e uma carga útil.
Então, essas duas partes são passadas para a camada de enlace, que acrescenta
um número de sequência à sua parte anterior e um CRC à posterior.
Em seguida, esse pacote ampliado é passado à camada física, que acrescenta
informações de enquadramento de dados a cada extremidade para formar o
pacote físico, que é, por fim, transmitido.
Na extremidade receptora ocorre o processo inverso – cabeçalho de enlace e as
informações que acompanham o bloco de dados (trailer) são removidos e o
resultado é passado para a camada de transação.
conceito do acréscimo de informações adicionais aos dados à medida que ele
desce pela pilha de protocolos já é usado há décadas no mundo das redes com
grande sucesso.
A grande diferença entre uma rede e o PCI Express é que, no mundo das redes, o
código nas várias camadas quase sempre é um software que faz parte do sistema
operacional.
Depois veio o PCIe 3.0 em 2011, que mudou a codificação de 8b/10b para
128b/130b e pode rodar a 8 bilhões de transações por segundo, o dobro do PCIe
2.0.
O barramento PCI e o PCI Express são bons para anexar periféricos de alta
velocidade a um computador, mas são muito caros para dispositivos de E/S de
baixa velocidade, como teclados e mouses.
Muitas vezes, o usuário é responsável pelo ajuste de comutadores e pontes na
placa e por assegurar que tais ajustes não entrem em conflito com as outras
placas.
Para tratar desse problema, em 1993, representantes de sete empresas (Compaq,
DEC, IBM, Intel, Microsoft, NEC e Northern Telecom) se reuniram para buscar a
melhor maneira de anexar dispositivos de E/S a um computador.
O padrão resultante, lançado oficialmente em 1998, é denominado USB (Universal
Serial Bus – barramento serial universal), e é amplamente executado em
computadores pessoais.
A versão 2.0 tem suporte para dispositivos com até 480 Mbps, que é suficiente
para trabalhar com drives de disco externos, webcams de alta definição e
interfaces de rede.
só o tempo dirá quais aplicações novas e ávidas por largura de banda
aproveitarão essa interface com largura de banda ultra-alta.
Esse hub tem soquetes para cabos que podem ser conectados a dispositivos de
E/S ou a hubs de expansão, para fornecer mais soquetes, de modo que a
topologia de um sistema USB é uma árvore cuja raiz está no hub, dentro do
computador.
Há diferentes conectores na extremidade dos cabos do hub-raiz e na
extremidade do dispositivo para evitar que, por acidente, os usuários liguem dois
soquetes entre si.
O sistema de sinalização transmite um 0 como uma transição de tensão e um 1
como ausência de uma transição da tensão, portanto, longas carreiras de 0s
geram um fluxo regular de pulsos.
Quando um novo dispositivo de E/S é ligado, o hub-raiz detecta esse evento e
interrompe o sistema operacional, que então pesquisa para descobrir que
dispositivo é e de quanta largura de banda USB ele precisa.
Se o sistema operacional decidir que há suficiente largura de banda para o
dispositivo, atribui um endereço exclusivo para ele (1–127) e descarrega esse
endereço e outras informações em registradores de configuração dentro do
dispositivo.
Desse modo, novos dispositivos podem ser acrescentados com o computador em
funcionamento, sem exigir nenhuma configuração da parte do usuário e sem ter
de instalar novas placas ISA ou PCI.
Cada dispositivo pode subdividir sua própria ramificação em até 16 ramos
secundários para diferentes tipos de dados (por exemplo, áudio e vídeo).
Exatamente a cada 1,00 ± 0,05 ms, o hub-raiz transmite um novo quadro para
manter todos os dispositivos sincronizados em relação ao tempo.
Na Figura 3.58, não há nenhum serviço a ser realizado nos quadros 0 e 2,
portanto, basta um pacote SOF (Start of Frame – início do quadro).
O quadro 1 é uma sondagem (poll), por exemplo, uma requisição para que um
scanner devolva os bits que encontrou na imagem que está digitalizando.
Quadros isócronos são para dispositivos de tempo real, como microfones,
alto-falantes e telefones, que precisam enviar ou aceitar dados a intervalos de
tempo exatos.
Campos no pacote IN informam qual caminho está sendo sondado de modo que
o dispositivo saiba quais dados retornar (se tiver múltiplos fluxos).
Além do pacote de permissão há três outros tipos de pacote: DATA (usado para
transmitir até 64 bytes de informação em qualquer direção), pacotes de
apresentação e pacotes especiais.
São definidos três tipos de pacotes de apresentação: ACK (o pacote de dados
anterior foi recebido corretamente), NAK (foi detectado um erro CRC) e STALL
(favor esperar – agora estou ocupado).
A estrutura do quadro 3 é semelhante à do quadro 1, exceto que agora o fluxo de
dados é do computador para o dispositivo.
Após a conclusão do padrão USB em 1998, o pessoal que o projetou não tinha
nada para fazer, então, começou a trabalhar em uma nova versão de alta
velocidade do USB, denominada USB 2.0.
Esse padrão é semelhante ao antigo USB 1.1 e compatível com ele, exceto pela
adição de uma terceira velocidade, 480 Mbps, às duas existentes.
A primeira, UHCI (Universal Host Controller Interface – interface universal de
controlador de hospedeiro), foi projetada pela Intel e passava grande parte da
carga para os projetistas de software (leia-se: Microsoft).
A segunda, OHCI (Open Host Controller Interface – interface aberta de
controlador de hospedeiro), foi projetada pela Microsoft e passava grande parte
da carga para os projetistas de hardware (leia-se: Intel).
Visto que praticamente todo novo PC baseado no Intel agora vem com USB 2.0
ou USB 3.0 (ver a seguir), é provável que o 1394 desapareça no devido tempo.
O USB 3.0 admite incríveis 5 Gbps de largura de banda pelo cabo, embora a
modulação do enlace seja adaptativa, e provavelmente essa velocidade só poderá
ser alcançada com cabeamento de qualidade profissional.

Continue navegando