(57)【要約】【課題】ＡＨＣＩ準拠のＳＡＴＡホストコントローラにおいて、ＤＭＡ転送のアドレスとサイズの２バイト粒度制約を撤廃すること。  【解決手段】メモリと、前記メモリに記憶されたデータのアドレス及びサイズに関する転送情報を生成する制御手段と、２バイト粒度でアドレス及びデータサイズの指定を行う所定のデータ転送方法に従って前記メモリに記憶されたデータの転送要求を出力し、前記転送要求に応じてメモリから読み出されたデータを記録媒体にデータを転送するホストコントローラと、前記メモリから前記転送情報を読み出し、前記コントローラに送るブリッジ手段とを備え、前記ブリッジ手段は、前記メモリに対し、１バイト粒度で指定されたアドレスに記憶された、１バイト粒度のサイズのデータに関する前記転送情報における前記アドレス及びサイズを２バイト粒度に変換して前記ホストコントローラに送ること。【選択図】    図１
2015215815.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、
前記メモリに記憶されたデータのアドレス及びサイズに関する転送情報を生成する制御手段と、
２バイト粒度でアドレス及びデータサイズの指定を行う所定のデータ転送方法に従って前記メモリに記憶されたデータの転送要求を出力し、前記転送要求に応じてメモリから読み出されたデータを記録媒体にデータを転送するホストコントローラと、
前記メモリから前記転送情報を読み出し、前記コントローラに送るブリッジ手段とを備え、
前記ブリッジ手段は、前記メモリに対し、１バイト粒度で指定されたアドレスに記憶された、１バイト粒度のサイズのデータに関する前記転送情報における前記アドレス及びサイズを２バイト粒度に変換して前記ホストコントローラに送ることを特徴とする記録装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録装置に関する。
【背景技術】
【０００２】
ＤｉｒｅｃｔＭｅｍｏｒｙＡｃｃｅｓｓ転送（以下、ＤＭＡ転送）方式はシステム内のＣＰＵを介さずに、メモリとメモリ間、またはメモリと記録媒体であるデバイス間の高速なデータ転送を実現する転送方式として幅広く使用されている。特にメモリと近年の高速なインターフェースを有する記録媒体間のデータ転送においては必須の転送方式である。
【０００３】
また、ＣＰＵが転送データのアドレス情報やデータサイズ情報を事前にメモリ上に配置しておき、ＤＭＡ転送回路が、メモリ上に配置された転送データのアドレスやデータサイズ情報を順次読み出しながら転送を繰り返す方法も知られている。このような方法は、ディスクリプタチェーン転送と呼ばれる（特許文献１参照）。
【０００４】
ディスクリプタチェーン転送機能を有するＳＡＴＡのホストコントローラ規格であるＡｄｖａｎｃｅｄ  Ｈｏｓｔ  Ｃｏｎｔｒｏｌｌｅｒ  Ｉｎｔｅｒｆａｃｅ（以下、ＡＨＣＩ）が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−２７５５３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ＡＨＣＩ準拠のＳＡＴＡホストコントローラは、ディスクリプタチェーン転送の各ＤＭＡ転送におけるメモリ上のデータアクセスにおいて、２バイト粒度のアクセスであることが規格で定められている。つまり１バイト粒度のアクセスを許容していないことから奇数バイト単位でのメモリアクセスが許容されない。メモリ上のデータをハードディスクドライブなどの記録媒体へＤＭＡ転送を用いて送信する場合に、転送元となるメモリ上のデータの先頭アドレスおよび転送サイズに２バイト粒度という制約が存在することとなる。
【０００７】
そのため、メモリに上に１バイト粒度でアドレス及びサイズのデータを記録媒体に転送するには、メモリから元のデータを順次読み出し、再度メモリに書き込む、いわゆるメモリコピーが必要となる。その際、転送対象のデータを２バイト粒度のＤＭＡ制御回路で扱うことができるようにアドレスを制御する必要がある。またデータサイズにおいても複数のデータを集約させることで、２バイト粒度のＤＭＡ制御回路で扱うことができるように制御する必要がある。つまり、ホストコントローラが２バイト粒度という制約を持つことから、メモリコピーによる冗長なメモリバス帯域が必要になってしまうという問題が生じることとなる。
【０００８】
本発明はこのような問題を解決し、２バイト粒度のアドレス、データサイズを指定可能なＳＡＴＡホストコントローラによりデータを記録する場合に、簡単な構成で１バイト粒度のメモリアクセスが可能な装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明では、メモリと、前記メモリに記憶されたデータのアドレス及びサイズに関する転送情報を生成する制御手段と、２バイト粒度でアドレス及びデータサイズの指定を行う所定のデータ転送方法に従って前記メモリに記憶されたデータの転送要求を出力し、前記転送要求に応じてメモリから読み出されたデータを記録媒体にデータを転送するホストコントローラと、前記メモリから前記転送情報を読み出し、前記コントローラに送るブリッジ手段とを備え、前記ブリッジ手段は、前記メモリに対し、１バイト粒度で指定されたアドレスに記憶された、１バイト粒度のサイズのデータに関する前記転送情報における前記アドレス及びサイズを２バイト粒度に変換して前記ホストコントローラに送る。
【発明の効果】
【００１０】
本発明によれば、２バイト粒度のアドレス、データサイズを指定可能なＳＡＴＡホストコントローラによりデータを記録する場合に、簡単な構成で１バイト粒度のメモリアクセスが可能となる。
【図面の簡単な説明】
【００１１】
【図１】実施形態における記録装置の構成を示すブロック図である。
【図２】ブリッジ回路の構成を示すブロック図である。
【図３】メモリおよび記録媒体のデータ格納イメージ図である。
【図４】ディスクリプタ情報を示す図である。
【図５】ディスクリプタ情報格納フォーマットを示す図である。
【図６】ディスクリプタ情報データを示す図である。
【発明を実施するための形態】
【００１２】
以下に、本発明の好ましい実施の形態を、図面を用いて説明する。
【００１３】
［実施例１］
図１は、本発明の実施形態に係る記録装置の構成例を示すブロック図である。図１のＣＰＵ１０１は記録装置の全体を制御する。メモリ１０３はＤＲＡＭなどの伝送装置内のメモリであり、ＣＰＵ１０１を始めとする後述の各機能ブロックと、メモリバス１０２を介して接続される。映像データ生成部１０４は図示しない撮像部から入力された信号より映像データを生成し、生成した映像データをメモリバス１０２を介してメモリ１０３へ格納する。音声データ生成部１０５は図示しない音声入力部から入力された信号より音声データを生成し、生成した音声データをメモリバス１０２を介してメモリ１０３へ格納する。
【００１４】
ホストコントローラ１０６はＳＡＴＡ規格に準拠し、さらにＳＡＴＡホストコントローラ規格であるＡＨＣＩ規格に準拠したＳＡＴＡホストコントローラである。ホストコントローラ１０６はＤＭＡ制御回路を内蔵し、メモリ１０３と記録媒体１０８間のデータ転送を制御する。さらにホストコントローラ１０６は、ＳＡＴＡインターフェースを有する記録媒体１０８を制御する機能を有する。ブリッジ回路１０７はメモリバス１０２とホストコントローラ１０６間に配置されるバッファを有するブリッジ回路である。本伝送装置は映像データ生成部１０４および音声データ生成部１０５で生成された各データを、メモリバス１０２、メモリ１０３、ブリッジ回路１０７、ホストコントローラ１０６を介して、記録媒体１０８へ伝送する伝送装置である。
【００１５】
次に図２は、図１のブリッジ回路１０７を詳細に示したブロック図である。図２のＣＰＵ１０１、メモリバス１０２、メモリ１０３、映像データ生成部１０４、音声データ生成部１０５、ホストコントローラ１０６、ブリッジ回路１０７、記録媒体１０８は、それぞれ図１に示すＣＰＵ１０１、メモリバス１０２、メモリ１０３、映像データ生成部１０４、音声データ生成部１０５、ホストコントローラ１０６、ブリッジ回路１０７、記録媒体１０８と同じものを示す。
【００１６】
まず、映像データ生成部１０４および音声データ生成部１０５より生成された各データはメモリバス１０２を介してメモリ１０３へ格納される。図３（ａ）に示すデータ１、２、３、４は映像データ生成部１０４および音声データ生成部１０５より生成されたデータであり、メモリ１０３上に散在して格納されているものとする。さらに各データは、図４（ａ）の表に示すように、メモリ１０３上の先頭アドレスおよびデータサイズが１バイト粒度つまり奇数バイトアドレスおよび奇数バイトサイズも含むデータであるものとする。
【００１７】
次にＣＰＵ１０１は、各データの先頭アドレスおよびデータサイズ情報（以下、ディスクリプタ情報）を、図３（ａ）に示すようにメモリ１０３上の連続した領域に書き込む。その際、ＣＰＵ１０１から書き込むディスクリプタ情報のフォーマットを図５に示す。連続したデータ毎にそれぞれのディスクリプタ情報を書き込む必要があり、メモリ１０３上にデータ１、２、３、４の４つの連続したデータが存在するため、ディスクリプタ情報も４つ書き込むことになる。
【００１８】
各ディスクリプタ情報は１６バイトの情報であり、３２ビットの先頭アドレス情報、２２ビットのデータサイズ情報、さらに最終データであることを示す最終フラグより構成される。図３（ｂ）に示すようにデータ１、２、３、４の順に記録媒体１０８の先頭から書き込む場合、最終データに該当するデータ４に対応するディスクリプタ情報のみ最終フラグビットを１に設定する。他のデータ１、２、３に対応するディスクリプタ情報には、最終データでないことを示す０を設定する。
【００１９】
次にＣＰＵ１０１からホストコントローラ１０６へ転送開始を指示すると、ホストコントローラ１０６はブリッジ回路１０７およびメモリバス１０２を介して、メモリ１０３上のディスクリプタ情報を読み出す。ホストコントローラ１０６はメモリ１０３上のディスクリプタ情報の先頭アドレスに対して読み出し要求を出す。メモリ１０３から読み出されたディスクリプタ情報は、メモリバス１０２を介して、ブリッジ回路１０７へ転送される。ブリッジ回路１０７では、セレクタ２０６を介して、ディスクリプタ情報用バッファ２０３へ格納される。
【００２０】
差し替え情報生成部２０４は、ディスクリプタ情報用バッファ２０３に格納されたディスクリプタ情報からホストコントローラ１０６へ送信する差し替え用のデータを生成する。ここでは、メモリ上のデータ１〜４は、図４（ａ）の表に示す先頭アドレスとデータサイズとなっており、各データの先頭アドレス情報とデータサイズを、ＡＨＣＩ規格に準ずる２バイト粒度となる差し替え用のデータを生成する。
【００２１】
ここで、各データに対して、図４（ｂ）の表に示すように差し替えデータを生成する。データ１は先頭アドレス０ｘ００００００００、データサイズ１４バイト。データ２は先頭アドレス０ｘ０００００００Ｅ、データサイズ１４バイト。データ３は先頭アドレス０ｘ００００００１Ｃ、データサイズ２４バイト。データ４は先頭アドレス０ｘ００００００３４、データサイズ１２バイトとする。ディスクリプタ情報差し替え部２０２は、図５に示すフォーマットから先頭アドレス情報とデータサイズ情報を、差し替え情報生成部２０４で生成した差し替え用のデータに差し替える。差し替え後のデータをセレクタ２０７を介して、ホストコントローラ１０６へ送信する。上記差し替え処理によりホストコントローラ１０６はＡＨＣＩ規格に準ずる２バイト粒度のディスクリプタ情報を受信することになる。
【００２２】
次にホストコントローラ１０６は、ブリッジ回路１０７より受信した差し替え処理後のディスクリプタ情報から、実際のデータの読み出しを要求する。まずデータ１に相当する先頭アドレス０ｘ００００００００、データサイズ１４バイトの読み出し要求信号をブリッジ回路１０７へ送信する。
【００２３】
ブリッジ回路１０７はホストコントローラ１０６から送信されたデータ１に対する読み出し要求信号を、アドレス制御部２０１で受信する。ここで、ホストコントローラ１０６から送信されたデータ１の読み出し要求信号を、ディスクリプタ情報用バッファ２０３に格納されたメモリ１０３上の本来のデータ１の先頭アドレス情報である０ｘ０００００００９およびデータサイズ１５バイトに差し替えて出力する。
【００２４】
すると、メモリ１０３上のアドレス０ｘ０００００００９から１５バイト分のデータを読み出し、ブリッジ回路内のセレクタ２０６を介して、データ用バッファ２０５へ１５バイト分のデータを格納する。さらに受信した１５バイトのデータのうち、ホストコントローラ１０６から要求のあった先頭から１４バイト分のデータをセレクタ２０７を介して、ホストコントローラ１０６へ送信する。ここで、余りの１バイト分のデータはデータ用バッファ２０５へ格納したまま保持しておく。
【００２５】
次にホストコントローラ１０６からデータ２に相当する先頭アドレス０ｘ０００００００Ｅ、データサイズ１４バイトの読み出し要求信号をブリッジ回路１０７へ送信する。ブリッジ回路１０７は、ホストコントローラ１０６から送信されたデータ２に対する読み出し要求信号を、アドレス制御部２０１で受信する。そして、データ１と同様に、ディスクリプタ情報用バッファ２０３に格納されたメモリ１０３上の本来のデータ２の先頭アドレス情報である０ｘ００００００２Ａおよびデータサイズ１３バイトに差し替えて出力する。
【００２６】
すると、メモリ１０３上のアドレス０ｘ０００００００９から１５バイト分のデータを読み出し、ブリッジ回路内のセレクタ２０６を介して、データ用バッファ２０５へ１３バイト分のデータを格納する。ホストコントローラ１０６から要求のあった１４バイトのデータとして、既にデータ用バッファ２０５に格納されていた先程の余りの１バイトと、メモリ１０３から読み出した１３バイトのデータを合わせた１４バイト分のデータをホストコントローラ１０６へ送信する。
【００２７】
同様に、データ３に相当する先頭アドレス０ｘ００００００１Ｃ、データサイズ２４バイトの読み出し要求信号をブリッジ回路１０７へ送信する。ブリッジ回路１０７はホストコントローラ１０６から送信されたデータ３に対する読み出し要求信号を、アドレス制御部２０１で受信する。ホストコントローラ１０６から送信されたデータ３の読み出し要求信号を、ディスクリプタ情報用バッファ２０３に格納されたメモリ１０３上の本来のデータ３の先頭アドレス情報である０ｘ００００００４Ｄおよびデータサイズ２５バイトに差し替えて出力する。
【００２８】
すると、メモリ１０３上のアドレス０ｘ００００００４Ｄから２５バイト分のデータを読み出し、ブリッジ回路内のセレクタ２０６を介して、データ用バッファ２０５へ２５バイト分のデータを格納する。さらに受信した２５バイトのデータのうち、ホストコントローラ１０６から要求のあった先頭から２４バイト分のデータをセレクタ２０７を介して、ホストコントローラ１０６へ送信する。ここで、余りの１バイト分のデータはデータ用バッファ２０５へ格納したまま保持しておく。
【００２９】
同様に、データ４に相当する先頭アドレス０ｘ００００００３４、データサイズ１２バイトの読み出し要求信号をブリッジ回路１０７へ送信する。ブリッジ回路１０７は、ホストコントローラ１０６から送信されたデータ４に対する読み出し要求信号を、アドレス制御部２０１で受信し、ディスクリプタ情報用バッファ２０３に格納されたメモリ１０３上の本来のデータ４の先頭アドレス情報である０ｘ００００００７９およびデータサイズ１１バイトに差し替えて出力する。
【００３０】
すると、メモリ１０３上のアドレス０ｘ００００００７９から１１バイト分のデータを読み出し、ブリッジ回路内のセレクタ２０６を介して、データ用バッファ２０５へ１１バイト分のデータを格納する。ホストコントローラ１０６から要求のあった１２バイトのデータとして、既にデータ用バッファ２０５に格納されていた先程の余りの１バイトと、メモリ１０３から読み出した１１バイトのデータを合わせた１２バイト分のデータをホストコントローラ１０６へ送信する。
【００３１】
ホストコントローラ１０６は、ブリッジ回路１０７から受信したデータを所望の単位毎に、記録媒体１０８へ送信し、記録媒体１０８は受信したデータを、図示しない内部のフラッシュに書き込むことで、本シーケンスを終了する。
【００３２】
［実施例２］
実施例１では、ホストコントローラから出力される読み出し要求回数と、ブリッジ回路から出力される読み出し回数が等しくなる制御方法を説明したが、ブリッジ回路から出力される読み出し回数に対して、ホストコントローラからの読み出し回数を削減した転送も可能である。
【００３３】
本実施例の構成は、実施例１で用いた図１と同等であるため説明を省略する。次に、図２は、図１のブリッジ回路１０７を詳細に示したブロック図であり、図２を用いてブリッジ回路を含む制御を説明する。
【００３４】
図２のＣＰＵ１０１、メモリバス１０２、メモリ１０３、映像データ生成部１０４、音声データ生成部１０５、ホストコントローラ１０６、ブリッジ回路１０７、記録媒体１０８は、それぞれ図１に示したものと同じものを示す。
【００３５】
まず、映像データ生成部１０４および音声データ生成部１０５より生成された各データはメモリバス１０２を介してメモリ１０３へ格納される。図３に示すデータ１、２、３、４は前記映像データ生成部１０４および音声データ生成部１０５より生成されたデータであり、メモリ１０３上に散在して格納されているものとする。さらに各データは、図６（ａ）の表に示すように、メモリ１０３上の先頭アドレスおよびデータサイズは奇数バイトサイズも含む１バイト粒度でメモリ１０３上に格納されている。
【００３６】
次にＣＰＵ１０１は、上記各データの先頭アドレスおよびデータサイズ情報（以下、ディスクリプタ情報）を、図３に示すようにメモリ１０３上に書き込む。その際、ディスクリプタ情報のフォーマットを図５に示す。連続したデータ毎にディスクリプタ情報を書き込む。メモリ１０３上にデータ１，２，３，４の４つの連続したデータが存在するため、ディスクリプタ情報も４つ書き込むことになる。
【００３７】
図５のフォーマットについて、各ディスクリプタ情報は１６バイトの情報であり、３２ビットの先頭アドレス情報、２２ビットのデータサイズ情報、さらに最終データであることを示す最終フラグより構成される。最終フラグとは、図３（ｂ）に示すようにデータ１、２、３、４の順に、記録媒体１０８の先頭から書き込む場合、データ４に対応するディスクリプタ情報のみ最終フラグビットを１に設定し、他のデータ１，２，３に対応するディスクリプタ情報には、最終データでないことを示す０を設定する。
【００３８】
次にＣＰＵ１０１からホストコントローラ１０６へ転送開始指示をすると、ホストコントローラ１０６はメモリ１０３上の前記ディスクリプタ情報の読み出し要求信号を出力する。前記ホストコントローラ１０６から出力された読み出し要求信号は、ブリッジ回路１０７内のアドレス制御部２０１を介してメモリ１０３へ送られる。メモリ１０３上に連続して配置されたディスクリプタ情報の先頭アドレスに対する読み出し要求信号を出力することで、まず図３（ａ）に示すデータ１に該当するディスクリプタ情報１をメモリ１０３から読み出し、メモリバス１０２を介してブリッジ回路１０７へ転送する。
【００３９】
ブリッジ回路１０７では、前記ディスクリプタ１をディスクリプタ情報用バッファ２０３へ格納する。さらに、アドレス制御部２０１よりメモリ１０３へ読み出し要求信号を出力する。前記ディスクリプタ情報１と連続したメモリ１０３上の領域にあるディスクリプタ情報２およびディスクリプタ情報３およびディスクリプタ情報４を順次読み出し、それぞれディスクリプタ情報用バッファ２０３へ格納する。
【００４０】
次に差し替え情報生成部２０４は、ディスクリプタ情報用バッファ２０３に格納された図６（ａ）に示すディスクリプタ情報１から４より、ホストコントローラ１０６へ送信する差し替え用のディスクリプタ情報を生成する。ここでは図６（ｂ）に示すように、ディスクリプタ情報１から４に格納されるデータサイズの合計値である６４バイトのデータサイズ情報と、先頭アドレスを０ｘ００００００００とした先頭アドレス情報を生成する。ここで生成する差し替え情報は、ホストコントローラ１０６が扱うことのできる２バイト粒度となる先頭アドレス情報およびデータサイズである必要がある。
【００４１】
次にディスクリプタ情報差し替え部２０２は、差し替え情報生成部２０４で生成された先頭アドレス情報とデータサイズを、図５に示すフォーマットで形成した差し替え処理後のディスクリプタ情報を、ホストコントローラ１０６へ送信する。
【００４２】
次にホストコントローラ１０６は、ブリッジ回路１０７より受信した前記差し替え処理後のディスクリプタ情報より、実際のデータの読み出しの要求信号を送信する。ホストコントローラ１０６からは先頭アドレス０ｘ００００００００、データサイズ６４バイトの読み出し要求信号が送信され、前記要求信号はブリッジ回路１０７内のアドレス制御部２０１で受信する。
【００４３】
アドレス制御部２０１はホストコントローラ１０６よりデータ要求信号を受信すると、ディスクリプタ情報用バッファ２０３に格納されている、前記ディスクリプタ情報１〜４の先頭アドレスおよびデータサイズに差し替えて、メモリ１０３へ読み出し要求信号を出力する。その際、ディスクリプタ情報１〜４の順に順次読み出し要求信号を出力する。さらに各読み出し要求信号に相当するデータ１〜４を順次メモリ１０３から読み出し、読み出したデータをブリッジ回路１０７内のデータ用バッファ２０５へ格納する。
【００４４】
データ用バッファ２０５では、メモリ１０３から読み出したデータ１〜４を順次データを詰めて格納する。ホストコントローラ１０６から送信された要求信号のデータサイズである６４バイトのデータがデータ用バッファ２０５へ格納されたところで、順次データ用バッファ２０５からホストコントローラ１０６へデータを送信する。
【００４５】
ホストコントローラ１０６は、ブリッジ回路１０７から受信したデータを所望単位毎に、記録媒体１０８へ送信し、記録媒体１０８は受信したデータを、図示しない内部のフラッシュに書き込むことで、本シーケンスを終了する。
【符号の説明】
【００４６】
１０１  ＣＰＵ、１０２  メモリバス、１０３  メモリ
【図１】
2015215815.tif 000003
【図２】
2015215815.tif 000004
【図３】
2015215815.tif 000005
【図４】
2015215815.tif 000006
【図５】
2015215815.tif 000007
【図６】
2015215815.tif 000008