JP2012099096A - プログラム可能メモリコントローラ - Google Patents

プログラム可能メモリコントローラ Download PDF

Info

Publication number
JP2012099096A
JP2012099096A JP2011225919A JP2011225919A JP2012099096A JP 2012099096 A JP2012099096 A JP 2012099096A JP 2011225919 A JP2011225919 A JP 2011225919A JP 2011225919 A JP2011225919 A JP 2011225919A JP 2012099096 A JP2012099096 A JP 2012099096A
Authority
JP
Japan
Prior art keywords
primitives
command
memory controller
data structure
operations
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.)
Granted
Application number
JP2011225919A
Other languages
English (en)
Other versions
JP5787444B2 (ja
Inventor
Tsai Howard
ツァイ ハワード
Vishnevestsky Dmitry
ヴィシェツキー ドミトリー
Meininger Neil
メイニンガー ニール
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.)
Nvidia Corp
Original Assignee
Nvidia Corp
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 Nvidia Corp filed Critical Nvidia Corp
Publication of JP2012099096A publication Critical patent/JP2012099096A/ja
Application granted granted Critical
Publication of JP5787444B2 publication Critical patent/JP5787444B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System (AREA)
  • Executing Machine-Instructions (AREA)
  • Read Only Memory (AREA)

Abstract

【課題】異なるコマンドセット、プロトコル、及びインターフェース、並びに将来の新しいコマンドセット、プロトコル、及びインターフェースをサポートするプログラム可能メモリコントローラ技術を提供する。
【解決手段】メモリコントローラ210はコマンド変換データ構造430、フロントエンド420、及びバックエンド440を含む。コマンド変換データ構造430は、コマンド操作をプリミティブにマッピングし、プリミティブは1つ又は複数の記憶装置について決定されたコマンド操作から分解される。フロントエンド420は、処理装置からコマンド操作を受信し、コマンド変換データ構造を使用して、それぞれの受信したコマンド操作を1つ又は複数の対応するプリミティブのセットに変換する。バックエンド440は、受信したコマンド操作ごとに所与の記憶装置に1つ又は複数の対応するプリミティブのセットを出力する。
【選択図】図4

Description

従来の電子装置は、通常1つ又は複数のタイプのメモリを含む。一般に、メモリコントローラは電子装置の1つ又は複数の処理装置と1つ又は複数の記憶ユニットと間のデータの流れを管理するために利用される。従来の電子装置における一般的なタイプのメモリはフラッシュメモリである。フラッシュメモリは、メモリの大きなセクション内で消去及びプログラムされるように設計されている。
従来技術では、記憶装置について、複数のアーキテクチャ、コマンドセット、プロトコル、バスインターフェース、及び同様の基準がある。例えば、フラッシュメモリ装置についても、例えばONFI、サムスン、及びJEDECといったレガシーなどの複数の基準がある。このようなフラッシュメモリ基準はそれぞれわずかに異なり、それぞれの基準によってベンダー独自のコマンドが可能になる。従来のメモリコントローラは、一般的に単一のメモリ基準、又は基準の小さなサブセットで機能する。異なるアーキテクチャ、コマンドセット、プロトコル、信号インターフェース定義、及び同様のものは、従来のメモリコントローラが異なる記憶装置へのメモリアクセスをサポートするのを妨げる。従って、複数の基準をサポートするためのメモリコントローラ技術が継続的に求められている。
本技術は、以下の説明、及び本技術の実施形態を示すために使用される添付の図面を参照することによって、最もよく理解できる。
本技術の実施形態は、プログラム可能メモリコントローラ、並びにそのセットアップ及び操作を対象とする。セットアップの実施形態では、1つ又は複数の記憶装置のためのコマンドセットが決定される。1つ又は複数の記憶装置は、1つ又は複数の異なるアーキテクチャを有し、異なる基準を満たし、異なる通信プロトコルを利用し、異なるインターフェース及び/又は同様のものを有する、1つ又は複数のフラッシュメモリ装置を含むことができる。それぞれのコマンド操作は、1つ又は複数のプリミティブに分解される。プリミティブは、コマンドサイクル、アドレスサイクル、及び/又はデータサイクルを含むことができる。コマンド操作と1つ又は複数のプリミティブとの間のマッピングは、メモリコントローラのコマンド変換データ構造に格納される。
操作の実施形態では、メモリコントローラのコマンド変換データ構造は、1つ又は複数のコマンド操作と1つ又は複数のプリミティブとの間のマッピングとともにプログラムされる。1つ又は複数のプリミティブは、1つ又は複数の記憶装置について決定された1つ又は複数のコマンド操作から分解される。その後、メモリコントローラは1つ又は複数の処理装置からコマンド操作を受信する。それぞれの受信したコマンド操作は、メモリコントローラによって、コマンド変換データ構造を使用して1つ又は複数の対応するプリミティブのセットに変換される。次いで、メモリコントローラは、受信したコマンド操作ごとに1つ又は複数の対応するプリミティブのセットを出力する。適切なプリミティブが、適切な記憶装置及び/又は適切な処理装置に出力される。
添付の図面の図において、本技術の実施形態を限定するためではなく例として示す。図面において同様の参照番号は類似の要素を指す。
本技術の一実施形態による、メモリコントローラセットアップ処理の流れ図である。 本技術の一実施形態による、メモリコントローラを含む例示的なシステムのブロック図である。 本技術の一実施形態による、コマンド操作のプリミティブへの分解の例を示す図である。 本技術の一実施形態による、例示的なメモリコントローラのブロック図である。 本技術の一実施形態による、メモリコントローラの操作の流れ図である。 本技術の一実施形態による、プリミティブ及び/又はマクロの1つ又は複数のセットのインタリーブの例を示す図である。
本発明の詳細な説明
次に、本技術の実施形態を詳細に参照する。本技術の実施形態の例は添付の図面に示されている。本技術をこれらの実施形態と併せて説明するが、これらの実施形態は本発明をこれらの実施形態に限定することを意図するものではないことが理解されよう。反対に、本発明は代替、修正、及び同等物をカバーすることを意図し、それらの代替、修正、及び同等物は添付の特許請求の範囲によって定義される本発明の範囲内に含まれ得る。更に、以下の本技術の詳細な説明では、本技術の完全な理解を可能にするために数々の特定の詳細を説明する。しかし、本技術はこれらの特定の詳細なしに実施できることが理解されよう。他の例では、本技術の態様を無用に不明瞭にしないために、よく知られている方法、手順、コンポーネント、及び回路は詳細に説明しない。
本技術の実施形態は、異なるコマンドセット、プロトコル、及びインターフェース、並びに将来の新しいコマンドセット、プロトコル、及びインターフェースをサポートするプログラム可能メモリコントローラ技術を対象とする。更に、実施形態はコマンドごとにプロセッサとメモリコントローラとの間で渡されるデータの量を減少させる。
図1を参照すると、本技術の一実施形態によるメモリコントローラセットアップ処理が示されている。メモリコントローラのセットアップ処理は、メモリコントローラを含む例示的なシステムを示す図2を参照して更に説明される。メモリコントローラ210は、1つ又は複数の処理装置220と1つ又は複数の記憶ユニット230との間のデータの流れを管理する。処理装置200は、マイクロプロセッサ、中央処理装置(CPU)、グラフィック処理装置(GPU)、マイクロコントローラ、又は他の何らかの類似の処理装置である場合がある。一実装形態では、記憶ユニット230は、フラッシュメモリアレイ、回路、チップ、カード、モジュール、又は同様のものである場合がある。一実装形態では、メモリコントローラ210は別々の回路である場合がある。他の実装形態では、メモリコントローラ210は処理装置220に不可欠な場合がある。
再び図1を参照すると、セットアップ処理は、110で、1つ又は複数の記憶装置のコマンド操作を決定するステップを含む。一実装形態では、記憶装置は1つ又は複数の異なるフラッシュメモリ装置である場合がある。コマンド操作は、例えばONFI、JEDEC及び/又は同等のものなどの1つ又は複数のメモリ基準についてのページ読取り、ページ書込み、及び同等のものを含むことができる。コマンド操作は、1つ又は複数のプロトコルを構成する1つ又は複数のコマンド操作の1つ又は複数のセットを含むことができる。コマンド操作を1つ又は複数の信号インターフェース定義に関連付けることもできる。
120で、コマンド操作はそれぞれ1つ又は複数のサイクルの1つ又は複数のプリミティブに分解される。プリミティブは、1つ若しくは複数のコマンド(CMD)サイクル、1つ若しくは複数のアドレス(ADDR)サイクル、及び/又は1つ若しくは複数のデータ(DATA)サイクルを含むことができる。コマンド操作は、1つ又は複数のコマンド操作の1つ又は複数のセットに対応する1つ又は複数のプロトコルごとに、プリミティブのうちの1つ又は複数についての1つ又は複数の持続時間に分解することもできる。コマンド操作は、1つ又は複数のコマンド操作の1つ又は複数のセットに対応する1つ又は複数のプロトコルごとに、1つ又は複数のプリミティブの後で1つ又は複数の遅延に分解することもできる。1つ又は複数のプリミティブの前の持続時間及び/又は1つ又は複数のプリミティブの後の遅延は、1つ又は複数のプロトコルのタイミングパラメータを実装できる。コマンド操作は、コマンド操作の1つ又は複数のセットについての1つ又は複数の信号インターフェース定義に分解することもできる。信号インターフェース定義は、プリミティブ及び/又はプロトコルごとに、様々なピンの状態及び/又は使用を定義できる。
次に図3を参照すると、コマンド操作310のプリミティブ320〜350への例示的な分解が示されている。コマンド操作310は、例えばページ読取りコマンド操作である場合があり、プリミティブは「読取り」プリミティブ(例えば、CMD1)320、「アドレス」プリミティブ(例えば、ADDR)330、及び「ゴー(go)」プリミティブ(例えば、CMD2)340、並びに「データアウト」プリミティブ(例えば、DOUT)350を含むことができる。他の例では、ページ書込み操作は、「書込み」プリミティブ(例えば、CMD3)、「アドレス」プリミティブ(例えば、ADDR)、「データイン」プリミティブ(例えば、DIN)、及び「ゴー」プリミティブ(例えば、CMD2)に分解され得る。「読取り」プリミティブ(例えば、CMD1)、「ゴー」プリミティブ(例えば、CMD2)、及び「書込み」プリミティブ(例えば、CMD3)は、コマンドサイクルプリミティブの例である。「アドレス」プリミティブ(例えば、ADDR)は、アドレスサイクルプリミティブの例である。「データイン」プリミティブ(例えば、DIN)、及び「データアウト」プリミティブ(例えば、DOUT)は、データサイクルプリミティブの例である。
メモリプロトコルをプリミティブに分解することによって、プリミティブを構成要素としてつなげることにより複雑なシーケンスを任意で構築できる。130で、1つ又は複数のコマンド操作の少なくとも一部を指定するためにプリミティブの1つ又は複数のシーケンスを任意で決定できる。一実装形態では、1つ又は複数の共通で使用されるプリミティブのシーケンスごとにマクロを指定できる。所与のシーケンスについてのマクロは、1つ若しくは複数のプリミティブ、1つ若しくは複数の持続時間、及び/又は1つ若しくは複数の遅延から生成される。一実装形態では、持続時間及び遅延は、「ビジー」及び/又は「ポーリング」の概念によって実装され得る。ビジー、及び/又はポーリングの概念は、プリミティブ間にタイミングを実装するために利用される。しかし、ビジーはバス上には乗せられない。プリミティブ及びマクロの例示的なセットは表1に示されている。
Figure 2012099096
140で、1つ又は複数のプリミティブがメモリコントローラのコマンド変換データ構造に格納される。コマンド変換データ構造は、プログラム可能メモリコントローラのコマンド操作とプリミティブとの間のマッピングとともにプログラムされ得る。1つ又は複数のコマンド操作とプリミティブの1つ又は複数のシーケンスとの間のマッピングは、1つ又は複数の記憶装置の1つ又は複数のコマンド操作の1つ又は複数のセットに対応する1つ又は複数のプロトコルごとに、1つ又は複数のプリミティブについての1つ又は複数の持続時間も含むことができる。1つ又は複数のコマンド操作とプリミティブの1つ又は複数のシーケンスとの間のマッピングは、1つ又は複数の記憶装置のコマンド操作の1つ又は複数のセットに対応する1つ又は複数のプロトコルごとに、1つ又は複数のプリミティブの後の1つ又は複数の遅延も含むことができる。1つ又は複数のコマンド操作とプリミティブの1つ又は複数のシーケンスとの間のマッピングは、1つ又は複数の記憶装置のコマンド操作の1つ又は複数のセットについての1つ又は複数の信号インターフェース定義も含むことができる。データ構造は、マイクロコード又は同様のものとして、ブート開始時にメモリコントローラにプログラムされ得る。マイクロコードは、異なる記憶装置基準、異なるプロトコル、及び/又は1つ若しくは複数の異なる記憶装置の特定の特徴に適合するために、メモリコントローラに書き込まれてプログラムされる。
プリミティブの1つ又は複数のシーケンスも130で決定された場合には、シーケンスもマクロとしてコマンド変換データ構造に格納され得る。このような場合、データ構造は、操作コマンドと、プリミティブ及び基準ごとの任意なマクロとの間にマッピングを提供する。他の実装形態では、メモリコントローラのファームウェアが、プリミティブの1つ又は複数のシーケンスを選択的に実行するようにプログラムされ得る。
上述のセットアップ処理は、ハードウェア、ソフトウェア(例えば、1つ又は複数のコンピューティングデバイス可読メディアに格納されたコンピューティングデバイス実行可能命令)、ファームウェア(例えば、コンピューティングデバイスプログラム可能回路)、或いはハードウェア、ソフトウェア、及び/又はファームウェアの1つ又は複数の組合せに実装され得る。
次に図4を参照すると、本技術の一実施形態による例示的なメモリコントローラが示されている。例示的なメモリコントローラの操作は、図5を参照して更に説明される。メモリコントローラ210は、コマンドバッファ410、フロントエンド420、コントローラメモリ(例えば、コンピューティングデバイス可読メディア)430、バックエンド440、コントローラファームウェア450、及びパッドインターフェース460を含むことができる。コントローラも、コマンド先入れ先出し(FIFO)バッファ、データ及びアドレスFIFOバッファ、シーケンサFIFOバッファ、ステータスレジスタ、コンフィギュレーションレジスタ、制御ロジック、及び/又は同様のものなどの、他の複数の要素を含むことが理解される。更に、1つ又は複数の要素は、書込みバックエンド及び読取りバックエンドなどの複数のサブ要素として構成され得る。同様に、フロントエンド420はプログラムメモリ430を含むことができ、及び/又はバックエンド440はプログラム可能ファームウェア450を含むことができる。
次に図5を参照すると、510で、メモリコントローラのコマンド変換データ構造が、1つ又は複数の記憶装置について決定された1つ又は複数のコマンド操作から分解された1つ又は複数のプリミティブとともにプログラムされる。一実装形態では、コマンド変換データ構造はコントローラメモリ430に格納される。コマンド変換データ構造は、ブート開始時などセットアップ処理においてプログラムされ得る。コマンド変換データ構造は、1つ又は複数のコマンド操作と1つ又は複数のプリミティブとの間にマッピングを含むことができる。コマンド変換データ構造は、1つ又は複数のコマンド操作と1つ又は複数のプリミティブの1つ又は複数のシーケンスとの間にもマッピングを含むことができる。コマンド変換データ構造のマッピングは、1つ又は複数の記憶装置の1つ又は複数のコマンド操作の1つ又は複数のセットに対応する1つ又は複数のプロトコルごとに、1つ又は複数のプリミティブについての1つ又は複数の持続時間も含むことができる。コマンド変換データ構造のマッピングは、1つ又は複数の記憶装置のコマンド操作の1つ又は複数のセットに対応する1つ又は複数のプロトコルごとに、1つ又は複数のプリミティブの後の1つ又は複数の遅延も含むことができる。コマンド変換データ構造のマッピングは、1つ又は複数の記憶装置のコマンド操作の1つ又は複数のセットについての1つ又は複数の信号インターフェース定義も含むことができる。
その後、520で、1つ又は複数の処理装置220からメモリコントローラ210によってコマンド操作470が受信される。一実装形態では、受信されたコマンド操作470はメモリコントローラ210のコマンドバッファ410でバッファされ得る。コマンドバッファ410は先入れ先出し(FIFO)バッファである場合がある。
530で、コマンド操作470は、メモリコントローラによって、コマンド変換データ構造を使用して1つ又は複数の対応するプリミティブ480のセットにそれぞれ変換される。所与のコマンド操作の一部も、コマンド変換データ構造を使用して、本明細書でマクロと呼ばれる1つ又は複数のプリミティブの1つ又は複数のシーケンスに変換され得る。コマンド操作の1つ若しくは複数の対応するプリミティブ及び/又は1つ若しくは複数のプリミティブのシーケンスへの変換は、プリミティブのうちの1つ又は複数の持続時間も含むことができる。コマンド操作の変換は、1つ又は複数のプリミティブの後の1つ又は複数の遅延も含むことができる。コマンド操作の1つ又は複数の対応するプリミティブ及び/又はシーケンスへの変換は、1つ又は複数の信号インターフェース定義も含むことができる。一実装形態では、フロントエンド420は、プログラムメモリ430内のコマンド操作プリミティブデータ構造にマップされたように、受信したコマンド操作470をプリミティブ及び/又はマクロ480のセットに変換する。
一実装形態では、ページ読取りを実行するために、メモリコントローラのフロントエンドは表1を使用して「1」プリミティブコードが続く「0」プリミティブコードを発行することができ、また、同じタスクを達成するために「2」プリミティブコードを発行することもできる。また一方で、前者によって可能とされた柔軟性は、メモリセルアレイの異なるチップイネーブル(CE)又は論理ユニット(LUN)にわたる操作のインタリービングを可能にする。このようなプリミティブのインタリービングによってパフォーマンスを改善できる。他の例では、この手法によって、たとえハードウェアが4KBだけをサポートするように設計されていても、8KBページデバイスのサポートが可能になる。これは、6、8、及び0を発行することによって行うことができる。
別の実装形態では、プリミティブは、マイクロ命令セットの一部として使用され、及び、ポインタの表又は実質的なマイクロコードとして構成され得るメモリコントローラコマンドのセットの一部として使用される。例示的なマイクロ命令セット及び対応するメモリコントローラコマンドのセットは、表2に示される。
Figure 2012099096
540で、メモリコントローラから1つ若しくは複数の記憶装置及び/又は1つ若しくは複数の処理装置にプリミティブのセットが出力される。一実装形態では、バックエンド440は、いかなる適用可能な持続時間及び/又は遅延も含む、プリミティブ及び/又はマクロ480の適切なパラメータを符号化する。次いで、バックエンド440は、それぞれの受信したコマンド操作470に対応するプリミティブ及び/又はマクロ480のセットを、何らかの適用可能な信号インターフェース定義に従って対応するビットストリーム490に変換する。パッドインターフェース460は適切なタイミングでビットストリーム490を出力する。
別の実装形態では、選択されたプリミティブ及び/又はマクロはハードウェアシーケンスに組み込まれ得る。ハードウェアシーケンスはバックエンド440のプログラム可能ファームウェア450に実装され得る。
図6に示されるように、バックエンド450もプリミティブ及び/又はマクロの1つ若しくは複数のセットをインタリーブできる。例えば、それぞれのページ読取りは第1コマンドプリミティブ(例えば、CMD1)並びにアドレスプリミティブ(例えば、ADDR)、第2コマンドプリミティブ(例えば、CMD2)、遅延(例えば、ビジー)、及びデータプリミティブ(例えば、DOUT)に変換され得る。2つのページ読取りは、第1ページ読取りにおける遅延(例えば、ビジー)の間に、第2ページ読取りのプリミティブの一部が発行されるようにインタリーブできる。このような場合、第1ページ読取り(例えば、PAGE1)の遅延(例えば、ビジー)の間に、第2ページ読取り(例えば、PAGE2)についての第1コマンドプリミティブが発行されることができる。インタリーブされたページ読取りの結果、記憶ユニットから返されたデータは連続して返され、したがって対応するデータプリミティブ(例えば、DOUT)を何らかの適用可能な遅延(例えば、POLL)でインタリーブできる。
上記に示したように、それぞれのプリミティブはプリミティブ後の持続時間及び/又は遅延(クロックサイクルにおける)とともにプログラムされ得る。これにより、メモリコントローラ210はどのような必要なタイミングパラメータにも合わせることができる。例えば、フラッシュデバイスに対処する共通操作はある種のレディステータスについてのポーリングである。このポーリングを手動で行わなければならず、したがってクロックサイクルを消費してしまうことから、ファームウェアを開放するために、構築されたシーケンスの一部としてこのチェックを自律的に実行するためのサポートが利用できる。
上述のように、プリミティブごとに様々なピンの状態及び/又は使用を定義するためにコマンド変換データ構造を拡張して、それによって可変信号インターフェース定義に対処できる。例えばある基準では、ピンAはフラッシュからのデータをクロックインするために使用されるクロックのような信号を参照し、他の基準では代わりにピンBが使用される。同様にダブルデータレート(DDR)、及びシングルデータレート(SDR)プロトコルも、プリミティブごとに指定され得る。
上述のメモリコントローラ及び/又はメモリコントローラによって実行される機能は、ハードウェア、ソフトウェア(例えば、1つ又は複数のコンピューティングデバイス可読メディアに格納されたコンピューティングデバイス実行可能命令)、ファームウェア(例えば、コンピューティングデバイスプログラム可能回路)、或いはハードウェア、ソフトウェア、及び/又はファームウェアの1つ又は複数の組合せに実装され得る。
本技術の特定の実施形態の上記の説明を、図示及び説明の目的で提示した。これらの説明は網羅的であること、又は開示した正確な形式に本発明を限定することを意図するものではなく、上記の教示を踏まえて多くの修正形態及び変形形態が可能であることが明らかである。本技術の原理及び本技術の実際の適用を最もよく説明し、それによって他の当業者が本技術及び様々な実施形態を、熟考された特定の使用に適するような様々な修正形態とともに最もよく利用できるようにするために、実施形態は選択及び記述された。本発明の範囲は、本明細書に添付の特許請求の範囲、及びその同等物によって定義されることが意図される。
210 メモリコントローラ
220 処理装置
230 記憶ユニット
310 コマンド操作
320 プリミティブ
330 プリミティブ
340 プリミティブ
350 プリミティブ
410 コマンドバッファ
420 フロントエンド
430 コントローラメモリ
430 プログラムメモリ
430 データ構造
440 バックエンド
450 コントローラファームウェア
450 プログラム可能ファームウェア
460 パッドインターフェース
470 コマンド操作
480 プリミティブ
480 プリミティブ/マクロ
490 ビットストリーム

Claims (20)

  1. 1つ又は複数の記憶装置のそれぞれについて1つ又は複数のコマンド操作を決定するステップ110と、
    それぞれの前記1つ又は複数のコマンド操作を1つ又は複数のサイクルの1つ又は複数のプリミティブに分解するステップ120と、
    前記1つ又は複数のプリミティブをメモリコントローラのコマンド変換データ構造に格納するステップ140と
    を含む、方法。
  2. 前記1つ又は複数のサイクルが、コマンドサイクル、アドレスサイクル、及びデータサイクルで構成されるグループから選択された1つ又は複数を含む、請求項1に記載の方法。
  3. 1つ又は複数のコマンド操作の少なくとも一部を指定するためにプリミティブの1つ又は複数のシーケンスを決定するステップ130と、
    前記コマンド変換データ構造内のプリミティブの前記1つ又は複数のシーケンスをメモリコントローラに格納するステップ140と
    を更に含む、請求項1に記載の方法。
  4. 1つ又は複数のコマンド操作の少なくとも一部を指定するためにプリミティブの1つ又は複数のシーケンスを決定するステップ130と、
    プリミティブの前記1つ又は複数のシーケンスのそれぞれを選択的に実行するためにメモリコントローラ内のシーケンサのファームウェアをプログラムするステップと
    を更に含む、請求項1に記載の方法。
  5. 前記コマンド変換データ構造が、1つ又は複数の記憶装置の前記1つ又は複数のコマンド操作の1つ又は複数のセットに対応する1つ又は複数のプロトコルごとに、前記プリミティブのうちの1つ又は複数についての1つ又は複数の持続時間を含む、請求項1に記載の方法。
  6. 前記コマンド変換データ構造が、1つ又は複数の記憶装置の前記コマンド操作の1つ又は複数のセットに対応する1つ又は複数のプロトコルごとに、1つ又は複数の前記プリミティブの後の1つ又は複数の遅延を含む、請求項1に記載の方法。
  7. 前記コマンド変換データ構造が、1つ又は複数の記憶装置のコマンド操作の1つ又は複数のセットについての1つ又は複数の信号インターフェース定義を含む、請求項1に記載の方法。
  8. 前記1つ又は複数の記憶装置が少なくとも2つの異なるフラッシュメモリ装置を含む、請求項1に記載の方法。
  9. 1つ又は複数の記憶装置について決定された、1つ又は複数のコマンド操作から分解された1つ又は複数のプリミティブを備えるメモリコントローラのコマンド変換データ構造をプログラムするステップ510と、
    前記メモリコントローラによって処理装置からコマンド操作を受信するステップ520と、
    前記メモリコントローラによって、前記コマンド変換データ構造を使用して、それぞれのコマンド操作を1つ又は複数の対応するプリミティブのセットに変換するステップ530と、
    前記メモリコントローラから所与の記憶装置に1つ又は複数の対応するプリミティブの前記セットを出力するステップ540と
    を含む、方法。
  10. 前記コマンド変換データ構造が前記メモリコントローラのセットアップ処理でプログラムされる、請求項9に記載の方法。
  11. 所与のコマンド操作の一部が1つ又は複数のプリミティブの対応するシーケンスに変換される、請求項9に記載の方法。
  12. 所与のコマンド操作の1つ又は複数の対応するプリミティブへの前記変換が所与のプリミティブの持続時間を含む、請求項9に記載の方法。
  13. 所与のコマンド操作の1つ又は複数の対応するプリミティブへの前記変換が所与のプリミティブの後の遅延を含む、請求項9に記載の方法。
  14. 所与のコマンド操作の1つ又は複数の対応するプリミティブへの前記変換が1つ又は複数の信号インターフェース定義を含む、請求項9に記載の方法。
  15. 前記1つ又は複数のプリミティブが、コマンドサイクル、アドレスサイクル、及びデータサイクルで構成されるグループから選択された1つ又は複数を含む、請求項9に記載の方法。
  16. コマンド操作をプリミティブにマッピングするコマンド変換データ構造430であって、前記プリミティブが、1つ又は複数の記憶装置について決定されたコマンド操作から分解されるコマンド変換データ構造430と、
    処理装置からコマンド操作を受信して、前記コマンド変換データ構造を使用して、それぞれの受信したコマンド操作を1つ又は複数の対応するプリミティブのセットに変換するためのフロントエンド420と、
    受信したコマンド操作ごとに、所与の記憶装置に1つ又は複数の対応するプリミティブの前記セットを出力するためのバックエンド440と
    を備える、メモリコントローラ。
  17. 前記コマンド変換データ構造430が、コマンド操作を、プリミティブ、1つ又は複数のプリミティブの持続時間、及び1つ又は複数のプリミティブの後の遅延にマッピングし、
    前記フロントエンド420が、前記コマンド変換データ構造を使用して、それぞれの受信したコマンド操作を、1つ又は複数の対応するプリミティブの前記セット、対応する持続時間のうちの1つ又は複数、及び対応する遅延に変換し、
    前記バックエンド440が、1つ又は複数の対応するプリミティブの前記セット、並びに前記対応する持続時間、及び前記対応する遅延のうちの1つ又は複数を、受信したコマンド操作ごとに出力する、請求項16に記載のメモリコントローラ。
  18. 前記コマンド変換データ構造430が、1つ又は複数のコマンド操作の少なくとも一部を、プリミティブのシーケンス、前記プリミティブのうちの1つ又は複数の持続時間、及び1つ又は複数の前記プリミティブの後の遅延にマッピングし、
    前記フロントエンド420が、所与の受信したコマンド操作の少なくとも一部を、プリミティブの所与のシーケンス、前記プリミティブのうちの1つ又は複数の前記持続時間、及び前記所与のシーケンス内の1つ又は複数の前記プリミティブの後の前記遅延に変換し、
    前記バックエンド440が、プリミティブの前記所与のシーケンス、及び前記プリミティブのうちの1つ又は複数の前記持続時間、並びに前記所与の受信されたコマンド操作についての前記所与のシーケンス内の1つ又は複数の前記プリミティブの後の前記遅延を出力する、請求項16に記載のメモリコントローラ。
  19. 前記1つ又は複数の記憶装置が少なくとも2つの異なるフラッシュメモリ装置を含む、請求項16に記載のメモリコントローラ。
  20. 前記プリミティブが、コマンドサイクル、アドレスサイクル、及びデータサイクルで構成されるグループから選択された1つ又は複数を含む、請求項16に記載のメモリコントローラ。
JP2011225919A 2010-11-03 2011-10-13 プログラム可能メモリコントローラ Active JP5787444B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/939,135 2010-11-03
US12/939,135 US9465728B2 (en) 2010-11-03 2010-11-03 Memory controller adaptable to multiple memory devices

Publications (2)

Publication Number Publication Date
JP2012099096A true JP2012099096A (ja) 2012-05-24
JP5787444B2 JP5787444B2 (ja) 2015-09-30

Family

ID=45997938

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011225919A Active JP5787444B2 (ja) 2010-11-03 2011-10-13 プログラム可能メモリコントローラ

Country Status (5)

Country Link
US (1) US9465728B2 (ja)
JP (1) JP5787444B2 (ja)
KR (1) KR20120047203A (ja)
CN (1) CN102591783B (ja)
TW (1) TW201232255A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017524997A (ja) * 2014-05-06 2017-08-31 マイクロン テクノロジー, インク. 複数のメモリ動作を実施するための装置および方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2763328C (en) * 2012-01-06 2015-09-22 Microsoft Corporation Supporting different event models using a single input source
US9245496B2 (en) * 2012-12-21 2016-01-26 Qualcomm Incorporated Multi-mode memory access techniques for performing graphics processing unit-based memory transfer operations
US9934194B2 (en) * 2013-12-20 2018-04-03 Rambus Inc. Memory packet, data structure and hierarchy within a memory appliance for accessing memory
US20150261473A1 (en) * 2014-03-11 2015-09-17 Kabushiki Kaisha Toshiba Memory system and method of controlling memory system
KR101634312B1 (ko) 2014-04-04 2016-06-28 나상하 농약 교반용 워터젯 블로우 어셈블리
KR101789108B1 (ko) 2014-12-17 2017-10-23 나상하 농약 교반용 액체 기체 동시 분사형 워터젯 블로우 어셈블리
KR101767945B1 (ko) 2015-01-15 2017-08-14 나상하 농약교반기 일체형 농약통
US10554697B1 (en) * 2016-06-14 2020-02-04 Open Invention Network Llc Browser application selection and navigation operations in a co-browsing environment
CN107564563B (zh) * 2016-06-30 2020-06-09 华邦电子股份有限公司 存储器装置及其操作方法
CN109144907B (zh) * 2017-06-27 2021-08-10 北京忆芯科技有限公司 实现快速读取的方法及介质接口控制器
CN112214157B (zh) 2019-07-10 2023-11-03 慧荣科技股份有限公司 主机输出输入命令的执行装置及方法及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6223144B1 (en) * 1998-03-24 2001-04-24 Advanced Technology Materials, Inc. Method and apparatus for evaluating software programs for semiconductor circuits
JP2004110436A (ja) * 2002-09-18 2004-04-08 Koatsu Gas Kogyo Co Ltd メモリのリード/ライト制御回路、無接点メモリカード、リード/ライト装置及び無接点メモリカードのリード/ライトシステム
JP2007034581A (ja) * 2005-07-26 2007-02-08 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2008158991A (ja) * 2006-12-26 2008-07-10 Ricoh Co Ltd Nand型フラッシュメモリの制御システム

Family Cites Families (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4360916A (en) 1979-12-31 1982-11-23 Ncr Canada Ltd.-Ncr Canada Ltee. Method and apparatus for providing for two bits-error detection and correction
JPH04128946A (ja) 1990-09-20 1992-04-30 Fujitsu Ltd アドレス変換方式
US5343481A (en) 1991-01-07 1994-08-30 Kraft Clifford H BCH error-location polynomial decoder
US5734926A (en) 1992-07-15 1998-03-31 Advanced Hardware Architectures Direct memory access controller in an integrated circuit
US5533035A (en) 1993-06-16 1996-07-02 Hal Computer Systems, Inc. Error detection and correction method and apparatus
US5603001A (en) * 1994-05-09 1997-02-11 Kabushiki Kaisha Toshiba Semiconductor disk system having a plurality of flash memories
FR2737592B1 (fr) 1995-08-03 1997-10-17 Sgs Thomson Microelectronics Circuit hdlc a bus interne partage
US5787279A (en) 1995-12-22 1998-07-28 International Business Machines Corporation System and method for conformationally-flexible molecular recognition
US6119196A (en) 1997-06-30 2000-09-12 Sun Microsystems, Inc. System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates
US6000006A (en) 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US6604136B1 (en) 1998-06-27 2003-08-05 Intel Corporation Application programming interfaces and methods enabling a host to interface with a network processor
JP3015023B1 (ja) * 1999-03-18 2000-02-28 株式会社サガミ電子工業 押釦スイッチ
US7457897B1 (en) 2004-03-17 2008-11-25 Suoer Talent Electronics, Inc. PCI express-compatible controller and interface for flash memory
US7934074B2 (en) 1999-08-04 2011-04-26 Super Talent Electronics Flash module with plane-interleaved sequential writes to restricted-write flash chips
US6636940B1 (en) * 1999-12-02 2003-10-21 International Business Machines Corporation Task control for high level commands in disk drives
US6760743B1 (en) 2000-01-04 2004-07-06 International Business Machines Corporation Instruction memory system for multi-processor environment and disjoint tasks
US20060075395A1 (en) * 2004-10-01 2006-04-06 Lee Charles C Flash card system
US8108590B2 (en) 2000-01-06 2012-01-31 Super Talent Electronics, Inc. Multi-operation write aggregator using a page buffer and a scratch flash block in each of multiple channels of a large array of flash memory to reduce block wear
US6904458B1 (en) 2000-04-26 2005-06-07 Microsoft Corporation System and method for remote management
US6820142B2 (en) 2000-12-14 2004-11-16 International Business Machines Corporation Token based DMA
JP4722305B2 (ja) * 2001-02-27 2011-07-13 富士通セミコンダクター株式会社 メモリシステム
US20020161941A1 (en) 2001-04-30 2002-10-31 Sony Corporation And Electronics, Inc System and method for efficiently performing a data transfer operation
CN1122281C (zh) 2001-06-30 2003-09-24 深圳市朗科科技有限公司 一种多功能半导体存储装置
US7237016B1 (en) 2001-09-07 2007-06-26 Palau Acquisition Corporation (Delaware) Method and system to manage resource requests utilizing link-list queues within an arbiter associated with an interconnect device
US6772276B2 (en) 2002-01-04 2004-08-03 Intel Corporation Flash memory command abstraction
US7100103B2 (en) 2002-01-22 2006-08-29 Broadcom Corporation Efficient method for fast decoding of BCH binary codes
US6985977B2 (en) 2002-08-30 2006-01-10 National Instruments Corporation System and method for transferring data over a communication medium using double-buffering
JP2004110438A (ja) 2002-09-18 2004-04-08 Nec Corp 画像処理装置、画像処理方法及びプログラム
US8041878B2 (en) 2003-03-19 2011-10-18 Samsung Electronics Co., Ltd. Flash file system
US7685254B2 (en) 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
US7277978B2 (en) 2003-09-16 2007-10-02 Micron Technology, Inc. Runtime flash device detection and configuration for flash data management software
EP1528478A1 (en) 2003-11-03 2005-05-04 Sun Microsystems, Inc. Generalized addressing scheme for remote direct memory access enabled devices
JP2005202767A (ja) 2004-01-16 2005-07-28 Toshiba Corp プロセッサシステム、dma制御回路、dma制御方法、dmaコントローラの制御方法、画像処理方法および画像処理回路
US7979615B1 (en) 2004-03-08 2011-07-12 Pmc-Sierra Us, Inc. Apparatus for masked arbitration between masters and requestors and method for operating the same
US20050289253A1 (en) 2004-06-24 2005-12-29 Edirisooriya Samantha J Apparatus and method for a multi-function direct memory access core
US7392330B2 (en) 2004-07-02 2008-06-24 Mediatek Usa Inc. Memory access bandwidth allocation and latency control in a digital camera
US7689998B1 (en) 2004-07-13 2010-03-30 Microsoft Corporation Systems and methods that manage processing resources
WO2006026645A2 (en) 2004-08-30 2006-03-09 Silicon Storage Technology, Inc. Systems and methods for providing nonvolatile memory management in wireless phones
KR100621631B1 (ko) 2005-01-11 2006-09-13 삼성전자주식회사 반도체 디스크 제어 장치
US7380071B2 (en) 2005-03-29 2008-05-27 International Business Machines Corporation Snoop filtering system in a multiprocessor system
US7386683B2 (en) 2005-03-29 2008-06-10 International Business Machines Corporation Method and apparatus for filtering snoop requests in a point-to-point interconnect architecture
US20060236039A1 (en) 2005-04-19 2006-10-19 International Business Machines Corporation Method and apparatus for synchronizing shared data between components in a group
US7441054B2 (en) 2005-09-26 2008-10-21 Realtek Semiconductor Corp. Method of accessing internal memory of a processor and device thereof
WO2007072317A2 (en) 2005-12-21 2007-06-28 Nxp B.V. Non-volatile memory with block erasable locations
US7602655B2 (en) * 2006-01-12 2009-10-13 Mediatek Inc. Embedded system
US7454546B1 (en) 2006-01-27 2008-11-18 Xilinx, Inc. Architecture for dynamically reprogrammable arbitration using memory
JP4863749B2 (ja) 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
CN101051464A (zh) 2006-04-06 2007-10-10 株式会社东芝 说话人认证的注册和验证方法及装置
US7761636B2 (en) 2006-11-22 2010-07-20 Samsung Electronics Co., Ltd. Method and system for providing access arbitration for an integrated circuit in a wireless device
TW200823923A (en) 2006-11-23 2008-06-01 Genesys Logic Inc Caching method for address translation layer of flash memory
KR101490327B1 (ko) 2006-12-06 2015-02-05 퓨전-아이오, 인크. 뱅크 인터리브를 이용한 솔리드-스테이트 스토리지의 명령 관리 장치, 시스템 및 방법
US8151082B2 (en) 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
US9153337B2 (en) 2006-12-11 2015-10-06 Marvell World Trade Ltd. Fatigue management system and method for hybrid nonvolatile solid state memory system
US8166212B2 (en) 2007-06-26 2012-04-24 Xerox Corporation Predictive DMA data transfer
JP5087347B2 (ja) 2007-09-06 2012-12-05 株式会社日立製作所 半導体記憶装置及び半導体記憶装置の制御方法
US7877524B1 (en) 2007-11-23 2011-01-25 Pmc-Sierra Us, Inc. Logical address direct memory access with multiple concurrent physical ports and internal switching
TWI375888B (en) * 2008-05-16 2012-11-01 Phison Electronics Corp Method, apparatus and controller for managing memories
US8464021B2 (en) 2008-05-28 2013-06-11 Spansion Llc Address caching stored translation
US9208108B2 (en) 2008-12-19 2015-12-08 Nvidia Corporation Method and system for improved flash controller commands selection
US8694750B2 (en) 2008-12-19 2014-04-08 Nvidia Corporation Method and system for data structure management
US8732350B2 (en) 2008-12-19 2014-05-20 Nvidia Corporation Method and system for improving direct memory access offload
US8176295B2 (en) 2009-04-20 2012-05-08 Imation Corp. Logical-to-physical address translation for a removable data storage device
US8392806B2 (en) 2009-09-02 2013-03-05 Texas Instruments Incorporated Method, device, and digital circuitry for providing a closed-form solution to a scaled error locator polynomial used in BCH decoding
CN101694635B (zh) * 2009-10-22 2013-10-16 中兴通讯股份有限公司 基于虚拟磁带库备份的控制方法、系统及近线存储节点
CN101719053A (zh) * 2009-11-27 2010-06-02 曹莹莹 一种通过spi接口读取iic存储卡的方法
TWI438779B (zh) * 2009-12-02 2014-05-21 Mstar Semiconductor Inc 通用記憶體輸入輸出產生裝置及方法
US20110161553A1 (en) 2009-12-30 2011-06-30 Nvidia Corporation Memory device wear-leveling techniques
US9594675B2 (en) 2009-12-31 2017-03-14 Nvidia Corporation Virtualization of chip enables

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6223144B1 (en) * 1998-03-24 2001-04-24 Advanced Technology Materials, Inc. Method and apparatus for evaluating software programs for semiconductor circuits
JP2004110436A (ja) * 2002-09-18 2004-04-08 Koatsu Gas Kogyo Co Ltd メモリのリード/ライト制御回路、無接点メモリカード、リード/ライト装置及び無接点メモリカードのリード/ライトシステム
JP2007034581A (ja) * 2005-07-26 2007-02-08 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2008158991A (ja) * 2006-12-26 2008-07-10 Ricoh Co Ltd Nand型フラッシュメモリの制御システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017524997A (ja) * 2014-05-06 2017-08-31 マイクロン テクノロジー, インク. 複数のメモリ動作を実施するための装置および方法

Also Published As

Publication number Publication date
US9465728B2 (en) 2016-10-11
KR20120047203A (ko) 2012-05-11
JP5787444B2 (ja) 2015-09-30
US20120110242A1 (en) 2012-05-03
CN102591783A (zh) 2012-07-18
TW201232255A (en) 2012-08-01
CN102591783B (zh) 2015-08-26

Similar Documents

Publication Publication Date Title
JP5787444B2 (ja) プログラム可能メモリコントローラ
US9978430B2 (en) Memory devices providing a refresh request and memory controllers responsive to a refresh request
US20150100744A1 (en) Methods and apparatuses for requesting ready status information from a memory
TWI616884B (zh) 自記憶體讀取資料同時將寫入資料傳送至該記憶體之系統及方法
KR100847968B1 (ko) 컴퓨팅 시스템, 전자 통신 디바이스, 컴퓨팅 시스템 운영 방법 및 정보 처리 방법
US20080052448A1 (en) Flash memory interface device
MX2012005183A (es) Linea de espera de comandos para componente periferico.
TW201618096A (zh) 記憶裝置中支援增進式流通量
TWI564787B (zh) 響應第二讀取請求之第一資料相關技術
TWI534615B (zh) 串列周邊介面控制器、串列周邊介面快閃記憶體及其存取方法和存取控制方法
KR100564598B1 (ko) 동기식 플래쉬 메모리장치 및 이를 동작시키는 방법
TWI507883B (zh) 記憶卡存取裝置、其控制方法與記憶卡存取系統
CN116917874A (zh) 从单个端口的共享多端口存储器
CN106919343A (zh) 周边接口电路与周边存储器系统
TWI471731B (zh) 記憶體存取方法、記憶體存取控制方法、spi快閃記憶體裝置以及spi控制器
Li et al. A novel multiple dies parallel nand flash memory controller for high-speed data storage
JP2008282065A (ja) アドレス変換メモリアクセス機構を備える半導体装置
CN108536475B (zh) 完整编程命令处理方法与装置
TWI657450B (zh) 反及閘快閃記憶體的讀取方法
CN104240756B (zh) 控制装置及存取系统
JP2007026136A (ja) 半導体集積回路装置
JP2013196476A (ja) データ処理装置およびメモリ制御装置
JP2013200802A (ja) 半導体記憶装置
US20080133821A1 (en) DDR flash implementation with direct register access to legacy flash functions
TWI740092B (zh) 儲存裝置及巨集指令的執行方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130903

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140318

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140718

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140903

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20141226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150727

R150 Certificate of patent or registration of utility model

Ref document number: 5787444

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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