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

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

Info

Publication number
CN110688209B
CN110688209B CN201910852487.9A CN201910852487A CN110688209B CN 110688209 B CN110688209 B CN 110688209B CN 201910852487 A CN201910852487 A CN 201910852487A CN 110688209 B CN110688209 B CN 110688209B
Authority
CN
China
Prior art keywords
binary tree
access request
memory access
scheduling
entry
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910852487.9A
Other languages
English (en)
Other versions
CN110688209A (zh
Inventor
郑方
吕晖
刘骁
石嵩
谭弘兵
周玉瀚
张昆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Jiangnan Computing Technology Institute
Original Assignee
Wuxi Jiangnan Computing Technology Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuxi Jiangnan Computing Technology Institute filed Critical Wuxi Jiangnan Computing Technology Institute
Priority to CN201910852487.9A priority Critical patent/CN110688209B/zh
Publication of CN110688209A publication Critical patent/CN110688209A/zh
Application granted granted Critical
Publication of CN110688209B publication Critical patent/CN110688209B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

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

Claims (1)

1.一种基于二叉树的大窗口访存流量调度缓冲方法,其特征在于:包括
1)当有新的访存请求到达时,从空条目队列中取出一个空的存储条目,记录访存请求的访存请求信息;
2)根据访存请求信息查找调度二叉树,并将新的访存请求挂载到调度二叉树上;具体为,如果调度二叉树已经存在与访存请求信息相同的节点,那么将新的访存请求挂载到该节点的左子指针;否则,将新的访存请求挂载到二叉树的最右子节点的右子指针上;
3)选择调度二叉树的新根节点进行发射;具体为,如果调度二叉树的根节点的左子指针不为空,则将该左子指针作为调度二叉树的新根节点,原根节点的右子指针挂载到新根节点的右子指针上;否则,将原根节点的右子指针作为二叉树的新根节点;
4)将新的根节点挂载至1)中对应的存储条目;
其中,所述存储条目用于记录访存请求的信息;所述访存请求的信息包括访存请求信息、条目的左子指针、条目的右子指针;
所述空条目队列用于以队列的形式挂载存储条目;
所述调度二叉树,用于以二叉树的形式组织存储条目。
CN201910852487.9A 2019-09-10 2019-09-10 一种基于二叉树的大窗口访存流量调度缓冲结构及方法 Active CN110688209B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910852487.9A CN110688209B (zh) 2019-09-10 2019-09-10 一种基于二叉树的大窗口访存流量调度缓冲结构及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910852487.9A CN110688209B (zh) 2019-09-10 2019-09-10 一种基于二叉树的大窗口访存流量调度缓冲结构及方法

Publications (2)

Publication Number Publication Date
CN110688209A CN110688209A (zh) 2020-01-14
CN110688209B true CN110688209B (zh) 2022-09-13

Family

ID=69107944

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910852487.9A Active CN110688209B (zh) 2019-09-10 2019-09-10 一种基于二叉树的大窗口访存流量调度缓冲结构及方法

Country Status (1)

Country Link
CN (1) CN110688209B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116366503B (zh) * 2023-06-02 2023-08-08 腾讯科技(深圳)有限公司 一种数据处理方法和相关装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101625887A (zh) * 2009-08-14 2010-01-13 西北工业大学 访存请求调度装置以及用该装置进行访存请求调度的方法
CN104144134A (zh) * 2014-08-20 2014-11-12 杭州华三通信技术有限公司 一种队列调度方法及装置
CN107729150A (zh) * 2017-10-17 2018-02-23 山东衡昊信息技术有限公司 一种异构集群安监设备最小能耗节点的寻址方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8566841B2 (en) * 2010-11-10 2013-10-22 International Business Machines Corporation Processing communications events in parallel active messaging interface by awakening thread from wait state

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101625887A (zh) * 2009-08-14 2010-01-13 西北工业大学 访存请求调度装置以及用该装置进行访存请求调度的方法
CN104144134A (zh) * 2014-08-20 2014-11-12 杭州华三通信技术有限公司 一种队列调度方法及装置
CN107729150A (zh) * 2017-10-17 2018-02-23 山东衡昊信息技术有限公司 一种异构集群安监设备最小能耗节点的寻址方法

Also Published As

Publication number Publication date
CN110688209A (zh) 2020-01-14

Similar Documents

Publication Publication Date Title
CN110741356B (zh) 多处理器系统中的中继一致存储器管理
CN108280522B (zh) 一种插件式分布式机器学习计算框架及其数据处理方法
CN111459418B (zh) 一种基于rdma的键值存储系统传输方法
US8381230B2 (en) Message passing with queues and channels
Ji et al. Big data processing: Big challenges and opportunities
US7761666B2 (en) Temporally relevant data placement
CN104731569B (zh) 一种数据处理方法及相关设备
US20160132541A1 (en) Efficient implementations for mapreduce systems
US8229916B2 (en) Method for massively parallel multi-core text indexing
CN104239134B (zh) 一种众核系统的任务管理方法和装置
CN103678571B (zh) 应用于单台多核处理器主机的多线程网络爬虫执行方法
CN102629941A (zh) 云计算系统中虚拟机镜像缓存的方法
US11586388B2 (en) Method, device, and computer program product for managing storage system
CN103176754A (zh) 一种海量小文件读取存储方法
CN106570113B (zh) 一种海量矢量切片数据云存储方法及系统
CN103699656A (zh) 一种基于GPU的面向海量多媒体数据的MapReduce平台
CN104392377A (zh) 一种云交易系统
CN101604261A (zh) 超级计算机的任务调度方法
CN110334145A (zh) 数据处理的方法和装置
CN101236564A (zh) 一种海量数据高性能读取显示方法
Nicolae et al. Towards memory-optimized data shuffling patterns for big data analytics
CN110688209B (zh) 一种基于二叉树的大窗口访存流量调度缓冲结构及方法
US11061676B2 (en) Scatter gather using key-value store
CN104571946B (zh) 一种支持逻辑电路快速查询的存储器装置及其访问方法
CN113138859A (zh) 一种基于共享内存池的通用数据存储方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant