(57)【特許請求の範囲】
【請求項１】
メモリアドレス指定を有するシステムであって、
ユーザプログラムにより制御される複数のアドレス指定モードのうちの１つを実行する複数のビットフィールドを有するアドレス置換制御レジスタと、
修正可能なアドレス部分を有する入力アドレスを受信し、及び、前記アドレス置換制御レジスタから複数のビットフィールドを受信するための制御回路であって、前記修正可能なアドレス部分から置換アドレスを生成するために前記入力アドレスのうち所定のそれぞれ異なる部分を対応するビットフィールドの指示の下で修正する、制御回路と、
前記制御回路から置換アドレスを受信するためのメモリアレイであって、前記メモリアレイにアクセスするために置換アドレスを用いる前記メモリアレイとを備え、
前記入力アドレスには、置換の間、前記制御回路によって決して修正されない修正不可能なアドレス部分が含まれ、前記修正不可能なアドレス部分は、制御情報として使用される少なくとも１つのアドレスビットを含み、前記制御回路は前記制御情報及び前記修正可能な部分を受信するためのバイパス回路（４２）を備え、該バイパス回路は前記制御情報に基づき選択的に置換をバイパスし、前記制御情報によってバイパスするオプションが選択された場合には前記修正可能な部分を前記メモリアレイに提供することを特徴とするシステム。
【請求項２】
メモリアドレス指定を提供するための方法であって、
修正可能な部分と、置換の間制御回路によって修正されない修正不可能な部分とを有するアドレスを受信するステップと、
バイパス回路によって、前記修正不可能な部分に含まれる制御情報を用いて、置換機能を入力アドレスに適用するか否かを判断するステップと、
ユーザプログラムにより制御される複数のアドレス指定モードのうちのいずれかを実行する複数のビットフィールドを有した、第１のアドレス置換制御レジスタ及び第２のアドレス置換制御レジスタのうちのいずれか一方から受信した前記複数のビットフィールドの指示の下で、置換アドレスを生成するために前記アドレスの前記修正可能な部分を修正するステップと、
置換アドレスをメモリアドレス指定に提供するステップとを備え、
前記制御情報が第１の値をとる場合には前記アドレスは置換回路をバイパスし、
前記制御情報が第２の値をとる場合には前記アドレスは前記第１のアドレス置換制御レジスタから受信した複数のビットフィールドの指示の下で前記置換アドレスを生成し、
前記制御情報が第３の値をとる場合には前記アドレスは前記第２のアドレス置換制御レジスタから受信した複数のビットフィールドの指示の下で前記置換アドレスを生成する、メモリアドレス指定を提供するための方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理に関し、特に、システムにおけるメモリアドレス指定の最適化に関する。
【０００２】
【従来の技術】
通常、信号プロセッサは、共通の信号処理アルゴリズムにカスタマイズされたアドレス指定モードをサポートする。例えば、通常、デジタル信号プロセッサには、高速フーリエ変換（ＦＦＴ）の性能を最適化する機能が含まれる。通常、高速フーリエ変換は、桁上げ反転又はビット反転アドレス指定が含まれる複数のアドレス指定モードを用いる。他の信号処理アルゴリズムは、配列データや係数に簡単にアクセスするためのモジュロ・アドレス指定を広範に用いる。これらのアドレス指定モードは、より汎用性のあるプロセッサでサポートされるモードとは異なる場合が多い。往々にして、汎用プロセッサ用のアドレス指定モードは、Ｃ、Ｃ＋＋やＦＯＲＴＲＡＮの様な高級言語を効率的にサポートすることに基礎を置き、必ずしも信号処理アルゴリズムに見られるオペランド基準パターンに最適化されていない。多くの場合、プロセッサのパイプラインの全体構成は、これらの基本アドレス指定モードの要求を核として構築されている。その結果、汎用プロセッサの多くが、これら高機能アドレス指定モードをサポートしない。通常、プロセッサのアーキテクチャは、ＤＳＰ専用の又は汎用の機能を実現するが、両方を実現しないよう特別に設計されている。汎用プロセッサは、２種類以上の通常タイプのアドレス指定モードを実現するが、このようなプロセッサのアドレス指定モードは、或る音声処理機能を含むデジタル信号処理等の専用用途に対して最適化されていない。
【０００３】
なお、本件出願の優先権主張の基礎となる米国特許出願シリアル番号第０９／９５７，７８０号のための情報開示陳述書として米国特許商標庁に提出された先行技術文献を参考として以下に記す。
【特許文献１】
米国特許第６，０８１，８２１号明細書
【特許文献２】
米国特許第５，１３３，０６１号明細書
【特許文献３】
米国特許第４，５０６，３６４号明細書
【非特許文献１】
モトローラのジョー・サーチェロ著、“６８K  ColdFIRE（R）  マイクロプロセッサ”、ｄCF4/ｄｔ−The  First  Derivatives  of  the  Version  ４．ＣｏｌｄＦｉｒｅ（Ｒ）Ｉｎｔｅｇｒａｔｅｄ  Ｃｏｒｅ，マイクロプロセッサ  フォーラム  ２０００年１０月１１日の２頁
【０００４】
【発明が解決しようとする課題】
処理機能が同化するにつれて、汎用プロセッサは更に専用の機能を実現する必要があるが、ほとんどの汎用プロセッサは、高機能なメモリアドレス指定モードをサポートできない。通常、汎用プロセッサ内に高機能なメモリアドレス指定モードを実現するには、このような高機能なアドレス指定モードを実現する前に、パイプライン・アーキテクチャを再構築する必要がある。
【０００５】
【課題を解決するための手段】
本発明の第１の特徴によれば、メモリアドレス指定を有するシステムが提供される。このシステムには、第１ビットフィールドを有するアドレス置換制御レジスタと、未置換アドレスを受信し、また、前記アドレス置換制御レジスタから第１ビットフィールドを受信するための制御回路であって、置換アドレスを生成するために第１ビットフィールドの指示の下で未置換アドレスを置換する前記制御回路と、前記制御回路から置換アドレスを受信するためのメモリアレイであって、前記メモリアレイにアクセスするために置換アドレスを用いる前記メモリアレイと、が含まれる。
本発明の第２の特徴によれば、メモリアドレス指定を提供する方法であって、未置換アドレスを受信する段階と、第１ビットフィールドを有するアドレス置換制御レジスタを提供する段階と、置換アドレスを生成するために第１ビットフィールドの指示の下で未置換アドレスを修正する段階と、置換アドレスをメモリアドレス指定に提供する段階と、を備えることを特徴とする方法が提供される。
【０００６】
【発明の実施の形態】
図１は、アドレスが選択的に修正又は置換されるシステムであって、ユーザにより設定可能なアドレス指定モードを備えるシステム１０を示す。システム１０は、バス１４に接続された第１入力／出力端末を備えるシステムバス制御装置１２を有する。システムバス制御装置１２は、スレーブバス１６に接続された第２入力／出力端末を有する。バス１６には、一般的にモジュール１８やモジュール２０として示す複数のスレーブ装置が接続される。モジュール１８及びモジュール２０は、タイマ、汎用非同期受信送信器（ＵＡＲＴ）、パラレルポート、メモリ、シリアル通信装置、データ変換器等、任意の数の装置でよい。システムバス制御装置１２の第３の入力／出力端末は、内部バス２２に接続される。内部バス２２には、処理コア部２６とバスマスタモジュール２４が接続される。バスマスタモジュール２４は、処理コア部２６と同様の方法でバス転送を開始し得る。バスマスタモジュール２４と処理コア部２６は、各々双方向装置であり、また、各々、内部バス２２との間で情報の受信や提供を行う。バスマスタモジュール２４は、直接メモリアクセス（ＤＭＡ）装置、他の処理コア部等、任意の数の装置でよい。システムバス制御装置１２内には、処理コア部２６、バスマスタモジュール２４及び内部バス２２に接続された他のあらゆる装置（図示せず）間でのバストラフィックを調停する機能を有する論理回路がある。処理コア部２６は一部のみを示す。処理コア部２６は、バス３２を介してメモリユニット３０に接続された処理ユニット２８を有する。メモリユニット３０は、制御バス３５、データバス３７、及びアドレスバス３８を介してメモリアレイ３６に接続されたメモリ制御装置３４を有する。
【０００７】
動作中、システム１０を実行すると、ユーザは、メモリ３６をアドレス指定するために複数のメモリアドレス指定モードの内１つを定義し選択し得る。汎用アルゴリズム及び専用のデータ処理アドレス指定のサポートは、処理ユニット２８から特定のパイプラインのサポートを必要とせずに実行し得る。メモリ制御装置３４は、メモリアレイ３６と処理ユニット２８との間のインタフェースとして機能する。特に、メモリ制御装置３４は、制御及びアドレス情報の生成と、メモリアレイ３６間でのデータアクセスとを行う。更に、後述するように、メモリ制御装置３４は、メモリアレイ３６へのアクセスに用いる特定のメモリアドレス指定モードを制御するように機能する。このようなメモリアドレス指定モードは、ソフトウェアプログラミング、又は集積回路のピン入力等、他の制御手段を介してユーザ定義される。メモリアドレス指定モード間で変換を行う場合、入力アドレスは、所望のメモリアドレス指定モードを実行するために、他の所定のフォーマットに置換又は変更される。アドレス置換機能は、処理ユニット２８からのメモリユニット３０のメモリアクセス、及びバスマスタモジュール２４からのメモリアクセス又は内部バス２２に接続されメモリユニット３０を参照する他のあらゆる装置（図示せず）からのメモリアクセスに利用可能であることに留意されたい。
【０００８】
図２には、メモリ制御装置３４の一部を詳細に示す。ビット［１９：０］（ここで、ビット１９は最上位ビットであり、ビット０は最下位ビット）を有する２０ビットアドレスの一部は、バイパス論理回路４２の入力部に接続される。２０ビットアドレスのビット０乃至１５が、バイパス論理回路４２の入力部に接続される。バイパス論理回路４２からの１６ビット出力は、各１６：１マルチプレクサ５０の入力部に接続される。１６：１マルチプレクサ５０は、マルチプレクサ５１乃至６６を有する。各マルチプレクサ５１乃至６６には、単一ビットを出力して、マルチプレクサ７７の第１入力部に接続される１６ビットアドレスを形成するための出力部がある。バイパス論理回路４２の第２出力は、マルチプレクサ７７の第２入力部に接続される。バイパス論理回路４２の第３の出力部からは、マルチプレクサ７７の制御入力部に接続され、また（バイパス又は置換された）どのアドレス３８がメモリアレイ３６に送信されるかを周期毎に判断する制御信号８０が供給される。マルチプレクサ７７の出力部は、メモリアレイ３６に１６ビットアドレス３８を供給する。マルチプレクサ６８は、各マルチプレクサ５１乃至６６の制御入力部に制御信号を供給する。２０ビット入力アドレスの２つのビット、すなわち、ビット１８及びビット１９は、選択ビットとして機能し、マルチプレクサ６８の制御入力部に接続され、どのアドレス置換制御レジスタをアドレスビット処理に用いるかを選択するために、３つの入力信号の内１つを選択する。また、２０ビット入力アドレスの同じ２つのビット、すなわち、ビット１８及びビット１９は、バイパス論理回路４２の制御入力部にも接続され、現在の入力アドレスが置換実行を必要とするか否かを判断する。必要でない場合、メモリアレイ３６にアドレスバス３８を介して送信される入力アドレスが、バイパス論理回路４２から送信される。マルチプレクサ６８の第１入力部は、６４ビット制御フィールドを提供するアドレス置換制御レジスタ７０に接続される。マルチプレクサ６８の第２入力部は、第２６４ビット制御フィールドを提供するアドレス置換制御レジスタ７１に接続される。マルチプレクサ６８の第３の入力部は、第３の６４ビット制御フィールドを提供するアドレス置換制御レジスタ７２に接続される。マルチプレクサ６８の６４ビット制御フィールド出力部は、マルチプレクサ５１乃至６６の制御端末に接続される。特に、６４ビットの内、所定の４ビットは、それぞれマルチプレクサ５１乃至６６の所定の１つに接続される。一般的に、バイパス論理回路４２、マルチプレクサ５１乃至６６、マルチプレクサ６８及びマルチプレクサ７７が、制御回路４０を形成する。
【０００９】
動作中、２０ビットの未置換入力アドレスが受信され、下位１６ビットは、バイパス論理回路４２によって用いられる。下位１６ビットは、アドレス置換中、制御回路４０が選択可能に変更する修正可能なアドレス部分を形成する。ビット１６乃至１９は、アドレス置換中、制御回路４０が決して修正しない修正不可能なアドレス部分を形成する。ビット１６及び１７は、符号化され、また、保護ビットとして用いられが、これについては後述する。保護ビットが存在する場合、少なくとも１つの保護ビットが用いられ、受信未置換アドレスの修正可能なアドレス部分［１５：０］よりも上位のビット位置付近に配置される。また、ビット１８及び１９も符号化して、マルチプレクサ６８の制御に用いる。バイパス論理回路４２は、制御情報として符号化ビット１８及び１９を用いて、置換機能を入力アドレスに適用するか否か判断する回路として機能する。ビット１８及び１９がゼロでない場合、置換機能が適用される。そうでない場合、入力アドレスは、置換回路をバイパスし、アドレス３８としてマルチプレクサ７７によって接続される。例えば、ビット１８及び１９中の制御情報は、置換バイパスのオプションを提供して、ビット１８及び１９が、値“００”をとる場合、アドレス置換を回避する。ビット１８及び１９が、値“０１”  をとる場合、アドレス置換制御レジスタ７０で定義される置換機能が、１６：１マルチプレクサ５０に対する制御信号として入力アドレスに適用される。ビット１８及び１９が、値“１０”をとる場合、アドレス置換制御レジスタ７１で定義される置換機能が、１６：１マルチプレクサ５０に対する制御信号として入力アドレスに適用される。ビット１８及び１９が、値“１１”  をとる場合、アドレス置換制御レジスタ７２で定義される置換機能が、入力アドレスに適用される。
【００１０】
図３には、アドレス置換制御レジスタ７０乃至７２が提供する６４ビットのビットフィールド割当てを示す。ビットフィールド割当ては、システム１０のユーザに提供され、ユーザは、適用されるアドレス置換機能を定義するビット値を、レジスタ７０乃至７２に設定するか又はロードされるようにしてよい。図３は、置換制御レジスタ７０専用のビットフィールド割当てを示すが、同一の又は他のビットフィールド割当てが、置換制御レジスタ７１及び７２に対してなされることを理解されたい。図示の如く、アドレス中の各ビットの置換は、置換制御レジスタ７０内において４ビットフィールド毎に制御される。例えば、第１ビットフィールドは、ビット［３：０］を含む。１６ビットの置換アドレスにおける任意のアドレスビットをｉとした場合、対応する４ビットの指定子は、６４ビット置換制御レジスタのビット位置４ｉ乃至（４ｉ＋３）の間に配置される。例えば、第３の４ビットフィールド［１１：８］は、未置換アドレスのビット２の置換を制御又は指示して、置換アドレスのビット２（ｉ＝２）を形成する。同じことが、第１４ビットフィールドを除き、図３に示す他の全ての４ビット割当てに当てはまる。ビット［３：０］は、未置換アドレスにおけるビット０及び１の両方の置換を制御して、置換アドレスのビット０及び１を形成する。ビットフィールドは、未置換アドレスの置換を指示するために、制御回路４０が同時に用いてよい。
【００１１】
図４には、メモリアレイ３６のメモリ区分マッピングの図を示す。図示の形態において、メモリアレイ３６が、４つのグループのメモリアドレス領域に分割される。分割によって、多重マッピングのメモリ空間が生成される。ページ０乃至３の第１領域は、メモリアドレス置換が実行されないアドレスの領域を示す。言い換えれば、そのアドレス領域に割当てられる情報がアクセスされる場合、メモリアドレス置換は行われない。第２アドレス領域は、ページ４乃至７で示すが、アドレス置換制御レジスタ７０が制御するアドレス置換を受ける。第３のアドレス領域は、ページ８乃至１１で示すが、アドレス置換制御レジスタ７１が制御するアドレス置換を受ける。第４のアドレス領域は、ページ１２乃至１５で示すが、アドレス置換制御レジスタ７２が制御するアドレス置換を受ける。３つの異なるアドレス置換及びパススルー機能を示したが、あらゆる様々なサイズのメモリ区分を任意の数だけ実現し得ることが理解されよう。
【００１２】
図５は、メモリアレイ３６のメモリサイズを変更するための未置換形態での入力アドレスにおけるアドレスのビットフィールド割当てを示す。２Ｋバイト乃至６４Ｋバイトの特定のメモリアレイサイズを示す。他のメモリサイズも選択してよい。各メモリサイズに要求される所定のメモリ基底アドレスは、図５の表の第２列に示すが、ここで、これを実行する場合、図４に示す１６の同サイズのメモリページが、物理メモリサイズの１６倍の合計メモリ空間を必要とする。例えば、８Ｋバイトメモリの場合、基底アドレスは、基底アドレスが１２８Ｋの偶数倍でなければならないことを意味する０モジュロ１２８Ｋでなければならない。図５の表の第３列は、どの置換機能を入力アドレスに適用するかを選択するために用いる２つの置換選択ビットを示す。図２に示す如く、ビット１８及び１９を置換選択ビットとして用いる場合、メモリアレイ３６のサイズは、６４Ｋバイトでなければならない。図５の表の第４列は、入力アドレスのどの２つのビットを保護ビットとして用いるかを示す。保護ビットは、置換選択ビットを含む上位の２ビットと、ポストインクリメント・アドレス・モード等、従来のアドレス生成により生じ得るあらゆる潜在的な繰上り又は繰下げとの間のバッファとして機能する。図５の表の第５列は、メモリアレイ３６の物理サイズに基づく入力アドレスのビット幅を示す。メモリアレイ３６の物理サイズが大きくなると、入力アドレスのサイズも大きくなる。これによって、保護ビット及び置換選択ビットのビット位置は、更に上位のビット位置にシフトする。
【００１３】
図６には、置換アドレスのビット２乃至１５のビットフィールド符号化を示す。ビット０及び１のビットフィールド符号化については、図７を参照して後述する。図６の第１列は、マルチプレクサ５１乃至６６の制御に用いる置換制御レジスタフィールドを示す。符号化は、ビット指定子と見なし得るが、これは、ビット指定子の値が、置換アドレスの各ビットにどんな最終値を用いるか決定するためである。図６の第２列は、各マルチプレクサ５１乃至６６がビット指定子に基づき出力する実際のビット値を指定する。
【００１４】
次のアルゴリズムは、１６ビット置換アドレスのビット２乃至１５ビットのビット符号化を指定し、ｉが、置換アドレスにおけるビット位置を示す場合、
置換制御レジスタから置換アドレスのｉ番目のビットに対するビット指定子を抽出する。
ビット指定子が０である場合、置換アドレスのｉ番目のビットを０に設定する。
ビット指定子が１であり且つ置換制御レジスタのビット３が０である場合、置換アドレスのｉ番目のビットを１に設定する。
ビット指定子が１であり且つ置換制御レジスタのビット３が１である場合、置換アドレスのｉ番目のビットを未置換アドレスのビット１と同じに設定する。
他の全ての場合、置換アドレスのｉ番目のビットは、ビット指定子で指定されたビット位置の未置換アドレスにおける値をとる。
【００１５】
従って、置換制御レジスタのビット３（図６の左列において一番左側のビット位置に示す５番目の追加ビット）は、ビット指定子が値１をとる場合にのみ意味を持つことに留意されたい。他の全ての場合、置換制御レジスタのビット３は、図６の“Ｘ”で示す値決定においては用いない。
【００１６】
図６の符号化について、幾つかの例を用いて更に説明する。ｉが５であり、対応するビット指定子が値０１１１を持つと仮定する。ビット指定子が０１１１であることから、置換アドレスのビット５は、未置換アドレスのビット７（０１１１）に含まれる値をとる。第２例として、ｉが６であり、対応するビット指定子が値０００１を持ち、置換制御レジスタのビット３が値１を持つと仮定する。これらの条件は、図６の表の第３行に対応する。従って、置換アドレスのビット６は、未置換アドレスのビット１の値をとる。
【００１７】
システム１０において、処理コア部２６及びバスマスタモジュール２４は、様々なオペランドサイズを有するメモリにアクセスし得る。例えば、全てのメモリアドレスが、バイトレベルのアドレスとして処理される場合、８、１６、及び３２ビットアクセスが可能である。従って、オペランド基準のサイズに基づきメモリアレイ３６のアドレスを正確に生成するには、置換アドレスビット［１：０］の特別な処理が必要である。図７には、置換アドレスのビット０及び１のビットフィールド符号化を示す。一番左の列に、ビット［３：０］がとり得る所定の値を示す。記載した実施形態では用いない値があるため、全ての可能な値を示してはいない。一番右の２列は、ビット１及びビット０の場合に存在する対応する置換アドレスビットを示す。例えば、置換制御レジスタ［３：０］が、値０１００を持つとすると、置換アドレスのビット１は、未置換アドレスのビット１の値をとり、置換アドレスのビット０は、値０をとる。
【００１８】
他の例として、置換制御レジスタ［３：０］が、値１０１０を持つと仮定する。ビット指定子１は、図７において、置換制御レジスタ［７：４］の値に対応する。置換アドレスのビット１は、未置換アドレスのビット指定子１が指定するビット位置に含まれる値をとる。置換アドレスのビット０は、未置換アドレスのビット位置０に含まれる値をとる。
【００１９】
２つの一般的なタイプのユーザ定義によるアドレス指定モードを生成するアドレス置換機能の用途を完全に実証する以下の例について考える。
まず、モジュロ−２k の表の生成について考える。２のべき乗に対する置換アドレスの表は、上位ビットが任意のメモリアドレスに固定されている入力アドレスの低次のｋビットを用いることで、容易に作成される。アドレス０ｘ１０００（ここで、接頭部０ｘによって、基数１６、すなわち１６進数値が識別される）を底として、３２ビットオペランドの１０２４項目の表（合計サイズが４０９６バイト）を考える。入力アドレス・ストリームは、０から始まり、アクセス当たりのデータバイト数である４づつ単純にインクリメントされる。入力アドレス・ストリームと置換アドレス出力との間の所望のマッピングは、以下のように与えられる。
【００２０】
【表１】
0004267282.tif 000002
表１に示す如く、入力アドレスは、連続的に増加し、一方、置換アドレス出力は、固定アドレスから始まるモジュロ４０９６の表に順番に従う。この機能を生成する場合、６４ビットアドレスの置換制御レジスタは、値０ｘ０００１＿ＢＡ９８＿７６５４＿３２ｘ０で設定されるが、ここで、ｘは不定（ドントケア）値を示す。表中の点は、他に介在するアドレスシーケンスが存在することを示すが、便宜上、全て列挙しない。
【００２１】
第２に、ＦＦＴ処理に必要なことが多いビット反転の表について考える。２５６バイト、すなわち、アドレス０を底とする１６ビットデータ構造の場合、以下の表によって、必要なビット反転機能が定義される。
【００２２】
【表２】
0004267282.tif 000003
表２に示す如く、入力アドレスは、連続的に増加し、一方、置換アドレス出力は、ビット反転されたパターンに従う。この機能を生成する場合、６４ビットアドレスの置換制御レジスタは、値０ｘ００００＿００００＿１２３４＿５６７８で設定される。ここでも、点線は、便宜上示さないが、介在するアドレスのシーケンスを示す。
【００２３】
アドレス置換を行う場合、様々なタイミングの実行方法を用い得ることを理解されたい。また、様々なバッファ手法を実行してもよい。この結果、アドレス置換の実行に対応するタイミングは、実行方法に固有のものである。
【００２４】
この時点で、メモリアドレス置換の仕組みと、ユーザがメモリアドレスを修正又は置換して、それによって様々なタイプのメモリ置換モードの実行を可能にするための方法と、が提供されたことが理解されたであろう。本発明は、汎用プロセッサに用いて、プロセッサが、プロセッサのパイプライン・アーキテクチャに影響を及ぼすことなく又変更することなく、高機能なアドレスモードの実行を可能にする。メモリアドレス置換モードは、アドレス位置（すなわち、アドレスマッピング）によって選択又は決定し得る。また、様々なメモリアドレス置換方式が、アドレス置換制御レジスタ７０乃至７２で符号化され、アドレス置換間で透過的に切替えを行う際、高い自由度が可能になる。
【００２５】
本発明の様々な実際の具体例は、容易に利用し得る。例えば、様々なアーキテクチャが、処理ユニット２８に用い得る。本発明は、チップ上のシステムとして単一の集積回路チップ上に実現してもよく、又は複数の個別処理システムを用いて実現してもよい。図に示す特定の論理ブロックのいずれかを実行するために、実際の具体例を数多く創出し得る。例えば、メモリアレイは、ＤＲＡＭ、ＳＲＡＭ、フラッシュメモリ、及び様々な物理サイズを有するものとして実現してもよい。上述したビット幅は、具体例に固有のものであり、ビット指定子値等、上述した以外のビット幅を用いてもよい。システム１０は、複数のバスマスタを有するシステムとして実現してもよい。例えば、コプロセッサ又はＤＭＡを処理ユニット２８に用いてもよい。本発明は、ＭＯＳ、バイポーラ、ＳＯＩ、ＧａＡｓ、又は他の種類の半導体処理で実現してもよい。メモリアドレス置換の実行に用いる回路は、システム１０内の様々な場所に実装してもよく、メモリ制御装置内での実装に制限されない。従って、本発明は、添付の請求項の範囲内に入るこのような変更及び修正を全て含むものとする。
【００２６】
【発明の効果】
以上説明したように、システムにおけるメモリアドレス指定が最適化される。システムは、入力アドレスに含まれる制御情報に応じて、ユーザにより設定可能なアドレス指定モードを実現する。複数のユーザにより設定されたアドレス置換制御レジスタに記憶された符号化制御情報を用いて、入力アドレスの所定のビットを入れ替えて、対応する置換アドレスを選択的に生成するためにどのビット値を用いるか判断する。プロセッサのパイプラインを変更する必要がないことから、様々な置換アドレス指定モードは、ユーザ定義でき、また汎用プロセッサ又は専用プロセッサのいずれかを用いて実行し得る。
【図面の簡単な説明】
【図１】  本発明に用いる代表的なシステムを示すブロック図。
【図２】  ユーザにより設定可能なメモリアドレス指定モードを実現するための図１のメモリ制御回路を示すブロック図。
【図３】  図２における置換制御レジスタの内の１つにあるビットフィールド割当て表を示す図。
【図４】  図１のメモリアレイにおけるメモリパーティションマッピングを示すブロック図。
【図５】  メモリサイズを変更するための未置換形態によるアドレスのビットフィールド割当てを表形式で示す図。
【図６】  本発明に基づく置換アドレスに含まれるビットの一部のビットフィールド符号化を表形式で示す図。
【図７】  本発明に基づく、置換アドレスに含まれるビットにおける他の部分のビットフィールド符号化を表形式で示す図。
【符号の説明】
１２・・・システムバス制御装置、１６・・・バス、１８・・・モジュール、２０・・・モジュール、２６・・・処理コア部、２８・・・処理ユニット、３４・・・メモリ制御装置、３８・・・アドレス、３７・・・データ、３５・・・制御、３６・・・メモリアレイ、３０・・・メモリユニット、２２・・・バス、２４・・・バスマスタモジュール。
【図１】
0004267282.tif 000004
【図２】
0004267282.tif 000005
【図３】
0004267282.tif 000006
【図４】
0004267282.tif 000007
【図５】
0004267282.tif 000008
【図６】
0004267282.tif 000009
【図７】
0004267282.tif 000010