CN1230740C - 数字信号处理装置 - Google Patents

数字信号处理装置 Download PDF

Info

Publication number
CN1230740C
CN1230740C CNB018050301A CN01805030A CN1230740C CN 1230740 C CN1230740 C CN 1230740C CN B018050301 A CNB018050301 A CN B018050301A CN 01805030 A CN01805030 A CN 01805030A CN 1230740 C CN1230740 C CN 1230740C
Authority
CN
China
Prior art keywords
hardware resource
instruction set
fifo buffer
functional unit
register
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
Application number
CNB018050301A
Other languages
English (en)
Other versions
CN1494677A (zh
Inventor
J·A·J·莱藤
M·J·G·贝科伊
A·J·宾克
J·S·H·范加格尔东克
J·霍格尔布鲁格
B·梅斯曼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Benelux BV
Intel Corp
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN1494677A publication Critical patent/CN1494677A/zh
Application granted granted Critical
Publication of CN1230740C publication Critical patent/CN1230740C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30116Shadow registers, e.g. coupled registers, not forming part of the register space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • G06F9/38585Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Complex Calculations (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明涉及一个数字信号处理装置,该装置包含多个可用的硬件资源装置、以及一个能访问所述可用硬件资源装置的第一指令集装置,以便使所述硬件资源装置的至少一部分在所述第一指令集装置的控制之下执行操作,而且该装置进一步包含一个能访问所述多个可用硬件资源装置的仅仅一个预定有限子集的第二指令集装置,以便使所述硬件资源装置的至少一部分所述预定有限子集在所述第二指令集装置的控制之下执行操作。此外本发明涉及一种用于在一个数字信号处理装置中处理数字信号的方法,该数字信号处理装置包含多个可用的硬件资源装置,其中所述硬件资源装置的至少一部分在一个第一指令集的控制之下执行操作,而且其中所述多个可用硬件资源装置的至少一部分预定有限子集在一个第二指令集的控制之下执行操作,其中该第二指令集仅仅能访问所述硬件资源装置的一个所述预定有限子集。

Description

数字信号处理装置
本发明涉及一种数字信号处理装置,该装置包含多个可用的硬件资源装置以及一个能访问所述可用硬件资源装置的第一指令集装置,以便使所述硬件资源装置的至少一部分在所述第一指令集装置的控制之下执行操作,而且本发明还涉及一种用于在这样一个数字信号处理装置中处理数字信号的方法。
为了能够快速地对外部事件做出响应,数字信号处理器(DSP)使用了中断。对于在数字信号处理器中需要的实时性能来说,一个短的、可预测的中断等待时间具有关键的重要性。为了实现这个,理论上一个处理器应当总是可被中断的。中断是能够暂时中断一个程序的执行、以在继续原有程序之前执行一个被实现为一个中断服务例程(ISR)的较高优先级任务的外部事件。
一个中断导致处理器暂时推迟当前程序轨迹的进一步执行,并且代之以执行另一个轨迹。必须保存所推迟的轨迹的状态,以便当该中断已经服务完了时,处理器能够恢复它的初始状态并且能够正确地继续进行原有的轨迹。必须被保存的状态数量、以及据此为保存该状态所要求的处理器周期数目与该程序中处理器被中断处的点相关。
为了限制上下文保存的影响,在市场上买得到的许多数字信号处理器中,对处理器的可中断性施加了限制。
在由Philips开发的、是一个VLIW(Very Large InstructionWord,超长指令字)介质处理器的“TriMedia”处理器中,为了最小化在一个中断上需要被保存的状态数量,这样的处理器仅仅在程序流程中的特定点处服务于中断。这些点仅仅出现在决策树之间,其中只有全局变量是有效的。该结构通过所谓的可中断的跳转知道这些点。不幸地是,编译过程阻碍了好的中断等待,这是因为为了获得好的并行代码,它将例如通过if转换、融合和推测试图使基本程序块尽可能的大。为了获得一个好的中断等待,应当经常发生可中断的跳转,这与编译器的目的相冲突。因此,在“TriMedia”处理器中,中断等待是高度代码相关的、不可预知的,而且除非编译器明确地被迫在该代码中的常规点处包含可中断的跳转,该中断等待通常是长的。TexasInstruments的“VelociTI”体系结构在分支期间或者在一个分支阴影处不允许中断。不幸地是,这个体系结构具有一个相对长的、5周期的分支延迟。此外,它允许在分支延迟槽中调度分支,由此有效地延伸整个分支阴影。由于在大多数算法中出现了大量的分支,所以很少能够出现一个中断。
第一代“R.E.A.L”核心处理器总是能够被中断,除了当正在执行使用一个“重复”指令的单个指令循环的时候。为了确保一个足够短的中断等待,如果必要的话通过把一个高迭代次数的循环拆分成多个小迭代次数的循环,借此必须来保持循环迭代的次数足够小。由于该重复指令的不可中断性,所以这种指令在第二代“R.E.A.L”核心处理器中将不再被支持。
美国专利5,987,601A描述了一个唯一的硬件零开销的中断和任务变化系统,用于在计算机体系结构中减少或者消除中断等待以及任务变化处理开销延迟。不用损失时间,这个传统的系统在一个周期和下一个周期之间执行完全的任务状态保存和恢复,而不需要软件的介入。对于每一个中央处理单元寄存器来说,这个系统使用一个或多个辅助锁存器,其中一个锁存器被用作“运行”锁存器,而且辅助锁存器中的一个附着于一个任务存储存储器中。该系统在替换的“运行”寄存器和辅助寄存器之间交换连接,同时向和从该任务存储存储器中传送其它任务。此外,这个系统提供了一个任务链接系统,以允许任务的链接或者连续地强制执行所链接的任务。最后,这个系统包含一个优先级“焦急”计数器系统,以在各个任务接近它们的任务最后期限时增加各个任务的相对优先级。
美国专利5,860,014A公开了一种用于保持一个处理器中的寄存器内容的方法和装置,其中该处理器使用寄存器用于处理指令。入口被保存在一个缓存器中用于响应于由一个可中断指令产生的中断恢复寄存器内容。入口包含用于减小选择用以恢复的入口数目的信息。响应于该中断和信息,选择一组缓存器入口用于恢复寄存器内容。该集合仅仅包含响应于该中断恢复内容所必需的入口,以便可以在单个处理器周期内恢复该处理器寄存器的内容,即使存储了用于第一个寄存器的多个入口以及存储了用于第二个寄存器的多个入口。
从美国专利5,115,506A中,更进一步得知有一个微处理器,其包含:用于在正常操作期间使用的非主要寄存器、用于在中断期间使用的主要寄存器、用于在中断期间使用的一个标准寄存器组、用于在正常操作和传统的中断操作期间使用的一个标准寄存器组、用于在快速中断操作期间使用的一个替换寄存器组、以及一个存储器堆栈。三个状态位被用来指示:一个或多个快速中断已经被启动但没有完成,正出现一个快速中断但是没有其它的快速中断正被处理,以及CPU当前正在处理一个快速中断。这些状态位指示是否有一个递归危难,而且用来控制在标准和替换寄存器组与存储器堆栈之间的信息流以阻止递归。
在美国专利5,003,462A中公开了一种用于在一个具有多个功能单元的流水线处理器中实现精确中断报告的系统体系结构要求的装置和方法。由于仅仅为那些频繁出现的中断-具体地说,从虚拟内存管理中发生的那些中断-保证一个中断流水线的开支,所以该装置使用一个中断流水线用于频繁出现的中断,以及一个较慢但是代价低很多、基于软件的系统用于精确地报告剩余的中断。通过一个指令编号和跟踪方案便于实现该基于软件的系统,借此当指令通过该处理器流水线并且可能到其它功能单元时,记录适当的、关于所执行指令的信息。一个软件中断处理程序可以使用这个信息来分离和精确地报告一个中断。
为了能够获得一个可预言的和短的中断等待,在每次需要时必须总是有可能中断该处理器。在该程序中的一个任意点中断一个处理器能够意味着必须保存大量的状态。只有一部分状态作为寄存器堆中的变量是可用的,而且可容易地使程序员使用来经由正常的加载/存储操作保存或者恢复。在正常操作之下的剩余状态对于程序员来说是不可见的,它们被隐藏在例如功能单元流水线阶段(stage)中。在硬件中需要特定的措施以提供对这个状态的访问用于保存和恢复。
为了获得一个有效的代码,一个强大的VLIW编译器基于所谓的“没有单元被假定同样延迟(Non-Unit-Assumed-Latency withEqual)(NUAL-EQ)”语义学调度操作。这导致不能在任意位置处由中断切断的调度提供,而不用在硬件中采取特定的预防措施以阻止不正确的处理器行为。处理切断一个调度的问题的最直接方法是使用一个阴影缓存器来保存状态。实现一个阴影缓存意味着复制在一个处理器中的所有状态寄存器。该阴影缓存被用来在中断处理处拷贝一份处理器状态,并且保持这个拷贝直到该中断处理完成以及保存的拷贝在状态寄存器中被恢复为止,或者该中断被更高优先级的中断再次中断为止。在后面的情况中,该阴影缓存的内容被保存到一个数据存储器中的一个软件堆栈中,并且获取该处理器状态的一个新拷贝。然而,这是一个昂贵的解决方案。
本发明的一个目的是提供一个需要较少硬件开销的解决方案。
为了实现这个及其它目的,依据本发明的第一方面,提供了一个数字信号处理装置,该装置包含多个可用的硬件资源装置、以及一个能访问所述可用硬件资源装置的第一指令集装置,以便使所述硬件资源装置的至少一部分在所述第一指令集装置的控制之下执行操作,其特征在于:一个第二指令集装置能访问所述多个可用硬件资源装置的仅仅一个预定的有限子集,以便使所述硬件资源装置的至少一部分所述预定有限子集在所述第二指令集装置的控制之下执行操作。
依据本发明的第二方面,提供一种用于在一个数字信号处理装置中处理数字信号的方法,该数字信号处理装置包含多个可用的硬件资源装置,其中所述硬件资源装置的至少一部分在一个第一指令集的控制之下执行操作,其特征在于:所述多个可用硬件资源装置的至少一部分预定有限子集在一个第二指令集的控制之下执行操作,其中该第二指令集能访问所述硬件资源装置的仅仅一个所述预定的有限子集。
根据本发明,该数字信号处理装置支持一个能访问所有可用硬件资源、并且因此是一个标准指令集的第一指令集,以及一个仅仅能访问硬件资源的一个有限子集、并且因此还能够被称为紧凑指令集的第二指令集。因此,根据本发明,提供了一个具有双指令集的数字信号处理装置,其中一个指令集、即紧凑第二指令集仅仅需要所有硬件资源的一个小的子集。使用一个紧凑第二指令集的优点是:在不具有严格性能要求的程序部分中保存代码尺寸。由于该紧凑第二指令集具有一个有关硬件资源的有限视图,在这种指令集中的指令能够用比在标准第一指令集中的指令少很多的位进行编码。因此,能够为代码尺寸折衷选择性能。标准第一指令集用于需要高性能的程序部分(例如在DSP代码中时间关键的循环),因此通常标准第一指令集包含宽的、由大量程序位组成的VLIW指令。
本发明原理的一个进一步优点是:减少了在一个中断上必须保存的状态数目。当在一个中断服务例程(ISR)中使用标准第一指令集时,必须保存由这个指令集使用的所有硬件资源的状态,即整个处理装置的状态。如果在“轻型的”中断服务例程中仅仅使用了紧凑第二指令集,则仅仅保存由该紧凑第二指令集使用的硬件资源的有限子集的状态就足够了,同时简单地冻结在所有其它资源中的状态。这能够在上下文转换期间节省大量时间。因此,在一个中断的情况下,该硬件资源的紧凑视图还可以被用来减小上下文转换的开销。由于许多中断需要非常简单的处理程序、即中断服务例程,所以通常这些处理程序仅仅使用根据本发明的紧凑第二指令集就足够了。
最后,本发明的解决方案仅仅需要小的硬件开销。
通常,所述可用的硬件资源装置是处理器资源装置。
本发明的一个最佳实施例包含第一状态缓存装置,用于在一个中断情况下存储硬件资源装置的当前状态,其中在一个中断的情况下,所述第一状态缓存装置存储未被包含在所述硬件资源装置的所述预定有限子集内的这种硬件资源装置的至少一部分的当前状态。这种第一状态缓存装置能够,例如被提供为一个单独的缓存硬件设备,或者在包含在该数字信号处理装置中的数据存储器内定义一个逻辑缓存。
此外,能够提供第二状态缓存装置,用于在一个中断的情况下存储所述硬件资源装置的所述预定有限子集的至少一部分的当前状态,所述第二状态缓存装置具有比所述第一状态缓存装置小的尺寸。这个第二状态缓存装置能够,例如被提供为一个单独的缓存硬件设备,或者在该数字信号处理装置中的数据存储器中定义一个进一步的逻辑缓存部分。因此,依据本发明最佳实施例的第二状态缓存装置能够被认为是一个小的阴影缓存装置。由于紧凑第二指令集在该硬件资源装置上具有一个有限的视图,所以与现有技术的完全尺寸的阴影缓存相比通过限制该阴影缓存所需要的尺寸,能够实现成本的较大降低。换句话说,对于要求的中断,该紧凑第二指令集能够被用于减小为所有硬件资源装置实现一个完全阴影缓存的硬件开销。
通常,提供了用于向第二状态缓存装置提供电源的装置,其中在本发明的一个最佳实施例中,所述电源供应装置实质上仅仅在中断处理期间向所述第二状态缓存装置提供电源,以便使第二状态缓存装置在那个时间期间保持它的状态。通常,“电源”意味着提供电压和时钟。在正常操作下,当不出现中断时,用于第二状态缓存装置的电源能够被完全地关掉以节省电源。在中断处理的整个时期内,应当施加供应电压,以便使第二状态缓存装置能够保持它的状态。仅仅在中断服务例程的开始处,当进行状态的一份拷贝并且把它保存在第二状态缓存装置中时,需要把时钟施加到第二状态缓存装置上;而在剩余的中断处理期间,如果第二状态缓存装置由触发器组成则不需要施加时钟,而且在这种情况下,在该中断服务例程的末端不需要一个时钟就能够读取第二状态缓存装置的内容。
此外,至少一部分这样的、不可直接访问的并且未被包含在所述硬件资源装置的所述预定有限子集中的硬件资源装置在一个第一扫描链装置中被链接在一起,而且至少一部分这样的、不可直接访问的并且未被包含在所述硬件资源装置的所述预定有限子集中的硬件资源装置在一个第二扫描链接装置中被链接在一起。这个措施的优点是减小了用于寻址第二状态缓存装置所需要的位数。尤其是,属于这种未被包含在硬件资源装置的有限子集内的硬件资源装置的触发器、以及被包含在硬件资源装置有限子集内的这种硬件资源装置的阴影寄存器能够在扫描链中被链接在一起。通过把所有保持了在一块硬件中的状态信息的触发器连接到一个链中,来构造扫描链。在那种情况下,仅仅该链的开始或者结尾处需要被编址用于保存和恢复。读取或者写入一个扫描链应当导致该链内容的移出或者移入。这些扫描链可以与已经需要用于IC测试目的的扫描链结合,其中后一类型的扫描链不是相应硬件单元正常功能的一部分,但是在测试这种硬件单元的适当功能期间使用,其中它被允许读取或者写入状态,从而在任何给定时刻能够相对于期望的行为校验相应硬件单元的内部状态。为了允许仅仅保存一部分状态,能够构造扫描链组,其中每组扫描链都能够分别在第二状态缓存装置寄存器堆中寻址。
根据本发明的一个进一步的最佳实施例,所述第二指令集装置不允许并行操作。通过不允许该紧凑第二指令集并行执行操作,实现该硬件资源装置使用的减少。即,标准第一指令集通常是一个VLIW指令集,意味着这些指令由几个能够同时执行的操作组成。同时执行操作需要并行使用多个硬件资源。如上面已经描述的那样,该紧凑第二指令集具有一个有关该硬件资源的有限视图,从而使得不是完全并行视图的任何有限视图有资格由紧凑第二指令集使用。
本发明最好是在“COCOON”嵌入的DSP核心体系结构模板中使用。从这个体系结构模板中导出第三代的“R.E.A.L”核心系列。这些核心的目的在于音频应用(例如压缩的音频)和第三代移动通信应用(UMTS)的要求。此外,本发明的应用在其中短的和可预测的中断等待是重要的、而且内部状态保存可能变为一个“瓶颈”的任何类型的可编程处理器中是有用的。
通过结合该最佳实施例的下列详细描述并参考附图,本发明的上述及其它目的、特征将变得更为明显,其中:
图1是一个VLIW数据路径的一部分的示意框图;
图2a是一个显示了具有三个流水线阶段的一个功能单元的示意框图;
图2b显示了流水线寄存器的相应状态扫描结构;
图3显示了用于紧凑指令集(CIS)资源(a)以及用于非CIS资源(b)的触发器布置的一个示意框图;以及
图4是一个显示了在该功能单元集群输出端的FIFO缓存的示意框图。
图1显示了一个VLIW数据路径的一部分的示意框图,其中阴影触发器和触发器扫描链通过一个阴影缓冲寄存器堆被组合到单个地址映射中,其中“RF”是指寄存器堆,“FU”是指功能单元,而“ACU”是指用于计算存储器地址的地址计算单元。在图1中显示的方案在一个具有双指令集的处理器中实现,其中一个被称作紧凑指令集(CIS)的指令集仅仅需要所有处理器资源的一个(小的)子集。另一个指令集是由一个VLIW指令集组成的标准指令集,其意味着指令由几个能够同时执行的操作组成。操作的同时执行需要并行使用多个硬件资源。与此相反,紧凑指令集具有一个有关该处理器硬件的有限视图,而且不允许并行执行操作。所以,不是完全并行视图的任何有限视图将有资格由该紧凑指令集使用。
属于该紧凑集(CIS)、而且还被称作CIS资源的资源让它们的所有状态被复制为在一个(小的)阴影缓存中的阴影寄存器。这些资源自然包含该定序器的状态。在一个中断上,所有CIS状态的一份拷贝被保存在阴影缓存中。这仅仅需要一个时钟周期。同时,所有未由该紧凑指令集使用、并且被称作非CIS资源的资源,例如借助于时钟选通,使它们的状态冻结。通过刚好在将服务于该中断之前获取该状态的一个“快照”,能够在一个中断上保存处理器状态。这种快照应当在中断服务例程的执行期间保存,并且在中断服务例程完成时恢复,因此该处理器能够以确切相同的状态、并且在当它被中断时停止的确切程序位置处继续执行。在获取这样一个快照而且所有剩余的状态被冻结之后,能够启动中断服务例程的执行。因此,中断等待仅仅是1个周期。
在这个中断服务例程的第一部分中的指令必须起源于紧凑指令集。只要非CIS资源的状态正被保存或者恢复,就只有该紧凑指令集可以被使用,而且所有其它的硬件资源被冻结了。在保存该CIS状态之后,通过直接读出被包含在该功能单元FU中的触发器能够保存剩余的状态。为了这个目的,这种触发器在存储器字中被分组,并且被放置在一个可调整的寄存器堆映射中,例如在该阴影缓存的寄存器堆映射中(参看图1)。
为了减少用于寻址阴影缓存所需要的位数,属于非CIS资源的触发器以及该CIS资源的阴影寄存器还能够在一个扫描链中被链接在一起。在那种情况下,仅仅需要编址该链的开始或者结尾处用于保存和恢复。一个扫描链的读取或者写入应当导致该链内容的移出或者移入。这些扫描链可以与已经需要用于IC测试目的的扫描链相结合。为了允许仅仅保存一部分状态,能够构造扫描链组,其中每一组扫描链都能够分别在阴影缓冲寄存器堆中编址。
在重新允许该非CIS资源之前,所有非CIS功能单元的状态是无效的,从而没有无效数据被写入到任何寄存器堆中,或者当非CIS功能单元被重激活时执行加载/存储操作。从那个时刻开始,可以再次使用整个指令集,并且使用在正常寄存器堆上的加载/存储操作能够节省所有需要的正常可变寄存器。在需要的寄存器状态被保存了之后,可以重新允许所有中断以允许中断嵌套。中断嵌套是指这样一种情况,其中允许一个中断中断另一个中断的中断服务例程。
M个扫描链穿过非CIS资源以及穿过CIS资源的阴影寄存器,除可经由软件直接访问的寄存器之外。这里M等于能够并行写入到数据存储器中的位数。这个数目等于数据存储器的字宽乘以可被用于并行保存和恢复状态的加载/存储单元数目。该扫描链被用于依据一个中断服务例程的开始和结束扫描进出该资源的当前状态。除了可经由软件直接访问的寄存器之外,所有资源经由这M个扫描链被链按在一起。在资源内部,诸如功能单元内,以这样一种方式在扫描链中布置该触发器来获得平衡链。例如,在一个典型的功能单元中,该链应当穿过许多触发器,以便该链的总长度至多比所有其它链的总长度多或少一个触发器。这意味着,对于在该功能单元中的总共N个触发器来说,每个扫描链应当添加[N/M]个触发器。剩余的N-M[N/M]个触发器应当首先被添加到该链中,其进入功能单元中时已经传送了最小触发器数目。在图2中给出了一个例子,其中图2(a)显示一个具有三个24、16和20位的流水线阶段的功能单元,而且图2(b)显示了到32个扫描链中的流水线寄存器相应状态扫描结构。
图3显示了用于CIS资源(a)的阴影触发器以及用于非CIS资源(b)的触发器扫描。然而,这个说明没有显示用于冻结状态同时节省电源的时钟选通。
在正常操作下,当不出现中断时,用于该阴影缓存的电源能够被完全关掉,所以没有供应电压而且没有时钟。仅仅在中断处理的整个周期期间施加供应电压,从而使阴影缓存是有效的并且能够保持它的状态。仅仅在该中断服务例程开始处当进行该状态的一份拷贝并且把该拷贝保存在阴影缓存中时,施加该时钟到阴影缓存。在该阴影缓存由触发器组成的情况下,在该中断处理的剩余期间不需要施加时钟;而且在这种情况下在该中断服务例程的结尾处,能够读取该阴影缓存的内容而不需要一个(进一步)的时钟。
如图4所示,在功能单元集群UC输出端的FIFO缓存能够用来获取流水线功能单元内部状态的一个快照。
扫描链可以与需要用于测试的扫描链同享。对于流水线功能单元来说,能够实现快照缓存,而不需要用于在该单元中每个触发器的阴影触发器,或者不要求每个触发器是一个扫描链的一部分。在该功能单元集群输出端,能够放置FIFO缓存(参看图4)。一个FIFO缓存的尺寸等于该缓存所连接的输出端口的最大延迟。依据一个中断的检测,开始上下文的保存。在这个处理期间,不开始新的操作。然而,在流水线功能单元上的过程中完成操作,即通过用NOP操作填充它们的流水线来刷新在其上正执行这些操作的功能单元。在刷新该功能单元流水线期间,在该功能单元集群输出端出现的数据和寄存器索引被写入到FIFO缓存中而不是写入到一个寄存器堆RF中。当所有FIFO缓存被充满时结束该处理。
当一个中断服务例程结束时,用于该寄存器堆RF的数据和寄存器索引从FIFO缓存中获得,而不是从功能单元输出端口获得。当一个FIFO缓存变为空时,出现转换到其中从一个输出端口中取出数据和寄存器索引的正常操作。
中断嵌套为这种方法提供了一个额外的复杂度。当嵌套被允许时,必须有可能把该FIFO缓存的内容保存到一个软件堆栈中。为了这个目的,保存在这些FIFO中的状态必须是可访问的。为此,该FIFO缓存能够是一组可以从一个加载/存储单元访问的扫描链的一部分,如先前描述的那样。
使用FIFO缓存用于流水线CIS功能单元的优点是:阴影触发器在一个功能单元集群中的不同CIS功能单元之间共享。这能够显著地减小所需要的阴影触发器数目。当该方法用于流水线的非CIS功能单元时,在这些功能单元内部不需要扫描链。然而,这将需要用于该FIFO缓存的额外阴影触发器开支,而这些开支如果在使用扫描链时不是需要的。
假定该ISR被允许使用所有的处理器资源并且能够由另一个中断(嵌套)中断,则当该正常程序流程被中断时需要的动作的一个示例为:
-处理器正在执行正常的程序轨迹。
-硬件检测IRQ。
-硬件冻结非CIS资源,全局禁止中断,并且拷贝CIS资源的状态到阴影缓存中。
-程序控制进入ISR。
-ISR保存非CIS的状态到软件堆栈。
-ISR拷贝阴影缓存内容到软件堆栈。
-ISR保存需要的寄存器到软件堆栈。
-ISR全局重新允许中断以允许嵌套。
-ISR执行需要的动作,即它实际上服务该中断。
-ISR全局禁止中断。
-ISR从软件堆栈中恢复使用的寄存器。
-ISR从软件堆栈中恢复阴影缓存内容。
-ISR冻结非CIS资源。
-ISR从软件堆栈中恢复有关非CIS资源的状态。
-程序控制到达ISR的末端。
硬件拷贝阴影缓存的内容到CIS资源的状态,解冻非CIS资源,并且全局重新允许中断。
处理器继续进行正常的程序轨迹。

Claims (12)

1.数字信号处理装置,包含
-多个可用的硬件资源装置(ACU,加载/存储,FU3,FU4,FU5,FU6),每一个包括触发器以及
-一个能访问所述可用硬件资源装置(ACU,加载/存储,FU3,FU4,FU5,FU6)的第一指令集装置,以便使所述硬件资源装置的至少一部分在所述第一指令集装置的控制之下执行操作;
-一个能访问所述多个可用硬件资源装置的仅仅一个预定的有限子集(ACU,加载/存储)的第二指令集装置,以便使所述硬件资源装置的至少一部分所述预定有限子集在所述第二指令集装置的控制之下执行操作;
-阴影寄存器,耦合到该硬件资源装置的有限子集(ACU,加载/存储)中的该触发器;
-响应于一个中断的装置,用于响应于该中断来存储阴影寄存器中有限子集(ACU,加载/存储)中的硬件资源装置的当前状态,
其特征在于
-硬件资源装置中不属于有限子集的触发器以及阴影寄存器以扫描链进行链接,具有在阴影缓存器的寄存器堆映象中可寻址的起点和终点,以便扫描链的读取和写入产生移出和移入链内容。
2.如权利要求1所述的装置,其特征在于:所述可用的硬件资源装置(ACU,加载/存储,FU3,FU4,FU5,FU6)是处理器资源装置。
3.如权利要求1所述的装置,包含寄存器堆(RF)和功能单元集群(UC),该功能单元集群包括具有耦合到寄存器堆的输出端口的功能单元流水线,该装置包括在功能单元集群(UC)的输出端口处的FIFO缓存器,每个FIFO缓存器的尺寸至少等于该FIFO缓存器所附着的输出端口的最大延迟,该FIFO缓存器设置为使得在功能单元流水线刷新期间,输出端口处出现的数据和寄存器索引被写入到FIFO缓存器而不是写入到寄存器堆(RF),用于该寄存器堆(RF)的数据和寄存器索引在中断服务例程的终点处从FIFO缓存器中取出,而不是从功能单元输出端口中取出,直到FIFO缓存器变为空为止。
4.如权利要求3所述的装置,其中FIFO缓存器是部分的扫描链。
5.如权利要求1所述的装置,包含用于向所述第二状态缓存装置供应电源的装置,
其特征在于:所述电源供应装置实质上仅仅在中断处理期间向所述第二状态缓存装置供应电源。
6.如权利要求1所述的装置,其中硬件资源装置中不属于有限子集的触发器以及阴影寄存器以多个扫描链进行链接,其长度至多相差一个触发器。
7.如先前权利要求中至少任何一个所述的装置,其特征在于:所述第二指令集装置不允许并行操作。
8.用于在一个数字信号处理装置中处理数字信号的方法,该数字信号处理装置包含多个可用的硬件资源装置(ACU,加载/存储,FU3,FU4,FU5,FU6),其中所述硬件资源装置(ACU,加载/存储,FU3,FU4,FU5,FU6)的至少一部分在一个第一指令集的控制之下执行操作;所述多个可用硬件资源装置的至少一部分预定有限子集在一个第二指令集的控制之下执行操作,其中该第二指令集仅仅能访问所述硬件资源装置(ACU,加载/存储,FU3,FU4,FU5,FU6)的所述预定有限子集(ACU,加载/存储),当中断发生时,该有限子集(ACU,加载/存储)中的硬件资源的状态被复制到阴影寄存器;
其特征在于,在中断服务例程的起点和终点,将阴影寄存器中的复制状态和不属于有限子集的硬件资源的当前状态扫描入和扫描出硬件资源。
9.如权利要求8所述的处理数字信号的方法,其中所述硬件资源包含寄存器堆(RF)和功能单元集群(UC),该功能单元集群包括具有耦合到寄存器堆的输出端口的功能单元流水线,该装置包括在功能单元集群(UC)的输出端口处的FIFO缓存器,每个FIFO缓存器的尺寸至少等于该FIFO缓存器所附着的输出端口的最大延迟,所述方法包括
-依据中断的检测,保存上下文;
-在所述保存期间,不开始功能单元集群中新的操作,并且完成在进行中的操作,
-在所述完成到FIFO缓存器中的过程中,写入在输出端口上出现的数据和寄存器索引;
-当中断服务例程结束时,从FIFO缓存器中而不是从输出端口中获得用于该寄存器堆(RF)的数据和寄存器索引;
-当FIFO缓存器变为空时,切换回到正常操作。
10.如权利要求9所述的处理数字信号的方法,其中FIFO缓存器是部分的扫描链。
11.如权利要求10所述的方法,
其特征在于:实质上仅仅在中断处理期间向所述第二状态缓存装置提供电源。
12.如权利要求8到11中至少任何一个所述的方法,
其特征在于:所述第二指令集装置不允许并行操作。
CNB018050301A 2000-10-18 2001-10-10 数字信号处理装置 Expired - Fee Related CN1230740C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP00203591.3 2000-10-18
EP00203591 2000-10-18

Publications (2)

Publication Number Publication Date
CN1494677A CN1494677A (zh) 2004-05-05
CN1230740C true CN1230740C (zh) 2005-12-07

Family

ID=8172144

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018050301A Expired - Fee Related CN1230740C (zh) 2000-10-18 2001-10-10 数字信号处理装置

Country Status (8)

Country Link
US (1) US7082518B2 (zh)
EP (1) EP1368732B1 (zh)
JP (1) JP3801987B2 (zh)
KR (1) KR100852563B1 (zh)
CN (1) CN1230740C (zh)
AT (1) ATE384992T1 (zh)
DE (1) DE60132633T2 (zh)
WO (1) WO2002033570A2 (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001022600A (ja) * 1999-07-06 2001-01-26 Matsushita Electric Ind Co Ltd ディジタル信号処理装置
WO2004023314A2 (en) 2002-09-03 2004-03-18 Koninklijke Philips Electronics N.V. Method and apparatus for handling nested interrupts
US7493478B2 (en) 2002-12-05 2009-02-17 International Business Machines Corporation Enhanced processor virtualization mechanism via saving and restoring soft processor/system states
US20070074013A1 (en) * 2003-08-25 2007-03-29 Lonnie Goff Dynamic retention of hardware register content in a computer system
DE60321010D1 (de) * 2003-11-26 2008-06-26 Texas Instruments Inc Scan-testbarer FIFO-Speicher
JP2008500627A (ja) * 2004-05-27 2008-01-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 信号処理装置
US20060294344A1 (en) * 2005-06-28 2006-12-28 Universal Network Machines, Inc. Computer processor pipeline with shadow registers for context switching, and method
US7433986B2 (en) * 2005-11-14 2008-10-07 Fujitsu Limited Minimizing ISR latency and overhead
US7832601B2 (en) * 2005-12-21 2010-11-16 The Ritedose Corporation Dispensing container with nipple dispensing head
US7979684B2 (en) 2006-08-07 2011-07-12 Qualcomm Incorporated Method and context switch device for implementing design-for-testability functionality of latch-based register files
TWI386814B (zh) * 2007-12-31 2013-02-21 Ind Tech Res Inst 具動態工作管理能力之多處理器界面及其程式載卸方法
GB0810205D0 (en) * 2008-06-04 2008-07-09 Advanced Risc Mach Ltd Graphics processing systems
US9454367B2 (en) 2012-03-15 2016-09-27 International Business Machines Corporation Finding the length of a set of character data having a termination character
US9459868B2 (en) 2012-03-15 2016-10-04 International Business Machines Corporation Instruction to load data up to a dynamically determined memory boundary
US9459867B2 (en) 2012-03-15 2016-10-04 International Business Machines Corporation Instruction to load data up to a specified memory boundary indicated by the instruction
US9280347B2 (en) * 2012-03-15 2016-03-08 International Business Machines Corporation Transforming non-contiguous instruction specifiers to contiguous instruction specifiers
US9710266B2 (en) 2012-03-15 2017-07-18 International Business Machines Corporation Instruction to compute the distance to a specified memory boundary
US9454366B2 (en) 2012-03-15 2016-09-27 International Business Machines Corporation Copying character data having a termination character from one memory location to another
US9588762B2 (en) 2012-03-15 2017-03-07 International Business Machines Corporation Vector find element not equal instruction
US9459864B2 (en) 2012-03-15 2016-10-04 International Business Machines Corporation Vector string range compare
US9268566B2 (en) 2012-03-15 2016-02-23 International Business Machines Corporation Character data match determination by loading registers at most up to memory block boundary and comparing
US9715383B2 (en) 2012-03-15 2017-07-25 International Business Machines Corporation Vector find element equal instruction
GB2505183A (en) * 2012-08-21 2014-02-26 Ibm Discovering composite keys
US9170968B2 (en) 2012-09-27 2015-10-27 Intel Corporation Device, system and method of multi-channel processing
US11029997B2 (en) * 2013-07-15 2021-06-08 Texas Instruments Incorporated Entering protected pipeline mode without annulling pending instructions
GB2516864A (en) * 2013-08-02 2015-02-11 Ibm Increased instruction issue rate and latency reduction for out-of-order processing by instruction chaining and collision avoidance
US9535846B2 (en) * 2014-07-28 2017-01-03 International Business Machines Corporation Using a decrementer interrupt to start long-running hardware operations before the end of a shared processor dispatch cycle
CN105306658A (zh) * 2014-07-28 2016-02-03 中国电信股份有限公司 基于黑名单的来电处理方法和来电处理系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5003462A (en) 1988-05-31 1991-03-26 International Business Machines Corporation Apparatus and method for implementing precise interrupts on a pipelined processor with multiple functional units with separate address translation interrupt means
US5280616A (en) * 1989-02-27 1994-01-18 International Business Machines Corporation Logic circuit for task processing
US5115506A (en) 1990-01-05 1992-05-19 Motorola, Inc. Method and apparatus for preventing recursion jeopardy
DE69423376T2 (de) * 1993-04-23 2000-10-12 Advanced Micro Devices Inc Unterbrechungsverarbeitung
US5860014A (en) 1996-10-15 1999-01-12 International Business Machines Corporation Method and apparatus for improved recovery of processor state using history buffer
US5844422A (en) * 1996-11-13 1998-12-01 Xilinx, Inc. State saving and restoration in reprogrammable FPGAs
US5987601A (en) 1997-02-14 1999-11-16 Xyron Corporation Zero overhead computer interrupts with task switching
US6128728A (en) * 1997-08-01 2000-10-03 Micron Technology, Inc. Virtual shadow registers and virtual register windows
US6026479A (en) * 1998-04-22 2000-02-15 Hewlett-Packard Company Apparatus and method for efficient switching of CPU mode between regions of high instruction level parallism and low instruction level parallism in computer programs

Also Published As

Publication number Publication date
US20020083253A1 (en) 2002-06-27
ATE384992T1 (de) 2008-02-15
CN1494677A (zh) 2004-05-05
KR100852563B1 (ko) 2008-08-18
JP3801987B2 (ja) 2006-07-26
JP2004512599A (ja) 2004-04-22
EP1368732B1 (en) 2008-01-23
DE60132633D1 (de) 2008-03-13
EP1368732A2 (en) 2003-12-10
DE60132633T2 (de) 2009-01-15
KR20020091056A (ko) 2002-12-05
WO2002033570A3 (en) 2003-10-16
WO2002033570A2 (en) 2002-04-25
US7082518B2 (en) 2006-07-25

Similar Documents

Publication Publication Date Title
CN1230740C (zh) 数字信号处理装置
CN1294485C (zh) 相关性链处理器
US5699536A (en) Computer processing system employing dynamic instruction formatting
TWI299465B (en) Simultaneous multithread processor and method therefor
RU2427895C2 (ru) Оптимизированная для потоков многопроцессорная архитектура
KR101594090B1 (ko) 공유 메모리에 대한 액세스들의 동기화를 완화하기 위한 프로세서들, 방법들 및 시스템들
CN1103960C (zh) 在多级流水线结构中处理条件跳转的结构和方法
KR20180036490A (ko) 로컬 브랜치 디코더를 구비한 멀티이슈 마이크로코드 유닛을 포함하는 파이프라인형 프로세서
TW201802668A (zh) 可中斷及可重啟矩陣乘法指令、處理器、方法和系統
US7100157B2 (en) Methods and apparatus to avoid dynamic micro-architectural penalties in an in-order processor
US20220308883A1 (en) Method and apparatus for scheduling out-of-order execution queue in out-of-order processor
JP2012507805A (ja) シーケンス検出又は命令に関連付けられた情報に基づいた命令の最適化性能
Hilton et al. BOLT: Energy-efficient out-of-order latency-tolerant execution
CN105814538B (zh) 用于仿真共享内存架构的支持浮点的流水线
CN1196997C (zh) 不按序执行指令的装置和检测不按序指令的方法
CN1433538A (zh) 用于构造一个预调度的指令高速缓存的方法和装置
Wun et al. Exploiting coarse-grained parallelism to accelerate protein motif finding with a network processor
CN1266592C (zh) 依据确定延迟的动态vliw指令调度方法
CN1257450C (zh) 节省资源的硬件环路
CN1650258A (zh) 可扩展处理器中的自动任务分配
Roth A high-bandwidth load-store unit for single-and multi-threaded processors
Haffner et al. An analysis and comparison of database cracking kernels
CN108845832B (zh) 一种提高处理器主频的流水线细分装置
EP1537480B1 (en) Method and apparatus for handling nested interrupts
Allen Improving real-time performance with CUDA persistent threads (CuPer) on the Jetson TX2

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
ASS Succession or assignment of patent right

Owner name: SILICON CENTRAL CO., LTD.

Free format text: FORMER OWNER: KONINKLIJKE PHILIPS ELECTRONICS N.V.

Effective date: 20110321

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20110321

Address after: Holland Ian Deho Finn

Patentee after: Silicon intensive Corp.

Address before: Holland Ian Deho Finn

Patentee before: KONINKLIJKE PHILIPS ELECTRONICS N.V.

ASS Succession or assignment of patent right

Owner name: INTEL CORP .

Free format text: FORMER OWNER: INTEL BENELUX B. V.

Effective date: 20140312

Owner name: INTEL BENELUX B. V.

Free format text: FORMER OWNER: SILICON CENTRAL CO., LTD.

Effective date: 20140312

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20140312

Address after: California, USA

Patentee after: INTEL Corp.

Address before: Holland Ian Deho Finn

Patentee before: Intel Benelux Ltd.

Effective date of registration: 20140312

Address after: Holland Ian Deho Finn

Patentee after: Intel Benelux Ltd.

Address before: Holland Ian Deho Finn

Patentee before: Silicon intensive Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20051207

Termination date: 20161010

CF01 Termination of patent right due to non-payment of annual fee