用于控制USB大容量存储设备的逻辑单元的方法和系统技术方案

技术编号:2913235 阅读:380 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种用于控制大容量存储设备的逻辑单元的方法和大容量存储设备、大容量存储设备驱动器以及大容量存储系统。其中,大容量存储设备通过USB接口连接到主计算机,在根据本发明专利技术的方法中:响应于对逻辑单元的添加和/或去除,在所述大容量存储设备上,动态管理与逻辑单元关联的逻辑单元表并产生相应的热插拔事件;以及将所述热插拔事件通知给所述主计算机。在本发明专利技术中,通过对逻辑单元的动态管理并产生相应的热插拔事件,以及将其报告给主机,实现了逻辑单元的即插即用。

【技术实现步骤摘要】

本专利技术涉瓦基于通用串行总线的大容量存储技术,更具体的,本专利技术 涉及一种用于控制大容量存^i殳备的逻辑单元的方法和大容量存^i殳备、 大容量存储设备驱动器以及大容量存储系统。
技术介绍
通用串行总线(USB)大容量存^i殳备类(USB mass storage device class )是由USB-IF ( USB实施者论坛)定义的运行在USB上的计算通信 协议集,其包括(l)USB大容量存储设备类控制/批量/中断(control/bulk/interrupt或CBI)传输;(2 ) USB大容量存储设备类批 量单独(bulk-only)传输。其还包括了以下的子类规范(1) USB大容 量存储设备类ATA命令块;(2) USB大容量存^i殳备类UFI命M范;(3) USB大容量存^i殳备类RBC命4^L范;(4) USB大容量存储设 备类QIC-157命4*范;(5) USB大容量存^i殳备类SFF-8070i命令 规范;(6) SCSI透明命令集。前两个传输协议定义了数据/命令/状态在 USB上的传输方法CBI传输规范使用control/bulk/interrupt三种类型的 端点进行数据/命令/状态传送,而bulk-only传输规范仅仅使用批量(bulk) 端点来传输数据/命令/状态。大多数USB存储设备都是基于bulk-only传 输规范和SCSI透明命令集设计的。bulk-only在大部分通信中使用批量传 输,只有在bulk端点上清除阻塞(Stall)状况,以及传送特定类别请求(class-specific request)时才使用控制传输。通常将诸如硬盘驱动器(HDD)等遵循该规范连接到计算机的存储设 备称为USB大容量存储设备。典型地,将通过USB批量单独(bulk-only ) 传输协议与计算机通信的存储设备称为USB批量单独传输大容量存储设5备(USB bulk-only mass storage device)。这种i殳备被广泛地用在个人计 算机和嵌入式系统中,例如USB磁盘/软盘/CD/DVD、多功能媒体读卡器、 移动电话、照相机和扫描仪。USB批量单独传输大容量存储设备支持共享共同设备特性的多个逻 辑单元,逻辑单元可以是物理存储单元或者逻辑地址空间,每个逻辑单元 可以由逻辑单元号(LUN)来标识。图1为例示具有多个逻辑单元的USB大容量存储系统的示意图,如图 所示,大容量存^i殳备通过USB批量单独接口 ( USB bulk-only interface) 与主机连接。大容量存^i殳备包括本地逻辑单元和远程逻辑单元,这些逻 辑单元既可以为物理器件,也可以是通过网络或者其它接口甚至通过各种 虚拟化技术连接到大容量存储设备的逻辑地址空间。在某些应用中,可能 需要在设备工作时动态地将新的逻辑单元添加到该大容量存储设备上,或 从其上去除现有的逻辑单元。图2为例示USB大容量存储系统的结构框图。如图2所示,该系统包 括位于主计算机(下文中也称为"主机,,)上的USB大容量存储设备驱动 器堆栈20和USB主机控制器21,以及大容量存储设备22。大容量存^i殳 备驱动器堆栈20是一个多层次的结构,在驱动器堆栈20的底层是USB控 制器驱动器201 (controller driver)和USB核心驱动器202 (USB core driver),用来负责USB总线的数据传输。USB核心驱动器202提供了 一组通用接口来供USB驱动器来访问和控制USB硬件(即主机控制器和 大容量存储设备)的7>用接口,因此无需担心系统中存在的不同类型的 USB主机控制器21。在驱动器堆栈20的中间层是USB大容量存^i殳备 驱动器203 ( USB mass storage driver),负责实现USB大容量存^i殳备 类的各种子类规范和传输协议,例如典型的SCSI透明子类规范和 bulk-only传输协议。驱动器堆栈20上层是存储介质访问驱动器,对于大 多数USB bulk-only大容量存^i殳备22而言,进行具体的存储介质访问操 作一般是通过SCSI命令来完成的,所以在驱动器堆栈20的最上层一般是 SCSI驱动器204 (下文中对该层将直接使用SCSI驱动器来描述)。但是本领域技术人员可以理解,不同的子类规范,其上层可以有不同的驱动器。USB大容量存储器驱动器203保存了设备特定的配置信息,并提供给上层 存储介质访问驱动器(SCSI驱动器204)适当的接口来使其与USB大容 量存储设备22通过不同的子类规范和传输协议通信。USB大容量存储器 驱动器203也需要将设备信息向上层驱动器传送,对于大多数bluk-oiily 存储设备而言,传送到SCSI驱动器204。 SCSI驱动器204认为每个有效 的逻辑单元都是独立的存储源,它将为其创建内部的SCSI设备对象,并 为每个设备对象在文件系统中注册独立的接入点,例如在linux系统中的 /dev/sccP或者/dev/sd、通过这些接入点,用户才莫式的应用可以将操作请求 发送到SCSI驱动器204, SCSI驱动器204将这些请求转换为具体的SCSI 命令,并通过内部的SCSI设备对象将它们向下传递到USB大容量存储器 驱动器203 ,以最终到达大容量存储设备22 。一般而言,正常的USB bulk-only大容量存^i殳备的引导过程包括3 级初始化1. 第一级-USB核心驱动器初始化当插入USB大容量存储设备时,主计算机上的USB核心驱动器负责 为该USB设备分配唯一的地址。主计算机也会发送请求到USB设备以获 取配置信息来确定其能力和特性(capabilities and characteristics) 。 USB 设备可以有一种或多种配置,而在每一种配置中,设备可以支持多个接口。 接口是对主才几呈现单一特性或功能的端点的相关集。典型的USB批量单独 传输大容量存储i殳备包括缺省控制通道(Default Control Pipe)(端点0 ) 和bulk-only传输接口。2. 第二级-USB大容量存^i殳备类初始化USB大容量存储器驱动器将特定类别的请求"获得最大的逻辑单元 号"("GETMAXLUN")发送给缺省控制通道,通过返回的结果来确 定该设备支持的逻辑单元数。大容量存储设备的逻辑单元数将从LUN 0开 始到最大值LUN15 (十六进制为0x0F)连续编号。此外,USB大容量存 ^i殳备驱动器将分配所需的资源并记录相应的信息,还向SCSI驱动器报7告该存储i殳备。3.第三级-SCSI层初始化SCSI驱动器将发送"查询"("INQUIRY")命令给从O到最大LUN 编号的逻辑单元以完成初始化过程。每个逻辑单元被认为是单独的存储装 置,对"查询"命令的响应指示这些单独的存储装置的特性。最后SCSI 驱动器将所有这些存储装置提供给操作系统。这样,USB bulk-only大容量存^i殳备完成其引导过程。现在所有的 逻辑单元都是可操作的。虽然USB技术支持USB设备的热即插即用,但是USB大容量存储设 备不支持其逻辑单元的热即插即用。图3和图4分别为现有技术的对大容 量存储设备的逻辑单元进行添加和去除的流程图。如图3和图4所示本文档来自技高网...

【技术保护点】
一种用于控制大容量存储设备的逻辑单元的方法,所述大容量存储设备通过USB接口连接到主计算机,所述方法包括: 响应于对逻辑单元的添加和/或去除,在所述大容量存储设备上,动态管理与逻辑单元关联的逻辑单元表并产生相应的热插拔事件;以及   将所述热插拔事件通知给所述主计算机。

【技术特征摘要】

【专利技术属性】
技术研发人员:谌伟孟宪栋兰龙文徐健
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1