(57)【特許請求の範囲】
【請求項１】
データ処理装置において、
複数の命令を実行するように動作可能なプロセッサと、
前記複数の命令を実行中に発生する複数のアクセス要求を処理するように動作可能な第１及び第２のマスタ・ロジック・ユニットであって、前記アクセス要求が１スレーブ装置を指定し、前記第１のマスタ・ロジック・ユニットが第１のバスを介して前記スレーブ装置をアクセスするように動作可能であり、かつ前記第２のマスタ・ロジック・ユニットが第２のバスを介して前記スレーブ装置をアクセスするように動作可能である前記第１及び前記第２のマスタ・ロジック・ユニットと、
各アクセス要求に対して、どのマスタ・ロジック・ユニットがそのアクセス要求を処理すべきかを判定するように動作可能な経路指定ロジック回路であって、前記第１のマスタ・ロジック・ユニットが第１形式のアクセス要求を処理するように構成され、かつ前記第２のマスタ・ロジック・ユニットが第２形式のアクセス要求を処理するように構成されている前記経路指定ロジック回路と
を備え、
前記複数の命令のうちの少なくとも１命令は、前記第１形式のアクセス要求及び前記第２形式のアクセス要求の両方を発生させるように実行可能なマルチアクセス命令であり、前記マルチアクセス命令は、前記第１及び第２形式の複数のアクセス要求により指定された前記スレーブ装置に対するアクセスが、前記スレーブ装置に対して何らの介在するアクセスを発生させることなく、実行されることを必要とし、
前記経路指定ロジック回路は、前記マルチアクセス命令を実行する場合に、前記マルチアクセス命令により指定された前記第１形式のアクセス要求及び前記第２形式のアクセス要求の両方を前記第１のマスタ・ロジック・ユニットにより処理させるように構成され、
前記第１のマスタ・ロジック・ユニットは、前記マルチアクセス命令により指定された前記第１形式のアクセス要求及び前記第２形式のアクセス要求を処理しているときに、前記第１のマスタ・ロジック・ユニットが前記第１及び第２形式のアクセス要求を処理している間は、前記第１のマスタ・ロジック・ユニットが前記スレーブ装置に対して独占的なアクセスが許可されることを保証するために使用されるロック信号を発行するように構成されている
データ処理装置。
【請求項２】
前記経路指定ロジック回路は、前記第１のマスタ・ロジック・ユニットへ第１形式のアクセス要求の経路を指定し、かつ前記第２のマスタ・ロジック・ユニットへ第２形式のアクセス要求の経路を指定するように動作可能な第１の経路指定ロジック回路と、
前記マルチアクセス命令を実行する場合に、前記マルチアクセス命令により指定された前記第２形式のアクセス要求を前記第１のマスタ・ロジック・ユニットにより処理するために、前記第２のマスタ・ロジック・ユニットから前記第１のマスタ・ロジック・ユニットへ経路を指定するように動作可能な第２の経路指定ロジック回路と
を備えている請求項１記載のデータ処理装置。
【請求項３】
前記第２の経路指定ロジック回路は、前記第１のマスタ・ロジック・ユニット内に設けられている請求項２記載のデータ処理装置。
【請求項４】
前記第２の経路指定ロジック回路は、前記第２のマスタ・ロジック・ユニットへ要求を発行して前記第２のマスタ・ロジック・ユニットに前記マルチアクセス命令により指定された第２形式のアクセス要求を前記第１のマスタ・ロジック・ユニットへ経路指定させるように動作可能な要求発行ロジック回路（requester logic）を備えている請求項２記載のデータ処理装置。
【請求項５】
前記第２のマスタ・ロジック・ユニットは、前記第２の経路指定ロジック回路によるアクセス要求を処理する前に、前記第１の経路指定ロジック回路から受け取ったアクセス要求をバッファリングするバッファを有し、前記第１のマスタ・ロジック・ユニットは、前記バッファが前記マルチアクセス命令により指定されないアクセス要求を排出してしまうまで、前記マルチアクセス命令により指定されたアクセス要求の処理を延期するように構成されている請求項２記載のデータ処理装置。
【請求項６】
前記マルチアクセス命令は、前記第２形式のアクセス要求の前に、前記第１形式のアクセス要求を処理することを指定する請求項１記載のデータ処理装置。
【請求項７】
前記マルチアクセス命令は、前記第２形式のアクセス要求の前に、前記第１形式のアクセス要求を処理することを指定し、かつ
前記第１の経路指定ロジック回路は、前記マルチアクセス命令により指定された前記第１形式のアクセス要求が前記第１のマスタ・ロジック・ユニットにより処理されてしまうまで、前記マルチアクセス命令により指定された前記第２形式のアクセス要求を前記第２のマスタ・ロジック・ユニットへ供給するのを延期するように構成されている請求項２記載のデータ処理装置。
【請求項８】
前記第２のマスタ・ロジック・ユニットは、前記第２のマスタ・ロジック・ユニットによるアクセス要求を処理する前に、前記第１の経路指定ロジック回路から受け取った複数のアクセス要求をバッファリングするバッファを有し、前記第１のマスタ・ロジック・ユニットは、前記バッファが前記マルチアクセス命令により指定されていないアクセス要求を排出してしまうまで、前記マルチアクセス命令により指定された前記複数のアクセス要求を処理するのを延期するように構成され、かつ前記第１のマスタ・ロジック・ユニットは、前記第２のマスタ・ロジック・ユニットのバッファが空になってしまうまで、前記マルチアクセス命令ユニットにより指定された前記第１のアクセス要求を処理するのを延期するように構成されている請求項７記載のデータ処理装置。
【請求項９】
前記第２のマスタ・ロジック・ユニットは、前記第１のマスタ・ロジック・ユニットへ前記バッファが空か否かを表すバッファ・ステータス信号を発行するように構成されている請求項８記載のデータ処理装置。
【請求項１０】
前記第１のマスタ・ロジック・ユニットは読み出しインターフェース・ユニットであり、かつ前記第１形式のアクセス要求は読み出しアクセス要求である請求項１記載のデータ処理装置。
【請求項１１】
前記第２のマスタ・ロジック・ユニットは書き込みインターフェースであり、かつ前記第２形式のアクセス要求は書き込みアクセス要求である請求項１記載のデータ処理装置。
【請求項１２】
前記第１のマスタ・ロジック・ユニットは読み出しインターフェース・ユニットであり、かつ前記第１形式のアクセス要求は読み出しアクセス要求であり、かつ前記マルチアクセス命令は、前記スレーブ装置のアクセス・アドレスからのデータを前記データ処理装置の第１のレジスタに読み込むために使用される読み出しアクセス要求を指定し、その後に前記データ処理装置の第２のレジスタから前記スレーブ装置のアクセス・アドレスにデータを書き込むために使用される書き込みアクセス要求が続くスワップ命令である請求項１１記載のデータ処理装置。
【請求項１３】
前記スレーブ装置はメモリである請求項１２記載のデータ処理装置。
【請求項１４】
複数の命令を実行するように動作可能なプロセッサと、前記複数の命令の実行中に発生した複数のアクセス要求を処理するように動作可能な第１のマスタ・ロジック・ユニット及び第２のマスタ・ロジック・ユニットとを有するデータ処理装置においてマルチアクセス命令を処理する方法であって、
前記複数のアクセス要求は、スレーブ装置に対する複数のアクセスを指定し、
前記第１のマスタ・ロジック・ユニットは、第１のバスを介して前記スレーブ装置をアクセスするように動作可能であり、かつ
前記第２のマスタ・ロジック・ユニットは、第２のバスを介して前記スレーブ装置をアクセスするように動作可能であり、
前記第１のマスタ・ロジック・ユニットは、第１形式のアクセス要求を処理するように構成され、かつ
前記第２のマスタ・ロジック・ユニットは、第２形式のアクセス要求を処理するように構成された方法において、
（ａ）前記第１形式のアクセス要求及び前記第２形式のアクセス要求の両方を発生させるように前記マルチアクセス命令を実行するステップであって、前記マルチアクセス命令は、前記スレーブ装置に対して何らの介在するアクセスを発生させることなく、前記第１及び第２のアクセス要求により指定されたスレーブ装置に対してアクセスが行われることを要求する前記ステップと、
（ｂ）前記第１のマスタ・ロジック・ユニットにより前記第１形式のアクセス要求及び前記第２のアクセス要求の両アクセス要求を処理させるように、前記マルチアクセス命令により指定された前記第１形式のアクセス要求及び前記第２のアクセス要求の両方の経路を指定するステップと、
（ｃ）前記第１のマスタ・ロジック・ユニットが前記マルチアクセス命令により指定された第１形式のアクセス要求及び第２形式のアクセス要求を処理している間に、前記第１のマスタ・ロジック・ユニットが前記スレーブ装置に対する独占的なアクセスを許可されることを保証するように動作可能なロック信号を発行するステップと
を備えた方法。
【請求項１５】
前記経路指定ステップ（ｂ）は、
（ｉ）前記第１のマスタ・ロジック・ユニットへ前記第１形式のアクセス要求を発送し、かつ前記第２のマスタ・ロジック・ユニットへ前記第２形式のアクセス要求の経路を指定するステップと、
（ｉｉ）前記マルチアクセス命令を実行する場合に、前記第１のマスタ・ロジック・ユニットにより処理するために、前記第２のマスタ・ロジック・ユニットから前記第１のマスタ・ロジック・ユニットへ前記マルチアクセス命令により指定された前記第２形式のアクセス要求の経路を指定するステップと
を備えた請求項１４記載の方法。
【請求項１６】
前記経路指定ステップ（ｉｉ）は、前記第１のマスタ・ロジック・ユニット内に設けられたロジック回路により与えられる請求項１５記載の方法。
【請求項１７】
前記経路指定ステップ（ｉｉ）は、前記第２のマスタ・ロジック・ユニットに対して要求を発行して前記第２のマスタ・ロジック・ユニットに前記第１のマスタ・ロジック・ユニットへ前記マルチアクセス命令により指定された前記第２形式のアクセス要求の経路を指定させるステップを備えている請求項１５記載の方法。
【請求項１８】
前記第２のマスタ・ロジック・ユニットは、前記第２のマスタ・ロジック・ユニットによるアクセス要求を処理する前に、前記経路指定ステップ（ｉ）を介して受け取った複数のアクセス要求をバッファリングするバッファを有し、前記第１のマスタ・ロジック・ユニットは、前記バッファが前記マルチアクセス命令により指定されていないアクセス要求を排出してしまうまで、前記マルチアクセス命令により指定された前記複数のアクセス要求を処理するのを延期するように構成されている請求項１５記載の方法。
【請求項１９】
前記マルチアクセス命令は、前記第２形式のアクセス要求の前に、前記第１形式のアクセス要求を処理させるように指定させる請求項１４記載の方法。
【請求項２０】
前記マルチアクセス命令は、前記第２形式のアクセス要求の前に、前記第１形式のアクセス要求を処理させ、かつ前記経路指定ステップ（ｉ）において、前記マルチアクセス命令により指定された前記第２形式のアクセス要求の前記第２のマスタ・ロジック・ユニットへの供給は、前記マルチアクセス命令により指定された前記第１形式のアクセス要求が前記第１のマスタ・ロジック・ユニットにより処理されてしまうまで、延期される請求項１５記載の方法。
【請求項２１】
前記第２のマスタ・ロジック・ユニットは、前記第２のマスタ・ロジック・ユニットによるアクセス要求を処理する前に、前記経路指定ステップ（ｉ）を介して受け取った複数のアクセス要求をバッファリングするバッファを有し、前記第１のマスタ・ロジック・ユニットは、前記バッファが前記マルチアクセス命令により指定されていないアクセス要求を排出してしまうまで、前記マルチアクセス命令により指定された前記アクセス要求を処理するのを延期するように構成され、かつ前記第１のマスタ・ロジック・ユニットは、前記第２のマスタ・ロジック・ユニットのバッファが空にされてしまうまで、前記マルチアクセス命令により指定された前記第１のアクセス要求を処理するのを延期するように構成されている請求項２０記載の方法。
【請求項２２】
前記第２のマスタ・ロジック・ユニットは、前記第１のマスタ・ロジック・ユニットへ前記バッファが空か否かを表すバッファ・ステータス信号を発行するように構成された請求項２１記載の方法。
【請求項２３】
前記第１のマスタ・ロジック・ユニットは読み出しインターフェース・ユニットであり、かつ前記第１形式のアクセス要求は読み出しアクセス要求である請求項１４記載の方法。
【請求項２４】
前記第２のマスタ・ロジック・ユニットは書き込みインターフェースユニットであり、かつ前記第２形式のアクセス要求は書き込みアクセス要求である請求項１４記載の方法。
【請求項２５】
前記第１のマスタ・ロジック・ユニットは読み出しインターフェース・ユニットであり、かつ前記第１形式のアクセス要求は読み出しアクセス要求であり、かつ前記マルチアクセス命令は、前記スレーブ装置のアクセス・アドレスから前記データ処理装置の第１のレジスタへデータを読み出すために使用される読み出しアクセス要求を指定し、その後に前記データ処理装置の第２のレジスタから前記スレーブ装置のアクセス・アドレスへデータを書き込むために使用される書き込みアクセス要求が続くスワップ命令である請求項２４記載の方法。
【請求項２６】
前記スレーブ装置はメモリである請求項２５記載の方法。
【請求項２７】
請求項１４記載の方法にしたがってマルチアクセス命令を処理するようにデータ処理装置を制御するように動作可能なコンピュータ・プログラムを保有しているコンピュータ読み出し可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ処理装置におけるマルチアクセス命令を処理する技術に関するものであり、特に実行するときに、第１形式のアクセス要求及び第２形式のアクセス要求の両方を発生させる形式のマルチアクセス命令であって、これら２つのアクセス要求により指定されたアクセスを、何らの介在（以下「介入」ともいう）するアクセスを発生させることなく、実行することを必要としたマルチアクセス命令を処理する技術に関するものである。
【０００２】
【従来の技術】
プロセッサが複数の命令を実行すると、これが１以上のスレーブ装置に対するアクセスを指定するアクセス要求を発生する結果となり得る。これらのスレーブ装置は、通常、１以上のインターフェース・ユニットを介してプロセッサに接続されており、かつ処理のために適当なインターフェースにアクセス要求を渡している。
【０００３】
典型的な実施において、各インターフェース・ユニットは、種々のスレーブ装置と通信するために関連するバスを有することになり、また１度に１インターフェース・ユニットのみが特定の１スレーブ装置に対してアクセスしなければならないことを保証するために、アービトレーション・ユニットを使用してインターフェース・ユニットにより実行されている種々のアクセス間におけるアービトレーション（ａｒｂｉｔｒａｔｉｏｎ：調停）をすることになる。
【０００４】
典型的な従来技術の実施では、１インターフェース・ユニット（ここでは、マスタ・ロジック・ユニットとも呼ばれる）が第１形式及び第２形式の両方のアクセス要求を処理する責任を持つことになり、従って、以上で述べた特定形式のマルチアクセス命令を実行すると、マルチアクセス命令により指定されたアクセス要求は、実行のために単一のインターフェース・ユニットへ発送される。このようなマルチアクセス命令の例は、スワップ命令である。この場合に、第１形式のアクセス要求が読み出しアクセス要求であり、第２形式のアクセス要求が書き込みアクセス要求であり、かつ関連するスレーブ装置が例えばメモリ、外部レジスタ、ＦＩＦＯバッファなどのようなストーレッジ装置である。スワップ命令は、スレーブ装置のアクセス・アドレスからデータ処理装置の第１のレジスタへデータを読み出すために使用される読み出しアクセス要求を指定し、その後にデータ処理装置の第２のレジスタからスレーブ装置のアクセス・アドレスへデータを書き込むために使用される書き込みアクセス要求が続く。スワップ命令は、スレーブ装置に対して何ら介入アクセスを発生させることなく、スレーブ装置に対して読み出しアクセス及び書き込みアクセスの両方を実行することを必要とする。
【０００５】
典型的な従来技術の実施では、スレーブ装置に対してアクセスを与えたならば、読み出し及び書き込みアクセスの両方を発行している間、スレーブ装置に対して独占的なアクセスを保持できることを保証するように、アービトレーション・ユニットに対して適当なロック信号を発行できる単一の読み出し及び書き込みインターフェース・ユニットが典型的に存在することになるので、このようなことを容易に達成することができる。
【０００６】
しかしながら、複数のアクセス要求を処理するために利用可能な帯域幅を増加するように、従ってパフォーマンスの増加及び柔軟性の増加を可能にするように、それぞれがスレーブ装置をアクセスするそれ自身のバスを備えたインターフェース・ユニットの数を増加することが望ましくなりつつある。一例として、データ処理装置内に、それぞれが種々のスレーブ装置に接続する独立したバスを有する独立したデータ読み出しインターフェース及び独立したデータ書き込みインターフェースを備えることが望ましくなりつつある。そこで、多数のスレーブ装置として、例えばセグメント・メモリを考慮することができ、このアーキテクチャーにより、メモリの他のセグメントからの書き込みが書き込みインターフェースを介して同期的に発生する間に、読み出しインターフェース・ユニットを介して１セグメントに対する読み出しを発生可能にする。このようなアプローチは、かなり柔軟性を増加させ、これによりアクセス要求を処理でき、更にかなりのパフォーマンス向上が得られることを理解すべきである。
【０００７】
しかしながら、以上で述べた形式の多重アクセス要求、例えばスワップ命令にとって、このようなアーキテクチャーは問題を発生させる。スワップ命令の例を考えると、以上のアーキテクチャーにより、スワップ命令の読み出しアクセス要求は、読み出しインターフェース・ユニットに対して発行されることになり、一方、スワップ命令の書き込みアクセス要求は、書き込みインターフェース・ユニットに対して発行されることになることが理解される。読み出しインターフェース・ユニット及び書き込みインターフェース・ユニットは、スレーブ装置（例えばメモリ）をアクセスするために異なるバスを使用するので、読み出しインターフェース・ユニットが読み出しアクセス要求を発行した後、書き込みインターフェース・ユニットがスレーブ装置に対してアクセスを要求して書き込みアクセス要求を処理できるようにするために、読み出しインターフェース・ユニットは、そのロック信号を解除することが必要となる。スワップ命令は、特定のアクセス・アドレスから読み出をし、次いで同一アクセス・アドレスに対する書き込みを必然的に含むので、同一スレーブ装置（例えば、同一メモリ・セグメント）は、両方のインターフェース・ユニットによりアクセスされることを必要とすることは、明らかである。このことは、書き込みアクセス要求を処理するために、そのロック信号を解除する読み出しインターフェース・ユニットと、スレーブ装置に対してアクセスを獲得する書き込みインターフェース・ユニットとの間でスレーブ装置に対する介入アクセスを発生させないということを最早、保証できないので、問題を発生させる。
【０００８】
【発明が解決しようとする課題】
従って、第１のマスタ・ロジック・ユニットに第１形式のアクセス要求の処理を与え、第２のマスタ・ロジック・ユニットに第２形式のアクセス要求の処理を与え、しかし、如何なる介入アクセスを発生させることなく、第１形式のアクセス要求及び第２形式のアクセス要求の処理を必要とするマルチアクセス命令を実行できるようにした技術を提供することが望ましいことになる。
【０００９】
【課題を解決するための手段】
第１の特徴から見ると、本発明は、複数の命令を実行するように動作可能なプロセッサと、前記複数の命令を実行中に発生する複数のアクセス要求を処理するように動作可能な第１及び第２のマスタ・ロジック・ユニットであって、前記アクセス要求が１スレーブ装置を指定し、前記第１のマスタ・ロジック・ユニットが第１のバスを介して前記スレーブ装置をアクセスするように動作可能であり、かつ前記第２のマスタ・ロジック・ユニットが第２のバスを介して前記スレーブ装置をアクセスするように動作可能である前記第１及び前記第２の第２のマスタ・ロジック・ユニットと、各アクセス要求に対して、どのマスタ・ロジック・ユニットがそのアクセス要求を処理すべきかを判定するように動作可能な経路指定ロジック回路（以下「経路指定ロジック」ともいう）であって、前記第１のマスタ・ロジック・ユニットが第１形式のアクセス要求を処理するように構成（以下「配置」ともいう）され、かつ前記第２のマスタ・ロジック・ユニットが第２形式のアクセス要求を処理するように配置されている前記経路指定ロジックとを備えたデータ処理装置を提供するものであって、前記複数の命令のうちの少なくとも１命令は、前記第１形式のアクセス要求及び前記第２形式のアクセス要求の両方を発生させるように実行可能であり、前記マルチアクセス命令は、前記第１及び第２形式の複数のアクセス要求により指定された前記スレーブ装置に対するアクセスが、前記スレーブ装置に対して何らの介入アクセスを発生させることなく、実行されることを必要とし、前記経路指定ロジックは、前記マルチアクセス命令を実行する場合に、前記マルチアクセス命令により指定された前記第１形式のアクセス要求及び前記第２形式のアクセス要求の両方を前記第１のマスタ・ロジック・ユニットにより処理させるように配置され、前記第１のマスタ・ロジック・ユニットは、前記マルチアクセス命令により指定された前記第１形式のアクセス要求及び前記第２形式のアクセス要求を処理しているときに、前記第１のマスタ・ロジック・ユニットが前記第１及び第２形式のアクセス要求を処理している間は、前記第１のマスタ・ロジック・ユニットが前記スレーブ装置に対して独占的なアクセスが許可されることを保証するために使用されるロック信号を発行するように配置されている。
【００１０】
本発明によれば、各アクセス要求に対して、どのマスタ・ロジック・ユニットがそのアクセス要求を処理すべきかを判定するように経路指定ロジックが設けられ、そのデフォルト位置は、前記第１のマスタ・ロジック・ユニットが前記第１形式のアクセス要求を処理し、かつ前記第２のマスタ・ロジック・ユニットが前記第２形式のアクセス要求を処理することである。何らの介入アクセスを発生させることなく、第１形式のアクセス要求及び第２形式のアクセス要求の両方を必要とする形式のマルチアクセス命令を実行する場合に、前記経路指定ロジックは、そのマルチアクセス命令により指定された前記第１形式のアクセス要求及び前記第２形式のアクセス要求の両方を前記第１のマスタ・ロジック・ユニットにより処理させるように配置される。更に、前記第１のマスタ・ロジック・ユニットがこれら２アクセス要求を処理している間に、前記第１のマスタ・ロジック・ユニットは、前記スレーブ装置に対して独占的なアクセスが許可される。
【００１１】
このアプローチにより、改善された帯域幅と、パフォーマンスと、それぞれがそれ自身のバスを有する前記第１のマスタ・ロジック・ユニット及び前記第２のマスタ・ロジック・ユニットの両方を設けることから帰結する柔軟性とを達成可能なことを保証することができ、なおかつ以上の形式のマルチアクセス命令を正しく、即ちスレーブ装置に対して何らの介入アクセスを発生させることなく、第１形式のアクセス要求並びに第２形式のアクセス要求を保証することにより、実行可能にする。
【００１２】
経路指定ロジックが種々の形式を取り得ることは、理解されるべきである。例えば、経路指定ロジックは、通常の状態として、第１のマスタ・ロジック・ユニットに対する第１形式のアクセス要求、及び第２のマスタ・ロジック・ユニットに対する第２形式のアクセス要求の経路を指定するように、しかし以上の形式のマルチアクセス命令の場合に、そのマルチアクセス命令により指定された第１形式のアクセス要求及び第２形式のアクセス形式の両方を第１のマスタ・ロジック・ユニットへ経路を指定することを保証するように配置された単一のロジック・ユニットであり得る。
【００１３】
しかしながら、好ましい実施例において、経路指定ロジックは、第１のマスタ・ロジック・ユニットへ第１形式のアクセス要求の経路を指定するように、かつ第２のマスタ・ロジック・ユニットへ第２形式のアクセス要求の経路を指定するように動作可能な第１の経路指定ロジックと、前記マルチアクセス命令を実行する場合に、前記マルチアクセス命令により指定された第２形式のアクセス要求を第２のマスタ・ロジック・ユニットから第１のマスタ・ロジック・ユニットへ経路を指定して前記第１のマスタ・ロジック・ユニットにより処理する動作可能な第２の経路指定ロジックとを備えている。
【００１４】
好ましくは、このような好ましい実施例において、前記第２の経路指定ロジックは、前記第１のマスタ・ロジック・ユニット内に設けられる。
【００１５】
前記第２形式のアクセス要求を前記第２のマスタ・ロジック・ユニットから前記第１のマスタ・ロジック・ユニットへ経路を指定する種々の方法が存在することを理解すべきである。しかしながら、前記第２の経路指定ロジックは、好ましくは、前記第２のマスタ・ロジック・ユニットへ要求を発行して前記第２のマスタ・ロジック・ユニットに、前記マルチアクセス命令により指定された第２形式のアクセス要求を前記第１のマスタ・ロジック・ユニットへ発送させるように動作可能な要求発行ロジック回路（requester logic）を備えている。
【００１６】
以上で説明した形式のマルチアクセス命令は、前記第１形式のアクセス要求及び前記第２形式のアクセス要求が前記スレーブ装置に対して何らの介入アクセスを発生させることなしに、処理されることを必要とするので、かつ前記第１のマスタ・ロジック・ユニットがシステムのパフォーマンスに好ましくない影響を与えないように、必要とする以上に長くスレーブ装置に対して独占的なアクセス保持すべきでないものとすると、前記第１のマスタ・ロジック・ユニットは、前記第２のマスタ・ロジック・ユニットが前記第１のマスタ・ロジック・ユニットに対して前記第２形式のアクセス要求を提供するような位置にあることが明らかとなるまで、前記マルチアクセス命令により指定された第１形式のアクセス要求を処理しないことが好ましい。好ましい実施例において、前記第２のマスタ・ロジックは、これらのアクセス要求を処理する前に、前記第１の経路指定ロジックから受け取ったアクセス要求をバッファリングするバッファを有し、前記第１のマスタ・ロジック・ユニットは、バッファが前記マルチアクセス命令により指定されないアクセス要求を空にしてしまうまで、前記マルチアクセス命令により指定されたアクセス要求の処理を延期するように配置されている。
【００１７】
前記マルチアクセス命令は、そのマルチアクセス命令により指定された種々のアクセス要求が実行されるべき順序を指定することを理解すべきである。従って、第２形式のアクセス要求のアクセス要求は、第１形式のアクセス要求のアクセス要求の前に、処理されることを必要とすることもある。しかしながら、好ましい実施例において、前記マルチアクセス命令は、第１形式のアクセス要求が第２形式のアクセス要求の前に処理されるべきことを指定する。
【００１８】
このような好ましい実施例において、第１の経路指定ロジックは、好ましくは、前記マルチアクセス命令により指定された第１形式のアクセス要求が前記第１のマスタ・ロジック・ユニットにより処理されてしまうまで、前記マルチアクセス命令により指定された第２形式のアクセス要求を前記第２のマスタ・ロジック・ユニットに供給するのを延期するように配置されている。前記第２のマスタ・ロジック・ユニットへ前記第２形式のアクセス要求を発送する前に、第１形式のアクセス要求が前記第１のマスタ・ロジック・ユニットにより処理されてしまうまで待機することにより、前記第１形式のアクセス要求が何らかの理由のために破棄される場合に、前記第２形式のアクセス要求は、前記第２のマスタ・ロジック・ユニットに対して発行されないことが保証され得る。
【００１９】
しかしながら、当該技術分野に習熟する者により次の事が理解されるべきである。前記第１形式のアクセス要求を破棄する場合に、適当な機構が前記第２のマスタ・ロジック・ユニットから第２形式のアクセス要求を削除するように適正位置に配置されるものと仮定すると、第１形式のアクセス要求が処理されてしまうまで、前記第１の経路指定ロジックが第２形式の当該アクセス要求を前記第２のマスタ・ロジック・ユニットへ供給するのを延期させる必要がなくなる。代わりに、前記第１の経路指定ロジックは、前記第１形式のアクセス要求の処理が前記第１のマスタ・ロジック・ユニットにより開始されたならば、その第２形式のアクセス要求を前記第２のマスタ・ロジック・ユニットへ供給するように配置されてもよい。
【００２０】
好ましい実施例において、前記第１のマスタ・ロジック・ユニットは、前記第２のマスタ・ロジック・ユニットのバッファが空になってしまうまで、前記マルチアクセス命令ユニットにより指定された前記第１のアクセス要求の処理を延期するように配置されている。このアプローチによって、前記第１のマスタ・ロジック・ユニットが第２形式のアクセス要求を処理する時が来たときは、そのアクセス要求が前記第２のマスタ・ロジック・ユニットに受け入れられるべき次のアクセス要求となることを保証することができ、従って前記第２のマスタ・ロジック・ユニットは、そのアクセス要求を前記第１のマスタ・ロジック・ユニットに提供する位置にある。
【００２１】
このような実施例において、前記第２のマスタ・ロジック・ユニットは、前記マスタ・ロジック・ユニットへバッファが空であるか否かを表すバッファ・ステータス信号を発行するように配置される。これは、バッファが空であるか否かを判定するために、前記第１のマスタ・ロジック・ユニットが前記第２のマスタ・ロジック・ユニットに対して要求を発行する必要性をなくす。
【００２２】
前記第１及び前記第２形式のアクセス要求は、前記第１及び前記第２のマスタ・ロジック・ユニットのように、種々の形式を取り得ることを理解すべきである。しかしながら、好ましい実施例において、前記第１のマスタ・ロジック・ユニットは読み出しインターフェース・ユニットであり、かつ前記第１形式のアクセス要求は読み出しアクセス要求であり、一方、前記第２のマスタ・ロジック・ユニットは書き込みインターフェース・ユニットであり、かつ前記第２形式のアクセス要求が書き込みアクセス要求である。以上で述べたように、複数のスレーブ装置をアクセスするために、それぞれがそれ自体に関連したバスを有する書き込みインターフェース・ユニットから独立している読み出しインターフェース・ユニットを設けることにより、１スレーブ装置に対する読み出しアクセスが他のスレーブ装置からの書き込みアクセスと同期して発生させることが可能である。
【００２３】
更に、マルチアクセス命令は、種々の形式を取り得ることも理解すべきである。しかしながら、好ましい実施例において、マルチアクセス命令は、スレーブ装置のアクセス・アドレスからデータ処理装置の第１のレジスタにデータを読み込むために使用される読み出しアクセス要求を指定するスワップ命令であり、その後にデータ処理装置の第２のレジスタにデータからスレーブ装置のアクセス・アドレスに書き込むために使用される書き込みアクセス要求が続く。読み出しアクセス要求及び書き込みアクセス要求の両方のために同一アドレスが係わるので、両アクセス要求は、同一スレーブ装置に対して作成される必要があることが明らかである。好ましい実施例によれば、スワップ命令により定義された読み出しアクセス要求及び書き込みアクセス要求の両方は、読み出しインターフェース・ユニットにより処理され、インターフェース・ユニットの能力により、スレーブ装置に対して独占的なアクセスを許可することを保証するロック信号を発行してスワップ命令の正しい実行を保証可能にする（即ち、介入アクセスが発生しないことが保証される）。
【００２４】
スワップ命令の結果としてアクセスされたスレーブ装置は、種々の形式を取りうることを理解されるべきである。例えば、スレーブ装置は、ファースト・イン・アースト・アウト（ＦＩＦＯ）バッファ、データ処理システムの外部レジスタ、メモリ等であり得る。しかしながら、好ましい実施例において、スレーブ装置はメモリである。
【００２５】
第２の特徴から見ると、本発明は、複数の命令を実行するように動作可能なプロセッサと、前記複数の命令の実行中に発生した複数のアクセス要求を処理するように動作可能な第１のマスタ・ロジック・ユニット及び第２のマスタ・ロジック・ユニットとを有するデータ処理装置においてマルチアクセス命令を処理する方法を提供するものであって、前記複数のアクセス要求は、スレーブ装置に対する複数のアクセスを指定し、前記第１のマスタ・ロジック・ユニットは、第１のバスを介して前記スレーブ装置をアクセスするように動作可能であり、かつ前記第２のマスタ・ロジック・ユニットは、第２のバスを介して前記スレーブ装置をアクセスするように動作可能であり、前記第１のマスタ・ロジック・ユニットは、第１形式のアクセス要求を処理するように配置され、かつ前記第２のマスタ・ロジック・ユニットは、第２形式のアクセス要求を処理するように配置され、前記方法は、（ａ）前記マルチアクセス命令を実行して前記第１形式のアクセス要求及び前記第２形式のアクセス要求の両方を発生させるステップであって、前記マルチアクセス命令は、前記第１及び第２のアクセス要求により指定されたスレーブ装置に対するアクセスが前記スレーブ装置に対して何らの介入アクセスを発生させることなく、実行されるステップと、（ｂ）これらアクセス要求の両者を前記第１のマスタ・ロジック・ユニットにより処理させるように、前記マルチアクセス命令により指定された第１及び第２のアクセス要求の両方の経路指定するステップと、
（ｃ）前記第１のマスタ・ロジック・ユニットがマルチアクセス命令により指定された第１形式のアクセス要求及び第２形式のアクセス要求を処理している間に、第１のマスタ・ロジック・ユニットは、前記スレーブ装置に対する独占的なアクセスが許可され、同時に前記第１のマスタ・ロジック・ユニットは、前記第１及び前記第２のアクセス要求を処理することを保証するように動作可能なロック信号を発行するステップとを備えている。
【００２６】
第３の特徴からみると、本発明は、本発明の第２の特徴の方法により、データ処理装置を制御してマルチアクセス命令を処理するように動作可能なコンピュータ・プログラムを保有するコンピュータ・プログラム製品を提供する。
【００２７】
本発明は、添付図面に示す好ましい実施例を参照して、単なる例示として、更に詳細に説明する。
【００２８】
【発明の実施の形態】
図１は、本発明の好ましい実施例によるデータ処理装置のブロック図である。このデータ処理装置は、一連の命令シーケンスを実行するために配置されたプロセッサ・コア１０を含む。プリフェッチ・ユニット３０は、プロセッサ・コア１０のために命令をシークしてプリフェッチし、これらの命令を実行するためにパス１８を介してプロセッサ・コア１０へ出力する。プリフェッチ・ユニット３０は、通常、プロセッサ・コア１０からパス１２を介してプロセッサ・コア１０のアクティビティを表す信号を受け取る。次に、プリフェッチ・ユニット３０は、プロセッサ・コア１０のためにどの命令を検索すべきかの判定において、この信号を使用することができる。通常、プリフェッチ・ユニット３０は、パス１４を介して命令要求を発行することにより、命令キャッシュ２０から特定の命令を検索しようと試行する。この命令が命令キャッシュ２０内に存在するのであれば、パス１６を介してプリフェッチ・ユニット３０に戻され、ここからパス１８を介してプロセッサ・コア１０に出力することができる。
【００２９】
しかしながら、命令キャッシュ２０内でキャッシュ・ミスが発生して、その命令がキャッシュ内に含まれていないことを表示したときは、プリフェッチ・ユニット３０に、適当な制御信号をパス３２を介してフェッチ・インターフェース４０に発行させる。次いで、フェッチ・インターフェース４０はシークをし、メモリ６０から命令を検索する。命令フェッチを実行するために、フェッチ・インターフェース４０は、制御信号をパス３４を介してアービター７０に出力して、アクセス要求を指定し、次いでアービター７０は、そのメモリ６０に対するアクセスを同時的に実行した他の要求を考慮して、後続のある点でパス７２を介してメモリ６０の多重化フロント・エンド５０へ信号を送り、メモリ６０にフェッチ・インターフェース４０により発行されたアクセス要求の処理をするように要求する。これは、バス３６を介してフェッチ・インターフェース４０へ戻された要求命令において、フェッチ・インターフェース４０から、プリフェッチ・ユニット３０を通るパス３８を介してプロセッサ・コア１０へのパス１８へ経路を指定することとなる。プリフェッチ・ユニット３０は、その時点で更にその命令を命令キャッシュ２０内に配置させる。
【００３０】
命令を処理するときに、プロセッサ・コア１０は、これらの命令により検索したデータ値を操作することが必要となる。従って、プロセッサ・コア１０は、パス８２を介してロード・ストア・ユニット８０に対して制御信号を発行して要求したデータ値を表す。次いで、ロード・ストア・ユニット８０は、パス８４を介してデータ・キャッシュ９０へそのデータ値に対するアドレスを発行することになり、またそのアドレスにおけるデータ値が現在、データ・キャッシュ９０内に存在するのであれば、パス８６を介してロード・ストア・ユニット８０に戻され、そこからパス８８を介してプロセッサ・コア１０に戻される。データ・キャッシュ９０は、通常、プロセッサ・コア１０により出力された仮想アドレスを物理アドレスに変換するテーブル・ルック・アサイド・バッファ（ＴＬＢ）のようなあるアドレス変換ロジック１００を組み込むことになる。データ・キャッシュ９０内にキャッシュ・ミスが発生して、そのデータ値がデータ・キャッシュ内に現在存在しないことを示すときは、キャッシュ・ミス信号をその物理アドレスと共にパス１１４を介して物理アドレス・キュー１１０に出力することになる。
【００３１】
ロード・ストア・ユニット８０は、更に制御信号をパス１１２を介して物理アドレス・キュー１１０に発行するように配置されており、従って、物理アドレス・キュー１１０がパス１１４を介してキャッシュ・ミス及び物理アドレスを受け取った場合に、物理アドレス・キュー１１０がロード命令のときは、メモリ６０からそのデータ値の検索を処理できるように、又はストア命令のときは、メモリ６０へデータ値をストアできるように、要求されているデータ値についての情報を供給する。
【００３２】
本発明の好ましい実施例によれば、独立したデータ読み出しインターフェース・ユニット１３０及び独立した書き込みインターフェース・ユニット１４０は、それぞれ複数の読み出しアクセス、及び複数の書き込みアクセスを処理するように設けられている。データ読み出しインターフェース・ユニット１３０は、バス１３４を介してメモリ６０に（実際には、読み出しインターフェース・ユニットがアクセスを必要とし得る他の複数のスレーブ装置に）接続されており、一方書き込みインターフェース・ユニット１４０は、独立したバス１４４を介してメモリ６０に（実際には、読み出しインターフェース・ユニットがアクセスを必要とし得る他の複数のスレーブ装置に）接続されている。物理アドレス・キュー１１０は、デマルチプレクサ１２０に組み込まれており、デマルチプレクサ１２０は、パス１１６を介してデータ読み出しインターフェース・ユニット１３０へ、またパス１１８を介して書き込みインターフェース・ユニット１４０へ読み出しアクセス要求を発送するように配置されている。
【００３３】
データ読み出しインターフェース・ユニット１３０がメモリ６０からデータを読み出したいときは、パス１３２を介してアービター１７０へ必要とする制御信号を発行して読み出しアクセス要求を指定し、同様に、書き込みインターフェース・ユニット１４０がメモリ６０に対して書き込みアクセスを出す必要がときは、パス１４２を介してアービター７０へ関連する制御信号を発行する。先に述べたように、アービター７０は、あらゆる時点でタイミングよくメモリ６０にアクセスしようとするインターフェース・ユニットのうちの１つのみを許可するように、種々のインターフェース・ユニット、即ちフェッチ・インターフェース４０、データ読み出しインターフェース・ユニット１３０、書き込みインターフェース・ユニット１４０（実際には、データ処理装置により提供される他のインターフェース・ユニット）により受け取った種々の要求間でアービトレーションをするように配置されている。
【００３４】
簡単にするため、図１に１スレーブ装置、即ちメモリ６０のみを示したが、通常の実施では、種々のインターフェース・ユニットによりアクセスされ得る多数のスレーブ装置が存在することを理解すべきである。例えば、メモリは、実際には、セグメント化されたメモリとして実施されてもよい。その場合に、各セグメントは、好ましくは、独立したスレーブ装置とみなされる。このような配置において、独立した読み出しインターフェース・ユニット及び独立した書き込みインターフェース・ユニットは、メモリの異なるセグメントからの書き込みと同期してメモリの１セグメントに対する読み出しを実行可能にすることが理解される。従って、独立した読み出しインターフェース及び書き込みインターフェースを設けると、読み出しアクセス要求及び書き込みアクセス要求の処理に利用可能な帯域幅が増加し、パフォーマンス及び柔軟性を改善する結果となる。
【００３５】
図１に戻ると、データ読み出しインターフェース・ユニット１３０により読み出しアクセス要求が発行された場合に、パス１３４を介して結果のデータが戻されたときは、データがパス１３６を介してデータ読み出しインターフェース・ユニット１３０からロード・ストア・ユニット８０へ転送される。次いで、データは、パス８８を介してプロセッサ・コア１０へ戻され、かつそのデータ値がキャッシュ可能であるとみなされると、更にデータ・キャッシュ９０へ渡されてデータ・キャッシュ内にストアされる。
【００３６】
図１の示すようなアーキテクチャーにより、問題を発生する１形式の命令は、以下でスワップ命令として説明するマルチアクセス命令である。スワップ命令は、メモリ６０のようなスレーブ装置のアクセス・アドレスからのデータ値をデータ処理装置の第１のレジスタに読み出すために使用される読み出しアクセス要求を指定すると共に、更にこの読み出しアクセス要求に、データ処理装置の第２のレジスタからスレーブ装置の同一アクセス・アドレスへデータを書き込むために使用される書き込みアクセス要求が続く必要があることを指定する命令である。更に、スワップ命令は、スレーブ装置に対して何らの介入アクセスを発生させることなく、読み出しアクセス要求及び書き込みアクセス要求の両方を実行することを必要とする。
【００３７】
図１から明らかなように、デマルチプレクサ１２０は、データ読み出しインターフェース・ユニット１３０に対してスワップ命令の読み出しアクセス要求を発行するように、かつデータ書き込みインターフェース・ユニット１４０に対してスワップ命令の書き込みアクセス要求を発行するように配置される。次いで、データ読み出しインターフェース・ユニット１３０は、メモリ６０に対して通常のやりかたにより読み出しアクセス要求発行することが可能となり、これが要求されたデータをバス１３４を介して検索する結果となる。しかしながら、その場合に、書き込みアクセス要求を実行するためには、データ書き込みインターフェース１４０が書き込みアクセス要求を発行することができるように、データ読み出しインターフェース・ユニット１３０は、メモリ６０の制御を放棄する必要がある。しかしながら、アービター７０が他のあるインターフェース・ユニット、例えば他のプロセッサのインターフェース・ユニットから介入アクセス要求を受け付けないということは、保証されず、従って、メモリ６０により何ら介入アクセス要求を処理することなく、読み出しアクセス要求後に直ちに実行することは、保証されない。
【００３８】
本発明の好ましい実施例によれば、この問題は、スワップ命令の場合に、データ読み出しインターフェース・ユニット１３０がスワップ命令により指定された読み出しアクセス要求を処理するだけでなく、スワップ命令により指定された書き込みアクセス要求も処理することを保証する付加的なロジックを設けることにより、解決される。ここで、データ読み出しインターフェース・ユニット１３０は、更に、非常に限定された環境において、複数の書き込みアクセス要求を処理できなければならないので、バス１３４は、最早読み出し専用バスであり得ないことを理解すべきである。従って、好ましい実施例において、バス１３４は、データ読み出しインターフェース・ユニット１３０が以上で述べた限定された環境において（例えば、スワップ命令を正しく処理するために必要とされるときに）、要求された書き込みアクセスを実行できるように構築された「モーストリー読み出しバス（ｍｏｓｔｌｙ  ｒｅａｄ）  ｂｕｓ」により提供される。
【００３９】
スワップ命令は、常に、読み出しアクセス及び書き込みアクセスをメモリ６０上で直接実行しなければならない場合であるとする必然性はないことを理解すべきである。例えば、スワップ命令により指定されたメモリ・アドレスがキャッシュ可能なときは、読み出しアクセス要求の結果としてメモリ６０からデータ値を依然として読み出さなければならないこともあり、そのデータ値をバス１３４及びパス１３６を介してロード・ストア・ユニット８０に戻し、次にそこからデータ・キャッシュ９０内にストアする結果となる。しかしながら、その後、ロード・ストア・ユニット８０は、データ・キャッシュ９０における関連エントリにデータ値を書き込むことにより、書き込みアクセス要求を直ちに実行することを保証することができる。「ライト・バック（write back)」キャッシュのときは、その段階でメモリ６０にデータ値を更に書き込む必要はない。従って、好ましい実施例において、スワップ命令がキャッシュ可能なメモリ・アドレスを指定する場合に、書き込みアクセス要求をメモリ６０上に直接実行する必要条件は、不要となる。従って、書き込みアクセス要求は、処理のために読み出しインターフェース・ユニットを通って発送されることを保証する必要条件はなくともよい。しかしながら、キャッシュ不可アドレスを指定するスワップ命令のときは、データ読み出しインターフェース・ユニット１３０がスワップ命令の読み出しアクセス要求及び書き込みアクセス要求の両方を処理可能にする必要条件が存在し、ここでは、図２及び図３を参照して好ましい実施例によりこれを達成するやり方を更に詳細に説明する。
【００４０】
図２は、データ読み出しインターフェース・ユニット１３０がスワップ命令の書き込みアクセス要求を処理できるように、データ読み出しインターフェース・ユニット１３０及びデータ書き込みインターフェース・ユニット１４０内に設けられた構成要素を更に詳細に説明するブロック図である。図３は、このような場合にスワップ命令を処理するためにデータ読み出しインターフェース・ユニット１３０内で実行される処理を説明する流れ図である。
【００４１】
ステップ３００において、データ読み出しインターフェース・ユニット１３０は、スワップ命令の読み出しアクセス要求がパス１１６を介してデマルチプレクサ１２０からスワップ命令の読み出しアクセス要求を受け取ったか否かを判定する。この読み出しアクセス要求は、読み出し要求制御ブロック２１０が受け取る。ステップ３００において、読み出しアクセス要求を受け取ったと判定されたときは、処理はステップ３１０に進み、データ書き込みインターフェース・ユニット１４０の書き込みバッファ２７０が空になったか否かを判定する。この判定を可能にするために、書き込みバッファ２７０は、パス２７２を介して読み出し要求制御ブロック２１０へ書き込みバッファが空らか否かを表す信号を発行するように配置されている。
【００４２】
図１により、ロード・ストア・ユニット８０は、スワップ命令の読み出しアクセス要求による結果の読み出しデータがパス１３６を介して戻されるまで、スワップ命令により指定された書き込みアクセス要求は、物理アドレス・キュー１１０に対して発行されないこと、従ってその後に、読み出し要求制御ブロック２１０による読み出しアクセス要求の受け取りが続くことを保証することに注意すべきである。それ以上の書き込みアクセス要求は、読み出しアクセス要求を処理してしまうまで、書き込みバッファ２７０に入力されることはない。従って、読み出し要求制御ブロック２１０がスワップ命令の読み出しアクセス要求を受け取った時点で、書き込みバッファ２７０がいくつかの保留中の書き込みアクセス要求を保持していても、これらの書き込みアクセス要求は、インターフェース・ユニット１４０により処理されているので、書き込みバッファの内容は、自然に空になることを認識すべきである。
【００４３】
従って、ある時点で、書き込みバッファ２７０により書き込みバッファが空になったことを示す信号がパス２７２を介して発行され、従って、処理はステップ３１０からステップ３２０へ進むことになる。ステップ３２０において、スワップ命令の読み出しアクセス要求を読み出しバス上に発行する。図１において、各バスは、バス３６、１３４、１４４としてそれぞれ識別されているが、当該技術分野に習熟する者は、これらのバスが更に制御パス３４、１３２、１４２にもそれぞれ組み込まれていることを理解すべきである。
【００４４】
データ読み出しインターフェース・ユニット１３０は、読み出しアクセス要求を発行できるようになる前に、メモリ６０から、新しいアクセス要求を処理するためにメモリが利用可能であることを表すセット”ＨＲＥＡＤＹ”を受け取る必要がある。通常、ＨＲＥＡＤＹ信号は、メモリ６０によりそのメモリをアクセスできる全てのインターフェース・ユニットへブロードキャストされる。ＨＲＥＡＤＹ信号は、データ読み出しインターフェース・ユニット１３０内のシーケンス制御ブロック２４０により受け取られ、次いでパス２４２、２４４、２４６及び２４８を介して書き込み要求制御ブロック２５０、読み出し要求制御ブロック１０、”ＨＲＥＡＤＹ”ブロック２２２及び”ＨＬＯＣＫ”ブロックにそれぞれ渡される。
【００４５】
ＨＲＥＡＤＹ信号を受け取ると、読み出し要求制御ブロック２１０は、パス２１２を介して読み出しアクセス要求に関連して必要なあらゆる制御信号を発行し、同時にパス２１４及び２１６を介してＨＴＲＡＮＳブロック２２０及びＨＬＯＣＫブロック２３０にそれぞれ信号を発行して、ＨＴＲＡＮＳブロック２２０に読み出しアクセス要求に対するアドレスを発生させ、かつＨＬＯＣＫブロック２３０にセット・ロック信号を発行させる。データ読み出しインターフェース・ユニット１３０は、メモリ６０に対するアクセスが許可されると、このロック信号をデアサートするまで、このロック信号が、データ読み出しインターフェース・ユニット１３０がメモリ６０に対して独占的なアクセスを持ち続けることを保証するために使用される。
【００４６】
アービター７０が処理のためにマルチプレクサ５０に、読み出しアクセス要求をメモリ６０へ発送するように指令すると、その後に読み出しデータ（図２にＨＲＤＡＴＡとして示されている）がバス１３４を介して読み出しインターフェース１３０に戻される結果となり、これがデータ・バッファ２００を通過する。従ってステップ３２０において、読み出しアクセス要求が発行されると、処理はステップ３３０に進み、読み出しデータは読み出しインターフェースに戻されたか否かを判定する。読み出しデータが戻されたのであれば、処理は３４０に進み、読み出しアクセス要求は破棄されたか否かを判定し、このことが読み出しデータと共にメモリ６０から戻される一定の制御情報により通知される。数多くの理由により読み出しアクセスを破棄することはあり得る。例えば、メモリ６０は、読み出しアクセス要求により示されたアドレスあるデータは無効であると判定すること、又はそのデータ値はシステムの現在状態を読み取り可能に与えられていないと判定することができる。
【００４７】
ステップ３４０において、読み出しアクセス要求が破棄されたと判定すると、処理はステップ３５０に進み、ＨＬＯＣＫ信号をデアサートして、データ読み出しインターフェース・ユニット１３０により実行される処理を終了する。実際において、破棄信号は、パス１３６を介してロード・ストア・ユニット８０に返送され、これがロード・ストア・ユニット８０に、その後の書き込みアクセスを取り消すようさせ、従ってスワップ命令を破棄する。
【００４８】
ステップ３４０において、読み出しアクセス要求は破棄されていないと判定されたとすると、処理はステップ３６０に進み、データ読み出しインターフェース・ユニット１３０は、データ書き込みインターフェース・ユニット１４０が受け取った次の書き込みアクセス要求のためにデータ書き込みインターフェース・ユニット１４０に対して要求を発行する。これは、読み出し要求制御ブロック２１０がパス２１８を介して書き込み要求制御ブロック２５０へ信号を発行し、書き込み要求制御ブロック２５０に、パス２５４を介してデータ書き込みインターフェース・ユニット１４０の書き込み肯定応答制御ブロック２６０へ要求信号を発行させることにより、達成される。更に、この信号は、ＨＬＯＣＫブロック２３０に渡されてロック信号をアサートし続けるようにする。
【００４９】
書き込みアクセス要求が書き込みバッファ２７０の前端に到達すると、これはパス２７６を介して”ＨＷＤＡＴＡ”ブロック２８０へ発送される。データ書き込みインターフェース・ユニット１４０の通常の動作において、”ＨＷＤＡＴＡ”ブロック２８０は、パス２８２を介して書き込みデータを発行するように配置されており、同時に書き込みバッファ２７０から対応する制御データがパス２７４を介して出力される。しかしながら、書き込み肯定応答制御ブロック２６０は、データ項目が書き込みバッファ２７０の前端からＨＷＤＡＴＡブロック２８０へ渡されたときに、パス２７８を介して制御情報を受け取るように配置されている。スワップ命令の読み出しアクセス要求を処理する前は、書き込みバッファ２７０が空となっていたので、書き込みバッファ２７０の前端に到達する次の命令は、ロード・ストア・ユニット８０及び物理アドレス・キュー１１０を介してデータ書き込みインターフェース・ユニット１４０へ発送される、スワップ命令の書き込みアクセス要求である。従って、書き込み肯定応答ブロック２６０がパス２５４を介して要求信号を受け取ると、これは、肯定応答信号をパス２５６を介して書き込み要求制御ブロック２５０へ発送することにより、更にパス２６２を介してＨＷＤＡＴＡブロック２８０へ発送することにより、パス２７８を介して受け取る次組の制御信号に対して反応する。この制御信号は、ＨＷＤＡＴＡブロック２８０が適当な時点でパス２８２よりもパス２８４を介して出力するようにされる。パス２８４は、データ読み出しインターフェース・ユニット１３０を通って発送され、従ってこの処理は、書き込みアクセス要求がデータ読み出しインターフェースにより実際に出力されるのを保証する。
【００５０】
特に、図３を参照すると、パス２５４を介して書き込み肯定応答ブロック２６０へ要求を発行した後、処理はステップ３７０へ進み、データ読み出しインターフェース・ユニット１３０は、書き込みアクセス要求を受け取ったという確認を待機する。これは、データ書き込みインターフェース・ユニット１４０の書き込み肯定応答ブロック２６０からパス２５６を介して戻される肯定応答信号により表示される。書き込みアクセス要求を受け取ったならば、処理はステップ３８０に進み、スワップ命令の書き込みアクセス要求を読み出しバスへ発行する。
【００５１】
図２を参照すると、これは、パス２５４を介してＨＴＲＡＮＳブロック２２０へ信号を発行して、ＨＴＲＡＮＳブロック２２０に書き込みアクセス要求ためのアドレスを発生させることにより、パス２５６を介して戻される肯定応答信号に応答する書き込み要求制御ブロック２５０により、達成される。アドレスは、読み出しアクセス要求に使用されているものと同一であるので、このアドレス情報は、データ読み出しインターフェース・ユニット１３０内に依然として保持され続けており、ＨＴＲＡＮＳブロック２２０により容易に発生可能とされる。
【００５２】
ＨＲＥＡＤＹ信号がクロック・サイクルの終りでセットされる次の時点で、ＨＴＲＡＮＳブロック２２０は、書き込みアクセス用にアドレスを発生するように配置される。これは、シーケンス制御ブロック２４０からパス２４６を介して受け取る信号により表示される。同時に、このセットＨＲＥＡＤＹ信号は、パス２４２を介して書き込み要求制御ブロック２５０へ発送され、次にパス２５４を介して書き込み肯定応答制御ブロック２６０へ発送され、パス２６２を介してＨＷＤＡＴＡブロック２８０へ発送され、更にＨＷＤＡＴＡブロック２８０が書き込みアクセス要求に対応する書き込みデータを、パス２８４を介して出力するようにされる。次に、この書き込みデータは、データ読み出しインターフェース・ユニット１３０に接続された「モーストリー読み出し(mostly read)」バス上に出現する。
【００５３】
シーケンス制御ブロック２４０がメモリ６０からアクティブのＨＲＥＡＤＹ信号を受け取った次の時点で、これは、ＨＴＲＡＮＳブロック２２０に書き込みアクセス用のアドレスをデアサートさせる。しかしながら、この時点で、書き込みデータは、データ読み出しインターフェース・ユニット１３０の読み出しバスを介してＨＷＤＡＴＡブロック２８０によりアサートされ続ける。
【００５４】
ここでは、何らの介入アクセスを発生させることなく、書き込みアクセスを実行しようとするのが保証されているので、この時点で更にＨＬＯＣＫブロック２３０によりロック信号をデアサートすることもできる。
【００５５】
シーケンス制御ブロック２４０がメモリ６０からセットＨＲＥＡＤＹ信号を受け取った次の時点で、このセットＨＲＥＡＤＹ信号は、再びパス２４２、２５４及び２５６を介してＨＷＤＡＴＡブロック２８０へ発送されて、ＨＷＤＡＴＡブロックが書き込みデータをデアサートするようにされる。このセットＨＲＥＡＤＹ信号は、他のインターフェース・ユニットがメモリ６０へアクセスの要求を開始できるようにする。
【００５６】
従って、図３に戻ると、ステップ３８０において、書き込みアクセス要求を読み出しバス上に発行したならば、処理はステップ３９０に進むことが解る。ここで、書き込みアクセス要求のアドレス・フェーズが完結したか否かを判定する（これは、ＨＴＲＡＮＳブロック２２０が書き込みアドレスをデアサートしたときに完結している）。その時点で、処理はステップ４００に進み、ＨＬＯＣＫ信号をデアサートする。書き込みアクセス要求の残りの前記説明を処理するものとすると、ＨＷＤＡＴＡ２８０へＨＲＥＡＤＹ信号を発送して書き込みデータをデアサートさせることを除き、読み出しインターフェース・ユニット１３０により何らの操作を実行することを必要とすることなく、これを継続することを理解すべきである。
【００５７】
図４は、スワップ命令により必要とされる読み出しアクセス及び書き込みアクセスを実行するときに、データ読み出しインターフェース・ユニット１３０に接続された読み出しバス１３２、１３４上に出力された種々の信号の状態の例を概要的に説明するタイミング図である。第１のクロック・サイクルの終端、即ち時間ｔ2で、セットＨＲＥＡＤＹ信号の存在により、次のクロック・サイクルにおいてＨＴＲＡＮＳ信号をアサートさせて読み出しアクセス要求のアドレスを指定する。その時点で、更にＨＬＯＣＫブロック２３０もＨＬＯＣＫ信号をアサートする。時間ｔ3において、連続するＨＲＥＡＤＹ信号のアサートにより、ＨＴＲＡＮ信号をデアサートさせることになる。
【００５８】
ＨＲＥＡＤＹ信号が次のクロック・サイクルの終端、即ち時間ｔ4で依然としてアサートされているとすると、これは、そのクロック・サイクルにおいて読み出しデータを戻し得たことを表すことになり、従ってここで読み出しインターフェース・ユニット１３０のデータ・バッファ２００へ読み込むことになる。
【００５９】
時間ｔ4において、アクティブのＨＲＥＡＤＹ信号は、更に、ＨＴＲＡＮＳブロック２２０に書き込みアクセス要求のために書き込みアドレスの発行を開始させ、かつＨＷＤＡＴＡブロック２８０に書き込みデータの発行を開始させる。
【００６０】
時間ｔ5において、ＨＲＥＡＤＹ信号が再びアサートされると、これがＨＴＲＡＮＳブロック２２０に通知され、これがここで書き込みアクセスをデアサートすることができ、続いてＨＬＯＣＫ信号をここでデアサートできることをＨＬＯＣＫブロック２３０へ通知することになる。時間ｔ6においてＨＲＥＡＤＹ信号がアクティブであったときは、これがＨＷＤＡＴＡブロック２８０に発送されて書き込みデータをデアサートさせる。しかしながら、図４に説明した例では、メモリにデータを書き込むために１サイクル以上を取ることになるとみなされる。従って、時間ｔ6において、ＨＲＥＡＤＹ信号はアサートされず、これがＨＷＤＡＴＡブロック２８０にさらなるサイクルについて書き込みデータを保持させる。従って、その後のサイクルの終りにおいて、即ち時間ｔ7において、ＨＲＥＡＤＹ信号のアサートを使用してＨＷＤＡＴＡブロック２８０に書き込みデータをデアサートさせ、従ってスワップ命令により、必要とする読み出しアクセス及び書き込みアクセスの両方を完了する。
【００６１】
図４に示す”ＨＷＲＩＴＥ”信号は、パス２１２を介して読み出し要求制御ブロック２１０により発送される制御信号であり、ＨＴＲＡＮＳ信号により指定されるアクセス要求が読み出しアクセスであるか、又は書き込みアクセスであるかを表す。ＨＷＲＩＴＥ信号は、読み出しアクセスを表すロジック０値、及び書き込みアクセスを表すロジック１値にセットされる。従って、図４を参照すると、ＨＷＲＩＴＥ信号は、時間ｔ4と時間ｔ5との間のクロック・サイクルにおいてロジック１値へ遷移することが解る。
【００６２】
以上の説明において、本発明の好ましい実施例実施例は、独立した読み出しインターフェース・ユニット及び独立したデータ書き込みインターフェース・ユニットを使用して読み出しアクセス及び書き込みアクセスを処理する際に、データ処理装置の帯域幅、パフォーマンス及び柔軟性を改善し、同時に依然として、スワップ命令により指定された読み出しアクセスと書き込みアクセスとの間で何らの介入アクセスが発生しないことを保証するようにして、スワップ命令を処理できるようにした機構を提供することを理解すべきである。
【００６３】
ここでは本発明の特定の実施例を説明したが、本発明はこれに限定されず、本発明範囲内で多くの変形及び付加できることが明らかである。例えば、本発明の範囲から逸脱することなく、独立請求項の特徴と以下の従属請求項の特徴との種々の組み合わせが可能である。
【図面の簡単な説明】
【図１】本発明の好ましい実施例によるデータ処理装置を示すブロック図である。
【図２】本発明の好ましい実施例によるスワップ命令を処理するために使用されるデータ読み出しインターフェース及びデータ書き込みインターフェースの構成要素を更に詳細に示すブロック図である。
【図３】本発明の好ましい実施例によるスワップ命令を処理するときに、データ読み出しインターフェースにより実行される処理を示す流れ図である。
【図４】本発明の好ましい実施例によるスワップ命令を処理する間に、データ読み出しインターフェースにより発行又は受信される種々の信号間の相互作用を示すタイミング図である。
【符号の説明】
１０  プロセッサ・コア
２０  命令キャッシュ
３０  プリフェッチ・ユニット
４０  フェッチ・インターフェース
５０  多重化フロント・エンド
６０  メモリ
７０  アービター
８０  ロード・ストア・ユニット
９０  データ・キャッシュ
１１０  物理アドレス・キュー
１２０  デマルチプレクサ
１３０  データ読み出しインターフェース・ユニット
１４０  データ書き込みインターフェース・ユニット
【図１】
0004166615.tif 000002
【図２】
0004166615.tif 000003
【図３】
0004166615.tif 000004
【図４】
0004166615.tif 000005