Re: 586 AMD 133 ??? Pytania, pytania ...

Autor: Jan Piwowarczyk (janpi_at_trident.mof.mofnet.gov.pl)
Data: Fri 12 Jul 1996 - 13:39:18 MET DST


Grego_at_RMnet.IT (Gregorio Kus) wrote:

>On Mon, 18 Mar 1996 13:43:04 +0100 Slawomir Stuglik wrote:

>> Z innej beczki, czy moze ktos wyjasnic mi co DOKLADNIE znacza
>> ( i jak powinny byc ustawione dla 586AMD133 ) nastepujace opcje BIOS'u:
>>
>> Cache speed options DRAM read wait state
>> DRAM write wait state
>> PCICLK-to-ISA sysclk divisor PCICLK/4

>W ogromnym skrocie i uproszczeniu (zaraz pewnie wsiada na mnie elektronicy):

>Read wait state:
>Procesor wystawia na szyne adresowa adres i ustawia sygnal MEMR (memory read)
>[to tylko przykladowy skrot, w kazdym procesorze nazywa sie to inaczej, dla
>uproszczenia rzecz jasna :-). W nastepnym cyklu zegara procesor najchetniej
>przeczytalby sobie z szyny danych to co mu tam wystawila pamiec, ale...
>jesli plyta jest taktowana z czestotliwoscia 33MHz to uplunelo zaledwie 30ns
>wiec noramalna pamiec o szybkosci 70ns oczywiscie nie zdazyla sie jeszcze
>"wyrobic" - stad koniecznosc przeczekania co najmniej jednego cyklu (to tak
>na styk, 33MHz z pamiecia 60ns), odpowiedni ukladzik, ktoreym sterujesz
>wlasnie tym ustawieniem BIOSu wystawia sygnal WAIT dla procesora, przez co
>procesor w pewnym sensie "zatrzymuje sie", czyli wykonuje cykl "wait" zamiast
>kolejnego cyklu instrukcji, ktory wykonalby od razu gdyby pamiec nadazala.

>Write wait state:
>Wyglada to bardzo podobnie, tyle ze tym raze procesor wystawia adres
>na szyne adresowa i dane na szyne danych oraz ustawia sygnal MEMW,
>nastepnie procesor musi poczekac az pamiec sobie "zdejmie" te dane
>bo znow pamiec o szybkosci 60ns nie jest sie w stanie wyrobic.
>Oczywiscie pamiec moze "zwolnic procesor" niemal od razu (przy zapisie)
>po zobie "zatrzasnie" dane w szybkim "latch'u" ale potem i tak musi sobie
>caly ten swoj cykl wewnetrzny wykonac, zanim dane znajda sie na swoim
>miejscu i tym samym, zanim pamiec bedzie gotowa do nastepnego dostepu.

>Nazwalem to "ogromnym uproszczeniem" gdyz tak to mniej wiecej
>funkcjonowalo w czasach 8080 czy 6502, (oczywiscie wtedy [nawet na Z80
>z 4MHz i z pamieciami 120ns] nie bylo potrzeby wstawiania zadnych wait
>state'ow) dzis procesor komunikuje sie z pamiecia poprzez cache, w dodatku
>ma z reguly "w srodku" wlasnego cache'a, pamieci maja rozne cudenka
>(fast page, EDO etc), procesor pracuje z inna czestotliwoscia niz plyta,
>wiec sprawy sie nieco pokomplikowaly, ale zapewne nie zalezy Ci
>na wyjasnieniu tych wszystkich szczegolow? Nie zamierzasz chyba projektowac
>mother board?

>Cache to taka szybka pamiec (10 - 15ns), ktora [powiedzmy] jest w stanie
>nadazyc za procesorem [jest oczywiscie za droga aby z niej zrobic caly RAM
>i pozbyc sie klopotu], w ktorej przechowuje sie ostatnio uzywane dane wraz
>z adresami [znow ogromne uproszczenie], a poniewaz wiekszosc programow
>99% czasu swojej aktywnosci "przezywa w petlach", wiec majac w cache'u
>malenka czesc calej pamieci mozna uzyskac znaczne przyspieszenie pracy.

>Cache speed options (to sa takie dziwne ciagi cyfr od 2-1-1-1 do 3-3-3-3)
>[choc sa BIOSy w ktorych jest to np. "wolno", "szybko", "bardzo szybko" ]
>to sprawa jeszcze bardziej skomplikowana. W najwiekszym skrocie: kiedy z
>pamieci pobierane sa jednym ciagiem (burst) KOLEJNE byte'y (slowa),
>wybranie pierwszego z nich "kosztuje" 2 cykle a kazdego nastepnego
>po jednym cyklu i to jest wlasnie 2-1-1-1. Znaczenia pozostalych - nietrudno
>sie domyslic przez analogie.

>Co do ustawiania: NIE MA ZADNEJ REGULY OGOLNEJ ktora moglaby Ci powiedziec:
>przy pamieciach 70ns i procesorze DX4/120 MHz ustaw 3 waity na read a 2 na
>write, zas przy DX2/66Hz 2 wait read/1wait write, a przy DX2/50 mozesz
>trzymac obydwa na 1. Zalezy to od masy rzeczy, od chipsetu, od konstrukcji
>plyty ogolnie. Pomoc ci moga wylacznie eksperymenty. Schodzic z opoznieniami
>w dol, zapuszczac PO KAZDEJ POJEDYNCZEJ ZMIANIE Linuxa lub WARPa i patrzyc
>czy sie zawiesza czy nie.

>To samo z trybem dostepu do cache - zalezy to od czestotliwosci zegara,
>ale i od szybkosci pamieci statycznych uzytych w cache'u jak i od
>konstrukcji samego cache'a (sa co najmniej 3 glowne odmiany konstrukcyjne
>cache'a, a kazda z nich ma jeszcze szereg pododmian) to jest pamiec
>asocjacyjna, wiec mozna ja zrealizowac na wiele sposobow, nie jest to
>takie proste jak zwykly RAM, gdzie wystawiasz adres i wysylasz lub
>zczytujesz zaadresowane dane, cache musi sprawdzic czy zadany adres ma
>zachowany, (dane z tego adresu) jesli jest to go znalezc, jesli nie to
>przekazac zadanie do "glownego" RAMu. Od konstrukcji cache'a zalezy bardzo
>wiele - w czasach kiedy zajmowalem sie troche wiecej sprzetem niz dzisiaj,
>spotkalem sie nie raz z plytami 386DX/40MHz z 8kB cache ktore chodzily
>zdecydowanie szybciej (zarowno w testach jak i "wzrokowo", w aplikacjach)
>niz inne konstrukcje ktore "chwalily sie" posiadaniem 128kB.

>W sumie: zadnych regul - tylko eksperymenty.

>Ostatnie pytanie: PCI to ISA clock divisor - wyjasnili Ci juz inni.
>Moge dorzucic tylko z wlasnych doswiadczen - dopoki uzywalem video
>i HD na magistrali ISA - zawsze ja~ zylowalem. Tseng ET4000 np. chodzil
>doskonale na 13MHz (40MHz/3), lecz karte multi I/O trzeba bylo juz
>pieczolowicie dobierac, bo byly klopoty z kontrolerem twardego dysku.
>Na 10 MHz - chodzilo dokladnie wszystko i w widoczny sposob szybciej.
>Oczywiscie - w nowoczesnej plycie, gdzie urzadzenia o najwiekszych
>przesylach wisza na PCI - nie ma to specjalnie sensu. Dzis uzywam 8.33
>bo moj nowy modem wewnetrzny nie wyrabia sie nawet na 10MHz. Albo moze
>wyrabia sie, tyle ze ma jakies swoje "temporyzacje" zalezne od clock'a
>ISY.

>pozdrawiam

>Grego

>--

>/------------------------------------------------------------------
>Gregorio Kus Grego_at_RMnet.it Grego_at_cyberspace.org
>ROMA, Italy http://www.RMnet.it/~grego Grego_at_FreeNet.hut.fi



To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 12:48:50 MET DST