JP7340326B2 - メンテナンス動作の実行 - Google Patents
メンテナンス動作の実行 Download PDFInfo
- Publication number
- JP7340326B2 JP7340326B2 JP2018213689A JP2018213689A JP7340326B2 JP 7340326 B2 JP7340326 B2 JP 7340326B2 JP 2018213689 A JP2018213689 A JP 2018213689A JP 2018213689 A JP2018213689 A JP 2018213689A JP 7340326 B2 JP7340326 B2 JP 7340326B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- maintenance
- data
- response
- queue
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1063—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
- G06F12/0859—Overlapped cache accessing, e.g. pipeline with reload from main memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/151—Emulated environment, e.g. virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/681—Multi-level TLB, e.g. microTLB and main TLB
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/683—Invalidation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/684—TLB miss handling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Description
図2は、いくつかの実施形態にかかる装置200の例を示している。この装置は、ルックアップ動作およびメンテナンス動作(「要求」と総称する)を制御回路240に提供する1組の入力ポート210を備える。入力アドレスを有するルックアップ動作(ルックアップ要求)は、例えば変換ルックアサイドバッファ(TLB:Translation Lookaside Buffer)の形態をとることができるルックアップ回路230に渡される。いくつかの実施形態では、TLBは、DRAMを介して提供されることができる。メンテナンス動作(メンテナンス要求)は、メンテナンスキュー220に渡される。そのような装置200は、記憶装置システムにおける非同期メンテナンスを提供するために使用されることができ、リクエスタから、入力アドレスを含むルックアップ動作、およびメンテナンス動作のうちのいずれか1つを受信する入力ポート210と、少なくとも1つのメンテナンス動作のメンテナンスキューを記憶するメンテナンスキュー回路220と、入力アドレスと出力アドレスとの間の変換を出力アドレス空間に記憶するアドレス記憶装置230とを備え、入力アドレスの受信に応答して、出力アドレスがメンテナンスキューに応じて提供され、メンテナンス動作の記憶に応答して、メンテナンスキュー回路がリクエスタに肯定応答を送信させる装置200の例として提供される。
図4は、選択されたメンテナンス動作が、アドレス記憶装置230の少なくとも一部をスキャンすることと、満たされた条件に応答して動作を実行することとを備える例を示しており、スキャンの間、メンテナンス回路250は、さらなる条件が満たされたことに応答してさらなる動作を実行し、さらなる動作およびさらなる条件は、メンテナンスキューから実行されるさらなるメンテナンス動作に対応する。
図5は、メンテナンスキュー内のオーバーラップメンテナンス動作とオーバーラップするアドレス記憶装置230のエントリに関する入力アドレスに応答して、装置200がオーバーラップメンテナンス動作を優先するように適合された例を示している。
図6のフローチャートは、メンテナンスキューが満杯になったときにメンテナンス動作を受信したことに応答して、メンテナンス回路が選択されたメンテナンス動作を実行するように適合された例に関する。特に、図6は、実行される時間が最も短いメンテナンスキューにおけるメンテナンス動作に選択が基づいている例に関する。
図7はまた、1つ以上の条件に基づいてメンテナンスキュー内の複数のエントリを組み合わせる組み合わせ回路260の例を示している。例えば、いくつかの実施形態では、組み合わせ回路260は、アドレス記憶装置230内の隣接するアドレスを組み合わせる。例えば、アドレスが隣接する同じASIDおよびVMIDに関連するエントリである。このようにして、メンテナンス動作のキューは、隣接するアドレスに関連する複数のエントリをアドレスの範囲に関する単一のエントリに置き換えることによって圧縮されることができる。
図8は、新たな変換のための少なくとも1つのフィル動作をアドレス記憶装置230に記憶するフィルキュー回路800の例を示しており、入力ポート210は、フィル動作を受信するように適合され、メンテナンスキュー内のオーバーラップメンテナンス動作と少なくとも一部オーバーラップするフィル動作に応答して、フィルキュー回路800は、フィル動作を記憶し、フィル動作がメンテナンス動作と完全にオーバーラップする場合、メンテナンス動作は、メンテナンスキューから除去され、そうでなければオーバーラップメンテナンス動作の優先度が高くなる。
図11は、選択されたメンテナンス動作が、アドレス記憶装置230の少なくとも一部をスキャンし、満たされた条件に応答して動作を実行することを備える例を提供し、入力アドレスに関連するフィル動作を受信したことに応答して、フィル動作は、入力アドレスが選択されたメンテナンス動作に関して既にスキャンされたアドレス記憶装置230の一部に対応するときに実行される。
図12は、プロセッサ要素1220が入力アドレスを入力ポート1210に提供するいくつかの実施形態にかかる装置1200を示している。入力アドレスは、入力アドレスと出力アドレスとの間の変換を出力アドレス空間に記憶する変換ルックアサイドバッファ(TLB)1230に提供される。出力アドレスポート1240は、そのアドレスにおいてメモリ1290にアクセスするために、出力アドレス(または出力アドレスのさらなる変換)が出力されることを可能にする。同時に、プロセッサ要素1220は、入力データポート1250を介してデータを受信することができる。いくつかの実施形態(図12に示すものなど)では、入力データポートは、メモリ1290がアクセスされるとメモリ1290内のその位置におけるデータが装置に返されるようにメモリ1290から装置1200へのものである。このデータは、例えばDRAMによって裏付けられたキャッシュ1260に記憶されることができる。最後に、データが出力される出力データポート1270がある。図12に示すものなどのいくつかの実施形態では、データ出力ポートは、装置1200がデータをプロセッサ要素に出力し返すことを可能にするために提供される。制御回路1280は、TLB1230および1260を制御するために使用される。さらにまた、キャッシュ1260は、データを記憶するために使用されるが、いくつかの変換を記憶するためにも使用される。このようにして、TLB1230は、例えば、TLB1230が変換を記憶することができないときに、変換を記憶するために記憶空間をキャッシュ1260から「盗む」。入力データポート1250および出力データポートが、それらのやり方で配置されるという義務はないことに留意されたい。例えば、データは、プロセッサ要素1220から受信され、メモリ1290に出力されることができる。実際には、データがメモリ1290から読み出され且つメモリに書き込まれる結果、データは双方向に受信および出力されることができる。さらにまた、様々なポート1210、1240、1250、1270は、入力ポート1210、1250をともにおよび出力ポート1240、1270をともに組み合わせることによって、またはプロセッサポート1210、1270をともにおよびメモリポート1240、1250をともに組み合わせることによって、または4つのポート1210、1240、1250、1270をともに組み合わせることによって-組み合わせることができる。
図15は、いくつかの実施形態にかかるポリシーの例を示している。特に、図15は、ポリシーが複数の位置のそれぞれに対してデータと比較して変換を記憶するためのプリファレンスを示す例を示している。ポリシーは、フローチャート1500の形態で示される。ステップ1510において、新たな変換が受信される。ステップ1520において、記憶位置wが変換に基づいて判定される。これは、変換の対象である入力アドレスまたは出力アドレスに対してモジュラス演算を実行するなど、ハッシュ演算を実行することに基づいて計算されることができる。ステップ1530において、現在のアドレスミス率が記憶位置wの値xよりも大きいかどうかが判定される1560。図15の例では、wのxの値は、1000のうち5である。したがって、この場合のアドレスミス率が、プロセッサ回路1220によって実行される1000の命令ごとに5よりも大きい場合、プロセスは、ステップ1540に進み、変換が(例えばデータ記憶装置1260に)記憶される。そうでなければ、ステップ1550において、データミス率が記憶位置wの値yよりも大きいかどうかが判定される1570。この場合、値は、1000のうち30に設定される。したがって、記憶装置ミス率が、プロセッサ回路1220によって実行される1000の命令ごとに30よりも大きい場合、プロセスは、ステップ1540に進み、変換が(例えばデータ記憶装置1260に)記憶される。あるいは、プロセスは、ステップ1555に進み、アドレス記憶装置アクセス速度が記憶位置wの値zよりも大きいかどうかが判定される1580。この場合、値は、4のうち3に設定される。したがって、アドレス記憶装置に対するアクセス速度がプロセッサ回路1220によって実行される4つの命令のうち3つよりも大きい場合、プロセスは、ステップ1540に進み、変換がデータ記憶装置1260に記憶される。あるいは、プロセスは、1510に戻る。換言すれば、変換は記憶されない。この例では、変換は、3つの条件のいずれかが満たされた結果としてデータ記憶装置に記憶される。第1の点は、アドレスミス率が第1の変数xよりも大きいことである。この例では、xの値は、プロセッサ回路1220によって実行される1000の命令につき5として与えられる。しかしながら、他のシステムでは、この値は、例えば実行される1000の命令あたり10回のミスとすることができる。高いアドレス記憶装置ミス率は、システム内で発生する非効率性を示すことができる。したがって、アドレス記憶装置ミス率がある点に達すると、システムの効率を上げるために変換を記憶することがより望ましいものとなる。変換が記憶されるために満たすことができる第2の条件は、データミス率が変数yを上回ることである。この例では、記憶位置wの変数yは、実行される1000の命令あたり30に等しい。しかしながら、他のシステムでは、これは、1000命令あたり40回のミスに等しくすることができる。データ記憶装置に関する多数のミスは、実行される命令にデータローカリティが乏しいことを示す。したがって、データの記憶装置に通常使用される空間は、変換を記憶する代わりに使用される方がよい場合がある。したがって、データ記憶装置速度がある点に達すると、変換を記憶することがより望ましいことがある。変換が記憶されるために満たすことができる第3の条件は、アドレス記憶装置アクセス速度が変数zよりも上であることである。この例では、記憶位置wの変数zは、実行される4つの命令あたり3に等しい。アクセス速度が大きいことは、記憶装置の1つに競合が生じる可能性があることを示しており、したがって、代わりにデータ記憶装置にデータを記憶することによって作業負荷を分散することが望ましい可能性がある。
図17Aは、アドレス記憶装置1230における入力アドレスのミスに応答して、読み出し要求が変換のためにデータ記憶装置1260に送信される例を示している。特に、処理回路1220からTLB1230において要求が受信される。要求は、対応する出力アドレスが所望される入力アドレスを含む。そのような変換がTLB1230において見つかると、「ヒット」が発生し、出力アドレスが処理回路1220に転送される。そうでなければ、「ミス」が発生し、いくつかの実施形態ではラストレベルキャッシュ(LLC)であるキャッシュ1260に要求が転送される。ここで、TLB1230によって使用されるために「盗まれた」キャッシュ1260の一部は、入力アドレスのために検索される。「ヒット」が発生した場合、要求された出力アドレスは、処理回路1220に転送される。さもなければ、「ミス」が発生し、キャッシュ1260がLLCであるため、これは、ページウォークが実行されるのをもたらす。TLB1230およびキャッシュ1260が単一のメモリである例では、転送は、同じ回路内で局所的に行われてもよいことに留意されたい。しかしながら、そのような状況では、TLB1230によって使用される第1の記憶位置での検索とキャッシュ1260によって主に使用される第2の位置での検索との2つの検索がなおも実行されてもよい。あるいは、単一の検索が実行されてもよい。これらの例のそれぞれにおいて、検索が失敗した場合、処理回路1220によってページウォークが実行される。
図19は、1つ以上の処理要素(PE:Processing Element)1900、相互接続回路1910、ダイナミックランダムアクセスメモリ(DRAM)1920およびDRAMコントローラ1930を備えるデータ処理装置の他の例を概略的に示している。これは、物理メモリアドレスにしたがってアクセス可能なメモリ1920、メモリにアクセスするための仮想メモリアドレスを生成するための1つ以上の処理要素1900、および1つ以上の処理要素によって生成された初期メモリアドレスの、メモリに提供された物理メモリアドレスへの変換を提供するメモリアドレス変換装置1915を備えるデータ処理装置の例を提供する。いくつかの例では、ページ属性、読み取り、書き込みおよび実行許可などの属性はまた、変換プロセスの一部として取得され、出力メモリアドレスを備えることもできる。例示的な構成では、1つ以上の処理要素1900は、それぞれ、その処理要素によって生成された初期メモリアドレスの、メモリに提供された物理メモリアドレスへの変換のセットを記憶する各変換ルックアサイドバッファ1905を備え、変換ルックアサイドバッファは、メモリアドレス変換装置から変換ルックアサイドバッファによって記憶されていない変換を要求するように構成されている。
物理メモリアドレスにしたがってアクセス可能なメモリ1920、
メモリにアクセスするための仮想メモリアドレスを生成するための1つ以上の処理要素1900、および
1つ以上の処理要素によって生成された仮想メモリアドレスをメモリに提供された物理メモリアドレスに変換するメモリアドレス変換装置1915。
しかしながら、DRAMバックTLBアクセス回路2010によるヒットがある場合、オプションでページテーブルウォークを終了することができる(ステージ2210において概略的に示す)。これは必須ではなく、実際にはページテーブルウォークを完了させることができ、その場合、同じ変換データがページテーブルからも取得されることになる。しかしながら、TLBヒットの場合に2210においてページテーブルウォークを終了することにより、(もはや行われないページテーブルウォークの残りの部分に関して)節電が潜在的に達成されることができる。
初期メモリアドレス空間は、仮想メモリアドレス空間であり、出力メモリアドレス空間は、物理メモリアドレス空間である;または、
初期メモリアドレス空間は、中間物理メモリアドレス空間であり、出力メモリアドレス空間は、物理メモリアドレス空間である;または、
初期メモリアドレス空間は、仮想メモリアドレス空間であり、出力メモリアドレス空間は、中間物理メモリアドレス空間である。
ここで図24を参照すると、いくつかの例では、制御回路2000は、入力初期メモリアドレスが現在変換データバッファによって保持されているかどうかの予測を導出するように構成されている。この予測が導出されて使用されることができる方法が以下に説明される。
・変換を要求する仮想マシンを示すカテゴリ(例えば、変換要求の一部を形成する仮想マシン識別子によって示される);
・複数の初期アドレス空間のうちの1つの初期アドレス空間を示すカテゴリ(例えば、変換要求の一部を形成するアドレス空間識別子によって示される);
・変換を要求するプロセッサのプログラムカウンタを示すカテゴリ(例えば、変換要求の一部を形成するプログラムカウンタ値によって示される);および、
・変換が要求される初期アドレスを示すカテゴリ。
図25は、記憶位置のアレイを提供するためのダイナミックランダムアクセスメモリの例を提供する図19のDRAM1920の例示的な構成の態様を概略的に示している。
初期メモリアドレス空間内の初期メモリアドレスと出力アドレス空間内の対応する出力メモリアドレスとの間のアドレス変換を定義する変換データを検索するためにページテーブルをアクセスすること(ステップ3100)と、
初期アドレス空間のサブセットに対して、行および列に配置された記憶位置のアレイを有する変換データバッファに、変換データの1つ以上のインスタンスを記憶すること(ステップ3110)と、
アレイの行のそれぞれの部分からの情報をそれぞれ記憶する複数のエントリをバッファリングすること(ステップ3120)と、
少なくとも初期メモリアドレスに応じたキー値に応答して、行バッファの少なくとも1つのキーエントリ(例えば、少なくとも2つのキーエントリ)のそれぞれに記憶された情報とキー値を比較すること(ステップ3130)とを備え、各キーエントリが、対応する出力メモリアドレスの少なくとも1つの表現を記憶するための関連値エントリを有する、概要方法を表す概略的なフローチャートである。
どの少なくとも1つのキーエントリが、もしあれば、キー値に一致する情報を記憶するマッチングキーエントリであるかを識別し(ステップ3150)、
マッチングキーエントリがある場合、少なくともマッチングキーエントリに関連する値エントリ内の出力メモリアドレスの表現を出力する(ステップ3160)。
Claims (14)
- リクエスタから、入力アドレスを含むルックアップ動作、およびメンテナンス動作のうちのいずれか1つを受信する入力ポートと、
少なくとも1つのメンテナンス動作のメンテナンスキューを記憶するメンテナンスキュー回路と、
前記入力アドレスと出力アドレスとの間の変換を出力アドレス空間に記憶するアドレス記憶装置と、
選択されたメンテナンス動作を前記メンテナンスキューから実行させるメンテナンス回路と
を備え、
前記入力アドレスの受信に応答して、前記出力アドレスが前記メンテナンスキューに応じて提供され、
前記メンテナンス動作の記憶に応答して、前記メンテナンスキュー回路が、前記メンテナンス動作が実行される前に、前記リクエスタに肯定応答を送信させ、
前記選択されたメンテナンス動作が、前記アドレス記憶装置の少なくとも一部をスキャンし、条件が満たされたことに応答して動作を実行することを備え、
入力アドレスに関連するフィル動作を受信したことに応答して、前記入力アドレスが前記選択されたメンテナンス動作に関して既にスキャンされた前記アドレス記憶装置の一部に対応するときに、前記フィル動作が実行される、
装置。 - 前記入力アドレスの受信に対する応答における前記入力アドレスとの競合について前記メンテナンスキューをスキャンするための制御回路
を備え、
競合がある場合にはミスを返し、そうでない場合には前記出力アドレスを提供することによって、前記メンテナンスキューに依存して前記出力アドレスが提供される、
請求項1に記載の装置。 - 前記メンテナンス動作が前記アドレス記憶装置内の複数の変換にアクセスする、
請求項1または2に記載の装置。 - 前記メンテナンス動作が前記アドレス記憶装置内の変換に順次アクセスする、
請求項1から3のいずれか1項に記載の装置。 - 前記アドレス記憶装置が、メモリマッピングされるように適合されており、
前記メンテナンス動作が、非一時的アクセスを使用して前記アドレス記憶装置内の変換にアクセスする、
請求項3または4に記載の装置。 - 前記メンテナンス動作が無効化動作である、
請求項1から5のいずれか1項に記載の装置。 - 前記無効化動作が、仮想アドレス、仮想アドレスの範囲、アドレス空間識別子、仮想マシン識別子、中間物理アドレス、および物理アドレスのうちの1つ以上に基づいて、前記アドレス記憶装置における1つ以上の変換を無効にする、
請求項6に記載の装置。 - 前記メンテナンスキューが満杯になったときにメンテナンス動作を受信したことに応答して、前記メンテナンス回路が、前記選択されたメンテナンス動作が実行されるように適合される、
請求項1に記載の装置。 - 前記メンテナンスキューにおける、実行される時間が最も短いメンテナンス動作に、前記選択が基づいている、
請求項8に記載の装置。 - 前記メンテナンスキュー内のオーバーラップメンテナンス動作とオーバーラップする前記アドレス記憶装置のエントリに関する入力アドレスに応答して、前記装置が前記オーバーラップメンテナンス動作を優先するように適合されている、
請求項1に記載の装置。 - 前記選択されたメンテナンス動作が、前記アドレス記憶装置の少なくとも一部をスキャンし、条件が満たされたことに応答して動作を実行することを備え、
前記入力アドレスの受信に応答して、前記入力アドレスが前記選択されたメンテナンス動作に関して既にスキャンされた前記アドレス記憶装置の一部にあるときに、前記出力アドレスが提供される、
請求項1に記載の装置。 - 1つ以上の条件に基づいて前記メンテナンスキューにおける複数のエントリを組み合わせるための組み合わせ回路
を備える、請求項1から11のいずれか1項に記載の装置。 - プロセッサによって実行される方法であって、
リクエスタから、入力アドレスを含むルックアップ動作、およびメンテナンス動作のうちのいずれか1つを受信することと、
少なくとも1つのメンテナンス動作のメンテナンスキューを記憶することと、
前記入力アドレスと出力アドレスとの間の変換を出力アドレス空間に記憶することと
選択されたメンテナンス動作を前記メンテナンスキューから実行させることと、
を備え、
前記入力アドレスの受信に応答して、前記出力アドレスが前記メンテナンスキューに応じて提供され、
前記メンテナンス動作の記憶に応答して、前記メンテナンス動作が実行される前に、前記リクエスタに肯定応答を送信させ、
前記選択されたメンテナンス動作が、前記出力アドレス空間の少なくとも一部をスキャンし、条件が満たされたことに応答して動作を実行することを備え、
入力アドレスに関連するフィル動作を受信したことに応答して、前記入力アドレスが前記選択されたメンテナンス動作に関して既にスキャンされた前記出力アドレス空間の一部に対応するときに、前記フィル動作が実行される、
方法。 - リクエスタから、入力アドレスを含むルックアップ動作、およびメンテナンス動作のうちのいずれか1つを受信する手段と、
少なくとも1つのメンテナンス動作のメンテナンスキューを記憶する手段と、
前記入力アドレスと出力アドレスとの間の変換を出力アドレス空間に記憶する手段と
選択されたメンテナンス動作を前記メンテナンスキューから実行させるメンテナンス手段と、
を備え、
前記入力アドレスの受信に応答して、前記出力アドレスが前記メンテナンスキューに応じて提供され、
前記メンテナンス動作の記憶に応答して、前記メンテナンス動作が実行される前に、前記リクエスタに肯定応答を送信させ、
前記選択されたメンテナンス動作が、前記記憶する手段の少なくとも一部をスキャンし、条件が満たされたことに応答して動作を実行することを備え、
入力アドレスに関連するフィル動作を受信したことに応答して、前記入力アドレスが前記選択されたメンテナンス動作に関して既にスキャンされた前記記憶する手段の一部に対応するときに、前記フィル動作が実行される、
装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GR20170100524 | 2017-11-22 | ||
GR20170100524 | 2017-11-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019096309A JP2019096309A (ja) | 2019-06-20 |
JP7340326B2 true JP7340326B2 (ja) | 2023-09-07 |
Family
ID=66533926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018213689A Active JP7340326B2 (ja) | 2017-11-22 | 2018-11-14 | メンテナンス動作の実行 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10929308B2 (ja) |
JP (1) | JP7340326B2 (ja) |
CN (1) | CN110059027A (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10866904B2 (en) * | 2017-11-22 | 2020-12-15 | Arm Limited | Data storage for multiple data types |
US11157202B2 (en) * | 2018-12-28 | 2021-10-26 | Micron Technology, Inc. | Memory management utilizing buffer reset commands |
US10725928B1 (en) | 2019-01-09 | 2020-07-28 | Apple Inc. | Translation lookaside buffer invalidation by range |
US11422946B2 (en) | 2020-08-31 | 2022-08-23 | Apple Inc. | Translation lookaside buffer striping for efficient invalidation operations |
US11615033B2 (en) | 2020-09-09 | 2023-03-28 | Apple Inc. | Reducing translation lookaside buffer searches for splintered pages |
CN114385516A (zh) * | 2020-10-21 | 2022-04-22 | 澜起科技股份有限公司 | 计算系统以及用于共享不同计算设备的设备存储器的方法 |
US11500548B2 (en) | 2021-03-04 | 2022-11-15 | Micron Technology, Inc. | Memory physical presence security identification |
US20230281121A1 (en) * | 2022-03-01 | 2023-09-07 | International Business Machines Corporation | Increased garbage collection granularity for non-volatile memory |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008512785A (ja) | 2004-09-10 | 2008-04-24 | カビウム・ネットワークス | マルチコアプロセッサの格納命令の順序づけ |
JP2009140479A (ja) | 2007-12-06 | 2009-06-25 | Arm Ltd | ハードウエアアクセラレータ内のデータ値のクリーニングの制御 |
US20140115267A1 (en) | 2012-10-24 | 2014-04-24 | Texas Instruments Incorporated | Hazard Detection and Elimination for Coherent Endpoint Allowing Out-of-Order Execution |
US20160188690A1 (en) | 2013-03-15 | 2016-06-30 | International Business Machines Corporation | Differentiated secondary index maintenance in log structured nosql data stores |
JP2016534431A (ja) | 2013-10-25 | 2016-11-04 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | ロード/記憶ユニット及びデータキャッシュの順序付け及びバンド幅の向上 |
JP2017517040A (ja) | 2014-02-21 | 2017-06-22 | エイアールエム リミテッド | 格納されたアドレス変換の無効化 |
Family Cites Families (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57164485A (en) * | 1981-04-03 | 1982-10-09 | Hitachi Ltd | Buffer device for address conversion |
US4622631B1 (en) | 1983-12-30 | 1996-04-09 | Recognition Int Inc | Data processing system having a data coherence solution |
US4905188A (en) | 1988-02-22 | 1990-02-27 | International Business Machines Corporation | Functional cache memory chip architecture for improved cache access |
JPH04353949A (ja) * | 1991-05-31 | 1992-12-08 | Nec Corp | キャッシュメモリ制御方式 |
US5526504A (en) | 1993-12-15 | 1996-06-11 | Silicon Graphics, Inc. | Variable page size translation lookaside buffer |
JPH07248974A (ja) * | 1994-03-10 | 1995-09-26 | Hitachi Ltd | 情報処理装置 |
JPH07287668A (ja) | 1994-04-19 | 1995-10-31 | Hitachi Ltd | データ処理装置 |
US5960463A (en) | 1996-05-16 | 1999-09-28 | Advanced Micro Devices, Inc. | Cache controller with table walk logic tightly coupled to second level access logic |
US5915262A (en) | 1996-07-22 | 1999-06-22 | Advanced Micro Devices, Inc. | Cache system and method using tagged cache lines for matching cache strategy to I/O application |
US5946718A (en) | 1997-05-30 | 1999-08-31 | National Semiconductor Corporation | Shadow translation look-aside buffer and method of operation |
US6182266B1 (en) * | 1997-09-12 | 2001-01-30 | Lucent Technologies, Inc. | Self-auditing protection method for sorted arrays |
US6349362B2 (en) | 1998-08-31 | 2002-02-19 | International Business Machines Corporation | Scheme to partition a large lookaside buffer into an L2 cache array |
US6535949B1 (en) | 1999-04-19 | 2003-03-18 | Research In Motion Limited | Portable electronic device having a log-structured file system in flash memory |
EP1182567B1 (en) | 2000-08-21 | 2012-03-07 | Texas Instruments France | Software controlled cache configuration |
US6697909B1 (en) | 2000-09-12 | 2004-02-24 | International Business Machines Corporation | Method and apparatus for performing data access and refresh operations in different sub-arrays of a DRAM cache memory |
US6851070B1 (en) * | 2001-08-13 | 2005-02-01 | Network Appliance, Inc. | System and method for managing time-limited long-running operations in a data storage system |
US7810067B2 (en) * | 2002-08-30 | 2010-10-05 | Sap Aktiengesellschaft | Development processes representation and management |
US7299266B2 (en) * | 2002-09-05 | 2007-11-20 | International Business Machines Corporation | Memory management offload for RDMA enabled network adapters |
US7171539B2 (en) * | 2002-11-18 | 2007-01-30 | Arm Limited | Apparatus and method for controlling access to a memory |
US20050021925A1 (en) | 2003-07-25 | 2005-01-27 | Clark Lawrence T. | Accessing in parallel stored data for address translation |
US20050080934A1 (en) * | 2003-09-30 | 2005-04-14 | Cota-Robles Erik C. | Invalidating translation lookaside buffer entries in a virtual machine (VM) system |
US7181556B2 (en) * | 2003-12-23 | 2007-02-20 | Arm Limited | Transaction request servicing mechanism |
US7433364B2 (en) * | 2003-12-24 | 2008-10-07 | Intel Corporation | Method for optimizing queuing performance |
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 |
GB2451668A (en) * | 2007-08-08 | 2009-02-11 | Advanced Risc Mach Ltd | Error correction in a set associative cache |
US9087102B2 (en) * | 2007-10-09 | 2015-07-21 | International Business Machines Corporation | Adaptive query processing infrastructure |
GB2460393B (en) * | 2008-02-29 | 2012-03-28 | Advanced Risc Mach Ltd | A data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuitry |
WO2010095182A1 (ja) | 2009-02-17 | 2010-08-26 | パナソニック株式会社 | マルチスレッドプロセッサ及びデジタルテレビシステム |
JP5749732B2 (ja) * | 2009-12-04 | 2015-07-15 | ナパテック アクティーゼルスカブ | キューの充填レベルの更新を制御することにより帯域幅を節約しながらデータを受信し記憶するアセンブリおよび方法 |
US8510511B2 (en) | 2009-12-14 | 2013-08-13 | International Business Machines Corporation | Reducing interprocessor communications pursuant to updating of a storage key |
CN102812518B (zh) | 2010-01-28 | 2015-10-21 | 惠普发展公司,有限责任合伙企业 | 存储器存取方法和装置 |
US8756377B2 (en) * | 2010-02-02 | 2014-06-17 | Arm Limited | Area and power efficient data coherency maintenance |
US9606867B2 (en) * | 2014-06-05 | 2017-03-28 | International Business Machines Corporation | Maintaining data storage in accordance with an access metric |
GB2479780B (en) | 2010-04-22 | 2018-04-04 | Advanced Risc Mach Ltd | Preload instruction control |
US8935506B1 (en) * | 2011-03-31 | 2015-01-13 | The Research Foundation For The State University Of New York | MemX: virtualization of cluster-wide memory |
TWI521343B (zh) * | 2011-08-01 | 2016-02-11 | Toshiba Kk | An information processing device, a semiconductor memory device, and a semiconductor memory device |
US8924832B1 (en) * | 2012-06-26 | 2014-12-30 | Western Digital Technologies, Inc. | Efficient error handling mechanisms in data storage systems |
US9208102B2 (en) * | 2013-01-15 | 2015-12-08 | Qualcomm Incorporated | Overlap checking for a translation lookaside buffer (TLB) |
US10445229B1 (en) * | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
US9652376B2 (en) * | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US9229854B1 (en) * | 2013-01-28 | 2016-01-05 | Radian Memory Systems, LLC | Multi-array operation support and related devices, systems and software |
WO2014142867A1 (en) | 2013-03-14 | 2014-09-18 | Intel Corporation | Power efficient level one data cache access with pre-validated tags |
US10210096B2 (en) | 2013-10-01 | 2019-02-19 | Ampere Computing Llc | Multi-stage address translation for a computing device |
US9535614B2 (en) * | 2013-11-21 | 2017-01-03 | Sandisk Technologies Llc | Temperature based flash memory system maintenance |
US9293188B2 (en) | 2014-02-03 | 2016-03-22 | Advanced Micro Devices, Inc. | Memory and memory controller for high reliability operation and method |
GB2529180B (en) * | 2014-08-12 | 2021-07-14 | Advanced Risc Mach Ltd | Arbitration and hazard detection for a data processing apparatus |
US11531624B2 (en) * | 2015-02-06 | 2022-12-20 | Arm Limited | Address translation in a data processing apparatus |
GB2538054B (en) * | 2015-04-28 | 2017-09-13 | Advanced Risc Mach Ltd | Data processing apparatus, controller, cache and method |
US20160365137A1 (en) | 2015-06-11 | 2016-12-15 | Broadcom Corporation | Pre-Emphasis and Equalization for DRAM |
US9626300B2 (en) | 2015-07-27 | 2017-04-18 | Google Inc. | Address caching in switches |
US9678788B2 (en) * | 2015-11-10 | 2017-06-13 | International Business Machines Corporation | Enabling poll/select style interfaces with coherent accelerators |
US20170162235A1 (en) * | 2015-12-02 | 2017-06-08 | Qualcomm Incorporated | System and method for memory management using dynamic partial channel interleaving |
US10061707B2 (en) | 2015-12-26 | 2018-08-28 | Intel Corporation | Speculative enumeration of bus-device-function address space |
US9846652B2 (en) | 2016-03-31 | 2017-12-19 | Intel Corporation | Technologies for region-biased cache management |
EP3264317B1 (en) | 2016-06-29 | 2019-11-20 | Arm Ltd | Permission control for contingent memory access program instruction |
US10380032B2 (en) | 2017-03-09 | 2019-08-13 | Internatinoal Business Machines Corporation | Multi-engine address translation facility |
JP2019016135A (ja) | 2017-07-06 | 2019-01-31 | 富士通株式会社 | 情報処理システム、情報処理システムの制御プログラム及び情報処理システムの制御方法 |
US11232037B2 (en) * | 2017-10-23 | 2022-01-25 | Seagate Technology Llc | Using a first-in-first-out (FIFO) wraparound address lookup table (ALT) to manage cached data |
US10503660B2 (en) * | 2017-12-20 | 2019-12-10 | Arm Limited | Technique for determining address translation data to be stored within an address translation cache |
-
2018
- 2018-10-24 US US16/169,206 patent/US10929308B2/en active Active
- 2018-11-14 JP JP2018213689A patent/JP7340326B2/ja active Active
- 2018-11-15 CN CN201811373550.2A patent/CN110059027A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008512785A (ja) | 2004-09-10 | 2008-04-24 | カビウム・ネットワークス | マルチコアプロセッサの格納命令の順序づけ |
JP2009140479A (ja) | 2007-12-06 | 2009-06-25 | Arm Ltd | ハードウエアアクセラレータ内のデータ値のクリーニングの制御 |
US20140115267A1 (en) | 2012-10-24 | 2014-04-24 | Texas Instruments Incorporated | Hazard Detection and Elimination for Coherent Endpoint Allowing Out-of-Order Execution |
US20160188690A1 (en) | 2013-03-15 | 2016-06-30 | International Business Machines Corporation | Differentiated secondary index maintenance in log structured nosql data stores |
JP2016534431A (ja) | 2013-10-25 | 2016-11-04 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | ロード/記憶ユニット及びデータキャッシュの順序付け及びバンド幅の向上 |
JP2017517040A (ja) | 2014-02-21 | 2017-06-22 | エイアールエム リミテッド | 格納されたアドレス変換の無効化 |
Non-Patent Citations (1)
Title |
---|
野口 健一郎 他,IT Text オペレーティングシステム(改訂2版),第2版,日本,株式会社オーム社,2018年01月25日,pp.151-162,ISBN:978-4-274-22156-9 |
Also Published As
Publication number | Publication date |
---|---|
US10929308B2 (en) | 2021-02-23 |
CN110059027A (zh) | 2019-07-26 |
US20190155747A1 (en) | 2019-05-23 |
JP2019096309A (ja) | 2019-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7340326B2 (ja) | メンテナンス動作の実行 | |
JP5536658B2 (ja) | バッファメモリ装置、メモリシステム及びデータ転送方法 | |
CN109983538B (zh) | 存储地址转换 | |
KR102290464B1 (ko) | 시스템 온 칩 및 그것의 주소 변환 방법 | |
CN110046107B (zh) | 存储器地址转换装置和方法 | |
US20080301371A1 (en) | Memory Cache Control Arrangement and a Method of Performing a Coherency Operation Therefor | |
US7702875B1 (en) | System and method for memory compression | |
CN115292214A (zh) | 页表预测方法、存储访问操作方法、电子装置和电子设备 | |
CN114217861A (zh) | 数据处理方法及装置、电子装置和存储介质 | |
US20110167223A1 (en) | Buffer memory device, memory system, and data reading method | |
EP2562652B1 (en) | System and method for locking data in a cache memory | |
US9639467B2 (en) | Environment-aware cache flushing mechanism | |
US10949360B2 (en) | Information processing apparatus | |
US20050091466A1 (en) | Method and program product for avoiding cache congestion by offsetting addresses while allocating memory | |
US20020188805A1 (en) | Mechanism for implementing cache line fills | |
US20090157968A1 (en) | Cache Memory with Extended Set-associativity of Partner Sets | |
US6785797B2 (en) | Address predicting apparatus and methods | |
JP7311959B2 (ja) | 複数のデータ・タイプのためのデータ・ストレージ | |
US11003591B2 (en) | Arithmetic processor, information processing device and control method of arithmetic processor | |
US7143239B2 (en) | Cache structure and methodology | |
US10977176B2 (en) | Prefetching data to reduce cache misses | |
GR20180200044U (el) | Μεταφραση διευθυνσεων μνημης | |
GR20180200051U (el) | Μεταφραση διευθυνσεων μνημης | |
GR20180200050U (el) | Πραγματοποιηση λειτουργιων συντηρησης | |
GR20180200062U (el) | Αποθηκευτικος χωρος δεδομενων για πολλαπλους τυπους δεδομενων |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20211105 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20221026 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20221027 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230126 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20230307 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230706 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20230714 |
|
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: 20230804 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230828 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7340326 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |