Por que as CPUs normalmente se conectam a apenas um barramento?


24

Encontrei uma arquitetura de placa-mãe aqui:

insira a descrição da imagem aqui

Esse parece ser o layout típico das placas-mãe. EDIT: Bem, aparentemente, não é mais tão típico.

Por que a CPU se conecta a apenas 1 barramento? Aquele ônibus da frente parece um grande gargalo. Não seria melhor colocar 2 ou 3 barramentos diretamente na CPU?

Eu imagino um barramento para a RAM, um para placa de vídeo e outro para algum tipo de ponte para o disco rígido, portas USB e tudo mais. A razão pela qual eu dividi dessa maneira é porque as taxas de dados do disco rígido são lentas em comparação com a memória.

Existe algo muito difícil de fazer dessa maneira? Não vejo como o custo poderia entrar, porque os diagramas existentes já têm nada menos que sete ônibus. De fato, usando ônibus mais diretos, poderíamos reduzir o número total de ônibus e talvez até uma das pontes.

Então, algo de errado com isso? Existe uma grande desvantagem em algum lugar? A única coisa em que consigo pensar é talvez mais complexidade na CPU e no kernel, o que me faz pensar que essa arquitetura de barramento de gargalo é como era feita nos velhos tempos, quando as coisas eram menos sofisticadas, e o design permanece o mesmo para a padronização.

EDIT: esqueci de mencionar o Watchdog Monitor . Eu sei que já vi isso em alguns diagramas. Presumivelmente, um barramento de gargalo tornaria mais fácil para o cão de guarda monitorar tudo. Isso poderia ter algo a ver com isso?


9
Essa é uma abordagem muito antiga. Atualmente, a CPU possui o complexo raiz e o controlador de memória integrados - portanto, ele se conecta diretamente aos dispositivos PCIe, RAM e o que é efetivamente a ponte sul. Por exemplo, isso
Tom Carpenter

@ TomCarpenter Sim, isso está começando a parecer mais. O diagrama que eu publiquei é o que eu vi "em todos os lugares", incluindo a escola, então achei que era mais típico.
DrZ214

7
Esse diagrama acima ainda é relevante. Hoje em dia, isso não é um diagrama de uma placa-mãe, mas a própria CPU. Substitua "CPU" por "core" e "chipset" por "CPU".
26616 slebetman

Respostas:


43

A abordagem que você mostra é uma topologia bastante antiga para placas-mãe - ela é anterior ao PCIe, que realmente o coloca de volta em algum lugar dos anos 2000. O motivo é principalmente devido às dificuldades de integração.

Basicamente, há 15 anos, a tecnologia para integrar tudo em um único molde era praticamente inexistente do ponto de vista comercial, e isso era incrivelmente difícil. Integrar tudo resultaria em tamanhos de matriz de silício muito grandes, o que, por sua vez, leva a um rendimento muito menor. O rendimento é essencialmente quantas matrizes você perde em uma bolacha devido a defeitos - quanto maior o dado, maior a probabilidade de um defeito.

Para combater isso, basta dividir o design em vários chips - no caso de placas-mãe, isso acabou sendo CPU, North Bridge e South Bridge. A CPU é limitada apenas ao processador com uma interconexão de alta velocidade (conhecida como barramento frontal, tanto quanto me lembro). Você tem a Ponte Norte, que integra o controlador de memória, a conexão gráfica (por exemplo, AGP, uma tecnologia antiga em termos de computação) e outro link mais lento para a Ponte Sul. A ponte sul foi usada para lidar com placas de expansão, discos rígidos, unidades de CD, áudio etc.


Nos últimos 20 anos, a capacidade de fabricar semicondutores em nós de processo cada vez menores, com confiabilidade cada vez maior, significa integrar tudo em um único chip. Transistores menores significam maior densidade, para que você possa se encaixar mais, e processos aprimorados na fabricação significam maior rendimento. Na verdade, além de ser mais econômico, tornou-se vital manter os aumentos de velocidade nos computadores modernos.

Como você apontou corretamente, ter uma interconexão com uma ponte norte se torna um gargalo. Se você pode integrar tudo à CPU, incluindo o PCIe Root Complex e o controlador de memória do sistema, de repente você tem um link de velocidade extremamente alta entre os principais dispositivos gráficos e de computação - no PCB, talvez você esteja falando de velocidades da ordem de Gbps, o dado que você pode atingir velocidades da ordem dos Tbps!

Essa nova topologia é refletida neste diagrama:

Nova topologia

Fonte da imagem

Nesse caso, como você pode ver, os controladores gráficos e de memória são integrados ao chip da CPU. Enquanto você ainda tem um link para o que é efetivamente um único chipset feito de alguns bits da ponte norte e da ponte sul (o chipset no diagrama), isso hoje em dia é interconectado incrivelmente rápido - talvez 100 + Gbps. Ainda mais lento que no dado, mas muito mais rápido que os antigos ônibus da frente.

Por que não apenas integrar absolutamente tudo? Os fabricantes de placas-mãe ainda querem alguma personalização - quantos slots PCIe, quantas conexões SATA, qual controlador de áudio etc.

De fato, alguns processadores móveis se integram ainda mais aos computadores de placa única de CPU, com variantes de processador ARM. Nesse caso, como o ARM concede o design da CPU, os fabricantes ainda podem personalizar suas matrizes conforme entenderem e integrar os controladores / interfaces que desejarem.


+1, você me venceu :) Ótima resposta, especialmente pelas razões históricas do design da arquitetura.
uint128_t 26/02

Obrigado, especialmente o segundo parágrafo chegou em casa. No entanto, on the die you can achieve speeds on the order of Tbps!Yikes, isso não está começando a superar a capacidade da CPU de processá-la com rapidez suficiente?
DrZ214

3
@ DrZ214 Eles não são PCI, são PCIe, que é um barramento serial e não um barramento paralelo. O PCIe é de 2,5 Gbps, 5 Gpbs ou 8 Gbps por pista em ambas as direções (full duplex) - com 16 pistas sendo a mais larga geralmente vista, fornecendo um máximo teórico de 128 Gbps em ambas as direções. E sim, o comentário acima sobre as velocidades do processador foi intencionalmente excessivamente simplista, mas não irrealista - não relacionado às CPUs, estou trabalhando em um projeto FPGA no momento que processa dados a 315Gbps, e isso não chega nem perto do desempenho total possível do FPGA, o que limita é a falta de dados!
26616 Tom Carpenter

11
O interessante é que isso representa um retorno à arquitetura de sistemas ainda mais antigos, onde os barramentos de memória e armazenamento (etc.) foram diretamente para a CPU.
Chris H

11
@ DrZ214 uma "pista" é um único bit de largura, um sinal de relógio / dados enviado como dois pares. A única coisa sobre o PCIe em comparação com, digamos, o barramento DDR é que o PCIe pode agregar e desagregar faixas livremente, enquanto na maioria dos barramentos você precisa pegar tudo ou nada.
Pjc50

9

Não posso dizer que sou especialista em arquitetura de computadores, mas tentarei responder suas perguntas.

Esse parece ser o layout típico das placas-mãe.

Como Tom mencionou, isso não é mais verdade. A maioria das CPUs modernas possui uma ponte norte integrada. A ponte sul é normalmente integrada ou tornada desnecessária pela nova arquitetura; Os chipsets da Intel "substituem" a ponte sul pelo Platform Controller Hub, que se comunica diretamente com a CPU por meio de um barramento DMI.

Por que a CPU se conecta a apenas 1 barramento? Aquele ônibus da frente parece um grande gargalo. Não seria melhor colocar 2 ou 3 barramentos diretamente na CPU?

Os barramentos largos (64 bits) são caros, exigem um grande número de transceptores de barramento e muitos pinos de E / S. Os únicos dispositivos que exigem um enorme grito rápido barramento são a placa de vídeo e a RAM. Todo o resto (SATA, PCI, USB, serial e assim por diante) é comparativamente lento e não é acessado constantemente. Por isso, na arquitetura acima, todos esses periféricos "mais lentos" são agrupados pela ponte sul como um único dispositivo de barramento: o processador não deseja arbitrar todas as transações de barramento, para que todas as transações de barramento lentas / pouco frequentes possam ser agregadas e gerenciado pela ponte sul, que então se conecta aos outros periféricos a uma velocidade muito mais lenta.

Agora, é importante mencionar que quando digo acima que o SATA / PCI / USB / serial é "lento", isso é principalmente um ponto histórico e está se tornando menos verdadeiro hoje. Com a adoção de SSDs sobre discos rotativos e periféricos PCIe rápidos, bem como USB 3.0, Thunderbolt e talvez 10G Ethernet (em breve), a largura de banda periférica "lenta" está rapidamente se tornando muito significativa. No passado, o ônibus entre a ponte norte e a ponte sul não era um gargalo, mas agora isso não é mais verdade. Então, sim, as arquiteturas estão se movendo em direção a mais barramentos conectados diretamente à CPU.

Existe algo muito difícil de fazer dessa maneira? Não vejo como o custo poderia entrar, porque os diagramas existentes já têm nada menos que sete ônibus.

Seria mais barramentos para o processador gerenciar e mais silício para lidar com barramentos. O que é caro. No diagrama acima, nem todos os barramentos são iguais. O FSB está gritando rápido, o LPC não está. Barramentos rápidos exigem silício rápido, barramentos lentos não; portanto, se você pode mover barramentos lentos da CPU para outro chip, isso facilita sua vida.

No entanto, como mencionado acima, com a crescente popularidade de dispositivos de alta largura de banda, mais e mais barramentos se conectam diretamente ao processador, particularmente em arquiteturas SoC / mais altamente integradas. Ao colocar cada vez mais controladores na matriz da CPU, é mais fácil obter uma largura de banda muito alta.

EDIT: esqueci de mencionar o Watchdog Monitor. Eu sei que já vi isso em alguns diagramas. Presumivelmente, um barramento de gargalo tornaria mais fácil para o cão de guarda monitorar tudo. Isso poderia ter algo a ver com isso?

Não, isso não é realmente o que um cão de guarda faz. Um cão de guarda é simplesmente reiniciar várias coisas quando / se elas travam; ele realmente não vê tudo o que se move através do ônibus (é muito menos sofisticado do que isso!).


2
Fast buses require fast silicon, slow buses don'tO que exatamente significa silício rápido? Silício de maior pureza? Ou você está dizendo que os ônibus lentos podem usar um elemento diferente do silício? De qualquer maneira, pensei que o silício era um material bastante barato. Um pouco interessante sobre o cão de guarda também. Eu posso fazer uma pergunta relacionada sobre isso.
DrZ214

11
Um barramento rápido normalmente faria parte de um dispositivo de alto desempenho, por exemplo, uma CPU. A interface do barramento requer espaço e conexões com outras partes do chip. A área de silício em uma matriz do processador é muito mais cara que um chip muito mais lento, porque o tamanho do processo é menor e a fabricação / embalagem é mais difícil. Portanto, é mais barato restringir os dispositivos no FSB apenas aos dispositivos que realmente exigem essa largura de banda. No entanto, à medida que mais controladores são integrados à CPU na mesma matriz (um SoC), isso não é mais verdade.
uint128_t

Embora os barramentos lentos não exijam silício rápido, não é incomum encontrar drivers muito rápidos em interfaces lentas, o que pode criar uma grande dor de cabeça para o layout de PCB. Vi PCI comum (velocidade máxima de 133 MHz no PCI-X) com tempos de subida e descida inferiores a 300 ps, ​​pois os fornecedores estão usando uma célula de E / S padrão. Eu sei que o PCI, como interface, normalmente não está disponível em novos processadores, mas esse problema é aplicável em outros lugares.
Peter Smith

6

O número de barramentos aos quais uma CPU se conectará diretamente geralmente será limitado ao número de partes distintas da CPU que poderiam acessar as coisas simultaneamente. Não é incomum, especialmente no mundo dos processadores embarcados e DSPs, que uma CPU tenha um barramento para programas e um barramento para dados, e permita que ambos operem simultaneamente. Um uniprocessador típico, no entanto, se beneficiará apenas da busca de uma instrução por ciclo de instrução e poderá acessar apenas um local de memória de dados por ciclo de instrução, portanto, não haverá muito benefício em ir além de um barramento de memória de programa e um barramento de memória de dados. Para permitir que certos tipos de matemática sejam executados com dados obtidos de dois fluxos diferentes,

Com processadores que possuem várias unidades de execução, pode ser útil ter um barramento separado para cada um, para que, se houver várias unidades de barramento "externas" que precisem buscar itens de diferentes barramentos "externos", isso seja possível sem interferência. A menos que haja uma razão lógica pela qual as coisas que são acessadas por diferentes unidades de execução estarão acessíveis através de barramentos diferentes fora da CPU, no entanto, ter barramentos separados da CPU alimentam uma unidade de arbitragem que só pode retransmitir uma solicitação por vez a um dispositivo externo específico não ajuda em nada. Os ônibus são caros, portanto, ter duas unidades de execução em um ônibus geralmente é mais barato do que usar ônibus separados. Se o uso de barramentos separados permitirá uma grande melhoria no desempenho, isso pode justificar o custo, mas de outra forma quaisquer recursos (área de chip etc.)


-1

Considere o número de pinos necessários nos pacotes da CPU para ter vários barramentos largos. Por exemplo, oito núcleos de CPU, cada um com um barramento de dados de 64 bits, além de vários outros pinos para outros fins. Existem pacotes de CPU disponíveis hoje com talvez 800 pinos?


Por que não haveria? Uma matriz de bola 32x32 e um PCB de várias camadas não parece um problema difícil (em uma escala relativa). Os engenheiros de hardware são incríveis. // Pense em quão amplas e desajeitadas as placas de RAM podem ser, e ainda faça o clock de 1,6 GHz (625 picossegundos). Se os sinais elétricos se deslocarem a 2/3 c, o traço mais longo pode ter apenas 6 cm de comprimento e apenas uma diferença de alguns mm de comprimento causará compensações visíveis no tempo. // E eu acho que a diafonia entre as camadas não seria muito pior do que entre os traços na mesma camada.
Oskar Skog

"Existem pacotes de CPU disponíveis hoje com talvez 800 pinos?" Ai sim. Pacotes com mais de 1100 pinos já eram comuns quando esta resposta foi escrita. E hoje em dia, há LGA3647 para algumas CPUs de servidores Skylake-EX ...
duskwuff
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.