Citace Původně odeslal Petrik
Nevim co myslis vyrazem IP, ale zrejmne mam alespon castecne pravdu, protoze neco podobneho chysta i intel: http://www.cdr.cz/a/17884
IP = Instruction Pointer. Jinými slovy ukazatel na následující instrukci.

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.