(57)【要約】【課題】メモリバンクをインタリーブして、ＣＰＵ毎に使用するメモリバンクグループを割り当て、ＣＰＵ間のメモリバンク競合頻度を抑える。【解決手段】ソフトビジブルレジスタ１１は、バンクインタリーブモードを示す値がソフトウェア的に設定されると、その設定値をＯＳに通知する。アドレス生成部１２０，…，１２Ｎ−１は、ソフトビジブルレジスタ１１の設定値に応じて、ＣＰＵ１００，…，１０Ｎ−１から受け取ったバンク内アドレスおよびバンクアドレスを組み替えて出力する。セレクト信号生成回路１３は、各アドレス生成部１２０，…，１２Ｎ−１から出力されるバンクアドレスを入力し、メモリリクエストの競合を調停して１個のメモリバンクのセレクト信号を出力する。クロスバ部１４のセレクタ１４０，…，１４Ｍ−１は、セレクト信号に応じてバンク内アドレスを選択的に出力する。【選択図】図１
2005092374.tif 000002
【特許請求の範囲】
【請求項１】
Ｎ（自然数）個のＣＰＵとＭ（Ｍは２ｐ。ただし、ｐは２以上の整数）個のメモリバンクとがクロスバ部を介して接続されてなるコンピュータシステムにおいて、
バンクインタリーブモードを示す値がソフトウェア的に設定され、その設定値をＯＳに通知するソフトビジブルレジスタと、
前記ソフトビジブルレジスタの設定値が全バンクインタリーブモードを示すときには、ＣＰＵから受け取ったｙビットのバンク内アドレスおよびｘビットのバンクアドレスを出力し、前記ソフトビジブルレジスタの設定値が１／２バンクインタリーブモードを示すときには、バンク内アドレスの最上位ビットを除いた（ｙ−１）ビットおよびバンクアドレスの最上位ビットのビット列をバンク内アドレスとして出力するとともにバンク内アドレスの最上位ビットおよびバンクアドレスの最上位ビットを除いた（ｘ−１）ビットのビット列をバンクアドレスとして出力し、前記ソフトビジブルレジスタの設定値が１／４バンクインタリーブモードを示すときには、バンク内アドレスの上位２ビットを除いた（ｙ−２）ビットおよびバンクアドレスの上位２ビットのビット列をバンク内アドレスとして出力するとともにバンク内アドレスの上位２ビットおよびバンクアドレスの上位２ビットを除いた（ｘ−２）ビットのビット列をバンクアドレスとして出力するＮ個のアドレス生成部と、
各アドレス生成部から出力されるＮ個のバンクアドレスを入力し、メモリリクエストの競合を調停して１個のメモリバンクのセレクト信号を出力するセレクト信号生成回路と、
前記セレクト信号生成回路からのメモリバンクのセレクト信号に応じて前記アドレス生成部からのバンク内アドレスを選択的に出力するＭ個のセレクタからなるクロスバ部と、
各セレクタからのバンク内アドレスで各メモリバンクのアクセス制御を行うＭ個のメモリ制御部と
を有することを特徴とするメモリインタリーブ方式。
【請求項２】
前記ＯＳが、前記ソフトビジブルレジスタの設定値が全バンクインタリーブモードを示すときには全メモリバンクを全ＣＰＵに割り当て、前記ソフトビジブルレジスタの設定値が１／２バンクインタリーブモードを示すときには１／２ずつにインタリーブされたメモリバンクグループをＣＰＵ毎に割り当て、前記ソフトビジブルレジスタの設定値が１／４バンクインタリーブモードを示すときには１／４ずつにインタリーブされたメモリバンクグループをＣＰＵ毎に割り当てることを特徴とする請求項１記載のメモリインタリーブ方式。
【請求項３】
バンクインタリーブモードを、さらに１／８バンクインタリーブモード，１／１６バンクインタリーブモード，…と拡張したことを特徴とする請求項１または請求項２記載のメモリインタリーブ方式。
【請求項４】
Ｎ（自然数）個のＣＰＵとＭ（Ｍは２ｐ。ただし、ｐは自然数）個のメモリバンクとがクロスバ部を介して接続されてなるコンピュータシステムにおいて、
バンクインタリーブモードを示す値がソフトウェア的に設定され、その設定値をＯＳに通知するソフトビジブルレジスタと、
前記ソフトビジブルレジスタの設定値が１／２ｐバンクインタリーブモードを示すときには、バンク内アドレスの上位ｐビットを除いた（ｙ−ｐ）ビットおよびバンクアドレスの上位ｐビットのビット列をバンク内アドレスとして出力するとともにバンク内アドレスの上位ｐビットおよびバンクアドレスの上位ｐビットを除いた（ｘ−ｐ）ビットのビット列をバンクアドレスとして出力するＭ個のアドレス生成部と、
各アドレス生成部から出力されるＮ個のバンクアドレスを入力し、メモリリクエストの競合を調停して１個のメモリバンクのセレクト信号を出力するセレクト信号生成回路と、
前記セレクト信号生成回路からのメモリバンクのセレクト信号に応じて前記アドレス生成部からのバンク内アドレスを選択的に出力するＭ個のセレクタからなるクロスバ部と、
各セレクタからのバンク内アドレスで各メモリバンクの制御を行うＭ個のメモリ制御部と
を有することを特徴とするメモリインタリーブ方式。
【請求項５】
前記ソフトビジブルレジスタが、ユーザアプリケーションによって値を可変に設定可能であることを特徴とする請求項１，請求項２，請求項３または請求項４記載のメモリインタリーブ方式。
【請求項６】
前記ソフトビジブルレジスタが、ＯＳによって可変に値を設定可能であることを特徴とする請求項１，請求項２，請求項３または請求項４記載のメモリインタリーブ方式。
【請求項７】
Ｎ（自然数）個のＣＰＵと、Ｍ（Ｍは２ｐ。ただし、ｐは２以上の整数）個のメモリバンクとが、クロスバ部を介して接続されてなるコンピュータシステムにおいて、
バンクインタリーブモードを示す値が手動で設定され、その設定値をＯＳに通知するハードウェアスイッチと、
前記ハードウェアスイッチの設定値が全バンクインタリーブモードを示すときには、ＣＰＵから受け取ったｙビットのバンク内アドレスおよびｘビットのバンクアドレスを出力し、前記ハードウェアスイッチの設定値が１／２バンクインタリーブモードを示すときには、バンク内アドレスの最上位ビットを除いた（ｙ−１）ビットおよびバンクアドレスの最上位ビットのビット列をバンク内アドレスとして出力するとともにバンク内アドレスの最上位ビットおよびバンクアドレスの最上位ビットを除いた（ｘ−１）ビットのビット列をバンクアドレスとして出力し、前記ハードウェアスイッチの設定値が１／４バンクインタリーブモードを示すときには、バンク内アドレスの上位２ビットを除いた（ｙ−２）ビットおよびバンクアドレスの上位２ビットのビット列をバンク内アドレスとして出力するとともにバンク内アドレスの上位２ビットおよびバンクアドレスの上位２ビットを除いた（ｘ−２）ビットのビット列をバンクアドレスとして出力するＮ個のアドレス生成部と、
各アドレス生成部から出力されるＮ個のバンクアドレスを入力し、メモリリクエストの競合を調停して１個のメモリバンクのセレクト信号を出力するセレクト信号生成回路と、
前記セレクト信号生成回路からのメモリバンクのセレクト信号に応じてアドレス生成部からのバンク内アドレスを選択的に出力するＭ個のセレクタからなるクロスバ部と、
各セレクタからのバンク内アドレスで各メモリバンクの制御を行うＭ個のメモリ制御部と
を有することを特徴とするメモリインタリーブ方式。
【請求項８】
前記ＯＳが、前記ハードウェアスイッチの設定値が全バンクインタリーブモードを示すときには全メモリバンクを全ＣＰＵに割り当て、前記ハードウェアスイッチの設定値が１／２バンクインタリーブモードを示すときには１／２ずつにインタリーブされたメモリバンクグループをＣＰＵ毎に割り当て、前記ハードウェアスイッチの設定値が１／４バンクインタリーブモードを示すときには１／４ずつにインタリーブされたメモリバンクグループをＣＰＵ毎に割り当てることを特徴とする請求項７記載のメモリインタリーブ方式。
【請求項９】
バンクインタリーブモードをさらに１／８バンクインタリーブモード，１／１６バンクインタリーブモード，…と拡張したことを特徴とする請求項７または請求項８記載のメモリインタリーブ方式。
【請求項１０】
Ｎ（自然数）個のＣＰＵと、Ｍ（Ｍは２ｐ。ただし、ｐは２以上の整数）個のメモリバンクとが、クロスバ部を介して接続されてなるコンピュータシステムにおいて、
バンクインタリーブモードを示す値が手動で設定され、その設定値をＯＳに通知するハードウェアスイッチと、
前記ハードウェアスイッチの設定値が１／２ｐバンクインタリーブモードを示すときには、バンク内アドレスの上位ｐビットを除いた（ｙ−ｐ）ビットおよびバンクアドレスの上位ｐビットのビット列をバンク内アドレスとして出力するとともにバンク内アドレスの上位ｐビットおよびバンクアドレスの上位ｐビットを除いた（ｘ−ｐ）ビットのビット列をバンクアドレスとして出力するＭ個のアドレス生成部と、
各アドレス生成部から出力されるＮ個のバンクアドレスを入力し、メモリリクエストの競合を調停して１個のメモリバンクのセレクト信号を出力するセレクト信号生成回路と、
前記セレクト信号生成回路からのメモリバンクのセレクト信号に応じて前記アドレス生成部からのバンク内アドレスを選択的に出力するＭ個のセレクタからなるクロスバ部と、
各セレクタからのバンク内アドレスで各メモリバンクのアクセス制御を行うＭ個のメモリ制御部と
を有することを特徴とするメモリインタリーブ方式。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵグループとメモリバンクグループとがクロスバ部を介して接続されてなるコンピュータシステムに関し、特に効率のよいメモリアクセスのためのメモリインタリーブ方式に関する。
【背景技術】
【０００２】
従来のメモリインタリーブ方式では、図６に示すように、ルーティングアドレス生成部が、メモリアクセス命令毎に、メモリアクセスアドレスの一部であるルーティングアドレスの１ビットとメモリアクセスアドレスのルーティングアドレス以外の１ビットとの排他的論理和をとり、ルーティングアドレスの１ビットと置き換えて新たなルーティングアドレスとする。競合調停部は、ルーティングアドレスに従って主記憶部と接続する接続ポート毎にメモリリクエストの競合調停を行い、クロスバ部は、競合調停に従ってベクトル要素毎のメモリリクエストを各接続ポートに出力することにより、バンクインタリーブモードを可変とさせていた（特許文献１参照）。
【特許文献１】特開２００２−３４２３０６号（第６頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来のメモリインタリーブ方式では、複数のＣＰＵから発行されるメモリリクエスト間のメモリバンク競合による性能低下を改善することができないという問題点があった。
【０００４】
本発明の目的は、メモリバンクをインタリーブすることにより、メモリリクエスト間のメモリバンク競合を未然に防止してメモリスループットを向上させるメモリインタリーブ方式を提供することにある。
【課題を解決するための手段】
【０００５】
本発明のメモリインタリーブ方式は、Ｎ（自然数）個のＣＰＵとＭ（Ｍは２ｐ。ただし、ｐは２以上の整数）個のメモリバンクとがクロスバ部を介して接続されてなるコンピュータシステムにおいて、バンクインタリーブモードを示す値がソフトウェア的に設定され、その設定値をＯＳに通知するソフトビジブルレジスタと、前記ソフトビジブルレジスタの設定値が全バンクインタリーブモードを示すときには、ＣＰＵから受け取ったｙビットのバンク内アドレスおよびｘビットのバンクアドレスを出力し、前記ソフトビジブルレジスタの設定値が１／２バンクインタリーブモードを示すときには、バンク内アドレスの最上位ビットを除いた（ｙ−１）ビットおよびバンクアドレスの最上位ビットのビット列をバンク内アドレスとして出力するとともにバンク内アドレスの最上位ビットおよびバンクアドレスの最上位ビットを除いた（ｘ−１）ビットのビット列をバンクアドレスとして出力し、前記ソフトビジブルレジスタの設定値が１／４バンクインタリーブモードを示すときには、バンク内アドレスの上位２ビットを除いた（ｙ−２）ビットおよびバンクアドレスの上位２ビットのビット列をバンク内アドレスとして出力するとともにバンク内アドレスの上位２ビットおよびバンクアドレスの上位２ビットを除いた（ｘ−２）ビットのビット列をバンクアドレスとして出力するＮ個のアドレス生成部と、各アドレス生成部から出力されるＮ個のバンクアドレスを入力し、メモリリクエストの競合を調停して１個のメモリバンクのセレクト信号を出力するセレクト信号生成回路と、前記セレクト信号生成回路からのメモリバンクのセレクト信号に応じて前記アドレス生成部からのバンク内アドレスを選択的に出力するＭ個のセレクタからなるクロスバ部と、各セレクタからのバンク内アドレスで各メモリバンクのアクセス制御を行うＭ個のメモリ制御部とを有することを特徴とする。
【０００６】
また、本発明のメモリインタリーブ方式は、前記ＯＳが、前記ソフトビジブルレジスタの設定値が全バンクインタリーブモードを示すときには全メモリバンクを全ＣＰＵに割り当て、前記ソフトビジブルレジスタの設定値が１／２バンクインタリーブモードを示すときには１／２ずつにインタリーブされたメモリバンクグループをＣＰＵ毎に割り当て、前記ソフトビジブルレジスタの設定値が１／４バンクインタリーブモードを示すときには１／４ずつにインタリーブされたメモリバンクグループをＣＰＵ毎に割り当てることを特徴とする。
【０００７】
さらに、本発明のメモリインタリーブ方式は、バンクインタリーブモードをさらに１／８バンクインタリーブモード，１／１６バンクインタリーブモード，…と拡張したことを特徴とする。
【０００８】
さらにまた、本発明のメモリインタリーブ方式は、Ｎ（自然数）個のＣＰＵと、Ｍ（Ｍは２ｐ。ただし、ｐは自然数）個のメモリバンクとが、クロスバ部を介して接続されてなるコンピュータシステムにおいて、バンクインタリーブモードを示す値がソフトウェア的に設定され、その設定値をＯＳに通知するソフトビジブルレジスタと、前記ソフトビジブルレジスタの設定値が１／２ｐバンクインタリーブモードを示すときには、バンク内アドレスの上位ｐビットを除いた（ｙ−ｐ）ビットおよびバンクアドレスの上位ｐビットのビット列をバンク内アドレスとして出力するとともにバンク内アドレスの上位ｐビットおよびバンクアドレスの上位ｐビットを除いた（ｘ−ｐ）ビットのビット列をバンクアドレスとして出力するＭ個のアドレス生成部と、各アドレス生成部から出力されるＮ個のバンクアドレスを入力し、メモリリクエストの競合を調停して１個のメモリバンクのセレクト信号を出力するセレクト信号生成回路と、前記セレクト信号生成回路からのメモリバンクのセレクト信号に応じて前記アドレス生成部からのバンク内アドレスを選択的に出力するＭ個のセレクタからなるクロスバ部と、各セレクタからのバンク内アドレスで各メモリバンクの制御を行うＭ個のメモリ制御部とを有することを特徴とする。
【０００９】
また、本発明のメモリインタリーブ方式は、前記ソフトビジブルレジスタが、ユーザアプリケーションによって値を可変に設定可能であることを特徴とする。
【００１０】
さらに、本発明のメモリインタリーブ方式は、前記ソフトビジブルレジスタが、ＯＳによって可変に値を設定可能であることを特徴とする。
【００１１】
さらにまた、本発明のメモリインタリーブ方式は、Ｎ（自然数）個のＣＰＵと、Ｍ（Ｍは２ｐ。ただし、ｐは２以上の整数）個のメモリバンクとが、クロスバ部を介して接続されてなるコンピュータシステムにおいて、バンクインタリーブモードを示す値が手動で設定され、その設定値をＯＳに通知するハードウェアスイッチと、前記ハードウェアスイッチの設定値が全バンクインタリーブモードを示すときには、ＣＰＵから受け取ったｙビットのバンク内アドレスおよびｘビットのバンクアドレスを出力し、前記ハードウェアスイッチの設定値が１／２バンクインタリーブモードを示すときには、バンク内アドレスの最上位ビットを除いた（ｙ−１）ビットおよびバンクアドレスの最上位ビットのビット列をバンク内アドレスとして出力するとともにバンク内アドレスの最上位ビットおよびバンクアドレスの最上位ビットを除いた（ｘ−１）ビットのビット列をバンクアドレスとして出力し、前記ハードウェアスイッチの設定値が１／４バンクインタリーブモードを示すときには、バンク内アドレスの上位２ビットを除いた（ｙ−２）ビットおよびバンクアドレスの上位２ビットのビット列をバンク内アドレスとして出力するとともにバンク内アドレスの上位２ビットおよびバンクアドレスの上位２ビットを除いた（ｘ−２）ビットのビット列をバンクアドレスとして出力するＮ個のアドレス生成部と、各アドレス生成部から出力されるＮ個のバンクアドレスを入力し、メモリリクエストの競合を調停して１個のメモリバンクのセレクト信号を出力するセレクト信号生成回路と、前記セレクト信号生成回路からのメモリバンクのセレクト信号に応じてアドレス生成部からのバンク内アドレスを選択的に出力するＭ個のセレクタからなるクロスバ部と、各セレクタからのバンク内アドレスで各メモリバンクの制御を行うＭ個のメモリ制御部とを有することを特徴とする。
【００１２】
また、本発明のメモリインタリーブ方式は、前記ＯＳが、前記ハードウェアスイッチの設定値が全バンクインタリーブモードを示すときには全メモリバンクを全ＣＰＵに割り当て、前記ハードウェアスイッチの設定値が１／２バンクインタリーブモードを示すときには１／２ずつにインタリーブされたメモリバンクグループをＣＰＵ毎に割り当て、前記ハードウェアスイッチの設定値が１／４バンクインタリーブモードを示すときには１／４ずつにインタリーブされたメモリバンクグループをＣＰＵ毎に割り当てることを特徴とする。
【００１３】
さらに、本発明のメモリインタリーブ方式は、バンクインタリーブモードをさらに１／８バンクインタリーブモード，１／１６バンクインタリーブモード，…と拡張したことを特徴とする。
【００１４】
さらにまた、本発明のメモリインタリーブ方式は、Ｎ（自然数）個のＣＰＵとＭ（Ｍは２ｐ。ただし、ｐは２以上の整数）個のメモリバンクとがクロスバ部を介して接続されてなるコンピュータシステムにおいて、バンクインタリーブモードを示す値が手動で設定され、その設定値をＯＳに通知するハードウェアスイッチと、前記ハードウェアスイッチの設定値が１／２ｐバンクインタリーブモードを示すときには、バンク内アドレスの上位ｐビットを除いた（ｙ−ｐ）ビットおよびバンクアドレスの上位ｐビットのビット列をバンク内アドレスとして出力するとともにバンク内アドレスの上位ｐビットおよびバンクアドレスの上位ｐビットを除いた（ｘ−ｐ）ビットのビット列をバンクアドレスとして出力するＭ（自然数）個のアドレス生成部と、各アドレス生成部から出力されるＮ個のバンクアドレスを入力し、メモリリクエストの競合を調停して１個のメモリバンクのセレクト信号を出力するセレクト信号生成回路と、前記セレクト信号生成回路からのメモリバンクのセレクト信号に応じて前記アドレス生成部からのバンク内アドレスを選択的に出力するＭ個のセレクタからなるクロスバ部と、各セレクタからのバンク内アドレスで各メモリバンクのアクセス制御を行うＭ個のメモリ制御部とを有することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、ＣＰＵグループが使用するメモリ領域を割り当てることが可能になり、ＣＰＵグループから発行されるメモリリクエスト間のメモリバンク競合を削減でき、メモリの使用効率の向上，およびシステム性能の向上を見込むことができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施例について図面を参照しながら詳しく説明する。
【実施例１】
【００１７】
図１は、本発明の実施例１に係るメモリインタリーブ方式の構成を示すブロック図である。本実施例１に係るメモリインタリーブ方式は、Ｎ（自然数）個のＣＰＵ１００，…，１０Ｎ−１と、バンクインタリーブモードを示す値が設定され、その設定値を図示しないオペレーティングシステム（以下、ＯＳと略記する）に通知するソフトビジブルレジスタ１１と、各ＣＰＵ１００，…，１０Ｎ−１と一対一に接続されたＮ個のアドレス生成部１２０，…，１２Ｎ−１と、各アドレス生成部１２０，…，１２Ｎ−１から出力されるＮ個のバンクアドレスを入力し、アクセス先のメモリバンクに対応するＭ（Ｍは２ｐ。ただし、ｐは２以上の整数）個のセレクタ１４０，…，１４Ｍ−１にセレクト信号を出力するセレクト信号生成回路１３と、各アドレス生成部１２０，…，１２Ｎ−１から出力されるＮ個のバンク内アドレスを入力し、セレクト信号に応じて１個のバンク内アドレスを出力するＭ個のセレクタ１４０，…，１４Ｍ−１からなるクロスバ部１４と、各セレクタ１４０，…，１４Ｍ−１と一対一に接続されたＭ個のメモリ制御部１５０，…，１５Ｍ−１と、各メモリ制御部１５０，…，１５Ｍ−１と接続されたＭ個のメモリバンク１６０，…，１６Ｍ−１とから構成されている。
【００１８】
図２は、ＣＰＵ１０ｎ（ｎは０≦ｎ≦Ｎ−１の整数）から発行されるメモリリクエストのアドレス変換を表す。
【００１９】
ソフトビジブルレジスタ１１は、バンクインタリーブモード数分のフリップフロップにて構成され、ユーザアプリケーション（図示せず）により書き換え可能である。
【００２０】
ソフトビジブルレジスタ１１の設定値が全バンクインタリーブモードを示すときには、アドレス生成部１２ｎは、ＣＰＵ１０ｎから受け取ったバンク内アドレス（ｙビット）およびバンクアドレス（ｘビット）をそのまま出力する。
【００２１】
ソフトビジブルレジスタ１１の設定値が１／２バンクインタリーブモードを示すときには、アドレス生成部１２ｎは、バンク内アドレスの最上位ビットを除いた（ｙ−１）ビットおよびバンクアドレスの最上位ビットのビット列をバンク内アドレスとして出力するとともに、バンク内アドレスの最上位ビットおよびバンクアドレスの最上位ビットを除いた（ｘ−１）ビットのビット列をバンクアドレスとして出力する。
【００２２】
ソフトビジブルレジスタ１１の設定値が１／４バンクインタリーブモードを示すときには、アドレス生成部１２ｎは、バンク内アドレスの上位２ビットを除いた（ｙ−２）ビットおよびバンクアドレスの上位２ビットのビット列をバンク内アドレスとして出力するとともに、バンク内アドレスの上位２ビットおよびバンクアドレスの上位２ビットを除いた（ｘ−２）ビットのビット列をバンクアドレスとして出力する。
【００２３】
セレクト信号生成回路１３は、Ｎ個のアドレス生成部１２０，…，１２Ｎ−１から出力されるＮ個のバンクアドレスを入力し、メモリリクエストの競合を調停して１個のメモリバンクのセレクト信号をクロスバ部１４の１つのセレクタ１４ｍ（ｍは０≦ｍ≦Ｍ−１の整数）に出力する。
【００２４】
クロスバ部１４の各セレクタ１４０，…，１４Ｍ−１は、セレクト信号生成回路１３からのセレクト信号に応じて、アドレス生成部１２０，…，１２Ｎ−１からのバンク内アドレスを対応するメモリ制御部１５０，…，１５Ｍ−１に出力する。
【００２５】
各メモリ制御部１５０，…，１５Ｍ−１は、各セレクタ１４０，…，１４Ｍ−１から出力されるバンク内アドレスで各メモリバンク１６０，…，１６Ｍ−１をアクセス制御する。
【００２６】
ＯＳは、ソフトビジブルレジスタ１１の設定値が全バンクインタリーブモードを示すときには全メモリバンク１６０，…，１６Ｍ−１を全ＣＰＵ１００，…，１０Ｎ−１に割り当て、ソフトビジブルレジスタ１１の設定値が１／２バンクインタリーブモードを示すときには１／２ずつにインタリーブされたメモリバンクグループをＣＰＵ毎に割り当て、ソフトビジブルレジスタ１１の設定値が１／４バンクインタリーブモードを示すときには、１／４ずつにインタリーブされたメモリバンクグループをＣＰＵ毎に割り当て、ＣＰＵ１００，…，１０Ｎ−１間のメモリバンク競合頻度を抑える。
【００２７】
次に、このように構成された実施例１に係るメモリインタリーブ方式の動作について説明する。
【００２８】
ＣＰＵ１００，…，１０Ｎ−１からメモリリクエストが発行されると、アドレス生成部１２０，…，１２Ｎ−１は、ソフトビジブルレジスタ１１の設定値が全バンクインタリーブモードを示すときには、ＣＰＵ１００，…，１０Ｎ−１から受け取ったメモリリクエストのバンク内アドレス（ｙビット）およびバンクアドレス（ｘビット）をそのまま出力する。
【００２９】
また、アドレス生成部１２０，…，１２Ｎ−１は、ソフトビジブルレジスタ１１の設定値が１／２バンクインタリーブモードを示すときには、ＣＰＵ１００，…，１０Ｎ−１から受け取ったメモリリクエストのバンク内アドレスの最上位ビットを除いた（ｙ−１）ビットおよびバンクアドレスの最上位ビットのビット列をバンク内アドレスとして出力するとともに、バンク内アドレスの最上位ビットおよびバンクアドレスの最上位ビットを除いた（ｘ−１）ビットのビット列をバンクアドレスとして出力する。
【００３０】
さらに、アドレス生成部１２０，…，１２Ｎ−１は、ソフトビジブルレジスタ１１の設定値が１／４バンクインタリーブモードを示すときには、ＣＰＵ１００，…，１０Ｎ−１から受け取ったメモリリクエストのバンク内アドレスの上位２ビットを除いた（ｙ−２）ビットおよびバンクアドレスの上位２ビットのビット列をバンク内アドレスとして出力するとともに、バンク内アドレスの上位２ビットおよびバンクアドレスの上位２ビットを除いた（ｘ−２）ビットのビット列をバンクアドレスとして出力する。
【００３１】
次に、セレクト信号生成回路１３は、アドレス生成部１２０，…，１２Ｎ−１から出力されるＮ個のバンクアドレスを入力し、１個のメモリバンクのセレクト信号をクロスバ部１４の１つのセレクタ１４ｍに出力する。このとき、複数のメモリリクエストが競合する場合には、セレクト信号生成回路１３は、アクセス先のメモリバンクに優先順位を付けて１つのメモリバンクを決定し、決定されたメモリバンクに対応するセレクタにセレクト信号を出力する。メモリバンクの優先順位の決定方法としては、一般的なラウンドロビン方式や固定方式などがある。
【００３２】
セレクタ１４ｍは、Ｎ個のメモリリクエストのバンク内アドレスとセレクト信号とを入力し、１つのＣＰＵからのメモリリクエストのバンク内アドレスを選択してメモリ制御部１５ｍに出力する。
【００３３】
メモリ制御部１５ｍは、セレクタ１４ｍからのバンク内アドレスでメモリバンク１６ｍをアクセス制御する。
【００３４】
次に、ソフトビジブルレジスタ１１の設定値を通知されたＯＳの動作について説明する。
【００３５】
ソフトビジブルレジスタ１１の設定値が全バンクインタリーブモードを示すときには、全メモリバンク１６０，…，１６Ｍ−１がインタリーブされず、１つのメモリバンクグループ１６０，…，１６Ｍ−１とされるため、ＯＳは、全メモリバンク１６０，…，１６Ｍ−１を全ＣＰＵ１００，…，１０Ｎ−１に割り当てて、効率よく使用する。
【００３６】
また、ソフトビジブルレジスタ１１の設定値が１／２バンクインタリーブモードを示すときには、全メモリバンク１６０，…，１６Ｍ−１が１／２のメモリバンクグループ１６０，…，１６Ｍ／２−１と１／２のメモリバンクグループ１６Ｍ／２，…，１６Ｍ−１とにインタリーブされるため、ＯＳは、ＣＰＵ１００，…，１０Ｎ−１毎に使用するメモリバンクグループ（メモリ領域）を割り当て、メモリバンクグループ１６０，…，１６Ｍ／２−１をアクセスするＣＰＵグループとメモリバンクグループ１６Ｍ／２，…，１６Ｍ−１をアクセスするＣＰＵグループとの間のメモリバンク競合頻度を抑える。例えば、ＯＳは、ジョブに合わせて、Ｎ個のＣＰＵ１００，…，１０Ｎ−１を２つ以下のグループ（ａグループ，ｂグループ）に分け、ａグループにメモリバンクグループ１６０，…，１６Ｍ／２−１のメモリ領域を割り当て、ｂグループにメモリバンクグループ１６Ｍ／２，…，１６Ｍ−１のメモリ領域を割り当てることにより、ａグループとｂグループとの間のメモリバンク競合を抑えることが可能になる。
【００３７】
さらに、ソフトビジブルレジスタ１１の設定値が１／４バンクインタリーブモードを示すときには、全メモリバンク１６０，…，１６Ｍ−１が１／４のメモリバンクグループ１６０，…，１６Ｍ／４−１と、１／４のメモリバンクグループ１６Ｍ／４，…，１６Ｍ／２−１と、１／４のメモリバンクグループ１６Ｍ／２，…，１６３Ｍ／４−１と、１／４のメモリバンクグループ１６３Ｍ／４，…，１６Ｍ−１とにインタリーブされるため、ＯＳは、ＣＰＵ１００，…，１０Ｎ−１毎に使用するメモリバンクグループ（メモリ領域）を割り当て、メモリバンクグループ１６０，…，１６Ｍ／４−１をアクセスするＣＰＵグループと、メモリバンクグループ１６Ｍ／４，…，１６Ｍ／２−１をアクセスするＣＰＵグループと、メモリバンクグループ１６Ｍ／２，…，１６３Ｍ／４−１をアクセスするＣＰＵグループと、１／４のメモリバンクグループ１６３Ｍ／４，…，１６Ｍ−１をアクセスするＣＰＵグループとの間のメモリバンク競合頻度を抑える。例えば、ＯＳは、ジョブに合わせて、Ｎ個のＣＰＵを４つ以下のグループ（ａグループ，ｂグループ，ｃグループ，ｄグループ）に分け、ａグループにメモリバンクグループ１６０，…，１６Ｍ／４−１のメモリ領域０〜Ｌ／４を割り当て、ｂグループにはメモリバンクグループ１６Ｍ／４，…，１６Ｍ／２−１のメモリ領域Ｌ／４〜Ｌ／２を割り当て、ｃグループにはメモリバンクグループ１６Ｍ／２，…，１６３Ｍ／４−１のメモリ領域Ｌ／２〜Ｌ＊３／４を割り当て、ｄグループにはメモリバンクグループ１６３Ｍ／４，…，１６Ｍ−１のメモリ領域Ｌ＊３／４〜Ｌを各々割り当てることにより、各ＣＰＵグループ間のメモリバンク競合を抑えることが可能になる。
【００３８】
なお、ここでは詳述しないが、バンクインタリーブモードを、さらに１／８バンクインタリーブモード，１／１６バンクインタリーブモード，…と拡張として、メモリバンク１６０，…，１６Ｍ−１を１／２ｐ（ｐは０，１，２，３，４，…）ずつのメモリバンクグループにインタリーブした場合、ＯＳは、バンクインタリーブモードのメモリインタリーブ数２ｐに応じて、ＣＰＵのグループを２ｐ以下のグループに分割し、各々のＣＰＵグループに応じて１／２ｐずつのメモリバンクグループ（メモリ領域）を割り当て、各ＣＰＵグループ間のメモリバンク競合を抑えることができることもいうまでもない。
【００３９】
一般化すれば、メモリバンク１６０，…，１６Ｍ−１を１／２ｐずつのメモリバンクグループにインタリーブした場合、アドレス生成部１２０，…，１２Ｎ−１は、ＣＰＵ１００，…，１０Ｎ−１から受け取ったメモリバンク内アドレス（ｙビット）およびバンクアドレス（ｘビット）に対し、バンク内アドレスの最上位ビットからｐ（０，１，２，３，４，…）ビット分を除いた（ｙ−ｐ）ビットおよびバンクアドレスの最上位ビットからｐビットのビット列をバンク内アドレスとして生成するとともに、バンク内アドレスの最上位ビットからｐビットおよびバンクアドレスの最上位ビットからｐビットを除いた（ｘ−ｐ）ビットのビット列をバンクアドレスとして生成する。これにより、ソフトビジブルレジスタ１１の設定により、バンクインタリーブモードを全バンクインタリーブモード、１／２バンクインタリーブモード，１／４バンクインタリーブモード，１／８バンクインタリーブモード，１／１６バンクインタリーブモード，…メモリバンク単位にインタリーブすることが可能になる。
【００４０】
ここで、セレクト信号生成回路１３でセレクト信号がどのように生成されるのかを、Ｎ＝８、Ｍ＝８のケースを例として説明する。このケースでは、バンク内アドレス３ビットおよびバンクアドレス３ビットとなる。
【００４１】
図３は、６４ワードのアドレスマッピング例を、全バンクインタリーブモードと、１／２バンクインタリーブモードとについて表す。
【００４２】
１）全バンクインタリーブモードの場合の動作ついて、説明する。
【００４３】
セレクト信号生成回路１３は、ＣＰＵ１００，…，１０７に対応するアドレス生成部１２０，…，１２７が生成するバンクアドレスを入力とし、メモリアクセスの競合を調停して、バンクアドレスｍに対応するセレクタ１４ｍに対してバンク内アドレスｎをセレクト信号として出力する。
【００４４】
セレクト信号を入力されたセレクタ１４ｍは、８入力を選択するためのセレクト信号３ビットに基づいて、出力するバンク内アドレスを選択する。
【００４５】
セレクタ１４ｍの選択論理は、セレクト信号の３ビットが“０００”の時にＣＰＵ１００のアドレス生成部１２０からのバンク内アドレスを出力し、“００１”の時にＣＰＵ１０１のアドレス生成部１２１からのバンク内アドレスを出力し、“０１０”の時にＣＰＵ１０２のアドレス生成部１２２からのバンク内アドレスを出力し、“０１１”の時にＣＰＵ１０３のアドレス生成部１２３からのバンク内アドレスを出力し、“１００”の時にＣＰＵ１０４のアドレス生成部１２４からのバンク内アドレスを出力し、“１０１”の時にＣＰＵ１０５のアドレス生成部１２５からのバンク内アドレスを出力し、“１１０”の時にＣＰＵ１０６のアドレス生成部１２６からのバンク内アドレスを出力し、“１１１”の時にＣＰＵ１０７のアドレス生成部１２７からのバンク内アドレスを出力する。
【００４６】
２）１／２インタリーブモードに変更した場合の動作について説明する。
【００４７】
アドレス生成部１２０，…，１２Ｎ−１において、図２で示すアドレスの変換を行うことにより、表１で示すアドレスに変換され、セレクト信号生成回路１３は、アドレス生成部１２０，…，１２Ｎ−１よりバンクアドレスを入力し、セレクト信号を１つのセレクタ１４ｍに出力する。これにより、メモリ領域を１／２とした前半のメモリバンクグループはメモリバンクグループ１６０−１６３でインタリーブされ、後半のメモリバンクはメモリバンクグループ１６４−１６７でインタリーブされることになり、図３の通り分割される（下記番地は論理ワード番地を示す）。
【００４８】
３）１／４インタリーブモードに変更した場合の動作について説明する。
【００４９】
アドレス生成部１２０，…，１２Ｎ−１において、図２で示すアドレスの変換を行うことにより、表１で示すアドレスに変換され、セレクト信号生成回路１３は、アドレス生成部１２０，…，１２Ｎ−１よりバンクアドレスを入力し、セレクト信号を１つのセレクタ１４ｍに出力する。これにより、メモリ領域を０〜７番地（番地は論理ワード番地を示す），８〜１５番地，１６〜２３番地，２４〜３１番地の１／４ずつとし、メモリバンク１６０−１６１，メモリバンク１６２−１６３，メモリバンク１６４−１６５，メモリバンク１６６−１６７にインタリーブできる。
【００５０】
４）１／８バンクインタリーブモード，１／１６バンクインタリーブモード，…インタリーブモード時においても、図２で示すアドレスの変換を行うことにより、メモリ領域を分割し、メモリバンク１６０−１６７をインタリーブできる。
【００５１】
【表１】
2005092374.tif 000003
【実施例２】
【００５２】
図４は、本発明の実施例２に係るメモリインタリーブ方式の構成を示す回路ブロック図である。本実施例２に係るメモリインタリーブ方式は、図１に示した実施例１に係るメモリインタリーブ方式においてユーザアプリケーションがソフトビジブルレジスタ１１の値を設定していた、つまりバンクインタリーブモードを決定していたのに対して、ＯＳがソフトビジブルレジスタ１１の値を設定するようにしたものである。
【００５３】
なお、その他の特に言及しない部分については、実施例１に係るメモリインタリーブ方式における対応部分と同様に構成されているので、同一符号を付してそれらの詳しい説明を省略する。
【００５４】
このように構成された実施例２に係るメモリインタリーブ方式では、ＯＳ自身が実行するジョブを各ＣＰＵ１００，…，１０Ｎ−１に割り当てる時に、各ＣＰＵ１００，…，１０Ｎ−１が使用するメモリ領域やＣＰＵ１００，…，１０Ｎ−１の並列動作数を参考としてバンクインタリーブモードを決定し、ソフトビジブルレジスタ１１に書き込むことにより、メモリの使用効率を上げ、実行性能の向上を可能とする。
【００５５】
なお、その他の詳しい動作の説明については、実施例１に係るメモリインタリーブ方式における場合と同様になるので、割愛する。
【実施例３】
【００５６】
図５は、本発明の実施例３に係るメモリインタリーブ方式の構成を示す回路ブロック図である。本実施例３に係るメモリインタリーブ方式は、図１および図４に示した実施例１および実施例２に係るメモリインタリーブ方式においてソフトビジブルレジスタ１１に値を設定していた、つまりバンクインタリーブモードを決定していたのに対して、デップスイッチ等のハードウェアスイッチ２１にユーザが手動で値を設定してバンクインタリーブモードを決定するようにしたものである。
【００５７】
なお、その他の特に言及しない部分については、実施例１に係るメモリインタリーブ方式における対応部分と同様に構成されているので、同一符号を付してそれらの詳しい説明を省略する。
【００５８】
このように構成された実施例３に係るメモリインタリーブ方式では、基板上にｋ極のハードウェアスイッチ２１を用意し、ｋ極のスイッチの設定値により、バンクインタリーブモードを識別する。
【００５９】
４極のハードウェアスイッチ２１を使用した場合について例を挙げて説明すると、ハードウェアスイッチ２１の設定値が“００００”のときに全バンクインタリーブモード、“０００１”のときに１／２バンクインタリーブモード、“００１０”のときに１／４バンクインタリーブモード、“００１１”のときに１／８バンクインタリーブモード、…が設定される。
【００６０】
なお、その他の詳しい動作の説明については、実施例１に係るメモリインタリーブ方式における場合と同様になるので、割愛する。
【図面の簡単な説明】
【００６１】
【図１】本発明の実施例１に係るメモリインタリーブ方式の構成を示す回路ブロック図である。
【図２】実施例１に係るメモリインタリーブ方式におけるソフトビジブルレジスタとアドレス生成との関係を説明する図である。
【図３】実施例１に係るメモリインタリーブ方式におけるメモリマッピング例を示す図である。
【図４】本発明の実施例２に係るメモリインタリーブ方式の構成を示す回路ブロック図である。
【図５】本発明の実施例１に係るメモリインタリーブ方式の構成を示す回路ブロック図である。
【図６】従来のメモリインタリーブ方式の構成を示す回路ブロック図である。
【符号の説明】
【００６２】
１００，…，１０Ｎ−１  ＣＰＵ
１２０，…，１２Ｎ−１  アドレス生成部
１２  ソフトビジュアルレジスタ
１３  セレクト信号生成回路
１４０，…，１４Ｍ−１  セレクタ
１５０，…，１５Ｍ−１  メモリ制御部
１６０，…，１６Ｍ−１  メモリバンク
２１  ハードウェアスイッチ
Ｎ  接続ＣＰＵ数（入力ポート数）
Ｍ  接続メモリバンク数
【図１】
2005092374.tif 000004
【図２】
2005092374.tif 000005
【図３】
2005092374.tif 000006
【図４】
2005092374.tif 000007
【図５】
2005092374.tif 000008
【図６】
2005092374.tif 000009