(57)【特許請求の範囲】
【請求項１】
第１のアドレスと第２のアドレスを加算して第３のアドレスを得る加算器と、
複数に分割されている領域を有するメモリと、
前記第１のアドレスの一部のビットと前記第２のアドレスの一部のビットを加算する部分加算器と、
前記部分加算器に接続されている判定論理回路とを具備し、
前記判定論理回路は、前記部分加算器の演算結果に基づいて前記メモリの前記複数の領域のうちの少なくとも２つの領域を活性化し、
前記加算器によって得られた第３のアドレスの一部のビットに応じて、前記メモリの前記複数の領域のうちの１つの領域からの出力が選択されることを特徴とするデータ処理装置。
【請求項２】
前記加算器の出力の前記第３のアドレスの上位ビットを第４のアドレスとし、
前記部分加算器が、前記加算器の入力となったのと同じ前記第１のアドレスと前記第２のアドレスのそれぞれの上位ビットを加算して得られたアドレスを第５のアドレスとし、
前記第５のアドレスに１を加えて得られるアドレスを第６のアドレスとし、
前記判定論理回路が、前記第５のアドレスに対応する前記メモリ上の領域と、第６のアドレスに対応する前記メモリ上の領域とを、活性化することを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記メモリが、複数のページによって構成されており、前記ページに対応して前記メモリの領域を分割することを特徴とする請求項１又は２記載のデータ処理装置。
【請求項４】
前記メモリが、複数のマットによって構成されており、前記メモリの複数に分割された領域が、前記マットであることを特徴とする請求項１又は２記載のデータ処理装置。
【請求項５】
前記メモリが、キャッシュメモリと、複数のページに分割されたメモリとを含んで構成されていることを特徴とする請求項１又は２記載のデータ処理装置。
【請求項６】
前記メモリが、複数のマットで構成されるキャッシュメモリであり、前記メモリの複数に分割された領域が、前記マットであることを特徴とする請求項１又は２記載のデータ処理装置。
【請求項７】
第１のアドレスと第２のアドレスを加算する加算器と、
前記第１のアドレスの一部と前記第２のアドレスの一部との論理和と、前記第１のアドレスの一部と、前記第２のアドレスの一部とを加算する第１の部分加算器と、
前記第１のアドレスの一部と前記第２のアドレスの一部との論理積と、前記第１のアドレスの一部と、前記第２のアドレスの一部とを加算する第２の部分加算器と、
前記第１の部分加算器に接続されている第１のメモリバンクと、
前記第２の部分加算器に接続されている第２のメモリバンクと、
前記第１と第２のメモリバンクに接続され、前記第１のアドレスと前記第２のアドレスを前記加算器で加算して得られた前記第３のアドレスに基づいて、前記第１もしくは第２のメモリバンクの出力を選択する第１の選択回路とを具備することを特徴とするデータ処理装置。
【請求項８】
第１のアドレスと第２のアドレスを加算する加算器と、
前記第１のアドレスの一部と、前記第２のアドレスの一部とを加算する第１の部分加算器と、
前記第１のアドレスの一部と、前記第２のアドレスの一部とを加算する第２の部分加算器と、
前記第１のアドレスの一部と前記第２のアドレスの一部との論理和に応じて、前記第１もしくは第２の部分加算器に選択的に接続される第１のメモリバンクと、
前記第１のアドレスの一部と前記第２のアドレスの一部との論理積に応じて、前記第１もしくは第２の部分加算器に選択的に接続される第２のメモリバンクと、
前記第１と第２のメモリバンクに接続され、前記第１のアドレスと前記第２のアドレスを加算する加算器の演算結果に基づいて、前記第１もしくは第２のメモリバンクの出力を選択する第１の選択回路とを具備することを特徴とするデータ処理装置。
【請求項９】
前記第１の部分加算器の出力に接続され、前記第１の部分加算器の演算結果にハッシュ処理を施す第１のハッシュ回路と、
前記第２の部分加算器の出力に接続され、前記第２の部分加算器の演算結果にハッシュ処理を施す第２のハッシュ回路と、
前記第１のハッシュ回路の出力を前記第１もしくは前記第２のメモリバンクに、前記第２のハッシュ回路の出力を他方のメモリバンクに、それぞれ選択的に接続する第２の選択回路とを具備することを特徴とする請求項７又は８記載のデータ処理装置。
【請求項１０】
前記データ処理装置は、ＴＬＢを含み、前記ＴＬＢは、前記第１および前記第２の部分加算器と、前記第１および前記第２のハッシュ回路と、前記第１および前記第２のメモリバンクと、前記第１の選択回路と、前記第２の選択回路とを含むことを特徴とする請求項９記載のデータ処理装置。
【請求項１１】
アドレスマップに位置づけられる複数種のメモリと、
第１のアドレスと第２のアドレスを加算する第１の加算器と、
前記第１のアドレスの上位ビットと前記第２のアドレスの上位ビットを加算する第２の加算器と、
前記第２の加算器の出力に接続された判定論理回路とを具備し、
前記判定論理回路が、前記第２の加算器の演算結果に応じて、前記複数種のメモリを選択的に活性化し、
上記第２の加算器で加算する前記第１のアドレス及び前記第２のアドレスの上位ビット数は上記複数種のメモリを切り分け可能なビット数とされていることを特徴とするデータ処理装置。
【請求項１２】
前記メモリが、互いに連続しないアドレス空間を割り付けられたキャッシュメモリと別の内部メモリを含んで構成されること特徴とする請求項１１記載のデータ処理装置。
【請求項１３】
前記キャッシュメモリと前記内部メモリが、互いに排他的に活性化されるように制御することを特徴とする請求項１２記載のデータ処理装置。
【請求項１４】
前記キャッシュメモリのアドレス空間と、前記内部メモリのアドレス空間とを含み、キャッシュ空間の外部メモリへのアクセスは前記キャッシュメモリを通して行い、前記内部メモリへのアクセスは直接行うことを特徴とする請求項１２又は１３記載のデータ処理装置。
【請求項１５】
前記キャッシュメモリにアクセスする場合は、前記キャッシュメモリにキャッシュヒット制御を行い、キャッシュ対象外の前記内部メモリのアドレス空間にアクセスする場合はアドレス信号で直接認識されるアドレスを用いることを特徴とする請求項１２、１３又は１４記載のデータ処理装置。
【請求項１６】
前記第１のアドレスをベースアドレスとし、第２のアドレスをオフセットとすることを特徴とする請求項１乃至１５のいずれか１項に記載のデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロプロセッサ等のデータ処理装置に係り、特に高速なメモリアクセス、及び消費電力を抑えたメモリアクセスを行う情報処理装置に関する。
【０００２】
【従来の技術】
プロセッサの主要な動作の１つに、アドレスが示すメモリ装置の内容をプロセッサ内部に取り込むメモリアクセス処理があり、プロセッサの処理性能を決める重要な要素となっている。一般的に、このアドレスはプロセッサ内部の２つのレジスタの値を加算したものが使われることが多い。また、メモリアクセスによって得られた値がレジスタに格納され、そのレジスタの値をさらに次のメモリアクセスのアドレス計算に使うことがあるため、加算→メモリアクセス→レジスタ→加算の繰り返し性能がプロセッサの性能を決める要因となる。メモリアクセスからレジスタへの経路は、メモリから加算器へのバイパス制御によって隠すことができるため、実質的には、加算→メモリアクセス→加算の処理速度が性能を決める。
【０００３】
近年のプロセッサはメモリアクセス性能を高めるためにメインメモリの内容の一部をプロセッサ内部の高速なメモリに蓄えておくキャッシュメモリや、アドレス変換、メモリ保護情報の一部を同様にプロセッサ内部の高速なメモリに蓄えておくＴＬＢ（Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋａｓｉｄｅ  Ｂｕｆｆｅｒ）を搭載するものが多い。いずれもメモリアクセス動作は上記の加算処理によって求められたアドレスで決定される。
【０００４】
また、特に高いメモリ性能を必要とするプロセッサでは、キャッシュメモリやＴＬＢ以外に、ユーザが自由に利用可能なメモリや、デジタル信号処理に特化したメモリ等、多種多用のメモリが搭載されることがある。これらの各種メモリは、プロセッサのアドレス空間に配置され、プログラムから利用する場合にはそのメモリ種の空間を示すアドレスによってメモリアクセスすることで行われる。つまり、アドレスが与えられることによって、アクセスすべきメモリが決定される。高速動作が要求されるプロセッサでは、加算結果の確定から即刻メモリの動作を開始したいため、上記メモリ種等の判定を行う前に全種類のメモリを動作させ、最終的に１つのメモリアクセスの結果を取り出す手法を用いることがある。
【０００５】
特開平４−７６６４８号公報には、２つのレジスタ値の加算結果がメモリアドレスとなる場合に、キャッシュアクセスを高速化する手法が示されている。これは、キャッシュメモリのエントリアドレスが加算によって計算されたアドレスの一部のビットで決定することを利用し、加算の下位のビットからの桁上げを待たずに桁上げが０／１の両方の場合を想定して２つの連続したエントリを読み出せるメモリを用意するものである。
【０００６】
【発明が解決しようとする課題】
従来の方式には、大きく別けて２つの問題がある。
【０００７】
第１の問題は、多種のメモリを搭載したプロセッサで、加算→メモリアクセスの経路を高速にするために全種類のメモリを動作させることで、消費電力が非常に大きくなることである。近年、バッテリで駆動される携帯機器向けのプロセッサで消費電力を抑えることが重要視されていると共に、据置型の装置でもプロセッサの動作周波数が向上するにしたがってＬＳＩの放熱量を抑えることが要求されている。消費電力を抑えるために、アドレス加算後にメモリ種別を判定する方式も考えられるが、高速動作の要求に応えられない。
【０００８】
第２の問題は、上記特開平４−７６６４８号公報の手法に関係する。この手法は加算→メモリアクセスの高速化を目的としているが、ＴＬＢなどの応用に柔軟に対応できない。ＴＬＢは、複数のプロセスによってＴＬＢエントリが競合することを避けるために、しばしば加算結果をアドレス空間識別子、ＡＳＩＤでハッシュ処理したものをエントリとして使う。具体的にはハッシュ処理にビット毎の排他的論理和を使うことが多いが、その場合のアクセス対象となる２つのエントリアドレスは必ずしも連続した関係とならない。ＴＬＢエントリアドレスが５ビットで、加算によって得られたエントリアドレスが００００１、ＡＳＩＤが０００００と００００１の場合の具体例を、以下に示す。
0003817449.tif 000002
特開平４−７６６４８号公報では、桁上げのあり／なしで連続したエントリアドレスとなることが前提となっているため、上に示したようなエントリアドレスにハッシュ処理を行うＴＬＢには適用不可である。また、上記公報の図面では１つのメモリマットから２つのデータを取り出すことが示唆されている。つまりデュアルポートで、かつアドレスデコーダが特殊なメモリを使用することが前提となる。これは、メモリ自体の面積が増大すると共に、このような特殊なメモリの使用によって、プロセッサコアの製品展開が難しくなることが考えられる。
【０００９】
以上の発明者らの問題分析を踏まえた上で、多種のメモリを搭載したプロセッサの加算→メモリアクセスの処理速度を落とさずに、消費電力を下げることを第１の課題とする。また、ＴＬＢに適用可能な、加算→メモリアクセスの経路を高速化することを第２の課題とする。
【００１０】
本発明の上記課題を解決するための手段及び新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【００１１】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば、下記のとおりである。
【００１２】
ベースアドレスとオフセットとを加える演算器と、前記演算器で計算されたアドレスの一部のビットをエントリアドレスとするＮ個（Ｎは自然数）のメモリと、そのＮ個のメモリの出力を選択するマルチプレクサと、前記ベースアドレスの一部のビットと前記オフセットの一部のビットとを加える部分演算器と、前記部分演算器に接続される判定論理とを有し、その判定論理がＮ個のメモリのうち（Ｎ−１）個以下のメモリを活性化することを特徴とする。
【００１３】
上記代表的な発明では、第１の課題を解決するために、加算によって得られたメモリアドレスの一部のビットのみを用いてメモリ種別が判定可能という性質を利用する。メモリアドレス用の加算器とは別に、メモリ種別を判定するための、アドレスの一部のみを計算する加算器を用いる。このとき、部分加算の結果には加算によって下位のビットから発生する桁上げ（キャリ）が足し込まれていないため、桁上げの有り／無しの両方の場合を想定して最大で２種類のメモリを動作させる。このビット数の少ない加算器は高速に動作するため、メモリアドレスの決定より先に、ＬＳＩ上に多数存在するメモリ種別から動作対象を２つに特定することが可能となる。
【００１４】
他の代表的なものの概要を簡単に説明すれば、下記の通りである。
【００１５】
ベースアドレスの一部と、オフセットの一部と、前記ベースアドレスの一部と前記オフセットの一部を論理和した値とを演算する第１の部分演算器と、ベースアドレスの一部と、オフセットの一部と、前記ベースアドレスの一部と前記オフセット一部を論理積した値とを演算する第２の部分演算器と、前記第１の部分演算器と接続される第１のメモリバンクと、前記第２の部分演算器と接続される第２のメモリバンクと、前記第１のメモリバンクと、前記第２のメモリバンクとに接続され、前記ベースアドレスと前記オフセットを演算した結果の値に従って前記第１のメモリバンクからのデータ、もしくは前記第２のメモリバンクからのデータを選択するマルチプレクサとを有することを特徴とする。
【００１６】
また、同じようにこの手法をメモリのエントリアドレスに適用すると、アドレスの一部のみを計算する加算器を用いてエントリアドレスを２つに絞り込むことが可能となる。特開平４−７６６４８号公報がＴＬＢに対応できない問題を解決するために、偶数バンク、奇数バンクそれぞれに専用の加算器を用意し、ハッシュ処理が施された場合にも適切なエントリアドレスをアクセスするよう、２つの加算器にそれぞれ適切な値をキャリ入力するように制御することが重要である。
【００１７】
【発明の実施の形態】
以下、本発明の実施例について、図面を参照して説明する。
【００１８】
（１）実施例１
まず、本発明を適用するプロセッサのメモリ構成を、図２に示す。このプロセッサ２０１は、プログムラム制御と簡単な演算を行うＣＰＵ２０２と、デジタル信号処理を行うＤＳＰ２０３を搭載する。これに接続されるメモリに、メインメモリのコピーの一部を格納するキャッシュメモリ２０４、ＤＳＰの演算データを格納するＸＹメモリ２０５、ユーザプログラムで自由に利用可能なＵメモリ２０６が搭載される。ＸＹメモリ内部は、複数のメモリアクセス要求を受け付けられるよう、Ｘメモリページ０、Ｘ０（２０７）、Ｘメモリページ１、Ｘ１（２０８）、Ｙメモリページ０、Ｙ０（２０９）、Ｙメモリページ１、Ｙ１（２１０）の４ページのメモリで構成する。同様にＵメモリも、Ｕメモリページ０、Ｕ０（２１１）、Ｕメモリページ１、Ｕ１（２１２）の２ページで構成する。これらのメモリに対するアクセスはアドレスバス２１３、データバス２１４を介して行われる。
【００１９】
これらのメモリは、図３のアドレスマップに示すように、一つの３２ビットアドレス空間に配置される。まず、大きくキャッシュ空間、非キャッシュ空間、制御空間に分類される。キャッシュ空間にアクセスした場合には、キャッシュのヒット判定を行ない、その判定結果にしたがって適当なキャッシュメモリ制御が行われ、キャッシュメモリを介して間接的に外部メモリにアクセスする。非キャッシュ空間内部にアクセスした場合は、アドレスに従って指定されたメモリに直接アクセスする。この空間はさらに内蔵メモリ空間とそれ以外の空間に分類される。内蔵メモリ空間には、Ｘメモリ、Ｙメモリ、Ｕメモリのそれぞれのページ０、１が配置され、それ以外の空間へのアクセスは外部メモリがアクセス対象となる。制御空間は、キャッシュのモードを切り換えるための制御レジスタや、キャッシュのタグ部分やデータ部分などを直接読み書きするための制御用アドレスが割り当てられている。
【００２０】
例えば、アドレスが６０００００００なら、キャッシュメモリに、Ａ５００８０００ならＸメモリのページ１、Ａ５５ＦＦＦＦ０ならＵメモリのページ０、Ａ０００００００なら外部メモリに直接といった具合に、アドレスによってメモリの種別を切り換えることが可能である。
【００２１】
図４に、図２のメモリシステムにおけるＸＹメモリの従来方式のメモリアクセス回路で、動作速度度を重視した場合の構成を示す。メモリのアドレスは、加算器１０１で、ベースアドレスＡとオフセットＢを加算することで生成される。ＸＹメモリ１０２はＸ０（１０３）、Ｘ１（１０４）、Ｙ０（１０５）、Ｙ１（１０６）の４ページのメモリで構成される。この従来方式では、動作速度を重視するために、ＸＹメモリに対するアクセスが発生すると、アドレスの決定とともに即刻全４ページのメモリを動作させ、各ページの出力をマルチプレクサ１０７で選択して、いずれか１つのページのアクセス結果をＸＹメモリの出力とする。この方式では、動作に無駄な時間が無いが、全ページを動作させるため、消費電力が大きくなるのが欠点である。
【００２２】
図５は、従来方式のメモリアクセス回路で、消費電力を重視した構成を示す。消費電力を重視するために、判定回路５０１が追加されている点で、図４と異なる。この判定回路は、加算によって求められたアドレスのビット１６、１５から動作させるべきＸＹメモリのページを判定し、１ページのみを活性化させる。その選択の様子を、以下に示す。
0003817449.tif 000003
これにより、消費電力を削減することが可能となるが、アドレス加算器→判定論理→メモリアクセス、のように判定論理の動作時間だけメモリアクセス性能が低下する。特に、加算の結果が下位のビットより上位のビットの方が遅く確定する傾向にあるため、ページの判定に必要なビット１６、１５は、ＸＹメモリのエントリを決定するビット１４〜０より遅く確定することも性能低下の原因となる。前に述べたように、このメモリアクセスの経路はプロセッサ全体の動作速度を決定する重要な要因となるため、その性能低下の影響は非常に大きい。
【００２３】
図１に、図２のメモリシステムにおけるＸＹメモリに対して本発明を適用したメモリアクセス回路を示す。本発明では判定論理１１０と、専用の部分加算器１０８を備えることを特徴とする。図１の判定論理１１０は従来方式の５の判定論理５０１とは異なる（後述）。この加算器は、ＸＹメモリの４ページを切り分けるのに必要なビット１５、１６だけを計算する。ベースアドレスからＡ［１６:１５］、オフセットからＢ［１６:１５］を取り出して２ビット同士の加算を行い、２ビットの結果１０９を出力する。この加算の際、２ビット目から発生する桁上げは利用しないので計算する必要はない。
【００２４】
ここで得られた２ビットの加算結果１０９を用いて、判定論理１１０で動作すべきＸＹメモリのページを決定する。ただし、２ビットの加算結果１０９には、本来の加算器１０１の１４ビット目から１５ビット目に伝搬する桁上げが足し込まれていないことに注意しなくてはならない。本発明では、桁上げが発生した場合を想定して、さらに１を足した値が示すメモリも加えて動作させる。すなわち、４ページのうち、２ページを活性化することになる。その選択の様子を以下に示す。これにより、ビット１４〜０の加算結果によらずアクセス対象となるページが必ず動作することになる。
0003817449.tif 000004
この部分加算器１０８はたかだか２ビットだけの計算をするため、３２ビットを扱う加算器１０１より格段に高速に動作する。また、判定論理１１０も、上に示す選択を行うだけの簡単なデーコーダであるため、ＸＹメモリのエントリアドレスであるビット１４〜０の決定よりも先にページの判定が可能となり、図４の動作速度を重視した回路と同等の時間で動作する。
【００２５】
以上のように、本発明をＸＹメモリのアクセス回路に適用することで、動作速度を低下させずに消費電力を下げることが可能となる。
【００２６】
（２）実施例２
図６は、実施例１と同様、図２のメモリシステムを対象とし、本発明の方式をメモリ種別の選択に適用したメモリアクセス回路を示す。本実施例では、キャッシュメモリ２０４、ＸＹメモリ２０５、Ｕメモリ２０６の種別判定を実施例１と同様に、部分加算器６０１、判定回路６０３によって行う。図３のアドレスマップから、この３種類のメモリを切り分けるためには、メモリ種別の判定には、Ａ［３１：１７］、Ｂ［３１：１７］の１５ビットづつを部分加算器６０１で加算する必要があることがわかる。判定回路６０３は、この加算結果にビット１６からビット１７への桁上げが加えられていないことに注意して、３種類のメモリから適切に最小限必要なメモリを選んで活性化する。
【００２７】
（３）実施例３
図７は、実施例１と同様、図２のメモリシステムを対象とし、本発明の方式をキャッシュメモリ内部のメモリマットの選択に適用したメモリアクセス回路を示す。このキャッシュメモリは容量２５６ＫＢ、４ウェイセットアソシアティブ方式、ラインサイズ３２ビット×４ワードで、キャッシュのエントリアドレスはビット１５〜４で指定される。２５６ＫＢという大容量のメモリを搭載するため、動作速度や歩留まり、消費電力の観点から、３２ＫＢのメモリマットを８枚使用する。
【００２８】
本実施例では、このメモリマットの選択に本発明を適用する。メモリマットを決定するにはアドレスのビット１５〜１３の３ビットが必要である。そこで、Ａ［１５:１３］、Ｂ［１５:１３］の和を部分加算器７０１で計算し判定回路７０３はその結果用いて、ビット１２からビット１３への桁上げが加えられていないことに注意して８枚のメモリマットから２枚を選択する。この選択は、３２ビットの加算より前に行うことができるため、キャッシュアクセスの動作速度をキャッシュアクセスに要する電力を減らすことができる。
【００２９】
（４）実施例４
本実施例は、本発明の手法をＴＬＢのエントリ生成に適用する。プロセッサは３２ビットのアドレス空間を持ち、ＴＬＢのページサイズは１ＫＢ、エントリ数は３２で４ウェイセットアソシアティブ方式とする。ＯＳ（ＯｐｅｒａｔｉｎｇＳｙｓｔｅｍ）の複数のプロセスによる同一エントリの競合を低減させるためのアドレス空間識別子、ＡＳＩＤを指定することがでる。このときＴＬＢのエントリ番号はアドレスのビット１６から１２までの５ビットとＡＳＩＤをハッシュ関数で変換した結果の５ビットで指定される。ここで、ハッシュ関数はビットごとのＥＯＲ（Ｅｘｃｌｕｓｉｖｅ  ＯＲ、排他的論理和）と定義する。
【００３０】
図１０に、このプロセッサにおけるＴＬＢアクセス回路を示す。メモリはエントリ番号の偶数バンク１００９・奇数バンク１０１０に分割され、それぞれ１６エントリ分のアドレス変換情報を持つ。この２つのバンクのうち、一方がマルチプレクサ１０１２で選択されてＴＬＢの出力となる。エントリを計算するために２つの４ビット加算器１００１、１００２が設置され、そのそれぞれの加算結果は１００５、１００６でハッシュ処理される。
【００３１】
ここで、偶数・奇数バンクのエントリアドレスの算出方法を述べる。図８にハッシュ論理が無いと仮定した場合の場合のＡ［１２］、Ｂ［１２］と、下位から桁上げＣｉｎ［１２］、加算結果の１２ビット目であるＺ［１２］、ビット１２への桁上げであるＣｉｎ［１２］、偶数・奇数バンクのエントリアドレスとマルチプレクサの選択の関係を示す。エントリアドレスの斜線部分は、マルチプレクサで選択されない側のアドレスでドントケアを表す。
【００３２】
このとき、Ｃｉｎ［１２］の欄を削除し、ドントケアに気をつけて表を縮退させると、図９になる。これは、偶数・奇数バンクのエントリアドレスはＣｉｎ［１２］に依存せずに決定できることを示しており、これによって、それぞれのバンクに用意された加算器のキャリ入力Ｃｉｎは論理和１００３と論理積１００４となることが分かる。さらに、図８のＺ［１２］とバンクの関係をみると、Ｚ［１２］によって読み出し結果の選択をすればよいといえる。
【００３３】
さらに、この結果にハッシュ処理（ＥＯＲ）を加えると図１０の回路が得られる。注意すべき点は、ＡＳＩＤ［０］によって、偶数・奇数バンクのエントリアドレスをマルチプレクサ１００７、１００８で交換し、さらにバンクの選択信号をハッシュ回路１０１０で処理する必要が発生することである。
【００３４】
（５）実施例５
図１１は、実施例４のＴＬＢアクセス回路のＡＳＩＤ［０］によるエントリアドレスの交換部分（１００７、１００８）を、部分加算器のＣｉｎの交換（１１０１、１１０２）に置き換えた回路であり、実施例４と論理等価である。実施例４と比較して、エントリアドレスがマルチプレクサを介さずに各メモリバンクに直接接続できる点で、チップレイアウトに適した構成である。
【００３５】
（６）実施例６
図１２は、実施例４のＴＬＢアクセス回路における部分加算器（１００１、１００２）のＣｉｎを０、１に固定し(１２０１、１２０２)、ビット１２の論理積、論理和をＡＳＩＤ［０］に従ってマルチプレクサ１２０３、１２０４で交換した結果を用いて、各バンクのエントリアドレスを選択する回路であり、実施例４と論理等価である。実施例４と比較して、部分加算器のＣｉｎを固定にすることで、加算遅延を小さくすることに重点を置いた構成である。
【００３６】
（７）実施例７
図１３は、実施例４のＴＬＢアクセス回路でハッシュ処理が無い場合の例を示したものである。本実施例の構成はハッシュが不要なキャッシュメモリにも使用することが可能で、特開平４−７６６４８号公報が連続したエントリアドレスの結果が読み出せる特殊なメモリ構造を取っているのに対し、メモリバンク１００９、１０１０に一般的なメモリを利用可能である点で優れている。これは、シンセサイザブルなプロセッサコアを展開するにあたって大きな利点となる。
【００３７】
【発明の効果】
本発明は、加算の結果で得られたアドレスの一部のビットを用いてメモリアクセスの動作速度を向上させる。この高速化の範囲には、メモリ種別の判定や、メモリマットの判定、メモリアクセスに必要なエントリアドレスなど、多くのメモリに付随する回路に及ぶ。
【００３８】
本発明の効果の１つは、メモリ種別やメモリマットの判定に適用した場合に発揮され、高速にその判定を行うことで従来方式と比較して動作速度を低下させずに消費電力を下げることである。
【００３９】
本発明のもう１つの効果は、エントリアドレスの決定に適用した場合に発揮され、従来方式よりも早くメモリの動作を開始することが可能となり、加算→メモリアクセスの経路を高速化できることである。また、ＴＬＢのようにエントリアドレスにハッシュ論理を用いる場合にも対応できることも重要な効果である。
【図面の簡単な説明】
【図１】本発明を適用したメモリアクセス回路の例（１）を示す図。
【図２】本発明を適用するプロセッサのメモリ構成を示す図。
【図３】アドレスマップを示す図。
【図４】動作速度度を重視した従来方式のメモリアクセス回路を示す図。
【図５】消費電力を重視した従来方式のメモリアクセス回路を示す図。
【図６】本発明を適用したメモリアクセス回路の例（２）を示す図。
【図７】本発明を適用したメモリアクセス回路の例（３）を示す図。
【図８】エントリアドレス真理値表（１）を示す図。
【図９】エントリアドレス真理値表（２）を示す図。
【図１０】本発明を適用したＴＬＢ変換装置の例（１）を示す図。
【図１１】本発明を適用したＴＬＢ変換装置の例（２）を示す図。
【図１２】本発明を適用したＴＬＢ変換装置の例（３）を示す図。
【図１３】本発明を適用したＴＬＢ変換装置の例（４）を示す図。
【符号の説明】
１０１：加算器、１０２：ＸＹメモリ、１０３：Ｘメモリページ０、１０４：Ｘメモリページ１、１０５：Ｙメモリページ０、１０６：Ｙメモリページ１、１０７：マルチプレクサ、１０８：部分加算器、１０９：部分加算結果、１１０：ページ判定論理、２０１：プロセッサコア、２０２：ＣＰＵ、２０３：ＤＳＰ、２０４：キャッシュメモリ、２０５：ＸＹメモリ、２０６：Ｕメモリ、２０７：Ｘメモリページ０、２０８：Ｘメモリページ１、２０９：Ｙメモリページ０、２１０：Ｙメモリページ１、２１１：Ｕメモリページ０、２１２：Ｕメモリページ１、２１３：アドレスバス、２１４：データバス、５０１：ページ判定論理、６０１：部分加算器、６０２：部分加算結果、６０３：メモリ種別判定論理、６０４：マルチプレクサ、７０１：部分加算器、７０２：部分加算結果、７０３：マット判定論理、７０４：マルチプレクサ、１００１：部分加算器、１００２：部分加算器、１００３：論理和ゲート、１００４：論理積ゲート、１００５：ハッシュ回路、１００６：ハッシュ回路、１００７：マルチプレクサ（偶数バンク用）、１００８：マルチプレクサ（奇数バンク用）、１００９：偶数バンクメモリ、１０１０：奇数バンクメモリ、１０１１：ハッシュ回路、１０１２：マルチプレクサ（偶数・奇数バンク選択）、１１０１：マルチプレクサ（偶数バンク加算器用）、１１０２：マルチプレクサ（奇数バンク加算器用）、１２０１：部分加算器（キャリ入力０）、１２０２：部分加算器（キャリ入力１）、１２０３：マルチプレクサ（偶数バンク制御用）、１２０４：マルチプレクサ（奇数バンク制御用）。
【図１】
0003817449.tif 000005
【図２】
0003817449.tif 000006
【図３】
0003817449.tif 000007
【図４】
0003817449.tif 000008
【図５】
0003817449.tif 000009
【図６】
0003817449.tif 000010
【図７】
0003817449.tif 000011
【図８】
0003817449.tif 000012
【図９】
0003817449.tif 000013
【図１０】
0003817449.tif 000014
【図１１】
0003817449.tif 000015
【図１２】
0003817449.tif 000016
【図１３】
0003817449.tif 000017