Er zijn verschillende soorten superscalaire processors, elk met zijn eigen ontwerp- en implementatiestrategieën:
1. Superscalaire processors met één probleem:
Deze processors kunnen meerdere instructies in één cyclus ophalen, maar geven slechts één instructie af aan de uitvoeringseenheden. Ze vertrouwen op statische planning om de volgorde van uitvoering van instructies te bepalen.
2. Superscalaire processors met meerdere problemen:
Deze processors kunnen in één cyclus meerdere instructies geven aan verschillende uitvoeringseenheden. Dynamische planning wordt gebruikt om parallellisme op instructieniveau (ILP) te identificeren en te exploiteren.
3. Symmetrische multithreading superscalaire processors (SMT):
Met SMT kunnen meerdere threads tegelijkertijd op één processor worden uitgevoerd. Elke thread heeft zijn eigen set registers en instructieaanwijzers. Dit type superscalaire processor kan het gebruik van hulpbronnen verbeteren en de latentie verminderen.
4. Superscalaire processors die niet meer werken:
Deze verwerkers kunnen instructies geven in een andere volgorde als er geen gegevensafhankelijkheden zijn. Deze techniek, ook wel out-of-order executie genoemd, zorgt voor betere prestaties door gebruik te maken van ILP.
5. Geclusterde superscalaire processors:
Geclusterde superscalaire processors bestaan uit meerdere clusters, die elk meerdere uitvoeringseenheden bevatten. Instructies worden naar de clusters gedistribueerd op basis van hun compatibiliteit en beschikbaarheid van bronnen.
6. Ontkoppelde superscalaire processors met toegang:
Deze processors scheiden de geheugentoegangsfase van de uitvoering om gegevensafhankelijkheden te voorkomen. Instructies worden opgehaald en opgeslagen in een buffer voordat ze worden uitgevoerd. Deze aanpak verbetert het parallellisme en de efficiëntie van instructieverwerking.
7. VLIW superscalaire processors (zeer lang instructiewoord):
VLIW-architecturen verpakken meerdere instructies in één enkel instructiewoord. Deze instructies worden parallel uitgevoerd, waardoor de instructieoverhead wordt verminderd en de prestaties worden verbeterd.
8. Superscalaire processors met speculatieve uitvoering:
Deze processors gebruiken speculatieve uitvoering om de instructies te voorspellen die waarschijnlijk als volgende zullen worden uitgevoerd. Instructies worden speculatief uitgevoerd en als de voorspellingen accuraat blijken te zijn, kunnen de prestaties worden verbeterd. Speculatieve uitvoering kan echter ook complexiteit en potentiële nauwkeurigheidsproblemen met zich meebrengen.
9. Heterogene superscalaire processors:
Heterogene superscalaire processors omvatten verschillende soorten uitvoeringseenheden, zoals kernen voor algemeen gebruik en gespecialiseerde versnellers (bijvoorbeeld GPU's). Deze aanpak maakt een efficiënte uitvoering van verschillende soorten werklasten mogelijk.
Dit zijn enkele prominente typen superscalaire processors, die elk verschillende technieken gebruiken om de prestaties te verbeteren, de latentie te verminderen en op efficiënte wijze parallellisme op instructieniveau te exploiteren. |