S
smalM
Gast
Piktogramm schrieb:Du haust da gerade etwas durcheinander- Typischerweise werden die heutzutage sehr breiten Register nicht genutzt um einzelne Floats mit 128bit, 256bit oder 512bit zu rechnen.
Das hat er wahrscheinlich deshalb durcheinander gebracht, weil bei ARM immer von FP/NEON 128b die Rede ist und sich keiner die Mühe macht FP 64b und NEON 128b zu differenzieren.
Back-End ThunderX2 mit 6 Execution-Ports (4-Issue)
Port 0: ALU, FP/NEON
Port 1: ALU, FP/NEON, Integer Mul/Div, Crypto
Port 2: ALU, Branch
Port 3: Store Data
Port 4: Load/Store
Port 5: Load/Store
Ziemlich schmaler Fuß für ein ARM-v8-Design mit vierfachem SMT, aber verhältnismäßig viel Load-/Store-Kapazität.
4-Issue bedeutet nichts weiter, als daß pro Takt 4 µOps an das Back-End verteilt werden. Das läßt im Prinzip keine Rückschlüsse auf das Front-End zu. Decode bezieht sich immer auf die Anzahl der Ops des ISA, Issue immer auf die µOps.
Zum Vergleich das Backend des Exynos M3 (6-Issue)
Port 0: ALU
Port 1: ALU
Port 2: ALU, complex Int, Int Div serialized
Port 3: ALU, complex Int, Int Div serialized
Port 4: Branch
Port 5: Branch
Port 6: Load
Port 7: Load
Port 8: Store
Port 9: FP/NEON, FP SQRT serialized
Port 10: FP/NEON, FP Div serialized, Crypt
Port 11: FP/NEON, FP Div serialized, Crypt
@Pictogramm
LLVM-Project
Du suchst Dir eine ISA aus und guckst dann nach irgendwas mit "Sched" im Namen, bspw. AArch64/AArch64SchedThunderX2T99.td
Zuletzt bearbeitet von einem Moderator: