CN101331450A - 用于数字信号处理器的共享中断控制方法及系统 - Google Patents
用于数字信号处理器的共享中断控制方法及系统 Download PDFInfo
- Publication number
- CN101331450A CN101331450A CNA2006800468157A CN200680046815A CN101331450A CN 101331450 A CN101331450 A CN 101331450A CN A2006800468157 A CNA2006800468157 A CN A2006800468157A CN 200680046815 A CN200680046815 A CN 200680046815A CN 101331450 A CN101331450 A CN 101331450A
- Authority
- CN
- China
- Prior art keywords
- interruption
- interrupt
- thread
- shielding
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000012545 processing Methods 0.000 claims abstract description 48
- 230000008569 process Effects 0.000 claims description 28
- VEMKTZHHVJILDY-UHFFFAOYSA-N resmethrin Chemical compound CC1(C)C(C=C(C)C)C1C(=O)OCC1=COC(CC=2C=CC=CC=2)=C1 VEMKTZHHVJILDY-UHFFFAOYSA-N 0.000 claims description 2
- 238000004891 communication Methods 0.000 abstract description 17
- 230000005540 biological transmission Effects 0.000 abstract description 6
- 238000013461 design Methods 0.000 abstract description 3
- 230000026676 system process Effects 0.000 abstract 1
- 238000005516 engineering process Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 102100024210 CD166 antigen Human genes 0.000 description 4
- 101000980840 Homo sapiens CD166 antigen Proteins 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000220317 Rosa Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- 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
-
- 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/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Bus Control (AREA)
- Advance Control (AREA)
Abstract
本发明揭示用于数字信号处理器的设计及使用的技术,其包括(但不限于)在通信(例如,CDMA)系统中处理传输。所揭示的方法及系统通过在中断寄存器中接收在统计上不确定的中断类型的多个中断且然后使多个处理线程与所述中断寄存器相关联以从所述中断寄存器接收所述中断来处理多线程处理器中出现的中断。所述方法及系统屏蔽至少一子组所述多个处理线程以在所述子组内的所述线程中的每一者内仅接收所述多个中断中的一个或一个以上预定类型的中断,从而根据与特定线程相关联的所述屏蔽在每一线程的基础上控制对所述多个中断的所述处理。
Description
技术领域
所揭示的标的物涉及数据通信。更特定来说,本揭示内容涉及一种用于数字信号处理器的新颖及经改善的共享中断控制方法及系统。
背景技术
电子装备及支持软件应用程序越来越多地涉及信号处理。家庭影院、计算机图形学、医学成像及电信均依赖信号处理技术。信号处理需要复杂但重复算法中的快速数学。许多应用需要实时计算,即信号是时间的连续函数,其必须被取样并转换为数字供数值处理。因此,处理器必须在样本到达时执行对所述样本实施离散计算的算法。数字信号处理器(DSP)的架构经优化以处置所述算法。良好的数字处理引擎的特性包括快速、灵活的算术计算单元、到达及来自所述计算单元的不受限制数据流、所述计算单元中的扩增精确度及动态范围、双重地址产生器、高效的程序定序及易于编程。
DSP技术的一种有前景应用包括通信系统,例如支持用户之间通过卫星或陆地链路进行话音及数据通信的码分多址(CDMA)系统。CDMA技术在多址通信系统中的使用揭示于标题为“使用卫星或陆地中继器的扩展频谱多址通信系统(SPREADSPECTRUM MULTIPLE ACCESS COMMUNICATION SYSTEM USING SATELLITEOR TERRESTRIAL REPEATERS)”的第4,901,307号美国专利及标题为“用于在CDMA蜂窝式手机系统中产生波形的系统及方法(SYSTEM AND METHOD FORGENERATING WAVEFORMS IN A CDMA CELLULAR TELEHANDSET SYSTEM)”的第5,103,459号美国专利中,其两者均受让予所请求标的物的受让人。
CDMA系统通常经设计以符合一个或一个以上标准。一种所述第一代标准是“用于双模式宽带扩展频谱蜂窝式系统的TIA/EIA/IS-95终端-基站兼容性标准”,所述标准在下文中称作IS-95标准。所述IS-95CDMA系统能够传输话音数据及包数据。可更高效地传输包数据的新一代标准是由名称为“第三代合作伙伴计划”(3GPP)的联盟提供的且体现于可公开获得的一组文件中,所述组文件包括第3G TS 25.211、3G TS25.212、3G TS 25.213及3G TS 25.214号文件。3GPP标准在下文中称作W-CDMA标准。
因为DSP既定用于实时系统中的操作,因此高效、精巧及可预测的中断处置对于DSP至关重要。上下文切换应非常快速。像浮点族等高级DSP支持完整组替代寄存器,从而允许上下文的单循环切换以支持中断处置。高级DSP除内部中断之外还可支持至少四个或更多个独立的外部中断。此类装置中的中断延迟可保持为仅几个循环且必须可预测。中断还应可嵌套且可优先化。此外,应容易地实时启用及停用特定中断。
在习用DSP的情况下,中断处置在每一处理器的基础上发生,或在多线程处理器的情况下,其在每一线程的基础上发生。在某些多线程DSP中,每一处理器及每一线程中断处置两者均可能存在。遗憾的是,在每一处理器或每一线程处理的情况下,硬件设计及编程上的不必要及不需要复杂性产生。在每一处理器及每一线程处置两者的情况下,甚至可能出现更大的复杂性。
因此,需要一种用于在多线程DSP中处理中断的方法及系统,其避免每一处理器及每一线程硬件设计及软件编程复杂性。
发明内容
本发明揭示为数字信号处理器提供共享中断控制方法及系统的技术,所述技术改善数字信号处理器的操作及对数字信号处理器指令的高效使用两者,以处理个人计算机、个人数字助理、无线手持机及类似电子装置的越来越强健的软件应用程序,以及提高相关联的数字处理器速度及服务质量。
根据所揭示标的物的一个方面,提供一种用于数字信号处理器的共享中断控制方法及系统,所述数字信号处理器在中断寄存器中接收在统计上不确定的中断类型的多个中断。所述方法及系统使多个处理线程与所述中断寄存器相关联以从所述中断寄存器接收所述中断。然后,屏蔽所述多个处理线程,以在所述线程中的每一者内仅接收所述多个中断中的一个或一个以上预定类型的中断,从而根据与特定线程相关联的屏蔽在每一线程的基础上控制对所述多个中断的处理。
根据所揭示标的物的另一方面,提供一种用于在服务多个线程的数字信号处理器中处理外部中断的方法及系统,所述方法及系统包括使中断控制器与多个处理器管线线程相关联。所述过程进一步在所述中断控制器中接收第一外部中断,所述第一外部中断是任意类型。然后,所述过程使第一屏蔽与所述第一外部中断相关联以启用一组所述多个处理器管线线程来接受所述第一外部中断。然后,所揭示的标的物将所述第一外部中断引导到能够接受所述第一外部中断及所述第一屏蔽的第一可用处理器管线线程。然后,所述方法及系统允许在所述中断控制器中接收第二外部中断。所述第二外部中断可以是任意类型且使第二屏蔽与所述第二外部中断相关联以启用一组所述多个处理器管线线程来接受所述第二外部中断。将所述第二外部中断引导到能够接受所述第二外部中断及所述第二屏蔽的下一可用处理器管线线程。此过程可重复且所揭示的系统准许在外部中断串流到达所述中断控制器供所述数字信号处理器进行处理时重复所述接收步骤、所述关联步骤及所述引导步骤,从而向所述组的所述多个处理器管线线程中的每一者提供呈分布流形式的任意外部中断及关联屏蔽的流。
从本文所提供的说明将明了所揭示标的物的这些及其它优点以及额外新颖特征。此发明内容的目的并非是对所请求标的物的全面说明,而是提供对本标的物的功能性的简短概述。在检查以下图式及详细说明之后,所属领域的技术人员将明了本文所提供的其它系统、方法、特征及优点。所有所述额外系统、方法、特征及优点既定包括在此说明中,且在随附权利要求书的范围内。
附图说明
结合图式阅读下文所述的详细说明,将更加明了所揭示标的物的特征、性质及优点,所有图式中相同的参考字符对应地进行标识,图式中:
图1是可实施本实施例的通信系统的简化方块图;
图2图解说明用于实施本实施例的教示的DSP架构;
图3提供数字信号处理器的一个实施例的架构方块图,所述数字信号处理器提供所揭示标的物的技术优点;
图4提供本揭示内容的事件处置的功能性方块图;
图5显示用于所揭示标的物的屏蔽寄存器格式;
图6提供用于所揭示标的物的待定中断寄存器格式;
图7提供图解说明所揭示标的物的某些新颖功能的简化流程图。
具体实施方式
实施例
所揭示的标的物是用于数字信号处理器的共享中断控制方法及系统,所述方法及系统实际上应用于涉及本文所呈现益处可能对其有利的任何类型的多线程处理的数字信号处理应用。一种所述应用出现在电信中,且特定来说出现在采用一个或一个以上数字信号处理电路的无线手持机中。出于解释此种无线手持机如何使用的目的,图1提供通信系统10的简化方块图,所述系统可实施所揭示中断处理方法及系统的所提供实施例。在传输器单元12处,通常以块为单位将数据从数据源14发送到传输(TX)数据处理器16,所述传输数据处理器将所述数据格式化、编码及处理以产生一个或一个以上模拟信号。然后,将模拟信号提供到传输器(TMTR)18,所述传输器将所述基带信号调制、滤波、放大及上变频以产生经调制的信号。然后,经由天线20将所述经调制的信号传输到一个或一个以上接收器单元。
在接收器单元22处,所传输的信号由天线24接收并提供到接收器(RCVR)26。在接收器26内,将所述所接收的信号放大、滤波、下变频、解调制及数字化以产生同相(I)及(Q)样本。然后,所述样本由接收(RX)数据处理器28解码及处理以恢复所传输的数据。接收器单元22处的解码及处理是以与传输器单元12处实施的编码及处理兼容的方式实施的。然后,将已恢复的数据提供到数据汇30。
上述信号处理支持话音、视频、包数据的传输、消息传送及其它类型的单向通信。双向通信系统支持双向数据传输。然而,为简明起见图1中而未显示其它方向的信号处理。通信系统10可以是码分多址(CDMA)系统、时分多址(TDMA)通信系统(例如,GSM系统)、频分多址(FDMA)通信系统或支持用户之间通过陆地链路进行话音及数据通信的其它多址通信系统。在具体实施例中,通信系统10是符合W-CDMA标准的CDMA系统。
图2图解说明可充当图1的传输数据处理器16及接收数据处理器28的DSP 40架构。再次,强调DSP 40仅表示可高效地使用本文所提供教示及概念的大量可行数字信号处理器实施例中的一个实施例。因此,在DSP 40中,线程T0:T5(参考编号42至52)含有来自不同线程的指令集。电路54表示指令存取机构且用于提取线程T0:T5的指令。电路54的指令排入指令队列56中。指令队列56中的指令准备发布到处理器管线66中(见下文)。发布逻辑电路58可从指令队列56中选择单个线程,例如线程T0。读取所选线程的寄存器堆60并将所读取的数据发送到槽0至槽3的执行数据路径62。在此实例中,槽0至槽3提供用于本实施例中的包分组组合。
来自执行数据路径62的输出去往寄存器堆写入电路64,还经配置以适应个别线程T0:T5,以返回DSP 40的操作的结果。因此,从电路54开始且在到达寄存器堆写入电路64之前根据各个线程来划分的数据路径形成处理管线66。
本实施例可采用使用具有多达六个线程T0至T5的单个微处理器的异构元素处理器(HEP)系统的混合。处理器管线66具有六个级,以匹配从电路54将数据项目提取到寄存器60及64所需要的最小数量的处理器循环。DSP 40在处理器管线66内同时执行不同线程T0:T5的指令。也就是说,DSP 40提供6个独立的程序计数器、用于区别处理器管线66内线程T0:T5的指令的内部标记机构及触发线程切换的机构。线程切换开销从零到仅几个循环而变化。
因此,DSP 40提供设计用于在各种各样的信号、图像及视频处理应用上具有高性能及低功率的通用数字信号处理器。图3提供DSP 40架构的简要概述,其包括所揭示标的物的一个表现形式的相关联指令集架构的某些方面。DSP 40架构的实施方案支持交错多线程(IMT)。在此执行模型中,硬件通过交错来自管线中的不同线程的指令来支持多个硬件线程T0:T5的同时执行。此特性允许DSP 40包括主动的时钟频率,同时仍维持高的核心及存储器利用率。IMT在不需要昂贵的补偿机构(例如,无序执行、广泛转发网络等)的前提下提供高通量。此外,DSP 40可包括IMT的变化形式,例如M.Ahmed等人在标题为“可变交错的多线程处理器方法及系统(Variable Interleaved Multithreaded Processor Method and System)”及“用于在多线程处理器中进行可变线程分配及切换的方法及系统(Method and System for Variable Thread Allocation and Switching in a Multithreaded Processor)”的共同转让的美国专利申请案中揭示的那些变化形式及新颖方法。
特定来说,图3提供单个线程的编程模型的一个实施例的架构方块图,其可采用所揭示标的物的教示,包括用于数字信号处理器的共享中断控制方法及系统。方块图70描绘从AXI总线74接收指令的专用指令高速缓存器72,所述指令包括到达线程T0:T5的定序器76、用户控制寄存器78及管理控制寄存器80的混杂16位及32位指令。定序器76向S-管线单元82、M-管线单元84、Ld-管线86及Ld/St-管线单元88提供混合双向超标量体系结构指令及四向VLIW指令。AXI总线74还通过共享数据高速缓存器90将LD/ST指令传递到线程T0:T5。借助外部DMA主装置96,共享数据TCM 98传递LD/ST指令,所述LD/ST指令进一步流到线程T0:T5。MSM专有控制器102从AHB外围设备总线100与T0:T5传递中断引脚,包括中断控制器指令、调试指令及定时指令。全局控制寄存器104与线程T0:T5传递控制寄存器指令。
图4提供本揭示内容的事件处置的功能性方块图。在事件处理程序架构110中,MSM专有块112包括中断控制器块114、调试及性能监视器块116及定时器块118。MSM专有块110向全局控制寄存器122提供十六(16)个通用中断120且向事件处置寄存器126提供不可屏蔽的中断(NMI)124。全局控制寄存器122包括IPEND寄存器128、向量基寄存器130、模式控制寄存器132。16个中断类型129可从IPEND寄存器128去往事件处置寄存器126。向量基寄存器130可向事件处置寄存器126发送20个中断131,而模式控制寄存器132可向事件处置寄存器126提供1x6个重置中断133。
事件处置寄存器126包括中断屏蔽(MASK)寄存器134,其向过程事件寄存器136提供屏蔽数据。过程事件寄存器136还接收内部例外请求,包括TLB未命中、错误及陷阱指令请求。来自全局控制寄存器122的通信与通用指令寄存器(R0-R31)90及管理控制寄存器80发生。
因此,使用所揭示标的物的中断处理包括三种类型的外部指令,其包括软重置中断133、通用可屏蔽中断120、129及131以及不可屏蔽中断124。有16个可屏蔽通用中断在所有所述线程之间共享。当所述16个通用中断120中的一者升起时,设定全局IPEND寄存器128中的对应位以表明此中断待定。线程通过将所述全局IPEND寄存器与所述本地IMASK寄存器逻辑AND来确定其是否能够处理中断。
如果线程T0:T5(a)已使中断启用(IE=1)且(b)未在例外处理程序中(EX=0),且(c)(IPEND&IMASK)的结果为非零,那么所述线程可处理中断。然后,所述线程将有资格处理所述中断。在一个以上中断待定的情况下,所述优先级为中断0(最高优先级)到中断15(最低优先级)。当全局中断到来且在IPEND中标记时,所述六个硬件线程中的任一者可潜在地服务所述中断。所述有资格进行所述中断的硬件线程组中的仅一者将处理所述中断。
所揭示标的物的重要方面受益于所述有资格线程及可屏蔽中断的随机性。即,无法确定所述有资格线程中的哪一者将服务所述中断,因为所述过程及任何既定类型的中断的到达是随机的。所述硬件将从所述有资格组选择线程,所述线程将被中断,且所述中断随后将被从IPEND寄存器128中清除,使得将无其它线程服务所述中断。
所述软件可通过适当的IMASK寄存器134编程将特定中断引导到特定的硬件线程。举例来说,如果仅硬件线程T1:T5具有用于中断6组的MASK位,那么仅硬件线程T1:T5可接收所述中断。当中断由线程接受时,所述机器将首先清除IPEND寄存器128中的适当位。然后,将针对所选择的线程停用中断,将设定所述例外位以表明所述线程现在处于管理模式,SSR中的原因字段将填充有中断编号,且所述机器将跳到所述适当的中断服务例行程序。
图5的一个实施例显示用于所揭示标的物的屏蔽寄存器格式140,其包括用于含有所述特定屏蔽的IMASK位0到15。可为本实施例保留位16到31,同时准许所述建立。因此,屏蔽寄存器140含有所述屏蔽的16个位的读取/写入字段142,从而允许软件单独地将所述16个外部中断120中的每一者从中断控制器114屏蔽掉。如果设定屏蔽字段142中的特定位,那么所述16个外部中断120的对应中断启用且将被此线程接受。另一选择为,如果所述位被清除,那么所述对应中断将不被接受。
图6提供所揭示标的物的一个实施例的IPEND寄存器格式150的实例。特定来说,IPEND寄存器格式150包括所保留的字段152(其可在稍后的版本中加以填充)及IPEND寄存器位字段154(其含有通用中断类型位)。在IPEND寄存器位字段154中,位0采取指示最高优先级中断类型的1值。最低优先级中断类型可由采取值1的位15指示。可存在用于指示不同通用中断类型的其它方式,所有所述方式与所主张标的物的教示相一致。
图7提供用于图解说明所揭示标的物在确定特定线程T0:T5可处理既定中断类型的某些新颖功能的流程图160。流程图160以步骤162开始,在此点处中断控制器114向通用控制寄存器122的IPEND寄存器128提供至少一子组的16个通用中断类型120。在步骤164处,IMASK寄存器134可存储用于与DSP 40的各个线程T0:T5相关联的一个或一个以上屏蔽。因此,在IPEND含有一个或一个以上通用中断类型120且IMASK寄存器134潜在地存储对应的屏蔽的情况下,流程图160在询问166处首先确定是否针对特定的线程启用线程中断处理。然后,在询问168处,所述过程确定所述特定线程并非作为例外处理程序操作。在询问170处,在进行IPEND寄存器128与IMASK寄存器134的逻辑AND之后,所述结果是否为非零的测试发生,从而确定IPEND寄存器128与IMASK寄存器134内容之间的匹配。如果非零结果发生,那么所述流程继续到步骤172,在此处所述特定线程处理对应于所述特定屏蔽的中断。如果询问166、168或170中的任一者的测试失败,那么处理去往步骤174,在此处过程流程160确定所述线程不能处理正被检查的中断。
用于实施所揭示标的物的共享中断处置功能的一个实施例的实例性伪码可如本文所提供。用于服务中断的硬件行为图解说明于以下伪码中:
//start can be any random #0-5
//loop over all threads
for(thread=NEXT(start);thread!=start;thread=NEXT(thread);){
//loop over all the interrupts in priority order
for(IntNum=0;IntNum<16;IntNum++){
//ifthe thread is qualified for this interrupt
if((IPEND[IntNum]&IMASK[thread][IntNuml)&& IE[thread])
{
//take the interrupt
IPEND[IntNum]=0;//the Interrupt is serviced
EX[Thread]=1;//put thread in supervisor mode
ELR[Thread]=PC;//save return PC
SSR[Thread].CAUSE =IntNum;
PC[Thread]=(EVB)|((IntNum+16)<<2)//jump to ISR
return;//done for this cycle
}
}
}
本实施例可能不支持DSP 40硬件中的中断的自动嵌套。然而,可通过在接收中断之后首先将所有相关信息保存到管理堆栈而在软件控制下实施嵌套。然后,所述过程可重新启用中断,实施所述相关ISR任务,然后停用中断,回复到上下文,且返回。所述过程的实例可用于以下:
ISR_w_nesting:
CRSWAP(R29,SGPR0)//swap user stack pointer and supervisor stack
ALLOCFRAME(#32)//saves FP,LR,sets FP,adds to SP
MEMD(SP+#0)=R1:0//save some user registers on supervisor stack
R0=ELR
R1=SSR
MEMD(SP+#8)=R1:0//save SSR:ELR on supervisor stack
CRSWAP(R2,SGPR0)//swap back user and supervisor stack pointers
//at this point all context is saved on the supervisor stack
//and SGPR0is the adjusted supervisor stack pointer.
R0=#0x4//100b
R1=insert(r1,#3,#16)//set UM=0,EX=0,IE=1
SSR =R1//now in supervisor mode,interrupts enabled
..//do ISR task//....
//now,we want to restore and return
DI//disable interrupts
CRSWAP(R29,SGPR0)//swap user stack pointer and supervisor stack
R1:0=MEMD(SP+#)//res tore SSR:ELR
ELR=R0
SSR=R1
R1:0=MEMD(SP+#0)//restore user R1:0
DEALLOCFRAME
CRSWAP(R29,SGPR0)//swap back user and supervisor stack pointers
RTE//return from exception,sets EX=0
软件中断指令(SWI)致使规定的中断被投寄于IPEND寄存器128中。此指令的目的是允许线程彼此中断。当一个线程执行SWI指令时,其通过正常的外部中断机构处理。将响应于所述SWI指令而中断来自所述有资格线程组的随机硬件线程。此指令可用于构建软件抽象,例如分叉()(fork())、合并()(join())等。
所述软重置中断是不可屏蔽的且在每一线程的基础上操作。所述六个线程中的每一者均存在一个重置中断输入。所述子系统中断控制器可单独地重置线程。用于将软重置中断触发到特定线程的准确方法是中断控制器专有的,然而,一种导致软重置例外的方式是调用从关闭(OFF)模式到管理模式上的转换。在接收到所述不可屏蔽的软重置中断之后,所述线程将清理所述SSR寄存器,且跳到所述重置向量。
在不可屏蔽中断(NMI)124的情况下,事件处置电路110可随机选择所述六个线程T0:T5中的一者且将NMI 124输送到所述线程。然后,所选择的线程将实施以下动作:
ELR=PC//save PC in the exception link register
SSR[EX]=1//set exception bit in SSR
SSR[CAUSE]=#NMI//set reason to NMT
PC=(EVB)|(1<<2)
注意不应将任一NMI 124视为可恢复的中断。如果线程T0:T5在事件处理程序内部且NMI 124发生,那么ELR及CAUSE寄存器将被重写,从而不可能返回到所述原始中断或导致例外的码。
本文所述的处理特征及功能可以各种方式实施。举例来说,不仅DSP 40可实施上述操作,而且本实施例可实施于专用集成电路(ASIC)、微控制器、微处理器或设计用于实施本文所述功能的其它电子电路中。因此,提供对优选实施例的以上说明旨在使所属技术领域的技术人员能够制造或使用所请求的标的物。所属技术领域的技术人员将易于了明了对这些实施例的各种修改,且本文所界定的一般原理可在不使用创新能力的情况下适用于其它实施例。因此,本文并非打算将所请求标的物限定为本文显示的实施例,而是将赋予其与本文所揭示的原理及新颖特征相一致的最宽广范围。
Claims (29)
1、一种用于处理多线程处理器中出现的中断的方法,其包含以下步骤:
在中断寄存器中接收在统计上不确定的中断类型的多个中断;
使多个处理线程与所述中断寄存器相关联以从所述中断寄存器接收所述中断;
屏蔽至少一子组的所述多个处理线程以在所述子组内的所述线程中的每一者内仅接收所述多个中断中的一个或一个以上预定类型的中断,从而根据与特定线程相关联的所述屏蔽在每一线程的基础上控制对所述多个中断的所述处理。
2、如权利要求1所述的方法,其进一步包含使用从一可编程组屏蔽中选出的对应于一预定组中断类型的屏蔽来屏蔽所述至少一子组所述多个处理线程的步骤。
3、如权利要求1所述的方法,其进一步包含在以下情况下用处理线程处理所述中断的步骤:所述处理线程已使中断处理启用,且所述屏蔽对应于所述中断的所述类型,且所述线程不是例外处理程序。
4、如权利要求1所述的方法,其进一步包含使用所述中断寄存器内的所述中断与含有屏蔽且与线程相关联的屏蔽寄存器的内容的逻辑AND来确定所述中断对应于所述屏蔽的步骤。
5、如权利要求1所述的方法,其进一步包含在所述中断寄存器含有多个所述屏蔽的情况下确定处理所述中断寄存器内的所述屏蔽中的一者的优先级的步骤。
6、如权利要求1所述的方法,其进一步包含在线程处理所述中断中的所接收一者的情况下将所述中断中的所述一者从所述中断寄存器中清除的步骤。
7、如权利要求6所述的方法,其进一步包含在所述中断的所述处理期间停用处理所述中断中的所述一者的所述线程处理的步骤。
8、如权利要求1所述的方法,其进一步包含进一步包含使用多个软件指令嵌套所述多个中断的所述处理的步骤的步骤。
9、如权利要求1所述的方法,其进一步包含随机接收所述中断中具有不可屏蔽性质的任一者以在所述多个线程中的任一者中进行处理的步骤。
10、一种系统,其用于与数字信号处理器相关联地操作以处理在多线程处理器中出现的中断,所述系统包含:
中断寄存器,其与所述处理器相关联且用于接收在统计上不确定的中断类型的多个中断;
线程控制电路,其用于使多个处理线程与所述中断寄存器相关联以从所述中断寄存器接收所述中断;及
屏蔽寄存器,其用于将屏蔽施加到至少一子组所述多个处理线程,以使得所述子组的所述多个处理线程仅接收所述多个中断中对应于所述屏蔽的一个或一个以上预定类型的中断,从而根据所述屏蔽及所述中断类型在每一线程的基础上控制对所述多个中断的所述处理。
11、如权利要求10所述的系统,其中所述屏蔽寄存器进一步包含电路及指令,所述电路及指令用于使用从一可编程组屏蔽中选出的对应于一预定组中断类型的屏蔽来屏蔽所述至少一子组的所述多个处理线程。
12、如权利要求10所述的系统,其中所述处理器进一步包含处理指令及电路,所述电路及指令用于在以下情况下用处理线程处理所述中断:所述处理线程已使中断处理启用,且所述屏蔽对应于所述中断的所述类型,且所述线程不是例外处理程序。
13、如权利要求10所述的系统,其中所述处理器进一步包含处理电路及指令,所述电路及指令用于使用所述中断寄存器内的所述中断与含有屏蔽且与线程相关联的屏蔽寄存器的所述内容的逻辑AND来确定所述中断对应于所述屏蔽。
14、如权利要求10所述的系统,其中所述处理器进一步包含处理电路及指令,所述电路及指令在所述中断寄存器含有多个所述屏蔽的情况下确定处理所述中断寄存器内的所述屏蔽中的一者的优先级。
15、如权利要求10所述的系统,其中所述中断寄存器处理器进一步包含电路及指令,所述电路及指令用于在线程处理所述中断中的所接收一者的情况下将所述中断中的所述一者从所述中断寄存器清除。
16、如权利要求15所述的系统,其中所述处理器进一步包含电路及指令,所述电路及指令用于在所述中断的所述处理期间停用处理所述中断中的所述一者的所述线程。
17、如权利要求10所述的系统,其中所述处理器进一步包含用于嵌套所述多个中断的所述处理的处理指令。
18、如权利要求10所述的系统,其中所述处理器进一步包含处理电路及指令,所述电路及指令用于随机接收所述中断中具有不可屏蔽性质的任一者以在所述多个线程中的任一者中进行处理。
19、一种数字信号处理器,其用于支持个人电子装置的操作,所述数字信号处理包含用于共享控制处理装置的装置,所述共享控制处理装置用于在多线程处理中处理一预定组的中断类型,所述共享控制处理装置包含:
关联装置,其用于使中断控制器与多个处理器管线线程相关联
接收装置,其用于在所述中断控制器中接收第一外部中断,所述第一外部中断是任意类型;
关联装置,其用于使第一屏蔽与所述第一外部中断相关联以启用一组所述多个处理器线程来接受所述第一外部中断;
引导装置,其用于将所述第一外部中断引导到能够接受所述第一外部中断及所述第一屏蔽的第一可用处理器管线线程;
接收装置,其用于在所述中断控制器中接收第二外部中断,所述第二外部中断是任意类型;
关联装置,其用于使第二屏蔽与所述第二外部中断相关联以启用一组所述多个处理器管线线程来接受所述第二外部中断;
引导装置,其用于将所述第二外部中断引导到能够接受所述第二外部中断及所述第二屏蔽的下一可用处理器管线线程;
重复装置,其用于在外部中断串流到达所述中断控制器供所述数字信号处理器进行处理时重复所述接收步骤、所述关联步骤及所述引导步骤,从而向所述组的所述多个处理器管线线程中的每一者提供呈分布流形式的任意外部中断及关联屏蔽的流。
20、如权利要求19所述的数字信号处理器系统,其进一步包含用于使用从一可编程组屏蔽选出的对应于一预定组中断类型的屏蔽来屏蔽一子组所述多个处理器线程的装置。
21、如权利要求19所述的数字信号处理器系统,其进一步包含用于在以下情况下用处理器线程处理所述中断的装置:所述处理器线程已使中断处理启用,且所述屏蔽对应于所述中断的所述类型,且所述线程不是例外处理程序。
22、如权利要求19所述的数字信号处理器系统,其进一步包含用于使用所述中断寄存器内的所述中断与含有屏蔽且与线程相关联的屏蔽寄存器的所述内容的逻辑AND来确定所述中断对应于所述屏蔽的装置。
23、如权利要求19所述的数字信号处理器系统,其进一步包含用于在所述中断寄存器含有多个所述屏蔽的情况下确定处理所述中断寄存器内的所述屏蔽中的一者的优先级的装置。
24、如权利要求19所述的数字信号处理器系统,其进一步包含用于在线程处理所述中断中的所接收一者的情况下将所述中断中的所述一者从所述中断寄存器清除的装置。
25、如权利要求19所述的数字信号处理器系统,其进一步包含用于在所述中断的所述处理期间停用处理所述中断中的所述一者的所述线程处理的装置。
26、如权利要求19所述的数字信号处理器系统,其进一步包含用于使用多个软件指令嵌套所述多个中断的所述处理的装置。
27、如权利要求26所述的数字信号处理器系统,其进一步包含用于随机接收所述中断中具有不可屏蔽性质的任一者以在所述多个线程中的任一者中进行处理的装置。
28、一种计算机可用媒体,其具有体现于所述计算机可用媒体中用于在数字信号处理器上处理指令的计算机可读程序码装置,所述计算机可用媒体包含:
计算机可读程序码装置,其用于在中断寄存器中接收在统计上不确定的中断类型的多个中断;
计算机可读程序码装置,其用于使多个处理线程与所述中断寄存器相关联以从所述中断寄存器接收所述中断;
计算机可读程序码装置,其用于屏蔽至少一子组的所述多个处理线程以在所述子组内的所述线程中的每一者内仅接收所述多个中断中的一个或一个以上预定类型的中断,从而根据与特定线程相关联的所述屏蔽在每一线程的基础上控制对所述多个中断的所述处理。
29、如权利要求28所述的计算机可用媒体,其进一步包含用于使用从一可编程组屏蔽中选出的对应于一预定组中断类型的屏蔽来屏蔽所述至少一子组的所述多个处理线程的计算机可读程序码装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410720684.2A CN104484159B (zh) | 2005-10-18 | 2006-10-18 | 用于数字信号处理器的共享中断控制方法及系统 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/253,906 | 2005-10-18 | ||
US11/253,906 US7702889B2 (en) | 2005-10-18 | 2005-10-18 | Shared interrupt control method and system for a digital signal processor |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410720684.2A Division CN104484159B (zh) | 2005-10-18 | 2006-10-18 | 用于数字信号处理器的共享中断控制方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101331450A true CN101331450A (zh) | 2008-12-24 |
Family
ID=37949468
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410720684.2A Expired - Fee Related CN104484159B (zh) | 2005-10-18 | 2006-10-18 | 用于数字信号处理器的共享中断控制方法及系统 |
CNA2006800468157A Pending CN101331450A (zh) | 2005-10-18 | 2006-10-18 | 用于数字信号处理器的共享中断控制方法及系统 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410720684.2A Expired - Fee Related CN104484159B (zh) | 2005-10-18 | 2006-10-18 | 用于数字信号处理器的共享中断控制方法及系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7702889B2 (zh) |
EP (1) | EP1941352B1 (zh) |
CN (2) | CN104484159B (zh) |
WO (1) | WO2007047784A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109522048A (zh) * | 2017-09-18 | 2019-03-26 | 展讯通信(上海)有限公司 | 一种同步多线程中断验证方法及系统 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7984281B2 (en) * | 2005-10-18 | 2011-07-19 | Qualcomm Incorporated | Shared interrupt controller for a multi-threaded processor |
US7870372B2 (en) * | 2006-08-14 | 2011-01-11 | Marvell World Trade Ltd. | Interrupt handling |
JP5212357B2 (ja) * | 2007-03-12 | 2013-06-19 | 富士通株式会社 | マルチcpu異常検出復旧システム、方法及びプログラム |
US8656145B2 (en) * | 2008-09-19 | 2014-02-18 | Qualcomm Incorporated | Methods and systems for allocating interrupts in a multithreaded processor |
KR102365113B1 (ko) * | 2015-05-27 | 2022-02-18 | 삼성전자주식회사 | 적응적 인터럽트 처리 방법 및 장치와 이를 적용하는 호스트, i/o 디바이스 및 시스템 |
CN106681816A (zh) * | 2016-12-27 | 2017-05-17 | 深圳开立生物医疗科技股份有限公司 | PCIe中断方法和系统 |
CN112306217B (zh) * | 2020-10-28 | 2023-07-18 | 瑞芯微电子股份有限公司 | 一种显示变频方法和系统 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4689739A (en) * | 1983-03-28 | 1987-08-25 | Xerox Corporation | Method for providing priority interrupts in an electrophotographic machine |
US4901307A (en) * | 1986-10-17 | 1990-02-13 | Qualcomm, Inc. | Spread spectrum multiple access communication system using satellite or terrestrial repeaters |
US5193187A (en) * | 1989-12-29 | 1993-03-09 | Supercomputer Systems Limited Partnership | Fast interrupt mechanism for interrupting processors in parallel in a multiprocessor system wherein processors are assigned process ID numbers |
US5103459B1 (en) * | 1990-06-25 | 1999-07-06 | Qualcomm Inc | System and method for generating signal waveforms in a cdma cellular telephone system |
JPH0743653B2 (ja) * | 1990-07-25 | 1995-05-15 | 株式会社東芝 | 割込みコントローラ |
US5305455A (en) * | 1990-12-21 | 1994-04-19 | International Business Machines Corp. | Per thread exception management for multitasking multithreaded operating system |
US5524250A (en) * | 1991-08-23 | 1996-06-04 | Silicon Graphics, Inc. | Central processing unit for processing a plurality of threads using dedicated general purpose registers and masque register for providing access to the registers |
US5805922A (en) * | 1994-05-02 | 1998-09-08 | Motorola, Inc. | Queued serial peripheral interface having multiple queues for use in a data processing system |
US6260057B1 (en) * | 1995-03-01 | 2001-07-10 | Sun Microsystems, Inc. | Apparatus and method for high performance implementation of system calls |
JPH0997177A (ja) * | 1995-09-29 | 1997-04-08 | Toshiba Corp | コンピュータシステムの割り込み制御方式 |
US6233599B1 (en) * | 1997-07-10 | 2001-05-15 | International Business Machines Corporation | Apparatus and method for retrofitting multi-threaded operations on a computer by partitioning and overlapping registers |
US5904733A (en) * | 1997-07-31 | 1999-05-18 | Intel Corporation | Bootstrap processor selection architecture in SMP systems |
US6032245A (en) * | 1997-08-18 | 2000-02-29 | International Business Machines Corporation | Method and system for interrupt handling in a multi-processor computer system executing speculative instruction threads |
US6061710A (en) * | 1997-10-29 | 2000-05-09 | International Business Machines Corporation | Multithreaded processor incorporating a thread latch register for interrupt service new pending threads |
US6163829A (en) * | 1998-04-17 | 2000-12-19 | Intelect Systems Corporation | DSP interrupt control for handling multiple interrupts |
US6205519B1 (en) * | 1998-05-27 | 2001-03-20 | Hewlett Packard Company | Cache management for a multi-threaded processor |
US6317820B1 (en) * | 1998-06-05 | 2001-11-13 | Texas Instruments Incorporated | Dual-mode VLIW architecture providing a software-controlled varying mix of instruction-level and task-level parallelism |
US6480818B1 (en) * | 1998-11-13 | 2002-11-12 | Cray Inc. | Debugging techniques in a multithreaded environment |
US6253304B1 (en) * | 1999-01-04 | 2001-06-26 | Advanced Micro Devices, Inc. | Collation of interrupt control devices |
US7065633B1 (en) * | 1999-01-28 | 2006-06-20 | Ati International Srl | System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU |
US6754690B2 (en) * | 1999-09-16 | 2004-06-22 | Honeywell, Inc. | Method for time partitioned application scheduling in a computer operating system |
US7120783B2 (en) * | 1999-12-22 | 2006-10-10 | Ubicom, Inc. | System and method for reading and writing a thread state in a multithreaded central processing unit |
US20010052053A1 (en) * | 2000-02-08 | 2001-12-13 | Mario Nemirovsky | Stream processing unit for a multi-streaming processor |
US6839792B2 (en) * | 2000-12-15 | 2005-01-04 | Innovative Concepts, Inc. | Data modem |
US20020103847A1 (en) * | 2001-02-01 | 2002-08-01 | Hanan Potash | Efficient mechanism for inter-thread communication within a multi-threaded computer system |
US20020161957A1 (en) * | 2001-02-09 | 2002-10-31 | Guillaume Comeau | Methods and systems for handling interrupts |
US20020144004A1 (en) * | 2001-03-29 | 2002-10-03 | Gaur Daniel R. | Driver having multiple deferred procedure calls for interrupt processing and method for interrupt processing |
JP4035004B2 (ja) * | 2002-06-26 | 2008-01-16 | 株式会社ルネサステクノロジ | 情報処理装置 |
US6971103B2 (en) * | 2002-10-15 | 2005-11-29 | Sandbridge Technologies, Inc. | Inter-thread communications using shared interrupt register |
US7203823B2 (en) * | 2003-01-09 | 2007-04-10 | Sony Corporation | Partial and start-over threads in embedded real-time kernel |
US6928502B2 (en) * | 2003-01-31 | 2005-08-09 | Via Telecom Co., Ltd. | Method and apparatus for processing interrupts at dynamically selectable prioritization levels |
US7013383B2 (en) * | 2003-06-24 | 2006-03-14 | Via-Cyrix, Inc. | Apparatus and method for managing a processor pipeline in response to exceptions |
US20050050305A1 (en) * | 2003-08-28 | 2005-03-03 | Kissell Kevin D. | Integrated mechanism for suspension and deallocation of computational threads of execution in a processor |
US7487503B2 (en) * | 2004-08-12 | 2009-02-03 | International Business Machines Corporation | Scheduling threads in a multiprocessor computer |
US8176489B2 (en) * | 2004-12-09 | 2012-05-08 | International Business Machines Corporation | Use of rollback RCU with read-side modifications to RCU-protected data structures |
US20060206902A1 (en) * | 2005-03-14 | 2006-09-14 | Sujat Jamil | Variable interleaved multithreaded processor method and system |
US7917907B2 (en) * | 2005-03-23 | 2011-03-29 | Qualcomm Incorporated | Method and system for variable thread allocation and switching in a multithreaded processor |
US7984281B2 (en) * | 2005-10-18 | 2011-07-19 | Qualcomm Incorporated | Shared interrupt controller for a multi-threaded processor |
-
2005
- 2005-10-18 US US11/253,906 patent/US7702889B2/en active Active
-
2006
- 2006-10-18 EP EP06826211.2A patent/EP1941352B1/en not_active Not-in-force
- 2006-10-18 CN CN201410720684.2A patent/CN104484159B/zh not_active Expired - Fee Related
- 2006-10-18 CN CNA2006800468157A patent/CN101331450A/zh active Pending
- 2006-10-18 WO PCT/US2006/040759 patent/WO2007047784A2/en active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109522048A (zh) * | 2017-09-18 | 2019-03-26 | 展讯通信(上海)有限公司 | 一种同步多线程中断验证方法及系统 |
CN109522048B (zh) * | 2017-09-18 | 2023-05-23 | 展讯通信(上海)有限公司 | 一种同步多线程中断验证方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20070088938A1 (en) | 2007-04-19 |
EP1941352B1 (en) | 2017-04-26 |
WO2007047784A2 (en) | 2007-04-26 |
CN104484159A (zh) | 2015-04-01 |
EP1941352A2 (en) | 2008-07-09 |
CN104484159B (zh) | 2019-07-19 |
WO2007047784A3 (en) | 2007-07-26 |
US7702889B2 (en) | 2010-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101331450A (zh) | 用于数字信号处理器的共享中断控制方法及系统 | |
CN101535962B (zh) | 用于可信/不可信数字信号处理器调试操作的方法及系统 | |
CN101529390B (zh) | 用于多线程数字信号处理器的非侵入性线程选择性调试方法及系统 | |
CN101529392B (zh) | 在非侵入性数字信号处理器调试期间用于指令填充操作的方法和系统 | |
US7487332B2 (en) | Method and apparatus for binding shadow registers to vectored interrupts | |
KR100953777B1 (ko) | 다중 스레드 디지털 신호 프로세서에서의 배경 스레드 처리 | |
CN101529393A (zh) | 用于增强的数字信号处理器调试操作的嵌入式追踪宏单元 | |
CN101171570A (zh) | 多线程处理器和线程切换方法 | |
CN102667745A (zh) | 多核系统、多核系统的控制方法以及在非暂态可读介质中存储的程序 | |
US20070178946A1 (en) | Event sequencer used for controlling the sequence and timing of events in software defined radio | |
CN100476743C (zh) | 用于在个人计算机系统中提供实时操作的方法和设备 | |
CN109445959A (zh) | 一种传感器数据处理实时操作系统 | |
RU2168758C2 (ru) | Способ и система контроля дистанционного процессора в условиях операционной системы параллельного действия в реальном времени (оспдрв) | |
JP2001034484A (ja) | デジタル処理信号プロセッサによりリアルタイムタスクを実行する方法 | |
MX2008005092A (en) | Shared interrupt control method and system for a digital signal processor | |
WO2003075167A1 (en) | Method and arrangement for virtual direct memory access | |
JPH07244607A (ja) | キューメモリシステムおよびその方法 | |
TEDESCO | Using DSC at PS PART of the User’s manual and cookbook. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20081224 |