CN102929588B - 众核处理器虚实地址转换方法 - Google Patents
众核处理器虚实地址转换方法 Download PDFInfo
- Publication number
- CN102929588B CN102929588B CN201210374986.XA CN201210374986A CN102929588B CN 102929588 B CN102929588 B CN 102929588B CN 201210374986 A CN201210374986 A CN 201210374986A CN 102929588 B CN102929588 B CN 102929588B
- Authority
- CN
- China
- Prior art keywords
- core
- address
- request
- replacement
- processor
- 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
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种众核处理器虚实地址转换方法包括:第一步骤:请求仲裁器对来自各个处理器核心的指令流请求和数据流请求进行仲裁;第二步骤:通过指令流代换表和数据流代换表对仲裁后的指令流、数据流请求进行集中代换;其中,每个处理器核心在指令流、数据流代换表中固定分配若干条目,并且其中,核心的指令流在进行越权、越界检查后,通过虚地址索引本核心对应的代换表项后,利用可配置的代换算法代换出物理地址,代换表项包含对Cache一致性属性配置的信息。Cache一致性属性配置信息包括代换后的指令流、数据流访问是否可Cache、访问Cache的策略是直写还是回写、访问Cache是否写分配。
Description
技术领域
本发明涉及计算机技术领域,更具体地说,本发明涉及一种众核处理器虚实地址转换方法。
背景技术
随着单核处理器芯片集成度和主频的提高,处理器技术遇到了制造成本、功耗、散热等问题,促使多核、多线程技术成为处理器系统发展的新方向。其中集成几百甚至上千个核的处理器系统一般称为众核处理器系统。多核处理器系统以及众核处理器系统中的核数的增加保证了计算和数据处理能力持续提高。
其中集成几百甚至上千个核的处理器系统一般称为众核处理器系统。众核处理器系统中的核数的增加保证了计算和数据处理能力持续提高。
发表在“计算机工程与科学”2008年第30卷第9期第154至157页上的技术文献“用户级通信中基于网络接口的虚实地址变换技术”描述了一种基于地址变换表的虚实地址变换机制。
但是,根据现有技术的虚实地址转换要么不适用于众核处理器,要么将带来巨大的开销。此外,现有技术不足之处还包括通用处理器的TLB+页表技术、段表技术和段页表技术等。而且,共享Cache(高速缓存)一般是处理器系统性能提升的重要因素,但是在众核系统中由于众多核心的竞争,共享Cache的访问有时候反而影响了处理器系统性能。
因此,希望能够提供一种可有效降低众核处理器中虚实地址转换、空间保护等多种功能的开销,并可快速、灵活的完成虚实地址转换的众核处理器虚实地址转换方法。
发明内容
本发明所要解决的技术问题是针对现有技术中存在上述缺陷,提供一种能够有效降低众核处理器中虚实地址转换、空间保护等多种功能的开销,并可快速、灵活的完成虚实地址转换的众核处理器虚实地址转换方法。
根据本发明的第一方面,提供了一种众核处理器虚实地址转换方法,其包括:众核处理器虚实地址转换方法,其包括:第一步骤:请求仲裁器对来自各个处理器核心的指令流请求和数据流请求进行仲裁;第二步骤:通过指令流代换表和数据流代换表对仲裁后的指令流、数据流请求进行集中代换;其中,每个处理器核心在指令流、数据流代换表中固定分配若干条目,并且其中,核心的指令流在进行越权、越界检查后,通过虚地址索引本核心对应的代换表项后,利用可配置的代换算法代换出物理地址,代换表项还包含了对Cache一致性属性配置的信息。
优选地,所述代换算法的配置包括支持对物理空间到虚空间的映射算法的动态修改,在众核处理器存在多个存储控制器时,可实现处理器核心实际使用的物理空间固定在某个存储控制器,或灵活分条保存在多个存储控制器上。
优选地,指令流、数据流代换包括步骤:1)检查指令流、数据流的虚地址或物理地址是否发生越权、越界异常;2)根据虚地址和请求处理器核心的编号,生成索引,读出相关代换表项;3)利用代换算法代换出物理地址。
优选地,Cache一致性属性配置信息包括代换后的指令流、数据流访问是否可Cache、访问Cache的策略是直写还是回写、访问Cache是否写分配。
优选地,所述越权、越界检查包括:检查请求的虚地址是否落在对应段的虚空间范围内,如果超过该范围,则报地址越界错;检查请求的虚地址是否落在对应的物理空间范围内,如果超过该范围,则报地址越界错;以及检查请求虚地址是否访问了超出设定权限的物理空间范围,如果访问权限不足,则报越权错。
根据本发明的第二方面,提供了众核处理器虚实地址转换方法,其特征在于包括:
第一步骤:请求仲裁器对来自各个处理器核心的指令流请求和数据流请求进行仲裁;
第二步骤:通过指令流代换表进行处理器核心的指令流代换;其中,每个处理器核心在数据流代换表中固定分配多个条目,每个条目表示核心的一种虚空间类型,其中,核心的数据流在进行越权、越界检查后,虚地址根据处理器核心的编号核心号和虚空间类型索引本核心对应的代换表项后,通过代换算法代换出物理地址。
优选地,指令流、数据流代换包括步骤:1)检查指令流、数据流的虚地址或物理地址是否发生越权、越界异常;2)根据虚地址和请求处理器核心的编号,生成索引,读出相关代换表项;3)利用代换算法代换出物理地址。
优选地,所述代换算法的配置包括支持对物理空间到虚空间的映射算法的动态修改,在众核处理器存在多个存储控制器时,可实现处理器核心实际使用的物理空间固定在某个存储控制器,或灵活分条保存在多个存储控制器上。
优选地,Cache一致性属性配置信息包括代换后的指令流、数据流访问是否可Cache、访问Cache的策略是直写还是回写、访问Cache是否写分配。
优选地,所述越权、越界检查包括:检查请求的虚地址是否落在对应段的虚空间范围内,如果超过该范围,则报地址越界错;检查请求的虚地址是否落在对应的物理空间范围内,如果超过该范围,则报地址越界错;以及检查请求虚地址是否访问了超出设定权限的物理空间范围,如果访问权限不足,则报越权错。
如上所述,共享Cache一般是处理器系统性能提升的重要因素,但是在众核系统中由于众多核心的竞争,共享Cache的访问有时候反而影响了处理器系统性能。相应地,本发明所述的Cache一致性属性配置信息包括代换后的指令流、数据流访问是否可Cache、访问Cache的策略是直写还是回写、访问Cache是否写分配等。
更具体地说,在上述众核处理器虚实地址转换方法中,所述越权、越界检查包括:检查请求的虚地址是否落在对应段的虚空间范围内,如果超过该范围,则报地址越界错;检查请求的虚地址是否落在对应的物理空间范围内,如果超过该范围,则报地址越界错;以及检查请求虚地址是否访问了超出设定权限的物理空间范围,如果访问权限不足,则报越权错。
本发明至少具有下述优势:1)众核处理器的多个核心进行集中虚实地址代换,降低开销;2)根据地址空间类型设计的段式空间保护机制,支持虚空间到物理地址的连续、可配置分条等灵活的映射机制;3)代换装置还支持越权、越界保护,同时,支持对Cache(高速缓存)一致性属性参数的配置。
与已有技术相比,本发明的创新在于:集中式代换比传统的方式开销小,更适应众核;增加了灵活映射算法的动态修改机制,更适应众核处理器的使用;除了传统的越权、越界检查外,还增加了Cache一致性属性的设置,更适合众核处理器的使用。而且,本发明的众核处理器虚实地址转换方法在较小的开销情况下,完成了众核处理器中虚实地址转换、空间保护等多种功能。
附图说明
结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中:
图1示意性地示出了根据本发明第一实施例的众核处理器虚实地址转换方法的流程图。
图2示意性地示出了根据本发明第二实施例的众核处理器虚实地址转换方法的流程图。
图3示意性地示出了根据本发明第二实施例的众核处理器虚实地址转换方法的数据流代换表。
图4示意性地示出了根据本发明第三实施例的众核处理器虚实地址转换方法的流程图。
图5示意性地示出了根据本发明第三实施例的众核处理器虚实地址转换方法的数据流代换表。
图6示意性地示出了根据本发明实施例的代换流程示意图。
需要说明的是,附图用于说明本发明,而非限制本发明。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。
具体实施方式
为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附图对本发明的内容进行详细描述。
在本发明实施例的众核处理器虚实地址转换方法中,处理器核心的指令流和数据流代换采用段式管理,虚地址空间划分成若干类型,虚地址向物理地址的转换采用集中的指令流代换表和数据流代换表完成。本发明实施例采用请求仲裁器、指令流代换表和数据流代换表。
<第一实施例>
图1示意性地示出了根据本发明第一实施例的众核处理器虚实地址转换方法的流程图。如图1所示,根据本发明第一实施例的众核处理器虚实地址转换方法包括下述步骤:
第一步骤S1:请求仲裁器对来自各个处理器核心的指令流请求和数据流请求进行仲裁;其中,优选地,请求仲裁器可以根据众核处理器核心规模分成多级。
第二步骤S2:通过指令流代换表和数据流代换表对仲裁后的指令流、数据流请求进行集中代换;其中,每个处理器核心在指令流、数据流代换表中固定分配若干条目,并且其中,核心的指令流在进行越权、越界检查后,通过虚地址索引本核心对应的代换表项后,利用可配置的代换算法代换出物理地址,代换表项还包含了对Cache一致性属性配置的信息。
具体地说,例如,所述代换算法的配置包括支持对物理空间到虚空间的映射算法的动态修改,在众核处理器存在多个存储控制器时,可实现处理器核心实际使用的物理空间固定在某个存储控制器,或灵活分条保存在多个存储控制器上。
在本发明的一个具体实施方式中,指令流、数据流代换包括步骤:
1)检查指令流、数据流的虚地址或物理地址是否发生越权、越界异常;
2)根据虚地址和请求处理器核心的编号,生成索引,读出相关代换表项;
3)利用代换算法代换出物理地址。
具体地说,图6示意性地示出了根据本发明实施例的代换流程示意图。如图6所示,虚地址访问请求T1首先进行指令流、数据流仲裁T2;随后,进入指令流、数据流代换器T3,代换器T3查询指令流、数据流代换表T4以及代换算法配置表T5,从而进行越权、越界检查T6;根据检查结果,要么越权、越界异常报错T7,要么得到物理地址+Cache访问属性T8。
指令流、数据流代换表T4为多个代换表项,根据虚地址和核心号索引访问条目,表中登记的代换信息包括:1.用于物理地址计算的基本信息;2.含用于越权检查的权限配置;3.用于越界检查的界限配置;4.Cache信息。
例如,Cache一致性属性配置信息包括代换后的指令流、数据流访问是否可Cache、访问Cache的策略是直写还是回写、访问Cache是否写分配。
其中,所述越权、越界检查包括:检查请求的虚地址是否落在对应段的虚空间范围内,如果超过该范围,则报地址越界错;检查请求的虚地址是否落在对应的物理空间范围内,如果超过该范围,则报地址越界错;以及检查请求虚地址是否访问了超出设定权限的物理空间范围,如果访问权限不足,则报越权错。
与已有技术相比,本发明实施例的创新在于:集中式代换比传统的方式开销小,更适应众核;增加了灵活映射算法的动态修改机制,更适应众核处理器的使用;除了传统的越权、越界检查外,还增加了Cache一致性属性的设置,更适合众核处理器的使用。而且,本发明的众核处理器虚实地址转换方法在较小的开销情况下,完成了众核处理器中虚实地址转换、空间保护等多种功能。
<第二实施例>
图2示意性地示出了根据本发明第二实施例的众核处理器虚实地址转换方法的流程图。如图2所示,根据本发明第二实施例的众核处理器虚实地址转换方法包括下述步骤:
第一步骤S1:请求仲裁器对来自各个处理器核心的指令流请求和数据流请求进行仲裁;其中,优选地,请求仲裁器可以根据众核处理器核心规模分成多级。
第二步骤S20:通过指令流代换表进行处理器核心的指令流代换;其中,每个处理器核心在指令流代换表中固定分配一个条目(如图3所示),其中,指令流代换表数据流代换表中,每个条目包括:段长度、虚空间基址、段的虚空间基址和物理空间基址的差值、以及基地址差值符号位。核心的指令流在进行越权、越界检查后,通过虚地址索引本核心对应的代换表项后,利用代换算法代换出物理地址。
<第三实施例>
上述第二实施例对应于每个处理器核心在指令流代换表中固定分配一个条目的情况,相应地,对于每个处理器核心在指令流代换表中固定分配多个条目的情况,图4示意性地示出了根据本发明第三实施例的众核处理器虚实地址转换方法的流程图。如图4所示,根据本发明第三实施例的众核处理器虚实地址转换方法包括下述步骤:
第一步骤S1:请求仲裁器对来自各个处理器核心的指令流请求和数据流请求进行仲裁;其中,优选地,请求仲裁器可以根据众核处理器核心规模分成多级。
第二步骤S20:通过指令流代换表进行处理器核心的指令流代换;其中,每个处理器核心在数据流代换表中固定分配多个条目,每个条目表示核心的一种虚空间类型(如图5所示),其中,指令流代换表数据流代换表中,每个条目包括:段长度、虚空间基址、段的虚空间基址和物理空间基址的差值、以及基地址差值符号位。核心的数据流在进行越权、越界检查后,虚地址根据处理器核心的编号核心号和虚空间类型索引本核心对应的代换表项后,通过代换算法代换出物理地址。
其中,例如,虚空间类型包括:私有连续段、共享连续段(只读)、共享连续段(读写)和共享交叉段。
指令流、数据流代换包括步骤:
1)检查指令流、数据流的虚地址或物理地址是否发生越权、越界异常;
2)根据虚地址和请求处理器核心的编号,生成索引,读出相关代换表项;
3)利用代换算法代换出物理地址。
访问区域的类型包括私有连续区、共享连续只读区、共享连续区、共享交叉区。
其中,所述越权、越界检查包括:检查请求的虚地址是否落在对应段的虚空间范围内,如果超过该范围,则报地址越界错;检查请求的虚地址是否落在对应的物理空间范围内,如果超过该范围,则报地址越界错;以及检查请求虚地址是否访问了超出设定权限的物理空间范围,如果访问权限不足,则报越权错。
由此,本发明实施例的众核处理器虚实地址转换方法至少具有下述优势:
1)众核处理器的多个核心进行集中虚实地址代换,降低开销;
2)根据地址空间类型设计的段式空间保护机制,支持虚空间到物理地址的连续、可配置分条等灵活的映射机制;
3)代换装置还支持越权、越界保护,同时,支持对Cache(高速缓存)一致性属性参数的配置。
本发明实施例的众核处理器虚实地址转换方法在较小的开销情况下,完成了众核处理器中虚实地址转换、空间保护等多种功能。
根据本发明的另一优选实施例,本发明还提供了一种采用了上述众核处理器虚实地址转换方法的众核处理器。
可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (7)
1.一种众核处理器虚实地址转换方法,其特征在于包括:
第一步骤:请求仲裁器对来自各个处理器核心的指令流请求和数据流请求进行仲裁;
第二步骤:通过指令流代换表和数据流代换表对仲裁后的指令流、数据流请求进行集中代换;其中,每个处理器核心在指令流、数据流代换表中固定分配若干条目,并且其中,核心的指令流在进行越权、越界检查后,通过虚地址索引本核心对应的代换表项后,利用可配置的代换算法代换出物理地址,代换表项包含对Cache一致性属性配置的信息;
所述代换算法的配置包括支持对物理空间到虚空间的映射算法的动态修改,在众核处理器存在多个存储控制器时,处理器核心实际使用的物理空间固定在某个存储控制器,或分条保存在多个存储控制器上。
2.根据权利要求1所述的众核处理器虚实地址转换方法,其特征在于,指令流、数据流代换包括步骤:
1)检查指令流、数据流的虚地址或物理地址是否发生越权、越界异常;
2)根据虚地址和请求处理器核心的编号,生成索引,读出相关代换表项;
3)利用代换算法代换出物理地址。
3.根据权利要求1所述的众核处理器虚实地址转换方法,其特征在于,Cache一致性属性配置信息包括代换后的指令流、数据流访问是否可Cache、访问Cache的策略是直写还是回写、访问Cache是否写分配。
4.根据权利要求1所述的众核处理器虚实地址转换方法,其特征在于,所述越权、越界检查包括:检查请求的虚地址是否落在对应段的虚空间范围内,如果超过该范围,则报地址越界错;检查请求的虚地址是否落在对应的物理空间范围内,如果超过该范围,则报地址越界错;以及检查请求虚地址是否访问了超出设定权限的物理空间范围,如果访问权限不足,则报越权错。
5.一种众核处理器虚实地址转换方法,其特征在于包括:
第一步骤:请求仲裁器对来自各个处理器核心的指令流请求和数据流请求进行仲裁;
第二步骤:通过数据流代换表进行处理器核心的数据流代换;其中,每个处理器核心在数据流代换表中固定分配多个条目,每个条目表示核心的一种虚空间类型,其中,核心的数据流在进行越权、越界检查后,虚地址根据处理器核心的编号核心号和虚空间类型索引本核心对应的代换表项后,通过代换算法代换出物理地址;
所述代换算法的配置包括支持对物理空间到虚空间的映射算法的动态修改,在众核处理器存在多个存储控制器时,处理器核心实际使用的物理空间固定在某个存储控制器,或分条保存在多个存储控制器上。
6.根据权利要求5所述的众核处理器虚实地址转换方法,其特征在于,数据流代换包括步骤:
1)检查数据流的虚地址或物理地址是否发生越权、越界异常;
2)根据虚地址和请求处理器核心的编号,生成索引,读出相关代换表项;
3)利用代换算法代换出物理地址。
7.根据权利要求5所述的众核处理器虚实地址转换方法,其特征在于,所述越权、越界检查包括:检查请求的虚地址是否落在对应段的虚空间范围内,如果超过该范围,则报地址越界错;检查请求的虚地址是否落在对应的物理空间范围内,如果超过该范围,则报地址越界错;以及检查请求虚地址是否访问了超出设定权限的物理空间范围,如果访问权限不足,则报越权错。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210374986.XA CN102929588B (zh) | 2012-09-28 | 2012-09-28 | 众核处理器虚实地址转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210374986.XA CN102929588B (zh) | 2012-09-28 | 2012-09-28 | 众核处理器虚实地址转换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102929588A CN102929588A (zh) | 2013-02-13 |
CN102929588B true CN102929588B (zh) | 2015-04-08 |
Family
ID=47644402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210374986.XA Active CN102929588B (zh) | 2012-09-28 | 2012-09-28 | 众核处理器虚实地址转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102929588B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107085743A (zh) * | 2017-05-18 | 2017-08-22 | 郑州云海信息技术有限公司 | 一种基于国产众核处理器的深度学习算法实现方法与平台 |
CN110716887B (zh) * | 2019-09-11 | 2021-08-10 | 无锡江南计算技术研究所 | 一种支持写暗示的硬件高速缓存数据装入方法 |
CN115525583B (zh) * | 2022-11-29 | 2023-04-07 | 太初(无锡)电子科技有限公司 | 一种众核处理器的存储器数据访问方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101346706A (zh) * | 2005-12-29 | 2009-01-14 | 英特尔公司 | 虚拟转换后备缓冲器 |
US8171200B1 (en) * | 2004-08-27 | 2012-05-01 | Marvell International Ltd. | Serially indexing a cache memory |
CN102473138A (zh) * | 2009-06-29 | 2012-05-23 | 甲骨文美国公司 | 具有用于页面错误处理的闪存的扩展主存储器层次结构 |
-
2012
- 2012-09-28 CN CN201210374986.XA patent/CN102929588B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8171200B1 (en) * | 2004-08-27 | 2012-05-01 | Marvell International Ltd. | Serially indexing a cache memory |
CN101346706A (zh) * | 2005-12-29 | 2009-01-14 | 英特尔公司 | 虚拟转换后备缓冲器 |
CN102473138A (zh) * | 2009-06-29 | 2012-05-23 | 甲骨文美国公司 | 具有用于页面错误处理的闪存的扩展主存储器层次结构 |
Also Published As
Publication number | Publication date |
---|---|
CN102929588A (zh) | 2013-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2985718B1 (en) | Technologies for secure inter-virtual-machine shared memory communication | |
GB2534992B (en) | Configurable snoop filters for cache coherent systems | |
CN106415522B (zh) | 存储器内轻量一致性 | |
US8866831B2 (en) | Shared virtual memory between a host and discrete graphics device in a computing system | |
US9529719B2 (en) | Dynamic multithreaded cache allocation | |
CN102473139B (zh) | 包括用于i/o和计算卸载的多层次地址转换的i/o存储器管理单元 | |
CN102023932A (zh) | 为本地与远程物理存储器之间的共享虚拟存储器提供硬件支持 | |
CN105183915B (zh) | 减少索引维护开销的多版本管理方法 | |
US9208088B2 (en) | Shared virtual memory management apparatus for providing cache-coherence | |
US10467159B2 (en) | Memory node controller | |
CN105892955A (zh) | 一种管理存储系统的方法及设备 | |
CN102929588B (zh) | 众核处理器虚实地址转换方法 | |
CN108021429B (zh) | 一种基于numa架构的虚拟机内存及网卡资源亲和度计算方法 | |
WO2020259082A1 (zh) | 缓存的分配方法及装置、存储介质、电子装置 | |
CN107315694B (zh) | 一种缓存一致性管理方法及节点控制器 | |
CN113569508B (zh) | 基于id进行数据索引与访问的数据库模型构建方法及设备 | |
US20190018790A1 (en) | Method and apparatus for two-layer copy-on-write | |
US20190187964A1 (en) | Method and Apparatus for Compiler Driven Bank Conflict Avoidance | |
US11442856B2 (en) | Virtualized caches | |
TW202334802A (zh) | 具多標籤長度之頁表入口快取 | |
CN104049904A (zh) | 用于管理统一虚拟存储器的页面状态目录 | |
CN117616402A (zh) | 通过超额订阅由系统支持的计算实体共享的物理存储器的系统中的存储器减少 | |
CN106557448B (zh) | 多节点系统的内核代码读取方法及系统 | |
CN104049905B (zh) | 在异构处理器之间迁移不同尺寸的页 | |
JP6272011B2 (ja) | キャッシュ装置、キャッシュ装置を備えるコンピュータ、および、キャッシュ制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |