CN115190102A - 信息广播方法、装置、电子单元、soc及电子设备 - Google Patents
信息广播方法、装置、电子单元、soc及电子设备 Download PDFInfo
- Publication number
- CN115190102A CN115190102A CN202210860277.6A CN202210860277A CN115190102A CN 115190102 A CN115190102 A CN 115190102A CN 202210860277 A CN202210860277 A CN 202210860277A CN 115190102 A CN115190102 A CN 115190102A
- Authority
- CN
- China
- Prior art keywords
- broadcast
- page table
- address
- level
- level page
- 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
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000013507 mapping Methods 0.000 claims abstract description 36
- 238000012545 processing Methods 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 8
- 238000011156 evaluation Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 13
- 238000004590 computer program Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本公开提供一种信息广播方法、装置、电子单元、SOC及电子设备,该信息广播方法包括根据预设的最高级页表的基地址进行寻址,得到多个广播页表,所述广播页表是同一个多级页表包括的最后级页表;根据所述多个广播页表,对待广播信息所携带的广播输入地址进行映射,得到多个广播输出地址,所述广播输出地址的个数与所述广播页表个数相同;将所述待广播信息发送至每个所述广播输出地址对应的位置。通过该方法,可以实现基于页表将数据广播至多个物理地址处。
Description
技术领域
本公开涉及信息广播领域,尤其涉及一种信息广播方法、装置、电子单元、SOC及电子设备。
背景技术
页表(Page Table)具有使用灵活、可维护性高的特点,因此,在现有技术中,通常采用页表结构来存放逻辑地址和物理地址之间的映射关系,进而对地址空间管理。在传统的页表结构中,一个逻辑地址被映射为唯一的物理地址,因此,在使用页表对地址空间进行管理的前提下,消息发送方在基于页表发送消息时,只能将消息发送给一个消息接收方。
然而,在实际应用中,可能存在消息发送方需要将同一个消息广播至多个不同的消息接收方的情况,例如在GPU(Graphics Processing Unit,图形处理器)应用中,当主机端将纹理数据拷贝到显存时,为了使GPU能更多地使用物理上距离主机端较近的显存空间,主机端需要将纹理数据同时广播到各个显存通道。显然,基于现有的页表结构,消息发送方无法实现将消息广播给多个消息接收方。
发明内容
本公开的目的是提供一种信息广播方法、装置、电子单元、SOC及电子设备,可以基于页表结构实现信息广播。
根据本公开的一个方面,提供一种信息广播方法,包括:根据预设的最高级页表的基地址进行寻址,得到多个广播页表,所述广播页表是同一个多级页表包括的最后级页表;根据所述多个广播页表,对待广播信息所携带的广播输入地址进行映射,得到多个广播输出地址,所述广播输出地址的个数与所述广播页表个数相同;将所述待广播信息发送至每个所述广播输出地址对应的位置。
本公开一种可行的实现方式中,所述根据预设的最高级页表的基地址进行寻址,得到多个广播页表,包括:根据每个第N级页表的基地址对内存空间进行寻址,得到对应个数的所述第N级页表;在确定所述第N级页表存在下一级页表的情况下,根据所述第N级页表的描述符确定所述下一级页表的个数以及每个所述下一级页表的基地址,以及更新N的取值;所述N的取值依次为M、M-1、M-2、……0,第M级页表为所述最高级页表,第0级页表为所述广播页表,且所述第0级页表的个数大于1,M、N为整数。
本公开一种可行的实现方式中,所述描述符包括用于指示所述下一级页表的数量的个数字段以及基地址字段;所述根据所述第N级页表的描述符确定所述下一级页表的个数以及每个所述下一级页表的基地址,以及更新N的取值,包括:在所述个数字段表征的数量X为1的情况下,将所述基地址字段所表示的地址确定为所述下一级页表的基地址;在所述个数字段表征的数量X大于1的情况下,将所述基地址字段所表示的地址的低Y位中的每一位从0以及1中穷尽取值后得到的多个地址,确定为所述下一级页表的基地址;X与Y为整数,且当X为偶数时,X等于2的Y次幂,当X为奇数时,X的二进制形式所包括的位数等于Y。
本公开一种可行的实现方式中,所述广播页表的个数等于每个所述描述符包括的非零个数字段所表示的数值的乘积。
本公开一种可行的实现方式中,所述最高级页表的基地址的有效起始位等于或低于地址空间的有效起始位。
本公开一种可行的实现方式中,所述广播页表用于将逻辑地址映射为物理地址,或者用于将第一物理地址映射为第二物理地址。
本公开一种可行的实现方式中,在所述广播页表用于将第一物理地址映射为第二物理地址的情况下,所述根据所述多个广播页表,对待广播信息所携带的广播输入地址进行映射,包括:判断所述广播输入地址的地址属性是否为物理地址;在是的情况下,根据所述多个广播页表,对所述广播输入地址进行映射;在不是的情况下,通过MMU将所述广播输入地址转换成物理地址后,根据所述多个广播页表,对转换后的广播输入地址进行映射。
本公开一种可行的实现方式中,所述方法应用于CPU,和/或片上网络NOC所包括的广播节点。
根据本公开的另一方面,还提供一种信息广播装置,包括:寻址模块、映射模块以及发送模块。寻址模块,用于根据预设的最高级页表的基地址进行寻址,得到多个广播页表,所述广播页表是同一个多级页表包括的最后级页表;映射模块,用于根据所述多个广播页表,对待广播信息所携带的广播输入地址进行映射,得到多个广播输出地址,所述广播输出地址的个数与所述广播页表个数相同;发送模块,用于将所述待广播信息发送至每个所述广播输出地址对应的位置。
根据本公开的另一方面,还提供一种电子单元,包括接收子单元、发送子单元、寄存器以及处理器,在所述寄存器内配置有多级页表的最高级页表的基地址;所述接收子单元,被配置为接收携带广播输入地址的待广播信息;所述处理器,被配置为根据所述最高级页表的基地址进行寻址,得到多个广播页表,所述广播页表是所述多级页表的最后级页表;以及根据所述多个广播页表,对所述广播输入地址进行映射,得到多个广播输出地址,所述广播输出地址的个数与所述广播页表个数相同;所述发送子单元,被配置为将所述待广播信息发送至每个所述广播输出地址对应的位置。
本公开一种可行的实现方式中,所述电子单元是CPU,或是片上网络NOC所包括的广播节点。
根据本公开的另一方面,还提供一种SOC,包括上述实现方式中的电子单元。在一些使用场景下,该SOC的产品形式体现为显卡;在另一些使用场景下,该SOC的产品形式体现为CPU主板。
根据本公开的另一方面,还提供一种电子设备,包括上述SOC。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机等。
根据本公开的另一方面,还提供一种计算机可读存储介质,所述可读存储介质上存储有信息广播程序,所述信息广播被执行时,实现上述任一实现方式中的信息广播方法。
附图说明
图1为现有技术中的多级页表的示意图;
图2为本公开一个实施例的信息广播方法的流程图;
图3为本公开一个实施例的多级页表的示意图之一;
图4为本公开一个实施例的多级页表的示意图之二;
图5为本公开一个实施例的多级页表的示意图之三;
图6为本公开一个实施例的信息广播装置的结构示意图;
图7为本公开一个实施例的电子单元的结构示意图。
附图标记:400-信息广播装置;410-寻址模块;420-映射模块;430-发送模块;500-电子单元;510-接收子单元;520-发送子单元;530-寄存器;540-处理器。
具体实施方式
在介绍本公开实施例之前,应当说明的是:
本公开部分实施例被描述为处理流程,虽然流程的各个操作步骤可能被冠以顺序的步骤编号,但是其中的操作步骤可以被并行地、并发地或者同时实施。
本公开实施例中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了将一个特征与另一个特征进行区分。
本公开实施例中可能使用了术语“和/或”,“和/或”包括其中一个或更多所列出的相关联特征的任意和所有组合。
应当理解的是,当描述两个部件的连接关系或通信关系时,除非明确指明两个部件之间直接连接或直接通信,否则,两个部件的连接或通信可以理解为直接连接或通信,也可以理解为通过中间部件间接连接或通信。
为了使本公开实施例中的技术方案及优点更加清楚明白,以下结合附图对本公开的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本公开的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
页表是一种特殊的数据结构,通常存放于内存中,用来保存逻辑地址和物理地址间的对应关系(映射关系)。
一般而言,从页表级数的维度对页表进行划分,可以分为单级页表以及多级页表。针对多级页表,如图1所示(图1所示的页表为4级页表),在ARM64架构下,当页大小(PageSize)设置为4K时,由一个寄存器存储最高一级页表的基地址(page table address)。每一级页表都有512个条目(entry),且在每一级页表的描述符中存放下一级页表的基地址。需要进行地址映射的电子单元可以基于最高一级页表的基地址进行逐级寻址,进而得到最后一级页表的存放地址,并基于最后一级页表的存放地址从内存空间中获取到最后一级页表。后续,该电子单元并可以基于最后一级页表中包括的映射关系,将获取到的逻辑地址映射为相应的物理地址,进而实现将携带有逻辑地址的信息发送到物理地址所对应的位置。
由于现有技术中的页表只能将一个逻辑地址映射为唯一的物理地址,因此,在基于页表发送消息时,现有技术无法实现将信息广播至不同的接收方。
基于此,本公开的目的是提供一种可以基于页表实现信息广播的方案。下面将先从方法的角度对本公开进行介绍。
如图2所示,本公开实施例提供一种信息广播方法,该方法可以包括:
步骤S110:根据预设的最高级页表的基地址进行寻址,得到多个广播页表,所述广播页表是同一个多级页表包括的最后级页表;
步骤S120:根据所述多个广播页表,对待广播信息所携带的广播输入地址进行映射,得到多个广播输出地址,所述广播输出地址的个数与所述广播页表个数相同;
步骤S130:将所述待广播信息发送至每个所述广播输出地址对应的位置。
在本公开实施例中,预先在用于执行信息广播方法的电子单元内配置多级页表,以及在该电子单元的寄存器内配置有该多级页表所包括的最高级页表的基地址,即pagetable address。此外,区别于现有技术中的多级页表,如图3所示,该电子单元的多级页表包括多个最后级页表(在本公开的一些实施例中,也将最后级页表称之为广播页表)。
如此配置之后,对于电子单元而言,当其基于最高级页表的基地址进行逐级寻址时,最终可以得到多个广播页表。若电子单元接收到的待广播信息所携带的广播输入地址位于每个广播页表的地址映射范围内,那么该电子单元可以基于每个广播页表,对接收到的待广播信息所携带的广播输入地址进行映射,得到对应的广播输出地址,然后将待广播信息发送至每个广播输出地址所对应的位置,进而可以基于多级页表实现信息广播。
其中,本公开实施例所提及到的电子单元可以是CPU(Central Processing Unit,中央处理器),也可以是片上网络NOC所包括的广播节点,该广播节点是硬件模块。
针对存储有本公开所涉及的多级页表的CPU,当CPU需要向多个单元模块发送命令时,可以通过多级页表实现将同一个命令一次性广播至多个单元模块,而避免重复多次发送同一命令,进而可以缩短命令的发送时间,提高效率。
针对存储有本公开所涉及的多级页表的广播节点,当主设备(在SOC(System onChip,芯片系统)中能主动发起访问请求的模块,如DMA(Direct Memory Access,直接存储器访问)、CPU等,借助于NOC内的广播节点向多个从设备(SOC中能够被访问的模块,如DDR(Double Data Rate,同步动态随机存取存储器))发送数据包时,广播节点在接收到数据包后,可通过多级页表实现将同一个数据包一次性广播至多个从设备,而避免多次发送数据包而导致的长时间占用NOC资源,可在节省资源的同时,提高数据发送效率。
当然,值得指出的是,在本公开实施例中,电子单元接收待广播信息的过程与电子单元执行步骤S110的过程之间并不存在严格的先后顺序。
例如在一些实施方式中,电子单元执行步骤S110的过程可以早于接收待广播信息的过程。即电子单元可以在接收到携带有广播输入地址的待广播信息之前,便按照步骤S110所示的方式获取到多个广播页表并缓存在本地,以便后续在接收到待广播信息之后,直接基于缓存在本地的多个广播页表进行地址映射以及进行后续的信息广播。
在另一些实施方式中,电子单元执行步骤S110的过程可以晚于接收待广播信息的过程。即电子单元在接收到待广播信息之后,再按照步骤S110所示的方式获取到多个广播页表,以便多个广播页表进行地址映射以及进行后续的信息广播。
当然,在一些实施方式中,电子单元接收待广播信息的过程与电子单元执行步骤S110的过程还可以同时异步进行。
下面将针对步骤S110,即根据预设的最高级页表的基地址进行寻址,得到多个广播页表的过程进行详细介绍。
从整体来说,步骤S110是从最高级页表的基地址开始寻址,得到次高级页表及其基地址,然后再根据次高级页表的基地址进行寻址,并以此类推进行逐级寻址,最终得到多个广播页表的基地址,进而得到多个广播页表。
为了实现逐级寻址,在本公开实施例中,可针对多级页表中的每级页表配置对应的描述符。如表1所示,在描述符内设置有个数字段以及基地址字段。
表1:描述符字段展示
其中,个数字段所表示的数值用于指示相对于本级页表的下一级页表的数量;基地址字段所表示的地址用于表示相对于本级页表的下一级页表的基地址,且指示基地址字段输出的地址是下一级页表的基地址的哪些位bit的地址,例如上表中的[47:13]表示输出的地址是下一级页表的基地址中的bit47-bit13的地址,即bit[47:13]。
基于此,在逐级寻址时,当获取到某一级页表后,即可根据该级页表的描述符所包括的个数字段以及基地址字段,确定下一级页表的个数以及基地址,然后再针对下一级页表的基地址,多每个下一级页表进行寻址。
为了方便描述,下面将以多级页表中的第N级页表为例进行举例说明。值得指出的是,上述N为整数,且N的取值依次为M、M-1、M-2、……0。M为正整数,第M级页表表示多级页表所包括的最高级页表(即当N取值为M时,第N级页表表征最高级页表),第0级页表表示多级页表的广播页表(即当N取值为0时,第N级页表表征广播页表),且在多级页表中包括多个第0级页表。
基于此,上述步骤S110即为针对多级页表中每个第N级页表,根据其基地址对内存空间进行寻址,得到对应个数的第N级页表。在得到第N级页表后,可判断当前的第N级页表是否存在下一级页表。
在判断第N级页表是否存在下一级页表时,在一些可选的实施方式中,可根据N的取值来进行判断。例如,在N的取值不为0时,即可判断当前的第N级页表存在下一级页表;在N的取值为0时,说明当前的第N级页表为第0级页表,即为广播页表,即可判断当前的第N级页表不存在下一级页表。
在另一些实施方式中,可根据当前的第N级页表的描述符中的个数字段所表征的数值来进行判断。例如,在当前的第N级页表的描述符的个数字段表示不为0时,即可判断当前的第N级页表存在下一级页表;在当前的第N级页表的描述符的个数字段表示为0时,说明当前的第N级页表为第0级页表,即为广播页表,即可判断当前的第N级页表不存在下一级页表。
后续在确定第N级页表不存在下一级页表的情况下,寻址结束,此时的第N级页表即为广播页表。在确定第N级页表存在下一级页表的情况下,根据第N级页表的描述符确定下一级页表的个数以及每个下一级页表的基地址,以及更新N的取值,即N的取值减1,以便进入下一次寻址。
下面将以图3所示出的多级页表为例,对上述寻址过程进行举例说明。图3所示的多级页表包括1个第4级页表,1个第3级页表,1个第2级页表,1个第1级页表,2个第0级页表。
当N取值为M=4时,第4级页表(即最高级页表)的基地址保存在寄存器中,根据第4级页表的基地址对内存空间进行寻址,即可得到第4级页表及其所包括的描述符,以及可以确定第4级页表存在下一级页表。通过查看第4级页表的描述符,可以确定下一级页表(即第3级页表)的个数为1,以及下一级页表(即第3级页表)的基地址,以及更新N的取值为M-1=3。
当N取值为M-1=3时,根据前一次获取到的第3级页表的基地址对内存空间进行寻址,即可得到第3级页表及其所包括的描述符,以及可以确定第3级页表存在下一级页表。通过查看第3级页表的描述符,可以确定下一级页表(即第2级页表)的个数为1,以及下一级页表(即第2级页表)的基地址,以及更新N的取值为M-2=2。
当N取值为M-2=2时,根据前一次获取到的第2级页表的基地址对内存空间进行寻址,即可得到第2级页表及其所包括的描述符,以及可以确定第2级页表存在下一级页表。通过查看第2级页表的描述符,可以确定下一级页表(即第1级页表)的个数为1,以及下一级页表(即第1级页表)的基地址,以及更新N的取值为M-3=1。
当N取值为M-3=1时,根据前一次获取到的第1级页表的基地址对内存空间进行寻址,即可得到第1级页表及其所包括的描述符,以及可以确定第1级页表存在下一级页表。通过查看第1级页表的描述符,可以确定下一级页表(即第0级页表)的个数为2,以及下一级页表(即第0级页表)的基地址,以及更新N的取值为M-4=0。
当N取值为M-4=0时,根据前一次获取到的第0级页表的基地址对内存空间进行寻址,即可得到2个第0级页表,以及可以确定2个第0级页表均不存在下一级页表,寻址结束。至此,可以得到2个第0级页表,即2个广播页表。
当然,值得指出的是,在本公开实施例中,除了最后级页表外,多级页表所包括的其他级页表的数量也可能为多个。如图4所示,多级页表包括1个第4级页表,1个第3级页表,1个第2级页表,2个第1级页表,4个第0级页表。
基于图4所示的多级页表,在进行逐级寻址时,当N取值为4、以及2时的寻址情况与上文类似,此处不再赘述。
当N取值为2时,根据前一次获取到的第2级页表的基地址对内存空间进行寻址,即可得到第2级页表及其所包括的描述符,以及可以确定第2级页表存在下一级页表。通过查看第2级页表的描述符,可以确定下一级页表(即第1级页表)的个数为2,以及下一级页表(即第1级页表)的基地址,以及更新N的取值为1。
当N取值为1时,根据前一次获取到的第1级页表的基地址对内存空间进行寻址,即可得到2个第1级页表及其所包括的描述符,以及可以确定2个第1级页表存在下一级页表。通过查看第一个第1级页表的描述符,可以确定第一个第1级页表的下一级页表(即第0级页表)的个数为2,以及下一级页表(即第0级页表)的基地址;通过查看第二个第1级页表的描述符,可以确定第二个第1级页表的下一级页表(即第0级页表)的个数为2,以及下一级页表(即第0级页表)的基地址;以及更新N的取值为0。
当N取值为0时,根据前一次获取到的第0级页表的基地址对内存空间进行寻址,即可得到4个第0级页表,以及可以确定4个第0级页表均不存在下一级页表,寻址结束。至此,可以得到4个第0级页表,即4个广播页表。
基于上述内容可知,总的来说,针对多级页表而言,其所包括的广播页表的总个数,等于该多级页表的每级页表的描述符包括的非零个数字段所表示的数值的乘积。
一般而言,同一个基地址字段所表示出的地址是唯一的,而在本公开中,当下一级页表的数量为多个时,需要基于同一个基地址字段所表示的同一个地址得到不同的下一级页表的基地址,下面将针对该过程进行介绍。
在地址空间中,预先为每一级页表设置对应的偏移地址。此外,前文提及,每级页表的描述符包括用于指示所述下一级页表的数量的个数字段以及基地址字段。其中,若描述符中的个数字段表示为1,那么基地址字段所表示的地址即为唯一的下一级页表的基地址;若描述符中的个数字段表示大于1,可通过预先设置控制描述符中的基地址字段的输出位数,以实现有效输出基地址字段所表示的地址中的部分位数,而未有效输出的位数则作为可变动位进行多次取值,并将可变动位取值后与有效输出的位数组成得到的多个不同地址确定为多个不同的第一级页表的基地址。
当然,每级页表的基地址与对应级页表的偏移地址所组成的地址即为该级页表在地址空间中实际所在的地址。
在一些实施方式中,可变动位是基地址的低位。基于此,针对每个第N级页表,在根据第N级页表的描述符确定下一级页表的个数以及每个下一级页表的基地址时,可以包括:
在当前的第N级页表的描述符的个数字段表征的数量X=1的情况下,将基地址字段所表示的地址确定为相对于当前的第N级页表的下一级页表的基地址。
在当前的第N级页表的描述符的个数字段表征的数量X>1的情况下,将基地址字段所表示的地址的低Y位中的每一位从0以及1中穷尽取值后得到的多个地址,确定为下一级页表的基地址。其中,X与Y为整数,且当X为偶数时,X等于2的Y次幂,当X为奇数时,X的二进制形式所包括的位数等于Y。
例如,针对图3所示的多级页表,页表地址的总位数为48bit,bit[11:0]是最后级页表的偏移地址。由于第1级页表存在2个下一级页表,即存在2个第0级页表,X等于2,21=2,即Y=1,那么可以预先设置第1级页表的描述符的基地址字段的输出位数为[47:13],即输出bit47-bit13的地址,使得第1级页表的描述符的基地址字段所表示的地址的低1位(即bit12)可作为可变动位。
如此设置后,当寻址到第2级页表时,第2级页表的下一级页表(即第1级页表)的数量为1,可直接将第2级页表的描述符中的基地址字段所表示的地址确定为第1级页表的基地址。当寻址到第1级页表时,第1级页表的下一级页表(即第0级页表)的数量为2,
第1级页表的描述符中的基地址字段输出bit47-bit13的地址,而bit12则在0以及1中穷尽取值。当bit12=0时,bit[47:12]所组成的地址是其中一个第0级页表(广播页表1)的基地址,当bit12=1时,bit[47:12]所组成的地址是另一个第0级页表(广播页表2)的基地址。
此外,在本公开中的一些实施方式中,最高级页表的有效起始位可以等于整个地址空间的有效起始位。以图3所示的多级页表为例,整个地址空间的有效位为[47:0],有效起始位为bit47;最高级页表的基地址的有效起始位为bit47,即最高级页表的有效起始位等于整个地址空间的有效起始位。
在本公开的另一些实施方式中,为了节省地址空间资源,最高级页表的有效起始位可以低于整个地址空间的有效起始位。以图5所示的多级页表为例,整个地址空间的有效位为[47:0],有效起始位为bit47;对于各级页表而言,bit[47:30]为不关心的地址,可以忽略,最高级页表的基地址的有效起始位为bit29,即最高级页表的有效起始位低于整个地址空间的有效起始位。这种实施方式下适合待广播信息的内容较少,通过较少的页表条目即可满足地址映射的情况。而通过减少各级页表的基地址的总位数,可以减少用于进行数据广播所占用的地址空间,起到节约地址空间资源的作用。
在本公开实施例中,在得到多个广播页表后,即可通过每个广播页表对待广播信息所携带的广播输入地址进行映射,得到多个广播输出地址。
在本公开的一些实施方式中,广播页表的映射规则可以与常规系统的MMU(MemoryManagement Unit,内存管理单元)页表映射规则一致,即将逻辑地址映射为物理地址。
在这种实施方式中,可以将广播页表和系统的MMU页表进行统一管理,进而在接收到的待广播信息所携带的广播输入地址为虚拟地址的情况下,直接根据广播页表将逻辑地址映射为广播输出地址,而不必将广播输入地址经过MMU转换成之后再由广播页表进行映射。
在本公开的另一些实施方式中,广播页表的映射规则可以相异于与常规系统的MMU页表映射规则,且是将即将第一物理地址映射为第二物理地址。
在这种实施方式中,根据多个广播页表,对待广播信息所携带的广播输入地址进行映射,可以包括:判断广播输入地址的地址属性是否为物理地址;在是的情况下,直接根据多个广播页表对广播输入地址进行映射;在不是的情况下,先通过MMU将广播输入地址转换成物理地址后,根据多个广播页表,对转换后的广播输入地址进行映射。
此外,请参照图6,本公开实施例还提供一种信息广播装置400,包括:寻址模块410、映射模块420以及发送模块430。
寻址模块410,用于根据预设的最高级页表的基地址进行寻址,得到多个广播页表,所述广播页表是同一个多级页表包括的最后级页表;
映射模块420,用于根据所述多个广播页表,对待广播信息所携带的广播输入地址进行映射,得到多个广播输出地址,所述广播输出地址的个数与所述广播页表个数相同;
发送模块430,用于将所述待广播信息发送至每个所述广播输出地址对应的位置。
在一种可选的实施方式中,所述寻址模块410,用于根据每个第N级页表的基地址对内存空间进行寻址,得到对应个数的所述第N级页表;在确定所述第N级页表存在下一级页表的情况下,根据所述第N级页表的描述符确定所述下一级页表的个数以及每个所述下一级页表的基地址,以及更新N的取值;所述N的取值依次为M、M-1、M-2、……0,第M级页表为所述最高级页表,第0级页表为所述广播页表,且所述第0级页表的个数大于1,M、N为整数。
在一种可选的实施方式中,所述描述符包括用于指示所述下一级页表的数量的个数字段以及基地址字段;所述寻址模块410,用于在所述个数字段表征的数量X为1的情况下,将所述基地址字段所表示的地址确定为所述下一级页表的基地址;在所述个数字段表征的数量X大于1的情况下,将所述基地址字段所表示的地址的低Y位中的每一位从0以及1中穷尽取值后得到的多个地址,确定为所述下一级页表的基地址;X与Y为整数,且当X为偶数时,X等于2的Y次幂,当X为奇数时,X的二进制形式所包括的位数等于Y。
在一种可选的实施方式中,所述广播页表的个数等于每个所述描述符包括的非零个数字段所表示的数值的乘积。
在一种可选的实施方式中,所述最高级页表的基地址的有效起始位等于或低于地址空间的有效起始位。
在一种可选的实施方式中,所述广播页表用于将逻辑地址映射为物理地址,或者用于将第一物理地址映射为第二物理地址。
在一种可选的实施方式中,在所述广播页表用于将第一物理地址映射为第二物理地址的情况下,所述映射模块420,用于判断所述广播输入地址的地址属性是否为物理地址;在是的情况下,根据所述多个广播页表,对所述广播输入地址进行映射;在不是的情况下,通过MMU将所述广播输入地址转换成物理地址后,根据所述多个广播页表,对转换后的广播输入地址进行映射。
在一种可选的实施方式中,该信息广播装置400应用于CPU,或者应用于片上网络NOC所包括的广播节点,或者同时应用于CPU和NOC所包括的广播节点。
值得指出的是,上述信息广播装置400所包括的各个模块的具体实施细节,请参照前述方法实施例所对应的内容,此处不再赘述。
此外,请参照图7,本公开实施例还提供一种电子单元500,包括接收子单元510、发送子单元520、寄存器530以及处理器540,在所述寄存器530内配置有多级页表的最高级页表的基地址,即page table address。
其中,接收子单元510,被配置为接收携带广播输入地址的待广播信息;
所述处理器540,被配置为根据所述最高级页表的基地址进行寻址,得到多个广播页表,所述广播页表是所述多级页表的最后级页表;以及根据所述多个广播页表,对所述广播输入地址进行映射,得到多个广播输出地址,所述广播输出地址的个数与所述广播页表个数相同;
所述发送子单元520,被配置为将所述待广播信息发送至每个所述广播输出地址对应的位置。
上述电子单元500所包括的各个部件的具体实施细节,请参照前述方法实施例所对应的内容,此处不再赘述。
在一种可选的实施方式中,上述电子单元500可以是CPU,或是片上网络NOC所包括的广播节点。当然,值得指出的是,该广播节点是硬件模块。
其中,针对存储有本公开所涉及的多级页表的CPU,当CPU需要向多个单元模块发送命令时,可以通过多级页表实现将同一个命令一次性广播至多个单元模块,而避免多次发送命令,进而可以缩短命令的发送时间。
针对存储有本公开所涉及的多级页表的广播节点,当主设备(在SOC中能主动发起访问请求的模块,如DMA(Direct Memory Access,直接存储器访问)、CPU等)借助于NOC内的广播节点向多个从设备(SOC中能够被访问的模块,如DDR(Double Data Rate,同步动态随机存取存储器))发送数据包时,广播节点在接收到数据包后,可通过多级页表实现将同一个数据包一次性广播至多个从设备,而避免多次发送数据包而导致的长时间占用NOC资源。
此外,本公开实施例还提供一种SOC,该SOC可以包括上述电子单元500以及其他必要部件。
在一些使用场景下,该SOC的产品形式体现为显卡;在另一些使用场景下,该SOC的产品形式体现为CPU主板。
此外,本公开实施例还提供一种电子设备,该电子设备包括上述的SOC以及其他必要的部件。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机、工作站、服务器等。
此外,本公开实施例还提供一种可读存储介质,在该可读存储介质上存储有信息广播程序,该信息广播程序被执行时,可实现上述任一可行的实现方式所提供的信息广播方法。至于具体的执行过程可参照上述方法实施例,此处不再赘述。
基于上述信息广播方案,可以基于页表结构实现信息广播,进而提高信息传输的效率。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用于说明本公开的技术方案而非对其保护范围的限制,尽管参照上述实施例对本公开进行了详细的说明,所属领域的普通技术人员应当理解:本领域技术人员阅读本公开后依然可对发明的具体实施方式进行种种变更、修改或者等同替换,但这些变更、修改或者等同替换,均在公开待批的权利要求保护范围之内。
Claims (14)
1.一种信息广播方法,包括:
根据预设的最高级页表的基地址进行寻址,得到多个广播页表,所述广播页表是同一个多级页表包括的最后级页表;
根据所述多个广播页表,对待广播信息所携带的广播输入地址进行映射,得到多个广播输出地址,所述广播输出地址的个数与所述广播页表个数相同;
将所述待广播信息发送至每个所述广播输出地址对应的位置。
2.根据权利要求1所述的信息广播方法,所述根据预设的最高级页表的基地址进行寻址,得到多个广播页表,包括:
根据每个第N级页表的基地址对内存空间进行寻址,得到对应个数的所述第N级页表;
在确定所述第N级页表存在下一级页表的情况下,根据所述第N级页表的描述符确定所述下一级页表的个数以及每个所述下一级页表的基地址,以及更新N的取值;
所述N的取值依次为M、M-1、M-2、……0,第M级页表为所述最高级页表,第0级页表为所述广播页表,且所述第0级页表的个数大于1,M、N为整数。
3.根据权利要求2所述的信息广播方法,所述描述符包括用于指示所述下一级页表的数量的个数字段以及基地址字段;所述根据所述第N级页表的描述符确定所述下一级页表的个数以及每个所述下一级页表的基地址,包括:
在所述个数字段表征的数量X为1的情况下,将所述基地址字段所表示的地址确定为所述下一级页表的基地址;
在所述个数字段表征的数量X大于1的情况下,将所述基地址字段所表示的地址的低Y位中的每一位从0以及1中穷尽取值后得到的多个地址,确定为所述下一级页表的基地址;
X与Y为整数,且当X为偶数时,X等于2的Y次幂,当X为奇数时,X的二进制形式所包括的位数等于Y。
4.根据权利要求3所述的信息广播方法,所述广播页表的个数等于每个所述描述符包括的非零个数字段所表示的数值的乘积。
5.根据权利要求1所述的信息广播方法,所述最高级页表的基地址的有效起始位等于或低于地址空间的有效起始位。
6.根据权利要求1所述的信息广播方法,所述广播页表用于将逻辑地址映射为物理地址,或者用于将第一物理地址映射为第二物理地址。
7.根据权利要求6所述的信息广播方法,在所述广播页表用于将第一物理地址映射为第二物理地址的情况下,所述根据所述多个广播页表,对待广播信息所携带的广播输入地址进行映射,包括:
判断所述广播输入地址的地址属性是否为物理地址;
在是的情况下,根据所述多个广播页表,对所述广播输入地址进行映射;
在不是的情况下,通过MMU将所述广播输入地址转换成物理地址后,根据所述多个广播页表,对转换后的广播输入地址进行映射。
8.根据权利要求1-7中任一项所述的信息广播方法,所述方法应用于CPU,和/或片上网络NOC所包括的广播节点。
9.一种信息广播装置,包括:
寻址模块,用于根据预设的最高级页表的基地址进行寻址,得到多个广播页表,所述广播页表是同一个多级页表包括的最后级页表;
映射模块,用于根据所述多个广播页表,对待广播信息所携带的广播输入地址进行映射,得到多个广播输出地址,所述广播输出地址的个数与所述广播页表个数相同;
发送模块,用于将所述待广播信息发送至每个所述广播输出地址对应的位置。
10.一种可读存储介质,所述可读存储介质上存储有信息广播程序,所述信息广播被执行时,实现如权利要求1-8中任一项所述的信息广播方法。
11.一种电子单元,包括接收子单元、发送子单元、寄存器以及处理器,在所述寄存器内配置有多级页表的最高级页表的基地址;
所述接收子单元,被配置为接收携带广播输入地址的待广播信息;
所述处理器,被配置为根据所述最高级页表的基地址进行寻址,得到多个广播页表,所述广播页表是所述多级页表的最后级页表;以及根据所述多个广播页表,对所述广播输入地址进行映射,得到多个广播输出地址,所述广播输出地址的个数与所述广播页表个数相同;
所述发送子单元,被配置为将所述待广播信息发送至每个所述广播输出地址对应的位置。
12.根据权利要求11所述电子单元,所述电子单元是CPU,或是片上网络NOC所包括的广播节点。
13.一种SOC,包括权利要求11或12所述的电子单元。
14.一种电子设备,包括权利要求13所述的SOC。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210860277.6A CN115190102B (zh) | 2022-07-22 | 2022-07-22 | 信息广播方法、装置、电子单元、soc及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210860277.6A CN115190102B (zh) | 2022-07-22 | 2022-07-22 | 信息广播方法、装置、电子单元、soc及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115190102A true CN115190102A (zh) | 2022-10-14 |
CN115190102B CN115190102B (zh) | 2024-04-16 |
Family
ID=83519182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210860277.6A Active CN115190102B (zh) | 2022-07-22 | 2022-07-22 | 信息广播方法、装置、电子单元、soc及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115190102B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117851290A (zh) * | 2024-03-07 | 2024-04-09 | 北京象帝先计算技术有限公司 | 页表管理方法、系统、电子组件及电子设备 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0870299A (ja) * | 1994-08-08 | 1996-03-12 | Internatl Business Mach Corp <Ibm> | ネットワークにおけるターゲット送信方法及びメッセージターゲット生成システム |
CN101189575A (zh) * | 2005-04-05 | 2008-05-28 | 英特尔公司 | 定序器地址管理 |
US20090172344A1 (en) * | 2007-12-31 | 2009-07-02 | Ed Grochowski | Method, system, and apparatus for page sizing extension |
US20120297139A1 (en) * | 2011-05-20 | 2012-11-22 | Samsung Electronics Co., Ltd. | Memory management unit, apparatuses including the same, and method of operating the same |
WO2012177982A1 (en) * | 2011-06-24 | 2012-12-27 | Mips Technologies, Inc. | Apparatus and method for accelerated hardware page table walk |
CN105283855A (zh) * | 2014-04-25 | 2016-01-27 | 华为技术有限公司 | 一种寻址方法及装置 |
CN108595349A (zh) * | 2017-12-28 | 2018-09-28 | 贵阳忆芯科技有限公司 | 大容量存储设备的地址转换方法与装置 |
GB201903901D0 (en) * | 2019-03-21 | 2019-05-08 | Advanced Risc Mach Ltd | Page table structure |
CN110868479A (zh) * | 2018-08-27 | 2020-03-06 | 北京淳中科技股份有限公司 | 一种设备寻址方法、装置和系统 |
WO2020057394A1 (zh) * | 2018-09-19 | 2020-03-26 | 华为技术有限公司 | 监控样本进程的内存访问行为的方法和装置 |
CN111367831A (zh) * | 2020-03-26 | 2020-07-03 | 超验信息科技(长沙)有限公司 | 翻译页表的深度预取方法、部件、微处理器及计算机设备 |
CN111881062A (zh) * | 2020-06-12 | 2020-11-03 | 海光信息技术有限公司 | 内存页的分页方法、装置、cpu芯片及计算机 |
CN114185818A (zh) * | 2022-02-15 | 2022-03-15 | 摩尔线程智能科技(北京)有限责任公司 | 基于扩展页表的gpu访存自适应优化方法及装置 |
CN114239448A (zh) * | 2021-12-10 | 2022-03-25 | 上海立可芯半导体科技有限公司 | 一种加速mmu映射表部署的系统和方法 |
CN114461176A (zh) * | 2022-04-12 | 2022-05-10 | 北京象帝先计算技术有限公司 | 一种算术逻辑单元、浮点数处理方法、gpu芯片、电子设备 |
-
2022
- 2022-07-22 CN CN202210860277.6A patent/CN115190102B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0870299A (ja) * | 1994-08-08 | 1996-03-12 | Internatl Business Mach Corp <Ibm> | ネットワークにおけるターゲット送信方法及びメッセージターゲット生成システム |
CN101189575A (zh) * | 2005-04-05 | 2008-05-28 | 英特尔公司 | 定序器地址管理 |
US20090172344A1 (en) * | 2007-12-31 | 2009-07-02 | Ed Grochowski | Method, system, and apparatus for page sizing extension |
US20120297139A1 (en) * | 2011-05-20 | 2012-11-22 | Samsung Electronics Co., Ltd. | Memory management unit, apparatuses including the same, and method of operating the same |
WO2012177982A1 (en) * | 2011-06-24 | 2012-12-27 | Mips Technologies, Inc. | Apparatus and method for accelerated hardware page table walk |
CN105283855A (zh) * | 2014-04-25 | 2016-01-27 | 华为技术有限公司 | 一种寻址方法及装置 |
CN108595349A (zh) * | 2017-12-28 | 2018-09-28 | 贵阳忆芯科技有限公司 | 大容量存储设备的地址转换方法与装置 |
CN110868479A (zh) * | 2018-08-27 | 2020-03-06 | 北京淳中科技股份有限公司 | 一种设备寻址方法、装置和系统 |
WO2020057394A1 (zh) * | 2018-09-19 | 2020-03-26 | 华为技术有限公司 | 监控样本进程的内存访问行为的方法和装置 |
GB201903901D0 (en) * | 2019-03-21 | 2019-05-08 | Advanced Risc Mach Ltd | Page table structure |
CN111367831A (zh) * | 2020-03-26 | 2020-07-03 | 超验信息科技(长沙)有限公司 | 翻译页表的深度预取方法、部件、微处理器及计算机设备 |
CN111881062A (zh) * | 2020-06-12 | 2020-11-03 | 海光信息技术有限公司 | 内存页的分页方法、装置、cpu芯片及计算机 |
CN114239448A (zh) * | 2021-12-10 | 2022-03-25 | 上海立可芯半导体科技有限公司 | 一种加速mmu映射表部署的系统和方法 |
CN114185818A (zh) * | 2022-02-15 | 2022-03-15 | 摩尔线程智能科技(北京)有限责任公司 | 基于扩展页表的gpu访存自适应优化方法及装置 |
CN114461176A (zh) * | 2022-04-12 | 2022-05-10 | 北京象帝先计算技术有限公司 | 一种算术逻辑单元、浮点数处理方法、gpu芯片、电子设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117851290A (zh) * | 2024-03-07 | 2024-04-09 | 北京象帝先计算技术有限公司 | 页表管理方法、系统、电子组件及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115190102B (zh) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170192819A1 (en) | Method and electronic device for resource allocation | |
CN101324869B (zh) | 一种基于axi总线的多路复用器 | |
CN107908357B (zh) | 命名数据网转发平面pit存储结构及其数据检索方法 | |
CN115422098B (zh) | 基于扩展页表的gpu访存自适应优化方法及装置 | |
US20220091780A1 (en) | Memory access method and intelligent processing apparatus | |
CN205430501U (zh) | 移动终端网络广告视频和正片视频无缝切换装置 | |
CN115190102A (zh) | 信息广播方法、装置、电子单元、soc及电子设备 | |
CN107168890B (zh) | 一种内存池的管理方法和装置 | |
CN103778120A (zh) | 全局文件标识生成方法、生成装置及相应的分布式文件系统 | |
CN111475245B (zh) | 动态图片显示方法、装置、电子设备及计算机存储介质 | |
US7627719B2 (en) | Cache device and method for determining LRU identifier by pointer values | |
CN115883022B (zh) | Dma传输控制方法、装置、电子设备及可读存储介质 | |
CN114567614B (zh) | 基于fpga实现arp协议处理的方法及装置 | |
CN116401045A (zh) | 一种对msix中断向量弹性池化管理的方法及装置 | |
CN111126584B (zh) | 数据回写系统 | |
CN113961566A (zh) | 一种交易流水的处理方法及系统 | |
CN113709061A (zh) | 一种报文转发的方法和电路 | |
US7099321B2 (en) | Symmetric dual-slot data hash method and network switching apparatus using same | |
CN105072047A (zh) | 一种报文传输及处理方法 | |
CN106302174A (zh) | 一种实现路由查找的方法及装置 | |
CN116705101B (zh) | 多psram颗粒芯片的数据处理方法、电子设备及存储介质 | |
US20120047285A1 (en) | Interrupt-based command processing | |
WO2024001414A1 (zh) | 报文的缓存方法、装置、电子设备及存储介质 | |
US9424227B2 (en) | Providing byte enables for peer-to-peer data transfer within a computing environment | |
CN109634514A (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 |