CN102112966B - 用于推测式中断向量预取的设备及方法 - Google Patents
用于推测式中断向量预取的设备及方法 Download PDFInfo
- Publication number
- CN102112966B CN102112966B CN200980129767.1A CN200980129767A CN102112966B CN 102112966 B CN102112966 B CN 102112966B CN 200980129767 A CN200980129767 A CN 200980129767A CN 102112966 B CN102112966 B CN 102112966B
- Authority
- CN
- China
- Prior art keywords
- instruction
- exception condition
- cache
- address
- interrupt
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000004044 response Effects 0.000 claims abstract description 27
- 230000015654 memory Effects 0.000 claims description 111
- 239000000284 extract Substances 0.000 claims description 32
- 230000008569 process Effects 0.000 claims description 31
- 230000002159 abnormal effect Effects 0.000 claims description 20
- 238000012913 prioritisation Methods 0.000 claims description 13
- 238000001514 detection method Methods 0.000 claims description 10
- 230000005055 memory storage Effects 0.000 claims description 10
- 238000007689 inspection Methods 0.000 claims description 2
- 238000005259 measurement Methods 0.000 claims 1
- 238000000605 extraction Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 5
- 230000004087 circulation Effects 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000000875 corresponding effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- CVOFKRWYWCSDMA-UHFFFAOYSA-N 2-chloro-n-(2,6-diethylphenyl)-n-(methoxymethyl)acetamide;2,6-dinitro-n,n-dipropyl-4-(trifluoromethyl)aniline Chemical compound CCC1=CC=CC(CC)=C1N(COC)C(=O)CCl.CCCN(CCC)C1=C([N+]([O-])=O)C=C(C(F)(F)F)C=C1[N+]([O-])=O CVOFKRWYWCSDMA-UHFFFAOYSA-N 0.000 description 1
- 208000000044 Amnesia Diseases 0.000 description 1
- 239000004280 Sodium formate Substances 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 231100000863 loss of memory Toxicity 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- 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
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- 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
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3865—Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
-
- 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
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- 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
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- 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
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明描述用于中断处理的技术。在处理器中的指令管线的一个或一个以上级中检测异常条件。响应于所述检测到的异常条件且在所述处理器响应于所述检测到的异常条件而接受中断之前,检查指令高速缓冲存储器看在中断处置器的起始地址处是否存在指令。当所述指令不存在于所述指令高速缓冲存储器中时,从所述指令高速缓冲存储器以上的存储装置预取中断向量表的起始地址处的指令,以将所述指令加载到所述指令高速缓冲存储器中,借此使得到所述处理器响应于所述检测到的异常条件而接受所述中断时所述指令在所述指令高速缓冲存储器中可用。
Description
技术领域
本发明大体来说涉及用于预取处理器指令的技术,且特定来说涉及基于异常条件的推测式中断向量预取。
背景技术
例如手机、膝上型计算机、个人数据助理(PDA)及其类似物等许多便携式产品利用例如通信及多媒体程序等处理器执行程序。用于这些产品的处理系统包括用于存储指令及数据的处理器与存储器复合体。大容量主存储器通常具有与处理器循环时间相比慢的存取时间。因此,存储器复合体按照惯例是基于高速缓存存储器的容量及性能而组织成阶层,其中最高性能及最低容量高速缓冲存储器最接近处理器定位。数据及指令高速缓冲存储器可为分离或统一的,或分离与统一的组合。举例来说,一阶指令高速缓冲存储器及一阶数据高速缓冲存储器大体直接耦合到处理器。而二阶统一高速缓冲存储器可耦合到一阶(L1)指令及数据高速缓冲存储器。此外,系统存储器大体耦合到二阶(L2)统一高速缓冲存储器。也可提供到例如快闪存储器、硬盘驱动器、光盘驱动器及其类似物的外部存储器的耦合。
一阶指令高速缓冲存储器通常以处理器速度操作,且二阶统一高速缓冲存储器操作比一阶高速缓冲存储器慢,但具有比系统存储器的存取时间快的存取时间。替代的存储器组织有许多(例如)除L1及L2高速缓冲存储器以外还具有三阶高速缓冲存储器的存储器阶层。另一存储器组织可仅使用一阶高速缓冲存储器及系统存储器。
支持可使用指令高速缓冲存储器的存储器阶层的原因的多个原理之一是指令倾向于从存储器中的顺序位置经存取。通过使高速缓冲存储器保持最近所使用的代码区段,处理器可以较高性能水平执行。因为程序还含有分支、调用及返回类型指令,且支持例如中断等其它非顺序操作,所以可仅针对相对短的代码区段维持顺序局部性(sequentiallocality)的原理。归因于这些非顺序操作,对指令高速缓冲存储器的指令提取可能未中(miss),从而使得所述指令提取应用于以较高存储器容量及较慢存取时间操作的下一较高存储器等级。未中可使处理器停止等待指令。为了保持高处理器性能,高速缓冲存储器未中率应为低。
当中断发生时,检测到所述中断事件的时间与相关联中断处置器的位置处的指令已经提取且可开始执行时的时间之间存在等待时间。所述等待时间可部分地归因于所述中断处置器不驻留于所述指令高速缓冲存储器中,从而导致用以在所述中断处置器可执行之前检索指令的长的未中及提取操作,从而降低处理器性能。一种减小所述等待时间的方法包括将中断处置器锁定于所述指令高速缓冲存储器中,但此方法有效地减小所述高速缓冲存储器的大小,此可能进一步降低处理器性能。
发明内容
本发明认可,在未高速缓冲存储相关联中断处置器的情况下,消除或减小在检测到中断事件时的时间与所述中断事件的相关联中断处置器指令可用于执行时的时间之间的存储器存取等待时间可改善处理器性能。为达成这些目的,本发明的实施例提出一种用于中断处理的方法。如下文更详细提出,在处理器中的指令管线的一个或一个以上级中检测由指令的失败执行引起的异常条件。响应于所述检测到的异常条件且在所述处理器响应于所述检测到的异常条件而接受中断之前,针对中断处置器的起始地址处的指令的存在而检查指令高速缓冲存储器。当所述指令不存在于所述指令高速缓冲存储器中时,从所述指令高速缓冲存储器以上的存储装置预取所述中断处置器的所述起始地址处的所述指令,以将所述指令加载到所述指令高速缓冲存储器中,借此使到所述处理器响应于所述检测到的异常条件而接受所述中断时所述指令在所述指令高速缓冲存储器中可用。
本发明的另一实施例提出一种用于利用中断向量表的中断处理的方法。在处理器中的指令管线的一个或一个以上级中检测异常条件。响应于所述检测到的异常条件且在所述处理器响应于所述检测到的异常条件而接受中断之前,针对保持于中断向量表中的指令的存在而检查指令高速缓冲存储器。当所述指令不存在于所述指令高速缓冲存储器中时,从所述指令高速缓冲存储器以上的存储装置预取所述指令,以将所述指令及所述向量表加载到所述指令高速缓冲存储器中。在确定所述指令为程序计数器相关分支指令后,即刻计算与所述检测到的异常条件相关联的中断处置器的分支目标地址。针对所述分支目标地址处的中断处置器指令的存在而检查所述指令高速缓冲存储器。当所述中断处置器指令不存在于所述指令高速缓冲存储器中时,从所述指令高速缓冲存储器以上的存储器预取所述分支目标地址处的所述中断处置器指令,以将所述中断处置器指令加载到所述指令高速缓冲存储器中,借此使到所述处理器响应于所述检测到的异常条件而接受所述中断时所述指令在所述指令高速缓冲存储器中可用。
本发明的另一实施例提出一种具中断处理逻辑的处理器。在处理器管线的各种级中利用异常检测逻辑电路以检测一个或一个以上异常条件。优先级排序逻辑电路用于基于选自一个或一个以上检测到的异常条件的最高优先级的检测到的异常条件的预定优先级而产生异常地址。第一逻辑电路用于响应于所述所选异常条件且在所述处理器响应于所述检测到的异常条件而接受中断之前针对所述异常向量地址处的指令的存在而检查指令高速缓冲存储器。第二逻辑电路用于在所述指令不存在于所述指令高速缓冲存储器中时在所述指令高速缓冲存储器以上的存储装置中预取所述异常向量地址处的所述指令,以便将所述指令加载到所述指令高速缓冲存储器中,借此使到所述处理器响应于所述检测到的异常条件而接受所述中断时所述指令在所述指令高速缓冲存储器中可用。
所属领域的技术人员将易于从以下实施方式了解本发明的其它实施例,其中以说明方式展示并描述本发明的各种实施例。如将认识到,本发明能够具有其它及不同实施例且其若干细节能够具有在各种其它方面的修改,其均不脱离本发明。因此,应将图式及实施方式视为本质上为说明性的而非限制性的。
附图说明
图1说明无线通信系统;
图2为支持利用独立中断向量地址的推测式中断地址预取的示范性第一处理器与存储器复合体的第一功能框图;
图3为基于图2的第一功能框图说明用于推测式中断预取的第一过程的第一流程图;
图4为支持利用从中断向量表产生的中断地址的推测式中断地址预取的示范性第二处理器与存储器复合体的第二功能框图;
图5为基于图4的第二功能框图说明用于推测式中断预取的第二过程的第二流程图;以及
图6说明可合适地用于基于异常条件的预定优先级而产生中断向量地址的示范性优先级异常逻辑电路。
具体实施方式
下文结合附加图式所阐述的实施方式既定作为对本发明的各种示范性实施例的描述,且既定不表示可实践本发明的仅有实施例。实施方式包括出于提供对本发明的详尽理解的目的的特定细节。然而,对所属领域的技术人员来说将显而易见,可在无这些特定细节的情况下实践本发明。在一些例子中,以框图形式展示众所周知的结构及组件以避免混淆本发明的概念。
用于根据本发明的教示被操作或用于根据本发明的教示执行操作的计算机程序代码或“程序代码”可用高阶编程语言如C、C++、JAVA、Smalltalk、JavaScript、VisualBasic、TSQL、Perl或用各种其它编程语言写出。用于目标处理器架构的程序也可用本机汇编语言直接写出。本机汇编程序使用机器层级二进制指令的指令助忆表示。如本文中所使用的程序代码或计算机可读媒体指代机器语言代码,例如目标代码,其格式可由处理器理解。
图1说明可有利地使用本发明的实施例的示范性无线通信系统100。出于说明的目的,图1展示三个远程单元120、130及150,及两个基站140。将认识到,普通无线通信系统可具有更多远程单元及基站。远程单元120、130及150包括硬件组件、软件组件或两者(如组件125A、125B及125C所表示),所述组件已经调适以体现如下文进一步论述的本发明。图1展示来自基站140和远程单元120、130及150的前向链路信号180,以及从远程单元120、130及150到基站140的反向链路信号190。
在图1中,远程单元120展示为移动电话,远程单元130展示为便携式计算机,且远程单元150展示为在无线本地环路系统中的固定位置远程单元。通过实例,所述远程单元可替代地为手机、寻呼机、对讲机、手持式个人通信系统(PCS)单元、例如个人数据助理等便携式数据单元,或例如仪表读取设备等固定位置数据单元。尽管图1说明根据本发明的教示的远程单元,但本发明不限于这些示范性说明单元。本发明的实施例可合适地用于具有一具有存储器阶层的至少两个层级(例如,如下文进一步详细描述的一阶高速缓冲存储器及二阶高速缓冲存储器)的处理器的任一装置中。
高速缓冲存储器可包含耦合到随机存取存储器(RAM)的内容可定址存储器(CAM)。高速缓冲存储器是通过比较存储器地址与存储于CAM中的地址来存取。如果所述存储器地址匹配CAM地址,那么高速缓冲存储器指示“命中”且可另外提供来自RAM中的对应于所述匹配CAM地址的位置的一行(line)数据或指令。如果所述存储器地址不与存储于CAM中的任一地址匹配,那么高速缓冲存储器指示“未中”。未中可对高速缓冲存储器行中的任何地方的指令或数据单元存取发生。当未中发生时,大体以含有所述未中指令或数据的新行置换高速缓冲存储器中的行。一阶高速缓冲存储器中的未中大体触发L2高速缓冲存储器存取,L2高速缓冲存储器存取需要比一阶高速缓冲存储器存取多的处理循环。L2高速缓冲存储器中的未中触发对系统存储器的存取,此招致更大延迟。
用以通过使用CAM地址比较来确定地址是否命中于高速缓冲存储器中的过程是相对功率高效的。然而,在命中的情况下从高速缓冲存储器RAM检索指令或数据是相对功率低效的。因此,处理器可利用指令高速缓冲存储器中的预取操作以确定所要指令是否存储于所述高速缓冲存储器中而不招致实际上在高速缓冲存储器存取时检索指令的功率损失。如本文中所使用,术语“预取”或“预取操作”指代在不从高速缓冲存储器检索指令或数据的情况下产生命中或未中的有限高速缓冲存储器存取。预取操作大体存取高速缓冲存储器的CAM的内容,但不存取高速缓冲存储器的RAM的内容。如本文中所使用,术语“提取”或“提取操作”指代包括产生命中或未中且在命中的情况下从高速缓冲存储器检索指令或数据的高速缓冲存储器存取的存储器操作。提取操作存取高速缓冲存储器的CAM及高速缓冲存储器的RAM,且所存取的指令既定用于执行。
指令预取涉及基于指令流处理来执行指令高速缓冲存储器CAM地址比较。举例来说,当对一位于一高速缓冲存储器行中的任何地方的指令发生未中时,提取所述高速缓冲存储器行且可预取下一顺序高速缓冲存储器行。始终预取下一高速缓冲存储器行的此技术是基于下一高速缓冲存储器行含有不久将需要的指令的假设。然而,指令的顺序存取的局部性原理(例如)归因于分支、调用、返回、中断或其类似者而毫无疑问会在程序中的某一点处失败。作为一个实例,归因于异常条件或外部事件的中断停止正常的指令流处理,且将重定向强加于对应于引起所述中断的事件的中断处置器。中断向量表是一种可用于建立中断事件与中断处置器的对应的技术。当从高速缓冲存储器提取中断向量表时,始终预取下一高速缓冲存储器行的常规技术提取可能未使用的指令且因此引起存储器存取带宽的不必要损失,增加功率使用,且降低处理器性能。
除提取操作及预取操作以外,针对根据本发明的指令高速缓冲存储器操作定义“推测式中断预取”操作及“非执行式推测式中断提取(speculative interrupt fetch withoutexecute)”操作。推测式中断预取是产生命中或未中而在“命中”指示的情况下不从指令高速缓冲存储器检索指令的有限高速缓冲存储器存取。基于由一指令的失败执行引起的检测到的异常条件而推测式地预取指令。在确定指令将取得相关联中断之前推测式地预取指令。应注意,在许多情况下,可推测式地预取多个指令,例如驻留于一指令高速缓冲存储器行中的指令。用以确定何时利用根据本发明的推测式中断预取操作的过程在下文中得以进一步详细描述。
非执行式推测式中断提取操作是包括产生命中或未中且在命中的情况下从指令高速缓冲存储器检索指令或在未中的情况下从较高等级存储器检索指令的指令高速缓冲存储器存取的存储器操作。基于检测到的异常条件推测式地提取指令,以便确定推测式提取地址处的指令的类型,且如果确定所述指令为PC相关分支,那么计算与程序计数器的指定偏移以作为分支目标地址。不执行所述推测式地提取的指令。用以确定何时利用根据本发明的非执行式推测式中断提取操作的过程在下文中得以进一步详细描述。应注意,在许多情况下,可非执行式推测式地提取例如驻留于指令高速缓冲存储器行中的指令等多个指令。
图2为支持利用独立中断向量地址的推测式中断地址预取的示范性第一处理器与存储器复合体200的第一功能框图。所述第一处理器与存储器复合体200包括中断逻辑电路202、预取逻辑电路204、提取逻辑电路206、一阶(L1)指令高速缓冲存储器(I高速缓冲存储器)208、二阶高速缓冲存储器(L2高速缓冲存储器)210、解码逻辑电路212、指令队列(IQ)214及执行管线级逻辑电路216。
所述预取逻辑电路204包括多路复用器218及预取地址寄存器220。所述提取逻辑电路206包括若干提取级,例如第一提取级222、第二提取级223、第三提取级224,以及用于计算顺序地址的相关逻辑电路,例如异常提取地址寄存器225、多路复用器226及增量器(Incr)227。所述L1 I高速缓冲存储器208包括内容可定址存储器(CAM)单元207、随机存取存储器(RAM)单元209、到所述CAM单元207的提取存取接口228、在所述CAM单元207内部的用以产生命中或未中(H/M)信号229的H/M逻辑电路,及耦合到所述RAM单元209的指令总线230,所述指令总线230在“命中”的情况下提供一个或多个所提取指令。所述第三提取级224可产生第一异常条件(ExCond)A 231,例如预取放弃信号。所述指令队列(IQ)214用于将指令排队列且将所述指令分配到执行管线,且可分别产生异常条件(ExCond)B 233及C 235,例如未定义指令检测信号及数据放弃信号。
所述第一提取级222用于经由所述提取存取接口228存取所述L1I高速缓冲存储器208的CAM单元207,以作为指令提取操作中的第一步骤。所述第二提取级223用于存取所述L1I高速缓冲存储器208的RAM单元209,以作为所述指令提取操作中的第二步骤。所述第三提取级224用于分析作为在“命中”的情况下从所述L1I高速缓冲存储器208返回的一行指令的数据且将所述数据分成个别指令。又,所述第三提取级224处理一指令提取操作是否未中。在检测到未中及未中的类型后,所述第三提取级224即刻将请求发送到L1I高速缓冲存储器208以上的较高等级的存储装置,例如L2高速缓冲存储器210。
在解码逻辑电路212中解码指令且在队列逻辑电路214中将所述指令排队列以供分配到适当执行管线。执行管线级逻辑电路216是由(例如)管线A操作(例如算术及相关指令操作)及管线B操作(例如存储器存取及相关指令操作)构成。特定来说,随机存取存储器(RAM)管线A级234指代通过所述A操作存取的通用寄存器(GPR)堆。执行A级236执行分派到管线A的指令且可分别产生异常条件(ExCond)E 237及F 239,分别例如监督器调用信号及监视器调用信号。RAM管线B级238指代通过所述B操作存取的GPR堆。执行B级240执行分配到管线B的指令且可产生异常条件(ExCond)D 241,例如数据对准放弃信号。应注意,可在通过指令在处理器管线中的相对位置检测到异常条件时比较所述指令,以使得如果第一指令在管线中比第二指令深,那么大体认为第一指令比第二指令旧。(例如)可能影响此比较的管线保持情形是通过中断逻辑电路202说明。
中断逻辑电路202追踪先前指令的状态以确定所述先前指令是否能够无故障地完成,所述状态包括从各种管线级接收的异常条件(ExCond)A到F 243。举例来说,当一管线级报告所述管线级含有的指令具有异常时,所述管线级可保持操作,直到管线清除发生为止。中断逻辑电路202检验正在报告异常的管线级。在管线事件的矩阵内,通过目前存在于所述矩阵中的任何较旧未用(uncommitted)指令的缺少而确定检测到异常的管线级是否含有最旧的未用指令。基本上,中断逻辑电路202基于存在的异常条件的优先级排序来提供推测式预取异常地址242,如下文关于图6更详细地描述。中断逻辑202还基于管线信息与存在的异常条件的优先级排序的组合而将中断地址245提供给异常提取地址寄存器225。
为论述清楚起见,未展示通常可连接到第一处理器与存储器复合体200的外围装置及系统存储器。第一处理器与存储器复合体200可合适地用于本发明的各种实施例中,例如用于执行存储于(例如)指令高速缓冲存储器208及210中的程序代码的组件125A到125C。
当执行程序代码时,第一处理器与存储器复合体200可能遇到一个或一个以上异常条件,例如异常条件231、233、235、237、239或241。当检测到异常条件时,对所述异常条件进行优先级排序,且产生推测式预取异常地址242,且在预取操作的执行中使用所述地址,如下文关于图3进一步详细地描述。直到到达可进行中断将得到处理(如下文在框306中所提及)的确定的时间点,异常提取地址寄存器225的内容才为有效的。大体来说,第一处理器与存储器复合体200内存在可利用预取操作的其它情形。在图2中,针对其它预取类型提供输入244,其可为基于软件或基于硬件的以解决这些情形。
图3为说明利用例如图2的系统的系统的推测式中断预取的第一过程300的第一流程图。第一过程300在框302处开始,其中在第一处理器与存储器复合体200中检测到异常条件。在决策框304处,进行关于先前指令是否能够无故障地完成的确定。归因于管线的长度及管线中指令的类型,此确定可能耗费若干循环,在此时间期间遵循决策框304的“否”支路。举例来说,加载指令可在所述管线中,且用以提取所述指定加载的数据的操作可经历一阶数据高速缓冲存储器中的未中、L2高速缓冲存储器210中的未中,且可能必须存取系统存储器以便检索指定数据。此操作序列可能需要几百个循环来完成。
所述加载指令可如上文所提及而无故障地完成执行,或其自身可使得另一异常发生。管线逻辑电路确定此实例的加载指令是否为比引起框302处的初始异常条件检测的指令旧的指令。如果所述加载指令为较旧指令,那么较旧加载指令将使得管线中的较新指令(包括引起初始异常的指令)被清除。在决策框305处,如果未检测到管线清除情形,那么第一过程300返回到决策框304。在决策框305处,如果检测到管线清除,那么第一过程300进行到框307。在框307处,清除管线且第一过程300返回到程序流程。
在框306处,在已进行对决策框304处的条件的肯定确定之后,接受中断以供处理,在所述处理中改变处理器状态且提取中断处置器的地址。在框308处,执行与所述中断相关联的中断处置器,且在所述中断处置器完成后,第一过程300返回到正常程序流程。
框可在框310处有利地开始操作的并行集合而不是等待进行决策框304的确定。在框310处,通过对检测到的异常条件进行优先级排序而开始所述中断处置器的推测式预取。在框312处,基于异常条件的类型,例如异常条件231、233、235、237、239或241中的一者的类型,由多路复用器218选择中断向量地址,将所述中断向量地址加载到预取地址寄存器220中,且请求推测式预取操作。在框314处,由多路复用器226选择所述所请求的推测式预取操作,且通过仅存取L1I高速缓冲存储器208的CAM部分来起始第一提取级222操作,从而返回命中或未中指示但不提取指令。在决策框316处,基于具有“命中”的第一提取级222操作,遵循决策框316的“是”支路到框318,此指示所述中断向量地址处的指令存在于L1I高速缓冲存储器208中。如果第一提取级222处的预取操作返回未中,那么决策框316进行到框320以从较高等级存储器(例如,从L2高速缓冲存储器或从系统存储器)请求所述中断向量地址处的指令。一旦经返回,则含有所述所请求的指令的高速缓冲存储器行被写入到L1I高速缓冲存储器208中。应注意,各种异常条件的中断向量地址是可基于架构定义或可为可由软件编程的独特地址。在已预取所述中断向量地址处的指令且将所述指令加载到L1I高速缓冲存储器208中之后,第一过程300大体在第一处理器与存储器复合体200响应于检测到的异常条件而接受所述中断之前进行到框318。在框318处,结束所述中断处置器的推测式预取,且第一处理器与存储器复合体200返回到正常程序流程。
图4为支持推测式中断地址预取的示范性第二处理器与存储器复合体400的第二功能框图。此方法利用存储于中断向量表中的中断地址。第二处理器与存储器复合体400包括中断逻辑电路402、预取逻辑电路404、提取逻辑电路406、指令高速缓冲存储器(I高速缓冲存储器)408、二阶高速缓冲存储器(L2高速缓冲存储器)410、解码逻辑电路412、指令队列(IQ)414,及执行管线级逻辑电路416。
预取逻辑电路404包括加法器417、多路复用器418、分支检测及偏移产生逻辑电路419,及预取地址寄存器420。提取逻辑电路406包括若干提取级,例如第一提取级422、第二提取级423、第三提取级424,及相关逻辑电路,例如异常提取地址寄存器425、多路复用器426及增量器(Incr)427。I高速缓冲存储器408包括提取存取接口428、在所述I高速缓冲存储器内部的用以产生命中或未中(H/M)信号429的H/M逻辑电路,及在所述I高速缓冲存储器内部的在“命中”的情况下在I高速缓冲存储器总线430上提供一个或多个所提取指令的指令提取功能。第三提取级424可产生异常条件(ExCondA)输出431,例如预取放弃信号。指令队列(IQ)414用于将指令排队列且将所述指令分配到执行管线,且可分别产生异常条件(ExCond)B输出433及C输出435,例如未定义指令检测信号及数据放弃信号。
执行管线级逻辑电路416是由(例如)管线A操作(例如算术及相关指令操作)及管线B操作(例如存储器存取及相关指令操作)构成。特定来说,随机存取存储器(RAM)管线A级434指代通过所述A操作进行的通用寄存器(GPR)堆存取。执行A级436执行分派到管线A的指令且可分别产生异常条件(ExCond)E输出437及F输出439,例如监督器调用信号及监视器调用信号。RAM管线B级438指代通过所述B操作进行的GPR堆存取。执行B级440执行分派到管线B的指令且可产生异常条件(ExCond)D输出441,例如数据对准放弃信号。中断逻辑电路402以类似于中断逻辑电路202的方式追踪先前指令的状态以确定所述先前指令是否能够无故障地完成。
为说明及论述的清楚起见,未展示可连接到第二处理器与存储器复合体400的外围装置及系统存储器。第二处理器与存储器复合体400可合适地用于本发明的各种实施例中,例如用于执行(例如)可存储于(例如)高速缓冲存储器408及410中的程序代码的组件125A到125C。
当执行程序代码时,处理器与存储器复合体400可能遇到一个或一个以上异常条件,例如异常条件431、433、435、437、439或441。当检测到异常条件时,对所述异常条件进行优先级排序,且根据本发明,产生推测式预取异常地址442以在预取操作的执行中使用,如下文关于图5进一步详细地描述。大体来说,第二处理器与存储器复合体400内存在可利用预取操作的其它情形,例如经由触发预期高速缓冲存储器行的预取以改善性能的软件。这些其它情形是由其它预取类型444指示。
图5为基于图4的第二功能框图说明推测式中断预取的第二过程500的第二流程图。第二过程500在框502处开始,其中在第二处理器与存储器复合体400中检测到异常条件。在决策框504处,作出关于先前指令是否能够无故障地完成的确定。归因于管线的长度及管线中指令的类型,此确定可能耗费若干循环,在此时间期间遵循决策框504的“否”支路。举例来说,加载指令可在所述管线中且用以提取所述指定加载的数据的操作可经历一阶数据高速缓冲存储器(未图示)中的未中、L2高速缓冲存储器410中的未中,且可能必须存取系统存储器以便检索指定数据。此操作序列可能需要几百个循环来完成。在框506处,在已作出决策框504的确定之后,接受中断以供处理,所述处理包括改变处理器状态及提取中断处置器的地址。在框508处,执行与所述中断相关联的中断处置器,且在所述中断处置器完成时,第二过程500返回到正常程序流程。
框在框510处有利地开始操作的并行集合而不是等待进行决策框504的确定。在框510处,以向量表的推测式预取及所述异常条件的优先级排序开始所述中断处置器的推测式预取。在框512处,基于异常条件的类型,例如异常条件431、433、435、437、439或441,由多路复用器418选择中断向量表地址,将所述中断向量表地址加载到预取地址寄存器420中,且请求非执行式提取操作。举例来说,提取指令操作包含发生的第一提取级422操作及第二提取级423操作,从而使得从I高速缓冲存储器408RAM读取一个或多个指令。特定的所提取指令将接着传递到解码级412以开始所述执行操作。非执行式提取操作包含发生的第一提取级422操作及第二提取级423操作,其将从I高速缓冲存储器408RAM读取一个或多个指令。然而,在此非执行式提取情况下,特定的所提取指令将不传递到解码级412。实情为,将检查特定的所提取指令以确定其是否为PC相关分支指令。这些管线操作可通过追踪所述提取操作的属性来控制,从而指示(例如)提取操作、预取操作或非执行式提取操作属性。
在框514处,由多路复用器426选择所请求的非执行式提取操作,且起始第一提取级422操作,从而返回“命中”或“未中”指示。在决策框516处,基于具有“命中”的第一提取级422操作,遵循决策框516的“是”支路到决策框518,此指示中断向量表在I高速缓冲存储器408中且返回在与异常条件相关联的地址处的指令。在框514处执行的提取操作是有利的非执行式提取操作,其用于确定所提取的指令的类型。如果第一提取级422处的非执行式提取操作返回未中,那么决策框516进行到框520以从较高等级存储器(例如,从L2高速缓冲存储器410)请求中断向量表的内容。在对所述中断向量表的存取期间,还获得所述表内的指令,所述指令包括在与异常条件相关联的向量地址处的指令。在与特定异常类型相关联的中断向量表内的地址处的指令大体为PC相关分支指令。PC相关分支指令的使用允许与异常条件相关联的中断处置器在由处理器架构指定的限制内位于第二处理器与存储器复合体400的存储器空间内的任何地方。在已非执行式地推测式地提取所述向量地址处的指令且将指令加载到I高速缓冲存储器408中之后,第二过程500进行到决策框518。
在决策框518处,检查在与异常条件相关联的地址处的指令以确定所述指令是否为程序计数器(PC)相关分支指令。此确定可在分支检测及偏移产生框419中进行。如果所述指令并非PC相关分支指令,那么第二过程500进行到框532。在框532处,结束所述中断处置器的推测式预取,且第二处理器与存储器复合体400返回到正常程序流程。
返回到决策框518,如果所述指令为PC相关分支指令,那么第二过程500进行到框522。在框522处,通过在加法器417中将地址偏移值421加到推测式预取异常地址442而计算分支目标地址,所述加法器417产生分支目标地址用于多路复用器418。应注意,加法器417可为可用于此额外目的的预先存在加法器,借此最小化用于实施本发明的硬件要求。在框524处,多路复用器418选择待加载到预取地址寄存器420中的加法器输出。在框526处,在第一提取操作422中选择分支目标地址处的指令的推测式预取。在决策框528处,进行分支目标地址处的指令是否存在于I高速缓冲存储器408中的确定。如果所述推测式预取操作返回命中指示且无指令经提取,那么所述确定为肯定的:分支目标地址处存在指令,此指示与异常条件相关联的中断处置器的至少第一指令在I高速缓冲存储器408中。第二过程500接着大体在第二处理器与存储器复合体400响应于检测到的异常条件而接受所述中断之前进行到框532,以结束所述中断处置器的推测式预取。
返回到决策框528,如果所述推测式预取操作返回未中指示,那么所述确定指示分支目标地址处的指令不存在于I高速缓冲存储器408中。在框530处,从较高等级存储器(例如,从L2高速缓冲存储器或从系统存储器)请求分支目标地址处的指令。一旦含有分支目标地址处的指令的高速缓冲存储器行加载到I高速缓冲存储器408中,则第二过程500进行到框532以结束所述中断处置器的推测式预取。
图6说明可合适地用于基于异常条件的预定优先级产生中断向量地址的示范性优先级异常逻辑电路600。举例来说,可以异常条件F为最高优先级且以优先级次序F、E、D、C、B对异常条件A到F进行优先级排序,其中异常条件A为最低优先级。优先级异常逻辑电路600包括由多路复用器602到606说明的一组选择器,所述多路复用器分别响应选择指示612到616。与每一异常条件相关联的地址大体由处理器架构预定且由处理器与存储器复合体(例如第一处理器与存储器复合体200或第二处理器与存储器复合体400)分别提供。与异常条件A到F相关联的地址分别存储于(例如)存储单元620到625中,所述存储单元可为由处理器架构识别的专用寄存器。基于异常条件的预定优先级的中断向量地址存储于存储单元630中。
选择指示612到616是由处理器与存储器复合体内的检测逻辑电路设定。举例来说,当检测到异常条件F时,将启用选择指示612。如果异常条件F存在,那么还将启用异常条件E或F存在选择指示613,从而经由多路复用器602及603将与异常条件F相关联的地址从存储单元625传递到异常地址存储单元630。如果异常条件F不存在,那么由多路复用器602选择来自存储单元624的与异常条件E相关联的地址。如果检测到异常条件E,那么将启用异常条件E或F存在指示613,从而经由多路复用器602及603将与异常条件E相关联的地址从存储单元624传递到异常地址存储单元630。
如果未检测到异常条件E或F中的任一者,那么可确定接下来的优先级异常条件。举例来说,如果检测到异常条件A及C,但未检测到异常条件B、D、E或F,那么将启用选择指示C存在614及选择指示B或C存在615,从而允许来自存储单元622的异常条件C的地址经由多路复用器604、605、606及603被传递到异常地址存储单元630。应注意,一旦异常条件由异常中断处置,则停用针对所述异常条件的选择信号。归因于与异常中断相关联的管线清除,可能一直待决的任何较低优先级异常条件被取消。如果与多个异常条件相关联的指令回流通过管线,那么可能再次检测到所述异常条件。在此情形下,将任何异常检测作为新检测情形来处理。
结合本文中所揭示的实施例所描述的各种说明性逻辑块、模块、电路、元件及/或组件可通过下列各者来实施或执行:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑组件、离散门或晶体管逻辑、离散硬件组件,或其经设计以执行本文中所描述的功能的任何组合。通用处理器可为微处理器,但在替代实施例中,所述处理器可为任何常规处理器、控制器、微控制器或状态机。处理器也可实施为计算组件的组合,例如,DSP与微处理器的组合、多个微处理器、结合DSP核心的一个或一个以上微处理器,或适用于所要应用的任何其它此配置。
结合本文中所揭示的实施例所描述的方法可直接体现于硬件中、由处理器执行的软件模块中或两者的组合中。软件模块可驻留于RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可装卸式盘、CD-ROM或此项技术中已知的任何其它形式的存储媒体中。存储媒体可耦合到处理器,以使得处理器可从存储媒体读取信息及写入信息到存储媒体。在替代例中,存储媒体可与处理器成一体式。
尽管在阶层式存储器环境中的指令高速缓冲存储器的说明性实施例的情形中揭示本发明,但应认识到,一般所属领域的技术人员可使用与上文论述及所附权利要求书一致的广泛多种实施方案。
Claims (19)
1.一种用于中断处理的方法,其包含:
检测由处理器中的指令管线的一个或一个以上级中的指令的失败执行引起的异常条件;
响应于所检测到的异常条件且在所述处理器响应于所检测到的异常条件而接受中断之前,检查指令高速缓冲存储器看在中断处置器的起始地址处是否存在指令,其中在所述中断过程中所述指令在所述中断处置器的起始地址处被预取;以及
当所述指令不存在于所述指令高速缓冲存储器中时,从不同于所述指令高速缓冲存储器的存储装置预取所述中断处置器的所述起始地址处的所述指令,以将所述指令加载到所述指令高速缓冲存储器中,借此使得到所述处理器响应于所述检测到的异常条件而接受所述中断时所述指令在所述指令高速缓冲存储器中可用,
其中,检查看指令高速缓冲存储器中的中断处置器的起始地址处是否存在指令包含:
在所述起始地址处读取所述指令高速缓冲存储器的内容可定址存储器部分;以及
在不读取所述指令高速缓冲存储器的随机存取存储器部分的情况下产生所述指令是存在于还是不存在于所述指令高速缓冲存储器中的指示。
2.根据权利要求1所述的方法,其进一步包含:
并行地评估正在所述指令管线中处理的另一指令以确定所述另一指令是否能够无故障指示地完成,其中所述另一指令是比检测到其所述异常条件的指令旧的指令。
3.根据权利要求2所述的方法,其进一步包含:
在确定所述较旧指令能够无故障指示地完成后,即刻响应于所述异常条件而处理所述中断,借此执行所述中断处置器且所述处理器返回到正常程序流程。
4.根据权利要求2所述的方法,其进一步包含:
在确定所述较旧指令不能够无故障指示地完成后,即刻结束所述检查步骤及所述预取步骤。
5.根据权利要求1所述的方法,其进一步包含:
在多个检测到的异常条件当中对所述异常条件进行优先级排序;以及
选择保持中断向量地址的专用寄存器,所述中断向量地址为与所述经优先级排序的异常条件相关联的所述中断处置器的所述起始地址。
6.根据权利要求5所述的方法,其进一步包含:
将来自所述所选专用寄存器的所述中断向量地址存储于预取地址寄存器中;以及
预取在存储于所述预取地址寄存器中的所述地址处的指令。
7.一种用于利用中断向量表的中断处理的方法,所述方法包含:
检测处理器中的指令管线的一个或一个以上级中的异常条件;
响应于所述检测到的异常条件且在所述处理器响应于所述检测到的异常条件而接受中断之前,检查指令高速缓冲存储器看是否存在保持于中断向量表中的指令;
当所述指令不存在于所述指令高速缓冲存储器中时,从不同于所述指令高速缓冲存储器的存储装置预取所述指令,以将所述指令及所述向量表加载到所述指令高速缓冲存储器中;
在确定所述指令为程序计数器相关分支指令后,即刻计算与所述检测到的异常条件相关联的中断处置器的分支目标地址;
检查所述指令高速缓冲存储器看是否在所述分支目标地址处存在中断处置器指令;以及
当所述中断处置器指令不存在于所述指令高速缓冲存储器中时,从所述指令高速缓冲存储器以上的存储装置预取所述分支目标地址处的所述中断处置器指令,以将所述中断处置器指令加载到所述指令高速缓冲存储器中,借此使得到所述处理器响应于所述检测到的异常条件而接受所述中断时所述指令在所述指令高速缓冲存储器中可用。
8.根据权利要求7所述的方法,其进一步包含:
并行地评估正在所述指令管线中处理的其它指令以确定另一指令是否能够无故障指示地完成,其中所述另一指令为比检测到其所述异常条件的指令旧的指令。
9.根据权利要求8所述的方法,其进一步包含:
在确定所述较旧指令能够无故障指示地完成后,即刻响应于所述异常条件而处理所述中断,借此执行所述中断处置器且所述处理器返回到正常程序流程。
10.根据权利要求8所述的方法,其进一步包含:
在确定所述较旧指令不能够无故障指示地完成后,即刻结束所述检测和预取步骤以确保所述中断处置器指令存在于所述指令高速缓冲存储器中。
11.根据权利要求7所述的方法,其进一步包含:
在多个检测到的异常条件当中对所述异常条件进行优先级排序;以及
选择保持中断向量表地址的专用寄存器,所述中断向量表地址为与所述经优先级排序的异常条件相关联的程序计数器相关分支指令的地址。
12.根据权利要求11所述的方法,其中所述指令为程序计数器PC相关分支指令。
13.根据权利要求7所述的方法,其进一步包含:
当所述指令存在于所述指令高速缓冲存储器中时,提取所述指令高速缓冲存储器中的所述指令但不执行所述指令。
14.一种具有中断处理逻辑的处理器,其包含:
异常检测逻辑电路,其可在处理器管线的各种级处操作以检测一个以上异常条件;
第一逻辑电路,其可操作以响应于检测到的异常条件且在所述处理器响应于所述检测到的异常条件而接受中断之前检查指令高速缓冲存储器看在异常向量地址处是否存在指令,其中在所述异常向量地址处的指令是保持于与所述检测到的异常条件相关联的中断向量表中的指令;
第二逻辑电路,其可操作以在所述指令不存在于所述指令高速缓冲存储器中时在所述指令高速缓冲存储器以上的存储装置中预取所述异常向量地址处的所述指令,以便将所述指令加载到所述指令高速缓冲存储器中;
第三逻辑电路,其用于在确定所述指令为程序计数器PC相关分支指令后即刻计算与所述检测到的异常条件相关联的中断处置器的分支目标地址;
第四逻辑电路,其用于检查所述指令高速缓冲存储器看在所述分支目标地址处是否存在中断处置器指令;以及
第五逻辑电路,当所述中断处置器指令不存在于所述指令高速缓冲存储器中时,其从所述指令高速缓冲存储器以上的存储装置预取所述分支目标地址处的所述中断处置器指令,以将所述中断处置器指令加载到所述指令高速缓冲存储器中,借此使得到所述处理器响应于所述检测到的异常条件而接受所述中断时所述指令在所述指令高速缓冲存储器中可用。
15.根据权利要求14所述的处理器,其进一步包含:优先级排序逻辑电路,其可操作以基于选自一个或一个以上检测到的异常条件的最高优先级的检测到的异常条件的预定优先级而产生异常向量地址。
16.根据权利要求15所述的处理器,所述第一逻辑电路可操作以响应于检测到的异常条件且在所述处理器响应于所述检测到的异常条件而接受中断之前检查指令高速缓冲存储器看在所述异常向量地址处是否存在指令;
其中,在所述异常向量地址处的指令是保持于与所述最高优先级的检测到的异常条件相关联的中断向量表中的指令。
17.根据权利要求14所述的处理器,其中所述第三逻辑电路包含:
分支检测及偏移产生器,其具有用以确定所述指令为PC相关分支指令且产生地址偏移的逻辑电路;以及
加法器,其用以利用所述地址偏移产生分支目标地址。
18.根据权利要求14所述的处理器,其进一步包含:指令高速缓冲存储器,其包含:
随机存取存储器RAM部分,其用于保持多个程序指令;以及
内容可定址存储器CAM部分,其用于保持与所述程序指令相关联的地址,可用地址来存取所述CAM部分以在不读取所述指令高速缓冲存储器的所述RAM部分的情况下产生与所述地址相关联的指令是存在于还是不存在于所述指令高速缓冲存储器的所述RAM部分中的指示。
19.根据权利要求14所述的处理器,其进一步包含:
中断逻辑电路,其用于并行地评估正在所述指令管线中处理的其它指令以确定另一指令是否能够无故障指示地完成,其中所述另一指令为比检测到其所述异常条件的指令旧的指令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/188,626 US8291202B2 (en) | 2008-08-08 | 2008-08-08 | Apparatus and methods for speculative interrupt vector prefetching |
US12/188,626 | 2008-08-08 | ||
PCT/US2009/052118 WO2010017077A2 (en) | 2008-08-08 | 2009-07-29 | Apparatus and methods for speculative interrupt vector prefetching |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102112966A CN102112966A (zh) | 2011-06-29 |
CN102112966B true CN102112966B (zh) | 2015-07-01 |
Family
ID=41653950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980129767.1A Expired - Fee Related CN102112966B (zh) | 2008-08-08 | 2009-07-29 | 用于推测式中断向量预取的设备及方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8291202B2 (zh) |
EP (1) | EP2327013A2 (zh) |
JP (1) | JP5323936B2 (zh) |
KR (1) | KR101284097B1 (zh) |
CN (1) | CN102112966B (zh) |
TW (1) | TW201017531A (zh) |
WO (1) | WO2010017077A2 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9569363B2 (en) | 2009-03-30 | 2017-02-14 | Via Technologies, Inc. | Selective prefetching of physically sequential cache line to cache line that includes loaded page table entry |
US8161246B2 (en) * | 2009-03-30 | 2012-04-17 | Via Technologies, Inc. | Prefetching of next physically sequential cache line after cache line that includes loaded page table entry |
US8392644B2 (en) * | 2010-07-30 | 2013-03-05 | Mips Technologies, Inc. | System and method for automatic hardware interrupt handling |
KR20130045894A (ko) * | 2010-12-14 | 2013-05-06 | 미쓰비시덴키 가부시키가이샤 | 인터럽트 요인 관리 장치 및 인터럽트 처리 시스템 |
US8972642B2 (en) * | 2011-10-04 | 2015-03-03 | Qualcomm Incorporated | Low latency two-level interrupt controller interface to multi-threaded processor |
WO2013095532A1 (en) | 2011-12-22 | 2013-06-27 | Intel Corporation | Interrupt return instruction with embedded interrupt service functionality |
WO2013095608A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Apparatus and method for vectorization with speculation support |
US10019390B2 (en) * | 2012-03-30 | 2018-07-10 | Intel Corporation | Using memory cache for a race free interrupt scheme without the use of “read clear” registers |
GB2503471B (en) * | 2012-06-27 | 2015-05-06 | Nordic Semiconductor Asa | Integrated-circuit radio |
GB2513042B (en) * | 2013-01-15 | 2015-09-30 | Imagination Tech Ltd | Improved control of pre-fetch traffic |
US9330011B2 (en) * | 2013-09-20 | 2016-05-03 | Via Alliance Semiconductor Co., Ltd. | Microprocessor with integrated NOP slide detector |
GB2519108A (en) * | 2013-10-09 | 2015-04-15 | Advanced Risc Mach Ltd | A data processing apparatus and method for controlling performance of speculative vector operations |
GB2522477B (en) * | 2014-01-28 | 2020-06-17 | Advanced Risc Mach Ltd | Speculative interrupt signalling |
GB2535514B (en) * | 2015-02-19 | 2021-09-22 | Advanced Risc Mach Ltd | Processor exception handling |
DE102015211458A1 (de) * | 2015-06-22 | 2016-12-22 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Absichern einer Programmzählerstruktur eines Prozessorsystems und zum Überwachen der Behandlung einer Unterbrechungsanfrage |
CN105183541B (zh) * | 2015-08-10 | 2019-07-12 | 上海斐讯数据通信技术有限公司 | 一种中断响应方法及系统 |
GB2543302B (en) * | 2015-10-14 | 2018-03-21 | Advanced Risc Mach Ltd | Vector load instruction |
US11188336B2 (en) * | 2015-12-28 | 2021-11-30 | Qualcomm Incorporated | Replay of partially executed instruction blocks in a processor-based system employing a block-atomic execution model |
CN105893165B (zh) * | 2016-03-29 | 2020-01-14 | 杭州和利时自动化有限公司 | 一种指令cache的故障诊断方法及系统 |
US9570134B1 (en) | 2016-03-31 | 2017-02-14 | Altera Corporation | Reducing transactional latency in address decoding |
US10095637B2 (en) * | 2016-09-15 | 2018-10-09 | Advanced Micro Devices, Inc. | Speculative retirement of post-lock instructions |
US10120819B2 (en) | 2017-03-20 | 2018-11-06 | Nxp Usa, Inc. | System and method for cache memory line fill using interrupt indication |
US10360374B2 (en) * | 2017-05-25 | 2019-07-23 | Intel Corporation | Techniques for control flow protection |
US11650753B2 (en) * | 2021-07-27 | 2023-05-16 | Beijing Tenafe Electronic Technology Co., Ltd. | Firmware-controlled and table-based conditioning for synchronous handling of exception cases |
CN113568349B (zh) * | 2021-07-27 | 2023-05-02 | 深圳市轱辘车联数据技术有限公司 | 数据处理方法、装置、终端设备及可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1688975A (zh) * | 2003-01-24 | 2005-10-26 | 富士通株式会社 | 中断控制方法和中断控制装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09101892A (ja) * | 1995-10-06 | 1997-04-15 | Denso Corp | 情報処理装置及び例外処理用シーケンサ |
JP2929980B2 (ja) * | 1995-10-06 | 1999-08-03 | 株式会社デンソー | 情報処理装置 |
US5938762A (en) | 1995-10-06 | 1999-08-17 | Denso Corporation | Method and apparatus for performing exception processing routine in pipeline processing |
US6192466B1 (en) | 1999-01-21 | 2001-02-20 | International Business Machines Corporation | Pipeline control for high-frequency pipelined designs |
JP2000242507A (ja) * | 1999-02-23 | 2000-09-08 | Matsushita Electric Ind Co Ltd | プロセッサ |
JP2000347931A (ja) * | 1999-06-03 | 2000-12-15 | Matsushita Electric Ind Co Ltd | キャッシュメモリおよびキャッシュメモリ制御方法 |
JP2001056781A (ja) * | 1999-08-19 | 2001-02-27 | Sharp Corp | 情報処理装置 |
US6487653B1 (en) | 1999-08-25 | 2002-11-26 | Advanced Micro Devices, Inc. | Method and apparatus for denormal load handling |
US6651163B1 (en) | 2000-03-08 | 2003-11-18 | Advanced Micro Devices, Inc. | Exception handling with reduced overhead in a multithreaded multiprocessing system |
JP2001306335A (ja) * | 2000-04-27 | 2001-11-02 | Sony Corp | コンピュータ |
JP4423757B2 (ja) * | 2000-06-27 | 2010-03-03 | ソニー株式会社 | 例外処理システム及び方法、並びに、プロセッサ |
US20040111593A1 (en) * | 2002-12-05 | 2004-06-10 | International Business Machines Corporation | Interrupt handler prediction method and system |
US20050182920A1 (en) | 2004-02-13 | 2005-08-18 | Alexandre Palus | Apparatus and method for expedited exception handling using a dedicated port |
US7613911B2 (en) | 2004-03-12 | 2009-11-03 | Arm Limited | Prefetching exception vectors by early lookup exception vectors within a cache memory |
-
2008
- 2008-08-08 US US12/188,626 patent/US8291202B2/en active Active
-
2009
- 2009-07-29 KR KR1020117005358A patent/KR101284097B1/ko not_active IP Right Cessation
- 2009-07-29 EP EP09790941A patent/EP2327013A2/en not_active Withdrawn
- 2009-07-29 WO PCT/US2009/052118 patent/WO2010017077A2/en active Application Filing
- 2009-07-29 CN CN200980129767.1A patent/CN102112966B/zh not_active Expired - Fee Related
- 2009-07-29 JP JP2011522121A patent/JP5323936B2/ja not_active Expired - Fee Related
- 2009-08-04 TW TW098126186A patent/TW201017531A/zh unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1688975A (zh) * | 2003-01-24 | 2005-10-26 | 富士通株式会社 | 中断控制方法和中断控制装置 |
Also Published As
Publication number | Publication date |
---|---|
JP5323936B2 (ja) | 2013-10-23 |
CN102112966A (zh) | 2011-06-29 |
WO2010017077A2 (en) | 2010-02-11 |
WO2010017077A3 (en) | 2011-04-28 |
EP2327013A2 (en) | 2011-06-01 |
US8291202B2 (en) | 2012-10-16 |
KR20110051233A (ko) | 2011-05-17 |
TW201017531A (en) | 2010-05-01 |
KR101284097B1 (ko) | 2013-07-15 |
JP2011530741A (ja) | 2011-12-22 |
US20100036987A1 (en) | 2010-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102112966B (zh) | 用于推测式中断向量预取的设备及方法 | |
US10409605B2 (en) | System and method for using a branch mis-prediction buffer | |
US5941981A (en) | System for using a data history table to select among multiple data prefetch algorithms | |
CN101694613B (zh) | 不对准存储器存取预测 | |
EP2467776B1 (en) | Methods and apparatus to predict non-execution of conditional non-branching instructions | |
US7917731B2 (en) | Method and apparatus for prefetching non-sequential instruction addresses | |
US7975130B2 (en) | Method and system for early instruction text based operand store compare reject avoidance | |
EP2946286B1 (en) | Methods and apparatus for cancelling data prefetch requests for a loop | |
EP0709770A2 (en) | Apparatus to control load/store instructions | |
CN101535951A (zh) | 用于辨识子例程调用的方法及设备 | |
WO2004015560A2 (en) | Instruction cache way prediction for jump targets | |
US5935238A (en) | Selection from multiple fetch addresses generated concurrently including predicted and actual target by control-flow instructions in current and previous instruction bundles | |
GB2285154A (en) | Branch cache. | |
EP2097809B1 (en) | Methods and apparatus for low-complexity instruction prefetch system | |
US5964869A (en) | Instruction fetch mechanism with simultaneous prediction of control-flow instructions | |
US6219781B1 (en) | Method and apparatus for performing register hazard detection | |
CN104461758A (zh) | 一种容忍cache缺失快速清空流水线的异常处理方法及其处理结构 | |
CN101501635B (zh) | 用于减少在分支目标地址高速缓冲存储器中查找的方法和设备 | |
US20050149781A1 (en) | System and method for soft error handling | |
JP3762816B2 (ja) | マイクロプロセッサにおける早期例外を追跡するシステム及び方法 | |
US7346737B2 (en) | Cache system having branch target address cache | |
US9164900B1 (en) | Methods and systems for expanding preload capabilities of a memory to encompass a register file |
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 |
Granted publication date: 20150701 Termination date: 20210729 |
|
CF01 | Termination of patent right due to non-payment of annual fee |