(57)【要約】【課題】  動作クロック周波数が高くないＣＰＵを用いる場合でも、ＤＭＡ転送を用いることなく、安価かつ簡単な構成で、ＣＰＵの負担が少なく、小型記憶媒体と電子機器との間で高速にデータ転送を行う。【解決手段】  本発明によるデータ転送回路１は、電子機器に接続された小型記憶媒体５からメインメモリ３にデータを転送するためのものであり、小型記憶媒体５からデータを読み出して複数のＦＩＦＯメモリから選択した１つのＦＩＦＯメモリに書き込むとともに、１つのＦＩＦＯメモリ以外からデータを読み出すためのＦＩＦＯメモリを選択し割込信号ＳIN2を発生する。【選択図】  図１
2005092489.tif 000002
【特許請求の範囲】
【請求項１】
電子機器に接続された小型記憶媒体から前記電子機器内部にデータを転送するためのデータ転送回路であって、
前記小型記憶媒体から前記データを読み出して複数のＦＩＦＯメモリから選択した１つのＦＩＦＯメモリに書き込むとともに、前記１つのＦＩＦＯメモリ以外から前記データを読み出すためのＦＩＦＯメモリを選択し割込信号を発生することを特徴とするデータ転送回路。
【請求項２】
電子機器に接続された小型記憶媒体から前記電子機器内部にデータを転送するためのデータ転送回路であって、
複数のＦＩＦＯメモリの中から、前記小型記憶媒体から読み出した前記データを書き込むための１つのＦＩＦＯメモリを選択するとともに、前記１つのＦＩＦＯメモリ以外から前記データを読み出すためのＦＩＦＯメモリを選択して割込信号を発生するメモリ制御回路と、
前記小型記憶媒体から前記データを読み出して前記１つのＦＩＦＯメモリに書き込むサイクル発生回路と
を備えていることを特徴とするデータ転送回路。
【請求項３】
前記メモリ制御回路は、
前記複数のＦＩＦＯメモリと、
前記複数のＦＩＦＯメモリに対応して、前記データが記憶されていることを示す第１の値又は前記データが記憶されていないことを示す第２の値のいずれかが記憶されるステータスレジスタと、
次回に読み出すべき前記データが記憶されたＦＩＦＯメモリを示す第１の番号を保持し、前記第１の番号のＦＩＦＯメモリからのデータ読み出しが終了した場合に前記第１の番号に対応した前記ステータスレジスタの値を前記第２の値にセットするとともに、前記第１の番号に１をインクリメントし、前記第１の番号に対応した前記ステータスレジスタの値が前記第１の値である場合には前記割込信号を発生する第１の制御回路と、
次回に前記データを書き込むべきＦＩＦＯメモリを示す第２の番号を保持し、前記第２の番号のＦＩＦＯメモリへのデータ書き込みが終了した場合に前記第２の番号に対応した前記ステータスレジスタの値を前記第１の値にセットするとともに、前記第２の番号に１をインクリメントし、前記第２の番号に対応した前記ステータスレジスタの値が前記第２の値である場合には前記データがないことを示すエンプティ信号を発生する第２の制御回路と
を備えていることを特徴とする請求項２記載のデータ転送回路。
【請求項４】
前記サイクル発生回路は、前記小型記憶媒体から割込信号が供給された場合に内部のカウンタのカウント値を所定の値に設定し、前記メモリ制御回路から前記データがないことを示すエンプティ信号が供給された場合に所定のデータ転送速度で前記小型記憶媒体からの前記データの読み出しと前記メモリ制御回路への前記データの供給を前記カウンタの前記所定の値の分だけ行うバーストサイクル発生回路を備えていることを特徴とする請求項２又は３記載のデータ転送回路。
【請求項５】
請求項１乃至４のいずれかに記載のデータ転送回路を備えていることを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンパクトフラッシュ（登録商標）等の小型記憶媒体とデジタル・スチル・カメラやパチンコ機等の電子機器との間でデータ転送を行う際に用いられるデータ転送回路及びこのようなデータ転送回路を備えた電子機器に関する。
【背景技術】
【０００２】
従来のデータ転送回路は、入出力装置にアクセスしアクセス終了時に割込みを発生させるプログラム入出力ユニットと、割込みハンドラとを備えている。割込みハンドラは、ＣＰＵ（中央処理装置）によって実行され、かつ上記割込みに応答する。この割込みハンドラは、プログラム入出力ユニットと割込みと割込みハンドラとを繰り返し使用して実行される、プログラムされた入出力シーケンスの制御機能及びデータ管理機能を実行する。これらの構成要素が協働することにより、プログラム入出力が専用入出力プロセッサによって実行されているかのようにＣＰＵの入出力の多数のシーケンスが実行される（例えば、特許文献１参照。）。以下、この技術を第１の従来例と呼ぶ。
【０００３】
また、従来のデータ転送回路には、シーケンス・コントローラと、記憶媒体とメインメモリとの間に介在する双方向（ＦＩＦＯ； First in First out ）メモリと、正常終了値を格納する第１レジスタと、記憶媒体の状態を示す状態値を格納する第２レジスタと、第２レジスタに格納した状態値と第１レジスタに格納した正常終了値とが一致すると転送要求信号を出力し、不一致になると異常信号を出力する比較回路と、記憶媒体の各セグメントのデータ転送が終了する度に計数するカウンタとを備えているものもある。シーケンス・コントローラは、転送要求信号が供給されている期間はデータ転送を各セグメントごとに順次許可して継続させ、異常信号が供給された時点でＣＰＵに割込要求を発してデータ転送を中止させている（例えば、特許文献２参照。）。以下、この技術を第２の従来例と呼ぶ。
【０００４】
【特許文献１】特開平９−２６９２８号公報（［００２４］〜［００３４］、図１，図６，図７）
【特許文献２】特開２００２−２０２９４８号公報（［００１４］，［００１５］、図２）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記したように、第１の従来例では、プログラム入出力ユニットと割込みハンドラとが協働することにより、プログラム入出力が専用入出力プロセッサによって実行されているかのようにＣＰＵの入出力の多数のシーケンスが実行されている。しかしながら、上記した第１の従来例は、割込みハンドラ自体はＣＰＵが実行しているので、ＣＰＵの動作クロックの周波数があまり高くない場合には、ＣＰＵサイクルとＣＰＵサイクルとの間の時間が長くなり、結果としてデータ転送レートが低下してしまう。また、ＣＰＵの負担はあまり軽減されない。
この点、上記した第２の従来例では、メインメモリとの間のデータ転送にダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）を用いているので、一般的には、ＣＰＵの負担も少なく、高速にデータ転送を行うことができる。
【０００６】
ところが、コンパクトフラッシュ（登録商標）等の小型記憶媒体から電子機器にデータを転送する場合、小型記憶媒体自体のアクセス速度が遅いため、ＤＭＡＣを用いてＦＩＦＯメモリからメインメモリへのデータ転送速度を速くしても実質的なデータ転送レートは向上しないという課題があった。以下その理由を示す。すなわち、この種の小型記憶媒体には、高集積化や単一電源動作が可能であるなどの理由により比較的安価なナンド（ＮＡＮＤ）型のフラッシュメモリが用いられている。このナンド型のフラッシュメモリは、セクタ単位でアクセスされるが、１つのセクタからのデータ読み出しを終了した後他のセクタからのデータ読み出しを開始するまで時間が長くかかるので、ＤＭＡＣを用いても実質的なデータ転送レートは向上しないのである。また、上記電子機器に使用されているＣＰＵがＤＭＡＣとメインバスを共有している場合、メインバスの専有に対する調停等によるオーバーヘッドや、ＤＭＡ転送中の待ち時間の増大等がＣＰＵによるリアルタイム処理に影響を与えるという課題があった。さらに、ＤＭＡＣを用いることにより電子機器の回路規模が増大するため、電子機器の価格が高くなるなどの課題があった。
【０００７】
本発明は、上述のような課題を解決するためになされたもので、その目的は、動作クロック周波数が高くないＣＰＵを用いる場合であっても、ＤＭＡ転送を用いることなく、安価かつ簡単な構成で、ＣＰＵの負担が少なく、小型記憶媒体と電子機器との間で高速にデータ転送を行うことができるデータ転送回路及び電子機器を得るものである。
【課題を解決するための手段】
【０００８】
本発明に係るデータ転送回路は、電子機器に接続された小型記憶媒体から上記電子機器内部にデータを転送するためのものであり、上記小型記憶媒体から上記データを読み出して複数のＦＩＦＯメモリから選択した１つのＦＩＦＯメモリに書き込むとともに、上記１つのＦＩＦＯメモリ以外から上記データを読み出すためのＦＩＦＯメモリを選択し割込信号を発生している。
本発明によれば、小型記憶媒体からデータ転送回路へのデータ転送にはＣＰＵが関与しないので、上記電子機器に動作クロック周波数が高くないＣＰＵを用いる場合であっても、ＤＭＡ転送を用いることなく、安価かつ簡単な構成で、ＣＰＵの負担が少なく、小型記憶媒体と電子機器との間で高速にデータ転送を行うことができる。
【０００９】
また、本発明に係るデータ転送回路は、電子機器に接続された小型記憶媒体から上記電子機器内部にデータを転送するためのものであり、複数のＦＩＦＯメモリの中から、上記小型記憶媒体から読み出した上記データを書き込むための１つのＦＩＦＯメモリを選択するとともに、上記１つのＦＩＦＯメモリ以外から上記データを読み出すためのＦＩＦＯメモリを選択して割込信号を発生するメモリ制御回路と、上記小型記憶媒体から上記データを読み出して上記１つのＦＩＦＯメモリに書き込むサイクル発生回路とを備えている。
本発明によれば、メモリ制御回路は、複数のＦＩＦＯメモリの中から、上記小型記憶媒体から読み出した上記データを書き込むための１つのＦＩＦＯメモリを選択するとともに、上記１つのＦＩＦＯメモリ以外から上記データを読み出すためのＦＩＦＯメモリを選択して割込信号を発生する。一方、サイクル発生回路は、上記小型記憶媒体から上記データを読み出して上記１つのＦＩＦＯメモリに書き込んでいる。したがって、小型記憶媒体からデータ転送回路へのデータ転送にはＣＰＵが関与しないので、上記電子機器に動作クロック周波数が高くないＣＰＵを用いる場合であっても、ＤＭＡ転送を用いることなく、安価かつ簡単な構成で、ＣＰＵの負担が少なく、小型記憶媒体と電子機器との間で高速にデータ転送を行うことができる。
【００１０】
また、本発明に係るデータ転送回路では、上記メモリ制御回路は、上記複数のＦＩＦＯメモリと、上記複数のＦＩＦＯメモリに対応して、上記データが記憶されていることを示す第１の値又は上記データが記憶されていないことを示す第２の値のいずれかが記憶されるステータスレジスタと、次回に読み出すべき上記データが記憶されたＦＩＦＯメモリを示す第１の番号を保持し、上記第１の番号のＦＩＦＯメモリからのデータ読み出しが終了した場合に上記第１の番号に対応した上記ステータスレジスタの値を上記第２の値にセットするとともに、上記第１の番号に１をインクリメントし、上記第１の番号に対応した上記ステータスレジスタの値が上記第１の値である場合には上記割込信号を発生する第１の制御回路と、次回に上記データを書き込むべきＦＩＦＯメモリを示す第２の番号を保持し、上記第２の番号のＦＩＦＯメモリへのデータ書き込みが終了した場合に上記第２の番号に対応した上記ステータスレジスタの値を上記第１の値にセットするとともに、上記第２の番号に１をインクリメントし、上記第２の番号に対応した上記ステータスレジスタの値が上記第２の値である場合には上記データがないことを示すエンプティ信号を発生する第２の制御回路とを備えている。
本発明によれば、第１の制御回路は、保持している第１の番号のＦＩＦＯメモリからのデータ読み出しが終了した場合に上記第１の番号に対応した上記ステータスレジスタの値を上記第２の値にセットするとともに、上記第１の番号に１をインクリメントし、上記第１の番号に対応した上記ステータスレジスタの値が上記第１の値である場合には上記割込信号を発生する。一方、第２の制御回路は、保持している第２の番号のＦＩＦＯメモリへのデータ書き込みが終了した場合に上記第２の番号に対応した上記ステータスレジスタの値を上記第１の値にセットするとともに、上記第２の番号に１をインクリメントし、上記第２の番号に対応した上記ステータスレジスタの値が上記第２の値である場合にはエンプティ信号を発生している。したがって、小型記憶媒体からデータ転送回路へのデータ転送にはＣＰＵが関与しないので、上記電子機器に動作クロック周波数が高くないＣＰＵを用いる場合であっても、ＤＭＡ転送を用いることなく、安価かつ簡単な構成で、ＣＰＵの負担が少なく、小型記憶媒体と電子機器との間で高速にデータ転送を行うことができる。
【００１１】
また、本発明に係るデータ転送回路では、上記サイクル発生回路は、上記小型記憶媒体から割込信号が供給された場合に内部のカウンタのカウント値を所定の値に設定し、上記メモリ制御回路から上記データがないことを示すエンプティ信号が供給された場合に所定のデータ転送速度で上記小型記憶媒体からの上記データの読み出しと上記メモリ制御回路への上記データの供給を上記カウンタの上記所定の値の分だけ行うバーストサイクル発生回路を備えている。
本発明によれば、バーストサイクル発生回路は、上記小型記憶媒体から割込信号が供給された場合に内部のカウンタのカウント値を所定の値に設定し、上記メモリ制御回路からデータがないことを示す信号が供給された場合に所定のデータ転送速度で上記小型記憶媒体からの上記データの読み出しと上記メモリ制御回路への上記データの供給を上記カウンタの上記所定の値の分だけ行っている。したがって、小型記憶媒体からデータ転送回路へのデータ転送にはＣＰＵが関与しないので、上記電子機器に動作クロック周波数が高くないＣＰＵを用いる場合であっても、ＤＭＡ転送を用いることなく、安価かつ簡単な構成で、ＣＰＵの負担が少なく、小型記憶媒体と電子機器との間で高速にデータ転送を行うことができる。
【００１２】
また、本発明に係る電子機器は、上記したデータ転送回路のいずれかを備えている。
本発明によれば、小型記憶媒体からデータ転送回路へのデータ転送にはＣＰＵが関与しないので、動作クロック周波数が高くないＣＰＵを用いる場合であっても、ＤＭＡ転送を用いることなく、安価かつ簡単な構成で、ＣＰＵの負担が少なく、小型記憶媒体と電子機器との間で高速にデータ転送を行うことができる。
【発明を実施するための最良の形態】
【００１３】
図１は、本発明の実施の形態におけるデータ転送回路１を備えた電子機器の要部に小型記憶媒体５が接続された状態を示すブロック図である。
この例の電子機器は、データ転送回路１と、ＣＰＵ２と、メインメモリ３とを有しており、データ転送回路１及びＣＰＵ２、メインメモリ３は互いにメインバス４を介して接続されている。また、この例の電子機器は、小型記憶媒体５が接続可能に構成されている。データ転送回路１は、ＣＰＵ２により設定された動作モードで小型記憶媒体５とＣＰＵ２との間で行われるデータ転送を支援する。ＣＰＵ２は、メインメモリ３に記憶された各種プログラムを実行して、メインメモリ３に確保された各種レジスタやフラグを用いて電子機器の各部を制御する。メインメモリ３は、ＲＡＭ、ＲＯＭ、あるいはフラッシュメモリ等の半導体メモリからなり、ＣＰＵ２が実行すべき各種プログラムや各種データが記憶されているとともに、これらのプログラムが実行される際に作業用として用いられる。小型記憶媒体５は、コンパクトフラッシュ（登録商標）等からなり、ナンド型のフラッシュメモリを有し、その記憶容量は例えば、３２メガバイトから１ギガバイトである。
【００１４】
データ転送回路１は、サイクル発生回路６と、メモリ制御回路７とを有している。サイクル発生回路６は、ＣＰＵ２によりＰＩＯモード（ Programmed Input/Output mode ）に設定された場合にはＣＰＵ２が直接小型記憶媒体５にアクセスできるように動作し、ＣＰＵ２によりバーストモードが設定された場合にはＰＩＯモード４の最速タイミングに近いデータ転送速度で小型記憶媒体５から１セクタ（５１２bytes）分のデータを読み出すサイクルを発生する。ここで、ＰＩＯモードとは、ＩＤＥ（ Integrated Drive Electronics ）インターフェイスの正式な規格であるＡＴＡ（ AT Attachment ）におけるデータ転送方式の一種である。ＩＤＥインタフェースとは、米国規格協会（ＡＮＳＩ： American National Standards Institute ）で行っているパーソナルコンピュータとハードディスクを接続するための標準規格である。ＰＩＯモードには、ＰＩＯモード０〜４まで定義されており、それぞれ３．３Mbytes/sec、５．２Mbytes/sec、８．３Mbytes/sec、１１．１Mbytes/sec、１６．７Mbytes/secというデータ転送速度でデータを転送することができる。最近のコンパクトフラッシュ（登録商標）のほとんどがＰＩＯモード４に準拠している。一方、バーストモードとは、小型記憶媒体５からデータ転送回路１へのデータ転送動作をＣＰＵ２が関与することなく連続して行うバースト転送に関するモードである。メモリ制御回路７は、バーストモード時に、内部に有する複数のＦＩＦＯメモリと小型記憶媒体５との間のデータ転送をサイクル発生回路６を介して行う。
【００１５】
次に、サイクル発生回路６の構成について図２に示すブロック図を参照して説明する。サイクル発生回路６は、インタフェース回路１１〜１３と、制御レジスタ１４と、ステータスポーリング回路１５と、コマンド回路１６と、メディアサイクル発生回路１７と、割込検出回路１８と、バーストサイクル発生回路１９とから構成されている。制御レジスタ１４は、動作モードレジスタ２１と、ＬＢＡ（ Logical Block Address ）レジスタ２２と、転送セクタ数レジスタ２３と、コマンドレジスタ２４と、ステータスレジスタ２５とから構成されている。動作モードレジスタ２１は、ＣＰＵ２によって設定されるＰＩＯモード、バーストモード等の各種動作モードに対応した値がＣＰＵ２から供給され、記憶される。ＬＢＡレジスタ２２は、バーストモード時のＬＢＡアドレスがＣＰＵ２から供給され、記憶される。ここで、ＬＢＡとは、本来は現在の一般的なＩＤＥインタフェースを有するハードディスクにおけるアドレス指定方法の１つであって、アクセスされる単位ブロックそれぞれについて、順番に数字を割り当てていき、その数字を指定してアドレスを選択する方法をいう。このＬＢＡは、小型記憶媒体５を構成するフラッシュメモリにも適用されている。そして、ＬＢＡアドレスは、ＬＢＡに基づいて付与されたアドレスであり、ＩＤＥインタフェースを有するハードディスクは、５１２bytesを１セクタとしこのセクタごとに分割され、その先頭から順にＬＢＡアドレスが付与されている。この例の小型記憶媒体５においても、ハードディスクの場合と同様に、５１２bytesを１セクタとしこのセクタごとに分割され、その先頭から順にＬＢＡアドレスが付与されているものとする。
【００１６】
転送セクタ数レジスタ２３は、バーストモード時に転送すべきセクタの総数（以下、転送セクタ数と呼ぶ。）がＣＰＵ２から供給され、記憶される。コマンドレジスタ２４は、ＰＩＯモード時にはＣＰＵ２が小型記憶媒体５に転送を希望するコマンドがＣＰＵ２から供給されて記憶される。また、コマンドレジスタ２４は、バーストモード時には小型記憶媒体５からデータを読み出すためのリードコマンドが供給され、記憶される。ステータスレジスタ２５は、小型記憶媒体５の現在の状態を示すステータス情報が小型記憶媒体５から供給され、記憶される。このステータスレジスタ２５に記憶されたステータス情報は、ＣＰＵ２による読み出し可能に構成されている。
【００１７】
ステータスポーリング回路１５は、メディアサイクル発生回路１７及びインタフェース回路１３を介して小型記憶媒体５のステータス情報を読み出し、当該ステータス情報が小型記憶媒体５が使用可能であることを示す場合には、コマンド回路１６に準備完了信号ＳREを供給する。一方、当該ステータス情報が小型記憶媒体５が使用不可能であることを示す場合には、ステータスポーリング回路１５は、小型記憶媒体５が使用可能になるか又は予め設定された時間が経過するまで定期的にメディアサイクル発生回路１７及びインタフェース回路１３を介して小型記憶媒体５のステータス情報を読み出す。
【００１８】
コマンド回路１６は、ステータスポーリング回路１５から準備完了信号ＳREが供給された場合には、制御レジスタ１４を構成するＬＢＡレジスタ２２及び転送セクタ数レジスタ２３、コマンドレジスタ２４のそれぞれから、ＬＢＡアドレス及び転送セクタ数、コマンドを読み出し、転送セクタ数を内部のカウントレジスタ２６に記憶するとともに、メディアサイクル発生回路１７及びインタフェース回路１３を介して小型記憶媒体５にアドレスＡＤとしてのＬＢＡアドレスと、「１」に設定した転送セクタ数とを供給した後、コマンドをコマンドＣＭＤとして供給する。また、コマンド回路１６は、バーストサイクル発生回路１９から、１セクタ分のデータ転送が終了したことを示すセクタリード終了信号ＳSRが供給された場合には、カウントレジスタ２６のカウント値を値「０」と比較し、カウント値が値「０」である場合には、小型記憶媒体５へのアドレスＡＤ及び「１」に設定した転送セクタ数、コマンドＣＭＤの供給を終了する。一方、バーストサイクル発生回路１９からセクタリード終了信号ＳSRが供給された際のカウントレジスタ２６のカウント値が値「０」でない場合には、コマンド回路１６は、カウントレジスタ２６のカウント値から値「１」を減算した数をカウントレジスタ２６に新たなカウント値として再設定した後、メディアサイクル発生回路１７及びインタフェース回路１３を介して小型記憶媒体５にアドレスＡＤ及び「１」に設定した転送セクタ数を供給した後、コマンドＣＭＤを供給する。
【００１９】
メディアサイクル発生回路１７は、ステータスポーリング回路１５の要求に応じて小型記憶媒体５からインタフェース回路１３を介して供給されるステータス情報をステータスポーリング回路１５に供給するとともに、コマンド回路１６から供給されるＬＢＡアドレスＡＤ及び「１」に設定した転送セクタ数、コマンドＣＭＤと、チップセレクト信号ＣＳとをインタフェース回路１３を介して小型記憶媒体５に供給する。また、メディアサイクル発生回路１７は、バーストモード時には、小型記憶媒体５からインタフェース回路１３を介して供給される１６ビットのパラレルのデータＤＴをバーストサイクル発生回路１９に供給する。さらに、メディアサイクル発生回路１７は、バーストモード時には、内部で生成するサイクルとバーストサイクル発生回路１９で生成するサイクルとの同期をとるために、アドレスＡＤ及びコマンドＣＭＤ、チップセレクト信号ＣＳをバーストサイクル発生回路１９に供給する。
【００２０】
割込検出回路１８は、小型記憶媒体５からインタフェース回路１３を介して割込信号ＳIN1が供給されるか否かを監視し、割込信号ＳIN1が供給された場合には、バースト転送の開始を指示するためのバースト信号ＳBSをバーストサイクル発生回路１９に供給する。バーストサイクル発生回路１９は、制御レジスタ１４からバーストイネーブル信号ＢＥが供給されることにより、イネーブル（活性化）される。バーストサイクル発生回路１９は、バースト信号ＳBSが供給された場合には、内部のサイクルカウンタ２７のカウント値を値「２５５」に設定する。また、イネーブルされたバーストサイクル発生回路１９は、メモリ制御回路７からインタフェース回路１２を介して供給されるエンプティ信号ＳEMがデータがないことを示す値「１」であり、かつ、メディアサイクル発生回路１７から供給されるアドレスＡＤ及びコマンドＣＭＤ、チップセレクト信号ＣＳをデコードしてデータのリードサイクルと認識した場合には、データ書込を指示するためのライト信号ＷＲをクロックに同期して生成しメモリ制御回路７にインタフェース回路１２を介して供給するとともに、ＰＩＯモード４の最速タイミングに近いデータ転送速度で、小型記憶媒体５からのインタフェース回路１３及びメディアサイクル発生回路１７を介しての１６ビットのパラレルのデータＤＴの読み出しと、インタフェース回路１２を介してのメモリ制御回路７への１６ビットのパラレルのデータＤＴの供給を、サイクルカウンタ２７のカウント値（２５６回）の分だけ行う。そして、バーストサイクル発生回路１９は、１セクタ分のデータ転送が終了した場合には、コマンド回路１６にその旨を示すセクタリード終了信号ＳSRを供給する。
【００２１】
次に、メモリ制御回路７の構成について図３に示すブロック図を参照して説明する。メモリ制御回路７は、インタフェース回路３１及び３２と、ＦＩＦＯメモリ３３1〜３３n（ｎは２以上の自然数）と、ステータスレジスタ３４と、制御回路３５及び３６と、ＣＰＵバスセレクタ３７と、メディアバスセレクタ３８とから構成されている。ＦＩＦＯメモリ３３1〜３３nは、それぞれ記憶容量が５１２bytesであり、メディアバスセレクタ３８から供給される対応するライト信号ＷＲ1〜ＷＲnによりイネーブル（活性化）された後、あるクロックに同期して、同じくメディアバスセレクタ３８から供給される対応する１６ビットのパラレルのデータＤＴ1〜ＤＴnを先入れで内部に記憶する。また、ＦＩＦＯメモリ３３1〜３３nは、ＣＰＵバスセレクタ３７から供給される対応するリード信号ＲＥ1〜ＲＥnによりイネーブル（活性化）された後、上記クロックとは非同期の別個のクロックに同期して内部に記憶されたパラレルのデータを先出しで読み出し、ＣＰＵ２のバス幅（例えば、３２ビット又は６４ビット）と同じビット幅のデータＣＤＴ1〜ＣＤＴnとして、ＣＰＵバスセレクタ３７に供給する。なお、ＦＩＦＯメモリ３３1〜３３nを総称するときは、ＦＩＦＯメモリ３３と表す。
【００２２】
ステータスレジスタ３４は、ｎビットのビット幅を有し、ｎ個のＦＩＦＯメモリ３３1〜３３nにデータが記憶されているか否かを値「０」（データが記憶されている状態）（第１の値）又は値「１」（データが記憶されていない状態）（第２の値）で示している。なお、ステータスレジスタ３４は、データ転送回路１がリセットされた場合には、すべての値が値「１」（データが記憶されていない状態）に初期化される。
【００２３】
制御回路３５は、その内部の番号レジスタ３９に、ＣＰＵ２が次回に読み出すべきデータが記憶されているＦＩＦＯメモリ３３i（１≦ｉ≦ｎ）に付与されている番号（以下、リードブロック番号と呼ぶ。）ｉ（第１の番号）が記憶されており、当該リードブロック番号ｉをＣＰＵバスセレクタ３７に供給する。制御回路３５は、ＣＰＵバスセレクタ３７から、当該リードブロック番号ｉのＦＩＦＯメモリ３３iからすべてのデータを読み出したことを示すリード終了信号ＳREDが供給された場合には、現在選択されているリードブロック番号ｉに相当するステータスレジスタ３４の値をデータが記憶されていないことを示す値「１」にセットするとともに、番号レジスタ３９に記憶されているリードブロック番号ｉに１をインクリメントする。なお、番号レジスタ３９に記憶されているリードブロック番号ｉが値「ｎ＋１」になった場合には、リードブロック番号ｉが値「０」にリセットされる。また、制御回路３５は、ステータスレジスタ３４からリードブロック番号ｉの値に対応したビットの値を読み出し、その値が値「０」（データが記憶されている状態）である場合には、割込信号ＳIN2を発生してＣＰＵ２に供給する。この割込信号ＳIN2は、ＣＰＵ２がコマンドを供給することにより、インアクティブ状態に戻すことができる。
【００２４】
ＣＰＵバスセレクタ３７は、上記した制御回路３５から供給されたリードブロック番号ｉに対応したＦＩＦＯメモリ３３iを選択して当該ＦＩＦＯメモリ３３iをイネーブルにするためのリード信号ＲＥiを供給するとともに、インタフェース回路３１を介してメインバス４（図１参照）に接続する。また、ＣＰＵバスセレクタ３７は、ＣＰＵ２がＦＩＦＯメモリ３３iからデータを読み出すことを監視し、当該リードブロック番号ｉのＦＩＦＯメモリ３３iからすべてのデータの読み出しが終了した場合には、その旨を示すリード終了信号ＳREDを制御回路３５に供給する。
【００２５】
制御回路３６は、その内部の番号レジスタ４０に、サイクル発生回路６が次回にデータを書き込むべきＦＩＦＯメモリ３３j（１≦ｊ≦ｎ，ｊ≠ｉ）に付与されている番号（以下、ライトブロック番号と呼ぶ。）ｊ（第２の番号）が記憶されており、当該ライトブロック番号ｊをメディアバスセレクタ３８に供給する。制御回路３６は、メディアバスセレクタ３８から、当該ライトブロック番号ｊのＦＩＦＯメモリ３３jにすべてのデータを書き込んだことを示すライト終了信号ＳWEDが供給された場合には、現在選択されているライトブロック番号ｊに相当するステータスレジスタ３４の値をデータが記憶されていることを示す値「０」にセットするとともに、番号レジスタ４０に記憶されているライトブロック番号ｊに１をインクリメントする。なお、番号レジスタ４０に記憶されているライトブロック番号ｊが値「ｎ＋１」になった場合には、ライトブロック番号ｊが値「０」にリセットされる。また、制御回路３６は、ステータスレジスタ３４からライトブロック番号ｊの値に対応したビットの値を読み出し、その値が値「１」（データが記憶されていない状態）である場合には、データがないことを示す値「１」のエンプティ信号ＳEMを発生してサイクル発生回路６に供給する。
【００２６】
メディアバスセレクタ３８は、サイクル発生回路６からインタフェース回路３２を介してライト信号ＷＲが供給された場合には、上記した制御回路３６から供給されたライトブロック番号ｊに対応したＦＩＦＯメモリ３３jを選択して当該ＦＩＦＯメモリ３３jをイネーブルにするためのライト信号ＷＲjを供給するとともに、サイクル発生回路６に接続されているバスに接続する。また、メディアバスセレクタ３８は、サイクル発生回路６がＦＩＦＯメモリ３３jにデータを書き込むことを監視し、当該ライトブロック番号ｊのＦＩＦＯメモリ３３jにすべてのデータの書き込みが終了した場合には、その旨を示すライト終了信号ＳWEDを制御回路３６に供給する。
【００２７】
次に、上記構成の電子機器の動作について説明する。ＣＰＵ２は、メインバス４と、サイクル発生回路６を構成するインタフェース回路１１及び制御レジスタ１４とを介してインタフェース回路１３にアクセスする。また、ＣＰＵ２は、メインバス４及びインタフェース回路１１を介して、制御レジスタ１４を構成する動作モードレジスタ２１にＰＩＯモード又はバーストモードに対応した値を供給することにより、小型記憶媒体５のデータはＰＩＯモード又はバーストモードで転送される。なお、ＣＰＵ２は、電子機器に電源が投入されるなど、システム起動時に、制御レジスタ１４を構成する各レジスタを初期化した後、小型記憶媒体５をＰＩＯモード４に設定する。
【００２８】
次に、バーストモード時における上記電子機器の動作について説明する。ＣＰＵ２は、サイクル発生回路６を構成する制御レジスタ１４の動作モードレジスタ２１にバーストモードに対応した値を供給することにより、制御レジスタ１４からバーストイネーブル信号ＢＥをバーストサイクル発生回路１９に供給させて、バーストサイクル発生回路１９をイネーブルにした後、ＬＢＡレジスタ２２にＬＢＡアドレスを供給し、転送セクタ数レジスタ２３に転送セクタ数を供給し、コマンドレジスタ２４にリードコマンドを供給する。これにより、ステータスポーリング回路１５は、小型記憶媒体５のステータス情報を読み出し、当該ステータス情報が小型記憶媒体５が使用可能であることを示す場合には、コマンド回路１６に準備完了信号ＳREを供給する。一方、当該ステータス情報が小型記憶媒体５が使用不可能であることを示す場合には、ステータスポーリング回路１５は、小型記憶媒体５が使用可能になるか又は予め設定された時間が経過するまで定期的に小型記憶媒体５のステータス情報を読み出す。
【００２９】
そして、ステータスポーリング回路１５から準備完了信号ＳREが供給されると、コマンド回路１６は、ＬＢＡレジスタ２２からＬＢＡアドレスを、転送セクタ数レジスタ２３から転送セクタ数を、コマンドレジスタ２４からリードコマンドを読み出す。次に、コマンド回路１６は、転送セクタ数を内部のカウントレジスタ２６に記憶するとともに、小型記憶媒体５に、メディアサイクル発生回路１７及びインタフェース回路１３を介して、アドレスＡＤとしてのＬＢＡアドレス及び「１」に設定した転送セクタ数を供給した後、リードコマンドを供給する。上記アドレスＡＤ、「１」に設定した転送セクタ数、リードコマンドが小型記憶媒体５に供給された後、割込検出回路１８では、小型記憶媒体５から割込信号ＳIN1が供給されるか否かを監視し、割込信号ＳIN1が供給された場合には、バースト信号ＳBSをバーストサイクル発生回路１９に供給する。また、メディアサイクル発生回路１７は、内部で生成するサイクルとバーストサイクル発生回路１９で生成するサイクルとの同期をとるために、アドレスＡＤ及びコマンドＣＭＤ、チップセレクト信号ＣＳをバーストサイクル発生回路１９に供給する。
【００３０】
一方、メモリ制御回路７の制御回路３６は、その内部の番号レジスタ４０に記憶されているライトブロック番号ｊをメディアバスセレクタ３８に供給するとともに、ステータスレジスタ３４から上記ライトブロック番号ｊの値に対応したビットの値が第１の値（値「１」）である場合には、データがないことを示す値「１」のエンプティ信号ＳEMをサイクル発生回路６に供給する。メディアバスセレクタ３８は、上記制御回路３６から供給されたライトブロック番号ｊに対応したＦＩＦＯメモリ３３jを選択してサイクル発生回路６に接続されているバスに接続する。
【００３１】
したがって、イネーブルされたサイクル発生回路６のバーストサイクル発生回路１９は、バースト信号ＳBSが供給されると、サイクルカウンタ２７のカウント値を値「２５５」に設定した後、制御回路３６から供給されたエンプティ信号ＳEMが値「１」であり、かつ、メディアサイクル発生回路１７から供給されるアドレスＡＤ及びコマンドＣＭＤ、チップセレクト信号ＣＳをデコードしてデータのリードサイクルと認識した場合には、ライト信号ＷＲをクロックに同期して生成しメモリ制御回路７にインタフェース回路１２を介して供給するとともに、ＰＩＯモード４の最速タイミングに近いデータ転送速度で、小型記憶媒体５からの１６ビットのパラレルのデータＤＴの読み出しと、メモリ制御回路７への１６ビットのパラレルのデータＤＴの供給を、サイクルカウンタ２７のカウント値（２５６回）の分だけ行う。サイクル発生回路６からライト信号ＷＲが供給されたメモリ制御回路７では、メディアバスセレクタ３８がライトブロック番号ｊに対応したＦＩＦＯメモリ３３jを選択して当該ＦＩＦＯメモリ３３jにライト信号ＷＲjを供給するので、サイクル発生回路６から供給された１６ビットのパラレルのデータＤＴiがメディアバスセレクタ３８を介して当該ＦＩＦＯメモリ３３jに順次記憶される。そして、１セクタ分のデータ転送が終了すると、バーストサイクル発生回路１９は、コマンド回路１６にセクタリード終了信号ＳSRを供給する。
【００３２】
セクタリード終了信号ＳSRが供給されたコマンド回路１６は、カウントレジスタ２６のカウント値を値「０」と比較し、カウント値が値「０」である場合には、小型記憶媒体５へのアドレスＡＤ及び「１」に設定した転送セクタ数、リードコマンドの供給を終了する。一方、バーストサイクル発生回路１９からセクタリード終了信号ＳSRが供給された際のカウントレジスタ２６のカウント値が値「０」でない場合には、コマンド回路１６は、カウントレジスタ２６のカウント値から値「１」を減算した数をカウントレジスタ２６に新たなカウント値として再設定した後、小型記憶媒体５にアドレスＡＤと、「１」に設定した転送セクタ数とを供給した後、リードコマンドを供給する。
【００３３】
一方、メモリ制御回路７のメディアバスセレクタ３８は、サイクル発生回路６によるＦＩＦＯメモリ３３jへのデータ書き込みを監視し、当該ライトブロック番号ｊのＦＩＦＯメモリ３３jにすべてのデータの書き込みが終了した場合には、ライト終了信号ＳWEDを制御回路３６に供給する。ライト終了信号ＳWEDが供給された制御回路３６は、当該ライトブロック番号ｊのステータスレジスタ３４の値を値「０」にセットするとともに、番号レジスタ４０に記憶されているライトブロック番号ｊに１をインクリメントする。そして、制御回路３６は、ステータスレジスタ３４から読み出した当該ライトブロック番号ｊの値に対応したビットの値が値「１」である場合には、値「１」のエンプティ信号ＳEMをサイクル発生回路６に供給する。
【００３４】
一方、制御回路３５は、その内部の番号レジスタ３９に記憶されているリードブロック番号ｉをＣＰＵバスセレクタ３７に供給するとともに、ステータスレジスタ３４から上記リードブロック番号ｉの値に対応したビットの値が第２の値（値「０」）である場合には、割込信号ＳIN2を発生してＣＰＵ２に供給する。ＣＰＵバスセレクタ３７は、上記制御回路３５から供給されたリードブロック番号ｉに対応したＦＩＦＯメモリ３３iを選択して当該ＦＩＦＯメモリ３３iにリード信号ＲＥiを供給するとともに、インタフェース回路３１を介してメインバス４（図１参照）に接続する。
【００３５】
したがって、ＣＰＵ２は、メインバス４及びインタフェース回路３１、ＣＰＵバスセレクタ３７を介して、当該リードブロック番号ｉのＦＩＦＯメモリ３３iからデータを読み出し、メインバス４を介してメインメモリ３に順次記憶する。ＣＰＵバスセレクタ３７は、ＣＰＵ２が当該リードブロック番号ｉのＦＩＦＯメモリ３３iからデータを読み出すことを監視し、当該リードブロック番号ｉのＦＩＦＯメモリ３３iからすべてのデータの読み出しが終了した場合には、リード終了信号ＳREDを制御回路３５に供給する。リード終了信号ＳREDが供給された制御回路３５は、当該リードブロック番号ｉのステータスレジスタ３４の値を値「１」にセットするとともに、番号レジスタ３９に記憶されているリードブロック番号ｉに１をインクリメントする。そして、制御回路３５は、ステータスレジスタ３４から読み出した当該リードブロック番号ｉの値に対応したビットの値が値「０」である場合には、割込信号ＳIN2を発生してＣＰＵ２に供給する。
【００３６】
以上説明した、上記ライトブロック番号ｊに対応したＦＩＦＯメモリ３３jへのデータ書込と、上記リードブロック番号ｉに対応したＦＩＦＯメモリ３３iからのデータ読み出しとは、それぞれ別個独立に順次繰り返して行われる。そして、ＣＰＵ２が要求した転送セクタ数の分だけのバーストモードによるデータ転送が終了すると、サイクル発生回路６はその動作を停止する。なお、ＰＩＯモード時における上記電子機器の動作については従来の場合と略同様であるので、その説明を省略する。
【００３７】
次に、上記構成のデータ転送回路１の具体的な動作について、図４に示すタイミングチャートを参照して説明する。サイクル発生回路６では、図４（ａ）に示す周波数が６６．６６MHz（周期：15nsec）であるクロックＣＫに同期して各信号を発生する。図４（ｂ）は、コマンド回路１６がメディアサイクル発生回路１７及びインタフェース回路１３を介して小型記憶媒体５に供給するアドレスＡＤ（例えば、Ａ０〜Ａ２の３ビット）であり、そのセットアップタイムは３０nsec（クロックＣＫの２クロック分）である。図４（ｃ）は、ＣＰＵ２が小型記憶媒体５に記憶されたデータＤＴを読み出すためにコマンドレジスタ２４にリードコマンドを設定することにより、インタフェース回路１３を介して小型記憶媒体５に供給される読出信号ＲＯ（コマンドＣＭＤの１つ）であり、そのパルス幅は７５nsec（クロックＣＫの５クロック分）である。したがって、この場合の小型記憶媒体５のサイクルタイムは、ＰＩＯモード４のデータ読み出しのサイクルタイムと同様に、１２０nsec（クロックＣＫの８クロック分）である。
【００３８】
また、図４（ｄ）は、小型記憶媒体５から読み出された１６ビットのパラレルのデータＤＴである。図４（ｅ）は、メモリ制御回路７を構成する、あるライトブロック番号ｊのＦＩＦＯメモリ３３jに書き込まれる書込データＤＴjである。図４（ｆ）は、メディアバスセレクタ３８が書込データＤＴjを上記ライトブロック番号ｊのＦＩＦＯメモリ３３jに書き込ませるために生成したライト信号ＷＲjである。ライト信号ＷＲjは、図４（ｃ）に示す読出信号ＲＯがインアクティブになった最初のクロックＣＫの立ち上がりエッジでアクティブになり、クロックＣＫの必要なクロック数分（ただし、小型記憶媒体５のサイクルタイム以下。）後、インアクティブになる。
図４（ｅ）に示す書込データＤＴjは、図４（ｃ）に示す読出信号ＲＯの立ち上がりでラッチされた後、図４（ｆ）に示すライト信号ＷＲjに同期して上記ライトブロック番号ｊのＦＩＦＯメモリ３３jに順次書き込まれる。
【００３９】
このように、この例の構成によれば、上記ライトブロック番号ｊに対応したＦＩＦＯメモリ３３jへのデータ書込と、上記リードブロック番号ｉに対応したＦＩＦＯメモリ３３iからのデータ読み出しとは、それぞれ別個独立に順次繰り返して行われる。したがって、ＣＰＵ２は、上記ライトブロック番号ｊに対応したＦＩＦＯメモリ３３jへのデータ書込処理が行われている間に、上記リードブロック番号ｉに対応したＦＩＦＯメモリ３３iからのデータ読み出し処理の他、他の処理を実行することができるので、その負担が軽減される。また、小型記憶媒体５からメモリ制御回路７のＦＩＦＯメモリ３３へのデータ書込処理では、タイミングをハードウェアであるサイクル発生回路６が自動的に発生させているので、ＣＰＵの動作クロックの周波数があまり高くない場合であっても、ＣＰＵ２がＰＩＯモードでデータ転送する場合に比べてより高速にデータ転送を行うことができる。
【００４０】
また、この例の構成によるデータ転送は、上記リードブロック番号ｉに対応したＦＩＦＯメモリ３３iからのデータ読み出し処理はＣＰＵ２が行うので、上記第２の従来例のようなデータ転送にＣＰＵが全く関与しないＤＭＡ転送ではないが、上記ライトブロック番号ｊに対応したＦＩＦＯメモリ３３jへのデータ書込処理ではＣＰＵ２が関与していない。したがって、この例の構成によるデータ転送は、いわば擬似的なＤＭＡ転送と呼ぶことができる。しかし、この例の構成によるデータ転送では、ＤＭＡＣを用いていないので、電子機器の回路規模を縮小することができ、その価格も低下させることができるとともに、当然のことながら、ＣＰＵ２はＤＭＡＣとメインバス４を共有することもないので、メインバス４の専有に対する調停等によるオーバーヘッドや、ＤＭＡ転送中の待ち時間の増大等が発生しない。したがって、ＣＰＵ２によるリアルタイム処理は何ら影響を受けない。
【００４１】
以上、この実施の形態を図面を参照して詳述してきたが、具体的な構成はこの実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計の変更等があっても本発明に含まれる。
例えば、上述の実施の形態においては、小型記憶媒体５としてコンパクトフラッシュ（登録商標）を用いる例を示したが、これに限定されない。小型記憶媒体は、ナンド型のフラッシュメモリを用いたものであればどのようなものでも良い。この種の小型記憶媒体としては、例えば、スマートメディア（Smart Media（登録商標））、ＳＤ（Secure Digital（商標名））メモリカード、メモリステック（Memory Stick（登録商標））などがある。ただし、データ転送回路１のインタフェース仕様は各小型記憶媒体に適合したインタフェース仕様とする必要がある。
【００４２】
また、上述の実施の形態においては、バーストモード時にＰＩＯモード４でデータ転送する例を示したが、これに限定されず、ＰＩＯモード０〜４のいずれかをプログラムにより選択できるように構成しても良い。
また、上述の実施の形態においては、電子機器については、その具体例を特に示していないが、例えば、パチンコ機やパチンコ式スロットマシーン等の遊技機、ＰＤＡ（Personal Digital Assistants）、各種ＦＡ（ファクトリ・オートメーション）機器や各種計測器等の産業機器、ＤＶＤレコーダやデジタル・スチル・カメラ等の民生機器など、小型記憶媒体を使用してある程度大容量のデータを取り扱う比較的小型な電子機器であればどのようなものでも良い。
【００４３】
また、上述の実施の形態においては、転送されるデータについては、その具体例を特に示していないが、例えば、ＪＰＥＧ（joint photographic experts group）形式その他の形式で圧縮された静止画像データ、ＭＰＥＧ（Moving Picture Expert Group）形式その他の形式で圧縮された動画像データ、ＯＳや各種ドライバ等のプログラムデータ、各種アプリケーションプログラムで作成されたデータなどがある。
また、上述の実施の形態においては、電子機器は小型記憶媒体５が１個だけ接続可能に構成されている例を示したが、これに限定されず、電子機器は小型記憶媒体５が２個以上接続可能に構成（スロットが２個以上）しても良い。この場合、サイクル発生回路６を構成する制御レジスタ１４には、各スロットに挿入される小型記憶媒体５を識別するためのドライブ番号が記憶されるレジスタを設ける必要がある。
【図面の簡単な説明】
【００４４】
【図１】本発明の実施の形態におけるデータ転送回路を備えた電子機器の要部に小型記憶媒体が接続された状態を示すブロック図である。
【図２】データ転送回路を構成するサイクル発生回路の構成を示すブロック図である。
【図３】データ転送回路を構成するメモリ制御回路の構成を示すブロック図である。
【図４】データ転送回路の動作の一例を説明するためのタイミングチャートである。
【符号の説明】
【００４５】
１  データ転送回路、２  ＣＰＵ、３  メインメモリ、４  メインバス、５  小型記憶媒体、６  サイクル発生回路、７  メモリ制御回路、１１〜１３，３１，３２  インタフェース回路、１４  制御レジスタ、１５  ステータスポーリング回路、１６  コマンド回路、１７  メディアサイクル発生回路、１８  割込検出回路、１９  バーストサイクル発生回路、２１  動作モードレジスタ、２２  ＬＢＡレジスタ、２３  転送セクタ数レジスタ、２４  コマンドレジスタ、２５  ステータスレジスタ、２６  カウントレジスタ、２７  サイクルカウンタ、３３，３３1〜３３n  ＦＩＦＯメモリ、３４  ステータスレジスタ、３５  制御回路（第１の制御回路）、３６  制御回路（第２の制御回路）、３７  ＣＰＵバスセレクタ、３８  メディアバスセレクタ、３９，４０  番号レジスタ。
【図１】
2005092489.tif 000003
【図２】
2005092489.tif 000004
【図３】
2005092489.tif 000005
【図４】
2005092489.tif 000006