从零开始讲PCIe(3)——FunctionsDeviceBusSystem

        在PCI架构中,Functions(功能)、Device(设备)、Bus(总线)、和System(系统)是层次化的概念,每个层次分别描述了不同的结构和作用。让我们详细看看这些术语的定义及它们之间的关系:

一、概念辨析

1.1 Function(功能)

        Function是PCI设备中的独立子模块,一个设备可以包含多个功能,每个功能可以执行不同的任务。例如,一个设备可能提供网络、存储控制等不同的功能,每个功能都可以独立使用。每个PCI设备最多可以有8个功能,编号为0到7。例如:一个PCI网卡可能同时具有以太网控制器(Function 0)和无线网卡(Function 1)两种功能。

1.2 Device(设备)

        Device是物理硬件的表示,它连接在PCI总线上,可以是单一功能设备或多功能设备。每个PCI设备通过唯一的设备号识别。每个PCI总线最多可以支持32个设备,设备编号为0到31。例如:显卡、声卡、网卡等都是PCI设备。一个设备可能有多个功能,每个功能都作为独立的实体进行管理。

1.3 Bus(总线)

        PCI总线是系统中连接多个设备的通信通道。PCI设备通过总线与系统通信,总线号用于标识系统中的不同总线。一个系统中可以有多个PCI总线,每个PCI总线可以连接多个设备。总线号在系统中唯一,系统中可以有最多256条PCI总线(编号0到255)。总线通过仲裁器管理设备之间的访问权限,确保设备能有效通信和共享资源。多个PCI插槽可能连接到同一个总线,或者在复杂的系统中,有多个独立的PCI总线,每个总线连接不同的设备。

1.4 System(系统)

        系统是计算机或硬件平台的整体,包括CPU、内存、PCI总线及其连接的所有设备和功能。系统管理和协调所有硬件资源,包括设备、总线和功能,并通过操作系统分配资源、处理中断和实现即插即用。一台PC计算机可以包含多个PCI总线,每个总线连接多个PCI设备,这些设备中又可能包含多个功能。

1.5 各层次的关系

  • 系统(system)是整体硬件平台,包括CPU、内存、PCI总线、设备和功能。
  • 总线(bus)是系统中设备与系统其他部分通信的路径。每个系统可以有多个总线,每个总线最多可以连接32个设备。
  • 设备(device)是连接在总线上的硬件模块,每个设备可以有多个功能。
  • 功能(function)是设备中的独立子模块,提供不同的服务或能力。

二、PCI地址结构

        在PCI架构中,每个设备和功能通过总线号、设备号和功能号唯一标识,形成三级地址结构:

  • Bus Number(总线号):标识该设备所在的总线。
  • Device Number(设备号):标识总线上的设备编号,范围为0到31。
  • Function Number(功能号):标识该设备中的功能编号,范围为0到7。

三、示例

3.1 场景描述

        假设我们有一个典型的PC系统,其中包括以下硬件:一块主板,具有多个PCI插槽和一条PCI总线。插入主板的PCI设备有一个显卡、一个声卡和一个网卡。其中,显卡是一款高性能设备,它不仅提供视频输出功能(Function 0),还提供HDMI音频输出功能(Function 1)。

3.2 说明

3.2.1 System(系统):

        这是整个PC系统,包括主板、CPU、内存、PCI总线以及连接到总线上的所有设备(显卡、声卡、网卡)。

        操作系统(如Windows或Linux)负责管理这些硬件资源,分配内存地址和I/O资源,并处理设备的中断请求。

3.2.2 Bus(总线):

        系统中的主板具有一条PCI总线(Bus 0)。这条总线允许多个PCI设备连接并通过总线与CPU和内存通信。总线号为Bus 0,用于标识这条总线。

3.2.3 Device(设备):

        在Bus 0上连接了多个PCI设备,每个设备都有唯一的设备编号,如:

  • Device 0:显卡
  • Device 1:声卡
  • Device 2:网卡

        每个设备通过设备号标识自己,并可以有一个或多个功能。

3.2.4 Function(功能):

        每个设备可能包含一个或多个功能,这些功能为不同的硬件模块提供支持。让我们详细看看各个设备的功能:

Device 0(显卡):

  • Function 0:这是显卡的主要功能,负责处理图形输出。操作系统将识别并分配资源给这个功能,用于显示器的输出。
  • Function 1:这是显卡的附加功能,提供HDMI音频输出功能,用于通过HDMI接口传输音频信号。

Device 1(声卡):

  • Function 0:声卡的唯一功能,负责处理音频输入和输出。

Device 2(网卡):

  • Function 0:网卡的唯一功能,负责网络连接和数据传输。

3.3 地址示例

        PCI系统中的每个功能都通过一个总线号、设备号和功能号唯一标识。让我们看看这些设备和功能在PCI系统中的地址:

显卡(Device 0,Bus 0):

  • Function 0(视频输出):地址为Bus 0, Device 0, Function 0
  • Function 1(HDMI音频输出):地址为Bus 0, Device 0, Function 1

声卡(Device 1,Bus 0):

  • Function 0(音频处理):地址为Bus 0, Device 1, Function 0

网卡(Device 2,Bus 0):

  • Function 0(网络连接):地址为Bus 0, Device 2, Function 0

四、总结

  • 功能(function):是PCI设备中独立的功能单元,最多可以有8个功能。
  • 设备(device):是物理设备,连接在PCI总线上,可能包含一个或多个功能。
  • 总线(bus):是设备和系统通信的通道,一个系统可以有多个总线,每个总线最多可以有32个设备。
  • 系统(system):是整个计算平台,包括CPU、内存、多个PCI总线和连接的设备与功能。

        这种分层结构确保了PCI设备的灵活性和可扩展性,支持复杂硬件系统的组织和管理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/439223.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

异常处理【C++提升】(基本思想,重要概念,异常处理的函数机制、异常机制,栈解旋......你想要的全都有)

更多精彩内容..... 🎉❤️播主の主页✨😘 Stark、-CSDN博客 本文所在专栏: C系列语法知识_Stark、的博客-CSDN博客 座右铭:梦想是一盏明灯,照亮我们前行的路,无论风雨多大,我们都要坚持不懈。 异…

828华为云征文|华为云Flexus云服务器X实例搭建部署H5美妆护肤分销商城、前端uniapp

准备国庆之际,客户要搭个 H5 商城系统,这系统好不容易开发好啦,就差选个合适的服务器上线。那可真是挑花了眼,不知道哪款性价比高呀!就像在琳琅满目的选择前。最终慧眼识珠,选择了华为云 Flexus X。至于为什…

redis高级篇 抢红包案例的设计以及分布式锁

一 抢红包案例 1.1 抢红包 二倍均值算法: M为剩余金额;N为剩余人数,公式如下: 每次抢到金额随机区间(0,(M/N)*2) 这个公式,保证了每次获取的金额平均值…

TX-LCN框架 分布式事务

一、三种事务模式 1)LCN 基于XA协议,事务提交或回滚的操作由事务管理服务器统一告诉它管理的多个项目,也就是说在A事务,B事务的事务提交操作或回滚操作都是在同一时刻发生,并且要么都提交,要么都回滚。 LCN…

低代码可视化-UniApp二维码可视化-代码生成器

市面上提供了各种各样的二维码组件,做了一简单的uniapp二维码组件,二维码实现依赖davidshimjs/qrcodejs。 组件特点 跨浏览器支持:利用Canvas元素实现二维码的跨浏览器兼容性,兼容微信小程序、h5、app。 无依赖性:QR…

数据库(MySQL):使用命令从零开始在Navicat创建一个数据库及其数据表(一).创建基础表

一. 使用工具和命令 1.1 使用的工具 Navicat Premium 17 :“Navicat”是一套可创建多个连接的数据库管理工具。 MySQL版本8.0.39 。 1.2 使用的命令 Navicat中使用的命令 命令命令解释SHOW DATABASES;展示所有的数据库CREATE DATABASE 数据库名称; 创…

震动传感器介绍及实战

目录 前言 震动传感器 1.震动传感器配图 2.震动传感器原理图 3.震动传感器使用 1-震动传感器的意义 2-震动传感器的应用场景 3- SW-18010P震动传感器使用方法 震动传感器控制灯 操作 增加延时 使用SPC-ISP生成演示函数 总结 前言 我们上节已经简单了解了LED的使用…

【机器学习】音乐生成——AI如何创作个性化音乐与配乐

我的主页:2的n次方_ 音乐是人类文化的重要组成部分,它具有极强的情感表达和艺术价值。近年来,随着人工智能技术的飞速发展,AI已经能够自动生成音乐,甚至根据用户需求创作个性化配乐。AI生成音乐的应用场景广泛&…

redis中的数据类型(Set与ZSet)

(一)set set在我们目前有两个意思,首先就是这里使用的集合,第二个是我们的set和get方法 因为set是一个集合,所以他具有集合的一些特点: 1.集合中的元素无序 2.集合中的元素是不可重复的 3.集合间是可…

5G NR物理信号

文章目录 NR 物理信号与LTE的区别上行参考信号DMRS (UL)SRSPT-RS(UL) 下行参考信号DMRS(DL)PT-RS(DL)CSI-RSPSSSSS NR 物理信号与LTE的区别 用SSS、CSI-RS和DMRS 取代了CRS信号。下行业务信道采用TM1波束赋形传输模式。基于SSB 或者CSI-RS进行RSRP和SINR测量。基于DMRS 进行共…

【Mybatis篇】Mybatis的关联映射详细代码带练 (多对多查询、Mybatis缓存机制)

🧸安清h:个人主页 🎥个人专栏:【计算机网络】,【Mybatis篇】 🚦作者简介:一个有趣爱睡觉的intp,期待和更多人分享自己所学知识的真诚大学生。 目录 🎯一.关联映射概述 &#x1f6a…

2024.9.29 问卷数据分析

最近拿到了一份受众回访的问卷数据,排到的任务是对它进行数据探索。 其实对于问卷数据的处理我只在参加正大杯那次做过(正大杯拿了校三),可见这个处理水平还有待提高(当然是各种原因促成的结果)&#xff0…

17 链表——21. 合并两个有序链表 ★

17 链表 21. 合并两个有序链表 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] 算法设计: 合并两个有序链表,并保持有序性,可以采用迭代法和递归法两种…

卸载WSL(Ubuntu),卸载linux

禁用 WSL 功能 打开 Windows 功能: 按下 Windows R 打开运行对话框,输入 optionalfeatures,然后按回车。 禁用 WSL: 在弹出的 Windows 功能窗口中,找到 适用于 Linux 的 Windows 子系统(Windows Subsystem…

Windows环境 源码编译 FFmpeg

记录一下windows环境纯代码编译ffmeg的过程! 目录 一、安装MSYS2 1.下载安装 2.配置 3.修改源 4.测试与更新 二、安装其他必要工具 1.安装MinGW-w64 2.安装git 3..安装make等工具 4.编译前的其他准备工作 ①.重命名link.exe ②.下载和安装YASM ③.安装…

Docker 从安装到实战

Docker 是一个开源的平台,用于自动化应用程序的部署、扩展和管理。它利用操作系统级别的虚拟化,将应用程序及其依赖项封装在称为容器的轻量级、可移植的单元中。以下是 Docker 的一些关键特点: 容器化:Docker 容器可以在任何支持 …

用CSS创造三角形案例

6.3.2 用CSS创造三角形 用div来创建,角上是平分的,所以要是内部宽高为0,其他边透明,正好是三角形。 代码 div {border: 12px solid;width: 0;height: 0;border-color: transparent red transparent transparent; } 与伪元素aft…

vscode+stfp插件,实现远程自动同步文件代码

概述 远程同步代码,将本地代码实时保存到同一局域网内的另一台电脑(linux系统),这里的本地代码也可以是远程服务上的代码,即从一个远程ip同步到另一台远程ip服务器。 工具 vscode,SFTP插件 安装 vscod…

【重学 MySQL】五十、添加数据

【重学 MySQL】五十、添加数据 使用INSERT INTO语句添加数据基本语法示例插入多行数据注意事项 使用LOAD DATA INFILE语句批量添加数据其他插入数据的方式注意事项 在MySQL中,添加数据是数据库操作中的基本操作之一。 使用INSERT INTO语句添加数据 使用 INSERT IN…

突发!Meta重磅发布Movie Gen入局视频生成赛道!

引言 Meta于2024年10月4日首次推出 Meta Movie Gen,号称是迄今为止最先进的媒体基础模型。Movie Gen 由 Meta 的 AI 研究团队开发,在一系列功能上获取最先进的效果,包括:文生视频、创建个性化视频、精准的视频编辑和音频创作。 …