CN110688209B - 一种基于二叉树的大窗口访存流量调度缓冲结构及方法 - Google Patents
一种基于二叉树的大窗口访存流量调度缓冲结构及方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)中对应的存储条目;
其中,所述存储条目用于记录访存请求的信息;所述访存请求的信息包括访存请求信息、条目的左子指针、条目的右子指针;
所述空条目队列用于以队列的形式挂载存储条目;
所述调度二叉树,用于以二叉树的形式组织存储条目。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116366503B (zh) * | 2023-06-02 | 2023-08-08 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和相关装置 |
Citations (3)
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)
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 |
-
2019
- 2019-09-10 CN CN201910852487.9A patent/CN110688209B/zh active Active
Patent Citations (3)
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 |