JP5947463B2 - インテリジェントファーメモリ帯域幅スケーリング - Google Patents

インテリジェントファーメモリ帯域幅スケーリング Download PDF

Info

Publication number
JP5947463B2
JP5947463B2 JP2015526535A JP2015526535A JP5947463B2 JP 5947463 B2 JP5947463 B2 JP 5947463B2 JP 2015526535 A JP2015526535 A JP 2015526535A JP 2015526535 A JP2015526535 A JP 2015526535A JP 5947463 B2 JP5947463 B2 JP 5947463B2
Authority
JP
Japan
Prior art keywords
memory
far
bandwidth
far memory
utilization
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
JP2015526535A
Other languages
English (en)
Other versions
JP2015524595A (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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JP2015524595A publication Critical patent/JP2015524595A/ja
Application granted granted Critical
Publication of JP5947463B2 publication Critical patent/JP5947463B2/ja
Expired - Fee Related 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
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0669Configuration or reconfiguration with decentralised address assignment
    • G06F12/0676Configuration or reconfiguration with decentralised address assignment the address being position dependent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0692Multiconfiguration, e.g. local and global addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/652Page size control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/16Memory access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Power Sources (AREA)

Description

本発明の実施形態は、メモリ帯域幅管理に関する。より詳しくは、本発明の実施形態は、マルチレベルメモリサブシステムにおける帯域幅を管理するための技術に関する。
コンピューティングシステム及びデバイスは、通常、システムのコンテンツのサブセットを不揮発性ディスクストレージに格納するダイナミックランダムアクセスメモリ(DRAM)からなる適当なメインメモリを含む。メインメモリは、ディスクストレージからのオペランドをメモリに格納し、回復するシステムプロセッサに対して、レイテンシを減少するとともに帯域幅を増加するために使用される。
ダブルインラインメモリモジュール(DIMM)のようなDRAMパッケージは、それらのメモリ密度の点から制限され、不揮発性メモリストレージに対して通常高価でもある。現在、システムメインメモリのサイズを増大するために、システムのコストと容量を増大する複数のDIMMを必要とする。システムの容量を増大することは、システムのフォームファクタに逆に影響する(例えば、DIMMメモリの大きな配列はモバイルクライアントスペースにおいて理想的ではない。
本発明の実施形態は、添付の図面に、例として示されるものであり、限定として示されるものではない。添付の図面において、同じ参照符号は同様の要素を指す。
2レベルシステムメインメモリシステムの一実施形態のブロック図である。 2LMアーキテクチャにおいて、メモリ帯域幅を管理する技術の一実施形態のブロック図である。 2LMメモリを有するシステムオンチップ(SoC)アーキテクチャの一実施形態のブロック図である。 2LMアーキテクチャにおけるメモリ帯域幅を管理するための技術の一実施形態のフロー図である。
以下の説明では、多くの特定の詳細が記載される。しかし、本発明の実施形態は、これらの特定の詳細なく実施し得る。他の例では、既知の回路、構造、及び技術は、説明の理解を不明瞭にしないよう詳細には示されていない。
帯域幅管理の技術が、本明細書に記載される。一実施形態では、帯域幅管理は、(例えばランタイムデータに加えて)システムディスクレベルストレージのキャッシュされたサブセットを含む2レベルのメモリ(代わりに、本明細書では「2LM」と称する)を備えるシステムメインメモリに向けられる。メインメモリは、例えばDRAMからなるより小さく且つより速いメモリである第1レベル(代わりに、本明細書では「ニアメモリ」と称する)、及び(ニアメモリに対して)より大きく且つより遅い揮発性メモリ(例えば、DRAM)又は不揮発性メモリストレージ(例えば、フラッシュメモリ)を含む第2レベル(代わりに、本明細書では「ファーメモリ」と称する)を含む。
一実施形態では、ファーメモリは、ホストオペレーティングシステム(OS)への「メインメモリ」として存在するとともに、ニアメモリは、OSにトランスペアレントなファーメモリに対するキャッシュであり、それにより、下記の実施形態の表現は、従来技術のメインメモリソリューションと同じように現れる。2レベルメモリの管理は、ホスト処理コアを介して実行される論理及びモジュールの組み合わせにより行われてもよい。ニアメモリは、効率的処理のために高帯域幅、低レイテンシ相互接続を介してホスト処理コアに連結されてもよい。ファーメモリは、(ニアメモリのそれと比較して)より低い帯域幅、より高いレイテンシ相互接続を介して処理コアに連結されてもよい。
図1は、2レベルシステムメインメモリシステムの一実施形態のブロック図である。システムメインメモリ100は、ランタイムデータストレージを提供し、プロセッサ110へのシステムディスクストレージメモリ(不図示)のコンテンツにアクセスする。幾つかの実施形態では、プロセッサ110は、メインメモリ100のコンテンツのサブセットを格納するキャッシュメモリを含でもよい。
一実施形態では、メインメモリ100は、ニアメモリ(例えば、DRAM)120として示されるあるレベルの揮発性メモリ及びファーメモリ130として示されるあるレベルのメモリを含む。ファーメモリは、揮発性又は不揮発性メモリのいずれかを備えてよい。この実施形態では、ニアメモリ120は、(すなわち、プロセッサ110がアクセスするには)より低い帯域幅及びより高いレイテンシを有し得るファーメモリ130の(すなわち、プロセッサ110がアクセスするには)低レイテンシ及び高帯域幅のキャッシュを供する。
一実施形態では、ニアメモリ120は、ニアメモリコントローラ(NMC)125により管理され、ファーメモリ130は、ファーメモリコントローラ(FMC)135により管理される。FMC135は、ファーメモリ130をホストオペレーティングシステム(OS)にメインメモリとして報告する(すなわち、ホストOSは、ファーメモリ130のサイズをシステムメインメモリ100のサイズとして認識する)。ホストOS及びシステムアプリケーションは、ファーメモリ130の「トランスペアレント」なキャッシュとして、ニアメモリ120の存在を「意識しない」。
一実施形態では、プロセッサ110は、さらに、2LMエンジンモジュール/論理140を含む。2LMエンジンは、2レベルメインメモリ100をサポートするハードウェア及び/又はマクロコードエクステンションを備え得る論理的構成である。例えば、2LMコントローラ140は、ファーメモリ130のすべてのアーキテクチャ的に可視の要素の状態を追跡するフルタグテーブルを保持してもよい。
例えば、プロセッサ110がメインメモリ100内の特定のデータセグメントにアクセスを試みると、2LMコントローラ140は、データセグメントがニアメモリ120に含まれるかどうか判断する。否の場合、2LMコントローラ140は、(キャッシュミスと同様に)ファーメモリ130内のデータセグメントをフェッチし、その次にデータセグメントをニアメモリ120に書き込む。ニアメモリ120は、ファーメモリ130の「キャッシュ」として振る舞うので、2LMエンジン140は、さらに、データプリフェッチ又は当該技術分野において既知の類似のキャッシュ効率プロセスを実行してもよい。
2LMコントローラ140は、ファーメモリ130の他の側面を管理してもよい。例えば、ファーメモリ130が不揮発性メモリを備える実施形態では、フラッシュ又は相変化メモリのような不揮発性メモリは、著しい読み取り/書き込みによるメモリセグメントの散逸を被る。従って、2LMコントローラ140は、システムソフトウェアにトランスペアレントな方法で、摩耗レベリング、不良ブロック回避等を含む機能を実行してもよい。例えば、摩耗レベリング論理を実行することは、比較的低い消去サイクルカウントを有するファーメモリ130において、クリーンなマップされていないセグメントのフリープールからセグメントを選択することを含んでもよい。
ニアメモリ120は、厳密比は例えば意図されたシステム使用に基づいて変わり得るが、ファーメモリ130よりサイズが小さい。この実施形態では、ファーメモリ130は、より密で、より安価な不揮発性メモリを備えるので、メインメモリ100は、安価に且つ効率的に増加されてもよく、システム内のDRAM(すなわち、ニアメモリ120)の量に独立である。
第1レベルのメモリ(ニアメモリ)に対して縮小されたサイズのDRAM及び第2レベル(ファーメモリ)に対する相変化メモリを有する2LMメモリサブシステムの電力及び性能モデリングは、ファーメモリへの帯域幅が所与の帯域幅閾値を超えると、2LMメモリサブシステムアーキテクチャの電力利点が失われることを示す。これは、ファーメモリトランザクションにおいて消費される電力が、同等の性能が得られるメモリサイズを用いて構成される1LMアーキテクチャと2LMアーキテクチャとの間の電力差を超えると、生じる。これら周辺のケースの影響を緩和するため、従来の1LMメモリアーキテクチャよりも優れた電力消費を一貫してもたらすために、ニアメモリサイズ及びファーメモリへの帯域幅を動的にスケールする技術が記載される。
幾つかの実施形態では、メタデータが、メモリ要求のソースを特定するすべてのメモリトランザクションに追加される。2LMコントローラは、各デバイスマーキング要求に対するニアメモリミスの記録を保持する。これは、2LMメモリコントローラに、過度のファーメモリ帯域幅の消費を引き起こしているいずれかのデバイスのソースを特定することを可能にする。
図2は、2LMアーキテクチャにおいてメモリ帯域幅を管理する技術の一実施形態のブロック図である。図2の例は、特定の数の処理コアを含む。しかし、任意の数の処理コアがサポートされてもよい。さらに、多くの異なるタイプのメモリを、ニア又はファーメモリとして使用するためにサポートすることもできる。
一実施形態では、システムは、2つの高電力コア(例えば、HPコア210、HPコア215)及び2つの低電力コア(LPコア220、LPコア225)を含む。コアは、コア電力管理ユニット230に連結される。コアからのメモリ要求は、2LMコントローラ250を用いて動作して、ニア及びファーメモリ(それぞれ260及び270)の両方へのメモリ要求を管理する2LM要求キュー240により集められる。一実施形態では、2LMコントローラ250は、コア電力管理ユニット230と通信して、ファーメモリ270への帯域幅の利用を管理するファーメモリ帯域幅モニタ255を含む。
一実施形態では、要求元のコア(例えば、210、215、220、225)は、メモリ要求を完了するためのレイテンシの増大を経験することが通知される。メモリレイテンシを増大することにより、要求元のコアは、性能が、ファーメモリに提供される帯域幅と対応するより高いレイテンシとにより良好に一致するより低い性能モードに置くことができる。
一実施形態では、ファーメモリ帯域幅モニタ255は、コア電力管理ユニット230からのメモリ要求(例えば、フラグ)内のメタデータを分析して、期待される読み取りレイテンシを判断する。これは、コア電力管理ユニット230に、要求するプロセスを高電力コア(例えば、210、215)からより低い電力コア(例えば、220、225)に移動するかどうか判断して、コアの動作をファーメモリの帯域幅及びレイテンシにより良好に一致させることを可能にする。
一実施形態では、デバイス識別子メタデータを使用して、ファーメモリ要求のスケジューリングが2LMコントローラ250により最適化され、過度のファーメモリトラフィックを発生する不良スレッド/デバイスの影響を最小化することができる。処理コアが過量のニアメモリミスを発生する可能性があるため、他の振る舞いの良いデバイス/スレッドが、ファーメモリコントローラにより遅延又は欠乏を受けるニアメモリミスを有することとなる。その結果、読み取りレイテンシが増大する。一実施形態では、スケジューリングは、より高い優先利用、例えば順序又は優先ルールを提供することにより最適化され、ニアメモリミスを発生しないデバイス/スレッドのためになる。
一実施形態では、メタデータを提供して、繰り返し可能なパターン化データを表すファーメモリ書き込みの圧縮を可能にする。例えば、相変化メモリを使用する2LMシステムにおいて、相変化メモリへの書き込みにおいて消費される電力は、DRAMへの書き込みより非常に高く、相変化メモリへの書き込みを最小化することから電力節減を実現することができる。
一実施形態では、データ常駐が繰り返されるメモリのセクタ及びページを保持することができる。フルデータパターンをセクタ/ページに書き込むより、むしろ、パターンタグ又は他のデータ構造体をファーメモリコントローラに追加して、書き込み操作のこれらのパターンを特定する。これは、ファーメモリコントローラに、フルセクタ/ページではなく、パターンのみを書き込むことを可能にする。これは、特に、オペレーティングシステム又はアプリケーションが既知の状態に構造を初期化している場合に有益である。
初期化状態は、たいてい、セクタとページの中に共通のデータ構造体のすべてに対して存在する繰り返し可能なパターンである。例えば、ファーメモリコントローラは、3つのダブルワード{00000001h, 00000012h, 0000000ch}に対してメモリ書き込みを受信することができる。一実施形態では、ファーメモリインターフェースヘッダは、書き込みが指定された回数(例えば、1000)繰り返される情報を含むことができる。ファーメモリコントローラは、繰り返されるデータを有するページとして、データが書き込まれるページにタグを付け、データパターンのみをファーメモリページに書き込むことができる。この例では、3000ダブルワードの書き込みが、ファーメモリへの単一の3ダブルワードの書き込みに圧縮することができる。
一実施形態では、ファーメモリ帯域幅モニタが、動作中のファーメモリ帯域幅を通知する2LMコントローラ内、例えば、処理コアによりアクセス可能なステータスレジスタ内に備わっている。ファーメモリ帯域幅が一定期間(例えば、時間平均帯域幅)に渡ってプログラム可能な閾値を超えると、割り込みを生成できるように追加の回路/論理を設けることができる。これは、オペレーティングシステムが、現在の操作に対して最善の方法で過度の帯域幅に反応できるようにする。
多くの場合、オペレーティングシステムは、振る舞いが不良であり、アンバランスな帯域幅の利用を発生しているアプリケーション/スレッドに関する追加の情報を有してもよい。これらのアプリケーション/スレッドは、オペレーティングシステムにより、再構成、縮小、又は終了することができる。ハードウェアサポートを設けて、オペレーティングシステムの相互伝達なしでこの機能をサポートすることもできる。一実施形態では、2LMコントローラは、過度のファーメモリ帯域幅の使用を検出し、通知された利用可能なファーメモリ帯域幅を減少して、オペレーティングシステム又は他のホストシステムエンティティにアプリケーション/スレッドの振る舞いを修正させることができる。
次の技術の1又は複数を利用して、オペレーティングシステムに通知されるファーメモリのサイズを減少して、ファーメモリ帯域幅の利用を動的にスケールすることができる。一実施形態では、チャネルを削除又は追加することができ、ニアメモリコンテンツを再マップして利用可能なチャネルをサポートすることができる。一実施形態では、ニアメモリDRAMは、縮小ページサイズに構成することができる。そして、ニアメモリは、新しいページサイズにマップすることができる。2LMコントローラは、ページエイジフィールドを実装することにより、ニアメモリの利用を抽出するために使用されるタグキャッシュを含むことができる。ページエイジ論理が、ニアメモリの利用が閾値(例えば、2分の1、3分の2、3分の1)を超えて下がることを検出すると、ニアメモリサイズは縮小及び再マップすることができる。
図3は、2LMメモリを有するシステムオンチップ(SoC)アーキテクチャの一実施形態のブロック図である。SoC300は、本明細書に記載するように、ファーメモリ帯域幅管理を利用し得るシステムの単なる一例である。SoC300は、モバイルコンピューティング/通信プラットフォーム、例えば、タブレットコンピューティングデバイス、モバイルフォン/スマートフォン、又は多の電子システムの一部であってよい。
SoC300は、任意の数の処理コアを含むことができる。図3の例は、4つの処理コア(例えば、305、315、325、335)及び2つの一般的な処理ユニット(例えば、345、355)を含む。処理コア及び処理ユニットは、当該技術分野で既知のあらゆるタイプの相互接続機構のバス310により相互接続される。1又は複数処理コア及び/又は1又は複数の一般処理ユニットが、入出力(I/O)デバイス390を用いて連結されてもよい。I/Oデバイス390は、タッチスクリーンデバイス、モニタ又は他のディスプレイ、任意のタイプのカーソル制御デバイス、カメラ、マイク等のうちの1又は複数を含むことができる。
バス310は、処理コア及び/又は処理ユニットを、少なくともメモリサブシステムにインターフェースを提供するために動作するシステムエージェント320に接続する。一実施形態では、システムエージェント320は、揮発性メモリ(例えば、DRAM370)及び不揮発性メモリ(例えば、380)へのメモリアクセスを制御するよう動作する2LMコントローラ330に連結される。一実施形態では、2LMコントローラ330は、少なくとも不揮発性メモリ380への帯域幅及び帯域幅の利用を監視するよう動作するファーメモリ帯域幅モニタ論理340を含む。
一実施形態では、2LMコントローラ330は、不揮発性メモリ380に対するメモリコントローラとして動作し、関係する不揮発性メモリ380にアクセスするファーメモリコントローラ360に連結される。一実施形態では、2LMコントローラ330は、揮発性メモリ370に対するメモリコントローラとして動作し、関係する揮発性メモリ370にアクセスするニアメモリコントローラ350にも連結される。
一実施形態では、ファーメモリ帯域幅モニタ340は、ニアメモリミスによるレイテンシの増大が予想できることを示すメモリ要求を生成する処理エージェント(例えば、305、315、325、335、345、355)にフィードバックを提供するよう動作する。これは、処理エージェントに、一般により低い電力消費状態であるより低い性能状態に入ることができるようにし、良好に、システムの性能と帯域幅のバランスをとる。
一実施形態では、ファーメモリ帯域幅の情報は、例えばステータスレジスタ、割り込み、メモリ通知、制御シグナリング等を含む1又は複数の機構を介して伝えられる。この情報は、より低い電力状態からより高い電力状態へ、同様により高い電力状態からより低い電力状態へ移行するために利用することができる。
図4は、2LMアーキテクチャにおいてメモリ帯域幅を管理する技術の一実施形態のフロー図である。一実施形態では、ファーメモリ帯域幅を管理することは、2レベルメモリ(2LM)システムにおいて少なくとも1つのファーメモリにおけるファーメモリ帯域幅の利用を監視することを含む(410)。利用可能なファーメモリ帯域幅の利用度は、監視したファーメモリ帯域幅の利用に基づいて動的に修正される(420)。少なくとも1つの処理コアの動作状態が、利用可能なファーメモリ帯域幅の修正に応じて動的に修正される(430)。
一実施形態では、ファーメモリは、相変化メモリを備える。代わりの実施形態では、他のタイプの不揮発性メモリが、例えば、ナノワイヤメモリ、強誘電体トランジスタ(FeTran)メモリ、スタック化相変化メモリ/相変化メモリ及びスイッチ(PCMS)を含むファーメモリを提供するために使用されることができる。一実施形態では、少なくとも1つの処理コアの動作状態を動的に修正することは、処理コアの電力状態を変えることを含む。
一実施形態では、システムは、さらに、過度の帯域幅を利用するスレッドの実行状態を選択的に修正する。一実施形態では、スレッドの実行状態を選択的に修正することは、オペレーティングシステムが、スレッドを終了することを含む。
一実施形態では、監視したファーメモリ帯域幅の利用に基づいて利用可能なファーメモリ帯域幅の利用度を修正することは、通知された利用可能なファーメモリ帯域幅を修正することを含む。一実施形態では、監視したファーメモリ帯域幅の利用に基づいて利用可能なファーメモリ帯域幅の利用度を修正することは、ファーメモリへ/からデータを転送するのに利用可能なチャネルの数を変えることを含む。
一実施形態では、監視したファーメモリ帯域幅の利用に基づいて利用可能なファーメモリ帯域幅の利用度を修正することは、ニアメモリのページサイズを修正することを含む。一実施形態では、ニアメモリ利用が予め選択されたニアメモリ利用閾値を超えるのに応じて、ニアメモリのページサイズを増大する。一実施形態では、ファーメモリに書き込まれるデータが圧縮される。
一実施形態では、システムは、異なる電力消費レベルを有する少なくとも2つの動作状態において動作可能な複数の処理コア、揮発性メモリデバイス、不揮発性メモリデバイス、および複数の処理コアに連結されたメモリシステムコントローラを含む。揮発性メモリデバイスおよび不揮発性メモリデバイス。メモリシステムコントローラは、揮発性メモリデバイス及び不揮発性メモリデバイスを2レベルメモリ(2LM)として管理する。揮発性メモリはニアメモリとして動作し、不揮発性メモリはファーメモリとして動作しファーメモリでのファーメモリ帯域幅の利用を監視して、監視したファーメモリ帯域幅の利用に基づいて利用可能なファーメモリ帯域幅の利用度を動的に修正する。少なくとも1つの処理コアの動作状態は、利用可能なファーメモリ帯域幅の修正に応じて動的に修正される。
一実施形態では、システムは、さらに、少なくとも1つの処理コアからのコマンドに応じて出力を提供するために連結されたタッチスクリーンインターフェースを含む。一実施形態では、ファーメモリは、相変化メモリを備える。一実施形態では、メモリシステムコントローラは、さらに、過度の帯域幅を利用するスレッドの実行状態を選択的に修正する。一実施形態では、スレッドの実行状態を選択的に修正するシステムは、スレッドを終了するオペレーティングシステムを備える。
一実施形態では、監視したファーメモリ帯域幅の利用に基づいて利用可能なファーメモリ帯域幅の利用度を修正することは、通知された利用可能なファーメモリ帯域幅を修正することを含む。一実施形態では、監視したファーメモリ帯域幅の利用に基づいて利用可能なファーメモリ帯域幅の利用度を修正することは、ファーメモリへ/からデータを転送するのに利用可能なチャネルの数を変えることを含む。一実施形態では、監視したファーメモリ帯域幅の利用に基づいて利用可能なファーメモリ帯域幅の利用度を修正することは、ニアメモリのページサイズを修正することを含む。一実施形態では、メモリシステムコントローラは、ニアメモリ利用が予め選択されたニアメモリ利用閾値を超えるのに応じて、ニアメモリのページサイズを増大する。一実施形態では、メモリシステムコントローラは、ファーメモリに書き込まれるデータを圧縮する。
一実施形態では、装置は、異なる電力消費レベルを有する少なくとも2つの動作状態において動作可能な複数の処理コア及び複数の処理コアと連結されたメモリシステムコントローラを含み、メモリシステムコントローラは、揮発性メモリデバイス及び不揮発性メモリデバイスとの通信を制御する。メモリシステムコントローラは、揮発性メモリデバイス及び不揮発性メモリデバイスを2レベルメモリ(2LM)として管理する。揮発性メモリはニアメモリとして動作し、不揮発性メモリはファーメモリとして動作しファーメモリでのファーメモリ帯域幅の利用を監視して、監視したファーメモリ帯域幅の利用に基づいて利用可能なファーメモリ帯域幅の利用度を動的に修正する。少なくとも1つの処理コアの動作状態が、利用可能なファーメモリ帯域幅の修正に応じて、動的に修正される。
一実施形態では、ファーメモリは、相変化メモリを備える。一実施形態では、メモリシステムコントローラは、さらに、過度の帯域幅を利用するスレッドの実行状態を選択的に修正する。一実施形態では、スレッドの実行状態を選択的に修正することは、オペレーティングシステムが、スレッドを終了することを含む。
一実施形態では、監視したファーメモリ帯域幅の利用に基づいて利用可能なファーメモリ帯域幅の利用度を修正することは、通知された利用可能なファーメモリ帯域幅を修正することを含む。一実施形態では、監視したファーメモリ帯域幅の利用に基づいて利用可能なファーメモリ帯域幅の利用度を修正することは、ファーメモリへ/からデータを転送するのに利用可能なチャネルの数を変えることを含む。一実施形態では、監視したファーメモリ帯域幅の利用に基づいて利用可能なファーメモリ帯域幅の利用度を修正することは、ニアメモリのページサイズを修正することを含む。一実施形態では、メモリシステムコントローラは、ニアメモリ利用が予め選択されたニアメモリ利用閾値を超えるのに応じて、ニアメモリのページサイズを増大する。一実施形態では、メモリシステムコントローラは、ファーメモリに書き込まれるデータを圧縮する。
明細書における「一実施形態」又は「実施形態」の参照は、実施形態との関係で記載された特定の特徴、構造、又は特性が、本発明の少なくとも1つの実施形態に含まれることを意味する。明細書内の様々な場所で現れるフレーズ「一実施形態では」は、必ずしも、すべて同じ実施形態を指すものではない。
本発明が幾つかの実施形態に関して説明されているが、当業者は、本発明が記載された実施形態に限定されるものでなく、しかし、添付の特許請求の範囲の精神及び範囲内で修正及び代替して実施することができることを認識するであろう。従って、説明は、限定の代わりに、例示とみなすべきである。

Claims (20)

  1. 2レベルメモリ(2LM)システムにおいて少なくとも1つのファーメモリでのファーメモリ帯域幅の利用を監視する段階と、
    監視したファーメモリ帯域幅の利用に基づいて利用可能なファーメモリ帯域幅の利用度を動的に修正する段階と、
    利用可能なファーメモリ帯域幅の修正に応じて、少なくとも1つの処理コアの動作状態を動的に修正する段階と、
    を備える方法。
  2. 前記ファーメモリは、相変化メモリを含む、請求項1に記載の方法。
  3. 少なくとも1つの処理コアの前記動作状態を動的に修正する段階は、前記処理コアの電力状態を変える段階を含む、請求項1または2に記載の方法。
  4. さらに、過度の帯域幅を利用するスレッドの実行状態を選択的に修正する段階を備える、請求項1から3のいずれか一項に記載の方法。
  5. スレッドの実行状態を選択的に修正する段階は、オペレーティングシステムが前記スレッドを終了する段階を含む、請求項4に記載の方法。
  6. 監視したファーメモリ帯域幅の利用に基づいて利用可能なファーメモリ帯域幅の利用度を修正する段階は、通知された利用可能なファーメモリ帯域幅を修正する段階を含む、請求項1から5のいずれか一項に記載の方法。
  7. 監視したファーメモリ帯域幅の利用に基づいて利用可能なファーメモリ帯域幅の利用度を修正する段階は、ファーメモリへ/からデータを転送するのに利用可能なチャネルの数を変える段階を含む、請求項1から6のいずれか一項に記載の方法。
  8. 監視したファーメモリ帯域幅の利用に基づいて利用可能なファーメモリ帯域幅の利用度を修正する段階は、ニアメモリのページサイズを修正する段階を含む、請求項1から7のいずれか一項に記載の方法。
  9. さらに、ニアメモリ利用が予め選択されたニアメモリ利用閾値を超えるのに応じて、前記ニアメモリの前記ページサイズを増大する段階を備える、請求項8に記載の方法。
  10. さらに、前記ファーメモリに書き込まれるデータを圧縮する段階を備える、請求項1から9のいずれか一項に記載の方法。
  11. タッチスクリーンインターフェースと、
    異なる電力消費レベルを有する少なくとも2つの動作状態において動作可能な複数の処理コアであり、前記複数の処理コアは少なくとも前記タッチスクリーンインターフェース上にグラフィカルユーザインタフェースを提供する、複数の処理コアと、
    揮発性メモリデバイスと、
    不揮発性メモリデバイスと、
    前記複数の処理コア、前記揮発性メモリデバイス、および前記不揮発性メモリデバイスと連結されたメモリシステムコントローラであり、前記メモリシステムコントローラは、前記揮発性メモリデバイスおよび前記不揮発性メモリデバイスを2レベルメモリ(2LM)として管理し、前記揮発性メモリデバイスはニアメモリとして動作し、前記不揮発性メモリデバイスはファーメモリとして動作し前記ファーメモリでのファーメモリ帯域幅の利用を監視して、監視したファーメモリ帯域幅の利用に基づいて利用可能なファーメモリ帯域幅の利用度を動的に修正する、メモリシステムコントローラと、を備え、
    利用可能なファーメモリ帯域幅の修正に応じて、少なくとも1つの処理コアの前記動作状態が動的に修正される、システム。
  12. 異なる電力消費レベルを有する少なくとも2つの動作状態において動作可能な複数の処理コアと、
    前記複数の処理コアと連結されたメモリシステムコントローラであり、前記メモリシステムコントローラは、揮発性メモリデバイスおよび不揮発性メモリデバイスとの通信を制御し、前記メモリシステムコントローラは、揮発性メモリデバイスおよび不揮発性メモリデバイスを2レベルメモリ(2LM)として管理し、前記揮発性メモリデバイスはニアメモリとして動作し、前記不揮発性メモリデバイスはファーメモリとして動作し前記ファーメモリでのファーメモリ帯域幅の利用を監視して、監視したファーメモリ帯域幅の利用に基づいて利用可能なファーメモリ帯域幅の利用度を動的に修正する、メモリシステムコントローラと、を備え、
    利用可能なファーメモリ帯域幅の修正に応じて、少なくとも1つの処理コアの前記動作状態が動的に修正される、装置。
  13. 前記ファーメモリは、相変化メモリを備える、請求項12に記載の装置。
  14. 前記メモリシステムコントローラは、さらに、過度の帯域幅を利用するスレッドの実行状態を選択的に修正する、請求項12または13に記載の装置。
  15. スレッドの実行状態を選択的に修正することは、オペレーティングシステムが前記スレッドを終了することを含む、請求項14に記載の装置。
  16. 監視したファーメモリ帯域幅の利用に基づいて利用可能なファーメモリ帯域幅の利用度を修正することは、通知された利用可能なファーメモリ帯域幅を修正することを含む、請求項12から15のいずれか一項に記載の装置。
  17. 監視したファーメモリ帯域幅の利用に基づいて利用可能なファーメモリ帯域幅の利用度を修正することは、ファーメモリへ/からデータを転送するのに利用可能なチャネルの数を変えることを含む、請求項12から16のいずれか一項に記載の装置。
  18. 監視したファーメモリ帯域幅の利用に基づいて利用可能なファーメモリ帯域幅の利用度を修正することは、ニアメモリのページサイズを修正することを含む、請求項12から17のいずれか一項に記載の装置。
  19. 前記メモリシステムコントローラは、さらに、ニアメモリ利用が予め選択されたニアメモリ利用閾値を超えるのに応じて、前記ニアメモリの前記ページサイズを増大する、請求項18に記載の装置。
  20. 前記メモリシステムコントローラは、前記ファーメモリに書き込まれるデータを圧縮する、請求項12から19のいずれか一項に記載の装置。
JP2015526535A 2012-09-29 2013-06-14 インテリジェントファーメモリ帯域幅スケーリング Expired - Fee Related JP5947463B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/631,938 2012-09-29
US13/631,938 US8830716B2 (en) 2012-09-29 2012-09-29 Intelligent far memory bandwith scaling
PCT/US2013/045983 WO2014051750A1 (en) 2012-09-29 2013-06-14 Intelligent far memory bandwidth scaling

Publications (2)

Publication Number Publication Date
JP2015524595A JP2015524595A (ja) 2015-08-24
JP5947463B2 true JP5947463B2 (ja) 2016-07-06

Family

ID=50385045

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015526535A Expired - Fee Related JP5947463B2 (ja) 2012-09-29 2013-06-14 インテリジェントファーメモリ帯域幅スケーリング

Country Status (5)

Country Link
US (1) US8830716B2 (ja)
EP (2) EP3361386B1 (ja)
JP (1) JP5947463B2 (ja)
CN (1) CN104541256B (ja)
WO (1) WO2014051750A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135195B2 (en) * 2012-07-24 2015-09-15 Freescasle Semiconductor, Inc. Prediction of electronic component behavior in bus-based systems
KR20140113117A (ko) * 2013-03-15 2014-09-24 삼성전자주식회사 비대칭 액세스 타임을 가진 반도체 메모리 장치
US10838862B2 (en) 2014-05-21 2020-11-17 Qualcomm Incorporated Memory controllers employing memory capacity compression, and related processor-based systems and methods
US10503661B2 (en) * 2014-05-21 2019-12-10 Qualcomm Incorporated Providing memory bandwidth compression using compressed memory controllers (CMCs) in a central processing unit (CPU)-based system
US9740621B2 (en) 2014-05-21 2017-08-22 Qualcomm Incorporated Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods
US10776378B2 (en) 2014-07-09 2020-09-15 Oracle Interntional Corporation System and method for use of immutable accessors with dynamic byte arrays
US9880938B2 (en) * 2014-09-26 2018-01-30 Oracle International Corporation System and method for compacting pseudo linear byte array
US20160224252A1 (en) * 2015-01-30 2016-08-04 Intel Corporation Hybrid memory architecture
WO2016144362A1 (en) 2015-03-12 2016-09-15 Hewlett Packard Enterprise Development Lp Memory device write based on mapping
US9583182B1 (en) * 2016-03-22 2017-02-28 Intel Corporation Multi-level memory management
US10156999B2 (en) 2016-03-28 2018-12-18 Seagate Technology Llc Dynamic bandwidth reporting for solid-state drives
US10191850B2 (en) 2016-03-31 2019-01-29 Qualcomm Incorporated Providing memory bandwidth compression using multiple last-level cache (LLC) lines in a central processing unit (CPU)-based system
US10176090B2 (en) 2016-09-15 2019-01-08 Qualcomm Incorporated Providing memory bandwidth compression using adaptive compression in central processing unit (CPU)-based systems
CN108304288B (zh) * 2018-01-26 2021-09-07 北京小米松果电子有限公司 获取带宽利用率的方法、装置及存储介质
CN113946485A (zh) * 2020-07-17 2022-01-18 华为技术有限公司 一种监控内存带宽的方法及装置
US20210073151A1 (en) * 2020-11-18 2021-03-11 Intel Corporation Page-based remote memory access using system memory interface network device
KR20230021199A (ko) 2021-08-04 2023-02-14 삼성전자주식회사 모드 설정을 지원하는 니어-메모리를 포함하는 전자 장치, 및 이의 동작 방법

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0512127A (ja) * 1991-06-28 1993-01-22 Nippon Steel Corp キヤツシユメモリ制御装置
US5905889A (en) * 1997-03-20 1999-05-18 International Business Machines Corporation Resource management system using next available integer from an integer pool and returning the integer thereto as the next available integer upon completion of use
US7065763B1 (en) * 2000-09-29 2006-06-20 Emc Corporation Method of reducing contention of a highly contended lock protecting multiple data items
US7596709B2 (en) * 2000-12-30 2009-09-29 Intel Corporation CPU power management based on utilization with lowest performance mode at the mid-utilization range
KR100527529B1 (ko) * 2002-12-13 2005-11-09 주식회사 하이닉스반도체 입출력 대역폭을 조절할 수 있는 메모리 장치
US7366864B2 (en) * 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths
US7975108B1 (en) * 2004-03-25 2011-07-05 Brian Holscher Request tracking data prefetcher apparatus
JP4982971B2 (ja) * 2004-09-29 2012-07-25 ソニー株式会社 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
KR100609621B1 (ko) * 2005-07-19 2006-08-08 삼성전자주식회사 메모리 블락별로 레이턴시 제어가 가능한 동기식 반도체메모리 장치
JP4262233B2 (ja) * 2005-10-18 2009-05-13 株式会社半導体理工学研究センター 半導体装置とその制御方法
US8074034B2 (en) * 2007-07-25 2011-12-06 Agiga Tech Inc. Hybrid nonvolatile ram
WO2009060567A1 (ja) * 2007-11-09 2009-05-14 Panasonic Corporation データ転送制御装置、データ転送装置、データ転送制御方法及び再構成回路を用いた半導体集積回路
US7966455B2 (en) * 2008-03-04 2011-06-21 International Business Machines Corporation Memory compression implementation in a multi-node server system with directly attached processor memory
US8689508B2 (en) * 2008-05-28 2014-04-08 Steeltec Supply, Inc. Extra strength backing stud having notched flanges
CN102112967B (zh) * 2008-08-04 2014-04-30 富士通株式会社 多处理器系统、多处理器系统用管理装置以及方法
US8214608B2 (en) * 2008-11-04 2012-07-03 Gridiron Systems, Inc. Behavioral monitoring of storage access patterns
US8214599B2 (en) * 2008-11-04 2012-07-03 Gridiron Systems, Inc. Storage device prefetch system using directed graph clusters
US8285961B2 (en) * 2008-11-13 2012-10-09 Grid Iron Systems, Inc. Dynamic performance virtualization for disk access
JP2010191895A (ja) * 2009-02-20 2010-09-02 Konica Minolta Business Technologies Inc 情報処理装置
US8402198B1 (en) * 2009-06-03 2013-03-19 Violin Memory, Inc. Mapping engine for a storage device
US8612809B2 (en) * 2009-12-31 2013-12-17 Intel Corporation Systems, methods, and apparatuses for stacked memory
JP5159817B2 (ja) * 2010-03-25 2013-03-13 株式会社東芝 メモリシステム
CN102906696A (zh) * 2010-03-26 2013-01-30 维尔图尔梅特里克斯公司 计算机系统的细粒性能资源管理
US8510518B2 (en) * 2010-06-22 2013-08-13 Advanced Micro Devices, Inc. Bandwidth adaptive memory compression
US9009384B2 (en) * 2010-08-17 2015-04-14 Microsoft Technology Licensing, Llc Virtual machine memory management in systems with asymmetric memory
US8612676B2 (en) * 2010-12-22 2013-12-17 Intel Corporation Two-level system main memory
US8788757B2 (en) * 2011-12-09 2014-07-22 International Business Machines Corporation Dynamic inclusive policy in a hybrid cache hierarchy using hit rate
US9141560B2 (en) * 2012-06-29 2015-09-22 Intel Corporation Multi-level storage apparatus

Also Published As

Publication number Publication date
CN104541256B (zh) 2017-05-17
EP2901293A1 (en) 2015-08-05
EP3361386A1 (en) 2018-08-15
JP2015524595A (ja) 2015-08-24
EP2901293B1 (en) 2018-02-21
WO2014051750A1 (en) 2014-04-03
CN104541256A (zh) 2015-04-22
US20140092678A1 (en) 2014-04-03
US8830716B2 (en) 2014-09-09
EP2901293A4 (en) 2016-07-27
EP3361386B1 (en) 2019-08-21

Similar Documents

Publication Publication Date Title
JP5947463B2 (ja) インテリジェントファーメモリ帯域幅スケーリング
US9921751B2 (en) Methods and systems for mapping a peripheral function onto a legacy memory interface
US20200226080A1 (en) Solid state drive with external software execution to effect internal solid-state drive operations
CN107077303B (zh) 分配和配置持久存储器
US20180024932A1 (en) Techniques for memory access prefetching using workload data
TWI518686B (zh) 基於追蹤使用統計之產生遠記憶體存取信號的技術
CN107608910B (zh) 用于实现具有不同操作模式的多级存储器分级结构的设备和方法
US9727267B1 (en) Power management and monitoring for storage devices
CN103946826A (zh) 用于在公共存储器通道上实现多级存储器层级的设备和方法
CN104115129A (zh) 用于从处理器到存储器子系统智能刷新数据的系统和方法
JP2016523411A (ja) ハイブリッドメモリデバイス
US20170160987A1 (en) Multilevel main memory indirection
CN104126181A (zh) 作为随机存取存储器的非易失性半导体存储装置的系统存取的薄变换
US10635337B2 (en) Dynamic configuration of compressed virtual memory
US10095432B2 (en) Power management and monitoring for storage devices
US20210224213A1 (en) Techniques for near data acceleration for a multi-core architecture
Mutlu et al. The main memory system: Challenges and opportunities
Zhang et al. Pm3: Power modeling and power management for processing-in-memory
Zhang et al. Fuse: Fusing stt-mram into gpus to alleviate off-chip memory access overheads
US11733763B2 (en) Intelligent low power modes for deep learning accelerator and random access memory
US11422702B2 (en) Managing utilization of storage class memory (SCM) resources
US20230176966A1 (en) Methods and apparatus for persistent data structures
US20220171551A1 (en) Available memory optimization to manage multiple memory channels
Sudan Data placement for efficient main memory access
US20170153994A1 (en) Mass storage region with ram-disk access and dma access

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160310

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160502

R155 Notification before disposition of declining of application

Free format text: JAPANESE INTERMEDIATE CODE: R155

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160602

R150 Certificate of patent or registration of utility model

Ref document number: 5947463

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

LAPS Cancellation because of no payment of annual fees