CN103268297A - 基于异构多核平台的加速核虚拟便笺存储器的方法 - Google Patents
基于异构多核平台的加速核虚拟便笺存储器的方法 Download PDFInfo
- Publication number
- CN103268297A CN103268297A CN2013101869715A CN201310186971A CN103268297A CN 103268297 A CN103268297 A CN 103268297A CN 2013101869715 A CN2013101869715 A CN 2013101869715A CN 201310186971 A CN201310186971 A CN 201310186971A CN 103268297 A CN103268297 A CN 103268297A
- Authority
- CN
- China
- Prior art keywords
- spm
- virtual
- cache
- common
- core
- 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.)
- Pending
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种基于异构多核平台的加速核虚拟便笺存储器的方法。包括如下步骤:1)将共享L2Cache逻辑上划分成普通L2Cache和虚拟SPM两部分;2)设置一个虚拟SPM的访问接口;3)重新设置普通L2Cache和虚拟SPM的替换策略;4)对虚拟SPM和内存进行统一编址;5)定义虚拟SPM空间请求和释放的MIPS汇编指令。本方法通过对异构多核平台的存储cache子系统进行部分优化,使得通用处理核与加速核之间的数据交互不再通过内存完成,而是在虚拟SPM中实现数据共享来完成。本方法可以有效提高通用处理核与加速核之间的共享数据交互速度,使得异构多核平台的整体性能得到明显的提升。同时,虚拟SPM可以部分替代加速核的SPM,可以节省加速核本身的SPM大小,减小硬件开销的成本。
Description
技术领域
本发明属于计算机体系结构的异构多核平台访存优化领域,具体涉及一种基于异构多核平台的加速核虚拟便笺存储器的方法。
背景技术
近数十年来,随着半导体工艺的发展以及高性能计算的需求,计算机体系结构发展迅速。半导体工艺遵循着摩尔定律发展,集成在处理器芯片上的晶体管数目不断突破。芯片的制程从1971年的10μm发展到了目前的22nm,预计2014年,英特尔公司将推出14nm制程的处理器芯片。处理器体系结构经历了从单核到多核的,从简单到复杂的演变。
当前主流的多核处理器上集成的通用核的数量不断增加,如Intel的Nehalem架构的处理器、IBM的Power7等,已经在单芯片上集成8个甚至更多的核,但单纯地增加处理器芯片上核的数量而获得的性能提升越来越小。虽然通用多核处理器,因其通用性而得到了广泛的使用,但难以满足计算密集型应用的高性能需求,因此集成有加速核的异构多核平台成为了计算机体系结构发展的方向之一。
在集成了加速核的异构多核处理器平台上,便笺存储器SPM(Scratch Pad Memory,简称SPM)常被用来作为加速核的本地存储。SPM是一种基于SRAM的小容量、高速的片上存储器件,被广泛地用于各种异构的高性能处理器中,如IBM的Cell处理器与NVIDIA的Fermi架构和Tesla架构的GPU中。通常SPM被映射在一个与片外存储不相交的地址空间中,但与片外的存储(如内存)进行统一编址。与通过硬件进行自动管理的Cache不同,SPM主要通过程序员或编译器等软件的方式进行管理。在传统的异构多核架构中,通用处理核不能直接访问加速核的SPM,通用处理核需要通过直接内存存取DMA(Direct Memory Access)或其他传输机制,将数据从通用处理核端的层次化存储中(内存或Cache)拷贝到加速核的SPM中,同时需要将加速核SPM中的数据拷贝到通用核端的层次化存储中。
在通用多核处理器上集成加速核 ,给通用处理核与加速核之间互连方式的设计、多核平台下的存储层次的设计提出了新的挑战。由于加速核的访存行为与通用处理核不同,适合通用多核处理器的cache组织形式不一定适合于加速核,因此加速核不与通用处理核共享cache。但是,由此会带来新的问题:异构多核平台上通用处理核与加速核之间共享数据交互,需要将数据多次拷贝,其中会涉及到多次内存存取,由于内存相对Cache和SPM来说,存取速度很缓慢,严重拖慢了整体的运行速度。再加通用处理核与加速核之间数据总线的带宽有限,大量的数据传输也有很大的延时,也在部分程度上影响了异构多核平台整体性能的发挥。
发明内容
为了克服现有技术的不足,本发明提出了一种新的技术手段,将通用处理核的共享L2 Cache一部分虚拟化为加速核的虚拟SPM,以绕过内存而实现通用处理核与加速核之间共享数据交互。
本方法解决技术问题所采用的技术方案是:
基于异构多核平台的加速核虚拟便笺存储器的方法,其特征在于包括如下步骤:1)将共享L2 Cache划分成普通L2 Cache和虚拟SPM两部分;2)设置一个虚拟SPM的访问接口;3)重新设置L2 Cache的替换策略;4)对虚拟SPM和内存进行统一编址;5)定义专门的虚拟SPM空间请求和释放的MIPS汇编指令。
所述的基于异构多核平台的加速核虚拟便笺存储器的方法,其特征在于:所述将共享L2 Cache划分成普通L2 Cache和虚拟SPM两部分,此处的划分是逻辑概念上的划分,而不是在物理结构上将共享L2 Cache分成两部分;根据通用处理核、加速核对虚拟SPM空间的请求,动态地将共享L2 Cache中的某些cache-line做标记,标记为1时表示该cache-line为虚拟SPM,标记为0则表示该cache-line为普通L2 Cache。
所述的基于异构多核平台的加速核虚拟便笺存储器的方法,其特征在于:所述的设置一个虚拟SPM的访问接口,该访问接口包括原有的L2 Cache控制器和新添加的虚拟SPM控制器;L2 Cache控制器通过数据总线与通用处理核的L1 Cache相连,响应处理通用处理核对普通L2 Cache的访问;虚拟SPM控制器,通过数据总线与通用处理核的L1 Cache、加速核都相连,使得通用处理核、加速核都可以访问虚拟SPM。
所述的基于异构多核平台的加速核虚拟便笺存储器的方法,其特征在于所述的重新设置L2 Cache替换策略,新设置的L2 Cache替换策略整体上仍遵循传统的LRU策略,但是做了如下修改:普通L2 Cache缺页时,不得替换出标记为虚拟SPM的cache-line;当要分配新的虚拟SPM空间时,优先替换出无效状态和有效且干净状态的cache-line,而且不得替换出标记为虚拟SPM的cache-line;当虚拟SPM空间被释放后,对应的cache-line重新被标记为普通L2 Cache。
所述的基于异构多核平台的加速核虚拟便笺存储器的方法,其特征在于:所述的对虚拟SPM和内存进行统一编址,虚拟SPM地址空间接在内存地址空间之后,二者共用同一组地址总线;而且内存地址空间范围内的数据是可以被缓存的,但虚拟SPM地址空间范围内的数据是不可以被缓存的。
所述的基于异构多核平台的加速核虚拟便笺存储器的方法,其特征在于:所述的定义专门的虚拟SPM空间请求和释放的MIPS汇编指令,指令分别为vmalloc, vfree,其指令格式分别如下:
指令 | 操作码 | 操作数 | 子码 |
vmalloc | 111100 | size (20位) | 000010 |
vfree | 111100 | size (20位) | 000011 |
一条MIPS汇编指令由32位二进制表示,前6位操作码111100表示用户自定义指令,最后的6位子码用于区分用户自定义的不同的指令,中间20位size是表示请求或释放的虚拟SPM空间的大小,单位为字节。
本发明的有益效果
本发明提出的一种基于异构多核平台的加速核虚拟便笺存储器的方法,将通用处理核的共享L2 Cache一部分虚拟化为加速核的虚拟SPM,以绕过内存而实现通用处理核与加速核之间共享数据交互。本发明可以大大提高通用处理核与加速核之间的共享数据的交互速度,使得异构多核平台的整体的运行速度得到明显的提升。同时,虚拟SPM可以部分替代加速核的SPM,可以节省加速核本身的SPM大小,减小硬件开销的成本。
附图说明
图1是异构多核平台的存储层次架构;
图2是本发明的异构多核平台的存储层次架构;
图3是改进前后通用处理核与加速核之间共享数据交互的数据流图。
具体实施方式
以下结合附图和具体实施方式对本发明做进一步的说明。
如图1所示的异构多核平台的存储层次架构图,L1 Cache是通用处理核的第一级缓存,是每一个通用处理核私有;L2 Cache是第二级缓存,由所有的通用处理核共享,但加速核由于访存特征与通用处理核的访存特征有很大不同,不参与共享L2 Cache;SPM是便笺存储器Scratch Pad Memory的缩写,SPM作为加速核的本地存储器,用于存放加速核处理的产生的局部数据,以及充当加速核与内存之间的缓存。
如图2所示,本发明在图1中的存储层次架构的基础上,做出部分的优化改动。首先,将共享L2 Cache在逻辑上划分成普通L2 Cache和虚拟SPM两部分。对共享L2 Cache的每一个cache-line做一个虚拟SPM位标记,当虚拟SPM位标记为0时,表示该cache-line是普通的L2 Cache;当虚拟SPM位标记为1时,表示该cache-line为虚拟SPM。然后,在原来的共享L2 Cache上加上一个虚拟SPM访问接口,用于管理通用处理核、加速核访问普通L2 Cache和虚拟SPM;虚拟SPM访问接口包括原有的L2 Cache控制器和新添加的虚拟SPM控制器;L2 Cache控制器通过数据总线与通用处理核的L1 Cache相连,响应处理通用处理核对普通L2 Cache的访问;虚拟SPM控制器,通过数据总线与通用处理核的L1 Cache、加速核都相连,使得通用处理核、加速核都可以访问虚拟SPM。 如图2所示的虚线部分,是新添加的数据总线,使加速核与虚拟SPM访问接口相连,使加速核能够访问虚拟SPM。
本发明提出的方法,优化改动后的存储层次架构,使得通用处理和与加速器之间的共享数据交互的数据流图发生了较大的改变,如图3所示。在改动前,如果通用处理核与加速核之间有数据共享,则数据流图如图3(a)所示,通用处理核将数据一次向下写入L1 Cache、L2 Cache,然后写入内存,加速核再将数据从内存独到自己的SPM中,然后从SPM里读取使用。按照本发明提出的方法优化改动后,相应的数据流图就变得简单些:通用处理核将数据写入L1 Cache,然后写入虚拟SPM中,加速核直接从虚拟SPM里读取数据使用。改动后的过程省掉了通用处理核将数据从L2 Cache写入内存,以及加速核将数据从内存读取到SPM两步;而这两步都涉及到内存的读或写操作,会消耗较大的数据读写时间,因为相对于对Cache和SPM的读写来说,内存的读写操作时间要大得多,若将L1 Cache读写时间作为1个时间单位,则L2 Cache和SPM的读写时间约为9个时间单位,而内存的读写时间则是240个时间单位,远远大于L1/L2 Cache和SPM读写时间。
由于经过改动后,虚拟SPM的功能已经不是单纯用作通用处理核的第二级缓存,而是用于通用处理核与加速核之间共享数据的存放,因此整个L2 Cache的访存缺页替换策略也要相应的发生部分改变。新设置的L2 Cache访存缺页替换策略整体上仍遵循传统的LRU策略,但是做了如下修改:普通L2 Cache缺页时,不得替换出标记为虚拟SPM的cache-line;当要分配新的虚拟SPM空间时,优先替换出无效状态和有效且干净状态的cache-line,而且不得替换出标记为虚拟SPM的cache-line;当虚拟SPM空间被释放后,对应的cache-line重新被标记为普通L2 Cache。
虚拟SPM的功能是用于通用处理核与加速核之间共享数据的存放,这时虚拟SPM虽然在物理层面上是L2 Cache的一部分,但是逻辑概念上,虚拟SPM不与L2 Cache处于同一层级,而是与内存处于相同层级,通用处理核和加速器都需要对虚拟SPM进行读写,因此,我们对虚拟SPM和内存进行统一编址,虚拟SPM地址空间接在内存地址空间之后,二者共用同一组地址总线;而且内存地址空间范围内的数据是可以被缓存的,但虚拟SPM地址空间范围内的数据是不可以被缓存的,因为虚拟SPM中的数据本身就存放在L2 Cache中。
为了有效控制通用处理核与加速核对虚拟SPM空间的申请,我们定义专门的虚拟SPM空间请求和释放的MIPS汇编指令,指令分别为vmalloc, vfree,其指令格式分别如下:
指令 | 操作码 | 参数 | 子码 |
vmalloc | 111100 | size (20位) | 000010 |
vfree | 111100 | size (20位) | 000011 |
一条MIPS汇编指令由32位二进制表示,前6位操作码111100表示用户自定义指令,最后的6位子码用于区分用户自定义的不同的指令,中间20位size是表示请求或释放的虚拟SPM空间的大小,单位为字节。
Claims (6)
1.基于异构多核平台的加速核虚拟便笺存储器的方法,其特征在于包括如下步骤:
1)将共享L2 Cache划分成普通L2 Cache和虚拟SPM两部分;
2)设置一个虚拟SPM的访问接口;
3)重新设置普通L2 Cache和虚拟SPM的替换策略;
4)对虚拟SPM和内存进行统一编址;
5)定义专门的虚拟SPM空间请求和释放的MIPS汇编指令。
2.根据权利要求1所述的方法,其特征在于,步骤1)所述的将共享L2 Cache划分成普通L2 Cache和虚拟SPM两部分,此处的划分是逻辑概念上的划分,而不是在物理结构上将共享L2 Cache分成两部分;根据通用处理核、加速核对虚拟SPM空间的请求,动态地将共享L2 Cache中的cache-line做标记,标记为1时表示该cache-line为虚拟SPM,标记为0则表示该cache-line为普通L2 Cache。
3.根据权利要求1所述的方法,其特征在于,步骤2)所述的设置一个虚拟SPM的访问接口,该访问接口包括原有的L2 Cache控制器和新添加的虚拟SPM控制器;L2 Cache控制器通过数据总线与通用处理核的L1 Cache相连,只响应处理通用处理核对普通L2 Cache的访问;虚拟SPM控制器,通过数据总线与通用处理核的L1 Cache、加速核都相连,使得通用处理核、加速核都可以访问虚拟SPM。
4.根据权利要求1所述的方法,其特征在于,步骤3)所述的替换策略,新设置的L2 Cache缺页访问替换策略整体上仍遵循传统的LRU策略,但是做了如下修改:普通L2 Cache缺页时,不得替换出标记为虚拟SPM的cache-line;当要分配新的虚拟SPM空间时,优先替换出无效状态和有效且干净状态的cache-line,而且不得替换出标记为虚拟SPM的cache-line;当虚拟SPM空间被释放后,对应的cache-line重新被标记为普通L2 Cache。
5.根据权利要求1所述的方法,其特征在于,步骤4)所述的对虚拟SPM和内存进行统一编址,虚拟SPM地址空间接在内存地址空间之后,二者共用同一组地址总线;而且内存地址空间范围内的数据是可以被缓存的,但虚拟SPM地址空间范围内的数据是不可以被缓存的。
6.根据权利要求1所述的方法,其特征在于,步骤5)所述的定义虚拟SPM空间请求和释放的MIPS汇编指令,指令分别为vmalloc, vfree,其指令格式分别如下:指令vmalloc,操作码111100 操作数size 20位,子码000010;指令vfree,操作码111100, 操作数size 20位,子码000011;一条MIPS汇编指令由32位二进制表示,前6位操作码111100表示用户自定义指令,最后的6位子码用于区分用户自定义的不同的指令,中间20位size是表示请求或释放的虚拟SPM空间的大小,单位为字节。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101869715A CN103268297A (zh) | 2013-05-20 | 2013-05-20 | 基于异构多核平台的加速核虚拟便笺存储器的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101869715A CN103268297A (zh) | 2013-05-20 | 2013-05-20 | 基于异构多核平台的加速核虚拟便笺存储器的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103268297A true CN103268297A (zh) | 2013-08-28 |
Family
ID=49011928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013101869715A Pending CN103268297A (zh) | 2013-05-20 | 2013-05-20 | 基于异构多核平台的加速核虚拟便笺存储器的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103268297A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105263022A (zh) * | 2015-09-21 | 2016-01-20 | 山东大学 | 一种针对hevc视频编码的多核混合存储管理方法 |
CN107273188A (zh) * | 2017-07-19 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种虚拟机中央处理单元cpu绑定方法及装置 |
CN109271250A (zh) * | 2018-08-08 | 2019-01-25 | 天津大学 | 面向电力电子暂态仿真加速的图形处理器内存管理方法 |
CN109862023A (zh) * | 2019-02-27 | 2019-06-07 | 中国科学院软件研究所 | 一种嵌入式设备实现加速计算和高速网络数据传输方法 |
CN110287128A (zh) * | 2019-05-21 | 2019-09-27 | 北京微密科技发展有限公司 | 一种融合闪存的cpu虚拟dram控制器 |
CN110516194A (zh) * | 2018-08-15 | 2019-11-29 | 北京航空航天大学 | 基于异构众核处理器的格点量子色动力学并行加速方法 |
WO2023077880A1 (zh) * | 2021-11-08 | 2023-05-11 | 海飞科(南京)信息技术有限公司 | 基于便笺存储器来共享数据的方法和电子装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060248526A1 (en) * | 2005-04-28 | 2006-11-02 | Arad Rostampour | Providing virtual device access via firmware |
CN101739385A (zh) * | 2009-12-11 | 2010-06-16 | 中国科学院软件研究所 | 一种支持服务质量关联的复合服务选择方法 |
CN101739358B (zh) * | 2009-12-21 | 2012-07-04 | 东南大学 | 利用虚存机制对片上异构存储资源动态分配的方法 |
-
2013
- 2013-05-20 CN CN2013101869715A patent/CN103268297A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060248526A1 (en) * | 2005-04-28 | 2006-11-02 | Arad Rostampour | Providing virtual device access via firmware |
CN101739385A (zh) * | 2009-12-11 | 2010-06-16 | 中国科学院软件研究所 | 一种支持服务质量关联的复合服务选择方法 |
CN101739358B (zh) * | 2009-12-21 | 2012-07-04 | 东南大学 | 利用虚存机制对片上异构存储资源动态分配的方法 |
Non-Patent Citations (2)
Title |
---|
VIVY SUHENDRA,ETC: "Integrated Scratchpad Memory Optimization and Task Scheduling for MPSoC Architectures", 《PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON COMPLILERS,ARCHITECTURE AND SYNTHESIS FOR EMBEDDED SYSTEM(CASES)》, 25 October 2006 (2006-10-25) * |
汪东: "《中国博士学位论文全文数据库(信息科技辑)》", 15 July 2009, article "异构多核DSP数据流前瞻关键技术研究", pages: I137-16 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105263022A (zh) * | 2015-09-21 | 2016-01-20 | 山东大学 | 一种针对hevc视频编码的多核混合存储管理方法 |
CN105263022B (zh) * | 2015-09-21 | 2018-03-02 | 山东大学 | 一种针对hevc视频编码的多核混合存储管理方法 |
CN107273188A (zh) * | 2017-07-19 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种虚拟机中央处理单元cpu绑定方法及装置 |
CN107273188B (zh) * | 2017-07-19 | 2020-08-18 | 苏州浪潮智能科技有限公司 | 一种虚拟机中央处理单元cpu绑定方法及装置 |
CN109271250A (zh) * | 2018-08-08 | 2019-01-25 | 天津大学 | 面向电力电子暂态仿真加速的图形处理器内存管理方法 |
CN110516194A (zh) * | 2018-08-15 | 2019-11-29 | 北京航空航天大学 | 基于异构众核处理器的格点量子色动力学并行加速方法 |
CN109862023A (zh) * | 2019-02-27 | 2019-06-07 | 中国科学院软件研究所 | 一种嵌入式设备实现加速计算和高速网络数据传输方法 |
CN109862023B (zh) * | 2019-02-27 | 2020-08-07 | 中国科学院软件研究所 | 一种嵌入式设备实现加速计算和高速网络数据传输方法 |
CN110287128A (zh) * | 2019-05-21 | 2019-09-27 | 北京微密科技发展有限公司 | 一种融合闪存的cpu虚拟dram控制器 |
WO2023077880A1 (zh) * | 2021-11-08 | 2023-05-11 | 海飞科(南京)信息技术有限公司 | 基于便笺存储器来共享数据的方法和电子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103268297A (zh) | 基于异构多核平台的加速核虚拟便笺存储器的方法 | |
EP3382557B1 (en) | Method and apparatus for persistently caching storage data in a page cache | |
US20100082930A1 (en) | Gpu assisted garbage collection | |
CN103927277A (zh) | Cpu和gpu共享片上高速缓存的方法及装置 | |
US20150227469A1 (en) | Method For Pinning Data In Large Cache In Multi-Level Memory System | |
US9507534B2 (en) | Home agent multi-level NVM memory architecture | |
US20180336143A1 (en) | Concurrent cache memory access | |
US11468001B1 (en) | Processing-in-memory concurrent processing system and method | |
WO2021108061A1 (en) | Methods and systems for fetching data for an accelerator | |
WO2019010703A1 (zh) | 读、部分写数据方法以及相关装置 | |
CN101008921A (zh) | 基于总线侦听的嵌入式异构多核缓存一致性方法 | |
Starke et al. | IBM POWER9 memory architectures for optimized systems | |
US7519792B2 (en) | Memory region access management | |
US9244841B2 (en) | Merging eviction and fill buffers for cache line transactions | |
US9251073B2 (en) | Update mask for handling interaction between fills and updates | |
US10055359B2 (en) | Pinning objects in multi-level memory hierarchies | |
Papon | Enhancing Data Systems Performance by Exploiting SSD Concurrency & Asymmetry | |
WO2023113942A1 (en) | Cache probe transaction filtering | |
US20230236985A1 (en) | Memory controller zero cache | |
Lowe-Power | On Heterogeneous Compute and Memory Systems | |
US20180089082A1 (en) | Cooperative write-back cache flushing for storage devices | |
Hildebrand et al. | CachedArrays: Optimizing Data Movement for Heterogeneous Memory Systems | |
CN114217809B (zh) | 一种无横向一致性的众核精简Cache协议实现方法 | |
CN111819516A (zh) | 保存和恢复记分板 | |
Wang et al. | Shared Last-Level Cache Management and Memory Scheduling for GPGPUs with Hybrid Main Memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130828 |