CN115344506B - 内存地址的映射方法、内存访问方法和装置、芯片、设备 - Google Patents

内存地址的映射方法、内存访问方法和装置、芯片、设备 Download PDF

Info

Publication number
CN115344506B
CN115344506B CN202211276454.2A CN202211276454A CN115344506B CN 115344506 B CN115344506 B CN 115344506B CN 202211276454 A CN202211276454 A CN 202211276454A CN 115344506 B CN115344506 B CN 115344506B
Authority
CN
China
Prior art keywords
memory
sub
mapping
spaces
memory space
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.)
Active
Application number
CN202211276454.2A
Other languages
English (en)
Other versions
CN115344506A (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.)
Hanbo Semiconductor Shanghai Co ltd
Original Assignee
Hanbo Semiconductor Shanghai Co ltd
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 Hanbo Semiconductor Shanghai Co ltd filed Critical Hanbo Semiconductor Shanghai Co ltd
Priority to CN202211276454.2A priority Critical patent/CN115344506B/zh
Publication of CN115344506A publication Critical patent/CN115344506A/zh
Application granted granted Critical
Publication of CN115344506B publication Critical patent/CN115344506B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System (AREA)

Abstract

本公开提供一种内存地址的映射方法、内存访问方法、装置、芯片、电子设备和介质,涉及计算机技术领域,具体涉及内存技术领域。所述内存包括大小相同的第一内存空间和第二内存空间,所述第一内存空间和第二内存空间中的每一个均包括多个地址连续的子内存空间,所述内存地址的映射方法包括:按照第一映射规则,将所述第一内存空间的多个子内存空间一一对应映射至多个内存访问通道;以及按照不同于所述第一映射规则的第二映射规则,将所述第二内存空间的多个子内存空间一一对应映射至所述多个内存访问通道。

Description

内存地址的映射方法、内存访问方法和装置、芯片、设备
技术领域
本公开涉及计算机技术领域,具体涉及内存领域,尤其涉及一种内存地址的映射方法、内存访问方法、装置、芯片、电子设备、计算机可读存储介质和计算机程序产品。
背景技术
内存的访问效率直接影响系统处理性能,当系统中包括多个内存访问通道时,需要将内存中所包括的不同地址的内存空间映射到不同的内存访问通道。
在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。
发明内容
本公开提供了一种内存地址的映射方法、内存访问方法、装置、芯片、电子设备、计算机可读存储介质和计算机程序产品。
根据本公开的一方面,提供了一种内存地址的映射方法,所述内存包括大小相同的第一内存空间和第二内存空间,所述第一内存空间和第二内存空间中的每一个均包括多个地址连续的子内存空间,所述方法包括:按照第一映射规则,将所述第一内存空间的多个子内存空间一一对应映射至多个内存访问通道;以及按照不同于所述第一映射规则的第二映射规则,将所述第二内存空间的多个子内存空间一一对应映射至所述多个内存访问通道。
根据本公开的另一方面,提供了一种内存访问方法,所述内存包括大小相同的第一内存空间和第二内存空间,所述第一内存空间和第二内存空间中的每一个均包括多个地址连续的子内存空间,所述方法包括:利用如上所述的内存地址的映射方法,将所述多个子内存空间一一对应映射至多个内存访问通道;以及针对所述多个子内存空间中的每个子内存空间,基于与该子内存空间对应的内存访问通道访问所述子内存空间。
根据本公开的另一方面,提供了一种内存地址的映射装置,所述内存包括大小相同的第一内存空间和第二内存空间,所述第一内存空间和第二内存空间中的每一个均包括多个地址连续的子内存空间,所述装置包括:第一映射单元,被配置用于按照第一映射规则,将所述第一内存空间的多个子内存空间一一对应映射至多个内存访问通道;以及第二映射单元,被配置用于按照不同于所述第一映射规则的第二映射规则,将所述第二内存空间的多个子内存空间一一对应映射至所述多个内存访问通道。
根据本公开的另一方面,提供了一种内存访问装置,所述内存包括大小相同的第一内存空间和第二内存空间,所述第一内存空间和第二内存空间中的每一个均包括多个地址连续的子内存空间,所述装置包括:如上所述的内存地址的映射装置,被配置用于将所述多个子内存空间一一对应映射至多个内存访问通道;以及访问单元,被配置用于针对所述多个子内存空间中的每个子内存空间,基于与该子内存空间对应的内存访问通道访问所述子内存空间。
根据本公开的另一方面,提供了一种芯片,包括上述任一项的装置。
根据本公开的再另一方面,提供了一种电子设备,包括上述的芯片。
根据本公开的另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使处理器执行上述的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,使处理器执行上述的方法。
根据本公开的一个或多个实施例,能够提升内存访问通道的利用率,提升内存访问的效率。
根据在下文中所描述的实施例,本公开的这些和其它方面将是清楚明白的,并且将参考在下文中所描述的实施例而被阐明。
附图说明
附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
图1示出了根据本公开示例性实施例的内存地址的映射方法的流程图;
图2A示出了相关技术中内存地址的映射过程示意图;
图2B示出了根据本公开示例性实施例的内存地址的映射过程示意图;
图3示出了根据本公开示例性实施例的内存访问方法的流程图;
图4示出了根据本公开示例性实施例的内存地址的映射装置的结构框图;
图5示出了根据本公开示例性实施例的内存访问装置的结构框图;
图6示出了根据本公开的示例性实施例的电子设备的结构框图。
具体实施方式
在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
高性能处理核心对内存访问带宽的需求通常较高,为了提升内存访问能力,计算机系统中可以集成多个内存访问通道,从而可以在系统内部的地址总线上作地址交织,也就是将大量的内存访问需求分散到不同的内存访问通道上以充分利用多个内存访问通道的硬件资源,以提升系统总体的内存访问能力。
相关技术中,通常是基于内存中各个内存空间的地址来将内存访问需要分散到不同的内存访问通道上,并且所述各个内存空间的地址和内存访问通道之间的映射关系是线性的。例如,针对内存中所包括的多个大小相同的内存空间,并且每个内存空间包括多个地址连续的子内存空间,是按照相同的映射规则将每个内存空间中的多个子内存空间的地址一一线性映射至多个内存访问通道。在线性映射规则下,每个内存空间中的各个子内存空间的地址都是由低到高映射到不同的内存访问通道上的,也就是说,针对所述各个子内存空间的内存访问请求也是按照固定顺序来分配到不同的内存访问通道上的。但是,在实际应用过程中,每个内存空间中的多个子内存空间的访问需求并不均衡,也就是说,这种映射方式会带来多个内存访问通道的负载不均匀的情况。
通常而言,系统内存资源是以上述的内存空间为最小单位来进行分配,并且系统内存资源的分配需要具有一定的空间裕度。基于此,在系统的实际运行过程中,存在以下可能:系统的功能模块A被分配到一个固定大小的内存空间,但是当功能模块A使用该内存空间时,通常是优先使用低位地址对应的子内存空间,在低位地址对应的子内存空间已被占用时才会使用高位地址对应的子内存空间。可以看出,多个子内存空间的访问需求存在较大的差异,当每个内存空间中处于相同位置的子内存空间所映射的内存访问通道固定时,多个内存访问通道的负载也存在较大的差异,低位地址所映射的内存访问通道可能存在带宽不足的现象,但是高位地址所映射的内存访问通道带宽利用率却较低,从而影响系统的内存访问能力,进而影响系统性能。
基于此,本公开提出了一种内存地址的映射方法,针对内存中的多个内存空间,基于不同的映射规则来将每个内存空间各自包括的多个子内存空间分别映射到多个内存访问通道,使得内存访问通道的资源能够均匀分配,以提升系统的内存访问能力。
图1示出了根据本公开示例性实施例的内存地址的映射方法100的流程图,所述内存包括大小相同的第一内存空间和第二内存空间,所述第一内存空间和第二内存空间中的每一个均包括多个地址连续的子内存空间。如图1所示,内存地址的映射方法100包括:
步骤S110、按照第一映射规则,将所述第一内存空间的多个子内存空间一一对应映射至多个内存访问通道;以及
步骤S120、按照不同于所述第一映射规则的第二映射规则,将所述第二内存空间的多个子内存空间一一对应映射至所述多个内存访问通道。
由此,能够基于不同的映射规则来将不同的内存空间各自包括的多个子内存空间映射到多个内存访问通道,使得不同的内存空间中访问需求较高的子内存空间能够映射到不同的内存访问通道,从而实现内存访问通道的资源的均匀分配,以提升系统的内存访问能力。
示例性地,所述多个内存访问通道是用于实现系统处理核心(例如中央处理器、图形处理器等)与内存之间的多通道并行访问。在一些示例中,所述多个内存访问通道可以是对应多个内存控制器,或者,也可以是对应一个或多个多通道内存控制器中的多个通道,对此不作限定。
示例性地,所述第一内存空间和第二内存空间的大小、所述子内存空间的大小和数量可以是由人工根据实际需求来设置的。在一些示例中,可以是根据各个功能模块对内存资源的需求来设置所述第一内存空间和第二内存空间的大小,从而能够以所述第一内存空间和第二内存空间为最小单位来分配系统内存资源,进而实现将不同的内存空间中访问需求较高的子内存空间映射到不同的内存访问通道。
根据一些实施例,所述内存还包括第三内存空间,所述第三内存空间包括多个地址连续的子内存空间,并且内存地址的映射方法100还包括:按照与所述第一映射规则和第二映射规则均不相同的第三映射规则,将所述第三内存空间的多个子内存空间一一对应映射至所述多个内存访问通道。由此,能够更精确地区分每个内存空间中访问需求不同的子内存空间,进而将其映射到不同的内存访问通道,进一步提升内存访问通道的分配均匀度。
应当理解,上述内存空间的类别数量可以进一步扩展,只要能够实现在不同类别的内存空间中按照与其唯一对应的映射规则将多个子内存空间一一对应映射至多个内存访问通道即可。
根据一些实施例,步骤S110中按照第一映射规则,将所述第一内存空间的多个子内存空间一一对应映射至多个内存访问通道包括:获取所述第一内存空间的多个子内存空间的地址序列,所述地址序列中所述第一内存空间的多个子内存空间的地址从低位到高位依次排序;按照第一映射规则,依次将所述地址序列中的多个地址一一对应映射至所述多个内存访问通道。由此,能够针对每个内存空间中地址从低位至高位排序的多个子内存空间,将其分别映射到不同的内存访问通道,进而实现将不同的内存空间中访问需求较高的子内存空间映射到不同的内存访问通道。
根据一些实施例,所述步骤S110中按照第一映射规则,将所述第一内存空间的多个子内存空间一一对应映射至多个内存访问通道包括:基于第一预设规则获取所述多个内存访问通道相应的第一序列;依次将所述第一内存空间所包括的多个子内存空间按照所述第一序列一一对应映射至所述多个内存访问通道,并且步骤S120中按照不同于所述第一映射规则的第二映射规则,将所述第二内存空间的多个子内存空间一一对应映射至所述多个内存访问通道包括:基于不同于所述第一预设规则的第二预设规则获取所述多个内存访问通道相应的第二序列,所述第一序列中所述多个内存访问通道的排序与所述第二序列中所述多个内存访问通道的排序不同;依次将所述第二内存空间所包括的多个子内存空间按照所述第二序列一一对应映射至所述多个内存访问通道。由此,能够针对每个内存空间,基于不同的预设规则来确定多个内存访问通道相应的序列,从而能够按照不同的序列来进行内存地址的映射,更加简捷高效。
当所述内存还包括第三内存空间时,在一些示例中,所述按照与所述第一映射规则和第二映射规则均不相同的第三映射规则,将所述第三内存空间的多个子内存空间一一对应映射至所述多个内存访问通道可以包括:基于与所述第一预设规则和第二预设规则均不相同的第三预设规则,获取所述多个内存访问通道相应的第三序列,所述第三序列中所述多个内存访问通道的排序与所述第一序列和第二序列中所述多个内存访问通道的排序均不相同;依次将所述第三内存空间所包括的多个子内存空间按照所述第三序列一一对应映射至所述多个内存访问通道。
进一步地,根据一些实施例,所述第二序列为将所述第一序列中的第一个内存访问通道调整为最后一个内存访问通道而得到的。由此,能够使得不同的内存空间中访问需求较高的子内存空间映射到不同的内存访问通道,提升内存访问通道的分配均匀度。示例性地,也可以是通过其他方式得到所述第二序列,例如可以是将所述第一序列中的第一个内存访问通道和第二个内存访问通道交换顺序得到的,只要所述第一序列和第二序列中多个内存访问通道的排序不同即可,本公开对此不作限定。
在一些示例中,所述内存包括第一内存空间、第二内存空间、第三内存空间和第四内存空间,每个内存空间包括4个地址连续的子内存空间,并且系统中包括A、B、C、D四个内存访问通道。在这种情况下,所述多个内存访问通道相应的第一序列可以为:A、B、C、D;第二序列可以为:B、C、D、A;第三序列可以为:C、D、A、B;第四序列可以为:D、A、B、C。由此,即可分别按照上述的第一序列、第二序列、第三序列和第四序列,分别将第一内存空间、第二内存空间、第三内存空间和第四内存空间各自包括的多个子内存空间一一对应映射到所述多个内存访问通道。
或者,在另一个示例中,所述多个内存访问通道相应的第一序列可以为:A、B、C、D;第二序列可以为:D、C、B、A;第三序列可以为:B、D、A、C;第四序列可以为:C、A、D、B。应当理解,也可以是基于与上述示例不同的内存访问通道的序列来实现内存地址的映射,只要能够实现每个内存空间所对应的内存访问通道的序列各不相同即可。
在一些示例中,所述第一预设规则和第二预设规则可以是与所述多个子内存空间的地址相关联的,从而可以利用每个子内存空间各自的地址来指示与其映射的内存访问通道,更加简捷高效。
图2A示出了相关技术中内存地址的映射过程示意图。在这一示例中,内存包括多个地址连续的内存单元,每个内存单元的大小为1字节,每个内存空间的大小为1024字节(即包括1024个内存单元),每个内存空间包括4个大小为256字节的子内存空间,并且系统中包括A、B、C、D四个内存访问通道。
在这种情况下,相关技术中是将每个内存空间中的4个子内存空间按照地址由小到大的顺序依次映射到所述四个内存访问通道,具体地,基于每个子内存空间各自的地址的映射规则如下(其中,n为正整数,K=1024):
若该子内存空间的地址范围为:大于等于n*K且小于n*K+256,则将该子内存空间映射到内存访问通道A;
若该子内存空间的地址范围为:大于等于n*K+256且小于n*K+512,则将该子内存空间映射到内存访问通道B;
若该子内存空间的地址范围为:地址大于等于n*K+512且小于n*K+768,则将该子内存空间映射到内存访问通道C;
若该子内存空间的地址范围为:地址大于等于n*K+768且小于(n+1)*K,则将该子内存空间映射到内存访问通道D。
通常而言,系统运行过程中是优先使用低位地址对应的子内存空间,在低位地址对应的子内存空间已被占用时才会使用高位地址对应的子内存空间。可以看出,在这种情况下,内存访问通道A的负载最高,内存访问通道B、C、D的负载依次下降,也就是说,多个内存访问通道之间的负载分配不均匀,系统的内存访问硬件资源利用率不够高。
通过利用本公开示例性实施例所提供的内存地址的映射方法100,能够优化内存访问通道的负载分配,以提升系统的内存访问能力,图2B示出了根据本公开示例性实施例的内存地址的映射过程示意图。
参见图2B所示出的映射关系,根据本公开示例性实施例所提供的内存地址的映射方法,针对每4个地址连续的内存空间,分别基于不同的映射规则将每个内存空间所包括的4个子内存空间分别映射到所述四个内存访问通道。示例性地,针对地址为[0,4K-1]的内存空间1、内存空间2、内存空间3和内存空间4各自的地址的映射规则如下(其中,K=1024):
针对地址为[0,1K-1]的内存空间1,其中所包括的地址由低到高的4个大小为256字节的子内存空间与所述多个内存访问通道的映射顺序为:内存访问通道A、内存访问通道B、内存访问通道C和内存访问通道D;
针对地址为[1K,2K-1]的内存空间2,其中所包括的地址由低到高的4个大小为256字节的子内存空间与所述多个内存访问通道的映射顺序为:内存访问通道B、内存访问通道C、内存访问通道D和内存访问通道A;
针对地址为[2K,3K-1]的内存空间3,其中所包括的地址由低到高的4个大小为256字节的子内存空间与所述多个内存访问通道的映射顺序为:内存访问通道C、内存访问通道D、内存访问通道A和内存访问通道B;
针对地址为[3K,4K-1]的内存空间4,其中所包括的地址由低到高的4个大小为256字节的子内存空间与所述多个内存访问通道的映射顺序为:内存访问通道D、内存访问通道A、内存访问通道B和内存访问通道C。
由此可见,通过基于不同的映射规则来将不同的内存空间中的多个子内存空间映射到多个内存访问通道,能够使得不同的内存空间中访问需求较高的子内存空间映射到不同的内存访问通道,以更均匀地分配多个内存访问通道的带宽,提升系统的内存访问硬件资源利用率,进而提升系统的内存访问能力。
应当理解,上述内容仅是对不同内存空间中多个子内存空间与多个内存访问通道的映射规则的示例,也可以是针对上述每个内存空间,基于其他映射规则来实现多个子内存空间的映射,只要上述多个内存空间各自对应的映射规则两两互不相同即可。例如,也可以是基于如下的映射规则进行地址映射:
针对地址为[0,1K-1]的内存空间1,其中所包括的地址由低到高的4个大小为256字节的子内存空间与所述多个内存访问通道的映射顺序为:内存访问通道A、内存访问通道B、内存访问通道C和内存访问通道D;
针对地址为[1K,2K-1]的内存空间2,其中所包括的地址由低到高的4个大小为256字节的子内存空间与所述多个内存访问通道的映射顺序为:内存访问通道D、内存访问通道C、内存访问通道B和内存访问通道A;
针对地址为[2K,3K-1]的内存空间3,其中所包括的地址由低到高的4个大小为256字节的子内存空间与所述多个内存访问通道的映射顺序为:内存访问通道B、内存访问通道D、内存访问通道A和内存访问通道C;
针对地址为[3K,4K-1]的内存空间4,其中所包括的地址由低到高的4个大小为256字节的子内存空间与所述多个内存访问通道的映射顺序为:内存访问通道C、内存访问通道A、内存访问通道D和内存访问通道B。
上述示例中,是利用多个子内存空间对应的多个地址的数值与特定数值的相对大小关系来确定所述多个地址与多个内存访问通道的映射规则。在实际应用过程中,也可以是利用其他方式来确定所述多个地址与多个内存访问通道的映射规则。
在一些示例中,可以是确定每个子内存空间的地址所对应的地址比特序列,再基于每个子内存空间对应的地址比特序列中处于预设位置的子序列,简便快捷地指示与该子内存空间映射的内存访问通道,提升内存地址的映射方法的实施效率。
在一个示例中,内存包括多个地址连续的内存单元,每个内存单元的大小为1字节,系统的内存访问通道个数为n, n=2m(m>0),每个内存空间的大小为(n×i)字节,每个内存空间包括n个大小为i字节(i=2j)的子内存空间。在这种情况下,可以利用每个子内存空间对应的地址比特序列中处于右起第(j+2m-1)位至第j位的子序列来确定与每个子内存空间映射的内存访问通道。由此,能够针对每个大小为(n2×i)字节的空间内,针对其中的多个大小为(n×i)字节的内存空间内,基于n种不同的映射规则进行子内存空间地址的映射,保证所有访问需求较高的子内存空间能够映射到不同的内存访问通道。
继续参见图2B所示出的示例,在这一示例中,各个内存空间所包括的子内存空间的地址是从0开始的连续序列。在这种情况下,每个地址对应的地址比特序列中的特定子序列即可指示该地址的数值与特定数值的相对大小关系,从而能够更简便快捷地指示每个子内存空间与内存访问通道的映射关系。例如,可以是利用每个子内存空间对应的地址比特序列中处于右起第11位至第8位的子序列,基于表1中的对应规则来确定与每个子内存空间映射的内存访问通道。
表1:
Figure 987087DEST_PATH_IMAGE001
可以看出,基于表1中的对应规则,是针对不同内存空间,基于不同的映射规则将其中的多个子内存空间映射到多个内存访问通道。应当理解,也可以是针对上述每个内存空间,基于与上述示例不同的映射规则来实现多个子内存空间的映射。例如,也可以是基于表2中的对应规则,将多个子内存空间映射到多个内存访问通道。
表2:
Figure 966545DEST_PATH_IMAGE002
根据本公开的另一方面,还提供一种内存访问方法。图3示出了根据本公开示例性实施例的内存访问方法300的流程图,所述内存包括大小相同的第一内存空间和第二内存空间,所述第一内存空间和第二内存空间中的每一个均包括多个地址连续的子内存空间。如图3所示,内存访问方法300包括:
步骤S310、利用如上所述的内存地址的映射方法100,将所述多个子内存空间一一对应映射至多个内存访问通道;以及
步骤S320、针对所述多个子内存空间中的每个子内存空间,基于与该子内存空间对应的内存访问通道访问所述子内存空间。
由此,能够针对不同的内存空间中访问需求较高的子内存空间,基于不同的内存访问通道进行访问,从而实现内存访问通道的资源的均匀分配,以提升系统的内存访问能力,进而提升系统性能。
根据本公开的另一方面,还提供一种内存地址的映射装置。图4示出了根据本公开示例性实施例的内存地址的映射装置400的结构框图。如图4所示,内存地址的映射装置400包括:
第一映射单元410,被配置用于按照第一映射规则,将所述第一内存空间的多个子内存空间一一对应映射至多个内存访问通道;以及
第二映射单元420,被配置用于按照不同于所述第一映射规则的第二映射规则,将所述第二内存空间的多个子内存空间一一对应映射至所述多个内存访问通道。
可以理解的是,内存地址的映射装置400中的第一映射单元410和第二映射单元420的操作和技术效果分别和图1中的步骤S110至步骤S120的操作和技术效果类似,在此不做赘述。
根据一些实施例,所述内存还包括第三内存空间,所述第三内存空间包括多个地址连续的子内存空间,并且内存地址的映射装置400还包括:第三映射单元,被配置用于按照与所述第一映射规则和第二映射规则均不相同的第三映射规则,将所述第三内存空间的多个子内存空间一一对应映射至所述多个内存访问通道。
根据一些实施例,第一映射单元410被配置用于:获取所述第一内存空间的多个子内存空间的地址序列,所述地址序列中所述第一内存空间的多个子内存空间的地址从低位到高位依次排序;按照第一映射规则,依次将所述地址序列中的多个地址一一对应映射至所述多个内存访问通道。
根据一些实施例,第一映射单元410被配置用于:基于第一预设规则获取所述多个内存访问通道相应的第一序列;依次将所述第一内存空间所包括的多个子内存空间按照所述第一序列一一对应映射至所述多个内存访问通道;并且第二映射单元420被配置用于:基于不同于所述第一预设规则的第二预设规则获取所述多个内存访问通道相应的第二序列,所述第一序列中所述多个内存访问通道的排序与所述第二序列中所述多个内存访问通道的排序不同;依次将所述第二内存空间所包括的多个子内存空间按照所述第二序列一一对应映射至所述多个内存访问通道。
根据一些实施例,所述第二序列为将所述第一序列中的第一个内存访问通道调整为最后一个内存访问通道而得到的。
根据本公开的另一方面,还提供一种内存访问装置。图5示出了根据本公开示例性实施例的内存访问装置500的结构框图。如图5所示,内存访问装置500包括:
如上所述的内存地址的映射装置400,被配置用于将所述多个子内存空间一一对应映射至多个内存访问通道;以及
访问单元510,被配置用于针对所述多个子内存空间中的每个子内存空间,基于与该子内存空间对应的内存访问通道访问所述子内存空间。
可以理解的是,装置500中的内存地址的映射装置400和访问单元510的操作和技术效果分别和图3中的步骤S310至步骤S320的操作和技术效果类似,在此不做赘述。
根据本公开的另一方面,提供了一种芯片,包括上述的内存地址的映射装置400或内存访问装置500。
根据本公开的另一方面,提供了一种电子设备,包括上述的芯片。
根据本公开的另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使处理器执行上述的内存地址的映射方法或内存访问方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,使处理器执行上述的内存地址的映射方法或内存访问方法。
图6是示出根据本公开的示例性实施例的电子设备的示例的框图。需要说明的,图6所示出的结构仅是一个示例,根据具体的实现方式,本公开的电子设备可以仅包括图6所示出的组成部分中的一种或多个。
电子设备600例如可以是通用计算机(例如膝上型计算机、平板计算机等等各种计算机)、移动电话、个人数字助理。根据一些实施例,电子设备600可以是云计算设备和智能设备。
根据一些实施例,电子设备600可被配置为对图像、文本和音频中的至少一者进行处理,并且将所述处理结果传输至输出设备而提供给用户。输出设备例如可以为显示屏、包括显示屏的设备,也可以为耳机、扬声器、或振荡器等声音输出设备。例如,电子设备600可被配置为对图像进行目标检测,将目标检测结果传输至显示设备以显示,电子设备600还可被配置为对图像进行增强处理,并将增强结果传输至显示设备以显示。电子设600还可被配置为对图像中的文本进行识别,并将识别结果传输至显示设备以显示和/或将识别结果转换成声音数据并传输至声音输出设备进行播放。电子设备600还可被配置为对音频进行识别和处理,并将识别结果传输至显示设备以显示和/或将处理结果转换成声音数据并传输至声音输出设备进行播放。
电子设备600可以包括图像处理电路603,图像处理电路603可以被配置为对图像进行各种图像处理。图像处理电路603例如可以被配置为对图像进行以下图像处理中的至少一项:对图像进行降噪、对图像进行几何矫正、对图像进行特征提取、对图像中的对象进行检测和/或识别、对图像进行增强处理、以及对图像中包含的文字进行检测和/或识别等等。
电子设备600还可以包括文字识别电路604,所述文字识别电路604被配置为对图像中的文字区域进行文字检测和/或识别(例如OCR处理),从而获得文字数据。所述文字识别电路604例如可以通过专用芯片实现。电子设备600还可以包括声音转换电路605,所述声音转换电路605被配置为将所述文字数据转换成声音数据。所述声音转换电路605例如可以通过专用芯片实现。
电子设备600还可以包括音频处理电路606,所述音频处理电路606被配置为将音频转换为文字,从而获得音频相应的文字数据。所述音频处理电路606还可被配置为对音频相应的文字数据进行处理,例如可以包括关键字提取、意图识别、智能推荐和智能问答等等。所述音频处理电路606例如可以通过专用芯片实现。所述声音转换电路605还可被配置为将音频处理结果转换为声音数据,以适用于语音助手或虚拟客服等应用场景。
上述的各种电路(例如图像处理电路603、文字识别电路604、声音转换电路605、音频处理电路606中的一个或多个可以使用定制硬件,和/或可以用硬件、软件、固件、中间件、微代码,硬件描述语言或其任何组合来实现。例如,上述的各种电路中的一个或多个可以通过使用根据本公开的逻辑和算法,用汇编语言或硬件编程语言(诸如VERILOG,VHDL,C ++)对硬件(例如,包括现场可编程门阵列(FPGA)和/或可编程逻辑阵列(PLA)的可编程逻辑电路)进行编程来实现。
根据一些实施方式,电子设备600还可以包括输出设备607,所述输出设备607可以是用于呈现信息的任何类型的设备,可以包括但不限于显示屏、具有显示功能的终端、耳机、扬声器、振动器和/或打印机等。
根据一些实施方式,电子设备600还可以包括输入设备608,所述输入设备608可以是用于向电子设备600输入信息的任何类型的设备,可以包括但不限于各种传感器、鼠标、键盘、触摸屏、按钮、控制杆、麦克风和/或遥控器等等。
根据一些实施方式,电子设备600还可以包括通信设备609,所述通信设备609可以是使得能够与外部设备和/或与网络通信的任何类型的设备或系统,可以包括但不限于调制解调器、网卡、红外通信设备、无线通信设备和/或芯片组,例如蓝牙设备、802.11设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
根据一些实施方式,电子设备600还可以包括处理器601。所述处理器601可以是任何类型的处理器,并且可以包括但不限于一个或多个通用处理器和/或一个或多个专用处理器(例如特殊处理芯片)。处理器601例如可以是但不限于中央处理单元CPU、图形处理器GPU、或各种专用的人工智能(AI)计算芯片等等。
电子设备600还可以包括工作存储器602和存储设备611。处理器601可以被配置为能够获取并且执行存储在工作存储器602、存储设备611或者其他计算机可读介质中的计算机可读指令,诸如操作系统602a的程序代码、应用程序602b的程序代码等。工作存储器602和存储设备611是用于存储指令的计算机可读存储介质的示例,所存储的指令能够由处理器601执行来实施前面所描述的各种功能。工作存储器602可以包括易失性存储器和非易失性存储器二者(例如RAM、ROM等等)。存储设备611可以包括硬盘驱动器、固态驱动器、可移除介质、包括外部和可移除驱动器、存储器卡、闪存、软盘、光盘(例如CD、DVD)、存储阵列、网络附属存储、存储区域网等等。工作存储器602和存储设备611在本文中都可以被统称为存储器或计算机可读存储介质,并且可以是能够把计算机可读、处理器可执行程序指令存储为计算机程序代码的非暂态介质,计算机程序代码可以由处理器601作为被配置成实施在本文的示例中所描述的操作和功能的特定机器来执行。
根据一些实施方式,处理器601可以对图像处理电路603、文字识别电路604、声音转换电路605、音频处理电路606以及电子设备600包括的其他各种装置和电路中的至少一个进行控制和调度。根据一些实施方式,图6中所述的各个组成部分中的至少一些可通过总线610而相互连接和/或通信。
软件要素(程序)可以位于所述工作存储器602中,包括但不限于操作系统602a、一个或多个应用程序602b、驱动程序和/或其他数据和代码。
根据一些实施方式,用于进行前述的控制和调度的指令可以被包括在操作系统602a或者一个或多个应用程序602b中。
根据一些实施方式,执行本公开所述的方法步骤的指令可以被包括在一个或多个应用程序602b中,并且上述电子设备600的各个模块可以通过由处理器601读取和执行一个或多个应用程序602b的指令来实现。换言之,电子设备600可以包括处理器601以及存储程序的存储器(例如工作存储器602和/或存储设备611),所述程序包括指令,所述指令在由所述处理器601执行时使所述处理器601执行如本公开各种实施例所述的方法。
根据一些实施方式,图像处理电路603、文字识别电路604、声音转换电路605、音频处理电路606中的至少一个所执行的操作中的一部分或者全部可以由处理器601读取和执行一个或多个应用程序602b的指令来实现。
软件要素(程序)的指令的可执行代码或源代码可以存储在非暂时性计算机可读存储介质(例如所述存储设备611)中,并且在执行时可以被存入工作存储器602中(可能被编译和/或安装)。因此,本公开提供存储程序的计算机可读存储介质,所述程序包括指令,所述指令在由电子设备的处理器执行时,致使所述电子设备执行如本公开各种实施例所述的方法。根据另一种实施方式,软件要素(程序)的指令的可执行代码或源代码也可以从远程位置下载。
还应该理解,可以根据具体要求而进行各种变型。例如,也可以使用定制硬件,和/或可以用硬件、软件、固件、中间件、微代码,硬件描述语言或其任何组合来实现各个电路、单元、模块或者元件。例如,所公开的方法和设备所包含的电路、单元、模块或者元件中的一些或全部可以通过使用根据本公开的逻辑和算法,用汇编语言或硬件编程语言(诸如VERILOG,VHDL,C ++)对硬件(例如,包括现场可编程门阵列(FPGA)和/或可编程逻辑阵列(PLA)的可编程逻辑电路)进行编程来实现。
根据一些实施方式,电子设备600中的处理器601可以分布在网络上。 例如,可以使用一个处理器执行一些处理,而同时可以由远离该一个处理器的另一个处理器执行其他处理。电子设备600的其他模块也可以类似地分布。这样,电子设备600可以被解释为在多个位置执行处理的分布式计算系统。电子设备600的处理器601也可以是云计算系统的处理器,或者是结合了区块链的处理器。
虽然已经参照附图描述了本公开的实施例或示例,但应理解,上述的方法、系统和设备仅仅是示例性的实施例或示例,本发明的范围并不由这些实施例或示例限制,而是仅由授权后的权利要求书及其等同范围来限定。实施例或示例中的各种要素可以被省略或者可由其等同要素替代。此外,可以通过不同于本公开中描述的次序来执行各步骤。进一步地,可以以各种方式组合实施例或示例中的各种要素。重要的是随着技术的演进,在此描述的很多要素可以由本公开之后出现的等同要素进行替换。

Claims (11)

1.一种内存地址的映射方法,其特征在于,所述内存包括大小相同的第一内存空间和第二内存空间,所述第一内存空间和第二内存空间中的每一个均包括多个地址连续的子内存空间,所述多个子内存空间的大小相同,所述方法包括:
按照第一映射规则,将所述第一内存空间的多个子内存空间一一对应映射至多个内存访问通道;以及
按照不同于所述第一映射规则的第二映射规则,将所述第二内存空间的多个子内存空间一一对应映射至所述多个内存访问通道,
其中,所述按照第一映射规则,将所述第一内存空间的多个子内存空间一一对应映射至多个内存访问通道包括:
基于第一预设规则获取所述多个内存访问通道相应的第一序列;
依次将所述第一内存空间所包括的多个子内存空间按照所述第一序列一一对应映射至所述多个内存访问通道,
并且其中,所述按照不同于所述第一映射规则的第二映射规则,将所述第二内存空间的多个子内存空间一一对应映射至所述多个内存访问通道包括:
基于不同于所述第一预设规则的第二预设规则获取所述多个内存访问通道相应的第二序列,所述第一序列中所述多个内存访问通道的排序与所述第二序列中所述多个内存访问通道的排序不同,所述第二序列为将所述第一序列中的第一个内存访问通道调整为最后一个内存访问通道而得到的;
依次将所述第二内存空间所包括的多个子内存空间按照所述第二序列一一对应映射至所述多个内存访问通道。
2.如权利要求1所述的方法,其特征在于,所述内存还包括第三内存空间,所述第三内存空间包括多个地址连续的子内存空间,所述方法还包括:
按照与所述第一映射规则和第二映射规则均不相同的第三映射规则,将所述第三内存空间的多个子内存空间一一对应映射至所述多个内存访问通道。
3.如权利要求1所述的方法,其特征在于,所述按照第一映射规则,将所述第一内存空间的多个子内存空间一一对应映射至多个内存访问通道包括:
获取所述第一内存空间的多个子内存空间的地址序列,所述地址序列中所述第一内存空间的多个子内存空间的地址从低位到高位依次排序;
按照第一映射规则,依次将所述地址序列中的多个地址一一对应映射至所述多个内存访问通道。
4.一种内存访问方法,其特征在于,所述内存包括大小相同的第一内存空间和第二内存空间,所述第一内存空间和第二内存空间中的每一个均包括多个地址连续的子内存空间,所述多个子内存空间的大小相同,所述方法包括:
利用如权利要求1-3中任一项所述的方法,将所述多个子内存空间一一对应映射至多个内存访问通道;以及
针对所述多个子内存空间中的每个子内存空间,基于与该子内存空间对应的内存访问通道访问所述子内存空间。
5.一种内存地址的映射装置,其特征在于,所述内存包括大小相同的第一内存空间和第二内存空间,所述第一内存空间和第二内存空间中的每一个均包括多个地址连续的子内存空间,所述多个子内存空间的大小相同,所述装置包括:
第一映射单元,被配置用于按照第一映射规则,将所述第一内存空间的多个子内存空间一一对应映射至多个内存访问通道;以及
第二映射单元,被配置用于按照不同于所述第一映射规则的第二映射规则,将所述第二内存空间的多个子内存空间一一对应映射至所述多个内存访问通道,
其中,所述第一映射单元被配置用于:
基于第一预设规则获取所述多个内存访问通道相应的第一序列;
依次将所述第一内存空间所包括的多个子内存空间按照所述第一序列一一对应映射至所述多个内存访问通道,
并且其中,所述第二映射单元被配置用于:
基于不同于所述第一预设规则的第二预设规则获取所述多个内存访问通道相应的第二序列,所述第一序列中所述多个内存访问通道的排序与所述第二序列中所述多个内存访问通道的排序不同,所述第二序列为将所述第一序列中的第一个内存访问通道调整为最后一个内存访问通道而得到的;
依次将所述第二内存空间所包括的多个子内存空间按照所述第二序列一一对应映射至所述多个内存访问通道。
6.如权利要求5所述的装置,其特征在于,所述内存还包括第三内存空间,所述第三内存空间包括多个地址连续的子内存空间,所述装置还包括:
第三映射单元,被配置用于按照与所述第一映射规则和第二映射规则均不相同的第三映射规则,将所述第三内存空间的多个子内存空间一一对应映射至所述多个内存访问通道。
7.如权利要求6所述的装置,其特征在于,所述第一映射单元被配置用于:
获取所述第一内存空间的多个子内存空间的地址序列,所述地址序列中所述第一内存空间的多个子内存空间的地址从低位到高位依次排序;
按照第一映射规则,依次将所述地址序列中的多个地址一一对应映射至所述多个内存访问通道。
8.一种内存访问装置,其特征在于,所述内存包括大小相同的第一内存空间和第二内存空间,所述第一内存空间和第二内存空间中的每一个均包括多个地址连续的子内存空间,所述多个子内存空间的大小相同,所述装置包括:
如权利要求5-7中任一项所述的装置,被配置用于将所述多个子内存空间一一对应映射至多个内存访问通道;以及
访问单元,被配置用于针对所述多个子内存空间中的每个子内存空间,基于与该子内存空间对应的内存访问通道访问所述子内存空间。
9.一种芯片,包括:
如权利要求5-8中任一项所述的装置。
10.一种电子设备,包括如权利要求9所述的芯片。
11.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-4中任一项所述的方法。
CN202211276454.2A 2022-10-19 2022-10-19 内存地址的映射方法、内存访问方法和装置、芯片、设备 Active CN115344506B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211276454.2A CN115344506B (zh) 2022-10-19 2022-10-19 内存地址的映射方法、内存访问方法和装置、芯片、设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211276454.2A CN115344506B (zh) 2022-10-19 2022-10-19 内存地址的映射方法、内存访问方法和装置、芯片、设备

Publications (2)

Publication Number Publication Date
CN115344506A CN115344506A (zh) 2022-11-15
CN115344506B true CN115344506B (zh) 2023-06-16

Family

ID=83957613

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211276454.2A Active CN115344506B (zh) 2022-10-19 2022-10-19 内存地址的映射方法、内存访问方法和装置、芯片、设备

Country Status (1)

Country Link
CN (1) CN115344506B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112513824A (zh) * 2018-07-31 2021-03-16 华为技术有限公司 一种内存交织方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170109090A1 (en) * 2015-10-16 2017-04-20 Qualcomm Incorporated System and method for page-by-page memory channel interleaving
CN108845958B (zh) * 2018-06-19 2022-05-17 中国科学院软件研究所 一种交织器映射和动态内存管理系统及方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112513824A (zh) * 2018-07-31 2021-03-16 华为技术有限公司 一种内存交织方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向结构体数据布局优化的高效内存管理;闫家年;陈文光;郑纬民;;清华大学学报(自然科学版)(第01期);68-72 *

Also Published As

Publication number Publication date
CN115344506A (zh) 2022-11-15

Similar Documents

Publication Publication Date Title
US11003625B2 (en) Method and apparatus for operating on file
US11249969B2 (en) Data storage method and apparatus, and storage medium
CN111079917A (zh) 张量数据分块存取的方法及装置
JP6636647B2 (ja) ランダム文字列を生成する方法および装置
JP2019512794A (ja) プロセッサベースシステムにおけるメモリ内の圧縮メモリラインの優先度ベースのアクセス
CN110968585A (zh) 面向列的存储方法、装置、设备及计算机可读存储介质
US11635904B2 (en) Matrix storage method, matrix access method, apparatus and electronic device
WO2022126116A1 (en) Data-type-aware clock-gating
US20220229701A1 (en) Dynamic allocation of computing resources
CN115344506B (zh) 内存地址的映射方法、内存访问方法和装置、芯片、设备
US10073809B2 (en) Technologies for scalable remotely accessible memory segments
CN114116656B (zh) 数据处理方法及相关装置
CN115168249A (zh) 地址转换方法、存储器系统、电子设备及存储介质
WO2019114044A1 (zh) 图像处理方法、装置、电子设备及计算机可读存储介质
US10168963B2 (en) Storage conditioning with intelligent rebuild
CN111258733B (zh) 一种嵌入式os任务调度方法、装置、终端设备及存储介质
CN112463213B (zh) 更新、读取统计值的方法和装置
CN113379038A (zh) 数据处理方法和电子设备
CN109543835B (zh) 运算方法、装置及相关产品
CN117785759B (zh) 数据存储方法、数据读取方法、电子设备和存储介质
US10108377B2 (en) Storage processing unit arrays and methods of use
CN115357212B (zh) 用于环形缓冲器的参数生成方法、装置和人工智能芯片
US11989420B2 (en) Memory allocation method and apparatus, electronic device, and storage medium
CN109543836B (zh) 运算方法、装置及相关产品
CN109558564B (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
GR01 Patent grant
GR01 Patent grant