一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

连续系统地址解析方法、装置、电子设备及存储介质与流程

2022-07-10 05:14:27 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,特别是涉及内存地址技术领域,具体为一种连续系统地址 解析方法、装置、电子设备及存储介质。


背景技术:

2.多级内存交织技术是为了将访问均匀交织到所有的内存通道,这样可以充分利用内存通 道带宽,同时也减轻每根内存条的访问负载。内存交织技术既可以在多个硬件级别上,交织 的粒度大小也经常有多种配置选择。目前支持的内存交织包括但不限于处理器交织、内存控 制器交织、内存通道交织和内存颗粒位宽的集合交织等多级交织。例如当某系统支持 4k-byte粒度通道交织时,系统地址每增加4k-byte大小就会跳转到下一个通道。对于通道 内部地址,如果还支持粒度为256byte内存颗粒位宽的集合(也称为rank,rank表示一组内 存颗粒位宽的集合,具体地,当颗粒位宽
×
颗粒数=64bits时,这个颗粒就组成一个rank)交 织时,则会每256byte跳转一个内存颗粒位宽的集合。如图1所示,当用户向处理器输入一 个系统地址,根据处理器中各地址映射逻辑依次解析到具体的内存控制器、通道、内存和内 存颗粒位宽的集合上。对于不同的系统地址由于多级内存交织技术的存在会接近于随机的分 布在不同的内存颗粒位宽的集合上。
3.目前,处理器厂商只提供系统内存地址单点到内存地址的单点解析方法。当处理器要访 问一个内存系统地址时,处理器会根据单点转换逻辑来定位到特定内存条上的具体的行列位 置,进而读取到内存数据。当处理器侦测一个内存错误时,也会使用单点解析逻辑来定位具 体出错的内存的位置,从而提高系统的可靠性。但是目前对于连续系统地址的解析非常困 难。对于连续的一段系统地址中的任意一个地址,会经过诸如处理器交织,内存通道交织和 内存颗粒位宽的集合交织等多级交织,以及内存控制器其他一些硬件配置的影响,最后以接 近于随机的方式解析到一个具体的内存颗粒位宽的集合上。对于连续系统地址,通过循环方 式扫描每个地址,然后使用处理器厂商提供的上述单点解析方法,虽然也可以最终完成系统 连续地址的解析,但是性能效率会非常低下,而且单点解析方法的算法耗费的时间会随着地 址范围的扩大线性增加。


技术实现要素:

4.鉴于以上所述现有技术的缺点,本发明的目的在于提供一种连续系统地址解析方法、装 置、电子设备及存储介质,用于解决现有技术中连续地址单点解析效率低的问题。
5.为实现上述目的及其他相关目的,本发明提供一种连续系统地址解析方法,包括以下步 骤:在接收到连续系统地址时,获取系统层级信息;基于所述连续系统地址和所述系统层级 信息获取第一层级中各对象的逻辑地址范围;在依次获取系统第二层级、
……
、第n层级中 各对象的逻辑地址范围时,基于上一层级的逻辑地址范围和所述系统层级信息获取本层级中 各对象的逻辑地址范围;其中n为层级数量,n为大于等于2的整数,所述对象的逻辑地址 范围包括对象的起始地址和结束地址。
6.于本发明的一实施例中,所述系统层级信息包括层级数量,各层级交织使能状态,各层 级的交织粒度以及各层级包含的对象数量。
7.于本发明的一实施例中,所述基于所述连续系统地址和所述系统层级信息获取第一层级 中各对象的逻辑地址范围包括:基于所述连续系统地址的起始地址获取第一层级的第一对象 的起始地址;按起始地址依次递增对应的地址获取第一层级中第二对象、
……
、第m对象的 起始地址的起始地址;基于所述连续系统地址的结束地址获取第一层级的第一对象的结束地 址;按结束地址依次递减对应的地址获取第一层级中第二对象、
……
、第m对象的结束地址, 其中m为第一层级的对象数量。
8.于本发明的一实施例中,所述按起始地址依次递增包括:在所述第一层级交织使能状态 为未使能时,基于每个对象的系统配置和所述连续系统地址按起始地址依次递增;在所述第 一层级交织使能状态为被使能时,基于第一层级的交织粒度和所述连续系统地址按起始地址 依次递增;所述按结束地址依次递减包括:在所述第一层级交织使能状态为未使能时,基于 每个对象的系统配置和所述连续系统地址按起始地址依次递减;在所述第一层级交织使能状 态为被使能时,基于第一层级的交织粒度和所述连续系统地址按起始地址依次递减。
9.于本发明的一实施例中,在扫描到第一层级中对象重复或获取的某一对象的起始地址超 出所述连续系统地址的结束地址时,结束第一层级的起始地址扫描,完成第一层级中各对象 的起始地址的获取。
10.于本发明的一实施例中,在扫描到第一层级中对象重复或获取的某一对象的结束地址超 出所述连续系统地址的起始地址时,结束第一层级的结束地址扫描,完成第一层级中各对象 的结束地址的获取。
11.于本发明的一实施例中,所述基于上一层级的逻辑地址范围和所述系统层级信息获取本 层级中各对象的逻辑地址范围包括:基于上一层级的逻辑地址范围中的起始地址获取本层级 的第一对象的起始地址;按起始地址依次递增对应的地址获取本层级中第二对象、
……
、第 k对象的起始地址;基于上一层级的逻辑地址范围中的结束地址获取本层级的第一对象的结 束地址;按结束地址依次递减对应的地址获取本层级中第二对象、
……
、第k对象的结束地 址,其中k为本层级的对象数量。
12.于本发明的一实施例中,所述按起始地址依次递增包括:在所述本层级交织使能状态为 未使能时,基于每个对象的系统配置和所述上一层级的逻辑地址按起始地址依次递增;在所 述本层级交织使能状态为被使能时,基于本层级的交织粒度和所述上一层级的逻辑地址按起 始地址依次递增;所述按结束地址依次递减包括:在所述本层级交织使能状态为未使能时, 基于每个对象的系统配置和所述上一层级的逻辑地址按起始地址依次递减;在所述本层级交 织使能状态为被使能时,基于本层级的交织粒度和所述上一层级的逻辑地址按起始地址依次 递减。
13.于本发明的一实施例中,在扫描到本层级中对象重复或获取的某一对象的起始地址超出 上一层级的逻辑地址范围中的结束地址时,结束本层级的起始地址扫描,完成本层级中各对 象的起始地址的获取。
14.于本发明的一实施例中,在扫描到本层级中对象重复或获取的某一对象的结束地址超出 上一层级的逻辑地址范围中的起始地址时,结束本层级的结束地址扫描,完成本层
级中各对 象的结束地址的获取。
15.于本发明的一实施例中,还包括:检测按所述起始地址第一次递增时对应的地址是否为 该层级交织粒度的整数倍;响应于按所述起始地址第一次递增时对应的地址不是该层级交织 粒度的整数倍,将按所述起始地址第一次递增时对应的地址递增至该层级交织粒度的整数 倍。
16.于本发明的一实施例中,还包括:检测按所述结束地址第一次递减时对应的地址是否为 该层级交织粒度的整数倍;响应于按所述结束地址第一次递减时对应的地址不是该层级交织 粒度的整数倍,将按所述递减地址第一次递减时对应的地址递减至该层级交织粒度的整数 倍。
17.本发明的实施例还提供一种连续系统地址解析装置,包括:系统层级信息获取模块,用 于在接收到连续系统地址时,获取系统层级信息;逻辑地址范围获取模块,用于基于所述连 续系统地址和所述系统层级信息获取第一层级中各对象的逻辑地址范围,并在依次获取系统 第二层级、
……
、第n层级中各对象的逻辑地址范围时,基于上一层级的逻辑地址范围和所 述系统层级信息获取本层级中各对象的逻辑地址范围;其中n为层级数量,n为大于等于2 的整数,所述对象的逻辑地址范围包括对象的起始地址和结束地址。
18.于本发明的一实施例中,所述逻辑地址范围获取模块包括:起始地址获取单元,基于所 述连续系统地址的起始地址获取第一层级的第一对象的起始地址,按起始地址依次递增对应 的地址获取第一层级中第二对象、
……
、第m对象的起始地址,并基于上一层级的逻辑地址 范围中的起始地址获取本层级的第一对象的起始地址,按起始地址依次递增对应的地址获取 本层级中第二对象、
……
、第k对象的起始地址,m为第一层级的对象数量,k为本层级的 对象数量;结束地址获取单元,用于基于所述连续系统地址的结束地址获取第一层级的第一 对象的结束地址,按结束地址依次递减对应的地址获取第一层级中第二对象、
……
、第m对 象的结束地址,并基于上一层级的逻辑地址范围中的结束地址获取本层级的第一对象的结束 地址,按结束地址依次递减对应的地址获取本层级中第二对象、
……
、第k对象的结束地 址。
19.于本发明的一实施例中,于所述起始地址获取单元中:在所述第一层级交织使能状态为 未使能时,基于每个对象的系统配置和所述连续系统地址按起始地址依次递增,在所述第一 层级交织使能状态为被使能时,基于第一层级的交织粒度和所述连续系统地址按起始地址依 次递增;在所述本层级交织使能状态为未使能时,基于每个对象的系统配置和所述上一层级 的逻辑地址按起始地址依次递增;在所述本层级交织使能状态为被使能时:基于本层级的交 织粒度和所述上一层级的逻辑地址按起始地址依次递增;于所述结束地址获取单元中:在所 述第一层级交织使能状态为未使能时,基于每个对象的系统配置和所述连续系统地址按起始 地址依次递减;在所述第一层级交织使能状态为被使能时,基于第一层级的交织粒度和所述 连续系统地址按起始地址依次递减;在所述本层级交织使能状态为未使能时,基于每个对象 的系统配置和所述上一层级的逻辑地址按起始地址依次递减;在所述本层级交织使能状态为 被使能时,基于本层级的交织粒度和所述上一层级的逻辑地址按起始地址依次递减。
20.于本发明的一实施例中,所述逻辑地址范围获取模块还包括:起始地址扫描单元,用于 扫描获取第一层级中第二对象、
……
、第m对象的起始地址,在扫描到第一层级中对象
重复 或获取的某一对象的起始地址超出所述连续系统地址的结束地址时,结束第一层级的起始地 址扫描,完成第一层级中各对象的起始地址的获取,并用于依次扫描获取本层级中第二对 象、
……
、第k对象的起始地址,在扫描到本层级中对象重复或获取的某一对象的起始地址 超出上一层级的逻辑地址范围中的结束地址时,结束本层级的起始地址扫描,完成本层级中 各对象的起始地址的获取;结束地址扫描单元,用于依次扫描获取第一层级中第二对 象、
……
、第m对象的结束地址,在扫描到第一层级中对象重复或获取的某一对象的结束地 址超出所述连续系统地址的起始地址时,结束第一层级的结束地址扫描,完成第一层级中各 对象的结束地址的获取,并用于依次扫描获取本层级中第二对象、
……
、第k对象的结束地 址,在扫描到本层级中对象重复或获取的某一对象的结束地址超出上一层级的逻辑地址范围 中的起始地址时,结束本层级的结束地址扫描,完成本层级中各对象的结束地址的获取。
21.于本发明的一实施例中,所述逻辑地址范围获取模块还包括:倍数检测单元,用于检测 按所述起始地址第一次递增时对应的地址是否为该层级交织粒度的整数倍,按所述结束地址 第一次递减时对应的地址是否为该层级交织粒度的整数倍;倍数调整单元,用于响应于按所 述起始地址第一次递增时对应的地址不是该层级交织粒度的整数倍,将按所述起始地址第一 次递增时对应的地址递增至该层级交织粒度的整数倍,或响应于按所述结束地址第一次递减 时对应的地址不是该层级交织粒度的整数倍,将按所述递减地址第一次递减时对应的地址递 减至该层级交织粒度的整数倍。
22.为实现上述目的,本发明还提供一种存储介质,存储有程序指令,所述程序指令被处理 器执行时实现如上所述的连续系统地址解析方法的步骤。
23.为实现上述目的,本发明还提供一种电子设备,包括存储器,用于存储计算机程序;处 理器,与所述存储器相连,用于运行所述计算机程序以实现如上所述的连续系统地址解析方 法的步骤。
24.如上所述,本发明的一种连续系统地址解析方法、装置、电子设备及存储介质,具有以 下有益效果:
25.本发明在对连续系统地址做解析时,算法消耗时间固定,不会随连续系统地址范围的增 大而增加时间,有效提高了连续系统地址解析的效率。
附图说明
26.图1显示为现有技术中单点系统地址解析的架构图;
27.图2显示为本发明的连续系统地址解析方法的应用示意图;
28.图3显示为本发明的连续系统地址解析方法的整体流程示意图;
29.图4显示为本发明的连续系统地址解析方法中获取第一层级中各对象的起始地址的流程 图;
30.图5显示为本发明连续系统地址解析方法中获取第一层级中各对象的结束地址的流程 图;
31.图6显示为本发明的连续系统地址解析方法中获取第二层级
……
第n层级中各对象的起 始地址的流程图;
32.图7显示为本发明的连续系统地址解析方法中获取第二层级
……
第n层级中各对
象的结 束地址的流程图;
33.图8显示为本发明的连续系统地址解析方法中整体实施流程图;
34.图9显示为本发明中连续系统地址解析方法的具体地址解析示例图;
35.图10显示为本发明的连续系统地址解析装置的原理结构框图;
36.图11显示为本发明的连续系统地址解析装置中逻辑地址范围获取模块的原理结构框 图;
37.图12显示为本发明的连续系统地址解析装置中逻辑地址范围获取模块的一种优选原理 结构框图;
38.图13显示为本发明的连续系统地址解析装置中逻辑地址范围获取模块的另一种优选原 理结构框图;图14显示为本发明的电子设备于一实施例中的原理结构示意图。
39.元件标号说明
40.10
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
电子设备
41.101
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
处理器
42.102
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
存储器
43.100
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
连续系统地址解析装置
44.110
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
系统层级信息获取模块
45.120
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
逻辑地址范围获取模块
46.121
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
起始地址获取单元
47.122
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
结束地址获取单元
48.123
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
起始地址扫描单元
49.124
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
结束地址扫描单元
50.125
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
倍数检测单元
51.126
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
倍数调整单元
52.20
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
内存
53.310
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
第一通道
54.311
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
第一内存颗粒位宽的集合
55.312
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
第二内存颗粒位宽的集合
56.320
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
第二通道
57.321
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
第一内存颗粒位宽的集合
58.322
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
第二内存颗粒位宽的集合
59.s100~s300
ꢀꢀꢀꢀꢀ
步骤
60.s210~s240
ꢀꢀꢀꢀ
步骤
61.s310~s340
ꢀꢀꢀꢀꢀ
步骤
具体实施方式
62.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露 的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加 以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背
离本发明的精 神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征 可以相互组合。
63.需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,故图 式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实 际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复 杂。
64.在使用现有技术对连续系统地址中的每个系统地址进行单点解析过程中:
65.1)每个系统地址会被逐层级解析(层级包括但不限于通道(channel)和内存颗粒位宽的 集合(rank),其中rank为最后一层级),直至解析到一定的通道(channel)上的内存颗粒 位宽的集合(rank)上。解析过程中在每个层级上都可以计算得到一个逻辑地址。
66.2)不管各层的层级交织是否使能,交织粒度多大,连续的系统内存地址在每个层级上计 算得到逻辑地址都是线性增长的,即通道和内存颗粒位宽的集合等层级的逻辑地址都是连续 的。
67.3)当单点地址连续增加到结束地址时,或者当解析到的层级对象循环重复时,说明已经 扫描到所有层级对象。
68.本发明的连续系统地址解析方法、装置、电子设备及存储介质,用于解决现有技术中连 续地址单点解析效率低的问题。
69.图2显示为本发明的连续系统地址解析方法的应用示意图。如图2所示,一段连续的系 统地址可能会被解析到两个内存控制器(内存控制器1和内存控制器2)中的三个不同的通 道(例如,内存控制器1的通道1和通道2、内存控制器2的通道1)上的连续通道逻辑地址, 接着解析到四不同内存颗粒位宽的集合(内存控制器1的通道1的内存1的连续内存颗粒位 宽的集合1、内存控制器1的通道2的内存1的连续内存颗粒位宽的集合1和连续内存颗粒 位宽的集合2、内存控制器2的通道1的内存2的连续内存颗粒位宽的集合1)的连续内存颗 粒位宽的集合地址。需要说明的是,图2仅作为示例,本技术中连续的系统地址可被解析到 任何一个或多个合适的内存控制器、通道或内存颗粒位宽的集合。
70.本实施例基于上述单点解析过程的特点,提出优化的连续系统内地址的解析方法。
71.以下将详细阐述本实施例的连续系统地址解析方法、装置、电子设备及存储介质的原理 及实施方式,使本领域技术人员不需要创造性劳动即可理解本实施例的连续系统地址解析方 法、装置、电子设备及存储介质。
72.实施例1
73.本实施例提供一种连续系统地址解析方法,图3显示为本实施例的连续系统地址解析方 法的整体流程图。如图3所示,本实施例的连续系统地址解析方法包括以下步骤:
74.步骤s100,在接收到连续系统地址时,获取系统层级信息;
75.步骤s200,基于所述连续系统地址和所述系统层级信息获取第一层级中各对象的逻辑地 址范围;
76.步骤s300,基于上一层级的逻辑地址范围和所述系统层级信息获取本层级中各对象的逻 辑地址范围,依次获取系统第二层级、
……
、第n层级中各对象的逻辑地址范围,其中n为 层级数量,n为大于等于2的整数。
77.以下对本实施例的连续系统地址解析方法中的上述步骤s100至步骤s300进行详细说明。
78.步骤s100,在接收到连续系统地址时,获取系统层级信息。
79.于本实施例中,所述系统层级信息包括但不限于层级数量,各层级交织使能状态,各层 级的交织粒度以及各层级包含的对象数量。
80.具体地,在一些实施例中,系统层级可包括例如,内存通道(channel)和内存颗粒位宽 的集合(rank)两个层级。在一些实施例中,系统层级可包括一个或多个层级。层级交织使 能状态包括交织使能和交织未使能,其中,交织未使能时获取所述层级中每个对象的系统配 置的逻辑地址范围,并获取每个层级中对象的数目,例如系统内存有多少通道,每个通道有 多少内存颗粒位宽的集合。
81.步骤s200,基于所述连续系统地址和所述系统层级信息获取第一层级中各对象的逻辑地 址范围。
82.于本实施例中,所述第一层级的输入是所述连续系统地址,具体地,于本实施例中,分 别基于所述连续系统地址和所述系统层级信息获取第一层级中各对象的起始地址和各对象的 结束地址。
83.如图4所示,所述基于所述连续系统地址和所述系统层级信息获取第一层级中各对象的 逻辑地址范围中起始地址包括:
84.步骤s210,基于所述连续系统地址的起始地址获取第一层级的第一对象的起始地址。
85.具体地,基于所述连续系统地址的起始地址和单点地址解析逻辑计算得到第一个交织使 能的对象的起始地址。所述单点地址解析逻辑采用现有技术中任一种单点地址解析方法。在 此不再赘述。
86.于本实施例中,以m为第一层级的对象数量,k为第二层级、
……
、第n层级中任意一 层级的对象数量为例进行说明,需要说明的是,对于第二层级、
……
、第n层级中的每一层, 其k的值可以相同,也可以不同。
87.步骤s220,按起始地址依次递增对应的地址获取第一层级中第二对象、
……
、第m对 象的起始地址,m为第一层级的对象数量。
88.具体地,所述按起始地址依次递增包括:
89.1)在所述第一层级交织使能状态为未使能时,基于每个对象的系统配置和所述连续系统 地址按起始地址依次递增;
90.2)在所述第一层级交织使能状态为被使能时,基于第一层级的交织粒度和所述连续系统 地址按起始地址依次递增。
91.其中,于本实施例中,依次扫描获取第一层级中第一对象、
……
、第m对象的起始地址 中,在扫描到第一层级中对象重复或获取的某一对象的起始地址超出所述连续系统地址的结 束地址时,结束第一层级的起始地址扫描,完成第一层级中各对象的起始地址的获取。
92.特别地,于本实施例的连续系统地址解析方法中,还包括:检测按所述起始地址第一次 递增时对应的地址是否为该层级交织粒度的整数倍;响应于按所述起始地址第一次递增时对 应的地址不是该层级交织粒度的整数倍,将按所述起始地址第一次递增时对应
的地址递增至 该层级交织粒度的整数倍。
93.也就是说,于本实施例中,若层级交织使能且起始地址不是交织粒度大小整数倍时,第 一次将连续系统地址递增时,将递增后的地址补齐到交织粒度大小整数倍的地址。
94.例如,第一层级交织粒度为4k-byte,连续系统地址的起始地址为10k,起始地址10k 不是交织粒度4k-byte的整数倍,第一次递增时增加到下一个整数倍地址12k,使得第一次 递增的地址为交织粒度的整数倍。然后再基于第一次递增的地址和单点地址解析逻辑计算得 到第二对象的起始地址。
95.于本实施例中,如图5所示,所述基于所述连续系统地址和所述系统层级信息获取第一 层级中各对象的逻辑地址范围中结束地址包括:
96.步骤s230,基于所述连续系统地址的结束地址获取第一层级的第一对象的结束地址。具 体地,基于所述连续系统地址的结束地址和所述单点地址解析逻辑计算得到第一个交织使能 的对象的结束地址。
97.步骤s240,按结束地址依次递减对应的地址获取第一层级中第二对象、
……
、第m对 象的结束地址。
98.具体地,所述按结束地址依次递减包括:
99.1)在所述第一层级交织使能状态为未使能时,基于每个对象的系统配置和所述连续系统 地址按起始地址依次递减;
100.2)在所述第一层级交织使能状态为被使能时,基于第一层级的交织粒度和所述连续系统 地址按起始地址依次递减。
101.其中,于本实施例中,依次扫描获取第一层级中第一对象、
……
、第m对象的结束地址, 在扫描到第一层级中对象重复或获取的某一对象的结束地址超出所述连续系统地址的起始地 址时,结束第一层级的结束地址扫描,完成第一层级中各对象的结束地址的获取。
102.特别地,于本实施例的连续系统地址解析方法中,还包括:检测按所述结束地址第一次 递减时对应的地址是否为该层级交织粒度的整数倍;响应于按所述结束地址第一次递减时对 应的地址不是该层级交织粒度的整数倍,将按所述递减地址第一次递减时对应的地址递减至 该层级交织粒度的整数倍。
103.也就是说,于本实施例中,若层级交织使能且结束地址不是交织粒度大小整数倍时,第 一次将连续系统地址递减时,将递减后的地址补齐到交织粒度大小整数倍的地址。
104.例如,第一层级交织粒度为4k-byte,连续系统地址的结束地址 1为22k,不是交织粒 度4k-byte的整数倍,将第一次递减的地址递减到交织粒度的整数倍20k,所以下一个扫描 的结束地址是22k-1。然后再基于第一次递减的地址和单点地址解析逻辑计算得到第二对象 的结束地址。
105.需要说明的是,于本实施例中,在获取第一层级中各对象的逻辑地址范围时,可以先执 行步骤s210:获取第一层级的第一对象的起始地址,再执行步骤230,也可以先执行步骤s230: 获取第一层级的第一对象的结束地址,再执行步骤s210,此外,也可以同时执行步骤s210 和步骤s230:同时获取第一层级的第一对象的起始地址和结束地址。
106.同理,在获取第一层级中第二对象、
……
、第m对象的逻辑地址范围时,可以先获取各 对象的起始地址,再获取各对象的结束地址,也可以先获取各对象的结束地址,再获取
各对 象的起始地址,也可以同时执行获取各对象起始地址和结束地址的过程。
107.步骤s300,基于上一层级的逻辑地址范围和所述系统层级信息获取本层级(第二层 级、
……
、第n层级中任意一层级)中各对象的逻辑地址范围,从而依次获取系统第二层 级、
……
、第n层级中各对象的逻辑地址范围,其中n为层级数量,n为大于等于2的整数。 例如,基于第i-1层级的逻辑地址范围和所述系统层级信息获取i层级中各对象的逻辑地址范 围,其中i=2,3,
……
,n。
108.于本实施例中,第二层级、
……
、第n层级的输入为上一层级的逻辑地址范围。
109.如图6所示,在所述本层级交织使能状态为被使能时,所述基于上一层级的逻辑地址范 围和所述系统层级信息获取本层级中各对象的逻辑地址范围中起始地址包括:
110.步骤s310,基于上一层级的逻辑地址范围中的起始地址获取本层级的第一对象的起始地 址。
111.具体地,基于上一层级的逻辑地址范围中的起始地址和单点地址解析逻辑计算得到本层 级中第一个交织使能的对象的起始地址。
112.步骤s320,按起始地址依次递增对应的地址获取本层级中第二对象、
……
、第k对象的 起始地址,k为本层级的对象数量。
113.具体地,所述按起始地址依次递增包括:
114.1)在所述本层级交织使能状态为未使能时,基于每个对象的系统配置和所述上一层级的 逻辑地址按起始地址依次递增;
115.2)在所述本层级交织使能状态为被使能时,基于本层级的交织粒度和所述上一层级的逻 辑地址按起始地址依次递增;
116.其中,于本实施例中,依次扫描获取本层级中第一对象、
……
、第k对象的起始地址, 在扫描到本层级中对象重复或获取的某一对象的起始地址超出上一层级的逻辑地址范围中的 结束地址时,结束本层级的起始地址扫描,完成本层级中各对象的起始地址的获取。
117.特别地,于本实施例的连续系统地址解析方法中,还包括:检测按所述起始地址第一次 递增时对应的地址是否为该层级交织粒度的整数倍;响应于按所述起始地址第一次递增时对 应的地址不是该层级交织粒度的整数倍,将按所述起始地址第一次递增时对应的地址递增至 该层级交织粒度的整数倍。
118.也就是说,于本实施例中,若层级交织使能且起始地址不是交织粒度大小整数倍时,第 一次将上一层级的起始地址递增时,将递增后的地址补齐到交织粒度大小整数倍的地址。
119.例如,第二层级交织粒度为4k-byte,第一层级的起始地址为10k,起始地址10k不是 交织粒度4k-byte的整数倍,第一次递增时增加到下一个整数倍地址12k,使得第一次递增 的地址为交织粒度的整数倍。然后再基于第一次递增的地址和单点地址解析逻辑计算得到第 二层级中第二对象的起始地址。
120.于本实施例中,如图7所示,在所述本层级交织使能状态为被使能时,所述基于上一层 级的逻辑地址范围和所述系统层级信息获取本层级中各对象的逻辑地址范围中结束地址包 括:
121.步骤s330,基于上一层级的逻辑地址范围中的结束地址获取本层级的第一对象的
结束地 址。具体地,上一层级的逻辑地址范围中的结束地址和所述单点地址解析逻辑计算得到第一 个交织使能的对象的结束地址。
122.步骤s340,按结束地址依次递减对应的地址获取本层级中第二对象、
……
、第k对象的 结束地址。
123.具体地,所述按结束地址依次递减包括:
124.1)在所述本层级交织使能状态为未使能时,基于每个对象的系统配置和所述上一层级的 逻辑地址按起始地址依次递减;
125.2)在所述本层级交织使能状态为被使能时,基于本层级的交织粒度和所述上一层级的逻 辑地址按起始地址依次递减。
126.其中,于本实施例中,依次扫描获取本层级(第二层级、
……
、第n层级中任意一层级) 中第一对象、
……
、第k对象的结束地址,在扫描到本层级中对象重复或获取的某一对象的 结束地址超出上一层级的逻辑地址范围中的起始地址时,结束本层级的结束地址扫描,完成 本层级中各对象的结束地址的获取。
127.特别地,于本实施例的连续系统地址解析方法中,还包括:检测按所述起始地址第一次 递增时对应的地址是否为该层级交织粒度的整数倍;响应于按所述起始地址第一次递增时对 应的地址不是该层级交织粒度的整数倍,将按所述起始地址第一次递增时对应的地址递增至 该层级交织粒度的整数倍。
128.也就是说,于本实施例中,若层级交织使能且结束地址不是交织粒度大小整数倍时,第 一次将上一层级的结束地址递减时,将递减后的地址补齐到交织粒度大小整数倍的地址。
129.例如,第二层级交织粒度为4k-byte,上一层级的结束地址 1为22k,不是交织粒度 4k-byte的整数倍,将第一次递减的地址递减到交织粒度的整数倍20k,所以下一个扫描的 结束地址是22k-1。然后再基于第一次递减的地址和单点地址解析逻辑计算得到第二对象的 结束地址。
130.需要说明的是,于本实施例中,在获取本层级中各对象的逻辑地址范围时,可以先执行 步骤s310:获取本层级的第一对象的起始地址,再执行步骤330,也可以先执行步骤s330: 获取本层级的第一对象的结束地址,再执行步骤s310,此外,也可以同时执行步骤s310和 步骤s330:同时获取本层级的第一对象的起始地址和结束地址。
131.同理,在获取本层级中的第二对象、
……
、第k对象的逻辑地址范围时,可以先获取各 对象的起始地址,再获取各对象的结束地址,也可以先获取各对象的结束地址,再获取各对 象的起始地址,也可以同时执行获取各对象起始地址和结束地址的过程。
132.为使本领域技术人员进一步理解本实施例的连续系统地址解析方法,以下以具体实例对 本实施例的连续系统地址解析方法的实施过程进行说明。
133.如图8所示,接收连续系统地址范围输入,读取获取系统层级信息:得到层级数,每级 交织使能时交织大小粒度,交织未使能时地址配置范围等信息。
134.获取每一层级的逻辑地址范围,第一层级为输入的连续系统地址范围,其它层级为前一 层级输出的逻辑地址范围。
135.针对每一层级,分别获取各对象的起始地址和结束地址。两者可以按顺序进行,也可以 同时进行。
136.在获取各对象的起始地址时,根据单点地址解析逻辑得到该层级中一个对象的起始地址, 判断层级对象是否开始出现重复,若是,则结束后续过程,得到本层级各对象的起始地址, 若否,则继续判断本层级是否交织使能,若交织使能则将输入地址逐步递增交织粒度大小, 若交织未使能则跳转到下一个对象的配置地址起始逻辑位置,然后检测递增地址是否超过结 束地址,若是,结束该层各对象的起始地址配置,若否,则继续根据单点地址解析逻辑得到 该层级中下一个对象的起始地址,重复上述过程,完成该层级中各对象的起始地址的获取。
137.在获取对象的结束地址时,根据单点地址解析逻辑得到该层级中一个对象的结束地址, 判断层级对象是否开始出现重复,若是,则结束后续过程,得到本层级各对象的结束地址, 若否,则继续判断该层级是否交织使能,若交织使能则将输入地址逐步递减交织粒度大小, 若交织未使能则跳转到下一个对象的配置地址结束逻辑位置,然后检测递减地址是否超过起 始地址,若是,结束该层各对象的结束地址配置,若否,则继续根据单点地址解析逻辑得到 该层级中下一个对象的结束地址,重复上述过程,完成该层级中各对象的结束地址的获取。
138.在获取该层级中各对象的起始地址和结束地址之后,完成该层级中各对象的逻辑地址范 围的获取。
139.然后重复上述过程,进行下一层级中各对象的逻辑地址范围,直至完成系统中所有层级 的逻辑地址范围,得到内存颗粒位宽的集合的逻辑地址范围。
140.如图9所示,显示为应用本实施例中连续系统地址解析方法的具体地址解析示例。
141.假设某系统有2个内存通道,每个通道接有1根16gb 2rank的内存20,内存通道层级 和内存颗粒的集合(rank)层级的交织使能状态均为使能。现在希望计算连续系统地址范围 [10k,22k-1]的各个内存颗粒位宽的集合的逻辑地址范围。
[0142]
第一步,获取系统层级信息。系统包括通道层级和内存颗粒位宽的集合层级,系统层级 数目为2,各层级交织使能状态均为使能。系统使能了内存通道(channel)和内存颗粒位宽 的集合(rank)两级交织,通道层级为第一层级,内存颗粒位宽的集合层级为第二层级。通 道层级中通道数量为2,包括第一通道310和第二通道320,交织粒度为4k-byte。内存颗粒 位宽的集合层级中内存颗粒位宽的集合数量为4,交织粒度为10k-byte。
[0143]
第二步,基于所述连续系统地址和所述系统层级信息获取第一层级中各对象的逻辑地址 范围。计算第一通道310和第二通道320层级中各对象起始结束逻辑地址范围,得到第一通 道310的逻辑地址范围[6k,12k-1],得到第二通道320的逻辑地址范围[4k,10k-1]。具体过 程如下:
[0144]
1)计算通道层级的起始地址。根据连续系统地址中的起始地址10k得到第一通道310 的起始地址6k。将连续系统地址递增至通道层级的交织粒度大小整数倍12k,计算12k系 统地址得到第二通道320的起始地址4k。通道层级的所有对象都扫描到,扫描结束。
[0145]
2)计算第一通道310的结束地址。根据连续系统地址中的结束地址22k-1得到第二通道 320的结束地址10k-1。系统结束地址递减至通道层级的交织粒度大小整数倍20k-1,计算 20k-1系统地址得到第一通道310的结束地址12k-1。通道层级的所有对象都扫描到,扫描结 束。
[0146]
第三步,基于第一层级的逻辑地址范围和系统层级信息获取第二层级中各对象的
逻辑地 址范围。计算内存颗粒位宽的集合层级中各对象的逻辑地址范围,得到第一通道310第一内 存颗粒位宽的集合311的地址范围[6k,10k-1],得到第一通道310第二内存颗粒位宽的集合 312的地址范围[0k,2k-1],得到第二通道320第一内存颗粒位宽的集合321的地址范围[4k, 10k-1]。具体过程如下:
[0147]
1)计算第一通道310对应的各内存颗粒位宽的集合的起始地址。根据第一通道310的起 始位置6k得到第一通道310第一内存颗粒位宽的集合311的起始地址为6k。第一通道310 的起始地址递增内存颗粒位宽的集合层级的交织粒度大小的整数倍至10k,根据第一通道310 中10k地址计算得到第一通道310第二内存颗粒位宽的集合312的起始地址为0k。第二层 级中第一通道的两个内存颗粒位宽的集合都扫描到,扫描结束。
[0148]
2)计算第一通道310对应的各内存颗粒位宽的集合的结束地址。根据第一通道310的结 束地址12k-1得到第一通道310第二内存颗粒位宽的集合312的结束地址为2k-1。第一通道 310的结束地址递减到内存颗粒位宽的集合层级的交织粒度大小的整数倍至10k-1,根据 10k-1地址得到第一通道310第一内存颗粒位宽的集合311的结束地址为10k-1。第二层级中 第一通道的两个内存颗粒位宽的集合都扫描到,扫描结束。
[0149]
3)计算第二通道320对应的各内存颗粒位宽的集合的起始地址。根据第二通道320的起 始地址4k得到第二通道320第一内存颗粒位宽的集合321的起始地址为4k。将第二通道320 的起始地址递增交织粒度大小到10k,超过第二通道320的结束地址10k-1,无需继续扫描 第二通道320第二内存颗粒位宽的集合322,扫描结束。
[0150]
4)计算第二通道320对应的各内存颗粒位宽的集合的结束地址。根据第二通道320的结 束地址10k-1得到第二通道320第一内存颗粒位宽的集合321的结束地址为10k-1。将第二 通道320的结束地址递增交织粒度大小到-1,超过将第二通道320的起始地址0,无需继续扫 描第二通道320第二内存颗粒位宽的集合322,扫描结束。
[0151]
所以本实施例的连续系统地址解析方法在对连续系统地址做解析时,算法消耗时间固定, 不会随连续系统地址范围的增大而增加时间,有效提高了连续系统地址解析的效率。
[0152]
实施例2
[0153]
本实施例提供一种连续系统地址解析装置。图10显示为本实施例的连续系统地址解析装 置100的原理结构框图。如图10所示,本实施例中的连续系统地址解析装置100包括:系统 层级信息获取模块110和逻辑地址范围获取模块120。
[0154]
于本实施例中,所述系统层级信息获取模块110用于在接收到连续系统地址时,获取系 统层级信息。
[0155]
于本实施例中,所述系统层级信息包括但不限于层级数量,各层级交织使能状态,各层 级的交织粒度以及各层级包含的对象数量。
[0156]
具体地,获取给定系统地址解析过程中的层级数量,例如由内存通道(channel),内存 颗粒位宽的集合(rank)构成的两层级。对于每层级获取交织使能状态(交织使能或交织未 使能)和交织粒度(具体大小数值)。其中,交织未使能时获取层级每个对象系统配置的逻 辑地址范围,并获取每层级对象的数目,例如系统内存有多少通道,每个通道有多少内存颗 粒位宽的集合。
[0157]
于本实施例中,所述逻辑地址范围获取模块120基于所述连续系统地址和所述系
统层级 信息获取第一层级中各对象的逻辑地址范围,并在依次获取系统第二层级、
……
、第n层级 中各对象的逻辑地址范围时,基于上一层级的逻辑地址范围和所述系统层级信息获取本层级 中各对象的逻辑地址范围;其中n为层级数量,n为大于等于2的整数,所述对象的逻辑地 址范围包括对象的起始地址和结束地址。
[0158]
具体地,如11所示,于本实施例中,所述逻辑地址范围获取模块120包括:起始地址获 取单元121和结束地址获取单元122。
[0159]
于本实施例中,以m为第一层级的对象数量,k为第二层级、
……
、第n层级中任意一 层级的对象数量为例进行说明。需要说明的是,对于第二层级、
……
、第n层级中的每一层, 其k的值可以相同,也可以不同。
[0160]
于本实施例中,所述起始地址获取单元121基于所述连续系统地址的起始地址获取第一 层级的第一对象的起始地址,按起始地址依次递增对应的地址获取第一层级中第二对 象、
……
、第m对象的起始地址,并基于上一层级的逻辑地址范围中的起始地址获取本层级 的第一对象的起始地址,按起始地址依次递增对应的地址获取本层级中第二对象、
……
、第 k对象的起始地址,m为第一层级的对象数量,k为本层级的对象数量。
[0161]
具体地,于所述起始地址获取单元121中:
[0162]
在所述第一层级交织使能状态为未使能时,基于每个对象的系统配置和所述连续系统地 址按起始地址依次递增;
[0163]
在所述第一层级交织使能状态为被使能时,基于第一层级的交织粒度和所述连续系统地 址按起始地址依次递增;
[0164]
在所述本层级交织使能状态为未使能时,基于每个对象的系统配置和所述上一层级的逻 辑地址按起始地址依次递增;
[0165]
在所述本层级交织使能状态为被使能时:基于本层级的交织粒度和所述上一层级的逻辑 地址按起始地址依次递增。
[0166]
于本实施例中,所述结束地址获取单元122用于基于所述连续系统地址的结束地址获取 第一层级的第一对象的结束地址,按结束地址依次递减对应的地址获取第一层级中第二对 象、
……
、第m对象的结束地址,并基于上一层级的逻辑地址范围中的结束地址获取本层级 的第一对象的结束地址,按结束地址依次递减对应的地址获取本层级中第二对象、
……
、第 k对象的结束地址。
[0167]
具体地,于所述结束地址获取单元122中:
[0168]
在所述第一层级交织使能状态为未使能时,基于每个对象的系统配置和所述连续系统地 址按起始地址依次递减;
[0169]
在所述第一层级交织使能状态为被使能时,基于第一层级的交织粒度和所述连续系统地 址按起始地址依次递减;
[0170]
在所述本层级交织使能状态为未使能时,基于每个对象的系统配置和所述上一层级的逻 辑地址按起始地址依次递减;
[0171]
在所述本层级交织使能状态为被使能时,基于本层级的交织粒度和所述上一层级的逻辑 地址按起始地址依次递减。
[0172]
于本实施例中,所述第一层级的输入是所述连续系统地址。具体地,于本实施例中,分 别基于所述连续系统地址和所述系统层级信息获取第一层级中各对象的起始地址
和各对象的 结束地址。
[0173]
如12所示,于本实施例中,所述逻辑地址范围获取模块120还包括:起始地址扫描单元 123和结束地址扫描单元124。
[0174]
于本实施例中,所述起始地址扫描单元123用于扫描获取第一层级中第一对象、
……
、 第m对象的起始地址,在扫描到第一层级中对象重复或获取的某一对象的起始地址超出所述 连续系统地址的结束地址时,结束第一层级的起始地址扫描,完成第一层级中各对象的起始 地址的获取,并用于依次扫描获取本层级(第二层级、
……
、第n层级中任意一层级)中第 一对象、
……
、第k对象的起始地址,在扫描到本层级中对象重复或获取的某一对象的起始 地址超出上一层级的逻辑地址范围中的结束地址时,结束本层级的起始地址扫描,完成本层 级(第二层级、
……
、第n层级中任意一层级)中各对象的起始地址的获取。
[0175]
也就是说,于本实施例中,若层级交织使能且起始地址不是交织粒度大小整数倍时,第 一次将连续系统地址递增时,将递增后的地址补齐到交织粒度大小整数倍的地址,或第一次 将上一层级的起始地址递增时,将递增后的地址补齐到交织粒度大小整数倍的地址。
[0176]
于本实施例中,所述结束地址扫描单元1245用于依次扫描获取第一层级中第一对 象、
……
、第m对象的结束地址,在扫描到第一层级中对象重复或获取的某一对象的结束地 址超出所述连续系统地址的起始地址时,结束第一层级的结束地址扫描,完成第一层级中各 对象的结束地址的获取,并用于依次扫描获取本层级中第一对象、
……
、第k对象的结束地 址,在扫描到本层级中对象重复或获取的某一对象的结束地址超出上一层级的逻辑地址范围 中的起始地址时,结束本层级的结束地址扫描,完成本层级中各对象的结束地址的获取。
[0177]
于本实施例中,若层级交织使能且结束地址不是交织粒度大小整数倍时,第一次将连续 系统地址递减时,将递减后的地址补齐到交织粒度大小整数倍的地址,或第一次将上一层级 的结束地址递减时,将递减后的地址补齐到交织粒度大小整数倍的地址。
[0178]
如13所示,于本实施例中,所述逻辑地址范围获取模块120还包括:倍数检测单元125 和倍数调整单元126。
[0179]
于本实施例中,所述倍数检测单元125用于检测按所述起始地址第一次递增时对应的地 址是否为该层级交织粒度的整数倍,按所述结束地址第一次递减时对应的地址是否为该层级 交织粒度的整数倍。
[0180]
于本实施例中,所述倍数调整单元126用于响应于按所述起始地址第一次递增时对应的 地址不是该层级交织粒度的整数倍,将按所述起始地址第一次递增时对应的地址递增至该层 级交织粒度的整数倍,或响应于按所述结束地址第一次递减时对应的地址不是该层级交织粒 度的整数倍,将按所述递减地址第一次递减时对应的地址递减至该层级交织粒度的整数倍。
[0181]
本实施例的用于连续系统地址解析装置100具体实现的技术特征与实施例1中连续系统 地址解析方法的原理基本相同,方法和装置之间可以通用的技术内容不作重复赘述。
[0182]
实施例3
[0183]
如图14所示,本实施例还提供一种电子设备10,所述电子设备10包括存储器102,用 于存储计算机程序;处理器101,用于运行所述计算机程序以实现如实施例1所述的连续系 统地址解析方法的步骤。
[0184]
存储器102通过装置总线与处理器101连接并完成相互间的通信,存储器102用于存储 计算机程序,处理器101用于运行计算机程序,以使所述用户终端200执行所述的连续系统 地址解析方法。上述已经对所述连续系统地址解析方法进行了说明,在此不再赘述。
[0185]
另需说明的是,上述提到的装置总线可以是外设部件互连标准(peripheral componentinterconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture, 简称eisa)总线等。该装置总线可以分为地址总线、数据总线、控制总线等。通信接口用于 实现数据库访问装置与其他设备(例如客户端、读写库和只读库)之间的通信。存储器102 可能包含随机存取存储器(random access memory,简称ram),也可能还包括非易失性 存储器(non-volatile memory),例如至少一个磁盘存储器。
[0186]
上述的处理器101可以是通用处理器,包括中央处理器(central processing unit,简称 cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称 asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编 程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0187]
实施例4
[0188]
本实施例提供一种存储介质,存储有程序指令,所述程序指令被处理器执行时实现实施 例1中所述的连续系统地址解析方法的步骤。实施例1已经对所述连续系统地址解析方法进 行了说明,在此不再赘述。
[0189]
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算 机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序 在执行时,执行包括实施例1中各方法实施例的步骤;而前述的存储介质包括:rom、 ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0190]
综上所述,本发明在对连续系统地址做解析时,算法消耗时间固定,不会随连续系统地 址范围的增大而增加时间,有效提高了连续系统地址解析的效率。所以,本发明有效克服了 现有技术中的种种缺点而具高度产业利用价值。
[0191]
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技 术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡 所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等 效修饰或改变,仍应由本发明的权利要求所涵盖。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献