PCIe总线实现了一种叫做Quality of Service(QoS)的机制.doc

上传人:白大夫 文档编号:3270419 上传时间:2019-08-07 格式:DOC 页数:2 大小:14.50KB
返回 下载 相关 举报
PCIe总线实现了一种叫做Quality of Service(QoS)的机制.doc_第1页
第1页 / 共2页
亲,该文档总共2页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《PCIe总线实现了一种叫做Quality of Service(QoS)的机制.doc》由会员分享,可在线阅读,更多相关《PCIe总线实现了一种叫做Quality of Service(QoS)的机制.doc(2页珍藏版)》请在三一文库上搜索。

1、PCIe总线实现了一种叫做Quality of Service(QoS)的机制前面的文章中介绍过,为了保证视频、音频等数据得到优先传输,PCIe总线实现了一种叫做Quality of Service(QoS)的机制。QoS可以满足视频、音频等对Latency和实时性(Isochronous)要求比较高(一般不可以被打断)的应用需求。QoS主要通过VC(Virtual Channel)和TC(Traffic Class)来实现。VC的相关寄存器位于PCIe配置空间的扩展部分(PCIe Extended Capability Space),如下图所示:前面的文章中介绍过,每一个VC都有独立的Buf

2、fer,某一个VC Buffer满了并不会影响其他VC的使用。但是只靠VC并不能实现QoS中的优先级的功能,这还需要TC(Traffic Class)的支持。TC的值由TLP Header中的Byte1的bit6:4定义,如下图所示。显然TC值的范围为07,值越大优先级越高,默认为0(优先级最低)。在初始化的时候,PCIe驱动程序会为每一种类型的包分配好合适的TC值(优先级)。如果PCIe驱动程序没有找到PCIe Extended Capability Space,则认为该设备只有一个VC,即VC0。此时再为每一个TLP分配不同的TC值,显然是没有意义的。因此会默认采用TC0/VC0组合,即不

3、支持QoS功能。换一句话说,如果某一个PCIe设备只支持一个VC(VC0),那么就没有QoS什么事了。注:本次连载的博客只是简单地介绍QoS的功能和应用,关于QoS的详细内容,如VC仲裁,端口仲裁,实时性(Isochronous)等相关内容,还请参考PCIe Spec的相关章节。PCIe驱动程序(配置软件)通过修改VC资源控制寄存器(VC Resource Control Register)中的TC/VC Map位来实现TC/VC Mapping。同时通过VC ID位来选择相应的VC。如下图所示:图中的例子,TC0、TC1对应VC0,而TC2TC4对应的是VC3。TC/VC Mapping采用了一种灵活的机制,但是仍然需要注意以下几点: TC/VC Mapping是针对Link两端的端口(Ports)的; TC0会被自动地Map到VC0,且只能Map到VC0; 其他的TC可以被Map到任意的VC上; 一个TC一般最多只能Map到一个VC上; 可以有TC或者VC不被使用。如果Link的两个端口(Ports)中,VC数量不一致,则该Link只能服从VC数量少的端口,如下图所示:PCIe驱动程序可以通过查询扩展配置空间中的Extended VC Count来确定该端口支持的VC数量,如下图所示:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1