(57)【特許請求の範囲】
【請求項１】
第１のクロック信号に同期して動作するインタフェースと、前記第１のクロック信号とは異なる第２のクロック信号に同期して動作する記憶装置制御回路とを備えるデータ処理装置に用い、前記インタフェースに入力される要求を前記記憶装置制御回路に転送する非同期ＦＩＦＯ間順序制御回路であって、
前記第１及び第２のクロック信号の非同期クロック間において要求を受け渡すための非同期ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）と、強制されるべきオーダー関係を管理するための情報を付与する書込み制御手段と、前記強制されるべきオーダー関係を考慮した上で効率的に処理順序を組み替える読出し制御手段とを有し、
前記非同期ＦＩＦＯを、優先度が高く先行する要求を追い越すことが可能な要求を格納するための第１の非同期ＦＩＦＯと、前記優先度が低く先行する要求を追い越すことが不可能な要求を格納するための第２の非同期ＦＩＦＯとして割り当て、前記要求を前記インタフェースへ入力した順序とは異なる順序にて前記記憶装置制御回路で処理可能とすることを特徴とする非同期ＦＩＦＯ間順序制御回路。
【請求項２】
前記書込み制御手段は、前記インタフェースを介して入力される全ての要求に対してオーダー番号を付与し、前記第１の非同期ＦＩＦＯへこれから書込む要求の情報と前記第２の非同期ＦＩＦＯに既に格納されている要求の情報とを比較し、前記第１の非同期ＦＩＦＯへこれから書込む要求が前記第２の非同期ＦＩＦＯに既に格納されている要求を追い越した場合にハザードが発生するか否かに応じて追い越し禁止または追い越し許可を前記強制されるべきオーダー関係を管理するための情報として付与することを特徴とする請求項１記載の非同期ＦＩＦＯ間順序制御回路。
【請求項３】
前記読出し制御手段は、前記第１の非同期ＦＩＦＯと前記第２の非同期ＦＩＦＯとの両方に要求が格納されている場合、前記オーダー番号の比較にて前記第１の非同期ＦＩＦＯから読出される要求が前記第２の非同期ＦＩＦＯから読出される要求よりも後に入力されたものでありかつ前記第１の非同期ＦＩＦＯから読出しされる要求に追い越し禁止の情報が付与されていれば前記第２の非同期ＦＩＦＯの要求を出力することを特徴とする請求項２記載の非同期ＦＩＦＯ間順序制御回路。
【請求項４】
強制インオーダー処理の設定情報を保持する保持手段を含み、
前記書込み制御手段が前記保持手段に保持された設定情報が有効な場合に前記第１の非同期ＦＩＦＯの要求に対して常に追い越し禁止の情報を付与することを特徴とする請求項１から請求項３のいずれか記載の非同期ＦＩＦＯ間順序制御回路。
【請求項５】
前記インタフェースを読出しインタフェースと書込みインタフェースとに分離し、
前記書込み制御手段は、読出し要求と書込み要求とに１サイクルの間に連続した異なるオーダー番号を付与し、前記書込み要求を追い越し不可能な要求として前記第２の非同期ＦＩＦＯへ格納し、前記読出し要求を追い越し可能な要求として前記第１の非同期ＦＩＦＯへ格納することを特徴とする請求項１から請求項４のいずれか記載の非同期ＦＩＦＯ間順序制御回路。
【請求項６】
上記の請求項１から請求項５のいずれかに記載の非同期ＦＩＦＯ間順序制御回路を含むことを特徴とするデータ処理装置。
【請求項７】
第１のクロック信号に同期して動作するインタフェースと、前記第１のクロック信号とは異なる第２のクロック信号に同期して動作する記憶装置制御回路とを備えるデータ処理装置に用い、前記インタフェースに入力される要求を前記記憶装置制御回路に転送する非同期ＦＩＦＯ間順序制御方法であって、
前記データ処理装置に、前記第１及び第２のクロック信号の非同期クロック間において要求を受け渡すための非同期ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）を配設し、
前記データ処理装置が、強制されるべきオーダー関係を管理するための情報を付与する書込み制御処理と、前記強制されるべきオーダー関係を考慮した上で効率的に処理順序を組み替える読出し制御処理とを実行し、
前記非同期ＦＩＦＯを、優先度が高く先行する要求を追い越すことが可能な要求を格納するための第１の非同期ＦＩＦＯと、前記優先度が低く先行する要求を追い越すことが不可能な要求を格納するための第２の非同期ＦＩＦＯとして割り当て、前記要求を前記インタフェースへ入力した順序とは異なる順序にて前記記憶装置制御回路で処理可能とすることを特徴とする非同期ＦＩＦＯ間順序制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は非同期ＦＩＦＯ間順序制御回路、データ処理装置及びそれらに用いる非同期ＦＩＦＯ間順序制御方法に関し、特に並列接続された非同期ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）間の順序制御に関する。
【背景技術】
【０００２】
近年、マイクロプロセッサの動作クロック速度向上に対して、その周辺装置として接続される記憶装置の動作クロック速度向上が遅れ、処理速度の乖離が広がっている。このため、階層型メモリ構造の導入、ノンブロッキングバスアクセス技術の導入等により可能な限りマイクロプロセッサの動作を高効率に維持するための努力が行われている。
【０００３】
その中で、記憶装置の制御回路においても、高スループットかつ低レイテンシな非同期回路構成と、読出し要求の優先処理によるマイクロプロセッサ視点での低レイテンシ化が求められている。
【０００４】
下記の特許文献１では、単純に要求間のオーダーを管理し、さらに非同期ＦＩＦＯによる非同期通信を行うために、非同期ＦＩＦＯの手前に複数の同期バッファを配置し、単一のクロックドメイン内でオーダーを決定した上で非同期ＦＩＦＯへ順番に要求を入力している。しかしながら、コスト競争のために、回路規模を大幅に増やしてしまうバッファ類の実装は可能な限り少なく抑え、実装面積を削減することも同時に求められている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−０６５９４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
記憶装置制御を伴うデータ処理装置に対しては、マスタ装置から書込み要求と読出し要求とがインタフェース回路へと入力される。高い処理性能を求められるシステムの場合、マスタ装置は、複数の要求を先行要求の完了・未完了に関わらず連続発行可能であるのに対して、単位時間あたりのデータ処理装置の処理能力は、マスタ装置の要求発行能力を下回る。
【０００７】
この時、データ処理装置は、書込み要求に限って要求を受け付けた時点で、その書込み要求の処理完了をマスタ装置へと通知するポステッド・ライト動作を行う場合が多い。このため、マスタ装置の立場としては、データ処理装置に対して可能な限り読出し要求を優先して処理して応答を返すことを期待する。
【０００８】
ここで、マイクロプロセッサから発行された書込み要求及び読出し要求の対象データ間に依存関係があった場合は、マイクロプロセッサから要求が発行された順序通りに書込み要求及び読出し要求を処理することが必要とされる。もし処理順序が誤って前後してしまった場合は、プログラマの期待とは異なった結果になってしまう状況、すなわちハザードが発生してしまう。
【０００９】
したがって、上記のシステムでは、ハザードが発生しない範囲で後から入力された優先度の高い要求を、先に入力された優先度の低い要求よりも優先して処理するために処理順序を内部的に組みかえる仕組みをデータ処理装置が実装することで、結果としてマスタ装置がより効率的に動作可能となり、システム全体の性能向上を図ることができる。
【００１０】
また、マスタ装置とその記憶装置とでは、動作可能な最大周波数に大きな差があることが多く、その結果、記憶装置制御を伴うデータ処理装置は、内部に非同期回路を備えることがある。
【００１１】
非同期回路を有するデータ処理装置においては、効率的な要求処理順序への組み換え動作を実現しようとした場合、単純に考えると、順序の組み換えに伴う回路をすべて１つのクロック信号で動作させることが最も容易かつ確実な方法となる。その場合は、非同期回路へ入力する手前のインタフェース回路側で順序の組み換えを行うことになる。
【００１２】
しかしながら、上記のシステムでは、マスタ装置の要求発行能力がデータ処理装置の処理能力を上回る場合、インタフェース回路が接続されているバスの利用効率を下げないために、要求を保留可能なバッファを多段構成とする必要があるという第１の課題がある。
【００１３】
つまり、非同期回路に非同期ＦＩＦＯもしくはデュアルポートＲＡＭ（ＲＡＭ）を使用する構成の場合、処理速度差の緩衝及び処理順序の組み換え用と、非同期回路としてのバッファとが分離した形で実装されることになり、面積的なオーバヘッドが大きくなってしまう。
【００１４】
非同期回路に非同期ハンドシェーク回路を採用した場合は、面積的なオーバヘッドは問題とならないが、その代償としてスループット及びレイテンシにおける性能的な劣化が顕著になってしまう。
【００１５】
また、上記のシステムでは、異なるクロック信号で動作する記憶装置制御回路の都合をリアルタイムでオーダー制御に反映できないため、結果としてしばらく処理できない要求を優先してしまい、全体の処理性能を下げてしまう可能性があるという第２の課題がある。
【００１６】
そこで、本発明の目的は上記の問題点を解消し、実装面積を抑えた上で、入力された要求の処理順序を効率的に組み替えることができる非同期ＦＩＦＯ間順序制御回路、データ処理装置及びそれらに用いる非同期ＦＩＦＯ間順序制御方法を提供することにある。
【課題を解決するための手段】
【００１７】
本発明による非同期ＦＩＦＯ間順序制御回路は、第１のクロック信号に同期して動作するインタフェースと、前記第１のクロック信号とは異なる第２のクロック信号に同期して動作する記憶装置制御回路とを備えるデータ処理装置に用い、前記インタフェースに入力される要求を前記記憶装置制御回路に転送する非同期ＦＩＦＯ間順序制御回路であって、
前記第１及び第２のクロック信号の非同期クロック間において要求を受け渡すための非同期ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）と、強制されるべきオーダー関係を管理するための情報を付与する書込み制御手段と、前記強制されるべきオーダー関係を考慮した上で効率的に処理順序を組み替える読出し制御手段とを備え、
前記非同期ＦＩＦＯを、優先度が高く先行する要求を追い越すことが可能な要求を格納するための第１の非同期ＦＩＦＯと、前記優先度が低く先行する要求を追い越すことが不可能な要求を格納するための第２の非同期ＦＩＦＯとして割り当て、前記要求を前記インタフェースへ入力した順序とは異なる順序にて前記記憶装置制御回路で処理可能としている。
【００１８】
本発明によるデータ処理装置は、上記の非同期ＦＩＦＯ間順序制御回路を含むことを特徴とする。
【００１９】
本発明による非同期ＦＩＦＯ間順序制御方法は、第１のクロック信号に同期して動作するインタフェースと、前記第１のクロック信号とは異なる第２のクロック信号に同期して動作する記憶装置制御回路とを備えるデータ処理装置に用い、前記インタフェースに入力される要求を前記記憶装置制御回路に転送する非同期ＦＩＦＯ間順序制御方法であって、
前記データ処理装置に、前記第１及び第２のクロック信号の非同期クロック間において要求を受け渡すための非同期ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）を配設し、
前記データ処理装置が、強制されるべきオーダー関係を管理するための情報を付与する書込み制御処理と、前記強制されるべきオーダー関係を考慮した上で効率的に処理順序を組み替える読出し制御処理とを実行し、
前記非同期ＦＩＦＯを、優先度が高く先行する要求を追い越すことが可能な要求を格納するための第１の非同期ＦＩＦＯと、前記優先度が低く先行する要求を追い越すことが不可能な要求を格納するための第２の非同期ＦＩＦＯとして割り当て、前記要求を前記インタフェースへ入力した順序とは異なる順序にて前記記憶装置制御回路で処理可能としている。
【発明の効果】
【００２０】
本発明は、上記のような構成及び動作とすることで、実装面積を抑えた上で、入力された要求の処理順序を効率的に組み替えることができるという効果が得られる。
【図面の簡単な説明】
【００２１】
【図１】本発明によるデータ処理装置の構成例を示すブロック図である。
【図２】本発明の第１の実施の形態によるデータ処理装置の構成例を示すブロック図である。
【図３】図２に示す非同期ＦＩＦＯ書込み制御部の構成例を示すブロック図である。
【図４】図３に示す非同期ＦＩＦＯ書込み制御部のオーダー管理情報の生成動作を示すフローチャートである。
【図５】図２に示す非同期ＦＩＦＯ読出し制御部におけるオーダーの組み換え動作を示すフローチャートである。
【図６】本発明の第２の実施の形態によるデータ処理装置の構成例を示すブロック図である。
【図７】本発明の第３の実施の形態によるデータ処理装置の構成例を示すブロック図である。
【発明を実施するための形態】
【００２２】
次に、本発明の実施の形態について図面を参照して説明する。まず、本発明による非同期ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）間順序制御方法の概要について説明する。
【００２３】
本発明は、図１に示すように、複数のクロック信号Ａ，Ｂによって駆動されるデータ処理装置において、第１のクロック信号Ａで動くインタフェース部１１と、第１のクロック信号Ａとは異なる第２のクロック信号Ｂで動く記憶装置制御部１６とを備え、それらの間に非同期回路として２つの非同期ＦＩＦＯ（＃１，＃２）１３，１４を並列で接続し、さらに非同期ＦＩＦＯ書込み制御部１２と非同期ＦＩＦＯ読出し制御部１５とを備えている。
【００２４】
インタフェース部１１から入力された要求に対しては、非同期ＦＩＦＯ書込み制御部１２が連続したオーダー番号を付与するとともに、非同期ＦＩＦＯ（＃１，＃２）１３，１４内にすでに格納されている要求情報と新たに非同期ＦＩＦＯ（＃１，＃２）１３，１４へ書込む要求の情報とを比較してオーダー管理情報を生成することで、インタフェース部１１へ入力された順序とは異なる順序で記憶装置制御部１６が要求を処理してシステム全体の性能向上を図ることが実現可能となる。
【００２５】
本発明は、非同期ＦＩＦＯそのものを２つに分割して並列に配置し、優先度が高く先行する要求を追い越すことが可能な要求を格納するための非同期ＦＩＦＯ（＃１）１３と、優先度が低く先行する要求を追い越すことが不可能な要求を格納するための非同期ＦＩＦＯ（＃２）１４としてそれぞれ割り当てる。
【００２６】
非同期ＦＩＦＯ書込み制御部１２は、全ての要求に対してオーダー番号を付与するとともに、非同期ＦＩＦＯ（＃１）１３へこれから書込む要求の情報と、非同期ＦＩＦＯ（＃２）１４に既に格納されている要求の情報とを比較して、非同期ＦＩＦＯ（＃１）１３へこれから書込む要求が非同期ＦＩＦＯ（＃２）１４に既に格納されている要求を追い越した場合にハザードが発生する可能性があるか否かを判定する。
【００２７】
非同期ＦＩＦＯ書込み制御部１２は、ハザードが発生する可能性があると判断した場合、非同期ＦＩＦＯ（＃１）１３へ書込む要求に追い越し禁止のオーダー管理情報を付与する。非同期ＦＩＦＯ書込み制御部１２は、ハザードが発生する可能性はないと判断した場合、非同期ＦＩＦＯ（＃１）１３へ書込む要求に追い越し許可のオーダー管理情報を付与する。
【００２８】
非同期ＦＩＦＯ読出し制御部１５は、非同期ＦＩＦＯ（＃１）１３及び非同期ＦＩＦＯ（＃２）１４のどちらか片方にしか要求が格納されていない場合、その要求を記憶装置制御部１６へと出力する。
【００２９】
非同期ＦＩＦＯ読出し制御部１５は、非同期ＦＩＦＯ（＃１）１３と非同期ＦＩＦＯ（＃２）１４との両方に要求が格納されている場合、まずオーダー番号を比較する。
【００３０】
非同期ＦＩＦＯ読出し制御部１５は、オーダー番号によって非同期ＦＩＦＯ（＃１）１３から読出される要求が非同期ＦＩＦＯ（＃２）１４から読出される要求よりも先行して入力されたものであると判定される場合、非同期ＦＩＦＯ（＃１）１３の要求を記憶装置制御部１６へと出力する。
【００３１】
非同期ＦＩＦＯ読出し制御部１５は、非同期ＦＩＦＯ（＃１）１３から読出される要求が非同期ＦＩＦＯ（＃２）１４から読出される要求よりも後に入力されたものであると判定される場合、非同期ＦＩＦＯ（＃１）１３から読出しされる要求に追い越し禁止のオーダー管理情報が付与されていれば、非同期ＦＩＦＯ（＃２）１４の要求を記憶装置制御部１６へと出力する。
【００３２】
非同期ＦＩＦＯ読出し制御部１５は、非同期ＦＩＦＯ（＃１）１３から読出される要求が非同期ＦＩＦＯ（＃２）１４よりも後から入力されたものであり、かつ非同期ＦＩＦＯ（＃１）１３から読出される要求に追い越し許可のオーダー管理情報が付与されている場合、非同期ＦＩＦＯ（＃１）１３と非同期ＦＩＦＯ（＃２）１４とのどちらの要求から処理してもハザードは発生しない。
【００３３】
よって、記憶装置制御部１６側の都合を反映した上で、非同期ＦＩＦＯ（＃１）１３の要求を処理できない状態であれば非同期ＦＩＦＯ（＃２）１４の要求を、非同期ＦＩＦＯ（＃２）１４の要求を処理できない状態であれば非同期ＦＩＦＯ（＃１）１３の要求を優先することが可能となる。
【００３４】
これにより、本発明では、面積、スループット、及びレイテンシのいずれも犠牲にしない形で、効率的な処理順序の組み換え制御を実現することができる。
【００３５】
図２は本発明の第１の実施の形態によるデータ処理装置の構成例を示すブロック図である。図２において、本発明の第１の実施の形態によるデータ処理装置は、上述した図１に示すデータ処理装置と同様の構成となっている。
【００３６】
すなわち、本発明の第１の実施の形態によるデータ処理装置は、マスタ装置２から要求を受信するインタフェース部１１と、オーダー番号の付与及びオーダー管理情報の生成を行う非同期ＦＩＦＯ書込み制御部１２と、先行する要求を追い越し可能な要求を格納するための非同期ＦＩＦＯ（＃１）１３と、先行する要求を追い越し不可能な要求を格納するための非同期ＦＩＦＯ（＃２）１４と、記憶装置１８から読出したデータをインタフェース部１１へと渡すための非同期ＦＩＦＯ（＃３）１７と、非同期ＦＩＦＯ（＃１）１３及び非同期ＦＩＦＯ（＃２）１４から要求を読出しオーダーを組み替える非同期ＦＩＦＯ読出し制御部１５と、記憶装置１８への読み書きを制御する記憶装置制御部１６と、データを実際に記憶している記憶装置１８とから構成されている。
【００３７】
図３は図２に示す非同期ＦＩＦＯ書込み制御部１２の構成例を示すブロック図である。図３においては、非同期ＦＩＦＯ書込み制御部１２のオーダー管理情報の生成回路の構成を示している。すなわち、非同期ＦＩＦＯ書込み制御部１２は、デコーダ部１２１と、オーダー番号生成部１２２と、オーダー管理情報生成部１２３とを備えている。
【００３８】
インタフェース部１１から入力された要求は、デコーダ部１２１によって先行する要求を追い越し可能なものと不可能なものとに分けられる。先行する要求を追い越し可能なものは非同期ＦＩＦＯ（＃１）１３へ、先行する要求を追い越し不可能なものは非同期ＦＩＦＯ（＃２）１４へそれぞれ入力される。
【００３９】
その際、これらの要求には、オーダー番号生成部１２２によってオーダー番号が付与される。インタフェース部１１から入力された要求の情報と、非同期ＦＩＦＯ（＃２）１４に格納されている要求の情報とはオーダー管理情報生成部１２３へと入力され、オーダー管理情報生成部１２３は、これらの情報を基に、追い越し禁止、追い越し許可等のオーダー管理情報を生成する。
【００４０】
図４は図３に示す非同期ＦＩＦＯ書込み制御部１２のオーダー管理情報の生成動作を示すフローチャートである。この図４を参照して、非同期ＦＩＦＯ書込み制御部１２におけるオーダー管理情報の生成動作について説明する。
【００４１】
非同期ＦＩＦＯ書込み制御部１２は、インタフェース部１１から入力された要求及び非同期ＦＩＦＯ（＃２）１４に格納されている有効な要求のそれぞれのアクセスする記憶装置１８のデータ位置を比較する（図４ステップＳ１）。
【００４２】
データ位置は、アドレス、転送データサイズ、バースト数、バーストタイプ等の情報から計算される。その結果、１ｂｉｔでもデータ位置が一致する要求が非同期ＦＩＦＯ（＃２）１４の中に１つでもある場合（図４ステップＳ１のＹＥＳ）、非同期ＦＩＦＯ書込み制御部１２は、入力された要求に対して追い越し禁止のオーダー管理情報を付与する（図４ステップＳ４）。
【００４３】
非同期ＦＩＦＯ書込み制御部１２は、一致する要求が非同期ＦＩＦＯ４に存在しない場合（図４ステップＳ１のＮＯ）、非同期ＦＩＦＯ（＃２）１４に格納されている有効な要求に対し、後続による追い越しを拒否しているか否かを確認する（図４ステップＳ２）。
【００４４】
非同期ＦＩＦＯ書込み制御部１２は、後続による追い越しを拒否している有効な要求が存在した場合（図４ステップＳ２のＹＥＳ）、入力された要求に対して追い越し禁止のオーダー管理情報を付与する（図４ステップＳ４）。
【００４５】
非同期ＦＩＦＯ書込み制御部１２は、追い越しを拒否する有効な要求が存在しない場合（図４ステップＳ２のＮＯ）、入力された要求に対して追い越し許可のオーダー管理情報を付与する（図４ステップＳ３）。
【００４６】
図５は図２に示す非同期ＦＩＦＯ読出し制御部１５におけるオーダーの組み換え動作を示すフローチャートである。この図５を参照して、非同期ＦＩＦＯ読出し制御部１５におけるオーダーの組み換え動作について説明する。
【００４７】
非同期ＦＩＦＯ読出し制御部１５は、非同期ＦＩＦＯ（＃１）１３にのみ有効な要求がある状態か否かを確認する（図５ステップＳ１１）。非同期ＦＩＦＯ読出し制御部１５は、非同期ＦＩＦＯ（＃１）１３にのみ有効な要求がある場合（図５ステップＳ１１のＹＥＳ）、非同期ＦＩＦＯ（＃１）１３から読出された要求を記憶装置制御部１６へ出力する（図５ステップＳ１８）。
【００４８】
非同期ＦＩＦＯ読出し制御部１５は、非同期ＦＩＦＯ（＃１）１３にのみ有効な要求ある状態ではない場合（図５ステップＳ１１のＮＯ）、非同期ＦＩＦＯ（＃２）１４にのみ有効な要求がある状態か否かを確認する（図５ステップＳ１２）。
【００４９】
非同期ＦＩＦＯ読出し制御部１５は、非同期ＦＩＦＯ（＃２）１４にのみ有効な要求がある場合（図５ステップＳ１２のＹＥＳ）、非同期ＦＩＦＯ（＃２）１４から読出された要求を記憶装置制御部１６へ出力する（図５ステップＳ１７）。
【００５０】
非同期ＦＩＦＯ読出し制御部１５は、非同期ＦＩＦＯ（＃２）１４にのみ有効な要求がある状態ではない場合（図５ステップＳ１２のＮＯ）、非同期ＦＩＦＯ（＃１）１３と非同期ＦＩＦＯ（＃２）１４との両方に有効な要求があるか否かを確認する（図５ステップＳ１３）。
【００５１】
非同期ＦＩＦＯ読出し制御部１５は、両方に有効な要求がない場合（図５ステップＳ１３のＮＯ）、処理可能な要求が存在しないので、有効な要求が非同期ＦＩＦＯ（＃１）１３もしくは非同期ＦＩＦＯ（＃２）１４に格納されるまで待機する。
【００５２】
非同期ＦＩＦＯ読出し制御部１５は、両方に有効な要求がある場合（図５ステップＳ１３のＹＥＳ）、非同期ＦＩＦＯ（＃１）１３と非同期ＦＩＦＯ（＃２）１４とから読出されたそれぞれの要求のオーダー番号を比較する（図５ステップＳ１４）。
【００５３】
非同期ＦＩＦＯ読出し制御部１５は、非同期ＦＩＦＯ（＃１）１３から読出された要求のオーダー番号が非同期ＦＩＦＯ（＃２）１４から読出された要求のオーダー番号よりも小さい場合（図５ステップＳ１４のＹＥＳ）、非同期ＦＩＦＯ（＃２）１４から読出された要求が非同期ＦＩＦＯ（＃１）１３から読出された要求よりも後に非同期ＦＩＦＯ書込み制御部１２へ入力されたことを示し、非同期ＦＩＦＯ（＃２）１４に格納されている要求が先行する要求を追い越し不可能であるため、非同期ＦＩＦＯ（＃１）１３から読出された要求を先に記憶装置制御部１６へ出力することが決定される（図５ステップＳ１８）。
【００５４】
非同期ＦＩＦＯ読出し制御部１５は、非同期ＦＩＦＯ（＃１）１３から読出された要求のオーダー番号が非同期ＦＩＦＯ（＃２）１４から読出された要求のオーダー番号よりも大きい場合（図５ステップＳ１４のＮＯ）、非同期ＦＩＦＯ（＃１）１３から読出された要求のオーダー管理情報を確認する（図５ステップＳ１５）。
【００５５】
非同期ＦＩＦＯ読出し制御部１５は、非同期ＦＩＦＯ（＃１）１３から読出された要求のオーダー管理情報が追い越し禁止である場合（図５ステップＳ１５のＹＥＳ）、オーダー番号から非同期ＦＩＦＯ（＃２）１４から読出された要求が非同期ＦＩＦＯ（＃１）１３から読出された要求よりも先に非同期ＦＩＦＯ書込み制御部３へ入力されたことが示されているため、非同期ＦＩＦＯ（＃２）１４から読出された要求を先に記憶装置制御部１６へ出力することが決定される（図５ステップＳ１７）。
【００５６】
非同期ＦＩＦＯ読出し制御部１５は、非同期ＦＩＦＯ（＃１）１３から読出された要求のオーダー管理情報が追い越し許可である場合（図５ステップＳ１５のＮＯ）、記憶装置制御部１６が非同期ＦＩＦＯ（＃１）１３から読出された要求を処理可能な状態か否かを確認する（図５ステップＳ１６）。
【００５７】
上記のステップＳ１６の処理へ進んだ時点では、非同期ＦＩＦＯ（＃１）１３から読出された要求と非同期ＦＩＦＯ（＃２）１４から読出された要求との間に強制されるオーダー関係は存在しない。よって、非同期ＦＩＦＯ読出し制御部１５は、記憶装置制御部１６が非同期ＦＩＦＯ（＃１）１３から読出された要求を処理可能であるならば（図５ステップＳ１６のＹＥＳ）、非同期ＦＩＦＯ（＃１）１３から読出された要求を記憶装置制御部１６へ出力する（図５ステップＳ１８）。
【００５８】
非同期ＦＩＦＯ読出し制御部１５は、記憶装置制御部１６が非同期ＦＩＦＯ（＃１）１３から読出された要求を処理可能ではないならば（図５ステップＳ１６のＮＯ）、非同期ＦＩＦＯ（＃２）１４から読出された要求を記憶装置制御部１６へ出力する（図５ステップＳ１７）。
【００５９】
このように、本実施の形態では、複数の異なるクロック信号Ａ，Ｂに同期して動作するデータ処理装置において、単一クロックで動作する要求バッファを必要としないため、実装面積を抑えた上で、入力された要求の処理順序を効率的に組み替えることが可能となる。その理由は、並列に接続された非同期ＦＩＦＯへの書込み時点でオーダー制御情報を付与し、読出し時点においてオーダー制御情報を基に最適な処理順序を判断することができるためである。
【００６０】
図６は本発明の第２の実施の形態によるデータ処理装置の構成例を示すブロック図である。図６において、本発明の第２の実施の形態によるデータ処理装置は、設定情報保持部１９を追加した以外は、図１に示す本発明の第１の実施の形態によるデータ処理装置と同様の構成となっており、同一構成要素には同一符号を付している。
【００６１】
設定情報保持部１９からは、強制インオーダー処理の設定情報が非同期ＦＩＦＯ書込み制御部１２に対して入力される。この設定情報が有効な場合、非同期ＦＩＦＯ書込み制御部１２は、非同期ＦＩＦＯ（＃１）１３に対して常に追い越し禁止のオーダー管理情報を付与する。これによって、マスタ装置２による要求発行順序を維持したまま記憶装置制御部１６へ要求が出力される。
【００６２】
図７は本発明の第３の実施の形態によるデータ処理装置の構成例を示すブロック図である。図７において、本発明の第３の実施の形態によるデータ処理装置は、インタフェース部１１を読出しインタフェース部１１ａと書込みインタフェース部１１ｂとに分離した構成とした以外は、図１に示す本発明の第１の実施の形態によるデータ処理装置と同様の構成となっており、同一構成要素には同一符号を付している。尚、本発明の第３の実施の形態によるデータ処理装置は、図６に示す本発明の第２の実施の形態によるデータ処理装置にも適用可能である。
【００６３】
これは、ＡＭＢＡ（Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏｃｏｎｔｒｏｌｌｅｒ  Ｂｕｓ  Ａｒｃｈｉｔｅｃｔｕｒｅ）３．０で規定されるＡＸＩ（Ａｄｖａｎｃｅｄ  ｅＸｔｅｎｓｉｂｌｅ  Ｉｎｔｅｒｆａｃｅ）バス等に見られるバス構成であり、読出し要求と書込み要求とが同時に入力される場合がある。
【００６４】
非同期ＦＩＦＯ書込み制御部１２は、読出し要求と書込み要求とに１サイクルの間に連続した異なるオーダー番号を付与することができる。書込み要求は、追い越し不可能な要求として非同期ＦＩＦＯ（＃２）１４へ、読出し要求は追い越し可能な要求として非同期ＦＩＦＯ（＃１）１３へ格納される。
【００６５】
上記の実施の形態の一部又は全部は、以下の付記のようにも記載され得るが、以下の記載に限定されない。
【００６６】
［付記１］
第１のクロック信号に同期して動作するインタフェースと、前記第１のクロック信号とは異なる第２のクロック信号に同期して動作する記憶装置制御回路とを備えるデータ処理装置に用いる非同期ＦＩＦＯ間順序制御方法であって、
前記データ処理装置に、前記第１及び第２のクロック信号の非同期クロック間において要求を受け渡すための非同期ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）を配設し、
前記データ処理装置が、強制されるべきオーダー関係を管理するための情報を付与する書込み制御処理と、前記強制されるべきオーダー関係を考慮した上で効率的に処理順序を組み替える読出し制御処理とを実行し、
前記非同期ＦＩＦＯを、優先度が高く先行する要求を追い越すことが可能な要求を格納するための第１の非同期ＦＩＦＯと、前記優先度が低く先行する要求を追い越すことが不可能な要求を格納するための第２の非同期ＦＩＦＯとして割り当て、
前記書込み制御処理において、前記インタフェースを介して入力される全ての要求に対してオーダー番号を付与し、前記第１の非同期ＦＩＦＯへこれから書込む要求の情報と前記第２の非同期ＦＩＦＯに既に格納されている要求の情報とを比較し、前記第１の非同期ＦＩＦＯへこれから書込む要求が前記第２の非同期ＦＩＦＯに既に格納されている要求を追い越した場合にハザードが発生するか否かに応じて追い越し禁止または追い越し許可を前記強制されるべきオーダー関係を管理するための情報として付与することを特徴とする非同期ＦＩＦＯ間順序制御方法。
【００６７】
［付記２］
前記読出し制御処理において、前記第１の非同期ＦＩＦＯと前記第２の非同期ＦＩＦＯとの両方に要求が格納されている場合、前記オーダー番号の比較にて前記第１の非同期ＦＩＦＯから読出される要求が前記第２の非同期ＦＩＦＯから読出される要求よりも後に入力されたものでありかつ前記第１の非同期ＦＩＦＯから読出しされる要求に追い越し禁止の情報が付与されていれば前記第２の非同期ＦＩＦＯの要求を出力することを特徴とする付記１に記載の非同期ＦＩＦＯ間順序制御方法。
【００６８】
［付記３］
前記データ処理装置に、強制インオーダー処理の設定情報を保持する保持手段を設け、
前記書込み制御処理において、前記保持手段に保持された設定情報が有効な場合に前記第１の非同期ＦＩＦＯの要求に対して常に追い越し禁止の情報を付与することを特徴とする付記１または付記２に記載の非同期ＦＩＦＯ間順序制御方法。
【００６９】
［付記４］
前記インタフェースを読出しインタフェースと書込みインタフェースとに分離し、
前記書込み制御処理において、読出し要求と書込み要求とに１サイクルの間に連続した異なるオーダー番号を付与し、前記書込み要求を追い越し不可能な要求として前記第２の非同期ＦＩＦＯへ格納し、前記読出し要求を追い越し可能な要求として前記第１の非同期ＦＩＦＯへ格納することを特徴とする付記１から付記３のいずれかに記載の非同期ＦＩＦＯ間順序制御方法。
【産業上の利用可能性】
【００７０】
本発明の利用分野としては、マイクロプロセッサの周辺装置としてのメモリコントローラ等に適用可能である。
【符号の説明】
【００７１】
２  マスタ装置
１１  インタフェース部
１１ａ  読出しインタフェース部
１１ｂ  書込みインタフェース部
１２  非同期ＦＩＦＯ書込み制御部
１３  非同期ＦＩＦＯ（＃１）
１４  非同期ＦＩＦＯ（＃２）
１５  非同期ＦＩＦＯ読出し制御部
１６  記憶装置制御部
１７  非同期ＦＩＦＯ（＃３）
１８  記憶装置
１９  設定情報保持部
１２１  デコーダ部
１２２  オーダー番号生成部
１２３  オーダー管理情報生成部
【図１】
0005305472.tif 000002
【図２】
0005305472.tif 000003
【図３】
0005305472.tif 000004
【図４】
0005305472.tif 000005
【図５】
0005305472.tif 000006
【図６】
0005305472.tif 000007
【図７】
0005305472.tif 000008