Funkcja Legacy USB Support umożliwia podłączenie klawiatury i myszy USB. Jeśli zamierzasz używać tych urządzeń, wtedy po ich podłączeniu stwierdzisz, że dopóki nie zostanie zainstalowany system operacyjny obsługujący standard USB, klawiatura USB nie zadziała. Może to być powodem problemów w przypadku uruchamiania systemu DOS, programów diagnostycznych lub innych aplikacji działających w systemie operacyjnym nie obsługującym urządzeń USB. Urządzenia USB obsługują systemy Windows 98/Me/XP/2000. W takiej sytuacji należy włączyć funkcję Legacy USB Support.
Jeśli nawet funkcja zostanie wyłączona, komputer nadal będzie wykrywał klawiaturę USB, która będzie w pełni funkcjonalna w trakcie wykonywania procedury POST lub po uruchomieniu programu BIOS Setup. W momencie, gdy funkcja Legacy USB Support jest wyłączona (domyślne ustawienie w niektórych komputerach), komputer będzie się zachowywał w sposób określony w poniższych punktach:
W momencie uruchomienia komputera funkcja Legacy USB Support jest nieaktywna.
Rozpoczyna się wykonywanie procedury POST.
BIOS tymczasowo włącza funkcję Legacy USB Support, dzięki czemu możliwe jest, przy użyciu klawiatury USB, otwarcie programu BIOS Setup lub wyświetlenie menu Maintenance.
Procedura POST kończy działanie i wyłącza funkcję Legacy USB Support (jeśli w programie BIOS Setup była ustawiona wartość Disabled).
Następuje uruchomienie systemu operacyjnego, podczas którego nie zostaje wykryta klawiatura i mysz USB. Po załadowaniu przez system sterowników urządzeń USB zostaną one rozpoznane.
Aby zainstalować system operacyjny obsługujący urządzenia USB, należy uaktywnić funkcję Legacy USB Support, a następnie postępować zgodnie z procedurą instalacyjną producenta systemu. Po zakończeniu instalacji i skonfigurowaniu sterowników urządzeń USB systemu operacyjnego przejmą one kontrolę, dlatego też funkcja Legacy USB Support nie będzie już potrzebna. Niezależnie od tego warto pozostawić ją aktywną, tak aby w przypadku uruchamiania programów diagnostycznych i samoładujących się, działających pod kontrolą systemu DOS lub innych systemów operacyjnych pozbawionych obsługi standardu USB, można było korzystać z klawiatury USB.
Należy zauważyć, że jeśli funkcja Legacy USB Suport zostanie włączona, nie powinno się jednocześnie używać klawiatury lub myszy USB i PS/2 (nie można używać klawiatury PS/2 i myszy USB lub klawiatury USB i myszy PS/2). Należy również mieć świadomość, że funkcja ta dotyczy tylko klawiatury i myszy. Nie zadziała w przypadku koncentratorów lub innych urządzeń USB. Aby tego typu urządzenia mogły być używane, konieczne jest zainstalowanie systemu operacyjnego obsługującego urządzenia USB i dysponującego odpowiednimi sterownikami.
Menu Fan Control Configuration
Większość komputerów wyposażonych jest w co najmniej jeden wentylator, którego zadaniem jest obniżenie temperatury panującej w obudowie komputera. W tabeli 5.25 przedstawiono ustawienia menu Fan Control Configuration, dostępnego w BlOS-ie typowych nowszych modeli płyt głównych wysoko wydajnych komputerów PC.
Tabela 5.25. Standardowe menu Fan Control Configuration*
Ustawienie |
Opcje |
Opis |
Fan Control |
Enabled (domyślnie) Disabled |
Włącza i wyłącza sterownie wentylatorami. |
Lowest Fan Speed |
Slow (domyślnie) Off |
Służy do określenia sposobu działania wentylatorów, gdy w komputerze panuje umiarkowana temperatura. W trybie Slow wentylatory w takim przypadku będą obracać się z niewielką prędkością obrotową a w trybie Off— wyłączą się. |
Wprowadzone zmiany odniosą skutek dopiero po wyłączeniu zasilania komputera. Po wprowadzeniu i zapisaniu zmian należy wyłączyć komputer i wyjąć kabel zasilający z gniazdka. Komputer można włączyć dopiero po co najmniej 30 sekundach.
*Dotyczy BIOS-u płyty głównej Intel D875PBZ. Wykorzystane za zgodą firmy Intel Corporation.
Wiele nowych płyt głównych wyposażanych jest w układ monitorujący temperaturę, napięcia oraz prędkości obrotowe wentylatorów. Mierzone parametry można odczytać na ekranie Hardware Monitoring programu BIOS Setup. Płytom tym towarzyszy zazwyczaj program pozwalający na wygodniejsze odczytywanie wartości monitorowanych parametrów, działający w systemie Windows. W tabeli 5.26 przedstawiono parametry dostępne ma ekranie Hardware Monitoring.
Tabela 5.26. Parametry dostępne na ekranie Hardware Monitoring*
Parametr |
Opis |
Processor Zone Temperaturę |
Informuje o temperaturze panującej w pobliżu procesora. Wartość temperatury podawana jest w stopniach Celsjusza i Farenheita. |
System Zone I Temperaturę |
Informuje o temperaturze panującej w strefie Zone I. Wartość temperatury podawana jest w stopniach Celsjusza i Farenheita. |
System Zone 2 Temperaturę |
Informuje o temperaturze panującej w strefie Zone 2. Wartość temperatury podawana jest w stopniach Celsjusza i Farenheita. |
Processor Fan Speed |
Informuje o prędkości obrotowej wentylatora procesora. Prędkość wyrażona jest w liczbie obrotów na minutę (RPM). |
Rear Fan Speed |
Informuje o prędkości obrotowej wentylatora zainstalowanego w tylnej części obudowy. Prędkość wyrażona jest w liczbie obrotów na minutę (RPM). |
Front Fan Speed |
Informuje o prędkości obrotowej wentylatora zainstalowanego w przedniej części obudowy. Prędkość wyrażona jest w liczbie obrotów na minutę (RPM). |
Voltage Regulator Fan Speed |
Informuje o prędkości obrotowej wentylatora regulatora napięcia. Prędkość wyrażona jest w liczbie obrotów na minutę (RPM). |
+ L5V in |
Informuje o aktualnej wartości napięcia o nominalnej wartości +1,5 V. |
Vccp |
Informuje o aktualnej wartości napięcia rdzenia procesora. |
+3.3Vm |
Informuje o aktualnej wartości napięcia o nominalnej wartości +3,3 V. |
+5Vm |
Informuje o aktualnej wartości napięcia o nominalnej wartości +5 V. |
+ 12Vin |
Informuje o aktualnej wartości napięcia o nominalnej wartości +12 V. |
*Dotyczy BIOS-u płyty głównej Intel D875PBZ. Wykorzystane za zgodąflrmy Intel Corporation.
Menu Resource Configuration lub PnP Configuration
W przypadku płyt głównych wyposażonych w choćby jedno gniazdo ISA należy za pomocą menu Resource Configuration lub PnP Configuration określić, które przerwania IRQ oraz adresy pamięci mają być dostępne dla urządzeń ISA. Nie trzeba tego robić w przypadku płyt głównych wyposażonych tylko w gniazda PCI lub PCI i AGP.
Menu Security
W większości BIOS-ów w ramach zabezpieczeń wykorzystywane są dwa hasła nazywane hasłem administratora i hasłem użytkownika. Hasła ułatwiają kontrolowanie dostępu do programu BIOS Setup i możliwości uruchamiania komputera. Hasło administratora nazywane jest również hasłem Setup, ponieważ kontroluje dostęp do programu BIOS Setup. Hasło użytkownika jest też określane mianem hasła systemowego, ponieważ ogranicza dostęp do komputera jako całości.
Po ustawieniu hasła administratora, przy próbie uruchomienia programu BIOS Setup zostanie wyświetlone pole, w którym należy je wpisać. Jeśli wprowadzone hasło jest prawidłowe, zostanie udzielony pełny dostęp do programu BIOS Setup, dający możliwość przeglądania i modyfikacji jego ustawień. Jeśli jednak hasło będzie niepoprawne lub nie zostanie podane, wtedy zakres dostępnych opcji programu, które można przeglądać i zmieniać, będzie ograniczony.
Po ustawieniu hasła użytkownika, w momencie rozpoczęcia inicjalizacji komputera zostanie wyświetlone pole, w którym należy podać hasło. Aby uruchomienie komputera było możliwe, konieczne jest wprowadzenie prawidłowego hasła. Należy zauważyć, że jeśli zostanie ustawione hasło administratora, wtedy w trakcie inicjalizacji komputera nie pojawi się pole hasła. Wynika to stąd, że hasło to ogranicza dostęp tylko do programu BIOS Setup. W przypadku, gdy zostaną ustawione oba hasła, wtedy w momencie uruchamiania komputera zostanie wyświetlone pole, do którego w celu kontynuowania procesu inicjalizacji należy wprowadzić jedno z haseł. W większości systemów hasło może mieć długość maksymalnie siedmiu lub ośmiu znaków.
Powinieneś pamiętać, że jeśli zapomnisz hasła w większości komputerów na płycie głównej znajduje się zworka, która umożliwia usunięcie wszystkich ustawionych haseł. Oznacza to, że w tego typu komputerach dla zabezpieczenia samych haseł konieczne jest również uniemożliwienie użytkownikom zdjęcia obudowy i uzyskania dostępu do zworki usuwającej hasła. Ze względów bezpieczeństwa często zworka nie jest w ogóle na płycie opisana, ale jej lokalizację można znaleźć w dokumentacji płyty lub komputera.
Jeśli znasz hasło i potrafisz uruchomić program BIOS Setup, to istnieje także możliwość jego usunięcia przy użyciu funkcji o nazwie Clear Password. Jeśli jednak taka funkcja jest niedostępna, wtedy można je usunąć poprzez wybranie funkcji Set Password, a następnie, po wyświetleniu odpowiednich żądań, naciśnięcie klawisza Enter (dla hasła pustego).
W tabeli 5.27 przedstawiono funkcje zabezpieczeń dostępne w większości programów BIOS Setup.
Tabela 5.27. Typowe ustawienia menu Security*
Ustawienie |
Opcje |
Opis |
Supertisor Password |
Brak opcji |
Informuje, czy zostało ustawione hasło administratora |
User Password |
Brak opcji |
Informuje, czy zostało ustawione hasło użytkownika. |
Set Supemisor Password' |
Brak opcji |
Pozwala ustawić hasło administratora. |
User Access Levef |
Fuli (domyślnie) No Access View Only Limited |
Pozwala ustalić poziom dostępu użytkownika do programu BIOS Setup. Opcja Fuli umożliwia użytkownikowi zmianę wszystkich ustawień z wyjątkiem hasta administratora. Opcja No Access umożliwia użytkownikowi uruchomienie programu BIOS Setup. Opcja View Only pozwala tylko przeglądać ustawienia programu BIOS Setup, a opcja Limited pozwala użytkownikowi zmieniać niektóre ustawienia. |
Set User Password7 |
Brak opcji |
Pozwala ustawić hasło użytkownika. |
Clear User Password' |
OK (domyślnie) Cancel |
Usuwa hasto użytkownika. |
Chassis Intrusion |
Disabled (domyślnie) Log Log, notify once Log, notify until cleared |
Opcja Disabled wyłącza funkcję informowania o otwarciu obudowy. Opcja Log, notify once powoduje wstrzymanie inicjalizacji komputera w trakcie procedury POST do momentu naciśnięcia przez użytkownika przycisku F4, po czym następuje wyzerowanie znacznika otwarcia obudowy i odnotowanie wydarzenia w dzienniku zdarzeń. Opcja Log, notify until cleared powoduje zatrzymanie inicjalizacji komputera w trakcie procedury POST. Użytkownik musi wtedy uruchomić program BIOS Setup i w menu Security wybrać Clear Chassis Intrusion Status, co spowoduje wyzerowanie znacznika otwarcia obudowy. |
* Dotyczy BIOS-u płyty głównej Intel D875PBZ. Wykorzystane za zgodą firmy Intel Corporation.
1 Hasło może składać się z nie więcej niż siedmiu znaków alfanumerycznych z zakresu: A-Z, a-z, 1-9.
8 Pozycja dostępna tylko w przypadku zdefiniowania hasła administratora.
3 Pozycja dostępna tylko w przypadku zdefiniowania hasła użytkownika.
Aby usunąć hasło zapisane na płycie głównej firmy Intel, należy zmienić położenie zworki konfiguracyjnej, przejść do menu Maintenance programu BIOS Setup, a następnie włączyć funkcję Clear Password. Jeśli nie wiesz dokładnie, w jaki sposób usunąć hasło i nie masz dostępu do dokumentacji płyty, możesz wyjąć na około 15 minut baterię, co spowoduje wymazanie zawartości pamięci CMOS RAM. Tak długi czas może być wymagany w niektórych systemach wyposażonych w kondensatory utrzymujące ładunek elektryczny. Należy zauważyć, że przy okazji zostaną usunięte wszystkie inne ustawienia BIOS-u łącznie z parametrami dysku twardego, dlatego też przed wykonaniem tej operacji należy sporządzić ich kopię.
Menu Power Management
Zarządzanie energią określa możliwości systemu związane z automatycznym przełączaniem w tryb oszczędzania energii po stwierdzeniu braku aktywności. Można wyróżnić dwie główne klasy funkcji zarządzających energią. Pierwszą jest oryginalny standard APM (ang. Advanced Power Management) obsługiwany przez większość systemów począwszy od modeli wyposażonych w procesory 386 i 486. Druga klasa określona przez standard ACPI (ang. Advanced Configuration and Power Interface) jest znacznie nowsza. Po opracowaniu po raz pierwszy pojawiła się w komputerach wyprodukowanych w 1998 roku. Większość systemów sprzedanych od tego czasu jest wyposażona w bardziej zaawansowany standard zarządzania energią ACPI. W przypadku standardu APM za większość zadań związanych z zarządzaniem energią odpowiadało samo urządzenie, natomiast system operacyjny lub inne aplikacje miały w tym znikomy udział. Standard ACPI odwraca całą sytuację i zadanie zarządzania energią przekazuje do systemu operacyjnego i BIOS-u. Dzięki temu zarządzanie energią jest łatwiejsze i bardziej scentralizowane, a aplikacje uzyskują dostęp do oferowanych funkcji.
W tabelach 5.28 i 5.29 zawarto typowe ustawienia związane z zarządzaniem energią, spotykane w BlOS-ie większości płyt głównych.
Tabela 5.28. Typowe ustawienia menu Power Management*
Ustawienie |
Opcje |
Opis |
ACPI |
Brak opcji |
Wybór podmenu funkcji zarządzania energią ACPI. |
After Power Failure |
Last State (domyślnie) StayOff Power On |
Pozwala określić tryb pracy, który zostanie użyty w przypadku zaniku napięcia zasilania. Opcja Last State pozwala przywrócić tryb pracy komputera, który był aktywny przed zanikiem napięcia zasilania. Opcja Stay Off do momentu wciśnięcia przycisku zasilania blokuje dopływ prądu do komputera. Opcja Power On powoduje uruchomienie komputera, kiedy przywrócone zostanie jego zasilanie. |
Wake on PCI PME |
Slay Off (domyślnie) Power On |
Określa zachowanie wyłączonego komputera w przypadku wystąpienia zdarzenia zasilania związanego z magistralą PCI. |
* Dotyczy BIOS-u płyty głównej Intel D875PBZ. Wykorzystane za zgodąfirmy Intel Corporation. Tabela 5.29. Typowe ustawienia podmenu ACPI* |
||
Ustawienie |
Opcje |
Opis |
ACPI Suspend State |
S3 State (domyślnie) SI State |
W stanie S3 komputer pobiera mniej energii, ale niektóre sterowniki nie obsługują tego stanu. Stan SI jest bezpieczniejszy, choć charakteryzuje się większym poborem energii. |
Wake on LAN from S5 |
Stay O/Tfdomyślnie) Power On |
Określa zachowanie się wyłączonego komputera w przypadku wystąpienia zdarzenia LAN Wake up. |
* Dotyczy BIOS-u płyty głównej Intel D875PBZ. Wykorzystane za zgodąfirmy Intel Corporation.
Po przejściu w tryb Standby, dzięki wyłączeniu dysków twardych i zmniejszeniu poboru mocy monitora (zgodnego ze standardem Video Electronics Standard Organization i Display Power Management Signaling), lub nawet jego wyłączeniu, następuje znacząca redukcja zużycia energii. System pracujący w tym trybie nadal może odpowiadać na zewnętrzne przerwania pochodzące z takich urządzeń jak klawiatura, mysz, fak-smodem lub karta sieciowa. Przykładowo naciśnięcie klawisza klawiatury lub poruszenie myszy spowoduje wyjście komputera z trybu Standby i natychmiastowe dostarczenie zasilania do monitora.
W większości komputerów system operacyjny sprawuje nadzór nad prawie wszystkimi ustawieniami związanymi z zarządzaniem energią, a w niektórych przypadkach może nawet użyć innych ustawień niż zapisane w BlOS-ie. Jest tak zwłaszcza wtedy, gdy zarówno system operacyjny, jak i płyta główna obsługują standard ACPI.
Menu Boot (kolejność użycia urządzeń inicjalizujących)
Menu Boot służy do konfiguracji ustawień związanych z urządzeniami inicjalizującymi. Jeśli używany system operacyjny, np. Windows XP, posiada dysk CD-ROM umożliwiający załadowanie systemu, wtedy w celu ustawienia napędu CD-ROM jako podstawowego urządzenia inicjalizującego należy posłużyć się menu Boot. W tabeli 5.30 zawarto funkcje i ustawienia dostępne w typowej płycie głównej.
Tabela 5.30. Typowe ustawienia menu Boot
Ustawienie |
Opcje |
Opis |
Silent Boot |
Enabled (domyślnie) Disabled |
Po ustawieniu wartości Disabled wyświetlane są standardowe komunikaty POST, natomiast po ustawieniu wartości Enabled pojawia się informacja graficzna o producencie OEM. |
Add-On ROM Display Mode |
Enabled (domyślnie) Disabled |
Włącza i wyłącza pojawianie się informacji towarzyszących inicjalizacji układów ROM kart rozszerzeń. |
Intel Rapid BIOS Boot |
Enabled (domyślnie) Disabled |
Opcja pozwala na inicjalizację komputera bez wykonywania określonych elementów procedury POST. |
PXE Boot to LAN |
Disabled (domyślnie) Enabled |
Włącza i wyłącza możliwość uruchomienia systemu operacyjnego poprzez sieć LAN. Po wyborze opcji Enabled należy komputer uruchomić ponownie, co spowoduje pojawienie się w menu Boot Device agenta Intel Boot Agent. |
USB Boot |
Enabled (domyślnie) Disabled |
Włącza i wyłącza możliwość uruchomienia systemu operacyjnego z dysku dołączonego do portu USB. |
Boot Device Priority |
Brak opcji |
Otwiera podmenu, w którym można ustalić kolejność prób uruchomienia systemu operacyjnego z dostępnych urządzeń różnego rodzaju. |
Hard Disk Drives" |
Brak opcji |
Otwiera podmenu, w którym można ustalić kolejność prób uruchomienia systemu operacyjnego z dostępnych dysków twardych. |
Removable Devices' |
Brak opcji |
Otwiera podmenu, w którym można ustalić kolejność prób uruchomienia systemu operacyjnego z dostępnych urządzeń przenośnych. |
A TAPI CD-ROM Drives' |
Brak opcji |
Otwiera podmenu, w którym można ustalić kolejność prób uruchomienia systemu operacyjnego z dostępnych stacji ATAPI CD-ROM. |
*Dotyczy BIOS-u płyty głównej Intel D875PBZ. Wykorzystane za zgodąfirmy Intel Corporation.
Przy użyciu menu Boot można określić, z których urządzeń może zostać załadowany system i w jakiej kolejności będą one sprawdzane. Za pośrednictwem tego menu można również przejść do menu Hard Drive i Re-movable Devices, które pozwalają ustalić położenie tego typu urządzeń na liście urządzeń inicjalizujących. Dla przykładu, można ustawić dyski twarde jako podstawowe urządzenia inicjalizujące, a następnie przy użyciu menu Hard Drive zdecydować, że system najpierw może być załadowany z dysku dodatkowego, a dopiero potem z dysku podstawowego. Zazwyczaj w przypadku komputera z dwoma dyskami twardymi domyślnie zdefiniowana jest odwrotna kolejność.
Niektóre nowsze systemy umożliwiają również ładowanie systemu przy użyciu zewnętrznych urządzeń USB, takich jak napędy Zip lub LS-120 SuperDisk.
Menu Boot Device Priority
Menu to służy do ustalania kolejności, w jakiej podejmowane będą próby uruchomienia systemu operacyjnego z poszczególnych urządzeń rozruchowych. W tabeli 5.31 przedstawiono funkcje i ustawienia dostępne w typowej płycie głównej.
Tabela 5.31. Typowe ustawienia menu Boot Device Priority*
Ustawienie |
Opcje |
Opis |
Ist Boot Device |
Removable (Floppy) |
Określa kolejność sprawdzania różnego rodzaju urządzeń rozruchowych. |
2nd Boot Device |
Hard Drive |
Domyślnie sprawdzane są po kolei: 1. Stacja dyskietek, 2. Dysk twardy, |
3rd Boot Device |
ATAPI CD-ROM |
3. Stacja CD-ROM ATAPI, 4. (Pozycja nieaktywna). |
4th Boot Device |
Disabled |
|
* Dotyczy BIOS-u płyty głównej Intel D875PBZ. Wykorzystane za zgodąfirmy Intel Corporation.
Jeżeli w systemie zainstalowanych jest więcej niż cztery rodzaje urządzeń rozruchowych, one leż znajdą się w tym menu.
Podmenu Hard Disk Drives płyty głównej D875PBZ umożliwia wybór dysku startowego z listy 12 dysków zainstalowanych w komputerze. W starszych płytach głównych można wybierać między dyskami master i slave kontrolerów podstawowego i drugorzędnego (w sumie cztery dyski). Ta funkcja BIOS umożliwia zainstalowanie w komputerze więcej niż jednego dysku rozruchowego i wybór z menu BIOS-u dysku, z którego zostanie uruchomiony system operacyjny. Nie ma w takim przypadku potrzeby użycia osobnego programu — menedżera rozruchu. W przypadku konieczności uruchamiania różnych systemów operacyjnych z różnych dysków może się to okazać bardzo przydatne.
Podmenu Removable Devices oraz ATAPI CD-ROMDrives umożliwiają wybór urządzenia startowego spośród czterech urządzeń każdego z tych rodzajów, co pozwala na uruchomienie systemu operacyjnego z wybranego urządzenia przenośnego lub ze stacji ATAPI. W starszych płytach głównych opcje te mogły być włączone do menu sekwencji uruchamiania. Niektóre płyty główne pozwalająjako urządzenie startowe wybrać napęd Zip lub dysk SCSI.'
Menu Exit
Menu Exit pozwala na zamknięcie programu BIOS Setup, zapisanie zmian oraz załadowanie i zatwierdzenie wartości domyślnych.
W tabeli 5.32 przedstawiono typowe ustawienia dostępne w BlOS-ie większości płyt głównych.
Tabela 5.32. Typowe ustawienia menu Exit*
Ustawienie |
Opis |
Exit Saving Changes |
Zamyka program i zapisuje w pamięci CMOS RAM dokonane zmiany. |
Exit Discarding Changes |
Zamyka program BIOS Setup bez zapisywania zmian. |
Load Optimal Defaults |
Ładuje wartości domyślne ustawień programu BIOS Setup zdefiniowane przez producenta płyty głównej. |
Load Custom Defaults |
Ładuje wartości domyślne ustawień programu BIOS Setup zdefiniowane przez użytkownika. |
Save Custom Defaults |
Zapisuje aktualne wartości jako domyślne ustawienia użytkownika. Zazwyczaj BIOS odczytuje wartości ustawień programu BIOS Setup z pamięci CMOS RAM. Jeśli pamięć zostanie uszkodzona, wtedy BIOS wczytuje ustawienia użytkownika. Jeśli nie zostały zdefiniowane ustawienia użytkownika, BIOS wczyta ustawienia domyślne producenta. |
Discard Changes |
Wycofuje dokonane zmiany bez zamykania programu BIOS Setup. Zostaną zastosowane wartości ustawień, które były aktywne w chwili uruchomienia komputera. |
*Dotyczy BIOS-u płyty głównej Intel D875PBZ. Wykorzystane za zgodąfirmy Intel Corporation.
Po ustawieniu optymalnych wartości opcji programu BIOS Setup można je zapisać przy użyciu opcji Save Custom Defaults. Dzięki temu. w przypadku utraty lub uszkodzenia ustawień BIOS-u, istnieje możliwość szybkiego ich przywrócenia. Wszystkie ustawienia BIOS-u są przechowywane w pamięci CMOS RAM zasilanej z baterii znajdującej się na płycie głównej.
Dodatkowe opcje programu BIOS Setup
Niektóre systemy oferują w programie BIOS Setup dodatkowe opcje, które mogą nie być dostępne we wszystkich wersjach BIOS-u. W tabeli 5.33 zebrano najpopularniejsze z tych, z którymi można się spotkać.
Tabela 5.33. Dodatkowe opcje programu BIOS Setup
Opcja |
Opis |
||
CPU Hyper-lhreading |
Pozycja pojawia się w przypadku płyt głównych zaprojektowanych dla procesorów Intel Pentium 4 3,06 GHz i szybszych wyposażonych w technologię HT po zainstalowaniu w nich takiego procesora. Po uaktywnieniu technologia HT poprawia wydajność jednocześnie działających aplikacji |
||
PC Health (menu) |
Służy do uzyskania takich informacji, jak napięcie rdzenia procesora, aktualne wartości napięć o nominalnych wartościach 3.3 V, 5 V i 12 V. temperatura procesora i lemperatura panująca wewnątrz obudowy komputera oraz prędkości obrotowe wentylatorów. Wykorzystując te informacje, programy monitorujące mogą ostrzegać użytkownika lub nawet automatycznie wyłączać komputer. |
||
Serial A TA Controller |
Po włączeniu umożliwia użycie dysków Serial ATA (SATA). |
||
IEEE I394a Port |
Po włączeniu umożliwia podłączanie do portów IEEE I394a kamer cyfrowych, zewnętrznych dysków twardych i innych urządzeń wyposażonych w interfejs IEEE 1394a. |
||
ATA RAID Controller |
Po włączeniu można używać dodatkowych portów ATA przeznaczonych dla macierzy RAID lub dodatkowych dysków ATA. |
||
Virus Warning |
Po włączeniu opcji przy próbie modyfikacji przez program sektora ładującego lub tablicy partycji dysku twardego pojawi się ostrzeżenie. Jeśli zostanie ono wyświetlone w trakcie normalnej pracy komputera, wtedy w celu sprawdzenia, czy nie pojawił się wirus, należy uruchomić program antywirusowy. Opcja chroni tylko główny rekord ładujący MBR (ang. master boot record), a nie cały dysk twardy. Należy zauważyć, że programy takie jak FDISK, które zazwyczaj modyfikują rekord MBR, mogą spowodować wygenerowanie ostrzeżenia o wirusie. |
||
CPU Internat Cache/ External Cache |
Opcja pozwala na wyłączenie pamięci podręcznej procesora LI (wewnętrznej) lub L2 (zewnętrznej). Często jest stosowana podczas testowania pamięci. W takim przypadku pamięć podręczna powinna być wyłączona. W przypadku normalnej pracy obie pamięci powinny być aktywne. |
||
Quick Power On Se 1/Test |
Po włączeniu opcja pozwala zmniejszyć czas wymagany do wykonania procedury POST. Skrócona wersja procedury POST pomija kilka kroków takich jak test pamięci. Jeśli masz zaufanie do systemu, możesz uaktywnić skróconą procedurę POST, ale w większości przypadków sugeruję pozostawić opcję wyłączoną i zezwolić na wykonywanie jej pełnej wersji. |
||
Swap Floppy Drive |
Pole jest aktywne tylko w przypadku komputerów wyposażonych w dwie stacje dyskietek. Ustawienie wartości Enabled spowoduje przypisanie fizycznego napędu B: do napędu logicznego A:, natomiast napędu fizycznego A: do napędu logicznego B:. |
||
Boot Up Floppy Seek |
Po włączeniu BIOS testuje stację dyskietek w celu określenia, czy posiada 40 czy 80 ścieżek. 40 ścieżek zawierają tylko dyskietki o pojemności 360 KB, natomiast 80 ścieżkami dysponują dyskietki o pojemności 720 KB oraz 1,2 i 1,44 MB. Ze względu na to, że niewiele nowszych komputerów jest wyposażonych w 40-ścieżkowe stacje dyskietek, dla zaoszczędzenia czasu można opcję Boot Up Floppy Seek wyłączyć. |
||
Boot Up System Speed |
Aby uruchomić komputer z procesorem pracującym ze standardową częstotliwością należy ustawić wartość High, natomiast w celu ustawienia symulowanej częstotliwości procesora wynoszącej 8 MHz należy ustawić wartość Low. W przeszłości częstotliwość 8 MHz często była wykorzystywana w przypadku pewnych programów zawierających blokadę uniemożliwiającą ich kopiowanie, która zawodziła, jeśli system był uruchamiany z normalną szybkością. Aktualnie opcja nie jest wykorzystywana. |
||
Gate A20 Option |
Opcja Gale A20 Option odnosi się do sposobu, w jaki system adresuje pamięć położoną powyżej 1 MB (pamięć rozszerzona). Po ustawieniu wartości Fast kontrolę nad bramką A20 przejmuje chipset płyty głównej. Po ustawieniu wartości Normal za kontrolę bramki A20 odpowiada końcówka kontrolera klawiatury. Ustawienie wartości Fast zwiększa wydajność systemu, co jest szczególnie widoczne w przypadku systemów operacyjnych trybu chronionego, takich jak Windows 9x i Windows 2000/XP. |
||
Typematic Rate Setting |
Jeśli opcja jest wyłączoną ustawienia Typematic Rate i Typematic Delay nie mają znaczenia. Częstotliwość powtarzania znaków jest określana przez systemowy kontroler klawiatury. Po włączeniu opcji można ustawić wartości opcji Typematic Rate i Typematic Delay. |
||
Typematic Rate (Chars/Sec) |
Po uaktywnieniu opcji Typematic Rate Setting możliwe jest wybranie jednej z wartości określającej liczbę znaków wyświetlanych podczas trzymania wciśniętego klawisza — 6, 8, 10, 12, 15, 20, 24 lub 30 znaków na sekundę. |
||
Typematic Delay (Msec) |
Po uaktywnieniu opcji Typematic Rate Setting możliwe jest wybranie jednej z wartości określającej, po jakim czasie od przytrzymania wciśniętego klawisza zostaną wyświetlone powtarzające się znaki — 250, 500, 750 lub 1000 milisekund. |
||
Security Option |
Jeśli zostanie ustawione hasło, opcja pozwala ustalić, czyjego wpisanie będzie wymagane przy każdym uruchomieniu komputera czy tylko przy próbie otwarcia programu BIOS Setup. |
||
PS/2 Mouse Function Control |
Jeśli płyta główna komputera dysponuje portem PS/2 myszy, a urządzenie wskazujące zostanie podłączone do portu USB lub szeregowego, wtedy należy ustawić wartość Disabled. |
||
HDD SMART Capability |
SMART. (ang. Self-Monitoring Analysis and Reporting Technology) jest funkcją w którą są wyposażone niektóre dyski twarde ATA, umożliwiającą im wykonanie we własnym zakresie diagnostyki. Zastosowanie opcji jest zalecane w sytuacji, gdy wykorzystuje się oprogramowanie diagnostyczne monitorujące dyski twarde, obsługujące funkcję SMART i ostrzegające o możliwych awariach. |
||
Report No FDD For WIN 95 |
Jeśli w komputerze nie ma stacji dyskietek, wtedy w celu zwolnienia przerwania IRQ6 i utrzymania zgodności z certyfikatem logo Windows 95 należy ustawić wartość Yes. W oknie Integrated Peripherals w polu Onboard FDC Controller należy ustawić wartość Disabled. |
||
ROM Shadowing |
Układy ROM zazwyczaj są bardzo wolne (czas dostępu około 150 ns) i jednocześnie pozwalają na odczyt tylko 8 bitów, natomiast pamięć RAM charakteryzuje się czasem dostępu wynoszącym 60, a nawet 10 lub mniej nanosekund i odczytywana jest w 32-, a nawet 64-bitowych porcjach. Cieniowanie (ang. shadowing) polega na kopiowaniu kodu BIOS-u z pamięci ROM do pamięci RAM, dzięki czemu procesor może wczytywać sterowniki BIOS-u z większą szybkością oferowaną przez pamięć RAM. |
||
Operating Freąuency |
Niektóre płyty główne w celu ustawienia częstotliwości magistrali FSB (ang. front-side bus) oraz wartości mnożnika częstotliwości procesora umożliwiają zastosowanie programu BIOS Setup, zamiast typowych przełączników DIP lub zworek. Aby uzyskać możliwość ręcznej modyfikacji opcji CPU Freąuency i CPU Clock Multiplier, należy opcję uaktywnić. |
||
CPU Freąuency |
Opcja daje możliwość ustawienia wyższych częstotliwości magistrali FSB procesora od wartości domyślnych (66, 100, 133 MHz), atym samym możliwe jest jego przetaktowywanie. |
||
CPU Clock Multiplier |
Jeśli w procesorze nie zablokowano mnożnika, wtedy dzięki tej opcji istnieje możliwość ustawienia innych jego wartości niż tylko domyślne. Najnowsze modele procesorów firmy Intel nie obsługują niestandardowych ustawień mnożnika, natomiast procesory Athlon i Duron firmy AMD przy użyciu tej opcji mogą być przetaktowywane. |
||
CPU Vcore Setting |
Opcja umożliwia zmianę wartości napięcia zasilającego rdzeń procesora. Operacja może poprawić stabilność przetaktowanego procesora, a nawet umożliwić instalację procesora, który nie jest obsługiwany przez domyślne wartości napięć określone ustawieniem Automatic. |
BIOS Pług and Play
Swego czasu instalacja i konfiguracja urządzeń komputera nie była prostą operacją. W trakcie instalacji nowej karty użytkownik byt odpowiedzialny za jej skonfigurowanie, co wiązało się z przydzieleniem jej przerwania IRQ, portów I/O oraz kanału DMA. W celu ustawienia wymienionych zasobów konieczna była zmiana położenia zworek lub przełączników znajdujących się na kartach. Poza tym należało dokładnie wiedzieć, jakie zasoby są już wykorzystane, tak aby możliwe było zastosowanie wartości, które nie spowodują konfliktu z innymi urządzeniami już zainstalowanymi w komputerze. W przypadku wystąpienia konfliktu system operacyjny mógł się nie załadować lub mogły przestać działać urządzenia korzystające z tego samego zasobu.
Technologia PnP (Pług and Play) ma na celu zapobieganie występowaniu problemów związanych z konfiguracją oraz umożliwienie użytkownikom łatwej rozbudowy komputera PC. W przypadku obsługi standardu PnP po włożeniu do komputera przez użytkownika nowej karty następuje automatyczna jej konfiguracja umożliwiająca prawidłowe funkcjonowanie.
Technologia PnP jest złożona z trzech podstawowych elementów:
BIOS-u Pług and Play,
danych konfiguracyjnych ESCD (ang. Extended System Configuration Data),
systemu operacyjnego obsługującego standard Pług and Play.
W trakcie inicjalizacji komputera BIOS PnP rozpoczyna konfigurację kart obsługujących funkcje PnP. Jeśli karty zostały zainstalowane wcześniej, wtedy BIOS odczytuje dane ESCD. a następnie aktywuje karty i inicjalizuje komputer. W trakcie instalacji nowych kart PnP w celu określenia dostępnych zasobów systemowych i ich przydzielenia BIOS doczytuje dane ESCD. Jeśli BIOS znajdzie wolne zasoby, dokonuje konfiguracji karty. Jeśli jednak nie uda mu się odszukać wystarczającej ilości nieprzydzielonych zasobów, wtedy proces konfiguracji jest kończony przez procedury Pług and Play systemu operacyjnego. Podczas konfiguracji zawartość odpowiednich rejestrów znajdujących się w układzie Flash BIOS karty oraz zawartość ESCD jest aktualizowana o nowe dane.
Numery identyfikacyjne urządzeń PnP
Wszystkie urządzenia Pług and Play muszą dysponować odpowiednim numerem identyfikacyjnym, dzięki któremu system operacyjny będzie je w stanie rozróżnić i załadować właściwe dla nich sterowniki. Producenci urządzeń są odpowiedzialni za przydzielenie każdemu produktowi numeru identyfikacyjnego PnP i zakodowania go w nim.
Każda firma zajmująca się produkcją urządzeń musi uzyskać odpowiedni niepowtarzalny trzyznakowy numer identyfikacyjny. Następnie jest zobligowana do przydzielenia niepowtarzalnego numeru produktu dla każdego pojedynczego jego modelu. Po przydzieleniu modelowi produktu numeru identyfikacyjnego nie może on być nadawany innym modelom identycznego produktu wytwarzanego przez tę samą firmę (posiadającą taki sam numer identyfikacyjny).
ACPI
ACPI (ang. Advanced Configuration and Power Interface) jest standardową metodą związaną ze zintegrowanym zarządzaniem energią, jak również funkcjami służącymi do konfiguracji elementów systemu takich jak sprzęt, system operacyjny i aplikacje. W porównaniu z poprzednim standardem APM (ang. Advanced Power Management), obsługującym głównie procesor, dysk twardy i monitor, technologia ACPI została znacznie ulepszona. Standard ACPI poza tym, że zarządza zużyciem energii jest również odpowiedzialny za konfigurację systemowych urządzeń Pług and Play. W przypadku zastosowania standardu ACPI, zadania związane z konfiguracją systemu Pług and Play oraz zarządzaniem energią nie sąjuż wykonywane przy użyciu programu BIOS Setup. Zamiast niego pełną ich obsługą zajął się system operacyjny.
Standard ACPI umożliwia systemowi automatyczne włączanie i wyłączanie wewnętrznych komponentów takich jak napędy CD-ROM, karty sieciowe, dyski twarde i drukarki oraz zewnętrznych urządzeń do niego podłączonych, do których należy zaliczyć magnetowidy, telewizory, telefony i sprzęt stereofoniczny. Technologia ACPI pozwala również komponentom komputera na jego włączenie lub uaktywnienie. Dla przykładu, umieszczenie w magnetowidzie kasety powoduje włączenie komputera, który z kolei może uaktywnić telewizor wielkoekranowy wraz ze sprzętem stereofonicznym wysokiej jakości.
Standard ACPI daje projektantom systemów możliwość implementowania wielu funkcji związanych z zarządzaniem energią wykorzystywanych przez różne modele urządzeń przy użyciu tego samego sterownika systemu operacyjnego. ACPI posługuje się również strukturami danych BIOS-u PnP oraz przejmuje kontrolę nad interfejsem Pług and Play, dzięki czemu oferuje interfejs niezależny od systemu operacyjnego, umożliwiający konfigurację i nadzór. Technologia ACPI jest obsługiwana przez systemy Windows 98/Me, Windows 2000/XP i jego nowsze wersje.
W trakcie inicjalizacji komputera systemy Windows zgodne ze standardem ACPI wykonują kilka procedur kontrolnych mających na celu sprawdzenie, czy zainstalowane urządzenia i BIOS obsługują ACPI. Jeśli okaże się. że standard ACPI nie jest używany lub działa nieprawidłowo, wtedy zazwyczaj system powraca do technologii APM. Pomimo to, wystąpienie problemów może spowodować zawieszenie komputera, co objawia się w postaci czerwonego lub niebieskiego ekranu zawierającego kod błędu ACPI.
Ekrany w kolorze czerwonym wskazują na problem, który prawdopodobnie jest związany ze sprzętem lub BlOS-em, natomiast ekrany niebieskie sygnalizują problem najczęściej powiązany z oprogramowaniem lub bliżej nieokreśloną przyczyną. W tabeli 5.34 zostały omówione kody błędów ACPI.
Tabela 5.34. Kody błędów ACPI
Kod błędu |
Opis |
lxxx - |
Wskazuje na błąd, który nastąpił w trakcie ładowania sterownika ACPI i zazwyczaj oznacza, że sterownik nie może przeczytać jednej lub kilku tabel ACPI. |
2xxx - |
Informuje o błędzie interpretera kodu maszynowego ACPI (AML — ACPI machinę language). |
3 xxx - |
Wskazuje na błąd. który wystąpił w procedurze obsługi zdarzeń sterownika ACPI. |
4xxx - |
Informuje o błędach związanych z zarządzaniem temperaturą. |
5 xxx - |
Informuje o błędach związanych z zarządzaniem energią zużywaną przez urządzenia. |
Prawie wszystkie wymienione błędy są wynikiem częściowej lub niekompletnej implementacji standardu ACPI, jak również rezultatem braku zgodności BIOS-u lub sterowników urządzeń. Jeśli będziesz miał do czynienia z tego typu problemami, powinieneś wtedy w celu uzyskania aktualnej wersji BIOS-u lub sterowników skontaktować się z producentem płyty głównej lub urządzenia.
Inicjalizacja urządzenia PnP
W trakcie wykonywania procedury testowej POST jednym z zadań BIOS-u Pług and Play jest wydzielenie i włączenie wszystkich kart zgodnych z funkcją PnP, a następnie przydzielenie im poprawnego numeru CSN (ang. Card Select Number). Po przypisaniu numeru, BIOS systemu może przydzielić kartom wymagane zasoby. BIOS jest odpowiedzialny tylko za konfigurację urządzeń biorących udział w inicjalizacji systemu. Wszystkie pozostałe urządzenia Pług and Play mogą być konfigurowane dynamicznie przez system operacyjny:
Poniżej przedstawiono standardowy zestaw operacji, które przeprowadza BIOS PnP w trakcie wykonywania procedury POST:
Wyłącza wszystkie konfigurowalne urządzenia.
Identyfikuje urządzenia Pług and Play.
Tworzy mapę zasobów przydzielonych urządzeniom systemowym statycznie.
Uaktywnia urządzenia wejściowe i wyjściowe.
Przeprowadza skanowanie zawartości pamięci ISA ROM.
Konfiguruje urządzenie inicjalizujące system.
Włącza urządzenia PnP ISA oraz inne konfigurowalne komponenty.
Uruchamia procedurę ładującą system operacyjny.
Jeśli załadowany system operacyjny obsługuje technologię Pług and Play, wtedy przejmuje on kontrolę nad zarządzaniem zasobami komputera. Wszystkie dotąd nie skonfigurowane urządzenia PnP są konfigurowane przez odpowiednie aplikacje systemowe lub sam system operacyjny.
W tym momencie system operacyjny przejmuje kontrolę nad zasobami systemowymi zgodnymi z technologią Pług and Play. Przy użyciu Menedżera urządzeń systemu operacyjnego Windows użytkownik może kontrolować dowolne urządzenie PnP.
Komunikaty błędów BIOS-u
Przy tak zwanym ..zimnym" uruchomieniu komputera PC wykonywana jest procedura testująca POST. Jeśli w jej trakcie zostaną wykryte błędy, to zazwyczaj na ekranie pojawi się komunikat. Błędy, które pojawią się na samym początku procedury POST, mogą nawet uprzedzić moment inicjalizacji karty graficznej. Tego typu błędy nie mogą zostać wyświetlone, dlatego też w celu przekazania komunikatów błędów są w systemie wykorzystywane dwie alternatywne metody. Pierwsza polega na generowaniu przy użyciu głośnika sygnałów dźwiękowych, które ułożone w określoną sekwencję sygnalizują typ błędu.
► ► Listę sygnałów dźwiękowych znajdziesz w rozdziale 24. — „Diagnostyka, testowanie i konserwacja komputera PC" — znajdującym się na stronie 1331.
Druga metoda polega na wysyłaniu szesnastkowego kodu błędu do portu l/O o adresie 80h, którego odczyt jest możliwy dzięki zastosowaniu specjalnej karty instalowanej w jednym z gniazd magistrali. W momencie, gdy układ ROM BIOS przeprowadza procedurę testującą POST, w większości systemów jej wyniki są na bieżąco przekazywane do portu I/O o adresie 80h. Dzięki temu przekazane dane mogą być monitorowane przez specjalne karty diagnostyczne nazywane kartami POST (rysunek 5.11). Tego typu testy często są określane mianem testów fabrycznych (ang. manufacturing tests), ponieważ zostały opracowane z myślą o systemach testujących stosowanych na liniach montażowych pozbawionych monitora.
Rysunek 5.11.
Typowa karta POST wyposażona w dwucyfrowy wyświetlacz szesnastkowy (po lewej) oraz karta POST po zainstalowaniu (po prawej)
Karty POST dysponują dwucyfrowym wyświetlaczem szesnastkowym służącym do informowania o kodzie aktualnie wykonywanej procedury. Przed rozpoczęciem każdego testu szesnastkowy kod liczbowy jest wysyłany do portu i dopiero wtedy test jest uruchamiany. W przypadku, gdy test nie zostanie zakończony lub komputer „zawiesi się", szesnastkowy kod ostatniej wykonanej procedury testującej jest pokazany na wyświetlaczu karty.
Wiele testów komputerów, zwłaszcza wyposażonych w kartę graficzną EGA lub VGA, jest przeprowadzanych jeszcze przed jej uaktywnieniem. Z tego też powodu może pojawić się wiele problemów, które mogą doprowadzić do zawieszenia komputera, zanim zaistnieje możliwość wyświetlenia przy użyciu karty graficznej i monitora wygenerowanych kodów błędów. Ze względu na to, że nie wszystkie tego typu błędy w trakcie większości standardowych procedur diagnostycznych generują sygnały dźwiękowe, komputer z takim problemem jak uszkodzona pamięć w banku 0 będzie sprawiał wrażenie zupełnie „martwego". Dzięki zastosowaniu jednej z ogólnie dostępnych kart POST zidentyfikowanie problemu często staje się możliwe.
Zestaw kodów błędów jest całkowicie zależny od wersji BIOS-u. Wynika to stąd, że karta POST wyświetla tylko to. co jest do niej przesyłane. Niektóre wersje BIOS-u dysponują dokładniejszymi procedurami testującymi POST. dlatego też są w stanie generować więcej mówiące kody. Karty POST można nabyć w firmie JDR Microdevices lub u innych producentów. Dostępne są karty zarówno w wersji ISA, jak i PCI.
W przypadku prostych błędów, ale jednocześnie mających krytyczne znaczenie, o których komunikatu nie można jeszcze wyświetlić na ekranie monitora, większość BIOS-ów generuje kody dźwiękowe pomocne przy diagnozowaniu tego typu problemów. Kody dźwiękowe podobne są do kodów POST, z tym że zamiast użycia specjalnej karty ich odczyt polega na nasłuchiwaniu sygnałów z głośnika.
W dalszej części rozdziału zostaną szczegółowo omówione tekstowe komunikaty o błędach występujące we wszystkich najpopularniejszych wersji BIOS-u. Szczegółową listę sygnałów dźwiękowych można znaleźć w rozdziale 24. — „Diagnostyka, testowanie i konserwacja komputera PC".
Podstawowe tekstowe komunikaty o błędach generowane przez BIOS w trakcie inicjalizacji
Podczas uruchamiania komputera procedura inicjalizująca zapisana w układzie ROM BIOS płyty głównej odczytuje pierwszy fizyczny sektor każdego urządzenia startowego określony w trybie CHS przez cylinder 0, głowicę 0 i sektor 1, a w trybie LBA jako blok o adresie 0. Kod zapisany w tym sektorze jest ładowany do pamięci RAM, po czym następuje kontrola sygnatury umieszczonej w ostatnich dwóch jego bajtach, która powinna mieć wartość 55AAh. Jeżeli tak jest, kod układu ROM BIOS przyjmuje, że pierwszy sektor zawiera prawidłowy główny rekord ładujący (MBR) i przekazuje sterowanie załadowanemu kodowi.
Jeżeli w dwóch ostatnich bajtach znajduje się wartość różna od 55AAh. kod zapisany w układzie ROM BIOS próbuje odczytać pierwszy sektor fizyczny następnego urządzenia startowego. Procedura ta powtarzać się będzie dopóty, dopóki nie zostanie odnaleziony prawidłowy rekord MBR lub nie zostaną sprawdzone wszystkie urządzenia startowe. Jeżeli po sprawdzeniu wszystkich urządzeń zapisanych w sekwencji uruchamiania systemu operacyjnego ROM BIOS nie znajdzie prawidłowego rekordu MBR, wywoła przerwanie programowe 18h powodujące wyświetlenie na ekranie komunikatu o błędzie. Zawartość komunikatu zależy od producenta oraz wersji układu ROM BIOS. Komunikaty te zostaną szczegółowo opisane w kolejnych punktach.
Komunikaty ROM BIOS
informujące o niepowodzeniu inicjalizacji systemu operacyjnego (nieodnalezieniu poprawnego rekordu MBR)
W przypadku, gdy nie zostanie znaleziony prawidłowy rekord MBR lub urządzenie startowe, komputer z bardzo starym BlOS-em firmy IBM uruchomi niesławny interpreter języka BASIC:
The IBM Persona! Computer Basic Version Cl.10 Copyright IBM Corp 1981
62940 Bytes free
Ok
Interpreter BASIC w układach ROM firmy IBM
Zawartość układów ROM w większości komputerów PC jest podobna do zastosowanej w oryginalnych komputerach firmy IBM z jednym wyjątkiem, którym jest interpreter ROM BASIC (znany też jako Cassette BASIC). Dla niektórych użytkowników komputerów PC może okazać się to zaskakujące, ale oryginalny komputer IBM PC był wyposażony w gniazdo umieszczone w jego tylnej części, które służyło do podłączenia magnetofonu kasetowego. Jego zadanie polegało na odczytywaniu i zapisywaniu programów i danych znajdujących się na kasetach magnetofonowych. IBM zdecydował się na takie rozwiązanie, gdyż w magnetofony wyposażona było większość modeli ówczesnych komputerów biurkowych (w tym komputery firmy Apple), a ceny stacji dyskietek były jeszcze bardzo wysokie (dyski twarde nie były wtedy nawet brane pod uwagę). Jednak wkrótce ceny stacji dyskietek spadły, dlatego też w kolejnych komputerach firmy IBM nigdy juz nie zastosowano portu magnetofonowego. Nie znalazł się też w komputerach zgodnych z IBM PC, które właśnie zaczęły się pojawiać.
Oryginalny komputer IBM PC w podstawowej konfiguracji dysponował pamięcią RAM o pojemności tylko 16 KB i nie posiadał stacji dyskietek. W tamtym czasie większość użytkowników komputerów tworzyła swoje programy w języku BASIC lub uruchamiała programy stworzone w tym języku przez innych. Interpreter języka BASIC wbudowany do układu BIOS ROM. w który były wyposażone pierwsze komputery IBM mógł odczytywać programy z magnetofonu podłączonego do komputera i wykonywać je w 16 KB pamięci RAM.
Mimo że firma IBM zrezygnowała z portu magnetofonu kasetowego, stosowała układ ROM BIOS wyposażony w interpreter języka BASIC aż do początku lat 90. ubiegłego wieku! Porównuję to czasami z wyrostkiem robaczkowym człowieka — układ ROM BIOS spotykany w komputerach firmy IBM z tego okresu jest czymś w rodzaju organu szczątkowego — pozostałością mającą zastosowanie w odległej przeszłości, ale obecnie bezużyteczną.
ROM BASIC można uruchomić w starszych komputerach firmy IBM, po wyłączeniu wszystkich zainstalowanych dysków. W przypadku, gdy w komputerze nie zostanie znalezione żadne urządzenie inicjalizujące, większość systemów IBM wyświetli na monitorze dziwny komunikat (rocznik 1981) wygenerowany przez układ ROM BASIC.
Wiele osób na widok tego komunikatu wpadało w panikę, ponieważ zazwyczaj oznaczał on, że dysk twardy nie został rozpoznany. Ponieważ żaden z komputerów zgodnych z IBM PC nie był wyposażony w układ ROM zawierający Interpreter języka BASIC, to w sytuacji, w której komputery firmy IBM uruchamiały BASIC, inne komputery wyświetlały przeróżne informacje. Najbardziej mylącym jest komunikat wyświetlany przez AMI BIOS: NO ROM BASIC - SYSTEM HALTED (Brak układu ROM BASIC — system zawieszony), który tak naprawdę oznaczał, że komputer nie może uruchomić systemu operacyjnego.
Nowsze komputery firmy IBM wyświetlają w takim przypadku na ekranie scenkę pokazaną na rysunku 5.12.
Rysunek 5.12.
Gdy nowszy komputer firmy IBM me może odnaleźć rekordu MBR wyświetla na ekranie rysunek
Rysunek ten oznacza: „Włóż dyskietkę z systemem operacyjnym do stacji A: i naciśnij klawisz FI".
W przypadku nieodnalezicnia prawidłowego rekordu MBR lub urządzenia startowego komputery wyposażone w układ BIOS firmy AMI wyświetlają taki oto komunikat:
NO ROM BASIC - SYSTEM HALTED
(Brak układu ROM BASIC — system zawieszony).
Komunikat ten jest mylący, gdyż wskazuje na problem z uruchomieniem interpretera języka BASIC, co oczywiście nie jest prawdą! W BlOS-ie firmy AMI i innych producentów nie ma bowiem takiego interpretera. Zamiast powyższego powinien być raczej wyświetlony komunikat informujący o nieodnalczieniu urządzenia, z którego można by uruchomić system operacyjny, a dokładniej komunikat o nieodnalezieniu na żadnym z urządzeń startowych w pierwszym fizycznym sektorze bajtów zawierających poprawną sygnaturę wskazującą na prawidłowy rekord MBR.
W takich samych okolicznościach BIOS firmy Compaq generuje następujący komunikat:
Non-System disk or disk error replace and strike any key when ready
(Brak dysku systemowego lub wystąpił błąd dysku. Po jego wymianie naciśnij dowolny klawisz).
W pewnym sensie firma Compaq takim komunikatem również wprowadziła zamieszanie, ponieważ identyczna lub podobna informacja o błędzie jest umieszczona w rekordzie VBR i zazwyczaj jest wyświetlana w systemach DOS/Windows 9x/Me w momencie, gdy brakuje określonych plików systemowych lub są one uszkodzone. Dlatego widząc taki komunikat w komputerze firmy Compaq, nie można być pewnym, czy problem dotyczy rekordu MBR. rekordu VBR czy plików systemowych, co utrudnia wykrycie jego przyczyny i rozwiązanie go.
W przypadku komputera wyposażonego w BIOS firmy Award w sytuacji nieodnalezienia prawidłowego rekordu MBR lub urządzenia startowego wygenerowany zostanie następujący komunikat:
DISK BOOT FAILURE, INSERT SYSTEM DISK AND PRESS ENTER
(Błąd dysku systemowego, włóż dyskietkę startową i naciśnij klawisz Enter).
Wydaje się, że jest to komunikat najlepiej oddający przyczynę problemu.
Natomiast w przypadku BIOS-u firmy Phoenix zostanie wyświetlony komunikat:
No Doot device available - strike FI to retry boot, F2 for setup utility
(Brak urządzenia startowego. Aby ponowić inicjalizację, naciśnij klawisz FI, natomiast w celu uruchomienia programu Setup naciśnij klawisz F2).
lub
No boot sector on fixed disk - strike FI to retry boot. F2 for setup utility
(Na dysku twardym nie znaleziono sektora ładowania. Aby ponowić inicjalizację, naciśnij klawisz FI, natomiast w celu uruchomienia programu Setup naciśnij klawisz F2).
To. który z powyższych dwóch komunikatów zostanie wyświetlony, zależy od tego, czy nie odnaleziono urządzenia startowego (lub nie można było z niego odczytać danych), czy też odczytany rekord MBR nie zawierał prawidłowej sygnatury.
Chociaż generowany komunikat jest różny dla różnych wersji BIOS-u. to jednak przyczyna jest jednakowa dla wszystkich. Pojawienie się jednego z wymienionych komunikatów zazwyczaj jest spowodowane kilkoma czynnikami, z których wiele ma związek z rekordem MBR.
Z moich doświadczeń wynika, że podstawową przyczyną tego rodzaju problemów są dyski nowe (nie podzielone jeszcze na partycje) lub dyski z uszkodzonym rekordem MBR.
Rekord MBR (zawierający bajty sygnatury) jest zapisywany na dysku twardym przez programy FDISK, DISKPART lub Zarządzanie dyskami. Kiedy dysk jest nowy lub zostanie sformatowany niskopoziomowo. wszystkie jego sektory są wypełniane określoną kombinacją bajtów. Pierwszy fizyczny sektor takiego dysku wypełniony jest samymi zerami, a jego ostatnie dwa bajty nie zawierają sygnatury 55AAh. Innymi słowy, komunikaty o błędach zawarte w pamięci ROM wyświetlone zostaną w momencie, gdy podejmie się próbę uruchomienia systemu z dysku, który został poddany formatowaniu niskopoziomowemu, ale na którym nie założono żadnej partycji.
Rozpatrzmy teraz kolejną sytuację, która może być powodem pojawienia się wymienionych wyżej komunikatów. Jeśli bajty sygnatury mają prawidłową wartość, wtedy BIOS wykona kod rekordu MBR, który z kolei sprawdzi zawartość bajtów BIB (ang. Boot Indicator Bytes), znajdujących się w każdej z czterech pozycji tablicy partycji. Bajty BIB znajdują się pod adresami 446 (IBEh), 462 (ICEh), 478 (IDEh) i 494 (lEEh). Ich zadaniem jest określenie, która pozycja tablicy partycji zawiera informacje o partycji startowej. Wartość 80h, znajdująca się w polu BIB danej pozycji, wskazuje, że pozycja ta zawiera dane partycji aktywnej. W pozostałych bajtach BIB muszą znajdować się wartości OOh. Jeżeli wartość 80h znajduje się w polu BIB więcej niż jednej pozycji tablicy partycji (co oznacza istnienie wielu partycji aktywnych) lub wartość dowolnego z tych bajtów nie jest równa 80h lub OOh. wtedy pojawi się następujący komunikat:
Irwalid partition table
(Nieprawidłowa tablica partycji).
Jeśli natomiast wartość wszystkich czterech bajtów BIB wynosi OOh, co oznacza brak partycji aktywnej (systemowej), kod MBR zwraca sterowanie do ROM BIOS i gdy w komputerze nie ma zainstalowanych żadnych innych urządzeń rozruchowych, wywoływane jest przerwanie programowe 18h. powodujące wyświetlenie jednego z wymienionych wcześniej komunikatów o błędzie.
► ► Zobacz „Główny rekord ładujący (MBR)" — strona 1402.
Dokładnie taki przypadek ma miejsce, gdy z dysku zostaną usunięte partycje, ale nie zostaną utworzone nowe lub gdy po utworzeniu partycji nie zdefiniuje się partycji aktywnej (startowej).
Niestety, nie istnieje prosta metoda czyszczenia uszkodzonej tablicy partycji. W celu usunięcia uszkodzonych partycji można posłużyć się programem FDISK, ale nie zawsze jest to możliwe. W takim przypadku należy zastosować narzędzia o większych możliwościach, takie jak program DISKEDIT dostępny w pakiecie Norton Utilities firmy Symantec.
^ ^ Więcej informacji na temat naprawiania i odzyskiwana rekordu MBR znajdziesz w rozdziale 25. — „Systemy plików i odzyskiwanie danych" — na stronie 1401.
Tego rodzaju błędy mogą pojawić się również w komputerach wyposażonych w dyski o pojemności nie przekraczającej 8,4 GB, które można obsługiwać w trybie CHS. Błędy te wynikają z nieprawidłowego wyboru rodzaju translacji wykonywanej przez BIOS. Translacja stosowana jest dla dysków o pojemnościach z zakresu od 528 MB do 8.4 GB, a polega na zamianie wartości CHS dysków na wartości umożliwiające dostęp do całej pojemności dysku (do 8,4 GB) systemom DOS i Windows. Przeważnie dostępne są trzy ustawienia translacji — może ona być wyłączona (opcja Normal) lub włączona w trybie CHS albo LBA. Translacja wykorzystująca wartości CHS uaktywniana jest przez wybór opcji Large, a wykorzystująca wartości LBA — poprzez wybór opcji LBA. Jeżeli dysk został podzielony na partycje i sformatowany w trybie translacji LBA. ale następnie zmieniono rodzaj translacji na CHS, program ładujący umieszczony w BłOS-ie użyje nieprawidłowych sektorów, co może spowodować nieodnalezienie prawidłowego rekordu MBR lub nieodnalezienie prawidłowego rekordu VBR wolumenu systemowego. Spowoduje to pojawienie się jednego z wymienionych wcześniej komunikatów lub wyświetlenie przez MBR komunikatu:
Missing operating system
(Brak systemu operacyjnego).
A zatem, jeśli w komputerze wyposażonym w dysk twardy o pojemności od 540 MB do 8,4 GB (7,9 GiB) wystąpią tego typu błędy, wtedy należy sprawdzić ustawienia translacji. W przypadku niektórych starszych wersji BIOS-u Hi-Flex i WinBIOS (interfejs graficzny) firmy AMI ustawienie translacji nie znajduje się w oknie konfiguracji dysku twardego, ale jest umieszczone w oknie menu Advanced lub Built-in Peripherals, gdzie można go dokonać, prawidłowo wybierając automatyczną konfigurację dysku.
Rozdział 6.
Pamięć
Podstawowe wiadomości o pamięci
W rozdziale tym zostaną omówione kwestie związane z pamięcią komputera zarówno z punktu widzenia jej budowy fizycznej, jak i logicznej. Na początku powiemy, czym jest pamięć, jakie miejsce zajmuje w architekturze komputera PC oraz na czym opiera się jej działanie. Następnie omówimy różne typy, czasy dostępu oraz obudowy układów pamięci, które można kupić i zainstalować w komputerze.
Również w tym rozdziale przedstawiona zostanie logiczna struktura pamięci wraz z definicją różnych jej obszarów i opisem ich zastosowania z punktu widzenia systemu. Ze względu na to, że struktura logiczna pamięci, jej wykorzystywanie oraz mapowanie zawierają się w „umyśle" procesora, prawdopodobnie są to najtrudniejsze do zrozumienia zagadnienia związane ze światem komputerów PC. W rozdziale zawarto użyteczne informacje, które pozwolą przebić się przez otoczkę tajemniczości towarzyszącą pamięci i maksymalnie wykorzystać możliwości systemu.
Pamięć stanowi przestrzeń roboczą procesora. Pełni ona rolę tymczasowego miejsca przechowywania, w którym muszą być umieszczone programy i dane przetwarzane w danej chwili przez procesor. Tymczasowy charakter nośnika, jakim jest pamięć, wynika stąd, że dane i programy znajdują się w niej tylko wtedy, gdy komputer jest podłączony do zasilania. W związku z tym przed wyłączeniem lub zrestartowaniem komputera wszystkie zmodyfikowane dane należy zapisać na trwałym nośniku (zazwyczaj dysku twardym). Dzięki temu w przyszłości dane będą mogły zostać ponownie załadowane do pamięci.
Pamięć często jest określana skrótem RAM (Random Access Memory — pamięć o dostępie swobodnym). W stosunku do pamięci operacyjnej używa się terminu RAM, ponieważ dostęp do dowolnej jej komórki odbywa się w sposób swobodny (w przeciwieństwie do dostępu sekwencyjnego). Taka definicja w pewnym sensie jest błędna i mylnie interpretowana. Przykładowo, dostęp do pamięci ROM (Read-Only Memory — pamięć tylko do odczytu) również odbywa się w sposób swobodny. ROM od pamięci RAM różni się tym, że jest w stanie przechowywać dane bez stale doprowadzonego zasilania i standardowo nie umożliwia zapisu. Pamięć dyskowa także jest udostępniana swobodnie, ale nie jest traktowana jak pamięć RAM.
Przez lata definicja pamięci RAM zmieniła się z objaśnienia skrótu do pojęcia, które określa ją jako podstawową przestrzeń roboczą, w której procesor uruchamia programy i która zazwyczaj jest zbudowana z typu układów pamięci o nazwie dynamicznej pamięci RAM (DRAM— Dynamie RAM). Jedną z charakterystycznych cech układów DRAM (a zatem ogólnie pojmowanej pamięci RAM) jest to, że przechowują dane w sposób dynamiczny, co tak naprawdę jest dwuznaczne. Po pierwsze, informacja może być wielokrotnie i w dowolnej chwili zapisywana. Po drugie, dane zawarte w pamięci DRAM muszą być odświeżane (a właściwie ponownie zapisywane) co około 15 ms (milisekund). W przypadku innego typu pamięci RAM, określanego mianem statycznej pamięci RAM (SRAM— Static RAM), okresowe odświeżanie nie jest konieczne. Istotną informacją dotyczącą wszystkich typów pamięci RAM jest to, że dane są w niej przechowywane tylko wtedy, gdy doprowadzone jest napięcie zasilające.
Podejmując temat pamięci komputerowej, zazwyczaj mamy na myśli RAM lub fizyczną pamięć znajdującą się w systemie, którą głównie stanowią układy pamięci lub moduły wykorzystywane przez procesor do przechowywania aktywnych programów i danych. Często błędnie jest to kojarzone z pojęciem nośnika danych (storage), które powinno być używane w stosunku do takich urządzeń jak dyski i strimery (pomimo to mogą one posłużyć jako forma pamięci RAM określanej mianem pamięci wirtualnej).
Pojęcie RAM może odnosić się zarówno do fizycznych układów, z których jest zbudowana pamięć systemowa, jak i do logicznej struktury i mapowania pamięci. Logiczna struktura i mapowanie pamięci pozwalają określić sposób, w jaki adresy pamięci są mapowane na adresy fizyczne układów pamięci oraz adresy komórek zawierających określony typ danych systemowych.
Początkujący użytkownicy komputerów często mylą pamięć operacyjną RAM z pamięcią dyskową, ponieważ w obu przypadkach występuje pojęcie pojemności wyrażanej podobnymi jednostkami (megabajty lub gigabajty). Najlepszą analogią pozwalającą na wyjaśnienie związku występującego pomiędzy pamięcią RAM a pamięcią dyskową jest wyobrażenie sobie biura, w którym znajduje się biurko i szafa na dokumenty.
W tym dość popularnym porównaniu szafa odpowiada dyskowi twardemu komputera, na którym znajdują się programy i dane. Biurko odpowiada systemowej pamięci operacyjnej i umożliwia osobie przy nim siedzącej (pełniącej rolę procesora) na bezpośredni dostęp do dowolnej teczki na się znajdującej.
Teczki odpowiadają programom i dokumentom, które można załadować do pamięci. Aby możliwe było przejrzenie określonej teczki, musi ona najpierw zostać pobrana z szafy i położona na biurku. Jeśli biurko jest wystarczająco duże, istnieje możliwość umieszczenia i otwarcia na nim kilku teczek jednocześnie. Podobnie, jeśli komputer dysponuje większą ilością pamięci, wtedy można uruchomić więcej, lub większe, programów oraz przetwarzać większą ilość dokumentów zajmujących więcej miejsca.
Dodanie dodatkowej przestrzeni dyskowej podobne jest to wstawienia do biura pojemniejszej szafy kartotekowej. Tym sposobem więcej plików może być trwale przechowywanych. Dołożenie dodatkowych modułów pamięci operacyjnej odpowiada większemu biurku, dzięki czemu możliwe jest jednoczesne uruchomienie większej liczby programów i przetwarzanie większej ilości danych.
W przytoczonej analogii istnieje jeden element odróżniający biurka od pamięci komputerowej. Jest on związany z samym mechanizmem działania, który polega na tym, że w momencie, gdy plik zostanie załadowany do pamięci, to tak naprawdę jest to tylko kopia oryginału, który w dalszym ciągu znajduje się na dysku twardym. Ze względu na tymczasowy charakter pamięci, każdy plik, który został zmodyfikowany już po umieszczeniu go w pamięci, musi przed wyłączeniem komputera (po którym zawartość pamięci znika) zostać ponownie zapisany na dysku. Jeśli zmieniony plik znajdujący się w pamięci nie zostanie zapisany, wtedy jego oryginał przechowywany na dysku zachowa niezmienioną postać. Stosując powyższą analogię, można powiedzieć, że niezapisanie zmian dokonanych w dowolnym pliku, pomimo to, że oryginał teczek znajduje się w szafie, jest jak pozostawienie teczek na biurku stojącym w biurze, które zostało zamknięte.
W trakcie działania uruchomionych programów są one wraz z przetwarzanymi przez nie danymi tymczasowo przechowywane w pamięci. Układy pamięci RAM czasami są określane mianem nośnika ulotnego (yolatile storage), ponieważ po wyłączeniu komputera lub nastąpieniu przerwy w zasilaniu ich zawartość, w przypadku, gdy nie zostanie zapisana na dysku twardym, jest tracona. Ze względu na ulotność pamięci RAM wielu użytkowników komputerów wyrobiło w sobie nawyk częstego zapisywania danych. Niektóre aplikacje dysponują funkcją okresowego automatycznego zapisywania dokonanych zmian.
Uruchomienie programu powoduje załadowanie jego plików do pamięci RAM. Tak długo, jak program jest aktywny, tak długo jego pliki znajdują się w pamięci operacyjnej. Procesor wykonuje instrukcje programu zawarte w pamięci systemowej, a następnie wyniki zapisuje również w pamięci RAM. W przypadku używania edytora tekstu w pamięci operacyjnej są przechowywane znaki wprowadzone z klawiatury, natomiast po otwarciu programu służącego do obliczeń w pamięci RAM są umieszczane przetwarzane liczby. Wykonanie operacji zapisu danych powoduje, że program zapisuje zawartość pamięci operacyjnej na dysk twardy w postaci pliku.
Od strony fizycznej pamięć systemowa jest zestawem układów lub modułów, które zazwyczaj są umieszczone na płycie głównej. Układy lub moduły pamięci różnią się między sobą pod względem budowy i zastosowanej elektroniki. Pamięci zainstalowane w określonym komputerze w celu poprawnej współpracy muszą być z nim kompatybilne. W rozdziale tym zostaną omówione różne typy układów i modułów pamięci, które mogą być stosowane w rozmaitych typach komputerów.
Chociaż koszt związany z zakupem pamięci do typowego systemu przez ostatnie kilka lat znacznie się obniżył, to jednak oprócz procesora i płyty głównej jest to jeden z droższych komponentów nowych komputerów PC. Do połowy roku 1996, gdy nastąpiła znaczna obniżka cen pamięci, przez wiele lat ich koszt utrzymywał się na w miarę stałym poziomie i wynosił około 160 złotych za 1 megabajt. W tamtym okresie standardowa konfiguracja zawierająca pamięć o pojemności 16 MB wiązała się z wydatkiem przekraczającym 2400 złotych. W rzeczywistości pamięć była wtedy tak droga, że kosztowała więcej niż odpowiadająca jej wagowo sztabka złota. Wyjątkowo wysokie ceny pamięci spowodowały, że producenci modułów stali się ofiarami kilku większych kradzieży z użyciem broni. Zainteresowanie przestępców pamięcią częściowo wynikało z jej dużej wartości, znacznego popytu, a przy tym wyśledzenie skradzionych układów lub modułów było praktycznie niemożliwe. Po serii napadów z bronią i innych kradzieży producenci pamięci zaczęli zatrudniać uzbrojonych strażników i stosować dodatkowe procedury bezpieczeństwa.
Pod koniec 1996 r. ceny pamięci znacząco spadły (do około 16 złotych za megabajt). Wynika z tego, że w ciągu niecałego roku cena obniżona została dziesięciokrotnie. Po wystąpieniu chwilowej zwyżki, ceny dalej cały czas spadały i w roku 1997 osiągnęły poziom 2 złotych za megabajt. Sytuacja na rynku pamięci wydawała się stabilizować aż do roku 1998, gdy pewne zdarzenia przyczyniły się do czterokrotnego wzrostu cen. W głównej mierze do takiego rozwoju wydarzeń przyczyniły się firmy Intel i Rambus, które zamierzały spopularyzować w branży komputerowej nowy typ pamięci o nazwie DRAM (RDRAM), ale nie zdążyły wprowadzić do sprzedaży obsługujących go komponentów. Okazało się, że wiele firm zaczęło produkcję nowego typu pamięci, której nie obsługiwały jeszcze żadne chipsety ani płyty główne. W efekcie na rynku zaczęto odczuwać brak popularnej pamięci SDRAM. W tym samym roku miało miejsce trzęsienie ziemi na Tajwanie, które również przyczyniło się do dalszego wzrostu cen.
Od tego czasu sytuacja uległa znaczącej poprawie i ceny pamięci osiągnęły najniższy w historii poziom określony wartością nie przekraczającą 80 groszy za megabajt. Szczególnie fatalny dla przemysłu półprzewodników był rok 2001, w którym wskutek bankructw wielu firm internetowych i innych wydarzeń w światowej gospodarce poziom sprzedaży spadł poniżej wartości z poprzednich lat. W efekcie ceny pamięci spadały w dalszym ciągu, osiągając nie notowane dotąd poziomy, natomiast niektórzy producenci zmuszeni byli do łączenia się ze sobą lub nawet ogłaszali upadłość.
Aktualnie pamięć jest jeszcze tańsza, ale jej wartość użytkowa uległa znacznemu obniżeniu. W porównaniu z poprzednimi latami nowe typy pamięci znajdują swoich zwolenników znacznie szybciej, wskutek czego najprawdopodobniej każdy nowy komputer, który zostanie kupiony, nie będzie już obsługiwał używanych dotąd modułów pamięci. W przypadku aktualizacji lub naprawy oznacza to, że przy każdej wymianie płyty głównej zazwyczaj będzie konieczne zaopatrzenie się również w nowy typ pamięci. Szansa, że pamięć zainstalowana w aktualizowanej płycie będzie obsługiwana przez nowy model, jest niewielka.
Z tego też powodu należy mieć dobre rozeznanie w typach pamięci dostępnych aktualnie na rynku, tak aby mieć możliwość jak najbardziej trafnego ustalenia rodzaju pamięci wymaganego przez określony system, a tym samym znacznie ułatwionej w przyszłości jego aktualizacji i naprawy.
Dla lepszego zrozumienia fizycznej budowy pamięci zainstalowanej w komputerze należy wiedzieć, gdzie się w nim znajduje i jaką pełni rolę. W nowszych komputerach PC stosowane są trzy podstawowe typy pamięci:
ROM — Read-Only Memory (pamięć tylko do odczytu),
DRAM — Dynamie Random Access Memory (dynamiczna pamięć o swobodnym dostępie),
SRAM — Static RAM (statyczna pamięć RAM).
ROM
ROM (Read-Only Memory — pamięć tylko do odczytu) jest typem pamięci, który pozwala na trwałe lub częściowo trwałe przechowywanie danych. W nazwie pamięci znajduje się określenie „tylko do odczytu", które używane jest dlatego, że niemożliwe, lub bardzo utrudnione, jest zapisanie w niej danych. Pamięć ROM często jest również określana mianem pamięci nieulotnej (nonvolatile memory), co wynika z faktu, że zawarte w niej dane nie znikają nawet po odłączeniu zasilania. Pamięć ROM sama w sobie stanowi idealne miejsce do przechowywania instrukcji stosowanych przy inicjalizacji komputera czyli programów odpowiedzialnych za jego uruchomienie.
Należy zauważyć, że wbrew temu, co wiele osób uważa, pamięć ROM i RAM nie są dla siebie przeciwnościami. Tak naprawdę, z technicznego punktu widzenia pamięć. ROM mogłaby zostać uznana za podgrupę pamięci systemowej RAM. Innymi słowy, część przestrzeni adresowej pamięci RAM jest mapowana na jeden lub kilka układów pamięci ROM. Pamięć ROM jest niezbędna do przechowywania programów służących do inicjalizacji systemu. W przypadku jej braku, po włączeniu komputera procesor nie znalazłby w pamięci żadnego programu, który mógłby wykonać.
► ► W celu uzyskania dodatkowych informacji na temat ROM-u zajrzyj do podrozdziału „BIOS płyty głównej"
znajdującego się na stronie 462.
Podstawowy BIOS systemu znajduje się w układzie ROM umieszczonym na płycie głównej. Oprócz tego w układy pamięci ROM wyposażone są również karty. W tym przypadku w pamięci ROM zawarte są dodatkowe procedury BIOS-u oraz sterowniki wykorzystywane przez określoną kartę, a zwłaszcza te. które muszą być aktywne w trakcie inicjalizacji systemu (np. karta graficzna). Karty, które podczas uruchamiania komputera nie muszą być włączone, zazwyczaj są pozbawione układu ROM, ponieważ wymagane przez nie sterowniki mogą być załadowane z dysku twardego w dalszej fazie procesu inicjalizacji.
W większości obecnie dostępnych systemów wykorzystywana jest pamięć ROM określana mianem pamięci EEPROM (Electricatly Erasable PROM — elektrycznie kasowalny PROM) będąca odmianą układu Flash. Pamięć Flash jest typową pamięcią nieulotną oferującą możliwość wielokrotnego zapisu, dzięki czemu umożliwia użytkownikom wykonanie w prosty sposób aktualizacji zawartości układu ROM lub oprogramowania układu umieszczonego na płycie głównej lub dowolnego innego komponentu (karta graficzna, kontroler SCSI, urządzenia peryferyjne itp.).
DRAM
DRAM (Dynamie RAM— dynamiczna pamięć RAM) jest typem pamięci pełniącym rolę pamięci operacyjnej w większości obecnie dostępnych komputerów. Do podstawowych jej zalet należy zaliczyć wysoką gęstość zapisu danych, co oznacza, że w bardzo małym układzie możliwe jest upakowanie znacznej ilości bitów. Ponadto pamięć DRAM jest dość tania, dzięki czemu można sobie pozwolić na zakup modułów o większej pojemności.
Komórki pamięci DRAM są wykonane z niewielkich kondensatorów, które w celu oznaczenia bitu przechowują ładunek elektryczny. Cały problem z tego typu pamięcią jest związany z jej „dynamicznością". Poza tym ze względu na zastosowaną architekturę konieczne jest ciągłe odświeżanie. Przy jego braku ładunki elektryczne znajdujące się w poszczególnych kondensatorach zanikną, wskutek czego zostaną utracone dane. Operacja odświeżania występuje w momencie, gdy systemowy kontroler pamięci chwilowo oddaje kontrolę i udostępnia wszystkie wiersze układów pamięci zawierające dane. Większość komputerów dysponuje kontrolerem pamięci (zazwyczaj zintegrowanym z mostkiem północnym chipsetu płyty głównej), który pozwala na wykonywanie odświeżania co 15 ms (milisekund). Wartość ta jest zgodna ze standardem przemysłowym. Oznacza to, że w celu odświeżenia danych zapisanych w wierszach pamięci są one automatycznie odczytywane co 15 ms.
► ► Zajrzyj do podrozdziału „Chipsety" znajdującego się na stronie 292.
Niestety, operacja odświeżania pamięci powoduje, że procesor musi przerwać wykonywania innych zadań. Wynika to stąd, że każdy cykl związany z odświeżaniem wymaga kilku cykli pracy procesora. W starszych komputerach cykle odświeżania zajmowały 10 lub nawet więcej procent całkowitego czasu procesora. W przypadku nowszych systemów taktowanych częstotliwościami wynoszącymi kilka gigaherców obciążenie związane z odświeżaniem stanowi ułamkową część procenta (lub nawet mniej) całkowitego czasu pracy jednostki centralnej. Chociaż niektóre systemy dysponują możliwością zmiany parametrów (przy użyciu programu CMOS Setup) dotyczących cykli odświeżania, to jednak należy być świadomym, że zwiększenie czasu.
jaki upływa pomiędzy kolejnymi cyklami odświeżającymi, wpływa nie tylko na wzrost wydajności komputera, ale może również spowodować, że w niektórych komórkach pamięci dojdzie do utraty ładunku, co z kolei będzie przyczyną losowego pojawiania się błędów miękkich. Błąd miękki (soft error) należy do błędów danych nie wywołanych fizycznym uszkodzeniem układu pamięci. Zazwyczaj bezpieczniejszym będzie pozostawienie zalecanych lub domyślnych wartości związanych z cyklami odświeżania. Ponieważ operacje związane z cyklami odświeżania pamięci nie przekraczają 1% ogólnego obciążenia obecnie dostępnych systemów, dlatego też zmiana częstotliwości ich występowania ma niewielki wpływ na wydajność. Prawie zawsze najlepszym rozwiązaniem będzie pozostawienie domyślnych lub ustawianych automatycznie wartości dotyczących taktowania dowolnego typu pamięci konfigurowanej w programie BIOS Setup. W wielu nowszych komputerach nie ma możliwości zmiany taktowania pamięci, ponieważ są wykorzystywane wyłącznie wartości ustawiane automatycznie. W przypadku ustawień automatycznych płyta główna odczytuje parametry taktowania z układu ROM SPD (Serial Presence Detect) znajdującego się w module pamięci, a następnie ustawia zgodną z nimi częstotliwość występowania cykli odświeżania.
Pamięć DRAM dla każdego bitu stosuje tylko jedną parę złożoną z tranzystora i kondensatora, co powoduje, że charakteryzuje się dużą gęstością pozwalającą w porównaniu z innymi typami pamięci uzyskać większą pojemność dla pojedynczego układu. Aktualnie dostępne są moduły DRAM oferujące gęstości, które odpowiadają pojemności 1 Gb lub większej. Oznacza to, że układy pamięci DRAM zawierają 512 milionów lub nawet więcej tranzystorów! Porównanie pamięci DRAM z procesorem Pentium 4 liczącym 55 milionów tranzystorów sprawia, że ten wypada w nim żałośnie. Tak znaczna różnica w liczbie tranzystorów bierze się stąd, że w przeciwieństwie do procesora, układ pamięci składa się z tranzystorów i kondensatorów tworzących ciągłą siatkę (zazwyczaj kwadratową) opartą na prostych i powtarzalnych strukturach. Dla porównania, procesor jest o wiele bardziej złożonym układem scalonym zawierającym różne struktury i elementy połączone ze sobą w bardziej nieregularny sposób.
Tranzystor każdej komórki pamięci DRAM przechowującej bit dokonuje odczytu wartości ładunku przyległego kondensatora. Jeśli kondensator jest naładowany, wtedy komórka ma wartość 1. W przeciwnym wypadku komórka ma wartość 0. Ładunek zgromadzony w niewielkich kondensatorach cały czas zanika, dlatego też konieczne jest ciągłe odświeżanie pamięci. Nawet chwilowa przerwa w zasilaniu lub dowolny inny czynnik zakłócający cykle odświeżania może spowodować zaniknięcie w komórkach pamięci DRAM ładunku, a tym samym utratę danych. Jeśli taka sytuacja przydarzy się w trakcie pracy systemu, wtedy może to doprowadzić do pojawienia się niebieskiego ekranu, ogólnych błędów ochrony pamięci, uszkodzenia plików i kilku innych objawów wskazujących na awarię.
Pamięć DRAM została zastosowana w komputerach osobistych ze względu na niską cenę i dużą gęstość, która pozwala wytwarzać pojemne układy o niewielkich rozmiarach. Niestety, wadą pamięci DRAM jest długi czas dostępu sprawiający, że jest ona znacznie wolniejsza od procesora. Z tego też powodu w celu zwiększenia wydajności opracowano wiele różnych architektur tego typu pamięci. Zostały one omówione w dalszej części rozdziału.
Pamięć podręczna SRAM
Kolejnym rodzajem pamięci charakteryzującym się w porównaniu z większością typów układów DRAM o wiele krótszym czasem dostępu jest pamięć SRAM. Pamięć statyczna SRAM (Static RAM) została tak nazwana, ponieważ nie wymaga, tak jak pamięć DRAM, okresowego odświeżania. Dzięki jej architekturze nie tylko uniknięto odświeżania, ale również uzyskano pamięć znacznie szybszą od modułów DRAM, która o wiele lepiej może spełnić oczekiwania stawiane w przypadku nowszych modeli procesorów.
Czas dostępu do pamięci SRAM wynosi 2 ns lub nawet mniej, dlatego też może współpracować z procesorami pracującymi z częstotliwością 500 MHz lub wyższą! Jest to wynikiem zastosowanej architektury, w której do przechowywania każdego bitu wykorzystywana jest grupa sześciu tranzystorów. Użycie tranzystorów pozbawionych kondensatorów, które z czasem traciły ładunek, oznacza, że nie jest wymagane okresowe odświeżanie. W czasie gdy jest doprowadzone zasilanie, pamięć SRAM przechowuje zawarte w niej dane. Biorąc pod uwagę te wszystkie zalety, nasuwa się pytanie, dlaczego nie wykorzystuje się modułów SRAM w całym systemie? Odpowiedź jest prosta.
W porównaniu z pamięcią DRAM, układ SRAM jest znacznie szybszy, ale również charakteryzuje się mniejszą gęstością i o wiele wyższą ceną (tabela 6.1). Mniejsza gęstość oznacza, że moduły pamięci SRAM są większe i są w stanie przechowywać mniejszą ilość bitów. Duża liczba tranzystorów i ich grupowanie wpływa na to, że w porównaniu z układami DRAM koszty wytwarzania większych modułów pamięci SRAM są znacznie wyższe. Przykładowo, moduł pamięci DRAM może mieć pojemność 64 MB lub większą, natomiast w przybliżeniu odpowiadające im pod względem wielkości układy SRAM dysponują pojemnością wynoszącą tylko 2 MB. Pamięć o takiej pojemności kosztuje tyle co moduł DRAM mający pojemność 64 MB. Mówiąc wprost, w porównaniu z układem DRAM pamięć SRAM pod względem rozmiarów jest 30-krotnie większa, a ponadto jest 30 razy droższa. Wysoka cena i ograniczenia związane z wielkością modułów spowodowały, że pamięć SRAM nie mogła pełnić roli pamięci operacyjnej komputerów PC.
Tabela 6.1. Porównanie pamięci DRAM i SRAM
Typ |
Szybkość |
Gęstość |
l Cena j |
DRAM |
Wolna |
Duża |
| Niska |
SRAM |
Szybka |
Mala |
i Wysoka |
Chociaż pamięć SRAM ze względu na wysoką cenę nie może być użyta jako pamięć systemowa, to jednak projektanci znaleźli dla niej zastosowanie, dzięki czemu uzyskano znaczny wzrost wydajności komputerów. Zamiast wydania sporej kwoty na moduły SRAM pełniące rolę pamięci operacyjnej, która dzięki swojej szybkości może lepiej współpracować z procesorem, opracowano pamięć podręczną SRAM charakteryzującą się niewielką pojemnością, krótkim czasem dostępu i znacznie korzystniejszą ceną. Tego typu pamięć pracuje z częstotliwością bliską lub nawet równą częstotliwości procesora, który zazwyczaj bezpośrednio odczytuje lub zapisuje znajdujące się w niej dane. Po wykonaniu operacji odczytu danych zawartych w pamięci podręcznej pobierane są kolejne dane z wolniejszej pamięci operacyjnej (DRAM). Jeszcze do niedawna maksymalny czas dostępu pamięci DRAM wynosił 60 ns (16 MHz). W celu zamiany czasu dostępu wyrażonego w nanosekundach na megaherce, należy posłużyć poniższą zależnością:
1 / nanosekundy x 1000 = MHz
Podobnie, aby zamienić megaherce na nanosekundy, należy skorzystać z zależności odwrotnej:
1 / MHz x 1000 = nanosekundy
W komputerach taktowanych zegarem 16 MHz lub wolniejszym pamięć DRAM w pełni spełniała wymagania wydajnościowe płyty głównej i procesora, dlatego też stosowanie pamięci podręcznej nie miało sensu. Jednak z chwilą przekroczenia przez procesory granicy 16 MHz pamięć DRAM nie była w stanie osiągnąć ich szybkości i właśnie wtedy w architekturze komputerów PC pojawiła się pamięć SRAM. Po raz pierwszy nowa architektura została zastosowana w roku 1986 i 1987 w systemach opartych na procesorze 386 taktowanym zegarem 16 i 20 MHz. Były to pierwsze komputery PC, w których wykorzystano pamięć podręczną (cache memory) — bufor o dużej szybkości złożony z układów pamięci SRAM bezpośrednio wykorzystywany przez procesor. Ponieważ pamięć podręczna może pracować z częstotliwością procesora, w architekturze systemowej jej kontroler przewiduje zapotrzebowanie procesora na dane, a następnie umieszcza je w szybkiej pamięci cache. Jeśli procesor odwoła się do określonego adresu pamięci, wtedy znajdujące się tam dane zamiast ze znacznie wolniejszej pamięci operacyjnej zostaną pobrane z pamięci podręcznej.
Efektywność pamięci cache wyraża się skutecznością trafień. Współczynnik ten jest stosunkiem trafień danych w pamięci podręcznej do całkowitej liczby operacji odczytu pamięci RAM. Trafienie (hit) ma miejsce wtedy, gdy dane wymagane przez procesor zostały wcześniej pobrane z pamięci RAM i umieszczone w pamięci podręcznej, dzięki czemu procesor może je pobrać bezpośrednio z niej. Chybienie (cache miss) zachodzi w momencie, gdy kontroler pamięci cache nie przewidział określonego adresu pamięci, spod którego zostały pobrane dane i w efekcie nie umieścił ich wcześniej w pamięci podręcznej. W tym przypadku procesor jest zmuszony do odczytania danych z wolniejszej pamięci operacyjnej, co wiąże się z dłuższym czasem trwania operacji, ponieważ cykle pamięci RAM, w porównaniu z szybkością procesora, są wykonywane ze znacznie niższą częstotliwością. Jeśli procesor zintegrowany z pamięcią cache pracuje z częstotliwością 3400 MHz (3,4 GHz), wtedy zarówno on, jak i pamięć podręczna będą taktowane co 0,29 ns. natomiast pamięć systemowa najprawdopodobniej będzie taktowana 8.5 raza wolniej (lub co 2,5 ns w przypadku pamięci DDR — Double Data Rate — o szybkości 200 MHz). Wynika z tego, że w przeliczeniu na megaherce pamięć operacyjna może pracować z częstotliwością wynoszącą tylko 400 MHz. A zatem oznacza to, że przy każdej operacji odczytu danych z pamięci RAM procesor taktowany zegarem 3,4 GHz jest zmuszony 8.5 raza obniżyć częstotliwość do wartości wynoszącej zaledwie 400 MHz! Operacja zmniejszenia szybkości pracy procesora jest realizowana poprzez wykonanie dodatkowych cykli zwanych cyklami oczekiwania (wait states). W czasie cykli oczekiwania związanych z odebraniem z wolniejszej pamięci systemowej żądanych danych, poza chłodzeniem się procesora nie jest wykonywana żadna inna operacja. Z pewnością spowolnienie pracy procesora nie jest mile widziane, dlatego też wraz ze wzrostem jego szybkości funkcje realizowane przez pamięć podręczną zaczęły zyskiwać na znaczeniu.
W celu minimalizacji ilości operacji odczytu danych z wolnej pamięci RAM wykonywanych przez procesor, w nowszych systemach zazwyczaj stosuje się trzy poziomy pamięci podręcznej — Level 1 (LI). Level 2 (L2) i Level 3 (L3). Pamięć cache LI określa się również mianem pamięci wewnętrznej (internal cache), ponieważ jest ona bezpośrednio zintegrowana z procesorem i stanowi część jego rdzenia (płytki). Z tego też powodu pamięć cache LI zawsze pracuje z częstotliwością rdzenia procesora i jest najszybszą pamięcią w całym systemie. Dzięki temu, że we wszystkich procesorach, począwszy od układu 486, zastosowano zintegrowaną pamięć podręczną LI, w porównaniu z ich poprzednikami cechują się one znacznie większą wydajnością. Pamięć cache L2 jest również określana mianem zewnętrznej pamięci podręcznej (external cache), ponieważ została umieszczona poza procesorem. Początkowo oznaczało to, że znajdowała się na płycie głównej tak jak w przypadku komputerów opartych na procesorach 386. 486 i Pentium. W tego typu systemach pamięć cache L2 pracuje z częstotliwością płyty głównej, ponieważ jest na niej fizycznie zainstalowana. W komputerach wyposażonych w procesor Pentium lub starsze układy pamięć cache L2 zazwyczaj znajduje się w pobliżu gniazda procesora.
► ► Zajrzyj do punktu „Zasada działania pamięci podręcznej" znajdującego się na stronie 106.
Wskutek dążenia do zwiększenia wydajności, nowsze procesory produkowane przez firmę Intel i AMD zostały zintegrowane z pamięcią podręczną L2. We wszystkich procesorach, które pojawiły się w sprzedaży od końca 1999 r. (i niektórych starszych modelach), pamięć cache L2, podobnie jak pamięć cache LI, była integralną częścią rdzenia. W przypadku procesorów zintegrowanych z pamięcią podręczną L2 pracuje ona z częstotliwością rdzenia, a ponadto jest o wiele bardziej wydajna. Dla porównania, większość procesorów powstałych przed rokiem 1999 dysponowała zintegrowaną pamięcią cache L2, która była umieszczona w postaci oddzielnych modułów na zewnątrz rdzenia. W wielu starszych modelach procesorów pamięć podręczna L2 była taktowana tylko 1/2 lub 1/3 częstotliwości rdzenia procesora. Szybkość pamięci podręcznej jest na tyle istotnym parametrem, że w przypadku systemu wyposażonego w pamięć cache L2 znajdującą się na płycie głównej od razu można stwierdzić, że nie należy do najszybszych. Umieszczenie pamięci cache L2 w procesorze (w postaci niezależnych modułów) zwiększyło wydajność systemu, ale zintegrowanie jej bezpośrednio z rdzeniem dało jeszcze lepsze rezultaty. Procesor bezpośrednio zintegrowany z pamięcią podręczną L2 w zauważalny sposób przewyższa pod względem wydajności każdy układ, który jest jej pozbawiony.
Pamięć cache L2 znajdująca się w procesorze (zintegrowana z rdzeniem lub nie) w dalszym ciągu jest szybsza od jej odpowiednika umieszczonego na płycie głównej. A zatem większość płyt głównych współpracujących z procesorami zawierającymi pamięć podręczną jest jej pozbawiona. Cała pamięć podręczna komputera znajduje się w obudowie procesora.
Począwszy od 2001 r. pamięć podręczna L3 pojawiła się w procesorach z rodziny Xeon i Itanium, przeznaczonych do zaawansowanych stacji roboczych i serwerów. Pierwszym procesorem stworzonym dla komputerów PC, który zawierał pamięć cache L3, był układ Pentium 4 Extreme Edition. Ta zaawansowana konstrukcja, wyposażona w zintegrowaną z rdzeniem pamięć podręczną o pojemności 2 MB, pojawiła się na rynku pod koniec 2003 r. W przyszłości można oczekiwać, że cache L3 będzie częściej stosowany w najpopularniejszych procesorach, ponieważ większa liczba poziomów pamięci podręcznej pozwala na złagodzenie różnicy szybkości rdzenia procesora i stosunkowo wolnej pamięci RAM oraz płyty głównej.
Kluczem do zrozumienia roli, jaką spełnia pamięć podręczna i operacyjna, jest zorientowanie się, w którym miejscu ogólnej architektury systemu są one umieszczone.
W celu zapoznania się z diagramami nowych komputerów wyposażonych w różnego typu pamięcią cache należy zajrzeć do rozdziału 4.. „Płyty główne i magistrale". W tabeli 6.2 przedstawiono parametry pamięci cache stosowanej w nowoczesnych systemach.
Tabela 6.2. Zależność pomiędzy pamięcią cache LI (wewnętrzną), cache L2 (zewnętrzną) i operacyjną stosowaną w nowszych typach systemów
Typ procesora |
Pentium |
Pentium Pro |
Pentium II |
AMD K6-2 |
AMD K6-3 |
Częstotliwość procesora |
233 MHz |
200 MHz |
450 MHz |
550 MHz |
450 MHz |
Szybkość pamięci cache LI |
4,3 ns (233 MHz) |
5.0 ns (200 MHz) |
2,2 ns (450 MHz) |
1,8 ns (550 MHz) |
2.2 ns (450 MHz) |
Pojemność pamięci cache LI |
16 kB |
32 kB |
32 kB |
64 kB |
64 kB |
Typ pamięci cache L2 |
Na płycie głównej |
Na płytce |
Na płytce |
Na płycie głównej |
W rdzeniu |
Stosunek szybkości procesora do szybkości pamięci cache L2 |
|
l/l |
1/2 |
|
1/1 |
Szybkość pamięci cache L2 |
15 ns (66 MHz) |
5 ns (200 MHz) |
4,4 ns (225 MHz) |
10 ns (100 MHz) |
2.2 ns (450 MHz) |
Pojemność pamięci cache L2 |
Zmienna' |
256 kB2 |
512 kB |
Zmienna' |
256 kB |
Częstotliwość magistrali procesora |
66 MHz |
66 MHz |
100 MHz |
100 MHz |
100 MHz |
Szybkość magistrali pamięci |
60 ns(16MHz) |
60 ns (16 MHz) |
10 ns (100 MHz) |
10 ns (100 MHz) |
10 ns (100 MHz) |
'Pamięć cache L2 znajduje się na płycie głównej, natomiast jej pojemność zależy od modelu płyty i ilości zainstalowanych modułów.
Początkowo pamięć podręczna działała w sposób asynchroniczny, co oznacza, że pracowała z częstotliwością inną niż częstotliwość magistrali procesora. Począwszy od chipsetu 430FX wprowadzonego na rynek na początku 1995 r. obsługiwany był nowy typ synchronicznej pamięci podręcznej. Nowy tryb działania pamięci cache wymagał od niej pracy z częstotliwością zsynchronizowaną z częstotliwością zegara magistrali procesora. Dzięki temu dodatkowo uzyskano większą szybkość i wydajność. W tym samym okresie dodano również funkcję określaną mianem trybu potokowo-seryjnego (pipeline burst mode), który umożliwił dokonanie po każdym pojedynczym odczycie kilku następnych, dzięki czemu zredukowano sumaryczną wartość opóźnienia (cykli oczekiwania). Ze względu na to, że zarówno tryb synchroniczny, jak i potokowo-seryjny zostały w nowych modułach zastosowane w tym samym czasie, obecność jednego oznacza wykorzystanie również drugiego. Pamięć pracująca w trybie potokowo-seryjnym pozwoliła uzyskać 20% przyrost ogólnej wydajności systemu, co było znaczącym osiągnięciem.
W nowszych systemach kontroler pamięci podręcznej znajduje się w mostku północnym chipsetu (komputery z procesorem Pentium i starszymi modelami) lub wewnątrz procesora (komputery z procesorem Pentium Pro/Ił lub nowszymi). Od możliwości kontrolera zależy wydajność i zakres funkcji pamięci podręcznej. Należy zwrócić uwagę na jedną istotną sprawę, mianowicie większość kontrolerów pamięci cache obsługuje układy o ograniczonej pojemności. Często się zdarza, że jest to dość niska wartość, tak jak w przypadku systemów wyposażonych w procesor Pentium i chipset 430TX. Większość pierwszych komputerów klasy Pentium wyposażonych w chipsety 430FX/VX/TX jest w stanie buforować pamięć RAM o maksymalnej pojemności wynoszącej 64 MB. Po zainstalowaniu pamięci przekraczającej tę wartość nastąpi zauważalny spadek wydajności systemu spowodowany tym, że wszystkie dane zapisane powyżej granicy 64 MB nie są buforowane, natomiast dostęp do nich odbywa się przy użyciu wszystkich cykli oczekiwania wymaganych przez wolniejszą pamięć DRAM. Spadek wydajności zależy od typu stosowanych aplikacji i miejsca przechowywania danych w pamięci. Przykładowo, 32-bitowy system operacyjny, taki jak Windows, wykorzystuje najpierw górne segmenty pamięci, dlatego też, jeśli zainstalowałeś 96 MB pamięci RAM, system i aplikacje zostaną załadowane do niebuforowanego obszaru 32 MB znajdującego się powyżej początkowych 64 MB. Efektem będzie znaczny spadek ogólnej wydajności komputera. Rozwiązanie problemu polega na wyjęciu dodatkowego modułu, a tym samym zmniejszeniu całkowitej pojemności pamięci do 64 MB. Podsumowując, instalowanie pamięci RAM o pojemności przekraczającej możliwości buforowania oferowane przez procesor lub chipset nie jest zalecane.
Duron |
Athlon |
Athlon XP |
Pentium III |
Celeron/370 |
Celeron/478 |
Pentium 4 |
1,3 GHz |
1,4 GHz |
2,2 GHz |
1,4 GHz |
1,4 GHz |
2,4 GHz |
3,6 GHz |
0.77 ns (1,3 GHz) |
0,71 ns (1,4 GHz) |
0,45 ns (2,2 GHz) |
0.71 ns (1,4 GHz) |
0,71 ns (1.4 GHz) |
0,42 ns (2,4 GHz) |
0,28 ns (3,6 GHz) |
128 kB |
128 kB |
128 kB |
32 kB |
32 kB |
20 kB |
20 kB |
W rdzeniu |
W rdzeniu |
W rdzeniu |
W rdzeniu |
W rdzeniu |
W rdzeniu |
W rdzeniu |
l/l |
1/1 |
1/1 |
1/1 |
1/1 |
1/1 |
1/1 |
0.77 ns (1,3 GHz) |
0.71 ns (1,4 GHz) |
0,45 ns (2,2 GHz) |
0,71 ns (1,4 GHz) |
0,71 ns (1,4 GHz) |
0,42 ns (2,4 GHz) |
0,28 ns (3,6 GHz) |
64 kB |
256 kB |
512 kB |
512 kB |
256 kB |
128 kB |
1 MB |
200 MHz |
266 MHz |
400 MHz |
133 MHz |
100 MHz |
400 MHz |
800 MHz |
5 ns (200 MHz) |
3,8 ns (266 MHz) |
2,5 ns (400 MHz) |
7,5 ns (133 MHz) |
10 ns (100 MHz) |
2,5 ns (400 MHz) |
1,25 ns (800 MHz) |
"Procesor Pentium Pro byl również dostępny w wersji zawierającej pamięć cache o pojemności 512 i 1024 kB.
W przypadku procesorów Pentium Pro/II lub nowszych modeli zintegrowanych z pamięcią cache L2, kontrolę nad nianie sprawują już zgodne z nimi chipsety. W tym przypadku zadanie to spoczywa na samym procesorze, który ustala maksymalną pojemność buforowania. Procesor Pentium Pro i niektóre starsze wersje układów Pentium II są w stanie zaadresować pamięć o maksymalnej pojemności 64 GB, ale buforować mogą tylko 512 MB. Późniejsze modele procesorów Pentium II i wszystkie układy Pentium II1/4 mogą buforować maksymalnie 4 GB pamięci. I tak większość chipsetów obsługujących te procesor)' pozwala na zastosowanie pamięci RAM o maksymalnych pojemnościach wynoszących 1. 2 lub 4 GB, dlatego ograniczenie dotyczące buforowania jest sprawą dyskusyjną. Wszystkie procesory Xeon przeznaczone dla serwerów są w stanie buforować maksymalnie 64 GB pamięci RAM, co przekracza maksymalne możliwości jakiegokolwiek chipsetu dotyczące obsługi tego typu pamięci.
W każdym przypadku ważne jest, aby instalować pamięć o takiej pojemności, jaka jest obsługiwana przez kontroler pamięci podręcznej. Aby dowiedzieć się, jaka maksymalna pojemność pamięci operacyjnej jest buforowana przez system, należy w przypadku posiadania komputera klasy Pentium lub starszego (oraz każdego systemu zawierającego pamięć cache na płycie głównej) zajrzeć do dokumentacji chipsetu, natomiast jeśli używany jest komputer z procesorem Pentium II lub nowszym (oraz każdego systemu, w którym pamięć cache jest zintegrowana z procesorem), do dokumentacji procesora.
Typy pamięci RAM
Pojęcia szybkości i wydajności pamięci dla niektórych są niejasne, ponieważ szybkość pamięci zazwyczaj jest wyrażana w nanosekundach (ns), natomiast szybkość procesora zawsze była określana przy użyciu megaherców (MHz). Jednak od niedawna, w przypadku niektórych nowszych i szybszych typów pamięci, ich szybkość jest wyrażana w MHz, co dodatkowo wprowadza zamieszanie. Na szczęście możliwe jest wzajemne przeliczanie obu jednostek.
Nanosekunda jest definiowana jako miliardowa część sekundy, czyli naprawdę krótki odcinek czasu. Dla lepszego wyobrażenia można wspomnieć, że prędkość światła w próżni ma wartość 299 792 kilometrów na sekundę. W ciągu jednej miliardowej sekundy promień światła przemierza odcinek o długości zaledwie 29,98 cm, czyli krótszy od długości typowej linijki!
Szybkość procesora i systemu jest wyrażana w megahercach (MHz), które odpowiadają milionom cykli na sekundę. Szybkość można też określać w gigahercach (GHz), czyli miliardach cykli na sekundę. W roku 2005 szybkość procesorów przekroczy 5 GHz, czyli 5 miliardów cykli na sekundę.
Ponieważ posługiwanie się różnymi jednostkami szybkości może wprowadzić zamieszanie, doszedłem do wniosku, że przydatne może okazać się ich porównanie. Wcześniej w rozdziale pokazałem matematyczne zależności umożliwiające wzajemną konwersję jednostek. W tabeli 6.3 przedstawiono zależność występującą pomiędzy szybkościami wyrażonymi w nanosekundach (ns) i megahercach (MHz) mającymi zastosowanie w komputerach PC, począwszy od już nieużywanych, a skończywszy na modelach, które dopiero się pojawią w sprzedaży.
Jak można wywnioskować na podstawie tabeli 6.3, częstotliwości zegara proporcjonalnie zwiększają się, natomiast czas dostępu maleje.
Jeśli zapoznasz się z zawartością tabeli 6.3, z pewnością zauważysz, że ta wyjątkowo „szybka" pamięć DRAM o czasie dostępu 60 ns i taktowana zegarem 16,7 MHz do 1998 r. była instalowana w komputerach wyposażonych w procesor Pentium i układy Pentium II pracujące z częstotliwością 300 MHz lub wyższą. Po takim porównaniu powinieneś zauważyć, jak duża różnica wydajności występowała pomiędzy procesorem a pamięcią operacyjną. W roku 2000 dominującym standardem miały być układy pamięci o nazwie PC100 i PC133, które pracowały odpowiednio z częstotliwością 100 i 133 MHz. Z początkiem roku 2001 popularność zyskały układy pamięci DDR (Double Data Rate) taktowane zegarem 2001 i 266 MHz oraz pamięć RDRAM, która mogła pracować z częstotliwością 800 MHz. W roku 2002 pojawił się standard pamięci DDR 333 MHz, natomiast w 2003 r. jej szybkość zwiększyła się do 400 MHz. W roku 2004 na rynku pojawiła się pamięć DDR2 — początkowo o szybkości 400 MHz, a później 533 MHz.
Zagadnienia związane z taktowaniem pamięci operacyjnej nie sprowadzają się tylko do konwersji nanosekund na megaherce i są trochę bardziej złożone. Najbardziej efektywny sposób organizacji tranzystorów pamięci przechowujących jej poszczególne bity pozwalający na dostęp do nich jest oparty na siatce wykorzystującej układ wierszy i kolumn. Wszystkie operacje dostępu do pamięci polegają na określeniu adresu wiersza, a następnie adresu kolumny i pobraniu danych. Początkowe przygotowanie operacji dostępu do danych pamięci, w której określa się adres wiersza i kolumny, jest wymaganym etapem określanym mianem opóźnienia (latency). Czas dostępu do pamięci jest sumą czasu cyklu i opóźnienia związanego z wybraniem adresów wierszy i kolumn. Przykładowo, pamięć SDRAM taktowana zegarem 133 MHz (7,5 ns) zazwyczaj na przygotowanie i zakończenie pierwszej operacji pobrania danych potrzebuje pięciu cykli (5 x 7,5 ns = 37,5 ns), po czym przeprowadza jeszcze trzy dodatkowe operacje odbywające się bez etapu początkowego. Wynika z tego, że w celu wykonania czterech operacji odczytu danych wymagane jest wykonanie ośmiu cykli lub średnio dwóch cykli na operację.
Tabela 6.3. Zależność pomiędzy szybkością wyrażoną w megahercach (MHz) i w nanosekundach (ns)
Częstotliwość zegara |
Czas cyklu |
Częstotliwość zegara |
Czas cyklu |
Częstotliwość zegara |
Czas cyklu |
4,77 MHz |
210ns |
120 MHz |
8,3 ns |
450 MHz |
2,2 ns |
6 MHz |
167 ns |
133 MHz |
7,5 ns |
466 MHz |
2,1 ns |
8 MHz |
125 ns |
150 MHz |
6,7 ns |
500 MHz |
2,0 ns |
10 MHz |
100 ns |
166 MHz |
6,0 ns |
533 MHz |
1,88 ns |
12 MHz |
83 ns |
180 MHz |
5,6 ns |
550 MHz |
1,82 ns |
16 MHz |
63 ns |
200 MHz |
5,0 ns |
566 MHz |
1,77 ns |
20 MHz |
50 ns |
225 MHz |
4,4 ns |
600 MHz |
1,67 ns |
25 MHz |
40 ns |
233 MHz |
4,3 ns |
633 MHz |
1,58 ns |
33 MHz |
30 ns |
250 MHz |
4,0 ns |
650 MHz |
1,54 ns |
40 MHz |
25 ns |
266 MHz |
3,8 ns |
666 MHz |
1,50 ns |
50 MHz |
20 ns |
300 MHz |
3,3 ns |
700 MHz |
1,43 ns |
60 MHz |
17 ns |
333 MHz |
3,0 ns |
733 MHz |
1,36 ns |
66 MHz |
15 ns |
350 MHz |
2,9 ns |
750 MHz |
1,33 ns |
75 MHz |
13 ns |
366 MHz |
2,7 ns |
766 MHz |
1,31 ns |
80 MHz |
13 ns |
400 MHz |
2,5 ns |
800 MHz |
1,25 ns |
100 MHz |
10 ns |
433 MHz |
2,3 ns |
833 MHz |
1,20 ns |
1 Efektywnym — rzeczywista częstotliwość jest równa zawsze polowie efektywnej i wynosi w tym przypadku 100 MHz.
Historia ewolucji komputera PC związana jest z trudnościami wynikającymi ze stosowania pamięci znacznie wolniejszej od procesora. Z tego też powodu konieczne było zastosowanie kilku poziomów szybkiej pamięci podręcznej obsługującej żądania procesora dotyczące danych znajdujących się w pamięci RAM. W tabeli 6.4 przedstawiono zależność pomiędzy częstotliwościami pracy płyt głównych oraz różnymi szybkościami i typami pamięci operacyjnej (RAM). Ponadto pokazano uzyskiwaną całkowitą przepustowość. Wiele szybszych pamięci wymienionych w tabeli jest tylko propozycją przyszłych standardów, jeszcze niewprowadzonych oficjalnie do sprzedaży.
Zazwyczaj najlepiej jest, gdy przepustowość magistrali pamięci odpowiada przepustowości magistrali procesora. Porównaj w tabeli 6.5 przepustowość magistrali pamięci z częstotliwością pracy magistrali procesora. Powinieneś zauważyć, że niektóre wartości przepustowości magistrali pamięci odpowiadają wybranym częstotliwościom magistrali procesora. W większości przypadków najlepszym typem pamięci dla systemu jest pamięć oferująca przepustowość równą osiągom magistrali zainstalowanego procesora.
Ponieważ procesor w znacznym stopniu jest odizolowany od bezpośredniej współpracy z pamięcią operacyjną przez pamięć cache LI i L2. wydajność pamięci często nie dorównuje wydajności magistrali procesora. Jednak w ostatnim czasie w systemach wyposażonych w układy SDRAM, DDR SDRAM i RDRAM wydajność magistrali pamięci zrównała się z osiągami magistrali procesora. Wydajność pamięci osiąga optymalny poziom wtedy, gdy szybkość jej magistrali jest równa szybkości magistrali procesora.
Częstotliwość zegara |
Czas cyklu |
Częstotliwość zegara |
Czas cyklu |
Częstotliwość zegara |
Czas cyklu |
850 MHz |
1,18 ns |
1900 MHz |
0,53 ns |
3500 MHz |
0,286 ns |
866 MHz |
1,15 ns |
2000 MHz |
0,50 ns |
3600 MHz |
0,278 ns |
900 MHz |
1,11 ns |
2100 MHz |
0,48 ns |
3700 MHz |
0,270 ns |
933 MHz |
1,07 ns |
2200 MHz |
0,45 ns |
3800 MHz |
0,263 ns |
950 MHz |
1,05 ns |
2300 MHz |
0,43 ns |
3900 MHz |
0,256 ns |
966 MHz |
1,04 ns |
2400 MHz |
0,42 ns |
4000 MHz |
0,250 ns |
1000 MHz |
1,00 ns |
2500 MHz |
0,40 ns |
4100 MHz |
0,244 ns |
1100 MHz |
0,91 ns |
2600 MHz |
0,38 ns |
4200 MHz |
0,238 ns |
1133 MHz |
0,88 ns |
2700 MHz |
0,37 ns |
4300 MHz |
0,233 ns |
1200 MHz |
0,83 ns |
2800 MHz |
0,36 ns |
4400 MHz |
0,227 ns |
1300 MHz |
0,77 ns |
2900 MHz |
0,34 ns |
4500 MHz |
0,222 ns |
1400 MHz |
0,71 ns |
3000 MHz |
0,333 ns |
4600 MHz |
0,217 ns |
1500 MHz |
0,67 ns |
3100 MHz |
0,323 ns |
4700 MHz |
0,213 ns |
1600 MHz |
0,63 ns |
3200 MHz |
0,313 ns |
4800 MHz |
0,208 ns |
1700 MHz |
0,59 ns |
3300 MHz |
0,303 ns |
4900 MHz |
0,204 ns |
1800 MHz |
0,56 ns |
3400 MHz |
0,294 ns |
5000 MHz |
0.200 ns |
Tabela 6.4. Porównanie szybkości różnych typów pamięci DRAM oraz częstotliwości magistrali procesora i przepustowości systemu (systemy już nieużywane, aktualnie dostępne i dopiero opracowywane)
Standard modułu |
Format modułu |
Typ układu |
Częstotliwość zegara (MHz) |
Liczba cykli zegarowych |
Szybkość magistrali (MT/s) |
Szerokość magistrali (bajty) |
Przepustowość (MB/s) |
FPM |
SIMM |
60 ns |
22 |
1 |
22 |
8 |
177 |
EDO |
SIMM |
60 ns |
33 |
1 |
33 |
8 |
266 |
PC66 |
SDR DIMM |
10 ns |
67 |
1 |
66 |
8 |
533 |
PC 100 |
SDR DIMM |
8ns |
100 |
1 |
100 |
8 |
800 |
PC 133 |
SDR DIMM |
7/7,5 ns |
133 |
1 |
133 |
8 |
1066 |
PC 1600 |
DDR DIMM |
DDR200 |
100 |
2 |
200 |
8 |
1600 |
PC2100 |
DDR DIMM |
DDR266 |
133 |
2 |
266 |
8 |
2133 |
PC2400 |
DDR DIMM |
DDR300 |
150 |
2 |
300 |
8 |
2400 |
PC2700 |
DDR DIMM |
DDR333 |
166 |
2 |
333 |
8 |
2666 |
PC3000 |
DDR DIMM |
DDR366 |
183 |
2 |
366 |
8 |
2933 |
PC3200 |
DDR DIMM |
DDR400 |
200 |
2 |
400 |
8 |
3200 |
PC3500 |
DDR DIMM |
DDR433 |
216 |
2 |
433 |
8 |
3466 |
PC3700 |
DDR DIMM |
DDR466 |
233 |
2 |
466 |
8 |
3733 |
PC4000 |
DDR DIMM |
DDR500 |
250 |
2 |
500 |
8 |
4000 |
PC4300 |
DDR DIMM |
DDR533 |
266 |
2 |
533 |
8 |
4266 |
PC2-3200 |
DDR2 DIMM |
DDR2-400 |
200 |
2 |
400 |
8 |
3200 |
PC2-5400 |
DDR2 DIMM |
DDR2-667 |
333 |
2 |
667 |
8 |
5333 |
PC2-6400 |
DDR2 DIMM |
DDR2-800 |
400 |
2 |
800 |
8 |
6400 |
PC2-4300 |
DDR2 DIMM |
DDR2-533 |
266 |
2 |
533 |
8 |
4266 |
RIMM1200 |
RIMM-16 |
PC600 |
300 |
2 |
600 |
2 |
1200 |
R1MM1400 |
RIMM-16 |
PC700 |
350 |
2 |
700 |
2 |
1400 |
RJMM1600 |
RIMM-16 |
PC800 |
400 |
2 |
800 |
2 |
1600 |
RIMM2100 |
RIMM-16 |
PC1066 |
533 |
2 |
1066 |
2 |
2133 |
RIMM2400 |
RIMM-16 |
PC1200 |
600 |
2 |
1200 |
2 |
2400 |
R1MM3200 |
RIMM-32 |
PC800 |
400 |
2 |
800 |
4 |
3200 |
R1MM4200 |
RIMM-32 |
PC 1066 |
533 |
2 |
1066 |
4 |
4266 |
R1MM4800 |
RIMM-32 |
PC1200 |
600 |
2 |
1200 |
4 |
4800 |
MT/s = Megatransfers per second (megatransferów na sekundę).
ns = Nanosekundy (miliardowa część sekundy).
EDO = Extended data out.
DIMM = Dual in/ine memory module.
DDR = Double data rate.
MB/s = Megabytes per second (megabajtów na sekundę).
FPM = Fast Page Mode.
SIMM = Single inline memory module.
R1MM = Rambus inline memory module.
SDR = Single data rate.
Tabela 6.5. Przepustowość magistrali procesora
Typ magistrali procesora |
Częstotliwość magistrali (MHz) |
Liczba cykli zegarowych |
Szybkość magistrali (MT/s) |
Szerokość magistrali (bajty) |
Przepustowość (MB/s) |
33 MHz 486 FSB |
33 |
1 |
33 |
4 |
133 |
66 MHz Pentium I/II/III FSB |
66 |
1 |
66 |
8 |
533 |
100 MHz Pentium I/II/III FSB |
100 |
1 |
100 |
8 |
800 |
133 MHz Pentium I/11/II1 FSB |
133 |
1 |
133 |
oo |
1066 |
200 MHz Athlon FSB |
100 |
2 |
200 |
8 |
1600 |
266 MHz Athlon FSB |
133 |
2 |
266 |
8 |
2133 |
333 MHz Athlon FSB |
166 |
2 |
333 |
8 |
2667 |
400 MHz Athlon FSB |
200 |
2 |
400 |
8 |
3200 |
400 MHz Pentium 4 FSB |
100 |
4 |
400 |
8 |
3200 |
533 MHz Pentium 4 FSB |
133 |
4 |
533 |
8 |
4266 |
800 MHz Pentium 4 FSB |
200 |
4 |
800 |
8 |
6400 |
FSB = Front side bus — magistrala systemowa.
MB/s = Megabytes per second (megabajty na sekundą).
MT/s = Megatransfers per second (megatransfery na sekundę).
FPM (Fast Page Mode) DRAM
Dostęp do standardowej pamięci DRAM odbywa się przy wykorzystaniu techniki określanej mianem stronicowania (paging). Typowa operacja dostępu do pamięci wymaga określenia adresu wiersza i kolumny, a to zajmuje czas. Dzięki zastosowaniu stronicowania uzyskuje się szybszy dostęp do wszystkich danych zawartych w określonym wierszu pamięci. Jest to możliwe poprzez utrzymywanie jednakowego adresu wiersza i zmianę adresu kolumn. Pamięć wykorzystująca stronicowanie określana jest jako pamięć PM (Page Mode) lub FPM (Fast Page Mode). Istnieją również inne odmiany pamięci PM — SC (Static Columri) lub NM (Nib-ble Mode).
Stronicowanie jest prostą metodą zwiększenia wydajności pamięci. Polega na podzieleniu pamięci na strony o rozmiarze od 512 bajtów do kilku kilobajtów. Dzięki zastosowaniu mechanizmu stronicowania dostęp do komórek strony pamięci realizowany jest przy mniejszej ilości cykli oczekiwania. Jeśli żądana komórka pamięci znajduje się poza aktualną stroną, wtedy w celu umożliwienia systemowi wybrania nowej strony konieczne jest dodanie jednego lub kilku stanów oczekiwania.
W celu dalszego skracania czasu dostępu do pamięci opracowywano nowe systemy, w których uzyskiwano szybszy dostęp do pamięci DRAM. Jednym z ważniejszych osiągnięć było zastosowanie w komputerach wyposażonych w procesor 486 i nowsze układy seryjnego trybu dostępu (burst mode access). W seryjnym taktowaniu pamięci wykorzystano fakt, że większość operacji dostępu do niej dotyczy komórek ze sobą sąsiadujących. Po określeniu dla danej operacji dostępu adresu wiersza i kolumny oraz przy użyciu trybu seryjnego możliwe jest uzyskanie dostępu do następnych trzech przyległych adresów bez konieczności pojawienia się dodatkowego opóźnienia lub cykli oczekiwania. Zazwyczaj tryb dostępu seryjnego ograniczony jest do czterech kolejnych odczytów lub zapisów. W celu opisania taktowania często dla każdej operacji dostępu podaje się liczbę wymaganych cykli. Typowy tryb dostępu seryjnego standardowej pamięci DRAM wyrażany jest zapisem o postaci x-y-y-y, gdzie x jest czasem pierwszego dostępu (suma opóźnienia i czasu cyklu), natomiast y określa liczbę cykli wymaganych dla kolejnych operacji dostępu.
Typowa pamięć DRAM o czasie dostępu 60 ns zazwyczaj w trybie seryjnym jest taktowana zgodnie ze schematem 5-3-3-3. Oznacza to, że pierwsza operacja dostępu wymaga pięciu cykli (w przypadku magistrali systemowej taktowanej zegarem 66 MHz daje to około 75 ns lub inaczej 5x15 ns), natomiast każda następna już tylko trzech (3 x 15 ns = 45 ns). Jak można wywnioskować, rzeczywiste wartości taktowania są mniejsze od technicznych możliwości pamięci. Bez zastosowania trybu seryjnego dostęp do pamięci odbywałby się zgodnie ze schematem 5-5-5-5, który wynika z konieczności użycia pełnego opóźnienia wymaganego przy każdej operacji odczytu lub zapisu danych.
Pamięć DRAM obsługująca stronicowanie i tryb seryjny określana jest mianem pamięci FPM (Fast Page Mode). Nazwa ta pochodzi od możliwości dostępu do danych pamięci znajdujących się na tej samej stronie, który odbywa się przy mniejszym opóźnieniu. Pamięć FPM stosowano w większości systemów wyposażonych w procesor 486 i Pentium produkowanych do roku 1995.
Kolejną metodą przyspieszającą pamięć FPM jest przeplatanie (interleaving). Zasada jej działania opiera się na dwóch oddzielnych bankach pamięci, które są udostępniane naprzemiennie (bajty parzyste i nieparzyste). W momencie, gdy do jednego banku został udzielony dostęp, w drugim trwa operacja ładowania, która polega na określaniu adresu wiersza i kolumny. W chwili, gdy w pierwszym banku zostanie zakończone przekazywanie danych, drugi bank kończy etap ustawiania opóźnienia i jest gotowy do przekazania danych. Podczas gdy drugi bank przekazuje dane, w pierwszym określany jest adres wiersza i kolumny dla następnej operacji dostępu. Wzajemne nakładanie się operacji dostępu w obu bankach zmniejsza wpływ opóźnienia lub cykli ładowania, dzięki czemu dane są przetwarzane znacznie szybciej. Jedyny problem, jaki pojawia się w przypadku przeplatania, jest związany z koniecznością instalacji identycznych modułów pamięci w każdych dwóch bankach, przez co zostaje podwojona ilość wymaganych układów pamięci SIMM lub DIMM. Taka metoda była popularna w przypadku systemów wyposażonych w procesor 486 i 32-bitową pamięć, ale ze względu na układy pamięci dwukrotnie szersze (64-bitowe) została zaniechana w komputerach klasy Pentium. Aby w tego typu systemach możliwe było wykorzystanie przeplatania wymagana jest instalacja modułów pamięci o łącznej szerokości 128-bitów, co odpowiada czterem 72-końcówkowym układom SIMM lub dwóm układom DIMM.
EDO (Extended Data Out) RAM
W roku 1995 w sprzedaży pojawił się nowszy typ pamięci o nazwie EDO (Extended Data Out) RAM przeznaczony dla systemów klasy Pentium. Ze względu na to. że pamięć EDO jest zmodyfikowaną postacią układu FPM, czasami jest określana mianem pamięci HPM (Hyper Page Mode). Pamięć EDO została opracowana i opatentowana przez firmę Micron Technology, która następnie udzieliła licencji na jej wytwarzanie wielu innym producentom. Pamięć EDO jest złożona ze specjalnie wykonanych układów pozwalających na nakładanie się taktowania kolejnych operacji dostępu. Nazwa pamięci (extended data out — rozszerzone wyjście danych) ściśle związana jest z tym, że w przeciwieństwie do układu FPM sterowniki wyjścia danych układu nie są wyłączane w momencie, gdy kontroler pamięci w celu rozpoczęcia następnego cyklu usuwa adres kolumny. Dzięki temu następny cykl może nakładać się na poprzedni, a to pozwala w ciągu cyklu zaoszczędzić w przybliżeniu 10 ns.
Mechanizm działania pamięci EDO pozwala na skrócenie cykli, co jest możliwe dzięki kontrolerowi pamięci, który już w trakcie odczytu danych spod aktualnego adresu rozpoczyna przetwarzać kolejną instrukcję adresującą nową kolumnę. Uzyskany efekt jest prawie identyczny z tym, który osiągano w starszych systemach wykorzystujących przeplatanie banków pamięci. Jednak, w przeciwieństwie do przeplatania, w przypadku pamięci EDO nie jest wymagana instalacja w bankach pamięci dwóch identycznych modułów.
W porównaniu do schematu taktowania 5-3-3-3 standardowej pamięci FPM, układ EDO RAM pozwala na zastosowanie taktowania w trybie seryjnym zgodnie ze schematem 5-2-2-2. Wynika z tego, że w celu wykonania czterech operacji przesłania danych pamięć EDO wymaga 11 cykli. W przypadku pamięci FPM byłoby to 14 cykli, czyli uzyskuje się skrócenie czasu trwania operacji o 22%. Niestety, w rzeczywistych testach pamięci EDO otrzymywane wyniki wskazują, że zazwyczaj przyrost ogólnej szybkości wynosi około 5%. Chociaż taka wartość może nie robić większego wrażenia, to jednak zaletą pamięci EDO jest to, że oparta jest na takiej samej ogólnej architekturze układów DRAM jak pamięć FPM, co oznacza, że jej produkcja praktycznie nie będzie związana z żadnymi dodatkowymi kosztami. I faktycznie, w okresie największej popularności pamięć EDO była tańsza od układów FPM, a ponadto oferowała lepszą wydajność.
Pamięć EDO RAM zazwyczaj jest wykonana w postaci 72-końcówkowego modułu SIMM. Na rysunku 6.3 (w dalszej części rozdziału) przedstawiono wymiary takiego modułu.
Aby zastosować pamięć EDO, chipset używanej płyty głównej musi ją obsługiwać. Większość chipsetów płyt głównych, począwszy od chipsetu Intel 430FX (Triton) z roku 1995, a skończywszy na układzie Intel 430TX z roku 1997 jest kompatybilna z pamięcią EDO. Ponieważ koszt produkcji układów EDO byl taki sam jak w przypadku standardowych modułów, a ponadto obsługiwały je wszystkie chipsety firmy Intel, w efekcie rynek komputerów PC dość szybko zaakceptował pamięć tego typu.
^ ^ Zajrzyj do podrozdziału „Chipsety piątej generacji (klasa P5 Pentium)" znajdującego się na stronie 302.
► ► Zajrzyj do podrozdziału „Chipsety szóstej generacji (procesory P6 Pentium Pro/ll/lll)" znajdującego się na stronie 309.
Pamięć EDO RAM idealnie nadawała się do komputerów produkowanych do roku 1997, które pracowały z maksymalną częstotliwością płyty głównej wynoszącą 66 MHz. Jednak wraz z pojawieniem się w 1998 r. nowszej i szybszej pamięci (100 MHz i więcej) wykonanej w architekturze SDRAM, która stała się standardem dla nowych komputerów PC, pamięć EDO szybko znikła z rynku.
Odmianą pamięci EDO jest układ BEDO (Burst Extended Data Out). Od EDO układ BEDO różni się jedynie specjalnym trybem seryjnym, który pozwala przesyłać dane z jeszcze z większą szybkością. Niestety technologia pamięci BEDO została kupiona przez firmę Micron i standard nie był bezpłatny, dlatego nowy typ pamięci byl obsługiwany tylko przez jeden chipset (Intel 440FX Natoma). W efekcie standard został szybko wyparty przez standard pamięci SDRAM, która zyskała znacznie większe uznanie u producentów chipsetów i komputerów. Tak naprawdę układy BEDO nie były produkowane w większych ilościach i, jak się orientuję, nie zostały zastosowane w żadnym systemie.
SDRAM
SDRAM (Synchronous DRAM) jest typem pamięci DRAM zsynchronizowanej z magistralą pamięci. Dostęp do danych pamięci SDRAM odbywa się przy użyciu wydajnego potoku, który korzysta z szybkiego taktowanego interfejsu. Dzięki temu, że sygnały pamięci SDRAM są już zsynchronizowane z częstotliwością płyty głównej, uniknięto większości opóźnień charakterystycznych dla asynchronicznej pamięci DRAM.
Podobnie jak miało to miejsce w przypadku pamięci EDO, w celu wykorzystania pamięci SDRAM musi być ona obsługiwana przez chipset posiadanej płyty głównej. Począwszy od roku 1996, kiedy pojawiły się chipsety 430VX i 430TX, większość następnych układów firmy Intel współpracowała ze standardowym układem SDRAM, dzięki czemu tego typu pamięć była najczęściej stosowaną w nowych komputerach produkowanych w okresie od roku 2000 do 2001.
W porównaniu z układami FPM i EDO wydajność pamięci SDRAM została znacznie zwiększona. Ze względu na to, że układ SDRAM jest typem pamięci DRAM, początkowa wartość opóźnienia jest nadal jednakowa, ale ogólny czas trwania cykli został znacznie skrócony. Pamięć pracująca w trybie seryjnym taktowana jest według schematu 5-1-1-1, co oznacza, że na wykonanie czterech operacji odczytu wymaganych jest tylko osiem cykli magistrali systemowej. W przypadku pamięci EDO i FPM było to odpowiednio 11 i 14 cykli. Mniejsza liczba cykli pamięci SDRAM pozwala w stosunku do pamięci EDO uzyskać przyrost szybkości o prawie 20%.
Poza mniejszą liczbą wymaganych cykli pamięć SDRAM może być również taktowana przez magistralę systemową pracującą z maksymalną częstotliwością 133 MHz (7,5 ns). Większość komputerów PC sprzedanych w okresie od 1998 do 2000 roku była wyposażona w układy pamięci SDRAM.
Pamięć SDRAM sprzedawana jest w postaci modułów DIMM i zamiast czasu dostępu wyrażonego w nanosekundach w celu określenia jej szybkości często stosuje się megaherce, co było mylące w przypadku wymiany pamięci FPM na EDO DRAM. Na rysunku 6.4 (w dalszej części rozdziału) przedstawiono wymiary takiego modułu.
W celu spełnienia znacznych wymagań produkowanych przez siebie chipsetów związanych z taktowaniem pamięci SDRAM, firma Intel opracowała kilka specyfikacji o nazwach PC66, PC100 i PC133. Aby spełnić wymagania zawarte w specyfikacji PC100, czas dostępu do układów pamięci zazwyczaj musi być równy 8 ns. Z pewnością dojdziesz do wniosku, że czas dostępu wynoszący 10 ns będzie wartością odpowiednią dla operacji wykonywanych z częstotliwością 100 MHz, ale specyfikacja PC100 wymaga krótszego czasu, który zagwarantuje uzyskanie wszystkich żądanych parametrów dotyczących taktowania.
W maju 1999 r. organizacja JEDEC (Joint Electronic Devices Engineering Council) opracowała specyfikację o nazwie PC133. Dodatkowe zwiększenie częstotliwości o 33 MHz możliwe było dzięki zoptymalizowaniu parametrów związanych z pojemnością i taktowaniem określonych w specyfikacji PC100. Szybszy układ SDRAM zgodny ze specyfikacją PC 133 w krótkim czasie okazał się najczęściej stosowanym typem pamięci wykorzystywanym w systemach wyposażonych w magistralę procesora taktowaną zegarem 133 MHz. Oryginalne układy stosowane w modułach PC133 miaty czas dostępu wynoszący dokładnie 7,5 ns lub częstotliwość równą 133 MHz. Późniejsze układy oferowały odpowiednio wartości 7,0 ns i 143 MHz. Szybsze pamięci były nadal używane w modułach PC 133, ale pozwalały poprawić opóźnienie CAS (Column Address Strobę), co w pewnym stopniu miało wpływ na całkowity czas dostępu do pamięci.
JEDEC jest częścią organizacji handlowej EIA (Electronic Industries Alliance), zajmującą się standaryzacją dotyczącą branży półprzewodników. Organizacja EIA reprezentuje wszystkie branże przemysłu elektronicznego. Organizacja JEDEC powstała w 1960 r. i nadzoruje standaryzację każdego typu urządzeń półprzewodnikowych, układów scalonych i modułów. Należy do niej około 300 firm, w tym producenci pamięci, chipsetów i procesorów. Członkiem organizacji jest praktycznie każda firma zaangażowana w wytwarzanie sprzętu komputerowego opartego na standardowych komponentach.
Cel istnienia organizacji JEDEC jest oczywisty. Jeśli na przykład jedna firma opracowałaby własną technologię pamięci, inne zamierzające wytwarzać zgodne z nią komponenty musiałyby wykupić licencję — i to przy założeniu, że firma będąca właścicielem technologii byłaby w ogóle zainteresowana udzielaniem na nią licencji! Z reguły komponenty mogą być częściej zastrzeżone, przez co pojawiają się problemy z ich zamiennością lub z zakupem części zamiennych po rozsądnej cenie. Dodatkowo firmy, które nabyły licencję na technologię, mogą w przyszłości nie mieć wpływu na jej modyfikacje lub rozwój realizowany przez właściciela.
Celem organizacji JEDEC jest zapobiegnięcie tego typu sytuacjom, w których — dla przykładu — technologią jest pamięć. Organizacja skupia wszystkich producentów pamięci, którzy ze sobą współpracują w celu opracowania wspólnych standardów branżowych dotyczących układów pamięci i modułów. Ze standardów pamięci zatwierdzonych przez JEDEC mogą następnie nieodpłatnie korzystać wszystkie firmy będące członkami organizacji. Żaden producent nie sprawuje wyłącznej kontroli nad określonym standardem. Każda firma wytwarza zgodne komponenty. Przykładami standardów pamięci stosowanych w komputerach PC i zatwierdzonych przez JEDEC są FPM, SDRAM, DDR SDRAM i DDR2 SDRAM. Z kolei pamięci EDO i RDRAM są przykładami technologii zastrzeżonych. Więcej informacji na temat standardów organizacji JEDEC dotyczących pamięci i innych technologii opartych na półprzewodnikach można znaleźć na stronie internetowej znajdującej się pod adresem http://www.jedec.org.
W tabeli 6.6 zestawiono czas dostępu, rzeczywistą i podaną przez producenta częstotliwość pracy różnych wersji układów SDRAM DIMM.
Tabela 6.6. Czas dostępu, rzeczywista i podana przez producenta częstotliwość pracy układów pamięci SDRAM
Czas dostępu |
Rzeczywista częstotliwość |
Standardowe oznaczenie częstotliwości modułu |
15 ns |
66 MHz |
PC66 |
lOns |
100 MHz |
PC66 |
8 ns |
125 MHz |
PC 100 |
7,5 ns |
133 MHz |
PC133 |
7,0 ns |
143 MHz |
PC 133 |
Warto zauważyć, że kilku wytwórców modułów przy ich sprzedaży stosuje oznaczenie PC150 lub PC166, pomimo tego, że takie częstotliwości nie są oficjalnymi standardami organizacji JEDEC ani firmy Intel, a ponadto nie są oficjalnie obsługiwane przez żaden chipset ani procesor. Zwykle tego typu moduły są starannie wybranymi układami o czasie dostępu 7,5 (133 MHz) lub 7,0 ns (143 MHz), które mogą zostać przetaktowa-ne do szybkości wynoszącej odpowiednio 150 lub 166 MHz. W zasadzie moduł PC 150 lub PC 166 powinien nosić bardziej precyzyjne oznaczenie PC 133 — pamięci, która była sprawdzana pod kątem możliwości pracy z częstotliwością nieuznawaną przez producenta samych układów pamięci. Tak specjalnie wyselekcjonowana pamięć, którą można przetaktować, jest sprzedawana po wyższej cenie entuzjastom zamierzającym przetak-tować chipset płyty głównej, co spowoduje zwiększenie szybkości magistrali pamięci i procesora.
Tabela 6.7. Typy modułów SDRAM i ich przepustowości
Typ modułu |
Format modułu |
Typ układu |
Częstotliwość zegara (MHz) |
Liczba cykli zegarowych |
Szybkość magistrali (MT/s) |
Szerokość magistrali (bajty) |
Szybkość transferu |
PC66 |
SDR DIMM |
10 ns |
66 |
1 |
66 |
8 |
533 |
PC 100 |
SDR DIMM |
8ns |
100 |
I |
100 |
8 |
800 |
PC133 |
SDR DIMM |
7/7,5 ns |
133 |
1 |
133 |
8 |
1066 |
MT/s = Megatransfers per second (megatransfery na sekundę). MB/s - Megabytes per second (megabajty na sekundę), ns = Nanosekundy (miliardowe części sekundy). DIMM = Dual inline memory module. SDR = Single dala rate
W tabeli 6.7 podano standardowe typy modułów SDRAM i uzyskiwane przepustowości.
^ ► Zajrzyj do punktu „Moduły SIMM, DIMM i RIMM" znajdującego się na stronie 543.
DDR SDRAM
Pamięć DDR {Double Data Rate) SDRAM jest opracowanym przez organizację JEDEC standardem będącym ewolucyjnym rozwinięciem typowego układu SDRAM. Charakteryzuje się możliwością przesyłania dwukrotnie większej ilości danych. Zamiast podwajać częstotliwość zegara, dwukrotne zwiększenie wydajności w pamięci DDR osiągnięto dzięki wykonywaniu w ciągu pojedynczego cyklu dwóch operacji przesłania danych. Pierwsza z nich odbywa się na rosnącym, natomiast druga na opadającym zboczu cyklu (rysunek 6.1). Nawet pomimo to, że nadal są wykorzystywane takie same sygnały i częstotliwość, uzyskuje się podwojenie ilości przesyłanych danych.
Rysunek 6.1.
Porównanie taktowania układów pamięci SDR (single data rate) i DDR (double dała rate)
Początkowo pamięć DDR znalazła zastosowanie głównie w kartach graficznych i od tego momentu stała się najpopularniejszym standardem pamięci instalowanej w komputerach PC. Układy DDR SDRAM są obsługiwane przez wszystkich ważniejszych producentów procesorów, chipsetów i pamięci.
Pamięć DDR SDRAM pojawiła się w sprzedaży w roku 2000, ale tak naprawdę popularność zdobyła dopiero pod koniec 2001 r., gdy na rynku pojawiły się płyty główne i chipsety z nią kompatybilne. Układ DDR SDRAM jest wykonany w postaci nowego modułu DIMM wyposażonego w 184 końcówki. Na rysunku 6.5 (w dalszej części rozdziału) pokazano taki moduł.
Dostępne są pamięci DDR DIMM oferujące różne szybkości lub przepustowości i zazwyczaj zasilane napięciem 2,5 V. Przede wszystkim nowy typ pamięci stanowi rozszerzenie standardowego układu SDRAM DIMM. który został zmodyfikowany pod kątem obsługi dwukrotnie większej ilości przesyłanych danych, co było możliwe dzięki użyciu zamiast jednego —jak w przypadku typowego układu SDRAM — dwóch taktów zegara w ciągu cyklu. Aby zapobiec pomyłkom, zwykłe moduły pamięci SDRAM często są nazywane pamięciami SDR (Single Data Rate). W tabeli 6.8 zawarto różne typy modułów pamięci SDRAM i DDR SDRAM. Jak można zauważyć, układy pamięci są oznaczane za pomocą ich szybkości wyrażonej w megatransferach na sekundę, natomiast moduły przy użyciu przybliżonej przepustowości określonej w megabajtach na sekundę.
Tabela 6.8. Typy modułów i przepustowość pamięci DDR SDRAM
Typ modułu (DIMM) |
Format modułu |
Typ układu |
Częstotliwość zegara (MHz) |
Liczba cykli zegarowych |
Szybkość magistrali (MT/s) |
Szerokość magistrali (bajty) |
Przepustowość (MB/s) |
PC 1600 |
DDR DIMM |
DDR200 |
100 |
2 |
200 |
OO |
1600 |
PC2I00 |
DDR DIMM |
DDR266 |
133 |
2 |
266 |
8 |
2133 |
PC2400 |
DDR DIMM |
DDR300 |
150 |
2 |
300 |
oo |
2400 |
PC2700 DDR DIMM |
DDR333 |
166 |
2 |
333 |
8 |
2667 |
|
PC3000 |
DDR DIMM |
DDR366 |
183 |
2 |
366 |
8 |
2933 |
PC3200 |
DDR DIMM |
DDR400 |
200 |
2 |
400 |
8 |
3200 |
PC3500 |
DDR DIMM |
DDR433 |
216 |
2 |
433 |
8 |
3466 |
PC3700 |
DDR DIMM |
DDR466 |
233 |
2 |
466 |
oo |
3733 |
PC4000 |
DDR DIMM |
DDR500 |
250 |
2 |
500 |
8 |
4000 |
PC4300 |
DDR DIMM |
DDR533 |
266 |
2 |
533 |
OO |
4266 |
MT/s = Megatransfers per second (megatransfery na sekundę).
MBs = Megabyles per second (megabajty na sekundę).
DIMM = Dual inline memory module.
DDR = Double data rate
Przepustowości podane w tabeli dotyczą jednego modułu. Wiele nowszych chipsetów obsługuje dwukanałową pamięć DDR, w przypadku której jednocześnie instalowane są dwa moduły DIMM funkcjonujące jak pojedynczy bank oferujący podwojoną przepustowość jednego modułu. Przykładowo chipsety z rodziny Intel 865 i 875 korzystają z dwukanałowej pamięci DDR. Chipsety te współpracują z magistralą FSB procesora Pentium 4, taktowaną zegarem o częstotliwości 800 MHz. Magistrala ta przesyła w danej chwili 8 bajtów (64 bity), co odpowiada przepustowości równej 6400 MB/s (800 x 8). Płyty główne wyposażone w magistralę FSB 800 MHz korzystają ze standardowych modułów pamięci PC3200, których jednocześnie trzeba zainstalować dwie sztuki (są to moduły dwukanałowe). Całkowita przepustowość obu modułów wynosi 6400 MB/s (3200 x 2). Rozwiązanie takie pozwala dokładnie dopasować przepustowość magistrali pamięci do przepustowości magistrali procesora. Dzięki temu uzyskuje się najlepszą możliwą wydajność. W celu zoptymalizowania wydajności komputera PC należy zadbać o to, aby magistrale procesora i pamięci pracowały z taką samą szybkością (chodzi tu o jednakową przepustowość, a nie o liczbę megaherców). Gdy warunek ten zostanie spełniony, dane będą mogły być synchronicznie przesyłane pomiędzy magistralami bez wystąpienia opóźnień.
DDR2 SDRAM
Prace nad specyfikacją pamięci DDR2 organizacja JEDEC i jej członkowie rozpoczęli w kwietniu 1998 r. Standard został opublikowany we wrześniu 2003 r. Produkcja układu i modułu pamięci DDR2 rozpoczęła się w połowie 2003 r. (głównie były to próbki i prototypy). Pierwsze chipsety, płyty główne i komputery obsługujące pamięć DDR2 pojawiły się w połowie 2004 r.
Pamięć DDR2 SDRAM jest po prostu szybszą wersją tradycyjnej pamięci DDR SDRAM. Dzięki użyciu różnicowych par żył sygnałowych, umożliwiających szybszą sygnalizację bez wystąpienia szumów i zakłóceń, oferowana jest wyższą przepustowość. Pamięć DDR2, podobnie jak DDR, przesyła dane z dwukrotnie większą szybkością, ale zmodyfikowana metoda sygnalizacji pozwala jej osiągnąć wyższą prędkość przy jednoczesnej lepszej odporności na szumy i przesłuch występujący pomiędzy sygnałami. Dodatkowe sygnały wymagane ze względu na zastosowanie różnicowych par żył wymuszają zwiększenie liczby końcówek. Pamięć DDR2 DIMM posiada ich 240, natomiast DDR — 184. W przypadku pamięci DDR maksymalna częstotliwość wynosi 400 MHz, natomiast układy DDR2 mogą pracować z częstotliwością zawierającą się w przedziale od 400 do 800 MHz, a nawet wyższą. W tabeli 6.9 zawarto parametry różnych typów modułów pamięci DDR2 wraz z ich przepustowością.
Tabela 6.9. Typy modułów i przepustowość pamięci DDR SDRAM
Typ modułu (DIMM) |
| Format ! modułu | |
Typ układu |
Częstotliwość zegara (MHz) |
Liczba cykli zegarowych |
Szybkość magistrali (MT/s) |
Szerokość magistrali (bajty) |
Przepustowość (MB/s) |
PC2-3200 |
! DDR2 DIMM |
DDR2-400 |
200 |
2 |
400 i 8 |
3200 |
|
PC2-4300 |
! DDR2 DIMM |
DDR2-533 |
266 |
2 |
533 8 |
4266 |
|
PC2-5400 |
i DDR2 DIMM |
DDR2-667 |
333 |
2 |
667 |
8 |
5333 |
PC2-6400 |
! DDR2 DIMM |
DDR2-800 |
400 |
2 |
800 |
8 |
6400 |
MT/s = Megatransfersper second (megatransfery na sekundę).
MB/s - Megabytes per second (megabajty na sekundę).
DIMM = Dual inline memory module.
DDR = Double data rate
Poza oferowaniem większych szybkości i przepustowości pamięć DDR2 posiada inne zalety. W porównaniu z tradycyjną pamięcią DDR (2,5 V) wymaga mniejszego napięcia zasilającego (1,8 V), dzięki czemu zredukowano pobór mocy i ilość generowanego ciepła. Ze względu na większą liczbę końcówek wymaganych przez układy DDR2 zwykle zamiast obudowy TSOP (thin smali outline package), stosowanej w większości układów pamięci DDR i tradycyjnych SDRAM, używana jest obudowa FBGA (fine-pitch bali grid array). Układy z obudową FBGA są połączone z podłożem (w większości przypadków jest nim modu!) za pomocą blisko siebie położonych lutowanych punktów, umieszczonych na podstawie układu pamięci.
Masowa produkcja układów i modułów pamięci DDR2 rozpoczęła się w drugiej połowie 2003 r. Obsługujące je chipsety i płyty główne pojawiły się w połowie 2004 r. Odmiany pamięci DDR2, takie jak G-DDR2 (Graphics DDR2\ są stosowane w niektórych droższych kartach graficznych. Ze względu na to, iż wszyscy więksi producenci pamięci i chipsetów obsługują układy DDR2, jest wysoce prawdopodobne, że w krótkim czasie staną się one najpopularniejszym typem pamięci wśród następców tradycyjnych układów DDR.
Moduły DDR2 DIMM przypominają tradycyjne moduły DDR DIMM, ale posiadają więcej końcówek i trochę inne wycięcia, zapobiegające pomyłkom lub niewłaściwemu zastosowaniu. Przykładowo różnie wyglądające wycięcia nie pozwalają umieścić modułu pamięci DDR2 w gnieździe pamięci DDR lub SDR. Moduł pamięci DDR2 zawiera 240 końcówek, czyli znacznie więcej od tradycyjnych modułów DDR DIMM lub SDRAM DIMM.
RDRAM
RDRAM (Rambus RDRAM) jest pamięcią o dość radykalnym rozwiązaniu konstrukcyjnym, spotykanym w droższych komputerach PC dostępnych na rynku od końca 1999 r. do 2002 r. W 1996 r. firma Intel podpisała umowę z firmą Rambus, w której zadeklarowała się do rozwijania do końca roku 2001 pamięci RDRAM. Po 2001 r. w przypadku istniejących komputerów firma Intel nadal obsługiwała pamięci RDRAM, ale nowe chipsety i płyty główne przeważnie współpracowały z układami DDR SDRAM. Wszystkie przyszłe chipsety i płyty główne Intel będą już projektowane z myślą o tradycyjnych układach pamięci DDR lub nowszych DDR2. Standard pamięci RDRAM miał obsługiwać szybsze procesory do 2006 r., jednak brak zaangażowania firmy Intel w rozwój i obsługę przyszłych chipsetów spowodował, że w roku 2003 sprzedano bardzo niewiele komputerów z pamięciami RDRAM, a w późniejszym okresie prawie żadnego. Na skutek braku wsparcia ze strony branżowych producentów chipsetów i płyt głównych w przyszłych modelach komputerów PC pamięć RDRAM najprawdopodobniej nie odegra znaczącej roli.
W przypadku pamięci RDRAM firma Rambus opracowała coś, co właściwie jest magistralą pamięci łączącą układy i wyposażoną w specjalizowane urządzenia komunikujące się ze sobą z bardzo dużą szybkością. Niektórych może zainteresować fakt, że tego typu technologia po raz pierwszy została zastosowana w popularnych konsolach gier takich jak Nintendo 64 i nowszej Playstation 2 produkowanej przez firmę Sony.
Komputery wyposażone w pamięć konwencjonalną złożoną z układów FPM/EDO lub SDRAM określane są mianem systemów szerokokanałowych (wide-channel systems). Tego typu systemy dysponują kanałami pamięci o szerokości magistrali danych procesora, która w przypadku układu Pentium i nowszych wynosi 64 bity. Moduł DIMM (Dual Inline Memory Module) posiada szerokość 64 bitów, co oznacza, że jednocześnie pozwala na przesłanie 64 bitów danych (8 bajtów).
Dla porównania, pamięci RDRAM są układami o niewielkiej szerokości. Z tego też powodu są w stanie jednocześnie przesłać tylko 16 bitów (2 bajty) ewentualnie poszerzonych o 2 bity parzystości, ale za to ze znacznie większą szybkością. Pamięć RDRAM jest przykładem przejścia z architektury równoległej na szeregową. Podobną tendencję można zauważyć w przypadku innych wciąż rozwijanych magistral komputerów PC.
Pojedynczy 16-bitowy kanał modułu RIMM początkowo pracował z częstotliwością 800 MHz, co pozwalało uzyskać ogólną przepustowość wynoszącą 800 MB/s x 2 lub inaczej 1,6 GB/s (dla jednego kanału), a to odpowiadało osiągom pamięci PC1600 DDR SDRAM. W większości pierwszych komputerów wyposażonych w procesor Pentium 4 wykorzystywano jednocześnie dwa banki, dzięki czemu możliwe było uzyskanie dwu-kanałowego rozwiązania o przepustowości 3,2 GB/s, co odpowiadało możliwościom magistrali pierwszych modeli procesora Pentium 4. Architektura pamięci RDRAM cechuje się stosowaniem mniejszych opóźnień pomiędzy kolejnymi operacjami przesyłania danych. Wynika to stąd, że wszystkie operacje są wykonywane synchronicznie w zamkniętym układzie i tylko wjednym kierunku.
Nowsze wersje modułów RIMM pracują z częstotliwością 1066 lub 1200 MHz (poprzednio 800 MHz). Dostępna jest 16-bitowa wersja jednokanałowa i 32-bitowa wielokanałowa pozwalająca osiągnąć maksymalną przepustowość wynoszącą 4,8 GB/s (dla jednego modułu).
Pojedynczy kanał pamięci Rambus jest w stanie obsłużyć maksymalnie 32 układy RDRAM, natomiast w przypadku użycia buforów jeszcze większej ilości. Każdy układ jest szeregowo połączony z następnym, a całość jest umieszczona w module RIMM (Rambus Inline Memory Module). Wszystkie operacje przesyłania danych zachodzą jednak nie między poszczególnymi układami, a między kontrolerem pamięci i jednym układem. Pojedyncze układy pamięci RDRAM umieszczono w module RIMM. Zazwyczaj jeden kanał składa się z trzech gniazd modułów RIMM. Magistrala pamięci RDRAM ma postać ciągłej ścieżki połączonej z każdym układem i ich modułem. Każdym moduł posiada końcówki wejść i wyjść umieszczone na przeciwległych końcach. Wynika z tego, że w każdym pustym gnieździe pamięci RDRAM konieczne jest zainstalowanie modułu, który pozwoli zamknąć ścieżkę. Sygnały, które osiągną koniec magistrali zatrzymują się na płycie głównej.
Każdy układ RDRAM umieszczony w module RIMM1600 w rzeczywistości funkcjonuje jako niezależny element wyposażony w 16-bitowy kanał danych. Każdy układ RDRAM zawiera rdzeń dysponujący 128-bitową magistralą podzieloną na osiem 16-bitowych banków pracujących z częstotliwością 100 MHz. Innymi słowy, co 10 ns (100 MHz) każdy układ RDRAM jest w stanie przesłać do lub z rdzenia 16 bajtów danych. Tego typu interfejs cechujący się wewnątrz układu dużą szerokością, a na zewnątrz znacznie mniejszą stanowi fundament, na którym opiera się architektura pamięci RDRAM.
Do innych innowacji architektury należy zaliczyć separację sygnałów magistrali służących do sterowania i przesyłania danych. W trakcie transferu danych przy użyciu 2-bąjtowej magistrali danych niezależne magistrale sterujące i adresujące są dzielone na dwie grupy końcówek odpowiedzialnych za obsługę wierszy i kolumn. Magistrala pamięci w rzeczywistości pracuje z częstotliwością 400 MHz, natomiast dane przesyłane są zarówno przy wykorzystaniu rosnącego, jak i opadającego zbocza cyklu, co odpowiada wykonaniu dwóch operacji w ciągu pojedynczego taktu zegara. Zbocze opadające określa cykl parzysty (even cycle), natomiast zbocze rosnące cykl nieparzysty (odd cycle). Pełna synchronizacja magistrali pamięci możliwa jest dzięki rozpoczęciu przesyłania pakietów danych od mających początek przed cyklem parzystym. Średni czas oczekiwania (opóźnienie) na rozpoczęcie transferu danych wynosi tylko jeden cykl lub maksymalnie 2,5 ns.
Rysunek 6.1 (zamieszczony wcześniej) ukazuje związek pomiędzy cyklami zegara a cyklami danych. Można zauważyć, że cykle zegara i danych pamięci DDR są stosowane przez układy RDRAM i DDR SDRAM. Dla celów związanych z synchronizacją pakiet danych pamięci RDRAM zawsze rozpoczyna się od cyklu parzystego (zbocza opadającego).
Architektura pamięci RDRAM obsługuje również wiele jednoczesnych transakcji przeplatanych realizowanych w licznych niezależnych obszarach czasowych. Wynika z tego, że przed zakończeniem jednego transferu może się rozpocząć następny.
Kolejna istotna cecha pamięci RDRAM związana jest z niskim zużyciem energii. Moduły RIMM, jak również układy RDRAM, wymagają napięcia wynoszącego tylko 2,5 V oraz wykorzystują niskonapięciowe sygnały o wartościach z zakresu od 1,0 do 1,8 V. a nawet 0,8 V. Pamięć RDRAM oferuje również cztery tryby energooszczędne i potrafi po zakończeniu transakcji przełączyć się w tryb oczekiwania, który pozwala na dodatkowe oszczędności zużycia energii.
Jak już wspomniano, układy RDRAM umieszczane są w modułach RIMM. RIMM pod względem rozmiarów i kształtu podobny jest do aktualnie dostępnych modułów DIMM. Pomimo to oba moduły nie są wzajemnie zamienne. Dostępne są moduły RIMM o pojemności 1 GB, a nawet większej. Jednocześnie w systemie można zainstalować tylko jeden moduł RIMM. ponieważ każdy z nich z technicznego punktu widzenia odpowiada wielu bankom pamięci. Jeśli używana płyta główna obsługuje dwukanałową pamięć RDRAM i układy RIMM mają szerokość 16 bitów, wtedy konieczne jest zainstalowanie dwóch takich modułów.
Kontroler pamięci RDRAM dysponujący jednym kanałem Rambus zgodnie z jego specyfikacją współpracuje z maksymalnie trzema modułami RIMM. Pomimo to, w celu uniknięcia problemów z szumem sygnałów, w większości płyt głównych znajdują się jedynie dwa gniazda modułów (dla jednego kanału).
Dostępne są moduły RIMM oferujące trzy podstawowe szybkości, przy czym dla każdej z nich istnieją wersje pamięci o innej szerokości. Wersje 16-bitowe zazwyczaj pracują w konfiguracji dwukanałowej, dlatego też muszą być instalowane parami, przy czym każda para umieszczana jest w oddzielnym zestawie gniazd. Każdy zestaw gniazd modułów RIMM spotykany na tego typu płytach stanowi jeden kanał. 32-bitowa wersja każdego układu pamięci RDRAM dysponuje wieloma kanałami. Zostały zaprojektowane tak. aby były instalowane pojedynczo, dzięki czemu wyeliminowano konieczność stosowania par identycznych modułów. W tabeli 6.10 porównano różne typy modułów pamięci RDRAM. Warto zauważyć, że stosowane wcześniej wspólne oznaczenia modułów RIMM, takie jak PC800, zostały zastąpione przez nazwy identyfikujące rzeczywistą przepustowość modułu. Ma to na celu zapobiegnięcie zamieszania związanego z pamięciami DDR.
Tabela 6.10. Typy i przepustowość modułów pamięci RDRAM
Typ modułu |
Format modułu |
Typ układu |
Częstotliwość zegara (MHz) |
Liczba cykli zegarowych |
Szybkość magistrali (MT/s) |
Szerokość magistrali (bajty) |
Przepustowość (MB/s) |
RIMM 1200 |
RIMM-16 | PC600 |
300 |
2 |
600 |
T |
1200 |
|
RIMM 1400 |
RIMM-16 |
PC700 |
350 |
2 |
700 |
2 |
1400 |
RIMM 1600 |
RIMM-16 |
PC800 |
400 |
2 |
800 |
2 |
1600 |
R1MM2I00 |
RIMM-16 |
PC1066 |
533 |
2 |
1066 |
2 |
2133 |
RIMM2400 |
RIMM-16 |
PC1200 |
600 |
2 |
1200 |
2 |
2400 |
R1MM3200 |
RIMM-32 |
PC800 |
400 |
2 |
800 |
4 |
3200 |
RIMM4200 |
RIMM-32 |
PC1066 |
533 |
2 |
1066 |
4 |
4266 |
RIMM4800 |
RIMM-32 |
PC1200 |
600 |
2 |
1200 |
4 |
4800 |
MT's = Megalransfers per second (megatransfery na sekundę). MB/s = Megabytes per second (megabajty na sekundę). RIMM = Rambus inline memory module.
Przy początkowym zainteresowaniu firmy Intel nowymi pamięciami firmy Rambus ich sukces raczej byl pewny. Niestety wynikające z przyczyn technicznych opóźnienia w przygotowywaniu chipsetów spowodowały, że wyposażone w nie płyty główne pojawiły się ze znacznym poślizgiem. W efekcie większość producentów pamięci, mając do dyspozycji zaledwie kilka komputerów obsługujących moduły RIMM, ponownie zaczęła wytwarzać pamięci SDRAM lub DDR SDRAM. W konsekwencji początkowa cena dostępnych modułów RIMM okazała się trzy lub więcej razy wyższa od porównywalnych układów DIMM. W ostatnim czasie koszt pamięci RDRAM RIMM znacznie zbliżył się do poziomu cen układów DDR SDRAM, ale w chwili, gdy to nastąpiło, Intel zdecydował o tym, że wszystkie kolejne projektowane chipsety będą współpracowały wyłącznie z pamięciami DDR i DDR2.
Jak już stwierdziłem wiele razy, jednym z podstawowych warunków, jaki powinien być spełniony przez pamięć, jest to, aby przepustowość magistrali pamięci była równa przepustowości magistrali procesora. Pod tym względem początkowo moduły RDRAM RIMM znacznie lepiej sprawdzały się w szybszych komputerach opartych na procesorze Pentium 4. Jednak po zwiększeniu szybkości magistrali procesorów Pentium 4 z 400 do 533 MHz (później do 800 MHz). a także po pojawieniu się chipsetów obsługujących dwukanałową pamięć DDR, obecnie najlepiej z magistralą procesorów produkowanych przez Intel i AMD współpracują układy DDR i DDR2. Mówiąc w skrócie, wprowadzenie w 2002 r. na rynek nowszych chipsetów obsługujących dwukanałową pamięć DDR i w 2004 r. chipsetów współpracujących z układami DDR2 sprawiło, że obie technologie pamięci są najlepszą propozycją dla nowoczesnych komputerów, oferującą maksymalną możliwą wydajność.
Na nieszczęście dla producentów pamięci, firma Rambus uzyskała patenty, które dotyczyły tak układów standardowych, jak i DDR SDRAM. Z tego też powodu, niezależnie od tego, czy produkcja dotyczyła pamięci SDRAM, DDR czy RDRAM, decyzja o konieczności wnoszenia przez firmy opłat licencyjnych należała wyłącznie do firmy Rambus. Aktualnie toczy się kilka spraw sądowych z firmami, które kwestionują patenty firmy Rambus. Większość z nich jest bliska zakończenia. Większość spraw, które dotąd trafiły do sądu, zakończyły się niekorzystnie dla firmy Rambus i przeważnie ich wynikiem było unieważnienie patentów i roszczeń dotyczących technologii produkcji pamięci DDR i SDRAM. Wiele apelacji jest w trakcie rozpatrywania, dlatego prawdopodobnie upłynie wiele czasu, zanim kwestie patentowe zostaną rozstrzygnięte.
Moduły pamięci
Architektura płyty głównej (chipsetu) i procesora decyduje o maksymalnej pojemności, typie i formacie pamięci, która może być zainstalowana w określonym modelu komputera. W ciągu ostatnich lat pamięć komputerowa zmieniała się głównie pod dwoma względami — stopniowo stawała się coraz szybsza i dysponowała większą szerokością. Oba parametry pamięci są determinowane przez procesor i kontroler pamięci. W nowszych komputerach kontroler pamięci znajduje się w chipsecie płyty głównej. Nawet pomimo to, że system może obsłużyć określoną pojemność pamięci, i tak możliwość pełnego jej wykorzystania zależy od typu używanych aplikacji.
W przypadku procesorów 8088 i 8086 dysponujących 20 liniami adresowymi możliwe jest zastosowanie pamięci RAM o maksymalnej pojemności 1 MB (1024 kB). Procesory 286 i 386SX wyposażone w 24 linie adresowe pozwalały na zainstalowanie pamięci o pojemności 16 MB, natomiast procesory 386DX, 486, Pentium, Pentium MMX zawierające 32 linie adresowe współpracują z pamięcią o maksymalnej pojemności wynoszącej 4 GB. W przypadku procesorów Pentium Pro/lI/III i Pentium 4 oraz AMD Athlon i Duron posiadających 32 linie adresowe pojemność pamięci została powiększona do imponującej wielkości równej 64 GB. Nowy procesor Itanium dysponujący 44 liniami adresowymi pozwala na zainstalowanie aż 16 TB (terabajtów) pamięci RAM!
► ► Zajrzyj do podrozdziału „Parametry procesorów" znajdującego się na stronie 75.
W momencie emulacji przez procesor 286 i nowsze modele pracy układu 8088 (w przypadku uruchamiania aplikacji 16-bitowych takich jak system DOS lub Windows 3.x) stosowany jest tryb sprzętowy określany mianem trybu rzeczywistego (real mode). Tryb rzeczywisty jest jedynym trybem dostępnym w procesorach 8086 i 8088 stosowanych w komputerach PC i XT. Po jego włączeniu wszystkie procesory firmy Intel, nawet modele z rodziny Pentium, są ograniczone jedynie do 1 MB pamięci, czyli do pojemności dostępnej w przypadku ich poprzedników 8086 i 8088. Dodatkowo, z tego obszaru pamięci 384 kB jest rezerwowane przez system. Procesor 286 i nowsze układy pełne możliwości adresowania pamięci mogą wykorzystać tylko, pracując w trybie chronionym.
► ► Zajrzyj do punktu „Tryby pracy procesora" znajdującego się na stronie 83.
Komputery klasy P5 są w stanie adresować maksymalnie 4 GB pamięci, natomiast systemy klasy P6/P7 aż 64 GB. Dla podkreślenia ogromu oferowanych możliwości związanych z adresowaniem pamięci należy powiedzieć, że pamięć o pojemności 64 GB (65 536 MB) kosztowałaby prawie 69 000 złotych! Nawet jeśli mógłbyś sobie pozwolić na zakup takiej ilości pamięci, to i tak obecnie dostępne moduły DIMM mają największą pojemność wynoszącą 1 GB. Zainstalowanie pamięci RAM o pojemności 64 GB wymagałoby użycia 64 takich modułów DIMM, a większość komputerów dostępnych w sprzedaży dysponuje tylko czterema gniazdami układów DIMM.
Większość płyt głównych posiada maksymalnie od trzech do sześciu gniazd pamięci DIMM. które w przypadku pełnego wykorzystania pozwalają na zainstalowanie pamięci o pojemności od 1,5 do 3 GB. Ograniczenie to wynika z zastosowanego chipsetu, a nie procesora. Chociaż niektóre procesory są w stanie zaadresować pamięć o pojemności 64 GB, to jednak jak na razie nie istnieje na rynku chipset dysponujący takimi możliwościami! Chociaż można się spotkać z chipsetami obsługującymi pamięć o pojemności 4 GB lub większej, to jednak większość aktualnie dostępnych chipsetów jest ograniczona do pamięci o pojemności wynoszącej jedynie 2 GB.
Niektóre systemy są jeszcze bardziej ograniczone. Komputery klasy P5 są produkowane już od 1993 r., ale dopiero modele opracowane po roku 1997 są wyposażone w chipsety obsługujące pamięć SDRAM DIMM. Nawet jeśli w najnowszych komputerach klasy P5 zastosowano chipsety firmy Intel, takie jak 430TX, to i tak pozwalają one na zainstalowanie pamięci RAM o maksymalnej pojemności 256 MB, a ze względu na ograniczone możliwości jej buforowania przez pamięć podręczną w praktyce nie powinno się stosować więcej niż 64 MB. Jeśli nie masz pewności, że płyta główna i chipset potrafią przy użyciu pamięci cache L2 obsłużyć dodatkową ilość pamięci, wtedy w tego typu systemach nie powinno instalować się pamięci o pojemności przekraczającej 64 MB.
Aby uzyskać dodatkowe informacje na temat maksymalnych pojemności buforowanej pamięci RAM obsługiwanych przez chipsety płyt głównych produkowane przez Intel i inne firmy, zajrzyj do podrozdziału „Chipsety" znajdującego się w rozdziale 4.
Moduły SIMM, DIMM i RIMM
Początkowo pamięć w komputerach była instalowana w postaci pojedynczych układów. Z powodu ich architektury często określano je mianem układów DIP (Dual Inline Package). W oryginalnych komputerach IBM XT i AT zastosowano 36 gniazd przeznaczonych dla tego typu układów. W późniejszym okresie większa ilość układów pamięci była umieszczona na kartach pamięci instalowanych w gniazdach magistrali. Pamiętam, że spędziłem wiele godzin przy instalowaniu tego typu układów i nie było to ciekawe zajęcie.
Poza czasochłonnością i pracochłonnością, których wymagała instalacja układów DIP, związany z nimi by! jeszcze jeden notorycznie powtarzający się problem, który dotyczył odkształcania gniazd pojawiającego się z czasem w związku ze zmiennymi warunkami termicznymi pracy komputera. Każdego dnia wskutek włączania i wyłączania systemu jego temperatura rosła i malała, a to powodowało, że stopniowo pogarszał się kontakt zainstalowanych układów pamięci z gniazdem. Ostatecznie dochodziło do utraty styku, co w efekcie było powodem błędów. Niestety, przywrócenie poprawnego położenia układów pamięci w gniazdach zazwyczaj nie usuwało problemu, a cala operacja w przypadku wielu komputerów była bardzo pracochłonna.
W tym czasie rozwiązanie problemu polegało na lutowaniu pamięci na powierzchni płyty głównej lub karcie rozszerzającej. Dzięki temu układy nie traciły kontaktu i połączenie z gniazdem było bardziej trwałe. Niestety, pojawił się kolejny problem. W przypadku uszkodzenia układu pamięci konieczne było jego wylutowanie, a następnie przylutowanie nowego. Inne rozwiązanie sprowadzało się do wymiany płyty głównej lub karty pamięci, na której znajdował się uszkodzony układ. Usunięcie tego typu problemu było kosztowne i bardzo trudne.
Rozwiązanie problemu polegało na opracowaniu układu, który był lutowany, ale umożliwiał również wymianę. Dokładnie takie warunki zostały spełnione przez moduł SIMM. Jako nośnik układów pamięci w większości nowych komputerów zastosowano moduły pamięci SIMM, DIMM lub RIMM stanowiące alternatywę dla pojedynczych układów. Tego typu moduły są umieszczane w specjalnych gniazdach znajdujących się na płycie głównej lub na karcie pamięci. Pojedyncze układy pamięci są lutowane do modułu, dlatego też ich usunięcie lub wymiana jest niemożliwa. W przypadku uszkodzenia dowolnego układu pamięci konieczna jest wymiana całego modułu. Moduł traktowany jest jak jeden większy układ pamięci.
W komputerach osobistych stosuje się dwa podstawowe typy modułów SIMM i DIMM oraz, jak dotąd, jeden typ pamięci RIMM. Różne typy modułów często są opisywane przy użyciu takich wielkości jak liczba końcówek, szerokość wiersza pamięci lub jej typ.
Przykładowo, moduły SIMM dostępne są w postaci dwóch formatów — 30-końcówkowego (8 bitów oraz opcjonalnie jeden dodatkowy bit parzystości) i 72-końcówkowego (32 bity oraz opcjonalnie cztery dodatkowe bity parzystości). Oba formaty dysponują różnymi pojemnościami i innymi parametrami. Pod względem wielkości 30-końcówkowe moduły SIMM są mniejsze od wersji 72-końcówkowej. Oba formaty dostępne są w wersjach zawierających układy pamięci po jednej lub dwóch stronach modułu. Moduły SIMM były powszechnie stosowane od końca lat 80. do schyłku lat 90. ubiegłego wieku, ale wyszły z użycia.
Dostępne są również trzy podstawowe typy modułów DIMM. Na modułach DIMM różniących się wymiarami zewnętrznymi zazwyczaj umieszczane są układy pamięci SDRAM lub DDR SDRAM. Standardowy moduł DIMM ma 168 końcówek oraz po jednym wycięciu z każdej strony i dwa znajdujące się wzdłuż krawędzi styków, natomiast moduł DDR DIMM dysponuje 184 końcówkami, dwoma wycięciami z każdej strony i tylko jednym przy krawędzi styków. Moduły DDR2 DIMM posiadają 240 końcówek, dwa wycięcia z każdej strony i jedno w środku krawędzi styków. Wszystkie moduły DIMM dysponują ścieżką danych o szerokości 64 (bez kontroli parzystości i korekcji błędów) lub 72 bitów (z kontrolą parzystości lub kodem korekcji błędów ECC). Podstawowa różnica pomiędzy modułem SIMM i DIMM polega na tym, że układ DIMM z każdej strony zawiera inne końcówki sygnałowe. Z tego też powodu tego typu moduły noszą nazwę dwurzędowych modułów pamięci (dual inline memory module) i w porównaniu z modułami SIMM przy dodatkowej długości wynoszącej 2,5 cm dysponują znacznie większą ilością końcówek.
Wśród użytkowników, a nawet przedstawicieli branży ma miejsce zamieszanie dotyczące stosowania terminów jedno- i dwustronny w odniesieniu do modułów pamięci. Tak naprawdę określenie jedno- lub dwustronna pamięć nie ma nic wspólnego z tym, czy układy fizycznie są zlokalizowane po jednej czy obu stronach modułu. Nie ma też związku z tym, czy moduł jest modułem SIMM czy DIMM (skróty określają, czy końcówki znajdują się w jednym czy w dwóch rzędach). Zamiast tego terminy jedno- i dwustronny służą stwierdzeniu, czy moduł zawiera jeden czy dwa banki układów pamięci. 2-bankowy moduł DIMM posiada dwa pełne 64-bitowe banki logicznie ułożonych układów pamięci. Oznacza to, że moduł ten jest dwukrotnie gęstszy, czyli posiada dwa razy więcej 64-bitowych rzędów. W większości, ale nie we wszystkich przypadkach 2 banki powodują, że układy pamięci muszą znajdować się po obu stronach modułu. Termin dwustronny często był zatem używany w celu określenia modułu mającego 2 banki, nawet pomimo tego, że technicznie termin ów jest nieprawidłowy. 1-bankowe moduły (niepoprawnie nazywane jednostronnymi) mogą zawierać układy pamięci fizycznie umieszczone po ich obu stronach. Z kolei 2-bankowe moduły (niepoprawnie nazywane dwustronnymi) mogą posiadać układy pamięci fizycznie zamontowane tylko po ich jednej stronie. Namawiam do stosowania terminów 1-bankowy i 2-bankowy, ponieważ w znacznie większym stopniu odpowiadają rzeczywistości I są proste do zrozumienia.
Moduły RIMM po każdej stronie zawierają różne końcówki sygnałowe. Istnieją trzy typy układów RIMM różniące się formatami — wersja 16/18-bitowa wyposażona w 184 końcówki, 32/36-bitowa dysponująca 232 końcówkami oraz wersja 64/72-bitowa mająca 326 końcówki. Wszystkie wymienione formaty są wyposażone w jednakowe złącze, ale w celu uniknięcia pomyłek rozmieszczenie wycięć jest inne w poszczególnych modułach RIMM. Określona płyta główna współpracuje tylko z jednym typem modułu RIMM. Do tej pory najpopularniejszym formatem jest wersja 16/18-bitowa. Wersja 32-bitowa została wprowadzona na rynek pod koniec 2002 r., natomiast wersja 64-bitowa w 2004 r.
Standardowy 16/18-bitowy moduł RIMM dysponuje 184 końcówkami, jednym wycięciem z każdej strony i dwoma umieszczonymi wzdłuż krawędzi styków. Wersje 16-bitowe mają zastosowanie w przypadku, gdy nie zależy nam na funkcji kodu korekcji błędów ECC, natomiast wersja 18-bitowa jest wyposażona w dodatkowe bity związane z funkcją ECC.
Na rysunkach 6.2 - 6.7 przedstawiono kolejno standardowy 30-końcówkowy moduł SIMM (8-bitowy). 72-końcówkowy moduł SIMM (32-bitowy), 168-końcówkowy moduł SDRAM DIMM, 184-końcówkowy moduł DDR SDRAM DIMM (64-bitowy), 240-końcówkowy moduł DDR2 DIMM oraz 184-końcówkowy moduł RIMM. Końcówki są ponumerowane od lewej do prawej strony. W przypadku modułu SIMM numerowane są końcówki znajdujące się po obu jego stronach. Po każdej stronie modułu DIMM umieszczone są inne końcówki, natomiast po obu stronach modułu SIMM znajdują się jednakowe styki. Należy zauważyć, że wszystkie wymiary podano zarówno w calach, jak i w milimetrach (w nawiasach). Moduły zwykle są w wersjach posiadających korekcję błędów ECC. W tym przypadku na każde 8 bitów danych przypada jeden dodatkowy bit ECC lub bit parzystości (szerokość danych jest wielokrotnością liczby 9). Moduły mogą też być pozbawione korekcji błędów ECC (szerokość danych jest wielokrotnością liczby 8).
Rysunek 6.2. Typowy 30-końcówkowy moduł SIMM
Rysunek 6.3. Typowy 72-końcówkowy moduł SIMM
Rysunek 6.4. Typowy 168-końcówkowy moduł SDRAM DIMM
Rysunek 6.5. Typowy 184-końcówkowy moduł DDR DIMM
Biorąc pod uwagę pojemność umieszczonej pamięci, wymienione moduły charakteryzują się dużą gęstością. Poza tym dostępne są w kilku wersjach oferujących różne pojemności i szybkości. W tabeli 6.11 zebrano różne pojemności modułów SIMM, DIMM i RIMM.
Moduły SIMM, DIMM, DDR/DDR2 DIMM i RIMM każdego typu i pojemności dostępne są w kilku wersjach o różnych szybkościach. Aby określić poprawną szybkość i typ pamięci obsługiwanych przez używaną płytę główną, należy zajrzeć do dołączonej do niej dokumentacji. Zwykle najbardziej odpowiednia jest pamięć o szybkości (inaczej przepustowości) odpowiadającej szybkości magistrali danych procesora (zwanej również magistralą systemową lub FSB — Front Side Bus).
Rysunek 6.6. Typowy 240-końcówkowy moduł DDR2 DIMM
Rysunek 6.7. Typowy 184-końcówkowy moduł RlMM
Jeśli w komputerze wymagane jest zainstalowanie pamięci o określonej szybkości, której nie mamy, wtedy prawie zawsze można w jej miejsce wstawić szybsze moduły. Jeśli instalowane moduły pod względem szybkości są takie same lub szybsze jak wymagane przez system, wtedy zazwyczaj stosowanie pamięci o różnych szybkościach nie stanowi problemu. Ze względu na niewielką różnicę w cenie wersji o różnej szybkości często kupuję moduły szybsze niż jest to wymagane w konkretnym zastosowaniu. Dzięki temu istnieje możliwość użycia ich w nowszych komputerach, które mogą wymagać tego typu pamięci.
Moduły DIMM i RIMM zawierają zintegrowany układ ROM SPD {serial presence detect) przekazujący systemowi informacje związane z ich szybkością i ustawieniami dotyczącymi taktowania, dlatego też w większości komputerów kontroler i magistrala pamięci dostosowują się do szybkości najwolniejszego zainstalowanego modułu DIMM lub RIMM. Większość modułów DIMM zawiera układy pamięci SDRAM, co oznacza, że dane są przesyłane przy użyciu bardzo szybkiego trybu seryjnego wykorzystującego interfejs taktowany. Moduły DDR DIMM również zawierają układy pamięci SDRAM, ale w ich przypadku transfer danych odbywa się dwa razy w ciągu cyklu zegara, a zatem dwukrotnie szybciej.
Tabela 6.11. Pojemności modułów SIMM, DIMM i RIMM
Pojemności 30-końcówkowych modułów SIMM
Pojemność |
Moduł standardowy |
Moduł z kontrolą parzystości i funkcją ECC |
256 kB |
256 kB x 8 |
256 kB x 9 |
1 MB |
1 MB x 8 |
1 MB x9 |
4 MB |
4 MB x 8 |
4 MB x 9 |
16 MB |
16 MB x 8 |
16 MB x 9 |
Pojemności 72-końcówkowych modułów SIMM |
||
Pojemność |
Moduł standardowy |
Moduł z kontrolą parzystości i funkcją ECC |
1 MB |
256 kB x 32 |
256 kB x 36 |
2 MB |
512 kB x 32 |
512kB x36 |
4 MB |
1 MB x 32 |
1 MB x 36 |
8 MB |
2 MB x 32 |
2 MB x 36 |
16 MB |
4 MB x 32 |
4 MB x 36 |
32 MB |
8 MB x 32 |
8 MB x 36 |
64 MB |
16 MB x 32 |
16 MB x 36 |
128 MB |
32 MB x 32 |
32 MB x 36 |
Pojemności 168/184-końcówkowych modułów DIMM/DDR DIMM |
||
Pojemność |
Moduł standardowy |
Moduł z kontrolą parzystości i funkcją ECC |
8 MB |
1 MB x 64 |
1 MB x 72 |
16 MB |
2 MB x 64 |
2 MB x 72 |
32 MB |
4 MB x 64 |
4 MB x 72 |
64 MB |
8 MB x 64 |
8 MB x 72 |
128 MB |
16 MB x 64 |
16 MB x 72 |
256 MB |
32 MB x 64 |
32 MB x 72 |
512MB |
64 MB x 64 |
64 MB x 72 |
1024 MB |
128 MB x 64 |
128 MB x 72 |
2048 MB |
256 MB x 64 |
256 MB x 72 |
4096 MB |
512 MB x 64 |
512 MB x 72 |
Pojemności 240-końcówkowych modułów DDR2 DIMM |
||
Pojemność |
Moduł standardowy |
Moduł z kontrolą parzystości i funkcją ECC |
256 MB |
32 MB x 64 |
32 MB x 72 |
512 MB |
64 MB x 64 |
64 MB x 72 |
1024 MB |
128 MB x 64 |
128 MB x 72 |
2048 MB |
256 MB x 64 |
256 MB x 72 |
4096 MB |
512 MB x 64 |
512 MB x 72 |
Pojemności 184-końcówkowych modułów RIMM |
||
Pojemność |
Moduł standardowy |
Moduł z kontrolą parzystości i funkcją ECC |
64 MB |
32 MB x 16 |
32 MB x 18 |
128 MB |
64 MB x 16 |
64 MB x 18 |
256 MB |
128 MB x 16 |
128 MB x 18 |
512MB |
256 MB x 16 |
256 MB x 18 |
1024 MB |
512 MB x 16 |
512 MB x 18 |
Bank stanowi najmniejszą ilość pamięci wymaganą do utworzenia pojedynczego wiersza pamięci, która może być adresowana przez procesor. Jest to również minimalna pojemność pamięci, która może jednocześnie być odczytana lub zapisana przez procesor I zazwyczaj odpowiada szerokości jego magistrali danych. Jeśli procesor dysponuje 64-bitową magistralą danych, wtedy bank pamięci też ma taką szerokość. W przypadku, gdy pamięć jest przeplatana lub pracuje w trybie dwukanałowym, wtedy tworzony jest wirtualny bank, posiadający w porównaniu z magistralą danych procesora dwukrotnie większą szerokość.
Nie zawsze należy się spodziewać, że po wymianie modułu na układ o większej pojemności wszystko będzie działało poprawnie. Architektura systemów może być ograniczona pod względem maksymalnej pojemności zainstalowanych modułów. Podstawowym warunkiem zadziałania modułów o dużej pojemności jest wbudowana w płytę główną ich obsługa. W celu określenia obsługiwanej pojemności i szybkości pamięci, należy zapoznać się z dokumentacją systemu.
Moduły rejestrowe
Wśród modułów pamięci SDRAM i DDR DIMM można wyróżnić wersje buforowane, niebuforowane i rejestrowe. Moduł buforowany pomiędzy układami pamięci zawiera dodatkowe układy bufora, a także złącze warunkujące lub buforujące sygnały. Niemal wszystkie płyty główne komputerów PC wyposażone w gniazda modułów pamięci SDRAM lub DDR wymagają zastosowania ich wersji niebuforowanych lub rejestrowych. Tak naprawdę żaden komputer PC, o którym mi wiadomo, nie korzysta ze zwykłych modułów buforowanych. Niektóre ze starszych modeli komputerów Macintosh PowerPC używały buforowanych modułów SDRAM, ale nie dotyczyło to żadnego komputera PC. Ponieważ tak niewiele komputerów korzystało z modułów buforowanych, nie są one dostępne w sprzedaży.
Większość płyt głównych komputerów PC zaprojektowano z myślą o modułach niebuforowanych, umożliwiających kontrolerowi pamięci przesyłanie sygnałów bezpośrednio do układów pamięci modułu bez występowania zakłóceń. Jest to nie tylko rozwiązanie najtańsze, ale też najszybsze i najbardziej efektywne. Jedyną wadą modułów niebuforowanych jest to. że projektant płyty głównej musi określić maksymalną liczbę modułów (czyli ich gniazd), jaka może zostać zainstalowana, a prawdopodobnie także ustalić maksymalną liczbę układów zawartych w jednym module. Użycie tak zwanych dwustronnych modułów, które faktycznie posiadają dwa banki układów pamięci (dwukrotnie więcej niż normalnie), w przypadku niektórych komputerów w określonych konfiguracjach może być ograniczone.
Komputery projektowane pod kątem zastosowania pamięci RAM o bardzo dużej pojemności często wymagają użycia modułów rejestrowych. Oparte są one na architekturze korzystającej z układów rejestrów odgrywających w module rolę interfejsu pomiędzy układami pamięci RAM i chipsetem. Rejestry tymczasowo przechowują dane otrzymywane z układów pamięci i do nich wysyłane, a także pozwalają na sterowanie znacznie większą liczbą układów RAM lub, inaczej mówiąc, umieszczenie ich w module, a nie chipsecie, który może je obsługiwać. Dzięki temu płyty główne mogą obsługiwać wiele modułów, z których każdy może zawierać większą liczbę układów pamięci. Zwykle moduły rejestrowe są wymagane w przypadku płyt głównych stosowanych w stacjach roboczych lub serwerach obsługujących ponad 1 lub 2 GB pamięci RAM. Godne uwagi jest to, że w przypadku określonej płyty głównej lub chipsetu można zastosować moduły tylko takiego typu, który jest przez nie obsługiwany. Przeważnie są to standardowe moduły niebuforowane, a czasami moduły rejestrowe.
Rozmieszczenie końcówek modułu SIMM
W tabeli 6.12 zawarto opis końcówek złącza standardowego 72-końcówkowego modułu SIMM. Dodano również specjalną tabelę zawierającą konfigurację końcówek różnych 72-końcówkowych modułów SIMM służących do wykrywania obecności układu w gnieździe. Tego typu końcówki są wykorzystywane przez płytę główną do określenia dokładnego rozmiaru i szybkości zainstalowanego modułu SIMM. Standardowy 30-końcówkowy moduł SIMM jest pozbawiony takich końcówek, natomiast firma IBM zastosowała je w produkowanych 30-końcówkowych układach o zmodyfikowanej konfiguracji. Należy zauważyć, że wszystkie typy modułów SIMM po obu stronach posiadająjednakowy zestaw końcówek. Końcówki modułu SIMM zazwyczaj są pokryte cyną. Cyna naniesiona na końcówki modułu musi być kształtem dopasowana do końcówek gniazda — w przeciwnym razie może dojść do korozji.
Tabela 6.12. Rozmieszczenie końcówek 72-końcówkowego standardowego modułu SIMM
Końcówka |
Nazwa sygnału modułu SIMM |
Końcówka |
Nazwa sygnału modułu SIMM |
Końcówka |
Nazwa sygnału modułu SIMM |
1 Ground (masa) |
25 |
Data Bit 22 |
49 |
Data Bit 8 |
|
2 |
Data Bit 0 (bit danych) |
26 |
Data Bit 7 |
50 |
Data Bit 24 |
3 |
Data Bit 16 |
27 |
Data Bit 23 |
51 |
Data Bit 9 |
4 |
Data Bit 1 |
28 |
Address Bit 7 |
52 |
Data Bit 25 |
5 |
Data Bit 17 |
29 |
Address Bit 11 |
53 |
Data Bit 10 |
6 |
Data Bit 2 |
30 |
+5 Vdc |
54 |
Data Bit 26 |
7 |
Data Bit 18 |
31 |
Address Bit 8 |
55 |
Data Bit 11 |
8 Data Bit 3 |
32 |
Address Bit 9 |
56 |
Data Bit 27 |
|
9 |
Data Bit 19 |
33 |
Address Bit 12 |
57 |
Data Bit 12 |
10 |
+5 Vdc |
34 |
Address Bit 13 |
58 |
Data Bit 28 |
11 |
Presence Detect 5 (wykrywanie obecności) |
35 |
Parity Data Bit 2 (Bit parzystości) |
59 |
+5 Vdc |
12 |
Address Bit 0 (bit adresu) |
36 |
Parity Data Bit 0 |
60 |
Data Bit 29 |
13 |
Address Bit 1 |
37 |
Parity Data Bit 1 |
61 |
Data Bit 13 |
14 |
Address Bit 2 |
38 |
Parity Data Bit 3 |
62 |
Data Bit 30 |
15 |
Address Bit 3 |
39 |
Ground |
63 |
Data Bit 14 |
16 |
Address Bit 4 |
40 |
Column Address Strobę 0 (Sygnał strobujący kolumny adresu) |
64 |
Data Bit 31 |
17 |
Address Bit 5 |
41 |
Column Address Strobę 2 |
65 |
Data Bit 15 |
18 Address Bit 6 |
42 |
Column Address Strobę 3 |
66 |
EDO |
|
19 |
Address Bit 10 |
43 |
Column Address Strobę 1 |
67 |
Presence Detect 1 |
20 |
Data Bit 4 |
44 |
Row Address Strobę 0 (Sygnał strobujący wiersza adresu) |
68 |
Presence Detect 2 |
21 |
Data Bit 20 |
45 |
Row Address Strobę 1 |
69 |
Presence Detect 3 |
22 |
Data Bit 5 |
46 |
Reserved (Zastrzeżony) |
70 |
Presence Detect 4 |
23 |
Data Bit 21 |
47 |
Write Enable (Zapis aktywny) |
71 |
Reserved |
24 |
Data Bit 6 |
48 |
ECC Optimtzed |
72 |
Ground |
Należy zwrócić uwagę na to, że 72-końcówkowe moduły SIMM w celu informowania płyty głównej o typie zainstalowanego układu posługują się zestawem czterech lub pięciu końcówek. Końcówki wykrywające obecność modułu SIMM w celu określenia typu modułu SIMM są połączone z masą lub w ogóle nie podłączone. W celu ustawienia wysokiego poziomu logicznego (gdy styk jest otwarty) lub niskiego poziomu logicznego (gdy styk jest połączony z masą płyty głównej) wyprowadzenia tego typu końcówek muszą być połączone z masą przy użyciu zeroomowego rezystora lub zworki modułu SIMM. Dzięki temu generowane są sygnały.
które mogą być dekodowane przez układy logiczne pamięci. Jeśli płyta główna korzysta z sygnałów wykrywających, wtedy procedura testująca POST (Power On SelfTest) potrafi określić pojemność i szybkość zainstalowanych modułów SIMM. a następnie automatycznie dostosować sygnały sterujące i adresujące. Dzięki temu możliwe jest zastosowanie funkcji automatycznej detekcji pojemności i szybkości pamięci.
Na wiele sposobów końcówki wykrywające obecność modułu są podobne do przemysłowego stan dartu kodów DX stosowanego w nowoczesnych filmach fotograficznych 35 mm do określania czułości naświetlania (ASA). Po założeniu filmu do aparatu elektryczne styki, wykorzystując konfigurację standardu kodów DX, odczytują jego wartość ATA.
W tabeli 6.13 zawarto przemysłowy standard JEDEC (Joint Electronic Devices Engineering Council) określający konfigurację końcówek wykrywających moduły z rodziny 72-końcówkowych SIMM-ów. JEDEC jest organizacją zrzeszającą amerykańskich producentów oraz użytkowników opracowujących standardy dotyczące półprzewodników.
Niestety, w przeciwieństwie do producentów filmów fotograficznych, nie wszyscy przedstawiciele przemysłu komputerowego przestrzegają ustalonych standardów. Tak naprawdę, sygnały wykrywające obecność modułu nie zostały określone w postaci obowiązującego standardu.
Tabela 6.13. Konfiguracja końcówek wykrywających obecność 72-końcówkowego modułu SIMM
Pojemność |
Szybkość |
Końcówka 67 |
Końcówka 68 |
Końcówka 69 |
Końcówka 70 |
Końcówka 11 |
1 MB |
100 ns |
Gnd |
— |
Gnd |
Gnd |
— |
1 MB |
80 ns |
Gnd |
— |
— |
Gnd |
— |
1 MB |
70 ns |
Gnd |
— |
Gnd |
— |
— |
1 MB |
60 ns |
Gnd |
— |
— |
— |
— |
2 MB |
100 ns |
— |
Gnd |
Gnd |
Gnd |
— |
2 MB |
80 ns |
— |
Gnd |
— |
Gnd |
— |
2 MB |
70 ns |
— |
Gnd |
Gnd |
— |
— |
2 MB |
60 ns |
— |
Gnd |
— |
— |
— |
4 MB |
100 ns |
Gnd |
Gnd |
Gnd |
Gnd |
— |
4 MB |
80 ns |
Gnd |
Gnd |
— |
Gnd |
— |
4 MB |
70 ns |
Gnd |
Gnd |
Gnd |
|
— |
4 MB |
60 ns |
Gnd |
Gnd |
— |
— |
— |
8 MB |
100 ns |
— |
— |
Gnd |
Gnd |
— |
8 MB |
80 ns |
— |
— |
— |
Gnd |
— |
8 MB |
70 ns |
— |
— |
Gnd |
|
— |
8 MB |
60 ns |
— |
— |
— |
— |
|
16 MB |
'80 ns |
Gnd |
— |
— |
Gnd |
Gnd |
16 MB |
70 ns |
Gnd |
— |
Gnd |
— |
Gnd |
16 MB |
60 ns |
Gnd |
— |
— |
— |
Gnd |
16 MB |
50 ns |
Gnd |
— |
Gnd |
Gnd |
Gnd |
32 MB |
80 ns |
— |
Gnd |
— |
Gnd |
Gnd |
32 MB |
70 ns |
— |
Gnd |
Gnd |
|
Gnd |
32 MB |
60 ns |
— |
Gnd |
— |
— |
Gnd |
32 MB |
50 ns |
— |
Gnd |
Gnd |
Gnd |
Gnd |
— = Brak połączenia (otwarte). Gnd = Ground (masa).
Pin 67 = Presence detect 1 (wykrywanie obecności).
Pin 68 = Presence detect 2 (wykrywanie obecności).
Pin 69 = Presence detect 3 (wykrywanie obecności).
Pin 70 = Presence detect 4 (wykrywanie obecności).
Pin 11= Presence detect 5 (wykrywanie obecności).
Różni producenci komputerów stosują czasami odmienne konfiguracje, które nie są zgodne z oczekiwanymi funkcjami wykorzystywanych w tym celu czterech końcówek. Pod tym względem wyróżniają się takie firmy jak Compaą, IBM (głównie komputery PS/2) i Hewlett-Packard. Wiele produkowanych przez nie systemów wymaga zastosowania specjalnych modułów SIMM, które właściwie są identyczne jak standardowe 72-końcówkowe układy SIMM. Jedyna różnica wynika ze specjalnych wymagań dotyczących wykrywania obecności modułu. W tabeli 6.14 przedstawiono sposób definiowania tych końcówek przez firmę IBM.
Tabela 6.14. Konfiguracja końcówek wykrywających obecność 72-końcówkowego modułu SIMM produkowanego przez firmą IBM
67 |
68 |
69 |
70 |
Typ modułu SIMM |
Numer części (IBM) |
— |
— |
— |
— |
Niedozwolona konfiguracja |
Brak danych |
Gnd |
— |
— |
— |
1 MB 120 ns |
Brak danych |
— |
Gnd |
— |
— |
2 MB 120 ns |
Brak danych |
Gnd |
Gnd |
— |
— |
2 MB 70 ns |
92F0102 |
— |
— |
Gnd |
— |
8 MB 70 ns |
64F3606 |
Gnd |
— |
Gnd |
— |
Zastrzeżony |
Brak danych |
— |
Gnd |
Gnd |
— |
2 MB 80 ns |
92F0103 |
Gnd |
Gnd |
Gnd |
— |
8 MB 80 ns |
64F3607 |
— |
— |
— |
Gnd |
Zastrzeżony |
Brak danych |
Gnd |
— |
— |
Gnd |
1 MB 85 ns |
90X8624 |
— |
Gnd |
— |
Gnd |
2 MB 85 ns |
92F0104 |
Gnd |
Gnd |
— |
Gnd |
4 MB 70 ns |
92F0105 |
— |
— |
Gnd |
Gnd |
4 MB 85 ns |
79F1003 (sąuare notch) L40-SX |
Gnd |
— |
Gnd |
Gnd |
1 MB 100 ns |
Brak danych |
Gnd |
— |
Gnd |
Gnd |
8 MB 80 ns |
79F1004 (sąuare notch) L40-SX |
— |
Gnd |
Gnd |
Gnd |
2 MB 100 ns |
Brak danych |
Gnd |
Gnd |
Gnd |
Gnd |
4 MB 80 ns |
87F9980 |
Gnd |
Gnd |
Gnd |
Gnd |
2 MB 85 ns |
79FI003 (sąuare notch) L40SX |
— = Brak połączenia (otwarte). Gnd = Ground (masa).
Pin 67 = Presence detect I (wykrywanie obecności). Pin 68 = Presence detect 2 (wykrywanie obecności). Pin 69 = Presence detect 3 (wykrywanie obecności). Pin 70 = Presence detect 4 (wykrywanie obecności).
Ze względu na różnorodne konfiguracje końcówek, przy zamawianiu pamięci zwykle należy określić, czy chodzi nam o moduły firmy IBM, Compaq, HP czy standardowe układy SIMM.
Rozmieszczenie końcówek modułu DIMM
W tabeli 6.15 przedstawiono konfigurację końcówek dla 168-końcówkowego standardowego niebuforowanego modułu SDRAM DIMM. Należy zauważyć, że po każdej stronie modułu DIMM znajdują się inne końcówki. Wszystkie końcówki powinny być pokryte złotem.
Tabela 6.15. Rozmieszczenie końcówek I68-końcówkowego modułu SDRAM DIMM
Końcówka |
Nazwa sygnału
|
Końcówka |
Nazwa sygnału |
Końcówka |
Nazwa sygnału |
Końcówka |
Nazwa sygnału |
1 |
GND |
43 |
GND |
85 |
GND |
127 |
GND |
2 |
Data Bit 0 (bit danych) |
44 |
Do Not Use (nie używać) |
86 |
Data Bit 32 |
128 |
Clock Enable 0 |
3 |
Data Bit 1 |
45 |
Chip Select 2# |
87 |
Data Bit 33 |
129 |
Chip Select 3# |
4 |
Data Bit 2 |
46 |
l/O Mask 2 |
88 |
Data Bit 34 |
130 |
I/O Mask 6 |
5 |
Data Bit 3 |
47 |
I/O Mask 3 |
89 |
Data Bit 35 |
131 |
I/O Mask 7 |
6 |
+3,3 V |
48 |
Do Not Use |
90 |
+3.3 V |
132 |
Reserved (zastrzeżony) |
7 |
Data Bit 4 |
49 |
+3,3 V |
91 |
Data Bit 36 |
133 |
+3,3 V |
8 |
Data Bit 5 |
50 |
NC |
92 |
Data Bit 37 |
134 |
NC |
9 |
Data Bit 6 |
51 |
NC |
93 |
Data Bit 38 |
135 |
NC |
10 |
Data Bit 7 |
52 |
Parity Bit 2 (bit parzystości) |
94 |
Data Bit 39 |
136 |
Parity Bit 6 |
11 |
Data Bit 8 |
53 |
Parity Bit 3 |
95 |
Data Bit 40 |
137 |
Parity Bit 7 |
12 |
GND |
54 |
GND |
96 |
GND |
138 |
GND |
13 |
Data Bit 9 |
55 |
Data Bit 16 |
97 |
Data Bit 41 |
139 |
Data Bit 48 |
14 |
Data Bit 10 |
56 |
Data Bit 17 |
98 |
Data Bit 42 |
140 |
Data Bit 49 |
15 |
Data Bit 11 |
57 |
Data Bit 18 |
99 |
Data Bit 43 |
141 |
Data Bit 50 |
16 |
Data Bit 12 |
58 |
Data Bit 19 |
100 |
Data Bit 44 |
142 |
Data Bit 51 |
17 |
Data Bit 13 |
59 |
+3,3 V |
101 |
Data Bit 45 |
143 |
+3,3 V |
18 |
+3,3 V |
60 |
Data Bit 20 |
102 |
+3,3 V |
144 |
Data Bit 52 |
19 |
Data Bit 14 |
61 |
NC |
103 |
Data Bit 46 |
145 |
NC |
20 |
Data Bit 15 |
62 |
NC |
104 |
Data Bit 47 |
146 |
NC |
21 |
Parity Bit 0 |
63 |
Clock Enable 1 |
105 |
Parity Bit 4 |
147 |
NC |
22 |
Parity Bit 1 |
64 |
GND |
106 |
Parity Bit 5 |
148 |
GND |
23 |
GND |
65 |
Data Bit 21 |
107 |
GND |
149 |
Data Bit 53 |
24 |
NC |
66 |
Data Bit 22 |
108 |
NC |
150 |
Data Bit 54 |
25 |
NC |
67 |
Data Bit 23 |
109 |
NC |
151 |
Data Bit 55 |
26 |
+3,3 V |
68 |
GND |
110 |
+3,3 V |
152 |
GND |
27 |
WE# |
69 |
Data Bit 24 |
Ul |
CAS# |
153 |
Data Bit 56 |
28 |
l/O Mask 0 |
70 |
Data Bit 25 |
112 |
l/O Mask 4 |
154 |
Data Bit 57 |
29 |
l/O Mask 1 |
71 |
Data Bit 26 |
113 |
I/O Mask 5 |
155 |
Data Bit 58 |
30 |
Chip Select 0# |
72 |
Data Bit 27 |
114 |
Chip Select 1 # |
156 |
Data Bit 59 |
31 |
Do Not Use |
73 |
+3,3 V |
115 |
RAS# |
157 |
+3,3 V |
32 |
GND |
74 |
Data Bit 28 |
116 |
GND |
158 |
Data Bit 60 |
33 |
Address Bit 0 (bit adresu) |
75 |
Data Bit 29 |
117 |
Address Bit 1 |
159 |
Data Bit 61 |
34 |
Address Bit 2 |
76 |
Data Bit 30 |
118 |
Address Bit 3 |
160 |
Data Bit 62 |
35 |
Address Bit 4 |
77 |
Data Bit 31 |
119 |
Address Bit 5 |
161 |
Data Bit 63 |
36 |
Address Bit 6 |
78 |
GND |
120 |
Address Bit 7 |
162 |
GND |
37 |
Address Bit 8 |
79 |
Ciock 2 |
121 |
Address Bit 9 |
163 |
Clock 3 |
38 |
Address Bit 10 |
80 |
NC |
122 |
Bank Address 0 |
164 |
NC |
39 |
Bank Address 1 (adres banku) |
81 |
SPD Write Protect |
123 |
Address Bit 11 |
165 |
SPD Address 0 |
40 |
+3,3 V |
82 |
SPD Data |
124 |
+3,3 V |
166 |
SPD Address 1 |
41 |
+3,3 V |
83 |
SPD Clock |
125 |
Clock 1 |
167 |
SPD Address 2 |
42 |
Clock 0 |
84 |
+3,3 V |
126 |
Reserved |
168 |
+3,3 V |
Gnd = Ground (masa).
NC = No connection (brak połączenia).
SPD = Serial presence detect
W porównaniu z modułami SIMM, układy DIMM stosują zupełnie inny typ wykrywania obecności określany jako SPD (Serial Presence Detect). Moduł DIMM zawiera niewielki układ pamięci EEPROM lub Flash przechowujący specjalnie sformatowane dane dotyczące jego parametrów. Te szeregowe dane mogą być odczytane przy użyciu końcówek danych szeregowych modułu DIMM. Dzięki nim możliwe jest zastosowanie przez płytę główną funkcji automatycznej detekcji pozwalającej dokładnie określić typ zainstalowanego modułu DIMM.
Istnieje kilka odmian modułów DIMM, włączając w to wersję buforowaną i niebuforowaną oraz zasilaną napięciem 3,3 lub 5 V. Buforowane moduły DIMM dysponują dodatkowymi układami pełniącymi rolę bufora oraz interfejsu pomiędzy płytą główną a układem pamięci. Niestety, tego typu bufory spowalniają pracę modułów DIMM i przy wyższych szybkościach nie są zbyt efektywne. Z tego powodu we wszystkich komputerach PC używane są niebuforowane moduły DIMM. Kwestia napięcia zasilającego modułów DIMM jest jasna. Moduły DIMM instalowane w komputerach PC prawie zawsze są zasilane napięciem 3,3 V. Jeśli jednak spróbujesz umieścić w gnieździe zasilanym napięciem 3,3 V moduł DIMM w wersji 5 V, wtedy dojdzie do jego uszkodzenia. Na szczęście wycięcia umieszczone w gnieździe i module DIMM uniemożliwiają nieprawidłową instalację.
W większości systemów są stosowane tylko niebuforowane moduły DIMM zasilane napięciem 3,3 V. Komputery firmy Apple i inne systemy niestandardowe mogą być wyposażone w moduły buforowane zasilane napięciem 5 V. Na szczęście wycięcia położone wzdłuż krawędzi złącza modułów DIMM w wersji buforowanej lub niebuforowanej oraz zasilanej napięciem 3,3 lub 5 V znajdują się w innym miejscu, co zostało pokazane na rysunku 6.8. Dzięki temu instalacja w gnieździe nieprawidłowego typu modułu DIMM jest niemożliwa.
Rysunek 6.8.
Oznaczenia wyciąć 68-końcówkowego modułu DRAM DIMM
Rozmieszczenie końcówek modułu DDR DIMM
W tabeli 6.16 zawarto konfigurację końcówek 184-końcówkowego modułu DDR SDRAM DIMM. Należy zauważyć, że po każdej stronie modułu DIMM znajdują się inne końcówki. Wszystkie końcówki powinny być pokryte złotem.
Tabela 6.16. Rozmieszczenie końcówek 184-końcówkowego modułu DDR DIMM
Końcówka |
Nazwa sygnału |
Końcówka |
Nazwa sygnału |
Końcówka |
Nazwa sygnału |
Końcówka |
Nazwa sygnału |
1 |
Reference +1,25 V |
47 |
Data Strobę 8 |
93 |
GND |
139 |
GND |
2 |
Data Bit 0 (bit danych) |
48 |
Address Bit 0 |
94 |
Data Bit 4 |
140 |
Data Strobę 17 |
3 ; GND |
49 |
Parity Bit 2 (bit parzystości) |
95 |
Data Bit 5 |
141 |
Address Bit 10 |
|
4 |
Data Bit 1 |
50 |
GND |
96 |
I/O +2,5 V |
142 |
Parity Bit 6 |
5
|
Data Strobę 0 |
51 |
Parity Bit 3 |
97 |
Data Strobę 9 |
143 |
I/O +2,5 V |
6 |
Data Bit 2 |
52 |
Bank Address 1 (adres banku) |
98 |
Data Bit 6 |
144 |
Parity Bit 7 |
7 |
+2.5 V |
53 |
Data Bit 32 |
99 |
Data Bit 7 |
145 |
GND |
OO |
Data Bit 3 |
54 |
I/O +2,5 V |
100 |
GND |
146 |
Data Bit 36 |
9 |
NC |
55 |
Data Bit 33 |
101 |
NC |
147 |
Data Bit 37 |
10 |
NC |
56 |
Data Strobę 4 |
102 |
NC |
148 |
+2,5 V |
11 |
GND |
57 |
Data Bit 34 |
103 |
Address Bit 13 |
149 |
Data Strobę 13 |
12 |
Data Bit 8 |
58 |
GND |
104 |
I/O +2,5 V |
150 |
Data Bit 38 |
13 |
Data Bit 9 |
59 |
Bank Address 0 |
105 |
Data Bit 12 |
151 |
Data Bit 39 |
14 |
Data Strobę 1 |
60 |
Data Bit 35 |
106 |
Data Bit 13 |
152 |
GND |
15 |
l/O +2,5 V |
61 |
Data Bit 40 |
107 |
Data Strobę 10 |
153 |
Data Bit 44 |
16 |
Clock 1 |
62 |
I/O +2,5 V |
108 |
+2,5 V |
154 |
RAS# |
17 |
Clock 1 # |
63 |
WE# |
109 |
Data Bit 14 |
155 |
Data Bit 45 |
18 |
GND |
64 |
Data Bit 41 |
110 |
Data Bit 15 |
156 |
l/O +2,5 V |
19 |
Data Bit 10 |
65 |
CAS# |
111 |
Clock Enable 1 |
157 |
SO# |
20 |
Data Bit 11 |
66 |
GND |
112 |
I/O +2,5 V |
158 |
SI # |
21 |
Clock Enable 0 |
67 |
Data Strobę 5 |
113 |
Bank Address 2 |
159 |
Data Strobę 14 |
22 |
I/O +2,5 V |
68 |
Data Bit 42 |
114 |
Data Bit 20 |
160 |
GND |
23 |
Data Bit 16 |
69 |
Data Bit 43 |
115 |
Address Bit 12 |
161 |
Data Bit 46 |
24 |
Data Bit 17 |
70 |
+2,5 V |
116 |
GND |
162 |
Data Bit 47 |
25 |
Data Strobę 2 |
71 |
S2# |
117 |
Data Bit 21 |
163 |
S3# |
26 |
GND |
72 |
Data Bit 48 |
118 |
Address Bit 11 |
164 |
I/O +2,5 V |
27 |
Address Bit 9 |
73 |
Data Bit 49 |
119 |
Data Strobę 11 |
165 |
Data Bit 52 |
28 |
Data Bit 18 |
74 |
GND |
120 |
+2,5 V |
166 |
Data Bit 53 |
29 |
Address Bit 7 |
75 |
Clock 2U |
121 |
Data Bit 22 |
167 |
FETEN |
30 |
I/O +2,5 V |
76 |
Clock 2 |
122 |
Address Bit 8 |
168 |
+2,5 V |
31 |
Data Bit 19 |
77 |
I/O +2,5 V |
123 |
Data Bit 23 |
169 |
Data Strobę 15 |
32 |
Address Bit 5 |
78 |
Data Strobę 6 |
124 |
GND |
170 |
Data Bit 54 |
33 |
Data Bit 24 |
79 |
Data Bit 50 |
125 |
Address Bit 6 |
171 |
Data Bit 55 |
34 |
GND |
80 |
Data Bit 51 |
126 |
Data Bit 28 |
172 |
I/O +2,5 V |
35 |
Data Bit 25 |
81 |
GND |
127 |
Data Bit 29 |
173 |
NC |
36 |
Data Strobę 3 |
82 |
+2,5 VID |
128 |
I/O +2,5 V |
174 |
Data Bit 60 |
37 |
Address Bit 4 |
83 |
Data Bit 56 |
129 |
Data Strobę 12 |
175 |
Data Bit 61 |
38 |
+2,5 V |
84 |
Data Bit 57 |
130 |
Address Bit 3 |
176 |
GND |
39 |
Data Bit 26 |
85 |
+2,5 V |
131 |
Data Bit 30 |
177 |
Data Strobę 16 |
40 |
Data Bit 27 |
86 |
Data Strobę 7 |
132 |
GND |
178 |
Data Bit 62 |
41 |
Address Bit 2 |
87 |
Data Bit 58 |
133 |
Data Bit 31 |
179 |
Data Bit 63 |
42 |
GND |
88 |
Data Bit 59 |
134 |
Parity Bit 4 |
180 |
I/O +2,5 V |
43 |
Address Bit 1 |
89 |
GND |
135 |
Parity Bit 5 |
181 |
SPD Address 0 |
44 |
Parity Bit 0 |
90 |
SPD Write Protect |
136 |
I/O +2,5 V |
182 |
SPD Address 1 |
45 |
Parity Bit 1 |
91 |
SPD Data |
137 |
Clock 0 |
183 |
SPD Address 2 |
46 |
+2,5 V |
92 |
SPD Clock |
138 |
Clock 0# |
184 |
SPD+2,5 V |
Gnd = Ground (masa).
NC = No connection (brak połączenia).
SPD = Serial presence detect.
Rysunek 6.9.
Wycięcie w 184-końcówkowym module DDR SDRAM DIMM
W modułach DDR DIMM stosowane jest pojedyncze wycięcie określające napięcie zasilania (rysunek 6.9).
W 184-końcówkowych modułach DDR DIMM po każdej stronie znajdują się dwa wycięcia umożliwiające instalację zarówno w gniazdach wyposażonych w duże, jak i małe zatrzaski. Należy zauważyć, że położenie wycięcia względem środka modułu DIMM jest przesunięte, co ma na celu uniemożliwienie odwrotnej instalacji układu w gnieździe. Wycięcie jest umieszczone po lewej lub prawej stronie albo w środku obszaru znajdującego się pomiędzy końcówkami 52 i 53. Jego zadaniem jest określenie napięcia zasilającego modułu DDR DIMM oraz zapobieżenie instalacji w gnieździe nieprawidłowego typu modułu, co mogłoby doprowadzić do jego uszkodzenia.
Rozmieszczenie końcówek modułu DDR2 DIMM
W tabeli 6.17 zawarto konfigurację końcówek 240-końcówkowego modułu DDR2 SDRAM DIMM. Końcówki 1 - 120 znajdują się na przedniej stronie, natomiast końcówki 121 - 240 — na tylnej. Wszystkie końcówki powinny być pokryte złotem.
Tabela 6.17. Rozmieszczenie końcówek 240-końcówkowego modułu DDR2 DIMM
co |
|
n |
|
(0 |
|
co |
|
mcówt |
Nazwa sygnału |
f -o u >c |
Nazwa sygnału |
1 'O o -c |
Nazwa sygnału |
S -o u <c |
Nazwa sygnału |
s: |
|
SC |
|
a: |
|
a: |
|
1 |
VREF |
61 |
A4 |
121 |
VSS |
181 |
VDDQ |
2 |
VSS |
62 |
VDDQ |
122 |
DQ4 |
182 |
A3 |
3 |
DQ0 |
63 |
A2 |
123 |
DQ5 |
183 |
Al |
4 |
DQ1 |
64 |
VDD |
124 |
VSS |
184 |
VDD |
5 |
vss |
65 |
vss |
125 |
DM0 |
185 |
CK0 |
6 |
-DQS0 |
66 |
vss |
126 |
NC |
186 |
-CK0 |
7 |
DQS0 |
67 |
VDD |
127 |
VSS |
187 |
VDD |
8 |
VSS |
68 |
NC |
128 |
DQ6 |
188 |
A0 |
9 |
DQ2 |
69 |
VDD |
129 |
DQ7 |
189 |
VDD |
10 |
DQ3 |
70 |
A10/-AP |
130 |
VSS |
190 |
BA1 |
11 |
VSS |
71 |
BA0 |
131 |
DQ12 |
191 |
VDDQ |
12 |
DQ8 |
72 |
VDDQ |
132 |
DQ13 |
192 |
-RAS |
13 |
DQ9 |
73 |
-WE |
133 |
VSS |
193 |
-CS0 |
14 |
VSS |
74 |
-CAS |
134 |
DM1 |
194 |
VDDQ |
15 |
-DQS1 |
75 |
VDDQ |
135 |
NC |
195 |
ODT0 |
16 |
DQS1 |
76 |
-CS1 |
136 |
VSS |
196 |
A13 |
17 |
VSS |
77 |
ODT1 |
137 |
CK1 |
197 |
VDD |
18 |
NC |
78 |
VDDQ |
138 |
-CK1 |
198 |
VSS |
19 |
NC |
79 |
SS |
139 |
VSS |
199 |
DQ36 |
20 |
VSS |
80 |
DQ32 |
140 |
DQ14 |
200 |
DQ37 |
21 |
DQ10 |
81 |
DQ33 |
141 |
DQ15 |
201 |
VSS |
22 |
DQ11 |
82 |
VSS |
142 |
VSS |
202 |
DM4 |
23 |
VSS |
83 |
-DQS4 |
143 |
DQ20 |
203 |
NC |
24 |
DQ16 |
84 |
DQS4 |
144 |
DQ21 |
204 |
VSS |
25 |
DQ17 |
85 |
VSS |
145 |
VSS |
205 |
DQ38 |
26 |
vss |
86 |
DQ34 |
146 |
DM2 |
206 |
DQ39 |
27 |
-DQS2 |
87 |
DQ35 |
147 |
NC |
207 |
VSS |
28 |
DQS2 |
88 |
VSS |
148 |
vss |
208 |
DQ44 |
29 |
VSS |
89 |
DQ40 |
149 |
DQ22 |
209 |
DQ45 |
30 |
DQ18 |
90 |
DQ41 |
150 |
DQ23 |
210 |
VSS |
31 |
DQ19 |
91 |
vss |
151 |
vss |
211 |
DM5 |
32 |
VSS |
92 |
-DQS5 |
152 |
DQ28 |
212 |
NC |
33 |
DQ24 |
93 |
DQS5 |
153 |
DQ29 |
213 |
VSS |
34 |
DQ25 |
94 |
VSS |
154 |
vss |
214 |
DQ46 |
35 |
VSS |
95 |
DQ42 |
155 |
DM3 |
215 |
DQ47 |
36 |
-DQS3 |
96 |
DQ43 |
156 |
NC |
216 |
vss |
37 |
DQS3 |
97 |
vss |
157 |
vss |
217 |
DQ52 |
38 |
VSS |
98 |
DQ48 |
158 |
DQ30 |
218 |
DQ53 |
39 |
DQ26 |
99 |
DQ49 |
159 |
DQ31 |
219 |
VSS |
40 |
DQ27 |
100 |
VSS |
160 |
VSS |
220 |
CK2 |
41 |
VSS |
101 |
SA2 |
161 |
NC |
221 |
-CK.2 |
42 |
NC |
102 |
NC |
162 |
NC |
222 |
VSS |
43 |
NC |
103 |
VSS |
163 |
VSS |
223 |
DM6 |
44 |
VSS |
104 |
-DQS6 |
164 |
NC |
224 |
NC |
45 |
NC |
105 |
DQS6 |
165 |
NC |
225 |
VSS |
46 |
NC |
106 |
VSS |
166 |
VSS |
226 |
DQ54 |
47 |
vss |
107 |
DQ50 |
167 |
NC |
227 |
DQ55 |
48 |
NC |
108 |
DQ51 |
168 |
NC |
228 |
VSS |
49 |
NC |
109 |
VSS |
169 |
VSS |
229 |
DQ60 |
50 |
VSS |
110 |
DQ56 |
170 |
VDDQ |
230 |
DQ61 |
51 |
VDDQ |
111 |
DQ57 |
171 |
CKE1 |
231 |
vss |
52 |
CKEO |
112 |
VSS |
172 |
VDD |
232 |
DM7 |
53 |
VDD |
113 |
-DQS7 |
173 |
NC |
233 |
NC |
54 |
NC |
114 |
DQS7 |
174 |
NC |
234 |
vss |
55 |
NC |
115 |
VSS |
175 |
VDDQ |
235 |
DQ62 |
56 |
VDDQ |
116 |
DQ58 |
176 |
A12 |
236 |
DQ63 |
57 |
Ali |
117 |
DQ59 |
177 |
A9 |
237 |
VSS |
58 |
A7 |
118 |
VSS |
178 |
VDD |
238 |
VDDSPD |
59 |
VDD |
119 |
SDA |
179 |
A8 |
239 |
SAO |
60 |
A5 |
120 |
SCL |
180 |
A6 |
240 |
SA1 |
W celu zachowania zgodności zarówno z gniazdami nisko-, jak i wysokoprofilowanymi, 240-końcówkowe moduły DDR2 DIMM z każdej strony posiadają 2 wycięcia. Aby zapobiec odwrotnemu włożeniu modułu DIMM do gniazda, klucz złącza jest przesunięty względem środka modułu. Wycięcie klucza jest umieszczone w środku obszaru znajdującego się pomiędzy końcówkami 64 i 64 z przodu modułu (z tyłu odpowiadają im końcówki 184 i 185). Ze względu na to, że wszystkie moduły DDR2 DIMM są zasilane napięciem 1,8 V, nie istnieje powiązany z nim klucz.
Rozmieszczenie końcówek modułu RIMM
Końcówki modułów i gniazd RIMM pokryte są złotem, natomiast ich trwałość przewidziano na 25 operacji instalacji i demontażu. Każdy moduł RIMM dysponuje 184 końcówkami podzielonymi na dwie grupy liczące po 92 końcówki umieszczone po obu stronach modułu. W tabeli 6.18 zawarto rozmieszczenie końcówek modułu RIMM.
Tabela 6.18. Rozmieszczenie końcówek modułu RIMM
Końcówka |
Nazwa sygnału |
Końcówka |
Nazwa sygnału |
Końcówka |
Nazwa sygnału |
Końcówka |
Nazwa sygnału |
Al |
GND |
BI |
GND |
A47 |
NC |
B47 i NC |
|
A2 A3 |
LData Bit A8 |
B2 |
Data Bit A7 |
A48 |
NC |
B48 NC |
|
|
GND |
B3 |
GND |
A49 |
NC |
B49 |
NC |
A4 |
LData Bit A6 |
B4 |
LData Bit A5 |
A50 |
NC |
B50 |
NC |
A5 |
GND |
B5 |
GND |
A51 |
VREF |
B51 |
VREF |
A6 i LDataBitA4 |
B6 |
Data Bit A3 |
A52 |
GND |
B52 |
GND |
|
A7 |
GND |
B7 |
GND |
A53 |
SPD Clock |
B53 |
SPD Address 0 |
A8 |
LData Bit A2 |
B8 |
LData Bit Al |
A54 |
+2,5 V |
B54 |
+2,5 V |
A9 |
GND |
B9 |
GND |
A55 |
SDA |
B55 |
SPD Address 1 |
AIO |
LData Bit AO |
B10 |
Interface Clock+ |
A56 |
SVDD |
B56 |
SVDD |
Al! |
GND |
Bil |
GND |
A57 |
SPD Write Protect |
B57 |
SPD Address 2 |
A12 |
LCTMN |
B12 |
Interface Clock- |
A58 |
+2,5 V |
B58 |
+2,5 V |
A13 |
GND |
B13 |
GND |
A59 |
RSCK |
B59 |
RCMD |
A14 |
LCTM |
B14 |
NC |
A60 |
GND |
B60 |
GND |
A15 |
GND |
B15 |
GND |
A61 |
Rdata Bit B7 |
Ból |
RData Bit B8 |
A16 |
NC |
B16 |
LROW2 |
A62 |
GND |
B62 |
GND |
A17 |
GND |
B17 |
GND |
A63 |
Rdata Bit B5 |
B63 |
RData Bit B6 |
A18 |
LROW1 |
B18 |
LROWO |
A64 |
GND |
B64 |
GND |
A19 |
GND |
BI9 |
GND |
A65 |
Rdata Bit B3 |
B65 |
RData Bit B4 |
A20 |
LCOL4 |
B20 |
LCOL3 |
A66 |
GND |
B66 |
GND |
A21 |
GND |
B21 |
GND |
A67 |
Rdata Bit BI |
B67 |
RData Bit B2 |
A22 |
LCOL2 |
B22 |
LCOL1 |
A68 |
GND |
B68 |
GND |
A23 |
GND |
B23 |
GND |
A69 |
RCOLO |
B69 |
RData Bit BO |
A24 |
LCOLO |
B24 |
LData Bit BO |
A70 |
GND |
B70 |
GND |
A25 |
GND |
B25 |
GND |
A71 |
RCOL2 |
971 |
RCOL1 |
A26 |
LData Bit BI |
B26 |
LData Bit B2 |
A72 |
GND |
B72 |
GND |
A27 |
GND |
B27 |
GND |
A73 |
RCOL4 |
B73 |
RCOL3 |
A28 |
LData Bit B3 |
B28 |
LData Bit B4 |
A74 |
GND |
B74 |
GND |
A29 |
GND |
B29 |
GND |
A75 |
RROW1 |
B75 |
RROWO |
A30 |
LData Bit B5 |
B30 |
LData Bit B6 |
A76 |
GND |
B76 |
GND |
A31 |
GND |
B31 |
GND |
A77 |
NC |
B77 |
RROW2 |
A32 |
LData Bit B7 |
B32 |
LData Bit B8 |
A78 |
GND |
B78 |
GND |
A33 |
GND |
B33 |
GND |
A79 |
RCTM |
B79 |
NC |
A34 |
LSCK. |
B34 |
LCMD |
A80 |
GND |
B80 |
GND |
A35 |
VCMOS |
B35 |
VCMOS |
A81 |
RCTMN |
B81 |
RCFMN |
A36 |
SOUT |
B36 |
SIN |
A82 |
GND |
B82 |
GND |
A37 |
VCMOS |
B37 |
VCMOS |
A83 |
Rdata Bit AO |
983 |
RCFM |
A38 |
NC |
B38 |
NC |
A84 |
GND |
B84 |
GND |
A39 |
GND |
B39 |
GND |
A85 |
Rdata Bit A2 |
B85 |
RData Bit Al |
A40 |
NC |
B40 |
NC |
A86 |
GND |
B86 |
GND |
A41 |
+2,5 V |
B41 |
+2,5 V |
A87 |
Rdata Bit A4 |
R87 |
RData Bit A3 |
A42 |
+2,5 V |
B42 |
+2,5 V |
A88 |
GND |
B88 |
GND |
A43 |
NC |
B43 |
NC |
A89 |
Rdata Bit A6 |
B89 |
RDdata Bit A5 |
A44 |
NC |
B44 |
NC |
A90 |
GND |
B90 |
GND |
A45 |
NC |
B45 |
NC |
A91 |
Rdata Bit AB |
B91 |
RData Bit A7 |
A46 |
NC |
B46 |
NC |
A92 |
GND |
B92 |
GND |
Moduły RIMM w wersji 16/18-bitowej wyposażone są w dwa wycięcia umieszczone w środku. Dzięki nim zapobiega się odwrotnej instalacji modułu oraz uniemożliwia zastosowanie nieprawidłowego typu układu RIMM zasilanego innym napięciem. Aktualnie wszystkie moduły RIMM są zasilane napięciem 2,5 V, ale nowsze 64-bitowe wersje będą wymagały napięcia o wartości jedynie 1,8 V. W celu umożliwienia modyfikacji modułów RIMM, w czasie ich projektowania przewidziano trzy różne położenia wycięcia (rysunek 6.10). Lewe wycięcie (oznaczone na rysunku 6.10 jako „PUNKT A") ma trwale ustalone położenie, natomiast wycięcie środkowe może być umieszczone w trzech różnych miejscach oddalonych w prawą stronę o 1 lub 2 mm. Każde położenie wskazuje na inny typ modułu RIMM. Aktualnie domyślnym położeniem jest opcja A odpowiadająca napięciu zasilania 2,5 V pokazana na rysunku 6.10 oraz w tabeli 6.19.
Rysunek 6.10.
Różne położenie wycięcia modułu RIMM
Tabela 6.19. Możliwe położenia wycięcia modułu RIMM
Opcja |
Położenie wycięcia |
Opis |
A |
11,5 mm |
Napięcie 2,5 V modułu RIMM |
B |
12,5 mm |
Zastrzeżone |
C |
13,5 mm |
Zastrzeżone |
Moduły zawierają urządzenie SPD, które właściwie jest układem pamięci Flash ROM. Układ ROM przechowuje informacje dotyczące pojemności i typu modułu RIMM oraz dane na temat taktowania wymagane przez kontroler pamięci. Kontroler pamięci w celu dostosowania konfiguracji systemu do zainstalowanych modułów RIMM automatycznie odczytuje dane z układu SPD ROM.
Na rysunku 6.11 przedstawiono standardowy komputer PC wyposażony w moduły RIMM. Kontroler pamięci RDRAM i generator zegara zazwyczaj stanowią część mostka północnego chipsetu płyty głównej. Jak można zauważyć, kanał pamięci Rambus zaczyna się w kontrolerze pamięci, a następnie przechodzi przez ciąg maksymalnie trzech modułów RIMM. Każdy z modułów zawiera 4, 8, 16 lub więcej urządzeń RDRAM (układów), które również są ze sobą połączone, oraz dodatkowy układ SPD ROM przechowujący konfigurację systemową. Każde gniazdo, w którym brak modułu RIMM, musi być wypełnione modułem zachowującym ciągłość pokazanym w ostatnim gnieździe na rysunku 6.11. Dzięki niemu magistrala pamięci tworzy zamkniętą całość, która rozpoczyna się od kontrolera, przebiega przez każdy moduł (a tym samym każdy układ RDRAM modułu) i kończy się na płycie głównej. Należy zwrócić uwagę, w jaki sposób zamykana jest pętla pomiędzy kolejnymi modułami. Ze względu na prawidłowe taktowanie, pierwsze gniazdo pamięci RIMM musi być położone w odległości nie przekraczającej 15,2 cm od kontrolera pamięci, natomiast pełna długość magistrali nie może przekroczyć odcinka, którego pokonanie od jednego końca do drugiego zajmie sygnałowi maksymalnie cztery cykle zegara lub około 5 ns.
Rysunek 6.11.
Typowe rozmieszczenie magistrali pamięci RDRAM ukazujące moduł RIMM i moduł zachowujący ciągłość magistrali
Interesujące jest to, że firma Rambus nie produkuje urządzeń RDRAM (układów) lub modułów RIMM. Zadanie to jest zlecane innym producentom. Firma Rambus zajmuje się tylko projektowaniem, dlatego też nie posiada żadnej fabryki układów scalonych ani hal produkcyjnych. Firma udziela licencji innym firmom, które zajmują się wytwarzaniem urządzeń i modułów.
Pojemność i organizacja fizycznej pamięci RAM
Do tej pory płyty główne komputerów PC obsługiwały kilka typów układów pamięci. Większość z nich należy do układów o jednobitowej szerokości i dostępna jest w kilku wersjach o różnych pojemnościach.
Należy zauważyć, że zazwyczaj pojemność układu wzrasta czterokrotnie, co wynika z tego, że płytki tworzące układy mają kształt kwadratu. W miarę zwiększania pojemności, czterokrotnie wzrasta liczba tranzystorów i sama pojemność. Większość nowszych modułów SIMM i DIMM jest złożona z układów o pojemności od 16 do 256 MB.
Na rysunku 6.12 przedstawiono oznaczenia typowego układu pamięci firmy Micron Technologies, jednego z najpopularniejszych producentów układów i modułów. Chociaż wielu producentów pamięci posługuje się podobnymi schematami oznaczeń swoich układów, to jednak jeśli zamierzasz w pełni zidentyfikować określony układ, w celu uzyskania dokładniejszych informacji powinieneś zajrzeć do katalogu.
Oznaczenie -75 odpowiada szybkości układu wyrażonej w nanosekundach, w tym przypadku jest to 7.5 nanosekundy czyli 133 MHz.
Rysunek 6.12.
Oznaczenia typowego układu pamięci firmy Micron
Numer identyfikacyjny zazwyczaj zawiera informacje na temat typu i pojemności układu. Przykładowy układ jest oznaczony numerem MT48LC8M8A2TG-75L. Jego rozwinięcie wygląda następująco:
MT = Micron Technologies
48 = SDRAM
LC = 3,3 V CMOS
8M8 = 8 milionów wierszy (głębokość) x 8 bitów (szerokość)
A2 = Wersja urządzenia
TG = TSOP (thin smali outline package)
-75 = 7,5 ns(133 MHz)
L = Niski pobór mocy
Różni producenci stosują różne oznaczenia. Przedstawiony przykład został użyty tylko w celach demonstracyjnych.
Ze względu na to, że układ ma szerokość 8 bitów, należy się spodziewać na module DIMM ośmiu lub 16 ich sztuk, które razem dadzą pełną szerokość wynoszącą 64 bity. Jeśli zostanie zastosowanych 16 układów, wtedy moduł DIMM będzie nosił nazwę dwustronnego (double-sided), natomiast układy będą uszeregowane w logiczną całość, w której dwa banki złożone z 8 układów o pojemności 8 MB współpracującą ze sobą tak jakby tworzyły pojedynczy bank złożony z 8 układów o pojemności 16 MB. Jeśli moduł DIMM zawierałby 8 takich układów, wtedy miałby pojemność wynoszącą 8 MB x 64 bity, co odpowiada wartości 8 MB x 8 bajtów, co jest równe 64 MB. Jeśli natomiast użyto by 16 układów, wtedy uzyskano by dwustronny moduł DIMM o pojemności 128 MB. W przypadku zastosowania 8 lub 16 układów uzyskano by 72-bitowy moduł DIMM oferujący funkcję parzystości i kodu korekcji błędów ECC.
Większość układów poza częścią numeru określającego datę produkcji z dokładnością do tygodnia i dnia zawiera dodatkowo również czterocyfrowy numer. Przykładowo numer 0021 określa układ, który został wykonany w 21 tygodniu roku 2000. W celu dokładnej identyfikacji układu należy skontaktować się z jego producentem lub sprzedawcą i uzyskać katalog.
Można się spotkać z modułami SIMM i DIMM, które mają oznaczenia trudne do rozszyfrowania. Niestety, dla oznaczeń stosowanych na tego typu modułach nie określono żadnego standardu przemysłowego, dlatego też w celu ich identyfikacji należy skontaktować się z producentem.
Czasami na modułach nie ma żadnych oznaczeń informujących o pojemności i innych parametrach. W takim przypadku wystarczy poszukać oznaczeń układów na stronie internetowej producenta — na ich postawie powinno być możliwe rozszyfrowanie dokładnego znaczenia (rysunek 6.13).
Rysunek 6.13.
Widok z przodu i z tyłu modułu DIMM przedstawiający nierozszyfrowane oznaczenia określające numer identyfikacyjny, pojemność lub szybkość
To, że nie jestem w stanie rozszyfrować informacji znajdujących się na naklejkach i dotyczących modułu DIMM nie stanowi problemu dotąd, dopóki istnieje możliwość odczytania numeru identyfikacyjnego układu.
Na układach widnieje logo firmy Hyundai (HY) oraz numer identyfikacyjny HY57V651620-TC10. Na stronie internetowej Hyundai Memory znalazłem dokumentację dotyczącą tych układów. Nie jestem w stanie stwierdzić, kto jest producentem modułu DIMM. Na początku podejrzewałem, że jest nim sama firma Hyundai, ponieważ po lewej stronie układu znajdował się numer HY-3U1606, ale w katalogu firmy nie mogłem znaleźć żadnej powiązanej z nim informacji. Pomimo to, nadal mogę poznać wszystkie interesujące mnie informacje na temat modułu. W tym celu należy poszukać danych dotyczących układu.
Zgodnie z dokumentacją układów umieszczonych na module DIMM, są to układy o czasie dostępu wynoszącym 10 ns, które, chociaż dysponują możliwością pracy z częstotliwością 100 MHz, to jednak zostały zakwalifikowane jako moduł 66 MHz SDRAM DIMM (PC66). Jeśli układy cechowałyby się czasem dostępu równym 8 ns (125 MHz), wtedy można by je uznać za moduł DIMM PC 100, natomiast w przypadku czasu dostępu wynoszącego 7,5 ns byłby to moduł DIMM PC133.
Moduł wielkości 64 MB złożony jest z 16 układów pamięci (kolumny) o pojemności 4 MB (rzędy). Po jednej stronie znajdują się cztery układy, co daje w pełni 64-bitowy bank o pojemności 4 MB x 64 bity (4 MB x 8 bajtów lub inaczej 32 MB). Z drugiej strony modułu umieszczono jednakową ilość układów, które w logiczny lub fizyczny sposób tworzą dodatkowy rząd dwukrotnie zwiększający szerokość (liczbę rzędów). Moduły DIMM maksymalnie mogą dysponować szerokością 64 bitów, co pozwala uzyskać pojemność 8 MB x 64 bity lub inaczej 8 MB x 8 bajtów (64 MB). Dodatkowy, niewielki układ firmy Atmel znajdujący się po prawej stronie jest układem pamięci EEPROM zawierającym dane dotyczące modułu DIMM, które w celu konfiguracji kontrolera pamięci chipsetu są odczytywane przez płytę główną. Ponieważ moduł DIMM pozbawiony jest dodatkowych układów pamięci, dlatego też nie posiada 8 bitów, które pozwoliłyby na osiągnięcie szerokości 72 bitów charakterystycznej dla pamięci wyposażonej w funkcję ECC.
Ostatecznie po rozszyfrowaniu oznaczeń widniejących na układzie dowiedziałem się. że jest to dwustronny moduł PC66 SDRAM DIMM o pojemności 64 MB pozbawiony funkcji ECC.
Jeśli nie jesteś w stanie rozszyfrować numeru identyfikacyjnego układu pamięci, w celu rozpoznania posiadanego modułu, jak i uzyskania wielu innych informacji na temat komputera uwzględniających chipset, procesor, puste gniazda pamięci i nie tylko, należy zastosować takie programy, jak HWinfo lub SiSoftware Sandra. Wersja Shareware pierwszego z nich może zostać pobrana z witryny WWW o adresie http://www.hwinfo.com, natomiast drugi można znaleźć na stronie internetowej znajdującej się pod adresem http://www.sisoftware.net.
Banki pamięci
Moduły pamięci (DIP, SIMM, SIPP i DIMM) instalowane sana płytach głównych i kartach pamięci w postaci banków. Warto zapoznać się z rozmieszczeniem i położeniem banków pamięci znajdujących się na płytach i kartach pamięci.
Znajomość rozmieszczenia banków okaże się przydatna przy dodawaniu kolejnych modułów pamięci. Ponadto w raportach diagnostycznych związanych z pamięcią lokalizacja błędów określana jest przy użyciu adresów wyrażanych za pomocą bitów i bajtów, dlatego też w celu identyfikacji banku, w którym wystąpił problem, konieczne jest posłużenie się tymi wartościami.
Zazwyczaj banki odpowiadają pojemności magistrali danych zainstalowanego w komputerze procesora. W tabeli 6.20 zawarto szerokości poszczególnych banków stosowanych w różnych typach systemów.
Tabela 6.20. Szerokości banków pamięci spotykane w różnych systemach
Procesor |
i Magistrala danych |
Szerokość banku pamięci (bez kontroli parzystości) |
Szerokość banku pamięci (z kontrolą parzystości i funkcją ECC) |
i Ilość 30-końcówkowych modułów SIMM w banku |
Ilość 72-koricówkowych modułów SIMM w banku |
Ilość 168-końcówkowych modułów DIMM w banku |
8088 |
8-bitowa |
8 bitów |
9 bitów |
1 |
Brak danych |
Brak danych |
8086 |
16-bitowa |
16 bitów |
18 bitów |
2 |
Brak danych |
Brak danych |
286 |
16-bitowa |
16 bitów |
18 bitów |
2 |
Brak danych |
Brak danych |
386SX, SL, SLC |
16-bitowa |
16 bitów |
18 bitów |
2 |
Brak danych |
Brak danych |
486SLC, SLC2 |
16-bitowa |
16 bitów |
18 bitów |
2 |
Brak danych |
Brak danych |
386DX |
32-bitowa |
32 bity |
36 bitów |
4 |
1 |
Brak danych |
486SX, DX, DX2, DX4, 5x86 |
32-bitowa |
32 bity |
36 bitów |
4 |
1 |
Brak danych |
Pentium, K6 |
64-bitowa |
64 bity |
72 bity |
8* |
2 |
1 |
PPro, Pil, Celeron, PIH, P4, Athlon/Duron, Athlon XP |
64-bitowa |
64 bity |
72 bity |
8* |
2 |
1 |
*Wyprodukowano bardzo mało płyt głównych obsługujących wymienione procesory i używających lego typu pamięci.
Ilość bitów przypadająca na każdy bank może być określona na podstawie pojedynczych układów, modułów SIMM lub DIMM. W nowszych systemach nie stosuje się pojedynczych układów. Zamiast nich używa się tylko modułów SIMM lub DIMM. Jeśli w komputerze umieszczono 16-bitowy procesor, taki jak 386SX, wtedy prawdopodobnie zainstalowano w nim również 30-końcówkowe moduły SIMM, przy czym bank tworzą dwa takie układy. Wszystkie moduły SIMM zainstalowane w jednym banku muszą być tego samego typu i mieć jednakową pojemność.
System oparty na procesorze 486 do zapełnienia banku wymaga zastosowania czterech 30-końcówkowych modułów SIMM lub jednego 72-końcówkowego układu SIMM. Pojedynczy 72-końcówkowy moduł SIMM ma 32-bitową szerokość, natomiast, jeśli obsługuje kontrolę parzystości, jest 36-bitowy. Dość często możliwe jest określenie, czy moduł SIMM obsługuje parzystość poprzez policzenie znajdujących się na nim układów pamięci. W przypadku 32-bitowego modułu SIMM należy zastosować 32 jednobitowe układy lub osiem 4-bi-towych. Wszystkie bity pełnią rolę bitów danych. Jeśli natomiast obsługiwana jest funkcja kontroli parzystości, wtedy konieczne jest zastosowanie czterech dodatkowych bitów dających szerokość 36 bitów, co odpowiada jeszcze jednemu 4-bitowemu układowi pamięci lub czterem układom jednobitowym pełniącym w banku rolę bitów parzystości.
Jak można sobie wyobrazić, 30-końcówkowe moduły SIMM nie są szczególnie zalecane w przypadku 32- lub 64-bitowych systemów opartych na procesorach 486 lub Pentium, ponieważ konieczne wtedy jest instalowanie ich w ilości czterech lub ośmiu układów w jednym banku. Ze względu na to, że tego typu moduły SIMM aktualnie dostępne są w różnych pojemnościach (1,2, 16 MB), w komputerze klasy 486 bank pamięci wypełniony 30-końcówkowymi modułami SIMM miałby pojemność 4, 16 lub 64 MB. W przypadku systemu klasy Pentium pojemność banków wynosiłaby 8, 32 lub 128 MB, przy czym nie byłoby możliwe zastosowanie pojemności pośrednich. Zastosowanie 30-końcówkowych modułów SIMM w 32- i 64-bitowych systemach w sztuczny sposób ogranicza możliwości konfiguracji pamięci, dlatego też tego typu rozwiązania nie są zalecane. Jeśli w 32-bitowym systemie (np. dowolny komputer PC klasy 486) zostaną zainstalowane 72-końców-kowe moduły SIMM, wtedy każdy z nich odpowiada jednemu bankowi, natomiast kolejne układy pamięci mogą być dodawane pojedynczo, a nie, tak jak w przypadku 30-końcówkowych modułów SIMM, po cztery jednocześnie. Dzięki temu konfiguracja pamięci staje się bardziej elastyczna i prostsza. W 64-bitowych systemach opartych na modułach SIMM do wypełnienia jednego banku konieczne jest zainstalowanie dwóch 72-końcówkowych układów SIMM.
Ze względu na swoją 64-bitową szerokość, moduły DIMM idealnie nadają się do zastosowania w systemach opartych na procesorze Pentium lub nowszych, ponieważ dysponują one magistralą danych o szerokości wynoszącej również 64 bity. W związku z tym każdy moduł DIMM odpowiada jednemu bankowi, a tym samym jednocześnie można dodawać lub usuwać po jednym takim układzie.
Sposób rozmieszczenia i numeracji gniazd modułów SIMM i DIMM umieszczonych na płycie głównej jest dowolny i określany przez jej projektanta. Z tego też powodu należy zajrzeć do dołączonej dokumentacji systemowej. Można również określić rozmieszczenie gniazd pamięci na płycie lub karcie pamięci drogą eksperymentu, ale jest to czasochłonna i trudna operacja szczególnie wtedy, gdy w jej trakcie pojawią się problemy.
Szybkość modułów pamięci
W przypadku, gdy konieczna jest wymiana uszkodzonego modułu lub zainstalowanie w ramach aktualizacji kolejnego układu pamięci, zazwyczaj konieczne jest zastosowanie modułu tego samego typu i o takiej samej szybkości co pozostałe układy znajdujące się w komputerze. Zamiana szybszego modułu na inny jest możliwa, ale tylko wtedy, gdy szybkość nowego układu jest taka sama lub wyższa od szybkości innych modułów zainstalowanych w systemie.
Znam osoby, które po wymieszaniu ze sobą modułów o różnych szybkościach napotkały na problemy. Ze względu na dostępność wielu różnych płyt głównych, chipsetów i typów pamięci obowiązuje kilka żelaznych reguł. Jeśli nie masz pewności, jakiej szybkości moduły zainstalować, wtedy w celu uzyskania dodatkowych informacji zajrzyj do dołączonej do płyty głównej dokumentacji.
Wymiana tego samego typu pamięci na szybszą wersję nie zwiększy wydajności, jeśli w systemie będzie ustawiona dotychczasowa szybkość. W komputerach wyposażonych w moduły DIMM lub RIMM ich czas dostępu wraz z parametrami związanymi z taktowaniem jest odczytywany ze specjalnego układu SPD ROM znajdującego się na modułach, a następnie chipset (kontroler pamięci) odpowiednio dostosowuje się do tych wartości. W tego typu systemach zauważalny przyrost wydajności możliwy jest po zainstalowaniu tak szybkich modułów, na jakie tylko pozwalają możliwości chipsetu.
W celu podkreślenia znaczenia taktowania i stabilności, firma Intel i organizacja JEDEC opracowały standardy określające typy pamięci, od których wymaga się pewnego poziomu wydajności. Przykładowo, firma Intel opracowała standardy PC66. PC 100 i PC 133, z którymi jest zgodnych wiele nowszych chipsetów. Standardy gwarantują, że moduły pamięci spełniają wymagania dotyczące taktowania i wydajności określone przez firmę Intel. W przypadku częstotliwości 100 MHz lub wyższej nie pozostawiono zbyt dużego pola manewru związanego z taktowaniem pamięci.
W sytuacji, gdy wybrane moduły pamięci zainstalowane w komputerze ulegną uszkodzeniu lub po prostu nie spełniają wymogów systemu związanych z taktowaniem, wtedy często pojawiają się typowe problemy. Należy do nich zaliczyć częste błędy kontroli parzystości lub całkowitą niesprawność systemu. Informacja o błędach może być również wygenerowana przez procedurę POST. Jeśli nie jesteś pewien, jakie układy pamięci zainstalować w używanym komputerze, wtedy powinieneś skontaktować się z jego producentem lub uznanym dostawcą pamięci.
^ ^ Zajrzyj do podpunktu „Kontrola parzystości" znajdującego się na stronie 571.
Złoto lub cyna
Wiele osób nie jest świadomych istotnej roli, jaką odgrywają styki modułów pamięci instalowanych w komputerach. Moduły pamięci (SIMM, DIMM i RIMM) dostępne są w wersjach wyposażonych w styki pokryte złotem lub cyną. Początkowo sądziłem, że moduły zawierające pozłacane styki pod względem stabilności sprawdzają się najlepiej we wszystkich przypadkach, ale wcale tak nie jest. Aby uzyskać jak najbardziej stabilny system, konieczne jest zainstalowanie modułów z pozłacanymi stykami tylko w gniazdach wyposażonych również w takie styki, natomiast modułów wyposażonych w styki pokryte cyną tylko w gniazdach dysponujących stykami pokrytymi cyną.
Jeśli nie będziesz przestrzegał powyższej zasady i zainstalujesz pamięć ze stykami pozłacanymi w gnieździe wyposażonym w styki pokryte cyną lub odwrotnie, wtedy wcześniej czy później pojawią się problemy związane z błędami pamięci i stabilnością jej pracy. Z doświadczenia wiem, że problemy pojawiają od sześciu miesięcy do roku po dokonaniu instalacji pamięci. Osobiście tego typu problemów doświadczyłem kilkakrotnie w systemach, których sam używam, i w komputerach, którymi zajmowałem się w ramach usług serwisowych. Zostałem nawet poproszony przez jednego z klientów o pełnienie roli eksperta w sprawie sądowej. Klient ten dokonał u pewnego sprzedawcy zakupu kilkuset komputerów, w większości których w przybliżeniu rok po ich dostarczeniu zaczęły pojawiać się poważne błędy pamięci. Zidentyfikowaną przyczyną okazało się zainstalowanie modułów w gniazdach pamięci wyposażonych w styki wykonane z innego metalu (w tym przypadku moduły SIMM z pozłacanymi stykami zostały umieszczone w gniazdach dysponujących stykami pokrytymi cyną). Sprzedawca odmówił wymiany modułów SIMM na wersję ze stykami pokrytymi cyną, dlatego też doszło do sprawy sądowej.
Większość systemów wyposażona jest w gniazda dysponujące stykami pozłacanymi przystosowanymi do 72-końcówkowych modułów SIMM. Z tego też powodu należy instalować tego typu moduły. Badania przeprowadzone przez producentów złączy takich jak firma AMP potwierdzają, że w momencie, gdy dochodzi do kontaktu cyny ze złotem lub innym metalem występuje korozja cierna. W przypadku tego typu korozji tlenek cyny przechodzi do twardszej powierzchni złota, wskutek czego jest bezpośrednim powodem powstania połączenia o wysokiej rezystancji. Niezależnie od grubości powłoki wykonanej ze złota zjawisko to zachodzi przy każdym jego kontakcie z cyną. Wraz z upływem czasu i zależnie od panujących warunków otoczenia korozja cierna może być powodem wysokiej rezystancji występującej w punkcie styku, a tym samym stanowi przyczynę pojawiających się błędów pamięci.
Ze względu na łatwość utleniania cyny możesz pomyśleć, że nie jest ona dobrym przewodnikiem. Jednak po zastosowaniu dużego nacisku uzyskanie pomiędzy dwoma cienkimi powierzchniami cyny, styku elektrycznego jest dość proste. Wynika to stąd, że tlenki bardziej miękkich powierzchni cynowych wiążą się ze sobą, a tym samym zapewniają utrzymanie kontaktu. W większości modułów pamięci styki w momencie instalacji układów są dość mocno do siebie dociśnięte.
W chwili, gdy złoto i cyna wejdą ze sobą w kontakt, jedna z powierzchni jest twarda, co powoduje, że utlenianie się nasila i wskutek nacisku utrudnione jest jego rozproszenie. Zwiększona rezystancja styku ostatecznie jest powodem błędów pamięci.
Co prawda firma AMP zajmująca się produkcją styków opublikowała kilka dokumentów opracowanych przez jej dział badawczy, AMP Contact Physics Research Department, w których omówiono ten problem, ale tylko dwa z nich są godne uwagi. Pierwszy z nich zatytułowano Golden Rules: Guidelines for the Use of Gold Connector Contacts. natomiast drugi The Tin Commandments: Guidelines for the Use of Tin on Connector Contacts. Oba dokumenty można pobrać ze strony internetowej firmy AMP w postaci plików PDF. Zalecenie numer 7 (Commandment Numher Seven) zawarte w dokumencie dotyczącym stosowania cyny głosi, że łączenie styków pokrytych cyną ze stykami pokrytymi złotem nie jest zalecane. W celu uzyskania dodatkowych szczegółów technicznych należy skontaktować się z firmą Intel lub AMP.
Z pewnością najlepszym rozwiązaniem będzie zainstalowanie modułów dysponujących pozłacanymi stykami w gniazdach wyposażonych w takie same styki. W większości systemów stosowane są właśnie tego typu moduły DIMM lub RIMM.
Jeśli stwierdzisz, że zainstalowałeś w komputerze moduły ze stykami pokrytymi różnymi metalami, wtedy rozwiązanie problemu sprowadza się do wymiany odpowiednich układów pamięci na egzemplarze dysponujące stykami zgodnymi ze stykami gniazd. Inne, mniej zalecane rozwiązanie polega na poczekaniu, aż faktycznie problemy zaczną się pojawiać (najczęściej od około sześciu miesięcy do roku), a następnie wyjęciu modułów, przeczyszczeniu styków oraz ponownym ich zainstalowaniu i powtórzeniu całego cyklu. Prawdopodobnie jest to rozwiązanie idealne wtedy, gdy jesteś posiadaczem jednego lub dwóch komputerów, ale nie w sytuacji, gdy zarządzasz kilkuset systemami. Jeśli używany komputer jest pozbawiony funkcji kontroli parzystości lub kodu korekcji błędów ECC (większość sprzedawanych obecnie systemów) i zaczną pojawiać się problemy, wtedy może nie być możliwa ich szybka identyfikacja jako błędów związanych z pamięcią (ogólne błędy ochrony, zawieszenia komputera, uszkodzenie plików i danych itp.).
Z czyszczeniem styków związany jest pewien problem wynikający z tego, że twarde osady tlenków cyny zbierające się na powierzchni złota są trudne do usunięcia, dlatego też często konieczne jest zastosowanie materiałów ściernych takich jak np. gumka lub róż polerski. Na pewno nie wolno wykonywać operacji czyszczenia na sucho, ponieważ może to doprowadzić do powstania ładunków statycznych, które mogą uszkodzić układy pamięci. Z tego też powodu należy użyć środka zwilżającego kontakty, dzięki czemu zostanie zminimalizowane ryzyko uszkodzenia pamięci przez ładunki statyczne powstające wskutek pocierania powierzchni styku gumką lub innym materiałem ściernym.
W celu dalszego uniemożliwienia uszkodzenia pamięci szczególnie w przypadku instalacji modułów SIMM lub DIMM namawiam do zastosowania substancji zwilżającej styki lub środka o nazwie Stabilant 22 produkowanego przez firmę D.W. Electrochemicals.
Niektórzy zarzucają mi zbytnią ostrożność związaną z dobieraniem modułów pamięci do gniazd. Kilka razy byłem zmuszony do zwrotu pamięci lub płyty głównej, ponieważ sprzedawca, który połączył ze sobą oba komponenty nie był świadom, że jest to przyczyną problemu. Zawsze, gdy mówię o tym różnym osobom, słyszę, że posiadają one mnóstwo komputerów PC wyposażonych w niedopasowane odpowiednio moduły pamięci, a pomimo to już od wielu lat funkcjonują one bez zarzutu.
Oczywiście nie jest to zbyt przekonujący argument wobec tego typu praktyk. Wiele osób stosuje zbyt długie magistrale SCSI, które ponadto są niewłaściwie zakończone, ale uważają, że wszystko jest jak trzeba. Kable podłączone do portów szeregowych zgodnie ze specyfikacją nie powinny przekraczać 3 m, a pomimo to spotykam się z takimi kablami i nadal wszystko jest w porządku. Chociaż maksymalna długość taśmy dysków IDE została określona w specyfikacji na 46 cm, to i tak wiele osób nie przestrzega tego limitu i uważa, że używane dyski będą działały prawidłowo. Spotykam się z tanimi zasilaczami, które nie tylko są zbyt głośne, ale posiadają również nieprawidłowo ustawione poziomy pulsujących napięć i przepuszczają do uziemienia napięcie osiągające nawet 69 V. Pomimo to, w dalszym ciągu korzystające z nich systemy wydają się funkcjonować bez zarzutu. Spotkałem się z kilkoma komputerami pozbawionymi odpowiednich radiatorów procesora lub dysponujące radiatorami aktywnymi z zablokowanym wentylatorem, które działały po prostu świetnie. Przypomina mi to wywiad przeprowadzony przez ,lohnny'ego Carsona ze stuletnimi osobami, z których wiele często przyznawało, że gwarancją ich długowieczności było codzienne palenie papierosów i picie sporej ilości alkoholu!
Prawda jest taka, że często jestem zaskoczony niską jakością wykonania niektórych komputerów, które jednak w większości przypadków nadal wydają się poprawnie działać. Sporadyczne zawieszenia komputera lub jego awarie są interpretowane przez użytkownika jako zło konieczne. Dotyczy to wszystkich komputerów, ale oczywiście nie moich. W systemach, którymi się zajmuję, przestrzegam zasad związanych z poprawnym ich użytkowaniem. Tak naprawdę, często stawiam elementom składowym zbyt duże wymagania, ale chociaż wskutek tego wzrasta koszt, to jednak funkcjonują znacznie lepiej.
Innymi słowy, poczynania jednostki nie są w stanie zmienić praw fizyki. Nie zmienią również podejścia producentów, którzy zajmują się serwisem dużej ilości systemów i sprzedają komputery, od których wymaga się jak największej stabilności i jak najdłuższej gwarancji obsługi technicznej. W tym przypadku kwestia doboru modułów ze stykami pokrytymi złotem lub cyną ma duże znaczenie.
Kolejny problem, na który chcę zwrócić uwagę, jest związany z grubością warstwy złota pokrywającego styki. Wiele osób obawia się, że jest ona tak cienka, że zostanie starta po jednym lub dwóch instalacjach pamięci w gnieździe. Na pewno grubość warstwy złota zależy od trwałości, jaką planuje się uzyskać. Ze względu na wysoką cenę złota należy z rozwagą dobierać grubość wykonanej z niego pokrywy, pamiętając o tym, aby zostały spełnione wymagania związane z trwałością.
W celu zwiększenia trwałości, niewielka ilość kobaltu lub niklu dodana do złota zazwyczaj powoduje utwardzenie wykonanej z niego warstwy ochronnej. Tego typu warstwy nazywane są „twardym zlotem" i charakteryzują się niskim współczynnikiem tarcia i znakomitą trwałością. Styki pokryte „twardym złotem" z reguły bez problemów wytrzymują od kilkuset do kilku tysięcy operacji instalacji pamięci. Zastosowanie podwar-stwy wykonanej z metalu znacznie twardszego od złota daje dodatkową bazę pozwalającą zwiększyć trwałość pokrywy wykonanej z „twardego złota". W tym przypadku najbardziej zalecane jest użycie niklu. Skuteczny sposób dodatkowego zwiększenie trwałości pokrycia wykonanego ze złota polega na zastosowaniu specjalnych smarów do styków, takich jak Stabilant 22 produkowany przez firmę D.W. Electrochemicals. Przeważnie użycie smaru pozwala zwiększyć trwałość pozłacanych styków o rząd wielkości. Te i inne substancje chemiczne zostały dokładniej omówione w rozdziale 24., „Diagnostyka, testowanie i konserwacja komputera PC".
Wraz ze wzrostem grubości warstwy „twardego złota" zwiększa się jej trwałość. W tabeli 6.21 zebrano wyniki badań laboratoryjnych przeprowadzonych przez firmę AMP dotyczących ścierania warstwy „twardego złota" do grubości 1,3 mikrona ocieranej o grubą niklową płytkę. Podane wyniki zostały uzyskane dla kuli o średnicy 0,63 5 cm ocieranej na obszarze o długości 1,27 cm w każdym cyklu standardową siłą wynoszącą 100 gramów.
Tabela 6.21. Grubość warstwy złota pokrywającego styki
Grubość warstwy (mikrony) |
Grubość warstwy (mikrocale) |
Ilość cykli do wystąpienia błędu |
0,4 |
15 |
200 |
0,8 |
30 |
1000 |
1,3 |
50 |
2000 |
Jak można zauważyć w powyższej tabeli, trwałość warstwy „twardego złota" o grubości 0,8 mikrona jest w zupełności wystarczająca w przypadku większości typów styków, ponieważ przed starciem pozwala na wykonanie 1000 operacji instalacji i wyjęcia pamięci. Zapoznałem się ze specyfikacjami dotyczącymi modułów DIMM i SIMM opracowanymi przez firmę AMP i dowiedziałem się, że większość gniazd wyposażonych w pozłacane styki posiada pokrywę o grubości 0,000030 mikrona umieszczoną w punkcie styku na warstwie niklu o grubości 0,000050 mikrona. Na podstawie dotychczasowego doświadczenia mogę powiedzieć, że prawie wszystkie styki różnych modułów pamięci pokryte są warstwą o podobnej grubości, dzięki czemu ich trwałość jest jednakowa.
Firma AMP wspomniała również o kilku gniazdach posiadających styki pokryte warstwą złota o grubości 0,001020 mikrona, pod którą umieszczono warstwę niklu o grubości 0,001270 mikrona. Przypuszczam, że tego typu gniazda posłużyły do przeprowadzenia testów modułów SIMM, które w związku z dużą ilością operacji instalacji i wyjmowania układów pamięci wymagały zwiększonej trwałości. Mogły one być również zastosowane w warunkach, w których panowała duża wilgotność lub silne drgania.
Dla porównania, wszystkie testowane przez firmę AMP moduły SIMM i DIMM dysponujące stykami pokrytymi cyną charakteryzowały się minimalną grubością warstwy cyny wynoszącą 0,000030 mikrona w miejscu styku, pod którą znajdowała się warstwa niklu pokrywająca całą powierzchnię styku o minimalnej grubości równej 0,000050 mikrona.
W ramach podsumowania można powiedzieć, że grubość pokrywy spotykanej w aktualnie dostępnych gniazdach i modułach pamięci nie ogranicza ich zastosowania. Poza tym grubość pokrywy nie ma większego związku z kwestią zgodności metali pokrywających styki modułów i gniazd pamięci. Jedyną wadą cieńszej warstwy złota jest jej szybsze ścieranie zachodzące przy większej liczbie instalacji modułów, wskutek którego pozostaje tylko warstwa niklu ułatwiająca występowanie korozji ciernej.
Według mnie kwestia związana ze stosowaniem odpowiedniego metalu z dwóch powodów jest bardziej istotna w przypadku używania modułów DIMM i RIMM. W modułach SIMM każda końcówka dysponuje dwoma stykami (po każdej stronie modułu), dlatego też jeśli jedna z nich będzie wykazywała zbyt dużą rezystancję, wtedy ze względu na wbudowany mechanizm nadmiarowości nie będzie to stanowiło problemu. W przypadku modułów DIMM i RIMM zastosowano znacznie więcej końcówek (168 lub 184, a w module SIMM tylko 72), dlatego też styki nie są powielane. Z tego też powodu prawdopodobieństwo wystąpienia błędów jest dużo wyższe. Poza tym moduły DIMM i RIMM są znacznie szybsze (maksymalna częstotliwość osiąga 800 MHz), natomiast czas dostępu został obniżony do kilku nanosekund. Przy tak dużych szybkościach nawet najmniejsza dodatkowa rezystancja styków może być przyczyną problemów.
A zatem zdecydowanie unikaj mieszania ze sobą modułów wyposażonych w styki pokryte różnymi metalami. Co więcej, w celu uzyskania jak najlepszej stabilności systemów, w których zainstalowano moduły DIMM i RIMM, należy upewnić się, że zarówno gniazda na płycie głównej, jak i moduły pamięci dysponują stykami pozłacanymi. Zadanie to z reguły nie nastręcza większych trudności, ponieważ cyna jest koloru srebrnego, natomiast złoto jest po prostu koloru złotego.
Kontrola parzystości i kod korekcji błędów ECC
Jedną z cech pamięci jest to, że pojawią się w niej błędy. Błędy pamięci można zakwalifikować do dwóch grup — błędów twardych i miękkich.
Najbardziej oczywiste są błędy twarde (hard faUs), które polegają na tym, że po okresie poprawnego działania układu wskutek określonej wady, fizycznego uszkodzenia lub z innego powodu następuje trwałe uszkodzenie pamięci. Usunięcie tego typu błędów zazwyczaj sprowadza się do wymiany określonego komponentu, takiego jak układ pamięci, moduł SIMM lub DIMM. Współczynnik błędów twardych jest znany pod nazwą HER (Hard Error Rate).
Innym bardziej tajemniczym typem błędu są błędy miękkie (soft error). Tego typu błędy są błędami nietrwałymi, które mogą wystąpić tylko raz lub pojawiać się w sposób zupełnie losowy. Błędy miękkie skutecznie są usuwane poprzez ponowne uruchomienie komputera. Współczynnik błędów miękkich określa się jako SER (Soft Error Rate).
Około 20 lat temu firma Intel odkryła istnienie błędów miękkich, co było prawdziwym szokiem dla całej branży. Firma Intel stwierdziła, że dostępne wówczas układy pamięci DRAM o pojemności 16 kB bombardowane cząsteczkami alfa charakteryzują się wyjątkowo dużą ilością błędów miękkich, czasami nazywanych błędami SEU (Single Event Upset). Ponieważ cząsteczki alfa posiadają niski poziom energii, wskutek czego mogą być powstrzymane przez coś tak cienkiego i lekkiego jak kartka papieru, stało się oczywiste, że tego typu cząsteczki wywołujące błędy miękkie pamięci DRAM muszą pochodzić z materiałów półprzewodnikowych. Przeprowadzone testy wykazały śladowe ilości uranu i toru zawarte w plastikowych i ceramicznych materiałach obudów wtedy produkowanych układów. Odkrycie to zmusiło wszystkich wytwórców pamięci do ulepszenia procesu produkcyjnego, w celu uzyskania materiałów pozbawionych zanieczyszczeń.
Obecnie producenci pamięci poradzili sobie z wyeliminowaniem obecności cząsteczek alfa będących powodem błędów miękkich. Wiele osób uwierzyło, że był to dla przedstawicieli branży wystarczający powód, aby zrezygnować z funkcji kontroli parzystości. Przykładowym argumentem uzasadniającym taką decyzję był podsystem pamięci o pojemności 16 MB złożony z modułów wielkości 4 MB, w którym błędy miękkie spowodowane przez cząsteczki alfa pojawiały się tylko raz na 16 lat! Realną konsekwencją takiego przekonania było zaprzestanie przez wielu producentów i sprzedawców komputerów stosowania kontroli parzystości i innych metod zwiększających stabilność, pomimo to, że miękkie błędy w dalszym ciągu stanowiły problem. Najnowsze odkrycia potwierdzają, że cząsteczki alfa stanowią tylko jedną z przyczyn powstawania w pamięci DRAM błędów miękkich.
Okazało się, że obecnie najpoważniejszą przyczyną powstawania błędów miękkich jest promieniowanie kosmiczne. Naukowcy firmy IBM rozpoczęli badania nad potencjalnymi błędami miękkimi wywołanymi przez promieniowanie kosmiczne podobne do tych powstałych wskutek działania cząsteczek alfa. Różnica polega na tym, że promieniowanie kosmiczne tworzą cząsteczki dysponujące bardzo wysokim poziomem energii, które nie mogą zostać zatrzymane przez kartkę papieru lub innego typu bardziej masywną osłonę. Badania zostały przeprowadzone pod przewodnictwem doktora J.F. Zieglera, pracownika centrum badawczego IBM Watson Research Center znajdującego się w Yorktown Heights (Nowy Jork). Uzyskane przez niego wyniki badań odegrały kluczową rolę na drodze do zrozumienia istoty promieniowania kosmicznego oraz jego wpływu na powstawanie błędów miękkich pamięci.
W jednym z przykładów potwierdzających znaczenie odkrycia wpływu promieniowania kosmicznego na powstawanie błędów miękkich zmierzono na wysokości poziomu morza dla określonych próbek pamięci DRAM nie wyprodukowanej przez firmę IBM wartość współczynnika SER. Dla jednego układu uzyskano 5950 FIT (Failures In Time — błędów w danym okresie czasu, który w tym przypadku wyniósł 1 miliard godzin). Pomiar, który odpowiadał wielu milionom godzin pracy urządzenia został dokonany w warunkach roboczych. W typowym systemie odpowiadałoby to występowaniu błędów miękkich co pół roku lub rzadziej, natomiast w stacjach roboczych lub serwerach wyposażonych w dużą ilość pamięci mogłoby to oznaczać pojawianie się błędów częściej niż raz w miesiącu! Po przygotowaniu identycznej konfiguracji pomiarowej i przeniesieniu próbek pamięci DRAM do podziemnego pomieszczenia oddzielonego od powierzchni ziemi około 15 metrami skały, dzięki czemu całkowicie wyeliminowano wpływ promieniowania kosmicznego, okazało się, że nie zanotowano ani jednego błędu miękkiego. Taki wynik nie tylko demonstruje niekorzystne działanie promieniowania kosmicznego, ale również jest potwierdzeniem tego, że zanieczyszczenia zawarte w materiałach obudów, jak i wpływ cząsteczek alfa rzeczywiście nie stanowią już problemu.
Ze względu na mniejszy ładunek wymagany do przełączenia stanu komórki pamięci SRAM, tego typu układy są bardziej podatne od pamięci DRAM na występowanie błędów miękkich wywołanych przez promieniowanie kosmiczne. Na promieniowanie kosmiczne jest również bardziej wrażliwa pamięć o większej gęstości. Wraz ze wzrostem gęstości układu rośnie także prawdopodobieństwo przełączenia stanu bitu przez zabłąkaną cząsteczkę. Niektórzy przewidzieli, że wartość współczynnika SER będzie dwukrotnie wyższa w pamięci DRAM o pojemności 64 MB niż w układach o pojemności 16 MB. W przypadku pamięci DRAM o pojemności 256 MB będzie to już czterokrotnie wyższa wartość.
Niestety, większość firm z branży komputerowej nie potraktowała poważnie wymienionych przyczyn powstawania błędów pamięci. Wyładowania elektrostatyczne, skoki zasilania lub niestabilna praca programów mogą stanowić znacznie prostsze wyjaśnienie losowego i nieciągłego występowania błędów miękkich, zwłaszcza zaraz po pojawieniu się na rynku nowej wersji systemu operacyjnego lub większej aplikacji.
Badania wykazały, że w przypadku systemów wykorzystujących funkcję ECC wartość współczynnika SER jest 30-krotnie wyższa od wartości współczynnika HER. Dla osób w pełni świadomych skutków błędów miękkich wywołanych przez promieniowanie kosmiczne nie jest to żadnym zaskoczeniem. Ilość zarejestrowanych błędów zmienia się w zależności od gęstości i pojemności zainstalowanej pamięci. W wyniku badań stwierdzono też, że błędy miękkie mogą występować raz w miesiącu lub rzadziej, ale także kilka razy w ciągu tygodnia lub nawet częściej!
Chociaż promieniowanie kosmiczne, jak również podobnego typu czynniki są główną przyczyną błędów miękkich, to jednak mogą one powstać na skutek następujących innych okoliczności:
Zakłócenia lub szumy w zasilaniu. Mogą być wywołane przez uszkodzony zasilacz komputera lub gniazdo zasilania.
Nieodpowiedni typ lub szybkość pamięci. Instalowana pamięć musi współpracować z chipsetem i dysponować szybkością obsługiwaną przez system.
Zakłócenia radiowe. Wywołane przez nadajniki radiowe znajdujące się w pobliżu komputera. Mogą wzbudzać sygnały elektryczne w okablowaniu i układach scalonych systemu. Trzeba wiedzieć, że zwiększone użycie bezprzewodowych sieci, klawiatur i myszy może spowodować wzrost ryzyka wystąpienia zakłóceń radiowych.
Wyładowania statyczne. Są powodem chwilowych wartości szczytowych napięcia, które mogą zmodyfikować dane.
Zakłócenia taktowania. W efekcie dane nie są dostarczane we wskazane miejsce w odpowiednim czasie, co jest powodem wystąpienia błędów. Często są wynikiem nieprawidłowej konfiguracji ustawień programu BIOS Setup, zainstalowanie pamięci nie spełniającej systemowych wymagań związanych z szybkością lub przetaktowanie procesora albo innych komponentów komputera.
Większość wymienionych problemów nie grozi trwałym uszkodzeniem pamięci (chociaż nieprawidłowe napięcie lub wyładowania statyczne mogą do tego doprowadzić), ale mogą spowodować chwilowe utrudnienia związane z przetwarzaniem danych.
Jak sobie poradzić z tego typu problemami? Chociaż z pewnością ignorowanie ich nie jest najlepszym pomysłem, to jednak, niestety, obecnie wielu producentów i sprzedawców komputerów tak postępuje. Najbardziej zalecanym podejściem jest zwiększanie odporności systemu na błędy. Można przez to rozumieć stosowanie metod detekcji i w miarę możliwości usuwania błędów pojawiających się w komputerach PC. W nowszych systemach wykorzystuje się trzy podstawowe poziomy związane z odpornością na błędy:
bez kontroli parzystości,
z kontrolą parzystości,
z kodem korekcji błędów ECC.
Komputery pozbawione kontroli parzystości nie mają żadnej odporności na błędy. Jedynym powodem, dla którego są wykorzystywane, jest ich dość niska cena. Wynika ona stąd, że nie ma potrzeby stosowania specjalnej pamięci wyposażonej w kontrolę parzystości lub funkcję ECC. Ze względu na to, że bajt z kontrolą parzystości zawiera nie 8, jak w przypadku pamięci bez parzystości, ale 9 bitów, koszt odpowiedniej pamięci jest wyższy w przybliżeniu o 12,5%. Poza tym sam kontroler pamięci bez kontroli parzystości jest znacznie uproszczony, ponieważ nie wymaga bramek logicznych obliczających parzystość lub sprawdzających bity kontrolne ECC. W przypadku komputerów przenośnych, w których najważniejsze jest jak najmniejsze zużycie energii, dzięki zastosowaniu mniejszej ilości układów pamięci DRAM możliwe jest dodatkowe zmniejszenie mocy pobieranej przez tego typu komponent. 1 wreszcie dzięki węższej magistrali danych podsystemu pamięci można zredukować liczbę stosowanych buforów danych. Statystyczne prawdopodobieństwo wystąpienia błędów pamięci w nowszych biurowych komputerach stacjonarnych zostało w przybliżeniu określone na jeden błąd w ciągu kilku miesięcy. Częstotliwość pojawiania się błędów będzie większa lub mniejsza w zależności od pojemności zainstalowanej pamięci.
Taka ilość błędów może być do przyjęcia w przypadku tańszych komputerów, w których nie są uruchamiane aplikacje o strategicznym znaczeniu. W tym wypadku najprawdopodobniej dodatkowy koszt związany z pamięcią oferującą funkcję parzystości lub ECC jest nie do przyjęcia, dlatego też należy się pogodzić z występowaniem błędów.
Niezależnie od częstotliwości występowania błędów i wiary w to, że się nie pojawią, brak w systemie jakiejkolwiek metody zwiększającej odporność jest po prostu zbyt ryzykowny. Można również pozwolić sobie na jeszcze większe ryzyko i przyjąć, że jeśli wystąpią błędy, wtedy koszt ich skutków będzie i tak niższy od wydatku związanego z zakupem dodatkowych komponentów umożliwiających wykrywanie błędów. Może się jednak zdarzyć, że takie ryzyko doprowadzi do tego, że powstałe błędy będą przyczyną naprawdę poważnych problemów. Błąd pamięci związany z obliczeniami może spowodować, że na czeku zostanie wstawiona nieprawidłowa wartość lub w przypadku serwera może doprowadzić do jego zawieszenia i w efekcie uniemożliwienia pracy współpracujących z nim sieciowych aplikacji klienta i w konsekwencji spadek wydajności. Należy również wspomnieć, że w przypadku systemów wyposażonych w pamięć pozbawioną parzystości lub funkcji ECC, identyfikacja problemu jest utrudniona, co w komputerach korzystających z tych funkcji się nie zdarza. Dzięki tym funkcjom przynajmniej możliwe jest stwierdzenie, czy pamięć jest źródłem problemów, co pozwala na zaoszczędzenie czasu i obniżenie kosztów związanych z usuwaniem problemu.
Kontrola parzystości
Jeden ze standardów opracowanych przez firmę IBM obowiązujących w branży komputerowej dotyczy 9 układów pamięci tworzących jeden bank, z których osiem odpowiada ośmiu bitom tworzącym znak, natomiast ostatni stanowi dodatkowy bit nazywany bitem parzystości {parity bit). Bit parzystości jest wykorzystywany przez kontroler pamięci, który sprawdza poprawność pozostałych ośmiu bitów. Jest to wbudowany mechanizm kontroli integralności każdego bajta w systemie. Jeśli zostanie wykryty błąd, wtedy komputer przerywa wykonywaną operację i wyświetla komunikat informujący o wadliwym działaniu. Jeśli jesteś użytkownikiem graficznego systemu operacyjnego, takiego jak Windows lub OS/2, wtedy zazwyczaj błąd parzystości spowoduje jego zawieszenie. Po ponownym uruchomieniu komputera BIOS powinien wykryć ten błąd i wyświetlić odpowiedni komunikat.
Moduły SIMM i DIMM dostępne są w wersji z bitami parzystości, jak również bez nich. Początkowo w celu zapewnienia dokładności, we wszystkich komputerach PC stosowano pamięć z kontrolą parzystości. Począwszy od roku 1994 na rynku systemów kompatybilnych z IBM PC został zapoczątkowany nowy trend. Większość sprzedawców zaczęła dostarczać komputery pozbawione kontroli parzystości i innych metod umożliwiających wykrycie i usunięcie błędów! W tego typu systemach stosowano tańsze moduły SIMM pozbawione parzystości, które obniżały koszt zainstalowanych pamięci o około 10 - 15%. Użycie pamięci z kontrolą parzystości zwiększa początkowy koszt komputera głównie z powodu zastosowania dodatkowych bitów pamięci. Obecność kontroli parzystości nie spowoduje usunięcia zaistniałych błędów, ale pozwoli je wykryć i poinformować użytkownika o ich wystąpieniu. Z zastosowania kontroli parzystości wynikają dwie korzyści:
Parzystość chroni przed konsekwencjami błędnych obliczeń wykonanych na nieprawidłowych danych.
Parzystość dokładnie zlokalizuje źródło błędów, co może być pomocne przy usuwaniu problemów, a zatem ułatwia serwisowanie komputera.
Komputery PC można w prosty sposób przystosować do współpracy zarówno z pamięcią dysponującą kontrolą parzystości, jak i jej pozbawioną. Koszt związany z wyposażeniem płyty głównej w opcjonalną obsługę parzystości jest praktycznie żaden. Faktyczny koszt wynika z zakupu odpowiednich modułów SIMM lub DIMM. Dzięki temu producenci komputerów mogą zaoferować swoim klientom możliwość wyboru systemu obsługującego parzystość. W przypadku, gdy ktoś stwierdzi, że ze względu na planowane wykorzystanie komputera warto ponieść dodatkowe koszty, wtedy będzie mógł zakupić system wyposażony w funkcję kontroli parzystości.
Niestety, w celu obniżenia kosztów kilku większych producentów zaczęło sprzedawać komputery nie obsługujące parzystości, a ponadto nie informowali oni o tym, że niższa cena oznacza brak zainstalowanej pamięci z kontrolą parzystości. Taki proceder w szerszym stopniu został zapoczątkowany w 1994 i 1995 r. Trwał jeszcze do niedawna, przy czym nadal niewiele osób w pełni zdawało sobie sprawę z wynikających z tego konsekwencji. Po tym jak jeden lub dwóch większych sprzedawców postąpiło w ten sposób, większość innych firm dla zachowania swojej pozycji na rynku była zmuszona do postąpienia identycznie.
Ponieważ nikt nie odważył się poinformować o zrezygnowaniu ze stosowania pamięci z parzystością, pozostało to małą tajemnicą producentów. Na samym początku w dalszym ciągu można było zamówić komputer z pamięcią dysponującą parzystością, nawet pomimo to, że nie figurowała ona w domyślnej konfiguracji. Instalacja pamięci z obsługą parzystości wiązała się z dodatkowym kosztem wyższym o 10 - 15%, ale w zamian przynajmniej otrzymywało się stabilny i godny zaufania system, oczywiście przy założeniu, że wiedziało się o tym, że samemu należy o taką pamięć się upomnieć. W późniejszym okresie w przemyśle komputerowym nastąpił przełom w postaci pojawienia się chipsetu Intel Triton 430FX współpracującego z procesorami Pentium, który byl pierwszym ważniejszym tego typu układem w ogóle nie obsługującym kontroli parzystości! Ponadto w tamtym czasie chipset ten okazał się najpopularniejszym tego typu układem, dlatego też został zastosowany praktycznie w każdej płycie głównej kompatybilnej z procesorem Pentium sprzedanej w 1995 r.
Tym sposobem na następne kilka lat został ustanowiony nowy trend. Oprócz jednego z chipsetów współpracujących z procesorami Pentium, którym był układ 430HX Triton II, wszystkie inne tego typu komponenty nowsze od chipsetu 430FX nie obsługiwały pamięci z parzystością.
Od tego czasu firma Intel i inni producenci chipsetów ponownie wyposażali je w obsługę parzystości i funkcji ECC pamięci (w szczególności dotyczyło to chipsetów przeznaczonych dla droższych systemów). Tańsze wersje chipsetów przeważnie były pozbawione zgodności z funkcją parzystości lub kodu korekcji błędów ECC. Jeśli większa stabilność ma dla Ciebie duże znaczenie, wtedy upewnij się, czy kupowany komputer obsługuje powyższe funkcje. Z rozdziału 4. dowiesz się, które nowsze chipsety obsługują pamięć z kontrolą parzystości i funkcją ECC, a które nie dysponują takimi funkcjami.
Przyjrzyjmy się mechanizmowi działania kontroli parzystości, a następnie dokładniej przeanalizujmy nowszą funkcję będącą jej rozwinięciem i noszącą nazwę ECC. Funkcja ECC (Error Correcting Code) nie tylko wykrywa błędy pamięci, ale również na bieżąco je usuwa.
Działanie mechanizmu kontroli parzystości
Początkowo firma IBM określiła standard związany z kontrolą nieparzystości. Poniższe omówienie powinno pomóc Ci w zrozumieniu, co kryje się pod pojęciem nieparzystości. W momencie, gdy 8 pojedynczych bitów tworzących bajt zapisywanych jest w pamięci, generator-kontroler parzystości stanowiący część procesora lub mający postać specjalnego układu umieszczonego na płycie głównej zlicza bity danych, co polega na dodawaniu jedynek zawartych w bajcie. Jeśli suma jedynek okaże się liczbą parzystą, wtedy generator-kontroler parzystości generuje jedynkę i zapisuje ją w układzie pamięci dysponującym parzystością w postaci dziewiątego bitu (bitu parzystości). Suma wszystkich 9 bitów, włączając w to bit parzystości, daje liczbę nieparzystą. Jeśli początkowa suma 8 bitów danych jest liczbą nieparzystą, wtedy bit parzystości przyjmie wartość 0, a tym samym suma wszystkich 9 bitów nadal będzie liczbą nieparzystą. Ogólna zasada mówi, że wartość bitu parzystości zawsze dobierana jest tak, aby suma wszystkich 9 bitów (8 bitów danych oraz 1 bit parzystości) została zapisana jako liczba nieparzysta. Jeśli w systemie zastosowano by parzystość, wtedy powyższy przykład byłby jednakowy, z tą różnicą, że bit parzystości przyjmowałby taką wartość, aby uzyskana suma była liczbą parzystą. Tak naprawdę, to czy jest wykorzystywana nieparzystość czy parzystość nie ma większego znaczenia. System posłuży się jedną z nich, natomiast dla zainstalowanych układów pamięci będzie to zupełnie niezauważalne. Należy jednak pamiętać, aby 8 bitów danych tworzących bajt było ponumerowanych w postaci 0 12 3 4 5 6 7. Poniższe przykłady powinny dodatkowo pomóc w zrozumieniu zagadnienia:
Numer bitu danych: 01234567 Bit parzystości
Wartość bitu danych: 10 110 0 11 0
W powyższym przykładzie ze względu na to, że ilość wszystkich bitów danych o wartości 1 jest liczbą nieparzystą (5), dla zapewnienia parzystej sumy wszystkich 9 bitów, bit parzystości musi przyjąć wartość 0.
Oto kolejny przykład:
Numer bitu danych: 01234567 Bit parzystości
Wartość bitu danych: 11110 0 11 1
W tym przykładzie ze względu na to, że ilość wszystkich bitów danych o wartości 1 jest liczbą parzystą (6), dla zapewnienia nieparzystej sumy wszystkich 9 bitów, bit parzystości musi przyjąć wartość 1.
W momencie, gdy przez system odczytywana jest zawartość pamięci, następuje sprawdzenie informacji dotyczących parzystości. Jeśli 9-bitowy bajt zawiera parzystą liczbę bitów, wtedy oznacza to, że w bajcie wystąpił błąd. System nie jest w stanie określić, który bit został zmodyfikowany lub czy zmianie uległ pojedynczy bit. Jeśli przykładowo zmodyfikowano 3 bity, wtedy znacznik bajta w dalszym ciągu wskazuje na błąd kontroli parzystości. Jednak w przypadku, gdy zmieniono 2 bity, błędny bajt w ogóle może nie zostać zauważony. Ze względu na to, że jednoczesne wystąpienie błędów w wielu bitach (pojedynczego bajta) zdarza się bardzo rzadko, tego typu mechanizm stanowi sensowną i niedrogą metodę bieżącego określania poprawności danych zawartych w pamięci.
W poniższych przykładach zawarto komunikaty związane z kontrolą parzystości, które pojawiły się w trzech typach starszych już systemów:
IBM PC: PARITY CHECK x
IBM XT: PARITY CHECK x yyyyy (z)
IBM AT i nowszy model XT: PARITY CHECK x yyyyy
gdzie x ma wartość 1 lub 2:
= Wystąpił błąd przy odczycie pamięci płyty głównej.
= Wystąpił błąd przy odczycie pamięci karty rozszerzającej.
W powyższym przykładzie yyyyy odpowiada liczbie heksadecymalnej z zakresu od 00000 do FFFFF i wskazuje na bajt, w którym wystąpił błąd.
(z) przyjmuje wartość (S) lub (E):
(S) = Błąd parzystości jest związany z jednostką centralną.
(E) = Błąd parzystości wystąpił w opcjonalnych gniazdach rozszerzających (expansion chassis).
Gniazda rozszerzające byty opcjonalnie stosowane w oryginalnych komputerach PC i XT produkowanych przez firmę IBM. Pozwały na dodanie dodatkowych gniazd rozszerzających.
Po wykryciu błędu kontroli parzystości układ płyty głównej odpowiedzialny za kontrolę parzystości generuje przerwanie niemaskowalne NMI (NonMaskable Interrupt), które powoduje wstrzymanie operacji wykonywanych przez system i zwrócenie jego uwagi na powstały błąd. Przerwanie NMI wywołuje funkcję zawartą w pamięci układu ROM. W niektórych starszych systemach firmy IBM tego typu funkcja przeprowadzająca kontrolę parzystości wstrzymuje pracę procesora. W takim wypadku następuje zawieszenie systemu i konieczne wtedy jest ponowne jego uruchomienie lub wyłączenie, a następnie włączenie. Niestety, wszystkie nie zapisane dane zostaną utracone.
W większości systemów w momencie wykrycia błędu parzystości praca procesora nie jest przerywana. Zamiast tego użytkownik komputera ma do wyboru możliwość ponownego jego uruchomienia lub kontynuacji dalszej pracy, tak jakby się nic nie stało. Ponadto w tego typu systemach istnieje możliwość wyświetlania komunikatów informujących o błędach parzystości. Chociaż z reguły informacja jest podobna, to jednak w porównaniu z komputerami firmy IBM stosowany jest inny format wyświetlania. Przykładowo, w większości systemów wyposażonych w BIOS firmy Phoenix generowany jest jeden z poniższych komunikatów:
Memory parity interrupt at xxxx:xxxx
Type (S)hut off NMI, Type (R)eboot. other keys to continue
lub
1/0 card parity interrupt at xxxx:xxxx
Type (S)hut off NMI. Type (R)eboot. other keys to continue
Pierwszy z dwóch komunikatów informuje o błędzie parzystości pamięci znajdującej się na płycie głównej (Parity Check 1), natomiast drugi wskazuje na błąd parzystości pamięci umieszczonej na kartach rozszerzających (Parity Check 2). Należy zwrócić uwagę na to, że adres xxxx:xxxx dotyczący błędu pamięci jest podawany w formacie segment:przesunięcie, a niejako zwykły adres liniowy wyświetlany w komunikatach błędów komputerów firmy IBM. Format adresu segmenfprzesunięcie określa również położenie błędu z dokładnością do jednego bajta.
Po pojawieniu się komunikatu błędu można wykonać jedną z następujących czynności:
Nacisnąć klawisz S, który spowoduje wyłączenie kontroli parzystości i przywróci działanie systemu od miejsca, w którym po raz pierwszy dokonano sprawdzenia parzystości.
W celu wymuszenia ponownego uruchomienia komputera można nacisnąć klawisz R, przy czym wszelkie nie zapisane dane zostaną utracone.
Aby przywrócić działanie systemu i pozostawić funkcję kontroli parzystości nadal aktywną, należy nacisnąć dowolny inny klawisz.
Jeśli problem się powtórzy, wtedy prawdopodobnie zostanie wygenerowane kolejne przerwanie związane z kontrolą parzystości. Zazwyczaj zaleca się naciśnięcie klawisza S, co spowoduje wyłączenie kontroli parzystości i pozwoli na zapisanie zmodyfikowanych danych. W tym wypadku w celu uniknięcia możliwego uszkodzenia danych zapisanych na dysku twardym najlepiej zachować je na dyskietce. Należy również unikać nadpisywania poprzednich wersji (nadal poprawnych) dowolnego pliku, ponieważ wskutek błędów pamięci istnieje ryzyko zapisania pliku, który będzie uszkodzony. Ponieważ kontrola parzystości została wyłączona, operacja zapisu danych może być bezpiecznie przeprowadzona. Po jej zakończeniu należy wyłączyć komputer, a następnie ponownie go uruchomić i spróbować zlokalizować błąd przy użyciu dowolnego posiadanego programu testującego pamięć. W niektórych przypadkach błąd może zostać wykryty przez procedurę POST przy kolejnym uruchomieniu systemu, ale zazwyczaj w tym celu konieczne jest wykorzystanie bardziej zaawansowanego programu diagnostycznego, najlepiej działającego w trybie ciągłym.
Komputery wyposażone w BIOS firmy AMI wyświetlają komunikaty błędów parzystości o następującej postaci:
ON BOARD PARITY ERROR ADDR (HEX) = (xxxxx)
lub
OFF BOARD PARITY ERROR ADDR (HEX) = (xxxxx)
Powyższe komunikaty informują o błędzie pamięci, który wystąpił w trakcie wykonywania procedury POST, natomiast jego lokalizacja jest określona przez wyświetlony adres. Pierwszy komunikat mówi, że błąd wystąpił w pamięci zainstalowanej na płycie głównej, natomiast drugi informuje o błędzie, który pojawił się w pamięci umieszczonej na karcie rozszerzającej. BIOS firmy AMI może również wygenerować następujące komunikaty błędów pamięci:
Memory Panty Error at xxxx
lub
1/0 Card Parity Error at xxxx
Powyższe komunikaty informują o błędzie pamięci, który wystąpił pod określonym adresem w czasie normalnej pracy systemu. Pierwszy z nich mówi o błędzie, który pojawił się w pamięci znajdującej się na płycie głównej, natomiast drugi wskazuje na błąd, który dotyczy pamięci umieszczonej na karcie rozszerzeń.
Chociaż wiele systemów pozwala na dalszą pracę po wykryciu błędu parzystości, a nawet umożliwia wyłączenie przeprowadzania dalszej kontroli parzystości, to jednak korzystanie w takiej sytuacji z komputera jest ryzykowne. Możliwość kontynuacji dalszej pracy ma na celu umożliwienie bezpiecznego zapisania zmodyfikowanych danych, zanim komputer zostanie sprawdzony przez program diagnostyczny. Niezależnie od tego należy zachować ostrożność.
Należy zauważyć, że wymienione komunikaty mogą się zmienić w zależności nie tylko od używanej wersji BIOS-u, ale również od typu systemu operacyjnego. Systemy operacyjne trybu chronionego, takie jak większość wersji systemu Windows, potrafią wykrywać tego typu błędy, a następnie przy użyciu własnego programu obsługującego wyświetlać komunikaty, które pod względem wyglądu różnią się od tych generowanych przez BIOS. Komunikat może pojawić się na niebieskim ekranie lub może stanowić pułapkę, ale zazwyczaj oznacza błąd pamięci, w szczególności związany z parzystością. Przykładowo, w momencie wystąpienia takiego błędu system Windows 98 wyświetla komunikat w postaci:
Memory parity error detected. System halted.
(Wykryto błąd parzystości pamięci. System zatrzymany.).
Gdy zostaniesz poinformowany o pojawieniu się błędu parzystości pamięci, pamiętaj o tym, że funkcja kontroli parzystości stwierdza fakt przechowywania przez pamięć uszkodzonych danych. Czy w takiej sytuacji chcesz nadpisać potencjalnie uszkodzonymi danymi plik zawierający prawidłowe dane zachowane poprzednim razem? Z pewnością nie! Upewnij się, że zapisujesz dane w pliku o innej nazwie. Poza tym po wystąpieniu błędu parzystości należy w miarę możliwości zachować dane tylko na dyskietce i unikać zapisu danych na dysku twardym. Istnieje niewielkie zagrożenie, że w przypadku dokonania zapisu uszkodzonych danych zawartych w pamięci na dysku zostanie naruszona jego struktura logiczna.
Po zapisaniu danych należy określić przyczynę wystąpienia błędu parzystości, a następnie dokonać naprawy systemu. Możesz skusić się na wyłączenie dalszego wykonywania kontroli parzystości i kontynuowania pracy komputera, tak jakby nic się nie wydarzyło. Takie postępowanie można przyrównać do wykręcenia kontrolki ciśnienia oleju w samochodzie tylko dlatego, aby wyciekający olej nie zawracał nam głowy święcącym z tego powodu wskaźnikiem!
Parę lat temu, gdy pamięć była znacznie droższa, kilka firm wprowadziło na rynek moduły SIMM wyposażone w fikcyjne układy pamięci z parzystością. Zamiast rzeczywistych dodatkowych układów pamięci wymaganych do przechowywania bitów parzystości, tego typu moduły SIMM dysponujące „logiczną parzystością" lub emulacją parzystości zawierały zintegrowany układ generatora parzystości. Układ ten ignorował wszelkie dane związane z parzystością, które system próbował zapisać w układach pamięci modułu SIMM. Natomiast w momencie, gdy pojawiło się żądanie odczytu danych, układ dbał o to. aby zawsze zwracana była prawidłowa parzystość, dzięki czemu system był przekonany, że wszystko jest w najlepszym porządku, chociaż wcale tak nie było.
Zastosowanie modułów z fikcyjną parzystością wynikało z bardzo wysokich cen pamięci. Ich producent oferował moduły SIMM z „parzystością" i fałszywym układem za cenę wyższą zaledwie o kilkanaście złotych od cen pamięci zwykłej. Niestety, identyfikacja tego typu modułów nie była prosta. Generator fikcyjnej parzystości nie przypomina wyglądem układu pamięci i w porównaniu z innymi układami pamięci znajdującymi się na module SIMM widnieją na nim odmienne oznaczenia. Większość z nich zawierała logo firmy GSM, które wskazuje na oryginalnego producenta układu logicznej parzystości, ale niekoniecznie wytwórcy samego modułu SIMM.
Istnieje jednak skuteczny sposób identyfikacji modułów SIMM wyposażonych w układ fikcyjnej parzystości. Polega on na zastosowaniu urządzenia testującego moduły SIMM takiego jak produkty firm Tanisys (http:',' www.tanisys.com), CST (http://www.simmtester.com) lub Aristo (http://www.memorytest.com). Nie spotkałem się z modułami DIMM lub RIMM zawierającymi fikcyjne bity parzystości lub funkcji ECC. Poza tym obecne ceny pamięci są na tyle niskie, że prawdopodobnie stosowanie takich rozwiązań nie ma sensu.
Kod korekcji błędów
Funkcja ECC (Error Correcting Code) jest następnym krokiem w rozwoju prostego mechanizmu detekcji błędów parzystości. Zamiast wykrywać tylko błędy, funkcja ECC umożliwia naprawienie pojedynczego bitu zawierającego błąd. Oznacza to. że system może w dalszym ciągu kontynuować normalną pracę bez ryzyka uszkodzenia danych. Funkcja kodu korekcji błędów stosowana w większości obecnie dostępnych komputerów PC w przypadku błędów występujących w dwóch bitach potrafi jedynie je wykryć. W wyniku przeprowadzonych badań, w których stwierdzono, że w przybliżeniu 98% błędów pamięci występuje w pojedynczych bitach, aktualnie najczęściej stosowana wersja funkcji ECC opiera się na pomocniczym kontrolerze pamięci wykrywającym i usuwającym tego typu błędy pojawiające się w odczytanym słowie danych (błędy występujące w dwóch bitach mogą być wykryte, ale nie naprawione). Tego typu funkcja ECC określana jest terminem SEC-DED (Single-Bit Error-Correction Double-Bit Error Detectioń) i wymaga na 32 bity w 4-bajtowym systemie dodatkowych 7 bitów kontrolnych, natomiast na 64 bity 8-bajtowego systemu 8 tego typu bitów. Koszty zaimplementowania funkcji ECC w 4-bajtowym (32-bitowym) systemie klasy 486 są oczywiście wyższe niż w przypadku komputerów dysponujących kontrolą parzystości lub jej pozbawionych, ale już w systemach 8-bajtowych (64-bitowych) wyposażonych w procesor Pentium lub Athlon koszt obu funkcji jest porównywalny. Wynika to z takiej samej ilości dodatkowych bitów (8) wymaganych do zastosowania funkcji ECC lub kontroli parzystości. Z tego też powodu w przypadku używania 32-bitowego systemu wyposażonego w chipset obsługujący funkcję ECC można zaopatrzyć się w moduły SIMM (36-bitowe), DIMM (72-bitowe) lub RIMM (18-bitowe) oferujące parzystość, a następnie przełączyć je w tryb obsługi funkcji ECC. Jeśli w systemie, który współpracuje z modułami SIMM, zainstaluje się w każdym banku po dwa 36-bitowe układy SIMM z parzystością (w sumie 72 bity), wtedy funkcja ECC może być obsługiwana na poziomie banków. W przypadku komputera obsługującego moduły DIMM w jednym banku wystarczy zainstalować jeden 72-bi-towy moduł DIMM kompatybilny z funkcją parzystości i ECC, który będzie dysponował dodatkowymi bitami. Moduły RIMM w zależności od chipsetu płyty głównej instalowane są parami lub pojedynczo. Jeśli wymagana jest funkcja parzystości i ECC, wtedy należy użyć modułów I8-bitowych.
Funkcja ECC wymaga, aby w trakcie operacji zapisu pamięci jej kontroler przeprowadzał obliczenia bitów kontrolnych, natomiast przy operacji odczytu porównywał bity kontrolne odczytywane i obliczone, a w razie konieczności poprawiał nieprawidłowe bity. W obecnych czasach, gdy produkowane są tanie i bardzo szybkie układy logiczne VLSI, dodatkowe układy logiczne funkcji ECC zawarte w kontrolerze pamięci nie mają już tak dużego znaczenia. Stosowanie funkcji ECC wpływa na zmniejszenie szybkości zapisu danych do pamięci. Wynika to z konieczności wstrzymania wykonywania operacji i poczekania na obliczenie bitów kontrolnych. W momencie, gdy system oczekuje na poprawione dane, następują operacje odczytu. W przypadku zapisu części słowa, całe słowo musi najpierw zostać odczytane, zmieniony bajt (bajty), ponownie zapisane, a następnie muszą być obliczone nowe bity kontrolne. W efekcie operacje zapisu części słowa zamieniane są na wolniejsze operacje odczytu i modyfikacji. Na szczęście spadek wydajności jest znikomy i wynosi maksymalnie kilka procent, dlatego też uzyskanie dzięki takiej zamianie większej stabilności jest tego warte.
Większość błędów pamięci występuje w pojedynczych bitach, dlatego też mogą one być naprawione przez funkcję ECC. Zastosowanie funkcji ECC jako metody zwiększenia odporności na błędy pozwala uzyskać wysoki poziom stabilności i kontroli. Funkcja kodu korekcji błędów idealnie nadaje się do wykorzystania w serwerach, stacjach roboczych i innych zastosowaniach o strategicznym znaczeniu, w których koszt związany ze skutkiem wystąpienia ewentualnego błędu pamięci przewyższa koszt zakupu odpowiedniej pamięci, który temu zapobiegnie. Ponadto uzyskuje się gwarancję stabilności systemu. Jeśli poprawność danych ma dla Ciebie istotne znaczenie i wykorzystujesz swój komputer do poważnych zastosowań, wtedy pamięć obsługująca funkcję ECC jest tym, czego będziesz potrzebował. Żaden szanujący się administrator nie zbuduje lub nie uruchomi serwera sieciowego, nawet mającego niewielkie znaczenie, bez zainstalowanych pamięci obsługujących funkcję ECC.
Dzięki dostępności komputerów oferujących instalację pamięci obsługującej funkcję ECC, funkcję kontroli parzystości lub żadnej z nich, użytkownik dysponuje możliwością wyboru stopnia odporności na błędy i poziomu ryzyka związanego z uszkodzeniem danych.
Rozszerzanie pamięci komputera
Zainstalowanie w komputerze dodatkowych modułów pamięci należy zaliczyć do najbardziej korzystnych aktualizacji i jednocześnie najmniej kosztownych. Jest to szczególnie widoczne w przypadku zwiększenia pojemności pamięci komputera pracującego pod kontrolą systemu Windows 9x/Me, Windows NT/2000/XP oraz OS/2. W niektórych sytuacjach podwojenie pojemności pamięci w praktyce oznacza podwojenie wydajności komputera.
W następnych podrozdziałach zostaną omówione zagadnienia związane z dodawaniem pamięci, doborem odpowiednich układów, instalacją i testowaniem modułów.
Możliwe strategie rozszerzania pamięci
Zwiększanie pojemności pamięci może okazać się niezbyt kosztowną operacją. W czasie pisania tego rozdziału cena pamięci spadła do około 40 groszy za megabajt lub nawet mniej. Niewielka ilość dodatkowej pamięci może znacznie zwiększyć wydajność Twojego komputera.
W jaki sposób dodajesz kolejne moduły pamięci? Lista możliwości ogranicza się do dwóch opcji wymienionych w kolejności łatwości wykonania operacji i jej kosztu:
zainstalowanie modułów pamięci w wolnych gniazdach płyty głównej,
wymiana używanych układów pamięci znajdujących się na płycie na moduły o większej pojemności.
Jeśli zamierzasz dokonać aktualizacji komputera lub wymienić płytę główną na nowszą, zazwyczaj nie ma wtedy możliwości wykorzystania pamięci dotychczas używanej. Warto poświęcić trochę więcej czasu na dobranie jak najlepszych modułów pamięci, które będą optymalnie dopasowane do nowej płyty głównej.
Należy również odpowiednio dostosować wymagania związane z mocą obliczeniową i systemem operacyjnym (np. OS/2. Windows 9x, Windows NT, Windows 2000 lub Linux) do kwoty, jaką jesteś w stanie przeznaczyć na aktualizację komputera.
Przed dodaniem modułów pamięci (lub wymianą uszkodzonych układów RAM) należy sprawdzić, jaki typ układów pamięci jest obsługiwany przez system. Tego typu informacje powinny być dostępne w dokumentacji systemowej.
Jeśli jesteś zmuszony do wymiany uszkodzonego modułu pamięci i nie masz dostępu do dokumentacji, wtedy w celu określenia obsługiwanego przez system typu pamięci należy przyjrzeć się innym już zainstalowanym układom. Na każdym module widnieją oznaczenia informujące o jego pojemności i szybkości. Oba parametry zostały szczegółowo omówione we wcześniejszej części rozdziału.
Jeśli nie dysponujesz dokumentacją systemową, a ponadto producent nie oferuje odpowiedniego wsparcia technicznego, powinieneś zdjąć obudowę komputera i dokładnie odpisać oznaczenia widoczne na zainstalowanych modułach pamięci. Następnie należy skontaktować się z lokalnym sklepem komputerowym lub sprzedawcą pamięci takim jak firma Kingston, Micron (Crucial), PNY lub innym i poprosić o pomoc w zidentyfikowaniu typu pamięci RAM obsługiwanej przez używany komputer. Zainstalowanie w systemie niewłaściwego typu modułu pamięci może doprowadzić do sytuacji równoznacznej tej, w której w pracującym komputerze znajduje się uszkodzony układ pamięci.
Przed powiększeniem w starszym komputerze klasy Pentium (P5) pamięci ponad 64 MB, należy się upewnić, że chipset buforuje taką ilość pamięci RAM. Przekroczenie pojemności pamięci RAM ob-sługiwanej przez pamięć podręczną L2 spowoduje zamiast wzrostu, spadek wydajności systemu. W celu uzyskania bardziej szczegółowego omówienia tego typu ograniczeń należy zapoznać się z treścią punktu „Pamięć podręczna SRAM" znajdującego się we wcześniejszej części rozdziału oraz z omówieniem chipsetów znajdującym się w rozdziale 4. Ograniczenie związane z buforowaniem pamięci RAM dotyczyło głównie chipsetów współpracujących z procesorami Pentium. W przypadku takich procesorów jak Athlon, Duron, Pentium II i nowszych modeli firmy Intel, kontroler pamięci cache L2 jest z nimi zintegrowany (a nie z chipsetem) i jest w stanie buforować pamięć RAM o maksymalnej pojemności 1 GB lub w najnowszych układach nawet 4 GB. Biorąc pod uwagę wyższy koszt megabajta starszych modułów pamięci SIMM w porównaniu z pamięcią SDRAM i DDR SDRAM, można dojść do wniosku, że wymiana płyty głównej, procesora i pamięci będzie bardziej opłacalna niż dodanie modułów do starszego komputera wyposażonego w moduły SIMM.
Wybór i instalacja pamięci
Jeśli aktualizacja płyty głównej sprowadza się do zwiększenia pojemności pamięci, wtedy w celu określenia typu kupowanych układów lub modułów pamięci należy dostosować się do zaleceń producenta. Jak już wcześniej się dowiedziałeś, pamięci dostępne są w różnych formatach takich jak SIMM, DIMM lub RIMM.
Niezależnie od typu używanych modułów pamięci wszystkie układy są instalowane w bankach. Bank pamięci stanowi zbiór układów pamięci tworzących jednolity blok pamięci. W ciągu jednej operacji procesor czyta zawartość każdego bloku. Aby bank pamięci był w pełni funkcjonalny, konieczne jest jego całkowite wypełnienie układami pamięci. Banki pamięci bardziej szczegółowo zostały omówione w punkcie „Banki pamięci" znajdującym się we wcześniejszej części rozdziału.
Zainstalowanie dodatkowych modułów w gniazdach płyty głównej jest prostą metodą powiększenia pojemności pamięci systemu. W większości komputerów dostępny jest przynajmniej jeden wolny bank pamięci, który, w celu zwiększenia szybkości komputera, umożliwia w przyszłości dołączenie kolejnego modułu.
Jeśli komputer wymaga zastosowania dwukanałowej pamięci (jest tak w przypadku systemów o dużej wydajności), konieczne będzie użycie dwóch identycznych modułów (o jednakowej pojemności, szybkości i typie).
Zakup pamięci
Przed zaopatrzeniem się w pamięć warto rozważyć kilka związanych z tym spraw. Niektóre z nich dotyczą produkcji i dystrybucji pamięci, natomiast pozostałe zależne są od typu kupowanego układu. W tej części rozdziału zostaną omówione niektóre z kryteriów, które należy wziąć pod uwagę przed dokonaniem zakupu.
Dostawcy
Wiele firm zajmuje się sprzedażą pamięci, ale tylko kilka z nich również je produkuje. Ponadto, tylko niektóre firmy wytwarzają układy pamięci, natomiast znacznie więcej produkuje moduły pamięci takie jak SIMM, DIMM i RIMM. Większość firm rzeczywiście zajmujących się produkcją układów pamięci RAM wytwarza również zawierające je moduły. Z kolei inne firmy mają w swojej ofercie tylko moduły. Tego typu wytwórcy zaopatrują się u kilku producentów układów pamięci, a następnie tworzą moduły, które są na nich oparte. I wreszcie istnieją też firmy, które nie wytwarzają ani układów, ani modułów pamięci. Zamiast tego kupują moduły wyprodukowane przez innych i sprzedają je pod własną nazwą.
Moduły pamięci wytwarzane przez producentów układów będę nazywał modułami z pierwszej grupy, natomiast w stosunku do modułów oferowanych przez firmy nie produkujące układów pamięci użyję określenia modułów z drugiej grupy. Modułami z trzeciej grupy będę określał układy pamięci, które po prostu zostały kupione od przedstawicieli pierwszych dwóch grup, a następnie sprzedane pod inną nazwą. Osobiście zawsze wolę zaopatrywać się w moduły z pierwszej i drugiej grupy, ponieważ dysponują lepszym opisem. Zasadniczo posiadają lepszy „rodowód", a poza tym zazwyczaj gwarantują wyższąjakość. Nie trzeba chyba wspominać, że zaopatrzenie się w pamięć bezpośrednio w firmie z pierwszej lub drugiej grupy eliminuje jednego lub kilku pośredników uczestniczących w jej dystrybucji.
Do firm z pierwszej grupy (producenci wytwarzający zarówno układy, jak i moduły pamięci) należy zaliczyć Micron (http://www.crucial.com), Infineon (wcześniej Siemens), Samsung, Mitsubishi, Toshiba, NEC i inne. Do firm z drugiej grupy, zajmujących się wyłącznie produkcją modułów pamięci, zaliczają się Kingston, Viking, PNY, Simple Tech, Smart, Mushkin i OCZ Technologies.
W przypadku przedstawicieli trzeciej grupy moduły pamięci kupowane są nie od ich producenta, ale od pośrednika lub sprzedawcy. Chociaż osobiście tego typu moduły określam mianem pamięci z trzeciej grupy, to jednak niektórzy stosują zwrot trzecia kategoria (major on third), który funkcjonuje w brytyjskim slangu jako określenie modułów oferowanych przez producentów zaliczających się do trzeciej grupy (których identyfikacja może być niemożliwa), nawet pomimo to, że stosowane są w nich układy pamięci uznanych marek. Określenie major on third wywodzi się stąd, że określony moduł pamięci składa się z układów dostarczonych przez większego (major) producenta pamięci, które następnie są montowane na modułach SIMM/DIMM przez firmy z trzeciej grupy (on third party). Określenie to nie jest zbyt często używane w Stanach Zjednoczonych.
Chociaż większość dużych producentów nie zajmuje się sprzedażą indywidualnym klientom niewielkich ilości pamięci, to jednak niektórzy z nich mają sklepy fabryczne, w których tego typu odbiorcy mogą nabyć nawet jeden moduł. Dwóch z największych na świecie producentów pamięci — Samsung i Micron — posiada własne sklepy fabryczne, w których można się zaopatrywać. Ze względu na to, że zakup jest dokonywany bezpośrednio u producenta, często jest tak, że w porównaniu z ofertą dostawców pamięci z drugiej i trzeciej grupy, ceny są bardzo atrakcyjne. Internetowy sklep fabryczny firmy Micron znajduje się pod adresem http://www.crucial.com.
Moduły SIMM
Przed podjęciem decyzji o zakupie modułów SIMM należy rozpatrzyć następujące podstawowe kwestie:
Czy wykorzystasz możliwości wersji FPM (fastpage mode) lub EDO (extended data out)l
Czy zamierzasz korzystać z funkcji ECC?
Jak szybkiej pamięci potrzebujesz?
W większości systemów klasy Pentium wyprodukowanych po roku 1995 stosowano moduły SIMM w wersji EDO pozbawione funkcji ECC i cechujące się czasem dostępu wynoszącym 60 ns. Jeśli jesteś posiadaczem jeszcze starszego komputera, wtedy prawdopodobnie będziesz potrzebował zwykłych pamięci FPM. Chociaż w wielu systemach pamięci FPM i EDO są wzajemnie wymienialne, to jednak w niektórych starszych komputerach nie jest obsługiwana pamięć EDO. Jeśli w Twoim komputerze przewidziano możliwość zastosowania funkcji ECC zwiększającej stabilność, wtedy raczej warto kupić pamięć zgodną z tą funkcją. W przeciwnym razie zazwyczaj używane są standardowe pamięci pozbawione kodu korekcji błędów. Istnieje możliwość łączenia ze sobą modułów pamięci obu typów, ale w takim wypadku system domyślnie wyłączy funkcję ECC.
Niestety, według obecnie obowiązujących standardów moduły pamięci SIMM w wersji FPM i EDO są już przestarzałe, dlatego też są znacznie droższe od nowszych, lepszych i szybszych układów. Ze względu na koszt zwiększanie pojemności pamięci w starszych systemach nie jest wskazane.
Zamiast kupować nowe moduły pamięci SIMM przeznaczone dla starszych komputerów, lepiej zaglądnąć do serwisów komputerowych lub poszukać osób, które mogą dysponować sporą ilością starych komponentów.
Moduły DIMM
Przed podjęciem decyzji o zakupie modułów DIMM należy rozpatrzyć następujące podstawowe kwestie:
Czy wykorzystasz możliwości wersji SDR lub DDR?
Czy zamierzasz korzystać z funkcji ECC?
Czy będziesz korzystał z możliwości buforowanej wersji modułu DIMM?
Jak szybkiej pamięci potrzebujesz?
Czy wykorzystasz określone opóźnienia sygnału strobującego kolumny adresu?
Aktualnie moduły DIMM dostępne są w wersji SDR (Single Data Rate) lub DDR (Double Data Rate). W nowszych systemach stosuje się drugą wersję. Z końcem 2003 r. pojawiły się pierwsze moduły DDR2 i oparte na nich komputery. Obie wersje modułów DIMM nie są wzajemnie wymienialne, ponieważ posługują się zupełnie innymi sygnałami i dodatkowo w celu uniemożliwienia nieprawidłowej instalacji dysponują inaczej umieszczonymi wycięciami. W systemach takich jak serwery, od których wymaga się dużej stabilności, powinno się stosować pamięci oferujące funkcję ECC, chociaż w większości komputerów spotyka się tańsze moduły jej pozbawione. Chociaż w większości systemów instalowane są standardowe moduły DIMM pozbawione bufora, to jednak w przypadku płyt głównych przeznaczonych dla serwerów plików i stacji roboczych obsługujących pamięć o bardzo dużej pojemności może być konieczne zastosowanie rejestrowych modułów DIMM. Tego typu moduły zawierają własne rejestry pamięci, umożliwiające przechowywanie większej ilości danych niż w przypadku modułów standardowych. Moduły DIMM dostępne są w kilku wersjach oferujących różne szybkości. Należy się kierować zasadą, która mówi, aby zawsze zamieniać układ wolniejszy na szybszy, a nie odwrotnie. Przykładowo, jeśli w systemie wymagana jest pamięć PC2100 DDR DIMM, można zainstalować moduł PC2700 DDR DIMM, ale już nie wolniejszy układ PC1600.
Kolejna kwestia związana z szybkością pamięci dotyczy opóźnienia sygnału strobującego kolumny adresu. Czasami parametr ten jest wyrażany w postaci skrótu CAS (Column Address Strobę) lub CL (Column Latency) i określony jest liczbą cykli, przy czym im mniej cykli, tym większa szybkość. Mniejsza wartość opóźnienia CAS powoduje odjęcie cyklu wymaganego przy operacji odczytu wykonywanej w trybie seryjnym, co w znikomym stopni zwiększa wydajność pamięci. Moduły SDR DIMM dostępne są w wersji CL3 i CL2. przy czym ta druga jest szybsza. Moduły DDR DIMM dostępne są w wersji CL2.5 i CL2, przy czym w tym wypadku wersja CL2 jest szybsza i lepsza. Chociaż istnieje możliwość mieszania ze sobą modułów DIMM oferujących różne wartości opóźnienia CAS, to jednak wtedy zazwyczaj system domyślnie dostosowuje taktowanie do mniejszej szybkości z uzyskanego najniższego wspólnego mianownika.
Moduły RIMM
Przed podjęciem decyzji o zakupie modułów RIMM należy rozpatrzyć następujące podstawowe kwestie:
Czy zamierzasz stosować wersję 184-końcówkową (16/18-bitową) czy 232-końcówkową (32/36-bitową)?
Czy zamierzasz korzystać z funkcji ECC?
Jak szybkiej pamięci potrzebujesz?
Moduły RIMM dostępne są w wersji 184- i 232-końcówkowej. Pomimo to, że pod względem wymiarów wydają się być jednakowe, to jednak nie są wzajemnie wymienialne. Różnica istnieje w rozmieszczeniu wycięć uniemożliwiających nieprawidłową instalację. W przypadku stosowania systemów, od których wymaga się dużej stabilności, może okazać się konieczne zainstalowanie modułów RIMM obsługujących funkcję ECC i wyposażonych w dodatkowe bity. Podobnie jak w przypadku innych typów modułów możliwe jest łączenie ze sobą układów zgodnych i niezgodnych z funkcją ECC, ale wtedy system jej nie wykorzysta.
Zastępowanie modułów odpowiednikami o większej pojemności
Jeśli wszystkie gniazda pamięci na płycie głównej sąjuż zajęte, wtedy najlepszym rozwiązaniem jest wyjęcie modułów z jednego banku i wstawienie w ich miejsce układów o większej pojemności. Przykładowo, jeśli dysponujesz płytą główną wyposażoną w dwa gniazda modułów DIMM (każdy moduł stanowi jeden bank w przypadku procesora zawierającego 64-bitową magistralą danych), wtedy możesz wyjąć jeden z nich i w jego miejsce zainstalować odpowiednik o większej pojemności. Na przykład, gdy posiadasz dwa moduły o pojemności 64 MB, co w sumie daje 128 MB, wtedy możesz wyjąć jeden z nich i zastąpić go układem o pojemności 128 MB. W tym wypadku w efekcie uzyskasz pamięć RAM o pojemności 192 MB.
Jeśli nawet określony moduł o większej pojemności dysponuje ilością końcówek umożliwiającą instalację na płycie głównej, to jednak nie jest to od razu równoznaczne z tym, że tego typu pamięć będzie obsługiwana. To, jakiej pojemności pamięć może być zastosowaną zależy od maksymalnych możliwości oferowanych przez chipset i BIOS używanego komputera. Przed dokonaniem zakupu nowego modułu pamięci RAM, w celu określenia pojemności obsługiwanych modułów należy zajrzeć do dokumentacji systemu lub płyty głównej. Po podjęciu decyzji o instalacji dodatkowej pamięci należy również upewnić się, czy komputer dysponuje najnowszą wersją BIOS-u.
Instalacja pamięci
W podpunkcie omówiono instalację pamięci, a dokładniej mówiąc, nowych modułów SIMM i DIMM. Wspomniano również o problemach, z którymi najczęściej można się spotkać oraz sposobach pozwalających na ich uniknięcie. Zawarto też informacje dotyczące konfiguracji systemu, do którego dodano nową pamięć.
W trakcie instalacji lub wyjmowania modułów pamięci najprawdopodobniej napotkasz na następujące problemy:
wyładowania elektrostatyczne,
nieprawidłowo zainstalowane moduły w gniazdach,
niepoprawna konfiguracja ustawień programu BIOS Setup związanych z pamięcią.
W celu uniknięcia wyładowań elektrostatycznych pojawiających się w trakcie instalacji wrażliwych na nie układów lub kart pamięci nie należy mieć na sobie odzieży syntetycznej ani butów na skórzanej podeszwie, ponieważ są one powodem powstawania ładunków statycznych. Przed rozpoczęciem instalacji poprzez dotknięcie obudowy komputera należy usunąć z siebie wszelkie ładunki. Lepszym rozwiązaniem jest założenie na nadgarstek dobrej jakości paska uziemiającego. Można go kupić w dowolnym sklepie z częściami elektronicznymi. Pasek uziemiający składa się z przewodzącej obrączki, która na drugim końcu uziemiona jest 1-me-gaomowym rezystorem, który za pomocą przewodu połączony jest z obudową komputera. Należy pamiętać o wcześniejszym wyłączeniu komputera.
Warto zaopatrzyć się w prawidłowo wykonany wysokiej jakości pasek uziemiający, a nie robić go samemu. Tego typu produkty dostępne w sprzedaży dysponują 1-megaomowym rezystorem, który chroni przed przypadkowym dotknięciem punktu, do którego przyłożono napięcie. Rezystor gwarantuje, że sami nie staniemy się przewodem o niższej oporności, wskutek czego nie ulegniemy porażeniu prądem. Niewłaściwie wykonany pasek może spowodować przepływ prądu przez nas do ziemi, co może okazać się tragiczne w skutkach.
Każdy układ lub moduł pamięci musi być zainstalowany w określonej pozycji. Specjalne wycięcia i wgłębienia uniemożliwiają nieprawidłową instalację modułu w gnieździe. Dopóki będziesz uważny i nie będziesz próbował za wszelką cenę zainstalować modułu w określonym położeniu, dotąd określenie prawidłowej orientacji nie powinno stanowić większego problemu. W trakcie instalacji modułu pamięci należy upewnić się, że jego wycięcia zostały dopasowane do wgłębień znajdujących się w gnieździe.
Mam nadzieję, że instalacja pamięci się powiedzie, ale przed jej rozpoczęciem należy sprawdzić, czy został wyłączony komputer! Aby mieć całkowitą pewność, należy wyjąć kabel zasilający komputera z gniazdka. Jeśli spróbowałbyś dokonać instalacji pamięci w momencie, gdy system byłby włączony (nawet w trybie uśpienia), wtedy prawdopodobnie doszło by do spalenia nie tylko modułu, ale również całej płyty głównej. Większość nowszych komputerów wykorzystuje energooszczędny stan czuwania, dlatego też nawet po wyłączeniu nadal częściowo są zasilane. Jedyny sposób uzyskania całkowitej pewności, że tego typu system nie jest zasilany, polega na wyjęciu wtyczki z gniazdka.
Wyjmowanie modułów SIMM, DIMM lub RIMM polega na zwolnieniu przytrzymujących je zatrzasków, a następnie wyciągnięciu ich z gniazd. Instalacja wygląda dokładnie odwrotnie.
Po zainstalowaniu pamięci i ponownym uruchomieniu komputera można otworzyć program BIOS Setup i zapisać jego konfigurację uwzględniającą powiększoną pojemność pamięci. Większość nowszych systemów automatycznie wykrywa zainstalowaną pamięć i dokonuje ponownej konfiguracji ustawień programu BIOS Setup. W tego typu komputerach nie trzeba również ustawiać żadnych zworek lub przełączników znajdujących się na płycie głównej wymaganych do skonfigurowania dodanych modułów pamięci.
Po skonfigurowaniu komputera, tak aby uwzględniał nowo zainstalowaną pamięć, można w celu sprawdzenia czy dodana pamięć działa prawidłowo, uruchomić odpowiedni program diagnostyczny. Niektóre z nich są uruchamiane automatycznie. W większości systemów dostępne są przynajmniej dwa. a nawet trzy narzędzia testujące pamięć. Gwoli ścisłości należy wspomnieć, że zaliczają się do nich:
♦ procedura testująca POST (Power On SelfTest),
♦ zaawansowane aplikacje diagnostyczne uruchamiane z dysku. Procedura POST jest uruchamiana po każdym włączeniu komputera.
Wiele dodatkowych programów diagnostycznych oferowanych jest przez firmy zajmujące się tworzeniem narzędzi systemowych. W celu uzyskania większej ilości informacji na temat aplikacji testujących należy zajrzeć do rozdziału 24.
Instalowanie modułów SIMM
Sposób instalacji modułu SIMM określony jest przez wycięcie umieszczone tylko po jego jednej stronie (rysunek 6.14). Gniazdo ma wypukłość, względem której należy dopasować położenie wycięcia znajdującego się po jednej stronie modułu. Dzięki wypukłości odwrotna instalacja modułu SIMM jest niemożliwa. Aby to zrobić, konieczne by było złamanie złącza lub modułu. Na rysunku 6.15 dokładnie pokazano wycięcie i zatrzask mocujący.
Rysunsk 6.14.
Wycięcie modułu SIMM jest widoczne po jego lewej stronie. W celu zainstalowania modułu SIMM należy umieścić go pod kątem 45 stopni, a następnie wyprostować do pozycji pionowej, aż zatrzaski mocujące znajdą się we właściwej pozycji
Rysunek 6.15.
Rysunek przedstawia moduł SIMM umieszczony w gnieździe. Wycięcie znajduję się w odpowiednim miejscu, zatrzask mocujący został zamknięty, natomiast otwór w module SIMM został dopasowany do bloczka umieszczonego w gnieździe
Instalowanie modułów DIMM i RIMM
W podobny sposób moduły DIMM i RIMM wyposażone są w odpowiednie wycięcia umieszczone przy krawędzi złącza i przesunięte w stosunku do ich środka, które pozwalają na instalację pamięci tylko w jednym położeniu (rysunek 6.16).
Rysunek 6.16.
Klucze modułu DIMM dopasowane są do wypukłości w gnieździe. Klucze modułów DDR DIMM i RIMM są do siebie podobne, ale nie jednakowe
Po całkowitym umieszczeniu modułu DIMM lub RIMM w gnieździe znajdujące się po jednej stronie wycięcie jest blokowane przez dźwignię zwalniającą. Niektóre gniazda DIMM są wyposażone w dźwignię po obu stronach. Nie należy instalować modułu w gnieździe ze zbyt dużą siłą. Jeśli moduł nie daje się z łatwością umieścić w gnieździe, a następnie dopasować do zatrzasków, wtedy może to oznaczać, że został wstawiony w nieodpowiednim kierunku lub krzywo. Stosowanie zbyt dużej siły może spowodować złamanie modułu lub gniazda. Jeśli dojdzie do złamania zatrzasków mocujących gniazda, wtedy moduł pamięci nie będzie utrzymywany na swoim miejscu i prawdopodobnie zaczną pojawiać się losowe błędy pamięci wynikające z braku trwałego kontaktu styków w gnieździe.
Instalowanie modułów RIMM
Chociaż instalacja modułów RIMM odbywa się w taki sam sposób jak w przypadku układów DIMM, to jednak wykorzystywane są inne gniazda. Umieszczone po obu stronach gniazda dźwignie zwalniające są do siebie podobne, a ponadto tak jak gniazda DIMM pozwalają na instalowanie modułów pod kątem 90 stopni. Wycięcia umieszczone na modułach RIMM uniemożliwiają nieprawidłową instalację i ułatwiają montaż modułów w gnieździe.
W przypadku pamięci RIMM należy również wypełnić puste gniazda przy użyciu modułów zachowujących ciągłość. W celu poznania szczegółów związanych z instalacją tego typu modułu należy zapoznać się z rysunkiem 6.11.
Rozwiązywanie problemów związanych z pamięcią
Problemy związane z pamięcią mogą okazać się trudne do wykrycia. Jedno jest pewne, a mianowicie to, że pamięć komputera ze względu na jej wirtualny charakter dla wielu osób w dalszym ciągu stanowi trudną do zrozumienia tajemnicę. Kolejna trudność związana z błędami pamięci wynika stąd, że mają one dość przypadkowy przebieg, dlatego też często sprawiają wrażenie problemów dotyczących innych komponentów systemu, a nawet oprogramowania. W tym podrozdziale zostaną przedstawione podstawowe czynności diagnostyczne, które można wykonać w przypadku podejrzeń, że zaistniały problem jest związany z pamięcią.
Przed rozpoczęciem usuwania problemów dotyczących pamięci należy zaopatrzyć się w jeden z przeznaczonych do tego celu programów diagnostycznych. Prawdopodobnie nawet nie wiesz, że już posiadasz kilka takich aplikacji. W BlOS-ie każdej płyty głównej znajduje się procedura testująca POST uruchamiana każdorazowo po włączeniu komputera. W większości przypadków wraz z zakupem systemu otrzymasz na dyskietce specjalne narzędzie diagnostyczne służące do testowania pamięci. W sprzedaży dostępnych jest wiele programów diagnostycznych i prawie wszystkie dysponują możliwością wykonania testu pamięci.
Po uruchomieniu procedury POST pamięć nie tylko jest testowana, ale również zostaje określona jej pojemność. Uzyskana wartość jest porównywana z pojemnością, która została określona przy ostatnim uruchomieniu programu BIOS Setup. Jeśli obie wartości się różnią, wtedy generowany jest komunikat błędu. W następnej operacji procedura POST zapisuje określony wzór danych do wszystkich komórek pamięci systemowej, a następnie w celu sprawdzenia poprawności pamięci odczytuje go. Po wykryciu chociażby jednego błędu jest generowany dźwięk. Komunikaty dźwiękowe (piski) pojawiają się w momencie wystąpienia błędów krytycznych, które wystąpiły w segmentach pamięci wymaganych do poprawnego funkcjonowania systemu. Jeśli natomiast system uzyska dostęp do pamięci wystarczającej do inicjalizacji karty graficznej, wtedy zamiast dźwięków pojawią się tekstowe komunikaty błędów.
Jeśli procedura POST zostanie zakończona i nie pojawią się żadne komunikaty błędów pamięci, wtedy może to oznaczać, że problem nie jest związany z fizycznymi układami pamięci lub że procedura POST nie była w stanie go wykryć. Losowo występujące błędy pamięci często nie są wykrywane w trakcie wykonywania procedury POST. Poza tym kłopotliwe mogą być również inne mniej widoczne uszkodzenia sprzętu. Procedura POST została zoptymalizowana pod kątem szybkości, dlatego też dokładność związana z testowaniem pozostawia wiele do życzenia. Z tego też powodu często konieczna jest inicjalizacja komputera przy użyciu dyskietki startowej systemu DOS lub dyskietki diagnostycznej zawierającej program testujący z prawdziwego zdarzenia umożliwiający przeprowadzenie bardziej szczegółowego sprawdzenia pamięci. Tego typu testy mogą być uruchomione w trybie ciągłym i w miarę potrzeb związanych z identyfikacją wyjątkowo trudno uchwytnego defektu pozostawione w tym stanie wiele dni.
Nawet tak zaawansowane programy diagnostyczne wykonują testy oparte na wyniku jednej operacji. Oznacza to, że do komórki pamięci zapisywany jest tylko określony wzór danych, a następnie odczytywany. Tego typu test nie potrafi określić stopnia uszkodzenia pamięci, a jedynie to, czy działa poprawnie. W celu uzyskania możliwości przeprowadzenia testów najwyższej jakości, należy zaopatrzyć się w specjalnie przeznaczone do tego urządzenie testujące pamięć zazwyczaj nazywane testerem modułów SIMM/DIMM/RJMM. Tego typu urządzenia w celu uzyskania całkowitej pewności, czy sprawdzany moduł jest sprawny czy nie, umożliwiają umieszczenie w nich modułu i przetestowania go przy różnych szybkościach, napięciach i taktowaniu. Dostępne są różne wersje testerów, które obsługują wszystkie typy pamięci począwszy od starszych modułów SIMM, a skończywszy na najnowszych układach DDR DIMM lub RIMM. Przykładowo, dysponuję wadliwymi modułami, które działają tylko w niektórych komputerach (wolniejszych). Wspominając o tym, chcę przez to powiedzieć, że taki sam program testujący pamięć w jednym komputerze stwierdza, że moduł jest sprawny, natomiast w innym coś zupełnie przeciwnego. W przypadku testera modułów zawsze uzyskuje się odpowiedź, czy pamięć jest uszkodzona czy nie i to z dokładnością do pojedynczego bitu. Poza tym uzyskuje się informację na temat rzeczywistej szybkości modułu, a nie tylko odczytuje wartość widniejącą na oznaczeniu. Do firm mających w swojej ofercie urządzenia testujące należy zaliczyć Tanisys (http://www.tanisys.com), CST (http://www.simmtester.com) oraz Aristo (http://www.memorytest.com). Co prawda są to drogie urządzenia, ale dla profesjonalnych serwisów zajmujących się naprawą komputerów PC posiadanie testera modułów SIMM/ DIMM powinno być sprawą oczywistą.
W trakcie działania systemu operacyjnego w dalszym ciągu mogą pojawiać się błędy pamięci, które zazwyczaj objawiają się w postaci wyświetlanych komunikatów. Do najczęstszych błędów pamięci należy zaliczyć:
Błędy parzystości. Tego typu błąd oznacza, że układ odpowiedzialny za kontrolę parzystości umieszczony na płycie głównej wykrył modyfikację danych, która nastąpiła od czasu ostatniej operacji zapisu. Zapoznaj się z zawartością wcześniejszego punktu „Działanie mechanizmu kontroli parzystości".
Ogólne błędy ochrony. Tego typu komunikat o błędzie ma bardziej ogólne zastosowanie. Jego wystąpienie oznacza, że dane programu przechowywane w pamięci zostały uszkodzone, co zazwyczaj objawia się natychmiastowym zakończeniem jego działania. Powodem błędów ochrony mogą być również niepoprawnie napisane programy.
Błędy wyjątków. Są to kody błędów zwracane przez program w momencie, gdy została wykonana nieprawidłowa instrukcja lub próbowano uzyskać dostęp do nieodpowiednich danych lub kodu. Inną ich przyczynąjest zbyt niski poziom uprawnień wykonywanej operacji.
Błąd dzielenia przez zero. Błąd ogólnego zastosowania informujący o próbie dzielenia przez zero
lub pojawiający się w przypadku wykonywania operacji, która nie ma dostępu do rejestru docelowego.
Jeśli napotkasz na tego typu błędy, wtedy może to oznaczać, że ich powodem jest wadliwa lub nieprawidłowo skonfigurowana pamięć. Mogą one być również wywołane przez błędy aplikacji (zwłaszcza sterowników), nieodpowiednie zasilanie, wyładowania statyczne, obecność nadajników radiowych, zbyt wysokie ustawienia częstotliwości taktowania itp.
Jeśli podejrzewasz, że przyczyną problemów jest pamięć, wtedy w celu upewnienia się, czy tak faktycznie jest, powinieneś skorzystać z różnych metod jej testowania. Zazwyczaj czynności związane z testowaniem obejmują uruchomienie jednego lub kilku programów testujących pamięć.
Zadziwia mnie to, że większość osób w trakcie przeprowadzania testów pamięci popełnia kardynalny błąd. Polega on na tym. że wielu użytkowników komputerów uruchamia narzędzia diagnostyczne testujące pamięć bez uprzedniego wyłączenia systemowej pamięci podręcznej. Tym sposobem wyniki przeprowadzonych testów pamięci skutecznie są unieważniane, ponieważ większość systemów dysponuje pamięcią podręczną pracującą w trybie write-back. Oznacza to, że zanim dane zostaną zapisane do pamięci RAM, najpierw są umieszczane w pamięci cache. Ze względu na to, że program testujący pamięć najpierw zapisuje dane w komórkach, a dopiero potem je odczytuje, nie pobiera ich z pamięci RAM, ale już z pamięci podręcznej. Dzięki temu narzędzie diagnostyczne działa bardzo szybko, ale tak naprawdę testowana jest pamięć cache. Wynika z tego, że jeśli test pamięci przeprowadzany jest przy włączonej pamięci podręcznej, wtedy w rzeczywistości dane nie są zapisywane do komórek układów SIMM czy DIMM. ale wyłącznie do pamięci podręcznej. Z tego też powodu przed rozpoczęciem testowania pamięci przy użyciu dowolnego programu diagnostycznego należy upewnić się, że jest wyłączona pamięć cache. Chociaż po wykonaniu tej operacji system będzie działał bardzo wolno, a tym samym na wykonanie testu pamięci będzie wymagana większa ilość czasu, to jednak zostanie sprawdzona pamięć RAM, a nie pamięć podręczna.
Wykonanie poniższych kroków pozwala na skuteczne przeprowadzenie testu pamięci RAM i usunięcie zaistniałych problemów. Na rysunku 6.17 została w postaci diagramu przedstawiona procedura, która pomoże Ci w szybkim przeprowadzeniu całej operacji.
Na początku omówimy kolejne kroki procedury związanej z testowaniem i usuwaniem problemów dotyczących pamięci.
Włącz komputer i prześledź przebieg wykonywanej procedury POST. Jeśli po jej zakończeniu nie zostaną wyświetlone żadne komunikaty błędów, oznacza to, że pamięć została sprawdzona w podstawowym zakresie. Jeśli jednak zostaną wykryte błędy, należy przejść do procedury identyfikującej defekt pamięci.
Uruchom ponownie komputer, a następnie otwórz program BIOS (lub CMOS) Setup. W większości komputerów w tym celu należy w trakcie wykonywania procedury POST, ale jeszcze przed rozpoczęciem ładowania systemu operacyjnego, nacisnąć klawisz Delete. W programie BIOS Setup należy sprawdzić, czy wyświetlona pojemność pamięci jest zgodna z pojemnością zainstalowanych modułów. W przypadku, gdy występuje różnica, należy przejść do procedury identyfikującej defekt pamięci.
W programie BIOS Setup należy odszukać ustawienia dotyczące pamięci podręcznej, a następnie wszystkie je wyłączyć. Po zapisaniu dokonanych zmian uruchom ponownie komputer przy użyciu dyskietki startowej systemu DOS zawierającej stosowany program diagnostyczny. Jeśli do kupowanego systemu została dołączona dyskietka diagnostyczna, można z niej skorzystać lub sięgnąć po jeden z wielu dostępnych na rynku tego typu programów, takich jak PC-Technician (rozprowadzany w postaci umożliwiającej inicjalizację komputera) firmy Windsor Technologies, Norton Utilities firmy Symantec lub innych.
4. W celu przetestowania pamięci podstawowej i XMS postępuj zgodnie z instrukcjami dołączonymi przez producenta używanego programu diagnostycznego. Większość tego typu programów dysponuje możliwością uruchomienia testu w trybie ciągłym, co jest szczególnie przydatne do identyfikacji problemów o charakterze losowym. Jeśli program wykryje błąd pamięci, należy przejść do procedury identyfikującej defekt pamięci.
Jeśli w trakcie wykonywania procedury POST lub podczas przeprowadzanych testów przy użyciu bardziej zaawansowanych programów diagnostycznych nie zostaną zidentyfikowane żadne błędy, oznacza to, że na poziomie sprzętowym pamięć jest sprawna. Należy pamiętać, aby w tym momencie ponownie uruchomić komputer, a następnie otworzyć program BIOS Setup i uaktywnić pamięć podręczną. Dopóki nie zostanie ona włączona, system będzie działał bardzo wolno.
Jeśli w dalszym ciągu występują błędy pamięci, może to oznaczać, że masz do czynienia z problemami, które nie zostały wykryte przez proste operacje testujące zapisu i odczytu lub że są one wywołane przez oprogramowanie albo na skutek jednego z wielu innych problemów, które dodatkowo pojawiły się w komputerze. W celu przeprowadzenia dokładniejszych testów może okazać się konieczne umieszczenie pamięci w testerze modułów. Większość sklepów i serwisów komputerowych dysponuje takim urządzeniem. Przy identyfikacji przyczyn problemów osobiście sprawdzam również oprogramowanie (zwłaszcza sterowniki, które mogą wymagać aktualizacji), zasilacz i otoczenie komputera, które może mieć wpływ na powstawanie ładunków statycznych lub zakłóceń związanych z obecnością nadajników radiowych.
Rysunek 6.17.
Testowanie pamięci i usuwanie problemów z nią związanych
Procedura identyfikująca defekt pamięci
Poniższe kroki mogą być wykonane tylko wtedy, gdy zostanie przez procedurę POST lub program diagnostyczny uruchomiony z dyskietki wykryty rzeczywisty błąd pamięci. W tym przypadku w celu identyfikacji modułu SIMM lub DIMM, który jest przyczyną problemu, zapoznaj się z poniższymi krokami i zawartością rysunku 6.18.
Rysunek 6.18.
W przypadku, gdy po wykonaniu procedury przedstawionej na rysunku 6.17 w dalszym ciągu występują błędy pamięci, należy zapoznać się z powyższą procedurą
1. Uruchom ponownie komputer, a następnie otwórz program BIOS Setup. Zazwyczaj w menu o nazwie Advanced lub Chipset Setup mogą znajdować się ustawienia dotyczące taktowania pamięci. Ustaw domyślne ustawienia programu BIOS Setup, które z reguły zawierają wartości odpowiadające najniższym szybkościom. Zapisz dokonane zmiany, uruchom ponownie komputer, a następnie powtórz procedurę testującą i usuwającą problemy związane z pamięcią, która została wcześniej omówiona. Jeśli problem zniknie, oznacza to, że powodem były nieprawidłowe ustawienia programu BIOS Setup. Jeśli jednak problem nadal występuje, prawdopodobnie oznacza to uszkodzoną pamięć, dlatego też należy przejść do następnego kroku.
2. W celu uzyskania dostępu do gniazd modułów SIMM, DIMM czy RIMM znajdujących się na płycie
głównej, należy zdjąć obudowę. Zidentyfikuj organizację banków pamięci w komputerze. Przykładowo,
systemy klasy Pentium dysponują bankami 64-bitowymi, co odpowiada dwóm modułom SIGM lub jednemu układowi DIMM przypadającym na jeden bank. W przypadku komputerów opartych na procesorze Pentium 4 wymagane jest jednoczesne zainstalowanie dwóch 184-końcówkowych modułów RIMM (w oddzielnych kanałach) lub jednego 232-końcówkowego układu RIMM, jeśli oczywiście jest on obsługiwany. Przy wykorzystaniu dokumentacji lub opisu wykonanego na płycie głównej metodą sitodruku należy określić, które moduły odpowiadają poszczególnym bankom.
Wyjmij moduły z wszystkich banków oprócz pierwszego, a następnie ponownie wykonaj procedurę testującą omówioną wcześniej. Jeśli po opróżnieniu wszystkich banków pamięci oprócz pierwszego problem nadal występuje, oznacza to, że powodują go zainstalowane jeszcze moduły, które należy wymienić.
Wymień moduły pamięci z pierwszego banku na inne, przy czym, chociaż zaleca się użycie zapasowych i sprawdzonych układów, można również zainstalować moduły poprzednio wyjęte. Przeprowadź ponownie test pamięci. Jeśli po przetestowaniu wszystkich banków pamięci i stwierdzeniu, że są sprawne, problem nadal występuje, może to oznaczać, że uszkodzona jest sama płyta główna (prawdopodobnie jedno z gniazd pamięci). W takiej sytuacji należy wymienić płytę i ponownie przeprowadzić test.
W tym momencie okazało się, że pierwszy lub ostatnio testowany bank działa bez zarzutu, dlatego też problem musi być wywołany przez pozostałe moduły, które tymczasowo zostały wyjęte z gniazd. Wypełnij kolejny bank modułami, a następnie ponownie wykonaj test. Jeśli problem znowu wystąpi, można przyjąć, że moduł znajdujący się w tym banku jest uszkodzony. Kolejna czynność polega
na dalszym testowaniu każdego banku do momentu wykrycia wadliwego modułu.
6. Powtórz poprzedni krok dla każdego banku, w którym zostaną zainstalowane już przetestowane moduły pamięci. Jeśli po wyjęciu i ponownym zainstalowaniu wszystkich modułów pamięci problem już nie występuje, prawdopodobnie miał on charakter losowy lub był wynikiem złego przewodzenia styków. Często jest tak, że prosta operacja wyjęcia i ponownego umieszczenia modułu w gnieździe może wyeliminować przyczynę problemu. Wynika to z samego faktu wykonania takiej operacji, przy której dochodzi do wyczyszczenia miejsca styku modułu z gniazdem.
Organizacja logiczna pamięci komputera
Oryginalny komputer PC dysponował adresowalnym obszarem pamięci o pojemności 1 MB, z czego 384 kB zostało zarezerwowanych na potrzeby systemu. Umieszczenie tego specjalnego segmentu w górnym obszarze pamięci (pomiędzy granicą 640 a 1024 kB, a nie między 0 i 640 kB) doprowadziło do stworzenia pojęcia noszącego nazwę granicy pamięci konwencjonalnej. Ciągła presja wywierana na producentów komputerów i urządzeń peryferyjnych, aby dla zachowania kompatybilności nie zmieniać ustalonej wcześniej organizacji pamięci pierwszego komputera PC spowodowała, że struktura pamięci była jednym wielkim bałaganem (i jest to delikatne stwierdzenie). Prawie dwie dekady po zaprezentowaniu pierwszego komputera PC nadal wskutek sposobu organizacji jego pamięci nawet najnowsze systemy oparte na procesorze Pentium 4 są ograniczone pod wieloma istotnymi względami.
W efekcie otrzymuje się komputer PC z „rozbitą osobowością". Można wyróżnić dwa podstawowe tryby pracy komputera w znacznym stopniu od siebie się różniące. Oryginalny komputer PC oparty był na procesorze 8080 firmy Intel, który potrafił wykonywać tylko 16-bitowe instrukcje lub kod i pracował w trybie określanym mianem trybu rzeczywistego. Pierwsze modele procesorów dysponowały liniami adresowymi, które pozwalały na zaadresowanie maksymalnie 1 MB pamięci, przy czym ostatnie 384 kB z tego obszaru zostało zarezerwowane na użytek karty graficznej jako graficzna pamięć RAM oraz innych kart (wyposażonych w układ ROM BIOS) i oczywiście dla układu ROM BIOS płyty głównej.
Procesor 286 był wyposażony w większą ilość linii adresowych umożliwiających zaadresowanie maksymalnie 16 MB pamięci RAM i pracował w nowym trybie nazwanym trybem chronionym, który był warunkiem wykorzystania nowych możliwości związanych z obsługą pamięci. Niestety, w tamtym okresie wszystkie systemy operacyjne zostały zaprojektowane pod kątem współpracy tylko z pierwszym megabajtem pamięci RAM. dlatego też w celu umożliwienia systemom DOS i Windows 3.x dostępu do 16 MB pamięci dołączano do nich programy rozszerzające oraz sięgano po inne metody. Powodem do zmartwienia było to, że pamięć RAM nie była obszarem ciągłym. Oznacza to, że system operacyjny mógt skorzystać z obszaru pierwszych 640 kB pamięci oraz następnego wielkości 15 MB, ale pomiędzy nimi znajdował się obszar zajmujący 384 kB zarezerwowany do innych celów.
W momencie, gdy w 1985 r. firma Intel wprowadziła na rynek pierwszy procesor 32-bitowy (386DX), architektura pamięci uległa radykalnej zmianie. Tego typu procesory zawierały wystarczającą ilość linii adresowych, aby uzyskać dostęp do pamięci o maksymalnej pojemności 4 GB, ale było to możliwe tylko wtedy, gdy został włączony nowy, 32-bitowy tryb chroniony, który pozwalał na wykonywanie wyłącznie 32-bitowych instrukcji lub kodu. 32-bitowy tryb chroniony został stworzony z myślą o nowszych i bardziej zaawansowanych systemach operacyjnych, takich jak Windows 9x, NT, 2000, XP, OS/2, Linux, Unix itp. Dzięki procesorom 386, 32-bitowe aplikacje mogły wykorzystać nową architekturę pamięci. Niestety użytkownicy musieli czekać aż 10 lat na możliwość korzystania z 32-bitowego systemu operacyjnego i programów, co jest potwierdzeniem niechęci do zmian! Patrząc z perspektywy kodu źródłowego aplikacji, wszystkie nowsze od układu 386 32-bitowe procesory są po prostu tylko jego szybszymi wersjami. W przypadku nowszych technologii takich jak MMX i SSE lub 3DNow (opracowanej przez firmę AMD) zastosowanych w procesorach Pentium 4 lub Athlon, pomimo ich dużych możliwości czynią one z tych układów tylko wersję „turbo" procesora 386.
Poważnym problemem związanym z procesorami 32-bitowymi jest ich możliwość pracy w dwóch odmiennych trybach korzystających z innej architektury pamięci. Dla utrzymania zgodności wstecz procesory 32-bitowe w dalszym ciągu oferują tryb rzeczywisty, w którym mogą działać tylko programy 16-bitowe uzyskujące w zależności od własnej architektury dostęp jedynie do pierwszego megabajta pamięci lub maksymalnie 16 MB. Przykładowo, 16-bitowe sterowniki po załadowaniu mogą wykorzystać tylko pierwszy megabajt pamięci. Dodatkowo należy wspomnieć, że procedura POST, konfiguracja BIOS-u, kod inicjalizujący oraz wszystkie wewnętrzne sterowniki przechowywane w pamięci układu ROM BIOS zaliczają się do programów 16-bitowych. Wynika to stąd, że wszystkie procesory zgodne z układami firmy Intel po uruchomieniu komputera PC rozpoczynają pracę w 16-bitowym trybie rzeczywistym. Po załadowaniu 32-bitowego systemu operacyjnego, zawarte w nim funkcje powodują, że procesor przełącza się w 32-bitowy tryb chroniony.
W trakcie uruchamiania systemu operacyjnego takiego jak Windows, w początkowej fazie jego ładowania procesor przechodzi w 32-bitowy tryb chroniony. Dzięki temu mogą zostać załadowane 32-bitowe sterowniki urządzeń, a następnie pozostała część systemu. W 32-bitowym trybie chronionym system operacyjny wraz z aplikacjami uzyskują dostęp do pamięci systemowej, której pojemność jest ograniczona przez możliwości procesora (w przypadku większości procesorów Pentium II i nowszych modeli jest to 64 TB).
Niestety z trybem chronionym związany jest jeden problem —jest chroniony. Nazwa trybu wynika stąd, że po jego uaktywnieniu bezpośredni dostęp do urządzeń uzyskują tylko sterowniki. Programy uruchamiane w systemie operacyjnym np. po kliknięciu ikony aplikacji Windows nie mają bezpośredniego dostępu do pamięci lub innych urządzeń. Dzięki takiemu ograniczeniu określony program, który wykona niedozwoloną operację nie spowoduje zawieszenia całego systemu. Prawdopodobnie spotkałeś się z komunikatami błędów systemu Windows informującymi o takim przypadku, po którym następowało zakończenie działania programu.
Narzędzia diagnostyczne z założenia muszą uzyskać bezpośredni dostęp do urządzeń. Oznacza to, że w trakcie działania systemu operacyjnego takiego jak Windows 9x, NT, 2000, XP czy Linux w trybie chronionym powinno być możliwe wykonanie nieobciążającej procedury testującej. W celu przetestowania komputera zazwyczaj konieczne jest załadowanie z dyskietki startowej systemu DOS lub przerwanie procesu uruchamiania systemu Windows (poprzez naciśnięcie w momencie wyświetlenia komunikatu Uruchamianie Windows... klawisza F8), a następnie wybranie pozycji menu Tylko wiersz poleceń, która umożliwi załadowanie DOS-a. W przypadku systemu Windows 9x (nie Me) można po wybraniu opcji Zamknij system wybrać pozycję Uruchom ponownie w trybie MS-DOS. Wiele bardziej zaawansowanych programów diagnostycznych dysponuje specjalnym, 16-bitowym systemem operacyjnym o ograniczonych możliwościach, który znacznie ułatwia uzyskanie dostępu do obszarów pamięci nawet tych wykorzystywanych przez DOS. W przypadku systemów Windows 2000 i XP możliwe jest sformatowanie dyskietki i umieszczenie na niej plików startowych systemu MS-DOS. W tym celu należy uaktywnić opcję Utwórz dysk startowy systemu MS-DOS. znajdującą się w oknie Formatuj, wyświetlanym po zaznaczeniu w oknie Mój komputer stacji dyskietek i wybraniu z menu pozycji Formatuj.
Przykładowo, w momencie ładowania systemu Windows 9x przy użyciu dyskietki startowej uruchamiany jest 16-bitowy system DOS. W celu uzyskania dostępu do napędu CD-ROM i odczytania w nim płyty instalacyjnej systemu Windows konieczne jest również załadowanie z tej samej dyskietki odpowiedniego 16-bitowego sterownika. W trybie rzeczywistym możliwe jest partycjonowanie i formatowanie dysku twardego, instalowanie systemu Windows lub przeprowadzenie pełnego testu komputera. Wersja instalacyjna OEM systemu Windows 98, jak również wszystkie wersje systemu Windows Me i nowszych dostarczane są na płycie CD umożliwiającej inicjalizację komputera, oczywiście jeśli dysponuje możliwością ładowania systemu przy użyciu napędu CD-ROM. W takim przypadku należy w programie BIOS Setup ustawić odpowiednią opcję, która wyeliminuje potrzebę przygotowania dyskietki startowej.
Chociaż obecnie raczej nie za często korzysta się z systemu DOS, to jednak w celu przeprowadzenia okresowych testów przy użyciu narzędzi diagnostycznych bezpośrednio komunikujących się z urządzeniami, wykonania operacji odzyskiwania danych, konfiguracji lub instalacji nadal może okazać się konieczne załadowanie 16-bitowego systemu operacyjnego. Po włączeniu trybu rzeczywistego wykorzystywana jest inna architektura systemowa, dostępne jest mniej pamięci RAM, dlatego też niektóre uruchomione programy (16-bitowe sterowniki i większość kodu aplikacji) muszą rywalizować o wolny obszar pamięci umieszczony w pierwszym megabajcie, a nawet poniżej granicy 640 kB.
Obszary pamięci omówione w tym rozdziale, do których należy zaliczyć 384 kB z pierwszego megabajta, wykorzystywane przez kartę graficzną, BIOS kart i płyty głównej oraz pozostały obszar pamięci powyżej pierwszego megabajta stanowią część architektury sprzętowej komputera PC. Istnieją one niezależnie od tego, czy została uruchomiona 16- czy 32-bitowa aplikacja. Jednak w przypadku 16-bitowego trybu rzeczywistego ograniczenia w dostępie do pamięci są znacznie poważniejsze. Ze względu na to, że większość osób korzysta z 32-bitowych systemów operacyjnych takich jak Windows 9x, 2000, XP czy Linux. zarządzanie pamięcią odbywa się w nich w sposób automatyczny, co oznacza, że użytkownik w ogóle nie musi o nim myśleć, co w przypadku 16-bitowych systemów często było niezbędne.
Kolejne punkty mają na celu przybliżenie Czytelnikowi architektury pamięci komputera PC. która jest jednakowa niezależnie od typu używanego systemu operacyjnego. Jedyne co się zmienia, związane jest ze sposobem wykorzystania przez system operacyjny różnych obszarów pamięci i zarządzania nimi.
W następnych punktach dokonano szczególowego omówienia różnych typów pamięci zainstalowanej w nowszych komputerach PC. Należy do nich zaliczyć:
pamięć konwencjonalną (podstawową),
pamięć górną (UMA),
pamięć ..wysoką" (HMA),
pamięć powyżej pierwszego megabajta (XMS),
pamięć rozszerzoną (przestarzała),
pamięć graficzną RAM (część pamięci UMA),
pamięć ROM i RAM o specjalnym przeznaczeniu (część pamięci UMA),
pamięć ROM BIOS płyty głównej (część pamięci UMA).
Na rysunku 6.19 przedstawiono położenie adresów logicznych systemu 16-bitowego lub nowszego. W przypadku, gdy procesor pracuje w trybie rzeczywistym, dostępny jest tylko pierwszy megabajt. Jeśli natomiast procesor został przełączony w tryb chroniony, uzyskuje dostęp do pamięci o pojemności 16. 4096 lub 65 536 MB. Każdy symbol odpowiada blokowi pamięci 1 kB, natomiast każdy wiersz lub segment blokowi równemu 64 kB. Pokazana mapa przedstawia pierwsze dwa megabajty pamięci systemowej.
^ ^ Zajrzyj do punktu „Tryby pracy procesora" znajdującego się na stronie 83.
W celu zaoszczędzenia miejsca mapa kończy się przy drugim megabajcie pamięci. W rzeczywistości obejmuje ona swym zakresem cały obszar adresowanej pamięci.
Pamięć konwencjonalna (podstawowa)
W oryginalnych komputerach PC/XT zastosowano pamięć RAM o pojemności 1 MB. Została ona podzielona na kilka segmentów, z których każdy spełniał inną rolę. System operacyjny DOS może odczytywać i zapisywać dane w całym megabajcie pamięci, natomiast w przypadku ładowanych programów jest już ograniczony tylko do przestrzeni pamięci RAM nazywanej pamięcią konwencjonalną, która w chwili wprowadzenia do sprzedaży pierwszego komputera PC miała pojemność 512 kB. Pozostały obszar 512 kB został zarezerwowany dla urządzeń systemowych takich jak płyta główna i karty zainstalowane w gniazdach.
Po opracowaniu pierwszego komputera firma IBM uznała, że tylko 384 kB pamięci zostanie zarezerwowane dla systemu, a pozostały obszar 640 kB został przydzielony użytkownikom komputerów PC. W związku z tym pamięć o pojemności 640 kB okazała się standardowym obszarem, z którego mogły korzystać programy działające pod kontrolą systemu DOS. Często obszar ten kojarzony jest z granicą dostępnej pamięci. Pozostały obszar pamięci pierwszego megabajta został przeznaczony do wykorzystania przez karty graficzne lub inne karty oraz układ ROM BIOS płyty głównej.
Rysunek 6.19
Mapa pamięci obejmująca pierwsze dwa megabajty
Ustanowiona granica pamięci wynosząca 640 kB w znacznym stopniu ma wptyw na 16-bitowe systemy operacyjne takie jak DOS i Windows 3.1, natomiast w przypadku 32-bitowych systemów i programów takich jak Windows 9x, NT/2000/XP nie ma to już takiego znaczenia.
Pamięć górna (UMA)
Pamięć UMA (Upper Memory Area) jest zarezerwowanym obszarem wielkości 384 kB położonym w pierwszym megabajcie pamięci zastosowanej w komputerach PC/XT i AT. Tego typu pamięć określają adresy z zakresu od A0000 do FFFFF. Pamięć górna została podzielona na następujące segmenty:
Pierwsze 128 kB za obszarem pamięci konwencjonalnej nazywane jest pamięcią graficzną RAM. Obszar został zarezerwowany dla kart graficznych. Po wyświetleniu na ekranie tekstu i grafiki tworzące wygenerowane obiekty bity danych są przechowywane w tym obszarze pamięci. Pamięć graficzna RAM zajmuje obszar określony zakresem adresów od A0000 do BFFFF.
Następny obszar 128 kB został zarezerwowany dla BIOS-u przechowywanego w układach pamięci tylko do odczytu niektórych kart zainstalowanych w gniazdach magistrali. Większość kart graficznych kompatybilnych ze standardem VGA do przechowywania zawartości BIOS-u wykorzystuje pierwsze 32 kB tego segmentu. Inne zainstalowane karty mają do dyspozycji pozostałąjego część. Wiele kart sieciowych również korzysta z tego obszaru pamięci jako specjalnej współdzielonej pamięci RAM (shared memory). Obszar pamięci używany przez układy ROM kart i pamięć RAM o specjalnym zastosowaniu określony jest zakresem adresów od C0000 do DFFFF.
Ostatnie 128 kB obszar pamięci został zarezerwowany dla BIOS-u (Basic Input/Output System) płyty głównej, który zapamiętany jest w układzie pamięci RAM tylko do odczytu lub w układzie ROM. Również procedura POST wraz z programem ładującym odpowiedzialnymi za inicjalizację komputera przed rozpoczęciem ładowania systemu operacyjnego zostały zapisane w tym obszarze pamięci. Większość systemów korzysta tylko z ostatnich 64 kB (lub mniej) tego segmentu, dzięki czemu pozostałe 64 kB pamięci (lub więcej) mogą być użyte po zastosowaniu programów zarządzających pamięcią. W niektórych systemach w tym obszarze pamięci zawarto również program CMOS Setup. BIOS płyty głównej zajmuje obszar o zakresie adresów od E0000 do FFFFF.
Należy zauważyć, że w przypadku większości 16-bitowych lub nowszych systemów zarezerwowany 384 kB obszar pamięci jest w pełni wykorzystany. Przykładowo, zgodnie ze standardami dotyczącymi komputerów PC obszar pamięci zarezerwowany dla pamięci graficznej RAM zaczyna się od adresu A0000, który stanowi górną granicę 640 kB. Zazwyczaj segment ten jest używany przez tryby kart graficznych VGA, przy czym tekstowy tryb monochromatyczny zajmuje obszar z zakresu B0000 - B7FFF, natomiast tryb kolorowy obszar B8000 - BFFFF. Starsze karty niezgodne ze standardem VGA korzystały tylko z segmentu BOOOO. Różne karty graficzne w celu wykonania określonych operacji korzystają z pamięci RAM o zmiennej pojemności, co głównie zależy od trybu, w jakim pracują. Jednak procesor, niezależnie od rzeczywistej ilości pamięci RAM, którą dysponuje karta graficzna, zawsze widzi obszar wielkości 128 kB. Jest to możliwe dzięki przełączaniu banków pamięci karty z zakresu segmentów o adresach od A0000 do BFFFF.
Chociaż początkowo górny obszar pierwszego megabajta wielkości 384 kB określono jako pamięć zarezerwowaną, to jednak istnieje możliwość przydzielenia wcześniej nie używanych segmentów pamięci 16-bitowym sterownikom urządzeń (takim jak sterownik ekranu ANIS.SYS dostarczony z systemem DOS) i programom rezydentnym (takim jak DOS-owy sterownik myszy M0USE.COM), a tym samym uwolnienia zasobów pamięci konwencjonalnej przez nie zajmowanej. Należy zauważyć, że nie dotyczy to 32-bitowych sterowników urządzeń stosowanych w systemach Windows 9x czy NT/2000/XP, ponieważ mogą one być bez żadnych ograniczeń ładowane do pamięci XMS. Ilość wolnej pamięci UMA jest inna w różnych systemach i głównie jest to zależne od kart zainstalowanych w komputerze. Przykładowo, większość kart graficznych, kart SCSI i niektórych kart sieciowych wymaga w celu przechowywania zawartości wbudowanych układów ROM lub RAM o specjalnym zastosowaniu określonych segmentów z tego obszaru pamięci.
Pamięć graficzna RAM
Chociaż karta graficzna zainstalowana w komputerze w celu przechowywania wyświetlanych danych graficznych i tekstowych korzysta z obszaru należącego do pierwszego megabajta pamięci, to jednak zazwyczaj jest tak tylko wtedy, gdy pracuje w zwykłym trybie VGA.
Należy zauważyć, że chociaż nowsze karty graficzne mogą być wyposażone nawet w 64 MB lub więcej pamięci, to i tak z całego obszaru system używa jako pamięci graficznej RAM tylko 128 kB. Pozostała część pamięci bezpośrednio dostępna jest wyłącznie dla procesora graficznego znajdującego się na karcie lub dla jednostki centralnej CPU za pośrednictwem parametru Aperture ustawionego blisko górnej granicy przestrzeni adresowej pamięci o pojemności 4 GB. Ponieważ parametr Aperture w przypadku różnych kart może przyjmować odmienne wartości, w celu uzyskania dodatkowych informacji należy zajrzeć do dołączonej do karty lub chipsetu dokumentacji technicznej. Niektóre układy ROM płyt głównych dysponują ustawieniami programu BIOS Setup służącymi do ustawienia rozmiaru pamięci graficznej, ale jeśli nie napotykasz na określonego typu problemy związane z kartą graficzną, wtedy najlepiej pozostawić dla nich wartości domyślne.
W momencie pracy w zwykłym trybie VGA, który jest wykorzystywany np. po uruchomieniu systemu DOS lub po przełączeniu systemu Windows w tryb awaryjny, procesor uzyskuje bezpośredni dostęp maksymalnie do 128 kB graficznej pamięci RAM z zakresu adresów od A0000 do BFFFF. Wszystkie nowsze karty graficzne posiadają również wbudowany BIOS zazwyczaj określony zakresem adresów od C0000 do C7FFF, który jest częścią przestrzeni adresowej pamięci zarezerwowanej dla BIOS-u kart. Przeważnie im wyższa rozdzielczość i większa głębia kolorów oferowana jest przez kartę graficzną, tym wyższe jest jej zapotrzebowanie na pamięć systemową, ale mimo to obszar pamięci przekraczający 128 kB zazwyczaj nie jest dostępny dla procesora. Zamiast tego procesor informuje chipset karty graficznej o tym, co powinno być wyświetlone, a on już zajmuje się wygenerowaniem obrazu, którego dane umieszczane są bezpośrednio w graficznej pamięci RAM karty.
W przypadku standardowej mapy pamięci komputera cały obszar 128 kB zarezerwowany jest przez kartę graficzną, która po przełączeniu w zwykły tryb VGA umieszcza w nim aktualnie wyświetlane dane. Zarezerwowany obszar pamięci zajmuje segment A000 i B000. Zawartość układu ROM karty graficznej korzysta z dodatkowego segmentu pamięci górnej o adresie C000. Nawet wtedy, gdy jest wykorzystywana nowa funkcja systemu Windows 98 (lub nowszego) umożliwiająca podłączenie wielu monitorów, nadal z obszaru pamięci korzysta tylko jedna karta graficzna (podstawowa). Pozostałym kartom jest przydzielony obszar powyżej 1 MB pamięci.
Utworzenie niefortunnego ograniczenia pamięci konwencjonalnej do 640 kB było spowodowane TA lokalizacją obszaru zajmowanego przez pamięć graficzną RAM. System DOS potrafi wykorzystać wszystkie dostępne i sąsiadujące ze sobą obszary pamięci pierwszego megabajta, ale tylko do miejsca, w którym rozpoczyna się obszar zajmowany przez graficzną pamięć RAM. Po zastosowaniu przestarzałych kart graficznych takich jak MDA i CGA system DOS uzyskuje dostęp do obszarów pamięci przekraczających granicę 640 kB.
Mapa graficznej pamięci RAM
Wszystkie karty graficzne kompatybilne ze standardem VGA, łącznie z modelami instalowanymi w gniazdach PCI lub AGP, korzystają ze 128 kB pamięci operacyjnej z zakresu adresów od AOOOO do BFFFF, ale nigdy jednocześnie z całości. To, które segmenty z tego obszaru zostaną użyte, zależy od trybu pracy karty. Na rysunku 6.20 przedstawiono mapę pamięci wykorzystywanej przez kartę graficzną VGA.
Rysunek 6.20.
Mapa pamięci karty graficznej VGA
Z pewnością zauważyłeś, że typowa karta graficzna VGA do przechowywania kodu sterowników umieszczonych we wbudowanym układzie ROM wykorzystuje pełne 32 kB pamięci. Niektóre tego typu karty mogą zajmować mniejszą pojemność, ale należą one do rzadkości. Obszary graficznej pamięci RAM używane są tylko wtedy, gdy karta graficzna pracuje w odpowiednim trybie. Innymi słowy, po przełączeniu karty graficznej VGA w tryb graficzny używany jest tylko segment A000, natomiast w kolorowym trybie tekstowym wykorzystywana jest tylko druga połowa segmentu B000. Ze względu na to, że karta graficzna VGA prawie nigdy nie pracuje w tekstowym trybie monochromatycznym, pierwsza potowa segmentu B000 pozostaje niewykorzystana (B0000 - B7FFF). Na rysunku 6.20 przestawiono standardową pamięć układu ROM BIOS płyty głównej, dzięki czemu można dowiedzieć się. w jaki sposób jest zorganizowana zawartość całej pamięci UMA karty.
W niektórych komputerach karta graficzna umieszczona jest na płycie głównej lub nawet bezpośrednio zintegrowana z jej chipsetem. W lego typu systemach, nawet pomimo to, że BIOS karty graficznej lub płyty głównej mogą pochodzić od tego samego producenta, i tak zawsze przystosowane są do emulacji standardowej karty graficznej VGA. Innymi słowy. BIOS zintegrowanego układu graficznego zajmujący pierwsze 32 kB segmentu C000 dla systemu nadal jest kartą graficzną VGA zainstalowaną w gnieździe. W wielu przypadkach wbudowana karta graficzna w tego typu systemach może zostać wyłączona przy użyciu przełącznika lub zworki, a czasami wskutek umieszczenia karty graficznej w gnieździe. Wbudowany układ graficzny VGA zachowuje się dokładnie jak oddzielna karta, a po jego wyłączeniu istnieje możliwość zainstalowania nowej karty graficznej bez obawy o wystąpienie problemów niekompatybilności, które mogłyby wystąpić wtedy, gdy sterowniki karty zostałyby umieszczone w układzie BIOS płyty głównej.
Pamięć ROM i specjalna pamięć RAM
Drugi obszar pamięci górnej wielkości 128 kB rozpoczynający się segmentem C000 jest zarezerwowany dla programów lub BIOS-u kart zainstalowanych w gniazdach płyty. BIOS przechowywany jest w specjalnych układach ROM. Większość obecnie dostępnych kart zawiera układ EEPROM lub Flash ROM, który może być wymazany i ponownie zaprogramowany bezpośrednio w komputerze, bez konieczności wyjmowania układu lub karty. Aktualizacja układu Flash ROM sprowadza się do uruchomienia odpowiedniego programu pobranego ze strony producenta i postępowania zgodnie z wyświetlonymi instrukcjami. Warto od czasu do czasu zaglądać na stronę internetową producenta karty w celu sprawdzenia, czy pojawiła się nowa aktualizacja układu Flash ROM.
Układ ROM jest przydatny do przechowywania programów, które nie są modyfikowane i muszą być zawsze dostępne podczas działania komputera, a zwłaszcza przy jego inicjalizacji. Karty graficzne, kontrolery dysków twardych, karty sieciowe i rozszerzające karty pamięci są przykładem kart, który mogą być wyposażone w układ ROM. Zawartość tego typu układów znajduje się w obszarze pamięci, który jest niezależny od obszarów wykorzystywanych przez kartę graficzną VGA i ROM płyty głównej.
W przypadku systemów opartych na procesorze 386 lub nowszym używane programy zarządzające pamięcią dołączone do programów różnych firm lub systemu DOS 6 mogą ładować do nieużywanych obszarów pamięci UMA sterowniki urządzeń i programy rezydentne.
Aby skutecznie wykorzystać pamięć RAM na potrzeby określonej karty, należy zajrzeć do dołączonej dokumentacji. W większości starszych kart wymagana jest zmiana położenia zworki lub przełącznika, co bez sięgnięcia po instrukcję obsługi prawdopodobnie nie będzie proste. W przypadku większości nowszych kart, zwłaszcza tych, które są zgodne z technologią Pług and Play, możliwe jest wykonanie podobnej konfiguracji przy użyciu programu dołączonego do karty lub narzędzia Menedżer urządzeń systemu Windows.
BIOS karty graficznej
Układ ROM BIOS karty graficznej nadzoruje pracę karty w trakcie jej inicjalizacji i zawsze wtedy, gdy system korzysta ze zwykłego trybu VGA (np. po uruchomieniu systemu DOS). Ponadto, układ ROM BIOS karty graficznej używany jest po załadowaniu systemu Windows w trybie awaryjnym. Wszystkie nowsze karty graficzne (nawet AGP) do przechowywania zawartości wbudowanego BIOS-u wykorzystują obszar pamięci wielkości 32 kB o adresach z zakresu od C0000 do C7FFF.
Zależnie od ustawionego rodzaju podstawowego trybu VGA (tekstowy monochromatyczny lub kolorowy, graficzny VGA), karta graficzna zajmuje część lub całość 128 kB obszaru pamięci górnej zaczynającego się segmentem C000. Dodatkowo, karty graficzne mogą dysponować zintegrowaną pamięcią o pojemności 64 MB lub większej służącej do obsługi własnych trybów pracy w wysokiej rozdzielczości i przechowującej aktualnie wyświetlane dane, które dzięki temu szybciej są wysyłane na ekran.
BIOS kontrolerów dysków twardych i kontrolerów SCSI
Obszar pamięci górnej określonej adresami z zakresu od C0000 do DFFFF jest również wykorzystywany przez BIOS znajdujący się na wielu kontrolerach dysków twardych i kontrolerach SCSI. W tabeli 6.22 zawarto pojemność i adresy pamięci powszechnie stosowane przez BIOS, w który wyposażony są kontrolery dysków twardych.
Tabela 6.22. Adresy pamięci stosowane przez różne kontrolery dysków twardych
Typ kontrolera |
Pojemność wbudowanego BIOS-u |
Zakres adresów pamięci zajmowanej przez BIOS |
Większość kontrolerów stosowanych w komputerach XT |
8 kB |
C8000-C9FFF |
Większość kontrolerów stosowanych w komputerach AT |
Brak |
Sterowniki zawarte w układzie ROM BIOS płyty głównej |
Większość standardowych kontrolerów IDE |
Brak |
Sterowniki zawarte w układzie ROM BIOS płyty głównej |
Większość standardowych kontrolerów EIDE |
16 kB |
C8000 - CBFFF |
Niektóre kontrolery SCSI |
16 kB |
C8000 - CBFFF |
Niektóre kontrolery SCSI |
16kB |
DC000-CFFFF |
Kontroler dysków twardych lub SCSI zainstalowany w określonym komputerze może korzystać z pamięci o różnej pojemności, ale najprawdopodobniej używa segment pamięci zaczynający się adresem C800. Wynika to stąd, że adres ten jest uważany za część standardu ustanowionego przez firmę IBM i dotyczącego pamięci komputerów osobistych. Obecnie prawie wszystkie kontrolery dysków twardych lub kontrolery SCSI wyposażone we wbudowany BIOS umożliwiają proste przeniesienie jego początku do segmentów określonych adresami C000 i D000. Lokalizacje zawarte w tabeli 6.22 określone są tylko przy użyciu domyślnych wartości adresów używanych przez większość kart. Jeśli okaże się, że adresy domyślne są już zajęte przez inną kartę, wtedy, w celu sprawdzenia, jakie ustalić początkowe wartości adresów obszaru zajmowanego przez BIOS. aby nie wywołały konfliktu, należy zajrzeć do dokumentacji dołączonej do nowej karty.
Rysunek 6.21 przedstawia przykładową mapę pamięci BIOS-u kontrolera SCSI Adaptec AHA-2940.
Rysunek 6.21.
Domyślna alokacja pamięci przez BIOS kontrolera SCSI Adaptec AHA-2940
Karty sieciowe
Karty sieciowe mogą wykorzystywać obszar pamięci górnej określony adresami z zakresu od C000 do D000. Dokładna pojemność i początkowy adres pamięci używanej przez określoną kartę sieciową zależy od jej typu i producenta. Niektóre karty w ogóle nie korzystają z pamięci. Pamięć może być wykorzystywana przez kartę sieciową do dwóch głównych zastosowań. Należą do nich:
korzystanie z układu ROM przechowującego program inicjalizujący IPL (Initial Program Load),
korzystanie z pamięci współdzielonej RAM.
Układ IPL ROM, przeważnie mający pojemność 8 kB, zawiera program ładujący, który pozwala na inicjalizację komputera wywołaną bezpośrednio przez sieciowy serwer plików. Dzięki temu możliwe jest usunięcie z komputera wszystkich dysków twardych i utworzenie bezdyskowej stacji roboczej. Ponieważ w tego typu komputerze jego inicjalizacja przy użyciu dysku twardego lub stacji dyskietek jest niemożliwa, układ IPL ROM zawiera instrukcje, które pozwalają systemowi na zlokalizowanie obrazu systemu operacyjnego znajdującego się na serwerze plików i załadowania go tak, jakby był umieszczony na dysku wewnętrznym.
Pamięć współdzielona jest niewielkim obszarem pamięci RAM umieszczonym w postaci układu na karcie sieciowej, który jest mapowany na obszar pamięci górnej komputera PC. Zamapowany obszar pamięci pełni funkcję „okna", przez które odbywa się komunikacja z siecią i szybkie przesyłanie danych z karty sieciowej do komputera. Po raz pierwszy pamięć współdzielona została zastosowana przez firmę IBM w jej kartach sieciowych Token-Ring, natomiast aktualnie jest ona powszechnie spotykana w kartach sieciowych innych producentów. Do opracowania przez firmę IBM technologii pamięci współdzielonej doszło wtedy, gdy okazało się, że w większości systemów transfer danych oparty na kanałach DMA nie jest wystarczająco szybki. Było to głównie spowodowane przez pewne wady architektury kontrolera DMA i magistrali, co szczególnie objawiało się w komputerach wyposażonych w 16-bitową magistralę ISA. Karty sieciowe nie używające pamięci współdzielonej do wysyłania i odbierania danych korzystały z kanałów DMA lub transferów programowanych PIO (Programmed l/O).
Chociaż w przypadku systemów dysponujących magistralą ISA pamięć współdzielona jest szybsza zarówno od kanałów DMA, jak i transferów PIO to jednak do poprawnego działania wymaga przydzielenia obszaru pamięci górnej UMA wielkości 16 kB. Większość kart sieciowych oferujących typową wydajność korzysta z transferów PIO, ponieważ dzięki nim łatwiejsza jest konfiguracja, a poza tym nie jest wymagana wolna pamięć UMA. W przypadku bardzo wydajnych kart sieciowych stosowana jest pamięć współdzielona. W większości kart sieciowych zazwyczaj wykorzystywany obszar pamięci współdzielonej ma wielkość 16 kB i może zostać umieszczony przez użytkownika w segmentach C000 lub D000 pod dowolnym adresem będącym wielokrotnością bloków 4 kB.
Chociaż na rysunku 6.22 przedstawiono domyślne wartości adresów zajmowanych przez pamięć IPL ROM oraz pamięć współdzieloną wykorzystywaną przez kartę sieciową Token-Ring firmy IBM, to jednak istnieje wiele innych podobnych kart, zgodnych na przykład z technologią Ethernet. Należy jednak pamiętać, że większość kart sieciowych Ethernet do wysyłania i odbierania danych korzysta z kanału DMA lub standardowych poleceń transferu PIO, natomiast nie używają one pamięci współdzielonej tak jak karty Token-Ring.
Rysunek 6.22.
Domyślna mapa pamięci karty sieciowej
Na rysunku 6.22, ze względu na to, że prawie każdy komputer dysponuje kartą graficzną VGA, dodałem również BIOS tego typu standardowej karty. Należy zauważyć, że domyślne adresy pamięci IPL ROM oraz pamięci współdzielonej w prosty sposób mogą być zmienione poprzez modyfikację konfiguracji karty. Większość kart sieciowych jest do siebie podobna w tym, że zawierają obszary pamięci układu IPL ROM i pamięci współdzielonej, chociaż ich wielkości i wartości domyślnych adresów mogą być inne. W większości kart sieciowych wyposażonych w układ pamięci IPL ROM istnieje możliwość jego wyłączenia, dzięki czemu nie będą potrzebne dodatkowe adresy. Tym sposobem, jeśli nie zamierzamy używać pamięci IPL ROM, można zaoszczędzić obszar pamięci UMA i zapobiec ewentualnym konfliktom.
Należy zwrócić uwagę na to, że funkcja Pług and Play dostępna w systemach Windows 9x, Me i Windows 2()0()/XP zajmuje się usuwaniem konfliktów, a nie optymalizacją wykorzystania pamięci. Oczywiście w przypadku 32-bitowych sterowników położenie i wielkość wolnych bloków pamięci górnej tak naprawdę nie ma większego znaczenia, ponieważ tego typu programy są ładowane do pamięci rozszerzonej. Jeśli w dalszym ciągu korzystasz czasami z programów działających pod kontrolą systemu DOS. takich jak gry, wtedy w celu uzyskania jak największej ilości wolnej pamięci i maksymalnej wydajności możesz spróbować dokonać ręcznej optymalizacji konfiguracji pamięci górnej. Jednak w większości przypadków taka operacja nie jest warta zachodu.
BIOS płyty głównej
Ostatni obszar zarezerwowanej pamięci wielkości 128 kB jest używany przez BIOS płyty głównej. BIOS zawarty w układzie ROM nadzoruje pracę systemu w trakcie wykonywania procedury inicjalizującej i następnie podczas jego normalnego funkcjonowania ładuje sterowniki różnych urządzeń. Ze względu na to, że tego typu programy muszą być natychmiast udostępnione, nie mogą być ładowane z takich urządzeń jak dysk twardy.
► ► Zajrzyj do rozdziału 5., „BIOS", znajdującego się na stronie 457.
Chociaż zarówno segment E000, jak i F000 znajdujące się na mapie pamięci uważane są obszary zarezerwowane dla BIOS-u płyty głównej, to jednak w rzeczywistości tylko niektóre systemy korzystają z nich w całości. W przypadku starszych systemów 8-bitowych wymagany jest tylko segment F000, natomiast pamięć ROM i RAM znajdująca się na kartach może użyć segmentu E000. Większość systemów 16-bitowych lub nowszych przechowuje BIOS w segmencie F000, a ponadto może jedynie dekodować dowolny z segmentów E000. Dzięki dekodowaniu określonego obszaru pamięci płyta główna właściwie przejmuje kontrolę nad jego adresami, a tym samym uniemożliwia instalowanie w nim sterowników innych urządzeń. Innymi słowy, w trakcie konfiguracji kart nie jest możliwe przydzielenie im takiego obszaru pamięci. Z tego też powodu w momencie instalacji większość kart korzystających z pamięci nie zezwoli na przydzielenie obszaru związanego z segmentem E000. Chociaż może się to wydawać marnotrawieniem 64 kB przestrzeni adresowej, to jednak tak nie jest, ponieważ w przypadku systemów wyposażonych w procesor 386 lub nowszy do mapowania obszarów pamięci znajdujących się powyżej pierwszego megabajta na blok pamięci górnej pełniącej rolę segmentu E000 jest wykorzystywana jednostka MMU procesora. Jeśli będzie to konieczne, wtedy system załaduje do takiego bloku pamięci UMB kolejne 16-bitowe sterowniki. Jest to pożyteczne rozwiązanie, bez wykorzystania którego doszłoby do marnotrawienia pamięci. Jednak w przypadku sterowników 32-bitowych nie ma ono większego zastosowania.
Na rysunku 6.23 przedstawiono wykorzystanie pamięci BIOS płyty głównej spotykane w większości systemów 16-bitowych lub nowszych.
Rysunek 6.23.
Wykorzystanie pamięci BIOS płyty głównej w większości systemów
Należy zauważyć, że standardowy BIOS płyty korzysta tylko z segmentu F000 (64 kB). Prawie w każdym przypadku pozostały obszar pamięci BIOS (segment E000) jest zupełnie niewykorzystany, dlatego też może pełnić funkcję bloków pamięci górnej UMA.
Pamięć powyżej pierwszego megabajta (extended memory)
Jak już wspomniano wcześniej, mapa pamięci komputera opartego na procesorze 286 lub nowszym przekracza granicę 1 MB, która występuje, gdy procesor pracuje w trybie rzeczywistym. W przypadku komputerów wyposażonych w procesor 286 lub 386SX uzyskuje się dostęp do pamięci o maksymalnej pojemności 16 MB (24-bitowe adresowanie), natomiast nowsze procesory, takie jak 386DX, 486, Pentium, Pentium MMX, obsługują pamięć o pojemności 4 GB (4096 MB przy 32-bitowym adresowaniu). Systemy z zainstalowanym procesorem Pentium Pro, Pentium II lub nowszym są ograniczone do pamięci o pojemności 64 MB (65 536 MB przy 36-bitowym adresowaniu).
36-bitowe adresowanie pamięci jest możliwe dzięki metodzie PAE (physicat address extension). Metoda ta, opracowana przez firmę Intel, jest rozszerzeniem adresowania pamięci umożliwiającym aplikacjom współpracującym z 32-bitowym procesorem Pentium Pro i jego następcami korzystanie z fizycznej pamięci o maksymalnej pojemności wynoszącej 64 GB. Metoda PAE pozwala procesorowi rozszerzyć liczbę bitów z 32 do 36. Jednak aby było to możliwe, system operacyjny musi na to zezwalać. Bity mogą być użyte do adresowania fizycznej pamięci. Obsługa metody PAE jest oferowana jedynie przez serwerowe systemy operacyjne, takie jak Windows 2000 i nowsze w wersjach Advanced Server i Datacenter Server. Bez obsługi metody PAE adresowanie pamięci jest ograniczone do 32 bitów, co odpowiada pojemności pamięci RAM wynoszącej 4 GB.
Aby uzyskać dostęp do adresów pamięci położonych powyżej pierwszego megabajta, procesor musi pracować w trybie chronionym, którym dysponują procesory począwszy od 286. W przypadku układu 286 tylko programy napisane pod kątem uruchamiania w trybie chronionym mogą uzyskać dostęp do pamięci powyżej pierwszego megabajta. Procesory 386 i nowsze dysponują kolejnym trybem, określanym mianem wirtualnego trybu rzeczywistego, który umożliwia podzielenie pamięci powyżej pierwszego megabajta na obszary wielkości 1 MB (z każdym związana jest niezależna sesja trybu rzeczywistego). Wirtualny tryb rzeczywisty pozwala również na jednoczesne uruchomienie kilku sesji, którym przydzielono chroniony obszar pamięci. Mogą to być okienkowe sesje DOS uruchomione pod kontrolą systemów Windows 9x/Me/NT/2000/XP lub OS/2. Chociaż jednocześnie można uruchomić kilka programów działających pod kontrolą systemu DOS, to jednak nadal każdy uzyskuje dostęp do maksymalnie 640 kB pamięci. Wynika to stąd, że każda sesja symuluje środowisko pracy trybu rzeczywistego łącznie z BłOS-em i pamięcią UMA. Aby w wirtualnym trybie rzeczywistym możliwe było jednoczesne otwarcie kilku programów, co jest określane mianem wielozadaniowości (midtitasking), konieczne jest zastosowanie oprogramowania zarządzającego każdym programem i oddzielającego je od siebie (w celu uniknięcia wskutek błędu w jednym zawieszenia pozostałych). Zadanie to jest realizowane przez systemy operacyjne, takie jak OS/2 i Windows 9x/Me/NT/2000/XP.
Nowsze procesory mogą również pracować w trybie rzeczywistym (real mode), który gwarantuje pełną kompatybilność z procesorem 8088 instalowanym w komputerach PC/XT. Tryb rzeczywisty pozwala, tak jak w przypadku systemów PC/XT, na uruchomienie na komputerze AT jednocześnie tylko jednego programu działającego pod kontrolą systemu DOS. Jednak, w przeciwieństwie do swoich poprzedników, komputery kompatybilne z systemem AT pracujące w trybie rzeczywistym, a zwłaszcza te wyposażone w procesory począwszy od 386, a skończywszy na Pentium 4 lub Athlon są trochę czymś więcej niż tylko ich wersją „turbo". Tego typu procesory po przełączeniu w tryb rzeczywisty potrafią emulować układy 8086 i 8088, ale jednocześnie nie mogą pracować w trybie chronionym. Wprowadzono w nich wirtualny tryb rzeczywisty, który działa w trybie chronionym. Dzięki temu możliwe jest uruchamianie programów trybu rzeczywistego pod kontrolą systemów trybu chronionego, takich jak Windows 9x/Me lub NT/2000/XP.
Pamięć położona powyżej pierwszego megabajta jest dostępna tylko wtedy, gdy procesor pracuje w trybie chronionym.
Pamięć XMS
Specyfikacja pamięci XMS {Extended Memory Specification) została opublikowana w 1987 r. przez firmy Microsoft, Intel, AST Corp. i Lotus Development. Określono w niej sposób wykorzystania pamięci XMS przez programy. Specyfikacja pamięci XMS została zastosowana w systemach opartych na procesorze 286 lub nowszych i dzięki niej możliwe jest przydzielanie programom trybu rzeczywistego (działającym pod kontrolą systemu DOS) pamięci XMS oraz innych bloków pamięci znajdujących się zazwyczaj poza zasięgiem DOS-a.
Przed opracowaniem specyfikacji pamięci XMS nie istniało rozwiązanie gwarantujące współpracę pomiędzy programami, które przełączały procesor w tryb chroniony i korzystały z pamięci XMS. Poza tym jeden program w żaden sposób nie był stanie stwierdzić, co inny program przechowywał w pamięci XMS, ponieważ, działając w trybie rzeczywistym, nie miały one dostępu do tego obszaru pamięci. Programem, który przejmuje całą pamięć powyżej pierwszego megabajta, a następnie przydziela ją programom opierającym się na protokołach XMS, jest sterownik HIMEM.SYS. Dzięki niemu kilka programów korzystających z pamięci XMS i działających pod kontrolą systemu DOS może ze sobą współdziałać, a ponadto, w celu uzyskania dostępu do pamięci, przełączać procesor w tryb chroniony. Reguły określone w specyfikacji pamięci XMS zapobiegają próbom dostępu jednego programu do pamięci używanej już przez inny program. Ze względu na to, że system Windows 3.x, w którym jednocześnie uruchomiono kilka programów, pełni rolę menedżera pamięci przełączającego procesor w tryb chroniony, musi mieć możliwość dostępu do pamięci XMS. Systemy Windows 9x/Me, chociaż działają głównie w trybie chronionym, to jednak w celu uzyskania dostępu do wielu komponentów systemu nadal przełączają się w tryb rzeczywisty. Systemy operacyjne takie jak Windows NT/2000/XP oraz OS/2 są prawdziwymi systemami trybu chronionego.
W celu dostosowania pamięci znajdującej się powyżej pierwszego megabajta do specyfikacji pamięci XMS, należy w pliku CONFIG.SYS dodać wiersz ładujący odpowiedni sterownik. Najczęściej stosowanym sterownikiem pamięci XMS jest HIMEM.SYS, który został dołączony do systemu Windows 3.x i systemu DOS począwszy od wersji 4.0. Po uruchomieniu okienkowej sesji DOS-a w systemach Windows 9x/Me i NT/2000/XP dostęp do pamięci XMS przydzielany jest w sposób automatyczny. Dodatkowo istnieje możliwość skonfigurowania pełnoekranowych sesji DOS, tak aby dostępna była pamięć XMS.
Zapobieganie konfliktom
pomiędzy obszarami pamięci ROM BIOS i ich nakładaniu się
Jak już wspomniano wcześniej, segmenty C000 i D000 zostały zarezerwowane na użytek pamięci ROM i RAM kart. Jeśli adresy pamięci ROM lub RAM dwóch różnych kart pokrywają się, wtedy zazwyczaj obie przestają działać. Po wyjęciu lub wyłączeniu jednej z nich druga zaczyna działać.
W przypadku stosowania wielu kart istnieje, przy wykorzystaniu zworek, przełączników lub sterowników, możliwość zmiany adresów pamięci, które są przez nie wykorzystywane. Dla umożliwienia współistnienia w komputerze dwóch kart może to być wręcz konieczne. Usunięcie takiego konfliktu może być trudne nawet dla ekspertów. W celu określenia, jakie adresy pamięci są wykorzystywane przez kartę oraz sposobu ich modyfikacji umożliwiającego użycie karty w komputerze wyposażonym w inne urządzenia, należy zapoznać się z dołączoną do niej dokumentacją. W większości przypadków tego typu problemy mogą być wyeliminowane poprzez ponowne skonfigurowanie karty lub poprzez zmianę ustawienia zworek, przełączników lub parametrów sterownika. Dzięki takim operacjom możliwa jest jednoczesna instalacja dwóch kart, między którymi nie dochodzi do konfliktu.
Dodatkowo należy się upewnić, że kartom nie zostało przydzielone jednakowe przerwania, kanały DMA lub adresy portów I/O. Prosta metoda pozwalająca uniknąć konfliktów wywołanych na skutek przypisania takiego samego przerwania IRQ, kanału DMA lub adresu portu I/O polega na przygotowaniu tabeli lub szablonu, które posłużą do zapisania konfiguracji systemu zawierającej zasoby już wykorzystane przez zainstalowane karty. Efektem końcowym jest obraz zasobów systemowych oraz zależności występujące pomiędzy kartami.
Jeśli jesteś posiadaczem systemu operacyjnego kompatybilnego z funkcją Pług and Play, takiego jak Windows 9x/Me lub 2000/XP, wtedy, w celu przejrzenia i, ewentualnie, wydrukowania ustawień wszystkich urządzeń, możesz użyć Menedżera urządzeń. Szczególnie namawiam do wydrukowania konfiguracji systemu przed i po dokonaniu modyfikacji. Będzie to pomocne przy określeniu tego, co uległo zmianie oraz pozwoli przewidzieć możliwość wystąpienia konfliktów. Poza tym dzięki takiemu wydrukowi zawierającemu zapis ustawień możliwa jest poprawna konfiguracja każdej karty już przy pierwszej próbie. Szablon z zapisem ustawień zasobów systemowych stanowi również wartościową dokumentację przydatną w momencie podejmowania decyzji o zakupie kolejnej karty. Nowe karty muszą dysponować możliwością konfiguracji dopasowanej do dostępnych zasobów systemowych.
► ► Zajrzyj do podrozdziału „Zasoby systemowe" znajdującego się na stronie 425.
Jeśli używany system jest zgodny z technologią Pług and Play, wtedy po zainstalowaniu kart PnP będą one w stanie dokonać takiego przesunięcia obszarów pamięci, aby usunąć zaistniałe problemy. Niestety, funkcja PnP nie jest doskonała i w dalszym ciągu wymagana jest interwencja użytkownika. Wiąże się to z koniecznością ręcznego określania adresów pamięci mającego na celu najbardziej optymalne przeniesienie obszaru pamięci wykorzystywanego przez kartę.
Cieniowanie pamięci ROM (ROM shadowing)
Prawie wszystkie systemy oparte na procesorze 386 lub nowszym umożliwiają wykonanie cieniowania pamięci ROM płyty głównej i przeważnie również niektórych kart. Operacja cieniowania sprowadza się do przeniesienia kodu programu z wolnej pamięci ROM do szybkiej 32-bitowej pamięci RAM. Cieniowanie wolniejszej pamięci ROM polegające na skopiowaniu jej zawartości do pamięci RAM, co w znaczący sposób przyspiesza wykonywanie funkcji BIOS-u, a czasami odpowiada cztero- lub pięciokrotnemu przyrostowi szybkości.
Należy zauważyć, że cieniowanie pamięci ROM nie ma takiego znaczenia w przypadku używania 32-bitowego systemu operacyjnego takiego jak Windows 9x/Me lub NT/2000/XP. Jest tak dlatego, ponieważ tego typu systemy korzystają z 16-bitowych sterowników BIOS-u tylko w trakcie inicjalizacji, po czym ładują do szybszej pamięci XMS i używają odpowiadających im sterowników 32-bitowych. Wynika z tego, że zazwyczaj cieniowanie jest przydatne tylko wtedy, gdy jest używany system DOS lub inne 16-bitowe programy i systemy operacyjne. Z tego też powodu niektórzy decydują się na wyłączenie w programie BIOS Setup funkcji związanych z cieniowaniem pamięci BIOS karty graficznej. Niestety, po wykonaniu takiej operacji nie uzyska się żadnej dodatkowej pamięci (tak naprawdę to sieją traci), a ponadto wolniej będzie inicjalizowany system i nieznacznie spadnie wydajność komputera po przełączeniu systemu Windows w tryb awaryjny. Wynika to stąd, że w takiej sytuacji uruchamiany jest 16-bitowy sterownik przechowywany w BlOS-ie karty graficznej.
Całkowita wielkość pamięci a pamięć dostępna dla programów
Większość osób nie zdaje sobie sprawy z tego, że nie cała kupiona i zainstalowana pamięć RAM jest dostępna. Wskutek kilku mankamentów systemowej architektury, z całości pamięci RAM obszar wielkości 384 kB przeznaczany jest na potrzeby pamięci górnej UMA.
Przykładowo, w większości systemów wyposażonych w pamięć RAM o pojemności 16 MB (16 384 kB) w trakcie wykonywania procedury POST lub po uruchomieniu programu BIOS Setup pojawia się informacja o dostępnej pamięci wielkości 16 000 kB. Oznacza to, że 16 384 kB - 16 000 kB daje 384 kB, czyli brakującą pamięć! W niektórych komputerach zawierających 16 MB pamięci może pojawić się informacja o pamięci wielkości 16 256 kB, a to oznacza, że 16 384 kB - 16 256 kB = 128 kB, czyli brakująca pamięć.
Jeśli uruchomisz program BIOS Setup i przyjrzysz się wartościom dotyczącym pojemności pamięci konwencjonalnej i pamięci XMS, wtedy stwierdzisz, że nie jest to tylko pojedyncza liczba określająca całkowitą pojemność pamięci wyświetlana w trakcie wykonywania procedury POST. W większości systemów program Setup informuje o 640 kB pamięci podstawowej i 3328 kB pamięci XMS, co stanowi rodzaj „dodatku". Innymi słowy, w większości systemów całkowita pamięć RAM jest pomniejszona o 384 kB, a czasami tylko o 128 kB.
Wyjaśnienie powodu takiego niedoboru nie jest łatwe, ale w każdym komputerze sytuacja wygląda podobnie. Załóżmy, że jesteś posiadaczem komputera klasy 486 zawierającego dwa 72-końcówkowe (32-bitowe) moduły SIMM o pojemności 16 MB każdy. W sumie w dwóch niezależnych bankach zainstalowano pamięć o pojemności 32 MB, a wynika to stąd, że procesor dysponuje 32-bitową magistralą danych. Każdy moduł SIMM komputera odpowiada jednemu bankowi. Pierwszy bank (lub w tym wypadku moduł SIMM) rozpoczyna się od adresu 0000000 (początek pierwszego megabajta), natomiast drugi od adresu 1000000 (początek 17-tego megabajta).
Jedna z kardynalnych zasad związanych z pamięcią mówi, że dwa urządzenia nie mogą korzystać z tego samego adresu pamięci. Oznacza to, że obszar wielkości 384 kB pierwszego banku pamięci komputera znajdowałby się w bezpośrednim konflikcie z graficzną pamięcią RAM (segmenty A000 i B000), pamięcią ROM wszystkich kart (segmenty C000 i D000) i oczywiście pamięcią ROM płyty głównej (segmenty E000 i F000). W efekcie wszystkie moduły SIMM zajmujące te adresy musiałyby zostać wyłączone, bowiem w przeciwnym razie system nie zadziała! W tej sytuacji projektant płyty głównej może rozwiązać problem związany z zajmowaniem przez pamięć modułu SIMM adresów z zakresu od A0000 do FFFFF na trzy sposoby:
Zastosować do przechowywania kopii wolniejszej pamięci ROM szybszą pamięć RAM (cieniowanie), a następnie wyłączyć układ ROM.
Wyłączyć pamięć RAM nie wykorzystywaną do cieniowania, dzięki czemu zostaną wyeliminowane konflikty w obszarze pamięci UMA.
♦ Przenieść pamięć RAM nie używaną do cieniowania i dodać ją do puli aktualnie zainstalowanej pamięci XMS.
W większości systemów cieniowana jest pamięć ROM płyty głównej (zazwyczaj 64 kB) oraz karty graficznej (32 kB), natomiast reszta jest po prostu wyłączana. Pamięć ROM niektórych płyt głównych umożliwia przeniesienie jej w blokach o wielkości 16 kB do obszaru pamięci RAM pomiędzy adresem C8000 i DFFFF.
Cieniowanie pamięci może być wykonane tylko w stosunku do pamięci ROM, nigdy RAM, dlatego też, jeśli dowolna karta (jak np. karta sieciowa) posiada bufor umieszczony w obszarze pamięci RAM o adresach od C8000 do DFFFF, nie należy przenosić go do pamięci RAM, bo karta przestanie działać. Z tego samego powodu nie wolno cieniować pamięci RAM zajmującej obszar o adresach z zakresu od AOOOO do BFFFF, ponieważ odpowiada on buforowi karty graficznej.
Większość płyt głównych nie przenosi pamięci, a to oznacza, że wszystkie obszary zarezerwowanej pamięci wielkości 384 kB, które nie brały udziału w cieniowaniu, po prostu zostały wyłączone. Jest to też wyjaśnienie, dlaczego po włączeniu funkcji cieniowania nadal dostępna jest pamięć o takiej samej pojemności. W większości systemów niewykorzystana pamięć użyta do cieniowania zostałaby wyłączona. W tego typu komputerach wskazywana pojemność pamięci w porównaniu z fizycznie zainstalowaną byłaby pomniejszona o 384 kB. Przykładowo, w komputerze zawierającym 32 MB pamięci, w którym nie dokonano przeniesienia pamięci, zostałaby wyświetlona informacja o 640 kB pamięci podstawowej i 31 744 kB pamięci XMS, co w sumie daje 32 384 kB dostępnej pamięci RAM pomniejszonej o 384 kB (32 768 - 384).
Systemy, które wskazują pojemność pamięci pomniejszonej o obszar 384 kB, nie przenoszą pamięci ROM. W celu sprawdzenia, czy w komputerze brakuje jakiegoś obszaru pamięci, należy przeanalizować trzy elementy. Po pierwsze, należy sprawdzić, jakiej pojemności pamięć zainstalowano. Po uruchomieniu programu Setup można znaleźć informacje dotyczące pozostałych elementów, a mianowicie wielkości pamięci podstawowej i XMS rozpoznanej przez system. W celu określenia wielkości brakującej pamięci po prostu odejmij ilość pamięci konwencjonalnej i XMS od całkowitej pojemności zainstalowanych modułów. Zazwyczaj okaże się, że w komputerze brak 384 kB, ale przy odrobinie szczęścia może być tak, że do brakującego 384 kB system przenosi obszar pamięci ROM o pojemności 256 kB. co w efekcie powoduje, że brakuje już tylko 128 kB.
W prawie wszystkich systemach część brakującej pamięci zostaje wykorzystana do cieniowania zawartości pamięci ROM BIOS przede wszystkim płyty głównej i karty graficznej, dlatego też nie jest zupełnie tracona. W przypadku komputerów, w których brakuje 128 kB pamięci, okazuje się, że jest przechowywana w niej zawartość pamięci BIOS płyty głównej (64 kB w zakresie adresów od F0000 do FFFFF) oraz BIOS-u karty graficznej (32 kB w zakresie adresów od C0000 do C8000). Pozostała część segmentu C0000 (32 kB w zakresie adresów od C8000 do CFFFF) jest po prostu wyłączana. Wszystkie inne segmenty (128 kB w zakresie adresów od AOOOO do BFFFF i 128 kB od D0000 do EFFFF) są przenoszone na początek piątego megabajta (zakres adresów od 400000 do 43FFFF). Większość systemów zamiast przenosić pozostałe segmenty jedynie je wyłącza.
Należy zauważyć, że przy stosunkowo dużej pojemności pamięci stosowanej obecnie w komputerach PC utrata zaledwie 384 kB ma niezauważalny wpływ na wydajność. Poza tym, ze względu na to, że cieniowanie jest przydatne tylko w trakcie działania 16-bitowego systemu takiego jak DOS, w komputerach z zainstalowanym systemem Windows związane z nim ustawienia nie mają żadnego znaczenia. Jeśli w używanym komputerze program BIOS Setup zawiera ustawienia dotyczące cieniowania, wtedy zwykle proponuję pozostawienie wartości domyślnych.
Konfiguracja i optymalizacja pamięci kart
Do przechowywania zawartości BIOS-u i jako roboczą pamięć RAM karty wykorzystują pamięć górną. Jeśli dwie karty próbują uzyskać dostęp do identycznego obszaru pamięci górnej przechowującego BIOS lub pełniącego rolę pamięci RAM, dochodzi do konfliktu, który może uniemożliwić inicjalizację komputera. W większości przypadków funkcja PnP systemu operacyjnego sprawia, że w tego typu kartach automatycznie zmieniana jest ich konfiguracja, tak aby wyeliminować zaistniały konflikt. Jednak czasami może być tak. że konieczne będzie ręczne usunięcie konfliktu. W kolejnych podpunktach omówiono, w jaki sposób można uniknąć konfliktów potencjalnie trudnych do zlikwidowania oraz jak je rozwiązywać, gdy już się pojawią. Ponadto, w tej części rozdziału omówiono przenoszenie pamięci karty pozwalające usunąć zaistniały konflikt jak również opisano kilka metod optymalizacji wykorzystania pamięci kart.
Jak rozpoznać karty zajmujące obszar pamięci UMA?
Istnieją dwie metody pozwalające określić karty wykorzystujące pamięć górną:
W celu zidentyfikowania adresów pamięci zajmowanych przez każdą z kart należy zapoznać się z dołączoną do nich dokumentacją.
W celu określenie obszarów pamięci górnej zajętych przez karty, należy skorzystać z programu narzędziowego lub Menedżera urządzeń systemu operacyjnego.
Najprostszym sposobem (chociaż nie zawsze niezawodnym) zlokalizowania obszarów pamięci górnej wykorzystywanych przez karty zainstalowane w komputerze jest uruchomienie programu narzędziowego. Jeden z takich programów o nazwie MSD (Microsoft Diagnostics) został dodany do systemu Windows 3.x i DOS począwszy od wersji 6. Podobne potrzebne informacje można uzyskać przy użyciu Menedżera urządzeń znajdującego się w Panelu sterowania systemów Windows 9x/Me i 2000/XP. Można również w tym celu zastosować program Informacje o systemie dołączony do systemów Windows 98 i nowszych. Wymienione programy narzędziowe, korzystając z konfiguracji systemowej, potrafią nie tylko określić obszary pamięci górnej używanej przez karty, ale również przydzielone im przerwania IRQ.
Systemy w pełni zgodne z technologią Pług and Play, w celu zapobiegnięcia całkowitemu zawieszeniu komputera, umożliwiają też wyłączenie jednej z kart, pomiędzy którymi doszło do konfliktu. Tego typu sytuacja spowoduje przełączenie systemu Windows w tryb awaryjny.
Po uruchomieniu programu MSD, Menedżera urządzeń lub innego narzędzia mającego za zadanie określenie wykorzystania pamięci górnej warto wydrukować zajęte adresy pamięci. Dzięki takiemu wydrukowi będzie można w przyszłości, w momencie instalacji nowej karty (w celu upewnienia się, że nie dojdzie między nią i innymi kartami umieszczonymi w komputerze do konfliktu), szybko sprawdzić stan wykorzystania zasobów.
Przesuwanie obszaru pamięci kart w celu usunięcia konfliktów
Po zastosowaniu jednej z metod wymienionych w poprzednim podpunkcie mających na celu zidentyfikowanie konfliktu lub ryzyka jego wystąpienia, można w celu przeniesienia obszaru pamięci górnej zajmowanej przez podejrzaną kartę dokonać ponownej konfiguracji jednej lub kilku kart.
W przypadku większości kart przenoszenie zajmowanej przez nią pamięci w pewnym stopniu jest prostą operacją sprowadzającą się do zmodyfikowania ich konfiguracji polegającej na zmianie położenia kilku zworek lub przełączników. Karty zgodne z funkcją PnP wykorzystują w tym celu dołączony program konfiguracyjny lub Menedżer urządzeń systemu Windows. Poniższe kroki powinny pomóc w usunięciu większości zaistniałych problemów spowodowanych przez konflikt pomiędzy kartami:
Określ adresy pamięci górnej aktualne używane przez karty, a następnie je zapisz.
Sprawdź, czy jakiekolwiek adresy wzajemnie się pokrywają, a tym samym wywołują konflikt.
W celu stwierdzenia, dla których kart można dokonać zmiany konfiguracji gwarantującej, że zostaną im przydzielone unikalne zakresy adresów pamięci, należy zajrzeć do dołączonej do nich dokumentacji.
Zmodyfikuj ustawienia konfiguracji kart, pomiędzy którymi wystąpił konflikt, tak aby został on wyeliminowany.
Przykładowo, jeśli jedna z kart zajmuje obszar pamięci górnej o adresach z zakresu od C8000 do CBFFF. natomiast inna korzysta z zakresu adresów od CA000 do CCFFF, istnieje wtedy potencjalne zagrożenie wystąpienia konfliktu. W takiej sytuacji konieczna jest zmiana konfiguracji jednej z kart. Należy zauważyć, że karty kompatybilne z PnP pozwalają na wykonanie tej operacji bezpośrednio z Menedżera urządzeń systemu Windows.
Rozdział 7.
Interfejs ATA/IDE
Omówienie interfejsu IDE
W nowoczesnych komputerach PC do przyłączania dysków twardych używany jest interfejs nazywany IDE (ang. Integrated Drive Electronics). Zawsze jednak zaznaczam, że prawdziwą nazwą tego interfejsu jest ATA (ang. AT Attachment). Interfejs ten został zaprojektowany w celu przyłączenia kontrolera zintegrowanego z dyskiem bezpośrednio do 16-bitowej magistrali komputera IBM AT (ang. Advanced Technology — zaawansowana technologia), wyprodukowanego w 1984 r. Magistrala AT znana jest też pod nazwą ISA (ang. Industry Standard Architecture). ATA jest oficjalną nazwą interfejsu, natomiast termin IDE powstał w dziale marketingu jednego z producentów dysków i miał opisywać fakt połączenia kontrolera i dysku w napędach dyskowych, w których zastosowano interfejs ATA. W napędach tych elektronika kontrolera jest integralną częścią urządzenia, w przeciwieństwie do starszych rozwiązań, gdzie znajduje się ona na osobnej karcie. Choć prawidłową nazwą tego interfejsu jest ATA, dziś bardzo często korzysta się z nazwy IDE. Jeżeli chcielibyśmy być drobiazgowi, możemy powiedzieć, że IDE określa dowolny interfejs dysku wbudowany w sam dysk. natomiast ATA jest specyficzną implementacją interfejsu IDE wykorzystywaną w większości komputerów PC.
Interfejs ATA jest używany nie tylko do podłączania dysków twardych, ale również napędów optycznych CD i DVD, napędów dyskietek dużej pojemności (SuperDisk lub Zip) oraz napędów taśm. Jednak nadal jest przede wszystkim interfejsem dysków twardych. ATA jest bezpośrednią kontynuacją oddzielnych interfejsów kontrolera i dysku twardego, które stosowano wcześniej. W niniejszym rozdziale szczegółowo omówiono zarówno standardowy równoległy interfejs ATA, jak i nowszy szeregowy Serial ATA. W skrócie wspomniano też o interfejsach, z których wywodzi się interfejs ATA. Ponieważ interfejs ATA jest wbudowany w niemal wszystkie układy płyt głównych, ATA jest podstawowym interfejsem wykorzystywanym w większości komputerów PC.
Zalety interfejsu ATA doceniła nawet firma Apple i wbudowała go w niemal wszystkie nowe kompu-T,! tery Macintosh, które pojawiły się od 1995 r. i są produkowane aż do chwili obecnej (wcześniej firma korzystała z własnej wersji interfejsu SCSI). Tak naprawdę firma Apple zaadaptowała wiele innych standardów przemysłowych zapożyczonych bezpośrednio ze świata komputerów PC. Można tu między innymi wymienić takie rozwiązania, jak PCI, AGP, USB, SDR i DDR SDRAM.
► ► Zajrzyj do punktu „LS-120 i LS-240 SuperDisk" znajdującego się na stronie 780.
Poprzednicy IDE
Komputery PC korzystały z wielu różnych interfejsów dysków twardych. Z upływem czasu zwiększała się ilość dostępnych rozwiązań, a przestarzałe standardy interfejsów nie były stosowane w nowych systemach.
Podslawowym zadaniem kontrolera dysków twardych jest przesyłanie danych do i z dysku. Różne typy interfejsów w różnym stopniu ograniczają szybkość przesyłu danych z dysku do systemu i oferują różnorodne dodatkowe funkcje i poziomy wydajności. Jeżeli projektujesz system, w którym wymagana jest duża wydajność, musisz wiedzieć, w jaki sposób poszczególne interfejsy dysków na nią wpływają i czego można od nich oczekiwać. W literaturze technicznej ukazuje się wiele danych statystycznych, które nie odzwierciedlają rzeczywistej wydajności. Postaramy się oddzielić mity prezentowane na przesadnie optymistycznych wykresach od twardej rzeczywistości, z którą musimy się zmagać.
W tabeli 7.1 przedstawione zostały interfejsy dysków twardych wykorzystywanych w systemach PC.
Tabela 7.1. Interfejsy dysków twardych w komputerach PC
Interfejs
Używany w latach
ST-506/412 EDSI
1978-1989 (przestarzały) 1983 -1991 (przestarzały)
Non-ATA IDE ! 1987 - 1993 (przestarzały)
SCSI ! 1986 - do chwili obecnej
ATA (IDE) t" 1986-do chwili obecnej
Serial ATA 2003 - do chwili obecnej
Z wymienionych interfejsów jednie ST-506/412 i ESDI można nazwać prawdziwymi kontrolerami dysków twardych i oba te rozwiązania są już przestarzałe. Wersje interfejsu Non-ATA IDE przede wszystkim były stosowane w komputerach IBM PS/2 i są już przestarzałe. SCSI i ATA są interfejsami systemowymi i zwykle są wbudowane w zestaw układów stanowiących kontroler. Na przykład, w wielu dyskach SCSI oraz z równoległym interfejsem ATA i szeregowym Serial ATA część układów kontrolera jest wbudowana w sam dysk. Interfejs SCSI stanowi jeszcze jedną warstwę łączącą kontroler dysku z magistralą PCI lub ISA, natomiast interfejsy ATA i Serial ATA są kontrolerem bezpośrednio dołączonym do magistrali AT. Niezależnie od różnic, kartę SCSI. ATA lub Serial ATA nazywamy adapterem hosta (ang. host adapterem), a nie kartą kontrolera, ponieważ właściwy kontroler jest integralną częścią dysku. Praktycznie wszystkie nowoczesne napędy dysków korzystają z interfejsów SCSI, ATA lub Serial ATA.
Rodowód interfejsu IDE
Nazwą dysków IDE określa się dowolne dyski ze zintegrowanym kontrolerem, ale w rzeczywistości, używając tego określenia, mamy na myśli specyficzną wersję IDE o nazwie ATA. Niezależnie od nazwy, połączenie dysku z kontrolerem niezwykle uprościło instalację, ponieważ nie ma już potrzeby stosowania osobnych przewodów zasilających oraz kabli sygnałowych łączących kontroler z dyskiem. Połączenie kontrolera i dysku w jedną jednostkę powoduje zmniejszenie ilości komponentów komputera, skrócenie ścieżek sygnałowych, a co za tym idzie, zwiększenie odporności na zakłócenia. Dzięki temu uzyskujemy rozwiązanie bardziej niezawodne i tańsze, niż można osiągnąć, stosując osobny kontroler połączony kablami z dyskiem.
Umieszczenie kontrolera razem z układem kodera-dekodera analogowo-cyfrowego na dysku zwiększa niezawodność w porównaniu z rozwiązaniem wykorzystującym osobny kontroler, taki jak ST506 lub ESDI. Zwiększenie niezawodności uzyskuje się dzięki temu, że kodowanie danych z postaci cyfrowej na analogową przebiega bezpośrednio wewnątrz dysku, w środowisku izolowanym od zakłóceń. Dane analogowe, które są szczególnie wrażliwe na opóźnienia, nie muszą być przesyłane przewodami w postaci taśm, które doskonale zbierają szumy i wprowadzają opóźnienia propagacji sygnału. Rozwiązania zintegrowane pozwalają na zwiększenie częstotliwości zegara taktującego dekoder oraz gęstości zapisu danych na dysku.
Połączenie kontrolera i dysku uwalnia projektantów od potrzeby ścisłego trzymania się zaleceń wcześniejszego standardu interfejsu. Projektanci mogą tworzyć własne implementacje dysku i kontrolera, ponieważ żadne inne kontrolery nie będą nigdy podłączane do tego dysku. Dzięki temu dostępne są rozwiązania o coraz wyższej wydajności. Dyski IDE są czasami nazywane napędami z wbudowanymi kontrolerami.
Pierwsze dyski IDE były nazywane hardcards i były zbudowane przez ulokowanie dysku i kontrolera na jednej płycie, która była umieszczana w gnieździe magistrali. Firmy takie jak Plus Development Division of Quantum korzystały z małych dysków 3,5 cala (ST-506/412 lub ESDI) i podłączały je do standardowego kontrolera. Układ taki był umieszczany w gnieździe magistrali ISA, identycznie jak zwykła karta kontrolera. Niestety, umieszczenie ciężkiego, wibrującego dysku twardego na karcie rozszerzeń, mocowanej jedynie jednym wkrętem, nie było dobrym rozwiązaniem. Dodatkowo możliwe były interferencje z układami sąsiednich kart, ponieważ karty z dyskami były dużo szersze od zwykłej karty kontrolera.
Kilka firm wpadło na pomysł przeprojektowania kontrolera i umieszczenia go na obudowie standardowego dysku i zamontowania tego dysku w standardowej wnęce obudowy, tak jak inne dyski. Ponieważ wbudowany kontroler w takim dysku nadal wymagał podłączenia do karty rozszerzenia, niezbędny był jeszcze kabel łączący dysk z jednym z gniazd rozszerzeń. Taki właśnie jest rodowód interfejsu IDE.
Wersje magistrali IDE
Istnieją cztery główne typy interfejsu IDE, korzystające z trzech standardów magistral:
szeregowy Serial AT Attachment (SATA),
równoległy AT Attachment (ATA) IDE (oparty na 16-bitowej magistrali AT, nazywanej też ISA),
XT IDE (oparty na 8-bitowej magistrali ISA — przestarzały),
MCA IDE (oparty na 16-bitowej magistrali Micro-Channel — przestarzały).
Z wymienionych rozwiązań w chwili obecnej wykorzystywane sąjedynie warianty interfejsów ATA i Serial ATA. ATA i Serial ATA są ciągle rozwijane i dostępne są coraz szybsze i bardziej wydajne rozwiązania. Ulepszone wersje równoległego interfejsu ATA nazywane są ATA-2, ATA-3 itd. Czasami są określane jako EIDE (ang. Enhanced IDE), Fast-ATA, Ultra-ATA lub Ultra-DMA. Jednakże wydaje się, że interfejs ATA nie może się już rozwijać poza wersję ATA-7, natomiast Serial ATA rozpoczyna swój rozwój od poziomu, na którym rozwój ten zakończył interfejs ATA. Oferuje doskonałą wydajność, większą niezawodność, prostszą instalację, niższy koszt oraz umożliwia dalszy rozwój.
W 1987 r. firma IBM opracowała własne dyski MCA (Micro Channel Architecure) IDE przeznaczone dla takich komputerów, jak PS/2 Model 70. Dyski z magistralą łączone były za pomocą karty pośredniczącej (interposer card). Tego typu karty magistrali (określane też czasami anglojęzycznymi terminami paddle boards lub angte boards) wymagały jedynie kilku układów bufora i nie miały żadnego rzeczywistego obwodu, ponieważ kontroler dysku podłączany był bezpośrednio do magistrali. Określenie paddle board wzięło się stąd, że tego typu karty (jako że zawierają niewielką liczbę obwodów) przypominają adaptery stosowanego w grach manipulatora lub joysticka. Interfejs MCA IDE używa całkowicie innego 72-pinowego złącza i został zaprojektowany wyłącznie dla systemów z magistralą MCA.
8-bitowa wersja interfejsu IDE pojawiła się w komputerach z 8-bitową magistralą ISA. takich jak PS/2 Model 30. Interfejs XT IDE korzystał z 40-pinowego złącza podobnego do stosowanego w 16-bitowej wersji interfejsu, które jednak nie było z nim zgodne. Zarówno interfejs MCA, jak i XT IDE nie zdobyły dużej popularności i po kilku latach znikły z rynku.
Godny uwagi jest fakt, że standardem przemysłowym stał się tylko interfejs ATA IDE. Interfejsy ATA IDE i MCA IDE nigdy nie zostały uznane przez branżę za tego rodzaju normy i nie zyskały dużej po-pularności. Oba interfejsy stosowane były tylko w okresie od 1987 r. do 1993 r., wyłącznie w komputerach IBM PS/2 oraz pierwszych modelach z serii ThinkPad.
W większości nowoczesnych komputerów na płycie głównej dostępne są co najmniej dwa złącza ATA. Komputery oferujące ATA RAID dysponują dwoma dodatkowymi złączami ATA, które mogą zostać użyte przez macierz ATA RAID lub napędy ATA działające jako niezależne urządzenia. Jeżeli płyta główna nie posiada jednego z tych złączy, a chcesz podłączyć do systemu dysk ATA, możesz kupić kartę adaptera hosta zawierającą złącze (lub dwa) interfejsu IDE, którą można umieścić w gnieździe magistrali ISA lub PCI. Niekiedy karty te zawierają takie dodatkowe funkcje jak układ ROM BIOS lub pamięć podręczną.
Ponieważ w chwili obecnej stosowane są głównie odmiany interfejsu ATA, reszta rozdziału będzie poświęcona przede wszystkim temu interfejsowi.
Rodowód interfejsu ATA
Pierwsze rozwiązania interfejsu ATA-IDE zostały zaprojektowane przez firmy Control Data Corporation (CDC; należący do niej dział produkcji dysków przyjął później nazwę Imprimis), Western Digital i Compaą. Wykorzystano wtedy po raz pierwszy 40-pinowe złącza ATA. Pierwszym dyskiem ATA IDE był 5,25 calowy CDC Wren II 40 MB ze zintegrowanym kontrolerem WD. Został on zastosowany w pierwszym systemie Compaq 386 w roku 1986. Pamiętam, że po raz pierwszy zobaczyłem ten dysk w 1986 roku na jesiennych targach Comdex i oprócz unikalnej (w tym czasie) 40-żyłowej taśmy zapamiętałem zieloną kontrolkę aktywności umieszczoną na przedniej krawędzi dysku (do tej pory większość dysków korzystało z czerwonych diod LED).
Firma Compaą jako pierwsza zastosowała w swoich komputerach specjalną kartę magistrali, której zadaniem było przystosowanie 98-pinowego złącza krawędziowego AT-bus (inaczej ISA) płyty głównej do mniejszego 40-pinowego złącza, do którego podłączony miał zostać dysk. Wymagane były jedynie 40-pinowe złącza, ponieważ wiadome było, że kontroler dysku nigdy nie będzie potrzebował więcej niż 40 ścieżek magistrali ISA. Mniejsze napędy spotykane w komputerach przenośnych korzystają ze złączy liczących 44 lub 50 pinów. Dodatkowe piny przeznaczono na zasilanie i konfigurację. Piny oryginalnej magistrali ISA stosowane w przypadku interfejsu ATA są jedynie pinami sygnałów wymaganych przez kontrolery dysków twardych standardowego typu AT. Ponieważ podstawowy kontroler tego typu dysku korzysta tylko z przerwania IRQ 14, obsługujące go złącze ATA płyty głównej nie aktywuje innych przerwań IRQ, które nie są potrzebne. Jeśli nawet interfejs ATA zintegrowany jest z mostkiem południowym lub układem I/O Controller Hub (dotyczy nowszych komputerów) chipsetu płyty głównej i działa z wyższą częstotliwością magistrali, rozmieszczenie pinów i ich funkcje nadal są takie same jak w oryginalnym rozwiązaniu stosowanym w magistrali ISA.
► Zajrzyj do podrozdziału „Złącza płyty głównej", znajdującego się na stronie 388.
► Zajrzyj do punktu „Magistrala ISA", znajdującego się na stronie 408.
Wiele osób używających komputerów wyposażonych w płyty główne ze złączami ATA jest przeko-T\ nanych, że kontroler dysku twardego zintegrowany jest z płytą. Jednak z technicznego punktu wi-dzenia tak naprawdę kontroler znajduje się w napędzie. Choć porty ATA zintegrowane z płytą główną często nazywane są kontrolerami, bardziej właściwe (ale rzadziej stosowane) określenie to adaptery magistrali (host adapters). Adapter magistrali można traktować jak urządzenie łączące kontroler z magistralą.
W końcu 40-pinowe złącze ATA oraz projekt interfejsu dysku został przedstawiony jednemu z komitetów standaryzacji ANSI, który razem z producentami dysków uzupełnił braki w standardzie i opublikował dokumentację interfejsu CAM ATA (ang. Common Access Method AT Attachment). Komitet CAM został zorganizowany w październiku 1988 roku, a pierwszy roboczy dokument opisujący interfejs ATA został udostępniony w marcu 1989 roku. Przed opublikowaniem standardu CAM ATA wiele firm, na przykład Conner Periphe-rials (później połączyła się z firmą Seagate Technology), wprowadziło własne zmiany do oryginalnego interfejsu firmy CDC. W wyniku tego wiele starych dysków ATA z końca lat 80 sprawia kłopoty z połączeniem ich z nowszymi dyskami, ponieważ drobne różnice w interfejsach mogą być powodem niezgodności pomiędzy nimi. Od początku lat 90 większość producentów dysków ściśle stosuje oficjalny standard, co pozwoliło wyeliminować większość problemów ze zgodnością.
Niektóre obszary standardu ATA pozwalają na tworzenie poleceń i funkcji specyficznych dla producenta. Te funkcje i polecenia są głównym powodem, dla którego tak trudne jest niskopoziomowe formatowanie dysków ATA. Aby program formatujący mógł w pełni działać, powinien znać specyficzne dla producenta polecenia do przepisywania nagłówków sektorów i przemapowania uszkodzeń. Niestety, tego typu polecenia różnią się dla poszczególnych producentów, co nieco zaciemnia „standard". Większość producentów dysków ATA na swoich witrynach WWW udostępnia oprogramowanie formatujące i inicjalizujące.
Pozycja ta dostępna jest jedynie wówczas, gdy w komputerze zainstalowane są urządzenia tego typu.
W zależności od typu procesora.