TWI335512B - Technique for using memory attributes - Google Patents
Technique for using memory attributes Download PDFInfo
- Publication number
- TWI335512B TWI335512B TW096104443A TW96104443A TWI335512B TW I335512 B TWI335512 B TW I335512B TW 096104443 A TW096104443 A TW 096104443A TW 96104443 A TW96104443 A TW 96104443A TW I335512 B TWI335512 B TW I335512B
- Authority
- TW
- Taiwan
- Prior art keywords
- load
- attribute
- cache line
- processor
- instruction
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 69
- 238000000034 method Methods 0.000 title claims abstract description 9
- 238000012545 processing Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 6
- 238000004519 manufacturing process Methods 0.000 claims description 3
- 238000004458 analytical method Methods 0.000 claims description 2
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 5
- 238000001693 membrane extraction with a sorbent interface Methods 0.000 description 2
- 230000009118 appropriate response Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3471—Address tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
-
- 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
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/145—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
1335512 統記憶體階層。 ' 第3圖是一根據一實施例,繪示與檢查屬性相關聯之操 作的流程圖。該等屬性與一或更多條快取行相關聯。 第4圖繪示一本發明之至少一實施例可使用的分享匯 5 流排電腦系統。 第5圖繪示一本發明之至少一實施例可使用的點對點 匯流排電腦系統。 【實施方式】 較佳實施例之詳細說明 10 本發明之實施例係有關微處理器與微處理器系統。更 特別是,本發明之實施例係有關使用記憶體屬性位元,以 一有效方法來檢查各種不同的記憶體特性。 本發明之一實施例中,與記憶體之一特定部段、或”區 塊”的記憶體屬性可用來指出該記憶體區塊之各種不同特 15 性。例如,一實施例中,與記憶體屬性位元之每一區塊相 關聯的部分可由一使用者來定義,以指出與,諸如存取權 限相關聯之該記憶體區塊特性的任何數量。一實施例中, 每一記憶體區塊可對應於一特定快取行,諸如一階(L1)或 二階(L2)快取記憶體中之一快取行,而該等屬性以位於快 20 取記憶體之一行或是以其他方法與快取記憶體之一行相關 聯的位元儲存位置來代表。其他實施例中,可與屬性相關 聯之一記憶體區塊可包括超過一條快取記憶體行或是可 與,諸如DRAM之另一記憶體類型相關聯。 第1圖繪示根據本發明之一實施例的快取記憶體之一 8 部分’其每條快取行具有一相關聯的屬性位元儲存位置群 組。特別是,第1圖緣示-快取記憶體1〇〇 -特定記憶想區塊(未顯示)之_快取行丨。5。二= 具有與其相關聯之若干屬性,並以儲存位置110中之位元的 型式來儲存。一實施例中,該儲存位置是一暫存器檔案, 而其他實施例中,可使用另一類型之儲存區。該儲:位置 110中是與快取行105相關聯之-屬性位元115的群組,該屬 性位元可儲存位元來代表該快取行之各種不同特性並可 由存取該快取行之一軟體程式來使用。 -第1圖繪示之該實施例中,該屬性位元之群組含有四個 位元,其可根據該等屬性位元如何受指定來代表該快取行 之:或更多特性。例如,-實施例中,該等屬性位元指出 該程式最近已檢查該記憶體區塊適合該程式之該目前部份 來存取。其他實施例中,例如,該等屬性位元可指出該程 式已紀錄該記憶體區塊之一最近參考,以便稍後由一效= 監控工具來加时析。其他實施财,料屬性位元可指b 定其他許可、特性、等等。 曰 除了該等屬性位元之外,每一條快取行亦可具有與其 相關聯並儲存於狀態儲存位L腳之i態值1如二 實施例中一,該狀態儲存位置120包含與快取行105相關聯之 -狀態位元125’該狀態位元指定該快取行是否位於一修改 狀態㈤、互斥擁有峨E)、分享狀_、或無效狀態⑴。 該等MESI狀態可控制各種不同的軟體執行緒、核心、或處 理器是否可使用與/或修改儲存於該特定快取行之資訊。某 1335512 些實施例中,針對快取行105,該MESI狀態屬性可包括於 該等屬性位元115中。 一實施例中,類似第1圖中具有相關聯之屬性位元的— 快取記憶體可由一多核心處理器中之若干核心來存取每 5 —核心能夠執行從一作業系統之一程序器所發出的若干軟 體執行緒。藉由以每一條快取行來指派該等適當的屬性位 元,一電腦系統之每一個處理器中的每一核心之每一個執 • 行緒,具有可存取、控制、與/或修改之一條快取行或多條 快取行。 1〇 第2圖是從一電腦系統中之一處理器的核心執行之一 軟體執行緒的觀點,來看本發明之實施例可如何簡化外取 §己憶體之組織的-概念圖。例如,第2圖中,每—個執行緒 可概念化來作為-單-執行緒核心2〇1_施,其具有由快取 行組成之-相關聯快取記憶體2〇5_2〇m,該等快取行指定來 15僅由於該概念單一執行緒核心上運作之該特定對應執行緒 10 例中’可使用從-快取行載人資訊.與設定該等對應屬性位 兀兩者之一指令(例如,”load—set”指令)。其他實施例中, 可使用從一快取行載入資訊與檢查該等對應屬性位元之一 指令(例如’,,l〇ad—check”指令)或是一指令load_set。 尚有其他實施例中,其他指令可用來控制該等屬性位 元與存取該對應快取資料兩者。例如,一實施例中,當檢 查或設定(或兩者)該等對應屬性位元(例如,一”st〇re set,, 與/或”st〇re_CheCk”指令)時,一指令可用來儲存至一快取行 之資訊。某些實施例中,指令可用來控制或存取不具有, 諸如載入或儲存之一相關聯快取記憶體操作的該等屬性位 元。 至於檢查與一快取行相關聯之該等屬性的一指令,一 或更多處理核心中之一或更多架構方案可根據該等受檢查 之屬性來定義實行特定事件。為了響應該屬性檢查會有可 實行之其他類型事件。例如,一實施例中,—架構方案可 定義來比較該等屬性位元與一組特定資料,並根據該比較 之結果來引動一輕質產量事件。除此之外,返回該系統運 行之一執行緒或其他程序的控制之前,該輕質產量可用以 響應該方案之結果而呼叫實行各種不同操作的—服務常 式。另一實施例中,一旗標或暫存器可設定來指出該結果。 尚有另一實施例中’可以一特定值來寫入—暫存器。亦可 包括其他事件來作為適當的回應。 例如’一種可疋義之方案疋根據檢測—意外記慎體狀 態來引動-輕質產量與對應處置器。p執行緒或:他程 序嘴試存取期望具有-特定_狀態之-快取行,則此方 二是該快取行位於另-記憶體狀態 時,其指出職取行可_較執行料轉不相關聯。 此方法中僅有肖錢行緒可控制之料快取行可成功 地被存取、修改、或檢查。其他實施财,其他方案可根 據-快取行記憶體屬性之檢查來加収義。其他實施例 中’亦可檢查較該快取行更細微粒化之位置的記憶體屬性。 第3圖是一繪·示本發日日 發月之至父一實施例的操作之流程 圖’其中-與—1〇ad_che_令用來設定或檢查與 特定J·夬取行《快取行中之位址範圍相關聯的屬性位 元其他貫%例中’其他指令或微指令(卿)可用來實行第3 圖緣示之該等操作。操作3〇1中,判定是否實行一_如 或福-咖化指令。若實行一l〇ad_set指令,則與該指令之 I亥載入部分定址的該快取行相_之該等屬性位元會於操 15 作305中修改。-實施例中,該l〇ad_set指令可包括從該 load_Set指令解碼之一載入微指令與一設定微指令。其他操 作亦可與其他實_中之鱗載人與設定操作共同包括。 若該實行之指令是一 l〇ad_check指令,則與該 20 load—check指令之該載入部分指定的該位址相關聯之該等 屬性位元會於操作310中讀取。一實施例中,該i〇ad_check 才曰令可包括從該load_check指令解碼之一載入微指令與一 設定微指令。其他操作亦可與其他實施例中之該等載入與 設定操作共同包括。操作315中,一方案根據該等屬性位元 之§亥狀態來實行。一實施例中,該方案檢查操作31()中是否 12 I取該等屬I·生位元以指出該快取行.之一未知狀態。之後, 告疋如此操作320中,一適當的事件會發生。一實施例中, 質產量發生而-事件處置器常式受實行來對其回應而 實仃操作。該事件處置器完成後(或是某些實施例中,該事 件處置器完成前)’依照該輕質產量發生時之該等指令,控 制會返回程式順序中之該指令。 一替代實施例是不檢查該等屬性位元,而僅將該等屬 性位元讀入一暫存器中。該數值之後可由該程式使用。一 範例疋該程式可比較該數值並根據該數值有條件地分支到 不同的編碼路徑。 第4圖繪示—本發明之一實施例可使用的前側匯流排 (FSB)電腦系統。一處理器405從一一階(L1)快取記憶體41 〇 與主記M45G存取資料。本發明之其他實施例中,該快取 記憶體可以是-二階(u)高速緩衝記憶體或是―電腦系統 5己憶體階層中之其他記憶體。此外,某些實施例中,第4圖 之該電腦线可包含—u高速緩衝記憶體與—叫速緩衝 δ己憶體兩者。 —第4圖之該處理器中繪示機器狀態之一儲存區4〇6。一 實施例中,肖存區可以是一組暫,而其他實施例中, ^儲存區可以是其他記憶體結構。根據-實施例,第4圖亦 繪不一儲存區407用來儲存區域部段。其他實施例中該等 儲存區部段可位於其他裝置或記憶體結構巾。該處理器可 ”有任何數量之處理核心。然而’本發明之其他實施例可 於§玄系統之,諸如—分離匯流排代理器的其他裝置中實 1335512 施,或以硬體、軟體、或其某些組·合而分佈於該系統中。 該主記憶體可以各種不同記憶體資源來實施,諸如動 態隨機存取記憶體(DRAM)、一硬碟驅動器(HDD)420、或 是包含各種不同儲存裝置與技術、位於該電腦系統之遠端 5而經由網路介面430通訊的一記憶體資源。該快取記憶體可 位於έ亥處理器中或靠近該處理器附近’諸如該處理器之局 部匯流排407上。 此外,該快取記憶體可包括相當快速的記憶體晶胞, 諸如一六電晶體(6Τ)晶胞、或是幾乎等於或更快存取速度 10之其他記憶體晶胞。第4圖之該電腦系統可以是,諸如微處 理器之匯流排代理器的一點對點(PtP)網路,其經由專屬該 PtP網路之每一個代理器的匯流排信號來通訊。第5圖繪示 一以一點對點(PtP)組態來安排之電腦系統。特別是,第5 圖顯示一處理器、記憶體、與輸入/輸出裝置可由若干點對 I5 點介面互連之系統。 第5圖之該系統亦可包括數個處理器,其中為了清晰呈 現所以僅顯示兩個處理器570、580。處理器570、580之每 一個可包括一局部記憶體控制器中框(MCH)572、582以連 接記憶體22、24。處理器570、580可使用PtP介面電路578、 20 588而經由一點對點(PtP)介面550來交換資料。處理器570、 580之每一個可使用點對點介面電路576、594、586、598而 經由一個別的PtP介面552、554來與一晶片組590交換資 料。晶片組590亦可經由一高效能圖形介面539來與一高效 能圖形電路538交換資料。本發明之實施例可位於具有任何 14 1335512 數量之處理核心的任何處理器中^或是第5圖之該等PtP匯 流排代理器的每一個當中。 然而,本發明之其他實施例可存在於第5圖之該系統中 的其他電路、邏輯單元、或裝置中。再者,本發明之其他 5 實施例可分佈於第5圖繪示之若干電路、邏輯單元、或裝置 中。 本文說明之本發明實施例可以使用互補金氧半導體裝 置、或”硬體”、或使用,諸如一處理器之一機器執行時儲 存於一媒體中的一組指令,來實行與本發明之實施例相關 10 聯的操作、或”軟體”之電路來加以實施。或者,本發明之 實施例可使用一硬體或軟體之組合來實施。 本發明係參照繪示實施例來加以說明,而該說明並不 意欲偈限於一有限觀點中。該等繪示實施例、以及其他實 施例之各種不同修改對有關本發明之業界的熟於此技者而 15 言是顯而易見的,並視為位於本發明之精神與範疇中。 C圖式簡單說明3 第1圖繪示一根據本發明之一實施例的快取記憶體,其 中各種不同快取行具有與其相關聯之一或更多屬性位元。 第2圖繪示一本發明之至少一實施例可使用的電腦系 20 統記憶體階層。 第3圖是一根據一實施例,繪示與檢查屬性相關聯之操 作的流程圖。該等屬性與一或更多條快取行相關聯。 第4圖繪示一本發明之至少一實施例可使用的分享匯 流排電腦糸統。 15 1335512 第5圖繪示一本發明之至少一實施例可使用的點對點 匯流排電腦系統。 【主要元件符號說明】 22、24、52、54…記憶體 522···鍵盤/滑鼠
100、205-20m、410· · ·快取記憶體 524…音頻I/O 105···快取行 110…儲存位置 115…屬性位元 120…狀態儲存位置 125···狀態位元 201-20n…單一執行緒核心 3(H、305、310、315、320·.·操作 405、570、580··.處理器 406"·儲存區 407…儲存區、局部匯流排 415···主記憶體 420…硬碟驅動器 430···網路介面/無線介面 514... I/O 裝置 518···匯流排橋接器 526…通訊裝置 528…資料儲存器 530…編石馬 538···高效能圖形電路 539···高效能圖形介面 552、554…PtP介面 572、582···局部記憶體控制器中 枢 574、584…處理器核心 576、594、586、598…點對點介 面電路 578、588…PtP介面電路 590…晶片組 592、596…介面 16
Claims (1)
1335512 99. 8. -hS- 年月日修正替換頁 十、申請專利範圍: 1. 一種運用一組屬性之裝置,其包含: 具有由使用者所界定之屬性中的一組相關聯屬性 的一個記憶體區塊,該組相關聯屬性對應於具有多個軟 5 體執行緒的一個程式中之唯一一個軟體執行緒, 其中該等屬性係用於指出該等多個軟體執行緒中 之何者可存取所對應的一個快取行以及該等多個軟體 執行緒中之何者可修改該等屬性, 其中該記憶體區塊係用於響應於一 load_set指令或 10 一load_check指令中之一或多者而被存取。 2. 如申請專利範圍第1項之裝置,其中該組相關聯屬性係 要被儲存在一個快取記憶體内的一個快取行之外。 3. 如申請專利範圍第1項之裝置,其中該記憶體區塊係與 一個快取記憶體相關聯,且該快取記憶體包含用於儲存 15 該組屬性的多個屬性位元儲存區中之一個儲存區。 4. 如申請專利範圍第3項之裝置,其中該等位元儲存區具 有與唯——個快取行相關聯的至少一個位元儲存子區。 5. 如申請專利範圍第4項之裝置,其中該組屬性包括用以 指出該唯一一條快取行係對應於該等多個軟體執行緒 20 中之何者的資訊。 6. 如申請專利範圍第5項之裝置,其中該快取記憶體之各 快取行皆具有與其相關聯之數個屬性位元。 7. 如申請專利範圍第6項之裝置,其中該快取記憶體是一 個資料快取記憶體。 17 1335512 糾修it替換頁 8·如申請專利範圍第6項之裝置’其中該快取記憶體是用 於儲存資料與指令的一個統一快取記憶體。 9‘如申請專利範圍第丨項之裝置,其中該等1〇ad_set指令或 load_check指令中之一或多者係要被解碼成多個微操 5 作。 10. —種儲存有一組指令之機器可讀媒體,該等指令包括一 load_set指令與一 l〇ad_check指令中之一或多者: 其中該load_set指令在由一個處理器執行時,會使 該處理器從一個快取行載入資訊並設定一個相關使用 10 者界定屬性位元;並且 其中該load_check指令在由一個處理器執行時,會 使§亥處理器從一個快取行載入資訊並檢查一個相關使 用者界定屬性位元,以及基於經檢查之該相關使用者界 定屬性位元而實行一或多個事件。 15 11.如申請專利範圍第10項之機器可讀媒體,其中,一個處 理器係用於基於在一個處理器中的一個架構方案而判 定該屬性位元之值。 12.如申請專利範圍第η項之機器可讀媒體,其中,該方案 判定該快取記憶體行是否為一意外狀態。 20 13. —種運算系統,其包含: 用於健存一 load_set指令與一 load_check指令的一 個記憶體; 至少一個處理器,其具有至少一個處理核心以提取 與執行來自於該記憶體的該等l〇ad_set與l〇ad_check指 18 1335512 令中之至少一者, 其中該load_set指令係用於從一個快取行載入資訊 並設定一個相關使用者界定屬性位元; 其中該load_check指令係用於從一個快取行載入資 5 訊並檢查一個相關使用者界定屬性位元;並且 其中該處理器的一或多個處理核心係用於基於經 檢查之該相關使用者界定屬性位元而實行一或多個事 件。 14. 如申請專利範圍第13項之系統,其中該等該load_set指 10 令與l〇ad_check指令中之一或多者係要被解碼成多個微 操作。 15. 如申請專利範圍第14項之系統,其中該至少一個處理器 包括用以響應於檢查該屬性位元之動作而實施一個方 案的邏輯裝置。 15 16.如申請專利範圍第15項之系統,其中若該屬性指出該快 取行係處於一意外狀態,則該方案係要引起一個輕質產 量事件。 17. 如申請專利範圍第16項之系統,其中該輕質產量事件係 用於使一個處置器常式受引動,以響應所檢測到之該意 20 外狀態。 18. 如申請專利範圍第13項之系統,其中該load_set指令和 該load_check指令係與包括有多個軟體執行緒的一個程 式之唯一一個軟體執行緒相關聯。 19. 如申請專利範圍第13項之系統,其中該屬性位元是與該 19 1335512 修正替换頁 快取記憶體行相關聯的多個屬性位元中之一者。 20. —種處理器,其包含: 至少一個處理器核心,其包含一個提取單元,用以 提取load—set指令或l〇ad_check指令中之至少一者,該 5 load_set指令係用於從一個快取行載入資訊並設定一個 相關使用者界定屬性位元,該load—check指令係用於從 一個快取行載入資訊並檢查一個相關使用者界定屬性 位元,其中β亥處理益的s亥至少一個處理器核心係用於響 應於經檢查之该相關使用者界定屬性位元而實行一戍 10 多個事件; 邏輯裝置,用以響應於檢查該相關使用者界定屬性 位元之動作而實行一或多個方案。 21.如申請專利範圍第2〇項之處理器,其更包含多個處理核 心’该等多個處理核^各能夠執行多個軟體執行緒。 15 22.如中請專利範圍第21項之處理器,其中賴等多個屬性 位元指出所對應之職取行為—意外狀態,湘以實行 Γ或多個方案之該邏輯裝置係要使-處置器常式被 如 20 二寻利範圍第22項之處理器,其 於包含下列狀態的多個狀態其中之一:係: 斥狀態 '分享狀態、與無效狀態。 樣^互 24. 如申清專利範圍第 包括在内的—個快取記憶體。冑更包含將該快取行 25. 如申請專利範圍第20項之處理器,其中該等丨。—指 20 1335512 ,章i日修正替換頁I 令或load_check指令中之广或多者係要被解碼成多個微 操作。 26. —種運用屬性位元之方法,其包含下列步驟: 將由使用者所界定的一個屬性位元儲存在一個儲 5 存位置中, 讀取與一個快取行相關聯的該屬性位元,該屬性位 元係用於指出一個程式是否已紀錄對該快取行的一個 先前參照值,以便由從下列工具所組成的一個群組中所 選出的一個工具加以分析:一個效能監測工具、及一個 10 除錯工具,其中讀取動作係響應於load_set指令或 load_check指令中之一或多者而被實行,其中該load_set 指令係用於致使一個處理器從一個快取行載入資訊並 設定相關聯的由使用者所界定的一個屬性位元,並且其 中該load_check指令係用於致使一個處理器從一個快取 15 行載入資訊並檢查相關聯的由使用者所界定的一個屬 性位元以及基於經檢查之相關聯的由使用者所界定之 該屬性位元而實行一或多個事件; 判定該屬性位元之值。 27. 如申請專利範圍第26項之方法,其中該快取行對應於一 20 個多執行緒程式中的一個軟體執行緒。 28. 如申請專利範圍第26項之方法,其更包含下列步驟: 響應於判定該屬性位元之值的步驟而實行一個輕 質產量事件。 29. 如申請專利範圍第26項之方法,其中判定該屬性位元之 21 1335512 [上月曰修正替換頁 I 值之步驟包括:在一個處a器中實行一個架構方案。 _ 30. 如申請專利範圍第26項之方法,其中該程式是一個工具提供 程式。 31. 如申請專利範圍第26項之方法,其更包含下列步驟: 5 將該等load_set指令或load_check指令中之一或多 者解碼成多個微操作。 22
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/349,661 US7991965B2 (en) | 2006-02-07 | 2006-02-07 | Technique for using memory attributes |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200817896A TW200817896A (en) | 2008-04-16 |
TWI335512B true TWI335512B (en) | 2011-01-01 |
Family
ID=37898905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW096104443A TWI335512B (en) | 2006-02-07 | 2007-02-07 | Technique for using memory attributes |
Country Status (7)
Country | Link |
---|---|
US (3) | US7991965B2 (zh) |
JP (1) | JP4764360B2 (zh) |
KR (1) | KR100933820B1 (zh) |
CN (2) | CN101916231B (zh) |
DE (1) | DE102007006190B4 (zh) |
GB (2) | GB2434892B (zh) |
TW (1) | TWI335512B (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7991965B2 (en) | 2006-02-07 | 2011-08-02 | Intel Corporation | Technique for using memory attributes |
US7610448B2 (en) | 2006-12-27 | 2009-10-27 | Intel Corporation | Obscuring memory access patterns |
US8185698B2 (en) * | 2007-04-09 | 2012-05-22 | Bratin Saha | Hardware acceleration of a write-buffering software transactional memory |
US8806101B2 (en) * | 2008-12-30 | 2014-08-12 | Intel Corporation | Metaphysical address space for holding lossy metadata in hardware |
CN102460376B (zh) * | 2009-06-26 | 2016-05-18 | 英特尔公司 | 无约束事务存储器(utm)系统的优化 |
US20120239887A1 (en) * | 2011-03-16 | 2012-09-20 | Advanced Micro Devices, Inc. | Method and apparatus for memory control |
US9361103B2 (en) * | 2012-11-02 | 2016-06-07 | Advanced Micro Devices, Inc. | Store replay policy |
US9495305B1 (en) | 2012-11-02 | 2016-11-15 | David Fuchs | Detecting pointer errors for memory protection |
GB2517453B (en) * | 2013-08-20 | 2017-12-20 | Imagination Tech Ltd | Improved use of memory resources |
JP2017517211A (ja) * | 2014-05-28 | 2017-06-22 | 華為技術有限公司Huawei Technologies Co.,Ltd. | 仮想ネットワーク管理を実施するための方法、装置、およびシステム |
US10031834B2 (en) | 2016-08-31 | 2018-07-24 | Microsoft Technology Licensing, Llc | Cache-based tracing for time travel debugging and analysis |
US10042737B2 (en) | 2016-08-31 | 2018-08-07 | Microsoft Technology Licensing, Llc | Program tracing for time travel debugging and analysis |
US10310963B2 (en) * | 2016-10-20 | 2019-06-04 | Microsoft Technology Licensing, Llc | Facilitating recording a trace file of code execution using index bits in a processor cache |
US10310977B2 (en) | 2016-10-20 | 2019-06-04 | Microsoft Technology Licensing, Llc | Facilitating recording a trace file of code execution using a processor cache |
US10489273B2 (en) * | 2016-10-20 | 2019-11-26 | Microsoft Technology Licensing, Llc | Reuse of a related thread's cache while recording a trace file of code execution |
US10324851B2 (en) | 2016-10-20 | 2019-06-18 | Microsoft Technology Licensing, Llc | Facilitating recording a trace file of code execution using way-locking in a set-associative processor cache |
US10540250B2 (en) | 2016-11-11 | 2020-01-21 | Microsoft Technology Licensing, Llc | Reducing storage requirements for storing memory addresses and values |
US10318332B2 (en) | 2017-04-01 | 2019-06-11 | Microsoft Technology Licensing, Llc | Virtual machine execution tracing |
US10296442B2 (en) | 2017-06-29 | 2019-05-21 | Microsoft Technology Licensing, Llc | Distributed time-travel trace recording and replay |
US11119914B2 (en) * | 2019-11-15 | 2021-09-14 | Micron Technology, Inc. | Method of operating a memory with dynamically changeable attributes |
Family Cites Families (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2573255B2 (ja) * | 1987-09-30 | 1997-01-22 | 株式会社東芝 | データキャッシュ制御方式 |
JPH01125638A (ja) * | 1987-11-11 | 1989-05-18 | Matsushita Electric Ind Co Ltd | キャッシュメモリ装置 |
JPH0210448A (ja) * | 1988-06-28 | 1990-01-16 | Hitachi Ltd | キャッシュメモリシステム |
JPH03193684A (ja) | 1989-12-20 | 1991-08-23 | Kobe Steel Ltd | 炭素又は炭素複合材料の製造方法 |
US5428761A (en) | 1992-03-12 | 1995-06-27 | Digital Equipment Corporation | System for achieving atomic non-sequential multi-word operations in shared memory |
KR940015822A (ko) | 1992-12-30 | 1994-07-21 | 양승택 | 다중 프로세서 시스템에서 메모리 모듈의 상태변화 시험방법 |
US6461696B1 (en) | 1993-11-16 | 2002-10-08 | Baxter International Inc. | Multi-layered polymer based moisture barrier structure for medical grade products |
JP3266470B2 (ja) * | 1994-10-03 | 2002-03-18 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 強制順序で行う要求毎ライト・スルー・キャッシュを有するデータ処理システム |
US5761536A (en) * | 1996-08-21 | 1998-06-02 | International Business Machines Corporation | System and method for reducing memory fragmentation by assigning remainders to share memory blocks on a best fit basis |
US5974438A (en) * | 1996-12-31 | 1999-10-26 | Compaq Computer Corporation | Scoreboard for cached multi-thread processes |
US5909698A (en) | 1997-03-17 | 1999-06-01 | International Business Machines Corporation | Cache block store instruction operations where cache coherency is achieved without writing all the way back to main memory |
US5974507A (en) * | 1997-04-14 | 1999-10-26 | International Business Machines Corporation | Optimizing a cache eviction mechanism by selectively introducing different levels of randomness into a replacement algorithm |
US6412056B1 (en) | 1997-10-01 | 2002-06-25 | Compac Information Technologies Group, Lp | Extended translation lookaside buffer with fine-grain state bits |
US6189112B1 (en) * | 1998-04-30 | 2001-02-13 | International Business Machines Corporation | Transparent processor sparing |
US6332181B1 (en) | 1998-05-04 | 2001-12-18 | International Business Machines Corporation | Recovery mechanism for L1 data cache parity errors |
JP3331592B2 (ja) * | 1998-05-22 | 2002-10-07 | 日本電気株式会社 | キャッシュメモリ |
US6430657B1 (en) * | 1998-10-12 | 2002-08-06 | Institute For The Development Of Emerging Architecture L.L.C. | Computer system that provides atomicity by using a tlb to indicate whether an exportable instruction should be executed using cache coherency or by exporting the exportable instruction, and emulates instructions specifying a bus lock |
US6366946B1 (en) * | 1998-12-16 | 2002-04-02 | Microsoft Corporation | Critical code processing management |
US6636950B1 (en) * | 1998-12-17 | 2003-10-21 | Massachusetts Institute Of Technology | Computer architecture for shared memory access |
US6496909B1 (en) * | 1999-04-06 | 2002-12-17 | Silicon Graphics, Inc. | Method for managing concurrent access to virtual memory data structures |
JP3607540B2 (ja) * | 1999-08-18 | 2005-01-05 | エヌイーシーシステムテクノロジー株式会社 | プログラム単位メモリアクセス属性管理方式 |
JP3813393B2 (ja) * | 1999-10-01 | 2006-08-23 | 富士通株式会社 | キャッシュメモリの制御方法及び情報処理装置 |
JP3611295B2 (ja) | 2000-03-09 | 2005-01-19 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンピュータシステム、メモリ管理方法及び記憶媒体 |
EP1139222A1 (en) * | 2000-03-31 | 2001-10-04 | Texas Instruments Incorporated | Prefetch for TLB cache |
US6748496B1 (en) | 2000-04-18 | 2004-06-08 | Ati International Srl | Method and apparatus for providing cacheable data to a peripheral device |
US6748501B2 (en) | 2000-12-30 | 2004-06-08 | International Business Machines Corporation | Microprocessor reservation mechanism for a hashed address system |
US6704840B2 (en) * | 2001-06-19 | 2004-03-09 | Intel Corporation | Computer system and method of computer initialization with caching of option BIOS |
JP2003006046A (ja) | 2001-06-25 | 2003-01-10 | Sanyo Electric Co Ltd | メモリプロテクション方法および回路 |
US6898694B2 (en) * | 2001-06-28 | 2005-05-24 | Intel Corporation | High instruction fetch bandwidth in multithread processor using temporary instruction cache to deliver portion of cache line in subsequent clock cycle |
JP4434534B2 (ja) | 2001-09-27 | 2010-03-17 | 株式会社東芝 | プロセッサ・システム |
JP4226816B2 (ja) * | 2001-09-28 | 2009-02-18 | 株式会社東芝 | マイクロプロセッサ |
US7120762B2 (en) * | 2001-10-19 | 2006-10-10 | Wisconsin Alumni Research Foundation | Concurrent execution of critical sections by eliding ownership of locks |
US6854039B1 (en) | 2001-12-05 | 2005-02-08 | Advanced Micro Devices, Inc. | Memory management system and method providing increased memory access security |
EP1456750A1 (en) | 2001-12-12 | 2004-09-15 | Telefonaktiebolaget LM Ericsson (publ) | Collision handling apparatus and method |
JP2003223360A (ja) * | 2002-01-29 | 2003-08-08 | Hitachi Ltd | キャッシュメモリシステムおよびマイクロプロセッサ |
US6859868B2 (en) * | 2002-02-07 | 2005-02-22 | Sun Microsystems, Inc. | Object addressed memory hierarchy |
JP3866597B2 (ja) | 2002-03-20 | 2007-01-10 | 株式会社東芝 | 内部メモリ型耐タンパプロセッサおよび秘密保護方法 |
US6862664B2 (en) * | 2003-02-13 | 2005-03-01 | Sun Microsystems, Inc. | Method and apparatus for avoiding locks by speculatively executing critical sections |
DE10309919B4 (de) | 2003-03-07 | 2008-09-25 | Qimonda Ag | Pufferbaustein und Speichermodule |
US7089373B2 (en) * | 2003-06-12 | 2006-08-08 | International Business Machines Corporation | Shadow register to enhance lock acquisition |
US7493618B2 (en) * | 2003-09-19 | 2009-02-17 | International Business Machines Corporation | Fault tolerant mutual exclusion locks for shared memory systems |
US20050138306A1 (en) * | 2003-12-19 | 2005-06-23 | Panchbudhe Ankur P. | Performance of operations on selected data in a storage area |
US7174428B2 (en) * | 2003-12-29 | 2007-02-06 | Intel Corporation | Method and system for transforming memory location references in instructions |
US7562361B2 (en) | 2004-02-26 | 2009-07-14 | Microsoft Corporation | Thread-based limitation on computer application |
KR100620609B1 (ko) * | 2004-04-07 | 2006-09-13 | 한국해양연구원 | 저층수인양장치 |
US7594234B1 (en) * | 2004-06-04 | 2009-09-22 | Sun Microsystems, Inc. | Adaptive spin-then-block mutual exclusion in multi-threaded processing |
US20070124546A1 (en) * | 2005-11-29 | 2007-05-31 | Anton Blanchard | Automatic yielding on lock contention for a multi-threaded processor |
US7616218B1 (en) | 2005-12-05 | 2009-11-10 | Nvidia Corporation | Apparatus, system, and method for clipping graphics primitives |
US7987452B2 (en) * | 2005-12-15 | 2011-07-26 | International Business Machines Corporation | Profile-driven lock handling |
US7991965B2 (en) | 2006-02-07 | 2011-08-02 | Intel Corporation | Technique for using memory attributes |
-
2006
- 2006-02-07 US US11/349,661 patent/US7991965B2/en active Active
-
2007
- 2007-02-07 JP JP2007028172A patent/JP4764360B2/ja active Active
- 2007-02-07 GB GB0702377A patent/GB2434892B/en active Active
- 2007-02-07 CN CN2010102750409A patent/CN101916231B/zh active Active
- 2007-02-07 CN CN2007101016755A patent/CN101059777B/zh active Active
- 2007-02-07 DE DE102007006190.2A patent/DE102007006190B4/de active Active
- 2007-02-07 TW TW096104443A patent/TWI335512B/zh not_active IP Right Cessation
- 2007-02-07 GB GB0813998A patent/GB2451003B/en active Active
- 2007-02-07 KR KR1020070012870A patent/KR100933820B1/ko active IP Right Grant
-
2011
- 2011-07-04 US US13/175,928 patent/US8560781B2/en active Active
-
2013
- 2013-09-21 US US14/033,463 patent/US8812792B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
KR100933820B1 (ko) | 2009-12-24 |
CN101916231A (zh) | 2010-12-15 |
US20070186055A1 (en) | 2007-08-09 |
US7991965B2 (en) | 2011-08-02 |
US20140025901A1 (en) | 2014-01-23 |
GB2451003A (en) | 2009-01-14 |
CN101059777B (zh) | 2010-11-03 |
US8560781B2 (en) | 2013-10-15 |
DE102007006190B4 (de) | 2017-10-26 |
JP4764360B2 (ja) | 2011-08-31 |
US20110264866A1 (en) | 2011-10-27 |
KR20070080589A (ko) | 2007-08-10 |
GB2434892B (en) | 2008-11-26 |
GB2451003B (en) | 2010-06-23 |
GB2434892A (en) | 2007-08-08 |
CN101059777A (zh) | 2007-10-24 |
US8812792B2 (en) | 2014-08-19 |
GB0813998D0 (en) | 2008-09-10 |
TW200817896A (en) | 2008-04-16 |
JP2007242003A (ja) | 2007-09-20 |
CN101916231B (zh) | 2013-11-20 |
DE102007006190A1 (de) | 2007-08-30 |
GB0702377D0 (en) | 2007-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI335512B (en) | Technique for using memory attributes | |
US7089391B2 (en) | Managing a codec engine for memory compression/decompression operations using a data movement engine | |
KR101392109B1 (ko) | 시스템 관리 모드의 프로세서에 상태 스토리지를 제공하기 위한 장치, 방법 및 시스템 | |
EP1783603A2 (en) | Method and apparatus for data prefetching in a multithreaded processing environment | |
TWI506444B (zh) | 改良mmio請求處置之處理器及方法 | |
JP2008515069A5 (zh) | ||
JP2014197408A (ja) | ロックインジケータを有するマルチスレッドプロセッサ | |
US20150143045A1 (en) | Cache control apparatus and method | |
CN102646446A (zh) | 硬件动态高速缓存电源管理 | |
CN115794682A (zh) | 缓存替换方法及装置、电子设备、存储介质 | |
WO2012024053A2 (en) | Method and system of handling non-aligned memory accesses | |
JP2008047124A (ja) | コンピュータグラフィックスデータの処理方法とその処理装置 | |
JP2018536230A (ja) | キャッシュへのアクセス | |
TWI379195B (en) | Method and device for accessing memory and central processing unit using the same | |
JP2003281079A5 (zh) | ||
US9158697B2 (en) | Method for cleaning cache of processor and associated processor | |
US8938588B2 (en) | Ensuring forward progress of token-required cache operations in a shared cache | |
TWI517040B (zh) | 保護二進制轉譯碼的完整性 | |
JP2014174849A (ja) | 半導体記憶装置 | |
CN113961452A (zh) | 硬中断方法和相关装置 | |
JP2010026969A (ja) | データ処理装置 | |
US9946656B2 (en) | Completion packet return based on eviction or flush | |
JP5847313B2 (ja) | 情報処理装置 | |
JP2007310905A (ja) | 半導体集積回路 | |
JP2008123333A (ja) | 半導体集積回路装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |