包括用于保持第二指令格式的分布式指令缓冲器的系统和方法技术方案

技术编号:2871401 阅读:294 留言:0更新日期:2012-04-11 18:40
一种用于处理一指令集的第一指令格式和第二指令格式的处理器,包括连接至用于第一指令格式的一取指令单元(322)和用于第二指令格式的一定序器(325)的执行单元(301-305)。该处理器包括一译码单元(323),用于译码第一指令格式的指令为用于所述执行单元(301-305)的控制信号,以及紧邻执行单元(301-305)的缓冲器(306-310),用于存储第二指令格式的预译码指令。(*该技术在2022年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及半导体处理器的设计,而更具体地,本专利技术涉及能够每个处理器周期执行两个或多个操作的处理器。
技术介绍
现代计算机的处理器具有一些能够同时操作的独立的执行单元。但是,能够实际上进行(确定了的或推测的)有效工作的执行单元的数量受指令发布单元中的逻辑和每周期发布的指令数的限制。所述发布逻辑在发送指令至执行单元之前确定相关性。对于无序处理器,发布逻辑限制了处理器的性能,而对于有序处理器,其性能则受至存储器子系统的可用取指令带宽的限制。对有序处理器采用超长指令字(VLIW)指令集是对发布逻辑限制的一种推荐的解决方案。但是,VLIW的应用却伴随有对至存储器子系统的取指令带宽的显著需求。在现有技术中,采用格式位的压缩VLIW指令集也是公知的。格式位能够用于在不损害VLIW格式的发布带宽的优点的情况下缩短代码长度。现有技术中,其它推荐的用于减小VLIW程序存储尺寸的解决方案也是公知的,但是,这些系统需要代码解压缩以及对每个产生的VLIW指令全译码。例如,用于精减指令集计算机(RISC)指令集的某些部分的子集编码已经用在基于ARM体系结构的处理器中,以便在不减小发布带宽的情况下缩短指令长度。一个子集编码的例子是,一种双指令集处理器,其中第二指令集是第一指令集的适当的子集。每个指令集可以由不同的指令译码器译码,但在相同的流水线中执行。其结果是,与主编码相比,第二指令集的指令编码的每个指令包含较少的位数,但可以由相同的指令取/译码/发布逻辑处理。但是,处理器必须解压编码的第二指令集,并且然后对被译码的指令执行全译码,或者为第二指令集提供一替代译码器。另一个推荐的解决方案包括一执行一复杂指令集计算机(CISC)的指令集和一RISC指令集的处理器,每个指令集都被翻译成相同的送至流水线执行资源的格式控制字。与任何常规的处理器一样,格式控制字是指令译码器的输出,并且不存储,而且对软件也是透明的。一些现有技术的系统已经采用改进的指令集编码以增加效率,指令集利用所述改进的编码能够完成有效的工作。这些编码需要全指令译码器,以产生对执行资源和在它们之间的流水线连接的控制。交替编码采用相同的流水线模板而不管所用的指令格式。根据源代码和一执行配置文件(profile),编译器可以在其中选择所用的机制。该编译器需要分析所述执行配置文件,并且根据执行性能和代码长度将程序指令编码成不同的指令格式。在一个推荐的系统中,自编译器输出的代码被格式化,使得在程序员的控制下,利用在其间的适当转换,不同的例程可以用于不同指令集中。但是,现有技术中还没有根据性能和用途对不同指令集调度的系统或方法。对于其在小的内核中花费显著比例的执行时间的处理器(例如信号处理器),将需要具备指令取/译码/执行机制和流水线模板,它们将增强执行资源的效用以及消除与指令译码相关的工作。因此,需要有一种包含用于保持第二指令集的分布式指令缓冲器的系统和方法。
技术实现思路
根据本专利技术的一种实施例,提供了一种用于在单个处理器中处理第一指令集和第二指令集的方法。该方法包括在紧邻多个执行单元的多个缓冲器中存储多个控制信号,其中的控制信号是所述第二指令集的预译码指令,根据所述第一指令集的分支指令执行所述第一指令集的指令,以及根据所述第二指令集的分支指令执行用于所述第二指令集的指令的控制信号。第一格式的指令和第二格式的指令由编译器根据执行频率而产生。第二格式的指令比第一格式的指令执行得更频繁。执行用于所述第二指令集的指令的控制信号包括,禁止(de-gating)多个存储第一指令集的多个控制信号的执行队列,以及暂停读取第一指令集的指令。执行用于所述第二指令集的指令的控制信号还包括,寻址在缓冲器中的指令的控制信号,以及对所寻址的控制信号定序至执行单元。所述第二指令集指令的控制信号是所述用于第一指令集的控制信号的逻辑子集。执行第一指令集的指令可以包括,自存储第一指令集的指令的存储器中读取一第一指令集的指令,译码该指令为多个控制信号,以及发布所述控制信号至所述执行单元。每个执行单元与一个缓冲器相关联。根据本专利技术的一个实施例,提供了一种用于处理第一指令集和第二指令集的处理器。该处理器包括接收控制信号的多个执行单元,一连接至第一指令集的一取指令单元以及第二指令集的一定序器的分支单元。该处理器还包括一译码单元,该译码单元译码所述第一指令集的指令为用于所述执行单元的控制信号,以及紧邻所述多个执行单元的多个缓冲器,用于存储所述第二指令集的被译码的指令。该处理器还包括一编译器,该编译器根据执行频率产生第一格式的指令和第二格式的指令,其中第二格式的指令比第一格式的指令执行得更频繁。所述分支单元使定序器寻址存储在缓冲器中的第二指令集的被译码的指令,并且定序第二指令集的控制信号。该定序器连接至多个门,所述多个门连接在多个用于存储第一指令集的控制信号的执行队列与所述多个执行单元之间,该定序器控制这些门。每个执行单元连接至一缓冲器。所述分支单元根据一第一指令集的无条件分支指令,将处理器从第一指令集切换至第二指令集,所述分支单元根据一第二指令集的无条件分支指令,将处理器从第二指令集切换至第一指令集。另一方面,在连接至所述分支单元的缓冲器中的一个切换位发信号通知定序器停止从缓冲器中取指令并且启动在主指令存贮器中取指令,从而读取在无条件分支后的下一个指令。所述执行单元的执行带宽大于所述取/译码/发布带宽。第二指令集的控制信号是第一指令集的控制信号的逻辑子集。附图说明下面将结合附图更详细地描述本专利技术的最佳实施例图1示出了一具有三个发布带宽和五个执行带宽的多发布处理器;图2示出根据图1的处理器的流水线模板和没有分支预测的分支损失;图3示出了一根据本专利技术的实施例的处理器的模型;以及图4示出了在执行根据本专利技术的一个实施例的执行局部预译码指令缓冲时,根据图3的处理器的流水线模板。具体实施例方式根据本专利技术的一个实施例,提供了一种用于一处理器的系统和方法,该处理器能够每个处理器周期执行至少两个操作,并且其执行带宽大于用在由编译器制定的处理程序中的指令取/译码/发布带宽,该编译器分析运行在处理器中的代码。可以理解的是,本专利技术能够以各种形式的硬件,软件,固件,专用处理器或者其组合来实现。在一个实施例中,本专利技术可以用软件的方式实现,从而作为一应用程序被实质地具体化在程序存储设备中。该应用程序可被加载到一包括任意适当体系结构的机器中并由其执行。最好是,该机器被实现在一具有诸如一个或多个中央处理单元(CPU)、一随机存取存贮器(RAM)以及(多个)输入/输出(I/O)等硬件的计算机平台上。该计算机平台还包括一操作系统和微指令码。这里描述的各种进程和函数既可以是微指令码的一部分,也可以是通过操作系统执行的应用程序的一部分(或者是它们的组合)。另外,各种其它的外围设备也可以连接到该计算机平台,诸如一附加数据存储设备和一打印设备等。还可以理解的是,由于附图中描述的一些组成系统的部件和方法步骤可以用软件实现,因此,在这些系统部件(或处理步骤)之间的实际连接可以根据本专利技术被编程的方式而不同。根据在此提供的本专利技术给出的教导,本领域的普通技术人员将能够预料本专利技术的这些和类似实现或配置。图1示出了一现有技术的处理器,其中包括耦合至一指令取/译码/发布本文档来自技高网
...

【技术保护点】
一种用于在一处理器中处理一指令集的第一指令格式和第二指令格式的方法,该方法包括:在紧邻多个执行单元的多个缓冲器中存储多个第二指令格式的指令;根据第一计数器执行第一指令格式的至少一个指令;以及根据至少一个第二计数器执行第二指令格式的至少一个指令,其中该第二计数器被第一指令格式的一分支指令调用。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:ER奥尔特曼CJ格洛斯内尔三世E赫凯内克D梅尔策M穆徳吉尔
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1