[发明专利]一种多线程处理器中的指令输出装置、方法及其处理器有效
申请号: | 201310619576.1 | 申请日: | 2013-11-29 |
公开(公告)号: | CN103593169B | 公开(公告)日: | 2017-09-05 |
发明(设计)人: | 梅思行;劳咏仪;王世好 | 申请(专利权)人: | 深圳中微电科技有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 深圳市科吉华烽知识产权事务所(普通合伙)44248 | 代理人: | 刘显扬 |
地址: | 518057 广东省深圳市南山区高*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多线程 处理器 中的 指令 输出 装置 方法 及其 | ||
技术领域
本发明涉及处理器的指令实现,更具体地说,涉及一种多线程处理器中的指令输出装置、方法及其处理器。
背景技术
在典型的处理器指令处理流水线上,当指令发布(instruction is issued)后,可能产生数据冒险(data hazard)的情况,此时,该指令将不得不停止并等待,直到数据冒险被清除后才能重新执行。例如,一个上载/存储的指令将不知道其需要的数据是否被存入数据缓存或内部的存储器。在后一种情况下(即一个存储的指令),其数据将直到多个时钟周期后才会到达,使得该指令一直停止并等待其数据由外部的存储器到达。这种停止不但带来了极大的时间临界性(time critical),而且使在指令处理流水线的各个阶段保持控制该停止的指令变得复杂。如果该流水线处理的指令是多线程中的一个,其复杂程度将倍增。同时,该停止的指令也将占用指令实现模块进行等待,从而对整个线程的进度带来影响。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述处理时间增多、复杂、占用硬件资源的缺陷,提供一种处理时间较少、简单、不会占用硬件资源的多线程处理器中的指令输出装置、方法及其处理器。
本发明解决其技术问题所采用的技术方案是:构造一种多线程处理器中的指令输出装置,包括指针产生逻辑单元、指令缓存单元、指令发布单元、指令执行单元和存储器访问单元;所述指针产生单元产生表示当前运行线程的本取指周期内输出的指令所在的读指针、表示当前运行线程的本取指周期内输入指令的存储位置的写指针以及表示当前线程中已输出但未执行指令中最先输出的一条指令位置的保证指针,并分别输出所述指针到所述指令缓存单元;所述指令发布单元将其得到的指令传输到所述指令执行单元;所述指令执行单元通过所述存储器访问单元取得当前其接收指令涉及的数据并实现该指令;
所述指令缓存单元在未收到来自所述存储器访问单元的、表示数据冒险存在的中断信号时按照取指周期依次输出所述读指针指向的指令;收到所述中断信号时,所述指令缓存单元暂停当前线程指令的输出,并将读指针替换为保证指针数值。
更进一步地,所述指令缓存单元还包括用于比较输入的写指针和保证指针的指针比较模块;所述指针比较单元比较所述写指针和所述保证指针,且在二者相同时,使得本取指周期取得的当前线程指令停止写入所述指令缓存单元。
更进一步地,所述指针产生逻辑单元还包括保证指针产生单元,所述保证指针产生单元在开始取指时取得所述当前运行线程的读指针的值作为保证指针的初始值,并在所述保证指针指向的指令执行后,更新所述保证指针值。
更进一步地,所述保证指针的更新包括按照设定的步长指向本线程下一条已输出或未输出的指令。
更进一步地,所述指针产生逻辑单元还包括用于产生读指针的读指针产生单元,所述读指针产生单元依照指令输出产生读指针并在接收到来自所述存储器访问单元的第一设定信号时,重启所述被暂停的线程,并重新输出其与所述保证指针一致的读指针所指向的指令到所述指令发布单元;所述第一设定信号表示至少在上一个或多个取指周期检测的、未有效存在的输出指令涉及数据在本取指周期已经有效存在。
更进一步地,所述存储器访问单元还与存储器连接,所述存储器是与外部存储器连接的数据缓冲区域或数据缓冲单元;所述数据有效存在为涉及的数据已经读入所述数据缓冲区域或数据缓冲单元并存储。
更进一步地,所述指针产生逻辑单元还包括停止信号产生单元,所述停止信号产生单元分别输出放弃当前指令执行的控制信号到所述指令发布单元和所述指令执行单元。
本发明还涉及一种多线程处理器中的指令输出方法,包括如下步骤:
A)产生分别用于当前运行线程指令输出和输入的读、写指针以及用于表示已输出但尚未确认是否无数据冒险的最后一条指令的位置的保证指针;
B)判断是否接收到表示所述保证指针指向指令存在数据冒险存在的中断信号,如是,暂停本线程的指令输出,并将读指针替换为当前保证指针值;否则,执行步骤C);
C)比较所述写指针和所述保证指针是否相同,如相同,不写入指令,,并执行下一步骤;否则,写入取得的指令并执行下一步骤;
D)继续输出本线程指令,并在输出指令已执行时,更新保证指针值;执行本步骤后,返回步骤A);
当处于暂停本线程指令输出时,还包括如下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳中微电科技有限公司,未经深圳中微电科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310619576.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种可调温降温服上的涡流导气装置
- 下一篇:电子麻将机