(57)【特許請求の範囲】
【請求項１】
バスを介して接続された同期型メモリと入出力メモリとに対するダイレクト・メモリ・アクセス制御システムにおいて，
前記同期型メモリと入出力メモリ間で前記バスを介してデータの転送を命じるフライバイ転送命令を発行するダイレクト・メモリ・アクセス・コントローラと，
前記フライバイ転送命令を受信して，前記同期型メモリに第１のアクセスコマンドを供給するメモリインターフェースと，
前記フライバイ転送命令を受信して，前記入出力メモリに第２のアクセスコマンドを供給する入出力インターフェースとを有し，
前記入出力インターフェースは，前記入出力メモリが書き込み可能タイミング又は読み出しデータ有効タイミングを知らせる第１の状態信号を前記メモリインターフェースに供給し，
前記メモリインターフェースは，前記同期型メモリが読み出しデータ有効タイミング又は書き込み可能タイミングを知らせる第２の状態信号を前記入出力インターフェースに供給し，
前記第１及び第２の状態信号による前記タイミングのうち，いずれか遅いタイミングまで，前記メモリインターフェースと入出力インターフェースとが，それぞれの読み出しデータ有効状態及び書き込み可能状態を維持し，
前記同期型メモリから入出力メモリへのフライバイ転送時に，前記メモリインターフェースは，前記同期型メモリへのクロック入力を制御するクロックイネーブル信号をネゲートして前記読み出しデータ有効状態を維持し，前記第１の状態信号が示すタイミングまで前記読み出しデータ有効状態を維持すると共に，前記第１の状態信号が示すタイミングで，前記クロックイネーブル信号をアサートし，当該アサート後に前記読み出しデータ有効状態を終了することを特徴とするダイレクト・メモリ・アクセス制御システム。
【請求項２】
バスを介して接続された同期型メモリと入出力メモリとに対するダイレクト・メモリ・アクセス制御システムにおいて，
前記同期型メモリと入出力メモリ間で前記バスを介してデータの転送を命じるフライバイ転送命令を発行するダイレクト・メモリ・アクセス・コントローラと，
前記フライバイ転送命令を受信して，前記同期型メモリに第１のアクセスコマンドを供給するメモリインターフェースと，
前記フライバイ転送命令を受信して，前記入出力メモリに第２のアクセスコマンドを供給する入出力インターフェースとを有し，
前記入出力インターフェースは，前記入出力メモリが書き込み可能タイミング又は読み出しデータ有効タイミングを知らせる第１の状態信号を前記メモリインターフェースに供給し，
前記メモリインターフェースは，前記同期型メモリが読み出しデータ有効タイミング又は書き込み可能タイミングを知らせる第２の状態信号を前記入出力インターフェースに供給し，
前記第１及び第２の状態信号による前記タイミングのうち，いずれか遅いタイミングまで，前記メモリインターフェースと入出力インターフェースとが，それぞれの読み出しデータ有効状態及び書き込み可能状態を維持し，
前記同期型メモリから入出力メモリへのフライバイ転送時に，前記入出力インターフェースは，前記入出力メモリへの書き込みを命令する入出力ライト信号をアサートし，前記第２の状態信号が示すタイミングまで前記入出力ライト信号のアサートを維持することを特徴とするダイレクト・メモリ・アクセス制御システム。
【請求項３】
バスを介して接続された同期型メモリと入出力メモリとに対するダイレクト・メモリ・アクセス制御システムにおいて，
前記同期型メモリと入出力メモリ間で前記バスを介してデータの転送を命じるフライバイ転送命令を発行するダイレクト・メモリ・アクセス・コントローラと，
前記フライバイ転送命令を受信して，前記同期型メモリに第１のアクセスコマンドを供給するメモリインターフェースと，
前記フライバイ転送命令を受信して，前記入出力メモリに第２のアクセスコマンドを供給する入出力インターフェースとを有し，
前記入出力インターフェースは，前記入出力メモリが書き込み可能タイミング又は読み出しデータ有効タイミングを知らせる第１の状態信号を前記メモリインターフェースに供給し，
前記メモリインターフェースは，前記同期型メモリが読み出しデータ有効タイミング又は書き込み可能タイミングを知らせる第２の状態信号を前記入出力インターフェースに供給し，
前記第１及び第２の状態信号による前記タイミングのうち，いずれか遅いタイミングまで，前記メモリインターフェースと入出力インターフェースとが，それぞれの読み出しデータ有効状態及び書き込み可能状態を維持し，
前記入出力メモリから同期型メモリへのフライバイ転送時に，前記メモリインターフェースは，前記第１の状態信号が示すタイミングで前記同期型メモリへのライトコマンドを発行することを特徴とするダイレクト・メモリ・アクセス制御システム。
【請求項４】
バスを介して接続された同期型メモリと入出力メモリとに対するダイレクト・メモリ・アクセス制御システムにおいて，
前記同期型メモリと入出力メモリ間で前記バスを介してデータの転送を命じるフライバイ転送命令を発行するダイレクト・メモリ・アクセス・コントローラと，
前記フライバイ転送命令を受信して，前記同期型メモリに第１のアクセスコマンドを供給するメモリインターフェースと，
前記フライバイ転送命令を受信して，前記入出力メモリに第２のアクセスコマンドを供給する入出力インターフェースとを有し，
前記入出力インターフェースは，前記入出力メモリが書き込み可能タイミング又は読み出しデータ有効タイミングを知らせる第１の状態信号を前記メモリインターフェースに供給し，
前記メモリインターフェースは，前記同期型メモリが読み出しデータ有効タイミング又は書き込み可能タイミングを知らせる第２の状態信号を前記入出力インターフェースに供給し，
前記第１及び第２の状態信号による前記タイミングのうち，いずれか遅いタイミングまで，前記メモリインターフェースと入出力インターフェースとが，それぞれの読み出しデータ有効状態及び書き込み可能状態を維持し，
前記入出力メモリから同期型メモリへのフライバイ転送時に，前記入出力インターフェースは，前記入出力メモリへの読み出しを命令する入出力リード信号をアサートし，前記第２の状態信号が示すタイミングまで前記入出力リード信号のアサートを維持することを特徴とするダイレクト・メモリ・アクセス制御システム。
【請求項５】
バスを介して接続された同期型メモリと入出力メモリとに対するダイレクト・メモリ・アクセス制御システムにおいて，
前記同期型メモリと入出力メモリ間で前記バスを介してデータの転送を命じるフライバイ転送命令を発行するダイレクト・メモリ・アクセス・コントローラと，
前記フライバイ転送命令を受信して，前記同期型メモリに第１のアクセスコマンドを供給するメモリインターフェースと，
前記フライバイ転送命令を受信して，前記入出力メモリに第２のアクセスコマンドを供給する入出力インターフェースとを有し，
前記入出力インターフェースは，前記入出力メモリが書き込み可能タイミング又は読み出しデータ有効タイミングを知らせる第１の状態信号を前記メモリインターフェースに供給し，
前記メモリインターフェースは，前記同期型メモリが読み出しデータ有効タイミング又は書き込み可能タイミングを知らせる第２の状態信号を前記入出力インターフェースに供給し，
前記第１及び第２の状態信号による前記タイミングのうち，いずれか遅いタイミングまで，前記メモリインターフェースと入出力インターフェースとが，それぞれの読み出しデータ有効状態及び書き込み可能状態を維持し，
前記同期型メモリから入出力メモリへ複数のデータを連続してフライバイ転送する時に，前記メモリインターフェースは，前記第２のアクセスコマンドとしてバースト読み出しを命令し，２番目以降の読み出しデータ出力に対して，前記クロックイネーブル信号をネゲートして，前記読み出しデータ有効状態を維持し，前記第１の状態信号が示すタイミングで前記クロックイネーブル信号をアサートして，次の読み出しデータ出力を有効化することを特徴とするダイレクト・メモリ・アクセス制御システム。
【請求項６】
バスを介して接続された同期型メモリと入出力メモリとに対するダイレクト・メモリ・アクセス制御システムにおいて，
前記同期型メモリと入出力メモリ間で前記バスを介してデータの転送を命じるフライバイ転送命令を発行するダイレクト・メモリ・アクセス・コントローラと，
前記フライバイ転送命令を受信して，前記同期型メモリに第１のアクセスコマンドを供給するメモリインターフェースと，
前記フライバイ転送命令を受信して，前記入出力メモリに第２のアクセスコマンドを供給する入出力インターフェースとを有し，
前記入出力インターフェースは，前記入出力メモリが書き込み可能タイミング又は読み出しデータ有効タイミングを知らせる第１の状態信号を前記メモリインターフェースに供給し，
前記メモリインターフェースは，前記同期型メモリが読み出しデータ有効タイミング又は書き込み可能タイミングを知らせる第２の状態信号を前記入出力インターフェースに供給し，
前記第１及び第２の状態信号による前記タイミングのうち，いずれか遅いタイミングまで，前記メモリインターフェースと入出力インターフェースとが，それぞれの読み出しデータ有効状態及び書き込み可能状態を維持し，
前記入出力メモリから同期型メモリへ複数のデータを連続してフライバイ転送する時に，前記メモリインターフェースは，前記第２のアクセスコマンドとしてバースト書き込みを命令し，２番目以降の書き込みデータ入力に対して，前記クロックイネーブル信号をネゲートして，前記書き込みデータ入力を保留にし，前記第１の状態信号が示すタイミングで前記クロックイネーブル信号をアサートして，次の書き込みデータ入力を有効化することを特徴とするダイレクト・メモリ・アクセス制御システム。
【請求項７】
バスを介して接続された同期型メモリと入出力メモリとに対するダイレクト・メモリ・アクセス制御システムにおいて，
前記同期型メモリと入出力メモリ間で前記バスを介してデータの転送を命じるフライバイ転送命令を受信して，前記同期型メモリに第１のアクセスコマンドを供給するメモリインターフェースと，
前記フライバイ転送命令を受信して，前記入出力メモリに第２のアクセスコマンドを供給する入出力インターフェースとを有し，
前記入出力インターフェースは，前記入出力メモリが入出力の準備が完了するタイミングを知らせる第１の状態信号を前記メモリインターフェースに供給し，
前記メモリインターフェースは，前記同期型メモリが入出力の準備が完了するタイミングを知らせる第２の状態信号を前記入出力インターフェースに供給し，
前記第１及び第２の状態信号による前記タイミングのうち，いずれか遅いタイミングまで，前記メモリインターフェースと入出力インターフェースとが，それぞれの制御下の前記同期型メモリと入出力メモリの入出力準備完了状態を維持し，
前記メモリインターフェースは，前記同期型メモリへのクロックの入力を制御するクロックイネーブル信号をネゲートして前記入出力準備完了状態を延長し，前記第１の状態信号が示すタイミング時に前記クロックイネーブル信号をアサートして前記入出力準備完了状態を終了することを特徴とするダイレクト・メモリ・アクセス制御システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は，ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory)などの同期型メモリと外部デバイスとの間のフライバイ転送を可能にするＤＭＡ制御システムに関する。
【０００２】
【従来の技術】
マイクロプロセッサは，内部にＣＰＵコアと共にダイレクト・メモリ・アクセス・コントローラ（DMAC）を内蔵し，DMACが外部に接続されるメモリに対するアクセスを制御する。例えば，外部メモリに記憶されたデータを読み出して外部デバイスに転送したり，外部デバイスからデータを読み出して外部メモリに転送したりといった，外部メモリと外部デバイスとの間のデータ転送が行われる。
【０００３】
かかるデータ転送の一般的な方法によれば，外部メモリからデータを読み出して，読み出したデータを内部バッファに一旦蓄積し，その後，外部デバイスに対して内部バッファに記憶したデータを転送する。或いは，外部デバイスに対してデータ読み出し要求を行い，読み出したデータを内部バッファに一旦記録し，その後，外部メモリにそのデータを書き込む。
【０００４】
図１は，DMACを内蔵するマイクロプロセッサと外部メモリ及び外部デバイスとの関係を示す図である。マイクロプロセッサ１０は，汎用バス２２を介して，同期型メモリ（SDRAM）２４と，外部デバイス制御ユニット２６とに接続される。外部デバイス制御ユニット２６は，内部に入出力メモリ２８を有し，ハードディスクや通信機器などの外部デバイス３０に対するアクセスの制御を行う。マイクロプロセッサ１０は，内部に，ＣＰＵコア１４と，DMAC１６と，入出力メモリ２８に対する制御を行うI/Oインターフェース１８と，SDRAM２４に対する制御を行うSDRAMインターフェース１４とを有し，それらは内部バス１２を介してそれぞれ接続される。また，マイクロプロセッサ１０は，外部デバイス制御ユニット２６内のI/Oメモリ２８からの読み出したデータを一旦蓄積するI/O内部バッファメモリ２０と，同様に，SDRAM２４から読み出したデータを一旦蓄積するSDRAM内部バッファ１６とを有する。
【０００５】
マイクロプロセッサ１０内のCPUコア１４は，DMACに対して，第１に，外部メモリであるSDRAM２４からデータを読み出して，外部デバイス３０に供給したり，第２に，外部デバイス３０からデータを取りだして，外部メモリのSDRAM２４に書き込んだりするデータ転送を要求する。
【０００６】
上記第１の場合は，先ずDMAC１６は，SDRAMインターフェース１４に読み出し命令を発し，SDRAMインターフェース１４がSDRAM２４に対して読み出しコマンドを供給してデータを読み出し，内部のSDRAM内部バッファ１６に一旦記録する。その後，DMAC１６は，I/Oメモリインターフェース１８にI/Oライト命令を発して，I/Oメモリインターフェース１８がI/Oメモリ２８にライトコマンドを供給して，SDRAM内部バッファ１６内のデータを書き込む。
【０００７】
上記第２の場合は，その逆であり，DMAC１６は，I/Oメモリインターフェース１８にI/Oリードを実行させて，I/Oメモリ２８内のデータを読み出し，I/O内部バッファ２０に一旦蓄積する。その後，SDRAMインターフェース１４からSDRAM２４に対してライトコマンドを供給して，データの書き込みをする。
【０００８】
【発明が解決しようとする課題】
従って，外部メモリであるSDRAM２４とI/Oメモリ２８との間のデータ転送を行うために，それぞれのアクセス動作が必要になり，合計で２アクセス動作サイクルを要する。しかも，それぞれの動作サイクルで汎用バス２２が占有されるので，システム処理の効率を下げる原因になる。
【０００９】
外部デバイス３０のI/Oメモリ２８とSDRAM２４との間で，汎用バス２２を介して直接データの転送を行うフライバイ転送ができることが望ましい。しかしながら，外部デバイス３０は，リード・ライトコマンドをアサートすることにより，そのデータ有効期間をある程度制御できるが，SDRAMなどの同期型メモリでは，その高速動作の為に，その入出力データが有効になるサイクルは，コマンドサイクルに対してある決められたタイミングの１サイクルのみであるので，その入出力データ有効サイクルに整合するようにデータ転送を制御することは困難である。
【００１０】
そこで，本発明の目的は，同期型メモリと外部デバイスのI/Oメモリとの間でデータの直接転送を行うフライバイ転送を可能にしたDMA制御システムを提供することにある。
【００１１】
【課題を解決するための手段】
上記の目的を達成するために，本発明の一つの側面は，ダイレクト・メモリ・アクセス制御システムにおいて，フライバイ転送命令を発行するダイレクト・メモリ・アクセス・コントローラと，前記フライバイ転送命令を受信して，外部の同期型メモリに第１のアクセスコマンドを供給するメモリインターフェースと，外部の入出力メモリに第２のアクセスコマンドを供給する入出力インターフェースとを有する。そして，入出力インターフェースは，入出力メモリが書き込み可能タイミング又は読み出しデータ有効タイミングを示す第１の状態信号を前記メモリインターフェースに供給し，メモリインターフェースは，同期型メモリが供給されたアクセスコマンドに対応する読み出しデータ有効タイミング又は書き込み可能タイミングを示す第２の状態信号を前記入出力インターフェースに供給し，第１及び第２の状態信号が示すタイミングのうちいずれか遅いタイミングまで，メモリインターフェースと入出力インターフェースとが，それぞれの読み出しデータ有効状態及び書き込み可能状態を維持する。
【００１２】
上記発明によれば，入出力インターフェースとメモリインターフェースとの間で，それぞれの読み出しデータ有効状態又は書き込み可能状態のタイミングを知らせる状態信号を供給しあい，両インターフェースが，いずれか遅いほうのタイミングの発生まで，制御下の入出力メモリと同期型メモリの読み出しデータ有効状態と書き込み可能状態を維持する。従って，同期型メモリと入出力メモリとの読み出しデータ有効タイミングと書き込み可能タイミングとを合わせることができ，両メモリ間のデータのフライバイ転送を可能にする。
【００１３】
上記の発明のより好ましい実施例では，メモリインターフェースは，同期型メモリへのクロック入力を制御するクロックイネーブル信号をネゲートすることにより，前記読み出しデータ有効状態を延ばすことを特徴とする。つまり，第１の状態信号のタイミングまでクロックイネーブル信号のネゲート状態を維持することで，読み出しデータ有効状態を延ばす。また，メモリインターフェースは，第１の状態信号のタイミングに応じて，同期型メモリへの書き込みを指示するライトコマンドを，同期型メモリに供給する。
【００１４】
また，上記の発明のより好ましい実施例では，入出力インターフェースは，入出力メモリへの読み出し信号のアサート状態を，第２の状態信号のタイミングまで維持する。また，入出力インターフェースは，入出力メモリへの書き込み信号のアサート状態を，第２の状態信号のタイミングまで維持する。
【００１５】
更に，上記発明の好ましい実施例では，入出力インターフェースは，制御下の外部デバイスへのアクセスサイクルをカウントし，カウント終了時に第１の状態信号を出力するか，或いは前記カウント値をメモリインターフェースに供給する。或いは，入出力インターフェースは，制御下の外部デバイスからのレディー信号に応答して，第１の状態信号を出力する。
【００１６】
更に，上記発明の好ましい実施例では，メモリインターフェースは，制御下の同期型メモリの読み出しデータ有効までのサイクル数及び書き込み可能までのサイクル数をカウントし，そのカウント終了時に第２の状態信号を出力するか，或いは前記カウント値を入出力インターフェースに供給する。
【００１７】
更に，上記の発明の好ましい実施例では，連続してデータを転送するバースト転送時において，メモリインターフェースは，同期型メモリへのクロックの入力を制御するクロックイネーブル信号をネゲートして，データ入出力の準備完了状態を維持し，第１の状態信号のタイミングで，前記クロックイネーブル信号をアサートして，次の入出力準備を開始する。
【００１８】
【発明の実施の形態】
以下，図面を参照して本発明の実施の形態例を説明する。しかしながら，本発明の保護範囲は，以下の実施の形態例に限定されるものではなく，特許請求の範囲に記載された発明とその均等物にまで及ぶものである。
【００１９】
図２は，本実施の形態例におけるDMA制御システムの構成図である。マイクロプロセッサ１０は，図示しないＣＰＵコアと，ダイレクト・メモリ・アクセス・コントローラ（DMAC）１６と，SDRAMインターフェース１４とI/Oインターフェース１８とを有する。SDRAMインターフェース１４は，外部の同期型メモリであるSDRAM２４を制御する。また，I/Oインターフェース１８は，図示しない外部デバイスの制御回路等に内蔵されるI/Oメモリ２８を制御する。そして，SDRAM２４とI/Oメモリ２８とは，外部の汎用バス２２を介して接続される。
【００２０】
I/Oインターフェース１８内のI/Oシーケンサ１８０は，I/Oメモリ２８にIOリードコマンド（又はIOリード信号）/IORDをアサートして記憶されているデータを汎用バス２２に読み出し，I/Oメモリ２８にIOライトコマンド（IOライト信号）/IOWRをアサートして汎用バス２２上のデータを書き込む。I/Oメモリ２８は，要求されたデータを外部デバイスから受信してI/Oメモリに蓄積し，汎用バス２２に出力した段階で，レディー信号READY0をアサートし，それに応答して，I/Oシーケンサ１８０は，IOリードコマンド/IORDをネゲートする。更に，I/Oメモリ２８は，要求されたデータを汎用バス２２から取り込み可能な段階で，レディー信号READY0をアサートし，それに応答して，I/Oシーケンサ１８０は，IOライトコマンド/IOWRをネゲートする。
【００２１】
または，I/Oシーケンサ１８０は，外部デバイスのアクセスサイクルが固定的な場合は，そのアクセスサイクルを予めI/Oレジスタ１８２に設定しておき，I/Oメモリ２８へのアクセス時に，信号Ｓ１によりレジスタ１８２の設定値Ｓ２をI/Oカウンタ１８４に設定し，カウント終了信号Ｓ３に応答して，IOリードコマンド/IORDまたはIOライトコマンド/IOWRをネゲートする。
【００２２】
但し，DMAC１６からフライバイ転送命令FLYBYiが出ている場合は，I/Oシーケンサ１８０は，I/Oメモリ２８からレディー信号READY0を受信しても，SDRAMインターフェース１４から第２のレディー信号READY2を受信していなければ，それを受信するまで，IOリードコマンド/IORDまたはIOライトコマンド/IOWRのネゲートを行わず，アサート状態を維持する。第２のレディー信号を既に受信している場合は，通常通り，I/Oシーケンサ１８０は，レディー信号READY0の受信に応答して，若しくはカウント終了信号Ｓ３に応答して，IOリードコマンド/IORDまたはIOライトコマンド/IOWRをネゲートする。
【００２３】
図３は，I/Oシーケンサの動作フローチャート図である。I/Oシーケンサ１８０は，DMAC１６からI/Oアクセス要求を受信すると（S20），IOリードまたはIOライトコマンド/IORD，/IOWRをアサートし，カウントダウンの終了を待つ，或いは，I/Oメモリ２８からのレディー信号READY0の受信を待つ（S21,S22）。ウエイト状態が終了すると，フライバイ転送命令の場合は（S23），SDRAMの準備ができたことを示す第２のレディー信号READY2を受信していれば（S24），すぐにIOリードまたはIOライトコマンド/IORD，/IOWRをネゲートする（S26）。第２のレディー信号READY2を受信していなければ，受信するまでコマンドのアサート状態を維持する（S25）。そして，第２のレディー信号の受信に応答して，IOリードまたはIOライトコマンド/IORD，/IOWRをネゲートする（S26）
SDRAMインターフェース１４内のシーケンサ１４０は，SDRAMへのアクセス要求があると，/RAS，/CAS，/CE，/WEの組合せからなるコマンドCMDをSDRAM２４に供給して，リード動作やライト動作を行う。SDRAMの場合は，ワード線を活性化するアクティブ，メモリセルからデータを読み出すリード，メモリセルにデータを書き込むライト，そして，ビット線をリセットするプリチャージの組み合わせにより，アクセス動作のリード動作やライト動作を行う。従って，コマンドCMDは，アクティブコマンド，リードコマンド，ライトコマンド，プリチャージコマンドなどを有し，SDRAMシーケンサ１４０は，それらのコマンドを順番に供給して，リード動作やライト動作を行う。また，シーケンサ１４０は，SDRAM内部へのクロックCLKの供給を有効化，無効化するクロックイネーブルCKEをSDRAM２４に供給する。
【００２４】
SDRAMシーケンサ１４０は，それぞれのコマンドの動作サイクルを管理して，決められた順番に上記のコマンドCMDを供給する。そのために，レジスタ１４２にそれぞれの動作サイクル数が設定され，指令信号Ｓ１１に応答して，コマンドに対応する動作サイクルデータＳ１２がカウンタ１４４にロードされ，カウンタ１４４がカウントダウンを終了すると，カウント終了信号Ｓ１３がシーケンサ１４０に供給される。
【００２５】
SDRAM２４は，リード動作の場合は，リードコマンドが供給されてから，キャスレイテンシ後の１クロックサイクル期間，読み出しデータを出力する。キャスレイテンシは，あらかじめレジスタ１４２に設定され，リードコマンドからデータ出力までのクロックサイクル数は固定される。但し，クロックイネーブルCKEをネゲートすると，内部にクロックが供給されず，ネゲート期間の間，同期型メモリの内部動作を停止することができる。
【００２６】
従って，SDRAMシーケンサ１４０は，このクロックイネーブルCKEを適切にネゲートすることにより，リードデータの出力有効状態のタイミングを延ばすことができる。そこで，SDRAMシーケンサ１４０は，リードデータが出力される１クロックサイクル前から，クロックイネーブルCKEをネゲートして，I/Oメモリ２８が入力準備完了した時に出力される第１のレディー信号READY1に応答して，クロックイネーブルCKEをアサートする。これにより，フライバイ転送時に，SDRAMシーケンサ１４０は，I/Oメモリ２８の動作速度に応じたタイミングでSDRAM２４からのリードデータを汎用バス２２に出力することができる。
【００２７】
更に，SDRAM２４は，書き込み動作では，ライトコマンドと同じクロックサイクルで，ライトデータを入力する。従って，フライバイ転送時に，SDRAMシーケンサ１４０は，第１のレディー信号READY1に応答して，ライトコマンドを発行することで，ライトデータの取り込みタイミングを，I/Oメモリ２８の動作に整合させることができる。
【００２８】
図４は，SDRAMシーケンサのフローチャート図である。SDRAMアクセスが発行されると（S30），SDRAMシーケンサ１４０は，SDRAM２４の状態に応じて，プリチャージコマンドPRE及びアクティブコマンドACTVを発行してから，ライトコマンドまたはリードコマンドを発行する。SDRAM２４がバンクアクティブ状態でページミスしたら，プリチャージPRE，アクティブACTVの後にリードまたはライトを行う必要がある。また，SDRAM２４がバンクインアクティブ状態でページミスしたら，アクティブACTVの後にリードまたはライトを行う必要がある。
【００２９】
SDRAMシーケンサ１４０は，プリチャージが必要な場合は（S32），プリチャージコマンドPREを発行し，プリチャージのクロックサイクルtRP（RAS Pre-charge）だけ待ってから（S34），アクティブコマンドACTVを発行する。また，SDRAMシーケンサ１４０は，アクティブが必要な場合（S36）またはプリチャージの後に，アクティブコマンドACTVを発行し，アクティブのクロックサイクルtRCDだけ待つ（S38）。それぞれのクロックサイクルの待ち動作は，レジスタ１４２の設定値をカウンタ１４４にロードして，カウントダウンさせることで実現される。
【００３０】
アクセス要求がリード動作の場合は，SDRAMシーケンサ１４０はリードコマンドREADを発行する。それに応答して，SDRAM２４は，キャスレイテンシCLのクロックサイクル後に，リードデータを出力する。但し，フライバイ転送の場合は（S44），SDRAMシーケンサ１４０は，キャスレイテンシCLのクロックサイクルが終了する１クロック前から，クロックイネーブルCKEをネゲートし，I/Oメモリ２８の準備が終了するのを待つ（S46，S48）。I/Oシーケンサ１８０から第１のレディー信号READY1を受信すると（S48），それに応答して，SDRAMシーケンサは，クロックイネーブルCKEをアサートし（S50），クロック供給を再開し，リードデータを汎用バス２２に出力させる（S52）。
【００３１】
アクセス要求がライト動作の場合は，SDRAMシーケンサ１４０は，ライトコマンドWRITを発行し，SDRAM２４に汎用バス２２のライトデータを取り込ませる（S60）。但し，フライバイ転送の場合は（S54），I/Oメモリ２８の準備が終了するのを待って（S56，S58），ライトコマンドWRITを発行する。
【００３２】
次に，フライバイ転送の動作について，I/OメモリがSDRAMより遅い場合と，速い場合とに分けて説明する。フライバイ転送には，SDRAMからI/Oメモリへの転送と，I/OメモリからSDRAMへの転送とがある。
【００３３】
［SDRAMからI/Oメモリへのフライバイ転送（I/Oメモリが遅い場合）］
図５は，従来のSDRAMからI/Oメモリへの転送動作のタイミングチャート図である。前述の通り，従来はフライバイ転送ができなかったので，DMAC１６は，最初にSDRAMインターフェース１４にSDRAMリードを行わせて，リードデータを一旦内部バッファに蓄積し，その後，I/Oインターフェース１８にIOライトを行わせる。SDRAMシーケンサ１４０が，リードコマンドREADを発行し， SDRAM２４がクロックサイクルＣ２でそれを取り込み，キャスレイテンシCL=1後のクロックサイクルＣ３でリードデータＤを出力する。その結果，リードデータが内部バッファに蓄積される。次に，I/Oシーケンサ１８０がクロックサイクルＣ４からIOライト信号/IOWRをアサートし，I/Oメモリ２８に書き込み命令を出す。それに応答して，書き込み準備が完了したクロックサイクルＣ６で，I/Oメモリ２８がレディー信号READY0をアサートすると，I/Oシーケンサ１８０は，クロックサイクルＣ７でそれを検知し，IOライト信号/IOWRをネゲートする。I/Oメモリ２８は，データを取り込むために，IOライトのネゲートから１クロックサイクルのIOホールド期間，ライトデータＤとアドレスＡとが必要になっている。
【００３４】
図６は，本実施の形態例におけるSDRAMからI/Oメモリへのフライバイ転送のタイミングチャート図である。この例は，キャスレイテンシCLが１で，SDRAMがリードコマンドから動作可能な例である。最初に，DMAC１６が，フライバイ信号FLYBYi，FLYBYsをそれぞれI/Oインターフェース１８とSDRAMインターフェース１４とに発行する。このフライバイ信号にはフライバイ転送の方向も含まれる。それに応答して，クロックサイクルＣ１で，SDRAMシーケンサ１４０がSDRAM２４にリードコマンドREADを発行すると共に，I/Oシーケンサ１８０はI/OメモリにIOライト信号/IOWRをアサートする。
【００３５】
図６の例は，キャスレイテンシCL＝１の例であるので，SDRAMシーケンサ１４０は，クロックサイクルＣ１でクロックイネーブルCKEをネゲートし，リードデータの出力状態を延ばすように制御する。やがて，クロックサイクルＣ３で，I/Oメモリ２８の準備が完了し，I/Oシーケンサ１８０が第１のレディー信号READY1をアサートすると，それに応答して，SDRAMシーケンサ１４０がクロックイネーブルCKEをアサートする。その結果，SDRAM２４は，クロックサイクルＣ４の立ち上がりエッジから１クロックサイクル間，リードデータの出力を維持する。従って，自動的にI/Oホールド期間が形成され，I/Oメモリ２８は正しくライトデータを取り込むことができる。
【００３６】
図６のフライバイ転送は，図５と比較して，３クロックサイクル分だけ短い時間で完了する。しかも，SDRAM２４のリードデータ出力の有効状態を延長するためにクロックイネーブルCKEを利用したことで，IOライト信号/IOWRのネゲートに応答してクロックイネーブルCKEをアサートすると，自動的に１クロックサイクル分，データのホールドが行われる。
【００３７】
尚，I/Oメモリ２８は，低速動作の場合は，IOライト信号/IOWRのネゲート後にデータホールド期間を必要とする。高速動作の場合は，かかるデータホールド期間は必要ない。従って，I/Oインターフェース１８は，内部にデータホールドが必要か否かのレジスタを内蔵し，DMACを介してSDRAMインターフェース１４に通知する。
【００３８】
［SDRAMからI/Oメモリへのフライバイ転送（SDRAMが遅い場合）］
図７は，SDRAMが遅い場合の従来のSDRAMからI/Oメモリへの転送動作のタイミングチャート図である。動作の順番は図５の例と同じであるが，図７の例は，SDRAMのキャスレイテンシCLが３と長いのに対して，I/Oメモリの動作が２クロックサイクルで終了している。それ以外は，図５と同じであるので，詳細な動作説明は省略する。
【００３９】
図８は，本実施の形態例におけるSDRAMからI/Oメモリへのフライバイ転送のタイミングチャート図である。この例では，SDRAM２４のリード動作が長いので，リードデータの出力を図６のように延ばすことなく，２クロックサイクル期間のみリードデータが出力されている。最初に，フライバイ要求に対して，クロックサイクルＣ１で，SDRAMシーケンサ１４０がリードコマンドREADを発行し，I/Oシーケンサ１８０がIOライト信号/IOWRをアサートする。I/Oメモリ２８の書き込み準備が完了した時点のクロックサイクルＣ３で，I/Oシーケンサ１８０が，第１のレディー信号READY1をアサートしている。その後，キャスレイテンシCL＝３に対応するクロックサイクルＣ４で，SDRAMシーケンサ１４０が，第２のレディー信号READY2をアサートして，SDRAM２４のリードデータの準備が完了したことを伝えると，I/Oシーケンサ１８０がクロックサイクルＣ５でIOライト信号/IOWRをネゲートして，I/Oメモリ２８にI/Oホールド期間の間でデータを書き込ませる。
【００４０】
SDRAMシーケンサ１４０は，キャスレイテンシCL＝３に対応して，リードデータ出力の１クロック前のクロックサイクルＣ３で，クロックイネーブルCKEをネゲートしているが，第１のレディー信号READY1がすでにアサートされているので，クロックサイクルＣ４でクロックイネーブルCKEをアサートし，リードデータＤを２クロックサイクル期間だけ有効に出力する。
【００４１】
図６の例では，I/Oメモリの準備が長かったため，SDRAMシーケンサ１４０がリードデータの出力を３クロックサイクル期間維持したが，図８の例では，I/Oメモリの準備が短かったため，２クロックサイクル期間になっている。図８の場合も，図７に比較すると短いクロックサイクル数でフライバイ転送が完了している。
【００４２】
［I/OメモリからSDRAMへのフライバイ転送（I/Oメモリが遅い場合）］
図９は，従来のI/OメモリからSDRAMへの転送動作のタイミングチャート図である。DMAC１６が，I/Oインターフェース１８に対してIOリードを要求し，I/Oシーケンサ１８０はI/Oメモリ２８からデータを読み出して内蔵バッファに一旦格納する。次に，DMAC１６が，SDRAMインターフェース１４にSDRAMのライト動作を要求し，SDRAMシーケンサ１４０はSDRAM２４に対して，アクティブコマンドACTVとライトコマンドWRITを発行して，データの書き込みを制御する。図９の例では，アクティブは２クロックサイクルを要し，アクティブコマンドACTVの発行から２クロックサイクル後のＣ７でライトコマンドWRITが発行されている。
【００４３】
図１０は，本実施の形態例におけるI/OメモリからSDRAMへのフライバイ転送のタイミングチャート図である。DMAC１６がフライバイ信号FLYBYi，FLYBYsを発行して，両インターフェース１８，１４にフライバイ転送を要求する。クロックサイクルＣ１で，I/Oシーケンス１８０がIOリード信号/IORDをアサートして，I/Oメモリ２８にリード動作を要求する。また，同サイクルＣ１から，SDRAMシーケンサ１４０が，ライト動作のトランズアクションを開始する。図１０の例では，アクティブコマンドACTVを発行し，その後ライトコマンドWRITを発行する。
【００４４】
I/Oメモリ２８は，リードデータの出力の準備が完了すると，クロックサイクルＣ２でレディー信号READY0をアサートし（図示せず），I/Oシーケンサ１８０がクロックサイクルＣ３で第１のレディー信号READY1をアサートする。このアサートに応答して，SDRAMシーケンサ１４０がライトコマンドWRITを発行し，SDRAM２４がクロックサイクルＣ４で汎用バス上のリードデータＤを取り込みメモリセルに書き込む。
【００４５】
SDRAM２４がアクティブ動作ACTVを不要とする場合は，SDRAMシーケンサ１４０は，クロックサイクルＣ１でアクティブコマンドACTVを発行することなく，ライトコマンドWRITを発行することができる。しかし，その場合でも，I/Oメモリ２８の準備が完了したことを示す第１のレディー信号READY1がアサートされていないので，ライトコマンドWRITは発行されず，ライトコマンドの発行はクロックサイクルＣ３まで待たされることになる。
【００４６】
この場合も，図９に比較すると短いクロックサイクル数でフライバイ転送動作が終了している。
【００４７】
［I/OメモリからSDRAMへのフライバイ転送（SDRAMが遅い場合）］
図１１は，従来のI/OメモリからSDRAMへの転送動作のタイミングチャート図である。図９と同じ動作でように，I/Oメモリ２８からデータを読み出した後，SDRAM２４がそのデータを書き込んでいる。但し，図１１の例は，図９に比較してI/Oメモリに対するIOリード動作が，２クロックサイクルと短くなっている。
【００４８】
図１２は，本実施の形態例におけるI/OメモリからSDRAMへのフライバイ転送のタイミングチャート図である。この例では，I/Oメモリ２８でのリード動作が１クロックサイクルで完了して，クロックサイクルＣ２で既に第１のレディー信号READY1がアサートされている。従って，SDRAMシーケンサ１４０は，アクティブコマンドACTVとライトコマンドWRITを順番に発行し，ライトコマンドの発行と同時に第２のレディー信号READY2をアサートする。その結果，クロックサイクルＣ４でデータがSDRAM２４に書き込まれ，I/Oシーケンサ１８０がその後IOリード信号/IORDをネゲートする。この例では，SDRAMの動作が遅いので，I/Oメモリ２８がリードデータを出力する期間が，３クロックサイクルとなり，図１０の場合の２クロックサイクルより長くなっている。
【００４９】
［バースト転送］
図１３は，本実施の形態例における，SDRAMからI/Oメモリへのフライバイ転送によるバースト転送のタイミングチャート図である。この例は，SDRAM２４のキャスレイテンシCLが２と短く，I/Oメモリ２８が低速でIOライトコマンド/IOWRをネゲートした後に１クロックサイクルのIOホールド期間を必要とする場合であって，バーストレングスが４の動作である。また，I/Oシーケンサ１８０とSDRAMシーケンサ１４０とは，それぞれの準備完了を第１及び第２のレディー信号で伝える例である。なお，バースト転送は，例えばフライバイ要求信号に含まれて，DMACから各インターフェースに要求される。
【００５０】
図示しないフライバイ転送要求に応答して，クロックサイクルＣ１で，SDRAMシーケンサ１４０がリードコマンドREADを発行し，I/Oシーケンサ１８０がIOライト信号/IOWRをアサートする。キャスレイテンシCL＝２であるので，SDRAMシーケンサ１４０は，クロックサイクルＣ３でリードデータの準備が整ったことを知らせる第２のレディー信号READY2をアサートする。また，SDRAMシーケンサ１４０は，データ出力の１クロックサイクル前のクロックサイクルＣ２で，クロックイネーブルCLKをネゲートして，第１のレディー信号READY1の受信を待つ。
【００５１】
クロックサイクルＣ４でI/Oメモリの書き込み準備が整うと，レディー信号READY0がアサートされ，同時に，I/Oシーケンサ１８０が第１のレディー信号READY1をアサートする。これに応答して，SDRAMシーケンサ１４０は，クロックイネーブルCKEをアサートして，次のリードデータの出力制御を行う。また，I/Oシーケンサ１８０は，クロックサイクルＣ５でIOライト信号/IOWRをネゲートする。
【００５２】
バーストモードでも，SDRAMシーケンサは，I/Oメモリの準備が整ったことを知らせる第１のレディー信号READY1がアサートされるまで，リードデータの出力を維持する必要がある。従って，クロックサイクルＣ５で，SDRAMシーケンサ１４０は，ただちにクロックイネーブルCKEをネゲートして，第１のレディー信号READY1を待つ。
【００５３】
クロックサイクルＣ５のIOホールド期間が終了すると，クロックサイクルＣ６で，I/Oシーケンサ１８０が，次のデータ書き込みのためにIOライト信号/IOWRをアサートする。第２のリードデータの出力に関しては，バーストモード故にSDRAM２４は既に出力準備が整っているので，第２のレディー信号READY2はアサートのままである。そして，I/Oメモリ２８の準備が整ってから，クロックサイクルＣ７でI/Oシーケンサ１８０が第１のレディー信号READY1をアサートする。それに応答して，SDRAMシーケンサ１４０も，クロックイネーブルCKEをアサートして，次のリードデータの出力制御を行う。
【００５４】
第３，第４のデータのフライバイ転送は，上記第２のデータのフライバイ転送と同じである。結局，SDRAMシーケンサ１４０は，リードコマンドREADを発行してからキャスレイテンシCL＝２に対応する２クロックサイクル後のＣ３で，第２のレディー信号READY2をアサートした後は，そのアサート状態を維持して，クロックイネーブルCKEをその都度ネゲートしてリードデータの出力を維持し，その後I/Oシーケンサ１８０からの第１のレディー信号READY1を待ってから，クロックイネーブルCKEをアサートすることで，次のリードデータの出力制御を行う。SDRAMシーケンサ１４０は，クロックイネーブルCKEを利用して，バーストモードでのフライバイ転送にも対応することができる。
【００５５】
図１４は，本実施の形態例における，I/OメモリからSDRAMへのフライバイ転送によるバースト転送のタイミングチャート図である。この例は，３つのデータをバースト転送する場合である。
【００５６】
図示しないフライバイ転送要求に応答して， SDRAMシーケンサ１４０が，ライト動作のために，クロックサイクルＣ１でアクティブコマンドACTVを発行し，ライト準備完了を示す第２のレディー信号READY2を，クロックサイクルＣ３でアサートして，第１のレディー信号READY1を待つ。但し，図１４の例では，同時にI/Oメモリ２８のリード出力準備が完了して，クロックサイクルＣ３で第１のレディー信号READY1がアサートされている。それに応答して，SDRAMシーケンサ１４０は，ライトコマンドWRITを発行している。ライトコマンドの発行と同時に，汎用バス上のリードデータが，SDRAM２４に書き込まれる。
【００５７】
従って，SDRAM２４がアクティブ動作を必要としない場合は，第２のレディー信号READY2は，図１４より早くアサートされる。但し，その場合でも，ライトコマンドWRITの発行は，第１のレディー信号READY1がネゲートされるまで行われない。
【００５８】
最初のデータについてのライト動作が行われると，クロックサイクルＣ５でI/Oシーケンサ１８０は再度IOリード信号/IORDをアサートして，次のデータを出力する。この時，SDRAM２４はライト動作可能状態にあるので，第２のレディー信号READY2は，アサートされたままである。I/Oメモリ２８で次のデータ出力の準備が整うと，クロックサイクルＣ７で第１のレディー信号READY1がアサートされ，SDRAMシーケンサ１４０がライトコマンドWRITを発行し，SDRAM２４に書き込み動作を行わせる。
【００５９】
次のデータについての動作も２番目のデータのフライバイ転送と同じである。このように，I/OメモリからSDRAMへのフライバイ転送におけるバースト転送では，SDRAM２４が最初の書き込みの準備が整うと，その後のデータの書き込みはライトコマンドの発行で即座に行うことができる。従って，SDRAMシーケンサ１４０は，単に第１のレディー信号READY1を待って，ライトコマンドWRITを発行し続ければよい。つまり，バースト転送ではあるが，SDRAMシーケンサ１４０は，バーストライト制御ではなくシングルライト制御をバースト長だけ繰り返しているにすぎない。
【００６０】
［変形例］
図１５は，本実施の形態例におけるDMA制御システムの変形例の構成図である。図２と同じ部分には，同じ引用番号を与えている。図２と異なる構成は，I/Oインターフェース１８内のI/Oカウンタ１８４のカウント値IOCOUNTが，SDRAMシーケンサ１４０側に供給され，SDRAMシーケンサ１４０は，第１のレディー信号を受信する代わりに，I/Oカウント値IOCOUNT を監視して，I/Oメモリの準備が整ったか否かを検出するところにある。同様に，I/Oシーケンサ１８０は，SDRAMシーケンサ１４０から，第２のレディー信号READY2を受信する代わりに，リードまたはライト動作の準備が整うまでのカウント値SDCOUNTを受信する。SDRAMシーケンサ１４０は，SDRAM２４の各種動作に必要なクロックサイクル数を，カウンタ１４４でカウントダウンして管理しているが，それらのカウント値Ｓ１３から，リードまたはライトの準備が整うまでのクロックサイクル数SDCOUNT に変換して，I/Oシーケンサ１８０に供給する。
【００６１】
従って，図１５のDMA制御システムでは，図３に示したI/Oシーケンサの動作フローチャートの工程Ｓ２４で，SDRAMカウント値SDCOUNT に従ってSDRAMの準備ができたか否かが判定される。更に，図４に示したSDRAMシーケンサの動作フローチャートの工程Ｓ４８，Ｓ５８で，I/Oカウント値IOCOUNT に従ってI/Oメモリの準備ができたか否かが判定される。
【００６２】
図１６は，上記変形例のシステムによる，SDRAMからI/Oメモリへのフライバイ転送でのバースト転送の動作タイミングチャート図である。この例は，キャスレイテンシCLが３で，I/OメモリがI/Oホールドを不要とする高速動作をする例である。図示されるとおり，第１及び第２のレディー信号の代わりに，I/Oカウント値IOCOUNTと，SDRAMカウント値SDCOUNTとが監視されている。図１３と同様に，クロックイネーブルCKEのネゲートによりSDRAM２４のリードデータＤの出力がホールドされ，I/Oカウント値の変化によりI/Oメモリ側の書き込み動作の終了サイクルを予測して，クロックイネーブルCKEがアサートされて次のリードデータが出力される。
【００６３】
図示しないフライバイ転送要求に応答して，クロックサイクルＣ１で，SDRAMシーケンサ１４０は，リードコマンドREADを発行し，リードデータが出力されるまでのクロックサイクル数「３」をSDRAMカウント値S144としてI/Oシーケンサ１８０に与える。もし，SDRAM２４がアクティブから実行する必要があるときは，このSDRAMカウント値SDCOUNT はアクティブのクロックサイクルにキャスレイテンシを加えた値になる。また，I/Oシーケンス１８０は，ライト動作の準備が整うまでのクロックサイクル数「１」をI/Oカウント値IOCOUNT として，SDRAMシーケンサ１４０に供給する。
【００６４】
クロックサイクルＣ２でI/Oカウント値IOCOUNTが「０」になっているので，SDRAMシーケンサ１４０は，I/Oメモリの準備が完了したことを検出して，リードデータＤの出力の１クロックサイクル前にもかかわらず，クロックイネーブルCKEをネゲートしない。そして，次のリードデータ出力をホールドするために，クロックサイクルＣ４でクロックイネーブルCKEをネゲートする。
【００６５】
I/Oシーケンサ１８０は，SDRAMカウント値SDCOUNTが「０」になったことで有効なリードデータの書き込みが終了したことことを検出し，クロックサイクルＣ５で，一旦IOライト信号/IOWRをネゲートして，次のクロックサイクルＣ６で再度アサートする。これにより，次のフライバイ転送の為に，I/Oメモリは書き込み準備を始める。I/Oシーケンサは，クロックサイクルＣ６でのIOライト信号/IOWRのアサートに伴って，IOカウント値IOCOUNTを「１」に設定する。SDRAMシーケンサは，このIOカウント値を見て，I/Oメモリが１クロックサイクル後には２番目のデータの書き込み準備が整うことを検出して，３番目のリードデータの出力の為に，クロックイネーブルCKEをアサートする。クロックイネーブルCKEアサート後の次のクロックサイクルＣ７で，クロックイネーブルCKEがネゲートされ，SDRAMは３番目のリードデータを保持するよう制御される。
【００６６】
クロックサイクルＣ５以降は，SDRAMはリードデータ出力の準備は整っているので，そのカウント値SDCOUNTは「０」のまま維持される。従って，SDRAMシーケンサ１４０による２番目以降のリードデータの制御は，I/Oカウント値IOCOUNTに基づく，クロックイネーブルCKEのネゲートとアサートにより制御される。
【００６７】
図１７は，上記変形例のシステムによる，I/OメモリへからSDRAMのフライバイ転送でのバースト転送の動作タイミングチャート図である。この例では，SDRAMシーケンサは，SDRAMに対してバーストライトを命じ，クロックイネーブルCKEのネゲートにより書き込み動作のタイミングを遅らせて，I/Oカウント値IOCOUNTからI/Oメモリのリードデータが有効になるタイミングを監視して，クロックイネーブルCKEをアサートして書き込み動作を指令する。
【００６８】
最初に，クロックサイクルＣ１でフライバイ転送が命令されると，SDRAMシーケンサ１４０は，アクティブコマンドACTVを発行し，SDRAMカウント値SDCOUNTを「３」に設定する。一方，I/Oシーケンサ１８０は，IOリードコマンド/IORDをアサートして，IOカウント値IOCOUNTを「１」に設定する。最初のデータのフライバイ転送では，I/Oメモリのリードデータの準備が先に整うので，SDRAMシーケンサは，最短のクロックサイクルＣ４でライトコマンドを発行し，クロックサイクルＣ５でデータが書き込まれる。その時，SDRAMシーケンサ１４０は，ライトコマンドWRITを発行すると共に，クロックイネーブルCKEをネゲートして，次のデータの書き込みを保留状態に制御する。
【００６９】
SDRAMカウント値SDCOUNTが「０」になっていることに応答して，クロックサイクルＣ５でI/Oシーケンサ１８０は，IOリードコマンド/IORDをネゲートし，次のサイクルＣ６で再びアサートする。このアサート時にIOカウント値IOCOUNTが「１」に設定される。これに応答して，SDRAMシーケンサ１４０は，クロックイネーブルCKEをアサートして，クロックサイクルＣ８での書き込み動作を制御する。SDRAMシーケンサ１４０は，クロックイネーブルCKEをアサートした次のサイクルＣ７で再びネゲートし，３番目のデータの書き込み動作を保留状態に制御する。
【００７０】
それ以降は，SDRAM２４は，常に書き込み可能状態にあるので，SDRAMシーケンサ１４０は，SDRAMカウント値SDCOUNTを「０」のままに維持し，後は，I/Oカウント値IOCOUNTが「１」に設定されたら，クロックイネーブルCKEを１クロックサイクル間だけアサートしてネゲートする。I/Oカウント値IOCOUNTの「１」の設定は，I/Oメモリの読み出しデータの準備を開始するIOリードコマンド/IORDのアサート時に，I/Oシーケンサ１８０により行われる。
【００７１】
以上の通り，SDRAMシーケンサとI/Oシーケンサが互いに準備完了までのクロックサイクル数をカウント値として供給しあうことにより，相手方は，そのカウント値に従って予測して制御下のデバイスに対する制御を行うことができる。上記のバースト転送の場合は，SDRAMシーケンサは，バーストライト制御中にクロックイネーブルCKEをトグルすることで，複数データの書き込みタイミングを調整して，フライバイ転送を可能にする。
【００７２】
以上，実施の形態例をまとめると以下の付記の通りである。
（付記１）バスを介して接続された同期型メモリと入出力メモリとに対するダイレクト・メモリ・アクセス制御システムにおいて，
前記同期型メモリと入出力メモリ間で前記バスを介してデータの転送を命じるフライバイ転送命令を発行するダイレクト・メモリ・アクセス・コントローラと，
前記フライバイ転送命令を受信して，前記同期型メモリに第１のアクセスコマンドを供給するメモリインターフェースと，
前記フライバイ転送命令を受信して，前記入出力メモリに第２のアクセスコマンドを供給する入出力インターフェースとを有し，
前記入出力インターフェースは，前記入出力メモリが書き込み可能タイミング又は読み出しデータ有効タイミングを知らせる第１の状態信号を前記メモリインターフェースに供給し，
前記メモリインターフェースは，前記同期型メモリが読み出しデータ有効タイミング又は書き込み可能タイミングを知らせる第２の状態信号を前記入出力インターフェースに供給し，
前記第１及び第２の状態信号による前記タイミングのうち，いずれか遅いタイミングまで，前記メモリインターフェースと入出力インターフェースとが，それぞれの読み出しデータ有効状態及び書き込み可能状態を維持することを特徴とするダイレクト・メモリ・アクセス制御システム。
（付記２）付記１において，
前記同期型メモリから入出力メモリへのフライバイ転送時に，前記メモリインターフェースは，前記同期型メモリへのクロック入力を制御するクロックイネーブル信号をネゲートして，前記読み出しデータ有効状態を維持し，前記第１の状態信号が示すタイミングまで前記読み出しデータ有効状態を維持することを特徴とするダイレクト・メモリ・アクセス制御システム。
（付記３）付記１において，
前記第１及び第２の状態信号が，それぞれの読み出しデータ有効タイミング又は書き込み可能タイミング時にアサートされる第１及び第２のレディー信号であり，
前記同期型メモリから入出力メモリへのフライバイ転送時に，前記メモリインターフェースは，前記同期型メモリへのクロック入力を制御するクロックイネーブル信号をネゲートして，前記読み出しデータ有効状態を維持し，前記第１のレディー信号のアサートまで前記読み出しデータ有効状態を維持することを特徴とするダイレクト・メモリ・アクセス制御システム。
（付記４）付記１において，
前記第１及び第２の状態信号が，それぞれの読み出しデータ有効タイミング又は書き込み可能タイミング時までのクロックサイクル数を示す第１及び第２のカウント値に対応する信号であり，
前記同期型メモリから入出力メモリへのフライバイ転送時に，前記メモリインターフェースは，前記同期型メモリへのクロック入力を制御するクロックイネーブル信号をネゲートして，前記読み出しデータ有効状態を維持し，前記第１のカウント値に応じて前記読み出しデータ有効状態を維持することを特徴とするダイレクト・メモリ・アクセス制御システム。
（付記５）付記２，３，４のいずれかにおいて，
前記メモリインターフェースは，前記第１の状態信号が示すタイミングで，前記クロックイネーブル信号をアサートし，当該アサート後に前記読み出しデータ有効状態を終了することを特徴とするダイレクト・メモリ・アクセス制御システム。
（付記６）付記５において，
前記入出力メモリがデータ書き込みの為にデータホールド期間を必要とする場合に，前記メモリインターフェースは，前記クロックイネーブル信号をアサートして，前記データホールド期間終了後に前記読み出しデータ有効状態を終了することを特徴とするダイレクト・メモリ・アクセス制御システム。
（付記７）付記１において，
前記同期型メモリから入出力メモリへのフライバイ転送時に，前記入出力インターフェースは，前記入出力メモリへの書き込みを命令する入出力ライト信号をアサートし，前記第２の状態信号が示すタイミングまで前記入出力ライト信号のアサートを維持することを特徴とするダイレクト・メモリ・アクセス制御システム。
（付記８）付記１において，
前記第１及び第２の状態信号が，それぞれの読み出しデータ有効タイミング又は書き込み可能タイミング時にアサートされる第１及び第２のレディー信号であり，
前記同期型メモリから入出力メモリへのフライバイ転送時に，前記入出力インターフェースは，前記入出力メモリへの書き込みを命令する入出力ライト信号をアサートし，前記第２のレディー信号のアサートまで前記入出力ライト信号のアサートを維持することを特徴とするダイレクト・メモリ・アクセス制御システム。
（付記９）付記１において，
前記第１及び第２の状態信号が，それぞれの読み出しデータ有効タイミング又は書き込み可能タイミング時までのクロックサイクル数を示す第１及び第２のカウント値であり，
前記同期型メモリから入出力メモリへのフライバイ転送時に，前記入出力インターフェースは，前記入出力メモリへの書き込みを命令する入出力ライト信号をアサートし，前記第２のカウント値に応じたタイミングまで前記入出力ライト信号のアサートを維持することを特徴とするダイレクト・メモリ・アクセス制御システム。
（付記１０）付記１において，
前記入出力メモリから同期型メモリへのフライバイ転送時に，前記メモリインターフェースは，前記第１の状態信号が示すタイミングで前記同期型メモリへのライトコマンドを発行することを特徴とするダイレクト・メモリ・アクセス制御システム。
（付記１１）付記１において，
前記第１及び第２の状態信号が，それぞれの読み出しデータ有効タイミング又は書き込み可能タイミング時にアサートされる第１及び第２のレディー信号であり，
前記入出力メモリから同期型メモリへのフライバイ転送時に，前記メモリインターフェースは，前記第１のレディー信号のアサートに応答して前記同期型メモリへのライトコマンドを発行することを特徴とするダイレクト・メモリ・アクセス制御システム。
（付記１２）付記１において，
前記第１及び第２の状態信号が，それぞれの読み出しデータ有効タイミング又は書き込み可能タイミング時までのクロックサイクル数を示す第１及び第２のカウント値であり，
前記入出力メモリから同期型メモリへのフライバイ転送時に，前記メモリインターフェースは，前記第１のカウンタ値に応じたタイミングで前記同期型メモリへのライトコマンドを発行することを特徴とするダイレクト・メモリ・アクセス制御システム。
（付記１３）付記１において，
前記入出力メモリから同期型メモリへのフライバイ転送時に，前記入出力インターフェースは，前記入出力メモリへの読み出しを命令する入出力リード信号をアサートし，前記第２の状態信号が示すタイミングまで前記入出力リード信号のアサートを維持することを特徴とするダイレクト・メモリ・アクセス制御システム。
（付記１４）付記１において，
前記第１及び第２の状態信号が，それぞれの読み出しデータ有効タイミング又は書き込み可能タイミング時にアサートされる第１及び第２のレディー信号であり，
前記入出力メモリから同期型メモリへのフライバイ転送時に，前記入出力インターフェースは，前記入出力メモリへの読み出しを命令する入出力リード信号をアサートし，前記第２のレディー信号のアサートまで前記入出力リード信号のアサートを維持することを特徴とするダイレクト・メモリ・アクセス制御システム。
（付記１５）付記１において，
前記第１及び第２の状態信号が，それぞれの読み出しデータ有効タイミング又は書き込み可能タイミング時までのクロックサイクル数を示す第１及び第２のカウント値であり，
前記入出力メモリから同期型メモリへのフライバイ転送時に，前記入出力インターフェースは，前記入出力メモリへの読み出しを命令する入出力リード信号をアサートし，前記第２のカウント値に応じたタイミングまで前記入出力リード信号のアサートを維持することを特徴とするダイレクト・メモリ・アクセス制御システム。
（付記１６）付記１において，
前記同期型メモリが，シンクロナス・ダイナミック・ランダム・アクセス・メモリであることを特徴とするダイレクト・メモリ・アクセス制御システム。
（付記１７）付記２において，
前記同期型メモリから入出力メモリへ複数のデータを連続してフライバイ転送する時に，前記メモリインターフェースは，前記第２のアクセスコマンドとしてバースト読み出しを命令し，２番目以降の読み出しデータ出力に対して，前記クロックイネーブル信号をネゲートして，前記読み出しデータ有効状態を維持し，前記第１の状態信号が示すタイミングで前記クロックイネーブル信号をアサートして，次の読み出しデータ出力を有効化することを特徴とするダイレクト・メモリ・アクセス制御システム。
（付記１８）付記１０において，
前記入出力メモリから同期型メモリへ複数のデータを連続してフライバイ転送する時に，前記メモリインターフェースは，前記第２のアクセスコマンドとしてバースト書き込みを命令し，２番目以降の書き込みデータ入力に対して，前記クロックイネーブル信号をネゲートして，前記書き込みデータ入力を保留にし，前記第１の状態信号が示すタイミングで前記クロックイネーブル信号をアサートして，次の書き込みデータ入力を有効化することを特徴とするダイレクト・メモリ・アクセス制御システム。
（付記１９）バスを介して接続された同期型メモリと入出力メモリとに対するダイレクト・メモリ・アクセス制御システムにおいて，
前記同期型メモリと入出力メモリ間で前記バスを介してデータの転送を命じるフライバイ転送命令を受信して，前記同期型メモリに第１のアクセスコマンドを供給するメモリインターフェースと，
前記フライバイ転送命令を受信して，前記入出力メモリに第２のアクセスコマンドを供給する入出力インターフェースとを有し，
前記入出力インターフェースは，前記入出力メモリが入出力の準備が完了するタイミングを知らせる第１の状態信号を前記メモリインターフェースに供給し，
前記メモリインターフェースは，前記同期型メモリが入出力の準備が完了するタイミングを知らせる第２の状態信号を前記入出力インターフェースに供給し，
前記第１及び第２の状態信号による前記タイミングのうち，いずれか遅いタイミングまで，前記メモリインターフェースと入出力インターフェースとが，それぞれの制御下の前記同期型メモリと入出力メモリの入出力準備完了状態を維持することを特徴とするダイレクト・メモリ・アクセス制御システム。
（付記２０）付記１９において，
前記メモリインターフェースは，前記同期型メモリへのクロックの入力を制御するクロックイネーブル信号をネゲートして前記入出力準備完了状態を延長し，前記第１の状態信号が示すタイミング時に前記クロックイネーブル信号をアサートして前記入出力準備完了状態を終了することを特徴とするダイレクト・メモリ・アクセス制御システム。
【００７３】
【発明の効果】
以上，本発明によれば，同期型メモリと入出力メモリとの間で汎用バスを経由してデータの転送を直接行うことができる。
【図面の簡単な説明】
【図１】  DMACを内蔵するマイクロプロセッサと外部メモリ及び外部デバイスとの関係を示す図である。
【図２】本実施の形態例におけるDMA制御システムの構成図である。
【図３】  I/Oシーケンサの動作フローチャート図である。
【図４】  SDRAMシーケンサのフローチャート図である。
【図５】従来のSDRAMからI/Oメモリへの転送動作のタイミングチャート図である。
【図６】本実施の形態例におけるSDRAMからI/Oメモリへのフライバイ転送のタイミングチャート図である。
【図７】従来のSDRAMからI/Oメモリへの転送動作のタイミングチャート図である。
【図８】本実施の形態例におけるSDRAMからI/Oメモリへのフライバイ転送のタイミングチャート図である。
【図９】従来のI/OメモリからSDRAMへの転送動作のタイミングチャート図である。
【図１０】本実施の形態例におけるI/OメモリからSDRAMへのフライバイ転送のタイミングチャート図である。
【図１１】従来のI/OメモリからSDRAMへの転送動作のタイミングチャート図である。
【図１２】本実施の形態例におけるI/OメモリからSDRAMへのフライバイ転送のタイミングチャート図である。
【図１３】本実施の形態例における，SDRAMからI/Oメモリへのフライバイ転送によるバースト転送のタイミングチャート図である。
【図１４】本実施の形態例における，I/OメモリからSDRAMへのフライバイ転送によるバースト転送のタイミングチャート図である。
【図１５】本実施の形態例におけるDMA制御システムの変形例の構成図である。
【図１６】変形例のシステムによる，SDRAMからI/Oメモリへのフライバイ転送でのバースト転送の動作タイミングチャート図である。
【図１７】変形例のシステムによる，I/OメモリからSDRAMへのフライバイ転送でのバースト転送の動作タイミングチャート図である。
【符号の説明】
１０      マイクロプロセッサ
１４      メモリインターフェース，SDRAMインターフェース
１８      入出力インターフェース，I/Oインターフェース
２４      同期型メモリ，SDRAM
２８      入出力メモリ，I/Oメモリ
１４０    SDRAMシーケンサ
１８０    I/Oシーケンサ
READY1  第１の状態信号，第１のレディー信号
READY2  第２の状態信号，第２のレディー信号
IOCOUNT  第１の状態信号，第１のカウント値
SDCOUNT  第２の状態信号，第２のカウント値
/IORD      IOリード信号，IOリードコマンド
/IOWR      IOライト信号，IOライトコマンド
CKE      クロックイネーブル信号
【図１】
0004615137.tif 000002
【図２】
0004615137.tif 000003
【図３】
0004615137.tif 000004
【図４】
0004615137.tif 000005
【図５】
0004615137.tif 000006
【図６】
0004615137.tif 000007
【図７】
0004615137.tif 000008
【図８】
0004615137.tif 000009
【図９】
0004615137.tif 000010
【図１０】
0004615137.tif 000011
【図１１】
0004615137.tif 000012
【図１２】
0004615137.tif 000013
【図１３】
0004615137.tif 000014
【図１４】
0004615137.tif 000015
【図１５】
0004615137.tif 000016
【図１６】
0004615137.tif 000017
【図１７】
0004615137.tif 000018