高效处理器装置和关联方法

文档序号:6359845阅读:141来源:国知局
专利名称:高效处理器装置和关联方法
技术领域
公开的概念主要地涉及电子电路,并且更具体地涉及高效处理器和关联方法。
背景技术
集成电路(IC)的复杂度继续增加。一些IC可以包括多种信息处理硬件(比如处理器)。处理器与IC上的其它电路(比如通用或者专用逻辑电路、信号转换电路(模数或者数模)等)交互。通过将处理器与其它IC电路一起使用,可以提供更宽的功能范围。

发明内容
公开的概念涉及用于高效处理信息(包括数据)的装置和有关方法。在一个示例实施例中,一种装置包括处理器。处理器包括两个存储器。第一存储器存储指令集。第二 存储器存储比第一存储器中的指令集更长的另一指令集。第一存储器中的指令集中的指令用作指向第二存储器中的指令集中的对应指令的指针。在另一示例实施例中,一种集成电路(IC)包括处理器。处理器包括存储指令集的第一存储器。处理器也包括存储另一指令集的第二存储器。第一存储器中的指令集对第二存储器中的指令集寻址。第二存储器包含用于允许随时间调度指令的周期偏移。在另一示例实施例中,一种方法包括获得用户的程序并且确定用户的程序是否包含至少一个定制指令。该方法还包括基于用户的程序是否包含定制指令在处理器的微代码存储器中存储至少一个定制指令。


附图仅图示示例实施例、因此不应视为限制它的范围。从本公开内容中受益的本领域普通技术人员理解公开的概念本身适用于其它等同有效的实施例。在附图中,在多幅图中使用的相同标号表示相同、相似或者等效功能、部件或者块。图I图示了根据一个示例实施例的包括处理器的IC的框图。图2示出了根据另一示例实施例的包括处理器的IC的框图。图3描绘了根据一个示例实施例的功能单元的框图。图4图示了根据一个示例实施例的处理器的框图。图5示出了常规超长指令字(VLIW)处理器。图6描绘了根据一个示例实施例的、可以包括一个或者多个处理器的可编程逻辑器件(PLD)的框图。图7示出了用于根据示例实施例的、使用处理器的方法的简化流程图。图8图示了根据公开的概念的、用于处理信息的示例计算机系统的框图。
具体实施例方式公开的概念主要地涉及电子电路和信息处理。更具体而言,本公开内容涉及高效处理器和关联方法。根据公开的概念的处理器组合相对短(或者窄)指令(例如用于复杂指令集计算机(CISC)的指令)与相对长(或者宽)指令(例如用于具有超长指令字(VLIW)的计算机或者处理器的指令)的益处。因此,在示例实施例中,处理器使用相对短指令以访问相对长指令。更具体而言,这样的处理器使用相对短指令以对相对长指令进行寻址和/或解码。相对短指令中的一些(或者所有)指令可以充当指向相对长指令的指针。处理器因此使用相对更短指令中的一些(或者所有)指令以对对应数目的相对长指令进行解码。相对长指令可以包含一个或者多个复杂指令。如从公开的概念的描述中受益的本领域普通技术人员理解的那样,指令可以包括数据。·
在示例实施例中,相对短指令充当指向微代码存储器的指针。微代码存储器包括用于处理器的微代码中的一部分或者全部微代码。如从公开的概念的描述中受益的本领域普通技术人员理解的那样,微代码有助于处理器执行指令。微代码存储器包含相对长指令。如上所言,每个相对长指令可以包括一个或者多个指令。因此,处理器的指令集包括相对短指令,而微代码空间或者储存器包含相对长指令。在一些实施例中,微代码包含周期偏移以允许在一个处理器周期中执行的指令在时间上将指令的片段推迟为更晚。这一方案允许一种避免控制问题的“激发(fire)和遗忘(forget) ”指令方式。在一些实施例中,微代码空间或者存储器是可写入的,并且允许用户实现适合于所需或者指定应用的定制指令。广而言之,如从公开的概念的描述中受益的本领域普通技术人员理解的那样,可以将根据公开的概念的处理器用于一般信息处理任务。例如在一些实施例中,处理器可以执行数字信号处理(DSP)任务。作为另一例子,在一些实施例中,处理器可以执行整数和/或浮点算术。作为又一例子,在一些实施例中,处理器可以执行数据操纵任务。根据公开的概念的方式具有若干益处。首先,相对短指令赋予更高代码密度。这一性质当在现场可编程门阵列(FPGA)、可编程逻辑器件(PD)和相似设备中使用处理器时有利。其次,相对长指令提供提高的性能。处理器可以访问一个相对长指令并且将它解码成若干指令而不是反复地取读更短指令。第三,用户可以按照需要产生他的/她的定制指令。如上所言,在一些实施例中,可以向微代码存储器写入。因此,用户可以提供他的或者她的例如用于具体任务的指令并且向微代码空间写入它们。之后,当处理器访问那些指令时,它可以提供适合于用户的具体任务的信息和数据处理。第四,通过利用可写入的微代码空间,可以有助于来自另一处理器或计算机的迁移。具体而言,可以设计指令(这些指令“模仿”或者实现其它设备的指令集中的指令)并且向微代码空间写入设计的指令。图I图不了根据一个不例实施例的、包括处理器100的IC 103。处理器100包括程序计数器106、程序存储器109、微代码存储器或者表115、寄存器文件121A-121M、功能单元(表示为“F. U. ”)124A-124N和寄存器文件127A-127K (其中M、N和K构成正整数)。
程序计数器106有助于对程序存储器109中的程序字或者指令寻址。因此,程序计数器106提供一种用于访问程序存储器109中的程序指令的机制。程序存储器109中的指令构成相对短指令(例如CISC指令)。程序存储器109经由链路或者总线112向微代码存储器115提供程序指令并且可能提供数据。经由链路112接收的指令中的至少一些或者可能所有指令构成指向微代码存储器115中的指令的指针。如上文所言,微代码存储器115中的指令是相对长指令,例如VLIff指令。注意除了指令之外,微代码存储器115可以按照需要包括数据(例如指令使用的数据)。如从公开的概念的描述中受益的本领域普通技术人员理解的那样,可以按照需要包括在与对应指令相同的字段中数据或者将单独字段用于指令和数据。另外,如从公开的概念的描述中受益的本领域普通技术人员理解的那样,除了数据之外或者取而代之,微代码存储器115还可以包括周期偏移的附加字段以允许在一个处理器周期中执行的指令在时间上推迟指令的片段更晚。
微代码存储器115包括处理器100的原生指令。此外,如果有用户的定制指令,则微代码储存器115还可以包括这些定制指令。链路或者总线118A-118M向寄存器121A-121M提供来自微代码存储器115的信息(比如指令、数据和/或周期偏移)。周期偏移提供如下地址,指令和/或数据在这些地址写入于寄存器121A-121M中。寄存器121A-121M保持用于功能单元124A-124N的数据和程序代码。注意每个寄存器121A-121M可以与一个或者多个功能单元124A-124N通信或者向一个或者多个功能单元124A-124N提供信息。功能单元124A-124N对由寄存器121A-121M提供的数据执行操作。如从公开的概念的描述中受益的本领域普通技术人员理解的那样,功能单元124A-124N可以执行广泛多种操作。例如一个或者多个功能单元可以提供加法和/或减法操作。作为另一例子,一个或者多个功能单元可以执行乘法和/或除法操作。作为又一例子,一个或者多个功能单元可以执行加载和/或存储操作。加载和存储操作例如允许分别从存储器读取数据和向存储器写入操作结果。作为另一例子,一个或者多个功能单元可以提供有限冲激响应(FIR)和/或无限冲激响应(IIR)滤波能力。作为又一例子,一个或者多个功能单元可以提供分支功能。用于执行所需操作的功能单元的电路的细节属于本领域普通技术人员的知识。功能单元124A-124N经由链路或者总线150A_bl50N向寄存器127A-127K提供它们的相应操作的结果。例如假设功能单元124A对两个操作数执行加法操作。功能单元124A向寄存器127A提供操作数之和。如从公开的概念的描述中受益的本领域普通技术人员理解的那样,除此之外或者取而代之,功能单元124A-124N的输出还可以耦合到处理器100的其它部分。例如一个或者多个功能单元124A-124N的输出可以按照需要驱动一个或者多个功能单元124A-124N的输入。如从公开的概念的描述中受益的本领域普通技术人员理解的那样,信号和输出传播的选择依赖于各种因素(比如所需架构和功能)。广而言之,处理器100可以按照需要对整数数据、浮点数据或者二者执行操作。例如在一些实施例中,功能单元124A-124N可以执行整数操作和浮点操作二者。作为另一例子,在一些实施例中,功能单元124A-124N可以仅执行浮点操作。在一些实施例中,处理器100包括用于执行整数操作(即对整数操作数的操作(例如加法、减法、乘法、除法、移位、逻辑操作等))的整数处理单元140。整数处理单元140包括寄存器140A、算术逻辑单元(ALU) 140B和寄存器140C。寄存器140A向ALU 140B提供操作数或者数据。ALU 140B对数据执行所需或者指定操作,并且向寄存器140C提供结果。注意在这些实施例中,整数单元140可以按照需要与处理器100的其它部分通信。因此,整数处理单元140 (即寄存器140A、ALU 140B和寄存器140C中的一个或者多个寄存器)可以经由链路或者总线143向处理器100内的其它电路提供数据。类似地,整数处理单元140(即寄存器140A、ALU 140B和寄存器140C中的一个或者多个寄存器)可以经由链路或者总线146从处理器100内的其它电路接收数据。另外,整数处理单元140可以按照需要经由链路或者总线148与处理器100外部的电路传达数据。 注意虽然上文描述涉及寄存器,但是如从公开的概念的描述中受益的本领域普通技术人员理解的那样,每个寄存器可以包括寄存器文件。因此,寄存器121A-121M、127A-127KU40A和140C中的一个或者多个寄存器按照需要可以包括寄存器文件,即两个或者更多寄存器的集群。在一些实施例中,处理器100可以具有单独寄存器和浮点数据路径。例如处理器100可以在程序存储器109中存储整数和浮点指令,并且微代码存储器115可以类似地包括用于整数和浮点操作的微代码指令。图2图示了这样的示例实施例。具体而言,程序存储器109包括整数和浮点指令(二者相对短)。整数和浮点指令指向相应整数和浮点微代码存储器。因此,在图2中所示实施例中,程序存储器109中的整数指令用作指向整数微代码存储器115X的指针109A。类似地,程序存储器109中的浮点指令用作指向浮点微代码存储器115Y的指针109B。整数微代码存储器115X中的整数指令用作经由链路或者总线180向整数单元处理140传达的指令。反言之,整数微代码存储器115Y中的浮点指令用作供给浮点硬件(比如寄存器121A-12M等)的指令。在其它一些实施例中,处理器100可以包括整数单元或者处理器或者整数处理单元和定制数据路径。在通过在本公开内容中引用而结合的、标题为“Apparatus andAssociated Methods For Processorsffith Custom Datapaths”、于 2009 年 4 月 25 日提交、代理人案号为ALTR077的第12/430,068号共同转让美国专利申请中提供这一布置的细节。图3描绘了根据一个示例实施例的功能单元的细节。在所示例子中,功能单元124N包括乘法器(MUX) 153、MUX 156和功能单元硬件或者执行单元172。MUX 153和MUX 156分别经由链路或者总线160和163接收数据(例如操作数)。(如下文具体描述的那样提供的)控制信号166和169分别用作用于MUX 153和MUX 156的选择信号。MUX153和MUX 156的输出耦合到功能单元硬件172。因此,MUX 153和MUX156的输出用作向功能单元硬件172的输入。功能单元硬件172执行功能单元124N的所需功能。如上文所言,功能单元124N可以基于用于给定应用的规范按照需要执行广泛多种功能。在一些实施例中,功能单元硬件172也可以具有控制输入172A。功能单元硬件172提供功能单元124N的输出150N。输出150N可以耦合到后继电路(例如耦合到寄存器127K(见图I))。如上文所言,在一些实施例中,微代码存储器(例如图I中的微代码存储器115)包含周期偏移,以允许在一个处理器周期中执行的指令在时间上推迟指令片段为更晚(例如另一处理器周期)。在其它一些实施例中,在一个处理器周期中执行的指令可以在时间上推迟其它指令为更晚(例如另一处理器周期)。微代码在这些实施例中随时间调度指令。微代码穿过延迟线或者经过延迟线传播以控制处理器中的各种硬件(例如图I中的功能块124A-124N)。使用处理器偏移周期或者随时间调度指令造成所有(基本上所有(例如大多数))功能单元同时而不是以串行方式或者使用复杂控制方案来操作和执行指令。图4示出了具有这一能力的处理器100的一个示例实施例的框图。在所示示例实 施例中,微代码存储器115包括表示为字115A-115D的若干指令。微代码存储器115的每个字包含4个指令(但是可以按照需要使用其它数目的指令)。注意如上文描述的那样,微代码存储器115的字按照需要可以包括各种字段,例如指令、数据和/或周期偏移字段。更具体而言,微代码存储器115的一个或者多个字可以包括用于指令的字段,例如字段115A1。此外,微代码存储器115的一个或者多个字可以包括用于数据或者周期偏移的字段115A2。取而代之,可以按照需要将附加字段用于数据而又一附加字段(未明示)用于周期偏移。随时间调度微代码存储器115的每个字中的指令用于执行。寄存器121A-121D被配置成或者适于充当延迟线。更具体而言,延迟线121A-121D提供用于写入的随机访问,并且在读取它们的内容时充当环形缓冲器。链路或者总线118A-118D向寄存器121A-121D提供来自微代码存储器115的信息,比如指令、数据和/或周期偏移。周期偏移提供如下地址,指令和/或数据在该地址写入于寄存器121A-121D中。延迟线121A-121D根据指令的相应周期偏移存储指令以有助于随时间调度和执行指令。延迟线中的指令的顺序依赖于指令的执行顺序。更具体而言,参照代表延迟线121A-121D的方框,在延迟线121A-121D的底部存储的指令首先执行,继而为每个延迟线中的下一指令,以此类推,直至存储于延迟线121A-121D的顶部中的指令。作为例子,考虑复数乘法和累加(CMAC)操作。CMAC操作可以包括存储于微代码115的字(比如字115D)中的四个指令115D1-115D40可以在相应延迟线121A-121D中调度四个指令11OT1-115D4用于执行。因此,延迟线121A中的位置121A1包含第一指令11OT1,延迟线121B中的位置121B1包含第二指令11OT2,以此类推。延迟线121A-121D中的每个延迟线耦合到功能单元124A-124D的输入并且驱动这些输入。更具体而言,延迟线121A-121D的输出驱动MUX 153A-153D、MUX 156A-156D等。如上文所言,一个或者多个功能单元124A-124D的输出可以驱动一个或者多个功能单元124A-124D的输入和/或寄存器(未明示)。注意图4中所示拓扑仅构成指令字、延迟线、功能单元、在各种块之间的路径等的数目和配置的一个例子。如从公开的概念的描述中受益的本领域普通技术人员理解的那样,可以基于用于给定实施方式的设计和性能规范实施广泛多种其它拓扑。如上文所言,在一些实施例中,微代码存储器115可以包括VLIW指令。换而言之,程序存储器109中的指令充当指向VLIW指令的指针。图5示出了常规VLIW处理器200。VLIW处理器的操作的细节属于普通技术人员的知识。简言之,VLIW处理器200包括用于保持数据的寄存器203A和203B。在复用器(MUX) 206A-206D的控制之下,寄存器203A和203B分别向功能单元209A-209D提供它们的内容。功能单元 209A-209D根据指令的操作代码对寄存器203A-203B提供的数据执行操作。功能单元209A-209B向MUX212A-212B提供它们的输出。MUX212A-212B往回向寄存器203A-203B选择性地提供功能单元209A-209D的输出。如上文所言,可以将公开的概念应用于包括可编程逻辑器件(PLD)的多种1C。图6描绘了根据一个示例实施例的、可以包括一个或者多个处理器100的PLD 103的框图,PLD 103包括配置电路406、配置存储器(CRAM)403、控制电路409、可编程逻辑420、可编程互连423和I/O电路426。此外,PLD 103还可以按照需要包括测试/调试电路429、一个或者多个处理器100、一个或者多个通信电路438、一个或者多个存储器441、一个或者多个控制器444和初始化电路412。注意该图示出了 PLD 103的简化框图。因此,如本领域普通技术人员理解的那样,PLD 103可以包括其它块和电路。这样的电路的例子包括信号和/或者时钟生成和分布电路、几余电路等。可编程逻辑420包括可配置或者可编程逻辑电路的块,比如查找表(LUT)、乘积项逻辑、复用器(MUX)、逻辑门、寄存器、存储器等。可编程互连423耦合到可编程逻辑420,并且提供在可编程逻辑420内的各种块与PLD 103内或者以外的其它电路之间的可配置互连(率禹合机制)。控制电路409控制PLD 103内的各种操作。在控制电路409的监控之下,PLD配置电路406使用配置数据(它从外部源(比如存储设备、主机等)获得该配置数据)以对PLD 103的功能编程或者配置。配置数据通常存储于CRAM 403中。CRAM 403的内容确定PLD 103的各种块(比如可编程逻辑420和可编程互连423)的功能。初始化电路412可以在PLD 103重置或者上电时引起执行各种功能。如从公开内容中受益的本领域普通技术人员理解的那样,I/O电路426可以构成广泛多种I/o设备或者电路。I/O电路426可以耦合PLD 103的各种部分,例如可编程逻辑20和可编程互连423。I/O电路426提供用于PLD 103内的各种块与外部电路或者设备通信的机制和电路。测试/调试电路429有助于PLD 103内的各种块和电路的测试和故障排除。测试/调试电路429可以包括从公开内容中受益的本领域普通技术人员已知的多种块或者电路。例如测试/调试电路429可以按照需要包括用于在PLD 103上电或者重置之后执行测试的电路。测试/调试电路429也可以包括按照需要包括编码和奇偶位电路。PLD 103也可以包括一个或者多个通信电路438。如从本文献中的公开内容中受益的本领域普通技术人员理解的那样,通信电路438可以有助于在PLD 103内的各种电路与PLD 103外部的电路之间的数据和信息交换。PLD 103还可以包括一个或者多个存储器441和一个或者多个控制器444。存储器441允许存储PLD 103内的各种数据和信息(比如用户数据、中间结果、计算结果等)。存储器441可以按照需要具有粒状或者块形式。控制器444允许对接PLD以外的电路,并且控制该电路的操作和各种功能。例如控制器444可以按照需要构成存储器控制器,该存储器控制器对接和控制外部同步动态随机存取存储器(SDRAM)。如上文所言,PLD 103可以包括一个或者多个处理器100。处理器100可以包括根据如上文具体描述的公开的概念的架构、电路或者拓扑。处理器100可以耦合到PLD 103内的其它块和电路。例如处理器100可以耦合到存储器441 (和控制器444)以存储程序指令、数据、变元等。如从本文献中的公开内容中受益的本领域技术人员理解的那样,处理器100可以从PLD 103内或者外部的电路接收数据和信息,并且以广泛多种方式处理信息。处理器100中的一个或者多个处理器可以构成数字信号处理器(DSP)。DSP按照需要允许执行广泛多种信号处理任务,比如压缩、解压、音频处理、视频处理、滤波等。 如上文所言,公开的概念包括一种灵活框架,其用于让用户不仅使用根据各种实施例的处理器的原生指令而且写入和使用他们自己的定制指令。图7示出了用于根据示例实施例使用(包括编程)处理器的方法的简化流程图。在503处,获得用户的程序。通常以更高级程序(比如C)编写用户的程序。然而取而代之,用户可以按照需要以汇编语言编写他们的程序。在506处,检查用户的程序以确定它是否包括任何定制指令(例如一个或者多个定制指令)。如果不是,则控制传向512。否则,在509处,获得用户的定制指令。在一些实施例中,用户可以显式声明这样的定制指令。在其它一些实施例中,自动检测定制指令。用户在任一情况下应当将定制指令的定义与将向微代码存储器115 (例如见图I)写入的指令
一起提供。参照图7,在512处,编译用户的程序。在512处,链接任何附加代码,例如外部代码段、例程、库。在518处,如果有定制指令,则向微代码存储器115(例如见图I、图3)写入定制指令。注意,除了定制指令之外,微代码存储器115还可以按照需要包括提供处理器的原生指令。在521处,使用处理器100的资源在处理器100上执行用户的程序。处理器100的资源可以包括但不限于图I-图4中所示和上文描述的电路。可以在计算机系统或者处理器上运行或者执行图7中所示方法。图8示出了用于根据公开的概念处理信息的示例计算机系统1000的框图。从公开内容的描述中受益的本领域普通技术人员理解可以按照需要使用广泛多种其它计算机系统、处理器、微计算机、工
作站等。系统1000包括计算机设备1005、输入设备1010、视频/显示设备1015和存储/输出设备1020,但是可以按照需要包括那些设备中的每项设备的多个设备。计算机设备1005耦合到输入设备1010、视频/显示设备1015和存储/输出设备1020。按照需要并且如从公开的概念的描述中受益的本领域普通技术人员理解的那样,系统1000可以包括多个计算机设备1005 (例如一组关联计算机设备或者系统)。系统1000与来自用户的输入关联操作。用户输入通常使系统100执行包括电路综合和仿真的具体所需信息处理任务。系统1000部分使用计算机设备1005以执行那些任务。计算机设备1005包括信息处理电路(比如中央处理单元(CPU)),但是如本领域技术人员将理解的那样可以使用多个CPU或者信息处理电路。在一些实施例中,系统1000并且更具体为计算机设备1005可以包括根据公开的概念的一个或者多个处理器100 (例如见图I-图4)。在一些实施例中,系统1000可以包括根据公开的概念的一个或者多个处理器100,并且也可以运行或者执行图7中所示方法以及用户的程序(使用一个或者多个处理器100)。参照图8,输入设备1010从用户接收输入,并且使该输入可用于计算设备1005便于处理。用户输入可以按照需要包括定制指令数据、指令或者二者。输入设备1010可以构成文字数字输入设备(例如键盘)、指示设备(例如鼠标、滚球、光笔、触敏装置(例如触敏显示器)或者写字板)或者二者。用户操作文字数字键盘以向计算机设备1005提供文字(比如ASCII字符)。类似地,用户操作指示设备以向计算机设备1005提供定制位置或者控制信息。视频/显示设备1015向用户显示可视图像。可视图像可以包括关于计算机设备·1005的操作的信息,比如图形、图片、图像和文字。如本领域普通技术人员将理解的那样,视频/显示设备可以构成计算机监视器或者显示器、投影设备等。如果系统使用触敏显示器,则显示器也可以操作以向计算机设备1005提供用户输入。存储/输出设备1020允许计算机设备1005存储信息用于附加处理或者以后取回(例如软拷贝)、以各种形式(例如硬拷贝)呈现信息或者二者。作为例子,存储/输出设备1020可以构成能够在所需介质上并且以所需格式存储信息的磁、光学或者光磁驱动。作为另一例子,存储/输出设备1020可以构成用于生成来自计算机设备1005的信息的打印或者绘制表达的打印机、绘图仪或者其它输出设备。计算机可读介质1025在结构和功能上与计算机设备1005相关。计算机可读介质1025存储、编码、记录和/或体现功能描述材料。举例而言,功能描述材料可以包括计算机程序、计算机代码、计算机应用和/或信息结构(例如数据结构或者文件系统)。当由计算机可读介质1025存储、编码、记录和/或体现,功能描述材料赋予功能。功能描述材料与计算机可读介质1025相关。功能描述材料内的信息结构限定在信息结构与计算机可读介质1025和/或系统1000的其它方面之间的结构和功能相互关系。这些相互关系允许实现信息结构的功能。另夕卜,在这样的结构描述材料内,计算机程序限定在计算机程序和计算机可读介质1025与系统100的其它方面之间的结构和功能相互关系。这些相互关系允许实现计算机程序的功倉泛。举例而言,计算机设备1005向计算机设备1005的计算机存储器(图中未明示)中读取、访问或者复制功能描述材料。计算机设备1005响应于存在于计算机存储器中的材料执行操作。计算机设备1005可以执行如下操作,这些操作处理计算机应用,该计算机应用使计算机设备1005执行附加操作。因而功能描述材料表现与计算机设备1005执行过程并且执行操作的方式的功能相互关系。另外,计算机可读介质1025构成计算机设备1005可以从其访问计算机信息、程序、代码和/或应用的装置。计算机设备1005可以处理信息、程序、代码和/或应用,这些信息、程序、代码和/或应用使计算机设备1005执行附加操作。
注意可以如本领域普通技术人员将理解的那样用多种方式实施计算机可读介质1025。例如计算机设备1005内的存储器可以按照需要构成计算机可读介质1025。取而代之,例如当计算机设备1005从计算机设备或者信息处理系统的网络接收功能描述材料时,计算机可读介质1025可以包括一组关联、相关、耦合(例如通过导体、光纤等)或者联网的计算机可读介质。注意,计算机设备1005可以按照需要从计算机可读介质1025、网络或者二者接收功能描述材料。注意在本专利公开内容中提供的描述使用通用术语“处理器”而并非旨在于限制公开的概念的范围。如从公开的概念的描述中受益的本领域普通技术人员理解的那样,可以将公开的概念应用于按照其它名称已知的多种电路。这样的电路的例子包括而不限于控制器、状态机和微处理器。一般而言,可以将公开的概念应用于信息处理装置。此外,虽然上文描述涉及使用两个存储器,但是可以通过进行适当修改按照需要使用附加存储器,这些修改落入从公开的概念的描述中受益的本领域普通技术人员的技能和知识内。例如可以按照需要使用三个或者更多存储器的分级,这些存储器可以用来以分级方式对指令解码, 另外如从公开的概念的描述中受益的本领域普通技术人员理解的那样,可以将公开的概念有效应用于各种类型的1C。在本文献中描述的例子仅构成而不限于示例应用。因此可以通过进行适当修改将公开的概念应用于各种类型的IC(例如ASIC、ASSP、FPGA、CPLD等)。那些修改落入从公开的概念的描述中受益的本领域普通技术人员的知识和技能水平内。参照附图,本领域普通技术人员将注意所示各种块可以主要描绘概念功能和信号流。实际电路实施方式可以包含或者可以不包含用于各种功能块的单独可标识硬件并且可以使用或者可以不使用所示特定电路。例如可以按照需要将各种块的功能组合成一个功能块。另外可以按照需要在若干电路块中实现单个块的功能。如从本公开内容的描述电路实施方式选择依赖于各种因素(比如用于给定实施方式的特定设计和性能规范)。除了这里描述的修改和替代实施例之外,其它修改和替代实施例也将为从本公开内容中受益的本领域普通技术人员所清楚。因而本说明书向本领域技术人员教导实现公开的概念的方式并且将解释为仅为示例。示出和描述的形式和实施例应当解释为示例实施例。本领域技术人员可以在部分的形状、尺寸和布置上进行各种改变而未脱离在本文献中的公开的概念的范围。例如本领域技术人员可以用等效要素替换这里图示和描述的要素。另外,从本公开内容中受益的本领域技术人员可以将公开的概念的某些特征与其它特征的使用独立使用而未脱离公开的概念的范围。
权利要求
1.一种装置,包括 处理器,所述处理器包括 第一存储器,存储第一指令集;以及 第二存储器,存储第二指令集,所述第二指令集中的每个指令比所述第一指令集中的指令更长, 其中所述第一指令集中的指令用作指向所述第二指令集中的对应指令的指针。
2.根据权利要求I所述的装置,其中所述第一指令集包括复杂指令集计算机(CISC)指令。
3.根据权利要求I所述的装置,其中所述第二指令集包括超长指令字(VLIW)指令。
4.根据权利要求I所述的装置,其中所述第二存储器包括微代码存储器。
5.根据权利要求4所述的装置,其中所述第一存储器包括程序存储器。
6.根据权利要求I所述的装置,还包括耦合到所述第二存储器的第一多个寄存器。
7.根据权利要求6所述的装置,还包括耦合到所述第一多个寄存器的多个功能单元。
8.根据权利要求7所述的装置,还包括耦合到所述多个功能单元的第二多个寄存器。
9.根据权利要求I所述的装置,还包括耦合到所述处理器的可编程互连电路。
10.根据权利要求9所述的装置,还包括耦合到所述可编程互连电路的可编程逻辑电路。
11.一种集成电路(1C),包括 处理器,所述处理器包括 第一存储器,存储对第二指令集寻址的第一指令集;以及 第二存储器,存储所述第二指令集, 其中所述第二存储器包含周期偏移以允许随时间调度指令。
12.根据权利要求11所述的集成电路(1C),其中所述第二指令集中的指令可以在一个处理器周期中推迟指令片段至另一处理器周期。
13.根据权利要求11所述的集成电路(1C),还包括耦合到所述第二存储器的多个延迟线。
14.根据权利要求13所述的集成电路(1C),其中所述多个延迟线中的每个延迟线提供在写入操作期间的随机访问。
15.根据权利要求13所述的集成电路(1C),其中所述多个延迟线中的每个延迟线包括在读取操作期间的环形缓冲器。
16.根据权利要求13所述的集成电路(1C),还包括耦合到所述多个延迟线的多个功能单元。
17.根据权利要求11所述的集成电路(1C),其中所述第一指令集中的每个指令包括单个指令。
18.根据权利要求17所述的集成电路(1C),其中所述第一指令集中的每个指令包括复杂指令集计算机(CISC)指令。
19.根据权利要求11所述的集成电路(1C),其中所述第二指令集中的每个指令包括多个指令。
20.根据权利要求19所述的集成电路(1C),其中所述第二指令集中的每个指令包括超长指令字(VLIW)指令。
21.—种方法,包括 获得用户的程序; 确定所述用户的程序是否包含至少一个定制指令;并且 根据所述用户的程序是否包含至少一个定制指令,在处理器的微代码存储器中存储所述至少一个定制指令。
22.根据权利要求21所述的方法,其中所述微代码存储器包括所述处理器的原生指令。
23.根据权利要求21所述的方法,其中在处理器的微代码存储器中存储所述至少一个定制指令还包括当在处理器的微代码存储器中存储所述至少一个定制指令之前获得所述至少一个定制指令。
24.根据权利要求21所述的方法,其中所述处理器使用多个功能单元以执行所述用户的程序。
25.根据权利要求21所述的方法,其中所述处理器使用整数处理单元以执行所述用户的程序。
26.根据权利要求25所述的方法,其中所述处理器使用定制数据路径以执行所述用户的程序。
全文摘要
一种装置包括处理器。处理器包括两个存储器。第一存储器存储指令集。第二存储器存储比第一存储器中的指令集更长的另一指令集。第一存储器中的指令集中的指令用作指向第二存储器中的指令集中的对应指令的指针。
文档编号G06F13/16GK102947811SQ201180013328
公开日2013年2月27日 申请日期2011年1月31日 优先权日2010年2月1日
发明者S·佩里 申请人:阿尔特拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1