CPUフェッチ時間について読んでいたところ、CPUがハードディスクにアクセスするよりもRAMからデータにアクセスする時間がはるかに短く、実行プログラムの情報とデータを保存するためにRAMが存在することがわかりました。
それから、ハードディスクのみを使用し、RAMを使用しない場合はどうなるのでしょうか?
CPUフェッチ時間について読んでいたところ、CPUがハードディスクにアクセスするよりもRAMからデータにアクセスする時間がはるかに短く、実行プログラムの情報とデータを保存するためにRAMが存在することがわかりました。
それから、ハードディスクのみを使用し、RAMを使用しない場合はどうなるのでしょうか?
回答:
ある時点で、これは「RAM」としてカウントされるものの問題になります。個別のRAMチップを接続せずに小さなオペレーティングシステムを実行するための十分なオンチップメモリを備えた多くのCPUとマイクロコントローラがあります。実際、これは組み込みシステムの世界では実際に比較的一般的です。したがって、個別のRAMチップが接続されていないことだけを参照している場合、はい、多くの現在のチップ、特に組み込み世界向けに設計されたチップでそれを行うことができます。私は仕事で自分でやりました。ただし、アドレス可能なオンチップメモリと個別のRAMチップの唯一の本当の違いは場所(そして明らかにレイテンシ)だけであるため、オンチップメモリをそれ自体をRAMと見なすことは完全に合理的です。これをRAMとして数えている場合、現在の数、
通常のPCを参照している場合、いいえ、別のRAMスティックを取り付けずに実行することはできませんが、これはBIOSがRAMがインストールされていない状態で起動しようとしないように設計されているためです(つまり、特にx86マシンでは通常、オンチップメモリを直接アドレス指定できないため、最新のPCオペレーティングシステムを実行するにはRAMが必要です。キャッシュとしてのみ使用されます。
最後に、Zeissが言ったように、いくつかのレジスタを除いて、RAMなしで実行するようにコンピューターを設計できないという理論的な理由はありません。RAMは、オンチップメモリよりも安価であり、ディスクよりもはるかに高速であるという理由だけで存在します。現代のコンピューターには、大きくて遅いが非常に速いが小さいというメモリの階層があります。通常の階層は次のようなものです。
メモリ階層の全体的な理由は、単に経済的であることに注意してください。CPUダイに1テラバイトの不揮発性レジスタを配置できなかった理論的な理由はありません(少なくともコンピューターサイエンスの分野ではありません)。問題は、構築するのがめちゃくちゃ難しくて費用がかかるということです。少量の非常に高価なメモリから大量の安価なメモリまでの範囲の階層を持たせることで、合理的なコストで高速を維持できます。
非常に少ない(数レジスタの価値がある)またはRAMなしで動作するようにコンピューターを設計することは理論的には可能です(チューリングマシンの定義を検索します-これは、実際にConwayのLifeの適切な大/高速実装で構築できます)シミュレーション)。
すべての実世界のコンピューターがRAMを使用する理由は、まず歴史的です:コアメモリ(RAMのプロトタイプ、半揮発性のみ)は、磁気ドラムやディスクなどの大容量記憶装置よりもはるかに前にあります(ただし、パンチカードや紙テープの後にありました-前者はその原始的な形で1801年に遡ります(はい、19世紀の始まりです。ジャカード織機は、パンチカードを使用して、バベッジ差分エンジンやホレリスタブレーターよりも数十年前に、任意の複雑さのカラーパターンを自動的に織り込みました)。 、RAM(コアメモリなど)は電子的であるため、データを読み取り/書き込みメカニズムに提示するためにストレージメディアの物理的な移動に依存するデバイスよりもはるかに高速です。
RAMなしで動作する最新のWindowsまたはLinuxコンピューター(真のチューリングマシンと同様)のシステムまたは同様の複雑さは、起動するだけで数日かかり、現代の解像度でグラフィックインターフェイスの画面を更新するのに数時間かかります。CP / MまたはDOSの初期バージョンに匹敵するテキストのみのオペレーティングシステムでさえ、最初のコマンドプロンプトに到達するのに非常に長い時間がかかります。
x86 CPUが起動すると、L2キャッシュは最初はキャッシュとして使用される前はSRAMであるため、できます。したがって、RAMを初期化せず、CPU内の少量のSRAMのみをL2 / L3キャッシュではなくRAMとして使用するために、独自のBIOSを作成できます。
CPUメーカーのBIOSガイドラインをお読みください。
すべての最新の標準的な汎用CPUは、基本的に次のように機能します。
CPUはそのアドレス空間にあるものをすべて取得し、そのレジスタをインクリメントします
アドレス空間に何が「住む」ことができますか?
「ハードディスク」がそのリストにないことに注意してください。ハードディスクはCPUに直接接続されていません。データは、CPUに接続されたI / Oデバイス(SATAホストアダプタ)を介してハードディスクとの間でやり取りされます。
I / OデバイスはDMAを使用して、ハードディスクにデータをロード/保存します。これは、I / OデバイスがCPUの介入なしにRAM自体を直接読み書きすることを意味し、RAMが存在することにも依存します。しかし、データがI / OデバイスによってRAMにロードされていない場合、CPUはそれを見る機会がありません。
したがって、CPUがハードディスクから直接命令をフェッチすることはできません。
ページフォールト中に起こることは次のとおりです。
したがって、メモリがスワップアウトされているためにCPUがディスクからデータを取得する必要はありません。
パソコンを実行するには RAMが必要です。ハードディスクから起動されたすべてのアプリケーションは、実行される前に最初にRAMにコピーされます。
そのため、コンピューターにRAMがない場合、コンピューターは起動しません。おそらく、RAMがインストールされていないことを知らせる警告音が数回鳴ります。
コンピューターは実行されません。RAMは、マザーボードからの投稿を成功させるために不可欠な要素です。RAMが存在しないか破損している場合、多くのマザーボードでは通常、ビープ音コードを使用してトラブルシューティングの参照先を示します。
実際には、少なくとも2つのケースでは、技術的にRAMと呼ばれるものなしでコンピューターを実行できます。
最初の古い機械的な「コンピューター」(コンラッドズーゼの構造とチャールズバベッジのコンピューターは、まだコンピューターと呼ばれるRAMのない機械装置でした)
RAMがなく、レジスターを備えたプロセッサー(チップ)のみを備えた最新のコンピューター。ほとんどの場合、プロセッサ上にSRAM(キャッシュメモリ)がありますが、最速のコンピューターメモリはチップ上にあるレジスタと呼ばれ、技術的にはチップ上のレジスタはRAMではありません。