CN114008604A - 具有专用寄存器的risc处理器 - Google Patents

具有专用寄存器的risc处理器 Download PDF

Info

Publication number
CN114008604A
CN114008604A CN202180003891.4A CN202180003891A CN114008604A CN 114008604 A CN114008604 A CN 114008604A CN 202180003891 A CN202180003891 A CN 202180003891A CN 114008604 A CN114008604 A CN 114008604A
Authority
CN
China
Prior art keywords
data
circuit
register file
register
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.)
Pending
Application number
CN202180003891.4A
Other languages
English (en)
Inventor
许在勋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Goodix Technology Co Ltd
Original Assignee
Shenzhen Goodix Technology Co Ltd
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
Priority claimed from US16/941,499 external-priority patent/US11126588B1/en
Application filed by Shenzhen Goodix Technology Co Ltd filed Critical Shenzhen Goodix Technology Co Ltd
Publication of CN114008604A publication Critical patent/CN114008604A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Advance Control (AREA)

Abstract

本申请公开了一种处理器电路。该处理器电路包括数据路径块电路,用于执行数据路径操作以生成一个或多个结果。该处理器电路还包括具有第一寄存器堆的数据寄存器堆电路,其中第一寄存器堆具有第一数量的读取和写入端口。该数据寄存器堆电路还包括第二寄存器堆,其中第二寄存器堆具有第二不同数量的读取和写入端口。该处理器电路还包括指令解码器电路,用于为数据路径块电路提供操作信号,其中操作信号识别由数据路径块电路执行的特定数据路径操作以及识别数据寄存器堆电路的一个或多个读取端口以检索对第一和第二操作数进行编码的数据。

Description

具有专用寄存器的RISC处理器
优先权要求和相关申请的交叉引用
本专利文件要求于2020年7月28日提交的美国专利申请号为16/941,499,发明名称为“具有专用寄存器的RISC处理器”的权益和优先权。上述专利申请的全部内容通过引用并入作为本专利文件公开的一部分。
技术领域
本文所描述的主题涉及RISC处理器架构,并且更具体地,涉及具有专用寄存器的RISC处理器架构。
背景技术
RISC处理器通常在寄存器堆中具有多个寄存器,这些寄存器用作处理器执行计算的临时存储器存储位置。寄存器堆用于存储各种类型的计算变量,因此每个寄存器都配置为用于每种类型的计算变量。因为每个寄存器都能用于每种类型的计算变量,所以每个寄存器堆都能在具有每个计算变量所需要的所有特征的存储器电路中实现。相应地,每个寄存器堆需要一定数量的管芯面积。在本领域中,需要对管芯面积需求较少的寄存器堆。
发明内容
一个创造性方面是一种处理器电路。所述处理器电路包括数据路径块电路,用于执行多个数据路径操作中的任何一个以基于第一和第二操作数生成一个或多个结果。所述处理器还包括数据寄存器堆电路,具有第一寄存器堆,其中所述第一寄存器堆包括第一多个寄存器,以及第一数量的读取和写入端口。所述数据寄存器堆电路还包括第二寄存器堆,其中所述第二寄存器堆包括第二多个寄存器,以及第二数量的读取和写入端口。所述第一数量的读取和写入端口不同于所述第二数量的读取和写入端口。所述处理器电路还包括指令解码器电路,用于为所述数据路径块电路提供操作信号,其中所述操作信号识别由所述数据路径块电路执行的特定数据路径操作以及识别所述数据寄存器堆电路的一个或多个读取端口以检索对所述第一和第二操作数进行编码的数据。
在一些实施例中,响应于所述操作信号,所述数据路径块电路用于从所识别的读取端口检索第一和第二操作数数据信号,其中所述第一和第二操作数信号分别对所述第一和第二操作数进行编码。
在一些实施例中,响应于所述操作信号,所述数据路径块电路用于对所述第一和第二操作数执行所识别的特定数据电路操作以生成所述一个或多个结果。
在一些实施例中,所述操作信号识别一个或多个写入端口,以及所述数据路径块电路用于为所识别的写入端口提供所述一个或多个结果。
在一些实施例中,所述指令解码器电路用于从存储器接收数据路径指令,其中所述数据路径指令对所述特定数据路径操作,存储所述特定数据路径操作的所述数据寄存器堆电路内的一个或多个结果的一个或多个操作结果寄存器,以及所述数据寄存器堆电路内存储数据用作所述第一和第二操作数的第一和第二操作数寄存器进行编码。
在一些实施例中,所述第一操作数在所述第一寄存器堆中,以及所述第二操作数在所述第二寄存器堆中。
在一些实施例中,所述一个或多个操作结果寄存器中的至少一个在所述第一寄存堆中,以及所述第一操作数寄存器和所述第二操作数寄存器中的至少一个在所述第二寄存堆中。
在一些实施例中,所述指令解码器电路用于为所述数据寄存器堆电路提供寄存器信号,以及所述寄存器信号识别所述一个或多个操作结果寄存器,所述一个或多个操作结果寄存器的一个或多个写入端口,所述第一和第二操作数寄存器,和所述第一和第二操作数寄存器的第一和第二读取端口。
在一些实施例中,基于所述寄存器信号,所述数据寄存器堆电路用于为所述第一和第二读取端口提供存储在所述第一和第二操作数中的数据。
在一些实施例中,基于所述寄存器信号,所述数据寄存器堆电路用于从所述一个或多个操作结果寄存器的所述一个或多个写入端口向所述一个或多个操作结果寄存器读取数据。
另一个创造性方面是一种制作处理器电路的方法。所述方法包括形成数据路径块电路,其中,所述数据路径块电路用于执行多个数据路径操作中的任何一个以基于第一和第二操作数生成一个或多个结果。所述方法还包括通过形成第一寄存器堆形成数据寄存器堆电路,其中所述第一寄存器堆包括第一多个寄存器,以及第一数量的读取和写入端口,以及通过形成第二寄存器堆,其中所述第二寄存器堆包括第二多个寄存器,以及第二数量的读取和写入端口,其中,所述第一数量的读取和写入端口不同于所述第二数量的读取和写入端口。所述方法还包括形成指令解码器电路,用于为所述数据路径块电路提供操作信号,其中,所述操作信号识别由所述数据路径块电路执行的特定数据路径操作以及识别所述数据寄存器堆电路的一个或多个读取端口以检索对所述第一和第二操作数进行编码的数据。
在一些实施例中,响应于所述操作信号,所述数据路径块电路用于从所识别的读取端口检索第一和第二操作数数据信号,其中,所述第一和第二操作数信号分别对所述第一和第二操作数进行编码。
在一些实施例中,响应于所述操作信号,所述数据路径块电路用于对所述第一和第二操作数执行所识别的特定数据电路操作以生成所述一个或多个结果。
在一些实施例中,所述操作信号识别一个或多个写入端口,以及所述数据路径块电路用于为所识别的写入端口提供所述一个或多个结果。
在一些实施例中,所述指令解码器电路用于从存储器接收数据路径指令,其中,所述数据路径指令对所述特定数据路径操作,存储所述特定数据路径操作的所述数据寄存器堆电路内的一个或多个结果的一个或多个操作结果寄存器,以及所述数据寄存器堆电路内存储数据用作所述第一和第二操作数的第一和第二操作数寄存器进行编码。
在一些实施例中,所述第一操作数在所述第一寄存器堆中,以及所述第二操作数在所述第二寄存器堆中。
在一些实施例中,所述一个或多个操作结果寄存器中的至少一个在所述第一寄存堆中,以及所述第一操作数寄存器和所述第二操作数寄存器中的至少一个在所述第二寄存堆中。
在一些实施例中,所述指令解码器电路用于为所述数据寄存器堆电路提供寄存器信号,其中,所述寄存器信号识别所述一个或多个操作结果寄存器,所述一个或多个操作结果寄存器的一个或多个写入端口,所述第一和第二操作数寄存器,和所述第一和第二操作数寄存器的第一和第二读取端口。
在一些实施例中,基于所述寄存器信号,所述数据寄存器堆电路用于为所述第一和第二读取端口提供存储在所述第一和第二操作数中的数据。
在一些实施例中,基于所述寄存器信号,所述数据寄存器堆电路用于从所述一个或多个操作结果寄存器的所述一个或多个写入端口向所述一个或多个操作结果寄存器读取数据。
附图说明
包含在本说明书中并构成其一部分的附图示出了本文所公开的主题的某些方面,并且与说明书一起帮助解释了与所公开的实现方式相关联的一些原理。
图1是处理器电路的实施例的示意图。
图2是处理器电路的实施例的示意图。
图3是处理器电路的实施例的示意图。
图4是处理器电路的实施例的示意图。
图5是处理器电路的实施例的示意图。
图6是说明一种制作处理器电路的方法的流程图。
在实际应用中,类似的附图标记表示类似的结构、特征或元件。
具体实施方式
本文结合附图说明本发明的特定实施例。本文结合附图说明本发明的特定实施例。
本文将阐述各种细节,因为它们涉及某些实施例。但是,本发明也可以以不同于本文所描述的方式来实现。在不脱离本发明的情况下,本领域技术人员可以对所讨论的实施例进行修改。因此,本发明不限于本文所公开的特定实施例。
处理器寄存器堆需要一定数量的电路管芯面积和一定数量的功率。本文所讨论的实施例公开了比常规寄存器堆使用更少电路管芯面积和更少功率的寄存器堆。
处理器,例如RISC处理器,使用加载/计算/存储(LOAD/CALCULATE/STORE)程序来处理指令,其中数据被加载到一个或多个寄存器中,对使用具有多个数据路径块的数据路径的数据路径块的寄存器执行计算,以及数据路径块的计算结果存储在一个或多个寄存器中。读取和写入访问由数据路径的存储器和数据路径块的读取和写入端口提供给每个寄存器。对于实现方式,设计人员基于例如执行速度和电路管芯面积之间的权衡来确定寄存器和寄存器堆的数量。此外,设计人员确定用于寄存器堆的存储器和数据路径的多个读取和写入端口。每个寄存器堆需要一定数量的电路管芯面积和一定数量的功率。
本文所讨论的实施例允许寄存器堆使用比常规寄存器堆更少的电路管芯面积和更少的功率。实施例具有通用寄存器堆,其具有存储器和数据路径的确定数量的读取和写入端口,还具有专用寄存器,其根据每个寄存器的使用方法使用不同数量的端口。
例如,一些寄存器堆可以用作通用寄存器堆,它们具有每种端口类型的预设数量。此外,结果变量寄存器堆可以具有两个读取端口和一个写入端口,而常量变量寄存器堆可以具有一个端口和一个写入端口。在一些实施例中,可以使用具有其他端口配置的其他寄存器堆。因为结果变量和常量变量寄存器使用更少的端口,所有它们使用更少的面积和更少的功率。因此,对于相同数量的寄存器,使用这些专用寄存器代替多个通用寄存器,使用更少的电路管芯面积和更少的功率。
参考图1讨论具有数据寄存器堆,指令解码器和数据路径块的处理器电路的功能。参考图2-4中的每一个讨论具有特定端口配置的数据寄存器堆、指令解码器和数据路径块的处理器电路的功能。参考图5讨论具有不同端口配置的数据寄存器堆,指令解码器,数据路径块的处理器电路的功能。参考图6讨论一种制作处理器电路的方法。
图1是与存储器50接口的处理器电路100的实施例的示意图。处理器电路100包括数据寄存器堆电路120,数据路径块电路140,和指令解码器电路160。处理器电路100可以用作具有本领域技术人员已知的其他处理器电路的中央处理单元(central processingunit,CPU)的一部分。在一些实施例中,可以使用具有不同于本文参考处理器电路100具体讨论的那些特征之外的特征的处理器电路。
正如本领域技术人员所理解的,存储器50可以是任何存储器结构。存储器50存储至少处理指令和数据。在处理器电路100接收指令和数据之后,处理器电路100执行使用基于读取指令的读取数据的操作。
指令解码器电路160用于从存储器电路50接收数据路径指令,其中数据路径指令使得数据路径块电路140生成存储在数据存储器堆电路120中的结果。每条数据路径指令对至少一个待执行的数据路径操作,数据寄存器堆电路120内存储数据路径操作的结果的寄存器,以及数据寄存器堆电路120内存储用作数据路径操作的操作数的数据的一个或多个寄存器进行编码。正如本领域技术人员所理解的,对于一些数据路径指令,存储数据路径操作的结果的寄存器与存储用作数据路径操作的操作数的数据的寄存器相同。
基于从存储器电路50接收到的数据路径指令,指令解码器电路160用于为数据寄存器堆电路120生成寄存器信号,该寄存器信号对一个或多个寄存器,以及数据寄存器堆电路120内一个或多个寄存器进行编码,在一个或多个寄存器中存储一个或多个数据路径操作的一个或多个结果,以及数据寄存器堆电路120内一个或多个寄存器存储用作一个或多个数据路径操作的操作数的数据。此外,基于从存储器50接收到的数据路径指令,指令解码器电路160用于为数据路径块电路140生成操作信号,该操作信号对待执行的一个或多个操作进行编码。
数据寄存器堆电路120用于从指令解码器电路160接收寄存器信号,其中该寄存器信号对寄存器,以及数据寄存器堆电路120中的一个或多个寄存器进行编码,在寄存器中存储一个或多个数据路径操作的一个或多个结果,以及数据寄存器堆电路120中的一个或多个寄存器存储用作一个或多个数据路径操作的操作数的数据。
基于从指令解码器电路160接收到的寄存器信号,该寄存器信号对一个或多个寄存器进行编码,该寄存器存储用作一个或多个数据路径操作的操作数的数据,数据寄存器堆电路120为数据路径块电路140生成操作数数据信号。例如,寄存器信号可以为存储数据的一个或多个寄存器中的每一个识别特定寄存器内的特定寄存器堆和特定寄存器,该数据用作一个或多个数据路径操作的操作数。响应于寄存器信号,读取来自所识别的特定寄存器的数据并将其作为操作数数据信号提供给数据路径块电路140。
数据路径块140用于从指令解码器电路160接收操作信号,该信号对待执行的一个或多个数据路径操作进行编码。此外,数据路径块140用于从数据寄存器堆电路120接收操作数数据信号,该操作数数据信号对用作一个或多个数据路径操作的操作数的数据进行编码。
数据路径块140包括多个逻辑电路,每个逻辑电路用于接收对多个操作数进行编码的特定数量的数据操作数信号。每个逻辑电路还用于执行特定的数据路径操作以基于接收到的操作数数据信号生成一个或多个结果。例如,数据路径块140可以包括以下逻辑电路中的每一个中的一个或多个:移位器、加法器和乘法器。正如本领域技术人员所理解的,数据路径块140可以另外包括多个其他逻辑电路中的每一个中的一个或多个。
基于接收到操作信号,该操作信号对待执行的一个或多个数据路径操作进行编码,数据路径块140选择一个或多个逻辑电路。作为选择的结果,所选择的逻辑电路接收操作数数据信号,该操作数数据信号对用作一个或多个数据路径操作的操作数的数据进行编码。
正如本领域技术人员所理解的,响应于操作数数据信号,所选择的逻辑电路根据所选择的逻辑电路的逻辑电路产生一个或多个结果。
所产生的一个或多个结果提供给数据寄存器堆电路120。
在一些实施例中,数据路径块140包括多个单独的数据路径,其中每个数据路径包括以下各项中的多个:移位器、加法器、乘法器和其他数据路径逻辑电路。在这些实施例中,每个数据路径用于同时计算单独的结果。相应地,在这些实施例中,数据路径块140从指令解码器电路160接收的操作信号对一个或多个数据路径操作进行编码,该一个或多个数据路径操作由一个或多个单独的数据路径执行。此外,数据路径块140从数据寄存器堆电路120接收的操作数数据信号对数据进行编码,该数据用作一个或多个数据路径操作的操作数,该一个或多个数据路径操作由一个或多个单独的数据路径执行。
提供给数据寄存器堆电路120的一个或多个结果被写入数据寄存器堆电路120内的指定寄存器。
如上所述,数据寄存器电路120用于从指令解码器电路160接收寄存器信号。基于接收到的寄存器信号,该寄存器信号识别存储一个或多个数据路径操作的一个或多个结果的一个或多个寄存器,数据寄存器堆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用于从指令解码器电路160接收寄存器信号。基于从指令解码器电路160接收到的寄存器信号,数据寄存器堆电路120根据寄存器指令与存储器电路交互,例如,通过从指定寄存器读取数据并在指定地址将读取数据写入存储器50,或者通过从存储器50中的指定地址读取数据并将读取数据写入指定寄存器。
图2是与存储器50接口的处理器电路200的实施例的示意图。处理器电路200包括数据寄存器堆电路220,数据路径块电路240,和指令解码器电路260。如图所示,在该实施例中,数据寄存器堆电路220中的数据寄存器堆中的每一个都包括与数据路径块电路240接口的五个读取端口和两个写入端口,并且包括与存储器50接口的一个读取端口和一个写入端口。处理器电路200可以用作具有本领域技术人员已知的其他处理器电路的中央处理单元(CPU)的一部分。在一些实施例中,可以使用具有不同于本文参考处理器电路200具体讨论的那些特征之外的特征的处理器电路。
如本领域技术人员所理解的,存储器50可以是任何存储器结构。存储器50存储至少处理指令和数据。在处理器电路200接收指令和数据之后,处理器电路200执行使用基于读取指令的读取数据的操作。
指令解码器电路260用于从存储器电路50接收数据路径指令,其中数据路径指令使得数据路径块电路240生成存储在数据存储器堆电路220中的结果。每条数据路径指令对至少一个待执行的数据路径操作,数据寄存器堆电路220内存储数据路径操作的结果的操作结果寄存器,以及数据寄存器堆电路220内存储用作数据路径操作的操作数的数据的一个或多个操作数寄存器进行编码。正如本领域技术人员所理解的,对于一些数据路径指令,存储数据路径操作的结果的操作结果寄存器与存储用作数据路径操作的操作数的数据的操作数寄存器相同。
基于从存储器电路50接收到的数据路径指令,指令解码器电路260用于为数据寄存器堆电路220生成寄存器信号,该寄存器信号对一个或多个操作结果寄存器、每个操作结果寄存器的写入端口、数据寄存器堆电路220内的一个或多个操作数寄存器、以及每个操作数寄存器的读取端口进行编码,在一个或多个操作结果寄存器中存储一个或多个数据路径操作的一个或多个结果,每个操作结果寄存器的写入端口用于将一个或多个数据路径操作的一个或多个结果写入一个或多个操作结果寄存器,数据寄存器堆电路220内的一个或多个操作数寄存器存储用作一个或多个数据路径操作的操作数的数据,以及每个操作数寄存器的读取端口用于从中读取操作数数据。
此外,基于从存储器50接收到的数据路径指令,指令解码器电路260用于为数据块电路240生成操作信号,该操作信号对待执行的一个或多个操作、每个操作结果寄存器的写入端口、以及每个操作数寄存器的读取端口进行编码,每个操作结果寄存器的写入端口用于将一个或多个数据路径操作的一个或多个结果写入一个或多个操作结果寄存器,以及每个操作数寄存器的读取端口用于从中读取操作数据。
数据寄存器堆电路220用于从指令解码器电路260接收寄存器信号,该寄存器信号对一个或多个操作结果寄存器、每个操作结果寄存器的写入端口、一个或多个操作数寄存器、以及每个操作数寄存器的读取端口进行编码,每个操作结果寄存器的写入端口用于将一个或多个数据路径操作的一个或多个结果写入一个或多个操作结果寄存器,以及每个操作数寄存器的读取端口用于从中读取操作数据。
基于从指令解码器电路260接收到的寄存器信号,该寄存器信号对一个或多个寄存器进行编码,该寄存器存储用作一个或多个数据路径操作的操作数的数据,数据寄存器堆电路220为数据路径块电路240生成操作数数据信号。例如,寄存器信号可以为存储数据的一个或多个寄存器中的每一个识别特定寄存器内的特定寄存器堆和特定寄存器,该数据用作一个或多个数据路径操作的操作数。响应于寄存器信号,读取来自所识别的特定寄存器的数据并将其作为操作数数据信号提供给数据路径块电路240。
基于从指令解码器电路260接收到的寄存器信号,该信号识别每个操作数寄存器的读取端口,用于从中读取操作数数据,数据寄存器堆电路220从所识别的特定寄存器读取数据并将读取的数据提供给接收到的寄存器信号中所识别的读取端口。
数据路径块240用于从指令解码器电路260接收操作信号,该操作信号对待执行的一个或多个数据路径操作进行编码。此外,数据路径块240用于从指令解码器电路260接收操作信号,该信号识别每个操作数数据信号的读取端口,用于读取操作数数据。
基于接收到的操作信号,数据路径块240访问数据寄存器堆电路220的所识别的读取端口以接收操作数数据信号,该操作数数据信号对用作一个或多个数据路径操作的操作数的数据进行编码。
数据路径块240包括多个逻辑电路,每个逻辑电路用于接收特定数量的操作数。每个逻辑电路还用于执行特定的数据路径操作以基于接收到的操作数数据信号生成一个或多个结果。例如,数据路径块240可以包括以下逻辑电路中的每一个中的一个或多个:移位器、加法器和乘法器。正如本领域技术人员所理解的,数据路径块240可以另外包括多个其他逻辑电路中的每一个中的一个或多个。
基于接收到的对待执行一个或多个数据路径操作进行编码的操作信号,数据路径块240选择一个或多个逻辑电路。作为选择的结果,所选择的逻辑电路接收操作数数据信号,该操作数数据信号对用作一个或多个数据路径操作的操作数的数据进行编码。
正如本领域技术人员所理解的,响应于操作数数据信号,所选择的逻辑电路根据所选择的逻辑电路的逻辑电路产生一个或多个结果。
所产生的一个或多个结果提供给数据寄存器堆电路220。
在一些实施例中,数据路径块240包括多个单独的数据路径,其中每个数据路径包括以下各项中的多个:移位器、加法器、乘法器和其他数据路径逻辑电路。在这些实施例中,每个数据路径用于同时计算单独的结果。相应地,在这些实施例中,数据路径块240从指令解码器电路260接收的操作信号对一个或多个数据路径操作进行编码,该一个或多个数据路径操作由一个或多个单独的数据路径执行。此外,数据路径块240从数据寄存器堆电路220接收的操作数数据信号对数据进行编码,该数据用作一个或多个数据路径操作的操作数,该一个或多个数据路径操作由一个或多个单独的数据路径执行。
基于从指令解码器电路260接收到的操作信号,该操作信号识别每个操作结果寄存器的写入端口,用于将一个或多个结果写入数据寄存器堆电路220的一个或多个操作结果寄存器,数据路径块电路240向数据寄存器堆电路220的所识别的一个或多个写入端口提供一个或多个结果。
基于来自指令解码器260的寄存器信号,提供给数据寄存器堆电路220的所识别的写入端口的一个或多个结果被写入数据寄存器堆电路220内的特定寄存器,该寄存器信号识别其中存储一个或多个结果的一个或多个操作结果寄存器,以及每个操作结果寄存器的写入端口,用于写入。
在一些实施例中,指令解码器电路260对一个或多个数据路径指令进行解码,数据路径块电路240从数据寄存器堆电路220接收操作数数据信号,并将一个或多个结果提供给数据寄存器堆电路220,并且在单个CPU时钟周期中将一个或多个结果写入数据寄存器堆电路220。响应于新时钟周期的指示,指令解码器电路260对一个或多个数据路径指令进行解码。此外,数据路径块电路240从指令解码器260接收操作信号,从数据寄存器堆电路220接收操作数数据信号,计算一个或多个结果,并将一个或多个结果提供给数据寄存器堆电路220,该数据寄存器堆电路220将一个或多个结果存储在指令解码器电路260接收到的一个或多个数据路径指令中指定的一个或多个寄存器中。
指令解码器电路260还用于从存储器电路50接收存储器指令,其中存储器指令使数据能从寄存器堆电路220读取到存储器电路50或从存储器电路50写入到寄存器堆电路220。每个存储器指令对至少一个待执行的存储器操作(从寄存器堆电路220读取或写入寄存器堆电路220)、被读取或写入的数据寄存器堆电路220内的寄存器以及存储器50中的地址进行编码。
基于从存储器50接收到的存储器指令,指令解码器电路260用于为数据寄存器堆电路220生成寄存器信号,该寄存器信号对存储器指令进行编码。
数据寄存器电路220用于从指令解码器电路260接收寄存器信号。基于从指令解码器电路260接收到的寄存器信号,数据寄存器堆电路220根据寄存器指令与存储器电路交互,例如,通过从指定寄存器读取数据并在指定地址将读取数据写入存储器50,或者通过从存储器50中的指定地址读取数据并将读取数据写入指定寄存器。
图3是与存储器50接口的处理器电路300的实施例的示意图。处理器电路300包括数据寄存器堆电路320,数据路径块电路340,和指令解码器电路360。如图所示,在该实施例中,数据寄存器堆电路320中的数据寄存器堆中的每一个都包括与数据路径块电路340接口的一个读取端口和一个写入端口,并且包括与存储器50接口的一个写入端口。处理器电路300可以用作具有本领域技术人员已知的其他处理器电路的中央处理单元(CPU)的一部分。在一些实施例中,可以使用具有不同于本文参考处理器电路300具体讨论的那些特征之外的特征的处理器电路。
如本领域技术人员所理解的,存储器50可以是任何存储器结构。存储器50存储至少处理指令和数据。在处理器电路300接收指令和数据之后,处理器电路300执行使用基于读取指令的读取数据的操作。
指令解码器电路360用于从存储器电路50接收数据路径指令,其中数据路径指令使得数据路径块电路340生成存储在数据存储器堆电路320中的结果。每条数据路径指令对至少一个待执行的数据路径操作,数据寄存器堆电路320内存储数据路径操作的结果的操作结果寄存器,以及数据寄存器堆电路320内存储用作数据操作路径的操作数的数据的一个或多个操作数寄存器进行编码。正如本领域技术人员所理解的,对于一些数据路径指令,存储数据路径操作的结果的操作结果寄存器与存储用作数据路径操作的操作数的数据的操作数寄存器相同。
基于从存储器电路50接收到的数据路径指令,指令解码器电路360用于为数据寄存器堆电路320生成寄存器信号,该寄存器信号对一个或多个操作结果寄存器、每个操作结果寄存器的写入端口、数据寄存器堆电路320内的一个或多个操作数寄存器、以及每个操作数寄存器的读取端口进行编码,在一个或多个操作结果寄存器中存储一个或多个数据路径操作的一个或多个结果,每个操作结果寄存器的写入端口用于将一个或多个数据路径操作的一个或多个结果写入一个或多个操作结果寄存器,数据寄存器堆电路320内的一个或多个操作数寄存器存储用作一个或多个数据路径操作的操作数的数据,以及每个操作数寄存器的读取端口用于从中读取操作数数据。
此外,基于从存储器50接收到的数据路径指令,指令解码器电路360用于为数据块电路340生成操作信号,该操作信号对待执行的一个或多个操作、每个操作结果寄存器的写入端口、以及每个操作数寄存器的读取端口进行编码,每个操作结果寄存器的写入端口用于将一个或多个数据路径操作的一个或多个结果写入一个或多个操作结果寄存器,以及每个操作数寄存器的读取端口用于从中读取操作数据。
数据寄存器堆电路320用于从指令解码器电路360接收寄存器信号,该寄存器信号对一个或多个操作结果寄存器、每个操作结果寄存器的写入端口、一个或多个操作数寄存器、以及每个操作数寄存器的读取端口进行编码,每个操作结果寄存器的写入端口用于将一个或多个数据路径操作的一个或多个结果写入一个或多个操作结果寄存器,以及每个操作数寄存器的读取端口用于从中读取操作数据。
基于从指令解码器电路360接收到的寄存器信号,该寄存器信号对一个或多个寄存器进行编码,该寄存器存储用作一个或多个数据路径操作的操作数的数据,数据寄存器堆电路320为数据路径块电路340生成操作数数据信号。例如,寄存器信号可以为存储数据的一个或多个寄存器中的每一个识别特定寄存器内的特定寄存器堆和特定寄存器,该数据用作一个或多个数据路径操作的操作数。响应于寄存器信号,读取来自所识别的特定寄存器的数据并将其作为操作数数据信号提供给数据路径块电路340。
基于从指令解码器电路360接收到的寄存器信号,该信号识别每个操作数寄存器的读取端口,用于从中读取操作数数据,数据寄存器堆电路320从所识别的特定寄存器读取数据并将读取的数据提供给接收到的寄存器信号中所识别的读取端口。
数据路径块340用于从指令解码器电路360接收操作信号,该操作信号对待执行的一个或多个数据路径操作进行编码。此外,数据路径块340用于从指令解码器电路360接收操作信号,该信号识别每个操作数数据信号的读取端口,用于读取操作数数据。
基于接收到的操作信号,数据路径块340访问数据寄存器堆电路320的所识别的读取端口以接收操作数数据信号,该操作数数据信号对用作一个或多个数据路径操作的操作数的数据进行编码。
数据路径块340包括多个逻辑电路,每个逻辑电路用于接收特定数量的操作数。每个逻辑电路还用于执行特定的数据路径操作以基于接收到的操作数数据信号生成一个或多个结果。例如,数据路径块340可以包括以下逻辑电路中的每一个中的一个或多个:移位器、加法器和乘法器。正如本领域技术人员所理解的,数据路径块340可以另外包括多个其他逻辑电路中的每一个中的一个或多个。
基于接收到的对待执行一个或多个数据路径操作进行编码的操作信号,数据路径块340选择一个或多个逻辑电路。作为选择的结果,所选择的逻辑电路接收操作数数据信号,该操作数数据信号对用作一个或多个数据路径操作的操作数的数据进行编码。
正如本领域技术人员所理解的,响应于操作数数据信号,所选择的逻辑电路根据所选择的逻辑电路的逻辑电路产生一个或多个结果。
所产生的一个或多个结果提供给数据寄存器堆电路320。
在一些实施例中,数据路径块340包括多个单独的数据路径,其中每个数据路径包括以下各项中的多个:移位器、加法器、乘法器和其他数据路径逻辑电路。在这些实施例中,每个数据路径用于同时计算单独的结果。相应地,在这些实施例中,数据路径块340从指令解码器电路360接收的操作信号对一个或多个数据路径操作进行编码,该一个或多个数据路径操作由一个或多个单独的数据路径执行。此外,数据路径块340从数据寄存器堆电路320接收的操作数数据信号对数据进行编码,该数据用作一个或多个数据路径操作的操作数,该一个或多个数据路径操作由一个或多个单独的数据路径执行。
基于从指令解码器电路360接收到的操作信号,该操作信号识别每个操作结果寄存器的写入端口,用于将一个或多个结果写入数据寄存器堆电路320的一个或多个操作结果寄存器,数据路径块电路340向数据寄存器堆电路320的所识别的一个或多个写入端口提供一个或多个结果。
基于来自指令解码器360的寄存器信号,提供给数据寄存器堆电路320的所识别的写入端口的一个或多个结果被写入数据寄存器堆电路320内的特定寄存器,该寄存器信号识别其中存储一个或多个结果的一个或多个操作结果寄存器,以及每个操作结果寄存器的写入端口,用于写入。
在一些实施例中,指令解码器电路360对一个或多个数据路径指令进行解码,数据路径块电路340从数据寄存器堆电路320接收操作数数据信号,并将一个或多个结果提供给数据寄存器堆电路320,并且在单个CPU时钟周期中将一个或多个结果写入数据寄存器堆电路320。响应于新时钟周期的指示,指令解码器电路360对一个或多个数据路径指令进行解码。此外,数据路径块电路340从指令解码器360接收操作信号,从数据寄存器堆电路320接收操作数数据信号,计算一个或多个结果,并将一个或多个结果提供给数据寄存器堆电路320,该数据寄存器堆电路320将一个或多个结果存储在指令解码器电路360接收到的一个或多个数据路径指令中指定的一个或多个寄存器中。
指令解码器电路360还用于从存储器电路50接收存储器指令,其中存储器指令使数据能从寄存器堆电路320读取到存储器电路50。每个存储器指令对至少一个待执行的存储器操作(从寄存器堆电路320读取)、被读取的数据寄存器堆电路320内的寄存器以及存储器50中的地址进行编码。
基于从存储器50接收到的存储器指令,指令解码器电路360用于为数据寄存器堆电路320生成寄存器信号,该寄存器信号对存储器指令进行编码。
数据寄存器电路320用于从指令解码器电路360接收寄存器信号。基于从指令解码器电路360接收到的寄存器信号,数据寄存器堆电路320根据寄存器指令与存储器电路交互,例如,通过从指定寄存器读取数据并在指定地址将读取数据写入存储器50。
图4是与存储器50接口的处理器电路400的实施例的示意图。处理器电路400包括数据寄存器堆电路420,数据路径块电路440,和指令解码器电路460。如图所示,在该实施例中,数据寄存器堆电路420中的数据寄存器堆中的每一个都包括与数据路径块电路440接口的一个读取端口,以及与存储器50接口的一个写入端口。处理器电路400可以用作具有本领域技术人员已知的其他处理器电路的中央处理单元(CPU)的一部分。在一些实施例中,可以使用具有不同于本文参考处理器电路400具体讨论的那些特征之外的特征的处理器电路。
如本领域技术人员所理解的,存储器50可以是任何存储器结构。存储器50存储至少处理指令和数据。在处理器电路400接收指令和数据之后,处理器电路400执行使用基于读取指令的读取数据的操作。
指令解码器电路460用于从存储器电路50接收数据路径指令,其中数据路径指令使得数据路径块电路440生成存储在数据存储器堆电路420中的结果。每条数据路径指令对至少一个待执行的数据路径操作,另一个数据寄存器堆电路(未示出)内存储数据路径操作的结果的操作结果寄存器,以及数据寄存器堆电路420内存储用作数据操作路径的操作数的数据的一个或多个操作数寄存器进行编码。
基于从存储器电路50接收到的数据路径指令,指令解码器电路460用于生成数据寄存器堆电路420的寄存器信号,该寄存器信号对数据寄存器堆电路420内的一个或多个操作数寄存器,以及每个操作数寄存器的读取端口进行解码,数据寄存器堆电路420内的一个或多个操作数寄存器存储用作一个或多个数据路径操作的操作数的数据,以及每个操作数寄存器的读取端口用于从中读取操作数数据。
此外,基于从存储器50接收到的数据路径指令,指令解码器电路460用于为数据块电路440生成操作信号,该操作信号对待执行的一个或多个操作、每个操作结果寄存器的写入端口、以及每个操作数寄存器的读取端口进行编码,每个操作结果寄存器的写入端口用于将一个或多个数据路径操作的一个或多个结果写入一个或多个操作结果寄存器,以及每个操作数寄存器的读取端口用于从中读取操作数据。
数据寄存器堆电路420用于从指令解码器电路460接收寄存器信号,该寄存器信号对一个或多个操作数寄存器,以及每个操作数寄存器的读取端口进行编码,每个操作数寄存器的读取端口用于从中读取数据。
基于从指令解码器电路460接收到的寄存器信号,该寄存器信号对一个或多个寄存器进行编码,该寄存器存储用作一个或多个数据路径操作的操作数的数据,数据寄存器堆电路420为数据路径块电路440生成操作数数据信号。例如,寄存器信号可以为存储数据的一个或多个寄存器中的每一个识别特定寄存器内的特定寄存器堆和特定寄存器,该数据用作一个或多个数据路径操作的操作数。响应于寄存器信号,读取来自所识别的特定寄存器的数据并将其作为操作数数据信号提供给数据路径块电路440。
基于从指令解码器电路460接收到的寄存器信号,该信号识别每个操作数寄存器的读取端口,用于从中读取操作数数据,数据寄存器堆电路420从所识别的特定寄存器读取数据并将读取的数据提供给接收到的寄存器信号中所识别的读取端口。
数据路径块440用于从指令解码器电路460接收操作信号,该操作信号对待执行的一个或多个数据路径操作进行编码。此外,数据路径块440用于从指令解码器电路460接收操作信号,该信号识别每个操作数数据信号的读取端口,用于读取操作数数据。
基于接收到的操作信号,数据路径块440访问数据寄存器堆电路420的所识别的读取端口以接收操作数数据信号,该操作数数据信号对用作一个或多个数据路径操作的操作数的数据进行编码。
数据路径块440包括多个逻辑电路,每个逻辑电路用于接收特定数量的操作数。每个逻辑电路还用于执行特定的数据路径操作以基于接收到的操作数数据信号生成一个或多个结果。例如,数据路径块440可以包括以下逻辑电路中的每一个中的一个或多个:移位器、加法器和乘法器。正如本领域技术人员所理解的,数据路径块440可以另外包括多个其他逻辑电路中的每一个中的一个或多个。
基于接收到的对待执行一个或多个数据路径操作进行编码的操作信号,数据路径块440选择一个或多个逻辑电路。作为选择的结果,所选择的逻辑电路接收操作数数据信号,该操作数数据信号对用作一个或多个数据路径操作的操作数的数据进行编码。
正如本领域技术人员所理解的,响应于操作数数据信号,所选择的逻辑电路根据所选择的逻辑电路的逻辑电路图产生一个或多个结果。
所产生的一个或多个结果被提供给数据寄存器堆电路420。
在一些实施例中,数据路径块440包括多个单独的数据路径,其中每个数据路径包括以下各项中的多个:移位器、加法器、乘法器和其他数据路径逻辑电路。在这些实施例中,每个数据路径用于同时计算单独的结果。相应地,在这些实施例中,数据路径块440从指令解码器电路460接收的操作信号对一个或多个数据路径操作进行编码,该一个或多个数据路径操作由一个或多个单独的数据路径执行。此外,数据路径块440从数据寄存器堆电路420接收的操作数数据信号对数据进行编码,该数据用作一个或多个数据路径操作的操作数,该一个或多个数据路径操作由一个或多个单独的数据路径执行。
基于从指令解码器电路460接收到的操作信号,该操作信号识别每个操作结果寄存器的写入端口,用于将一个或多个结果写入一个或多个操作结果寄存器(未示出),数据路径块电路440向所识别的一个或多个写入端口提供一个或多个结果。
提供给其他数据寄存器堆电路(未示出)的已识别的写入端口的一个或多个结果被写入已识别的操作结果寄存器。
在一些实施例中,指令解码器电路460对一个或多个数据路径指令进行解码,数据路径块电路440从数据寄存器堆电路420接收操作数数据信号,并将一个或多个结果提供给数据寄存器堆电路420,并且在单个CPU时钟周期中将一个或多个结果写入数据寄存器堆电路420。响应于新时钟周期的指示,指令解码器电路460对一个或多个数据路径指令进行解码。此外,数据路径块电路440从指令解码器460接收操作信号,从数据寄存器堆电路420接收操作数数据信号,计算一个或多个结果,并将一个或多个结果提供给数据寄存器堆电路420,该数据寄存器堆电路420将一个或多个结果存储在指令解码器电路460接收到的一个或多个数据路径指令中指定的一个或多个寄存器中。
指令解码器电路460还用于从存储器电路50接收存储器指令,其中存储器指令使数据能从存储器电路50写入到寄存器堆电路420。每个存储器指令对至少一个待执行的存储器操作(写入寄存器电路420)、被写入的数据寄存器堆电路420内的寄存器以及存储器50中的地址进行编码。
基于从存储器50接收到的存储器指令,指令解码器电路460用于为数据寄存器堆电路420生成寄存器信号,该寄存器信号对存储器指令进行编码。
数据寄存器电路420用于从指令解码器电路460接收寄存器信号。基于从指令解码器电路460接收到的寄存器信号,数据寄存器堆电路420根据寄存器指令与存储器电路交互,例如,通过从存储器50中的指定地址读取数据并将读取数据写入指定寄存器。
图5是与存储器50接口的处理器电路500的实施例的示意图。处理器电路500包括数据寄存器堆电路520,数据路径块电路540,和指令解码器电路560。如图所示,在该实施例中,数据寄存器堆电路520中的数据寄存器堆中的每一个都包括以下之一:
五个与数据路径块电路540接口的读取端口和两个写入端口,以及与存储器50接口的一个读取端口和一个写入端口;
一个与数据路径块电路540接口的读取端口和一个写入端口,以及与存储器50接口的一个读取端口;以及
一个与数据路径块电路540接口的读取端口,以及一个与存储器50接口的写入端口。
在其他实施例中,可以使用具有与数据路径块电路140接口的其他数量的端口的寄存器堆。在其他实施例中,可以使用具有与存储器50接口的其他数量的端口的寄存器堆。处理器电路500可以用作具有本领域技术人员已知的其他处理器电路的中央处理单元(CPU)的一部分。在一些实施例中,可以使用具有不同于本文参考处理器电路500具体讨论的那些特征之外的特征的处理器电路。
例如,具有与数据路径块电路540接口的五个读取端口和两个写入端口,以及与存储器50接口的一个读取端口和一个写入端口的数据寄存器堆的寄存器可以用作通用寄存器。
例如,具有与数据路径块电路540接口的一个读取端口和一个写入端口,以及与存储器50接口的一个读取端口的数据寄存器堆的寄存器可以用作操作结果寄存器,该操作结果寄存器存储计算操作的结果,其中该结果可以存储在存储器50中。在一些实施例中,例如,具有与数据路径块电路540接口的一个读取端口和一个写入端口,以及与存储器50接口的一个读取端口的数据寄存器堆可以用于其他数据。
例如,具有与数据路径块电路540接口的一个读取端口,以及与存储器50接口的一个写入端口的数据寄存器堆的寄存器可以用作常量寄存器,该常量寄存器存储常量,且该常量不会改变多个数据路径指令。例如,一组数据路径指令可以与被编译的源代码中的循环相关联以生成数据路径指令,并且常量寄存器可以用于存储在执行与循环相关联的数据路径指令期间不会改变的常量的值。
在一些实施例中,一个或多个寄存器堆具有与数据路径块电路140接口的一个读取端口和一个写入端口,以及与存储器50接口的一个写入端口。
在一些实施例中,一个或多个寄存器堆具有与数据路径块电路140接口的一个读取端口和一个写入端口,以及与存储器50接口的一个读取端口。
如本领域技术人员所理解的,存储器50可以是任何存储器结构。存储器50存储至少处理指令和数据。在处理器电路500接收指令和数据之后,处理器电路500执行使用基于读取指令的读取数据的操作。
指令解码器电路560用于从存储器电路50接收数据路径指令,其中数据路径指令使得数据路径块电路540生成存储在数据存储器堆电路520中的结果。每条数据路径指令对至少一个待执行的数据路径操作,数据寄存器堆电路520内存储数据路径操作的结果的操作结果寄存器,以及数据寄存器堆电路520内存储用作数据操作路径的操作数的数据的一个或多个操作数寄存器进行编码。正如本领域技术人员所理解的,对于一些数据路径指令,存储数据路径操作的结果的操作结果寄存器与存储用作数据路径操作的操作数的数据的操作数寄存器相同。
基于从存储器电路50接收到的数据路径指令,指令解码器电路560用于为数据寄存器堆电路520生成寄存器信号,该寄存器信号对一个或多个操作结果寄存器、每个操作结果寄存器的写入端口、数据寄存器堆电路520内的一个或多个操作数寄存器、以及每个操作数寄存器的读取端口进行编码,在一个或多个操作结果寄存器中存储一个或多个数据路径操作的一个或多个结果,每个操作结果寄存器的写入端口用于将一个或多个数据路径操作的一个或多个结果写入一个或多个操作结果寄存器,数据寄存器堆电路520内的一个或多个操作数寄存器存储用作一个或多个数据路径操作的操作数的数据,以及每个操作数寄存器的读取端口用于从中读取操作数数据。
此外,基于从存储器50接收到的数据路径指令,指令解码器电路560用于为数据块电路540生成操作信号,该操作信号对待执行的一个或多个操作、每个操作结果寄存器的写入端口、以及每个操作数寄存器的读取端口进行编码,每个操作结果寄存器的写入端口用于将一个或多个数据路径操作的一个或多个结果写入一个或多个操作结果寄存器,以及每个操作数寄存器的读取端口用于从中读取操作数据。
数据寄存器电路520用于从指令解码器电路560接收寄存器信号,该寄存器信号对一个或多个操作结果寄存器、每个操作结果寄存器的读取端口、一个或多个操作数寄存器、以及每个操作数寄存器的读取端口进行编码,每个操作结果寄存器的读取端口用于将一个或多个数据路径操作的一个或多个结果写入一个或多个操作结果寄存器,以及每个操作数寄存器的读取端口用于从中读取操作数据。
基于从指令解码器电路560接收到的寄存器信号,该寄存器信号对一个或多个寄存器进行编码,该寄存器存储用作一个或多个数据路径操作的操作数的数据,数据寄存器堆电路520为数据路径块电路540生成操作数数据信号。例如,寄存器信号可以为存储数据的一个或多个寄存器中的每一个识别特定寄存器内的特定寄存器堆和特定寄存器,该数据用作一个或多个数据路径操作的操作数。响应于寄存器信号,读取来自所识别的特定寄存器的数据并将其作为操作数数据信号提供给数据路径块电路540。
基于从指令解码器电路560接收到的寄存器信号,该信号识别每个操作数寄存器的读取端口,用于从中读取操作数数据,数据寄存器堆电路520从所识别的特定寄存器读取数据并将读取的数据提供给接收到的寄存器信号中所识别的读取端口。
数据路径块540用于从指令解码器电路560接收操作信号,该操作信号对待执行的一个或多个数据路径操作进行编码。此外,数据路径块540用于从指令解码器电路560接收操作信号,该信号识别每个操作数数据信号的读取端口,用于读取操作数数据。
基于接收到的操作信号,数据路径块540访问数据寄存器堆电路520的所识别的读取端口以接收操作数数据信号,该操作数数据信号对用作一个或多个数据路径操作的操作数的数据进行编码。
数据路径块540包括多个逻辑电路,每个逻辑电路用于接收特定数量的操作数。每个逻辑电路还用于执行特定的数据路径操作以基于接收到的操作数数据信号生成一个或多个结果。例如,数据路径块540可以包括以下逻辑电路中的每一个中的一个或多个:移位器、加法器和乘法器。正如本领域技术人员所理解的,数据路径块540可以另外包括多个其他逻辑电路中的每一个中的一个或多个。
基于接收到的对待执行一个或多个数据路径操作进行编码的操作信号,数据路径块540选择一个或多个逻辑电路。作为选择的结果,所选择的逻辑电路接收操作数数据信号,该操作数数据信号对用作一个或多个数据路径操作的操作数的数据进行编码。
正如本领域技术人员所理解的,响应于操作数数据信号,所选择的逻辑电路根据所选择的逻辑电路的逻辑电路图产生一个或多个结果。
所产生的一个或多个结果被提供给数据寄存器堆电路520。
在一些实施例中,数据路径块540包括多个单独的数据路径,其中每个数据路径包括以下各项中的多个:移位器、加法器、乘法器和其他数据路径逻辑电路。在这些实施例中,每个数据路径用于同时计算单独的结果。相应地,在这些实施例中,数据路径块540从指令解码器电路560接收的操作信号对一个或多个数据路径操作进行编码,该一个或多个数据路径操作由一个或多个单独的数据路径执行。此外,数据路径块540从数据寄存器堆电路520接收的操作数数据信号对数据进行编码,该数据用作一个或多个数据路径操作的操作数,该一个或多个数据路径操作由一个或多个单独的数据路径执行。
基于从指令解码器电路560接收到的操作信号,该操作信号识别每个操作结果寄存器的写入端口,用于将一个或多个结果写入数据寄存器堆电路520的一个或多个操作结果寄存器,数据路径块电路540向数据寄存器堆电路520的所识别的一个或多个写入端口提供一个或多个结果。
基于来自指令解码器560的寄存器信号,提供给数据寄存器堆电路520的所识别的写入端口的一个或多个结果被写入数据寄存器堆电路520内的特定寄存器,该寄存器信号识别其中存储一个或多个结果的一个或多个操作结果寄存器,以及每个操作结果寄存器的写入端口,用于写入。
在一些实施例中,指令解码器电路560对一个或多个数据路径指令进行解码,数据路径块电路540从数据寄存器堆电路520接收操作数数据信号,并将一个或多个结果提供给数据寄存器堆电路520,并且在单个CPU时钟周期中将一个或多个结果写入数据寄存器堆电路520。响应于新时钟周期的指示,指令解码器电路560对一个或多个数据路径指令进行解码。此外,数据路径块电路540从指令解码器560接收操作信号,从数据寄存器堆电路520接收操作数数据信号,计算一个或多个结果,并将一个或多个结果提供给数据寄存器堆电路520,该数据寄存器堆电路520将一个或多个结果存储在指令解码器电路560接收到的一个或多个数据路径指令中指定的一个或多个寄存器中。
指令解码器电路560还用于从存储器电路50接收存储器指令,其中存储器指令使数据能从寄存器堆电路520读取到存储器电路50或从存储器电路50写入到寄存器堆电路520。每个存储器指令对至少一个待执行的存储器操作(从寄存器堆电路520读取或写入寄存器堆电路520)、被读取或写入的数据寄存器堆电路520内的寄存器以及存储器50中的地址进行编码。
基于从存储器50接收到的存储器指令,指令解码器电路560用于为数据寄存器堆电路520生成寄存器信号,该寄存器信号对存储器指令进行编码。
数据寄存器电路520用于从指令解码器电路560接收寄存器信号。基于从指令解码器电路560接收到的寄存器信号,数据寄存器堆电路520根据寄存器指令与存储器电路交互,例如,通过从指定寄存器读取数据并在指定地址将读取数据写入存储器50,或者通过从存储器50中的指定地址读取数据并将读取数据写入指定寄存器。
图6是说明一种制作处理器电路的方法600的流程图。
在610,在第一基板上形成指令解码器电路。该指令解码器电路可以具有与以上参考图1-5所讨论的指令解码器电路160、260、360、460和560中的任一个相似或相同的特征。
在620,在第一基板或第二基板上形成数据寄存器堆电路。该数据寄存器堆电路可以具有与以上参考图1-5所讨论的数据寄存器堆电路120、220、320、420和520中的任一个相似或相同的特征。在620,数据寄存器文件电路还与指令解码器电路电连接。所形成的电连接可以与图1-5中示意性地示出的那些电连接相似或相同。
在630,在第一基板、第二基板或第三基板上形成数据路径块电路。该数据路径块电路可以具有与以上参考图1-5所讨论的数据路径块电路140、240、340、440和540中的任一个相似或相同的特征。在630,数据路径块电路还与指令解码器电路和数据寄存器堆电路电连接。所形成的电连接可以与图1-5中示意性地示出的那些电连接相似或相同。
在一些实施例中,610、620和630的顺序与所示出的实施例中所示的顺序不同。在一些实施例中,基本上同时执行610、620和630,例如,作为半导体集成电路制造工艺的一部分。
在以上描述和权利要求中,诸如“至少一个”或“一个或多个”等短语可以出现在元件或特征的组合列表之后。术语“和/或”也可以出现在两个或多个元件或特征的列表中。除非其使用的上下文另有明确或隐含的矛盾,否则该短语旨在表示任何单独列出的元件或特征,或任何列举的元件或特征与任何其他列举的元件或特征的组合。例如,短语“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.根据权利要求1所述的处理器电路,其中,响应于所述操作信号,所述数据路径块电路用于对所述第一和第二操作数执行所识别的特定数据电路操作以生成所述一个或多个结果。
4.根据权利要求3所述的处理器电路,其中,所述操作信号识别一个或多个写入端口,以及其中所述数据路径块电路用于为所识别的写入端口提供所述一个或多个结果。
5.根据权利要求1所述的处理器电路,其中,所述指令解码器电路用于从存储器接收数据路径指令,其中所述数据路径指令对所述特定数据路径操作,存储所述特定数据路径操作的所述一个或多个结果的所述数据寄存器堆电路内的一个或多个操作结果寄存器,以及所述数据寄存器堆电路内存储数据用作所述第一和第二操作数的第一和第二操作数寄存器进行编码。
6.根据权利要求5所述的处理器电路,其中所述第一操作数在所述第一寄存器堆中,以及所述第二操作数在所述第二寄存器堆中。
7.根据权利要求5所述的处理器电路,其中,所述一个或多个操作结果寄存器中的至少一个在所述第一寄存堆中,以及所述第一操作数寄存器和所述第二操作数寄存器中的至少一个在所述第二寄存堆中。
8.根据权利要求5所述的处理器电路,其中所述指令解码器电路用于为所述数据寄存器堆电路提供寄存器信号,其中,所述寄存器信号识别所述一个或多个操作结果寄存器,所述一个或多个操作结果寄存器的一个或多个写入端口,所述第一和第二操作数寄存器,和所述第一和第二操作数寄存器的第一和第二读取端口。
9.根据权利要求8所述的处理器电路,其中,基于所述寄存器信号,所述数据寄存器堆电路用于为所述第一和第二读取端口提供存储在所述第一和第二操作数中的数据。
10.根据权利要求8所述的处理器电路,其中,基于所述寄存器信号,所述数据寄存器堆电路用于从所述一个或多个操作结果寄存器的所述一个或多个写入端口向所述一个或多个操作结果寄存器读取数据。
11.一种制作处理器电路的方法,所述方法包括:
形成数据路径块电路,其中所述数据路径块电路用于执行多个数据路径操作中的任何一个以基于第一和第二操作数生成一个或多个结果;
形成数据寄存器堆电路,通过:
形成第一寄存器堆,其中所述第一寄存器堆包括:
第一多个寄存器,以及
第一数量的读取和写入端口,以及
形成第二寄存器堆,其中所述第二寄存器堆包括:
第二多个寄存器,以及
第二数量的读取和写入端口,
其中,所述第一数量的读取和写入端口不同于所述第二数量的读取和写入端口;以及
形成指令解码器电路,用于为所述数据路径块电路提供操作信号,其中,所述操作信号识别由所述数据路径块电路执行的特定数据路径操作以及识别所述数据寄存器堆电路的一个或多个读取端口以检索对所述第一和第二操作数进行编码的数据。
12.根据权利要求11所述的方法,其中,响应于所述操作信号,所述数据路径块电路用于从所识别的读取端口检索第一和第二操作数数据信号,其中,所述第一和第二操作数数据信号分别对所述第一和第二操作数进行编码。
13.根据权利要求11所述的方法,其中,响应于所述操作信号,所述数据路径块电路用于对所述第一和第二操作数执行所识别的特定数据电路操作以生成所述一个或多个结果。
14.根据权利要求13所述的方法,其中,所述操作信号识别一个或多个写入端口,以及其中所述数据路径块电路用于为所识别的写入端口提供所述一个或多个结果。
15.根据权利要求11所述的方法,其中,所述指令解码器电路用于从存储器接收数据路径指令,其中,所述数据路径指令对所述特定数据路径操作,存储所述特定数据路径操作的所述一个或多个结果的所述数据寄存器堆电路内的一个或多个操作结果寄存器,以及所述数据寄存器堆电路内存储数据用作所述第一和第二操作数的第一和第二操作数寄存器进行编码。
16.根据权利要求15所述的方法,其中所述第一操作数在所述第一寄存器堆中,以及所述第二操作数在所述第二寄存器堆中。
17.根据权利要求15所述的方法,其中,所述一个或多个操作结果寄存器中的至少一个在所述第一寄存堆中,以及所述第一操作数寄存器和所述第二操作数寄存器中的至少一个在所述第二寄存堆中。
18.根据权利要求15所述的方法,其中所述指令解码器电路用于为所述数据寄存器堆电路提供寄存器信号,其中,所述寄存器信号识别所述一个或多个操作结果寄存器,所述一个或多个操作结果寄存器的一个或多个写入端口,所述第一和第二操作数寄存器,和所述第一和第二操作数寄存器的第一和第二读取端口。
19.根据权利要求18所述的方法,其中,基于所述寄存器信号,所述数据寄存器堆电路用于为所述第一和第二读取端口提供存储在所述第一和第二操作数中的数据。
20.根据权利要求18所述的方法,其中,基于所述寄存器信号,所述数据寄存器堆电路用于从所述一个或多个操作结果寄存器的所述一个或多个写入端口向所述一个或多个操作结果寄存器读取数据。
CN202180003891.4A 2020-07-28 2021-06-28 具有专用寄存器的risc处理器 Pending CN114008604A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/941,499 2020-07-28
US16/941,499 US11126588B1 (en) 2020-07-28 2020-07-28 RISC processor having specialized registers
PCT/CN2021/102670 WO2022022194A1 (en) 2020-07-28 2021-06-28 Risc processor having specialized registers

Publications (1)

Publication Number Publication Date
CN114008604A true CN114008604A (zh) 2022-02-01

Family

ID=79932614

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180003891.4A Pending CN114008604A (zh) 2020-07-28 2021-06-28 具有专用寄存器的risc处理器

Country Status (1)

Country Link
CN (1) CN114008604A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1469236A (zh) * 2002-07-15 2004-01-21 北京南思达科技发展有限公司 一种可重构寄存器堆及其设计方法
CN104981771A (zh) * 2013-02-26 2015-10-14 高通股份有限公司 基于标量寄存器数据值的向量寄存器寻址和功能
CN109614145A (zh) * 2018-10-18 2019-04-12 中国科学院计算技术研究所 一种处理器核心结构及数据访存方法
CN110609601A (zh) * 2019-08-26 2019-12-24 西安理工大学 一种低功耗的处理器寄存器堆控制方法
CN112947998A (zh) * 2019-11-26 2021-06-11 Arm有限公司 寄存器提供操作码指令

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1469236A (zh) * 2002-07-15 2004-01-21 北京南思达科技发展有限公司 一种可重构寄存器堆及其设计方法
CN104981771A (zh) * 2013-02-26 2015-10-14 高通股份有限公司 基于标量寄存器数据值的向量寄存器寻址和功能
CN109614145A (zh) * 2018-10-18 2019-04-12 中国科学院计算技术研究所 一种处理器核心结构及数据访存方法
CN110609601A (zh) * 2019-08-26 2019-12-24 西安理工大学 一种低功耗的处理器寄存器堆控制方法
CN112947998A (zh) * 2019-11-26 2021-06-11 Arm有限公司 寄存器提供操作码指令

Similar Documents

Publication Publication Date Title
KR102413832B1 (ko) 벡터 곱셈 덧셈 명령
US4862407A (en) Digital signal processing apparatus
US6128614A (en) Method of sorting numbers to obtain maxima/minima values with ordering
EP1267256A2 (en) Conditional execution of instructions with multiple destinations
CN101495959B (zh) 组合微处理器内的多个寄存器单元的方法和设备
CN101194228B (zh) 执行微处理器和微控制器的子例行程序的快速返回的装置
US11907158B2 (en) Vector processor with vector first and multiple lane configuration
WO2004004191A2 (en) Digital signal processor with cascaded simd organization
CN107851007B (zh) 宽数据类型的比较的方法和装置
US7558816B2 (en) Methods and apparatus for performing pixel average operations
JPH06242953A (ja) データ・プロセッサ
US7111155B1 (en) Digital signal processor computation core with input operand selection from operand bus for dual operations
WO2022022194A1 (en) Risc processor having specialized registers
EP2267597A2 (en) Digital signal processor having a pipeline structure
EP0260837B1 (en) Microprocessor with selective cache memory
US6263424B1 (en) Execution of data dependent arithmetic instructions in multi-pipeline processors
CN114008604A (zh) 具有专用寄存器的risc处理器
US7107302B1 (en) Finite impulse response filter algorithm for implementation on digital signal processor having dual execution units
CN114008603B (zh) 数据路径块电路和使用数据路径块电路的方法
US6820189B1 (en) Computation core executing multiple operation DSP instructions and micro-controller instructions of shorter length without performing switch operation
US6859872B1 (en) Digital signal processor computation core with pipeline having memory access stages and multiply accumulate stages positioned for efficient operation
US20030009652A1 (en) Data processing system and control method
WO2022022195A1 (en) Risc processor having specialized datapath for specialized registers
JP3534987B2 (ja) 情報処理装置
US20040128475A1 (en) Widely accessible processor register file and method for use

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