Synchroniczna pamięć DRAM lub SDRAM to obecny standard pamięci DRAM. Jego głównym zastosowaniem jest pamięć systemowa RAM, chociaż jest również używana w pamięci VRAM na kartach graficznych i wszędzie tam, gdzie używana jest pamięć DRAM. Jest tak dominujący w swojej dziedzinie, że „S” jest zwykle pomijane i jest po prostu określane jako DRAM. Synchronizacja SDRAM-u ma kluczowe znaczenie dla jego wydajności i odegrała kluczową rolę w jego rozwoju w stosunku do swojego poprzednika, asynchronicznej pamięci DRAM.
Praca w synchronizacji
Synchroniczny odnosi się do faktu, że SDRAM ma wewnętrzny zegar, a prędkość zegara jest znana systemowi. Nie oznacza to, że działa z taką samą częstotliwością zegara jak procesor. Ale ma wewnętrzny zegar i procesor o tym wie. Pozwala to zoptymalizować interakcje z pamięcią RAM, tak aby magistrala we/wy była w pełni wykorzystana, a nie pozostawiona w stanie bezczynności, aby żadne polecenia nie zakłócały innych poleceń.
Częścią problemu jest to, że podczas zapisywania danych do pamięci DRAM. Dane muszą być podane jednocześnie jako polecenie zapisu danych. Jednak podczas odczytu danych, dane są odczytywane dwa lub trzy cykle zegara po wydaniu polecenia odczytu. Oznacza to, że kontroler DRAM musi zapewnić wystarczającą ilość czasu na zakończenie operacji odczytu przed wykonaniem operacji zapisu. W przypadku asynchronicznej pamięci DRAM stało się to po prostu dając więcej niż wystarczająco dużo czasu na zakończenie operacji. Ta praktyka jednak pozostawiła magistralę I/O w stanie bezczynności. Jednocześnie kontroler czekał na wystarczającą pewność, co było nieefektywnym wykorzystaniem zasobów.
Synchroniczna pamięć DRAM wykorzystuje wewnętrzny zegar do synchronizacji przesyłania danych i wykonywania poleceń. Pozwala to operacjom czasowym kontrolera pamięci na optymalne wykorzystanie magistrali we/wy i zapewnia wyższy poziom wydajności.
Ulepszenia w stosunku do asynchronicznej pamięci DRAM
Poza ulepszeniami w taktowaniu umożliwiającymi lepszą kontrolę, głównym ulepszeniem SDRAMu jest możliwość posiadania wielu banków pamięci w DRAM-ie. Każdy bank w zasadzie działa niezależnie wewnętrznie. W banku jednocześnie może być otwarty tylko jeden rząd. Mimo to drugi wiersz można otworzyć w innym banku, umożliwiając potokowanie operacji odczytu lub zapisu. Taka konstrukcja zapobiega bezczynności magistrali we/wy. Jednocześnie kolejka nowej operacji odczytu lub zapisu zwiększa wydajność.
Jednym ze sposobów myślenia o tym jest dodanie trzeciego wymiaru do tablicy dwuwymiarowej. Nadal możesz odczytywać lub zapisywać dane tylko z jednego miejsca na raz. Ale możesz przygotować kolejny wiersz w innym banku podczas interakcji z jednym.
Kolejna zaleta SDRAM-u wynika z włączenia danych taktowania na chipie pamięci. Niektóre nowoczesne pamięci RAM pozwalają na wyższą wydajność niż oficjalne standardy DRAM, kodując ich określone informacje o wydajności taktowania na tym chipie. Możliwe jest również ręczne nadpisanie tych ustawień, umożliwiając „przetaktowanie” pamięci RAM. To jest często bardzo dogłębne, ponieważ można skonfigurować wiele wartości czasu, co zapewnia minimalną wydajność korzyść. Przetaktowywanie pamięci RAM również wiąże się z ryzykiem niestabilności, ale może oferować korzyści w przypadku niektórych obciążeń.
Ulepszenia z biegiem czasu
Rzeczywista prędkość zegara pamięci nie wzrosła znacznie od czasu wydania SDRAM-u. Pierwsza iteracja SDRAM-u otrzymała retronim SDR. Jest to skrót od Single Data Rate, aby odróżnić go od późniejszej pamięci DDR lub Double Data Rate. Te typy, jak również wiele innych form DRAM, są przykładami SDRAM. Cykl zegara układu DRAM kontroluje czas pomiędzy najszybszymi operacjami DRAM. Na przykład odczytanie kolumny z otwartego wiersza zajmuje jeden cykl zegara.
Należy zauważyć, że istnieją dwie różne prędkości zegara dla SDRAM, zegar wewnętrzny i zegar magistrali I/O. Oba mogą być kontrolowane niezależnie i zostały z czasem ulepszone. Zegar wewnętrzny to szybkość samej pamięci i bezpośrednio wpływa na opóźnienie. Zegar I/O kontroluje, jak często dane, które zostały odczytane z – lub zostaną zapisane – mogą być przesyłane do SDRAM-u. Ta szybkość zegara w połączeniu z szerokością magistrali we/wy wpływa na przepustowość. Oba zegary są połączone i mają kluczowe znaczenie dla wysokiej wydajności SDRAM-u.
Jak wzrosły prędkości
Oficjalny standard JEDEC dla pierwszej generacji pamięci DDR SDRAM miał zegary pamięci od 100 do 200 MHz. DDR3 nadal oferuje 100 MHz zegary pamięci, choć standaryzował również taktowanie do 266,6 MHz. Mimo to wewnętrzne zmiany szybkości zegara I/O i ilość danych zawartych w operacji odczytu oznaczała, że nawet przy zegarze pamięci 100 MHz przepustowość dla jednostki czasu była czterokrotnie wyższa.
DDR4 zmienił wzorzec aktualizacji i podwoił zegar pamięci w zakresie od 200 do 400 MHz, ponownie osiągając podwojenie dostępnej przepustowości przy jednoczesnym zmniejszeniu opóźnień. Standard DDR5 również zaczyna się od zegara pamięci 200 MHz. Mimo to osiąga do 450 MHz, powracając do podwojenia ilości danych przesyłanych na cykl, aby podwoić przepustowość.
Wniosek
Synchroniczna pamięć DRAM jest obecnie podstawowym typem pamięci DRAM w użyciu. Jest podstawą systemowej pamięci RAM i VRAM w aplikacjach graficznych. Synchronizując działania DRAM z zegarami, można poznać rzeczywistą wydajność DRAM, co pozwala na efektywne kolejkowanie operacji do wykonania. Jest to o wiele bardziej wydajne niż pozostawienie więcej niż wystarczająco dużo czasu, ponieważ nie ma bezpośredniego pomiaru ani sposobu, aby dowiedzieć się, kiedy określone polecenie zostało wykonane.
Zegary sterujące SDRAMem mają kluczowe znaczenie dla jego wysokiej wydajności. Kontrolują, jak często można uruchamiać polecenia i jak szybko dane mogą być odczytywane lub zapisywane w pamięci DRAM. Znając te czasy, można je zoptymalizować pod kątem maksymalnej wydajności.