Re: Latency vs. predkosc - co ma wieksze znaczenie dla Core 2 Duo E6600

Autor: uC <uC_at_bla.bla>
Data: Thu 07 Sep 2006 - 13:42:06 MET DST
Message-ID: <edp0i9$i1t$1@news.dialog.net.pl>
Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=response

"Radosław Sokół" <Radoslaw.Sokol@polsl.pl> wrote in message
news:edlpj7$nf3$1@polsl.pl...
> uC napisał(a):
>> Oczywiscie ze nie. Po pierwsze szyna do pamieci jest 128 bitowa (AMD) i
>> 2x64 bitowa (Intel), oczywiscie w dual channel, wiec z definicji trzeba
>> przeczytac co najmniej 16 bajtow. Po drugie, czytanych jest ich tak na
>
> Zupełnie nie zrozumiałeś. Przeczytaj jeszcze raz:
>
> "Kontrolery tak. Oprogramowanie nie."
>
> Programisty *nie obchodzi* co robi sprzęt. Wydaje mu
> polecenie np. MOV AL, BYTE PTR [xxxxx] i jego efektem
> jest odczytanie *bajtu* z pamięci do rejestru. Procesor
> może ten bajt sobie czytać bit po bicie lub odczytać
> 128 KiB danych i wyrzucić resztę poza bajtem -- nieważne!
> Program *może* przeczytać bajt.
>
> I dlatego napisałem, że oprogramowanie może odczytywać
> pojedyncze bajty, a sprzęt nie. Nowoczesny sprzęt oczywiście
> zrealizuje odczyt pełnego bajtu przez odczytanie większej
> partii, ale z punktu widzenia programu jest to zupełnie
> nieistotne.
>
> Swoją drogą nie jest to cecha powszechna, są architek-
> tury gdzie program nie może odczytać mniej niż jedno
> pełne słowo maszynowe (np. 32 bity) i w razie potrzeby
> musi sam sobie potem z tego wydzielać bajty.

Moze troche nie zrozumielismy sie wczesniej. Oczywiscie masz racje. Hardware
to co innego a wirtualne "twory" w postaci softwaru to inna sprawa.

>> Dodatkowo, przeciez rejestry sa co najmniej 32-bitowe, wiec nie da sie do
>> nich zaladowac po prostu 1 bajtu!
>
> Wrong. W IA-32 rejestry mogą być traktowane jako
> 16- (np. EAX -> AX) lub dwa 8-bitowe (np. EAX -> AL/AH).
>
>> No wlasnie o tym mowie, oczywiscie ze nie moze jednego bitu, tak samo jak
>> nie moze jednego bajtu.
>
> Patrz wyżej. Może.

Oczywiscie prawda. To tez bylo moje uproszczenie myslowe, ale nie bede juz
zasmiecal tego watku proba wyjasnienia ;-).

>> Tutaj masz chyba na mysli cos innego?, tzw. NC (non-cachable area) ktore
>> moze byc wykorzystywane do buforowania video (overlaying)
>> wykorzystywanego brzez np. biblioteki DirectX. To troche inna para
>> kaloszy...
>
> MTRR w zasadzie można ustawić w dowolny sposób. Inna sprawa,
> że stosuje się to do opisywania obszarów pamięci innych niż
> RAM w olbrzymiej większości przypadków.

Tu musze powiedziec, ze takie dyskusje powoduja zwiekszenie zainteresowania
danym tematem i zainspirowalo mnie to do pogrzebania w dokumentacji, co
zrobie w wolnej chwili czasu. Problematyka obslugi cache to arcy-trudna
sprawa, poniewaz bardzo wiele rzeczy nie jest zdokumentowanych, czesto tylko
doswiadczenie i logika pozwalaja cokolwiek wywnioskowac (i oczywiscie
eksperymenty).

Pzdr.,

-- 
uC
www.ultracode.eu
Received on Thu Sep 7 13:50:07 2006

To archiwum zostało wygenerowane przez hypermail 2.1.8 : Thu 07 Sep 2006 - 13:51:08 MET DST