Harvard vs. Neumann -> Multiprocessor

SZIGETI Szabolcs szigi at ik.bme.hu
Thu Dec 15 21:54:12 CET 2005


Hali!

> Ez erdekes. De ez a cache nem azert tud-e olyan marha gyors lenni, mert a
> prociba van integralva, es nem kell kivezetni onnan kulso busszal?

Kivezetni nem kell, de ha azt látja, hogy a másik fél írt olyan memória 
címre, amelyet o éppen cache-el, akkor érvénytelenítheti a megfelelo cache 
bejegyzését.

Ezt azután lehet ragozni különbözo esetekre. Nézzünk meg két egyszeru 
példát:

CPU1 és CPU 2 van. Mindeketten hivatkoznak M memória címre, és mindkettonek 
bent van a cache-eben ennek a címnek a tartalam.

Legyen eloször write-trough a cache (azaz az írás sorám a memória is azonnal 
íródik).

CPU1 írja M-et, CPU2 figyeli a buszt, és látja, hogy írás van M-re, ekkor 
saját cache bejegyzését érvényteleníti, és opcionálisan be is olvashatja 
magának az új értéket.

Ha write-back cache (a cache módisítása nem kerül azonnal átvezetésre a 
memóriában) van, akkor a helyzet kicsit bonyolultabb.

CPU1 olvassa M-et, CPU2 észeli, hogy neki cache-elve van M, ezért szól 
CPU1-nek (valamilyen busz protkollal, vagy külön vonallal), hogy hohó! CPU1 
megáll, megvárja, amíg CPU2  visszaírja a memóriába, majd folytatja az 
olvasást. Ez természetesen teljesítményvezsteséggel járhat. Az oprendszer 
adott esetben figyelhet a cache kérdésekre a processz és memória kezelésnél.

Ezek az eljárások mindenféle módon tuningolhatóak még, még lehet 
optimalizálni a különbözo esetekben.

Szabolcs




More information about the Elektro mailing list