TWI758317B - 用於提供資料存取行為原子集的裝置及方法 - Google Patents

用於提供資料存取行為原子集的裝置及方法 Download PDF

Info

Publication number
TWI758317B
TWI758317B TW106130093A TW106130093A TWI758317B TW I758317 B TWI758317 B TW I758317B TW 106130093 A TW106130093 A TW 106130093A TW 106130093 A TW106130093 A TW 106130093A TW I758317 B TWI758317 B TW I758317B
Authority
TW
Taiwan
Prior art keywords
data
cache
access
value
payload
Prior art date
Application number
TW106130093A
Other languages
English (en)
Other versions
TW201814540A (zh
Inventor
傑森 派克
葛雷莫彼德 巴納斯
Original Assignee
英商Arm股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 英商Arm股份有限公司 filed Critical 英商Arm股份有限公司
Publication of TW201814540A publication Critical patent/TW201814540A/zh
Application granted granted Critical
Publication of TWI758317B publication Critical patent/TWI758317B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection 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/1425Protection 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 physical, e.g. cell, word, block
    • G06F12/1441Protection 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 physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection 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/145Protection 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • G06F9/467Transactional memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

資料處理裝置2包括用於儲存要存取的資料項目的快取記憶體8。一致性控制電路系統20控制儲存在快取記憶體內的資料項目及儲存在快取記憶體外面的資料項目的一或更多個其他複本之間的一致性。資料存取緩存器6緩存對於儲存在快取記憶體內的各別資料項目進行的複數個資料存取行為。存取控制電路系統20回應於由一致性控制電路系統所管理的該複數個資料項目的一致性狀態,在原子資料存取行為集開始之前確保所有這些資料項目的一致性狀態容許在快取記憶體內執行資料存取行為原子集中的所有資料存取行為,該複數個資料項目要經受要作為資料存取行為原子集而原子地一起執行的資料存取操作。

Description

用於提供資料存取行為原子集的裝置及方法
此揭示案關於資料處理系統的領域。更具體而言,此揭示案關於支援要原子地(atomically)執行的資料存取操作的資料處理系統。
資料處理系統領域內的原子操作指的是操作或行動的群組被控制為被執行為使得至少從程式設計師或外部觀測員的觀點來看,行動被一起執行且是全部成功或全部失敗。支援此類原子性的行為是有用的,且該原子性例如可確保多個狀態或資料項目以可能有用於確保正確操作或高安全水準的方式保持同步。然而,提供原子行為一般在系統內施加了效能懲罰及複雜度上的增加。例如,使用資料庫鎖來確保多個資料實例的更新一起執行可能顯著減緩了處理。
從一個態樣來看,本揭示案提供了用於處理資料的裝置,該裝置包括:處理電路系統,用以執行資料處理操作,所述資料處理操作包括資料存取操作;一快取記憶體,用以儲存要由所述資料存取操作所存取的資料項目; 一致性控制電路系統,用以控制儲存在所述快取記憶體內的所述資料項目及儲存在所述快取記憶體外面的所述資料項目的一或更多個其他複本之間的一致性; 一資料存取緩存器,用以緩存對於儲存在所述快取記憶體內的各別資料項目進行的複數個資料存取行為;及 存取控制電路系統,回應於由所述一致性控制電路系統所管理的針對複數個資料項目的一致性狀態,在一資料存取行為原子集開始及原子地一起執行之前確保所述複數個資料項目的所述一致性狀態容許在所述快取記憶體內執行所述資料存取行為原子集中的所有資料存取行為,該複數個資料項目經受要作為所述資料存取行為原子集而原子地一起執行的各別的資料存取操作。
從另一態樣來看,本揭示案提供了一種處理資料的方法,包括以下步驟: 執行資料處理操作,所述資料處理操作包括資料存取操作; 將要由所述資料存取操作所存取的資料項目儲存在一快取記憶體內; 控制儲存在所述快取記憶體內的所述資料項目及儲存在所述快取記憶體外面的所述資料項目的一或更多個其他複本之間的一致性; 緩存對於儲存在所述快取記憶體內的各別資料項目進行的複數個資料存取行為;及 回應於複數個資料項目的一致性狀態,在一資料存取行為原子集開始及原子地一起執行之前確保所述複數個資料項目的所述一致性狀態容許在所述快取記憶體內執行所述資料存取行為原子集中的所有資料存取行為,該複數個資料項目經受要作為所述資料存取行為原子集而原子地一起執行的各別的資料存取操作。
從另一態樣來看,本揭示案提供了用於處理資料的裝置,該裝置包括: 處理電路系統,用以執行資料處理操作,所述資料處理操作包括使用一相對應的虛擬記憶體位址空間內的虛擬記憶體位址來指定的資料存取操作; 位址轉譯電路系統,用以將所述虛擬位址轉譯成一實體位址空間內的實體位址以定址記憶體電路系統;及 存取控制電路系統,回應於對於複數個資料項目進行的資料存取行為的虛擬記憶體位址,控制對於所述複數個資料項目進行的所述資料存取行為作為一資料存取行為原子集來執行。
從另一態樣來看,本揭示案提供了一種處理資料的方法,包括以下步驟: 執行資料處理操作,所述資料處理操作包括使用一相對應的虛擬記憶體位址空間內的虛擬記憶體位址來指定的資料存取操作; 將所述虛擬位址轉譯成一實體位址空間內的實體位址以定址記憶體電路系統;及 回應於對於複數個資料項目進行的資料存取行為的虛擬記憶體位址,控制對於所述複數個資料項目進行的所述資料存取行為作為一資料存取行為原子集來執行。
圖1示意性地繪示包括處理器核心4的資料處理系統2,該處理器核心藉由緩存電路系統6耦接到快取記憶體8。記憶管理單元10負責將由處理器核心4所產生的虛擬位址(VA)轉譯成如由快取記憶體8及主記憶體16所使用的實體位址(PA)。處理器核心4及快取記憶體8為存在於資料處理系統2內的此類核心及快取記憶體組合的一個實例。更具體而言,由虛線12所圍繞的電路系統的其他實例存在於資料處理系統2內且連接到互連電路系統14。互連電路系統14連接到主記憶體16,該主記憶體在處理器核心4及快取記憶體8的不同實例之間被共享。
為了管理相對應於實體記憶體位址空間內的給定記憶體位址的資料值的不同複本之間的一致性,資料處理系統2被提供為具有一致性機構,該一致性機構藉由依據例如為MESI協定的協定透過互連電路系統14傳輸監聽請求及監聽回應來運作。依據此類技術,儲存在快取記憶體8內的個別快取列18的一致性狀態被分配到經更改的、專有的、共享的或無效的狀態中的一者。快取列18中的各者的每個快取列的一致性狀態(per cache line coherency status)被儲存在快取記憶體8內。與快取記憶體8相關聯的一致性控制電路系統20用來取決於所涉及的快取記憶體8處的彼等快取列的一致性狀態來管理對快取列18進行的資料存取操作。例如,若快取列18在快取記憶體8內被保持在共享狀態下且處理器核心4希望寫入該快取列,則一致性控制電路系統20將透過互連電路系統14發出監聽請求,且使用耦接到互連電路系統14的監聽控制器22,以在容許執行寫入之前獲取該快取列18的專有存取權。在獲取專有存取權時,這可使得相對應於被保持在其他處的涉及的記憶體位址的資料值的複本被標記為無效的。
以類似的方式,在快取列18被相關聯的處理器核心4寫入時,則該快取列的狀態可被標記為經更改的,指示保持在其他處的該資料值的任何其他複本將過期,且此外指示在將該經更改的資料值遷出快取記憶體8時將經更改的資料值回寫到主記憶體16的需求。
將理解的是,上述的一致性狀態值及一致性管理技術僅為各種不同的此類一致性狀態值、一致性協定及一致性管理技術的一個實例,該等一致性狀態值、一致性協定及一致性管理技術是可能的且此技術領域中的人將熟悉的。
處理器核心4包括複數個處理管線22、24、26,該複數個處理管線包括用於執行資料存取操作的加載儲存管線26。某些這些資料存取操作可與加載至或儲存自一或更多個能力暫存器28的行為相關聯。這些能力暫存器儲存能力值,該等能力值可用來指示及控制由處理器核心4所執行的相對應程序的受容許的處理能力。例如,能力值可用來控制特定程序可在該程序的執行期間存取哪些範圍的記憶體位址。為了保護能力值的整體性及安全性,該等能力值具有相關聯的TAG值,該等TAG值指示經受資料存取的特定資料值是否要被視為有效的能力值。更具體而言,與資料存取相關聯的虛擬位址可用來導出TAG值的相對應位址,其中該TAG值指示該相對應的虛擬位址正在儲存有效的能力值或不在儲存有效的能力值。此類系統內的能力值及TAG值具有緊密的關係且應被原子地存取以確保處理的整體性及足夠的安全程度。例如,在讀取能力值及讀取TAG值時,則應在相同時點(至少從程式設計師的觀點來看)取樣能力值及TAG值,以避免例如有效性值在讀取能力值的時點及讀取相對應TAG值的後續時點之間改變的可能性。
上文所論述的能力值及TAG值為要將複數個資料項目作為資料存取行為原子集來存取的情況的一個實例。更一般的示例會是考慮存取酬載值及相對應的有效性值。有效性值指示相對應酬載值的有效性狀態的一態樣。將理解的是,存在許多其他類型的系統及用法,其中應透過資料存取行為原子集來存取彼此相關聯的多個資料項目。
緩存電路系統6支援一起執行多個讀取行為或多個寫入行為。這些讀取及寫入行為可不精確地同時發生,但在給予由緩存電路系統6所提供的硬體支援的情況下,該等行為從程式設計師的觀點可看起來像是同時執行的。
緩存電路系統6包括存取控制電路系統30。存取控制電路系統30回應於來自處理器核心4的訊號,該訊號指示在執行資料存取時該資料存取是否是針對能力值。存取控制電路系統30亦能夠讀取儲存在快取記憶體8內的不同快取列18的一致性狀態值。據此,在存取控制電路系統30偵測到存取行為要被執行為能力存取行為時,則該存取控制電路系統產生相對應TAG值的位址。由處理器核心4所產生的能力存取行為使用虛擬記憶體空間內的虛擬位址。TAG值亦使用此虛擬記憶體空間內的TAG位址。能力值的虛擬位址及相對應TAG值的虛擬位址之間的關係是預先決定的,且將在下文中與圖2關聯來進一步描述。記憶管理單元20在快取記憶體8及主記憶體16使用實體位址(PA)來運作時將虛擬位址(VA)重映射到實體位址(PA)。記憶管理單元10亦可負責其他的控制功能,例如許可控制。
在存取控制電路系統30擁有要存取的一致性值的位址及相對應TAG值的位址(現在被轉譯成實體位址)兩者時,可判定儲存彼等值的快取記憶體內的相對應快取列18的一致性狀態。若快取記憶體18目前並未儲存相對應TAG值的一致性值,則可如將在下文中進一步描述地將該一致性值提取進快取記憶體8。存取控制電路系統回應於其讀取的一致性狀態(這些一致性狀態是由一致性控制電路系統20及監聽控制器22所管理的),藉由在該資料存取行為原子集開始之前確保一致性狀態指示包括針對一致性值進行的存取行為及針對相對應TAG值進行的存取行為的資料存取行為原子集中的所有資料存取行為可在快取記憶體內一起執行,來管理要原子地執行的針對能力值及相對應的TAG值進行的存取行為。若一致性狀態並未使得容許使用儲存在產生存取請求的處理器核心的快取記憶體8內的資料值來本端地執行存取行為,則使用一致性控制電路系統20及監聽控制器22來與資料處理系統2的其餘部分交換監聽請求及監聽回應,以獲取涉及適當的一致性狀態的快取列的複本,該適當的一致性狀態容許在快取記憶體8內本端地執行形成存取原子集的一部分的存取行為。
在資料存取行為原子集是資料寫入行為原子集的情況下,則存取控制電路系統30用來在資料寫入行為原子集中的任何資料寫入行為開始及以低延遲原子地一起執行之前確保資料寫入行為原子集中的所有資料寫入行為的一致性狀態是容許寫入的一致性狀態,該容許寫入的一致性狀態容許在快取記憶體8內執行彼等資料寫入行為原子集中的所有資料寫入行為。在圖1中所繪示的示例的情況下的容許寫入的一致性狀態的實例包括了專有一致性狀態及經更改一致性狀態,該專有一致性狀態指示快取記憶體8擁有相對應的快取列的專有存取寫入權,該經更改一致性狀態指示快取記憶體8正在儲存具有一值的相對應資料項目,該值在被儲存在快取記憶體8內的同時已被更改。
在對快取記憶體8內的資料項目(快取列18)作出寫入行為時,一致性狀態被一致性控制電路系統20及監聽控制器22用來控制被保持在資料處理裝置內的其他處的任何相對應的資料值的後續更改行為。可能的是,由資料寫入行為原子集中的任何資料寫入行為造成的任何相對應的後續資料寫入行為可被一致性控制電路系統20延緩,直到快取記憶體8不再儲存涉及容許寫入的資料存取行為的資料項目(例如該資料項目的一致性狀態從專有的或經更改的改變了)為止。
在資料存取行為原子集是資料讀取行為原子集的情況下,存取控制電路系統可用來在資料讀取行為原子集中的任何資料讀取行為開始之前確保資料讀取行為原子集中的所有資料讀取行為的一致性狀態是容許讀取的一致性狀態,使得該等資料讀取行為可接著以低延遲原子地一起執行,該容許讀取的一致性狀態容許在快取記憶體8內執行資料讀取行為原子集中的所有資料讀取行為。圖1的示例實施例中的容許讀取的一致性狀態的實例包括了如上文所論述的專有狀態、如上文所論述的經修改狀態及共享一致性狀態,該共享一致性狀態指示快取記憶體8正在儲存相對應資料項目亦被儲存在資料處理系統2內的其他處(例如所涉及的特定快取記憶體8外面)的最新複本。
圖2示意性地繪示酬載值(例如能力值)及相對應的有效性值(例如TAG值)的位址之間的關係。在所繪示的實例中,如由處理器核心4所使用的虛擬記憶體位址空間具有該虛擬記憶體位址空間專用於儲存有效性值的最上方的第128個部分。最上方的部分開始於TAG基址處。據此,可如圖2中所示地判定有效性值的位址。因此,虛擬記憶體位址空間被分成用於儲存酬載值的資料分區及用於儲存有效性值的相對應的TAG分區。儲存在TAG分區內的有效性值可為填有中介空值(或可能是其他元資料)的單一位元值。這樣做到使得在TAG值的快取列18被加載進多處理器系統內的快取記憶體8中的一者時,所涉及的快取列與較少的相對應的酬載快取列相關,且據此對於TAG值的給定快取列而言存在較少的爭用行為。
圖3是一流程圖,示意性地繪示可依據本技術來執行的儲存操作。處理在步驟32處等待直到接收到資料儲存操作為止。步驟34接著依據圖2中所示的關係針對接收到的資料儲存操作產生相對應的TAG位址。步驟36判定用於進行在步驟32處所接收到的資料儲存的資料列是否以專有的或經更改的狀態存在於快取記憶體8內。若步驟36處的判定是資料列未以專有的或經更改的狀態存在,則處理繼續進行到步驟30,在步驟30處,從主記憶體16或從另一核心及快取記憶體組合獲取資料列。若步驟36處的判定是資料列已經以專有的或經更改的狀態存在於所針對的快取記憶體內,則略過步驟38。
在步驟40處,作出關於包含用於所涉及的資料儲存行為的資料列的TAG值的TAG列是否已經以專有的或經更改的狀態存在於快取記憶體8內的判定。若TAG列不存在,則在步驟42處從記憶體16或另一核心及快取記憶體組合獲取具有專有狀態的該TAG列。若步驟40處的判定是TAG列已經以專有的或經更改的狀態存在於快取記憶體8內,則略過步驟42。
步驟36、38、40及42的行動確保在到達步驟44處之前,資料列及相對應的TAG列兩者以專有的或經更改的狀態存在快取記憶體8於內。步驟44接著執行從緩存電路系統6內的雙線寫入緩存器原子儲存資料列內的資料值及相對應的TAG值兩者的行為。步驟46更新在步驟44處所寫入的資料列及TAG列兩者的一致性狀態以指示這些項目已被更改。
圖4是一流程圖,示意性地繪示加載操作。處理在步驟48處等待直到接收到資料加載行為為止。步驟50接著產生相對應於所接收到的資料加載行為的TAG位址。步驟52判定相對應於步驟48處所接收到的資料加載行為的資料列目前是否以共享的、專有的或經更改的狀態中的一者存在於快取記憶體8內。若資料列未如此存在,則步驟54用來獲取快取記憶體8中具有共享狀態的資料列。若資料列已經存在於快取記憶體8內,則略過步驟54。步驟56判定相對應於步驟48處所接收到的資料加載行為的TAG列是否已經以共享的、專有的或經更改的狀態中的一者存在於快取記憶體8內。若TAG列還未如此存在,則在步驟58處獲取具有共享狀態的TAG列。若TAG列被步驟56判定為已經存在,則略過步驟58。
步驟60執行將快取緩存在快取記憶體8內的資料值及TAG值兩者原子加載進緩存電路系統6的雙線讀取緩存器的行為。此使用雙線讀取緩存器的原子加載行為確保資料列及TAG值保持彼此一致。
步驟62判定步驟48處所接收到的資料加載行為是否相對應於具有一能力值的加載行為。若加載行為具有一能力值,則步驟64判定相對應的TAG值是否是有效的而指示該加載行為是被正確作出的。若TAG值是有效的,則步驟66用來將資料值加載進核心4內的適當的暫存器。若TAG值在步驟64處被判定不是有效的,則步驟68用來產生錯誤訊息。
儘管已於本文中參照隨附繪圖詳細描述說明性實施例,要瞭解的是,請求項不限於該等準確的實施例,且可由本領域中具技藝者將各種改變、添加及更改作用於該等實施例中而不脫離隨附請求項的範圍及精神。例如,可同獨立項的特徵作出附屬項之特徵的各種組合。
2‧‧‧資料處理系統4‧‧‧處理器核心6‧‧‧緩存電路系統8‧‧‧快取記憶體10‧‧‧記憶管理單元12‧‧‧虛線14‧‧‧互連電路系統16‧‧‧主記憶體18‧‧‧快取列20‧‧‧一致性控制電路系統22‧‧‧監聽控制器/處理管線24‧‧‧處理管線26‧‧‧處理管線28‧‧‧能力暫存器30‧‧‧存取控制電路系統32‧‧‧步驟34‧‧‧步驟36‧‧‧步驟38‧‧‧步驟40‧‧‧步驟42‧‧‧步驟44‧‧‧步驟46‧‧‧步驟48‧‧‧步驟50‧‧‧步驟52‧‧‧步驟54‧‧‧步驟56‧‧‧步驟58‧‧‧步驟60‧‧‧步驟62‧‧‧步驟64‧‧‧步驟66‧‧‧步驟68‧‧‧步驟
將參照隨附繪圖僅藉由示例的方式描述示例實施例,在該等繪圖中:
圖1示意性地繪示多核心/快取記憶體資料處理系統的一部分,該部分併入了用於確保複數個資料存取行為被執行為資料存取行為原子集(atomic set)的機構;
圖2是一圖解,繪示可如何從能力值(酬載值)位址導出TAG值(有效性值)位址;
圖3是一流程圖,示意性地繪示儲存操作;及
圖4是一流程圖,示意性地繪示加載操作。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無
32‧‧‧步驟
34‧‧‧步驟
36‧‧‧步驟
38‧‧‧步驟
40‧‧‧步驟
42‧‧‧步驟
44‧‧‧步驟
46‧‧‧步驟

Claims (19)

  1. 一種用於提供一資料存取行為原子集的裝置,包括:處理電路系統,用以執行資料處理操作,所述資料處理操作包括資料存取操作;一快取記憶體,用以儲存要由所述資料存取操作所存取的資料項目;一致性控制電路系統,用以控制儲存在所述快取記憶體內的所述資料項目及儲存在所述快取記憶體外面的所述資料項目的一或更多個其他複本之間的一致性;一資料存取緩存器,用以緩存對於儲存在所述快取記憶體內的各別資料項目進行的複數個資料存取行為;及存取控制電路系統,回應於指示出該處理電路系統正執行的一目前資料存取操作是要作為所述資料存取行為原子集而原子地一起執行的複數個資料存取操作中之一者的來自該處理電路系統的一信號,該存取控制電路系統用以:針對回應於執行所述複數個資料存取操作而將被存取的各別資料項目,決定由所述一致性控制電路系統所管理的相對應一致性狀態;及 回應於該等相對應一致性狀態,決定是否該等相對應一致性狀態容許在所述快取記憶體內執行所述資料存取行為原子集中的所有資料存取行為,其中,在所述資料存取行為原子集開始及原子地一起執行之前,在所述相對應一致性狀態沒有容許在所述快取記憶體內執行所述資料存取行為原子集中的所有資料存取行為之下,該一致性控制電路系統經配置以請求具有經更新一致性狀態的所述各別資料項目的複本,該等經更新一致性狀態容許在所述快取記憶體內執行所述資料存取行為原子集中的所有資料存取行為。
  2. 如請求項1所述之裝置,其中所述資料存取行為原子集是一資料寫入行為原子集,且所述存取控制電路系統在所述資料寫入行為原子集開始且原子地一起執行之前確保所述資料寫入行為原子集中的所有資料寫入行為的所述一致性狀態是容許寫入的一致性狀態,該容許寫入的一致性狀態容許在所述快取記憶體內執行所述資料寫入行為原子集中的所有資料寫入行為。
  3. 如請求項2所述之裝置,其中所述容許寫入的一致性狀態包括:一專有一致性狀態,指示所述快取記憶體具有對於一相對應的資料項目的一專有存取權;及 一經更改一致性狀態,指示所述快取記憶體正在儲存具有已在所述快取記憶體內被更改的一值的一相對應的資料項目。
  4. 如請求項2所述之裝置,其中所述一致性控制電路系統控制對於儲存在所述快取記憶體外面的所述資料項目的其他複本進行的任何繼起的相對應寫入行為,且該等相對應的寫入行為相對應於所述原子資料寫入行為集中的任何資料寫入行為。
  5. 如請求項4所述之裝置,其中相對應於所述資料寫入行為原子集中的一個資料寫入行為的一資料項目的一繼起的相對應寫入行為被所述一致性控制電路系統延緩,直到儲存在所述快取記憶體內的所述資料項目不再具有一容許寫入的一致性狀態為止。
  6. 如請求項1所述之裝置,其中所述資料存取行為原子集是一資料讀取行為原子集,且所述存取控制電路系統在所述資料讀取行為原子集開始且原子地一起執行之前確保所述資料讀取行為原子集中的所有資料讀取行為的所述一致性狀態是容許讀取的一致性狀態,該容許讀取的一致性狀態容許在所述快取記憶體內執行所述資料讀取行為原子集中的所有資料讀取行為。
  7. 如請求項6所述之裝置,其中所述容許讀取的一致性狀態包括: 一專有一致性狀態,指示所述快取記憶體具有對於一相對應的資料項目的一專有存取權;一經更改一致性狀態,指示所述快取記憶體正在儲存具有已在所述快取記憶體內被更改的一值的一相對應的資料項目;及一共享一致性狀態,指示所述快取記憶體正在儲存一相對應資料項目的亦儲存在所述快取記憶體外面的一最新複本。
  8. 如請求項1所述之裝置,其中所述資料存取行為原子集為對於一酬載值及一相對應的有效性值進行的存取行為,該有效性值指示所述酬載值的有效性。
  9. 如請求項8所述之裝置,其中所述存取控制電路系統回應於對於所述酬載值進行的一資料存取操作,產生對於所述相對應的有效性值進行的一資料存取操作,對於所述酬載值進行的該資料存取操作由所述處理電路系統回應於由所述處理電路系統所執行的一程式指令而執行。
  10. 如請求項9所述之裝置,其中所述存取控制電路系統從由對於所述酬載值進行的所述資料存取操作所指定的一記憶體位址判定儲存所述相對應有效性資料值的一記憶體位址。
  11. 如請求項9所述之裝置,其中在對於所述酬載資料進行的資料存取操作是用以讀取所述酬載值的一酬載讀取操作時,所述存取控制電路系統回應於指 示所述酬載值的有效性的所述有效性值而容許回傳所述酬載值,且回應於指示所述酬載值的無效性的所述有效性值而防止回傳所述酬載值。
  12. 如請求項9所述之裝置,其中在對於所述酬載資料進行的資料存取操作是用以寫入所述酬載值的一酬載寫入操作時,所述存取控制電路系統原子地寫入所述酬載值及用以指示所述酬載值的有效性的所述有效性值。
  13. 如請求項9所述之裝置,其中在對於所述酬載資料進行的資料存取操作是用以讀取所述酬載值的一標準讀取操作時,所述存取控制電路系統回應於指示所述酬載值的有效性的所述有效性值而防止回傳所述酬載值,且回應於指示所述酬載值的無效性的所述有效性值而容許回傳所述酬載值。
  14. 如請求項9所述之裝置,其中在對於所述酬載資料進行的資料存取操作是用以寫入所述酬載值的一標準寫入操作時,所述存取控制電路系統回應於指示所述酬載值的有效性的所述有效性值而原子地執行所述酬載資料的一寫入行為及用以指示所述酬載資料的無效性的所述有效性值的一寫入行為,且回應於指示所述酬載值的無效性的所述有效性值而執行所述酬載資料的一寫入行為。
  15. 如請求項8所述之裝置,其中所述存取控制電路系統在允許任何行動獲取以指示容許存取的一一 致性狀態儲存在所述快取記憶體內的所述酬載資料之前檢查所述有效性值,所述有效性值以指示容許存取所述快取記憶體內的所述有效性值的一一致性狀態儲存在所述快取記憶體內。
  16. 如請求項8所述之裝置,其中所述酬載資料是指示由所述處理電路系統所執行的一相對應程序的受容許的處理能力的能力資料。
  17. 如請求項1所述之裝置,其中所述資料項目被儲存在所述快取記憶體的各別的快取列內,且是在一每個快取列(per-cache-line)的基礎上管理所述一致性狀態。
  18. 如請求項8所述之裝置,其中所述資料項目被儲存在所述快取記憶體的各別的快取列內,且是在一每個快取列的基礎上管理所述一致性狀態,且其中儲存在一快取列內的複數個所述有效性值被填塞在所述快取列內以減少所述快取列內及共享一一致性狀態的一有效性值數量。
  19. 一種用於提供一資料存取行為原子集的方法,包括以下步驟:執行資料處理操作,所述資料處理操作包括資料存取操作;將要由所述資料存取操作所存取的資料項目儲存在一快取記憶體內; 控制儲存在所述快取記憶體內的所述資料項目及儲存在所述快取記憶體外面的所述資料項目的一或更多個其他複本之間的一致性;緩存對於儲存在所述快取記憶體內的各別資料項目進行的複數個資料存取行為;回應於指示出正執行的一目前資料存取操作是要作為所述資料存取行為原子集而原子地一起執行的複數個資料存取操作中之一者的一信號,針對回應於執行所述複數個資料存取操作而將被存取的各別資料項目來決定相對應一致性狀態;回應於該等相對應一致性狀態,決定是否該等相對應一致性狀態容許在所述快取記憶體內執行所述資料存取行為原子集中的所有資料存取行為;及在所述資料存取行為原子集開始及原子地一起執行之前,在所述相對應一致性狀態沒有容許在所述快取記憶體內執行所述資料存取行為原子集中的所有資料存取行為之下,請求具有經更新一致性狀態的所述各別資料項目的複本,該等經更新一致性狀態容許在所述快取記憶體內執行所述資料存取行為原子集中的所有資料存取行為。
TW106130093A 2016-09-28 2017-09-04 用於提供資料存取行為原子集的裝置及方法 TWI758317B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
??1616452.7 2016-09-28
GB1616452.7 2016-09-28
GB1616452.7A GB2554442B (en) 2016-09-28 2016-09-28 Apparatus and method for providing an atomic set of data accesses

Publications (2)

Publication Number Publication Date
TW201814540A TW201814540A (zh) 2018-04-16
TWI758317B true TWI758317B (zh) 2022-03-21

Family

ID=57539803

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106130093A TWI758317B (zh) 2016-09-28 2017-09-04 用於提供資料存取行為原子集的裝置及方法

Country Status (9)

Country Link
US (1) US11182294B2 (zh)
EP (1) EP3519971B1 (zh)
JP (1) JP7022120B2 (zh)
KR (1) KR102476438B1 (zh)
CN (1) CN109791521B (zh)
GB (1) GB2554442B (zh)
IL (1) IL264671B (zh)
TW (1) TWI758317B (zh)
WO (1) WO2018060671A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2602480B (en) * 2020-12-31 2023-05-24 Advanced Risc Mach Ltd Context information translation cache
US12182026B1 (en) 2023-06-27 2024-12-31 Apple Inc. Computer processor architecture for coalescing of atomic operations

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4301520B2 (ja) * 2001-02-24 2009-07-22 インターナショナル・ビジネス・マシーンズ・コーポレーション 不連続なデータ構造を事前取出しする方法
US20100333096A1 (en) * 2009-06-26 2010-12-30 David Dice Transactional Locking with Read-Write Locks in Transactional Memory Systems
US20100332766A1 (en) * 2009-06-26 2010-12-30 Sun Microsystems, Inc. Supporting efficient spin-locks and other types of synchronization in a cache-coherent multiprocessor system
CN103140829A (zh) * 2011-09-29 2013-06-05 英特尔公司 对高速缓存和/或插槽敏感的多处理器内核广度优先遍历
US20130275715A1 (en) * 2011-12-08 2013-10-17 Paul Caprioli Method, apparatus, and system for efficiently handling multiple virtual address mappings during transactional execution
CN104516831A (zh) * 2013-09-26 2015-04-15 想象技术有限公司 原子存储器更新单元和方法
TWI483180B (zh) * 2011-12-30 2015-05-01 英特爾股份有限公司 重疊原子區域執行的方法
US20150193265A1 (en) * 2014-01-07 2015-07-09 Red Hat, Inc. Using nonspeculative operations for lock elision
US9141547B2 (en) * 2005-06-20 2015-09-22 International Business Machines Corporation Architecture support of best-effort atomic transactions for multiprocessor systems

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04301520A (ja) 1991-03-28 1992-10-26 Chichibu Cement Co Ltd 液面レベル計
CA2078312A1 (en) * 1991-09-20 1993-03-21 Mark A. Kaufman Digital data processor with improved paging
WO2001063240A2 (en) 2000-02-25 2001-08-30 Sun Microsystems, Inc. Maintaining high snoop traffic throughput and preventing cache data eviction during an atomic operation
US9727468B2 (en) * 2004-09-09 2017-08-08 Intel Corporation Resolving multi-core shared cache access conflicts
US7814279B2 (en) * 2006-03-23 2010-10-12 International Business Machines Corporation Low-cost cache coherency for accelerators
US7484042B2 (en) * 2006-08-18 2009-01-27 International Business Machines Corporation Data processing system and method for predictively selecting a scope of a prefetch operation
US8321637B2 (en) * 2007-05-14 2012-11-27 International Business Machines Corporation Computing system with optimized support for transactional memory
US20110082981A1 (en) * 2008-04-22 2011-04-07 Nxp B.V. Multiprocessing circuit with cache circuits that allow writing to not previously loaded cache lines
US8473681B2 (en) * 2009-02-17 2013-06-25 Rambus Inc. Atomic-operation coalescing technique in multi-chip systems
US8145817B2 (en) 2009-04-28 2012-03-27 Microsoft Corporation Reader/writer lock with reduced cache contention
US8788794B2 (en) 2010-12-07 2014-07-22 Advanced Micro Devices, Inc. Programmable atomic memory using stored atomic procedures
CN102387204B (zh) * 2011-10-21 2014-12-10 中国科学院计算技术研究所 维护集群缓存一致性的方法及系统
US20140059333A1 (en) * 2012-02-02 2014-02-27 Martin G. Dixon Method, apparatus, and system for speculative abort control mechanisms
WO2014021879A1 (en) 2012-07-31 2014-02-06 Hewlett-Packard Development Company, L.P. Systems and methods for controlling access to a shared data structure with reader-writer locks using multiple sub-locks
GB2514107B (en) * 2013-05-13 2020-07-29 Advanced Risc Mach Ltd Page table data management
US10025721B2 (en) * 2013-10-27 2018-07-17 Advanced Micro Devices, Inc. Input/output memory map unit and northbridge
WO2015112148A2 (en) * 2014-01-23 2015-07-30 Hewlett-Packard Development Company, L.P. Atomically committing write requests
US9411542B2 (en) * 2014-02-21 2016-08-09 Analog Devices Global Interruptible store exclusive

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4301520B2 (ja) * 2001-02-24 2009-07-22 インターナショナル・ビジネス・マシーンズ・コーポレーション 不連続なデータ構造を事前取出しする方法
US9141547B2 (en) * 2005-06-20 2015-09-22 International Business Machines Corporation Architecture support of best-effort atomic transactions for multiprocessor systems
US20100333096A1 (en) * 2009-06-26 2010-12-30 David Dice Transactional Locking with Read-Write Locks in Transactional Memory Systems
US20100332766A1 (en) * 2009-06-26 2010-12-30 Sun Microsystems, Inc. Supporting efficient spin-locks and other types of synchronization in a cache-coherent multiprocessor system
CN103140829A (zh) * 2011-09-29 2013-06-05 英特尔公司 对高速缓存和/或插槽敏感的多处理器内核广度优先遍历
US20130275715A1 (en) * 2011-12-08 2013-10-17 Paul Caprioli Method, apparatus, and system for efficiently handling multiple virtual address mappings during transactional execution
TWI483180B (zh) * 2011-12-30 2015-05-01 英特爾股份有限公司 重疊原子區域執行的方法
CN104516831A (zh) * 2013-09-26 2015-04-15 想象技术有限公司 原子存储器更新单元和方法
US20150193265A1 (en) * 2014-01-07 2015-07-09 Red Hat, Inc. Using nonspeculative operations for lock elision

Also Published As

Publication number Publication date
CN109791521A (zh) 2019-05-21
GB201616452D0 (en) 2016-11-09
IL264671B (en) 2022-02-01
JP7022120B2 (ja) 2022-02-17
WO2018060671A1 (en) 2018-04-05
US20190258574A1 (en) 2019-08-22
US11182294B2 (en) 2021-11-23
KR102476438B1 (ko) 2022-12-12
GB2554442B (en) 2020-11-11
KR20190058553A (ko) 2019-05-29
EP3519971A1 (en) 2019-08-07
GB2554442A (en) 2018-04-04
JP2019533239A (ja) 2019-11-14
CN109791521B (zh) 2023-02-28
EP3519971B1 (en) 2023-10-04
TW201814540A (zh) 2018-04-16

Similar Documents

Publication Publication Date Title
US5644753A (en) Fast, dual ported cache controller for data processors in a packet switched cache coherent multiprocessor system
TWI432963B (zh) 加速器之低成本快取一致
TWI676891B (zh) 轉譯後備緩衝器管理
JP7193547B2 (ja) キャッシュ・メモリ動作の調整
TW417047B (en) Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency
CN113826085B (zh) 处理器中的写入流
JP2001167077A (ja) ネットワークシステムにおけるデータアクセス方法、ネットワークシステムおよび記録媒体
US7360031B2 (en) Method and apparatus to enable I/O agents to perform atomic operations in shared, coherent memory spaces
US10102124B2 (en) High bandwidth full-block write commands
JP2005519391A (ja) 共有ベクトルの増加を伴わないdsmマルチプロセッサシステムにおけるキャッシュコヒーレンスのための方法およびシステム
US20140006716A1 (en) Data control using last accessor information
TWI758317B (zh) 用於提供資料存取行為原子集的裝置及方法
US20180189181A1 (en) Data read method and apparatus
JPH10501914A (ja) 共用キャッシュ・メモリ装置
EP0624845A1 (en) Information processing system comprising one or more cached devices
CN119440880B (zh) 处理器缓存结构、处理器和数据缓存方法
US10896135B1 (en) Facilitating page table entry (PTE) maintenance in processor-based devices
GB2502858A (en) A method of copying data from a first memory location and storing it in a cache line associated with a different memory location
US9558119B2 (en) Main memory operations in a symmetric multiprocessing computer
JP6631317B2 (ja) 演算処理装置、情報処理装置および情報処理装置の制御方法
US10482015B2 (en) Ownership tracking updates across multiple simultaneous operations
JP4948141B2 (ja) バス制御装置
JP7238262B2 (ja) 計算機、半導体装置、及び制御方法
JP6493187B2 (ja) 情報処理装置、演算処理装置および情報処理装置の制御方法
JPH08123722A (ja) 情報処理システムにおける記憶制御方法および記憶制御装置