CN103959267B - 用于具有多个总线的pcie电桥的中断处理系统及方法 - Google Patents

用于具有多个总线的pcie电桥的中断处理系统及方法 Download PDF

Info

Publication number
CN103959267B
CN103959267B CN201280058637.5A CN201280058637A CN103959267B CN 103959267 B CN103959267 B CN 103959267B CN 201280058637 A CN201280058637 A CN 201280058637A CN 103959267 B CN103959267 B CN 103959267B
Authority
CN
China
Prior art keywords
bus
interrupt
message
module
memorizer
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
CN201280058637.5A
Other languages
English (en)
Other versions
CN103959267A (zh
Inventor
X·宁
S·多林
M·阿尔特霍夫
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.)
Kaiwei International Co
Marvell International Ltd
Marvell Asia Pte Ltd
Original Assignee
Mawier International Trade Co 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 Mawier International Trade Co Ltd filed Critical Mawier International Trade Co Ltd
Publication of CN103959267A publication Critical patent/CN103959267A/zh
Application granted granted Critical
Publication of CN103959267B publication Critical patent/CN103959267B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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
    • 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/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

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)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)

Abstract

一种电桥,包括总线、存储器、部件模块、接口和中断模块。该部件模块经由存储器和总线在主机控制模块与网络设备之间传送数据。该接口连接在存储器与网络设备之间并且经由总线中的一个总线向存储器传输状态信息。该状态信息指示网络设备与主机控制模块之间的上一数据传送的完成。中断模块在状态信息被传输至存储器之后检测由网络设备生成的第一中断,并且经由存储器和总线中的一个总线向部件模块传输中断消息。接着,部件模块生成由主机控制模块可检测的第二中断。该第二中断指示网络设备与主机控制模块之间的数据传送的完成。

Description

用于具有多个总线的PCIE电桥的中断处理系统及方法
相关申请的交叉引用
本申请要求于2012年11月29日提交的美国专利申请No.13/688,929的优先权以及于2011年11月30日提交的美国临时申请No.61/565,065的权益。
本申请涉及于2012年8月14日提交的美国专利申请No.13/585,456。以上申请的全部内容通过引用并入到本文中。
技术领域
本公开内容涉及一种外围部件互连高速(PCIe)电桥,更具体地涉及一种PCIe电桥的中断处理技术。
背景技术
本文中所提供的背景技术描述用于总体上呈现本公开内容的上下文的目的。当前署名的发明人的工作(到该背景技术部分中描述的程度)以及在提交时可能无法以其它方式作为现有技术的衡量的说明书的各方面,既非明确地也非隐含地承认是本公开的现有技术。
主机设备能够经由PCIe电桥与网络设备进行通信。主机设备可以是例如台式计算机、笔记本电脑或外围设备(如打印机)。该网络设备可以是例如网络接口卡和存储驱动器。该网络设备还可以是例如以太网设备、通用串行总线(USB)设备、串行高级技术附件(SATA)设备、小型计算机系统接口(SCSI)设备或其他高速串行总线设备。
PCIe电桥可以包括PCIe接口、先入先出(FIFO)存储器、内部总线和多个设备接口。PCIe电桥连接在以下之间:i)主机控制模块和/或主机存储器,以及ii)多个网络设备。FIFO存储器连接在PCIe接口与内部总线之间。内部总线连接在FIFO存储器与设备接口之间。设备接口中的每个设备接口连接至网络设备中的相应的一个网络设备。
内部总线可以包括用于高速数据传送的第一总线和用于低速数据传送的第二总线。包括FIFO存储器以处理主机存储器与网络设备之间的并行数据传送。内部总线上的数据传送延迟不是固定的,是不可预测的,并且基于并行执行的数据传送的数目、并行执行的数据传送的优先级以及FIFO存储器的大小。
在操作时并且在从网络设备至主机存储器的数据传送期间,网络设备向高速总线传送数据和与该数据关联的状态信息。接着,该数据和状态信息经由FIFO存储器向PCIe接口传送。接着,该数据和状态信息从PCIe接口向主机传送。该数据和状态信息被写入主机存储器的相应区域。接着,该网络设备请求向PCIe接口发送中断。接着,该PCIe接口生成中断并且将中断向主机设备的中断模块发送,该中断可以从高速总线向PCIe接口直接发送而不经过FIFO存储器。
由于经由高速总线和FIFO存储器的数据和状态信息传送以及中断的直接传送的不可预测的延迟,该中断可能绕开相应的状态信息。这可能使得主机控制模块、中断模块和/或主机存储器在接收中断时不能够接收到相应的状态信息。
发明内容
提供了一种电桥,该电桥包括:总线、存储器、部件模块、接口和中断模块。部件模块被配置成经由存储器和总线在主机控制模块与网络设备之间传送数据。接口连接在存储器与网络设备之间,并且被配置成经由其中一个总线向存储器传输状态信息。状态信息指示网络设备与主机控制模块之间的上一数据传送的完成。中断模块被配置成在向存储器传输状态信息之后检测网络设备生成的第一中断,并且经由存储器和其中一个总线向部件模块传输中断消息。部件模块被配置成基于中断消息生成主机控制模块可检测的第二中断。第二中断指示网络设备与主机控制模块之间的数据传送的完成。
在其他特征中,提供了一种方法,该方法包括:经由存储器和多个总线在电桥内以及在主机控制模块与网络设备之间传送数据。经由其中一个总线从网络设备至存储器传输状态信息。状态信息指示网络设备与主机控制模块之间的上一数据传送的完成。在向存储器传输状态信息之后,检测网络设备生成的第一中断,并且经由存储器和其中一个总线向部件模块传输中断消息。基于中断消息,生成主机控制模块可检测的第二中断。第二中断指示网络设备与主机控制模块之间的数据传送的完成。
根据详细描述、权利要求和附图,本公开内容的应用的另外的方面将变得清楚。详细描述和具体示例仅意在示出,而非意在限制本公开内容的范围。
附图说明
根据详细描述和附图,将能够更全面地理解本公开内容,其中:
图1是并入有中断处理系统的主机系统的功能框图;
图2是根据本公开内容的并入有中断处理系统的主机系统的功能框图,其中该中断处理系统包括以第一处理模式操作的PCIe电桥;
图3是根据本公开内容的私有消息格式;
图4是根据本公开内容的消息信号中断格式;
图5是根据本公开内容的消息信号中断扩展格式;
图6图示了根据本公开内容的操作图2的中断处理系统的方法;
图7是根据本公开内容的并入有中断处理系统的主机系统功能框图,该中断处理系统包括以第二处理模式操作的PCIe电桥;
图8图示了根据本公开内容的操作图7的中断处理系统的方法;以及
图9是图示了INTx和MSI/MSIX操作模式的中断处理的信号图。
具体实施方式
PCIe电桥可以用来在主机设备与多个网络设备之间传送数据。该PCIe电桥可以位于主机设备上或者可以与主机设备分离。作为示例,PCIe电桥可以是位于主机设备的母板上的集成电路。作为另一示例,PCIe电桥可以是连接至主机设备的独立的部件。主机设备可以涉及例如台式计算机、笔记本电脑、外围设备或者包括PCIe总线的其他设备。该网络设备可以包括例如网络接口卡、存储驱动器和/或外围设备。该网络设备可以具有各种工作协议比如以太网、USB、SATA、SCSI或其他高速总线协议。该网络设备可以插入PCIe电桥和/或主机设备的插槽和/或接口中。
虽然主要参考PCIe电桥来描述以下实现,然而,这些实现也可以应用于PCIe多功能设备。为此,以下描述的架构和/或方法可以用PCIe多功能设备来实现。
在图1中,示出了主机系统8。该主机系统8包括主机设备12以及一个或更多个网络设备13。该主机设备12包括中断处理系统10,该中断处理系统10包括PCIe电桥14(或其他PCIe多功能设备),该PCIe电桥14连接至网络设备13。该PCIe电桥14在以下之间传送数据:(i)主机设备12的主机控制模块18,以及(ii)网络设备13。该PCIe电桥14包括PCIe模块20、电桥存储器22、设备接口模块24以及一个或更多个设备接口26。该PCIe电桥14可以与主机设备12分离,或者可以集成在主机设备12中,如所示出的。作为示例,PCIe电桥14可以是包括在主机设备12中和/或在主机设备12的母板上安装的集成电路(IC)。该主机设备12的IC可以包括主机设备12的PCIe电桥14和/或一个或更多个其他模块(例如主机控制模块18)。
PCIe模块20可以被称为PCIe接口并且包括电桥控制模块30和PCIe总线32。该电桥控制模块30控制经由电桥存储器22、设备接口模块24和PCIe总线32进行的主机设备12的设备接口26与中断模块48之间的数据的传送。电桥存储器22可以包括例如先入先出(FIFO)存储器并且在主机设备12与设备接口26之间传输的缓存数据。由电桥存储器22执行的数据缓存使得能够在以下之间并行地传送数据:(i)主机设备12,以及(ii)设备接口26和/或网络设备13。
设备接口模块24可以被称为内部总线模块,其可以包括总线控制模块40、第一总线42和第二总线44。该第一总线42可以是高级可扩展接口(AXI)总线,其可以用于传送数据、中断和/或中断消息。该第二总线可以是高级外围总线(APB),其可以用于:(i)通过主机设备12的控制模块、PCIe电桥14、和/或网络设备13来开始直接存储器访问(DMA)传送,以及(ii)通过主机控制模块18来开始网络设备13中的寄存器访问。该第一总线42可以以比该第二总线44更高的速度来操作。
设备接口26各自连接至网络设备13中的相应的一个网络设备13。该网络设备13可以是例如以太网设备、USB设备、SATA设备、SCSI设备或其他高速串行总线设备。该网络设备13可以插入PCIe电桥14和/或主机设备12的相应的插槽中。
主机设备12包括主机控制模块18和存储器以及中断控制器(MAIC)模块48,并且还包括主机存储器50。主机控制模块18包括设备驱动模块54,该设备驱动模块54用于经由PCIe电桥14与网络设备13通信、向网络设备13传送数据以及传送来自网络设备13的数据。该主机存储器50可以位于主机设备12中和/或可以与主机设备12分离。例如,在主机控制模块18与网络设备13中的一个网络设备之间的数据传送完成时,MAIC模块48可以接收来自PCIe电桥14的中断。在多个数据传送与多个中断之间可以不存在一一对应关系。例如,在中断被声明之前,多个数据传送可以在PCIe模块20与MAIC模块48之间的分配线路上执行。总之,该中断经由中断消息从PCIe模块20向MAIC模块48传送。该MAIC模块48可以反映导线或管脚上的中断状态。
主机存储器50可以存储从网络设备13中的一个网络设备接收的数据和状态信息。该状态信息可以指示是否已经完成了读写数据传送。如本文中所使用的,读数据传送可以指代从主机存储器50至网络设备13中的一个网络设备传送数据。写数据传送可以指代从网络设备13中的一个网络设备至主机存储器50的数据传送。在多个数据传送与从网络设备13至主机存储器50使用状态信息传输的多个状态信号之间可能存在一一对应关系。
从网络设备13中的一个网络设备(第一网络设备)至主机存储器50的数据传送可以包括以下工作。第一网络设备向PCIe电桥14发送数据(第一数据)。该第一数据由设备接口26中的相应的一个设备接口接收并且经由第一总线42向电桥存储器22转发。接着,基于与电桥存储器22中存储的其他数据的优先级相比的第一数据的优先级,该第一数据由PCIe模块20访问并且向主机控制模块18转发。其他数据可以包括要向主机存储器50和/或网络设备13中的一个或更多个网络设备传送的数据。
在向PCIe电桥14传送第一数据时,第一网络设备向PCIe电桥14传输状态(邮箱)信息。该状态信息指示第一网络设备已经完成了向PCIe电桥14发送第一数据。该状态信息可以经由第一总线42向电桥存储器22转发。该PCIe模块20将状态信息向主机控制模块18转发。该主机控制模块18将状态信息写在主机存储器50的被分配用于状态信息的地址处。所分配的地址的存储器位置被称为网络设备13的邮箱。网络设备13的每个网络设备可以具有一个或更多个邮箱,这些邮箱由主机控制模块18来检查。该PCIe模块20直接向主机存储器50中写入而不与主机控制模块18交互。
在状态信息向PCIe电桥14的传送完成时,第一网络设备可以生成由相应的设备接口来检测的第一中断。该第一中断可以由总线控制模块40经由第一总线42来检测。该总线控制模块40可以向中断请求模块45发送指示第一中断的检测的中断信号。接着,该中断请求模块45可以生成中断请求信号(称为PCI电桥内部中断请求)并且向电桥控制模块30直接发送。接着,电桥控制模块30可以生成第二中断和/或第二中断信号。该中断请求信号被直接向PCIe模块20发送,而非经由电桥存储器22向PCIe模块20传输。该第二中断和/或第二中断信号(称为PCIe中断消息)可以被指示给和/或传送至MAIC模块48。
第二中断可以是在执行传统功能时使用的INTx型中断,其中x指示(i)PCIe模块20的中断线路和/或管脚和/或(ii)PCIe模块20与MAIC模块48之间的中断线路和/或管脚。该第二中断信号可以包括消息信号中断(MSI)消息或消息信号中断扩展(MSI-X)消息。
在从主机存储器50至网络设备13中的一个网络设备传输数据时,这个处理可以类似地执行。该数据可以向网络设备传送,并且当在网络设备处接收到所有数据时,该网络设备可以通过向主机控制模块18传输状态信息来响应。
经由电桥存储器22、设备接口模块24和第一总线42的数据和/或状态信息传送的延迟不是固定的,并且主要基于:(i)涉及设备接口26正在执行的并行数据和状态信息传送的数目,以及(ii)电桥存储器22的大小。该延迟通常是不可预测的,并且对于数据和/或状态信息的每个传送可以不同。由于不可预测的延迟以及由网络设备在PCIe模块20处的生成的中断的直接检测或者从设备接口模块24至PCIe模块20的中断信号的直接传送,该中断和/或中断信号可以不顾相应的状态信息。该中断可以绕开状态信息,这使得设备驱动模块54不能够在接收中断时使相应的状态信息可用。
例如,在由PCIe模块20和/或主机控制模块18接收所有相应的状态信息之前,可以由PCIe模块20接收中断信号和/或将中断信号向主机控制模块18传输。这是因为,中断信号从设备接口模块24向PCIe模块20直接传输,而该状态信息经由电桥存储器22向PCIe模块20传输。该状态信息的绕开可以使得主机控制模块18不能够在正确的时间接收状态信息的其余部分。在接收相应的中断消息之后可以传送状态信息的其余部分。
以下实现防止了中断、中断信号和/或中断消息绕开相应的状态信息。该中断消息在适当的时间经由电桥存储器传输;在向主机设备和/或主机设备的MAIC模块或存储器传输相应的状态信息之后传输;以及与状态信息的传输同步地传输。通过PCIe模块向主机设备和/或主机设备的MAIC模块发送中断消息是动态地实现的,并且基于PCIe电桥内的存储器和总线的当前传送延迟。
在图2中,示出了包括以第一处理模式操作的中断处理系统100的主机系统98。该第一处理模式指代所生成的中断、中断信号和/或中断消息的类型。在第一处理模式期间,可以生成延迟(INTx)、MSI和/或MSI-X型中断、中断信号和/或中断消息。
中断处理系统100包括主机设备102以及一个或更多个网络设备103。主机设备102包括连接至网络设备103的PCIe电桥104。PCIe电桥104和网络设备103可以基于INTx、MSI和/或MSI-X中断来操作,相应地称为以传统模式、MSI模式和MSI-X模式来操作。PCIe电桥104在主机设备102的主机控制模块108与网络设备103之间传送数据。PCIe电桥104包括PCIe模块110、路由模块112、电桥存储器114、设备接口模块106、一个或更多个设备接口118以及中断请求模块120。如所示出的,PCIe电桥104可以与主机设备102分离,或者可以并入在主机设备102中。作为示例,PCIe电桥104可以是包括在主机设备102中的和/或可以在主机设备102的母板上安装的IC。主机设备102的IC可以包括主机设备102的PCIe电桥104和/或一个或更多个其他模块。
PCIe模块110可以被称为PCIe接口,并且包括电桥控制模块130和PCIe总线132。电桥控制模块130控制经由路由模块112、电桥存储器114、设备接口模块106和PCIe总线132进行的主机设备102的MAIC模块140与设备接口118之间的数据传送。MAIC模块140位于主机控制模块108与PCIe模块110之间,并且检测由PCIe电桥104声明的中断和/或从PCIe电桥104接收的中断消息。主机控制模块108可以包括MAIC模块140。
路由模块112连接在PCIe模块110与电桥存储器114之间,并且检测从电桥存储器114至PCIe模块110的数据流中的中断消息。第一格式可以被称为私有格式并且是路由模块112、中断请求模块120和/或PCIe模块110可识别的。以第一格式接收的中断消息可以被称为私有消息。该私有消息可以是特定AXI中断消息(SAIM)。路由模块112接收以第一格式编码的中断消息并且对其进行解码。路由模块112基于SAIM用信号通知PCIe模块110以生成第二格式的中断消息。PCIe模块110可以接收解码的中断消息并且将该中断消息转换成第二格式。第一格式可以不是PCIe模块110、主机控制模块108和/或MAIC模块140可识别的。第二格式是PCIe模块110、主机控制模块108和/或MAIC模块140可识别的,并且不是PCIe电桥104私有的。下面参考图3至图5描述示例第一格式和第二格式。
现在,仍参考图3,示出了SAIM的示例格式。SAIM包括多个域。第一域150可以包括例如69个比特。第一域150可以包括指示SAIM是用于在主机存储器151中写入数据的写入数据消息还是中断消息比如INTx消息、MSI消息或MSI-X消息的比特。第一域150的其他内容取决于SAIM被用作写入数据消息还是中断消息。在被用作写入数据消息时,第一域150包括主机存储器151的地址(如,64比特地址)。
在被用作中断消息时,不可以使用差不多例如第一域150的64个比特。换言之,中断消息不可以包括主机存储器151的地址。在被用作中断消息时,第一域150可以包括PCIe功能编号、AXI总线信息和/或网络设备类型信息。PCIe功能编号可以指示例如从其生成中断的网络设备(如,网络设备103中的一个网络设备)。AXI总线信息可以包括例如用于通过第一总线172传送消息的总线ID和/或其他信息。AXI总线信息使得PCIe模块110和/或电桥存储器114能够检测和解码私有消息。网络设备类型信息可以指示从其传送数据或向其传送数据的网络设备的类型。网络设备类型指示例如网络设备为以太网设备、USB设备、SATA设备、SCSI设备等。
SAIM还可以包括第二域152和第三域154。作为示例,第二域152可以包括6个比特,第三域154可以包括3个比特。第二域152可以用于MSI消息数据。第二域152和第三域154可以用于MSI-X消息数据。第二域152和第三域154可以包括用于定位要包括在MSI或MSI-X消息中的消息地址和消息数据的未定位、未定位的区域(或位置)和/或矢量标识(ID)。该未定位可以被设置成生成MSI或MSI-X消息。矢量ID可以识别存储在PCIe模块110内部或外部的矢量表中的矢量。该矢量表中的每个矢量可以包括消息地址和消息数据。
现在,参考图2和图4,示出了MSI消息格式。该MSI消息格式包括两个域,主机地址域160和消息数据域162。主机地址域160包括主机存储器151的地址。当以MSI模式执行时,PCIe模块可以支持每个MSI功能执行的32个MSI消息。PCIe模块110可以具有例如32至64比特寄存器以存储MSI消息,该MSI消息包括消息地址和消息数据。每个MSI消息的消息数据可以包括16个比特。
现在,参考图2和图5,示出了MSI-X消息格式。该MSI-X消息格式包括三个域,消息数据域164、主机高位地址域166和主机低位地址域168。地址域166、168包括主机存储器151的地址。在以MIS-X模式执行时,PCIe模块110可以支持每个MSI-X功能执行的最高达2048个MSI-X消息。每个MSI-X消息可以包括64比特的消息地址和32比特的消息数据。
PCIe模块110可以包括用于存储MSI和/或MSI-X消息的附加存储器,和/或可以被访问以获得MSI和/或MSI-X消息的其他存储器。其他存储器(如,PCIe存储器167)可以在PCIe模块110和/或PCIe电桥104外部。附加存储器可以存储矢量表,该矢量表包括具有MSI和/或MSI-X消息的矢量。每个矢量可以通过私有消息中的未定位来识别。
再次参考图2至图3,SAIM还可以包括第四域156和第五域158。第四域156可以用于代码位。该代码位可以指示私有消息的中断类型(如,INTx、MSI或MSI-X)。第五域158可以不用于和/或可以用于消息数据。
第二域152的使用取决于由第四域156所指示的中断类型。当该中断类型为INTx时,不可以使用第二域152。当中断类型为MSI时,第二域152可以包括未定位和/或矢量ID,如上所述。当第二域152为MSI-X时,第二域和第五域158中的其他预留位(如最高达6个比特)可以包括用于生成PCIe MSI-X消息的信息位。
在MSI或MSI-X模式下,与在以INTx模式操作时类似,中断请求模块120可以生成SAIM并且经由第一总线172向电桥存储器114发送SAIM。接着,该SAIM消息可以在路由模块112中进行检测和解码并且路由至PCIe模块110。该PCIe模块110基于SAIM消息来生成MSI或MSI-X消息,该消息接着向主机控制模块108传输。这可能在例如PCIe模块110不向PCIe电桥104的其他模块指示MSI或MSI-X消息的配置信息时出现。该配置信息可以包括消息地址、消息数据和/或其他控制信息。
如果PCIe模块110将配置信息提供给PCIe电桥104的一个或更多个模块(如,中断请求模块120),则可以由中断请求模块120生成MSI消息或MSI-X消息作为存储器写入消息。该MSI消息或MSI-X消息可以被生成并且存储在主机存储器151中而不生成SAIM。存储器写入消息为存储在主机存储器151中的消息。接着,中断请求模块120可以经由电桥存储器114、PCIe模块110和第一总线172向主机控制模块108发送MSI消息或MSI-X消息。接着,该MSI消息或MSI-X消息可以存储在主机存储器151中。由中断请求模块120生成的MSI消息或MSI-X消息可以经由设备接口模块106和电桥存储器114向PCIe模块110发送而不生成私有消息。
再次参考图2,电桥存储器114可以包括例如先入先出(FIFO)存储器和在以下之间传输的缓存数据:(i)主机控制模块108和/或主机存储器151,以及(ii)设备接口118。由电桥存储器114执行的数据缓存使得能够在以下之间并行传送数据:(i)主机控制模块108,以及(ii)设备接口118和/或网络设备103。电桥存储器114可以是任意大小。作为示例,电桥存储器114可以包括8千比特(kB)的存储空间。
取决于与网络设备103关联的吞吐量,电桥存储器114可以用待向主机存储器151和/或网络设备103传送的未定数据来填充。在电桥存储器114被其他未定数据填充时,这可能延迟正向电桥存储器114传送的状态信息的传送。作为示例,如果电桥存储器114包括4kB的存储空间并且如果PCIe电桥104与MAIC模块140之间建立有PCIe x1GEN1链路(或路线),则最大吞吐量为200B/微秒(μs)并且相应的延迟为20μs。由电桥存储器114产生的最大延迟可以使用等式1来计算,其中SIZE为电桥存储器114的存储容量,RATE为电桥存储器114的数据传送速率,DELAY为电桥存储器114的延迟。
DELAY = SIZE RATE
设备接口模块106可以被称为内部总线模块并且可以包括总线控制模块170、第一总线172和第二总线174。第一总线172可以是用于传送数据、状态信息、中断信号和中断消息的AXI总线。第二总线174可以是用于进行以下操作的APB:(i)通过主机设备102的控制模块、PCIe电桥104和/或网络设备103来发起DMA传送;以及(ii)通过主机控制模块108来发起网络设备103中的寄存器访问。第一总线172可以以比第二总线174的更高的速度来操作。
设备接口118各自连接至网络设备103中的相应的一个网络设备。该网络设备103可以是例如以太网设备、USB设备、SATA设备、SCSI设备或其他高速总线设备。该网络设备103可以插入PCIe电桥104和/或主机设备102的相应的插槽中。
主机设备102可以包括主机控制模块108、MAIC模块140和主机存储器151。主机控制模块108包括用于经由PCIe电桥104与网络设备103通信以及向网络设备103传送数据并且从网络设备103传送数据的设备驱动模块180。主机存储器151可以位于主机设备102中和/或可以与主机设备102分离。例如,在主机控制模块108与网络设备103中的一个网络设备之间的数据传送完成时,MAIC模块140可以接收来自PCIe电桥104的中断。数据传送与中断之间可能不存在一一对应关系。例如,可以在声明中断之前,在PCIe模块110与MAIC模块140之间的分配线路上执行多个数据传送。
主机存储器151可以存储数据和状态信息。该状态信息可以指示是否已经完成了读取或写入数据传送。该状态信息可以指示是否(i)网络设备103中的一个网络设备已经完成了向主机设备102发送数据,和/或(ii)是否已经完成了从主机设备102至网络设备103中的一个网络设备的数据传送。
该中断请求模块120生成中断消息,该中断消息响应于由网络设备103生成的中断以第一格式被编码。该中断消息可以经由第一总线172被路由至路由模块112。这确保了中断消息穿过电桥存储器114并且在相应的状态信息穿过电桥存储器114之后。该中断消息的路由还使得(i)中断消息能够与状态信息同步,以及(ii)防止中断消息在状态信息至主机控制模块108的传送完成之前向主机控制模块108传输。在向MAIC模块140和/或主机控制模块108传送状态信息之后,向MAIC模块140和/或主机控制模块108传输该中断消息。在状态信息至MAIC模块140和/或主机控制模块108的传送完成之后,可以向MAIC模块140和/或主机控制模块108传输该中断消息。作为结果,在状态信息与中断消息之间的延迟最小的情况下,该中断消息在合适的时间被有效地传输。
中断请求模块120还生成撤销信号,该撤销信号从中断请求模块120向PCIe模块110直接传输。该撤销信号可以经由中断请求模块120与PCIe模块110之间的撤销线路182来传输。该撤销信号被传输用于INTx消息。
本文中所公开的PCIe电桥和中断处理系统可以使用多个方法来操作,图6和图8示出了示例方法。图6和图8的下述任务意在是示意性的示例;取决于应用,这些任务可以依次、同步、同时、连续、在重叠时间周期期间或者以不同的顺序来执行。此外,这些任务中的任何任务可以取决于事件的实现和/或顺序来执行或跳过。
在图6中,示出了包括图2的第一处理模式的PCIe电桥104的中断处理系统100的操作方法。虽然主要关于图2的实现来描述以下任务,然而也可以很容易地对这些任务进行修改以应用于本公开内容的其他实现。该任务可以迭代地执行。该方法可以在200处开始。
在202处,数据经由PCIe电桥104在主机存储器151与第一网络设备之间传送。在从第一网络设备至PCIe电桥104的数据的传送完成时,和/或当在第一网络设备处接收到数据时,执行任务203。
在203处,第一网络设备生成包括状态信息的状态信号,该状态信息指示至PCIe电桥104的数据传送的完成和/或来自PCIe电桥104的数据接收的完成。因此,该状态信息可以包括传输状态或接收状态信息(称为邮箱状态信息)。该状态信号经由设备接口118的相应的一个设备接口(如,第一设备接口)向第一总线172和/或总线控制模块170传输。
在204处,将该状态信息传送至并且存储在电桥存储器114中。在由第一网络设备向第一总线172和/或总线控制模块170发送状态信息的最后字节之后,执行任务206。
在206处,第一网络设备和/或第一设备接口生成第一中断,该第一中断可以经由第一中断信号来指示。这可以包括第一网络设备上拉(pull up)(或声明)第一网络设备与PCIe电桥104之间的第一网络设备的第一中断线路。第一中断线路可以指代和/或包括:第一网络设备与第一设备接口之间的线路;第一设备接口与第一总线172之间的线路;以及第一总线172与中断请求模块120之间的线路。作为对于第一设备接口与第一总线172之间的和/或第一总线172与中断请求模块120之间的声明线路的备选,第一设备接口和/或总线控制模块170可以响应于第一中断分别向总线控制模块170和中断请求模块120传输中断信号(或消息)。
在210处,中断请求模块120响应于检测到第一中断和/或接收到第一中断信号而生成第一中断消息(SAIM)。该中断请求模块120可以对第一中断消息进行编码,使得第一中断消息为第一格式。该中断请求模块120经由第一总线172(如,AXI总线)向电桥存储器114传输第一中断消息。
在212处,第一中断消息被存储在电桥存储器114中。这确保了在状态信息已经被存储在电桥存储器114中之后该第一中断消息被存储在电桥存储器114中。
在214处,路由模块112检测电桥存储器114中的第一中断消息。该路由模块112对第一中断消息进行解码并且用信号通知PCIe模块110以生成第二中断消息(或PCIe IRQ消息)。
在216处,基于解码的第一中断消息,PCIe模块110可以生成第二中断消息。该第二中断消息可以经由第二中断信号和/或通过声明MAIC模块140的第二中断线路来指示。该PCIe模块110可以基于第一中断消息来生成第二中断消息。该第二中断消息可以是第二格式。响应于第二中断消息,该PCIe模块110可以生成第二中断、生成第二中断信号和/或(ii)声明第二中断线路。该第二中断可以是例如INTx中断、MSI中断或MSI-X中断。
在218处,MAIC模块140接收并且处理第二中断信号和/或第二中断消息和/或检测第二中断。这指示主机存储器151与第一网络设备之间的数据传送的完成。经由设备驱动模块180中的相应的一个驱动模块,主机控制模块108经由PCIe电桥104向第一网络设备传输响应信号。
在220处,该响应信号经由路由模块112、电桥存储器114和第一总线172向PCIe模块110传输以及从PCIe模块110向第一设备接口传输。该响应信号可以从PCIe模块110向电桥存储器114直接转发,而不使该响应信号经过路由模块112。
在222处,该响应信号可以被写入第一网络设备的寄存器。图2中示出了示例寄存器223。在224处,响应于响应信号,与第一网络设备关联的PCIe电桥104之间的第一中断线路被撤销或下拉(pulldown)。
在PCIe电桥104以传统模式操作并且第二中断为INTx中断时,执行以下任务226。在PCIe电桥104以MSI模式操作并且第二中断为MSI中断或MSI-X中断时,可以不执行任务226。
在226处并且响应于第一中断线路和/或响应信号的撤销,中断请求模块120生成撤销信号和/或下拉MAIC模块140和/或PCIe模块110的第二中断线路。该响应信号可以从第一设备接口向中断请求模块120转发。该撤销信号从中断请求模块120向PCIe模块110直接传输以撤销第二中断线路。这个撤销可以由电桥控制模块130来执行。基于第二中断线路的撤销,与第一网络设备相对应的设备驱动模块180中的一个设备驱动模块可以清除第一网络设备的主机控制模块108和/或MAIC模块140中的第一中断。
竞态条件可以存在于以下之间:(i)在任务206至224处执行的并且由主机控制模块108接收的中断服务例程的完成,以及(ii)撤销信号的传输。如果在响应信号的传输之后的预定周期之后传输撤销信号,则MAIC模块140可以生成用于重新启用第一中断的第四中断。这可以产生主机控制模块108的伪中断和废物处理周期。因此,撤销信号没有经由第一总线172、电桥存储器114和/或路由模块112向PCIe模块110传输。该撤销信号从中断请求模块120向PCIe模块110直接传输以使传送撤销信号的延迟最小化。这防止了MAIC模块140生成第四中断和/或其他附加伪中断。
在图7中,主机系统198被示出为包括中断处理系统200。该中断处理系统200以第二处理模式操作。该第二处理模式是指所生成的中断、中断信号和/或中断消息的类型。在第二处理模式期间,可以生成MSI和/或MSI-X中断信号和/或中断消息。在第二处理模式期间,不生成INTx中断、中断信号和/或中断消息。
再次参考图2,中断处理系统100在以第二处理模式操作时可以不使用路由模块112和撤销线路182。该路由模块112可以在直通设备(passthrough device)和/或路由模块112被绕开时执行。第二处理模式中的操作参考图7的实现来描述。
再次参考图7,中断处理系统200包括主机设备202以及一个或更多个网络设备203。该主机设备202包括连接至网络设备203的PCIe电桥204。该PCIe电桥104和网络设备203可以基于MSI和/或MSI-X中断消息和/或信号来操作,分别被称为以MSI模式和MSI-X模式来操作。该PCIe电桥204包括PCIe模块210、电桥存储器212、设备接口模块214、一个或更多个设备接口216和中断请求模块218。该PCIe电桥204可以与主机设备202分离或者可以并入在主机设备202中,如所示出的。
PCIe模块210可以被称为PCIe接口并且可以包括电桥控制模块220和PCIe总线222。该电桥控制模块220控制经由PCIe总线222、电桥存储器212和设备接口模块214进行的、设备接口216与主机设备202的MAIC模块224之间的数据传送。该电桥存储器212可以包括例如先入先出(FIFO)存储器和在MAIC模块224与设备接口216之间传输的缓存数据。
PCIe模块210可以包括用于存储MSI和/或MSI-X消息的附加存储器,和/或可以被访问以获得MSI和/或MSI-X消息的其他存储器。该其他存储器(如,PCIe存储器225)可以在PCIe模块210和/或PCIe电桥204外部。附加存储器可以存储矢量表,该矢量表包括具有MSI和/或MSI-X消息的矢量。
该设备接口模块214可以被称为内部总线模块并且可以包括总线控制模块228、第一总线230和第二总线232。第一总线230可以是用于传送数据、状态信息、中断信号和中断消息的AXI总线。第二总线232可以是用于进行以下操作的APB:(i)通过主机设备202的控制模块、PCIe电桥204和/或网络设备203发起DMA传送;以及(ii)通过主机设备202的主机控制模块240发起网络设备203中的寄存器访问。
设备接口216各自连接至网络设备203中的相应的一个网络设备。该网络设备203可以是例如以太网设备、USB设备、SATA设备、SCSI设备或其他高速串行总线设备。该网络设备203可以被插入PCIe电桥204和/或主机设备202的相应的插槽中。
主机设备202可以包括MAIC模块224、主机控制模块204和主机存储器242。该主机控制模块240包括用于经由PCIe电桥204与网络设备203通信以及向网络设备203传送数据以及从网络设备203传送数据的设备驱动模块244。该主机控制模块240可以包括MAIC模块224。该主机存储器242可以位于主机设备202中和/或可以与主机设备202分离。该主机存储器242可以存储数据和状态信息。该状态信息可以指示是否:(i)网络设备203中的一个网络设备已经完成向主机存储器242发送数据,和/或(ii)已经完成从主机存储器242至网络设备203中的一个网络设备的数据传送。
中断请求模块218生成中断消息,该中断消息可以响应于由网络设备203生成的中断为第二格式。该中断消息可以经由第一总线230和电桥存储器212被路由至PCIe模块210。该中断消息在相应的状态信息之后穿过电桥存储器212。在状态信息向MAIC模块224和/或主机控制模块240的传送完成之后,向MAIC模块224和/或主机控制模块240传输该中断消息。如图2的中断请求模块120,中断请求模块218不生成用于撤销PCIe模块210与MAIC模块224之间的线路的撤销信号。
现在,仍参考图8,示出了以第二处理模式操作PCIe电桥204的方法。虽然主要关于图7的实现来描述以下任务,然而该任务也可以很容易地进行修改以应用于本公开内容的其他实现。该任务可以迭代地执行。该任务是在不使用路由模块和/或生成撤销PCIe模块210和/或MAIC模块224的中断线路的撤销信号的情况下来执行的,如关于图6的方法所描述的。该方法可以在300处开始。
在302处,经由PCIe电桥204在主机存储器242与第一网络设备之间传送数据。在从第一网络设备至PCIe电桥204的数据传送完成时,和/或当在第一网络设备处接收到数据时,执行任务302。
在303处,第一网络设备生成包括状态信息的状态信号,该状态信息指示至PCIe电桥204的数据传送的完成和/或来自PCIe电桥204的数据接收的完成。因此,该状态信息可以包括传输状态或接收状态信息(称为邮箱状态信息)。该状态信号经由设备接口216中的相应的一个设备接口(如,第一设备接口)向第一总线230传输。
在304处,将状态信息传送至并且存储在电桥存储器212中。在由第一网络设备向第一总线230发送状态信息的最后字节之后,执行任务306。
在306处,第一网络设备和/或第一设备接口生成第一中断和/或第一中断消息。第一设备接口和/或总线控制模块228可以响应于第一中断和/或第一中断消息而分别向总线控制模块228和中断请求模块218传输中断信号。该中断信号可以包括第一中断消息。
在310处,中断请求模块218响应于第一中断和/或第一中断消息生成第二中断消息。该第二中断消息可以是例如MSI或MSI-X中断消息。如果第二中断消息为MSI或MSI-X中断消息,则第二中断消息可以具有与被写入主机存储器242的数据信号相似的格式。中断请求模块218经由第一总线230向电桥存储器212传输中断消息。
在312处,将第二中断消息存储在电桥存储器212中。这确保了在状态信息已经被存储在电桥存储器212中之后第二中断消息被存储在电桥存储器212中。
在314处,电桥控制模块220可以将第二中断消息向MAIC模块224转发。例如,在主机控制模块240与第一网络设备之间的数据传送完成时,MAIC模块224可以从PCIe电桥104接收中断信号。第二中断消息被传送至主机控制模块240并且存储在主机存储器242中。由于提供给PCIe模块210的第二中断消息的格式与被写入主机存储器242的数据信号的格式类似,所以第二中断消息可以简单地向主机控制模块240转发。第二中断消息可以不编码和/或可以用主机控制模块240能够解码的格式来编码。在没有对第二中断消息的特殊处理的情况下,第二中断消息可以经由第一总线230、电桥存储器212和/或PCIe模块210从中断请求模块218向主机控制模块240传送。这消除了对第二中断消息的特殊的格式化、编码、解码和/或转换的需要。因此,路由模块和撤销线路没有并入在图4至图5的实现中。
在316处,MAIC模块224接收第二中断消息。接着,与第一网络设备相对应的主机控制模块240的设备驱动器中的一个设备驱动器可以清除主机控制模块240和/或MAIC模块224中的第一中断。该第一中断可以基于第二中断消息来清除。经由设备驱动模块224中的相应的一个设备驱动模块,主机控制模块240经由PCIe电桥204向第一网络设备传输响应信号。
在318处,响应信号经由电桥存储器212和第一总线230向PCIe模块210传输以及从PCIe模块210向第一设备接口传输。在320处,该响应信号可以被写入第一网络设备的寄存器,并且可以撤销第一网络设备与第一设备接口之间的中断线路。
现在,参考图2、图7和图9,示出了信号图。图9图示了PCIe电桥(或PCIe多功能设备)的两个示例操作事件。在上电之后,所关心的PCIe电桥(如,PCIe电桥104、204中的一个PCIe电桥)和/或网络设备(如,网络设备103、203中的一个网络设备)被操作系统设置成MSI、MSI-X或INTx模式(该INTx模式对于PCIe电桥104和网络设备103有效)中的一种。第一事件包括经由PCIe电桥向主机存储器(如,主机存储器151、242中的一个主机存储器)发送数据的网络设备。第二事件包括经由PCIe电桥接收来自主机存储器的数据的网络设备。示出了中断信号400和相应的中断消息信号404用于在以传统模式操作时。示出了另一中断信号402和相应的中断消息信号406用于在以MSI和/或MSI-X模式操作时。虽然针对每个事件和操作模式示出了中断和中断消息的示例,但是可以生成不同的和/或另外的中断、中断消息和/或中断信号。
对于第一事件以及在以传统模式操作时,在网络设备完成经由PCIe电桥向主机存储器发送数据和相应的状态信息之后,网络设备生成中断,如在第一中断信号400的上升沿408所示。响应于所生成的中断,中断请求模块生成用第一中断消息信号404的上升沿409所示以及另外用箭头410所示的中断消息。在以MSI/MSI-X模式操作时,该中断消息信号可以被提供为MSI和/或MSI-X消息,如在第二中断消息信号406的上升沿和下降沿414所示以及另外箭头412所示。
第一中断消息可以经由操作系统和相应的驱动器提供给执行中断服务例程(ISR)的MAIC模块。在清除中断事件状态位时并且作为第一中断的结果,网络设备可以响应于第一中断消息向MAIC模块发送撤销消息。对于相应的操作模式中的每个操作模式,这用箭头424、426和信号400、404的下降沿411、413示出。INTx中断消息(或声明)之后是INTx撤销消息。因此,如果网络设备已经发送了INTx的最近的声明但是还没有发送INTx撤销,则PCIe电桥内部的新生成的中断不会使得发送另一INTx声明。
对于第二事件以及在以MSI和/或MSI-X模式操作时,在网络设备已经完成经由PCIe电桥从主机存储器接收数据以及经由PCIe电桥向主机存储器发送相应的状态信息之后,网络设备生成中断,如第二中断信号402的上升沿416所示。响应于所生成的中断,中断请求模块生成用第二中断消息信号406的上升沿和下降沿420所指示的以及还用箭头418所示出的第二中断消息。该第二中断消息可以被提供给MAIC模块,其向操作系统和相应的驱动器发出中断服务请求。
以上描述仅是示意性的,而绝非意在限制本公开内容、其应用或使用。本公开内容的广义教导可以用各种形式来实现。因此,虽然本公开内容包括具体的示例,但是本公开内容的真实范围不应当这样受限,因为其他修改在对附图、说明书和以下权利要求的研究之上将变得清楚。为了清楚的目的,可以在附图中使用相同的附图标记来识别相似的元素。如本文中所使用的,短语“A、B和C中的至少一个”应当被理解为意味着逻辑(A或B或C),使用非排他性逻辑OR。应当理解,方法中的一个或更多个步骤可以按照不同的顺序(或者同时)来执行,而不改变本公开内容的原则。
如本文中所使用的,术语“模块”和/或“电路”可以指代、作为一部分或包括:专用集成电路(ASIC);数字、模拟或混合模拟/数字离散电路;数字、模拟或混合模拟/数字集成电路;组合逻辑电路;现场可编程门阵列(FPGA);执行代码的处理器(共享的、专用的或分组的);提供所描述的功能的其他合适的硬件部件;或以上的一些或所有的组合,比如在系统级芯片中。术语“模块”可以包括存储由处理器执行的代码的存储器(共享的、专用的或分组的)。
如以上所使用的,术语“代码”可以包括软件、固件和/或微代码,并且可以指代程序、例程、功能、分类和/或对象。如以上所使用的,术语“共享的”意味着可以使用单个(共享的)处理器来执行来自多个模块的一些或所有代码。此外,可以使用单个(共享的)存储器来存储来自多个模块的一些或所有代码。如以上所使用的,术语“分组的”意味着可以使用处理器组来执行来自单个模块的一些或所有代码。此外,可以使用存储器组来存储来自单个模块的一些或所有代码。
本文中所描述的设备和方法可以部分或全部通过由一个或更多个处理器执行的一个或更多个计算机程序来实现。该计算机程序包括存储在至少一个非瞬态有形计算机可读介质上的处理器可执行指令。该计算机程序还可以包括和/或依赖于存储数据。非瞬态有形计算机可读介质的非限制性示例包括非易失性存储器、易失性存储器、磁性存储装置和光学存储装置。

Claims (20)

1.一种电桥,包括:
多个总线;
存储器;
部件模块,所述部件模块被配置成经由所述存储器和所述多个总线在主机控制模块与网络设备之间传送数据;
接口,所述接口连接在所述存储器与所述网络设备之间并且被配置成经由所述多个总线中的一个总线向所述存储器传输状态信息,其中所述状态信息指示所述网络设备与所述主机控制模块之间的上一数据传送的完成;以及
中断模块,所述中断模块被配置成:(i)在所述状态信息被传输至所述存储器之后,检测由所述网络设备生成的第一中断,并且(ii)响应于所述第一中断,经由所述存储器和所述多个总线中的所述一个总线向所述部件模块传输中断消息,
其中所述部件模块被配置成基于所述中断消息生成能够由所述中断模块检测的第二中断,并且其中所述第二中断指示所述网络设备与所述主机控制模块之间的数据传送的完成。
2.根据权利要求1所述的电桥,其中:
所述部件模块与所述主机控制模块分离;以及
所述网络设备与所述电桥分离。
3.根据权利要求1所述的电桥,其中所述多个总线中的所述一个总线为外围部件互连快速总线并且连接在所述主机控制模块与所述存储器之间。
4.根据权利要求1所述的电桥,其中:
所述多个总线包括第一总线和第二总线;
所述多个总线中的所述一个总线是所述第一总线;
所述部件模块被配置成经由所述第一总线、所述存储器和所述第二总线在所述主机控制模块与所述网络设备之间传送所述数据;
所述接口被配置成经由所述第一总线向所述存储器传输所述状态信息;以及
所述中断模块被配置成经由所述电桥与所述主机控制模块之间的线路来检测所述第一中断。
5.根据权利要求1所述的电桥,其中所述部件模块直接连接至所述存储器并且被配置成从所述存储器接收所述中断消息。
6.根据权利要求1所述的电桥,其中所述部件模块被配置成:
基于所述第二中断从所述主机控制模块接收响应信号;以及
经由所述存储器和所述多个总线向所述网络设备传输所述响应信号。
7.根据权利要求1所述的电桥,其中:
所述中断模块被配置成在所述状态信息被传输至所述存储器之后,经由所述多个总线中的所述一个总线接收所述中断消息,并且经由所述存储器和所述多个总线中的所述一个总线向所述部件模块传输第二中断消息;以及
所述部件模块生成所述第二中断或者向所述主机控制模块传输所述第二中断消息和第三中断消息中的一个,其中所述第二中断消息和所述第三中断消息指示所述网络设备与所述主机控制模块之间的数据传送的完成,并且其中所述第三中断消息是基于所述第二中断消息生成的。
8.根据权利要求7所述的电桥,其中:
所述部件模块与所述主机控制模块分离;以及
所述网络设备与所述电桥分离。
9.根据权利要求7所述的电桥,其中:
所述存储器将所述第二中断消息转换成所述第三中断消息;
所述第二中断消息具有所述电桥能够识别并且所述中断模块不能够识别的格式;以及
所述第三中断消息具有所述主机控制模块能够识别的第二格式。
10.根据权利要求7所述的电桥,其中所述部件模块被配置成将所述第二中断消息转换成所述第三中断消息,其中:
所述第二中断消息具有所述电桥能够识别并且所述中断模块不能够识别的格式;以及
所述第三中断消息具有所述主机控制模块能够识别的第二格式。
11.根据权利要求10所述的电桥,其中所述第二中断消息包括:
指示所述网络设备的类型的比特;
指示所述第二中断消息的类型的比特;以及
用于所述多个总线中的所述一个总线的总线信息。
12.根据权利要求7所述的电桥,其中:
所述多个总线中的所述一个总线为外围部件互连快速总线并且连接在所述主机控制模块与所述存储器之间;以及
电桥控制模块被配置成响应于所述第二中断消息生成所述第三中断消息,并且经由所述多个总线中的所述一个总线向所述主机控制模块传输所述第三中断消息。
13.根据权利要求7所述的电桥,其中:
所述多个总线包括第一总线和第二总线;
所述多个总线中的所述一个总线是所述第一总线;
所述部件模块被配置成经由所述第一总线、所述存储器和所述第二总线在所述主机控制模块与所述网络设备之间传送所述数据;
所述接口被配置成经由所述第一总线向所述存储器传输所述状态信息;以及
所述中断模块被配置成经由所述第二总线检测或接收所述第二中断消息或所述第三中断消息。
14.根据权利要求7所述的电桥,还包括连接在所述部件模块与所述存储器之间的路由模块,其中:
所述路由模块被配置成检测和解码所述第二中断消息;以及
所述部件模块被配置成响应于所解码的所述第二中断消息:
生成所述部件模块与所述主机控制模块之间的所述第二中断,或者
向所述主机控制模块传输所述第三中断消息。
15.根据权利要求7所述的电桥,其中所述部件模块被配置成:
基于所述第二中断消息和所述第三中断消息中的一个从所述主机控制模块接收响应信号;以及
经由所述存储器和所述多个总线向所述网络设备传输所述响应信号。
16.根据权利要求15所述的电桥,其中所述中断模块被配置成基于所述响应信号生成用于撤销所述电桥与所述主机控制模块之间的线路的撤销信号。
17.一种用于电桥的中断处理的方法,包括:
经由存储器和多个总线在电桥内并且在主机控制模块与网络设备之间经由部件模块传送数据;
经由所述多个总线中的一个总线从所述网络设备向所述存储器传输状态信息,其中所述状态信息指示所述网络设备与所述主机控制模块之间的上一数据传送的完成;
在所述状态信息被传输至所述存储器之后,经由中断模块检测由所述网络设备生成的第一中断;
响应于所述第一中断,经由所述存储器和所述多个总线中的所述一个总线向所述部件模块传输中断消息;以及
基于所述中断消息,生成能够由所述中断模块检测的第二中断,其中所述第二中断指示所述网络设备与所述主机控制模块之间的数据传送的完成。
18.根据权利要求17所述的方法,还包括:
在所述状态信息被传输至所述存储器之后,经由所述多个总线中的所述一个总线接收所述中断消息,并且经由所述存储器和所述多个总线中的所述一个总线向所述部件模块传输第二中断消息;以及
生成所述第二中断或者向所述主机控制模块传输所述第二中断消息和第三中断消息中的一个,其中所述第二中断消息和所述第三中断消息指示所述网络设备与所述主机控制模块之间的数据传送的完成,并且其中所述第三中断消息是基于所述第二中断消息生成的。
19.根据权利要求18所述的方法,还包括经由所述存储器将所述第二中断消息转换成所述第三中断消息,其中:
所述第二中断消息具有所述电桥能够识别并且所述中断模块不能够识别的格式;以及
所述第三中断消息具有所述主机控制模块能够识别的第二格式。
20.根据权利要求18所述的方法,还包括将所述第二中断消息转换成所述第三中断消息,其中:
所述第二中断消息具有所述电桥能够识别并且所述中断模块不能够识别的格式;
所述第三中断消息具有所述主机控制模块能够识别的第二格式;以及
所述第二中断消息包括:
指示所述网络设备的类型的比特,
指示所述第二中断消息的类型的比特,以及
用于所述多个总线中的所述一个总线的总线信息。
CN201280058637.5A 2011-11-30 2012-11-30 用于具有多个总线的pcie电桥的中断处理系统及方法 Active CN103959267B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161565065P 2011-11-30 2011-11-30
US61/565,065 2011-11-30
US13/688,929 US9128920B2 (en) 2011-11-30 2012-11-29 Interrupt handling systems and methods for PCIE bridges with multiple buses
US13/688,929 2012-11-29
PCT/IB2012/002561 WO2013080027A2 (en) 2011-11-30 2012-11-30 Interrupt handling systems and methods for pcie bridges with multiple buses

Publications (2)

Publication Number Publication Date
CN103959267A CN103959267A (zh) 2014-07-30
CN103959267B true CN103959267B (zh) 2016-10-26

Family

ID=47557396

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280058637.5A Active CN103959267B (zh) 2011-11-30 2012-11-30 用于具有多个总线的pcie电桥的中断处理系统及方法

Country Status (3)

Country Link
US (1) US9128920B2 (zh)
CN (1) CN103959267B (zh)
WO (1) WO2013080027A2 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8582450B1 (en) * 2009-09-30 2013-11-12 Shoretel, Inc. Status reporting system
US8914566B2 (en) * 2012-06-19 2014-12-16 Teradyne, Inc. Managing interrupts
US9135200B2 (en) * 2013-06-28 2015-09-15 Futurewei Technologies, Inc. System and method for extended peripheral component interconnect express fabrics
US9672173B2 (en) 2015-02-26 2017-06-06 Red Hat Israel, Ltd. Shared PCI interrupt line management
CN106681816A (zh) * 2016-12-27 2017-05-17 深圳开立生物医疗科技股份有限公司 PCIe中断方法和系统
US11210246B2 (en) * 2018-08-24 2021-12-28 Advanced Micro Devices, Inc. Probe interrupt delivery
KR102555511B1 (ko) * 2018-11-01 2023-07-14 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
TWI764014B (zh) * 2019-07-09 2022-05-11 三泰科技股份有限公司 應用於pcie對異質設備的中斷處理系統與方法
CN112241380B (zh) * 2019-07-17 2024-03-08 昆山尚尼司电子科技有限公司 应用于pcie对异质设备的中断处理系统与方法
CN111078597B (zh) * 2019-12-04 2021-07-30 江苏芯盛智能科技有限公司 一种中断消息生成装置、方法以及端设备
CN114257781A (zh) * 2020-09-23 2022-03-29 京东方科技集团股份有限公司 双倍速率动态随机存储器读写控制方法、装置和系统
CN115189981B (zh) * 2022-06-30 2023-12-01 东风汽车集团股份有限公司 一种基于主从可复用性的lin总线接口
CN115221083B (zh) * 2022-09-05 2023-01-24 浪潮电子信息产业股份有限公司 一种PCIe中断处理方法、装置、设备及介质
CN115292219B (zh) * 2022-10-10 2023-01-10 三未信安科技股份有限公司 一种在RISC-V平台中实现PCIe MSI中断的系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790530A (en) * 1995-11-18 1998-08-04 Electronics And Telecommunications Research Institute Message-passing multiprocessor system
CN101739369A (zh) * 2008-11-13 2010-06-16 索尼株式会社 中断检测装置和信息处理系统
CN101872330A (zh) * 2009-11-04 2010-10-27 杭州海康威视数字技术股份有限公司 多pcie设备系统中断处理方法
CN102016812A (zh) * 2008-04-28 2011-04-13 惠普开发有限公司 虚拟中断模式接口和用于虚拟化中断模式的方法

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3508206A (en) 1967-05-01 1970-04-21 Control Data Corp Dimensioned interrupt
US5185864A (en) 1989-06-16 1993-02-09 International Business Machines Corporation Interrupt handling for a computing system with logical devices and interrupt reset
US5355503A (en) 1990-05-31 1994-10-11 National Semiconductor Corporation Event driven scanning of data input equipment using multi-input wake-up techniques
US5103446A (en) * 1990-11-09 1992-04-07 Moses Computers, Inc. Local area network adaptive throughput control for instantaneously matching data transfer rates between personal computer nodes
DE69223303T2 (de) 1991-09-27 1998-06-18 Sun Microsystems Inc Verfahren und Gerät für die dynamische Zuweisung von unadressierten Unterbrechungen
US5319752A (en) * 1992-09-18 1994-06-07 3Com Corporation Device with host indication combination
US5367689A (en) 1992-10-02 1994-11-22 Compaq Computer Corporation Apparatus for strictly ordered input/output operations for interrupt system integrity
SG67906A1 (en) * 1993-12-16 1999-10-19 Intel Corp Multiple programmable interrupt controllers in a multi-processor system
US5708814A (en) 1995-11-21 1998-01-13 Microsoft Corporation Method and apparatus for reducing the rate of interrupts by generating a single interrupt for a group of events
US5784649A (en) * 1996-03-13 1998-07-21 Diamond Multimedia Systems, Inc. Multi-threaded FIFO pool buffer and bus transfer control system
US5771387A (en) 1996-03-21 1998-06-23 Intel Corporation Method and apparatus for interrupting a processor by a PCI peripheral across an hierarchy of PCI buses
US5822568A (en) 1996-05-20 1998-10-13 Advanced Micro Devices, Inc. System for improving the real-time functionality of a personal computer which employs an interrupt servicing DMA controller
JP3697831B2 (ja) * 1997-04-18 2005-09-21 株式会社日立製作所 コンピュータシステム
US6170025B1 (en) * 1997-08-29 2001-01-02 Intel Corporation Distributed computer system supporting remote interrupts and lock mechanism
US6308228B1 (en) * 1998-11-23 2001-10-23 Duke University System and method of adaptive message pipelining
US6253275B1 (en) * 1998-11-25 2001-06-26 Advanced Micro Devices, Inc. Interrupt gating method for PCI bridges
US6330630B1 (en) * 1999-03-12 2001-12-11 Intel Corporation Computer system having improved data transfer across a bus bridge
US6845419B1 (en) 2000-01-24 2005-01-18 Freescale Semiconductor, Inc. Flexible interrupt controller that includes an interrupt force register
TW501017B (en) * 2000-04-05 2002-09-01 Via Tech Inc Processing method, chip set and controller for supporting message signaled interrupt
US6629179B1 (en) * 2000-07-31 2003-09-30 Adaptec, Inc. Message signaled interrupt generating device and method
US6920516B2 (en) 2000-08-31 2005-07-19 Hewlett-Packard Development Company, L.P. Anti-starvation interrupt protocol
US7003615B2 (en) * 2002-04-22 2006-02-21 Broadcom Corporation Tracking a non-posted writes in a system using a storage location to store a write response indicator when the non-posted write has reached a target device
US7028122B2 (en) 2002-08-07 2006-04-11 Sun Microsystems, Inc. System and method for processing node interrupt status in a network
US7334086B2 (en) * 2002-10-08 2008-02-19 Rmi Corporation Advanced processor with system on a chip interconnect technology
US7564860B2 (en) * 2003-05-08 2009-07-21 Samsung Electronics Co., Ltd. Apparatus and method for workflow-based routing in a distributed architecture router
US7222262B2 (en) 2003-08-05 2007-05-22 Newisys, Inc. Methods and devices for injecting commands in systems having multiple multi-processor clusters
US7363412B1 (en) * 2004-03-01 2008-04-22 Cisco Technology, Inc. Interrupting a microprocessor after a data transmission is complete
DE602004007489D1 (de) * 2004-05-11 2007-08-23 Sgs Thomson Microelectronics Unterbrechungsbehandlungssystem
US7162559B1 (en) 2005-03-08 2007-01-09 Emc Corporation System for controlling interrupts between input/output devices and central processing units
US7325084B1 (en) 2006-01-03 2008-01-29 Emc Corporation Messages signaling interrupt (MSI) processing system
US7461210B1 (en) * 2006-04-14 2008-12-02 Tilera Corporation Managing set associative cache memory according to entry type
US7496707B2 (en) * 2006-08-22 2009-02-24 International Business Machines Corporation Dynamically scalable queues for performance driven PCI express memory traffic
JP2008090375A (ja) * 2006-09-29 2008-04-17 Hitachi Ltd 割込み制御システム、およびこれを利用した記憶制御システム
US7805556B2 (en) 2007-05-01 2010-09-28 Ricoh Company, Ltd. Interrupt control apparatus, bus bridge, bus switch, image processing apparatus, and interrupt control method
US8478834B2 (en) * 2007-07-12 2013-07-02 International Business Machines Corporation Low latency, high bandwidth data communications between compute nodes in a parallel computer
US8566492B2 (en) 2009-12-31 2013-10-22 Intel Corporation Posting interrupts to virtual processors
US8588228B1 (en) * 2010-08-16 2013-11-19 Pmc-Sierra Us, Inc. Nonvolatile memory controller with host controller interface for retrieving and dispatching nonvolatile memory commands in a distributed manner

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790530A (en) * 1995-11-18 1998-08-04 Electronics And Telecommunications Research Institute Message-passing multiprocessor system
CN102016812A (zh) * 2008-04-28 2011-04-13 惠普开发有限公司 虚拟中断模式接口和用于虚拟化中断模式的方法
CN101739369A (zh) * 2008-11-13 2010-06-16 索尼株式会社 中断检测装置和信息处理系统
CN101872330A (zh) * 2009-11-04 2010-10-27 杭州海康威视数字技术股份有限公司 多pcie设备系统中断处理方法

Also Published As

Publication number Publication date
US20130198432A1 (en) 2013-08-01
WO2013080027A2 (en) 2013-06-06
CN103959267A (zh) 2014-07-30
US9128920B2 (en) 2015-09-08
WO2013080027A3 (en) 2013-08-08

Similar Documents

Publication Publication Date Title
CN103959267B (zh) 用于具有多个总线的pcie电桥的中断处理系统及方法
US7606933B2 (en) Shared memory and high performance communication using interconnect tunneling
JP2005235197A (ja) 複数のマスタを含むサブシステムをオープンコアプロトコルを基盤とするバスに連結するためのバスシステム
JP2006113689A (ja) バスブリッジ装置およびデータ転送方法
CN105765548A (zh) 基于amba的设备中的ioapic中断的支持
EP3176701B1 (en) Systems and methods for transmitting an access request via a flexible register access bus
US20150363166A1 (en) Translation layer for controlling bus access
TW201224764A (en) Apparatus for managing interrupt cause and system for processing interrupt
JP6092351B2 (ja) クロスダイ・インタフェース・スヌープ又はグローバル観測メッセージの順序付け
TWI750386B (zh) 匯流排系統
JP3417448B2 (ja) 情報処理システム
JP2008503833A (ja) 並列通信バスに連結された装置内で割込みメッセージを待ち行列に入れるためのコンピュータシステム及び方法
US20140052879A1 (en) Processor, information processing apparatus, and interrupt control method
CN105022707B (zh) 接口单元装置
JP5079502B2 (ja) 並列通信バスを介して割り込みメッセージを伝送するためのコンピュータシステムおよび方法
WO2024071652A1 (ko) 전자 장치 및 그 제어 방법
JP2006092077A (ja) バスシステム
JP2005301714A (ja) マルチcpuシステム、そのデータ転送方法、及びそのプログラム
JP5282325B2 (ja) ポステッドライトバス制御装置
JP2011107922A (ja) 情報処理システム
KR20070079450A (ko) 이종버스간의 통신 장치 및 방법
JPH01133444A (ja) システムバス制御装置
JP2010224713A (ja) データ転送システム
JP2011018358A5 (zh)
JP2009277004A (ja) データ転送装置及びデータ転送システム

Legal Events

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

Effective date of registration: 20200430

Address after: Singapore City

Patentee after: Marvell Asia Pte. Ltd.

Address before: Ford street, Grand Cayman, Cayman Islands

Patentee before: Kaiwei international Co.

Effective date of registration: 20200430

Address after: Ford street, Grand Cayman, Cayman Islands

Patentee after: Kaiwei international Co.

Address before: Hamilton, Bermuda

Patentee before: Marvell International Ltd.

Effective date of registration: 20200430

Address after: Hamilton, Bermuda

Patentee after: Marvell International Ltd.

Address before: Babado J San Mega Le

Patentee before: MARVELL WORLD TRADE Ltd.

TR01 Transfer of patent right