Re: EDO vs FPM - wyniki testu

Autor: Maciej W. Rozycki (prr09rm_at_loqi.eti.pg.gda.pl)
Data: Fri 22 Nov 1996 - 16:18:28 MET


On 22 Nov 1996, Krzysztof Halasa wrote:

> Po pierwsze, dostepem do RAM (tej z parzystoscia, nie cache) zajmuje sie
> sterownik cache, a wiec sposob dzialania procesorow nie ma tu nic do rzeczy.
> Biorac to pod uwage, oczywiste jest, ze sterownik cache musi wiedziec,
> jaki jest adres danej znajdujacej sie na magistrali. Ale to i tak nie ma nic
> do rzeczy, poniewaz istota kontroli parzystosci jest wykrywanie przeklamania
> bitu w RAM, a nie wykrywanie miejsca wystapienia takiego przeklamania.

 1. Procesory x86, poczawszy od i486 (a moze i dawniej -- nie pamietam)
maja po jednej linii DP (data parity) na kazde 8 bitow danych. W przypadku
odczytu pamieci glownej wystarczy wystawic na linie DP dodatkowe bity
parzystosci pamietane w owej pamieci. Procesor sam wyznaczy parzystosc i
wystawi wynik (linia PERR). W przypadku odczytu z pamieci podrecznej, na
linie DP mozna podac cokolwiek i zignorowac PERR (lub zaimplementowac
parzystosc w tej pamieci). W przypadku zapisu, procesor sam wyznacza
parzystosc i wystawia ja na liniach DP. Mozna ja pamietac w pamieci
podrecznej (zakladam write-back). W przeciwnym wypadku, parzystosc moze
wyznaczyc sterownik pamieci podrecznej przy uniewaznianiu wiersza. Jak
widac (mam nadzieje), z punktu widzenia ukladow scalonych pamieci EDO,
"dodatkowe" bity nie roznia sie niczym od "zwyklych", tak wiec nie wiem na
czym mialby polegac problem w ich produkcji -- cala obsluga parzystosci
zajmuje sie "logika" plyty glownej.

 2. Procesory Pentium i 5k86 maja mechanizm MCE (machine check exception),
ktory umozliwia wykrywanie bledow parzystosci na szynie danych i adresowej
(to drugie w przypadku tzw. snoop cycles). W dwoch specjalnych rejestrach
zwracany jest adres, ktory "spowodowal" blad oraz niektore linie
magistrali umozliwiajace ustalenie rodzaju cyklu. Linia PEN (parity
enable) umozliwia chwilowe wylaczanie kontroli (np. przy wspomnianej wyzej
implementacji dostepu do pamieci podrecznej). Jak widac, mozna tez ustalic
adres bledu.

 3. Procesor Pentium Pro posiada dodatkowo mechanizm MCA (machine check
architecture) umozliwiajacy zglaszanie i liczenie bledow wedlug roznych
kategorii (np. bledy poprawione dzieki ECC moga nie powodowac zamkniecia
systemu, ale moga byc rejestrowane dla celow statystycznych).

 4. Magistrala PCI posiada po jednym bicie parzystosci na kazde 8 bitow
danych. Urzadzenia PCI moga sygnalizowac bledy poprzez sygnaly PERR
(parity error) i SERR (system error). W przypadku wykrycia bledu
parzystosci, np. podczas transmisji pomiedzy PCI i pamiecia
glowna, typowym rozwiazaniem jest aktywacja linii PERR (robi to
zwykle tzw. host bridge). Sygnal ten jest interpretowany przez uklad
odpowiedzialny za zglaszanie przerwan procesorowi (zwykle tzw. PCI-ISA
bridge), ktory podaje procesorowi sygnal NMI (przerwanie niemaskowalne)
lub BERR (bus error).

 W oparciu o powyzszy (nieco przydlugi) wywod, osobiscie nie widze
nigdzie przyczyny niemoznosci sfabrykowania pamieci EDO z dodatkowymi
bitami parzystosci i zastosowania ich dla zwiekszenia wiarygodnosci
sprzetu. No chyba, ze chodzi o tzw. emulacje parzystosci... :-(

--
+  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
+--------------------------------------------------------------+
+    e-mail: prr09rm_at_loqi.eti.pg.gda.pl, PGP key available     +


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