CN106502926A - 一种内存监控方法、内存访问控制器及SoC系统 - Google Patents
一种内存监控方法、内存访问控制器及SoC系统 Download PDFInfo
- Publication number
- CN106502926A CN106502926A CN201610852730.3A CN201610852730A CN106502926A CN 106502926 A CN106502926 A CN 106502926A CN 201610852730 A CN201610852730 A CN 201610852730A CN 106502926 A CN106502926 A CN 106502926A
- Authority
- CN
- China
- Prior art keywords
- module
- internal storage
- memory address
- access
- storage access
- 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/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种内存监控方法、内存访问控制器及SoC系统,涉及通信领域,能够在出现内存访问异常时,快速准确地定位到非法访问内存的模块。包括:获取内存访问模块发送的内存访问命令(包括待访问的内存地址、内存访问模块的标识和读写属性);获取与待访问的内存地址对应的合法访问条件,其包括至少一个模块的标识和至少一个模块对待访问的内存地址所拥有的读或写权限;判断内存访问模块的标识是否属于至少一个模块的标识和读写属性是否符合读或写权限;在内存访问模块的标识不属于至少一个模块的标识和/或读写属性不符合读或写权限时,记录待访问的内存地址、内存访问模块的标识以及读写属性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种内存监控方法、内存访问控制器及SoC系统。
背景技术
在系统级芯片(System on Chip,SoC)系统中,存在多个不同的模块,比如多个硬件专用逻辑、各种外设(Intelligent Peripheral,IP)、中央处理器(Central ProcessingUnit,CPU)中运行的多种应用程序等。各个模块可以共享内存。由于SoC系统组成的复杂性,会发生内存访问越界的问题,即某模块访问了其不该访问的内存地址,导致该模块无法正常运行,甚至导致SoC系统崩溃。
目前,一般是在SoC系统初始化或释放内存的时候在某个内存地址设置特征值(如:0xaa),当监测到某个内存地址的特征值被修改,则确定有模块越界访问了该内存地址。
但这种方式通常只能判断内存地址是否被越界访问,无法确定是哪个模块越界访问了内存。需要逐一排查可能访问该内存地址的每个模块,来定位是哪个模块越界访问了该内存地址,定位故障问题的周期长、效率较低。
发明内容
本发明实施提供一种内存监控方法、内存访问控制器及SoC系统,能够准确监控到内存的访问情况,出现内存访问异常时,可以快速、准确地定位到非法访问内存的模块。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,公开了一种内存监控方法,包括:
内存访问控制器获取内存访问模块发送的内存访问命令,该命令携带包括待访问的内存地址的地址信息、本次访问的读写属性以及该内存访问模块的标识和读写属性,所谓读写属性即该内存访问模块对待访问内存执行读操作还是写操作;接着,确定待访问的内存地址对应的合法访问条件,该合法访问条件包括允许访问该待访问的内存地址的至少一个模块的标识和至少一个模块对待访问的内存地址所拥有的读或写权限;接着随后,判断内存访问模块的标识是否属于所述至少一个模块的标识和所述读写属性是否符合所述读或写权限,即判断发起内存访问请求的内存访问模块是否可以访问待访问的内存地址,以及是否可以对待访问的内存地址执行写操作或读操作;最后,在所述内存访问模块的标识不属于所述至少一个模块的标识和/或所述读写属性不符合所述读或写权限时,也就是内存访问模块非法访问时,记录所述待访问的内存地址、所述内存访问模块的标识以及所述读写属性。
本发明提供的内存监控方法,当有模块申请访问内存时,内存访问控制器监控其内存访问命令,并确定待访问内存地址的合法访问条件,该合法访问条件携带允许访问该待访问的内存地址的至少一个模块的标识和至少一个模块对待访问的内存地址所拥有的读或写权限。进而判断该内存访问模块是否可以访问待访问的内存地址,以及是否可以对待访问的内存地址执行写操作或操作。若内存访问模块的访问不合法(即内存访问模块的标识不属于合法访问条件中的至少一个模块的标识,和/或内存访问请求中的读写属性不符合合法访问条件中的读或写权限),则记录内存访问模块的访问信息,即待访问的内存地址、所述内存访问模块的标识以及所述读写属性之间的对应关系。如此,当设备的内存被非法访问,导致设备系统异常后,设备中运行的检测软件可以根据监控模块记录的本次访问的信息快速、准确的确定出内存非法访问的真正原因。
结合第一方面,在第一方面的第一种可能的实现方式中,获取与所述待访问的内存地址对应的合法访问条件具体包括:
根据所述待访问的内存地址查询合法访问信息表,确定所述待访问的内存地址对应的所述合法访问条件;所述合法访问信息表记录有被监控的内存地址的标识以及每一个所述被监控的内存地址所对应的合法访问条件。
这里,可以根据预先生成的合法访问信息表,获取到带访问的内存地址对应的合法访问条件,即允许访问该待访问的内存地址的至少一个模块的标识和所述至少一个模块对该待访问的内存地址所拥有的读或写权限。进而可以根据该合法访问条件判断内存访问模块对该待访问的内存地址的访问是否合法。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,在获取内存访问模块发送的内存访问命令之前,内存访问控制器还需确定被监控的内存地址,以及每一个被监控的内存地址的合法访问条件,其中,被监控的内存地址的合法访问条件包括可访问被监控的内存地址的模块的标识、以及各个模块对被监控的内存地址所拥有的读或写权限。最终根据每一个被监控的内存地址,以及每一个被监控的内存地址的合法访问条件生成上述合法访问信息表。
如此,当有模块发起内存访问时,内存访问控制器就可以根据预配置的访问信息表确定本次访问是否合法。一旦确认是非法访问,则可记录本次访问的信息,以便根据记录的信息确认究竟是哪个模块非法访问了内存而导致的系统异常。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,内存访问控制器获取与所述待访问的内存地址对应的合法访问条件之前,还可以确定所述待访问的内存地址为被监控的内存地址,具体地,可以根据待访问的内存地址的信息确定待访问内存地址为被监控的内存地址。
内存访问控制器只会为被监控的内存地址生成合法访问条件,因此只有待访问内存地址是被监控的内存地址,才能在合法访问信息表中查询到与其对应的合法访问条件。
结合第一方面,在第一方面的第四种可能的实现方式中,若判断所述内存访问模块的标识属于所述至少一个模块的标识,且所述读写属性符合所述读或写权限,则确定所述内存访问模块的访问合法。
也就说,只有当内存访问模块被允许使用待访问的内存地址,且内存访问模块的读写属性是其对待访问的内存地址。
结合第一方面或第一方面的第一或第三种可能的实现方式,在第一方面的第四种可能的实现方式中,内存访问控制器记录所述待访问的内存地址、所述内存访问模块的标识以及所述读写属性之后,该方法还包括:向中央处理器CPU上报中断信息,以便所述CPU运行所述中断信息对应的中断处理软件对所述中断信息进行处理;所述中断信息携带所述待访问的内存地址、所述内存访问模块的标识以及所述读写属性。
如此,当出现内存非法访问时,CPU接收内存访问控制器上报的中断信息后,指示该中断信息对应的软件查询内存访问控制器本地记录的访问信息就可以确定是哪个模块非法访问了哪个内存地址。
第二方面,公开了一种内存访问控制器,包括:
获取模块,用于获取内存访问模块发送的内存访问命令,内存访问命令包括待访问的内存地址、内存访问模块的标识和读写属性,读写属性用于指示内存访问模块对待访问的内存地址执行读操作或写操作;获取模块还用于,获取与待访问的内存地址对应的合法访问条件,合法访问条件包括至少一个模块的标识和至少一个模块对待访问的内存地址所拥有的读或写权限;判断模块,用于判断获取模块获取的内存访问模块的标识是否属于至少一个模块的标识和读写属性是否符合读或写权限;记录模块,用于在判断模块确定内存访问模块的标识不属于至少一个模块的标识和/或读写属性不符合读或写权限时,记录待访问的内存地址、内存访问模块的标识以及读写属性。
本发明提供的内存访问控制器,当有模块申请访问内存时,监控其内存访问命令,并确定待访问内存地址的合法访问条件,该合法访问条件携带允许访问该待访问的内存地址的至少一个模块的标识和至少一个模块对待访问的内存地址所拥有的读或写权限。进而判断该内存访问模块是否可以访问待访问的内存地址,以及是否可以对待访问的内存地址执行写操作或操作。若内存访问模块的访问不合法(即内存访问模块的标识不属于合法访问条件中的至少一个模块的标识,和/或内存访问请求中的读写属性不符合合法访问条件中的读或写权限),则记录内存访问模块的访问信息,即待访问的内存地址、所述内存访问模块的标识以及所述读写属性之间的对应关系。如此,当设备的内存被非法访问,导致设备系统异常后,设备中运行的检测软件可以根据监控模块记录的本次访问的信息快速、准确的确定出内存非法访问的真正原因。
结合第二方面,在第二方面的第一种可能的实现方式中,获取模块具体用于,根据待访问的内存地址查询合法访问信息表,确定待访问的内存地址对应的合法访问条件;合法访问信息表记录有被监控的内存地址的标识以及每一个被监控的内存地址所对应的合法访问条件。
结合第二方面的第一种可能的实现方式中,在第二方面的第二种可能的实现方式中,还包括第一确定模块、生成模块,
第一确定模块用于,在获取模块获取内存访问模块发送的内存访问命令之前,确定被监控的内存地址,以及每一个被监控的内存地址的合法访问条件;生成模块用于,根据每一个被监控的内存地址的合法访问条件生成合法访问信息表。
结合第二方面的第二种可能的实现方式中,在第二方面的第三种可能的实现方式中,第一确定模块还用于,在获取模块获取与待访问的内存地址对应的合法访问条件之前,确定待访问的内存地址为被监控的内存地址。
结合第二方面,在第二方面的第四种可能的实现方式中,判断模块还用于,若判断内存访问模块的标识属于至少一个模块的标识,且读写属性符合读或写权限,则确定内存访问模块的访问合法。
结合第二方面或第二方面的第一或第三种可能的实现方式中,在第二方面的第五种可能的实现方式中,还包括发送模块,
发送模块用于,在记录模块记录待访问的内存地址、内存访问模块的标识以及读写属性之后,向中央处理器CPU上报中断信息,以便CPU运行中断信息对应的中断处理软件对中断信息进行处理;中断信息携带待访问的内存地址、内存访问模块的标识以及读写属性。
第三方面,公开了一种SoC系统,该SoC系统包括至少一个内存访问模块、内存访问控制器和存储器,内存访问控制器用于控制至少一个内存访问模块访问存储器中的数据。
内存访问控制器用于,获取至少一个内存访问模块的内存访问命令,判断内存访问命令访问存储器中内存地址是否合法,并且在确定内存访问命令访问存储器中内存地址不合法时,记录内存访问命令携带的待访问的内存地址、内存访问模块的标识和读写属性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的SoC系统的架构图;
图2为本发明实施例提供的内存监控方法的流程示意图;
图3为本发明实施例提供的内存监控方法的另一流程示意图;
图4为本发明实施例提供的内存访问控制器的结构框图;
图5为本发明实施例提供的内存访问控制器的另一结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前的SoC系统中经常会发生内存越界、内存被错误访问等问题。现有技术通常只能判断某个内存地址是否被修改,无法定位到究竟是哪个模块越界访问了内存地址。需要人工根据已有经验对可能访问该内存地址的模块进行逐一排查,来确定是哪个模块越界访问了内存,如此,导致定位故障问题的周期较长、效率较低。
基于此,本发明的原理在于,监控SoC系统内所有模块访问DDR(Double DataRate,双倍速率)内存的命令,对每一条访问内存的命令,自动进行合法性检查,并在访问不合法时记录模块的标识、访问的内存地址以及模块的标识。这样,在出现由于内存被越界访问而导致的异常时,可以根据本地存储的上述信息快速、准确地定位出越界访问该内存地址的模块,如此,可以大大缩短了故障定位的时间,提高了故障定位的效率。
本发明提供一种SoC系统,在SoC芯片片内集成一个专用的硬件监控模块,用于监控SoC内所有模块访问DDR内存的命令。具体地,参考图1,本发明提供的SoC系统包括:CPU、内存访问模块0~内存访问模块n、内存访问控制器以及存储器。其中,内存访问模块可以是音视频处理模块、图形模块、外设模块、通讯模块等,内存访问控制器可以是DDR控制器。具体实现中,CPU、内存访问模块0~内存访问模块n均可以通过内存访问DDR控制模块器访问DDR内存空间存储器中的数据。通常,存储器的DDR内存空间被划分为多个内存地址:buffer(内存地址)0~buffer n,指定了各个每个内存访问模块指定有各自可以访问的内存地址。若是内存访问模块访问了不该其访问的内存地址,则视为内存越界非法访问。参考图1,本发明实施例提供的SoC系统中的内存访问控制器包括监控模块,该监控模块用于获取内存访问模块的内存访问命令,并判断所述内存访问命令访问所述存储器中内存地址是否合法。在确定所述内存访问命令访问所述存储器中内存地址不合法时,记录所述内存访问命令携带的待访问的内存地址、内存访问模块的标识和读写属性。也可以在此之后,向CPU上报中断信息,该中断信息携带内存访问模块待访问的内存地址、所述内存访问模块的标识以及所述读写属性。CPU可以在接收该中断信息后运行该中断信息对应的中断处理软件对该中断信息进行处理,如:读取记录的待访问的内存地址、内存访问模块的标识和读写属性。
所述监控模块具体用于,获取内存访问模块发送的内存访问命令,其中,该内存访问命令包括待访问的内存地址、所述内存访问模块的标识和读写属性,所述读写属性用于指示所述内存访问模块对所述待访问的内存地址执行读操作或写操作。
其次,获取与所述待访问的内存地址对应的合法访问条件,进而判断所述内存访问模块的标识是否属于该内存地址对应的合法访问条件中的至少一个模块的标识;并判断所述读写属性是否符合该内存地址对应的合法访问条件中的读或写权限。
在所述内存访问模块的标识不属于所述至少一个模块的标识和/或所述读写属性不符合所述读或写权限时,也就是在该内存访问模块的访问不合法时,记录所述待访问的内存地址、所述内存访问模块的标识以及所述读写属性。如此,可以根据记录的信息快速地进行故障定位。
本发明实施例提供的SoC系统中,内置于内存访问控制器的监控模块可以对DDR内存空间进行监控。具体地,如图2所示:
首先,监控模块确定被监控的内存地址,并指定每一个内存地址的合法访问条件,生成合法访问信息表。
具体地,合法访问信息表可以如下表1所示。该合法访问信息表中记录了内存地址和合法访问条件之间的对应关系,该合法访问条件包括但不限于模块标识和读写权限。其中,该模块标识用于指示合法访问条件对应的内存地址的模块信息,该读写权限用于指示模块标识对应的模块对内存地址的操作权限,比如读权限,写权限,或同时具备读权限和写权限。示例的,内存地址addr1对应的合法访问条件包括:模块1、模块2,以及模块1和模块2对内存地址addr1具有读权限,即模块1、模块2可以访问内存地址addr1的数据但不能向内存地址addr1写入数据。
表1
具体实现中,监控模块对各个模块的内存访问命令进行监控,获取内存访问模块的内存访问命令。
具体实现中,参考图1,CPU、模块0、模块1、模块2、模块n等模块、内存访问控制模块、监控模块之间通过总线进行交互。监控模块也是通过总线获取到的内存访问模块的内存访问命令,内存访问命令可以是Bus_cmd_addr命令。
访问模块可以是上述CPU、模块0、模块1、模块2、模块n等模块中任意一个,该访问模块发送内存访问命令,该内存访问命令中包含待访问的内存地址、该访问模块的标识和读写属性。其中,待访问的内存地址用于指示该访问模块请求访问的内存地址信息,该读写属性用于指示该访问模块对该内存地址的数据进行读操作或写操作。
进一步地,监控模块根据内存访问模块的内存访问命令判断本次访问是否合法,即该内存访问模块是否越界访问内存。
具体地,监控模块首先根据内存访问命令携带的待访问的内存地址判断待访问的内存地址是否为被监控的内存地址。若确定待访问的内存地址是被监控的内存地址,则查询上述表1确定待访问的内存地址对应的合法访问条件,包括可以访问所述待访问的内存地址的模块的标识(如:ID),以及可以访问所述待访问的内存地址的模块对该待访问的内存地址所拥有的读或写权限。进而将内存访问命令携带的内存访问模块的ID与合法访问条件中的模块ID作对比,将本次访问的读写属性与合法访问条件中的读或写权限对比,判断本次访问是否合法。具体可以是,判断内存访问模块的ID是否属于合法访问条件中的模块的标识,若属于,则进一步判断该内存访问模块的内存访问命令中的读写属性与待访问的内存地址对应的合法访问条件中的该内存访问模块所拥有的读或写权限是否匹配,若匹配则判断该内存访问模块本次访问合法。若内存访问模块的ID不属于合法访问条件中的模块的标识则判断该内存访问模块本次访问不合法。若该内存访问模块的内存访问命令中的读写属性与待访问的内存地址对应的合法访问条件中的该内存访问模块所拥有的读或写权限不匹配,则判断该内存访问模块本次访问不合法。
最后,监控模块若确定该内存访问模块本次访问不合法,则记录本次访问的访问信息。具体实现中,记录所述待访问的内存地址、该内存访问模块的标识以及本次访问的读写属性。
当上述流程判断内存地址被非法访问,监控模块还可以向CPU上报中断信息,该中断信息携带所述待访问的内存地址、所述内存访问模块的标识以及所述读写属性。进而CPU接收该中断信息后可以运行所述中断信息对应的中断处理软件对所述中断信息进行处理。如:中断处理软件查询记录的访问信息确定导致异常的原因是“该内存访问模块非法访问了待访问的内存地址”。
本发明实施例还提供一种内存监控方法,执行主体可以为图1所示的SoC系统中的内存访问控制器,如图3所示,所述方法包括以下步骤:
101、获取内存访问模块的内存访问命令,所述内存访问命令包括待访问内存的地址、所述内存访问模块的标识以及读写属性。
其中,所述读写属性用于指示所述内存访问模块对所述待访问的内存地址执行读操作或写操作。
具体实现中,监控模块通过与内存访问模块之间的总线获取到内存访问模块的内存访问命令。该内存访问模块即发起本次访问的模块,其通过内存访问命令发起内存访问。这里的“内存访问命令”即所述内存访问模块为了访问DDR内存而发起的Bus_cmd_addr命令。
102、获取与所述待访问的内存地址对应的合法访问条件,所述合法访问条件包括至少一个模块的标识和所述至少一个模块对所述待访问的内存地址所拥有的读或写权限。
具体实现中,在步骤101之前,监控模块首先确定被监控的内存地址以及每一个被监控的内存地址的合法访问条件,即允许每一个被监控的内存地址的模块以及每一模块所拥有的读或写权限。进而根据被监控的内存地址以及每一个被监控的内存地址的合法访问条件生成合法访问信息表。
这里,监控模块根据所述待访问的内存地址查询合法访问信息表,确定所述待访问的内存地址对应的所述合法访问条件。
其中,所谓被监控的内存地址,即图1所示的内置于DDR控制模块的监控模块预先设置的内存监控范围,该监控模块可以对处于该范围内的内存地址的进行访问权限控制。另外,被监控的内存地址的标识可以是内存地址的地址范围。
当然,在步骤102之前,监控模块还可以参照预先确定的被监控的内存地址以及待访问的内存地址,判断待访问的内存地址是否为被监控的内存地址。若是,则进行步骤102。
103、判断所述内存访问模块的标识是否属于所述至少一个模块的标识和所述读写属性是否符合所述读或写权限。
也就是说,将所述内存访问命令中的读写属性、所述内存访问模块的标识与所述待访问内存地址对应的合法访问条件作对比,判断所述本次访问是否合法。
104、在所述内存访问模块的标识不属于所述至少一个模块的标识和/或所述读写属性不符合所述读或写权限时,记录所述待访问的内存地址、所述内存访问模块的标识以及所述读写属性。
也就是说,若确定该内存访问模块本次访问不合法,则记录本次访问的信息,以便根据记录的信息确定越界访问内存的模块。
示例的,监控模块记录的信息如表2所示:
表2
内存地址 | 访问合法性 | 模块标识 |
Addr1 | 非法访问 | 模块0 |
具体实现中,若所述内存访问模块的标识不属于待访问的内存地址的合法访问条件中的模块的标识,则确定所述内存访问模块的本次访问非法。
若所述内存访问模块的标识属于待访问的内存地址的合法访问条件中的模块的标识,则判断所述内存访问命令的读写属性是否符合合法访问条件中的读或写权限,若符合则所述内存访问模块的本次访问合法。否则,则确定所述内存访问模块的本次访问非法。
本发明实施例提供的内存监控方法,预先生成合法访问信息表,记录被监控的内存地址的标识以及每一个被监控的内存地址对应的合法访问条件。当有模块申请访问内存时,监控模块监控其内存访问命令,根据访问命令携带的待访问内存地址的地址信息确定待访问的内存地址的合法访问条件。进而对比内存访问命令携带的本次访问的读写属性以及内存访问模块的标识与待访问内存地址的合法访问条件,确定本次访问是否合法。若本次访问不合法,则记录本次访问的信息,即待访问的内存地址、内存访问模块的标识以及本次访问的读写属性之间的对应关系。如此,在内存越界访问导致SoC出现异常后,可以根据监控模块记录的内存访问的信息快速、准确的确定出内存非法访问的模块。
上述主要从内存访问控制器的监控模块的工作过程的角度对本发明实施例提供的方案进行了介绍。可以理解的是,内存访问控制器为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例可以根据上述方法示例对内存访问控制器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图4示出了上述实施例中所涉及的内存访问控制器的一种可能的结构示意图,内存访问控制器包括:获取模块201,判断模块202,记录模块203。获取模块201用于支持内存访问控制器20执行图3中的过程101以及步骤102;判断模块202用于支持内存访问控制器执行图3中的过程103;记录模块203用于支持内存访问控制器执行图3中的过程104。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用集成的单元的情况下,图5示出了上述实施例中所涉及的内存访问控制器的一种可能的结构示意图。内存访问控制器可以包括:处理模块301、通信模块302和存储模块303。处理模块301用于对内存访问控制器的动作进行控制管理,例如,处理模块301用于支持内存访问控制器执行图3中的过程101至104,和/或用于本文所描述的技术的其它过程。通信模块302用于内存访问控制器与其他模块间的通信。存储模块303,用于存储内存访问控制器的程序代码和数据。
结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM、闪存、ROM、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是一个物理模块或多个物理模块,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个内存访问控制器(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (13)
1.一种监控内存的方法,其特征在于,包括:
获取内存访问模块发送的内存访问命令,所述内存访问命令包括待访问的内存地址、所述内存访问模块的标识和读写属性,所述读写属性用于指示所述内存访问模块对所述待访问的内存地址执行读操作或写操作;
获取与所述待访问的内存地址对应的合法访问条件,所述合法访问条件包括至少一个模块的标识和所述至少一个模块对所述待访问的内存地址所拥有的读或写权限;
判断所述内存访问模块的标识是否属于所述至少一个模块的标识和所述读写属性是否符合所述读或写权限;
在所述内存访问模块的标识不属于所述至少一个模块的标识和/或所述读写属性不符合所述读或写权限时,记录所述待访问的内存地址、所述内存访问模块的标识以及所述读写属性。
2.根据权利要求1所述的方法,其特征在于,所述获取与所述待访问的内存地址对应的合法访问条件具体包括:
根据所述待访问的内存地址查询合法访问信息表,确定所述待访问的内存地址对应的所述合法访问条件;所述合法访问信息表记录有被监控的内存地址的标识以及每一个所述被监控的内存地址所对应的合法访问条件。
3.根据权利要求2所述的方法,其特征在于,所述获取内存访问模块发送的内存访问命令之前,所述方法还包括:
确定被监控的内存地址,以及每一个所述被监控的内存地址的合法访问条件;
根据每一个所述被监控的内存地址的合法访问条件生成所述合法访问信息表。
4.根据权利要求3所述的方法,其特征在于,所述获取与所述待访问的内存地址对应的合法访问条件之前,所述方法还包括:
确定所述待访问的内存地址为所述被监控的内存地址。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若判断所述内存访问模块的标识属于所述至少一个模块的标识,且所述读写属性符合所述读或写权限,则确定所述内存访问模块的访问合法。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述记录所述待访问的内存地址、所述内存访问模块的标识以及所述读写属性之后,所述方法还包括:
向中央处理器CPU上报中断信息,以便所述CPU运行所述中断信息对应的中断处理软件对所述中断信息进行处理;所述中断信息携带所述待访问的内存地址、所述内存访问模块的标识以及所述读写属性。
7.一种内存访问控制器,其特征在于,包括:
获取模块,用于获取内存访问模块发送的内存访问命令,所述内存访问命令包括待访问的内存地址、所述内存访问模块的标识和读写属性,所述读写属性用于指示所述内存访问模块对所述待访问的内存地址执行读操作或写操作;
所述获取模块还用于,获取与所述待访问的内存地址对应的合法访问条件,所述合法访问条件包括至少一个模块的标识和所述至少一个模块对所述待访问的内存地址所拥有的读或写权限;
判断模块,用于判断所述获取模块获取的所述内存访问模块的标识是否属于所述至少一个模块的标识和所述读写属性是否符合所述读或写权限;
记录模块,用于在所述判断模块确定所述内存访问模块的标识不属于所述至少一个模块的标识和/或所述读写属性不符合所述读或写权限时,记录所述待访问的内存地址、所述内存访问模块的标识以及所述读写属性。
8.根据权利要求7所述的内存访问控制器,其特征在于,所述获取模块具体用于,根据所述待访问的内存地址查询合法访问信息表,确定所述待访问的内存地址对应的所述合法访问条件;所述合法访问信息表记录有被监控的内存地址的标识以及每一个所述被监控的内存地址所对应的合法访问条件。
9.根据权利要求8所述的内存访问控制器,其特征在于,还包括第一确定模块、生成模块,
所述第一确定模块用于,在所述获取模块获取内存访问模块发送的内存访问命令之前,确定被监控的内存地址,以及每一个所述被监控的内存地址的合法访问条件;
所述生成模块用于,根据每一个所述被监控的内存地址的合法访问条件生成所述合法访问信息表。
10.根据权利要求9所述的内存访问控制器,其特征在于,所述第一确定模块还用于,在所述获取模块获取与所述待访问的内存地址对应的合法访问条件之前,确定所述待访问的内存地址为所述被监控的内存地址。
11.根据权利要求7所述的内存访问控制器,其特征在于,所述判断模块还用于,若判断所述内存访问模块的标识属于所述至少一个模块的标识,且所述读写属性符合所述读或写权限,则确定所述内存访问模块的访问合法。
12.根据权利要求7-10任一项所述的内存访问控制器,其特征在于,还包括发送模块,
所述发送模块用于,在所述记录模块记录所述待访问的内存地址、所述内存访问模块的标识以及所述读写属性之后,向中央处理器CPU上报中断信息,以便所述CPU运行所述中断信息对应的中断处理软件对所述中断信息进行处理;所述中断信息携带所述待访问的内存地址、所述内存访问模块的标识以及所述读写属性。
13.一种系统级芯片SoC系统,其特征在于,所述SoC系统包括至少一个内存访问模块、内存访问控制器和存储器,所述内存访问控制器用于控制所述至少一个内存访问模块访问所述存储器中的数据,
所述内存访问控制器用于,获取所述至少一个内存访问模块的内存访问命令,判断所述内存访问命令访问所述存储器中内存地址是否合法,并且在确定所述内存访问命令访问所述存储器中内存地址不合法时,记录所述内存访问命令携带的待访问的内存地址、内存访问模块的标识和读写属性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610852730.3A CN106502926B (zh) | 2016-09-26 | 2016-09-26 | 一种内存监控方法、内存访问控制器及SoC系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610852730.3A CN106502926B (zh) | 2016-09-26 | 2016-09-26 | 一种内存监控方法、内存访问控制器及SoC系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106502926A true CN106502926A (zh) | 2017-03-15 |
CN106502926B CN106502926B (zh) | 2019-11-19 |
Family
ID=58290500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610852730.3A Active CN106502926B (zh) | 2016-09-26 | 2016-09-26 | 一种内存监控方法、内存访问控制器及SoC系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106502926B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107562515A (zh) * | 2017-08-04 | 2018-01-09 | 致象尔微电子科技(上海)有限公司 | 一种在虚拟化技术中管理内存的方法 |
CN108388517A (zh) * | 2018-03-14 | 2018-08-10 | 深圳怡化电脑股份有限公司 | 一种内存检测方法、装置、设备及存储介质 |
CN108388814A (zh) * | 2018-02-09 | 2018-08-10 | 清华大学 | 检测处理器的方法、检测装置以及检测系统 |
CN109446755A (zh) * | 2018-09-30 | 2019-03-08 | 龙芯中科技术有限公司 | 内核钩子函数保护方法、装置、设备以及存储介质 |
CN109726171A (zh) * | 2018-12-28 | 2019-05-07 | 安谋科技(中国)有限公司 | 内存访问方法、内存访问控制器和片上系统 |
CN109739806A (zh) * | 2018-12-28 | 2019-05-10 | 安谋科技(中国)有限公司 | 内存访问方法、内存访问控制器和片上系统 |
CN109766164A (zh) * | 2018-11-22 | 2019-05-17 | 海光信息技术有限公司 | 一种访问控制方法、内存管理方法及相关装置 |
CN110955546A (zh) * | 2018-09-26 | 2020-04-03 | 迈普通信技术股份有限公司 | 一种内存地址监控方法、装置及电子设备 |
CN111124814A (zh) * | 2019-12-05 | 2020-05-08 | 珠海市杰理科技股份有限公司 | Soc内存访问监控方法、装置和计算机设备 |
CN111177726A (zh) * | 2019-08-29 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 一种系统漏洞检测方法、装置、设备及介质 |
WO2020199061A1 (zh) * | 2019-03-30 | 2020-10-08 | 华为技术有限公司 | 一种处理方法、装置及相关设备 |
WO2022021446A1 (zh) * | 2020-07-31 | 2022-02-03 | 华为技术有限公司 | 一种内存保护方法及保护代理控制装置 |
CN114090479A (zh) * | 2021-11-30 | 2022-02-25 | 上海阵量智能科技有限公司 | 访问报告系统、方法、装置、芯片及电子设备 |
CN116303142A (zh) * | 2023-03-21 | 2023-06-23 | 摩尔线程智能科技(北京)有限责任公司 | 内存访问控制方法、安全控制器、内存访问控制装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101145129A (zh) * | 2007-07-18 | 2008-03-19 | 中兴通讯股份有限公司 | 一种嵌入式系统内存写越界的检测方法及系统 |
CN101231599A (zh) * | 2008-02-02 | 2008-07-30 | 中兴通讯股份有限公司 | 一种定位特定内存被函数非法改写的方法 |
CN101520754A (zh) * | 2009-03-24 | 2009-09-02 | 中兴通讯股份有限公司 | 内存越界访问的定位方法及装置 |
CN102866951A (zh) * | 2012-09-21 | 2013-01-09 | 武汉烽火网络有限责任公司 | 嵌入式系统内存越界错误快速定位方法 |
CN102915276A (zh) * | 2012-09-25 | 2013-02-06 | 武汉邮电科学研究院 | 一种用于嵌入式系统的内存控制方法 |
CN104133733A (zh) * | 2014-07-29 | 2014-11-05 | 北京航空航天大学 | 一种内存错误检测方法 |
CN104657193A (zh) * | 2013-11-21 | 2015-05-27 | 华为技术有限公司 | 一种访问物理资源的方法和装置 |
CN105183542A (zh) * | 2015-08-13 | 2015-12-23 | 上海斐讯数据通信技术有限公司 | 一种内存管理方法及系统 |
-
2016
- 2016-09-26 CN CN201610852730.3A patent/CN106502926B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101145129A (zh) * | 2007-07-18 | 2008-03-19 | 中兴通讯股份有限公司 | 一种嵌入式系统内存写越界的检测方法及系统 |
CN101231599A (zh) * | 2008-02-02 | 2008-07-30 | 中兴通讯股份有限公司 | 一种定位特定内存被函数非法改写的方法 |
CN101520754A (zh) * | 2009-03-24 | 2009-09-02 | 中兴通讯股份有限公司 | 内存越界访问的定位方法及装置 |
CN102866951A (zh) * | 2012-09-21 | 2013-01-09 | 武汉烽火网络有限责任公司 | 嵌入式系统内存越界错误快速定位方法 |
CN102915276A (zh) * | 2012-09-25 | 2013-02-06 | 武汉邮电科学研究院 | 一种用于嵌入式系统的内存控制方法 |
CN104657193A (zh) * | 2013-11-21 | 2015-05-27 | 华为技术有限公司 | 一种访问物理资源的方法和装置 |
CN104133733A (zh) * | 2014-07-29 | 2014-11-05 | 北京航空航天大学 | 一种内存错误检测方法 |
CN105183542A (zh) * | 2015-08-13 | 2015-12-23 | 上海斐讯数据通信技术有限公司 | 一种内存管理方法及系统 |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107562515A (zh) * | 2017-08-04 | 2018-01-09 | 致象尔微电子科技(上海)有限公司 | 一种在虚拟化技术中管理内存的方法 |
CN107562515B (zh) * | 2017-08-04 | 2021-09-07 | 海光信息技术股份有限公司 | 一种在虚拟化技术中管理内存的方法 |
CN108388814A (zh) * | 2018-02-09 | 2018-08-10 | 清华大学 | 检测处理器的方法、检测装置以及检测系统 |
US11062020B2 (en) | 2018-02-09 | 2021-07-13 | Tsinghua University | Processor checking method, checking device and checking system |
CN108388517A (zh) * | 2018-03-14 | 2018-08-10 | 深圳怡化电脑股份有限公司 | 一种内存检测方法、装置、设备及存储介质 |
CN110955546A (zh) * | 2018-09-26 | 2020-04-03 | 迈普通信技术股份有限公司 | 一种内存地址监控方法、装置及电子设备 |
CN110955546B (zh) * | 2018-09-26 | 2023-03-21 | 迈普通信技术股份有限公司 | 一种内存地址监控方法、装置及电子设备 |
CN109446755A (zh) * | 2018-09-30 | 2019-03-08 | 龙芯中科技术有限公司 | 内核钩子函数保护方法、装置、设备以及存储介质 |
CN109446755B (zh) * | 2018-09-30 | 2021-03-30 | 龙芯中科技术股份有限公司 | 内核钩子函数保护方法、装置、设备以及存储介质 |
CN109766164A (zh) * | 2018-11-22 | 2019-05-17 | 海光信息技术有限公司 | 一种访问控制方法、内存管理方法及相关装置 |
CN109766164B (zh) * | 2018-11-22 | 2021-06-18 | 海光信息技术股份有限公司 | 一种访问控制方法、内存管理方法及相关装置 |
CN109739806A (zh) * | 2018-12-28 | 2019-05-10 | 安谋科技(中国)有限公司 | 内存访问方法、内存访问控制器和片上系统 |
CN109726171A (zh) * | 2018-12-28 | 2019-05-07 | 安谋科技(中国)有限公司 | 内存访问方法、内存访问控制器和片上系统 |
WO2020199061A1 (zh) * | 2019-03-30 | 2020-10-08 | 华为技术有限公司 | 一种处理方法、装置及相关设备 |
CN111177726A (zh) * | 2019-08-29 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 一种系统漏洞检测方法、装置、设备及介质 |
CN111177726B (zh) * | 2019-08-29 | 2024-02-06 | 腾讯科技(深圳)有限公司 | 一种系统漏洞检测方法、装置、设备及介质 |
CN111124814A (zh) * | 2019-12-05 | 2020-05-08 | 珠海市杰理科技股份有限公司 | Soc内存访问监控方法、装置和计算机设备 |
WO2022021446A1 (zh) * | 2020-07-31 | 2022-02-03 | 华为技术有限公司 | 一种内存保护方法及保护代理控制装置 |
CN116249972A (zh) * | 2020-07-31 | 2023-06-09 | 华为技术有限公司 | 一种内存保护方法及保护代理控制装置 |
CN114090479A (zh) * | 2021-11-30 | 2022-02-25 | 上海阵量智能科技有限公司 | 访问报告系统、方法、装置、芯片及电子设备 |
CN114090479B (zh) * | 2021-11-30 | 2023-12-15 | 上海阵量智能科技有限公司 | 访问报告系统、方法、装置、芯片及电子设备 |
CN116303142A (zh) * | 2023-03-21 | 2023-06-23 | 摩尔线程智能科技(北京)有限责任公司 | 内存访问控制方法、安全控制器、内存访问控制装置 |
CN116303142B (zh) * | 2023-03-21 | 2024-03-19 | 摩尔线程智能科技(北京)有限责任公司 | 内存访问控制方法、安全控制器、内存访问控制装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106502926B (zh) | 2019-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106502926A (zh) | 一种内存监控方法、内存访问控制器及SoC系统 | |
CN101059777B (zh) | 使用存储属性的技术 | |
CN101196840B (zh) | 配置数据镜像的系统和方法 | |
CN100428242C (zh) | 数据库调整方法和系统 | |
CN106484330A (zh) | 一种混合磁盘分层数据优化方法和装置 | |
CN110046029A (zh) | 应用于集群内多级缓存的数据处理方法和装置 | |
CN102340541B (zh) | 一种云量产系统及方法 | |
CN103426453B (zh) | 动态电压频率调节方法以及系统 | |
CN103392208A (zh) | 半导体存储装置和用于控制半导体存储装置的方法 | |
CN112684987A (zh) | 基于双芯智能电表的数据分类存储方法和装置 | |
WO2021174817A1 (zh) | 数据库自动化审计方法、系统、设备及存储介质 | |
JP2008508577A5 (zh) | ||
CN113704026B (zh) | 一种分布式金融内存数据库安全同步方法、装置、介质 | |
CN104321754B (zh) | 一种Cache工作模式的设置方法和装置 | |
CN105644369A (zh) | 电机控制器及其复位处理方法和装置 | |
CN114662716A (zh) | 基于区块链的电梯维护处理方法、装置以及存储介质 | |
CN107180118A (zh) | 一种文件系统缓存数据管理方法及装置 | |
CN106708445B (zh) | 链路选择方法及装置 | |
CN103443762A (zh) | 用于移动软件对象的方法和装置 | |
CN109284629B (zh) | 一种分布式文件存储系统的权限控制方法和系统 | |
CN103870562A (zh) | 一种智能楼宇系统中的规则验证方法及系统 | |
CN106406771A (zh) | 日志记录方法及日志记录器 | |
CN105760283A (zh) | 一种日志输出方法和装置 | |
CN111491021B (zh) | 分布式集群的许可数据处理方法和装置 | |
CN113704144B (zh) | 存储器控制器以及用于控制对存储模块的访问的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |