【技术实现步骤摘要】
本专利技术涉及微 处理器体系结构领域,特别涉及硬件多线程的控制方法及其装置。背景知识为了进一步提高微处理器性能,已提出多种新颖的体系结构,如多核、多线程、流 处理、PIM、可重构、多态等。这些新的体系结构从不同角度对微处理器发展中的问题提出了 解决方法。受到软件程序特性影响和硬件工艺的物理限制,未来体系结构的发展已经不是 仅仅通过提高主频就可以获得系统性能的大幅提升。体系结构技术发展的趋势是明显的, 多线程和多核,成为两个关键技术方向,在各个领域,含有多线程或多核特征的处理器层出 不穷。流水线技术是RISC处理器区别于CISC处理器的重要特征。采用深度流水技术,在 指令相关和指令跳转时会大大降低流水线的性能。本专利技术在RISC架构基础上,采用深度流 水技术,实现多硬件线程执行,有效的避免指令相关带来的性能减低,并通过多线程提高微 处理器的性能。2008-7-16公开的专利CN101221493A,题目《并行处理器中的多线程执行》,发 明人D ·伯恩斯坦因等。该专利技术公开了一种并行的硬件多线程处理器。该处理器包含一个 谐调系统功能的通用处理器和支持多个硬件线程和多个微引擎。该处理器还包含具有第1 存储控制器和第2存储控制器的存储器控制系统,第1存储控制器根据存储器访问是指向 偶数存储组还是指向奇数存储组,将存储器访问加以分类,第2存储控制器则根据存储器 访问是读访问还是写访问,对存储器访问进行优化。2007-8-22公开的专利CN101021801,题目《流水线多进程之间基于消息队列的 海量数据传输方法》,专利技术人薛庆童等。该专利公开了一种流水线 ...
【技术保护点】
一种用于微处理器的硬件多线程控制方法,其特征在于包括以下步骤: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[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。