CN105700852B - 用于在交错的多线程环境中操作的数字信号处理器的寄存器堆 - Google Patents
用于在交错的多线程环境中操作的数字信号处理器的寄存器堆 Download PDFInfo
- Publication number
- CN105700852B CN105700852B CN201610018496.4A CN201610018496A CN105700852B CN 105700852 B CN105700852 B CN 105700852B CN 201610018496 A CN201610018496 A CN 201610018496A CN 105700852 B CN105700852 B CN 105700852B
- Authority
- CN
- China
- Prior art keywords
- register file
- data read
- during
- port
- read port
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims description 31
- 238000012545 processing Methods 0.000 claims description 6
- 230000006399 behavior Effects 0.000 claims description 3
- 238000012423 maintenance Methods 0.000 claims 1
- 230000004044 response Effects 0.000 abstract description 10
- 238000004891 communication Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 230000001413 cellular effect Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000004064 recycling Methods 0.000 description 2
- 230000001755 vocal effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000010387 memory retrieval Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 239000002699 waste material Substances 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length 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/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/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/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
本发明涉及用于在交错的多线程环境中操作的数字信号处理器的寄存器堆。本发明揭示一种处理器装置,所述处理器装置包含存储器及响应于所述存储器的定序器。所述定序器支持极长指令字(VLIW)型指令且至少一个VLIW指令包在执行期间使用若干个操作数。所述处理器装置进一步包含多个响应于所述定序器的指令执行单元及多个寄存器堆。所述多个寄存器堆中的每一者均包含多个寄存器且所述多个寄存器堆耦合到所述多个指令执行单元。此外,所述多个寄存器堆中的每一者均包含若干个数据读取端口且所述多个寄存器堆中每一者的数据读取端口的数量小于由所述至少一个VLIW指令包使用的操作数的数量。
Description
分案申请的相关信息
本申请是国际申请号为PCT/US2006/015391、申请日为2006年4月24日、发明名称为“用于在交错的多线程环境中操作的数字信号处理器的寄存器堆”的PCT申请进入中国国家阶段后申请号为200680022104.6的中国发明专利申请的分案申请。
技术领域
本发明一般而言涉及数字信号处理器。更特定而言,本发明涉及数字信号处理器的寄存器堆。
背景技术
技术进步已产生越来越小但愈加强大的个人计算装置。例如,当前存在各种便携式个人计算装置,包含例如便携式无线电话、个人数字助理(PDA)和传呼装置等无线计算装置,其均是小型、轻重量且便于用户携带的装置。更具体而言,例如蜂窝式电话及IP电话等便携式无线电话可通过无线网络传递语音和数据包。此外,许多此类无线电话均包含并入本文中的其它类型装置。例如,无线电话也可包含数字摄像机、数字录像机和音频文件播放器。此外,此类无线电话可包含用于存取因特网的网站接口。因此,所述无线电话包含显著的计算能力。
通常,随着此类装置变的更小且更强大,其变的愈加受资源限制。例如,屏幕尺寸、存储器和文件系统空间的可用量及输入和输出能力的量均会因装置的小尺寸而受到限制。此外,电池尺寸、电池所提供的电力量和电池寿命也受到限制。一种增加所述装置的电池寿命的方法是在通电所述装置的同时减小所述装置内的数字信号处理器处于空闲状态的时间量。
因此,提供一种在便携式通信装置中使用的改进的数字信号处理器是有利的。
发明内容
本发明揭示一种处理器装置,所述处理器装置包含存储器和响应于所述存储器的定序器。所述定序器支持极长指令字(VLIW)型指令且至少一个VLIW指令包在执行期间使用若干个操作数。所述处理器装置进一步包含多个响应于所述定序器的指令执行单元及多个寄存器堆。所述多个寄存器堆中的每一者包含多个寄存器且所述多个寄存器堆耦合到所述多个指令执行单元。此外,所述多个寄存器堆中的每一者包含若干个数据读取端口且所述多个寄存器堆中每一者的数据读取端口的数量小于由所述至少一个VLIW指令包使用的操作数的数量。
在特定实施例中,所述定序器进一步支持超标量型指令且至少一个超标量指令在执行期间使用若干个操作数。在另一特定实施例中,所述多个寄存器堆中每一者的数据读取端口的数量小于由所述至少一个超标量指令使用的操作数的数量。在又一特定实施例中,所述至少一个VLIW指令或所述至少一个超标量指令在执行期间使用的操作数的数量为六且所述数据读取端口的数量为四。在又一特定实施例中,所述多个寄存器堆中的每一者包含少于三个的数据写入端口。在又一特定实施例中,所述多个寄存器堆中的每一者包含三个数据写入端口。
在特定实施例中,所述多个寄存器堆包含六个寄存器堆。此外,在另一特定实施例中,所述存储器包含六个指令高速缓存存储器且每一指令高速缓存存储器与所述六个寄存器堆中的一者相关联。此外,在特定实施例中,所述存储器包含六个指令队列。每一指令队列与所述存储器内的单个指令高速缓存存储器相关联且每一指令队列均耦合到所述定序器。
在另一实施例中,揭示一种操作数字信号处理器的方法,所述方法包含在解码时钟循环期间经由第一数据读取端口存取寄存器堆。此外,所述方法包含在所述时钟改变到寄存器堆存取时钟循环时维持经由所述第一数据读取端口对所述寄存器堆的存取及在所述寄存器堆存取时钟循环期间经由所述第一数据读取端口从所述寄存器堆检索第一操作数。另外,本文所揭示的方法包含在所述寄存器堆存取时钟循环期间经由所述第一数据读取端口存取所述寄存器堆。
在另一实施例中,揭示一种对数字信号处理器内的寄存器堆进行更新的方法,所述方法包含:在指令执行时钟循环期间经由第一数据写入端口对所述寄存器堆进行第一次更新及在写回时钟循环期间经由所述第一数据写入端口对所述寄存器堆进行第二次更新。
在又一实施例中,揭示一种多线程处理器装置,所述多线程处理器装置包含:存储器;定序器,其响应于所述存储器;多个指令执行单元,其响应于所述定序器;及第一寄存器堆,其包含第一多个寄存器。所述第一寄存器堆耦合到所述多个指令执行单元中的每一者且所述第一寄存器堆支持对将执行的第一程序线程的执行。此外,所述第一寄存器堆包含不多于四个的数据读取端口。所述多线程处理器装置也包含第二寄存器堆,所述第二寄存器堆包含第二多个寄存器。所述第二寄存器堆耦合到所述多个指令执行单元中的每一者且所述第二寄存器堆支持对将执行的第二程序线程的执行。另外,所述第二寄存器堆包含不多于四个的数据读取端口。
在又一实施例中,揭示一种便携式通信装置,所述便携式通信装置包含数字信号处理器。所述数字信号处理器包含:存储器;定序器,其响应于所述存储器来提取具有若干个操作数的程序指令;至少一个指令执行单元,其响应于所述定序器;及多个寄存器堆,其耦合到所述至少一个指令执行单元。所述多个寄存器堆中的每一者包含不多于四个的数据读取端口且所述操作数的数量大于四。
在又一实施例中,揭示一种音频文件播放器,所述音频文件播放器包括:数字信号处理器、耦合到所述数字信号处理器的音频编码器/解码器(CODEC)、耦合到所述数字信号处理器的多媒体卡、及耦合到所述数字信号处理器的通用串行总线(USB)端口。所述数字信号处理器包含:存储器;定序器,其响应于所述存储器来提取具有若干个操作数的程序指令;至少一个指令执行单元,其响应于所述定序器;及多个寄存器堆,其耦合到所述至少一个指令执行单元。所述多个寄存器堆中的每一者包含不多于四个的数据读取端口且所述操作数的数量大于四。
在又一实施例中,揭示一种处理器装置,所述处理器装置包含:用于在解码时钟循环期间经由第一数据读取端口存取寄存器堆的装置,用于在所述时钟改变到寄存器堆存取时钟循环时维持经由所述第一数据读取端口对所述寄存器堆的存取的装置,及用于在所述寄存器堆存取时钟循环期间经由所述第一数据读取端口从所述寄存器堆检索第一操作数的装置。此外,所述处理器装置包含:用于在所述寄存器堆存取时钟循环期间经由所述第一数据读取端口存取所述寄存器堆的装置,用于在所述时钟改变到第一指令执行时钟循环时维持经由所述第一数据读取端口对所述寄存器堆的存取的装置,及用于在所述第一指令执行时钟循环期间经由所述第一数据读取端口从所述寄存器堆检索第二操作数的装置。
在另一实施例中,揭示一种处理器装置,所述处理器装置包含:用于在指令执行时钟循环期间经由第一数据写入端口对寄存器堆进行第一次更新的装置;及用于在写回时钟循环期间经由所述第一数据写入端口对所述寄存器堆进行第二次更新的装置。
本文所揭示的一个或一个以上实施例的优点可包含存取的操作数数量大于寄存器堆中的数据读取端口的数量。
另一优点可包含在一个时钟循环期间提供对等于数据读取端口数量的操作数数量的存取及在下一时钟循环期间提供经由所述相同数据读取端口对最多达数据读取端口数量的更多操作数的存取。
又一优点可包含明显减小数字信号处理器内的存储器的尺寸。
又一优点可包含明显减小与制造数字信号处理器相关联的一种或一种以上成本。
又一优点可包含明显减少耦合到数字信号处理器的电源的电力消耗。
在阅读整个申请案之后,本发明的其它方面、优点及特征将变的显而易见,所述申请案包含以下部分:附图说明、具体实施方式及权利要求书。
附图说明
结合附图参照下文详细说明,将更容易了解本文所述的实施例的方面及伴随优点,附图中:
图1是实例性数字信号处理器的一般示意图;
图2是图1中所示数字信号处理器的实例性统一未分割寄存器堆的一般示意图;
图3是图解说明图1中所示数字信号处理器的详细的交错多线程操作的示意图;
图4是并入有数字信号处理器的便携式通信装置的一般示意图;
图5是并入有数字信号处理器的实例性蜂窝式电话的一般示意图;
图6是并入有数字信号处理器的实例性无线因特网协议电话的一般示意图;
图7是并入有数字信号处理器的实例性便携式数字助理的一般示意图;
图8是并入有数字信号处理器的实例性音频文件播放器的一般示意图。
具体实施方式
图1图解说明数字信号处理器(DSP)100的实例性非限制实施例的方块图。如图1中所图解说明,DSP100包含经由总线106耦合到定序器104的存储器102。在特定实施例中,总线106是六十四(64)位总线且定序器104经配置以从长度为三十二(32)个位的存储器102中检索指令。总线106耦合到第一指令执行单元108、第二指令执行单元110、第三指令执行单元112、及第四指令执行单元114。图1指示每一指令执行单元108、110、112、114可经由第一总线118耦合到通用寄存器堆116。通用寄存器堆116也可经由第二总线120耦合到定序器104及存储器102。
在特定实施例中,存储器102包含第一指令高速缓存存储器122、第二指令高速缓存存储器124、第三指令高速缓存存储器126、第四指令高速缓存存储器128、第五指令高速缓存存储器130和第六指令高速缓存存储器132。在操作期间,指令高速缓存存储器122、124、126、128、130、132可由定序器104彼此独立地存取。另外,在特定实施例中,每一指令高速缓存存储器122、124、126、128、130、132包含多个指令。
如图1中所图解说明,存储器102可包含指令队列134,所述指令队列包含耦合到每一指令高速缓存存储器122、124、126、128、130、132的指令队列。特定而言,指令队列134包含:与第一指令高速缓存存储器122相关联的第一指令队列136、与第二指令高速缓存存储器124相关联的第二指令队列138、与第三指令高速缓存存储器126相关联的第三指令队列140、与第四指令高速缓存存储器128相关联的第四指令队列142、与第五指令高速缓存存储器130相关联的第五指令队列144和与第六指令高速缓存存储器132相关联的第六指令队列146。
在操作期间,定序器104可经由指令队列134从每一指令高速缓存存储器122、124、126、128、130、132提取指令。在特定实施例中,定序器104以从第一指令队列136到第六指令队列146的次序从指令队列136、138、140、142、144、146提取指令。在从第六指令队列146提取指令后,定序器104返回到第一指令队列136并继续从指令队列136、138、140、142、144、146提取指令。
在特定实施例中,定序器104在第一模式中作为支持超标量指令的2-路超标量定序器操作。此外,在特定实施例中,所述定序器也以支持极长指令字(VLIW)指令的第二模式操作。特定而言,所述定序器可作为4-路VLIW定序器操作。在特定实施例中,第一指令执行单元108可执行载入指令、存储指令及算术逻辑单元(ALU)指令。第二指令执行单元110可执行载入指令及ALU指令。此外,第三指令执行单元可执行乘法指令、乘法累加指令(MAC)、ALU指令、程序再定向结构和转移寄存器(CR)指令。图1进一步指示第四指令执行单元114可执行移位(S)指令、ALU指令、程序再定向结构和CR指令。在特定实施例中,所述程序再定向结构可是零开销环路、分支指令、跳跃(J)指令等。
如图1中所描绘,通用寄存器116包含:第一统一寄存器堆148、第二统一寄存器堆150、第三统一寄存器堆152、第四统一寄存器堆154、第五统一寄存器堆156和第六统一寄存器堆158。每一统一寄存器堆148、150、152、154、156、158对应于存储器102内的指令高速缓存存储器122、124、126、128、130、132。此外,在特定实施例中,每一统一寄存器堆148、150、152、154、156、158具有相同结构且包含若干个数据操作数及若干个地址操作数。
在数字信号处理器100的操作期间,指令是由定序器104从存储器102提取且操作数是从寄存器堆148、150、152、154、156、158提取。此外,指令及操作数发送到指定的指令执行单元108、110、112、114,并在指令执行单元108、110、112、114处执行。此外,从通用寄存器116(例如,从统一寄存器堆148、150、152、154、156、158中的一者)检索一个或一个以上操作数,且在执行所述指令期间使用所述操作数。可将每一指令执行单元108、110、112、114处的结果写入到通用寄存器116,也就是说,写入到统一寄存器堆148、150、152、154、156、158。
参照图2,图中显示统一未分割寄存器堆的实例性非限制实施例,且通常将所述统一未分割寄存器堆表示为200。如图所示,统一未分割寄存器堆200包含三十二(32)个寄存器202且每一寄存器包含三十二(32)个位204。图2指示统一未分割寄存器堆200可包含:第一数据读取端口206、第二数据读取端口208、第三数据读取端口210和第四数据读取端口212。此外,统一未分割寄存器堆200包含:第一数据写入端口214、第二数据写入端口216和第三数据写入端口218。
在特定实施例中,一个或一个以上指令可与统一未分割寄存器堆200相关联。此外,在执行每一指令期间,可经由四个读取端口206、208、210、212和三个写入端口214、216、218来存取与每一指令相关联的统一未分割寄存器堆200。然而,由于下述交错多线程方法,可经由四个数据读取端口206、208、210、212从统一未分割寄存器堆200检索多于四个的用于所述指令的操作数。
现在参照图3,图中显示用于数字信号处理器的详细的交错多线程方法。图3显示所述方法包含:分支例程300、载入例程302、存储例程304和s管线例程306。每一例程300、302、304、306包含多个步骤,所述多个步骤是针对由定序器从指令队列提取的每一指令在六个时钟循环期间实施。在特定实施例中,所述时钟循环包含:解码时钟循环308、寄存器堆存取时钟循环310、第一执行时钟循环312、第二执行时钟循环314、第三执行时钟循环316和写回时钟循环318。此外,每一时钟循环包含第一部分和第二部分。
图3显示在分支例程300期间,在方块320处,在解码时钟循环的第一部分期间在定序器内对指令实施快速解码。在方块322处,在解码时钟循环308的第二部分期间,定序器存取寄存器堆,例如,针对第一操作数开始寄存器堆存取。方块322的寄存器存取在寄存器堆存取时钟循环310内结束且第一操作数是从所述寄存器堆检索。在特定实施例中,定序器经由第一数据读取端口存取寄存器堆。如图所示,方块322的寄存器堆存取发生在解码时钟循环308的第二部分和寄存器堆存取时钟循环310的第一部分期间。因此,寄存器堆存取使解码时钟循环308与寄存器堆存取时钟循环310重叠。
在方块324处,也在解码时钟循环308期间,定序器开始对指令的全解码。由定序器实施的全解码发生在解码时钟循环308的第二部分和寄存器堆存取时钟循环310的第一部分内。
在寄存器堆存取时钟循环310期间,在方块326处,定序器产生指令虚拟地址(IVA)。此后,在方块328处,定序器实施页检查以确定与虚拟地址页号相关联的物理地址页。移到第一执行时钟循环312,在方块330处,定序器实施指令队列查找。在方块332处,定序器对指令高速缓存存储器进行第一次存取并检索所述指令的第一双字。在特定实施例中,每一指令包含三个双字,例如,第一双字、第二双字及第三双字。在方块334处,在第一执行时钟循环312期间,定序器将来自所述指令高速缓存存储器的双字对准。
继续到第二执行时钟循环314,定序器对所述指令高速缓存存储器进行第二次存取以在方块336处检索所述指令的第二双字。接下来,在方块338处,定序器将从所述指令高速缓存存储器检索的双字对准。
继续到第三执行时钟循环316,定序器对所述指令高速缓存存储器进行第三次存取以在方块342处检索第三双字。在定序器对所述指令高速缓存存储器进行第三次存取后,所述定序器在方块344处将第三双字对准。
如图3中所图解说明,在载入例程302期间,在方块350处,定序器在解码时钟循环308的第一部分期间对所述指令实施快速解码。在方块352处,在解码时钟循环308的第二部分期间,定序器开始寄存器堆存取。如图所示,由定序器实施的第二寄存器存取跨两个时钟循环,也就是说,包含解码时钟循环308的第二部分和寄存器堆存取时钟循环310的第一部分。因此,所述寄存器堆存取在寄存器堆存取时钟循环310内结束且可检索第二操作数。接下来,在第一执行循环312期间,在方块354处,第一指令执行单元内的地址产生单元基于先前读取的寄存器堆内容产生所述指令的第一虚拟地址。
在方块356处,在第二执行时钟循环314期间,数据转换后备缓冲器(DTLB)实施第一虚拟地址的地址转换以产生第一物理地址。仍在第二执行时钟循环314内,在方块358处,定序器实施标签检查。
移到第三执行循环316,在方块360处,定序器存取数据高速缓存存储器静态随机存取存储器(SRAM)以从所述SRAM读取数据。此外,在第三执行循环内,在方块362处,定序器经由第一数据写入端口对与所述指令相关联的寄存器堆进行第一次更新。在特定实施例中,定序器以后递增地址的结果更新寄存器堆。接下来,在写回时钟循环318期间,在方块364处,载入对准器对数据进行移位以使双字内的数据对准。在分块366处,也在写回时钟循环318内,定序器经由第一数据写入端口以从所述高速缓存存储器载入的数据对所述指令的寄存器堆进行第二次更新。
图3显示在存储例程304期间,在方块368处,定序器在解码时钟循环308期间对所述指令实施快速解码。此外,在解码时钟循环308期间,在方块370处,定序器经由第三数据读取端口对与所述指令相关联的寄存器堆进行第三次存取。方块370的寄存器存取发生在解码时钟循环308的最后部分和寄存器堆存取时钟循环310的第一部分内。因此,寄存器堆在解码时钟循环308内开始并在寄存器堆存取时钟循环310内结束。在特定实施例中,在寄存器堆存取时钟循环310期间从所述寄存器堆检索第三操作数。
如图3中所描绘,在寄存器堆存取时钟循环310的第二部分期间,定序器在方块372处经由第三数据读取端口对所述指令的寄存器堆进行第四次存取。所述第四寄存器堆在寄存器堆存取时钟循环310内开始且在第一执行时钟循环312内结束,其中从所述寄存器检索第四操作数。在特定实施例中,使用第三数据读取端口来存取寄存器,以检索第三操作数和第四操作数。在方块374处,在多路复用器处对来自定序器的数据的一部分实施多路复用。此外,在第一执行时钟循环312期间,在方块376处,第二指令执行单元内的第二地址产生单元基于来自寄存器堆的先前所读取的数据产生所述指令的虚拟地址。
继续到第二执行时钟循环314,在存储例程期间,在方块378处,数据转换后备缓冲器(DTLB)将所述指令的先前产生的虚拟地址转换成物理地址。在方块380处,在第二执行时钟循环314内,定序器实施数据高速缓存存储器标签检查。此外,在第二执行时钟循环314期间,在方块382处,存储对准器在将存储数据写入到数据高速缓存存储器之前将所述存储数据对准到双字内的适当字节、半字或字边界。移到第三执行时钟循环316,在方块384处,定序器对数据高速缓存存储器静态随机存取存储器进行更新。然后,在方块386处,定序器经由第二数据写入端口以在第三执行时钟循环316期间执行所述指令的结果对所述指令的寄存器堆进行第三次更新。
如图3中所图解说明,所述s管线例程306在解码时钟循环308期间在方块388处开始,其中对所述指令的实施快速解码。在方块390处,定序器经由第四数据读取端口对所述指令的寄存器堆进行第五次存取。第五寄存器堆存取也跨两个时钟循环且在解码时钟循环308的第二部分内开始并在其中检索第五操作数的寄存器堆存取时钟循环310的第一部分内结束。仍在寄存器堆存取时钟循环310期间,在多路复用器处对来自所述指令寄存器堆的数据的一部分实施多路复用。此外,在寄存器堆存取时钟循环310期间,定序器在方块394处经由第四数据读取端口对所述指令的寄存器堆进行第六次存取。对所述寄存器堆的第六存取在寄存器堆存取时钟循环310的第二部分内开始且在第一执行时钟循环312的第一部分内结束。在第一执行时钟循环312期间检索第六操作数。
继续到第二执行时钟循环314,在方块396处,将在第五寄存器堆存取及第六寄存器堆存取期间检索的数据发送到64位移位器、向量单元和符号/零扩展器。此外,在第一执行时钟循环期间,在方块398处,对来自移位器、向量单元和符号/零扩展器的数据实施多路复用。
移到第二执行时钟循环314,在方块400处将来自移位器、向量单元和符号/零扩展器的经多路复用的数据发送到算术逻辑单元、计数前导零单元或比较器。在方块402处,在单个多路复用器处对来自算术逻辑单元、计数前导零单元和比较器的数据实施多路复用。在对所述数据实施多路复用后,移位器将经多路复用的数据移位,以在第三执行时钟循环316期间在方块404处将所述数据乘以2、4、8等。然后,在方块406处,移位器的输出饱和。在写回时钟循环318期间,在方块408处,经由第三写入数据端口对所述指令的寄存器堆进行第四次更新。
在特定实施例中,如在图3中所图解说明,用于数字信号处理器的交错多线程方法利用每一寄存器的四个读取端口和每一寄存器的三个写入端口。由于读取端口和写入端口可再循环使用,因而可经由四个读取数据端口检索六个操作数。此外,可经由三个写入数据端口将四个结果更新到寄存器堆。
图4图解说明便携式通信装置的实例性非限制实施例,且通常将所述便携式通信装置表示为420。如图4中所图解说明,所述便携式通信装置包含芯片上系统422,所述芯片上系统包含数字信号处理器424。在特定实施例中,数字信号处理器424为图1中所示及在本文中所述的数字信号处理器。图4也显示耦合到数字信号处理器424和显示器428的显示器控制器426。此外,输入装置430耦合到数字信号处理器424。如图所示,存储器432耦合到数字信号处理器424。另外,编码器/解码器(CODEC)434可耦合到数字信号处理器424。扬声器436和麦克风438可耦合到CODEC 430。
图4也指示无线控制器440可耦合到数字信号处理器424和无线天线442.在特定实施例中,电源444耦合到芯片上系统422.此外,在特定实施例中,如图4中所图解说明,显示器428、输入装置430、扬声器436、麦克风438、无线天线442和电源444处在芯片上系统422的外部。然而,其每一者均耦合到芯片上系统422的组件。
在特定实施例中,数字信号处理器424利用交错多线程来处理与程序线程相关联的指令,所述程序线程是便携式通信装置420的各种组件实施所需功能性及作业所必需的。例如,当经由无线天线建立无线通信会话时,用户便可对着麦克风438讲话。代表用户的语音的电子信号发送到CODEC 434以便进行编码。数字信号处理器424可实施数据处理以使CODEC 434对来自麦克风的电子信号进行编码。此外,无线控制器440可将经由无线天线442接收的进入信号发送到CODEC434以进行解码并发送到扬声器436。数字信号处理器424也可在对经由无线天线442接收的信号进行解码时针对CODEC 434实施数据处理。
此外,在无线通信会话之前、期间或之后,数字信号处理器424可处理从输入装置430接收的输入。例如,在无线通信会话期间,用户可使用输入装置430及显示器428以经由万维网浏览器在因特网上冲浪,所述万维网浏览器嵌于便携式系统装置420的存储器432内。如本文所述,数字信号处理器424可将由输入装置430、显示控制器426、显示器428、CODEC 434及无线控制器440使用的各种程序线程交错,以有效地控制便携式通信装置420以及其中的各种组件的操作。许多与各种程序线程相关联的指令是在一个或一个以上时钟循环期间同时执行。由此,显著降低因浪费的时钟循环而引起的功率和能量消耗。
参照图5,其显示蜂窝式电话的实例性非限制实施例且所述蜂窝式电话通常表示为520。如图所示,蜂窝式电话520包含芯片上系统522,所述芯片上系统522包含耦合在一起的数字基带处理器524及模拟基带处理器526。在特定实施例中,数字基带处理器524为数字信号处理器,例如,图1中所示及在本文中所述的数字信号处理器。如图5中所图解说明,显示器控制器528和触摸屏控制器530耦合到数字基带处理器524。处在芯片上系统522外部的触摸屏显示器532又耦合到显示器控制器528和触摸屏控制器530。
图5进一步指示耦合到数字基带处理器524的视频编码器534,例如,相位交替线(PAL)编码器、连续色彩记忆(SECAM)编码器或美国国家电视系统委员会(NTSC)编码器。此外,视频放大器536耦合到视频编码器534及触摸屏显示器532。此外,视频端口538耦合到视频放大器536。如在图5中所描绘,通用串行总线(USB)控制器540耦合到数字基带处理器524。此外,USB端口542耦合到USB控制器540。存储器544及订户身份模块(SIM)卡546也可耦合到数字基带处理器524。此外,如在图5中所示,数字照相机548可耦合到数字基带处理器524。在实例性实施例中,数字照相机548是电荷耦合装置(CCD)照相机或互补金属氧化物半导体(CMOS)照相机。
如图5中的进一步图解说明,立体声音频CODEC 550可耦合到模拟基带处理器526。此外,音频放大器552可耦合到立体声音频CODEC 550。在实例性实施例中,第一立体声扬声器554及第二立体声扬声器556耦合到音频放大器552。图5显示麦克风放大器558也可耦合到立体声音频CODEC 550。另外,麦克风560可耦合到麦克风放大器558。在特定实施例中,调频(FM)无线电调谐器562可耦合到立体声音频CODEC 550。此外,FM天线564耦合到FM无线电调谐器562。此外,立体声耳机566可耦合到立体声音频CODEC 550。
图5进一步指示射频(RF)收发机568可耦合到模拟基带处理器526。RF开关570可耦合到RF收发机568及RF天线572。如图5中所示,键盘574可耦合到模拟基带处理器526。此外,带有麦克风的单声道头戴耳机576可耦合到模拟基带处理器526。此外,振动器装置578可耦合到模拟基带处理器526。图5也显示电源580可耦合到芯片上系统522。在特定实施例中,电源580是为蜂窝式电话520中需要用电的各种组件供电的直流(DC)电源。此外,在特定实施例中,电源是可再充电式DC电池或DC电源,其是从连接到AC电源的交流(AC)至DC转换器引出。
在特定实施例中,如图5中所描绘,触摸屏显示器532、视频端口538、USB端口542,照相机548、第一立体声扬声器554、第二立体声扬声器556、麦克风560、FM天线564、立体声耳机566、RF开关570、RF天线572、键盘574、单声道头戴耳机576、振动器578、及电源580均处在芯片上系统522的外部。此外,在特定实施例中,数字基带处理器524及模拟基带处理器526可使用本文中所述的交错多线程,来处理各种程序线程,所述程序线程与一个或一个以上与蜂窝式电话520相关联的不同组件相关联。
参照图6,图中显示无线因特网协议(IP)电话的实例性非限制实施例,且通常将所述无线因特网协议(IP)电话表示为600。如图所示,无线IP电话600包含芯片上系统602,所述芯片上系统包含数字信号处理器(DSP)604。在特定实施例中,DSP604是在图1中所示及在本文中所述的数字信号处理器。如在图6中所图解说明,显示器控制器606耦合到DSP 604且显示器608耦合到显示器控制器606。在实例性实施例中,显示器608是液晶显示器(LCD)。图6进一步显示键盘610可耦合到DSP 604。
如图6中进一步所描绘,快闪存储器612可耦合到DSP 604。同步动态随机存取存储器(SDRAM)614、静态随机存取存储器(SRAM)616和电可擦可编程唯读存储器(EEPROM)618也可耦合到DSP 604。图6也显示发光二极管(LED)620可耦合到DSP604。另外,在特定实施例中,语音CODEC 622可耦合到DSP 604。放大器624可耦合到语音CODEC 622且单声道扬声器626可耦合到放大器624。图6进一步指示单声道头戴耳机628也可耦合到语音CODEC 622。在特定实施例中,单声道头戴耳机628包含麦克风。
图6也图解说明无线局域网(WLAN)基带处理器630可耦合到DSP 604。RF收发机632可耦合到WLAN基带处理器630且RF天线634可耦合到RF收发机632。在特定实施例中,蓝牙控制器636也可耦合到DSP 604且蓝牙天线638可耦合到控制器636。图6也显示USB端口640也可耦合到DSP 604。此外,电源642耦合到芯片上系统602且经由芯片上系统602为无线IP电话600的各个组件供电。
在特定实施例中,如图6中所指示,显示器608、键盘610、LED 620、单声道扬声器626、单声道头戴耳机628、RF天线634、蓝牙天线638、USB端口640和电源642均处在芯片上系统602的外部。然而,所述组件中的每一者均耦合到所述芯片上系统中的一个或一个以上组件。此外,在特定实施例中,数字信号处理器600可使用本文所述的交错多线程,来以处理各种程序线程,所述程序线程与一个或一个以上与IP电话600相关联的不同组件相关联。
图4图解说明便携式数字助理(PDA)的实例性非限制实施例,所述便携式数字助理通常表示为700。如图所示,PDA 700包含芯片上系统702,所述芯片上系统包含数字信号处理器(DSP)704。在特定实施例中,DSP 704是在图1中所示及在本文中所述的数字信号处理器。如图7中所描绘,触摸屏控制器706及显示器控制器708耦合到DSP 704。此外,触摸屏显示器耦合到触摸屏控制器706及显示器控制器708。图7也指示键盘712可耦合到DSP 704。
如图7中进一步描绘,快闪存储器714可耦合到DSP 704。此外,唯读存储器(ROM)716、动态随机存取存储器(DRAM)718和电可擦可编程唯读存储器(EEPROM)720可耦合到DSP704。图7也显示红外线数据协会(IrDA)端口722可耦合到DSP 704。另外,在特定实施例中,数字照相机724可耦合到DSP 704。
如图7中所示,在特定实施例中,立体声音频CODEC 726可耦合到DSP 704。第一立体声放大器728可耦合到立体声音频CODEC 726且第一立体声扬声器730可耦合到第一立体声放大器728。另外,麦克风放大器732可耦合到立体声音频CODEC726且麦克风734可耦合到麦克风放大器732。图7进一步显示第二立体声放大器736可耦合到立体声音频CODEC 726且第二立体声扬声器738可耦合到第二立体声放大器736。在特定实施例中,立体声耳机740也可耦合到立体声音频CODEC 726。
图7也图解说明802.11控制器742可耦合到DSP 704且802.11天线744可耦合到802.11控制器742。此外,蓝牙控制器746可耦合到DSP 704且蓝牙天线748可耦合到蓝牙控制器746。如图7中所描绘,USB控制器750可耦合到DSP 704且USB端口752可耦合到USB控制器750。另外,智能卡754(例如,多媒体卡(MMC)或安全数字卡(SD))可耦合到DSP 704。此外,如图7中所示,电源756可耦合到芯片上系统702且可经由芯片上系统702为PDA 700中的各组件供电。
在特定实施例中,如图7中所指示,显示器710、键盘712、IrDA端口722、数字照相机724、第一立体声扬声器730、麦克风734、第二立体声扬声器738、立体声耳机740、802.11天线744、蓝牙天线748、USB端口752和电源750均处在芯片上系统702的外部。然而,所述组件中的每一者均耦合到所述芯片上系统中的一个或一个以上组件。另外,在特定实施例中,数字信号处理器704可使用本文所述的交错多线程,来处理各种程序线程,所述程序线程与一个或一个以上与便携式数字助理700相关联的不同组件相关联。
参照图8,图中显示音频文件播放器(例如,移动图画专家群组音频层-3(MP3)播放器)的实例性非限制实施例,且所述音频文件播放器通常表示为800。如图所示,音频文件播放器800包含芯片上系统802,所述芯片上系统包含数字信号处理器(DSP)804。在特定实施例中,DSP 804是在图1中所示及在本文中所述的数字信号处理器。如图8中所图解说明,显示器控制器806耦合到DSP 804且显示器808耦合到显示器控制器806。在实例性实施例中,显示器808是液晶显示器(LCD)。图8进一步显示键盘810可耦合到DSP 804。
如图8中进一步描绘,快闪存储器812和唯读存储器(ROM)814可耦合到DSP 804。另外,在特定实施例中,音频CODEC 816可耦合到DSP 804。放大器818可耦合到音频CODEC 816且单声道扬声器820可耦合到放大器818。图8进一步指示麦克风输入822和立体声输入824也可耦合到音频CODEC 816。在特定实施例中,立体声耳机826也可耦合到音频CODEC 816。
图8也指示USB端口828和智能卡830可耦合到DSP 804。另外,电源832可耦合到芯片上系统802且可经由芯片上系统802为音频文件播放器800中的各组件供电。
在特定实施例中,如图8中所指示,显示器808、键盘810、单声道扬声器820、麦克风输入822、立体声输入824、立体声耳机826、USB端口828和电源832均处在芯片上系统802的外部。然而,所述组件中的每一者均耦合到所述芯片上系统上的一个或一个以上组件。此外,在特定实施例中,数字信号处理器804可使用本文所述的交错多线程来处理各种程序线程,所述程序线程与一个或一个以上与音频文件播放器800相关联的不同组件相关联。
通过本文所揭示结构的配置,用于在交错多线程环境中操作的数字处理器的寄存器堆提供多个寄存器堆,所述多个寄存器堆各自具有四个数据读取端口和三个数据写入端口。每一寄存器堆包含数据操作数及地址操作数且每一寄存器堆可用于支持特定的程序线程。在操作期间,特定指令可经由四个数据读取端口来存取多达六个操作数。例如,可在一个时钟循环期间检索四个操作数并可在下一时钟信号期间检索两个操作数。仅使用四个数据读取端口会明显减小数字信号处理器所需存储器的尺寸。因此,与制造包含本文所揭示寄存器堆的数字信号处理器相关联的成本明显减小。此外,耦合到数字信号处理器的电源的功率消耗明显减小。
所属领域的技术人员应进一步了解,结合本文所揭示实施例来描述的各种说明性逻辑块、配置、模块、电路和算法步骤可实施为电子硬件、计算机软件或二者的组合。为清晰地图解说明硬件与软件的互换性,上文大致就其功能性来描述各种说明性组件、块、配置、模块、电路和步骤。此种功能性是作为硬件还是软件而实施取决于特定应用和施加于整个系统的设计制约条件。所属领域的技术人员可针对每一特定应用以不同方式实施上述功能性,但是,所述实施决定绝对不应被解释为导致背离本发明的范围。
结合本文所揭示实施例所描述的方法或算法的步骤可直接实施在硬件、由处理器执行的软件模块或二者的组合中。软件模块可驻存于RAM存储器、快闪存储器、ROM存储器、PROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬磁盘、可装卸磁盘、CD-ROM、或此项技术中已知的任一其它形式的存储媒体中。实例性存储媒体耦合到处理器,以使所述处理器可从存储媒体读取信息及向所述存储媒体写入信息。另一选择为,存储媒体可是处理器的组成部分。所述处理器和存储媒体可驻存于ASIC中。ASIC可驻存于计算装置或用户终端机中。另一选择为,处理器和存储媒体可作为离散组件驻存于计算装置或用户终端机中。
上文对所揭示实施例的说明旨在使所属领域的技术人员均能够制作或使用本发明。所属领域的技术人员将易知对所述实施例的各种修改,且本文所界定的一般原理也可应用于其它实施例,这并不背离本发明的精神或范围。因此本发明并非打算限定于本文所示的实施例,而应赋予其由以下权利要求书所界定的原理和新颖特性相一致的最宽广范围。
Claims (24)
1.一种操作处理器的方法,所述方法包括:
在第一时间周期期间,从耦合到所述处理器的寄存器堆的第一数据读取端口检索极长指令字VLIW指令的第一操作数;
在第二时间周期期间,维持经由所述第一数据读取端口对所述寄存器堆的存取;以及
在所述第二时间周期期间,从所述第一数据读取端口检索所述VLIW指令的第二操作数,
其中所述VLIW指令包括操作数的总数量,且所述寄存器堆包括数据读取端口的总数量,使得所述VLIW指令的操作数的所述总数量大于所述寄存器堆的数据读取端口的所述总数量,其中所述第一时间周期包括解码时钟循环的第二部分及所述处理器的指令管线的寄存器堆存取时钟循环的第一部分;且所述第二时间周期包括所述寄存器堆存取时钟循环的第二部分及所述指令管线的第一指令执行时钟循环的第一部分。
2.如权利要求1所述的方法,其进一步包括:
在所述第一时间周期期间,从所述寄存器堆的第二数据读取端口、第三数据读取端口及第四数据读取端口检索所述VLIW指令的第三操作数、第四操作数及第五操作数;
在所述第二时间周期期间,维持经由所述第二数据读取端口、所述第三数据读取端口及所述第四数据读取端口中的至少一者对所述寄存器堆的存取;以及
在所述第二时间周期期间,从所述第二数据读取端口、所述第三数据读取端口及所述第四数据读取端口中的所述至少一者检索第六操作数。
3.如权利要求1所述的方法,其进一步包括:
在第三时间周期期间,经由所述寄存器堆的第一数据写入端口对所述寄存器堆进行第一次更新;以及
在第四时间周期期间,经由所述第一数据写入端口对所述寄存器堆进行第二次更新,
其中所述寄存器堆包括数据写入端口的总数量,且所述VLIW指令需要寄存器堆更新的总数量,使得用于所述VLIW指令的寄存器堆更新的所述总数量大于所述寄存器堆的数据写入端口的所述总数量,其中所述第三时间周期包括第三指令执行时钟循环的至少一部分,且所述第四时间周期包括所述处理器的指令管线的写回时钟循环的至少一部分。
4.如权利要求3所述的方法,其进一步包括在所述第三时间周期期间经由所述寄存器堆的第二数据写入端口对所述寄存器堆进行第三次更新及在所述第四时间周期期间经由所述寄存器堆的第三数据写入端口对所述寄存器堆进行第四次更新。
5.一种操作处理器的方法,其包括:
在第一时间周期期间,经由耦合到所述处理器的寄存器堆的第一数据写入端口对所述寄存器堆进行与极长指令字VLIW指令相关的第一次更新;
在第二时间周期期间,经由所述第一数据写入端口对所述寄存器堆进行与所述VLIW指令相关的第二次更新,
其中所述寄存器堆包括数据写入端口的总数量,且所述VLIW指令需要寄存器堆更新的总数量,使得用于所述VLIW指令的寄存器堆更新的所述总数量大于所述寄存器堆的数据写入端口的所述总数量,其中所述第一时间周期包括第三指令执行时钟循环的至少一部分,且所述第二时间周期包括所述处理器的指令管线的写回时钟循环的至少一部分。
6.如权利要求5所述的方法,其进一步包括在所述第一时间周期期间,经由所述寄存器堆的第二数据写入端口对所述寄存器堆进行与所述VLIW指令相关的第三次更新,且在所述第二时间周期期间,经由所述寄存器堆的第三数据写入端口对所述寄存器堆进行与所述VLIW指令相关的第四次更新。
7.一种用于处理信号的设备,其包括:
处理器;
耦合到所述处理器的存储器;
耦合到所述处理器的寄存器堆;以及
定序器,其经配置以从所述存储器获取极长指令字VLIW指令,且存取所述寄存器堆以检索用于由所述处理器执行所述VLIW指令的所述VLIW指令的操作数,其中所述定序器经配置以:
在第一时间周期期间,从所述寄存器堆的第一数据读取端口检索所述VLIW指令的第一操作数;
在第二时间周期期间,维持经由所述第一数据读取端口对所述寄存器堆的存取;以及
在所述第二时间周期期间,从所述第一数据读取端口检索所述VLIW指令的第二操作数,
其中所述VLIW指令包括操作数的总数量,且所述寄存器堆包括数据读取端口的总数量,使得所述VLIW指令的操作数的所述总数量大于所述寄存器堆的数据读取端口的所述总数量,其中所述第一时间周期包括解码时钟循环的第二部分及由所述处理器执行的指令管线的寄存器堆存取时钟循环的第一部分;且所述第二时间周期包括所述寄存器堆存取时钟循环的第二部分及所述指令管线的第一指令执行时钟循环的第一部分。
8.如权利要求7所述的设备,其中所述定序器进一步经配置以:
在所述第一时间周期期间,从所述寄存器堆的第二数据读取端口、第三数据读取端口及第四数据读取端口检索所述VLIW指令的第三操作数、第四操作数及第五操作数;
在所述第二时间周期期间,维持经由所述第二数据读取端口、所述第三数据读取端口及所述第四数据读取端口中的至少一者对所述寄存器堆的存取;以及
在所述第二时间周期期间,从所述第二数据读取端口、所述第三数据读取端口及所述第四数据读取端口中的所述至少一者检索第六操作数。
9.如权利要求7所述设备,其中所述定序器进一步经配置以:
在第三时间周期期间,经由所述寄存器堆的第一数据写入端口对所述寄存器堆进行第一次更新;以及
在第四时间周期期间,经由所述第一数据写入端口对所述寄存器堆进行第二次更新,
其中所述寄存器堆包括数据写入端口的总数量,且所述VLIW指令需要寄存器堆更新的总数量,使得用于所述VLIW指令的寄存器堆更新的所述总数量大于所述寄存器堆的数据写入端口的所述总数量,其中所述第三时间周期包括第三指令执行时钟循环的至少一部分,且所述第四时间周期包括所述处理器的指令管线的写回时钟循环的至少一部分。
10.如权利要求9所述的设备,其中所述定序器进一步经配置以在所述第三时间周期期间经由所述寄存器堆的第二数据写入端口对所述寄存器堆进行第三次更新及在所述第四时间周期期间,经由所述寄存器堆的第三数据写入端口对所述寄存器堆进行第四次更新。
11.一种包括代码的非暂时性计算机可读存储媒体,所述代码在由处理器执行时致使所述处理器执行与极长指令字VLIW指令的执行相关的操作,所述非暂时性计算机可读存储媒体包括:
用于在第一时间周期期间,从耦合到所述处理器的寄存器堆的第一数据读取端口检索所述VLIW指令的第一操作数的代码;
用于在第二时间周期期间,维持经由所述第一数据读取端口对所述寄存器堆进行的存取的代码;以及
用于在所述第二时间周期期间,从所述第一数据读取端口检索所述VLIW指令的第二操作数的代码,
其中所述VLIW指令包括操作数的总数量,且所述寄存器堆包括数据读取端口的总数量,使得所述VLIW指令的操作数的所述总数量大于所述寄存器堆的数据读取端口的所述总数量,其中所述第一时间周期包括解码时钟循环的第二部分及所述处理器的指令管线的寄存器堆存取时钟循环的第一部分;且所述第二时间周期包括所述寄存器堆存取时钟循环的第二部分及所述指令管线的第一指令执行时钟循环的第一部分。
12.如权利要求11所述的非暂时性计算机可读存储媒体,其进一步包含:
用于在所述第一时间周期期间,从所述寄存器堆的第二数据读取端口、第三数据读取端口及第四数据读取端口检索所述VLIW指令的第三操作数、第四操作数及第五操作数的代码;
用于在所述第二时间周期期间,维持经由所述第二数据读取端口、所述第三数据读取端口及所述第四数据读取端口中的至少一者对所述寄存器堆的存取的代码;以及
用于在所述第二时间周期期间,从所述第二数据读取端口、所述第三数据读取端口及所述第四数据读取端口中的所述至少一者检索第六操作数的代码。
13.如权利要求11所述的非暂时性计算机可读存储媒体,其进一步包含:
用于在第三时间周期期间,经由所述寄存器堆的第一数据写入端口对所述寄存器堆进行第一次更新的代码;
用于在第四时间周期期间,经由所述第一数据写入端口对所述寄存器堆进行第二次更新的代码,
其中所述寄存器堆包括数据写入端口的总数量,且所述VLIW指令需要寄存器堆更新的总数量,使得用于所述VLIW指令的寄存器堆更新的所述总数量大于所述寄存器堆的数据写入端口的所述总数量,其中所述第三时间周期包括第三指令执行时钟循环的至少一部分,且所述第四时间周期包括所述处理器的指令管线的写回时钟循环的至少一部分。
14.如权利要求13所述的非暂时性计算机可读存储媒体,其进一步包括在所述第一时间周期期间,经由所述寄存器堆的第二数据写入端口对所述寄存器堆进行与所述VLIW指令相关的第三次更新,且在所述第二时间周期期间,经由所述寄存器堆的第三数据写入端口对所述寄存器堆进行与所述VLIW指令相关的第四次更新的代码。
15.一种操作数字信号处理器的方法,所述方法包括:
在解码时钟循环期间,经由第一数据读取端口存取寄存器堆;
在所述时钟改变到寄存器堆存取时钟循环时,维持经由所述第一数据读取端口对所述寄存器堆的存取;
在所述寄存器堆存取时钟循环期间经由所述第一数据读取端口从所述寄存器堆检索第一操作数;及
在所述寄存器堆存取时钟循环期间经由所述第一数据读取端口存取所述寄存器堆。
16.如权利要求15所述的方法,其进一步包括:
在所述时钟改变到第一指令执行时钟循环时,维持经由所述第一数据读取端口对所述寄存器堆的存取
在所述第一指令执行时钟循环期间经由所述第一数据读取端口从所述寄存器堆检索第二操作数。
17.如权利要求16所述的方法,其进一步包括:
在所述解码时钟循环期间经由第二数据读取端口存取寄存器堆;
在所述时钟改变到所述寄存器堆存取时钟循环时,维持经由所述第二数据读取端口对所述寄存器堆的存取;及
在所述寄存器堆存取时钟循环期间经由所述第二数据读取端口从所述寄存器堆检索第三操作数。
18.如权利要求17所述的方法,其进一步包括:
在所述寄存器堆存取时钟循环期间经由所述第二数据读取端口存取所述寄存器堆;
在所述时钟改变为所述第一指令执行时钟循环时,维持经由所述第二数据读取端口对所述寄存器堆的存取;及
在所述第一指令执行时钟循环期间经由所述第二数据读取端口从所述寄存器堆检索第四操作数。
19.如权利要求18所述的方法,其进一步包括:
在所述解码时钟循环期间经由第三数据读取端口存取所述寄存器堆;
在所述时钟改变到所述寄存器堆存取时钟循环时,维持经由所述第三数据读取端口对所述寄存器堆的存取;及
在所述寄存器堆存取时钟循环期间经由所述第三数据读取端口从所述寄存器堆检索第五操作数。
20.如权利要求19所述的方法,其进一步包括:
在所述解码时钟循环期间经由第四数据读取端口存取所述寄存器堆;
在所述时钟改变到所述寄存器堆存取时钟循环时,维持经由所述第四数据读取端口对所述寄存器堆的存取;及
在所述寄存器堆存取时钟循环期间经由所述第三数据读取端口从所述寄存器堆检索第六操作数。
21.如权利要求20所述的方法,其进一步包括:
在第三指令执行时钟循环期间经由第一数据写入端口对所述寄存器堆进行第一次更新;及
在写回时钟循环期间经由所述第一数据写入端口对所述寄存器堆进行第二次更新。
22.如权利要求21所述的方法,其进一步包括在第三指令执行时钟循环期间经由第二数据写入端口对所述寄存器堆进行第三次更新。
23.如权利要求22所述的方法,其进一步包括在写回时钟循环期间经由第三数据写入端口对所述寄存器堆进行第四次更新。
24.一种处理器装置,其包括:
用于在解码时钟循环期间经由第一数据读取端口存取寄存器堆的装置;
用于在所述时钟改变到寄存器堆存取时钟循环时维持经由所述第一数据读取端口对所述寄存器堆的存取的装置;
用于在所述寄存器堆存取时钟循环期间经由所述第一数据读取端口从所述寄存器堆检索第一操作数的装置;
用于在所述寄存器堆存取时钟循环期间经由所述第一数据读取端口存取所述寄存器堆的装置;
用于在所述时钟改变到第一指令执行时钟循环时维持经由所述第一数据读取端口对所述寄存器堆的存取的装置;及
用于在所述第一指令执行时钟循环期间经由所述第一数据读取端口从所述寄存器堆检索第二操作数的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/115,916 US8713286B2 (en) | 2005-04-26 | 2005-04-26 | Register files for a digital signal processor operating in an interleaved multi-threaded environment |
US11/115,916 | 2005-04-26 | ||
CN200680022104.6A CN101203830B (zh) | 2005-04-26 | 2006-04-24 | 用于在交错的多线程环境中操作的数字信号处理器的寄存器堆 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680022104.6A Division CN101203830B (zh) | 2005-04-26 | 2006-04-24 | 用于在交错的多线程环境中操作的数字信号处理器的寄存器堆 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105700852A CN105700852A (zh) | 2016-06-22 |
CN105700852B true CN105700852B (zh) | 2019-04-16 |
Family
ID=36649497
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680022104.6A Active CN101203830B (zh) | 2005-04-26 | 2006-04-24 | 用于在交错的多线程环境中操作的数字信号处理器的寄存器堆 |
CN201610018496.4A Active CN105700852B (zh) | 2005-04-26 | 2006-04-24 | 用于在交错的多线程环境中操作的数字信号处理器的寄存器堆 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680022104.6A Active CN101203830B (zh) | 2005-04-26 | 2006-04-24 | 用于在交错的多线程环境中操作的数字信号处理器的寄存器堆 |
Country Status (5)
Country | Link |
---|---|
US (2) | US8713286B2 (zh) |
CN (2) | CN101203830B (zh) |
MX (1) | MX2007013394A (zh) |
TW (1) | TW200710718A (zh) |
WO (1) | WO2006116258A2 (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8713286B2 (en) | 2005-04-26 | 2014-04-29 | Qualcomm Incorporated | Register files for a digital signal processor operating in an interleaved multi-threaded environment |
EP2011018B1 (en) | 2006-04-12 | 2016-07-13 | Soft Machines, Inc. | Apparatus and method for processing an instruction matrix specifying parallel and dependent operations |
EP2122461A4 (en) | 2006-11-14 | 2010-03-24 | Soft Machines Inc | DEVICE AND METHOD FOR PROCESSING COMMUNICATIONS IN A MULTITHREAD ARCHITECTURE WITH CONTEXT CHANGES |
US7739481B1 (en) * | 2007-09-06 | 2010-06-15 | Altera Corporation | Parallelism with variable partitioning and threading |
US8516228B2 (en) * | 2008-03-19 | 2013-08-20 | International Business Machines Corporation | Supporting partial recycle in a pipelined microprocessor |
EP2616928B1 (en) | 2010-09-17 | 2016-11-02 | Soft Machines, Inc. | Single cycle multi-branch prediction including shadow cache for early far branch prediction |
EP2689326B1 (en) | 2011-03-25 | 2022-11-16 | Intel Corporation | Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines |
KR101638225B1 (ko) | 2011-03-25 | 2016-07-08 | 소프트 머신즈, 인크. | 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 명령어 시퀀스 코드 블록의 실행 |
CN103562866B (zh) | 2011-03-25 | 2018-03-30 | 英特尔公司 | 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段 |
WO2012162189A1 (en) | 2011-05-20 | 2012-11-29 | Soft Machines, Inc. | An interconnect structure to support the execution of instruction sequences by a plurality of engines |
TWI666551B (zh) | 2011-05-20 | 2019-07-21 | 美商英特爾股份有限公司 | 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行 |
KR101703401B1 (ko) | 2011-11-22 | 2017-02-06 | 소프트 머신즈, 인크. | 다중 엔진 마이크로프로세서용 가속 코드 최적화기 |
WO2013077876A1 (en) | 2011-11-22 | 2013-05-30 | Soft Machines, Inc. | A microprocessor accelerated code optimizer |
US9626191B2 (en) * | 2011-12-22 | 2017-04-18 | Nvidia Corporation | Shaped register file reads |
US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
US9886279B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Method for populating and instruction view data structure by using register template snapshots |
WO2014150991A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a reduced size register view data structure in a microprocessor |
WO2014150971A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for dependency broadcasting through a block organized source view data structure |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
US9891924B2 (en) | 2013-03-15 | 2018-02-13 | Intel Corporation | Method for implementing a reduced size register view data structure in a microprocessor |
US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
CN105210040B (zh) | 2013-03-15 | 2019-04-02 | 英特尔公司 | 用于执行分组成块的多线程指令的方法 |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
CN105247484B (zh) | 2013-03-15 | 2021-02-23 | 英特尔公司 | 利用本地分布式标志体系架构来仿真访客集中式标志体系架构的方法 |
US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
TWI681300B (zh) | 2014-11-14 | 2020-01-01 | 美商凱為有限責任公司 | 在64位元資料路徑上實行128位元simd操作之方法、系統及電腦可讀取媒體 |
US9952865B2 (en) * | 2015-04-04 | 2018-04-24 | Texas Instruments Incorporated | Low energy accelerator processor architecture with short parallel instruction word and non-orthogonal register data file |
CN108628639B (zh) * | 2017-03-21 | 2021-02-12 | 华为技术有限公司 | 处理器和指令调度方法 |
US11126588B1 (en) * | 2020-07-28 | 2021-09-21 | Shenzhen GOODIX Technology Co., Ltd. | RISC processor having specialized registers |
US20220121487A1 (en) * | 2020-10-20 | 2022-04-21 | Micron Technology, Inc. | Thread scheduling control and memory splitting in a barrel processor |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1188277A (zh) * | 1996-12-16 | 1998-07-22 | 国际商业机器公司 | 多端口和交错的超高速缓冲存储器 |
CN1224871A (zh) * | 1998-01-30 | 1999-08-04 | 国际商业机器公司 | 在一个处理系统中处理多条存储指令完成的方法和系统 |
US6014739A (en) * | 1997-10-27 | 2000-01-11 | Advanced Micro Devices, Inc. | Increasing general registers in X86 processors |
CN1360314A (zh) * | 2000-12-20 | 2002-07-24 | 富士通株式会社 | 基于动态随机存取存储器核心的多端口存储器 |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US539989A (en) * | 1895-05-28 | John a | ||
DE69325785T2 (de) | 1992-12-29 | 2000-02-17 | Koninkl Philips Electronics Nv | Verbesserte Architektur für Prozessor mit sehr langem Befehlswort |
US6002880A (en) | 1992-12-29 | 1999-12-14 | Philips Electronics North America Corporation | VLIW processor with less instruction issue slots than functional units |
WO1994027216A1 (en) * | 1993-05-14 | 1994-11-24 | Massachusetts Institute Of Technology | Multiprocessor coupling system with integrated compile and run time scheduling for parallelism |
US5644780A (en) | 1995-06-02 | 1997-07-01 | International Business Machines Corporation | Multiple port high speed register file with interleaved write ports for use with very long instruction word (vlin) and n-way superscaler processors |
US5764943A (en) * | 1995-12-28 | 1998-06-09 | Intel Corporation | Data path circuitry for processor having multiple instruction pipelines |
EP0881575A4 (en) * | 1996-02-16 | 2002-04-17 | Hitachi Ltd | MULTIPLE ACCESS MEMORY AND DATA PROCESSOR PROVIDING ACCESS TO THE MEMORY |
JP2806359B2 (ja) * | 1996-04-30 | 1998-09-30 | 日本電気株式会社 | 命令処理方法及び命令処理装置 |
US6055628A (en) * | 1997-01-24 | 2000-04-25 | Texas Instruments Incorporated | Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks |
US6314511B2 (en) * | 1997-04-03 | 2001-11-06 | University Of Washington | Mechanism for freeing registers on processors that perform dynamic out-of-order execution of instructions using renaming registers |
US6161166A (en) * | 1997-11-10 | 2000-12-12 | International Business Machines Corporation | Instruction cache for multithreaded processor |
US6076154A (en) * | 1998-01-16 | 2000-06-13 | U.S. Philips Corporation | VLIW processor has different functional units operating on commands of different widths |
US6092175A (en) * | 1998-04-02 | 2000-07-18 | University Of Washington | Shared register storage mechanisms for multithreaded computer systems with out-of-order execution |
US6718457B2 (en) * | 1998-12-03 | 2004-04-06 | Sun Microsystems, Inc. | Multiple-thread processor for threaded software applications |
US6523055B1 (en) * | 1999-01-20 | 2003-02-18 | Lsi Logic Corporation | Circuit and method for multiplying and accumulating the sum of two products in a single cycle |
US6397324B1 (en) | 1999-06-18 | 2002-05-28 | Bops, Inc. | Accessing tables in memory banks using load and store address generators sharing store read port of compute register file separated from address register file |
WO2000079395A1 (en) | 1999-06-21 | 2000-12-28 | Bops Incorporated | Methods and apparatus for establishing port priority functions in a vliw processor |
US6385757B1 (en) | 1999-08-20 | 2002-05-07 | Hewlett-Packard Company | Auto design of VLIW processors |
US6457173B1 (en) | 1999-08-20 | 2002-09-24 | Hewlett-Packard Company | Automatic design of VLIW instruction formats |
US6606700B1 (en) * | 2000-02-26 | 2003-08-12 | Qualcomm, Incorporated | DSP with dual-mac processor and dual-mac coprocessor |
US6320813B1 (en) | 2000-03-02 | 2001-11-20 | Sun Microsystems, Inc. | Decoding of a register file |
TW539989B (en) | 2000-03-31 | 2003-07-01 | Intel Corp | Multiplier architecture in a general purpose processor optimized for efficient multi-input addition |
US20020089348A1 (en) * | 2000-10-02 | 2002-07-11 | Martin Langhammer | Programmable logic integrated circuit devices including dedicated processor components |
US7127588B2 (en) * | 2000-12-05 | 2006-10-24 | Mindspeed Technologies, Inc. | Apparatus and method for an improved performance VLIW processor |
US7028286B2 (en) * | 2001-04-13 | 2006-04-11 | Pts Corporation | Methods and apparatus for automated generation of abbreviated instruction set and configurable processor architecture |
US7179275B2 (en) * | 2001-06-18 | 2007-02-20 | Rex Medical, L.P. | Vein filter |
US6954846B2 (en) | 2001-08-07 | 2005-10-11 | Sun Microsystems, Inc. | Microprocessor and method for giving each thread exclusive access to one register file in a multi-threading mode and for giving an active thread access to multiple register files in a single thread mode |
US7206559B2 (en) * | 2001-10-16 | 2007-04-17 | Hewlett-Packard Development Company, L.P. | System and method for a mobile computing device to control appliances |
WO2003036468A1 (en) * | 2001-10-24 | 2003-05-01 | Telefonaktiebolaget Lm Ericsson (Publ) | An arrangement and a method in processor technology |
US7100022B1 (en) * | 2002-02-28 | 2006-08-29 | Mindspeed Technologies, Inc. | Area and power efficient VLIW processor with improved speed |
US6724416B1 (en) | 2002-10-01 | 2004-04-20 | Jianxin Liu | Image transceiving telephone with integrated digital camera |
US6904511B2 (en) * | 2002-10-11 | 2005-06-07 | Sandbridge Technologies, Inc. | Method and apparatus for register file port reduction in a multithreaded processor |
US7657893B2 (en) | 2003-04-23 | 2010-02-02 | International Business Machines Corporation | Accounting method and logic for determining per-thread processor resource utilization in a simultaneous multi-threaded (SMT) processor |
US20040266480A1 (en) * | 2003-06-27 | 2004-12-30 | Hjelt Kari Tapani | System and method for implementing sensor functionality in mobile devices |
US7940932B2 (en) * | 2004-04-08 | 2011-05-10 | Texas Instruments Incorporated | Methods, apparatus, and systems for securing SIM (subscriber identity module) personalization and other data on a first processor and secure communication of the SIM data to a second processor |
US7398347B1 (en) * | 2004-07-14 | 2008-07-08 | Altera Corporation | Methods and apparatus for dynamic instruction controlled reconfigurable register file |
DE602005019180D1 (de) * | 2004-09-22 | 2010-03-18 | Koninkl Philips Electronics Nv | Datenverarbeitungsschaltung mit funktionseinheiten mit gemeinsamen leseports |
US7590824B2 (en) * | 2005-03-29 | 2009-09-15 | Qualcomm Incorporated | Mixed superscalar and VLIW instruction issuing and processing method and system |
US8713286B2 (en) | 2005-04-26 | 2014-04-29 | Qualcomm Incorporated | Register files for a digital signal processor operating in an interleaved multi-threaded environment |
-
2005
- 2005-04-26 US US11/115,916 patent/US8713286B2/en active Active
-
2006
- 2006-04-24 WO PCT/US2006/015391 patent/WO2006116258A2/en active Application Filing
- 2006-04-24 CN CN200680022104.6A patent/CN101203830B/zh active Active
- 2006-04-24 MX MX2007013394A patent/MX2007013394A/es not_active Application Discontinuation
- 2006-04-24 CN CN201610018496.4A patent/CN105700852B/zh active Active
- 2006-04-26 TW TW095114819A patent/TW200710718A/zh unknown
-
2014
- 2014-02-25 US US14/189,313 patent/US9235418B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1188277A (zh) * | 1996-12-16 | 1998-07-22 | 国际商业机器公司 | 多端口和交错的超高速缓冲存储器 |
US6014739A (en) * | 1997-10-27 | 2000-01-11 | Advanced Micro Devices, Inc. | Increasing general registers in X86 processors |
CN1224871A (zh) * | 1998-01-30 | 1999-08-04 | 国际商业机器公司 | 在一个处理系统中处理多条存储指令完成的方法和系统 |
CN1360314A (zh) * | 2000-12-20 | 2002-07-24 | 富士通株式会社 | 基于动态随机存取存储器核心的多端口存储器 |
Also Published As
Publication number | Publication date |
---|---|
WO2006116258A3 (en) | 2007-10-04 |
MX2007013394A (es) | 2008-01-21 |
TW200710718A (en) | 2007-03-16 |
CN105700852A (zh) | 2016-06-22 |
WO2006116258A2 (en) | 2006-11-02 |
CN101203830B (zh) | 2016-02-10 |
US20060242384A1 (en) | 2006-10-26 |
CN101203830A (zh) | 2008-06-18 |
US8713286B2 (en) | 2014-04-29 |
US9235418B2 (en) | 2016-01-12 |
US20140181468A1 (en) | 2014-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105700852B (zh) | 用于在交错的多线程环境中操作的数字信号处理器的寄存器堆 | |
US7584233B2 (en) | System and method of counting leading zeros and counting leading ones in a digital signal processor | |
CN101501634B (zh) | 使用标量/向量指令处理数据的系统和方法 | |
US20060230253A1 (en) | Unified non-partitioned register files for a digital signal processor operating in an interleaved multi-threaded environment | |
CN101346694B (zh) | 用于处理器中的算术逻辑和移位装置 | |
JP2010538398A (ja) | マルチステージデータ処理パイプラインにおける命令実行システム及び方法 | |
CN103827818A (zh) | Fifo加载指令 | |
EP2734918B1 (en) | Table call instruction for frequently called functions | |
CN101258465A (zh) | 控制多线程处理器内的多个程序线程的系统和方法 | |
US20060230257A1 (en) | System and method of using a predicate value to access a register file | |
US20150178880A1 (en) | Composition data dispatcher | |
US20060282238A1 (en) | System and method of performing two's complement operations in a digital signal processor | |
CN206249163U (zh) | 一种手机应用电脑 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |