CN101490655A - 在微处理器内指示异常触发页面的方法和系统 - Google Patents
在微处理器内指示异常触发页面的方法和系统 Download PDFInfo
- Publication number
- CN101490655A CN101490655A CNA2007800266963A CN200780026696A CN101490655A CN 101490655 A CN101490655 A CN 101490655A CN A2007800266963 A CNA2007800266963 A CN A2007800266963A CN 200780026696 A CN200780026696 A CN 200780026696A CN 101490655 A CN101490655 A CN 101490655A
- Authority
- CN
- China
- Prior art keywords
- page
- buffer module
- executable instruction
- address information
- tlb
- 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
Images
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/1009—Address translation using page tables, e.g. page table structures
-
- 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
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/684—TLB miss handling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一种指示软件管理式页面表内的哪一页面在例如数字信号处理器等微处理器内触发异常的方法和系统,其中软件管理式转译后备缓冲器(TLB)模块接收由超长指令字(VLIW)包中的例如取指令等指令产生的虚拟地址,且进一步将所述虚拟地址与每一已存储的TLB条目进行比较。如果存在匹配,那么所述TLB模块输出所述指令的对应的经映射物理地址。否则,如果所述VLIW包跨越两个页面,其中第一页面作为TLB条目存在于所述TLB模块内且第二页面从已存储的TLB条目遗漏,那么在控制寄存器的数据字段内设定指示位,以向软件管理单元识别TLB遗漏异常。所述软件管理单元从所述寄存器检索指示位信息,且使用所述指示位信息在所述软件管理式页面表内进一步执行页面表查找以便检索遗漏页面信息。随后,将所述遗漏页面信息写入到所述TLB模块内的新TLB条目中,以用于随后的虚拟地址转译和指令包的执行。
Description
技术领域
本发明大体上涉及微处理器,且更具体来说涉及在微处理器(例如,数字信号处理器)内指示异常触发页面的方法和系统。
背景技术
通常,计算机系统包括一个或一个以上微处理器装置,每一微处理器装置经配置以对存储于计算机系统的存储器内的值执行操作且管理计算机系统的总体操作。这些计算机系统也可包括各种多媒体装置,例如声卡和/或视频卡,每一多媒体装置进一步包含一个或一个以上处理器,例如数字信号处理器(DSP),所述处理器在每一相应多媒体装置内执行复杂的数学计算。
数字信号处理器(DSP)通常包括经特别配置以执行此类数学计算的硬件执行单元,例如一个或一个以上算术逻辑单元(ALU)、一个或一个以上乘法和累加单元(MAC),和其他经配置以执行由DSP内的一组指令指定的操作的功能单元。此类操作可包括(例如)算术操作、逻辑操作,和其他数据处理操作,其每一者由一组相关联的指令界定。
大体来说,DSP内的执行单元从耦合到存储器和执行单元的寄存器堆读取数据和操作数,执行指令操作且将结果存储于寄存器堆中。
发明内容
描述在微处理器(例如,数字信号处理器(DSP))内指示软件管理式页面表内的哪一页面触发异常的方法和系统。在一个实施例中,软件管理式转译后备缓冲器(TLB)模块接收由超长指令字(VLIW)包内的指令(例如,取指令)产生的虚拟地址,且进一步将所述虚拟地址与每一已存储的TLB条目进行比较。如果存在匹配,那么所述TLB模块输出所述指令的对应的经映射物理地址。
否则,如果所述VLIW包跨越两个页面,其中第一页面作为TLB条目存在于所述TLB模块内且第二页面从已存储的TLB条目遗漏,那么在控制寄存器的数据字段内设定指示位以向软件管理单元识别TLB遗漏异常。如果所述TLB遗漏异常起始于对应于由所述系统内的程序计数器识别的VLIW包的页面,那么将所述指示位设定为0值且将所述数据字段设定为0x00。或者,如果所述TLB遗漏异常起始于在对应于所述VLIW包的所述页面之后的页面,那么将所述指示位设定为1值且将所述数据字段设定为0x01。
在一个实施例中,软件管理单元从寄存器检索指示位信息且使用指示位信息在软件管理式页面表内进一步执行页面表查找以便检索遗漏页面信息。随后,将遗漏页面信息写入到所述TLB模块内的新TLB条目中以用于随后的虚拟地址转译和指令包的执行。
附图说明
图1为数字信号处理系统的方框图,在所述系统内可执行一组指令;
图2为说明所述数字信号处理系统内的存储器管理单元的一个实施例的方框图;
图3为说明存储于所述数字信号处理系统内的软件管理式页面表中的虚拟地址与物理地址的映射的一个实施例的方框图;
图4为说明所述数字信号处理系统内的控制寄存器堆结构的一个实施例的方框图;
图5为说明所述数字信号处理系统内的系统状态寄存器的一个实施例的方框图;
图6为说明用以指示软件管理式页面表内的哪一页面在数字信号处理系统内触发异常的系统的一个实施例的方框图;
图7为说明用以指示软件管理式页面表内的哪一页面在数字信号处理系统内触发异常的方法的一个实施例的流程图。
具体实施方式
描述用以指示软件管理式页面表内的哪一页面在微处理器(例如,数字信号处理器(DSP))内触发异常的方法和系统。尽管下文结合DSP详细描述所述系统,但应理解,可使用微处理器装置或任何其他经配置以接收指令的处理单元来实施所述系统,所述指令用以从存储器模块检索数据、指示软件管理式页面表内的异常触发页面以及将信息插入到微处理器装置内的转译后备缓冲器(TLB)模块中以用于随后执行指令包。
软件管理式TLB模块接收由超长指令字(VLIW)包内的指令(例如,取指令)产生的虚拟地址,且进一步将此虚拟地址与每一已存储的TLB条目进行比较。如果存在匹配,那么TLB模块输出所述指令的对应的经映射物理地址。
否则,如果VLIW包跨越两个页面,其中第一页面作为TLB条目存在于TLB模块内且第二页面从已存储的TLB条目中遗漏,那么在控制寄存器的数据字段内设定一指示位以向软件管理单元识别TLB遗漏异常。如果TLB遗漏异常起始于一对应于由系统内的程序计数器识别的VLIW包的页面,那么将指示位设定为0值且将数据字段设定为0×00。或者,如果TLB遗漏异常起始于在对应于所述VLIW包的所述页面之后的一页面,那么将指示位460设定为1值且将数据字段设定为0×01。
在一个实施例中,软件管理单元从寄存器检索指示位信息且使用指示位信息在软件管理式页面表内进一步执行页面表查找以便检索遗漏页面信息。随后,将遗漏页面信息写入到TLB模块内的新TLB条目中以用于随后的虚拟地址转译和指令包的执行。
图1是数字信号处理系统的方框图,在所述系统内可执行一组指令。如图1中所说明,数字信号处理系统100包括处理单元110、存储器模块120,和将所述处理单元110耦合到所述存储器模块120的一个或一个以上总线130。
存储器模块120以(例如)由VLIW编译器产生的超长指令字(VLIW)包的形式存储数据和指令,每一VLIW包包含一个或一个以上指令。包的每一指令通常为预定宽度,且在存储器模块120中具有特定地址,以使得包中的第一指令通常具有低于所述包的最后一个指令的存储器地址。经由总线130(例如,指令载入总线、数据载入总线,和/或数据载入/存储总线)将存储于存储器模块120内的指令载入处理单元110中。处理单元110内的存储器管理单元MMU 190为硬件和/或软件模块,其经配置以处置由单元110请求的存储器存取且进一步耦合到中央处理单元核心140。
中央处理单元核心140经由一个或一个以上管线160进一步耦合到一个或一个以上通用寄存器堆结构150。处理单元110可进一步包含一个或一个以上微处理器、数字信号处理器,或其类似物。
通用寄存器堆结构150进一步包含一组通用寄存器单元(例如,三十二个32位宽的寄存器单元),每一寄存器单元可作为单一寄存器或作为两个邻近寄存器单元的对齐的若干对被存取。通用寄存器单元通常用于普通计算目的(例如,地址产生、标量算术,和向量算术),月通常提供指令的所有操作数,包括载入/存储指令的地址、数字指令的数据操作数,和向量指令的向量操作数。
处理单元110进一步包括:控制寄存器堆结构170,其含有支持特殊目的功能性(例如,硬件回路、谓词,和/或其他特殊操作数)的一组控制寄存器单元;以及多个系统控制寄存器180,其执行存储器管理活动,且其进一步包括系统状态寄存器(SSR)单元200(下文将结合图5对其进行进一步详细描述)。
图2为说明所述数字信号处理系统内的存储器管理单元的一个实施例的方框图。如图2中所说明,存储器管理单元190进一步包括耦合到一个或一个以上页面表195的转译后备缓冲器(TLB)模块192。
在一个实施例中,处理单元110实施虚拟存储器系统,且页面表195是由所述虚拟存储器系统用来存储由程序产生的虚拟地址191与主存储器120内所含有的物理地址193之间的映射的数据结构。图3为说明存储于数字信号处理系统内的页面表195中的虚拟地址与物理地址的映射300的一个实施例的方框图。如图3中所说明,虚拟地址映射310包括多个虚拟地址191,每一虚拟地址191包含一地址空间识别符(ASID),例如在一虚拟地址(VA)主体(例如,具有虚拟页面编号(VPN)和页面偏移量的32位地址)前面的专用的6位识别标签,从而形成38位的附有标签的虚拟地址。可将每一虚拟地址映射到存储于页面表195内的物理地址映射320内的任何物理地址193。
再参看图2,TLB模块192将地址映射300的高速缓存(cache)存储于多个经编程的TLB条目内。TLB模块192接收由VLIW包内的指令(例如,取指令、载入指令和/或存储指令)产生的虚拟地址191,且进一步将虚拟地址191与每一经编程的TLB条目进行平行比较。如果存在匹配,那么TLB模块192输出对应的经映射物理地址193。否则,如果不存在匹配,那么TLB模块192将TLB遗漏异常194输出到CPU核心140。
如果TLB模块192为硬件管理式缓冲器,且页面表195也是硬件管理式,那么CPU核心140存取页面表195,以检索指定的虚拟存储器地址191的条目。如果CPU核心140定位所述条目和其相关联的数据,那么将所述条目作为新TLB条目写入到TLB模块192中,以用于在TLB模块192内进一步匹配虚拟地址191与物理地址193。
如果TLB模块192和页面表195均为软件管理式实体,那么在触发TLB遗漏异常后,软件程序必须存取页面表195,经由迭代搜寻过程识别遗漏页面信息,且在软件中执行转译。然而,如果软件程序不知道页面信息的位置,那么整个程序可能会耗时且效率低下。因此,需要一种方法来使得软件程序能够识别遗漏页面信息在软件管理式页面表内的位置。
图4为说明数字信号处理系统内的控制寄存器堆结构的一个实施例的方框图。控制寄存器堆结构170包括多个控制寄存器单元,例如回路寄存器171、程序计数器172、用户状态寄存器173、变址寄存器174、谓词寄存器175和用户通用指针176,所述控制寄存器单元经配置以提供对特殊目的特征(例如,硬件回路、谓词、和/或其他特殊操作数)的存取。在一个实施例中,程序计数器(PC)172为32位的寄存器单元,其将数据指针存储到下一含有待在系统100内执行的指令的VLIW包。
图5为说明数字信号处理系统内的系统状态寄存器的一个实施例的方框图。如图5中所说明,在一个实施例中,系统或监督状态寄存器(SSR)200含有多个数据字段,例如CAUSE数据字段210,其可为含有各种异常条件的原因的8位只读字段(如下文结合图6和图7进一步详细描述)。SSR 200可进一步包括(例如)ASID数据字段220,其含有用作虚拟寻址中的标签扩展的6位地址空间识别符(ASID)。
SSR 200也可包括(例如):用户模式(UM)数据字段240,其含有指示用户模式(在位被设定时)或监督模式(在位被清除时)的单一读/写位;以及异常(EX)数据字段250,其含有指示何时异常被接受且当前正在被处理的单一读/写位,所述单一位经设定用于对此异常的当前处理且在执行指令完成后被清除。
SSR 200可进一步包括(例如)中断启用/停用(IE)数据字段260、线程编号(TNUM)数据字段270和一个或一个以上保留的数据字段230和280,所述保留的数据字段230和280被保留用于未来的处理且传回0值(如果被读取)。
图6为说明用以指示软件管理式页面表内的哪一页面在数字信号处理系统内触发异常的系统的一个实施例的方框图。如图6中所说明,软件管理式TLB模块420接收由VLIW包内的指令(例如,取指令)产生的虚拟地址410,且进一步将此虚拟地址410与每一已存储的TLB条目进行比较。如果存在匹配,那么TLB模块420输出对应的经映射物理地址430。否则,如果不存在匹配,那么TLB模块420将TLB遗漏异常440输出到CPU核心450。
如果VLIW包跨越两个页面,其中第一页面作为TLB条目存储于TLB模块420内且第二页面从已存储的TLB条目中遗漏,那么CPU核心450在系统状态寄存器(SSR)470的数据字段内设定指示位460以识别所述TLB遗漏异常(例如,图5中所展示的SSR 200的CAUSE数据字段210),且进一步将所述设定传送到在CPU核心450上运行的软件管理单元(未展示)。此外,CPU核心450在第二数据字段(例如,SSR 200的EX数据字段250)内设定一异常位以指示所述异常被接受且当前正被处理。
如果TLB遗漏异常起始于对应于由程序计数器172内的数据指针识别的包的页面,那么CPU核心450将指示位460设定为0值并将CAUSE数据字段设定为0x00。或者,如果TLB遗漏异常起始于在对应于由程序计数器172内的数据指针识别的包的页面之后的页面,那么CPU核心450将指示位460设定为1值并将CAUSE数据字段设定为0x01。
在一个实施例中,软件管理单元从SSR 470的CAUSE数据字段检索指示位信息,且使用指示位信息在软件管理式页面表490内进一步执行页面表查找480,以便检索遗漏页面信息。随后,将遗漏页面信息写入到TLB模块420内的新TLB条目中。
在一个实施例中,在TLB遗漏异常440产生后所执行的动作可用如下的伪码进行说明:
ELR=PC//保存在TLB中遗漏的包的PC
SSR[EX]=1//在SSR中设定异常位
SSR[CAUSE]=(由于PC页面而遗漏)?0×00:0×01
PC=(EVB)·(4<<2)
图7为说明用以指示软件管理式页面表内的哪一页面在数字信号处理系统内触发异常的方法的一个实施例的流程图。如图7中所说明,在处理区块510中接收指令。在一个实施例中,存储器管理单元190接收指令(例如,取指令)且起始虚拟地址转译程序。
在处理区块520中,检索虚拟地址页面信息。在一个实施例中,从VLIW包内的指令检索虚拟地址页面信息且将所述信息转发到TLB模块420。
在处理区块530中,将虚拟地址页面信息与已存储的虚拟页面条目进行比较。在一个实施例中,TLB模块420将所检索的虚拟地址页面信息与存储于相应TLB条目内的虚拟页面条目进行比较以找到匹配。
在处理区块540中,判定是否存在可获得的匹配。在一个实施例中,如果TLB模块420在其已存储的TLB条目内找到匹配,那么在处理区块570中,用来自匹配的已存储的TLB条目的物理地址页面信息替换虚拟地址页面信息。在一个实施例中,TLB模块420执行虚拟地址转译且用存储于TLB条目内的物理地址页面信息替换来自所接收的指令的虚拟地址页面信息。
在一个实施例中,如果TLB模块420在其已存储的TLB条目中未找到匹配,那么TLB模块420产生TLB遗漏异常,且促使CPU核心450在SSR 470的CAUSE数据字段内设定指示位460。
然后,在处理区块550中,从寄存器470检索识别位信息。在一个实施例中,软件管理单元从SSR 470的CAUSE数据字段检索识别位信息。
在处理区块560中,存取页面表以检索对应的虚拟页面条目信息。在一个实施例中,软件管理单元存取页面表490且使用所检索的识别位信息来执行页面表查找,以便检索对应的虚拟页面条目信息,随后将其输入到TLB模块420内的相应TLB条目中。
最终,程序跳回到处理区块570,在所述处理区块中,TLB模块420执行虚拟地址转译且用存储于新TLB条目内的物理地址页面信息替换来自所接收的指令的虚拟地址页面信息。
所属领域的技术人员将了解,可使用多种不同技术和工艺中的任一者来表示信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在上文描述中可能始终提到的数据、指令、命令、信息、信号、位、符号和码片。
所属领域的技术人员将进一步了解,结合本文中所揭示的实施例描述的各种说明性逻辑区块、模块、电路和算法步骤可实施为电子硬件、计算机软件或两者的组合。为清晰地说明硬件与软件的此可互换性,上文已大体上对各种说明性组件、区块、模块、电路和步骤的功能性进行描述。所述功能性实施为硬件还是软件取决于特定应用和强加于整个系统上的设计约束条件。所属领域的技术人员可对于每一特定应用以各种方式实施所描述的功能性,但此实施决策不应被解释为会导致脱离本发明的范围。
可使用经设计以执行本文中所描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任一组合来实施或执行结合本文所揭示的实施例描述的各种说明性逻辑区块、模块和电路。通用处理器可为微处理器,但在替代方案中,所述处理器可为任何常规的处理器、控制器、微控制器或状态机。处理器也可实施为计算装置的组合,例如DSP与微处理器的组合、多个微处理器的组合、一个或一个以上微处理器和一DSP核心的组合,或任何其他此种配置。
结合本文中所揭示的实施例描述的方法或算法的步骤可直接实施于硬件中、由处理器执行的软件中,或两者的组合中。应了解,这些实施例可用作软件程序或用来支持软件程序,所述软件程序在某种形式的处理器或处理核心(例如计算机的CPU)上被执行,或以其他方式实施或实现于机器或计算机可读媒体上或其内。机器可读媒体包括任何用于以机器(例如,计算机)可读取的形式存储或传输信息的机制。举例来说,机器可读媒体包括RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬磁盘、可移除式磁盘、CD-ROM,或此项技术中已知的存储媒体的任一其他形式。将示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息或将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。处理器与存储媒体可驻存于ASIC中。ASIC可驻存于用户终端中。或者,处理器与存储媒体可作为离散组件驻存于用户终端中。
提供对所揭示实施例的先前描述以使得任何所属领域的技术人员能够制作或使用本发明。对这些实施例的各种修改对于所属领域的技术人员来说将容易显而易见,且可在不偏离本发明的精神或范围的情况下将本文中所界定的一般原理应用于其他实施例。因此,本发明并不希望限于本文中所展示的实施例,而是应符合与本文中所揭示的原理和新颖特征一致的最广泛范围。
Claims (40)
1.一种方法,其包含:
将指示位设定为预定值,以识别由缓冲器模块内的遗漏地址信息起始的异常,所述遗漏地址信息对应于可执行指令包;以及
使用所述指示位从至少一个页面表检索所述地址信息以启用所述缓冲器模块内的地址转译。
2.根据权利要求1所述的方法,其中所述设定进一步包含:
如果所述异常起始于对应于所述可执行指令包的已存储页面,那么将所述指示位设定为0值。
3.根据权利要求1所述的方法,其中所述设定进一步包含:
如果所述异常起始于在对应于所述可执行指令包的已存储页面之后的页面,那么将所述指示位设定为1值。
4.根据权利要求1所述的方法,其中在寄存器的数据字段内设定所述指示位。
5.根据权利要求1所述的方法,其中所述缓冲器模块和所述至少一个页面表为软件管理式实体。
6.根据权利要求1所述的方法,其进一步包含:
接收所述包内的可执行指令,所述可执行指令含有虚拟地址;
将所述虚拟地址与所述缓冲器模块内的每一已存储的条目进行比较以获得匹配地址信息;以及
如果所述匹配地址信息从所述缓冲器模块遗漏,那么起始所述异常。
7.根据权利要求6所述的方法,其中所述可执行指令是取指令。
8.根据权利要求1所述的方法,其中所述包跨越至少两个页面,第一页面作为条目存储于所述缓冲器模块内,且第二页面含有所述遗漏地址信息。
9.根据权利要求4所述的方法,其进一步包含:
在所述寄存器的第二数据字段内设定异常位以指示所述异常当前正被处理。
10.根据权利要求1所述的方法,其中所述缓冲器模块为转译后备缓冲器(TLB)模块。
11.一种集成电路,其包含:
存储器管理单元,其进一步包含耦合到至少一个页面表的缓冲器模块;
中央处理单元,其耦合到所述存储器管理单元内的所述缓冲器模块;以及
软件管理单元,其在所述中央处理单元顶上运行;
所述中央处理单元将指示位设定为预定值,以识别由所述缓冲器模块内的遗漏地址信息起始的异常,所述遗漏地址信息对应于可执行指令包,且所述软件管理单元使用所述指示位从所述至少一个页面表检索所述地址信息,以启用所述缓冲器模块内的地址转译。
12.根据权利要求11所述的集成电路,其中如果所述异常起始于对应于所述可执行指令包的已存储页面,那么所述中央处理单元进一步将所述指示位设定为0值。
13.根据权利要求11所述的集成电路,其中如果所述异常起始于在对应于所述可执行指令包的已存储页面之后的页面,那么所述中央处理单元进一步将所述指示位设定为1值。
14.根据权利要求11所述的集成电路,其中所述指示位被设定在寄存器的数据字段中。
15.根据权利要求11所述的集成电路,其中所述缓冲器模块和所述至少一个页面表为软件管理式实体。
16.根据权利要求11所述的集成电路,其中所述缓冲器模块进一步:接收所述包内的可执行指令,所述可执行指令含有虚拟地址;将所述虚拟地址与所述缓冲器模块内的每一已存储的条目进行比较以获得匹配地址信息;且如果所述匹配地址信息从所述缓冲器模块遗漏,那么起始所述异常。
17.根据权利要求16所述的集成电路,其中所述可执行指令为取指令。
18.根据权利要求11所述的集成电路,其中所述包跨越至少两个页面,第一页面作为条目存储于所述缓冲器模块内,且第二页面含有所述遗漏地址信息。
19.根据权利要求11所述的集成电路,其中所述中央处理单元进一步在所述寄存器的第二数据字段内设定异常位以指示所述异常当前正被处理。
20.根据权利要求11所述的集成电路,其中所述缓冲器模块为转译后备缓冲器(TLB)模块。
21.一种系统,其包含:
用于将指示位设定为预定值以识别由缓冲器模块内的遗漏地址信息起始的异常的装置,所述遗漏地址信息对应于可执行指令包;以及
用于使用所述指示位从至少一个页面表检索所述地址信息以启用所述缓冲器模块内的地址转译的装置。
22.根据权利要求21所述的系统,其进一步包含:
用于在所述异常起始于对应于所述可执行指令包的已存储页面的情况下将所述指示位设定为0值的装置。
23.根据权利要求21所述的系统,其进一步包含:
用于在所述异常起始于在对应于所述可执行指令包的已存储页面之后的页面的情况下将所述指示位设定为1值的装置。
24.根据权利要求21所述的系统,其中所述指示位被设定在寄存器的数据字段内。
25.根据权利要求21所述的系统,其中所述缓冲器模块和所述至少一个页面表为软件管理式实体。
26.根据权利要求21所述的系统,其进一步包含:
用于接收所述包内的可执行指令的装置,所述可执行指令含有虚拟地址;
用于将所述虚拟地址与所述缓冲器模块内的每一已存储的条目进行比较以获得匹配地址信息的装置;以及
用于在所述匹配地址信息从所述缓冲器模块遗漏的情况下起始所述异常的装置。
27.根据权利要求26所述的系统,其中所述可执行指令为取指令。
28.根据权利要求21所述的系统,其中所述包跨越至少两个页面,第一页面作为条目存储于所述缓冲器模块内,且第二页面含有所述遗漏地址信息。
29.根据权利要求24所述的系统,其进一步包含:
用于在所述寄存器的第二数据字段中设定异常位以指示所述异常当前正被处理的装置。
30.根据权利要求21所述的系统,其中所述缓冲器模块为转译后备缓冲器(TLB)模块。
31.一种含有可执行指令的计算机可读媒体,当在处理系统中执行所述可执行指令时,所述可执行指令促使所述处理系统执行包含以下步骤的方法:
将指示位设定为预定值,以识别由缓冲器模块内的遗漏地址信息起始的异常,所述遗漏地址信息对应于可执行指令包;以及
使用所述指示位从至少一个页面表检索所述地址信息以启用所述缓冲器模块内的地址转译。
32.根据权利要求31所述的计算机可读媒体,其中所述设定进一步包含:
如果所述异常起始于对应于所述可执行指令包的已存储页面,那么将所述指示位设定为0值。
33.根据权利要求31所述的计算机可读媒体,其中所述设定进一步包含:
如果所述异常起始于在对应于所述可执行指令包的已存储页面之后的页面,那么将所述指示位设定为1值。
34.根据权利要求31所述的计算机可读媒体,其中所述指示位被设定在寄存器的数据字段中。
35.根据权利要求31所述的计算机可读媒体,其中所述缓冲器模块和所述至少一个页面表为软件管理式实体。
36.根据权利要求31所述的计算机可读媒体,其中所述方法进一步包含:
接收所述包内的可执行指令,所述可执行指令含有虚拟地址;
将所述虚拟地址与所述缓冲器模块中的每一已存储的条目进行比较以获得匹配地址信息;以及
如果所述匹配地址信息从所述缓冲器模块遗漏,那么起始所述异常。
37.根据权利要求36所述的计算机可读媒体,其中所述可执行指令为取指令。
38.根据权利要求31所述的计算机可读媒体,其中所述包跨越至少两个页面,第一页面作为条目存储于所述缓冲器模块内,且第二页面含有所述遗漏地址信息。
39.根据权利要求4所述的计算机可读媒体,其中所述方法进一步包含:
在所述寄存器的第二数据字段中设定异常位以指示所述异常当前正被处理。
40.根据权利要求31所述的计算机可读媒体,其中所述缓冲器模块为转译后备缓冲器(TLB)模块。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/487,284 US7689806B2 (en) | 2006-07-14 | 2006-07-14 | Method and system to indicate an exception-triggering page within a microprocessor |
US11/487,284 | 2006-07-14 | ||
PCT/US2007/073535 WO2008008999A1 (en) | 2006-07-14 | 2007-07-13 | Method and system to indicate an exception-triggering page within a microprocessor |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101490655A true CN101490655A (zh) | 2009-07-22 |
CN101490655B CN101490655B (zh) | 2012-01-11 |
Family
ID=38657525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800266963A Expired - Fee Related CN101490655B (zh) | 2006-07-14 | 2007-07-13 | 在微处理器内指示异常触发页面的方法和系统 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7689806B2 (zh) |
EP (1) | EP2050003A1 (zh) |
JP (1) | JP5032573B2 (zh) |
KR (1) | KR101072645B1 (zh) |
CN (1) | CN101490655B (zh) |
TW (1) | TWI352899B (zh) |
WO (1) | WO2008008999A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107111550A (zh) * | 2014-12-22 | 2017-08-29 | 德克萨斯仪器股份有限公司 | 通过选择性页遗漏转换预取隐藏程序存储器控制器中转换遗漏时延 |
CN110235103A (zh) * | 2017-02-13 | 2019-09-13 | 高通股份有限公司 | 基于块的微架构中具有不同特权等级的模式之间的推测性转变 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7681012B2 (en) * | 2007-01-30 | 2010-03-16 | Texas Instruments Incorporated | Method, system and device for handling a memory management fault in a multiple processor device |
US8429378B2 (en) * | 2010-07-06 | 2013-04-23 | Qualcomm Incorporated | System and method to manage a translation lookaside buffer |
EP3170475B1 (en) * | 2011-03-24 | 2018-10-31 | Kowa Company Ltd. | Intraocular lens |
DE102011120974A1 (de) | 2011-12-13 | 2013-06-13 | Rodenstock Gmbh | Helligkeitsabhängige Anpassung eines Brillenglases |
US9495302B2 (en) | 2014-08-18 | 2016-11-15 | Xilinx, Inc. | Virtualization of memory for programmable logic |
US10613860B2 (en) * | 2016-11-09 | 2020-04-07 | Arm Limited | Computer architecture |
US10908911B2 (en) | 2017-08-18 | 2021-02-02 | International Business Machines Corporation | Predicting and storing a predicted target address in a plurality of selected locations |
US10884747B2 (en) | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Prediction of an affiliated register |
US11150908B2 (en) | 2017-08-18 | 2021-10-19 | International Business Machines Corporation | Dynamic fusion of derived value creation and prediction of derived values in a subroutine branch sequence |
US10534609B2 (en) * | 2017-08-18 | 2020-01-14 | International Business Machines Corporation | Code-specific affiliated register prediction |
US10719328B2 (en) | 2017-08-18 | 2020-07-21 | International Business Machines Corporation | Determining and predicting derived values used in register-indirect branching |
US10884745B2 (en) | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Providing a predicted target address to multiple locations based on detecting an affiliated relationship |
US11150904B2 (en) | 2017-08-18 | 2021-10-19 | International Business Machines Corporation | Concurrent prediction of branch addresses and update of register contents |
US10884746B2 (en) | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Determining and predicting affiliated registers based on dynamic runtime control flow analysis |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5493660A (en) | 1992-10-06 | 1996-02-20 | Hewlett-Packard Company | Software assisted hardware TLB miss handler |
JP3713312B2 (ja) | 1994-09-09 | 2005-11-09 | 株式会社ルネサステクノロジ | データ処理装置 |
US6850243B1 (en) * | 2000-12-07 | 2005-02-01 | Nvidia Corporation | System, method and computer program product for texture address operations based on computations involving other textures |
US6919904B1 (en) * | 2000-12-07 | 2005-07-19 | Nvidia Corporation | Overbright evaluator system and method |
US6778181B1 (en) * | 2000-12-07 | 2004-08-17 | Nvidia Corporation | Graphics processing system having a virtual texturing array |
JP2002259213A (ja) * | 2001-02-28 | 2002-09-13 | Hitachi Ltd | 並列コンピュータシステム |
US20020156977A1 (en) * | 2001-04-23 | 2002-10-24 | Derrick John E. | Virtual caching of regenerable data |
US6778280B2 (en) | 2001-07-06 | 2004-08-17 | Zygo Corporation | Interferometry system and method employing an angular difference in propagation between orthogonally polarized input beam components |
US6523104B2 (en) | 2001-07-13 | 2003-02-18 | Mips Technologies, Inc. | Mechanism for programmable modification of memory mapping granularity |
CN100414518C (zh) * | 2004-11-24 | 2008-08-27 | 中国科学院计算技术研究所 | 改进的虚拟地址变换方法及其装置 |
-
2006
- 2006-07-14 US US11/487,284 patent/US7689806B2/en not_active Expired - Fee Related
-
2007
- 2007-07-13 KR KR1020097002355A patent/KR101072645B1/ko active IP Right Grant
- 2007-07-13 CN CN2007800266963A patent/CN101490655B/zh not_active Expired - Fee Related
- 2007-07-13 EP EP07799586A patent/EP2050003A1/en not_active Withdrawn
- 2007-07-13 JP JP2009520929A patent/JP5032573B2/ja not_active Expired - Fee Related
- 2007-07-13 WO PCT/US2007/073535 patent/WO2008008999A1/en active Application Filing
- 2007-07-16 TW TW096125915A patent/TWI352899B/zh not_active IP Right Cessation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107111550A (zh) * | 2014-12-22 | 2017-08-29 | 德克萨斯仪器股份有限公司 | 通过选择性页遗漏转换预取隐藏程序存储器控制器中转换遗漏时延 |
CN107111550B (zh) * | 2014-12-22 | 2020-09-01 | 德克萨斯仪器股份有限公司 | 用于隐藏程序提取的页遗漏转换时延的方法和装置 |
CN110235103A (zh) * | 2017-02-13 | 2019-09-13 | 高通股份有限公司 | 基于块的微架构中具有不同特权等级的模式之间的推测性转变 |
CN110235103B (zh) * | 2017-02-13 | 2023-08-25 | 高通股份有限公司 | 基于块的微架构中具有不同特权等级的模式之间的推测性转变 |
Also Published As
Publication number | Publication date |
---|---|
US7689806B2 (en) | 2010-03-30 |
JP2009544104A (ja) | 2009-12-10 |
KR20090035583A (ko) | 2009-04-09 |
US20080016316A1 (en) | 2008-01-17 |
TWI352899B (en) | 2011-11-21 |
KR101072645B1 (ko) | 2011-10-11 |
CN101490655B (zh) | 2012-01-11 |
TW200819979A (en) | 2008-05-01 |
JP5032573B2 (ja) | 2012-09-26 |
WO2008008999A1 (en) | 2008-01-17 |
EP2050003A1 (en) | 2009-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101490655B (zh) | 在微处理器内指示异常触发页面的方法和系统 | |
TWI516930B (zh) | 對一範圍之分錄進行轉譯後備緩衝器無效化的方法與裝置 | |
EP3394757B1 (en) | Hardware apparatuses and methods for memory corruption detection | |
US12001842B2 (en) | Hardware apparatuses and methods to switch shadow stack pointers | |
US11176055B1 (en) | Managing potential faults for speculative page table access | |
US20070118720A1 (en) | Technique for setting a vector mask | |
CN103365627A (zh) | 执行单元内的数据转发系统和方法 | |
US10089237B2 (en) | Data filter cache designs for enhancing energy efficiency and performance in computing systems | |
US10628320B2 (en) | Modulization of cache structure utilizing independent tag array and data array in microprocessor | |
US9996356B2 (en) | Method and apparatus for recovering from bad store-to-load forwarding in an out-of-order processor | |
US9367455B2 (en) | Using predictions for store-to-load forwarding | |
EP4002131A2 (en) | Sequestered memory for selective storage of metadata corresponding to cached data | |
US10846239B2 (en) | Managing translation lookaside buffer entries based on associativity and page size | |
US11847053B2 (en) | Apparatuses, methods, and systems for a duplication resistant on-die irregular data prefetcher | |
CN111984317A (zh) | 用于对存储器中的数据进行寻址的系统和方法 | |
EP3491521A1 (en) | Apparatus and method supporting code optimization | |
WO2005010750A2 (en) | Store-to-load forwarding buffer using indexed lookup | |
US9405690B2 (en) | Method for storing modified instruction data in a shared cache | |
EP4020227A1 (en) | Dynamic shared cache partition for workload with large code footprint | |
US7900023B2 (en) | Technique to enable store forwarding during long latency instruction execution | |
CN109683959B (zh) | 处理器的指令执行方法及其处理器 | |
CN113849222A (zh) | 流水线化乱序页未命中处理程序 | |
CN114661228A (zh) | 具有元数据位的64位虚拟地址和不会由于元数据位的非规范值而失败的规范性检查 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120111 Termination date: 20210713 |