W pewnym momencie pojawia się pytanie, co nawet liczy się jako „RAM”. Istnieje wiele procesorów i mikrokontrolerów, które mają mnóstwo wbudowanej pamięci do uruchamiania małych systemów operacyjnych bez oddzielnych układów RAM. W rzeczywistości jest to stosunkowo powszechne w świecie systemów wbudowanych. Tak więc, jeśli chodzi ci tylko o to, że nie masz żadnych oddzielnych układów RAM, możesz to zrobić z wieloma obecnymi układami, zwłaszcza tymi zaprojektowanymi dla świata osadzonego. Zrobiłem to sam w pracy. Ponieważ jednak jedyną prawdziwą różnicą między adresowalną pamięcią wewnętrzną i oddzielnymi układami pamięci RAM jest tylko lokalizacja (i, oczywiście, opóźnienie), całkowicie rozsądne jest uznanie pamięci na chipie za pamięć RAM. Jeśli liczysz to jako pamięć RAM, liczba obecnych,
Jeśli masz na myśli normalny komputer, nie możesz go uruchomić bez podłączonych oddzielnych pamięci RAM, ale tylko dlatego, że BIOS nie jest zaprojektowany, aby uruchamiać się bez zainstalowanej pamięci RAM (to z kolei dlatego, że wszystkie nowoczesne systemy operacyjne na PC wymagają pamięci RAM do uruchomienia, zwłaszcza, że maszyny x86 zazwyczaj nie pozwalają bezpośrednio adresować pamięci na chipie; jest używana wyłącznie jako pamięć podręczna).
Wreszcie, jak powiedział Zeiss, nie ma teoretycznego powodu, dla którego nie można zaprojektować komputera do pracy bez pamięci RAM, oprócz kilku rejestrów. Pamięć RAM istnieje wyłącznie dlatego, że jest tańsza niż pamięć na chipie i znacznie szybsza niż dyski. Współczesne komputery mają hierarchię pamięci, od dużych, ale powolnych po bardzo szybkie, ale małe. Normalna hierarchia wygląda mniej więcej tak:
- Rejestry - bardzo szybkie (mogą być obsługiwane bezpośrednio przez instrukcje procesora, zazwyczaj bez dodatkowych opóźnień), ale zwykle bardzo małe (64-bitowe rdzenie procesorów x86 mają na przykład tylko 16 rejestrów ogólnego przeznaczenia, z których każdy może przechowywać pojedynczy 64-bitowy numer.) Rozmiary rejestrów są na ogół małe, ponieważ rejestry są bardzo drogie na bajt.
- Pamięć podręczna procesora - nadal bardzo szybka (często opóźnienie 1–2 cykli) i znacznie większa niż rejestry, ale wciąż znacznie mniejsza (i znacznie szybsza) niż normalna pamięć DRAM. Pamięć podręczna procesora jest również znacznie droższa na bajt niż pamięć DRAM, dlatego zwykle jest znacznie mniejsza. Ponadto wiele procesorów faktycznie ma hierarchie nawet w pamięci podręcznej. Zwykle mają mniejsze, szybsze pamięci podręczne (L1 i L2) oprócz większych i wolniejszych pamięci podręcznych (L3.)
- DRAM (co większość ludzi uważa za „RAM”) - Znacznie wolniej niż pamięć podręczna (opóźnienie dostępu to zwykle dziesiątki do setek cykli zegara), ale znacznie tańsze na bajt, a zatem zwykle znacznie większe niż pamięć podręczna. Pamięć DRAM wciąż jest jednak wiele razy szybsza niż dostęp do dysku (zwykle setki do tysięcy razy szybszy).
- Dyski - znowu są one znacznie wolniejsze niż DRAM, ale generalnie znacznie tańsze na bajt, a zatem znacznie większe. Ponadto dyski są zwykle nieulotne, co oznacza, że umożliwiają zapisywanie danych nawet po zakończeniu procesu (a także po ponownym uruchomieniu komputera).
Zauważ, że cały powód hierarchii pamięci to po prostu ekonomia. Nie ma teoretycznego powodu (przynajmniej w dziedzinie informatyki), dlaczego nie mogliśmy mieć terabajtu nieulotnych rejestrów na matrycy procesora. Problem polega na tym, że jego budowa byłaby niesamowicie trudna i droga. Posiadanie hierarchii, od niewielkich ilości bardzo drogiej pamięci po duże ilości taniej pamięci, pozwala nam utrzymać duże prędkości przy rozsądnych kosztach.