CN108132894A - 一种cpu中tlb多命中异常的定位装置及方法 - Google Patents
一种cpu中tlb多命中异常的定位装置及方法 Download PDFInfo
- Publication number
- CN108132894A CN108132894A CN201711411290.9A CN201711411290A CN108132894A CN 108132894 A CN108132894 A CN 108132894A CN 201711411290 A CN201711411290 A CN 201711411290A CN 108132894 A CN108132894 A CN 108132894A
- Authority
- CN
- China
- Prior art keywords
- hit
- tlb
- list item
- cpu
- exceptions
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种CPU中TLB多命中异常的定位装置及方法,方法具体包括:待映射的虚地址与命中比较模块中预先配置好的存储在n个TLB表项中的匹配地址进行逐一比较,得到表项中匹配命中的编号;采用带有优先级的多路选择器筛选出编号最小和最大的命中表项编号,存储在寄存器中;异常处理程序读取两个寄存器的值,定位造成TLB多命中的TLB表项编号。本发明辅助TLB多命中异常处理程序,能够快速找出发生TLB多命中的TLB表项编号;采用两组带有优先级的多路选择器及软件可访问寄存器,节省了TLB多命中异常处理的时间,提高了异常排查效率。
Description
技术领域
本发明属于集成电路中的嵌入式处理器技术领域,尤其是涉及一种CPU中TLB多命中异常的定位装置及方法。
背景技术
作为CPU(中央处理器)中常用的一个功能模块,TLB(Translation LookasideBuffer)负责将CPU所执行的软件程序中的虚地址,映射成物理总线上的实地址。理论上,每一个虚地址,都应该被TLB映射成唯一的实地址。
但在实际操作上,TLB中存储的映射表是由人工预先编写程序来实现的,这就可能由于人为的原因,造成某个虚地址映射的不唯一性。如图2例子所示;如,虚地址段0x00001000~0x00005000被映射为实地址段0x10001000~0x10005000,并存储在TLB表项#1中。虚地址段0x00004000~0x00008000被映射为实地址段0x20004000~0x20008000,并存储在TLB表项#2中。这样造成了虚地址子段0x00004000~0x00005000,既被表项#1映射到了实地址子段0x10004000~0x10005000,又被表项#2映射到了实地址子段0x20004000~0x20005000。这种不同TLB表项中虚地址段发生交叠的情况,会造成交叠段地址的不唯一映射。
TLB中不唯一的地址映射,在业界通常被称作TLB multi hit(多命中)。一些CPU,如PowerPC470,当出现TLB多命中时,其内部电路会依据某种内置规则,自动选定一个映射,而抛弃另一个映射。另一些CPU,如PowerPC460,当出现TLB多命中时,其会立即触发CPU进入TLB多命中异常状态。CPU停止正常程序的执行,跳转入事先编写好的TLB多命中对应的异常处理程序,来试图纠正此错误。
由于CPU中的TLB映射表项一般都较多,逐一排查哪两个(或多个)表项的映射存在交叠,此项工作是较为繁琐的。通过异常处理程序来完成上述排查,既带来了程序编写的复杂,更影响排查纠错的时间开销。
发明内容
有鉴于此,本发明旨在提出一种CPU中TLB多命中异常的定位装置,在发生两个表项命中的情况时,能够快速直观反馈出哪两个TLB映射表项存在交叠。
为达到上述目的,本发明的技术方案是这样实现的:
一种CPU中TLB多命中异常的定位装置,包括依次连接的待映射虚地址输入模块、命中比较模块、多路选择器,所述命中比较模块还分别通过带有优先级的多路选择器连接两组寄存器;
所述命中比较模块用于将待映射虚地址与预先配置好的存储在n个TLB表项中的匹配地址进行逐一比较,得到表项中匹配命中的编号;
所述多路选择器用于输出映射后的实地址;
所述两组寄存器用于存储通过带有优先级的多路选择器筛选出编号最大和最小的表项编号。
进一步的,所述每组寄存器的位宽为TLB表项编号的二进制宽度。
进一步的,所述两组寄存器是软件程序可读的,在CPU复位时,其值被同步复位为0。
相对于现有技术,本发明所述的一种CPU中TLB多命中异常的定位方装置具有以下优势:本发明辅助TLB多命中异常处理程序,能够快速找出发生TLB多命中的TLB表项编号;采用两组带有优先级的多路选择器及软件可访问寄存器,节省了TLB多命中异常处理的时间,提高了异常排查效率。
本发明的另一目的在于提出一种CPU中TLB多命中异常的定位方法,在发生两个表项命中的情况时,能够快速直观反馈出哪两个TLB映射表项存在交叠。
为达到上述目的,本发明的技术方案是这样实现的:
一种CPU中TLB多命中异常的定位方法,具体包括如下步骤:
(1)待映射的虚地址与命中比较模块中预先配置好的存储在n个TLB表项中的匹配地址进行逐一比较,得到表项中匹配命中的编号;
(2)采用带有优先级的多路选择器筛选出编号最小的命中表项编号,存储在寄存器中;
(3)采用带有优先级的多路选择器筛选出编号最大的命中表项编号,存储在寄存器中;
(4)异常处理程序读取两个寄存器的值,定位造成TLB多命中的TLB表项编号。
进一步的,当有两个或两个以上TLB表项同时命中时,命中比较模块将置位multihit标志信号,两组寄存器以multi hit标志信号为使能信号,存储两个命中表项编号。
本发明所述的一种CPU中TLB多命中异常的定位方法与上述一种CPU中TLB多命中异常的定位装置的有益效果相同,在此不再赘述。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例所述的一种CPU中TLB多命中异常的定位装置的结构示意图;
图2为现有技术中虚地址映射的不唯一的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。
下面将参考附图并结合实施例来详细说明本发明。
如图1所示,在实际应用中,待映射的虚地址与预先配置好的存储在n个TLB表项中的匹配地址进行逐一比较,经比较,当n个TLB表项中有唯一一个表项匹配命中,该命中表项的编号,会作为多路选择器的路选信号,将该命中表项对应的预先配置好的实地址信息,筛选出来并输出,从而完成一次正常的TLB映射过程;
当n个TLB表项中有不止一个表项命中,本发明提供一种诊断定位装置及方法,能够快速直观反馈出哪两个TLB映射表项存在交叠。
其中,定位装置包括依次连接的待映射虚地址输入模块、命中比较模块、多路选择器,所述命中比较模块还分别通过带有优先级的多路选择器连接两组寄存器;
所述命中比较模块用于将待映射虚地址与预先配置好的存储在n个TLB表项中的匹配地址进行逐一比较,得到表项中匹配命中的编号;
所述多路选择器用于输出映射后的实地址;
所述两组寄存器用于存储通过带有优先级的多路选择器筛选出编号最大和最小的表项编号。每组寄存器的位宽为TLB表项编号的二进制宽度。当有两个或两个以上TLB表项同时命中时,比较电路将置位multi hit标志信号,2组寄存器以multi hit标志信号为使能信号,存储两个命中表项编号。
第一组寄存器,其输入采用带有优先级的多路选择器来筛选出编号最小的命中表项编号。第二组寄存器,其输入采用带有优先级的多路选择器来筛选出编号最大的命中表项编号。上述两组寄存器,是软件程序可读的,且在CPU复位时,其值被同步复位为0。在CPU发生TLB多命中异常时,异常处理程序可以直接读取这两组寄存器的值,从而可以直接定位哪两组TLB表项发生了映射交叠,即省去了排查程序本身,又省去了逐一排查的时间开销。
这里给出一个在PowerPC460上的实现实例。PowerPC460的TLB表项共64个,且采用了全相联结构,表项编号由#0至#63。CPU运行软件程序所产生的每一个虚地址,都要与64个表项中的预置地址进行比较,以判断哪个命中。本发明加入的2组命中表项编号寄存器,其每组的位宽为6bit。当发生TLB multi hit时,第一组寄存器会按照#0至#63的顺序筛选出第一个命中表项,并存储其编号。第二组寄存器会按照#63至#0的顺序筛选出第二个命中表项,并存储其编号。两组寄存器为软件程序可访问寄存器,其访问编址为PowerPC460异常状态寄存器ESR的第26至31位,以及第18至23位。PowerPC460的TLB multi hit异常处理程序,可以直接读取ESR的后2个字节,来定位造成TLB多命中的TLB表项编号。
当两个以上表项都命中的情况,在处理上可以两两递归为2个表项命中的情况来逐对处理。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种CPU中TLB多命中异常的定位装置,其特征在于:包括依次连接的待映射虚地址输入模块、命中比较模块、多路选择器,所述命中比较模块还分别通过带有优先级的多路选择器连接两组寄存器;
所述命中比较模块用于将待映射虚地址与预先配置好的存储在n个TLB表项中的匹配地址进行逐一比较,得到表项中匹配命中的编号;
所述多路选择器用于输出映射后的实地址;
所述两组寄存器用于存储通过带有优先级的多路选择器筛选出编号最大和最小的表项编号。
2.根据权利要求1所述的一种CPU中TLB多命中异常的定位方法,其特征在于:所述每组寄存器的位宽为TLB表项编号的二进制宽度。
3.根据权利要求1所述的一种CPU中TLB多命中异常的定位方法,其特征在于:所述两组寄存器是软件程序可读的,在CPU复位时,其值被同步复位为0。
4.利用上述定位装置进行多命中异常定位的方法,其特征在于:具体包括如下步骤:
(1)待映射的虚地址与命中比较模块中预先配置好的存储在n个TLB表项中的匹配地址进行逐一比较,得到表项中匹配命中的编号;
(2)采用带有优先级的多路选择器筛选出编号最小的命中表项编号,存储在寄存器中;
(3)采用带有优先级的多路选择器筛选出编号最大的命中表项编号,存储在寄存器中;
(4)异常处理程序读取两个寄存器的值,定位造成TLB多命中的TLB表项编号。
5.根据权利要求4所述的一种CPU中TLB多命中异常的定位方法,其特征在于:当有两个或两个以上TLB表项同时命中时,命中比较模块将置位multi hit标志信号,两组寄存器以multi hit标志信号为使能信号,存储两个命中表项编号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711411290.9A CN108132894B (zh) | 2017-12-23 | 2017-12-23 | 一种cpu中tlb多命中异常的定位装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711411290.9A CN108132894B (zh) | 2017-12-23 | 2017-12-23 | 一种cpu中tlb多命中异常的定位装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108132894A true CN108132894A (zh) | 2018-06-08 |
CN108132894B CN108132894B (zh) | 2021-11-30 |
Family
ID=62391690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711411290.9A Active CN108132894B (zh) | 2017-12-23 | 2017-12-23 | 一种cpu中tlb多命中异常的定位装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108132894B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783265A (zh) * | 2018-12-30 | 2019-05-21 | 国网北京市电力公司 | 异常业务数据处理方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1848096A (zh) * | 2005-04-11 | 2006-10-18 | 美普思科技有限公司 | 转换旁视缓冲器中避免重复匹配输入的改良装置与方法 |
CN101896892A (zh) * | 2007-11-07 | 2010-11-24 | 高通股份有限公司 | 可配置的翻译旁视缓冲器 |
CN104216833A (zh) * | 2013-05-29 | 2014-12-17 | 华为技术有限公司 | 一种确定物理地址的方法及装置 |
CN104239238A (zh) * | 2013-06-21 | 2014-12-24 | 国际商业机器公司 | 用于管理转换旁视缓冲的方法和装置 |
CN104424034A (zh) * | 2013-09-04 | 2015-03-18 | 华为技术有限公司 | 硬件资源访问方法及装置 |
CN102789429B (zh) * | 2007-06-01 | 2016-06-22 | 英特尔公司 | 支持页属性的虚拟地址至物理地址的转换 |
US20160188488A1 (en) * | 2013-02-01 | 2016-06-30 | International Business Machines Corporation | Storing a system-absolute address (saa) in a first level translation look-aside buffer (tlb) |
-
2017
- 2017-12-23 CN CN201711411290.9A patent/CN108132894B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1848096A (zh) * | 2005-04-11 | 2006-10-18 | 美普思科技有限公司 | 转换旁视缓冲器中避免重复匹配输入的改良装置与方法 |
CN102789429B (zh) * | 2007-06-01 | 2016-06-22 | 英特尔公司 | 支持页属性的虚拟地址至物理地址的转换 |
CN101896892A (zh) * | 2007-11-07 | 2010-11-24 | 高通股份有限公司 | 可配置的翻译旁视缓冲器 |
US20160188488A1 (en) * | 2013-02-01 | 2016-06-30 | International Business Machines Corporation | Storing a system-absolute address (saa) in a first level translation look-aside buffer (tlb) |
CN104216833A (zh) * | 2013-05-29 | 2014-12-17 | 华为技术有限公司 | 一种确定物理地址的方法及装置 |
CN104239238A (zh) * | 2013-06-21 | 2014-12-24 | 国际商业机器公司 | 用于管理转换旁视缓冲的方法和装置 |
CN104424034A (zh) * | 2013-09-04 | 2015-03-18 | 华为技术有限公司 | 硬件资源访问方法及装置 |
Non-Patent Citations (1)
Title |
---|
游海量: "嵌入式处理器内存管理单元的设计和验证", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783265A (zh) * | 2018-12-30 | 2019-05-21 | 国网北京市电力公司 | 异常业务数据处理方法及装置 |
CN109783265B (zh) * | 2018-12-30 | 2022-08-12 | 国网北京市电力公司 | 异常业务数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108132894B (zh) | 2021-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
USRE49305E1 (en) | Data processing system having cache memory debugging support and method therefor | |
US6622211B2 (en) | Virtual set cache that redirects store data to correct virtual set to avoid virtual set store miss penalty | |
US7689806B2 (en) | Method and system to indicate an exception-triggering page within a microprocessor | |
KR100308682B1 (ko) | 다중방향연관외부마이크로프로세서캐쉬 | |
CN102089742A (zh) | 执行单元内的数据转发***和方法 | |
JP5476391B2 (ja) | データ処理システム | |
CN111324493B (zh) | 针对处理器板级调试的开发***及方法 | |
GB2413657A (en) | Breakpoint logic unit, debug logic and breakpoint method for a data processing apparatus | |
US6571316B1 (en) | Cache memory array for multiple address spaces | |
US7480783B2 (en) | Systems for loading unaligned words and methods of operating the same | |
US7035986B2 (en) | System and method for simultaneous access of the same line in cache storage | |
US20240103863A1 (en) | System and method for addressing data in memory | |
US5226132A (en) | Multiple virtual addressing using/comparing translation pairs of addresses comprising a space address and an origin address (sto) while using space registers as storage devices for a data processing system | |
CN108132894A (zh) | 一种cpu中tlb多命中异常的定位装置及方法 | |
US4618926A (en) | Buffer storage control system | |
US20080177990A1 (en) | Synthesized assertions in a self-correcting processor and applications thereof | |
CN102364431A (zh) | 一种实现读指令执行的方法及装置 | |
CN108664810A (zh) | 一种基于可逆矩阵的内存spd保护方法 | |
US7975182B2 (en) | Method, system and computer program product for generating trace data | |
TW201712531A (zh) | 偶發載入的抑制 | |
US6574698B1 (en) | Method and system for accessing a cache memory within a data processing system | |
CN102866963B (zh) | 控制器数据存储与读取方法 | |
US20130212438A1 (en) | Stack-based trace message generation for debug and device thereof | |
KR20140099255A (ko) | 레지스터 리네이밍 데이터 처리장치 및 레지스터 리네이밍 실행방법 | |
US20080148102A1 (en) | Method for enhancing debugging of runtime memory access errors by using an integrated visualization tool and a runtime memory error detection tool |
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 |