Encontrei uma arquitetura de placa-mãe 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?
Respostas:
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:
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.
fonte
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?Não posso dizer que sou especialista em arquitetura de computadores, mas tentarei responder suas perguntas.
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.
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.
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.
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!).
fonte
Fast buses require fast silicon, slow buses don't
O 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.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.)
fonte
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?
fonte