JP4373255B2 - ダイレクトメモリアクセス制御装置および方法 - Google Patents

ダイレクトメモリアクセス制御装置および方法 Download PDF

Info

Publication number
JP4373255B2
JP4373255B2 JP2004084424A JP2004084424A JP4373255B2 JP 4373255 B2 JP4373255 B2 JP 4373255B2 JP 2004084424 A JP2004084424 A JP 2004084424A JP 2004084424 A JP2004084424 A JP 2004084424A JP 4373255 B2 JP4373255 B2 JP 4373255B2
Authority
JP
Japan
Prior art keywords
transfer
data
descriptor
memory
instruction
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.)
Expired - Fee Related
Application number
JP2004084424A
Other languages
English (en)
Other versions
JP2005275538A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004084424A priority Critical patent/JP4373255B2/ja
Priority to US10/953,335 priority patent/US7299302B2/en
Publication of JP2005275538A publication Critical patent/JP2005275538A/ja
Application granted granted Critical
Publication of JP4373255B2 publication Critical patent/JP4373255B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Description

本発明は、高速データ転送を必要とするデータ処理装置におけるダイレクトメモリアクセス(Direct Memory Access,DMA)を制御する装置および方法に関する。
コンピュータシステムにおいて、メモリとメモリの間、またはメモリと入出力デバイス(I/Oデバイス)の間のデータ転送を効率よく行うことは、コンピュータシステムの性能を高めるために重要な課題であるが、この課題を解決するための方法としてDMAが知られている(例えば、特許文献1参照)。
I/Oデバイスは、メモリに対してデータを転送したり、メモリから転送されたデータを受け取る装置であり、記憶装置やインタフェース装置がこれに含まれる。また、DMAは、中央処理装置(CPU)がコンピュータシステム内のデータ転送を制御する代わりに、DMA制御回路と呼ばれる専用のハードウェアがCPUからの命令に基づいてデータ転送を制御する仕組みである。
CPUからDMA制御回路に発行される命令はディスクリプタと呼ばれ、CPUがディスクリプタをメモリ上に用意した後に、DMA制御回路がメモリからディスクリプタを自律的に読み出して参照する方法が広く用いられている。
図9は、DMA制御回路が装備された従来のデータ処理装置の構成例を示している。図9のデータ処理装置は、データ転送制御装置101およびI/Oデバイス102a、102bからなり、データ転送制御装置101はCPU111、メモリ112、メモリコントローラ113、およびI/Oコントローラ114を備える。
メモリコントローラ113には、CPU111、メモリ112、およびI/Oコントローラ114が接続され、I/Oコントローラ114には、I/Oデバイス102aおよび102bが接続されている。I/Oコントローラ114に接続されるI/Oデバイスの数は2つに限られず、一般には、1つまたは複数のI/Oデバイスが接続される。
メモリコントローラ113は、CPU111とメモリ112の間、およびI/Oコントローラ114とメモリ112の間のデータ転送を制御する。I/Oコントローラ114に含まれるDMA制御回路121は、メモリコントローラ113を通じてメモリ112とI/Oデバイス102の間のデータ転送を行う。また、CPU111とI/Oコントローラ114は、メモリコントローラ113を通じて制御情報をやり取りする。
図10は、図9のI/Oコントローラ114の構成図である。図10のI/Oコントローラ114は、DMA制御回路121、メモリインタフェース(I/F)122、およびI/Oデバイスインタフェース123を備え、DMA制御回路121は、ディスクリプタフェッチ回路131、ディスクリプタバッファ132、ステートマシン回路133、データ転送制御回路134、およびレジスタ135から構成される。
CPU111は、メモリインタフェース122を通じてレジスタ135に起動指示を書き込むことで、ディスクリプタフェッチ回路131およびステートマシン回路133を起動する。
ディスクリプタフェッチ回路131は、メモリインタフェース122を通じてディスクリプタをメモリ112から読み出し、ディスクリプタバッファ132は、ディスクリプタフェッチ回路131からディスクリプタを受け取って保持する。ステートマシン回路133は、ディスクリプタを解析して、データ転送制御回路134にデータ転送を指示し、データ転送制御回路134は、ステートマシン回路133からの指示を受けて、メモリインタフェース122とI/Oデバイスインタフェース123を通じてデータ転送を行う。
図11は、ディスクリプタの一例を示している。図11のディスクリプタは、8バイト*3ワード(24バイト)の長さを持ち、コマンド、フラグ、転送バイト長、メモリアドレス、およびI/Oアドレスから構成される。
コマンドは、データ転送の方向を指示するビットであり、例えば、論理‘0’であればリード転送、つまりI/Oデバイス102からメモリ112へのデータ転送を行うことを示し、論理‘1’であればライト転送、つまりメモリ112からI/Oデバイス102へのデータ転送を行うことを示す。
フラグは、DMAの様々な動作を制御するためのビットであり、例えば、DMA制御回路121に対して、データ転送の終了後に割り込みを発生させるように指示するためのビットである。転送バイト長は、DMA制御回路121に対して、メモリ112とI/Oデバイス102の間で転送されるデータの長さ(バイト数)を指示するためのフィールドである。
メモリアドレスは、リード時にはI/Oデバイス102から読み出したデータを格納するメモリ112上のアドレスを示し、ライト時にはI/Oデバイス102に対して転送するデータが格納されているメモリ112上のアドレスを示す。I/Oアドレスは、リード時にはデータを読み出すI/Oデバイス102の番号とデバイス内のアドレスを示し、ライト時にはデータを書き込むI/Oデバイス102の番号とデバイス内のアドレスを示す。
次に、図12の動作シーケンスを参照しながら、DMAライトおよびリードのそれぞれの動作について説明する。
<ライト動作>
(1)CPU111は、メモリ112上のディスクリプタで指定するアドレスに転送データを用意する。
(2)CPU111は、メモリ112上の予め決められたアドレスに図11のフォーマットによるライト転送のためのディスクリプタを用意する。
(3)CPU111は、DMA制御回路121内のレジスタ135に起動指示を書き込むことでDMA制御回路121を起動する。
(4)DMA制御回路121は、CPU111から起動されると、メモリ112上の予め決められたアドレスからディスクリプタを読み出す。
(5)DMA制御回路121は、読み出したディスクリプタを解析し、ライト指示であれば、ディスクリプタ内に指定されたメモリアドレスから、指定された転送バイト長のデータを読み出す。
(6)続いて、DMA制御回路121は、メモリ112から読み出したデータを、ディスクリプタ内に指定されたI/Oアドレスに基づいてI/Oデバイス102へ転送する。
(7)DMA制御回路121は、データ転送が終了すると、ディスクリプタ内のフラグの指示に従ってCPU111に割り込み信号を送信して、データ転送終了を通知する。
<リード動作>
(11)CPU111は、メモリ112上のディスクリプタで指定するアドレスに転送データのための領域を確保する。
(12)CPU111は、メモリ112上の予め決められたアドレスに図11のフォーマットによるリード転送のためのディスクリプタを用意する。
(13)CPU111は、DMA制御回路121内のレジスタ135に起動指示を書き込むことでDMA制御回路121を起動する。
(14)DMA制御回路121は、CPU111から起動されると、予め決められたアドレスからディスクリプタを読み出す。
(15)DMA制御回路121は、読み出したディスクリプタを解析し、リード指示であれば、ディスクリプタ内に指定されたI/Oアドレスの指すI/Oデバイス102から、指定された転送バイト長のデータを読み出す。
(16)続いて、DMA制御回路121は、I/Oデバイス102から読み出したデータを、ディスクリプタ内に指定されたメモリアドレスへ書き込む。
(17)DMA制御回路121は、データ転送が終了すると、ディスクリプタ内のフラグの指示に従ってCPU111に割り込み信号を送信して、データ転送終了を通知する。
上述した動作シーケンスから分かるように、CPU111は、ディスクリプタを用意してDMA制御回路121を起動すると、割り込みによって通知が行われるまでのデータ転送が行われている間は、別の処理を行うことができる。これにより、CPU111はデータ転送という比較的単純な処理から解放されて、より複雑な処理に時間を割くことができるので、システムの性能が向上する。
特開平05−216808号公報
上述した従来のDMA制御方法には、次のような問題がある。
DMA制御回路は、データ転送をCPUに代わって行うことでCPUの負荷を下げ、システムの処理性能を高めるのに有効である。しかしながら、従来のDMA制御方法では、CPUがメモリ上に用意したディスクリプタをDMA制御回路が読み出した後にデータ転送が行われるため、DMA制御回路からメモリへのアクセス・レイテンシ(ディスクリプタを読み出すのに要する時間)が大きい場合、十分な性能が得られない場合がある。この問題は、特に短いデータを転送する場合に顕著に現れる。
短いデータを転送する場合、DMA制御回路とI/Oデバイスの間の転送時間は、長いデータを転送する場合に比べて短くて済む。しかしながら、それ以外の制御動作に要する時間は、長いデータを転送する場合とあまり変わらない。したがって、全体の動作時間に対するデータ転送以外の制御動作に要する時間の比率が、長いデータを転送する場合に比べて高くなり、データ転送の効率が低下する。
本発明の課題は、データ処理装置において、DMAによるデータ転送の効率を向上させる装置および方法を提供することである。
図1は、本発明のDMA制御装置の原理図である。図1のDMA制御装置153は、命令格納手段161および転送制御手段162を備え、CPU151から与えられた命令に従ってメモリ152から転送先装置154へのデータ転送を制御する。
命令格納手段161は、CPU151から与えられたデータ転送命令を格納する。転送制御手段162は、命令格納手段161に格納されたデータ転送命令が転送先装置154へ転送される転送データを含んでいるか否かをチェックし、データ転送命令が転送データを含んでいないとき、メモリ152から転送データを読み出して転送先装置154へ転送し、データ転送命令が転送データを含んでいるとき、命令格納手段161から転送データを読み出して転送先装置154へ転送する。
CPU151からDMA制御装置153に対してデータ転送命令が発行されると、DMA制御装置153は、そのデータ転送命令を取得して命令格納手段161に格納し、転送制御手段162は、格納されたデータ転送命令を解析する。転送制御手段162は、データ転送命令に転送データが含まれていないとき、メモリ152から転送データを読み出して転送先装置154へ転送し、データ転送命令に転送データが含まれているとき、その転送データをそのまま転送先装置154へ転送する。
このようなDMA制御装置によれば、データ転送命令に転送データが含まれている場合は、一旦、データ転送命令を取得すれば、その後メモリリードを行うことなく転送先装置154へのライト転送を行うことができる。したがって、ライト転送に要する時間が短縮される。
転送先装置154は、例えば、上述した図9のI/Oデバイス102に対応し、DMA制御装置153は、例えば、後述する図2のDMA制御回路201に対応する。また、命令格納手段161は、例えば、図2のディスクリプタバッファ212に対応し、転送制御手段162は、例えば、図2のステートマシン回路213およびデータ転送制御回路214に対応し、データ転送命令は、例えば、後述する図3のディスクリプタに対応する。
また、CPU151は、メモリ152から転送先装置154へのデータ転送が発生したとき、そのデータ転送を制御するDMA制御装置153に対して命令を与える。
CPU151は、転送先装置154へ転送される転送データのデータ長が所定値より長いか否かをチェックし、データ長が所定値より長ければ、メモリ152に転送データを格納し、データ転送命令が転送データを含んでいないことを示すフラグ情報と、転送データのメモリアドレスとをデータ転送命令に設定し、データ長が所定値以下であれば、転送データと、データ転送命令が転送データを含んでいることを示すフラグ情報とをデータ転送命令に設定する。そして、DMA制御装置153を起動して、データ転送命令により指定されたデータ転送を行わせる。
CPU151がこのような処理を実行することで、所定値以下のデータ長の転送データがデータ転送命令に設定されて、DMA制御装置153に与えられる。したがって、比較的短いデータのライト転送に要する時間が短縮される。また、所定値より長い転送データはデータ転送命令に設定する必要がないので、データ転送命令のサイズの増分を上記所定値程度に抑えることができる。
CPU151により設定されるフラグ情報は、例えば、図3のディスクリプタのフラグ内に含まれるライト・イミディエート・ビットに対応する。
本発明によれば、データ処理装置において、DMAによるメモリから転送先装置へのデータ転送に要する時間を短縮することが可能になる。
以下、図面を参照しながら、本発明を実施するための最良の形態を詳細に説明する。
本実施形態のデータ処理装置の全体構成については、図9のデータ処理装置と同様であるが、DMA制御回路に対する命令の中で、データが格納されたアドレスを指定するか、データ自身を指定するかを選択できるようにすることで、ライト転送の効率化を図る。そのために、本実施形態のデータ処理装置は以下の特徴を備える。
・ディスクリプタのフラグフィールドにライト・イミディエートを示すビット(ライト・イミディエート・ビット)を設ける。
・上記ライト・イミディエート・ビットに従って、DMA制御回路は指定されたメモリアドレスからデータを読み出してライト転送するか、ディスクリプタ内のデータをライト転送するかを選択する。
DMA制御回路は、ディスクリプタのフラグフィールドのライト・イミディエート・ビットが論理‘0’であれば、従来と同様にディスクリプタ内に指定されたメモリアドレスからデータを読み出して、I/Oデバイスへ転送するが、ライト・イミディエート・ビットが論理‘1’であれば、ディスクリプタ内のライトデータフィールドに設定されたデータをI/Oデバイスへ転送する。
例えば、所定値以内の長さの短いデータをライト転送する場合、CPUはライト・イミディエート・ビットを‘1’に設定し、ディスクリプタ内にライトデータを設定する。これにより、DMA制御回路は、ディスクリプタ内に設定されたライトデータを自律的に転送する。データ長の所定値としては、例えば、8バイト、16バイト、64バイト等の値が用いられる。
一方、所定値より長いデータをライト転送する場合、CPUはライト・イミディエート・ビットを‘0’に設定し、メモリにライトデータを格納する。これにより、DMA制御回路は、メモリに格納されたライトデータを自律的に転送する。
従来のDMA制御回路では、例えば、8バイトの短いデータをライト転送する場合、まずメモリからディスクリプタを読み出して解析した後、指定されたアドレスからデータを読み出す必要があるため、メモリリードを2回続けて行っていた。また、ディスクリプタをリードしないとデータが格納されているアドレスが分からないため、2回のメモリリードは同時に行うことはできず、たった8バイトのデータを転送するために必要以上に長い時間を要する結果になっていた。
これに対して、本実施形態のDMA制御回路では、短いデータの場合は予めディスクリプタ領域に用意されるため、1回のメモリリードでデータ転送を開始することができ、ライト転送に要する時間を短縮する効果が得られる。
図2は、本実施形態のI/Oコントローラの構成図である。図2のI/Oコントローラは、DMA制御回路201、メモリインタフェース202、およびI/Oデバイスインタフェース203を備え、DMA制御回路201は、ディスクリプタフェッチ回路211、ディスクリプタバッファ222、ステートマシン回路213、データ転送制御回路214、およびレジスタ215から構成される。
図10の場合と同様に、CPUは、メモリインタフェース202を通じてレジスタ215に起動指示を書き込むことで、ディスクリプタフェッチ回路211およびステートマシン回路213を起動する。
ディスクリプタフェッチ回路211は、メモリインタフェース202を通じてディスクリプタをメモリから読み出し、ディスクリプタバッファ212に格納する。ステートマシン回路213は、ディスクリプタバッファ212に格納されたディスクリプタを解析して、データ転送制御回路214にデータ転送を指示し、データ転送制御回路214は、ステートマシン回路213からの指示を受けて、メモリインタフェース202とI/Oデバイスインタフェース203を通じてデータ転送を行う。
データ転送制御回路214は、メモリ転送制御回路221、データバッファ222、およびI/Oデバイス転送制御回路223を備える。メモリ転送制御回路221は、ステートマシン回路213から起動され、メモリインタフェース202を通じてメモリとデータバッファ222の間でデータ転送を行い、I/Oデバイス転送制御回路223は、ステートマシン回路213から起動され、I/Oデバイスインタフェース203を通じてデータバッファ222とI/Oデバイスの間でデータ転送を行う。
このとき、ライト・イミディエート・ビットが‘1’であれば、I/Oデバイス転送制御回路223は、ディスクリプタバッファ212に格納されたディスクリプタ内に設定されたデータを読み出して、I/Oデバイスへ転送する。
図3は、CPUが発行するディスクリプタの一例を示している。図3のディスクリプタは、8バイト*4ワード(32バイト)の長さを持ち、コマンド、フラグ、転送バイト長、メモリアドレス、I/Oアドレス、およびイミディエート・ライトデータから構成される。この例では、フラグにライト・イミディエート・ビットが含まれており、イミディエート・ライトデータのデータ長は8バイトである。
ライトデータが8バイトより長い場合、CPUは、ライト・イミディエート・ビットを‘0’に設定し、ディスクリプタ内のメモリアドレスフィールドにライトデータが格納されているメモリアドレスを設定する。また、ライトデータが8バイト以下の場合は、ライト・イミディエート・ビットを‘1’に設定し、ディスクリプタ内のイミディエート・ライトデータフィールドにライトデータを設定する。
次に、図4の動作シーケンスを参照しながら、ライト・イミディエート・ビットが‘0’および‘1’の場合のそれぞれのDMAライト動作について説明する。
<ライトデータが8バイトより長い場合:ライト・イミディエート・ビットが‘0’の場合>
(21)CPUは、メモリ上のディスクリプタで指定するアドレスに転送データを用意する。
(22)CPUは、メモリ上の予め決められたアドレスに図3のフォーマットによるライト転送のためのディスクリプタを用意する。このとき、ディスクリプタ内のライト・イミディエート・ビットは‘0’に設定する。
(23)CPUは、DMA制御回路201内のレジスタ215に起動指示を書き込むことでDMA制御回路201を起動する。
(24)DMA制御回路201は、CPUから起動されると、メモリ上の予め決められたアドレスからディスクリプタを読み出す。
(25)DMA制御回路201は、読み出したディスクリプタを解析し、ライト指示でかつライト・イミディエート・ビットが‘0’であれば、ディスクリプタ内に指定されたメモリアドレスから、指定された転送バイト長のデータを読み出し、データバッファ222に格納する。
(26)続いて、DMA制御回路201は、データバッファ222に格納したデータを、ディスクリプタ内に指定されたI/Oアドレスに基づいてI/Oデバイスへ転送する。
(27)DMA制御回路201は、データ転送が終了すると、ディスクリプタ内のフラグの指示に従ってCPUに割り込み信号を送信して、データ転送終了を通知する。
<ライトデータが8バイト以下の場合:ライト・イミディエート・ビットが‘1’の場合>
(31)CPUは、メモリ上の予め決められたアドレスに図3のフォーマットによるライト転送のためのディスクリプタを用意し、そのイミディエート・ライトデータフィールドに転送データを用意する。
(32)CPUは、ディスクリプタの他のフィールドの情報を用意する。このとき、ディスクリプタ内のライト・イミディエート・ビットは‘1’に設定する。
(33)CPUは、DMA制御回路201内のレジスタ215に起動指示を書き込むことでDMA制御回路201を起動する。
(34)DMA制御回路201は、CPUから起動されると、メモリ上の予め決められたアドレスからディスクリプタを読み出し、ディスクリプタバッファ212に格納する。
(35)DMA制御回路201は、ディスクリプタバッファ212内のディスクリプタを解析し、ライト指示でかつライト・イミディエート・ビットが‘1’であれば、指定された転送バイト長のデータをそのディスクリプタ内のイミディエート・ライトデータフィールドから読み出し、ディスクリプタ内に指定されたI/Oアドレスに基づいてI/Oデバイスへ転送する。
(36)DMA制御回路201は、データ転送が終了すると、ディスクリプタ内のフラグの指示に従ってCPUに割り込み信号を送信して、データ転送終了を通知する。
図5は、図3のステートマシン回路213が行う制御動作の一例を示すフローチャートである。この制御動作では、データ転送制御回路214内のメモリ転送制御回路221およびI/Oデバイス転送制御回路223が逐次起動される。
ステートマシン回路213は、待機状態(ステップ501)からCPUにより起動されると、まず、ディスクリプタバッファ212からディスクリプタを読み出し(ステップ502)、それを解析して、コマンドがリード転送とライト転送のいずれを示しているか、ライト転送の場合はフラグのライト・イミディエート・ビットが‘0’か‘1’かをチェックする(ステップ503)。
コマンドがリード転送を示していれば、ステートマシン回路213は、I/Oデバイス転送制御回路223を起動してI/Oデータ・リード転送を指示する(ステップ504)。これを受けて、I/Oデバイス転送制御回路223は、ディスクリプタ内に指定されたI/Oアドレスから、指定された転送バイト長のデータを読み出し、データバッファ222に格納する。
次に、ステートマシン回路213は、メモリ転送制御回路221を起動してメモリデータ・ライト転送を指示する(ステップ505)。これを受けて、メモリ転送制御回路221は、データバッファ222からデータを読み出し、ディスクリプタ内に指定されたメモリアドレスに転送する。
その後、ステートマシン回路213は、CPUに対して割り込み信号によりデータ転送終了を通知し(ステップ506)、待機状態に戻る。
一方、コマンドがライト転送を示しており、かつ、ライト・イミディエート・ビットが‘0’であれば、ステートマシン回路213は、メモリ転送制御回路221を起動してメモリデータ・リード転送を指示する(ステップ507)。これを受けて、メモリ転送制御回路221は、ディスクリプタ内に指定されたメモリアドレスから、指定された転送バイト長のデータを読み出し、データバッファ222に格納する。
次に、ステートマシン回路213は、I/Oデバイス転送制御回路223を起動してI/Oデータ・ライト転送を指示する(ステップ508)。これを受けて、I/Oデバイス転送制御回路223は、データバッファ222に格納されたデータを読み出し、ディスクリプタ内に指定されたI/Oアドレスに転送する。その後、ステートマシン回路213は、ステップ506の動作を行う。
また、コマンドがライト転送を示しており、かつ、ライト・イミディエート・ビットが‘1’であれば、ステートマシン回路213は、ステップ508以降の動作を行う。このとき、I/Oデバイス転送制御回路223に対して、ディスクリプタバッファ212からデータを読み出すように指示する(ステップ508)。これを受けて、I/Oデバイス転送制御回路223は、データバッファ222からではなく、ディスクリプタバッファ212に格納されたディスクリプタ内のイミディエート・ライトデータフィールドからデータを読み出し、指定されたI/Oアドレスに転送する。
図6は、ステートマシン回路213が行う別の制御動作を示すフローチャートである。この制御動作では、データ転送制御回路214内のメモリ転送制御回路221およびI/Oデバイス転送制御回路223は同時に起動される。
メモリ転送制御回路221およびI/Oデバイス転送制御回路223は、互いのポインタ情報を受け渡ししながら並列に動作することで、データバッファ222をFIFO(First-In First-Out)回路として利用しながらデータ転送を進める。ポインタ情報としては、データバッファ222の書き込み位置を指すライトポインタと、読み出し位置を指すリードポインタの情報が用いられる。
このような制御は、特に、転送バイト長がデータバッファ222のサイズよりも長い場合、または転送バイト長がメモリインタフェース202およびI/Oデバイスインタフェース203における典型的なバースト転送長に比べてずっと長い場合に効果的である。
図6のステップ601、602、603、および607の動作は、図5の501、502、503、および506の動作と同様である。
ステップ603において、コマンドがリード転送を示していれば、ステートマシン回路213は、I/Oデバイス転送制御回路223を起動してI/Oデータ・リード転送を指示する(ステップ604)とともに、メモリ転送制御回路221を起動してメモリデータ・ライト転送を指示する(ステップ605)。そして、メモリ転送制御回路221からのメモリデータ転送終了通知およびI/Oデバイス転送制御回路223からのI/Oデータ転送終了通知を待つ(ステップ606)。
I/Oデバイス転送制御回路223は、ディスクリプタ内に指定されたI/Oアドレスから、指定された転送バイト長のデータを順次読み出し、データバッファ222に書き込んでいく。メモリ転送制御回路221は、I/Oデバイス転送制御回路223の書き込み動作と並列に、データバッファ222から書き込まれたデータを順次読み出していき、ディスクリプタ内に指定されたメモリアドレスに転送する。これにより、データバッファ222に書き込まれた順にデータが読み出されてメモリに転送され、読み出されたデータの後に次のデータが順次書き込まれていく。
こうして、指定された転送バイト長のデータがすべてメモリに転送されると、メモリ転送制御回路221およびI/Oデバイス転送制御回路223は、それぞれメモリデータ転送終了およびI/Oデータ転送終了をステートマシン回路213に通知する。これを受けて、ステートマシン回路213は、CPUに対して割り込み信号によりデータ転送終了を通知する(ステップ607)。
一方、コマンドがライト転送を示しており、かつ、ライト・イミディエート・ビットが‘0’であれば、ステートマシン回路213は、メモリ転送制御回路221を起動してメモリデータ・リード転送を指示する(ステップ608)とともに、I/Oデバイス転送制御回路223を起動してI/Oデータ・ライト転送を指示する(ステップ609)。そして、ステップ606以降の動作を行う。
メモリ転送制御回路221は、ディスクリプタ内に指定されたメモリアドレスから、指定された転送バイト長のデータを順次読み出し、データバッファ222に書き込んでいく。I/Oデバイス転送制御回路223は、メモリ転送制御回路221の書き込み動作と並列に、データバッファ222から書き込まれたデータを順次読み出していき、ディスクリプタ内に指定されたI/Oアドレスに転送する。これにより、データバッファ222に書き込まれた順にデータが読み出されてI/Oデバイスに転送され、読み出されたデータの後に次のデータが順次書き込まれていく。
こうして、指定された転送バイト長のデータがすべてI/Oデバイスに転送されると、メモリ転送制御回路221およびI/Oデバイス転送制御回路223は、それぞれメモリデータ転送終了およびI/Oデータ転送終了をステートマシン回路213に通知し、ステートマシン回路213は、ステップ607の動作を行う。
また、コマンドがライト転送を示しており、かつ、ライト・イミディエート・ビットが‘1’であれば、ステートマシン回路213は、ステップ609以降の動作を行う。このとき、I/Oデバイス転送制御回路223に対して、ディスクリプタバッファ212からデータを読み出すように指示する(ステップ609)。これを受けて、I/Oデバイス転送制御回路223は、データバッファ222からではなく、ディスクリプタバッファ212に格納されたディスクリプタ内のイミディエート・ライトデータフィールドからデータを読み出し、指定されたI/Oアドレスに転送する。
この場合、指定された転送バイト長のデータ転送が終了すると、I/Oデバイス転送制御回路223はI/Oデータ転送終了をステートマシン回路213に通知し、ステートマシン回路213は、ステップ607の動作を行う。
ところで、データ処理装置のメモリには、転送データおよびディスクリプタ以外に、CPUにより実行されるプログラムも格納される。CPUは、メモリを利用してプログラムを実行することによりデータ処理を行う。
図7は、データ転送が発生したときにCPUが行う処理のフローチャートである。CPUは、まず、発生したデータ転送がリード転送かライト転送かをチェックする(ステップ701)。
発生したデータ転送がリード転送であれば、メモリ上に転送データのための領域を確保し(ステップ702)、メモリ上の予め決められたアドレスのディスクリプタ領域のコマンドを‘0’に設定する(ステップ703)。そして、ディスクリプタ領域のフラグを設定し(ステップ704)、転送バイト長に転送データのバイト数を設定し(ステップ705)、メモリアドレスに確保した領域のアドレスを設定し(ステップ706)、I/Oアドレスに転送元のI/Oデバイスの番号とデバイス内の転送元アドレスを設定する(ステップ707)。
一方、発生したデータ転送がライト転送であれば、転送データのデータ長が8バイトより長いか否かをチェックする(ステップ708)。
データ長が8バイトより長ければ、メモリ上に転送データを格納し(ステップ709)、メモリ上のディスクリプタ領域のコマンドを‘1’に設定する(ステップ710)。そして、ディスクリプタ領域のフラグのライト・イミディエート・ビットを‘0’に設定し(ステップ711)、転送バイト長に転送データのバイト数を設定し(ステップ712)、メモリアドレスに転送データのアドレスを設定し(ステップ713)、I/Oアドレスに転送先のI/Oデバイスの番号とデバイス内の転送先アドレスを設定する(ステップ714)。
また、ライトデータが8バイト以下であれば、メモリ上のディスクリプタ領域のイミディエート・ライトデータフィールドに転送データを格納し(ステップ715)、ディスクリプタ領域のコマンドを‘1’に設定する(ステップ716)。そして、ディスクリプタ領域のフラグのライト・イミディエート・ビットを‘1’に設定し(ステップ717)、転送バイト長に転送データのバイト数を設定し(ステップ718)、I/Oアドレスに転送先のI/Oデバイスの番号とデバイス内の転送先アドレスを設定する(ステップ719)。
ディスクリプタの設定が終わると、CPUは、DMA制御回路201を起動し(ステップ720)、DMA制御回路201から割り込み信号を受信するまで別の処理を行う(ステップ721)。
図8は、CPUが処理に用いるプログラムの提供方法を示している。情報処理装置(コンピュータ)等の外部装置802や可搬記録媒体803に格納されたプログラムは、データ処理装置801のメモリにロードされる。外部装置802は、そのプログラムを搬送する搬送信号を生成し、通信ネットワーク上の任意の伝送媒体を介してデータ処理装置801に送信する。可搬記録媒体803は、メモリカード、フレキシブルディスク、光ディスク、光磁気ディスク等の任意のコンピュータ読み取り可能な記録媒体である。データ処理装置801のCPUは、そのプログラムを実行してデータ処理を行う。
データ処理装置内のデータ転送制御装置には、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等の記憶装置およびインタフェース装置の他に、別のデータ制御装置もI/Oデバイスとして接続することができる。
また、データ処理装置の一例としては、ストレージ装置が挙げられる。ストレージ装置は、ホストコンピュータのような複数のアクセス装置により共用される記憶装置と、アクセス装置と記憶装置の間のデータ転送を制御するストレージ制御装置からなる。この場合、記憶装置がI/Oデバイスに対応し、ストレージ制御装置がデータ転送制御装置に対応する。本発明をストレージ装置に適用することで、ストレージ制御装置から記憶装置へのデータ転送が効率化される。
(付記1) 処理装置から与えられた命令に従ってメモリから転送先装置へのデータ転送を制御するダイレクトメモリアクセス制御装置であって、
前記処理装置から与えられたデータ転送命令を格納する命令格納手段と、
前記命令格納手段に格納されたデータ転送命令が前記転送先装置へ転送される転送データを含んでいるか否かをチェックし、該データ転送命令が該転送データを含んでいないとき、前記メモリから該転送データを読み出して該転送先装置へ転送し、該データ転送命令が該転送データを含んでいるとき、該命令格納手段から該転送データを読み出して該転送先装置へ転送する転送制御手段と
を備えることを特徴とするダイレクトメモリアクセス制御装置。
(付記2) 前記命令格納手段は、前記転送データのデータ長が所定値以下の場合、該転送データを含むデータ転送命令を格納し、該データ長が該所定値より長い場合、該転送データを含まないデータ転送命令を格納することを特徴とする付記1記載のダイレクトメモリアクセス制御装置。
(付記3) 前記命令格納手段は、前記転送データを含んでいるか否かを示すフラグ情報を有するデータ転送命令を格納し、前記転送制御手段は、該フラグ情報を解析して該データ転送命令が該転送データを含んでいるか否かをチェックすることを特徴とする付記1または2記載のダイレクトメモリアクセス制御装置。
(付記4) 処理装置から与えられた命令に従ってメモリから転送先装置へのデータ転送を制御するダイレクトメモリアクセス制御装置であって、
前記処理装置から与えられたデータ転送命令を格納する命令格納手段と、
前記命令格納手段に格納されたデータ転送命令が前記転送先装置へ転送される転送データを含んでいるとき、該命令格納手段から該転送データを読み出して該転送先装置へ転送する転送制御手段と
を備えることを特徴とするダイレクトメモリアクセス制御装置。
(付記5) 転送先装置へのデータ転送を制御するデータ転送制御装置であって、
メモリと、
前記転送先装置へのデータ転送を指示するデータ転送命令を発行する処理装置と、
前記データ転送命令を格納する命令格納手段と、
前記命令格納手段に格納されたデータ転送命令が前記転送先装置へ転送される転送データを含んでいるか否かをチェックし、該データ転送命令が該転送データを含んでいないとき、前記メモリから該転送データを読み出して該転送先装置へ転送し、該データ転送命令が該転送データを含んでいるとき、該命令格納手段から該転送データを読み出して該転送先装置へ転送する転送制御手段と
を備えることを特徴とするデータ転送制御装置。
(付記6) メモリと、
転送先装置と、
前記転送先装置へのデータ転送を指示するデータ転送命令を発行する処理装置と、
前記データ転送命令を格納する命令格納手段と、
前記命令格納手段に格納されたデータ転送命令が前記転送先装置へ転送される転送データを含んでいるか否かをチェックし、該データ転送命令が該転送データを含んでいないとき、前記メモリから該転送データを読み出して該転送先装置へ転送し、該データ転送命令が該転送データを含んでいるとき、該命令格納手段から該転送データを読み出して該転送先装置へ転送する転送制御手段と
を備えることを特徴とするデータ処理装置。
(付記7) メモリから転送先装置へのデータ転送が発生したとき、該データ転送を制御するダイレクトメモリアクセス制御装置に対して命令を与える処理装置のためのプログラムであって、
前記転送先装置へ転送される転送データのデータ長が所定値より長いか否かをチェックし、
前記データ長が前記所定値より長ければ、前記メモリ上に前記転送データを格納し、データ転送命令が該転送データを含んでいないことを示すフラグ情報と、該転送データのメモリアドレスとを該データ転送命令に設定し、該データ長が該所定値以下であれば、該転送データと、データ転送命令が該転送データを含んでいることを示すフラグ情報とを該データ転送命令に設定し、
前記ダイレクトメモリアクセス制御装置を起動して、前記データ転送命令により指定されたデータ転送を行わせる
処理を前記処理装置に実行させることを特徴とするプログラム。
(付記8) メモリから転送先装置へのデータ転送が発生したとき、該データ転送を制御するダイレクトメモリアクセス制御装置に対して命令を与える処理装置のためのプログラムを記録した記録媒体であって、
前記プログラムは、
前記転送先装置へ転送される転送データのデータ長が所定値より長いか否かをチェックし、
前記データ長が前記所定値より長ければ、前記メモリ上に前記転送データを格納し、データ転送命令が該転送データを含んでいないことを示すフラグ情報と、該転送データのメモリアドレスとを該データ転送命令に設定し、該データ長が該所定値以下であれば、該転送データと、データ転送命令が該転送データを含んでいることを示すフラグ情報とを該データ転送命令に設定し、
前記ダイレクトメモリアクセス制御装置を起動して、前記データ転送命令により指定されたデータ転送を行わせる
処理を前記処理装置に実行させることを特徴とするコンピュータ読み取り可能な記録媒体。
(付記9) メモリから転送先装置へのデータ転送が発生したとき、該データ転送を制御するダイレクトメモリアクセス制御装置に対して命令を与える処理装置のためのプログラムを搬送する搬送信号であって、
前記プログラムは、
前記転送先装置へ転送される転送データのデータ長が所定値より長いか否かをチェックし、
前記データ長が前記所定値より長ければ、前記メモリ上に前記転送データを格納し、データ転送命令が該転送データを含んでいないことを示すフラグ情報と、該転送データのメモリアドレスとを該データ転送命令に設定し、該データ長が該所定値以下であれば、該転送データと、データ転送命令が該転送データを含んでいることを示すフラグ情報とを該データ転送命令に設定し、
前記ダイレクトメモリアクセス制御装置を起動して、前記データ転送命令により指定されたデータ転送を行わせる
処理を前記処理装置に実行させることを特徴とする搬送信号。
(付記10) 処理装置から与えられた命令に従ってメモリから転送先装置へのデータ転送を制御するダイレクトメモリアクセス制御方法であって、
前記処理装置から与えられたデータ転送命令を命令格納手段に格納し、
前記命令格納手段に格納されたデータ転送命令が前記転送先装置へ転送される転送データを含んでいるか否かをチェックし、
前記データ転送命令が前記転送データを含んでいないとき、前記メモリから該転送データを読み出して前記転送先装置へ転送し、該データ転送命令が該転送データを含んでいるとき、前記命令格納手段から該転送データを読み出して該転送先装置へ転送する
ことを特徴とするダイレクトメモリアクセス制御方法。
本発明のDMA制御装置の原理図である。 本発明のI/Oコントローラの構成図である。 本発明のディスクリプタを示す図である。 本発明の動作シーケンスを示す図である。 ステートマシン回路の第1の動作フローチャートである。 ステートマシン回路の第2の動作フローチャートである。 CPUの処理のフローチャートである。 プログラムの提供方法を示す図である。 従来のデータ処理装置の構成図である。 従来のI/Oコントローラの構成図である。 従来のディスクリプタを示す図である。 従来の動作シーケンスを示す図である。
符号の説明
101 データ転送制御装置
102a、102b I/Oデバイス
111、151 CPU
112、152 メモリ
113 メモリコントローラ
114 I/Oコントローラ
121、201 DMA制御回路
122、202 メモリインタフェース
123、203 I/Oデバイスインタフェース
131、211 ディスクリプタフェッチ回路
132、212 ディスクリプタバッファ
133、213 ステートマシン回路
134、214 データ転送制御回路
135、215 レジスタ
153 DMA制御装置
154 転送先装置
161 命令格納手段
162 転送制御手段
221 メモリ転送制御回路
222 データバッファ
223 I/Oデバイス転送制御回路
801 データ処理装置
802 外部装置
803 可搬記録媒体

Claims (5)

  1. 処理装置から与えられた命令に従ってメモリから転送先装置へのデータ転送を制御するダイレクトメモリアクセス制御装置であって、
    前記処理装置から与えられたデータ転送命令と転送データの格納先を示すフラグとを記憶するディスクリプタを格納する命令格納手段と、
    前記命令格納手段に格納された前記ディスクリプタの前記フラグに基づいて前記転送先装置へ転送される転送データが前記ディスクリプタに含まれているか否かをチェックし、該ディスクリプタが該転送データを含んでいないとき、前記メモリから該転送データを読み出して該転送先装置へ転送し、該ディスクリプタが該転送データを含んでいるとき、該命令格納手段に格納された前記ディスクリプタから該転送データを読み出して該転送先装置へ転送する転送制御手段と
    を備えることを特徴とするダイレクトメモリアクセス制御装置。
  2. 処理装置から与えられた命令に従ってメモリから転送先装置へのデータ転送を制御するダイレクトメモリアクセス制御装置であって、
    前記処理装置から与えられたデータ転送命令と転送データの格納先を示すフラグとを記憶するディスクリプタを格納する命令格納手段と、
    前記命令格納手段に格納された前記ディスクリプタの前記フラグが、前記転送先装置へ転送される転送データが前記ディスクリプタに含まれていることを示すとき、該命令格納手段に格納された前記ディスクリプタから該転送データを読み出して該転送先装置へ転送する転送制御手段と
    を備えることを特徴とするダイレクトメモリアクセス制御装置。
  3. 転送先装置へのデータ転送を制御するデータ転送制御装置であって、
    メモリと、
    前記転送先装置へのデータ転送を指示するデータ転送命令と転送データの格納先を示すフラグとを記憶するディスクリプタを発行する処理装置と、
    前記データ転送命令を格納する命令格納手段と、
    前記命令格納手段に格納された前記ディスクリプタの前記フラグに基づいて前記転送先装置へ転送される転送データが前記ディスクリプタに含まれているか否かをチェックし、該ディスクリプタが該転送データを含んでいないとき、前記メモリから該転送データを読み出して該転送先装置へ転送し、該ディスクリプタが該転送データを含んでいるとき、該命令格納手段に格納された前記ディスクリプタから該転送データを読み出して該転送先装置へ転送する転送制御手段と
    を備えることを特徴とするデータ転送制御装置。
  4. メモリから転送先装置へのデータ転送が発生したとき、該データ転送を制御するダイレクトメモリアクセス制御装置に対して命令を与える処理装置のためのプログラムであって、
    前記転送先装置へ転送される転送データのデータ長が所定値より長いか否かをチェックし、
    前記データ長が前記所定値より長ければ、前記メモリ上に前記転送データを格納し、データ転送命令と、ディスクリプタが該転送データを含んでいないことを示すフラグ情報と、該転送データのメモリアドレスとを該ディスクリプタに設定し、該データ長が該所定値以下であれば、該データ転送命令と、該転送データと、ディスクリプタが該転送データを含んでいることを示すフラグ情報とを該ディスクリプタに設定し、
    前記ダイレクトメモリアクセス制御装置を起動して、前記ディスクリプタにより指定されたデータ転送を行わせる
    処理を前記処理装置に実行させることを特徴とするプログラム。
  5. 処理装置から与えられた命令に従ってメモリから転送先装置へのデータ転送を制御するダイレクトメモリアクセス制御方法であって、
    前記処理装置から与えられたデータ転送命令と転送データの格納先を示すフラグとを記憶するディスクリプタを命令格納手段に格納し、
    前記命令格納手段に格納された前記ディスクリプタの前記フラグに基づいて前記転送先装置へ転送される転送データが前記ディスクリプタに含まれているか否かをチェックし、
    前記ディスクリプタが前記転送データを含んでいないとき、前記メモリから該転送データを読み出して前記転送先装置へ転送し、該ディスクリプタが該転送データを含んでいるとき、前記命令格納手段に格納された前記ディスクリプタから該転送データを読み出して該転送先装置へ転送する
    ことを特徴とするダイレクトメモリアクセス制御方法。
JP2004084424A 2004-03-23 2004-03-23 ダイレクトメモリアクセス制御装置および方法 Expired - Fee Related JP4373255B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004084424A JP4373255B2 (ja) 2004-03-23 2004-03-23 ダイレクトメモリアクセス制御装置および方法
US10/953,335 US7299302B2 (en) 2004-03-23 2004-09-30 Direct memory access control apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004084424A JP4373255B2 (ja) 2004-03-23 2004-03-23 ダイレクトメモリアクセス制御装置および方法

Publications (2)

Publication Number Publication Date
JP2005275538A JP2005275538A (ja) 2005-10-06
JP4373255B2 true JP4373255B2 (ja) 2009-11-25

Family

ID=34991468

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004084424A Expired - Fee Related JP4373255B2 (ja) 2004-03-23 2004-03-23 ダイレクトメモリアクセス制御装置および方法

Country Status (2)

Country Link
US (1) US7299302B2 (ja)
JP (1) JP4373255B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1955174A1 (en) * 2005-11-09 2008-08-13 Nokia Corporation Apparatus, method and computer program product providing data serializing by direct memory access controller
JP4972932B2 (ja) 2005-12-26 2012-07-11 富士通株式会社 メモリアクセス装置
JPWO2007099659A1 (ja) * 2006-03-01 2009-07-16 パナソニック株式会社 データ転送装置及びデータ転送方法
US7934025B2 (en) * 2007-01-24 2011-04-26 Qualcomm Incorporated Content terminated DMA
JP5196560B2 (ja) * 2008-10-30 2013-05-15 岩崎通信機株式会社 パケット中継装置及びパケット中継制御方法
JP5287301B2 (ja) * 2009-01-30 2013-09-11 富士通株式会社 ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法
WO2011161722A1 (en) * 2010-06-24 2011-12-29 Hitachi, Ltd. Data transfer system and data transfer method
US8775694B2 (en) * 2012-09-21 2014-07-08 Atmel Corporation ADC sequencing
DE112013006940B4 (de) * 2013-04-10 2022-11-17 Mitsubishi Electric Corporation Datenübertragungsgerät und Datenübertragungsverfahren
KR20150122825A (ko) * 2014-04-23 2015-11-03 에스케이하이닉스 주식회사 메모리 컨트롤 유닛 및 그것을 포함하는 데이터 저장 장치
KR102180972B1 (ko) * 2014-04-23 2020-11-20 에스케이하이닉스 주식회사 메모리 컨트롤 유닛 및 그것을 포함하는 데이터 저장 장치
KR102330389B1 (ko) 2014-07-24 2021-11-24 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 처리 방법
JP6426838B2 (ja) * 2015-05-11 2018-11-21 株式会社日立製作所 ストレージシステム、及び、記憶制御方法
US10740267B1 (en) * 2019-07-03 2020-08-11 Stmicroelectronics International N.V. Digital interface circuit for analog-to-digital converter

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05216808A (ja) 1992-01-31 1993-08-27 Mitsubishi Electric Corp データ処理装置
US6542941B1 (en) * 1999-09-30 2003-04-01 Intel Corporation Efficient command delivery and data transfer

Also Published As

Publication number Publication date
US20050216605A1 (en) 2005-09-29
JP2005275538A (ja) 2005-10-06
US7299302B2 (en) 2007-11-20

Similar Documents

Publication Publication Date Title
USRE49875E1 (en) Memory system having high data transfer efficiency and host controller
JP4563829B2 (ja) ダイレクトメモリアクセス制御方法、ダイレクトメモリアクセス制御装置、情報処理システム、プログラム
JP4373255B2 (ja) ダイレクトメモリアクセス制御装置および方法
KR101105489B1 (ko) Nand 플래시 메모리의 커맨드 기반 제어
KR101366960B1 (ko) 입출력 핀을 이용한 다중 웨이 낸드 플래시 제어 장치 및 방법
JP2007087388A (ja) メモリコントローラ及びそれを含んだデータ処理システム
JP2006338538A (ja) ストリームプロセッサ
KR20100088523A (ko) 디스크립터 전송 장치, i/o 컨트롤러, 및 디스크립터 전송 방법
CN116486868A (zh) 计算高速链路(CXL)上的高速非易失性存储器(NVMe)
US20020073269A1 (en) Data-recording-medium controller, data-recording-medium control method, data-recording apparatus and data-recording-apparatus control unit
JP2004288147A (ja) シリアルメモリに対するxipシステム及びその方法
JP2009187337A (ja) デバイス制御方法、プログラム、制御回路及び電子機器
KR100817203B1 (ko) 비휘발성 저장장치의 데이터 판독 방법
JP2003330871A (ja) データ転送装置
JPH05242009A (ja) 直接メモリアクセス装置
JP2005258783A (ja) データ転送装置、データ転送方法、画像形成装置及びオプションボード
JP2006139416A (ja) データ転送装置およびデータ転送方法
JP2003187583A (ja) 半導体記憶装置及び制御装置
JP2008198119A (ja) データ転送装置、データ転送システムおよびデータ転送方法
JP2008276441A (ja) ホストコントローラ、半導体集積回路、及び、ホスト制御方法
JPH1185660A (ja) データ転送システム
KR20020058419A (ko) 스트림 데이터 기록에 최적화된 스마트 미디어 컨트롤러
JP2005316700A (ja) データ転送方法および装置
JPH03211651A (ja) データ処理装置
JP2005250988A (ja) 擬似i/o装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060302

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090324

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090519

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: 20090901

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: 20090903

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

Free format text: PAYMENT UNTIL: 20120911

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4373255

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: 20120911

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130911

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees