The present disclosure relates to a delayed buffer. A device includes a processing circuit for executing instructions of two or more threads for processing, a hardware register for storing context data of two or more threads at the same time, and a committing circuit for submitting the result of an executed instruction of a thread, wherein, for each thread, the committing circuit follows a procedure. The order of the thread is submitted in order. At least one delay buffer is provided to buffer at least one blocking instruction. The execution of the blocking instruction is completed by the processing circuit, but the execution of the earlier instruction of the same thread in the program sequence is not completed. This helps solve the problem of blocking between threads, thereby improving performance.
【技术实现步骤摘要】
延迟缓冲器背景
本技术涉及数据处理领域。
技术介绍
一些数据处理设备可以支持处理的两个或更多个线程的并发执行,其中硬件寄存器被提供以同时存储多个线程的上下文数据。这种方法可以被称为同时多线程(SMT),并且可以有助于提高使用硬件资源的效率并提高性能,因为如果一个线程停滞(stall),另一线程可以继续进行,而不会导致软件控制的上下文切换的线程切换延迟(其中,寄存器一次仅存储一个线程的上下文,因此中断将触发软件将旧线程的上下文数据存储到存储器中,并用新线程的上下文数据来代替它)。通过SMT,多个线程可以具有同时在流水线内运行的指令,并且每个线程的相应上下文数据组可以在硬件寄存器内同时被访问。
技术实现思路
至少一些示例提供了一种装置,该装置包括:处理电路,用于执行处理的多个线程的指令;硬件寄存器,用于同时存储多个线程的上下文数据;提交电路,用于提交多个线程的被执行的指令的结果,其中对于每个线程,提交电路被配置为按照程序顺序提交该线程的指令;以及至少一个延迟缓冲器,用于缓冲至少一个阻塞指令(blockedinstruction),针对阻塞指令的执行已由处理电路完成但在程序顺序中同一线程的更先前指令的执行未被完成。至少一些示例提供了一种装置,该装置包括:用于使用用于同时存储多个线程的上下文数据的硬件寄存器来执行处理的多个线程的指令的装置;用于提交多个线程的被执行的指令的结果的装置,其中,对于每个线程,用于提交的装置被配置为按照程序顺序提交该线程的指令;以及用于缓冲至少一个阻塞指令的装置,阻塞指令的执行被用于执行的装置完成但在程序顺序中同一线程的更先前指令的执行未被完 ...
【技术保护点】
1.一种装置,包括:处理电路,用于执行处理的多个线程的指令;硬件寄存器,用于同时存储所述多个线程的上下文数据;提交电路,用于提交所述多个线程的被执行的指令的结果,其中对于每个线程,所述提交电路被配置为按照程序顺序提交该线程的指令;以及至少一个延迟缓冲器,用于缓冲至少一个阻塞指令,针对所述阻塞指令的执行已被所述处理电路完成但在所述程序顺序中同一线程的更先前的指令的执行未被完成。
【技术特征摘要】
2017.03.06 US 15/450,4301.一种装置,包括:处理电路,用于执行处理的多个线程的指令;硬件寄存器,用于同时存储所述多个线程的上下文数据;提交电路,用于提交所述多个线程的被执行的指令的结果,其中对于每个线程,所述提交电路被配置为按照程序顺序提交该线程的指令;以及至少一个延迟缓冲器,用于缓冲至少一个阻塞指令,针对所述阻塞指令的执行已被所述处理电路完成但在所述程序顺序中同一线程的更先前的指令的执行未被完成。2.根据权利要求1所述的装置,其中,所述处理电路包括用于执行各类指令的多个功能单元;以及所述提交电路被配置为在所述多个功能单元和所述至少一个延迟缓冲器中待决的给定线程的指令之间选择在所述程序顺序中最早的指令来作为针对所述给定线程的要提交的下一个指令,并且在检测到所述下一个指令的执行被完成时提交所述下一个指令。3.根据权利要求1所述的装置,包括延迟缓冲器控制电路,用于控制阻塞指令到所述至少一个延迟缓冲器的分配。4.根据权利要求3所述的装置,其中,所述处理电路包括用于执行各类指令的多个功能单元;以及响应于在给定功能单元中检测到阻塞指令,所述延迟缓冲器控制电路被配置为将所述阻塞指令从所述给定功能单元传送到所述至少一个延迟缓冲器中的一个延迟缓冲器。5.根据权利要求3所述的装置,其中,所述延迟缓冲器控制电路被配置为按照所述程序顺序将给定线程的阻塞指令分配给所述至少一个延迟缓冲器。6.根据权利要求4所述的装置,其中,所述延迟缓冲器控制电路被配置为将在与最早执行的指令不同的功能单元中的给定线程的至少一个较早的指令未被完成时已完成执行的所述给定线程的所述最早执行的指令检测作为所述阻塞指令。7.根据权利要求3所述的装置,其中,在从给定线程向给定延迟缓冲器分配指令之后,所述延迟缓冲器控制电路被配置为阻止来自另一线程的指令被分配给所述给定延迟缓冲器,直到所述给定延迟缓冲器排空来自所述给定线程的指令。8.根据权利要求7所述的装置,其中,响应于所述给定延迟缓冲器变满,所述处理电路被配置为刷除在所述处理电路中待决的与所述给定线程相关联的一个或多个剩余指令。9.根据权利要求4所述的装置,其中,响应于检测到所述阻塞指令,所述延迟缓冲器控制电路被配置为将所述阻塞指令传送到所述至少一个延迟缓冲器中的一个延迟缓冲器,而不管所述阻塞指令已维持未提交达多少个周期。10.根据权利要求4所述的装置,其中,所...
【专利技术属性】
技术研发人员:约瑟·阿尔贝托·若昂,黄子强,亚历杭德罗·里科·卡罗,
申请(专利权)人:ARM有限公司,
类型:发明
国别省市:英国,GB
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。