(57)【要約】【課題】高周波化に追随できるバス装着型情報処理装置を提供すること。【解決手段】ネットワークインタフェース１００には、応答データを確実に転送できる状態に整えるためのプリフェッチ要求フェーズと、応答データが確実に転送できる状態に整った後にＣＰＵ１に転送するためのデータ転送フェーズとを設ける。ＣＰＵ１からネットワークインタフェース１００へプリフェッチ要求を発すると、メモリバスインタフェース１２０が、指定されたアドレスに基づいて外部メモリ１４０〜１４３からバッファメモリ１２５まで該当するデータを移動しておく。プリフェッチ要求を発してから所定時間が経過した後に、ＣＰＵ１からネットワークインタフェース１００へ実際のリード要求を発すると、メモリバスインタフェース１２０が、ＢＩＯＳで規定される所定のタイミングで、応答データをバッファメモリ１２５からメモリバス１０に出力する。【選択図】    図１
2004272576.tif 000002
【特許請求の範囲】
【請求項１】
主装置に接続される情報処理装置において、
情報処理に必要なデータを記憶するための外部メモリと、
前記主装置から与えられる第１の要求に応答して、前記外部メモリに記憶したデータを含む応答データを前記主装置へ転送できる状態に準備する準備手段と、
前記準備手段による準備が完了した後に前記主装置から与えられる第２の要求に応答して、前記応答データを前記主装置へ転送する転送手段とを備えたことを特徴とする情報処理装置。
【請求項２】
前記準備が完了したか否かを示す状態情報を保持する保持手段を更に備えたことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記主装置は、前記情報処理装置から前記保持手段に保持された状態情報を読み取り、前記状態情報に基づいて前記準備手段による準備が完了したか否かを判断し、該準備が完了したと判断した場合に前記第２の要求を発することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記主装置は、前記第１の命令を発してから予め定められた時間以上が経過した場合に前記第２の要求を発することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記準備手段は、前記主装置が要求する前記外部メモリにあるデータを予め記憶する一時記憶手段を更に備え、前記主装置が前記外部メモリにアドレス順とは異なる不連続なアクセスを要求する場合に、前記外部メモリとの間で前記不連続なアクセスを行い、予め前記主装置が要求するデータを前記一時記憶手段に準備しておくことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記主装置のメモリバスに装着するための手段を更に備えたことを特徴とする請求項１に記載の情報処理装置。
【請求項７】
主装置が複数回に渡って出力した１つのアドレスに関する複数のアドレス情報を保持する手段と、前記保持したアドレス情報を用いて前記主装置がアクセスを要求する前記外部メモリのアドレスを再構成するアドレス情報再構成手段を更に備えたことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記主装置に設けられたメモリスロットに装着するための手段を更に備えたことを特徴とする請求項１に記載の情報処理装置。
【請求項９】
前記主装置が、前記メモリスロットに装着されると想定する第１の記憶領域を持つメモリモジュールに記憶可能なデータ量よりも、前記外部メモリの方がより多くの量のデータを記憶できる第２の記憶領域を備えている場合に、該第２の記憶領域を前記第１の記憶領域と同じか又はより小さい記憶領域に分割し、前記第１の記憶領域に該分割した記憶領域を割り当てることによって、前記メモリスロットを介して前記主装置から前記外部メモリの記憶領域全てをアクセス可能にする手段を更に備えたことを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記主装置を構成する基板上のメモリ制御部と前記メモリスロットとの間を結ぶ各信号線の対応関係の不整合を解消するための整合手段を更に備えたことを特徴とする請求項８に記載の情報処理装置。
【請求項１１】
前記整合手段は、前記メモリ制御部と前記メモリスロットとの配線におけるバイト単位の不整合を解消するバイト単位整合手段と、ビット単位の不整合を解消するビット単位整合手段とを含むことを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
前記整合手段は、前記不整合を解消するために用いるデータを、前記メモリスロットを介して前記主装置へ出力する前記不整合解消のための初期化動作を行う初期化手段を含むことを特徴とする請求項１０に記載の情報処理装置。
【請求項１３】
前記整合手段は、前記不整合を解消するために用いる全ビットが同一の値を持つデータを、前記メモリスロットを介して前記主装置から入力する前記不整合解消のための初期化動作を行う初期化手段を備えたことを特徴とする請求項１０に記載の情報処理装置。
【請求項１４】
主装置に接続される、外部メモリを搭載した情報処理装置におけるデータ転送方法であって、
前記主装置から与えられる第１の要求に応答して、前記外部メモリに記憶したデータを含む応答データを前記主装置へ転送できる状態に準備するステップと、
前記準備が完了した後に前記主装置から与えられる第２の要求に応答して、前記応答データを前記主装置へ転送するステップとを有することを特徴とするデータ転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、パーソナルコンピュータやワークステーション等の主たる情報処理装置（マスタ装置）のメモリバスやメモリスロットなどに装着されるネットワークインタフェースやコプロセッサ等の情報処理装置及びデータ転送方法に関する。
【０００２】
【従来の技術】
従来、ＤＳＰなどをＤＩＭＭに代表されるメモリモジュールに搭載するための規格であるプロセッサ搭載メモリモジュール（ＰＥＭＭ）の仕様が制定され、パソコンのノースブリッジ側をメモリモジュール側から待たせるための信号が定義されている（例えば、非特許文献１参照）。しかし、ＰＥＭＭ規格に準拠したノースブリッジは開発されておらず、その見通しも立っていない。
【０００３】
ＰＣＩバス等のＩ／Ｏバスの限界を超える高性能なネットワークインタフェースのアーキテクチャとして、パソコンのメモリスロットに装着されるネットワークインタフェースが提案されており、ＰＥＭＭ規格に準拠していない通常のＳＤＲタイプのＤＩＭＭスロットに装着されるＤＩＭＭｎｅｔ−１プロトタイプが試作され、論文等で発表された（例えば、非特許文献２参照）。ＤＩＭＭｎｅｔ−１では、低遅延なＦＥＴ型バススイッチを用い、ホスト側アクセスを優先する制御を行うことで、パソコンのＢＩＯＳで設定されたタイミングで必ずリードやライトを行えるように設計されていた。
【０００４】
一方、パソコンのメモリスロットはＳＤＲ型からＤＤＲ型へと高速化が進んでおり、メモリスロット装着型ネットワークインタフェースにおいてもＤＤＲ型のメモリスロットのような高速化に追随できる方式が望まれている。
【０００５】
この従来のＤＩＭＭｎｅｔ−１では、複数のＦＥＴ型バススイッチを介して複数のＳＯ−ＤＩＭＭモジュールやＬＳＩがＤＩＭＭスロットに接続される構成をとることで、ネットワーク側とホスト側とで共有されるメモリ領域を実現している。そのため、ＤＩＭＭｎｅｔ−１の構成では、メモリモジュールのみがメモリスロットに搭載される場合の容量性負荷の値よりも大きな容量性負荷がバスに接続されてしまい、タイミングマージンの少ないＤＤＲ等の高速なメモリに対応することは困難であった。
【０００６】
タイミング的問題の解決においては、フリップフロップで受け取ってから次のサイクルで転送をすることが有効なケースが多いが、同期ＤＲＡＭモジュールへのリードアクセスでは、アクセス要求からホストのＢＩＯＳで規定される所定のクロックサイクル後に要求されたデータをメモリバスに出力しなければならない。そのため、メモリスロットとメモリモジュールとの間にフリップフロップを挿入することは、とりわけリードに対するＢＩＯＳで規定できる制限の範囲におさめることが困難であった。
【０００７】
さらに、上記のタイミング的制約があるために、従来のＤＩＭＭｎｅｔ−１においては、マザーボードごとに異なる、ノースブリッジチップ等に搭載されるメモリ制御部とメモリスロットと間の配線規則のばらつきに対して、ハード的に対応ができず、データ線のねじれに関してはホストとなるパソコン上でのソフト的な修正が必要になり、これが性能低下の原因となっていた。ＲＯＷアドレスとＣＯＬＵＭＮアドレスに折畳まれて出力される物理アドレスの再構成についても、処理上のタイミングに制約があることから、汎用な再構成を行うことができる回路を備えることは困難であった。
【０００８】
さらに、上記のタイミング的制約があるために、従来のＤＩＭＭｎｅｔ−１においては、搭載するメモリバンク数を二つより多くすることができなかった。また、ノースブリッジが想定する一つのメモリスロットに割り当てられる記憶容量の制限があるために、それを越える記憶容量をＤＩＭＭｎｅｔ−１に持たせることができなかった。このようなアドレス空間の狭さという制約を解決するために、類似した従来技術としてはＥＭＳ（Ｅｘｐａｎｄｅｄ  Ｍｅｍｏｒｙ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）がある。しかし、これを利用できるシステムでは例えば４ＧＢをリニアにアドレシングできるＣＰＵであるｉ８０３８６等のハード的には広い空間をアドレシングできるようにパーソナルコンピュータ本体にあらかじめ構成されたハードウェアの使用が必要であり、狭い領域へのアドレス手段しか持たないメモリスロットという既にあるハードに対して後付けされるメモリモジュールへの容量拡張を行うものではない。
【０００９】
また、通常のメモリモジュールやＤＩＭＭｎｅｔ−１を含む、従来のメモリスロットに搭載されるデバイスは、ホストのＣＰＵからアクセスされるにあたって、キャッシングされる領域に関してはキャッシュライン単位でのアクセスがなされるために、多次元配列のアクセス時に多発する等間隔アクセスなどの不連続アクセスに関しては不必要なデータまでＣＰＵのキャッシュに転送することになり、キャッシュやメモリバスの利用効率の低下を招いていた。ベクトル型スーパーコンピュータにはこのような問題を回避する等間隔アクセスやリストベクトルアクセスを支援するベクトルロードストアパイプラインやベクトルレジスタが存在するが、通常、ＰＣクラスタを構成する汎用のパーソナルコンピュータには、このようなベクトルレジスタや特殊なメモリコントローラを装備されていない。そこで、汎用のパーソナルコンピュータ上で上記の問題を回避する方式が望まれる。
【００１０】
【非特許文献１】
日本電子機械工業会  “日本電子機械工業会規格：プロセッサ搭載メモリ・モジュール（ＰＥＭＭ）動作仕様標準”，  ＥＩＡＪ  ＥＤ−５５１４  （Ｊｕｌ．  １９９８）
【００１１】
【非特許文献２】
田邊，  山本，  濱田，  中條，  工藤，  天野  ：  ＤＩＭＭスロット搭載型ネットワークインタフェースＤＩＭＭｎｅｔ−１とその高バンド幅通信機構ＢＯＴＦ，  情報処理学会論文誌，  Ｖｏｌ．４３，  Ｎｏ．４，  ｐｐ．８６６−８７８  （Ａｐｒ．  ２００２）
【００１２】
【発明が解決しようとする課題】
以上説明したように、メモリバスに装着される情報処理装置において、ＤＤＲ等の高速な周波数に対応することは困難であった。また、マザーボードごとに異なる、ノースブリッジチップ等に搭載されるメモリ制御部とメモリスロットとの間の配線規則のばらつきに対して、ハード的に対応することも困難であった。アドレス再構成についても柔軟な再構成回路を挿入することが困難であった。さらに、デバイス上に搭載するメモリバンク数を二つより多くして記憶容量拡張を行うことも困難であった。さらに、汎用のパーソナルコンピュータ上で不連続アクセスを行った場合に無駄なデータをＣＰＵのキャッシュに取り込んでしまうという問題があった。
【００１３】
本発明は、上記事情を考慮してなされたもので、マスタ装置に接続される情報処理装置において、容量性負荷を増やすことなく高周波化に追随できる情報処理装置及びデータ転送方法を提供することを目的とする。
【００１４】
また、本発明は、マザーボードごとに異なるメモリ制御部とメモリスロットとの間の配線規則のばらつきに対してもハード的に対応できる情報処理装置及びデータ転送方法を提供することを目的とする。
【００１５】
また、本発明は、アドレスの表現方法であるチップセットごとに異なるアドレス重畳規則のばらつきに対しても、柔軟に対応できる情報処理装置及びデータ転送方法を提供することを目的とする。
【００１６】
また、本発明は、利用できる半導体メモリ容量も大きくできる情報処理装置及びデータ転送方法を提供することを目的とする。
【００１７】
また、本発明は、等間隔アクセス等の不連続アクセスを効率的に行える情報処理装置及びデータ転送方法を提供することを目的とする。
【００１８】
【課題を解決するための手段】
本発明は、主装置に接続される情報処理装置において、情報処理に必要なデータを記憶するための外部メモリと、前記主装置から与えられる第１の要求に応答して、前記外部メモリに記憶したデータを含む応答データを前記主装置へ転送できる状態に準備する準備手段と、前記準備手段による準備が完了した後に前記主装置から与えられる第２の要求に応答して、前記応答データを前記主装置へ転送する転送手段とを備えたことを特徴とする。
【００１９】
本発明によれば、容量性負荷を増やすことなく高周波化に追随できるようになる。
【００２０】
好ましくは、前記準備が完了したか否かを示す状態情報を保持する保持手段を更に備えるようにしてもよい。
【００２１】
また、好ましくは、前記準備手段は、前記外部メモリに対するアドレスから見て不連続なアクセスを行って、前記主装置へのデータ転送を抑制する手段を含むようにしてもよい。
【００２２】
本発明によれば、マザーボードごとに異なる、ノースブリッジチップ等に搭載されるメモリ制御部とメモリスロットとの間の配線規則のばらつきに対してもハード的に対応できるようになる。
【００２３】
また、好ましくは、前記外部メモリが、前記メモリスロットに装着されると前記主装置が想定する第１の記憶領域を持つメモリモジュールに記憶可能なデータ量よりも多くの量のデータを記憶できる第２の記憶領域を備える場合に、該第２の記憶領域を前記第１の記憶領域より小さい記憶領域に分割し、前記第１の記憶領域に該分割した記憶領域を割り当てることによって、前記メモリスロットを介して前記主装置から前記外部メモリの記憶領域全てをアクセス可能にする手段を更に備えるようにしてもよい。
【００２４】
本発明によれば、利用できる半導体メモリ容量も大きくできるようになる。
【００２５】
また、好ましくは、前記マスタ装置を構成する基板上のメモリ制御部と前記メモリスロットとの間の各信号線の対応関係の不整合を解消する整合手段を更に備えるようにしてもよい。
【００２６】
また、好ましくは、前記主装置が出力したアドレス情報を情報処理装置が認識できたかどうかを知得し、アドレスの再構成を行うための制御情報を生成する手段と、その制御情報をもとに物理アドレスの再構成を行う手段を更に備えるようにしてもよい。
【００２７】
本発明によれば、外部メモリに対するアドレス的に等間隔なアクセスといった不連続なアクセスについても効率的なアクセスが可能となる。
【００２８】
また、本発明は、主装置に接続される、外部メモリを搭載した情報処理装置におけるデータ転送方法であって、前記マスタ装置から与えられる第１の要求に応答して、前記外部メモリに記憶したデータを含む応答データを前記主装置へ転送できる状態に準備するステップと、前記準備が完了した後に前記主装置から与えられる第２の要求に応答して、前記応答データを前記マスタ装置へ転送するステップとを有することを特徴とする。
【００２９】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
【００３０】
（第１の実施形態）
以下では、情報処理装置の一例としてメモリバス装着型のネットワークインタフェース装置に本発明を適用した場合を例にとって説明する。
【００３１】
図１に、本実施形態に係るメモリバス装着型ネットワークインタフェース装置（情報処理装置）の構成例を示す。
【００３２】
図１に示されるように、マスタ装置となるホストコンピュータのＣＰＵ１のメモリバス１０上に、本発明を適用したメモリバス装着型のネットワークインタフェース１００が配置される。
【００３３】
ネットワークインタフェース１００には、ネットワーク制御部１１０と、プリフェッチ制御機能付メモリバスインタフェース１２０（以下、プリフェッチ制御機能付を省略してメモリバスインタフェース１２０と呼ぶ）と、外部メモリ制御部１３０と、この例では４個の外部メモリ１４０〜１４３とが搭載されている。また、メモリバスインタフェース１２０は、バッファメモリ１２５を含む。なお、図１では、ネットワーク制御部１１０とメモリバスインタフェース１２０と外部メモリ制御部１３０とは１つのＬＳＩ１５０上に形成される場合を例示している。
【００３４】
外部メモリ１４０〜１４３には、送受信に関わるデータの全部又は一部が記憶される。ＣＰＵ１及びネットワークインタフェース１００のネットワーク制御部１１０は、この外部メモリ１４０〜１４３にアクセスして送受信に関わるデータを読み書きする。さらに、ＣＰＵ１が制御用のデータをネットワーク制御部１１０に対して読み書きすることにより、ネットワーク制御部１１０が外部メモリ１４０〜１４３にアクセスしつつ、ＣＰＵ１から指令された通信を実行することでネットワークインタフェースとしての機能を果たす。
【００３５】
通常、パーソナルコンピュータ等のホストコンピュータは、メモリ制御部（図示せず）を有するノースブリッジ２と称される量産型のＶＬＳＩによって、ＣＰＵ１と主記憶４，５との間が接続されており、あるいはまた、一部のものでは該メモリ制御部がＣＰＵ１に搭載されており、いずれにしても、該メモリ制御部が直接メモリバス１０に接続され、主記憶４，５をアクセスする。組み込み用のボードコンピュータでもパーソナルコンピュータ用に開発された量産型ノースブリッジを用いていることが多い。
【００３６】
これらのような量産型ノースブリッジを用いているホストコンピュータでは、ＢＩＯＳ設定によって若干のタイミング修正が可能であるものの、リード要求開始から応答データがメモリバス１０上に出力されるまでのタイミングを柔軟に変更することはできない。
【００３７】
図１のようにＣＰＵ１が外部メモリ１４０〜１４３にリードアクセスするためにメモリバスインタフェース１２０を構成するＬＳＩを通過して応答データを返す場合は、ＢＩＯＳ設定によるタイミング修正では間に合わなくなる可能性が高いし、かりにＢＩＯＳ設定によるタイミング修正で間に合ったとしても、通常の主記憶４，５の全体まで遅くなってしまう。他方、バッファメモリ１２５は、メモリバスインタフェース１２０と緊密な位置に配置される高速なメモリであるため、バッファメモリ１２５にあるデータをＣＰＵ１がリードする場合は、ＢＩＯＳ設定によるタイミングでアクセスが可能である。
【００３８】
そこで、本実施形態では、応答データを確実に転送できる状態に整えるためのプリフェッチ要求フェーズと、応答データが確実に転送できる状態に整った後にこれをマスタ装置に転送するためのデータ転送フェーズとを設けている。
【００３９】
まず、プリフェッチ要求フェーズでは、「ＣＰＵ１からの所定のアクセス（例えばプリフェッチ要求を指示するために割り当てられた領域への書き込みなど）によって指定されるアドレスにあるデータを、メモリバスインタフェース１２０が、（外部メモリから）バッファメモリ１２５まで移動すること」を要求する。
【００４０】
そして、データ転送フェーズでは、上記要求を発してから、ソフトウェア的に挿入される所定の遅延の後に、実際のリード要求をＣＰＵ１が行うと、メモリバスインタフェース１２０は、ＢＩＯＳで規定される所定のタイミングで、応答データをバッファメモリ１２５からメモリバス１０に出力する。
【００４１】
本実施形態における方式は、バッファメモリ１２５まで必要なデータがプリフェッチされている状態で実際のリード要求を出した場合に正しく動作するが、プリフェッチされる前にＣＰＵ１がリード要求を出した場合には正しいデータがデータバスに正しいタイミングで出力されない。ソフトウェア的に挿入される所定の遅延を正しく動作できる量にするためには種々の方式があり得る。
【００４２】
例えば、アドレスや状態によらず、ある時間以上の遅延を挿入すればよいメモリをアクセスする場合は、通常の同期ＤＲＡＭを主記憶とするパーソナルコンピュータのＢＩＯＳ設定のようにその遅延値を初期値として設定しておき、必ずその値以上の遅延値を実現するループやＮＯＰ命令を実行後に実際のリード要求を実行すればよい。
【００４３】
一方、アドレスや状態によってバッファメモリ１２５まで必要なデータがプリフェッチされるまでの時間が大きく変動して最大遅延値を与えられない構成の場合は、例えば、その一部のデータブロック（例えば８バイト）ごとにプリフェッチが完了したか否かを示すフラグを設け、ＣＰＵ１は、そのフラグをリードして、そのフラグの状態がプリフェッチ完了を示す値になったどうかを監視し、プリフェッチ完了を示す値になったことが確認された場合に限り、実際のリード要求を出すようにすればよい。このようにすれば、柔軟なプリフェッチ遅延に対応することが可能になる。ここで、フラグは、メモリバスインタフェース１２０に緊密な位置に配置されたレジスタで実装されるなどして、遅延をはさまなくてもＣＰＵ１からリードできるようにするのが望ましい。
【００４４】
複数（例えば６４ビット）のフラグの状態を１回のリードアクセスにより取得可能な場合は、複数（例えば６４ブロック）のプリフェッチ状態を１回のリードアクセスにより取得可能となるので、例えばバッファメモリが６４個の８バイトブロックからなり６４ブロック分のプリフェッチ要求を出しておくことで、１回のフラグチェックによって最高で６４ブロックがプリフェッチ完了状態にあることがわかるようになるため、フラグチェックのオーバーヘッドを減少させることが可能である。
【００４５】
ここで、図４に、従来のメモリバス装着型ネットワークインタフェースを示す。２個の外部メモリ１１４８，１１４９、外部メモリ制御部１１３１、ＦＥＴスイッチ１３０〜１３３、メモリバスインタフェース１１２１、ネットワーク制御部１１１０から構成されるネットワークインタフェースが、メモリスロットに装着されることで、メモリバスに接続される。メモリバスには、ＦＥＴスイッチ１１３０，１１３１とメモリスロットインタフェース１１２１が負荷として接続されることになる。
【００４６】
これに対して図１で例示した本実施形態のメモリバス装着型ネットワークインタフェースおいては、プリフェッチ制御機能付メモリバスインタフェース１２０のみがメモリバス１０に接続されることになるので、従来よりも周波数の高いメモリバス１０に対しても適用可能となる。
【００４７】
また、図４の従来例では、これ以上メモリバスへの容量性負荷を増やすことが困難であったために、外部メモリを３個以上に増設することができなかった。
【００４８】
これに対して本実施形態では、外部メモリ増設における容量性負荷の増加の問題がないので、従来と異なり、３個以上の外部メモリを搭載することも可能になる。例えば、図１の構成例では、４個の外部メモリ１４０〜１４３を搭載しているが、そのことでホスト１上のメモリバス１０への容量性負荷の増加を発生させることはない。
【００４９】
なお、本実施形態では、マスタ装置であるパーソナルコンピュータ本体の基板上に実装されたネットワークインタフェースへの適用について示したが、メモリスロットに装着可能な形式に変形することもできるし、ネットワーク制御部が無い大容量かつ高機能な拡張用メモリモジュールとして変形することもできるし、ネットワーク制御部をＤＳＰやリコンフィギャブルプロセッサなどの他の形態の処理装置に置き換えたコプロセッサモジュールとして変形することもできる。
【００５０】
（第２の実施形態）
以下では、情報処理装置の一例としてメモリスロット装着型のネットワークインタフェース装置に本発明を適用した場合を例にとって説明する。
【００５１】
図２に、本実施形態に係るメモリスロット装着型ネットワークインタフェース装置（情報処理装置）の構成例を示す。
【００５２】
図１（第１の実施形態）の構成例では、マスタ装置であるパーソナルコンピュータ本体の基板上にネットワークインタフェースが実装されている場合を例にとって示しているが、図２では、メモリスロットに装着可能な形式となっており、不連続領域プリフェッチ機能付メモリスロットインタフェース１２１（以下、不連続領域プリフェッチ機能付を省略してメモリスロットインタフェース１２１と呼ぶ）を備えている。なお、プリフェッチ要求フェーズとデータ転送フェーズとを使用できるようにしている点は、第１の実施形態と同様である。
【００５３】
さらに、メモリスロットインタフェース１２１は、ノースブリッジチップ（図１参照）又はＣＰＵ（図１参照）に搭載されるメモリ制御部（第１の実施形態参照）とメモリスロットとの間の配線のねじれを解消するための、ねじれ解消回路２００並びにねじれ検出値出力回路２１０及びねじれ設定値入力回路２２０を含んでいる。また、外部メモリ制御部としては、アドレス拡張機能付きの外部メモリ制御部１３１を備えている。
【００５４】
ここでいう配線のねじれとは、メモリ制御部が想定する信号線とメモリスロットに装着されるメモリモジュールの設計上定まる信号線との関係が異なっている状態を指す。通常のメモリモジュールの場合、たとえば複数あるデータ線のうち、１のデータ線がメモリスロット上に装着されたメモリモジュールのデータ線に割り当てられたいずれのビットに接続されていても構わない。データ線であればそれがメモリモジュールのいずれのビットに接続されていても、メモリ制御部に接続されたデータ線で見たときにデータの書き込み時に与えた情報と読み出した時の情報とが同一であれば利用上なんら問題とならないからである。このため、同一規格のメモリモジュールであっても、メモリ制御部の設計によってはデータ線とメモリモジュールの結線関係が異なる場合があるのである。
【００５５】
なお、メモリ制御部がノースブリッジチップに搭載される場合を想定して説明するが、メモリ制御部がＣＰＵに搭載される場合も同様である。
【００５６】
ホストとなるパソコンにおいて、メモリ制御部すなわちノースブリッジチップとメモリスロットとの間の配線は、そのマザーボードによっては図３に例示するように必ずしも、ノースブリッジチップのデータビット０がメモリスロットのデータビット０に接続されているとは限らない。図３の配線例では、６４ビット幅データのメモリバスについて示しており、ＮＤ００〜ＮＤ７７の８進数二桁で区別できるノースブリッジチップ側の各ビット線がＤ００〜Ｄ７７の８進数二桁で区別できるメモリスロット側の各ビット線にバイト単位のねじれとビット単位のねじれの組み合わせによって複雑にねじれて接続されている様子を示している。
【００５７】
メモリスロットに装着可能な形式の場合、従来のメモリスロット装着型ネットワークインタフェースにおいては、このようなマザーボードごとに異なるノースブリッジチップとメモリスロットとの間の配線規則のばらつきに対して、ＢＩＯＳで設定されるタイミングでリードの応答を返す必要性から、このような多様にして複雑なねじれをハード的に対応するだけのタイミング的余裕ができず、データ線のねじれに対してはホストとなるパソコン上でのソフト的な修正が必要になり、これが性能低下の原因となっていた。
【００５８】
一方、図２の構成例では、第１の実施形態と同様にプリフェッチ要求フェーズとデータ転送フェーズの使用によって、リードに対するタイミング制約が緩和されるので、ノースブリッジチップとメモリスロットとの間の配線のねじれを解消するねじれ解消回路２００を具備したとしても、タイミング制約を満たすことが可能になる。
【００５９】
このように本実施形態によれば、高い周波数で動作するメモリバスを持つ種々のマザーボードに対応可能なメモリスロット装着型情報処理装置を構築することが可能になる。
【００６０】
ねじれ解消回路２００としては、最も柔軟性が大きいのはメモリバスのデータバスビット幅の入力と出力を有するクロスバースイッチによって実現するケースであるが、回路規模がデータバスビット幅の２乗に比例するため大きくなってしまう。一方、通常のマザーボードではバイト単位での主記憶への書き込みを許しているために、バイト単位で設置される書き込みイネーブル信号があり、このためバイト単位で同一のメモリチップに導かれる必要があり、配線規則もその制約を守っているのが一般的である。
【００６１】
そこで、その性質を利用して、ねじれ解消回路２００の中に、バイト単位配線ねじれ解消部とビット単位配線ねじれ解消部とを設けるようにしてもよい。例えば、６４ビット幅のメモリバスに対応可能なねじれ解消回路２００としては、フルクロスバースイッチ方式で実装すると６４入力１出力のマルチプレクサが６４個必要になり、クロスポイント換算で４０９６個のスイッチが必要である。これに対して、バイト単位配線ねじれ解消部とビット単位配線ねじれ解消部とを設けた場合は、バイト単位配線ねじれ解消には８入力１出力のマルチプレクサが６４個必要であり、ビット単位配線ねじれ解消にも８入力１出力のマルチプレクサが６４個必要であり、クロスポイント換算で１０２４個のスイッチが必要である。このように、バイト単位配線ねじれ解消部とビット単位配線ねじれ解消部とを設けることによって、回路規模を節約することが可能となる。メモリバスのビット幅が増加すると、この差はさらに大きなものになる。
【００６２】
上記の場合において、マルチプレクサの制御情報は、マザーボード毎に異なるのが一般的であり、どのようにねじれているのかを知らないとねじれ解消を正しく行える設定が不可能である。これを総当り式に設定を試して正しく動作するかという試行錯誤から突き止めるには、６４ビット幅のデータバスの場合は８の１２８乗回の試行が必要であり、現実的ではない。
【００６３】
そこで、図２の構成例では、１ビットだけ他のビットと異なるデータをメモリスロットに出力する初期化動作を行うためのねじれ検出値出力回路２１０を設ける。所定のタイミングで所定のビットの値のみを他の全てのビットの値（例えば０）と異なる値（例えば１）にするための制御については、例えば、ＬＳＩの入出力セルにスキャンパスが組み込まれている場合にはそれを利用してもよいし、あるいは、専用の状態機械を設けて初期化の際にホストからの読み出しを受けて１ビットだけ他のビットと異なるデータをメモリスロットに出力させるようにしてもよい。このようにして、ホスト側ではＬＳＩのどのビット線がホストのチップセット側のどのデータ線に接続されているかということを認識することが可能になる。
【００６４】
上記の過程等によって得られたマルチプレクサ制御情報は、外部ＲＯＭや保守用のシリアルバスから入力する方式もあり得るが、それらは別途ハードウェアが必要であり、柔軟性にも欠ける。一方、データ配線がねじれた状態では、データ幅全てを使って設定情報を正しく入力することは不可能である。
【００６５】
そこで、本実施形態では、全ビットが同一なデータをメモリバスから入力する初期化動作を行うねじれ設定値入力回路２２０を設ける。これにより、メモリバス装着型情報処理装置側では、データ配線がいかなるねじれ方をしていても、それを冗長なシリアル通信路と解釈して任意のビットのデータ線のデータを取り込むことで、ホストから正しく情報を受け取ることが可能である。こうして伝達されたマルチプレクサ制御情報を設定した後は、データバスの全ビットがねじれ解消回路２００によって正しい位置に修正されるので、全ビットのバンド幅を使ってホストとのデータ授受を行うことが可能になる。
【００６６】
本実施形態では、マザーボードごとに異なるデータ線のねじれに対応する回路について述べたが、チップセットごとに異なるアドレス重畳規則に対応する回路にも、本発明によるタイミング制約の緩和は貢献する。例えば従来例であるＤＩＭＭｎｅｔ−１では、タイミング制約が厳しかったこともあり、予めアドレス重畳規則の仕様がデータシートから判明している既存の少数のノースブリッジのみに対応する簡素なアドレス再構成回路しか挿入できなかった。
【００６７】
それに対し、本発明によればアドレス再構成のための制約が緩和され、あらゆる重畳規則にも対応できる柔軟なアドレス再構成回路を挿入することができる。  好ましくは、ノースブリッジが二回に分けて出力した物理アドレスを情報処理装置側で保持し、それを例えばスキャンパスなどを使ってチップの外に出力し、ホストから１ビットだけ１のアドレスをアドレスのビット幅の回数だけ出力して、出力された位置とそれが何回目かとを検査することでアドレス再構成回路制御情報を生成することができる。その制御情報にもとづけばアドレスを再構成するアドレス再構成回路を挿入することもできる。このようにすると、あらゆる重畳規則にも対応することが可能である。
【００６８】
また、本実施形態では、外部メモリ制御部１３１にアドレス拡張機能が備えられている。例えば、本メモリスロット装着型ネットワークインタフェースを装着するマスタ装置であるパーソナルコンピュータのメモリスロットが１個あたり上限５１２ＭＢまでのモジュールを受容できるものである場合、本ネットワークインタフェースに対してホストからある瞬間にアクセスできるのは上限５１２ＭＢまでに制限される。一方、外部メモリとして用いられるメモリモジュールとしては例えば５１２ＭＢのものまで入手できるとしても、図４に示されるような２個の外部メモリモジュール１１４８，１１４９を搭載する従来例では、該２個の外部メモリモジュール１１４８，１１４９には上限５１２ＭＢしかホストからアクセス可能な状態で利用することはできなかった。実際には、ネットワーク制御部などをホストからアクセス可能な空間にマップする必要があるので、メモリとして利用できる容量はさらに制限される。よって、主記憶として用いられるべきメモリスロットを一つネットワークインタフェースのために使用してしまったことにより、主記憶を大量に用いるアプリケーションの実行時にはハードディスクへのアクセスの増加に伴い処理性能が大幅に低下してしまう。
【００６９】
これに対して本実施形態のアドレス拡張機能付外部メモリ制御部１３１では、ある瞬間にはホスト側に見えていない領域へのアクセスを行う際に切り替えを行うことで、ホストとなるパーソナルコンピュータのメモリスロット容量制限よりも多くの外部メモリをホストからもアクセスできる。
【００７０】
また、例えば上限５１２ＭＢのメモリスロットに装着する場合でも、外部メモリモジュールとしては５１２ＭＢのメモリモジュールを４枚搭載して、例えば各外部メモリの１／４ずつをホスト側にアクセスできるようにマップするようにしてもよい。その領域以外の合計１．５ＧＢのメモリをホスト側からアクセスする場合は、ホスト側からの制御語の書き込み等によりマップの切り替えを行った後にアクセスする。その運用方法としては、例えば４プロセスに１／４ずつの領域を割り当て、プロセス切り替えに際にマップを切り替えてもよいし、一つのプロセスが全メモリ領域を割り当てられ、必要になったときに随時、マップを切り替えてアクセスすることで、ハードディスクをアクセスしなくても主記憶容量制約を超越する領域を高速にアクセスできる拡張大容量記憶として用いてもよい。このようにすれば、例えば２ＧＢまでの主記憶容量制約を持つパーソナルコンピュータ上で、主記憶に１．５ＧＢと本ネットワークインタフェース上の拡張大容量記憶に２ＧＢの合計３．５ＧＢの、ハードディスクをアクセスしなくても、アクセスできる記憶容量が実現でき、本ネットワークインタフェースを使うことによってハードディスクアクセスが増えないばかりでなく、逆にハードディスクアクセスを大幅に減らすことも可能になる。
【００７１】
また、本実施形態では、不連続領域プリフェッチ機能付きのメモリスロットインタフェース１２１を備えているので、プリフェッチ要求フェーズでは、「ホストコンピュータからの所定のアクセス（例えばプリフェッチ要求を指示するために割り当てられた領域のアドレスおよびアクセスパターンバリエーションからなるプリフェッチ要求指示語を書き込むアクセス）によって指定されるアドレスのデータを、不連続領域プリフェッチ制御機能付メモリバスインタフェース１２１が、（外部メモリから）バッファメモリ１２５まで移動すること」を要求する。アクセスパターンバリエーションとしては、等間隔アクセスを指定するデータ間隔やブロック長や語数などの種々のものがあり得る。これによって、マスタ装置への不必要なデータ転送を抑制する先取りを行うプリフェッチを行うことができ、等間隔アクセス等の不連続アクセスを効率的に行うことができる。
【００７２】
なお、本実施形態において、２つのフェイズによるプリフェッチ制御機能を実施することを前提として、ねじれ解消機能と、アドレス拡張機能と、不連続アクセス機能とは、独立して実施することが可能である。
【００７３】
なお、各実施形態で例示した構成は一例であって、それ以外の構成を排除する趣旨のものではなく、例示した構成の一部を他のもので置き換えたり、例示した構成の一部を省いたり、例示した構成に別の機能を付加したり、それらを組み合わせたりすることなどによって得られる別の構成も可能である。また、例示した構成と論理的に等価な別の構成、例示した構成と論理的に等価な部分を含む別の構成、例示した構成の要部と論理的に等価な別の構成なども可能である。また、例示した構成と同一もしくは類似の目的を達成する別の構成、例示した構成と同一もしくは類似の効果を奏する別の構成なども可能である。
【００７４】
また、各種構成部分についての各種バリエーションは、適宜組み合わせて実施することが可能である。
【００７５】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【００７６】
【発明の効果】
本発明によれば、容量性負荷を増やすことなく高周波化に追随できる情報処理装置を実現することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る情報処理装置の構成例を示す図
【図２】同実施形態に係る情報処理装置の他の構成例を示す図
【図３】マスタ装置上のノースブリッジチップとメモリスロットとの間の配線のねじれ方の例を示す図
【図４】従来の情報処理装置について説明するための図
【符号の説明】
１…ＣＰＵ、２…ノースブリッジ、３…サウスブリッジ、４，５…主記憶、１０…メモリバス、１００…ネットワークインタフェース、１１０…ネットワーク制御部、１２０…プリフェッチ制御機能付メモリバスインタフェース、１２１…不連続領域プリフェッチ制御機能付メモリスロットインタフェース、１２５…バッファメモリ、１３０…外部メモリ制御部、１３１…アドレス拡張機能付メモリ制御部、１４０，１４１，１４２，１４３…外部メモリ、１５０…ＬＳＩ、２００…ねじれ解消回路、２１０…ねじれ検出値出力回路、２２０…ねじれ設定値入力回路
【図１】
2004272576.tif 000003
【図２】
2004272576.tif 000004
【図３】
2004272576.tif 000005
【図４】
2004272576.tif 000006