JP2018536230A - キャッシュへのアクセス - Google Patents

キャッシュへのアクセス Download PDF

Info

Publication number
JP2018536230A
JP2018536230A JP2018522055A JP2018522055A JP2018536230A JP 2018536230 A JP2018536230 A JP 2018536230A JP 2018522055 A JP2018522055 A JP 2018522055A JP 2018522055 A JP2018522055 A JP 2018522055A JP 2018536230 A JP2018536230 A JP 2018536230A
Authority
JP
Japan
Prior art keywords
cache
access instruction
access
delay
level
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018522055A
Other languages
English (en)
Other versions
JP7038656B2 (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2018536230A publication Critical patent/JP2018536230A/ja
Application granted granted Critical
Publication of JP7038656B2 publication Critical patent/JP7038656B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/602Details relating to cache prefetching
    • 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)

Abstract

データを取得するためのアクセス命令を読み取ることと、アクセス命令によって搬送される遅延識別子に従って、アクセス命令が遅延を発生させるかどうかを判定することと、遅延が発生する場合、キャッシュにアクセスして、アクセス命令によって搬送される位置識別子に従って、プリフェッチ操作を実行することと、アクセス命令に必要とされるデータが取得される位置に従って、アクセス命令によって搬送される遅延識別子及び位置識別子を修正することとを含む、キャッシュにアクセスするための方法。技術的解決法は、キャッシュアクセス時の低ヒット率の問題を解決し、ミスの確率を減少させ、ターゲットデータ取得時の各レベルのキャッシュへのレベル毎アクセスによって生じるアクセス遅延を減少させ、それに対応して、キャッシュアクセス時に発生する消費電力を低減し、CPU性能を向上させる。

Description

関連出願の相互参照
本開示は、参照によりその全体が本明細書に組み込まれる、2015年10月29日に出願された「Method, Device, and Electronic Apparatus for Accessing Cache」と題される中国特許出願第201510717175.9号の利益を主張する。
本開示は、コンピュータ技術の分野に関し、より詳細には、キャッシュにアクセスするための方法、及びキャッシュにアクセスするための装置に関する。本開示は、電子機器にも関する。
メモリアクセス速度の遅さと関連する問題を解決するために、マルチレベルキャッシュアーキテクチャが、データの時間的及び空間的局所性の特徴に従って導入される。用語「キャッシュ」は、1つまたは複数の小型で高速の関連する記憶装置を指す。プロセッサが読み書きするとき、プロセッサは最初に、ターゲットデータがキャッシュに存在するかどうか確認する。存在する場合、プロセッサは最初に、他の記憶域(メモリなど)ではなくキャッシュに向かう。マルチレベルキャッシュアーキテクチャは、アクセス性能を向上させる。レベル1キャッシュへのアクセス時、ターゲットデータがレベル1キャッシュに存在しない場合、すなわち、ミスが起こった場合、レベル2キャッシュがアクセスされる。ターゲットデータがレベル2キャッシュにも存在しない場合、ターゲットデータが取得されるまで、次のレベルのキャッシュがアクセスされる。マルチレベルキャッシュアーキテクチャは、アクセス遅延を減らすためにレベル1キャッシュ及びレベル2キャッシュを設定し、ミス率を減らすためにレベル3キャッシュを設定するが、マルチレベルキャッシュアーキテクチャの導入は、各レベルのキャッシュへのアクセス時の遅延も増大させる。たとえば、レベル1キャッシュへのアクセス時のミスからレベル2キャッシュへのアクセスまでは6サイクルかかり、レベル2キャッシュへのアクセス時のミスからレベル3キャッシュへのアクセスまでは8サイクルかかる。
示すように、マルチレベルキャッシュアーキテクチャがアクセス遅延を減らすために設定されるが、キャッシュアクセス時のミスかつ低ヒット率の場合、各レベルのキャッシュへのレベル毎アクセスによって生じるアクセス遅延は段階的に蓄積し、それは最終的に大きな遅延となる。さらに、各レベルのキャッシュへのレベル毎アクセスは、過剰に電力を消費する。各レベルのキャッシュに同時にアクセスする場合、ターゲットデータ取得のためのヒット率が向上し、ミスが減ることがあるが、過剰に電力を消費する。
本概要は、以下の「発明を実施するための形態」にさらに記載される概念を選択し、簡略化した形態で紹介するために示される。本概要は、本請求項のすべての主要な特徴または必須の特徴を特定することは意図しておらず、本請求項の主題の範囲を決定する助けとしてこれを単独で用いることも意図していない。たとえば、用語「技術(複数可)または技術的解決法(複数可)」は、上の文脈によってかつ本開示を通して可能にされる機器(複数可)、システム(複数可)、方法(複数可)、及び/またはコンピュータ可読命令を指してもよい。
本開示は、キャッシュアクセス時に遅延する従来の技術における問題を解決する、キャッシュにアクセスするための方法、及びキャッシュにアクセスするための装置を提供する。本開示は、電子機器にも関する。
本開示は、キャッシュにアクセスするための方法を提供し、ここで、キャッシュにアクセスするための方法は、
データを取得するためのアクセス命令を読み取ることと、
アクセス命令によって搬送される遅延識別子に従って、アクセス命令が遅延を発生させるかどうかを判定することと、
遅延が発生する場合、キャッシュにアクセスして、アクセス命令によって搬送される位置識別子に従って、プリフェッチ操作を実行することと、
アクセス命令によって取得されたデータの位置に従って、アクセス命令によって搬送される遅延識別子及び位置識別子を修正することと
を含む。
任意選択的に、アクセス命令によって搬送される遅延識別子及び位置識別子は、アクセス命令のキャッシュラインに設定されるビットでマーク付けされる識別子である。
任意選択的に、遅延は、
データミスの場合のレベル毎キャッシュアクセス時に発生する遅延、または、アクセス命令が演算を行うときに発生する遅延
を含む。
任意選択的に、アクセス命令によって搬送される遅延識別子に従って、アクセス命令が遅延を発生させるかどうかを判定することは、
アクセス命令が遅延を発生させるかどうかを判定するために、アクセス命令によって搬送され、ビットでマーク付けされる遅延識別子の数値を読み取ること
を含む。
任意選択的に、アクセス命令が遅延を発生させるかどうかを判定するために、アクセス命令によって搬送され、ビットでマーク付けされる遅延識別子の数値を読み取ることは、特に、
アクセス命令によって搬送され、バイナリビットでマーク付けされる遅延識別子の数値を読み取ること、及び、アクセス命令によって搬送され、バイナリビットでマーク付けされる遅延識別子の数値が1より大きいかどうかを判定することと、
数値が1より大きい場合、アクセス命令が遅延を発生させることを示すこと、及び、キャッシュにアクセスするステップを実行し、アクセス命令によって搬送される位置識別子に従って、プリフェッチ操作を実行することと
を含む。
任意選択的に、キャッシュにアクセスして、アクセス命令によって搬送される位置識別子に従って、プリフェッチ操作を実行することは、
アクセス命令によって搬送され、ビットでマーク付けされる位置識別子の数値を読み取ることと、
レベル1キャッシュへのアクセス時、アクセス命令によって搬送され、ビットでマーク付けされる位置識別子の数値に従って、位置識別子の数値に対応するキャッシュレベルまたはメモリにアクセスすることと
を含む。
任意選択的に、レベル1キャッシュへのアクセス時、アクセス命令によって搬送され、ビットでマーク付けされる位置識別子の数値に従って、位置識別子の数値に対応するキャッシュレベルまたはメモリにアクセスするステップの後、方法は、
アクセス命令によって必要とされるデータが、レベル1キャッシュ、及び位置識別子の数値に対応するキャッシュレベルまたはメモリで取得されるかどうかを判定することと、
取得されない場合、アクセス命令によって必要とされるデータが取得されるまで、複数のレベルのキャッシュ及びメモリの階層順に従って各レベルのキャッシュに順次アクセスすることと
を含む。
任意選択的に、アクセス命令によって必要とされるデータが取得された後、方法は、
アクセス命令によって取得されたデータの位置を記録すること。
をさらに含む。
任意選択的に、アクセス命令によって取得されたデータの位置に従って、アクセス命令によって搬送される遅延識別子及び位置識別子を修正することは、
アクセス命令によって取得されたデータの記録された位置がレベル1キャッシュであるかどうかを判定すること、
レベル1キャッシュである場合、アクセス命令によって搬送され、ビットでマーク付けされる遅延識別子をデクリメントすること、
または、
レベル1キャッシュではない場合、アクセス命令によって搬送され、ビットでマーク付けされる遅延識別子をインクリメントすること、及び、アクセス命令によって取得されたデータの記録された位置が、位置識別子の数値に対応するキャッシュレベルまたはメモリであるかどうかを判定すること、ならびに、アクセス命令によって取得されたデータの記録された位置が、位置識別子の数値に対応するキャッシュレベルまたはメモリではないことが判定された場合、アクセス命令によって取得されたデータの記録された位置に従って、アクセス命令によって搬送される位置識別子がキャッシュレベルまたはメモリを表し、そこからアクセス命令によって必要とされるデータが取得されるように、アクセス命令によって搬送される位置識別子を設定すること
を含む。
任意選択的に、アクセス命令によって搬送され、ビットでマーク付けされる遅延識別子をデクリメントするステップの後、方法は、
アクセス命令によって取得されたデータの記録された位置が、位置識別子の数値に対応するキャッシュレベルまたはメモリを含むかどうかを判定すること、
及び、
含む場合、位置識別子の数値に対応するキャッシュレベルまたはメモリで取得される、アクセス命令によって必要とされるデータを廃棄すること
を含む。
同様に、本開示は、キャッシュにアクセスするための装置をさらに提供し、ここで、キャッシュにアクセスするための装置は、
データを取得するためのアクセス命令を読み取るアクセス命令読取りユニットと、
アクセス命令によって搬送される遅延識別子に従って、アクセス命令が遅延を発生させるかどうかを判定する遅延識別子判定ユニットと、
遅延識別子判定ユニットから判定結果を受信し、遅延が発生する場合、キャッシュにアクセスして、アクセス命令によって搬送される位置識別子に従って、プリフェッチ操作を実行する、キャッシュアクセスプリフェッチユニットと、
アクセス命令によって取得されたデータの位置に従って、アクセス命令によって搬送される遅延識別子及び位置識別子を修正する識別子修正ユニットと
を含む。
任意選択的に、遅延識別子判定ユニットは、アクセス命令のキャッシュラインに設定されるビットでマーク付けされる識別子に従って、アクセス命令が遅延を発生させるかどうかを特に判定する。
任意選択的に、遅延識別子判定ユニットは、アクセス命令によって搬送される遅延識別子に従って、アクセス命令が、データミスの場合のレベル毎キャッシュアクセス時に発生する遅延、または、アクセス命令が演算を行うときに発生する遅延を発生させるかどうかを特に判定する。
任意選択的に、遅延識別子判定ユニットは、アクセス命令が遅延を発生させるかどうかを判定するために、アクセス命令によって搬送され、ビットでマーク付けされる遅延識別子の数値を特に読み取る。
任意選択的に、遅延識別子判定ユニットは、
アクセス命令によって搬送され、バイナリビットでマーク付けされる遅延識別子の数値を読み取り、アクセス命令によって搬送され、バイナリビットでマーク付けされる遅延識別子の数値が1より大きいかどうかを判定する数値読取りサブユニットと、
数値読取りサブユニットから判定結果を受信し、数値が1より大きい場合、キャッシュアクセスプリフェッチユニットを起動するキャッシュアクセスプリフェッチトリガサブユニットと
を含む。
任意選択的に、キャッシュアクセスプリフェッチユニットは、
アクセス命令によって搬送され、ビットでマーク付けされる位置識別子の数値を読み取るビット数値読取りサブユニットと、
レベル1キャッシュへのアクセス時、アクセス命令によって搬送され、ビットでマーク付けされる位置識別子の数値に従って、位置識別子の数値に対応するキャッシュレベルまたはメモリにアクセスするキャッシュアクセスプリフェッチサブユニットと
を含む。
任意選択的に、キャッシュアクセスプリフェッチユニットは、
レベル1キャッシュへのアクセス時、アクセス命令によって搬送され、ビットでマーク付けされる位置識別子の数値に従って、位置識別子の数値に対応するキャッシュレベルまたはメモリにアクセスした後、アクセス命令によって必要とされるデータが、レベル1キャッシュ、及び位置識別子の数値に対応するキャッシュレベルまたはメモリで取得されるかどうかを判定するデータ取得判定サブユニットと、
データ取得判定サブユニットから判定結果を受信し、取得されない場合、アクセス命令によって必要とされるデータが取得されるまで、複数のレベルのキャッシュ及びメモリの階層順に従って各レベルのキャッシュに順次アクセスするレベル毎アクセスサブユニットと
をさらに含む。
任意選択的に、キャッシュにアクセスするための装置は、
アクセス命令によって取得されたデータの位置を記録する位置記録ユニット
をさらに含む。
任意選択的に、識別子修正ユニットは、
アクセス命令によって取得されたデータの記録された位置がレベル1キャッシュであるかどうかを判定する位置判定サブユニットと、
位置判定サブユニットから判定結果を受信し、判定結果が「はい」である場合、アクセス命令によって搬送され、ビットでマーク付けされる遅延識別子をデクリメントするデクリメントサブユニットと、
位置判定サブユニットから判定結果を受信し、判定結果が「はい」でない場合、アクセス命令によって搬送され、ビットでマーク付けされる遅延識別子をインクリメントし、アクセス命令によって取得されたデータの記録された位置が位置識別子の数値に対応するキャッシュレベルまたはメモリであるかどうかを判定するインクリメントサブユニットと、
インクリメントサブユニットから判定結果を受信し、判定結果が「はい」でない場合、アクセス命令によって取得されたデータの記録された位置に従って、アクセス命令によって搬送される位置識別子がキャッシュレベルまたはメモリを表し、そこからアクセス命令によって必要とされるデータが取得されるように、アクセス命令によって搬送される位置識別子を設定する位置識別子設定サブユニットと
を含む。
任意選択的に、デクリメントサブユニットは、
アクセス命令によって搬送され、ビットでマーク付けされる遅延識別子がデクリメントされた後、アクセス命令によって取得されたデータの記録された位置が位置識別子の数値に対応するキャッシュレベルまたはメモリを含むかどうかを判定する繰り返し位置判定サブユニットと、
繰り返し位置判定サブユニットから判定結果を受信し、判定結果が「はい」である場合、位置識別子の数値に対応するキャッシュレベルまたはメモリで取得される、アクセス命令によって必要とされるデータを廃棄するデータ破棄サブユニットと
を含む。
さらに、本開示は、
ディスプレイと、
1つまたは複数のプロセッサと、
プロセッサによって読み取られて、実行されるとき、データを取得するためのアクセス命令を読み取ることと、アクセス命令によって搬送される遅延識別子に従って、アクセス命令が遅延を発生させるかどうかを判定することと、遅延が発生する場合、キャッシュにアクセスして、アクセス命令によって搬送される位置識別子に従って、プリフェッチ操作を実行することと、アクセス命令によって取得されたデータの位置に従って、アクセス命令によって搬送される遅延識別子及び位置識別子を修正することとを実行する、キャッシュ並列アクセスプログラムまたはコンピュータ実行可能命令を格納する1つまたは複数のコンピュータ記憶装置と
を含む電子機器をさらに提供する。
従来の技術と比較して、本開示は以下の利点を有する。
本開示による、キャッシュにアクセスするための方法、キャッシュにアクセスするための装置、及び電子機器は、データを取得するためのアクセス命令を読み取り、アクセス命令によって搬送される遅延識別子に従って、アクセス命令が遅延を発生させるかどうかを判定し、遅延が発生する場合、キャッシュにアクセスして、アクセス命令によって搬送される位置識別子に従って、プリフェッチ操作を実行し、アクセス命令によって必要とされるデータが取得された位置に従って、アクセス命令によって搬送される遅延識別子及び位置識別子を修正する。技術的解決法は、キャッシュアクセス時の低ヒット率の問題を解決し、ミスの確率を減少させ、ターゲットデータ取得時の各レベルのキャッシュへのレベル毎アクセスによって生じるアクセス遅延を減少させ、それに対応して、キャッシュアクセス時に発生する消費電力を低減し、CPU性能を向上させる。
本開示の例示的実施形態を明確に説明するために、図面の概要が以下で説明される。明らかに、以下で説明される図面は、本開示の単なるいくつかの例示的実施形態であり、これらの図面に従って、当業者によって他の図面が得られてもよい。
本開示の例示的実施形態による、キャッシュにアクセスするための方法のフローチャートである。 本開示の例示的実施形態による、キャッシュにアクセスして、アクセス命令によって搬送される位置識別子に従って、プリフェッチ操作を実行するフローチャートである。 本開示の例示的実施形態によるミス防止方法のフローチャートである。 本開示の例示的実施形態によるデータ廃棄方法のフローチャートである。 本開示の例示的実施形態による、キャッシュにアクセスするための装置の概略図である。 本開示の例示的実施形態による電子機器の概略図である。
本開示の上記の目的、特徴、及び利点をより明確に理解するために、本開示は添付図面及び特定の実施態様を参照してさらに詳細に説明される。矛盾なしに、本開示の例示的実施形態及び例示的実施形態の特徴を互いに組み合わせてもよいことに注目すべきである。
本開示を完全に理解するために、特定の詳細が以下の説明において図示されている。しかしながら、本開示は、本明細書の説明と異なる複数の他のモードで実装されてもよく、本開示の精神を逸脱しない範囲で、類似した展開が当業者によって行われてもよい。したがって、本開示は、以下で開示される具体的な実施態様によって限定されない。
本開示の例示的実施形態は、キャッシュにアクセスするための方法及びキャッシュにアクセスするための装置を提供し、本開示の例示的実施形態は電子機器も提供し、それらは1つずつ以下で詳細に説明される。
マルチレベルキャッシュアーキテクチャは、アクセス性能を向上させる。レベル1キャッシュへのアクセス時、ターゲットデータがレベル1キャッシュに存在しない場合、すなわち、ミスが起こった場合、レベル2キャッシュがアクセスされる。ターゲットデータがレベル2キャッシュにも存在しない場合、ターゲットデータが取得されるまで、次のレベルのキャッシュがアクセスされる。マルチレベルキャッシュアーキテクチャは、アクセス遅延を減らすためにレベル1キャッシュ及びレベル2キャッシュを設定し、ミス率を減らすためにレベル3キャッシュを設定するが、マルチレベルキャッシュアーキテクチャの導入は、各レベルのキャッシュへのアクセス時の遅延を増大もさせる。たとえば、レベル1キャッシュへのアクセス時のミスからレベル2キャッシュへのアクセスまでは6サイクルかかり、レベル2キャッシュへのアクセス時のミスからレベル3キャッシュへのアクセスまでは8サイクルかかる。示すように、マルチレベルキャッシュアーキテクチャがアクセス遅延を減らすために設定されるが、キャッシュアクセス時のミスかつ低ヒット率の場合には、各レベルのキャッシュへのレベル毎アクセスによって生じるアクセス遅延はなおも段階的に蓄積し、それは最終的に大きな遅延となる。さらに、各レベルのキャッシュへのレベル毎アクセスは、過剰に電力を消費する。各レベルのキャッシュに同時にアクセスする場合、ターゲットデータ取得のためのヒット率が向上し、ミスが減ることがあるが、過剰に電力を消費する。このような問題に関して、本開示の技術的解決法は、データを取得するためのアクセス命令を読み取り、アクセス命令によって搬送される遅延識別子に従って、アクセス命令が遅延を発生させるかどうかを判定し、遅延が発生する場合、キャッシュにアクセスして、アクセス命令によって搬送される位置識別子に従って、プリフェッチ操作を実行し、アクセス命令によって取得されたデータの位置に従って、アクセス命令によって搬送される遅延識別子及び位置識別子を修正し、それによって、キャッシュアクセス時のアクセス遅延を減少させる。
本開示の例示的実施形態によって提供されるキャッシュにアクセスするための方法及び装置は、コンピュータなどのインテリジェント機器に適用されてもよく、たとえば、スマートフォン、パームコンピュータ、タブレットコンピュータなどの、アプリケーションプログラムがインストールされる他の電子機器にも適用し、メモリアクセスにおける遅延を低減し、ユーザがより簡単に使用できるようにしてもよい。
本開示による技術的解決法をより容易に理解するために、例示的実施形態の詳細説明の前に、本開示の技術的解決法の概要が、以下のように説明される。
キャッシュは、データ交換のためのキャッシュ領域である(キャッシュという)。特定のハードウェアが1つのデータを読み取る必要があるとき、最初に、レベル1キャッシュで検索が行われる。データが見つかった場合、データはすぐに読み取られて、処理のためにCPUに送信される。データが見つからない場合、次のレベルのキャッシュがアクセスされる。データをキャッシュで見つけることができない場合、データは比較的低速のメモリから読み取られて、処理のためにCPUに送信される。同時に、データが配置されているデータブロックはキャッシュに転送され、その後は、データブロック全体が、メモリを呼び出すことなく、キャッシュから読み取られる。キャッシュの処理速度はメモリの処理速度よりかなり速いので、キャッシュの機能はまさに、ハードウェアのより速い処理を支援することである。
キャッシュは通常、レベル1キャッシュ(略してL1キャッシュ)を含むマルチレベルキャッシュアーキテクチャを採用し、レベル1キャッシュは、CPUカーネルのまわりに配置され、CPUの最も近くに統合されたCPUキャッシュであり、歴史上、最も初期のCPUキャッシュでもある。レベル1キャッシュの技術的な困難さ及び最も高い製造コストのために、容量改善は技術的な困難さ及びコストの大きな増加になるが、性能改善は大きくなく、そのため、価格性能比は低くなる。さらに、既存のレベル1キャッシュのヒット率は、すでに高い。したがって、レベル1キャッシュの容量はとりわけ最も小さく、それはレベル2キャッシュの容量より非常に小さい。
レベル2キャッシュ、略してL2キャッシュは、CPUの第2のレベルの高速キャッシュであり、内部チップと外部チップとに分類される。内部チップレベル2キャッシュはクロックスピードと同じ速度で動作し、外部レベル2キャッシュはクロックスピードのわずか半分の速度で動作する。L2高速キャッシュの容量は、CPUの性能にも影響を与える。
レベル3キャッシュ、略してL3キャッシュは、外部型を含んでもよく、それはメモリ待ち時間を減少させ、同時に、大量データ演算の場合のプロセッサの性能を向上させる。それは、メモリ待ち時間の減少、及び、大量データ演算能力の向上に有効である。また、サーバの分野において、このようなL3キャッシュの追加は、依然として、大きな性能改善をもたらす。第3のレベルのキャッシュは、主にミス率を低減するように設定される。
メモリは、コンピュータにおける最も重要な構成要素の1つである。それは、CPUとの通信のためのブリッジである。メモリはまた、内部メモリとも呼ばれ、CPUの演算データの一時的な格納、及び、ハードディスクドライブなどの外部メモリとのデータの交換に使用される。コンピュータが動作する限り、CPUは、演算のために演算データをメモリに転送する。演算の終了後、CPUは結果を送信する。メモリの動作は、コンピュータの安定した動作も決定する。
本開示の例示的実施形態は、キャッシュにアクセスするための方法を提供する。キャッシュにアクセスするための方法の例示的実施形態は、以下のように説明される。
図1を参照すると、図1は、本開示の例示的実施形態による、キャッシュにアクセスするための方法のフローチャートを示す。
例示的なキャッシュにアクセスするための方法は以下を含む。
ステップS101:データを取得するためのアクセス命令が読み取られる。
この例示的な実施形態において、データを取得するためのアクセス命令を読み取ることは、アクセス命令を記憶するコンピュータ記憶装置から、データを取得するためのアクセス命令を抜き出すことと、アクセス命令をロードすることとを含む。ステップS101において、データを取得するためのアクセス命令が読み取られたとき、アクセス命令が取得する必要があるデータのボリューム情報が取得される。
CPUがアクセス命令を実行するとき、最初に、アクセス命令を格納するコンピュータ記憶装置からアクセス命令を抜き出す、すなわち、命令抽出プロセスを完了することが必要であることに注目すべきである。次いで、アクセス命令は復号またはテストされ、対応する操作制御信号が、アクセス命令が取得する必要があるデータの対応する操作、たとえば、メモリ読み出し/書き込み操作、算術論理演算、または、入出力操作を開始するために生成される。アクセス命令の実行プロセスは、実際には、命令用記憶域から命令を抜き出し、命令を分析し、そして命令を実行する循環プロセスである。
ステップS103:アクセス命令によって搬送される遅延識別子に従って、アクセス命令が遅延を発生させるかどうかを判定する。
ステップS101において、データを取得するためのアクセス命令が読み取られるとき、アクセス命令によって搬送される遅延識別子を読み取ることも必要である。アクセス命令によって搬送される遅延識別子は、アクセス命令のキャッシュラインに設定されるビットでマーク付けされる識別子である。
この例示的な実施形態において、アクセス命令によって搬送される遅延識別子に従って、アクセス命令が遅延を発生させるかどうかを判定することは、以下の方法、つまり、アクセス命令が遅延を発生させるかどうかを判定するために、アクセス命令によって搬送され、ビットでマークを付けられる遅延識別子の数値を読み取ることで実装されてもよい。
CPUによってアクセス命令を実行するプロセスにおいて、キャッシュまたはメモリへのアクセス時にアクセス命令が遅延を発生させる場合、次の、このようなアクセス命令の実行は、同じレベルのキャッシュまたはメモリへのアクセス時、依然として遅延を発生させ、性能を阻害する。このような特徴に基づき、障害を予測することによって、実行時にアクセス命令が遅延を発生させるかどうかが判定される。
たとえば、アクセス命令のキャッシュラインに設定されるビットでマーク付けされる遅延識別子は、2つのバイナリビットによってマーク付けされる。すなわち、ビット1及びビット0は、アクセス命令のキャッシュラインに設定される。バイナリビットのため、アクセス命令によって搬送される遅延識別子は以下の値を有する。

ビット1 ビット0
0 0
0 1
1 0
1 1

ここで、ビット1及びビット0は、アクセス命令のキャッシュラインに設定される2つのバイナリビットである。ビット1及びビット0の下のバイナリ数値の4つのグループは、ビット1及びビット0に対応する特定値である。
値に関して、ビット1及びビット0の値を0及び0とするとき、ならびに、ビット1及びビット0の値を0及び1とするとき、すなわち、2つのバイナリビットの数値から変換される10進数値が1以下のとき、これは、アクセス命令がキャッシュアクセス中に遅延を発生させないことを示し、ビット1及びビット0の値を1及び0とするとき、ならびに、ビット1及びビット0の値を1及び1とするとき、すなわち、2つのバイナリビットの数値から変換される10進数値が1より大きいとき、これは、アクセス命令がキャッシュアクセス時に遅延を発生させることを示すことに注目すべきである。
ビット1及びビット0の特定値の上記4つのグループにおいて、値の各グループは、アクセス命令の実際の実行結果によって割り当てられ、値の各グループに対応する特定の意味はあらかじめ設定され、実行時にアクセス命令が遅延を発生させるかどうかを判定するために使用される。
この例示的な実施形態において、アクセス命令がキャッシュアクセス時に発生させることがある遅延には、以下の2つのタイプが含まれることに注目すべきである。
第1のタイプは、データミスの場合にはレベル毎キャッシュアクセス時に発生する遅延である。
CPUは、アクセス性能を向上させるために、マルチレベルキャッシュアーキテクチャを使用することに注目すべきである。アクセス順序は、レベル1キャッシュ、レベル2キャッシュ、レベル3キャッシュ、メモリである。しかしながら、各レベルのキャッシュへのアクセス時には、程度の異なる遅延が発生し、それが性能に影響を与える。
第1のタイプの場合、レベル1キャッシュへのアクセス時にミスが起こった(必要なデータがレベル1キャッシュで取得されなかった)後にのみ、レベル2キャッシュにアクセスする。レベル2キャッシュへのアクセス時にミスが起こった(必要なデータがレベル2キャッシュで取得されなかった)後、メモリにアクセスするまで、レベル3キャッシュにアクセスする。
特に、レベル1キャッシュへのアクセス時のミスからレベル2キャッシュへのアクセスまでは6サイクルかかり、レベル2キャッシュへのアクセス時のミスからレベル3キャッシュへのアクセスまでは8サイクルかかる。
第2のタイプは、アクセス命令が演算を実行するときに発生する遅延である。
アクセス命令がキャッシュアクセス後に複雑な演算を実行するときに発生する遅延に注目すべきである。たとえば、必要なデータがキャッシュから取得された後、このようなデータに基づく演算の場合には、演算遅延は、複雑な演算式または複雑な演算方法自体のために発生する。
特定の実施態様において、アクセス命令によって搬送される遅延識別子に従って、アクセス命令が遅延を発生させるかどうかを判定するステップ103は、以下の方法、つまり、アクセス命令によって搬送され、バイナリビットでマーク付けされる遅延識別子の数値を読み取ること、及び、アクセス命令によって搬送され、バイナリビットでマーク付けされる遅延識別子の数値が1より大きいかどうかを判定することと、数値が1より大きい場合に、アクセス命令が遅延を発生させることを示すこと、及び、キャッシュにアクセスして、アクセス命令によって搬送される位置識別子に従って、プリフェッチ操作を実行するステップを実行すること、または、数値が1以下である場合に、通常キャッシュアクセス順序に従って、キャッシュにアクセスすることと、で実装されてもよい。
アクセス命令によって搬送され、バイナリビットでマーク付けされる遅延識別子の数値が1より大きいかどうかを判定することは、特に、バイナリビットでマーク付けされる遅延識別子の数値を10進数値に変換することと、10進数値が1より大きいかどうかを判定することとを含むことに注目すべきである。
ステップS105:遅延の発生を判定することに応じて、キャッシュにアクセスし、アクセス命令によって搬送される位置識別子に従って、プリフェッチ操作を実行する。
ステップS103において、アクセス命令によって搬送され、バイナリビットでマーク付けされる遅延識別子の数値が1より大きい場合、それは、キャッシュアクセスまたはメモリアクセス時に、アクセス命令が遅延を発生させることを示し、この場合、ステップ105が実行される。
キャッシュアクセスまたはメモリアクセス時にアクセス命令が遅延を発生させることが判定された後、アクセス命令によって搬送される位置識別子のためにプリフェッチ操作が実行されてもよい。キャッシュにアクセスすること、及び、アクセス命令によって搬送される位置識別子に従って、プリフェッチ操作を実行することは、特に、ステップS105−1〜ステップS105−2を含み、それは図2を参照して以下で説明される。
図2を参照すると、図2は、本開示の例示的実施形態による、キャッシュにアクセスして、アクセス命令によって搬送される位置識別子に従って、プリフェッチ操作を実行するフローチャートを示す。
ステップS105−1:アクセス命令によって搬送され、ビットでマーク付けされる位置識別子の数値が読み取られる。
CPUによってアクセス命令を実行するプロセスにおいて、キャッシュまたはメモリへのアクセス時にアクセス命令が遅延を発生させる場合、次の、このようなアクセス命令の実行は、同じレベルのキャッシュまたはメモリへのアクセス時、依然として遅延を発生させ、性能を阻害する、すなわち、データが同じレベルのキャッシュまたはメモリで取得されることが示される。このような特徴に基づき、障害を予測することによって、アクセス命令が取得する必要があるデータがどのレベルのキャッシュまたはメモリに配置されるかを判定することが可能である。
アクセス命令によって搬送される遅延識別子は、アクセス命令のキャッシュラインに設定されるビットでマーク付けされる識別子であることに注目すべきである。
特に、アクセス命令のキャッシュラインに設定されるビットでマーク付けされる遅延識別子は、2つのバイナリビットを使用することによりマーク付けされる。すなわち、ビット3及びビット2は、マーク付けのためにアクセス命令のキャッシュラインに設定される。バイナリビットのため、アクセス命令によって搬送される遅延識別子は以下の値を有する。

ビット3 ビット2
0 0
0 1
1 0
1 1

ここで、ビット3及びビット2は、アクセス命令のキャッシュラインに設定される2つのバイナリビットであり、ビット3及びビット2の下のバイナリ数値の4つのグループは、ビット3及びビット2に対応する特定値である。
上記の値において、ビット3及びビット2の値を0及び0とするとき、このような2つのバイナリビットの数値から変換される10進数値は0であり、それは、アクセス命令によって必要とされるデータがレベル1キャッシュで取得される、すなわち、アクセス命令の実行時に発生する遅延が複雑な演算の実行により生じることを示すことに注目すべきである。ビット3及びビット2の値を0及び1とするとき、このような2つのバイナリビットの数値から変換される10進数値は1であり、それは、アクセス命令によって必要とされるデータがレベル2キャッシュで取得されることを示す。ビット3及びビット2の値を1及び0とするとき、このような2つのバイナリビットの数値から変換される10進数値は2であり、それは、アクセス命令によって必要とされるデータがレベル3キャッシュで取得されることを示す。ビット3及びビット2の値を1及び1とするとき、このような2つのバイナリビットの数値から変換される10進数値は3であり、
アクセス命令によって必要とされるデータがメモリで取得されることを示す。
たとえば、アクセス命令によって必要とされるデータの位置が、遅延が発生する位置によって得られる理由は、キャッシュデータ読み取りの開始から、必要とされるデータの読取りまで、いくつかのサイクルがかかるという点にある。たとえば、通常のアクセスの場合、レベル2キャッシュへのアクセス時、レベル2キャッシュの読取りは、レベル1キャッシュの読取りが終了した後にのみ開始され(レベル1キャッシュでの必要とされるデータの取得の失敗からレベル2キャッシュへのアクセスまで6サイクルかかる)、レベル2キャッシュを読み取るためにも複数サイクルかかる(たとえば、8周期)。アクセス命令によって必要とされるデータがレベル2キャッシュで取得された後、レベル3キャッシュはもはやアクセスされないので、レベル3キャッシュを読み取るためのサイクルはなく、したがって、キャッシュアクセス時に最終的に遅延が発生する位置は、アクセス命令によって必要とされるデータの位置である。
ビット3及びビット2の特定値の上記4つのグループにおいて、値の各グループは、アクセス命令によって必要とされるデータが取得される実際の位置によって割り振られ、値の各グループに対応する特定の意味はあらかじめ設定され、アクセス命令によって必要とされるデータの位置を判定するために使用される。
ステップS105−2:レベル1キャッシュへのアクセス時、位置識別子の数値に対応するキャッシュレベルまたはメモリは、アクセス命令によって搬送され、ビットでマーク付けされる位置識別子の数値に従ってアクセスされる。
このステップにおいて、アクセス命令によって搬送され、ビットでマーク付けされる、ステップS105−1で読み取られる位置識別子の数値を受信し、レベル1キャッシュへのアクセス時、位置識別子の数値に対応するキャッシュレベルまたはメモリは、アクセス命令によって搬送され、ビットでマーク付けされる位置識別子の数値に従ってアクセスされる。
たとえば、アクセス命令によって搬送され、ビットでマーク付けされる位置識別子の読み取られる数値が2である場合、レベル1キャッシュのデータが読み取られているとき、レベル3キャッシュのデータは同時にアクセスされる。
位置識別子の数値に対応するキャッシュレベルまたはメモリにアクセスすることは、アクセス命令がレベル1キャッシュへのアクセスを開始するとき、同時に、位置識別子の数値に対応するキャッシュレベルまたはメモリにアクセスすること、あるいは、アクセス命令がレベル1キャッシュにアクセスする前に位置識別子の数値に対応するキャッシュレベルまたはメモリにアクセスする限り、アクセス命令がレベル1キャッシュにアクセスしている間に、位置識別子の数値に対応するキャッシュレベルまたはメモリにアクセスすることを含んでもよく、その両方が本開示の保護範囲に属していることに注目すべきである。
レベル1キャッシュへのアクセス時、アクセス命令によって搬送され、ビットでマーク付けされる位置識別子の数値に従って、位置識別子の数値に対応するキャッシュレベルまたはメモリにアクセスするステップの後、アクセス命令がレベル1キャッシュにアクセスして、プリフェッチ操作を実行するときのミスを防ぐために、例示的実施形態の技術的解決法は、例示的実施態様を提供する。例示的実施態様は、ステップS106−1〜S106−2を含み、それは図3を参照して以下でさらに説明される。
図3を参照すると、図3は、本開示の例示的実施形態によるミス防止方法のフローチャートを示す。
ステップS106−1:アクセス命令によって必要とされるデータがレベル1キャッシュ及び位置識別子の数値に対応するキャッシュレベルまたはメモリで取得されるかどうか判定される。
ステップS101において、データを取得するためのアクセス命令が読み取られているとき、アクセス命令が取得する必要があるデータのボリューム情報が取得され、アクセス命令によって必要とされるデータがレベル1キャッシュ及び位置識別子の数値に対応するキャッシュレベルまたはメモリで取得されるかどうか判定される。
たとえば、レベル1キャッシュのデータ及び位置識別子の数値に対応するキャッシュレベルまたはメモリのデータが読み取られ、アクセス命令によって必要とされるデータと同じボリューム情報を有するデータ、及び、アクセス命令によって必要とされるデータと同じデータ型のデータが、読み取り時に取得されるかどうか判定される。
ステップS106−2:S106−1の判定の結果が「いいえ」である場合、アクセス命令によって必要とされるデータが取得されるまで、複数のレベルのキャッシュの階層順による各レベルのキャッシュ、及びメモリが順次アクセスされる。
この例示的な実施形態において、アクセス命令によって必要とされるデータが取得されるまで、複数のレベルのキャッシュ及びメモリの階層順に従って各レベルのキャッシュに順次アクセスすることは、以下の方法、つまり、アクセス命令によって必要とされるデータと同じ量の情報及び同じデータ型を有するデータが読み取り時に取得されない場合、アクセス命令によって必要とされるデータが取得されるまで、レベル2キャッシュ、レベル3キャッシュ、及びメモリに順次アクセスすることで実装されてもよい。
たとえば、アクセス命令によって搬送され、ビットでマーク付けされる位置識別子の読み取られる数値が2である。レベル1キャッシュのデータが読み取られるときにレベル3キャッシュのデータが同時にアクセスされた後、アクセス命令によって必要とされるデータが取得されない場合、レベル2キャッシュがアクセスされ、アクセス命令によって必要とされるデータがレベル2キャッシュで取得される場合、キャッシュアクセスは停止されて、メモリはアクセスされない。
アクセス命令によって必要とされるデータが取得された後、アクセス命令によって必要とされるデータの位置を取得するために、例示的実施形態の技術的解決法は、例示的実施態様を提供する。例示的実施態様において、アクセス命令によって必要とされるデータが取得された後、アクセス命令によって取得されたデータの位置は記録される。
たとえば、アクセス命令によって必要とされるデータがレベル2キャッシュで取得された場合、アクセス命令によって取得されたデータの位置は、レベル2キャッシュとして記録される。
ステップS107:アクセス命令によって搬送される遅延識別子及び位置識別子が、アクセス命令によって取得されたデータの位置に従って修正される。
この例示的な実施形態において、ステップ105の実行後、遅延が発生する場合、以下の操作を実行する。すなわち、アクセス命令によって支持される遅延識別子及び位置識別子をより正確にし、データ位置の変化によって生じるエラーを防ぐために、キャッシュにアクセスして、アクセス命令によって搬送される位置識別子に従って、プリフェッチ操作を実行する。アクセス命令によって取得されたデータの位置に従って、アクセス命令によって搬送される遅延識別子及び位置識別子を修正する操作は、たとえば、ステップS107−1からS107−4を含んでもよく、それは以下のように説明される。
ステップS107−1:アクセス命令によって取得されたデータの記録された位置がレベル1キャッシュであるかどうかを判定する。
この例示的な実施形態において、アクセス命令によって取得されたデータの記録された位置がレベル1キャッシュであるかどうかを判定することは、以下の方法、つまり、アクセス命令によって取得されたデータの記録された位置を取得することと、アクセス命令によって取得されたデータの記録された位置がレベル1キャッシュであるかどうかを判定することとで実装されてもよい。
ステップS107−2:S107−1での判定の結果が「はい」である場合、アクセス命令によって搬送され、ビットでマーク付けされる遅延識別子はデクリメントされる。
このステップにおいて、S107−1での判定結果が受信され、アクセス命令によって取得されたデータの記録された位置がレベル1キャッシュである場合、アクセス命令によって搬送され、ビットでマーク付けされる遅延識別子はデクリメントされる。
たとえば、アクセス命令によって搬送され、ビットでマーク付けされる遅延識別子をデクリメントすることは、アクセス命令のキャッシュラインに設定されるビット1及びビット0の値を取得することと、ビット0の値から1を引くこととを含み、ここで、ビット0の値が0である場合、バイナリビットのため、ビット1から借りる。
たとえば、ビット1及びビット0の値が1及び1である場合、ビット0の値から1が引かれた後、ビット1及びビット0の値は1及び0である。ビット1及びビット0の値が1及び0である場合、ビット0の値から1と引くとき、ビット1から借りて、ビット1及びビット0の値は0及び1である。
ビット1及びビット0の値が0及び0である場合、アクセス命令によって搬送され、ビットでマーク付けされる遅延識別子がデクリメントされた後、ビット1及びビット0の値は依然として0及び0であることに注目すべきである。
プリフェッチ操作が実行されるとき、レベル1キャッシュ及び位置識別子の数値に対応するキャッシュレベルまたはメモリの読取り時に、データ取得を繰り返すことを防ぐために、本例示的実施形態の技術的解決法は、例示的実施態様を提供する。例示的実施態様は、ステップS107−2−1〜S107−2−2を含んでもよく、それは図4を参照して以下でさらに説明される。
図4を参照すると、図4は、本開示の例示的実施形態による、データ破棄方法のフローチャートを示す。
ステップS107−2−1:アクセス命令によって取得されたデータの記録された位置が、位置識別子の数値に対応するキャッシュレベルまたはメモリを含むかどうかを判定する。
アクセス命令によって取得されたデータの記録された位置に従って、アクセス命令によって取得されたデータの記録された位置が、位置識別子の数値に対応するキャッシュレベルまたはメモリをさらに含む、すなわち、アクセス命令によって取得されたデータの2つの位置が記録されているかどうか判定される。
たとえば、レベル1キャッシュ及びレベル3キャッシュの両方がアクセス命令によって必要とされるデータを含み、アクセス時にプリフェッチ操作がレベル3キャッシュで実行される場合、アクセス命令によって取得されたデータの位置が記録されるとき、レベル1キャッシュ及びレベル3キャッシュが記録される。
ステップS107−2−2:S107−2−1での判定の結果が「はい」である場合、
位置識別子の数値に対応するキャッシュレベルまたはメモリで取得される、アクセス命令によって必要とされるデータは、廃棄される。
このステップにおいて、ステップS107−2−1の判定結果が受信され、アクセス命令によって取得されたデータの記録された位置が、位置識別子の数値に対応するキャッシュレベルまたはメモリをさらに含む場合、位置識別子の数値に対応するキャッシュレベルまたはメモリで取得される、アクセス命令によって必要とされるデータは、廃棄される。
たとえば、アクセス命令によって必要とされるデータがレベル1キャッシュ及びレベル3キャッシュに含まれる場合、プリフェッチ操作によってレベル3キャッシュから取得されたデータは廃棄される。
ステップS107−3:S107−1での判定の結果が「いいえ」である場合、アクセス命令によって搬送され、ビットでマーク付けされる遅延識別子はインクリメントされ、アクセス命令によって取得されたデータの記録された位置が位置識別子の数値に対応するキャッシュレベルまたはメモリであるかどうか判定される。
このステップにおいて、ステップS107−1の判定結果が受信され、アクセス命令によって取得されたデータの記録された位置がレベル1キャッシュでない場合、アクセス命令によって搬送され、ビットでマーク付けされる遅延識別子はインクリメントされ、アクセス命令によって取得されたデータの記録された位置が位置識別子の数値に対応するキャッシュレベルまたはメモリであるかどうか判定される。
たとえば、アクセス命令によって搬送され、ビットでマーク付けされる遅延識別子をインクリメントすることは、アクセス命令のキャッシュラインに設定されるビット1及びビット0の値を取得することと、ビット0の値に1を加えることとを含む。ビット0の値が1である場合、バイナリビットのため、ビット1に繰り上げられる。
たとえば、ビット1及びビット0の値が0及び1である場合、ビット0の値に1を加えるとき、ビット1に繰り上げられ、ビット1及びビット0の値は1及び0となる。ビット1及びビット0の値が1及び0である場合、ビット0の値に1を加え、ビット1及びビット0の値は1及び1となる。
ビット1及びビット0の値が1及び1であるとき、アクセス命令によって搬送され、ビットでマーク付けされる遅延識別子がインクリメントされた後、ビット飽和のため、ビット1及びビット0の値は依然として1及び1であることに注目すべきである。
この例示的な実施形態において、アクセス命令によって取得されたデータの記録された位置が、位置識別子の数値に対応するキャッシュレベルまたはメモリであるかどうかを判定することは、以下の方法、つまり、アクセス命令によって取得されたデータの記録された位置、及び位置識別子の数値に対応するキャッシュレベルまたはメモリを取得することと、アクセス命令によって取得されたデータの記録された位置が、位置識別子の数値に対応するキャッシュレベルまたはメモリと一致するかどうかを判定することと
で実装されてもよい。
たとえば、アクセス命令によって取得される前記データの記録された位置はレベル2キャッシュであり、位置識別子の数値に対応する位置はレベル3キャッシュである。
ステップS107−4:S107−3での判定の結果が「いいえ」である場合、アクセス命令によって搬送される位置識別子は、アクセス命令によって取得されたデータの記録された位置に従って、アクセス命令によって搬送される位置識別子がキャッシュレベルまたはメモリを表し、そこからアクセス命令によって必要とされるデータが取得されるように設定される。
このステップにおいて、ステップS107−3の判定結果が受信され、アクセス命令によって取得されたデータの記録された位置が、位置識別子の数値に対応するキャッシュレベルまたはメモリと一致しない場合、アクセス命令によって支持される位置識別子は、アクセス命令によって取得されたデータの記録された位置に従って、アクセス命令によって搬送される位置識別子がキャッシュレベルまたはメモリを表し、そこからアクセス命令によって必要とされるデータが取得されるように設定される。
この例示的な実施形態において、アクセス命令によって取得されたデータの記録された位置に従って、アクセス命令によって搬送される位置識別子を、アクセス命令によって搬送される位置識別子がキャッシュレベルまたはメモリを表し、そこからアクセス命令によって必要とされるデータが取得されるように設定することは、以下の方法、つまり、アクセス命令によって取得されたデータの記録された位置を取得することと、アクセス命令によって取得されたデータの位置を、ビット3及びビット2のあらかじめ設定された対応する関係に従って、ビット3及びビット2の対応する特定値に変換することと、ビット3及びビット2の特定値に従って、アクセス命令によって搬送される位置識別子を設定することとで実装されてもよい。
たとえば、アクセス命令によって取得されたデータの記録された位置は、レベル2キャッシュである。アクセス命令によって搬送される位置識別子に対応するビット3及びビット2の値は、1及び0であり、レベル3キャッシュがプリフェッチ操作時にアクセスされることを示す。次いで、アクセス命令によって取得されたデータの記録された位置は、レベル2キャッシュであり、対応するビット3及びビット2の特定値0及び1に変換される。こうして、アクセス命令によって搬送される位置識別子に対応するビット3及びビット2の値は設定され、アクセス命令によって搬送される位置識別子に対応するビット3及びビット2の値は、0及び1に更新される。
従来のキャッシュ及びメモリアクセスは、キャッシュのマルチレベルキャッシュアーキテクチャによって、各レベルに順次アクセスすることであるので、キャッシュ及びメモリアクセス時に遅延が発生する。たとえば、アクセス命令によって必要とされるデータはメモリにあり、各レベルは、マルチレベルキャッシュアーキテクチャによって順次アクセスされる。メモリにアクセスする前に、レベル1キャッシュ、レベル2キャッシュ、及びレベル3キャッシュにアクセスする必要があり、そのため、アクセス遅延が発生する。しかしながら、本開示の例示的実施形態による技術的解決法は、障害予測によって、アクセス命令の実行時に遅延が発生するかどうかを判定し、アクセス命令によって必要とされるデータがどのレベルのキャッシュまたはメモリに配置されるかを判定し、マルチレベルキャッシュアーキテクチャによって各レベルが順次アクセスされるとき、アクセス命令によって必要とされるデータの予測された位置にアクセスし、それはキャッシュまたはメモリアクセスのための時間を節約し、データのヒット率を向上させ、キャッシュまたはメモリアクセス時のミス率を小さくし、それによって、対応して、キャッシュアクセス時の消費電力を低減し、CPU性能を向上させる。
上記の例示的実施形態において、キャッシュにアクセスするための方法が提供される。キャッシュにアクセスするための方法に対応し、本開示は、キャッシュにアクセスするための装置をさらに提供する。装置の例示的実施形態は、その操作が方法の例示的実施形態の操作と略同様であるので、比較的簡単に説明される。関連する部分については、方法の例示的実施形態における説明を参照してもよい。装置の例示的実施形態の以下の説明は、単に例示しただけのものである。キャッシュにアクセスするための装置の例示的実施形態は、以下のように説明される。
図5を参照すると、図5は、本開示の例示的実施形態による、キャッシュにアクセスするための装置500の概略図を示す。
装置500は、1つまたは複数のプロセッサ502またはデータ処理ユニット(複数可)、及び1つまたは複数のコンピュータ記憶装置504を含む。装置500は、1つまたは複数の入出力インタフェース506と、ネットワークインタフェース(複数可)508とをさらに含んでもよい。コンピュータ記憶装置504は、コンピュータ可読媒体の一例である。
コンピュータ記憶装置504は、アクセス命令読取りユニット501と、遅延識別子判定ユニット503と、キャッシュアクセスプリフェッチユニット505と、識別子修正ユニット507とを含む、複数のモジュールまたはユニットをその中に格納してもよい。
アクセス命令読取りユニット501は、データを取得するためのアクセス命令を読み取る。
遅延識別子判定ユニット503は、アクセス命令によって搬送される遅延識別子に従って、アクセス命令が遅延を発生させるかどうかを判定する。
キャッシュアクセスプリフェッチユニット505は、遅延識別子判定ユニット503から判定結果を受信し、遅延が発生する場合、キャッシュにアクセスして、アクセス命令によって搬送される位置識別子に従って、プリフェッチ操作を実行する。
識別子修正ユニット507は、アクセス命令によって取得されたデータの位置に従って、アクセス命令によって搬送される遅延識別子及び位置識別子を修正する。
任意選択的に、遅延識別子判定ユニット503は、ビットでマーク付けされ、アクセス命令のキャッシュラインに設定される識別子に従って、アクセス命令が遅延を発生させるかどうかをさらに判定する。
任意選択的に、遅延識別子判定ユニット503は、アクセス命令によって搬送される遅延識別子に従って、データミスの場合のレベル毎キャッシュアクセス時に発生する遅延、または、アクセス命令が演算を行うときに発生する遅延をアクセス命令が発生させるかどうかをさらに判定する。
任意選択的に、遅延識別子判定ユニット503は、アクセス命令が遅延を発生させるかどうかを判定するために、アクセス命令によって搬送され、ビットでマーク付けされる遅延識別子の数値をさらに読み取る。
任意選択的に、遅延識別子判定ユニット503は、数値読取りサブユニットと、キャッシュアクセスプリフェッチトリガサブユニットとを含む。
数値読取りサブユニットは、アクセス命令によって搬送され、バイナリビットでマーク付けされる遅延識別子の数値を読み取り、アクセス命令によって搬送され、バイナリビットでマーク付けされる遅延識別子の数値が1より大きいかどうかを判定する。
キャッシュアクセスプリフェッチトリガサブユニットは、数値読取りサブユニットから判定結果を受信し、数値が1より大きい場合、キャッシュアクセスプリフェッチユニットを起動する。
任意選択的に、キャッシュアクセスプリフェッチユニット505は、ビット数値読取りサブユニットと、キャッシュアクセスプリフェッチサブユニットとを含む。
ビット数値読取りサブユニットは、アクセス命令によって搬送され、ビットでマーク付けされる位置識別子の数値を読み取る。
キャッシュアクセスプリフェッチサブユニットは、レベル1キャッシュへのアクセス時、アクセス命令によって搬送され、ビットでマーク付けされる位置識別子の数値に従って、位置識別子の数値に対応するキャッシュレベルまたはメモリにアクセスする。
任意選択的に、キャッシュアクセスプリフェッチユニット505は、データ取得判定サブユニットと、レベル毎アクセスサブユニットとをさらに含む。
レベル1キャッシュへのアクセス時、位置識別子の数値に対応するキャッシュレベルまたはメモリにアクセスした後、アクセス命令によって搬送され、ビットでマーク付けされる位置識別子の数値に従って、データ取得判定サブユニットは、アクセス命令によって必要とされるデータがレベル1キャッシュ及び位置識別子の数値に対応するキャッシュレベルまたはメモリで取得されるかどうかを判定する。
レベル毎アクセスサブユニットは、データ取得判定サブユニットから判定結果を受信し、結果が「いいえ」である場合、複数のレベルのキャッシュの階層順に従って、アクセス命令によって必要とされるデータが取得されるまで、各レベルのキャッシュ及びメモリに順次アクセスする。
任意選択的に、装置500は、位置記録ユニット(図5に示されない)をさらに含んでもよい。位置記録ユニットは、アクセス命令によって取得されたデータの位置を記録する。
任意選択的に、識別子修正ユニット507は、位置判定サブユニットと、デクリメントサブユニットと、インクリメントサブユニットと、位置識別子設定サブユニットと(すべて示されない)を含む。
位置判定サブユニットは、アクセス命令によって取得されたデータの記録された位置がレベル1キャッシュであるかどうかを判定する。
デクリメントサブユニットは、位置判定サブユニットから判定結果を受信し、判定結果が「はい」である場合、アクセス命令によって搬送され、ビットでマーク付けされる遅延識別子をデクリメントする。
インクリメントサブユニットは、位置判定サブユニットから判定結果を受信し、判定結果が「いいえ」である場合、アクセス命令によって搬送され、ビットでマーク付けされる遅延識別子をインクリメントし、アクセス命令によって取得されたデータの記録された位置が位置識別子の数値に対応するキャッシュレベルまたはメモリであるかどうかを判定する。
位置識別子設定サブユニットは、インクリメントサブユニットから判定結果を受信し、
判定結果が「いいえ」である場合、アクセス命令によって取得されたデータの記録された位置に従って、アクセス命令によって搬送される位置識別子を、アクセス命令によって搬送される位置識別子がキャッシュレベルまたはメモリを表し、そこからアクセス命令によって必要とされるデータが取得されるように設定する。
任意選択的に、デクリメントサブユニットは、繰り返し位置判定サブユニットと、データ破棄サブユニットと(どちらも示されない)を含む。
繰り返し位置判定サブユニットは、アクセス命令によって搬送され、ビットでマーク付けされる遅延識別子がデクリメントされた後、アクセス命令によって取得されたデータの記録された位置が位置識別子の数値に対応するキャッシュレベルまたはメモリを含むかどうかを判定する。
データ破棄サブユニットは、繰り返し位置判定サブユニットの判定結果を受信し、判定結果が「はい」である場合、位置識別子の数値に対応するキャッシュレベルまたはメモリで取得される、アクセス命令によって必要とされるデータを廃棄する。
上記の例示的実施形態において、キャッシュにアクセスするための方法及びキャッシュにアクセスするための装置が提供される。さらに、本開示は電子機器をさらに提供し、電子機器の例示的実施形態は以下のように説明される。
図6を参照すると、図6は、本開示の例示的実施形態による電子機器600の概略図である。
電子機器は、ディスプレイ601と、1つまたは複数のプロセッサ603またはデータ処理ユニット(複数可)と、1つまたは複数のコンピュータ記憶装置605とを含む。コンピュータ記憶装置605は、コンピュータ可読媒体の一例である。
コンピュータ記憶装置605は、プロセッサ603によって読み取られて、実行されるとき、データを取得するためのアクセス命令を読み取ることと、アクセス命令によって搬送される遅延識別子に従って、アクセス命令が遅延を発生させるかどうかを判定することと、遅延が発生する場合、キャッシュにアクセスして、アクセス命令によって搬送される位置識別子に従って、プリフェッチ操作を実行することと、アクセス命令によって取得されたデータの位置に従って、アクセス命令によって搬送される遅延識別子及び位置識別子を修正することとを実行する、キャッシュ並列アクセスプログラムまたはコンピュータ実行可能命令を格納する。
典型的な構成において、装置は、1つまたは複数の中央処理装置(CPU)と、I/Oインタフェースと、ネットワークインタフェースと、コンピュータ可読媒体とを含む。
コンピュータ可読媒体は、揮発性メモリ、ランダムアクセスメモリ(RAM)、及び/または不揮発性メモリ、たとえば、リードオンリーメモリ(ROM)またはフラッシュRAMなどを含んでもよい。
1.コンピュータ可読媒体は、恒久的な、非恒久的な、携帯型の、及び非携帯型の媒体を含み、それらは任意の方法または技術によって情報記憶を実装することができる。情報は、コンピュータ実行可能命令、データ構造、プログラムモジュール、または他のデータでもよい。コンピュータの記憶媒体の例は、演算装置によってアクセスできる情報を格納するために使用することができる、相変化RAM(PRAM)、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、他のタイプのランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、電気的消去可能プログラマブルリードオンリーメモリ(EEPROM)、フラッシュメモリまたは他の内部メモリ技術、コンパクトディスクリードオンリーメモリ(CD−ROM)、デジタル多目的ディスク(DVD)または他の光学メモリ、カセット、カセット及びディスクメモリまたは他の磁気メモリデバイス、あるいは任意の他の非伝送媒体を含むが、これらに限定されるものではない。本明細書の定義に従って、コンピュータ可読媒体には、変調データ信号及びキャリアなどの非一時的コンピュータ可読媒体(一時的な媒体)を含まない。
2.当業者は、本開示の例示的実施形態は、方法、システム、またはコンピュータプログラム製品として実装されてもよいことを理解すべきである。したがって、本開示は、全面的にハードウェアの実施形態、全面的にソフトウェアの実施形態、またはソフトウェアとハードウェアとを組み合わせた実施形態として実装されてもよい。さらに、本開示は、コンピュータ実行可能命令を格納する(磁気ディスクメモリ、CD−ROM、光学メモリなどを含むが、これらに限定されない)1つまたは複数のコンピュータ使用可能記憶媒体上に実装されるコンピュータプログラム製品でもよい。
本開示の例示的実施形態が上で開示されたが、それらは本開示を限定するために使用すべきではない。当業者は、本開示の精神と範囲から逸脱することなく、可能な変更及び修正を行ってもよい。したがって、本開示の保護範囲は、本開示の特許請求の範囲によって定義される範囲でなければならない。

Claims (20)

  1. データを取得するためのアクセス命令を読み取ることと、
    前記アクセス命令によって搬送される遅延識別子に従って、前記アクセス命令が遅延を発生させるかどうかを判定することと、
    前記アクセス命令が前記遅延を発生させることの判定に応じて、キャッシュにアクセスして、前記アクセス命令によって搬送される位置識別子に従って、プリフェッチ操作を実行することと、
    前記アクセス命令によって取得されたデータの位置に従って、前記アクセス命令によって搬送される前記遅延識別子及び前記位置識別子を修正することと
    を含む、
    キャッシュにアクセスするための方法。
  2. 前記遅延が、データミスの場合のレベル毎キャッシュアクセス時に発生する遅延を含む、
    請求項1に記載のキャッシュにアクセスするための方法。
  3. 前記遅延が、前記アクセス命令が演算を行うときに発生する遅延を含む、
    請求項1に記載のキャッシュにアクセスするための方法。
  4. 前記アクセス命令によって搬送される前記遅延識別子及び前記位置識別子が、前記アクセス命令のキャッシュラインに設定されるビットでマーク付けされる識別子である、
    請求項1に記載のキャッシュにアクセスするための方法。
  5. 前記アクセス命令によって搬送される前記遅延識別子に従って、前記アクセス命令が遅延を発生させるかどうかを判定することが、
    前記アクセス命令が遅延を発生させるかどうかを判定するために、ビットでマーク付けされる前記遅延識別子の数値を読み取ること
    を含む、
    請求項1に記載のキャッシュにアクセスするための方法。
  6. 前記アクセス命令が前記遅延を発生させるかどうかを判定するために、ビットでマーク付けされる前記遅延識別子の前記数値を読み取ることが、
    前記遅延識別子の前記数値を読み取ることと、
    前記遅延識別子の前記数値が1より大きいかどうかを判定することと、
    前記アクセス命令が前記遅延を発生させることを示し、前記キャッシュにアクセスし、前記数値が1より大きいことの判定に応じて、前記位置識別子に従って、前記プリフェッチ操作を実行することと
    を含む、
    請求項5に記載のキャッシュにアクセスするための方法。
  7. 前記キャッシュにアクセスし、前記アクセス命令が前記遅延を発生させることの判定に応じて、前記アクセス命令によって搬送される前記位置識別子に従って、前記プリフェッチ操作を実行することが、
    ビットでマークを付けられる前記位置識別子の数値を読み取ることと、
    レベル1キャッシュへのアクセス時、前記位置識別子の前記数値に従って、前記位置識別子の前記数値に対応するキャッシュレベルまたはメモリにアクセスすることと
    を含む、
    請求項1に記載のキャッシュにアクセスするための方法。
  8. 前記レベル1キャッシュへのアクセス時、前記位置識別子の前記数値に従って、前記位置識別子の前記数値に対応する前記キャッシュレベルまたはメモリにアクセスした後、
    前記アクセス命令によって必要とされる前記データが、前記レベル1キャッシュ、及び前記位置識別子の前記数値に対応する前記キャッシュレベルまたはメモリで取得されるかどうかを判定することと、
    前記データが取得されないことの判定に応じて、前記アクセス命令によって必要とされる前記データが取得されるまで、複数のレベルのキャッシュ及びメモリの階層順に従って各レベルのキャッシュに順次アクセスすることと
    をさらに含む、
    請求項7に記載のキャッシュにアクセスするための方法。
  9. 前記アクセス命令によって必要とされる前記データが取得された後、前記アクセス命令によって取得された前記データの前記位置を記録すること
    をさらに含む、
    請求項8に記載のキャッシュにアクセスするための方法。
  10. 前記アクセス命令によって取得された前記データの前記位置に従って、前記アクセス命令によって搬送される前記遅延識別子及び前記位置識別子を修正することが、
    前記アクセス命令によって取得された前記データの前記記録された位置がレベル1キャッシュであるかどうかを判定することと、
    前記アクセス命令によって取得された前記データの前記記録された位置が前記レベル1キャッシュであることの判定に応じて、前記遅延識別子をデクリメントすることと
    を含む、
    請求項1に記載のキャッシュにアクセスするための方法。
  11. 前記遅延識別子をデクリメントした後、
    前記アクセス命令によって取得された前記データの前記記録された位置が、前記位置識別子の前記数値に対応する前記キャッシュレベルまたはメモリを含むかどうかを判定することと、
    前記アクセス命令によって取得された前記データの前記記録された位置が前記位置識別子の前記数値に対応する前記キャッシュレベルまたはメモリを含むことの判定に応じて、前記位置識別子の前記数値に対応する前記キャッシュレベルまたはメモリから取得される、前記アクセス命令によって必要とされる前記データを廃棄することと
    をさらに含む、
    請求項10に記載のキャッシュにアクセスするための方法。
  12. 前記アクセス命令によって取得された前記データの前記位置に従って、前記アクセス命令によって搬送される前記遅延識別子及び前記位置識別子を修正することが、
    前記アクセス命令によって取得された前記データの前記記録された位置がレベル1キャッシュであるかどうかを判定することと、
    前記アクセス命令によって取得された前記データの前記記録された位置が前記レベル1キャッシュではないことの判定に応じて、
    前記遅延識別子をインクリメントすることと、
    前記アクセス命令によって取得された前記データの前記記録された位置が、前記位置識別子の前記数値に対応する前記キャッシュレベルまたはメモリであるかどうかを判定することと、
    前記アクセス命令によって取得された前記データの延期記録された位置に従って、前記アクセス命令によって取得された前記データの前記記録された位置が前記位置識別子の前記数値に対応する前記キャッシュレベルまたはメモリではないことの判定に応じて、前記位置識別子がキャッシュレベルまたはメモリを表し、そこから前記アクセス命令によって必要とされる前記データが取得されるように、前記位置識別子を設定することと
    を含む、
    請求項1に記載のキャッシュにアクセスするための方法。
  13. データを取得するためのアクセス命令を読み取るアクセス命令読取りユニットと、
    前記アクセス命令によって搬送される遅延識別子に従って、前記アクセス命令が遅延を発生させるかどうかを判定する遅延識別子判定ユニットと、
    前記アクセス命令が前記遅延を発生させることの判定に応じて、前記キャッシュにアクセスして、前記アクセス命令によって搬送される位置識別子に従って、プリフェッチ操作を実行するキャッシュアクセスプリフェッチユニットと、
    前記アクセス命令によって取得される前記データの位置に従って、前記アクセス命令によって搬送される前記遅延識別子及び前記位置識別子を修正する識別子修正ユニットと
    を備える、
    キャッシュにアクセスするための装置。
  14. 前記遅延識別子判定ユニットが、アクセス命令のキャッシュラインに設定されるビットでマーク付けされる遅延識別子に従って、前記アクセス命令が遅延を発生させるかどうかをさらに判定する、
    請求項13に記載のキャッシュにアクセスするための装置。
  15. 前記遅延識別子判定ユニットが、前記遅延識別子に従って、前記アクセス命令が、データミスの場合のレベル毎キャッシュアクセス時、または、前記アクセス命令が演算を行うときに発生する前記遅延を発生させるかどうかをさらに判定する、
    請求項13に記載のキャッシュにアクセスするための装置。
  16. 前記遅延識別子判定ユニットが、前記アクセス命令が前記遅延を発生させるかどうかを判定するために、ビットでマーク付けされる前記遅延識別子の数値をさらに読み取る、
    請求項13に記載のキャッシュにアクセスするための装置。
  17. 前記遅延識別子判定ユニットが、
    バイナリビットでマーク付けされる前記遅延識別子の前記数値を読み取り、前記遅延識別子の前記数値が1より大きいかどうかを判定する数値読取りサブユニットと、
    前記数値読取りサブユニットから判定結果を受信し、前記数値が1より大きいことの判定結果における結果の判定に応じて、キャッシュアクセスプリフェッチユニットを起動するキャッシュアクセスプリフェッチトリガサブユニットと
    を含む、
    請求項16に記載のキャッシュにアクセスするための装置。
  18. 前記キャッシュアクセスプリフェッチユニットが、
    ビットでマーク付けされる前記位置識別子の数値を読み取るビット数値読取りサブユニットと、
    レベル1キャッシュへのアクセス時、前記位置識別子の前記数値に従って、前記位置識別子の前記数値に対応するキャッシュレベルまたはメモリにアクセスするキャッシュアクセスプリフェッチサブユニットと
    を含む、
    請求項13に記載のキャッシュにアクセスするための装置。
  19. 前記キャッシュアクセスプリフェッチユニットが、
    レベル1キャッシュへのアクセス時、ビットでマーク付けされる前記位置識別子の数値に従って、前記位置識別子の前記数値に対応するキャッシュレベルまたはメモリにアクセスした後、前記アクセス命令によって必要とされる前記データが、前記レベル1キャッシュ、及び前記位置識別子の前記数値に対応する前記キャッシュレベルまたはメモリで取得されるかどうかを判定するデータ取得判定サブユニットと、
    前記データ取得判定サブユニットから結果を受信し、前記結果は前記データが取得されないことであるとの判定に応じて、前記アクセス命令によって必要とされる前記データが取得されるまで、複数のレベルのキャッシュ及びメモリの階層順に従って各レベルのキャッシュに順次アクセスするレベル毎アクセスサブユニットと
    を含む、
    請求項13に記載のキャッシュにアクセスするための装置。
  20. 電気機器であって、
    ディスプレイと、
    1つまたは複数のプロセッサと、
    前記1つまたは複数のプロセッサによって実行されるとき、前記電気機器に
    データを取得するためのアクセス命令を読み取ることと、
    前記アクセス命令によって搬送される遅延識別子に従って、前記アクセス命令が遅延を発生させるかどうかを判定することと、
    前記アクセス命令が前記遅延を発生させることの判定に応じて、前記キャッシュにアクセスして、前記アクセス命令によって搬送される位置識別子に従って、プリフェッチ操作を実行することと、
    前記アクセス命令によって取得された前記データの位置に従って、前記アクセス命令によって搬送される前記遅延識別子及び前記位置識別子を修正することと
    を含む行為をさせる、コンピュータ実行可能命令を格納する1つまたは複数のコンピュータ記憶装置と
    を備える、
    前記電子機器。
JP2018522055A 2015-10-29 2016-10-28 キャッシュへのアクセス Active JP7038656B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510717175.9 2015-10-29
CN201510717175.9A CN106649143B (zh) 2015-10-29 2015-10-29 一种访问缓存的方法、装置及电子设备
PCT/US2016/059352 WO2017075372A1 (en) 2015-10-29 2016-10-28 Accessing cache

Publications (2)

Publication Number Publication Date
JP2018536230A true JP2018536230A (ja) 2018-12-06
JP7038656B2 JP7038656B2 (ja) 2022-03-18

Family

ID=58631157

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018522055A Active JP7038656B2 (ja) 2015-10-29 2016-10-28 キャッシュへのアクセス

Country Status (5)

Country Link
US (1) US10261905B2 (ja)
EP (1) EP3368987A4 (ja)
JP (1) JP7038656B2 (ja)
CN (1) CN106649143B (ja)
WO (1) WO2017075372A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110321997B (zh) * 2018-03-31 2021-10-19 赛灵思公司 高并行度计算平台、系统及计算实现方法
CN111290755B (zh) * 2020-02-04 2023-07-07 北京字节跳动网络技术有限公司 呈现数据的方法、装置、电子设备及存储介质
CN111338986B (zh) * 2020-03-13 2023-08-04 北京艾克斯特科技有限公司 一种获取三维模型数据结构中数据的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070186073A1 (en) * 2006-02-09 2007-08-09 International Business Machines Corporation D-cache miss prediction and scheduling
US20080229072A1 (en) * 2007-03-14 2008-09-18 Fujitsu Limited Prefetch processing apparatus, prefetch processing method, storage medium storing prefetch processing program

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6138213A (en) * 1997-06-27 2000-10-24 Advanced Micro Devices, Inc. Cache including a prefetch way for storing prefetch cache lines and configured to move a prefetched cache line to a non-prefetch way upon access to the prefetched cache line
US6535958B1 (en) 1999-07-15 2003-03-18 Texas Instruments Incorporated Multilevel cache system coherence with memory selectively configured as cache or direct access memory and direct memory access
US6578130B2 (en) * 2001-10-18 2003-06-10 International Business Machines Corporation Programmable data prefetch pacing
JP3683248B2 (ja) * 2002-10-22 2005-08-17 富士通株式会社 情報処理装置及び情報処理方法
US7177985B1 (en) * 2003-05-30 2007-02-13 Mips Technologies, Inc. Microprocessor with improved data stream prefetching
US20060168401A1 (en) * 2005-01-26 2006-07-27 International Business Machines Corporation Method and structure for high-performance linear algebra in the presence of limited outstanding miss slots
US20090006803A1 (en) * 2007-06-28 2009-01-01 David Arnold Luick L2 Cache/Nest Address Translation
US9405548B2 (en) * 2011-12-07 2016-08-02 International Business Machines Corporation Prioritizing instructions based on the number of delay cycles
US9772854B2 (en) * 2012-06-15 2017-09-26 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
CN102999443B (zh) * 2012-11-16 2015-09-09 广州优倍达信息科技有限公司 一种计算机缓存系统的管理方法
US9552298B2 (en) * 2013-12-27 2017-01-24 Sybase, Inc. Smart pre-fetch for sequential access on BTree

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070186073A1 (en) * 2006-02-09 2007-08-09 International Business Machines Corporation D-cache miss prediction and scheduling
CN101017430A (zh) * 2006-02-09 2007-08-15 国际商业机器公司 D缓存缺失预测和调度的方法和装置
JP2007213578A (ja) * 2006-02-09 2007-08-23 Internatl Business Mach Corp <Ibm> データ・キャッシュ・ミス予測およびスケジューリング
US20080229072A1 (en) * 2007-03-14 2008-09-18 Fujitsu Limited Prefetch processing apparatus, prefetch processing method, storage medium storing prefetch processing program
JP2008226025A (ja) * 2007-03-14 2008-09-25 Fujitsu Ltd プリフェッチ処理装置、プリフェッチ処理プログラムおよびプリフェッチ処理方法

Also Published As

Publication number Publication date
CN106649143A (zh) 2017-05-10
CN106649143B (zh) 2020-06-26
EP3368987A4 (en) 2019-05-15
WO2017075372A1 (en) 2017-05-04
US20170123989A1 (en) 2017-05-04
EP3368987A1 (en) 2018-09-05
US10261905B2 (en) 2019-04-16
JP7038656B2 (ja) 2022-03-18

Similar Documents

Publication Publication Date Title
US11237728B2 (en) Method for accessing extended memory, device, and system
US8683129B2 (en) Using speculative cache requests to reduce cache miss delays
US8843690B2 (en) Memory conflicts learning capability
US10558569B2 (en) Cache controller for non-volatile memory
US10860494B2 (en) Flushing pages from solid-state storage device
US11016695B2 (en) Methods and apparatus to perform memory copy operations
US8954681B1 (en) Multi-stage command processing pipeline and method for shared cache access
US20150143045A1 (en) Cache control apparatus and method
TWI774703B (zh) 偵測與處理儲存串流的系統與方法
US20160342526A1 (en) Electronic device having scratchpad memory and management method for scratchpad memory
US20170004087A1 (en) Adaptive cache management method according to access characteristics of user application in distributed environment
JP7038656B2 (ja) キャッシュへのアクセス
US8661169B2 (en) Copying data to a cache using direct memory access
US11080195B2 (en) Method of cache prefetching that increases the hit rate of a next faster cache
US9158697B2 (en) Method for cleaning cache of processor and associated processor
US9542318B2 (en) Temporary cache memory eviction
CN105612505A (zh) Cpu调度的方法和装置
US20150134939A1 (en) Information processing system, information processing method and memory system
WO2024072575A1 (en) Tag and data configuration for fine-grained cache memory
TW202418076A (zh) 用於記憶體管理機會與記憶體交換任務之運算系統及管理其之方法
JP5440024B2 (ja) 記録装置、記録方法、及び記録プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191010

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210803

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211026

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220308

R150 Certificate of patent or registration of utility model

Ref document number: 7038656

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150