TW202340938A - 用於處理排序受限制存取操作之技術 - Google Patents
用於處理排序受限制存取操作之技術 Download PDFInfo
- Publication number
- TW202340938A TW202340938A TW112112848A TW112112848A TW202340938A TW 202340938 A TW202340938 A TW 202340938A TW 112112848 A TW112112848 A TW 112112848A TW 112112848 A TW112112848 A TW 112112848A TW 202340938 A TW202340938 A TW 202340938A
- Authority
- TW
- Taiwan
- Prior art keywords
- access
- instruction
- data values
- operations
- ordering
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 25
- 230000008569 process Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 6
- 238000009795 derivation Methods 0.000 claims 1
- 239000000872 buffer Substances 0.000 description 10
- 230000006399 behavior Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 239000012536 storage buffer Substances 0.000 description 5
- 101000628483 Homo sapiens Suppressor of tumorigenicity 7 protein-like Proteins 0.000 description 4
- 102100026721 Suppressor of tumorigenicity 7 protein-like Human genes 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
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/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/30043—LOAD or STORE instructions; Clear instruction
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
提供處理電路系統以執行操作,並提供指令解碼器電路系統以解碼指令,以控制該處理電路系統執行由該等指令指定的該等操作。使用一組暫存器以保持用於由該處理電路系統存取的資料值。該指令解碼器電路系統回應於用以存取多個資料值及提供暫存器指示資訊及記憶體位址資訊的一排序受限制存取指令而控制該處理電路系統執行一存取操作序列,其中各存取操作導致來自該多個資料值中的一資料值在從該暫存器指示資訊判定的一關聯暫存器與從該記憶體位址資訊判定的一關聯記憶體位址之間移動。進一步地,一排序指示係從該排序受限制存取指令導出且用以判定在執行該存取操作序列時待以其存取該多個資料值的一順序,以從而確保符合在實施該排序受限制存取指令時所要求的可觀察性條件。
Description
本技術係關於排序受限制存取操作的處理。
在現代資料處理系統內,存在各種類型之可在執行對記憶體之存取時採用的一致性模型。一種常見方法係採用相對弱的一致性模型,其中由系統中的給定處理元件執行的一系列對記憶體的存取可能不必然由系統中之觀察該等存取的其他處理元件觀察為以相同順序發生(亦即,一個觀察處理元件可觀察到與另一觀察處理元件不同的順序)。以增加效能為目的,此一方法可在各種存取如何由個別處理元件重新排序上提供大量彈性。
然而,在一些情況中,可能需要採用確保各觀察處理元件將另一處理元件的存取觀察為已以相同順序發生的較嚴格的一致性模型。此類較嚴格一致性模型的二個實例可稱為總儲存順序(total store order, TSO)及釋放一致性、處理器一致性(release consistency, processor consistent, RCpc)。
透過使用單一存取排序受限制存取指令(諸如載入取得及儲存釋放指令),可能在支援較弱一致性模式的系統中仿真此類較嚴格一致性模型的要求。當此一戴入取得或儲存釋放指令係由給定處理元件執行時,該處理元件在執行所需的載入或儲存操作時受到限制,以確保符合由較嚴格一致性模型所指定的對存取操作的排序的可觀察性要求。
然而,改善碼密度以尋求增加效能在資料處理系統內常係所欲的,且此在使用此類排序受限制存取指令時可係有問題的。
在一個實例配置中,提供一種設備,其包含:處理電路系統,以執行操作;指令解碼器電路系統,以解碼指令,以控制該處理電路系統執行由該等指令指定的該等操作;及一組暫存器,以保持用於由該處理電路系統存取的資料值;其中該指令解碼器電路系統回應於用以存取多個資料值及提供暫存器指示資訊及記憶體位址資訊的一排序受限制存取指令而控制該處理電路系統執行一存取操作序列,其中各存取操作導致來自該多個資料值中的一資料值在從該暫存器指示資訊判定的一關聯暫存器與從該記憶體位址資訊判定的一關聯記憶體位址之間移動;且其中一排序指示係從該排序受限制存取指令導出且用以判定在執行該存取操作序列時待以其存取該多個資料值的一順序。
在另一實例配置中,提供一種在具有處理電路系統以執行操作的一設備中處理排序受限制存取操作的方法,該方法包含:利用指令解碼器電路系統解碼指令,以控制該處理電路系統執行由該等指令指定的該等操作;利用一組暫存器保持用於由該處理電路系統存取的資料值;回應於用以存取多個資料值及提供暫存器指示資訊及記憶體位址資訊的一排序受限制存取指令而導致該指令解碼器電路系統控制該處理電路系統執行一存取操作序列,其中各存取操作導致來自該多個資料值中的一資料值在從該暫存器指示資訊判定的一關聯暫存器與從該記憶體位址資訊判定的一關聯記憶體位址之間移動;及回應於從該排序受限制存取指令導出的一排序指示而判定在執行該存取操作序列時待以其存取該多個資料值的一順序。
在一更進一步實例配置中,提供一種電腦程式,其用於控制一主機資料處理設備以提供一指令執行環境,該指令執行環境,其包含:處理程式邏輯,以執行操作;指令解碼程式邏輯,以解碼指令,以控制該處理程式邏輯執行由該等指令指定的該等操作;及暫存器仿真程式邏輯,以仿真一組暫存器以保持用於由該處理程式邏輯存取的資料值;其中該指令解碼程式邏輯回應於用以存取多個資料值及提供暫存器指示資訊及記憶體位址資訊的一排序受限制存取指令而控制該處理程式邏輯執行一存取操作序列,其中各存取操作導致來自該多個資料值中的一資料值在從該暫存器指示資訊判定的一關聯暫存器與從該記憶體位址資訊判定的一關聯記憶體位址之間移動;且其中一排序指示係從該排序受限制存取指令導出且用以判定在執行該存取操作序列時待以其存取該多個資料值的一順序。
在一個實例實施方案中,提供一種設備,其具有:用於執行操作的處理電路系統;及指令解碼器電路系統,以解碼指令,以控制該處理電路系統執行由該等指令指定的該等操作。提供一組暫存器,其中各暫存器可用以保持用於由該處理電路系統存取的一資料值。應注意資料值可包含一或多個資料元素,且使用於本文中的用語「資料值(data value)」係用以指可保持在單一暫存器內的資料區塊。
如早先提及的,在尋求採用某些一致性模型時,已知提供單一存取排序受限制存取指令,諸如載入取得指令或儲存釋放指令。當執行此一單一存取排序受限制存取指令時,將存取單一暫存器(作為儲存操作的來源或作為載入操作的目的地)。進一步地,處理電路系統將確保符合排序限制以符合某些可觀察性要求。例如,對於一載入取得指令,該處理電路系統將確保在一程式順序上出現在該載入取得指令之後的任何存取指令(載入或儲存任一者)將僅在該載入取得指令的執行已完成之後經觀察(例如,藉由系統中的任何其他處理元件)為受執行。換言之,與載入取得指令關聯的載入操作將排序在程式順序上出現在載入取得指令之後的另一存取指令關聯的任何存取操作之前。
類似地,對於一儲存釋放指令,該處理電路系統將確保在該儲存釋放指令經觀察為受執行之前經觀察為已完成執行的任何存取指令將係在一程式順序上出現在該儲存釋放指令之前的一存取指令。換言之,在程式順序上出現在儲存釋放指令之前的任何存取指令將使其之關聯存取操作排序在與儲存釋放指令關聯的儲存操作之前。
當尋求改善碼密度時,常係所欲的是在可行的情況下以單一指令取代二或更多個指令,此係因為此常可促成顯著的效能改善。然而,在考慮上述單一存取排序受限制存取指令時,導因於在執行關聯存取操作時需要符合的可觀察性要求,此係有問題的。
然而,根據本文描述的技術,此問題已經由提供可處理以將此類可觀察性要求列入考量的新指令解決。具體而言,提供一種用以存取多個資料值的排序受限制存取指令,且該指令解碼器電路系統回應於此一指令而控制該處理電路系統執行該存取操作序列。各存取操作導致來自該多個資料值中的一資料值在一關聯暫存器(從該指令提供的暫存器指示資訊判定)與一關聯記憶體位址(從該指令提供的記憶體位址資訊判定)之間移動。額外地,一排序指示係從該排序受限制存取指令導出且係用以判定在執行該存取操作序列時待以其存取該多個資料值的一順序。藉由使用此一排序指示,可能確保個別存取在所需順序上係外部可觀察的,且具體而言可符合其將符合而使多個單一存取排序受限制存取指令經執行的可觀察性要求,而非用以存取多個資料值之新的排序受限制存取指令。
具體而言,將理解若提供各識別單一資料值且用以在關聯暫存器及其在記憶體中的位址之間移動該資料值的一系列單一存取排序受限制存取指令,則系統中的任何觀察實體將觀察由該等系列的指令以特定順序(亦即,該等單一存取排序受限制存取指令在程式順序上出現的順序)執行的存取。然而,當尋求以一個指令置換此一系列的單一存取排序受限制存取指令時,重要的是維持存取之可觀察性的原始順序。此係通過提供上文提及之從排序受限制存取指令導出的排序資訊而達成,從而確保繼續符合所需的可觀察性限制。
當解碼排序受限制存取指令時,排序指示在一個實例實施方案中可藉由指令解碼器電路系統判定。然而,在一替代實施方案中,排序指示可由處理電路系統基於由指令解碼器電路系統提供給其的資訊判定。
排序指示可採取各種形式。在一個實例實施方案中,該排序指示係用以識別待以其存取與該多個資料值關聯的該等記憶體位址的一順序,從而判定待以其存取該多個資料值的該順序。舉實例而言,排序指示可識別應先存取最低記憶體位址或應先存取最高記憶體位址。藉由提供此一排序指示,因為其可允許使用上文提及的用於存取多個資料值的排序受限制存取指令而非一系列單一存取排序受限制存取指令,而與該系列將已導致先存取最低記憶體位址或先存取最高記憶體位址無關,此可提供顯著彈性,此係因為二個選項皆可由該指令適應。
在一個實例實施方案中,該指令解碼器電路系統經配置以控制該處理電路系統以對於耦接至該設備且能夠觀察由該處理電路系統執行的該等存取操作的觀察電路系統確保在執行該排序受限制存取指令時執行的該存取操作序列中的一給定存取操作之後的任何後續存取操作的執行可由該觀察電路系統觀察之前,該存取操作序列中的該給定存取操作可由該觀察電路系統觀察為已完成。因此,舉實例而言,若存取操作序列包括存取操作A及之後的存取操作B,則若觀察器可觀察到存取操作B的任何部分,上述要求將確保其亦能夠觀察到全部的存取操作A。值得注意的係此亦意指反向觀察條件,亦即,若觀察器無法觀察到全部的存取操作A,則其將無法觀察到存取操作B的任何部分。
在一個實例實施方案中,各資料值可包含複數個資料元素。在此一情境中,若該給定存取操作的執行需要執行多個存取以存取該關聯資料值的該複數個資料元素時,該處理電路系統可經配置以確保在該存取操作序列中的該給定存取操作之後的任何後續存取操作的執行可由該觀察電路系統觀察之前,形成該給定存取操作的該多個存取全部可由該觀察電路系統觀察為已完成。因此,即使在給定存取操作的執行需要藉由多個存取實施,且因此給定存取操作本身不係原子操作的情況中,仍可堅持確保任何後續存取操作在給定存取操作已完成之前係不可觀察的以上要求。存在各種給定存取操作可能需要藉由多個存取執行的原因,但一個具體實例係在資料橫跨快取線邊界存取的情況下,且因此可能需要對多條快取線的分開存取。
在一個實例實施方案中,排序指示可直接編碼在排序受限制存取指令的欄位內,且因此排序指示可從該欄位的分析判定。然而,在一替代實施方案中,可能不需要為排序指示提供分開欄位,而替代地,排序指示可從編碼成排序受限制存取指令的其他資訊導出。
例如,在一個實例實施方案中,該排序受限制存取指令經配置以指定用以從該記憶體位址資訊判定該多個資料值的該等記憶體位址的一定址模式,且該排序指示可取決於該定址模式導出。
舉實例而言,該記憶體位址資訊可經配置以提供用以判定一個記憶體位址(此可例如係(但不需要係)待根據排序指示存取的第一記憶體位址)的一記憶體位址指示,該定址模式可識別至少在各其他記憶體位址的判定期間使用的一調整方向,且該排序指示可取決於該調整方向判定。
在一些實施方案中,定址模式將不僅識別調整方向,且亦可提供實現調整量之判定的資訊。調整方向及調整量資訊接著可用以判定序列中的各記憶體位址。例如,基於此類定址模式資訊,建構各以調整量彼此分開的遞增或遞減記憶體位址的序列可係可行的。在一些實施方案中,調整方向及調整量亦可在判定係從記憶體位址指示判定的一個記憶體位址時使用,例如,當定址模式識別導致記憶體位址藉由以調整量遞減從記憶體位址指示判定的記憶體位址而判定的預遞減機制時。
雖然在一些實施方案中,可係待以其存取記憶體位址以符合可觀察性限制的順序可與基於定址模式以其判定位址序列的方式不同的情形,已發現常係在需要符合可觀察性限制的存取排序與由定址模式提供的調整方向之間存在固有鏈接的情形,且因此常係定址模式資訊可藉由自身或與由指令提供的其他資訊結合而再使用以判定排序指示的情形。
作為由排序受限制存取指令提供之亦可在判定排序指示時使用的資訊的另一實例,在一個實例實施方案中,排序指示可取決於排序受限制存取指令的指令類型導出。在一個特定實例實施方案中,此指令類型資訊可與早先提及的定址模式資訊結合使用。
在一個實例實施方案中,該指令類型經配置以識別該排序受限制存取指令係尋求將該多個資料值從記憶體載入至複數個該等暫存器中的一載入指令,或係尋求將該多個資料值從該複數個暫存器儲存至記憶體的一儲存指令。
在一個實例實施方案中,該排序指示係從經編碼成該排序受限制存取指令之識別該排序受限制存取指令待用以執行一堆疊類型存取操作或待用以執行一非堆疊類型存取操作的資訊導出。此可在指令內明確地識別,例如,藉由識別排序受限制存取指令正使用堆疊指標以識別所需的記憶體位址,或替代地,排序受限制存取指令正用以執行堆疊類型存取操作的事實可從指令內的其他資訊推斷,例如,其中在特定定址模式經保留以在執行堆疊類型存取操作時使用。例如,在一個特定實施方案中,預遞減定址模式可經保留以在執行堆疊類型儲存操作時使用,且因此排序指示可基於排序受限制存取指令是否正在執行儲存操作及該儲存操作是否係堆疊類型操作而判定。若係該情形,則可判定一種形式的排序指示,然而若不係該情形,則可判定相反的排序指示。
雖然上述技術可用以允許排序受限制存取指令用以存取任何數目的多個資料值,但在一個特定實例實施方案中,該排序受限制存取指令經配置以存取一對資料值,且提供足以識別與該對資料值中的各資料值關聯的一暫存器的暫存器指示資訊。具體而言,已發現存在將二個暫存器的內容儲存至記憶體中的(一般係連續的)位址或將資料從記憶體中的(一般係連續的)位址載入至一對暫存器係所欲的許多情況,且本文所定義的排序受限制存取指令的提供藉由執行單一指令而非必須執行早先提及的單一存取排序受限制存取指令的二個實例而使此能夠達成。
在該排序受限制存取指令待用以存取一對資料值的情況中,該記憶體位址資訊可經配置以提供用以判定與該對資料值中的該等資料值的一者關聯的一個記憶體位址的一記憶體位址指示,且接著與該對中的該等資料值的另一者關聯的一另外記憶體位址可從該一個記憶體位址導出。例如,一旦該一個記憶體位址已判定,該另外記憶體位址可基於該位址模式資訊推斷。
用於存取多個資料值的排序受限制存取指令可採取多種形式。在一個實例實施方案中,該排序受限制存取指令係用以將多個資料值儲存至記憶體的一儲存釋放指令,且該指令解碼器電路系統經配置以在解碼該儲存釋放指令時控制該處理電路系統以確保:
- 在該儲存釋放指令經觀察為受執行之前經觀察為已完成執行的任何存取指令將係在一程式順序上出現在該儲存釋放指令之前的一存取指令;及
- 在一儲存操作序列中的一給定儲存操作之後的任何後續儲存操作的執行可觀察之前,在該儲存釋放指令的執行期間用以將該多個資料值儲存至記憶體的該儲存操作序列中的該給定儲存操作可觀察為已完成。
因此,在出現在程式中的其他存取指令方面且在經執行以執行儲存釋放指令的個別儲存操作方面皆符合儲存釋放行為的要求。
作為另一實例,該排序受限制存取指令可係用以將多個資料值載入至該組暫存器中的關聯暫存器中的一載入取得指令,且該指令解碼器電路系統可經配置以在解碼該載入取得指令時控制該處理電路系統以確保:
- 在一載入操作序列中的一給定載入操作之後的任何後續載入操作的執行可觀察之前,在該載入取得指令的執行期間用以將該多個資料值載入至該等關聯暫存器的該載入操作序列中的該給定載入操作可觀察為已完成;及
- 在一程式順序上出現在該載入取得指令之後的任何存取指令將僅在該載入取得指令的執行已完成之後經觀察為受執行。
因此,在出現在程式中的其他存取指令方面且在經執行以執行載入取得指令的個別載入操作方面皆符合載入取得行為的要求。
存在指令解碼器電路系統可以其處理排序受限制存取指令以適當地控制處理電路系統執行指定存取操作,同時符合所需可觀察性條件的各種方式。在一個特定實例實施方案中,該指令解碼器電路系統經配置以將用以存取多個資料值的該排序受限制存取指令分解成一單一存取排序受限制存取指令序列。其中各單一存取排序受限制存取指令經配置以存取該多個資料值中的該等資料值的一者。根據此一方法,該指令解碼器電路系統經配置以取決於該排序指示判定以其控制該處理電路系統執行該序列中的各單一存取排序受限制存取指令的該順序。因此,其可將排序受限制存取指令分解成一系列單一存取排序受限制存取指令,且接著取決於從排序受限制存取指令判定的排序指示,導致處理電路系統以預設順序或以相反順序執行該序列。
現將參照圖式討論特定的實例實施方案。
圖1係根據一個實例實施方案之合併設備之系統的方塊圖。該設備在圖1的實例中可採取處理器核心10或處理器核心20任一者的形式,且此等處理器核心兩者均可以相同方式建構從圖1中將係顯而易見的。針對以下討論的目的,將假設處理器核心10正在執行包括早先討論之用以存取多個資料值的排序受限制存取指令的一或多個實例的指令序列,且處理器核心20係該等存取的觀察實體。然而,將理解亦可係處理器核心20正在執行此類指令,且處理器核心10係觀察器的情形,且實際上二種情況皆可在相同系統內發生。進一步地,雖然為簡明起見只顯示二個處理器核心10、20,將理解亦可將若干個額外處理元件提供在該系統中,該等處理元件可操作以執行此類指令,及/或係由其他處理元件所產生之存取的觀察器。
處理器核心10、20耦接至其等經由其共用對記憶體45之存取的互連30。互連可採取各種形式,但在所示的實例中係同調互連,該同調互連可包括可為處理器核心10、20二者存取的系統快取記憶體35及確保處理器核心之各者同調地看到儲存於系統之快取記憶體內的資料的關聯快取同調電路系統40。如圖1所示,除了系統快取記憶體35外,可存在一或多個其他層級的快取記憶體,例如可為各別處理器核心10、20存取的一或多層級區域快取記憶體15、25。如所屬技術領域中具有通常知識者將瞭解的,快取同調電路系統40可採用若干種已知快取同調方案的任何者,以回應於發布存取該資料的請求而確保各處理器核心10、20將存取快取在系統內的資料的最新版本。
如圖1所示,處理器核心10可包括用於解碼從記憶體或快取記憶體的一者提取的指令的指令解碼器50,以產生接著用以控制處理電路系統52執行由該等指令所需求之操作的控制信號。在此類操作的執行期間,處理電路系統52具有對可將待使用為操作之輸入的資料值儲存於其中且可將由該等操作產生的輸出結果儲存於其中的一組暫存器54的存取。
由處理器核心10執行之指令的一些可導致存取操作由處理電路系統52執行以將資料值從記憶體/快取記憶體載入至暫存器54中(在此情況下,存取操作係載入操作)及/或將資料值從暫存器54儲存至記憶體/快取記憶體(在此情況下,存取操作係儲存操作)。當儲存操作待執行時,其等可暫時緩衝在儲存緩衝器56內,且處理器核心10可能能夠對保持在儲存緩衝器內的儲存操作執行一些重排序以尋求改善效能。亦如圖1所示,在一些情況下,可提供載入緩衝器58以暫時緩衝待由處理器核心執行的載入操作。在亂序處理器中,在位址計算時間可在不同的載入指令中變化的情況中重排序某些載入操作可係可行的,且在此類情形中,載入緩衝器58的存在可係有用的。
在圖1的實例中,假設處理器核心20以與處理器核心10相同的方式建構,且因此包括指令解碼器60、處理電路系統62、一組暫存器64、儲存緩衝器66、及可選地載入緩衝器68。
除了早先提及之用以確保處理器之各者同調地看到可在系統內快取之資料的快取同調機制外,該系統一般亦將利用關於記憶體的記憶體同調模型,以確保讀取、寫入、或更新記憶體的結果將係可預測的。一些系統可採用相對弱的一致性模型以在對記憶體的存取可以其藉由系統內的特定處理元件重排序的方式上允許彈性,但在一些情況下,可能係所欲的是仿真比系統所固有地支援者更強的一致性模型的行為。如早先提及的,尋求達成此的一種方式係通過使用載入取得及儲存釋放指令而非標準的載入及儲存指令,且尤其在處理元件執行載入取得指令或儲存釋放指令時,確保某些可觀察性限制使得即使一些區域重排序係由給定處理元件所執行,系統中之觀察由給定處理元件執行之存取的另一處理元件將該等存取觀察為已以特定程式順序發生。
根據本文描述的技術,為了改善碼密度,提供能夠指定待存取的多個資料值的新形式的載入取得及儲存釋放指令(在本文中係指用於存取多個資料值的排序受限制存取指令),且尤其在其執行時,將導致執行一系列相關於多個暫存器的存取操作,各存取操作導致來自多個資料值中的一資料值在關聯暫存器與關聯記憶體位址之間移動(在儲存釋放指令的事件中從暫存器至記憶體,且在載入取得指令的事件中從記憶體至暫存器)。根據本文討論的技術,排序指示係從排序受限制存取指令導出且用以判定在執行該系列存取操作時待以其存取該多個資料值的順序。藉由使用此一排序指示,可能確保個別存取在所需順序上係外部可觀察的,且具體而言其將符合而使多個單一存取排序受限制存取指令(亦即,一系列各存取一個資料值的傳統載入取得或儲存釋放指令)經執行的可觀察性要求,而非用以存取多個資料值之新的排序受限制存取指令。
圖2A係根據一個實例實施方案之示意性地繪示可提供在用以存取多個資料值之該類型的排序受限制存取指令100內的欄位的圖。第一欄位105係用以指定指令類型,且因此可例如識別指令係載入或儲存指令。其亦可能可選地指定額外資訊,諸如指令係在記憶體中的堆疊上操作或替代地在記憶體的非堆疊區域上操作。
另外一欄位110提供定址模式,並與記憶體位址欄位125中的記憶體位址資訊結合使用以判定與待存取之資料值之各者關聯的記憶體位址。欄位125中的記憶體位址資訊可例如給出充分資訊,以使位址的一者能夠判定,例如,藉由提供用以識別堆疊指標的堆疊指標指示,或藉由識別其內容可用以判定記憶體位址的暫存器。在此後一情形中,可係例如將該經識別暫存器中的資料值使用為加至某個基址的偏移以判定記憶體位址的情形。
定址模式資訊接著可用以計算所需之其他位址的各者,且實際上,在一些情況中,亦可在從欄位125中的記憶體位址資訊計算第一記憶體位址時將其列入考量。定址模式可例如指示調整方向,諸如各後續位址將藉由遞增先前判定的位址或藉由遞減先前判定的位址而判定。該定址模式亦可在一些實施方案中提供調整量,以允許關於調整量待於計算各後續位址時產生的可組態性。
亦提供暫存器指示欄位120以儲存暫存器指示資訊。此資訊可用以判定待於執行排序受限制存取指令時存取的各暫存器的暫存器識別符。在一個實例實施方案中,各暫存器可在暫存器指示欄位120內明確地識別。然而,在一替代實施方案中,例如,在指令相關於一系列相鄰暫存器或以預定量分開的暫存器操作的情況中,可識別一個暫存器,且可推斷各額外暫存器。
如圖2A所示,根據此第一實例實施方案,將排序指示欄位115提供為明確欄位,可將排序指示資訊儲存於其中以識別執行排序受限制存取指令所需之存取操作之各者待以其執行的順序。由於其在確保符合個別存取操作之間的可觀察性要求的同時,實現用以存取多個資料值的排序受限制存取指令的使用,而非使用各在單一資料值上操作(亦即,在一個暫存器與記憶體中的位址之間的任一方向上移動資料)的標準排序受限制存取指令序列或置換該標準排序受限制存取指令序列,此提供大量彈性。
雖然在圖2A的實例中使用明確排序指示欄位,在一替代實例實施方案中,如圖2B所繪示的,可能不需要明確排序指示欄位,且替代地,從提供在該指令內的其他資訊導出排序指示可係可行的。具體而言,在圖2B的實例中,用以存取多個資料值的排序受限制存取指令130包括早先描述的欄位105、110、120、125,但不包括明確排序指示欄位115。替代地,在此替代實施方案中從指令中的其他資訊推斷排序指示可係可行的,且具體而言,在一個實例實施方案中,此係參考欄位105中的指令類型資訊及欄位110中的定址模式資訊二者而達成。
圖3係根據一個實例實施方案之繪示排序受限制存取指令可如何處理的流程圖。在步驟200,當判定已遭遇用於存取多個資料值的排序受限制存取指令時,接著在步驟205,判定將執行何種類型的指令,例如,指令係載入取得指令或儲存釋放指令。
在步驟210,判定排序指示,且如早先討論的,此可參考該指令內的明確欄位判定,或替代地可從其他資訊(例如,從定址模式及/或指令類型的指示)導出。
在步驟215,使用欄位125中的記憶體位址資訊及定址模式欄位110中的定址模式資訊判定各資料值的記憶體位址。額外地,在步驟220,使用暫存器指示欄位120中的資訊判定與各資料值關聯的暫存器。
一旦所有上述資訊皆已判定,則在步驟225,可限制處理電路系統以由排序指示所指示的順序執行對各資料值的存取。藉由此一方法,可能不僅在由處理器核心執行的其他存取指令(如已知的載入取得及儲存釋放指令所需的)方面,且亦在實施排序受限制存取指令所需的個別存取操作方面符合可觀察性要求。
例如,當所執行的排序受限制存取指令係用以將多個資料值儲存至記憶體的儲存釋放指令時,指令解碼器50可經配置,在解碼該儲存釋放指令時,控制處理電路系統52以確保:
- 在該儲存釋放指令經觀察為受執行之前經觀察為已完成執行的任何存取指令將係在一程式順序上出現在該儲存釋放指令之前的一存取指令;及
- 在該儲存操作序列中的一給定儲存操作之後的任何後續儲存操作的執行可觀察之前,在該儲存釋放指令的執行期間用以將該多個資料值儲存至記憶體的該儲存操作序列中的該給定儲存操作可觀察為已完成。
類似地,當排序受限制存取指令係用以將多個資料值載入至該組暫存器中的關聯暫存器中的載入取得指令時,指令解碼器50可經配置,在解碼載入取得指令時,控制處理電路系統52以確保:
- 在一載入操作序列中的一給定載入操作之後的任何後續載入操作的執行可觀察之前,在該載入取得指令的執行期間用以將該多個資料值載入至該等關聯暫存器的該載入操作序列中的該給定載入操作可觀察為已完成;及
- 在一程式順序上出現在該載入取得指令之後的任何存取指令將僅在該載入取得指令的執行已完成之後經觀察為受執行。
雖然步驟205、210、215、及220在圖3中循序地顯示,將理解此等步驟的一或多者可取決於實施方案平行地執行。額外地,哪些步驟由解碼器執行及哪些步驟由處理電路系統執行亦可取決於實施方案而變化。在一個特定實例實施方案中,解碼器可經配置以判定待使用哪些暫存器運算元及判定定址模式。處理電路系統接著可經配置以實施定址模式以在強制執行從排序指示判定的所需排序的同時執行所需的存取操作。
圖4A及圖4B係繪示如何在執行上文描述的排序受限制存取指令所需的個別存取操作之間符合可觀察性要求的圖。在二種情形中,假設排序受限制存取指令導致存取一對資料值,其中該等資料值在載入取得指令的事件中從記憶體移動至一對暫存器中,或其中該等資料值在儲存釋放指令的事件中從一對暫存器移動至記憶體。存取該對資料值中的各資料值所需的二個存取操作在圖4A及圖4B中稱為存取操作1及2。
如圖4A所示,當各存取操作可原子地執行時,則將處理電路系統限制成處理該二個存取操作,使得若系統內的任何觀察實體可觀察到存取操作2之結果的任何部分,保證該觀察實體亦將能夠觀察存取操作1之結果的所有部分。換言之,此亦意謂著若觀察器無法觀察到全部的存取操作1,則其將不能夠觀察到存取操作2的任何部分。
圖4B繪示需要將存取操作1拆解成多個單獨存取的情境,在此實例中,具體而言,第一存取及第二存取。存在此為何可發生的各種原因,但在圖4B的實例中,假設待存取的所需資料值橫跨二條快取線散布,且因此需要對該等快取線之各者的分開存取。此意謂著存取操作1的執行本身不係原子的。儘管如此,即使在該情境中,將處理電路系統限制成確保符合存取操作1與存取操作2之間的上述可觀察性限制。
圖5係繪示用以從存在於排序受限制存取指令內的其他資訊判定排序指示的特定實例實施方案的流程圖。在步驟300,假設已遭遇用以存取多個資料值的排序受限制存取指令,且判定該指令是否係儲存釋放指令。在此實例實施方案中,若指令不係儲存釋放指令,則程序直接進行至判定排序指示以識別應先存取最低記憶體位址的步驟315。
然而,若在步驟300,判定指令係儲存釋放指令,則在步驟305,判定指令是否正在執行堆疊類型操作。此可以各種方式判定。例如,可明確地在指令內識別,例如,藉由識別儲存釋放指令正使用堆疊指標識別所需記憶體位址。替代地,從提供在指令內的其他資訊推斷此資訊可係可行的。例如,若特定定址模式經保留以在執行堆疊類型儲存操作時使用,則在步驟305,該定址模式的存在可用以判定該指令意圖執行堆疊類型操作。
若指令經判定不用以執行堆疊類型操作,則程序再次繼續進行至判定排序指示以識別應先存取最低記憶體位址的步驟315。
若在步驟305判定指令係用於執行堆疊類型操作,則在一個實例實施方案中,程序可直接繼續進行至判定排序指示以識別應先存取最高記憶體位址的步驟320。然而,如虛線方塊310所指示的,在可使用多於一個的定址模式執行堆疊類型操作的實施方案中,接著在步驟310,可首先判定定址模式是否係預遞減定址模式。若係否,程序可繼續進行至判定排序指示以識別待先存取最低記憶體位址的步驟315,但若定址模式係預遞減的,則程序繼續進行至判定排序指示以識別應先存取最高記憶體位址的步驟320。
藉由使用本文描述的技術,可能藉由允許使用單一指令係先前需要多個單獨指令而顯著降低碼密度。例如,考慮現有的儲存釋放指令,則先前可能已要求多個儲存釋放指令,諸如以下的指令對:
STLR X1 [SP, -8]!
STLR X0 [SP, -8]!
第一儲存釋放指令的執行將導致暫存器X1中的資料儲存至記憶體中之堆疊中之藉由以八個位元組預遞減所提供的堆疊指標值以產生新的堆疊指標值而判定的位置。第二儲存釋放指令的執行接著將導致暫存器X0中的資料儲存至記憶體中之堆疊中之藉由再次以八個位元組預遞減通過第一STLR指令的執行產生的堆疊指標值以產生經更新堆疊指標值而判定的位置。
根據本文描述的技術,此等二個儲存釋放指令可由該形式的單一新指令置換:
STLP X0, X1, [SP, -16]!
具體而言,「P」指示儲存釋放指令將在一對暫存器(亦即,經識別暫存器X0及X1)上執行,且從指令導出的排序指示識別應先存取最高記憶體位址(在一個實施例中,此可從係儲存釋放指令的指令與正使用的預遞減定址模式的結合判定)。在此情形中,預遞減量係16個位元組,且因此堆疊指標以16個位元組預遞減,以使來自暫存器X0之資料的前八個位元組能夠儲存至該堆疊,之後儲存來自暫存器X1之資料的第二個八個位元組。然而,為了符合所需的可觀察性排序,將處理該等儲存,使得X1的儲存經排序在X0的儲存之前。可執行二個單獨的儲存操作以實施此指令的執行,且將使處理電路系統限制成確保符合早先提及之在個別儲存操作之間的可觀察性要求。
雖然上文係排序指示將指示最高記憶體位址優先之情況的實例,但以下實例係新形式的儲存釋放指令可經配置以指定指示應先存取最低記憶體位址之排序指示的情況。具體而言,以下二個標準儲存釋放指令:
STLR X0, [X2]
STLR X1, [X2, 8]
可由該形式的單一新儲存釋放指令所置換:
STLP X0, X1, [X2]
在此實例中,定址模式可識別以8個位元組對該位址的後遞增改變,其中第一儲存存取操作係用以將暫存器X0中的資料儲存至從暫存器X2的內容判定的記憶體位址,且第二儲存存取操作係用以將暫存器X1中的資料儲存至藉由以8個位元組遞增針對第一存取操作判定的該位址而判定的記憶體位址。如同早先的實例,排序指示在一個實施例中可從定址模式導出,且可指示存取應先對最低記憶體位址執行。如同早先的實例,當執行此新形式的儲存釋放指令時,將使處理電路系統限制成確保符合早先提及之在個別儲存操作之間的可觀察性要求。
存在指令解碼器50可以其處理上述類型的排序受限制存取指令以適當地控制處理電路系統執行指定存取操作,同時符合所需可觀察性條件的若干種方式。在一個特定實例實施方案中,如圖6所示,在步驟400,解碼器可經配置以將用以存取多個資料值的排序受限制存取指令分解成單一存取排序受限制存取指令序列,該等單一存取排序受限制存取指令之各者係用以存取該等資料值的一者。因此,在此一實施方案中,可將用以存取多個資料值的新形式的載入取得或儲存釋放指令分解成一系列現有載入取得或儲存釋放指令,該等現有載入取得或儲存釋放指令之各者執行相關於與單一暫存器關聯之該等資料值的存取。
接著,在步驟405,排序指示可使用早先討論之技術的任一者判定。基於所判定的排序指示,接著在步驟410,解碼器可判定以其控制處理電路系統執行單一存取排序受限制存取指令之各者的順序。因此,在一個實例實施方案中,該系列可以最初判定的經分解順序執行,例如,若排序指示指示應先存取最低記憶體位址,但若替代地排序指示指示應先存取最高記憶體位址,解碼器可以反轉以其執行單一存取排序受限制存取指令的順序。此提供用於實施此等新載入取得及儲存釋放指令之處理的特別簡單且有效率的機制。
圖7繪示可使用的模擬器實施方案。雖然先前所述之實例以用於操作支援所關注技術的特定處理硬體之設備及方法來實施本發明,但亦可能根據本文所述之實例提供一指令執行環境,其係透過使用電腦程式實施。此類電腦程式常稱為模擬器,因為其等提供硬體架構之基於軟體的實施方案。模擬器電腦程式的種類包括仿真器、虛擬機、模型、及二進制轉譯器(包括動態二進制轉譯器)。一般而言,模擬器實施方案可在可選地運行主機作業系統510、支援模擬器程式505的主機處理器515上運行。在一些配置中,在硬體與所提供的指令執行環境及/或相同的主機處理器上提供的多個相異指令執行環境之間可有多層模擬。歷史上,已需要強大的處理器來提供模擬器實施方案,其以合理速度執行,但此種方法在某些情況下可係有正當理由的,諸如當因為相容性或再使用原因此需要執行另一處理器原生的碼時。例如,模擬器實施方案可提供具有不為主機處理器硬體所支援之額外功能性的指令執行環境,或提供一般與不同的硬體架構相關聯的指令執行環境。模擬的綜述係於「Some Efficient Architecture Simulation Techniques」(Robert Bedichek, Winter 1990 USENIX Conference,第53至63頁)中給出。
在先前已參照特定硬體架構或特徵描述實施的情況下,在模擬實施方案中,等效功能性可藉由合適的軟體架構或特徵提供。例如,可在模擬實施方案中將特定電路系統提供作為電腦程式邏輯。類似地,記憶體硬體(諸如暫存器或快取)可在模擬實施方案中提供作為軟體資料結構。再者,可將用於存取硬體設備中之記憶體的實體位址空間仿真為藉由模擬器505映射至由主機作業系統510使用的虛擬位址空間的模擬位址空間。在先前描述的實例中提及的硬體元件的一或多者存在於主機硬體(例如,主機處理器515)上的配置中,一些模擬實施方案可(在適當處)利用主機硬體。
模擬器程式505可儲存在電腦可讀儲存媒體(其可係非暫時性媒體)上,並提供虛擬硬體介面(指令執行環境)給目標碼500(其可包括應用程式、作業系統、及超管理器),該硬體介面與藉由模擬器程式505模型化之硬體架構的硬體介面相同。因此,目標碼500的程式指令可在指令執行環境內使用模擬器程式505執行,使得實際上不具有上文討論之設備的硬體特徵的主機電腦515可仿真該等特徵。模擬器程式可包括處理程式邏輯520以仿真處理電路系統52、62的行為、指令解碼程式邏輯525以仿真指令解碼器50、60的行為、及暫存器仿真程式邏輯522以維持資料結構以仿真該組暫存器54、64。因此,本文描述之用於處理排序受限制存取操作的技術在圖7的實例中可藉由模擬器程式505以軟體執行。
將從以上描述理解本文描述的技術提供用於處理排序受限制存取操作(諸如載入取得及儲存釋放操作)、藉由實現指定導致存取與多個暫存器關聯的資料值的個別載入取得或儲存釋放指令而促成碼密度改善且因此促成效能改善,同時確保符合實施載入取得或儲存釋放指令所需的個別存取操作之間的所需求的可觀察性行為的特別有效率機制。
在本申請案中,用語「經組態以...(configured to...)」係用以意指一設備的一元件具有能夠實行該經定義作業的一組態。在此上下文中,「組態(configuration)」意指硬體或軟體之互連的配置或方式。例如,該設備可具有專用硬體,其提供經定義的作業,或者一處理器或其他處理裝置可經程式化以執行該功能。「經組態以(configured to)」並不意味著設備元件需要以任何方式改變以提供所定義的作業。
雖然本文中已參照附圖詳細描述本發明的說明性實施例,但應瞭解本發明不限於該等精確實施例,且所屬技術領域中具有通常知識者可於其中實行各種變化、添加、及修改而不脫離如隨附申請專利範圍所定義的本發明的範圍及精神。例如,可用獨立項的特徵在不脫離本發明之範疇的情況下作出與附屬項之特徵的各種組合。
10:處理器核心
15:區域快取記憶體
20:處理器核心
25:區域快取記憶體
30:互連
35:系統快取記憶體
40:快取同調電路系統
45:記憶體
50:指令解碼器
52:處理電路系統
54:暫存器
56:儲存緩衝器
58:載入緩衝器
60:指令解碼器
62:處理電路系統
64:暫存器
66:儲存緩衝器
68:載入緩衝器
100:排序受限制存取指令
105:第一欄位;欄位
110:欄位;定址模式欄位
115:排序指示欄位
120:暫存器指示欄位;欄位
125:記憶體位址欄位;欄位
130:排序受限制存取指令
200:步驟
205:步驟
210:步驟
215:步驟
220:步驟
225:步驟
300:步驟
305:步驟
310:步驟;虛線方塊
315:步驟
320:步驟
400:步驟
405:步驟
410:步驟
500:目標碼
505:模擬器程式;模擬器
510:主機作業系統
515:主機處理器;主機電腦
520:處理程式邏輯
522:暫存器仿真程式邏輯
525:指令解碼程式邏輯
本技術將僅藉由圖示、參照如隨附圖式中所繪示之其實例來進一步地描述,其中:
[圖1]係根據一個實例實施方案之合併設備之系統的方塊圖;
[圖2A]及[圖2B]係根據一個實例實施方案之示意性地繪示提供在用以存取多個資料值之排序受限制存取指令內的欄位的圖;
[圖3]係根據一個實例實施方案之繪示如何處理用以存取多個資料值的排序受限制存取指令的流程圖;
[圖4A]及[圖4B]係根據一個實例實施方案之示意性地繪示如何在處理用以存取多個資料值的排序受限制存取指令時符合可觀察性要求的圖;
[圖5]係根據一個實例實施方案之繪示如何導出排序指示的流程圖;
[圖6]係繪示解碼器電路系統將用以存取多個資料值的排序受限制存取指令分解成單一存取排序受限制存取指令序列的一個實例實施方案的流程圖;及
[圖7]繪示可使用的實例模擬器實施方案。
10:處理器核心
15:區域快取記憶體
20:處理器核心
25:區域快取記憶體
30:互連
35:系統快取記憶體
40:快取同調電路系統
45:記憶體
50:指令解碼器
52:處理電路系統
54:暫存器
56:儲存緩衝器
58:載入緩衝器
60:指令解碼器
62:處理電路系統
64:暫存器
66:儲存緩衝器
68:載入緩衝器
Claims (17)
- 一種設備,其包含: 處理電路系統,以執行操作; 指令解碼器電路系統,以解碼指令,以控制該處理電路系統執行由該等指令指定的該等操作;及 一組暫存器,以保持用於由該處理電路系統存取的資料值; 其中該指令解碼器電路系統回應於用以存取多個資料值及提供暫存器指示資訊及記憶體位址資訊的一排序受限制存取指令而控制該處理電路系統執行一存取操作序列,其中各存取操作導致來自該多個資料值中的一資料值在從該暫存器指示資訊判定的一關聯暫存器與從該記憶體位址資訊判定的一關聯記憶體位址之間移動;且 其中一排序指示係從該排序受限制存取指令導出且用以判定在執行該存取操作序列時待以其存取該多個資料值的一順序。
- 如請求項1之設備,其中該排序指示係用以識別待以其存取與該多個資料值關聯的該等記憶體位址的一順序,以從而判定待以其存取該多個資料值的該順序。
- 如請求項1之設備,其中該指令解碼器電路系統經配置以控制該處理電路系統以對耦接至該設備且能夠觀察由該處理電路系統執行的該等存取操作的觀察電路系統確保在該存取操作序列中的一給定存取操作之後的任何後續存取操作的執行可由該觀察電路系統觀察之前,該存取操作序列中的該給定存取操作可由該觀察電路系統觀察為已完成。
- 如請求項3之設備,其中: 各資料值包含複數個資料元素; 當該給定存取操作的執行需要執行多個存取以存取該關聯資料值的該複數個資料元素時,該處理電路系統經配置以確保在該存取操作序列中的該給定存取操作之後的任何後續存取操作的執行可由該觀察電路系統觀察之前,形成該給定存取操作的該多個存取全部可由該觀察電路系統觀察為已完成。
- 如請求項1之設備,其中該排序指示係從經編碼成該排序受限制存取指令的其他資訊導出。
- 如請求項5之設備,其中該排序受限制存取指令指定用以從該記憶體位址資訊判定該多個資料值的該等記憶體位址的一定址模式,且該排序指示取決於該定址模式導出。
- 如請求項6之設備,其中該記憶體位址資訊經配置以提供用以判定一個記憶體位址的一記憶體位址指示,該定址模式識別至少在各其他記憶體位址的判定期間使用的一調整方向,且該排序指示取決於該調整方向判定。
- 如請求項5之設備,其中該排序指示取決於該排序受限制存取指令的一指令類型導出。
- 如請求項8之設備,其中該指令類型經配置以識別該排序受限制存取指令係尋求將該多個資料值從記憶體載入至複數個該等暫存器中的一載入指令,或係尋求將該多個資料值從該複數個暫存器儲存至記憶體的一儲存指令。
- 如請求項5之設備,其中該排序指示係從經編碼成該排序受限制存取指令之識別該排序受限制存取指令待用以執行一堆疊類型存取操作或待用以執行一非堆疊類型存取操作的資訊導出。
- 如請求項1之設備,其中該排序受限制存取指令經配置以存取一對資料值,且提供足以識別與該對資料值中的各資料值關聯的一暫存器的暫存器指示資訊。
- 如請求項11之設備,其中該記憶體位址資訊經配置以提供用以判定與該對資料值中的該等資料值的一者關聯的一個記憶體位址的一記憶體位址指示,且與該對中的該等資料值的另一者關聯的一另外記憶體位址係從該一個記憶體位址導出。
- 如請求項1之設備,其中該排序受限制存取指令係用以將多個資料值儲存至記憶體的一儲存釋放指令,且該指令解碼器電路系統經配置以在解碼該儲存釋放指令時控制該處理電路系統以確保: - 在該儲存釋放指令經觀察為受執行之前經觀察為已完成執行的任何存取指令將係在一程式順序上出現在該儲存釋放指令之前的一存取指令;及 - 在一儲存操作序列中的一給定儲存操作之後的任何後續儲存操作的執行可觀察之前,在該儲存釋放指令的執行期間用以將該多個資料值儲存至記憶體的該儲存操作序列中的該給定儲存操作可觀察為已完成。
- 如請求項1之設備,其中該排序受限制存取指令係用以將多個資料值載入至該組暫存器中的關聯暫存器中的一載入取得指令,且該指令解碼器電路系統經配置以在解碼該載入取得指令時控制該處理電路系統以確保: - 在一載入操作序列中的一給定載入操作之後的任何後續載入操作的執行可觀察之前,在該載入取得指令的執行期間用以將該多個資料值載入至該等關聯暫存器的該載入操作序列中的該給定載入操作可觀察為已完成;及 - 在一程式順序上出現在該載入取得指令之後的任何存取指令將僅在該載入取得指令的執行已完成之後經觀察為受執行。
- 如請求項1之設備,其中: 該指令解碼器電路系統經配置以將用以存取多個資料值的該排序受限制存取指令分解成一單一存取排序受限制存取指令序列,其中各單一存取排序受限制存取指令經配置以存取該多個資料值中的該等資料值的一者;且 該指令解碼器電路系統經配置以取決於該排序指示判定以其控制該處理電路系統執行該序列中的各單一存取排序受限制存取指令的該順序。
- 一種在具有處理電路系統以執行操作的一設備中處理排序受限制存取操作的方法,該方法包含: 利用指令解碼器電路系統解碼指令,以控制該處理電路系統執行由該等指令指定的該等操作; 利用一組暫存器保持用於由該處理電路系統存取的資料值; 回應於用以存取多個資料值及提供暫存器指示資訊及記憶體位址資訊的一排序受限制存取指令而導致該指令解碼器電路系統控制該處理電路系統執行一存取操作序列,其中各存取操作導致來自該多個資料值中的一資料值在從該暫存器指示資訊判定的一關聯暫存器與從該記憶體位址資訊判定的一關聯記憶體位址之間移動;及 回應於從該排序受限制存取指令導出的一排序指示而判定在執行該存取操作序列時待以其存取該多個資料值的一順序。
- 一種電腦程式,其用於控制一主機資料處理設備以提供一指令執行環境,該電腦程式包含: 處理程式邏輯,以執行操作; 指令解碼程式邏輯,以解碼指令,以控制該處理程式邏輯執行由該等指令指定的該等操作;及 暫存器仿真程式邏輯,以仿真一組暫存器以保持用於由該處理程式邏輯存取的資料值; 其中該指令解碼程式邏輯回應於用以存取多個資料值及提供暫存器指示資訊及記憶體位址資訊的一排序受限制存取指令而控制該處理程式邏輯執行一存取操作序列,其中各存取操作導致來自該多個資料值中的一資料值在從該暫存器指示資訊判定的一關聯暫存器與從該記憶體位址資訊判定的一關聯記憶體位址之間移動;且 其中一排序指示係從該排序受限制存取指令導出且用以判定在執行該存取操作序列時待以其存取該多個資料值的一順序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB2205110.6A GB2617551B (en) | 2022-04-07 | 2022-04-07 | Technique for handling ordering constrained access operations |
GB2205110.6 | 2022-04-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202340938A true TW202340938A (zh) | 2023-10-16 |
Family
ID=81653133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112112848A TW202340938A (zh) | 2022-04-07 | 2023-04-06 | 用於處理排序受限制存取操作之技術 |
Country Status (3)
Country | Link |
---|---|
GB (1) | GB2617551B (zh) |
TW (1) | TW202340938A (zh) |
WO (1) | WO2023194702A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5887183A (en) * | 1995-01-04 | 1999-03-23 | International Business Machines Corporation | Method and system in a data processing system for loading and storing vectors in a plurality of modes |
US6704833B2 (en) * | 2002-01-04 | 2004-03-09 | Hewlett-Packard Development Company, L.P. | Atomic transfer of a block of data |
US10379855B2 (en) * | 2016-09-30 | 2019-08-13 | Intel Corporation | Processors, methods, systems, and instructions to load multiple data elements to destination storage locations other than packed data registers |
-
2022
- 2022-04-07 GB GB2205110.6A patent/GB2617551B/en active Active
-
2023
- 2023-03-13 WO PCT/GB2023/050589 patent/WO2023194702A1/en unknown
- 2023-04-06 TW TW112112848A patent/TW202340938A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
GB202205110D0 (en) | 2022-05-25 |
GB2617551B (en) | 2024-08-28 |
WO2023194702A1 (en) | 2023-10-12 |
GB2617551A (en) | 2023-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI752951B (zh) | 用於對能力元資料執行操作的設備及方法 | |
US20150261535A1 (en) | Method and apparatus for low latency exchange of data between a processor and coprocessor | |
EP2786245B1 (en) | A data processing apparatus and method for performing register renaming without additional registers | |
JPS58151655A (ja) | 情報処理装置 | |
KR102590679B1 (ko) | 벡터 요소들 내부의 비트 값들의 시험 | |
CN107735775A (zh) | 用于使用与指针相关联的范围信息来执行指令的装置和方法 | |
US11119925B2 (en) | Apparatus and method for managing capability metadata | |
US20120042136A1 (en) | Alignment control | |
US11507386B2 (en) | Booting tiles of processing units | |
JP5318197B2 (ja) | ホストデータ処理装置内におけるデバイスエミュレーションのサポート | |
US8495261B2 (en) | Redispatching suspended tasks after completion of I/O operations absent I/O interrupts | |
US20070156386A1 (en) | Linearization of page based memory for increased performance in a software emulated central processing unit | |
TW202340938A (zh) | 用於處理排序受限制存取操作之技術 | |
US11914972B2 (en) | Element ordering handling in a ring buffer | |
JPH0192856A (ja) | アクセス及び欠陥論理信号を用いて主メモリユニットを保護する装置及び方法 | |
JPH06230963A (ja) | メモリアクセス制御装置 | |
KR102708907B1 (ko) | 외부 예외 핸들링 | |
JP2023500604A (ja) | スレッドを格納するためのシャドウラッチ構成レジスタファイル内のシャドウラッチ | |
TW202427202A (zh) | 用於執行轉譯表項目載入/儲存操作之設備、方法、及電腦程式 | |
KR20240107375A (ko) | 정렬되지 않은 데이터를 처리하는 프로세싱 디바이스 | |
TWI497294B (zh) | 用於增加虛擬記憶體效能之電腦可讀儲存媒體、設備及電腦實施方法 | |
JPH0337722A (ja) | 情報処理装置 | |
JPS59140567A (ja) | 情報処理装置 | |
JPS58215779A (ja) | デ−タ処理装置 | |
JPH03294947A (ja) | 仮想メモリシステム |