CN105389275B - 基于AMBA架构的虚拟PCIe‑PCI桥接系统 - Google Patents

基于AMBA架构的虚拟PCIe‑PCI桥接系统 Download PDF

Info

Publication number
CN105389275B
CN105389275B CN201510790581.8A CN201510790581A CN105389275B CN 105389275 B CN105389275 B CN 105389275B CN 201510790581 A CN201510790581 A CN 201510790581A CN 105389275 B CN105389275 B CN 105389275B
Authority
CN
China
Prior art keywords
pcie
amba
request
dma
read
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
CN201510790581.8A
Other languages
English (en)
Other versions
CN105389275A (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.)
Wuxi Jiangnan Computing Technology Institute
Original Assignee
Wuxi Jiangnan Computing Technology Institute
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 Wuxi Jiangnan Computing Technology Institute filed Critical Wuxi Jiangnan Computing Technology Institute
Priority to CN201510790581.8A priority Critical patent/CN105389275B/zh
Publication of CN105389275A publication Critical patent/CN105389275A/zh
Application granted granted Critical
Publication of CN105389275B publication Critical patent/CN105389275B/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/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • 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/0024Peripheral component interconnect [PCI]

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

本发明提供了一种基于AMBA架构的虚拟PCIe‑PCI桥接系统,包括:配置读写模块、中断模块、IO请求模块、IO响应模块、DMA请求模块、DMA响应模块、AMBA路由表模块以及PCIe‑PCI桥接口模块。

Description

基于AMBA架构的虚拟PCIe-PCI桥接系统
技术领域
本发明属于计算机系统设计领域,具体涉及基于AMBA架构的虚拟PCIe-PCI桥接系统。
背景技术
目前计算机外围系统中PCIe总线广泛应用,PCIe总线规范已成计算机系统外围互连总线事实上的标准,几乎所有的商业级或者工业级的计算机生产厂商都在其通用计算机系统中提供标准的PCIe总线。同时,AMBA(Advanced Microcontroller Bus Architecture)总线作为嵌入式系统的通用总线,在便携、终端等电子产品中作为核心集成电路芯片的内部总线使用也非常广泛,但是要将AMBA总线直接接入通用计算机外围系统,目前在业界还没有通用的规范来实现,对比相关领域其他类似技术,他们都是基于单个设备实现AMBA接口接入PCIe总线。
发明内容
本发明所要解决的技术问题是针对现有技术中存在上述缺陷,提供一种虚拟PCIe-PCI桥技术,实现了将AMBA总线系统的所有IO(输入输出)设备直接接入基于PCIe总线的通用计算机外围系统。
根据本发明,提供了一种基于AMBA架构的虚拟PCIe-PCI桥接系统,包括:配置读写模块、中断模块、IO请求模块、IO响应模块、DMA请求模块、DMA响应模块、AMBA路由表模块以及PCIe-PCI桥接口模块。
优选地,配置读写模块用于接收来自PCIE-AMBA桥的PCIE接口的设备配置读写请求并且将设备配置读写请求发送到相应的目标寄存器,而且接收各设备配置寄存器的读写响应并且向PCIE-AMBA桥的PCIE接口发送读写响应。
优选地,中断模块用于收集来自中断控制器的中断请求,并按照PCIE要求的方式发出PCIE中断。
优选地,IO请求模块用于接收来自PCIE-AMBA桥的PCIE接口的PCIE IO读写请求,生成AMBA请求事务标识号,写PIO请求悬挂缓冲,根据PCIE请求地址偏移查询AMBA路由表,获得AMBA请求地址,形成发给AMBA接口的读写请求。
优选地,IO响应模块用于接收来自AMBA接口的IO读写请求响应,根据响应的AMBA标识号查询PIO请求悬挂缓冲,并释放缓冲条目,组成PCIE完成事务包,而且将组成的PCIE完成事务包发送至PCIE接口。
优选地,DMA请求模块用于接收来自AMBA接口的DMA读写请求,生成PCIE请求事务标签,写DMA读请求悬挂缓冲,根据AMBA请求地址偏移和标识号查询AMBA路由表以获得对应的PCIE地址偏移和请求方标识号。
优选地,DMA响应模块用于接收来自PCIE接口的DMA读事务请求,根据PCIE事务标签索引查询DMA读请求悬挂缓冲以获得该DMA读事务请求对应的AMBA标识号和组建AMBA完成包所需要的其他信息。
优选地,AMBA路由表模块用于存储AMBA地址偏移、PCIE地址偏移、AMBA标识号和PCIE请求方标识号,使得来自PCIE的IO请求通过查询该表而生成组建AMBA请求包所需的地址信息和PCIE完成符标识号,而且使得来自AMBA的DMA请求通过查询该表而生成组建PCIE请求包所需的地址和PCIE请求方标识号信息。
优选地,优选地,PCIe-PCI桥接口模块作为与PCIe开关互连的接口,用于接收系统IO事务,通过执行规则过滤将系统IO事务分发给相应模块,而且用于向系统发送DMA请求。
优选地,对于DMA写请求,DMA请求模块查询相关设备配置空间的最大有效载荷尺寸值,如果最大有效载荷尺寸小于DMA写请求字节数,将DMA写请求拆分成多个PCIE存储器写事务。
根据本发明的基于AMBA架构的虚拟PCIe-PCI桥接系统能够实现AMBA系统总线的所有设备直接接入基于PCIe总线的通用计算机外围系统。
附图说明
结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中:
图1示意性地示出了根据本发明优选实施例的基于AMBA架构的虚拟PCIe-PCI桥接系统的功能框图。
需要说明的是,附图用于说明本发明,而非限制本发明。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。
具体实施方式
为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附图对本发明的内容进行详细描述。
图1示意性地示出了根据本发明优选实施例的基于AMBA架构的虚拟PCIe-PCI桥接系统的功能框图。
如图1所示,根据本发明优选实施例的基于AMBA架构的虚拟PCIe-PCI桥接系统包括:
配置读写模块10:用于接收来自PCIE-AMBA桥的PCIE接口的设备配置读写请求并且将设备配置读写请求发送到相应的目标寄存器,而且接收各设备配置寄存器的读写响应并且向PCIE-AMBA桥的PCIE接口发送读写响应;实现系统可见的IO设备的TYPE0配置的基本空间。
中断模块20:用于收集来自中断控制器的中断请求,并按照PCIE要求的方式(例如MSI方式或INTx方式)发出PCIE中断。
IO请求模块30:用于接收来自PCIE-AMBA桥的PCIE接口的PCIE IO读写请求,生成AMBA请求事务标识号(例如,AMBA请求事务标识号的大小为4位),写PIO(ProgrammableInput/Output,可编程输入输出)请求悬挂缓冲(由此保存组建完成包所需信息,例如PIO请求悬挂缓冲的结构为FIFO结构),根据PCIE请求地址偏移查询AMBA路由表,获得AMBA请求地址,形成发给AMBA接口的读写请求。
IO响应模块40:用于接收来自AMBA接口的IO读写请求响应,根据响应的AMBA标识号查询PIO请求悬挂缓冲,并释放缓冲条目,组成PCIE完成事务包,而且将组成的PCIE完成事务包发送至PCIE接口。
DMA请求模块50:用于接收来自AMBA接口的DMA读写请求(优选地,DMA请求模块对DMA写请求立即返回响应),生成PCIE请求事务标签,写DMA读请求悬挂缓冲(由此保存组建AMBA读响应包所需信息,索引是PCIE标签),根据AMBA请求地址偏移和标识号(例如,[8:5]对应各个AXI主端口)查询AMBA路由表以获得对应的PCIE地址偏移和请求方标识号。更具体地,对于DMA写请求,DMA请求模块查询相关设备配置空间的最大有效载荷尺寸(Max_Payload_Size)值,如果最大有效载荷尺寸小于DMA写请求字节数,需要将DMA写请求拆分成多个PCIE存储器写事务。最终,DMA读写请求都转换成PCIE存储器读写事务发送到PCIE接口。
DMA响应模块60:用于接收来自PCIE接口的DMA读事务请求,根据PCIE事务标签索引查询DMA读请求悬挂缓冲以获得该DMA读事务请求对应的AMBA标识号和组建AMBA完成包所需要的其他信息;而且,如果出现相同的事务标识号,则需要在DMA读请求悬挂缓冲中收集响应,并且按照DMA读事务请求的顺序返回响应到AXI接口;优选地,可以要求设备发出有限数目的相同标识号的事务(即悬挂事务数);例如SATA设备(Serial ATA,即串行ATA)可以设置为8个(对应标识号低4位为0和1),GMAC设备可以设置为4+4(对应标识号低4位分别为0和1)。比如,AMBA桥的AAK模块负责各个设备这些DMA读响应的保序发出给AXI总线;如果返回多个完成请求,通过悬挂缓冲的信息确认读响应收齐后释放悬挂缓冲条目。最后组建AMBA响应包发送到AMBA接口。
AMBA路由表模块70:用于存储AMBA地址偏移、PCIE地址偏移、AMBA标识号和PCIE请求方标识号,使得来自PCIE的IO请求通过查询该表而生成组建AMBA请求包所需的地址信息和PCIE完成符标识号,而且使得来自AMBA的DMA请求通过查询该表而生成组建PCIE请求包所需的地址和PCIE请求方标识号信息。
PCIe-PCI桥接口模块80:作为与PCIe开关互连的接口,用于接收系统IO事务,通过执行规则过滤将系统IO事务分发给相应模块,而且用于向系统发送DMA请求。
本发明突破了PCIe点到点限制的PCI总线下多个PCIe设备直接挂接;在AMBA的请求无序架构下,PCI要求的序的实现:a)保证语义的NP不可穿越P----基于年龄堆栈的重排序机制;b)保证语义的中断驱动DMA写请求;c)保证无死锁的P可穿越NP----基于独立缓冲的向量仲裁机制。
优选地,AMBA架构下的PCIe-PCI桥兼容性支持:MPS、MRRS、中断、ID路由。
优选地,本发明支持PCI LegacyIO多向路由:VGA兼容、PS2设备和LPC设备的双LegacyIO。
本发明能够使得多设备、乱序的AMBA系统直接接入PCI总线拓扑。而且,本发明支持最多32个物理AMBA设备直接映射为PCI设备、支持AMBA设备的请求响应满足PCI序的要求,支持所有设备的PCI系统兼容。
此外,需要说明的是,除非特别指出,否则说明书中的术语“第一”、“第二”、“第三”等描述仅仅用于区分说明书中的各个组件、元素、步骤等,而不是用于表示各个组件、元素、步骤之间的逻辑关系或者顺序关系等。
可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。

Claims (1)

1.一种基于AMBA架构的虚拟PCIe-PCI桥接系统,其特征在于包括:配置读写模块、中断模块、IO请求模块、IO响应模块、DMA请求模块、DMA响应模块、AMBA路由表模块以及PCIe-PCI桥接口模块;
其中,配置读写模块用于接收来自PCIE-AMBA桥的PCIE接口的设备配置读写请求并且将设备配置读写请求发送到相应的目标寄存器,而且接收各设备配置寄存器的读写响应并且向PCIE-AMBA桥的PCIE接口发送读写响应;
中断模块用于收集来自中断控制器的中断请求,并按照PCIE要求的方式发出PCIE中断;
IO请求模块用于接收来自PCIE-AMBA桥的PCIE接口的PCIE IO读写请求,生成AMBA请求事务标识号,写PIO请求悬挂缓冲,根据PCIE请求地址偏移查询AMBA路由表,获得AMBA请求地址,形成发给AMBA接口的读写请求;
IO响应模块用于接收来自AMBA接口的IO读写请求响应,根据响应的AMBA标识号查询PIO请求悬挂缓冲,并释放缓冲条目,组成PCIE完成事务包,而且将组成的PCIE完成事务包发送至PCIE接口;
DMA请求模块用于接收来自AMBA接口的DMA读写请求,生成PCIE请求事务标签,写DMA读请求悬挂缓冲,根据AMBA请求地址偏移和标识号查询AMBA路由表以获得对应的PCIE地址偏移和请求方标识号;
DMA响应模块用于接收来自PCIE接口的DMA读事务请求,根据PCIE事务标签索引查询DMA读请求悬挂缓冲以获得该DMA读事务请求对应的AMBA标识号和组建AMBA完成包所需要的其他信息;
AMBA路由表模块用于存储AMBA地址偏移、PCIE地址偏移、AMBA标识号和PCIE请求方标识号,使得来自PCIE的IO请求通过查询该表而生成组建AMBA请求包所需的地址信息和PCIE完成符标识号,而且使得来自AMBA的DMA请求通过查询该表而生成组建PCIE请求包所需的地址和PCIE请求方标识号信息;
PCIe-PCI桥接口模块作为与PCIe开关互连的接口,用于接收系统IO事务,通过执行规则过滤将系统IO事务分发给相应模块,而且用于向系统发送DMA请求;
DMA请求模块查询相关设备配置空间的最大有效载荷尺寸值,如果最大有效载荷尺寸小于DMA写请求字节数,将DMA写请求拆分成多个PCIE存储器写事务。
CN201510790581.8A 2015-11-17 2015-11-17 基于AMBA架构的虚拟PCIe‑PCI桥接系统 Active CN105389275B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510790581.8A CN105389275B (zh) 2015-11-17 2015-11-17 基于AMBA架构的虚拟PCIe‑PCI桥接系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510790581.8A CN105389275B (zh) 2015-11-17 2015-11-17 基于AMBA架构的虚拟PCIe‑PCI桥接系统

Publications (2)

Publication Number Publication Date
CN105389275A CN105389275A (zh) 2016-03-09
CN105389275B true CN105389275B (zh) 2018-02-06

Family

ID=55421576

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510790581.8A Active CN105389275B (zh) 2015-11-17 2015-11-17 基于AMBA架构的虚拟PCIe‑PCI桥接系统

Country Status (1)

Country Link
CN (1) CN105389275B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997000480A1 (en) * 1995-06-15 1997-01-03 Intel Corporation Architecture for an i/o processor that integrates a pci to pci bridge
CN1365060A (zh) * 2001-01-09 2002-08-21 深圳市中兴集成电路设计有限责任公司 多总线系统中提高桥接效率的方法与多端口pci桥结构
CN102184151A (zh) * 2011-04-29 2011-09-14 杭州华三通信技术有限公司 Pci-e转pci桥装置及其主动预取数据的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997000480A1 (en) * 1995-06-15 1997-01-03 Intel Corporation Architecture for an i/o processor that integrates a pci to pci bridge
CN1365060A (zh) * 2001-01-09 2002-08-21 深圳市中兴集成电路设计有限责任公司 多总线系统中提高桥接效率的方法与多端口pci桥结构
CN102184151A (zh) * 2011-04-29 2011-09-14 杭州华三通信技术有限公司 Pci-e转pci桥装置及其主动预取数据的方法

Also Published As

Publication number Publication date
CN105389275A (zh) 2016-03-09

Similar Documents

Publication Publication Date Title
US10922259B2 (en) System and method for extended peripheral component interconnect express fabrics
US8683110B2 (en) I/O system and I/O control method
ES2761927T3 (es) Método y aparato para extender el dominio PCIE
US20170118115A1 (en) Switching device, computer system, method, and program
CN105389276B (zh) 一种基于amba总线架构的lpc主机控制器装置
US9223737B1 (en) Computer interconnect isolation
US20140173167A1 (en) Pci express switch and computer system using the same
CN112912863A (zh) 外围组件互连(PCI)背板连接性芯片上系统(SoC)
CN105653481B (zh) 基于PCIe总线的数据传输方法和装置
US20120096199A1 (en) Bus system including id converter and converting method thereof
CN105389275B (zh) 基于AMBA架构的虚拟PCIe‑PCI桥接系统
CN101676894B (zh) 面向集中地址译码的非pci片上总线的pci虚拟化装置及方法
CN103246626A (zh) 大规模i/o共享系统pci桥非预取访存空间扩展方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant