Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 操作系统 > Linux > Linux PCI设备驱动程序开发 --- PCI 体系结构(一)
【标  题】:Linux PCI设备驱动程序开发 --- PCI 体系结构(一)
【关键字】:Linux,PCI,---,PCI
【来  源】:http://blog.csdn.net/fengyv/archive/2006/06/19/813717.aspx

Linux PCI设备驱动程序开发 --- PCI 体系结构(一)

Your Ad Here
       PCI是一种广泛采用的总线标准,它提供了许多优于其它总线标准(如EISA)的新特性,目前已经成为计算机系统中应用最为广泛,并且最为通用的总线标准。Linux的内核能较好地支持PCI总线,本文以Intel 386体系结构为主,探讨了在Linux下开发PCI设备驱动程序的基本框架。

PCI总线系统体系结构
PCI是外围设备互连(Peripheral Component Interconnect)的简称,作为一种通用的总线接口标准,它在目前的计算机系统中得到了非常广泛的应用。PCI提供了一组完整的总线接口规范,其目的是描述如何将计算机系统中的外围设备以一种结构化和可控化的方式连接在一起,同时它还刻画了外围设备在连接时的电气特性和行为规约,并且详细定义了计算机系统中的各个不同部件之间应该如何正确地进行交互。
无论是在基于Intel芯片的PC机中,或是在基于Alpha芯片的工作站上,PCI毫无疑问都是目前使用最广泛的一种总线接口标准。同旧式的ISA总线不同,PCI将计算机系统中的总线子系统与存储子系统完全地分开,CPU通过一块称为PCI桥(PCI-Bridge)的设备来完成同总线子系统的交互,如图1所示。

1 PCI子系统的体系结构
由于使用了更高的时钟频率,因此PCI总线能够获得比ISA总线更好的整体性能。PCI总线的时钟频率一般在25MHz33MHz范围内,有些甚至能够达到66MHz或者133MHz,而在64位系统中则最高能达到266MHz。尽管目前PCI设备大多采用32位数据总线,但PCI规范中已经给出了64位的扩展实现,从而使PCI总线能够更好地实现平台无关性,现在PCI总线已经能够用于IA-32AlphaPowerPCSPARC64IA-64等体系结构中。
PCI总线具有三个非常显著的优点,使得它能够完成最终取代ISA总线这一历史使命:
  • 在计算机和外设间传输数据时具有更好的性能;
  • 能够尽量独立于具体的平台;

  • 可以很方便地实现即插即用。
2是一个典型的基于PCI总线的计算机系统逻辑示意图,系统的各个部分通过PCI总线和PCI-PCI桥连接在一起。从图中不难看出,CPURAM需要通过PCI桥连接到PCI总线0(即主PCI总线),而具有PCI接口的显卡则可以直接连接到主PCI总线上。PCI-PCI桥是一个特殊的PCI设备,它负责将PCI总线0PCI总线1(即从PCI主线)连接在一起,通常PCI总线1称为PCI-PCI桥的下游(downstream),而PCI总线0则称为PCI-PCI桥的上游(upstream)。图中连接到从PCI总线上的是SCSI卡和以太网卡。为了兼容旧的ISA总线标准,PCI总线还可以通过PCI-ISA桥来连接ISA总线,从而能够支持以前的ISA设备。图中ISA总线上连接着一个多功能I/O控制器,用于控制键盘、鼠标和软驱。

2 PCI系统示意图
在此我只对PCI总线系统体系结构作了概括性介绍,如果读者想进一步了解,David A RuslingThe Linux Kernelhttp://tldp.org/LDP/tlk/dd/pci.html)中对LinuxPCI子系统有比较详细的介绍。

 上一篇:《实例解读 linux 网卡驱动
下一篇:《Linux PCI设备驱动程序开发 --- PCI 体系结构(二)

Linux下PCI设备驱动程序开发 --- linux 驱动框架(二):【上一篇】
如何用Linux做代理服务器:【下一篇】
【相关文章】
  • Linux下PCI设备驱动程序开发 --- linux 驱动框架(二)
  • Linux下PCI设备驱动程序开发 --- PCI驱动程序实现(三)
  • 开源在中国的商业发展前景----CSDNF2F俱乐部开源系列活动
  • 关于Linux下中文显示不正常的问题的一点经验
  • linux库函数
  • 从对Linux内核守护者的采访思考中国开源发展
  • 一个分层的小工程(医院信息自动化管理系统)----数据层部分(DataAccess)
  • ASP_NET 2_0 监视你的应用---Trace----Error Handing---Web Event
  • CreatePopup()函数的使用---弹出广告
  • 设计模式------单例模式
  • 【随机文章】
  • java对象的持久化(非ORM)
  • 第4代白盒测试方法之“为什么要做白盒测试”
  • SED,AWK学习笔记Part 2-----sed编辑器
  • NT平台拨号连接密码恢复原理
  • 破解无盘网吧(全攻略)
  • 揪出元凶:是谁拖慢了你的系统?
  • 初尝结对编程的甜头
  • 分析Northwind数据库整体图
  • NAS的外观
  • [History]W. Richard Stevens
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.