CN117009088A - 内存管理方法、装置、芯片、电子设备及可读存储介质 - Google Patents
内存管理方法、装置、芯片、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN117009088A CN117009088A CN202311246290.3A CN202311246290A CN117009088A CN 117009088 A CN117009088 A CN 117009088A CN 202311246290 A CN202311246290 A CN 202311246290A CN 117009088 A CN117009088 A CN 117009088A
- Authority
- CN
- China
- Prior art keywords
- memory
- operation instruction
- priority
- state
- memory operation
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 583
- 238000007726 management method Methods 0.000 title claims abstract description 75
- 238000001514 detection method Methods 0.000 claims abstract description 30
- 238000000034 method Methods 0.000 claims abstract description 22
- 230000003213 activating effect Effects 0.000 claims abstract description 13
- 230000004913 activation Effects 0.000 claims description 25
- 238000010586 diagram Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 10
- 102100020800 DNA damage-regulated autophagy modulator protein 1 Human genes 0.000 description 4
- 101000931929 Homo sapiens DNA damage-regulated autophagy modulator protein 1 Proteins 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
Abstract
本发明实施例公开了一种内存管理方法、装置、芯片、电子设备及可读存储介质,能够提高内存利用率和指令处理速度。方法包括:通过内存状态检测模块,检测至少一组内存单元对应的至少一个内存单元状态;内存单元状态表征内存单元是否处于激活状态;根据至少一个内存单元状态,从接收到的至少一条内存操作指令中确定出第一优先级的内存操作指令与第二优先级的内存操作指令;访问第一优先级的内存操作指令对应的内存单元,并且,激活第二优先级的内存操作指令对应的内存单元。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种内存管理方法、装置、芯片、电子设备及可读存储介质。
背景技术
目前,人工智能处理器等非传统处理器会将多条内存访问指令发送到内存管理单元,通过内存管理单元进行内存访问。然而,目前内存管理单元的内存访问方式规划不合理,导致内存访问等待时间较长,从而降低了内存利用率和指令处理速度。
发明内容
本发明实施例期望提供一种内存管理方法、装置、芯片、电子设备及可读存储介质,能够提高内存利用率和指令处理速度。
本发明的技术方案是这样实现的:
第一方面,本发明实施例提供一种内存管理方法,包括:
通过内存状态检测模块,检测至少一组内存单元对应的至少一个内存单元状态;内存单元状态表征内存单元是否处于激活状态;
根据所述至少一个内存单元状态,从接收到的至少一条内存操作指令中确定出第一优先级的内存操作指令与第二优先级的内存操作指令;
访问所述第一优先级的内存操作指令对应的内存单元,并且,激活所述第二优先级的内存操作指令对应的内存单元。
第二方面,本发明实施例提供一种内存管理装置,包括:
检测单元,用于通过内存状态检测模块,检测至少一组内存单元对应的至少一个内存单元状态;内存单元状态表征内存单元是否处于激活状态;
确定单元,用于根据所述至少一个内存单元状态,从接收到的至少一条内存操作指令中确定出第一优先级的内存操作指令与第二优先级的内存操作指令;
处理单元,用于访问所述第一优先级的内存操作指令对应的内存单元,并且,激活所述第二优先级的内存操作指令对应的内存单元。
第三方面,本发明实施例提供一种芯片,包括:存储器与处理器;
所述存储器,用于存储可执行指令;
所述处理器,用于在执行所述存储器中存储的可执行指令时,实现本发明实施提供的内存管理方法。
第四方面,本发明实施例提供一种电子设备,存储器与处理器;
所述存储器,用于存储可执行指令;
所述处理器,用于在执行所述存储器中存储的可执行指令时,实现本发明实施例提供的内存管理方法。
第五方面,本发明实施例提供一种可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本发明实施例提供的内存管理方法。
第六方面,本发明实施例提供一种计算机程序产品,包括计算机程序或指令,所述计算机程序或指令被处理器执行时实现本发明实施例提供的内存管理方法。
本发明实施例提供了一种内存管理方法、装置、芯片、电子设备及可读存储介质,通过内存状态检测模块检测至少一组内存单元对应的至少一个内存单元状态,从而可以提前获知各个内存单元是否处于激活状态,这样,在接收到至少一条内存操作指令的情况下,可以根据至少一个内存单元状态,对内存操作指令进行优先级区分,确定出第一优先级的内存操作指令与第二优先级的内存操作指令。在执行第一优先级的内存操作指令对激活状态的内存单元进行访问时,可以同步对第二优先级的内存操作指令对应的内存单元进行激活,这样,在后续执行第二优先级的内存操作指令时,对应的内存单元已经是激活状态,可以直接访问,从而减少了内存激活的等待时间,提高了内存利用率与指令处理速度。
附图说明
图1为人工智能处理器的内存访问特点示意图;
图2为目前的内存管理方法的流程示意图;
图3为目前的内存管理方法的执行效果示意图;
图4为本发明实施例提供的内存管理方法的可选的流程示意图一;
图5为本发明实施例提供的内存管理方法的可选的流程示意图二;
图6为本发明实施例提供的内存管理方法的可选的流程示意图三;
图7为本发明实施例提供的一种内存管理单元中各个模块与内存操作模块的交互流程示意图;
图8为本发明实施例提供的内存管理方法的执行效果示意图;
图9为本发明实施例提供的一种内存管理装置的可选的结构示意图;
图10为本发明实施例提供的一种芯片的可选的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
目前,一些非传统处理器,如人工智能(Artificial Intelligence,AI)处理器对内存(memory)的访问方式和传统处理器有很大不同。例如,AI处理器对内存访问的特点是多数数据访问没有相关性,可以乱序处理,而且多条内存访问指令会预先发送到内存管理单元。如果沿用传统内存访问方式对上述多条内存访问指令一条条顺序处理,则内存利用率较低。如图1所示,先执行内存访问指令A,以从内存中读取数据;进而根据读取的数据执行计算指令A;接着执行内存访问指令B,以从内存中读取数据;进而根据读取的数据执行计算指令B。如此,内存管理单元和AI处理器中的计算单元串行处理,导致内存访问不连续,从而降低了内存利用率与指令处理速度。
为了解决内存利用率低的问题,目前的一种内存管理方法是在图形处理器(Graphics Processing Unit,GPU)中加入张量内存加速器(Tensor Memory Accelerator,TMA),用以解决计算单元和内存管理单元的并行问题。如图2所示,处理器中运行有线程1、线程2与线程3,在线程1通过内存管理单元完成数据拷贝,开始运行数据计算和进程管理时,线程2可以开始通过内存管理单元发起内存访问进行数据拷贝;在线程2完成数据拷贝,开始运行数据计算和进程管理时,线程3可以开始通过内存管理单元发起内存访问进行数据拷贝。如此,将数据计算和数据访问分离,可以实现不同线程或指令之间的并行处理。然而,虽然图2中的内存管理单元可以连续发起内存访问,但是实际在物理内存侧,内存访问对应的存储单元并没有被激活,还需要先进行存储单元的激活才能访问。如图3所示,内存管理单元下发针对内存中不同存储单元(也即内存单元),如存储单元1与存储单元2的一系列读指令或写指令,而读指令或写指令访问内存时,需要先激活对应的存储单元才能进行相应的读操作或写操作,这样会导致在内存的访问中有很长一段时间需要等待激活,无法进行数据读写。以动态随机存取存储器(Dynamic Random Access Memory,DRAM)为例,DRAM激活时间是22ns。因此,降低了内存利用率与指令处理速度。
以第二代高带宽内存(High Bandwidth Memory,HBM2)DRAM为例,每个通道128bit位宽,行地址周期时间tRC=48ns,常见64Byte数据访问时间是4个时钟周期,即2ns(HBM接口时钟频率以1Ghz计)。目前的内存管理方法在上述条件下的有效带宽利用率为。
可见,目前的内存管理方法没有合理访问内存,实际带宽利用率是非常低的,同时也降低了指令处理速度。
本发明实施例提供一种内存管理方法、装置、芯片、电子设备及可读存储介质,能够提高内存利用率与指令处理速度,下面说明本发明实施例提供的电子设备的示例性应用,本发明实施例提供的电子设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的用户终端,也可以实施为服务器。
参见图4,图4是本发明实施例提供的内存管理方法的流程示意图一,将结合图4示出的步骤进行说明。
S101、通过内存状态检测模块,检测至少一组内存单元对应的至少一个内存单元状态。
本发明实施例的内存管理方法应用于电子设备,具体地,应用于电子设备的处理器中的内存管理单元(Memory Management Unit,MMU)。其中,内存管理单元用于对电子设备的内存进行内存资源管理,以及基于处理器发起的内存操作指令进行内存访问控制。
本发明实施例在内存管理单元中增加了内存状态检测模块,用来检测电子设备中内存单元的状态。电子设备的内存可以包括至少一组内存单元,示例性地,一组内存单元可以是一个bank,电子设备的内存可以包括8个bank或16个bank。至少一组内存单元中每组内存单元包括至少一个内存单元。示例性地,一个内存单元可以是bank中的一行内存。其中,一行内存可以是存储阵列中一行内存网格(cell)。
本发明实施例中,内存单元状态表征内存单元是否处于激活状态。内存状态检测模块通过预实现的软硬件接口,检测至少一组内存单元中每组内存单元的每个内存单元是否处于激活状态,从而可以得到至少一组内存单元中每组内存单元的每个内存单元对应的内存单元状态,作为至少一个内存单元状态。
S102、根据至少一个内存单元状态,从接收到的至少一条内存操作指令中确定出第一优先级的内存操作指令与第二优先级的内存操作指令。
本发明实施例中,电子设备中的内存管理单元接收处理器发送的至少一条内存操作指令,至少一条内存操作指令中的每条内存操作指令对应一个内存单元。需要说明的是,每条内存操作指令可以针对其对应的内存单元进行独立的读操作或写操作,但至少一组内存单元的读操作或写操作的调用接口是共用的。
本发明实施例中,内存管理单元根据至少一个内存单元状态,对至少一条内存操作指令的处理次序进行优先级排序,将对应的内存单元为激活状态的内存操作指令设置为第一优先级,将对应的内存单元为未激活状态的内存操作指令设置为第二优先级。其中,第一优先级高于第二优先级。也就是说,根据至少一个内存单元状态,在至少一条内存操作指令中,优先执行对应的内存单元为激活状态的内存操作指令。
在一些实施例中,对于至少一条内存操作指令中的每条内存操作指令,在每条内存操作指令对应的内存单元的内存单元状态为激活状态的情况下,将该内存操作指令确定为第一优先级的内存操作指令;
在每条内存操作指令对应的内存单元的内存单元状态为未激活状态的情况下,将该内存操作指令确定为第二优先级的内存操作指令。
在一些实施例中,内存管理单元还包括内存状态更新模块。其中,内存状态更新模块用于记录和更新至少一个内存单元状态。示例性地,内存状态更新模块可以是至少一组内存单元对应的状态机(Bank State Machine)。内存状态检测模块将实时检测到的至少一个内存单元状态发送至内存状态更新模块,由内存状态更新模块根据最新的至少一个内存单元状态,对自身历史记录的至少一个内存单元状态进行更新和记录。也就是说好,内存状态更新模块中保持有最新的至少一个内存单元状态。这样内存管理单元在接收到至少一条内存操作指令时,可以从内存状态更新模块中获取至少一个内存单元状态,用于进行内存操作指令的优先级排序。
示例性地,内存管理单元可以包括内存控制模块。通过内存控制模块,可以从内存状态更新模块中读取至少一个内存单元状态,并根据至少一个内存单元状态,从接收到的至少一条内存操作指令中确定出第一优先级的内存操作指令与第二优先级的内存操作指令。
S103、访问第一优先级的内存操作指令对应的内存单元,并且,激活第二优先级的内存操作指令对应的内存单元。
本发明实施例中,基于确定出的第一优先级的内存操作指令与第二优先级的内存操作指令,电子设备通过内存管理单元,执行第一优先级的内存操作指令,也即访问第一优先级的内存操作指令对应的内存单元,并可根据内存操作指令的内容进行进一步的读或写操作。并且,内存管理单元向第二优先级的内存操作指令对应的内存单元发送激活指令,以提前激活第二优先级的内存操作指令对应的内存单元,这样,在执行第二优先级的内存操作指令时,其对应的内存单元已经被激活,可以直接访问,能够大大缩短内存访问的等待时间。
在实际应用中,访问第一优先级的内存操作指令对应的内存单元,与激活第二优先级的内存操作指令对应的内存单元这两个步骤可以同步执行,也可以以任意前后次序执行。在以前后次序执行时,上述两个步骤的执行间隔不大于预设时间间隔阈值,以保证激活与访问可以并行处理。
可以理解的是,本发明实施例通过内存状态检测模块检测至少一组内存单元对应的至少一个内存单元状态,从而可以提前获知各个内存单元是否处于激活状态,这样,在接收到至少一条内存操作指令的情况下,可以根据至少一个内存单元状态,对内存操作指令进行优先级区分,确定出第一优先级的内存操作指令与第二优先级的内存操作指令。在执行第一优先级的内存操作指令对激活状态的内存单元进行访问时,可以同步对第二优先级的内存操作指令对应的内存单元进行激活,这样,在后续执行第二优先级的内存操作指令时,对应的内存单元已经是激活状态,可以直接访问,从而减少了内存激活的等待时间,提高了内存利用率与指令处理速度。
在一些实施例中,电子设备中的内存管理单元可以通过上述的内存控制模块进行第一优先级的内存操作指令的内存访问。如图5所示,如下:
S201、通过内存控制模块,根据第一优先级的内存操作指令,向内存操作模块发送访问指令。
本发明实施例中,内存操作模块可以是电子设备的物理内存对应的资源管理模块。内存操作模块可以接收访问指令与激活指令,并根据访问指令或激活指令中的物理内存地址对物理内存中对应的内存单元进行访问或激活。
本发明实施例中,内存控制模块根据第一优先级的内存操作指令中的内存操作地址与操作内容,生成访问指令,访问指令包含内存操作地址对应的物理内存地址与操作内容。内存控制模块将访问指令发送至内存操作模块。
S202、通过内存操作模块,根据访问指令,访问第一优先级的内存操作指令对应的内存单元。
本发明实施例中,内存操作模块根据访问指令中的物理内存地址与操作内容,访问对应的内存单元,也即第一优先级的内存操作指令对应的内存单元。并且,可以基于访问指令中的操作内容对该内存单元进行读或写操作。示例性地,内存操作模块可以是DRAMController模块。
在一些实施例中,电子设备中的内存管理单元可以通过上述的内存控制模块进行第二优先级的内存操作指令对应的内存激活与内存访问。如图6所示,如下:
S301、通过内存控制模块,根据第二优先级的内存操作指令,发送激活指令发送至内存状态检测模块。
本发明实施例中,内存控制模块可以根据第二优先级的内存操作指令对应的内存操作地址,确定第二优先级的内存操作指令对应的内存单元地址,生成第二优先级的内存操作指令对应的内存单元地址的激活指令,将该激活指令发送至内存状态检测模块。
S302、通过内存状态检测模块,将激活指令发送至内存操作模块。
S303、通过内存操作模块,根据激活指令,激活第二优先级的内存操作指令对应的内存单元。
本发明实施例中,内存状态检测模块将激活指令发送至内存操作模块,内存操作模块根据激活指令中包含的第二优先级的内存操作指令对应的内存单元地址,激活第二优先级的内存操作指令对应的内存单元。
在一些实施例中,在第二优先级的内存操作指令对应的内存单元被激活之后,内存管理单元可以访问第二优先级的内存操作指令对应的内存单元。
示例性地,上述内存状态检测模块、内存状态更新模块、内存控制模块与内存操作模块的交互流程可以如图7所示。其中,内存管理单元7包括内存状态检测模块70、内存状态更新模块71、与内存控制模块72。内存状态检测模块70用于检测电子设备中每组内存单元中每个内存单元的内存单元状态,将每组内存单元中每个内存单元的内存单元状态发送给内存状态更新模块71进行记录与状态更新。
内存控制模块72从内存状态更新模块中读取内存单元状态,以此来做指令合理规划。内存控制模块72接收来自处理器的至少一条内存操作指令,根据内存单元状态对至少一条内存操作指令进行优先级排序。其中,若内存操作指令对应的内存单元处于激活状态,则对应的内存单元可优先被访问;若内存操作指令对应的内存单元处于未激活状态,则内存控制模块72通过内存状态检测模块70发送激活指令(如bank active指令)至内存操作模块73;内存操作模块73基于激活指令对对应的内存单元进行预处理,也即激活对应的内存单元,在后续访问该内存单元的时候可以直接访问。这样,可以在高优先级的内存操作指令进行内存访问时,可以对后续要访问的内存单元进行提前激活。
示例性地,如图8所示,在对内存单元1进行读或写操作的同时,可以对内存单元2进行预先激活,从而通过合理的内存操作规划,隐藏了内存激活时间,缩短了内存操作的等待时间,大大提高了内存利用率。并且,通过提高内存利用率缓解了内存墙的问题,从而提高了指令处理速度。
本发明实施例还提供一种内存管理装置。图9为本发明实施例提供的内存管理装置的结构示意图;如图9所示,内存管理装置3包括:检测单元31、确定单元32与处理单元33,其中:
检测单元31,用于通过内存状态检测模块,检测至少一组内存单元对应的至少一个内存单元状态;内存单元状态表征内存单元是否处于激活状态。
确定单元32,用于根据所述至少一个内存单元状态,从接收到的至少一条内存操作指令中确定出第一优先级的内存操作指令与第二优先级的内存操作指令。
处理单元33,用于访问第一优先级的内存操作指令对应的内存单元,并且,激活第二优先级的内存操作指令对应的内存单元。
在一些实施例中,所述至少一组内存单元中每组内存单元包括至少一个内存单元;所述至少一个内存单元状态包括:至少一组内存单元中每组内存单元的每个内存单元对应的内存单元状态;所述确定单元32,还用于对于所述至少一条内存操作指令中的每条内存操作指令,在所述每条内存操作指令对应的内存单元的内存单元状态为激活状态的情况下,将该内存操作指令确定为所述第一优先级的内存操作指令;在所述每条内存操作指令对应的内存单元的内存单元状态为未激活状态的情况下,将该内存操作指令确定为所述第二优先级的内存操作指令。
在一些实施例中,所述内存管理装置3还包括更新单元;所述更新单元,用于通过所述内存状态检测模块,将所述至少一个内存单元状态发送至内存状态更新模块;通过所述内存状态更新模块,根据所述至少一个内存单元状态,对历史记录的至少一个内存单元状态进行更新。
在一些实施例中,所述根据所述至少一个内存单元状态,从接收到的至少一条内存操作指令中确定出第一优先级的内存操作指令与第二优先级的内存操作指令之前,所述确定单元32,还用于通过内存控制模块,从所述内存状态更新模块中读取所述至少一个内存单元状态。
在一些实施例中,所述处理单元33,还用于通过内存控制模块,根据所述第二优先级的内存操作指令,发送激活指令发送至所述内存状态检测模块;通过所述内存状态检测模块,将所述激活指令发送至内存操作模块;通过所述内存操作模块,根据所述激活指令,激活所述第二优先级的内存操作指令对应的内存单元。
在一些实施例中,所述处理单元33,还用于所述激活所述第二优先级的内存操作指令对应的内存单元之后,访问所述第二优先级的内存操作指令对应的内存单元。
在一些实施例中,所述处理单元33,还用于通过内存控制模块,根据所述第一优先级的内存操作指令,向内存操作模块发送访问指令;通过所述内存操作模块,根据所述访问指令,访问所述第一优先级的内存操作指令对应的内存单元。
需要说明的是,以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明装置实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解。
本发明实施例还提供一种芯片,图10为本发明实施例提供的芯片的一种可选的结构示意图。如图10所示,该芯片4包括:存储器42与处理器43。其中,存储器42和处理器43通过通信总线44连接;存储器42,用于存储可执行指令;处理器43中的内存管理单元包括本发明实施例中的内存状态检测模块;处理器43,用于执行存储器42中存储的可执行指令时,实现本发明实施例提供的内存管理方法。
本发明实施例还提供一种电子设备,该电子设备中可以集成上述实施例提供的芯片。参考图10所示,该芯片4可以包括处理器43、以及存储有可执行指令的存储器42;处理器43和存储器42通过通信总线44进行通信;其中,处理器43中的内存管理单元包括本发明实施例中的内存状态检测模块;处理器43可以从存储器42中调用并运行可执行指令,实现本发明实施例提供的内存管理方法。
本发明实施例提供一种存储有可执行指令的可读存储介质(即计算机可读存储介质),其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本发明实施例提供的内存管理方法。
在一些实施例中,计算机可读存储介质可以是铁电随机存储器(FerroelectricRandom Access Memory,FRAM)、只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable Read Only Memory,PROM)、可擦编程只读存储器(Erasable ProgrammableRead Only Memory,EPROM)、 带电可擦可编程只读存储器(Electrically ErasableProgrammable Read OnlyMemory,EEPROM)、闪存、磁表面存储器、光盘、或只读光盘存储器(Compact Disc Read Only Memory,CD-ROM)等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(Hyper Text MarkupLanguage,HTML)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。
Claims (11)
1.一种内存管理方法,其特征在于,包括:
通过内存状态检测模块,检测至少一组内存单元对应的至少一个内存单元状态;内存单元状态表征内存单元是否处于激活状态;
根据所述至少一个内存单元状态,从接收到的至少一条内存操作指令中确定出第一优先级的内存操作指令与第二优先级的内存操作指令;
访问所述第一优先级的内存操作指令对应的内存单元,并且,激活所述第二优先级的内存操作指令对应的内存单元。
2.根据权利要求1所述的方法,其特征在于,所述至少一组内存单元中每组内存单元包括至少一个内存单元;所述至少一个内存单元状态包括:至少一组内存单元中每组内存单元的每个内存单元对应的内存单元状态;所述根据所述至少一个内存单元状态,从接收到的至少一条内存操作指令中确定出第一优先级的内存操作指令与第二优先级的内存操作指令,包括:
对于所述至少一条内存操作指令中的每条内存操作指令,在所述每条内存操作指令对应的内存单元的内存单元状态为激活状态的情况下,将该内存操作指令确定为所述第一优先级的内存操作指令;
在所述每条内存操作指令对应的内存单元的内存单元状态为未激活状态的情况下,将该内存操作指令确定为所述第二优先级的内存操作指令。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
通过所述内存状态检测模块,将所述至少一个内存单元状态发送至内存状态更新模块;
通过所述内存状态更新模块,根据所述至少一个内存单元状态,对历史记录的至少一个内存单元状态进行更新。
4.根据权利要求3所述的方法,其特征在于,所述根据所述至少一个内存单元状态,从接收到的至少一条内存操作指令中确定出第一优先级的内存操作指令与第二优先级的内存操作指令之前,所述方法还包括:
通过内存控制模块,从所述内存状态更新模块中读取所述至少一个内存单元状态。
5.根据权利要求1、2、或4中任一项所述的方法,其特征在于,所述激活所述第二优先级的内存操作指令对应的内存单元,包括:
通过内存控制模块,根据所述第二优先级的内存操作指令,发送激活指令发送至所述内存状态检测模块;
通过所述内存状态检测模块,将所述激活指令发送至内存操作模块;
通过所述内存操作模块,根据所述激活指令,激活所述第二优先级的内存操作指令对应的内存单元。
6.根据权利要求1、2、或4中任一项所述的方法,其特征在于,所述激活所述第二优先级的内存操作指令对应的内存单元之后,所述方法还包括:
访问所述第二优先级的内存操作指令对应的内存单元。
7.根据权利要求1、2、或4中任一项所述的方法,其特征在于,所述访问所述第一优先级的内存操作指令对应的内存单元,包括:
通过内存控制模块,根据所述第一优先级的内存操作指令,向内存操作模块发送访问指令;
通过所述内存操作模块,根据所述访问指令,访问所述第一优先级的内存操作指令对应的内存单元。
8.一种内存管理装置,其特征在于,包括:
检测单元,用于通过内存状态检测模块,检测至少一组内存单元对应的至少一个内存单元状态;内存单元状态表征内存单元是否处于激活状态;
确定单元,用于根据所述至少一个内存单元状态,从接收到的至少一条内存操作指令中确定出第一优先级的内存操作指令与第二优先级的内存操作指令;
处理单元,用于访问所述第一优先级的内存操作指令对应的内存单元,并且,激活所述第二优先级的内存操作指令对应的内存单元。
9.一种芯片,其特征在于,包括:存储器与处理器;其中,
所述存储器,用于存储可执行指令;
所述处理器,用于在执行所述存储器中存储的可执行指令时,实现如权利要求1至7任一项所述的方法。
10.一种电子设备,其特征在于,包括:存储器与处理器;其中,
所述存储器,用于存储可执行指令;
所述处理器,用于在执行所述存储器中存储的可执行指令时,实现如权利要求1至7任一项所述的方法。
11.一种可读存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311246290.3A CN117009088A (zh) | 2023-09-25 | 2023-09-25 | 内存管理方法、装置、芯片、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311246290.3A CN117009088A (zh) | 2023-09-25 | 2023-09-25 | 内存管理方法、装置、芯片、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117009088A true CN117009088A (zh) | 2023-11-07 |
Family
ID=88572940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311246290.3A Pending CN117009088A (zh) | 2023-09-25 | 2023-09-25 | 内存管理方法、装置、芯片、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117009088A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004009428A1 (de) * | 2004-02-24 | 2005-09-08 | Deutsche Thomson-Brandt Gmbh | Speicher-Controller |
CN101271435A (zh) * | 2008-05-20 | 2008-09-24 | 北京中星微电子有限公司 | 一种访问外部存储器的方法 |
CN101788963A (zh) * | 2010-03-18 | 2010-07-28 | 烽火通信科技股份有限公司 | Dram存储控制方法及装置 |
WO2017206000A1 (zh) * | 2016-05-28 | 2017-12-07 | 华为技术有限公司 | 内存访问方法及内存控制器 |
CN109801659A (zh) * | 2017-11-16 | 2019-05-24 | 国际商业机器公司 | Dram内存库激活管理 |
CN113900818A (zh) * | 2021-10-19 | 2022-01-07 | 瓴盛科技有限公司 | Ddr存储器数据读写调度方法和装置 |
CN114490074A (zh) * | 2022-01-30 | 2022-05-13 | 上海阵量智能科技有限公司 | 仲裁系统、方法、电子设备、存储介质及芯片 |
-
2023
- 2023-09-25 CN CN202311246290.3A patent/CN117009088A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004009428A1 (de) * | 2004-02-24 | 2005-09-08 | Deutsche Thomson-Brandt Gmbh | Speicher-Controller |
CN101271435A (zh) * | 2008-05-20 | 2008-09-24 | 北京中星微电子有限公司 | 一种访问外部存储器的方法 |
CN101788963A (zh) * | 2010-03-18 | 2010-07-28 | 烽火通信科技股份有限公司 | Dram存储控制方法及装置 |
WO2017206000A1 (zh) * | 2016-05-28 | 2017-12-07 | 华为技术有限公司 | 内存访问方法及内存控制器 |
CN109801659A (zh) * | 2017-11-16 | 2019-05-24 | 国际商业机器公司 | Dram内存库激活管理 |
CN113900818A (zh) * | 2021-10-19 | 2022-01-07 | 瓴盛科技有限公司 | Ddr存储器数据读写调度方法和装置 |
CN114490074A (zh) * | 2022-01-30 | 2022-05-13 | 上海阵量智能科技有限公司 | 仲裁系统、方法、电子设备、存储介质及芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9645829B2 (en) | Techniques to communicate with a controller for a non-volatile dual in-line memory module | |
US11144330B2 (en) | Algorithm program loading method and related apparatus | |
US8397100B2 (en) | Managing memory refreshes | |
TWI612439B (zh) | 用以偵測未經授權之記憶體存取的計算裝置、方法及機器可讀儲存媒體 | |
CN110941395B (zh) | 动态随机存取存储器、内存管理方法、系统及存储介质 | |
US11687242B1 (en) | FPGA board memory data reading method and apparatus, and medium | |
CN112559056B (zh) | 用于减少固件激活时间的技术 | |
CN111625546A (zh) | 一种数据写入方法、装置、设备、介质 | |
WO2010002685A2 (en) | Memory throughput increase via fine granularity of precharge management | |
EP3497563B1 (en) | Fine-grained power optimization for heterogeneous parallel constructs | |
CN116342365A (zh) | 用于经由使用可用设备存储器扩展系统存储器的技术 | |
KR102205899B1 (ko) | 메모리의 뱅크 충돌을 방지하기 위한 방법 및 장치 | |
US11748099B2 (en) | Method for executing instructions, device, and computer readable storage medium | |
EP3423948B1 (en) | Techniques to cause a content pattern to be stored to memory cells of a memory device | |
CN115840654B (zh) | 消息的处理方法、系统、计算设备及可读存储介质 | |
CN117009088A (zh) | 内存管理方法、装置、芯片、电子设备及可读存储介质 | |
WO2022237419A1 (zh) | 任务执行方法、装置及存储介质 | |
US20140059272A1 (en) | Data processing system and method for storage | |
US10956210B2 (en) | Multi-processor system, multi-core processing device, and method of operating the same | |
CN111722855A (zh) | 一种基于eMMC的固件烧录系统、方法与集成芯片 | |
CN112463037A (zh) | 一种元数据保存方法、装置、设备、产品 | |
CN110795045B (zh) | 混合内存的数据迁移方法、系统及电子设备 | |
US12020065B2 (en) | Hierarchical processor selection | |
US20240004584A1 (en) | DRAM Row Management for Processing in Memory | |
CN106250261A (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 |