Jak rozumiem, pamięć jest wykorzystywana do wielu rzeczy. Służy jako pamięć podręczna dysku i zawiera instrukcje programów oraz ich stos i stos. Oto eksperyment myślowy. Jeśli ktoś nie dba o szybkość lub czas, jaki zajmuje komputerowi wykonanie chrupnięcia, jaka jest minimalna ilość pamięci, jaką można mieć, zakładając, że ma on bardzo duży dysk? Czy można zrezygnować z pamięci i po prostu mieć dysk?
Buforowanie dysku oczywiście nie jest wymagane. Jeśli skonfigurujemy miejsce wymiany na dysku, stos programu i sterta również nie będą wymagały pamięci. Czy jest coś, co wymaga obecności pamięci?
Odpowiedzi:
Pewnie. Zasadniczo, mając odpowiedni sprzęt, możesz mieć tylko dysk, na którym wszystko jest przechowywane na dysku. Za każdym razem, gdy CPU wykonuje instrukcję ładowania lub przechowywania, może istnieć sprzęt, który zamienia to w dysk do odczytu lub zapisu. Byłoby to bardzo wolne: na dysku magnetycznym każde wyszukiwanie zajmuje około 10 ms, dzięki czemu można wykonać około 100 odczytów i zapisów o swobodnym dostępie na sekundę.
Niektóre systemy mają przypisane pamięci flash do przestrzeni adresowej. Pamięć flash zapewnia nieulotną (trwałą) pamięć. W pewnym sensie przypomina to to, o czym wspomniałeś - chociaż te systemy zwykle również mają pamięć RAM.
źródło
Pod względem obliczalności wiadomo, że każdy współczesny komputer może być symulowany przez maszynę Turinga, której jedynym miejscem przechowywania są pojedyncze, liniowe komórki taśmy, które można zapisać. Zakładając, że możesz dodawać nieograniczoną ilość miejsca na dysku, komputer posiadający tylko dyski twarde jest równie wydajny. Z pewnością możesz stworzyć komputer bez pamięci.
Oczywiście nie ma dysków twardych o „nieograniczonej przestrzeni”, ale nie ma też nieograniczonej pamięci RAM.
Istnieje wiele praktycznych problemów, na przykład potrzebne byłyby konwencje mapowania różnych obszarów i adresów na dysku, system operacyjny, który zapisał na dysku w celu przechowywania danych pośrednich i adresów dysków zarządzanych. W rzeczywistości skończyłbyś ściśle symulacją pamięci RAM na dysku twardym.
źródło
Pytanie nie jest czysto akademickie. Historycznie wiadomo, że jeden z najwcześniej produkowanych komputerów (przepraszam, nie pamiętam, który z nich) nie miał pamięci RAM - wszystkie programy były wykonywane przez pobieranie instrukcji bezpośrednio z bębna magnetycznego [obracający się cylinder z zewnętrzną powierzchnią magnesowalną (dyski przyszły później)]. To było stosunkowo wolne, ale znacznie tańsze niż wiele konkurencji. [to było dawno temu w czasach 'tubowych']
Co ciekawe, przyszedł z przestarzałym narzędziem znanym jako „optymalizujący asembler” - tj. Asembler nie tylko generował instrukcje maszynowe, ale zapisywał je na bębnie nie po kolei, aby zminimalizować, dla każdej instrukcji, ilość czasu czekam, aż bęben obróci się do następnego.
źródło
Nie. Dyski twarde nie są adresowalne losowo, jak pamięć RAM. Zamiast tego są to blokowe urządzenia magazynujące. Nie możesz czytać ani pisać z nich bajtu. Twój procesor nie może jednocześnie odczytać całego sektora, potrzebują tego losowego dostępu. Systemy operacyjne ukrywają przed Tobą ten poziom szczegółowości, ale robią to, wczytując cały sektor do pamięci RAM, modyfikując go i zapisując.
W rezultacie potrzebujesz jednego bloku magazynu o dostępie swobodnym. Może to być pamięć podręczna procesora wykonana z SRAM (szybkiej pamięci RAM).
To nie tylko dyski. Pamięć flash jest z założenia zbudowana z bloków, co jest kluczem do jej niskiej ceny. Ma nawet bloki znacznie większe niż normalne sektory dysku, ale wykorzystuje wewnętrznie pamięć RAM, aby ukryć to przed systemem operacyjnym.
Możesz sprawić, aby trwała pamięć masowa była bezpośrednio wykorzystywana przez procesor. Pamięć EEPROM należałaby do tej kategorii (elektronicznie kasowalna programowalna pamięć „tylko do odczytu” - chociaż „zoptymalizowany do odczytu” byłby faktycznie lepszym opisem).
źródło
Gdy korzystasz z pamięci wirtualnej i potrzebujesz obsługi błędów strony, przynajmniej obsługa wyjątków obsługuje błąd strony, sterownik dysku, który odczytuje dane z dysku twardego i najpierw zapisuje brudne strony na dysku, a tabele stron potrzebują cały czas być w pamięci RAM. Ponieważ jeśli nie są one w pamięci RAM, nie można zamienić ich z powrotem na pamięć RAM. Ponadto potrzebujesz miejsca na co najmniej jedną stronę pamięci RAM.
Jeśli miałeś procesor taki jak potężny 12-rdzeniowy Xeon z 30 MB pamięci podręcznej, może być możliwe posiadanie systemu bez pamięci RAM lub dysku twardego, ale używaj tylko pamięci podręcznej. (Nie jestem pewien, czy to faktycznie działa lub czy z jakiegoś powodu wymagana jest pamięć RAM).
źródło
Jest to koncepcyjnie możliwe. Pamięć RAM to tylko poziom buforowania. Istnieje wiele poziomów buforowania we współczesnym komputerze (patrz pamięci podręczne L1, L2, L3 .. procesora, oczywiście Ram, obszar wymiany - który jest logiczną sekcją dysku używanego jako pamięć RAM ... -), jeśli umieścisz lub dodaj jeden, urządzenie będzie działać. Na przykład dysk CD Ubuntu na żywo może nie używać poziomu buforowania dysku twardego. Jednak nie sądzę, aby istniał jakikolwiek system operacyjny, który może obsługiwać brak poziomu pamięci RAM.
źródło
Technicznie RAM jest podstawową pamięcią ulotną, która służy do poprawy szybkości przetwarzania. Po zaniku zasilania dane w pamięci podstawowej zostają utracone. Jeśli użyjemy dysku, tj., Jak mówisz, tylko dysku, a nie pamięci RAM, nadal moglibyśmy uruchomić nasz komputer, ale byłoby więcej narzutu odczytu, co znacznie spowolniłoby system. Dlatego używamy pamięci RAM.
źródło