您现在的位置是:主页 > 嵌入式论坛 > STM32/STM8技术论坛 >

    2019-01-30从CPU角度理解PCI北京赛车滚雪球e

      为什么需要写这篇文章,当我阅读《深入浅出SSD》这篇书籍中PCIe章节时发现,本书籍的侧重点是放在PCIe控制器和PCIe协议上,从CPU角度理解PCIe知识偏少,本文对下面几个知识点做出一些补充。

      CPU编址是程序指令与物理地址线建立链接的方式,在CPU内部有专门的地址集合,编址过程是由CPU体系架构所决定的,参考示意图如图 1所示(仅仅代表示意图,讲解一种逻辑结构,不代表实际电路)。CPU编址时就已经指定了0x8000_0000~0xFFFF_FFFF这个地址空间为连接到图中内存的地址线,内存如何连接到CPU需要当参考CPU的datasheet,当CPU程序指令对0x8000_0000这个物理地址地址发起访问时,等价于是在访问图中2G内存的首地址。

      内存通过CPU地址总线来寻址定位,然后通过CPU数据总线读写数据。CPU的地址总线位数是CPU设计时确定,因此一款CPU所能寻址的地址范围是一定的,而内存是需要占用CPU的寻址空间的,内存与CPU采用总线直接连接。

      IO指的是与CPU连接的各种外设,CPU访问各种外设有两种方式:一种是类似于访问内存的方式,即把外设的寄存器当成内存地址读写,从文可以以访问内存方式操作外设寄存器。这时,IO与内存统一编址,IO地址与内存地址在同一个地址空间下,这种编址方式叫做IO与内存统一编址。

      另外一种编址方式是IO地址与内存地址分开独立编址,这种编址方式叫做独立编址,此时,CPU访问外设寄存器需要通过CPU特定的指令去访问外设寄存器,而不能通过地址直接访问外设寄存器。常见的ARM、PowerPc、MIPS架构都是采用统一编址,X86架构采用独立编址。

      PCI总线规定访问配置空间总线事务,使用ID号进行寻址。PCI设备ID号由总线号(Bus Number)、设备号(Device Number)和功能号(Function Number)。其中总线号在HOST主桥遍历PCI总线树时确定,在一颗PCI总线树上,总线号由系统软件决定,通常与HOST主桥直接相连接的PCI总线,系统软件使用DFS(Depth-First Search)算法扫描PCI总线树上的所有PCI总线,并依次编号。

      一条PCI总线的设备号由PCI设备的IDSEL信号与PCI总线地址线的连接关系确定,功能号与PCI设备的具体设计有关。一个PCIe系统最多有256条Bus,每条Bus上最多可以挂在32个设备,每个PCIe设备最多有8个功能设备。

      在XX处理器中的HOST主桥中,与PCIE设备配置相关的寄存器由CFG_ADDR、CFG_DATA等组成。系统软件使用CFG_ADDR(CFG_ADDR寄存器结构如图 2所示)和CFG_DATA寄存器访问PCIe设备的配置空间,这些寄存器都是采取同一编址(所有内存寄存器都使用存储器映射方式进行寻址)。

      当处理器访问PCIe配置空间时,首先需要在CFG_ADD寄存器中设置这个PCIe设备对应的总线号、设备号、功能号和寄存器偏移,然后使能Enable位,之后当处理器对CFG_DATA读写访问时,HOST主桥将这个存储器读写访问转换成PCIe配置读写请求,并且发送到PCIe总线上。如果Enable位没有使能,那么CPU对寄存器的访问也就是一个普通IO的访问,而不能让HOST转换成总线请求访问,访问PCIe配置空间时按照PCIe总线标准配置TLP请求,CFG_DATA是读取的数据或者待写入的数据。

      31位:Enable位,为1时,对CFG_DATA读写才能转换成PCIe总线~8位:功能号,最多=8个。

      7~2位:寄存器偏移,最多访问寄存器=64个地址,这里一个地址是DW,那么能干访问的PCIe配置空间大小为64*4=256Byte,所以访问PCIe配置空间都是以4字节对齐访问的。

      走到这里很多读者可能就会有这样的疑问,既然CPU能够直接通过寄存器访问配置空间,为啥还会出现配置空间在存储域地址的映射这一说法呢?下面给出详细解答。

      访问PCIe配置空间寄存器的方法需要追溯到原始的PCI规范。为了发起PCI总线配置周期,Intel(Intel是PCIe龙头老大,最新的PCIe的规范总是它最先尝试的)实现的PCI规范使用IO空间的CF8h和CFCh来分别作为索引和数据寄存器,这种方法可以访问所有PCI设备的255 bytes配置寄存器。Intel Chipsets目前仍然支持这种访PCI配置空间的方法。

      PCIe规范在PCI规范的基础上,将配置空间扩展到4K bytes,至于为什么扩展到4K,具体可以参考PCIe规范,这些配置CFG_ADDR和CFG_DATA寄存器方法仍然可以访问所有PCIe设备配置空间的头255 bytes,但是该方法访问不了剩下的(255B~4K)配置空间。怎么办呢?Intel外一种PCIe配置空间访问方法。Intel Chipset通过将配置空间映射到内存地址空间,PCIe配置空间可以像对映射范围内的内存进行read/write来访问了。这种映射是由北桥芯片来完成的,但是不同芯片的映射方式也是不同的。目前我查看了ARM芯片的datasheet,确实是这样的方式。

      PCIe规范为每个PCIe设备添加了更多的配置寄存器,空间为4K,尽管CFG_ADDR和CFG_DATA寄存器方法仍然能够访问lower 255 bytes,但是必须提供另外一种方法来访问剩下的(255B~4K)range寄存器。Intel的解决方案是使用了预留256MB内存地址空间,对这段内存的任何访问都会发起PCIe 配置cycle。

      由于PCIe配置空间占用了256M内存空间,而且该被占用空间对DRAM来说是不可用的,这意味着256M空间消失于系统内存,这在32bit系统中更为明显。比如,在32 bit winxp中(作者目前电脑还是用的XP系统,电脑用了七八年了),理论上可以访问到的内存是4G,如果4G空间都被DRAM给占用,由于PCIe的存在,被PCIe占用的那部分内存空间对OS来说是不可用的,莫名的消失了最多256M内存,其实还有其他外设寄存器需要映射到内存,如果是独立编址就不存在寄存器占用内存。所以在XP系统中实际能够访问DRAM空间最大值为3.2G。64位CPU寻址不存在这个情况,个地址目前来说应该用不完,这里读者需要注意的是CPU有32和64位寻址方式,同样操作系统也有32和64位之分,在Linux系统中主要体现在库文件上。有些CPU没有直接指定PCIe配置空间的地址范围,需要读取某个寄存器的值BaseAddr,这个值就说PCIe配置寄存器在内存区域映射的基地址。访问PCIe设备配置空间时候需要手动计算访问PCIe配置空间的地址。计算发放如下:SIZE_PER_FUNC = 4K = 1000h

      访问总线号为busNo,设备号为DevNo,功能号为funcNo的offset寄存器的计算公式是:

      访问PCIe配置空间就需要通过总线号、设备号、功能号、寄存器偏移进行转换成内存地址。转换函数如图 2所示。

      随着5G通讯技术的开放,国内很多城市5G试行成功了,而且今年将会面很多款5G手机面世。那么这也引出一个大话题,那就是今年要不要换手机,或者说4G手机现在买还亏不亏?

      “我认为明年(2019年)要讲的很多故事都将出现在软件行业以外的人工智能应用中。作为一个行业,我们在帮助谷歌和百度以及Facebook和微软等公司(我和它们没有任何关系)方面做得不错,但即使像Square和Airbnb,Pinterest这样的公司也开始使用一些人工智能功能。我认为,下一次巨大的价值创造浪潮将是你可以让制造公司或农业设备公司或医疗保健公司开发数十种人工智能解决方案来帮助他们的业务。”

      台积电将22ULL的启用分成两个阶段进行,现在已经推出适用于0.8V/0.9VVDD的v1.0设计套件,2019年6月将提供0.6VVDDPDK和IP支持。需要注意的是,22ULL中的SRAM设计将采用双电源供电,内部阵列采用0.8V(由位单元VDD_min驱动),外围电路为0.6V。

      然而,在过去几年里每年网购订单数量以30%的速度飙升的同时,仓促物流每年新增的劳动人力却在不断减少。在供需不平衡的基础下,对于智能仓储、智能机器人确认的需求开始飙升。

      Aston Martin Valkyrie AMR Pro乃是以品牌旗下旗舰超跑Valkyrie为基础衍生出的超高性能版本,但与现行已经发表的AMR Pro车款有些不同,因为其性能太强,Valkyrie AMR Pro现阶段还被定位在纯赛道版本,但我们有绝对理由相信Aston Martin仍会协助有所需要的客户进行道路化改良。

      此次“一根数据线、一款手机”事件无形中将在手机行业渐渐淡去的HTC品牌推广出去了,这是HTC的意外收获。曾经大名鼎鼎的HTC现如今提升品牌知名度居然靠了“意外事件”,着实令人唏嘘。

      2.分销商的网站。除了下载网站外,分销商网站也是个不错的选择,如常见的Digi-key,Mouser等等。只要是他们负责分销的器件,基本都能找到相应的资料,并且可以了解到大致的器件价格。当然价格仅供参考,是分销的价格,并不是最后批量的价格。分销商网站的另一个好处就是在他们的网站上能找到很多不好确定型号的器件资料,比如一些常用的开关,按键,连接器等等,很多器件我们都能在电子市场上方便的买到,但是电子市场显然是不会为这些可能都不知道生产厂家的器件附带一份datasheet告诉你器件详细的规格尺寸的。这时候我们就可以到这些分销商的网站上查找一下相似产品的资料,根据正规厂家的资料来做封装进行设计。这样也方便后续产品量产定型的时候进行大批量的器件采购。这一点,起码在目前国内的市场环境下面还是很有用的。

      人脸解锁,智能截屏,语音控制,情景智能,名片扫描,Huawei Share,支付保护中心,天际通,运动健康,单手操作,皮套模式,杂志锁屏,玩机技巧,应用锁,应用分身,隐私空间,密码保险箱,三重备份与恢复(云空间,外部存储,华为手机助手),手机克隆

      非标自动化设备的使用性能:运动的平稳性,它具有足够的强度和刚度,能保持规定的运动精度。其中,医疗电子成为连接器应用新的增长点,随着我国新医改的实施和医疗信息化水平的不断提升,我国医疗领域连接器市场需求容量不断增加。 自动调节器应用标志着自动化技术进入新的历史时期。进入20世纪以后,工业生产中广泛应用各种自动调节装置,促进了对调节系统进行分析和综合的研究工作。这一时期虽然在自动调节器中已广泛应用反馈控制的结构,但从理论上研究反馈控制的原理则是从20世纪20年代开始的。

      在「决策层」,炬星AMR 采用了很多基于深度神经网络的算法,同时也采用了计算机视觉的几何算法、激光导航算法等一系列「传统」算法。

      (Simulation Program with Integrated Circuit Emphasis)

      首先要选用一款合适的DSP器件。要求具有低功耗、高速数据运算和吞吐能力(40 MIPS以上),内含A/ D、D/ A、Flash闪存(16KB)。然后建立有效的噪声模型,设计自适应滤波结构及其相关软件算法。接下来设计数字抗噪声处理器的电磁兼容性(EMC),选用能适应120dB环境噪声的抗噪声送话器器件。DSP硬件与相关软件算法结合,使数字抗噪声处理器在120dB高噪声环境下,达到线。

      从极尽奢侈的广告轰炸到王石勇攀珠峰的无畏精神,成立三年的8848凭借焕然一新的品牌形象实现了从稚嫩到成熟内敛调性的蜕变。而这次全新发布的8848 M5手机也将科技轻奢的概念与腕表大师跨界共同跨界升级,独有的时间眼和20颗天然钻石双重奢华完成了一次智能时代向时间的致敬。

      在电子产品设计环境愈来愈复杂之下,IC设计不是只有数字及模拟的特性而已,特别是对于混合讯号(Mixed Signal)的设计环境,有日益增加的趋势,有鉴于此,北京赛车滚雪球EDA厂商近期积极推出延展性更佳的混合讯号功能验证平台,以抢攻EDA市场的未来商机。北京赛车八码滚雪球

网站地图