PCI总线

PCI(Peripheral Component Interconnect,外设部件互连标准,或外围器件互联)是目前个人电脑中使用最为广泛的接口,几乎所有的主板产品上都带有这种插槽。PCI插槽也是主板带有最多数量的插槽类型,在目前流行的台式机主板上,ATX结构的主板一般带有5~6个PCI插槽,而小一点的MATX主板也都带有2~3个PCI插槽,可见其应用的广泛性。

PCI是由PCISIG (PCI Special Interest Group)推出的一种局部并行总线标准。PCI总线是由ISA(Industy Standard Architecture)总线发展而来的,ISA并行总线有8位和16位两种模式,时钟频率为8MHz,工作频率为33MHz/66MHz。是一种同步的独立于处理器的32位或64位局部总线。从结构上看,PCI是在CPU的供应商和原来的系统总线之间插入的一级总线,具体由一个桥接电路实现对这一层的管理,并实现上下之间的接口以协调数据的传送。从1992年创立规范到如今,PCI总线已成为了计算机的一种标准总线。已成为局部总线的新标准,广泛用于当前高档微机、工作站,以及便携式微机。主要用于连接显示卡、网卡、声卡。PCI总线是32位同步复用总线。其地址和数据线引脚是AD31~AD0。PCI的工作频率为33MHz。

PCI总线是一种树型结构,并且独立于CPU总线,可以和CPU总线并行操作。PCI总线上可以挂接PCI设备和PCI桥片,PCI总线上只允许有一个PCI主设备,其他的均为PCI 从设备,而且读写操作只能在主从设备之间进行,从设备之间的数据交换需要通过主设备中转。

PCI总线结构:

在处理器系统中,含有PCI总线和PCI总线树这两个概念。这两个概念并不相同,在一颗PCI总线树中可能具有多条PCI总线,而具有血缘关系的PCI总线组成一颗PCI总线树。PCI总线由HOST主桥或者PCI桥管理,用来连接各类设备,如声卡、网卡和IDE接口卡等。在一个处理器系统中,可以通过PCI桥扩展PCI总线,并形成具有血缘关系的多级PCI总线,从而形成PCI总线树型结构。在处理器系统中有几个HOST主桥,就有几颗这样的PCI总线树,而每一颗PCI总线树都与一个PCI总线域对应。

与HOST主桥直接连接的PCI总线通常被命名为PCI总线0。考虑到在一个处理器系统中可能有多个主桥。

PCI总线取代了早先的ISA总线。当然与在PCI总线后面出现专门用于显卡的AGP总线,与现在的PCI Express总线相比,功能没有那么强大,但是PCI能从1992用到现在,说明他有许多优点,比如即插即用(Plug and Play)、中断共享等。在这里我们对PCI总线做一个深入的介绍。

从数据宽度上看,PCI总线有32bit、64bit之分;从总线速度上分,有33MHz、66MHz两种。目前流行的是32bit @ 33MHz,而64bit系统正在普及中。改良的PCI系统,PCI-X,最高可以达到64bit @ 133MHz,这样就可以得到超过1GB/s的数据传输速率。如果没有特殊说明,以下的讨论以32bit @ 33MHz为例。

不同于ISA总线,PCI总线的地址总线与数据总线是分时复用的。这样做的好处是,一方面可以节省接插件的管脚数,另一方面便于实现突发数据传输。在做数据传输时,由一个PCI设备做发起者(主控,Initiator或Master),而另一个PCI设备做目标(从设备,Target或Slave)。总线上的所有时序的产生与控制,都由Master来发起。PCI总线在同一时刻只能供一对设备完成传输,这就要求有一个仲裁机构(Arbiter),来决定在谁有权力拿到总线的主控权。

当PCI总线进行操作时,发起者(Master)先置REQ#,当得到仲裁器(Arbiter)的许可时(GNT#),会将FRAME#置低,并在AD总线上放置Slave地址,同时C/BE#放置命令信号,说明接下来的传输类型。所有PCI总线上设备都需对此地址译码,被选中的设备要置DEVSEL#以声明自己被选中。然后当IRDY#与TRDY#都置低时,可以传输数据。当Master数据传输结束前,将FRAME#置高以标明只剩最后一组数据要传输,并在传完数据后放开IRDY#以释放总线控制权。

这里我们可以看出,PCI总线的传输是很高效的,发出一组地址后,理想状态下可以连续发数据,峰值速率为132MB/s。实际上,目前流行的33M@32bit北桥芯片一般可以做到100MB/s的连续传输。

PCI总线特点

(1)传输速率高最大数据传输率为132MB/s,当数据宽度升级到64位,数据传输率可达264MB/s。这是其他总线难以比拟的。它大大缓解了数据I/O瓶颈,使高性能CPU的功能得以充分发挥,适应高速设备数据传输的需要。

(2)多总线共存采用PCI总线可在一个系统中让多种总线共存,容纳不同速度的设备一起工作。通过HOST-PCI桥接组件芯片,使CPU总线和PCI总线桥接;通过PCI-ISA/EISA桥接组件芯片,将PCI总线与ISA/EISA总线桥接,构成一个分层次的多总线系统。高速设备从ISA/EISA总线卸下来,移到PCI总线上,低速设备仍可挂在ISA/EISA总线上,继承原有资源,扩大了系统的兼容性。

(3)独立于CPU PCI总线不依附于某一具体处理器,即PCI总线支持多种处理器及将来发展的新处理器,在更改处理器品种时,更换相应的桥接组件即可。

(4)自动识别与配置外设 用户使用方便。

(5)并行操作能力。

PCI总线的主要性能

(1)总线时钟频率33.3MHz/66.6MHz。

(2)总线宽度32位/64位。

(3)最大数据传输率132MB/s(264MB/s)。

(4)支持64位寻址。

(5)适应5V和3.3V电源环境。

即插即用的实现

所谓即插即用,是指当板卡插入系统时,系统会自动对板卡所需资源进行分配,如基地址、中断号等,并自动寻找相应的驱动程序。而不象旧的ISA板卡,需要进行复杂的手动配置。

实际的实现远比说起来要复杂。在PCI板卡中,有一组寄存器,叫"配置空间"(Configuration Space),用来存放基地址与内存地址,以及中断等信息。

以内存地址为例。当上电时,板卡从ROM里读取固定的值放到寄存器中,对应内存的地方放置的是需要分配的内存字节数等信息。操作系统要跟据这个信息分配内存,并在分配成功后把相应的寄存器中填入内存的起始地址。这样就不必手工设置开关来分配内存或基地址了。对于中断的分配也与此类似。

中断共享的实现

ISA卡的一个重要局限在于中断是独占的,而我们知道计算机的中断号只有16个,系统又用掉了一些,这样当有多块ISA卡要用中断时就会有问题了。

PCI总线的中断共享由硬件与软件两部分组成。

硬件上,采用电平触发的办法:中断信号在系统一侧用电阻接高,而要产生中断的板卡上利用三极管的集电极将信号拉低。这样不管有几块板产生中断,中断信号都是低;而只有当所有板卡的中断都得到处理后,中断信号才会恢复高电平。

软件上,采用中断链的方法:假设系统启动时,发现板卡A用了中断7,就会将中断7对应的内存区指向A卡对应的中断服务程序入口ISR_A;然后系统发现板卡B也用中断7,这时就会将中断7对应的内存区指向ISR_B,同时将ISR_B的结束指向ISR_A。以此类推,就会形成一个中断链。而当有中断发生时,系统跳转到中断7对应的内存,也就是ISR_B。ISR_B就要检查是不是B卡的中断,如果是,要处理,并将板卡上的拉低电路放开;如果不是,则呼叫ISR_A。这样就完成了中断的共享。

通过以上讨论,我们不难看出,PCI总线有着极大的的优势。而近年来的市场情况也证实了这一点。

PCIe总线

PCI-Express(peripheral component interconnect express,高速串行计算机扩展总线标准)原名“3GIO”,是由英特尔在2001年提出的,旨在替代旧的PCI,PCI-X和AGP总线标准,是最新的总线和接口标准。

PCIe属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享总线带宽,主要支持主动电源管理,错误报告,端对端的可靠性传输,热插拔以及服务质量(QOS)等功能。特点是数据传输速率高,潜力大。

PCIe交由PCI-SIG(PCI特殊兴趣组织)认证发布后才改名为“PCI-Express”,简称“PCI-e”。它的主要优势就是数据传输速率高,而且还有相当大的发展潜力。

PCI Express也有多种规格,从PCI Express x1到PCI Express x32,能满足将来一定时间内出现的低速设备和高速设备的需求。PCI-Express的接口是PCIe 3.0接口,其比特率为8Gbps,约为上一代产品带宽的两倍,并且包含发射器和接收器均衡、PLL改善以及时钟数据恢复等一系列重要的新功能,用以改善数据传输和数据保护性能。

PCIe闪存卡的供应商包括:INTEL、IBM、LSI、OCZ、三星(计划中)、SanDisk、STEC、SuperTalent和东芝(计划中)等,而针对海量的数据增长使得用户对规模更大、可扩展性更强的系统所应用,PCIe 3.0技术的加入最新的LSI MegaRAID控制器及HBA产品的出色性能,就可以实现更大的系统设计灵活性。

PIC单片机

PIC(Peripheral Interface Controller,单片微型计算机,single-chip microcomputer,由于单片机微计算机常用于当控制器,又称微控制器(MCU,microcontroller),台湾省俗称“单芯片”;中国大陆俗称“单片机”)

PIC是把中央处理器、存储器、定时/计数器(timer/counter)、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机。其主要应用于功能较为单一的物件中。开发和控制外围设备的集成电路与应用在个人计算机中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器;

绝大多数的单片机都是基于冯·诺伊曼结构的,这种结构清楚地定义了嵌入式系统所必需的四个基本部分:一个中央处理器核心,程序存储器(只读存储器或者闪存)、数据存储器(随机存储器)、一个或者更多的定时/计数器,还有用来与外围设备以及扩展资源进行通信的输入/输出端口——所有这些都被集成在单个集成电路芯片上。

说单片机与通用型中央处理单元芯片不同,是因为前者一般很容易配合最小型的外部支持芯片制成工作计算机。这样就可以很容易的把单片机系统植入装置内部来控制装置了。近年来为了在指令和数据上使用不同的字宽,并提高处理器流水线速度,哈佛结构在微控制器(Microcontrollers)和数字信号处理器也逐渐得到了广泛的应用。

传统的微处理器是不允许这么做的。它要完成单片机的工作,就必须连接一些其他芯片。比如说,因为芯片上没有数据存储器,就必须要添加一些RAM的存储芯片,虽然所添加存储器的容量很灵活,但是至少还是要添加。另外还需要添加很多连线来传递芯片之间的数据。与以上的情况相比,单片机的工作则相对独立,一个典型的微控制器只需要一个时钟发生器和很少的RAM和ROM(或者EPROM, EPROM)就可以在软件和晶振下工作了。同时,微控制器具有丰富的输入输出设备,例如模拟数字转换器、定时器、串口,以及其他串行通讯接口,比如IC,串行周边接口,控制器局域网等。通常,这些集成在内部的设备可以通过特殊的指令来操作。

单片机时钟频率通常较同时代的计算机芯片低,但它价格低廉,能够提供充足的程序存储器、丰富的片上接口。某些架构的单片机生产厂商众多,例如8051系列、Z80系列。一些现代的微控制器支持一些内建的高级编程语言,比如BASIC(培基)语言、C语言、C++等。

单片机的比特数

根据总线或数据寄存器的宽度,单片机又分为4位、8位、16位和32位单片机。4位单片机多用于冰箱、洗衣机、微波炉等家电控制中;8位、16位单片机主要用于一般的控制领域,一般不使用操作系统;32位用于网络操作、多媒体处理等复杂处理的场合,一般要使用嵌入式操作系统。

PCI、PCIE、PIC相关推荐

  1. PCI、PCI-X、PCI-E、PCI-E Card、Mini PCI-E、M.2、Add-in Card 它们有啥区别?这些概念你搞清楚了吗?

    搞硬件或通信的"攻城狮"们,免不了要和各种通信协议及接口打交道.比如,我们经常接触PCI.PCI-X.PCI-E.PCI-E Card.Mini PCI-E.M.2(NGFF).A ...

  2. PCI、PCIe、Mini PCIe、SATA、mSATA、M.2

    PCI && PCIe (Peripheral Component Interconnect,PCI)外设部件互联标准.它是目前个人电脑中使用最为广泛的接口,几乎所有的主板产品上都带有 ...

  3. 选购硬盘HDD、SSD、SSHD、IDE、SATA、SCSI、SAS、PCIe、M.2、USB

    文章转载于选购硬盘HDD.SSD.SSHD.IDE.SATA.SCSI.SAS.PCIe.M.2.USB 选购硬盘主要参数 选购硬盘主要看三个参数:硬盘类型.接口类型.存储容量. 硬盘类型看用途,做大 ...

  4. (转)科普:SATA、PCIe、AHCI、NVMe

    原文链接:https://forum.51nb.com/thread-1670848-1-1.html IT 界总喜欢发明新名词.而且同一个东西,可能有几个不同的名字.同一个名字,又可能指不同的东西. ...

  5. 笔记本固态硬盘选型(总线、接口、协议、SATA、PCIe、AHCI、NVMe、M.2、NGFF)

    文章目录 固态硬盘选型 1.总线 基本概念 常见总线 SATA PCIe 2.协议 基本概念 常见硬盘协议 AHCI NVMe 3.接口 基本概念 常见接口 SATA mSATA SATA Expre ...

  6. M.2、PCIe、mSATA接口的SSD 速度性能如何?哪一个是装机首选

    如今固态硬盘已是很多人电脑里不可或缺的一款硬件,已经是装机标配了,但是大家都知道,固态硬盘发展至今有很多不同的接口,比如:SATA.M.2.PCIe.mSATA等,那么他们之间的区别是什么呢?跟着宏旺 ...

  7. NVMe、AHCI、PCIe、SATA、NGFF接口、协议小结

    这些接口.协议经常出现,搞的自己晕头转向,所以特意找资料总结一下,本文不涉及详细的接口标准及协议内容.在遇到这些名称的时候,能帮助区分它们的不同就好. 首先有三个总的分类,即 通讯协议.物理接口标准( ...

  8. PCI、PCIE、NVME;ATA、SATA、AHCI及M.2接口简单辨别

    PCIe总线概述 随着现代处理器技术的发展,在互连领域中,使用高速差分总线替代并行总线是大势所趋.与单端并行信号相比,高速差分信号可以使用更高的时钟频率,从而使用更少的信号线,完成之前需要许多单端并行 ...

  9. PCI、PCIX、PCIE、CPCI介绍

    一.PCI: PCI,外设组件互连标准(Peripheral Component Interconnection),是一种由英特尔(Intel)公司1991年推出的用于定义局部总线的标准.此标准允许在 ...

  10. 关于PCI、PCIX、PCIE、CPCI

    一.PCI: PCI,外设组件互连标准(Peripheral Component Interconnection)     一种由英特尔(Intel)公司1991年推出的用于定义局部总线的标准.此标准 ...

最新文章

  1. wince 微软服务器,大众拥抱微软 推出WinCE 4.0 Pocket PC
  2. Graphviz-Gdot语言学习
  3. axios create拦截_Vue学习-axios
  4. tensorflow的数据输入
  5. python 切片函数,python切片详解
  6. float最大_Hard 级:二叉树中的最大路径和
  7. 谷歌电子市场开发记录(2)-框架搭建
  8. 游戏开发设计模式(一):单例模式
  9. 使用shell命令行查询wifi信号强度
  10. 英文对“ Big O”符号的解释是什么?
  11. 【运营数据分析】运营数据分析怎么做?建立运营数据分析思维
  12. IPTV知识科普全面,什么是IPTV?IPTV架构部署
  13. 按键精灵助手无法连接模拟器解决方案【适用任何模拟器】
  14. mysql超市管理系统怎么写_java+mysql超市进销存管理系统设计+源代码
  15. cobalt strick 4.0 系列教程 (5)--- 获取立足点
  16. AE新手基础入门教程50套从新手到高手
  17. 输出两个数之间的水仙花数C++
  18. landsat8 编辑头文件信息
  19. 16进制高精度计算的加减乘20211001
  20. linux sed替换文件,linux的sed命令替换文件

热门文章

  1. Github上传代码及解决main主分支问题
  2. java se 知识点(一)
  3. 关于PV、EV、AC、CV、SV、CPI、SPI、BAC、ETC、EAC的解析及计算
  4. 教大家通过node爬取b站api数据
  5. 报错Could not find module ‘D:\Anaconda\lib\site-packages\scipy\.libs\
  6. 实用思维训练法让你摆脱固化的平面设计思维
  7. linux下STM32开发环境搭建
  8. 关键点提取:单目3D检测的点睛之笔
  9. 第三方公众号用 微信联合 登录
  10. 中国AI公司会议室取名简史