(57)【要約】【課題】仮想アドレスを物理アドレスに変換するための情報を記憶する記憶領域の回路面積の増大を伴うことなく、異なるページサイズに適合したハードウェアを活用して新たなページサイズをサポートすること。【解決手段】ページテーブル管理回路３０は、仮想アドレスを物理アドレスに変換するための情報をエントリ毎に記憶したメモリ部５１を有すると共に、入力したアドレス値に応じてエントリを指定するメモリ制御回路５０と、メモリ制御回路５０により指定されるエントリの総数が減少するように、入力したアドレス値を変換してメモリ制御回路５０へ出力するアドレス変換回路４０と、を備える。【選択図】図４
2010244165.tif 000002
【特許請求の範囲】
【請求項１】
仮想アドレスを物理アドレスに変換するための情報をエントリ毎に記憶した記憶領域を有すると共に、入力したアドレス値に応じて前記エントリを指定するメモリ制御部と、
前記メモリ制御部により指定される前記エントリの総数が減少するように、入力したアドレス値を変換して前記メモリ制御部へ出力するアドレス変換部と、
を備える、半導体集積回路。
【請求項２】
前記エントリの指定に用いられる前記アドレス値のビット数は、前記アドレス変換部に入力されるものよりも、前記アドレス変換部から出力されるものの方が少ないことを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記アドレス変換部に入力される前記アドレス値は、ＣＰＵコアで生成され、前記ＣＰＵコアから前記アドレス変換部へ内部バスを介して伝送されることを特徴とする請求項１に記載の半導体集積回路。
【請求項４】
前記アドレス変換部は、内部バスを介して伝達するアドレス変換信号に応じて、入力したアドレス値を変換して前記メモリ制御部へ出力することを特徴とする請求項１乃至３のいずれか一項に記載の半導体集積回路。
【請求項５】
前記アドレス変換部は、入力した前記アドレス値を変換せずに前記メモリ制御部へ出力するモードで動作することもできることを特徴とする請求項１乃至３のいずれか一項に記載の半導体集積回路。
【請求項６】
前記アドレス変換部は、入力した前記アドレス値を変換せずに前記メモリ制御部へ出力するモードで動作しないように形成されていることを特徴とする請求項１乃至３のいずれか一項に記載の半導体集積回路。
【請求項７】
仮想アドレスを物理アドレスに変換するための情報をエントリ毎に記憶した記憶領域を有すると共に、入力したアドレス値に応じて前記エントリを指定するメモリ制御回路と、
前記メモリ制御部により指定される前記エントリの総数が減少するように、入力したアドレス値を変換して前記メモリ制御回路へ出力するアドレス変換回路と、
前記アドレス変換回路に入力される前記アドレス値を生成すると共に、前記記憶領域に記憶された複数の前記エントリの一回路を保持する保持領域を有するＣＰＵコアと、
を備える情報処理装置。
【請求項８】
前記ＣＰＵコアによる指令に応じて、前記記憶領域に記憶された前記エントリの内容が前記保持領域に反映されることを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記エントリの指定に用いられる前記アドレス値のビット数は、前記アドレス変換回路に入力されるものよりも、前記アドレス変換回路から出力されるものの方が少ないことを特徴とする請求項７又は８に記載の情報処理装置。
【請求項１０】
仮想アドレスを物理アドレスに変換するための情報をエントリ毎に記憶する記憶領域を有すると共に、入力したアドレス値に基づいて前記エントリを指定する半導体集積回路の制御方法であって、
前記アドレス値によって指定される前記エントリの総数が減少するように、ＣＰＵコアで生成された前記アドレス値を変換し、
変換後の前記アドレス値に基づいて前記エントリを指定する、半導体集積回路の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路、及び半導体集積回路の制御方法に関する。
【背景技術】
【０００２】
ＣＰＵ(Central Processing Unit)内にＴＬＢ(Translation Lookaside buffer)を設け、仮想アドレスから物理アドレスへの変換を高速に実行することが幅広く行われている。一般的に、ＴＬＢには、仮想アドレスを物理アドレスに変換するための情報（物理ページ番号等）がエントリ毎に格納されている。例えば、仮想アドレスに含まれる仮想ページ番号に基づいてＴＬＢから物理ページ番号をリードし、リードした物理ページ番号にオフセットを付加することによって、仮想アドレスから物理アドレスへの変換が実行される。
【０００３】
ＴＬＢミスとなった場合、一般的にはＣＰＵに割り込み通知し、オペレーティングシステムによりＴＬＢの入れ替えを行う。具体的には、主記憶装置上に記憶されたページテーブルにアクセスし、ＴＬＢに保持されたエントリを更新することが行われる。この処理はオペレーティングシステムに対してシステムコールを行うため、その分アプリケーション処理を待たせる必要がある。この処理オーバーヘッドをなくすために、ハードウェアにより、ソフトウェアの介在無く自動でＴＬＢのエントリ更新を行うこともある。この場合、ページテーブルは、主記憶ではなく専用のハードウェア（専用記憶領域）によって管理される。主記憶装置上又は専用記憶領域上にはページテーブルに対応するだけの記憶領域が必要になる。ページテーブルのエントリ数が増大すると、これに応じて必要になる記憶領域も増大する。
【０００４】
特許文献１には、異なるページサイズのページに対応して個別にＴＬＢを設けることを回避するための技術が開示されている。具体的には、タグ比較回路による比較ビットがページサイズコードに応じて変化し、論理アドレス及び物理アドレスに共通のページオフセットのビット数をページサイズに応じて可変とする。これによって、複数のページサイズを用いても１つのＴＬＢで対応することが可能になる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平６−２０２９５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、異なるページサイズに適合したハードウェアを活用して、新たなページサイズをサポートすることが必要になる場合がある。既存のハードウェアを活用することによって製品の開発効率を高めることができる。しかしながら、本発明者の検討によれば、ハードウェアによるページテーブル管理を行う場合、専用記憶領域上に格納されるページテーブルに要する回路面積が増大してしまう場合がある。専用記憶領域のページテーブルの回路面積が増大してしまうと、製品価格を低減することが阻害されてしまう。なお、この点については、図１乃至図３の説明からより明らかになる。
【０００７】
上述の説明から明かなように、仮想アドレスを物理アドレスに変換するための情報を記憶する記憶領域の回路面積の増大を伴うことなく、異なるページサイズに適合したハードウェアを活用して新たなページサイズをサポートすることが強く望まれている。
【課題を解決するための手段】
【０００８】
本発明に係る半導体集積回路は、仮想アドレスを物理アドレスに変換するための情報をエントリ毎に記憶した記憶領域を有すると共に、入力したアドレス値に応じて前記エントリを指定するメモリ制御部と、前記メモリ制御部により指定される前記エントリの総数が減少するように、入力したアドレス値を変換して前記メモリ制御部へ出力するアドレス変換部と、を備える。
【０００９】
異なるページサイズに適合したハードウェアで新たなページサイズをサポートする場合であっても、アドレス変換部によるアドレス変換によって、同一内容のエントリを連続して記憶領域に記憶させておくことを解消することができる。これにより、記憶領域の回路面積の増大を伴うことなく、異なるページサイズに適合したハードウェアを活用して新たなページサイズをサポートすることができる。
【００１０】
本発明に係る情報処理装置は、仮想アドレスを物理アドレスに変換するための情報をエントリ毎に記憶した記憶領域を有すると共に、入力したアドレス値に応じて前記エントリを指定するメモリ制御回路と、前記メモリ制御部により指定される前記エントリの総数が減少するように、入力したアドレス値を変換して前記メモリ制御回路へ出力するアドレス変換回路と、前記アドレス変換回路に入力される前記アドレス値を生成すると共に、前記記憶領域に記憶された複数の前記エントリの一回路を保持する保持領域を有するＣＰＵコアと、を備える。
【００１１】
本発明に係る半導体集積回路の制御方法は、仮想アドレスを物理アドレスに変換するための情報をエントリ毎に記憶する記憶領域を有すると共に、入力したアドレス値に基づいて前記エントリを指定する半導体集積回路の制御方法であって、前記アドレス値によって指定される前記エントリの総数が減少するように、ＣＰＵコアで生成された前記アドレス値を変換し、変換後の前記アドレス値に基づいて前記エントリを指定する。
【発明の効果】
【００１２】
本発明によれば、仮想アドレスを物理アドレスに変換するための情報を記憶する記憶領域の回路面積の増大を伴うことなく、異なるページサイズに適合したハードウェアを活用して新たなページサイズをサポートすることができる。
【図面の簡単な説明】
【００１３】
【図１】ページサイズ＝１ＭＢの条件でＴＬＢミス時に記憶装置上のページテーブルにアクセスする機構を説明するための説明図である。
【図２】ページサイズ＝１６ＭＢの条件でＴＬＢミス時に記憶装置上のページテーブルにアクセスする機構を説明するための説明図である。
【図３】図２の機構に生じる問題点を説明するための説明図である。
【図４】本発明の第１の実施形態にかかる情報処理装置の概略的なブロック図である。
【図５】本発明の第１の実施形態にかかるページテーブル管理回路の概略的なブロック図である。
【図６】本発明の第１の実施形態にかかるアドレスシフト回路の概略的なブロック図である。
【図７】本発明の第１の実施形態にかかるＴＬＢミス時のＴＬＢのエントリの更新処理を説明するための概略的なフローチャートである。
【図８】本発明の第１の実施形態にかかるページテーブル用の記憶領域の回路面積の低減を説明するための説明図である
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施の形態について説明する。なお、各実施の形態は、説明の便宜上、簡略化されている。図面は簡略的なものであるから、図面の記載を根拠として本発明の技術的範囲を狭く解釈してはならない。図面は、もっぱら技術的事項の説明のためのものであり、図面に示された要素の正確な大きさ等は反映していない。同一の要素には、同一の符号を付し、重複する説明は省略するものとする。
【００１５】
［第１の実施形態］
以下、図１乃至図８を参照して、本発明の第１実施形態について説明する。はじめに、図１乃至図３を参照して、異なるページサイズに適合した既存のハードウェアを用いて新たなページサイズをサポートする場合に生じる課題について説明する。図１は、ページサイズ＝１ＭＢのとき、ＴＬＢミス時に記憶装置上のページテーブルにアクセスする機構を説明するための説明図である。図２は、ページサイズ＝１６ＭＢのとき、ＴＬＢミス時に主記憶上のページテーブルにアクセスする機構を説明するための説明図である。図３は、図２の場合に生じる問題点を説明するための説明図である。
【００１６】
図１に示すように、記憶装置上のページテーブルは、ページサイズ＝１ＭＢに最適化されているものとする。この場合、４０９６個のエントリが用意されている。尚、各エントリは、３２ビットのアドレス空間を有し、仮想アドレス番号と物理アドレス番号とが関連付けられて格納されている。
【００１７】
ＴＬＢミスが発生したとき、ベースアドレスと仮想アドレス番号からアクセスアドレスが生成される。アクセスアドレスのビット列［１３：２］が記憶装置上のページテーブルのエントリの指定に用いられる。指定されたエントリから読み出した情報（物理アドレス番号等）をＴＬＢに転送し、ＴＬＢを更新する。このようにして、次のＴＬＢミスが生じることが抑制される。
【００１８】
なお、このアーキテクチャーでは、アクセスアドレスにより指定された物理アドレス番号と仮想アドレスのセクションインデックスとから物理アドレスが生成される。このようにして、仮想アドレスは物理アドレスに変換される。
【００１９】
次に、図２を参照して、図１に示す機構に適合したハードウェア構成をそのまま用いて、ページサイズ＝１６ＭＢをサポートする場合について検討する。
【００２０】
図１に示す機構に適合したハードウェア構成をそのまま用いた場合、図２に示すように、仮想アドレスのテーブルインデックスに加えて、仮想アドレスのセクションインディクスの上位ビットもアクセスアドレスに含まれることになる。この場合、エントリの指定に仮想アドレスのセクションインデックスが影響することになる。
【００２１】
例えば、仮想アドレス＝0xF800000により、アクセスアドレス[13:2]＝0x000が生成される、とする。このとき、異なる仮想アドレス＝0xF8100000により生成されるアクセスアドレスは、アクセスアドレス[13:2]=0x001となる。このように、仮想アドレスのセクションインデックスに応じてアクセスアドレスの値が変動する。各アクセスアドレスに各エントリが対応付けられるため、アクセスアドレスの増加に応じてエントリ総数が増加してしまう。
【００２２】
上述の場合、図３に模式的に示すように、付加された４ビットのセクションインデックスに対応して、記憶装置上のページテーブルに同一内容のエントリを１６個連続して容易する必要が生じる。記憶装置上のページテーブルに格納されるエントリ数が増大すると、ページテーブルを記憶する記憶領域の回路面積が増大してしまう。回路面積の増大により、製造される製品の低価格化が阻害される場合がある。
【００２３】
次に、図４乃至図８を参照して、本発明の第１の実施形態について説明する。図４は、情報処理装置の概略的な構成を示すブロック図である。図５は、ページテーブル管理回路の概略的なブロック図である。図６は、アドレスシフト回路の概略的なブロック図である。図７は、ＴＬＢミス時のＴＬＢのエントリの更新処理を説明するための概略的なフローチャートである。図８は、ページテーブル用の記憶領域の回路面積の低減を説明するための説明図である。
【００２４】
図４に示すように、情報処理装置１００は、ＣＰＵコア１０、内部バス２０、及びページテーブル管理回路３０を有する。ＣＰＵコア１０は、ＴＬＢ１１を有する。ページテーブル管理回路３０は、アドレス変換回路４０、及びメモリ制御回路５０を有する。ＣＰＵコア１０とページテーブル管理回路３０とは、内部バス２０を介して接続されている。
【００２５】
図５に示すように、アドレス変換回路４０は、ページモードレジスタ４１、シフトコード生成回路４２、及びアドレスシフト回路４３を有する。メモリ制御回路５０は、メモリ部５１を有する。メモリ部５１には、４０９５個のエントリを有するページテーブルが格納されている。
【００２６】
後述の説明から明らかなように、本実施形態によれば、既存のハードウェアを活用した場合であっても、ページテーブルに格納されるエントリの総数が増加することを回避しながら、既存のハードウェアがサポートするページサイズとは異なるページサイズをサポートすることができる。これによって、ページテーブル用の記憶領域（仮想アドレスを物理アドレスに変換するための情報を記憶する記憶領域）の回路面積の増大を伴うことなく、既存のハードウェアを活用して、既存のページサイズとは異なるページサイズをサポートすることができる。
【００２７】
図５に示すように、ページモードレジスタ４１には、ページモード設定信号Ｃｓｉｇが入力される。シフトコード生成回路には、ページモードレジスタの出力信号ＰＭｓｉｇが入力される。アドレスシフト回路４３には、シフトコード生成回路４２の出力信号ＳＣｓｉｇが入力される。アドレスシフト回路４３には、アクセスアドレスＡｓｉｇが供給される。
【００２８】
ページモード設定信号Ｃｓｉｇは、ＣＰＵコア１０で生成され、内部バス２０を介してＣＰＵコア１０からページモードレジスタ４１に伝送される。アクセスアドレスＡｓｉｇは、ＣＰＵコア１０で生成され、内部バス２０を介してＣＰＵコア１０からページモードレジスタ４１に伝送される。
【００２９】
図６に模式的に示すように、アドレスシフト回路４３は、アクセスアドレスを変換して出力する。
【００３０】
入力信号ＳＣｓｉｇが４ビット分のアドレスシフトを指示するとき、アドレスシフト回路４３は、図６に模式的に示すように、４ビット分、アクセスアドレスをシフトさせる。４ビット分のアクセスアドレスのシフトによって、下位４ビットがアクセスアドレスから削除される。なお、下位４ビットは、仮想アドレスのセクションインデックスの上位４ビットに相当する（図２参照）。アドレスシフト回路４３に入力するアクセスアドレス［１３：２］は、下位４ビット［５：２］の切捨てによって、アクセスアドレス［８：２］に変換されてアドレスシフト回路４３から出力される。
【００３１】
アドレスシフト回路４３によるシフト量は、ＣＰＵコア１０からの指令に基づいて設定される。具体的には、アドレスシフト回路４３のシフト量は、ＣＰＵコア１０によりセットされるページモードレジスタ４１の保持値に基づいて決定される。
【００３２】
１６ＭＢのページサイズをサポートしようとするとき、ＣＰＵコア１０は、ページモード設定信号Ｃｓｉｇをページモードレジスタ４１に出力する。これによって、ページモードレジスタ４１の保持値は、現在サポートするページサイズ＝１６ＭＢを示すように制御される。ページモードレジスタ４１は、ページサイズ＝１６ＭＢを示す保持値を信号ＰＭｓｉｇとしてシフトコード生成回路に出力する。信号ＰＭｓｉｇに応じて、シフトコード生成回路４２は、制御信号ＳＣｓｉｇをアドレスシフト回路４３に出力し、４ビット分のアドレスシフトが生じるようにアドレスシフト回路４３を制御する。アドレスシフト回路４３は、シフトコード生成回路４２によって制御され、入力したアクセスアドレスを４ビット分だけシフトさせる。このようにして、入力したアクセスアドレスと比較して４ビットだけマスクされたアクセスアドレスが、アドレスシフト回路４３から出力される。
【００３３】
なお、アドレスシフト回路４３によるシフト量は４ビットに限らない。本実施形態では、ページサイズ＝１ＭＢに適合したハードウェアにおいてページサイズ＝１６ＭＢをサポートする場合を想定している。この関係で、アドレスシフト回路４３によるシフト量は４ビットに設定される。
【００３４】
ページモードレジスタ４１の保持値によっては、アドレス変換回路４０は、入力したアクセスアドレスを変換することなく、そのまま出力するモードでも動作することができる。しかしながら、本実施形態では、ページサイズ＝１ＭＢに適合するハードウェアにてページサイズ＝１６ＭＢをサポートすることが命題となっている。従って、情報処理装置１００の稼働中、ページモードレジスタ４１の保持値が変更されないようにすると良い。
【００３５】
メモリ制御回路５０は、アドレスシフト回路４３から伝達したアクセスアドレスに基づいて該当するエントリを特定し、特定したエントリに含まれる情報（物理アドレス番号等）をリードし、リードした情報をＣＰＵコア１０へ内部バス２０を介して伝送する。
【００３６】
図７を参照して、情報処理装置１００の動作について説明する。
【００３７】
まず、ＴＬＢミスが生じるものとする（Ｓ１００）。具体的には、ＣＰＵコア１０は、仮想アドレスを物理アドレスに変換するため、ＴＬＢ１１にアクセスする。しかしながら、該当するエントリがＴＬＢ１１に存在せず、ＴＬＢミスが生じる。
【００３８】
次に、ＣＰＵコア１０は、アクセスアドレスを生成する（Ｓ１０１）。具体的には、ＣＰＵコア１０は、図２に示す方式により、アクセスアドレスを生成する。なお、ＣＰＵコア１０で生成されるアクセスアドレスには、仮想アドレスのセクションインデックスの上位４ビットが含まれている。
【００３９】
次に、アドレス変換をする（Ｓ１０２）。具体的には、アドレス変換回路４０は、上述のようにアクセスアドレスを変換し、変換後のアクセスアドレスをメモリ制御回路５０に出力する。なお、この過程で、仮想アドレスのセクションインデックスの上位４ビット分のビット列がアクセスアドレスから取り除かれる。これによって、１６個重複するエントリをメモリ部５１に格納されたページテーブルに予め用意する必要性を解消することができる。
【００４０】
次に、メモリアクセスする（Ｓ１０３）。具体的には、メモリ制御回路５０は、アドレスシフト回路から伝達したアクセスアドレスにより、該当するエントリを特定する。メモリ制御回路５０は、エントリから所望の情報（物理アドレス番号等）をリードし、これをＣＰＵコア１０に伝送する。
【００４１】
次に、更新処理をする（Ｓ１０４）。具体的には、ＣＰＵコア１０は、メモリ制御回路５０から伝達した情報（物理アドレス番号等）を、ＴＬＢ１１上のエントリに格納する。このようにして、ＴＬＢ１１は更新される。
【００４２】
次に、仮想アドレスを物理アドレスに変換する（Ｓ１０５）。具体的には、ＣＰＵコア１０は、更新されたＴＬＢ１１を活用して仮想アドレスを物理アドレスに変換する。具体的には、ＣＰＵコア１０は、仮想アドレスに含まれる仮想ページ番号に基づいてＴＬＢから物理ページ番号をリードし、リードした物理ページ番号にオフセットを付加することによって、物理アドレスを生成する。そして、ＣＰＵコア１０は、生成した物理アドレスにより指定された番地へデータアクセスをする。このようにして、ＴＬＢミスが生じたとしても、ＴＬＢの更新処理により、仮想アドレスを物理アドレスに変換することが担保される。
【００４３】
上述の説明から明かなように、本実施形態によれば、何らの対策もとらない場合と比較して、図８に示すようにページテーブルのエントリ数を低減することができる。これによって、ページテーブルに割り当てられる記憶領域の回路面積を効果的に低減することができる。このように回路面積の増大を伴うことなく、１ＭＢのページサイズをサポートする既存のハードウェアで１６ＭＢのページサイズをサポートすることができる。
【００４４】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。サポートするページサイズは任意であり、１６ＭＢに限られるものではない。アクセスアドレスの変換方式は任意である。シフト、マスクと把握される方法以外で、アクセスアドレスを変換しても良い。
【符号の説明】
【００４５】
１００    情報処理装置
１０    ＣＰＵコア
２０    内部バス
３０    ページテーブル管理回路
４０    アドレス変換回路
４１    ページモードレジスタ
４２    シフトコード生成回路
４３    アドレスシフト回路
５０    メモリ制御回路
５１    メモリ部
【図１】
2010244165.tif 000003
【図２】
2010244165.tif 000004
【図３】
2010244165.tif 000005
【図４】
2010244165.tif 000006
【図５】
2010244165.tif 000007
【図６】
2010244165.tif 000008
【図７】
2010244165.tif 000009
【図８】
2010244165.tif 000010