Forum komputerowe OC-Community obejmuje swoją tematyką sprzęt komputerowy i jego podkręcanie. U nas też znajdziesz najnowsze nowinki techniczne ze świata IT. Doradzimy Ci, który hardware i software jest dedykowany dla Ciebie. Zobaczysz, że Twój sprzęt i oprogramowanie możesz sam naprawić. Wahasz się między Phenom X4, a Intel Core i7? Nvidia GeForce GTX 570 czy AMD Radeon HD6850? My Ci pomożemy! Powiemy Ci jak podkręcić procesor albo dlaczego karta graficzna nie działa. Z nami overclocking nie jest trudny! Zobacz, że i Ty możesz być Overclockerem!

Regulamin forum 'FAQ i poradniki'

1. Zabronione jest wrzucanie tutaj jakichkolwiek artykułów bez uprzedniego zatwierdzenia. W tym celu proszę swoje propozycje wrzucać w TYM TEMACIE.
2. Kategorycznie zabrania się nawet proponowania artykułów oznaczonych jako plagiat, można jedynie umieszczać artykuły własnego autorstwa.
3. Komentowanie w tym dziale jest zabronione, w tym celu należy stworzyć własny temat w dziale OC-COMMUNITY (Dostępny po zarejestrowaniu).
4. Poradniki oraz FAQ-i umieszczone w tym dziale są własnością ich autorów zgodnie z ustawą z dnia 4 lutego 1994 roku o prawie autorskim i prawach pokrewnych. Publikowanie ich na innych forach i serwisach internetowych bez wiedzy i zgody autorów jest surowo zabronione. Chyba, że w artykule zaznaczono inaczej.
5. ...

w budowie...
Strona 1 z 1

Pamięci w naszym komputerze DDR, GDDR, ECC i kilka innych literek
  • Nie możesz napisać tematu
  • Nie możesz odpowiedzieć
Oceń temat: ***** 2 głosy

  • oc-averaged
  • Forum komputerowe
  • Postów 110
  • Rejestracja wto, 09.06.09

#1 Użytkownik jest zalogowany   janek  Napisano 09 czerwiec 2009 - 16:51

Każdy z nas zapewne wie czym jest pamięć. Jednak podczas rozmów o rodzajach pamięci często używa się skrótów i oznaczeń, które mogą czasem wprawić w zakłopotanie. Postaram się więc nieco przybliżyć takie oznaczenia jak: RAM, DDR, DDR2, GDDR, CACHE, EEPROM. Czym są i co oznaczają? Na to pytanie postaram się w jakimś stopniu odpowiedzieć.

Czym jest pamięć operacyjna komputera?
Czym tak naprawdę jest technologia DDR?
Taktowanie rzeczywiste i efektywne
Jakie są różnice między DDR, DDR2 i DDR3?
Czym są timingi?
JEDEC
Oznaczenia pamięci RAM
Dual Channel DDR
ECC
W takim razie czym jest GDDR?
Czym jest szyna danych?
Przepustowość pamięci GDDR
Dlaczego akurat 256 bit a nie 250 lub 200?
Czas dostępu do pamięci
CACHE
EEPROM


Czym jest pamięć operacyjna komputera?
Każdy użytkownik komputera zapewne się z tą częścią spotkał. W komputerach PC wykorzystywane są m.in. moduły pamięci RAM (Random Access Memory) czyli pamięć o dostępie swobodnym. Jest to tzw. Pamięć operacyjna komputera, której są przechowywane dane potrzebne do działanie aplikacji. Niestety wadą tej technologii, w przeciwieństwie do pamięci ROM (Read Only Memory), jest całkowita utrata danych w niej przechowywanych w chwili zaniku napięcia zasilania.
Podczas konstruowania modułów pamięci RAM dla komputera główny nacisk kładziony jest na jej szybkość i wydajność. Jest to bowiem jeden z elementów naszego komputera, który bezpośrednio wpływa na wydajność całej jednostki. W trakcie wielu lat rozwoju modułów pamięci wprowadzano nowe technologie i dodawano nowe przedrostki do ich nazewnictwa:
  • DIP (Dual Inline Package),
  • SIPP (Single Inline Pin Package),
  • SIMM (Single Inline Memory Module),
  • SDR SDRAM (Single Data Rate Synchronous Dynamic Random Access Memory),
  • DDR SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory).
Obecnie na rynku królują pamięci typu DDR i ich ewolucje w postaci DDR2 i DDR3.

Czym tak naprawdę jest technologia DDR?
DDR to następca modułów SDR. Podstawową różnicą nowszych modułów jest możliwość wyzwalania pamięci zarówno na zboczu narastającym sygnału taktującego jak i na zboczu opadającym (Double Data Rate). Oznacza to, że w trakcie jednego okresu T sygnału taktującego pamięć jest wyzwalana dwukrotnie.

Taktowanie rzeczywiste i efektywne
Z technologią DDR wiąże jeszcze termin "taktowanie rzeczywiste i efektywne". Taktowanie rzeczywiste to w praktyce częstotliwość zegara, który taktuje układy pamięci. Jako, że układy DDR są wyzwalane dwukrotnie w czasie jednego cyklu zegara, efektywnie są one taktowane częstotliwością dwukrotnie większą niż częstotliwość zegara. Przykładowo pamięci o taktowaniu rzeczywistym 200 MHz mają taktowanie efektywne na poziomie 400 MHz. Rozwiązanie takie ma bezpośredni wpływ na wydajność całego systemu.

Dołączona grafika


f = 1 / T
T" = T / 2

f - częstotliwość sygnału
T - okres sygnału

Jakie są różnice między DDR, DDR2 i DDR3?
  • W celu wyeliminowania błędów powstających w wyniku transmisji odbitych sygnałów, układy terminujące zostały przeniesione z płyty głównej na kość pamięci.
  • DDR2 przesyła 4 bity w ciągu jednego taktu zegara a DDR tylko 2.
  • Liczba styków kości DDR2 została zwiększona ze 184 do 240.
  • Pamięci DDR3 wykonano w procesie technologicznym 90nm co umożliwiło obniżenie napięcia zasilania i poboru mocy (2,5V - DDR; 1,8V - DDR2; 1,5V - DDR3).
Pamięci DDR2 pracują nawet z trzykrotnie wyższymi częstotliwościami w porównaniu do zwykłych pamięci DDR. Niestety wyższe częstotliwości wymuszają stosowanie dłuższych opóźnień czyli tzw. timingów.

Czym są timingi?
Timingi to najzwyczajniej w świecie opóźnienia pamięci. Wartości czasowe potrzebne modułom pamięci na wykonanie odpowiednich operacji. Logicznym wydaje się więc stwierdzenie, iż im krótsze opóźnienia tym wyższa wydajność pamięci. Niestety wszystko ma swoje granice i fizyki nie przeskoczymy. Wyższe taktowanie pamięci wymaga ustawienia wyższych wartości opóźnień. Cała sztuczka polega na tym aby znaleźć złoty środek pomiędzy taktowaniem pamięci a opóźnieniami.
Poniżej cztery główne timingi w największym stopniu decydujące o wydajności układu pamięci:
  • CAS latency (Cl) : czas pomiędzy wysłaniem przez kontroler pamięci żądania odczytu miejsca pamięci a przesłaniem odczytanych danych dalej.
  • tRCD : określa liczbę taktów zegara wymaganych po wykonaniu polecenia CAS i zlokalizowaniu w ten sposób potrzebnej kolumny, do wykonania ładowania RAS.
  • tRP - określa liczbę taktów zegara potrzebnych do przywrócenia danym ich pierwotnej lokalizacji, zamknięcia banku. Determinuje liczbę cykli wymaganych do stronicowania pamięci przed wykonaniem kolejnego polecenia aktywacji banku.
  • tRAS - określa ilość cykli zegara wymaganych do wykonania komendy aktywacji jednego z banków pamięci, zanim zostanie załadowany adres wiersza.
Dołączona grafika
(zrzut z programu CPU-Z)


Obecnie wydajne układy pamięci DDR2 potrafią pracować z częstotliwością 800 MHz (DDR) i opóźnieniami 4-4-4-12 (tCl, tRCD, tRP, tRAS).
Jeśli chodzi o ustalanie wartości Timingów to istnieje zasada, że wartość tRAS powinna być większa od sumy wartości tCl i tRCD.

JEDEC
Ustalaniem standardów ustawień timingów i napięć dla kości pamięci zajmuje się właśnie stowarzyszenie producentów JEDEC (Joint Electron Device Engineering Council). To właśnie normy wprowadzone przez tą organizację nie pozwalają producentom sprzedawać pamięci o zbyt wysokim napięciu zasilania. Pewnie spotkaliście się z sytuacją kiedy na pudełku były podane Timingi rzędu 4-4-4-12 i napięcie 1.9V a po zainstalowaniu w komputerze pamięci pracowały z Timingami 5-5-5-15 na napięciu 1.8V. Jest to właśnie efekt wprowadzenia standardów JEDEC. Według tych norm kości DDR2 powinny pracować na napięciu 1.8V i pod to napięcie są ustalane Timingi i taktowanie. Oczywiście liczący się producenci nie zabraniają samodzielnego podnoszenia napięcia i skracania Timingów w granicach zdrowego rozsądku.

Oznaczenia pamięci RAM
Zastosowane na kościach pamięci oznaczenie wynikają z teoretycznej przepustowości tych układów. Przepustowość pojedynczej kości możemy w łatwy sposób wyliczyć ze wzoru:

( 64 bity * częstotliwość pracy w MHz * 2 ) / 8


Przykładowo dla kości o rzeczywistym taktowaniu 200 MHz:

(64 * 200 * 2 ) / 8 = 3200 MB/s


Oznaczenia pamięci dostępnych na rynku :
  • 333 MHz (PC 2700)
  • 400 MHz (PC 3200)
  • 433 MHz (PC 3500)
  • 466 MHz (PC 3700)
  • 533 MHz (PC2 4200)
  • 667 MHz (PC2 5300)
  • 800 MHz (PC2 6400)
  • 900 MHz (PC2 7200)
  • 1000 MHz (PC2 8000)
  • 1066 MHz (PC2 8500)
  • 1333 MHz (PC3 10600) 10,6 GB/s
  • 1600 MHz (PC3 12800) 12,7 GB/s
  • 1866 MHz (PC3 15000) 15 GB/s
  • 2133 MHz (PC3 16000) 16 GB/s

PC - DDR
PC2 - DDR2
PC3 - DDR3

Dual Channel DDR
Technologia stosowana w płytach głównych i procesorach do zwiększenia ilości wymienianych informacji między układami pamięci RAM a procesorem. Technologia ta wykorzystuje dwa 64-bitowe kanały do komunikacji procesora z pamięcią co daje w efekcie kanał o szerokości 128 bitów i podwojenie ilości przesyłanych danych.

Dołączona grafika


Wymaga to umieszczenia kości pamięci parami w skorelowanych ze sobą w pary gniazdach (bankach) oznaczonych z reguły jednakowymi kolorami.

Dołączona grafika
(banki pamięci połączone w pary)


W przypadku starszych konstrukcji platform kontrolery pamięci znajdowały się w mostkach północnych (Northbridge), które były pomostami pomiędzy procesorem a układami pamięci. Obecnie AMD z powodzeniem stosuje już kontrolery pamięci zintegrowane z rdzeniem procesora nad czym pracuje także Intel.
W niedalekiej przyszłości planowane jest wprowadzenie na rynek procesorów komunikujących się z pamięcią za pośrednictwem kanału szerokości 192 bitów.

ECC
Jest to technologia stosowana przy budowie pamięci RAM z przeznaczeniem głównie dla serwerów, gdzie główny nacisk kładziony jest na stabilność i bezbłędne działanie systemu. Pamięci ECC wyposażone są w funkcję korekcji błędów (Error Correction Code). Dzięki rozszerzeniu szyny danych oprócz podstawowych danych przesyłane są także kody kontrolne. Rozwiązanie takie pozwala monitorować poprawność przesyłanych danych i w razie wykrycia błędu skorygować je. Dla poprawnego działania tego systemu konieczne jest zaimplementowanie tej technologii chipsecie płyty jak i BIOS-ie. Niestety wadą takiego rozwiązania jest niewielki spadek wydajności całego systemu, który może sięgnąć do 2%.

W takim razie czym jest GDDR?
GDDR to specjalny rodzaj pamięci typu DDR dedykowany do kart graficznych (Graphics Double Data Rate). Wysoce wydajne układy pamięci wspomagające pracę kart graficznych i przechowujące dane niezbędne do wygenerowania sceny 3D. Na rynku mamy obecnie pięć generacji tego rodzaju pamięci: od GDDR do wprowadzanych właśnie GDDR5. Każda kolejna odsłona tego standardu niesie za sobą zmniejszony proces technologiczny, krótszy czas dostępu do pamięci i zwiększoną przepustowość układu. Za wydajność systemu pamięci na karcie graficznej nie odpowiada jednak jedynie generacja zastosowanych do jej budowy kości. Dochodzi jeszcze czynnik zwany szerokością szyny danych (interfejsem).

Czym jest szyna danych?
Jest to nic innego jak wielkość "paczki" jaka jest jednorazowo przesyłana z pamięci do układu graficznego GPU (Graphics Process Unit). Jak pewnie się domyślacie im większa paczka i im szybciej jest przesyłana tym większa wydajność pamięci. Jest to jak najbardziej prawdą. Starsze karty graficzne opierały się na szynie danych szerokości 64 bit. Obecnie technologia pozwala wyposażyć kartę w szynę o szerokości nawet 512 bit. Niestety jest do dosyć drogie i skomplikowane rozwiązanie dlatego wciąż najpopularniejsze są szyny o szerokości 128 i 256 bit. Jest to dosyć tanie i w połączeniu z nowoczesnymi układami pamięci GDDR, wydajne rozwiązanie. Warto bowiem czasem zrezygnować z szerszej szyny na rzecz wyższego taktowania ze względu na krótszy czas dostępu do pamięci. Okazuje się bowiem, że pamięci o taktowaniu na poziomie 1000 MHz i połączone z GPU 256 bitową szyną danych mogą mieć taką samą przepustowość co pamięci taktowane na poziomie 2000 MHz i połączone z GPU szyną o szerokości 128 bitów. Jednak w drugim przypadku sam czas oczekiwania GPU na przesłanie jakiejś paczki może być mniejszy i tym samym efektywność pracy całego układu GPU - pamięć może być wyższa.

Przepustowość pamięci GDDR
Przepustowość pamięci na karcie graficznej jest wprost proporcjonalna do szerokości szyny danych i do częstotliwości taktowania układów pamięci. Zależność tą opisuje wzór:

B = ( szerokość szyny * efektywna częstotliwość pracy ) / (8 * 1024^3) [GB/s]


B - przepustowość pamięci

Przykładowo dla karty wyposażonej w pamięci taktowane na poziomie 1746 MHz i 128 bitową szynę przepustowość wynosi:

B = ( 128 * 1746000000 ) / ( 8 * 1024^3 )
B = 26 GB/s


Dołączona grafika
(zrzut z programu GPU-Z)


Pewnie się zastanawiacie dlaczego otrzymaliśmy wynik rzędu 26 GB/s skoro program pokazuje 27.9 GB/s. Różnica wynika z faktu, iż 1GB to w rzeczywistości 1024MB a nie 1000MB a 1MB to 1024kB a nie 1000kB.
Jeśli powyższy wzór zapiszemy w postaci:

B = ( szerokość szyny * efektywna częstotliwość pracy ) / (8 * 1000^3) [GB/s]


Otrzymamy wynik zgodny z tym co pokazuje program.

Dlaczego akurat 256 bit a nie 250 lub 200?
Zbudowanie 256 bitowego kontrolera wymaga w rzeczywistości zaprzęgnięcia do pracy czterech 64-ro bitowych kontrolerów pamięci. Każdy z nich odpowiada za komunikację z np. dwiema kośćmi pamięci. Przykładowo karta wyposażona w 256MB pamięci i 256 bitową szynę danych, będzie korzystać z czterech kontrolerów pamięci a co za tym idzie, ośmiu kości pamięci po 32 MB każda.
Analogicznie sprawa wygląda w przypadku chociażby GF 8800 GTS (G80). Karta została wyposażona w 320 bitowy interfejs co oznacza użycie pięciu 64-ro bitowych kontrolerów pamięci i dziesięciu kości pamięci po 32 lub 64 MB w zależności od wersji karty (320 lub 640 MB).

Dołączona grafika


Czas dostępu do pamięci
Jest to główne ograniczenie kości pamięci a zarazem wyznacznik ich jakości. Odpowiada za maksymalną częstotliwość z jaką kość może stabilnie pracować. Im krótszy czas dostępu tym możliwe taktowanie jest wyższe. Zależność tą opisuje wzór:

f = ( 1000 / t ) * 2


f - teoretyczna maksymalna częstotliwość pracy
t - czas dostępu do pamięci w nanosekundach (10^-9s)
2 - w przypadku kości typu DDR wyznacza taktowanie efektywne (1 w przypadku obliczania taktowania rzeczywistego)

Przykładowo dla kości o czasie dostępu 1.2ns (nanosekundy) teoretyczna maksymalna rzeczywista częstotliwość pracy wynosi 833 MHz a efektywna 1666 MHz.

f = ( 1000 / 1.2 ) * 2
f = 1666 MHz


Dlaczego napisałem, że to wartości teoretyczne? Podczas wytwarzania wszelkich układów producenci stosują pewien margines bezpieczeństwa. Kość o czasie dostępu na poziomie 1.2 ns musi stabilnie pracować z częstotliwością 1666 MHz. Dla zapewnienia jej tej stabilności w każdych warunkach, sama kość powinna wykazywać możliwość pracy przy nieco wyższych taktowaniach. W efekcie może się okazać, że kość, która powinna pracować z częstotliwością 1666 MHz potrafi stabilnie działać przy taktowaniu nawet 1750 MHz.
Druga istotna kwestia to napięcie zasilania. Okazuje się, iż nawet niewielkie zwiększenie napięcia na układzie pamięci może zwiększyć próg stabilnej pracy o kilkanaście/kilkadziesiąt MHz.

CACHE
Jest to tzw. pamięć podręczna. Wykorzystywana m.in. w takich komponentach naszego komputera jak: procesory czy dyski twarde. W przypadku procesorów jest to bardzo szybka pamięć o krótkim czasie dostępu (Cache L1, L2, L3). Przechowywane są w niej tylko informacje, które za chwilę będę przetwarzane przez procesor. Takie rozwiązanie znacznie usprawnia pracę procesora gdyż ciągłe odwoływanie się do znacznie wolniejszej pamięci RAM drastycznie zmniejszyło by szybkość wykonywania obliczeń. Niestety możliwości zaimplementowania w procesorze pamięci są ograniczone. Miniaturyzacja tranzystorów pozwala umieszczać w procesorze coraz większe ilości pamięci podręcznej jednak wszystko ma swoje granice i w pamięci Cache mogą być przechowywane tylko te informacje, które są potrzebne do wykonania następnych obliczeń. Tutaj pojawia się problem wybrania takich danych, które są w obecnej chwili najbardziej potrzebne. Wprowadzono więc pojęcie "temperatury danych" czyli prawdopodobieństwa, że dana informacje będzie za chwilę wykorzystana. O obiektach, wobec których jest bardzo duże prawdopodobieństwo, że będą zaraz wykorzystane, mówi się, że "mają wysoką temperaturę". Cała magia teraz polega na tym aby w pamięci podręcznej przechowywać tylko dane o najwyższej temperaturze. Jako że temperatura obiektu nie jest znana należy ją oszacować. Jeśli np. obiekt był ostatnio wywołany to jest spore prawdopodobieństwo, iż będzie on wywołany jeszcze raz za chwilę albo będą wywołane obiekty "leżące blisko niego" (lokalność czasowa i przestrzenna).

Pamięć Cache obowiązują podobne zasady co pamięć RAM. Też posiada opóźnienia, które bezpośrednio wpływają na jej wydajność.

Dołączona grafika
(Test opóźnień dla Opterona 165.)


Różnica wydajności spowodowana opóźnieniami pamięci Cache jest bardzo dobrze widoczna w przypadku porównania procesorów AMD opartych na rdzeniach Windsor (12 cykli) oraz Brisbane (20 cykli). Oczywiście w tym starciu wygrywa Windsor.

EEPROM (Electrically Erasable Programmable Read Only Memory)
Jest to pamięć o charakterze nieulotnym. W komputerach służy do przechowywania BIOS-u np. na płycie głównej czy karcie graficznej. Pozwala na wykasowanie zawartych w niej informacji i wpisanie nowych bez konieczności używania do tego specjalistycznego sprzętu.

Mam nadzieję, że w jakimś stopniu przybliżyłem Wam zagadnienie pamięci w naszych PC-tach. W razie niejasności proszę pytać na forum. Ze swojej strony mogę zapewnić, że powyższy artykuł będę starał się w miarę możliwości nadal rozwijać.

Użytkownik janek edytował ten post 25 marzec 2012 - 18:56

1

Strona 1 z 1
  • Nie możesz napisać tematu
  • Nie możesz odpowiedzieć

Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych


Partnerem forum jest firma Lapkop prowadząca profesjonalny serwis laptopów - dla forumowiczów 5% rabatu na usługi :-)