首页 > 其他分享 >PCIe扫盲——Memory & IO 地址空间

PCIe扫盲——Memory & IO 地址空间

时间:2024-12-28 22:09:31浏览次数:7  
标签:MMIO PCIe 地址 PCI IO Memory

早期的PC中,所有的IO设备(除了存储设备之外的设备)的内部存储或者寄存器都只能通过IO地址空间进行访问。但是这种方式局限性很大,而且效率低,于是乎,软件开发者和硬件厂商都不能忍了……然后一种新的东西就出来了——MMIO。MMIO,即Memory Mapped IO,也就是说把这些IO设备中的内部存储和寄存器都映射到统一的存储地址空间(Memory Address Space)中。但是,为了兼容一些之前开发的软件,PCIe仍然支持IO地址空间,只是建议在新开发的软件中采用MMIO。

注:PCIe Spec中明确指出,IO地址空间只是为了兼容早期的PCI设备(Legacy Device),在新设计中都应当使用MMIO,因为IO地址空间可能会被新版本的PCI Spec所抛弃。

IO地址空间的大小是4GB(32bits),而MMIO则取决于处理器(和操作系统),并且由处理器进行统一分配管理。

如下图所示,PCIe总线中有两种MMIO:P-MMIO和NP-MMIO。

image

P-MMIO,即可预取的MMIO(Prefetchable MMIO);NP-MMIO,即不可预取的MMIO(Non-Prefetchable MMIO)。其中P-MMIO读取数据并不会改变数据的值。

注:P-MMIO和NP-MMIO主要是为了兼容早期的PCI设备,因为PCIe请求中明确包含了每次的传输的大小(Transfer Size),而PCI并没有这些信息。

标签:MMIO,PCIe,地址,PCI,IO,Memory
From: https://www.cnblogs.com/linhaostudy/p/18638037

相关文章

  • Linux操作文件IO
    Linux操作文件IO参考自:【北京迅为】嵌入式linux开发指南_v1.1(i.MX6ULL)文件IO是Linux系统提供的接口,针对文件和磁盘进行操作,不带缓存机制;标准IO是C语言函数库里的标准I/O模型,在stdio.h中定义,通过缓冲区操作文件,带缓存机制。Linux系统中一切皆文件,包括普通文件,目......
  • [Java/网络/HTTP(S)] 基于`Http(s)URLConnection`的网络请求工具(HttpRequestUtils)
    1序轻量级HTTP网络请求工具,接续:[JavaSE/JDK/网络]核心源码精讲:java.net.HttpURLConnection-博客园/千千寰宇[身份认证/JWT]身份认证方案与HTTP请求中AuthorizationHeader-博客园/千千寰宇【推荐】[网络/HTTPS/Java]PKI公钥基础设施体系:数字证书(X.509)、CA机构......
  • mybatis一对多collection select
     mybatis一对多collectionselect在MyBatis中,处理一对多关系时,通常会在映射文件中使用<collection>元素,并在其中嵌套一个<select>元素来实现对关联表的查询。这种方式允许你从一个表(称为“一”的一方)中查询数据,并同时获取与其关联的多个表(称为“多”的一方)中的数据......
  • WPF ViewPort3D ModelVisual3D GeometryModel3D MeshGeometry3D Positions Normals
    <Windowx:Class="WpfApp107.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft......
  • .NET Bioss相关数据读写
    本文我们介绍针对Bios如何读取、写入数据,比如最常见的SN读取以及烧录WMI查询先看看WMI方式,可以用于查询和管理Windows系统的各种信息,包括读取BIOS信息WMI-Win32_BIOS,可以查看Bios版本、制造商以及BiosSn等:1varsearcher=newManagementObjectSearcher("SELE......
  • SOCS0100 Computational Tools
    SOCS0100 Computational Tools for Reproducible Social ScienceSecond Summative AssignmentGuidelines for Completing and Submitting SOCS0100 Assignment:•Thisassessmentisdueon 13 January 2025, 1pm and shallbe submitted on Moodle.......
  • [PA2019] Desant Solution
    [PA2019]DesantSolution原题链接。题目大意:给定一个长为\(n(n\le40)\)的排列,对于每个\(i\)求出长度为\(i\)的子序列逆序对最少有多少,并且求出有多少个长度为\(i\)的子序列逆序对最少。解题思路:首先有一个暴力的做法,设\(f_{i,S}\)表示考虑完前\(i\)个数,选择了集......
  • NLP论文速读(NeurIPS 2024)|树状结构两阶段推荐系统的泛化误差边界Generalization Err
    论文速读|GeneralizationErrorBoundsforTwo-stageRecommenderSystemswithTreeStructure论文信息:简介:   本文讨论的是两阶段推荐系统(Two-stageRecommenderSystems)在具有树结构的情况下的泛化误差界限。两阶段推荐系统在许多在线服务中扮演着重要角色,例......
  • WPF Viewport3D Model3DGroup GeometryModel3D ModelVisual3D PerspectiveCamera Dir
     Vector3DCollectionPoint3DCollectionPointCollectionInt32CollectionLinearGradientBrushDiffuseMaterial  RotateTransform3DAxisAngleRotation3D usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threadi......
  • 学习012-02-03-14 How to: Reorder an Action Container‘s Actions Collection(如何:对
    Howto:ReorderanActionContainer’sActionsCollection(如何:对操作容器的操作集合进行重新排序)InanXAFapplicationUI,ActionsarelocatedwithinActionContainers.YoucanusetheActionBase.CategorypropertyandtheApplicationModel’sActionDesign......