(57)【要約】【課題】データの転送順を容易に制御することが可能なバッファ装置及び集積回路装置を提供する。【解決手段】バッファ装置１００は、バッファ１０へのデータの書き込みと、バッファ１０からのデータの読み出しとを行うバッファ装置である。バッファ装置１００は、バッファ１０の書き込みアドレスを順次指定するライトポインタ２０と、バッファ１０の先読み領域を指定するための、先読み領域の先頭アドレス情報を含む先読み領域指定情報を保持する先読み領域指定情報保持部３０と、ライトポインタ２０の値と先頭アドレスとを比較して、ライトポインタ２０の値と先頭アドレスとが一致したときに、先読み領域に書き込まれたデータを順次読み出して転送する先読み動作を開始する制御を行う先読み動作制御部４０と、を含む。【選択図】図１
2007233707.tif 000002
【特許請求の範囲】
【請求項１】
バッファへのデータの書き込みと、前記バッファからのデータの読み出しとを行うバッファ装置において、
前記バッファの書き込みアドレスを順次指定するライトポインタと、
前記バッファの先読み領域を指定するための、前記先読み領域の先頭アドレス情報を含む先読み領域指定情報を保持する先読み領域指定情報保持部と、
前記ライトポインタの値と前記先頭アドレスとを比較して、前記ライトポインタの値と前記先頭アドレスとが一致したときに、前記先読み領域に書き込まれるデータを順次読み出して転送する先読み動作を開始する制御を行う先読み動作制御部と、
を含むバッファ装置。
【請求項２】
請求項１記載のバッファ装置において、
前記先読み領域指定情報は、前記先読み領域の最終アドレス情報を含み、
前記先読み動作制御部は、
前記最終アドレス情報に基づいて前記先読みされるデータの転送が終了したことを検出して、前記先読み動作を終了する制御を行うバッファ装置。
【請求項３】
請求項２記載のバッファ装置において、
前記先読み動作制御部は、
前記ライトポインタの値と前記最終アドレスとが一致したことを検出して、前記先読み動作を終了する制御を行うバッファ装置。
【請求項４】
請求項２記載のバッファ装置において、
前記先読み動作時に前記バッファの読み出しアドレスを順次指定する先読みリードポインタをさらに含み、
前記先読み動作制御部は、
前記先読みリードポインタの値と前記最終アドレスとが一致したことを検出して、前記先読み動作を終了する制御を行うバッファ装置。
【請求項５】
請求項１記載のバッファ装置において、
前記先読み領域指定情報は、先読みされるデータのサイズ情報を含み、
前記先読み動作制御部は、
前記サイズ情報に基づいて前記先読みされるデータの転送が終了したことを検出して、前記先読み動作を終了する制御を行うバッファ装置。
【請求項６】
請求項２から請求項５のいずれかに記載のバッファ装置において、
前記先読み動作の終了を検出して、先読み動作終了信号を生成する先読み動作終了信号生成部をさらに含むバッファ装置。
【請求項７】
請求項１から請求項６のいずれかに記載のバッファ装置において、
前記先読み動作時にデータを転送する転送先のアドレスを指定する転送アドレス情報を保持する、転送アドレス情報保持部をさらに含み、
前記先読み動作制御部は、
前記先読み領域に書き込まれたデータを、前記転送アドレスに転送する制御を行うバッファ装置。
【請求項８】
請求項１から請求項７のいずれかに記載のバッファ装置とＣＰＵとを含む集積回路装置。
【請求項９】
請求項８記載の集積回路装置において、
前記バッファに書き込まれたデータのＤＭＡ転送を制御するＤＭＡコントローラをさらに含み、
前記ＤＭＡコントローラは、前記先読み動作の終了後にＤＭＡ転送を行う集積回路装置。
【請求項１０】
請求項９記載の集積回路装置において、
前記ＤＭＡ転送時に前記バッファの読み出しアドレスを指定するリードポインタと、
前記先読みリードポインタ及び前記リードポインタの一方を選択する選択信号を生成する選択信号生成部と、
前記選択信号に基づいて、前記先読みリードポインタ及び前記リードポインタの一方を選択するポインタセレクタと、
をさらに含む集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バッファ装置及び集積回路装置に関する。
【背景技術】
【０００２】
データの転送処理方式として、ＦＩＦＯ（First In First Out）と呼ばれる処理方式が知られている。この方式では、データは、ポインタにより順に処理されるか、必要によっては、ＣＰＵにより直接アクセスされる。
【特許文献１】特開昭６３−２１９０５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、通常のＦＩＦＯによると、データの転送順を制御することはできず、また、ＣＰＵが直接アクセスする場合には、ＦＩＦＯの動作が止まっている必要があるため、タイミングの制御が困難である。
【０００４】
本発明の目的は、データの転送順を容易に制御することが可能なバッファ装置及び集積回路装置を提供することにある。
【課題を解決するための手段】
【０００５】
（１）本発明に係るバッファ装置は、
バッファへのデータの書き込みと、前記バッファからのデータの読み出しとを行うバッファ装置において、
前記バッファの書き込みアドレスを順次指定するライトポインタと、
前記バッファの先読み領域を指定するための、前記先読み領域の先頭アドレス情報を含む先読み領域指定情報を保持する先読み領域指定情報保持部と、
前記ライトポインタの値と前記先頭アドレスとを比較して、前記ライトポインタの値と前記先頭アドレスとが一致したときに、前記先読み領域に書き込まれるデータを順次読み出して転送する先読み動作を開始する制御を行う先読み動作制御部と、
を含む。
【０００６】
本発明のバッファ装置では、バッファの先読み領域に入力されたデータを、他のデータの読み出し動作に先立って転送する。これによると、ブロック転送を行う場合であっても、データがすべてバッファに書き込まれる前に、特定のデータを転送（先読み）することができる。例えば、ブロック転送されるデータには、データ処理に必要な先行処理を特定するためのデータが含まれていることがあるが、この先行処理を特定するためのデータを、他のデータに先立って転送すれば、データ転送処理（ブロック転送処理）前に先行処理を終わらせることができる。そのため、ブロック転送処理がなされた後に、速やかにデータ処理を開始することができるため、データを高速に処理することが可能になる。
【０００７】
すなわち、本発明のバッファ装置によると、データの転送順序を制御することができ、これにより、効率よくデータ処理を行うことが可能になる。
【０００８】
（２）このバッファ装置において、
前記先読み領域指定情報は、前記先読み領域の最終アドレス情報を含み、
前記先読み動作制御部は、
前記最終アドレス情報に基づいて前記先読みされるデータの転送が終了したことを検出して、前記先読み動作を終了する制御を行ってもよい。
【０００９】
（３）このバッファ装置において、
前記先読み動作制御部は、
前記ライトポインタの値と前記最終アドレスとが一致したことを検出して、前記先読み動作を終了する制御を行ってもよい。
【００１０】
（４）このバッファ装置において、
前記先読み動作時に前記バッファの読み出しアドレスを順次指定する先読みリードポインタをさらに含み、
前記先読み動作制御部は、
前記先読みリードポインタの値と前記最終アドレスとが一致したことを検出して、前記先読み動作を終了する制御を行ってもよい。
【００１１】
（５）このバッファ装置において、
前記先読み領域指定情報は、先読みされるデータのサイズ情報を含み、
前記先読み動作制御部は、
前記サイズ情報に基づいて前記先読みされるデータの転送が終了したことを検出して、前記先読み動作を終了する制御を行ってもよい。
【００１２】
このバッファ装置は、例えば、先読み領域の最終アドレスを算出するための演算器を備えていてもよい。該演算器によって、先読み領域の先頭アドレスとデータのサイズとを加算すれば、先読み領域の最終アドレスを算出することができる。そして、先読み動作制御部は、算出された最終アドレスとライトポインタの値（先読みリードポインタの値）とが一致したことを検出して、先読み動作を終了する制御を行ってもよい。
【００１３】
あるいは、このバッファ装置は、例えば、先読み動作の動作回数をカウントするカウンタを備えていてもよい。そして、先読み動作制御部は、カウンタの値とデータのサイズ情報とを比較して、先読みされるデータの転送が終了したことを検出して、先読み動作を終了する制御を行ってもよい。
【００１４】
（６）このバッファ装置において、
前記先読み動作の終了を検出して、先読み動作終了信号を生成する先読み動作終了信号生成部をさらに含んでいてもよい。
【００１５】
これによると、例えばＣＰＵが、先読み動作の終了を検知することができる。そのため、先読みデータを利用した先行処理が可能になる。
【００１６】
（７）このバッファ装置において、
前記先読み動作時にデータを転送する転送先のアドレスを指定する転送アドレス情報を保持する、転送アドレス情報保持部をさらに含み、
前記先読み動作制御部は、
前記先読み領域に書き込まれたデータを、前記転送アドレスに転送する制御を行ってもよい。
【００１７】
（８）本発明に係る集積回路装置は、上記いずれかのバッファ装置とＣＰＵとを含む。
【００１８】
（９）この集積回路装置において、
前記バッファに書き込まれたデータのＤＭＡ転送を制御するＤＭＡコントローラをさらに含み、
前記ＤＭＡコントローラは、前記先読み動作の終了後にＤＭＡ転送を行ってもよい。
【００１９】
これにより、先行データを利用した効率のよいデータ処理が可能になるため、データ処理の効率を高めることができる。
【００２０】
（１０）この集積回路装置において、
前記ＤＭＡ転送時に前記バッファの読み出しアドレスを指定するリードポインタと、
前記先読みリードポインタ及び前記リードポインタの一方を選択する選択信号を生成する選択信号生成部と、
前記選択信号に基づいて、前記先読みリードポインタ及び前記リードポインタの一方を選択するポインタセレクタと、
をさらに含んでもよい。
【発明を実施するための最良の形態】
【００２１】
以下、本発明を適用した実施の形態について図面を参照して説明する。ただし、本発明は以下の実施の形態に限定されるものではない。また、本発明は、以下の内容を自由に組み合わせたものを含むものとする。
【００２２】
本実施の形態では、バッファ装置１００は、集積回路装置１として構成されている。以下、バッファ装置１００及び集積回路装置１について説明する。
【００２３】
（１）バッファ装置１００の構成
バッファ装置１００は、バッファ１０へのデータ（入力データ３１０）の書き込みと、バッファ１０からのデータ（出力データ３２０）の読み出しとを行う装置である。バッファ装置１００は、例えば、クロック周波数の異なる複数の回路の間に配置され、該回路相互間でのデータの転送を制御する装置として構成されていてもよい。
【００２４】
バッファ装置１００は、バッファ１０を含む。バッファ１０は、データを一時記憶する機能を有する。バッファ１０は、既に公知となっているいずれかの構成のバッファを利用することができる。バッファ１０として、例えば、リングバッファを利用してもよい。
【００２５】
バッファ装置１００は、バッファ１０の書き込みアドレスを順次指定するライトポインタ２０を含む。ライトポインタ２０は、バッファ１０へのデータの書き込み動作時に、データを書き込むアドレスを順次指定する。そして、入力データ３１０は、ライトポインタ２０が指定したアドレスに格納される。ライトポインタ２０は、ＣＰＵがその位置情報を読み出すことが可能に構成されていてもよい。
【００２６】
バッファ装置１００は、先読み領域指定情報保持部３０を含む。先読み領域指定情報保持部３０には、バッファ１０の先読み領域を指定するための、先読み領域指定情報が保持される。そして、先読み領域に書き込まれたデータは、他のデータに先立って読み出される（先読み動作）。
【００２７】
本実施の形態では、先読み領域指定情報保持部３０は、第１及び第２の位置指定レジスタ３２，３４を含む。第１の位置指定レジスタ３２には、先読み領域の先頭アドレス情報が保持される。そして、第２の位置指定レジスタ３４には、先読み領域の最終アドレス情報が保持される。すなわち、本実施の形態では、先読み領域指定情報は、バッファ１０の先読み領域の先頭アドレス情報、及び、バッファ１０の先読み領域の最終アドレス情報を含む。第１の位置指定レジスタ３２をスタートポインタと、第２の位置指定レジスタ３４をエンドポインタと、それぞれ称してもよい。
【００２８】
なお、第１及び第２の位置指定レジスタ３２，３４には、例えばＣＰＵによって、アドレス情報を設定することができる。
【００２９】
バッファ装置１００は、先読み動作制御部４０を含む。先読み動作制御部４０は、ライトポインタの値と先頭アドレスとが一致したときに、先読み領域に書き込まれるデータを順次読み出して転送する先読み動作を開始する制御を行う。言い換えると、先読み動作制御部４０は、先読み領域にデータが書き込まれたことを検出して、先読み動作を開始する制御を行う。なお、先読み動作は、先読み領域に書き込まれるデータを順次読み出して転送する動作であり、先読み領域に書き込まれるデータを先入れ先出しで読み出す動作であるといえる。
【００３０】
バッファ装置１００は、先読みリードポインタ４２を含む。先読みリードポインタ４２は、先読み動作時に先読み領域のアドレスを順次指定し、指定されたアドレスに格納されたデータが順次読み出される。
【００３１】
バッファ装置１００は、リードポインタ４４を含む。リードポインタ４４は、データ読み出し動作（ＤＭＡ転送）時に読み出しデータのアドレスを順次指定し、指定されたアドレスに格納されたデータが順次読み出される。すなわち、バッファ装置１００では、先読み動作及びＤＭＡ転送で、異なるリードポインタを利用する。
【００３２】
バッファ装置１００は、ポインタセレクタ４６を含む。ポインタセレクタ４６は、先読みリードポインタ４２及びリードポインタ４４の一方を選択する。そして、先読みリードポインタ４２及びリードポインタ４４のうち、選択されたポインタが指定するアドレスからデータが読み出される。すなわち、バッファ装置１００では、先読みリードポインタ４２とリードポインタ４４とのいずれかが指定するアドレスに格納されたデータが、出力データ３２０として読み出される。なお、出力データ３２０は、例えばデータバスへ送られる。
【００３３】
バッファ装置１００は、選択信号生成部４５を含む。選択信号生成部４５は、先読みリードポインタ４２及びリードポインタ４４の一方を選択する選択信号３３０を生成する。例えば、先読み動作制御部４０が、ライトポインタ２０の値と先頭アドレスとが一致したことを検出すると、選択信号生成部４５が選択信号３３０を生成し、ポインタセレクタ４６に送信する。そして、ポインタセレクタ４６は、選択信号３３０に従って先読みリードポインタ４２を選択し、先読み動作が開始される。
【００３４】
バッファ装置１００は、比較器５０を含む。比較器５０は、ライトポインタ２０の値（ライトポインタ２０が指定するアドレス（書き込みアドレス））と、先読み領域の先頭のアドレス（第１の位置指定レジスタ３２に格納されているアドレス情報）とを比較するように構成されている。比較器５０は、ライトポインタ２０の値と先頭アドレスとが一致したことを検出し、制御部４０に検出信号を送るように構成されていてもよい。これにより、制御部４０は、ライトポインタ２０の値と先頭アドレスとが一致したことを検出することができる。
【００３５】
比較器５０は、また、先読みリードポインタ４２の値（先読みリードポインタ４２が指定するアドレス（読み出しアドレス））と、先読み領域の最終アドレス（第２の位置指定レジスタ３４に格納されているアドレス情報）とを比較するように構成されていてもよい。比較器５０は、先読みリードポインタ４２の値と最終アドレスとが一致したことを検出し、制御部４０に検出信号を送るように構成されていてもよい。これにより、制御部４０は、先読みリードポインタ４２の値と最終アドレスとが一致したことを検出することができる。すなわち、制御部４０は、先読み領域へのデータの書き込みが終了したことを検出することができる。
【００３６】
あるいは、比較器５０は、ライトポインタ２０の値と、先読み領域の最終アドレスとを比較するように構成されていてもよい。比較器５０は、ライトポインタ２０の値と最終アドレスとが一致したことを検出し、制御部４０に検出信号を送るように構成されていてもよい。これにより、制御部４０は、ライトポインタ２０の値と最終アドレスとが一致したことを検出することができる。すなわち、この構成をとった場合でも、制御部４０は、先読み領域へのデータの書き込みが終了したことを検出することができる。
【００３７】
先読み動作制御部４０は、先読み領域へのデータの書き込みが終了したことを検出して、先読み動作を終了する制御を行う。例えば、先読み動作制御部４０が先読みリードポインタ４２の値と最終アドレスとが一致したことを検出すると、選択信号生成部４５が選択信号３３０を生成し、ポインタセレクタ４６に送信する。ポインタセレクタ４６が、選択信号３３０に従って先読みリードポインタ４２の選択を解除することで、先読み動作を終了するように構成されていてもよい。
【００３８】
なお、比較器５０は、少なくとも先読み動作が終了するまでの間、ライトポインタ２０の値と、先読みリードポインタ４２の値と、第１及び第２の位置指定レジスタ３２，３４に格納されているアドレス情報とを、常に比較するように構成されていてもよい。
【００３９】
バッファ装置１００は、転送アドレス情報保持部５２を含む。転送アドレス情報保持部５２は、先読み動作時にデータを転送する転送先のアドレスを指定する転送アドレス情報を保持する。そして、先読み動作制御部４０は、転送アドレスに、先読みデータを転送する。転送アドレス情報保持部５２は、制御部４０の一部として構成されていてもよい。そして、制御部４０は、先読みデータ転送アドレス３４０を送信するように構成されていてもよい。先読みデータ転送アドレス３４０は、例えばアドレスバスに送られる。先読みデータの転送先アドレス情報は、例えばＣＰＵによって設定することができる。
【００４０】
バッファ装置１００は、割り込み信号生成部５４を含む。割り込み信号生成部５４は、割り込み信号３５０を生成する。割り込み信号３５０は、先読み動作の終了を通知する信号である。割り込み信号３５０は、例えばＣＰＵに送られる。これにより、ＣＰＵは、読み出し動作（先読み動作）の終了を検出することができる。すなわち、割り込み信号生成部５４は、広義には、先読み動作終了信号を生成する先読み動作終了信号生成部と呼ぶことができる。
【００４１】
なお、バッファ装置１００は、ＤＭＡリクエスト信号生成部（図示せず）をさらに含んでいてもよい。ＤＭＡリクエスト信号生成部は、一連の入力データ３１０がバッファ１０に格納されたことを検出して、ＤＭＡリクエスト信号を生成する。ＤＭＡコントローラ２２０は、ＤＭＡリクエスト信号を受信し、ＤＭＡ転送を開始する。
【００４２】
（２）バッファ装置１００の動作
以下、バッファ装置１００の動作について説明する。図２は、バッファ装置１００の動作について説明するためのフローチャート図である。
【００４３】
バッファ装置１００は、バッファ１０へのデータ（入力データ３１０）の書き込み動作を行う（ステップＳ１００）。本ステップでは、バッファ１０のうち、ライトポインタ２０が指定したアドレスにデータが書き込まれる。
【００４４】
バッファ装置１００は、バッファ１０の先読み領域にデータが書き込まれたか否かについて判断する（ステップＳ１１０）。例えば、ライトポインタ２０の値が、書き込み領域の先頭アドレスと一致した後であって、書き込み領域の最終アドレスと一致するまでの間は、先読み領域にデータが書き込まれたと判断することができる。
【００４５】
バッファ１０の先読み領域にデータが書き込まれた場合（ステップＳ１１０におけるＹｅｓの場合）には、バッファ装置１００は、当該データを読み出す先読み動作を行う（ステップＳ１２０）。
【００４６】
ただし、バッファ１０の先読み領域ではない領域にデータが書き込まれた場合（ステップＳ１１０におけるＮｏの場合）には、バッファ装置１００は、先読み動作（ステップＳ１２０）を行わない。
【００４７】
そして、バッファ１０にすべてのデータが書き込まれたか否かについて判断し（ステップＳ１３０）、バッファ１０にすべてのデータが書き込まれた場合（ステップＳ１３０におけるＹｅｓの場合）には、ＤＭＡリクエスト信号を送信する（ステップＳ１４０）。そして、後述するＤＭＡＣ２２０がＤＭＡリクエスト信号を受信し、ＤＭＡ転送動作を行う。
【００４８】
なお、バッファ１０にすべてのデータが書き込まれていない場合（ステップＳ１３０におけるＮｏの場合）には、ライトポインタ２０の値をインクリメントし（ステップＳ１５０）、書き込み動作（ステップＳ１００）を繰り返す。
【００４９】
（３）集積回路装置１の構成
図３は、本実施の形態に係るバッファ装置１００を含む集積回路装置１（情報処理装置）の一例である。
【００５０】
図３に示す例では、集積回路装置１は、ＣＰＵ２００、ＩＮＴＣ（割り込みコントローラ）２１０、ＤＭＡＣ（ＤＭＡコントローラ）２２０、ＣＯＰ（通信制御装置）２３０、ＢＵＳ２４０、ＳＹＳＣ／ＢＵＳＣ（システムコントローラ／バスコントローラ）２５０を含んでいる。以下、これらの役割、及び、連関について説明する。
【００５１】
ＣＯＰ２３０は、通信データ３６０を受信する。そして、ＣＯＰ２３０は、バッファ装置１００に、バッファ制御信号３７０及び入力データ３８０を送信するように構成されている。
【００５２】
バッファ装置１００は、ＣＯＰ２３０からの入力データ３８０を一時記憶し、また、先読みデータを転送する先読み動作を行う。
【００５３】
バッファ装置１００は、先読み動作の終了を検出して、ＩＮＴＣ２１０に割り込み信号３９０を送信するように構成されている。ＩＮＴＣ２１０は、割り込み信号３９０に従い、ＣＰＵ２００に割り込み信号４００を送信する。これにより、ＣＰＵ２００が、先読み動作の終了を検知することができる。
【００５４】
バッファ装置１００は、また、ＣＯＰ２３０からのデータがすべてバッファ装置１００（バッファ１０）に格納されたことを検出し、ＤＭＡリクエスト信号４１０を送信するように構成されている。
【００５５】
ＤＭＡＣ２２０は、ＤＭＡ転送を制御する。すなわち、ＤＭＡＣ２２０は、バッファ装置１００からのＤＭＡリクエスト信号４１０を受信して、ＤＭＡ転送を行う。なお、ＤＭＡＣ２２０は、先読み動作の終了後に、ＤＭＡ転送を行う。ＤＭＡＣ２２０は、また、ＤＭＡ転送動作の終了を検出して、ＩＮＴＣ２１０に割り込み信号４２０を送信するように構成されていてもよい。この信号に従い、ＩＮＴＣ２１０がＣＰＵ２００に割り込み信号４００を送信する。これにより、ＣＰＵ２００が、ＤＭＡ転送の終了を検知することができる。
【００５６】
集積回路装置１は、１つのＩＣチップとして構成されていてもよい。また、本実施の形態では、集積回路装置１は、ＢＵＳ２４０を介して、ＲＯＭ２６０−１及びＲＡＭ２６０−２に接続されている。
【００５７】
（４）集積回路装置１の動作
次に、図４を参照して、集積回路装置１の動作について説明する。図４は、ＣＰＵ２００を基準に、集積回路装置１の動作を説明するためのフローチャート図である。
【００５８】
ＣＰＵ２００（集積回路装置１）は、はじめに、ライトポインタ２０のアドレスのチェックを行う（ステップＳ２００）。これにより、ライトポインタ２０の現在のアドレスを確認する。
【００５９】
次に、ライトポインタ２０の現在のアドレスに基づいて、第１の位置指定レジスタ３２に先読み領域の先頭アドレスを設定し（ステップＳ２１０）、第２の位置指定レジスタに先読み領域の最終アドレスを設定する（ステップＳ２２０）。
【００６０】
次に、先読み転送モードを設定し（ステップＳ２３０）、ＤＭＡ転送モードを設定し（ステップＳ２４０）、先読みデータの転送先のアドレスを設定する（ステップＳ２５０）。
【００６１】
次に、先読み動作をイネーブルにし（ステップＳ２６０）、ＣＯＰ受信をイネーブルにする（ステップＳ２７０）。これにより、ＣＯＰ２３０にデータが送信され、バッファ装置１００（バッファ１０）へのデータの入力が開始される。
【００６２】
次に、先読み動作が終了したか否かについて判断する（ステップＳ２８０）。ＣＰＵ２００は、バッファ装置１００（ＩＮＴＣ２１０）からの割り込み信号により、先読み動作の終了を検知することができる。そして、先読み動作の終了を検知すると、先行処理を行う（ステップＳ２９０）。ここで、先行処理とは、先読みデータを利用して行われる処理である。具体例については後で詳述するが、例えば、テーブルを置き換える動作や、ヘッダの作成動作などが挙げられる。
【００６３】
次に、ＤＭＡ転送が終了したか否かについて判断する（ステップＳ３００）。ＣＰＵ２００は、ＤＭＡＣ２２０（ＩＮＴＣ２１０）からの割り込み信号により、ＤＭＡ転送の終了を検知することができる。そして、ＤＭＡ転送の終了を検知すると、ＤＭＡ転送されたデータに基づいて、データ処理動作を行う（ステップＳ３１０）。
【００６４】
（５）効果
バッファ装置１００（集積回路装置１）は、以上のように構成されていてもよい。これによると、例えばデータをブロック転送する場面において、ブロック転送されるデータがすべて揃う前に、データの一部のみを先に転送することができる。例えば、ブロック転送されるデータには、先行処理の内容を指定するデータが含まれることがある。この場合に、先行処理を指示するデータを他のデータに先立って転送することで、データのブロック転送の前に先行処理を終了させることができる。そのため、ブロック転送が行われるとすぐにデータ処理を行うことができるため、情報処理速度を高めることができる。
【００６５】
すなわち、バッファ装置１００によると、バッファ１０からのデータの転送順を容易に変更することができ、これにより、情報処理速度を高めることができる。
【００６６】
（６）具体的な実施例
（６−１）用途
本実施の形態に係るバッファ装置１００（集積回路装置１）は、例えば、次のいずれかに示すデータの転送に利用してもよい。
【００６７】
（Ａ）テーブル変更データ
バッファ装置１００によってテーブル変更データを先読みし、処理に必要なテーブルを設定（指定）する。先読みデータによりテーブルが変更されているため、データが転送（ＤＭＡ転送）されるとすぐに、データを処理する動作を行うことが可能になる。
【００６８】
具体的には、センサやモーター制御によるテーブル変更に適用してもよい。センサによるテーブル変更の例として、温度条件等を先に検出して先読みしてテーブルを置き換えることが挙げられる。また、モーター制御によるテーブル変更の例として、動作シーケンス、負荷情報を判断してテーブルを置き換えることが挙げられる。
【００６９】
（Ｂ）演算パラメータの設定
バッファ装置１００によって演算の仕方を先読みし、その後、データを読み出すことによって、演算速度を速くすることができる。
【００７０】
なお、バッファ装置１００を上述した（Ａ），（Ｂ）の用途に利用する場合、ＣＰＵが先読みしたデータによって予め用意された処理回路の動作モードを設定して、後続のデータを直接回路に転送する形式を採用してもよい。
【００７１】
（Ｃ）暗号の種類を指定
バッファ装置１００によって暗号回路の動作モードを先読みし、設定する。その後、データをＤＭＡにより直接暗号回路に送信することによって、暗号処理速度を速くすることができる。
【００７２】
（Ｄ）ネットワーク通信手順
バッファ装置１００によって、返答に必要なパラメータを先読みする。先読みしたデータをもとに返信データのヘッダを予め作成することができる。
【００７３】
（６−２）データヘッダー形式
上記（Ａ）〜（Ｃ）の用途に利用される場合、データの形式は、例えば以下のようなものであってもよい。
【００７４】
【表１】
2007233707.tif 000003
【００７５】
上記（Ｄ）の用途に利用される場合には、プロトコルによる。
【００７６】
（７）変形例
以下、本発明を適用した実施の形態の変形例に係るバッファ装置について説明する。
【００７７】
本変形例では、先読み領域指定情報は、先読みされるデータ（先読みデータ）のサイズ情報を含む。そして、先読み動作制御部４０は、サイズ情報に基づいて先読みデータの転送が終了したことを検出して、先読み動作を終了する制御を行う。
【００７８】
例えば、バッファ装置は、先頭アドレス及びサイズ情報に基づいて、先読み領域の最終アドレスを算出する演算部を含んでいてもよい。そして、先読み動作制御部は、算出された最終アドレスとリードポインタが指定する読み出しアドレスとが一致したことを検出して、先読み動作を終了する制御を行ってもよい。
【００７９】
あるいは、バッファ装置は、先読み動作の回数をカウントするカウンタを含んでいてもよい。そして、先読み動作制御部は、カウンタの値とデータのサイズ情報とに基づいて、先読みデータの転送が終了したことを検出して、先読み動作を終了する制御を行ってもよい。
【００８０】
あるいは、バッファ装置は、先読みされたデータのサイズをカウントするカウンタを含んでいてもよい。そして、先読み動作制御部は、先読みされたデータのサイズと、先読みデータのサイズ情報とが一致したことを検出して、先読みデータの転送が終了したことを検出して、先読み動作を終了する制御を行ってもよい。
【００８１】
これらの変形例を適用した場合でも、先読みデータの転送が終了したことを検出することができるため、先読み動作制御部は、先読み動作を終了することができる。
【００８２】
なお、本発明は、上述した実施の形態に限定されるものではなく、種々の変形が可能である。例えば、本発明は、実施の形態で説明した構成と実質的に同一の構成（例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成）を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。
【図面の簡単な説明】
【００８３】
【図１】バッファ装置について説明するための図。
【図２】バッファ装置の動作を説明するためのフローチャート図。
【図３】集積回路装置について説明するための図。
【図４】集積回路装置の動作を説明するためのフローチャート図。
【符号の説明】
【００８４】
１…集積回路装置、  １０…バッファ、  ２０…ライトポインタ、  ３０…先読み領域指定情報保持部、  ３２…第１の位置指定レジスタ、  ３４…第２の位置指定レジスタ、  ４０…制御部、  ４２…リードポインタ、  ４４…リードポインタ、  ４５…選択信号生成部、  ４６…ポインタセレクタ、  ５０…比較器、  ５２…転送アドレス情報保持部、  ５４…割り込み信号生成部、  １００…バッファ装置
【図１】
2007233707.tif 000004
【図２】
2007233707.tif 000005
【図３】
2007233707.tif 000006
【図４】
2007233707.tif 000007