Autor: MiW (miw_at_zeus.polsl.gliwice.pl)
Data: Fri 28 Nov 2003 - 13:47:04 MET
> > Nie. Najnizsze 5 bitow wykrywa uklad cache'ujacy (jakbym gdzies znalazl
moje
> > materialy to bym dokladnie powiedzial jak to sie nazywa ;-) ) i
sprawdza,
> > czy 'przypadkiem' nie ma takiego czegos u siebie.
>
> Czegoś tu troszkę nie rozumiem... Jeśli linia ma rozmiar
> 2^n bajtów, to najniższych n bitów pełnego adresu fizycznego
> IMHO powinno określać dokładnie przyległe bajty wewnątrz
> jednej i tylko jednej linii cache (oczywiście z punktu
> widzenia kontrolera cache).
Oczywiscie. Ale nie jest to czesc adresowania z punktu widzenia programisty
na jakimkolwiek poziomie jezyka programowania (to jest ponizej kodu
wykonywanego przez procesor ! - uklad cache'a jest calkowicie niezalezny).
> Na potrzeby przykładu załóżmy następujące warunki:
(...)
> Jeśli jest to poprawne, to rozumiem, że rozszerzenie tej
> idei na n-ścieżkową asocjację wymaga tylko dołożenia kompa-
> ratora sprawdzającego za każdym razem te same linie w n
> ścieżkach asocjacji i porównującego tagi, przy czym pojawia
> się problem wyboru polityki wyboru ścieżki asocjacji, w
> której usuwana (i zamieniana na nową) będzie linia cache
> w przypadku, gdy zabranie wolnych miejsc na linie o tym
> samym adresie linii, ale innym tagu.
Dokladnie tak to wyglada. Chodzilo mi glownie o nazewnictwo, gdyz te kilka
bitow odpowiadajacych za numer linii nie jest tak naprawde czescia
adresowania w takim sensie, jak sa segmenty i strony.
> * Fajny cache, połowa przestrzeni adresowej procesora ;)
I wlasnie dlatego nie robia 'fully associative' dla duuuzych blokow -
komparator bylby gigantyczny !
> > Sie troche ryplem. Ale tylko troche... Struktura cache i486
(oryginalnego):
> > - odwz. 4-sciezkowe
> > - linie 16B
> > - adres wyznaczany jako 21bit znaczika (nr bloku linii) + 7bit wzgledny
nr
> > linii + 4bit nr bajtu w linii
> > - wielkosc pojedynczego zestawu (sciezki) 8kB, calego cache'a 32kB
>
> http://www.pcguide.com/ref/cpu/fam/g4I486DX-c.html
> http://www.pcguide.com/ref/cpu/fam/g4I486SX-c.html
>
> Wedle tego cały cache miał 8 KiB (po 2 KiB na ścieżkę).
>
> Zresztą wynika to z Twoich danych też: 7 bitów adresu linii
> to 128 linii po 16 B, a więc 2 KiB na ścieżkę asocjacji.
> Razy cztery ścieżki to 8 KiB. Cache zunifikowany (bez podziału
> kod/dane).
Cos sie popieprzylo komus, kto to notowal :)
Mnie sie nie chcialo na wykladzie pisac, tylko sluchalem...
Sprawdzilem na stronkach Intela... 8kB Write-Through...
Nawiasem mowiac:
http://developer.intel.com/design/intarch/prodbref/272712.htm
tutaj jest struktura procesora i486 - widac wyraznie, ze tak naprawde
magistrala adresowa 'siega' tylko do cache'a, a 'Cache Unit' zajmuje sie
sciaganiem wlasciwej kopii danych z wlasciwego miejsca (adresowaniem
fizycznym)
> > No tak, ale VX-y tego nie mialy ;-) TX tez nie...
>
> Zdecydowanie nie. Nie wiem, czy nie miały po prostu TAGa
> wbudowanego w strukturę mostka północnego.
TX moze. VX na pewno nie - mial zewnetrzny, ale nierozszerzalny (tzn mial go
mniej).
> > Z kolei watpie, zeby 'niektore' COASTy mialy wlasny TAG RAM, bo
musialoby to
> > byc zrobione tak, zeby plyta ten TAG widziala, a jesli miala swoj i
zlacze
> > sie niczym nie roznilo od takiego bez TAGa, to byloby to chyba
> > niewykonalne...
>
> W instrukcji do ASUSa P55T2P4 jest napisane:
>
> : WARNING: If the cache module that you install already have
> : an extended tag, do not install another TAG SRAM into the
> : TAG SRAM Upgrade Socket.
Hmmm... No dosyc specyficzny pomysl :) Ciekawe, jak to bylo zrealizowane...
-- pzdr. MiW
To archiwum zostało wygenerowane przez hypermail 2.1.7 : Wed 19 May 2004 - 11:45:34 MET DST