毕业论文

打赏
当前位置: 毕业论文 > 电子通信 >

WinDriver基于PCIE的数据存储卡开发+文献综述(5)

时间:2017-05-10 22:29来源:毕业论文
IO Write(IO写) 非转发事务 Configuration Read(Type0、Type1)(配置读) 非转发事务 Configuration Write(Type0、Type1)(配置写) 非转发事务 Message(消息) 转发事


IO Write(IO写)    非转发事务
Configuration Read(Type0、Type1)(配置读)    非转发事务
Configuration Write(Type0、Type1)(配置写)    非转发事务
Message(消息)    转发事务

2.4   PCI Express设备层次
    PCI Express规范规定对于设备的设计采用分层的结构,如图2.2所示,由事务层、数据链路层和物理层组成,各层又分为发送和接收两功能块。沿纵方向看,三层中的发送功能块构成设备的发送部分,处理向外的传输业务;三层中的接收功能块构成设备的接收部分,处理向内的传输业务。
    在设备的发送部分,首先根据来自设备核和应用程序的信息,在事务层形成事务包(TLP),贮存在发送缓冲器里,等待推向下层;在数据链路层,在TLP包上再串接一些附加信息,这些信息是对方接收TLP包时进行错误检查要用到的;在物理层,对TLP包进行编码,占用链路中的可用通路,从差分发送器发送出去。
    在设备的接收部分,在物理层,接收器对进来的TLP包的内容进行译码,并将译码结果推向上一层;在数据链路层,对进来的包进行错误检查,若无错,将该包上推至事务层;事务层把TLPs包放入接收缓冲器,并将包内信息转换为能由设备核和应用程序处理的表示形式。

2.5   PCI Express中断方式
    在PCI系统中,设备使用INTx#边带(side—Band)信号提交中断请求,而在PCI Express系统中,设备采用带内(in—Band)方式向CPU提中断请求。
2.5.1  MSI消息中断
    消息信号中断MSI并不属于PCI Express的消息事务。当设备向CPU申请中断时,它启动存储器写事务,所写入的存储器地址是系统专门留做中断提交用的,目标是存在于根联合体内的中断控制器,以此区别于其他存储器写事务。所写入的IDW数据时提交中断请求的那个设备所对应的中断向量(消息数据寄存器的内容),然后根联合体中断CPU,将向量以平台专用的方式提交给CPU。在得到中断向量之后,CPU可立即调用中断服务程序为请求中断的设备服务。MSI没有共享中断源,不需要驱动程序再去判断确认产生中断的设备,省去识别中断源的开销,是中断效率较高的一种机制。但是本系统未能实现MSI消息中断。
2.5.2  INTx消息中断
    在PCI系统中,设备采用的是INTx#共享方式,当设备申请中断请求时,将INTx#置为有效(低电平有效)。CPU响应中断请求时,首先判断是哪个设备提交的中断请求,这一任务一般是由中断服务程序(驱动程序)来完成。因此,在设备发出请求时,应设置设备状态寄存器中的相关中断标记位,以表示中断正挂起等待。在判断中断源之后,设备应该撤销INTx#信号。
    在PCI Express系统中,某些设备在某一时段(加载操作系统的引导过程)或不允许使用消息信号中断MSI,就可以使用与PCI兼容的虚拟INTx#信号来发送中断。
    发出一个虚拟INTx#信号需要两条INTx消息。
    (1)设备先发出Assert —INTx消息,指示虚拟INTx#信号由高电平跳到低电平,告知上游设备INTx中断被肯定。
    (2)进入中断服务以后,设备再发送对应的Deassert —INTx消息,指示虚拟INTx#信号由低电平跳到高电平,告知上游设备INTx中断被否定。

2.6  PCI Express配置空间
    PCI Express规范PCI Express设备的配置空间为4KB。在加载系统初期,软件枚举总线的设备。根联合体发起配置事务来读或某功能的配置寄存器,通过访问这些寄存器来发现某个功能是否存在。 WinDriver基于PCIE的数据存储卡开发+文献综述(5):http://www.youerw.com/tongxin/lunwen_6744.html
------分隔线----------------------------
推荐内容