JP4252593B2 - オーディオ処理装置、入出力処理装置および情報処理装置 - Google Patents

オーディオ処理装置、入出力処理装置および情報処理装置 Download PDF

Info

Publication number
JP4252593B2
JP4252593B2 JP2006252775A JP2006252775A JP4252593B2 JP 4252593 B2 JP4252593 B2 JP 4252593B2 JP 2006252775 A JP2006252775 A JP 2006252775A JP 2006252775 A JP2006252775 A JP 2006252775A JP 4252593 B2 JP4252593 B2 JP 4252593B2
Authority
JP
Japan
Prior art keywords
buffer
interrupt signal
audio data
audio
sampling frequency
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2006252775A
Other languages
English (en)
Other versions
JP2008077174A (ja
Inventor
真一 本多
良和 高橋
馨 山上
崇 豊田
伸夫 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Priority to JP2006252775A priority Critical patent/JP4252593B2/ja
Priority to US11/830,981 priority patent/US7684884B2/en
Priority to EP07016120A priority patent/EP1903447B1/en
Priority to DE602007004156T priority patent/DE602007004156D1/de
Priority to AT07016120T priority patent/ATE454664T1/de
Publication of JP2008077174A publication Critical patent/JP2008077174A/ja
Application granted granted Critical
Publication of JP4252593B2 publication Critical patent/JP4252593B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Electrophonic Musical Instruments (AREA)

Description

この発明は、データの入出力処理装置、特にオーディオデータの入出力処理を行うオーディオ処理装置および情報処理装置に関する。
ゲーム機などの情報処理装置では、CPU(Cetnral Processing Unit)が画像やオーディオのデータを頻繁にメインメモリに読み書きする。CPUの負荷を軽減するため、メインメモリと、オーディオやビデオなどの入出力装置との間のデータ転送はDMA(Direct Memory Access)転送によって行われる。DMA転送は、CPUを介することなく、メインメモリと入出力装置の間のデータの転送を高速に実行する方法である。
入出力装置内のバッファに蓄積されたデータが消費されると、メインメモリと入出力装置の間で新たにデータ転送が必要になる。入出力装置はバッファが空き状態またはフル状態になると、CPUに対して割り込み信号を送り、割り込み信号を受け取ったCPUは、DMA転送命令を発行して、メインメモリと入出力装置の間で新たなデータのやりとりを行う。
割り込みを用いてDMA転送を行うシステムにおいては、CPUへの割り込みが発生する度に、CPUは割り込み処理を行わなければならないため、割り込みが多いほどCPUの負荷が増大する。また、複数の割り込み信号が1本の割り込み信号線を競合して利用する場合は、割り込み信号が同時に発生すると、割り込み信号の伝搬に遅延が生じる。このように、割り込み信号が多数発生する状況では、割り込み信号の伝搬や処理に時間がかかり、割り込み信号が発生してから割り込み信号が伝搬し、割り込み処理が終わるまでの時間、すなわちレイテンシが長くなり、DMA転送命令の発行が遅延し、データ転送処理の効率が低下する。
本発明はこうした課題に鑑みてなされたものであり、その目的は、割り込み信号の発生頻度を減らしてデータ転送効率を上げることのできるデータ転送技術を提供することにある。
上記課題を解決するために、本発明のある態様の情報処理装置は、プロセッサとオーディオ処理ユニットがバスで結合された情報処理装置であって、前記オーディオ処理ユニットは、外部に出力するオーディオデータを一時的に蓄積するための複数のバッファを含むリングバッファと、前記リングバッファ内のあるバッファからデータが出力され、そのバッファが空き状態になったことを示す割り込み信号を、前記外部に出力するオーディオデータのサンプリング周波数に応じて間引いた上で前記プロセッサに供給する割り込み信号生成部とを含む。前記プロセッサは、前記割り込み信号を受け取った場合に、前記リングバッファ内の空き状態のバッファにオーディオデータを書き込むためのデータ転送命令を発行する。
本発明の別の態様もまた、情報処理装置である。この装置は、プロセッサとオーディオ処理ユニットがバスで結合された情報処理装置であって、前記オーディオ処理ユニットは、外部から入力されるオーディオデータを一時的に蓄積するための複数のバッファを含むリングバッファと、前記リングバッファ内のあるバッファにデータが入力され、そのバッファがフル状態になったことを示す割り込み信号を、前記外部から入力されるオーディオデータのサンプリング周波数に応じて間引いた上で前記プロセッサに供給する割り込み信号生成部とを含む。前記プロセッサは、前記割り込み信号を受け取った場合に、前記リングバッファ内のフル状態のバッファからオーディオデータを読み出すためのデータ転送命令を発行する。
本発明のさらに別の態様もまた、情報処理装置である。この装置は、プロセッサと入出力処理ユニットがバスで結合された情報処理装置であって、前記入出力ユニットは、外部に出力するデータを一時的に蓄積するための複数のバッファを含むリングバッファと、前記リングバッファ内のあるバッファからデータが出力され、そのバッファが空き状態になったことを示す割り込み信号を、前記外部に出力するデータの出力速度に応じて間引いた上で前記プロセッサに供給する割り込み信号生成部とを含む。前記プロセッサは、前記割り込み信号を受け取った際、前記リングバッファ内の空き状態のバッファにデータを書き込むためのデータ転送命令を発行する。
本発明のさらに別の態様もまた、情報処理装置である。この装置は、プロセッサと入出力処理ユニットがバスで結合された情報処理装置であって、前記入出力ユニットは、外部から入力されるデータを一時的に蓄積するための複数のバッファを含むリングバッファと、前記リングバッファ内のあるバッファにデータが入力され、そのバッファがフル状態になったことを示す割り込み信号を、前記外部から入力されるデータの入力速度に応じて間引いた上で前記プロセッサに供給する割り込み信号生成部とを含む。前記プロセッサは、前記割り込み信号を受け取った際、前記リングバッファ内のフル状態のバッファからデータを読み出すためのデータ転送命令を発行する。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、割り込み信号の発生頻度を低減し、データ転送効率を上げることができる。
図1は、実施の形態に係る情報処理装置100の構成図である。CPU10、メインメモリ12、DMAコントローラ14、オーディオ処理ユニット20がバス50で結合されている。
CPU10は、マルチプロセッサや、複数のプロセッサコアを1つのパッケージに集積したマルチコアプロセッサであってもよい。オーディオ処理ユニット20は、CPU10その他の構成と内部バスで接続される形態でCPU10と一体化されて実装されてもよく、PCI(Peripheral Components Interconnect)バスなどの周辺機器接続バスで接続されるサウンドカードとして実装されてもよい。
オーディオ処理ユニット20は、オーディオデータを一時的に保持するリングバッファ30を有し、オーディオデータの入出力処理を行う。リングバッファ30は、オーディオ入力用とオーディオ出力用にそれぞれ別個に設けられている。
オーディオ出力の場合、出力用のリングバッファ30内のオーディオデータがD/A変換器42によりアナログ信号に変換され、アンプ43で増幅され、スピーカ46から出力される。オーディオ入力の場合、マイクロホン44に入力されたアナログ信号がアンプ41で増幅され、A/D変換器40によりデジタル信号に変換され、入力用のリングバッファ30に蓄積される。
ここではDMAコントローラ14を独立したユニットとして描いているが、CPU10内にDMAコントローラ14を設けてもよく、オーディオ処理ユニット20内にDMAコントローラ14を設けてもよい。
オーディオ処理ユニット20とCPU10の間には割り込み信号線が設けられ、オーディオ処理ユニット20は、バッファ空き(Buffer Empty)、バッファフル(Buffer Full)などの各種の割り込み信号を割り込み信号線を介してCPU10に送信することができる。割り込み信号線は、バッファ空き信号、バッファフル信号毎に設けられてもよく、複数の割り込み信号線上の割り込み信号の論理和をとり、1本の割り込み信号線を通して割り込み信号の論理和をCPU10に送信する構成でもよい。
オーディオ出力の処理の流れを簡単に説明する。CPU10によって処理されたオーディオデータは、メインメモリ12に格納される。DMAコントローラ14は、CPU10のDMA転送命令にしたがって、メインメモリ12に格納されたオーディオデータをリングバッファ30内の空きバッファへDMA転送する。
オーディオ処理ユニット20は、リングバッファ30に格納されたオーディオデータを読み出し、オーディオのサンプリング周波数に合わせたタイミングでD/A変換器42に出力する。リングバッファ30の読み出し中のバッファからオーディオデータが出力されてバッファが空き状態になると、オーディオ処理ユニット20は、バッファ空き信号を生成して、割り込み信号線を介してCPU10に供給する。
バッファ空き信号を受け取ったCPU10は、メインメモリ12の転送元アドレスとリングバッファ30の転送先アドレスを指定したDMA転送命令をDMAコントローラ14に発行する。DMAコントローラ14はCPU10から発行されたDMA転送命令にしたがって、メインメモリ12に格納されたオーディオデータをリングバッファ30の空きバッファにDMA転送する。このようにして、CPU10が生成するオーディオデータがオーディオ処理ユニット20に逐次渡され、D/A変換器42を経てスピーカ46から出力される。
次に、オーディオ入力の処理の流れを簡単に説明する。マイクロホン44から入力されるオーディオ信号はA/D変換器40によりデジタルデータに変換され、リングバッファ30内の空きバッファに蓄積される。空きバッファが一杯になると、オーディオ処理ユニット20は、バッファフル信号(バッファフィルド(Buffer Filled)信号とも呼ばれる)を生成して、割り込み信号線を介してCPU10に供給する。
バッファフル信号を受け取ったCPU10は、リングバッファ30の転送元アドレスとメインメモリ12の転送先アドレスを指定したDMA転送命令をDMAコントローラ14に発行する。DMAコントローラ14はCPU10からのDMA転送命令にしたがって、リングバッファ30内のフル状態になったバッファに蓄積されたオーディオデータをメインメモリ12にDMA転送する。このようにして、マイクロホン44から入力されたオーディオ信号がA/D変換器40を経てリングバッファ30に蓄積され、オーディオ処理ユニット20からCPU10に逐次渡され、処理される。
オーディオ出力の際、オーディオ処理ユニット20からCPU10へ割り込み信号線を介してバッファ空き信号が送られる。オーディオのサンプリング周波数が大きくなると、バッファからオーディオデータが読み出される速度が上がり、バッファ空き信号の発生頻度が高くなる。
バッファ空き信号が多発すると、割り込み信号線で伝送されるその他の割り込み信号との間で競合が起こり、割り込み信号の伝搬に遅延が発生する。また、CPU10は多数の割り込み信号を処理しなければならないから、CPU10の負荷が高くなり、割り込み処理に時間がかかるようになる。そのため、割り込み信号が発生されてからCPU10がその割り込み信号を受け取り、割り込み処理が終わるまでにかかる時間、すなわち割り込み信号の処理レイテンシが長くなる。その結果、CPU10によるDMA転送命令の発行が遅延し、空きバッファへのオーディオデータの書き込みが遅延し、バッファのアンダーフローが起きて、オーディオの出力が途切れることとなり、オーディオの再生品質が低下する。
オーディオ入力の際も、同様の問題が発生する。オーディオ処理ユニット20からCPU10へ割り込み信号線を介してバッファフル信号が送られる。オーディオのサンプリング周波数が大きくなると、バッファへオーディオデータが書き込まれる速度が上がり、バッファフル信号の発生頻度が高くなり、バッファフル信号の処理レイテンシが長くなる。その結果、CPU10によるDMA転送命令の発行が遅延し、バッファからのオーディオデータの読み出しが遅延し、バッファのオーバーフローにより、オーディオの入力ができなくない状態となり、オーディオデータが欠落する。
そこで、オーディオ処理ユニット20からCPU10へのバッファ空き信号またはバッファフル信号の発生頻度を抑えるために、オーディオ処理ユニット20は、これらの割り込み信号を間引きした上でCPU10に供給する。
図2は、オーディオ処理ユニット20の詳細な構成図である。同図は機能に着目したブロック図を描いており、これらの機能ブロックはハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現することができる。
オーディオ処理ユニット20は、間引きモード設定部22、入出力周期設定部24、26、リングバッファ30、バッファ状態保持部32、およびデータ入出力部34を含む。リングバッファ30は、オーディオ出力用とオーディオ入力用に分けて別個に設けられるが、同図では説明の簡単のため、リングバッファ30を一つだけ描いている。
まず、オーディオ出力の場合における各構成の動作を説明する。オーディオ処理ユニット20は、CPU10が現在処理しているオーディオのサンプリング周波数に関する情報を受け取る。間引きモード設定部22は、出力されるオーディオのサンプリング周波数に応じた間引きモードを設定し、設定した間引きモードの情報を割り込み信号生成部26に与える。
たとえば、オーディオのサンプリング周波数の候補として、48kHz、96kHz、192kHzがあるとする。48kHzは、音楽DVDの再生やゲームアプリケーションにおけるサウンドの再生などで用いられるサンプリング周波数である。192kHzは、DVDに記録された高画質の映像のオーディオの再生などで用いられるサンプリング周波数である。48kHzを「基本サンプリング周波数」と呼び、96kHzを「2倍サンプリング周波数」と呼び、192kHzを「4倍サンプリング周波数」と呼ぶ。
この場合、間引きモードとして、基本サンプリング周波数、2倍サンプリング周波数、4倍サンプリング周波数に対応して、1−モード、1/2−モード、1/4−モードがそれぞれ設けられる。これらの間引きモードは、割り込み信号を間引きする割合が異なる。1−モードは、割り込み信号を間引きしないモードである。1/2−モードは、割り込み信号を2回に1回の割合で残して、残りは間引きするモードである。1/4−モードは、割り込み信号を4回に1回の割合で残して、残りは間引きするモードである。
このように、間引きモード設定部22は、オーディオサンプリング周波数が、1倍、2倍、4倍と増えるにしたがって、割り込み信号の数が1倍、1/2倍、1/4倍に減るように、割り込み信号を間引く割合を増やしていく。
リングバッファ30は、複数の固定長のバッファの配列において、先頭のバッファと末尾のバッファをつなげて環状に形成したデータ構造をもち、特に2つのバッファの場合は、ダブルバッファと呼ばれる。
リングバッファ30は、データの読み出し位置を示す読み出しポインタと、データの書き込み位置を示す書き込みポインタをもつ。書き込みポインタが読み出しポインタよりも先行しており、読み出しポインタが示す位置から書き込みポインタが示す位置までの領域に有効なデータ、すなわち読み出し待ちのデータが格納されている。リングバッファ30内のあるバッファからデータの読み出しが終わると、そのバッファは空き状態になる。バッファ状態保持部32は、リングバッファ30を構成する各バッファの空き状態を保持する。
割り込み信号生成部26は、バッファ状態保持部32に保持されたバッファの空き状態を参照して、リングバッファ30内のあるバッファが空き状態になると、バッファ空き信号を発生させ、間引きモード設定部22により設定された間引きモードでバッファ空き信号を間引きした上で、割り込み信号線を介してCPU10にバッファ空き信号を与える。
CPU10は、バッファ空き信号を受け取ると、次に転送すべきオーディオデータブロックが格納されたメインメモリ12の先頭アドレスを転送元アドレスとし、リングバッファ30内の空きバッファの先頭アドレスを転送先アドレスとするDMA転送命令をDMAコントローラ14に与える。DMAコントローラ14は、メインメモリ12の転送元アドレスからリングバッファ30の転送先アドレスへオーディオデータブロックを転送する。これにより、リングバッファ30内の空きバッファには新たなオーディオデータブロックが格納される。
入出力周期設定部24は、出力されるオーディオのサンプリング周波数に応じた出力周期を設定し、クロックにしたがってデータ入出力部34に対してデータの出力タイミングを通知する。データ入出力部34は、入出力周期設定部24により通知された出力タイミングにしたがって、リングバッファ30のバッファからオーディオデータブロックを読み出してD/A変換器42に供給する。データ入出力部34によりリングバッファ30の内のバッファからのオーディオデータブロックの読み出しが完了すると、そのバッファは空き状態になる。
次に、オーディオ入力の場合の各構成の動作を説明する。オーディオ入力の場合、データの流れが逆方向になるだけで、各構成の動作は基本的に同じであるから、簡単に説明する。
間引きモード設定部22は、入力されるオーディオのサンプリング周波数に応じた間引きモードを設定し、設定した間引きモードの情報を割り込み信号生成部26に与える。
バッファ状態保持部32は、入力用のリングバッファ30内の各バッファのフル状態を保持しており、割り込み信号生成部26は、リングバッファ30内のあるバッファにオーディオデータが書き込まれ、フル状態となったとき、バッファフル信号を発生させ、間引きモード設定部22により設定された間引きモードでバッファフル信号を間引きした上で、割り込み信号線を介してCPU10にバッファフル信号を与える。
入出力周期設定部24は、入力されるオーディオのサンプリング周波数に応じた入力周期を設定し、クロックにしたがってデータ入出力部34に対してデータの入力タイミングを通知する。データ入出力部34は、入出力周期設定部24により通知された入力タイミングにしたがって、A/D変換器40から供給されるオーディオデータブロックをリングバッファ30内の空きバッファに書き込む。データ入出力部34によりリングバッファ30内の空きバッファへのオーディオデータの書き込みが完了すると、そのバッファはフル状態になる。
CPU10は、バッファフル信号を受け取ると、リングバッファ30内のフル状態にあるバッファの先頭アドレスを転送元アドレスとし、オーディオデータブロックを格納すべきメインメモリ12の領域の先頭アドレスを転送先アドレスとするDMA転送命令をDMAコントローラ14に与える。DMAコントローラ14は、リングバッファ30の転送先アドレスからメインメモリ12の転送元アドレスへオーディオデータブロックを転送する。これにより、リングバッファ30内のフル状態のバッファからオーディオデータブロックが読み出され、CPU10に渡される。
以下、図2の割り込み信号生成部26によるバッファ空き信号またはバッファフル信号の間引き処理について、詳しく説明する。割り込み信号の間引き処理の必要性を理解するのを助けるため、まず、間引き処理をしない場合に生じる問題を図3〜図5を参照して説明する。その後、図6を参照して、割り込み信号の間引き処理を説明する。なお、オーディオ出力とオーディオ入力では、データの流れが反対方向である点を除けば、間引き処理については同じであるから、以下では、オーディオ出力の場合のバッファ空き信号の間引き処理について説明する。
図3(a)〜(c)は、サンプリング周波数毎に異なるサイズのダブルバッファを設けた場合を説明する図である。図3(a)に示すように、基本サンプリング周波数の場合、一つのオーディオデータブロックを格納可能なサイズのバッファを2つ設けてダブルバッファを構成する。
データ入出力部34は、基本サンプリング周波数に応じた速度で第1バッファAから1ブロック分のオーディオデータを読み取る。1ブロック分のオーディオデータが読み出されるのにかかる時間を「1単位時間」と呼ぶ。1単位時間の経過後、第1バッファAが空き状態になり、第1割り込み信号S1が発生する。
第1割り込み信号S1を受け取ったCPU10は、第1バッファAに新たなオーディオデータブロックを書き込む。一方、データ入出力部34は、第2バッファBから次の1ブロック分のオーディオデータを読み出す。1単位時間が経過して第2バッファBが空きバッファになると、第2割り込み信号S2が発生し、第2割り込み信号S2を受け取ったCPU10は、第2バッファBに新たなオーディオデータブロックを書き込み、データ入出力部34は第1バッファAに戻って、1ブロック分のオーディオデータを読み出す。このようにしてバッファAとバッファBを交互に切り替えながら、オーディオデータブロックの読み出しと書き込みが行われる。
オーディオデータの1ブロックが32サンプルからなるとすると、基本サンプリング周波数は48kHzであるから、1ブロックのオーディオデータを読み出すのにかかる時間、すなわち1単位時間は、(1/48000)×32=667マイクロ秒である。
2倍サンプリング周波数の場合も同様に、図3(b)に示すように、1ブロック分のオーディオデータを格納可能なサイズのバッファを2つ設けてダブルバッファを構成する。サンプリング周波数が2倍であるから、1ブロック内のサンプル数が2倍になり、必要なバッファサイズは2倍になる。バッファサイズが2倍になっても、データ入出力部34は2倍の速度でデータを読み出すから、第1バッファAから1ブロック分のオーディオデータが読み出されるのにかかる時間は、基本サンプリング周波数のときと同じ1単位時間である。
サンプリング周波数が96kHzのオーディオデータの1ブロックは64サンプルからなるので、1ブロックのオーディオデータを読み出すのにかかる時間、すなわち1単位時間は、(1/96000)×64=667マイクロ秒であり、基本サンプリング周波数の場合と同じである。
2倍サンプリング周波数に応じた速度で第1バッファAから1ブロック分のオーディオデータが読み出され、1単位時間の経過後、第1バッファAが空き状態になった時点で、第1割り込み信号S1が発生する。第2バッファBから次の1ブロック分のオーディオデータが読み出され、1単位時間の経過後、第2バッファBが空きバッファになると、第2バッファ空き割り込み信号S2が発生する。
このように、2倍サンプリング周波数に合わせてバッファサイズを2倍にしたダブルバッファを用いると、割り込み信号の発生頻度は同じであり、1単位時間毎に1ブロックのオーディオデータブロックが読み出されて割り込み信号が発生する。
4倍サンプリング周波数の場合は、図3(c)に示すように、2つのバッファA、Bのサイズは基本サンプリング周波数の場合に比べて4倍になり、同様に、1単位時間毎に割り込み信号が発生する。
図3(a)〜(c)に示すように、サンプリング周波数が大きくなっても、サンプリング周波数に応じてバッファのサイズを大きくすれば、割り込み信号の発生頻度は変化しないので、割り込み信号が多発する状況を回避することができる。しかしながら、サンプリング周波数毎に異なるバッファサイズのダブルバッファを設けるのは、ハードウェアの規模が大きくなり、製造コストがかかるというデメリットがある。
そこで、実装すべきメモリの容量を抑えるために、単一のリングバッファを設けて、異なるサンプリング周波数のオーディオデータのバッファリングに共用することが考えられる。異なるサンプリング周波数で一つのリングバッファを共用する場合、リングバッファを構成する各バッファのサイズをどのサンプリング周波数に合わせるかが問題となる。一つは、バッファのサイズを基本サンプリング周波数に合わせる方法であり、図4で説明する。もう一つは、バッファのサイズを4倍サンプリング周波数に合わせる方法であり、図5で説明する。
図4(a)〜(c)は、リングバッファを構成する各バッファのサイズを基本サンプリング周波数に合わせた場合を説明する図である。リングバッファは8個のバッファを含み、各バッファは、基本サンプリング周波数のオーディオデータを1ブロック分(32サンプル)だけ格納できるサイズである。
このリングバッファに基本サンプリング周波数のオーディオデータをバッファリングする場合、図4(a)に示すように、8個のバッファの内、先頭の2つのバッファA、Bを循環させて用いてもよく、残りの6個のバッファを含めて、8個のバッファを循環させて用いてもよい。第1バッファAに格納された1ブロック分のオーディオデータが1単位時間で読み出されると、第1割り込み信号S1が発生し、次に第2バッファBに格納された1ブロック分のオーディオデータが1単位時間で読み出され、第2割り込み信号S2が発生する。
このリングバッファに2倍サンプリング周波数のオーディオデータをバッファリングする場合、図4(b)に示すように、8個のバッファの内、4つのバッファを用い、最初の2つのバッファA1、A2をまとめて第1バッファとして扱い、次の2つのバッファB1、B2をまとめて第2バッファとして扱い、第1バッファと第2バッファを循環させてバッファリングする。図4(a)の場合と同様、残りの4つのバッファも用いてもよい。
データ入出力部34は、第1バッファ(バッファA1、A2)に格納された1ブロック分のオーディオデータを1単位時間で読み出すが、最初の0.5単位時間経過したところで、バッファA1が空きバッファになり、第1割り込み信号S1が発生し、さらに0.5単位時間経過したところで、バッファA2が空きバッファになり、第2の割り込み信号S2が発生する。
しかし、第1割り込み信号S1の発生時には、まだ2倍サンプリング周波数のオーディオデータを1ブロック分格納できるサイズのバッファ領域が空き状態になっていないため、CPU10は新たなオーディオデータブロックの転送を開始することはできない。そこで、CPU10は、第1割り込み信号S1を受け取ってもそれを無視し、1単位時間経過後に発生する第2割り込み信号S2を受け取ってから新たなオーディオデータブロックを第1バッファ(空きバッファA1、A2)に転送する。
データ入出力部34が次の1ブロック分のオーディオデータを第2バッファ(バッファB1、B2)から1単位時間で読み出すときも同様に、0.5単位時間経過したところで、第3割り込み信号S3が発生し、さらに0.5単位時間経過したところで、第4割り込み信号S4が発生する。プロセッサは第3割り込み信号S3は無視し、第4割り込み信号S4を受けてから、新たなオーディオデータブロックを第2バッファ(空きバッファB1、B2)に転送する。
このように、リングバッファを構成する各バッファのサイズが基本サンプリング周波数に合わされている場合、2倍サンプリング周波数のオーディオデータをバッファリングすると、0.5単位時間毎に割り込み信号が発生し、2回の内、1回の割り込み信号は無駄なトラフィックとなる。0.5単位時間は、1ブロック64サンプルの半分である32サンプル分のデータが読み出される時間であり、(1/96000)×32=333マイクロ秒である。
同様に、4倍サンプリング周波数の場合、図4(c)に示すように、4つのバッファA1、A2、A3、A4をまとめて第1バッファとして扱い、次の4つのバッファB1、B2、B3、B4をまとめて第2バッファとして扱い、第1バッファと第2バッファをダブるバッファとして利用することになる。
データ入出力部34が第1バッファ(4つのバッファA1〜A4)に格納された1ブロック分のオーディオデータを1単位時間で読み出す間に、0.25単位時間経過したところで、バッファA1が空きバッファになり、第1割り込み信号S1が発生し、その後、0.25単位時間経過する毎に、バッファA2〜A4が空きバッファになり、第2〜第4割り込み信号S2〜S4が発生する。
このように、基本サンプリング周波数に合わせたサイズのバッファからなるリングバッファを4倍サンプリング周波数のオーディオデータのバッファリングに流用すると、0.25単位時間毎に割り込み信号が発生し、4回の内、3回の割り込み信号は無駄なトラフィックとなる。0.25単位時間は、1ブロック128サンプルの1/4である32サンプル分のデータが読み出される時間であり、(1/192000)×32=167マイクロ秒である。167マイクロ秒毎にバッファ空き割り込み信号が発生すると、割り込み信号線で他の割り込み信号との競合が起こる確率が高くなったり、CPU10での割り込み信号の処理負荷が増大し、割り込み信号の処理レイテンシーに著しい影響を与える。
図4(a)〜(c)で説明したように、基本サンプリング周波数に合わせたサイズのバッファから構成されるリングバッファを2倍サンプリング周波数や4倍サンプリング周波数のオーディオデータのバッファリングに用いると、無駄な割り込み信号が発生する。そこで、リングバッファを構成するバッファのサイズを大きくし、4倍サンプリング周波数に合わせ、割り込み信号の発生頻度を抑えることも考えられるが、その場合は別の問題が発生する。
図5(a)〜(c)は、リングバッファを構成する各バッファのサイズを4倍サンプリング周波数に合わせた場合を説明する図である。リングバッファは2個のバッファを含み、各バッファは、4倍サンプリング周波数のオーディオデータを1ブロック分(128サンプル)だけ格納できるサイズである。
このリングバッファに基本サンプリング周波数のオーディオデータをバッファリングする場合、図5(a)に示すように、各バッファA、Bに4ブロック分のオーディオデータが格納される。第1バッファA内の4ブロック分のオーディオデータを読み出すまでに4単位時間がかかる。4ブロック分の読み出しが完了してから第1バッファAが空き状態になり、第1割り込み信号S1が発生し、CPU10によるデータ転送が開始される。データ入出力部34が次の4ブロック分のオーディオデータを第2バッファBから読み出している間に、CPU10は新たな4ブロック分のオーディオデータを第1バッファAに書き込むことになる。
このリングバッファを用いると、割り込み信号が4単位時間毎にしか発生しないため、CPU10は、4単位時間が経過するまでは新たなオーディオブロックの書き込みを開始することができない。言い換えれば、データ入出力部34は、常に4単位時間古いオーディオデータをバッファから読み出して出力していることになる。1単位時間が667マイクロ秒のとき、4単位時間は2.67ミリ秒に当たるから、ゲーム、チャット、テレビ会議などのリアルタイムアプリケーションにおいて、2.67ミリ秒も古いオーディオが再生される状況では、リアルタイム性のニーズに十分に応えることができない。
このリングバッファに2倍サンプリング周波数のオーディオデータをバッファリングする場合、図5(b)に示すように、各バッファA、Bに2ブロック分のオーディオデータが格納される。第1バッファA内の2ブロックを読み出すまでに2単位時間がかかる。2ブロック分の読み出しが完了し、第1バッファAが空き状態になってから、第1割り込み信号S1が発生するため、常に2単位時間だけ古いオーディオデータが再生されることになる。
このリングバッファに4倍サンプリング周波数のオーディオデータをバッファリングする場合は、図5(c)に示すように、各バッファA、Bに1ブロック分のオーディオデータが格納され、1単位時間毎に割り込み信号S1、S2が発生するから、当然、1単位時間以上の遅れは生じない。
このように、リングバッファの各バッファのサイズを4倍サンプリング周波数に合わせたサイズまで大きくすると、割り込み信号の発生頻度は抑えられるが、これを基本サンプリング周波数や2倍サンプリング周波数のオーディオデータのバッファリングに用いると、割り込み信号の発生が不足し、バッファの更新頻度が落ちてリアルタイム性が損なわれる。
以上の課題の認識のもと、本実施の形態では、リングバッファのバッファサイズは基本サンプリング周波数に合わせておく一方で、割り込み信号をサンプリング周波数に応じて間引きすることにより、リアルタイム性を犠牲にせずに、かつ、割り込み信号の多発によるレイテンシ増加を回避する。図6(a)〜(c)を参照して、本実施の形態に係る割り込み信号の間引き処理を説明する。
図6(a)〜(c)に示すように、本実施の形態のリングバッファ30は、図4(a)〜(c)と同様に、8個のバッファを含み、各バッファは、基本サンプリング周波数のオーディオデータを1ブロック分(32サンプル)だけ格納できるサイズである。リングバッファ30に、基本サンプリング周波数、2倍サンプリング周波数、4倍サンプリング周波数のオーディオデータをバッファリングする方法は、図4(a)〜(c)で説明した通りである。
リングバッファ30に基本サンプリング周波数のオーディオデータがバッファリングされる場合、図6(a)に示すように、各バッファA、Bに保持された1ブロックのオーディオデータが1単位時間で読み出され、各バッファA、Bが空き状態になると、割り込み信号S1、S2が発生する。基本サンプリング周波数の場合、間引きモード設定部22は、間引きモードを「1−モード」に設定するため、これらの割り込み信号S1、S2は間引きされることなく、CPU10に供給される。
リングバッファ30に2倍サンプリング周波数のオーディオデータがバッファリングされる場合、間引きモード設定部22は、間引きモードを「1/2−モード」に設定する。図6(b)に示すように、最初の2つのバッファA1、A2に保持された1ブロック分のオーディオデータが1単位時間で読み出され、0.5単位時間毎に割り込み信号S1、S2が発生する点は、図4(b)と同じであるが、割り込み信号生成部26は、0.5単位時間経過後に発生する第1割り込み信号S1は間引きし、1単位時間経過後の第2割り込み信号S2だけを抜き出してCPU10に供給する。次の2つのバッファB1、B2についても同様に、第3割り込み信号S3は間引きされ、第4割り込み信号S4だけがCPU10に供給される。
このように、割り込み信号生成部26は、1/2−モードでは、2回の内、1回の割り込み信号だけを抜き取って、実際の割り込み信号としてCPU10に供給する。この間引き処理により、CPU10からは、2つのバッファA1、A2に分かれているのではなく、1ブロック64サンプル分を格納する1つのバッファがあるように見える。すなわち、CPU10からは図3(b)のようにバッファサイズが2倍になっているかのように見え、実際の割り込み信号は1単位時間毎に発生するから、割り込み信号線に無駄なトラフィックが発生しない。
リングバッファ30に4倍サンプリング周波数のオーディオデータがバッファリングされる場合、間引きモード設定部22は、間引きモードを「1/4−モード」に設定する。図6(c)に示すように、最初の4つのバッファA1〜A4に保持された1ブロック分のオーディオデータが1単位時間で読み出され、0.25単位時間毎に割り込み信号S1〜S4が発生する点は、図4(c)と同じであるが、割り込み信号生成部26は、0.25単位時間毎に発生する第1〜第3割り込み信号S1〜S3は間引きし、1単位時間経過後の第4割り込み信号S4だけを抜き出してCPU10に供給する。次の4つのバッファB1〜B4についても同様に、0.25単位時間毎に発生する割り込み信号S5〜S7は間引きされ、1単位時間経過後の割り込み信号S8だけがCPU10に供給される。
このように、割り込み信号生成部26は、1/4−モードでは、4回の内、1回の割り込み信号だけを抜き取って、実際の割り込み信号としてCPU10に供給する。この間引き処理により、CPU10からは、図3(c)のようにあたかもバッファサイズが4倍になっているように見え、割り込み信号は1単位時間毎にしか発生しない。
この間引き処理を実行するために、たとえば、4倍サンプリング周波数の場合、3ビットのバイナリカウンタを用いて、バッファ空きの割り込み信号を受けるたびに、1つずつバイナリカウンタの値を更新し、下位2ビットがともに1になるときだけ、割り込み信号を許可し、それ以外はキャンセルするロジック回路を組めば、4回に1回の割合で割り込み信号を抜き出してCPU10に供給することができる。2倍サンプリング周波数の場合、2ビットのバイナリカウンタを用いて、下位1ビットが1になるときだけ、割り込み信号を出力するロジック回路を組めば、2回に1回の割合で割り込み信号を抜き出してCPU10に供給することができる。
以上述べたように、本実施の形態によれば、オーディオバッファが空き状態またはフル状態になった際の割り込み信号をサンプリング周波数に応じて間引きすることにより、種々のサンプリング周波数のオーディオデータを出力または入力する場合でも、割り込み信号の無駄な発生をなくし、割り込み信号の多発によるデータ転送効率の低下を回避することができる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。そのような変形例を説明する。
上記の実施の形態では、オーディオデータの入出力を例に説明したが、本発明はオーディオに限らず、他の種類のデータの入出力にも適用することができる。たとえば、汎用処理を実行するプロセッサと、専用処理、たとえば外部デバイスとの入出力処理を実行するコプロセッサとがバス結合したシステムにおいて、プロセッサとコプロセッサの間でデータを転送して処理することがある。コプロセッサからプロセッサへ割り込み信号線を介して割り込み信号が発生し、割り込み信号の処理レイテンシが問題になる。このような場合にも本発明の間引き処理により、コプロセッサにおけるデータブロックの入出力速度に応じて、バッファ空きまたはバッファフルの割り込み信号を間引きしてプロセッサに与えることで、割り込み信号のトラフィックを減らし、データ転送効率の低下を防ぐことができる。
実施の形態に係る情報処理装置の構成図である。 図1のオーディオ処理ユニットの詳細な構成図である。 サンプリング周波数毎に異なるサイズのダブルバッファを設けた場合を説明する図である。 リングバッファを構成する各バッファのサイズを基本サンプリング周波数に合わせた場合を説明する図である。 リングバッファを構成する各バッファのサイズを4倍サンプリング周波数に合わせた場合を説明する図である。 本実施の形態に係る割り込み信号の間引き処理を説明する図である。
符号の説明
10 CPU、 12 メインメモリ、 14 DMAコントローラ、 20 オーディオ処理ユニット、 22 間引きモード設定部、 24 入出力周期設定部、 26 割り込み信号生成部、 30 リングバッファ、 32 バッファ状態保持部、 34 データ入出力部、 40 A/D変換器、 42 D/A変換器、 44 マイクロホン、 46 スピーカ、 50 バス、 100 情報処理装置。

Claims (7)

  1. プロセッサとオーディオ処理ユニットがバスで結合された情報処理装置であって、
    前記オーディオ処理ユニットは、
    外部に出力するオーディオデータを一時的に蓄積するための複数のバッファを含むリングバッファと、
    前記リングバッファ内のあるバッファからデータが出力され、そのバッファが空き状態になったことを示す割り込み信号を、前記外部に出力するオーディオデータのサンプリング周波数に応じて間引いた上で前記プロセッサに供給する割り込み信号生成部とを含み、
    前記プロセッサは、前記割り込み信号を受け取った場合に、前記リングバッファ内の空き状態のバッファにオーディオデータを書き込むためのデータ転送命令を発行することを特徴とする情報処理装置。
  2. プロセッサとオーディオ処理ユニットがバスで結合された情報処理装置であって、
    前記オーディオ処理ユニットは、
    外部から入力されるオーディオデータを一時的に蓄積するための複数のバッファを含むリングバッファと、
    前記リングバッファ内のあるバッファにデータが入力され、そのバッファがフル状態になったことを示す割り込み信号を、前記外部から入力されるオーディオデータのサンプリング周波数に応じて間引いた上で前記プロセッサに供給する割り込み信号生成部とを含み、
    前記プロセッサは、前記割り込み信号を受け取った場合に、前記リングバッファ内のフル状態のバッファからオーディオデータを読み出すためのデータ転送命令を発行することを特徴とする情報処理装置。
  3. 前記割り込み信号生成器は、前記サンプリング周波数が大きいほど、前記割り込み信号を間引く割合を高くすることを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記サンプリング周波数の候補毎に前記割り込み信号の間引き割合が異なる複数の間引きモードの中から、現在処理中のオーディオデータのサンプリング周波数に応じた間引きモードを選択して、前記割り込み信号生成部の間引き割合を設定するモード設定部をさらに含むことを特徴とする請求項1から3のいずれかに記載の情報処理装置。
  5. 前記リングバッファを構成するバッファのサイズは、前記サンプリング周波数の候補の内、最も低いサンプリング周波数のオーディオデータの1ブロック分を格納する容量に設定されることを特徴とする請求項1から4のいずれかに記載の情報処理装置。
  6. プロセッサにバス結合されるオーディオ処理装置であって、
    外部に出力するオーディオデータを一時的に蓄積するための複数のバッファを含むリングバッファと、
    前記リングバッファ内のあるバッファからオーディオデータが出力され、そのバッファが空き状態になったことを示す割り込み信号を、前記外部に出力するオーディオデータのサンプリング周波数に応じて間引いた上で前記プロセッサに供給する割り込み信号生成部とを含み、
    前記割り込み信号を受け取った前記プロセッサによるデータ転送命令により、前記リングバッファ内の空き状態のバッファにオーディオデータが書き込まれることを特徴とするオーディオ処理装置。
  7. プロセッサにバス結合されるオーディオ処理装置であって、
    外部から入力されるオーディオデータを一時的に蓄積するための複数のバッファを含むリングバッファと、
    前記リングバッファ内のあるバッファにオーディオデータが入力され、そのバッファがフル状態になったことを示す割り込み信号を、前記外部から入力されるオーディオデータのサンプリング周波数に応じて間引いた上で前記プロセッサに供給する割り込み信号生成部とを含み、
    前記割り込み信号を受け取った前記プロセッサによるデータ転送命令により、前記リングバッファ内のフル状態のバッファからオーディオデータが読み出されることを特徴とするオーディオ処理装置。
JP2006252775A 2006-09-19 2006-09-19 オーディオ処理装置、入出力処理装置および情報処理装置 Active JP4252593B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2006252775A JP4252593B2 (ja) 2006-09-19 2006-09-19 オーディオ処理装置、入出力処理装置および情報処理装置
US11/830,981 US7684884B2 (en) 2006-09-19 2007-07-31 Audio processor, input/output processing apparatus, and information processing apparatus
EP07016120A EP1903447B1 (en) 2006-09-19 2007-08-16 Audio processor, input/output processing apparatus, and information processing apparatus
DE602007004156T DE602007004156D1 (de) 2006-09-19 2007-08-16 Audioprozessor, Eingabe-/Ausgabeverarbeitungsvorrichtung und Informationsverarbeitungsvorrichtung
AT07016120T ATE454664T1 (de) 2006-09-19 2007-08-16 Audioprozessor, eingabe- /ausgabeverarbeitungsvorrichtung und informationsverarbeitungsvorrichtung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006252775A JP4252593B2 (ja) 2006-09-19 2006-09-19 オーディオ処理装置、入出力処理装置および情報処理装置

Publications (2)

Publication Number Publication Date
JP2008077174A JP2008077174A (ja) 2008-04-03
JP4252593B2 true JP4252593B2 (ja) 2009-04-08

Family

ID=38705155

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006252775A Active JP4252593B2 (ja) 2006-09-19 2006-09-19 オーディオ処理装置、入出力処理装置および情報処理装置

Country Status (5)

Country Link
US (1) US7684884B2 (ja)
EP (1) EP1903447B1 (ja)
JP (1) JP4252593B2 (ja)
AT (1) ATE454664T1 (ja)
DE (1) DE602007004156D1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8121300B1 (en) 2009-10-08 2012-02-21 Loduca Joseph A Drum accessory for gating of a microphone on a drum
US8073995B2 (en) 2009-10-19 2011-12-06 Research In Motion Limited Efficient low-latency buffer
US8718806B2 (en) * 2011-09-02 2014-05-06 Apple Inc. Slave mode transmit with zero delay for audio interface
US9891686B2 (en) 2013-09-26 2018-02-13 Intel Corporation Throttling device power
US9761212B2 (en) 2015-01-05 2017-09-12 Rare Earth Dynamics, Inc. Magnetically secured instrument trigger
US10096309B2 (en) 2015-01-05 2018-10-09 Rare Earth Dynamics, Inc. Magnetically secured instrument trigger
US9875732B2 (en) 2015-01-05 2018-01-23 Stephen Suitor Handheld electronic musical percussion instrument
KR20160090487A (ko) * 2015-01-22 2016-08-01 삼성전자주식회사 오디오 프로세싱 시스템
KR102411811B1 (ko) * 2018-02-26 2022-06-23 한국전자통신연구원 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치 및 방법
US11335310B2 (en) 2018-06-18 2022-05-17 Rare Earth Dynamics, Inc. Instrument trigger and instrument trigger mounting systems and methods
CN112802440B (zh) * 2019-10-28 2022-10-28 海信视像科技股份有限公司 一种显示设备及声音低延迟处理方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5051981A (en) * 1988-01-21 1991-09-24 Codex Corporation Digital filtering
JPH08292845A (ja) 1995-04-24 1996-11-05 Canon Inc 送受信高速制御装置、プリンタ及びプリンタ制御システム
US6366971B1 (en) * 1998-01-09 2002-04-02 Yamaha Corporation Audio system for playback of waveform sample data
US6748472B2 (en) 2001-02-28 2004-06-08 Koninklijke Philips Electronics N.V. Method and system for an interrupt accelerator that reduces the number of interrupts for a digital signal processor
US7474722B1 (en) * 2003-03-21 2009-01-06 D2Audio Corporation Systems and methods for sample rate conversion using multiple rate estimate counters
JP2005143009A (ja) 2003-11-10 2005-06-02 Matsushita Electric Ind Co Ltd 構内交換機
US20060041895A1 (en) * 2004-08-04 2006-02-23 Microsoft Corporation Systems and methods for interfacing with codecs across an architecture optimized for audio

Also Published As

Publication number Publication date
JP2008077174A (ja) 2008-04-03
US20080071958A1 (en) 2008-03-20
ATE454664T1 (de) 2010-01-15
EP1903447B1 (en) 2010-01-06
US7684884B2 (en) 2010-03-23
EP1903447A1 (en) 2008-03-26
DE602007004156D1 (de) 2010-02-25

Similar Documents

Publication Publication Date Title
JP4252593B2 (ja) オーディオ処理装置、入出力処理装置および情報処理装置
US7904626B2 (en) Arbiter and arbitration method of multiple data accesses
JP3181515B2 (ja) データ転送方法及びその方法を用いたデータ転送装置
JP6053384B2 (ja) 情報処理装置、メモリ制御装置およびその制御方法
US6427181B1 (en) Method of and apparatus for processing information, and providing medium
JP2006313614A (ja) メモリ装置の構造
JP2007249938A (ja) Usbホストシステム、avデータ再生装置およびavデータ記録装置
AU5248300A (en) Data transfer apparatus, data transfer system, and data transfer method with double buffering
EP0995187B1 (en) Tone generation device and method
US6801961B2 (en) Method for solving intermission of streaming data and associated device thereof
JP2008097430A (ja) ストリームデータ再生システム
US7539792B2 (en) Data distribution method and system having a stream buffer device with a sub-buffer table for recording the state of a pluraity of corresponding sub-buffers
US20100146158A1 (en) Data processing circuit
JP2005190332A (ja) データ転送制御装置
JP4514411B2 (ja) バス間通信インタフェース装置
KR100333646B1 (ko) 동영상 전문가 그룹 오디오 레이어 3 디코더의 입력 버퍼
JPH076093A (ja) 記憶制御装置
JP4379948B2 (ja) ディスクドライブインターフェース装置
JP4023332B2 (ja) 記録再生装置
JP2006053246A (ja) データ処理装置、データ処理プログラム、データ処理装置のデータ処理方法
JP2642087B2 (ja) 主記憶装置間データ転送処理機構
JP5459937B2 (ja) 集積回路およびオーディオ装置
JP2002055873A (ja) メモリ統合装置
JP2006146553A (ja) データ転送装置
JP2011180653A (ja) データ転送装置およびデータ転送方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080722

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080918

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081014

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081112

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20081217

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090120

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090121

R150 Certificate of patent or registration of utility model

Ref document number: 4252593

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120130

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120130

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130130

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130130

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140130

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250