[发明专利]超长指令字处理器指令发射方法有效

专利信息
申请号: 201210089913.6 申请日: 2012-03-30
公开(公告)号: CN102662637A 公开(公告)日: 2012-09-12
发明(设计)人: 陈书明;李振涛;李勇;陈吉华;郭阳;刘衡竹;刘祥远;唐涛;付志刚;刘尧;胡春媚;梁斌;刘必慰;刘蓬侠 申请(专利权)人: 中国人民解放军国防科学技术大学
主分类号: G06F9/38 分类号: G06F9/38
代理公司: 国防科技大学专利服务中心 43202 代理人: 郭敏
地址: 410073 湖*** 国省代码: 湖南;43
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种超长指令字处理器指令发射方法,目的是减小待发射指令选择逻辑的逻辑级数,减少指令发射的延时。技术方案是先改进指令发射部件,即增加一个指令ID扩展逻辑,对指令缓冲区的位宽进行扩充,修改待发射指令选择逻辑,使得指令发射部件具有指令ID扩展和ID匹配功能;然后采用改进后的指令发射部件进行指令发射,即为取指包中的每条指令扩展一个ID,指令缓冲区存储ID扩展之后的取指包,待发射指令选择逻辑从指令缓冲区中选择可供发射的指令,并将其送至指令发射交叉开关,指令发射交叉开关将有效的待发射指令传送至相应的功能部件。采用本发明可消除串行相关性,简少待发射指令选择逻辑的逻辑级数,减少指令发射的延时。
搜索关键词: 超长 指令 字处理 发射 方法
【主权项】:
一种超长指令字处理器指令发射方法,其特征在于包括以下步骤:第一步,改进指令发射部件,使得指令发射部件具有指令ID扩展和ID匹配功能,方法是:1.1增加一个指令ID扩展逻辑:指令ID扩展逻辑位于取指部件和指令缓冲区之间,它接收取指部件送来的取指包,为取指包中的每条指令扩展一个指令ID,并将扩展之后的取指包送至指令缓冲区;指令ID扩展逻辑为每条指令扩展一个ID字段,用于存储各条指令的ID;ID字段的位宽为l,l满足2l≥S,其中S为指令缓冲区的容量,即指令缓冲区中能够存储的最大指令条数,S=m×k,m为指令缓冲区的行数,k为指令缓冲区一行可存储的指令条数;1.2对指令缓冲区的位宽进行扩充,使指令缓冲区能够容纳下扩展了ID字段的指令;指令缓冲区位于指令ID扩展逻辑和待发射指令选择逻辑之间,接收并存储指令ID扩展逻辑送来的取指包,将未发射的指令及其指令ID送至待发射指令选择逻辑;指令缓冲区按行、列进行组织,一行存储一个取指包,共有m行,指令缓冲区一行可存储的指令条数k与取指包的指令条数相等,指令缓冲区分为k列,一列最多有m条指令;1.3基于ID匹配的方法修改待发射指令选择逻辑:待发射指令选择逻辑位于指令缓冲区和指令发射交叉开关之间,接收来自指令缓冲区内未被发射的指令及其指令ID,从中挑选出可供发射的指令送至指令发射交叉开关;待发射指令选择逻辑由一个ID寄存器逻辑和k个列指令选择逻辑组成,ID寄存器逻辑的输出同时送至k个列指令选择逻辑,k个列指令选择逻辑之间是并列 关系,均是一端与指令缓冲区的一列和ID寄存器逻辑相连,另一端与指令发射交叉开关相连;1.3.1 ID寄存器逻辑由当前ID寄存器和寄存器维护逻辑组成。当前ID寄存器接收由寄存器维护逻辑计算出的下一可发射指令的ID,锁存后作为当前ID送至寄存器维护逻辑和k个列指令选择逻辑;当前ID寄存器的位宽与指令ID字段的宽度相等,当前ID指示当前时钟节拍可发射指令的ID值;寄存器维护逻辑接收由当前ID寄存器送来的当前ID,计算下一可发射指令的ID送至当前ID寄存器;1.3.2与指令缓冲区的k列对应,待发射指令选择逻辑设置k个列指令选择逻辑;每个列指令选择逻辑由m个ID比较器、一个m路选择器和一个m输入或门组成:m个ID比较器从指令缓冲区接收同一列的m个指令ID,从当前ID寄存器获得当前ID,将m个指令ID和当前ID分别进行比较,产生m个比较结果S1~Sm,并将S1~Sm分别送至m路选择器和m输入或门;m路选择器以S1~Sm作为选择信号,从指令缓冲区同一列的m条指令中选择出至多一条指令作为待发射指令输出;m输入或门对S1~Sm执行或运算,生成一个指令有效信号来指示当前列指令选择逻辑输出的待发射指令是否有效,为1表示有效,为0表示无效;k个列指令选择逻辑共产生k条待发射指令和k个指令有效信号送至指令发射交叉开关;第二步,采用改进后的指令发射部件进行基于指令ID扩展和ID匹配的指令发射,方法是:2.1指令ID扩展逻辑获得取指部件从指令存储器取回的取指包后,按照下述方法为取指包中的每条指令扩展一个ID:2.1.1将变量ID_Packet初始化为0;2.1.2为取指包中的每条指令计算一个ID,方法是:2.1.2.1将变量i初始化为0;2.1.2.2令指令i为取指包中自首指令开始的第i条指令,按下述方法计算指令i的ID:1)若指令i为取指包的首指令,则令IDi=ID_Packet,IDi为指令i的ID;2)若指令i不是取指包的首指令,且指令i与指令i‑1位于同一指令包内,令IDi=IDi‑1;3)若指令i不是取指包的首指令,且与指令i‑1分属两个不同的指令包,则令IDi=(IDi‑1+1)modS;2.1.2.3i=i+1;2.1.2.4若i<k,则跳转至2.1.2.2,否则执行2.1.3;2.1.3更新变量ID_Packet:令指令l为取指包中的最后一条指令,若指令l为其所属指令包的最后一条指令,则ID_Packet=(ID1+1)modS;若指令l不为其所属指令包的最后一条指令,ID_Packet=ID1;2.1.4将扩展了指令ID的取指包送至指令缓冲区,指令缓冲区执行2.2步;与此同时,如果有新的取指包到达,指令ID扩展逻辑跳转到第2.1.2步执行,否则指令ID扩展逻辑继续等待;2.2指令缓冲区接收并存储由指令ID扩展逻辑送来的ID扩展之后的取指包,指令缓冲区的一行存储一个取指包,从第1行开始顺序存储;如果第1行的指令发射完毕,则后序各行指令依次前移;如果指令缓冲 区填满,则停顿取指流水线,直至指令缓冲区出现空槽;指令缓冲区将所有未发射指令及其ID送至待发射指令选择逻辑,待发射指令选择逻辑执行2.3步;2.3待发射指令选择逻辑运用ID匹配的方法从指令缓冲区中选择出可供发射的指令,并将其送至指令发射交叉开关,方法如下:2.3.1更新当前ID寄存器的值:寄存器维护逻辑对当前ID加1并按S取模,计算出下一可发射指令的ID,当前ID寄存器对下一可发射指令的ID进行锁存,作为新的当前ID;2.3.2将当前ID寄存器的值当前ID输出给k个列指令选择逻辑;2.3.3k个列指令选择逻辑并行工作,每个列指令选择逻辑从指令缓冲区一列的m条指令中选择出至多一条指令送至指令发射交叉开关,k个列指令选择逻辑共产生最多k个指令有效信号和k条待发射指令;2.3.4待发射指令选择逻辑将k条待发射指令和k个指令有效信号同时送至指令发射交叉开关;2.4指令发射交叉开关接收待发射指令选择逻辑送来的k条待发射指令和k个指令有效信号,首先根据指令有效信号确定出有效的待发射指令,然后根据待发射指令携带的功能部件编码信息,通过指令发射交叉开关将有效的待发射指令传送至相应的功能部件。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201210089913.6/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

400-8765-105周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top