[发明专利]多线程处理器的线程取指调度方法、系统和多线程处理器有效
申请号: | 201310295546.X | 申请日: | 2013-07-15 |
公开(公告)号: | CN104298552B | 公开(公告)日: | 2018-06-19 |
发明(设计)人: | 李晔;侯锐;冯煜晶;王曦爽 | 申请(专利权)人: | 华为技术有限公司;中国科学院计算技术研究所 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 唐华明 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 取指 多线程处理器 指令 线程 第一线 调度 处理器功耗 处理器技术 改变指令 目标地址 取指单元 | ||
本发明实施例涉及处理器技术领域,公开了一种多线程处理器的线程取指调度方法、系统和多线程处理器。其中,该方法包括:为第一线程进行取指;判断当前取到的指令是否包括第一类指令,如果是,暂停为所述第一线程在所述第一类指令之后的取指;所述第一类指令为能改变指令流且无法预知目标地址的指令。实施本发明实施例,可以节省处理器功耗,提高取指单元为其它线程取指的机会。
技术领域
本发明涉及处理器技术领域,具体涉及一种多线程处理器的线程取指调度方法、系统和多线程处理器。
背景技术
多线程处理器可以让同一个处理器上的多个线程同步执行并共享处理器上的运算和访存资源,可最大限度的实现多发射、乱序的处理,提高处理器运算资源的利用率,缓和由于同个线程内指令的数据依赖或访存缺失带来的延时。
由于有多个线程需要执行,因此,多线程处理器前端需要选择合适的调度策略选择如何轮流为线程取指,如:某个处理器有16个硬件线程,每个时钟周期取指单元只能选择为其中的1个线程为其取指。为某个线程取指令指的是把该线程的指令从I-Cache(Instruction Cache,指令缓存)中取出来,放入该线程对应的指令缓冲队列(InstructionBuffer,IB)中。
目前线程取指调度策略通常有:轮询或固定优先级的线程取指调度策略。
轮询是指:每个周期固定的给某个线程取指,所有线程轮流被选中,例如对于有16个线程的处理器(线程编号为0~15),我们可以轮流的选择线程0→1→2→3……15→0……。如果某个时钟内被选择的线程的IB满了,则暂停为该线程取指,取指单元(Instruction Fetch Unit,IFU)在该周期为空操作。作为优化,现有很多的多线程处理器会检测每个线程的状态,每次都从能够为其取指的线程中进行轮询,这样选出来的线程IB就不是满的,取指单元可以为其进行取指。
固定优先级指:不同线程具有不同的优先级权重,若多个线程同时准备好,则只选择其中优先级最高的线程为其服务。该优先级权重的衡量方法有很多,如:线程IB中指令越少优先级越高、线程被停顿越久优先级越高等。
现有技术中,每个硬件线程都有独立的IB,取指单元通过检测不同线程的状态,采用轮询或固定优先级的方法挑选出一个已准备好的线程(即该线程IB可以填入新的指令,且该线程无ITLB miss(指令旁路转换缓冲缺失,Instruction Translation LookupBuffer miss)或I-Cache miss(指令缓存缺失)等)并为该线程取指,从I-Cache取出指令后放入该线程的IB中。
在大多数指令集中,有这么一类指令很特殊,它们在执行时,需要其后面所有的指令都停顿住,直到该指令执行完成,该线程后面的指令才能发射执行,我们就称这类指令带Barrier(拦截)语义。这类指令中有很大一部分指令在执行时会改变指令流(即下一条指令的PC地址)而无法对该指令流向进行预测,因此,该指令执行完后需要把其后面的指令清除,重新从正确的PC处开始取指,该线程才能继续执行。
多线程处理器执行到某个线程中的会改变指令流而无法对该指令流向进行预测的指令(例如ARM(Advanced RISC Machines,先进精简指令集机器)中的ISB(InstructionSynchronization Barrier,指令同步壁垒)、HVC(Hypervisor Call,超级管理程序调用)、SVC(Supervisor Call,操作系统调用)、SMC(Secure Monitor Call,安全监控程序调用)等指令)时,该指令从IB中发射出去后,剩余的指令会被阻塞在IB中,直到执行该指令的模块标识该指令执行完毕。然后将发起清空该线程IB的请求,前端线程取指单元重新为该线程取指。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司;中国科学院计算技术研究所,未经华为技术有限公司;中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310295546.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:解角质素微杆菌及其培养方法和应用
- 下一篇:用于油脂冷凝冻结脱臭的蒸发装置