CN112445737B - 通过非透明桥设备传输信息的系统、方法和该设备 - Google Patents
通过非透明桥设备传输信息的系统、方法和该设备 Download PDFInfo
- Publication number
- CN112445737B CN112445737B CN202011317364.4A CN202011317364A CN112445737B CN 112445737 B CN112445737 B CN 112445737B CN 202011317364 A CN202011317364 A CN 202011317364A CN 112445737 B CN112445737 B CN 112445737B
- Authority
- CN
- China
- Prior art keywords
- delay
- value
- tolerance value
- delay tolerance
- updated
- 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
Links
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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/405—Coupling between buses using bus bridges where the bridge performs a synchronising function
- G06F13/4059—Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4286—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Abstract
用于通过非透明桥NTB设备传输信息的系统、方法和该NTB设备,该方法包括:由NTB设备从第一子系统接收第一请求延迟容忍值;由NTB设备将接收的第一请求延迟容忍值与NTB设备中存储的第一监控延迟容忍值进行比较;由NTB设备响应于判断第一监控延迟容忍值发生变化而产生中断脉冲,将中断脉冲发送到管理单元,并且用接收的第一请求延迟容忍值更新存储的第一监控延迟容忍值;由管理单元响应于接收到中断脉冲而唤醒固件;由固件用更新后的第一监控延迟容忍值更新NTB设备中存储的第二配置延迟容忍值;以及由NTB设备将更新后的第二配置延迟容忍值封装成LTR消息,并将LTR消息发送到第二子系统。
Description
技术领域
本公开涉及PCIe链路的扩展,更具体地,涉及通过非透明桥设备传输信息的系统、方法和该设备。
背景技术
PCIe(Peripheral Component Interconnect Express,高速外部组件互联)是一种通常仅应用于内部互连的计算机总线PCI,其沿用现有的PCI编程概念及通信标准,但基于更快的串行通信系统。由于PCIe基于现有PCI系统,因此只需在物理层级进行修改而无需在软件层级进行修改就能够将现有PCI系统转换为PCIe系统。PCIe能够实现更快的传输速率,例如,PCIe 4.0的传输速率可达16GT/s,从而能够取代几乎所有现有的内部总线(包括AGP(Accelerated Graphics Port,加速图形端口)和PCI)。
PCIe链路使用端到端的数据传输方式,一条PCIe链路的一端只能连接一个发送设备或者接收设备。因此,PCIe链路通常需要使用诸如交换设备或网桥之类的设备来扩展PCIe链路,以便连接更多设备。取决于工作原理,PCIe交换设备可以分为透明桥和非透明桥(Non-Transparent Bridge,NTB)。
在PCIe协议中,规定了一种使用LTR(Latency Tolerance Reporting,延迟容忍报告)消息来进行电源管理的方法:由端点交换设备生成LTR消息,以通知处理设备(CPU)该端点交换设备所代表的系统(或某一设备)向其请求服务时所能够容忍或接受的最大延迟。这种能够容忍或接受的最大延迟可以被称为延迟容忍值,并且提供服务的处理设备可以根据该延迟容忍值来配置电源管理策略,以更高效地分配内存等重要资源。例如,在某些不支持快速响应的低功耗模式中,可以在响应时间不超过所请求的LTR值的条件下推迟唤醒所要求的服务,使得可以在满足服务请求方的响应时间需求的条件下尽可能地优化资源分配。
在某一系统向另一系统(即跨系统)请求服务时,例如当需要将LTR消息从一个系统经由NTB设备传输到另一系统时,两个系统借助NTB设备上的便笺寄存器和门铃寄存器来进行该传输。然而,基于便笺寄存器和门铃寄存器传输信息不仅需要两个系统在NTB设备的驱动层面执行握手,需要考虑诸如两个系统的兼容性(例如消息格式的兼容)等因素,还涉及对诸如便笺寄存器的访问唯一性的问题,使得通信过程复杂度较高而需要更复杂的软件编程来实现,导致该通信所占用的内存资源较大并且耗时较长。
因此,需要一种简洁有效的通信机制,使得能够在NTB两侧的不同系统之间传输LTR消息,并实现对NTB设备更灵活有效的功耗管理。
发明内容
本公开提供一种能够以软硬件结合的方式通过NTB设备实现跨系统传输信息(LTR消息)的系统和方法,为嵌入式智能板卡或双控系统提供了一种更灵活、有效的低功耗管理方式。
根据本公开的一个方面,提出了一种用于通过NTB设备传输信息的系统,该系统包括第一子系统和第二子系统。第一子系统包括:第一端点交换设备;NTB设备,耦接到第一端点交换设备;和管理单元,耦接到NTB设备。第二子系统包括第二端点交换设备,并且第二端点交换设备耦接到NTB设备。NTB设备包括:第一接收单元,被配置为从第一端点交换设备接收第一请求延迟容忍值;第一监控延迟寄存器,被配置为存储第一监控延迟容忍值;第二配置延迟寄存器,被配置为存储用于第二子系统的第二配置延迟容忍值;第二发送单元,被配置为向第二子系统发送信息;和第一比较单元,被配置为将接收的第一请求延迟容忍值与第一监控延迟寄存器中存储的第一监控延迟容忍值进行比较以判断第一监控延迟容忍值是否发生变化,响应于判断第一监控延迟容忍值发生变化而产生中断脉冲并将中断脉冲发送到管理单元,以及用接收的第一请求延迟容忍值更新第一监控延迟寄存器中存储的第一监控延迟容忍值。管理单元被配置为响应于接收到中断脉冲而唤醒运行在管理单元上的固件,其中固件被配置为在被唤醒后用更新后的第一监控延迟容忍值更新第二配置延迟寄存器中存储的第二配置延迟容忍值。第二发送单元进一步被配置为响应于第二配置延迟容忍值被更新,将更新后的第二配置延迟容忍值封装成LTR消息,并将LTR消息发送到第二子系统的第二端点交换设备。
根据一个实施例,NTB设备还包括:第一中断状态寄存器,被配置为存储包括多个位的状态值,其中多个位中的每一位指示是否发生相应的中断事件,并且其中中断事件之一是第一监控延迟容忍值发生变化。
根据一个实施例,固件还被配置为:在被唤醒后基于中断脉冲来自第一比较单元来读取第一中断状态寄存器中的状态值,并且基于所读取的状态值来调用与所读取的状态值相对应的功能函数。
根据一个实施例,固件还被配置为:基于所读取的状态值指示第一监控延迟容忍值发生变化,来调用用于更新第二配置延迟容忍值的功能函数。
根据一个实施例,所调用的用于更新第二配置延迟容忍值的功能函数执行以下步骤:基于中断脉冲来自第一比较单元,从第一监控延迟寄存器读取更新后的第一监控延迟容忍值;以及用更新后的第一监控延迟容忍值更新第二配置延迟寄存器中存储的第二配置延迟容忍值。
根据一个实施例,第二端点交换设备被配置为从接收到的LTR消息中提取更新后的第二配置延迟容忍值,并将提取的更新后的第二配置延迟容忍值与第二端点交换设备中存储的第二服务延迟容忍值进行比较,以判断第二服务延迟容忍值是否发生变化。
根据一个实施例,第二端点交换设备还被配置为响应于判断第二服务延迟容忍值发生变化,用提取的更新后的第二配置延迟容忍值来更新第二端点交换设备中存储的第二服务延迟容忍值,并将更新后的第二服务延迟容忍值发送到第二子系统的处理设备。
根据一个实施例,处理设备被配置为使用更新后的第二服务延迟容忍值为第一子系统提供服务。
根据本公开的另一方面,提出了一种用于通过NTB设备传输信息的方法,包括:由NTB设备从第一子系统中的第一端点交换设备接收第一请求延迟容忍值;由NTB设备将接收的第一请求延迟容忍值与NTB设备中存储的第一监控延迟容忍值进行比较,以判断第一监控延迟容忍值是否发生变化;由NTB设备响应于判断第一监控延迟容忍值发生变化而产生中断脉冲,并将中断脉冲发送到管理单元,并且由NTB设备用接收的第一请求延迟容忍值更新NTB设备中存储的第一监控延迟容忍值;由管理单元响应于接收到中断脉冲而唤醒运行在管理单元上的固件;由固件在被唤醒后用更新后的第一监控延迟容忍值更新NTB设备中存储的用于第二子系统的第二配置延迟容忍值;以及由NTB设备响应于第二配置延迟容忍值被更新,将更新后的第二配置延迟容忍值封装成LTR消息,并将LTR消息发送到第二子系统。
根据一个实施例,更新第二配置延迟容忍值包括:由固件在被唤醒后基于中断脉冲是响应于判断第一监控延迟容忍值发生变化而产生的,来读取NTB设备中存储的状态值,并且基于所读取的状态值来调用与所读取的状态值相对应的功能函数。
根据一个实施例,由固件基于所读取的状态值指示第一监控延迟容忍值发生变化,来调用用于更新第二配置延迟容忍值的功能函数。
根据一个实施例,所调用的用于更新第二配置延迟容忍值的功能函数执行以下步骤:基于中断脉冲是响应于判断第一监控延迟容忍值发生变化而产生的,从NTB设备读取更新后的第一监控延迟容忍值;以及用更新后的第一监控延迟容忍值更新NTB设备中存储的第二配置延迟容忍值。
根据一个实施例,该方法还包括:由第二子系统中的第二端点交换设备从NTB设备接收LTR消息,并从LTR消息中提取更新后的第二配置延迟容忍值;以及由第二端点交换设备将提取的更新后的第二配置延迟容忍值与第二端点交换设备中存储的第二服务延迟容忍值进行比较,以判断第二服务延迟容忍值是否发生变化。
根据一个实施例,该方法还包括:响应于判断第二服务延迟容忍值发生变化,由第二端点交换设备用提取的更新后的第二配置延迟容忍值来更新第二端点交换设备中存储的第二服务延迟容忍值,并将更新后的第二服务延迟容忍值发送到第二子系统的处理设备。
根据一个实施例,由处理设备使用更新后的第二服务延迟容忍值为第一子系统提供服务。
根据本公开的又一方面,提出了一种用于传输信息的NTB设备。该NTB设备包括:第一接收单元,被配置为从第一子系统中的第一端点交换设备接收第一请求延迟容忍值;第二接收单元,被配置为从第二子系统中的第二端点交换设备接收第二请求延迟容忍值;第一监控延迟寄存器,被配置为存储第一监控延迟容忍值;第一配置延迟寄存器,被配置为存储用于第一子系统的第一配置延迟容忍值;第二监控延迟寄存器,被配置为存储第二监控延迟容忍值;第二配置延迟寄存器,被配置为存储用于第二子系统的第二配置延迟容忍值;第一比较单元,被配置为将接收的第一请求延迟容忍值与第一监控延迟寄存器中存储的第一监控延迟容忍值进行比较以判断第一监控延迟容忍值是否发生变化,响应于判断第一监控延迟容忍值发生变化而产生第一中断脉冲并将第一中断脉冲发送到管理单元以唤醒运行在管理单元上的固件,以及用接收的第一请求延迟容忍值更新第一监控延迟寄存器中存储的第一监控延迟容忍值,其中固件被配置为在被唤醒后用更新后的第一监控延迟容忍值更新第二配置延迟寄存器中存储的第二配置延迟容忍值;第二比较单元,被配置为将接收的第二请求延迟容忍值与第二监控延迟寄存器中存储的第二监控延迟容忍值进行比较以判断第二监控延迟容忍值是否发生变化,响应于判断第二监控延迟容忍值发生变化而产生第二中断脉冲并将第二中断脉冲发送到管理单元以唤醒运行在管理单元上的固件,以及用接收的第二请求延迟容忍值更新第二监控延迟寄存器中存储的第二监控延迟容忍值,其中固件被配置为在被唤醒后用更新后的第二监控延迟容忍值更新第一配置延迟寄存器中存储的第一配置延迟容忍值;第一发送单元,被配置为响应于第一配置延迟容忍值被更新,将更新后的第一配置延迟容忍值封装成第一LTR消息并将第一LTR消息发送到第一端点交换设备;和第二发送单元,被配置为响应于第二配置延迟容忍值被更新,将更新后的第二配置延迟容忍值封装成第二LTR消息并将第二LTR消息发送到第二端点交换设备。
本公开的技术方案的有益效果在于:所提出的系统、方法和设备通过使用软硬件结合的方式,即使用软件方法收发和更新信息以及使用硬件方法(中断脉冲)唤醒管理单元以执行相应功能,可以避免连接在NTB设备上的两个系统之间的用于建立通信的握手步骤和/或用于进程同步的信号量机制等,简化了LTR消息和交互机制,降低了通信成本(诸如内存、时间等),并且提高了系统可靠性。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1示出了一种用于通过透明桥设备传输信息的系统的示意图。
图2示出了根据本公开的实施例的用于通过非透明桥设备传输信息的系统的示意图。
图3示出了根据本公开的实施例的延迟容忍报告的消息格式的示意图。
图4示出了根据本公开的实施例的非透明桥设备和相应的管理单元的示意图。
图5示出了根据本公开的实施例的用于通过非透明桥设备传输信息的方法的流程图。
具体实施方式
下面将结合本公开的实施例中的附图,对本公开实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本公开的一部分实施例,而不是全部实施例。通常在附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
图1示出了一种用于通过透明桥设备传输信息的系统100的示意图。如图1所示,系统100包括根复合体101、交换设备102、CPU子系统103、系统内存104以及连接到交换设备102的多个PCIe端点设备105-1至105-N。
根复合体101是用于将处理器(例如CPU子系统103)和内存子系统(例如系统内存104)连接到由一个或多个交换设备(例如交换设备102)组成的PCIe交换结构(例如由交换设备102以及与其连接的多个PCIe端点设备105-1至105-N组成的交换结构)的设备。根复合体101可以代表处理器来生成事务请求,并且通过本地总线连接到其他设备。根复合体101的功能可以以分立设备的形式来实现。根复合体101可以包含多个PCIe端口,并且可将多个交换设备连接到根复合体或级联的端口。换句话说,根复合体101本质上也是交换设备。
系统100中所包括的透明桥设备,即交换设备102,可以看作单个透明桥设备或多个透明桥设备的组合,其下游端口可以连接多个PCIe端点设备。透明桥设备通常用于总线扩展。对于透明桥设备的主端口侧(用于直接或间接连接根复合体的一侧),其从端口侧(相对于主端口侧的其余端口的方向)的所有设备是透明的。例如,交换设备(透明桥设备)102的从端口侧的所有设备(PCIe端点设备105-1至105-N)只能由主端口侧的处理设备(CPU子系统103)对其进行配置和控制,其中主从两侧的设备地址完全透明。
CPU子系统103可以用于管理系统100内的资源(例如,系统内存104)的分配。系统内存104可以在CPU子系统103的控制下运行进程,例如,以响应于向CPU子系统103发起的请求而提供相应的服务。PCIe端点设备105-1至105-N是指通过PCIe总线连接到交换设备102的端点设备,其可以是任何基于PCIe协议的组件或设备,诸如声卡、网卡、显卡、存储装置、I/O设备等。
由于上述“透明”的特性,透明桥设备不能用于在不同系统和/或端点设备(例如彼此不兼容的系统和/或端点设备)之间传输信息,即不能跨系统传输信息。
图2示出了根据本公开的实施例的用于通过非透明桥(NTB)设备传输信息的系统200的示意图。NTB设备能够实现在不同系统之间的PCIe链路扩展。
如图2所示,系统200包括两个子系统,即主系统(在本文中也可称为第一子系统)210和从系统(在本文中也可称为第二子系统)220。与图1所示出的系统100类似,主系统210包括根复合体211、交换设备212、CPU子系统213、系统内存214以及连接到交换设备212的多个PCIe端点设备215-1至215-N,并且从系统220包括根复合体221、交换设备222、CPU子系统223、系统内存224以及连接到交换设备222的多个PCIe端点设备225-1至225-N。另外,主系统210还包括NTB设备216,NTB设备216可以耦接(例如电耦接)到系统管理单元(SystemManagement Unit,SMU)(也称为管理单元)218。例如,NTB设备216通常可以物理上与主系统210中的其他设备靠近或耦接,诸如与交换设备212集成在一起。
NTB设备216经由交换设备212间接地连接到主系统210内的根复合体211、CPU子系统213、系统内存214以及PCIe端点设备215-1至215-N,并且经由交换设备222间接地连接到从系统220内的根复合体221、CPU子系统223、系统内存224以及PCIe端点设备225-1至225-N。NTB设备216通常用于嵌入式智能I/O板卡或双控系统,它连接两个独立的处理器域(例如CPU子系统213和223各自管理的系统域),并且其从系统侧的资源和地址对主系统侧是不可见的,即这些资源和地址或所提供的服务需要经由NTB设备转发。NTB设备216内部包含地址映射和转换逻辑,可以将来自一侧系统的访问转发到另一侧系统。
在本文中,为了便于描述,对于NTB设备216而言,可以将直接与其连接的交换设备212和222以及间接与其连接的具备交换功能的根复合体211和221都称作“端点交换设备”。并且,上面提及的术语“从系统侧”是指连接到NTB设备的从系统一侧的各设备(包括各PCIe端点设备、端点交换设备、处理设备等),术语“主系统侧”是指连接到NTB设备的主系统一侧的各设备(包括各PCIe端点设备、端点交换设备、处理设备等,但不包括NTB设备本身)。换句话说,“从系统侧”和“主系统侧”既可以表示发送服务请求的端点交换设备,也可以表示提供服务的处理设备。从系统侧和主系统侧的地址空间是完全独立的,这避免了诸如多处理系统中的地址域冲突问题。
NTB设备216可以包括便笺寄存器和门铃寄存器(均未示出),并且允许主系统侧和从系统侧通过便笺寄存器和门铃寄存器交换诸如LTR消息之类的状态信息。便笺寄存器对于主系统侧和从系统侧来说都是可读写的,并且在具体实施方式中,便笺寄存器的个数可以不同。便笺寄存器可用于在主系统侧和从系统侧之间传输信息(例如LTR消息),也可用作通用可读写寄存器。门铃寄存器可以从主系统侧/从系统侧向另一侧发送中断,例如指示需要发送LTR消息的中断。相应地,NTB设备216还可以包括中断请求寄存器和相应的中断屏蔽寄存器,这些寄存器能够被两侧的处理器(例如CPU子系统213和223)同时访问。
在使用便笺寄存器和门铃寄存器的情况下,NTB设备216无法从一侧向另一侧直接传输LTR消息,并且实际上,在进行传输之前主系统侧和从系统侧需要在NTB驱动层面执行握手,使得主系统侧/从系统侧利用空闲的便笺寄存器和门铃寄存器来通知另一侧此次传输的数据的内容和含义,并且由于便笺寄存器本身可以被主系统侧和从系统侧修改,所以还需要先利用信号量机制获取对便笺寄存器的访问的唯一性,这也让该方法在软件实现上变得很复杂。因此,根据本公开的实施例的NTB设备针对上述问题在结构和功能上进行了改进,这将在下面结合图4来描述。
SMU 218可以实现为一种其上能够运行固件(firmware,FW)的计算单元(例如微处理器),其通常可以例如电耦接到NTB设备216,并且由此可以接收来自NTB设备216的硬件信号(例如中断脉冲)。在一个实施例中,SMU 218可以被配置为响应于接收到的信息或信号而执行指令,例如,可以响应于来自NTB设备216的中断脉冲而唤醒运行在管理单元上的固件,其中该固件在不需要运行时处于休眠状态,以减少所利用的系统资源并降低功耗。例如,固件可以进一步被配置为在被唤醒后调用与中断脉冲相对应的功能函数,以执行特定的功能。
图3示出了根据本公开的实施例的延迟容忍报告(LTR)的消息格式的示意图。
如图3所示,LTR消息包是PCIe协议传输层使用的一种事务层包(TransactionLayer Packet,TLP),其包括诸如“格式”(Fmt)、“类型”(Type)、“保留”、“请求方标识”(requester ID)、“消息码”(Message Code)、“无监听延迟”(Snoop Latency)和“有监听延迟”(No-Snoop Latency)等字段。
“格式”和“类型”字段可以指定该数据包的格式和类型,例如指定该数据包是一种点对点的TLP消息格式。“保留”字段是指如图3所示的“保留”(R/Rsv/Reserved)、TC、TD、EP、“属性”(Attr)、AT、“长度”(Length),这些字段可用于各种不同的预留功能,由于其并不涉及本公开的技术方案的细节,故此处省略其描述。“请求方标识”表示服务请求的发起方的ID信息。“消息码”在LTR消息包的情况下固定为00010000,以表示这是消息包中的LTR消息。
“无监听延迟”和“有监听延迟”指示由PCIe端点设备(或由PCIe端点设备经由端点交换设备)向处理设备请求服务时所能够容忍或接受的最大延迟的值(即延迟容忍值),其中“无监听延迟”是指在所请求的服务不要求保持缓存(cache)一致性的情况下的延迟容忍值,而“有监听延迟”是指在所请求的服务要求缓存(cache)一致性的情况下的延迟容忍值。通常,当服务请求方(例如一侧系统的端点交换设备)期望尽快收到来自服务提供方(例如另一侧系统的处理设备)的响应时,可以将“无监听延迟”/“有监听延迟”的值设置得比较小(例如几十纳秒),以快速地收到响应;当服务请求方不要求快速收到主机响应时或者对于收到响应没有那么迫切时,可以将“无监听延迟”/“有监听延迟”的值设置得比较大(例如几秒甚至几十秒),这样在由“无监听延迟”/“有监听延迟”所指示的时间期限内,服务请求方可以在空闲时(没有收到响应之前)进入低功耗模式,直到接收到响应之后才被唤醒,并且如果服务请求方在该时间期限内没被唤醒,则可以响应于该时间期限期满而重新发送请求或者生成错误报告。
在图3中还示出了“无监听延迟”和“有监听延迟”的16位数据格式。该数据格式包括诸如“要求”(requirement)、“保留”、“延迟尺度”、“延迟值”之类的字段。“延迟值”指示所配置的相应延迟容忍值。“延迟尺度”指示“延迟值”的最小时间单位,其中“不允许”指示该字段不允许被使用。例如,“延迟值”为“000000010”并且“延迟尺度”为“000”指示所能容忍或接受的最大延迟时间为2×1ns=2ns。“要求”位指示是否要用该“无监听延迟”或“有监听延迟”来更新处理设备(例如CPU子系统213或223)提供所请求的服务时实际使用的延迟容忍值(即是否在提供服务时采用该“无监听延迟”或“有监听延迟”),其中,“要求”位为1指示需要更新,而“要求”位为0指示不需要更新。
注意,上述LTR的消息格式是示意性的,本发明不限于此,例如,其他包含“无监听延迟”和“有监听延迟”的消息格式或者仅包含“无监听延迟”或“有监听延迟”的消息格式也是允许的,这视情况而定。
图4示出了根据本公开的实施例的非透明桥(NTB)设备400和相应的管理单元(SMU)401的示意图。NTB设备400(在图2中被示为216)总体上可以用于从主系统侧/从系统侧接收延迟容忍值相关信息,并将需要更新的延迟容忍值发送到另一侧。与NTB设备400相对应的管理单元可以是常规的系统管理单元(SMU)401(在图2中被示为218),其通常(例如通过总线)耦接到NTB设备400,并且其总体上可以用于为NTB设备400提供一些特定功能,例如,在其上运行固件(FW)代码以实现诸如更新延迟容忍值的功能。
如图4所示,NTB设备400包括NTB主侧410和NTB从侧420两个部分。NTB主侧410和NTB从侧420是两组逻辑上相互独立的寄存器和逻辑单元,分别对应于主系统210(第一子系统)和从系统220(第二子系统)。
NTB主侧410包括第一接收单元411、第一发送单元412、第一PCIe配置寄存器413、第一MMIO(memory mapping input output,内存映射输入输出)寄存器414、第一监控延迟寄存器415、第一中断状态寄存器416、第一比较单元417以及其他寄存器或逻辑单元。类似地,NTB从侧420包括第二接收单元421、第二发送单元422、第二PCIe配置寄存器423、第二MMIO寄存器424、第二监控延迟寄存器425、第二中断状态寄存器416、第二比较单元427以及其他寄存器或逻辑单元。
第一接收单元411被配置为从第一子系统的第一端点交换设备接收消息,例如,包括指示一侧端点交换设备向另一侧处理设备(CPU子系统213或223)请求服务时所能容忍或接受的最大延迟(即延迟容忍值)的消息。并且,第一接收单元411还被配置为对接收到的消息解码以获取所需信息,例如,从接收的消息中提取延迟容忍值。类似地,第二接收单元421被配置为从第二子系统的第二端点交换设备接收消息,以及对接收到消息解码以获取所需信息。本发明对接收单元所获取的消息的格式和提取信息的方法不作任何限制。
为方便起见,在本发明中规定以下术语以便更好地理解。
如上所述,术语“第一端点交换设备”是指第一子系统中连接到NTB设备的任一端点交换设备(交换设备212和/或根复合体211),术语“第二端点交换设备”是指第二子系统中连接到NTB设备的任一端点交换设备(交换设备222和/或根复合体221)。
另外,可以将在第一端点交换设备和NTB主侧之间传输的LTR消息称为“第一LTR消息”,将在第二端点交换设备和NTB从侧之间传输的LTR消息称为“第二LTR消息”。另外,术语“第一请求延迟容忍值”是指第一子系统用来向第二子系统请求服务时所发送的延迟容忍值,“第一服务延迟容忍值”是指第一子系统中存储的用来向第二子系统系统提供服务时所使用的延迟容忍值;相应地,术语“第二请求延迟容忍值”是指第二子系统用来向第一子系统请求服务时所发送的延迟容忍值,“第二服务延迟容忍值”是指第二子系统中存储的用来向第一子系统系统提供服务时所使用的延迟容忍值。在本发明的实施例中,“第一服务延迟容忍值”可以经由“第一LTR消息”传输,“第二服务延迟容忍值”可以经由“第二LTR消息”传输。另外,在一些实施例中,携带“第一/第二请求延迟容忍值”的消息可以是仅用于通知请求服务所使用的延迟容忍值的最小尺寸的消息,并且该消息还可以可选地包括请求方ID等信息,本发明并不限制携带“第一/第二请求延迟容忍值”的消息的格式。
回到图4,第一发送单元412被配置为向第一子系统的第一端点交换设备发送信息,例如,可以将用于配置第一子系统提供服务时使用的延迟容忍值封装成第一LTR消息,并将第一LTR消息发送到第一子系统的第一端点交换设备。第二发送单元422被配置为向第二子系统的第二端点交换设备发送信息,例如,可以将用于配置第二子系统提供服务时使用的延迟容忍值封装成第二LTR消息,并将第二LTR消息发送到第二子系统的第二端点交换设备。
根据本发明的实施例,在NTB主侧410中,第一PCIe配置寄存器413(或称为第一配置延迟寄存器)是用来配置PCIe参数的寄存器,其中至少包括如图3所示的包括“有监听延迟”和“无监听延迟”的第一配置延迟容忍值,其可以用来配置第一子系统提供服务所使用的第一服务延迟容忍值。例如,该PCIe配置寄存器的结构可以与典型NTB设备所固有的用于配置PCIe相关参数的寄存器相同。
另外,在NTB主侧410中,第一MMIO寄存器414可以将NTB主侧410的地址空间映射到MMIO空间以便由SMU 401上运行的固件访问。第一监控延迟寄存器415被配置为存储第一监控延迟容忍值,该第一监控延迟容忍值可以在NTB设备400启动时初始化为默认值(例如,第一子系统请求服务时最常使用的第一请求延迟容忍值),或者在主系统侧启动之后由主系统侧首次发送的第一请求延迟容忍值来初始化。第一中断状态寄存器416被配置为存储包括多个位的状态值,其中多个位中的每一位指示是否发生相应的中断事件,并且其中中断事件之一是第一监控延迟容忍值发生变化。例如,第一中断状态寄存器416中的状态值的某一位指示第一监控延迟容忍值是否发生变化,并且该位为“1”指示第一监控延迟容忍值发生变化,而该位为“0”指示第一监控延迟容忍值未发生变化。对于本领域技术人员显而易见的是,还可以包括其他任何中断事件。
另外,在NTB主侧410中,第一比较单元417被配置为将接收的第一请求延迟容忍值与第一监控延迟寄存器415中存储的第一监控延迟容忍值进行比较以判断第一监控延迟容忍值是否发生变化,响应于判断第一监控延迟容忍值发生变化(即,判断两个值不相同或两个值的差超出预定差值阈值)而产生第一中断脉冲418并将第一中断脉冲418发送到SMU401以唤醒SMU401上的固件。第一比较单元417可以例如在进行比较之后,用接收的第一请求延迟容忍值更新第一监控延迟寄存器415中存储的第一监控延迟容忍值。在一些实施例中,第一监控延迟寄存器415可以被设置为仅允许由接收单元411所接收的第一请求延迟容忍值来更新(或替换)。
根据本发明的实施例,在NTB从侧420中,第二PCIe配置寄存器423(或称为第二配置延迟寄存器)是用来配置PCIe参数的寄存器,其中至少包括如图3所示的包括“有监听延迟”和“无监听延迟”的第二配置延迟容忍值,其可以用来配置第二子系统提供服务所使用的第二服务延迟容忍值。例如,该PCIe配置寄存器的结构可以与典型NTB设备所固有的用于配置PCIe相关参数的寄存器相同。
另外,在NTB从侧420中,第二MMIO寄存器424可以将NTB从侧420的地址空间映射到MMIO空间以便由SMU 401上运行的固件访问。第二监控延迟寄存器425被配置为存储第二监控延迟容忍值,该第二监控延迟容忍值可以在NTB设备400启动时初始化为默认值(例如,第二子系统请求服务时最常使用的第二请求延迟容忍值),或者在从系统侧启动之后由从系统侧首次发送的第二请求延迟容忍值来初始化。第二中断状态寄存器426被配置为存储包括多个位的状态值,其中多个位中的每一位指示是否发生相应的中断事件,并且其中中断事件之一是第二监控延迟容忍值发生变化。例如,第二中断状态寄存器416中的状态值的某一位指示第二监控延迟容忍值是否发生变化,并且该位为“1”指示第二监控延迟容忍值发生变化,而该位为“0”指示第二监控延迟容忍值未发生变化。对于本领域技术人员显而易见的是,还可以包括其他任何中断事件。
另外,在NTB从侧420中,第二比较单元427被配置为将接收的第二请求延迟容忍值与第二监控延迟寄存器425中存储的第二监控延迟容忍值进行比较以判断第二监控延迟容忍值是否发生变化,响应于判断第二监控延迟容忍值发生变化(即,判断两个值不相同或两个值的差超出预定差值阈值)而产生第二中断脉冲428并将第二中断脉冲428发送到SMU401以唤醒SMU401上的固件。第二比较单元427可以例如在进行比较之后,用接收的第二请求延迟容忍值更新第二监控延迟寄存器415中存储的第二监控延迟容忍值。在一些实施例中,第二监控延迟寄存器425可以被设置为仅允许由接收单元421所接收的第二请求延迟容忍值来更新(或替换)。
根据本发明的实施例,SMU 401上的固件被配置为在被唤醒后用(第一监控延迟寄存器415中存储的)更新后的第一监控延迟容忍值更新第二PCIe配置寄存器423中存储的第二配置延迟容忍值,或者用(第二监控延迟寄存器425中存储的)更新后的第二监控延迟容忍值更新第一PCIe配置寄存器中存储的第一配置延迟容忍值。更具体地,SMU 401上的固件被配置为在被唤醒后根据中断脉冲的方向读取相应方向的中断状态寄存器中的状态值。例如,如果所接收的中断脉冲所指示的方向为NTB主侧410(即中断脉冲是来自第一比较单元417的第一中断脉冲418),则读取NTB主侧410的第一中断状态寄存器416中的状态值。例如,如果所接收的中断脉冲所指示的方向为NTB从侧420(即中断脉冲是来自第二比较单元427的第二中断脉冲428),则读取NTB从侧420的第二中断状态寄存器426中的状态值。中断脉冲所指示的方向(NTB主侧410或NTB从侧420)可以由SMU 401通过识别接收中断脉冲的端口来确定,例如,中断脉冲418和428可以经由SMU 401上的不同的预设端口由SMU 401接收。然后,SMU 401上的固件基于所读取的状态值来调用与所读取的状态值相对应的功能函数。功能函数可以执行各种与NTB设备相关联的功能或其他任何功能,本公开对此不进行限制。
在一些实施例中,第一中断状态寄存器416或第二中断状态寄存器426中的状态值包括多个位,其中多个位中的每一位指示是否发生相应的中断事件,例如,该位的值为1表示该位所代表的中断事件已经发生,该位的值为0表示该位所代表的中断事件没有发生。而且,第一中断状态寄存器416或第二中断状态寄存器426可选地还可以包括与每个中断事件相关联的优先级,例如,当同时发生多个中断事件时,SMU 401上的固件可以根据优先级来依次调用相应的功能函数。例如,与第一或第二监控延迟容忍值发生变化的中断事件相对应的优先级可以被配置为最高或第二高,本发明不限于此,其他合理的优先级配置都是可能的。
在一些实施例中,固件可以基于所读取的第一中断状态寄存器416中的状态值指示第一监控延迟容忍值发生变化,来调用用于更新第二配置延迟容忍值的功能函数。类似地,固件可以基于所读取的第二中断状态寄存器426中的状态值指示第二监控延迟容忍值发生变化,来调用用于更新第一配置延迟容忍值的功能函数。
注意,第一中断状态寄存器416中的状态值中指示第一监控延迟容忍值是否发生变化的位的初始值为0,该位在相应的中断脉冲(第一中断脉冲418)产生时被设置为1,并且在完成相应功能函数(用于更新第二配置延迟容忍值的功能函数)的执行后被重置为0。类似地,第二中断状态寄存器426中的状态值中指示第二监控延迟容忍值是否发生变化的位的初始值为0,该位在相应的中断脉冲(第二中断脉冲428)产生时被设置为1,并且在完成相应功能函数(用于更新第一配置延迟容忍值的功能函数)的执行后被重置为0。
根据本发明的实施例,由固件调用的用于更新第二配置延迟容忍值的功能函数执行以下步骤:基于中断脉冲的方向(即该中断脉冲是来自第一比较单元417的第一中断脉冲418),从NTB主侧410中的第一监控延迟寄存器415读取更新后的第一监控延迟容忍值;以及用更新后的第一监控延迟容忍值更新第二PCIe配置寄存器423中存储的第二配置延迟容忍值。根据本发明的实施例,由固件调用的用于更新第一配置延迟容忍值的功能函数执行以下步骤:根据中断脉冲的方向(即该中断脉冲是来自第二比较单元427的第二中断脉冲428),从NTB从侧420中的第二监控延迟寄存器425读取更新后的第二监控延迟容忍值;以及用更新后的第二监控延迟容忍值更新第一PCIe配置寄存器413中存储的第一配置延迟容忍值。
在一些实施例中,可以由第一发送单元412例如响应于第一PCIe配置寄存器413中的第一配置延迟容忍值被更新,将更新后的第一配置延迟容忍值封装成第一LTR消息并将第一LTR消息发送到第一端点交换设备。在一些实施例中,可以由第二发送单元422例如响应于第二PCIe配置寄存器中423的第二配置延迟容忍值被更新,将更新后的第二配置延迟容忍值封装成第二LTR消息并将第二LTR消息发送到第二端点交换设备。
在一些实施例中,例如当主系统“监控”从系统所请求的延迟容忍值是否发生变化时:第一端点交换设备被配置为从接收到的第一LTR消息中提取更新后的第一配置延迟容忍值,并将提取的更新后的第一配置延迟容忍值与第一端点交换设备中存储的第一服务延迟容忍值进行比较,以判断第一服务延迟容忍值是否发生变化。另外,第一端点交换设备还被配置为响应于判断第一服务延迟容忍值发生变化,用提取的更新后的第一配置延迟容忍值来更新第一端点交换设备中存储的第一服务延迟容忍值,并将更新后的第一服务延迟容忍值发送到第一子系统中的处理设备,以便该处理设备使用更新后的第一服务延迟容忍值为第二子系统提供服务。
在一些实施例中,例如当从系统“监控”主系统所请求的延迟容忍值是否发生变化时:第二端点交换设备被配置为从接收到的第二LTR消息中提取更新后的第二配置延迟容忍值,并将提取的更新后的第二配置延迟容忍值与第二端点交换设备中存储的第二服务延迟容忍值进行比较,以判断第二服务延迟容忍值是否发生变化。另外,第二端点交换设备还被配置为响应于判断第二服务延迟容忍值发生变化,用提取的更新后的第二配置延迟容忍值来更新第二端点交换设备中存储的第二服务延迟容忍值,并将更新后的第二服务延迟容忍值发送到第二子系统中的处理设备,以便该处理设备使用更新后的第二服务延迟容忍值为第一子系统提供服务。
可以看出,NTB设备400是对称的结构,其总体上可以实施将主系统侧的所请求的延迟容忍值通知给从系统侧或者将从系统侧所请求的延迟容忍值通知给主系统侧的功能,这至少取决于服务请求的方向。换句话说,NTB设备400实际上可以起到监控主系统侧/从系统侧请求服务所使用的第一/第二请求延迟容忍值的变化的作用,并且只有当监控到该请求延迟容忍值(或第一/第二监控延迟容忍值)变化时才唤醒SMU 401上的固件,然后用变化的第一/第二请求延迟容忍值来更新另一侧提供相应服务所使用的第二/第一服务延迟容忍值,从而在主系统侧和从系统侧之间传输最新的同于服务的延迟容忍值以及相关信息。
在上述方法中,利用NTB设备进行监控以及利用固件进行更新是在软件上实现的,而唤醒固件的中断脉冲则是硬件脉冲,这种软硬件结合的方法使得只有在需要更新的时候才将相对应的LTR信息从一侧传输到另一侧,并且其中通知更新时不用在整个过程(即从一侧系统到达另一侧系统的通信过程)中都传输完整的LTR消息包(即仅通知NTB设备更新的值,在确定更新时才生成完整的LTR消息),从而很大程度上避免了不必要的跨系统传输,减少了跨系统传输的次数和信息量。因此,这提高了传输效率,节省了系统资源,并且提高了传输的可靠性。
下面结合图5,以NTB设备400监控主系统侧的用于请求服务的延迟容忍值的变化的情况为例,描述了NTB设备400利用该延迟容忍值的变化来更新从系统侧的用于提供服务的延迟容忍值的过程。
图5示出了根据本公开的实施例的用于通过非透明桥设备传输信息的方法500的流程图。
在步骤S501,在主系统(第一子系统)中,可以启动其基本输入/输出系统(BIOS),以识别连接在其内端点交换设备,进而识别各个PCIe端点设备。然后,可以由主系统侧从内存中读取一组用于初始化的延迟容忍值并将其(例如经由端点交换设备211和212)发送到NTB设备(例如NTB设备400),以初始化NTB设备(例如NTB主侧410)中存储的第一监控延迟容忍值(第一监控延迟寄存器411的值)。在一些实施例中,第一监控延迟容忍值的初始化也可以由NTB设备执行,例如,在NTB设备出厂时进行设置。
在主系统完成启动之后,主系统侧可以向从系统侧(例如经由端点交换设备211和212)发起针对某一服务的请求。例如,该请求中可以至少包括与所请求的服务或发起请求的端点设备相对应的延迟容忍值(第一请求延迟容忍值),并且主系统侧可以根据需要(例如,服务优先级的变化、资源的变化等)在任何时间改变该延迟容忍值(第一请求延迟容忍值)。因此,在步骤S502,除了首次发起服务请求时,主系统侧可以每当第一请求延迟容忍值被改变时就生成包含第一请求延迟容忍值的消息,并向NTB设备发送该消息以通知改变后的第一请求延迟容忍值,或者,也可以定期生成并发送这种消息(例如,与未完成的服务相关联的消息)而不管第一请求延迟容忍值是否被改变。
在步骤S503,NTB设备(例如NTB设备400)可以从主系统侧(例如借由接收单元411)接收第一请求延迟容忍值,并且(例如,借由NTB设备400的第一比较单元417)将接收的第一请求延迟容忍值与NTB设备中存储的(例如,第一监控延迟寄存器415中存储的)第一监控延迟容忍值(例如,初始化的值或者由上一个第一请求延迟容忍值所更新的值)进行比较,以判断第一监控延迟容忍值是否发生变化(即,判断第一请求延迟容忍值是否发生变化)。
如果接收的第一请求延迟容忍值与NTB设备中存储的第一监控延迟容忍值之间的差值为零,或者该差值小于或等于预定差值阈值,则判断第一监控延迟容忍值没有发生变化,即不需要传输该第一请求延迟容忍值。在这种情况下,NTB设备可以不进行任何附加操作,例如,可以继续从主系统侧接收消息,即停留在步骤S503继续“监控”主系统侧的第一请求延迟容忍值是否发生变化。
如果接收的第一请求延迟容忍值与NTB设备中存储的第一监控延迟容忍值之间的差值不为零,或者该差值大于预定差值阈值,则判断第一监控延迟容忍值发生变化,即需要传输该第一请求延迟容忍值以便从系统侧更新第二服务延迟容忍值,并且步骤前进到S504。
在步骤S504,NTB设备可以响应于判断第一监控延迟容忍值发生变化而产生中断脉冲(例如第一中断脉冲418),并将该中断脉冲发送到耦接到NTB设备的管理单元(例如SMU401),并(例如借由第一比较单元417)用接收的第一请求延迟容忍值更新NTB设备中存储的第一监控延迟容忍值。
在步骤S505,管理单元响应于接收到该中断脉冲而唤醒运行在管理单元上的固件。该固件可以用于在被唤醒后用更新后的第一监控延迟容忍值更新NTB设备(例如NTB从侧)中存储的(例如,第二PCIe配置寄存器423中存储的)第二配置延迟容忍值。
具体地,在步骤S505,该固件可以在被唤醒后基于该中断脉冲的方向,即基于该中断脉冲是响应于判断第一监控延迟容忍值发生变化而产生的(或该中断脉冲是来自第一比较单元417的第一中断脉冲418),来读取NTB设备(例如NTB主侧)中存储的(例如,第一中断状态寄存器416中存储的)状态值。例如,在该示例中,管理单元可以通过识别接收中断脉冲的输入端口是耦接到NTB主侧来识别中断脉冲的方向是NTB主侧,从而读取NTB主侧的第一中断状态寄存器416中存储的状态值。然后,该固件可以基于所读取的状态值来调用与所读取的状态值相对应的功能函数。
在步骤S506,该固件可以判断接收到的中断脉冲是否指示第一监控延迟容忍值发生变化,即判断所读取的状态值中指示第一监控延迟容忍值是否发生变化的位的值是否为1。如果所读取的状态值指示第一监控延迟容忍值发生变化,即所述位的值为0,则该固件可以不进行任何操作或者可以处理其他中断。如果所读取的状态值指示第一监控延迟容忍值发生变化,即所述位的值为1,则步骤前进到S507。
在步骤S507,该固件基于所读取的状态值指示第一监控延迟容忍值发生变化,来调用用于更新第二配置延迟容忍值的功能函数。具体地,所调用的用于更新第二配置延迟容忍值的功能函数执行以下步骤:基于中断脉冲(例如,第一中断脉冲418)是响应于判断第一监控延迟容忍值发生变化而产生的,从NTB设备(例如NTB主侧的第一监控延迟寄存器415)读取更新后的第一监控延迟容忍值;以及在步骤S508用更新后的第一监控延迟容忍值更新NTB设备(例如NTB从侧的第二PCIe配置寄存器423)中存储的第二配置延迟容忍值。然后,发送单元(例如第二发送单元422)响应于第二配置延迟容忍值被更新,对更新后的第二配置延迟容忍值进行封装以生成LTR消息,然后将该LTR消息发送到从系统侧(第二子系统)。
在步骤S509,从系统侧可以从NTB设备接收LTR消息,从该LTR消息中提取更新后的第二配置延迟容忍值,并且还可以将提取的更新后的第二配置延迟容忍值与存储在从系统侧的第二服务延迟容忍值进行比较,以判断第二服务延迟容忍值是否发生变化。
如果提取的更新后的第二配置延迟容忍值与从系统侧中存储的第二服务延迟容忍值之间的差值为零,或者该差值小于或等于预定差值阈值,则判断第二服务延迟容忍值没有发生变化,即不需要向上游报告延迟容忍值。在这种情况下,从系统侧可以不进行任何附加操作,例如,可以继续从NTB设备接收LTR消息,即停留在步骤S509继续“监控”来自NTB设备的新的LTR消息。
如果提取的更新后的第二配置延迟容忍值与从系统侧中存储的第二服务延迟容忍值之间的差值不为零,或者该差值大于预定差值阈值,则判断第二服务延迟容忍值发生变化,即需要向上游报告延迟容忍值,并且步骤前进到S510。
在步骤S510,响应于判断第二服务延迟容忍值发生变化,从系统侧用提取的更新后的第二配置延迟容忍值来更新从系统侧中存储的第二服务延迟容忍值,并将更新后的第二服务延迟容忍值发送到从系统侧的上游的处理设备(例如CPU子系统223),以在提供相应服务时使用。
在步骤S511,从系统侧的处理设备使用更新后的第二服务延迟容忍值为主系统侧提供相应的服务。
根据本公开的实施例,从系统侧也可以按照上述步骤来将在从系统侧请求服务的端点交换设备的变化的延迟容忍值更新到主系统侧,由于该过程类似于上述步骤S501至S511(可以看作与步骤S501至S511相反的过程),因此在此省略其描述。
本公开通过软硬件结合的方法,通过NTB设备实现了跨系统的LTR消息的传输,为嵌入式智能板卡或双控系统提供了一种更灵活的低功耗管理方式。而且,本公开通过引入独立的可配置寄存器和软件交互流程,大大简化了软件编写的复杂度,提高了系统的可靠性。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
在本申请所提供的几个实施例中,应该理解到,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,该模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一个计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且进一步包括没有明确列出的其他要素,或者是进一步包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所附权利要求及其等同物的保护范围为准。
Claims (16)
1.一种用于通过非透明桥NTB设备传输信息的系统,包括:
第一子系统,包括:
第一端点交换设备;
NTB设备,耦接到所述第一端点交换设备;和
管理单元,耦接到所述NTB设备;和
第二子系统,包括第二端点交换设备,并且所述第二端点交换设备耦接到所述NTB设备,
其中,所述NTB设备包括:
第一接收单元,被配置为从所述第一端点交换设备接收第一请求延迟容忍值;
第一监控延迟寄存器,被配置为存储第一监控延迟容忍值;
第二配置延迟寄存器,被配置为存储用于所述第二子系统的第二配置延迟容忍值;
第二发送单元,被配置为向所述第二子系统发送信息;和
第一比较单元,被配置为将接收的第一请求延迟容忍值与所述第一监控延迟寄存器中存储的第一监控延迟容忍值进行比较以判断所述第一监控延迟容忍值是否发生变化,响应于判断所述第一监控延迟容忍值发生变化而产生中断脉冲并将所述中断脉冲发送到管理单元,以及用接收的第一请求延迟容忍值更新所述第一监控延迟寄存器中存储的第一监控延迟容忍值;并且
所述管理单元被配置为响应于接收到所述中断脉冲而唤醒运行在所述管理单元上的固件,其中所述固件被配置为在被唤醒后用更新后的第一监控延迟容忍值更新所述第二配置延迟寄存器中存储的第二配置延迟容忍值,并且
其中,所述第二发送单元进一步被配置为响应于所述第二配置延迟容忍值被更新,将更新后的第二配置延迟容忍值封装成LTR消息,并将所述LTR消息发送到所述第二子系统的第二端点交换设备。
2.根据权利要求1所述的系统,其中,所述NTB设备还包括:
第一中断状态寄存器,被配置为存储包括多个位的状态值,其中所述多个位中的每一位指示是否发生相应的中断事件,并且其中所述中断事件之一是所述第一监控延迟容忍值发生变化。
3.根据权利要求2所述的系统,其中,所述固件还被配置为:
在被唤醒后基于所述中断脉冲来自所述第一比较单元来读取所述第一中断状态寄存器中的状态值,并且基于所读取的状态值来调用与所读取的状态值相对应的功能函数。
4.根据权利要求3所述的系统,其中,所述固件还被配置为:
基于所读取的状态值指示所述第一监控延迟容忍值发生变化,来调用用于更新所述第二配置延迟容忍值的功能函数。
5.根据权利要求4所述的系统,其中,所调用的用于更新所述第二配置延迟容忍值的功能函数执行以下步骤:
基于所述中断脉冲来自所述第一比较单元,从所述第一监控延迟寄存器读取更新后的第一监控延迟容忍值;以及
用所述更新后的第一监控延迟容忍值更新所述第二配置延迟寄存器中存储的第二配置延迟容忍值。
6.根据权利要求1所述的系统,其中,所述第二端点交换设备被配置为从接收到的LTR消息中提取更新后的第二配置延迟容忍值,并将提取的更新后的第二配置延迟容忍值与所述第二端点交换设备中存储的第二服务延迟容忍值进行比较,以判断所述第二服务延迟容忍值是否发生变化。
7.根据权利要求6所述的系统,其中,所述第二端点交换设备还被配置为响应于判断所述第二服务延迟容忍值发生变化,用所述提取的更新后的第二配置延迟容忍值来更新所述第二端点交换设备中存储的第二服务延迟容忍值,并将更新后的第二服务延迟容忍值发送到所述第二子系统的处理设备。
8.根据权利要求7所述的系统,其中,所述处理设备被配置为使用所述更新后的第二服务延迟容忍值为所述第一子系统提供服务。
9.一种用于通过非透明桥NTB设备传输信息的方法,包括:
由所述NTB设备从第一子系统中的第一端点交换设备接收第一请求延迟容忍值;
由所述NTB设备将接收的第一请求延迟容忍值与所述NTB设备中存储的第一监控延迟容忍值进行比较,以判断所述第一监控延迟容忍值是否发生变化;
由所述NTB设备响应于判断所述第一监控延迟容忍值发生变化而产生中断脉冲,并将所述中断脉冲发送到管理单元,并且由所述NTB设备用接收的第一请求延迟容忍值更新所述NTB设备中存储的第一监控延迟容忍值;
由所述管理单元响应于接收到所述中断脉冲而唤醒运行在所述管理单元上的固件;
由所述固件在被唤醒后用更新后的第一监控延迟容忍值更新所述NTB设备中存储的用于第二子系统的第二配置延迟容忍值;以及
由所述NTB设备响应于所述第二配置延迟容忍值被更新,将更新后的第二配置延迟容忍值封装成LTR消息,并将所述LTR消息发送到所述第二子系统。
10.根据权利要求9所述的方法,其中,所述更新第二配置延迟容忍值包括:
由所述固件在被唤醒后基于所述中断脉冲是响应于判断所述第一监控延迟容忍值发生变化而产生的,来读取所述NTB设备中存储的状态值,并且基于所读取的状态值来调用与所读取的状态值相对应的功能函数。
11.根据权利要求10所述的方法,其中,
由所述固件基于所读取的状态值指示所述第一监控延迟容忍值发生变化,来调用用于更新所述第二配置延迟容忍值的功能函数。
12.根据权利要求11所述的方法,其中,所调用的用于更新所述第二配置延迟容忍值的功能函数执行以下步骤:
基于所述中断脉冲是响应于判断所述第一监控延迟容忍值发生变化而产生的,从所述NTB设备读取更新后的第一监控延迟容忍值;以及
用所述更新后的第一监控延迟容忍值更新所述NTB设备中存储的第二配置延迟容忍值。
13.根据权利要求9所述的方法,还包括:
由所述第二子系统中的第二端点交换设备从所述NTB设备接收所述LTR消息,并从所述LTR消息中提取更新后的第二配置延迟容忍值;以及
由所述第二端点交换设备将提取的更新后的第二配置延迟容忍值与所述第二端点交换设备中存储的第二服务延迟容忍值进行比较,以判断所述第二服务延迟容忍值是否发生变化。
14.根据权利要求13所述的方法,还包括:
响应于判断所述第二服务延迟容忍值发生变化,由所述第二端点交换设备用所述提取的更新后的第二配置延迟容忍值来更新所述第二端点交换设备中存储的第二服务延迟容忍值,并将更新后的第二服务延迟容忍值发送到所述第二子系统的处理设备。
15.根据权利要求14所述的方法,还包括:
由所述处理设备使用所述更新后的第二服务延迟容忍值为所述第一子系统提供服务。
16.一种用于传输信息的非透明桥NTB设备,包括:
第一接收单元,被配置为从第一子系统中的第一端点交换设备接收第一请求延迟容忍值;
第二接收单元,被配置为从第二子系统中的第二端点交换设备接收第二请求延迟容忍值;
第一监控延迟寄存器,被配置为存储第一监控延迟容忍值;
第一配置延迟寄存器,被配置为存储用于所述第一子系统的第一配置延迟容忍值;
第二监控延迟寄存器,被配置为存储第二监控延迟容忍值;
第二配置延迟寄存器,被配置为存储用于所述第二子系统的第二配置延迟容忍值;
第一比较单元,被配置为将接收的第一请求延迟容忍值与所述第一监控延迟寄存器中存储的第一监控延迟容忍值进行比较以判断所述第一监控延迟容忍值是否发生变化,响应于判断所述第一监控延迟容忍值发生变化而产生第一中断脉冲并将所述第一中断脉冲发送到管理单元以唤醒运行在所述管理单元上的固件,以及用接收的第一请求延迟容忍值更新所述第一监控延迟寄存器中存储的第一监控延迟容忍值,其中所述固件被配置为在被唤醒后用更新后的第一监控延迟容忍值更新所述第二配置延迟寄存器中存储的第二配置延迟容忍值;
第二比较单元,被配置为将接收的第二请求延迟容忍值与所述第二监控延迟寄存器中存储的第二监控延迟容忍值进行比较以判断所述第二监控延迟容忍值是否发生变化,响应于判断所述第二监控延迟容忍值发生变化而产生第二中断脉冲并将所述第二中断脉冲发送到管理单元以唤醒运行在所述管理单元上的固件,以及用接收的第二请求延迟容忍值更新所述第二监控延迟寄存器中存储的第二监控延迟容忍值,其中所述固件被配置为在被唤醒后用更新后的第二监控延迟容忍值更新所述第一配置延迟寄存器中存储的第一配置延迟容忍值;
第一发送单元,被配置为响应于所述第一配置延迟容忍值被更新,将更新后的第一配置延迟容忍值封装成第一LTR消息并将所述第一LTR消息发送到所述第一端点交换设备;和
第二发送单元,被配置为响应于所述第二配置延迟容忍值被更新,将更新后的第二配置延迟容忍值封装成第二LTR消息并将所述第二LTR消息发送到所述第二端点交换设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011317364.4A CN112445737B (zh) | 2020-11-23 | 2020-11-23 | 通过非透明桥设备传输信息的系统、方法和该设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011317364.4A CN112445737B (zh) | 2020-11-23 | 2020-11-23 | 通过非透明桥设备传输信息的系统、方法和该设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112445737A CN112445737A (zh) | 2021-03-05 |
CN112445737B true CN112445737B (zh) | 2022-02-22 |
Family
ID=74738550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011317364.4A Active CN112445737B (zh) | 2020-11-23 | 2020-11-23 | 通过非透明桥设备传输信息的系统、方法和该设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112445737B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114911726B (zh) * | 2022-07-15 | 2022-10-04 | 飞腾信息技术有限公司 | 数据传输方法、相关装置、系统及计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1953567A (zh) * | 1997-11-03 | 2007-04-25 | 高通股份有限公司 | 高速率分组数据传输的方法和装置 |
CN104734957A (zh) * | 2013-12-24 | 2015-06-24 | 中国移动通信集团公司 | 一种软件定义网络sdn中业务传输方法及装置 |
CN105474589A (zh) * | 2013-08-06 | 2016-04-06 | 索尼公司 | 通信终端和通信方法 |
CN105637919A (zh) * | 2013-06-11 | 2016-06-01 | 七网络有限责任公司 | 优化无线网络中的保活和其他后台流量 |
CN108989218A (zh) * | 2018-07-11 | 2018-12-11 | 中国人民解放军陆军工程大学 | 一种基于网络融合架构的数据转发装置及方法 |
CN111433828A (zh) * | 2017-10-16 | 2020-07-17 | 交互数字专利控股公司 | 用于无人驾驶航空系统(uas)业务管理(utm)的协议设计 |
CN111831443A (zh) * | 2020-07-01 | 2020-10-27 | Oppo广东移动通信有限公司 | 处理器状态调整方法、装置、存储介质及电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI310549B (en) * | 2005-09-20 | 2009-06-01 | Via Tech Inc | System and method for recording control |
US8929872B2 (en) * | 2010-09-16 | 2015-01-06 | Qualcomm Incorporated | Management of paging channel monitoring |
WO2014160709A2 (en) * | 2013-03-25 | 2014-10-02 | Altiostar Networks, Inc. | Systems and methods for scheduling of data packets based on delay tolerance of applications |
US10091702B2 (en) * | 2016-07-18 | 2018-10-02 | Qualcomm Incorporated | Forwarding node selection and routing for delay-tolerant messages |
-
2020
- 2020-11-23 CN CN202011317364.4A patent/CN112445737B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1953567A (zh) * | 1997-11-03 | 2007-04-25 | 高通股份有限公司 | 高速率分组数据传输的方法和装置 |
CN105637919A (zh) * | 2013-06-11 | 2016-06-01 | 七网络有限责任公司 | 优化无线网络中的保活和其他后台流量 |
CN105474589A (zh) * | 2013-08-06 | 2016-04-06 | 索尼公司 | 通信终端和通信方法 |
CN104734957A (zh) * | 2013-12-24 | 2015-06-24 | 中国移动通信集团公司 | 一种软件定义网络sdn中业务传输方法及装置 |
CN111433828A (zh) * | 2017-10-16 | 2020-07-17 | 交互数字专利控股公司 | 用于无人驾驶航空系统(uas)业务管理(utm)的协议设计 |
CN108989218A (zh) * | 2018-07-11 | 2018-12-11 | 中国人民解放军陆军工程大学 | 一种基于网络融合架构的数据转发装置及方法 |
CN111831443A (zh) * | 2020-07-01 | 2020-10-27 | Oppo广东移动通信有限公司 | 处理器状态调整方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112445737A (zh) | 2021-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10997093B2 (en) | NVME data processing method and NVME device | |
US10948963B2 (en) | Message handling unit | |
EP3358463B1 (en) | Method, device and system for implementing hardware acceleration processing | |
TWI221968B (en) | System having an apparatus for controlling use of a communication bus and method for controlling use of a communication bus in a system | |
CN100474255C (zh) | 用于多事件队列的中断管理 | |
TWI239187B (en) | System and method for managing and validating remote keys which correspond to outstanding data transactions | |
KR101861312B1 (ko) | 다중슬롯 링크 계층 플릿에서의 제어 메시징 | |
CN102549555B (zh) | 主机存储器的基于通知协议的端点高速缓存 | |
CN1815463B (zh) | 四重抽吸总线体系结构和协议 | |
US20020165896A1 (en) | Multiprocessor communication system and method | |
EP0140751A2 (en) | Cache invalidation mechanism for multiprocessor systems | |
CN109992352B (zh) | 数据传输方法、装置、电子设备及可读取存储介质 | |
EP0138676A2 (en) | Retry mechanism for releasing control of a communications path in a digital computer system | |
JP2012048546A (ja) | 計算機システム、i/oデバイス制御方法、及びi/oドロワ | |
CN112698909A (zh) | 用于经由虚拟总线编码传送遥测信息的系统、装置和方法 | |
CN111061663A (zh) | 一种数据传输方法、装置及相关组件 | |
CN107209725A (zh) | 处理写请求的方法、处理器和计算机 | |
CN112445737B (zh) | 通过非透明桥设备传输信息的系统、方法和该设备 | |
CN111752873A (zh) | 用于在计算平台的多个主设备之间共享Flash设备的系统、装置和方法 | |
CN115203101A (zh) | PCIe装置及其操作方法 | |
EP0139568B1 (en) | Message oriented interrupt mechanism for multiprocessor systems | |
CN111427806A (zh) | 一种双核amp系统共用串口的方法、存储介质及智能终端 | |
EP4124932A1 (en) | System, apparatus and methods for power communications according to a cxl.power protocol | |
CN116010307A (zh) | 服务器资源分配系统、方法和装置 | |
CN115203110A (zh) | PCIe功能及其操作方法 |
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 |