用于数据流处理的流水线控制方法、装置、计算机设备、存储介质及程序产品与流程
本公开涉及数字电路、计算机,尤其涉及流水线控制、数据处理等领域,特别是涉及一种用于数据流处理的流水线控制方法、装置、计算机设备、计算机可读存储介质及计算机程序产品。
背景技术:
1、在数字电路与计算机领域,流水线技术被广泛用于提高数据处理吞吐率和系统运行效率。为保证流水线各级之间数据有序传递,通常采用有效信号与就绪信号配合的握手方式(即valid-ready握手机制)控制数据流动。上游在数据有效时发出有效信号,下游在能够接收时给出就绪信号;当下游不能接收时,就绪信号可阻止上游继续发送数据。该方式实现简单、接口规范,因而在处理器、向量计算、片上数据流调度等系统中得到普遍应用。然而,随着流水线级数增加、工作频率提高以及应用场景复杂化,流水线内部可能出现未被有效数据占用的空闲周期,即气泡。气泡会降低流水线利用率,并影响系统整体吞吐能力。
技术实现思路
1、本公开提供了一种用于数据流处理的流水线控制方法、装置、计算机设备、计算机可读存储介质及计算机程序产品。
2、根据本公开的一方面,提供了一种用于数据流处理的流水线控制方法,流水线包括多个流水线级,每个流水线级均具有各自的存储状态和就绪状态,存储状态用于指示流水线级在当前时钟周期是否存储有待处理数据,就绪状态用于指示流水线级在下一时钟周期是否能够接收待处理数据,该方法包括:针对除末端流水线级之外的每个前序流水线级,响应于前序流水线级的存储状态指示该前序流水线级未存储待处理数据,将该前序流水线级的就绪状态调整为在下一时钟周期能够接收待处理数据;响应于末端流水线级的就绪状态指示该末端流水线级能够接收待处理数据,将前序流水线级的就绪状态调整为在下一时钟周期能够接收待处理数据;响应于前序流水线级的存储状态指示该前序流水线级存储有待处理数据,且该前序流水线级的下游存在至少一个流水线级的存储状态指示未存储待处理数据,将该前序流水线级的就绪状态调整为在下一时钟周期能够接收待处理数据;针对除末端流水线级之外的任一前序流水线级,响应于前序流水线级的下一流水线级的就绪状态指示下一时钟周期能够接收待处理数据,控制前序流水线级在下一时钟周期向下一流水线级执行数据传递,数据传递包括将前序流水线级存储的待处理数据在下一时钟周期写入下一流水线级;响应于数据传递完成,更新多个流水线级中每个流水线级的存储状态。
3、在一些实施例中,方法还包括:针对除末端流水线级之外的每个前序流水线级,将前序流水线级的下游流水线级的存储状态按照从末级向首级的方向按组归约,得到前序流水线级的下游流水线级的下游存储状态归约结果,其中,下游存储状态归约结果用于指示前序流水线级的下游流水线级中是否存在至少一个流水线级的存储状态指示未存储待处理数据。
4、在一些实施例中,针对除末端流水线级之外的每个前序流水线级,将前序流水线级的下游流水线级的存储状态按照从末级向首级的方向按组归约,得到前序流水线级的下游流水线级的下游存储状态归约结果,包括:将前序流水线级的下游流水线级中相邻的预设数量的流水线级的存储状态划分为一组,对每一组内的存储状态进行第一逻辑与运算,生成第一局部归约结果;将相邻的相同预设数量的第一局部归约结果划分为新的一组,对新的一组内的第一局部归约结果进行第二逻辑与运算,生成第二局部归约结果;依此类推,直至前序流水线级的下游流水线级的存储状态全部被归约,得到前序流水线级的下游流水线级的下游存储状态归约结果。
5、在一些实施例中,流水线包括第一流水线段和第二流水线段,方法还包括:确定第一流水线段的末端流水线级的存储状态;确定第二流水线段的首端流水线级的就绪状态;响应于第一流水线段的末端流水线级的存储状态指示存储有待处理数据,且第二流水线段的首端流水线级的就绪状态指示下一时钟周期能够接收待处理数据,控制第一流水线段的末端流水线级在下一时钟周期向第二流水线段的首端流水线级执行数据传递。
6、在一些实施例中,第一流水线段包括多条第三流水线段,多条第三流水线段的数据分别根据各自的流水线级的存储状态和就绪状态独立执行数据传递,方法还包括:确定多条第三流水线段的全部末端流水线级的存储状态;确定第二流水线段的首端流水线级的就绪状态;响应于多条第三流水线段的全部末端流水线级的存储状态均指示存储有待处理数据,且第二流水线段的首端流水线级的就绪状态指示下一时钟周期能够接收待处理数据,控制多条第三流水线段的全部末端流水线级在下一时钟周期向第二流水线段的首端流水线级执行数据传递。
7、根据本公开的另一方面,提供了一种用于数据流处理的流水线控制装置,流水线包括多个流水线级,每个流水线级均具有各自的存储状态和就绪状态,存储状态用于指示流水线级在当前时钟周期是否存储有待处理数据,就绪状态用于指示流水线级在下一时钟周期是否能够接收待处理数据,该装置包括:就绪状态生成单元,被配置为针对除末端流水线级之外的每个前序流水线级,响应于前序流水线级的存储状态指示该前序流水线级未存储待处理数据,将该前序流水线级的就绪状态调整为在下一时钟周期能够接收待处理数据;响应于末端流水线级的就绪状态指示该末端流水线级能够接收待处理数据,将前序流水线级的就绪状态调整为在下一时钟周期能够接收待处理数据;响应于前序流水线级的存储状态指示该前序流水线级存储有待处理数据,且该前序流水线级的下游存在至少一个流水线级的存储状态指示未存储待处理数据,将该前序流水线级的就绪状态调整为在下一时钟周期能够接收待处理数据;数据传递控制单元,被配置为针对除末端流水线级之外的任一前序流水线级,响应于前序流水线级的下一流水线级的就绪状态指示下一时钟周期能够接收待处理数据,控制前序流水线级在下一时钟周期向下一流水线级执行数据传递,数据传递包括将前序流水线级存储的待处理数据在下一时钟周期写入下一流水线级。更新单元,被配置为响应于数据传递完成,更新多个流水线级中每个流水线级的存储状态。
8、在一些实施例中,装置还包括:树形归约单元,被配置为针对除末端流水线级之外的每个前序流水线级,将前序流水线级的下游流水线级的存储状态按照从末级向首级的方向按组归约,得到前序流水线级的下游流水线级的下游存储状态归约结果,其中,下游存储状态归约结果用于指示前序流水线级的下游流水线级中是否存在至少一个流水线级的存储状态指示未存储待处理数据。
9、根据本公开的另一方面,提供了一种计算机设备,包括:处理器;存储器,其上存储有计算机程序,计算机程序在被该处理器执行时,使该处理器执行本公开如上所提供的方法。
10、根据本公开的另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使处理器执行本公开如上所提供的方法。
11、根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,使处理器执行本公开如上所提供的方法。
12、根据本公开的一个或多个实施例,能够有效提升流水线硬件利用率;同时降低长流水线的时序开销,便于在现有valid-ready流水线系统中进行扩展与集成。
13、根据在下文中所描述的实施例,本公开的这些和其它方面将是清楚明白的,并且将参考在下文中所描述的实施例而被阐明。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com