CN104025034B - 可配置精减指令集核 - Google Patents
可配置精减指令集核 Download PDFInfo
- Publication number
- CN104025034B CN104025034B CN201180076171.7A CN201180076171A CN104025034B CN 104025034 B CN104025034 B CN 104025034B CN 201180076171 A CN201180076171 A CN 201180076171A CN 104025034 B CN104025034 B CN 104025034B
- Authority
- CN
- China
- Prior art keywords
- instruction
- part core
- processor
- execution unit
- code
- 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
- 230000009467 reduction Effects 0.000 title description 2
- 238000012545 processing Methods 0.000 claims description 26
- 238000013461 design Methods 0.000 claims description 8
- 238000000034 method Methods 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000012546 transfer Methods 0.000 claims description 2
- 238000003672 processing method Methods 0.000 claims 9
- 230000007717 exclusion Effects 0.000 claims 1
- 229910003460 diamond Inorganic materials 0.000 description 5
- 239000010432 diamond Substances 0.000 description 5
- 238000000605 extraction Methods 0.000 description 5
- BBEAQIROQSPTKN-UHFFFAOYSA-N pyrene Chemical compound C1=CC=C2C=CC3=CC=CC4=CC=C1C2=C43 BBEAQIROQSPTKN-UHFFFAOYSA-N 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- GVEPBJHOBDJJJI-UHFFFAOYSA-N fluoranthrene Natural products C1=CC(C2=CC=CC=C22)=C3C2=CC=CC3=C1 GVEPBJHOBDJJJI-UHFFFAOYSA-N 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- 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/30181—Instruction operation extension or modification
- G06F9/30196—Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
-
- 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/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- 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
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
- G06F9/3891—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
可以用只执行完全向后兼容所需的指令的某一部分集的核来构建处理器。因此,在一些实施例中,通过提供只执行某些指令并且不执行其他指令的部分核,可降低功耗。不支持的指令可以按其他更加能力高效的方式来处理,使得总体处理器(包括该部分核)可完全向后兼容。
Description
背景技术
本发明一般涉及计算并且具体地涉及处理。
为了兼容先前各代处理器,后代通常包括对传统特征的支持。随着时间进展,这些传统特征中的一些变得越来越不常用,因为开发人员往往修订他们的程序以与最当前指令集一起工作。随着时间继续,需要支持的传统指令的数量持续增加。但这些传统指令可能越来越不频繁地执行。
附图简述
参照以下附图描述一些实施例。
图1是本发明一个实施例的流程图;
图2是本发明一个实施例的示意图;
图3是本发明另一实施例的流程图;
图4是本发明又一实施例的流程图;
图5是本发明又一实施例的硬件图;
图6是又一实施例的流程图;以及
图7是一个实施例的示意性描绘。
具体实施方式
根据一些实施例,通过消除完全向后兼容所需要的一些指令,处理器可以用只执行全部指令的部分集的部分核来构建。因此,在一些实施例中,通过提供只执行某些指令并且不执行向后兼容所需的其他指令的部分核,功耗可被降低。不支持的指令可以按其他更加能量高效的方式来处理,使得总体处理器(包括该部分核)可完全向后兼容。但处理器核可操作在当前各代处理器中使用的大部分指令而不必支持传统指令。这可意味着在一些情况下,部分核处理器可以更加能量高效。
例如,部分核可以消除各种不同的指令。在一个实施例中,部分核可以消除微代码只读存储器依赖性。在这种情况下,部分核指令被实现为单操作指令。因而,指令用硬件直接转换,而无需从微代码只读存储器中提取对应的微操作(对于完全或非部分处理器而言,通常这样做)。这可节省大量微代码只读存储器空间。
另外,现代编译器实际上只使用完全核上可用的那些指令的子集。作为最近二十年以来体系结构演化的结果,商用指令集体系结构具有许多过时或无用的指令,这些指令可出于效率而被消除,但以一定程度地缺乏向后兼容性为代价。
来自先前各代的特征(例如,来自微软盘操作系统(DOS)的基于日期和分割的存储器保护体系结构的16位实模式、本地和全局描述符表)出于向后兼容性的原因被继承下来。但大多数现代操作系统不再需要或使用这些特征。因而,在一些实施例中,这些特征可从部分核中简单地除去。
因此,在一个实施例中,部分核可以是非传统或非向后兼容的。这可使得该核更加效率高效并且尤其适于嵌入式应用。其他示例可包括减少浮点和单指令多数据指令的数量以及对高速缓存的支持。在部分核的一个实施例中,可只实现整数型和标量指令集体系结构子集。该同一概念可被扩展至浮点和矢量(单指令多数据)指令集以及通常由完全核实现的特征。该部分核仅仅是子集体系结构的实现,在一些实施例中,它可针对嵌入式应用。子集体系结构的其他实现包括不同数量的流水线阶段以及其他性能特征,如使这些部分核适于诸如个人计算机、平板、或服务器等特定细分市场的无序、超级标量高速缓存。
因而,参考图1,在流水线10中,指令存储器12向指令提取单元14提供指令。这些指令随后在解码单元16处被解码。操作数提取18从数据存储器24中提取操作数以在执行单元20处执行。并且在写回22处,数据被写回数据存储器24。
为了实现完全向后兼容性,不支持的指令可按不同的方式来处理。根据一个实施例,在图2中示出,可在流水线10中提供完全解码器16。在完全指令解码时,这一解码器检测未实现的指令并调用执行单元20中的预制处理程序34来用于这些指令。这些预制处理程序是处理特定指令或指令类型的专用设计。这些预制处理程序可以是基于软件或硬件的。
这一方法可以使用加速不支持指令的检测和执行处理程序的执行的完全成熟或完整的解码器。这些预制处理程序可以是基于软件或硬件的。
这一完全成熟的解码器加速不支持指令的检测和执行处理程序的执行。该解码器可被分成两部分。一个部分解码普遍执行的指令而第二部分解码较不频繁使用的指令。
因而参考图2,指令由解码单元16来接收。在这一实施例中,解码单元16可包括检测部分核32支持哪些指令(可被描述为普遍执行的指令)和不支持哪些指令(可被称为较不普遍或不普遍执行的指令)的指令解析器26。部分核所支持的指令由普遍执行的解码器28来解码并传递给部分核32。在一个实施例中,非普遍执行的或不支持的指令由解码器30解码并由执行单元20中的预制处理程序34来处理。
在一些实施例中,图3所示的序列36可使用软件、固件和/或硬件来实现。在软件和固件实施例中,该序列可通过计算机执行的指令来实现,该计算机执行的指令被存储在例如光学存储、半导体存储或磁存储之类的非临时计算机可读介质上。
图3中所示的序列36通过解析指令来开始,如在框38所示。即,这些指令可以基于标识部分核所支持的指令和部分核不支持的指令来被解析。在一个实施例中,所支持的指令是普遍执行的指令。在其他实施例中,特定指令可被解析出,因为它们是部分核所支持的指令。
如在框40所示,一种类型的指令被发送给第一(普遍执行的)解码器28而第二类型的指令被发送给第二(不普遍执行的)解码器30(框41)。随后,经解码的第一类型的指令被发送给部分核并且经解码的第二类型的指令被发送给预制处理程序34,如在框42所示。
根据另一实施例,核可以生成未定义的指令异常。这可以是现有异常或新定义的特殊异常。该异常可以在部分核遇到不支持的指令时生成。随后,软件和二进制转换层可获得对执行的控制或解决该异常。例如,在一个实施例中,二进制转换层可以执行对该不支持的指令进行仿真的处理程序。
在一些实施例中,可以使用这一方法和先前描述的方法(在图2和3中示出)的混合。由此,参见图4,序列44可以软件、固件和/或硬件来实现。在软件和固件实施例中,该序列可通过计算机执行的指令来实现,该计算机执行的指令被存储在例如磁存储、光学存储或半导体存储之类的非临时计算机可读介质上。
序列44通过确定指令是否被支持开始,如在菱形框46所示。如果是,则该指令可在部分核中执行,如在框48所示。否则,发出异常,如在框50所示。
根据又一实施例,处理器可具有包括完全和完整指令集的一个或两个核以及只实现完整指令集的某些特征(如普遍执行的特征)的某一数量的部分核。每当部分核遇到不支持的指令时,部分核将该任务传输到完整核之一。该混合或异构环境中的完整核可向操作系统隐藏或展示。在一些实施例中,这一方法不论是软件还是硬件都不涉及任何二进制转换层,并且在其他软件层中,核特征中的差异可以向操作系统隐藏。
因此,参考图5,该体系结构可包括至少一个完整核51和至少一个部分核52。指令由部分核52来检查。如果指令不被支持,则它们被传输到完整核51。还可构想其中指令被传输的其他情况。
根据部分核处理器的一个实施例,以下指令可被支持:
根据一个实施例,以下指令可不被支持:
在一些实施例中,可配置部分核可以用适当的电路元件和软件来产生。在一些实施例中,用户可以响应于图形用户界面来输入选择。随后,系统自动生成寄存器传输级(RTL)和软件来实现具有这些特征的部分核。在一些实施例中,指令集是预定义的并且可以提供进一步的可配置性。在其他实施例中,系统可以使用户能够手动地实现配置选择。作为示例,一个系统可准许配置高速缓存、分支预测器、流水线绕过以及乘法器。
例如,在一个实施例中,高速缓存配置可以用紧耦合的数据和指令高速缓存来被默认地设置。可被选择的各选项包括拆分数据和指令高速缓存以及可选择的高速缓存参数,如高速缓存大小、行大小、相关联性、以及纠错码。
分支预测器可以使用总是未采用方法来默认地设置为条件分支。在一些实施例中,可选择选项可包括向后采用和先前未采用,二、四、八或十六条目的分支目标缓冲区,基于全面G共享,或具有可配置数量的条目的预测器。
在一个实施例中,默认流水线绕过的集合可被选择性地停用。默认绕过允许用户用性能换取更高频率,但以功率为代价。例如,称为IF_IBUF的绕过允许来自指令存储器/高速缓存的数据直接去往预解码器和解码器阶段而不首先进入指令缓冲区。类似地,在一些实施例中,存在以下另一绕过:将来自比较指令的结果发送到操作数提取和指令阶段以供快速确定跳转指令(下一比较指令)是否造成跳转到不同的位置。基于这一信息,指令提取单元可以开始提取在该新地址处开始的指令。这一绕过减少了条件跳转指令的惩罚。而这些绕过提供更高的效率,它们是以频率为成本来做到的。如果特定应用需要更高频率,则这些绕过可在设计时被选择性地关闭。
又一组选项涉及乘法器。在一个实施例中,默认配置可以提供一、二或多周期乘法器。用户可以基于用户的需求来选择这三个乘法器之一。单周期乘法器占据更大面积并且可能限制该设计达到更高频率,但只花费一个周期来执行32x32位乘法运算。另一方面,多周期乘法器占据大约2000个门对单周期乘法器的7000个门,但花费一个以上周期来执行32x32位乘法运算。
在一些实施例中,可以使得包括存储器保护单元、存储器管理单元、写回缓冲区等其他可配置特征可用。仅举一些其它的可控制特征,还可扩展到浮点单元、单指令多数据、超级标量、以及所支持的中断的数量。
在一些实施例中,一些可选择特征是面向性能的,如绕过、分支预测器以及乘法器等常见情况,而其他可选择特征是面向功能或特征的,如与高速缓存、存储器保护单元以及存储器管理单元相关的那些特征。
参见图6,核配置序列60可以软件、固件和/或硬件来实现。在软件和固件实施例中,它可通过计算机执行的指令来实现,该计算机执行的指令被存储在例如光学存储、磁存储或半导体存储之类的非临时计算机可读介质上。
在一个实施例中,序列60通过显示部分核设计的可选择高速缓存选项来开始,如在框62所示。在一些实施例中,一旦用户作出选择,如在菱形框64所示,该选项就被设置,如在框66所示,这意味着它将被记录并最终被实现成必要代码而无需进一步的用户动作。如果没有做出选择,则该流简单地等待选择。
接着,分支预测选项可被显示,如在框68所示,此后是菱形框70处的选择检查和框72处的选项设置阶段。
此后,流水线绕过选项可被显示(框74),此后是菱形框76处的选择和框78处的选项设置。接着,乘法器选项可被显示,如在框80所示。这可同样伴随有菱形框82处的选择决定和框84处的选项设置。
最后,已被设置或选择的所有选项被收集并且适当的RTL和软件代码被自动生成,如在框86所示。因此,在一些实施例中,基于设计者的选择,用于创建硬件和软件配置的必要代码可被自动生成。
参考图7,用于实现根据本发明的一个实施例的系统90可包括耦合到代码数据库94的处理器92、RTL引擎96、显示驱动器100以及软件代码生成器98。代码数据库94存储用于不同的可选择选项的代码的数据库。RTL引擎96包括响应于用户选择来生成RTL代码的能力。软件代码生成器生成用于实现用户选择的必要软件代码。在一个实施例中,显示驱动器100驱动显示器104并且包括用于生成向用户提供各定义选项的选择性的图形用户界面(GUI)102的软件。
在本说明书通篇中对“一个实施例”或“一实施例”的引用意味着结合该实施例描述的特定特征、结构或特性包括在本发明包含的至少一个实现中。因此,短语“一个实施例”或“在一实施例中”的出现不一定指代同一实施例。此外,特定特征、结构或特性可按照与所说明的特定实施例不同的其他适当形式来创立,而且所有此类形式可涵盖在本申请的权利要求中。
虽然已经针对有限个实施例描述了本发明,但本领域技术人员将会理解从中得出的多种修改和变化。所附权利要求旨在覆盖落入本发明的真实精神和范围中的所有这些修改和变化。
Claims (22)
1.一种指令处理方法,包括:
提供多个可选择部分核设计选项;
基于用户选择,自动生成用于实现具有所述用户选择的部分核的代码,所述部分核被包含在处理器的执行单元中,所述部分核用于仅执行所述处理器的指令集的一些指令、并且不包含微代码只读存储器;
确定所述部分核是否支持一指令;以及
只有在所述指令被支持的情况下,才提供所述指令以供所述部分核执行;
如果所述指令不被支持,则将所述指令提供给所述处理器的执行单元中包含的预制处理程序以供所述预制处理程序执行。
2.如权利要求1所述的指令处理方法,其特征在于,在指令不被所述部分核支持的情况下发出异常。
3.如权利要求1所述的指令处理方法,其特征在于,包括将指令从所述部分核的指令集中排除以处理只读依赖性。
4.如权利要求1所述的指令处理方法,其特征在于,用硬件来转换指令而无需从只读微代码中提取对应的微操作。
5.如权利要求1所述的指令处理方法,其特征在于,启用高速缓存配置选择。
6.如权利要求1所述的指令处理方法,其特征在于,启用分支预测器选择。
7.如权利要求1所述的指令处理方法,其特征在于,启用流水线绕过选择。
8.如权利要求1所述的指令处理方法,其特征在于,启用乘法器选择。
9.一种指令处理装置,包括:
解码单元,用于解码指令;以及
执行单元,与所述解码单元耦合并用于:
提供多个可选择部分核设计选项;
基于用户选择,自动生成用于实现具有所述用户选择的部分核的代码,所述部分核被包含在处理器的执行单元中,所述部分核用于仅执行处理器的指令集的一些指令、并且不包含微代码只读存储器;
确定所述部分核是否支持一指令;
只有在所述指令被支持的情况下,才提供所述指令以供所述部分核执行;
如果所述指令不被支持,则将所述指令提供给所述执行单元中包含的预制处理程序以供所述预制处理程序执行。
10.如权利要求9所述的指令处理装置,其特征在于,所述执行单元用于:在指令不被所述部分核支持的情况下发出异常。
11.如权利要求9所述的指令处理装置,其特征在于,所述执行单元用于:将指令从所述部分核的指令集中排除以处理只读依赖性。
12.如权利要求9所述的指令处理装置,其特征在于,所述执行单元用于:在硬件中转换指令而无需从微代码只读存储器中提取对应的微操作。
13.如权利要求9所述的指令处理装置,其特征在于,所述执行单元用于:启用高速缓存配置选择。
14.如权利要求9所述的指令处理装置,其特征在于,所述执行单元用于:启用分支预测器选择。
15.如权利要求9所述的指令处理装置,其特征在于,所述执行单元用于:启用流水线绕过选择。
16.如权利要求9所述的指令处理装置,其特征在于,所述执行单元用于:启用乘法器选择。
17.一种用于指令处理的系统,包括:
处理器,包括:
解码单元,包括指令解析器;以及
执行单元,与所述解码单元耦合并包括部分核和预制处理程序,其中所述部分核用于仅执行处理器的指令集的一些指令、并且不包含微代码只读存储器,以及
代码数据库,所述代码数据库用于存储用于实现处理器核的可选择设计选项的代码,包括寄存器传输级和软件代码,
其中所述处理器用于使用户能够从针对所述部分核的包括高速缓存设计选项的各选项中进行选择,并且基于用户选择,自动生成用于实现具有所述用户选择的部分核的代码,
其中所述指令解析器用于确定所述部分核是否支持一指令,只有在所述指令被支持的情况下,才提供所述指令以供所述部分核执行,且如果所述指令不被支持,则将所述指令提供给所述预制处理程序以供所述预制处理程序执行。
18.如权利要求17所述的系统,其特征在于,所述处理器用于启用分支预测器选择。
19.如权利要求17所述的系统,其特征在于,所述处理器用于启用流水线绕过选择。
20.如权利要求17所述的系统,其特征在于,所述处理器用于启用乘法器选择。
21.一种机器可读存储介质,所述机器可读存储介质包括代码,所述代码在被执行时使机器执行如权利要求1-8中的任一项所述的指令处理方法。
22.一种用于指令处理的设备,包括用于执行如权利要求1-8中的任一项所述的指令处理方法的装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/068016 WO2013101147A1 (en) | 2011-12-30 | 2011-12-30 | Configurable reduced instruction set core |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104025034A CN104025034A (zh) | 2014-09-03 |
CN104025034B true CN104025034B (zh) | 2018-09-11 |
Family
ID=48698381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180076171.7A Active CN104025034B (zh) | 2011-12-30 | 2011-12-30 | 可配置精减指令集核 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20140223145A1 (zh) |
EP (1) | EP2798467A4 (zh) |
CN (1) | CN104025034B (zh) |
TW (1) | TWI472911B (zh) |
WO (1) | WO2013101147A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10503513B2 (en) * | 2013-10-23 | 2019-12-10 | Nvidia Corporation | Dispatching a stored instruction in response to determining that a received instruction is of a same instruction type |
CN103955445B (zh) * | 2014-04-30 | 2017-04-05 | 华为技术有限公司 | 一种数据处理方法、处理器及数据处理设备 |
US9830150B2 (en) * | 2015-12-04 | 2017-11-28 | Google Llc | Multi-functional execution lane for image processor |
US20170168819A1 (en) * | 2015-12-15 | 2017-06-15 | Intel Corporation | Instruction and logic for partial reduction operations |
TWI790991B (zh) * | 2017-01-24 | 2023-02-01 | 香港商阿里巴巴集團服務有限公司 | 資料庫操作方法及裝置 |
TWI805544B (zh) * | 2017-01-24 | 2023-06-21 | 香港商阿里巴巴集團服務有限公司 | 資料庫操作方法及裝置 |
US10540181B2 (en) * | 2018-01-19 | 2020-01-21 | Marvell World Trade Ltd. | Managing branch prediction information for different contexts |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5632028A (en) * | 1995-03-03 | 1997-05-20 | Hal Computer Systems, Inc. | Hardware support for fast software emulation of unimplemented instructions |
US5699537A (en) * | 1995-12-22 | 1997-12-16 | Intel Corporation | Processor microarchitecture for efficient dynamic scheduling and execution of chains of dependent instructions |
US5752035A (en) * | 1995-04-05 | 1998-05-12 | Xilinx, Inc. | Method for compiling and executing programs for reprogrammable instruction set accelerator |
CN1382280A (zh) * | 1999-02-05 | 2002-11-27 | 坦斯利卡公司 | 用于设计可配置的处理器的自动处理器产生系统及其方法 |
CN1570856A (zh) * | 2003-12-15 | 2005-01-26 | 智慧第一公司 | 用以防止微处理器管线中的停滞的装置及方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4851990A (en) * | 1987-02-09 | 1989-07-25 | Advanced Micro Devices, Inc. | High performance processor interface between a single chip processor and off chip memory means having a dedicated and shared bus structure |
US6374349B2 (en) * | 1998-03-19 | 2002-04-16 | Mcfarling Scott | Branch predictor with serially connected predictor stages for improving branch prediction accuracy |
US6480952B2 (en) * | 1998-05-26 | 2002-11-12 | Advanced Micro Devices, Inc. | Emulation coprocessor |
US6185672B1 (en) * | 1999-02-19 | 2001-02-06 | Advanced Micro Devices, Inc. | Method and apparatus for instruction queue compression |
US6708268B1 (en) * | 1999-03-26 | 2004-03-16 | Microchip Technology Incorporated | Microcontroller instruction set |
US6393551B1 (en) * | 1999-05-26 | 2002-05-21 | Infineon Technologies North America Corp. | Reducing instruction transactions in a microprocessor |
US6425116B1 (en) * | 2000-03-30 | 2002-07-23 | Koninklijke Philips Electronics N.V. | Automated design of digital signal processing integrated circuit |
AU2001285065A1 (en) * | 2000-08-30 | 2002-03-13 | Vxtel, Inc. | Method and apparatus for a unified risc/dsp pipeline controller for both reducedinstruction set computer (risc) control instructions and digital signal process ing (dsp) instructions |
US7287147B1 (en) * | 2000-12-29 | 2007-10-23 | Mips Technologies, Inc. | Configurable co-processor interface |
US6886092B1 (en) * | 2001-11-19 | 2005-04-26 | Xilinx, Inc. | Custom code processing in PGA by providing instructions from fixed logic processor portion to programmable dedicated processor portion |
US7100060B2 (en) * | 2002-06-26 | 2006-08-29 | Intel Corporation | Techniques for utilization of asymmetric secondary processing resources |
EP1387259B1 (en) * | 2002-07-31 | 2017-09-20 | Texas Instruments Incorporated | Inter-processor control |
US20040128477A1 (en) * | 2002-12-13 | 2004-07-01 | Ip-First, Llc | Early access to microcode ROM |
CA2443347A1 (en) * | 2003-09-29 | 2005-03-29 | Pleora Technologies Inc. | Massively reduced instruction set processor |
US7165229B1 (en) * | 2004-05-24 | 2007-01-16 | Altera Corporation | Generating optimized and secure IP cores |
US7353489B2 (en) * | 2004-05-28 | 2008-04-01 | Synopsys, Inc. | Determining hardware parameters specified when configurable IP is synthesized |
US7529909B2 (en) * | 2006-12-28 | 2009-05-05 | Microsoft Corporation | Security verified reconfiguration of execution datapath in extensible microcomputer |
US7895415B2 (en) * | 2007-02-14 | 2011-02-22 | Intel Corporation | Cache sharing based thread control |
US20100262966A1 (en) * | 2009-04-14 | 2010-10-14 | International Business Machines Corporation | Multiprocessor computing device |
-
2011
- 2011-12-30 WO PCT/US2011/068016 patent/WO2013101147A1/en active Application Filing
- 2011-12-30 CN CN201180076171.7A patent/CN104025034B/zh active Active
- 2011-12-30 EP EP11878898.3A patent/EP2798467A4/en not_active Withdrawn
- 2011-12-30 US US13/992,797 patent/US20140223145A1/en not_active Abandoned
-
2012
- 2012-12-24 TW TW101149530A patent/TWI472911B/zh not_active IP Right Cessation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5632028A (en) * | 1995-03-03 | 1997-05-20 | Hal Computer Systems, Inc. | Hardware support for fast software emulation of unimplemented instructions |
US5752035A (en) * | 1995-04-05 | 1998-05-12 | Xilinx, Inc. | Method for compiling and executing programs for reprogrammable instruction set accelerator |
US5699537A (en) * | 1995-12-22 | 1997-12-16 | Intel Corporation | Processor microarchitecture for efficient dynamic scheduling and execution of chains of dependent instructions |
CN1382280A (zh) * | 1999-02-05 | 2002-11-27 | 坦斯利卡公司 | 用于设计可配置的处理器的自动处理器产生系统及其方法 |
CN1570856A (zh) * | 2003-12-15 | 2005-01-26 | 智慧第一公司 | 用以防止微处理器管线中的停滞的装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI472911B (zh) | 2015-02-11 |
US20140223145A1 (en) | 2014-08-07 |
TW201346524A (zh) | 2013-11-16 |
WO2013101147A1 (en) | 2013-07-04 |
EP2798467A4 (en) | 2016-04-27 |
EP2798467A1 (en) | 2014-11-05 |
CN104025034A (zh) | 2014-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104025034B (zh) | 可配置精减指令集核 | |
CN105808208B (zh) | 具有条件指令的微处理器及其处理方法 | |
US8595280B2 (en) | Apparatus and method for performing multiply-accumulate operations | |
JP2007095061A (ja) | 情報処理システムにおいて命令を発行キューから発行するための方法及び装置 | |
CN104111818B (zh) | 用于批量线程处理的处理器、处理方法和代码生成设备 | |
US9547493B2 (en) | Self-timed user-extension instructions for a processing device | |
WO2015114305A1 (en) | A data processing apparatus and method for executing a vector scan instruction | |
TW201203103A (en) | Operand size control | |
CN107450888A (zh) | 嵌入式数字信号处理器中的零开销循环 | |
CN110321159A (zh) | 用于实现链式区块操作的系统和方法 | |
CN107832083A (zh) | 具有条件指令的微处理器及其处理方法 | |
WO2012106716A1 (en) | Processor with a hybrid instruction queue with instruction elaboration between sections | |
US20080229065A1 (en) | Configurable Microprocessor | |
US8327175B2 (en) | Data processing systems and methods of operating the same in which memory blocks are selectively activated in fetching program instructions | |
Mane et al. | Implementation of RISC Processor on FPGA | |
CN108369512A (zh) | 用于置换序列的指令和逻辑 | |
US20070245120A1 (en) | Multiple microcontroller system, instruction, and instruction execution method for the same | |
WO2007057831A1 (en) | Data processing method and apparatus | |
US11354126B2 (en) | Data processing | |
CN104185838B (zh) | 使用精减指令集核 | |
US6351803B2 (en) | Mechanism for power efficient processing in a pipeline processor | |
Shardul | 16-Bit RISC Processor Design for Convolution Application | |
Kehagias et al. | Android-based simulator to support tomasulo algorithm teaching and learning | |
US20070083737A1 (en) | Processor with efficient shift/rotate instruction execution | |
US20090292908A1 (en) | Method and arrangements for multipath instruction processing |
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 |