J'ai trouvé une architecture de carte mère ici:
Cela semble être la disposition typique des cartes mères. EDIT: Eh bien, apparemment, ce n'est plus si typique.
Pourquoi le CPU se connecte-t-il à seulement 1 bus? Ce bus frontal ressemble à un goulot d'étranglement majeur. Ne serait-il pas préférable de donner 2 ou 3 bus directement dans le CPU?
J'imagine un bus pour la RAM, un pour la carte graphique et un pour une sorte de pont vers le disque dur, les ports USB et tout le reste. La raison pour laquelle je le divise de cette façon est que les débits de données du disque dur sont lents par rapport à la mémoire.
Y a-t-il quelque chose de très difficile à faire de cette façon? Je ne vois pas comment les coûts pourraient y entrer, car les diagrammes existants ont déjà pas moins de sept bus. En fait, en utilisant des bus plus directs, nous pourrions réduire le nombre total d'autobus et peut-être même l'un des ponts.
Donc quelque chose ne va pas avec ça? Y a-t-il un inconvénient majeur quelque part? La seule chose à laquelle je peux penser est peut-être plus de complexité dans le CPU et le noyau, ce qui me fait penser que cette architecture de bus goulot d'étranglement est la façon dont elle était faite dans les temps anciens où les choses étaient moins sophistiquées et la conception reste la même pour la normalisation.
EDIT: J'ai oublié de mentionner le Watchdog Monitor . Je sais que je l'ai vu dans certains diagrammes. Vraisemblablement, un bus goulot d'étranglement faciliterait la surveillance de tout par le chien de garde. Cela pourrait-il avoir quelque chose à voir avec cela?
Réponses:
L'approche que vous montrez est une topologie assez ancienne pour les cartes mères - elle est antérieure à PCIe, ce qui la remet vraiment quelque part dans les années 00. La raison est principalement due à des difficultés d'intégration.
Fondamentalement, il y a 15 ans, la technologie permettant de tout intégrer dans une seule matrice était pratiquement inexistante d'un point de vue commercial, et cela a été incroyablement difficile. L'intégration de tout se traduirait par de très grandes tailles de filières en silicium, ce qui entraînerait à son tour un rendement beaucoup plus faible. Le rendement est essentiellement le nombre de matrices que vous perdez sur une plaquette en raison de défauts - plus la matrice est grande, plus la probabilité d'un défaut est élevée.
Pour lutter contre cela, vous divisez simplement la conception en plusieurs puces - dans le cas des cartes mères, cela a fini par être CPU, North Bridge et South Bridge. Le CPU est limité au seul processeur avec une interconnexion à grande vitesse (appelé bus frontal pour autant que je m'en souvienne). Vous avez alors le North Bridge qui intègre le contrôleur de mémoire, la connexion graphique (par exemple AGP, une ancienne technologie en termes de calcul), et un autre lien plus lent vers le South Bridge. Le pont sud a été utilisé pour gérer les cartes d'extension, les disques durs, les lecteurs de CD, l'audio, etc.
Au cours des 20 dernières années, la capacité de fabriquer des semi-conducteurs à des nœuds de processus de plus en plus petits avec une fiabilité de plus en plus élevée signifie que tout est intégré sur une seule puce devient possible. Des transistors plus petits signifient une densité plus élevée pour que vous puissiez vous adapter davantage, et des processus améliorés dans la fabrication signifient un rendement plus élevé. En fait, non seulement il est plus rentable, mais il est également devenu essentiel de maintenir l'augmentation de la vitesse des ordinateurs modernes.
Comme vous le faites remarquer correctement, avoir une interconnexion avec un pont nord devient un goulot d'étranglement. Si vous pouvez tout intégrer au CPU, y compris le complexe racine PCIe et le contrôleur de mémoire système, vous avez soudainement une liaison à très haute vitesse entre les principaux périphériques graphiques et informatiques - sur le PCB, vous parlez peut-être de vitesses de l'ordre de Gbps, sur le dé vous permet d'atteindre des vitesses de l'ordre de Tbps!
Cette nouvelle topologie se reflète dans ce diagramme:
Source de l'image
Dans ce cas, comme vous pouvez le voir, les contrôleurs graphiques et de mémoire sont tous deux intégrés sur la puce CPU. Bien que vous ayez toujours un lien vers ce qui est en fait un seul chipset composé de quelques morceaux du pont nord et du pont sud (le chipset dans le diagramme), cela est aujourd'hui en interconnexion incroyablement rapide - peut-être 100 + Gbps. Toujours plus lent que sur le dé, mais beaucoup plus rapide que les anciens bus frontaux.
Pourquoi ne pas simplement intégrer absolument tout? Les fabricants de cartes mères veulent toujours une certaine personnalisation - combien d'emplacements PCIe, combien de connexions SATA, quel contrôleur audio, etc.
En fait, certains processeurs mobiles s'intègrent encore plus sur la puce CPU - pensez aux ordinateurs à carte unique utilisant des variantes de processeur ARM. Dans ce cas, comme ARM loue la conception du processeur, les fabricants peuvent toujours personnaliser leurs matrices comme bon leur semble et intégrer les contrôleurs / interfaces qu'ils souhaitent.
la source
on the die you can achieve speeds on the order of Tbps!
Yikes, cela ne commence-t-il pas à dépasser la capacité du processeur à le traiter assez rapidement?Je ne peux pas dire que je suis un expert en architecture informatique, mais je vais tenter de répondre à vos questions.
Comme Tom l'a mentionné, ce n'est plus vrai. La plupart des processeurs modernes ont un northbridge intégré. Le pont sud est généralement intégré ou rendu inutile par la nouvelle architecture; Les chipsets d'Intel "remplacent" le southbridge par le Platform Controller Hub, qui communique directement avec le CPU via un bus DMI.
Les bus larges (64 bits) sont chers, ils nécessitent un grand nombre d'émetteurs-récepteurs de bus et de nombreuses broches d'E / S. Les seuls périphériques qui nécessitent un énorme bus rapide hurlant sont la carte graphique et la RAM. Tout le reste (SATA, PCI, USB, série, etc.) est relativement lent et n'est pas constamment accessible. Par conséquent, dans l'architecture ci-dessus, tous ces périphériques "plus lents" sont regroupés à travers le Southbridge comme un seul bus: le processeur ne veut pas avoir à arbitrer chaque petite transaction de bus, de sorte que toutes les transactions de bus lentes / peu fréquentes peuvent être agrégées et géré par le Southbridge, qui se connecte ensuite aux autres périphériques à une vitesse beaucoup plus tranquille.
Maintenant, il est important de mentionner que lorsque je dis ci-dessus que SATA / PCI / USB / série sont "lents", c'est principalement un point historique, et cela devient moins vrai aujourd'hui. Avec l'adoption de disques SSD sur des disques tournants et des périphériques PCIe rapides, ainsi que des ports USB 3.0, Thunderbolt et peut-être 10G Ethernet (bientôt), la bande passante périphérique "lente" devient rapidement très importante. Dans le passé, le bus entre le northbridge et le southbridge n'était pas vraiment un goulot d'étranglement, mais maintenant ce n'est plus vrai. Alors oui, les architectures évoluent vers plus de bus connectés directement au CPU.
Ce serait plus de bus à gérer pour le processeur, et plus de silicium de processeur pour gérer les bus. Ce qui est cher. Dans le diagramme ci-dessus, tous les bus ne sont pas égaux. Le FSB crie vite, le LPC ne l'est pas. Les bus rapides nécessitent du silicium rapide, pas les bus lents, donc si vous pouvez déplacer des bus lents du CPU vers une autre puce, cela vous facilite la vie.
Cependant, comme mentionné ci-dessus, avec la popularité croissante des périphériques à large bande passante, de plus en plus de bus se connectent directement au processeur, en particulier dans les architectures SoC / plus hautement intégrées. En plaçant de plus en plus de contrôleurs sur la puce du processeur, une bande passante très élevée est plus facile à atteindre.
Non, ce n'est pas vraiment ce que fait un chien de garde. Un chien de garde consiste simplement à redémarrer diverses choses quand / si elles se bloquent; il ne regarde pas vraiment tout ce qui se déplace dans le bus (c'est beaucoup moins sophistiqué que ça!).
la source
Fast buses require fast silicon, slow buses don't
Que signifie exactement le silicium rapide? Silicium de plus grande pureté? Ou dites-vous que les bus lents peuvent utiliser un élément différent du silicium? De toute façon, je pensais que le silicium était un matériau assez bon marché. Un peu intéressant sur le chien de garde aussi. Je pourrais poser une question connexe à ce sujet.Le nombre de bus auxquels un processeur se connectera directement sera généralement limité au nombre de parties distinctes du processeur qui pourraient accéder simultanément aux choses. Il n'est pas rare, en particulier dans le monde des processeurs embarqués et des DSP, qu'un CPU ait un bus pour les programmes et un bus pour les données, et permette aux deux de fonctionner simultanément. Un monoprocesseur typique, cependant, ne bénéficiera que de la récupération d'une instruction par cycle d'instruction, et ne pourra accéder qu'à un emplacement de mémoire de données par cycle d'instruction, donc il n'y aura pas beaucoup d'avantages à aller au-delà d'un bus de mémoire programme et d'un bus de mémoire de données. Pour permettre l'exécution de certains types de calculs sur des données extraites de deux flux différents,
Avec les processeurs qui ont plusieurs unités d'exécution, il peut être utile d'avoir un bus séparé pour chacune, de sorte que s'il y a plusieurs bus "extérieurs", les unités qui doivent extraire des choses de différents bus "extérieurs" puissent le faire sans interférence. À moins qu'il n'y ait une raison logique pour laquelle les choses auxquelles accèdent différentes unités d'exécution seront accessibles via différents bus en dehors de la CPU, cependant, avoir des bus séparés du flux CPU dans une unité d'arbitrage qui ne peut relayer qu'une seule demande à la fois à une un périphérique externe particulier n'aidera rien. Les bus sont chers, donc avoir deux unités d'exécution sur un seul bus est généralement moins cher que d'utiliser des bus séparés. Si l'utilisation de bus séparés permettra une amélioration majeure des performances, cela peut justifier le coût, mais sinon toutes les ressources (puce, etc.
la source
Considérez le nombre de broches nécessaires sur les packages de CPU pour avoir plusieurs bus larges. Par exemple, huit cœurs de processeur chacun avec un bus de données 64 bits, ainsi que d'autres broches assorties à d'autres fins. Existe-t-il aujourd'hui des packages de CPU avec peut-être 800 broches?
la source