当前位置: 首页 > 专利查询>清华大学专利>正文

支持同时多线程的超长指令字处理器结构制造技术

技术编号:5271630 阅读:241 留言:0更新日期:2012-04-11 18:40
本发明专利技术提出一种支持同时多线程的超长指令字处理器结构,包括:相互并行的至少两个指令处理流水线结构,其中,每个所述指令处理流水线结构包括:指令获取模块,用于获取指令信息;指令分发模块,用于接收指令获取模块获取的指令信息并进行分配;指令执行模块,包括指令执行单元A、D、M和F,其中,指令执行单元A、D、M和F用于执行指令信息;通用寄存器堆用于存储相应执行单元A、M和D的执行结果;浮点寄存器堆,用于存储相应执行单元D和F的执行结果;和控制寄存器堆。通过该结构能够更充分的利用处理器的资源,增强了线程的访问效率,提高处理器的处理速度。

【技术实现步骤摘要】

本专利技术涉及计算机、电子设备
,特别涉及一种支持同时多线程的超长指 令字处理器结构。
技术介绍
微处理器是一个集成在一片上的半导体集成电路,包括对一系列算术逻辑操作的 控制和执行。现代处理器设计的优化通常的途径有如下三种1、提高处理器主频,缩短每条指令执行时间。2、优化编译器,采用效率更高的指令。3、指令级并行技术(ILP)。处理器的更高性能由于不能从传统结构中得到解决,因此提出了各种提高性能的 策略。其中提高时钟频率和编译器优化的效果是有限的,最好的方法是提高并行性,当前高 性能处理器结构的主要特点就是采用了各种并行处理技术。指令级并行(ILP)就是通过探 究程序的并行性,在每个指令周期中并行执行指令来提高每条指令的平均执行时间。从指令级并行的方向出发,产生了多发射处理器的概念。多发射处理器在每个周 期可以发射多条可以并行执行的指令,分发到各个执行单元上同时执行。多发射处理器有 两种超标量和超长指令字(VLIW)。超标量处理器利用硬件动态发现并行性,VLIW则利用 编译器静态地开发并行性。VLIW微处理器以其硬件控制简单和具有开发指令级并行性的巨大潜力而著称。 VLIW处理器为了保证指令能够并行执行,通常具有多个功能单元。例如,一个8发射的VLIW 处理器通常具有8个功能单元来保证并行指令的执行。但是,单个程序有限的指令级并行 度会导致处理器功能单元利用率不高的情况,进一步加大发射宽度只会加重这种情况。处 理器资源的浪费分为水平浪费和垂直浪费。当多发射处理器不能发现足够的指令来填满发 射槽时就产生了水平浪费(Horizontal Waste)。此外当资源冲突造成多发射处理器在接下 来的时钟周期中不能发射指令,则造成了垂直浪费(Vertical Waste)。实际上在很多工作负载中都存在着不同程度的线程级的并行性。因此,研究人员 提出利用线程级并行(TLP)的方式来提高处理器资源利用率。现有的支持多线程的处理器有三种基本形式重叠式多线程(interleaved multithreading)处理器、单片多处理器(CMP)、同时多线程(SMT)。其中重叠式多线程处理 器每个周期只能发射来自一个线程的指令。多个线程的指令流交替占据指令发射槽。重叠 式多线程按照线程调度方式还可以分为细粒度多线程(fine-grained multithreading)和 粗粒度(coarse-grained multithreading)多线程。细粒度多线程在每个时钟周期都进行 上下文切换,粗粒度多线程则只在线程遇到长延时操作时才进行线程切换。重叠式多线程 只能消除处理器资源的垂直浪费。而CMP和SMT都可以使不同线程的指令同时运行,同时 减小资源的水平浪费和垂直浪费。CMP让不同的处理器核运行不同的线程从而实现同时多 线程。而SMT允许在一个周期内发射来自不同线程的指令,从而填满指令发射槽,提高资源4利用率。与SMT相比,CMP方式在维护Cache —致性上需要有额外开销。为了提高指令并行度,现有的VLIW处理器通常具有较大的发射宽度。但是,由于 程序的并行性有限,以及编译器并行调度的效率有限,造成指令发射槽有较大的水平浪费。 例如,一个8发射的VLIW处理器,在编译器效率有限的情况下,每周期能够实际并行执行的 指令数通常小于发射宽度的一半,与4发射处理器的效果基本相同。在运行多线程程序时, 由于水平浪费无法解决,仍然无法充分利用处理器资源。
技术实现思路
本专利技术的目的旨在至少解决上述的技术缺陷之一。为此,本专利技术的一个目的在于提出一种支持同时多线程的超长指令字处理器结 构,该结构通过对发射宽度较大的单个VLIW丰富的功能单元重新分配,且采用多线程共享 数据缓存的方式,能够最大程度的解决处理器资源浪费的问题。为达到上述目的,本专利技术提出了一种支持同时多线程的超长指令字处理器结构, 包括相互并行的至少两个指令处理流水线结构,其中,每个所述指令处理流水线结构包 括指令获取模块,所述指令获取模块用于获取指令信息;与所述指令获取模块对应的指 令分发模块,所述指令分发模块用于接收所述指令获取模块获取的指令信息并进行分配; 与所述指令分发模块对应的指令执行模块,所述指令执行模块包括多个指令执行单元,其 中,所述指令执行单元为指令执行单元A、指令执行单元D、指令执行单元M和指令执行单元 F,其中,所述指令执行单元A、指令执行单元D、指令单元M和指令执行单元F用于执行所述 指令分发模块分发的相应指令信息,以得到执行结果;通用寄存器堆,所述通用寄存器堆用 于存储相应执行单元A、执行单元M和执行单元D的执行结果;浮点寄存器堆,所述浮点寄 存器堆用于存储相应执行单元D和执行单元F的执行结果;和控制寄存器堆,所述控制寄存 器堆用于存储指令的控制信号,其中,所述控制信号控制指令的执行方式。在本专利技术的一个实施例中,所述指令获取模块包括第一指令获取单元、第二指令 获取单元、第三指令获取单元和第四指令获取单元,所述指令分发模块包括第一指令分发 单元、第二指令分发单元、第三指令分发单元和第四指令分发单元,其中,所述第一指令获 取单元、第二指令获取单元、第三指令获取单元和第四指令获取单元在每个时钟周期分别 对应于所述第一指令分发单元、第二指令分发单元、第三指令分发单元和第四指令分发单 元中的一个指令分发单元,以在当前时钟周期为对应的第一指令分发单元、第二指令分发 单元、第三指令分发单元和第四指令分发单元提供指令信息。在本专利技术的一个实施例中,所述第一指令分发单元、第二指令分发单元、第三指令 分发单元和第四指令分发单元的指令信息依次组成指令流序列,且所述指令流序列中的每 个指令信息包括执行单元选择位,其中,所述执行单元选择位用于判断所述指令流序列中 每个指令信息选择的指令执行单元。在本专利技术的一个实施例中,根据依次选择所述指令执行单元A、指令执行单元D、 指令执行单元M和指令执行单元F的顺序,在一个执行周期中,在所述指令流序列中按次序 选择最多的指令信息作为分发的并行指令同时分发给对应的所述指令执行单元。在本专利技术的一个实施例中,在下一个执行周期中,在所述指令流序列的剩余指令 信息中按次序选择最多的指令信息作为分发的并行指令同时分发给对应的所述指令执行单元。在本专利技术的一个实施例中,当所述指令流序列中没有剩余的指令信息,所述指令 流序列的指令信息分发结束。在本专利技术的一个实施例中,所述指令执行单元A用于完成算术逻辑运算以及移位 运算;所述指令执行单元M用于完成乘法运算以及部分算术逻辑操作和位操作;所述指令 执行单元D用于实现存储器的存取以及实现程序的跳转,还用于完成部分算术逻辑运算; 所述指令执行单元F用于完成浮点及向量运算,还用于部分逻辑操作和位操作。在本专利技术的一个实施例中,所述相互并行的指令处理流水线结构之间共享数据缓 存。在本专利技术的一个实施例中,所述通用寄存器堆与所述浮点寄存器堆通过所述执行 单元D进行数据传输。在本专利技术的一个实施例中,所述通用寄存器为64位通用寄存器、所述浮点寄存器 为128位浮点寄存器。通过本专利技术实施例提供的支持同时多线程的超长指令字处理器结构,能够更充分 的利用处理器的资源,增强了线程的访问效率,从而提高处理器的执行速度。本专利技术本文档来自技高网
...

【技术保护点】
一种支持同时多线程的超长指令字处理器结构,其特征在于,包括:相互并行的至少两个指令处理流水线结构,其中,每个所述指令处理流水线结构包括:指令获取模块,所述指令获取模块用于获取指令信息;与所述指令获取模块对应的指令分发模块,所述指令分发模块用于接收所述指令获取模块获取的指令信息并进行分配;与所述指令分发模块对应的指令执行模块,所述指令执行模块包括多个指令执行单元,其中,所述指令执行单元为指令执行单元A、指令执行单元D、指令执行单元M和指令执行单元F,其中,所述指令执行单元A、指令执行单元D、指令单元M和指令执行单元F用于执行所述指令分发模块分发的相应指令信息,以得到执行结果;通用寄存器堆,所述通用寄存器堆用于存储相应执行单元A、执行单元M和执行单元D的执行结果;浮点寄存器堆,所述浮点寄存器堆用于存储相应执行单元D和执行单元F的执行结果;和控制寄存器堆,所述控制寄存器堆用于存储指令的控制信号,其中,所述控制信号控制指令的执行方式。

【技术特征摘要】

【专利技术属性】
技术研发人员:何虎白无
申请(专利权)人:清华大学
类型:发明
国别省市:11[中国|北京]

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

1