TWI665605B - 用於暫時抑制受約束儲存器運算元請求之處理之電腦程式產品、電腦實施方法及電腦系統 - Google Patents
用於暫時抑制受約束儲存器運算元請求之處理之電腦程式產品、電腦實施方法及電腦系統 Download PDFInfo
- Publication number
- TWI665605B TWI665605B TW107100718A TW107100718A TWI665605B TW I665605 B TWI665605 B TW I665605B TW 107100718 A TW107100718 A TW 107100718A TW 107100718 A TW107100718 A TW 107100718A TW I665605 B TWI665605 B TW I665605B
- Authority
- TW
- Taiwan
- Prior art keywords
- storage
- operand request
- instruction
- request
- processing
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 179
- 238000000034 method Methods 0.000 title claims description 47
- 238000004590 computer program Methods 0.000 title claims description 17
- 230000001629 suppression Effects 0.000 claims abstract description 27
- 230000002401 inhibitory effect Effects 0.000 claims abstract description 4
- 230000008569 process Effects 0.000 claims description 18
- 230000006870 function Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 9
- 230000009471 action Effects 0.000 description 7
- 238000013519 translation Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000012384 transportation and delivery Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001568 sexual effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000012795 verification Methods 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
- 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/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- 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/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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
- 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/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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/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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- 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/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
-
- 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/60—Details of cache memory
- G06F2212/602—Details relating to cache prefetching
-
- 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/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Multi Processors (AREA)
Abstract
選擇性暫時抑制經識別為受約束的一儲存器運算元請求之處理。該處理包括判定至由一運算環境之多個處理單元共用之一共同儲存位置的一儲存器運算元請求是否受約束,及基於判定該儲存器運算元請求受約束,則依照該儲存器運算元請求,暫時抑制請求對該共同儲存位置之存取。執行該處理之該處理單元可繼續進行該受約束儲存器運算元請求該處理,而不執行該抑制,其中該處理可使用該處理單元私用之快取來實現。否則,該抑制可繼續,直至與該儲存器運算元請求相關聯之一指令或一指令之操作待接下來完成。
Description
一或多個態樣大體係關於運算環境內之處理,且特定而言,係關於改良此處理。
多處理運算環境中,諸如中央處理單元(CPU)或核心之多個處理單元經連接以共用對共同儲存器(諸如,共同主要儲存位置)之存取。跨該組態之儲存階層可包括每一處理單元本端之各種快取層級、在若干處理單元間共用之各種快取層級及主儲存器。當處理單元將更新儲存位置時,儲存行由儲存階層轉移至處理單元,且該行獨佔地在執行更新之處理單元本端的快取層級內持有。當一儲存行由一處理單元獨佔地持有時,不准許其他處理單元更新或讀取彼儲存行,直至在該行經釋放且不再由任一處理單元獨佔地持有為止。
意欲增強個別處理單元效能(諸如,管線化、超標量、無序執行及分支預測)之處理單元特徵可導致推測性記憶體請求。推測性請求為可能或可不需要完成特定程式路徑之請求。在起始推測性請求時,判定是否需要一請求之條件尚未解決。
在一或多個態樣中,經由提供用於有助於運算環境中之處理的電腦程式產品來克服現有技術的某些缺點及提供額外優點。該電腦程式產品包括可藉由處理電路讀取且儲存供處理電路執行以用於執行方法之指令的儲存媒體。舉例而言,該方法包括判定至由一運算環境之多個處理單元共用之一共同儲存器的一儲存器運算元請求是否受約束。基於判定該儲存器運算元請求受約束,該方法進一步包括依照該儲存器運算元請求,暫時抑制請求對該共同儲存位置之存取。
有利地,藉由提供一種設備(或能力)來增強電腦環境處理,該設備(或能力)用於一程式對一處理單元傳訊對應於由運算環境之多個處理單元共用之一共同儲存位置的一特定儲存器運算元請求或存取應受約束。基於將一特定儲存器運算元請求識別為受約束,若不能使用該處理單元私用之快取實現經識別的儲存器運算元之處理,則該處理單元推遲該儲存器運算元請求之處理。可推遲(或暫時抑制)該處理,直至在指定該經識別的儲存器運算元之一指令(或一指令之操作)前之指令已完成處理。此有利地確保識別為受約束之該儲存器運算元存取僅在需要時執行,且若不能僅使用私用快取實現該儲存器運算元請求,則並不推測性地執行。有利地,結果,可減少一共同共用儲存行徒然穿越該運算環境之次數,藉此增加總體系統效能。
在一或多個實施中,該暫時抑制包括抑制該儲存器運算元請求之處理,其中該儲存器運算元請求需要對由該運算環境之該多個處理單元共用的該共同儲存位置之存取,以便處理該儲存器運算元請求。更特定言之,該方法可由一處理單元執行,且該處理單元可判定該儲存器運算元請求是否命中該處理單元之一私用快取,且基於該儲存器運算元請求產生該私用
快取中之一命中,可繼續進行使用該私用快取處理該儲存器運算元請求,而不執行該抑制。
在一或多個實施例中,該暫時抑制包括抑制該儲存器運算元請求之處理,直至與該儲存器運算元請求相關聯之一指令或一指令之操作待接下來完成。在增強型實施例中,該方法可進一步包括將該儲存器運算元請求置放於一儲存器運算元請求佇列中,其中該儲存器運算元請求需要對由該運算環境之該多個處理單元共用的該共同儲存位置之存取。藉由實例,該暫時抑制可包括將該儲存器運算元請求保留在該儲存器運算元請求佇列中,直至與該儲存器運算元請求相關聯之一指令或一指令之操作待接下來完成。
在一或多個實施中,該方法可進一步包括將該儲存器運算元請求識別為受約束。該識別可包括由一處理單元獲得指示與下一個依序指令之一運算元相關聯的一存取意圖之一存取意圖指令,其中該存取意圖將該儲存器運算元請求之使用指示為受約束。在一或多個實施中,該存取意圖指令可為下一個指令存取意圖指令,且該儲存器運算元請求作為受約束之該識別可包括在該下一個指令存取意圖指令內提供一約束存取意圖程式碼。
在一或多個實施例中,該儲存器運算元請求為與一指令或一指令之一操作相關聯的一推測性儲存器運算元請求。
在另一態樣中,提供一種用於有助於一運算環境內之處理之電腦系統。該電腦系統包括一記憶體,及與該記憶體通信耦接之一處理單元,其中該電腦系統經組態以執行一方法。該方法包括判定至由該運算環境之多個處理單元共用之一共同儲存位置的一儲存器運算元請求是否受約束,及基於判定該儲存器運算元請求受約束,依照該儲存器運算元請求,暫時抑
制請求對該共同儲存位置之存取。有利地,識別為受約束之該儲存器運算元請求或存取僅需要在需要時執行,且不需要推測性地執行,其中該儲存器運算元請求不能僅使用該處理單元私用之快取實現。結果,可減少一共同共用儲存行徒然穿越一運算環境之次數,藉此增加總體系統效能。
在再一態樣中,提供一種有助於一運算環境內之處理之電腦實施方法。該電腦實施方法包括,例如,判定至由該運算環境之多個處理單元共用之一共同儲存位置的一儲存器運算元請求是否受約束;及基於該判定該儲存器運算元請求受約束,依照該儲存器運算元請求,暫時抑制請求對該共同儲存位置之存取。有利地,該方法確保識別為受約束之儲存器運算元存取僅需要在需要時執行,且不推測性地執行,其中該儲存器運算元請求不能僅使用該處理單元私用之快取實現。
經由本文中所描述之技術實現額外特徵及優點。本文中詳細描述其他實施例及態樣且將其視為所主張態樣之一部分。
10‧‧‧節點
12‧‧‧電腦系統/伺服器
14‧‧‧外部器件
16‧‧‧處理器或處理單元
17‧‧‧作業系統
18‧‧‧匯流排
20‧‧‧網路配接器
22‧‧‧輸入/輸出(I/O)介面
24‧‧‧顯示器
28‧‧‧記憶體
30‧‧‧隨機存取記憶體(RAM)
32‧‧‧快取記憶體
34‧‧‧儲存系統
40‧‧‧程式/公用程式
42‧‧‧程式模組
50‧‧‧雲端運算環境
54A‧‧‧運算器件
54B‧‧‧運算器件
54C‧‧‧運算器件
54N‧‧‧運算器件
60‧‧‧硬體及軟體層
61‧‧‧大型電腦
62‧‧‧基於RISC(精簡指令集電腦)架構之伺服器
63‧‧‧伺服器
64‧‧‧刀鋒伺服器
65‧‧‧儲存器件
66‧‧‧網路及網路連接組件
67‧‧‧網路應用伺服器軟體
68‧‧‧資料庫軟體
70‧‧‧虛擬化層
71‧‧‧虛擬伺服器
72‧‧‧虛擬儲存器
73‧‧‧虛擬網路
74‧‧‧虛擬應用程式及作業系統
75‧‧‧虛擬用戶端
80‧‧‧管理層
81‧‧‧資源佈建
82‧‧‧計量及定價
83‧‧‧使用者入口網站
84‧‧‧服務層級管理
85‧‧‧服務層級協議(SLA)規劃及履行
90‧‧‧工作負載層
91‧‧‧地圖測繪及導航
92‧‧‧軟體開發及生命週期管理
93‧‧‧虛擬教室教育遞送
94‧‧‧資料分析處理
95‧‧‧異動處理
96‧‧‧指令處理
100‧‧‧運算環境
200‧‧‧運算環境
201‧‧‧執行單元
202‧‧‧裝載/儲存單元(LSU)
203‧‧‧裝載/儲存佇列(LSQ)
204‧‧‧本端(或私用)快取
205‧‧‧較高層級快取
210‧‧‧相關聯之記憶體控制器
215‧‧‧記憶體
300‧‧‧多處理器環境
302a‧‧‧核心
302n‧‧‧核心
304a‧‧‧硬體執行緒或處理單元
304n‧‧‧硬體執行緒或處理單元
306a‧‧‧L1快取
306n‧‧‧L1快取
310‧‧‧共用快取
601‧‧‧作業碼欄位
602‧‧‧保留欄位
603‧‧‧存取意圖控制欄位603(I1)
604‧‧‧另一存取意圖控制欄位
610‧‧‧格式
900‧‧‧運算環境
902‧‧‧原生中央處理單元(CPU)
904‧‧‧記憶體
906‧‧‧輸入/輸出器件及/或介面
908‧‧‧匯流排
910‧‧‧原生暫存器
912‧‧‧仿真器程式碼
950‧‧‧客體指令
952‧‧‧指令提取常式
954‧‧‧指令轉譯常式
956‧‧‧原生指令
960‧‧‧仿真控制常式
在本說明書之結尾處之申請專利範圍中作為實例特定地指出且清楚地主張一或多個態樣。一或多個態樣之前述內容及目標、特徵及優點自結合隨附圖式進行的以下詳細描述顯而易見,其中:圖1描繪併有及使用本發明之一或多個態樣的運算環境之一個實例;圖2描繪併有及使用本發明之一或多個態樣的運算環境之再一實例;圖3描繪併有及使用本發明之一或多個態樣的一多處理單元環境之一個實例;圖4描繪根據本發明之一或多個態樣的處理之一個實施例;圖5描繪根據本發明之一或多個態樣的處理之一更詳細實例;
圖6A說明根據本發明之一或多個態樣有用的一指令格式之一個實施例;圖6B說明根據本發明之一或多個態樣的諸如圖6A中描繪之指令格式之存取意圖控制欄位之一個實施例;圖7說明根據本發明之一或多個態樣的可在使用諸如圖6A及圖6B中描繪之指令控制處理行為過程中使用的流程圖之一實施例;圖8A及圖8B描繪根據本發明之一或多個態樣的儲存器運算元請求之處理之再一實例;圖9A描繪併有及使用本發明之一或多個態樣的運算環境之另一實例;圖9B描繪圖9A之記憶體之另外細節;圖10描繪雲端運算環境之一個實施例;及圖11描繪抽象模型層之一個實例。
如所指出,意欲增強個別處理單元效能(諸如,管線化、超標量、無序執行及分支預測)之處理單元特徵可導致推測性記憶體請求。至私用儲存位置之推測性請求可為有利的,但至共同儲存位置之過度推測性請求可對總體系統效能不利。對於不必要之推測性請求,一共用儲存行可穿越儲存階層,而不使任何個別處理程序受益。
用於一共同共用儲存位置之處理單元間的競爭隨著以下而增大:推測性記憶體請求之數目因運算環境或組態中之每一處理單元而增加,運算環境中的處理單元之數目增加,或在實施同時多執行緒(SMT)之一處理器中的執行緒之數目增加等。隨著處理單元間之競爭增大,每一個別處理單
元變得日益更難成功地獲得含有一特定共用記憶體位置之儲存行。結果,可使總體系統效能降級。
根據本發明之一或多個態樣,提供一種設備,其用於一程式對一處理單元傳訊一特定儲存器運算元存取請求對應於在遍及該運算環境之若干處理單元間共用之一共同儲存位置。若不能僅使用處理單元本端或私用之快取層級實現經識別為受約束的一儲存器運算元之處理,則對該處理單元傳訊推遲對共同外部階層之任何查詢,直至在處於指定該經識別的儲存器運算元之指令前之指令已完成處理。此有利地確保經識別的儲存器運算元請求僅在需要時執行,且不推測性地執行。結果,減少一共同共用儲存行徒然穿越一運算環境之次數,藉此增加總體系統效能。
參看圖1描述併有及使用本發明之一或多個態樣的運算環境之一個實施例。在一個實例中,運算環境可基於由紐約阿蒙克市之International Business Machines Corporation提供之z/Architecture。z/Architecture之一個實施例描述於2015年3月IBM公開案第SA22-7832-10號之「z/Architecture Principles of Operation」中,該公開案在此以全文引用的方式併入本文中。Z/ARCHITECTURE(Z/ARCHITECTURE)係美國紐約阿蒙克市之International Business Machines Corporation之註冊商標。
在另一實例中,運算環境可基於由紐約阿蒙克市之International Business Machines Corporation提供之功率架構。功率架構之一個實施例描述於2015年4月9日International Business Machines Corporation之「Power ISATM Version 2.07B」中,其在此以全文引用的方式併入本文中。功率架構為美國紐約阿蒙克市之International Business Machines Corporation之註冊商標。
運算環境亦可基於其他架構,包括(但不限於)Intel x86架構。亦存在其他實例。
如圖1中所展示,運算環境100包括(例如)節點10,該節點具有(例如)電腦系統/伺服器12,該電腦系統/伺服器與眾多其他通用或專用運算系統環境或組態一起操作。可適合與電腦系統/伺服器12一起使用之熟知運算系統、環境及/或組態之實例包括(但不限於):個人電腦(PC)系統、伺服器電腦系統、精簡型用戶端、複雜型用戶端、手持型或膝上型電腦裝置、多處理器系統、基於微處理器之系統、機上盒、可程式化消費型電子器件、網路PC、小型電腦系統、大型電腦系統及包括以上系統或裝置中之任一者的分散式雲端運算環境及類似者。
可在正由電腦系統執行之電腦系統可執行指令(諸如,程式模組)之一般情境下描述電腦系統/伺服器12。通常,程式模組可包括執行特定任務或實施特定抽象資料類型之常式、程式、物件、組件、邏輯、資料結構等。電腦系統/伺服器12可實踐於許多運算環境中,包括(但不限於)分散式雲端運算環境,其中任務係由經由通信網路鏈接之遠端處理器件執行。在分散式雲端運算環境中,程式模組可位於包括記憶體儲存器件的本端及遠端電腦系統儲存媒體兩者中。
如圖1中所展示,以通用運算器件之形式展示電腦系統/伺服器12。電腦系統/伺服器12之組件可包括(但不限於)一或多個處理器或處理單元16、一系統記憶體28及一匯流排18,該匯流排將包括系統記憶體28之各種系統組件耦接至處理器16。
匯流排18表示任何若干類型之匯流排結構中之一或多者,包括記憶體匯流排或記憶體控制器、周邊匯流排、加速圖形埠及處理器或使用多種
匯流排架構中之任一者之本端匯流排。以實例說明而非限制,此等架構包括工業標準架構(ISA)匯流排、微通道架構(MCA)匯流排、增強型ISA(EISA)匯流排、視訊電子標準協會(VESA)本端匯流排及周邊組件互連(PCI)匯流排。
電腦系統/伺服器12通常包括多種電腦系統可讀媒體。此等媒體可為可由電腦系統/伺服器12存取之任何可用媒體,且其包括揮發性及非揮發性媒體、抽取式及非抽取式媒體。
系統記憶體28可包括呈揮發性記憶體之形式的電腦系統可讀媒體,諸如,隨機存取記憶體(RAM)30及/或快取記憶體32。電腦系統/伺服器12可進一步包括其他抽取式/非抽取式、揮發性/非揮發性電腦系統儲存媒體。僅藉由實例,可提供儲存系統34以用於自非抽取式、非揮發性磁性媒體(未圖示且通常稱為「硬碟機」)讀取且寫入至該磁性媒體。儘管未展示,但可提供用於自抽取式、非揮發性磁碟(例如,「軟碟」)讀取及寫入至抽取式、非揮發性磁碟之磁碟機,及用於自抽取式、非揮發性光碟(諸如,CD-ROM、DVD-ROM或其他光學媒體)讀取及寫入至抽取式、非揮發性光碟之光碟機。在此等情況下,每一者可由一或多個資料媒體介面連接至匯流排18。如以下將進一步描繪及描述,記憶體28可包括具有經組態以進行本發明之實施例之功能的一組(例如,至少一個)程式模組之至少一個程式產品。
以實例說明而非限制,具有一組(至少一個)程式模組42之程式/公用程式40以及作業系統17、一或多個應用程式、其他程式模組及程式資料可儲存於記憶體28中。作業系統、一或多個應用程式、其他程式模組及程式資料或其某一組合中之每一者可包括網路連接環境之實施。程式模組42
通常執行如本文所描述的本發明之實施例之功能及/或方法。
電腦系統/伺服器12亦可與以下各者通信:一或多個外部器件14,諸如,鍵盤、指標器件、顯示器24等;使使用者能夠與電腦系統/伺服器12互動之一或多個器件;及/或使電腦系統/伺服器12能夠與一或多個其他運算器件通信之任何器件(例如,網路卡、數據機等)。此通信可經由輸入/輸出(I/O)介面22發生。仍然,電腦系統/伺服器12可經由網路配接器20與諸如區域網路(LAN)、一般廣域網路(WAN)及/或公用網絡(例如,網際網路)之一或多個網路通信。如所描繪,網路配接器20經由匯流排18與電腦系統/伺服器12之其他組件通信。應理解,雖未展示,但其他硬體及/或軟體組件可與電腦系統/伺服器12一起使用。實例包括(但不限於):微碼、器件驅動器、冗餘處理單元、外部磁碟機陣列、RAID系統、磁帶機及資料存檔儲存系統等。
作為實例,處理單元16可包括用以執行指令之多個功能組件。此等功能組件可包括(例如)提取待被執行之指令之指令提取組件;解碼提取之指令之指令解碼單元;執行經解碼指令之指令執行組件;必要時存取記憶體以用於指令執行之記憶體存取組件;及提供經執行指令之結果之寫回組件。根據本發明之一態樣,此等組件中之一或多者可用以實施經識別為受約束的一儲存器運算元請求之處理之抑制或延遲,如下文進一步描述。
在一個實施例中,處理單元16亦包括待由該等功能組件中之一或多者使用的一或多個暫存器。
參看圖2描述併有及使用本發明之一或多個態樣的運算環境之另一實例。在一個實例中,運算環境可再次基於上文提及之由紐約阿蒙克市之International Business Machines Corporation提供之z/Architecture。在另
一實例中,運算環境可基於上文提及之由紐約阿蒙克市之International Business Machines Corporation提供之功率架構。運算環境亦可基於其他架構,包括(但不限於)因特爾64及IA-32架構。亦存在其他實例。
參考圖2,在一個實例中,運算環境200包括耦接至一或多個較高層級快取205之至少一個處理單元(PU),諸如,中央處理單元(CPU)。中央處理單元16包括(例如)一或多個執行單元201以請求及消耗資料。執行單元201耦接至一裝載/儲存單元(LSU)202,其包括一裝載/儲存佇列(LSQ)203。裝載/儲存單元202發出擷取預取之資料或使該資料自記憶體子系統或較高層級快取提取之記憶體存取操作(裝載及儲存)。LSU 202可經由(例如)轉譯機構(諸如,轉譯後援緩衝器(TLB)或有效至實位址轉譯表(ERAT))耦接至本端快取204。
處理單元16耦接至一記憶體階層且與其通信,該記憶體階層包括(例如):本端快取204,其可包括一L1資料快取;一或多個較高層級快取205,其可包括單一二層(L2)快取或多個其他依序編號之較高層級,例如,L3、L4;一記憶體215;及一相關聯之記憶體控制器210,其控制對記憶體215之存取。本端快取204充當用於經預取之資料(及/或資料串流)之預取緩衝器。本端快取204具有對應的負載錯過佇列(LMQ),快取利用其保存關於進行中的預取請求之資訊。
另外,在一個實施例中,本端快取204可具有相關聯之快取目錄,其可實施為快取之部分或維持與快取之分開。快取目錄可針對本端快取中之每一快取行包括一標籤。該標籤提供關於快取行之資訊,包括快取行中的資料之實或絕對位址之至少部分,以及狀態資訊,諸如,該資料是獨佔式地持有還是共用,等;資料之使用,諸如,其最近使用、最近不太使用或
最近使用與最近不太使用之間的某處,等;及/或其他狀態資訊。該標籤亦可包括關於快取行中之資料的額外資訊。每一快取層級可具有相關聯之快取目錄,或為其自身目錄,或為共用目錄。
除了實例記憶體階層之外,運算環境200亦可包括自處理單元16之角度看來形成記憶體階層之部分的額外儲存器件。該儲存器件可為一或多個電子儲存媒體,諸如,軟碟、硬碟機、CD-ROM或DVD。CPU 102藉由各種機制(作為實例,包括經由匯流排及/或直接通道)與記憶體階層內的以上器件中之每一者通信。
匯流排可表示若干類型之匯流排結構中之任何種中的一或多者,包括記憶體匯流排或記憶體控制器、周邊匯流排、加速圖形埠及使用多種匯流排架構中之任一者之處理器或本端匯流排。以實例說明而非限制,此等架構包括行業標準架構(ISA)匯流排、視訊電子器件標準協會(VESA)局部匯流排及外圍組件互連(PCI)匯流排。
在另一實施例中,本文中揭示之處理可在多處理器環境中使用,諸如,以下參看圖3描述之環境。在一個實例中,多處理器環境300包括多個核心302a......302n。每一核心包括至少一個硬體執行緒或處理單元304a、304n,其包括本端快取,諸如,L1快取306a、306n。每一核心302a、302n耦接至零或多個較高層級私用快取(例如,L2快取)。另外,多處理器環境300包括零或多個共用快取310,諸如,L3及/或L4快取,其在核心之間共用,且更特定言之,在處理單元間共用。亦可存在其他拓樸。
多處理器環境(或處理單元之一子集)中之每一處理單元亦可包括待用以查詢快取(若可用,包括共用快取中之一或多者)中之一或多者的一查詢
功能,以獲得快取駐留狀態及/或選定資料之其他資訊。
如所指出,根據本發明之一或多個態樣,本文中提供一種用於增強運算環境內之處理之設備。如圖4中所說明,該設備可包括判定至由一運算環境之多個處理單元共用之一共同儲存位置的儲存器運算元請求是否受約束400之一能力。基於判定該運算元請求受約束,可暫時抑制該儲存器運算元,亦即,可依照該儲存器運算元請求推遲對該共同儲存位置之一或多個存取查詢410。
在一或多個實施中,抑制儲存器運算元請求可包括抑制該儲存器運算元請求之處理,直至與該儲存器運算元請求相關聯之一指令或一指令之操作待接下來完成。在儲存器運算元請求需要對由運算環境之多個處理單元共用之共同儲存的存取以便處理儲存器運算元請求之情況下,可發生抑制。另外,實施處理之處理單元可進一步判定儲存器運算元請求是否命中處理單元之私用快取,及基於儲存器運算元請求產生私用快取中之命中,可繼續進行儲存器運算元請求之處理,而不執行抑制。
在一或多個實施中,可將該儲存器運算元請求置放於一儲存器運算元請求佇列中,其中該儲存器運算元請求需要對由該運算環境之該多個處理單元共用的該共同儲存位置之存取。藉由實例,該暫時抑制可包括將該儲存器運算元請求保留於該儲存器運算元請求佇列中,例如,在裝載儲存單元中,直至與該儲存器運算元請求相關聯的一指令或一指令之操作待接下來完成。
此外,該設備可包括將該儲存器運算元請求識別為受約束之一能力。該識別可包括由一處理單元獲得指示與下一個依序指令之運算元相關聯的一存取意圖之一存取意圖指令。該存取意圖可指示作為受約束的該儲
存器運算元請求之使用。在一或多個實施中,該存取意圖指令可為下一個指令存取意圖指令,且該儲存器運算元請求作為受約束之該識別可包括在該下一個指令存取意圖指令內提供一約束存取意圖程式碼,如本文中進一步描述。
在一或多個實施例中,該儲存器運算元請求為與一指令或一指令之操作相關聯的一推測性儲存器運算元請求,其中一指令可指一架構指令,如在一指令集架構中,且指令之操作可指微操作,諸如,可裂開的架構化指令之一組分。
圖5描繪根據本發明之一或多個態樣的過程流程之更詳細實施例。如所展示,處理單元可提取指令500,且解碼該指令以判定(例如)運算元有關信號、執行單元(LSU、FXU等)、「受約束」指明等505。如所指出,提供受約束指明之能力可在指令集架構(ISA)中實施,其一實例在下文參看圖6A至圖7描述。
將該指令排入佇列供執行510,且處理單元判定該指令是否準備發出515。若「否」,則指令保持在佇列中510。否則,將該指令發出至執行單元。在此實例中,假定該指令包括一儲存器運算元請求或存取,且經發出至裝載儲存單元(LSU)501。
在提供之實例中,LSU 501判定儲存運算元位址530,且向該處理單元之一或多個本端或私用快取請求儲存器運算元存取535。處理單元判定該請求擊中還是未命中本端快取540。若存在快取命中,則處理單元繼續標準指令處理。然而,若存在快取未命中,則將指令返回至佇列510,且將與該指令相關聯之儲存器運算元請求置放於一儲存器運算元請求佇列中以用於可能之推測性執行。
在描繪之實施中,LSU 501判定儲存器運算元請求佇列545中之下一個儲存器運算元請求是否經指明為受約束550。若「否」,則處理單元請求對自該處理單元外部之儲存階層的存取,意即,請求對由運算環境之多個處理單元共用之一共同儲存位置的存取。若該儲存器運算元請求經指明為受約束,則該處理單元判定與該請求相關聯的指令或指令之操作是否待接下來完成(NTC)555。若在用於執行的指令之佇列中,對應的指令待接下來完成,則處理單元將存取查詢發送至在處理單元外部之儲存階層。否則,將該儲存器運算元請求返回至儲存器運算元請求佇列545以暫時抑制該儲存器運算元請求。抑制繼續,直至與該請求相關聯之指令(或操作)待接下來完成,在此時點,請求導致對在處理單元外部之儲存階層的查詢以用於存取所要的共同儲存位置。
根據本發明之一或多個實施例可使用的一指令格式之一個實施例在以下參看圖6A至圖7描述。在圖6A中,將一指令格式描繪稱為下一個指令存取意圖(NIAI)指令。此指令格式可包括作業碼欄位601,其指示此為下一個指令存取意圖指令。另外,可提供保留欄位602,其在一或多個實施例中可含有零。該指令格式亦可包括欄位或運算元,諸如,存取意圖控制欄位603(I1),及另一存取意圖控制欄位604(I2)。
對於此指令格式,術語主要存取運算元意謂指令之最低編號之儲存器運算元。類似地,術語次要存取運算元意謂指令之下一個最低編號之儲存器運算元。此等術語不具有與術語第一運算元及第二運算元相同之意義,即使可存在某一相關性。
受制於I1 603及I2 604欄位中之控制,對CPU傳訊針對下一個連續指令之主要存取及次要存取運算元中之任一者或兩者之未來存取意圖。下一
個連續指令可為在NIAI指令後擷取及執行之指令。I1 603欄位可含有對CPU傳訊針對下一個連續指令之主要存取運算元之存取意圖之一程式碼。I2 604欄位可含有對CPU傳訊針對下一個連續指令之次要存取運算元之存取意圖之一程式碼。當下一個連續指令僅具有單個儲存器運算元時,可省略I2 604欄位。
指令格式之一個實施例可包括單一存取意圖欄位。指令格式之另一實施例可包括兩個存取意圖欄位。指令格式之另一實施例可包括多個存取意圖欄位。指令格式之再一實施例可包括含有指定後續接下來連續指令之數目之一值的一欄位或運算元。存取意圖控制欄位I1 603及I2 604可具有諸如圖6B中描繪之格式610,其中I1 603及I2 604欄位之位元的設定數目含有一不帶正負號整數,其用作對CPU傳訊針對下一個連續指令之對應的運算元之存取意圖之一程式碼。
根據本發明之一或多個態樣,若存取意圖控制欄位含有「受約束」值,例如,值4,則下一個依序指令之對應的運算元參考是用於多處理環境中之一共同儲存區域。若不能僅使用CPU之本端(或私用)快取層級來實現運算元之處理,則推薦CPU推遲對外部儲存階層之任何查詢,直至在下一個依序指令前之任何指令已完成處理。有利地,用於下一個指令存取意圖指令之受約束存取意圖可用以避免對貫穿該組態高度競爭的儲存位置至推測性請求,藉此減少儲存子系統中之不必要的操作。
取決於CPU之模型,CPU可不必辨認運算元之所有存取意圖。對於未由CPU辨認之存取意圖,該指令可充當否操作。否操作為當指令實際上不執行操作時。另外,下一個指令存取意圖指令可僅影響後續指令運算元存取,且其可(例如)不影響後續指令提取。
在一或多個實施例中,預料程式可或可不使用具有可與一或多個快取行邊界交叉之對應的儲存運算元之存取意圖值。
另外,若在下一個指令存取意圖之執行後且在下一個依序指令之執行前出現中斷,則下一個指令存取意圖可充當否操作且忽略指定存取意圖。
在一或多個實施中,受約束存取意圖值可供主要存取運算元使用,如由I1欄位指定。
參看圖7描述根據一實施例的一流程圖之一個實施例。如所展示,在一或多個實施中,CPU獲得指示存取意圖之一存取意圖指令700。存取意圖可與下一個連續指令之運算元相關聯。存取意圖亦可指示由在下一個連續指令後之指令使用該運算元。CPU接著執行存取意圖指令710。在一個實施例中,處理單元可藉由將存取意圖內部儲存(例如)於內部記憶體或內部控制暫存器中來記住存取意圖。CPU獲得下一個依續指令720。執行該下一個依續指令,且作為執行之部分,基於存取意圖指令之存取意圖控制處理單元行為730。
在一個實施例中,本文中描述處理單元行為控制以選擇性抑制儲存器運算元請求之處理,其中使用(例如)存取意圖指令將該儲存器運算元請求判定或識別為受一程式約束。如上所指出,在一或多個實施中,可利用存取意圖指令之控制欄位中之一或多者中的一指明之存取意圖程式碼來實現將儲存器運算元請求識別為受約束。
更特定言之,藉由指定本文中指出之存取意圖值,可提供對在用於一符號位址CNTR(舉例而言,其為用於在一組態中之多個CPU間共用的一計數器之儲存位置)之一CPU之本端快取層級外部的儲存階層之推測性
查詢。若需要對在CPU之本端快取層級外部的儲存階層之查詢以處理CNTR,則推遲查詢,直至在與該請求相關聯的一指令或一指令之操作前之指令已完成處理。當用於CNTR之多個CPU間的查詢之數目經最少化,則每一CPU更新CNTR所需之時間亦最少化。
參看圖8A及圖8B,根據本發明之一或多個態樣,有助於一運算環境內之處理(800)包括:判定對由一運算環境之多個處理單元共用之一共同儲存位置的儲存器運算元請求是否受約束;及基於判定該儲存器運算元請求受約束,依照該儲存器運算元請求,暫時抑制請求對該共同儲存位置之存取。
該暫時抑制可包括抑制該儲存器運算元請求之處理,其中該儲存器運算元請求需要對由該運算環境之該多個處理單元共用的該共同儲存位置之存取以便處理該儲存器運算元請求(805)。另外,在該處理由一處理單元執行之情況下,該處理單元可進一步判定該儲存器運算元請求是否命中該處理單元之一私用快取,且基於該儲存器運算元請求產生該私用快取中之一命中,可繼續進行該儲存器運算元請求之處理,而不執行該抑制(810)。
此外,該抑制可包括抑制儲存器運算元請求之處理,直至與該儲存器運算元請求相關聯之一指令或一指令之操作待接下來完成(815)。此可包括(例如)將該儲存器運算元請求置放於一儲存器運算元請求佇列中,其中該儲存器運算元請求需要對由該運算環境之該多個處理單元共用的該共同儲存位置之存取(820)。藉由實例,該暫時抑制可包括將該儲存器運算元請求保留在該儲存器運算元請求佇列中,直至與該儲存器運算元請求相關聯之一指令或一指令之操作待接下來完成(825)。
在一或多個實施中,有助於處理可進一步包括將儲存器運算元請求識別為受約束(830)。該識別可包括由一處理單元獲得指示與下一個依序指令之運算元相關聯的一存取意圖之一存取意圖指令。該存取意圖指示可指示儲存器運算元請求之使用受約束(830)。舉例而言,該存取意圖指令可為下一個指令存取意圖指令,且將儲存器運算元請求識別為受約束可包括在該下一個指令存取意圖指令內提供一受約束存取意圖程式碼(835)。
在一或多個實施中,該儲存器運算元請求可為與一指令或一指令之操作相關聯的一推測性儲存器運算元請求(840)。
參看圖9A描述併有及使用一或多個態樣的運算環境之另一實施例。在此實例中,運算環境900包括(例如)原生中央處理單元(CPU)902、記憶體904及一或多個輸入/輸出器件及/或介面906,前述各者經由(例如)一或多個匯流排908及/或其他連接件而相互耦接。作為實例,運算環境900可包括:由紐約阿蒙克市之International Business Machines Corporation提供之PowerPC處理器或pSeries伺服器;由加州帕洛阿爾托之惠普公司提供的具有Intel Itanium II處理器之HP Superdome;及/或基於由International Business Machines Corporation、惠普公司、因特爾公司、甲骨文公司或其他公司提供之架構的其他機器。
原生中央處理單元902包括一或多個原生暫存器910,諸如,在環境內之處理期間使用的一或多個通用暫存器及/或一或多個專用暫存器。此等暫存器包括表示環境在任何特定時間點之狀態的資訊。
此外,原生中央處理單元902執行儲存於記憶體904中之指令及程式碼。在一個特定實例中,中央處理單元執行儲存於記憶體904中之仿真器程式碼912。此程式碼使在一個架構中組態之運算環境能夠仿真另一架
構。舉例而言,仿真器程式碼912允許基於不同於z/Architecture之架構之機器(諸如,PowerPC處理器、pSeries伺服器、HP Superdome伺服器或其他者)仿真z/Architecture且執行基於z/Architecture開發之軟體及指令。
參看圖9B描述與仿真器程式碼912有關之另外細節。共同地參看圖9A及圖9B,儲存於記憶體904中之客體指令950包括經開發以在不同於原生CPU 902之架構的架構中執行之軟體指令(例如,與機器指令相關)。舉例而言,客體指令950可已經設計以在z/Architecture處理器上執行,但取而代之,正在可為(例如)Intel Itanium II處理器之原生CPU 902上仿真。在一個實例中,仿真器程式碼912包括指令提取常式952,以自記憶體904獲得一或多個客體指令950,且視情況提供對所獲得指令之本端緩衝。其亦包括指令轉譯常式954以判定已經獲得的客體指令之類型及將客體指令轉譯成一或多個對應的原生指令956。此轉譯包括(例如)識別待由客體指令執行之功能及挑選原生指令執行彼功能。
另外,仿真器程式碼912包括仿真控制常式960以使原生指令被執行。仿真控制常式960可使原生CPU 902執行仿真一或多個先前所獲得之客體指令之原生指令的常式,且在此執行結束時,將控制返回至指令擷取常式以仿真下一客體指令或客體指令群組之獲得。原生指令956之執行可包括將資料自記憶體904載入至暫存器中;將資料自暫存器儲存回至記憶體;或執行某一類型之算術或邏輯運算,如由轉譯常式判定。
每一常式(例如)實施於軟體中,該軟體儲存於記憶體中且由原生中央處理單元902執行。在其他實例中,一或多個常式或操作實施於韌體、硬體、軟體或其某一組合中。所仿真處理器之暫存器可使用原生CPU之暫存器910或藉由使用記憶體904中之位置來仿真。在實施例中,客體指令
950、原生指令956及仿真器程式碼912可駐留於同一記憶體中或可分佈於不同記憶體器件當中。
如本文中所使用,韌體包括(例如)處理器之微碼、毫碼(millicode)及/或巨集碼。該術語包括(例如)用於實施較高層級機器程式碼之硬體層級指令及/或資料結構。在一個實施例中,韌體可包括(例如)專屬程式碼,其通常作為包括受信任軟體或特定針對基礎硬體之微碼之微碼遞送,且控制對系統硬體之作業系統存取。
經獲得、轉譯及執行之客體指令950為(例如)本文中描述的指令中之一或多者。將具有一種架構(例如,z/Architecture)之指令自記憶體提取、轉譯及表示為另一架構(例如,PowerPC、pSeries、Intel等)之原生指令956之序列。接著可執行此等原生指令。
儘管提供各種實例,但在不脫離所主張態樣之精神的情況下,變化係可能的。舉例而言,包括於暫存器中之值及/或由指令使用之欄位在其他實施例中可在諸如記憶體位置等之其他位置中。許多其他變化係可能的。
一或多個態樣可關於雲端運算。
事先應理解,儘管本發明包括關於雲端運算之詳細描述,但本文中所敍述之教示之實施不限於雲端運算環境。相反,本發明之實施例能夠結合現在已知或日後開發之任何其他類型之運算環境來實施。
雲端運算為用於實現對可組態運算資源(例如,網路、網路頻寬、伺服器、處理、記憶體、儲存器、應用程式、虛擬機及服務)之共用集區的方便、按需網路存取之服務遞送之模型,該等可組態運算資源可按最小管理精力或與服務之提供者之互動來迅速地佈建及釋放。此雲端模型可包括
至少五個特性、至少三個服務模型及至少四個部署模型。
特性如下:
按需自助服務:雲端消費者可按需要自動地單向佈建運算能力(諸如,伺服器時間及網路儲存),而無需與服務之提供者之人為互動。
寬帶網路存取:可經由網路獲得能力及經由標準機制存取能力,該等標準機制藉由異質精簡型或複雜型用戶端平台(例如,行動電話、膝上型電腦及PDA)促進使用。
資源集用:提供者之運算資源經集用以使用多租戶模型為多個消費者服務,其中根據需求動態指派及重新指派不同實體及虛擬資源。存在位置獨立性之意義,此係因為消費者通常不具有對所提供之資源之確切位置的控制或瞭解,但可能能夠按較高抽象層級(例如,國家、州或資料中心)指定位置。
迅速彈性:可迅速地且彈性地佈建能力(在一些狀況下,自動地)以快速地向外延展,且可迅速地釋放能力以快速地向內延展。在消費者看來,可用於佈建之能力常常看起來為無限的且可在任何時間以任何數量來購買。
所量測服務:雲端系統藉由在適於服務類型(例如,儲存、處理、頻寬及作用中使用者帳戶)之某一抽象層級下充分利用計量能力而自動控制及最佳化資源使用。可監視、控制及報告資源使用,從而為所利用之服務之提供者及消費者兩者提供透明度。
服務模型如下:
軟體即服務(SaaS):提供給消費者之能力係使用在雲端基礎架構上執行之提供者之應用程式。可經由諸如網頁瀏覽器(例如,基於網路之電
子郵件)之精簡型用戶端介面自各種用戶端器件存取應用程式。消費者並不管理或控制包括網路、伺服器、作業系統、儲存器或甚至個別應用程式能力之基礎雲端基礎架構,其中可能的例外狀況為有限的使用者特定應用程式組態設定。
平台即服務(PaaS):提供給消費者之能力係將使用由提供者所支援之程式設計語言及工具建立的消費者建立或獲取之應用程式部署至雲端基礎架構上。消費者並不管理或控制包括網路、伺服器、作業系統或儲存器之基礎雲端基礎架構,但具有對所部署之應用程式及可能的代管環境組態之應用程式的控制。
基礎架構即服務(IaaS):提供給消費者之能力係佈建處理、儲存、網絡及其他基礎運算資源,其中消費者能夠部署及執行可包括作業系統及應用程式之任意軟體。消費者並不管理或控制基礎雲端基礎架構,但具有對作業系統、儲存器、所部署應用程式之控制,及可能的對選擇網路連接組件(例如,主機防火牆)之有限控制。
部署模型如下:
私用雲端:僅針對組織操作雲端基礎架構。私用雲端可由組織或第三方來管理且可存在內部部署或外部部署。
社群雲端:該雲端基礎架構由若干組織共用且支援已分擔問題(例如,任務、安全要求、原則及合規性考量)之特定社群。該雲端可由組織或第三方來管理且可存在於內部部署或外部部署。
公用雲端:該雲端基礎架構可用於公眾或大型工業集團且為出售雲端服務之組織所擁有。
混合雲端:該雲端基礎架構為兩個或多於兩個雲端(私用、社群或公
用)之組合物,該等雲端保持獨特實體,但藉由實現資料及應用程式攜帶性(例如,用於在雲端之間實現負載平衡之雲端爆裂)之標準化或專屬技術束縛在一起。
藉由聚焦於無狀態性、低耦合、模組化及語義互操作性對雲端運算環境進行服務定向。雲端運算之核心為包含互連節點之網路之基礎架構。一個此節點係圖1中所描繪之節點10。
運算節點10僅為合適的雲端運算節點之一個實例且並不意欲表明關於本文中所描述之本發明之實施例的使用或功能性之範疇的任何限制。無論如何,雲端運算節點10能夠按上文所闡述般來實施及/或執行上文所闡述之功能性中之任一者。
現參看圖10,描繪說明性雲端運算環境50。如所展示,雲端運算環境50包含一或多個運算節點10,雲端消費者所使用之本端運算裝置(諸如,個人數位助理(PDA)或蜂巢式電話54A、桌上型電腦54B、膝上型電腦54C及/或汽車電腦系統54N)可與該一或多個運算節點通信。節點10可彼此通信。可在一或多個網路(諸如,如上文所描述之私用、社群、公用或混合雲端或其組合)中將該等節點實體地或虛擬地分組(未圖示)。此允許雲端運算環境50提供基礎架構、平台及/或軟體作為服務,針對該等服務,雲端消費者不需要在本端運算器件上維持資源。應理解,圖7中所展示之運算器件54A至54N之類型意欲僅為說明性的,且運算節點10及雲端運算環境50可經由任何類型之網路及/或網路可定址連接(例如,使用網頁瀏覽器)與任何類型之電腦化器件通信。
現參看圖11,展示由雲端運算環境50(圖10)所提供之功能抽象層之集合。事先應理解,圖11中所展示之組件、層及功能意欲僅為說明性的且
本發明之實施例不限於此。如所描繪,提供以下層及對應功能。
硬體及軟體層60包括硬體及軟體組件。硬體組件之實例包括大型電腦61;基於RISC(精簡指令集電腦)架構之伺服器62;伺服器63;刀鋒伺服器64;儲存器件65;及網路及網路連接組件66。在一些實施例中,軟體組件包括網路應用伺服器軟體67及資料庫軟體68。
虛擬化層70提供抽象層,可自該抽象層提供虛擬實體之以下實例:虛擬伺服器71;虛擬儲存器72;虛擬網路73,包括虛擬私用網路;虛擬應用程式及作業系統74;及虛擬用戶端75。
在一個實例中,管理層80可提供下文所描述之功能。資源佈建81提供運算資源及用以執行雲端運算環境內之任務之其他資源的動態採購。當在雲端運算環境內利用資源時,計量及定價82提供成本追蹤,及對此等資源之消耗之帳務處理及發票開立。在一個實例中,此等資源可包含應用程式軟體許可。安全性提供針對雲端消費者及任務之身分驗證,以及對資料及其他資源之保護。使用者入口網站83為消費者及系統管理者提供對雲端運算環境之存取。服務層級管理84提供雲端運算資源分配及管理,使得符合所需服務層級。服務層級協議(SLA)規劃及履行85提供雲端運算資源之預先配置及採購,針對雲端運算資源之未來要求係根據SLA來預期。
工作負載層90提供功能性之實例,可針對該功能性利用雲端運算環境。可自此層提供之工作負載及功能的實例包括:地圖測繪及導航91;軟體開發及生命週期管理92;虛擬教室教育遞送93;資料分析處理94;異動處理95;及指令處理96。
本發明可為在整合之任何可能技術詳細層級處的系統、方法及/或電腦程式產品。該電腦程式產品可包括一(或多個)電腦可讀儲存媒體,其上
具有電腦可讀程式指令以使處理器進行本發明之態樣。
電腦可讀儲存媒體可為有形器件,其可保留及儲存指令以供指令執行器件使用。電腦可讀儲存媒體可為(例如但不限於)電子儲存器件、磁性儲存器件、光學儲存器件、電磁儲存器件、半導體儲存器件或前述各者之任何合適組合。電腦可讀儲存媒體之更具體實例之非窮盡性清單包括以下各者:攜帶型電腦磁片、硬碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可擦除可程式化唯讀記憶體(EPROM或快閃記憶體)、靜態隨機存取記憶體(SRAM)、攜帶型光碟唯讀記憶體(CD-ROM)、數位化通用光碟(DVD)、記憶卡、軟性磁碟、機械編碼器件(諸如,其上記錄有指令之凹槽中之打孔卡片或凸起結構)及前述各者之任何合適組合。如本文所使用,不應將電腦可讀儲存媒體本身解釋為暫時性信號,諸如,無線電波或其他自由傳播之電磁波、經由波導或其他傳輸媒體傳播之電磁波(例如,經由光纜傳遞之光脈衝),或經由電線傳輸之電信號。
本文中所描述之電腦可讀程式指令可自電腦可讀儲存媒體下載至各別運算/處理器件或經由網路(例如,網際網路、區域網路、廣域網路及/或無線網路)下載至外部電腦或外部儲存器件。網路可包含銅傳輸電纜、光傳輸光纖、無線傳輸、路由器、防火牆、交換器、閘道器電腦及/或邊緣伺服器。每一運算/處理器件中之網路配接卡或網路介面自網路接收電腦可讀程式指令且轉遞電腦可讀程式指令以用於儲存於各別運算/處理器件內之電腦可讀儲存媒體中。
用於進行本發明之操作之電腦可讀程式指令可為以一或多種程式設計語言之任何組合撰寫之組譯器指令、指令集架構(ISA)指令、機器指令、機器相關指令、微碼、韌體指令、狀態設定資料、用於積體電路系統
之組態資料,或原始程式碼或物件碼(object code),該一或多種程式設計語言包括諸如Smalltalk、C++或類似者之物件導向式程式設計語言,及諸如「C」程式設計語言或類似程式設計語言之程序性程式設計語言。電腦可讀程式指令可全部在使用者之電腦上執行,作為單獨套裝軟體部分在使用者之電腦上執行,部分在使用者之電腦上且部分在遠端電腦上執行或全部在遠端電腦或伺服器上執行。在後種情形中,遠端電腦可經由任一類型之網路(包括區域網路(LAN)或廣域網路(WAN))連接至用戶之電腦,或可進行至外部電腦之連接(例如,經由使用網際網路服務提供者之網際網路)。在一些實施例中,電子電路(包括例如可程式化邏輯電路、場可程式化閘陣列(FPGA)或可程式化邏輯陣列(PLA))可藉由利用電腦可讀程式指令之狀態資訊來個人化電子電路而執行電腦可讀程式指令,以便執行本發明之態樣。
本文參考根據本發明之實施例之方法、裝置(系統)及電腦程式產品之流程圖說明及/或方塊圖描述本發明之態樣。應理解,可藉由電腦可讀程式指令實施流程圖說明及/或方塊圖中之每一區塊,及流程圖說明及/或方塊圖中的區塊之組合。
可將此等電腦可讀程式指令提供至通用電腦、專用電腦或其他可程式化資料處理裝置之處理器以產生機器,使得經由該電腦或其他可程式化資料處理裝置之處理器執行之指令建立用於實施該一或多個流程圖及/或方塊圖區塊中所指定之功能/動作之方式。亦可將此等電腦可讀程式指令儲存於電腦可讀儲存媒體中,該等指令其可指導電腦、可程式化資料處理裝置及/或其他器件以特定方式起作用,使得其中儲存有指令之電腦可讀儲存媒體包含製品,該製品包括實施在該一或多個流程圖及/或方塊圖區
塊中指定之功能/動作之態樣的指令。
電腦可讀程式指令亦可載入至電腦、其他可程式資料處理裝置或其他器件上,以使一系列操作步驟在該電腦、其他可程式化裝置或其他器件上執行以產生電腦實施之處理程序,使得在該電腦、其他可程式化裝置或其他裝器件上執行之指令實施該或該等一或多個流程圖及/或方塊圖區塊中所指定之功能/動作。
諸圖中之流程圖及方塊圖說明根據本發明之各種實施例之系統、方法及電腦程式產品之可能實施之架構、功能性及操作。就此而言,流程圖或方塊圖中之每一區塊可表示指令之模組、片段或部分,其包含用於實施所指定之邏輯函式的一或多個可執行指令。在一些替代實施中,區塊中指出之功能可不按諸圖中所提及的次序發生。舉例而言,取決於所涉及之功能性,連續展示之兩個區塊可事實上實質上同時執行,或該等區塊有時可以相反次序執行。亦將注意,可由執行指定功能或動作或進行專用硬體及電腦指令之組合的基於專用硬體之系統實施方塊圖及/或流程圖說明之每一區塊及方塊圖及/或流程圖說明中之區塊的組合。
除上述情形之外,可藉由供應客戶環境之管理之服務提供者來提供、供應、部署、管理、服務(等等其他操作)一或多個態樣。舉例而言,服務提供者可建立、維持、支援(等等其他操作)電腦程式碼及/或執行用於一或多個消費者之一或多個態樣之電腦基礎架構。作為回報,服務提供者可根據訂用及/或收費協議接收來自消費者之付款(作為實例)。另外或替代地,服務提供者可接收來自於向一或多個第三方出售廣告內容之付款。
在一態樣中,可部署一應用程式用於執行一或多個實施例。作為一個實例,應用程式之部署包括提供可操作以執行一或多個實施例之電腦基
礎架構。
作為另一態樣,可部署運算基礎架構,包含將電腦可讀程式碼整合至運算系統中,其中程式碼結合運算系統能夠執行一或多個實施例。
作為又一態樣,可提供一種用於整合運算基礎架構之處理程序,包含將電腦可讀程式碼整合至電腦系統中。電腦系統包含電腦可讀媒體,其中電腦媒體包含一或多個實施例。程式碼結合電腦系統能夠執行一或多個實施例。
雖然上文描述各種實施例,但此等僅為實例。舉例而言,其他架構之運算環境可用以併入及使用一或多個實施例。另外,可使用不同指令、指令格式、指令欄位及/或指令值。許多變化係可能的。
另外,其他類型之運算環境可為有益的且可加以使用。作為一實例,可使用適合於儲存及/或執行程式碼之資料處理系統,其包括直接或經由系統匯流排間接地耦接至記憶體元件之至少兩個處理器。記憶體元件包括(例如)在實際執行程式碼期間使用之本端記憶體、大容量儲存器,及提供至少某一程式碼之臨時儲存以便減少在執行期間必須自大容量儲存器擷取程式碼之次數的快取記憶體。
輸入/輸出或I/O器件(包括(但不限於)鍵盤、顯示器、指標器件、DASD、磁帶、CD、DVD、隨身碟(thumb drive)及其他記憶體媒體等)可直接或經由介入之I/O控制器耦接至系統。網路配接器亦可耦接至系統以使資料處理系統能夠變成經由介入之私用網路或公用網路耦接至其他資料處理系統或遠端印表機或儲存器件。數據機、纜線數據機及乙太網路卡僅為幾個可用類型之網路配接器。
本文中所使用之詞僅用於描述特定實施例之目的且並不意欲為限制
性的。如本文中所使用,單數形式「一」及「該」意欲亦包括複數形式,除非上下文另有清晰地指示。應進一步理解,術語「包含(comprises及/或comprising)」在用於本說明書中時指定所陳述之特徵、整數、步驟、操作、元件及/或組件之存在,但不排除一或多個其他特徵、整數、步驟、操作、元件、組件及/或其群組之存在或添加。
以下申請專利範圍中之所有構件或步驟加功能元件之對應結構、材料、動作及等效物(若存在)意欲包括用於結合如特定主張之其他所主張元件來執行功能的任何結構、材料或動作。已出於說明及描述之目的提出一或多個實施例之描述,但其不意欲為窮盡性的或限於所揭示之形式。對於一般熟習此項技術者而言,許多修改及變化將為顯而易見的。實施例經選擇及描述以最佳地解釋各種態樣及實際應用,使得一般熟習此項技術者能夠理解具有適於所預料之特定用途的各種修改之各種實施例。
Claims (20)
- 一種用於有助於一運算環境內之處理之電腦程式產品,該電腦程式產品包含: 一電腦可讀儲存媒體,其可由一處理電路讀取且儲存用於由該處理電路執行以用於執行一方法之指令,該方法包含: 判定至由一運算環境之多個處理單元共用之一共同儲存位置的一儲存器運算元請求是否受約束;及 基於判定該儲存器運算元請求受約束,依照該儲存器運算元請求,暫時抑制請求對該共同儲存位置之存取。
- 如請求項1之電腦程式產品,其中該暫時抑制包含抑制該儲存器運算元請求之處理,其中該儲存器運算元請求需要對由該運算環境之該多個處理單元共用的該共同儲存位置之存取,以便處理該儲存器運算元請求。
- 如請求項2之電腦程式產品,其中該方法由一處理單元執行,且該處理單元進一步判定該儲存器運算元請求是否命中該處理單元之一私用快取,且基於該儲存器運算元請求產生該私用快取中之一命中,繼續進行使用該私用快取處理該儲存器運算元請求,而不執行該抑制。
- 如請求項1之電腦程式產品,其中該抑制包含抑制該儲存器運算元請求之處理,直至與該儲存器運算元請求相關聯之一指令或一指令之操作待接下來完成。
- 如請求項1之電腦程式產品,其進一步包含將該儲存器運算元請求置放於一儲存器運算元請求佇列中,其中該儲存器運算元請求需要對由該運算環境之該多個處理單元共用的該共同儲存位置之存取。
- 如請求項5之電腦程式產品,其中該暫時抑制包括將該儲存器運算元請求保留在該儲存器運算元請求佇列中,直至與該儲存器運算元請求相關聯之一指令或一指令之操作待接下來完成。
- 如請求項1之電腦程式產品,其進一步包含將該儲存器運算元請求識別為受約束,該識別包括由一處理單元獲得指示與下一個依序指令之一運算元相關聯的一存取意圖之一存取意圖指令,該存取意圖指示該儲存器運算元請求之使用受約束。
- 如請求項7之電腦程式產品,其中該存取意圖指令為下一個指令存取意圖指令,且該將該儲存器運算元請求識別為受約束包括在該下一個指令存取意圖指令內提供一約束存取意圖程式碼。
- 如請求項1之電腦程式產品,其中該儲存器運算元請求為與一指令或一指令之一操作相關聯的一推測性儲存器運算元請求。
- 一種用於有助於一運算環境內之處理之電腦系統,該電腦系統包含: 一記憶體;及 一處理單元,其與一記憶體通信耦接,其中該電腦系統經組態以執行一方法,該方法包含: 判定至由一運算環境之多個處理單元共用之一共同儲存位置的一儲存器運算元請求是否受約束;及 基於判定該儲存器運算元請求受約束,依照該儲存器運算元請求,暫時抑制請求對該共同儲存位置之存取。
- 如請求項10之電腦系統,其中該判定及該抑制係在該處理單元之一裝載儲存單元內執行。
- 如請求項10之電腦系統,其中該暫時抑制包含抑制該儲存器運算元請求之處理,其中該儲存器運算元請求需要對由該運算環境之該多個處理單元共用的該共同儲存位置之該存取,以便處理該儲存器運算元請求。
- 如請求項12之電腦系統,其中該處理單元進一步判定該儲存器運算元請求是否命中該處理單元之一私用快取,且基於該儲存器運算元請求產生該私用快取中之一命中,繼續進行使用該私用快取處理該儲存器運算元請求,而不執行該抑制。
- 如請求項10之電腦系統,其中該暫時抑制包含抑制該儲存器運算元請求之處理,直至與該儲存器運算元請求相關聯之一指令或一指令之操作待接下來完成。
- 如請求項10之電腦系統,其中該方法進一步包括將該儲存器運算元請求置放於一儲存器運算元請求佇列中,其中該儲存器運算元請求需要對由該運算環境之該多個處理單元共用的該共同儲存位置之存取完成,且其中該暫時抑制包括將該儲存器運算元請求保留在該儲存器運算元請求佇列中,直至對應於該儲存器運算元請求之一指令待接下來完成。
- 如請求項10之電腦系統,其中該方法進一步包括將該儲存器運算元請求識別為受約束,該識別包括由一處理單元獲得指示與下一個依序指令之一運算元相關聯的一存取意圖之一存取意圖指令,該存取意圖指示該儲存器運算元請求之使用受約束。
- 一種有助於一運算環境內之處理之電腦實施方法,該電腦實施方法包含: 判定至由一運算環境之多個處理單元共用之一共同儲存位置的一儲存器運算元請求是否受約束;及 基於判定該儲存器運算元請求受約束,依照該儲存器運算元請求,暫時抑制請求對該共同儲存位置之存取。
- 如請求項17之電腦實施方法,其中該暫時抑制包含抑制該儲存器運算元請求之處理,其中該儲存器運算元請求需要對由該運算環境之該多個處理單元共用的該共同儲存位置之存取,以便處理該儲存器運算元請求。
- 如請求項18之電腦實施方法,其中該方法由一處理單元執行,且該處理單元進一步判定該儲存器運算元請求是否命中該處理單元之一私用快取,且基於該儲存器運算元請求產生該私用快取中之一命中,繼續進行使用該私用快取處理該儲存器運算元請求,而不執行該抑制。
- 如請求項17之電腦實施方法,其中該抑制包含抑制該儲存器運算元請求之處理,直至與該儲存器運算元請求相關聯之一指令或一指令之操作待接下來完成。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/404,254 | 2017-01-12 | ||
US15/404,254 US10521351B2 (en) | 2017-01-12 | 2017-01-12 | Temporarily suppressing processing of a restrained storage operand request |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201830235A TW201830235A (zh) | 2018-08-16 |
TWI665605B true TWI665605B (zh) | 2019-07-11 |
Family
ID=60953874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107100718A TWI665605B (zh) | 2017-01-12 | 2018-01-09 | 用於暫時抑制受約束儲存器運算元請求之處理之電腦程式產品、電腦實施方法及電腦系統 |
Country Status (13)
Country | Link |
---|---|
US (3) | US10521351B2 (zh) |
EP (1) | EP3568754B1 (zh) |
JP (1) | JP7177572B2 (zh) |
KR (1) | KR102238188B1 (zh) |
CN (1) | CN110168498A (zh) |
AU (1) | AU2018208453B2 (zh) |
CA (1) | CA3037265A1 (zh) |
IL (1) | IL265557B (zh) |
MX (1) | MX2019012411A (zh) |
RU (1) | RU2724654C1 (zh) |
TW (1) | TWI665605B (zh) |
WO (1) | WO2018130522A1 (zh) |
ZA (1) | ZA201904787B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10521351B2 (en) | 2017-01-12 | 2019-12-31 | International Business Machines Corporation | Temporarily suppressing processing of a restrained storage operand request |
US10572387B2 (en) | 2018-01-11 | 2020-02-25 | International Business Machines Corporation | Hardware control of CPU hold of a cache line in private cache where cache invalidate bit is reset upon expiration of timer |
US11880304B2 (en) | 2022-05-24 | 2024-01-23 | International Business Machines Corporation | Cache management using cache scope designation |
CN118277292A (zh) * | 2022-12-30 | 2024-07-02 | 华为技术有限公司 | 一种数据预取方法和数据预取装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW531711B (en) * | 2000-08-31 | 2003-05-11 | Ibm | Partitioned issue queue and allocation strategy |
CN101308462A (zh) * | 2007-05-14 | 2008-11-19 | 国际商业机器公司 | 管理对共享存储器单元的存储器访问的方法和计算系统 |
US7606998B2 (en) * | 2004-09-10 | 2009-10-20 | Cavium Networks, Inc. | Store instruction ordering for multi-core processor |
CN102754069A (zh) * | 2010-02-18 | 2012-10-24 | 国际商业机器公司 | 加载/存储分离设施及其指令 |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4225921A (en) | 1978-10-02 | 1980-09-30 | Honeywell Information Systems Inc. | Transfer control technique between two units included in a data processing system |
JPS6432379A (en) | 1987-07-29 | 1989-02-02 | Hitachi Ltd | Computer |
US5175829A (en) | 1988-10-25 | 1992-12-29 | Hewlett-Packard Company | Method and apparatus for bus lock during atomic computer operations |
US5623632A (en) | 1995-05-17 | 1997-04-22 | International Business Machines Corporation | System and method for improving multilevel cache performance in a multiprocessing system |
US5761712A (en) | 1995-06-07 | 1998-06-02 | Advanced Micro Devices | Data memory unit and method for storing data into a lockable cache in one clock cycle by previewing the tag array |
US5963974A (en) | 1997-04-14 | 1999-10-05 | International Business Machines Corporation | Cache intervention from a cache line exclusively holding an unmodified value |
JP3729087B2 (ja) | 2001-05-23 | 2005-12-21 | 日本電気株式会社 | マルチプロセッサシステム、データ依存投機実行制御装置およびその方法 |
US6801986B2 (en) | 2001-08-20 | 2004-10-05 | Hewlett-Packard Development Company, L.P. | Livelock prevention by delaying surrender of ownership upon intervening ownership request during load locked / store conditional atomic memory operation |
JP3970705B2 (ja) * | 2002-07-05 | 2007-09-05 | 富士通株式会社 | アドレス変換装置、アドレス変換方法および2階層アドレス変換装置 |
US8892821B2 (en) | 2003-12-10 | 2014-11-18 | International Business Machines Corporation | Method and system for thread-based memory speculation in a memory subsystem of a data processing system |
CN100414518C (zh) | 2004-11-24 | 2008-08-27 | 中国科学院计算技术研究所 | 改进的虚拟地址变换方法及其装置 |
US20070271450A1 (en) | 2006-05-17 | 2007-11-22 | Doshi Kshitij A | Method and system for enhanced thread synchronization and coordination |
US8190859B2 (en) | 2006-11-13 | 2012-05-29 | Intel Corporation | Critical section detection and prediction mechanism for hardware lock elision |
JP2008210027A (ja) * | 2007-02-23 | 2008-09-11 | Toshiba Corp | 計算機システム及び並列化コンパイラ |
US7849290B2 (en) * | 2007-07-09 | 2010-12-07 | Oracle America, Inc. | Store queue architecture for a processor that supports speculative execution |
US7975130B2 (en) * | 2008-02-20 | 2011-07-05 | International Business Machines Corporation | Method and system for early instruction text based operand store compare reject avoidance |
US8032709B2 (en) | 2008-02-22 | 2011-10-04 | International Business Machines Corporation | System, method and computer program product for handling shared cache lines in a multi-processor environment |
US20100058034A1 (en) * | 2008-08-29 | 2010-03-04 | International Business Machines Corporation | Creating register dependencies to model hazardous memory dependencies |
US20100205609A1 (en) * | 2009-02-11 | 2010-08-12 | Sun Microsystems, Inc. | Using time stamps to facilitate load reordering |
US8352398B2 (en) | 2009-10-20 | 2013-01-08 | Oracle International Corporation | Time-based conflict resolution |
US8601240B2 (en) * | 2010-05-04 | 2013-12-03 | Oracle International Corporation | Selectively defering load instructions after encountering a store instruction with an unknown destination address during speculative execution |
US8516200B2 (en) | 2010-09-07 | 2013-08-20 | International Business Machines Corporation | Avoiding cross-interrogates in a streaming data optimized L1 cache |
US8549504B2 (en) | 2010-09-25 | 2013-10-01 | Intel Corporation | Apparatus, method, and system for providing a decision mechanism for conditional commits in an atomic region |
US8683129B2 (en) | 2010-10-21 | 2014-03-25 | Oracle International Corporation | Using speculative cache requests to reduce cache miss delays |
JP2013246496A (ja) | 2012-05-23 | 2013-12-09 | Renesas Electronics Corp | 半導体装置 |
US10656945B2 (en) * | 2012-06-15 | 2020-05-19 | International Business Machines Corporation | Next instruction access intent instruction for indicating usage of a storage operand by one or more instructions subsequent to a next sequential instruction |
GB2501582B (en) * | 2013-02-11 | 2014-12-24 | Imagination Tech Ltd | Speculative load issue |
BR112015019459B1 (pt) * | 2013-03-15 | 2021-10-19 | Intel Corporation | Dispositivo para uso em um módulo de memória e método realizado em um módulo de memória |
US9223701B2 (en) | 2013-04-12 | 2015-12-29 | Arm Limited | Data processing apparatus and method for performing load-exclusive and store-exclusive operations |
US9606806B2 (en) * | 2013-06-25 | 2017-03-28 | Advanced Micro Devices, Inc. | Dependence-based replay suppression |
WO2015057846A1 (en) * | 2013-10-15 | 2015-04-23 | Mill Computing, Inc. | Computer processor employing cache memory with pre-byte valid bits |
CN103714288B (zh) | 2013-12-26 | 2016-05-25 | 华中科技大学 | 一种数据流跟踪方法 |
US9411644B2 (en) | 2014-03-07 | 2016-08-09 | Cavium, Inc. | Method and system for work scheduling in a multi-chip system |
US9817693B2 (en) | 2014-03-14 | 2017-11-14 | International Business Machines Corporation | Coherence protocol augmentation to indicate transaction status |
US9501284B2 (en) * | 2014-09-30 | 2016-11-22 | Apple Inc. | Mechanism for allowing speculative execution of loads beyond a wait for event instruction |
US9569265B2 (en) | 2014-10-07 | 2017-02-14 | Check Point Software Technologies Ltd. | Optimization of data locks for improved write lock performance and CPU cache usage in multi core architectures |
US20160328237A1 (en) * | 2015-05-07 | 2016-11-10 | Via Alliance Semiconductor Co., Ltd. | System and method to reduce load-store collision penalty in speculative out of order engine |
US10185564B2 (en) * | 2016-04-28 | 2019-01-22 | Oracle International Corporation | Method for managing software threads dependent on condition variables |
US10621090B2 (en) | 2017-01-12 | 2020-04-14 | International Business Machines Corporation | Facility for extending exclusive hold of a cache line in private cache |
US10521351B2 (en) | 2017-01-12 | 2019-12-31 | International Business Machines Corporation | Temporarily suppressing processing of a restrained storage operand request |
-
2017
- 2017-01-12 US US15/404,254 patent/US10521351B2/en active Active
-
2018
- 2018-01-09 RU RU2019102965A patent/RU2724654C1/ru active
- 2018-01-09 AU AU2018208453A patent/AU2018208453B2/en active Active
- 2018-01-09 JP JP2019532770A patent/JP7177572B2/ja active Active
- 2018-01-09 CA CA3037265A patent/CA3037265A1/en active Pending
- 2018-01-09 EP EP18700201.9A patent/EP3568754B1/en active Active
- 2018-01-09 KR KR1020197017086A patent/KR102238188B1/ko active IP Right Grant
- 2018-01-09 MX MX2019012411A patent/MX2019012411A/es unknown
- 2018-01-09 WO PCT/EP2018/050461 patent/WO2018130522A1/en unknown
- 2018-01-09 TW TW107100718A patent/TWI665605B/zh active
- 2018-01-09 CN CN201880006417.5A patent/CN110168498A/zh active Pending
-
2019
- 2019-03-22 IL IL265557A patent/IL265557B/en active IP Right Grant
- 2019-07-19 ZA ZA2019/04787A patent/ZA201904787B/en unknown
- 2019-09-05 US US16/561,352 patent/US10956337B2/en active Active
-
2020
- 2020-12-10 US US17/117,299 patent/US11366759B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW531711B (en) * | 2000-08-31 | 2003-05-11 | Ibm | Partitioned issue queue and allocation strategy |
US7606998B2 (en) * | 2004-09-10 | 2009-10-20 | Cavium Networks, Inc. | Store instruction ordering for multi-core processor |
CN101308462A (zh) * | 2007-05-14 | 2008-11-19 | 国际商业机器公司 | 管理对共享存储器单元的存储器访问的方法和计算系统 |
CN102754069A (zh) * | 2010-02-18 | 2012-10-24 | 国际商业机器公司 | 加载/存储分离设施及其指令 |
Also Published As
Publication number | Publication date |
---|---|
EP3568754A1 (en) | 2019-11-20 |
ZA201904787B (en) | 2022-04-28 |
TW201830235A (zh) | 2018-08-16 |
KR102238188B1 (ko) | 2021-04-12 |
CA3037265A1 (en) | 2018-07-19 |
EP3568754B1 (en) | 2023-06-07 |
JP7177572B2 (ja) | 2022-11-24 |
CN110168498A (zh) | 2019-08-23 |
AU2018208453B2 (en) | 2020-10-22 |
US11366759B2 (en) | 2022-06-21 |
IL265557B (en) | 2021-02-28 |
US20180196754A1 (en) | 2018-07-12 |
AU2018208453A1 (en) | 2019-06-13 |
EP3568754C0 (en) | 2023-06-07 |
IL265557A (en) | 2019-05-30 |
US20190391922A1 (en) | 2019-12-26 |
KR20190086502A (ko) | 2019-07-22 |
US10521351B2 (en) | 2019-12-31 |
US10956337B2 (en) | 2021-03-23 |
MX2019012411A (es) | 2021-11-17 |
JP2020516970A (ja) | 2020-06-11 |
US20210096998A1 (en) | 2021-04-01 |
RU2724654C1 (ru) | 2020-06-25 |
WO2018130522A1 (en) | 2018-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI659305B (zh) | 用於擴展私用快取中快取行之獨佔持有之設備 | |
JP6521997B2 (ja) | 比較及び遅延(compare and delay)命令 | |
US11366759B2 (en) | Temporarily suppressing processing of a restrained storage operand request | |
JP2021502637A (ja) | コンピューティング環境内の処理を促進するためのコンピュータ・プログラム、コンピュータ・システムおよび方法 | |
US11194580B2 (en) | Selective suppression of instruction translation lookaside buffer (ITLB) access | |
US10572254B2 (en) | Instruction to query cache residency | |
US10621095B2 (en) | Processing data based on cache residency | |
US10572387B2 (en) | Hardware control of CPU hold of a cache line in private cache where cache invalidate bit is reset upon expiration of timer |