TW202040380A - 分佈式系統中之資源管理之硬體協調 - Google Patents
分佈式系統中之資源管理之硬體協調 Download PDFInfo
- Publication number
- TW202040380A TW202040380A TW109108065A TW109108065A TW202040380A TW 202040380 A TW202040380 A TW 202040380A TW 109108065 A TW109108065 A TW 109108065A TW 109108065 A TW109108065 A TW 109108065A TW 202040380 A TW202040380 A TW 202040380A
- Authority
- TW
- Taiwan
- Prior art keywords
- entity
- ownership
- resource
- source
- public resource
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 43
- 238000012546 transfer Methods 0.000 claims description 41
- 230000000977 initiatory effect Effects 0.000 claims description 10
- 238000012790 confirmation Methods 0.000 claims 1
- 230000008859 change Effects 0.000 abstract description 10
- 239000004065 semiconductor Substances 0.000 description 8
- 230000009471 action Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 238000012508 change request Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 239000006249 magnetic particle Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
Images
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- 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/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- 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/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared 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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/522—Barrier synchronisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multimedia (AREA)
- Hardware Redundancy (AREA)
Abstract
本發明之系統及方法係針對用於在一分佈式系統中將公共資源之所有權自擁有一資源的一源實體轉移至將擁有該資源之一目的地實體的方法及裝置。該方法包括該源實體接收一命令以改變所有權(MOVE命令),且隨後將該源實體標記為不再擁有該公共資源。該源實體隨後將一MOVE命令發送至該目的地實體,該目的地實體隨後將更新其公共資源所有權表以反映該公共資源之該所有權已自該源實體轉移至該目的地實體。更新該源實體中之該公共資源的所有權與將該MOVE命令分派至該目的地實體同時進行為有利的。
Description
所揭示態樣係針對分佈式電子系統。更具體言之,例示性態樣係針對在分佈式電子系統中共享資源。
隨著電子及封裝領域愈來愈進步,可將功能性擠入分佈式系統中。歸因於可包括於分佈式系統中之大量非依賴型電子實體,實體共享資源例如以使得功能單元不經不必要地複製為有利的。有效完成資源之共享例如因而減少由此共享所導致的延遲亦為有利的。
因此,需要改進分佈式系統中之資源所有權的管理。
本發明之例示性態樣係針對用於管理分佈式系統中之資源的硬體、系統及方法。
在一個實施例中,揭示一種供用於一例示性分佈式系統中之方法,該分佈式系統包括一源實體及一目的地實體。該分佈式系統中之每一實體具有記錄所有權之一公共資源所有權表,亦即該實體可存取一公共資源。當超過一個實體可存取該等公共資源時,由該分佈式系統中之各種實體共享的該等資源為該等公共資源,但一次僅一個實體可存取一公共資源。該公共資源所有權表記錄哪些實體擁有(亦即可存取)該公共資源。可存取該公共資源之該實體據稱擁有彼資源,且對該公共資源的任何存取藉由擁有該公共資源之該實體來執行。
該方法包括藉由一源實體判定一分佈式系統中之一公共資源的所有權(存取一公共資源之權力)將轉移至一目的地實體。該方法進一步包括更新該源實體之該公共資源所有權表以反映該源實體不再擁有該公共資源;且隨後將反映該公共資源所有權已自該源實體改變至該目的地實體之一MOVE命令發送至該分佈式系統內的另一實體。
在另一實施例中,揭示一種控制對一例示性分佈式系統中之一公共資源之存取的方法。該方法包括藉由一非源實體(不擁有該公共資源之一實體)產生一請求以存取該公共資源。該方法進一步包括將存取請求傳輸至一源實體,從而藉由該源實體產生對該公共資源之一存取;以及將對該公共資源之該存取的一結果導向至該非源實體。
在另一實施例中,揭示一種轉移一例示性分佈式系統中之一公共資源之所有權的方法,其中擁有該公共資源之一源實體不為一起始實體所知。作為產生用於存取一公共資源之該存取請求的該實體)之該起始實體正在請求所有權之該轉移但不為該源實體。該方法包括由具有一公共資源所有權表之一非源起始實體接受一MOVE命令,藉由該起始實體檢查該公共資源所有權表以判定哪一實體擁有該公共資源;且將一MOVE命令自該起始實體發送至該源實體,該MOVE命令指示請求該公共資源之所有權自該源實體至一目的地實體的該轉移。
在另一實施例中,揭示一種當擁有一例示性分佈式系統中之一公共資源之一源實體不具有一公共資源所有權表時轉移該公共資源的所有權之方法。該方法包括由不具有一公共資源所有權表之一實體接受一MOVE命令,藉由不具有一公共資源所有權表之該實體指出其不再擁有該公共資源,且將一MOVE命令自一非源實體發送至至少一個其他實體,該MOVE命令指示該公共資源之所有權自該源實體至一目的地實體的該轉移經指示。
在另一實施例中,揭示一種在一例示性分佈式系統中將一存取請求及公共資源所有權自一源實體轉發至一目的地實體之方法。該方法包括在該目的地實體處接收一公共資源之該所有權將自該源實體移動至該目的地實體的一指示;且檢查一源實體命令佇列以判定是否存在對該目的地實體之該公共資源的一存取請求及將該公共資源之所有權轉移至該目的地實體的一MOVE命令。若該MOVE命令及該存取請求兩者皆存在,則確保該MOVE命令在該存取請求到達該目的地實體之前到達該目的地實體。
揭示一種裝置,其用於轉移一例示性分佈式系統中之公共資源所有權。該裝置包括一輸入端,其用於藉由一源實體接收將轉移一公共資源之所有權的一指示;一公共資源所有權表,其用於藉由該源實體更新該所有權以反映該源實體不再擁有該公共資源;及電路系統,其用於將一MOVE命令發送至該分佈式系統內之另一實體,該MOVE命令反映該公共資源所有權之變化已自該源實體改變至一目的地實體。
在另一實施例中,揭示一種例示性裝置,其用於控制對一分佈式系統中之一公共資源的存取。該裝置包括經組態以藉由一非源實體產生一請求以存取該公共資源的電路系統;經組態以將該存取請求傳輸至一源實體之電路系統;經組態以藉由該源實體產生對該公共資源之一存取的電路系統;及經組態以將對該公共資源之該存取之一結果導向至該非源實體的電路系統。
在另一實施例中,揭示一種裝置,其用於當擁有一例示性分佈式系統中之一公共資源之一源實體不為請求所有權之該轉移的一起始實體所知時轉移該公共資源的所有權。該裝置包括經組態以藉由具有一公共資源所有權表之一非源起始實體接受一MOVE命令的電路系統;經組態為藉由該非源實體檢查該公共資源所有權表以判定哪一實體擁有該公共資源之電路系統;及經組態以將一MOVE命令自該非源實體發送至該源實體的電路系統,該MOVE命令指示該公共資源之所有權自該源實體至一目的地實體的該轉移。
在另一實施例中,揭示一種裝置,其經組態以當擁有一例示性分佈式系統中之一公共資源之該源實體但不具有一公共資源所有權表時轉移該公共資源的所有權。該裝置包括源實體電路系統,其經組態以接受一MOVE命令;一指示符,其關於該源實體是否擁有該公共資源;源電路系統,其經組態以指出該源實體是否擁有該公共資源;及電路系統,其經組態以將一MOVE命令自一非源實體發送至至少一個其他實體,該MOVE命令指示該公共資源之所有權自該源實體至一目的地實體的該轉移已發生。
在另一實施例中,揭示一種裝置,其經組態以將一存取請求及公共資源所有權自一源實體轉發至一目的地實體。該裝置包括電路系統,其經組態以在該目的地實體處接收一公共資源之所有權將自該源實體移動至該目的地實體的一指示;一源實體命令佇列,其用於在執行該源實體的命令之前儲存該等命令;及電路系統,其經組態以檢查該源實體命令佇列以判定是否存在對該目的地實體之該公共資源的一存取請求及將該公共資源之所有權轉移至該目的地實體的一MOVE命令;及電路系統,其用以若該MOVE命令及該存取兩者皆存在,則確保該MOVE命令在該存取請求到達該目的地實體之前到達該目的地實體。
在另一實施例中,揭示一種裝置,其經組態以轉移一例示性分佈式系統中之公共資源所有權。該裝置包括用於藉由一源實體接收將轉移一公共資源之所有權之一指示的構件;用於藉由該源實體更新該所有權以反映該源實體不再擁有該公共資源之構件;及用於將一MOVE命令發送至該分佈式系統內之另一實體的構件,該MOVE命令反映該公共資源所有權之該變化已自該源實體改變至一目的地實體。
在另一實施例中,揭示一種包含代碼之非暫時性電腦可讀儲存媒體,該代碼在由一處理器執行時,促使該處理器執行用於管理一例示性分佈式系統中之資源所有權的操作。該非暫時性電腦可讀儲存媒體中所含有之該代碼包括用於藉由一源實體接收將轉移一公共資源之所有權之一指示的代碼;用於藉由該源實體更新該所有權以反映該源實體不再擁有該公共資源之代碼;及用於將一MOVE命令發送至該分佈式系統內之另一實體的代碼,該MOVE命令反映該公共資源所有權之變化已自該源實體改變至一目的地實體。
相關申請案之交互參考根據 35 U.S.C. §119 之優先權主張
本專利申請案主張2019年3月11日申請的標題為「HARDWARE CO-ORDINATION OF RESOURCE MANAGEMENT IN DISTRIBUTED SYSTEMS」之非臨時申請案第16/298,419號的優先權,該非臨時申請案轉讓給其受讓人且特此明確地以引用之方式併入本文中。
本發明之態樣揭示於以下描述及針對本發明之特定態樣的相關圖式中。可在不脫離本發明之範疇的情況下設計出替代性態樣。另外,本發明之實施例的熟知元件將不詳細描述或將予以省略,以免模糊對本文中之教示的相關解釋性細節。
字組「例示性」在本文中用以意謂「充當實例、個例或說明」。在本文中描述為「例示性」之任何態樣未必應被視為比其他態樣更佳或更有利。同樣地,術語「本發明之態樣」並不要求本發明之所有態樣均包括所論述的特徵、優點或操作模式。
本文中所使用之術語僅出於描述特定態樣之目的,且並不意欲限制本發明的態樣。如本文中所使用,除非上下文另外清楚地指示,否則單數形式「一(a/an)」及「該」意欲亦包括複數形式。應進一步理解,當在本文中使用時,術語「包含(comprises/comprising)」、「包括(includes)」及/或「包括(including)」指定所陳述之特徵、整數、步驟、操作、元件及/或組件的存在,但不排除一或多個其他特徵、整數、步驟、操作、元件、組件及/或其群組之存在或添加。
此外,就待由例如計算器件之元件執行之動作的序列而言描述許多態樣。應認識到,本文中所描述之各種動作可藉由特殊電路(例如特殊應用積體電路(ASIC))、藉由一或多個處理器所執行之程式指令或藉由兩者的組合來執行。另外,本文中所描述之動作的序列可被視為完全體現於任何形式之電腦可讀儲存媒體內,該電腦可讀儲存媒體中儲存有電腦指令的對應集合,該等電腦指令在執行時將促使相關聯之處理器執行本文中所描述的功能性。因此,本發明之各種態樣可以數種不同形式實施,預期所有形式皆在所主張之主題的範疇內。另外,對於本文中所描述之態樣中的每一者,任何此類態樣之對應形式可在本文中描述為例如「經組態以」執行所描述動作之「邏輯」。
出於本發明之目的,分佈式系統含有但不限於電子實體(實體),該等電子實體包含但不限於用於接收資訊之輸入端、用於傳達資訊的輸出端及用於與其他實體通信之訊息傳遞機構。用於接收資訊之輸入端及用於與其他實體通信之輸出端以及訊息傳遞匯流排可實際上為相同實體連接,例如充當輸入端及輸出端兩者的串列或並列匯流排,但其不必如此。
出於本發明之目的,將共享資源(資源)定義為由不同實體在不同時間使用的共享器件,例如記憶體表、浮點單元、輸入/輸出單元、暫存器或其類似者,例如共享資源可由多執行緒計算環境中之不同執行緒存取。
出於本發明之目的,將所有者定義為單一所選存取控制器,其充當共享資源之閘道。所有權(及非所有權)可包含於公共資源所有權表中之實體內(但其不必如此)以使得該實體可知曉其是否可存取共享資源。一旦擁有共享資源,所有者實體即可對共享資源進行存取或授予存取。
出於本發明之目的,將存取定義為需要通信之任何操作,例如寫入至公共資源或自公共資源讀取。
出於本發明之目的,MOVE命令為將共享資源之所有權自一個實體轉移至另一實體的命令。MOVE命令包括公共資源之識別及公共資源所有權將移動至實體的該實體之識別,但該MOVE命令亦可含有其他資訊。
出於本發明之目的,源實體為擁有公共資源之實體。
出於本發明之目的,目的地實體為公共資源之所有權將轉移至其的實體。
出於本發明之目的,起始實體為MOVE指令可起始之非源實體及非目的地實體。
出於本發明之目的,公共資源所有權表(亦稱公共資源表、公共所有權表及資源所有權表)為哪一實體當前擁有公共資源之實體的清單。
圖1為簡單例示性分佈式系統之圖形說明。一般而言,分佈式系統為計算資源分散至協作以適當運作之複數個實體中的系統。此協作通常藉由具有用以在實體之間傳遞訊息之機構來實現。圖1之系統為簡單分佈式系統之實例。圖1展示元件101 (分佈式系統之例示性部分),其包含載體基板102上之各種半導體晶粒103、109a、109b、109c、115a、115b及115c。在圖1中,三個CPU (中央處理單元)晶粒115a、115b及115c分別藉由三個互連匯流排113a、113b及113c耦接至三個記憶體管理單元晶粒109a、109b及109c。三個記憶體管理單元之晶粒109a、109b及109c進一步經由記憶體匯流排107耦接至記憶體晶粒103。記憶體晶粒103含有表105,三個CPU晶粒115a、115b及115c將存取該表105。因為僅存在一個表105,所以CPU晶粒115a、115b及115c必須輪流存取表105。對表105之存取經由訊息傳遞匯流排111來調節。記憶體管理單元晶粒109a、109b及109c使用訊息傳遞匯流排111來共享所有權且轉移表105之所有權。控制所有權(自可由複數個實體使用之公共資源讀取或寫入至該公共資源的權限)之一種方式為在每一實體內維持所有權表,該所有權表列出每一實體及哪一實體擁有公共資源且因此准許存取彼公共資源。本文中,此表稱為公共資源所有權表。僅表105之所有者、源實體可在給定時間存取該表105,因此使用訊息傳遞匯流排111來管理對表105之存取。此訊息傳遞「匯流排」可為如藉由訊息傳遞匯流排111所說明之串列或並列匯流排,或其可為某種虛擬通道。本文中將可在實體之間傳達訊息之任何機構視為訊息傳遞「匯流排」。
當諸如記憶體管理單元晶粒109a、109b及109c之多個實體自諸如表105的公共資源讀取及寫入該公共資源時,存在由於一個記憶體管理實體可能必須等待另一記憶體管理實體用完公共資源而可能使系統變慢的可能性。若等待公共資源之時間變得過量,則可能降低系統效能。因此,迅速切換資源所有權為有利的。然而,若一個實體損毀另一實體之資料,例如若經指定用於一個實體之資料由第二實體解譯為屬於第二實體,或在超過一個MMU 109試圖同時存取表105之競態條件的情況下,則迅速切換所有權可導致競態條件及資源損毀。當兩個或更多個實體想要同時存取公共資源時,減少分配給切換資源所有權之時間將有可能增加實體之間的競態條件之可能性,此可能惡化資源損毀的問題。
圖1中說明之實例分佈式系統為一種分佈式系統之實例。可設計出虛擬無窮多個不同分佈式系統。包括本實例以得到系統之具體的可易於理解的實例,其中複數個實體經由訊息傳遞匯流排111協作以便存取公共資源表105。
圖2為另一說明性分佈式系統201之部分的圖形表示。在分佈式系統201中,將藉由四個計算實體:實體1 (205a)、實體2 (205b)、實體3 (205c)、實體4 (205d)寫入至記憶體表203及自該記憶體表203讀取。實體205a至205d經由訊息傳遞匯流排207彼此通信,該訊息傳遞匯流排207可為此項技術中已知的任何類型之通信通道,諸如能夠在實體之間傳遞訊息的串列匯流排、並列匯流排或虛擬通道或其類似者。
在圖2中,實體1 (205a)最初擁有記憶體表203。然而,記憶體表203為共同擁有之資源,其資訊可與說明性分佈式系統201中之所有實體205a至205d相關。若實體1 (205a)為共同擁有之資源記憶體表203的所有者,則使得其他實體205b至205d中無一者存取記憶體表203。因為實體1 (205a)擁有記憶體表203且通常不允許對記憶體表203進行另一同時存取,所以若實體需要自記憶體表203存取,則該實體可將存取請求轉發至資源所有者實體1 (205a),例如以便防止資料一致性問題。出於此實例之目的,僅資源之所有者(亦即源實體)將存取彼資源,且若其他實體需要在公共資源中的資料,則該等實體將藉由將對公共資源之存取請求提交至當前資源所有者來確保存取。
系統軟體(未說明)可規定公共資源之所有權的變化。存在所有權之此轉移可提高系統效能之許多情況。
舉例而言,若兩個實體試圖同時寫入至記憶體表203中之相同位置,則資源之所有權自一個實體至另一實體的轉移可導致記憶體一致性問題。此情形通常稱為競態條件。因為此類競態條件可視多種因素而間歇地損毀資料,所以競態條件可能難以解決。因此,藉由確保僅資源之所有者可存取彼資源來防止此類競態條件為有利的。
在轉移所有權時避免競態條件之一種簡單但有效的方法為使實體停滯於系統中。換言之,當需要公共資源之所有權的變化時,可藉由僅阻止所有實體存取公共資源(例如自公共資源讀取或寫入至公共資源)直至完成所有權之轉移來避免競態條件。此方法當然具有明顯的缺點,缺點在於,阻止對公共資源之所有存取而不論是否有必要如此進行。
圖3為資源所有權在實體之間的轉移之圖形說明。資源所有權之轉移的此方法解決上述競態條件而不具有使實體停滯於系統中的低效。在圖3中,實體1至4 (分別為305a至305d)為所有可能需要存取公共資源311之實體。實體305a至305d彼此經由任何合適類型的訊息匯流排(未展示)來傳遞訊息以便藉由轉移資源之所有權來共享對公共資源311的存取。
待轉移資源(例如公共資源311)之所有權之轉移中的第一步驟為針對源實體(其擁有資源)在其公共資源所有權表313中更新其所有權。公共資源所有權表(諸如313)為系統中之實體的清單及系統中之每一實體所擁有之公共資源。每一實體可含有具有相同資訊之公共資源所有權表。公共資源所有權表313將經更新以反映源實體1 (305a)正在對目的地實體305b (亦即實體2)放棄所有權。其有助於避免源實體在任何其他實體更新其公共資源所有權表之前更新該源實體的公共資源所有權表的競態條件。圖3中之實體305a至305d中之每一者具有類似於公共資源所有權表313的公共資源所有權表,該公共資源所有權表記錄哪一實體當前擁有哪一資源。未展示實體3及4中之公共資源所有權表以避免不必要地使圖3雜亂。本實例中之實體1 (305a)擁有公共資源311。為轉移公共資源311之所有權,實體1 (305a)更新其公共資源所有權表313,以反映該實體1不再為公共資源311之所有者且目的地實體305b為新的所有者之事實。現在,對到達實體1 (305a)的公共資源311之任何存取請求將轉發至如在實體1 (305a)之公共資源所有權表313中所反映之新的所有者。
一旦實體1可作用於MOVE命令307a且更新其公共資源所有權表315,實體1 (305a)隨後即將該命令發送至將變為公共資源311之新的所有者之目的地實體305b。亦將MOVE命令發送至系統中之其他實體(例如309a及311a)以使得其公共資源所有權表可用公共資源之新的所有權經適當更新。所有權之改變應儘可能接近於不可中斷操作,亦即,公共資源所有權表中所反映的所有權之變化應與將MOVE命令發送至其他實體(例如307a、311a及309a)同時發生。然而,若此不可中斷操作出於一些原因而為不可能的,則所有權之變化應在任何其他實體作用於MOVE命令之前反映於源實體的公共資源所有權表中以確保「執行緒安全」操作,且藉此確保一個執行緒將不損毀另一執行緒之資料,一旦每一實體已改變其公共資源所有權表,其即可向源實體彙報已執行MOVE命令,例如307b、309b及311b可報告其公共資源所有權表已經更新。
圖4為說明大體展示於401處的資源所有權在實體之間的轉移之流程圖。
在區塊403中,當前擁有公共資源311之源實體305a自另一實體(例如305b,目的地實體)接收MOVE命令307a。執行下一決策區塊405。
在決策區塊405中,源實體305a判定公共資源311是否已完成存取該公共資源。若源實體305a不未完成存取公共資源311,則將繼續執行區塊405。若源實體305a用完公共資源311,則執行將傳遞至區塊407。
在區塊407中,源實體305a藉由更新其公共所有權資源表313以反映目的地實體305b擁有公共資源311的事實來放棄公共資源311之所有權。控制所有權之一種方式為在每一實體內維持所有權表,該所有權表列出每一公共資源及哪一實體擁有公共資源且因此准許自彼公共資源讀取及/或寫入至(亦即存取)彼公共資源。在更簡單的系統中,例如,在僅存取一個公共資源之實體中,公共資源所有權表可由關於實體是否擁有公共資源之指示符替代。在更複雜的現存例示性系統中,源實體305a藉由在其公共資源所有權表313中指出目的地實體305b擁有公共資源311來放棄所有權。隨後控制傳遞至區塊409。
在區塊409中,源實體305a將MOVE命令(亦稱為MOVE命令)發送至目的地實體305b,接著執行區塊411。
在區塊411中,目的地實體305b接收MOVE命令,且隨後更新其內部公共資源所有權表以反映該目的地實體305b現在為公共資源311之所有者的事實。接著執行區塊413。
在區塊413中,目的地實體305b檢查其公共資源所有權表以判定該目的地實體305b現在是否擁有公共資源311。若目的地實體305b不擁有公共資源311,則接著執行區塊415。
在區塊415中,目的地實體305b將到達其的任何存取請求自公共資源轉發回源實體,且接著將執行區塊413。
當然,若源實體305a自公共資源接收任何資料,則該源實體305a將檢查其公共資源表313,且一旦該源實體305a判定其公共所有權資源表表示該公共資源屬於目的地實體305b,該源實體305a即將資料轉發至目的地實體305b。當目的地305b之公共資源所有權表315經更新以使得目的地實體305b為公共資源311的所有者時,區塊413與區塊415之間的此乒乓效應(ping ponging)將在區塊413中被打破。隨後接著將執行417。
在區塊417中,目的地實體305b具有公共資源311之所有權,如在其公共資源所有權表315中所反映,且目的地實體305b可著手存取公共資源311。
圖5為說明性分佈式系統501之部分的圖形表示。通常,運行於分佈式系統中之軟體知曉哪一實體擁有特定公共資源。在圖5中,表示執行於分佈式系統中之第一實體中的軟體不知曉哪一實體擁有特定公共資源之情況。在此情況下,可例如經由將第一實體耦接至第二實體之訊息傳遞匯流排將MOVE命令發送至第二實體。若第二實體不擁有作為MOVE命令之對象的公共資源,則接收到MOVE命令之第二實體將試圖將該MOVE命令轉發至擁有特定公共資源之實體。若接收MOVE命令之第二實體確實擁有公共資源,則第二實體將執行MOVE命令且放棄公共資源之所有權。
在圖5之圖形表示中,展示四個實體:505a、505b、505c及505d。每一實體分別具有公共資源所有權表503a、503b、503c及503d。
出於說明起見,假定將MOVE命令發送至實體3 (505c),該實體3並非其所有權將被移動之公共資源的當前所有者。實體3可稱為起始實體,此係因為該實體3為MOVE命令最初發送(亦即起始)之處。假定實體1 (505a)為擁有公共資源之實體,亦即源實體。實體3不應為在其公共資源所有權表503c中改變其映射之第一者。一旦實體3 (505c) (起始實體)檢查其公共資源所有權表503c,該實體3即將判定(例如)實體1 (505a)為其所有權將被移動之公共資源的當前所有者(源實體)。實體3 (505c)將隨後將MOVE FWD請求507b發送至實體1 (505a)。一旦實體1接收MOVE FWD請求507b,該實體1即可更新其公共資源所有權表503a以反映公共資源之所有權轉移至目的地實體505b的移動。隨後,一旦實體1 (505a)已更新其公共資源所有權表503a,如509b、507c及509d處所示,實體1 (505a)即可隨後將MOVE命令發送至實體2、實體3及實體4以使得該等實體可更新其公共資源所有權表503b、503c及503d中之所轉移資源的所有權。一旦實體2、實體3及實體4已更新其公共資源表,該等實體即可將MOVE CMPLT (MOVE完成)命令(509c、511及507d)發送回作為MOVE命令之源的實體,在此實施例中發送回實體3 (505c)。一旦請求所有權變化請求之實體1 (505a)自分佈式系統中之其他實體接收MOVE CMPLT命令(509c、511及507d),該實體1即可通知軟體已完成公共資源所有權的所請求變化。
在某些情況下,可能存在不需要擁有某些公共資源且在一些情況下,可能甚至並不擁有公共資源所有權表之實體。舉例而言,僅存取印表機之實體將不需要資源所有權表。該實體僅需要關於其當前是否擁有印表機之指示。此類實體可藉由將「虛設」MOVE CMPLT命令發送至請求移動之實體(在本實例中為實體3 (505c))而對移動命令作出回應。
舉例而言,在實體僅存取一個公共資源且不存取其他公共資源的情況下,可發生源實體不具有公共資源所有權表之實例情形。正如在以上實例中,在實體僅存取單個公共資源(印表機)之情況下,系統內可存在當實體存取單個公共資源時不具有公共資源所有權表的該等實體。實體不必追蹤其不使用的公共資源。
舉例而言,假定源實體為實體1 (505a)且公共資源所有權表503a不存在。需要用以處置此情形之機構。同樣,實體3 (505c,起始實體)接收MOVE命令且隨後將其轉發至源實體(實體1 (505a))上。雖然實體1 (505a)不具有公共所有權資源表,但作為源實體,其仍可協調所有權轉移。一旦源實體505a自請求實體505c接收MOVE命令,源實體505a即可將公共資源標記為不再可供其使用且形成暫時映射(未展示)。隨後,源實體505a可發出MOVE命令(例如509b、509d及507c)。一旦請求實體505c自系統中之所有其他實體接收所有MOVE CMPLT命令(509c、511及507d),該請求實體505c即可隨後告知源實體505a資源所有權轉移完成,且將REMOVE TEMP命令507a發送至源實體505a以指示所有權之轉移已經實現,且實體1 (505a)可移除暫時資源映射表。在此情況下,暫時資源映射表可記錄系統中之實體及該等實體是否已對MOVE命令(例如509b、509d及507c)做出回應且在適當時已將MOVE CMPLT命令(509c、511及507d)發送至源實體及起始者實體。
圖6為說明性分佈式系統601之部分的圖形表示。在圖6中,說明四個實體:實體1 (605a)、實體2 (605b)、實體3 (605c)及實體4 (605d)。
實體1 (605a)為源實體。實體1 (605a)含有命令佇列607。命令佇列607含有供實體1 (605a)執行之命令,諸如傳輸命令,該等命令可能無次序。
如在圖5中,假定例如實體1 (605a)接收將由實體2 (605b)完成的公共資源之存取請求。進一步假定,公共資源所有權表603a指示實體1 (605a)為待由實體2 (605b)存取之資源的當前所有者。在某一時刻,吾等可假定,實體1 (605a)之命令佇列607將含有對實體2 (605b)的共同擁有之資源615的存取請求611。實體1 (605a)知曉其必須將存取請求611傳遞至實體2 (605b)。在某一時刻,實體1 (605a)亦將判定其(實體1)為共同擁有之資源615的所有者,且產生MOVE命令609以將共同擁有之資源615的所有權移動至實體2 (605b)。存取請求611可經排定以在MOVE命令609之前傳輸至實體2 (605b)為完全有可能的。若存取請求611在MOVE命令609之前到達實體2 (605b)處,則如613處所示,實體2 (605b) (目的地)將僅將存取請求611轉發回實體1 (605a)。然而,若實體1 (605a)可偵測到其將向公共實體發送共同擁有之資源615的存取請求611及MOVE命令609兩者,則該實體1將更高效地首先發送MOVE命令609。
若在將MOVE命令609發送至目的地實體605b之前將存取請求611發送至目的地實體605b,則目的地實體605b可檢查其公共資源所有權表603b,且判定源實體605a擁有公共資源615,且將存取請求611轉發613至共同擁有之資源615的先前所有者(在此情況下為源實體605a)。然而,若在發送存取請求611之前自源實體605a發送MOVE請求609,則目的地實體605b將在獲得存取請求611之前更新其公共所有權資源表。目的地實體605b將判定其擁有公共資源615且其可自由存取公共資源615。
在於MOVE命令609之前將存取請求611發送至目的地實體605b的情況下,在613處將存取請求611轉發回源實體605a,源實體605a將檢查其公共資源所有權表603a,且隨後將存取請求611轉發回目的地實體605b,亦即實體2。因此,若實體1 (605a)偵測到存在將公共資源之所有權轉移至目的地實體605b的MOVE命令609及作為代表命令佇列607中之目的地實體605b的公共資源之存取請求611的命令兩者,則該實體1將有利於實體1 (605a)確保MOVE命令609在存取請求611到達目的地實體605b處之前經發送且到達目的地實體605b處,此將確保目的地實體605b已更新其公共資源所有權表603b。一旦源實體605a已放棄公共資源615之所有權且目的地實體605更新其公共資源所有權表603b,目的地實體605b即擁有公共資源。一旦目的地實體605b擁有公共資源615,該目的地實體605b即將完成存取請求611且不再於613處轉發該存取請求。
熟習此項技術者將瞭解,可使用多種不同技術及技藝中之任一者來表示資訊與信號。舉例而言,可由電壓、電流、電磁波、磁場或磁性粒子、光場或光學粒子或其任何組合來表示貫穿以上描述可能參考的資料、指令、命令、資訊、信號、位元、符號及晶片。
此外,熟習此項技術者將瞭解,結合本文中所揭示之態樣來描述的各種說明性邏輯區塊、模組、電路及演算法步驟可實施為電子硬體、電腦軟體或兩者之組合。為清楚地說明硬體與軟體之此可互換性,各種說明性組件、區塊、模組、電路及步驟已在上文大體就其功能性而言予以描述。將此功能性實施為硬體抑或軟體視特定應用及施加於整個系統上之設計約束而定。熟習此項技術者可針對每一特定應用以不同方式實施所描述之功能性,但不應將此類實施決策解譯為導致脫離本發明之範疇。
結合本文中所揭示之態樣來描述的方法、序列及/或演算法可以硬體、以由處理器執行之軟體模組或以兩者之組合來直接體現。軟體模組可駐存於RAM記憶體、快閃記憶體、ROM記憶體、EPROM記憶體、EEPROM記憶體、暫存器、硬碟、可移除式磁碟、CD-ROM或此項技術中已知的任何其他形式之儲存媒體中。將例示性儲存媒體耦接至處理器以使得處理器可自儲存媒體讀取資訊且將資訊寫入至儲存媒體。在替代方案中,儲存媒體可與處理器成一體。
因此,本發明之態樣可包括體現用於管理快取記憶體之分配的方法之電腦可讀非暫時性媒體。因此,本發明不限於所說明之實例,且用於執行本文中所描述之功能性的任何構件皆包括於本發明之態樣中。
雖然前述揭示內容展示本發明之說明性態樣,但應注意,在不脫離如由所附申請專利範圍所定義的本發明之範疇的情況下,可在本文中進行各種變化及修改。此外,儘管可以單數形式描述或主張本發明之元件,但除非明確陳述限於單數形式,否則亦涵蓋複數形式。
101:元件
102:載體基板
103:半導體晶粒
105:表
107:記憶體匯流排
109a:半導體晶粒
109b:半導體晶粒
109c:半導體晶粒
111:訊息傳遞匯流排
113a:互連匯流排
113b:互連匯流排
113c:互連匯流排
115a:半導體晶粒
115b:半導體晶粒
115c:半導體晶粒
201:分佈式系統
203:記憶體表
205a:實體
205b:實體
205c:實體
205d:實體
207:訊息傳遞匯流排
305a:實體
305b:實體
305c:實體
305d:實體
307a:MOVE命令
307b:MOVE命令
309a:實體
309b:MOVE命令
311:公共資源
311a:實體
311b:MOVE命令
313:公共資源所有權表
315:公共資源所有權表
401:流程圖
403:區塊
405:決策區塊
407:區塊
409:區塊
411:區塊
413:區塊
415:區塊
417:區塊
501:分佈式系統
503a:公共資源所有權表
503b:公共資源所有權表
503c:公共資源所有權表
503d:公共資源所有權表
505a:實體
505b:實體
505c:實體
505d:實體
507a:REMOVE TEMP命令
507b:MOVE FWD請求
507c:MOVE命令
507d:MOVE CMPLT命令
509b:MOVE命令
509c:MOVE CMPLT命令
509d:MOVE命令
511:MOVE CMPLT命令
601:分佈式系統
603a:公共資源所有權表
603b:公共資源所有權表
605:目的地實體
605a:實體
605b:實體
605c:實體
605d:實體
607:命令佇列
609:MOVE命令
611:存取請求
613:轉發
615:共同擁有之資源
呈現隨附圖式以輔助描述本發明之實施例的態樣,且僅為說明該等態樣且非對其加以限制而提供該等隨附圖式。
圖1為簡單例示性分佈式系統之圖形說明。
圖2為說明性分佈式系統之部分的圖形表示。
圖3為資源所有權在實體之間的轉移之圖形說明。
圖4為說明資源所有權在實體之間的轉移之流程圖。
圖5為說明性分佈式系統之部分的圖形表示。
圖6為說明性分佈式系統之部分的圖形表示。
305a:實體
305b:實體
305c:實體
305d:實體
307a:MOVE命令
307b:MOVE命令
309a:實體
309b:MOVE命令
311:公共資源
311a:實體
311b:MOVE命令
313:公共資源所有權表
315:公共資源所有權表
Claims (15)
- 一種用於一分佈式系統之方法,該分佈式系統包含一源實體及一目的地實體,其中每一實體具有一公共資源所有權表,該方法包含: 藉由該源實體判定一公共資源之所有權將轉移至該目的地實體; 更新該源實體之該公共資源所有權表,以反映該源實體不再擁有該公共資源;且 將一MOVE命令發送至該分佈式系統內之另一實體,該MOVE命令反映該公共資源所有權已自該源實體改變至該目的地實體。
- 如請求項1之方法,其中更新該公共資源所有權表進一步包含指示該目的地實體擁有該公共資源。
- 如請求項2之方法,其進一步包含將一MOVE命令發送至至少一個非源實體,該MOVE命令指示該公共資源之該所有權已自該源實體改變至該目的地實體。
- 如請求項3之方法,其中該方法進一步包含自該至少一個非源實體發送該公共資源之該所有權已自該源實體改變至該目的地實體的一確認。
- 一種控制對一分佈式系統中之一公共資源之存取的方法,該方法包含: 藉由一非源實體產生存取該公共資源之一請求; 將該存取請求傳輸至一源實體; 藉由該源實體產生該公共資源之一存取;且 將該公共資源之該存取的一結果導向至該非源實體。
- 如請求項5之方法,其中將該存取請求傳輸至該源實體進一步包含經由一訊息傳遞匯流排發送該存取請求。
- 一種當擁有一分佈式系統中之一公共資源的一源實體不為請求所有權之轉移的一起始實體所知時轉移該公共資源的所有權之方法,該方法包含: 由具有一公共資源所有權表之一非源起始實體接收一MOVE命令; 藉由該起始實體檢查該公共資源所有權表以判定哪一實體擁有該公共資源;且 將一MOVE命令自該起始實體發送至該源實體,該MOVE命令指示請求該公共資源之所有權自該源實體至一目的地實體的該轉移。
- 如請求項7之方法,其進一步包含: 藉由該源實體將一MOVE命令發送至至少一個非源實體,該MOVE命令指示該公共資源之該所有權已自該源實體移動至該目的地實體。
- 如請求項8之方法,其進一步包含: 由該非源起始實體自該源實體接受該MOVE命令;且 通知該非源起始實體已將該公共資源之所有權轉移至該目的地實體。
- 一種當擁有一分佈式系統中之一公共資源的一源實體不具有一公共資源所有權表時轉移該公共資源之所有權的方法,該方法包含: 由不具有一公共資源所有權表之一實體接受一MOVE命令; 藉由不具有一公共資源所有權表之該實體判定其不再擁有該公共資源;且 將一MOVE命令自一非源實體發送至至少一個其他實體,該MOVE命令指示該公共資源之所有權自該源實體至一目的地實體的該轉移經指示。
- 如請求項10之方法,其進一步包含: 由不具有一公共資源所有權表之該實體形成一暫時表,該暫時表指示具有對一共同擁有的資源之存取的其他實體對該共同擁有之資源的所有權,及該等其他實體是否已對該MOVE命令做出回應; 當實體確認來自該實體之該MOVE命令不具有一公共所有權資源表時,在該暫時表中登記已將該共同擁有之資源的所有權自該源實體移動至該目的地實體。
- 如請求項11之方法,其進一步包含一旦具有對該公共資源之存取的所有該等實體使用一MOVE CMPLT命令對該MOVE命令作出回應,即移除該暫時表,該MOVE CMPLT命令向該目的地實體指示該共同擁有之資源的該所有權已自該源實體更新至該目的地實體。
- 一種將一存取請求及公共資源所有權自一源實體轉發至一目的地實體之方法,該方法包含: 在該目的地實體處接收一公共資源之該所有權將自該源實體移動至該目的地實體的一指示;且 檢查一源實體命令佇列以判定是否存在對該目的地實體之該公共資源的一存取請求及將該公共資源之所有權轉移至該目的地實體的一MOVE命令,且若兩者皆存在,則確保該MOVE命令在該存取請求到達該目的地實體之前到達該目的地實體。
- 如請求項13之方法,其中確保該MOVE命令在該存取請求到達該目的地實體之前到達該目的地實體進一步包含在經由一訊息傳遞匯流排將該存取請求轉移至該目的地實體之前,經由該訊息傳遞匯流排將該MOVE命令轉移至該目的地實體。
- 如請求項9之方法,其中通知該非源起始實體已將該公共資源之所有權轉移至該目的地實體包含該目的地實體將一MOVE CMPLT發送回該非源起始實體。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/298,419 | 2019-03-11 | ||
US16/298,419 US11640317B2 (en) | 2019-03-11 | 2019-03-11 | Hardware co-ordination of resource management in distributed systems |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202040380A true TW202040380A (zh) | 2020-11-01 |
Family
ID=70050216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109108065A TW202040380A (zh) | 2019-03-11 | 2020-03-11 | 分佈式系統中之資源管理之硬體協調 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11640317B2 (zh) |
EP (1) | EP3938903A1 (zh) |
CN (1) | CN113574505A (zh) |
TW (1) | TW202040380A (zh) |
WO (1) | WO2020185766A1 (zh) |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6341340B1 (en) | 1998-12-28 | 2002-01-22 | Oracle Corporation | Transitioning ownership of data items between ownership groups |
US6965893B1 (en) | 2000-12-20 | 2005-11-15 | Oracle International Corporation | Techniques for granting shared locks more efficiently |
EP2562662B1 (en) | 2001-06-28 | 2019-08-21 | Oracle International Corporation | Partitioning ownership of a database among different database servers to control access to the database |
US7162476B1 (en) * | 2003-09-11 | 2007-01-09 | Cisco Technology, Inc | System and method for sharing global data within distributed computing systems |
US8320244B2 (en) | 2006-06-30 | 2012-11-27 | Qualcomm Incorporated | Reservation based MAC protocol |
US20080086603A1 (en) * | 2006-10-05 | 2008-04-10 | Vesa Lahtinen | Memory management method and system |
US9113499B2 (en) * | 2010-10-01 | 2015-08-18 | Viasat, Inc. | Multiple domain smartphone |
US8316098B2 (en) | 2011-04-19 | 2012-11-20 | Seven Networks Inc. | Social caching for device resource sharing and management |
US9830210B2 (en) * | 2013-03-15 | 2017-11-28 | Nvidia Corporation | CPU-to-GPU and GPU-to-GPU atomics |
US9823925B2 (en) * | 2014-03-28 | 2017-11-21 | Intel Corporation | Instruction and logic for a logical move in an out-of-order processor |
US9323701B2 (en) * | 2014-07-29 | 2016-04-26 | Netapp, Inc. | Technique for synchronizing IOMMU memory de-registration and incoming I/O data |
US10664179B2 (en) * | 2015-09-25 | 2020-05-26 | Intel Corporation | Processors, methods and systems to allow secure communications between protected container memory and input/output devices |
US10331570B2 (en) * | 2016-07-31 | 2019-06-25 | Avago Technologies International Sales Pte. Limited | Real time memory address translation device |
US10732903B2 (en) * | 2018-04-27 | 2020-08-04 | Hewlett Packard Enterprise Development Lp | Storage controller sub-LUN ownership mapping and alignment |
US10929286B2 (en) * | 2018-06-29 | 2021-02-23 | Seagate Technology Llc | Arbitrated management of a shared non-volatile memory resource |
US10929199B2 (en) * | 2018-07-02 | 2021-02-23 | International Business Machines Corporation | Memory lock serialization |
-
2019
- 2019-03-11 US US16/298,419 patent/US11640317B2/en active Active
-
2020
- 2020-03-10 WO PCT/US2020/021870 patent/WO2020185766A1/en unknown
- 2020-03-10 CN CN202080020560.7A patent/CN113574505A/zh active Pending
- 2020-03-10 EP EP20715252.1A patent/EP3938903A1/en active Pending
- 2020-03-11 TW TW109108065A patent/TW202040380A/zh unknown
-
2023
- 2023-04-26 US US18/139,924 patent/US20240078131A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20200293363A1 (en) | 2020-09-17 |
US11640317B2 (en) | 2023-05-02 |
WO2020185766A1 (en) | 2020-09-17 |
US20240078131A1 (en) | 2024-03-07 |
CN113574505A (zh) | 2021-10-29 |
EP3938903A1 (en) | 2022-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9411644B2 (en) | Method and system for work scheduling in a multi-chip system | |
US9529532B2 (en) | Method and apparatus for memory allocation in a multi-node system | |
US7836144B2 (en) | System and method for a 3-hop cache coherency protocol | |
US20150254182A1 (en) | Multi-core network processor interconnect with multi-node connection | |
US10592459B2 (en) | Method and system for ordering I/O access in a multi-node environment | |
US9372800B2 (en) | Inter-chip interconnect protocol for a multi-chip system | |
JPS61109164A (ja) | バス制御方法 | |
JP4680851B2 (ja) | システムコントローラ,同一アドレスリクエストキューイング防止方法および情報処理装置 | |
JPH0844681A (ja) | 複数の処理装置により共用される資源の集中管理 | |
US10162757B2 (en) | Proactive cache coherence | |
US8706970B2 (en) | Dynamic cache queue allocation based on destination availability | |
JP4409619B2 (ja) | 情報処理装置、制御装置および制御方法 | |
US20120185672A1 (en) | Local-only synchronizing operations | |
JPH05242022A (ja) | データ・バスを確保する方法及び装置 | |
TW202040380A (zh) | 分佈式系統中之資源管理之硬體協調 | |
EP3788494B1 (en) | Transfer protocol in a data processing network | |
CN114356839B (zh) | 处理写操作的方法、设备、处理器及设备可读存储介质 | |
US8560776B2 (en) | Method for expediting return of line exclusivity to a given processor in a symmetric multiprocessing data processing system | |
EP4022445B1 (en) | An apparatus and method for handling ordered transactions | |
EP1988464A1 (en) | Snoop control method and information processing device | |
US9304926B2 (en) | Coherency control message flow | |
CN116089116B (zh) | 数据处理方法及装置 | |
US8972663B2 (en) | Broadcast cache coherence on partially-ordered network | |
KR20080089621A (ko) | 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법 및 절차 호출 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체 | |
CN116089116A (zh) | 数据处理方法及装置 |