Abstract:
Hardware/Software-Co-Entwurf für eine optimierte dynamische Out-of-order-Pipeline mit Very Long Instruction Words (VLIW-Pipeline). Zum Beispiel umfasst eine Ausführungsform einer Vorrichtung Folgendes: eine Befehlsabrufeinheit zum Abrufen von Very Long Instruction Words (VLIWs) in ihrer Programmreihenfolge aus dem Speicher, wobei jedes der VLIWs mehrere Reduced-Instruction-Set-Computing-Befehlssilben (RISC-Befehlssilben) umfasst, die in den VLIWs in einer Reihenfolge gruppiert sind, die Datenflussabhängigkeiten und falsche Ausgabeabhängigkeiten zwischen den Silben beseitigt; eine Decodiereinheit zum Decodieren der VLIWs in ihrer Programmreihenfolge und zum parallelen Ausgeben der Silben jedes decodierten VLIW; und eine Out-of-order-Ausführungsmaschine zum vorzugsweise parallelen Ausführen der Silben mit anderen Silben, wobei wenigstens einige der Silben in einer anderen Reihenfolge als der Reihenfolge, in der sie von der Decodiereinheit empfangen werden, ausgeführt werden sollen, wobei die Out-of-order-Ausführungsmaschine eine oder mehrere Verarbeitungsstufen aufweist, die, wenn sie Operationen ausführen, nicht auf Datenflussabhängigkeiten und falsche Ausgabeabhängigkeiten zwischen den Silben prüfen.
Abstract:
An apparatus comprises: an instruction fetch unit to fetch very long instruction words (VLIWs) in program order from memory, each of the VLIWs comprising a plurality of reduced instruction set computing (RISC) instruction syllables grouped into the VLIWs in an order which removes data-flow dependencies, or read after write hazards, and false output dependencies, or write after write hazards, between the syllables; a decode unit 1501 to decode the VLIWs in program order and output the syllables of each decoded VLIW in parallel; and an out-of-order execution engine 1502-1507 to execute at least some of the syllables in parallel with other syllables, where at least some of the syllables are to be executed in a different order than the order in which they are received from the decode unit, the out-of-order execution engine having one or more processing stages which do not check for data-flow dependencies and false output dependencies between the syllables when performing operations.