[发明专利]非完全锁步的VLIW处理器流水线控制方法有效
申请号: | 200910044747.6 | 申请日: | 2009-11-12 |
公开(公告)号: | CN101702118A | 公开(公告)日: | 2010-05-05 |
发明(设计)人: | 李勇;李振涛;陈书明;陈吉华;郭阳;万江华;孙书为;刘蓬侠;刘宗林;鲁建壮;余再祥;罗恒;吴虎成 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 国防科技大学专利服务中心 43202 | 代理人: | 郭敏 |
地址: | 410073 *** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种非完全锁步的VLIW处理器流水线控制方法,目的是减少流水线暂停次数,提高处理器执行效率,同时在流水线控制中保持VLIW指令同步语义。技术方案是先在传统的VLIW处理器基础上增加一个指令缓冲器,并将流水线控制器改为由常规控制器和分支控制器组成的非锁步流水线控制器;程序顺序执行时,由常规控制器实现对流水线的非锁步方式的控制,程序执行遇到分支转移情况时,非锁步流水线控制器从指令译码器接收分支转移信号,由分支控制器控制流水线运行并维持分支条件下VLIW的同步语义。本发明采用非锁步的方式来控制处理器流水线,使处理器的取指和执行分离,从而减少Cache阻塞对流水线性能的影响,提高了处理器执行效率。 | ||
搜索关键词: | 完全 vliw 处理器 流水线 控制 方法 | ||
【主权项】:
一种非完全锁步的VLIW处理器流水线控制方法,其特征在于包括以下步骤:第一步,在传统的VLIW处理器基础上增加一个指令缓冲器,并将流水线控制器改为非锁步流水线控制器;指令缓冲器与取指流水线、指令派发部件、非锁步流水线控制器相连;取指流水线从指令Cache中取出VLIW指令包,将VLIW指令包送到指令缓冲器,指令派发部件从指令缓冲器取出VLIW指令包,并将指令包中的指令以执行包为单位发送到执行流水线;指令缓冲器中没有指令包时向非锁步流水线控制器发Empty信号;指令缓冲器被指令包填满没有空闲存储空间时向非锁步流水线控制器发Full信号;非锁步流水线控制器由常规控制器和分支控制器组成:常规控制器与取指流水线、执行流水线、指令Cache、数据Cache、指令缓冲器以及分支控制器相连;常规控制器收到指令Cache阻塞信号时,向取指流水线和分支控制器发取指流水线暂停信号;收到数据Cache阻塞信号时,向执行流水线和分支控制器发执行流水线暂停信号;收到指令缓冲器的Full信号时,向取指流水线和分支控制器发取指流水线暂停信号;收到指令缓冲器的Empty信号时,向执行流水线和分支控制器发执行流水线暂停信号;分支控制器与取指流水线、执行流水线、指令缓冲器、指令译码器以及常规控制器相连;它从指令译码器接收分支转移信号,从常规控制器接收取指流水线暂停信号和执行流水线暂停信号,根据分支转移信号、取指流水线暂停信号和执行流水线暂停信号向取指流水线发取指流水线分支暂停信号,向执行流水线发执行流水线分支暂停信号,并向指令缓冲器发Clear信号清除指令缓冲器中的指令;分支控制器由取指计数器、派发计数器和同步仲裁器组成:取指计数器和派发计数器都是标准的减一计数器;取指计数器与同步仲裁器、常规控制器和取指流水线相连,它被同步仲裁器预置一个初始值;取指计数器接收同步仲裁器发来的计数开始信号后启动计数,它用取指流水线的时钟信号作为计数时钟,当未收到常规控制器发来的取指流水线暂停信号时每个时钟周期做减一计数,取指计数器计数至零时停止计数,向同步仲裁器发取指计数结束信号;派发计数器与同步仲裁器、常规控制器和执行流水线相连,它被同步仲裁器预置一个初始值;派发计数器接收同步仲裁器发来的计数开始信号后启动计数,它用执行流水线的时钟信号作为计数时钟,当未收到常规控制器发来的执行流水线暂停信号时每个时钟周期做减一计数,派发计数器计数至零时停止计数,向同步仲裁器发派发计数结束信号;同步仲裁器是一个状态机,与指令译码器、取指计数器、派发计数器、取指流水线、执行流水线相连;同步仲裁器接收指令译码器发送的分支转移信号,向取指计数器发计数开始信号,接收取指计数器发送的取指计数结束信号;向派发计数器发出计数开始信号,接收派发计数器发送的派发计数结束信号;向指令缓冲器发Clear清除信号,向取指流水线发送取指流水线分支暂停信号,向执行流水线发送执行流水线分支暂停信号;第二步,采用非锁步流水线控制器和指令缓冲器对流水线进行控制,控制方法如下:(1)程序顺序执行时,非锁步流水线控制器利用常规控制器实现对流水线的非锁步方式的控制:如果指令Cache发生阻塞,常规控制器接收到指令Cache阻塞信号后,向取指流水线发取指流水线暂停信号暂停取指流水线;如果数据Cache发生阻塞,常规控制器接收到数据Cache阻塞信号后,向执行流水线发执行流水线暂停信号暂停执行流水线;当指令缓冲器中装满了指令,没有空闲空间存储VLIW指令时,指令缓冲器向常规控制器发Full信号,常规控制器收到Full信号后向取指流水线发取指流水线暂停信号暂停取指流水线;随着指令派发部件不断从指令缓冲中将指令派发到执行流水线,指令缓冲器又会有空闲空间,此时指令缓冲器取消Full信号,常规控制器取消取指流水线暂停信号,取指流水线恢复取指;当指令缓冲器中没有VLIW指令时,指令缓冲器向非锁步流水线控制器发Empty信号,常规控制器收到Empty信号时向执行流水线发执行流水线暂停信号暂停执行流水线;随着取指流水线不断从指令Cache取得指令放到指令缓冲器,指令缓冲器又会有VLIW指令,此时指令缓冲器取消Empty信号,常规控制器取消执行流水线暂停信号,执行流水线恢复执行。(2)程序执行遇到分支转移情况时,非锁步流水线控制器从指令译码器接收分支转移信号,非锁步流水线控制器的分支控制器控制流水线运行并维持分支条件下VLIW的同步语义:分支控制器收到指令译码器发来的分支转移信号时,同步仲裁器启动取指计数器和派发计数器;取指流水线在未收到取指流水线暂停信号的情况下,每个时钟周期取得一个指令包,它的时钟信号驱动取指计数器进行减一计数,取指计数器计数至零时停止计数并向同步仲裁器发取指计数结束信号;执行流水线在未收到执行流水线暂停信号的情况下,每个时钟周期执行一个执行包,它的时钟信号驱动派发计数器进行减一计数,派发计数器计数至零时停止计数并向同步仲裁器发派发计数结束信号;当同步仲裁器收到取指计数器取指计数结束信号时,向取指流水线发取指流水线分支暂停信号暂停取指流水线;当同步仲裁器收到派发计数器派发计数结束信号时,向执行流水线发执行流水线分支暂停信号暂停执行流水线;当同步仲裁器同时收到取指计数结束信号和派发计数结束信号时,向取指流水线发取指流水线分支暂停信号并向执行流水线发执行流水线分支暂停信号。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200910044747.6/,转载请声明来源钻瓜专利网。