CN103838679A - 一种缓存处理方法及装置 - Google Patents

一种缓存处理方法及装置 Download PDF

Info

Publication number
CN103838679A
CN103838679A CN201210478383.4A CN201210478383A CN103838679A CN 103838679 A CN103838679 A CN 103838679A CN 201210478383 A CN201210478383 A CN 201210478383A CN 103838679 A CN103838679 A CN 103838679A
Authority
CN
China
Prior art keywords
data
spatial cache
start address
read
cache
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
Application number
CN201210478383.4A
Other languages
English (en)
Other versions
CN103838679B (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.)
Sanechips Technology Co Ltd
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201210478383.4A priority Critical patent/CN103838679B/zh
Priority to PCT/CN2013/082050 priority patent/WO2013189413A2/zh
Priority to US14/442,066 priority patent/US9563584B2/en
Priority to JP2015543258A priority patent/JP6059360B2/ja
Priority to EP13806128.8A priority patent/EP2911061B1/en
Publication of CN103838679A publication Critical patent/CN103838679A/zh
Application granted granted Critical
Publication of CN103838679B publication Critical patent/CN103838679B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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/468Specific access rights for resources, e.g. using capability register
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/06Address interface arrangements, e.g. address buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement

Abstract

本发明提供一种缓存处理方法及装置。其中方法包括:在需要缓存第一用户的第一数据时,读取当前存储起始地址;从当前存储起始地址开始存储第一数据到缓存空间,所述第一数据占用的缓存空间为第一缓存空间;对应于第一用户中的第一数据,保存一包括所述第一缓存空间的起始地址和空间长度的存储位置信息,使得在需要读取第一数据时,能够根据起始地址和空间长度定位所述第一缓存空间,并从第一缓存空间读取第一数据;更新当前存储起始地址为第一缓存空间的下一地址,使得下一个需要缓存的数据,能够从该存储起始地址开始进行缓存,从而使每个已缓存的数据都能连续占用所述缓存空间。本发明更好地利用缓存空间,减少为读取而保存的地址信息。

Description

一种缓存处理方法及装置
技术领域
本发明涉及网络存储领域,特别是一种缓存处理方法及装置。
背景技术
SoC(System on Chip,系统级芯片)技术将CPU/MPU(Micro Process Unit微处理器)、DSP(Digital Signal Processor,数字信息号处理)、硬件加速器、存储、外设接口等各个子系统,通过总线互联集成到一颗芯片上。这些子系统除了其内部数据处理所需要的本地专用存储/缓存之外,还往往由于各种各样的原因需要共享集中的存储/缓存,如各子系统相互之间需要数据交互缓冲;如处理多用户业务而共享存储。
这些由多源/多用户共享的集中缓存可以在物理上是一块或几块存储单元,如一块SRAM(Static Random-Access Memory,静态存储器)或一块DRAM(Dynamic Random-Access Memory,动态随机存储器)或几块它们的任意组合,但我们可以在逻辑上把它们看作是一块共享缓存。下文所述的共享缓存均基于逻辑上是一块存储单元来论述,而实际物理实现上可以是一块或多块存储单元的组合。
如同任何公共资源一样,多源/多用户共享一块缓存的使用需要考虑存储资源的分配与管理。
目前SoC设计中的缓存共享使用方法基本上是将共享缓存划分为N个相等大小的“片”,这个“片”的大小以能容纳下各源/各用户所需的最小数据为准,大的数据就占用整数个“片”。
这种方法的缺点是需要很大的存储空间来记录每个“片”的使用状态及存储位置信息。特别是当系统所需的最小数据的长度很小时,相对于每个“片”用于存储的空间也会随之很小,在存储大数据时,需要用到很多的“片”。另外使用这方法还对共浪费享缓存空间,如有些数据只比整数个“片”大一点点,这就需要再单独使用一个“片”进行存储。
发明内容
本发明要解决的技术问题是提供一种能够更好的进行规划管理并能节约使用缓存空间的缓存处理方法及装置。
为解决上述技术问题,本发明的实施例提供一种缓存处理方法,包括如下步骤:
在需要缓存第一用户的第一数据时,读取当前存储起始地址;
从所述当前存储起始地址开始存储所述第一数据到缓存空间,其中,所述第一数据占用的缓存空间为第一缓存空间;
对应于所述第一用户中的第一数据,保存一包括所述第一缓存空间的起始地址和空间长度的存储位置信息,使得在需要读取所述第一数据时,能够根据所述起始地址和空间长度定位所述第一缓存空间,并从所述第一缓存空间读取所述第一数据;
更新所述当前存储起始地址为所述第一缓存空间的下一地址,使得下一个需要缓存的数据,能够从该存储起始地址开始进行缓存,从而使每个已缓存的数据都能连续占用所述缓存空间。
其中,从所述当前存储起始地址开始存储所述第一数据到缓存空间后还包括:
记录所述第一数据的空闲状态,从而根据所述空闲状态,判断所述第一数据是否被释放掉。
其中,本方法还包括:
设置一阀值,所述阀值为存储一最大数据可能需要的缓存空间大小;
若在当前存储起始地址之后的剩余缓存空间小于预设阀值,则按照预设方法对所述缓存空间的数据进行整理,并在整理之后更新每个数据的起始地址;其中,所述预设方法为:在所述缓存空间中选择一最早存储的失效数据,在其起始地址,重新对该数据之后的有效数据连续存储,直至全部有效数据都已连续占用所述缓存空间;其中,所述失效数据为:已被释放掉的数据;所述有效数据为:未被释放掉的数据;
在整理完成后,更新所述当前存储起始地址为最后一个有效数据在所述缓存空间的下一地址。
其中,所述预设方法具体为:
在所述缓存空间中选择一最早存储的失效数据,通过其存储位置信息,获取该失效数据在所述缓存空间的起始地址,更新当前存储起始地址为所述失效数据的起始地址;
从该存储起始地址开始存储在所述失效数据之后的第一有效数据,更新第一有效数据的存储位置信息;
更新所述当前存储起始地址为所述第一有效数据所在缓存空间的下一地址,使得在其之后的下一个有效数据能够从该存储起始地址开始重新进行缓存,直至每个已缓存的有效数据都能连续占用所述缓存空间。
使得在其之后的下一个有效数据能够从该存储起始地址开始重新进行缓存,直至每个已缓存的有效数据都能连续占用所述缓存空间。
其中,本方法还包括:
对正被读取或者正被整理的有效数据进行锁定,使得一个有效数据在锁定过程中不能同时被读取与整理。
本发明的实施例还提供一种缓存处理装置,包括:
读取存储起始地址模块,用于在需要缓存第一用户的第一数据时,读取当前存储起始地址;
缓存模块,用于从所述当前存储起始地址开始存储所述第一数据到缓存空间,其中,所述第一数据占用的缓存空间为第一缓存空间;
存储数据管理模块,用于对应于所述第一用户中的第一数据,保存一包括所述第一缓存空间的起始地址和空间长度的存储位置信息,使得在需要读取所述第一数据时,能够根据所述起始地址和空间长度定位所述第一缓存空间,并从所述第一缓存空间读取所述第一数据;
更新存储起始地址模块,用于更新所述当前存储起始地址为所述第一缓存空间的下一地址,使得下一个需要缓存的数据,能够从该存储起始地址开始进行缓存,从而使每个已缓存的数据都能连续占用所述缓存空间。
其中,所述存储数据管理模块还用于:记录所述第一数据的空闲状态,根据所述空闲状态,判断所述第一数据是否被释放掉。
其中,本装置还包括:
整理模块,用于设置一阀值,所述阀值为存储一最大数据可能需要缓存空间的大小;
若在当前存储起始地址之后的剩余缓存空间小于预设阀值,则按照预设方法对所述缓存空间的数据进行整理,并在整理之后更新每个数据的起始地址;其中,所述预设方法为:在所述缓存空间中选择一最早存储的失效数据,在其起始地址,重新对该数据之后的有效数据连续存储,直至全部有效数据都已连续占用所述缓存空间;其中,所述失效数据为:已被释放掉的数据;所述有效数据为:未被释放掉的数据;
在整理完成后,更新所述当前存储起始地址为最后一个有效数据在所述缓存空间的下一地址。
其中,本装置还包括:
锁定模块,用于对正被读取或者正被整理的有效数据进行锁定,使得一个有效数据在锁定过程中不能同时被读取与整理。
本发明的上述技术方案的有益效果如下:
将数据连续存储在缓存空间中,相对于现有技术将缓存空间分成若干个片段而言,可以更好的利用缓存空间;进一步地,现有技术中,为了实现数据的读取,需要记录这些片段的缓存地址,信息存储量极为庞大,而本实施例的缓存空间由于连续存储数据,只需要记录每个数据的所在缓存空间中的起始地址以及空间长度就能实现读取,其信息存储量取决于数据包的数量。
附图说明
图1为本发明的缓存处理方法的示意图;
图2为本发明的缓存处理方法的流程图;
图3为本发明的缓存处理方法中的对缓存空间进行整理的流程图;
图4为本发明的缓存处理装置的示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
实施例1
如图1所示,一种缓存处理方法,包括如下步骤:
步骤1,在需要缓存第一用户的第一数据时,读取当前存储起始地址;
步骤2,从所述当前存储起始地址开始存储所述第一数据到缓存空间,其中,所述第一数据占用的缓存空间为第一缓存空间;
步骤3,对应于所述第一用户中的第一数据,保存一包括所述第一缓存空间的起始地址和空间长度的存储位置信息,使得在需要读取所述第一数据时,能够根据所述起始地址和空间长度定位所述第一缓存空间,并从所述第一缓存空间读取所述第一数据;
步骤4,更新所述当前存储起始地址为所述第一缓存空间的下一地址,使得下一个需要缓存的数据,能够从该存储起始地址开始进行缓存,从而使每个已缓存的数据都能连续占用所述缓存空间。
本实施例的方法将数据连续存储在缓存空间中,相对于现有技术将缓存空间分成若干个片段而言,可以更好的利用缓存空间;进一步地,现有技术中,为了实现数据的读取,需要记录这些片段的缓存地址,信息存储量极为庞大,而本实施例的缓存空间由于连续存储数据,只需要记录每个数据的所在缓存空间中的起始地址以及空间长度就能实现读取,其信息存储量取决于数据包的数量。
下面对图1所示方法详细描述:
如图2所示,在需要缓存第一用户的第一数据时进行一下步骤:
步骤S201,获取当前存储起始地址st_add.1;
步骤S202,从st_add.1开始,将第一用户的第一数据存储进缓存空间,第一数据占用的缓存空间为第一缓存空间;
步骤S203,在额外存储空间中保存第一缓存空间的起始地址(如图中2所示的“st_add.1”)、空间长度(如图中2所示的“len.1”)以及第一数据的空闲状态(如图中2所示的“valid”,valid=1表示该数据未被释放,valid=0表示数据已被释放掉),使得在需要读取第一数据时,只需找到第一缓存空间的起始地址st_add.1以及空间长度为len.1即可定位第一缓存空间,读取第一数据;
为了使每个存储的数据都能连续性占用缓存空间,在步骤S203完成之后,进行步骤S204,更新所述当前存储起始为第一缓存空间的下一地址;
此时的存储起始地址应为st_add.2,当需要继续存储数据时,如存储第二数据,可进行一下步骤:
步骤S205,从st_add.2开始,将第二数据存储进缓存空间中,第二数据占用的缓存空间为第二缓存空间(如图2所示);
需要指出的是,所述第二数据并不一定是第一用户需要缓存的数据,也可以属于其他用户;
步骤S206,在额外存储空间中保存第二缓存空间的起始地址(如图中2所示的“st_add.2”)、空间长度(如图中2所示的“len.2”)以及第二数据的空闲状态(如图中2所示的“valid”);
步骤S207,更新所述当前存储起始为第二缓存空间的下一地址。
之后其他需要存储的数据都应按照上述方法保存进缓存空间中,使得每个已缓存的数据都能连续占用缓存空间,并在额外存储空间中记录每个数据的起始地址、空间长度。
由于缓存空间有限,当存储某一数据时,可能会出现存储起始地址之后的剩余缓存空间不足以再进行存储,而有些缓存数据已经被读取并释放,其对应的缓存空间也已清空,这就需要对整个缓存空间进行整理,将已被清空的缓存空间整合到当前存储初始地址之后的剩余缓存空间中,其方法为:
设置一阀值,所述阀值为存储一最大数据可能需要的缓存空间大小;
若在当前存储起始地址之后的剩余缓存空间小于预设阀值,则按照预设方法对所述缓存空间的数据进行整理,并在整理之后更新每个数据的起始地址;其中,所述预设方法为:在所述缓存空间中选择一最早存储的失效数据,在其起始地址,重新对该数据之后的有效数据连续存储,直至全部有效数据都已连续占用所述缓存空间;其中,所述失效数据为:已被释放掉的数据;所述有效数据为:未被释放掉的数据;
下面对预设方法进行详细描述:
如图3所示,缓存空间中已存有6个数据,通过额外缓存空间记录的空闲状态可知数据2与数据5为失效数据(即空闲状态Valid=0),都已被释放掉,其所在的缓存空间也被清空。数据1、3、4、6为有效数据(即空闲状态Valid=1),在缓存空间中未被释放。
当接到指令存储数据7时,预设一个阈值,该阈值为存储一个最大数据所需要的空间大小,若剩余的缓存空间小于预设阀值,则说明目前未被使用缓冲空间无法存储数据7,需要对缓冲空间进行整理,整理步骤为:
步骤S1,更新当前存储起始地址为数据2的起始地址;将数据3在数据2的起始地址开始重新存储(即将数据3所对应的缓存空间向上挪一段距离,其距离等于数据2的空间长度),并更新额外存储空间中记录数据2的起始地址;
步骤S2,更新当前存储起始地址为数据3所在缓存空间的下一地址,在该存储起始地址重新存储数据4,并更新额外存储空间中数据4的起始地址;
步骤S3,更新当前存储起始地址为数据4所在缓存空间的下一地址,在该存储起始地址重新存储数据6,从而使数据2与数据5所对应的缓存空间整合到当前存储起始地址之后的剩余缓存空间中;之后更新额外存储空间中数据6的起始地址;
步骤S4,在缓存空间整理完成之后,存储数据7。需要指出的是,所有有效数据都应是连续占用缓存空间。
另外当需要对目标数据进行读取时,可能出现目标数据正被进行整理,其在缓存空间的位置因为发生变化致使读取出现错误。为了解决这一问题,可以对正被读取或者正被整理的有效数据进行锁定,在锁定过程中使得一个有效数据不能同时被读取与整理。例如:在数据3被整理的时候,可将其锁定,直到整理完成后再解除锁定,在数据3被锁定的时,无法接收读取请求,从而避免整理过程干扰读取过程。
本实施例的方法有益效果如下:
1.将每个数据连续存储在缓存空间中,可以更好的利用缓存空间,节约资源;
2.对缓存空间进行整理,将已被清空的缓存空间整合到当前存储初始地址之后的剩余缓存空间中,保持全部有效数据都已连续占用所述缓存空间,可以在有限缓存空间中存储更多的数据,进一步节约资源。
3.现有技术中,将整个缓存空间分成若干个片段,有些大数据会由很多个片段来保存,为了实现数据的读取,需要记录这些片段的缓存地址,信息存储量极为庞大,而本实施例的由于缓存空间连续存储数据,只需要记录每个有效数据所在缓存空间中的起始地址以及空间长度就能实现读取。
实施例2
一种缓存处理装置,包括:
读取存储起始地址模块,用于在需要缓存第一用户的第一数据时,读取当前存储起始地址;缓存模块,用于从所述当前存储起始地址开始存储所述第一数据到缓存空间,其中,所述第一数据占用的缓存空间为第一缓存空间;
存储数据管理模块,用于对应于所述第一用户中的第一数据,保存一包括所述第一缓存空间的起始地址和空间长度的存储位置信息,使得在需要读取所述第一数据时,能够根据所述起始地址和空间长度定位所述第一缓存空间,并从所述第一缓存空间读取所述第一数据;另外,存储数据管理模块还可以记录所述第一数据的空闲状态,并根据所述空闲状态,判断所述第一数据是否被释放掉;
更新存储起始地址模块,用于更新所述当前存储起始地址为所述第一缓存空间的下一地址,使得下一个需要缓存的数据,能够从该存储起始地址开始进行缓存,从而使每个已缓存的数据都能连续占用所述缓存空间。
由于缓存空间有限,当存储某一数据时,可能会出现存储起始地址之后的剩余缓存空间不足以再进行存储,而有些缓存的数据已经被读取并释放,其对应的缓存空间也已清空,这就需要对整个缓存空间进行整理。
整理模块会设置一阀值,所述阀值为存储一最大数据可能需要缓存空间的大小;若在当前存储起始地址之后的剩余缓存空间小于预设阀值,则按照预设方法对所述缓存空间的数据进行整理,并在整理之后更新每个数据的起始地址;其中,所述预设方法为:在所述缓存空间中选择一最早存储的失效数据,在其起始地址,重新对该数据之后的有效数据连续存储,直至全部有效数据都已连续占用所述缓存空间;其中,所述失效数据为:已被释放掉的数据;所述有效数据为:未被释放掉的数据;在整理完成后,更新所述当前存储起始地址为最后一个有效数据在所述缓存空间的下一地址。
所述预设方法具体为:在所述缓存空间中选择一最早存储的失效数据,通过其存储位置信息,获取该失效数据在所述缓存空间的起始地址,更新当前存储起始地址为所述失效数据的起始地址;从该存储起始地址开始存储在所述失效数据之后的第一有效数据,更新第一有效数据的存储位置信息;更新所述当前存储起始地址为所述第一有效数据所在缓存空间的下一地址,使得在其之后的下一个有效数据能够从该存储起始地址开始重新进行缓存,直至每个已缓存的有效数据都能连续占用所述缓存空间。
为了避免整理模块在进行整理过程时,干扰缓存空间中数据的读取,本装置还包括一个锁定模块,可以对正被读取或者正被整理的有效数据进行锁定,使得一个有效数据在锁定过程中不能同时被读取与整理。
本实施例的方法有益效果如下:
1.将每个数据连续存储在缓存空间中,可以更好的利用缓存空间,节约资源;
2.对缓存空间进行整理,将已被清空的缓存空间整合到当前存储初始地址之后的剩余缓存空间中,保持全部有效数据都已连续占用所述缓存空间,可以在有限缓存空间中存储更多的数据,进一步节约资源。
3.现有技术中,将整个缓存空间分成若干个片段,有些大数据会由很多个片段来保存,为了实现数据的读取,需要记录这些片段的缓存地址,信息存储量极为庞大,而本实施例的由于缓存空间连续存储数据,只需要记录每个有效数据的所在缓存空间中的起始地址以及空间长度就能实现读取。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (9)

1.一种缓存处理方法,其特征在于,包括如下步骤:
在需要缓存第一用户的第一数据时,读取当前存储起始地址;
从所述当前存储起始地址开始存储所述第一数据到缓存空间,其中,所述第一数据占用的缓存空间为第一缓存空间;
对应于所述第一用户中的第一数据,保存一包括所述第一缓存空间的起始地址和空间长度的存储位置信息,使得在需要读取所述第一数据时,能够根据所述起始地址和空间长度定位所述第一缓存空间,并从所述第一缓存空间读取所述第一数据;
更新所述当前存储起始地址为所述第一缓存空间的下一地址,使得下一个需要缓存的数据,能够从该存储起始地址开始进行缓存,从而使每个已缓存的数据都能连续占用所述缓存空间。
2.根据权利要求1所述的缓存处理方法,其特征在于,从所述当前存储起始地址开始存储所述第一数据到缓存空间后还包括:
记录所述第一数据的空闲状态,从而根据所述空闲状态,判断所述第一数据是否被释放掉。
3.根据权利要求2所述的缓存处理方法,其特征在于,还包括:
设置一阀值,所述阀值为存储一最大数据可能需要的缓存空间大小;
若在当前存储起始地址之后的剩余缓存空间小于预设阀值,则按照预设方法对所述缓存空间的数据进行整理,并在整理之后更新每个数据的起始地址;其中,所述预设方法为:在所述缓存空间中选择一最早存储的失效数据,在其起始地址,重新对该数据之后的有效数据连续存储,直至全部有效数据都已连续占用所述缓存空间;其中,所述失效数据为:已被释放掉的数据;所述有效数据为:未被释放掉的数据;
在整理完成后,更新所述当前存储起始地址为最后一个有效数据在所述缓存空间的下一地址。
4.根据权利要求3所述的缓存处理方法,其特征在于,所述预设方法具体为:
在所述缓存空间中选择一最早存储的失效数据,通过其存储位置信息,获取该失效数据在所述缓存空间的起始地址,更新当前存储起始地址为所述失效数据的起始地址;
从该存储起始地址开始存储在所述失效数据之后的第一有效数据,更新第一有效数据的存储位置信息;
更新所述当前存储起始地址为所述第一有效数据所在缓存空间的下一地址,使得在其之后的下一个有效数据能够从该存储起始地址开始重新进行缓存,直至每个已缓存的有效数据都能连续占用所述缓存空间。
5.根据权利要求2所述的存储缓存的方法,其特征在于,还包括:
对正被读取或者正被整理的有效数据进行锁定,使得一个有效数据在锁定过程中不能同时被读取与整理。
6.一种缓存处理装置,其特征在于,包括:
读取存储起始地址模块,用于在需要缓存第一用户的第一数据时,读取当前存储起始地址;
缓存模块,用于从所述当前存储起始地址开始存储所述第一数据到缓存空间,其中,所述第一数据占用的缓存空间为第一缓存空间;
存储数据管理模块,用于对应于所述第一用户中的第一数据,保存一包括所述第一缓存空间的起始地址和空间长度的存储位置信息,使得在需要读取所述第一数据时,能够根据所述起始地址和空间长度定位所述第一缓存空间,并从所述第一缓存空间读取所述第一数据;
更新存储起始地址模块,用于更新所述当前存储起始地址为所述第一缓存空间的下一地址,使得下一个需要缓存的数据,能够从该存储起始地址开始进行缓存,从而使每个已缓存的数据都能连续占用所述缓存空间。
7.根据权利要求6所述的缓存处理装置,其特征在于,所述存储数据管理模块还用于:记录所述第一数据的空闲状态,够根据所述空闲状态,判断所述第一数据是否被释放掉。
8.根据权利要求7所述的缓存处理装置,其特征在于,还包括:
整理模块,用于设置一阀值,所述阀值为存储一最大数据可能需要缓存空间的大小;
若在当前存储起始地址之后的剩余缓存空间小于预设阀值,则按照预设方法对所述缓存空间的数据进行整理,并在整理之后更新每个数据的起始地址;其中,所述预设方法为:在所述缓存空间中选择一最早存储的失效数据,在其起始地址,重新对该数据之后的有效数据连续存储,直至全部有效数据都已连续占用所述缓存空间;其中,所述失效数据为:已被释放掉的数据;所述有效数据为:未被释放掉的数据;
在整理完成后,更新所述当前存储起始地址为最后一个有效数据在所述缓存空间的下一地址。
9.根据权利要求7所述的缓存处理装置,其特征在于,还包括:
锁定模块,用于对正被读取或者正被整理的有效数据进行锁定,使得一个有效数据在锁定过程中不能同时被读取与整理。
CN201210478383.4A 2012-11-22 2012-11-22 一种缓存处理方法及装置 Active CN103838679B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201210478383.4A CN103838679B (zh) 2012-11-22 2012-11-22 一种缓存处理方法及装置
PCT/CN2013/082050 WO2013189413A2 (zh) 2012-11-22 2013-08-22 一种缓存处理方法及装置
US14/442,066 US9563584B2 (en) 2012-11-22 2013-08-22 Method and device for buffer processing in system on chip
JP2015543258A JP6059360B2 (ja) 2012-11-22 2013-08-22 バッファ処理方法及び装置
EP13806128.8A EP2911061B1 (en) 2012-11-22 2013-08-22 Buffer processing method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210478383.4A CN103838679B (zh) 2012-11-22 2012-11-22 一种缓存处理方法及装置

Publications (2)

Publication Number Publication Date
CN103838679A true CN103838679A (zh) 2014-06-04
CN103838679B CN103838679B (zh) 2017-08-04

Family

ID=49769556

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210478383.4A Active CN103838679B (zh) 2012-11-22 2012-11-22 一种缓存处理方法及装置

Country Status (5)

Country Link
US (1) US9563584B2 (zh)
EP (1) EP2911061B1 (zh)
JP (1) JP6059360B2 (zh)
CN (1) CN103838679B (zh)
WO (1) WO2013189413A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105550124A (zh) * 2015-12-09 2016-05-04 四川长虹电器股份有限公司 一种信息处理方法和电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5610809A (en) * 1994-01-11 1997-03-11 Mitsubishi Denki Kabushiki Kaisha Programmable controller and program capacity changing method thereof
CN1725728A (zh) * 2004-07-22 2006-01-25 华为技术有限公司 一种基于信令协议的缓冲区的管理方法
CN101122886A (zh) * 2007-09-03 2008-02-13 杭州华三通信技术有限公司 分配缓存空间的方法和装置以及缓存控制器
CN101196857A (zh) * 2008-01-04 2008-06-11 太原理工大学 双端口访问对称动态存储器的接口
US7650370B2 (en) * 1999-10-28 2010-01-19 Bea Systems, Inc. System and method for regeneration of methods and garbage collection of unused methods
CN102197381A (zh) * 2008-10-28 2011-09-21 Nxp股份有限公司 用于可拆卸装置的具有高速缓存和接口的数据处理电路
CN102646084A (zh) * 2012-03-06 2012-08-22 上海纳轩电子科技有限公司 一种基于fpga实现的高效网络数据包存储方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3781406T2 (de) 1987-06-09 1993-04-01 Ibm Steuerungsschema fuer segmentierte puffer, gegruendet auf gemeinsam genutzter referenzzaehlung.
CA2098459A1 (en) * 1992-06-15 1993-12-16 James L. Adcock Computer method and system for conservative-stack and generational heap garbage collection
JPH06161864A (ja) * 1992-11-19 1994-06-10 Toshiba Corp オブジェクト記憶管理方法
JPH08241186A (ja) * 1995-03-07 1996-09-17 Fujitsu Ltd バッファメモリ管理ユニット及びバッファメモリ管理方法
US6938126B2 (en) 2002-04-12 2005-08-30 Intel Corporation Cache-line reuse-buffer
CN100366022C (zh) 2004-04-02 2008-01-30 华为技术有限公司 一种缓存分配方法及装置
TWI244087B (en) * 2004-08-12 2005-11-21 Via Tech Inc Method and device for memory space allocation
JP2006161864A (ja) 2004-12-02 2006-06-22 Calsonic Kansei Corp 自動変速機のセレクトアシスト装置
JP5073337B2 (ja) 2007-03-28 2012-11-14 株式会社ダイセル 点火器組立体

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5610809A (en) * 1994-01-11 1997-03-11 Mitsubishi Denki Kabushiki Kaisha Programmable controller and program capacity changing method thereof
US7650370B2 (en) * 1999-10-28 2010-01-19 Bea Systems, Inc. System and method for regeneration of methods and garbage collection of unused methods
CN1725728A (zh) * 2004-07-22 2006-01-25 华为技术有限公司 一种基于信令协议的缓冲区的管理方法
CN101122886A (zh) * 2007-09-03 2008-02-13 杭州华三通信技术有限公司 分配缓存空间的方法和装置以及缓存控制器
CN101196857A (zh) * 2008-01-04 2008-06-11 太原理工大学 双端口访问对称动态存储器的接口
CN102197381A (zh) * 2008-10-28 2011-09-21 Nxp股份有限公司 用于可拆卸装置的具有高速缓存和接口的数据处理电路
CN102646084A (zh) * 2012-03-06 2012-08-22 上海纳轩电子科技有限公司 一种基于fpga实现的高效网络数据包存储方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105550124A (zh) * 2015-12-09 2016-05-04 四川长虹电器股份有限公司 一种信息处理方法和电子设备

Also Published As

Publication number Publication date
CN103838679B (zh) 2017-08-04
EP2911061A2 (en) 2015-08-26
EP2911061B1 (en) 2022-03-30
JP2016504665A (ja) 2016-02-12
US20150317264A1 (en) 2015-11-05
US9563584B2 (en) 2017-02-07
WO2013189413A2 (zh) 2013-12-27
WO2013189413A3 (zh) 2014-02-13
EP2911061A4 (en) 2015-11-11
JP6059360B2 (ja) 2017-01-11

Similar Documents

Publication Publication Date Title
US8516271B2 (en) Securing non-volatile memory regions
CN102855193B (zh) 非易失性存储系统中未使用的逻辑地址的挂载时去映射
US10860493B2 (en) Method and apparatus for data storage system
JP2018133086A (ja) ハイブリッドメモリーモジュール及びその動作方法
CN109690498B (zh) 内存管理方法和设备
US20160132541A1 (en) Efficient implementations for mapreduce systems
JP7340326B2 (ja) メンテナンス動作の実行
US8868844B2 (en) System and method for a software managed cache in a multiprocessing environment
US9413358B2 (en) Forward counter block
CN105677580A (zh) 访问缓存的方法和装置
CN101231619A (zh) 一种基于非连续页的动态内存管理方法
CN103729304A (zh) 数据处理方法及装置
WO2008041070A1 (en) Reallocation of memory through global addressing
US10877902B2 (en) Cuckoo caching
US20130061009A1 (en) High Performance Free Buffer Allocation and Deallocation
US20190384725A1 (en) Method, apparatus, and system for storing memory encryption realm key ids
US20170090791A1 (en) Data storage
CN109983538B (zh) 存储地址转换
CN106295413B (zh) 半导体装置
WO2007009262A1 (en) Dma simultaneous transfer to multiple memories
CN103838679A (zh) 一种缓存处理方法及装置
CN115422604A (zh) 针对非易失内存的数据安全处理方法、内存控制器及系统
US20220116205A1 (en) Systems, methods, and apparatus for security key management for i/o devices
US10942904B2 (en) Mapping first identifier to second identifier
WO2020227878A1 (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20221118

Address after: 518055 Zhongxing Industrial Park, Liuxian Avenue, Xili street, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: SANECHIPS TECHNOLOGY Co.,Ltd.

Address before: 518057 Ministry of justice, Zhongxing building, South Science and technology road, Nanshan District hi tech Industrial Park, Shenzhen, Guangdong

Patentee before: ZTE Corp.

TR01 Transfer of patent right