协处理器指令集的扩展装置的制作方法

文档序号:6575913阅读:138来源:国知局
专利名称:协处理器指令集的扩展装置的制作方法
技术领域
本发明涉及处理器设计中的协处理器指令集,尤其是一种协处理 器指令集的扩展装置。
背景技术
指令集是处理器软硬件交互的接口 ,处理器通过自动从内存中读 取指令,并进行译码和执行,完成复杂的运算和控制任务。每个处理 器都需要有特定的指令集与其进行对应。指令集的先进与否,直接影 响到处理器的性能发挥,因此指令集是处理器设计的重要内容。
目前的处理器设计中,除了需要为基本运算和控制定义相应的指 令集外,还需要设计面向特定应用的指令集子系统。面向特定应用的 指令集子系统是将复杂的运算控制流程简化为抽象的操作,并由处理 器根据解码的信息直接运行,避免通过基本指令集产生复杂控制运算 流程。这种方法在目前的嵌入式处理器领域中得到了十分广泛的应用,
如ARM的SIMD指令集,MIPS的DSPASE等。
指令集扩展技术目前主要可分为两个大类主处理器指令集扩展 和协处理器指令集扩展。主处理器指令集扩展技术是指在主处理器的 指令集空间内进行专用指令的扩展,扩展指令通常在主处理器内部通 过增加特殊的执行单元实现支持;协处理器指令集扩展技术指在主处 理器指令集空间之外进行专用指令的扩展,扩展指令通常通过协处理 器接口发送到目标协处理器完成执行。主处理器指令集扩展技术与主处理器架构的耦合度高,资源复用度高。协处理器指令集扩展技术与 主处理器的耦合度相对较低,但扩展相对灵活,可以根据应用的特征 进行灵活的支持。协处理器指令集扩展技术由于扩展方便、设计风险 小,成为目前指令集扩展的主要形式。
目前的协处理器指令集扩展技术通常是在主处理器指令编码空间 中划分一个特殊的区域用于协处理器指令集的定义,如MIPS处理器
将32位机器码的最高4位为0100保留给协处理器使用。这种技术的 优点是协处理器的指令可以由主处理器按照普通指令的方式进行预 取,并通过解码,将主处理器指令和协处理器指令进行快速的区分。 这样协处理器的取指就会变得简单,主处理器和协处理器的接口定义
会变得清晰。但这种方法同样存在着一些问题,主要表现在1、在指
令代码空间相对紧凑的]£位指令集中扩展空间难度较大;2、由于协-
处理器与主处理器共享取指和解码单元,因此协处理器指令的格式受
到主处理器格式的影响。

发明内容
为了克服已有的在主处理器指令编码空间中划分一个特殊的区域 用于协处理器指令集的扩展性能差、灵活性差的不足,本发明提供一 种具有良好的扩展性能、灵活性好的协处理器指令集的扩展装置。
本发明解决其技术问题所采用的技术方案是
一种协处理器指令集的扩展装置,在与所述协处理器连接的主处 理器的指令集内包括用于产生协处理器指令码的立即数产生指令, 以及用于实现所述协处理器指令码从主处理器通用寄存器到协处理器 指令寄存器的装载的协处理器指令码装载指令;所述主处理器包括用于控制立即数产生指令先产生协处理器指 令码的立即数产生单元,用于临时存放由立即数产生指令产生的协处 理器指令码的主处理器通用寄存器,以及用于将存放于主处理器通用 寄存器中的协处理器指令码装载进协处理器指令寄存器的协处理器指 令装载执行单元;
所述协处理器包括:用于接收由主处理器装载的协处理器指令码, 并将接收的指令码发送至协处理器执行的协处理器指令寄存器,以及 用于从协处理器指令寄存器读取指令并完成解码和执行的协处理器指 令执行模块。
进一步,所述立即数产生指令由主处理器完成取指、解码、执行, 并将产生的立即数结果回写至通用寄存器中。
更进一步,所述协处理器指令码装载指令的源操作数存储于主处 理器通用寄存器内,目的寄存器为协处理器指令寄存器。
更进一步,所述立即数产生指令为复用主处理器中的原立即数产 生指令或者单独设计专门用于产生协处理器指令码立即数的指令。
所述的协处理器指令执行模块包括用于译码协处理器指令的协 处理器指令译码单元,用于执行协处理器指令并产生相应结果的协处 理器指令指令单元。
本发明的技术构思为基'于本申请实现的协处理器扩展技术将主 处理器与协处理器的指令空间有效隔离,实现了协处理器指令集扩展 与主处理器相对独立。通过该方法不仅可以扩展出多个并行独立的指 令集,同时也为用户独立进行协处理器的开发打下了坚实的基础。
本发明的有益效果主要表现在1、具有良好的扩展性能、灵活性好;2、有效简化了协处理器指令集扩展的方式,为在统一基本指令集 架构上扩展出各种面向应用的用户自定义指令提供了灵活高效的支 持。


图1是立即数产生指令的编码方式的示意图。
图2是协处理器指令码装载指令的编码方式的示意图。
图3是协处理器指令集扩展指令的执行装置框架示意图。
图4是通过预编译获得立即数产生的指令的执行机制的示意图。
具体实施例方式
下面结合附图对本发明作进一步描述。
参照图1 图4, 一种协处理器指令集的扩展装置,在与所述协处
理器连接的主处理器的指令集内包括用于产生协处理器指令码的立
- — 一
即数产生指令,以及用于实现所述协处理器指令码从主处理器通用寄
存器到协处理器指令寄存器的装载的协处理器指令码装载指令;
所述主处理器包括用于控制立即数产生指令先产生协处理器指
令码的立即数产生单元,用于临时存放由立即数产生指令产生的协处 理器指令码的主处理器通用寄存器,以及用于将存放于主处理器通用 寄存器中的协处理器指令码装载进协处理器指令寄存器的协处理器指
令装载执行单元; 所述协处理器包括:用于接收由主处理器装载的协处理器指令码,
并将接收的指令码发送至协处理器执行的协处理器指令寄存器,以及 用于从协处理器指令寄存器读取指令并完成解码和执行的协处理器指 令执行模块。所述立即数产生指令由主处理器完成取指、解码、执行,并将结 果回写至通用寄存器中。
所述协处理器指令码装载指令的源操作数存储于主处理器通用寄 存器内,目的寄存器为协处理器指令寄存器。
所述立即数产生指令为复用主处理器中的原立即数产生指令或者 单独设计专门用于产生协处理器指令码立即数的指令。.
所述的协处理器指令执行模块包括用于译码协处理器指令的协 处理器指令译码单元,用于执行协处理器指令并产生相应结果的协处 理器指令指令单元。
本实施例的协处理器指令集扩展指令是指立即数产生指令和协处 理器指令码装载指令两条指令。
立即数产生指令可以复用主处理器中的原立即数产生指令,也可 以单独设计专门用于产生协处理器指令码立即数的指令。立即数产生 的过程既可通过将立即数编码在指令码中;也可以通过编译器将立即 数预先编译存放于内存中,在程序运行的过程中,通过特殊的载入指 令从内存中动态获得。立即数产生指令的目的寄存器是主处理器的通 用寄存器,目的寄存器的编号需要编入指令码中。立即数产生指令的 两种具体编码方式如图1所示(a)是立即数编入指令码的一种方式, 11是该指令的操作码,指令码中的立即数13在执行过程中被直接截 取,然后送入由12指示的目的寄存器中存储;(b)是基于编译器预先
编译的立即数载入指令,14为操作码,15为目的寄存器,16为当前
指令的偏移量指示位,用于表示目标立即数在内存中相对当前指令的协处理器指令码装载指令的功能是将临时存放于主处理器通用寄 存器中的协处理器指令码传送至协处理器的指令寄存器中。该指令为 主处理器编码空间内的指令,本质是一条特殊的传送指令。协处理器 指令码装载指令的源寄存器是主处理器的通用寄存器,目的寄存器为 协处理器的指令寄存器。指令编码时,可以固定主处理器通用寄存器 和协处理器指令寄存器的编码,也可以设计专用的比特用来指示该指 令所选中的主处理器通用寄存器和目的协处理器指令寄存器。如图2 给出了协处理器指令码转载指令的具体编码方式21为指令的操作 码,22指示目标协处理器的指令寄存器,通常一个协处理器只有一个
指令寄存器,因此这部分并不是指令码中必须的,23指示存储协处理
器指令码的主处理器通用寄存器编号。
协处理器指-令集扩展指令的执行过程和框架如图3所示,.其中
31为主处理器的取指单元,除预取普通主处理器指令外,同时还
预取本发明中增加的立即数产生指令和协处理器指令装载指令。
32为主处理器的译码单元,除译码普通主处理器指令外,同时译
码本发明中增加的立即数产生指令和协处理器指令装载指令,并将它 们分别发送到对应的执行单元中。
33为主处理器的立即数产生单元,用于执行本发明所提出的立即 数产生指令。 '
34为主处理器的通用寄存器单元,存储运算的操作数和运算结 果,本发明中由立即数产生单元33产生的协处理器指令码也临时存放 于通用寄存器单元中。
35为协处理器指令码转载执行单元,用来执行将协处理器指令码从主处理器的通用寄存器中搬运到相应的协处理器指令寄存器的操 作。
36为协处理器指令寄存器,用于接收来自主处理器发送的协处理 器指令码。
37为协处理器指令译码单元,译码协处理器指令。
38为协处理器指今指令单元,执行协处理器指令,产生相应结杲。
立即数产生指令的执行过程为首先主处理器取指单元31从存储
器中获得指令,送至译码单元32中译码,若当前指令为立即数产生指 令,则将该指令发送至立即数指令执行单元33,立即数指令执行单元 33根据指令的操作码执行相应的立即数产生过程,最终将产生的结果 写入到主处理器通用寄存器34中。
协处理器指令码装载指令的执行过程为首先主处理器取指单元 31从存储器中获得指令,送至译码单元32中译码,若当前指令为协 处理器指令码装载指令,则将该指令发送至协处理器指令码装载执行 单元35,协处理器指令码装载执行单元35从主处理器通用寄存器单 元34中读取对应的协处理器指令操作码,然后将其传送到协处理器指 令寄存器中36。
协处理器指令的执行过程为从协处理器指令寄存器36中获得指 令码,然后将揞令码发送到协处理器译码单元37,根据译'码结果将指 令发送到对应的执行单元38中进行执行。
立即数指令执行单元33用于执行立即数产生指令并生 目标立 即数。对于立即数编入指令码的方案图1 (a)所示,执行单元仅需对 指令码进行按位截取便可获得相应的立即数。对于立即数通过编译器预编译然后从内存中获得的方案,可以获得位宽更宽的立即数,其执 行过程如图4所示。指令被送入到立即数产生单元之后,指令的低位
41被截取,并于当前指令的地址(PC)通过加法器43相加后获得立 即数的目标地址。于此同时由控制逻辑42向存储器发起读请求,获得 的立即数结果最终被回写通用寄存器组中。
通用寄存举单元34为包含主处理器用于存储操作数及其结果的 临时缓冲空间。通过指令段中对应位,如图1中的12、 15,图2中的 23进行索引。
协处理器指令装载执行单元35在获得指令后,从通用寄存器34 中获得对应的立即数,然后送入到协处理器的指令寄存器中,实现协 处理器指令的成功装载。
权利要求
1、一种协处理器指令集的扩展装置,其特征在于在与所述协处理器连接的主处理器的指令集内包括用于产生协处理器指令码的立即数产生指令,以及用于实现所述协处理器指令码从主处理器通用寄存器到协处理器指令寄存器的装载的协处理器指令码装载指令;所述主处理器包括用于控制立即数产生指令先产生协处理器指令码的立即数产生单元,用于临时存放由立即数产生指令产生的协处理器指令码的主处理器通用寄存器,以及用于将存放于主处理器通用寄存器中的协处理器指令码装载进协处理器指令寄存器的协处理器指令装载执行单元;所述协处理器包括用于接收由主处理器装载的协处理器指令码,并将接收的指令码发送至协处理器执行的协处理器指令寄存器,以及用于从协处理器指令寄存器读取指令并完成解码和执行的协处理器指令执行模块。
2、 如权利要求1所述的协处理器指令集的扩展装置,其特征在于所 述立即数产生指令由主处理器完成取指、解码、执行,并将产生的立 即数结果回写至通用寄存器中。
3、 如权利要求1所述的协处理器指令集的扩展装置,其特征在于所 述协处理器指令码装载指令的源操作数存储于主处理器通用寄存器 内,目的寄存器为协处理器指令寄存器。
4、 如权利要求2所述的协处理器指令集的扩展装置,其特征在于所 述协处理器指令码装载指令的源操作数存储于主处理器通用寄存器 内,目的寄存器为协处理器指令寄存器。
5、 如权利要求1一4之一所述的协处理器指令集的扩展装置,其特征 在于所述立即数产生指令为复用主处理器中的原立即数产生指令或 者单独设计专门用于产生协处理器指令码立即数的指令。
6、 如权利要求1一4之一所述的协处理器指令集的扩展装置,其特征 在于所述的协处理器指令执行模块包括用于译码协处理器指令的 协处理器指令译码单元,用于执行协处理器指令并产生相应结果的协
全文摘要
一种协处理器指令集的扩展装置,在与所述协处理器连接的主处理器的指令集内包括用于产生协处理器指令码的立即数产生指令,以及用于实现所述协处理器指令码从主处理器通用寄存器到协处理器指令寄存器的装载的协处理器指令码装载指令;处理器包括立即数产生单元、主处理器通用寄存器以及用于将存放于主处理器通用寄存器中的协处理器指令码装载进协处理器指令寄存器的协处理器指令装载执行单元;协处理器包括协处理器指令寄存器和协处理器指令执行模块。本发明具有良好的扩展性能、灵活性好。
文档编号G06F9/318GK101650645SQ20091010222
公开日2010年2月17日 申请日期2009年9月4日 优先权日2009年9月4日
发明者严晓浪, 孟建熠, 沙子岩, 葛海通 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1