(57)【特許請求の範囲】
【請求項１】
複数のメモリ内に配置された複数の領域にアクセスするプロセッサ装置であって、
アクセス用メモリアドレスのうち、Ｍビットを解読し、どの領域がアクセスされるかを判断する判断手段と、
前記アクセス用メモリアドレスのうち、Ｎビット（ここでＮはＭより小さい数）を解読し、どの領域がアクセスされるかを推定し、前記判断手段が判断結果を生成するより速く当該推定結果を生成する推定手段と、
前記推定結果に基づいてアクセスを開始するアクセス手段と、
前記判断結果と前記推定結果との不一致を検知する検知手段と、
前記検知手段が前記不一致を検知したときに、開始されている前記アクセスを停止し、前記判断結果に基づいて別のアクセスを実行するよう前記アクセス手段を制御する制御手段とを含むプロセッサ装置。
【請求項２】
前記アクセス用メモリアドレスは、第１領域と第２領域とを含むアドレス空間におけるアドレスであり、
前記第１領域は、第１メモリに割り当てられた第１部分領域と、第２メモリに割り当てられた第２部分領域とを含み、
前記判断手段は、前記アクセス用メモリアドレスのＭビットを解読することにより、少なくとも第１部分領域と第２部分領域と第２領域とのうち、どの領域がアクセスされるかを判断し、
前記推定手段は、前記アクセス用メモリアドレスのＮビット（ここでＮはＭより小さい数）を解読することにより、少なくとも第１領域と第２領域とのうち、どの領域がアクセスされるかを判定して、当該第１領域がアクセスされると判定した場合には第１メモリに対応する一領域がアクセスされると推定する
ことを特徴とする請求項１記載のプロセッサ装置。
【請求項３】
前記検知手段による前記不一致の検知は、前記推定手段が第１領域がアクセスされると判定し、かつ、前記判断手段が第１部分領域以外の領域がアクセスされると判断したことである
ことを特徴とする請求項２記載のプロセッサ装置。
【請求項４】
前記プロセッサ装置は更に、メモリアクセス命令のオペランドに従って前記アクセス用メモリアドレスの計算を行うアドレス計算手段を含む
ことを特徴とする請求項１記載のプロセッサ装置。
【請求項５】
前記アクセス用メモリアドレスは、第１領域と第２領域とを含むアドレス空間におけるアドレスであり、
前記第１領域は、第１メモリに割り当てられた第１部分領域と、第２メモリに割り当てられた第２部分領域とを含み、
前記判断手段は、前記Ｍビットを解読することにより、少なくとも第１部分領域と第２部分領域と第２領域とのうち、どの領域がアクセスされるかを判断し、
前記推定手段は、前記Ｎビットを解読することにより、少なくとも第１領域と第２領域とのうち、どの領域がアクセスされるかを判定して、当該第１領域がアクセスされると判定した場合には第１メモリに対応する一領域がアクセスされると推定する
ことを特徴とする請求項４記載のプロセッサ装置。
【請求項６】
前記検知手段による前記不一致の検知は、前記推定手段が第１領域がアクセスされると判定し、かつ、前記判断手段が第１部分領域以外の領域がアクセスされると判断したことである
ことを特徴とする請求項５記載のプロセッサ装置。
【請求項７】
複数のメモリ内に配置された複数の領域にアクセスするプロセッサ装置であって、
メモリアクセス命令のオペランドに従って前記アクセス用メモリアドレスの計算を行うアドレス計算手段と、
前記アクセス用メモリアドレスを解読することにより、どの領域がアクセスされるかを判断する判断手段と、
前記メモリアクセス命令の一オペランドとして表されたデータを解読することにより、どの領域がアクセスされるかを推定し、前記判断手段が判断結果を生成するより速く当該推定結果を生成する推定手段と、
前記推定結果に基づいてアクセスを開始するアクセス手段と、
前記判断結果と前記推定結果との不一致を検知する検知手段と、
前記検知手段が前記不一致を検知したときに、開始されている前記アクセスを停止し、前記判断結果に基づいて別のアクセスを実行するよう前記アクセス手段を制御する制御手段とを含むプロセッサ装置。
【請求項８】
前記判断手段は、前記計算がなされたアクセス用メモリアドレスのＭビットを解読し、
前記推定手段は、前記メモリアクセス命令の前記オペランドとして表された前記データのＮビット（ここでＮはＭより小さい数）を解読する
ことを特徴とする請求項７記載のプロセッサ装置。
【請求項９】
前記アクセス用メモリアドレスは、第１領域と第２領域とを含むアドレス空間におけるアドレスであり、
前記第１領域は、第１メモリに割り当てられた第１部分領域と、第２メモリに割り当てられた第２部分領域とを含み、
前記判断手段は、前記Ｍビットを解読することにより、少なくとも第１部分領域と第２部分領域と第２領域とのうち、どの領域がアクセスされるかを判断し、
前記推定手段は、前記Ｎビットを解読することにより、少なくとも第１領域と第２領域とのうち、どの領域がアクセスされるかを判定して、当該第１領域がアクセスされると判定した場合には第１メモリに対応する一領域がアクセスされると推定する
ことを特徴とする請求項８記載のプロセッサ装置。
【請求項１０】
前記検知手段による前記不一致の検知は、前記推定手段が第１領域がアクセスされると判定し、かつ、前記判断手段が第１部分領域以外の領域がアクセスされると判断したことである
ことを特徴とする請求項９記載のプロセッサ装置。
【請求項１１】
少なくとも、メモリアクセス命令により指定されたアクセス用メモリアドレスを計算するための実行ステージと、当該実行ステージの直後に続き、前記計算がなされたアクセス用メモリアドレスにアクセスするメモリアクセスステージとからなるパイプラインで、処理を行うプロセッサ装置であって、
前記実行ステージにおいて、前記アクセス用メモリアドレスのＭビットを解読することによりどの領域がアクセスされるかを判断する判断手段と、
前記実行ステージにおいて、前記アクセス用メモリアドレスのＮビット（ここでＮはＭより小さい数）を解読することによりどの領域がアクセスされるかを推定し、前記判断手段が判断結果を生成するより速く当該推定結果を生成する推定手段と、
前記実行ステージにおいて、前記判断結果と前記推定結果との不一致を検知する検知手段と、
前記メモリアクセスステージにおいて、前記検知手段が前記不一致でないことを検知したときには前記推定結果に基づいてアクセスを開始するアクセス手段と、
前記検知手段が前記不一致を検知したときに前記メモリアクセスステージを伸長するパイプライン制御手段とを備え、
前記アクセス手段は、前記伸長されたメモリアクセスステージにおいて前記判断結果に基づくアクセスを実行する
ことを特徴とするプロセッサ装置。
【請求項１２】
前記アクセス用メモリアドレスは、第１領域と第２領域とを含むアドレス空間におけるアドレスであり、
前記第１領域は、第１メモリに割り当てられた第１部分領域と、第２メモリに割り当てられた第２部分領域とを含み、
前記判断手段は、前記Ｍビットを解読することにより、少なくとも第１部分領域と第２部分領域と第２領域とのうち、どの領域がアクセスされるかを判断し、
前記推定手段は、前記Ｎビットを解読することにより、少なくとも第１領域と第２領域とのうち、どの領域がアクセスされるかを判定して、当該第１領域がアクセスされると判定した場合には第１メモリに対応する一領域がアクセスされると推定する
ことを特徴とする請求項１１記載のプロセッサ装置。
【請求項１３】
前記検知手段による前記不一致の検知は、前記推定手段が第１領域がアクセスされると判定し、かつ、前記判断手段が第１部分領域以外の領域がアクセスされると判断したことである
ことを特徴とする請求項１２記載のプロセッサ装置。
【請求項１４】
前記プロセッサ装置は更に、前記メモリアクセス命令のオペランドに従って前記アクセス用メモリアドレスの計算を行うアドレス計算手段を含み、
前記判断手段は、前記計算がなされたアクセス用メモリアドレスのＭビットを解読し、
前記推定手段は、前記計算がなされたアクセス用メモリアドレスのうち、Ｎビット（ここでＮはＭより小さい数）を解読する
ことを特徴とする請求項１３記載のプロセッサ装置。
【請求項１５】
前記プロセッサ装置は更に、
前記メモリアクセス命令により指定されたベースアドレスとオフセットアドレスとを、前記実行ステージにおいて、格納する２つのオペランドレジスタと、
前記２つのオペランドレジスタ内の前記ベースアドレスと前記オフセットアドレスとを加算することにより前記アクセス用メモリアドレスの計算を行うアドレス計算手段と、
前記２つのオペランドレジスタの一方から出力されたベースアドレスを選択するオペランド選択手段とを含み、
前記判断手段は、前記計算がなされたアクセス用メモリアドレスのＭビットを解読し、
前記推定手段は、前記オペランド選択手段により選択されているベースアドレスのＮビットを解読する
ことを特徴とする請求項１３記載のプロセッサ装置。
【請求項１６】
前記メモリアクセス命令が、前記アクセス用メモリアドレスの指定に関して絶対アドレッシングモードの命令である場合においては、前記２つのオペランドレジスタの一方は、ベースアドレスとして、絶対アドレスを格納し、他方は、オフセットアドレスとして、全て値が０であるビット列を格納し、
前記メモリアクセス命令が、前記アクセス用メモリアドレスの指定に関してレジスタ相対アドレッシングモードの命令である場合においては、前記２つのオペランドレジスタの一方は、ベースアドレスとして、レジスタから読み出されているデータを格納し、他方は、オフセットアドレスとして、相対アドレスを格納する
ことを特徴とする請求項１５記載のプロセッサ装置。
【請求項１７】
前記アクセス手段は、
前記実行ステージにおいて、前記推定結果を選択し、前記メモリアクセスステージにおいて、前記検知手段が前記不一致を検知したときに限り、前記判断結果を選択する結果選択部と、
前記実行ステージにおいて、前記選択された推定結果に基づく第１メモリアクセスに用いられる第１制御信号群を生成し、前記メモリアクセスステージにおいて、前記検知手段が前記不一致を検知したときに、前記選択された判断結果に基づく第２メモリアクセスに用いられる第２制御信号群を生成するアクセス制御部と、
前記第１制御信号群と前記第２制御信号群とのいずれかを格納し、前記メモリアクセスステージにおいて当該第１制御信号群と当該第２制御信号群とのいずれかを前記第１メモリ及び前記第２メモリへ出力するアクセス制御レジスタとを含み、
前記検知手段が前記不一致を検知したときに前記アクセス制御レジスタがリセットされる
ことを特徴とする請求項１３記載のプロセッサ装置。
【請求項１８】
前記検知手段からの前記不一致を表す検知結果を示す信号をラッチし、前記メモリアクセスステージにおいて前記アクセス制御レジスタにリセットをかける信号を出力するラッチ回路を更に備える
ことを特徴とする請求項１７記載のプロセッサ装置。
【請求項１９】
第１メモリに割り当てられた第１部分領域と第２メモリに割り当てられた第２部分領域とを含む第１領域と、第１メモリに割り当てられた第２領域と、第２メモリに割り当てられた第３領域と、第３メモリに割り当てられた第４領域とを含むアドレス空間にアクセスするプロセッサ装置であって、
アクセス用メモリアドレスのＭビットを解読して、第１部分領域と第２部分領域と第２領域と第３領域と第４領域との中から１つの領域を特定し、第１メモリと第２メモリと第３メモリとの中からどのメモリがアクセスされるかを正しく判断する判断手段と、
前記アクセス用メモリアドレスのＮビット（ここでＮはＭより小さい数）を解読して、第１領域と第２領域と第３領域と第４領域との中から１つの領域をアクセスされるものと特定し、第１メモリと第２メモリと第３メモリとの中からどのメモリがアクセスされるかを高速に推定するものであって、第１領域をアクセスされるものと特定するときには第１メモリがアクセスされると推定する推定手段と、
前記判断手段の判断結果と前記推定手段の推定結果とのうち一方を選択する選択手段と、
前記選択手段の選択結果に基づいてメモリアクセスに用いられる制御信号群を生成するアクセス制御手段と、
前記制御信号群をラッチし、当該ラッチした制御信号群を第１メモリ、第２メモリ及び第３メモリに出力するアクセス制御レジスタと、
第１メモリがアクセスされることを前記推定結果が表し、かつ、第２メモリと第３メモリとのうちいずれかがアクセスされることを前記判断結果が表している場合には不一致を検知する不一致検知手段と、
前記不一致検知手段が前記不一致を検知したときに前記選択手段に前記判断結果を選択させるアクセスサイクル制御手段とを含むプロセッサ装置。
【請求項２０】
前記推定手段は、第１サイクルにおいて推定を行い、
前記不一致検知手段が前記不一致でないことを検知したときには、前記アクセスサイクル制御手段は、前記第１サイクルに後続する第２サイクルにおいて、前記アクセス制御レジスタに、前記ラッチされた制御信号群を出力させ、
前記不一致検知手段が前記不一致を検知したときには、前記アクセスサイクル制御手段は、
前記第２サイクルにおいて、前記選択手段に、前記判断結果を選択させ、
当該第２サイクルにおいて、前記アクセス制御手段に、選択された前記判断結果に基づく制御信号群を生成させ、
前記第２サイクルに後続する第３サイクルにおいて、前記アクセス制御レジスタに、前記第２サイクルにおいて生成されている前記制御信号群を出力させる
ことを特徴とする請求項１９記載のプロセッサ装置。
【請求項２１】
前記不一致検知手段が前記不一致を検知したときに、前記アクセス制御レジスタが、前記第１サイクルか前記第２サイクルのいずれかにおいてリセットされる
ことを特徴とする請求項２０記載のプロセッサ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はマイクロプロセッサやデジタルシグナルプロセッサ（ＤＳＰ）等のＬＳＩに用いられるプロセッサ装置に関するものである。
【０００２】
【従来の技術】
近年、マイクロプロセッサやＤＳＰ等のデジタルＬＳＩは、高性能化／高速化の一途をたどっている。特にその高速化（動作周波数の向上）の進行は、論理ゲートやメモリなど半導体回路の動作速度の向上を明らかに上回っている。このようなプロセッサの動作周波数の向上と半導体回路の動作速度の向上の間のギャップを埋める手段として、パイプライン動作を行うプロセッサのパイプライン段数を増すことによって１サイクルあたりの処理量を軽減し動作速度の向上を図るスーパーパイプラインといった手法が用いられている。しかしながら、パイプライン段数を増やすことには、関連したデータを処理する命令間の実行サイクル数が増加する（ペナルティ）といった弊害があり、この点を考慮すると安易にパイプライン段数を追加することは出来ない。特に、プロセッサが実行するための命令や演算処理対象となるデータのメモリに対する読み書きアクセス（メモリアクセス）については、その実行に要するサイクル数（パイプライン段数）がペナルティの増加に直結することからパイプラインの段数を増やすことなく高速に動作させることが必要である。
【０００３】
従来のプロセッサ装置の一例として３２ビットマイクロプロセッサの中央演算処理装置（ＣＰＵ）のメモリマップを図６に示す。このＣＰＵは、５段パイプライン（フェッチステージ／デコードステージ／実行ステージ／メモリステージ／ライトバックステージ）で構成されており、その実行ステージにおいてメモリアクセスのアドレス算出を行う。そして、そのアドレス算出結果（メモリアドレス）を図６のメモリマップに照らしてメモリ空間の判定を行い、ＣＰＵに接続されているＲＡＭ、ＲＯＭ、Ｉ／Ｏインタフェースのいずれのメモリに対してアクセスを行うかを決定する。この時、図６のメモリマップに従うために、３２ビット幅のメモリアドレスのうちの上位１８ビットを用いて空間判定を行う。実行ステージにおいては、さらに、この空間判定の結果を用いてメモリアクセス条件を判断し次のサイクルにおけるメモリアクセス制御を決定する。そして、そのメモリステージにおいてさきに決定したメモリに対するアクセスを実行する。
【０００４】
【発明が解決しようとする課題】
しかしながら、上記従来の多数のビットを用いて空間判定を行う方法では、一致検出を行うための論理回路を多数段設けざるを得ず、動作に時間を要するという問題点があった。
【０００５】
すなわち、一般に一致検出は比較対象となるそれぞれのデータの各ビットに対して、論理積をとり、さらにその全ての結果を論理積をとることにより実現される。このため、１８ビットのアドレスに対する一致検出回路は、最低でも２入力のＡＮＤ回路を１８個と、さらにそのすべての出力の論理積をとる１８入力のＡＮＤ回路という２段の回路構成となる。ところが、このような１８入力を持つＡＮＤ回路は作れず、結果として、一致検出回路が２段以上の回路構成となり、動作に時間を要してしまうことになる。
【０００６】
プロセッサ装置においては、メモリアクセスの実行ステージ中に、まずメモリアドレスの算出を行い、その結果をメモリマップに照らして各メモリに対する空間の判定を行い、さらにその空間判定結果を用いてメモリに対するアクセスの制御を決定する構成となっていることより、区間判定の遅れはメモリアクセスが遅れる要因となる。
【０００７】
本発明の目的は、メモリアドレスの算出と空間判定を並行して行うことが可能であり、メモリアクセスの実行ステージに要する処理時間が短く高動作周波数で動作可能なプロセッサ装置を提供することである。
【０００８】
【課題を解決するための手段】
上記目的を達成するために、本発明に係る第１のプロセッサ装置は、メモリマップに従って空間判定行うのに必要なメモリアドレスのビットをすべて入力する第１の空間判定回路と、必要なメモリアドレスの一部のビットのみを入力する第２の空間判定回路を備えることにより、空間判定を高速に行ってメモリに対するアクセスの制御を行うことで高速な動作が可能なプロセッサ装置を構成したものである。
【０００９】
具体的には、Ｎ（Ｎは１以上の自然数）ビットのメモリアドレスを算出し、前記メモリアドレスの値により接続された複数のメモリのうちの一つを選択し、選択された前記メモリに対して読み出し／書き込みアクセスを行うプロセッサ装置において、前記メモリアドレスのうちのＭビット（ＭはＭ≦Ｎを満たす１以上の自然数）を入力して前記メモリのうちの一つを選択し、第１の空間判定結果として出力する第１の空間判定回路と、前記メモリアドレスのうちのＬビット（ＬはＬ＜Ｍを満たす１以上の自然数）を入力して前記メモリのうちの一つを選択し、第２の空間判定結果として出力する第２の空間判定回路と、前記第１の空間判定結果と前記第２の空間判定結果とを比較して不一致を検出し、空間不一致検出結果として出力する空間判定不一致検出回路と、前記第１の空間判定結果と前記第２の空間判定結果と前記空間不一致検出結果を入力して前記メモリに対する読み出し／書き込みアクセスを制御するメモリアクセス制御回路を備える。そして、前記メモリアクセス制御回路においては、第１のサイクルにおいて前記空間判定不一致検出回路が前記第１の空間判定結果と前記第２の空間判定結果を比較して不一致を検出しなかった場合には、前記第２の空間判定結果に従って第２のサイクルにおいて前記メモリのいずれかに対して読み出し／書き込みアクセスを行うよう制御を行う。また、前記第１のサイクルにおいて前記空間判定不一致検出回路が前記第１の空間判定結果と前記第２の空間判定結果を比較して不一致を検出した場合には、前記第２のサイクルにおいては前記メモリに対する読み出し／書き込みアクセスを行わず、前記第１の空間判定結果に従って第３のサイクルにおいて前記メモリのいずれかに対して読み出し／書き込みアクセスを行うよう制御を行うことを特徴とするように構成したプロセッサ装置となっている。
【００１０】
また、本発明に係る第２のプロセッサ装置は、Ｎ（Ｎは１以上の自然数）ビットのメモリアドレスを算出し、前記メモリアドレスの値により接続された複数のメモリのうちの一つを選択し、選択された前記メモリに対して読み出しアクセスを行うプロセッサ装置において、前記メモリアドレスのうちのＭビット（ＭはＭ≦Ｎを満たす１以上の自然数）を入力して前記メモリのうちの一つを選択し、第１の空間判定結果として出力する第１の空間判定回路と、前記メモリアドレスのうちのＬビット（ＬはＬ＜Ｍを満たす１以上の自然数）を入力して前記メモリのうちの一つを選択し、第２の空間判定結果として出力する第２の空間判定回路と、前記第１の空間判定結果と前記第２の空間判定結果とを比較して不一致を検出し、空間不一致検出結果として出力する空間判定不一致検出回路と、前記第１の空間判定結果と前記第２の空間判定結果と前記空間不一致検出結果を入力して前記メモリに対する読み出し／書き込みアクセスを制御するメモリアクセス制御回路を備える。そして、前記メモリアクセス制御回路においては、第１のサイクルにおいて前記空間判定不一致検出回路が前記第１の空間判定結果と前記第２の空間判定結果を比較して不一致を検出しなかった場合には、前記第２の空間判定結果に従って第２のサイクルにおいて前記メモリのいずれかに対して読み出し／書き込みアクセスを行うよう制御を行う。また、前記第１のサイクルにおいて前記空間判定不一致検出回路が前記第１の空間判定結果と前記第２の空間判定結果を比較して不一致を検出した場合には、前記第２の空間判定結果に従って第２のサイクルにおいて前記メモリのいずれかに対して読み出し／書き込みアクセスを行うよう制御を行い、さらに前記第１の空間判定結果に従って第３のサイクルにおいて前記メモリのいずれかに対して読み出しアクセスを行うよう制御を行うことを特徴とするように構成したプロセッサ装置となっている。
【００１１】
また、上記目的を達成するために、本発明に係る第３のプロセッサ装置は、メモリマップに従って空間判定行うのに必要なメモリアドレスのビットをすべて入力する第１の空間判定回路と、アドレス加算器においてメモリアドレスの算出に使用するオペランドを入力する第２の空間判定回路を備えることにより、メモリアドレスの算出と空間判定を並行して行いメモリに対するアクセスの制御をすることで高速な動作が可能なプロセッサ装置を構成したものである。
【００１２】
具体的には、第１のオペランドと第２のオペランドを入力するアドレス加算器によってＮ（Ｎは１以上の自然数）ビットのメモリアドレスを算出し、前記メモリアドレスの値により接続された複数のメモリのうちの一つを選択し、選択された前記メモリに対して読み出し／書き込みアクセスを行うプロセッサ装置において、前記メモリアドレスのうちのＭビット（ＭはＭ≦Ｎを満たす１以上の自然数）を入力して前記メモリのうちの一つを選択し、第１の空間判定結果として出力する第１の空間判定回路と、前記第１のオペランドと前記第２のオペランドを入力してそのいずれかを選択して選択オペランドとして出力するオペランド選択回路と、前記選択オペランドのうちのＬビット（ＬはＬ≦Ｍを満たす１以上の自然数）を入力して前記メモリのうちの一つを選択し、第２の空間判定結果として出力する第２の空間判定回路と、前記第１の空間判定結果と前記第２の空間判定結果とを比較して不一致を検出し、空間不一致検出結果として出力する空間判定不一致検出回路と、
前記第１の空間判定結果と前記第２の空間判定結果と前記空間不一致検出結果を入力して前記メモリに対する読み出し／書き込みアクセスを制御するメモリアクセス制御回路を備える。そして、前記メモリアクセス制御回路においては、第１のサイクルにおいて前記空間判定不一致検出回路が前記第１の空間判定結果と前記第２の空間判定結果を比較して不一致を検出しなかった場合には、前記第２の空間判定結果に従って第２のサイクルにおいて前記メモリのいずれかに対して読み出し／書き込みアクセスを行うよう制御を行う。また、前記第１のサイクルにおいて前記空間判定不一致検出回路が前記第１の空間判定結果と前記第２の空間判定結果を比較して不一致を検出した場合には、前記第２のサイクルにおいては前記メモリに対する読み出し／書き込みアクセスを行わず、前記第１の空間判定結果に従って第３のサイクルにおいて前記メモリのいずれかに対して読み出し／書き込みアクセスを行うよう制御を行うことを特徴とするプロセッサ装置を構成したものである。
【００１３】
また、本発明に係る第４のプロセッサ装置は、第１のオペランドと第２のオペランドを入力するアドレス加算器によってＮ（Ｎは１以上の自然数）ビットのメモリアドレスを算出し、前記メモリアドレスの値により接続された複数のメモリのうちの一つを選択し、選択された前記メモリに対して読み出し／書き込みアクセスを行うプロセッサ装置において、前記メモリアドレスのうちのＭビット（ＭはＭ≦Ｎを満たす１以上の自然数）を入力して前記メモリのうちの一つを選択し、第１の空間判定結果として出力する第１の空間判定回路と、前記第１のオペランドのうちのＬビット（ＬはＬ≦Ｍを満たす１以上の自然数）を入力して前記メモリのうちの一つを選択し、第２の空間判定結果として出力する第２の空間判定回路と、前記第１の空間判定結果と前記第２の空間判定結果とを比較して不一致を検出し、空間不一致検出結果として出力する空間判定不一致検出回路と、前記第１の空間判定結果と前記第２の空間判定結果と前記空間不一致検出結果を入力して前記メモリに対する読み出し／書き込みアクセスを制御するメモリアクセス制御回路を備える。そして、前記メモリアクセス制御回路においては、第１のサイクルにおいて前記空間判定不一致検出回路が前記第１の空間判定結果と前記第２の空間判定結果を比較して不一致を検出しなかった場合には、
前記第２の空間判定結果に従って第２のサイクルにおいて前記メモリのいずれかに対して読み出し／書き込みアクセスを行うよう制御を行う。また、前記第１のサイクルにおいて前記空間判定不一致検出回路が前記第１の空間判定結果と前記第２の空間判定結果を比較して不一致を検出した場合には、前記第２のサイクルにおいては前記メモリに対する読み出し／書き込みアクセスを行わず、前記第１の空間判定結果に従って第３のサイクルにおいて前記メモリのいずれかに対して読み出し／書き込みアクセスを行うよう制御を行うことを特徴とするプロセッサ装置を構成したものである。
【００１４】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００１５】
（実施の形態１）
図１に、本発明の第１の実施の形態のプロセッサ装置として３２ビットマイクロプロセッサの中央演算処理装置（ＣＰＵ）のメモリアクセスに関する構成図を示す。このＣＰＵ１０１は、図３に示す５段パイプライン（フェッチステージ／デコードステージ／実行ステージ／メモリステージ／ライトバックステージ）で構成されており、その実行ステージにおいてメモリアクセスのアドレス算出を、またそのメモリステージにおいてＲＡＭ１０２、ＲＯＭ１０３、Ｉ／Ｏインタフェース１０４といったメモリに対するアクセスを行う。
【００１６】
また、このＣＰＵ１０１は以下のアドレッシングモードをサポートしており、これらのアドレッシングモードの命令を使ってメモリアクセスを行うことができる。
【００１７】
３２ビット絶対アドレッシングモード：３２ビットの即値でアドレスを指定する。
【００１８】
１６ビット絶対アドレッシングモード：１６ビットの即値でアドレスを指定する。
【００１９】
レジスタ相対アドレッシングモード  ：レジスタの値に即値を加算してアドレスを指定する。
【００２０】
さらに、このＣＰＵ１０１はメモリマップドＩ／Ｏ方式をとっており、３２ビット幅のアドレスからメモリマップの指定に従ってＩ／Ｏインタフェースを含む各メモリ（ＲＡＭ１０２、ＲＯＭ１０３、Ｉ／Ｏインタフェース１０４）を選択し、そのいずれかをアクセスする。このＣＰＵ１０１のメモリマップは図６と同様であり、上述の１６ビット絶対アドレッシングモードでアクセス可能なアドレス領域（００００００００〜００００ｆｆｆｆ）を有効に使用するために、そのアドレス領域にＲＡＭ１０２、ＲＯＭ１０３、Ｉ／Ｏインタフェース１０４に対応するアドレス領域（ＲＡＭ領域Ａ、ＲＯＭ領域Ａ、Ｉ／Ｏインタフェース領域Ａ）が配置されている。また、これらのアドレス領域は容量が数１０キロバイトに制限されてしまうことから、より大規模な命令やデータ等を配置するアドレス領域としてＲＡＭ領域Ｂ／ＲＯＭ領域Ｂ／Ｉ／Ｏインタフェース領域Ｂがある。
【００２１】
上記のようなＣＰＵ１０１のメモリアクセスを実現する構成（図１）においては、メモリアクセスのアドレス計算を行う３２ビット幅のアドレス加算器１１０は実行ステージにおいてオペランドレジスタＡ１１１、Ｂ１１２の出力を加算しメモリアドレス１１３を出力する。このオペランドレジスタＡ１１１には、上述のいずれのアドレッシングモードの命令においてもデコードステージに生成された即値が設定される。一方オペランドレジスタＢ１１２には、３２／１６ビット絶対アドレッシングモードの命令においては００００００００が設定され、レジスタ相対アドレッシングモードの命令ではデコードステージにおいて読み出されたレジスタの値が設定される。算出されたメモリアドレス１１３はアドレスレジスタ１１４にラッチされてアドレスバス信号１２９を通じて各メモリに出力され、メモリステージでのＲＡＭ１０２、ＲＯＭ１０３、Ｉ／Ｏインタフェース１０４に対するメモリアクセスに使用される。
【００２２】
アドレス加算器１１０の出力するメモリアドレス１１３は空間判定回路Ａ１１５および空間判定回路Ｂ１３４にも入力して、そのメモリアクセスがＲＡＭ１０２、ＲＯＭ１０３、Ｉ／Ｏインタフェース１０４のいずれに対するものであるかを判定する。空間判定回路Ａ１１５においては、メモリアドレス１１３から図６のメモリマップに従って判定を行い、各アドレス領域に対応した空間判定信号（ＲＡＭ空間判定信号Ａ１１６、ＲＯＭ空間判定信号Ａ１１７、Ｉ／Ｏインタフェース空間判定信号Ａ１１８）を出力する。すなわち、空間判定回路Ａ１１５においては、
ＲＡＭ空間判定信号Ａ１１６はメモリアドレス１１３が
００００００００〜００００７ｆｆｆ（ＲＡＭ領域Ａ）もしくは
０００１００００〜３ｆｆｆｆｆｆｆ（ＲＡＭ領域Ｂ）の場合に、
ＲＯＭ空間判定信号Ａ１１７はメモリアドレス１１３が
００００８０００〜００００ｂｆｆｆ（ＲＯＭ領域Ａ）もしくは
４０００００００〜７ｆｆｆｆｆｆｆ（ＲＯＭ領域Ｂ）の場合に、
Ｉ／Ｏインタフェース空間判定信号Ａ１１８はメモリアドレス１１３が
００００ｃ０００〜００００ｆｆｆｆ（Ｉ／Ｏインタフェース領域Ａ）もしくは
８０００００００〜ｆｆｆｆｆｆｆｆ（Ｉ／Ｏインタフェース領域Ｂ）の場合に、
「ＨＩＧＨ」が出力される。また、空間判定回路Ａ１１５の出力する空間判定信号（ＲＡＭ空間判定信号Ａ１１６、ＲＯＭ空間判定信号Ａ１１７、Ｉ／Ｏインタフェース空間判定信号Ａ１１８）は空間判定レジスタ１４２にラッチされて、それぞれ空間アクセス信号（ＲＡＭ空間アクセス信号１４３、ＲＯＭ空間アクセス信号１４４、Ｉ／Ｏインタフェース空間アクセス信号１４５）として次のサイクルに出力される。
【００２３】
一方、空間判定回路Ｂ１３４においては、メモリアドレス１１３の一部ビット（上位２ビット）のみを使用して以下に示すように各アドレス領域に対応した空間判定信号（ＲＡＭ空間判定信号Ｂ１３５、ＲＯＭ空間判定信号Ｂ１３６、Ｉ／Ｏインタフェース空間判定信号Ｂ１３７）を出力する。すなわち、空間判定回路Ｂ１３４においては、
ＲＡＭ空間判定信号Ｂ１３５はメモリアドレス１１３が
００００００００〜３ｆｆｆｆｆｆｆ（ＲＡＭ領域Ａ、ＲＯＭ領域Ａ、Ｉ／Ｏインタフェース領域Ａ、ＲＡＭ領域Ｂ）の場合に、
ＲＯＭ空間判定信号Ｂ１３６はメモリアドレス１１３が
４０００００００〜７ｆｆｆｆｆｆｆ（ＲＯＭ領域Ｂ）の場合に、
Ｉ／Ｏインタフェース空間判定信号Ｂ１３７はメモリアドレス１１３が
８０００００００〜ｆｆｆｆｆｆｆｆ（Ｉ／Ｏインタフェース領域Ｂ）の場合に、
「ＨＩＧＨ」が出力される。上記空間判定によると、メモリアドレス１１３が００００８０００〜００００ｆｆｆｆのアドレス領域（ＲＯＭ領域Ａ、Ｉ／Ｏインタフェース領域Ａ）を指し示した場合には図６のメモリマップに従った空間判定の結果と一致しないが、この空間判定回路Ｂ１３４はメモリアドレスの上位２ビットのみを使用して空間判定を行うことから空間判定回路Ａ１１５と比較して短時間に判定結果を出力する。
【００２４】
空間判定不一致検出回路１３８は、空間判定回路Ａ１１５および空間判定回路Ｂ１３４の出力する空間判定信号（ＲＡＭ空間判定信号Ａ１１６、ＲＯＭ空間判定信号Ａ１１７、Ｉ／Ｏインタフェース空間判定信号Ａ１１８およびＲＡＭ空間判定信号Ｂ１３５、ＲＯＭ空間判定信号Ｂ１３６、Ｉ／Ｏインタフェース空間判定信号Ｂ１３７）を入力して、各メモリに対する空間判定信号を比較し不一致を検出する。ここで不一致が検出されるのは、上述の空間判定回路Ｂ１３４が図６のメモリマップに合致しない判定結果を出力する場合で、メモリアドレス１１３が００００８０００〜００００ｆｆｆｆ（ＲＯＭ領域Ａ、Ｉ／Ｏインタフェース領域Ａ）のアドレス領域を指し示した場合である。空間判定不一致検出回路１３８には、パイプライン制御回路１２６が出力するメモリアクセス実行制御信号１２７も入力しており、メモリアクセス実行制御信号１２７が「ＨＩＧＨ」（すなわち実行ステージにメモリアクセス命令がある）であり、かつ空間判定回路Ａ１１５／Ｂ１３４の空間判定信号に不一致が検出された場合に、空間不一致信号１３９に「ＨＩＧＨ」を出力する。そして、空間不一致信号１３９は空間不一致アクセスレジスタ１４０にラッチされて、空間不一致アクセス信号１４１として次のサイクルに出力される。
【００２５】
空間判定回路Ｂ１３４の出力する空間判定信号（ＲＡＭ空間判定信号Ｂ１３５、ＲＯＭ空間判定信号Ｂ１３６、Ｉ／Ｏインタフェース空間判定信号Ｂ１３７）は、また、メモリアクセス制御回路１１９に入力してメモリのアクセスを制御する。メモリアクセス制御回路１１９には、さらに、空間不一致アクセスレジスタ１４０の出力する空間不一致アクセス信号１４１および、空間判定レジスタ１４２の出力する空間アクセス信号（ＲＡＭ空間アクセス信号１４３、ＲＯＭ空間アクセス信号１４４、Ｉ／Ｏインタフェース空間アクセス信号１４５）、およびパイプライン制御回路１２６が出力するメモリアクセス実行制御信号１２７とメモリライトアクセス実行制御信号１２８を入力し、各メモリのメモリアクセスを制御するメモリ制御信号（ＲＡＭチップセレクト１２０、ＲＡＭライトイネーブル１２１、ＲＯＭチップセレクト１２２、ＲＯＭライトイネーブル１２３、Ｉ／Ｏインタフェースチップセレクト１２４、Ｉ／Ｏインタフェースライトイネーブル１２５）を生成する。
【００２６】
メモリアクセス制御回路１１９の内部構成を図２に示す。空間判定回路Ｂ１３４より入力する空間判定信号（ＲＡＭ空間判定信号Ｂ１３５、ＲＯＭ空間判定信号Ｂ１３６、Ｉ／Ｏインタフェース空間判定信号Ｂ１３７）と空間アクセス信号（ＲＡＭ空間アクセス信号１４３、ＲＯＭ空間アクセス信号１４４、Ｉ／Ｏインタフェース空間アクセス信号１４５）は選択回路２０１に入力し、空間不一致アクセス信号１４１によって選択され（空間不一致アクセス信号１４１が「ＬＯＷ」の場合に空間判定信号１３５／１３６／１３７を選択、「ＨＩＧＨ」の場合に空間アクセス信号１４３／１４４／１４５を選択）、メモリアクセス制御論理２０２に入力する。また、空間不一致アクセス信号１４１は、パイプラインの実行ステージがメモリアクセス命令を実行することを示すメモリアクセス実行制御信号１２７と論理和をとられてメモリアクセスの発行要因としてメモリアクセス制御論理２０２に入力する。メモリアクセス制御論理２０２はさらにそれぞれのメモリに対するアクセスを行うための諸条件等を判断して、各メモリのアクセス制御を決定しメモリアクセス制御レジスタ２０３にラッチする。このメモリアクセス制御レジスタ２０３は空間不一致アクセス信号１４１によって非同期にリセットがかかる構成となっており、空間不一致アクセス信号１４１に「ＨＩＧＨ」が出力されたサイクルには各メモリの制御は強制的にアクセス不能とされる。そして、メモリアクセス制御レジスタ２０３の出力がメモリステージの各メモリに対するメモリアクセスを制御するメモリ制御信号１２０／１２１／１２２／１２３／１２４／１２５として出力される構成となっている。
【００２７】
空間不一致アクセスレジスタ１４０の出力する空間不一致アクセス信号１４１はまた、パイプライン制御回路１２６にも接続する。そして、空間不一致アクセス信号１４１に「ＨＩＧＨ」を入力した場合には、パイプライン制御回路１２６はＣＰＵ１０１のパイプラインをストールするように制御し、そのサイクルのメモリステージを１サイクル伸長する。
【００２８】
メモリステージに実行されるメモリアクセスにおいて、各メモリに対して行った読み出しアクセスの結果は、ＣＰＵ１０１と各メモリを接続するデータバス信号１３０を通じて読み出され、ＣＰＵ１０１内の読み出しデータレジスタ１３１に取り込まれる。また、書き込みアクセスにおける書き込みデータは、書き込みデータレジスタ１３２の値がトライステートバッファ１３３を通してデータバス信号１３０に出力されて、各メモリに書き込まれる。
【００２９】
以上の様に構成された第１の実施の形態のプロセッサ装置としての３２ビットマイクロプロセッサの中央演算処理装置（ＣＰＵ）について、以下その動作をタイミングチャート図４を用いて説明する。図４は５段パイプラインの各ステージ（フェッチステージ／デコードステージ／実行ステージ／メモリステージ／ライトバックステージ）をメモリアクセス命令がクロック毎に進んで行く状況を示している。
【００３０】
ここで、メモリアクセス命令Ａは、たとえばＲＡＭ領域Ａ（００００００００〜００００７ｆｆｆ）のアドレスに対してメモリアクセスを行っている。この場合、この命令が実行ステージにあるサイクルにアドレス加算器１１０において算出されるメモリアドレス１１３（アドレスＡ：００００００００〜００００７ｆｆｆ）は空間判定回路Ａ１１５、空間判定回路Ｂ１３４のいずれにおいてもＲＡＭ空間と判定されてＲＡＭ空間判定信号Ａ１１６、ＲＡＭ空間判定信号Ｂ１３５共に「ＨＩＧＨ」が出力される。したがって、空間判定不一致検出回路１３８は空間判定の不一致を検出することはなく空間不一致アクセス信号１４１に「ＨＩＧＨ」は出力されない。そして、メモリアクセス制御回路１１９においては、このサイクルに「ＨＩＧＨ」が出力されているメモリアクセス実行制御信号１２７およびＲＡＭ空間判定信号Ｂ１３５からＲＡＭ１０２へのアクセス制御が決定される。そして、次のメモリステージのサイクルにおいて、ＲＡＭチップセレクト１２０（メモリアクセス命令Ａが書き込み命令であった場合にはＲＡＭライトイネーブル１２１も）が出力されて、ＲＡＭ１０２に対する読み出し（書き込み）メモリアクセス（アクセスＡ）が行われる。
【００３１】
これに対して、メモリアクセス命令Ｂは、たとえばＲＯＭ領域Ａ（００００８０００〜００００ｂｆｆｆ）のアドレスに対してメモリアクセスを行っている。この場合、この命令が実行ステージにあるサイクルにアドレス加算器１１０において算出されるメモリアドレス１１３（アドレスＢ：００００８０００〜００００ｂｆｆｆ）は空間判定回路Ａ１１５においてはＲＯＭ空間と判定されてＲＯＭ空間判定信号Ａ１１７に「ＨＩＧＨ」が出力されるのに対して、空間判定回路Ｂ１３４においてはＲＡＭ空間と判定されてＲＡＭ空間判定信号Ｂ１３５に「ＨＩＧＨ」が出力される。したがって、この場合には空間判定不一致検出回路１３８は空間判定の不一致を検出し、次のサイクルには空間不一致アクセス信号１４１に「ＨＩＧＨ」が出力される。また、空間判定レジスタ１４２はＲＯＭ空間判定信号Ａ１１７に出力された「ＨＩＧＨ」をラッチしてＲＯＭ空間アクセス信号１４４に出力するので、空間不一致アクセス信号１４１に「ＨＩＧＨ」が出力される同じサイクルにＲＯＭ空間アクセス信号１４４に「ＨＩＧＨ」が出力される。メモリアクセス制御回路１１９においては、命令Ｂの実行ステージのサイクルにおいてメモリアクセス実行制御信号１２７およびＲＡＭ空間判定信号Ｂ１３５からＲＡＭ１０２へのアクセス制御を決定し、次のサイクルにＲＡＭチップセレクト１２０に「ＨＩＧＨ」が出力されようとするが、このときに「ＨＩＧＨ」が出力される空間不一致アクセス信号１４１によって非同期に「ＬＯＷ」とされるためにＲＡＭ１０２に対するメモリアクセスは行われない。また、この空間不一致アクセス信号１４１に「ＨＩＧＨ」が出力されたサイクルには、メモリアクセス制御回路１１９内の選択回路２０１の制御によりＲＯＭ空間アクセス信号１４４と空間不一致アクセス信号１４１が用いられてＲＯＭ１０３へのアクセス制御が決定される。さらにこのサイクルには、空間不一致アクセス信号１４１の「ＨＩＧＨ」をパイプライン制御回路１２６に入力するため、メモリアクセス命令Ｂのメモリステージが次のサイクルまで伸長されるように制御される。そして、その次のサイクルにおいて、ＲＯＭチップセレクト１２２が出力されてＲＯＭ１０３に対するメモリアクセス（アクセスＢ）が行われる。
【００３２】
このように、ＣＰＵ１０１においては、上記のメモリアクセス命令Ｂの様に空間判定不一致検出回路１３８において不一致が検出されるアドレス領域（００００８０００〜００００ｆｆｆｆ：ＲＯＭ領域Ａ、Ｉ／Ｏインタフェース領域Ａ）に対するメモリアクセスを行った場合には、それ以外のアドレスに対してメモリアクセスを行うメモリアクセス命令（メモリアクセス命令Ａ）の場合に比較して１サイクル遅れてメモリに対する読み出し／書き込みアクセスを行う構成とすることによって、メモリアクセス命令の実行ステージに行われる処理に要する時間を短縮している。すなわち、メモリアクセス命令の実行ステージにおいては、まずアドレス加算器１１０においてメモリアドレス１１３の算出を行い、その結果から各メモリに対する空間判定を行い、さらにメモリに対するアクセスの制御を決定する必要があるが、上記のメモリアクセス命令Ａのメモリアクセスにおいては、メモリアクセスの制御の決定に空間判定回路Ｂ１３４の結果が使用されている。この空間判定回路Ｂ１３４は、メモリアドレス１１３の上位２ビットのみを使用して空間判定を行うため、空間判定にメモリアドレス１１３の上位１８ビットを使用することが必要な図６のメモリマップに従った空間判定（空間判定回路Ａ１１５）に比較すると非常に短時間に判定結果を出力できる。一方、メモリアクセス命令Ｂのメモリアクセスにおいては、メモリに対するアクセスの制御の決定にはメモリマップに従った空間判定（空間判定回路Ａ１１５）の結果が必要であるが、上述の様に実際に空間判定回路Ａ１１５の結果を使用してメモリアクセスの制御を決定するのはこの命令の実行ステージの次のサイクルである。そして、そのサイクルにおいてメモリアクセスの制御の決定に使用されるのは空間判定回路Ａ１１５の結果をラッチした信号（ＲＯＭ空間アクセス信号１４４）である。したがって、メモリアクセス命令Ａ／Ｂのいずれの場合についても、メモリアクセスの制御を決定する上で空間判定回路Ａ１１５において空間判定に要する時間を無視することが可能であり、メモリアクセス命令の実行ステージの処理時間に含まれる各メモリに対する空間判定のための時間は空間判定回路Ｂ１３４における空間判定に要する時間のみとなる。そして、この空間判定回路Ｂ１３４は非常に短時間に判定結果を出力できることから、本実施の形態のプロセッサ装置においてはメモリアクセス命令の実行ステージに要する時間が短縮され、ひいては、動作周波数の向上を果たすことが可能となっている。
【００３３】
なお、第１の実施の形態のプロセッサ装置においては、読み込みおよび書き込みの両方のアクセスを行うＣＰＵとしているが、読み込みアクセスのみを行う構成（たとえばハーバードアーキテクチャを採用したＣＰＵにおける命令フェッチを行うためのプロセッサ装置）においても同様の構成をとることは可能である。その場合、上記の構成においては、メモリアクセス制御回路において、空間不一致アクセス信号に「ＨＩＧＨ」を入力したサイクルにはメモリアクセス制御レジスタを非同期にリセットしてメモリアクセスを行わないよう制御されるが、読み出しアクセスのみを行う構成のプロセッサ装置においては、空間不一致アクセス信号に「ＨＩＧＨ」を出力しても読み出しアクセスを行う構成とすることが可能なことは明らかである。この場合、空間不一致アクセス信号に「ＨＩＧＨ」を出力するサイクルには、いずれかのメモリに対する読み出しアクセスが実行されてその結果がデータバス信号に読み出されるが、そのサイクルにはパイプライン制御回路によってパイプラインをストールすることで読み出された結果を読み出しデータレジスタに取り込まないよう制御され読み出した結果は破棄される。そして、次のサイクルにおいてメモリアドレスの指し示すメモリに対する読み出しアクセスを実行し、その結果を読み出しデータレジスタに取り込んで処理を行う。
【００３４】
（実施の形態２）
図５に、本発明の第２の実施の形態のプロセッサ装置として３２ビットマイクロプロセッサの中央演算処理装置（ＣＰＵ）のメモリアクセスに関する構成図を示す。このＣＰＵ５０１は、第１の実施の形態と同様に５段パイプラインで構成されており、その実行ステージにおいてメモリアクセスのアドレス算出を、またそのメモリステージにおいてＲＡＭ１０２、ＲＯＭ１０３、Ｉ／Ｏインタフェース１０４といったメモリに対するアクセスを行う。
【００３５】
また、このＣＰＵ５０１は第１の実施の形態と同様に３つのアドレッシングモード（３２ビット絶対アドレッシングモード、１６ビット絶対アドレッシングモード、レジスタ相対アドレッシングモード）をサポートしている。
【００３６】
さらに、このＣＰＵ５０１はメモリマップについても第１の実施の形態と同様である。
【００３７】
上記のようなＣＰＵ５０１のメモリアクセスを実現する構成（図５）においても、第１の実施の形態と同様に、オペランドレジスタＡ１１１には、いずれのアドレッシングモードの命令においてもデコードステージに生成された即値が設定される。また、オペランドレジスタＢ１１２には、３２／１６ビット絶対アドレッシングモードの命令においては００００００００が設定され、レジスタ相対アドレッシングモードの命令ではデコードステージにおいてに読み出されたレジスタの値が設定される。そして、実行ステージにおいて、オペランドレジスタＡ１１１およびオペランドレジスタＢ１１２の出力を入力するアドレス加算器１１０によってメモリアドレス１１３の算出を行い、アドレスレジスタ１１４にラッチしてメモリステージにおける各メモリでのメモリアクセスに使用される。
【００３８】
空間判定回路Ａ１１５がメモリアドレス１１３を入力してメモリマップに従って判定を行う点も第１の実施の形態と同様であるが、第１の実施の形態と大きく異なっている点は、空間判定回路Ｂ５３４に入力するのがメモリアドレス１１３の一部のビットではない点である。すなわち、ＣＰＵ５０１においては、オペランドレジスタＡ１１１およびオペランドレジスタＢ１１２の出力がオペランド選択回路５４６に入力し、そのいずれかが選択されて選択オペランド信号５４７として出力される。その選択は、パイプライン制御回路５２６の出力するアドレッシングモード制御信号５４８によって制御される。アドレッシングモード制御信号５４８には、実行ステージのメモリアクセス命令が１６ビット絶対アドレッシングモードもしくは３２ビット絶対アドレッシングモードの場合には「ＨＩＧＨ」が出力され、この時オペランドレジスタＡ１１１の出力が選択されて選択オペランド信号５４７に出力される。一方、実行ステージのメモリアクセス命令がレジスタ相対アドレッシングモードの場合にはアドレッシングモード制御信号５４８は「ＬＯＷ」となって、この時にはオペランドレジスタＢ１１２の出力が選択されて選択オペランド信号５４７に出力される。そして、空間判定回路Ｂ５３４にはこの選択オペランド信号５４７の一部ビット（上位２ビット）のみが入力する構成となっている。空間判定回路Ｂ５３４においてこの選択オペランド信号５４７を用いて行われる空間判定は、第１の実施の形態と同様であり、
ＲＡＭ空間判定信号Ｂ１３５は選択オペランド信号５４７が
００００００００〜３ｆｆｆｆｆｆｆ（ＲＡＭ領域Ａ、ＲＯＭ領域Ａ、Ｉ／Ｏインタフェース領域Ａ、ＲＡＭ領域Ｂ）の場合に、
ＲＯＭ空間判定信号Ｂ１３６は選択オペランド信号５４７が
４０００００００〜７ｆｆｆｆｆｆｆ（ＲＯＭ領域Ｂ）の場合に、
Ｉ／Ｏインタフェース空間判定信号Ｂ１３７は選択オペランド信号５４７が８０００００００〜ｆｆｆｆｆｆｆｆ（Ｉ／Ｏインタフェース領域Ｂ）の場合に、
「ＨＩＧＨ」が出力される。この様に、空間判定回路Ｂ５３４においては、アドレス加算に用いるオペランドレジスタの値を使用して空間判定を行うことから、アドレス加算の結果を用いて空間判定を行う第１の実施の形態の空間判定回路Ｂ１３４に比較してさらに早くに判定結果を出力する。
【００３９】
空間判定回路Ａ１１５と空間判定回路Ｂ５３４の出力する空間判定信号（ＲＡＭ空間判定信号Ａ１１６、ＲＯＭ空間判定信号Ａ１１７、Ｉ／Ｏインタフェース空間判定信号Ａ１１８およびＲＡＭ空間判定信号Ｂ１３５、ＲＯＭ空間判定信号Ｂ１３６、Ｉ／Ｏインタフェース空間判定信号Ｂ１３７）を使ってメモリアクセスを制御する構成（空間判定不一致検出回路１３８、空間不一致アクセスレジスタ１４０、空間判定レジスタ１４２、メモリアクセス制御回路１１９）についても第１の実施の形態と同様の構成であり、各メモリのメモリ制御信号（ＲＡＭチップセレクト１２０、ＲＡＭライトイネーブル１２１、ＲＯＭチップセレクト１２２、ＲＯＭライトイネーブル１２３、Ｉ／Ｏインタフェースチップセレクト１２４、Ｉ／Ｏインタフェースライトイネーブル１２５）を生成して、メモリステージにおけるメモリアクセスの制御を行う。また、空間不一致アクセス信号１４１がパイプライン制御回路５２６にも接続し、空間不一致アクセス信号１４１に「ＨＩＧＨ」を入力した場合には、ＣＰＵ５０１のパイプラインをストールするように制御するのも第１の実施の形態と同様である。
【００４０】
メモリステージに実行されるメモリアクセスにおいて、各メモリに対して行った読み出しアクセスの結果は、ＣＰＵ１０１と各メモリを接続するデータバス信号１３０を通じて読み出され、ＣＰＵ１０１内の読み出しデータレジスタ１３１に取り込まれる。また、書き込みアクセスにおける書き込みデータは、書き込みデータレジスタ１３２の値がトライステートバッファ１３３を通してデータバス信号１３０に出力されて、各メモリに書き込まれる。
【００４１】
以上の様に構成された第２の実施の形態のプロセッサ装置としての３２ビットマイクロプロセッサの中央演算処理装置（ＣＰＵ）について、以下その動作を説明する。
【００４２】
まず、３２ビット絶対アドレッシングモードおよび１６ビット絶対アドレッシングモードのメモリアクセス命令を実行する場合には、その実行ステージにおいて、オペランドレジスタＡ１１１にはデコードステージに生成された即値が、オペランドレジスタＢ１１２には００００００００が設定されている。したがって、アドレス加算器１１０の出力するメモリアドレス１１３の値は、オペランドレジスタＡ１１１の出力と同じである。この時、パイプライン制御回路５２６の出力するアドレッシングモード制御信号５４８には「ＨＩＧＨ」が出力され、オペランドレジスタＡ１１１の出力が選択されて選択オペランド信号５４７に出力されることになる。その結果、空間判定回路Ｂ５３４に入力する値はメモリアドレス１１３の値と同一である。これは、第１の実施の形態においてメモリアクセス命令を実行した場合と同じであり、したがって、それを用いた空間判定、およびメモリに対するアクセスの制御動作も第１の実施の形態と同様のものとなる。
【００４３】
レジスタ相対アドレッシングモードのメモリアクセス命令を実行する場合においては、その実行ステージにおいて、オペランドレジスタＡ１１１にはデコードステージに生成された即値が、オペランドレジスタＢ１１２にはデコードステージにおいて読み出されたレジスタの値が設定されている。この時、パイプライン制御回路５２６の出力するアドレッシングモード制御信号５４８には「ＬＯＷ」が出力され、オペランドレジスタＢ１１２の出力が選択されて選択オペランド信号５４７として空間判定回路Ｂ５３４に入力する。したがって、オペランドレジスタＢ１１２の値によって空間判定回路Ｂ５３４における空間判定を行った結果と、オペランドレジスタＢ１１２の値にオペランドレジスタＡ１１１を加算したメモリアドレス１１３の値によって空間判定回路Ｂ５３４における空間判定を行った結果が同じである場合、すなわちオペランドレジスタＡ１１１の値を加算することによって空間判定回路Ｂ５３４の空間判定におけるアドレス領域の境界を越えることがない場合には、空間判定回路Ｂ５３４の出力する空間判定信号（ＲＡＭ空間判定信号Ｂ１３５、ＲＯＭ空間判定信号Ｂ１３６、Ｉ／Ｏインタフェース空間判定信号Ｂ１３７）は第１の実施の形態の場合と同じであり、それを用いたメモリに対するアクセスの制御動作も第１の実施の形態と同様のものとなる。
【００４４】
一方、レジスタ相対アドレッシングモードのメモリアクセス命令においてオペランドレジスタＢ１１２の値にオペランドレジスタＡ１１１の値を加算することによって空間判定回路Ｂ５３４の空間判定におけるアドレス領域の境界を越える場合には、第１の実施の形態とは異なった動作を行うことになるが、この場合においても空間判定回路Ａ１１５が第１の実施の形態と同じくメモリアドレス１１３を入力してメモリマップに従った空間判定を行うために、適切なメモリが選択されてアクセスは行われる。すなわち、空間判定回路Ｂ５３４の空間判定結果と空間判定回路Ａ１１５の空間判定結果が一致し、空間判定不一致検出回路１３８において不一致が検出されない場合には、第１の実施の形態の場合と同様に空間判定回路Ｂ５３４の結果を使用して次のサイクルにメモリに対するアクセスを行うように制御される。また、空間判定回路Ｂ５３４の空間判定結果と空間判定回路Ａ１１５の空間判定結果が一致せず、空間判定不一致検出回路１３８において不一致が検出される場合にも第１の実施の形態と同様に、１サイクル遅らせて、空間判定回路Ａ１１５の空間判定結果（空間判定レジスタ１４２）を使用して、メモリに対する読み出し／書き込みアクセスを行うように制御が行われる。
【００４５】
このように、ＣＰＵ５０１においては、アドレス加算器１１０に入力するオペランドレジスタＡ１１１／Ｂ１１２の値を用いて空間判定を行って、その結果を使ってメモリに対するアクセスの制御を行う構成とすることによって、メモリアクセス命令の実行ステージに行われる処理に要する時間を短縮している。すなわち、メモリアクセス命令の実行ステージにおいては、まずアドレス加算器１１０においてメモリアドレス１１３の算出を行い、その結果から各メモリに対する空間判定を行い、さらにメモリに対するアクセスの制御を決定する必要があるが、上記の構成によればアドレス加算器１１０によるメモリアドレス算出を開始すると同時に空間判定回路Ｂ５３４において空間判定を行うため非常に短時間に判定結果を出力できる。また、メモリアドレス１１３を使用してメモリマップに従った空間判定（空間判定回路Ａ１１５）の結果が必要な場合においても、第１の実施の形態の場合と同様にそれを使用するのは実行ステージの次のサイクルとなるため、メモリアクセスの制御を決定する上で空間判定回路Ａ１１５における空間判定に要する時間を無視することができる。したがって、メモリアクセス命令の実行ステージの処理時間は空間判定回路Ｂ５３４における空間判定に要する時間とメモリに対するアクセスの制御を決定するのみ時間となって大幅に短縮されることになり、ひいては、動作周波数の向上を果たすことが可能となっている。
【００４６】
なお、第２の実施の形態のプロセッサ装置においては、空間判定回路Ｂは選択オペランド信号の一部のビット（上位２ビット）を入力して空間判定を行う構成としているが、これを選択オペランド信号の上位１８ビットを入力してメモリマップに従う空間判定を行う構成とすることが可能なことは明らかである。
【００４７】
なお、第２の実施の形態のプロセッサ装置においては、３つのアドレッシングモード（３２ビット絶対アドレッシングモード、１６ビット絶対アドレッシングモード、レジスタ相対アドレッシングモード）をサポートしたＣＰＵとしているが、たとえばレジスタ相対アドレッシングモードのみをサポートしたＣＰＵにおいても同様の構成をとることは可能である。その場合、上記の構成においては、オペランドレジスタＡおよびオペランドレジスタＢの出力がオペランド選択回路において選択されて空間判定回路Ｂに入力しているが、これをオペランドレジスタＢの出力を空間判定回路Ｂに入力する構成とすることが可能なことは明らかである。
【００４８】
【発明の効果】
以上のように本発明のプロセッサ装置によれば、メモリアクセス命令の実行ステージに要する時間が短縮され、ひいては、動作周波数の向上を果たすことが可能となっている。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態のプロセッサ装置の構成図
【図２】同実施の形態におけるプロセッサ装置のメモリアクセス制御回路の構成図
【図３】同実施の形態におけるプロセッサ装置のパイプライン構成図
【図４】同実施の形態における動作説明のためのタイミングチャート
【図５】本発明の第２の実施の形態のプロセッサ装置の構成図
【図６】従来例のプロセッサ装置におけるメモリマップを示す図
【符号の説明】
１０１    ＣＰＵ
１０２    ＲＡＭ
１０３    ＲＯＭ
１０４    Ｉ／Ｏインタフェース
１１０    アドレス加算器
１１３    メモリアドレス
１１５    空間判定回路Ａ
１３４    空間判定回路Ｂ
１３８    空間判定不一致検出回路
１１９    メモリアクセス制御回路
【図１】
0003977961.tif 000002
【図２】
0003977961.tif 000003
【図３】
0003977961.tif 000004
【図４】
0003977961.tif 000005
【図５】
0003977961.tif 000006
【図６】
0003977961.tif 000007