CN111752877A - 一种处理器及其中的中断控制器 - Google Patents

一种处理器及其中的中断控制器 Download PDF

Info

Publication number
CN111752877A
CN111752877A CN201910238111.9A CN201910238111A CN111752877A CN 111752877 A CN111752877 A CN 111752877A CN 201910238111 A CN201910238111 A CN 201910238111A CN 111752877 A CN111752877 A CN 111752877A
Authority
CN
China
Prior art keywords
interrupt
priority
threshold
processor
module
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
Application number
CN201910238111.9A
Other languages
English (en)
Inventor
赵朝君
项晓燕
陈晨
朱涛涛
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910238111.9A priority Critical patent/CN111752877A/zh
Priority to US16/828,453 priority patent/US11182318B2/en
Priority to EP20776706.2A priority patent/EP3948556A4/en
Priority to PCT/US2020/024451 priority patent/WO2020198220A1/en
Publication of CN111752877A publication Critical patent/CN111752877A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • 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/30101Special purpose 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/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
    • 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/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution

Abstract

本发明公开了一种处理器中的中断控制器,包括:中断采样单元,适于从耦接到该中断控制器的各个中断源接收各个中断;以及仲裁单元,适于从所接收的各个中断中选择要响应的中断。该仲裁单元包括:选择模块,适于从各种中断中选择优先级最高的最高优先级中断;以及阈值比较模块,耦接到选择模块,适于将最高优先级中断的优先级和预设置的优先级阈值进行比较。仲裁单元适于在阈值比较模块确定最高优先级中断的优先级高于优先级阈值时,选择最高优先级中断做为要响应的中断。本发明还公开了包含该中断控制器的处理器和片上系统。

Description

一种处理器及其中的中断控制器
技术领域
本发明涉及处理器领域,尤其涉及处理器中的中断处理领域。
背景技术
处理器需要处理来着诸如I/O设备和计时器之类的中断源的中断。处理器通过执行中断服务程序来处理中断。由于处理器需要处理来着多个中断源的不同中断,因此每个中断有其相应的中断优先级和中断向量号。具有高中断优先级的中断需要被优先处理,同时也期望已经等待了较长时间的中断能否得到即时处理,从而不会过久占用处理器资源,因此,当处理器处理多个中断时,如何高效地处理各种具有不同优先级的中断是处理器领域所要面临的问题之一。
另外,在具有低优先级的中断被具有高优先级的中断抢占了处理器资源时,如果低优先级的中断没有释放高优先级中断处理所需要的其它资源,则会导致高优先级中断也无法继续执行的“死锁”情况,因此同样也需要处理器能够高效地处理各种具有不同优先级的中断
为此需要一种新的处理器中中断控制器方案,可以实现更加高效的中断处理方式,以加快中断响应和处理速度。
发明内容
为此,本发明提供了一种新的处理器及其中的中断控制器,以力图解决或者至少缓解上面存在的至少一个问题。
根据本发明的一个方面,提供了一种中断控制器,包括中断采样单元,适于从耦接到该中断控制器的各个中断源接收各个中断;以及仲裁单元,适于从所接收的各个中断中选择要响应的中断。该仲裁单元包括:选择模块,适于从各种中断中选择优先级最高的最高优先级中断;以及阈值比较模块,耦接到选择模块,适于将最高优先级中断的优先级和预设置的优先级阈值进行比较。仲裁单元适于在阈值比较模块确定最高优先级中断的优先级高于所述优先级阈值时,选择最高优先级中断做为要响应的中断。
可选地,在根据本发明的中断控制器中,仲裁单元还包括:阈值设置模块,适于设置优先级阈值;以及阈值清除模块,适于清除优先级阈值。
可选地,根据本发明的中断控制器还包括向量号寄存器,以及阈值设置模块适于在设置优先级阈值时,在向量号寄存器中存储与优先级阈值相对应的中断向量号,以及阈值清除模块适于当前中断处理完成时,如果当前中断的中断向量号和向量号寄存器中存储的中断向量号相同,则清除优先级阈值。
可选地,根据本发明的中断控制器还包括优先级寄存器,以及阈值设置模块适于在设置优先级阈值时,在优先级寄存器中存储优先级不高于该阈值的、要处理中断的中断优先级,以及阈值清除模块适于在当前中断处理完成时,如果当前中断的中断优先级和优先级寄存器中存储的中断优先级相同,则清除该优先级阈值。
可选地,在根据本发明的中断控制器中,阈值清除模块适于在处理器的处理器内核执行中断返回指令时确定当前中断处理完成,并获取处理器内核中正处理中断的中断向量号做为当前中断的中断向量号和/或获取处理器内核中正处理中断的中断优先级做为当前中断的中断优先级。
可选地,在根据本发明的中断控制器中,阈值清除模块适于在不存在中断嵌套时,清除该优先权阈值。
可选地,在根据本发明的中断控制器中,阈值设置模块适于将当前正在处理的中断之一的中断的中断优先级设置为优先级阈值。
可选地,在根据本发明的中断控制器中,阈值清除模块适于将优先级阈值设置为最低中断优先级来清除该优先级阈值。
可选地,根据本发明的中断控制器还包括:中断配置单元,适于存储各个中断的中断优先级和中断处理状态。阈值清除模块适于根据中断配置单元中存储的各个中断的中断优先级来确定是否存在中断嵌套,以及阈值设置单元适于根据中断配置单元中存储的各个中断的中断处理状态来确定当前正在处理的中断。
可选地,在根据本发明的中断控制器中,仲裁单元还包括:优先级比较模块,耦接到该选择模块,适于将最高优先级中断的优先级和当前在处理器中执行的中断的优先级进行比较,其中该仲裁单元还适于在阈值比较模块确定最高优先级中断的优先级高于所设置的优先级阈值并且优先级比较模块确定最高优先级中断的优先级高于当前在处理器中执行的中断的优先级时,选择最高优先级中断做为所述要响应的中断。
根据本发明的另一个方面,提供了一种处理器,包括根据本发明的中断控制器,适于从耦接到中断控制器的中断源接收各中断,并选择要处理的中断;以及处理器内核,耦接到该中断控制器,并对中断控制器选择的中断进行处理。
根据本发明的还有一个方面,提供了一种片上系统,包括根据本发明的处理器;以及一个或者多个中断源,耦接到该处理器,并生成要由该处理器要处理的中断。
根据本发明的方案,通过设置优先级阈值,可以暂时停止处理高优先级的中断,而让特定具有较低优先级的目标中断在处理器中先进行处理,从而可以提高目标中断的响应和处理速度和尽快释放资源。这种方案在处理器中出现中断嵌套时,能够让处理器先处理已经响应的中断,从而尽快释放处理器资源。
另外,根据本发明的方案,可以针对某个特定中断设置中断优先级阈值,并在该中断处理完成之后自动清除所设置的中断优先级阈值,可以让处理器即能够快速处理该特定中断,又可以在该特定中断处理之后立刻处理高优先级的中断,这样处理器的中断处理方式更加高效和灵活。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的处理器100的示意图;
图2示出了根据本发明一个实施例的中断控制器200的示意图;
图3示出了根据本发明一个实施例的阈值清除模块240的示意图;以及
图4示出了根据本发明一个实施例的片上系统(SoC)400的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的处理器100的示意图。如图1所示,处理系统190包括处理器100和耦接到处理器100的各种中断源210。中断源210生成各种类型的中断,并由处理器100进行处理。处理器100包括处理器内核150和中断控制器200。处理器内核150进一步包括指令处理设备110和处理器资源120。指令处理设备110为处理器200中的指令处理部件,处理内容包括取出指令进行译码,然后执行译码后的各种指令。指令处理设备110同时在中断进行相应,改变处理器100中指令执行的程序流,并执行对应的中断处理程序。应当注意的是,指令处理设备110是对处理器100功能的逻辑划分,可以将所有处理器100中与指令相关的部件都划分为指令处理设备110的一部分而没有超出本发明的保护范围。
根据一种实施方式,指令处理设备110包括取指令单元112、指令译码单元114和指令执行单元116。取指令单元112从指令存储区域130获取要执行的指令,并所取出的指令发送给指令译码单元112。
指令一般包括操作码和地址码,其中操作码指示要执行的操作;而地址码指示操作码执行时的操作对象的地址或者内容。指令译码单元114可以对指令进行译码和分析,以确定指令的操作码并进一步确定操作的性质和方法。
随后,指令译码单元114将译码后的指令发送给指令执行单元116,并在指令执行单元116中执行该指令。根据本发明的一个实施方式,指令执行单元116包含各种用于执行专门指令的执行单元。本发明不受限于执行专门指令的指令执行单元的具体形式,所有可以执行指令的指令执行单元116都在本发明的保护范围之内。
指令执行单元116在执行时会访问处理器资源120如各种寄存器以及数据存储区域140。例如,从这些寄存器和数据存储区域140获取数据,并且将执行结果写入到寄存器或者数据存储空间中。
处理器内核150还包括中断处理模块152,在指令处理设备110进行指令处理期间,中断处理模块152对外部中断进行响应,并因此可以通过指令处理设备110改变当前在处理器中执行的程序,并运行与该外部中断相对应的中断服务程序来处理该中断。
根据一种实施方式,处理器内核150在响应中断时,首先保存当前处理器状态以及处理器执行现场(处理器的PC),并根据所响应中断的中断信息获取中断服务程序入口地址,并跳转到该地址开始处理中断任务;处理器内核150在处理完中断任务之后,执行中断返回指令,处理器恢复之前保存的处理器状态,并返回到之前的现场(保存的PC)继续执行。中断处理模块152可以通过指令处理设备110进行上述中断响应处理。
中断控制器200耦接到处理器内核150,并选择要处理的中断发送给处理器内核150进行处理。每个中断具有相应的中断优先级和中断向量号。处理器100根据各个中断的中断优先级来确定中断的处理顺序,当存在多个中断同时发生时,优先级高的中断会被优先处理。处理器100还根据中断的中断向量号来确定响应该中断进行处理时的中断服务程序,例如在处理器资源120的中断寄存器中存储有中断服务程序的基址,处理器100可以根据基址和中断向量号确定对应中断服务程序的入口地址,并改变处理器PC以指向该入口地址,从而让指令处理设备100执行中断服务程序。
图2示出了根据本发明一个实施例的中断控制器200的示意图,中断控制器200从耦接到其的多个中断源210获取中断,并选出要发送给处理器内核150进行处理的中断。
如图2所示,中断控制器200包括中断采样单元220和仲裁单元230。中断采样单元220从耦接到中断控制器200的各个中断源210接收各个中断。通常,外部中断源210的时钟与处理器时钟为异步关系,采样单元220将外部中断源210与处理器时钟进行同步并采样,以产生有效的中断信息。另外,中断源210有两种不同的触发属性:电平触发和边缘触发(或脉冲触发),中断采样单元220将这两种不同触发方式采样并统一成一种处理方式。
仲裁单元230从中断采样单元220接收的各个中断中选择要发送给处理器内核150进行响应处理的中断。仲裁单元230包括选择模块232和阈值比较模块234。选择模块232从所接收的中断中选择优先级最高的最高优先级中断。每个中断可以具有事先配置好的中断信息。中断信息包括中断优先级和中断向量号。
可选地,中断信息可以存储在中断控制器200的中断配置单元240中。中断配置单元240中存储各个中断的中断信息(包括中断优先级和中断处理状态)。可以在中断配置单元240中对中断的中断优先级进行配置,以便处理器100根据中断优先级来调度中断的响应处理。根据中断被处理器处理的情况,中断具有多个的处理状态,包括中断等待(pending)和中断响应(active)等。中断等待(pending)状态说明该中断已经由中断源210产生了并被中断采样单元220接收,但是未被处理器内核150响应并进行处理。中断响应(active)状态说明该中断不仅被中断采样单元220接收了,并且还已经被处理器内核150进行处理,但是还没有处理完成。这不仅包括当前正在处理器内核150中处理的情况,还包括由于中断嵌套导致处理器内核150优先执行优先级高的中断而暂时被中断执行的情况。
中断嵌套是指处理器内核150正在处理一个较低优先级的中断时,处理器内核150接收到一个新的、具有较高优先级的中断,此时处理器内核150需要暂时停止较低优先级中断的处理,储存该中断的现场(包括当前的程序计数器PC、将相关寄存器的内容压栈到相应堆栈中),并开始执行与该高优先级中断相对应的处理,这样,就产生了中断嵌套。当中断嵌套的层级较多时,会由于需要存储较多中断的信息而耗费处理器的大量资源。
根据一种实施方式,中断配置单元240可以利用寄存器来存储各个中断的配置信息。通过改变这些寄存器相应位置的值,就可以修改各个中断的状态。
可选地,中断配置单元240中还存储各个中断的使能位,以指示是否对该中断进行采用和处理。中断采样单元220可以根据各中断的使能位的值来决定是否对该中断进行采用。
选择模块232可以根据中断配置单元240中存储的中断配置信息,选择具有最高优先级的中断。根据一种实施方式,选择模块232可以从处于pending状态的中断和采样单元220新采用的中断中选择具有最高优先级的中断。根据另一种方式,每个中断被采样单元220采样之后,会先修改中断配置单元240中的中断处理状态为pending,然后选择模块232从所有状态为pending的中断中选择优先级最高的中断进行后续处理。本发明不受限选择模块232进行中断选择的具体形式,所有可以从当前未被处理器内核150处理的中断中选择最高优先级中断的方式都在本发明的保护范围之内。
阈值比较模块234耦接到选择模块232,将选择模块232所选出的具有最高优先级的最高优先级中断的优先级和预先设置的优先级阈值进行比较。在阈值比较模块234确定最高优先级中断的优先级高于优先级阈值时,仲裁单元230选择该最高优先级中断做为要输出给处理器内核150进行响应处理的中断。在仲裁单元230中,采用阈值比较模块234,可以通过设置优先级阈值来屏蔽优先级低于优先级阈值的中断被发送给处理器内核150进行响应处理。这样,当处理器内核150中正处理多个中断而处于中断嵌套中时,可以让当前处于嵌套的中断被处理器内核150优先处理完成,而减少由于中断嵌套导致的处理器资源占用。
可以有多种方式来清除优先级阈值来使得阈值比较模块234不起作用。根据一种实施方式,可以不设置优先级阈值的值或者将优先级阈值设置为空来清除优先级阈值。根据本发明的另一种实施方式,可以设置相应的使能位以指示阈值比较模块234是否作用,并在仲裁单元230中不需要进行优先级阈值比较就输出具有最高优先级的中断时,设置该使能位以使得阈值比较模块234不起作用。根据本发明的另一种实施方式,可以通过将优先级阈值设置为最低优先级值,这样所有中断的优先级都会高于这个优先级,让阈值比较模块234失去实际作用。
优先级阈值可以存储在阈值寄存器250中,并可以进行配置和修改,本发明不受限于优先级阈值的具体存储形式,所有可以读取和修改优先级阈值的方式都在本发明的保护范围之内。
为了对优先级阈值进行设置和清除,仲裁单元230还包括阈值设置模块238和阈值清除模块239。阈值设置模块238设置优先级阈值,而阈值清除模块239适于清除所述优先级阈值。阈值清除模块239可以在满足预定条件时,自动触发对优先级阈值的清除。根据本发明的一种实施方式,阈值清除模块239可以将优先级阈值设置为最低优先级来进行优先级阈值清除。根据本发明的另一种实施方式,阈值清除模块239可以将优先级阈值设置为空来清楚优先级阈值。利用阈值设置模块238设置优先级阈值来使得阈值比较模块234起作用,以及让阈值清除模块239在满足条件时自动清除优先级阈值而使得阈值比较模块234不起作用。可以针对特定中断进行优先级阈值设定而让特定中断被快速响应处理而不影响对其它中断的处理。
根据本发明的一个实施例,中断控制器200包括向量号寄存器260。阈值设置模块238在设置优先级阈值时,可以在向量号寄存器260存储与该优先级阈值相对应的中断向量号。例如,为了让中断向量号为16且中断优先级为2的中断尽快被处理,阈值设置模块238可以将优先级阈值设置为2,从而阻止优先级高于和等于阈值2的中断被发送给处理器内核150进行处理。同时,阈值设置模块238可以将中断向量号16存储到向量号寄存器260中。
当处理器内核150在完成对当前中断的处理时,阈值清除模块239可以从处理器内核150获取当前中断的中断向量号,并在该中断向量号和向量号寄存器160中存储的中断向量号相等时,清除优先级阈值,使得阈值比较模块234不再起作用。
根据本发明的另一个实施例,中断控制器200包括优先级寄存器270。阈值设置模块238在设置优先级阈值时,可以在优先级寄存器270存储要优先处理的、但是优先级不高于优先级阈值的中断的中断优先级。例如,为了中断优先级为2的中断尽快被处理,阈值设置模块238可以将优先级阈值设置为2,从而阻止优先级高于和等于阈值2的中断被发送给处理器内核150进行处理。同时,阈值设置模块238可以将中断优先级2存储到优先级寄存器270中。
当处理器内核150在完成对当前中断的处理时,阈值清除模块239可以从处理器内核150获取当前中断的中断优先级,并在该中断优先级和优先级寄存器160中存储的中断优先级相等时,清除优先级阈值,使得阈值比较模块234不再起作用。
根据一种实施方式,当处理器内核150要完成对一中断的处理时,会执行中断返回指令。中断控制器200,特别是阈值清除模块239可以在处理器内核150执行中断返回指令时被触发,并可以从处理器内核150获取当前正在执行中的中断的中断优先级和/或中断向量号。例如,阈值清除模块239可以读取处理器内核150中的某个寄存器而获取当前正在执行中断的中断优先级和/或中断向量号。
根据还有一种实施方式,当处理器内核150中的中断不存在中断嵌套时,此时由于处理器内核150中可能没有中断在处理或者只有一个中断正在处理,因此,设置优先权阈值并没有必要,因此阈值清除模块239此时可以清除优先权阈值。
可选地,阈值清除模块239可以参考中断配置单元240中存储的各个中断的中断处理状态来确定是否存在中断嵌套。各个中断的中断处理状态指示相应中断是否已经被处理器内核150所响应并且在处理中。当根据在中断配置单元240中各个中断的处理状态,仅仅只有一个中断或者没有中断被处理器内核150进行处理时,则可以认为此时不存在中断嵌套,阈值清除模块239据此清除优先权阈值。
根据另一种实施方式,阈值设置模块238可以为当前正被处理器内核150响应处理的中断进行优先级阈值设置,从而可以阻止高于这个正在处理中断的中断优先级的中断被处理器内核150响应,此时阈值设置模块238可以将这个正在处理中的中断的中断优先级设置为优先级阈值,以便让阈值比较模块234起作用。
类似地,阈值设置模块238可以参考中断配置单元240中存储的各个中断的中断处理信息来进行优先级阈值设置。阈值设置模块238可以从中断处理状态为中断响应(active)的中断中选择要进行优先级阈值设置的中断,并且将优先级阈值设置为所选择中的中断优先级。
图3适应性地示出了阈值清除模块239的一个具体逻辑实现方式300的示例。如图3所示,在比较器310处,将处理器内核150中正在处理中断的优先级或者向量号和优先级寄存器270或者向量号寄存器260中的值进行比较。比较器310的输出电平在与门320处和处理器中断返回指令进行与操作。或门330接收与门320的输出和中断嵌套的指示电平,或门330的输出为2选1多路复用器340的控制输入。
在该逻辑电路执行时,当或门330的输出为1时,多路复用器340选择最低优先级的值输出做为优先级阈值,从而对优先级阈值进行清除,而导致阈值比较模块234不再起作用。为了让或门330输出为1,要么没有中断嵌套的指示值为1,要么与门320的输出为1。只有正在处理中断的优先级或者向量号和优先级寄存器270或者向量号寄存器260中的值相等(此时比较器310的输出电平为1)和存在处理器中断返回指令时,与门320的输出才为1。
根据图3的阈值清除模块239的逻辑实现方式300,当不存在中断嵌套时,阈值清除模块239清除优先级阈值而使得阈值比较模块234不起作用;当存在中断嵌套时,在中断处理完成(处理器执行中断返回指令)并且正在处理中断的优先级或者向量号为优先级寄存器270或者向量号寄存器260中的值时,阈值清除模块239同样会清除优先级阈值而使得阈值比较模块234不起作用。
继续参考图2,根据本发明的另一个实施方式,仲裁单元230还包括优先级比较模块236。优先级比较模块236耦接到选择模块232,将选择模块232所选出的最高优先级中断的优先级和当前在处理器内核150中处理的中断的优先级进行比较。当最高优先级中断的优先级高于当前正在处理的中断的优先级时,则优先级比较模块236确定该最高优先级中断可以被选为要由处理器内核150进行响应处理的中断。
仲裁单元230根据阈值比较模块234和优先级比较模块236的比较结果来确定是否将该最高优先级中断发送给处理器内核150。当阈值比较模块234确定最高优先级中的优先级高于优先级阈值,并且优先级比较模块236确定最高优先级中断的优先级高于当前正在处理的中断的优先级时,仲裁单元230才将所选出的最高优先级中断发送给处理器内核进行处理。
本发明不受限于阈值比较模块234和优先级比较模块236的比较顺序,所有可以一并考虑阈值比较模块234和优先级比较模块236的比较结果的方式都在本发明的保护范围之内。
处理器内核150接收中断控制器200所输出的中断。当处理器内核150中正在处理中断,并且中断控制器200输出的中断的中断优先级高于处理器内核150中正在处理中断的中断优先级时,则暂停正在处理中断的处理,并开始处理中断控制器150选择的中断,并因此产生中断嵌套。
另外,当在仲裁模块230中的优先级比较模块236未起作用或者仲裁模块230未包括优先级比较模块236时,则中断控制器200所输出中断的中断优先级有可能不高于处理器内核150中正在处理中断的中断优先级时,则处理器内核150不处理中断控制器200选择的中断,并将该中断的中断处理状态设置为pending,以便后续由中断控制器200再次尝试发给处理器内核150进行处理。
根据本发明的中断控制器200,通过利用阈值设置模块238和阈值清除模块239,可以在对阈值比较模块234中的优先级阈值进行设置之后,在中断处理状态满足预定条件之后,自动清除优先级阈值而使得阈值比较模块234在特定中断的优先处理完成之后即刻失去作用,从而在存在中断嵌套的情况下,可以更加高效地进行中断处理。
图4示出了根据本发明一个实施例的片上系统(SoC)400的示意图。片上系统400包括参考图1所述的处理器100、参考图1和2所述的各种中断源210、存储空间430和协处理器440等。片上系统可以集成在一块电路板上,并构成了一个相对完整的处理系统,中断源210例如为各种外设接口,接收外部输入并且输出处理器100经过处理之后的输出。存储空间430可以为处理器100提供外部存储空间,用于存储处理器100要执行的代码和产生的各种输出数据。协处理器440为一种专门的处理器,用于执行专门的处理任务,例如图像运算等。
应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

Claims (14)

1.一种处理器中的中断控制器,包括:
中断采样单元,适于从耦接到所述中断控制器的各个中断源接收各个中断;以及
仲裁单元,适于从所接收的各个中断中选择要响应的中断,所述仲裁单元包括:
选择模块,适于从所述各种中断中选择优先级最高的最高优先级中断;以及
阈值比较模块,耦接到所述选择模块,适于将所述最高优先级中断的优先级和预设置的优先级阈值进行比较,
其中所述仲裁单元适于在所述阈值比较模块确定所述最高优先级中断的优先级高于所述优先级阈值时,选择所述最高优先级中断做为所述要响应的中断。
2.如权利要求1所述的中断控制器,其中所述仲裁单元还包括:
阈值设置模块,适于设置所述优先级阈值;以及
阈值清除模块,适于清除所述优先级阈值。
3.如权利要求2所述的中断控制器,还包括向量号寄存器,
所述阈值设置模块适于在设置所述优先级阈值时,在所述向量号寄存器中存储与所述优先级阈值相对应的中断向量号,以及
所述阈值清除模块适于当前中断处理完成时,如果所述当前中断的中断向量号和所述向量号寄存器中存储的中断向量号相同,则清除所述优先级阈值。
4.如权利要求2所述的中断控制器,还包括优先级寄存器,
所述阈值设置模块适于在设置所述优先级阈值时,在所述优先级寄存器中存储优先级不高于所述阈值的、要处理中断的中断优先级,以及
所述阈值清除模块适于在当前中断处理完成时,如果所述当前中断的中断优先级和所述优先级寄存器中存储的中断优先级相同,则清除所述优先级阈值。
5.如权利要求2-4中任一个所述的中断控制器,所述阈值清除模块适于在所述处理器的处理器内核执行中断返回指令时确定所述当前中断处理完成,并获取所述处理器内核中正处理中断的中断向量号做为所述当前中断的中断向量号和/或获取所述处理器内核中正处理中断的中断优先级做为所述当前中断的中断优先级。
6.如权利要求2-5中任一个所述的中断控制器,所述阈值清除模块适于在不存在中断嵌套时,清除所述优先权阈值。
7.如权利要求2-6中任一个所述的中断控制器,所述阈值设置模块适于将当前正在处理的中断之一的中断的中断优先级设置为所述优先级阈值。
8.如权利要求2-7中任一个所述的中断控制器,所述阈值清除模块适于将所述优先级阈值设置为最低中断优先级来清除所述优先级阈值。
9.如权利要求2-8中任一个所述的中断控制器,还包括:
中断配置单元,适于存储各个中断的中断优先级和中断处理状态,
所述阈值清除模块适于根据所述中断配置单元中存储的各个中断的中断优先级来确定是否存在中断嵌套,以及
所述阈值设置单元适于根据所述中断配置单元中存储的各个中断的中断处理状态来确定当前正在处理的中断。
10.如权利要求1-9中任一个所述的中断控制器,所述仲裁单元还包括:
优先级比较模块,耦接到所述选择模块,适于将所述最高优先级中断的优先级和当前在处理器中执行的中断的优先级进行比较,
其中所述仲裁单元还适于在所述阈值比较模块确定所述最高优先级中断的优先级高于所设置的优先级阈值并且所述优先级比较模块确定所述最高优先级中断的优先级高于当前在处理器中执行的中断的优先级时,选择所述最高优先级中断做为所述要响应的中断。
11.一种处理器,包括:
如权利要求1-10中任一个所述的中断控制器,适于从耦接到所述中断控制器的中断源接收各中断,并选择要处理的中断;以及
处理器内核,耦接到所述中断控制器,并对所述中断控制器选择的中断进行处理。
12.如权利要求11所述的处理器,其中所述处理器内核适于在所述中断控制器选择的中断的中断优先级高于所述处理器内核中正在处理中断的中断优先级时,暂停所述正在处理中断的处理,并开始处理所述中断控制器选择的中断。
13.如权利要求11或者12所述的处理器,其中所述处理器内核适于在所述中断控制器选择的中断的中断优先级不高于所述处理器内核中正在处理中断的中断优先级时,不处理所述中断控制器选择的中断。
14.一种片上系统,包括:
如权利要求11-13中任一个所述的处理器;以及
一个或者多个中断源,耦接到所述处理器,并生成要由所述处理器处理的中断。
CN201910238111.9A 2019-03-27 2019-03-27 一种处理器及其中的中断控制器 Pending CN111752877A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201910238111.9A CN111752877A (zh) 2019-03-27 2019-03-27 一种处理器及其中的中断控制器
US16/828,453 US11182318B2 (en) 2019-03-27 2020-03-24 Processor and interrupt controller
EP20776706.2A EP3948556A4 (en) 2019-03-27 2020-03-24 PROCESSOR AND INTERRUPT CONTROLLER
PCT/US2020/024451 WO2020198220A1 (en) 2019-03-27 2020-03-24 Processor and interrupt controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910238111.9A CN111752877A (zh) 2019-03-27 2019-03-27 一种处理器及其中的中断控制器

Publications (1)

Publication Number Publication Date
CN111752877A true CN111752877A (zh) 2020-10-09

Family

ID=72607848

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910238111.9A Pending CN111752877A (zh) 2019-03-27 2019-03-27 一种处理器及其中的中断控制器

Country Status (4)

Country Link
US (1) US11182318B2 (zh)
EP (1) EP3948556A4 (zh)
CN (1) CN111752877A (zh)
WO (1) WO2020198220A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112286657A (zh) * 2020-10-23 2021-01-29 海光信息技术股份有限公司 电子设备和中断处理方法
CN113419450A (zh) * 2021-06-29 2021-09-21 北京猎户星空科技有限公司 一种电机foc控制及运行方法、装置、电子设备及介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559403B (zh) * 2019-09-25 2024-05-03 阿里巴巴集团控股有限公司 一种处理器及其中的中断控制器

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4402042A (en) * 1980-11-24 1983-08-30 Texas Instruments Incorporated Microprocessor system with instruction pre-fetch
JPS63238630A (ja) * 1987-03-26 1988-10-04 Toshiba Corp マイクロプロセツサの割込み制御装置
US5410710A (en) * 1990-12-21 1995-04-25 Intel Corporation Multiprocessor programmable interrupt controller system adapted to functional redundancy checking processor systems
US5530804A (en) * 1994-05-16 1996-06-25 Motorola, Inc. Superscalar processor with plural pipelined execution units each unit selectively having both normal and debug modes
JPH10260849A (ja) * 1997-03-19 1998-09-29 Mitsubishi Electric Corp 情報処理装置および割り込み制御方法
JPH11184806A (ja) * 1997-12-18 1999-07-09 Fujitsu Ltd バス制御装置
GB2396445B (en) * 2002-12-19 2005-12-21 Advanced Risc Mach Ltd An interrupt controller and interrupt controlling method for prioritizing interrupt requests generated by a plurality of interrupt sources
US20060112208A1 (en) * 2004-11-22 2006-05-25 International Business Machines Corporation Interrupt thresholding for SMT and multi processor systems
GB2462258B (en) * 2008-07-28 2012-02-08 Advanced Risc Mach Ltd Interrupt control for virtual processing apparatus
US8688964B2 (en) 2009-07-20 2014-04-01 Microchip Technology Incorporated Programmable exception processing latency
JP5512383B2 (ja) * 2010-05-12 2014-06-04 ルネサスエレクトロニクス株式会社 計算機システム
WO2013145288A1 (ja) * 2012-03-30 2013-10-03 富士通株式会社 情報処理装置、仮想マシン停止方法およびプログラム
US9009368B2 (en) * 2012-10-23 2015-04-14 Advanced Micro Devices, Inc. Interrupt latency performance counters
US9430421B2 (en) * 2014-03-12 2016-08-30 Arm Limited Interrupt signal arbitration
EP3404538B1 (en) * 2016-01-26 2022-09-28 Huawei Technologies Co., Ltd. Data processing method, and data processing apparatus
US10248595B2 (en) * 2017-08-10 2019-04-02 Infineon Technologies Ag Virtual machine monitor interrupt support for computer processing unit (CPU)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112286657A (zh) * 2020-10-23 2021-01-29 海光信息技术股份有限公司 电子设备和中断处理方法
CN113419450A (zh) * 2021-06-29 2021-09-21 北京猎户星空科技有限公司 一种电机foc控制及运行方法、装置、电子设备及介质

Also Published As

Publication number Publication date
EP3948556A4 (en) 2022-04-20
WO2020198220A1 (en) 2020-10-01
EP3948556A1 (en) 2022-02-09
US11182318B2 (en) 2021-11-23
US20200311000A1 (en) 2020-10-01

Similar Documents

Publication Publication Date Title
JP7313381B2 (ja) ハードウェアアクセラレーションのためのハードウェアリソースの埋込みスケジューリング
US7020871B2 (en) Breakpoint method for parallel hardware threads in multithreaded processor
US8291431B2 (en) Dependent instruction thread scheduling
EP1685486B1 (en) Interrupt handling in an embedded multi-threaded processor to avoid priority inversion and maintain real-time operation
CN110678847A (zh) 用于gpu任务调度的连续分析任务
CN111752877A (zh) 一种处理器及其中的中断控制器
JPH11219302A (ja) デ―タ・プロセッサにおいて後続の命令処理に影響を及ぼす方法および装置
US20120284720A1 (en) Hardware assisted scheduling in computer system
EP3056991A1 (en) Apparatus and method for managing a plurality of threads in an operating system
US20130152096A1 (en) Apparatus and method for dynamically controlling preemption section in operating system
JP2011086298A (ja) プログラム・フロー制御
US20040236928A1 (en) System and method for improved branch performance in pipelined computer architectures
US20170212852A1 (en) Method and accelerator unit for interrupt handling
US6968410B2 (en) Multi-threaded processing of system management interrupts
US20140089646A1 (en) Processor with interruptable instruction execution
CN112559403B (zh) 一种处理器及其中的中断控制器
CA2769899C (en) Enhanced prioritising and unifying interrupt controller
US7822950B1 (en) Thread cancellation and recirculation in a computer processor for avoiding pipeline stalls
US6112274A (en) Method and apparatus for processing more than one interrupts without reinitializing the interrupt handler program
US11593115B2 (en) Processor, device, and method for executing instructions
EP0806723A2 (en) Method and apparatus for handling multiple precise events in a pipelined digital processor
JP2011070290A (ja) データプロセッサ
US20230084603A1 (en) Methods and apparatus for context switching
CN117251393B (zh) 处理器的中断响应方法、装置、芯片、计算机设备和介质
US7124277B2 (en) Method and apparatus for a trace cache trace-end predictor

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination