ロード (コンピュータ)
ロード(英: load)とは、コンピュータのプログラムにおいて、不揮発性メモリやその他の補助記憶装置(ストレージ)といった記憶媒体にファイルなどの形で保存(セーブ)されたデータから、プログラム、作業内容や進捗状況、個人設定などの各種情報をメモリに読み込んで復元すること。ロードする処理を担う専用のプログラムやモジュールは「ローダ」と呼ばれることがある。
ストレージ内の不活性状態のデータを、CPUおよびプログラムからアクセス可能なメインメモリに読み出して活性状態にする動作を、火器の弾薬を弾倉から薬室へセットし射撃可能状態にする装填動作(load、loading)に喩えたもの[要出典]である。
データの保持に電源供給が必要な揮発性メモリのうち、DRAMはSRAMよりも低速だが大容量であり、また各種ストレージ機器よりも小容量だが高速に読み書きできるため、コンピュータの主要な作業用データ保持領域として適しており、メインメモリやビデオメモリ(VRAM)に使われている。一般的なアプリケーションソフトウェアは、プログラミング言語の標準ライブラリやオペレーティングシステムに用意されているファイルI/OなどのAPIを使用して、ストレージに保存(永続化)されている情報をメインメモリにロードして作業し、必要に応じて作業結果をファイルに書き戻すことで、高速な処理を実現している。
コンピュータプログラムにおいて、セーブとロードの機能をサポートすることで、作業の中断・終了時に後から途中再開できるようになったり、保存されたデータを別の機器で読み出せるようになったりする。データを不揮発性メモリやストレージに保存しておくことで、電源が切れるなどの不測事態対策にもなるが、書き込み処理の途中で電源が落ちた場合、データが破損して読み出せなくなる可能性もある。重要なデータを保存する場合や、ストレージ容量に余裕がある場合は、いったん別のファイルに書き込んでおいて、書き込みが最後まで完了した後に古いファイルと新しいファイルをスワップする技法が使われる。
同義語は他にもいくつかあるが、多くのBASIC環境でLOAD
という命令(文ではない)であったことなどもあり、ロードという表現がポピュラーである。
なお、プロセッサのレジスタとメインメモリの間のやりとりにおいては、メモリからレジスタへの読み出しにはロード命令、レジスタからメモリへの書き込みにはストア命令が使われる。
現代的なCPUの内部には通例SRAMによるキャッシュメモリがいくつかの階層に分けて搭載されており、レジスタにロードするためにメインメモリから読み出したデータはキャッシュメモリにも自動的にロードされて、よく使われるデータへのアクセスを高速化する仕組みになっているが、一般的なコンピュータシステムにおいて、このキャッシュメモリの存在はアプリケーションソフトウェアからは隠蔽されており、キャッシュメモリ上のデータとメインメモリ上のデータの一貫性(キャッシュコヒーレンシ)を自動的に保つようになっている。
コンピュータゲーム
[編集]コンピュータゲームにおいては、プレイを中断する際、現在の進行状態を保存し、次回にプレイするときにその時点から再開できるように処理することをセーブといい、そのデータを読み込んで再開することまで含めてロードということも多い。
セーブデータに限らず、ゲームのプログラムやマルチメディアデータ(画像データ・音声データ)をメモリに読み出すことをロードと呼ぶこともある。
パーソナルコンピュータ (PC) の記憶媒体としてテープメディアが主に使われていた時代は、シーケンシャルアクセスや機械的動作速度の限界から、メモリへのロードに非常に時間がかかることが多かった[1]。その後、コンシューマーのゲームコンソールにおいては、ROMカートリッジ方式が主流になり、ゲームデータには読み取り専用のマスクROMが、セーブデータにはSRAMとバッテリーバックアップが使われるようになった。当時はCPUの処理性能も低く、またメインメモリの容量も少なかったが、電気回路による動作は機械動作に比べて圧倒的に高速であり、ゲームデータやセーブデータも小容量だったため、ロードにかかる時間は通例極めて短かった。同時期、PCではフロッピーディスクやハードディスクが主流となったが、テープメディアと比べると高速になったものの、機械的な動作を伴うため、大容量データの読み書きには時間がかかることが多かった。なお、ファミリーコンピュータのディスクシステムのように、ゲームコンソールでも磁気ディスクを採用する事例もあった。
その後、ROMカートリッジの代替としてCDやDVDのような光学メディアが登場し、セーブデータはフラッシュメモリやハードディスクに保存するようになったが、大容量化によって表現能力が向上した対価として、再びゲームデータやセーブデータのロードに時間がかかるようになった。ロード中のプレイヤーのストレスを軽減し、体感的な待ち時間を減らすために、読み出し中は画面上に「Now Loading...」といったテキストだけでなく、アニメーションするアイコン、ロードの進捗状況を示すプログレスバー、ゲームのヒントやインストラクションなどが表示されるようになった[注釈 1]。
PCだけでなく、ゲームコンソールでも、ゲームデータを内蔵または外付けのHDDやSSDにインストールして、光学メディアよりも高速なロードを実現しているものもある。とはいえ、ゲーム内容は年々複雑化しており、特に3次元コンピュータグラフィックス用の膨大なメッシュデータとテクスチャマッピング用の高解像度のラスター画像を大量に読み込んで、GPUから利用可能なデータ構造に基づくモデルを構築したりする必要があるため、最新の高速なストレージを使用してもロード時間はそれなりにかかってしまう。
なお、再開するという意味の英単語としては「コンティニュー」(continue)というものもあるが、コンピュータゲームでは、規定回数ミスを重ねるなどしてゲームオーバーになると、何らかのペナルティ(アーケードでは追加クレジットの要求、アクションゲームやRPG等ではエリアの最初やセーブポイントまで戻されたりしたうえでアイテムや装備類が剥奪されるなど)を受け入れることで続行するという意味で定着している。リトライと呼ばれることもある。詳細は、ゲームオーバー#コンティニューについてを参照のこと。