CN114008603A - 具有用于专用寄存器的专用数据路径的risc处理器 - Google Patents
具有用于专用寄存器的专用数据路径的risc处理器 Download PDFInfo
- Publication number
- CN114008603A CN114008603A CN202180003873.6A CN202180003873A CN114008603A CN 114008603 A CN114008603 A CN 114008603A CN 202180003873 A CN202180003873 A CN 202180003873A CN 114008603 A CN114008603 A CN 114008603A
- Authority
- CN
- China
- Prior art keywords
- operand
- register file
- port
- data
- datapath
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims description 38
- 238000010586 diagram Methods 0.000 description 12
- 230000004044 response Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
-
- 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/1668—Details of memory controller
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Executing Machine-Instructions (AREA)
- Logic Circuits (AREA)
Abstract
本申请公开了一种数据路径块电路。该数据路径块电路包括具有逻辑电路的数据路径电路,每个数据路径电路用于基于第一和第二操作数执行数据路径操作以生成结果。该数据路径块电路还包括具有输入端的第一操作数多路选择器,每个第一操作数多路选择器与第一寄存器堆和第二寄存器堆连接,其中,第一寄存器堆包括第一数量的读取和写入端口,第二寄存器堆包括不同数量的读取和写入端口。该数据路径块电路还包括具有输入端的第二操作数多路选择器,每个第二操作数多路选择器与第一寄存器堆和第二寄存器堆之一连接。第一和第二操作数多路选择器中的至少一个包括与第一寄存器堆连接的数据输入端。第一和第二操作数多路选择器中的至少一个包括与第二寄存器堆连接的数据输入端。
Description
优先权要求及相关申请的交叉引用
本专利文件要求于2020年7月28日提交的美国专利申请号为16/941,485,发明名称为“具有用于专用寄存器的专用数据路径的RISC处理器”的权益及优先权。上述专利申请的全部内容通过引用并入本专利文件公开的一部分。
技术领域
本文描述的主题涉及RISC处理器架构,且特别涉及具有与专用寄存器交互的数据路径的RISC处理器架构。
背景技术
RISC处理器通常具有多个寄存器,这些寄存器用作数据路径电路执行计算的临时内存存储位置。寄存器用于存储用于数据路径计算的各种类型的计算变量,因此,每个寄存器都配置为用于一类计算变量。由于每个寄存器能够用于一类计算变量,因此每个寄存器在寄存器堆电路中实现,且该寄存器堆电路具有每类计算变量所需的所有特征。因此,数据路径以相同的方式与每种类型的寄存器堆交互。在本领域中,需要堆管芯面积需求较少的寄存器以及与之交互的数据路径。
发明内容
一个创造性方面为一种数据路径块电路。所述数据路径块电路包括第一数据路径电路,具有多个逻辑电路,每个逻辑电路用于接收用作第一和第二操作数的数据,并执行数据路径操作以基于所述第一和第二操作数生成结果。所述数据路径块电路还包括第一操作数多路选择器,具有第一多个数据输入端,每个数据输入端连接到具有第一数量的读取和写入端口的第一寄存器堆以及具有第二数量的读取和写入端口的第二寄存器堆中的一个,其中,所述第一数量的读取和写入端口不同于所述第二数量的读取和写入端口。所述数据路径块电路还包括第二操作数多路选择器,具有第二多个数据输入端,每个数据输入端连接到所述第一寄存器堆和所述第二寄存器堆中的一个,其中,所述第一操作数多路选择器和所述第二操作数多路选择器中的至少一个包括连接到所述第一寄存器堆的数据输入端,所述第一操作数多路选择器与所述第二操作数多路选择器中至少一个包括与所述第二寄存器堆连接的数据输入端。
在一些实施例中,所述数据路径块电路包括操作信号端口,用于接收操作信号,所述操作信号包括识别用于所述第一操作数的所述第一和第二寄存器堆之一的第一读取端口的数据,以及用于所述第二操作数的所述第一和第二寄存器堆之一的第二读取端口的数据,其中,所述第一操作数多路选择器用于接收识别所述第一读取端口的数据,并基于所述接收的识别所述第一读取端口的数据,选择第一数据输入端,以及,所述第二操作数多路选择器用于接收识别所述第二读取端口的数据,并基于所述接收的识别第二读取端口的数据,选择第二数据输入端。
在一些实施例中,所述第一读取端口与所述第一寄存器堆连接,以及,所述第二读取端口与所述第二寄存器堆连接。
在一些实施例中,所述第一操作数多路选择器用于向所述第一数据路径电路提供所述第一数据输入端的数据作为所述第一操作数,以及,所述第二操作数多路选择器用于向所述第一数据路径电路提供第二数据输入端的数据作为所述第二操作数。
在一些实施例中,所述操作信号进一步识别所述第一数据路径电路的特定数据路径操作,以及,所述第一数据路径电路用于基于所述操作信号选择特定逻辑电路。
在一些实施例中,所述选择的特定逻辑电路用于对所述第一和第二操作数执行所述特定数据路径操作以生成所述结果。
在一些实施例中,所述操作信号进一步识别用于所述结果的特定写入端口,以及其中所述第一数据路径电路用于向所述特定写入端口提供所述结果。
在一些实施例中,所述第一读取端口与所述第一寄存器堆连接,以及,所述第二读取端口与所述第二寄存器堆连接。
在一些实施例中,所述第一读取端口和所述第二读取端口与所述第一寄存器堆连接,以及,所述特定写入端口与所述第二寄存器堆连接。
在一些实施例中,所述数据路径块电路包括第二数据路径电路,包括多个逻辑电路,每个逻辑电路用于接收用作第三和第四操作数的数据,并执行第二数据路径操作以基于所述第三和第四操作数生成第二结果;以及操作信号端口,用于接收操作信号,所述操作信号识别用于所述第三操作数的所述第一和第二寄存器堆之一的第一读取端口,以及用于所述第四操作数的所述第一和第二寄存器堆之一的第二读取端口。
在一些实施例中,所述第一读取端口与所述第一寄存器堆连接,以及,所述第二读取端口与所述第二寄存器堆连接。
在一些实施例中,所述操作信号进一步识别所述第二数据路径电路的特定数据路径操作,以及,所述第二数据路径电路用于基于所述操作信号选择特定逻辑电路。
在一些实施例中,所述选择的特定逻辑电路用于对所述第三和第四操作数执行所述特定数据路径操作以生成所述结果,所述操作信号进一步识别用于所述结果的特定写入端口,以及,所述第二数据路径电路用于向所述特定写入端口提供所述结果。
在一些实施例中,所述第一读取端口与所述第一寄存器堆连接,以及,所述第二读取端口与所述第二寄存器堆连接。
在一些实施例中,所述第一读取端口和所述第二读取端口与所述第一寄存器堆连接,以及,所述特定写入端口与所述第二寄存器堆连接。
另一个创造性方面是一种使用数据路径块电路的方法。所述方法包括:接收操作信号,所述操作信号包括识别用于第一操作数的第一和第二寄存器堆之一的第一读取端口,以及识别用于第二操作数的所述第一和第二寄存器堆的第二读取端口,其中,所述第一寄存器堆包括第一数量的读取和写入端口,其中,所示第二寄存器堆包括第二数量的读取和写入端口,以及,其中所述第一数量的读取和写入端口不同于所述第二数量的读取和写入端口。所述方法还包括,使用第一操作数多路选择器,接收识别所述第一读取端口的所述操作信号的数据;使用所述第一操作数多路选择器,基于所述接收的识别所述第一读取端口的数据,选择第一数据输入端;使用第二操作数多路选择器,接收识别所述第二读取端口的所述操作信号的数据;使用所述第二操作数多路选择器,基于所述接收的识别所述第二读取端口的数据,选择第二数据输入端;使用第一数据路径电路的逻辑电路,接收所述第一和第二操作数多路选择器的数据以用作第一和第二操作数;以及,使用所述逻辑电路,基于所述第一和第二操作数执行数据路径操作以生成结果,其中,所述第一操作数多路选择器与所述第二操作数多路选择器中至少一个包括与所述第一寄存器堆连接的数据输入端,以及,其中,所述第一操作数多路选择器与所述第二操作数多路选择器中至少一个包括与所述第二寄存器堆连接的数据输入端。
在一些实施例中,所述方法还包括,使用所述第一操作数多路选择器,向所述逻辑电路提供所述第一数据输入端的数据作为所述第一操作数;以及,使用所述第二操作数多路选择器,向所述逻辑电路提供所述第二数据输入端的数据作为所述第二操作数。
在一些实施例中,所述操作信号进一步识别用于所述结果的特定写入端口,以及,所述方法进一步包括使用所述逻辑电路向所述特定写入端口提供所述结果。
在一些实施例中,所述第一读取端口与所述第一寄存器堆连接,以及,所述第二读取端口与所述第二寄存器堆连接。
在一些实施例中,所述第一读取端口和所述第二读取端口与所述第一寄存器堆连接,以及,所述特定写入端口与所述第二寄存器堆连接。
附图说明
引入本说明书并构成其一部分的附图示出了本文公开主题的某些方面,并且与本说明书一同帮助解释了与所公开实现方式相关联的一些原理。
图1为处理器电路的实施例的示意图。
图2为数据路径块电路的实施例的示意图,所述数据路径块电路可用于图1的处理器电路。
图3为数据路径块电路的实施例的示意图,所述数据路径块电路可用于图1的处理器电路。
图4为示出使用数据路径块电路的方法500的流程图。
图5为示出使用数据路径块电路的方法600的流程图。
在实际应用中,类似的附图标记表示类似的结构、特征或元件。
具体实施方式
本文结合附图说明本发明的特定实施例。本文结合附图说明本发明的特定实施例。
本文将阐述各种细节,因为它们涉及某些实施例。然而,本发明也可以以不同于与本文所描述的方式实现。在不背离本发明的情况下,本领域技术人员可以对所讨论的实施例进行修改。因此,本发明不限于本文公开的特定实施例。
处理器寄存器堆根据寄存器堆所具有的读取和写入端口的数量与数据路径电路交互。本文讨论的实施例公开了一种数据路径电路,该电路与具有特定数量的读取和写入端口的特定寄存器堆交互。
处理器,诸如RISC处理器,通过加载/计算/存储(LOAD/CALCULATE/STORE)过程处理指令,其中,数据被加载(LOADED)到一个或多个寄存器中,使用具有多个数据路径块的数据路径的数据路径块对寄存器数据执行计算(CALCULATION),以及将数据路径块的计算结果存储(STORED)在一个或多个寄存器中。通过数据路径的内存和数据路径块的读取和写入端口对每个寄存器进行读取和写入访问。对于实现方式,设计人员基于诸如执行速度和电路管芯面积之间的权衡确定寄存器和寄存器堆的数量。此外,设计人员确定用于寄存器堆的内存和数据路径的多个读取和写入端口。每个寄存器堆需要一定量的电路管芯面积以及一定量的功率。
在一些实施例中,一些寄存器堆可用作通用寄存器堆,其具有预设数量的每种端口类型。此外,结果变量寄存器堆可以具有两个读取端口和一个写入端口,常量变量寄存器堆可以具有一个端口和一个写入端口。在一些实施例中,可以使用具有其他端口配置的其他寄存器堆。由于结果变量和常量变量寄存器使用更少的端口,因此其使用更少的面积以及更少的功率。因此,对于相同数量的寄存器,使用这些特定寄存器代替多个通用寄存器,使用更少的电路管芯面积和更少的功率。
本文公开的数据路径电路的实施例可以使特定数据路径电路与特定寄存器交互。本文公开的寄存器堆的实施例包括通用寄存器堆,其具有用于内存和数据路径的确定数量的读取和写入端口,还具有特定寄存器,其根据每个寄存器的使用方式使用不同数量的端口。
本文讨论了用于与多种类型的寄存器堆通信的数据路径电路。参考图1,讨论了具有数据寄存器堆、指令解码器以及数据路径块的特定处理器电路的功能。参考图2和图3,讨论了用于与具有特定端口配置的多种类型的寄存器堆交互的特定数据路径块电路的功能。参考图4和图5,讨论了使用数据路径电路与多种类型的寄存器堆进行通信的方法。
图1是与内存50交互的处理器电路100的实施例的示意图。处理器电路100包括数据寄存器堆电路120、数据路径块电路140以及指令解码器电路160。如图所示,在本实施例中,数据寄存器堆电路120的每个数据寄存器堆包括下列之一:
五个读取端口和两个写入端口,用于与数据路径块电路140交互,以及一个读取端口和一个写入端口,用于与内存50交互;
一个读取端口和一个写入端口,用于与数据路径块电路140交互,以及一个读取端口,用于与内存50交互;以及
一个读取端口,用于与数据路径块电路140交互,以及一个写入端口,用于与内存50交互。
在其他实施例中,可以使用具有与数据路径块电路140交互的其他数量的端口的寄存器堆。在其他实施例中,可以使用具有与内存50交互的其他数量的端口的寄存器堆。处理器电路100可以用作具有本领域技术人员已知的其他处理器电路的中央处理单元(central processing unit,CPU)的一部分。在一些实施例中,可以使用具有不同于本文参考处理器电路100具体讨论的那些特征之外的特征的处理器电路。
例如,数据寄存器堆的寄存器具有用于与数据路径块电路140交互的五个读取端口和两个写入端口,以及用于与存储器50交互的一个读取端口和一个写入端口,可以用作通用寄存器。
例如,数据寄存器堆的寄存器具有用于与数据路径块电路140交互的一个读取端口和一个写入端口,以及用于与内存50交互的一个读取端口,可以用作结果寄存器,存储计算操作的结果,其中,结果可以存储在内存50中。
例如,数据寄存器堆的寄存器具有用于与数据路径块电路140交互的一个读取端口,以及用于与内存50交互的一个写入端口,可以用作常量寄存器,存储常量,该常量不改变数据路径指令。例如,一组数据路径指令可以与源代码中的循环相关联,对该循环进行编译以生成数据路径指令,并且可以使用常量寄存器存储常量的值,该常量的值在与该循环关联的数据路径指令的执行期间不改变。
正如本领域技术人员所理解的,内存电路50可以是任意内存架构。内存电路50至少存储处理指令和数据。在处理器电路100接收指令和数据之后,处理器电路100基于读取指令使用读取数据执行操作。
指令解码器电路160用于从内存电路50接收数据路径指令,其中,数据路径指令使数据路径块电路140生成存储在数据寄存器堆电路120中的结果。每条数据路径指令对至少一个待执行的数据路径操作、数据寄存器堆电路120内的结果寄存器进行编码,其中,数据寄存器堆电路120中存储数据路径操作的结果,数据寄存器堆电路120内的一个或多个操作数寄存器被存储用作数据路径操作的操作数的数据。正如本领域技术人员所理解的,对于某些数据路径指令,存储数据路径操作结果的结果寄存器与存储用作数据路径操作的操作数的数据的操作数寄存器相同。
基于从内存电路50接收的数据路径指令,指令解码器电路160用于生成用于数据寄存器堆电路120的寄存器信号,该寄存器信号对一个或多个结果寄存器、每个结果寄存器的写入端口、一个或多个操作数寄存器以及每个操作数寄存器的读取端口进行编码,其中,一个或多个数据路径操作的一个或多个结果在一个或多个结果寄存器中进行存储,每个结果寄存器的写入端口用于将一个或多个数据路径操作的一个或多个结果写入一个或多个结果寄存器中,数据寄存器堆电路120中的一个或多个操作数寄存器存储用作操作数的数据,该操作数用于一个或多个数据路径操作,每个操作数寄存器的读取端口用于读取其中的操作数数据。
此外,基于从内存电路50接收的数据路径指令,指令解码器电路160用于生成用于数据路径块电路140的操作信号,数据路径块电路140对待执行的一个或多个操作、每个结果寄存器的写入端口以及每个操作数寄存器的读取端口进行编码,其中,每个结果寄存器的写入端口用于将一个或多个数据路径操作的一个或多个结果写入一个或多个结果寄存器,每个操作数寄存器的读取端口用于从中读取操作数数据。
数据寄存器堆电路120用于从指令解码器电路160接收寄存器信号,该寄存器信号对一个或多个结果寄存器进行编码,每个结果寄存器的写入端口用于将一个或多个数据路径操作的一个或多个结果写入一个或多个结果寄存器、一个或多个操作数寄存器以及每个操作数寄存器的读取端口,该读取端口用于从中读取操作数数据。
基于从指令解码器电路160接收的寄存器信号,该寄存器信号对一个或多个寄存器进行编码,该一个或多个寄存器存储用于一个或多个数据路径操作的操作数的数据,数据寄存器堆电路120生成用于数据路径块电路140的操作数数据信号。例如,寄存器信号可以识别特定寄存器堆和特定寄存器堆内的特定寄存器,用于一个或多个寄存器中的每个存储用作一个或多个数据路径操作的操作数的数据。响应于寄存器信号,所识别的特定寄存器的数据被读取并作为操作数数据信号提供给数据路径块电路140。
基于从指令解码器电路160接收的寄存器信号,该寄存器信号识别每个操作数寄存器的读取端口,用于从中读取操作数数据,数据寄存器堆电路120从所识别的特定寄存器中读取数据,并将读取的数据提供给在接收到的寄存器信号中识别的读取端口。
数据路径块140用于从指令解码器电路160接收操作信号,该操作信号对待执行的一个或多个数据路径操作进行编码。此外,数据路径块140用于从指令解码器电路160接收操作信号,指令解码器电路160识别用于每个操作数数据信号的读取端口,该读取端口用于读取操作数数据。
基于接收到的操作信号,数据路径块140访问数据寄存器堆电路120所识别的读取端口以接收操作数数据信号,该操作数数据信号对将用作一个或多个数据路径操作的操作数的数据进行编码。下面参考图2讨论数据路径块电路的实施例,图2示出了基于接收到的操作信号,数据路径块电路用于访问识别的读取端口的示例。
数据路径块140包括多个逻辑电路,每个逻辑电路用于接收特定数量的操作数。每个逻辑电路还用于执行特定数据路径操作以基于接收到的操作数数据信号生成一个或多个结果。例如,数据路径块140可以包括下列每种逻辑电路中的一个或多个:移位器、加法器和乘法器。正如本领域技术人员所理解的,数据路径块140还可以包括多个其他每种逻辑电路中的一个或多个。
基于接收到的操作信号,该操作信号对待执行的一个或多个数据路径操作进行编码,数据路径块140选择一个或多个逻辑电路。作为选择的结果,所选择的逻辑电路接收操作数数据信号,该操作数数据信号对用作一个或多个数据路径操作的操作数的数据进行编码。
正如本领域技术人员所理解的,响应于操作数数据信号,所选择的逻辑电路根据所选择的逻辑电路的逻辑电路图生成一个或多个结果。
所生成的一个或多个结果被提供给数据寄存器堆电路120。
在一些实施例中,数据路径块140包括多个单独的数据路径,其中每个数据路径包括下列各项中的多个:移位器、加法器、乘法器以及其他数据路径逻辑电路。在这些实施例中,每个数据路径用于同时计算单独的结果。因此,在这些实施例中,数据路径块140从指令解码器电路160接收的操作信号对一个或多个数据路径操作进行编码,该一个或多个数据路径操作由一个或多个单独的数据路径执行。此外,数据路径块140从数据寄存器堆电路120接收的操作数数据信号对数据进行编码,该数据用作一个或多个数据路径操作的操作数,该一个或多个数据路径操作由一个或多个单独的数据路径执行。
基于从指令解码器电路160接收的操作信号,该操作信号识别写入端口,该写入端口用于将一个或多个结果写入数据寄存器堆电路120的一个或多个结果寄存器的每个结果寄存器,数据路径块电路140将该一个或多个结果提供给数据寄存器堆电路120的所识别的一个或多个写入端口。下面参考图2讨论数据路径块电路的实施例,图2示出了基于接收到的操作信号,数据路径块电路用于将结果提供给识别的写入接口的示例。
基于从指令解码器160接收的寄存器信号,将提供给数据寄存器堆电路120的识别的写入端口的一个或多个结果写入数据寄存器堆电路120内的指定寄存器,该寄存器信号识别存储一个或多个结果的一个或多个结果寄存器以及用于写入的每个结果寄存器的写入端口。
在一些实施例中,指令解码器电路160对一个或多个数据路径指令进行解码,数据路径块电路140从数据寄存器堆电路120接收操作数数据信号并将一个或多个结果提供给数据寄存器堆电路120,并且在单个CPU时钟周期内将一个或多个结果写入数据寄存器堆电路120。响应于新时钟周期的指示,指令解码器电路160解码一个或多个数据路径指令。此外,数据路径块电路140接收指令解码器160的操作信号,接收数据寄存器堆电路120的操作数数据信号,计算一个或多个结果,并将该一个或多个结果提供给数据寄存器堆电路120,数据寄存器堆电路120将一个或多个结果存储在由指令解码器电路160接收的一个或多个数据路径指令中指定的一个或多个寄存器中。
指令解码器电路160还用于从内存电路50接收内存指令,其中内存指令使数据从寄存器堆电路120读取到内存电路50或从内存电路50写入寄存器堆电路120。每个内存指令对至少一个待执行的内存操作(从寄存器堆电路120读取或写入寄存器堆电路120)、被读取或写入的数据寄存器堆电路120内的寄存器以及内存50中的地址进行编码。
基于从内存电路50接收到的内存指令,指令解码器电路160用于生成用于数据寄存器堆电路120的寄存器信号,该数据寄存器堆电路120对内存指令进行编码。
数据寄存器堆电路120用于从指令解码器电路160接收寄存器信号。基于从指令解码器电路160接收的寄存器信号,数据寄存器堆电路120根据内存指令与内存电路交互,例如,通过从指定寄存器读取数据并在指定时间将读取数据写入内存50的指定地址,或通过从内存50中的指定地址读取数据并将读取数据写入指定寄存器。
图2为数据路径块电路200的实施例的示意图。例如,数据路径块电路200可以用作图1中处理器电路100的数据路径块电路140。处理器电路100的实施例可以使用其他数据路径块电路的实施例。此外,数据路径块电路200的实施例可以用在处理器电路的其他实施例中。
数据路径块电路200包括第一操作数多路选择器210、第二操作数多路选择器220、结果多路选择器230和数据路径240。
数据路径块电路200用于从诸如指令解码器电路接收信号,例如图1的指令解码器电路160。操作信号对待执行的数据路径操作进行编码。操作信号还标识每个操作数数据信号的读取端口,每个操作数数据信号的读取端口用于从诸如寄存器堆读取操作数数据,例如图1的数据寄存器堆电路120的寄存器堆。
在所示实施例中,数据路径块电路200用于接收操作信号,该操作信号包括操作标识符OP、结果端口信号Result Port、第一操作数端口信号OP1 Port以及第二操作数端口信号OP2 Port。操作标识符OP对将由数据路径块电路200执行的操作进行编码。结果端口信号Result Port对寄存器堆写入端口进行编码,该寄存器堆写入端口用于将结果写入寄存器堆。第一操作数端口信号OP1端口对寄存器堆进行编码,以用于读取由数据路径块电路200执行的操作的第一操作数。第二操作数端口信号OP2端口对寄存器堆进行编码,以用于读取由数据路径块电路200执行的操作的第二操作数。
正如本领域技术人员所理解的,一些操作需要不多于两个操作数。对于这些操作,操作信号包括零个或一个操作数端口信号。此外,正如本领域技术人员所理解的,一些操作需要两个以上操作数。对于支持多于两个操作数的数据路径块电路,数据路径块电路200包括一个或多个额外的操作数多路选择器,而对于需要多于两个操作数的指令,操作信号包括两个以上的(诸如3或4个)操作数端口信号。
基于在选择器输入端的第一操作数端口信号OP1 Port,第一操作数多路选择器220访问由第一操作数端口信号OP1 Port识别的第一读取端口,并将其上的操作数数据信号提供给作为第一操作数输入端的数据路径电路240,用于由数据路径电路240执行的操作。
基于在选择器输入端的第二操作数端口信号OP2 Port,第二操作数多路选择器210访问由第二操作数端口信号OP2 Port识别的第二读取端口,并将其上的操作数数据信号提供给作为第二操作数输入端的数据路径电路240,用于由数据路径电路240执行的操作。
数据路径电路240包括多个逻辑电路,每个逻辑电路用于接收特定数量的操作数。每个逻辑电路还用于执行特定数据路径操作以基于接收到的操作数数据信号生成一个或多个结果。例如,数据路径电路240可以包括下列每种逻辑电路中的一个或多个:移位器、加法器和乘法器。正如本领域技术人员所理解的,数据路径电路240还可以包括多个其他每种逻辑电路中的一个或多个。
基于对待执行的数据路径操作进行编码的操作标识符OP,数据路径电路240选择一个或多个逻辑电路。作为选择的结果,所选择的逻辑电路接收第一和第二操作数,该第一和第二操作数对要用作数据路径操作的操作数的数据进行编码。
正如本领域技术人员所理解的,响应于第一和第二操作数,所选逻辑电路根据所选逻辑电路的逻辑电路图生成结果。生成的结果被提供给结果多路选择器230。
基于在选择器输入端的结果端口信号Result Port,由于结果端口信号ResultPort对寄存器堆写入端口进行编码以将结果写入寄存器堆,因此结果多路选择器230将结果提供给所识别的寄存器堆的写入端口。
提供给寄存器堆的识别写入端口的结果被写入寄存器堆内的指定寄存器。
在替代实施例中,一些逻辑电路生成不止一个结果。容纳生成多于一个结果的逻辑电路的数据路径块电路的实施例具有一个或多个附加结果多路选择器,每个多路选择器接收附加结果,并将接收到的结果提供给可用写入端口中的一个标识写入端口,其中标识是包含在操作信号中的附加结果端口信号中。
在图2的实施例中,每个操作数多路选择器具有用于每个寄存器堆电路的读取端口的输入端。在替代实施例中,一个或多个操作数多路选择器不具有特定类型寄存器堆的输入端。例如,在一些实施例中,一个或多个操作数多路选择器的所有数据输入连接到通用寄存器堆或结果寄存器堆。另外或替代地,在一些实施例中,一个或多个操作数多路选择器的所有数据输入端连接到通用寄存器堆或常量寄存器堆。另外或替代地,在一些实施例中,一个或多个操作数多路选择器的所有数据输入端连接到结果寄存器堆或常量寄存器堆。在一些实施例中,一个或多个操作数多路选择器具有仅用于特定类型的寄存器堆的输入端。例如,在一些实施例中,一个或多个操作数多路选择器的所有数据输入端连接到通用寄存器堆。另外或替代地,在一些实施例中,一个或多个操作数多路选择器的所有数据输入端连接到结果寄存器堆。另外或替代地,在一些实施例中,一个或多个操作数多路选择器的所有数据输入连接到常量寄存器堆。
在一些实施例中,数据路径电路对不同的操作数使用不同的读取端口。在一些实施例中,一个或多个操作的操作数被分配给或选择性地连接到第一组读取端口,并且一个或多个操作的其他操作数被分配或选择性地连接到第二组读取端口。在一些实施例中,第一和第二集合重叠。在一些实施例中,第一和第二集合不重叠。
图3为数据路径块电路300的一个实施例的示意图。例如,数据路径块电路300可以用作图1中处理器电路100的数据路径块电路140。处理器电路100的实施例可以使用其他数据路径块电路的实施例。此外,数据路径块电路300的实施例可以用在处理器电路的其他实施例中。
数据路径块电路300包括第一数据路径340和第二数据路径440。数据路径块电路300还包括用于第一数据路径340的第一操作数多路选择器310、第二操作数多路选择器320和结果多路选择器330。数据路径块电路300还包括用于第二数据路径440的第一操作数多路选择器410、第二操作数多路选择器420和结果多路选择器430。
数据路径块电路300用于从诸如指令解码器电路接收信号,例如图1的指令解码器电路160。操作信号对待执行的一个或多个数据路径操作进行编码。操作信号还标识每个操作数数据信号的读取端口,每个操作数数据信号的读取端口用于从诸如寄存器堆读取操作数数据,例如图1的数据寄存器堆电路120的寄存器堆。
在所示实施例中,数据路径块电路300用于接收操作信号,该操作信号包括操作标识符DP1 OP、结果端口信号DP1 Result Port、第一操作数端口信号DP1 OP1 Port、第二操作数端口信号DP1 OP2 Port、操作标识符DP2 OP、结果端口信号DP2 Result Port、第一操作数端口信号DP2 OP1 Port以及第二操作数端口信号DP2 OP2 Port。
操作标识符DP1 OP对由第一数据路径340执行的操作进行编码。结果端口信号DP1Result Port对寄存器堆写入端口进行编码,该寄存器堆写入端口用于将第一数据路径340待执行的操作的结果写入寄存器堆。第一操作数端口信号DP1 OP1 Port对寄存器堆进行编码,该寄存器堆用于读取由第一数据路径340待执行的操作的第一操作数。第二操作数端口信号DP1 OP2 Port对寄存器堆进行编码,该寄存器堆用于读取由第一数据路径340待执行的操作的第二操作数。
操作标识符DP2 OP对将由第二数据路径440执行的操作进行编码。结果端口信号DP2 Result Port对寄存器堆写入端口进行编码,该寄存器堆写入端口用于将第二数据路径440待执行的操作的结果写入寄存器堆。第一操作数端口信号DP2 OP1 Port对寄存器堆进行编码,该寄存器堆用于读取由第二数据路径440待执行的操作的第一操作数。第二操作数端口信号DP2 OP2 Port对寄存器堆进行编码,该寄存器堆用于读取由第二数据路径440待执行的操作的第二操作数。
正如本领域技术人员所理解的,一些操作需要不多于两个操作数。对于这些操作,操作信号包括零个或一个操作数端口信号。此外,正如本领域技术人员所理解的,一些操作需要两个以上操作数。对于支持多于两个操作数的数据路径块电路,数据路径块电路300包括一个或多个额外的操作数多路选择器,而对于需要多于两个操作数的指令,操作信号包括两个以上的(诸如3或4个)操作数端口信号。
基于在选择器输入端的第一操作数端口信号DP1 OP1 Port,第一操作数多路选择器320访问由第一操作数端口信号DP1 OP1 Port识别的第一读取端口,并将其上的操作数数据信号提供给作为第一操作数输入端的第一数据路径电路340,用于由第一数据路径电路340执行的操作。
基于在选择器输入端的第二操作数端口信号DP1 OP2 Port,第二操作数多路选择器320访问由第二操作数端口信号DP1 OP2 Port识别的第二读取端口,并将其上的操作数数据信号提供给作为第二操作数输入端的第一数据路径电路340,用于由第一数据路径电路340执行的操作。
基于在选择器输入端的第一操作数端口信号DP2 OP1 Port,第一操作数多路选择器420访问由第一操作数端口信号DP2 OP1 Port识别的第一读取端口,并将其上的操作数数据信号提供给作为第一操作数输入端的第一数据路径电路440,用于由第一数据路径电路440执行的操作。
基于在选择器输入端的第二操作数端口信号DP2 OP2 Port,第二操作数多路选择器410访问由第二操作数端口信号DP2 OP2 Port识别的第二读取端口,并将其上的操作数数据信号提供给作为第二操作数输入端的第二数据路径电路440,用于由第二数据路径电路440执行的操作。
第一数据路径电路340包括多个逻辑电路,每个逻辑电路用于接收特定数量的操作数。每个逻辑电路还用于执行特定数据路径操作以基于接收到的操作数数据信号生成一个或多个结果。例如,第一数据路径电路340可以包括下列每种逻辑电路中的一个或多个:移位器、加法器和乘法器。正如本领域技术人员所理解的,第一数据路径电路340还可以包括多个其他每种逻辑电路中的一个或多个。
基于操作标识符DP1 OP,该操作标识符DP1 OP对第一数据路径电路340执行的数据路径操作进行编码,第一数据路径电路340选择一个或多个逻辑电路。作为选择的结果,所选择的逻辑电路接收第一和第二多路选择器电路310和320的第一和第二操作数,其中第一和第二操作数对数据进行编码以用作所选择的第一数据路径操作逻辑电路的操作数。
正如本领域技术人员所理解的,响应于第一和第二多路选择器电路310和320的第一和第二操作数,第一数据路径电路340的所选逻辑电路根据所选逻辑电路的逻辑电路图生成第一结果。生成的第一结果被提供给结果多路选择器330。
第二数据路径电路440包括多个逻辑电路,每个逻辑电路用于接收特定数量的操作数。每个逻辑电路还用于执行特定数据路径操作以基于接收到的操作数数据信号生成一个或多个结果。例如,第二数据路径电路440可以包括下列每种逻辑电路中的一个或多个:移位器、加法器和乘法器。正如本领域技术人员所理解的,第二数据路径电路440还可以包括多个其他每种逻辑电路中的一个或多个。
基于操作标识符DP2 OP,该操作标识符DP1 OP对第二数据路径电路440执行的数据路径操作进行编码,第二数据路径电路440选择一个或多个逻辑电路。作为选择的结果,所选择的逻辑电路接收第一和第二多路选择器电路410和420的第一和第二操作数,其中第一和第二操作数对数据进行编码以用作所选择的第二数据路径操作逻辑电路的操作数。
正如本领域技术人员所理解的,响应于第一和第二多路选择器电路410和420的第一和第二操作数,第二数据路径电路440的所选逻辑电路根据所选逻辑电路的逻辑电路图生成第二结果。生成的第二结果被提供给结果多路选择器430。
基于选择器输入端的结果端口信号DP1 Result Port,由于结果端口信号DP1Result Port对寄存器堆写入端口进行编码,该寄存器堆写入端口用于将第一数据路径电路340执行的数据路径操作的结果写入寄存器堆,结果多路选择器330将第一结果提供给寄存器堆的所识别的写入端口。基于选择器输入端的结果端口信号DP2 Result Port,由于结果端口信号DP2 Result Port对寄存器堆写入端口进行编码,该寄存器堆写入端口用于将第二数据路径电路440执行的数据路径操作的结果写入寄存器堆,结果多路选择器430将第二结果提供给寄存器堆的所识别的写入端口。
提供给寄存器堆的识别写入端口的第一和第二结果被写入寄存器堆内的指定寄存器。
正如本领域技术人员所理解的,一些逻辑电路生成不止一个结果。容纳生成多于一个结果的逻辑电路的数据路径块电路的实施例具有一个或多个附加结果多路选择器,每个多路选择器接收附加结果,并将接收到的结果提供给可用写入端口中的一个标识写入端口,其中标识是包含在操作信号中的附加结果端口信号中。
图4为示出使用数据路径块电路的方法500的流程图。例如,方法500可以由图1的处理器电路100或与图1的处理器电路100一起执行。例如,方法500可以由图2的数据路径块电路200和图3的300中的任意一个执行或与其中之一一起执行。
510,数据路径块电路从诸如指令解码器电路接收信号,例如图1的指令解码器电路160。操作信号对待执行的数据路径操作进行编码。操作信号还标识每个操作数数据信号的读取端口,每个操作数数据信号的读取端口用于从诸如寄存器堆读取操作数数据,例如图1的数据寄存器堆电路120的寄存器堆。
例如,数据路径块电路可以用于接收操作信号,该操作信号包括操作标识符OP、结果端口信号Result Port、第一操作数端口信号OP1 Port以及第二操作数端口信号OP2Port。操作标识符OP对由数据路径块电路执行的操作进行编码。结果端口信号Result Port对寄存器堆写入端口进行编码,该寄存器堆写入端口用于将结果写入寄存器堆。第一操作数端口信号OP1端口对寄存器堆进行编码,以用于读取由数据路径块电路执行的操作的第一操作数。第二操作数端口信号OP2端口对寄存器堆进行编码以用于读取由数据路径块电路执行的操作的第二操作数。
520,使用第一多路选择器,访问由第一操作数端口信号OP1 Port识别的读取端口,并将其上的操作数数据信号提供给数据路径电路,该数据路径电路由数据路径电路待执行的操作的第一操作数输入端。
530,使用第二多路选择器,访问由第二操作数端口信号OP2 Port识别的读取端口,并将其上的操作数数据信号提供给数据路径电路,该数据路径电路由数据路径电路待执行的操作的第二操作数输入端。
540,基于操作标识OP选择数据路径电路的逻辑电路,其中,所选择的逻辑电路与操作标识OP的功能相对应。作为选择的结果,所选择的逻辑电路接收第一和第二操作数,该第一和第二操作数对用作所选逻辑电路的数据路径操作的操作数的数据进行编码。
550,正如本领域技术人员所理解的,所选逻辑电路根据所选逻辑电路的逻辑电路图基于第一和第二操作数生成结果。
方法500可以由具有多个数据路径的数据路径块电路执行,例如,具有第一数据路径340和第二数据路径440的数据路径块电路300。例如,参考数据路径块电路300,第一操作数多路选择器310、第二操作数多路选择器320、第一数据路径340和结果多路选择器330可以或可以用于执行方法500。此外,第一操作数多路选择器410、第二操作数多路选择器420、第二数据路径440和结果多路选择器430也可以或可以用于执行方法500。在一些实施例中,第一操作数多路选择器310、第二操作数多路选择器320、第一数据路径340和结果多路选择器330执行或用于执行方法500,而第一操作数多路选择器410、第二操作数多路选择器420、第二数据路径440和结果多路选择器430也执行或用于执行方法500,使得第一数据路径电路340和第二数据路径电路440两者同时执行方法500。在一些实施例中,对第一数据路径电路340和第二数据路径电路440串行或连续地执行方法500。
在一些实施例中,参考图4讨论的所有动作都发生在单个计算周期内。例如,参考图4讨论的所有动作都发生在单个CPU时钟周期内。
图5为示出使用数据路径块电路的方法600的流程图。例如,方法600可以由图1的处理器电路100或与图1的处理器电路100一起执行。例如,方法600可以由图2的数据路径块电路200和图3的300中的任意一个执行或与其中之一一起执行。
610,数据路径块电路从诸如指令解码器电路接收信号,例如图1的指令解码器电路160。操作信号对待执行的数据路径操作进行编码。操作信号还标识每个操作数数据信号的读取端口,每个操作数数据信号的读取端口用于从诸如寄存器堆读取操作数数据,例如图1的数据寄存器堆电路120的寄存器堆。
例如,数据路径块电路可以用于接收操作信号,该操作信号包括操作标识符OP、结果端口信号Result Port、第一操作数端口信号OP1 Port以及第二操作数端口信号OP2Port。操作标识符OP对将由数据路径块电路执行的操作进行编码。结果端口信号ResultPort对寄存器堆写入端口进行编码,该寄存器堆写入端口用于将结果写入寄存器堆。第一操作数端口信号OP1端口对寄存器堆进行编码,以用于读取由数据路径块电路执行的操作的第一操作数。第二操作数端口信号OP2端口对寄存器堆进行编码,以用于读取由数据路径块电路执行的操作的第二操作数。
620,基于操作标识OP选择数据路径电路的逻辑电路,其中,所选择的逻辑电路与操作标识OP的功能相对应。作为选择的结果,所选择的逻辑电路接收第一和第二操作数,该第一和第二操作数对用作所选逻辑电路的数据路径操作的操作数的数据进行编码。
630,正如本领域技术人员所理解的,所选逻辑电路根据所选逻辑电路的逻辑电路图基于第一和第二操作数生成结果。
640,使用多路选择器,访问由结果端口信号Result Port标识的写入端口,并且在650,将由所选择的逻辑电路生成的结果提供给所访问的写入端口。
方法600可以由具有多个数据路径的数据路径块电路执行,例如,具有第一数据路径340和第二数据路径440的数据路径块电路300。例如,参考数据路径块电路300,第一操作数多路选择器310、第二操作数多路选择器320、第一数据路径340和结果多路选择器330可以或可以用于执行方法600。此外,第一操作数多路选择器410、第二操作数多路选择器420、第二数据路径440和结果多路选择器430也可以或可以用于执行方法600。在一些实施例中,第一操作数多路选择器310、第二操作数多路选择器320、第一数据路径340和结果多路选择器330执行或用于执行方法600,而第一操作数多路选择器410、第二操作数多路选择器420、第二数据路径440和结果多路选择器430也执行或用于执行方法600,使得第一数据路径电路340和第二数据路径电路440两者同时执行方法600。在一些实施例中,对第一数据路径电路340和第二数据路径电路440串行或连续地执行方法600。
在一些实施例中,参考图5讨论的所有动作都发生在单个计算周期内。例如,参考图5讨论的所有动作都发生在单个CPU时钟周期内。
在以上描述和权利要求中,诸如“至少一个”或“一个或多个”等短语可以出现在元件或特征的组合列表之后。术语“和/或”也可以出现在两个或多个元件或特征的列表中。除非其使用的上下文另有明确或隐含的矛盾,否则该短语旨在表示任何单独列出的元件或特征,或任何列举的元件或特征与任何其他列举的元件或特征的组合。例如,短语“A和B中的至少一个;”、“A和B中的一个或多个;”以及“A和/或B”分别表示“A单独、B单独或A和B一起”。对包括三个或三个以上项目的清单也有类似的解释。例如,短语“A、B和C中的至少一个”、“A、B和C中的一个或多个”和“A、B和/或C”分别表示“A单独,B单独,C单独,A和B一起,A和C一起,B和C一起,或A和B和C一起”。在上文和权利要求中使用术语“基于”旨在表示“至少部分基于”,从而使得未列举的特征或元件也是允许的。
根据期望的配置,本文描述的主题可以体现在系统、装置、方法和/或物品中。前述描述中所述的实现方式并不代表与本文描述的主题相一致的所有实现方式。相反,它们仅仅是于与所描述的主题相关的方面相一致的一些示例。尽管上文已经详细描述了一些变化,但是也能进行其他修改或添加。特别地,除了本文所述的特征和/或变化之外,还可以提供其他特征和/或变化。例如,上述的实现方式可以指向公开的特征的各种组合和子组合和/或上述公开的几个另外的特征的组合和子组合。此外,附图中描述和/或本文中描述的逻辑流程不一定需要所示的特定顺序或顺序来实现期望的结果。其他实现方式可能在以下权利要求的范围内。
Claims (20)
1.一种数据路径块电路,包括:
第一数据路径电路,包括多个逻辑电路,每个逻辑电路用于接收用作第一和第二操作数的数据,并执行数据路径操作以基于所述第一和第二操作数生成结果;
第一操作数多路选择器,包括:
第一多个数据输入端,每个数据输入端与下列之一连接:
第一寄存器堆,包括第一数量的读取和写入端口,以及
第二寄存器堆,包括第二数量的读取和写入端口,
其中,所述第一数量的读取和写入端口不同于所述第二数量的读取和写入端口;以及
第二操作数多路选择器,包括:
第二多个数据输入端,每个数据输入端与下列之一连接:
所述第一寄存器堆,以及
所述第二寄存器堆,
其中,所述第一操作数多路选择器与所述第二操作数多路选择器中至少一个包括与所述第一寄存器堆连接的数据输入端,以及
其中,所述第一操作数多路选择器与所述第二操作数多路选择器中至少一个包括与所述第二寄存器堆连接的数据输入端。
2.根据权利要求1所述的数据路径块电路,进一步包括操作信号端口,用于接收操作信号,所述操作信号包括识别用于所述第一操作数的所述第一和第二寄存器堆之一的第一读取端口的数据,以及用于所述第二操作数的所述第一和第二寄存器堆之一的第二读取端口的数据,其中,所述第一操作数多路选择器用于接收识别所述第一读取端口的数据,并基于所述接收的识别所述第一读取端口的数据,选择第一数据输入端,以及,所述第二操作数多路选择器用于接收识别所述第二读取端口的数据,并基于所述接收的识别所述第二读取端口的数据,选择第二数据输入端。
3.根据权利要求2所述的数据路径块电路,其中,所述第一读取端口与所述第一寄存器堆连接,以及,所述第二读取端口与所述第二寄存器堆连接。
4.根据权利要求2所述的数据路径块电路,其中,所述第一操作数多路选择器用于向所述第一数据路径电路提供所述第一数据输入端的数据作为所述第一操作数,以及,所述第二操作数多路选择器用于向所述第一数据路径电路提供所述第二数据输入端的数据作为所述第二操作数。
5.根据权利要求4所述的数据路径块电路,其中,所述操作信号进一步识别所述第一数据路径电路的特定数据路径操作,其中所述第一数据路径电路用于基于所述操作信号选择特定逻辑电路。
6.根据权利要求5所述的数据路径块电路,其中,所述选择的特定逻辑电路用于对所述第一和第二操作数执行所述特定数据路径操作以生成所述结果。
7.根据权利要求6所述的数据路径块电路,其中,所述操作信号进一步识别用于所述结果的特定写入端口,以及其中所述第一数据路径电路用于向所述特定写入端口提供所述结果。
8.根据权利要求7所述的数据路径块电路,其中,所述第一读取端口与所述第一寄存器堆连接,以及,所述第二读取端口与所述第二寄存器堆连接。
9.根据权利要求7所述的数据路径块电路,其中,所述第一读取端口和所述第二读取端口与所述第一寄存器堆连接,以及其中所述特定写入端口与所述第二寄存器堆连接。
10.根据权利要求1所述的数据路径块电路,进一步包括:
第二数据路径电路,包括多个逻辑电路,每个逻辑电路用于接收用作第三和第四操作数的数据,并执行第二数据路径操作以基于所述第三和第四操作数生成第二结果;以及
操作信号端口,用于接收操作信号,所述操作信号识别用于所述第三操作数的所述第一和第二寄存器堆之一的第一读取端口,以及用于所述第四操作数的所述第一和第二寄存器堆之一的第二读取端口。
11.根据权利要求10所述的数据路径块电路,其中,所述第一读取端口与所述第一寄存器堆连接,以及其中所述第二读取端口与所述第二寄存器堆连接。
12.根据权利要求10所述的数据路径块电路,其中,所述操作信号进一步识别所述第二数据路径电路的特定数据路径操作,其中,所述第二数据路径电路用于基于所述操作信号选择特定逻辑电路。
13.根据权利要求12所述的数据路径块电路,其中,所述选择的特定逻辑电路用于对所述第三和第四操作数执行所述特定数据路径操作以生成所述结果,其中,所述操作信号进一步识别用于所述结果的特定写入端口,以及,其中所述第二数据路径电路用于向所述特定写入端口提供所述结果。
14.根据权利要求13所述的数据路径块电路,其中,所述第一读取端口与所述第一寄存器堆连接,以及,所述第二读取端口与所述第二寄存器堆连接。
15.根据权利要求13所述的数据路径块电路,其中,所述第一读取端口和所述第二读取端口与所述第一寄存器堆连接,以及其中所述特定写入端口与所述第二寄存器堆连接。
16.一种使用数据路径块电路的方法,所述方法包括:
接收操作信号,所述操作信号包括识别用于第一操作数的第一和第二寄存器堆之一的第一读取端口,以及识别用于第二操作数的所述第一和第二寄存器堆的第二读取端口,其中所述第一寄存器堆包括第一数量的读取和写入端口,其中所述第二寄存器堆包括第二数量的读取和写入端口,以及,其中所述第一数量的读取和写入端口不同于所述第二数量的读取和写入端口;
使用第一操作数多路选择器,接收识别所述第一读取端口的所述操作信号的数据;
使用所述第一操作数多路选择器,基于所述接收的识别所述第一读取端口的数据,选择第一数据输入端;
使用第二操作数多路选择器,接收识别所述第二读取端口的所述操作信号的数据;
使用所述第二操作数多路选择器,基于所述接收的识别所述第二读取端口的数据,选择第二数据输入端;
使用第一数据路径电路的逻辑电路,接收所述第一和第二操作数多路选择器的数据以用作第一和第二操作数;以及
使用所述逻辑电路,基于所述第一和第二操作数执行数据路径操作以生成结果,
其中,所述第一操作数多路选择器与所述第二操作数多路选择器中至少一个包括与所述第一寄存器堆连接的数据输入端,以及
其中,所述第一操作数多路选择器与所述第二操作数多路选择器中至少一个包括与所述第二寄存器堆连接的数据输入端。
17.根据权利要求16所述的方法,还包括:
使用所述第一操作数多路选择器,向所述逻辑电路提供所述第一数据输入端的数据作为所述第一操作数;以及
使用所述第二操作数多路选择器,向所述逻辑电路提供所述第二数据输入端的数据作为所述第二操作数。
18.根据权利要求16所述的方法,其中,所述操作信号进一步识别用于所述结果的特定写入端口,以及,其中所述方法进一步包括使用所述逻辑电路向所述特定写入端口提供所述结果。
19.根据权利要求18所述的方法,其中,所述第一读取端口与所述第一寄存器堆连接,以及其中所述第二读取端口与所述第二寄存器堆连接。
20.根据权利要求18所述的方法,其中,所述第一读取端口和所述第二读取端口与所述第一寄存器堆连接,以及其中所述特定写入端口与所述第二寄存器堆连接。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/941,485 | 2020-07-28 | ||
US16/941,485 US11243905B1 (en) | 2020-07-28 | 2020-07-28 | RISC processor having specialized data path for specialized registers |
PCT/CN2021/102676 WO2022022195A1 (en) | 2020-07-28 | 2021-06-28 | Risc processor having specialized datapath for specialized registers |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114008603A true CN114008603A (zh) | 2022-02-01 |
CN114008603B CN114008603B (zh) | 2024-09-13 |
Family
ID=79932631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180003873.6A Active CN114008603B (zh) | 2020-07-28 | 2021-06-28 | 数据路径块电路和使用数据路径块电路的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114008603B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010011342A1 (en) * | 1998-07-09 | 2001-08-02 | Pechanek Gerald G. | Methods and apparatus for dynamic instruction controlled reconfigurable register file with extended precision |
US6629232B1 (en) * | 1999-11-05 | 2003-09-30 | Intel Corporation | Copied register files for data processors having many execution units |
CN1469236A (zh) * | 2002-07-15 | 2004-01-21 | 北京南思达科技发展有限公司 | 一种可重构寄存器堆及其设计方法 |
US20040128475A1 (en) * | 2002-12-31 | 2004-07-01 | Gad Sheaffer | Widely accessible processor register file and method for use |
US20050091475A1 (en) * | 2003-10-22 | 2005-04-28 | Intel Corporation | Method and apparatus for limiting ports in a register alias table |
CN1740964A (zh) * | 2004-11-01 | 2006-03-01 | 威盛电子股份有限公司 | 限制指令宽度处理器中增加寄存器寻址空间的系统与方法 |
CN1766834A (zh) * | 2005-01-20 | 2006-05-03 | 西安电子科技大学 | 双算术逻辑单元精简指令集8位微控制器 |
US20070239970A1 (en) * | 2006-04-06 | 2007-10-11 | I-Tao Liao | Apparatus For Cooperative Sharing Of Operand Access Port Of A Banked Register File |
JP2007280297A (ja) * | 2006-04-11 | 2007-10-25 | Seiko Epson Corp | プロセッサ、レジスタファイル回路、集積回路装置、マイクロコンピュータ及び電子機器 |
US7490208B1 (en) * | 2004-10-05 | 2009-02-10 | Nvidia Corporation | Architecture for compact multi-ported register file |
US20170371836A1 (en) * | 2016-06-23 | 2017-12-28 | Altera Corporation | Methods for specifying processor architectures for programmable integrated circuits |
-
2021
- 2021-06-28 CN CN202180003873.6A patent/CN114008603B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010011342A1 (en) * | 1998-07-09 | 2001-08-02 | Pechanek Gerald G. | Methods and apparatus for dynamic instruction controlled reconfigurable register file with extended precision |
US6629232B1 (en) * | 1999-11-05 | 2003-09-30 | Intel Corporation | Copied register files for data processors having many execution units |
CN1469236A (zh) * | 2002-07-15 | 2004-01-21 | 北京南思达科技发展有限公司 | 一种可重构寄存器堆及其设计方法 |
US20040128475A1 (en) * | 2002-12-31 | 2004-07-01 | Gad Sheaffer | Widely accessible processor register file and method for use |
US20050091475A1 (en) * | 2003-10-22 | 2005-04-28 | Intel Corporation | Method and apparatus for limiting ports in a register alias table |
US7490208B1 (en) * | 2004-10-05 | 2009-02-10 | Nvidia Corporation | Architecture for compact multi-ported register file |
CN1740964A (zh) * | 2004-11-01 | 2006-03-01 | 威盛电子股份有限公司 | 限制指令宽度处理器中增加寄存器寻址空间的系统与方法 |
CN1766834A (zh) * | 2005-01-20 | 2006-05-03 | 西安电子科技大学 | 双算术逻辑单元精简指令集8位微控制器 |
US20070239970A1 (en) * | 2006-04-06 | 2007-10-11 | I-Tao Liao | Apparatus For Cooperative Sharing Of Operand Access Port Of A Banked Register File |
JP2007280297A (ja) * | 2006-04-11 | 2007-10-25 | Seiko Epson Corp | プロセッサ、レジスタファイル回路、集積回路装置、マイクロコンピュータ及び電子機器 |
US20170371836A1 (en) * | 2016-06-23 | 2017-12-28 | Altera Corporation | Methods for specifying processor architectures for programmable integrated circuits |
Also Published As
Publication number | Publication date |
---|---|
CN114008603B (zh) | 2024-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4862407A (en) | Digital signal processing apparatus | |
US5922066A (en) | Multifunction data aligner in wide data width processor | |
US5287532A (en) | Processor elements having multi-byte structure shift register for shifting data either byte wise or bit wise with single-bit output formed at bit positions thereof spaced by one byte | |
US6122722A (en) | VLIW processor with less instruction issue slots than functional units | |
US7127593B2 (en) | Conditional execution with multiple destination stores | |
KR100227276B1 (ko) | 단일 사이클 마이크로 명령을 이용한 명령 스케줄링 방법 및 프로세서 | |
EP1267257A2 (en) | Conditional execution per data path slice | |
US8713284B1 (en) | Methods and apparatus for address translation functions | |
WO1998011483A1 (en) | A vector processing system with multi-operation, run-time configurable pipelines | |
EP1267258A2 (en) | Setting up predicates in a processor with multiple data paths | |
CN101194228B (zh) | 执行微处理器和微控制器的子例行程序的快速返回的装置 | |
US20040078554A1 (en) | Digital signal processor with cascaded SIMD organization | |
JPH1165844A (ja) | パイプラインバイパス機能を有するデータ処理装置 | |
EP1267255A2 (en) | Conditional branch execution in a processor with multiple data paths | |
JP5052713B2 (ja) | 条件付き命令を備えるベクトルデータプロセッサ | |
US7111155B1 (en) | Digital signal processor computation core with input operand selection from operand bus for dual operations | |
EP2267896A2 (en) | Method for implementing finite impulse response filters | |
WO2022022194A1 (en) | Risc processor having specialized registers | |
CN114008603B (zh) | 数据路径块电路和使用数据路径块电路的方法 | |
US7107302B1 (en) | Finite impulse response filter algorithm for implementation on digital signal processor having dual execution units | |
US7134000B2 (en) | Methods and apparatus for instruction alignment including current instruction pointer logic responsive to instruction length information | |
WO2022022195A1 (en) | Risc processor having specialized datapath for specialized registers | |
US20030009652A1 (en) | Data processing system and control method | |
JP3534987B2 (ja) | 情報処理装置 | |
CN114008604A (zh) | 具有专用寄存器的risc处理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |