CN110059024A - 一种内存空间数据缓存方法及装置 - Google Patents
一种内存空间数据缓存方法及装置 Download PDFInfo
- Publication number
- CN110059024A CN110059024A CN201910320211.6A CN201910320211A CN110059024A CN 110059024 A CN110059024 A CN 110059024A CN 201910320211 A CN201910320211 A CN 201910320211A CN 110059024 A CN110059024 A CN 110059024A
- Authority
- CN
- China
- Prior art keywords
- data
- spm
- cached
- main memory
- program
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- 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
Abstract
本发明涉及一种内存空间数据缓存方法及装置,属于计算机领域,提高了应用程序的运算效率,降低了运行时延,方法包括:对待运行的程序进行数据分析,得到程序运行时的数据特征信息;基于所述数据特征信息和运行所述程序的硬件平台的配置参数,对运行程序时主存储器中需缓存的数据进行划分,得到需通过SPM缓存的第一数据和需通过Cache缓存的第二数据;将所述第一数据,从主存储器中移入SPM中进行缓存。本发明结合SPM和DMA的性能优势,结合待处理程序特点,将与CPU交互频繁的数据通过DMA动态搬运至SPM中进行缓存处理,实现了数据的高速处理,保证了实时性,降低了功耗,提升了系统的整体性能。
Description
技术领域
本发明涉及计算机领域,尤其是一种内存空间数据缓存方法及装置。
背景技术
在无线通信协议处理、深度学习、视频监控、无人驾驶等应用处理过程中,处理器需要进行大量的数据运算,与主存间进行频繁的数据交互。为了使数据的读取速度匹配处理器的运算速度,在片上引入了片上数据缓存技术,目前片上缓存大多数采用SRAM结构,主要分为Cache(高速缓存)和SPM(ScratchPad Memory,便签式存储器)两种方式。如果数据的局部性差,使用Cache缓存方式会发生大量的Cache Miss情况,缓存一旦没有命中,处理器则需要花费大量的周期从外存中重新获取数据,将浪费大量的时钟周期等待数据写回,浪费计算资源,并在处理无线通信协议、监控视频、无人机、无人驾驶等应用场景中带来较大的延时。而SPM相比Cache具有面积小、访存时间短、功耗低等特点,并且具有实际的物理地址,可以通过软件进行操作。
5G通信、无人驾驶、物联网时代都将来临,更低的延时要求,更高的数据处理速度,对算法和硬件的要求变得更高。面积更小、更高效、低延迟的数据处理方式成为了未来技术发展的方向。
发明内容
鉴于上述的分析,本发明旨在提供一种内存空间数据缓存方法及装置,通过SPM方式进行大数据流处理,解决了高级语言程序在运算时的时延问题,提升数据处理效率,保证实时性。
本发明的目的主要是通过以下技术方案实现的:
本发明公开了一种内存空间数据缓存方法,包括,
对待运行的程序进行数据分析,得到程序运行时的数据特征信息;
基于所述数据特征信息和运行所述程序的硬件平台的配置参数,对运行程序时主存储器中需缓存的数据进行划分,得到需通过SPM缓存的第一数据和需通过Cache缓存的第二数据;
将所述第一数据,从主存储器中移入SPM中进行缓存。
进一步地,通过DMA方式,将所述第一数据,从主存储器中移入SPM中进行缓存。
进一步地,将局部性低于设定阈值、与CPU交互频率高于设定阈值或数据块大于设定阈值的需缓存数据作为第一数据。
进一步地,在将所述第一数据,从主存储器中移入SPM中进行缓存之前,还包括对所述第一数据进行时间上和/或主存储器地址空间上的优化;
所述时间上的优化,根据在程序运行过程中,CPU读写处理缓存数据的时间顺序要求,进行缓存数据从主存储器搬进SPM的时间顺序设定和缓存数据搬出SPM写回主存储器的时间顺序设定。
所述主存储器地址空间上的优化,将存储地址不连续,但在CPU处理过程中存在时间关联的缓存数据块,在主存储器中划分空间缓存数据时,使所述缓存数据块的缓存地址连续。
进一步地,还包括对SPM的内部存储结构进行划分,所述划分后的内部存储结构与CPU处理过程中每次需缓存数据的大小相匹配。
还公开了一种内存空间数据缓存装置,包括,数据分析模块、数据划分模块和数据调度模块;
所述数据分析模块,对待运行的程序进行数据分析,得到程序运行时的数据特征信息;
所述数据划分模块,基于所述数据特征信息和运行所述程序的硬件平台的配置参数,对运行程序时主存储器中需缓存的数据进行划分,得到需通过SPM缓存的第一数据和需通过Cache缓存的第二数据;
所述数据调度模块,将所述第一数据,从主存储器中移入SPM中进行缓存。
进一步地,所述数据调度模块,通过DMA方式,将所述第一数据,从主存储器中移入SPM中进行缓存。
进一步地,所述数据划分模块中将局部性低于设定阈值、与CPU交互频率高于设定阈值或数据块大于设定阈值的需缓存数据作为第一数据。
进一步地,还包括数据优化模块,所述数据优化模块在将所述第一数据,从主存储器中移入SPM中进行缓存之前,还包括对所述第一数据进行时间上和/或主存储器地址空间上的优化;
所述时间上的优化,根据在程序运行过程中,CPU读写处理缓存数据的时间顺序要求,进行缓存数据从主存储器搬进SPM的时间顺序设定和缓存数据搬出SPM写回主存储器的时间顺序设定。
所述主存储器地址空间上的优化,将存储地址不连续,但在CPU处理过程中存在时间关联的缓存数据块,在主存储器中划分空间缓存数据时,使所述缓存数据块的缓存地址连续。
进一步地,还包括SPM缓存空间管理模块,所述SPM缓存空间管理模块对SPM的内部存储结构进行划分,使划分后的内部存储结构与CPU处理过程中每次需缓存数据的大小相匹配。
本发明方案至少可以实现如下之一有益效果:
本发明公开的内存空间数据缓存方法及装置,根据高级语言程序在运行时的数据特征信息,并结合程序运算的硬件平台,将需缓存的数据划分为SPM缓存数据和Cache缓存数据;并通过DMA方式实现主存与SPM的数据交互;结合SPM和DMA的性能优势,结合待处理程序特点,将局部性较差、与CPU交互频繁或数据块较大的数据通过DMA动态搬运至SPM中进行处理,实现了数据的高速处理。保证了实时性,降低了功耗,提升了系统的整理性能。
特别是在无线通信领域中,可以采用将待处理数据和协议实体缓存搬运至SPM缓存中处理的方式,提高其运算速度,降低延时;
在视频解析领域中,针对视频解析中的大量流数据和协议前后帧参考,可以将参考帧的数据通过DMA搬运至SPM中,提高后续图像的解析速度;
在机器学习领域中,可以使用DMA将机器学习中需要的大量图片训练数据搬运至SPM中供CPU处理,减少CPU数据搬运次数,提高处理能力。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
图1为本实施例中的内存空间管理方法流程示例图;
图2为本实施例中的程序运算硬件平台缓存结构示例图;
图3为本实施例中的SPM空间划分管理实例图;
图4为本实施例中的内存空间管理装置组成连接示例图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。
本实施例公开了一种内存空间数据缓存方法,如图1所示,包括如下步骤:
步骤S1、对待运行的程序进行数据分析,得到程序运行时的数据特征信息;
其中的待运行的程序为高级语言程序,当前在软件程序编辑中常用的高级语言如C/C++、PYTHON、JAVA或C#等编写的程序;
所采用的数据分析方法包括理论分析、协议分析、结构建模或仿真分析等等;
具体的,数据特征信息包括数据块大小及数量、与CPU交互频繁程度、连续还是离散、数据的生存周期、该数据块被处理器访问的寻址方式等等;
其中,数据特征信息中的离散还是连续、数据的生存周期、寻址方式等信息都对数据的局部性构成影响。
优选的,可以通过对待处理程序的应用协议进行理论分析或协议分析,得到数据块的大小、数量等。
还可以通过对待处理程序进行建模分析,得到相应的数据信息;通过使用相应的仿真工具,进行仿真分析,得到程序运行时的数据大小等信息,这些方法都可以采用现有的程序分析方法,采用这些分析方法其目的在于,得到程序运算过程中的数据特征信息;
步骤S2、基于所述数据特征信息和运行所述程序的硬件平台的配置参数,对运行程序时主存储器中需缓存的数据进行划分,得到需通过SPM缓存的第一数据和需通过Cache缓存的第二数据;
考虑到程序运算硬件平台的性能对程序运行的速度有着直接的影响,因此,本实施例在程序运行时对主存储器中的需缓存数据进行划分时,考虑了硬件平台的参数,结合硬件平台性能选择数据缓存方式。
硬件平台的配置参数可以包括但不限于以下因素:CPU数量及性能、Cache大小及结构、SPM大小及结构、DMA性能、总线种类等等。
本实施例将SPM和Cache共同作为主存数据的L1级缓存空间,优选的,通过DMA方式,进行主存储器与SPM之间的数据交互;
在使用DMA方式时,CPU通过配置DMA可以实现将主存储器中指定的数据搬运至SPM中的指定空间中;也可以通过CPU配置将SPM指定的数据搬运至主存储器中。
由于本实施例中,数据的缓存与硬件平台的SPM的空间大小和DMA的性能有直接的关系,因此,对运行程序时主存储器中的需缓存数据进行划分时,必须要考虑硬件平台的SPM的空间大小和DMA的性能。
示例性的,程序运行硬件平台如图2所示;该硬件平台仅为可适用于本发明方法的一种硬件平台形式,包括Cache缓存、SPM缓存两种缓存结构并具有可以实现主存与SPM间数据搬运的DMA机制,采用与该硬件平台相类似结构的硬件平台,均可无障碍的采用本实施例的方法。
图2所示硬件平台,包括处理器、外部数据主存储器、片上缓存(Cache)、片上便签式缓存(SPM)、直接存储器存取机制控制器DMA;
硬件平台的配置参数,可以为I/D cache大小为4KB,片上单核SPM大小为128KB,DMA可以实现主存与SPM的数据搬运。
优选的,SPM与主存储器之间可以通过DMA完成数据交互;CPU通过配置DMA可以实现将主存储器中指定的、需缓存的数据搬运至SPM中的指定空间中;也可以通过CPU配置将SPM指定的缓存数据搬运至主存储器中;
优选的,在对无线通信领域中,所述需缓存的数据可以为待处理接收或待发送的无线承载数据或协议栈各层的实体数据等;
在对视频解析领域中,所述需缓存的可以为针对视频解析中的大量流数据和协议前后帧参考;
在机器学习领域中,所述需缓存的可以为机器学习中需要的大量图片训练数据和训练参数数据。
这些数据的特点是,数据块大、CPU交互频繁或者局部性差;如果采用Cache方式缓存,缓存的效率比采用SPM方式缓存的效率要低很多。而采用SPM进行缓存,并通过DMA搬运至SPM中缓存可以大量较少CPU的数据搬运所花费的周期损耗、降低功耗,实现明确的读取周期,避免Cache方式的替换策略发生替换。
在本实施例中,局部性差指的是,在程序运行过程中,CPU处理过程中通过Cache方式读取该块数据每次都发生缓存不命中情况。
由上分析,设定局部性阈值,与CPU交互频率阈值和数据块大小阈值;
当主存储器中需缓存数据的局部性低于设定阈值时,划分为第一数据,需通过SPM进行缓存;
当主存储器中需缓存数据与CPU交互频率高于设定阈值时,划分为第一数据,需通过SPM进行缓存;
当主存储器中需缓存数据的数据块大于设定阈值时,划分为第一数据,需通过SPM进行缓存;
其他情况下的主存储器中需缓存数据,划分为第二数据,需通过Cache进行缓存。
通常的,设定的局部性阈值,与CPU交互频率阈值和数据块大小阈值根据待处理程序运行时的数据特征信息和运行硬件平台中参数综合确定;
其中,对于数据局部性,可通过CPU处理过程中以Cache方式读取该数据发生缓存不命中的概率来判断;则局部性阈值,可以设置成以Cache方式读取该数据发生缓存不命中的概率,例如60%-100%;当缓存数据的局部性低于局部性阈值时,该数据在程序运行过程中,通过Cache缓存发生缓存不命中带来的性能损失将大于将该数据通过DMA搬运至SPM进行缓存的性能损耗,因此采用SPM方式的性能更好。
与CPU交互频率阈值可以设置成CPU读取该数据的次数,例如超过1次;当缓存数据与CPU交互频率大于阈值时,由于CPU多次读取,通过DMA搬运至SPM中缓存以供CPU后续处理,CPU在需要读取该数据块时,便可以直接从SPM中进行读取;而如果采用Cache方式,则需要多次的触发总线对主存储器进行多次读取才能实现数据缓存;通过DMA搬运至SPM中缓存带来的性能损耗会比以Cache方式多次缓存带来的损耗小,因此采用SPM方式的性能更好。
数据块大小阈值可以设置成一定的数据字节数,例如20字节;缓存数据的数据块大于阈值时,例如图片像素点数据,CPU在处理时需要将数据全部读取,由于通常SPM缓存空间比Cache缓存空间大,而SPM片上缓存可采用DMA方式进行数据块的搬运,CPU可以配置一次DMA任务将数据块预先搬运至SPM中进行缓存,以供CPU后续处理,CPU在需要读取该数据块时,便可以直接从SPM中进行读取;而如果采用Cache方式,则需要不断的触发总线对主存储器进行多次读取才能完成数据缓存,通过DMA搬运至SPM中缓存带来的性能损耗会比以Cache方式多次缓存带来的损耗小,因此采用SPM方式的性能更好。
步骤S3、对所述第一数据进行时间上优化和/或主存储器地址空间上优化;
对于需通过SPM缓存的数据,由于数据的局部性差、与CPU交互频繁或者数据块大等问题,会存在与SPM空间或DMA方式不匹配的问题,因此还需要对数据进行优化管理。
在进行程序数据特征分析后,由于需要将主存储器中的部分需缓存的数据通过DMA搬运至SPM中进行缓存,需要保证CPU在需要对该数据进行处理时DMA预先已经将该数据搬运至SPM中,并且及时将SPM中处理完毕的数据搬运回主存储器,腾出空间给待处理的数据,同时,DMA机制要求待搬运指定长度的数据必须在存储空间中是连续的,因此,还需要对数据进行优化管理。
优化管理具体为时间优化和/或主存储器地址空间上优化。
所述时间优化指的是将划分后的SPM缓存数据进行时间上的安排调度,根据在程序运行过程中,CPU读写处理缓存数据的时间顺序要求,进行缓存数据从主存储器搬进SPM的时间顺序设定和缓存数据搬出SPM写回主存储器的时间顺序设定。
所述主存储器地址空间上优化指的是,当存在多段长度较小的缓存数据,并且在处理的时间上邻近,在主存储器中缓存时,保证这些数据的地址是连续的,然后通过一次DMA搬运完成从主存储器到SPM中的数据传递,节省搬运次数,提高效率。考虑到,每次需缓存数据不能超过SPM剩余空间,且长度不能过小(几字节);长度过小,在使用例如DMA等快速数据搬运方法时,会浪费DMA性能,因此,本实施中,对需通过SPM缓存的数据的大小进行优化,使其长度与SPM的剩余空间的大小相匹配,例如几十字节以上;当一个数据块的长度不够时,可将多个时空特性相关的数据合并在一起,形成一个SPM缓存数据,通过DMA一次在SPM缓存的内存空间中搬入或搬出。
步骤S4、对SPM的内存空间进行管理;
为了提高搬入或搬出的效率,减少缓存时间,还可以对SPM的内存空间进行优化管理。
所述对SPM的内存空间进行管理包括对SPM的内部存储结构进行划分,使所述划分后的内部存储结构与每次需缓存数据的大小相匹配。保证SPM缓存的内存空间的充分利用,使CPU处理过程中计算效率最大化;
根据需缓存数据大小变化、与CPU交互频率、数据的生存周期等信息;可将SPM缓存空间的内部存储结构以图3所示;
图中列举了几种SPM空间的划分方式;1为不进行划分,2为二分,3为N等分,4、5或6为不等大划分;每种SPM空间的划分方式根据需缓存的数据特点决定;
不划分——即将整块SPM进行数据存储,那么CPU与SPM每次可以交互的缓存数据最大总量就为SPM的实际大小,例如,在图像处理、机器学习、视频编解码程序运行时,采用不划分的方式,将数据量很大的图像数据在SPM中整体缓存交互,可提高缓存的效率,节约运行的时间。
二分——即将SPM进行逻辑上划分为2块,可以等分,也可以按需要的比例划分,采用二分可很好的处理可分成两类的缓存数据,不同的缓存区域可以进行不同的数据缓存,例如,在进行图像、无线通信程序运行时,同时存在协议的结构体,动态缓存临时变量和待解析数据两类缓存数据,可采用二分的划分方式,将SPM二分,SPM0缓存协议的结构体,动态缓存临时变量,SPM1用于缓存待处理的图像、无线通信的待解析数据等,可提高缓存的效率,节约运行的时间,并且采用二分也可以很好的用来进行数据的乒乓操作处理;
N等分——即将SPM划分为等大小的N块,在包括链表操作处理的程序运行时,采用N等分的划分方式,可以很好的用于进行链表操作处理;
不等大划分——即每种数据块的大小数据不等,根据实际需要缓存数据的特点,灵活决定采用何种空间划分方式,可根据程序的具体情况灵活选择。。
为了进一步提高缓存数据的搬运速度,还可以对划分后的SPM缓存空间进行调度管理,例如,将调度频繁的数据优选搬进划分后的SPM缓存空间;
或者使用“乒乓操作”、“流水操作”等方式保证SPM缓存空间上有充足的数据供CPU处理并保证调配,降低由于搬运大块数据和缓存中带来的计算资源损耗和延时。
步骤5、将所述第一数据,从主存储器中移入SPM中进行缓存,并且可以通过同样的方式将数据从SPM中搬出并写入到主存储器中。
本实施例通过DMA方式,进行主存储器与SPM之间的数据交互;
通过DMA方式,以较小CPU的数据搬运消耗,实现数据的预先准备,降低CPU运算时的数据等待时间,降低处理延时,提高实时性;几组数据合并搬运等方式,结合数据优化策略、内存空间管理策略,协同优化,提升数据处理效率,保证实时性。
本实施例还公开了一种内存空间数据缓存装置,如图4所示,包括,数据分析模块、数据划分模块、数据优化模块、SPM缓存空间管理模块和数据调度模块;
所述数据分析模块,对待运行的程序进行数据分析,得到程序运行时的数据特征信息;
所述数据划分模块,基于所述数据特征信息和运行所述程序的硬件平台的配置参数,对运行程序时主存储器中需缓存的数据进行划分,得到需通过SPM缓存的第一数据和需通过Cache缓存的第二数据;
数据优化模块,所述数据优化模块对所述SPM缓存数据进行时间上优化和/或主存储器地址空间上优化;
所述时间上的优化,根据在程序运行过程中,CPU读写处理缓存数据的时间顺序要求,进行缓存数据从主存储器搬进SPM的时间顺序设定和缓存数据搬出SPM写回主存储器的时间顺序设定。
所述主存储器地址空间上的优化,将存储地址不连续,但在CPU处理过程中存在时间关联的缓存数据块,在主存储器中划分空间缓存数据时,使所述缓存数据块的缓存地址连续。
所述SPM缓存空间管理模块对SPM缓存空间的内部存储结构进行划分,所述划分后的内部存储结构与CPU处理过程中每次需缓存数据的大小相匹配;并且对划分后的SPM缓存空间进行调度管理,将调度频繁的数据优选搬进划分后的SPM缓存空间。
所述数据调度模块,将所述第一数据,从主存储器中移入SPM中进行缓存;并且可以通过同样的方式将数据从SPM中搬出并写入到主存储器中。
本实施例通过DMA方式,进行主存储器与SPM之间的数据交互;通过DMA方式,以较小CPU的数据搬运消耗,实现数据的预先准备,降低CPU运算时的数据等待时间,降低处理延时,提高实时性;几组数据合并搬运等方式,结合数据优化策略、内存空间管理策略,协同优化,提升数据处理效率,保证实时性,降低了功耗,提升了系统的整理性能。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种内存空间数据缓存方法,其特征在于,包括,
对待运行的程序进行数据分析,得到程序运行时的数据特征信息;
基于所述数据特征信息和运行所述程序的硬件平台的配置参数,对运行程序时主存储器中需缓存的数据进行划分,得到需通过SPM缓存的第一数据和需通过Cache缓存的第二数据;
将所述第一数据,从主存储器中移入SPM中进行缓存。
2.根据权利要求1所述的内存空间管理方法,其特征在于,通过DMA方式,将所述第一数据,从主存储器中移入SPM中进行缓存。
3.根据权利要求1或2所述的内存空间管理方法,其特征在于,将局部性低于设定阈值、与CPU交互频率高于设定阈值或数据块大于设定阈值的需缓存数据作为第一数据。
4.根据权利要求3所述的内存空间管理方法,其特征在于,
在将所述第一数据,从主存储器中移入SPM中进行缓存之前,还包括对所述第一数据进行时间上和/或主存储器地址空间上的优化;
所述时间上的优化,根据在程序运行过程中,CPU读写处理缓存数据的时间顺序要求,进行缓存数据从主存储器搬进SPM的时间顺序设定和缓存数据搬出SPM写回主存储器的时间顺序设定;
所述主存储器地址空间上的优化,包括将存储地址不连续,但在CPU处理过程中存在时间关联的缓存数据块,在主存储器中划分空间缓存数据时,使所述缓存数据块的缓存地址连续。
5.根据权利要求3所述的内存空间管理方法,其特征在于,还包括对SPM的内部存储结构进行划分,所述划分后的内部存储结构与CPU处理过程中每次需缓存数据的大小相匹配。
6.一种内存空间数据缓存装置,其特征在于,包括,数据分析模块、数据划分模块和数据调度模块;
所述数据分析模块,对待运行的程序进行数据分析,得到程序运行时的数据特征信息;
所述数据划分模块,基于所述数据特征信息和运行所述程序的硬件平台的配置参数,对运行程序时主存储器中需缓存的数据进行划分,得到需通过SPM缓存的第一数据和需通过Cache缓存的第二数据;
所述数据调度模块,将所述第一数据,从主存储器中移入SPM中进行缓存。
7.根据权利要求6所述的内存空间管理装置,其特征在于,所述数据调度模块,通过DMA方式,将所述第一数据,从主存储器中移入SPM中进行缓存。
8.根据权利要求6所述的内存空间管理装置,其特征在于,所述数据划分模块中将局部性低于设定阈值、与CPU交互频率高于设定阈值或数据块大于设定阈值的需缓存数据作为第一数据。
9.根据权利要求7所述的内存空间管理方法,其特征在于,还包括数据优化模块,所述数据优化模块在将所述第一数据,从主存储器中移入SPM中进行缓存之前,还包括对所述第一数据进行时间上和/或主存储器地址空间上的优化;
所述时间上的优化,根据在程序运行过程中,CPU读写处理缓存数据的时间顺序要求,进行缓存数据从主存储器搬进SPM的时间顺序设定和缓存数据搬出SPM写回主存储器的时间顺序设定;
所述主存储器地址空间上的优化,将存储地址不连续,但在CPU处理过程中存在时间关联的缓存数据块,在主存储器中划分空间缓存数据时,使所述缓存数据块的缓存地址连续。
10.根据权利要求6所述的内存空间管理方法,其特征在于,还包括SPM缓存空间管理模块,所述SPM缓存空间管理模块对SPM的内部存储结构进行划分,使划分后的内部存储结构与CPU处理过程中每次需缓存数据的大小相匹配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910320211.6A CN110059024B (zh) | 2019-04-19 | 2019-04-19 | 一种内存空间数据缓存方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910320211.6A CN110059024B (zh) | 2019-04-19 | 2019-04-19 | 一种内存空间数据缓存方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110059024A true CN110059024A (zh) | 2019-07-26 |
CN110059024B CN110059024B (zh) | 2021-09-21 |
Family
ID=67319884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910320211.6A Active CN110059024B (zh) | 2019-04-19 | 2019-04-19 | 一种内存空间数据缓存方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110059024B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256604A (zh) * | 2020-10-19 | 2021-01-22 | 海光信息技术股份有限公司 | 直接存储器访问系统和方法 |
CN112328513A (zh) * | 2020-10-14 | 2021-02-05 | 合肥芯碁微电子装备股份有限公司 | 扫描式曝光系统及其数据缓存及调度方法和装置 |
CN112506437A (zh) * | 2020-12-10 | 2021-03-16 | 上海阵量智能科技有限公司 | 芯片、数据搬移方法和电子设备 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1444154A (zh) * | 2002-03-07 | 2003-09-24 | 株式会社东芝 | 多处理机系统 |
CN1673976A (zh) * | 2004-03-22 | 2005-09-28 | 日立环球储存科技荷兰有限公司 | 数据存储装置、其控制方法以及磁盘存储装置 |
CN101286138A (zh) * | 2008-06-03 | 2008-10-15 | 浙江大学 | 基于数据划分的多线程共享多核处理器二级缓存的方法 |
CN101290592A (zh) * | 2008-06-03 | 2008-10-22 | 浙江大学 | 一种mpsoc上多道程序共享spm的实现方法 |
CN101295240A (zh) * | 2008-06-03 | 2008-10-29 | 浙江大学 | 嵌入式系统中基于spm的指令缓冲的实现方法 |
CN101739358A (zh) * | 2009-12-21 | 2010-06-16 | 东南大学 | 利用虚存机制对片上异构存储资源动态分配的方法 |
CN101763316A (zh) * | 2009-12-25 | 2010-06-30 | 东南大学 | 基于虚存机制的指令片上异构存储资源动态分配的方法 |
CN101866213A (zh) * | 2010-07-23 | 2010-10-20 | 上海交通大学 | Spm-dma结构的嵌入式系统的节能方法 |
CN102193867A (zh) * | 2011-05-19 | 2011-09-21 | 武汉科技大学 | 一种面向MPSoC的事务内存的实现方法 |
CN102981883A (zh) * | 2012-10-29 | 2013-03-20 | 无锡江南计算技术研究所 | 一种编译器数据预取方法和装置 |
KR20130101926A (ko) * | 2012-03-06 | 2013-09-16 | 한국전자통신연구원 | 스크래치 패드 메모리 구조를 이용한 캐시 및 이를 포함하는 프로세서 |
KR101422083B1 (ko) * | 2012-12-12 | 2014-07-23 | 국민대학교산학협력단 | 스크래치패드 메모리 관리 시스템 및 방법 |
CN106844555A (zh) * | 2016-12-30 | 2017-06-13 | 江苏瑞中数据股份有限公司 | 一种用于电网wams系统的时序数据存储方法 |
EP3306479A1 (en) * | 2016-10-06 | 2018-04-11 | Stichting IMEC Nederland | Memory structure comprising scratchpad memory |
CN107924327A (zh) * | 2015-07-27 | 2018-04-17 | 华为技术有限公司 | 用于多线程处理的系统和方法 |
-
2019
- 2019-04-19 CN CN201910320211.6A patent/CN110059024B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1444154A (zh) * | 2002-03-07 | 2003-09-24 | 株式会社东芝 | 多处理机系统 |
CN1673976A (zh) * | 2004-03-22 | 2005-09-28 | 日立环球储存科技荷兰有限公司 | 数据存储装置、其控制方法以及磁盘存储装置 |
CN101286138A (zh) * | 2008-06-03 | 2008-10-15 | 浙江大学 | 基于数据划分的多线程共享多核处理器二级缓存的方法 |
CN101290592A (zh) * | 2008-06-03 | 2008-10-22 | 浙江大学 | 一种mpsoc上多道程序共享spm的实现方法 |
CN101295240A (zh) * | 2008-06-03 | 2008-10-29 | 浙江大学 | 嵌入式系统中基于spm的指令缓冲的实现方法 |
CN101739358A (zh) * | 2009-12-21 | 2010-06-16 | 东南大学 | 利用虚存机制对片上异构存储资源动态分配的方法 |
CN101763316A (zh) * | 2009-12-25 | 2010-06-30 | 东南大学 | 基于虚存机制的指令片上异构存储资源动态分配的方法 |
CN101866213A (zh) * | 2010-07-23 | 2010-10-20 | 上海交通大学 | Spm-dma结构的嵌入式系统的节能方法 |
CN102193867A (zh) * | 2011-05-19 | 2011-09-21 | 武汉科技大学 | 一种面向MPSoC的事务内存的实现方法 |
KR20130101926A (ko) * | 2012-03-06 | 2013-09-16 | 한국전자통신연구원 | 스크래치 패드 메모리 구조를 이용한 캐시 및 이를 포함하는 프로세서 |
CN102981883A (zh) * | 2012-10-29 | 2013-03-20 | 无锡江南计算技术研究所 | 一种编译器数据预取方法和装置 |
KR101422083B1 (ko) * | 2012-12-12 | 2014-07-23 | 국민대학교산학협력단 | 스크래치패드 메모리 관리 시스템 및 방법 |
CN107924327A (zh) * | 2015-07-27 | 2018-04-17 | 华为技术有限公司 | 用于多线程处理的系统和方法 |
EP3306479A1 (en) * | 2016-10-06 | 2018-04-11 | Stichting IMEC Nederland | Memory structure comprising scratchpad memory |
CN106844555A (zh) * | 2016-12-30 | 2017-06-13 | 江苏瑞中数据股份有限公司 | 一种用于电网wams系统的时序数据存储方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328513A (zh) * | 2020-10-14 | 2021-02-05 | 合肥芯碁微电子装备股份有限公司 | 扫描式曝光系统及其数据缓存及调度方法和装置 |
CN112328513B (zh) * | 2020-10-14 | 2024-02-02 | 合肥芯碁微电子装备股份有限公司 | 扫描式曝光系统及其数据缓存及调度方法和装置 |
CN112256604A (zh) * | 2020-10-19 | 2021-01-22 | 海光信息技术股份有限公司 | 直接存储器访问系统和方法 |
CN112256604B (zh) * | 2020-10-19 | 2022-07-08 | 海光信息技术股份有限公司 | 直接存储器访问系统和方法 |
CN112506437A (zh) * | 2020-12-10 | 2021-03-16 | 上海阵量智能科技有限公司 | 芯片、数据搬移方法和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110059024B (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hegde et al. | Morph: Flexible acceleration for 3d cnn-based video understanding | |
CN110704360B (zh) | 一种基于异构fpga数据流的图计算优化方法 | |
US9734056B2 (en) | Cache structure and management method for use in implementing reconfigurable system configuration information storage | |
CN107122244B (zh) | 一种基于多gpu的图数据处理系统及方法 | |
KR100893527B1 (ko) | 재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링방법 | |
CN110059024A (zh) | 一种内存空间数据缓存方法及装置 | |
US20110066828A1 (en) | Mapping of computer threads onto heterogeneous resources | |
CN109918199B (zh) | 基于gpu的分布式图处理系统 | |
US9348756B2 (en) | Active memory processor system | |
CN104202373A (zh) | 移动云计算迁移方法及系统 | |
EP2241969B1 (en) | Program and data annotation for hardware customization and energy optimization | |
US7743366B2 (en) | System and method for compiling a computer program | |
CN110852930A (zh) | 一种基于OpenCL的FPGA图处理加速方法和系统 | |
US11429299B2 (en) | System and method for managing conversion of low-locality data into high-locality data | |
CN105426163A (zh) | 一种基于mic协处理器的单数据流分位数处理方法 | |
CN113312283A (zh) | 一种基于fpga加速的异构图学习系统 | |
CN110222410B (zh) | 一种基于Hadoop MapReduce的电磁环境仿真方法 | |
Lu et al. | Reconfigurable multi-core architecture-a plausible solution to the von Neumann performance bottleneck | |
CN112035056B (zh) | 一种基于多计算单元的并行ram访问设备及访问方法 | |
CN109710563B (zh) | 一种可重构系统的缓存分区划分方法 | |
DE102020119518A1 (de) | Verfahren und vorrichtung für mehrere asynchrone konsumenten | |
Robson | Techniques for communication optimization of parallel programs in an adaptive runtime system | |
Sun et al. | Collaborative compaction optimization system using near-data processing for LSM-tree-based key-value stores | |
Zhang et al. | Optimization Methods for Computing System in Mobile CPS | |
Wang et al. | SwapNet: Efficient Swapping for DNN Inference on Edge AI Devices Beyond the Memory Budget |
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 |