Memori digunakan untuk banyak hal, seperti yang saya mengerti. Ini berfungsi sebagai disk-cache, dan berisi instruksi program, dan tumpukan & tumpukannya. Inilah eksperimen pemikiran. Jika seseorang tidak peduli dengan kecepatan atau waktu yang dibutuhkan komputer untuk melakukan pengerasan, berapa jumlah memori minimum yang dapat dimiliki seseorang, dengan asumsi seseorang memiliki disk yang sangat besar? Apakah mungkin untuk menghilangkan memori, dan hanya memiliki disk?
Disk-caching jelas tidak diperlukan. Jika kita mengatur ruang swap pada disk, program stack dan heap juga tidak memerlukan memori. Adakah yang membutuhkan memori untuk hadir?
computability
memory-management
memory-hardware
Omong kosong
sumber
sumber
Jawaban:
Tentu. Pada prinsipnya, mengingat perangkat keras yang sesuai, Anda bisa saja memiliki disk, dengan semua yang tersimpan pada disk. Setiap kali CPU melakukan instruksi memuat atau menyimpan, mungkin ada beberapa perangkat keras yang mengubahnya menjadi disk baca atau tulis. Ini akan sangat lambat: pada disk magnetik, setiap pencarian membutuhkan waktu sekitar 10 ms, sehingga Anda dapat melakukan sekitar 100 akses acak untuk membaca dan menulis per detik.
Beberapa sistem memetakan memori flash ke dalam ruang alamatnya. Memori flash menyediakan penyimpanan non-volatil (persisten). Jadi, dalam beberapa hal ini menyerupai apa yang Anda sebutkan - meskipun sistem tersebut biasanya juga memiliki RAM juga.
sumber
Dalam hal komputabilitas, diketahui bahwa setiap komputer modern dapat disimulasikan oleh Mesin Turing yang penyimpanannya hanya satu, sel pita linier yang dapat ditulis. Dengan asumsi Anda dapat terus menambahkan jumlah penyimpanan disk yang tidak terbatas, komputer yang hanya memiliki hard drive sama kuatnya. Jadi yang pasti Anda bisa membuat komputer tanpa memori.
Tentu saja, tidak ada hard drive "ruang tak terbatas", tetapi juga tidak ada RAM tanpa batas.
Ada sejumlah masalah praktis, misalnya, Anda akan memerlukan konvensi untuk memetakan area dan alamat yang berbeda pada disk, sistem operasi yang menulis ke disk untuk penyimpanan perantara dan alamat disk yang dikelola. Pada kenyataannya, Anda akan berakhir dengan mensimulasikan RAM pada hard drive Anda.
sumber
Pertanyaannya bukan murni akademis. Ini adalah masalah catatan sejarah bahwa salah satu komputer yang diproduksi secara komersial paling awal [maaf, saya tidak ingat yang begitu saja] tidak memiliki RAM - semua program dijalankan dengan mengambil instruksi langsung dari drum magnet [silinder yang berputar dengan permukaan luar yang dapat magnet (cakram datang kemudian)]. Itu relatif lambat, tetapi jauh lebih murah daripada banyak kompetisi. [Ini adalah jalan kembali di hari-hari 'tabung']
Menariknya, ia datang dengan alat yang sekarang sudah usang yang dikenal sebagai 'assembler mengoptimalkan' - yaitu assembler tidak hanya menghasilkan instruksi mesin, itu menuliskannya ke drum non-berturut-turut sehingga untuk meminimalkan, untuk setiap instruksi, jumlah waktu menunggu drum diputar ke yang berikutnya.
sumber
Tidak. Disk drive tidak dialamatkan secara acak seperti RAM. Sebaliknya mereka memblokir perangkat penyimpanan. Anda tidak dapat membaca atau menulis satu byte pun darinya. Dan CPU Anda tidak dapat membaca seluruh sektor sekaligus, mereka membutuhkan akses acak. Sistem operasi menyembunyikan tingkat detail ini dari Anda, tetapi mereka melakukannya dengan membaca seluruh sctor ke dalam RAM, memodifikasinya, dan menuliskannya kembali.
Akibatnya, Anda memerlukan satu blok penyimpanan akses acak. Ini bisa menjadi cache CPU, yang terbuat dari SRAM (jenis RAM cepat).
Ini bukan hanya disk. Memori flash pada dasarnya adalah desain yang dibangun dari balok, yang merupakan kunci dari harganya yang rendah. Bahkan memiliki blok yang jauh lebih besar dari sektor disk normal, tetapi menggunakan RAM secara internal untuk menyembunyikannya dari OS.
Anda dapat membuat penyimpanan persisten yang langsung dapat digunakan oleh CPU. Penyimpanan EEPROM akan jatuh dalam kategori ini (Memori "Read-Only" yang Dapat Diprogram Secara Elektronik - meskipun "Read-Optimized" akan menjadi deskripsi yang sebenarnya lebih baik).
sumber
Ketika Anda menggunakan kehabisan memori virtual dan perlu menangani kesalahan halaman, maka setidaknya handler pengecualian menangani kesalahan halaman, pengandar disk yang membaca data dari hard drive dan pertama menulis halaman kotor ke disk, dan tabel halaman perlu berada di RAM sepanjang waktu. Karena jika mereka tidak dalam RAM, Anda tidak dapat menukar mereka kembali ke RAM. Plus Anda membutuhkan ruang untuk setidaknya satu halaman RAM.
Jika Anda memiliki CPU seperti Xeon 12 inti yang masif dengan memori cache 30 MB, dimungkinkan untuk memiliki sistem yang tidak memiliki RAM maupun hard drive, tetapi gunakan hanya memori cache. (Tidak yakin apakah itu benar-benar berfungsi atau jika karena alasan tertentu RAM diperlukan).
sumber
Secara konseptual dimungkinkan. RAM hanyalah level caching. Ada banyak level caching di komputer modern (lihat CPU L1, L2, L3 .. cache, tentu saja Ram, area swap -yang merupakan bagian logis dari disk yang digunakan sebagai RAM ...-), jika Anda meletakkan atau tambahkan satu, mesin akan bekerja. Misalnya, live cd Ubuntu mungkin tidak menggunakan level caching HDD. Namun, saya tidak berpikir ada OS yang dapat mendukung tidak adanya level RAM.
sumber
Secara teknis, RAM adalah memori volatile primer yang digunakan untuk meningkatkan kecepatan pemrosesan. Setelah daya hilang, data dalam memori utama hilang. Jika kita menggunakan disk, seperti yang Anda katakan, hanya disk dan bukan RAM, kita masih bisa menjalankan komputer kita tetapi akan ada lebih banyak baca tulis overhead sehingga sangat memperlambat sistem. Karenanya, kami menggunakan RAM.
sumber