(57)【要約】【課題】スループットを向上させることが可能なデータ転送制御装置を提供することを目的としている。【解決手段】本発明は、入力されたアドレスに対応したデータがキャッシュメモリ１５０に存在しないと判定された場合、このアドレスの直前に入力されたアドレスに対応したデータの出力を待たずに、このアドレスに対応したデータを読み出すためのコマンドを生成することにより、スループットを向上させる。【選択図】図２
2009217640.tif 000002
【特許請求の範囲】
【請求項１】
主記憶手段と、キャッシュ記憶手段と、
入力されたアドレスに基づき、前記主記憶手段からのデータの読み出しを指示するコマンドを生成するコマンド生成手段と、
前記アドレスと、前記アドレスに対応するデータが前記キャッシュ記憶手段に記憶されているか否を示す情報とが保存される保存手段と、を有し、
前記コマンド生成手段は、
前記保存手段に前記アドレスに対応するデータが前記キャッシュ記憶手段に存在することを示す情報が記憶されていないとき、前記アドレスが入力される直前に入力されたアドレスと対応するデータが出力される前に、前記アドレスに基づき前記コマンドを生成するデータ転送制御装置。
【請求項２】
前記保存手段に前記キャッシュ記憶手段に前記アドレスに対応するデータが存在することを示す情報が保存されていたとき、前記キャッシュ記憶手段に記憶されたデータを出力データとして選択し、
前記保存手段に前記キャッシュ記憶手段に前記アドレスに対応するデータが存在することを示す情報が保存されていないとき、前記コマンド生成手段により生成されたコマンドにより前記主記憶手段から読み出されたデータを出力データとして選択する選択手段を有する請求項１記載のデータ転送制御装置。
【請求項３】
前記主記憶手段において前記コマンドの受付が可能か否かを示す信号を受信する受信手段と、
前記受信手段により受信された信号に基づき、前記アドレスの受信が可能か否かを示す信号を生成する信号生成手段とを有する請求項１又は２記載のデータ転送制御装置。
【請求項４】
前記アドレスに対応するデータの出力が可能か否かを示す信号を受信する受信手段と、
前記受信手段により受信された信号に基づき、前記主記憶手段から読み出されたデータの受信が可能か否かを示す信号を生成する信号生成手段とを有する請求項１ないし３の何れか一項に記載のデータ転送制御装置。
【請求項５】
前記コマンド生成手段に入力された初期値に対して所定のアドレス増加分を加算し、前記コマンド生成手段に入力されるアドレスを生成するアドレス生成手段を有する請求項１ないし４の何れか一項に記載のデータ転送制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主記憶手段に対するデータの転送を制御するデータ転送制御装置に関する。
【背景技術】
【０００２】
近年では、コンピュータの主記憶装置としてＤＲＡＭ（Dynamic Random Access Memory）等が用いられることが多い。この場合、ＣＰＵ（Central Processing Unit）等の中央演算処理装置を介さずに、ＤＲＡＭ（Dynamic Random Access Memory）と周辺装置とがダイレクトにデータ交換を行う技術（以下、ＤＭＡ（Direct Memory Access））がある。
【０００３】
ＤＭＡでは、主記憶装置であるＤＲＡＭはデータ転送制御装置（以下、ＤＭＡコントローラ）を介して周辺装置等と接続されており、ＤＭＡコントローラを介してＤＲＡＭと周辺装置とが直接データ交換を行う。この場合ＤＭＡコントローラは、周辺装置からデータの取得要求を受けて、ＤＲＡＭに対してデータを取得するためのコマンドを発行する。そしてＤＭＡコントローラは、コマンドに基づきＤＲＡＭから読み出されたデータを取得し、周辺装置へ取得したデータを供給する。このときＤＭＡコントローラにおいて、通常コマンドを発行してからＤＲＡＭにアクセスしてデータが取得するまでには一定の遅延時間（レイテンシ）がある。よってシングル転送が繰り返し行われるシステムでは、スループットの低下が問題となっていた。
【０００４】
そこでこの問題を解決するため、キャッシュメモリによるキャッシュ機能が利用されている。即ち入力されたアドレスに対応するデータがキャッシュメモリに存在している場合には、キャッシュメモリに記憶されたキャッシュデータを出力データとして出力することで、ＤＲＡＭへのアクセスを省略し、スループットの向上を図っている。
【０００５】
図１は、キャッシュ機能を用いたＤＭＡコントローラの動作を説明するタイミングチャートである。
【０００６】
始めに図１に示す各信号について説明する。図１のアドレスは、ＤＭＡコントローラの外部から入力されるＤＲＡＭアドレスである。アドレスＶａｌｉｄは、アドレスが有効であることを示す信号である。ＤＲＡＭコマンドは、アドレスに加えて、バースト長や、リード・ライト情報などが含まれる。ＤＲＡＭデータＶａｌｉｄは、ＤＲＡＭリードデータが有効であることを示す。ＤＲＡＭリードデータは、ＤＲＡＭから読み出されたデータである。出力データは、ＤＲＡＭリードデータ又はキャッシュデータからアドレスによって選択されてＤＭＡコントローラから外部へ出力されるデータである。データＶａｌｉｄは、ＤＭＡコントローラから出力されるデータが有効であることを示す信号である。
【０００７】
次に動作について説明する。ＤＭＡコントローラは、アドレスＡ１を取得すると、ＤＲＡＭコマンドＣ１を発行する。ＤＲＡＭコントローラは、ＤＲＡＭコマンドに基づき、ＤＲＡＭリードデータＲＤ１を読み出してＤＭＡコントローラに出力する。このときＤＭＡコントローラでは、コマンド発行からリードデータ取得までは、数〜数十サイクルのレイテンシを要する。
【０００８】
次にキャッシュ機能を用いた場合の動作説明を行う。ＤＭＡコントローラは、アドレスＡ２を取得した際に、キャッシュメモリに保存されているアドレスと比較を行う。そしてキャッシュメモリにアドレスＡ２と対応するデータが存在（キャッシュヒット）していることが判明した場合、ＤＭＡコントローラはＤＲＡＭコマンドを発行せずに、キャッシュメモリから、アドレスＡ２と対応したデータＤ２を選択して出力する。よってキャッシュヒットした場合、ＤＲＡＭアクセスのレイテンシが発生せずアクセス効率を向上させることが可能である。このためスループットを向上させることができる。例えば１０個のアドレスに対して１０回シングル転送する場合を考え、ＤＲＡＭアクセスのレイテンシをｎサイクル、キャッシュヒット回数が５回だったとすると、キャッシュ機能がない回路の場合、データの転送に１０ｎサイクルかかるが、キャッシュ機能を利用した場合は、５ｎ＋５サイクルで処理が完了する。
【０００９】
このようにキャッシュ機能を用いれば、スループットを向上させることができる。例えば特許文献１には、キャッシュ機能を用いて有効にＤＭＡ動作を行わせるコンピュータシステム及びキャッシュ制御手段におけるキャッシュ制御方法が記載されている。
【特許文献１】特開平６−１６１８９１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記従来のキャッシュ機能を利用したＤＭＡコントローラでは、入力されたアドレスと対応するデータがキャッシュメモリに存在するか否かを判定し、判定結果に基づきデータを出力するまでの処理をシリアルに実行しているため、キャッシュヒットしていない場合は、ＤＲＡＭコマンドが発行されてからデータ出力までに待ち時間が発生し、スループット向上率が低いという問題があった。
【００１１】
本発明は、上記事情を鑑みてこれを解決すべくなされたものであり、スループットを向上させることが可能なデータ転送制御装置を提供することを目的としている。
【課題を解決するための手段】
【００１２】
本発明は、上記目的を達成するために、以下の如き構成を採用した。
【００１３】
本発明のデータ転送制御装置は、主記憶手段と、キャッシュ記憶手段と、入力されたアドレスに基づき、前記主記憶手段からのデータの読み出しを指示するコマンドを生成するコマンド生成手段と、前記アドレスと、前記アドレスに対応するデータが前記キャッシュ記憶手段に記憶されているか否を示す情報とが保存される保存手段と、を有し、前記コマンド生成手段は、前記保存手段に前記アドレスに対応するデータが前記キャッシュ記憶手段に存在することを示す情報が記憶されていないとき、前記アドレスが入力される直前に入力されたアドレスと対応するデータが出力される前に、前記アドレスに基づき前記コマンドを生成する構成とした。
【００１４】
また本発明のデータ転送制御装置は、前記保存手段に前記キャッシュ記憶手段に前記アドレスに対応するデータが存在することを示す情報が保存されていたとき、前記キャッシュ記憶手段に記憶されたデータを出力データとして選択し、前記保存手段に前記キャッシュ記憶手段に前記アドレスに対応するデータが存在することを示す情報が保存されていないとき、前記コマンド生成手段により生成されたコマンドにより前記主記憶手段から読み出されたデータを出力データとして選択する選択手段を有する構成としても良い。
【００１５】
また本発明のデータ転送制御装置は、前記主記憶手段において前記コマンドの受付が可能か否かを示す信号を受信する受信手段と、前記受信手段により受信された信号に基づき、前記アドレスの受信が可能か否かを示す信号を生成する信号生成手段とを有する構成としても良い。
【００１６】
また本発明のデータ転送制御装置は、前記アドレスに対応するデータの出力が可能か否かを示す信号を受信する受信手段と、前記受信手段により受信された信号に基づき、前記主記憶手段から読み出されたデータの受信が可能か否かを示す信号を生成する信号生成手段とを有する構成としても良い。
【００１７】
また本発明のデータ転送制御装置は、前記コマンド生成手段に入力された初期値に対して所定のアドレス増加分を加算し、前記コマンド生成手段に入力されるアドレスを生成するアドレス生成手段を有する構成としても良い。
【発明の効果】
【００１８】
本発明によれば、スループットを向上させることが可能となる。
【発明を実施するための最良の形態】
【００１９】
本発明では、入力されたアドレスに対応したデータがキャッシュ記憶手段に存在しないと判定された場合、このアドレスの直前に入力されたアドレスに対応したデータの出力を待たずに、このアドレスに対応したデータを読み出すためのコマンドを生成することにより、スループットを向上させる。
（第一の実施形態）
以下に図面を参照して本発明の第一の実施形態について説明する。図２は、第一の実施形態のＤＭＡコントローラ１００を説明する図である。
【００２０】
本実施形態のＤＭＡコントローラ１００は、ＤＲＡＭ２００を主記憶装置とするコンピュータ等において、中央演算処理装置（以下、ＣＰＵ）を介さずにＤＲＡＭ２００と周辺装置３００との間のデータ通信を実現させるための制御を行う。
【００２１】
ＤＭＡコントローラ１００は、ＤＲＡＭコントローラ２１０を介してＤＲＡＭ２００と接続されている。またＤＭＡコントローラ１００は、周辺装置３００と接続されている。本実施形態のＤＭＡコントローラ１００は、周辺装置３００からアドレスが入力されると、入力されたアドレスと対応したデータをＤＲＡＭ２００から読み出して周辺装置３００へ出力する。
【００２２】
以下にＤＭＡコントローラ１００の詳細を説明する。
【００２３】
本実施形態のＤＭＡコントローラ１００は、キャッシュ比較部１１０、コマンド生成回路１２０、キャッシュ情報保存回路１３０、選択回路１４０、キャッシュメモリ１５０、セレクタ１６０を有する。
【００２４】
キャッシュ比較部１１０は、周辺装置３００から入力されるアドレス（以下、入力アドレス）と後述するキャッシュ情報保存回路１３０内のアドレスとの比較を行い、キャッシュメモリ１５０内に入力アドレスと対応するデータが存在する（キャッシュヒット）か否かを判定する。
【００２５】
コマンド生成回路１２０は、後述するＤＲＡＭコマンドを生成するか否かを決定する。コマンド生成回路１２０は、ＤＲＡＭコマンドの生成を決定すると、入力アドレスに基づき、ＤＲＡＭコマンドを生成し、ＤＲＡＭコントローラ２１０に対して生成したＤＲＡＭコマンドを発行する。尚本実施形態のＤＲＡＭコマンドとは、ＤＲＡＭ２００からのデータの読み出しを指示するコマンドであり、ＤＲＡＭアドレス、バースト長（１回のアドレス指定により連続的に読み出されるワード数）、リード・ライト選択情報等が含まれる。
【００２６】
キャッシュ情報保存回路１３０は、周辺装置３００からの入力アドレスと、入力アドレスと対応したデータがキャッシュメモリ１５０に存在するか否かを示す情報（キャッシュヒットフラグ）とが保存されている。より具体的には、キャッシュ情報保存回路１３０は、入力アドレスと、入力アドレスに対応したキャッシュヒットフラグを保存するＦＩＦＯ（First In, First Out）回路である。
【００２７】
選択回路１４０は、周辺装置３００に対して出力するデータ（出力データ）を選択する。具体的には選択回路１４０は、キャッシュ情報保存回路１３０においてキャッシュヒットを示すキャッシュヒットフラグが立っていたとき、キャッシュメモリ１５０に記憶された入力アドレスと対応したデータを出力データとして選択する。また本実施形態の選択回路１４０は、キャッシュ情報保存回路１３０においてキャッシュヒットフラグが立っていないとき、ＤＲＡＭコントローラ２１０を介してＤＲＡＭ２００から読み出されたデータを出力データとして選択する。
【００２８】
キャッシュメモリ１５０は、ＤＲＡＭコントローラ２１０により一度ＤＲＡＭ２００から読み出されたデータを一時的に記憶する記憶手段である。セレクタ１６０は、選択回路１４０から出力される信号に基づき、出力データを選択して出力する。具体的には例えば、選択回路１４０において、キャッシュメモリ１５０に記憶されたデータを選択する信号がＨレベルの信号として出力される場合、セレクタ１６０はＨレベルの信号が入力されたとき、キャッシュメモリ１５０からのデータを選択し出力しても良い。またセレクタ１６０は、選択回路１４０からＬレベルの信号が入力されたとき、ＤＲＡＭコントローラ２１０から出力されるＤＲＡＭ２００から読み出されたデータを選択して出力しても良い。
【００２９】
以下に図３を参照して、本実施形態のＤＭＡコントローラ１００の動作について説明する。図３は、第一の実施形態のＤＭＡコントローラ１００の動作を説明する図である。図３（Ａ）は、ＤＭＡコントローラ１００の動作を示すタイミングチャートであり、図３（Ｂ）はキャッシュ情報保存回路１３０を説明する図である。
【００３０】
本実施形態のＤＭＡコントローラ１００において、コマンド生成回路１２０は、入力アドレスに対応するデータがキャッシヒットしなかった場合、この入力アドレスの前の入力アドレスに対応するデータの読み出しを待たずにコマンドを生成する。
【００３１】
始めに図３（Ａ）に示す各信号について説明する。図３（Ａ）に示すクロックは、ＤＭＡコントローラ１００、ＤＲＡＭコントローラ２１０、周辺装置３００に共通して供給される動作クロックである。図３（Ａ）に示すアドレスＶａｌｉｄは、周辺装置３００からＤＭＡコントローラ１００へ入力される入力アドレスが有効か否かを示す信号である。本実施形態では、アドレスＶａｌｉｄがＨレベルのときの入力アドレスを有効とした。
【００３２】
図３（Ａ）に示すアドレスは、周辺装置３００から入力される入力アドレスであり、コマンド生成回路１２０におけるコマンド生成に用いられる。図３（Ａ）に示すＤＲＡＭコマンドは、コマンド生成回路１２０において生成されたコマンドを示し、ＤＲＡＭコントローラ２１０へ供給される。図３（Ａ）に示すＤＲＡＭデータＶａｌｉｄは、ＤＲＡＭコントローラ２１０を介してＤＲＡＭ２００から読み出されたデータが有効か否かを示す信号である。本実施形態では、ＤＲＡＭデータＶａｌｉｄがＨレベルであるとき、ＤＲＡＭ２００から読み出されたデータを有効とした。
【００３３】
図３（Ａ）に示すＤＲＡＭリードデータは、ＤＲＡＭコントローラ２１０によりＤＲＡＭ２００から読み出されたデータを示す。ＤＲＡＭリードデータは、ＤＭＡコントローラ１００に入力される。図３（Ａ）に示すキャッシュは、キャッシュメモリ１５０から読み出されたデータ（以下、キャッシュデータ）を示す。尚本実施形態のＤＭＡコントローラ１００では、一度ＤＲＡＭコントローラ２１０からＤＲＡＭリードデータを取得したら、取得したＤＲＡＭリーダデータをキャッシュメモリ１５０に記憶させるものとした。
【００３４】
図３（Ａ）に示す出力データは、ＤＭＡコントローラ１００においてセレクタ１６０から出力されたデータであり、ＤＭＡコントローラ１００から周辺装置３００へ出力されるデータを示す。図３（Ａ）に示すデータＶａｌｉｄは、出力データが有効か否かを示す信号である。本実施形態では、データＶａｌｉｄがＨレベルのとき出力データを有効とした。
【００３５】
次にＤＭＡコントローラ１００の動作を説明する。
【００３６】
ＤＭＡコントローラ１００が、サイクルＴ１において、入力アドレスＡ１を受け取ると、コマンド生成回路１２０は次のサイクルＴ２で入力アドレスＡ１に基づきＤＲＡＭコマンドＣ１を生成し、ＤＲＡＭコントローラ２１０に対して発行する。このときＤＭＡコントローラ１００では、同じサイクルＴ２で次の入力アドレスＡ２を受け取り可能である。サイクルＴ２においてキャッシュ比較部１１０は、入力アドレスＡ２とキャッシュ情報保存回路１３０内のアドレスとを比較し、キャッシュヒットを判定する。ここでキャッシュ情報保存回路１３０内に入力アドレスＡ２に対応するアドレスが存在した場合、コマンド生成回路１２０はＤＲＡＭコマンドを生成しない。
【００３７】
尚本実施形態のキャッシュ情報保存回路１３０において、入力アドレスとキャッシュヒットフラグは、入力アドレスを受信したサイクルの順に（図３では、Ｔ１、Ｔ２、Ｔ４）に保存される。
【００３８】
以下に図３（Ｂ）を参照してキャッシュ情報保存回路１３０について説明する。
【００３９】
本実施形態のキャッシュ情報保存回路１３０を実現するＦＩＦＯ回路は、先投げ可能なＤＲＡＭコマンド数と同等の深さを持つ。即ち本実施形態のキャッシュ情報保存回路１３０は、コマンド生成回路１２０が一のコマンドを生成してからＤＲＡＭ２００からデータを読み出すまでに出力できる他のコマンドの数と同様の深さを有するものとした。
【００４０】
例えばサイクルＴ４の時点では、ＤＭＡコントローラ１００は、周辺装置３００から３つの入力アドレスＡ１、Ａ２、Ａ３を受信したため、キャッシュ情報保存回路１３０の中には３つの入力アドレスと、それぞれの入力アドレスに対応したキャッシュフラグが格納されている。
【００４１】
ＤＭＡコントローラ１００は、図３（Ａ）に示すように、数〜数十サイクルのレイテンシの後、サイクルＴ５において入力アドレスＡ１に対応するＤＲＡＭリードデータＲＤ１を取得する。そしてＤＭＡコントローラ１００は、キャッシュメモリ１５０を更新すると同時に出力データＤ１を周辺装置３００へ出力する。
【００４２】
またサイクルＴ５において、ＤＭＡコントローラ１００は、キャッシュ比較部１１０によりキャッシュ情報保存回路１３０に格納された情報から入力アドレスＡ２に対応するキャッシュデータＣＤ１がキャッシュメモリ１５０に存在することを判定する。具体的にはキャッシュ比較部１１０は、キャッシュ情報保存回路１３０に格納された入力アドレスＡ２に対応したキャッシュフラグを参照し、キャッシュフラグが立っていた場合に、キャッシュヒットと判定する。キャッシュヒットと判定されると、ＤＭＡコントローラ１００は、サイクルＴ６においてキャッシュメモリ１５０から入力アドレスＡ２に対応する出力データＤ２を周辺装置３００へ出力する。
【００４３】
次にＤＭＡコントローラ１００は、キャッシュ比較部１１０により、入力アドレスＡ３に対応するデータがキャッシュメモリ１５０に存在するか否かを判定する。すなわちキャッシュ比較部１１０は、キャッシュ情報保存回路１３０に格納された入力アドルスＡ３に対応したキャッシュフラグを参照する。図３（Ｂ）に示す例では、入力アドレスＡ３に対応するキャッシュフラグは立っていない。よってキャッシュ情報保存回路１３０はキャッシュヒットと判定しない。
【００４４】
コマンド生成回路１２０は、この判定を受けてサイクルＴ４で入力アドレスＡ３に基づきＤＲＡＭコマンドＣ３を生成し、ＤＲＡＭコントローラ２１０へ発行する。ＤＲＡＭコントローラ２１０は、ＤＲＡＭコマンドＣ３を受けてＤＲＡＭ２００からＤＲＡＭリードデータＲＤ３を読み出しＤＭＡコントローラ１００へ出力する。ＤＭＡコントローラ１００は、ＤＲＡＭリードデータＲＤ３を取得し、サイクルＴ７で出力データＤ３を周辺装置３００へ出力する。
【００４５】
このように本実施形態のＤＭＡコントローラ１００では、周辺装置３００から入力された入力アドレスと対応した出力データを出力する前に、次に入力された入力アドレスに対応した出力データを読み出すためのコマンドを生成する。本実施形態では、この構成によりコマンドを生成する処理と出力データを読み出す処理とを独立して行うことができ、パイプライン的に処理を行うことができるので、スループットを向上させることができる。
【００４６】
また、以下にレイテンシの変動分のオーバーヘッドを考慮した場合について説明する。
【００４７】
まず本実施形態におけるレイテンシの変動分のオーバーヘッドについて説明する。図４は、レイテンシの変動分のオーバーヘッドについて説明する図である。
【００４８】
図４（Ａ）は、コマンド生成回路１２０によりコマンドを発行した後、このコマンドに対応した出力データが読み出されるまで次のコマンドを発行しない場合（コマンド先投げなし）の例を示している。図４（Ｂ）は、コマンド生成回路１２０が、出力データの読み出しを待たずにコマンドを発行した場合の例（コマンド先投げあり）を示しており、図４（Ｃ）は、コマンド先投げありの別の例を示している。
【００４９】
コマンド生成回路１２０により、出力データの読み出しを待たずに連続してコマンドを発行した場合、図４（Ｂ）に示すように出力データも連続して読み出されることが理想的である。しかしながら、コマンドを連続して発行した場合、実際には図４（Ｃ）に示すように出力データの読み出しの際に数サイクルの遅延（ｍ１、ｍ２）が発生することがある。本実施形態では、この出力データの読み出しの際に生じる遅延をレイテンシの変動分のオーバーヘッドと定義した。
【００５０】
本実施形態では、発行するコマンドの回数をｉ、コマンド発行から出力データの読み出しまでのレイテンシをｎ、レイテンシの変動分のオーバーヘッドをｍｊ（０≦ｍ＜ｎ，ｊ＝０，１，・・・，ｉ）とすると、コマンド先投げありの場合に必要なサイクルは、（ｎ＋（ｍ１＋ｍ２＋・・・＋ｍｊ）＋（ｎ−１））となる。したがって、本実施形態においてレイテンシの変動分のオーバーヘッドを考慮した場合にも、スループットが向上していることがわかる。
（第二の実施形態）
以下に図面を参照して本発明の第二の実施形態について説明する。本発明の第二の実施形態では、入力アドレスの受信を制御する点、出力データの出力を制御する点が第一の実施形態と相違する。よって以下の本実施形態の説明では、第一の実施形態との相違点についてのみ説明し、第一の実施形態と同様の機能構成を有するものには第一の実施形態の説明で用いた符号と同様の符号を付与し、その説明を省略する。
【００５１】
図５は、第二の実施形態のＤＭＡコントローラ１００Ａを説明する図である。
【００５２】
ＤＭＡコントローラ１００Ａでは、第一の実施形態のＤＭＡコントローラ１００の有する各構成の加え、ウエイト制御回路１７０を有する。ウエイト制御回路１７０は、周辺装置３００から入力されるデータ受信ＲＤＹ信号を受けて、ＤＲＡＭデータ受信ＲＤＹ信号を生成し、ＤＲＡＭコントローラ２１０へ出力する。尚周辺装置３００から入力されるデータ受信ＲＤＹは、周辺装置３００が出力データを受信可能な状態であることを示す信号である。またＤＲＡＭデータ受信ＲＤＹ信号は、ウエイト制御回路１７０がＤＲＡＭ２００から読み出されたＤＲＡＭデータを受信可能であることを示す信号である。よって本実施形態のウエイト制御回路１７０は、ＤＭＡコントローラ１００Ａの外部の装置（周辺装置３００等）において出力データを受信可能な状態となったとき、ＤＲＡＭコントローラ２１０へＤＲＡＭデータの受信可能な状態であることを通知することができる。
【００５３】
また本実施形態のコマンド生成回路１２０Ａは、周辺装置３００から入力される入力アドレスの受信を制御することができる。具体的には例えば、本実施形態のコマンド生成回路１２０Ａは、ＤＲＡＭコントローラ２１０から入力されるＢＵＳＹ信号に基づきアドレス受信ＲＤＹ信号を生成し、周辺装置３００へ出力する。尚ＢＵＳＹ信号とは、ＤＭＡコントローラ２１０から出力される信号であり、ＤＲＡＭコントローラ２１０がＤＲＡＭコマンドの受付が可能か否かを示す信号である。本実施形態のＤＭＡコントローラ１００Ａは、ＤＲＡＭコントローラ２１０からＢＵＳＹ信号が出力されている場合、ＤＲＡＭコマンドをＤＲＡＭコントローラ２１０へ出力しない。またアドレス受信ＲＤＹ信号は、ＤＭＡコントローラ１００Ａにおいて入力アドレスの受信が可能か否かを示す信号である。
【００５４】
本実施形態のコマンド生成回路１２０Ａは、ＤＲＡＭコントローラ２１０からＢＵＳＹ信号が出力されていないとき、周辺装置３００に対してアドレス受信ＲＤＹ信号を出力し、入力アドレスの受信を行う。またコマンド生成回路１２０Ａは、ＤＲＡＭコントローラ２１０からＢＵＳＹ信号が出力されているとき、周辺装置３００に対するアドレス受信ＲＤＹ信号を停止し、入力アドレスの受信を一時停止する。
【００５５】
以下に図６を参照して本発明の第二の実施形態のＤＭＡコントローラ１００Ａの動作を説明する。図６は、第二の実施形態のＤＭＡコントローラ１００Ａの動作を説明するタイミングチャートである。
【００５６】
本実施形態のＤＭＡコントローラ１００Ａでは、サイクルＴ３においてＢＵＳＹ信号がアサートされているため、コマンド生成回路１２０Ａはアドレス受信ＲＤＹ信号を生成して出力する。サイクルＴ３においてアドレス受信ＲＤＹ信号がネゲートされると、コマンド生成回路１２０Ａにおいて入力アドレスＡ３を受信するための期間は、サイクルＴ４まで引き延ばされる。
【００５７】
また、このときＢＵＳＹ信号がアサートされているため、入力アドレスＡ３の前に入力された入力アドレスＡ２から生成するＤＲＡＭコマンドＣＤ２を出力する期間もサイクルＴ４まで引き延ばされる。サイクルＴ４では、アドレス受信ＲＤＹ信号がアサートされ、ＢＵＳＹ信号がネゲートされている。よってサイクルＴ４においてコマンド生成回路１２０Ａは入力アドレスＡ３を受信し、入力アドレスＡ３に対応したＤＲＡＭコマンドＣ３を生成し、サイクルＴ４の次のサイクルでＤＲＡＭコマンドＣ３を出力する。
【００５８】
また図６に示すサイクル７では、ＤＲＡＭデータ受信ＲＤＹ信号と、データ受信ＲＤＹ信号とがネゲートされている。よってＤＭＡコントローラ１００ＡがＤＲＡＭリードデータＲＤを取得するまでの期間はサイクルＴ８まで引き延ばされる。同様にＤＭＡコントローラ１００Ａから出力テータＤ２が出力されるまでの期間もサイクルＴ８まで引き延ばされる。
【００５９】
このように本実施形態のＤＭＡコントローラ１００Ａでは、入力アドレスの受信及び出力データの出力を一時的に停止させることができる。よって本実施形態のＤＭＡコントローラ１００Ａでは、例えばＤＭＡコントローラ１００Ａに接続されたＤＲＡＭコントローラ２１０の状態や周辺装置３００の装置の状態等に応じてデータの転送を一時的に停止させることができ、ＤＭＡコントローラ１００Ａの汎用性を高めることができる。
（第三の実施形態）
以下に図面を参照して本発明の第三の実施形態について説明する。本発明の第三の実施形態は、コマンド生成回路１２０に入力される入力アドレスを生成するアドレス生成回路を有する点で第一の実施形態と相違する。よって以下の本実施形態の説明においては第一の実施形態との相違点についてのみ説明し、第一の実施形態と同様の機能構成を有するものには第一の実施形態の説明で用いた符号と同様の符号を付与し、その説明を省略する。
【００６０】
図７は、第三の実施形態のＤＭＡコントローラ１００Ｂを説明する図である。本実施形態のＤＭＡコントローラ１００Ｂは、第一の実施形態のＤＭＡコントローラ１００の有する各構成に加え、アドレス生成回路１８０を有する。
【００６１】
本実施形態のＤＭＡコントローラ１００Ｂでは、アドレス生成回路１８０を有することにより、入力アドレスのパターンが規則的である場合に入力アドレスを生成することができる。
【００６２】
本実施形態のアドレス生成回路１８０には、周辺装置３００から予め設定されたアドレスオフセットと、ワード数とが入力される。アドレス生成回路１８０は、入力されたアドレスオフセット及びワード数を用いて入力アドレスを生成する。
【００６３】
具体的にはアドレス生成回路１８０は、周辺装置３００から初期値として入力アドレスを１つ取得し、取得した初期値にアドレス加算値を示すアドレスオフセットを加算する。この加算処理をワード数分繰り返して入力アドレスを生成する。このように入力アドレスを生成すれば、ＤＭＡコントローラ１００Ｂにおいて入力アドレスを生成することができる。
【００６４】
尚本実施形態で説明したアドレス生成回路１８０は、第二の実施形態のＤＭＡコントローラ１００Ａにも適用することができる。
【００６５】
以上、各実施形態に基づき本発明の説明を行ってきたが、上記実施形態に示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することができ、その応用形態に応じて適切に定めることができる。
【図面の簡単な説明】
【００６６】
【図１】キャッシュ機能を用いたＤＭＡコントローラの動作を説明するタイミングチャートである。
【図２】第一の実施形態のＤＭＡコントローラ１００を説明する図である。
【図３】第一の実施形態のＤＭＡコントローラ１００の動作を説明する図である。
【図４】レイテンシの変動分のオーバーヘッドについて説明する図である。
【図５】第二の実施形態のＤＭＡコントローラ１００Ａを説明する図である。
【図６】第二の実施形態のＤＭＡコントローラ１００Ａの動作を説明するタイミングチャートである。
【図７】第三の実施形態のＤＭＡコントローラ１００Ｂを説明する図である。
【符号の説明】
【００６７】
１００、１００Ａ、１００Ｂ  ＤＭＡコントローラ
１１０  キャッシュ比較部
１２０、１２０Ａ  コマンド生成回路
１３０  キャッシュ情報保存回路
１４０  選択回路
１５０  キャッシュメモリ
２００  ＤＲＡＭ
２１０  ＤＲＡＭコントローラ
【図１】
2009217640.tif 000003
【図２】
2009217640.tif 000004
【図３】
2009217640.tif 000005
【図４】
2009217640.tif 000006
【図５】
2009217640.tif 000007
【図６】
2009217640.tif 000008
【図７】
2009217640.tif 000009