CN104216834A - 一种内存访问的方法、缓冲调度器和内存模块 - Google Patents
一种内存访问的方法、缓冲调度器和内存模块 Download PDFInfo
- Publication number
- CN104216834A CN104216834A CN201310209787.8A CN201310209787A CN104216834A CN 104216834 A CN104216834 A CN 104216834A CN 201310209787 A CN201310209787 A CN 201310209787A CN 104216834 A CN104216834 A CN 104216834A
- Authority
- CN
- China
- Prior art keywords
- access data
- memory access
- mark
- memory
- address
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/253—Centralized memory
- G06F2212/2532—Centralized memory comprising a plurality of modules
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明公开一种内存访问的方法、缓冲调度器和内存模块,能够在不改变内存模块或内存芯片的基础上,支持多种应用场景。该方法包括:接收访存数据的操作请求消息,其中,所述操作请求消息包括所述访存数据的标记信息、操作信息和所述访存数据的存储地址信息,所述访存数据的标记信息包括标记类型,所述标记类型用于指示所述缓冲调度器对所述访存数据和/或访存数据的标记进行操作;根据所述访存数据的标记信息、以及所述访存数据的存储地址和所述访存数据的操作信息中的至少一项,对存储在内存模块中的所述访存数据的标记和/或访存数据进行操作。本发明适用于计算机领域。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种内存访问的方法、缓冲调度器和内存模块。
背景技术
内存***作为计算机***的共享资源,能被多个应用程序同时访问。多个应用程序要实现不同场景下的特定功能,就需要使得内存数据的访问受到不同的限制。例如,要实现设备A仅能访问设备A中存储的数据的场景时,需要实现的访问控制功能,使得设备A存储的内存数据能够区分并限定访问者。
为了使得内存数据的访问受到不同的限制,通常通过对内存***中的内存数据分配不同的属性来实现。只有访存请求消息携带的属性与内存***中的内存数据的属性相匹配,才能对内存数据进行处理。
现有技术中,一种带标记内存的实现方法是在硬件层次上实现内存数据属性的分配,其主要思想是:为内存数据分配额外的内存空间,并将该分配的内存空间作为该内存数据的标记位,将内存数据对应的属性存放在该标记位中。为了对内存***中每个内存数据增加额外固定的标记,该方法需要修改内存模块或是内存芯片的设计,而现有的内存模块或内存芯片都采用固定的规格和标准,修改的成本较高。同时,在内存模块或内存芯片设计过程中,通常为了保证每个存储单元的存储单位一致,增加的标记长度是固定的。然而利用固定位数的标记能够实现的场景也是限定的,具有一定的局限性。
因此,设计一种不需要修改内存模块或内存芯片,并支持多种应用场景下的多种功能的带标记内存的方法很有必要。
发明内容
本发明的实施例提供一种内存访问的方法、缓冲调度器和内存模块,能够在不改变内存模块或内存芯片的基础上,支持多种应用场景。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供了一种内存访问的方法,该方法包括:
接收访存数据的操作请求消息,其中,所述操作请求消息包括所述访存数据的标记信息、操作信息和所述访存数据的存储地址信息,所述访存数据的标记信息包括标记类型,所述标记类型用于指示所述缓冲调度器对所述访存数据和/或访存数据的标记进行操作;
根据所述访存数据的标记信息、以及所述访存数据的存储地址和所述访存数据的操作信息中的至少一项,对存储在内存模块中的所述访存数据的标记和/或访存数据进行操作。
根据第一方面,在第一方面的第一种可能的实现方式中,所述根据所述访存数据的标记信息、以及所述访存数据的存储地址和所述访存数据的操作信息中的至少一项,对存储在内存模块中的所述访存数据的标记和/或访存数据进行操作具体包括:
根据所述标记类型,确定是否对所述访存数据的标记进行操作;
若对所述访存数据的标记进行操作,以所述访存数据的存储地址为索引,查询预存储的访存标记位置映射表,确定所述访存数据的标记的存储地址,并根据所述访存数据的标记信息、所述访存数据的标记的存储地址、所述访存数据的存储地址和所述访存数据的操作信息中的至少一项,对存储在内存模块中的所述访存数据的标记,或所述访存数据的标记和所述访存数据进行操作;
若不对所述访存数据的标记进行操作,至少根据所述访存数据的存储地址和所述访存数据的操作信息,对存储在内存模块中的所述访存数据进行操作。
根据第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述访存数据的标记信息中具体包括标记类型、标记内容;
所述以所述访存数据的存储地址为索引,查询预存储的访存标记位置映射表,确定所述访存数据的标记的存储地址具体包括:
判断所述预存储的访存标记位置映射表中是否存储有所述访存数据的存储地址和所述访存数据的标记的存储地址的对应关系;
若存储有所述访存数据的存储地址和所述访存数据的标记的存储地址的对应关系,根据所述访存数据的存储地址从所述预存储的访存标记位置映射表中获取所述访存数据的标记的存储地址;
若没有存储,将所述访存数据的标记信息中的标记内容确定为所述访存数据的标记,在所述内存模块中选取大于或等于所述标记的标记粒度的空间作为所述访存数据的标记的存储地址,将所述标记写入所述存储地址中,并将所述访存数据的存储地址和所述访存数据的标记的存储地址的对应关系存储在所述预设的访存标记位置映射表中。
第二方面,提供了一种内存访问的方法,该方法包括:
当中央处理器向缓冲调度器发送访存数据的操作请求消息时,接收所述缓冲调度器发送的第一消息和/或第二消息,所述第一消息携带有访存数据的标记的存储地址和对访存数据的标记操作的操作信息;所述第二消息携带有访存数据的存储地址和对访存数据操作的操作信息;
根据所述第一消息和/或所述第二消息,对所述访存数据的标记和/或所述访存数据进行操作。
根据第二方面,在第二方面的第一种可能的实现方式中,所述访存数据的标记的存储地址和所述访存数据的存储地址是内存模块中不同的物理地址。
结合第二方面或第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述根据所述第一消息,对所述访存数据的标记进行操作具体包括:
根据所述第一消息携带的访存数据的标记的存储地址,获得所述访存数据的标记;
根据所述第一消息携带的对访存数据的标记操作的操作信息,对所述获得的访存数据的标记进行操作;
根据所述第二消息,对所述访存数据进行操作具体包括:
根据所述第二消息携带的访存数据的存储地址,获得所述访存数据;
根据所述第二消息携带的对访存数据操作的操作信息,对所述获得的访存数据进行操作。
第三方面,提供了一种缓冲调度器,所述缓冲调度器包括:接收单元和操作单元;
所述接收单元,用于接收访存数据的操作请求消息,其中,所述操作请求消息包括所述访存数据的标记信息、操作信息和所述访存数据的存储地址信息,所述访存数据的标记信息包括标记类型,所述标记类型用于指示对所述访存数据和/或访存数据的标记进行操作;
所述操作单元,用于根据所述访存数据的标记信息、以及所述访存数据的存储地址和所述访存数据的操作信息中的至少一项,对存储在内存模块中的所述访存数据的标记和/或访存数据进行操作。
根据第三方面,在第三方面的第一种可能的实现方式中,所述操作单元,具体用于
根据所述标记类型,确定是否对所述访存数据的标记进行操作;
若对所述访存数据的标记进行操作,以所述访存数据的存储地址为索引,查询预存储的访存标记位置映射表,确定所述访存数据的标记的存储地址,并根据所述访存数据的标记信息、所述访存数据的标记的存储地址、所述访存数据的存储地址和所述访存数据的操作信息中的至少一项,对存储在内存模块中的所述访存数据的标记,或所述访存数据的标记和所述访存数据进行操作;
若不对所述访存数据的标记进行操作,根据所述访存数据的存储地址和所述访存数据的操作信息,对存储在内存模块中的所述访存数据进行操作。
根据第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述访存数据的标记信息中具体包括标记类型、标记内容;
所述操作单元,具体用于
判断所述预存储的访存标记位置映射表中是否存储有所述访存数据的存储地址和所述访存数据的标记的存储地址的对应关系;
若存储有所述访存数据的存储地址和所述访存数据的标记的存储地址的对应关系,根据所述访存数据的存储地址从所述预存储的访存标记位置映射表中获取所述访存数据的标记的存储地址;
若没有存储,将所述访存数据的标记信息中的标记内容确定为所述访存数据的标记,在所述内存模块中选取大于或等于所述标记的标记粒度的空间作为所述访存数据的标记的存储地址,将所述标记写入所述存储地址中,并将所述访存数据的存储地址和所述访存数据的标记的存储地址的对应关系存储在所述预设的访存标记位置映射表中。
第四方面,提供了一种内存模块,所述内存模块包括:接收单元和操作单元;
所述接收单元,用于当中央处理器向缓冲调度器发送访存数据的操作请求消息时,接收所述缓冲调度器发送的第一消息和/或第二消息,所述第一消息携带有访存数据的标记的存储地址和对访存数据的标记操作的操作信息;所述第二消息携带有访存数据的存储地址和对访存数据操作的操作信息;
所述操作单元,用于根据所述第一消息和/或所述第二消息,对所述访存数据的标记和/或所述访存数据进行操作。
根据第四方面,在第四方面的第一种可能的实现方式中,所述访存数据的标记的存储地址和所述访存数据的存储地址是内存模块中不同的物理地址。
结合第四方面或第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述操作单元,具体用于
根据所述第一消息携带的访存数据的标记的存储地址,获得所述访存数据的标记;
根据所述第一消息携带的对访存数据的标记操作的操作信息,对所述获得的访存数据的标记进行操作;
所述操作单元,具体还用于
根据所述第二消息携带的访存数据的存储地址,获得所述访存数据;
根据所述第二消息携带的对访存数据操作的操作信息,对所述获得的访存数据进行操作。
本发明实施例提供一种内存访问的方法、缓冲调度器和内存模块,在缓冲调度器中预存储包括访存数据的地址和访存数据的标记的地址的对应关系的访存标记位置映射表,进而使得访存数据和访存数据的标记可以存储在内存模块中的任意位置,同时内存模块中可以存储各种粒度的访存数据的标记;在中央处理器根据应用场景请求对内存模块中存储的访存数据和/或访存数据的标记进行操作时,在操作请求消息中包括访存数据的标记信息、操作信息和所述访存数据的存储地址信息,其中,所述标记信息中包括指示应用场景的标记类型,使得缓冲调度器可以确定需要对访存数据和/或访存数据的标记执行的操作,进而,能够在不改变内存模块或内存芯片的基础上,支持多种场景。
附图说明
图1为本发明实施例提供的一种内存访问的方法的场景示意图;
图2为本发明实施例提供的一种内存访问的方法的流程示意图;
图3为本发明实施例提供的另一种内存访问的方法的流程示意图;
图4为本发明实施例提供的一种内存访问的方法的交互示意图;
图5为本发明实施例提供的一种缓冲调度器的结构示意图;
图6为本发明实施例提供的一种内存模块的结构示意图;
图7为本发明实施例提供的另一种缓冲调度器的结构示意图;
图8为本发明实施例提供的另一种内存模块的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一、
如图1所示,为本发明实施例提供的一种内存访问的方法的应用场景图,该场景包括中央处理器、内存控制器、缓冲调度器和内存模块。其中,内存控制器接收中央处理器发送的操作请求消息,内存控制器将该操作请求消息处理为具有固定格式的操作请求消息,并将处理后的操作请求消息通过同步内存总线协议或异步接口发送给缓冲调度器。该处理后的操作请求消息中包括访存数据的标记信息、操作信息和访存数据的存储地址。缓冲调度器接收到该处理后的操作请求消息后,根据该操作请求消息携带的访存数据的标记信息、操作信息和访存数据的存储地址对内存模块中存储的访存数据和该访存数据对应的标记进行处理,从而,可以在不改变内存模块或内存芯片的条件下,实现对内存数据的访问。
本发明实施例提供一种内存访问的方法,如图2所示,该方法包括:
201、接收访存数据的操作请求消息。
其中,所述操作请求消息包括所述访存数据的标记信息、操作信息和所述访存数据的存储地址信息。
具体的,所述缓冲调度器可以接收内存控制器通过同步内存总线协议或异步接口发送的访存数据的操作请求消息。
所述访存数据的标记信息包括标记类型,所述标记类型用于指示所述缓冲调度器对所述访存数据和/或访存数据的标记进行操作。
具体的,所述标记信息中可以仅包括所述标记类型,举例来说,所述标记类型可以为同步、访问控制、目录、内存溢出等。
当然,所述标记信息中还可以包括标记内容,或标记内容和标记特性。其中,所述标记内容对不同的应用场景,有不同的作用。举例来说,当所述标记类型为访问控制时,所述标记内容可以用于指示对所述访存数据的存储地址的数据进行访问的进程号;当所述标记类型为对内存中的数据加N时,所述标记内容可以为N,用于指示对所述访存数据的存储地址的数据加N。所述标记特性用于表示所述标记内容对应的属性的信息,包括标记粒度等,其中,标记粒度表示标记占用内存空间的大小。
所述操作信息包括:操作码、访存粒度中的至少一种。其中,操作码表示对访存存储地址对应的访存数据进行的操作,该操作包括读操作或写操作;访存粒度表示访存数据的大小。
202、根据所述访存数据的标记信息、以及所述访存数据的存储地址和所述访存数据的操作信息中的至少一项,对存储在内存模块中的所述访存数据的标记和/或访存数据进行操作。
所述缓冲调度器可以根据所述访存数据的标记信息、以及所述访存数据的存储地址和所述访存数据的操作信息中的至少一项,确定对存储在内存模块中的所述访存数据的标记、所述访存数据、或所述访存数据的标记和所述访存数据进行操作。
当确定需要对所述访存数据进行操作时,当所述操作信息中包括指示缓冲调度器对访存数据进行读操作的信息时,所述缓冲调度器从内存模块中读取该访存数据。当所述操作信息中包括指示缓冲调度器对访存数据进行写操作的信息时,所述缓冲调度器向内存模块中写入操作信息中携带的数据。
本发明实施例提供一种内存访问的方法,接收访存数据的操作请求消息,其中,所述操作请求消息包括所述访存数据的标记信息、操作信息和所述访存数据的存储地址信息,所述访存数据的标记信息包括标记类型,所述标记类型用于指示所述缓冲调度器对所述访存数据和/或访存数据的标记进行操作;根据所述访存数据的标记信息、以及所述访存数据的存储地址和所述访存数据的操作信息中的至少一项,对存储在内存模块中的所述访存数据的标记和/或访存数据进行操作。
通过该方法,在缓冲调度器中预存储包括访存数据的地址和访存数据的标记的地址的对应关系的访存标记位置映射表,进而使得访存数据和访存数据的标记可以存储在内存模块中的任意位置,同时内存模块中可以存储各种粒度的访存数据的标记;在中央处理器根据应用场景请求对内存模块中存储的访存数据和/或访存数据的标记进行操作时,在操作请求消息中包括访存数据的标记信息、操作信息和所述访存数据的存储地址信息,其中,所述标记信息中包括指示应用场景的标记类型,使得缓冲调度器可以确定需要对访存数据和/或访存数据的标记执行的操作,进而,能够在不改变内存模块或内存芯片的基础上,支持多种场景。
实施例二、
本发明实施例提供一种内存访问的方法,该方法的执行主体是内存模块,所述内存模块中存储有访存数据和访存数据的标记,所述访存数据和访存数据的标记存储在内存模块中的任意位置、任意粒度的物理单元中。当然,也可以为访存数据和访存数据的标记分别划分区域,使得访存数据只能够存储在内存模块的数据区域对应的物理位置中,访存数据的标记只能够存储在内存模块的标记区域对应的物理位置中。如图3所示,该方法包括:
301、当中央处理器向缓冲调度器发送访存数据的操作请求消息时,接收所述缓冲调度器发送的第一消息和/或第二消息,所述第一消息携带有访存数据的标记的存储地址和对访存数据的标记操作的操作信息;所述第二消息携带有访存数据的存储地址和对访存数据操作的操作信息。
其中,所述访存数据的标记的存储地址和所述访存数据的存储地址是内存模块中不同的物理地址。
当中央处理器向内存控制器发送访存数据的操作请求消息之后,内存控制器对该访存数据的操作请求消息处理为具有固定格式的访存数据的操作请求消息之后,所述内存控制器向所述缓冲调度器发送所述具有固定格式的访存数据的操作请求消息。
所述缓冲调度器接收所述访存数据的操作请求消息之后,对所述访存数据的标记和/或所述访存数据进行处理,当所述缓冲调度器对所述访存数据的标记进行处理时,向所述内存模块发送第一消息,所述第一消息携带有访存数据的标记的存储地址和对访存数据的标记操作的操作信息;当所述缓冲调度器对所述访存数据进行处理时,向所述内存模块发送第二消息,所述第二消息携带有访存数据的存储地址和对访存数据操作的操作信息。
302、根据所述第一消息和/或所述第二消息,对所述访存数据的标记和/或所述访存数据进行操作。
具体的,当所述内存模块根据所述第一消息,对所述访存数据的标记进行操作时,所述内存模块根据所述第一消息携带的访存数据的标记的存储地址,获得所述访存数据的标记;根据所述第一消息携带的对访存数据的标记操作的操作信息,对所述获得的访存数据的标记进行操作。该操作可以是读操作或写操作。
具体的,当所述内存模块根据所述第二消息,对所述访存数据进行操作时,所述内存模块根据所述第二消息携带的访存数据的存储地址,获得所述访存数据;根据所述第二消息携带的对访存数据操作的操作信息,对所述获得的访存数据进行操作。该操作具体可以是读操作或写操作。
本发明实施例提供一种内存访问的方法,当中央处理器向缓冲调度器发送访存数据的操作请求消息时,接收所述缓冲调度器发送的第一消息和/或第二消息,所述第一消息携带有访存数据的标记的存储地址和对访存数据的标记操作的操作信息;所述第二消息携带有访存数据的存储地址和对访存数据操作的操作信息;根据所述第一消息和/或所述第二消息,对所述访存数据的标记和/或所述访存数据进行操作。
通过该方法,在缓冲调度器中预存储包括访存数据的地址和访存数据的标记的地址的对应关系的访存标记位置映射表,进而使得访存数据和访存数据的标记可以存储在内存模块中的任意位置,同时内存模块中可以存储各种粒度的访存数据的标记;在中央处理器根据应用场景请求对内存模块中存储的访存数据和/或访存数据的标记进行操作时,在操作请求消息中包括访存数据的标记信息、操作信息和所述访存数据的存储地址信息,其中,所述标记信息中包括指示应用场景的标记类型,使得缓冲调度器可以确定需要对访存数据和/或访存数据的标记执行的操作,进而,能够在不改变内存模块或内存芯片的基础上,支持多种场景。
实施例三、
本发明实施例提供一种内存访问的方法,如图4所示,该方法包括:
401、内存控制器向缓冲调度器发送操作请求消息。
当中央处理器向内存控制器发送访存数据的操作请求消息之后,内存控制器对该访存数据的操作请求消息处理为具有固定格式的访存数据的操作请求消息之后,所述内存控制器向所述缓冲调度器发送所述具有固定格式的访存数据的操作请求消息。
其中,所述操作请求消息包括所述访存数据的标记信息、操作信息和所述访存数据的存储地址信息。
具体的,所述缓冲调度器可以接收内存控制器通过同步内存总线协议或异步接口发送的访存数据的操作请求消息。
所述访存数据的标记信息包括标记类型,所述标记类型用于指示所述缓冲调度器对所述访存数据和/或访存数据的标记进行操作。
具体的,所述标记信息中可以仅包括所述标记类型,举例来说,所述标记类型可以为同步、访问控制、目录、内存溢出等。
当然,所述标记信息中还可以包括标记内容,或标记内容和标记特性。其中,所述标记内容对不同的应用场景,有不同的作用。举例来说,当所述标记类型为访问控制时,所述标记内容可以用于指示对所述访存数据的存储地址的数据进行访问的进程号;当所述标记类型为对内存中的数据加N时,所述标记内容可以为N,用于指示对所述访存数据的存储地址的数据加N。所述标记特性用于表示所述标记内容对应的属性的信息,包括标记粒度等,其中,标记粒度表示标记占用内存空间的大小。
所述操作信息包括:操作码、访存粒度中的至少一种。其中,操作码表示对访存存储地址对应的访存数据进行的操作,该操作包括读操作或写操作;访存粒度表示访存数据的大小。
402、所述缓冲调度器根据所述标记类型,确定是否对所述访存数据的标记进行操作。
不同的应用场景,对应有不同的标记类型,因此,根据所述标记类型,可以确定应用场景,进而确定是否需要对所述访存数据的标记进行操作。
举例来说,假设标记类型为0时,应用场景为访存控制。访存控制是仅允许特定的访问者对内存模块中存储的特定数据进行访问的一种应用场景。该数据的特定访问者为该数据的标记,因此,所述缓冲调度器需要判断所述操作请求消息中携带的访问者是否与所述访存数据的特定访问者相同,进而,所述缓冲调度器需要对所述访存数据的标记进行操作。
若对所述访存数据的标记进行操作,执行步骤403;若不对所述访存数据的标记进行操作,执行步骤404。
403、若对所述访存数据的标记进行操作,以所述访存数据的存储地址为索引,查询预存储的访存标记位置映射表,确定所述访存数据的标记的存储地址,并根据所述访存数据的标记信息、所述访存数据的标记的存储地址、所述访存数据的存储地址和所述访存数据的操作信息中的至少一项,对存储在内存模块中的所述访存数据的标记,或所述访存数据的标记和所述访存数据进行操作。
具体的,所述访存数据的标记信息中具体包括标记类型、标记内容。
所述缓冲调度器中预存储有访存标记位置映射表,所述访存标记位置映射表中包括所述访存数据的存储地址和所述访存数据的标记的存储地址的对应关系。
现有技术中,访存数据和访存数据的标记存储在内存模块的同一物理单元中,所述缓冲调度器获得访存数据的地址之后,可以获取所述访存数据和访存数据的标记。本发明中,访存数据和访存数据的标记存储在内存模块中的任意位置、任意粒度的物理单元中,因此,所述缓冲调度器中存储有包括所述访存数据的地址和访存数据的标记的地址的对应关系的访存标记位置映射表。
当所述缓冲调度器以所述访存数据的存储地址为索引,查询预存储的访存标记位置映射表,确定所述访存数据的标记的存储地址时,所述缓冲调度器具体可以:判断所述预存储的访存标记位置映射表中是否存储有所述访存数据的存储地址和所述访存数据的标记的存储地址的对应关系;若存储有所述访存数据的存储地址和所述访存数据的标记的存储地址的对应关系,根据所述访存数据的存储地址从所述预存储的访存标记位置映射表中获取所述访存数据的标记的存储地址;若没有存储,将所述访存数据的标记信息中的标记内容确定为所述访存数据的标记,在所述内存模块中选取大于或等于所述标记的标记粒度的空间作为所述访存数据的标记的存储地址,将所述标记写入所述存储地址中,并将所述访存数据的存储地址和所述访存数据的标记的存储地址的对应关系存储在所述预设的访存标记位置映射表中。
其中,当所述缓冲调度器判断所述预存储的访存标记位置映射表中是否存储有所述访存数据的存储地址和所述访存数据的标记的存储地址的对应关系时,所述缓冲调度器可以在访存标记位置映射表中查询是否存在所述访存数据的存储地址,进而判断该访存标记位置映射表中是否存储有该访存数据的标记的存储地址。
可选的,为了使得缓冲调度器在接收到访存数据的操作请求消息后,能够快速的判断所述访存标记位置映射表中是否存储有该访存数据的存储地址和该访存数据的标记的存储地址的对应关系,所述缓冲调度器中存储的标记位置映射表存储的访存数据的存储地址与访存数据的标记的存储地址的对应信息,可以是按照标记粒度来分类存储的。
举例来说,将标记的标记粒度为4的访存数据与访存数据的标记的存储地址对应信息存储为一张表,将标记的标记粒度为8的访存数据与访存数据的标记的存储地址对应信息存储为一张表。这样,在所述缓冲调度器根据访存标记位置映射表和所述访存数据的存储地址判断所述访存数据是否有对应的标记时,可以根据所述访存数据的标记信息中的标记粒度在存储的对应的标记粒度的表中查询是否存在所述访存数据的存储地址,判断该访存标记位置映射表中是否存储有该访存数据的标记的存储地址。
当所述缓冲调度器对所述访存数据的标记进行操作时,所述缓冲调度器根据所述访存数据的标记的存储地址,获得存储在内存模块中的访存数据的标记;根据所述访存数据的标记信息和存储在内存模块中的访存数据的标记,确定对存储在内存模块中的所述访存数据的标记进行操作。
具体的,所述缓冲调度器根据所述访存数据的标记的存储地址,获得存储在内存模块中的访存数据的标记;根据所述访存数据的标记信息中的标记类型,确定对所述访存数据的标记的操作;根据所述确定的操作和存储在内存模块中的访存数据的标记,对存储在内存模块中的所述访存数据的标记进行操作。
其中,不同的标记类型对应有不用的操作,例如,标记类型代表访存控制时,对应的操作为对比操作。标记类型代表访存数据需要同步或是原子操作时,对应的操作为加减算术操作。
举例来说,访存类型为同步操作,则对应的操作为加减运算操作。所述缓冲调度器对内存模块中存储的所述访存数据的标记进行加减运算操作,以使得当所述访存数据被一个线程访问时,不能被其它线程访问。例如,当所述标记为0时表示可以访问,当标记为1时表示不可以访问。当一个线程对访存数据访问时,首先,所述缓冲调度器根据所述访存数据的标记的存储地址,获得存储在内存模块中的访存数据的标记;当访存数据的标记为0时,该线程对该访存数据进行访问,同时,该线程对将该标记加1,使得其它线程不能访问该访存数据,然后,所述缓冲调度器根据所述访存数据的存储地址和所述访存数据的操作信息,对存储在内存模块中的所述访存数据进行操作,该线程对该数据访问完成后,该线程将标记减1,使得其它线程可以访问该访存数据;当访存数据对应的标记为1时,该线程不能对该访存数据进行访问,所述缓冲调度器向内存控制器返回访问失败的消息。
进一步,在所述缓冲调度器对所述访存数据和所述访存数据的标记进行操作时,为了保证内存模块中数据的安全性,在所述缓冲调度器根据所述访存数据的标记信息和所述访存数据的标记的存储地址,对存储在内存模块中的所述访存数据的标记进行操作之后,还包括:获得对所述访存数据的标记进行操作的结果信息;根据所述结果信息,确定是否对存储在内存模块中的所述访存数据进行操作;当所述结果信息表示对所述访存数据的标记操作成功时,根据所述访存数据的操作信息,对存储在内存模块中的所述访存数据进行操作,当所述结果信息表示对所述访存数据的标记操作失败时,向内存控制器返回访问失败的消息。
举例来说,访存类型为访问控制,则对应的操作为对比操作。所述缓冲调度器根据所述访存数据的标记的存储地址,获得存储在内存模块中的访存数据的标记;所述缓冲调度器将接收到的访存数据的标记信息中的标记内容,与所述访存数据的标记进行比较,判断两者是否相同。若所述标记内容与标记相同,则对标记信息进行操作的结果信息为标记操作成功的消息,并根据所述访存数据的存储地址和所述访存数据的操作信息,对存储在内存模块中的所述访存数据进行操作;若所述标记内容与标记不同,则对标记信息进行操作的结果信息为标记操作失败的消息,所述缓冲调度器向内存控制器返回访问失败的消息。
404、若不对所述访存数据的标记进行操作,至少根据所述访存数据的存储地址和所述访存数据的操作信息,对存储在内存模块中的所述访存数据进行操作。
可以理解的是,对存储在内存模块中的访存数据进行操作时,至少需要所述访存数据的存储地址和所述访存数据的操作信息。
具体的,当所述操作信息中包括指示缓冲调度器对访存数据进行读操作的信息时,所述缓冲调度器从内存模块中的读取该访存数据。当所述操作信息中包括指示缓冲调度器对访存数据进行写操作的信息时,所述缓冲调度器向内存模块中写入操作信息中携带的数据。
若所述缓冲调度器对所述访存数据进行操作,则执行步骤407-408;若所述缓冲调度器对所述访存数据的标记进行操作,则执行步骤405-406;若所述缓冲调度器对所述访存数据和所述访存数据的标记进行操作,则执行步骤405-408。
405、所述缓冲调度器向所述内存模块发送第一消息,所述第一消息携带有访存数据的标记的存储地址和对访存数据的标记操作的操作信息。
406、所述内存模块根据所述第一消息,对所述访存数据的标记进行操作。
具体的,所述内存模块根据所述第一消息携带的访存数据的标记的存储地址,获得所述访存数据的标记;根据所述第一消息携带的对访存数据的标记操作的操作信息,对所述获得的访存数据的标记进行操作。
407、所述缓冲调度器向所述内存模块发送第二消息,所述第二消息携带有访存数据的存储地址和对访存数据操作的操作信息。
408、所述内存模块根据所述第二消息,对所述访存数据进行操作。
具体的,所述内存模块根据所述第二消息携带的访存数据的存储地址,获得所述访存数据;根据所述第二消息携带的对访存数据操作的操作信息,对所述获得的访存数据进行操作。
本发明技术领域人员理解的是,所述内存模块根据所述第一消息和/或第二消息,对所述访存数据的标记和/或数据进行操作后,会向所述缓冲调度器返回操作结果,具体的实现过程本发明实施例在此不作限定。
本发明实施例提供一种内存访问的方法,接收访存数据的操作请求消息,其中,所述操作请求消息包括所述访存数据的标记信息、操作信息和所述访存数据的存储地址信息,所述访存数据的标记信息包括标记类型,所述标记类型用于指示所述缓冲调度器对所述访存数据和/或访存数据的标记进行操作;根据所述访存数据的标记信息、以及所述访存数据的存储地址和所述访存数据的操作信息中的至少一项,对存储在内存模块中的所述访存数据的标记和/或访存数据进行操作。
通过该方法,在缓冲调度器中预存储包括访存数据的地址和访存数据的标记的地址的对应关系的访存标记位置映射表,进而使得访存数据和访存数据的标记可以存储在内存模块中的任意位置,同时内存模块中可以存储各种粒度的访存数据的标记;在中央处理器根据应用场景请求对内存模块中存储的访存数据和/或访存数据的标记进行操作时,在操作请求消息中包括访存数据的标记信息、操作信息和所述访存数据的存储地址信息,其中,所述标记信息中包括指示应用场景的标记类型,使得缓冲调度器可以确定需要对访存数据和/或访存数据的标记执行的操作,进而,能够在不改变内存模块或内存芯片的基础上,支持多种场景。
实施例四、
本发明实施例提供一种缓冲调度器,如图5所示,所述缓冲调度器50包括:接收单元51和操作单元52。
所述接收单元51,用于接收访存数据的操作请求消息,其中,所述操作请求消息包括所述访存数据的标记信息、操作信息和所述访存数据的存储地址信息,所述访存数据的标记信息包括标记类型,所述标记类型用于指示对所述访存数据和/或访存数据的标记进行操作。
所述操作单元52,用于根据所述访存数据的标记信息、以及所述访存数据的存储地址和所述访存数据的操作信息中的至少一项,对存储在内存模块中的所述访存数据的标记和/或访存数据进行操作。
进一步的,所述操作单元52,具体用于
根据所述标记类型,确定是否对所述访存数据的标记进行操作;
若对所述访存数据的标记进行操作,以所述访存数据的存储地址为索引,查询预存储的访存标记位置映射表,确定所述访存数据的标记的存储地址,并根据所述访存数据的标记信息、所述访存数据的标记的存储地址、所述访存数据的存储地址和所述访存数据的操作信息中的至少一项,对存储在内存模块中的所述访存数据的标记,或所述访存数据的标记和所述访存数据进行操作;
若不对所述访存数据的标记进行操作,根据所述访存数据的存储地址和所述访存数据的操作信息,对存储在内存模块中的所述访存数据进行操作。
进一步的,当所述访存数据的标记中具体包括标记类型和标记内容时,所述操作单元52,具体用于
判断所述预存储的访存标记位置映射表中是否存储有所述访存数据的存储地址和所述访存数据的标记的存储地址的对应关系;
若存储有所述访存数据的存储地址和所述访存数据的标记的存储地址的对应关系,根据所述访存数据的存储地址从所述预存储的访存标记位置映射表中获取所述访存数据的标记的存储地址;
若没有存储,将所述访存数据的标记信息中的标记内容确定为所述访存数据的标记,在所述内存模块中选取大于或等于所述标记的标记粒度的空间作为所述访存数据的标记的存储地址,将所述标记写入所述存储地址中,并将所述访存数据的存储地址和所述访存数据的标记的存储地址的对应关系存储在所述预设的访存标记位置映射表中。
本发明实施例提供一种缓冲调度器,所述接收单元接收访存数据的操作请求消息,其中,所述操作请求消息包括所述访存数据的标记信息、操作信息和所述访存数据的存储地址信息,所述访存数据的标记信息包括标记类型,所述标记类型用于指示对所述访存数据和/或访存数据的标记进行操作;所述操作单元根据所述访存数据的标记信息、以及所述访存数据的存储地址和所述访存数据的操作信息中的至少一项,对存储在内存模块中的所述访存数据的标记和/或访存数据进行操作。
通过该方法,在缓冲调度器中预存储包括访存数据的地址和访存数据的标记的地址的对应关系的访存标记位置映射表,进而使得访存数据和访存数据的标记可以存储在内存模块中的任意位置,同时内存模块中可以存储各种粒度的访存数据的标记;在中央处理器根据应用场景请求对内存模块中存储的访存数据和/或访存数据的标记进行操作时,在操作请求消息中包括访存数据的标记信息、操作信息和所述访存数据的存储地址信息,其中,所述标记信息中包括指示应用场景的标记类型,使得缓冲调度器可以确定需要对访存数据和/或访存数据的标记执行的操作,进而,能够在不改变内存模块或内存芯片的基础上,支持多种场景。
实施例五、
本发明实施例提供一种内存模块,如图6所示,所述内存模块60包括:接收单元61和操作单元62。
所述接收单元61,用于当中央处理器向缓冲调度器发送访存数据的操作请求消息时,接收所述缓冲调度器发送的第一消息和/或第二消息。
其中,所述第一消息携带有访存数据的标记的存储地址和对访存数据的标记操作的操作信息;所述第二消息携带有访存数据的存储地址和对访存数据操作的操作信息。
所述操作单元62,用于根据所述第一消息和/或所述第二消息,对所述访存数据的标记和/或所述访存数据进行操作。
进一步的,所述访存数据的标记的存储地址和所述访存数据的存储地址是内存模块中不同的物理地址。
进一步的,所述操作单元62,具体用于
根据所述第一消息携带的访存数据的标记的存储地址,获得所述访存数据的标记;
根据所述第一消息携带的对访存数据的标记操作的操作信息,对所述获得的访存数据的标记进行操作;
所述操作单元,具体还用于
根据所述第二消息携带的访存数据的存储地址,获得所述访存数据;
根据所述第二消息携带的对访存数据操作的操作信息,对所述获得的访存数据进行操作。
本发明实施例提供一种内存模块,当中央处理器向缓冲调度器发送访存数据的操作请求消息时,所述接收单元接收所述缓冲调度器发送的第一消息和/或第二消息,所述第一消息携带有访存数据的标记的存储地址和对访存数据的标记操作的操作信息,所述第二消息携带有访存数据的存储地址和对访存数据操作的操作信息;所述操作单元根据所述第一消息和/或所述第二消息,对所述访存数据的标记和/或所述访存数据进行操作。
通过该方法,在缓冲调度器中预存储包括访存数据的地址和访存数据的标记的地址的对应关系的访存标记位置映射表,进而使得访存数据和访存数据的标记可以存储在内存模块中的任意位置,同时内存模块中可以存储各种粒度的访存数据的标记;在中央处理器根据应用场景请求对内存模块中存储的访存数据和/或访存数据的标记进行操作时,在操作请求消息中包括访存数据的标记信息、操作信息和所述访存数据的存储地址信息,其中,所述标记信息中包括指示应用场景的标记类型,使得缓冲调度器可以确定需要对访存数据和/或访存数据的标记执行的操作,进而,能够在不改变内存模块或内存芯片的基础上,支持多种场景。
实施例六、
本发明实施例提供一种缓冲调度器,如图7所示,所述缓冲调度器70包括:接收器71和处理器72。
所述接收器71,用于接收访存数据的操作请求消息,其中,所述操作请求消息包括所述访存数据的标记信息、操作信息和所述访存数据的存储地址信息,所述访存数据的标记信息包括标记类型,所述标记类型用于指示对所述访存数据和/或访存数据的标记进行操作。
所述处理器72,用于根据所述访存数据的标记信息、以及所述访存数据的存储地址和所述访存数据的操作信息中的至少一项,对存储在内存模块中的所述访存数据的标记和/或访存数据进行操作。
进一步的,所述处理器72,具体用于
根据所述标记类型,确定是否对所述访存数据的标记进行操作;
若对所述访存数据的标记进行操作,以所述访存数据的存储地址为索引,查询预存储的访存标记位置映射表,确定所述访存数据的标记的存储地址,并根据所述访存数据的标记信息、所述访存数据的标记的存储地址、所述访存数据的存储地址和所述访存数据的操作信息中的至少一项,对存储在内存模块中的所述访存数据的标记,或所述访存数据的标记和所述访存数据进行操作;
若不对所述访存数据的标记进行操作,根据所述访存数据的存储地址和所述访存数据的操作信息,对存储在内存模块中的所述访存数据进行操作。
进一步的,当所述访存数据的标记中具体包括标记类型和标记内容时,所述处理器72,具体用于
判断所述预存储的访存标记位置映射表中是否存储有所述访存数据的存储地址和所述访存数据的标记的存储地址的对应关系;
若存储有所述访存数据的存储地址和所述访存数据的标记的存储地址的对应关系,根据所述访存数据的存储地址从所述预存储的访存标记位置映射表中获取所述访存数据的标记的存储地址;
若没有存储,将所述访存数据的标记信息中的标记内容确定为所述访存数据的标记,在所述内存模块中选取大于或等于所述标记的标记粒度的空间作为所述访存数据的标记的存储地址,将所述标记写入所述存储地址中,并将所述访存数据的存储地址和所述访存数据的标记的存储地址的对应关系存储在所述预设的访存标记位置映射表中。
本发明实施例提供一种缓冲调度器,所述接收器接收访存数据的操作请求消息,其中,所述操作请求消息包括所述访存数据的标记信息、操作信息和所述访存数据的存储地址信息,所述访存数据的标记信息包括标记类型,所述标记类型用于指示对所述访存数据和/或访存数据的标记进行操作;所述处理器根据所述访存数据的标记信息、以及所述访存数据的存储地址和所述访存数据的操作信息中的至少一项,对存储在内存模块中的所述访存数据的标记和/或访存数据进行操作。
通过该方法,在缓冲调度器中预存储包括访存数据的地址和访存数据的标记的地址的对应关系的访存标记位置映射表,进而使得访存数据和访存数据的标记可以存储在内存模块中的任意位置,同时内存模块中可以存储各种粒度的访存数据的标记;在中央处理器根据应用场景请求对内存模块中存储的访存数据和/或访存数据的标记进行操作时,在操作请求消息中包括访存数据的标记信息、操作信息和所述访存数据的存储地址信息,其中,所述标记信息中包括指示应用场景的标记类型,使得缓冲调度器可以确定需要对访存数据和/或访存数据的标记执行的操作,进而,能够在不改变内存模块或内存芯片的基础上,支持多种场景。
实施例七、
本发明实施例提供一种内存模块,如图8所示,所述内存模块80包括:接收器81和处理器82。
所述接收器81,用于当中央处理器向缓冲调度器发送访存数据的操作请求消息时,接收所述缓冲调度器发送的第一消息和/或第二消息。
其中,所述第一消息携带有访存数据的标记的存储地址和对访存数据的标记操作的操作信息;所述第二消息携带有访存数据的存储地址和对访存数据操作的操作信息。
所述处理器82,用于根据所述第一消息和/或所述第二消息,对所述访存数据的标记和/或所述访存数据进行操作。
进一步的,所述访存数据的标记的存储地址和所述访存数据的存储地址是内存模块中不同的物理地址。
进一步的,所述处理器82,具体用于
根据所述第一消息携带的访存数据的标记的存储地址,获得所述访存数据的标记;
根据所述第一消息携带的对访存数据的标记操作的操作信息,对所述获得的访存数据的标记进行操作;
所述操作单元,具体还用于
根据所述第二消息携带的访存数据的存储地址,获得所述访存数据;
根据所述第二消息携带的对访存数据操作的操作信息,对所述获得的访存数据进行操作。
本发明实施例提供一种内存模块,当中央处理器向缓冲调度器发送访存数据的操作请求消息时,所述接收器接收所述缓冲调度器发送的第一消息和/或第二消息,所述第一消息携带有访存数据的标记的存储地址和对访存数据的标记操作的操作信息,所述第二消息携带有访存数据的存储地址和对访存数据操作的操作信息;所述处理器根据所述第一消息和/或所述第二消息,对所述访存数据的标记和/或所述访存数据进行操作。
通过该方法,在缓冲调度器中预存储包括访存数据的地址和访存数据的标记的地址的对应关系的访存标记位置映射表,进而使得访存数据和访存数据的标记可以存储在内存模块中的任意位置,同时内存模块中可以存储各种粒度的访存数据的标记;在中央处理器根据应用场景请求对内存模块中存储的访存数据和/或访存数据的标记进行操作时,在操作请求消息中包括访存数据的标记信息、操作信息和所述访存数据的存储地址信息,其中,所述标记信息中包括指示应用场景的标记类型,使得缓冲调度器可以确定需要对访存数据和/或访存数据的标记执行的操作,进而,能够在不改变内存模块或内存芯片的基础上,支持多种场景。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种内存访问的方法,应用于缓冲调度器,其特征在于,所述方法包括:
接收访存数据的操作请求消息,其中,所述操作请求消息包括所述访存数据的标记信息、操作信息和所述访存数据的存储地址信息,所述访存数据的标记信息包括标记类型,所述标记类型用于指示所述缓冲调度器对所述访存数据和/或访存数据的标记进行操作;
根据所述访存数据的标记信息、以及所述访存数据的存储地址和所述访存数据的操作信息中的至少一项,对存储在内存模块中的所述访存数据的标记和/或访存数据进行操作。
2.根据权利要求1所述的方法,其特征在于,所述根据所述访存数据的标记信息、以及所述访存数据的存储地址和所述访存数据的操作信息中的至少一项,对存储在内存模块中的所述访存数据的标记和/或访存数据进行操作具体包括:
根据所述标记类型,确定是否对所述访存数据的标记进行操作;
若对所述访存数据的标记进行操作,以所述访存数据的存储地址为索引,查询预存储的访存标记位置映射表,确定所述访存数据的标记的存储地址,并根据所述访存数据的标记信息、所述访存数据的标记的存储地址、所述访存数据的存储地址和所述访存数据的操作信息中的至少一项,对存储在内存模块中的所述访存数据的标记,或所述访存数据的标记和所述访存数据进行操作;
若不对所述访存数据的标记进行操作,至少根据所述访存数据的存储地址和所述访存数据的操作信息,对存储在内存模块中的所述访存数据进行操作。
3.根据权利要求2所述的方法,其特征在于,所述访存数据的标记信息中具体包括标记类型、标记内容;
所述以所述访存数据的存储地址为索引,查询预存储的访存标记位置映射表,确定所述访存数据的标记的存储地址具体包括:
判断所述预存储的访存标记位置映射表中是否存储有所述访存数据的存储地址和所述访存数据的标记的存储地址的对应关系;
若存储有所述访存数据的存储地址和所述访存数据的标记的存储地址的对应关系,根据所述访存数据的存储地址从所述预存储的访存标记位置映射表中获取所述访存数据的标记的存储地址;
若没有存储,将所述访存数据的标记信息中的标记内容确定为所述访存数据的标记,在所述内存模块中选取大于或等于所述标记的标记粒度的空间作为所述访存数据的标记的存储地址,将所述标记写入所述存储地址中,并将所述访存数据的存储地址和所述访存数据的标记的存储地址的对应关系存储在所述预设的访存标记位置映射表中。
4.一种内存访问的方法,其特征在于,所述方法包括:
当中央处理器向缓冲调度器发送访存数据的操作请求消息时,接收所述缓冲调度器发送的第一消息和/或第二消息,所述第一消息携带有访存数据的标记的存储地址和对访存数据的标记操作的操作信息,所述第二消息携带有访存数据的存储地址和对访存数据操作的操作信息;
根据所述第一消息和/或所述第二消息,对所述访存数据的标记和/或所述访存数据进行操作。
5.根据权利要求4所述的方法,其特征在于,所述访存数据的标记的存储地址和所述访存数据的存储地址是内存模块中不同的物理地址。
6.根据权利要求4或5所述的方法,其特征在于,所述根据所述第一消息,对所述访存数据的标记进行操作具体包括:
根据所述第一消息携带的访存数据的标记的存储地址,获得所述访存数据的标记;
根据所述第一消息携带的对访存数据的标记操作的操作信息,对所述获得的访存数据的标记进行操作;
根据所述第二消息,对所述访存数据进行操作具体包括:
根据所述第二消息携带的访存数据的存储地址,获得所述访存数据;
根据所述第二消息携带的对访存数据操作的操作信息,对所述获得的访存数据进行操作。
7.一种缓冲调度器,其特征在于,所述缓冲调度器包括:接收单元和操作单元;
所述接收单元,用于接收访存数据的操作请求消息,其中,所述操作请求消息包括所述访存数据的标记信息、操作信息和所述访存数据的存储地址信息,所述访存数据的标记信息包括标记类型,所述标记类型用于指示对所述访存数据和/或访存数据的标记进行操作;
所述操作单元,用于根据所述访存数据的标记信息、以及所述访存数据的存储地址和所述访存数据的操作信息中的至少一项,对存储在内存模块中的所述访存数据的标记和/或访存数据进行操作。
8.根据权利要求7所述的缓冲调度器,其特征在于,所述操作单元,具体用于
根据所述标记类型,确定是否对所述访存数据的标记进行操作;
若对所述访存数据的标记进行操作,以所述访存数据的存储地址为索引,查询预存储的访存标记位置映射表,确定所述访存数据的标记的存储地址,并根据所述访存数据的标记信息、所述访存数据的标记的存储地址、所述访存数据的存储地址和所述访存数据的操作信息中的至少一项,对存储在内存模块中的所述访存数据的标记,或所述访存数据的标记和所述访存数据进行操作;
若不对所述访存数据的标记进行操作,根据所述访存数据的存储地址和所述访存数据的操作信息,对存储在内存模块中的所述访存数据进行操作。
9.根据权利要求8所述的缓冲调度器,其特征在于,所述访存数据的标记信息中具体包括标记类型、标记内容;
所述操作单元,具体用于
判断所述预存储的访存标记位置映射表中是否存储有所述访存数据的存储地址和所述访存数据的标记的存储地址的对应关系;
若存储有所述访存数据的存储地址和所述访存数据的标记的存储地址的对应关系,根据所述访存数据的存储地址从所述预存储的访存标记位置映射表中获取所述访存数据的标记的存储地址;
若没有存储,将所述访存数据的标记信息中的标记内容确定为所述访存数据的标记,在所述内存模块中选取大于或等于所述标记的标记粒度的空间作为所述访存数据的标记的存储地址,将所述标记写入所述存储地址中,并将所述访存数据的存储地址和所述访存数据的标记的存储地址的对应关系存储在所述预设的访存标记位置映射表中。
10.一种内存模块,其特征在于,所述内存模块包括:接收单元和操作单元;
所述接收单元,用于当中央处理器向缓冲调度器发送访存数据的操作请求消息时,接收所述缓冲调度器发送的第一消息和/或第二消息,所述第一消息携带有访存数据的标记的存储地址和对访存数据的标记操作的操作信息,所述第二消息携带有访存数据的存储地址和对访存数据操作的操作信息;
所述操作单元,用于根据所述第一消息和/或所述第二消息,对所述访存数据的标记和/或所述访存数据进行操作。
11.根据权利要求10所述的内存模块,其特征在于,所述访存数据的标记的存储地址和所述访存数据的存储地址是内存模块中不同的物理地址。
12.根据权利要求10或11所述的内存模块,其特征在于,所述操作单元,具体用于
根据所述第一消息携带的访存数据的标记的存储地址,获得所述访存数据的标记;
根据所述第一消息携带的对访存数据的标记操作的操作信息,对所述获得的访存数据的标记进行操作;
所述操作单元,具体还用于
根据所述第二消息携带的访存数据的存储地址,获得所述访存数据;
根据所述第二消息携带的对访存数据操作的操作信息,对所述获得的访存数据进行操作。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310209787.8A CN104216834B (zh) | 2013-05-30 | 2013-05-30 | 一种内存访问的方法、缓冲调度器和内存模块 |
EP13885880.8A EP3007067B1 (en) | 2013-05-30 | 2013-11-30 | Method of memory access, buffer scheduler and memory module |
PCT/CN2013/088252 WO2014190700A1 (zh) | 2013-05-30 | 2013-11-30 | 一种内存访问的方法、缓冲调度器和内存模块 |
US14/953,320 US9785551B2 (en) | 2013-05-30 | 2015-11-28 | Memory access method, buffer scheduler and memory module |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310209787.8A CN104216834B (zh) | 2013-05-30 | 2013-05-30 | 一种内存访问的方法、缓冲调度器和内存模块 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104216834A true CN104216834A (zh) | 2014-12-17 |
CN104216834B CN104216834B (zh) | 2017-10-10 |
Family
ID=51987937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310209787.8A Active CN104216834B (zh) | 2013-05-30 | 2013-05-30 | 一种内存访问的方法、缓冲调度器和内存模块 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9785551B2 (zh) |
EP (1) | EP3007067B1 (zh) |
CN (1) | CN104216834B (zh) |
WO (1) | WO2014190700A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126126A (zh) * | 2016-06-30 | 2016-11-16 | 联想(北京)有限公司 | 内存设备、电子设备及数据处理方法 |
CN109739806A (zh) * | 2018-12-28 | 2019-05-10 | 安谋科技(中国)有限公司 | 内存访问方法、内存访问控制器和片上*** |
CN111292488A (zh) * | 2020-02-13 | 2020-06-16 | 展讯通信(上海)有限公司 | 图像数据的处理方法、装置及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10193248B2 (en) | 2016-08-31 | 2019-01-29 | Crystal Group, Inc. | System and method for retaining memory modules |
US10734756B2 (en) | 2018-08-10 | 2020-08-04 | Crystal Group Inc. | DIMM/expansion card retention method for highly kinematic environments |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070226426A1 (en) * | 2006-03-23 | 2007-09-27 | Clark Leo J | Data processing system, cache system and method for precisely forming an invalid coherency state based upon a combined response |
CN101526925A (zh) * | 2009-04-15 | 2009-09-09 | 成都市华为赛门铁克科技有限公司 | 一种缓存数据的处理方法及数据存储*** |
CN102567415A (zh) * | 2010-12-31 | 2012-07-11 | 百度在线网络技术(北京)有限公司 | 一种数据库的控制方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6678803B2 (en) * | 1999-11-03 | 2004-01-13 | Micron Technology, Inc. | Method and device to use memory access request tags |
US7580914B2 (en) * | 2003-12-24 | 2009-08-25 | Intel Corporation | Method and apparatus to improve execution of a stored program |
US7251710B1 (en) * | 2004-01-12 | 2007-07-31 | Advanced Micro Devices, Inc. | Cache memory subsystem including a fixed latency R/W pipeline |
US7308523B1 (en) * | 2006-04-10 | 2007-12-11 | Pericom Semiconductor Corp. | Flow-splitting and buffering PCI express switch to reduce head-of-line blocking |
US20110296106A1 (en) * | 2010-06-01 | 2011-12-01 | Hsieh-Huan Yen | System for realizing multi-port storage media based on a uasp protocol of a usb specification version 3.0 and method thereof |
-
2013
- 2013-05-30 CN CN201310209787.8A patent/CN104216834B/zh active Active
- 2013-11-30 EP EP13885880.8A patent/EP3007067B1/en active Active
- 2013-11-30 WO PCT/CN2013/088252 patent/WO2014190700A1/zh active Application Filing
-
2015
- 2015-11-28 US US14/953,320 patent/US9785551B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070226426A1 (en) * | 2006-03-23 | 2007-09-27 | Clark Leo J | Data processing system, cache system and method for precisely forming an invalid coherency state based upon a combined response |
CN101526925A (zh) * | 2009-04-15 | 2009-09-09 | 成都市华为赛门铁克科技有限公司 | 一种缓存数据的处理方法及数据存储*** |
CN102567415A (zh) * | 2010-12-31 | 2012-07-11 | 百度在线网络技术(北京)有限公司 | 一种数据库的控制方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126126A (zh) * | 2016-06-30 | 2016-11-16 | 联想(北京)有限公司 | 内存设备、电子设备及数据处理方法 |
CN109739806A (zh) * | 2018-12-28 | 2019-05-10 | 安谋科技(中国)有限公司 | 内存访问方法、内存访问控制器和片上*** |
CN111292488A (zh) * | 2020-02-13 | 2020-06-16 | 展讯通信(上海)有限公司 | 图像数据的处理方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104216834B (zh) | 2017-10-10 |
US20160085670A1 (en) | 2016-03-24 |
WO2014190700A1 (zh) | 2014-12-04 |
EP3007067A1 (en) | 2016-04-13 |
US9785551B2 (en) | 2017-10-10 |
EP3007067B1 (en) | 2019-09-18 |
EP3007067A4 (en) | 2016-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102161448B1 (ko) | 멀티 채널 메모리를 포함하는 시스템 및 그 동작 방법 | |
CN104603739A (zh) | 对并行存储的块级访问 | |
US8661163B2 (en) | Tag allocation for queued commands across multiple devices | |
CN105094707A (zh) | 一种数据存储、读取方法及装置 | |
CN105094983A (zh) | 计算机,控制设备和数据处理方法 | |
US20180060180A1 (en) | Systems and Processes For Data Backup And Recovery | |
CN105446813A (zh) | 一种资源分配的方法及装置 | |
CN104216834A (zh) | 一种内存访问的方法、缓冲调度器和内存模块 | |
CN111737221B (zh) | 集群文件***的数据读写方法、装置及设备和存储介质 | |
CN104079614A (zh) | 用于分布式发布订阅***消息有序获取的方法和*** | |
CN105335309A (zh) | 一种数据传输方法及计算机 | |
CN104205780A (zh) | 一种存储数据的方法和装置 | |
CN104951342A (zh) | 一种调整启动顺序的方法及装置 | |
CN104104705A (zh) | 分布式存储***的接入方法和设备 | |
CN103049546B (zh) | 一种管理、访问***日志的方法和装置 | |
US9317420B2 (en) | Computer program installation across multiple memories | |
US11645549B2 (en) | System for deriving data in constrained environments | |
CN111858020B (zh) | 用户资源限制方法、装置及计算机存储介质 | |
EP3289466B1 (en) | Technologies for scalable remotely accessible memory segments | |
CN102521155B (zh) | 实现表项在物理存储器上动态分配的方法和装置 | |
CN104750547A (zh) | 虚拟机的输入输出io请求处理方法及装置 | |
CN204331728U (zh) | 一种基于云计算的数据存储*** | |
US20140143456A1 (en) | Determining a mapping mode for a dma data transfer | |
CN101510146A (zh) | 基于独立冗余磁盘阵列的虚拟空间创建方法、装置和*** | |
US20140281300A1 (en) | Opportunistic Tier in Hierarchical Storage |
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 |