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

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

Info

Publication number
CN112559403B
CN112559403B CN201910912610.1A CN201910912610A CN112559403B CN 112559403 B CN112559403 B CN 112559403B CN 201910912610 A CN201910912610 A CN 201910912610A CN 112559403 B CN112559403 B CN 112559403B
Authority
CN
China
Prior art keywords
interrupt
arbitration
priority
interrupts
unit
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.)
Active
Application number
CN201910912610.1A
Other languages
English (en)
Other versions
CN112559403A (zh
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 CN201910912610.1A priority Critical patent/CN112559403B/zh
Priority to PCT/US2020/051446 priority patent/WO2021061514A1/en
Priority to US17/025,482 priority patent/US11237994B2/en
Priority to EP20870151.6A priority patent/EP4035016A4/en
Priority to JP2022519121A priority patent/JP2022550059A/ja
Publication of CN112559403A publication Critical patent/CN112559403A/zh
Application granted granted Critical
Publication of CN112559403B publication Critical patent/CN112559403B/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/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
    • 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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/366Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a centralised polling arbiter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Bus Control (AREA)

Abstract

本发明公开了一种中断控制器,包括:采样单元,适于从耦接到中断控制器的各个中断源接收中断,并对所接收到的各个中断进行采样;优先级仲裁单元,适于将所接收到的各个中断划分为多个中断部分,每个中断部分包括一个或者多个所采样的中断,并逐个部分地确定所选择部分中具有最高优先级的中断,直到仲裁出所有中断中具有最高优先级的中断作为要响应的中断。本发明还公开了包含该中断控制器的处理器和片上系统。

Description

一种处理器及其中的中断控制器
技术领域
本发明涉及处理器领域,尤其涉及处理器中的中断处理领域。
背景技术
处理器需要处理来自诸如I/O设备和计时器之类的中断源的中断。处理器通过执行中断服务程序来处理中断。由于处理器需要处理来自多个中断源的不同中断,因此每个中断有其相应的中断优先级。通常在高性能平台中,系统设计复杂,系统的中断源个数也非常多,通常在512个以上。对于平台来说,中断控制器需要从众多的中断中仲裁出优先级最高的中断,并上报该中断信息等。中断控制器需要通过对各个中断之间进行优先级比较,选择优先级最大的中断进行响应。
传统的中断控制,在随着中断源个数的增加,优先级仲裁的资源急剧膨胀,每增加一个中断源就需要增加一份额外的中断仲裁资源,这些仲裁逻辑包括了优先级比较器和选择器等。而且,在高性能的中断控制器中,由于时序的原因,随着中断源个数增加,需要对设计进行时序划分,设计复杂度也非常大。
由于在中断源个数非常大的情况下,中断控制器逻辑资源巨大,且时序划分复杂,传统的中断控制器将影响整个芯片的时序性能和面积大小。
为此,需要一种新的处理器中的中断控制器方案,可以实现更加高效的中断处理方式,使用少量资源即可支持不同种的中断源配置。
发明内容
为此,本发明提供了一种新的处理器及其中的中断控制器,以力图解决或者至少缓解上面存在的至少一个问题。
根据本发明的一个方面,提供了一种中断控制器,包括:采样单元,适于从耦接到中断控制器的各个中断源接收中断,并对所接收到的各个中断进行采样;优先级仲裁单元,适于将所接收到的各个中断划分为多个中断部分,每个中断部分包括一个或者多个所采样的中断,并逐个部分地确定所选择部分中具有最高优先级的中断,直到仲裁出所有中断中具有最高优先级的中断作为要响应的中断。
可选地,在根据本发明的中断控制器中,优先级仲裁单元包括:选择模块,适于逐个选择多个中断部分之一,并将所选择的中断部分中的中断送入仲裁模块进行仲裁;以及仲裁模块,适于从选择模块选择的中断和上一轮仲裁的中间仲裁结果中,仲裁出优先级最高的中断,作为本轮仲裁的中间仲裁结果;其中当仲裁模块为选择模块选择的最后一个中断部分的中断进行仲裁之后,完成最后一轮仲裁,并将该轮仲裁的结果,作为要响应的中断。
可选地,根据本发明的中断控制器还包括中断配置单元,耦接到采样单元,适于存储各个中断的配置信息,其中配置信息包括一下信息中的一个或多个:中断优先级、中断处理状态、中断使能。
可选地,根据本发明的中断控制器还包括仲裁迭代控制单元,适于控制优先级仲裁单元,对所接收到的各个中断进行仲裁,直到遍历各个中断时,结束仲裁。
可选地,在根据本发明的中断控制器中,仲裁迭代控制单元还适于控制优先级仲裁单元,对满足预设条件的中断进行仲裁,直到遍历满足预设条件的中断时,结束仲裁。其中,预设条件是中断处理状态为等待状态。
可选地,在根据本发明的中断控制器中,仲裁迭代控制单元还适于在接收到的各中断中有处于等待状态的中断、且优先级仲裁单元没有在执行仲裁时,触发优先级仲裁单元进行迭代仲裁。
可选地,在根据本发明的中断控制器中,在选择模块中,支持输入多路选通的数量,由所接收的中断个数和所述仲裁模块所支持的输入多路选通的个数确定;在仲裁模块中,支持输入多路选通的个数由所接收的中断个数确定。
可选地,在根据本发明的中断控制器中,优先级仲裁单元还适于按照顺序或随机的方式,将所接收到的各个中断划分为多个中断部分,并选择多个中断部分之一进行仲裁。
可选地,在根据本发明的中断控制器中,优先级仲裁单元还适于在将所接收到的中断划分为多个中断部分之前,屏蔽没有中断的中断源,以对包含中断的中断源中的中断进行划分。
可选地,根据本发明的中断控制器还包括:阈值比较单元,耦接到中断配置单元,适于将中断的优先级与预设优先级进行比较,当该中断的优先级高于预设优先级时,将该中断输入优先级仲裁单元。
根据本发明的另一个方面,提供了一种处理器,包括:如上所述的中断控制器,适于从耦接到中断控制器的中断源接收各中断,并选择要处理的中断;以及处理器内核,耦接到中断控制器,并对中断控制器选择的中断进行处理。
可选地,在根据本发明的处理器中,处理器内核适于在中断控制器选择的中断的中断优先级高于处理器内核中正在处理中断的中断优先级时,暂停正在处理中断的处理,并开始处理中断控制器选择的中断。
可选地,在根据本发明的处理器中,处理器内核适于在中断控制器选择的中断的中断优先级不高于处理器内核中正在处理中断的中断优先级时,不处理中断控制器选择的中断。
根据本发明的还有一个方面,提供了一种片上系统,包括:如上所述的处理器;以及一个或者多个中断源,耦接到处理器,并生成要由处理器处理的中断。
根据本发明的还有一个方面,提供了一种智能设备,包括如上所述的片上系统。
根据本发明的方案,通过优先级仲裁单元使用迭代仲裁的方式来仲裁出要响应的中断,以降低仲裁逻辑资源。其主要原理,在仲裁逻辑上,只使用少量的仲裁逻辑,仲裁逻辑每一轮仲裁只仲裁所有中断中的一部分,仲裁后的中断,保存为中间仲裁结果,然后依次进行多轮仲裁,直到所有的中断都经过了优先级仲裁单元,最终,由优先级仲裁单元输出的结果即为最终的中断结果。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的处理器100的示意图;
图2示出了根据本发明一个实施例的中断控制器200的示意图;
图3示出了根据本发明一个实施例的优先级仲裁单元230的示意图;
图4示出了根据本发明一个实施例的计算机系统1200的示意图;以及
图5示出了根据本发明一个实施例的片上系统(SoC)1500的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的处理器100的示意图。如图1所示,处理系统190包括处理器100和耦接到处理器100的各种中断源210(中断源 210例如是外部I/O设备、计时器等)。中断源210生成各种类型的中断,并由处理器100进行处理。处理器100包括处理器内核150和中断控制器200。处理器内核150耦接到中断控制器200,并对中断控制器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根据各个中断的中断优先级来确定中断的处理顺序,当存在多个中断同时发生时,优先级最高的中断会被优先处理。
处理器内核150在中断控制器200选择的中断的中断优先级高于处理器内核150中正在处理中断的中断优先级时,暂停正在处理中断的处理,并开始处理中断控制器200所选择的中断。同理,处理器内核150在中断控制器 200选择的中断的中断优先级不高于处理器内核150中正在处理中断的中断优先级时,不处理中断控制器200所选择的中断。
根据本发明的实施方式,中断控制器200对所接收到的中断进行划分,得到多个中断部分;再从各中断部分中各选择一个中断进行仲裁,确定出其中优先级高的中断;重复迭代多次仲裁的过程,直到遍历所有的中断后,结束仲裁,并确定出优先级最高的中断,由指令处理设备110执行中断服务程序。
图2示出了根据本发明一个实施例的中断控制器200的示意图,中断控制器200从耦接到其的多个中断源210获取中断,并选出要发送给处理器内核150进行处理的中断。
如图2所示,中断控制器200包括采样单元220和优先级仲裁单元230。采样单元220从耦接到中断控制器200的各个中断源210接收各个中断。通常,外部中断源210的时钟与处理器时钟为异步关系,采样单元220将外部中断源210与处理器时钟进行同步并采样,以产生有效的中断信息。另外,中断源210有两种不同的触发属性:电平触发和边缘触发(或脉冲触发),采样单元220将这两种不同触发方式采样并统一成一种处理方式。
优先级仲裁单元230从采样单元220接收的各中断中确定出优先级最高的中断,将其作为要发送给处理器内核150进行响应处理的中断。优先级仲裁单元230先将所接收到的各个中断划分为多个中断部分,一般地,每个中断部分包括一个或者多个所采样的中断。根据本发明的实施例,所划分的各中断部分中所包含的中断的数目,可以是固定数目的,也可以动态调整的,本发明的实施例对此不做限制。优先级仲裁单元230再逐个部分地确定所选择的部分中具有最高优先级的中断,直到仲裁出所有中断中具有最高优先级的中断,将其作为要响应的中断。
图3示出了根据本发明一个实施例的优先级仲裁单元230的示意图。如图3所示,优先级仲裁单元230包括选择模块232和仲裁模块234。
在一种实施例中,选择模块232负责从所接收到的中断中选出要送入仲裁模块234进行仲裁的中断。具体地,选择模块232逐个选择多个中断部分之一,并将所选择的中断部分中的中断送入仲裁模块234进行仲裁。
仲裁模块234每对一个中断部分进行仲裁,称为一轮仲裁。在每轮仲裁中,仲裁模块234仲裁出当前这部分中断中优先级最高的中断,作为中间仲裁结果。根据本发明的实施例,仲裁模块234从选择模块232选择的中断和上一轮仲裁的中间仲裁结果中,仲裁出优先级最高的中断,作为本轮仲裁的中间仲裁结果。其中,当仲裁模块234为选择模块232选择的最后一个中断部分的中断进行仲裁之后,完成最后一轮仲裁,并将该轮仲裁的结果,作为要响应的中断。
需要说明的是,图3中所示的中断个数和布置于选择模块232和仲裁模块234中的用于多路选通的选择器输入输出信号的数量,仅作为示例,本发明的实施例对此不作限制。本发明实施例对用于多路选通的选择器的实现方式亦不作限制。
此外,优先级仲裁单元230基于各中断事先配置好的配置信息来仲裁出优先级最高的中断。配置信息包括一下信息中的一个或多个:中断优先级、中断处理状态、中断使能。
可选地,中断控制器200还包括用于存储各中断的配置信息的中断配置单元240。如图2所示,中断配置单元240耦接到采样单元220。中断配置单元240中存储各个中断的配置信息(包括中断优先级、中断处理状态和中断使能)。根据中断被处理器处理的情况,中断具有多个的处理状态,包括中断等待(pending)和中断响应(active)等。中断等待(pending)状态说明该中断已经由中断源210产生了并被采样单元220接收,但是未被处理器内核 150响应并进行处理。中断响应(active)状态说明该中断不仅被采样单元220 接收了,并且也已经被处理器内核150进行处理,但是还没有处理完成。这不仅包括当前正在处理器内核150中处理的情况,还包括由于中断嵌套导致处理器内核150优先执行优先级高的中断而暂时被中断执行的情况。
中断嵌套是指处理器内核150正在处理一个较低优先级的中断时,处理器内核150接收到一个新的、具有较高优先级的中断,此时处理器内核150 需要暂时停止较低优先级中断的处理,储存该中断的现场(包括当前的程序计数器PC、将相关寄存器的内容压栈到相应堆栈中),并开始执行与该高优先级中断相对应的处理,这样,就产生了中断嵌套。当中断嵌套的层级较多时,会由于需要存储较多中断的信息而耗费处理器的大量资源。
根据一种实施方式,中断配置单元240可以利用寄存器来存储各个中断的配置信息。通过改变这些寄存器相应位置的值,就可以修改各个中断的状态。
可选地,中断配置单元240中还存储各个中断的使能位,以指示是否对该中断进行采用和处理。采样单元220可以根据各中断的使能位的值来决定是否对该中断进行采用。
根据本发明的实施例,中断控制器200还包括仲裁迭代控制单元250。继续如图2所示,该仲裁迭代控制单元250耦接到优先级仲裁单元230,用于控制优先级仲裁单元230对所接收到的各个中断进行仲裁,直到遍历各个中断时,结束仲裁。
在一些优选的实施例中,仲裁迭代控制单元250控制优先级仲裁单元230,对满足预设条件的中断进行仲裁,直到遍历完满足预设条件的中断时,结束仲裁。其中,预设条件是中断的处理状态为等待状态(pending)。
仲裁迭代控制单元250控制触发中断仲裁、中间仲裁的中断选择和仲裁结束判断。
对于触发中断仲裁,仲裁迭代控制单元250控制优先级仲裁单元230,在所接收到的各中断中有处于等待状态(pending)的中断、且优先级仲裁单元 230当前没有在执行仲裁时,触发优先级仲裁单元230进行迭代仲裁。
对于中间仲裁的中断选择,仲裁迭代控制单元250控制优先级仲裁单元 230,按照顺序或随机的方式,将所接收到的各个中断划分为多个中断部分,并选择多个中断部分之一进行仲裁,直到遍历所有的中断。假设共接收到9 个中断,将其划分成3个中断部分。可以按照顺序的方式,固定每个中断部分中的中断数目,即,将前3个中断作为一个中断部分,中间3个中断作为一个中断部分,后3个中断作为一个中断部分(当然,亦可以设置每个中断部分中的中断数目是动态调整的,例如,将前4个中断作为一个中断部分,中间3个中断作为一个中断部分,后2个中断作为一个中断部分,不限于此)。此外,也可以按照随机的方式,将其划分成3个中断部分。甚至,还可以采用指定中断序号的方式,将第1,4,7作为一个中断部分,将第2,5,8作为一个中断部分,将第3,6,9作为一个中断部分。本发明的实施例并不受限于选择何种方式来将中断划分成多个中段部分,来完成对中断的遍历。
在另一些实施例中,仲裁迭代控制单元250也可以控制优先级仲裁单元 230,只遍历那些处于等待状态的中断。
对于仲裁结束判断,仲裁迭代控制单元250控制优先级仲裁单元230,在一个迭代周期中,只要所有的中断都进行过迭代,就可以结束仲裁。
为进一步说明优先级仲裁单元230进行迭代仲裁的逻辑,以下示出一个示例。
中断源个数1024、仲裁模块234支持32+1(其中1为中间仲裁结果)选 1的优先级仲裁,那么选择模块232需要支持32个32选1的选择器。一种比较简单的迭代仲裁的执行逻辑的设计可以为:将1024个中断依次划分为32 个中断部分,每个中断部分中包含32个中断,每次选择一个中断部分进行仲裁,即在一个迭代周期中共迭代32轮。那么选择模块232中的32个选择器的选择信号为轮数,即每个选择器选出当轮需要进行迭代的中断。最后一轮之后,仲裁模块234输出的中断,即为最后仲裁出的中断。
需要说明的是,此处为便于说明,在选择模块232和仲裁模块234中均采用选择器(即,多选一数据选择器)来举例说明。本发明实施例对此并不做限制。选择模块232和仲裁模块234可以采用任意一种具有多路选通功能的器件(如多路选通开关),来接收多路中断信号,并从所接收到的中断中选择一路进行输出。
基于上例,可以得出:当所接收到的中断个数为N时,仲裁模块234支持的中断个数为M+1(即,仲裁模块234所支持的输入多路选通的信号数量),那么,选择模块232需要M个具有多路选通功能的选择器,每个选择器的规格为[N/M]选1,即,支持输入[N/M]路中断信号,输出1路中断信号。其中, [N/M]表示向上取整,即:如果N/M为整数,则[N/M]=N/M;如果不为整数,则[N/M]=N/M+1。也就是说,在选择模块232中,支持输入多路选通的数量 (即[N/M]),由所接收的中断个数(即N)和仲裁模块234所支持的输入多路选通的个数(即M)确定。
而对于仲裁模块234,其所支持输入多路选通的个数(即M)由所接收的中断个数(即N)确定。一般地,M的个数任意,只要小于N即可。
如前文所述,优先级仲裁单元230可以不用遍历所有中断,只遍历处于等待状态的中断,即在一个迭代周期中,只挑选其中的任意轮进行迭代。为优化优先级仲裁单元230的迭代仲裁速度,实现快速处理的目的,在根据本发明的又一些实施例中,在将所接收到的中断划分为多个中断部分之前,优先级仲裁单元230还可以屏蔽没有中断的中断源,只对包含中断的中断源中的中断进行划分。例如,中断源个数为1024,但实际接收到的中断只有20个,优先级仲裁单元230可以屏蔽掉其他1004个中断源,只对这20个中断进行划分,而后进行迭代仲裁。
根据另一种方式,中断控制器200还包括耦接到中断配置单元240的阈值比较单元260。阈值比较单元260将中断的优先级与预设优先级进行比较,当该中断的优先级高于预设优先级时,再将该中断输入优先级仲裁单元230 中,进行迭代仲裁。
预设优先级可以存储在阈值寄存器中,并可以进行配置和修改,本发明不受限于预设优先级的具体存储形式,所有可以读取和修改预设优先级的方式,都在本发明的保护范围之内。
根据又一些实施例,通过中断配置单元240将特定中断的中断优先级设为最高,当特定中断进入优先级仲裁单元230时,不再需要进行迭代仲裁,直接作为要响应的中断被输出。通过这种方式,实现对特定中断的快速响应。
当然,还可以利用阈值比较单元260,针对特定中断设置预设优先级,使得优先级高于预设优先级的特定中断不再进行迭代仲裁,而直接被响应处理,以实现对特定中断的快速响应,同时又不影响对其它中断的处理。
根据本发明的中断控制器200,通过优先级仲裁单元230使用迭代仲裁的方式来仲裁出要响应的中断,以降低仲裁逻辑资源。其主要原理,在仲裁逻辑上,只使用少量的仲裁逻辑,仲裁逻辑每一轮仲裁只仲裁所有中断中的一部分,仲裁后的中断,保存为中间仲裁结果,然后依次进行多轮仲裁,直到所有的中断都经过了优先级仲裁单元230,最终,由优先级仲裁单元230输出的结果即为最终的中断结果。同时,中断控制器200还通过仲裁迭代控制单元250来控制优先级仲裁单元230的仲裁逻辑,以完成对符合条件的所有中断的遍历仲裁。对于条件的设置可以根据实际需求来设置,例如处于等待状态的中断,使得仲裁处理更加高效和灵活。
综上,根据本发明的中断控制器200,使用少量资源,即可支持对大量中断源的仲裁。并且,该中断控制器200可扩展性强,可支持不同种的中断源配置。
图4示出了根据本发明一个实施例的计算机系统1200的示意图。图4所示的计算机系统1200可以应用于膝上型设备、台式机、手持PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持设备以及各种其他电子设备。本发明不受限于此,所有可以纳入本说明书中所公开的处理器和/或其它执行逻辑的系统都在本发明的保护范围之内。
如图4所示,系统1200可以包括一个或多个处理器1210、1215。这些处理器耦接到控制器中枢1220。在一个实施例中,控制器中枢1220包括图形存储器控制器中枢(GMCH)1290和输入/输出中枢(IOH)1250(其可以在分开的芯片上)。GMCH 1290包括与存储器1240和协处理器1245相耦接的存储器控制器和图形控制器。IOH 1250将输入/输出(I/O)设备1260耦接到GMCH 1290。作为选择,存储器控制器和图形控制器集成在处理器中,这样存储器1240和协处理器1245就直接耦接到处理器1210,此时控制器中枢1220仅仅包括IOH1250。
附加处理器1215的任选性质用虚线表示在图4中。每一处理器1210、1215 可包括本文中描述的处理核中的一个或多个,并且可以是图1所示的处理器 100的某一版本。
存储器1240可以是例如动态随机访问存储器(DRAM)、相变存储器(PCM) 或这两者的组合。对于至少一个实施例,控制器中枢1220经由诸如前侧总线(FSB)之类的多分支总线(multi-drop bus)、诸如快速通道互连(QPI)之类的点对点接口、或者类似的连接1295与处理器1210、1215进行通信。
在一个实施例中,协处理器1245是专用处理器,诸如例如高吞吐量MIC 处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、或嵌入式处理器等等。在一个实施例中,控制器中枢1220可以包括集成图形加速器。
在一个实施例中,处理器1210执行控制一般类型的数据处理操作的指令。嵌入在这些指令中的可以是协处理器指令。处理器1210识别如具有应当由附连的协处理器1245执行的类型的这些协处理器指令。因此,处理器1210在协处理器总线或者其他互连上将这些协处理器指令(或者表示协处理器指令的控制信号)发布到协处理器1245。协处理器1245接受并执行所接收的协处理器指令。
图5示出了根据本发明的一个实施例的片上系统(SoC)1500的示意图。如图5所示,互连单元1502耦接到应用处理器1510(例如可以包含图1所示的处理器100,图中未示出)、系统代理单元1110、总线控制器单元1116、集成存储器控制器单元1114、一个或多个协处理器1520、静态随机存取存储器(SRAM)单元1530、直接存储器存取(DMA)单元1532以及用于耦合至一个或多个外部显示器的显示单元1540。应用处理器1510还可以包括一个或多个核1102A-N的集合以及共享高速缓存单元1106。协处理器1520包括集成图形逻辑、图像处理器、音频处理器和视频处理器。在一个实施例中,协处理器1520包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、或嵌入式处理器等等。
另外,上面描述的片上系统可以包含在智能设备中,以便在智能设备中实现相应的功能,包括但不限于执行相关控制程序、进行数据分析、运算和处理、网络通信、控制智能设备中的外设等。
这样的智能设备包括专门的智能设备,如移动终端和个人数字终端等,这些设备中包括根据本发明的一个或者多个片上系统来进行数据处理,或者对设备中的外设进行控制。
这样的智能设备还包括为了实现特定功能而构造的专门设备,例如智能音箱、和智能显示设备等。这些设备中包括根据本发明的片上系统来对音箱和显示设备进行控制,从而赋予音箱和显示设备额外的通信、感知和数据处理等功能。
这样的智能设备还包括各种IoT和AIoT设备。这些设备中包括根据本发明的片上系统进行数据处理,例如进行AI运算、数据通信和传输等,从而实现了更加密集且更加智能的设备分布。
这样的智能设备还可以在车辆中使用,例如可以实现为车载设备、或者可以嵌入到车辆中,从而为车辆的智能驾驶提供数据处理能力。
这样的智能设备还可以用于家庭和娱乐领域,例如可以实现为智能音箱、智能空调、智能冰箱、智能显示设备等。这些设备包括根据本发明的片上系统来进行数据处理和外设控制,从而实现了家庭和娱乐设备的智能化。
另外,这样的智能设备还可以用于工业领域,例如可以实现为工控设备、感测设备、IoT设备,AIoT设备和制动设备等。这些设备中包括根据本发明的片上系统来进行数据处理和外设控制,从而实现了工业设备的智能化。
以上对智能设备的描述仅仅是示意性的,根据本发明的智能设备不受限于此,所有可以利用根据本发明的片上系统进行数据处理的智能设备都在本发明的保护范围之内。
应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

Claims (15)

1.一种中断控制器,包括:
采样单元,适于从耦接到中断控制器的各个中断源接收中断,并对所接收到的各个中断进行采样;
优先级仲裁单元,适于将所接收到的各个中断划分为多个中断部分,每个中断部分包括一个或者多个所采样的中断,并逐个部分地确定所选择部分中具有最高优先级的中断,直到仲裁出所有中断中具有最高优先级的中断作为要响应的中断;
其中,所述优先级仲裁单元包括:
选择模块,适于逐个选择多个中断部分之一,并将所选择的中断部分中的中断送入仲裁模块进行仲裁;以及
仲裁模块,适于从所述选择模块选择的中断和上一轮仲裁的中间仲裁结果中,仲裁出优先级最高的中断,作为本轮仲裁的中间仲裁结果;
其中当所述仲裁模块为所述选择模块选择的最后一个中断部分的中断进行仲裁之后,完成最后一轮仲裁,并将该轮仲裁的结果,作为所述要响应的中断。
2.如权利要求1所述的中断控制器,还包括:
中断配置单元,耦接到所述采样单元,适于存储各个中断的配置信息,其中所述配置信息包括一下信息中的一个或多个:中断优先级、中断处理状态、中断使能。
3.如权利要求2所述的中断控制器,还包括:
仲裁迭代控制单元,适于控制所述优先级仲裁单元,对所接收到的各个中断进行仲裁,直到遍历各个中断时,结束仲裁。
4.如权利要求3所述的中断控制器,其中,
所述仲裁迭代控制单元还适于控制所述优先级仲裁单元,对满足预设条件的中断进行仲裁,直到遍历所述满足预设条件的中断时,结束仲裁。
5.如权利要求4所述的中断控制器,其中,所述预设条件是中断处理状态为等待状态。
6.如权利要求5所述的中断控制器,其中,
所述仲裁迭代控制单元还适于在接收到的各中断中有处于等待状态的中断、且所述优先级仲裁单元没有在执行仲裁时,触发所述优先级仲裁单元进行迭代仲裁。
7.如权利要求6所述的中断控制器,其中,
所述选择模块中,支持输入多路选通的数量,由所接收的中断个数和所述仲裁模块所支持的输入多路选通的个数确定;以及
所述仲裁模块中,支持输入多路选通的个数由所接收的中断个数确定。
8.如权利要求7所述的中断控制器,其中,
所述优先级仲裁单元还适于按照顺序或随机的方式,将所接收到的各个中断划分为多个中断部分,并选择多个中断部分之一进行仲裁。
9.如权利要求8所述的中断控制器,其中,
所述优先级仲裁单元还适于在将所接收到的中断划分为多个中断部分之前,屏蔽没有中断的中断源,以对包含中断的中断源中的中断进行划分。
10.如权利要求2-9中任一项所述的中断控制器,还包括:
阈值比较单元,耦接到所述中断配置单元,适于将所述中断的优先级与预设优先级进行比较,当该中断的优先级高于所述预设优先级时,将该中断输入所述优先级仲裁单元。
11.一种处理器,包括:
如权利要求1-10中任一个所述的中断控制器,适于从耦接到所述中断控制器的中断源接收各中断,并选择要处理的中断;以及
处理器内核,耦接到所述中断控制器,并对所述中断控制器选择的中断进行处理。
12.如权利要求11所述的处理器,其中,
所述处理器内核适于在所述中断控制器选择的中断的中断优先级高于所述处理器内核中正在处理中断的中断优先级时,暂停所述正在处理中断的处理,并开始处理所述中断控制器选择的中断。
13.如权利要求11或12所述的处理器,其中,
所述处理器内核适于在所述中断控制器选择的中断的中断优先级不高于所述处理器内核中正在处理中断的中断优先级时,不处理所述中断控制器选择的中断。
14.一种片上系统,包括:
如权利要求11-13中任一个所述的处理器;以及
一个或者多个中断源,耦接到所述处理器,并生成要由所述处理器处理的中断。
15.一种智能设备,包括如权利要求14所述的片上系统。
CN201910912610.1A 2019-09-25 2019-09-25 一种处理器及其中的中断控制器 Active CN112559403B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201910912610.1A CN112559403B (zh) 2019-09-25 2019-09-25 一种处理器及其中的中断控制器
PCT/US2020/051446 WO2021061514A1 (en) 2019-09-25 2020-09-18 Processor and interrupt controller therein
US17/025,482 US11237994B2 (en) 2019-09-25 2020-09-18 Interrupt controller for controlling interrupts based on priorities of interrupts
EP20870151.6A EP4035016A4 (en) 2019-09-25 2020-09-18 PROCESSOR AND INTERRUPT CONTROL INSIDE
JP2022519121A JP2022550059A (ja) 2019-09-25 2020-09-18 プロセッサおよびその内部の割り込みコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910912610.1A CN112559403B (zh) 2019-09-25 2019-09-25 一种处理器及其中的中断控制器

Publications (2)

Publication Number Publication Date
CN112559403A CN112559403A (zh) 2021-03-26
CN112559403B true CN112559403B (zh) 2024-05-03

Family

ID=74880942

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910912610.1A Active CN112559403B (zh) 2019-09-25 2019-09-25 一种处理器及其中的中断控制器

Country Status (5)

Country Link
US (1) US11237994B2 (zh)
EP (1) EP4035016A4 (zh)
JP (1) JP2022550059A (zh)
CN (1) CN112559403B (zh)
WO (1) WO2021061514A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11579920B2 (en) * 2020-07-21 2023-02-14 Arm Limited Virtual processor interrupt tracking
CN117170745B (zh) * 2023-11-03 2024-01-12 睿思芯科(深圳)技术有限公司 Risc-v外部中断的处理方法、系统及相关设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5283904A (en) * 1990-12-21 1994-02-01 Intel Corporation Multi-processor programmable interrupt controller system
US5918057A (en) * 1997-03-20 1999-06-29 Industrial Technology Research Institute Method and apparatus for dispatching multiple interrupt requests simultaneously
CN1598797A (zh) * 2003-09-19 2005-03-23 松下电器产业株式会社 实时处理器系统及控制方法
CN101673221A (zh) * 2009-10-22 2010-03-17 同济大学 一种嵌入式片上多处理器的中断处理方法
CN103106113A (zh) * 2013-02-25 2013-05-15 广东威创视讯科技股份有限公司 一种中断事件处理方法和处理设备
CN110083563A (zh) * 2019-04-01 2019-08-02 吉林大学 一种基于循环优先级实现公平仲裁的仲裁电路

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5958036A (en) * 1997-09-08 1999-09-28 Lucent Technologies Inc. Circuit for arbitrating interrupts with programmable priority levels
GB2339035B (en) * 1998-04-29 2002-08-07 Sgs Thomson Microelectronics A method and system for transmitting interrupts
CN1105690C (zh) 1999-06-15 2003-04-16 中国洛阳浮法玻璃集团有限责任公司 无铜翡翠绿浮法玻璃着色剂
KR100528476B1 (ko) * 2003-07-22 2005-11-15 삼성전자주식회사 컴퓨터 시스템의 인터럽트 처리 장치
CN1277161C (zh) * 2003-12-12 2006-09-27 中兴通讯股份有限公司 可编程中断控制器
US20070106827A1 (en) * 2005-11-08 2007-05-10 Boatright Bryan D Centralized interrupt controller
US7433985B2 (en) * 2005-12-28 2008-10-07 Intel Corporation Conditional and vectored system management interrupts
JP5173714B2 (ja) * 2008-09-30 2013-04-03 ルネサスエレクトロニクス株式会社 マルチスレッドプロセッサ及びその割り込み処理方法
US7849247B2 (en) * 2008-10-14 2010-12-07 Freescale Semiconductor, Inc. Interrupt controller for accelerated interrupt handling in a data processing system and method thereof
JP5512383B2 (ja) * 2010-05-12 2014-06-04 ルネサスエレクトロニクス株式会社 計算機システム
US8909836B2 (en) * 2012-10-08 2014-12-09 Andes Technology Corporation Interrupt controller, apparatus including interrupt controller, and corresponding methods for processing interrupt request event(s) in system including processor(s)
US9430421B2 (en) * 2014-03-12 2016-08-30 Arm Limited Interrupt signal arbitration
US9575912B2 (en) * 2014-04-08 2017-02-21 Infineon Technologies Ag Service request interrupt router with shared arbitration unit
CN105095128B (zh) * 2014-05-22 2020-04-03 中兴通讯股份有限公司 中断处理方法及中断控制器
KR20180083688A (ko) * 2017-01-13 2018-07-23 삼성전자주식회사 애플리케이션 프로세서 및 집적 회로
US10423550B2 (en) * 2017-10-25 2019-09-24 International Business Machines Corporation Managing efficient selection of a particular processor thread for handling an interrupt
CN110737616B (zh) * 2018-07-20 2021-03-16 瑞昱半导体股份有限公司 处理中断优先级的电路系统
US10545893B1 (en) * 2019-01-11 2020-01-28 Arm Limited Interrupt controller and method of operation of an interrupt controller
CN111752877A (zh) * 2019-03-27 2020-10-09 阿里巴巴集团控股有限公司 一种处理器及其中的中断控制器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5283904A (en) * 1990-12-21 1994-02-01 Intel Corporation Multi-processor programmable interrupt controller system
US5918057A (en) * 1997-03-20 1999-06-29 Industrial Technology Research Institute Method and apparatus for dispatching multiple interrupt requests simultaneously
CN1598797A (zh) * 2003-09-19 2005-03-23 松下电器产业株式会社 实时处理器系统及控制方法
CN101673221A (zh) * 2009-10-22 2010-03-17 同济大学 一种嵌入式片上多处理器的中断处理方法
CN103106113A (zh) * 2013-02-25 2013-05-15 广东威创视讯科技股份有限公司 一种中断事件处理方法和处理设备
CN110083563A (zh) * 2019-04-01 2019-08-02 吉林大学 一种基于循环优先级实现公平仲裁的仲裁电路

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种多核处理器中断控制器的设计;张海金;张洵颖;肖建青;;微电子学与计算机;20160705(07);全文 *

Also Published As

Publication number Publication date
US11237994B2 (en) 2022-02-01
WO2021061514A1 (en) 2021-04-01
EP4035016A1 (en) 2022-08-03
JP2022550059A (ja) 2022-11-30
CN112559403A (zh) 2021-03-26
US20210089482A1 (en) 2021-03-25
EP4035016A4 (en) 2023-08-30

Similar Documents

Publication Publication Date Title
KR102668599B1 (ko) 하드웨어 가속을 위한 하드웨어 리소스들의 임베디드 스케줄링
US6671827B2 (en) Journaling for parallel hardware threads in multithreaded processor
CN110678847B (zh) 用于gpu任务调度的连续分析任务
US7020871B2 (en) Breakpoint method for parallel hardware threads in multithreaded processor
US6694380B1 (en) Mapping requests from a processing unit that uses memory-mapped input-output space
US6944850B2 (en) Hop method for stepping parallel hardware threads
US20140129784A1 (en) Methods and systems for polling memory outside a processor thread
JP2010503070A (ja) 従属命令スレッドスケジューリング
CN112559403B (zh) 一种处理器及其中的中断控制器
CN115129480B (zh) 标量处理单元的访问控制方法及标量处理单元
CN112540796B (zh) 一种指令处理装置、处理器及其处理方法
US9442759B2 (en) Concurrent execution of independent streams in multi-channel time slice groups
KR20150101870A (ko) 메모리의 뱅크 충돌을 방지하기 위한 방법 및 장치
US20130212364A1 (en) Pre-scheduled replays of divergent operations
KR20140131781A (ko) 메모리 제어 장치 및 방법
CN112540789B (zh) 一种指令处理装置、处理器及其处理方法
EP4268176A1 (en) Condensed command packet for high throughput and low overhead kernel launch
US10803007B1 (en) Reconfigurable instruction
WO2021061626A1 (en) Instruction executing method and apparatus
CN117667212A (zh) 指令控制装置、方法、处理器、芯片和板卡
CN118170515A (zh) 一种处理器任务包调度装置和方法
CN117667210A (zh) 指令控制装置、方法、处理器、芯片和板卡
CN117234674A (zh) 用于执行任务调度的方法及其相关产品
CN117687935A (zh) 指令控制方法、数据缓存方法及相关产品
CN113033791A (zh) 用于保序的计算装置、集成电路装置、板卡及保序方法

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
GR01 Patent grant
GR01 Patent grant