CN103345451B - 一种在多核处理器中缓冲数据的方法 - Google Patents

一种在多核处理器中缓冲数据的方法 Download PDF

Info

Publication number
CN103345451B
CN103345451B CN201310301037.3A CN201310301037A CN103345451B CN 103345451 B CN103345451 B CN 103345451B CN 201310301037 A CN201310301037 A CN 201310301037A CN 103345451 B CN103345451 B CN 103345451B
Authority
CN
China
Prior art keywords
buffer memory
memory
buffer
processor core
data
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
CN201310301037.3A
Other languages
English (en)
Other versions
CN103345451A (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.)
Sichuan qianhang Technology Co., Ltd
Original Assignee
SICHUAN JIUCHENG INFORMATION TECHNOLOGY Co Ltd
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 SICHUAN JIUCHENG INFORMATION TECHNOLOGY Co Ltd filed Critical SICHUAN JIUCHENG INFORMATION TECHNOLOGY Co Ltd
Priority to CN201310301037.3A priority Critical patent/CN103345451B/zh
Publication of CN103345451A publication Critical patent/CN103345451A/zh
Application granted granted Critical
Publication of CN103345451B publication Critical patent/CN103345451B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

提供了一种在多核处理器中缓冲数据的方法,包括:接收并发执行多个线程的指令;将所述多个线程中的每一个分别独立地分配给所述多个处理器核心,其中多个处理器核心中的每一个最多被分配一个线程;对于每一个被分配了线程的处理器核心,响应于执行线程期间的缓存请求,将待缓存数据存储到所耦合的专用缓冲存储器中;当不小于一阈值t的数量的专用缓冲存储器中都存储有同一缓存数据时,将同一缓存数据存储到通用缓冲存储器中。通过本发明提高了缓存存取和替换速度,克服了伪共享问题。

Description

一种在多核处理器中缓冲数据的方法
技术领域
本发明涉及数据存储领域,尤其涉及一种在多核处理器中缓冲数据的方法,进一步涉及一种在多核处理器中多级缓冲数据的方法。
背景技术
处理器和主存间的速度差距对多核处理器来说是个突出的矛盾,因此必须使用多级缓存缓存来缓解。目前有共享一级缓存的多核处理器、共享二级缓存的多核处理器以及共享主存的多核处理器。通常,多核处理器采用共享二级缓存的多核处理器结构,即每个处理器核心拥有私有的一级缓存,且所有处理器核心共享二级缓存。缓存自身的体系结构设计也直接关系到***整体性能。但是在多核处理器结构中,共享缓存或独有缓存孰优孰劣、需不需要在一块芯片上建立多级缓存,以及建立几级缓存等等,由于对整个芯片的尺寸、功耗、布局、性能以及运行效率等都有很大的影响,因而这些都是需要认真研究和探讨的问题。另一方面,多级缓存又引发一致性问题。采用何种缓存一致性模型和机制都将对多核处理器整体性能产生重要影响。在传统多处理器***结构中广泛采用的缓存一致性模型有:顺序一致性模型、弱一致性模型、释放一致性模型等。与之相关的缓存一致性机制主要有总线的侦听协议和基于目录的目录协议。目前的多核处理器***大多采用基于总线的侦听协议。
多核处理器处理器的各处理器核心执行的程序之间有时需要进行数据共享与同步,因此其硬件结构必须支持核间通信。高效的通信机制是多核处理器处理器高性能的重要保障,目前比较主流的片上高效通信机制有两种,一种是基于总线共享的缓存结构,一种是基于片上的互连结构。总线共享缓存结构是指每个处理器内核拥有共享的二级或三级缓存,用于保存比较常用的数据,并通过连接核心的总线进行通信。这种***的优点是结构简单,通信速度高,缺点是基于总线的结构可扩展性较差。基于片上互连的结构是指每个处理器核心具有独立的处理单元和缓存,各个处理器核心通过交叉开关或片上网络等方式连接在一起。各个处理器核心间通过消息通信。这种结构的优点是可扩展性好,数据带宽有保证;缺点是硬件结构复杂,且软件改动较大。也许这两者的竞争结果不是互相取代而是互相合作,例如在全局范围采用片上网络而局部采用总线方式,来达到性能与复杂性的平衡。
传统微处理器中,缓存不命中或访存事件都会对处理器的执行效率产生负面影响,而总线接口单元的工作效率会决定此影响的程度。当多个处理器核心同时要求访问内存或多个处理器核心内私有缓存同时出现缓存不命中事件时,BIU对这多个访问请求的仲裁机制以及对外存储访问的转换机制的效率决定了多核处理器***的整体性能。因此寻找高效的多端口总线接口单元结构,将多核心对主存的单字访问转为更为高效的猝发访问;同时寻找对多核处理器处理器整体效率最佳的一次猝发访问字的数量模型以及高效多端口总线接口单元访问的仲裁机制将是多核处理器处理器研究的重要内容。
在目前的多核处理器***中,无论是二级缓存还是三级缓存,无论是共享缓存还是私有缓存,其缓存的读取和替换算法都存在算法复杂度高、命中时长过长等技术问题。
另外,现有的二级缓存方式中,共享缓存数据的二级缓存数据通常在私有的一级缓存中都存在备份,如此,当一级缓存中的缓存数据被不同的处理器核心进行更改后,会出现高速缓存的伪共享问题,从而带来需要经常重新加载,增加了访问延迟,使得***新能下降。
发明内容
为了解决现有的多核处理器***中缓存的读取和替换算法都存在算法复杂度高、命中时长过长、伪共享等技术问题,本发明提供了一种在多核处理器中缓冲数据的方法,其中所述多核处理器包括多个处理器核心、与所述多个处理器核心形成一一耦合关系的多个专用缓冲存储器、和分别耦合于所述多个处理器核心的一通用缓冲存储器,所述方法包括:
接收并发执行多个线程的指令;
将所述多个线程中的每一个分别独立地分配给所述多个处理器核心,其中多个处理器核心中的每一个最多被分配一个线程;
对于每一个被分配了线程的处理器核心,响应于执行线程期间的缓存请求,将待缓存数据存储到所耦合的专用缓冲存储器中;
当不小于一阈值t的数量的专用缓冲存储器中都存储有同一缓存数据时,将同一缓存数据存储到通用缓冲存储器中。
优选地,其中在将同一缓存数据存储到通用缓冲存储器中之后,清除存储有同一缓存数据的专用缓冲存储器中的同一缓存数据,并释放清除了存储有同一缓存数据的专用缓冲存储器中的同一缓存数据所占用的存储空间。
优选地,当所述多个处理器核心中的每一个需要读取缓存数据时,通过查询缓存映射表从通用缓冲存储器或专用缓冲存储器中读取所述缓存数据。
优选地,其中t=s或或t=2,其中s是处于激活状态下的处理器核心的总量,其中表示向上取整。
本发明还公开了一种在多核处理器中多级缓冲数据的方法,所述多核处理器包括2n个处理器核心,其中,以及n+1级缓存,其中第m级缓存包括2n+1-m个缓冲存储器;其中,第1级缓存的第i个缓冲存储器仅用于存储第i个处理器核心所执行的线程所需要缓冲的缓存数据;第s级缓存的第j个缓冲存储器仅用于存储第s-1级缓存的第2j-1和第2j个缓冲存储器中共有的缓存数据,其中,n为大于1的整数,1<=m<=n+1,2<=s<=n+1,1<=i<=2n,1<=j<=2n+1-m;所述方法包括:
响应于并发执行同一进程的多个线程的指令,将每一个线程分配给不同的空闲处理器核心,同时激活被分配了线程的空闲处理器核心,使得被分配了线程的处理器核心从空闲状态变为忙碌状态;
当第i个处理器核心被激活后,响应于缓存指令,首先查看是否待缓存数据已经存储在第p级缓存的第个缓冲存储器中,如果存在,发送指示缓存成功的确认消息,其中1<=i<=2n,2<=p<=n+1,表示向下取整操作,k=2p-1
如果不存在,则将待缓存数据存储到第1级缓存的第i个缓冲存储器中;然后从第1级缓存至第n级缓存开始逐级判断,如果第t级缓存的第*2-1和第*2个缓冲存储器中都存储有所述待缓冲数据,则将所述待缓冲数据转存到第t+1级缓存的第个缓冲存储器中,并且将第t级缓存的第*2-1和第*2个缓冲存储器中存储的待缓存数据清除,同时释放第t级缓存的第*2-1和第*2个缓冲存储器中的所述待缓存数据所占用的存储空间,其中1<=t<=n,表示向上取整;
发出指示缓存成功的确认消息。
本发明利用缓存映射表,并基于执行线程对待缓存数据进行实时地读取和替换,尤其是实时地在专用缓冲存储器和通用缓冲存储器之间进行缓存数据的替换,以及利用多级缓存实时读取和替换缓存数据,实现了较低的算法复杂度,减少了命中时长,提高了具有多核处理器的计算机***的整体效率。
附图说明
所包括的附图用于进一步理解本发明,其作为说明书的一个组成部分并与说明书一起解释本发明的原理,在附图中:
图1为本发明第一实施例的多核处理器的结构框图;
图2为本发明第一实施例的在多核处理器中缓冲数据的方法的流程图;
图3为本发明第二实施例的多核处理器的结构框图;
图4为本发明第二实施例的在多核处理器中缓冲数据的方法的流程图。
具体实施方式
图1示出了本发明中涉及的多核处理器的结构框图,如图1所示,本发明中的多核处理器包括多个处理器核心、与所述多个处理器核心形成一一耦合关系的多个专用缓冲存储器、和分别耦合于所述多个处理器核心的一通用缓冲存储器,其中所述多个专用缓冲存储器仅用于存储与所述多个专用缓冲存储器相耦合的处理器核心所执行的线程相关的缓存数据,所述一通用缓冲存储器用于存储与多个处理器核心所执行的线程相关的缓存数据。所述多核处理器还包括映射缓存器,用于存储缓存映射表,所述缓存映射表中至少存储有缓存数据与各个缓冲存储器(包括专用缓冲存储器和专用缓冲存储器)之间的存储关系,所述存储关系包括缓存数据存储在哪一缓冲存储器中以及缓存数据与哪些处理器核心的哪些线程关联。其中所述多核处理器还包括缓存控制器,用于控制所述多个专用缓冲存储器、通用缓冲存储器和映射缓存器,实现对所述多个专用缓冲存储器、通用缓冲存储器和映射缓存器的写入、读取、替换、查询等操作。
在本发明中,所提出的同一进程的多个线程的总量不大于所述多个处理器核心的总量,同时同一进程的多个线程中的每一个分别分配给不同的处理器核心以保证同一进程的多个线程并发执行。
接下来参考附图2详细描述本发明提出的在多核处理器中缓冲数据的方法,所述方法包括:多核处理器接收并发执行同一进程的多个线程的指令;在满足以下条件的情况下继续执行后续步骤:空闲处理器核心的数量不小于同一进程的并发执行的多个线程的数量,同时存在进程分配方式使得将每一线程分配给不同的空闲处理器核心并且分配了线程的空闲处理器核心的资源总量不小于所分配的线程所需要的处理器资源总量(即所有分配了线程的空闲处理器核心的处理能力都能够满足对其分配的线程的需要);否则返回指示***资源不足的信息。响应于并发执行同一进程的多个线程的指令,将所述多个线程中的每一个分别分配给所述多个处理器核心中的空闲处理器核心,其中每一个线程分配给不同的空闲处理器核心并且分配结果是每一个被分配了线程的处理器核心的处理能力完全满足对其分配的线程的需要,同时激活被分配了线程的空闲处理器核心,使得被分配了线程的处理器核心从空闲状态变为忙碌状态。
当多核处理器中的空闲处理器核心被激活后,被激活的处理器核心进入执行线程的忙碌状态,也因此会根据执行线程的需要进行数据的读取和写入,因而需要进行数据缓存,为此忙碌状态下的处理器核心会经常向缓存控制器发出缓存指令。响应于缓存指令,缓存控制器首先查询缓存映射表查看是否待缓存数据已经存储在通用缓冲存储器中,如果存在则更新缓存映射表然后向发出缓存指令的处理器核心发送指示缓存成功的确认消息,其中更新缓存映射表包括增加所述待缓存数据与被激活的处理器核心和被激活的处理器核心所执行的线程之间的对应关系;否则将待缓存数据存储到耦合至发出缓存指令的处理器核心的专用缓冲存储器中,同时将待缓存数据和专用缓冲存储器的存储关系更新到缓存映射表中,然后以待缓存数据为查询条件在所述缓存映射表中进行查询分析,如果查询分析结果为不小于一阈值t的数量的专用缓冲存储器中都存储有所述待缓存数据,其中所述阈值t=s或或t=2,其中s是正在执行线程的处理器核心的总量,其中表示向上取整,则缓存控制器将所述待缓存数据存储到通用缓冲存储器中,并且将所述t个专用缓冲存储器中存储的待缓存数据清除,同时释放所述t个专用缓冲存储器中的所述待缓存数据所占用的存储空间,最后更新缓存映射表,包括增加所述待缓存数据与通用缓冲存储器之间的存储关系以及删除所述待缓存数据与t个专用缓冲存储器之间的存储关系,上述步骤结束时由缓冲控制器向发出缓存指令的处理器核心发出指示缓存成功的确认信息。其中所述缓存映射表存储在映射缓存器中。
在本发明中,当处理器核心中执行一个线程结束后,首先向缓存控制器发送清除指令。响应于清除指令,缓存控制器首先查询缓存映射表查看通用缓冲存储器中是否存在与执行结束的线程相关联缓存数据。如果存在与执行结束的线程相关联缓存数据,则对于每一与执行结束的线程相关联的缓存数据继续查询缓存映射表查看是否存在大于阈值t个处理器控制器所执行的线程与所述缓存数据相关联。如果不存在大于阈值t个处理器控制器所执行的线程与所述缓存数据相关联,则在所有与所述缓存数据相关联的处理器核心相耦合的专用缓冲存储器都具有存储所述缓存数据的能力的情况下,根据缓存映射表的记录将所述缓存数据转存至所有与所述缓存数据相关联的处理器核心相耦合的专用缓冲存储器中、删除通用缓冲存储器中的所述缓存数据、释放通用缓冲存储器中的所述缓存数据所占用的存储空间;更新缓存映射表使得缓存映射表反应出最新的存储关系。本领域技术人员知道在执行一个线程结束后,还需要清除主存中的相关数据。当缓存控制器执行以上步骤完毕后,向对其发出清除指令的处理器核心发送指示清除成功的确认指令,响应于该确认指令,该处理器核心由忙碌状态进入空闲状态。
在本发明中,通用缓冲存储器可能由于不断地被写入缓存数据而达到饱和状态,在这种情况下,需要调整缓存策略。为了有效简化现有技术中的高复杂性的算法,本发明提出以下方法,当需要向通用缓冲存储器中写入缓存数据时,首先判断通用缓冲存储器的空闲存储空间的总量是否不小于需要写入的缓存数据的数据量,如果通用缓冲存储器的空闲存储空间的总量不小于需要写入的缓存数据的数据量,则直接将需要写入的缓存数据写入到通用缓冲存储器中,如果通用缓冲存储器的空闲存储空间的总量是否小于需要写入的缓存数据的数据量,则首先将通用缓冲存储器中的缓存数据转存至主存中,然后释放通用缓冲存储器的存储空间,最后将需要吸入的缓存数据写入到通用缓冲存储器中。
响应于清除指令,缓存控制器接着查询缓存映射表查看与该处理器核心相耦合的专用缓冲存储器中是否存在与执行结束的线程相关联的缓存数据,如果存在则清除所查询到的缓存数据并释放这个/这些缓存数据所占用的存储空间。通用缓冲存储器中的缓存控制器;更新缓存映射表使得缓存映射表反应出最新的存储关系。
当需要读取缓存数据时,通过查询缓存映射表确定从通用缓冲存储器或专用缓冲存储器中读取所述缓存数据。其中对于已经转存至主存中的缓存,当在缓存映射表中查询未命中的情况下,可进一步从主存中读取所述缓存数据。具体的读取方法不做赘述。
参考附图3-4,详细描述本发明第二实施例的在多核处理器中多级缓冲数据的方法,多核处理器包括2n个处理器核心(其中n=2,3,4,5,6,7,8,9)、以及n+1级缓存,其中第m级缓存包括2n+1-m个缓冲存储器(1<m<n+1)。其中,第1级缓存的第i(1<=i<=2n)个缓冲存储器用于存储第i(1<=i<=2n)个处理器核心所执行的线程所需要缓冲的缓存数据,并且仅仅用于存储第i(1<=i<=2n)个处理器核心所执行的线程所需要缓冲的缓存数据;第2级缓存的第i(1<=i<=2n-1)个缓冲存储器用于存储第1级缓存的第2i-1和第2i个缓冲存储器中共有的缓存数据,并且仅用于存储第1级缓存的第2i-1和第2i个缓冲存储器中共有的缓存数据,进一步地,当第1级缓存的第2i-1和第2i个缓冲存储器中均存储有同一缓冲数据时,由缓存控制器将该同一缓存数据转存至第2级缓存的第i个缓冲存储器中,同时清除第1级缓存的第2i-1和第2i个缓冲存储器中的同一缓存数据,释放第1级缓存的第2i-1和第2i个缓冲存储器中同一缓存数据所占用的存储空间;总之,第1级缓存的第i(1<=i<=2n)个缓冲存储器用于存储第i个处理器核心所执行的线程所需要缓冲的缓存数据,并且仅仅用于存储第i个处理器核心所执行的线程所需要缓冲的缓存数据;第s(2<=s<=n+1)级缓存的第j(1<=j<=2n+1-s)个缓冲存储器用于存储第s-1级缓存的第2j-1和第2j个缓冲存储器中共有的缓存数据,并且仅用于存储第s级缓存的第2j-1和第2j个缓冲存储器中共有的缓存数据。例如,当n=2时,所述多核处理器包括22=4个处理器核心以及3级缓存,其中第1级缓存包括22=4个一级缓冲存储器,第2级缓存包括21=2个二级缓冲存储器,第3级缓存包括20=1个三级缓冲存储器。所述多核处理器还包括映射缓存器,用于存储缓存映射表,所述缓存映射表中至少存储有缓存数据与各个缓冲存储器(包括各级缓存的各个缓冲存储器)之间的存储关系,所述存储关系包括缓存数据存储在哪一缓冲存储器中以及缓存数据与哪些处理器核心的哪些线程关联。其中所述多核处理器还包括缓存控制器,用于控制各级缓存的各个缓冲存储器和映射缓存器,实现对各级缓存的各个缓冲存储器和映射缓存器的写入、读取、替换、查询等操作。其中各个处理器核心、各级缓存的各个缓冲存储器、映射缓存器以及缓存控制器之间以总线互联并通信。
当多核处理器接收并发执行同一进程的多个线程的指令后;在满足以下条件的情况下继续执行后续步骤:空闲处理器核心的数量不小于同一进程的并发执行的多个线程的数量,同时存在进程分配方式使得将每一线程分配给不同的空闲处理器核心并且分配了线程的空闲处理器核心的资源总量不小于所分配的线程所需要的处理器资源总量(即所有分配了线程的空闲处理器核心的处理能力都能够满足对其分配的线程的需要);否则返回指示***资源不足的信息。响应于并发执行同一进程的多个线程的指令,将所述多个线程中的每一个分别分配给所述多个处理器核心中的空闲处理器核心,其中每一个线程分配给不同的空闲处理器核心并且分配结果是每一个被分配了线程的处理器核心的处理能力完全满足对其分配的线程的需要,同时激活被分配了线程的空闲处理器核心,使得被分配了线程的处理器核心从空闲状态变为忙碌状态。
当多核处理器(2n个处理器核心,其中n为大于1的整数,例如,n=2,3,4,5,6,7,8或9)中的第i(1<=i<=2n)个处理器核心(空闲处理器核心)被激活后,被激活的处理器核心进入执行线程的忙碌状态,也因此会根据执行线程的需要进行数据的读取和写入,因而需要进行数据缓存,为此忙碌状态下的处理器核心会经常向缓存控制器发出缓存指令。响应于缓存指令,缓存控制器首先查询缓存映射表查看是否待缓存数据已经存储在第m(2<=m<=n+1)级缓存的第表示向下取整操作,k=2m-1)个缓冲存储器中,如果存在则更新缓存映射表然后向第i个处理器核心发送指示缓存成功的确认消息,其中更新缓存映射表包括增加所述待缓存数据、被激活的处理器核心和被激活的处理器核心所执行的线程之间的对应关系;否则将待缓存数据存储到第1级缓存的第i个缓冲存储器中,同时将待缓存数据和第1级缓存的第i个缓冲存储器的存储关系更新到缓存映射表中,然后以待缓存数据为查询条件在所述缓存映射表中进行查询分析,如果查询分析结果为第1级缓存的第*2-1和第*2(其中表示向上取整)个缓冲存储器中均存储有同一缓冲数据,则缓存控制器将所述待缓存数据转存到第2级缓存的第个缓冲存储器中,并且将第1级缓存的第*2-1和第*2个缓冲存储器中存储的待缓存数据清除,同时释放第1级缓存的第*2-1和第*2个缓冲存储器中的所述待缓存数据所占用的存储空间,最后更新缓存映射表,包括增加所述待缓存数据与第2级缓存中各个缓冲存储器之间的存储关系以及删除所述待缓存数据与第1级缓存的各个缓冲存储器之间的存储关系。依次类推,逐级进行判断和处理。例如当n=2即多核处理器包括4个处理器核心的情况下,除进行上述步骤的情况下,还需以待缓存数据为查询条件在所述缓存映射表中进行查询分析,如果查询分析结果为第2级缓存的第1和第2个缓冲存储器中均存储有同一缓冲数据,则缓存控制器将所述待缓存数据转存到第3级缓存的第1个(仅一个)缓冲存储器中,并且将第2级缓存的第1和2个缓冲存储器中存储的待缓存数据清除,同时释放第2级缓存的第1和第2个缓冲存储器中的所述待缓存数据所占用的存储空间,最后更新缓存映射表,包括增加所述待缓存数据与第3级缓存中第一个缓冲存储器之间的存储关系以及删除所述待缓存数据与第2级缓存的各个缓冲存储器之间的存储关系。总之,从第1级缓存至第n级缓存开始逐级判断,如果第t级缓存的第*2-1和第*2(其中表示向上取整,1<=r<=2n+1-t,1<=t<=n)个缓冲存储器中都存储有所述待缓冲数据,则缓存控制器将所述待缓冲数据转存到第t+1级缓存的第个缓冲存储器中,并且将第t级缓存的第*2-1和第*2个缓冲存储器中存储的待缓存数据清除,同时释放第t级缓存的第*2-1和第*2个缓冲存储器中的所述待缓存数据所占用的存储空间,最后更新缓存映射表,包括增加所述待缓存数据与第t+1级缓存中第个缓冲存储器之间的存储关系以及删除所述待缓存数据与第t级缓存的第*2-1和第*2个缓冲存储器之间的存储关系。上述步骤结束时由缓冲控制器向第i个处理器核心发出指示缓存成功的确认消息。其中所述缓存映射表存储在映射缓存器中。本领域技术人员应当明确本发明中用到的所有参数都是整数,例如参数m,n,p,q,r,s,k,t,i,j。
在第二实施例中,当处理器核心中执行一个线程结束后的处理类似于第一实施例中的处理方法,并且在该实施例中在各级缓冲存储器均具有足够的缓存空间存储待缓存数据的能力的情况下进行实施。在该实施例中,读取缓存数据的方法也与第一实施中的读取缓存数据的方法类似。另外,虽然附图4中并未详细示出关于循环判断第1级至第n级缓存的第*2-1和第*2个缓冲存储器中都存储有所述待缓冲数据,然而本领域技术根据说明书的上述详细记载,应当明了此处是逐级判断,为了突出发明的构思的重点,具体的循环处理过程并未示出。
在本发明中对于通用缓冲存储器以及非一级缓冲存储器中的缓存数据,处理器核心只能读取而不能修改,如果需要修改则需要重新进行缓存写入,也就是说当处理器核心需要修改通用缓冲存储器或非一级缓冲存储器中的缓存数据时,将修改后的缓存数据作为新的待缓存数据进行本发明所述的在多核处理器中缓冲数据的方法,即原有的缓存数据和修改后的缓存数据作为不同的待缓存数据进行写入操作。
以上关于本发明的描述仅仅是示例性的,并且主要针对本发明要解决的技术问题所涉及的必要技术特征进行详细描述,对于本领域技术人员应当清楚地知道或容易想到的关于本发明的其他相关细节不做赘述,例如,当专用缓冲存储器或通用缓冲存储器的空闲存储空间不足导致不能存储待缓存数据的情况下,需要通过替换算法替换在先存储的缓存数据,在此不做赘述。
应该理解,上述实施例是针对特定实施例进行的详细描述,但是本发明并不局限于该实施例,在不脱离本发明精神和范围的情况下,可以对本发明做出各种各样的改进和变型,例如当权重信息指示待缓存数据的权重为低权重、中权重和高权重时,在不脱离本发明精神和范围的情况下,可进一步改进本发明的在缓冲存储器中缓存数据的方法。

Claims (4)

1.一种在多核处理器中缓冲数据的方法,其中所述多核处理器包括多个处理器核心、与所述多个处理器核心形成一一耦合关系的多个专用缓冲存储器、和分别耦合于所述多个处理器核心的一通用缓冲存储器,所述方法包括:
接收并发执行多个线程的指令;
将所述多个线程中的每一个分别独立地分配给所述多个处理器核心,其中多个处理器核心中的每一个最多被分配一个线程;
对于每一个被分配了线程的处理器核心,响应于执行线程期间的缓存请求,将待缓存数据存储到所耦合的专用缓冲存储器中;
当不小于一阈值t的数量的专用缓冲存储器中都存储有同一缓存数据时,将同一缓存数据存储到通用缓冲存储器中;
其中t=s或或t=2,其中s是处于激活状态下的处理器核心的总量,其中表示向上取整。
2.根据权利要求1所述的方法,其中在将同一缓存数据存储到通用缓冲存储器中之后,清除存储有同一缓存数据的专用缓冲存储器中的同一缓存数据,并释放清除了存储有同一缓存数据的专用缓冲存储器中的同一缓存数据所占用的存储空间。
3.根据权利要求1所述的方法,当所述多个处理器核心中的每一个需要读取缓存数据时,通过查询缓存映射表从通用缓冲存储器或专用缓冲存储器中读取所述缓存数据。
4.一种在多核处理器中多级缓冲数据的方法,所述多核处理器包括2n个处理器核心以及n+1级缓存,其中第m级缓存包括2n+1-m个缓冲存储器;其中,第1级缓存的第i个缓冲存储器仅用于存储第i个处理器核心所执行的线程所需要缓冲的缓存数据;第s级缓存的第j个缓冲存储器仅用于存储第s-1级缓存的第2j-1和第2j个缓冲存储器中共有的缓存数据,其中,n为大于1的整数,1<=m<=n+1,2<=s<=n+1,1<=i<=2n,1<=j<=2n+1-m;所述方法包括:
响应于并发执行同一进程的多个线程的指令,将每一个线程分配给不同的空闲处理器核心,同时激活被分配了线程的空闲处理器核心,使得被分配了线程的处理器核心从空闲状态变为忙碌状态;
当第i个处理器核心被激活后,响应于缓存指令,首先查看是否待缓存数据已经存储在第p级缓存的第个缓冲存储器中,如果存在,发送指示缓存成功的确认消息,其中1<=i<=2n,2<=p<=n+1,表示向下取整操作,k=2p-1
如果不存在,则将待缓存数据存储到第1级缓存的第i个缓冲存储器中;然后从第1级缓存至第n级缓存开始逐级判断,如果第t级缓存的第和第*2个缓冲存储器中都存储有所述待缓存数据,则将所述待缓存数据转存到第t+1级缓存的第个缓冲存储器中,并且将第t级缓存的第和第个缓冲存储器中存储的待缓存数据清除,同时释放第t级缓存的第和第个缓冲存储器中的所述待缓存数据所占用的存储空间,其中1<=t<=n,表示向上取整;
发出指示缓存成功的确认消息。
CN201310301037.3A 2013-07-18 2013-07-18 一种在多核处理器中缓冲数据的方法 Active CN103345451B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310301037.3A CN103345451B (zh) 2013-07-18 2013-07-18 一种在多核处理器中缓冲数据的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310301037.3A CN103345451B (zh) 2013-07-18 2013-07-18 一种在多核处理器中缓冲数据的方法

Publications (2)

Publication Number Publication Date
CN103345451A CN103345451A (zh) 2013-10-09
CN103345451B true CN103345451B (zh) 2015-05-13

Family

ID=49280249

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310301037.3A Active CN103345451B (zh) 2013-07-18 2013-07-18 一种在多核处理器中缓冲数据的方法

Country Status (1)

Country Link
CN (1) CN103345451B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI710899B (zh) * 2015-10-14 2020-11-21 南韓商三星電子股份有限公司 計算系統以及其操作方法
CN105740170B (zh) * 2016-01-22 2020-12-04 浪潮(北京)电子信息产业有限公司 一种缓存脏页刷写方法及装置
CN110764710B (zh) * 2016-01-30 2023-08-11 北京忆恒创源科技股份有限公司 低延迟高iops的数据访问方法与存储***
CN108121597A (zh) * 2016-11-29 2018-06-05 迈普通信技术股份有限公司 一种大数据导出装置及方法
CN107729057B (zh) * 2017-06-28 2020-09-22 西安微电子技术研究所 一种在多核dsp下的数据块多缓冲流水处理方法
CN108132834B (zh) * 2017-12-08 2020-08-18 西安交通大学 多级共享高速缓冲存储器架构下的任务分配方法和***
CN110609807B (zh) * 2018-06-15 2023-06-23 伊姆西Ip控股有限责任公司 用于删除快照数据的方法、设备和计算机可读存储介质
CN109117291A (zh) * 2018-08-27 2019-01-01 惠州Tcl移动通信有限公司 基于多核处理器的数据调度处理方法、装置和计算机设备
CN110096455B (zh) * 2019-04-26 2021-09-14 海光信息技术股份有限公司 缓存空间的独占初始化方法及相关装置
CN111858046B (zh) * 2020-07-13 2024-05-24 海尔优家智能科技(北京)有限公司 服务请求的处理方法及装置、存储介质、电子装置
CN114138685B (zh) * 2021-12-06 2023-03-10 海光信息技术股份有限公司 缓存的资源分配方法及装置、电子装置和存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7222343B2 (en) * 2003-01-16 2007-05-22 International Business Machines Corporation Dynamic allocation of computer resources based on thread type
US7624236B2 (en) * 2004-12-27 2009-11-24 Intel Corporation Predictive early write-back of owned cache blocks in a shared memory computer system
US8719507B2 (en) * 2012-01-04 2014-05-06 International Business Machines Corporation Near neighbor data cache sharing

Also Published As

Publication number Publication date
CN103345451A (zh) 2013-10-09

Similar Documents

Publication Publication Date Title
CN103345451B (zh) 一种在多核处理器中缓冲数据的方法
US9760486B2 (en) Accelerating cache state transfer on a directory-based multicore architecture
CN100421088C (zh) 用于管理高速缓存数据的数字数据处理设备和方法
US7941591B2 (en) Flash DIMM in a standalone cache appliance system and methodology
Kim et al. An adaptive, non-uniform cache structure for wire-delay dominated on-chip caches
US20150127691A1 (en) Efficient implementations for mapreduce systems
Aila et al. Architecture considerations for tracing incoherent rays
CN104765575B (zh) 信息存储处理方法
CN105183662A (zh) 一种无cache一致性协议的分布式共享片上存储架构
CN104699631A (zh) Gpdsp中多层次协同与共享的存储装置和访存方法
CN102866957B (zh) 面向多核多线程微处理器的虚拟活跃页缓冲方法及装置
CN103246625B (zh) 一种数据与地址共用引脚自适应调整访存粒度的方法
CN104917784B (zh) 一种数据迁移方法、装置及计算机***
CN106843772A (zh) 一种基于一致性总线扩展非易失内存的***及方法
CN104657308A (zh) 一种用fpga实现的服务器硬件加速的方法
CN103345368B (zh) 一种在缓冲存储器中缓存数据的方法
US8914571B2 (en) Scheduler for memory
EP2686774A1 (en) Memory interface
WO2013113206A1 (zh) 智能缓存及智能终端
CN105938458A (zh) 软件定义的异构混合内存管理方法
WO2024045585A1 (zh) 用于并行处理器中动态共享存储空间的方法及相应处理器
CN109426623A (zh) 一种读取数据的方法及装置
CN105718242A (zh) 多核dsp中支持软硬件数据一致性的处理方法及***
CN112074822B (zh) 具有针对流式数据传输的流压缩的数据处理装置
CN101853218B (zh) 用于磁盘阵列的读取方法和***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent for invention or patent application
CB03 Change of inventor or designer information

Inventor after: Mao Li

Inventor after: Rong Qiang

Inventor before: Mao Li

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: MAO LI TO: MAO LI RONG QIANG

C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20151223

Address after: 610000, No. 2, unit 1, 57 community street, prosperous town, Tianfu New District, Sichuan, Chengdu, 8

Patentee after: Sichuan thousands of lines you and I Technology Co., Ltd.

Address before: 610041 A, building, No. two, Science Park, high tech Zone, Sichuan, Chengdu, China 103B

Patentee before: Sichuan Jiucheng Information Technology Co., Ltd.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 610000, No. 2, unit 1, 57 community street, prosperous town, Tianfu New District, Sichuan, Chengdu, 8

Patentee after: Sichuan qianhang Technology Co., Ltd

Address before: 610000, No. 2, unit 1, 57 community street, prosperous town, Tianfu New District, Sichuan, Chengdu, 8

Patentee before: Sichuan thousands of lines you and I Technology Co., Ltd.