IP = Instruction Pointer. Jinými slovy ukazatel na následující instrukci.Původně odeslal Petrik
Pokud budu mít kód následující:
instrukce 1
instrukce 2
instrukce 3
instrukce 4
instrukce 5
... tak to není problém, protože se IP snadno stanoví.
Jenže jakmile budu mít kód:
instrukce 1
instrukce 2
testovací podmínka
jump-if podmínkový skok na KOD_B
KOD_A
instrukce 3
jump KOD_C
KOD_B
instrukce 4
KOD_C
instrukce 5
... tak jsem v pytli.
Tenhle jednoduchý příklad dnešní procesory odhadují pomocí predikce větvení. Pokud se ale bavíme o dvou jádrech, kde máme nějaké dekódování a samotné naplnění pipeline do scheduleru je aspoň 5 stupňů, tak se musíme pohybovat úplně v jiných dimenzích out-of-order (řekněme 100+ instrukcí). V takovém řádu je obrovské množstí podmínek. Jak bys to teda chtěl provést? Nehledě na to, že závislost výsledků v sekvenci instrukcí je gigantická (odhaduji tak 90%), jelikož kód obvykle počítá spoustu věcí na jediné proměnné. S takovou závislostí si nemůžeš dovolit ani zápisy do L1 cache (jsou proti registrům moc pomalé), natož aby docházelo ke sdílení mezi dvěma jádry.
Čímsi z CDR se tady neoháněj, už jsem to sem dal minulý týden. Podívej se na zdroj té zprávy - Freecableguy je jakýsi user z XtremeSystems. Nějaký jeho náčrtek je irelevantní v tom, zda to jde provést nebo ne.