CN114048156A - 一种多通道多映射中断控制器 - Google Patents
一种多通道多映射中断控制器 Download PDFInfo
- Publication number
- CN114048156A CN114048156A CN202111261653.1A CN202111261653A CN114048156A CN 114048156 A CN114048156 A CN 114048156A CN 202111261653 A CN202111261653 A CN 202111261653A CN 114048156 A CN114048156 A CN 114048156A
- Authority
- CN
- China
- Prior art keywords
- interrupt
- queue
- register
- channel
- controller
- 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
Links
- 238000013507 mapping Methods 0.000 title claims description 30
- 230000002776 aggregation Effects 0.000 claims description 51
- 238000004220 aggregation Methods 0.000 claims description 51
- 230000004044 response Effects 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 15
- 230000008859 change Effects 0.000 claims description 12
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 238000000034 method Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
一种多通道多映射中断控制器,包括:分发器;定时器;配置寄存器;多个中断通道;其中,定时器配置为为所述多个中断通道提供统一的时间;配置寄存器配置为保存多个中断控制器及全局的配置信息;分发器用于获取完成队列中的多个队列变化的条目数,并将多个队列变化的条目数及条目更新事件发送到与多个队列对应的多个中断通道;中断通道配置为根据配置寄存器中的中断控制器及全局的配置信息与定时器中的时间对收到的中断条目数进行分析以判断是否发起中断。本发明具备以下有益效果:支持多个中断通道和多个完成队列,每个中断通道可以被绑定到多个完成队列上。支持将不同类型的完成队列绑定到同一个中断通道。
Description
技术领域
本发明属于计算机领域,具体涉及一种多通道多映射中断控制器。
背景技术
NVMe协议对中断控制器的行为进行了一系列定义,包含协议强制要求的必选特性,也包含很多可由产商自主决定的可选特性或可选参数,给设备产商留下较大的自主发挥的空间。除去传统中断控制器定义的中断屏蔽、中断挂起记录等常规中断行为,NVMe协议定义的主要特性大致有以下几个方面:
·需要支持多个“完成队列”共享同一个中断通道(“完成队列”的定义在下文阐述);
·允许不同类型的“完成队列”,即拥有不同中断行为特性,共享同一个中断通道;
·支持按时间或者按数量进行“中断聚合”(“中断聚合”的定义在下文阐述),也支持关闭“中断聚合”;
·可选择支持多个中断通道,当支持时,可以针对每个中断通道单独设置是否打开“中断聚合”;
·即使打开中断聚合,为保证响应速度,当完成队列中新增条目包含错误信息,或新增“管理队列”完成条目时,此次事件忽略中断聚合而立即发送中断。
由于NVMe协议仅定义了中断控制器的必选和可选行为,但并未定义中断控制器如何实现,这个中断控制器的设计留下了很大的自主发挥的空间。
主机与NVMe设备的交互是通过“命令队列”和“完成队列”的方式进行交互的。命令队列和完成队列都保存在主机端内存中,每一个队列都由一段首尾相接的环形缓存构成。每个环形缓存用一个头指针和一个尾指针来描述已使用和未使用的空间,当写入动作发生时,写入方移动尾指针标识新条目被写入队列;当读取操作发生时,读取方移动头指针标识条目被移出队列。
命令队列分为两种类型:管理命令队列和IO命令队列。每个NVMe控制器包含一个命令队列,可以包含最多64K个IO命令队列。
完成队列也分为两种类型,管理完成队列和IO完成队列。管理完成队列与管理命令队列相互绑定。每一个IO命令队列绑定至一个IO完成队列上,但一个IO完成队列可以被多个IO命令队列绑定。
对于每一个完成队列,在NVMe控制器内部维护一个尾指针寄存器用来记录当前队列最后一个条目所对应的缓存的位置,并通过将队列条目中的“相位标签”置1通知主机端;主机端从完成队列读取若干条目后,会通过写入队列头指针寄存器通知NVMe控制器。
NVMe控制器可以实现多个中断通道,每一个完成队列在创建时,可以选择是否打开中断,以及将该完成队列绑定到哪个中断通道。一个完成队列最多只能绑定到一个中断通道,但一个中断通道可以被多个完成队列绑定。
为了防止主机端被频繁中断,NVMe协议定义了“中断聚合”的特性,中断聚合支持按时间和按队列条目数量进行聚合。如果中断聚合特性被打开,那么当事件发生时,NVMe并不会立即向主机提交中断,而是需要等待,可能促使该事件引发相应的连锁反应,导致出现数据链路故障。如果在一段时间(按时间聚合)或一定新增队列条目(按队列条目数量聚合)以内,NVMe控制器并不提交中断,当超出该范围,则提交。如果在等待的过程中,控制器检测到主机在处理中断事件(如通过监测头指针寄存器是否被主机更新),则等待时间和队列条目需要被刷新。
为了保证响应速度,NVMe协议规定,如果管理完成队列新增条目,该事件不能被中断聚合;如果某一完成队列新增的条目中包含错误状态,即某一命令以错误结束,则该事件也不能被中断聚合。因此,往往需要提供单独的中断通道以处理上述不能被聚合的中断条件。但由于出现上述中断的情况较少,则造成中断通道的浪费。
因此,亟需一种可提供多种中断要求的中断控制器以解决上述现有中断控制器的问题。
发明内容
为解决以上问题,本发明提出了一种多通道多映射中断控制器,包括:
分发器;
定时器;
配置寄存器;
多个中断通道;
其中,所述定时器配置为为所述多个中断通道提供统一的时间;
所述配置寄存器配置为保存所述多个中断控制器及全局的配置信息;
所述分发器配置为获取完成队列中的多个队列变化的条目数,并将所述多个队列变化的条目数及条目更新事件发送到与所述多个队列对应的多个所述中断通道;
所述中断通道配置为根据所述配置寄存器中的中断控制器、全局的配置信息以及所述定时器中的时间对收到的所述中断条目数进行分析以判断是否发起中断。
在本发明的一些实施方式中,分发器包括:
历史寄存器,所述历史寄存器包括管理队列寄存器和多个IO队列寄存器;
所述管理队里寄存器配置为记录所述完成队列中管理队列的头指针与尾指针的历史值;
所述多个IO队列寄存器配置为记录所述完成队里中多个IO队列寄存器的头指针与尾指针的历史值。
在本发明的一些实施方式中,分发器还包括:
映射表,所述映射表配置为保存所述完成队列中的管理队列和IO队列的与所述多个中断通道的映射关系。
在本发明的一些实施方式中,分发器还包括处理逻辑,所述处理逻辑配置为:
比较所述历史寄存器和所述完成队列寄存器中的所述管理队列变化的条目数,并将所述条目数通过映射表中的所述映射关系发送到对应的所述中断通道;
比较所述历史寄存器和所述完成队列寄存器中的所述多个IO队列变化的条目数,并将所述条目数通过所述映射关系发送到所述多个IO队列所分别对应的所述中断通道;以及
判断所述多个IO队列变化是否包含错误信息,若包含错误信息将所述错误信息发送到所述多个IO队列所对应的所述中断通道。
在本发明的一些实施方式中,中断通道包括:
中断配置寄存器,所述中断配置器配置为从所述配置寄存器获取所述中断控制器及全局的配置信息并基于所述配置信息配置所述中断通道;
在本发明的一些实施方式中,中断通道还包括:
起始时间寄存器,所述起始时间寄存器配置为记录所述中断通道对应的所述完成队列中的所述条目事件的更新时间;
队列计数器,所述队列计数器配置为记录所述中断通道对应的所述完成队列中的累计条目数;以及
特殊事件寄存器,所述特殊事件寄存器配置为记录所述中断通道对应的所述完成队列的特殊事件标志;
中断标志,所述中断标志配置为标识所述中断通道是否满足中断聚合条件。
在本发明的一些实施方式中,中断通道还包括:
更新逻辑,所述更新逻辑配置为根据所述分发器发送的所述多个队列变化的条目数及条目更新事件多所述起始时间寄存器、队列计数器、特殊事件寄存器进行更新。
在本发明的一些实施方式中,中断通道还包括比较器,所述比较器配置为:
获取所述中断配置寄存器中的所述中断控制器及全局的配置信息中的时间聚合阈值,并判断所述定时器当前值与所述起始时间寄存器当前值之差是否大于所述时间聚合阈值,响应于所述定时器当前值与所述起始时间寄存器当前值之差大于所述时间聚合阈值,将内部时间聚合标志置为第一预定值;
比较所述队列计数器的当前值与所述配置信息中的队列阈值,响应于所述队列计数器的当前值大于所述队列阈值,将内部队列聚合标志置为第一预定值;以及
响应于所述内部时间聚合标志或所述内部队列聚合标志为第一预定值,所述比较器将所述中断标志置为第一预定值。
在本发明的一些实施方式中,中断通道还包括:
中断屏蔽寄存器,所述中断屏蔽寄存器配置为与所述中断标志进行有效性运算。
在本发明的一些实施方式中,中断通道还包括:
中断生成逻辑,所述中断生成逻辑配置为检测所述有效性运算,响应于所述有效性运算的结果出现从第二预定值到第一预定值的变化,通过所述控制器所连接的总线复用器向PCIe链路发送中断。
本发明提出一种多通道多映射中断控制器具备以下有益效果:支持多个中断通道和多个完成队列,每个中断通道可以被绑定到多个完成队列上,绑定关系可以任意。支持将不同类型的完成队列绑定到同一个中断通道。支持按时间和按队列条目数量进行中断聚合,可以针对每一个中断通道单独设置是否打开中断聚合。当管理完成队列新增条目或者完成队列新增包含错误信息的条目时,该事件可以自动忽略中断聚合特性,具有更好的响应速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提出的一种多通道多映射中断控制器的结构示意图;
图2为本发明实施例提出的一种多通道多映射中断控制器的分发器结构示意图;
图3为本发明实施例提供的一种多通道多映射中断控制器中断通道的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
如图1所示,本发明提出了一种多通道多映射中断控制器,包括:
分发器1;
定时器2;
配置寄存器3;
多个中断通道4;
其中,所述定时器2配置为为所述多个中断通道4提供统一的时间;
所述配置寄存器3配置为保存所述多个中断控制器及全局的配置信息;
所述分发器1配置为获取完成队列中的多个队列变化的条目数,并将所述多个队列变化的条目数及条目更新事件发送到与所述多个队列对应的多个所述中断通道4;
所述中断通道4配置为根据所述配置寄存器3中的中断控制器及全局的配置信息与所述定时器2中的时间对收到的所述中断条目数进行分析以判断是否发起中断。
在本发明的实施例中,如图1所示,本发明设计了一种多通道多映射的中断控制器,包括分发器1、定时器2、配置寄存器3和多个中断通道4,分发器1可并行访问完成队列寄存器5的中多个完成队列,完成队列寄存器5同样记录有管理完成队列和IO完成队列的头指针、尾指针及错误信息,分发器通过并行方法完成队列寄存器5中的多个队列寄存器的数据。并监控完成队列寄存器5中的多个队列的条目变化,所谓条目是指完成队列中的一条数据记录。例如,在实际的链路中主机与NVMe设备的交互是通过“命令队列”和“完成队列”的方式进行交互的。命令队列和完成队列都保存在主机端内存中,每一个队列都由一段首尾相接的环形缓存构成。每个环形缓存用一个头指针和一个尾指针来描述已使用和未使用的空间,当写入动作发生时,写入方移动尾指针标识新条目被写入队列;当读取操作发生时,读取方移动头指针标识条目被移出队列。上述读取与写入的操作会被记录在完成队列寄存器5中。分发器1可并行访问完成队列寄存器5中相应的管理队列和IO队列的所对应的头指针和尾指针的值,以及IO队列中的错误标记的值。分发器1在获取到完成队列寄存器5中相应的队列的条目数的变化及错误信息发送到该队列对应的中断通道中。
中断通道在接收到分发器发送的对应的队列的条目数之后,基于从配置寄存器获去该中断通道的配置信息,对该中断通道中聚合的队列的条目数据进行分析,当满足配置信息规定的队列阈值或内部时间阈值或特殊事件标志后向PCIe链路发起中断。
在本发明的一些实施方式中,分发器1包括:
历史寄存器9,所述历史寄存器9包括管理队列寄存器和多个IO队列寄存器;
所述管理队里寄存器配置为记录所述完成队列中管理队列的头指针与尾指针的历史值;
所述多个IO队列寄存器配置为记录所述完成队里中多个IO队列寄存器的头指针与尾指针的历史值。
在本实施例中,如图2所示,由于存在多个完成队列,头指针或尾指针可能同时被更新,因此分发器还需要处理同时发生的事件,这是多队列所带来的另一核心问题。为了解决多队列并发更新,分发器1内部实现N+1组历史寄存器(与完成队列寄存器5中的完成队列寄存器相对应),每一组对应一个队列。每一组寄存器包含头指针寄存器、尾指针寄存器、更新标志和错误标志。当监测到多个队列同时更新时:对应队列的更新标志被置位;如果当前队列包含错误,则将错误标志置1,否则保持原错误标志的值;保持头指针和尾指针的值不变;
在本发明的一些实施方式中,分发器1还包括:
映射表7,所述映射表7配置为保存所述完成队列中的管理队列和IO队列的与所述多个中断通道的映射关系。
在本实施例中,如图2所示,为了解决多队列与多中断通道的连接关系,在分发器1中建立了应映射表,映射表中记录了对应的N个IO队列和管理队列与多个中断通道的映射关系,需要说明的是,该映射关系并不是一一对应关系,而是一对多的映射关系,即一个中断通道可以对应多个IO队列或管理队列。多个中断通道结构完全一样,可执行完全相同的的中断策略,具体根据配置信息决定。
在本发明的一些实施方式中,分发器1还包括处理逻辑8,所述处理逻辑8配置为:
比较所述历史寄存器9和所述完成队列寄存器5中的所述管理队列变化的条目数,并将所述条目数通过映射表中的所述映射关系发送到对应的所述中断通道4;
比较所述历史寄存器9和所述完成队列寄存器中5的所述多个IO队列变化的条目数,并将所述条目数通过所述映射关系发送到所述多个IO队列所分别对应的所述中断通道4;以及
判断所述多个IO队列变化是否包含错误信息,若包含错误信息将所述错误信息发送到所述多个IO队列所对应的所述中断通道4。
在本实施例中,处理逻辑执行分发器1的分发逻辑,即处理逻辑将依次针对历史寄存器中更新标志位被置1的队列进行处理,读取该队列(完成队列寄存器5中的相关队列寄存器的头指针和/或尾指针的值)当前的头指针寄存器和尾指针寄存器,并与历史寄存器9(历史寄存器9中的相关队列寄存器的头指针和/或尾指针的值)进行比较,如果头指针或/和尾指针不同,则输出头指针更新事件或/和尾指针更新事件;并且,分别计算当前和历史头指针的差、当前和历史尾指针的差(此处的差需要按最大队列深度做循环减法),然后将尾指针差值减去头指针差值作为队列增量(自然数减法)输出给对应的中断通道;如果当前队列历史寄存器的错误标志被置位,或当前队列为管理队列,则向对应的中断通道输出特殊事件,并将错误标志位清0;然后处理逻辑将当前正在处理的队列所对应的历史寄存器中的头指针和尾指针更新为当前的头指针和尾指针;最后处理逻辑清零更新状态,并处理下一个队列。
需要说明的是,处理逻辑是由硬件电路实现的程序化的电路,可根据完成队列的数目或历史寄存器的规模并行设置多个处理逻辑,以实现并行执行的处理机制。
在本发明的一些实施方式中,中断通道4包括:
中断配置寄存器,所述中断配置器配置为从所述配置寄存器获取所述中断控制器及全局的配置信息并基于所述配置信息配置所述中断通道。
在本实施例中,中断通道的配置寄存器中包含该通道的配置,如PCIe中断的地址等。时间聚合阈值、队列条目数量阈值等配置信息通过中断控制器中的配置寄存器3提供。
在本发明的一些实施方式中,中断通道还包括:
起始时间寄存器11,所述起始时间寄存器11配置为记录所述中断通道对应的所述完成队列中的所述条目事件的更新时间;
队列计数器12,所述队列计数器12配置为记录所述中断通道对应的所述完成队列中的累计条目数;以及
特殊事件寄存器13,所述特殊事件寄存器配置为记录所述中断通道对应的所述完成队列的特殊事件标志;
中断标志16,所述中断标16志配置为标识所述中断通道是否满足中断聚合条件。
在本发明的一些实施方式中,中断通道还包括:
更新逻辑10,所述更新逻辑10配置为根据所述分发器1发送的所述多个队列变化的条目数及条目更新事件多所述起始时间寄存器11、队列计数器12、特殊事件寄存器13进行更新。
在本实施例中,更新逻辑10负责将分发器1传入的队列增量(条目数)、头指针/尾指针更新事件、特殊事件标志等信号,转换为对起始时间寄存器11、队列计数器12和特殊事件寄存器13的更新:当尾指针更新或当前队列计数器为0时发生头指针更新,则将起始时间寄存器的值设置为当前时间(从定时器处获取),否则保持起始时间寄存器的值不变;将队列计数器的当前值与队列增量(分发器发送的条目数)的值相加重新写入队列计数器;将特殊事件寄存器的值设置为传入的特殊事件标志的值。
在本发明的一些实施例中,特殊事件包括管理队列的条目数变化或更新事件,以及IO队列中的错误事件。是不同于普通IO队列条目数变化的特殊事件。
在本发明的一些实施方式中,中断通道还包括比较器14,所述比较器14配置为:
获取所述中断配置寄存器15中的所述中断控制器及全局的配置信息中的时间聚合阈值,并判断所述定时器2当前值与所述起始时间寄存器11的当前值之差是否大于所述时间聚合阈值,响应于所述定时器2的当前值与所述起始时间寄存器11当前值之差大于所述时间聚合阈值,将内部时间聚合标志置为第一预定值;
比较所述队列计数器12的当前值与所述配置信息中的队列阈值,响应于所述队列计数器12的当前值大于所述队列阈值,将内部队列聚合标志置为第一预定值;以及
响应于所述内部时间聚合标志或所述内部队列聚合标志为第一预定值,所述比较器将所述中断标志置为第一预定值。
在本实施例中,比较器14用于将起始时间寄存器、定时器当前值、时间聚合阈值进行比较,如果定时器当前值与起始时间寄存器之差大于时间聚合阈值(根据需要在设备初始化时设定),则将内部时间聚合标志置1;比较器还将比较队列计数器12的值与设定的队列阈值,如果队列计数器12的值大于后者,则将内部队列聚合标志置1;如果内部时间聚合标志、内部队列聚合标志或者特殊事件标志有任意一个为1,则比较器置位中断标志16的为1。
在本发明的一些实施方式中,中断通道4还包括:
中断屏蔽寄存器17,所述中断屏蔽寄存器配置为与所述中断标志16进行有效性运算。
在本发明的一些实施方式中,中断通道4还包括:
中断生成逻辑18,所述中断生成逻辑18配置为检测所述有效性运算,响应于所述有效性运算的结果出现从第二预定值到第一预定值的变化,通过所述控制器所连接的总线复用器向PCIe链路发送中断。
在本实施例中,如上所述,中断标志16和中断屏蔽寄存器17同样是由硬件电路实现的寄存器,中断标志16的值由比较器14根据对起始时间寄存器11、队里计数器12和特殊事件寄存器13的值而改变,也即当上述三个任意一个满足触发条件便将中断标志16的值置为1。但中断标志16的值为1并不代表一定可以触发中断,需要与中断屏蔽寄存器17的值进行逻辑运算。
中断标志与中断屏蔽寄存器进行逻辑与运算,如果中断屏蔽寄存器有效(该中断通道的中断发起被禁止或被屏蔽,无论该中断通道中的比较器如何将中断标志16置位为1都不会向PCIe链路发送中断),则最终的运算结果为0;如果无效,则最终的运算结果等于中断标志。即需要先对中断屏蔽寄存器17的值取反后再与中断标志16的值与运算。所以当中断屏蔽寄存器17有效(值为1)时,取反则为0,0与中断标志16的值为1或为0时的逻辑与运算的结果均为0;若中断屏蔽寄存器17为无效(值为0),则对其取反值为1,则中断标志16为1时,与中断屏蔽寄存器的与运算结果则为1。同时中断生成逻辑18则监控这一过程,如果运算结果出现从0到1的变化,则说明检测到一个新的中断事件,中断生成逻辑将通过总线复用器向PCIe链路发送中断。检测0到1的变化是为了防止中断被重复提交,防止在已经向PCIe链路发送中断之后,后续的比较器根据设定上述比较逻辑再次更新中断标志16的值为1时频繁向PCIe链路发送中断,也即再与屏蔽寄存器取反的值进行运算时不会出现从0到1的变化。在电路的实现中是通过检测从低电平到高电平的上升沿变化实现该效果,电平保持的时候不会触发中断。
本发明提出一种多通道多映射中断控制器具备以下有益效果:
采用基于映射表的分发器逻辑将队列的头指针、尾指针更新等事件进行处理和运算,转换为对应中断通道的事件的输出,以此实现多队列以及多中断通道的灵活映射。
在分发器中设置历史寄存器,保存头指针、尾指针、更新事件和特殊事件等信息,将事件的捕获、记录和事件的处理分开,以此解决映射到同一中断通道的多队列同时更新无法并行处理的问题。
在分发器中对队列类型和错误标志进行判断,决定是否输出特殊事件标志;在中断通道中设置特殊事件标志寄存器,比较器根据该寄存器运算生成中断标志,该机制与中断聚合融合为统一处理方式,既可实现对特殊事件的快速中断提交,又可避免两套机制引起的重复提交。
将时间聚合和队列聚合的结果进行运算,以及对最终结果进行从0到1的上升沿检测,来判断是否触发中断,避免不同类型中断聚合条件引发的重复提交和在中断聚合未处理过程中引发的重复提交。
支持多个中断通道和多个完成队列,每个中断通道可以被绑定到多个完成队列上,绑定关系可以任意。支持将不同类型的完成队列绑定到同一个中断通道。支持按时间和按队列条目数量进行中断聚合,可以针对每一个中断通道单独设置是否打开中断聚合。当管理完成队列新增条目或者完成队列新增包含错误信息的条目时,该事件可以自动忽略中断聚合特性,具有更好的响应速度。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种多通道多映射中断控制器,其特征在于,包括:
分发器;
定时器;
配置寄存器;
多个中断通道;
其中,所述定时器配置为所述多个中断通道提供统一的时间;
所述配置寄存器配置为保存所述多个中断控制器及全局的配置信息;
所述分发器配置为获取完成队列中的多个队列变化的条目数,并将所述多个队列变化的条目数及条目更新事件发送到与所述多个队列对应的多个所述中断通道;
所述中断通道配置为根据所述配置寄存器中的中断控制器、全局的配置信息以及所述定时器中的时间对收到的所述中断条目数进行分析以判断是否发起中断。
2.根据权利要求1所述的控制器,其特征在于,所述分发器包括:
历史寄存器,所述历史寄存器包括管理队列寄存器和多个IO队列寄存器;
所述管理队里寄存器配置为记录所述完成队列中管理队列的头指针与尾指针的历史值;
所述多个IO队列寄存器配置为记录所述完成队里中多个IO队列寄存器的头指针与尾指针的历史值。
3.根据权利要求2所述的控制器,其特征在于,所述分发器还包括:
映射表,所述映射表配置为保存所述完成队列中的管理队列和IO队列的与所述多个中断通道的映射关系。
4.根据权利要求3所述的控制器,其特征在于,所述分发器还包括处理逻辑,所述处理逻辑配置为:
比较所述历史寄存器和所述完成队列寄存器中的所述管理队列变化的条目数,并将所述条目数通过映射表中的所述映射关系发送到对应的所述中断通道;
比较所述历史寄存器和所述完成队列寄存器中的所述多个IO队列变化的条目数,并将所述条目数通过所述映射关系发送到所述多个IO队列所分别对应的所述中断通道;以及
判断所述多个IO队列变化是否包含错误信息,若包含错误信息将所述错误信息发送到所述多个IO队列所对应的所述中断通道。
5.根据权利要求1所述的控制器,其特征在于,所述中断通道包括:
中断配置寄存器,所述中断配置器配置为从所述配置寄存器获取所述中断控制器及全局的配置信息并基于所述配置信息配置所述中断通道。
6.根据权利要求5所述的控制器,其特征在于,所述中断通道还包括:
起始时间寄存器,所述起始时间寄存器配置为记录所述中断通道对应的所述完成队列中的所述条目事件的更新时间;
队列计数器,所述队列计数器配置为记录所述中断通道对应的所述完成队列中的累计条目数;以及
特殊事件寄存器,所述特殊事件寄存器配置为记录所述中断通道对应的所述完成队列的特殊事件标志;
中断标志,所述中断标志配置为标识所述中断通道是否满足中断聚合条件。
7.根据权利要求6所述的控制器,其特征在于,所述中断通道还包括更新逻辑,所述更新逻辑配置为:
根据所述分发器发送的所述多个队列变化的条目数及条目更新事件多所述起始时间寄存器、队列计数器、特殊事件寄存器进行更新。
8.根据权利要求6所述的控制器,其特征再在于,所述中断通道还包括比较器,所述比较器配置为:
获取所述中断配置寄存器中的所述中断控制器及全局的配置信息中的时间聚合阈值,并判断所述定时器当前值与所述起始时间寄存器当前值之差是否大于所述时间聚合阈值,响应于所述定时器当前值与所述起始时间寄存器当前值之差大于所述时间聚合阈值,将内部时间聚合标志置为第一预定值;
比较所述队列计数器的当前值与所述配置信息中的队列阈值,响应于所述队列计数器的当前值大于所述队列阈值,将内部队列聚合标志置为第一预定值;以及
响应于所述内部时间聚合标志或所述内部队列聚合标志为第一预定值,所述比较器将所述中断标志置为第一预定值。
9.根据权利要求6所的控制器,其特征在于,所述中断通道还包括:
中断屏蔽寄存器,所述中断屏蔽寄存器配置为与所述中断标志进行有效性运算。
10.根据权利要求9所述的控制器,其特征在于,所述中断通道还包括:
中断生成逻辑,所述中断生成逻辑配置为检测所述有效性运算,响应于所述有效性运算的结果出现从第二预定值到第一预定值的变化,通过所述控制器所连接的总线复用器向PCIe链路发送中断。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111261653.1A CN114048156B (zh) | 2021-10-28 | 2021-10-28 | 一种多通道多映射中断控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111261653.1A CN114048156B (zh) | 2021-10-28 | 2021-10-28 | 一种多通道多映射中断控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114048156A true CN114048156A (zh) | 2022-02-15 |
CN114048156B CN114048156B (zh) | 2024-05-03 |
Family
ID=80206323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111261653.1A Active CN114048156B (zh) | 2021-10-28 | 2021-10-28 | 一种多通道多映射中断控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114048156B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117573209A (zh) * | 2023-10-24 | 2024-02-20 | 中科驭数(北京)科技有限公司 | 一种基于硬件的中断聚合方法及装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170075834A1 (en) * | 2015-09-14 | 2017-03-16 | Hyunseok Cha | Storage device and interrupt generation method thereof |
CN107861894A (zh) * | 2017-11-03 | 2018-03-30 | 郑州云海信息技术有限公司 | NVMe协议的队列命令的执行方法、装置及存储介质 |
US20180113615A1 (en) * | 2016-10-24 | 2018-04-26 | Samsung Electronics Co., Ltd. | Storage device generating adaptive interrupt and operating method thereof |
US10055369B1 (en) * | 2017-03-27 | 2018-08-21 | Apple Inc. | Systems and methods for coalescing interrupts |
CN108549578A (zh) * | 2017-12-25 | 2018-09-18 | 贵阳忆芯科技有限公司 | 一种中断聚合装置及其方法 |
CN108628777A (zh) * | 2017-03-24 | 2018-10-09 | 西部数据技术公司 | 动态和自适应中断合并的系统和方法 |
US10191865B1 (en) * | 2016-04-14 | 2019-01-29 | Amazon Technologies, Inc. | Consolidating write transactions for a network device |
CN110088725A (zh) * | 2017-03-24 | 2019-08-02 | 西部数据技术公司 | 用于对提交队列和完成队列进行处理并做出仲裁的系统和方法 |
US20200065264A1 (en) * | 2018-06-30 | 2020-02-27 | Huawei Technologies Co., Ltd. | Data Processing Method and System |
US10657084B1 (en) * | 2018-11-07 | 2020-05-19 | Xilinx, Inc. | Interrupt moderation and aggregation circuitry |
-
2021
- 2021-10-28 CN CN202111261653.1A patent/CN114048156B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170075834A1 (en) * | 2015-09-14 | 2017-03-16 | Hyunseok Cha | Storage device and interrupt generation method thereof |
US10191865B1 (en) * | 2016-04-14 | 2019-01-29 | Amazon Technologies, Inc. | Consolidating write transactions for a network device |
US20180113615A1 (en) * | 2016-10-24 | 2018-04-26 | Samsung Electronics Co., Ltd. | Storage device generating adaptive interrupt and operating method thereof |
CN108628777A (zh) * | 2017-03-24 | 2018-10-09 | 西部数据技术公司 | 动态和自适应中断合并的系统和方法 |
CN110088725A (zh) * | 2017-03-24 | 2019-08-02 | 西部数据技术公司 | 用于对提交队列和完成队列进行处理并做出仲裁的系统和方法 |
US10055369B1 (en) * | 2017-03-27 | 2018-08-21 | Apple Inc. | Systems and methods for coalescing interrupts |
CN107861894A (zh) * | 2017-11-03 | 2018-03-30 | 郑州云海信息技术有限公司 | NVMe协议的队列命令的执行方法、装置及存储介质 |
CN108549578A (zh) * | 2017-12-25 | 2018-09-18 | 贵阳忆芯科技有限公司 | 一种中断聚合装置及其方法 |
US20200065264A1 (en) * | 2018-06-30 | 2020-02-27 | Huawei Technologies Co., Ltd. | Data Processing Method and System |
US10657084B1 (en) * | 2018-11-07 | 2020-05-19 | Xilinx, Inc. | Interrupt moderation and aggregation circuitry |
Non-Patent Citations (2)
Title |
---|
NVM EXPRESS: "NVM Express Revision 1.3", pages 1 - 282, Retrieved from the Internet <URL:http://www.nvmexpress.org/wp-content/uploads/NVM_Express_Revision_1.3.pdf> * |
郝嘉;候梦清;: "NVMe存储协议浅论", 信息系统工程, no. 03, pages 162 - 163 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117573209A (zh) * | 2023-10-24 | 2024-02-20 | 中科驭数(北京)科技有限公司 | 一种基于硬件的中断聚合方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114048156B (zh) | 2024-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101809542B (zh) | 用于监视调试事件的系统和方法 | |
KR102493964B1 (ko) | 스토리지 컨트롤러, 그것을 포함하는 스토리지 장치, 및 스토리지 컨트롤러의 동작 방법 | |
KR101126820B1 (ko) | 스레드 통신 및 동기화 기법 | |
CN109491958B (zh) | 错误处理系统和错误处理方法 | |
EP2225652B1 (en) | Read status controller | |
CN114048156A (zh) | 一种多通道多映射中断控制器 | |
GB2081554A (en) | Interface control system | |
WO2022127873A1 (zh) | 实现网络芯片高速调度的方法、设备及存储介质 | |
CN109933549B (zh) | 一种适用于risc-v处理器的中断控制器 | |
US20100191508A1 (en) | Detecting and Recording Performance Events in a Data Processing System | |
WO2024124737A1 (zh) | 异构计算中进程切换管理方法及计算装置 | |
US10324777B2 (en) | Register-based communications interface | |
US8468394B2 (en) | Method of tracing selected activities within a data processing system by tagging selected items and tracing the tagged items | |
CN111858256B (zh) | 命令队列监控电路、数据交换方法及其设备 | |
CN117407059B (zh) | 中断控制方法、设备、存储介质及程序产品 | |
CN115794750B (zh) | 异步i/o系统文件打开/关闭的控制方法、装置及设备 | |
KR102698415B1 (ko) | 인터리빙된 호스트 리셋 및 다음 재초기화 동작들 | |
US20230418769A1 (en) | Event trigger master, control chip and control method thereof | |
CN101321030B (zh) | 写使能控制方法和装置 | |
KR102552666B1 (ko) | 전자 장치 및 그것의 동작 방법 | |
US20220413856A1 (en) | Instruction execution method, apparatus and device, and storage medium | |
JP2000066922A (ja) | 全命令トレースデータの2次記憶装置への格納競合防止方法 | |
CN118113493A (zh) | 单通道数据双向通讯方法、装置、电子设备及介质 | |
US9652198B2 (en) | FIFO buffer clean-up | |
CN116521329A (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 |