「単一レベル記憶」の版間の差分

削除された内容 追加された内容
6行目:
 
== 概要 ==
[[仮想記憶]]方式のコンピュータであることは前提とする。
単一レベル記憶 (SLS) の[[仮想記憶]]による[[メモリ管理]]での[[記憶装置]]の[[アドレス空間]]は、一定の大きさのページと呼ばれる単位 ([[IBM]] [[AS/400]] では4KB) で区分されている。
 
そういったコンピュータにおける[[メモリ管理]]の方式として、セグメント方式やページ方式、そしてそれらの組み合わせなどがあって、単一レベル記憶方式とそれらとの組み合わせは任意ではあるが、単一レベルではページ方式を採用してディスク等のブロックサイズに合わせないと管理が面倒になることなどが、主記憶のみを対象とするメモリ管理とは異なってくる。
 
以下ではページ方式で管理されているものとする。[[AS/400]] ではページサイズは4KBであった。
 
あるページは、[[主記憶装置]]上にあるかもしれないし、[[補助記憶装置]]上にあるかもしれない。あるページ (データ) が主記憶装置 (メインメモリ) と補助記憶装置 ([[磁気ディスク装置]]など) のどちらに存在するかについては、[[アプリケーションソフトウェア]]は意識することが無い (知る必要は無く、また知ることはできない) 。ページ (データ) の現在の場所が主記憶装置と補助記憶装置のどちらであるかは、アプリケーションソフトウェアにとっては重要なことではないのである。
16 ⟶ 20行目:
* 補助記憶装置上に存在する場合は[[ページフォールト]]が発生して、システムコンポーネントが補助記憶装置上のページを主記憶装置上に展開して利用できるようにする。
 
補助記憶のアドレッシングに必要な空間は、一般に、主記憶より比較的大きい。レジスタなどのワードサイズが32ビットのコンピュータの時代において、32ビットでアドレス可能な4Gバイトは、補助記憶のためには小さく、特に AS/400 のような、単一レベル記憶を採用するようなミッドレンジのシステムでは32ビットでは狭いと判断され、単一レベル記憶のためのアドレスのビット数は増やされた。
単一レベル記憶ではシステムに接続されている全ての記憶装置をカバーできるような大きなアドレス空間が必要となる (32ビットアドレスのシステムでは全部で4GBのアドレスを指定できるが多くの場合これでは不十分である) <ref>[[フランク・ソルティス]]ほか (1998) 、p.232</ref>。
 
[[IBM]] [[System/38]] と初期の [[AS/400]] では48ビットアドレスを使用していたため充分に大きいアドレス空間を使うことができた。
 
なお AS/400 はその後アドレス空間が拡張され、2006年現在では64ビットアドレスを使用している<ref>フランク・ソルティスほか (1998) 、p.233</ref>。
 
== 特長とIBMの実装 ==