基于AMBA架构的虚拟PCIe-PCI桥接系统的制作方法

文档序号:9631504阅读:728来源:国知局
基于AMBA架构的虚拟PCIe-PCI桥接系统的制作方法
【技术领域】
[0001]本发明属于计算机系统设计领域,具体涉及基于AMBA架构的虚拟PCIe-PCI桥接系统。
【背景技术】
[0002]目前计算机外围系统中PCIe总线广泛应用,PCIe总线规范已成计算机系统外围互连总线事实上的标准,几乎所有的商业级或者工业级的计算机生产厂商都在其通用计算机系统中提供标准的PCIe总线。同时,AMBA (Advanced Microcontroller BusArchitecture)总线作为嵌入式系统的通用总线,在便携、终端等电子产品中作为核心集成电路芯片的内部总线使用也非常广泛,但是要将AMBA总线直接接入通用计算机外围系统,目前在业界还没有通用的规范来实现,对比相关领域其他类似技术,他们都是基于单个设备实现AMBA接口接入PCIe总线。

【发明内容】

[0003]本发明所要解决的技术问题是针对现有技术中存在上述缺陷,提供一种虚拟PCIe-PCI桥技术,实现了将AMBA总线系统的所有10(输入输出)设备直接接入基于PCIe总线的通用计算机外围系统。
[0004]根据本发明,提供了一种基于AMBA架构的虚拟PCIe-PCI桥接系统,包括:配置读写模块、中断模块、10请求模块、10响应模块、DMA请求模块、DMA响应模块、AMBA路由表模块以及PCIe-PCI桥接口模块。
[0005]优选地,配置读写模块用于接收来自PCIE-AMBA桥的PCIE接口的设备配置读写请求并且将设备配置读写请求发送到相应的目标寄存器,而且接收各设备配置寄存器的读写响应并且向PCIE-AMBA桥的PCIE接口发送读写响应。
[0006]优选地,中断模块用于收集来自中断控制器的中断请求,并按照PCIE要求的方式发出PCIE中断。
[0007]优选地,10请求模块用于接收来自PCIE-AMBA桥的PCIE接口的PCIE 10读写请求,生成AMBA请求事务标识号,写ΡΙ0请求悬挂缓冲,根据PCIE请求地址偏移查询AMBA路由表,获得AMBA请求地址,形成发给AMBA接口的读写请求。
[0008]优选地,10响应模块用于接收来自AMBA接口的10读写请求响应,根据响应的AMBA标识号查询ΡΙ0请求悬挂缓冲,并释放缓冲条目,组成PCIE完成事务包,而且将组成的PCIE完成事务包发送至PCIE接口。
[0009]优选地,DMA请求模块用于接收来自AMBA接口的DMA读写请求,生成PCIE请求事务标签,写DMA读请求悬挂缓冲,根据AMBA请求地址偏移和标识号查询AMBA路由表以获得对应的PCIE地址偏移和请求方标识号。
[0010]优选地,DMA响应模块用于接收来自PCIE接口的DMA读事务请求,根据PCIE事务标签索引查询DMA读请求悬挂缓冲以获得该DMA读事务请求对应的AMBA标识号和组建AMBA完成包所需要的其他信息。
[0011]优选地,AMBA路由表模块用于存储AMBA地址偏移、PCIE地址偏移、AMBA标识号和PCIE请求方标识号,使得来自PCIE的10请求通过查询该表而生成组建AMBA请求包所需的地址信息和PCIE完成符标识号,而且使得来自AMBA的DMA请求通过查询该表而生成组建PCIE请求包所需的地址和PCIE请求方标识号信息。
[0012]优选地,优选地,PCIe-PCI桥接口模块作为与PCIe开关互连的接口,用于接收系统10事务,通过执行规则过滤将系统10事务分发给相应模块,而且用于向系统发送DMA请求。
[0013]优选地,对于DMA写请求,DMA请求模块查询相关设备配置空间的最大有效载荷尺寸值,如果最大有效载荷尺寸小于DMA写请求字节数,将DMA写请求拆分成多个PCIE存储器写事务。
[0014]根据本发明的基于AMBA架构的虚拟PCIe-PCI桥接系统能够实现AMBA系统总线的所有设备直接接入基于PCIe总线的通用计算机外围系统。
【附图说明】
[0015]结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中:
[0016]图1示意性地示出了根据本发明优选实施例的基于AMBA架构的虚拟PCIe-PCI桥接系统的功能框图。
[0017]需要说明的是,附图用于说明本发明,而非限制本发明。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。
【具体实施方式】
[0018]为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附图对本发明的内容进行详细描述。
[0019]图1示意性地示出了根据本发明优选实施例的基于AMBA架构的虚拟PCIe-PCI桥接系统的功能框图。
[0020]如图1所示,根据本发明优选实施例的基于AMBA架构的虚拟PCIe-PCI桥接系统包括:
[0021]配置读写模块10:用于接收来自PCIE-AMBA桥的PCIE接口的设备配置读写请求并且将设备配置读写请求发送到相应的目标寄存器,而且接收各设备配置寄存器的读写响应并且向PCIE-AMBA桥的PCIE接口发送读写响应;实现系统可见的10设备的ΤΥΡΕ0配置的基本空间。
[0022]中断模块20:用于收集来自中断控制器的中断请求,并按照PCIE要求的方式(例如MSI方式或INTx方式)发出PCIE中断。
[0023]10请求模块30:用于接收来自PCIE-AMBA桥的PCIE接口的PCIE 10读写请求,生成AMBA请求事务标识号(例如,AMBA请求事务标识号的大小为4位),写P1(Progra_ableInput/Output,可编程输入输出)请求悬挂缓冲(由此保存组建完成包所需信息,例如ΡΙ0请求悬挂缓冲的结构为FIFO结构),根据PCIE请求地址偏移查询AMBA路由表,获得AMBA请求地址,形成发给AMBA接口的读写请求。
[0024]10响应模块40:用于接收来自AMBA接口的10读写请求响应,根据响应的AMBA标识号查询ΡΙ0请求悬挂缓冲,并释放缓冲条目,组成PCIE完成事务包,而且将组成的PCIE完成事务包发送至PCIE接口。
[0025]DMA请求模块50:用于接收来自AMBA接口的DMA读写请求(优选地,DMA请求模块对DMA写请求立即返回响应),生成PCIE请求事务标签,写DMA读请求悬挂缓冲(由此保存组建AMBA读响应包所需信息,索引是PCIE标签),根据AMBA请求地址偏移和标识号(例如,[8:5]对应各个AXI主端口)查询AMBA路由表以获得对应的PCIE地址偏移和请求方标识号。更具体地,对于DMA写请求,DMA请求模块查询相关设备配置空间的最大有效载荷尺寸(Max_Payload_Size)值,如
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1