JP2013178818A - キャッシュ利用に関する装置および方法 - Google Patents
キャッシュ利用に関する装置および方法 Download PDFInfo
- Publication number
- JP2013178818A JP2013178818A JP2013106926A JP2013106926A JP2013178818A JP 2013178818 A JP2013178818 A JP 2013178818A JP 2013106926 A JP2013106926 A JP 2013106926A JP 2013106926 A JP2013106926 A JP 2013106926A JP 2013178818 A JP2013178818 A JP 2013178818A
- Authority
- JP
- Japan
- Prior art keywords
- information
- stream
- access
- request
- stream access
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000004913 activation Effects 0.000 claims description 19
- 230000002459 sustained effect Effects 0.000 claims description 6
- 230000002045 lasting effect Effects 0.000 claims description 4
- 238000001994 activation Methods 0.000 description 13
- 230000008901 benefit Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000032683 aging Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
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/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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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/0888—Addressing 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
-
- 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/1668—Details of memory controller
-
- 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/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Transfer Between Computers (AREA)
Abstract
【解決手段】電子システム10は、大容量記憶装置14とシステムメモリ16との間に設けられたキャッシュ12とを含み、コードは電子システム上に格納されて、第1の情報の第1の要求の第1のメタデータと、前の起動コンテキストに格納されている起動前ストリーム情報との比較に基づいて、キャッシュにストリームデータが格納されないようにして、直接システムメモリと大容量記憶装置との間でストリームデータをやりとりさせることができる。
【選択図】図1
Description
入力:
アクセス、システムからの要求
主要な変数:
N、ストリーム検知スロット数
IsAStream、フィルタリング開始前のストリームデータのセクタ数
M、既知のストリームスロット数
LOOP M
IF KnownStream[M].Startl_BA = Access.StartLBA
&& KnownStream[M].RequestSizeThreshold = AVERAGE(Access.RequestSize)
&& KnownStream [M].Operation = Access. Operation THEN
KnownStream[M].Frequency++
IF KnownStream [M].Frequency > FREQUENCY_THRESHOLD
&& KnownStream [M].Length < CACH ED_STREAM_TH RESHOLD THEN
Pre-fetch(M) OR Send to Disk
Save stream in Cache
EXIT
ENDIF
ENDIF
END LOOP
LOOP N
IF Stream[N].ExpectedStartLBA = Access.StartLBA
&& Stream[N].ExpectedRequestSize = AVERAGE(Access.RequestSize)
&& Stream [N].ExpectedOperation = Access.Operation
&& Stream [N].VaIid
&& Stream[N].NotEmpty THEN
Stream [N].ExpectedStartLBA += Stream[N].ExpectedRequestSize
Stream[N].Length += ExpectedRequestSize
PlacedInStream = TRUE
IF Stream[N]. Length > IsAStream THEN
GOTO Pre-Fetch(N) OR Send To Disk
Move Stream[N] to Stream[M]
ENDIF
ELSE IF Stream[N].NotEmpty THEN
Stream[N].Expire++
IF Steam[N].Expire > HighestExpire.Value THEN
HighestExpire.Value = Stream[N]. Expire
HighestExpired. Index = N
ENDIF
ENDIF
END LOOP
IF Placed InStream = FALSE THEN
IF Stream[ANY N] IS OPEN THEN
Steam[ANY N].Valid = TRUE
Steam[ANY N].ExpectedLBA = Access.StartLBA + Access. RequestSize
Steam[ANY N].ExpectedRequestSize = Access.RequestSize
Steam[ANY N].ExpectedOperation = Access.Operation
ELSE
Place In Stream [HighestExpired.Index]
ENDIF
ENDIF
(項目1)
電子システムにおいてキャッシュを利用する方法であって、
大容量記憶デバイスとシステムメモリとの間にキャッシュを設けることと、
第1の情報を要求するための大容量記憶アクセスに関する第1の要求を受信することと、
現在の起動コンテキストとは異なる前の起動コンテキスト中に格納された起動前ストリーム情報を取得することと、
上記第1の要求に関する第1のメタデータと上記起動前ストリーム情報との比較に基づいて上記第1の情報がストリームアクセスの一部であるか否かを判断することと、
上記第1の要求に関する上記第1のメタデータと上記起動前ストリーム情報との上記比較に基づいて上記第1の情報が上記ストリームアクセスの一部であると判断された場合、大容量記憶アクセスに関する上記第1の要求を、上記大容量記憶デバイスに対して直接行うこととを備える方法。
(項目2)
上記第1の要求に関する上記第1のメタデータと上記起動前ストリーム情報との上記比較に基づいて上記第1の情報が上記ストリームアクセスの一部ではないと判断された場合、上記第1の情報をキャッシュすることをさらに備える項目1に記載の方法。
(項目3)
第2の情報を要求するための大容量記憶アクセスに関する第2の要求を受信することと、
以前に上記第1の情報が上記ストリームアクセスの一部であると判断されていない場合、上記第1の要求に関する上記第1のメタデータと上記第2の要求に関する第2のメタデータとの比較に基づいて、上記第2の情報が上記ストリームアクセスの一部であるか否かを判断することと、
上記第2の情報が上記ストリームアクセスの一部であると判断された場合、上記電子システムのハード起動を含む上記電子システムの異なる電力状態において持続している上記ストリームアクセスに対応するストリーム情報を格納することとをさらに備え、
格納された上記ストリーム情報は、後に、後続する起動用の上記起動前ストリーム情報として利用可能である項目2に記載の方法。
(項目4)
電子システムにおいてキャッシュを利用する方法であって、
大容量記憶デバイスとシステムメモリとの間にキャッシュを設けることと、
第1の情報を要求するための大容量記憶アクセスに関する第1の要求を受信することと、
上記第1の要求に関する第1のメタデータとストリームアクセスに関する他の情報との比較に基づいて上記第1の情報が上記ストリームアクセスの一部であるか否かを判断することと、
上記第1の要求に関する上記第1のメタデータと上記ストリームアクセスに関する上記他の情報との比較に基づいて上記第1の情報が上記ストリームアクセスの一部であると判断された場合、上記ストリームアクセスの頻度情報と、頻度閾値とを比較することと、
上記第1の情報が上記ストリームアクセスの一部であると判断され、上記ストリームアクセスの上記頻度情報が上記頻度閾値を超えない場合、大容量記憶アクセスに関する上記第1の要求を、上記大容量記憶デバイスに対して直接行うことと、
上記第1の情報が上記ストリームアクセスの一部であると判断され、上記ストリームアクセスの上記頻度情報が上記頻度閾値を超える場合、上記第1の情報をキャッシュすることとを備える方法。
(項目5)
上記ストリームアクセスの上記頻度情報を更新することをさらに備える項目4に記載の方法。
(項目6)
上記ストリームアクセスの長さ情報をストリーム長閾値と比較することと、
上記ストリームアクセスの上記長さ情報が上記ストリーム長閾値を越える場合、第1の情報をキャッシュさせないようにすることとをさらに備える項目4に記載の方法。
(項目7)
プロセッサベースのシステムにおいてキャッシュを利用する方法であって、
大容量記憶デバイスとシステムメモリとの間にキャッシュを設けることと、
第1の情報を要求するための大容量記憶アクセスに関する第1の要求を受信することと、
現在の起動コンテキストとは異なる前の起動コンテキスト中に格納された起動前ストリーム情報を取得することと、
上記第1の要求に関する第1のメタデータと上記起動前ストリーム情報との比較に基づいて上記第1の情報がストリームアクセスの一部であるか否かを判断することと、
上記第1の要求に関する上記第1のメタデータと上記起動前ストリーム情報との上記比較に基づいて上記第1の情報が上記ストリームアクセスの一部ではないと判断された場合、上記第1の情報をキャッシュすることと、
上記第1の要求に関する上記第1のメタデータと上記起動前ストリーム情報との上記比較に基づいて上記第1の情報が上記ストリームアクセスの一部であると判断された場合、
上記ストリームアクセスの頻度情報と、頻度閾値とを比較することと、
上記第1の情報が上記ストリームアクセスの一部であると判断され、上記ストリームアクセスの上記頻度情報が上記頻度閾値を超えない場合、大容量記憶アクセスに関する上記第1の要求を、上記大容量記憶デバイスに対して直接行うことと、
上記第1の情報が上記ストリームアクセスの一部であると判断され、上記ストリームアクセスの上記頻度情報が上記頻度閾値を超える場合、上記第1の情報をキャッシュすることとを備える方法。
(項目8)
第2の情報を要求するための大容量記憶アクセスに関する第2の要求を受信することと、
以前に上記第1の情報が上記ストリームアクセスの一部であると判断されていない場合、上記第1の要求に関する第1のメタデータと上記第2の要求に関する第2のメタデータとの比較に基づいて、上記第2の情報が上記ストリームアクセスの一部であるか否かを判断することと、
上記第2の情報が上記ストリームアクセスの一部であると判断された場合、上記プロセッサベースのシステムのハード起動を含む異なる電力状態において持続している上記ストリームアクセスに対応するストリーム情報を格納することとをさらに備え、
上記ストリーム情報は、後に、後続する起動用の上記起動前ストリーム情報として利用可能である項目7に記載の方法。
(項目9)
上記ストリームアクセスの上記頻度情報を更新することをさらに備える項目7に記載の方法。
(項目10)
上記ストリームアクセスの長さ情報をストリーム長閾値と比較することと、
上記ストリームアクセスの上記長さ情報が上記ストリーム長閾値を越える場合、上記第1の情報をキャッシュさせないようにすることと、
をさらに備える項目7に記載の方法。
(項目11)
電子システムであって、
上記電子システムの大容量記憶装置およびシステムメモリの間に設けられたキャッシュと、
上記電子システムに格納され、第1の情報の第1の要求の第1のメタデータと、上記電子システムの前の起動コンテキストに格納されている起動前ストリーム情報との比較に基づいて、上記キャッシュにストリームデータが格納されないようにして、上記ストリームデータを直接上記システムメモリと上記大容量記憶装置との間でやりとりさせるコードとを備える電子システム。
(項目12)
上記コードはさらに、上記第1の要求に関する第1のメタデータと上記起動前ストリーム情報との上記比較に基づいて上記第1の情報がストリームアクセスの一部ではないと判断された場合、上記第1の情報をキャッシュさせる項目11に記載の電子システム。
(項目13)
上記コードはさらに、
第2の情報を要求するための大容量記憶アクセスに関する第2の要求を受信させ、
以前に上記第1の情報が上記ストリームアクセスの一部であると判断されていない場合、上記第1の要求に関する第1のメタデータと上記第2の要求に関する第2のメタデータとの比較に基づいて、上記第2の情報が上記ストリームアクセスの一部であるか否かを判断させ、
上記第2の情報が上記ストリームアクセスの一部であると判断された場合、上記電子システムのハード起動を含む上記電子システムの異なる電力状態において持続している上記ストリームアクセスに対応するストリーム情報を格納させ、
格納された上記ストリーム情報は後に、後続する起動用の上記起動前ストリーム情報として利用可能である項目12に記載の電子システム。
(項目14)
上記コードはさらに、上記第1の要求に関する第1のメタデータと上記起動前ストリーム情報との上記比較に基づいて上記第1の情報がストリームアクセスの一部であるか否かを判断させ、
上記ストリームアクセスの頻度情報と、頻度閾値とを比較させ、
上記第1の情報が上記ストリームアクセスの一部であると判断され、上記ストリームアクセスの上記頻度情報が上記頻度閾値を超えない場合、大容量記憶アクセスについての上記第1の要求を上記大容量記憶装置に対して直接行わせ、
上記第1の情報が上記ストリームアクセスの一部であると判断され、上記ストリームアクセスの上記頻度情報が上記頻度閾値を超える場合、上記第1の情報をキャッシュさせる項目11に記載の電子システム。
(項目15)
上記コードはさらに、上記ストリームアクセスの上記頻度情報を更新させる項目14に記載の電子システム。
(項目16)
上記コードはさらに、上記ストリームアクセスの長さ情報をストリーム長閾値と比較させ、
上記ストリームアクセスの上記長さ情報が上記ストリーム長閾値を越える場合、ストリームデータを上記キャッシュに格納させず、上記ストリームデータを直接上記システムメモリと上記大容量記憶装置との間でやりとりさせる項目14に記載の電子システム。
(項目17)
プロセッサベースのシステムであって、
プロセッサと、
上記プロセッサに連結されたシステムメモリと、
大容量記憶デバイスと、
上記システムメモリおよび上記大容量記憶デバイスの間に設けられた不揮発性キャッシュメモリと、
上記プロセッサベースのシステムに格納されたコードとを備え、
上記コードは上記プロセッサベースのシステムに、
第1の情報を要求するための大容量記憶アクセスに関する第1の要求を受信することと、
現在の起動コンテキストとは異なる、上記プロセッサベースのシステムの前の起動コンテキスト中に格納された起動前ストリーム情報を取得することと、
上記第1の要求に関する第1のメタデータと上記起動前ストリーム情報との比較に基づいて上記第1の情報がストリームアクセスの一部であるか否かを判断することと、
上記第1の要求に関する第1のメタデータと上記起動前ストリーム情報との上記比較に基づいて上記第1の情報が上記ストリームアクセスの一部ではないと判断された場合、上記第1の情報をキャッシュすること、
上記第1の情報が上記ストリームアクセスの一部であると判断された場合、
上記ストリームアクセスの頻度情報と、頻度閾値とを比較することと、
上記第1の情報が上記ストリームアクセスの一部であると判断され、上記ストリームアクセスの上記頻度情報が上記頻度閾値を超えない場合、大容量記憶に対するアクセスに関する上記第1の要求を、上記大容量記憶デバイスに対して直接行うことと、
上記第1の情報が上記ストリームアクセスの一部であると判断され、上記ストリームアクセスの上記頻度情報が上記頻度閾値を超える場合、上記第1の情報をキャッシュすることとを行わせるプロセッサベースのシステム。
(項目18)
上記コードは上記プロセッサベースのシステムにさらに、
第2の情報を要求するための大容量記憶アクセスに関する第2の要求を受信することと、
以前に上記第1の情報が上記ストリームアクセスの一部であると判断されていない場合、上記第1の要求に関する上記第1のメタデータと上記第2の要求に関する第2のメタデータとの比較に基づいて、上記第2の情報が上記ストリームアクセスの一部であるか否かを判断することと、
上記第2の情報が上記ストリームアクセスの一部であると判断された場合、上記プロセッサベースのシステムのハード起動を含む異なる電力状態において持続している上記ストリームアクセスに対応するストリーム情報を格納することとを行わせ、
上記ストリーム情報は、後に、後続する起動用の上記起動前ストリーム情報として利用可能である項目17に記載のプロセッサベースのシステム。
(項目19)
上記コードはさらに、上記ストリームアクセスの上記頻度情報を更新することを行わせる項目17に記載のプロセッサベースのシステム。
(項目20)
上記コードはさらに、
上記ストリームアクセスの長さ情報をストリーム長閾値と比較することと、
上記ストリームアクセスの上記長さ情報が上記ストリーム長閾値を越える場合、ストリームデータを上記キャッシュに格納させず、上記ストリームデータを直接上記システムメモリと上記大容量記憶デバイスとの間でやりとりさせることとを行わせる項目18に記載のプロセッサベースのシステム。
Claims (20)
- 電子システムにおいてキャッシュを利用する方法であって、
大容量記憶デバイスとシステムメモリとの間にキャッシュを設けることと、
第1の情報を要求するための大容量記憶アクセスに関する第1の要求を受信することと、
現在の起動コンテキストとは異なる前の起動コンテキスト中に格納された起動前ストリーム情報を取得することと、
前記第1の要求に関する第1のメタデータと前記起動前ストリーム情報との比較に基づいて前記第1の情報がストリームアクセスの一部であるか否かを判断することと、
前記第1の要求に関する前記第1のメタデータと前記起動前ストリーム情報との前記比較に基づいて前記第1の情報が前記ストリームアクセスの一部であると判断された場合、大容量記憶アクセスに関する前記第1の要求を、前記大容量記憶デバイスに対して直接行うこととを備える方法。 - 前記第1の要求に関する前記第1のメタデータと前記起動前ストリーム情報との前記比較に基づいて前記第1の情報が前記ストリームアクセスの一部ではないと判断された場合、前記第1の情報をキャッシュすることをさらに備える請求項1に記載の方法。
- 第2の情報を要求するための大容量記憶アクセスに関する第2の要求を受信することと、
以前に前記第1の情報が前記ストリームアクセスの一部であると判断されていない場合、前記第1の要求に関する前記第1のメタデータと前記第2の要求に関する第2のメタデータとの比較に基づいて、前記第2の情報が前記ストリームアクセスの一部であるか否かを判断することと、
前記第2の情報が前記ストリームアクセスの一部であると判断された場合、前記電子システムのハード起動を含む前記電子システムの異なる電力状態において持続している前記ストリームアクセスに対応するストリーム情報を格納することとをさらに備え、
格納された前記ストリーム情報は、後に、後続する起動用の前記起動前ストリーム情報として利用可能である請求項2に記載の方法。 - 電子システムにおいてキャッシュを利用する方法であって、
大容量記憶デバイスとシステムメモリとの間にキャッシュを設けることと、
第1の情報を要求するための大容量記憶アクセスに関する第1の要求を受信することと、
前記第1の要求に関する第1のメタデータとストリームアクセスに関する他の情報との比較に基づいて前記第1の情報が前記ストリームアクセスの一部であるか否かを判断することと、
前記第1の要求に関する前記第1のメタデータと前記ストリームアクセスに関する前記他の情報との比較に基づいて前記第1の情報が前記ストリームアクセスの一部であると判断された場合、前記ストリームアクセスの頻度情報と、頻度閾値とを比較することと、
前記第1の情報が前記ストリームアクセスの一部であると判断され、前記ストリームアクセスの前記頻度情報が前記頻度閾値を超えない場合、大容量記憶アクセスに関する前記第1の要求を、前記大容量記憶デバイスに対して直接行うことと、
前記第1の情報が前記ストリームアクセスの一部であると判断され、前記ストリームアクセスの前記頻度情報が前記頻度閾値を超える場合、前記第1の情報をキャッシュすることとを備える方法。 - 前記ストリームアクセスの前記頻度情報を更新することをさらに備える請求項4に記載の方法。
- 前記ストリームアクセスの長さ情報をストリーム長閾値と比較することと、
前記ストリームアクセスの前記長さ情報が前記ストリーム長閾値を越える場合、第1の情報をキャッシュさせないようにすることとをさらに備える請求項4に記載の方法。 - プロセッサベースのシステムにおいてキャッシュを利用する方法であって、
大容量記憶デバイスとシステムメモリとの間にキャッシュを設けることと、
第1の情報を要求するための大容量記憶アクセスに関する第1の要求を受信することと、
現在の起動コンテキストとは異なる前の起動コンテキスト中に格納された起動前ストリーム情報を取得することと、
前記第1の要求に関する第1のメタデータと前記起動前ストリーム情報との比較に基づいて前記第1の情報がストリームアクセスの一部であるか否かを判断することと、
前記第1の要求に関する前記第1のメタデータと前記起動前ストリーム情報との前記比較に基づいて前記第1の情報が前記ストリームアクセスの一部ではないと判断された場合、前記第1の情報をキャッシュすることと、
前記第1の要求に関する前記第1のメタデータと前記起動前ストリーム情報との前記比較に基づいて前記第1の情報が前記ストリームアクセスの一部であると判断された場合、
前記ストリームアクセスの頻度情報と、頻度閾値とを比較することと、
前記第1の情報が前記ストリームアクセスの一部であると判断され、前記ストリームアクセスの前記頻度情報が前記頻度閾値を超えない場合、大容量記憶アクセスに関する前記第1の要求を、前記大容量記憶デバイスに対して直接行うことと、
前記第1の情報が前記ストリームアクセスの一部であると判断され、前記ストリームアクセスの前記頻度情報が前記頻度閾値を超える場合、前記第1の情報をキャッシュすることとを備える方法。 - 第2の情報を要求するための大容量記憶アクセスに関する第2の要求を受信することと、
以前に前記第1の情報が前記ストリームアクセスの一部であると判断されていない場合、前記第1の要求に関する第1のメタデータと前記第2の要求に関する第2のメタデータとの比較に基づいて、前記第2の情報が前記ストリームアクセスの一部であるか否かを判断することと、
前記第2の情報が前記ストリームアクセスの一部であると判断された場合、前記プロセッサベースのシステムのハード起動を含む異なる電力状態において持続している前記ストリームアクセスに対応するストリーム情報を格納することとをさらに備え、
前記ストリーム情報は、後に、後続する起動用の前記起動前ストリーム情報として利用可能である請求項7に記載の方法。 - 前記ストリームアクセスの前記頻度情報を更新することをさらに備える請求項7に記載の方法。
- 前記ストリームアクセスの長さ情報をストリーム長閾値と比較することと、
前記ストリームアクセスの前記長さ情報が前記ストリーム長閾値を越える場合、前記第1の情報をキャッシュさせないようにすることと、
をさらに備える請求項7に記載の方法。 - 電子システムであって、
前記電子システムの大容量記憶装置およびシステムメモリの間に設けられたキャッシュと、
前記電子システムに格納され、第1の情報の第1の要求の第1のメタデータと、前記電子システムの前の起動コンテキストに格納されている起動前ストリーム情報との比較に基づいて、前記キャッシュにストリームデータが格納されないようにして、前記ストリームデータを直接前記システムメモリと前記大容量記憶装置との間でやりとりさせるコードとを備える電子システム。 - 前記コードはさらに、前記第1の要求に関する第1のメタデータと前記起動前ストリーム情報との前記比較に基づいて前記第1の情報がストリームアクセスの一部ではないと判断された場合、前記第1の情報をキャッシュさせる請求項11に記載の電子システム。
- 前記コードはさらに、
第2の情報を要求するための大容量記憶アクセスに関する第2の要求を受信させ、
以前に前記第1の情報が前記ストリームアクセスの一部であると判断されていない場合、前記第1の要求に関する第1のメタデータと前記第2の要求に関する第2のメタデータとの比較に基づいて、前記第2の情報が前記ストリームアクセスの一部であるか否かを判断させ、
前記第2の情報が前記ストリームアクセスの一部であると判断された場合、前記電子システムのハード起動を含む前記電子システムの異なる電力状態において持続している前記ストリームアクセスに対応するストリーム情報を格納させ、
格納された前記ストリーム情報は後に、後続する起動用の前記起動前ストリーム情報として利用可能である請求項12に記載の電子システム。 - 前記コードはさらに、前記第1の要求に関する第1のメタデータと前記起動前ストリーム情報との前記比較に基づいて前記第1の情報がストリームアクセスの一部であるか否かを判断させ、
前記ストリームアクセスの頻度情報と、頻度閾値とを比較させ、
前記第1の情報が前記ストリームアクセスの一部であると判断され、前記ストリームアクセスの前記頻度情報が前記頻度閾値を超えない場合、大容量記憶アクセスについての前記第1の要求を前記大容量記憶装置に対して直接行わせ、
前記第1の情報が前記ストリームアクセスの一部であると判断され、前記ストリームアクセスの前記頻度情報が前記頻度閾値を超える場合、前記第1の情報をキャッシュさせる請求項11に記載の電子システム。 - 前記コードはさらに、前記ストリームアクセスの前記頻度情報を更新させる請求項14に記載の電子システム。
- 前記コードはさらに、前記ストリームアクセスの長さ情報をストリーム長閾値と比較させ、
前記ストリームアクセスの前記長さ情報が前記ストリーム長閾値を越える場合、ストリームデータを前記キャッシュに格納させず、前記ストリームデータを直接前記システムメモリと前記大容量記憶装置との間でやりとりさせる請求項14に記載の電子システム。 - プロセッサベースのシステムであって、
プロセッサと、
前記プロセッサに連結されたシステムメモリと、
大容量記憶デバイスと、
前記システムメモリおよび前記大容量記憶デバイスの間に設けられた不揮発性キャッシュメモリと、
前記プロセッサベースのシステムに格納されたコードとを備え、
前記コードは前記プロセッサベースのシステムに、
第1の情報を要求するための大容量記憶アクセスに関する第1の要求を受信することと、
現在の起動コンテキストとは異なる、前記プロセッサベースのシステムの前の起動コンテキスト中に格納された起動前ストリーム情報を取得することと、
前記第1の要求に関する第1のメタデータと前記起動前ストリーム情報との比較に基づいて前記第1の情報がストリームアクセスの一部であるか否かを判断することと、
前記第1の要求に関する第1のメタデータと前記起動前ストリーム情報との前記比較に基づいて前記第1の情報が前記ストリームアクセスの一部ではないと判断された場合、前記第1の情報をキャッシュすること、
前記第1の情報が前記ストリームアクセスの一部であると判断された場合、
前記ストリームアクセスの頻度情報と、頻度閾値とを比較することと、
前記第1の情報が前記ストリームアクセスの一部であると判断され、前記ストリームアクセスの前記頻度情報が前記頻度閾値を超えない場合、大容量記憶に対するアクセスに関する前記第1の要求を、前記大容量記憶デバイスに対して直接行うことと、
前記第1の情報が前記ストリームアクセスの一部であると判断され、前記ストリームアクセスの前記頻度情報が前記頻度閾値を超える場合、前記第1の情報をキャッシュすることとを行わせるプロセッサベースのシステム。 - 前記コードは前記プロセッサベースのシステムにさらに、
第2の情報を要求するための大容量記憶アクセスに関する第2の要求を受信することと、
以前に前記第1の情報が前記ストリームアクセスの一部であると判断されていない場合、前記第1の要求に関する前記第1のメタデータと前記第2の要求に関する第2のメタデータとの比較に基づいて、前記第2の情報が前記ストリームアクセスの一部であるか否かを判断することと、
前記第2の情報が前記ストリームアクセスの一部であると判断された場合、前記プロセッサベースのシステムのハード起動を含む異なる電力状態において持続している前記ストリームアクセスに対応するストリーム情報を格納することとを行わせ、
前記ストリーム情報は、後に、後続する起動用の前記起動前ストリーム情報として利用可能である請求項17に記載のプロセッサベースのシステム。 - 前記コードはさらに、前記ストリームアクセスの前記頻度情報を更新することを行わせる請求項17に記載のプロセッサベースのシステム。
- 前記コードはさらに、
前記ストリームアクセスの長さ情報をストリーム長閾値と比較することと、
前記ストリームアクセスの前記長さ情報が前記ストリーム長閾値を越える場合、ストリームデータを前記キャッシュに格納させず、前記ストリームデータを直接前記システムメモリと前記大容量記憶デバイスとの間でやりとりさせることとを行わせる請求項18に記載のプロセッサベースのシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/215,093 | 2008-06-25 | ||
US12/215,093 US8433854B2 (en) | 2008-06-25 | 2008-06-25 | Apparatus and method for cache utilization |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010547880A Division JP5340315B2 (ja) | 2008-06-25 | 2009-06-09 | キャッシュ利用に関する装置および方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013178818A true JP2013178818A (ja) | 2013-09-09 |
JP5717790B2 JP5717790B2 (ja) | 2015-05-13 |
Family
ID=41445201
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010547880A Expired - Fee Related JP5340315B2 (ja) | 2008-06-25 | 2009-06-09 | キャッシュ利用に関する装置および方法 |
JP2013106926A Expired - Fee Related JP5717790B2 (ja) | 2008-06-25 | 2013-05-21 | キャッシュ利用に関する装置および方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010547880A Expired - Fee Related JP5340315B2 (ja) | 2008-06-25 | 2009-06-09 | キャッシュ利用に関する装置および方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8433854B2 (ja) |
JP (2) | JP5340315B2 (ja) |
CN (1) | CN101981551B (ja) |
DE (1) | DE112009000418T5 (ja) |
GB (1) | GB2473149B (ja) |
WO (1) | WO2009158183A2 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8433854B2 (en) | 2008-06-25 | 2013-04-30 | Intel Corporation | Apparatus and method for cache utilization |
US8161304B2 (en) * | 2009-01-20 | 2012-04-17 | Microsoft Corporation | Power management for large memory subsystems |
US8533445B2 (en) * | 2009-04-21 | 2013-09-10 | Hewlett-Packard Development Company, L.P. | Disabling a feature that prevents access to persistent secondary storage |
FI20105743A0 (fi) * | 2010-06-29 | 2010-06-29 | Tuxera Inc | Muistista lukeminen tai muistiin kirjoittaminen |
CN102651861B (zh) * | 2011-02-24 | 2014-08-20 | 腾讯科技(深圳)有限公司 | 用于移动终端的下载方法、移动终端和代理下载服务器 |
JP5117608B1 (ja) * | 2011-09-30 | 2013-01-16 | 株式会社東芝 | 情報処理装置、ハイブリッド記憶装置、およびキャッシュ方法 |
US11003464B2 (en) * | 2012-04-19 | 2021-05-11 | Microsoft Technology Licensing, Llc | Control flow integrity enforcement at scale |
US9244980B1 (en) | 2012-05-05 | 2016-01-26 | Paraccel Llc | Strategies for pushing out database blocks from cache |
CN105917318A (zh) * | 2012-07-24 | 2016-08-31 | 英特尔公司 | 用于实现基于ssd的i/o高速缓存的系统和方法 |
US20140095778A1 (en) * | 2012-09-28 | 2014-04-03 | Jaewoong Chung | Methods, systems and apparatus to cache code in non-volatile memory |
US9009439B2 (en) * | 2013-03-12 | 2015-04-14 | Sap Se | On-disk operations on fragments to support huge data sizes |
CN104424314B (zh) * | 2013-09-06 | 2019-06-11 | Sap欧洲公司 | 对列状表数据库的数据库操作 |
US11169925B2 (en) | 2015-08-25 | 2021-11-09 | Samsung Electronics Co., Ltd. | Capturing temporal store streams into CPU caches by dynamically varying store streaming thresholds |
CN113448877A (zh) * | 2020-03-26 | 2021-09-28 | 伊姆西Ip控股有限责任公司 | 用于数据存储的方法、设备和计算机程序 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04340637A (ja) * | 1991-05-17 | 1992-11-27 | Mitsubishi Electric Corp | キャッシュ制御方式 |
JPH06195265A (ja) * | 1992-12-25 | 1994-07-15 | Matsushita Electric Ind Co Ltd | キャッシュメモリの操作方法 |
JPH0773107A (ja) * | 1993-09-03 | 1995-03-17 | Pfu Ltd | ディスク・システムの制御方法 |
JP2000003309A (ja) * | 1998-06-15 | 2000-01-07 | Fujitsu Ltd | 記憶装置 |
JP2005149276A (ja) * | 2003-11-18 | 2005-06-09 | Hitachi Ltd | 情報処理システム、情報処理装置、情報処理装置の制御方法及びプログラム |
US20050251630A1 (en) * | 2004-05-04 | 2005-11-10 | Matthews Jeanna N | Preventing storage of streaming accesses in a cache |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6748487B1 (en) * | 1998-02-04 | 2004-06-08 | Hitachi, Ltd. | Disk cache control method, disk array system, and storage system |
US6578111B1 (en) * | 2000-09-29 | 2003-06-10 | Sun Microsystems, Inc. | Cache memory system and method for managing streaming-data |
US6826710B2 (en) | 2001-01-25 | 2004-11-30 | Dell Products L.P. | System and method for providing a fault-resilient boot |
US7051161B2 (en) * | 2002-09-17 | 2006-05-23 | Nokia Corporation | Memory admission control based on object size or request frequency |
US7526613B2 (en) * | 2003-03-06 | 2009-04-28 | Nxp B.V. | Data processing system with prefetching means |
US20040255106A1 (en) | 2003-06-10 | 2004-12-16 | Rothman Michael A. | Recovery of operating system configuration data by firmware of computer system |
US20040267708A1 (en) | 2003-06-18 | 2004-12-30 | Rothman Michael A | Device information collection and error detection in a pre-boot environment of a computer system |
US7392340B1 (en) * | 2005-03-21 | 2008-06-24 | Western Digital Technologies, Inc. | Disk drive employing stream detection engine to enhance cache management policy |
US8490065B2 (en) * | 2005-10-13 | 2013-07-16 | International Business Machines Corporation | Method and apparatus for software-assisted data cache and prefetch control |
GB2439577B (en) * | 2006-06-30 | 2011-12-14 | Data Equation Ltd | Data processing |
US8433854B2 (en) | 2008-06-25 | 2013-04-30 | Intel Corporation | Apparatus and method for cache utilization |
-
2008
- 2008-06-25 US US12/215,093 patent/US8433854B2/en not_active Expired - Fee Related
-
2009
- 2009-06-09 WO PCT/US2009/046731 patent/WO2009158183A2/en active Application Filing
- 2009-06-09 GB GB1015976.2A patent/GB2473149B/en not_active Expired - Fee Related
- 2009-06-09 JP JP2010547880A patent/JP5340315B2/ja not_active Expired - Fee Related
- 2009-06-09 CN CN200980112390.9A patent/CN101981551B/zh not_active Expired - Fee Related
- 2009-06-09 DE DE112009000418T patent/DE112009000418T5/de not_active Ceased
-
2013
- 2013-05-21 JP JP2013106926A patent/JP5717790B2/ja not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04340637A (ja) * | 1991-05-17 | 1992-11-27 | Mitsubishi Electric Corp | キャッシュ制御方式 |
JPH06195265A (ja) * | 1992-12-25 | 1994-07-15 | Matsushita Electric Ind Co Ltd | キャッシュメモリの操作方法 |
JPH0773107A (ja) * | 1993-09-03 | 1995-03-17 | Pfu Ltd | ディスク・システムの制御方法 |
JP2000003309A (ja) * | 1998-06-15 | 2000-01-07 | Fujitsu Ltd | 記憶装置 |
JP2005149276A (ja) * | 2003-11-18 | 2005-06-09 | Hitachi Ltd | 情報処理システム、情報処理装置、情報処理装置の制御方法及びプログラム |
US20050251630A1 (en) * | 2004-05-04 | 2005-11-10 | Matthews Jeanna N | Preventing storage of streaming accesses in a cache |
Also Published As
Publication number | Publication date |
---|---|
GB2473149B (en) | 2012-10-17 |
WO2009158183A2 (en) | 2009-12-30 |
CN101981551B (zh) | 2014-04-16 |
JP5717790B2 (ja) | 2015-05-13 |
GB2473149A (en) | 2011-03-02 |
CN101981551A (zh) | 2011-02-23 |
JP5340315B2 (ja) | 2013-11-13 |
DE112009000418T5 (de) | 2011-04-21 |
US8433854B2 (en) | 2013-04-30 |
JP2011514593A (ja) | 2011-05-06 |
WO2009158183A3 (en) | 2010-02-25 |
US20090327607A1 (en) | 2009-12-31 |
GB201015976D0 (en) | 2010-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5717790B2 (ja) | キャッシュ利用に関する装置および方法 | |
US7979631B2 (en) | Method of prefetching data in hard disk drive, recording medium including program to execute the method, and apparatus to perform the method | |
KR102510384B1 (ko) | 압축된 데이터 백그라운드를 캐싱하는 장치, 시스템 및 방법 | |
US8151064B2 (en) | Hybrid hard disk drive and data storage method thereof | |
US9569351B2 (en) | Storing corresponding data units in a common storage unit | |
JP2011514593A5 (ja) | ||
US9213646B1 (en) | Cache data value tracking | |
TW201017405A (en) | Improved hybrid drive | |
US8214596B2 (en) | Apparatus and method for segmented cache utilization | |
KR102663304B1 (ko) | 구역 네임스페이스 디바이스들에서의 판독 처리 | |
US20130086307A1 (en) | Information processing apparatus, hybrid storage apparatus, and cache method | |
JP2011022926A (ja) | データ記憶装置及びキャッシュ制御方法 | |
US10152410B2 (en) | Magnetoresistive random-access memory cache write management | |
WO2012023953A1 (en) | Improving the i/o efficiency of persisent caches in a storage system | |
KR20120098068A (ko) | 플래시 메모리 배드 블록 관리 장치 및 방법 | |
JP2003167781A (ja) | 磁気ディスク装置およびデータ読み出し制御方法 | |
JP7170093B2 (ja) | 記憶デバイスのための改良された先読み能力 | |
JP5025670B2 (ja) | 情報処理装置およびデータ記憶装置 | |
US20200409852A1 (en) | Enhanced read-ahead capability for storage devices | |
JP6100750B2 (ja) | メモリおよびコントローラを備える装置およびデータ記憶装置を備える装置 | |
US7650489B2 (en) | Determining coherency between a non-volatile memory and a system | |
US20160217074A1 (en) | Temporary cache memory eviction | |
KR101831126B1 (ko) | 스토리지 내의 데이터 처리 장치의 제어 방법 | |
JP2009123185A (ja) | フラッシュメモリ装置及びそのアクセス方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140212 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140512 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140812 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141212 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20150130 |
|
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: 20150217 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150317 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5717790 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |