JP4875981B2 - データ処理システムにおけるプリフェッチ制御 - Google Patents

データ処理システムにおけるプリフェッチ制御 Download PDF

Info

Publication number
JP4875981B2
JP4875981B2 JP2006521871A JP2006521871A JP4875981B2 JP 4875981 B2 JP4875981 B2 JP 4875981B2 JP 2006521871 A JP2006521871 A JP 2006521871A JP 2006521871 A JP2006521871 A JP 2006521871A JP 4875981 B2 JP4875981 B2 JP 4875981B2
Authority
JP
Japan
Prior art keywords
prefetch
master
buffer
limit
prefetches
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2006521871A
Other languages
English (en)
Other versions
JP2007500897A (ja
JP2007500897A5 (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.)
NXP USA Inc
Original Assignee
NXP USA Inc
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 NXP USA Inc filed Critical NXP USA Inc
Publication of JP2007500897A publication Critical patent/JP2007500897A/ja
Publication of JP2007500897A5 publication Critical patent/JP2007500897A5/ja
Application granted granted Critical
Publication of JP4875981B2 publication Critical patent/JP4875981B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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/0215Addressing or allocation; Relocation with look ahead addressing means
    • 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
    • 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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Description

本発明は、データ処理システムに関し、特にデータ処理システムにおける先取り制御に関する。
プリフェッチは、通常、データ処理システム内の情報にアクセスするために使用される。その情報に対する要求が行われる前に情報を先取り(プリフェッチ)することにより、バス・マスタが要求した情報にアクセスすることによる待ち時間を短縮することができる。しかし、通常のプリフェッチ法の場合には、バス・マスタは、プリフェッチした情報の多くへのアクセスを要求しないから、多数のプリフェッチが無駄になる。一般的なプリフェッチ法のもう1つの欠点は、このようなシステムが提供するプリフェッチ制限制御が固定のポリシーに基づいているために、柔軟性に乏しく、制御がうまくいかないことである。
それ故、無駄になるプリフェッチの回数を低減し、それにより電力消費量を低減し、データ・プロセッサの性能を最適化するプリフェッチ方法が必要になる。
以下に本発明について説明するが、この説明は例示としてのものであり、また添付の図面により制限されない。図面中、類似の参照番号は類似の要素を示す。
当業者であれば、図面中の要素は、分かりやすくはっきりと示すためのものであって、必ずしも正確に縮尺したものでないことを理解するだろう。例えば、本発明の実施形態の理解を助けるために、図面中の要素のうちのあるものの寸法は他の要素より誇張してある。
本明細書で使用する場合、「バス」という用語は、データ、アドレス、制御または状態のような1つまたは複数の種々のタイプの情報を転送するために使用する複数の信号または導体を意味する。本明細書で使用する場合、導体という用語は、図面の中または説明の中において、1本の導体、複数本の導体、一方向性導体、または二方向性導体を意味する。しかし、異なる実施形態の場合には、別の方法により導体を実施することができる。例えば、別々の一方向性導体を二方向性導体の代わりに使用することができるし、その逆も行うことができる。また、複数の導体の代わりに、複数の信号を直列にまたは時分割多重により転送する1本の導体を使用することができる。同様に、複数の信号を運ぶ1本の導体を、これらの信号のサブセットを運ぶ種々の何本かの導体に分割することもできる。それ故、信号を転送するための多くの別法が存在する。
本発明の一実施形態は、プリフェッチが無駄になるのを防止するための順次プリフェッチ動作の回数の動的制御に関する。例えば、バッファ・ミスの後で行う順次プリフェッチの回数を制限することにより、メモリ制御ユニットの性能および電力消費を最適化することができる。一実施形態の場合には、順次プリフェッチの回数の制限は、一組のプリフェッチ・バッファ、制御レジスタ、およびプリフェッチ・カウンタにより行われる。これらすべてについては以下にさらに詳細に説明する。他の実施形態の場合には、バッファ・ミスの間の順次プリフェッチ動作の回数を動的に制御することができ、要求しているマスタの特性に基づいてユーザが予めプログラミングすることができるソフトウェア・プログラマブル制御法を使用している。例えば、中央処理装置(CPU)においては、順次実行を
中止させる流れ命令の変更または例外に達するまで、命令は、通常、順次に実行される。順次に実行される命令の数は、CPUにより異なり、実行中のアプリケーション・プログラムのタイプの関数である。ある種のアプリケーションは、拡張した順次実行を示し、一方、他のアプリケーションは、流れイベントの頻繁な変更によるもっと不規則な行動をする。それ故、アプリケーションにより、プリフェッチの所望の数を変更することができる。他の実施形態の場合には、転送の終わりに達するか、チャネル切り替えが行われるまで、転送が順次に行われるDMAマスタを使用している。この例の場合には、長いシーケンスが予想され、DMAマスタに対応するプリフェッチ制限をそれに従って調整することができる。データ処理システムでプリフェッチの回数を選択的に制御することにより、余分な電力を消費する無駄なプリフェッチおよびそれによる性能の低下を防止することができる。
本発明の一実施形態は、マスタ、マスタと結合している記憶回路、プリフェッチ制限を記憶する制御記憶回路、プリフェッチ・バッファ、および制御記憶回路、プリフェッチ・バッファ、および記憶回路と結合しているプリフェッチ回路を含むデータ処理システムに関する。一実施形態の場合には、プリフェッチ回路は、記憶回路からプリフェッチ・バッファ内へ所定数のラインを選択的にプリフェッチする。この場合、プリフェッチ制限は、プリフェッチ・バッファ内のミスの間に発生するプリフェッチの回数を制御する。
本発明の他の実施形態は、データ処理システムでプリフェッチを行うための方法に関する。マスタからのアクセス記憶回路への複数のアクセス要求が受信され、複数のアクセス要求の少なくとも一部からのプリフェッチ・バッファ内のミス間で行ったプリフェッチの回数を制限するためにプリフェッチ制限が使用される。本発明の一実施形態の場合には、プリフェッチ制御回路は、プリフェッチ制限を記憶するために使用される。
本発明のさらに他の実施形態は、マスタからアクセス記憶回路への読出し要求が受信され、読出し要求がプリフェッチ・バッファ内でヒットになるかまたはミスになるかを判断する、データ処理システムでプリフェッチを行うための方法に関する。一実施形態の場合には、読出し要求がヒットになった場合、少なくとも一部は、第1の値に達しているプリフェッチ・カウンタに基づいて、記憶回路からプリフェッチ・バッファ内へ、所定数のラインのプリフェッチが選択的に行われる。一実施形態の場合には、読出し要求がミスになった場合、読出し要求に応じて要求取出し(フェッチ)が行われ、プリフェッチ・カウンタが第2の値に設定される。
図1は、データ処理システム10の一実施形態である。データ処理システム10は、マスタ12(相互接続マスタ12とも呼ばれる)、マスタ14(相互接続マスタ14とも呼ばれる)、メモリ・アレイ・コントローラ36、システム相互接続22、入出力回路16、周辺装置18、他のスレーブ20、およびメモリ・アレイ35を含む。マスタ12は、導体48を介してシステム相互接続22に二方向で結合していて、マスタ14は、導体50を介してシステム相互接続22に二方向で結合していて、入出力回路は、導体52を介してシステム相互接続22に二方向で結合していて、周辺装置18は、導体54を介してシステム相互接続22に二方向で結合していて、他のスレーブ20は、導体56を介してシステム相互接続22に二方向で結合していて、メモリ・アレイ・コントローラ36は、導体24を介してシステム相互接続22に二方向で結合している。導体24は、マスタ識別子26、アドレス/データ27、R/W信号28、バースト信号30、命令/データ信号32、および他の信号34と通信するための導体を含む。メモリ・アレイ・コントローラ36は、制御レジスタ38、要求モニタ43、プリフェッチ回路40、プリフェッチ・カウンタ41、およびバッファ42(プリフェッチ・バッファとも呼ばれる)を含み、導体33を介してメモリ・アレイ35に二方向で結合している。制御レジスタ38は、要求
モニタ43およびプリフェッチ回路40と結合していて、プリフェッチ回路40は、バッファ42およびプリフェッチ・カウンタ41と結合している。バッファ42は、バッファ44およびバッファ46を含む。
図1には周辺装置18は1つしか示していないが、データ処理システム10は、システム相互接続22と結合している任意の数の周辺装置を含むことができる。同様に、任意の数のマスタおよびスレーブをシステム相互接続22に結合することができ、図1に示すこれらのものに限定されない。また、一実施形態の場合には、すべてのデータ処理システム10を1つの集積回路上または同じデバイス内に位置させることができることに留意されたい。別の方法としては、データ処理システム10は、相互に接続している任意の数の別々の集積回路、または別々のデバイスを含むことができる。例えば、一実施形態の場合には、メモリおよびメモリ・コントローラ(例えば、メモリ・アレイ35およびメモリ・アレイ・コントローラ36)を、データ処理システム10の他の部分から独立している1つまたは複数の集積回路上に位置させることができる。
一実施形態の場合には、バス・マスタ12およびバス・マスタ14は、マイクロプロセッサ、デジタル信号プロセッサ等のような命令を実行することができるプロセッサであってもよいし、ダイレクト・メモリ・アクセス(DMA)回路またはデバッグ回路のような他のタイプの相互接続マスタであってもよい。周辺装置18は、汎用非同期受信送信機(UART)、リアルタイムクロック(RTC)、キーボード・コントローラ等のような任意のタイプの周辺装置であってもよい。他のスレーブ20は、例えば、マスタ12および14がアクセスすることができるメモリのような任意のタイプの相互接続スレーブ、および同じタイプの周辺装置を周辺装置18として含むシステム・バス上に常駐する任意のタイプの周辺装置を含むことができることに留意されたい。入出力回路16は、データ処理システム10の外部で情報を受信または提供する任意のタイプの入出力回路を含むことができる。
図の実施形態の場合には、メモリ・アレイ・コントローラ36およびメモリ・アレイ35は、システム相互接続22と結合している他のスレーブに対応する。他の実施形態の場合には、メモリ・アレイ35は、任意の数のアレイを含むことができることに留意されたい。また他の実施形態の場合には、メモリ・アレイ35は記憶回路35と呼ばれることがあることにも留意されたい。メモリ・アレイ35は、マスタ12および14として同じ集積回路上に位置することもできるし、別々の集積回路上に位置することもできる。さらに、メモリ・アレイ35は、例えば、読出し専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、不揮発性メモリ(例えば、フラッシュ)等のような任意のタイプのメモリであってもよい。また、メモリ・アレイ35は、他の周辺装置またはスレーブ内に位置するメモリまたは他の記憶装置であってもよい。
システム相互接続22は、マスタ12、マスタ14、入出力回路16、周辺装置18、他のスレーブ20、およびメモリ・アレイ・コントローラ36を相互に接続する。一実施形態の場合には、図1に示すように、システム相互接続22は、システム・バス・プロトコルにより動作するシステム・バスとして実施される。別の方法としては、システム相互接続22は、例えば、種々のデバイス間で情報を経路選択するスイッチング回路のような相互接続回路により実施することができる。
動作中、マスタ12および14は、メモリ・アレイ・コントローラ36を介して、他のスレーブ20へ、周辺装置18へ、またはメモリ・アレイ35へのアクセスを要求するために、システム相互接続22へのアクセスを要求する。要求しているマスタは、システム相互接続22を介して、メモリ・アレイ・コントローラ36にアクセス要求を供給することができる。アクセス要求は、例えば、データまたは命令に対する読出し要求または書込
み要求であってもよい。メモリ・アレイ・コントローラ36は、読出しアクセス要求に応じて、要求された情報(データまたは命令)をシステム相互接続22を介して要求しているマスタに提供する。要求しているマスタからの読出しアクセス要求は、要求フェッチと呼ぶこともできることに留意されたい。
一実施形態の場合には、アクセス要求の場合、マスタ識別子26は、どのマスタが現在のアクセスを要求しているのかを識別するメモリ・アレイ・コントローラ36に送られる。R/W信号28も、現在のアクセス要求が読出しタイプのアクセスなのか、または書込みタイプのアクセスなのかを示すために、メモリ・アレイ・コントローラ36に送られる。バースト信号30は、現在のアクセス要求が、バースト・タイプのアクセスなのか、非バースト・タイプのアクセスなのかを表示するために、メモリ・アレイ・コントローラ36に送られる。命令/データ信号32は、現在のアクセス要求が命令のためのものなのか、データのためのものなのかを表示するために、メモリ・アレイ・コントローラ36に送られる。メモリ・アレイ・コントローラ36は、また、現在のアクセス要求に対応するアドレス情報を受信し、アドレス/データ27を介して要求された情報を提供する。メモリ・アレイ・コントローラ36へおよびから通信するために必要な任意の他の信号は、他の信号34により供給される。他の実施形態の場合には、マスタ識別子26、R/W信号28、バースト信号30、命令/データ信号32、および他の信号34のうちのいくつかまたは全部は存在しなくてもよい。
一実施形態の場合には、プリフェッチ回路40は、メモリ・アレイ35からバッファ44およびバッファ46のようなバッファ42内に情報をプリフェッチすることができる。それ故、要求しているマスタからの読出しアクセス要求に応じて、メモリ・アレイ・コントローラ36は、バッファ42と比較した場合、一般に、アクセス時間が長いメモリ・アレイ35から情報を取り出さなくても、バッファ42から要求された情報を提供することができる(情報がすでにプリフェッチされている場合)。一実施形態の場合には、プリフェッチ回路は、バッファ44および46それぞれに対応する、タグ部分(図示せず)、および現在のアクセス要求で要求されている情報が、バッファ44および46のうちの一方内にすでに位置しているのかどうかを判断するための比較回路(図示せず)を含む。例えば、プリフェッチ回路は、情報がすでにプリフェッチ済みであるかどうかを判断するために、アドレス/データ27を介しての現在のアクセス要求に対応する外からのアドレスをタグ部分と比較することができる。情報がプリフェッチされていない場合には、メモリ・アレイ・コントローラ36は、メモリ・アレイ35から要求された情報を提供することができる。
図の実施形態の場合には、2つのバッファ(バッファ44およびバッファ46)しか図示していない。しかし、他の実施形態の場合には、バッファ42は、任意の数(1つまたは複数)のバッファを含むことができる。一実施形態の場合には、プリフェッチ回路は、要求しているマスタにバッファ44および46の一方から情報を提供しながら、メモリ・アレイ35からバッファ44および46の他方に情報をプリフェッチすることができる。すなわち、2つ以上のバッファを使用すれば、メモリ・アレイ35へのプリフェッチの少なくとも一部を、要求しているマスタからのアクセス要求を提供するのと同時に行うことができる。
バッファ42から情報を提供すると、要求しているマスタからのアクセス要求に応答するためのメモリ・アレイ35へのアクセスと比較すると、アクセス回数が少なくなるので、以降に要求される情報をメモリ・アレイ35からバッファ42内にプリフェッチすることが望ましい。しかし、プリフェッチは、プリフェッチした情報がマスタにより実際に要求されるかどうかはっきりしないので見込的なものであることに留意されたい。例えば、プリフェッチした情報が後に要求されなかった場合には、プリフェッチは、余分な電力を
消費し、性能を低下させる無駄なプリフェッチになる。それ故、本発明の一実施形態の場合には、(マスタ12および14のような)各マスタに対するバッファ42内のミスの間のプリフェッチの回数を制限することにより、プリフェッチ・カウンタ41および制御レジスタ38を使用して、バッファ42内への見込的なデータのプリフェッチを制御する。例えば、一実施形態の場合には、各マスタに対するプリフェッチの数が、要求しているマスタの特性に基づくように、各マスタに対するプリフェッチ制限を記憶するために制御レジスタを使用する。他の実施形態の場合には、以下にさらにもっと詳細に説明するように、各プリフェッチ中にプリフェッチするラインの数を決定するためにも制御レジスタを使用することができる。
図2は、各マスタに対するプリフェッチ制限フィールドを含む制御レジスタ38の一実施形態である。例えば、図2に示すように、制御レジスタ38は、マスタ12プリフェッチ制限フィールド60、およびマスタ14プリフェッチ制限フィールド62を含む。他の実施形態の場合には、制御レジスタ38は、所望のプリフェッチ制限を記憶するために、必要に応じて、もっと多くのまたはもっと少ないフィールドを含むことができる。また、制御レジスタ38は、システム相互接続22と結合しているマスタ12またはマスタ14のようなマスタからの命令により、プログラミングすることができることに留意されたい。例えば、ユーザは、プリフェッチ制限フィールドの値を提供することもできるし、または設計の段階でプログラミングすることもできる。
一実施形態の場合には、プリフェッチ回路40は、プリフェッチ制限を動的に更新するためにそのプロファイルを使用することができるマスタ12またはマスタ14のような1つまたは複数のマスタからアクセス要求をプロファイルする要求モニタ43に二方向で結合している。例えば、要求モニタ43は、連続しているバッファ・ミスの間にバッファ42に行ったアクセスの数を監視することもできるし、それに従って制限を更新または設定することもできる。他の実施形態の場合には、要求モニタ43を、データ処理システム10から除外することができ、プリフェッチ制限を、例えば、ユーザがプログラミングすることができるようにすることもできるし、またはハードウェアに組み込むことができる。
図3は、各マスタに対応するプリフェッチ・カウンタを含むプリフェッチ・カウンタ41の一実施形態である。例えば、一実施形態の場合には、プリフェッチ・カウンタ41は、マスタ12に対応するプリフェッチ・カウンタ64、およびマスタ14に対応するプリフェッチ・カウンタ66を含む。他の実施形態の場合には、データ処理システム10は、マスタ12または14のような1つまたは複数のマスタにより共有されるメモリ・アレイ・コントローラ(例えば、メモリ・アレイ・コントローラ36)毎に1つのプリフェッチ・カウンタを含むことができる。別の方法としては、プリフェッチ・カウンタ41を、カウンタ、またはカウンタと同じような動作をする任意の他のデバイス(ソフトウェアまたはハードウェア)と呼ぶこともできる。
図4は、図2の制御レジスタ38のフィールド定義の一実施形態を示す。例えば、一実施形態の場合には、各フィールド60および62は、3ビット・フィールドで、各フィールドは、8つの値(000、001、010、011、100、101、110および111)を有することができる。図4に示すフィールド記述の一実施形態の場合には、プリフェッチ回路が使用するプリフェッチ・アルゴリズムを制御するために、プリフェッチ制限フィールド60および62を使用する。例えば、プリフェッチ制限フィールド60および62は、対応する各マスタに対するバッファ・ミスの間に行われる順次プリフェッチの最大数に関する制限を定義する。プリフェッチ制限フィールド60および62は、また、毎回プリフェッチするラインの数を定義するためにも使用することができる。
例えば、図の実施形態の場合には、000の値は、バッファ42内でミスとなる対応す
るマスタからのアクセス要求の間にプリフェッチが行われなかったことを示す。すなわち、マスタ12のプリフェッチ制限フィールド60が000に設定されている場合には、マスタ12からのアクセス要求によるバッファ42内のミスの間にプリフェッチは行われない。同様に、マスタ14のプリフェッチ制限フィールド62が000に設定されている場合には、マスタ14からのアクセス要求によるバッファ42内のミスの間にプリフェッチは行われない。プリフェッチ制限フィールド60および62の値が001である場合には、バッファ・ミスの際に1つの追加ライン(メモリ・アレイ35内の次のシーケンシャル・ライン)がプリフェッチされたことを示す。プリフェッチ制限フィールド60および62の値が010である場合には、プリフェッチをストップする前に、各バッファ・ミスの後に最大2つの追加ラインをプリフェッチすることができることを示す。この場合、バッファ・ミスの際に1つの追加ライン(メモリ・アレイ35内の次のシーケンシャル・ライン)がプリフェッチされ、バッファ・ヒットの際に次の追加のシーケンシャル・ラインがプリフェッチされる(まだ存在していない場合)。
依然として図4の実施形態を参照すると、プリフェッチ制限フィールド60および62の値が011である場合には、プリフェッチをストップする前に、各バッファ・ミスの後で最大3つの追加ラインをプリフェッチすることができることを示す。すなわち、例えば、最初のミスの後で、単一プリフェッチをスタートすることができ、以降の各バッファ・ヒットの後で単一の追加プリフェッチをスタートすることができる(全部で3回の単一プリフェッチまで)。プリフェッチ制限フィールド60および62の値が100である場合には、プリフェッチをストップする前に、各バッファ・ミスの後で、最大4つの追加ラインをプリフェッチすることができることを示す。すなわち、例えば、最初のミスの後で、単一プリフェッチをスタートすることができ、以降の各バッファ・ヒットの後で、単一の追加プリフェッチをスタートすることができる(全部で4回の単一プリフェッチまで)。プリフェッチ制限フィールド60および62の値が101である場合には、プリフェッチをストップする前に、各バッファ・ミスの後で、最大5つの追加ラインをプリフェッチすることができることを示す。すなわち、例えば、最初のミスの後で、単一プリフェッチをスタートすることができ、以降の各バッファ・ヒットの後で単一の追加プリフェッチをスタートすることができる(全部で5回の単一プリフェッチまで)。
依然として図4の実施形態を参照すると、プリフェッチ制限フィールド60および62の値が110である場合には、各バッファ・ミスの後で、無制限の数の追加ラインをプリフェッチすることができることを示す。すなわち、例えば、各バッファ・ヒットまたはミスの後で、単一の追加プリフェッチをスタートすることができる。(この実施形態の場合には、111という値は予約されていて、プリフェッチ動作を設定するために使用されていないことに留意されたい。)他の実施形態の場合には、制御レジスタ38は、必要に応じて、もっと多くのまたはもっと少ないビットを使用して、各マスタに対するもっと多くのまたはもっと少ないフィールドを含むことができることに留意されたい。また、プリフェッチ制限フィールド60および62の他の定義は、必要に応じて、プリフェッチ回路40を制御するために適用することができる。プリフェッチ制限フィールドの使用および定義については、図5を参照しながらさらに説明する。
図5は、本発明の一実施形態によるデータ処理システム10の動作のフローチャートである。流れ70は、スタート72からスタートして、ブロック74へ進み、そこでマスタ12またはマスタ14のようなマスタからのアクセス要求を受信する。このアクセス要求は、読出し要求、書込み要求、バースト要求、非バースト要求、データに対する要求、命令に対する要求等のような多くの異なるタイプのアクセス要求であってもよい。しかし、説明を分かりやすくするために、アクセス要求は読出し要求であると仮定する。
次に、流れは、ブロック76に進み、そこで要求しているマスタの識別が、例えば、図
1のマスタ識別子26が供給したマスタ識別子により決定される。それ故、異なるマスタは、異なるマスタ識別子を有することができる。例えば、マスタ12は、0という識別子を有することができ、マスタ14は1という識別子を有することができる。それ故、各マスタに一意の識別子を割当てることができる。他の実施形態の場合には、いくつかのマスタは、同じ識別子を共有することができる。また、他の実施形態の場合には、どのマスタがアクセスを要求しているのかを、マスタ識別子26のような信号を供給する方法以外の異なる方法で決定することができることに留意されたい。一実施形態の場合には、正しいプリフェッチ・カウンタおよび対応するプリフェッチ制限を、複数のプリフェッチ・カウンタおよび制限からマスタ識別子の識別に基づいて選択することができる。
図5を参照すると、流れは決定ダイヤモンド・ブロック78に進み、そこでアクセス要求がヒットになったのかミスになったのかの判断が行われる。アクセス要求がミスになった場合には、流れはブロック86に進み、そこで要求しているマスタに対応するプリフェッチ・カウンタ(プリフェッチ・カウンタ41内のカウンタのうちの1つ)が、要求しているマスタに対応するプリフェッチ制限(例えば、制御レジスタ38内のプリフェッチ制限フィールドのうちの1つが示す)に設定される。このプリフェッチ制限は、要求しているマスタのバッファ・ミスの間のプリフェッチの回数を制御するために使用される。次に、流れはブロック88に進み、そこで現在のアクセス要求に応じて1つのライン要求取出し(フェッチ)が行われる。他の実施形態の場合には、要求フェッチ中に追加ラインをプリフェッチすることができることに留意されたい。
次に、流れは決定ダイヤモンド・ブロック94へ進み、そこで要求しているマスタに対応するプリフェッチ制限が、「プリフェッチなし」と表示しているかどうかが決定される。(例えば、図4の実施形態の場合には、制御レジスタ38内の対応するプリフェッチ制限フィールドの000という値は、プリフェッチなしを示す。)「プリフェッチなし」と表示された場合には、流れはエンド楕円ブロック90に進む。しかし、「プリフェッチなし」が表示されない場合には、流れはブロック89に進み、そこで1つのライン・プリフェッチが行われ、1つのラインがまだプリフェッチ・バッファ内に存在していない場合には、要求しているマスタに対応するプリフェッチ・カウンタの値が低減する。他の実施形態の場合には、ブロック89が存在していないこと、すなわち、ミスに応じてプリフェッチを行うことができないこと、それ故、対応するプリフェッチ・カウンタを更新できないことに留意されたい。
決定ダイヤモンド・ブロック78での結果がヒットである場合には、流れは決定ダイヤモンド・ブロック96に進み、そこで要求しているマスタに対応するプリフェッチ制限が「プリフェッチなし」を表示しているかどうかの判断が行われる。「プリフェッチなし」が表示されている場合には、流れはエンド楕円ブロック90に進む。そうでない場合で、「プリフェッチなし」が表示されていない場合には、流れは決定ダイヤモンド・ブロック80に進み、そこで要求しているマスタに対応するプリフェッチ・カウンタが期限切れになっているかどうかが判断される。プリフェッチ・カウンタが期限切れになっていない場合には、流れはブロック82に進む。ブロック82においては、1つのラインがプリフェッチされ、1つのラインがまだプリフェッチ・バッファ内に存在していない場合には、要求しているマスタに対応するプリフェッチ・カウンタの値が低減され、それ故、最後のミス以降に発生したプリフェッチの数が追跡される。次に、流れはエンド楕円ブロック90に進む。
決定ブロック80に戻って説明すると、プリフェッチ・カウンタが期限切れになっている場合には、流れはブロック84に進み、そこでは追加のプリフェッチは行わない。それ故、他のヒットが発生した場合でも、対応するプリフェッチ・カウンタが、ブロック86内のミスに応じてプリフェッチ制限に再度設定されるまでプリフェッチは行われない。そ
れ故、このようにして、プリフェッチ制限は、対応する要求しているマスタのバッファ・ミスの間のプリフェッチの数を制限するために使用される。次に、流れはエンド楕円ブロック90に進む。
図5の実施形態の場合には、プリフェッチ・カウンタの値は、例えば1のような固定の値だけ低減して、(例えば、図5のブロック82および89に示すように)プリフェッチが行われたことを示す。プリフェッチ・カウンタの値がその下限値(この場合は、0)に達した場合には、プリフェッチ・カウンタは時間切れになったと見なされる。他の実施形態の場合には、(図5のブロック86に示すように)プリフェッチ・カウンタの初期値は0に設定することができ、そのためプリフェッチ・カウンタの値は、例えば1のような固定値だけ増大することができ、(図5のブロック82および89に示すように)プリフェッチが行われたことを示す。この他の実施形態の場合には、カウンタの値が対応するプリフェッチ制限に達すると、プリフェッチ・カウンタは時間切れになったと見なされる。
また、図5の実施形態の場合には、図4のフィールドが定義しているように、(ブロック82および89に示すように)各プリフェッチ中、1つの追加ラインだけが取出される(フェッチされる)ことに留意されたい。しかし、他の実施形態の場合には、所定の数(1つまたは複数)のラインを、(図5のブロック82および89に示すように)各プリフェッチ中に取出すことができることに留意されたい。すなわち、ラインがプリフェッチ・バッファ内にまだ存在していない場合には、ヒット、ミスまたは両方の場合に、所定数のラインをプリフェッチすることができる。また、プリフェッチ数を追跡するために、対応するプリフェッチ・カウンタの値を、それに応じて低減(または増大)することができる。それ故、制御レジスタ38内のプリフェッチ制限フィールド60および62のようなプリフェッチ制限フィールドを、1つの追加ラインだけではなしに、(対応するカウンタが時間切れになるまで)ミスまたはヒットまたは両方の後で、任意の所定数のラインのプリフェッチを定義するために使用することができることに留意されたい。
すでに説明したように、プリフェッチ・カウンタは、各マスタに対して使用することができるが、他の実施形態の場合には、1つのカウンタを複数のマスタが共有している。この実施形態の場合には、優先権スキームを使用することができ、その場合、例えば、ユーザは、どのマスタが1つのカウンタの制御を行うのかについて、優先権スキームをプログラミングすることができる。例えば、マスタ14は、現在マスタ12が使用しているカウンタの使用を要求することができ、マスタ14がマスタ12より高い優先権を有している場合には、マスタ12はマスタ14へのカウンタへの制御を譲渡することができる。このようにして、複数のマスタが1つのカウンタを共有することができる。別の方法としては、マスタをベースとしないで、要求しているマスタの識別が何であれ、連続しているミスの間のプリフェッチの数をプリフェッチ制限が制限することができるように、カウンタを共有することができる。この他の実施形態の場合には、要求しているマスタの識別が何であれ、ミスが発生する度に(図5のブロック86に示すように)共有カウンタを設定することができる。同様に、要求しているマスタの識別が何であれ、図5の決定ダイヤモンド・ブロック80およびブロック82および89はこの共有カウンタ上で動作する。また、さらに他の実施形態の場合には、複数のマスタが制御レジスタ38内のプリフェッチ制限を共有することができることに留意されたい。
データ処理システムで異なるタイプのマスタを使用している場合には、メモリ制御ユニットの性能を最適化する必要がある場合がある。異なるタイプのマスタは、種々の方法で命令およびデータを実行し、転送するので、マスタの異なるアクセス特性を考慮に入れ、ミスの間のプリフェッチの数を制限し、順次プリフェッチの動的制御を可能にするプリフェッチ制限スキームを理解することができるだろう。例えば、CPU内の命令は、通常、流れの変化に達するまで順次に実行される。一方、DMAの場合には、転送が終了するま
でまたはチャネルが切り替えられるまで、大部分の転送は順次に行われる。それ故、CPUおよびDMAのプリフェッチ制限フィールドは、例えば、DMAがCPUと比較した場合、ミスの間のプリフェッチの数をもっと多くすることができるように異なる方法で設定することができる。それ故、プリフェッチ制限フィールドを、マスタ間の種々の違いを考慮に入れ、すでに説明したように、連続しているミスの間に発生するプリフェッチの数を制御するようにプログラミングすることができる。すなわち、プリフェッチ制限に達した後では、次のバッファ・ミスまでそれ以上プリフェッチは行われない。何故なら、順次プリフェッチが使用される可能性は、順次プリフェッチの回数が増大するにつれて低減するからである。また、無駄なプリフェッチをさらに低減するために、(プリフェッチ制限に達する前に)各ヒットまたはミスまたは両方に応じて、ラインプ・リフェッチの回数を制御するために、プリフェッチ制限フィールドをどのように使用することができるのかを理解することができるだろう。
今まで特定の実施形態を参照しながら本発明を説明してきた。しかし、通常の当業者であれば、添付の特許請求の範囲に記載する本発明の範囲から逸脱することなしに、種々の修正および変更を行うことができることを理解することができるだろう。それ故、本明細書および図面は例示としてのものであって、本発明を制限するものでないと見なすべきであり、そのようなすべての修正は、本発明の範囲内に含まれる。
特定の実施形態を参照しながら、本発明の利益、他の利点および問題の解決方法について説明してきた。しかし、何らかの利益、利点または解決方法をもたらしたり、より優れたものにすることができる上記利益、利点、問題の解決方法、および任意の要素は、任意のまたはすべての請求項の重要な、必要なまたは本質的な機能または要素であると解釈すべきではない。本明細書で使用する場合、ある(「a」または「an」)という用語は、1つまたは複数と定義される。本明細書で使用する場合、含む(including)および/または有する(having)という用語は、備える(すなわち、オープン言語)と定義される。本明細書で使用する場合、「備える」、「備えている」またはその任意の他の派生語は、要素のリストを備えるプロセス、方法、物品または装置が、これらの要素を含むばかりでなく、リストに明示されていないか、またはこのようなプロセス、方法、物品または装置固有の他の要素を含むことができるように、非排他的な内容を含むことができるようにするためのものである。
本発明の一実施形態によるデータ処理システムのブロック図。 本発明の一実施形態による図1のデータ処理システムの制御レジスタのブロック図。 本発明の一実施形態による図1のデータ処理システムのプリフェッチ・カウンタのブロック図。 本発明の一実施形態による図2の制御レジスタのフィールド記述の表。 本発明の一実施形態による図1のデータ処理システムの動作のフローチャート。

Claims (5)

  1. データ処理システムであって、
    第1のマスタと、
    前記第1のマスタが使用するための、前記第1のマスタと結合している記憶回路と、
    第1のプリフェッチ制限を記憶する第1の制御記憶回路と、
    プリフェッチ・バッファと、
    前記第1の制御記憶回路、前記プリフェッチ・バッファ、および前記記憶回路と結合しているプリフェッチ回路であって、前記記憶回路から前記プリフェッチ・バッファ内に所定数のラインを選択的にプリフェッチし、前記第1のプリフェッチ制限が、前記プリフェッチ・バッファ内のミスとミスとの間に発生するプリフェッチの回数を制御する前記プリフェッチ回路と、
    を備え、前記プリフェッチ・バッファ内にヒットが発生し且つ前記プリフェッチ・バッファ内の前回のミス以降に発生したプリフェッチの総回数が前記第1のプリフェッチ制限に達していない場合に限って、プリフェッチを前記ヒットに応じて行うデータ処理システム。
  2. 第1のプリフェッチ・カウンタをさらに備え、前記プリフェッチ回路が、前記第1のプリフェッチ・カウンタに基づいて、前記記憶回路から前記プリフェッチ・バッファ内に前記所定数のラインを選択的にプリフェッチする請求項1に記載のデータ処理システム。
  3. データ処理システムでプリフェッチを行うための方法であって、
    マスタから記憶回路へ複数のアクセス要求を受信するステップと、
    前記複数のアクセス要求の少なくとも一部によって生じるプリフェッチ・バッファ内のミスとミスとの間に行ったプリフェッチの回数を制限するために、プリフェッチ制限を使用するステップと、
    を含み、前記プリフェッチ・バッファ内にヒットが発生し且つ前記プリフェッチ・バッファ内の前回のミス以降に発生したプリフェッチの総回数が前記プリフェッチ制限に達していない場合に限って、プリフェッチを前記ヒットに応じて行う方法。
  4. プリフェッチの回数を制限するために前記プリフェッチ制限を使用するステップが、
    前記プリフェッチ制限にいつ達したのかを判定するために、前記プリフェッチ・バッファ内のミスの後でプリフェッチをカウントするステップを含む請求項3に記載の方法。
  5. データ処理システムでプリフェッチを行うための方法であって、
    マスタから記憶回路への読出し要求を受信するステップと、
    前記読出し要求が、プリフェッチ・バッファ内のヒットまたはミスになるかどうかを判定するステップと、
    前記読出し要求がヒットになり、前記読出し要求の前回のミス以降に発生したプリフェッチの回数をカウントするプリフェッチ・カウンタの値が第1の値に達しておらず、且つ前記プリフェッチ・バッファ内に所定数のラインがまだ存在していない場合に、前記記憶回路から前記プリフェッチ・バッファ内に所定数のラインのプリフェッチを行うステップと、
    前記読出し要求がヒットになり且つ前記プリフェッチ・カウンタの値が前記第1の値に達していない場合に限って、前記記憶回路からのプリフェッチを行うステップと、
    前記読出し要求がミスになった場合に、前記読出し要求に応じて要求フェッチを行うとともに、前記プリフェッチ・カウンタの値を初期値である第2の値に設定するステップと、
    を含む方法。
JP2006521871A 2003-07-31 2004-07-13 データ処理システムにおけるプリフェッチ制御 Active JP4875981B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/631,136 US7200719B2 (en) 2003-07-31 2003-07-31 Prefetch control in a data processing system
US10/631,136 2003-07-31
PCT/US2004/022438 WO2005013039A2 (en) 2003-07-31 2004-07-13 Prefetch control in a data processing system

Publications (3)

Publication Number Publication Date
JP2007500897A JP2007500897A (ja) 2007-01-18
JP2007500897A5 JP2007500897A5 (ja) 2007-09-13
JP4875981B2 true JP4875981B2 (ja) 2012-02-15

Family

ID=34115765

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006521871A Active JP4875981B2 (ja) 2003-07-31 2004-07-13 データ処理システムにおけるプリフェッチ制御

Country Status (7)

Country Link
US (1) US7200719B2 (ja)
EP (1) EP1652092A2 (ja)
JP (1) JP4875981B2 (ja)
KR (1) KR101093317B1 (ja)
CN (1) CN100407165C (ja)
TW (1) TWI352293B (ja)
WO (1) WO2005013039A2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7526604B1 (en) * 2004-08-09 2009-04-28 Nvidia Corporation Command queueing speculative write prefetch
JP2006251923A (ja) * 2005-03-08 2006-09-21 Oki Electric Ind Co Ltd 先読み制御方法
US7346741B1 (en) * 2005-05-10 2008-03-18 Sun Microsystems, Inc. Memory latency of processors with configurable stride based pre-fetching technique
CN101261610B (zh) * 2007-03-06 2014-04-02 西北农林科技大学 多主设备无冲突访问从设备的方法及装置
JP4829191B2 (ja) * 2007-08-30 2011-12-07 株式会社東芝 キャッシュシステム
US9274965B2 (en) * 2008-12-15 2016-03-01 International Business Machines Corporation Prefetching data
US8473689B2 (en) * 2010-07-27 2013-06-25 Texas Instruments Incorporated Predictive sequential prefetching for data caching
US8583894B2 (en) * 2010-09-09 2013-11-12 Advanced Micro Devices Hybrid prefetch method and apparatus
CN102156633A (zh) * 2011-04-18 2011-08-17 北京北大众志微系统科技有限责任公司 预执行指导的数据预取方法及系统
US9342258B2 (en) 2011-09-01 2016-05-17 Freescale Semiconductor, Inc. Integrated circuit device and method for providing data access control
US9645934B2 (en) * 2013-09-13 2017-05-09 Samsung Electronics Co., Ltd. System-on-chip and address translation method thereof using a translation lookaside buffer and a prefetch buffer
US11010092B2 (en) 2018-05-09 2021-05-18 Micron Technology, Inc. Prefetch signaling in memory system or sub-system
US10754578B2 (en) 2018-05-09 2020-08-25 Micron Technology, Inc. Memory buffer management and bypass
US10714159B2 (en) * 2018-05-09 2020-07-14 Micron Technology, Inc. Indication in memory system or sub-system of latency associated with performing an access command
US10942854B2 (en) 2018-05-09 2021-03-09 Micron Technology, Inc. Prefetch management for memory
US11294808B2 (en) 2020-05-21 2022-04-05 Micron Technology, Inc. Adaptive cache
US11409657B2 (en) 2020-07-14 2022-08-09 Micron Technology, Inc. Adaptive address tracking
US11422934B2 (en) 2020-07-14 2022-08-23 Micron Technology, Inc. Adaptive address tracking
US20220091847A1 (en) * 2020-09-23 2022-03-24 Advanced Micro Devices, Inc. Prefetching from indirect buffers at a processing unit

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0495145A (ja) * 1990-08-07 1992-03-27 Hitachi Ltd 計算機システム
JPH096704A (ja) * 1995-06-19 1997-01-10 Nec Corp データ転送装置
JPH1055307A (ja) * 1996-04-22 1998-02-24 Internatl Business Mach Corp <Ibm> コンピュータ・システム
US20040205299A1 (en) * 2003-04-14 2004-10-14 Bearden Brian S. Method of triggering read cache pre-fetch to increase host read throughput
US20040221111A1 (en) * 2003-04-30 2004-11-04 Sun Microsystems, Inc. Computer system including a memory controller configured to perform pre-fetch operations

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4709324A (en) * 1985-11-27 1987-11-24 Motorola, Inc. Data processor control unit having an interrupt service using instruction prefetch redirection
US5146578A (en) * 1989-05-01 1992-09-08 Zenith Data Systems Corporation Method of varying the amount of data prefetched to a cache memory in dependence on the history of data requests
US5410653A (en) * 1992-06-16 1995-04-25 International Business Machines Corporation Asynchronous read-ahead disk caching using multiple disk I/O processes and dynamically variable prefetch length
US5619663A (en) * 1994-09-16 1997-04-08 Philips Electronics North America Corp. Computer instruction prefetch system
US6085291A (en) * 1995-11-06 2000-07-04 International Business Machines Corporation System and method for selectively controlling fetching and prefetching of data to a processor
US6901500B1 (en) * 2000-07-28 2005-05-31 Silicon Graphics, Inc. Method and apparatus for prefetching information and storing the information in a stream buffer
US6578130B2 (en) * 2001-10-18 2003-06-10 International Business Machines Corporation Programmable data prefetch pacing
US6832296B2 (en) * 2002-04-09 2004-12-14 Ip-First, Llc Microprocessor with repeat prefetch instruction

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0495145A (ja) * 1990-08-07 1992-03-27 Hitachi Ltd 計算機システム
JPH096704A (ja) * 1995-06-19 1997-01-10 Nec Corp データ転送装置
JPH1055307A (ja) * 1996-04-22 1998-02-24 Internatl Business Mach Corp <Ibm> コンピュータ・システム
US20040205299A1 (en) * 2003-04-14 2004-10-14 Bearden Brian S. Method of triggering read cache pre-fetch to increase host read throughput
US20040221111A1 (en) * 2003-04-30 2004-11-04 Sun Microsystems, Inc. Computer system including a memory controller configured to perform pre-fetch operations

Also Published As

Publication number Publication date
WO2005013039A2 (en) 2005-02-10
US20060053256A1 (en) 2006-03-09
EP1652092A2 (en) 2006-05-03
US7200719B2 (en) 2007-04-03
TWI352293B (en) 2011-11-11
JP2007500897A (ja) 2007-01-18
CN1813246A (zh) 2006-08-02
KR101093317B1 (ko) 2011-12-14
TW200519604A (en) 2005-06-16
WO2005013039A3 (en) 2005-07-21
KR20060052936A (ko) 2006-05-19
CN100407165C (zh) 2008-07-30

Similar Documents

Publication Publication Date Title
JP4875981B2 (ja) データ処理システムにおけるプリフェッチ制御
US8725987B2 (en) Cache memory system including selectively accessible pre-fetch memory for pre-fetch of variable size data
JP4064924B2 (ja) メモリアクセスを制御する方法及び装置
WO2003014945A2 (en) Data processing system having an adaptive priority controller
JP2002140289A (ja) 調整可能ワード・サイズ転送とアドレス配列/増加を備えたマイクロコントローラdmaオペレーション
US7299341B2 (en) Embedded system with instruction prefetching device, and method for fetching instructions in embedded systems
TW200416535A (en) Method and apparatus for determining a dynamic random access memory page management implementation
CN113900974B (zh) 一种存储装置、数据存储方法及相关设备
US6871246B2 (en) Prefetch control in a data processing system
TWI324755B (en) Processing modules with multilevel cache architecture
JP5058116B2 (ja) ストリーミングidメソッドによるdmac発行メカニズム
US6751724B1 (en) Method and apparatus for instruction fetching
JP4431492B2 (ja) 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット
US10120819B2 (en) System and method for cache memory line fill using interrupt indication
JP2008257508A (ja) キャッシュ制御方法およびキャッシュ装置並びにマイクロコンピュータ
US7657690B1 (en) Control of PCI memory read behavior using memory read alias and memory command reissue bits
JPH1011387A (ja) 情報処理装置
JP2000090003A (ja) 主記憶メモリのプリフェッチ機構を備えたマイクロプロセッサ

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070713

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070713

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100720

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111005

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111128

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

Free format text: PAYMENT UNTIL: 20141202

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4875981

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250