一种用于微处理器的硬件多线程控制方法及其装置制造方法及图纸

技术编号:5133260 阅读:202 留言:0更新日期:2012-04-11 18:40
一种用于微处理器的硬件多线程控制方法及其装置,涉及微处理器体系结构领域。本发明专利技术提出的控制方法包括以下步骤:多线程取指,多线程译码,多线程执行,多线程访存,多线程写回。本发明专利技术提出的仿真装置包括:一个硬件多线程取指器件,一个硬件多线程译码器件,一个硬件多线程执行器件,一个硬件多线程访存器件,一个硬件多线程写回器件,一个硬件多线程寄存器组,一个多线程控制器件。此外,本发明专利技术针对软件多线程程序,可以通过处理器硬件多线程执行,执行时有效地隐藏了访存延迟,略去了线程切换时线程相关信息的保存与恢复,减少了线程切换的开销;采用流水线技术,使得原来执行一个线程的时间内现在可以并行执行n个线程;通过硬件多线程有效规避了深度流水带来的数据相关性风险,降低了系统的设计复杂性,从硬件上提高了系统的执行效率。

【技术实现步骤摘要】

本专利技术涉及微 处理器体系结构领域,特别涉及硬件多线程的控制方法及其装置。背景知识为了进一步提高微处理器性能,已提出多种新颖的体系结构,如多核、多线程、流 处理、PIM、可重构、多态等。这些新的体系结构从不同角度对微处理器发展中的问题提出了 解决方法。受到软件程序特性影响和硬件工艺的物理限制,未来体系结构的发展已经不是 仅仅通过提高主频就可以获得系统性能的大幅提升。体系结构技术发展的趋势是明显的, 多线程和多核,成为两个关键技术方向,在各个领域,含有多线程或多核特征的处理器层出 不穷。流水线技术是RISC处理器区别于CISC处理器的重要特征。采用深度流水技术,在 指令相关和指令跳转时会大大降低流水线的性能。本专利技术在RISC架构基础上,采用深度流 水技术,实现多硬件线程执行,有效的避免指令相关带来的性能减低,并通过多线程提高微 处理器的性能。2008-7-16公开的专利CN101221493A,题目《并行处理器中的多线程执行》,发 明人D ·伯恩斯坦因等。该专利技术公开了一种并行的硬件多线程处理器。该处理器包含一个 谐调系统功能的通用处理器和支持多个硬件线程和多个微引擎。该处理器还包含具有第1 存储控制器和第2存储控制器的存储器控制系统,第1存储控制器根据存储器访问是指向 偶数存储组还是指向奇数存储组,将存储器访问加以分类,第2存储控制器则根据存储器 访问是读访问还是写访问,对存储器访问进行优化。2007-8-22公开的专利CN101021801,题目《流水线多进程之间基于消息队列的 海量数据传输方法》,专利技术人薛庆童等。该专利公开了一种流水线多进程之间基于消息队 列的海量数据传输的方法。在计费产品业务处理流程中一条话单顺序通过至少分为格式 化、规整(或者称为分拣)、排重、批价、入库多个进程,计费方法采用单步与整体提交相结 合的机制,通过配置来实现在不同环境下采用不同消息队列类型自动分配任务,负载均衡 管理,将话单分发至不相同的消息队列,根据业务逻辑,自定义方式进行部署。采用该专利技术 方法实现的计费系统海量的话单数据在进程间的传输,全部通过消息队列,处理过程可以 在内存里面实现,没有系统IO的开销,速度大大提高。采用基于消息队列的流水线并行处 理技术方案的系统处理效率明显提高。处理速度在国内外计费厂家中名列前茅。2006-1-25公开的专利CN1725176,题目《多线程流水线指令解码器的方法和设 备》,专利技术人J ·Ρ ·杜格拉斯等。该专利公开了一种多线程流水线指令解码器的方法,使用 多线程传输的指令解码器计时、清除和延迟多线程机器中解码流水线的指令,可以获得最 佳的性能和最小的功耗。一个映像流水线映像保持线程标识的指令解码流水线和指令解码 器每个流水线阶段有效指令比特。线程标识和有效的比特用于控制对指令解码器中每个流 水线阶段的计时、清除和延迟。一个线程指令能够被清除而不与在解码流水线的其它线程 指令发生冲突,在一些情况下,一个线程的指令能够被延迟而不与在解码流水线的其它线 程指令发生冲突。本专利技术中,仅仅当有效指令需要前进以便保持功率和最小化延迟时计时 流水线阶段。1999-9-15公开的专利CN1228557,题目《计算机处理器多线程指令级并行技 术》,专利技术人刘殷等。该专利公开了一种计算机处理器多线程指令级并行技术。该专利技术涉 及一种可应用于计算机处理器的技术多线程指令级并行技术。采用该技术的计算机处理 器可以轮流地从处于执行状态的线程中取指令,使得在计算机处理器中并行执行的若干指 令分别来自于不同的线程,因而这些指令间不存在“指令间依赖性问题”。2007-6-6公开的专利CN1975663,题目《具有用于不同线程的非对称硬件多线 程支持的装置》,专利技术人戴维· A ·克拉。该专利提供了一种用于特定类线程的非对称硬 件支持。优选地,该特定类线程是高优先级的I/O绑定线程。在第一个方面中,多线程处理 器包括用于支持N个线程的并发执行的N组寄存器。至少一个寄存器组专门用于特定类的 线程,并且不能为其它线程所使用,即使在闲置时也是如此。在第二方面中,特定类的线程 仅可填充超高速缓冲器存储器的有限的部分,以便减少否则可能出现的超高速缓冲器的刷 新。2005-12-14公开的专利CN1707694,题目《用于多线程流水线总线系统的存储 控制器》,专利技术人徐允范等。该专利公开了一种用于多线程流水线总线系统的存储控制器, 在多线程流水线系统的存储控制方法中,从主机顺序接收存储单元中待访问的多排的地 址。对于该多排中的每一排,判定当读/写命令输出到存储单元时对应于该排的地址是否 从主机输入。当该判定结果表明对应于该排的地址已输入时,向该存储单元输出包括公开 页信息和自动预充电信息中任一种在内的读/写命令。1999-10-20公开的专利CN1232219,题目《流水线型多处理器系统》,专利技术人小 池庸夫。该专利公开了一种流水线型多处理器系统,包括一组处理器单元,一组缓冲器及调 试单元。该处理器单元用于流水线处理数据;该缓冲器保持输入数据和每个处理器单元的 处理结果;缓冲器和处理器单元在数据输入和输出之间依次级联,调试单元用于可选择地 在外部输出每个处理器单元的处理结果,以在调试时进行监控。
技术实现思路
本专利技术的目的是为软件多线程程序的执行设计一种用于微处理器的硬件多线程 控制方法及相应的硬件多线程控制装置。一种用于微处理器的硬件多线程控制方法,其特征在于该方法包括以下步骤1)多线程取指步骤,用于各个线程的指令读取,各个线程的指令地址产生。具体包 括多线程指令地址控制、多线程指令地址缓存、多线程取指。a)多线程指令地址控制,用于产生各个线程的指令地址,当某个线程阻塞时,仅阻 塞该线程指令地址,其它线程指令地址正常更新;b)多线程指令地址缓存,用于存储η个线程的指令地址;c)多线程取指,用于将取指逻辑对称划分成η级流水,取出η个硬件线程所对应的 软件线程指令,当某个线程阻塞时,仅阻塞该线程取指,其它线程取指正常运行。2)多线程译码步骤,用于对各个硬件线程的指令进行译码,准备好多线程执行步 骤所需要的寄存器数据。具体包括多线程译码、多线程寄存器操作数准备、译码部件数据旁 路控制a)多线程译码,用于将译码逻辑对称划分成η级流水,完成多线程初始化专用指令译码、常规指令译码。当某个线程阻塞时,仅阻塞该线程指令译码,其它线程指令译码正 常运行。所述的多线程初始化专用指令包括用于标识该指令的操作码域,用于操作目的操 作数的操作数域,用于操作源操作数的操作数域;b)多线程寄存器操作数准备,用于产生待读取寄存器地址,并从η个寄存器组中 读取指令所需操作数;c)译码部件数据旁路控制,用于将数据旁路的数据提供给指令译码的某个流水阶 段;3)多线程执行步骤,用于执行各个线程指令。具体包括多线程初始化专用指令执 行、线程号缓存、执行部件数据旁路控制、多线程常规指令执行a)多线程初始化专用指令执行,用于产生新硬件线程号,新硬件线程号对应于该 硬件线程所执行的软件线程;b)线程号缓存,用于将所述多线程初始化专用指令执行产生的新硬件线程号缓 存,使得产生的某新硬件线程号在线程号寄存器序列中的位置与该硬件线程在指令地址寄 存器序列、取指部件多线程寄存器本文档来自技高网
...

【技术保护点】
一种用于微处理器的硬件多线程控制方法,其特征在于包括以下步骤:1)多线程取指步骤(1001),用于各个线程的指令读取,各个线程的指令地址产生;2)多线程译码步骤(1002),用于对各个硬件线程的指令进行译码,准备好多线程执行步骤(1003)所需要的寄存器数据;3)多线程执行步骤(1003),用于执行各个线程指令;4)多线程访存步骤(1004),用于将访存逻辑(105)对称划分成n级流水,各个线程的执行结果写入到存储器或者从存储器读入线程需要的数据,当某个线程阻塞时,仅阻塞该线程数据访存,其它线程数据访存正常运行;5)多线程写回步骤(1005),用于各个线程的执行结果写回到寄存器组。

【技术特征摘要】
一种用于微处理器的硬件多线程控制方法,其特征在于包括以下步骤1)多线程取指步骤(1001),用于各个线程的指令读取,各个线程的指令地址产生;2)多线程译码步骤(1002),用于对各个硬件线程的指令进行译码,准备好多线程执行步骤(1003)所需要的寄存器数据;3)多线程执行步骤(1003),用于执行各个线程指令;4)多线程访存步骤(1004),用于将访存逻辑(105)对称划分成n级流水,各个线程的执行结果写入到存储器或者从存储器读入线程需要的数据,当某个线程阻塞时,仅阻塞该线程数据访存,其它线程数据访存正常运行;5)多线程写回步骤(1005),用于各个线程的执行结果写回到寄存器组。2.如权利要求1所述的硬件多线程控制方法,其特征在于多线程取指步骤(1001)包括 多线程指令地址控制、多线程指令地址缓存、多线程取指;1)多线程指令地址控制,用于产生各个线程的指令地址,当某个线程阻塞时,仅阻塞该 线程指令地址更新,其它线程指令地址正常更新;2)多线程指令地址缓存,用于存储η个线程的指令地址;3)多线程取指,用于将取指逻辑(101)对称划分成η级流水,取出η个硬件线程所对应 的软件线程指令。3.如权利要求1所述的硬件多线程控制方法,其特征在于多线程译码步骤(1002)包括 多线程译码、多线程寄存器操作数准备、译码部件数据旁路控制;1)多线程译码,用于将译码逻辑(102)对称划分成η级流水,完成多线程初始化专用指 令译码、常规指令译码,当某个线程阻塞时,仅阻塞该线程指令译码,其它线程指令译码正 常运行;所述的多线程初始化专用指令包括操作码域(901),用于标识该指令,操作数域 (902),用于操作目的操作数,操作数域(903),用于操作源操作数;2)多线程寄存器操作数准备,用于从η个寄存器组中选择对应线程的寄存器组,并读 取指令所需操作数;3)译码部件数据旁路控制,用于将数据旁路的数据提供给指令译码的某个流水阶段;4.如权利要求1所述的硬件多线程控制方法,其特征在于多线程执行步骤(1003)包括 多线程初始化专用指令执行、线程号缓存、执行部件数据旁路控制、多线程常规指令执行;1)多线程初始化专用指令执行,用于产生新硬件线程号,新硬件线程号对应于该硬件 线程所执行的软件线程;2)线程号缓存,用于将所述多线程初始化专用指令执行产生的新硬件线程号缓存,使 得产生的某新硬件线程号在线程号寄存器序列(502)中的位置与该硬件线程在地址指针 寄存器序列(302)、取指部件多线程寄存器序列(303)、译码部件多线程寄存器序列(401)、 执行部件多线程寄存器序列(503)、访存部件多线程寄存器序列(601)、写回部件多线程寄 存器序列(701)中的位置一致;3)执行部件数据旁路控制,用于将数据旁路的数据提供给指令执行的某流水阶段;4)多线程常规指令执行,用于将执行逻辑(103)对称划分成η级流水,完成η个硬件线 程的常规指令执行,当某个线程阻塞时,仅阻塞该线程指令执行,其它线程指令执行正常运 行。5.如权利要求1所述的硬件多线程控制方法,其特征在于多线程写回步骤(1005)将写 回逻辑(105)对称划分成η级流水,当某个线程阻塞时,仅阻塞该线程数据写回,其它线程 数据写回正常运行,多线程写回步骤(1005)包括多线程写回数据控制、多线程写回寄存器 地址控制;1)多线程写回数据控制,用于待写回寄存器数据的准备和输出;2)多线程写回寄存器地址控制,用于待写回寄存器地址的准备和输出。6.一种用于微处理器的硬件多线程控制装置,该装置通过采用流水线技术,支持η个 硬件线程并行执行;其特征在于,装置包括硬件多线程取指器件(201)、硬件多线程译码器 件(202)、硬件多线程执行器件(203)、硬件多线程访存器件(204)、硬件多线程写回器件 (205)、硬件多线程寄存器组(206)、多线程控制器件(207);硬件多线程取指器件(201),用于完成对η个硬件线程的取值操作,将指令输出到硬件 多线程译码器件(202),根据多线程控制器件(207)输出的取指控制信号完成η个硬件线程 下一条指令地址的更新操作,实现指令地址的存储;硬件多线程译码器件(202),用于接收来自硬件多线程取指器件(201)的η个线程的指 令、来自多线程控制器件(207)的译码控制信号,完成η个硬件线程的译码操作,将待操作 的操作控制信息和数据信息输出给硬件多线程执行器件(203);硬件多线程执行器件(203),用于接收来自硬件多线程译码器件(202)的操作控制信 息和数据信息、来自多线程控制器件(207)的执行控制信号,完成η个线程的指令执行,将 执行结果的数据信息输出给硬件多线程访存器件(204);硬件多线程访存器件(204),用于完成η个硬件线程的存储器访问操作;所述硬件多线 程访存器件(204)包括访存部件多线程寄存器序列(601),用于暂存访存逻辑η级流水的中 间结果,每级寄存器M_DFF 1 M_DFF η对应一个硬件线程的部分访存逻辑Ml Mn的输 出,其中访存逻辑Ml的输入为硬件多线程执行器件(203)的输出和多线程控制器件(207) 产生的访存控制信号,寄存M_DFF η的输出作为硬件多线程访存器件(204)的输出;硬件多线程写回器件(205),用于将待写回的数据信息和当前待写回的寄存器地址输 出给硬件多线程...

【专利技术属性】
技术研发人员:齐悦王磊王惠娟师立宁王沁
申请(专利权)人:北京科技大学
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1