大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。
PCI总线是一条共享总线,在一条PCI总线上可以挂接多个PCI设备。这些PCI设备通过一系列信号与PCI总线相连,这些信号由地址/数据信号、控制信号、仲裁信号、中断信号等多种信号组成。
PCI设备都有独立的配置空间,HOST主桥通过配置读写总线事务访问这段空间。PCI总线规定了三种类型的PCI配置空间,分别是PCI Agent设备使用的配置空间,PCI桥使用的配置空间和Cardbus桥片使用的配置空间。
PCI是外围设备互连(Peripheral Component Interconnect)的简称,作为一种通用的总线接口标准,它已经普遍使用在了计算机中。PCI总线常见于x86体系,本文默认面向的体系为x86,注意x86架构下IO与内存是独立编址的。
总线的基本任务是实现数据传送,将一组数据从一个设备传送到另一个设备,当然总线也可以将一个设备的数据广播到多个设备。在处理器系统中,这些数据传送都要依赖一定的规则,PCI总线并不例外。
PCI(Peripheral Component Interconnect)总线的诞生与PC(Personal Computer)的蓬勃发展密切相关。在处理器体系结构中,PCI总线属于局部总线(Local Bus)。局部总线作为系统总线的延伸,主要功能是为了连接外部设备。
最近在学习驱动开发过程中涉及到PCI相关知识,在网上看了很多文章,良莠不齐,我总结一下比较好的文章分享给大家,那就从源头开始说起。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huangweiqing80/article/details/83347495
HOST主桥的实现因处理器系统而异。PowerPC处理器和x86处理器的HOST主桥除了集成方式不同之外,其实现机制也有较大差异。但是这些HOST主桥所完成的最基本功能依然是分离存储器域与PCI总线域,完成PCI总线域到存储器域,存储器域到PCI总线域之间的数据传递,并管理PCI设备的配置空间。
PCI,Peripheral Component Interconnect,在PC中广泛使用,几乎所有的主板产品上都带有这种插槽,主要用于连接显卡、网卡、声卡等外设
最近有很多大侠在交流群里讨论PCI总线,PCI作为高速接口之一,在当下的FPGA产品设计研发中,地位举足轻重,应用广泛,今天给大侠带来PCI Express 系列连载,今天带来第十五篇,预读机制,包括软件预读、硬件预读、PCI总线的预读机制相关内容。希望对各位大侠的学习有参考价值,话不多说,上货。
自PC在1981年被IBM发明以来,主板上都有扩展槽用于扩充计算机功能。现在最常见的扩展槽是PCIe插槽,实际上在你看不见的计算机主板芯片内部,各种硬件控制模块大部分也是以PCIe设备的形式挂载到了一颗或者几颗PCI/PCIe设备树上。固件和操作系统正是通过枚举设备树们才能发现绝大多数即插即用(PNP)设备的。那究竟什么是PCI呢?
PCI、PCI-X、PCI-E区别 一、PCI总线 PCI总线标准是由PCISIG于1992年开发的,已经有超过8年的历史。 PCI的总带宽=33MHz×32BIT/8=133MB/S。 二、PCI-X总线 PCI-X是在增加了电源管理功能和热插拔技术的PCI V2.2版本的基础上,将PCI的总带宽由133MB/S增至1.066GB/s。同时它还采用了分离实务即多任务的设计,允许一个正在向某个目标设备请 求数据的设备,在目标设备未准备好之前处理其他任何事情;而在目前的PCI体系中,设备在完成一次请求之前不能理会任何事情,此时的总线时钟周期都被白白 浪费掉了。同时PCI-X还允许把没有准备好发送数据的设备从总线上移走,这样总线带宽可以被其他事务使用,使总线的利用率大幅上升。所以,在相同的频率 下,PCI-X将能提供比PCI高14%~35%的性能。 PCI-X还采用了与IA-64相同的128Bit标准尺寸数据块设计,使通过总线的数据块大小相同,这样就提供了更多的流水线机制,改善了处理器的管 理。
现在,我们已经掌握了基本的定义,接下来让我们往模型机里添加一些硬件,以讨论一些更复杂的用例。
欢迎参与 《Mindshare PCI Express Technology 3.0 一书的中文翻译计划》
现在有个难题——CF8h、CFCh端口是32位端口,可像Turbo C之类的16位C语言编译器都不支持32位端口访问。怎么办?我们可以使用**_ _ emit _ 在程序中插入机器码。每次都 _ emit _ _一下肯定很麻烦,所以我们应该将它封装成函数。代码如下(注意66h是32位指令前缀)**:
vfio是用户态和内核态之间的一种接口,类似于vhost和vhost-user,具体用法就是vfio.ko通过/dev/vfio在内核给用户态提供api,qemu或者dpdk用api和内核模块交互。
最近有很多大侠在交流群里讨论PCI总线,PCI作为高速接口之一,在当下的FPGA产品设计研发中,地位举足轻重,应用广泛,今天给大侠带来PCI Express 系列连载,今天带来第二十一篇,PCIe总线的事务层(TLP的路由(基于地址的路由、基于ID的路由、隐式路由))。希望对各位大侠的学习有参考价值,话不多说,上货。
最近有很多大侠在交流群里讨论PCI总线,PCI作为高速接口之一,在当下的FPGA产品设计研发中,地位举足轻重,应用广泛,今天给大侠带来PCI Express 系列连载,今天带来第十四篇,PCI设备对不可Cache的存储器空间进行DMA读写、PCI设备对可Cache的存储器空间进行DMA读写、PCI设备进行DMA写时发生Cache命中以及DMA写时发生Cache命中的优化相关内容。希望对各位大侠的学习有参考价值,话不多说,上货。
说明: lspci 是一个用来显示系统中所有PCI总线设备或连接到该总线上的所有设备的工具。
PMD是Poll Mode Driver的缩写,即基于用户态的轮询机制的驱动。本文将介绍PMD的基本原理。
1 PCIe中断 – PCI/PCIe设备中断都是level触发,并且请求信号为低电平有效 – PCI总线一般只有INTA#到INTD#的4个中断引脚,所以PCI多功能设备的func一般不会超过4个,但是共享中断除外
本文以X710网卡设备为例,介绍网卡的scan和probe流程的;通过本篇文章的介绍可以大致了解UIO驱动、PMD驱动之间的关联关系以及如何确认网卡对应的PMD驱动的。针对probe流程处理了解的比较片面,有了解比较深的同学,希望能找您学习一下。
首先要确定主板和CPU都支持虚拟化技术,在BIOS将VT-d、VT-x设置成enable。
运维工程师(Operations)是负责维护并确保整个服务的高可用性,同时不断优化系统架构提升部署效率、优化资源利用率提高整体的ROI的专业人员。他们的基本职责是负责服务的稳定性,确保服务可以7*24H不间断地为用户提供服务。
VFIO(Versatile Framework for userspace I/O) : 用户空间 I/O 的多功能框架
VFIO的全称是Virtual Function IO,但这个名字并不能反应它的特点,以下两个假名字更能反应VFIO的特点:
最近有很多大侠在交流群里讨论PCI总线,PCI作为高速接口之一,在当下的FPGA产品设计研发中,地位举足轻重,应用广泛,今天给大侠带来PCI Express 系列连载,今天带来第十八篇,PCIe体系结构的组成部件,包括基于PCIe架构的处理器系统(处理器系统A、PowerPC处理器、基于PCIe总线的通用处理器结构)、RC的组成结构、Switch、VC和端口仲裁、PCIe-to-PCI/PCI-X桥片相关内容。希望对各位大侠的学习有参考价值,话不多说,上货。
IO虚拟化实现的方式有很多种,有软件模拟、半虚拟化、设备直接分配、单根IO虚拟化。在《说一说虚拟化绕不开的io半虚拟化》一文中介绍了io的全虚拟化和半虚拟化。下面介绍一下IO的硬件辅助虚拟化。
Leo Hou,目前就职于IC行业某硬件数据加速独角兽企业,从事虚拟化方向,聚焦于基于QEMU/KVM的IO虚拟化和系统虚拟化,主要负责虚拟化相关方案和团队建设。
基于virtio的virtio-blk是KVM-Qemu虚拟化生态中的虚拟化块存储的一种实现方式,利用了virtio共享内存的机制,提供了一种高效的块存储挂载的方法。Guest OS内核通过加载virtio-blk驱动,实现块存储的读写,无需额外的厂家专用驱动。Virtio-blk设备在虚拟机以一个磁盘的方式呈现,是目前应用最广泛的虚拟存储控制器。如下是qemu所模拟的PC(基于intel i440fx主板架构)的组成结构图。
PCI Express 学习系列已经连载了十五篇了,第一阶段的学习已经告一段落,从第十六篇开始将开启第二阶段的学习,PCI Express体系结构概述。PCI作为高速接口之一,在当下的FPGA产品设计研发中,地位举足轻重,应用广泛,今天给大侠带来PCI Express 系列连载,今天带来第十六篇,PCI Express体系结构概述相关内容。希望对各位大侠的学习有参考价值,话不多说,上货。
igb_uio 是 dpdk 内部实现的将网卡映射到用户态的内核模块,它是 uio 模块的一个实例。
KVM的网络优化方案,总的来说,就是让虚拟机访问物理网卡的层数更少,直至对物理网卡的单独占领,和物理机一样的使用物理网卡,达到和物理机一样的网络性能。
前言: 以作者的经验来看,虚拟化的跨度比较大,很多概念比较难以理解,本来以为“硬件行为,就是这样的”好多概念,都变成虚拟的了。 作者对kernel略懂一二,结合过往的很多经验来看,就更加难以理解了~ 所以,作者尝试着把理解的过程描述出来(尽管作者在虚拟化上面,谈不上很专业,这里还是不自量力一下了)。 分析: 硬件概念:在分析虚拟化原理之前,先来看一下“本来就应该这样”的硬件设计图。 从Intel官网(http://download.intel.com/design/chipsets/datashts/2
PCI的配置寄存器空间为256个字节大小。PCIE扩展了配置寄存器空间,大小为4096的字节。PCIE配置寄存器的整体分布如下图所示:
领取专属 10元无门槛券
手把手带您无忧上云