501 600


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 ob­sługujący standard USB, klawiatura USB nie zadziała. Może to być powodem problemów w przypadku uru­chamiania systemu DOS, programów diagnostycznych lub innych aplikacji działających w systemie operacyj­nym 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 kompute­rach), komputer będzie się zachowywał w sposób określony w poniższych punktach:

  1. W momencie uruchomienia komputera funkcja Legacy USB Support jest nieaktywna.

  1. Rozpoczyna się wykonywanie procedury POST.

  1. 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.

  2. Procedura POST kończy działanie i wyłącza funkcję Legacy USB Support (jeśli w programie BIOS Setup była ustawiona wartość Disabled).

  3. 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 in­stalacji i skonfigurowaniu sterowników urządzeń USB systemu operacyjnego przejmą one kontrolę, dlate­go 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ży­wać 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 za­dział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 odpo­wiednimi 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 kom­puteró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 administra­tora 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 ini­cjalizacji komputera nie pojawi się pole hasła. Wynika to stąd, że hasło to ogranicza dostęp tylko do progra­mu 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ę zwor­ka, 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 uzy­skania 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ęk­szość systemów począwszy od modeli wyposażonych w procesory 386 i 486. Druga klasa określona przez stan­dard 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, nato­miast 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ąza­nymi 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 sys­tem 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 kolej­noś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ży­ciu menu Hard Drive zdecydować, że system najpierw może być załadowany z dysku dodatkowego, a dopie­ro 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 ty­powej 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 za­instalowanie w komputerze więcej niż jednego dysku rozruchowego i wybór z menu BIOS-u dysku, z które­go 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 wszyst­kich 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 no­wej karty użytkownik byt odpowiedzialny za jej skonfigurowanie, co wiązało się z przydzieleniem jej prze­rwania 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ć, ja­kie 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 ope­racyjny 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 konfigu­racją 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żli­wiająca prawidłowe funkcjonowanie.

Technologia PnP jest złożona z trzech podstawowych elementów:

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 ini­cjalizuje komputer. W trakcie instalacji nowych kart PnP w celu określenia dostępnych zasobów systemo­wych i ich przydzielenia BIOS doczytuje dane ESCD. Jeśli BIOS znajdzie wolne zasoby, dokonuje konfigura­cji 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. Produ­cenci urządzeń są odpowiedzialni za przydzielenie każdemu produktowi numeru identyfikacyjnego PnP i za­kodowania 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żde­go 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 zintegrowa­nym 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 konfigu­rację 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 pro­gramu 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. Tech­nologia 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 syste­mu 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 obja­wia 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 sterow­nikó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 wyma­gane 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:

  1. Wyłącza wszystkie konfigurowalne urządzenia.

  2. Identyfikuje urządzenia Pług and Play.

  3. Tworzy mapę zasobów przydzielonych urządzeniom systemowym statycznie.

  1. Uaktywnia urządzenia wejściowe i wyjściowe.

  2. Przeprowadza skanowanie zawartości pamięci ISA ROM.

  3. Konfiguruje urządzenie inicjalizujące system.

  4. Włącza urządzenia PnP ISA oraz inne konfigurowalne komponenty.

  5. Uruchamia procedurę ładującą system operacyjny.

Jeśli załadowany system operacyjny obsługuje technologię Pług and Play, wtedy przejmuje on kontrolę nad za­rzą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 kontro­lować 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 wy­korzystywane 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 sys­temach testujących stosowanych na liniach montażowych pozbawionych monitora.


0x08 graphic
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 wy­sył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 przeprowadza­nych 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 pro­blemem jak uszkodzona pamięć w banku 0 będzie sprawiał wrażenie zupełnie „martwego". Dzięki zastoso­waniu 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ży­cia 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 powta­rzać się będzie dopóty, dopóki nie zostanie odnaleziony prawidłowy rekord MBR lub nie zostaną spraw­dzone 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 prze­rwanie 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 ko­lejnych 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 kompu­terach 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 ma­gnetofonowych. 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 jesz­cze 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 wbu­dowany 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 robacz­kowym 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 zawie­rają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

0x08 graphic

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 syste­mach DOS/Windows 9x/Me w momencie, gdy brakuje określonych plików systemowych lub są one uszko­dzone. 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 roz­wiązanie go.

W przypadku komputera wyposażonego w BIOS firmy Award w sytuacji nieodnalezienia prawidłowego re­kordu 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 za­wierał 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 po­dzielone 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 sys­temu 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 komuni­kató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 zada­niem 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 po­zycji 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 (sys­temowej), 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 jed­nego 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 uszkodzo­nych 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 prze­kraczającej 8,4 GB, które można obsługiwać w trybie CHS. Błędy te wynikają z nieprawidłowego wyboru ro­dzaju 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 po­jemnoś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 sekto­rów, co może spowodować nieodnalezienie prawidłowego rekordu MBR lub nieodnalezienie prawidłowego re­kordu VBR wolumenu systemowego. Spowoduje to pojawienie się jednego z wymienionych wcześniej komuni­kató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 architek­turze 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 ob­szaró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 najtrud­niejsze 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 wy­korzystać 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 cha­rakter nośnika, jakim jest pamięć, wynika stąd, że dane i programy znajdują się w niej tylko wtedy, gdy kom­puter 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 sto­sunku 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. Pa­mięć 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 podsta­wową 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 charakterystycz­nych cech układów DRAM (a zatem ogólnie pojmowanej pamięci RAM) jest to, że przechowują dane w spo­sób dynamiczny, co tak naprawdę jest dwuznaczne. Po pierwsze, informacja może być wielokrotnie i w do­wolnej 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 prze­chowywania 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ęć systemo­wa, 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 giga­bajty). 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 przej­rzenie określonej teczki, musi ona najpierw zostać pobrana z szafy i położona na biurku. Jeśli biurko jest wy­starczają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 kartote­kowej. 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 twar­dym. Ze względu na tymczasowy charakter pamięci, każdy plik, który został zmodyfikowany już po umiesz­czeniu go w pamięci, musi przed wyłączeniem komputera (po którym zawartość pamięci znika) zostać po­nownie 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 po­wiedzieć, ż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żywa­nia 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 po­staci 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ęk­szych kradzieży z użyciem broni. Zainteresowanie przestępców pamięcią częściowo wynikało z jej dużej war­tości, znacznego popytu, a przy tym wyśledzenie skradzionych układów lub modułów było praktycznie nie­moż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łów­nej mierze do takiego rozwoju wydarzeń przyczyniły się firmy Intel i Rambus, które zamierzały spopularyzo­wać 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ółprzewodni­kó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 dal­szym ciągu, osiągając nie notowane dotąd poziomy, natomiast niektórzy producenci zmuszeni byli do łącze­nia 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ęć zain­stalowana 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

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 prze­chowywania 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 żad­nego 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ą dodat­kowe 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 kompu­tera nie muszą być włączone, zazwyczaj są pozbawione układu ROM, ponieważ wymagane przez nie sterow­niki 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 oprogramo­wania 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 po­jemności.

Komórki pamięci DRAM są wykonane z niewielkich kondensatorów, które w celu oznaczenia bitu przecho­wują ł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 kon­trolerem 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 odczyty­wane 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 przy­padku 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 jed­nostki centralnej. Chociaż niektóre systemy dysponują możliwością zmiany parametrów (przy użyciu pro­gramu 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 kompute­ra, 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 da­nych nie wywołanych fizycznym uszkodzeniem układu pamięci. Zazwyczaj bezpieczniejszym będzie pozo­stawienie 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 naj­lepszym 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 odpo­wiadają 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 ko­mórka ma wartość 0. Ładunek zgromadzony w niewielkich kondensatorach cały czas zanika, dlatego też ko­nieczne jest ciągłe odświeżanie pamięci. Nawet chwilowa przerwa w zasilaniu lub dowolny inny czynnik za­kłó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ększe­nia 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 na­zwana, 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 proceso­rami 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ę mniej­szą 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ły­wa 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 pod­ręcznej pobierane są kolejne dane z wolniejszej pamięci operacyjnej (DRAM). Jeszcze do niedawna maksy­malny 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 wymaga­nia 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 takto­wanym 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 wykorzystywa­ny 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 szyb­kiej 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ń da­nych 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 pa­mię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 realizo­wana 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łodze­niem 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 sys­temie. 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 kompute­rach wyposażonych w procesor Pentium lub starsze układy pamięć cache L2 zazwyczaj znajduje się w po­bliż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 zo­stał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 inte­gralną 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 po­staci 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ły­cie głównej od razu można stwierdzić, że nie należy do najszybszych. Umieszczenie pamięci cache L2 w pro­cesorze (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 za­uważ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 szyb­sza 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, przezna­czonych do zaawansowanych stacji roboczych i serwerów. Pierwszym procesorem stworzonym dla kompute­rów PC, który zawierał pamięć cache L3, był układ Pentium 4 Extreme Edition. Ta zaawansowana konstruk­cja, 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 najpopular­niejszych 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 wy­magał 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. Na­leż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 sys­temów wyposażonych w procesor Pentium i chipset 430TX. Większość pierwszych komputerów klasy Pen­tium wyposażonych w chipsety 430FX/VX/TX jest w stanie buforować pamięć RAM o maksymalnej pojem­noś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ą buforo­wane, 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 przechowy­wania danych w pamięci. Przykładowo, 32-bitowy system operacyjny, taki jak Windows, wykorzystuje naj­pierw górne segmenty pamięci, dlatego też, jeśli zainstalowałeś 96 MB pamięci RAM, system i aplikacje zo­staną 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, kon­trolę nad nianie sprawują już zgodne z nimi chipsety. W tym przypadku zadanie to spoczywa na samym pro­cesorze, 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 bu­forować 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 bu­forowana 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ży­wany 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 me­gaherców (MHz). Jednak od niedawna, w przypadku niektórych nowszych i szybszych typów pamięci, ich szyb­kość 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 lep­szego wyobrażenia można wspomnieć, że prędkość światła w próżni ma wartość 299 792 kilometrów na se­kundę. 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ę, na­tomiast 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 prze­chowują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 ad­resu 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ńcze­nie 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 wol­niejszej od procesora. Z tego też powodu konieczne było zastosowanie kilku poziomów szybkiej pamięci podręcz­nej 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 operacyj­nej (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 proce­sora. 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ą operacyj­ną 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 wydaj­ność 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 stroni­cowania (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 zawar­tych 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 pa­mięci znajduje się poza aktualną stroną, wtedy w celu umożliwienia systemowi wybrania nowej strony ko­nieczne 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 wy­posażonych w procesor 486 i nowsze układy seryjnego trybu dostępu (burst mode access). W seryjnym tak­towaniu pamięci wykorzystano fakt, że większość operacji dostępu do niej dotyczy komórek ze sobą sąsia­dują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 czte­rech 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żo­nych 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 pole­ga na określaniu adresu wiersza i kolumny. W chwili, gdy w pierwszym banku zostanie zakończone prze­kazywanie danych, drugi bank kończy etap ustawiania opóźnienia i jest gotowy do przekazania danych. Pod­czas gdy drugi bank przekazuje dane, w pierwszym określany jest adres wiersza i kolumny dla następnej ope­racji 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 przy­padku 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 prze­znaczony dla systemów klasy Pentium. Ze względu na to. że pamięć EDO jest zmodyfikowaną postacią ukła­du FPM, czasami jest określana mianem pamięci HPM (Hyper Page Mode). Pamięć EDO została opracowa­na 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ła­danie 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 ko­lumny. 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ę adre­sują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 wyko­nania 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 pa­mięci EDO otrzymywane wyniki wskazują, że zazwyczaj przyrost ogólnej szybkości wynosi około 5%. Cho­ciaż 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 pa­mięć 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ę standar­dem 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 tech­nologia 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 taktowa­nego 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ę chip­sety 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 sprzeda­nych 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 nano­sekundach w celu określenia jej szybkości często stosuje się megaherce, co było mylące w przypadku wy­miany 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 ope­racji wykonywanych z częstotliwością 100 MHz, ale specyfikacja PC100 wymaga krótszego czasu, który za­gwarantuje 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. Ory­ginalne układy stosowane w modułach PC133 miaty czas dostępu wynoszący dokładnie 7,5 ns lub częstotli­wość 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ę stan­daryzacją dotyczącą branży półprzewodników. Organizacja EIA reprezentuje wszystkie branże prze­mysł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 za­angaż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ć li­cencję — i to przy założeniu, że firma będąca właścicielem technologii byłaby w ogóle zaintereso­wana 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 ko­rzystać wszystkie firmy będące członkami organizacji. Żaden producent nie sprawuje wyłącznej kon­troli nad określonym standardem. Każda firma wytwarza zgodne komponenty. Przykładami stan­dardó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żo­nych. 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 po­nadto 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ść ma­gistrali (MT/s)

Szerokość ma­gistrali (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

0x08 graphic
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 pa­mię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ługi­wane 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 na­pię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ą nazy­wane 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)

Przepusto­wość (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 poje­dynczy 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 Pen­tium 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). Roz­wią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łu­gują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ęk­szą szybkością, ale zmodyfikowana metoda sygnalizacji pozwala jej osiągnąć wyższą prędkość przy jedno­czesnej lepszej odporności na szumy i przesłuch występujący pomiędzy sygnałami. Dodatkowe sygnały wy­magane 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ęstotli­wość wynosi 400 MHz, natomiast układy DDR2 mogą pracować z częstotliwością zawierającą się w prze­dziale 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)

Przepus­towość (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 zredu­kowano 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 (Gra­phics DDR2\ są stosowane w niektórych droższych kartach graficznych. Ze względu na to, iż wszyscy więk­si 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 tro­chę 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 kom­puteró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ą. Nie­któ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 jed­nocześnie przesłać tylko 16 bitów (2 bajty) ewentualnie poszerzonych o 2 bity parzystości, ale za to ze znacz­nie 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 od­powiadał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). Do­stę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ła­nia 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 mo­duł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 funda­ment, 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 magi­strale sterujące i adresujące są dzielone na dwie grupy końcówek odpowiedzialnych za obsługę wierszy i ko­lumn. 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 ocze­kiwania (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 parzy­stego (zbocza opadającego).

Architektura pamięci RDRAM obsługuje również wiele jednoczesnych transakcji przeplatanych realizowa­nych 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ów­nież układy RDRAM, wymagają napięcia wynoszącego tylko 2,5 V oraz wykorzystują niskonapięciowe sy­gnał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 do­datkowe 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 ze­staw 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 ozna­czenia modułów RIMM, takie jak PC800, zostały zastąpione przez nazwy identyfikujące rzeczywistą przepu­stowość 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 pa­mięć, 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ło­wą 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 fir­mami, które kwestionują patenty firmy Rambus. Większość z nich jest bliska zakończenia. Więk­szość 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 pa­mięci, która może być zainstalowana w określonym modelu komputera. W ciągu ostatnich lat pamięć kom­puterowa zmieniała się głównie pod dwoma względami — stopniowo stawała się coraz szybsza i dyspono­wał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 pa­mięci RAM o maksymalnej pojemności 1 MB (1024 kB). Procesory 286 i 386SX wyposażone w 24 linie ad­resowe 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 aplika­cji 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 po­zwolić na zakup takiej ilości pamięci, to i tak obecnie dostępne moduły DIMM mają największą pojemność wy­noszą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 przy­padku pełnego wykorzystania pozwalają na zainstalowanie pamięci o pojemności od 1,5 do 3 GB. Ograni­czenie to wynika z zastosowanego chipsetu, a nie procesora. Chociaż niektóre procesory są w stanie zaadre­sować 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 ograni­czone 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 archi­tektury 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 zazwy­czaj 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 na­stę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ż wymia­nę. 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ły­cie 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 wy­miana 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 po­wszechnie 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 za­wiera 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 wyno­szą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 niepra­widłowy. 1-bankowe moduły (niepoprawnie nazywane jednostronnymi) mogą zawierać układy pa­mięci fizycznie umieszczone po ich obu stronach. Z kolei 2-bankowe moduły (niepoprawnie nazy­wane 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 nume­rowane 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 wer­sjach posiadających korekcję błędów ECC. W tym przypadku na każde 8 bitów danych przypada jeden do­datkowy 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

0x08 graphic

Rysunek 6.3. Typowy 72-końcówkowy moduł SIMM

0x08 graphic


Rysunek 6.4. Typowy 168-końcówkowy moduł SDRAM DIMM

0x08 graphic

0x08 graphic
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 wer­sjach o różnych szybkościach. Aby określić poprawną szybkość i typ pamięci obsługiwanych przez uży­waną 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

0x08 graphic

Rysunek 6.7. Typowy 184-końcówkowy moduł RlMM

0x08 graphic

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 szyb­koś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 sys­temowi informacje związane z ich szybkością i ustawieniami dotyczącymi taktowania, dlatego też w więk­szości komputerów kontroler i magistrala pamięci dostosowują się do szybkości najwolniejszego zainstalo­wanego 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 od­bywa 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 dwuka­nałowym, wtedy tworzony jest wirtualny bank, posiadający w porównaniu z magistralą danych pro­cesora 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 wbudo­wana 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 reje­strowe. Moduł buforowany pomiędzy układami pamięci zawiera dodatkowe układy bufora, a także złącze wa­runkują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 bufo­rowanych, 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żli­wiają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ę mo­dułó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 posia­dają 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łu­giwać. 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 pro­dukowanych 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 za­zwyczaj 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 obec­ność 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 wykry­wających, wtedy procedura testująca POST (Power On SelfTest) potrafi określić pojemność i szybkość zain­stalowanych 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 konfigura­cję 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ść mo­duł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ą cza­sami 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 mo­dułó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 prze­chowują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ą na­pię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 uszkodze­nia. 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. Kom­putery firmy Apple i inne systemy niestandardowe mogą być wyposażone w moduły buforowane zasilane na­pię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

0x08 graphic

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

0x08 graphic

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 insta­lacji układu w gnieździe. Wycięcie jest umieszczone po lewej lub prawej stronie albo w środku obszaru znaj­dują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 doprowa­dzić 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 umieszczo­ne 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 mo­duł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 modyfika­cji 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 wy­cię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 odpo­wiadająca napięciu zasilania 2,5 V pokazana na rysunku 6.10 oraz w tabeli 6.19.


Rysunek 6.10.

0x08 graphic
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 przecho­wuje 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 mak­symalnie trzech modułów RIMM. Każdy z modułów zawiera 4, 8, 16 lub więcej urządzeń RDRAM (ukła­dó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 za­mknię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

0x08 graphic

Interesujące jest to, że firma Rambus nie produkuje urządzeń RDRAM (układów) lub modułów RIMM. Za­danie 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 na­nosekundy czyli 133 MHz.

Rysunek 6.12.

0x08 graphic
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 lo­giczną 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 za­wiera dodatkowo również czterocyfrowy numer. Przykładowo numer 0021 określa układ, który został wyko­nany w 21 tygodniu roku 2000. W celu dokładnej identyfikacji układu należy skontaktować się z jego produ­centem 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 po­winno być możliwe rozszyfrowanie dokładnego znaczenia (rysunek 6.13).

Rysunek 6.13.

0x08 graphic
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 stwier­dzić, kto jest producentem modułu DIMM. Na początku podejrzewałem, że jest nim sama firma Hyundai, po­nieważ 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 za­kwalifikowane 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 mak­symalnie 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 cha­rakterystycznej 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 rozpozna­nia posiadanego modułu, jak i uzyskania wielu innych informacji na temat komputera uwzględnia­ją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 posta­ci 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ć jed­nakową 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 odpowia­da 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 instalowa­nie 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ą zale­cane. 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 sys­temach 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 wy­noszą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 sys­temowej. Można również określić rozmieszczenie gniazd pamięci na płycie lub karcie pamięci drogą ekspery­mentu, 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żli­wa, 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 szyb­kich 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 standar­dy 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 fir­mę 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 uzna­nym 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 kom­puterach. 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 sta­bilny system, konieczne jest zainstalowanie modułów z pozłacanymi stykami tylko w gniazdach wyposażo­nych również w takie styki, natomiast modułów wyposażonych w styki pokryte cyną tylko w gniazdach dys­ponują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 kilkakrot­nie w systemach, których sam używam, i w komputerach, którymi zajmowałem się w ramach usług serwiso­wych. 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że­niu 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 prze­prowadzone 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 powsta­nia 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 sa­mym 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 elektrycz­nego 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 utle­nianie 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 dodatko­wych 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 mo­duł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 dysponu­jące stykami zgodnymi ze stykami gniazd. Inne, mniej zalecane rozwiązanie polega na poczekaniu, aż fak­tycznie 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. Prawdo­podobnie 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 pa­rzystoś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 czysz­czenia 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 zmini­malizowane 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 produ­kowanego 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 dys­kó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 uzie­mienia 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 jed­nak 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 pro­ducentó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 sty­ki. 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 zo­stał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 utwar­dzenie wykonanej z niego warstwy ochronnej. Tego typu warstwy nazywane są „twardym zlotem" i charakte­ryzują 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ży­cie 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 mo­dułów DIMM i SIMM opracowanymi przez firmę AMP i dowiedziałem się, że większość gniazd wyposażo­nych w pozłacane styki posiada pokrywę o grubości 0,000030 mikrona umieszczoną w punkcie styku na war­stwie 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 po­krytymi 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 gniaz­dach 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óre­go 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 istot­na 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 przypad­ku 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 najmniej­sza 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, takie­go 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 ulep­szenia 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 powo­dem 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 spo­wodowane 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 in­nych 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 ko­smiczne. 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 po­wstawanie 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). Po­miar, 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 me­trami 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 pro­mieniowania 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 promieniowa­nie 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 pojem­noś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 powsta­wania 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ęk­kich 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ń stwier­dzono też, że błędy miękkie mogą występować raz w miesiącu lub rzadziej, ale także kilka razy w ciągu ty­godnia 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:

Większość wymienionych problemów nie grozi trwałym uszkodzeniem pamięci (chociaż nieprawidłowe na­pię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 pomy­sł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:

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 spe­cjalnej 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ży­cie energii, dzięki zastosowaniu mniejszej ilości układów pamięci DRAM możliwe jest dodatkowe zmniej­szenie 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 pa­mię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 jakiej­kolwiek 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 wy­datku 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 nie­prawidł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, nato­miast ostatni stanowi dodatkowy bit nazywany bitem parzystości {parity bit). Bit parzystości jest wykorzy­stywany 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żyt­kownikiem graficznego systemu operacyjnego, takiego jak Windows lub OS/2, wtedy zazwyczaj błąd parzy­stoś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ąw­szy od roku 1994 na rynku systemów kompatybilnych z IBM PC został zapoczątkowany nowy trend. Więk­szość sprzedawców zaczęła dostarczać komputery pozbawione kontroli parzystości i innych metod umożliwia­ją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ą pa­rzystoś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 poinfor­mować użytkownika o ich wystąpieniu. Z zastosowania kontroli parzystości wynikają dwie korzyści:

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ę pa­rzystoś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łu­gują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 za­chowania 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ą, pozo­stał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. In­stalacja 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 Pen­tium, 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ł za­stosowany 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ółpra­cują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 funk­cji 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 ob­sługuje powyższe funkcje. Z rozdziału 4. dowiesz się, które nowsze chipsety obsługują pamięć z kontrolą pa­rzystoś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 wy­krywa 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 do­dawaniu 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 przy­kł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ą niepa­rzystą (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 doty­czą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:

W powyższym przykładzie yyyyy odpowiada liczbie heksadecymalnej z zakresu od 00000 do FFFFF i wska­zuje 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ą.

0x01 graphic

(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 produko­wanych 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 wykony­wanych 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 ko­nieczne 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. Za­miast 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:

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 parzy­stoś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ż uni­kać nadpisywania poprzednich wersji (nadal poprawnych) dowolnego pliku, ponieważ wskutek błędów pa­mię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 posia­danego 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 bar­dziej 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 pa­mięci umieszczonej na karcie rozszerzającej. BIOS firmy AMI może również wygenerować następujące ko­munikaty 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 nor­malnej 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 zmodyfi­kowanych 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ęk­szość wersji systemu Windows, potrafią wykrywać tego typu błędy, a następnie przy użyciu własnego progra­mu 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 ta­kiego 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 funk­cja 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 pra­cy komputera, tak jakby nic się nie wydarzyło. Takie postępowanie można przyrównać do wykręcenia kon­trolki 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żo­ne w fikcyjne układy pamięci z parzystością. Zamiast rzeczywistych dodatkowych układów pamięci wyma­ganych 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ło­wa 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 ofe­rował 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 pa­rzystości nie przypomina wyglądem układu pamięci i w porównaniu z innymi układami pamięci znajdujący­mi 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 przeprowadzo­nych 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 wykry­wają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 syste­mach 8-bajtowych (64-bitowych) wyposażonych w procesor Pentium lub Athlon koszt obu funkcji jest porów­nywalny. 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ła­dy 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 wyma­gana 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 szyb­kie 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 pa­mięci. Wynika to z konieczności wstrzymania wykonywania operacji i poczekania na obliczenie bitów kon­trolnych. 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 mak­symalnie 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ęć ob­sł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 po­ziomu 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 wydaj­ności komputera.

W następnych podrozdziałach zostaną omówione zagadnienia związane z dodawaniem pamięci, doborem od­powiednich 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 roz­działu cena pamięci spadła do około 40 groszy za megabajt lub nawet mniej. Niewielka ilość dodatkowej pa­mię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 wymienio­nych w kolejności łatwości wykonania operacji i jej kosztu:

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 do­branie 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 operacyj­nym (np. OS/2. Windows 9x, Windows NT, Windows 2000 lub Linux) do kwoty, jaką jesteś w stanie przezna­czyć 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 dokumenta­cji 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 tech­nicznego, 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 znaj­duje 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 mak­symalnej 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 pojem­noś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 wydaj­noś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, nato­miast 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. Zasadni­czo posiadają lepszy „rodowód", a poza tym zazwyczaj gwarantują wyższąjakość. Nie trzeba chyba wspomi­nać, ż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śred­nika 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:

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 kompu­terach 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 za­glą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:

Aktualnie moduły DIMM dostępne są w wersji SDR (Single Data Rate) lub DDR (Double Data Rate). W now­szych 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, po­winno 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 po­zbawione 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 zain­stalować 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 zni­komym 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 wy­padku wersja CL2 jest szybsza i lepsza. Chociaż istnieje możliwość mieszania ze sobą modułów DIMM ofe­rujących różne wartości opóźnienia CAS, to jednak wtedy zazwyczaj system domyślnie dostosowuje takto­wanie 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:

Moduły RIMM dostępne są w wersji 184- i 232-końcówkowej. Pomimo to, że pod względem wymiarów wy­dają 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 dys­ponujesz płytą główną wyposażoną w dwa gniazda modułów DIMM (każdy moduł stanowi jeden bank w przy­padku 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 po­jemnoś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 insta­lacji 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. Wspo­mniano 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:

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 do­tknię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 elektro­nicznymi. 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 gwaran­tuje, ż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łębie­nia 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 za­pisać 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 na­rzędzi systemowych. W celu uzyskania większej ilości informacji na temat aplikacji testujących należy zaj­rzeć 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 (ry­sunek 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


0x08 graphic

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


0x08 graphic

Instalowanie modułów DIMM i RIMM

W podobny sposób moduły DIMM i RIMM wyposażone są w odpowiednie wycięcia umieszczone przy kra­wę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).


0x08 graphic
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 utrzy­mywany 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 jed­nak wykorzystywane są inne gniazda. Umieszczone po obu stronach gniazda dźwignie zwalniające są do sie­bie 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ż mo­dułó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 ry­sunkiem 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ść przy­padkowy przebieg, dlatego też często sprawiają wrażenie problemów dotyczących innych komponentów sys­temu, a nawet oprogramowania. W tym podrozdziale zostaną przedstawione podstawowe czynności diagno­styczne, 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 przeznaczo­nych do tego celu programów diagnostycznych. Prawdopodobnie nawet nie wiesz, że już posiadasz kilka ta­kich aplikacji. W BlOS-ie każdej płyty głównej znajduje się procedura testująca POST uruchamiana każdora­zowo 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 pro­gramó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 pojem­ność. Uzyskana wartość jest porównywana z pojemnością, która została określona przy ostatnim uruchomie­niu programu BIOS Setup. Jeśli obie wartości się różnią, wtedy generowany jest komunikat błędu. W następ­nej 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 kry­tycznych, 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. Proce­dura 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 ty­pu 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 mo­duł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ę infor­mację 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 zazwy­czaj objawiają się w postaci wyświetlanych komunikatów. Do najczęstszych błędów pamięci należy zaliczyć:

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 te­stów pamięci skutecznie są unieważniane, ponieważ większość systemów dysponuje pamięcią podręczną pra­cującą w trybie write-back. Oznacza to, że zanim dane zostaną zapisane do pamięci RAM, najpierw są umiesz­czane 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 na­rzę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ż powo­du przed rozpoczęciem testowania pamięci przy użyciu dowolnego programu diagnostycznego należy upew­nić 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 spraw­dzona pamięć RAM, a nie pamięć podręczna.

Wykonanie poniższych kroków pozwala na skuteczne przeprowadzenie testu pamięci RAM i usunięcie zaist­niał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.

  1. 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.

  2. 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.

  3. 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.

  1. 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.

  2. 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.

0x08 graphic
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 diagno­styczny 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ą

0x08 graphic

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.

  1. 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ć.

  2. 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.

  3. 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 no­szą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 pa­mię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 pra­cy 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śla­nym mianem trybu rzeczywistego. Pierwsze modele procesorów dysponowały liniami adresowymi, które po­zwalały na zaadresowanie maksymalnie 1 MB pamięci, przy czym ostatnie 384 kB z tego obszaru zostało za­rezerwowane 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 maksymal­nie 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), archi­tektura pamięci uległa radykalnej zmianie. Tego typu procesory zawierały wystarczającą ilość linii adreso­wych, 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 in­strukcji 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 cze­kać aż 10 lat na możliwość korzystania z 32-bitowego systemu operacyjnego i programów, co jest potwier­dzeniem 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 odmien­nych trybach korzystających z innej architektury pamięci. Dla utrzymania zgodności wstecz procesory 32-bi­towe 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 pa­mię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 kom­putera PC rozpoczynają pracę w 16-bitowym trybie rzeczywistym. Po załadowaniu 32-bitowego systemu ope­racyjnego, 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 sys­temie 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 trak­cie 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 za­zwyczaj 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ę Uru­chom 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 ste­rownika. W trybie rzeczywistym możliwe jest partycjonowanie i formatowanie dysku twardego, instalowanie systemu Windows lub przeprowadzenie pełnego testu komputera. Wersja instalacyjna OEM systemu Win­dows 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ży­ciu 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 okreso­wych testów przy użyciu narzędzi diagnostycznych bezpośrednio komunikujących się z urządzeniami, wyko­nania 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 ste­rowniki 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 te­go, czy została uruchomiona 16- czy 32-bitowa aplikacja. Jednak w przypadku 16-bitowego trybu rzeczywi­stego ograniczenia w dostępie do pamięci są znacznie poważniejsze. Ze względu na to, że większość osób ko­rzysta 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 jedna­kowa niezależnie od typu używanego systemu operacyjnego. Jedyne co się zmienia, związane jest ze sposo­bem 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 now­szych komputerach PC. Należy do nich zaliczyć:

Na rysunku 6.19 przedstawiono położenie adresów logicznych systemu 16-bitowego lub nowszego. W przy­padku, gdy procesor pracuje w trybie rzeczywistym, dostępny jest tylko pierwszy megabajt. Jeśli natomiast pro­cesor 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.


0x08 graphic

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 zapisy­wać 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ć progra­my działające pod kontrolą systemu DOS. Często obszar ten kojarzony jest z granicą dostępnej pamięci. Po­został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

0x08 graphic


Ustanowiona granica pamięci wynosząca 640 kB w znacznym stopniu ma wptyw na 16-bitowe systemy ope­racyjne 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ą ad­resy z zakresu od A0000 do FFFFF. Pamięć górna została podzielona na następujące segmenty:

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ęć zarezer­wowaną, 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 re­zydentnym (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 ograni­czeń ł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 nie­któ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 gra­ficznych 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 pa­mię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 przestrze­ni 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 gra­ficzne 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 zapotrzebo­wanie 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 pa­mięci RAM karty.

W przypadku standardowej mapy pamięci komputera cały obszar 128 kB zarezerwowany jest przez kartę gra­ficzną, która po przełączeniu w zwykły tryb VGA umieszcza w nim aktualnie wyświetlane dane. Zarezerwo­wany obszar pamięci zajmuje segment A000 i B000. Zawartość układu ROM karty graficznej korzysta z do­datkowego 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 zastosowa­niu przestarzałych kart graficznych takich jak MDA i CGA system DOS uzyskuje dostęp do obsza­ró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 gniaz­dach 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.

0x08 graphic
Mapa pamięci karty graficznej VGA


Z pewnością zauważyłeś, że typowa karta graficzna VGA do przechowywania kodu sterowników umieszczo­nych we wbudowanym układzie ROM wykorzystuje pełne 32 kB pamięci. Niektóre tego typu karty mogą zaj­mować 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 zinte­growana z jej chipsetem. W lego typu systemach, nawet pomimo to, że BIOS karty graficznej lub płyty głów­nej 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 przypad­kach 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 aktualiza­cja 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 dys­kó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 ob­szaró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 pa­mięci UMA sterowniki urządzeń i programy rezydentne.

Aby skutecznie wykorzystać pamięć RAM na potrzeby określonej karty, należy zajrzeć do dołączonej doku­mentacji. 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 sys­tem 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 gra­ficzne (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 aktu­alnie 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 za­warto 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. Wyni­ka to stąd, że adres ten jest uważany za część standardu ustanowionego przez firmę IBM i dotyczącego pa­mię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ślo­nych 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 in­ną 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

0x08 graphic

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:

Układ IPL ROM, przeważnie mający pojemność 8 kB, zawiera program ładujący, który pozwala na inicjali­zację 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 znaj­dują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 oka­zał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 pa­mięci współdzielonej do wysyłania i odbierania danych korzystały z kanałów DMA lub transferów progra­mowanych 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 pa­mięć UMA. W przypadku bardzo wydajnych kart sieciowych stosowana jest pamięć współdzielona. W więk­szoś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 wie­lokrotnoś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 standar­dowych poleceń transferu PIO, natomiast nie używają one pamięci współdzielonej tak jak karty Token-Ring.


Rysunek 6.22.

0x08 graphic
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ęk­szość 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 przy­padku 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 uzyska­nia jak największej ilości wolnej pamięci i maksymalnej wydajności możesz spróbować dokonać ręcznej opty­malizacji 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 za­warty 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 zarezerwo­wane 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 adre­sami, 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 seg­mentem 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 obsza­ró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 wykorzysta­nia 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 syste­mów 16-bitowych lub nowszych.


Rysunek 6.23.

Wykorzystanie pamięci BIOS płyty głównej w większości systemów


0x08 graphic

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 przekra­cza 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, ob­sł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 proceso­rowi 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 ofe­rowana jedynie przez serwerowe systemy operacyjne, takie jak Windows 2000 i nowsze w wer­sjach 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 praco­wać 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 wiel­kości 1 MB (z każdym związana jest niezależna sesja trybu rzeczywistego). Wirtualny tryb rzeczywisty po­zwala 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 śro­dowisko pracy trybu rzeczywistego łącznie z BłOS-em i pamięcią UMA. Aby w wirtualnym trybie rzeczywi­stym 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 oddziela­jącego je od siebie (w celu uniknięcia wskutek błędu w jednym zawieszenia pozostałych). Zadanie to jest re­alizowane 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ą kom­patybilność 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 po­czą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 jedno­cześ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 now­szych i dzięki niej możliwe jest przydzielanie programom trybu rzeczywistego (działającym pod kontrolą sys­temu 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 pro­gram 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 przejmu­je całą pamięć powyżej pierwszego megabajta, a następnie przydziela ją programom opierającym się na pro­tokoł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 zapobie­gają 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 Win­dows 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 sterow­nikiem pamięci XMS jest HIMEM.SYS, który został dołączony do systemu Windows 3.x i systemu DOS po­czą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ść skonfiguro­wania 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 mo­dyfikacji 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 parame­tró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 takie­go 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 Win­dows 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 podej­mowania decyzji o zakupie kolejnej karty. Nowe karty muszą dysponować możliwością konfiguracji dopa­sowanej 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 pa­mię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 przenie­sienia 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-bitowe­go 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 szyb­szej 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 konwen­cjonalnej i pamięci XMS, wtedy stwierdzisz, że nie jest to tylko pojedyncza liczba określająca całkowitą po­jemność 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 kompu­tera 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 sa­mego adresu pamięci. Oznacza to, że obszar wielkości 384 kB pierwszego banku pamięci komputera znajdo­wał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 przeciw­nym 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:

♦ 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 prze­niesienie 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 przesta­nie działać. Z tego samego powodu nie wolno cieniować pamięci RAM zajmującej obszar o adre­sach 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 elemen­ty. 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ść pa­mię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 prze­nosi 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 za­wartość pamięci BIOS płyty głównej (64 kB w zakresie adresów od F0000 do FFFFF) oraz BIOS-u karty gra­ficznej (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 ad­resó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 zainstalo­wanym 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ę pozo­stawienie 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ąć kon­fliktó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ą:

Najprostszym sposobem (chociaż nie zawsze niezawodnym) zlokalizowania obszarów pamięci górnej wykorzy­stywanych 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ć pro­gram 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 kom­putera, 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 zidentyfikowa­nie 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ą ope­racją 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:

  1. Określ adresy pamięci górnej aktualne używane przez karty, a następnie je zapisz.

  2. Sprawdź, czy jakiekolwiek adresy wzajemnie się pokrywają, a tym samym wywołują konflikt.

  3. 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.

  4. 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. nato­miast 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 kom­patybilne 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 — za­awansowana 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 chcie­libyś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 kom­puteró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 za­ró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 kom­puteró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 inter­fejsów w różnym stopniu ograniczają szybkość przesyłu danych z dysku do systemu i oferują różnorodne do­datkowe funkcje i poziomy wydajności. Jeżeli projektujesz system, w którym wymagana jest duża wydaj­ność, 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ą rze­czywistej 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ów­noległ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żywa­jąc tego określenia, mamy na myśli specyficzną wersję IDE o nazwie ATA. Niezależnie od nazwy, połącze­nie 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 bar­dziej 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 nieza­wodność 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 analo­gową 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 pozwa­lają 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śniejsze­go 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 kontrole­ra. 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ąsied­nich 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:

Z wymienionych rozwiązań w chwili obecnej wykorzystywane sąjedynie warianty interfejsów ATA i Se­rial 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 obwo­du, 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 zo­stał 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 inter­fejsu, które jednak nie było z nim zgodne. Zarówno interfejs MCA, jak i XT IDE nie zdobyły dużej popular­noś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 kom­puterach 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. Nie­kiedy 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, po­nieważ 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. Do­datkowe 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.

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 stan­daryzacji ANSI, który razem z producentami dysków uzupełnił braki w standardzie i opublikował dokumen­tację interfejsu CAM ATA (ang. Common Access Method AT Attachment). Komitet CAM został zorganizo­wany 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 inter­fejsu 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 wy­eliminować 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.

0x01 graphic



Wyszukiwarka

Podobne podstrony:
501 600
06 pyt od 501 do 600
Esteron 600 EC
501
by233 600
501 Sentence Completion Questions
07 STUDNIAK str 501 511id 6980 Nieznany (2)
501 - Kod ramki - szablon(1), ❀KODY RAMEK I INNE, Ramki
zadanie 501-mala elektrociepłownia (2), gospodarka energią, zadania
Testy PytaniaP1 600 (czyste)
600
ĆWICZENIE 501, MIBM WIP PW, fizyka 2, laborki fiza(2), 50-Charakterystyka licznika Geigera-Mullera i
Zobowiązania, ART 600 KC, V CSK 43/09 - postanowienie z dnia 9 września 2009 r
501 id 41999 Nieznany (2)
K 501
501
501
501, 501JANEK, Sprawozdanie z wykonanego ˙wiczenia nr 501

więcej podobnych podstron