(57)【要約】【課題】ストリームデータなどのデータ処理を行う際に、バッファにデータが保持されるまで待ち続けてしまうことによるデッドロックを解消する。【解決手段】ＦＩＦＯバッファ１１０はＤＭＡ制御部からストリーム処理コプロセッサへのストリームデータを保持する。タイマー回路１３０はＤＭＡ制御部に対して転送要求が連続して出力されている時間を計数する。タイマー回路１３０におけるタイムアウトがタイムアウト検出回路１４０により検出されると、ダミーデータレジスタ１６１の保持内容がＦＩＦＯバッファ１１０に補充される。また、ＤＭＡ転送完了後（ＤＭＡ＿ＥＮＤ＝１）には直ちにダミーデータが挿入される。一方、ＤＭＡ転送中（ＤＭＡ＿ＢＳＹ＝１）にはタイムアウト信号ＴＭＯＵＴの如何にかかわらず、ダミーデータの挿入は抑止される。【選択図】図４
2009271610.tif 000002
【特許請求の範囲】
【請求項１】
バッファへのデータの転送をデータ転送回路に対して要求するデータ転送要求回路と、
前記バッファへのデータの転送を前記データ転送回路に対して連続して要求している時間を計数するタイマー回路と、
前記タイマー回路によって計数された時間が所定の時間に達したか否かを判断して前記所定の時間に達するとタイムアウトを検出するタイムアウト検出回路と、
前記タイムアウトが検出された場合には前記データ転送回路からのデータに代えてダミーデータを前記バッファへ供給するダミーデータ供給回路と
を具備するバッファ制御回路。
【請求項２】
前記タイムアウト検出回路は、前記データ転送回路が前記要求に対してデータ転送完了状態にある場合には前記データ転送回路が前記要求に対してデータ転送完了状態にない場合と比べてより短い時間を前記所定の時間として当該所定の時間に達したか否かを判断する
請求項１記載のバッファ制御回路。
【請求項３】
前記タイムアウト検出回路は、前記データ転送回路が前記要求に対してデータ転送完了状態にある場合には前記タイマー回路によって計数される時間が非ゼロになると前記タイムアウトを検出する
請求項２記載のバッファ制御回路。
【請求項４】
前記ダミーデータ供給回路は、前記タイムアウトが検出された場合であっても前記データ転送回路がビジー状態にある間は前記ダミーデータを前記バッファへ供給しない
請求項１記載のバッファ制御回路。
【請求項５】
データを保持するバッファと、
前記バッファへのデータの転送をデータ転送回路に対して要求するデータ転送要求回路と、
前記バッファへのデータの転送を前記データ転送回路に対して連続して要求している時間を計数するタイマー回路と、
前記タイマー回路によって計数された時間が所定の時間に達したか否かを判断して前記所定の時間に達するとタイムアウトを検出するタイムアウト検出回路と、
前記タイムアウトが検出された場合には前記データ転送回路からのデータに代えてダミーデータを前記バッファへ供給するダミーデータ供給回路と
を具備するバッファ回路。
【請求項６】
前記バッファは、ＦＩＦＯバッファであるバッファ回路。
【請求項７】
メモリと、
データを保持するバッファと、
前記バッファからデータを取得して所定のデータ処理を行う処理回路と、
前記バッファに対してデータを前記メモリから転送するデータ転送回路と、
前記バッファへのデータの転送を前記データ転送回路に対して要求するデータ転送要求回路と、
前記バッファへのデータの転送を前記データ転送回路に対して連続して要求している時間を計数するタイマー回路と、
前記タイマー回路によって計数された時間が所定の時間に達したか否かを判断して前記所定の時間に達するとタイムアウトを検出するタイムアウト検出回路と、
前記タイムアウトが検出された場合には前記データ転送回路からのデータに代えてダミーデータを前記バッファへ供給するダミーデータ供給回路と
を具備するデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バッファ制御回路に関し、特にメモリから転送されたデータをバッファ回路に保持して処理回路に供給するバッファ制御回路、バッファ回路およびデータ処理装置に関する。
【背景技術】
【０００２】
可変長符号の復号などの際には、メモリから転送されたデータを一旦バッファに保持し、そのバッファから処理に必要な量のデータをビット単位でシーケンシャルに読み出すという処理が行われる。具体的には、ストリーム処理装置をＣＰＵ（Central Processing Unit）のコプロセッサとして実現し、ＤＭＡ（Direct Memory Access）制御部とコプロセッサとの間にストリームを管理するＦＩＦＯ（First-In First-Out）バッファを設ける。ストリーム処理を行うコプロセッサは、ストリーム要求を出力して、ストリームとして参照したいビット数を読み出すまで待つ。これにより、自動的にストリームが入力されるため、ストリーム入力に関するソフトウェアを記述する手間を解消することができる。
【０００３】
このとき、ＤＭＡ制御部の起動前にストリームを使用する命令が実行されてしまうと、デッドロックを生じるおそれがある。ＦＩＦＯバッファに自動的にストリームデータが補充されることを前提としているため、ストリーム入力が止まってしまうと、コプロセッサが入力を待ち続けてしまうからである。ＤＭＡ制御部の起動前にストリーム要求が発生するのは、命令の記述ミス、コンパイラによる命令の最適化、プロセッサによるアウトオブオーダ（out-of-order）実行によって順番が入れ替わっている場合や、ＤＭＡ制御部の制御レジスタの更新に時間を要したためにその起動よりも先にストリーム要求が発生した場合などが考えられる。
【０００４】
メモリからのデータ転送処理を中断させる技術として、タイマーを用いることによりタイムアウト時にＤＭＡ転送を強制的に中断させるＤＭＡ要求制御装置が提案されている（例えば、特許文献１参照。）。
【特許文献１】特開平１０−２１１８３号公報（図１）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述の従来技術では、ＤＭＡ転送が起動された後にバスを長時間に亘り専有することを防止することができる。しかしながら、ＤＭＡ転送を中断しても、コプロセッサはＦＩＦＯバッファにストリームデータが補充されるまで待ち続けることになり、デッドロックは解消しない。
【０００６】
本発明はこのような状況に鑑みてなされたものであり、ストリームデータなどのデータ処理を行う際に、バッファにデータが保持されるまで待ち続けてしまうことによるデッドロックを解消することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上記課題を解決するためになされたものであり、その第１の側面は、バッファへのデータの転送をデータ転送回路に対して要求するデータ転送要求回路と、上記バッファへのデータの転送を上記データ転送回路に対して連続して要求している時間を計数するタイマー回路と、上記タイマー回路によって計数された時間が所定の時間に達したか否かを判断して上記所定の時間に達するとタイムアウトを検出するタイムアウト検出回路と、上記タイムアウトが検出された場合には上記データ転送回路からのデータに代えてダミーデータを上記バッファへ供給するダミーデータ供給回路とを具備するバッファ制御回路である。これにより、タイマー回路によって計数された時間が所定の時間に達するとデータ転送回路からのデータに代えてダミーデータをバッファへ供給させるという作用をもたらす。
【０００８】
また、この第１の側面において、上記タイムアウト検出回路は、上記データ転送回路が上記要求に対してデータ転送完了状態にある場合には上記データ転送回路が上記要求に対してデータ転送完了状態にない場合と比べてより短い時間を上記所定の時間として当該所定の時間に達したか否かを判断してもよい。これにより、データ転送完了状態にある場合には、より短い時間によりダミーデータをバッファへ供給させるという作用をもたらす。
【０００９】
また、この場合において、上記タイムアウト検出回路は、上記データ転送回路が上記要求に対してデータ転送完了状態にある場合には上記タイマー回路によって計数される時間が非ゼロになると上記タイムアウトを検出してもよい。これにより、データ転送完了状態にある場合には、直ちにダミーデータをバッファへ供給させるという作用をもたらす。
【００１０】
また、この第１の側面において、上記ダミーデータ供給回路は、上記タイムアウトが検出された場合であっても上記データ転送回路がビジー状態にある間は上記ダミーデータを上記バッファへ供給しないようにしてもよい。これにより、データ転送回路がビジー状態にある間はダミーデータをバッファへ供給させないという作用をもたらす。
【００１１】
また、本発明の第２の側面は、データを保持するバッファと、上記バッファへのデータの転送をデータ転送回路に対して要求するデータ転送要求回路と、上記バッファへのデータの転送を上記データ転送回路に対して連続して要求している時間を計数するタイマー回路と、上記タイマー回路によって計数された時間が所定の時間に達したか否かを判断して上記所定の時間に達するとタイムアウトを検出するタイムアウト検出回路と、上記タイムアウトが検出された場合には上記データ転送回路からのデータに代えてダミーデータを上記バッファへ供給するダミーデータ供給回路とを具備するバッファ回路である。これにより、タイマー回路によって計数された時間が所定の時間に達するとデータ転送回路からのデータに代えてダミーデータをバッファへ供給させるという作用をもたらす。この場合において、上記バッファは、ＦＩＦＯバッファであってもよい。
【００１２】
また、本発明の第３の側面は、メモリと、データを保持するバッファと、上記バッファからデータを取得して所定のデータ処理を行う処理回路と、上記バッファに対してデータを上記メモリから転送するデータ転送回路と、上記バッファへのデータの転送を上記データ転送回路に対して要求するデータ転送要求回路と、上記バッファへのデータの転送を上記データ転送回路に対して連続して要求している時間を計数するタイマー回路と、上記タイマー回路によって計数された時間が所定の時間に達したか否かを判断して上記所定の時間に達するとタイムアウトを検出するタイムアウト検出回路と、上記タイムアウトが検出された場合には上記データ転送回路からのデータに代えてダミーデータを上記バッファへ供給するダミーデータ供給回路とを具備するデータ処理装置である。これにより、タイマー回路によって計数された時間が所定の時間に達するとデータ転送回路からのデータに代えてダミーデータをバッファへ供給させて、処理回路にデータ処理を行わせるという作用をもたらす。
【発明の効果】
【００１３】
本発明によれば、ストリームデータなどのデータ処理を行う際に、バッファにデータが保持されるまで待ち続けてしまうことによるデッドロックを解消することができるという優れた効果を奏し得る。
【発明を実施するための最良の形態】
【００１４】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００１５】
図１は、本発明の実施の形態におけるデータ処理装置の一例としてのストリーム処理装置の構成例を示す図である。このストリーム処理装置はＣＰＵ（Central Processing Unit）１０と、メモリ２０と、ＤＭＡ（Direct Memory Access）制御部３０と、ストリーム処理コプロセッサ４０と、ストリーム管理部１００とを備える。ＣＰＵ１０、メモリ２０およびＤＭＡ制御部３０の間はシステムバス５０により相互に接続されている。また、ＣＰＵ１０およびＤＭＡ制御部３０の間はペリフェラルバス６０により接続されている。また、ＤＭＡ制御部３０とストリーム処理コプロセッサ４０との間は制御線７０により接続されている。
【００１６】
ＣＰＵ１０は、ストリーム処理装置の全体の処理を行うプロセッサである。このＣＰＵ１０は、システムバス５０を介してメモリ２０にアクセスし、また、ペリフェラルバス６０を介してＤＭＡ制御部３０を制御する。また、ＣＰＵ１０は、ストリーム処理コプロセッサ４０に接続し、このストリーム処理コプロセッサ４０に対してコプロセッサ命令を発行することにより、ストリーム処理を実行させる。
【００１７】
メモリ２０は、ＣＰＵ１０の作業領域を保持するメモリであり、例えば、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）などにより実現される。なお、メモリ２０は、特許請求の範囲に記載のメモリの一例である。
【００１８】
ＤＭＡ制御部３０は、メモリ２０との間のＤＭＡ転送を制御するコントローラである。このＤＭＡ制御部３０は、ストリーム処理コプロセッサ４０の制御レジスタ４２に設定された開始アドレスおよび転送サイズを、制御線７０を介して読み出して、その設定に従ってＣＰＵ１０を介さずにメモリ２０との間のＤＭＡ転送を行う。ＤＭＡ制御部３０は、内部に制御レジスタ３１を備えており、ＣＰＵ１０からストリーム処理コプロセッサ４０を介して、制御線７０によりＤＭＡ転送を起動させるための起動ビットが制御レジスタ３１に反映される。本発明の実施の形態では、メモリ２０のデータがストリームデータとしてストリーム管理部１００に転送されることを想定する。なお、ＤＭＡ制御部３０は、特許請求の範囲に記載のデータ転送回路の一例である。
【００１９】
ストリーム処理コプロセッサ４０は、ＣＰＵ１０からのコプロセッサ命令に従って、ストリーム処理を行うコプロセッサである。このストリーム処理コプロセッサ４０は、内部にシフトレジスタ４１を備え、ストリーム管理部１００から取得したストリームデータをシフトレジスタ４１に保持する。また、このストリーム処理コプロセッサ４０は、制御レジスタ４２を備え、ＤＭＡ転送のための開始アドレスおよび転送サイズを制御レジスタ４２に保持する。この制御レジスタ４２の内容は、制御線７０を介してＤＭＡ制御部３０によって参照できるようになっている。なお、ストリーム処理コプロセッサ４０は、特許請求の範囲に記載の処理回路の一例である。
【００２０】
ストリーム管理部１００は、ＤＭＡ制御部３０によってＤＭＡ転送されたストリームデータを一旦保持して、ストリーム処理コプロセッサ４０に供給するものである。このストリーム管理部１００は、内部にＦＩＦＯバッファ１１０を備え、ＤＭＡ制御部３０から転送されたストリームデータをＦＩＦＯバッファ１１０に保持する。
【００２１】
図２は、本発明の実施の形態におけるストリーム処理装置内の制御およびデータの流れを示すである。
【００２２】
ＣＰＵ１０は、ストリーム処理を行うためにコプロセッサ命令をストリーム処理コプロセッサ４０に発行する。ＣＰＵ１０から発行されたコプロセッサ命令がストリームを参照する命令であれば、ストリーム処理コプロセッサ４０は信号線１９３を介してストリーム要求をストリーム管理部１００に出力する。ストリーム管理部１００は、ストリーム処理コプロセッサ４０からのストリーム要求があり、かつ、内部のＦＩＦＯバッファ１１０に空きがあれば、空きがなくなるまで、信号線１０３を介して転送要求をＤＭＡ制御部３０に出力する。ＤＭＡ制御部３０は、メモリ２０の転送元の開始アドレスおよび転送サイズが設定され、制御レジスタの起動ビットがセットされると転送可能状態となる。
【００２３】
ＤＭＡ制御部３０は、転送可能状態において、ストリーム管理部１００から転送要求を受けると、信号線１０１を介してデータをストリーム管理部１００にＤＭＡ転送する。ストリーム処理コプロセッサ４０からのストリーム要求に対して、ストリーム管理部１００は信号線１９１を介してストリーム処理コプロセッサ４０にストリームデータを供給する。
【００２４】
図３は、本発明の実施の形態におけるストリーム処理コプロセッサ４０内のシフトレジスタ４１の動作例を示す図である。シフトレジスタ４１は、「２Ｗ−１」ビット以上のシフトレジスタであり（Ｗは整数）、その中の有効なデータはＬビットであるとする（Ｌは整数）。
【００２５】
図３（ａ）のように、ストリーム処理を行う際に「Ｌ≧Ｗ」であれば、ストリーム処理コプロセッサ４０はストリーム要求を出力することなく、シフトレジスタ４１の先頭からストリームデータを参照して、ストリーム処理を実行する。シフトレジスタ４１は、先頭からＷビットのみが参照可能になっている。
【００２６】
図３（ｂ）のように、ストリーム処理を行う際に「Ｌ＜Ｗ」であれば、ストリーム処理コプロセッサ４０はストリーム要求をストリーム管理部１００に出力する。そして、ストリーム処理コプロセッサ４０は、ストリーム管理部１００からＷビットのデータを取得して、シフトレジスタ４１における有効なデータの直後からＷビットの位置に、取得したＷビットのデータを書き込む。これにより、有効なデータのビット長Ｌは、「Ｌ＋Ｗ」ビットに更新される。その後、ストリーム処理コプロセッサ４０において、シフトレジスタ４１の先頭からストリームデータが参照されて、ストリーム処理が実行される。
【００２７】
なお、ストリーム処理においてＳビット（Ｓは整数）のシフトが発生した場合、シフトレジスタ４１はＳビットシフトされ、有効なデータのビット長Ｌは、「Ｌ−Ｓ」ビットに更新される。このようにして、ストリームデータはシフトレジスタ４１からシーケンシャルに読み進められていく。
【００２８】
図４は、本発明の実施の形態におけるストリーム管理部１００の一構成例を示す図である。このストリーム管理部１００は、ＦＩＦＯバッファ１１０と、論理積回路１２１および１２３と、レジスタ１２２と、タイマー回路１３０と、タイムアウト検出回路１４０と、論理和回路１５１と、ダミーデータ供給回路１６０とを備えている。
【００２９】
ＦＩＦＯバッファ１１０は、ＤＭＡ制御部３０から転送されたデータを保持する先入れ先出し（First-In First-Out）バッファである。このＦＩＦＯバッファ１１０は、Ｗビット幅のデータを複数語保持することができる。このＦＩＦＯバッファ１１０において、書込可能（ＷＥ：Write Enable）端子がアサートされると書込みデータ（ＷＤ：Write Data）端子から入力されたデータが保持される。また、読出可能（ＲＥ：Read Enable）端子がアサートされると、書込みデータ端子に入力された順に、読出しデータ（ＲＤ：Read Data）端子からデータが出力される。このＦＩＦＯバッファ１１０においてデータを保持する領域にデータが全くない場合には、エンプティ（ＥＭＰＴＹ）端子がアサートされる。また、ＦＩＦＯバッファ１１０においてデータを保持する領域に空きがない場合には、フル（ＦＵＬＬ）端子がアサートされる。なお、ＦＩＦＯバッファ１１０は、特許請求の範囲に記載のバッファの一例である。
【００３０】
論理積回路１２１は、ストリーム処理コプロセッサ４０から信号線１９３を介してストリーム要求があり（ＤＡＴＡ＿ＲＥＱ＝１）、かつ、ＦＩＦＯバッファ１１０が空でない（ＦＩＦＯ＿ＥＭＰＴＹ＝０）場合、データ読出可能である旨を出力するものである。レジスタ１２２は、論理積回路１２１の出力を保持するレジスタであり、直前のサイクルにおいて論理積回路１２１がデータ読出可能である旨を出力する場合には、信号線１９２を介して有効なデータが出力される旨を示すとともに、ＦＩＦＯバッファ１１０の読出可能端子をアサートしてＦＩＦＯバッファ１１０からのデータ読出しを指示する。これにより、ＦＩＦＯバッファ１１０の読出しデータ端子からデータが出力されて信号線１９１に供給される。論理積回路１２３は、ストリーム処理コプロセッサ４０から信号線１９３を介してストリーム要求があり（ＤＡＴＡ＿ＲＥＱ＝１）、かつ、ＦＩＦＯバッファ１１０に空きがある（ＦＩＦＯ＿ＦＵＬＬ＝０）場合、信号線１０３を介してＤＭＡ制御部３０に対して転送要求を出力する（ＤＭＡ＿ＲＥＱ＝１）。
【００３１】
タイマー回路１３０は、ＤＭＡ制御部３０に対して転送要求が連続して出力されている時間を計数するタイマーである。このタイマー回路１３０は、レジスタ１３１と、加算器１３２と、セレクタ１３３および１３４とを備える。レジスタ１３１は、タイマー値を保持するレジスタである。加算器１３２は、レジスタ１３１の出力を「１」加算するものである。セレクタ１３３は、論理積回路１２３から転送要求が出力されている場合には加算器１３２の出力を選択し、転送要求が出力されていない場合にはレジスタ１３１の出力を選択する選択器である。セレクタ１３４は、タイムアウト検出回路１４０からタイマーリセット信号ＴＭＣＮＴ＿ＲＳＴがアサートされている場合には「０」を選択し、それ以外の場合にはセレクタ１３３の出力値を選択する選択器である。なお、タイマー回路１３０は、特許請求の範囲に記載のタイマー回路の一例である。
【００３２】
タイムアウト検出回路１４０は、タイマー回路１３０のタイムアウトを検出するものである。このタイムアウト検出回路１４０は、比較器１４１および１４２と、セレクタ１４３と、論理積回路１４４と、レジスタ１４５と、論理和回路１４６とを備える。
【００３３】
比較器１４１は、第１のタイムアウト値ＴＭ１を基準としてタイマー回路１３０のタイムアウトを検出するものである。また、比較器１４２は、第２のタイムアウト値ＴＭ２を基準としてタイマー回路１３０のタイムアウトを検出するものである。本発明の実施の形態では、「ＴＭ１＞ＴＭ２」であることを想定し、例えば、ＴＭ１は「０」より大きい値とし、ＴＭ２は「０」とする。すなわち、比較器１４１はタイマー回路１３０の値がＴＭ１に達したことを検出し、比較器１４２はタイマー回路１３０の値が非ゼロになったことを検出することを想定する。
【００３４】
セレクタ１４３は、ＤＭＡ制御部３０からＤＭＡ転送終了信号ＤＭＡ＿ＥＮＤがアサートされている場合には比較器１４２の出力を選択し、それ以外の場合には比較器１４１の出力を選択する選択器である。このセレクタ１４３の出力は、タイムアウト信号ＴＭＯＵＴとして、論理積回路１４４および論理和回路１４６に供給される。
【００３５】
論理積回路１４４は、タイムアウト信号ＴＭＯＵＴがアサートされ、かつ、ＤＭＡ制御部３０からＤＭＡ転送中信号ＤＭＡ＿ＢＳＹがアサートされていないことを検出するものである。すなわち、セレクタ１４３の出力がタイムアウトである旨を示していても、ＤＭＡ転送中信号がビジーを示している場合には、そのタイムアウト信号はマスクされる。レジスタ１４５は、論理積回路１４４の出力を保持するレジスタである。このレジスタ１４５の出力は、有効タイムアウト信号ＴＭＯＵＴ＿ＷＥとして論理和回路１４６および論理和回路１５１に供給される。
【００３６】
論理和回路１４６は、タイマー回路１３０のリセット信号を出力するものであり、セレクタ１４３から出力されるタイムアウト信号ＴＭＯＵＴ、ＤＭＡ制御部３０から出力されるＤＭＡ転送中信号ＤＭＡ＿ＢＳＹ、または、レジスタ１４５から出力される有効タイムアウト信号ＴＭＯＵＴ＿ＷＥの論理和を生成する。すなわち、タイムアウト信号ＴＭＯＵＴ、ＤＭＡ転送中信号ＤＭＡ＿ＢＳＹ、または、有効タイムアウト信号ＴＭＯＵＴ＿ＷＥの何れかがアサートされている場合にはタイマー回路１３０のリセット信号がアサートされる。
【００３７】
なお、タイムアウト検出回路１４０は、特許請求の範囲に記載のタイムアウト検出回路の一例である。
【００３８】
論理和回路１５１は、ＦＩＦＯバッファ１１０に対して書込可能信号を出力するものである。この論理和回路１５１は、ＤＭＡ制御部３０から出力されるＤＭＡ転送有効信号ＤＭＡ＿ＡＣＫ、または、レジスタ１４５から出力される有効タイムアウト信号ＴＭＯＵＴ＿ＷＥの論理和を生成する。すなわち、ＤＭＡ転送有効信号ＤＭＡ＿ＡＣＫ、または、有効タイムアウト信号ＴＭＯＵＴ＿ＷＥの何れかがアサートされている場合には、ＦＩＦＯバッファ１１０の書込可能端子がアサートされる。
【００３９】
ダミーデータ供給回路１６０は、ＦＩＦＯバッファ１１０に対して書込みデータを出力するものである。このダミーデータ供給回路１６０は、ダミーデータレジスタ１６１と、セレクタ１６２とを備える。ダミーデータレジスタ１６１は、ＦＩＦＯバッファ１１０に供給されるダミーデータを保持するレジスタである。このダミーデータレジスタ１６１に保持されるダミーデータは任意の値とすることができるが、例えばＷビットの「０」またはＷビットの「１」であることが想定される。Ｗビットの「１」をダミーデータとすれば、ストリーム処理コプロセッサ４０におけるエラー処理により異常を検出することが期待できるため、より望ましい。セレクタ１６２は、ＤＭＡ制御部３０から出力されるＤＭＡ転送有効信号ＤＭＡ＿ＡＣＫがアサートされている場合にはＤＭＡ制御部３０から出力されるデータＤＭＡ＿ＤＡＴＡを選択し、それ以外の場合にはダミーデータレジスタ１６１の保持内容を選択する選択器である。なお、ダミーデータ供給回路１６０は、特許請求の範囲に記載のダミーデータ供給回路の一例である。
【００４０】
図５は、本発明の実施の形態におけるストリーム管理部１００の信号の真理値表を示す図である。ＤＭＡ転送中信号ＤＭＡ＿ＢＳＹが「０」、すなわちＤＭＡ転送中でない場合において、ＤＭＡ転送終了信号ＤＭＡ＿ＥＮＤが「０」、すなわちＤＭＡ転送が終了していなければ、転送待ちの状態にあるものとして、第１のタイムアウト値ＴＭ１を基準してタイマー回路１３０のタイムアウトが検出される。つまり、第１のタイムアウト値ＴＭ１に達した時点で、ダミーデータレジスタ１６１に保持されたダミーデータがＦＩＦＯバッファ１１０に補充される。
【００４１】
これに対し、ＤＭＡ転送中信号ＤＭＡ＿ＢＳＹが「０」、すなわちＤＭＡ転送中でない場合において、ＤＭＡ転送終了信号ＤＭＡ＿ＥＮＤが「１」、すなわちＤＭＡ転送が終了していれば、転送完了後であるものとして、第２のタイムアウト値ＴＭ２を基準してタイマー回路１３０のタイムアウトが検出される。つまり、第１のタイムアウト値ＴＭ１よりも短い第２のタイムアウト値ＴＭ２を基準して速やかにタイムアウトとなって、ダミーデータレジスタ１６１に保持されたダミーデータがＦＩＦＯバッファ１１０に補充される。
【００４２】
一方、ＤＭＡ転送中信号ＤＭＡ＿ＢＳＹが「１」、すなわちＤＭＡ転送中である場合には、タイムアウト信号ＴＭＯＵＴの如何にかかわらず、有効タイムアウト信号ＴＭＯＵＴ＿ＷＥはアサートされず、ダミーデータレジスタ１６１に保持されたダミーデータはＦＩＦＯバッファ１１０に補充されない。
【００４３】
図６は、本発明の実施の形態におけるストリーム管理部１００のタイミングの一例を示す図である。この例では、ＤＭＡ転送中信号ＤＭＡ＿ＢＳＹが「０」であり、かつ、ＤＭＡ転送終了信号ＤＭＡ＿ＥＮＤが「０」である場合を想定している。
【００４４】
時刻Ｔ２においてストリーム処理コプロセッサ４０からストリーム要求ＤＡＴＡ＿ＲＥＱがされると、タイマー回路１３０はカウントアップを開始する。時刻Ｔｉにおいてタイマー回路１３０の値が第１のタイムアウト値ＴＭ１に到達すると、タイムアウト信号ＴＭＯＵＴがアサートされ、タイマーリセット信号ＴＭＣＮＴ＿ＲＳＴがアサートされる。これにより、タイマー回路１３０の値はリセットされる。
【００４５】
そして、時刻Ｔｉ＋１では、有効タイムアウト信号ＴＭＯＵＴ＿ＷＥがアサートされ、これにより、ダミーデータがＦＩＦＯバッファ１１０に補充される。すなわち、強制的にＦＩＦＯバッファ１１０にダミーデータを挿入することにより、デッドロックが解除される。
【００４６】
図７は、本発明の実施の形態におけるストリーム管理部１００のタイミングの他の例を示す図である。この例では、ＤＭＡ転送中信号ＤＭＡ＿ＢＳＹが「１」であり、かつ、ＤＭＡ転送終了信号ＤＭＡ＿ＥＮＤが「０」である場合を想定している。
【００４７】
時刻Ｔ２においてストリーム処理コプロセッサ４０からストリーム要求ＤＡＴＡ＿ＲＥＱがされると、タイマー回路１３０はカウントアップを開始する。しかし、ＤＭＡ転送中信号ＤＭＡ＿ＢＳＹが「１」であるため、レジスタ１４５はマスクされる。そのため、時刻Ｔｉ＋１においても、有効タイムアウト信号ＴＭＯＵＴ＿ＷＥはアサートされず、ダミーデータはＦＩＦＯバッファ１１０に補充されない。
【００４８】
図８は、本発明の実施の形態におけるストリーム管理部１００のタイミングのさらに他の例を示す図である。この例では、ＤＭＡ転送中信号ＤＭＡ＿ＢＳＹが「０」であり、かつ、ＤＭＡ転送終了信号ＤＭＡ＿ＥＮＤが「１」である場合を想定している。
【００４９】
時刻Ｔ２においてストリーム処理コプロセッサ４０からストリーム要求ＤＡＴＡ＿ＲＥＱがされると、タイマー回路１３０はカウントアップを開始する。ＤＭＡ転送終了信号ＤＭＡ＿ＥＮＤが「１」であるため、セレクタ１４３において比較器１４２の出力が選択される。この例では、比較器１４２はタイマー回路１３０の値が非ゼロである旨を出力するものとする。したがって、時刻Ｔ３ではタイムアウト信号ＴＭＯＵＴがアサートされ、タイマーリセット信号ＴＭＣＮＴ＿ＲＳＴがアサートされる。これにより、タイマー回路１３０の値はリセットされる。
【００５０】
そして、時刻Ｔ４では、有効タイムアウト信号ＴＭＯＵＴ＿ＷＥがアサートされ、これにより、ダミーデータがＦＩＦＯバッファ１１０に補充される。すなわち、ＤＭＡ転送が完了しており、ストリーム要求によってデータが送られることがないため、直ちにダミーデータが挿入され、余計な待ちを回避することができる。
【００５１】
図９は、ストリーム処理装置の制御手順を示す図である。従来のストリーム処理装置においては、まず、ＤＭＡ制御部の制御レジスタに対して起動ビットが設定され（ステップＳ９０１）、ＤＭＡ制御部の起動が確認（９１０）された後に、ストリーム処理コプロセッサに対してストリーム参照命令が発行される（ステップＳ９０４）。すなわち、ＣＰＵにおいてＤＭＡ制御部の起動を確認（９１０）するために、ＤＭＡ制御部の制御レジスタにおける起動ビットが参照され（ステップＳ９０２）、その起動ビットが起動済であることを示していなければ、起動済になるまで起動ビットの参照を繰り返す（ステップＳ９０３）。この繰り返しにおいて無限ループとなる可能性もあることから、これを回避するためにソフトウェアのカウンタによりタイムアウトを検出する必要もある。
【００５２】
これに対し、本発明の実施の形態では、ＤＭＡ制御部の起動の確認（９１０）は不要であり、ＤＭＡ制御部３０の制御レジスタ３１に対して起動ビットが設定された後（ステップＳ９０１）、速やかにストリーム処理コプロセッサ４０に対してストリーム参照命令を発行することができる（ステップＳ９０４）。すなわち、デッドロックの発生はストリーム管理部１００により回避される。
【００５３】
このように、本発明の実施の形態によれば、タイマー回路１３０におけるタイムアウトをタイムアウト検出回路１４０により検出することにより、ダミーデータレジスタ１６１の保持内容をＦＩＦＯバッファ１１０に補充することができ、これによりデッドロックを解消することができる。また、ＤＭＡ転送完了後（ＤＭＡ＿ＥＮＤ＝１）には直ちにダミーデータが挿入され、余計な待ちを回避することができる。一方、ＤＭＡ転送中（ＤＭＡ＿ＢＳＹ＝１）にはタイムアウト信号ＴＭＯＵＴの如何にかかわらず、ダミーデータの挿入を抑止することができる。
【００５４】
なお、本発明の実施の形態では、制御線７０を介してＤＭＡ転送に関する情報が参照されることを想定したが、本発明はこれに限られるものではなく、例えばペリフェラルバス６０を介してこれらの情報をやりとりするようにしてもよい。
【００５５】
また、本発明の実施の形態は本発明を具現化するための一例を示したものであり、以下に示すように特許請求の範囲における発明特定事項とそれぞれ対応関係を有するが、これに限定されるものではなく本発明の要旨を逸脱しない範囲において種々の変形を施すことができる。
【００５６】
また、本発明の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、ＣＤ（Compact Disc）、ＭＤ（MiniDisc）、ＤＶＤ（Digital Versatile Disk）、メモリカード（memory card）、ブルーレイディスク（Blu-ray Disc（登録商標））等の記録媒体を用いることができる。
【図面の簡単な説明】
【００５７】
【図１】本発明の実施の形態におけるデータ処理装置の一例としてのストリーム処理装置の構成例を示す図である。
【図２】本発明の実施の形態におけるストリーム処理装置内の制御およびデータの流れを示すである。
【図３】本発明の実施の形態におけるストリーム処理コプロセッサ４０内のシフトレジスタ４１の動作例を示す図である。
【図４】本発明の実施の形態におけるストリーム管理部１００の一構成例を示す図である。
【図５】本発明の実施の形態におけるストリーム管理部１００の信号の真理値表を示す図である。
【図６】本発明の実施の形態におけるストリーム管理部１００のタイミングの一例を示す図である。
【図７】本発明の実施の形態におけるストリーム管理部１００のタイミングの他の例を示す図である。
【図８】本発明の実施の形態におけるストリーム管理部１００のタイミングのさらに他の例を示す図である。
【図９】ストリーム処理装置の制御手順を示す図である。
【符号の説明】
【００５８】
１０  ＣＰＵ
２０  メモリ
３０  ＤＭＡ制御部
３１  制御レジスタ
４０  ストリーム処理コプロセッサ
４１  シフトレジスタ
４２  制御レジスタ
５０  システムバス
６０  ペリフェラルバス
１００  ストリーム管理部
１１０  ＦＩＦＯバッファ
１２１  論理積回路
１２２、１３１、１４５  レジスタ
１２３  論理積回路
１３０  タイマー回路
１３２  加算器
１３３、１３４、１４３、１６２  セレクタ
１４０  タイムアウト検出回路
１４１、１４２  比較器
１４４  論理積回路
１４６、１５１  論理和回路
１６０  ダミーデータ供給回路
１６１  ダミーデータレジスタ
【図１】
2009271610.tif 000003
【図２】
2009271610.tif 000004
【図３】
2009271610.tif 000005
【図４】
2009271610.tif 000006
【図５】
2009271610.tif 000007
【図６】
2009271610.tif 000008
【図７】
2009271610.tif 000009
【図８】
2009271610.tif 000010
【図９】
2009271610.tif 000011