一种内存访问方法、装置、芯片及计算机可读存储介质与流程

文档序号:32413498发布日期:2022-12-02 21:50阅读:50来源:国知局
一种内存访问方法、装置、芯片及计算机可读存储介质与流程

1.本技术涉及芯片技术领域,具体涉及一种内存访问方法、装置、芯片及计算机可读存储介质。


背景技术:

2.随着物联网、工业控制、汽车电子等对mcu的要求越来越高,双核和多核mcu的运用也越来越广泛。双核mcu的实现方式有很多种,例如双核异构、双核同构和双核安全模式等等,但无论是哪种实现方式,双核mcu通常都是由多块ram来构成双核系统的内存,通过同样的映射方式将虚拟地址译码选择映射到物理地址,从而选择要操作的目标ram。为了保证双核系统的运行,通常会将一些ram分别分配给两个内核,还有一些ram则是两个内核之间可以共享。为了实现上述ram分配,可以在设计软件的时候,通过设置每个内核编译时的ram的基地址来实现,但是,如果分配的地址不能与ram的物理地址对齐时,就可能造成两个内核同时访问同一块ram的情况,降低内存访问速度。目前现有解决方式是在软件编译时将各个ram都设置为系统的ram基地址,而不需要考虑各个内核的ram的基地址,然后通过加载偏移地址的方式,将其中一个内核的访问虚拟地址加上一个固定大小的偏移,从而进行内存访问,从而保证两个内核都在运行的时候,不会因为两个内核都同时访问同一物理地址的ram而引起冲突,影响内存访问效率。
3.在构思及实现本技术过程中,本技术的发明人发现至少存在如下问题:虽然现有技术能够保证两个内核在运行时不会同时访问同一物理地址的ram,但是该方式需要在mcu出厂时就写入内核的偏移地址,在写入闪存后上电加载到偏移地址模块,需要开发人员在mcu出厂时进行软件配置,不仅增加了软件开发工作量和软件编译时的难度,而且不利于后续的修改配置;另外,现有技术还容易出现由于配置不当引起的总线冲突,影响系统内存访问的效率。
4.前面的叙述在于提供一般的背景信息,并不一定构成现有技术。


技术实现要素:

5.针对上述技术问题,本技术提供一种内存访问方法、装置、芯片及计算机可读存储介质,基于内存配置信息决定不同内存块在各个内核对应的虚拟地址之间的映射关系,降低软件编译时的难度,降低由于配置不当引起的总线冲突的概率,从而提高内存访问的效率。
6.为解决上述技术问题,本技术提供一种内存访问方法,包括如下步骤:
7.响应复位请求,获取内存配置信息,所述内存配置信息至少包括内存译码方式位和内存访问有效位;
8.基于所述内存配置信息,确定内核与内存块之间的地址译码映射关系;
9.根据所述地址译码映射关系和内核的虚拟地址,控制内核发起内存访问。
10.可选地,在所述响应复位请求之后,获取内存配置信息之前,所述内存访问方法还
包括:
11.获取闪存中的内存配置数据,从所述内存配置数据中提取出对应的内存配置信息。
12.可选地,在所述响应复位请求之前,所述内存访问方法还包括:
13.对多个内存块进行分类,并标记为共享内存块和非共享内存块。
14.可选地,所述基于所述内存配置信息,确定内核与内存块之间的地址译码映射关系,包括:
15.根据预设配置规则,识别所述内存配置信息中的内存译码方式位和内存访问有效位;
16.基于所述内存译码方式位、内存访问有效位以及内核的虚拟地址,确定各个内存块在不同内核的虚拟地址对应的地址译码映射关系。
17.可选地,所述基于所述内存译码方式位、内存访问有效位以及内核的虚拟地址,确定各个内存块在不同内核的虚拟地址对应的地址译码映射关系,包括:
18.若所述内存译码方式位为第一预设值,且各个内存访问有效位均为有效值,则确定各个内存块在不同内核的虚拟地址对应的地址译码映射关系为第一预设映射关系;
19.若所述内存译码方式位为第二预设值,且各个内存访问有效位均为有效值,则确定各个内存块在不同内核的虚拟地址对应的地址译码映射关系为第二预设映射关系;
20.若所述内存译码方式位为第一预设值,且存在任一内存访问有效位为无效值,则确定各个内存块在不同内核的虚拟地址对应的地址译码映射关系为第三预设映射关系;
21.若所述内存译码方式位为第二预设值,且存在任一内存访问有效位为有效值,则确定各个内存块在不同内核的虚拟地址对应的地址译码映射关系为第四预设映射关系。
22.可选地,所述基于所述内存译码方式位、内存访问有效位以及内核的虚拟地址,确定各个内存块在不同内核的虚拟地址对应的地址译码映射关系,还包括:
23.获取不同内核的多个虚拟地址,以及对各个内存块进行编号后进行排序。
24.可选地,所述根据所述地址译码映射关系和内核的虚拟地址,控制内核发起内存访问,包括:
25.获取各个内核的虚拟地址;
26.根据所述地址译码映射关系,确定所述各个内核的虚拟地址对应的地址译码;
27.根据所述地址译码控制各个内核访问对应的内存块。
28.相应地,本技术还提供了一种内存访问装置,包括:
29.获取模块,用于响应复位请求,获取内存配置信息,所述内存配置信息至少包括内存译码方式位和内存访问有效位;
30.映射模块,用于基于所述内存配置信息,确定内核与内存块之间的地址译码映射关系;
31.控制模块,用于根据所述地址译码映射关系和内核的虚拟地址,控制内核发起内存访问。
32.本技术还提出了一种芯片,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述内存访问方法的步骤。
33.本技术还提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机
程序被处理器执行时实现上述内存访问方法的步骤。
34.实施本技术实施例,具有如下有益效果:
35.如上所述,本技术提供的一种内存访问方法、装置、芯片及计算机可读存储介质,该方法包括:响应复位请求,获取内存配置信息,该内存配置信息至少包括内存译码方式位和内存访问有效位;基于内存配置信息,确定内核与内存块之间的地址译码映射关系;根据地址译码映射关系和内核的虚拟地址,控制内核发起内存访问。本技术中的内存访问方案,基于内存配置信息决定不同内存块在各个内核对应的虚拟地址之间的映射关系,并根据映射关系控制内核发起内存访问,无需考虑内核所需访问内存块的基地址信息,也无需考虑内核所对应的偏移地址,均可按照系统内存块的基地址编译程序,因此可以降低软件编译时的难度,降低由于配置不当引起的总线冲突的概率,提高内存访问的效率。
附图说明
36.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。为了更清楚地说明本技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
37.图1是本技术实施例提供的内存访问方法的第一种实施方式的流程示意图;
38.图2是本技术实施例提供的内存访问方法的第二种实施方式的流程示意图;
39.图3是本技术实施例提供的内存访问方法的第三种实施方式的流程示意图;
40.图4是本技术实施例提供的内存访问方法的第四种实施方式的流程示意图;
41.图5是本技术实施例提供的内存访问装置的结构示意图;
42.图6是本技术实施例提供的内存访问系统的结构示意图;
43.图7是本技术实施例提供的芯片的结构示意图;
44.图8是本技术实施例提供的设备的结构示意框图。
45.本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
46.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
47.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素,此外,本技术不同实施例中具
有同样命名的部件、特征、要素可能具有相同含义,也可能具有不同含义,其具体含义需以其在该具体实施例中的解释或者进一步结合该具体实施例中上下文进行确定。
48.应当理解,尽管在本文可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本文范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。本技术使用的术语“或”、“和/或”、“包括以下至少一个”等可被解释为包括性的,或意味着任一个或任何组合。例如,“包括以下至少一个:a、b、c”意味着“以下任一个:a;b;c;a和b;a和c;b和c;a和b和c”,再如,“a、b或c”或者“a、b和/或c”意味着“以下任一个:a;b;c;a和b;a和c;b和c;a和b和c”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
49.应该理解的是,虽然本技术实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
50.取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
51.需要说明的是,在本文中,采用了诸如s1、s2等步骤代号,其目的是为了更清楚简要地表述相应内容,不构成顺序上的实质性限制,本领域技术人员在具体实施时,可能会先执行s2后执行s1等,但这些均应在本技术的保护范围之内。
52.应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
53.在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或者“单元”的后缀仅为了有利于本技术的说明,其本身没有特定的意义。因此,“模块”、“部件”或者“单元”可以混合地使用。
54.为了更好理解本技术实施例,以下为相关专业术语及其解释。
55.mcu:micro control unit,微控制器;
56.ram:random access memory,随机存取存储器;
57.core:内核;
58.虚拟地址:cpu core发出来的读取程序数据的地址;
59.物理地址:访问外设时的访问地址;
60.地址映射:将虚拟地址转换成物理地址的方法;
61.双核mcu:mcu内部集成了两个内核,可以是相同核,也可以是不同核。
62.首先介绍本技术可以提供的应用场景,如提供一种内存访问方法、装置、芯片及计算机可读存储介质,基于内存配置信息决定不同内存块在各个内核对应的虚拟地址之间的映射关系,降低软件编译时的难度,降低由于配置不当引起的总线冲突的概率,从而提高内存访问的效率。
63.请参阅图1,图1是本技术实施例提供的内存访问方法的流程示意图。该内存访问方法具体可以包括:
64.s1.响应复位请求,获取内存配置信息,该内存配置信息至少包括内存译码方式位和内存访问有效位。
65.具体的,对于步骤s1,响应复位请求,多核系统根据复位接收的复位请求完成复位操作后,获取内存配置信息,该内存配置信息至少包括内存译码方式位和多个内核对应的内存访问有效位。
66.其中,内存译码方式位可以是16位或更多位的数据寄存位,可通过从闪存中加载获得,或者通过软件配置方式获得,每一位数据寄存位对应多核系统中的一个物理方式存在的内存块,该数据寄存位为1时表示该内存块对应的多个内核的地址映射方式不同,该数据寄存位为0时表示该内存块对应的多核内核的地址映射方式相同。
67.内存访问有效位可以是16位或更多位的数据寄存位,可通过从闪存中加载获得,或者通过软件配置方式获得,每一位数据寄存位对应多核系统中的一个物理方式存在的内存块,表示不同内核对该内存块的访问权限信息,该数据寄存位为1时表示目标内核可以访问该数据寄存位对应的内存块,该数据寄存位为0时表示目标内核不可以访问目标该数据寄存位对应的内存块。需要说明的是,本实施例中的内存访问有效位至少包括两个内核及以上的内存访问有效位。
68.可选地,在一些实施例中,在响应复位请求之后,获取内存配置信息之前,所述内存访问方法具体还可以包括:
69.获取闪存中的内存配置数据,从内存配置数据中提取出对应的内存配置信息。
70.具体的,在多核系统响应复位请求之后,在获取内存配置信息之前,还包括通过获取闪存中的内存配置数据,首先通过加载闪存中的内存配置数据,按照预设提取规则从内存配置数据中提取出对应的内置配置信息,包括内存译码方式位和多个内核对应的内存访问有效位。
71.可选地,在一些实施例中,在响应复位请求之前,所述内存访问方法具体还可以包括:
72.对多个内存块进行分类,并标记为共享内存块和非共享内存块。
73.具体的,在多核系统响应复位请求之前,需要在多核系统的芯片启动之前,根据多核系统的内存块具体地址信息,对多个内存块进行分类,确定哪些内存块是共享内存块,哪些内存块是非共享内存块,对分类后的共享内存块和非共享内存块进行标记,并将共享内存块和非共享内存块的具体地址信息配置至闪存中,以使在多核系统执行复位动作后,自动加载闪存选项数据至内存配置信息。
74.s2.基于内存配置信息,确定内核与内存块之间的地址译码映射关系。
75.具体的,对于步骤s2,基于获取的内存配置信息,通过内存访问配置装置根据内存配置信息,决定多个内核与不同内存块之间的地址译码映射关系,即确定不同内存块在各
个内核对应虚拟地址之间的映射关系。
76.可选地,在一些实施例中,步骤s2具体可以包括:
77.s21.根据预设配置规则,识别内存配置信息中的内存译码方式位和内存访问有效位;
78.s22.基于内存译码方式位、内存访问有效位以及内核的虚拟地址,确定各个内存块在不同内核的虚拟地址对应的地址译码映射关系。
79.具体的,由于内存配置信息是在系统复位完成后,根据预设配置规则通过自动加载闪存选项数据方式获得的,因此,在确定映射关系之前,首先需要按照预设配置规则,对内存配置信息中的内存译码方式位和内存访问有效位进行识别,然后根据内存译码方式位和内存访问有效位,结合多个内核对应的虚拟地址,确定各个内存块在不同内核的虚拟地址对应的地址译码映射关系。
80.可选地,在一些实施例中,步骤s22具体还可以包括:获取不同内核的多个虚拟地址,以及对各个内存块进行编号后进行排序。
81.具体的,在确定各个内存块在不同内核的虚拟地址对应的地址译码映射关系之前,首先获取多核系统中的所有内核的多个虚拟地址,然后将多核系统中的所有内存块列出,分别编上编号,按照编号顺序进行排序。
82.可选地,在一些实施例中,步骤s22具体可以包括:
83.若内存译码方式位为第一预设值,且各个内存访问有效位均为有效值,则确定各个内存块在不同内核的虚拟地址对应的地址译码映射关系为第一预设映射关系;
84.若内存译码方式位为第二预设值,且各个内存访问有效位均为有效值,则确定各个内存块在不同内核的虚拟地址对应的地址译码映射关系为第二预设映射关系;
85.若内存译码方式位为第一预设值,且存在任一内存访问有效位为无效值,则确定各个内存块在不同内核的虚拟地址对应的地址译码映射关系为第三预设映射关系;
86.若内存译码方式位为第二预设值,且存在任一内存访问有效位为有效值,则确定各个内存块在不同内核的虚拟地址对应的地址译码映射关系为第四预设映射关系。
87.具体的,本实施例中还提供了四种情况下的地址译码映射关系,以两个内核core0和core1为例。
88.当配置内存译码方式位的值为第一预设值时,该第一预设值为高数值,且判断内核core0和core1的内存访问有效位均为有效值时,即内核core0和core1均可访问目标内存块,此时两个内核的译码方式不一样,将内核core0发来的虚拟地址采用由低到高的方式进行译码,即由低到高的虚拟地址所对应的内存块的序号也是由低到高进行译码;将内核core1发来的虚拟地址采用由高到低的方式进行译码,即由低到高的虚拟地址所对应的内存块的序号是由高到低进行译码。
89.当配置内存译码方式位的值为第二预设值时,该第二预设值为低数值,且判断内核core0和core1的内存访问有效位均为有效值时,即内核core0和core1均可访问目标内存块,此时内核core0和core1将采用同样的地址译码映射方式,即由低到高的虚拟地址所对应的内存块的序号也是由低到高进行译码。
90.当配置内存译码方式位的值为第一预设值时,且内核core0或者core1的内存访问有效位有任何一个无效或者都无效时,将视为core0和core1访问都有效,即ram译码方式的
值优先级更高。
91.当配置内存译码方式位的值为第二预设值时,如果内核core0的内存访问有效位为有效值,则采用由低到高的虚拟地址所对应的内存块的序号由低到高的方式进行译码,仅对内核core0发出的虚拟地址进行译码;如果内核core1的内存访问有效位为有效值,则采用由低到高的虚拟地址所对应的内存块的序号由高到低的方式进行译码,仅对内核core1发出的虚拟地址进行译码。
92.对于步骤s2,本实施例根据多核系统对内存块的访问权限的不同要求,设置不同的译码方式以及内核的内存访问有效位,从而确定各个内存块在不同内核的虚拟地址对应的地址译码映射关系并进行译码映射。
93.s3.根据地址译码映射关系和内核的虚拟地址,控制内核发起内存访问。
94.具体的,对于步骤s3,根据多个内核与不同内存块之间的地址译码映射关系,以及多个内核对应的虚拟地址,控制目标内核发起内存访问。
95.可选地,如图2所示,在一些实施例中,对于步骤s3,具体可以包括:
96.s31.获取各个内核的虚拟地址;
97.s32.根据地址译码映射关系,确定各个内核的虚拟地址对应的地址译码;
98.s33.根据地址译码控制各个内核访问对应的内存块。
99.具体的,在本实施例中,首先获取每个内核发出的所有虚拟地址,根据确定的多个内核与不同内存块之间的地址译码映射关系,确定每个内核的所有虚拟地址对应的地址译码,最后根据地址译码控制每个内核发起内存访问,控制每个内核访问对应的内存块,使得软件程序就不需要考虑core0和core1用的内存的基地址是多少,都可以按照多核系统内存的基地址ram_base编译程序,也不需要考虑各个内核所对应的偏移地址,因此减少了软件编译时的难度,降低了由于配置不当引起的总线冲突的概率,提高了系统内存访问的效率。
100.具体的,本实施例还提供了内存访问方法的另一种实施方式,具体流程包括:在系统复位完成后,将系统闪存选项数据自动加载至内存译码方式位和内核core0和core1的内存访问有效位,加载数据完成后,内核core0和core1同时发起对各自内存块的访问,根据内核core0和core1发起的虚拟地址,结合上述内存译码方式位和内核core0和core1的内存访问有效位,译码映射内存块访问地址到对应的内存块,内核core0和core1通过发送相同的虚拟地址访问不同的内存块,同时获得内存块的目标数据。
101.为了更好理解本技术的内存访问方案,以下将提供两种不同情况下的具体实施方式,请参阅图3和图4。
102.(1)如图3所示,双核系统一共有4块独立的内存块(ram0、ram1、ram2和ram3),所有的内存块都是双核共享共用,假如内存大小都是32kb。系统ram基地址0x20000000。根据上述系统需求,在闪存的字节选项中,设置ram译码方式选择位,系统只有4块独立ram,所以设置为低4位有效,内核core和core1的内存访问有效位可设可不设。同时为了保证双核都能正常运行,可以设置每个内核都用2块ram(64kb空间)。core0根据应用编写程序,设置编译基地址0x20000000;core1也根据应用编写的程序,同时也把编译基地址设置为0x20000000。程序编译好后,下载到各自闪存空间,上电复位后,执行各自的程序。当内核core0和core1同时对ram发起访问时,即向0x20000000以上的64kb空间发起访问时,由于地址译码映射模块和ram译码方式选择同时工作,core0访问的是ram0(32kb)和ram1(32kb);
core1虽然对同样的虚拟地址空间发起访问,但访问的是ram3和ram2。
103.(2)如图4所示,双核系统共有3块内存块,大小分别是ram0-32kb、ram1-16kb和ram3-32kb,其中ram1作为共享ram,可以用作内核core0和core1之间数据交换使用。ram0为core0内存ram,ram2为core1内存ram。系统ram的起始地址0x20008000。根据以上系统信息,在闪存选项数据中,设置内存译码方式选择位。系统有3块ram,ram0分配给core0,ram2分配给core1,ram1为core0和core1共同使用。所以设置内存译码方式选择为低3位有效,值为

b101,同时可以配置core0和core1的访问有效位低3位为’b111,即core0从0x20008000开始发起对ram0块的访问;0x20010000地址开始对ram1发起访问;0x20014000地址开始对ram2访问。同样core1从0x20014000开始发起对ram0块的访问;0x20010000地址开始对ram1发起访问;0x20008000地址开始对ram2访问。
104.实施上述方案后,软件只需要根据各个core的应用编写程序,都按ram基地址0x20008000编译程序,下载到各自的闪存中。当双核开始执行各自的程序时,虽然都是按照0x20008000对ram发起访问,但是访问了不同的ram物理模块,减少了软件出错的概率,降低了总线冲突,提高了内存访问的效率。
105.由上可知,本技术实施例提供的内存访问方法,包括:响应复位请求,获取内存配置信息,该内存配置信息至少包括内存译码方式位和内存访问有效位;基于内存配置信息,确定内核与内存块之间的地址译码映射关系;根据地址译码映射关系和内核的虚拟地址,控制内核发起内存访问。本技术中的内存访问方案,基于内存配置信息决定不同内存块在各个内核对应的虚拟地址之间的映射关系,并根据映射关系控制内核发起内存访问,无需考虑内核所需访问内存块的基地址信息,也无需考虑内核所对应的偏移地址,均可按照系统内存块的基地址编译程序,因此可以降低软件编译时的难度,降低由于配置不当引起的总线冲突的概率,提高内存访问的效率。
106.相应的,本技术还提供一种内存访问装置,请参阅图5,图5是本技术提供的内存访问装置的结构示意图,具体可以包括获取模块100、映射模块200和控制模块300。
107.其中,获取模块100,用于响应复位请求,获取内存配置信息,该内存配置信息至少包括内存译码方式位和内存访问有效位。
108.具体的,对于获取模块100,用于响应复位请求,多核系统根据复位接收的复位请求完成复位操作后,获取内存配置信息,该内存配置信息至少包括内存译码方式位和多个内核对应的内存访问有效位。
109.映射模块200,用于基于内存配置信息,确定内核与内存块之间的地址译码映射关系。
110.具体的,对于映射模块200,用于基于获取的内存配置信息,通过内存访问配置装置根据内存配置信息,决定多个内核与不同内存块之间的地址译码映射关系,即确定不同内存块在各个内核对应虚拟地址之间的映射关系。
111.可选地,在一些实施例中,映射模块200具体还可以包括:
112.识别单元,用于根据预设配置规则,识别内存配置信息中的内存译码方式位和内存访问有效位;
113.映射确定单元,用于基于内存译码方式位、内存访问有效位以及内核的虚拟地址,确定各个内存块在不同内核的虚拟地址对应的地址译码映射关系。
114.排序单元,用于获取不同内核的多个虚拟地址,以及对各个内存块进行编号后进行排序。
115.可选地,在一些实施例中,映射确定单元具体还可以包括:
116.第一映射子单元,用于若内存译码方式位为第一预设值,且各个内存访问有效位均为有效值,则确定各个内存块在不同内核的虚拟地址对应的地址译码映射关系为第一预设映射关系;
117.第二映射子单元,用于若内存译码方式位为第二预设值,且各个内存访问有效位均为有效值,则确定各个内存块在不同内核的虚拟地址对应的地址译码映射关系为第二预设映射关系;
118.第三映射子单元,用于若内存译码方式位为第一预设值,且存在任一内存访问有效位为无效值,则确定各个内存块在不同内核的虚拟地址对应的地址译码映射关系为第三预设映射关系;
119.第四映射子单元,用于若内存译码方式位为第二预设值,且存在任一内存访问有效位为有效值,则确定各个内存块在不同内核的虚拟地址对应的地址译码映射关系为第四预设映射关系。
120.控制模块300,用于根据地址译码映射关系和内核的虚拟地址,控制内核发起内存访问。
121.具体的,对于控制模块300,用于根据多个内核与不同内存块之间的地址译码映射关系,以及多个内核对应的虚拟地址,控制目标内核发起内存访问。
122.可选地,在一些实施例中,控制模块300具体还可以包括:
123.地址获取单元,用于获取各个内核的虚拟地址;
124.地址译码单元,用于根据地址译码映射关系,确定各个内核的虚拟地址对应的地址译码;
125.访问单元,用于根据地址译码控制各个内核访问对应的内存块。
126.可选地,在一些实施例中,内存访问装置具体还可以包括:
127.提取模块,用于获取闪存中的内存配置数据,从内存配置数据中提取出对应的内存配置信息。
128.分类模块,用于对多个内存块进行分类,并标记为共享内存块和非共享内存块。
129.综上所述,本技术实施例提供的内存访问装置,获取模块100响应复位请求,获取内存配置信息,该内存配置信息至少包括内存译码方式位和内存访问有效位;映射模块200基于内存配置信息,确定内核与内存块之间的地址译码映射关系;控制模块300根据地址译码映射关系和内核的虚拟地址,控制内核发起内存访问。可见,本技术实施例的内存访问装置,基于内存配置信息决定不同内存块在各个内核对应的虚拟地址之间的映射关系,并根据映射关系控制内核发起内存访问,无需考虑内核所需访问内存块的基地址信息,也无需考虑内核所对应的偏移地址,均可按照系统内存块的基地址编译程序,因此可以降低软件编译时的难度,降低由于配置不当引起的总线冲突的概率,提高内存访问的效率。
130.为了便于进一步理解本技术的内存访问方法,本技术实施例还提供一种内存访问系统,如图6所示,该内存访问系统集成在多核系统内部,包括ram配置自动加载装置和地址译码映射装置。其中,ram配置自动加载装置用于配置系统的ram(内存)物理块的地址映射
方式,初始值可以自动从闪存加载到配置装置,也可以通过软件配置。此装置根据系统物理ram块的多少,输出相应的数据,每一位对应一块ram,同时还输出core0ram配置位,core1ram配置位,可用于配置ram块属于那个core所有。地址译码映射装置会根据配置装置的输出结果,决定各个ram是core0所有,还是core1所有,或者是共同所有。然后根据这些所有权的判读后,决定ram块对于各个core的地址映射方式。这样软件编写各自core的应用程序时,不需要考虑core所对应的ram的基地址是多少,都可以将系统ram的起始地址作为编译时的内存的基地址。减少软件配置不当,引起的ram访问冲突,提高了总线访问内存的效率。
131.本技术实施例中还提供一种芯片,包括存储器10和处理器20,其结构示意图如图7所示。该存储器10存储有计算机程序,该处理器20执行计算机程序时上述的一种内存访问方法,包括:响应复位请求,获取内存配置信息,该内存配置信息至少包括内存译码方式位和内存访问有效位;基于内存配置信息,确定内核与内存块之间的地址译码映射关系;根据地址译码映射关系和内核的虚拟地址,控制内核发起内存访问。
132.本技术实施例中还提供一种设备,该设备可以是服务器,其结构示意图如图8所示。该设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该设备设计的处理器用于提供计算和控制能力。该设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该设备的数据库用于储存内存访问方法等数据。该设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种内存访问方法。上述内存访问方法,包括:响应复位请求,获取内存配置信息,该内存配置信息至少包括内存译码方式位和内存访问有效位;基于内存配置信息,确定内核与内存块之间的地址译码映射关系;根据地址译码映射关系和内核的虚拟地址,控制内核发起内存访问。
133.本技术一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种内存访问方法,包括步骤:响应复位请求,获取内存配置信息,该内存配置信息至少包括内存译码方式位和内存访问有效位;基于内存配置信息,确定内核与内存块之间的地址译码映射关系;根据地址译码映射关系和内核的虚拟地址,控制内核发起内存访问。
134.上述执行的内存访问方法,基于内存配置信息决定不同内存块在各个内核对应的虚拟地址之间的映射关系,并根据映射关系控制内核发起内存访问,无需考虑内核所需访问内存块的基地址信息,也无需考虑内核所对应的偏移地址,均可按照系统内存块的基地址编译程序,因此可以降低软件编译时的难度,降低由于配置不当引起的总线冲突的概率,提高内存访问的效率。
135.可以理解,上述场景仅是作为示例,并不构成对于本技术实施例提供的技术方案的应用场景的限定,本技术的技术方案还可应用于其他场景。例如,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
136.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
137.本技术实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
138.本技术实施例设备中的单元可以根据实际需要进行合并、划分和删减。
139.在本技术中,对于相同或相似的术语概念、技术方案和/或应用场景描述,一般只在第一次出现时进行详细描述,后面再重复出现时,为了简洁,一般未再重复阐述,在理解本技术技术方案等内容时,对于在后未详细描述的相同或相似的术语概念、技术方案和/或应用场景描述等,可以参考其之前的相关详细描述。
140.在本技术中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
141.本技术技术方案的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本技术记载的范围。
142.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,被控终端,或者网络设备等)执行本技术每个实施例的方法。
143.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本技术实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络,或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、存储盘、磁带)、光介质(例如,dvd),或者半导体介质(例如固态存储盘solid state disk(ssd))等。
144.以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1