当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于通用串行总线(USB)命令排队的方法和装置制造方法及图纸

技术编号:7143637 阅读:257 留言:0更新日期:2012-04-11 18:40
提出了一种用于提高经由通用串行总线(USB)可访问的大容量存储类设备的性能的方法和装置。通过在USB主机中提供支持以允许在大容量存储类设备中支持命令排队和第一方DMA(FPDMA)来提高性能。

【技术实现步骤摘要】
【国外来华专利技术】用于通用串行总线(USB)命令排队的方法和装置领域本专利技术涉及通用串行总线(USB),具体涉及大容量存储类USB设备。背景通用串行总线(USB)是支持主计算机与多个可同时访问的设备(诸如可在主计算 机外部的外围设备)之间的数据交换的串行总线标准。USB设备包括人类接口设备,例如 鼠标、键盘、图形输入板和游戏控制器;成像设备,例如扫描仪、打印机和照相机;以及存储 设备,例如紧致盘只读存储器(CD-ROM)、软盘驱动器和数字视频盘(DVD)。USB主机经由物理USB发起去往/来自可访问USB设备的所有数据传输。数据传 输(事务)在主控制器发送标识数据传输的类型和方向、USB设备的地址以及该设备中的 端点编号的USB分组时发起。端点是作为USB主机与USB设备之间的通信流的终点的USB 设备的唯一可标识部分。端点方向可以是输入(去往主机)或输出(来自主机)。USB主机与USB设备之间的数据和控制交换被支持作为一组单向或双向逻辑管 道。逻辑管道是USB主机与USB设备中的端点之间的逻辑抽象,用于在USB主机与USB设备 之间交换数据和控制分组。该USB设备可在多个逻辑管道(管道束)上向主机传输数据, 例如可能存在用于向USB设备中的输出端点传输数据的独立的单向逻辑管道和用于从USB 设备中的输入端点向USB主机传输数据的另一单向逻辑管道。来自现有工业标准存储协议的命令集可用于在USB主机与大容量存储类USB设备 之间通信,例如小型计算机系统接口(SCSI)协议。SCSI协议是用于在主机系统与诸如存 储设备的设备之间传输数据的标准集。SCSI定义发起方(例如主机)与目标(例如设备) 之间的通信,其中发起方发送命令至目标。按照命令描述符块(CDB)编码的SCSI命令从发 起方被发送至目标。该CDB包括操作码和命令专属参数。SCSI命令包括读取命令和写入命 令。在完成数据传输(例如向目标传输写入数据和向发起方传输读取数据)之后,目标返 回指示该命令是否成功完成的状态码。USB通过将SCSI命令封装于USB分组的USB包装(头部)中来与大容量类USB设 备通信。例如,USB主机所使用的命令集可以是通过SCSI主命令-2(SPCD定义的命令集。一对单向逻辑管道被配置用于传输在主机与大容量类USB设备之间交换的SCSI ⑶B、SCSI状态码以及数据。输入管道(在USB设备中的端点与USB主机之间)被配置成 将数据和命令传输至该设备。输出管道(在USB设备中的端点与USB主机之间)被配置成 将数据和状态从该设备传输至USB主机。每个逻辑管道与主机(发起方)中的用于存储要 经由USB传输的数据的逻辑缓冲器相关联。附图说明随着以下详细描述的进行,并参考其中相同标记描述相同部件的这些附图,要求 保护的主题的实施例的特征将变得显而易见,在附图中图1是根据本专利技术原理的包括USB主机和大容量存储类USB设备的系统的实施例 的框图,该系统为该大容量存储类USB设备中的命令排队和/或无序命令处理提供支持;图2是图1中所示的管道束中的标准批量管道的客户机侧的框图;图3是根据本专利技术的原理的流式批量管道的实施例的框图;图4是示出为流式批量管道服务的用于输入或输出流端点流的流协议状态机的 实施例的状态图;图5是包括经由包括流管道的管道束IM通信的USB主机和大容量存储类USB设 备的系统的实施例的框图,该系统为该大容量存储类USB设备中的命令排队和/或无序命 令处理提供支持;图6是示出在该设备中实现的用于在该设备与主机之间的逻辑管道上传输数据 的方法的实施例的流程图;以及图7是包括USB主机和USB设备的系统的框图,该系统提供对USB设备中的命令 排队和/或无序命令处理的支持。虽然将参考要求保护的主题的说明性实施例继续进行以下详细描述,但该主题的 替代物、修改以及变型对本领域技术人员而言将显而易见。因此,要求保护的主题旨在被广 义地理解,而且仅如所附权利要求中所陈述的那样定义。具体实施例方式大容量存储类USB设备的示例是硬盘驱动器(硬驱动器、硬盘或固定盘驱动器)。 硬盘驱动器包括主轴,该主轴支持具有存储经数字编码数据的磁表面的一个或多个平坦圆 盘(盘片)。当盘片以例如每分钟4200转(RPM)、3600RPM、7200RPM或MOORPM的旋转速度 旋转时,读/写磁头沿着盘片移动以从盘片读取数据或将数据写入盘片。硬盘驱动器是将 数据按照一个或多个扇区分块传输至盘片(存储介质)或从盘片传输的块存储设备。扇区 存储固定数量的字节,例如512字节或IOM字节。存在许多串行的存储协议套件,诸如串行附连SCSI(SAQ和串行高级技术附件 (SATA)。SATA协议的一个版本在由串行ATA工作组于2003年1月7日公布的“串行ATA 高 速串行化 AT 附件(Serial ATA High Speed Serialized AT Attachment),,修订 1. Oa 中有 描述。SAS协议的一个版本在由美国国家标准协会(ANSI)于2003年9月18日公布的信息 技术标准国际委员会(INCITS)TIO技术委员会的工作草案美国国家标准项目T10/1562-D修订 1 中的“信息技术-串行附连SCSI-1. 1 (Information Technology-Serial AttachedSCSI-1. 1)”中有描述。典型地,诸如硬盘驱动器的存储设备支持硬盘驱动器中的多个命令的排队。当从 主机接收的多个命令可能在该硬盘驱动器中排队时,该硬盘驱动器可对排队命令的执行重 新排序。例如,可按照与当前读/写头位置的接近程度而不是按照命令接收的顺序来对存 储于命令队列中的读命令和写命令进行服务。对硬盘驱动器中的命令队列中存储的命令重 新排序的能力可导致平均访问时间的减少。一对单向逻辑管道与大容量存储类USB设备相关联,即输出逻辑管道以及输入逻 辑管道。SCSI命令和写数据在输出逻辑管道上从主机被发送至设备,而SCSI完成状态和读 取数据在输入逻辑管道上从设备被发送至主机。每个逻辑管道与主控制器中的存储器中的单个逻辑缓冲器相关联。因此,USB主 机可能每次仅向硬盘驱动器发出单个命令。因为每次仅有一个命令未完成,所以不能在该硬盘驱动器中使用存储协议所支持的命令排队和/或无序命令功能。在本专利技术的实施例中,主机计算机中的USB主控制器支持对每个逻辑管道的多个 逻辑缓冲器的管理,以允许可在USB物理总线上访问的大容量存储类USB设备中的大容量 存储设备命令排队和/或无序命令处理。图1是根据本专利技术原理的包括USB主机102和大容量存储类USB设备104的系统 100的实施例的框图,该系统100为该大容量存储类USB设备104中的命令排队和/或无序 命令处理提供支持。USB主机102包括USB主控制器106、USB系统108以及客户机110。该USB设备 104包括USB总线接口 112、USB逻辑设备114和功能116。USB逻辑设备114包括一个或 多个USB端点。在一个实施例中,该USB设备104是大容量存储类USB设备,例如盘驱动器、数字 视频盘(DVD)驱动器、紧致盘(⑶)驱动器、冗余独立磁盘阵列(RAID)、带驱动器或其它大容 量存储类存储设备。US本文档来自技高网...

【技术保护点】
1.一种方法,包括:在主机中分配多个缓冲器列表以存储将要在所述主机与设备之间的流式批量管道上移动的数据,每个缓冲器列表与一流标识符相关联;以及在所述设备与关联于所述流标识符的所述缓冲器列表之间的所述流式批量管道上启用数据传输。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:S·B·麦克高文
申请(专利权)人:英特尔公司
类型:发明
国别省市:US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1