CN104951365A - 对处理器将做出响应的事件区分优先级 - Google Patents

对处理器将做出响应的事件区分优先级 Download PDF

Info

Publication number
CN104951365A
CN104951365A CN201510130621.6A CN201510130621A CN104951365A CN 104951365 A CN104951365 A CN 104951365A CN 201510130621 A CN201510130621 A CN 201510130621A CN 104951365 A CN104951365 A CN 104951365A
Authority
CN
China
Prior art keywords
judging module
input
event
processor
source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510130621.6A
Other languages
English (en)
Other versions
CN104951365B (zh
Inventor
D·W·克诺克斯
A·J·安德森
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.)
Nordic Semiconductor ASA
Original Assignee
Imagination Technologies Ltd
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 Imagination Technologies Ltd filed Critical Imagination Technologies Ltd
Publication of CN104951365A publication Critical patent/CN104951365A/zh
Application granted granted Critical
Publication of CN104951365B publication Critical patent/CN104951365B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3096Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents wherein the means or processing minimize the use of computing system or of computing system component resources, e.g. non-intrusive monitoring which minimizes the probe effect: sniffing, intercepting, indirectly deriving the monitored data from other directly available data
    • 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/30141Implementation provisions of register files, e.g. ports

Abstract

本发明涉及对处理器将做出响应的事件区分优先级。一种计算机系统包括:处理器(106),被配置为对来自多个源的事件做出响应;以及区分优先级模块(104),被实施在硬件中并且被配置为将用于处理器的事件区分优先级。区分优先级模块包括:一个或者多个判决模块(108),包括被配置为接收与来自相应源的事件有关的相应事件标志的多个区分优先级的输入(110)。判决模块存储与最高优先级的确立的事件标志对应的源的源标识符。处理器可以读取存储的源标识符以标识处理器将做出响应的事件的源。以这一方式,从处理器卸载并且在区分优先级模块中的硬件中实施关于处理器应当接着对哪个事件做出响应的判决。这可以减少处理器的工作量并且由此产生更高效的计算机系统。

Description

对处理器将做出响应的事件区分优先级
技术领域
本发明的各实施例涉及本发明涉及对处理器将做出响应的事件区分优先级。
背景技术
许多计算机系统包括被配置为执行计算机指令的一个或者多个处理器。计算机系统也经常包括其它设备(比如存储器)和/或外围设备(比如相机或者键盘)等。事件可以在计算机系统中的设备处出现,这些设备要求处理器做出响应,例如,要求处理器执行与事件有关的一些指令。存在处理器可以做出响应的许多不同类型的事件,这些事件可以由计算机系统的许多不同源(例如,设备)生成。例如,在通信处理系统中,事件可以由硬件响应于接收的采样的数据填充缓冲器而被生成。在另一示例中,事件可以由软件在可以释放存储器缓冲器以用于重用时生成。
在需要来自处理器的响应的事件出现时,可以向处理器发送事件未决的指示(例如,事件标志)以指示处理器应当对事件做出响应。可以存在事件在比处理器可以处置事件的速率更快的速率出现的时间。因此,处理器可以使用排队系统以将待处理的事件排队。在处理器处的软件中实施队列,并且作为示例,可以存在用于每个事件源的队列,或者备选地,一个队列可以用来将由多于一个源生成的事件排队。在处理器准备好对新事件做出响应时,可以关于处理器应当接着对排队的事件中的哪个事件做出响应进行判决。在处理器处的软件中实施这一判决,并且这一判决可以例如基于规则集。例如,可以使来自一些源的事件优先于来自其它源的事件。判决也可以基于事件已经等待来自处理器的响应的时间长度。
处理器需要时间和处理资源以用于在软件队列中将事件排队并且实施判决过程的软件指令以便确定处理器接着将对哪个事件做出响应。减少处理器花费用于将事件排队和实施判决过程的时间和/或处理资源可以在处理器如何对在计算机系统中出现的事件做出响应方面提供更高效的计算机系统。对计算机系统的效率的任何提高经常有益。
发明内容
提供本发明内容以用简化形式介绍以下在具体实施方式中进一步描述的所选概念。这一发明内容并非旨在于标识要求保护的主题内容的关键特征或者必要特征,它也并非旨在于限制要求保护的主题内容的范围。
发明人已经认识到可以从处理器卸载事件的排队和用于判决处理器应当对哪个事件做出响应的判决逻辑。特别地,可以在硬件中实施事件队列和判决逻辑并且可以从硬件向处理器提供由判决逻辑进行的判决的结果(即,处理器应当接着对哪个事件做出响应)。以这一方式,处理器无需花费时间或者处理资源来确定对哪个事件做出响应,因为从软件卸载而在硬件中实施判决过程。在这里描述的示例中,在被实施在硬件中并且被耦合到处理器的区分优先级逻辑中实施判决逻辑。
提供了一种计算机系统,该计算机系统包括:处理器,被配置为对来自多个源的事件做出响应;以及区分优先级逻辑,被实施于硬件中并且被配置为将用于处理器的事件区分优先级,区分优先级模块包括一个或者多个判决模块,其中一个或者多个判决模块中的至少一个判决模块包括:多个输入,被配置为接收与来自相应源的事件有关的相应事件标志,其中输入中的每个输入与相应优先级关联;OR逻辑,被配置为输出与对在多个输入处接收的事件标志的逻辑OR运算的结果对应的标志;标识逻辑,被配置为标识用于接收确立的标志的输入中的哪个输入具有最高优先级;以及输出寄存器,被配置为存储在标识的输入处确立的事件标志被接收的源的源标识符;其中处理器被配置为:(i)通过读取在判决模块中的一个判决模块的输出寄存器中存储的源标识符来对一个或者多个判决模块中的所述一个判决模块输出的确立的标志做出响应,以及(ii)使用源标识符以标识处理器将做出响应的事件的源。
提供了一种在对计算机系统中的事件做出响应的方法,计算机系统包括:处理器,被配置为对来自多个源的事件做出响应,以及区分优先级模块,被实施在硬件中并且配置为将用于处理器的事件区分优先级,其中区分优先级模块包括一个或者多个判决模块,每个判决模块具有与相应优先级关联的多个输入,该方法包括:在一个或者多个判决模块中的至少一个判决模块的输入处接收与来自相应源的事件有关的相应事件标志;从至少一个判决模块的OR逻辑输出与对在多个输入处接收的事件标志的逻辑OR运算的结果对应的标志;对于至少一个判决模块中的每个判决模块,标识用于接收确立的标志的判决模块的输入中的哪个输入具有最高优先级;在至少一个判决模块中的每个判决模块的相应输出寄存器中存储与在判决模块的标识的输入处确立的事件标志被接收的源的源标识符;响应于处理器接收由所述一个或者多个判决模块中的一个判决模块输出的确立的标志,处理器读取在判决模块中的所述一个判决模块的输出寄存器中存储的源标识符;以及处理器使用源标识符以标识处理器将做出响应的事件的源。
提供了一种在硬件中被实施并且被配置为耦合到处理器的区分优先级逻辑,处理器被配置为对来自多个源的事件做出响应,其中区分优先级模块被配置为将用于处理器的事件区分优先级,区分优先级模块包括:一个或者多个判决模块,其中一个或者多个判决模块中的至少一个判决模块包括:多个输入,配置为接收与来自相应源的事件有关的相应事件标志,其中输入中的每个输入与相应优先级关联;OR逻辑,配置为输出与对在多个输入处接收的事件标志的逻辑OR运算的结果对应的标志;标识逻辑,配置为标识用于接收确立的标志的输入中的哪个输入具有最高优先级;以及输出寄存器,配置为存储在标识的输入处确立的事件标志被接收的源的源标识符;其中区分优先级模块被配置为允许处理器从所述一个或者多个判决模块中的一个判决模块的输出寄存器读取源标识符以用于在标识处理器将做出响应的事件的源时使用。
提供了一种使用区分优先级模块的方法,区分优先级模块被实施在硬件中以将用于处理器的事件区分优先级,处理器被配置为对来自多个源的事件做出响应,其中区分优先级模块包括一个或者多个判决模块,每个判决模块具有与相应优先级关联的多个输入,该方法包括:在一个或者多个判决模块中的至少一个判决模块的输入处接收与来自相应源的事件有关的相应事件标志;从至少一个判决模块的OR逻辑输出与对在多个输入处接收的事件标志的逻辑OR运算的结果对应的标志;对于至少一个判决模块中的每个判决模块,标识用于接收确立的标志的判决模块的输入中的哪个输入具有最高优先级;在至少一个判决模块中的每个判决模块的相应输出寄存器中存储在判决模块的标识的输入处确立的事件标志被接收的源的源标识符;以及区分优先级模块允许处理器从一个或者多个判决模块中的一个判决模块的输出寄存器读取源标识符以用于在标识处理器将做出响应的事件的源时使用。
可以提供用于生成如在这里描述的示例中的任何示例中描述的计算机系统或者区分优先级模块的计算机可读代码。计算机可以代码可以被编码在计算机可读存储介质上。
可以如本领域技术人员将清楚的那样在适当时组合并且可以与这里描述的示例的方面中的任何方面组合以上特征。
附图说明
现在将参照附图具体描述示例,在附图中:
图1示出了其中为处理器将事件区分优先级的计算机系统;
图2示出了用于对计算机系统中的事件做出响应的方法的流程图;
图3示出了一个示例中的区分优先级模块的示意图;
图4示出了另一示例中的区分优先级模块的示意图;以及
图5示出了示例中的标识逻辑的示意图。
附图图示了各种示例。本领域技术人员将认识到,附图中的所示单元边界(例如,框、框的组或者其它形状)表示边界的一个示例。在一些示例中,可以将一个单元被接收为多个单元或者可以将多个单元设计为一个单元。在适当时贯穿各图使用公共标号以指示相似特征。
具体实施方式
现在将仅通过示例描述实施例。
图1示出了计算机系统100,该计算机系统100包括多个事件队列1021、1022和1023、区分优先级模块104和处理器106。在硬件中实施队列102和区分优先级模块104,从而使得从处理器106卸载它们的功能。事件队列102被配置为存储与等待来自处理器106的响应的事件有关的数据。例如,在图1中所示的计算机系统100中,队列1021至1023中的每个队列被布置为接收与处理器106将做出响应的、由相应设备生成的事件有关的数据。也就是说,事件队列1021接收与由第一设备(“设备1”)生成的事件有关的数据,事件队列1022接收与由第二设备(“设备2”)生成的事件有关的数据,并且事件队列1023接收与由第三设备(“设备3”)生成的事件有关的数据。设备可以是生成处理器106将做出响应的事件的外围设备或者任何其它类型的设备。
队列102中的每个队列被配置为向区分优先级模块104提供事件标志以指示是否在队列中存在等待处理器106做出响应的至少一个事件。例如,可以在处理器对事件做出响应时从队列102去除事件,因此从事件队列102向区分优先级模块104提供的事件标志可以是队列102的‘非空’标志。在队列102非空时,即在队列包括与至少一个事件有关的至少一些数据时,确立队列102的‘非空’标志。
区分优先级模块104被布置为从队列102接收事件标志。区分优先级模块104向处理器106提供布尔OR输出以指示是否存在等待来自处理器106的响应的任何事件。如果存在处理器106将做出响应的至少一个事件,则处理器可以如以下更具体描述的那样从区分优先级模块104读取源标识符以便确定事件的源。区分优先级模块104包括单个判决模块108。在以下参照图3和图4描述的其它示例中,区分优先级模块包括多个判决模块。注意,“判决模块”也可以被称为“逻辑OR模块”。判决模块108包括被耦合到相应事件队列1021、1022和1023的输出的多个输入1101、1102和1103。判决模块108也包括被配置为确定与对在输入1101、1102和1103处接收的事件标志的逻辑OR运算的结果并且输出与该结果对应的标志。判决模块108也包括被布置为存储事件标志的相应源的源标识符的多个输入寄存器1121、1122和1123。源标识符可以例如包括8位。作为示例,在输入寄存器112中存储的源标识符可以是标识队列102之一的队列标识符。例如,输入寄存器1121可以存储标识队列1021的队列标识符,输入寄存器1122可以存储标识队列1022的队列标识符,并且输入寄存器1123可以存储标识队列1023的队列标识符。可以在根据向对应的输入110提供事件标志的源配置判决模块时向输入寄存器112中写入源标识符。判决模块108也包括被配置为基于在输入110处接收的事件标志存储来自输入寄存器112的源标识符之一的输出寄存器114。在输出寄存器114中存储的源标识符可以由处理器106读取以由此向处理器106提供源标识符以标识处理器106将做出响应的事件的源。判决模块108也包括标识逻辑116,其被配置为标识用于接收确立的标志的输入110中的哪个输入具有最高优先级并且使来自与标识的输入对应的输入寄存器112的源标识符被写入到输出集中器114中。
参照图2中所示的流程图描述了一种使用计算机系统100对事件做出响应的方法。输入1101、1102和1103中的每个输入与相应优先级关联。例如,输入1101可以具有高优先级,输入1102可以具有中优先级并且输入1103可以具有低优先级。如以下更具体描述的那样,输入110可以接收确立或者非确立的信号,并且判决模块108(特别地是标识逻辑116)确定用于接收确立的信号的输入110中的哪个输入具有最高优先级。以这一方式,判决模块108(特别地是标识逻辑116)确定哪个是最高优先级的确立的输入。
在该方法开始之前,在配置级中,例如,由配置工具结合向输入110中的哪个输入提供哪些事件标志的配置在相应输入寄存器1121、1122和1123中存储源标识符(例如,队列1021、1022和1023的队列标识符)。在输入寄存器1121中存储的源标识符标识向输入1101提供的信号的源,因此,在这一示例中,输入寄存器1121存储用于队列1021的队列标识符。在输入寄存器1122中存储的源标识符标识向输入1102提供的信号的源,因此,在这一示例中,输入寄存器1122存储用于队列1022的队列标识符。在输入寄存器1123中存储的源标识符标识向输入1103提供的信号的源,因此,在这一示例中,输入寄存器1123存储用于队列1023的队列标识符。对哪些源向判决模块108的输入110中的哪些输入提供信号的布置是可配置的,并且可以由配置寄存器确定,这些配置寄存器的值由配置工具计算。以这一方式,(以可配置方式)设置源的相对优先级。例如,在图1中所示的实施例中,在设备1处出现的事件是高优先级,因此在队列1021中存储与那些事件有关的数据,并且从队列1021向高优先级输入1101提供事件标志,而且在输入寄存器1121中存储用于队列1021的队列标识符。另外,在图1中所示的实施例中,在设备2处出现的事件是中优先级,因此在队列1022中存储与那些事件有关的数据,并且从队列1022向中优先级输入1102提供事件标志,而且在输入寄存器1122中存储用于队列1022的队列标识符。相似地,在图1中所示的实施例中,在设备3处出现的事件是低优先级,因此在队列1023中存储与那些事件有关的数据,并且从队列1023向低优先级输入1103提供事件标志,而且在输入寄存器1123中存储用于队列1023的队列标识符。如果在设备处出现的事件的优先级出于某个原因而改变,则系统100可被配置为改变对哪些源向判决模块108的输入110中的哪些输入提供信号的布置,并且将相应地改变在输入寄存器112中存储的源标识符。
在步骤S202,在判决模块108的输入处接收事件标志。在图1中所示的示例中,事件标志是队列102的‘非空’标志。在其它示例中,事件标志可以是处理器106将做出响应的事件已经出现的任何其它适当指示。
如果相应队列102非空,即如果存在用于处理器106做出响应的事件,则确立在输入110处接收的事件标志。在步骤S204中,标识逻辑116确定接收确立的事件标志的输入110中的哪个输入具有最高优先级。也就是说,标识逻辑116确定最高优先级的确立的输入。在输出寄存器114中存储用于在最高优先级的确立的输入处接收的源的源标识符。也就是说,对于被确定为最高优先级的确立的输入的无论哪个输入(110x),向输出寄存器114中复制在对应的输入寄存器(112x)中存储的源标识符。图5示出了可以如何实施标识逻辑116的示例,但是本领域技术人员将清楚,可以用其它方式实施标识逻辑116以实现标识最高优先级的确立的输入并且向输出寄存器114中写入适当的源标识符的功能。
在图5中所示的示例中,标识逻辑116被耦合到输入1101、1102和1103。标识逻辑116也被耦合到输入寄存器1121、1122和1123。标识逻辑116包括两个NOT门502和504、三个AND门506、508和510以及三个开关512、514和516。在输入1101处接收的信号用来控制开关512并且也经由NOT门502被提供到AND门506和508的第一输入。在输入1102处接收的信号被提供到AND门506的第二输入并且也经由NOT门504被提供到AND门508的第二输入。AND门508的输出被提供到AND门510的第一输入。在输入1103处接收的信号被提供到AND门510的第二输入。AND门506的输出用来控制开关514。AND门510的输出用来控制开关516。在闭合开关512时,在输入寄存器1121中存储的源标识符可以被写入到输出寄存器114中。在闭合开关514时,在输入寄存器1122中存储的源标识符可以被写入到输出寄存器114中。在闭合开关516时,在输入寄存器1123中存储的源标识符可以被写入到输出寄存器114中。以这一方式,如果输入1101接收确立的事件标志,则闭合开关512并且开关514和516关断,从而使得在输入寄存器1121中存储的源标识符被写入到输出寄存器114中。如果输入1101未接收确立的事件标志并且输入1102接收确立的事件标志,则闭合开关514并且开关512和516关断,从而使得在输入寄存器1122中存储的源标识符被写入到输出寄存器114中。如果输入1101和1102未接收确立的事件标志并且输入1103接收确立的事件标志,则闭合开关516并且开关512和514关断,从而使得在输入寄存器1123中存储的源标识符被写入到输出寄存器114中。每当开关中的至少一个开关(512、514或者516)的状态改变时可以向输出寄存器114中写入新标识符。
在步骤S205中,OR逻辑111确定对在输入110处接收的事件标志的逻辑OR运算的结果并且输出与该结果对应的标志。向处理器106发送从OR逻辑111输出的布尔OR以向处理器106指示是否存在要求它做出响应的事件。OR逻辑111可以被实施为简单逻辑OR门。处理器106可以轮询由OR逻辑111提供的布尔OR输出以确定它何时被确立,例如,处理器106可以在处理器106准备好对下一事件做出响应时轮询来自OR逻辑111的输出。备选地(或者附加地),布尔OR输出可以被配置为在它被确立时中断处理器106。布尔OR输出可以是单个位,例如,对于处理器106而言‘1’指示存在未决事件或者‘0’指示不存在未决事件。
在步骤S206中,响应于从OR逻辑111接收确立的标志,处理器106读取在输出寄存器114中存储的源标识符。
因此,在步骤S202至S206中,区分优先级模块104动作以确定处理器106应当接着对当前未决事件中的哪个事件做出响应并且允许处理器106从输出寄存器111读取用于处理器106将做出响应的下一事件的源的源标识符。在输出寄存器114中存储的源标识符与最高优先级的确立的输入有关。在硬件中实施区分优先级模块104,因此从处理器106向硬件中卸载关于接着处理什么进行判决的过程,这可以产生更高效的计算机系统100。
在步骤S208中,处理器106使用已经从输出寄存器114读取的源标识符以标识处理器106将做出响应的事件的源。因此,处理器106无需执行进一步处理步骤以判决应当接着对哪个事件做出响应并且标识事件的源:从处理器106向区分优先级模块104卸载这些过程。
在步骤S210中,处理器106取回与来自标识的源的事件有关的指令。然后,在步骤S212中,处理器106处理取回的指令以由此对来自标识的源的事件做出响应。例如,如果源标识符是标识队列102之一的队列标识符,则处理器106将从队列取回与事件有关的数据并且处理取回的数据。
如以上描述的那样,事件可以是要求来自处理器106的响应的多种不同事件,并且处理器106可以用适合于涉及的特定事件的多种不同方式之一对应地对事件做出响应。例如,在通信处理系统中,硬件可以响应于接收的采样数据填充缓冲器来生成事件。在另一示例中,软件可以在释放存储器缓冲器以用于重用时生成事件。等待来自处理器的响应的事件的类型可以是隐式的,例如来自特定源的所有事件可以是相同类型。这将允许处理器在它开始处理事件之前知道用于源的将处置的事件的类型。在其它情况下,处理器可能不知道将处置什么类型的事件,但是在联系(如由源标识符标识的)源时,处理器可以确定事件的类型,从而使得可以正确地处理事件。
在以上描述的示例中,源标识符是队列标识符。在其它示例中,源标识符可以被偏移到查找表中,其中查找表包括处理器106将访问的、以由此对事件做出响应的存储器地址。也就是说,用于处理器106响应事件而执行的指令可以被存储于存储器中(例如,计算机系统100的存储器中),并且用于对特定事件做出响应的指令的存储器地址被存储于查找表中。向查找表中的偏移因此标识用于对事件做出响应的指令的存储器地址,因此向查找表中的偏移可以用作为用于事件的源标识符,该源标识符可以被存储于输入寄存器112和输出寄存器114中并且由处理器106读取以允许处理器106确定接着将对哪个事件做出响应。
在图1中所示的示例中,区分优先级模块104包括单个判决模块108。在其它示例中,区分优先级模块可以包括多个判决模块,其中判决模块中的至少一个判决模块的OR逻辑的输出(即布尔OR输出)被耦合到判决模块中的另一判决模块的输入。例如,图3示出了可以用与以上描述的区分优先级模块104对应的方式被使用的区分优先级模块304的示例。区分优先级模块304包括在包括两个级别的分级中布置的四个判决模块3081、3082、3083和3084。级别中的第一级别包括第一判决模块3081。级别中的第二级别包括第二判决模块3082、第三判决模块3083和第四判决模块3084。判决模块308中的每个判决模块基本上对应于以上描述的判决模块108并且包括对应的部件,比如三个输入、三个输入寄存器、标识逻辑、输出寄存器和OR逻辑。如图3中所示,第二判决模块3082、第三判决模块3083和第四判决模块3084的OR逻辑的输出被耦合到第一判决模块3081的相应输入,并且第一判决模块3081的OR逻辑的输出被配置为向处理器106输出标志,其中响应于接收标志,处理器可以从第一判决模块3081的输出寄存器读取源标识符以由此如以下更具体描述的那样标识处理器106将做出响应的事件的源。
第二判决模块3082被布置为接收与来自相应源的事件有关的三个事件标志(标志1、标志2和标志3)。判决模块3082的输入寄存器存储标识与在判决模块3082的相应输入处接收的事件标志有关的事件的源的源标识符(例如,队列标识符)。如以上关于判决模块108描述的那样,判决模块3082在它的输出寄存器中存储与它的接收确立的事件标志的输入的最高优先级对应的源标识符。在判决模块3082的第一输入处接收判决模块3082的OR逻辑的输出(如果向判决模块3082的输入中的任何输入被确立则被确立)。第三判决模块3083被布置为接收与来自相应源的事件有关的三个事件标志(标志4、标志5和标志6)。判决模块3083的输入寄存器存储标识与在判决模块3083的相应输入处接收的事件标志有关的事件的源的源标识符(例如,队列标识符)。判决模块3083在它的输出寄存器中存储与它的接收确立的事件标志的输入的最高优先级对应的源标识符。在判决模块3081的第二输入处接收判决模块3083的OR逻辑的输出(如果向判决模块3083的输入中的任何输入被确立则被确立)。第四判决模块3084被布置为接收与来自相应源的事件有关的三个事件标志(标志7、标志85和标志9)。判决模块3084的输入寄存器存储标识与在判决模块3084的相应输入处接收的事件标志有关的事件的源的源标识符(例如,队列标识符)。判决模块3084在它的输出寄存器中存储与它的接收确立的事件标志的输入的最高优先级对应的源标识符。在判决模块3081的第三输入处接收判决模块3084的OR逻辑的输出(如果向判决模块3084的输入中的任何输入被确立则被确立)。
判决模块3081的输入寄存器存储判决模块3081的对应输入连接到的相应判决模块(3082、3083和3084)的标识符。判决模块3081(特别是判决模块3081的标识逻辑)被配置为:(i)确定第2等级判决模块(3082至3084)中的哪个判决模块向判决模块3081提供最高优先级的确立的输入,(ii)从该第2等级判决模块的输出寄存器取读源标识符,并且(iii)在判决3081的输出寄存器中存储取读的源标识符。以这一方式,判决模块3081在它的输出寄存器中存储与确立的事件标志(标志1至标志9)的最高优先级对应的源标识符。处理器可以从判决模块3081的输出寄存器读取源标识符。注意,判决模块3081的标识逻辑与以上描述的标识逻辑116略有不同,因为取代从输入寄存器向输出寄存器简单地写入源标识符之一,它执行以上提到的步骤(i)至(iii)。以这一方式,判决模块3081的标识逻辑从向判决模块3081提供最高优先级输入的第2等级判决模块(3082、3083或者3084)的输出寄存器取读源标识符,并且向判决模块3081的输出寄存器中写入取读的源标识符。判决模块3081的标识逻辑的确切实现方式可以在不同示例中不同,并且本领域技术人员将知道如何实施判决模块3081的标识逻辑,从而使得它具有如以上描述的希望的功能。
以这一方式,布置区分优先级模块304的判决模块308,从而使得与(标志1至标志9这九个标志中的)最高优先级的确立的事件标志对应的源标识符被存储于判决模块3081的输出寄存器中并且可以由处理器106读取以向处理器106指示接着对哪个事件做出响应。也就是说,与向区分优先级模块304的最优优先级的确立的输入对应的源标识符在判决模块3081的输出寄存器中出现,由此避免对不同判决模块308的多级读取。也就是说,处理器106可以仅从顶级优先级模块3081的输出寄存器读取源标识符而无需从其它判决模块3082至3084读取任何源标识符。图3中所示的判决模块308的两个等级的分级允许向区分优先级模块304提供上至九个事件标志(在每个判决模块308包括三个输入时)以及确定最高优先级的确立的事件标志。如果存在少于九个源而有事件出现,则未确立标志(F1至F9)中的一些标志。如以上描述的那样,配置工具可以安排事件标志被耦合到不同输入的顺序(其中对应的源标识符被存储于更低级别判决模块3082至3084的对应的输入寄存器中)以由此设置处理器106对事件做出响应的优先级。以这一方式,向不同事件指派的优先级可配置。
作为另一示例,图4示出了可以用与以上描述的区分优先级模块104和304对应的方式使用的区分优先级模块404的示例。区分优先级模块404包括在包括三个级别的分级中布置的十三个判决模块4081至40813。级别中的第一级别包括第一判决模块4081。级别中的第二级别包括第二判决模块4082、第三判决模块4083和第四判决模块4084。级别中的第三级别包括第五判决模块4085至第十三判决模块40813。判决模块408中的每个判决模块基本上对应于以上描述的判决模块108,并且包括对应的部件,比如三个输入、三个输入寄存器、标识逻辑、输出寄存器和OR逻辑。如图4中所示,第五判决模块4085、第六判决模块4086和第七判决模块4087的OR逻辑的输出被耦合到第二判决模块4082的相应输入;第八判决模块4088、第九判决模块4089和第十判决模块40810的OR逻辑的输出被耦合到第三判决模块4083的相应输入;第十一判决模块40811、第十二判决模块40812和第十三判决模块40813的OR逻辑的输出被耦合到第四判决模块4084的相应输入;第二判决模块4082、第三判决模块4083和第四判决模块4084的OR逻辑的输出被耦合到第一判决模块4081的相应输入;并且第一判决模块4081的OR逻辑的输出被配置为向处理器106输出标志,其中响应于接收标志,处理器可以从第一判决模块4081的输出寄存器读取源标识符以由此标识处理器106将做出响应的事件的源。
判决模块408的级联以与以上关于图3描述的判决模块308的级联相似的方式工作。也就是说,第五判决模块4085被布置为接收与来自相应源的事件有关的三个事件标志(F1、F2和F3)。判决模块4085的输入寄存器存储标识与在判决模块4085的相应输入处接收的事件标志有关的事件的源的源标识符(例如,队列标识符)。如以上关于判决模块108描述的那样,判决模块4085在它的输出寄存器中存储与它的接收确立的事件标志的输入的最高优先级对应的源标识符。在判决模块4082的第一输入处接收判决模块4085的OR逻辑的输出(如果向判决模块4085的输入中的任何输入被确立则被确立)。相似地,第六判决模块4086被布置为接收三个事件标志(F4、F5和F6)并且在它的输出寄存器中存储与它的接收确立的标志的输入的最高优先级对应的源标识符。向判决模块4082的第二输入提供第六判决模块4086的OR逻辑的输出。相似地,第七判决模块4087被布置为接收三个事件标志(F7、F8和F9)并且在它的输出寄存器中存储与它的接收确立的标志的输入的最高优先级对应的源标识符。向判决模块4082的第三输入提供第七判决模块4087的OR逻辑的输出。相似地,第八判决模块4088被布置为接收三个事件标志(F10、F11和F12)并且在它的输出寄存器中存储与它的接收确立的标志的输入的最高优先级对应的源标识符。向判决模块4083的第一输入提供第八判决模块4088的OR逻辑的输出。相似地,第九判决模块4089被布置为接收三个事件标志(F13、F14和F15)并且在它的输出寄存器中存储与它的接收确立的标志的输入的最高优先级对应的源标识符。向判决模块4083的第二输入提供第九判决模块4089的OR逻辑的输出。相似地,第十判决模块40810被布置为接收三个事件标志(F16、F17和F18)并且在它的输出寄存器中存储与它的接收确立的标志的输入的最高优先级对应的源标识符。向判决模块4083的第三输入提供第十判决模块40810的OR逻辑的输出。相似地,第十一判决模块40811被布置为接收三个事件标志(F19、F20和F21)并且在它的输出寄存器中存储与它的接收确立的标志的输入的最高优先级对应的源标识符。向判决模块4084的第一输入提供第十一判决模块40811的OR逻辑的输出。相似地,第十二判决模块40812被布置为接收三个事件标志(F22、F23和F24)并且在它的输出寄存器中存储与它的接收确立的标志的输入的最高优先级对应的源标识符。向判决模块4084的第二输入提供第十二判决模块40812的OR逻辑的输出。相似地,第十三判决模块40813被布置为接收三个事件标志(F25、F26和F27)并且在它的输出寄存器中存储与它的接收确立的标志的输入的最高优先级对应的源标识符。向判决模块4084的第三输入提供第十三判决模块40813的OR逻辑的输出。
判决模块4082的输入寄存器存储判决模块4082的对应的输入连接到的相应判决模块(4085、4086和4087)的标识符。判决模块4082(特别是判决模块4082的标识逻辑)被配置为:(i)确定第3等级判决模块(4085至4087)中的哪个判决模块向判决模块4082提供最高优先级的确立的输入,(ii)从该第3等级判决模块的输出寄存器取读源标识符,并且(iii)在判决模块4082的输出寄存器中存储取读的源标识符。以这一方式,判决模块4082在它的输出寄存器中存储与确立的事件标志F1至F9的最高优先级对应的源标识符。判决模块4082的标识逻辑与以上参照图3描述的判决模块3081的标识逻辑相似,并且这样与以上相对于图1描述的标识逻辑116略有不同。这是因为取代从输入寄存器向输出寄存器中简单地写入源标识符之一,判决模块4082的标识逻辑执行以上提到的步骤(i)至(iii),以由此从向判决模块4082提供最高优先级的输入的第3等级判决模块(4085、4086或者4087)的输出寄存器取读源标识符,并且向判决模块4082的输出寄存器中写入取读的源标识符。相似地,判决模块4083的输入寄存器存储判决模块4083的对应的输入连接到的相应判决模块(4088、4089和40810)的标识符。判决模块4083(特别是判决模块4083的标识逻辑)被配置为:(i)确定第3等级判决模块(4088至40810)中的哪个判决模块向判决模块4083提供最高优先级的确立的输入,(ii)从该第3等级判决模块的输出寄存器取读源标识符,并且(iii)在判决模块4083的输出寄存器中存储取读的源标识符。以这一方式,判决模块4083在它的输出寄存器中存储与确立的事件标志F10至F18的最高优先级对应的源标识符。判决模块4083的标识逻辑与以上参照图3描述的判决模块3081的标识逻辑相似,并且这样与以上相对于图1描述的标识逻辑116略有不同。这是因为取代从输入寄存器向输出寄存器中简单地写入源标识符之一,判决模块4083的标识逻辑执行以上提到的步骤(i)至(iii),以由此从向判决模块4083提供最高优先级的输入的第3等级判决模块(4088、4089或者40810)的输出寄存器取读源标识符,并且向判决模块4083的输出寄存器中写入取读的源标识符。相似地,判决模块4084的输入寄存器存储判决模块4084的对应的输入连接到的相应判决模块(40811、40812和40813)的标识符。判决模块4084(特别是判决模块4084的标识逻辑)被配置为:(i)确定第3等级判决模块(40811至40813)中的哪个判决模块向判决模块4084提供最高优先级的确立的输入,(ii)从该第3等级判决模块的输出寄存器取读源标识符,并且(iii)在判决模块4084的输出寄存器中存储取读的源标识符。以这一方式,判决模块4084在它的输出寄存器中存储与确立的事件标志F19至F27的最高优先级对应的源标识符。判决模块4084的标识逻辑与以上参照图3描述的判决模块3081的标识逻辑相似,并且这样与以上相对于图1描述的标识逻辑116略有不同。这是因为取代从输入寄存器向输出寄存器中简单地写入源标识符之一,判决模块4084的标识逻辑执行以上提到的步骤(i)至(iii),以由此从向判决模块4084提供最高优先级的输入的第3等级判决模块(40811、40812或者40813)的输出寄存器取读源标识符,并且向判决模块4084的输出寄存器中写入取读的源标识符。判决模块4081的输入寄存器存储判决模块4081的对应的输入连接到的相应判决模块(4082、4083和4084)的标识符。判决模块4081(特别是判决模块4081的标识逻辑)被配置为:(i)确定第2等级判决模块(4082至4084)中的哪个判决模块向判决模块4081提供最高优先级的确立的输入,(ii)从该第2等级判决模块的输出寄存器取读源标识符,并且(iii)在判决模块4081的输出寄存器中存储取读的源标识符。以这一方式,判决模块4081在它的输出寄存器中存储与确立的事件标志F1至F27的最高优先级对应的源标识符。处理器可以从判决模块4081的输出寄存器读取源标识符。判决模块40814的标识逻辑与以上参照图3描述的判决模块3081的标识逻辑相似,并且这样与以上相对于图1描述的标识逻辑116略有不同。这是因为取代从输入寄存器向输出寄存器中简单地写入源标识符之一,判决模块4081的标识逻辑执行以上提到的步骤(i)至(iii),以由此从向判决模块4081提供最高优先级的输入的第2等级判决模块(4082、4083或者4084)的输出寄存器取读源标识符,并且向判决模块4081的输出寄存器中写入取读的源标识符。
布置区分优先级模块404的判决模块408,从而使得与(二十七个标志F1至F27中的)最高优先级的确立的事件标志对应的源标识符被存储于判决模块4081的输出寄存器中并且可以由处理器106读取以向处理器106指示接着对哪个事件做出响应。也就是说,与向区分优先级模块404的最高优先级的确立的输入对应的源标识符在判决模块4081的输出寄存器中出现,由此避免对不同判决模块408的多级读取。也就是说,处理器106可以仅从顶级优先级模块4081的输出寄存器读取源标识符而无需从其它判决模块4082至40813读取任何源标识符。图4中所示的判决模块408的三个等级的分级允许向区分优先级模块404提供上至二十七个事件标志(在每个判决模块408包括三个输入时)以及确定最高优先级的确立的事件标志。如果存在少于二十七个源而有事件出现,则未确立标志(F1至F27)中的一些标志。如以上描述的那样,配置工具可以布置事件标志被耦合到不同输入的顺序(其中对应的源标识符被存储于第三级别判决模块4085至40813的对应的输入寄存器中),以由此设置处理器106对事件做出响应的优先级。以这一方式,向不同事件指派的优先级可配置。
在以上描述的示例中,判决模块中的每个判决模块包括三个输入。在其它示例中,判决模块可以包括不同数目的输入,例如,两个输入或者多于三个输入。在其中区分优先级模块包括多个判决模块的示例中,那么判决模块中的每个判决模块可以包括相同数目的输入,或者判决模块中的不同判决模块可以包括不同数目的输入。判决模块的不同输入与不同相对优先级关联。
在图1中所示的示例计算机系统100中,仅存在一个处理器106。在其它示例中,可以在计算机系统中存在多于一个处理器,并且可以存在用于处理器中的每个处理器的区分优先级模块,从而使得相应区分优先级模块可以将用于计算机系统中的相应处理器的事件区分优先级。
这里已经描述了计算机系统的各种示例,在这些计算机系统中,从处理器卸载并且在区分优先级模块中的硬件中实施处理器应当接着对哪个事件做出反应。这可以减少处理器的工作量并且由此产生更高效的计算机系统。
本领域技术人员将认识到,这里描述的功能、技术或者方法的全部或者部分可以由专用电路、专用集成电路、可编程逻辑阵列、现场可编程门阵列等实现。例如,这里描述的“模块”、“功能”、“部件”或者“逻辑”可以包括以电路装置这一形式的硬件。这样的电路装置可以包括在制造工艺中可用的晶体管和/或其它硬件元件。举例而言,这样的晶体管和/或其它元件可以用来形成实施和/或包含存储器的电路装置或者结构(比如寄存器、触发器或者锁存器)、逻辑运算器(比如布尔运算)、数学运算器(比如加法器、乘法器或者移位器)以及互连。可以作为定制电路或者标准单元库、宏或者在其它抽象化水平提供这样的元件。这样的元件可以在具体布置中被互连。模块、功能、部件或者逻辑可以包括如下电路装置,该电路装置是可以被编程为执行一个或者多个功能的固定功能和电路装置;可以从固件或者软件更新或者控制机制提供这样的编程。在示例中,硬件逻辑具有实施固定功能操作、状态机或者过程的电路装置。
也旨在于涵盖如下软件,该软件“描述”或者定义硬件的配置,该硬件实施以上描述的模块、功能、部件或者逻辑、比如如用于设计集成电路或者用于配置可编程芯片以实现希望的功能的HDL(硬件描述语言)软件。也就是说,可以提供计算机可读存储介质,该计算机可读存储介质具有在其上编码的计算机可读程序代码,该计算机可读程序代码用于生成被配置为执行这里描述的方法中的任何方法的计算机系统和/或区分优先级模块或者用于生成包括这里描述的任何装置的计算机系统和/或区分优先级模块。计算机可读介质的一个这样的配置是信号承载介质并且因此被配置为比如经由网络向计算设备传输指令(例如,作为载波)。计算机可读介质也可以被配置为非瞬态计算机可读存储介质并且因此不是信号承载介质。计算机可读存储介质的示例包括随机存取存储器(RAM)、只读存储器(ROM)、光盘、闪存、硬盘存储器和其它存储器设备,这些存储器设备可以使用磁、光和其它技术以存储指令或者其它数据并且可以由机器访问。
术语‘处理器’和‘计算机’在这里用来是指任何如下设备或者其部分,该设备或者其部分具有处理能力,从而使得它可以执行指令,或者是指能够实现功能或者方法的全部或者部分的专用电路,或者其任何组合。
虽然已经用结构特征和/或方法动作特有的语言描述了主题内容,但是将理解,在所附权利要求中定义的主题内容未必限于以上描述的具体特征或者动作。实际上,公开以上描述的具体特征和动作为实施权利要求的示例形式。将理解,以上描述的益处和优点可以涉及一个示例或者可以涉及若干示例。
如本领域技术人员将清楚的那样,可以扩展或者更改这里给定的任何范围或者值。可以如适当的那样按照任何适当顺序或者同时执行这里描述的方法的步骤。以上描述的示例中的任何示例的方面可以与描述的其它示例中的任何示例的方面组合以形成更多示例而不失寻求的效果。

Claims (21)

1.一种计算机系统,包括:
处理器,所述处理器被配置为对来自多个源的事件做出响应;以及
区分优先级模块,所述区分优先级模块被实施在硬件中并且被配置为将用于所述处理器的所述事件区分优先级,所述区分优先级模块包括一个或者多个判决模块,其中所述一个或者多个判决模块中的至少一个判决模块包括:
多个输入,所述多个输入被配置为接收与来自相应源的事件有关的相应事件标志,其中所述输入中的每个输入与相应优先级关联;
OR逻辑,所述OR逻辑被配置为输出与对在所述多个输入处接收的所述事件标志的逻辑OR运算的结果对应的标志;
标识逻辑,所述标识逻辑被配置为标识用于接收确立的标志的所述输入中的哪个输入具有最高优先级;以及
输出寄存器,所述输出寄存器被配置为存储对于其在标识的所述输入处被接收确立的事件标志的所述源的源标识符;
其中所述处理器被配置为:(i)通过读取在所述判决模块中的一个判决模块的所述输出寄存器中存储的所述源标识符,对接收由所述一个或者多个判决模块中的所述一个判决模块输出的确立的标志做出响应,以及(ii)使用所述源标识符以标识所述处理器将做出响应的事件的源。
2.根据权利要求1所述的计算机系统,其中所述至少一个判决模块中的每个判决模块还包括被配置为存储在所述输入处接收的所述事件标志的所述源的源标识符的输入寄存器。
3.根据权利要求2所述的计算机系统,其中所述标识逻辑被配置为使所述源标识符从与标识的所述输入对应的所述输入寄存器被写入到所述输出寄存器中。
4.根据任一前述权利要求所述的计算机系统,其中响应于从所述一个或者多个判决模块中的所述一个判决模块的所述输出寄存器读取所述源标识符,所述处理器被配置为:
取回与来自标识的所述源的事件有关的指令;以及
处理取回的所述指令以由此对来自标识的所述源的所述事件做出响应。
5.根据任一前述权利要求所述的计算机系统,还包括事件队列,所述事件队列被配置为:
存储与事件有关的数据;以及
向所述区分优先级模块提供所述事件标志。
6.根据权利要求5所述的计算机系统,其中所述事件队列中的每个事件队列被配置为存储与所述处理器将做出响应的、由相应设备生成的事件有关的数据。
7.根据权利要求5或者6所述的计算机系统,其中所述源标识符是队列标识符。
8.根据权利要求1至6中的任一权利要求所述的计算机系统,其中所述源标识符是到查找表中的偏移,其中所述查找表包括将由所述处理器访问以由此对所述事件做出响应的存储器地址。
9.根据任一前述权利要求所述的计算机系统,其中所述至少一个判决模块中的每个判决模块包括三个输入。
10.根据任一前述权利要求所述的计算机系统,其中所述区分优先级模块包括单个判决模块。
11.根据权利要求1至9中的任一权利要求所述的计算机系统,其中所述区分优先级模块包括多个判决模块,其中所述判决模块中的至少一个判决模块的所述OR逻辑的所述输出被耦合到所述判决模块中的另一判决模块的输入。
12.根据权利要求11所述的计算机系统,其中所述区分优先级模块包括在包括两个级别的分级中布置的四个判决模块;
其中第一级别包括所述判决模块中的第一判决模块,并且第二级别包括所述判决模块中的第二判决模块、第三判决模块和第四判决模块;
其中所述第二判决模块、所述第三判决模块和所述第四判决模块的所述OR逻辑的所述输出被耦合到所述第一判决模块的相应输入,并且其中所述第一判决模块的所述OR逻辑被配置为向所述处理器输出标志,并且其中所述第一判决模块的所述输出寄存器被配置为存储标识所述处理器将做出响应的事件的源的源标识符。
13.根据权利要求11所述的计算机系统,其中所述区分优先级模块包括在包括三个级别的分级中布置的十三个判决模块;
其中第一级别包括所述判决模块中的第一判决模块;第二级别包括所述判决模块中的第二判决模块、第三判决模块和第四判决模块;并且第三级别包括所述判决模块中的第五判决模块、第六判决模块、第七判决模块、第八判决模块、第九判决模块、第十判决模块、第十一判决模块、第十二判决模块和第十三判决模块;
其中所述第五判决模块、所述第六判决模块和所述第七判决模块的所述OR逻辑的所述输出被耦合到所述第二判决模块的相应输入,
其中所述第八判决模块、所述第九判决模块和所述第十判决模块的所述OR逻辑的所述输出被耦合到所述第三判决模块的相应输入,
其中所述第十一判决模块、所述第十二个判决模块和所述第十三判决模块的所述OR逻辑的所述输出被耦合到所述第四判决模块的相应输入,
其中所述第二判决模块、所述第三判决模块和所述第四判决模块的所述OR逻辑的所述输出被耦合到所述第一判决模块的相应输入,
并且其中所述第一判决模块的所述OR输入被配置为向所述处理器输出标志,其中所述第一判决模块的所述输出寄存器被配置为存储标识所述处理器将做出响应的事件的源的源标识符。
14.根据任一前述权利要求所述的计算机系统,其中对哪些源与向所述区分优先级模块的所述至少一个判决模块的所述输入中的哪些输入提供的事件标志有关的所述布置是可配置的。
15.一种对计算机系统中的事件做出响应的方法,所述计算机系统包括:处理器,所述处理器被配置为对来自多个源的事件做出响应,以及区分优先级模块,所述区分优先级模块被实施在硬件中并且被配置为将用于所述处理器的所述事件区分优先级,其中所述区分优先级模块包括一个或者多个判决模块,每个判决模块具有与相应优先级关联的多个输入,所述方法包括:
在所述一个或者多个判决模块中的至少一个判决模块的所述输入处接收与来自相应源的事件有关的相应事件标志;
从所述至少一个判决模块的OR逻辑输出与对在所述多个输入处接收的所述事件标志的逻辑OR运算的结果对应的标志;
对于所述至少一个判决模块中的每个判决模块,标识用于接收确立的标志的所述判决模块的所述输入中的哪个输入具有最高优先级;
在所述至少一个判决模块中的每个判决模块的相应输出寄存器中存储对于其在所述判决模块的标识的所述输入处确立的事件标志被接收的所述源的源标识符;
响应于所述处理器接收由所述一个或者多个判决模块中的一个判决模块输出的确立的标志,所述处理器读取在所述判决模块中的所述一个判决模块的所述输出寄存器中存储的所述源标识符;以及
所述处理器使用所述源标识符标识所述处理器将做出响应的事件的源。
16.根据权利要求15所述的方法,还包括:
在输入寄存器中存储在所述至少一个判决模块的所述输入处接收的所述事件标志的所述源的源标识符;以及
对于所述至少一个判决模块中的每个判决模块,从与标识的所述输入对应的所述输入寄存器向所述输出寄存器中写入所述源标识符。
17.一种区分优先级模块,所述区分优先级模块被实施在硬件中并且被配置为耦合到处理器,所述处理器被配置为对来自多个源的事件做出响应,其中所述区分优先级模块被配置为将用于所述处理器的所述事件区分优先级,所述区分优先级模块包括:
一个或者多个判决模块,其中所述一个或者多个判决模块中的至少一个判决模块包括:
多个输入,所述多个输入被配置为接收与来自相应源的事件有关的相应事件标志,其中所述输入中的每个输入与相应优先级关联;
OR逻辑,所述OR逻辑被配置为输出与对在所述多个输入处接收的所述事件标志的逻辑OR运算的结果对应的标志;
标识逻辑,所述标识逻辑被配置为标识用于接收确立的标志的所述输入中的哪个输入具有最高优先级;以及
输出寄存器,所述输出寄存器被配置为存储对于其在标识的所述输入处确立的事件标志被接收的所述源的源标识符;
其中所述区分优先级模块被配置为允许所述处理器从所述一个或者多个判决模块中的一个判决模块的所述输出寄存器读取所述源标识符,以用于在标识所述处理器将做出响应的事件的源时使用。
18.根据权利要求17所述的区分优先级模块,其中所述至少一个判决模块中的每个判决模块还包括被配置为存储在所述输入处接收的所述事件标志的所述源的源标识符的输入寄存器,并且其中所述标识逻辑被配置为使得所述源标识符从与标识的所述输入对应的所述输入寄存器被写入到所述输出寄存器中。
19.根据权利要求17或者18所述的区分优先级模块,其中所述区分优先级模块包括:
单个判决模块,或者
多个判决模块,其中所述判决模块中的至少一个判决模块的所述OR逻辑的所述输出被耦合到所述判决模块中的另一判决模块的输入。
20.一种使用区分优先级模块的方法,所述区分优先级模块被实施在硬件中以将用于处理器的事件区分优先级,所述处理器被配置为对来自多个源的事件做出响应,其中所述区分优先级模块包括一个或者多个判决模块,每个判决模块具有与相应优先级关联的多个输入,所述方法包括:
在所述一个或者多个判决模块中的至少一个判决模块的所述输入处接收与来自相应源的事件有关的相应事件标志;
从所述至少一个判决模块的OR逻辑输出与对在所述多个输入处接收的所述事件标志的逻辑OR运算的结果对应的标志;
对于所述至少一个判决模块中的每个判决模块,标识用于接收确立的标志的所述判决模块的所述输入中的哪个输入具有最高优先级;
在所述至少一个判决模块中的每个判决模块的相应输出寄存器中存储对于其在所述判决模块的标识的所述输入处确立的事件标志被接收的所述源的源标识符;以及
所述区分优先级模块允许所述处理器从所述一个或者多个判决模块中的一个判决模块的所述输出寄存器读取所述源标识符,以用于在标识所述处理器将对其做出响应的事件的源时使用。
21.一种计算机可读存储介质,具有在其上编码的计算机可读代码,所述计算机可读代码用于生成根据权利要求1至14中的任一权利要求所述的计算机系统或者用于生成根据权利要求17至19中的任一权利要求所述的区分优先级模块。
CN201510130621.6A 2014-03-25 2015-03-24 计算机系统、区分优先级以及有关的方法和装置 Active CN104951365B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GBGB1405323.5A GB201405323D0 (en) 2014-03-25 2014-03-25 Prioritsing events to which a processor is to respond
GB1405323.5 2014-03-25
GB1501024.2 2015-01-21
GB1501024.2A GB2524622B (en) 2014-03-25 2015-01-21 Prioritising events to which a processor is to respond

Publications (2)

Publication Number Publication Date
CN104951365A true CN104951365A (zh) 2015-09-30
CN104951365B CN104951365B (zh) 2017-11-14

Family

ID=50686876

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510130621.6A Active CN104951365B (zh) 2014-03-25 2015-03-24 计算机系统、区分优先级以及有关的方法和装置

Country Status (4)

Country Link
US (1) US9292365B2 (zh)
CN (1) CN104951365B (zh)
DE (1) DE102015104460B4 (zh)
GB (2) GB201405323D0 (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5317745A (en) * 1992-01-10 1994-05-31 Zilog, Inc. Minimal interrupt latency scheme using multiple program counters
US5408643A (en) * 1991-02-01 1995-04-18 Nec Corporation Watchdog timer with a non-masked interrupt masked only when a watchdog timer has been cleared
US6449675B1 (en) * 1999-06-29 2002-09-10 Motorola, Inc. Multifield register having a selection field for selecting a source of an information field
US20070074214A1 (en) * 2005-09-13 2007-03-29 Nec Corporation Event processing method in a computer system
US7586927B1 (en) * 2003-11-04 2009-09-08 Force 10 Networks, Inc. Multistage cascade arbiter
CN102323897A (zh) * 2011-05-12 2012-01-18 中山爱科数字科技有限公司 一种平台内部业务处理和负载均衡的方法
GB2495959A (en) * 2011-10-26 2013-05-01 Imagination Tech Ltd Multi-threaded memory access processor

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4271468A (en) 1979-11-06 1981-06-02 International Business Machines Corp. Multiprocessor mechanism for handling channel interrupts
US5613128A (en) 1990-12-21 1997-03-18 Intel Corporation Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5408643A (en) * 1991-02-01 1995-04-18 Nec Corporation Watchdog timer with a non-masked interrupt masked only when a watchdog timer has been cleared
US5317745A (en) * 1992-01-10 1994-05-31 Zilog, Inc. Minimal interrupt latency scheme using multiple program counters
US6449675B1 (en) * 1999-06-29 2002-09-10 Motorola, Inc. Multifield register having a selection field for selecting a source of an information field
US7586927B1 (en) * 2003-11-04 2009-09-08 Force 10 Networks, Inc. Multistage cascade arbiter
US20070074214A1 (en) * 2005-09-13 2007-03-29 Nec Corporation Event processing method in a computer system
CN102323897A (zh) * 2011-05-12 2012-01-18 中山爱科数字科技有限公司 一种平台内部业务处理和负载均衡的方法
GB2495959A (en) * 2011-10-26 2013-05-01 Imagination Tech Ltd Multi-threaded memory access processor

Also Published As

Publication number Publication date
CN104951365B (zh) 2017-11-14
DE102015104460A1 (de) 2015-10-01
GB2524622A (en) 2015-09-30
US20150277998A1 (en) 2015-10-01
GB2524622B (en) 2016-03-30
GB201501024D0 (en) 2015-03-04
DE102015104460B4 (de) 2019-10-17
GB201405323D0 (en) 2014-05-07
US9292365B2 (en) 2016-03-22

Similar Documents

Publication Publication Date Title
US11928590B2 (en) Methods and systems for power management in a pattern recognition processing system
US20200334533A1 (en) Methods and systems for data analysis in a state machine
US9817678B2 (en) Methods and systems for detection in a state machine
US9886017B2 (en) Counter operation in a state machine lattice
US9454322B2 (en) Results generation for state machine engines
US8680888B2 (en) Methods and systems for routing in a state machine
EP2891052B1 (en) Instruction insertion in state machine engines
US20160124860A1 (en) Methods and systems for handling data received by a state machine engine
US10268602B2 (en) System and method for individual addressing
US10430210B2 (en) Systems and devices for accessing a state machine
US20220261257A1 (en) Systems and devices for accessing a state machine
US20230176999A1 (en) Devices for time division multiplexing of state machine engine signals
CN110738317A (zh) 基于fpga的可变形卷积网络运算方法、装置和系统
CN104951365A (zh) 对处理器将做出响应的事件区分优先级

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210330

Address after: Trondheim

Patentee after: NORDIC SEMICONDUCTOR ASA

Address before: Hertfordshire

Patentee before: Imagination Technologies Ltd.