CN115292219B - 一种在RISC-V平台中实现PCIe MSI中断的系统及方法 - Google Patents

一种在RISC-V平台中实现PCIe MSI中断的系统及方法 Download PDF

Info

Publication number
CN115292219B
CN115292219B CN202211231419.9A CN202211231419A CN115292219B CN 115292219 B CN115292219 B CN 115292219B CN 202211231419 A CN202211231419 A CN 202211231419A CN 115292219 B CN115292219 B CN 115292219B
Authority
CN
China
Prior art keywords
interrupt
module
risc
msi
interruption
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
CN202211231419.9A
Other languages
English (en)
Other versions
CN115292219A (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.)
Shandong Duofang Semiconductor Co ltd
Sanwei Xin'an Technology Co ltd
Original Assignee
Shandong Duofang Semiconductor Co ltd
Sanwei Xin'an Technology 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 Shandong Duofang Semiconductor Co ltd, Sanwei Xin'an Technology Co ltd filed Critical Shandong Duofang Semiconductor Co ltd
Priority to CN202211231419.9A priority Critical patent/CN115292219B/zh
Publication of CN115292219A publication Critical patent/CN115292219A/zh
Application granted granted Critical
Publication of CN115292219B publication Critical patent/CN115292219B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

本发明公开了一种在RISC‑V平台中实现PCIe MSI中断的系统及方法,该系统包括:MSI中断模块、RISC‑V CPU、PCIe IP模块、RISC‑V PLIC中断控制器和数据传输模块;其中:MSI中断模块外置于RISC‑V CPU;RISC‑V CPU为MSI中断模块分配中断ID号;PCIe IP模块接收下游设备发送的PCIe MSI中断,并将其写入至MSI中断模块;MSI中断模块根据RISC‑V CPU分配的中断ID号,对PCIe IP模块写入的PCIe MSI中断进行对比,启动相应中断线,发送中断信号于RISC‑V PLIC中断控制器;RISC‑V PLIC中断控制器接收中断信号,并将中断信号传送于RISC‑V CPU;RISC‑V CPU根据中断信号,选择相应的中断服务程序;该系统采用外置MSI中断模块的方式,配合RISC‑V CPU的PLIC中断控制器与PCIe IP实现了PCIe MSI中断。

Description

一种在RISC-V平台中实现PCIe MSI中断的系统及方法
技术领域
本发明涉及集成电路SOC设计技术领域,特别涉及一种在RISC-V平台中实现PCIeMSI中断的系统及方法。
背景技术
RISC-V做为近几年新兴起的CPU架构,在SOC设计中应用越来越广泛。由于其开源的特点,使得RISC-V在应用领域中,不存在架构授权或者“卡脖子”的风险,将来会逐渐成为SOC设计中的主流CPU。
PCIe是目前CPU连接外设的主流连接总线。其具有总线宽度小,传输带宽大,可靠性高等特点。MSI中断,即基于消息的中断,是PCIe中特定的中断,也是PCIe协议中推荐所使用的中断,可以提高中断处理的性能。虽然RISC-V架构的协议中规定了支持PCIe MSI中断,但是目前市面上主流的RISC-V平台的中断控制器(RISC-V平台中断控制器一般称为PLIC),均不支持PCIe MSI中断。而MSI中断又是PCIe互联结构中,不可缺少的一种处理异常的手段。
发明内容
鉴于上述技术问题,本发明提供至少解决上述部分技术问题的一种在RISC-V平台中实现PCIe MSI中断的系统及方法,该系统采用外置MSI中断模块的方式,配合RISC-V CPU的PLIC中断控制器与PCIe IP,实现了PCIe MSI中断。
为实现上述目的,本发明采取的技术方案为:
第一方面,本发明提供一种在RISC-V平台中实现PCIe MSI中断的系统,该系统包括:MSI中断模块、RISC-V CPU、PCIe IP模块、RISC-V PLIC中断控制器和数据传输模块;其中:
所述MSI中断模块外置于所述RISC-V CPU,用于产生中断信号;
所述RISC-V CPU,用于为所述MSI中断模块分配中断ID号;
所述PCIe IP模块,用于接收下游设备发送的PCIe MSI中断,并将其写入至所述MSI中断模块;
所述MSI中断模块根据RISC-V CPU分配的中断ID号,对所述PCIe IP模块写入的PCIe MSI中断进行对比匹配,启动相应中断线,发送中断信号于所述RISC-V PLIC中断控制器;
所述RISC-V PLIC中断控制器,用于接收所述中断信号,并将所述中断信号传送于所述RISC-V CPU;
所述RISC-V CPU根据所述中断信号,选择相应的中断服务程序;
所述数据传输模块,用于RISC-V CPU、MSI中断模块、PCIe IP模块和RISC-V PLIC中断控制器间的数据传输。
进一步地,所述MSI中断模块包括:接口模块、中断资源池模块、中断写入池模块和厂商ID模块;其中:
所述接口模块,用于提供数据访问接口;
所述中断资源池模块,用于存储所述RISC-V CPU分配给MSI中断模块的中断ID号;
所述中断写入池模块,用于存储所述PCIe IP模块写入到MSI中断模块的中断ID号;
所述厂商ID模块,用于存储厂商信息;
所述中断产生模块,用于将写入所述中断写入池模块的中断ID号与所述中断资源池中的中断ID号进行对比匹配,根据匹配结果,启动相应中断线,产生中断信号。
进一步地,所述接口模块包括以下任一种或多种接口:AXI接口、AHB接口和APB接口。
进一步地,所述RISC-V CPU读取厂商ID,根据不同厂商编写不同驱动,分配不同中断ID号;所述不同中断ID号的数量为128个。
进一步地,所述数据传输模块包括:数据总线、控制总线和MSI中断模块的中断线。
进一步地,所述MSI中断模块的中断线的数量为128根。
进一步地,所述MSI中断模块连接所述数据总线;所述PCIe IP模块连接所述数据总线和所述控制总线;所述RISC-V PLIC中断控制器连接所述MSI中断模块的中断线。
第二方面:本发明提供一种在RISC-V平台中实现PCIe MSI中断的方法,应用上述实施例的系统,实现PCIe MSI中断;该方法包括以下步骤:
在RISC-V CPU外设置MSI中断模块;
所述RISC-V CPU为所述MSI中断模块分配中断ID号;
利用PCIe IP模块接收下游设备发送的PCIe MSI中断,并将其写入至所述MSI中断模块;
所述MSI中断模块根据RISC-V CPU分配的中断ID号,对所述PCIe IP模块写入的PCIe MSI中断进行对比匹配,启动相应中断线,发送中断信号于RISC-V PLIC中断控制器;
RISC-V PLIC中断控制器接收所述中断信号,并将所述中断信号传送于所述RISC-V CPU;
所述RISC-V CPU根据所述中断信号,选择相应的中断服务程序。
与现有技术相比,本发明具有如下有益效果:
1、本发明通过外置MSI中断模块的方式,配合RISC-V CPU的PLIC中断控制器与PCIe IP,实现了PCIe MSI中断。
2、本系统结构设计简单,具有RISC-V平台通用性,可移植性好,具有良好的经济价值。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
图1为本发明实施例提供的在RISC-V平台中实现PCIe MSI中断的系统结构图。
图2为本发明实施例提供的MSI中断模块的组成结构框图。
图3为本发明实施例提供的在RISC-V平台中实现PCIe MSI中断的系统使用流程图。
图4为本发明实施例提供的在RISC-V平台中实现PCIe MSI中断的方法流程图。
具体实施方式
为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“设置有”、“连接”等,应做广义理解,例如“连接”,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例1:
参照图1所示,本发明提供实施例的一种在RISC-V平台中实现PCIe MSI中断的系统,该系统采用外置MSI中断电路的方式,配合RISC-V CPU、PLIC中断控制器与PCIe IP模块共同实现PCIe的MSI中断;该系统主要由MSI中断模块、RISC-V CPU、PCIe IP模块、RISC-VPLIC中断控制器和数据传输模块组成;
下面分别对上述系统的组成结构进行详细的说明:
在本实施例中,数据传输模块包括:数据总线(图1中的最粗线)、控制总线(图1中的中等粗线)和MSI中断模块的中断线(图1中的最细线)。
具体实施时,将MSI中断模块挂在SOC的数据总线上;将PCIe IP模块挂在数据总线与控制总线上(PCIe的初始化需要控制总线参与);MSI中断模块的中断线(128根,可根据中断ID号的数量进行调整)与RISC-V的PLIC中断控制器连接。
进一步地,在图1中,S口代表AXI的Slave接口,M口代表AXI的Master接口;SL口代表控制的AXI-Lite Slave接口;MSI中断模块上另一接口(图1中左边)为中断线接口。
如图2所示,在本实施例中,MSI中断模块包括:接口模块,中断资源池模块,中断写入池模块、厂商ID模块与中断产生模块组成。此为本发明的核心所在。其中接口模块用于提供数据访问接口,接口模块包括但不限于:AXI、AHB和APB等常见的数据接口(本实施例中优选的为AXI接口,可根据系统总线不同,调整为AHB和APB等常见的数据接口);中断资源池模块,用于存储分配给MSI模块的中断号;中断写入池模块,用于存储PCIe IP写入到MSI模块的中断号;厂商ID模块用于存储厂商信息;中断产生模块,用于将写入到中断写入池的中断ID号与中断资源池中的进行对比,从而启动相应的中断,发送中断信号(通过中断线传输给RISC-V PLIC中断控制器);在本实施例中,优选的,共128个中断。
在本实施例中,上述的RISC-V CPU用于通过软件为上述的MSI中断模块分配中断ID号,RISC-V CPU至少可分配128个中断ID号给MSI中断模块,这里优选的分配128个;中断ID号通过数据总线下发至MSI中断模块。
在本实施例中,上述的PCIe IP模块用于接收下游设备发送的PCIe MSI中断,并将其写入至MSI中断模块中的中断写入池模块;写入通过数据总线进行。
在本实施例中,上述的RISC-V PLIC中断控制器用于接收中断信号,并将中断信号传送于RISC-V CPU进行处理;
在本实施例中,该系统的使用流程可优选的按照附图3中所示进行,具体如下;
1)RISC-V CPU读取厂商ID,可根据不同厂商编写不同驱动,分配不同中断号(通过数据总线);
2)分配中断资源池,假设分配0-127号中断给中断资源池(通过数据总线)。CPU检查分配是否成功,若成功则执行下一步,若失败则再重复三次,若都失败,CPU软件中断报错;若成功则执行下一步(这里假设成功分配中断)。
3)初始化PCIe IP模块进行常规数据流发送,等待PCIe MSI中断的到来(通过数据总线与控制总线);
4)如有下游PCIe MSI中断传递上来,由PCIe IP模块负责捕获,这里假设捕获了10号中断;
5)PCIe IP模块将捕获到的中断ID号写入到MSI中断模块中的中断写入池中(通过数据总线);
6)MSI中断模块中的中断产生模块对比中断池资源池所分配的中断号(0~127)和中断写入池中的中断ID号(10),从而计算出需要启动第10号中断线,从而拉高相应的信号(通过中断线)。此处若PCIe IP模块写入的中断ID号不是所分配的中断ID号,则MSI中断模块不响应该中断。
7)RISC-V PLIC中断控制器接收到相关中断信号,传递给RISC-V CPU;
8)RISC-V CPU根据中断线(中断信号),跳相应的中断服务程序,从而结束本次中断。
由上可知,本发明实施例提供的一种在RISC-V平台中实现PCIe MSI中断的系统,采用外置MSI中断电路的方式,配合RISC-V CPU的PLIC中断控制平台与PCIe IP 共同实现了PCIe MSI中断;该系统电路设计简单,具有RISC-V平台通用性,可移植性好,具有良好的经济价值。
实施例2:
如图4所示,本发明实施例还提供的一种在RISC-V平台中实现PCIe MSI中断的方法,应用实施例1的系统,该方法包括以下步骤:
S1、在RISC-V CPU外设置MSI中断模块;
S2、RISC-V CPU为MSI中断模块分配中断ID号;
S3、利用PCIe IP模块接收下游设备发送的PCIe MSI中断,并将其写入至MSI中断模块;
S4、MSI中断模块根据RISC-V CPU分配的中断ID号,对PCIe IP模块写入的PCIeMSI中断进行对比匹配,启动相应中断线,发送中断信号于RISC-V PLIC中断控制器;
S5、RISC-V PLIC中断控制器接收中断信号,并将中断信号传送于RISC-V CPU;
S6、RISC-V CPU根据中断信号,选择相应的中断服务程序。
该方法,针对RISC-V 平台上没有集成MSI这一问题,设计了CPU外置的MSI中断模块,配合RISC-V提供的PLIC中断平台,即可实现PCIe MSI中断。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (7)

1.一种在RISC-V平台中实现PCIe MSI中断的系统,其特征在于,该系统包括:MSI中断模块、RISC-V CPU、PCIe IP模块、RISC-V PLIC中断控制器和数据传输模块;其中:
所述MSI中断模块外置于所述RISC-V CPU,用于产生中断信号;
所述RISC-V CPU,用于为所述MSI中断模块分配中断ID号;
所述PCIe IP模块,用于接收下游设备发送的PCIe MSI中断,并将其写入至所述MSI中断模块;
所述MSI中断模块根据RISC-V CPU分配的中断ID号,对所述PCIe IP模块写入的PCIeMSI中断进行对比匹配,启动相应中断线,发送中断信号于所述RISC-V PLIC中断控制器;
所述RISC-V PLIC中断控制器,用于接收所述中断信号,并将所述中断信号传送于所述RISC-V CPU;
所述RISC-V CPU根据所述中断信号,选择相应的中断服务程序;
所述数据传输模块,用于RISC-V CPU、MSI中断模块、PCIe IP模块和RISC-V PLIC中断控制器间的数据传输;
所述MSI中断模块包括:接口模块、中断资源池模块、中断写入池模块、厂商 ID模块和中断产生模块;其中:
所述接口模块,用于提供数据访问接口;
所述中断资源池模块,用于存储所述RISC-V CPU分配给MSI中断模块的中断ID号;
所述中断写入池模块,用于存储所述PCIe IP模块写入到MSI中断模块的中断ID号;
所述厂商ID模块,用于存储厂商信息;
所述中断产生模块,用于将写入所述中断写入池模块的中断ID号与所述中断资源池中的中断ID号进行对比匹配,根据匹配结果,启动相应中断线,产生中断信号。
2.根据权利要求1所述的一种在RISC-V平台中实现PCIe MSI中断的系统,其特征在于,所述接口模块包括以下任一种或多种接口:AXI接口、AHB接口和APB接口。
3.根据权利要求1所述的一种在RISC-V平台中实现PCIe MSI中断的系统,其特征在于,所述RISC-V CPU读取厂商ID,根据不同厂商编写不同驱动,分配不同中断ID号;所述不同中断ID号的数量为128个。
4.根据权利要求1所述的一种在RISC-V平台中实现PCIe MSI中断的系统,其特征在于,所述数据传输模块包括:数据总线、控制总线和MSI中断模块的中断线。
5.根据权利要求4所述的一种在RISC-V平台中实现PCIe MSI中断的系统,其特征在于,所述MSI中断模块的中断线的数量为128根。
6.根据权利要求4所述的一种在RISC-V平台中实现PCIe MSI中断的系统,其特征在于,所述MSI中断模块连接所述数据总线;所述PCIe IP模块连接所述数据总线和所述控制总线;所述RISC-V PLIC中断控制器连接所述MSI中断模块的中断线。
7.一种在RISC-V平台中实现PCIe MSI中断的方法,其特征在于,应用如权利要求1-6任一项所述的在RISC-V平台中实现PCIe MSI中断的系统,实现PCIe MSI中断;该方法包括以下步骤:
在RISC-V CPU外设置MSI中断模块;
所述RISC-V CPU为所述MSI中断模块分配中断ID号;
利用PCIe IP模块接收下游设备发送的PCIe MSI中断,并将其写入至所述MSI中断模块;
所述MSI中断模块根据RISC-V CPU分配的中断ID号,对所述PCIe IP模块写入的PCIeMSI中断进行对比匹配,启动相应中断线,发送中断信号于RISC-V PLIC中断控制器;
RISC-V PLIC中断控制器接收所述中断信号,并将所述中断信号传送于所述RISC-VCPU;
所述RISC-V CPU根据所述中断信号,选择相应的中断服务程序。
CN202211231419.9A 2022-10-10 2022-10-10 一种在RISC-V平台中实现PCIe MSI中断的系统及方法 Active CN115292219B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211231419.9A CN115292219B (zh) 2022-10-10 2022-10-10 一种在RISC-V平台中实现PCIe MSI中断的系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211231419.9A CN115292219B (zh) 2022-10-10 2022-10-10 一种在RISC-V平台中实现PCIe MSI中断的系统及方法

Publications (2)

Publication Number Publication Date
CN115292219A CN115292219A (zh) 2022-11-04
CN115292219B true CN115292219B (zh) 2023-01-10

Family

ID=83819457

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211231419.9A Active CN115292219B (zh) 2022-10-10 2022-10-10 一种在RISC-V平台中实现PCIe MSI中断的系统及方法

Country Status (1)

Country Link
CN (1) CN115292219B (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9128920B2 (en) * 2011-11-30 2015-09-08 Marvell World Trade Ltd. Interrupt handling systems and methods for PCIE bridges with multiple buses
CN109977061B (zh) * 2017-12-28 2023-04-11 中兴通讯股份有限公司 一种中断处理方法及中断处理装置
TWI764082B (zh) * 2019-02-14 2022-05-11 美商萬國商業機器公司 用於經引導中斷虛擬化之中斷信號之方法、電腦系統及電腦程式產品
CN110399324A (zh) * 2019-06-28 2019-11-01 苏州浪潮智能科技有限公司 中断转换器及中断转换方法
DE102021107336A1 (de) * 2021-03-24 2022-09-29 Infineon Technologies Ag VORRICHTUNGEN, SYSTEME, UND VERFAHREN FÜR PCIe ENDPUNKT INTERRUPT

Also Published As

Publication number Publication date
CN115292219A (zh) 2022-11-04

Similar Documents

Publication Publication Date Title
US6353866B1 (en) Apparatus and method for initializing a universal serial bus device
EP1018687B1 (en) A port manager controller for connecting various function modules
US6205501B1 (en) Apparatus and method for handling universal serial bus control transfers
US8412869B2 (en) Redundant storage virtualization computer system
US8713209B2 (en) System, apparatus, and method for fast startup of USB devices
JP3636157B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
US20070198798A1 (en) Storage control apparatus and method thereof
US6442628B1 (en) Method and system for automatically determining maximum data throughput over a bus
JPH10503041A (ja) バス結合遅延時の調停方式
JPH0219954A (ja) データ処理システム及びデータ通信バス・システム
US20030046460A1 (en) Disk array system and a method for controlling the disk array system
US7809068B2 (en) Integrated circuit capable of independently operating a plurality of communication channels
EP0855819A1 (en) Network switch stacking mechanism
JP3609051B2 (ja) Usb−hubデバイスおよびその制御方法
CN112084128A (zh) 消息中断通信方法、计算机设备和存储介质
CN115292219B (zh) 一种在RISC-V平台中实现PCIe MSI中断的系统及方法
JP3636160B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2005504392A (ja) バス・システムおよびバス・インターフェース
US6889265B2 (en) Apparatus and method to allow and synchronize schedule changes in a USB enhanced host controller
CN116594951B (zh) 一种基于fpga的数据传输系统及方法
JPH1055331A (ja) プログラム可能な読み出し/書き込みアクセス信号とその方法
CN116566761B (zh) Spi双主机共享仲裁系统及方法
JPH0728289B2 (ja) ネットワ−ク制御システム
JP2005504393A (ja) バス・システムおよびバス・インターフェース
US7346714B2 (en) Notification of completion of communication with a plurality of data storage areas

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