JP6940283B2 - Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム - Google Patents

Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム Download PDF

Info

Publication number
JP6940283B2
JP6940283B2 JP2017012453A JP2017012453A JP6940283B2 JP 6940283 B2 JP6940283 B2 JP 6940283B2 JP 2017012453 A JP2017012453 A JP 2017012453A JP 2017012453 A JP2017012453 A JP 2017012453A JP 6940283 B2 JP6940283 B2 JP 6940283B2
Authority
JP
Japan
Prior art keywords
dma transfer
dma
execution
instruction
instructions
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
JP2017012453A
Other languages
English (en)
Other versions
JP2018120484A (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.)
NEC Platforms Ltd
Original Assignee
NEC Platforms 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 NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2017012453A priority Critical patent/JP6940283B2/ja
Publication of JP2018120484A publication Critical patent/JP2018120484A/ja
Application granted granted Critical
Publication of JP6940283B2 publication Critical patent/JP6940283B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本願発明は、複数のDMA(Direct Memory Access)転送の並列実行を制御する技術に関する。
近年、情報処理の性能を向上させるために、DMA転送機能を実装するコンピュータシステムが増加している。このDMA転送は、CPU(Central Processing Unit)を介することなく、例えば、主記憶装置と拡張記憶装置などの周辺装置との間でデータを直接転送する技術である。CPUは、DMA転送によって、主記憶装置と周辺装置との間におけるデータ転送を制御する処理から解放されるので、コンピュータシステムの性能が大きく向上する。したがって、DMA転送を、より効率的かつ高性能に実現する技術に対する期待が高まってきている。
このような技術に関連する技術として、特許文献1には、メモリを有し、DMA転送を行うコンピュータシステムにおいて、I/O(Input/Output)チャネルとプロセッサとの間のデータ整合性を保証する方法が開示されている。この方法では、DMA転送完了の通知を受け取ったとき、コンピュータシステム内の全てのI/Oチャネルに対し、DMA_SYNCトランザクションをブロードキャストする。この方法は、DMA_SYNCトランザクションが完了したことを示す報告手段を提供する。当該DMA_SYNCトランザクションは、当該I/Oチャネルに一貫性を守るように命令し、一貫性が保証された後でのみ応答を返すようにする。
特開2000-082012号公報
近年のコンピュータシステムは、DMAコントローラ(DMAエンジン)を複数備えることによって、複数のDMA転送を並列(以降本願では、「略並列」を含むこととする)に行なうことが可能である。図9は、複数のDMAコントローラを備えた一般的なDMA転送制御装置30の構成を概念的に示すブロック図である。DMA転送制御装置30は、CPU100から発行された、主記憶装置101と入出力制御装置102との間でデータ転送を行なうDMA転送命令を制御する装置である。
DMA転送制御装置30は、DMAコントローラ制御部31と、複数のDMAコントローラ34−1乃至34−n(nは2以上の任意の整数)と、記憶部33とを備える。記憶部33には、ディスクリプタ330−1乃至330−m(mは2以上の任意の整数)が格納されている。ディスクリプタ330−1乃至330−mは、個々のDMA転送命令による処理内容を示す情報である。DMAコントローラ制御部31は、記憶部33から読み出したディスクリプタ330−1乃至330−mが示す処理内容を、DMAコントローラ34−1乃至34−nが実行するように制御する。
複数のDMA転送を並列に行なうコンピュータシステムでは、特定のDMA転送命令を含む実行中の全てのDMA転送命令が完了したことを保証した後に、その特定のDMA転送命令に後続するDMA転送を行なう必要がある場合がある。この場合、その特定のDMA転送命令に完了保証指示情報(SYNCフラグ)が付与されたDMA転送(以降、「SYNCフラグ付きDMA転送」と称する)が行なわれる。
図10は、このようなSYNCフラグ付きDMA転送を行なわない場合における、DMA転送制御装置30の動作例を示すシーケンス図である。図10に示す例では、DMA転送制御装置30は、ディスクリプタ330−1及び330−2が処理内容を示す2つのDMA転送命令を、並列に実行する。すなわち、DMA転送制御装置30は、図10に示すステップS201乃至S207を、2つのDMA転送命令に関して並列に実行することが可能である。尚、各ステップの詳細については周知であるので、これらのステップに関する詳細な説明は省略する。
図11A及び11Bは、上述したSYNCフラグ付きDMA転送を行なう場合における、DMA転送制御装置30の動作例を示すシーケンス図である。図11A及び11Bに示す例では、ディスクリプタ330−2が示すDMA転送命令にSYNCフラグが付与されていることとする。この場合、DMA転送制御装置30は、ディスクリプタ330−1が示すDMA転送命令に関する処理(即ち、ステップS301乃至S307)を完了した後、ディスクリプタ330−2が示すSYNCフラグ付きDMA転送命令に関する処理(即ち、ステップS308乃至S315)を行なう。これにより、DMA転送制御装置30は、後続するDMA転送命令を開始する(ステップS316)前に、SYNCフラグ付きDMA転送命令を含む実行中の全てのDMA転送命令が完了したことを保証する。尚、各ステップの詳細については周知であるので、これらのステップに関する詳細な説明は省略する。
このように、複数のDMAコントローラを備える一般的なDMA転送制御装置は、SYNCフラグ付きDMA転送命令を、先行して実行中であるDMA転送命令が全て完了した後に実行する。すなわち、一般的なDMA転送制御装置は、複数のDMA転送を並列に実行可能なハードウェア構成を備えているにもかかわらず、SYNCフラグ付きDMA転送に関しては、単独で実行する必要があるので、効率的であるとは言えない。したがって、例えば、SYNCフラグ付きDMA転送命令が処理対象とするデータの長さが極めて長い場合などでは、コンピュータシステムの性能が大きく低下する要因になる。特許文献1は、このような問題について言及していない。本願発明の主たる目的は、このような問題を解決するDMA転送制御装置等を提供することである。
本願発明の一態様に係るDMA転送制御装置は、複数のDMAコントローラによって個々に実行される複数のDMA転送命令のいずれかが、自DMA転送命令と未だ実行状態にある先行する他のDMA転送命令との実行が完了するまで、後続する他のDMA転送命令の実行を保留することを指示する完了保証指示情報が付与された第一のDMA転送命令である場合、前記複数のDMA転送命令のうち未だ実行状態にある第二のDMA転送命令の実行が完了する前に、前記第一のDMA転送命令の実行を開始するように、前記複数のDMAコントローラのいずれかを制御する第一制御手段と、前記第一及び第二のDMA転送命令の実行が完了したことを検知したのち、前記複数のDMA転送命令のうち、前記第一のDMA転送命令に後続する第三のDMA転送命令の実行を開始するように、前記複数のDMAコントローラの少なくともいずれかを制御する第二制御手段と、を備える。
上記目的を達成する他の見地において、本願発明の一態様に係るDMA転送制御方法は、情報処理装置によって、複数のDMAコントローラによって個々に実行される複数のDMA転送命令のいずれかが、自DMA転送命令と未だ実行状態にある先行する他のDMA転送命令との実行が完了するまで、後続する他のDMA転送命令の実行を保留することを指示する完了保証指示情報が付与された第一のDMA転送命令である場合、前記複数のDMA転送命令のうち未だ実行状態にある第二のDMA転送命令の実行が完了する前に、前記第一のDMA転送命令の実行を開始するように、前記複数のDMAコントローラのいずれかを制御し、前記第一及び第二のDMA転送命令の実行が完了したことを検知したのち、前記複数のDMA転送命令のうち、前記第一のDMA転送命令に後続する第三のDMA転送命令の実行を開始するように、前記複数のDMAコントローラの少なくともいずれかを制御する。
また、上記目的を達成する更なる見地において、本願発明の一態様に係るDMA転送制御プログラムは、複数のDMAコントローラによって個々に実行される複数のDMA転送命令のいずれかが、自DMA転送命令未だと実行状態にある先行する他のDMA転送命令との実行が完了するまで、後続する他のDMA転送命令の実行を保留することを指示する完了保証指示情報が付与された第一のDMA転送命令である場合、前記複数のDMA転送命令のうち未だ実行状態にある第二のDMA転送命令の実行が完了する前に、前記第一のDMA転送命令の実行を開始するように、前記複数のDMAコントローラのいずれかを制御する第一制御処理と、前記第一及び第二のDMA転送命令の実行が完了したことを検知したのち、前記複数のDMA転送命令のうち、前記第一のDMA転送命令に後続する第三のDMA転送命令の実行を開始するように、前記複数のDMAコントローラの少なくともいずれかを制御する第二制御処理と、をコンピュータに実行させるためのプログラムである。
更に、本願発明は、係るDMA転送制御プログラム(コンピュータプログラム)が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
本願発明は、完了保証指示情報が付与されたDMA転送命令を含む複数のDMA転送命令を、高速に実行することを可能とする。
本願発明の第1の実施形態に係るDMA転送制御システム1の構成を示すブロック図である。 本願発明の第1の実施形態に係るディスクリプタ130の構成を例示する図である。 本願発明の第1の実施形態に係るDMA転送制御装置10が、SYNCフラグ付きDMA転送命令を含む複数のDMA転送命令の実行を順番に開始するときにおける、ディスクリプタ130の更新推移を例示する図である。 本願発明の第1の実施形態に係るDMA転送制御装置10が、SYNCフラグ付きDMA転送命令までの複数のDMA転送命令の実行を完了するときにおける、ディスクリプタ130の更新推移を例示する図である。 本願発明の第1の実施形態に係るDMA転送制御装置10が、SYNCフラグ付きDMA転送命令に伴うSYNC命令を完了し、当該SYNCフラグ付きDMA命令に後続するDMA転送命令の実行を開始するときにおける、ディスクリプタ130の更新推移を例示する図である。 本願発明の第1の実施形態に係るDMA転送制御装置10の動作を示すシーケンス図(1/2)である。 本願発明の第1の実施形態に係るDMA転送制御装置10の動作を示すシーケンス図(2/2)である。 本願発明の第2の実施形態に係るDMA転送制御装置20の構成を示すブロック図である。 本願発明の各実施形態に係るDMA転送制御装置を実行可能な情報処理装置900の構成を示すブロック図である。 一般的なDMA転送制御装置30の構成を示すブロック図である。 一般的なDMA転送制御装置30の動作(SYNCフラグ付きDMA転送を行なわない場合)を示すシーケンス図である。 一般的なDMA転送制御装置30の動作(SYNCフラグ付きDMA転送を行なう場合)を示すシーケンス図(1/2)である。 一般的なDMA転送制御装置30の動作(SYNCフラグ付きDMA転送を行なう場合)を示すシーケンス図(2/2)である。
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
<第1の実施形態>
図1は、本願発明の第1の実施の形態に係るDMA転送制御システム1の構成を概念的に示すブロック図である。DMA転送制御システム1は、複数のDMA転送を並列に行なうことが可能であり、必要に応じて、SYNCフラグ付きDMA転送命令を実行する。DMA転送制御システム1は、大別して、DMA転送制御装置10、CPU(中央処理装置)100、主記憶装置101、及び、入出力制御装置102を有する。DMA転送制御システム1は、例えば、1つの情報処理装置(サーバ装置等)として構成されてもよい。
CPU100は、例えば主記憶装置101と入出力制御装置102との間でデータ転送を行なうDMA転送命令を発行する。主記憶装置101は、DMA転送命令により転送されるデータを記憶する。入出力制御装置102は、DMA転送命令により転送されるデータに関して、例えば拡張記憶装置などの外部装置(図示せず)との入出力を制御する。
DMA転送制御装置10は、CPU100から発行されたDMA転送命令の実行を制御する。DMA転送制御装置10は、第1制御部11、第2制御部12、記憶部13、及び、DMAコントローラ14−1乃至14−n(nは2以上の任意の整数)を備えている。
記憶部13は、電子メモリ等の記憶デバイスであり、ディスクリプタ130−1乃至130−m(mは2以上の任意の整数)を記憶している。ディスクリプタ130−1乃至130−m(本願では以降、m個のディスクリプタを代表して、ディスクリプタ130と称する場合がある)は、各々、1つのDMA転送命令による処理内容を示す情報(DMA転送情報)である。ディスクリプタ130は、例えばCPU100によって、記憶部13に格納される。
図2は、本実施形態に係るディスクリプタ130の構成を概念的に例示する図である。ディスクリプタ130は、図2に示す通り、下記の情報を含んでいる。
・実行バリッド131、
・転送元開始アドレス132、
・転送先開始アドレス133、
・データサイズ134、
・SYNCフラグ135、
・DMA転送実行フラグ136、
・DMA転送完了フラグ137、
・SYNC命令完了フラグ138、
・結果情報139。
実行バリッド131は、ディスクリプタ130が処理内容を示すDMA転送命令が有効か否かを示す情報であり、DMA転送命令の実行前及び実行中は「1」を示し、DMA転送命令が完了した後は「0」を示す。転送元開始アドレス132は、DMA転送命令により転送されるデータの転送元の開始アドレスを示す。転送先開始アドレス133は、DMA転送命令により転送されるデータの転送先の開始アドレスを示す。データサイズ134は、DMA転送命令により転送されるデータのデータ長を示す。
SYNCフラグ135は、DMA転送命令がSYNCフラグ付きDMA転送命令であること、即ち、当該DMA転送命令を含む実行中の全てのDMA転送命令が完了したことを保証した後に、当該DMA転送命令に後続するDMA転送を行なう必要があることを示す情報(完了保証指示情報)である。SYNCフラグ135は、DMA転送命令がSYNCフラグ付きDMA転送命令である場合に「1」を示す。
DMA転送実行フラグ136は、DMA転送命令が実行中であることを示す情報(実行状態情報)であり、DMA転送命令が実行中のときに「1」を示す。DMA転送完了フラグ137は、DMA転送命令の実行が完了したことを示す情報(実行状態情報)あり、DMA転送命令の実行が完了した後に「1」を示す。SYNC命令完了フラグ138は、DMA転送命令がSYNCフラグ付きDMA転送命令である場合に、SYNCフラグ付きDMA転送命令に含まれるSYNC命令(詳細は後述する)の実行が完了したことを示す情報(実行状態情報)である。SYNC命令完了フラグ138は、SYNC命令が完了した後に「1」を示す。結果情報139は、DMA転送命令の実行においてエラーや例外等が発生した場合に、そのエラーや例外等の内容を示す情報である。
図1に示すDMAコントローラ14−1乃至14−n(本願では以降、n個のDMAコントローラを代表して、DMAコントローラ14と称する場合がある)は、後述する第1制御部11及び第2制御部12により制御されることにより、記憶部13に記憶されたディスクリプタ130が示すDMA転送命令を実行する。
DMAコントローラ14は、DMAリクエスト制御部140、及び、データバッファ141を有している。DMAリクエスト制御部140は、第1制御部11によって選択されたディスクリプタ130が示すDMA転送命令を実行する。
当該DMA転送命令が、例えば、入出力制御装置102に接続された拡張記憶装置等などの外部装置(不図示)から主記憶装置101に対してデータ転送を行なう命令である場合について説明する。この場合、DMAリクエスト制御部140は、外部装置における、転送元開始アドレス132が示すアドレスから、データ長がデータサイズ134により示される値であるデータを、入出力制御装置102を介して読み出す。DMAリクエスト制御部140は、読み出したデータを、データバッファ141に一時格納する。DMAリクエスト制御部140は、データバッファ141に一時格納したデータを、主記憶装置101における、転送先開始アドレス133が示すアドレスを先頭とする記憶領域に書き込む。
DMAリクエスト制御部140は、SYNCフラグ付きDMA転送命令を実行する場合、第2制御部12による制御を受けて、SYNC命令(完了保証指示命令)を、CPU100、主記憶装置101、及び、入出力制御装置102に対して発行する。SYNC命令は、SYNCフラグ付きDMA転送命令によるデータ転送処理の完了に伴い、CPU100、主記憶装置101、及び、入出力制御装置102において行うべき、完了保証に関する処理(実行中の全てのDMA転送命令が完了したことを確認する処理など)を指示する命令である。DMAリクエスト制御部140は、その後、CPU100、主記憶装置101、及び、入出力制御装置102から、SYNC命令の実行完了を通知され、SYNC命令の実行完了を、第2制御部12に通知する。
第1制御部11は、記憶部13に記憶されたディスクリプタ130が示すDMA転送命令をDMAコントローラ14に割り当てて、割り当てたDMA転送命令を順次実行するように、DMAコントローラ14を制御する。第1制御部11は、ディスクリプタ130を更新することによって、DMAコントローラ14を制御する。
図3は、本実施形態に係るDMA転送制御装置10が、SYNCフラグ付きDMA転送命令を含む複数のDMA転送命令の実行を順番に開始するときにおける、第1制御部11によって更新されるディスクリプタ130の更新推移を例示する図である。第1制御部11は、内包するDMA割付ポインタ110を用いて、ディスクリプタ130が示すDMA転送命令を、DMAコントローラ14に順番に割り当てる。本実施形態では、DMA割付ポインタ110は、初期値として例えば「1」が設定されていることとする。この場合、第1制御部11は、ディスクリプタ130−1から順番に、ディスクリプタ130を参照する。
図3に示す例では、ディスクリプタ130−1における実行バリッド131は「1」を示し、SYNCフラグ135は「0」を示し、DMA転送実行フラグ136は「0」を示している。即ちこの場合、ディスクリプタ130−1が示すDMA転送命令は、SYNCフラグ付きDMA転送命令でない通常のDMA転送命令であり、実行待ちの状態にある。第1制御部11は、ディスクリプタ130−1が示すDMA転送命令を、DMA割付ポインタ110により示されるDMAコントローラ14−1に割り当てたのち、ディスクリプタ130−1が示すDMA転送命令の実行を開始するように、DMAコントローラ14−1を制御する。第1制御部11は、この際、ディスクリプタ130−1におけるDMA転送実行フラグ136を「0」から「1」に更新し、DMA割付ポインタ110を「1」から「2」に更新する。
第1制御部11は、次に、ディスクリプタ130−2及び130−3を順番に参照し、ディスクリプタ130−2及び130−3が示す通常のDMA転送命令を、順に、DMA割付ポインタ110により示されるDMAコントローラ14−2及び14−3に割り当てる。そして、第1制御部11は、ディスクリプタ130−2及び130−3が示すDMA転送命令の実行を開始するように、DMAコントローラ14−2及び14−3を制御する。第1制御部11は、この際、ディスクリプタ130−2及び130−3におけるDMA転送実行フラグ136を「0」から「1」に更新し、DMA割付ポインタ110を「2」から「3」、そして「3」から「4」に更新する。
第1制御部11は、その次に、ディスクリプタ130−4を参照する。図3に示す例では、ディスクリプタ130−4におけるSYNCフラグ135は「1」を示している。即ちこの場合、ディスクリプタ130−4が示すDMA転送命令は、SYNCフラグ付きDMA転送命令である。第1制御部11は、ディスクリプタ130−1及び130−3が示す通常のDMA転送命令に実行を開始したときと同様に、ディスクリプタ130−4が示すSYNCフラグ付きDMA転送命令の実行を開始するように、DMA割付ポインタ110により示されるDMAコントローラ14−4を制御する。この際、第1制御部11は、ディスクリプタ130−1及び130−3が示す通常のDMA転送命令の実行が完了するまで待つことはしない。第1制御部11は、ディスクリプタ130−5以降のディスクリプタ130が示すDMA転送命令に関しては、ディスクリプタ130−1及び130−4が示すDMA転送命令の実行が全て完了するまで、その実行開始を保留する。
図1に示す第2制御部12は、DMAコントローラ14−1乃至14−4が実行していたDMA転送命令を完了したことを検知して、その検知結果に基づいて、ディスクリプタ130を更新する。
図4は、本実施形態に係るDMA転送制御装置10が、図3に実行開始を例示した、SYNCフラグ付きDMA転送命令までの複数のDMA転送命令の実行を完了するときにおける、第2制御部12によって更新されるディスクリプタ130の更新推移を例示する図である。図4に示す例では、図3に例示するDMA転送命令の実行開始順番とは異なり、ディスクリプタ130−1、130−3、130−2、及び、130−4が示すDMA転送命令の順に、その実行が完了している。
第2制御部12は、ディスクリプタ130−1が示すDMA転送命令を実行していたDMAコントローラ14−1から、当該DMA転送命令の実行を完了したことを通知されたときに、ディスクリプタ130−1を以下の通り更新する。即ち、第2制御部12は、実行バリッド131を「1」から「0」に、DMA転送実行フラグ136を「1」から「0」に、DMA転送完了フラグ137を「0」から「1」に更新する。
第2制御部12は、また、内包するSYNC確認ポインタ120を用いて、SYNCフラグ付きDMA転送命令までの複数のDMA転送命令の実行完了を順番に確認する。本実施形態では、SYNC確認ポインタ120は、初期値として例えば「1」が設定されていることとする。第2制御部12は、ディスクリプタ130−1が示すDMA転送命令の実行が完了したことをもって、SYNC確認ポインタ120を「1」から「2」に更新する。
第2制御部12は、次に、ディスクリプタ130−3が示すDMA転送命令を実行していたDMAコントローラ14−3から、当該DMA転送命令の実行を完了したことを通知される。第2制御部12は、このとき、ディスクリプタ130−3における、実行バリッド131、DMA転送実行フラグ136、及び、DMA転送完了フラグ137を、ディスクリプタ130−1と同様に更新する。この時点で、SYNC確認ポインタ120は「2」を示しているが、ディスクリプタ130−2が示すDMA転送命令はまだ完了していない。したがって、第2制御部12は、このときにSYNC確認ポインタ120を更新しない。
第2制御部12は、次に、ディスクリプタ130−2が示すDMA転送命令を実行していたDMAコントローラ14−2から、当該DMA転送命令の実行を完了したことを通知される。第2制御部12は、このとき、ディスクリプタ130−2を、ディスクリプタ130−1及び130−3と同様に更新する。この時点で、SYNC確認ポインタ120は「2」を示しており、ディスクリプタ130−2及び130−3が示すDMA転送命令は既に完了している。したがって、第2制御部12は、このときにSYNC確認ポインタ120を「2」から「3」に更新したのち、さらに「3」から「4」に更新する。
第2制御部12は、その次に、ディスクリプタ130−4が示すSYNCフラグ付きDMA転送命令を実行していたDMAコントローラ14−4から、当該DMA転送命令の実行を完了したことを通知される。第2制御部12は、このとき、ディスクリプタ130−4における、DMA転送実行フラグ136、及び、DMA転送完了フラグ137を、ディスクリプタ130−1乃至130−3と同様に更新するが、この時点で、実行バリッド131は更新しない。第2制御部12は、この時点で、SYNC確認ポインタ120の更新も行わない。
第2制御部12は、この後、SYNC命令を、CPU100、主記憶装置101、及び、入出力制御装置102に対して発行するように、DMAコントローラ14−4を制御する。そして第2制御部12は、発行された当該SYNC命令の実行が、CPU100、主記憶装置101、及び、入出力制御装置102において完了したことを、DMAコントローラ14−4から通知される。
図5は、本実施形態に係るDMA転送制御装置10が、SYNCフラグ付きDMA転送命令に伴うSYNC命令を完了し、当該SYNCフラグ付きDMA命令に後続するDMA転送命令の実行を開始するときにおける、第1制御部11及び第2制御部12によって更新されるディスクリプタ130の更新推移を例示する図である。第2制御部12は、当該SYNC命令が完了した後、ディスクリプタ130−4における実行バリッド131を「1」から「0」に、SYNC命令完了フラグ138を「0」から「1」に更新する。そして、第2制御部12は、SYNC確認ポインタ120を「4」から「5」に更新する。
この時点で、DMA転送制御装置10は、SYNCフラグ付きDMA転送命令に後続するDMA転送命令の実行を開始することが可能となる。このとき第2制御部12は、SYNCフラグ付きDMA転送命令に後続するDMA転送命令の実行を開始できることを第1制御部11に通知することによって、当該後続するDMA転送命令の実行を開始するように、DMAコントローラ14を制御する。このとき、第1制御部11は、図5に例示する通り、ディスクリプタ130−5が示すDMA転送命令を、DMA割付ポインタ110により示されるDMAコントローラ14−5に割り当てたのち、ディスクリプタ130−5が示すDMA転送命令の実行を開始するように、DMAコントローラ14−5を制御する。第1制御部11は、ディスクリプタ130−1乃至130−4のときと同様に、ディスクリプタ130−5におけるDMA転送実行フラグ136を「0」から「1」に更新し、DMA割付ポインタ110を「5」から「6」に更新する。
次に図6A及び6Bのシーケンス図を参照して、本実施形態に係るDMA転送制御装置10の動作(処理)について詳細に説明する。ただし、図6A及び6Bのシーケンス図では、図11A及び11Bに示す一般的なDMA転送制御装置30の動作と比較できるように、実行するDMA転送命令の内容は、図11A及び11Bに示すシーケンス図のときと同様とする。すなわち、図6A及び6Bのシーケンス図において、ディスクリプタ130−1には、通常のDMA転送命令に関するDMA転送情報が記憶され、ディスクリプタ130−2には、SYNCフラグ付きDMA転送命令に関するDMA転送情報が記憶されていることとする。また、図6A及び6Bにおける装置間のデータの入出力に関し、実線は通常のDMA転送命令によるデータの入出力を表し、点線はSYNCフラグ付きDMA転送命令によるデータの入出力を表すこととする。
第1制御部11は、記憶部13に記憶されたディスクリプタ130−1及び130−2を選択する(ステップS101)。第1制御部11は、ディスクリプタ130−1及び130−2に含まれるSYNCフラグ135を参照することによって、ディスクリプタ130−1は通常のDMA転送命令を示し、ディスクリプタ130−2はSYNCフラグ付きDMA転送命令を示すことを確認する(ステップS102)。
第1制御部11は、ディスクリプタ130−1が示す、入出力制御装置102に対するDMA転送(リード)を実行するようにDMAコントローラ14−1を制御するとともに、ディスクリプタ130−2が示す、入出力制御装置102に対するDMA転送(リード)を実行するようにDMAコントローラ14−2を制御する(ステップS103)。
DMAコントローラ14−1及び14−2は、入出力制御装置102から入力されたデータを、自DMAコントローラにおけるデータバッファ141へ格納する(ステップS104)。DMAコントローラ14−1及び14−2は、データバッファ141に格納したデータを、主記憶装置101に対してDMA転送(ライト)する(ステップS105)。
第2制御部12は、DMAコントローラ14−1及び14−2が、DMA転送(ライト)に対するリプライを主記憶装置101から受け取ったのち、DMAコントローラ14−1及び14−2から転送が完了したこと(転送完了報告)を通知される(ステップS106)。第2制御部12は、ディスクリプタ130−1及び130−2におけるDMA転送実行フラグ136及びDMA転送完了フラグ137を更新する(ステップS107)。
第2制御部12は、ディスクリプタ130−1及び130−2の両方が更新されている(即ち、ディスクリプタ130−1及び130−2が示すDMA転送が両方とも完了している)ことを確認する(ステップS108)。第2制御部12は、CPU100(図6Bでは不図示)と主記憶装置101と入出力制御装置102に対して、SYNC命令を発行するように、DMAコントローラ14−2を制御する(ステップS109)。
第2制御部12は、DMAコントローラ14−2を介して、CPU100と主記憶装置101と入出力制御装置102とから、SYNC命令に対する命令完了報告を入手する(ステップS110)。第2制御部12は、ディスクリプタ130−2におけるSYNC命令完了フラグ138を更新する(ステップS111)。DMA転送制御装置10は、ディスクリプタ130−2が示すSYNCフラグ付きDMA転送命令に後続するDMA転送命令の実行を開始する(ステップS112)。
本実施形態に係るDMA転送制御装置10は、完了保証指示情報(SYNCフラグ)が付与されたDMA転送命令(SYNCフラグ付きDMA転送命令)を含む複数のDMA転送命令を、高速に実行することができる。その理由は、DMA転送制御装置10は、実行中の状態にある先行するDMA転送命令が完了するまで待つことなくSYNCフラグ付きDMA転送命令の実行を開始し、SYNCフラグ付きDMA転送命令までのDMA転送命令が全て完了したことを確認したのち、後続するDMA転送命令の実行を開始するようにDMAコントローラを制御するからである。
以下に、本実施形態に係るDMA転送制御装置10によって実現される効果について、詳細に説明する。
近年のコンピュータシステムは、DMAコントローラを複数備えることによって、複数のDMA転送を並列に行なうことが可能である。このような複数のDMA転送を行なうコンピュータシステムでは、特定のDMA転送命令を含む実行中の全てのDMA転送命令が完了したことを保証した後に、その特定のDMA転送命令に後続するDMA転送を行なう必要がある場合がある。この場合、その特定のDMA転送命令にSYNCフラグが付与されたSYNCフラグ付きDMA転送が行なわれる。
複数のDMAコントローラを備える一般的なDMA転送制御装置は、例えば図11A及び11Bに例示するように、SYNCフラグ付きDMA転送命令を、先行して実行中であるDMA転送命令が全て完了した後に実行することによって、完了保証を実現する。すなわち、一般的なDMA転送制御装置は、複数のDMA転送を並列に実行可能なハードウェア構成を備えているにもかかわらず、SYNCフラグ付きDMA転送に関しては、単独で実行する必要があるので、効率的であるとは言えない。
このような問題に対して、本実施形態に係るDMA転送制御装置10は、第1制御部11、及び、第2制御部12を備え、例えば図6A及び6Bに例示するように動作する。即ち、第1制御部11は、複数のDMAコントローラ14によって個々に実行される複数のDMA転送命令のいずれかが、完了保証指示情報(SYNCフラグ)が付与された第一のDMA転送命令(SYNCフラグ付きDMA転送命令)である場合、当該複数のDMA転送命令のうち実行中の状態にある第二のDMA転送命令の実行が完了する前に、第一のDMA転送命令の実行を開始するように、当該複数のDMAコントローラ14のいずれかを制御する。第2制御部12は、第一及び第二のDMA転送命令の実行が完了したことを検知したのち、当該複数のDMA転送命令のうち、第一のDMA転送命令に後続する第三のDMA転送命令の実行を開始するように、複数のDMAコントローラ14の少なくともいずれかを制御する。
このように、一般的なDMA転送制御装置30は、通常のDMA転送とSYNCフラグ付きDMA転送命令とを並列に実行しないのに対して、本実施形態に係るDMA転送制御装置10は、通常のDMA転送とSYNCフラグ付きDMA転送命令とを並列に実行する。したがって、本実施形態に係るDMA転送制御装置10は、SYNCフラグ付きDMA転送命令を含む場合であっても、複数のDMAコントローラ14を有効に使用することができるので、SYNCフラグ付きDMA転送命令を含む複数のDMA転送命令を高速に実行することができる。
また、本実施形態に係る第2制御部12は、SYNCフラグ付きDMA転送命令までの全てのDMA転送命令が完了したときに、SYNC命令を、CPU100と、主記憶装置101と、入出力制御装置102と、に対して、SYNCフラグ付きDMA転送命令を実行したDMAコントローラ14が発行するように制御する。そして、CPU100、主記憶装置101、及び、入出力制御装置102は、SYNC命令を実行したのち、SYNC命令を完了したことを、当該DMAコントローラ14へ通知する。この際、CPU100、主記憶装置101、及び、入出力制御装置102は、自装置において、SYNC命令に対する処理が、SYNCフラグ付きDMA転送命令に後続するDMA転送命令の実行開始に伴い発生する処理に追い越されないことが保証されるタイミングに、SYNC命令の実行を完了したことを、第2制御部12へ通知するようにしてもよい。これにより、本実施形態に係るDMA転送制御システム1は、複数のDMA転送をパイプライン処理する際のスループットが低下することを回避しつつ、SYNCフラグ付きDMA転送命令に対する完了保証を確実に行なうことができる。
<第2の実施形態>
図7は、本願発明の第2の実施形態に係るDMA転送制御装置20の構成を概念的に示すブロック図である。
本実施形態に係るDMA転送制御装置20は、第1制御部21、及び、第2制御部22を備えている。
第1制御部21は、複数のDMAコントローラ24−1乃至24−n(nは2以上の任意の整数)によって個々に実行される複数のDMA転送命令のいずれかが、完了保証指示情報250が付与された第1のDMA転送命令25である場合、下記の通り動作する。即ち、第1制御部21は、複数のDMA転送命令のうち未だ実行状態にある第2のDMA転送命令26の実行が完了する前に、第1のDMA転送命令25の実行を開始するように、複数のDMAコントローラ24−1乃至24−nのいずれかを制御する。但し、完了保証指示情報250は、第1のDMA転送命令25と先行する第2のDMA転送命令26との実行が完了するまで、後続するDMA転送命令の実行を保留することを指示する情報である。
第2制御部22は、第1のDMA転送命令25と第2のDMA転送命令26の実行が完了したことを検知したのち、複数のDMA転送命令のうち、第1のDMA転送命令25に後続する第3のDMA転送命令27の実行を開始するように、複数のDMAコントローラの少なくともいずれかを制御する。
本実施形態に係るDMA転送制御装置20は、完了保証指示情報が付与されたDMA転送命令を含む複数のDMA転送命令を、高速に実行することができる。その理由は、DMA転送制御装置20は、実行中の状態にある先行する第2のDMA転送命令26が完了するまで待つことなく完了保証指示情報250が付与された第1のDMA転送命令25の実行を開始し、第1のDMA転送命令25までのDMA転送命令が全て完了したことを確認したのち、後続する第3のDMA転送命令27の実行を開始するようにDMAコントローラ24−1乃至24−nを制御するからである。
<ハードウェア構成例>
上述した各実施形態において図1、及び、図7に示したDMA転送制御装置10及び20における各部は、専用のHW(HardWare)(電子回路)によって実現することができる。また、図1、及び、図7において、少なくとも、下記構成は、ソフトウェアプログラムの機能(処理)単位(ソフトウェアモジュール)と捉えることができる。
・第1制御部11及び21、
・第2制御部12及び22。
但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図8を参照して説明する。
図8は、本願発明の各実施形態に係るDMA転送制御装置を実行可能な情報処理装置900(コンピュータ)の構成を例示的に説明する図である。即ち、図8は、図1、及び、図7に示したDMA転送制御装置或いはその一部を実現可能なコンピュータ(情報処理装置)の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。図8に示した情報処理装置900は、構成要素として下記を備えている。
・CPU(Central_Processing_Unit)901、
・ROM(Read_Only_Memory)902、
・RAM(Random_Access_Memory)903、
・ハードディスク(記憶装置)904、
・無線送受信部等の外部装置との通信インタフェース905、
・バス906(通信線)、
・CD−ROM(Compact_Disc_Read_Only_Memory)等の記録媒体907に格納されたデータを読み書き可能なリーダライタ908、
・入出力インタフェース909。
即ち、上記構成要素を備える情報処理装置900は、これらの構成がバス906を介して接続された一般的なコンピュータである。情報処理装置900は、CPU901を複数備える場合もあれば、マルチコアにより構成されたCPU901を備える場合もある。
そして、上述した実施形態を例に説明した本願発明は、図8に示した情報処理装置900に対して、次の機能を実現可能なコンピュータプログラムを供給する。その機能とは、その実施形態の説明において参照したブロック構成図(図1及び図7)における上述した構成、或いはシーケンス図(図6A及び6B)の機能である。本願発明は、その後、そのコンピュータプログラムを、当該ハードウェアのCPU901に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性のメモリ(RAM903)、または、ROM902やハードディスク904等の不揮発性の記憶デバイスに格納すれば良い。
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、CD−ROM等の各種記録媒体907を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本願発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体907によって構成されると捉えることができる。
以上、上述した実施形態を模範的な例として本願発明を説明した。しかしながら、本願発明は、上述した実施形態には限定されない。即ち、本願発明は、本願発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
1 DMA転送制御システム
10 DMA転送制御装置
11 第1制御部
110 DMA割付ポインタ
12 第2制御部
120 SYNC確認ポインタ
13 記憶部
130 ディスクリプタ
130−1乃至130−m ディスクリプタ
131 実行バリッド
132 転送元開始アドレス
133 転送先開始アドレス
134 データサイズ
135 SYNCフラグ
136 DMA転送実行フラグ
137 DMA転送完了フラグ
138 SYNC命令完了フラグ
139 結果情報
14 DMAコントローラ
14−1乃至14−n DMAコントローラ
140 DMAリクエスト制御部
141 データバッファ
100 CPU
101 主記憶装置
102 入出力制御装置
20 DMA転送制御装置
21 第1制御部
22 第2制御部
24−1乃至24−n DMAコントローラ
25 第1のDMA転送命令
250 完了保証指示情報
26 第2のDMA転送命令
27 第3のDMA転送命令
30 DMA転送制御装置
31 DMAコントローラ制御部
33 記憶部
330−1乃至330−m ディスクリプタ
34−1乃至34−n DMAコントローラ
900 情報処理装置
901 CPU
902 ROM
903 RAM
904 ハードディスク(記憶装置)
905 通信インタフェース
906 バス
907 記録媒体
908 リーダライタ
909 入出力インタフェース

Claims (9)

  1. 複数のDMA転送命令を発行する中央処理装置と、
    前記複数のDMA転送命令により転送されるデータを記憶する主記憶装置と、
    前記複数のDMA転送命令により転送されるデータに関して、外部装置との入出力を制御する入出力制御装置と、
    を有するDMA転送制御システムにおいて、
    複数のDMAコントローラによって個々に実行される前記複数のDMA転送命令のいずれかが、自DMA転送命令と未だ実行状態にある先行する他のDMA転送命令との実行が完了するまで、後続する他のDMA転送命令の実行を保留することを指示する完了保証指示情報が付与された第一のDMA転送命令である場合、前記複数のDMA転送命令のうち未だ実行状態にある第二のDMA転送命令の実行が完了する前に、前記第一のDMA転送命令の実行を開始するように、前記複数のDMAコントローラのいずれかを制御する第一制御手段と、
    前記第一及び第二のDMA転送命令の実行が完了したことを検知したのち、前記複数のDMA転送命令のうち、前記第一のDMA転送命令に後続する第三のDMA転送命令の実行を開始するように、前記複数のDMAコントローラの少なくともいずれかを制御する第二制御手段と、
    を備え
    前記第二制御手段は、前記第一及び第二のDMA転送命令の実行が完了したときに、前記第一及び第二のDMA転送命令の実行完了に伴う処理を指示する完了保証指示命令を、前記中央処理装置と、前記主記憶装置と、前記入出力制御装置と、に対して、前記第一のDMA転送命令を実行した前記DMAコントローラが発行するように制御したのち、前記中央処理装置と、前記主記憶装置と、前記入出力制御装置とから、前記完了保証指示命令の実行を完了したことを通知されたときに、前記第三のDMA転送命令の実行を開始するように、前記複数のDMAコントローラの少なくともいずれかを制御する、
    MA転送制御装置。
  2. 前記複数のDMA転送命令による処理内容を示すDMA転送情報が記憶された記憶手段をさらに備え、
    前記DMA転送情報は、前記複数のDMAコントローラが前記複数のDMA転送命令を実行する際に、前記複数のDMAコントローラによって参照される、
    請求項1に記載のDMA転送制御装置。
  3. 前記DMA転送情報は、前記複数のDMA転送命令の個々に関して、前記完了保証指示情報と、実行状態を表す実行状態情報と、を含む、
    請求項2に記載のDMA転送制御装置。
  4. 前記第一制御手段は、前記複数のDMAコントローラが前記複数のDMA転送命令を開始するときに、前記実行状態情報を更新し、
    前記第二制御手段は、前記複数のDMAコントローラから通知される、前記複数のDMA転送命令に関する実行状態を表す情報に基づいて、前記実行状態情報を更新することによって、前記第一及び第二のDMA転送命令の実行が完了したことを検知する、
    請求項3に記載のDMA転送制御装置。
  5. 前記複数のDMAコントローラをさらに備える、
    請求項1乃至4のいずれか一項に記載のDMA転送制御装置。
  6. 請求項1乃至5のいずれか一項に記載のDMA転送制御装置と、
    記中央処理装置と、
    記主記憶装置と、
    記入出力制御装置と、
    を有するDMA転送制御システム。
  7. 前記中央処理装置、前記主記憶装置、及び、前記入出力制御装置は、それぞれ自装置において、前記完了保証指示命令に対する処理が、前記第三のDMA転送命令の実行開始に伴い発生する処理に追い越されないことが保証されるタイミングに、前記完了保証指示命令の実行を完了したことを、前記第二制御手段へ通知する、
    請求項に記載のDMA転送制御システム。
  8. 複数のDMA転送命令を発行する中央処理装置と、
    前記複数のDMA転送命令により転送されるデータを記憶する主記憶装置と、
    前記複数のDMA転送命令により転送されるデータに関して、外部装置との入出力を制御する入出力制御装置と、
    を有するDMA転送制御システムにおいて、
    情報処理装置によって、
    複数のDMAコントローラによって個々に実行される前記複数のDMA転送命令のいずれかが、自DMA転送命令と未だ実行状態にある先行する他のDMA転送命令との実行が完了するまで、後続する他のDMA転送命令の実行を保留することを指示する完了保証指示情報が付与された第一のDMA転送命令である場合、前記複数のDMA転送命令のうち未だ実行状態にある第二のDMA転送命令の実行が完了する前に、前記第一のDMA転送命令の実行を開始するように、前記複数のDMAコントローラのいずれかを制御し、
    前記第一及び第二のDMA転送命令の実行が完了したことを検知したのち、前記複数のDMA転送命令のうち、前記第一のDMA転送命令に後続する第三のDMA転送命令の実行を開始するように、前記複数のDMAコントローラの少なくともいずれかを制御
    前記第一及び第二のDMA転送命令の実行が完了したときに、前記第一及び第二のDMA転送命令の実行完了に伴う処理を指示する完了保証指示命令を、前記中央処理装置と、前記主記憶装置と、前記入出力制御装置と、に対して、前記第一のDMA転送命令を実行した前記DMAコントローラが発行するように制御したのち、前記中央処理装置と、前記主記憶装置と、前記入出力制御装置とから、前記完了保証指示命令の実行を完了したことを通知されたときに、前記第三のDMA転送命令の実行を開始するように、前記複数のDMAコントローラの少なくともいずれかを制御する、
    DMA転送制御方法。
  9. 複数のDMA転送命令を発行する中央処理装置と、
    前記複数のDMA転送命令により転送されるデータを記憶する主記憶装置と、
    前記複数のDMA転送命令により転送されるデータに関して、外部装置との入出力を制御する入出力制御装置と、
    を有するDMA転送制御システムにおいて、
    複数のDMAコントローラによって個々に実行される前記複数のDMA転送命令のいずれかが、自DMA転送命令と未だ実行状態にある先行する他のDMA転送命令との実行が完了するまで、後続する他のDMA転送命令の実行を保留することを指示する完了保証指示情報が付与された第一のDMA転送命令である場合、前記複数のDMA転送命令のうち未だ実行状態にある第二のDMA転送命令の実行が完了する前に、前記第一のDMA転送命令の実行を開始するように、前記複数のDMAコントローラのいずれかを制御する第一制御処理と、
    前記第一及び第二のDMA転送命令の実行が完了したことを検知したのち、前記複数のDMA転送命令のうち、前記第一のDMA転送命令に後続する第三のDMA転送命令の実行を開始するように、前記複数のDMAコントローラの少なくともいずれかを制御する第二制御処理と、
    をコンピュータに実行させるためのプログラムであって、
    前記第二制御処理は、前記第一及び第二のDMA転送命令の実行が完了したときに、前記第一及び第二のDMA転送命令の実行完了に伴う処理を指示する完了保証指示命令を、前記中央処理装置と、前記主記憶装置と、前記入出力制御装置と、に対して、前記第一のDMA転送命令を実行した前記DMAコントローラが発行するように制御したのち、前記中央処理装置と、前記主記憶装置と、前記入出力制御装置とから、前記完了保証指示命令の実行を完了したことを通知されたときに、前記第三のDMA転送命令の実行を開始するように、前記複数のDMAコントローラの少なくともいずれかを制御する、
    DMA転送制御プログラム。
JP2017012453A 2017-01-26 2017-01-26 Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム Active JP6940283B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017012453A JP6940283B2 (ja) 2017-01-26 2017-01-26 Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017012453A JP6940283B2 (ja) 2017-01-26 2017-01-26 Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム

Publications (2)

Publication Number Publication Date
JP2018120484A JP2018120484A (ja) 2018-08-02
JP6940283B2 true JP6940283B2 (ja) 2021-09-22

Family

ID=63045243

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017012453A Active JP6940283B2 (ja) 2017-01-26 2017-01-26 Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム

Country Status (1)

Country Link
JP (1) JP6940283B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4476267B2 (ja) * 2006-10-06 2010-06-09 株式会社日立製作所 プロセッサ及びデータ転送ユニット
JP2011070259A (ja) * 2009-09-24 2011-04-07 Mitsubishi Electric Corp データ転送装置及びデータ転送方法

Also Published As

Publication number Publication date
JP2018120484A (ja) 2018-08-02

Similar Documents

Publication Publication Date Title
US9043806B2 (en) Information processing device and task switching method
US10409746B2 (en) Memory access control device and control method of memory access
US11055132B2 (en) Multicore page fault processing
US20060059489A1 (en) Parallel processing system, interconnection network, node and network control method, and program therefor
JP5287301B2 (ja) ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法
US20160034332A1 (en) Information processing system and method
WO2008020389A2 (en) Flash memory access circuit
CN102334108A (zh) 具有可指派通用寄存器组的处理器
US20130238881A1 (en) Data transmission device, data transmission method, and computer program product
JP6940283B2 (ja) Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム
JP2005258509A (ja) ストレージ装置
JP2007249635A (ja) データ転送装置及びデータ転送方法
JP7225904B2 (ja) ベクトル演算処理装置、ベクトル演算処理装置による配列変数初期化方法、及び、ベクトル演算処理装置による配列変数初期化プログラム
JP2010049303A (ja) メモリコントローラ、不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
US20090037917A1 (en) Apparatus and method capable of using reconfigurable descriptor in system on chip
US11010318B2 (en) Method and apparatus for efficient and flexible direct memory access
JP6206524B2 (ja) データ転送装置、データ転送方法、プログラム
JP2006126938A (ja) データ転送システム及びそのデータ転送方法
JP5541544B2 (ja) コンピュータ装置、データ転送方法、及びプログラム
KR102535532B1 (ko) 데이터 절감 장치, 데이터 절감 방법 및 데이터 절감 장치를 포함하는 시스템
JP7080698B2 (ja) 情報処理装置
JP7003752B2 (ja) データ転送装置、データ転送方法、プログラム
JP6138482B2 (ja) 組み込みシステム
JP2017138755A (ja) マルチプロセッサシステム、マルチプロセッサシステムにおける主記憶アクセス制御方法、及び、マルチプロセッサシステムにおける主記憶アクセス制御プログラム
JP6384359B2 (ja) 分散共有メモリを有する情報処理装置、方法、および、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201222

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210209

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210902

R150 Certificate of patent or registration of utility model

Ref document number: 6940283

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150