Core vs NetBurst architektúra
Üdv!
Számítógép architektúrák tárgyból vesézgettük a NetBurst architektúrát (gyk: P4 proci). Több sebből vérzett a processzor:
1.) CISC utasítósok, változó szélességű utasításhossz. Hiába van RISC magja, szét kell tördelnie a CISC utasításokat futási időben, de ez elég sok hardvert igényel, illetve bonyolítja a tervezést.
2.) Kétcímes, memóriaorientált ISA. A legtöbb utasítás memóriára hivatkozik ahelyett, hogy mondjuk töltő/tároló architektúra lenne, 3 operandusú utasításokkal.
3.) Kicsi és szabálytalan regiszterkészlet. Ennek több hátránya van: egyrészt megnehezíti a fordítóprogramok írását, másrészt nem sok hely van az eredmények tárolására, így sok memóriaműveletre van szüksége (amit nem szeretünk, mert lassú... és mivel egyre jobban elhúznak a procik órajelei a memóriákéi mellett, ezért a helyzet csak rosszabb lesz).
4.) A sok memóriahivatkozás indokolatlanul sok WAR (Write After Read) függőséget okoz, ami megint nem túl jó dolog. Ezt regiszterátnevezésekkel és titkos regiszterekké átrendező pufferekkel oldja meg. Ez gyorsítótár problémákhoz vezet -> sorrenden kívül kell végrehajtani az utasításokat, ami nem is lenne nagy baj, de a megszakítások miatt helyre kell állítani a sorrendet. Ez indokolatlanul bonyolult hardvert kell készíteni.
5.) Hogy ezt gyorsan meg lehessen csinálni, nagyon hosszú csővezetékre van szükség. A feltételes ugrásoknál ez könnyedén eldugul, ezért nagyon pontos elágazásjövendölésre van szükség. Ha nem jön be, akkor ki kell üríteni a csővezetéket, ami nagyon költséges, így még kis hibázási ráta mellett is keményen odavág a teljesítménynek.
6.) Ennek enyhítésére spekulatív végrehajtásokat kell végeznie, de a téves útra mutató memóriahivatkozások csapdát okozhatnak.
7.) stb :)
Szóval arra lennék kíváncsi, hogy a Core architektúrák esetén mennyiben változott a dolog? A felmerülő, és egyre súlyosbodó problémákat hogyan hidalták át?
Bónusz kérdés: az AMD-nél hogyan működik ez?
- Tovább (Core vs NetBurst architektúra)
- 2011 megtekintés