一种基于二叉树的大窗口访存流量调度缓冲结构及方法技术

技术编号:23099033 阅读:19 留言:0更新日期:2020-01-14 20:35
本发明专利技术涉及计算机体系结构与处理器微结构技术领域,具体为一种基于二叉树的大窗口访存流量调度缓冲结构及方法。一种基于二叉树的大窗口访存流量调度缓冲结构,包括存储条目,用于记录访存请求的信息;空条目队列,用于以队列的形式挂载存储条目;调度二叉树,用于以二叉树的形式组织存储条目。访存请求的信息包括访存请求信息、条目的左子指针、条目的右子指针。本申请在访存请求到达缓冲时,即将其组织成二叉树结构,在发射时只需要选择二叉树的根节点即可,能够在面对大量访存请求时,实现大规模的访存请求调度,挖掘访存序列的局部性,提高访存带宽,缓解访存墙问题。

【技术实现步骤摘要】
一种基于二叉树的大窗口访存流量调度缓冲结构及方法
本专利技术涉及计算机体系结构与处理器微结构
,具体为一种基于二叉树的大窗口访存流量调度缓冲结构及方法。
技术介绍
随着处理器制造工艺的不断进步及实际应用需要,众核结构已成为当前高性能微处理器的发展趋势,众核处理器系统的访存带宽难以匹配计算性能的“存储墙”问题是当今计算机体系结构中研究的热点问题。为了提升实际访存带宽,需要充分挖掘访存序列中的访存局部性。访存调度缓冲,是一种挖掘访存序列局部性的有效结构。在众核处理器中,访存序列众多,这就需要大规模的访存调度缓冲。传统的访存调度缓冲的工作原理,是根据上次发射的访存请求地址从缓冲请求中选择下一个可以发射的访存请求。这种“在发射时选择”的结构,不利于大规模访存调度缓冲的实现。传统上,访存调度的窗口尺寸为16条目,最大不超过32条目.对于众核处理器而言,由于处理核心众多,所要求的调度窗口尺寸远大于32,通过传统技术实现较大深度的调度缓冲开销巨大,延迟很长。
技术实现思路
本专利技术针对现有技术存在的问题,提出了一种基于二叉树的大窗口访存流量调度缓冲结构及方法。本专利技术解决其技术问题所采用的技术方案是:一种基于二叉树的大窗口访存流量调度缓冲结构,包括存储条目,用于记录访存请求的信息;空条目队列,用于以队列的形式挂载存储条目;调度二叉树,用于以二叉树的形式组织存储条目。作为优选,所述访存请求的信息包括访存请求信息、条目的左子指针、条目的右子指针。r>一种基于二叉树的大窗口访存流量调度方法,包括1)当有新的访存请求到达时,从空条目队列中取出一个空的存储条目,记录访存请求的访存请求信息;2)根据访存请求信息查找调度二叉树,并将新的访存请求挂载到调度二叉树上;3)选择调度二叉树的新根节点进行发射;4)将新的根节点挂载至1)中对应的存储条目。作为优选,2)具体为,如果调度二叉树已经存在与访存请求信息相同的节点,那么将新的访存请求挂载到该节点的左子指针;否则,将新的访存请求挂载到二叉树的最右子节点的右子指针上。作为优选,3)具体为,如果调度二叉树的根节点的左子指针不为空,则将该左子指针作为调度二叉树的新根节点,原根节点的右子指针挂载到新根节点的右子指针上;否则,将原根节点的右子指针作为二叉树的新根节点。本专利技术的有益效果是,本申请在访存请求到达缓冲时,即将其组织成二叉树结构,在发射时只需要选择二叉树的根节点即可,能够在面对大量访存请求时,实现大规模的访存请求调度,挖掘访存序列的局部性,提高访存带宽,缓解访存墙问题。附图说明图1为本申请空条目队列的结构示意图;图2为本申请调度二叉树的结构示意图。具体实施方式下面结合附图并通过具体实施方式来进一步说明本专利技术的技术方案。如图1、图2所示,一种基于二叉树的大窗口访存流量调度缓冲结构,包括存储条目,用于记录访存请求的信息。访存请求的信息包括访存请求信息、条目的左子指针、条目的右子指针。空条目队列,用于以队列的形式挂载存储条目。调度二叉树,用于以二叉树的形式组织存储条目。一种基于二叉树的大窗口访存流量调度方法,包括1)当有新的访存请求到达时,从空条目队列中取出一个空的存储条目,记录访存请求的访存请求信息。2)根据访存请求信息查找调度二叉树,并将新的访存请求挂载到调度二叉树上。具体为,如果调度二叉树已经存在与访存请求信息相同的节点,那么将新的访存请求挂载到该节点的左子指针;否则,将新的访存请求挂载到二叉树的最右子节点的右子指针上。3)选择调度二叉树的新根节点进行发射。具体为,如果调度二叉树的根节点的左子指针不为空,则将该左子指针作为调度二叉树的新根节点,原根节点的右子指针挂载到新根节点的右子指针上;否则,将原根节点的右子指针作为二叉树的新根节点。4)将新的根节点挂载至1)中对应的存储条目。首先,缓冲结构的每个存储条目,包括三个信息:访存请求信息、条目的左子指针、条目的右子指针。这些存储条目被组织成两个结构:空条目队列和调度二叉树。初始状态时,所有空的存储条目都在空条目队列中,调度二叉树为空。其次,当有新的访存请求到达时,从空条目队列中取出一个存储条目,并填写该存储条目的访存请求信息。同时,根据访存请求信息查找调度二叉树,如果调度二叉树中已经存在与访存请求信息相同的节点,那么将新的访存请求挂载到该节点的左子指针;如果调度二叉树中不存在和访存请求信息相同的节点,那么将新的访存请求挂载到调度二叉树的最右子节点的右子指针上。第三,当调度二叉树不为空时,选择二叉树的根节点发射。此时:(1)如果根节点的左子指针不为空,那么将该左子指针作为二叉树的新根节点,原根节点的右子指针挂载到新根节点的右子指针上。(2)如果根节点的左子指针为空,那么该根节点的右子指针作为二叉树的新根节点。最后,将发射之后的新根节点挂载到空条目队列的对应存储条目上。本申请在访存请求到达缓冲时,即将其组织成二叉树结构,在发射时只需要选择二叉树的根节点即可,能够在面对大量访存请求时,实现大规模的访存请求调度,挖掘访存序列的局部性,提高访存带宽,缓解访存墙问题。本申请采用二叉树链表的管理方式,可以实现窗口尺寸不少于512条目的调度。上面所述的实施例仅是对本专利技术的优选实施方式进行描述,并非对本专利技术的构思和范围进行限定。在不脱离本专利技术设计构思的前提下,本领域普通人员对本专利技术的技术方案做出的各种变型和改进,均应落入到本专利技术的保护范围,本专利技术请求保护的
技术实现思路
,已经全部记载在权利要求书中。本文档来自技高网...

【技术保护点】
1.一种基于二叉树的大窗口访存流量调度缓冲结构,其特征在于:包括/n存储条目,用于记录访存请求的信息;/n空条目队列,用于以队列的形式挂载存储条目;/n调度二叉树,用于以二叉树的形式组织存储条目。/n

【技术特征摘要】
1.一种基于二叉树的大窗口访存流量调度缓冲结构,其特征在于:包括
存储条目,用于记录访存请求的信息;
空条目队列,用于以队列的形式挂载存储条目;
调度二叉树,用于以二叉树的形式组织存储条目。


2.根据权利要求1所述的一种基于二叉树的大窗口访存流量调度缓冲结构,其特征在于:所述访存请求的信息包括访存请求信息、条目的左子指针、条目的右子指针。


3.一种基于二叉树的大窗口访存流量调度方法,其特征在于:包括
1)当有新的访存请求到达时,从空条目队列中取出一个空的存储条目,记录访存请求的访存请求信息;
2)根据访存请求信息查找调度二叉树,并将新的访存请求挂载到调度二叉树上;...

【专利技术属性】
技术研发人员:郑方吕晖刘骁石嵩谭弘兵周玉瀚张昆
申请(专利权)人:无锡江南计算技术研究所
类型:发明
国别省市:江苏;32

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

1