TWI791960B - 資料轉發的方法及裝置 - Google Patents
資料轉發的方法及裝置 Download PDFInfo
- Publication number
- TWI791960B TWI791960B TW109107920A TW109107920A TWI791960B TW I791960 B TWI791960 B TW I791960B TW 109107920 A TW109107920 A TW 109107920A TW 109107920 A TW109107920 A TW 109107920A TW I791960 B TWI791960 B TW I791960B
- Authority
- TW
- Taiwan
- Prior art keywords
- forwarding
- register
- registers
- processor
- data
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 42
- 230000003111 delayed effect Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 22
- 238000013461 design Methods 0.000 description 10
- 230000014509 gene expression Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static 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/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
-
- 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/3001—Arithmetic 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/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- 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/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- 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/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
-
- 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/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
- G06F9/3828—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage with global bypass, e.g. between pipelines, between clusters
-
- 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/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- General Factory Administration (AREA)
Abstract
描述了關於以減少的硬體複雜度解決資料危險的編譯程式分配的特殊暫存器的各種示例。處理器包括排列在指令集架構中的多個硬體元件。該處理器分配關於執行一指令的一個或多個轉發暫存器。該處理器也基於該指令執行算術操作,該指令的資料從該指令集架構的多個路輸入,以致利用該一個或多個轉發暫存器用於該指令集架構的該等路之間的資料轉發。
Description
本發明通常涉及電腦架構,以及更具體地,涉及減少硬體複雜性的解決資料危險(data hazard)的編譯程式分配的特殊暫存器。
除非在此另有指示,本節所描述的方法不是下文所列申請專利範圍的先前技術,以及不藉由包括於本節而被承認為先前技術。
在計算系統中,指令管線(instruction pipelining)是電腦架構中用於在單個處理器中實現指令級並行性(parallelism)的技術。進來的指令可以被拆分成一系列的順序步驟,由不同的功能單元來執行。在管線中,當指令嘗試在資料在暫存器檔(register file)中可用之前使用該資料時,可能會發生資料危險,以及當當前操作需要等待還未完成的早先操作的結果時,資料危險會導致管線暫停(pipeline stall)。因此,運算元(operand)轉發(或資料轉發)是用於避免或最小化管線停滯的技術。在現有設計中,硬體支援的轉發用於給定功能單元傾向於涉及具有許多MUX以及比較器的複雜多工器(multiplexor,MUX)設計,但是複雜MUX設計傾向於導致功率洩露(power leakage)。硬體需要執行許多先決條件,例如,檢查轉發結果是否已經被寫入管線,比較以及決定哪一運算元應當使用轉發結果,以及決定轉發結果來自於管線的哪一階段。在為極長指令(very long instruction word,VLIW)設計的架構中,多功能單元的轉發硬體支援是必要的。
在這種情況下,MUX設計更加複雜以及傾向於有更多功率洩露。此外,在VLIW處理器中,指令通常由編譯程式調度。在一些情況下,每一指令可以是32位元長度,其中3位元專用於轉發資訊。
後文的概述僅是說明性的以及不旨在以任何方式進行限制。即,後文的概述被提供來介紹本文所描述的新穎以及非顯而易見技術的概念、亮度、益處以及優勢。所選擇實施例被進一步在以下細節描述中進行描述。因此,後續概述不旨在識別所要求保護主題的基本特徵,也不旨在用於決定所要求保護主題的範圍。
根據本發明的所提出的方案與以減少的硬體複雜性解決資料危險的編譯程式分配的特殊暫存器。在所提出的方案下,資料轉發可以由相對於傳統設計具有較少硬體複雜性的編譯程式來支援。此外,所提出的方案利用特殊暫存器來從VLIW架構的不同路(插槽)遞送轉發資訊。
一方面,方法可以涉及一裝置的一處理器分配關於執行一指令的一個或多個轉發暫存器。該方法也涉及該處理器基於該指令執行算術操作,該指令的資料從指令集的不同路輸入,以致利用該一個或多個轉發暫存器用於該指令集的不同路之間的資料轉發。
另一方面,裝置可以包括一處理器。該處理器可以包括排列在一指令集架構中的硬體元件。該處理器可用於分配關於執行一指令的一個或多個轉發暫存器。該處理器還可以用於基於該指令執行算術操作,該指令的資料從該指令集架構的不同路輸入,以致利用該一個或多個轉發暫存器用於該指令集架構的不同路之間的資料轉發。
510:處理器
512:控制電路
514:暫存器庫
520:記憶體
522:編譯程式
524:指令
610~620:步驟
600:進程
附圖被包括來提供本發明的進一步理解以及被併入並構成本發明的一部分。圖示說明了本發明的實施例,以及與描述一起用於解釋本發明的原理。能理解,由於為了說明本發明的概念一些元件被示出與實際實施例不成比例,附圖不需要按比例繪製。
第1圖示出了可以用於實施根據本發明的所提出方案的示例性特殊暫存器分配。
第2圖示出了根據本發明實施例的示例情景。
第3A圖以及第3B圖示出了根據本發明實施例的示例情景。
第4A~第4K圖示出了根據本發明實施例的每一示例情景。
第5圖示出了根據本發明實施例的示例裝置。
第6圖示出了根據本發明實施例的示例進程的流程圖。
本文公開了所要求保護主題的具體實施例以及實施方式。然而,將能理解,所公開的實施例以及實施方式僅是所要求保護主題的說明,其可以以各種形式實施。然而,本發明可以以許多不同的形式實施以及不應當被解釋為限制於本文所給出的示例性實施例以及實施方式。相反,這些實施例以及實施方式被提供以致本發明的描述是透徹以及完整的並且將充分地傳達本發明的範圍到本領域習知技術者。在下文描述中,公知特徵以及技術的細節將被省略以避免不必要地混淆所呈現的實施例以及實施方式。
根據本發明的實施例涉及關於與以降低的硬體複雜度解決資料危險的編譯程式分配的特殊暫存器的各種技術、方法、方案與/或解決方案。根據本
發明,許多解決方法可以被獨立或聯合實施。即,雖然這些可能的解決方法可以在下文被分別描述,這些可能解決方案的兩個或多個可以在一個組合或另一個中實施。
在根據本發明的所提出的方案中,可以利用編譯程式分配的特殊暫存器來以減少的硬體設計複雜度解決資料危險。在所提出的方案下,轉發資訊可以通過特殊暫存器從VLIW架構的不同路(插槽(slot))遞送到硬體。有利地,所提出的方案可以在沒有使用額外編碼位元欄位的情況下,解決VLIW架構的不同路(slot)之間的資料危險。在所提出的方案下,當暫存器的值僅存在於管線的兩個階段時,不需要寫回到暫存器檔。有利地,所提出的方案可能導致較低的暫存器壓力,而在存取暫存器檔時沒有功率洩露。此外,所提出的方案可能減少硬體設計的複雜度,包括MUX設計的複雜度,以及可能不需要將運算元與轉發結果進行比較。此外,所提出的方案可以減少功率洩露。
第1圖示出了可以用來實施根據本發明的所提出方案的示例性特殊暫存器分配100。在根據本發明的所提出的方案下,在為了遞送轉發資訊的編譯時間期間,一個或多個特殊暫存器(本文可交換地被稱為“轉發暫存器”)可以由編譯程式進行分配。有利地,根據本發明的特殊暫存器的分配以及利用可以減少硬體設計複雜度以及解決資料危險的問題。
參考第1圖,在所示出的示例中,第一特殊暫存器可以被編碼或者以其他方式標記為“48”用於VLIW架構的第一路或插槽(如,路0)的第一轉發,以及其可存取性可以是“唯讀”。此外,第二特殊暫存器可以被編碼或者以其他方式標記為“49”用於VLIW架構的第二路或插槽(如,路1)的第一轉發,以及其可存取性可以是“唯讀”。此外,第三特殊暫存器可以被編碼或以其他方式被標記為“50”用於VLIW架構的第一路或插槽(如,路0)的第二轉發,以及其可存取性可以是“唯讀”。此外,第四特殊暫存器可以被編碼或以其他方式被標記為“51”用於VLIW
架構的第二路或插槽(如,路1)的第二轉發,以及其可存取性可以是“唯讀”。另外,第五特殊暫存器可以被編碼或以其他方式被標記為“6”用於延遲的轉發,以及其可存取性可以是“讀寫”。
第2圖示出了根據本發明實施例的示例情景200。在情景200中,第一特殊暫存器可以被編碼或以其他方式被標記為“fwd0”用於第一轉發,以及第二特殊暫存器可以被編碼或者以其他方式被標記為“fwd1”用於第二轉發。情景200可以涉及如加法、減法以及乘法的一些算術操作。
關於第2圖,在沒有特殊暫存器的分配以及利用的情況下,第一算術操作可以涉及將存儲在暫存器r1中的值與存儲在暫存器r2中的值相加來提供一結果,該值被存儲在暫存器r3中。另外,第二算術操作可以涉及從存儲在暫存器r5中的值減去存儲在暫存器r4中的值來提供一結果,該值被存儲在暫存器r6中。然後,第三算術操作可以涉及將存儲在暫存器r3中的值與存儲在暫存器r6中的值相乘來提供一結果,該值被存儲在暫存器r7中。
根據本發明,在特殊暫存器(如,fwd0以及fwd1)的分配以及利用的情況下,特殊暫存器fwd0可以被分配用於轉發第一算術操作(也就是存儲在暫存器r1與暫存器r2中的值相加)的值,以及特殊暫存器fwd1可以被分配用於轉發第二算術操作(也就是存儲在暫存器r4與r5的值相減)的值。因此,在不需要將第一算術操作的值或者第二算術操作的值寫入到下一階段的情況下,可以使用轉發的值執行該第三算術操作。
第3A圖示出了根據本發明實施例的示例情況300A。在情景300A中,第一特殊暫存器可以被編碼或者以其他方式被標記為“fwd0_0”用於第一路(如,路徑0)的第一轉發,第二特殊暫存器可以被編碼或者以其他方式標記為“fwd0_1”用於第二路(如,路1)的第一轉發,第三特殊暫存器可以被編碼或者以其他方式標記為“fwd1_0”用於第一路(如,路0)的第二轉發,以及第四特殊暫存器可以被
編碼或者以其他方式標記為“fwd1_1”用於第二路(如,路1)的第二轉發。情景300A可以涉及如加法、減法以及乘法的一些算術操作。
關於第3A圖,在沒有特殊暫存器的分配以及利用的情況下,路0中的第一算術操作可以涉及將存儲在暫存器r2中的值與存儲在暫存器r3中的值相加來提供一結果,該值被存儲在暫存器r4中。另外,路1中的第二算術操作可以涉及將存儲在暫存器r5的值與存儲在暫存器r6的值相乘來提供一結果,該值被存儲在暫存器r7中。然後,路0中的第三算術操作可以涉及從存儲在暫存器r5的值減去存儲在暫存器r4的值來提供一結果,該值被存儲在暫存器r6中。此外,路1中的第四算術操作可以涉及將存儲在暫存器r7中的值與存儲在暫存器r4中的值相乘來提供一結果,該值被存儲在暫存器r7中。此外,路0中的第五算術操作可以涉及從存儲在暫存器r4中的值減去存儲在暫存器r7中的值來提供一結果,該值被存儲在暫存器r1中。此外,路1中的第六算術操作可以涉及將存儲在暫存器r6中的值與存儲在暫存器r4中的值相乘來提供一結果,該值被存儲在暫存器r7中。
根據本發明,在特殊暫存器(如,fwd0_0、fwd0_1、fwd1_0以及fwd1_1)的分配以及利用的情況下,路0中的第一算術操作可以涉及將存儲在暫存器r2的值與存儲在暫存器r3的值相加來提供一結果,該值在其進入在管線的執行階段時被存儲在特殊暫存器fwd0_0中,然後在必要時進入管線的寫回階段(如,目標暫存器不是DefFwd暫存器的情況下)時被存儲在暫存器r4。另外,路1中的第二算術操作可以涉及將存儲在暫存器r5的值與存儲在暫存器r6的值相乘來提供一結果,該值在其進入在管線的執行階段時被存儲在特殊暫存器fwd0_1中,然後在必要時進入管線的寫回階段時被存儲在暫存器r7。然後,路0中的第三算術操作可以涉及從存儲在暫存器r5的值減去由特殊暫存器fwd0_0轉發的值來提供一結果,該值在其進入在管線的執行階段時被存儲在特殊暫存器fwd0_0中,然後在必要時進入管線的寫回階段(如,目標暫存器不是DefFwd暫存器的情況下)時被
存儲在暫存器r6。此外,路1中的第四算術操作可以涉及將由特殊暫存器fwd0_1轉發的值與由特殊暫存器fwd0_0轉發的值相乘來提供一結果,該值在其進入到管線的執行階段被存儲在特殊暫存器fwd0_1,然後在必要時進入管線的寫回階段時被存儲在暫存器r7。此外,路0的第五算術操作可以涉及從由特殊暫存器fwd1_0轉發的值減去由特殊暫存器fwd0_1轉發的值來提供一結果,該值被存儲在暫存器r1。此外,路1的第六算術操作可以涉及將由特殊暫存器fwd0_0轉發的值與由特殊暫存器fwd1_0轉發的值相乘來提供一結果,該值被存儲在暫存器r7中。
第3B圖示出了根據本發明實施例的示例情景300B。在情景300B中,第一特殊暫存器可以被編碼或以其他方式被標記為“fwd0_0”用於第一路(如,路0)的第一轉發,第二特殊暫存器可以被編碼或以其他方式被標記為“fwd0_1”用於第二路(如,路1)的第一轉發,第三特殊暫存器可以被編碼或以其他方式被標記為“fwd1_0”用於第一路(如,路0)的第二轉發,第一特殊暫存器可以被編碼或以其他方式被標記為“fwd1_1”用於第二路(如,路1)的第二轉發,以及第五特殊暫存器可以被編碼或以其他方式被標記為“DefFwd”用於消除寫入暫存器檔的需要。情景300B可以涉及如加法、減法以及乘法的一些算術操作。
關於第3B圖,在沒有特殊暫存器分配以及利用的情況下,路0的第一算術操作可以涉及將存儲在暫存器r2的值與存儲在暫存器r3的值相加來提供一結果,該值被存儲在暫存器r4中。另外,路1的第二算術操作可以涉及將存儲在暫存器r5的值與存儲在暫存器r6的值相乘來提供一結果,該值被存儲在暫存器r7中。然後,路0的第三算術操作可以涉及從存儲在暫存器r5的值減去存儲在暫存器r4的值來提供一結果,該值被存儲在暫存器r6中。此外,路1的第四算術操作可以涉及將存儲在暫存器r7的值與存儲在暫存器r4的值相乘來提供一結果,該值被存儲在暫存器r7中。此外,路0的第五算術操作可以涉及從存儲在暫存器r4的
值減去存儲在暫存器r7的值來提供一結果,該值被存儲在暫存器r1中。此外,路1的第六算術操作可以涉及將存儲在暫存器r6的值與存儲在暫存器r4的值相乘來提供一結果,該值被存儲在暫存器r7中。
根據本發明,在特殊暫存器(如,fwd0_0、fwd_0_1、fwd1_0、fwd1_1以及DefFwd)的分配以及利用的情況下,路0的第一算術操作可以涉及將存儲在暫存器r2的值與存儲在暫存器r3的值相加來提供一結果,該值在其進入管線的執行階段時被存儲在特殊暫存器fwd0_0,然後在必要時(在目標暫存器不是DefFwd暫存器的情況下)進入管線的寫回階段時被存儲在暫存器r4。另外,路1的第二算術操作可以涉及將存儲在暫存器r5的值與存儲在暫存器r6的值相乘來提供一結果,該值在其進入管線的執行階段時被存儲在特殊暫存器fwd0_1,然後在進入管線的寫回階段時被存儲在暫存器r7,因為其被標記為DefFwd暫存器。然後,路0的第三算術操作可以涉及從存儲在暫存器r5的值減去由特殊暫存器fwd0_0轉發的值來提供一結果,該值在其進入管線的執行階段時被存儲在特殊暫存器fwd0_0,然後在必要時(在目標暫存器不是DefFwd暫存器的情況下)進入管線的寫回階段時被存儲在暫存器r6。此外,路1的第四算術操作可以涉及將由特殊暫存器fwd0_1轉發的值與由特殊暫存器fwd0_0轉發的值相乘來提供一結果,該值在其進入管線的執行階段時被存儲在特殊暫存器fwd0_1,然後在進入管線的寫回階段時被存儲在暫存器r7,因為其被標記為DefFwd暫存器。此外,路0中的第五算術操作可以涉及從由特殊暫存器fwd1_0轉發的值減去由特殊暫存器fwd0_1的值來提供一結果,該值被存儲在暫存器r1中。此外,路1中的第六算術操作可以涉及將由特殊暫存器fwd0_0的值與由特殊暫存器fwd1_0的值相乘來提供一結果,該值被存儲在暫存器r7。
第4A~第4K圖分別示出了根據本發明實施例的示例情景400A、400B、400C、400D、400E、400F、400G、400H、400I、400J或400K。特別地,
每一情景400A、400B、400C、400D、400E、400F、400G、400H、400I、400J或400K描繪了執行情景300B中示出的算術操作的步驟。
在情景400A中,在路0的第一階段,存儲在暫存器r2(標記為“2”)的值以及存儲在暫存器r3(標記為“3”)的值被作為來自各自可變暫存器(每一被標記為“VREG”)的輸入資料用於加法的算術操作。此外,在路1的第一階段,存儲在暫存器r5(標記為“5”)中的值以及存儲在暫存器r6(標記為“6”)的值被作為來自各自可變暫存器(每一被標記為“VREG”)的輸入用於乘法的算術操作。
在情景400B中,存儲在暫存器r4(標記為“4”)的值被存儲在特殊暫存器fwd0_0用於轉發,以及存儲在暫存器r7(標記為“7”)的值被存儲在特殊暫存器fwd0_1用於轉發。
在情景400C中,存儲在特殊暫存器fwd0_0的值也被寫入暫存器檔(標記為“4”)用於寫回。
在情景400D中,在路0的第一階段,存儲在暫存器r5(標記為“5”)的值被作為來自可變暫存器(標記為“VREG”)的輸入資料用於減法的算術操作。另外,存儲在暫存器fwd0_0(標記為“4”)的值被轉發到路0的第二階段作為減法的算術操作的輸入資料。類似地,存儲在特殊暫存器fwd0_0(標記為4)以及同時暫存器fwd0_1(標記為“7”)的值被轉發到路1的第二階段作為乘法算術操作的輸入資料。
在情景400E中,存儲在特殊暫存器fwd0_0的值被存儲在特殊暫存器fwd1_0(標記為“4”),以及存儲在特殊暫存器fwd0_1(標記為“4”)的值被存儲在特殊暫存器fwd1_1(標記為“7”)中。
在情景400F中,存儲在暫存器r6(標記為“6”)的值被存儲在特殊暫存器fwd0_0用於轉發,以及存儲在暫存器r7(標記為“7”)的值被存儲在特殊暫存器fwd0_1用於轉發。
在情景400G中,存儲在特殊暫存器fwd0_0的值也被寫入暫存器檔(標記為“6”)用於寫回。
在情景400H中,在路0的第一階段,存儲在特殊暫存器fwd1_0(標記為“4”)的值被作為減法算術操作的輸入資料。另外,存儲在特殊暫存器fwd0_1(標記為“7”)的值被轉發到路0的第二階段作為減法演算法操作的輸入資料。類似地,在路1的第一階段,存儲在特殊暫存器fwd1_0(標記為“4”)的值被作為乘法算術操作的輸入資料。此外,存儲在特殊暫存器fwd0_0(標記為“6”)的值被轉發到路1的第二階段用作乘法算術操作的輸入資料。
在情景400I中,存儲在特殊暫存器fwd0_0以及fwd0_1的值被移除、刪除或以其他方式擦除。
在情景400J中,存儲在暫存器r1(標記為“1”)的值被存儲在特殊暫存器fwd0_0用於轉發,以及存儲在暫存器r7(標記為“7”)中的值被存儲在特殊暫存器fwd0_1用於轉發。
在情景400K中,存儲在特殊暫存器fwd0_0的值被系的如暫存器檔(標記為“1”)用於寫回,以及存儲在特殊暫存器fwd0_1的值也被寫入暫存器檔(標記為“7”)用於寫回。
第5圖示出了根據本發明實施例的示例裝置500。裝置500可以執行各種功能來實施本文所描述的與以減少的硬體複雜度解決資料危險的編譯程式分配的特殊暫存器有關的方案、技術、進程以及方法,包括關於以上第1圖、第2圖、第3A圖、第3B圖以及第4A~第4K圖描述的各種提出的設計、概念、方案、系統以及方法的各種方案,以及以下所描述的進程600。
裝置500可以是使用者設備(UE),例如可擕式或移動裝置、可穿戴裝置、無線通訊裝置或計算裝置。例如,裝置500可以在智慧手機、智慧手錶、個人數位助手、數碼相機或如平板電腦、臺式電腦或筆記型電腦的計算設備中實
施。裝置500還可以是機器型裝置的一部分,其可以是如固定或靜止裝置的物聯網(IoT)裝置、家用裝置、有線通信裝置或計算裝置。例如,裝置500可以在智慧恒溫器、智慧並行、智慧門鎖、無線麥克風或家用控制中心中實施。
在一些實施例中,裝置500可以以一個或多個積體電路(IC)晶片的形式實施,例如但不限於一個或多個單核處理器、一個或多個多核處理器或者一個或多個複雜指令集計算(CISC)處理器。例如,裝置500可以包括第5圖中所示的至少一些元件,如處理器510。裝置500還可以進一步包括部關於本發明所提出方案的一個或多個其他元件(如,功率管理電路,因此為了簡便,裝置500的這種元件沒有在第5圖中示出也沒有在下文描述。
一方面,處理器510可以以一個或多個單核處理器、一個或多個多核處理器或者一個或多個CISC處理器的形式實施。即,即使本文使用了單數術語“一處理器”來指處理器510,根據本發明,處理器510在一些實施例中可以包括多個處理器以及在其他實施例中可以包括單個處理器。另一方面,處理器510可以以具有電子元件的硬體(可選地,固件)的形式實施,包括,例如但不限於被配置以及用於實現根據本發明特定目的的一個或多個電晶體、一個或多個二極體、一個或多個電容器、一個或多個電阻、一個或多個電感器、一個或多個憶阻器(memristor)與/或一個或多個變容器(varactor)。換言之,在至少一些實施例中,處理器510是專門設計、安排和用於成執行特定任務的專用機器,包括關於根據本發明實施例的以減少的硬體複雜度解決資料危險的編譯程式分配的專用暫存器的任務。在一些實施例中,處理器510可以包括邏輯電路512以及一個或多個暫存器庫514。邏輯電路可以包括多個硬體元件,舉例而非限制的,在VLIW架構(如,第4A~第4K圖中示出的)中安排的功能單元、算數邏輯單位以及多工器。
在一些實施例中,裝置500還可以包括耦合到處理器510的記憶體520以及用於由處理器510存取並在其中存儲資料。例如,記憶體520可以存儲編譯
程式程式(如第5圖中“編譯程式522”所示)以及其中未編譯以及編譯的指令(如第5圖“指令524”所示)。記憶體520可以包括一種類型的隨機存取記憶體(RAM),例如動態RAM(DRAM)、靜態RAM(SRAM)、可控矽RAM(T-RAM)與/或0電容RAM(Z-RAM)。或者,記憶體可以包括一種類型的唯讀記憶體(RAM),例如遮蔽式ROM、可程式設計ROM(PROM)、可擦除可程式設計ROM(EPROM)與/或電可擦除可程式設計ROM(EEPROM)。或者,記憶體520可以包括一種類型的非易失性隨機存取記憶體(NVRAM),如閃速記憶體、固態記憶體、鐵電RAM(FeRAM)、磁阻RAM(MRAM)與/或相變記憶體。
在根據本發明的各種方案下,處理器510可以執行編譯程式522來執行一些操作。例如,處理器510可以分配關於執行指令的一個或多個轉發暫存器(如,在暫存器庫514中)。此外,處理器510可基於具有從指令集架構的多路輸入的資料的指令來執行算數運算,使得一個或一個以上轉發暫存器用於所述指令集架構的多個路之間的資料轉發。
在一些實施例中,在執行算術操作時,處理器510可以通過一個或多個轉發暫存器從該指令集架構的不同路遞送轉發資訊到該處理器的一個或多個硬體元件。
在一些實施例中,通過一個或多個轉發暫存器從指令集架構不同路遞送轉發資訊到處理器的一個或多個硬體元件可以解決指令集架構的不同路之間的資料危險。
在一些實施例中,通過一個或多個轉發暫存器從指令集架構不同路遞送轉發資訊到處理器的一個或多個硬體元件可以消除將運算元與轉發結果進行比較的必要。
在一些實施例中,在通過一個或多個轉發暫存器從指令集架構不同路遞送轉發資訊到處理器的一個或多個硬體元件時,處理器510可以在沒有額外
的編碼位元欄位的情況下,遞送轉發資訊。
在一些實施例中,在通過一個或多個轉發暫存器從指令集架構不同路遞送轉發資訊到處理器的一個或多個硬體元件時,處理器510可以在管線的兩個階段內將資料保持在暫存器中而不將資料寫回暫存器檔。
在一些實施例中,在通過一個或多個轉發暫存器從指令集架構不同路遞送轉發資訊到處理器的一個或多個硬體元件時,處理器510可以在管線的兩個階段內將資料保持在暫存器中而不將資料寫入下一階段。
在一些實施例中,在分配一個或多個轉發暫存器時,處理器510可以分配至少一第一轉發暫存器以及第二轉發暫存器。在這種情況下,第一轉發暫存器可以用於指令集架構的第一路的資料轉發。此外,第二轉發暫存器可以用於指令集架構的第二路的資料轉發。此外,該指令集架構可以包括VLIW架構。此外,在分配一個或多個轉發暫存器時,處理器510可以執行編譯程式來提供指令用於VLIW架構中的執行。
在一些實施例中,在執行算術操作時,處理器510的邏輯電路512執行一些操作。例如,邏輯電路512對第一運算元以及第二運算元執行第一操作來提供第一結果,其被存儲在第一轉發暫存器中。此外,邏輯電路512可以對第三運算元以及第四運算元執行第二操作來提供第二結果,其被存儲在第二轉發暫存器中。此外,邏輯電路512可以藉由轉發該第一結果以及該第二結果到執行該第三操作的功能單元,使用該第一結果以及該第二結果作為運算元執行第三操作來提供第三結果。
在一些實施例中,在分配一個或多個轉發暫存器時,處理器510可以分配延遲的轉發暫存器,其存儲不需要被寫入暫存器檔的資料。
第6圖示出了根據本發明實施例的示例進程600。進程600可以表示實施關於以減少的硬體複雜度解決資料危險的編譯程式分配的特殊暫存器的所提
出的概念以及方案。進程600可以是以上關於第1圖、第2圖、第4A圖、第3B圖、第4A~第4K圖以及第5圖所描述的部分或整體的示例性實施例。進程600可以包括如一個或多個塊610以及620所示的一個或多個操作、動作或功能。雖然示出了分離的塊/子塊,進程600的各種塊/子塊可以所需要的實施例被拆分成額外的塊/子塊,被組合成更少塊、或者被消除。此外,進程600的塊/子塊可以以第6圖中示出的次序或者以不同的次序執行。此外,進程600的一個或多個塊/子塊可以被重複地執行。進程600可以由裝置500以及其任何變體來實施。僅用於說明的目的以及不限制範圍,下文在裝置500的上下文中描述的進程600。進程可以開始在塊610。
在610,進程600可以涉及裝置500的處理器510分配關執行一指令的一個或多個轉發暫存器。進程600可以從610前進到620。
在620,進程600可以涉及處理器510基於執行一指令的算術操作,該指令具有從在指令集架構的多個路輸入的資料,以致利用該一個或多個轉發暫存器用於該指令集架構的多個路之間的資料轉發。
在一些實施例中,在執行算術操作時,進程600可以涉及處理器510通過一個或多個轉發暫存器從該指令集架構的不同路遞送轉發資訊到該處理器的一個或多個不同的硬體元件。
在一些實施例中,通過該一個或多個轉發暫存器從該指令集的不同路遞送轉發資訊到該處理器的一個或多個硬體元件可以解決該指令集的不同路之間的資料危險。
在一些實施例中,通過該一個或多個轉發暫存器從該指令集的不同路遞送轉發資訊到該處理器的一個或多個硬體元件可以消除將運算元與轉發結果比較的必要。
在一些實施例中,在通過該一個或多個轉發暫存器從該指令集的不
同路遞送轉發資訊到該處理器的一個或多個硬體元件時,進程600可以涉及處理器510在沒有額外編碼位元欄位的請看下,遞送該轉發資訊。
在一些實施例中,在通過該一個或多個轉發暫存器從該指令集的不同路遞送轉發資訊到該處理器的一個或多個硬體元件時,進程600可以涉及處理器510在管線的兩個階段將資料保持在暫存器,而不需要寫回到暫存器檔。
在一些實施例中,在通過該一個或多個轉發暫存器從該指令集的不同路遞送轉發資訊到該處理器的一個或多個硬體元件時,進程600可以涉及在管線的兩個階段將資料保持在暫存器,而不需要寫入到下一個階段。
進一步地,關於本文中基本上任何複數與/或單數術語的使用,本領域習知技術者可以根據上下文與/或應用適當地將複數轉換成單數與/或將單數轉換成複數。為了清楚起見,各種單數/複數排列可在本文中明確闡述。
此外,本領域習知技術者將能理解,通常,本文所使用的術語以及尤其所附權利要求中(如所附權利要求的主體中)使用的術語通常是“開放式”術語,例如,術語“包括(including)”應當被解釋為“包括但不限於”,術語“具有”應該被解釋為“至少具有”,術語“包括(includes)”應當被解釋為“包括但不限於”等等。本領域習知技術者將能進一步理解,如果權利要求表述中旨在引入特定的數目,這一意圖將會明確地列舉在權利要求中,並且在缺乏這種表述的情況下不存在這種意圖。例如,為了幫助理解,後續所附權利要求可以包括介紹性短語“至少一個”以及“一個或多個”的使用來介紹權利要求表述。然而,這樣的短語的使用不應被解釋為暗示不定冠詞"一(a)"或"一(an)"的權利要求表述的介紹將包含這種介紹的權利要求表述的任何特定權利要求限制為僅包含一個這樣的表述的實施例,即使當相同的權利要求包括介紹性短語"一個或多個"或"至少一個"以及不定冠詞如“一(a)”或“一(an)”,例如,“一(a)”與/或“一個(an)”應被解釋為“至少一個”或“一個或多個”,同樣適用於用於引入權利要求重述的明確條款的使
用。此外,即使所介紹權利要求表述的特定數目被明確列舉,本領域這些技術人員將意識到,這種表示將被解釋為意味著至少所列舉的數目,例如,沒有其他修飾語的"兩個表述"的空表述,意味著至少兩個表述,或兩個或更多的表述。此外,在使用類似於“A、B與C等中的至少一個”的慣例的那些情況下,通常這樣的構造在本領域習知技術者將理解該慣例的意義上是有意的,例如“具有至少一個A、B以及C的系統”將包括但不限於單獨具有A、單獨具有B、單獨具有C、一起具有A與B、一起具有A與C、一起具有B與C,與/或一起具有A、B以及C等等。在使用類似於“A、B或C等中的至少一個”的慣例的那些情況下,通常這樣的構造在本領域習知技術者將理解該慣例的意義上是有意的,例如,“具有至少一個A、B或C的系統”將包括但不限於單獨具有A、單獨具有B、單獨具有C、一起具有A與B、一起具有A與C、一起具有B與C,與/或一起具有A、B以及C等等。本領域習知技術者將進一步理解,無論在說明書、權利要求或附圖中,實際上呈現兩個或更多個可選術語的任何分隔詞與/或短語應當被理解為考慮包括這些術語中的一個、這些術語中的任一個或這兩個術語的可能性。短語“A或B”將被理解為包括“A”或“B”或“A與B”的可能性。
從上文將瞭解,本文已出於說明的目的描述了本發明的各種實施方案,以及可在不背離本發明的範圍與精神的情況下作出各種修改。因此,本文所描述的各種實施方案不旨在為限制性的,其真實範圍與精神由所附權利要求來指示。以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
600:進程
610~620:步驟
Claims (16)
- 一種資料轉發方法,該方法包括:由一處理器分配關於執行一指令的多個轉發暫存器;以及由該處理器基於該指令執行算術操作,該指令的資料從一指令集架構的多個路輸入,以致利用該多個轉發暫存器用於該指令集架構的該等路之間的資料轉發;其中該多個轉發暫存器包含以下中的一個或者多個:一第一轉發暫存器,用於第一路之第一轉發;一第二轉發暫存器,用於第二路之第一轉發;一第三轉發暫存器,用於第一路之第二轉發;一第四轉發暫存器,用於第二路之第二轉發;其中,在操作時,由該第三轉發暫存器執行之每一轉發是由該第一轉發暫存器所接收或轉發,由該第四轉發暫存器執行之每一轉發是由該第二轉發暫存器所接收或轉發。
- 如申請專利範圍第1項所述之資料轉發方法,其中該執行該算術操作包括通過該多個轉發暫存器從該指令集架構的不同路遞送轉發資訊到該處理器的一個或多個硬體元件。
- 如申請專利範圍第2項所述之資料轉發方法,其中通過該多個轉發暫存器從該指令集架構的不同路遞送該轉發資訊到該處理器的該一個或多個硬體元件包括在沒有額外編碼位元欄位的情況下,遞送該轉發資訊。
- 如申請專利範圍第2項所述之資料轉發方法,其中通過該多個轉發暫存器從該指令集架構的不同路遞送該轉發資訊到該處理器的該一個或多個硬體元件包括在管線的兩個階段內將資料維持在轉發暫存器中而不寫回一暫存器檔。
- 如申請專利範圍第2項所述之資料轉發方法,其中通過該多個轉發暫存器從該指令集架構的不同路遞送該轉發資訊到該處理器的該一個或多個硬體元件包括在管線的兩個階段內將資料維持在轉發暫存器中而不寫入下一個階段。
- 如申請專利範圍第1項所述之資料轉發方法,其中該分配該多個轉發暫存器包括分配至少該第一轉發暫存器以及該第二轉發暫存器,其中該第一轉發暫存器被用於該指令集的一第一路的資料轉發,其中該第二轉發暫存器用於該指令集架構的一第二路的資料轉發,其中該指令集架構包括一極長指令架構,以及其中該分配一個或多個轉發暫存器包括執行一編譯程式來提供該指令用於該極長指令架構中的執行。
- 如申請專利範圍第6項所述之資料轉發方法,其中該執行該算術操作包括:對一第一運算元以及一第二運算元執行一第一操作來提供一第一結果,該第一結果被存儲在該第一轉發暫存器中;對一第三運算元以及一第四運算元執行一第二操作來提供一第二結果,該第二結果被存儲在該第二轉發暫存器中;以及藉由轉發該第一結果以及該第二結果到一執行一第三操作的功能單元,使 用該第一結果以及該第二結果作為運算元執行該第三操作來提供一第三結果。
- 如申請專利範圍第6項所述之資料轉發方法,其中該分配該多個轉發暫存器進一步包括分配一延遲的轉發暫存器,其存儲不需要被寫入一暫存器檔的資料。
- 一種資料轉發裝置,包括:一處理器,包括排列在一指令集架構中的多個硬體元件,該處理器用於:分配關於執行一指令的多個轉發暫存器;以及基於該指令執行算術操作;其中該指令的資料從該指令集架構的多個路輸入,以利用該多個轉發暫存器進行該指令集架構的該等路之間的資料轉發;其中該多個轉發暫存器包含以下中的一個或者多個:一第一暫存器,用於第一路之第一轉發;一第二暫存器,用於第二路之第一轉發;一第三暫存器,用於第一路之第二轉發;一第四暫存器,用於第二路之第二轉發;其中,在操作時,由該第三轉發暫存器執行之每一轉發是由該第一轉發暫存器所接收或轉發,由該第四轉發暫存器執行之每一轉發是由該第二轉發暫存器所接收或轉發。
- 如申請專利範圍第9項所述之資料轉發裝置,其中在執行該算術 操作時,該處理器用於通過該多個轉發暫存器從該指令集架構的不同路遞送轉發資訊到該處理器的該等硬體元件的多個硬體元件。
- 如申請專利範圍第10項所述之資料轉發裝置,其中在該通過該多個轉發暫存器從該指令集架構的不同路遞送轉發資訊到該處理器的該多個硬體元件時,該處理器在沒有額外編碼位元欄位的情況下,遞送該轉發資訊。
- 如申請專利範圍第10項所述之資料轉發裝置,其中在該通過該多個轉發暫存器從該指令集架構的不同路遞送轉發資訊到該處理器的該一個或多個硬體元件時,該處理器用於在管線的兩個階段內將資料維持在轉發暫存器內而沒有寫回一暫存器檔。
- 如申請專利範圍第10項所述之資料轉發裝置,其中在該通過該多個轉發暫存器從該指令集架構的不同路遞送轉發資訊到該處理器的該一個或多個硬體元件時,該處理器用於在管線的兩個階段內將資料維持在轉發暫存器內而沒有寫入下一階段。
- 如申請專利範圍第9項所述之資料轉發裝置,其中在分配該多個轉發暫存器時,該處理器用於分配至少一第一轉發暫存器以及一第二轉發暫存器,其中該處理器使用該第一轉發暫存器用於該指令集架構的一第一路的資料轉發,其中該處理器使用該第二轉發暫存器用於該指令集架構的一第二路的資料轉發,其中該指令集架構包括一極長指令架構,以及其中在分配該多個轉發暫存器時,該處理器執行一編譯程式來提供 該指令用於該極長指令架構中的執行。
- 如申請專利範圍第14項所述之資料轉發裝置,其中在執行該算術操作時,該處理器用於:對一第一運算元以及一第二運算元執行一第一操作來提供一第一結果,該第一結果被存儲在該第一轉發暫存器中;對一第三運算元以及一第四運算元執行一第二操作來提供一機的人結果,該第二結果被存儲在該第二轉發暫存器中;以及藉由轉發該第一結果以及該第二結果到執行一第三操作的功能單元,使用該第一結果以及該第二結果作為運算元執行該第三操作來提供一第三結果。
- 如申請專利範圍第14項所述之資料轉發裝置,其中,在分配該一個或多個轉發暫存器時,該處理器進一步用於分配一延遲的轉發暫存器,其存儲不需要被寫入暫存器檔的資料。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/365,674 | 2019-03-27 | ||
US16/365,674 US20200310799A1 (en) | 2019-03-27 | 2019-03-27 | Compiler-Allocated Special Registers That Resolve Data Hazards With Reduced Hardware Complexity |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202036279A TW202036279A (zh) | 2020-10-01 |
TWI791960B true TWI791960B (zh) | 2023-02-11 |
Family
ID=72607258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109107920A TWI791960B (zh) | 2019-03-27 | 2020-03-11 | 資料轉發的方法及裝置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20200310799A1 (zh) |
CN (1) | CN111752611A (zh) |
TW (1) | TWI791960B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102631214B1 (ko) * | 2023-06-23 | 2024-01-31 | 주식회사 하이퍼엑셀 | 대규모 언어 모델 추론을 가속화하기 위한 효율적인 데이터 포워딩 방법 및 시스템 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6145074A (en) * | 1997-08-19 | 2000-11-07 | Fujitsu Limited | Selecting register or previous instruction result bypass as source operand path based on bypass specifier field in succeeding instruction |
TWI232403B (en) * | 2003-04-23 | 2005-05-11 | Ip First Llc | Apparatus and method for buffering instructions and late-generated related information using history of previous load/shifts |
TW200604940A (en) * | 2004-04-07 | 2006-02-01 | Sandbridge Technologies Inc | Multithreaded processor with multiple concurrent pipelines per thread |
US20080016327A1 (en) * | 2006-06-27 | 2008-01-17 | Amitabh Menon | Register File Bypass With Optional Results Storage and Separate Predication Register File in a VLIW Processor |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060101434A1 (en) * | 2004-09-30 | 2006-05-11 | Adam Lake | Reducing register file bandwidth using bypass logic control |
-
2019
- 2019-03-27 US US16/365,674 patent/US20200310799A1/en active Pending
-
2020
- 2020-03-11 TW TW109107920A patent/TWI791960B/zh active
- 2020-03-12 CN CN202010172259.XA patent/CN111752611A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6145074A (en) * | 1997-08-19 | 2000-11-07 | Fujitsu Limited | Selecting register or previous instruction result bypass as source operand path based on bypass specifier field in succeeding instruction |
TWI232403B (en) * | 2003-04-23 | 2005-05-11 | Ip First Llc | Apparatus and method for buffering instructions and late-generated related information using history of previous load/shifts |
TW200604940A (en) * | 2004-04-07 | 2006-02-01 | Sandbridge Technologies Inc | Multithreaded processor with multiple concurrent pipelines per thread |
US20080016327A1 (en) * | 2006-06-27 | 2008-01-17 | Amitabh Menon | Register File Bypass With Optional Results Storage and Separate Predication Register File in a VLIW Processor |
Non-Patent Citations (1)
Title |
---|
期刊 M. Sami D.Sciuto C. Silvano V. Zaccarria R.Zafalon Exploiting Data Forwarding to Reduce the Power Budget of VLIW Embedded Processors Design, Automation and Test Europe Conference and Exhibition 1530-1591/01 IEEE 2001/08 P252 -P257 * |
Also Published As
Publication number | Publication date |
---|---|
CN111752611A (zh) | 2020-10-09 |
US20200310799A1 (en) | 2020-10-01 |
TW202036279A (zh) | 2020-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11782688B2 (en) | Target architecture determination | |
CN108541313B (zh) | 虚拟寄存器堆 | |
JP5989281B1 (ja) | 独立にアドレス指定可能なメモリアレイアドレス空間 | |
US9639369B2 (en) | Split register file for operands of different sizes | |
CN114391135A (zh) | 用于对连续分配数据执行存储器内处理操作的方法及相关存储器装置和系统 | |
KR101753900B1 (ko) | 스칼라 레지스터 데이터 값에 기초하는 벡터 레지스터 어드레싱 및 기능들 | |
JP2017503229A (ja) | メモリ用の除算演算 | |
US7958336B2 (en) | System and method for reservation station load dependency matrix | |
US10877755B2 (en) | Processor load using a bit vector to calculate effective address | |
JP2018519597A (ja) | ブロックサイズに基づくマッピング命令ブロック | |
JP2016515265A (ja) | 外部からプログラム可能なメモリ管理ユニット | |
KR20220051006A (ko) | Pim(processing-in-memory) 연산 수행 방법, 및 관련 메모리 디바이스 및 시스템 | |
EP1861775B1 (en) | Processor and method of indirect register read and write operations | |
TWI791960B (zh) | 資料轉發的方法及裝置 | |
CN115640047A (zh) | 指令操作方法及装置、电子装置及存储介质 | |
US20220100760A1 (en) | Acceleration of data queries in memory | |
TW201830233A (zh) | 自資料庫浮動點格式至二進位整數格式之數字之有效轉換 | |
US9411724B2 (en) | Method and apparatus for a partial-address select-signal generator with address shift | |
US20170315807A1 (en) | Hardware support for dynamic data types and operators | |
WO2022067510A1 (zh) | 一种处理器、处理方法及相关设备 |