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

ops/2024/10/21 15:30:02/

        在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.ppmy.cn/ops/121221.html

相关文章

使用python基于DeepLabv3实现对图片进行语义分割

DeepLabv3 介绍 DeepLabv3 是一种先进的语义分割模型,由 Google Research 团队提出。它在 DeepLab 系列模型的基础上进行了改进,旨在提高图像中像素级分类的准确性。以下是 DeepLabv3 的详细介绍: 概述DeepLabv3 是 DeepLab 系列中的第三代…

[uni-app]小兔鲜-04推荐+分类+详情

热门推荐 新建热门推荐组件, 动态设置组件的标题 <template><!-- 推荐专区 --><view class"panel hot"><view class"item" v-for"item in list" :key"item.id">... ...<navigator hover-class"none&…

Java题集(从入门到精通)04

此系列文章收录大量Java经典代码题&#xff08;也可以算是leetcode刷题指南&#xff09;&#xff0c;希望可以与大家一起努力学好Java。3、2、1&#xff0c;请看&#xff01; 目录 一、北京地铁计价程序 二、人名币兑换 三、各位数字之和 一、北京地铁计价程序 【问题描述…

达梦8-数据守护集群主备故障实验和脑裂处理

实验1&#xff1a;将内网断开&#xff0c;查看主备库状态&#xff0c;并测试数据同步情况 测试环境 ##主库信息 内网IP-[MAL_HOST 192.168.50.100] 外网IP-[MAL_INST_HOST 192.168.101.11] 主库实例名-[DM01] ##备库信息 内网IP-[MAL_HOST 192.168.50.110] 外网IP-[MAL_INS…

Leetcode 2300. 咒语和药水的成功对数

1.题目基本信息 1.1.题目描述 给你两个正整数数组 spells 和 potions &#xff0c;长度分别为 n 和 m &#xff0c;其中 spells[i] 表示第 i 个咒语的能量强度&#xff0c;potions[j] 表示第 j 瓶药水的能量强度。 同时给你一个整数 success 。一个咒语和药水的能量强度 相乘…

Redis持久化、主从与哨兵架构详解

1. Redis持久化 1.1 RDB快照&#xff08;snapshot&#xff09; 在默认情况下&#xff0c;Redis将内存数据库快照保存在名字为dump.rdb的二进制文件中。 你可以对Redis进行设置&#xff0c;让它在“N秒内数据集至少有M个改动”这一条件被满足时&#xff0c;自动保存一次数据集…

【车载开发系列】ParaSoft单元测试环境配置(四)

【车载开发系列】ParaSoft单元测试环境配置&#xff08;四&#xff09; 【车载开发系列】ParaSoft单元测试环境配置&#xff08;四&#xff09; 【车载开发系列】ParaSoft单元测试环境配置&#xff08;四&#xff09;一. 如何设置过滤二. 如何设置静态扫描的规则三. 如何设置单…

SpringBoot基础(三):Logback日志

SpringBoot基础系列文章 SpringBoot基础(一)&#xff1a;快速入门 SpringBoot基础(二)&#xff1a;配置文件详解 SpringBoot基础(三)&#xff1a;Logback日志 目录 一、日志依赖二、日志格式1、记录日志2、默认输出格式3、springboot默认日志配置 三、日志级别1、基础设置2、…