CN114691023A - 读写设备的读写操作方法、读写设备及可读存储介质 - Google Patents

读写设备的读写操作方法、读写设备及可读存储介质 Download PDF

Info

Publication number
CN114691023A
CN114691023A CN202011638697.7A CN202011638697A CN114691023A CN 114691023 A CN114691023 A CN 114691023A CN 202011638697 A CN202011638697 A CN 202011638697A CN 114691023 A CN114691023 A CN 114691023A
Authority
CN
China
Prior art keywords
data
command
read
host
storage medium
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011638697.7A
Other languages
English (en)
Inventor
陈缘
李水青
刘程
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongshan Longsys Electronics Co ltd
Original Assignee
Zhongshan Longsys Electronics Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhongshan Longsys Electronics Co ltd filed Critical Zhongshan Longsys Electronics Co ltd
Priority to CN202011638697.7A priority Critical patent/CN114691023A/zh
Publication of CN114691023A publication Critical patent/CN114691023A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请适用于数据传输技术领域,提供了一种读写设备的读写操作方法、读写设备及可读存储介质,所述方法包括:获取主机发送的命令;解析所述命令,得到操作命令;执行所述操作命令,对缓存区的数据进行与所述操作命令对应的操作,并将所述操作命令对应的操作地址上的数据缓存至所述缓存区中。通过本申请实施例,执行操作命令对缓存区的数据进行操作的同时,并将操作命令对应的操作地址上的数据进行缓存,使得读写设备与主机之间传输数据传输与对数据进行操作同步执行,可以解决在数据传输量很大的情况下,传输速率的损耗的问题;提高了读写设备的数据传输速度。

Description

读写设备的读写操作方法、读写设备及可读存储介质
技术领域
本申请属于数据传输技术领域,尤其涉及一种读写设备的读写操作方法、读写设备及可读存储介质。
背景技术
目前,常用的读卡器、优盘类的读写设备,在读写处理算法上,基本采用通用串行总线(Universal Serial Bus,USB)传输与存储介质传输分步进行的方式,该方式在数据传输过程中读写速度很慢。尤其是在数据传输量很大的情况下,传输速率的损耗更加明显。因此,在如今追求速度的时代,如何提高读写装置的数据传输效率,是一个亟待解决的问题。
发明内容
本申请实施例提供了一种读写设备的读写操作方法、读写设备及可读存储介质,可以解决在数据传输量很大的情况下,传输速率存在损耗的问题。
第一方面,本申请实施例提供了一种读写设备的读写操作方法,包括:
获取主机发送的命令;解析所述命令,得到操作命令;执行所述操作命令,对缓存区的数据进行与所述操作指令对应的操作,并将所述操作命令对应的操作地址上的数据缓存至所述缓存区中。
在第一方面的一种可能的实现方式中,所述方法包括:
若解析所述命令得到读操作命令,则执行所述读操作命令,读取所述缓存区中的第一数据;向所述主机发送所述第一数据的同时,读取存储介质的第二数据并缓存,所述第二数据为与第一数据的地址连续的下一段数据。
在第一方面的一种可能的实现方式中,在所述获取主机发送的命令之前,所述方法还包括:
在读写设备接入所述主机并完成配置后,接收所述主机发送的第一命令;解析所述第一命令,得到第一读操作命令;执行所述第一读操作命令,并读取所述存储介质的第三数据;将所述第三数据发送至所述主机的同时,读取所述存储介质中的所述第一数据并缓存,所述第三数据为与所述第一数据的地址连续的上一段数据。
在第一方面的一种可能的实现方式中,在所述获取主机发送的命令之后,所述方法还包括:若所述命令为非读操作命令,则清除所述缓存区中的数据。
在第一方面的一种可能的实现方式中,在所述读取缓存区中的第一数据之后,所述方法还包括:若所述第一数据的地址与所述第三数据的地址不连续,则读取所述存储介质的第四数据;向所述主机发送所述第四数据的同时,读取所述存储介质中的第五数据并缓存,所述第五数据为与所述第四数据的地址连续的下一段数据。
在第一方面的一种可能的实现方式中,在所述获取主机发送的命令之后,所述方法还包括:若解析所述命令得到所述读操作命令,且所述缓存区中无缓存数据,则读取所述存储介质中的第六数据;向所述主机发送所述第六数据的同时,读取所述存储介质中的第七数据并缓存,所述第七数据为与所述第六数据的地址连续的下一段数。
在第一方面的一种可能的实现方式中,所述方法包括:
若解析所述命令得到所述读操作命令,且所述缓存区中无缓存数据,则读取所述存储介质中的第六数据;向所述主机发送所述第六数据的同时,读取所述存储介质中的第七数据并缓存,所述第七数据为与所述第六数据的地址连续的下一段数据。
在第一方面的一种可能的实现方式中,在所述获取主机发送的命令之前,所述方法还包括:在读写设备接入所述主机并完成配置后,接收所述主机发送的第二命令;解析所述第二命令,得到第一写操作命令;执行所述第一写操作命令,接收所述主机发送的所述上一数据,并将所述上一数据和所述上一数据的地址信息缓存至所述缓存区中。
在第一方面的一种可能的实现方式中,在所述获取主机发送的命令之后,所述方法还包括:
若所述命令为非写操作命令,则将所述缓存区中的所述上一数据写入所述存储介质中。
第二方面,本申请实施例提供了一种读写设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序所述处理器执行所述计算机程序时实现上述第一方面中的方法。
第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中所述的方法。
第四方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的方法。
可以理解的是,上述第二方面至第四方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
本申请实施例与现有技术相比存在的有益效果是:本申请实施例,读写设备获取主机发送的命令;解析命令,得到操作命令;执行操作命令,对缓存区的数据进行与操作命令对应的操作,并将操作命令对应的操作地址上的数据缓存至所述缓存区中。通过在执行操作命令对缓存区的数据进行操作的同时,并将操作命令对应的操作地址上的数据进行缓存,使得读写设备与主机之间传输数据传输与对数据进行操作同步执行,可以解决在数据传输量很大的情况下,传输速率的损耗的问题;提高了读写设备的数据传输速度;具有较强的易用性与实用性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的应用场景的***架构示意图;
图2是本申请一实施例提供的读写设备的读写操作方法的流程示意图;
图3是本申请另一实施例提供的读写设备的读操作方法的流程示意图;
图4是本申请一实施例提供的读写设备的读操作方法的整体流程示意图;
图5是本申请另一实施例提供的读写设备的写操作方法的流程示意图;
图6是本申请一实施例提供的读写设备的写操作方法的整体流程示意图;
图7是本申请实施例提供的读写操作装置的结构示意图;
图8是本申请实施例提供的读写设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
目前,在打印机、数字存储设备、输入/输出设备、数码相机播放器等应用领域的数据传输场景中,读写设备的使用越来越频繁,例如读卡器、优盘等。随着传输数据量的增加,基于通用串行总线(Universal Serial Bus,USB)接口的大容量存储设备也应运而生。
参见图1,是本申请实施例提供的应用场景的***架构示意图。如图1所示,该***包括主机10和读写设备20,主机10和读写设备20之间可以通过有线方式连接和通信,读写设备也可以直接***主机的USB接口。
在一些实施例中,在读写设备与主机进行数据传输过程中,读写设备一般遵循通用串行总线(Universal Serial Bus,USB)标准协议、块存储类协议(Bulk-Only协议)、小型计算机***接口(Small Computer System Interface,SCSI)指令集以及其它一些子类和接口协议。其中,SCSI指令集是USB协议规范外的内容,SCSI命令和实际存储内容,在基于Bulk传输和USB控制传输的内容中进行传输。主机10可以通过SCSI命令实现对读写设备20内的存储介质进行操控。读写设备10可以采用数据准确性高的批量传输方式,例如基于Bulk-Only协议,通过Bulk-In和Bulk-Out端点来进行数据传输,而非通过控制端点或者中断端点传输任何数据;在该传输方式下,通过三种类型的数据在主机的USB接口和读写设备之间传输,三种类型的数据包括:命令块(CBW),命令执行状态包(CSW)和普通数据包。
示例性的,读写设备20检测和响应通用的USB请求和USB总线上的事件,以及检测和响应来自USB设备的关于信息或动作的大容量存储请求USB Mass Storage Request,并解析从USB传输命令中获取的SCSI命令,从而获取命令执行的状态信息,控制读写设备20操作,向读写设备20的存储介质中读取和写入数据。
其中,本申请所述的读写设备20包括但不限于移动硬盘、外置光驱、外置软驱、闪存盘、读卡器以及优盘等。
下面通过具体的实施例介绍本申请采用的数据传输过程中的读操作方法和写操作方法。本申请实施例在数据传输过程中,将基于USB的传输与存储介质的传输同步进行,同时采用数据缓存机制,提高数据的传输效率,提升读写设备的读写操作速度。
参见图2,是本申请一实施例提供的读写设备的读写操作方法的流程示意图。如图2所示,该方法包括以下步骤:
步骤S201,获取主机发送的命令。
在一些实施例中,读卡器与主机建立通信连接并进行数据传输时,每传输一段预设长度的数据后,需要接收主机发送的命令。
其中,所述获取的主机端发送的命令为符合命令块(Command Block Wrapper,CBW)格式的命令块,命令块(CBW)格式为31字节、小端模式。
示例性的,CBW命令块字段中不同字节对应不同含义,例如标识字段、标签字段、传输的数据长度、有效字节长度以及被设备解析执行的命令块等。所述命令的字段中还包括数据从主机传输到读卡器的写操作命令标识或数据从读卡器传输到主机的读操作命令标识,从而读卡器可以根据该命令块确定需要执行的操作以及需要传输的数据大小等。
步骤S202,解析所述命令,得到操作命令。
在一些实施例中,读写设备从主机接收到CBW命令块后,将CBW命令块中的SCSI命令从CBW命令块中分离出来,根据SCSI命令的指令代码对应的要求,执行相应的操作命令。
其中,所述操作命令包括读操作命令和写操作命令,若SCSI对应的指令代码为0x28,则说明接收到的该命令为主机从读卡器的存储介质中读取二进制数据的读操作命令。若SCSI对应的指令代码为0x2A,则说明接收到的该命令为主机向读卡器的存储介质中写入二进制数据的写操作命令。
步骤S203,执行所述操作命令,对缓存区的数据进行与所述操作命令对应的操作,并将所述操作命令对应的操作地址上的数据缓存至所述缓存区中。
在一些实施例中,操作命令包括读操作命令和写操作命令。若操作命令为读操作命令,则读写设备执行读操作命令,将缓存区中存储的上一段数据传输至主机的同时,根据读操作命令对应的待读取数据在存储介质中的操作地址,读取存储介质中的与上一段数据的地址信息连续的当前段数据,并将当前段数据缓存至缓存区中。若操作命令为写操作命令,则读写设备执行写操作命令,将缓存区中存储的上一段数据写入存储介质的同时,接收主机发送的写操作命令对应的操作地址上的,与上一段数据的地址信息连续的当前段数据,并将当前段数据缓存至缓存区中。
通过本申请实施例,读写设备在执行操作命令对缓存区的数据进行操作的同时,并将操作命令对应的操作地址上的数据进行缓存,使得读写设备与主机之间传输数据传输与对数据进行操作同步执行,可以解决在数据传输量很大的情况下,传输速率的损耗的问题;提高了读写设备的数据传输速度。
参见图3,是本申请一实施例提供的读写设备的读操作方法的流程示意图。该流程示意图为主机访问读写设备的存储介质中的数据的过程,即数据由读写设备向主机发送的过程。如图3所示,读写设备以读卡器为例进行说明,该方法包括以下步骤:
步骤S301,获取主机发送的命令。
在一些实施例中,读卡器与主机建立通信连接并进行数据传输时,每传输一段预设长度的数据后,需要接收主机发送的命令。
其中,所述获取的主机端发送的命令为符合命令块(Command Block Wrapper,CBW)格式的命令块,命令块(CBW)格式为31字节、小端模式。
示例性的,CBW命令块字段中不同字节对应不同含义,例如标识字段、标签字段、传输的数据长度、有效字节长度以及被设备解析执行的命令块等。所述命令的字段中还包括数据从主机传输到读卡器的写操作命令标识或数据从读卡器传输到主机的读操作命令标识,从而读卡器可以根据该命令块确定需要执行的操作以及需要传输的数据大小等。
在一些实施例中,在获取主机发送的命令之前,还包括:
在读写设备接入主机并完成配置后,接收主机发送的第一命令;解析第一命令,得到第一读操作命令;执行第一读操作命令,并读取存储介质的第三数据;将第三数据发送至主机的同时,读取存储介质中的第一数据并缓存,第三数据为与第一数据的地址连续的上一段数据。
在一些实施例中,读写设备可以通过USB接口***主机的端口,或者通过数据线接入主机的USB端口。当读卡器接入主机后,主机会要求读卡器传回读卡器的描述符,主机得到描述符后,完成读卡器的配置。识别出读卡器为可以支持块存储类协议Bulk-Only传输协议的海量存储设备,可以采用Bulk-Only传输方式。其中,在该传输方式下,主机与读卡器之间的数据传输均通过输入Bulk-in和输出Bulk-out实现。
需要说明的是,读卡器可以为USB电缆末端的硬件设备,执行用户功能。包括USB总线接口、USB逻辑设备和功能设备三部分。主机到读卡器的连接经过多个层和多个实体之间的交互作用,USB总线接口层提供了在USB数据线上数据的底层传输。
如图4所示,在开始数据传输之前,读卡器接收到主机发送的第一命令CBW命令块,对第一命令进行解析,确定为读操作命令,则读取读卡器的存储介质中的数据,即第三数据。将第三数据发送向主机发送的同时,读取存储介质中地址与第三数据的地址连续的下一段数据,并缓存在读卡器的缓存区。从而实现了在传输数据的同时,继续读取存储介质的数据,并采用缓存机制,提高了数据传输的效率。
其中,在传输数据过程中,读卡器通过使能直接存储器访问(Direct MemoryAccess,DMA)控制器,向主机发送数据。读卡器接口通过总线向主机发送数据或发送大批量数据时,读卡器会通过DMA控制器向主机发送DMA请求信号,主机响应DMA请求,转变为DMA工作方式,把总线控制权交给DMA控制器,从而由DMA控制器发送主机的存储地址,并决定传送数据块的长度,执行DMA传送。
需要说明的是,在一次数据传输结束,读卡器向主机发送执行状态数据包(Command Status Wrapper,CSW)状态块,反馈命令的执行情况,例如实际传输的数据个数和期望要传输的数据个数之差等。状态块CSW作为读卡器的应答,格式符合CSW的格式,即13字节,小端模式。读卡器在向主机反馈命令执行状态后,继续接收主机发送的命令。
步骤S302,若解析命令得到读操作命令,则执行读操作命令,读取缓存区中的第一数据。
在一些实施例中,解析命令中的SCSI命令,若SCSI对应的指令代码为0x28,则说明接收到的该命令为主机从读卡器的存储介质中读取二进制数据的读操作命令。读卡器执行该读操作命令,直接读取之前缓存在缓存区的第一数据;第一数据为在向主机传输上一段数据(第三数据)时,向读卡器的存储介质中读取并缓存至缓存区的数据。
在一些实施例中,在获取主机发送的命令之后,方法还包括:若命令为非读操作命令,则清除缓存区中的数据。
在一些实施例中,为防止缓存中数据与存储介质中的实际数据不匹配,在读操作场景的数据传输过程中,下一个命令不是读命令,则清空缓存区的数据。
需要说明的是,在中间过程传输的数据,根据不同的命令,传输的数据格式也不同。
步骤S303,向主机发送第一数据的同时,读取存储介质的第二数据并缓存,第二数据为与第一数据的地址连续的下一段数据。
在一些实施例中,若第一数据和上一段的第三数据的地址信息连续,则发送缓存区的第一数据的同时,读取读卡器存储介质中的第二数据,并将第二数据缓存至缓存区,其中,第二数据为与第一数据的地址连续的下一段数据。保证了在传输数据的同时,读取存储介质中的下一段地址连续的数据,并缓存在缓存区中,在执行下一次的读命令时,直接从缓存区直接读取数据。
示例性的,若第一数据和上一段的第三数据的地址信息连续,则把第一数据复制到DMA传输的缓冲机制,使能DMA控制器传送第一数据,传送第一数据的同时,读取存储介质中的下一段地址连续的第二数据,并将第二数据缓存至缓存区;从而实现了USB传输和存储介质传输的同步,提高了数据传输的效率。
在一些实施例中,在读取缓存区中的第一数据之后,该读操作方法还包括:若第一数据的地址与第三数据的地址不连续,则读取存储介质的第四数据;向主机发送第四数据的同时,读取存储介质中的第五数据并缓存,第五数据为与第四数据的地址连续的下一段数据。
示例性的,在数据读取和传输过程中,为保证数据传输的准确性,若缓存区的数据与上一段传输的数据(第三数据)的地址不连续,则在执行该次读操作命令时,不再直接读取缓存区的数据,而是读取存储介质中的数据(第四数据)。在传输第四数据时,恢复数据传输与读取存储介质中下一段地址连续的数据同时进行的读操作命令。
在一些实施例中,在获取主机发送的命令之后,方法还包括:若解析命令得到读操作命令,且缓存区中无缓存数据,则读取存储介质中的第六数据;向主机发送第六数据的同时,读取存储介质中的第七数据并缓存,第七数据为与第六数据的地址连续的下一段数据。
与上述实施例相同的原理,在缓存区中不存在缓存数据时,继续向存储介质中读取数据(第六数据),在发送数据的同时,读取存储介质中地址连续的下一段数据(第七数据)。
通过本申请实施例,读卡器接收到CBW命令块,解析该命令块为读命令,则先去存储介质中读出数据,再通过USB把数据传输到主机(在USB使能DMA传输数据的同时,进行存储介质中下一段连续地址数据的缓存),则在下一个连续读命令处理中,就可以调用缓存数据,以此类推;若下一个读命令操作所读数据不在缓存中,则重复之前操作(读取存储介质中的数据,并在传输数据的同时进行存储介质中下一段连续地址数据的缓存);若下一个命令不是读命令,则清空缓存,以防止缓存中数据与存储介质中实际数据不匹配;实现了USB的传输与存储介质的传输的同步进行,并采用数据缓存机制,使两者的传输效率更高,从而提升读卡器读速度。
参见图5,是本申请一实施例提供的读写设备的读操作方法的整体流程示意图,该流程示意图为主机向读写设备的存储介质中写入数据的过程,即数据由主机向读写设备发送的过程。如图5所示,读写设备以读卡器为例进行说明,该方法包括以下步骤:
步骤S501,获取主机发送的命令。
在一些实施例中,读卡器与主机建立通信连接并进行数据传输时,每传输一段预设长度的数据后,需要接收主机发送的命令。
其中,所述获取的主机端发送的命令为符合命令块(Command Block Wrapper,CBW)格式的命令块,命令块(CBW)格式为31字节、小端模式。
示例性的,CBW命令块字段中不同字节对应不同含义,例如标识字段、标签字段、传输的数据长度、有效字节长度以及被设备解析执行的命令块等。所述命令的字段中还包括数据从主机传输到读卡器的写操作命令标识或数据从读卡器传输到主机的读操作命令标识,从而读卡器可以根据该命令块确定需要执行的操作以及需要传输的数据大小等。
在一些实施例中,在获取主机发送的命令之前,方法还包括:在读写设备接入主机并完成配置后,接收主机发送的第二命令;解析第二命令,得到第一写操作命令;执行第一写操作命令,接收主机发送的上一数据,并将上一数据和上一数据的地址信息缓存至缓存区中。
在一些实施例中,读写设备可以通过USB接口***主机的端口,或者通过数据线接入主机的USB端口。当读卡器接入主机后,主机会要求读卡器传回读卡器的描述符,主机得到描述符后,完成读卡器的配置。识别出读卡器为可以支持块存储类协议Bulk-Only传输协议的海量存储设备,可以采用Bulk-Only传输方式。其中,在该传输方式下,主机与读卡器之间的数据传输均通过输入Bulk-in和输出Bulk-out实现。
需要说明的是,读卡器可以为USB电缆末端的硬件设备,执行用户功能。包括USB总线接口、USB逻辑设备和功能设备三部分。主机到读卡器的连接经过多个层和多个实体之间的交互作用,USB总线接口层提供了在USB数据线上数据的底层传输。
如图6所示,在开始传输数据之前,读卡器接收到主机发送的第二命令CBW命令块,对第二命令进行解析,确定为写操作命令,则读卡器使能DMA接收主机发送的数据(即上一数据)。在接收到数据后,先不写入存储介质,而是将上一数据和上一数据的地址信息保存,等待接收下一个写操作命令,使能DMA接收主机发送地址连续的下一段数据时,再向读卡器的存储介质传输,即在接收下一数据时将上一数据写入存储介质。上一数据和下一数据为地址连续的先后两段数据。从而实现了在传输数据的同时,将缓存的数据写入存储介质,并采用缓存机制,提高了数据传输的效率。
其中,在传输数据过程中,读卡器通过使能直接存储器访问(Direct MemoryAccess,DMA)控制器,接收主机发送的数据。主机通过总线向读卡器发送数据或发送大批量数据时,读卡器会通过DMA控制器向主机发送DMA请求信号,主机响应DMA请求,转变为DMA工作方式,把总线控制权交给DMA控制器,从而由DMA控制器发送读卡器的存储地址,并决定传送数据块的长度,执行DMA传送。
需要说明的是,读卡器在接收主机发送的数据,并将数据和数据的地址缓存而不写入存储介质后,读卡器向主机发送执行状态数据包(Command Status Wrapper,CSW)状态块,反馈命令的执行情况,例如实际传输的数据个数和期望要传输的数据个数之差等。状态块CSW作为读卡器的应答,格式符合CSW的格式,即13字节,小端模式。读卡器在向主机反馈命令执行状态后,继续接收主机发送的命令。
步骤S502,若解析所述命令得到写操作命令,则执行所述写操作命令,将所述缓存区中的上一数据写入存储介质的同时,接收所述主机发送的当前数据,所述上一数据为与所述当前数据的地址连续的上一段数据。
在一些实施例中,解析命令中的SCSI命令,若SCSI对应的指令代码为0x2A,则说明接收到的该命令为主机向读卡器的存储介质中写入二进制数据的写操作命令。读卡器执行该写操作命令,接收当前数据的同时,将缓存区中的上一数据写入存储介质中。
在一些实施例中,在获取主机发送的命令之后,方法还包括:若命令为非写操作命令,则将缓存区中的上一数据写入存储介质中。
步骤S503,将当前数据和当前数据的地址信息缓存至所述缓存区中。
在一些实施例中,在数据传输过程中,接收到当前数据后,先不将当前数据写入存储介质中,而是将当前数据和当前数据的地址信息进行缓存;在接收下一段数据的同时,将当前数据写入存储介质,并将下一段数据和下一段数据的地址信息缓存至缓存区中。从而实现了在数据传输过程中,USB传输与存储介质传输的同时进行,提高了数据的传输效率。
通过本申请实施例,读卡器接收到CBW命令块,解析命令块为写命令,则先把接收到的数据缓存起来;若下一个命令为写命令,则在USB使能DMA接收数据的同时,把上次缓存的数据写入存储介质中;若下一个命令不是写命令,则在解析到命令号后,把上次缓存的数据写入存储介质中;实现了USB的传输与存储介质的传输的同步进行,并采用数据缓存机制,使两者的传输效率更高,从而提升读卡器写速度。
参见图4,是本申请一实施例提供的读写设备的读操作方法的流程示意图,与上述实施例基于相同的读操作方法的执行原理,在此不再赘述,如图4所示,该读操作过程的整体流程包括:
步骤S401,在读写设备接入所述主机并完成配置后,接收所述主机发送的第一命令。
步骤S402,解析所述第一命令,得到第一读操作命令。
步骤S403,执行所述第一读操作命令,并读取存储介质的第三数据。
步骤S404,将所述第三数据发送至所述主机的同时,读取存储介质中的所述第一数据并缓存。
步骤S405,发送执行状态数据包CSW。
步骤S406,获取主机发送的命令。
步骤S407,判断所述命令是否为读命令;若是,则执行步骤S408;若否,则执行步骤S409。
步骤S408,判断地址是否连续;若是,则执行步骤S410;若否,则执行步骤S411。
步骤S409,清除所述缓存区中的数据。
步骤S410,读取缓存区中的第一数据。
步骤S411,读取缓存区中的第四数据。
步骤S412,向所述主机发送所述第四数据的同时,读取所述存储介质中的第五数据并缓存,所述第五数据为与所述第四数据的地址连续的下一段数据;或者,向所述主机发送所述第一数据的同时,读取存储介质的第二数据并缓存,所述第二数据为与第一数据的地址连续的下一段数据
步骤S413,发送执行状态数据包CSW。
参见图6,是本申请一实施例提供的读写设备的写操作方法的流程示意图,与上述实施例基于相同的写操作方法的执行原理,在此不再赘述,如图6所示,该写操作过程的整体流程包括:
步骤S601,在读写设备接入所述主机并完成配置后,接收所述主机发送的第二命令CBW。
步骤S602,解析所述第二命令,得到第一写操作命令。
步骤S603,执行所述第一写操作命令,接收所述主机发送的所述上一数据,并将所述上一数据和所述上一数据的地址信息缓存至所述缓存区中。
步骤S604,向主机发送执行状态命令CSW。
步骤S605,获取主机发送的命令CBW。
步骤S606,判断所述命令是否为写操作命令;若是,则执行步骤S607;若否,则执行步骤S608。
步骤S607,执行所述写操作命令,接收所述主机发送的当前数据的同时,将缓存区中的上一数据写入存储介质,所述上一数据为与所述当前数据的地址连续的上一段数据。
步骤S608,将所述缓存区中的所述上一数据写入所述存储介质中。
步骤S609,将所述当前数据和所述当前数据的地址信息缓存至所述缓存区中。
步骤S610,向主机发送执行状态命令CSW。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的读写设备的读操作方法,图7示出了本申请实施例提供的读写操作装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图7,该装置包括:
获取单元71,用于获取主机发送的命令;
解析单元72,用于解析所述命令,得到操作命令;
处理单元73,用于执行所述操作命令,对缓存区的数据进行与所述操作命令对应的操作,并将所述操作命令对应的操作地址上的数据缓存至所述缓存区中。
通过本申请实施例,读写设备获取主机发送的命令;解析命令,得到操作命令;执行操作命令,对缓存区的数据进行与操作命令对应的操作,并将操作命令对应的操作地址上的数据缓存至所述缓存区中。通过在执行操作命令对缓存区的数据进行操作的同时,并将操作命令对应的操作地址上的数据进行缓存,使得读写设备与主机之间传输数据传输与对数据进行操作同步执行,可以解决在数据传输量很大的情况下,传输速率的损耗的问题;提高了读写设备的数据传输速度;具有较强的易用性与实用性。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图8为本申请一实施例提供的读写设备的结构示意图。如图8所示,该实施例的读写设备8包括:缓存区83、至少一个处理器80(图8中仅示出一个)处理器、存储器81以及存储在所述存储器81中并可在所述至少一个处理器80上运行的计算机程序82,所述处理器80执行所述计算机程序82时实现上述任意各个方法实施例中的步骤。
所述读写设备8可以是优盘、读卡器等设备。该读写设备可包括,但不仅限于,处理器80、存储器81。本领域技术人员可以理解,图8仅仅是读写设备8的举例,并不构成对读写设备8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器80可以是中央处理单元(Central Processing Unit,CPU),该处理器80还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器81在一些实施例中可以是所述读写设备8的内部存储单元,例如读写设备8的内存。所述存储器81在另一些实施例中也可以是所述读写设备8的外部存储设备,例如所述读写设备8上配备的智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器81还可以既包括所述读写设备8的内部存储单元也包括外部存储设备。所述存储器81用于存储操作***、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器81还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (11)

1.一种读写设备的读写操作方法,其特征在于,包括:
获取主机发送的命令;
解析所述命令,得到操作命令;
执行所述操作命令,对缓存区的数据进行与所述操作命令对应的操作,并将所述操作命令对应的操作地址上的数据缓存至所述缓存区中。
2.如权利要求1所述的方法,其特征在于,所述方法包括:
若解析所述命令得到读操作命令,则执行所述读操作命令,读取所述缓存区中的第一数据;
向所述主机发送所述第一数据的同时,读取存储介质的第二数据并缓存,所述第二数据为与第一数据的地址连续的下一段数据。
3.如权利要求2所述的方法,其特征在于,在所述获取主机发送的命令之前,所述方法还包括:
在读写设备接入所述主机并完成配置后,接收所述主机发送的第一命令;
解析所述第一命令,得到第一读操作命令;
执行所述第一读操作命令,并读取所述存储介质的第三数据;
将所述第三数据发送至所述主机的同时,读取所述存储介质中的所述第一数据并缓存,所述第三数据为与所述第一数据的地址连续的上一段数据。
4.如权利要求2所述的方法,其特征在于,在所述获取主机发送的命令之后,所述方法还包括:
若所述命令为非读操作命令,则清除所述缓存区中的数据。
5.如权利要求3所述的方法,其特征在于,在所述读取缓存区中的第一数据之后,所述方法还包括:
若所述第一数据的地址与所述第三数据的地址不连续,则读取所述存储介质的第四数据;
向所述主机发送所述第四数据的同时,读取所述存储介质中的第五数据并缓存,所述第五数据为与所述第四数据的地址连续的下一段数据。
6.如权利要求2所述的方法,其特征在于,在所述获取主机发送的命令之后,所述方法还包括:
若解析所述命令得到所述读操作命令,且所述缓存区中无缓存数据,则读取所述存储介质中的第六数据;
向所述主机发送所述第六数据的同时,读取所述存储介质中的第七数据并缓存,所述第七数据为与所述第六数据的地址连续的下一段数据。
7.如权利要求1所述的方法,其特征在于,所述方法包括:
若解析所述命令得到写操作命令,则执行所述写操作命令,将所述缓存区中的上一数据写入存储介质的同时,接收所述主机发送的当前数据,所述上一数据为与所述当前数据的地址连续的上一段数据;
将所述当前数据和所述当前数据的地址信息缓存至所述缓存区中。
8.如权利要求7所述的方法,其特征在于,在所述获取主机发送的命令之前,所述方法还包括:
在读写设备接入所述主机并完成配置后,接收所述主机发送的第二命令;
解析所述第二命令,得到第一写操作命令;
执行所述第一写操作命令,接收所述主机发送的所述上一数据,并将所述上一数据和所述上一数据的地址信息缓存至所述缓存区中。
9.如权利要求7所述的方法,其特征在于,在所述获取主机发送的命令之后,所述方法还包括:
若所述命令为非写操作命令,则将所述缓存区中的所述上一数据写入所述存储介质中。
10.一种读写设备,包括缓存区、存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至9任一项所述的方法。
11.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述的方法。
CN202011638697.7A 2020-12-31 2020-12-31 读写设备的读写操作方法、读写设备及可读存储介质 Pending CN114691023A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011638697.7A CN114691023A (zh) 2020-12-31 2020-12-31 读写设备的读写操作方法、读写设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011638697.7A CN114691023A (zh) 2020-12-31 2020-12-31 读写设备的读写操作方法、读写设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN114691023A true CN114691023A (zh) 2022-07-01

Family

ID=82136187

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011638697.7A Pending CN114691023A (zh) 2020-12-31 2020-12-31 读写设备的读写操作方法、读写设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN114691023A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115952105A (zh) * 2022-12-05 2023-04-11 深圳市朗宇芯科技有限公司 一种基于数据缓存的数据传输方法、装置及存储介质
CN117539802A (zh) * 2024-01-10 2024-02-09 中昊芯英(杭州)科技有限公司 一种缓存操作方法、***以及相关装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101303685A (zh) * 2007-05-09 2008-11-12 瑞昱半导体股份有限公司 可提升通用序列总线储存设备的读写数据速率的方法
TW200844841A (en) * 2007-05-10 2008-11-16 Realtek Semiconductor Corp Method for expediting data access of universal serial bus stoarage device
CN108829613A (zh) * 2018-05-24 2018-11-16 中山市江波龙电子有限公司 数据存储方法及存储设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101303685A (zh) * 2007-05-09 2008-11-12 瑞昱半导体股份有限公司 可提升通用序列总线储存设备的读写数据速率的方法
TW200844841A (en) * 2007-05-10 2008-11-16 Realtek Semiconductor Corp Method for expediting data access of universal serial bus stoarage device
CN108829613A (zh) * 2018-05-24 2018-11-16 中山市江波龙电子有限公司 数据存储方法及存储设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115952105A (zh) * 2022-12-05 2023-04-11 深圳市朗宇芯科技有限公司 一种基于数据缓存的数据传输方法、装置及存储介质
CN117539802A (zh) * 2024-01-10 2024-02-09 中昊芯英(杭州)科技有限公司 一种缓存操作方法、***以及相关装置
CN117539802B (zh) * 2024-01-10 2024-04-05 中昊芯英(杭州)科技有限公司 一种缓存操作方法、***以及相关装置

Similar Documents

Publication Publication Date Title
US9436272B2 (en) Providing indirect data addressing in an input/output processing system where the indirect data address list is non-contiguous
CN101634975B (zh) 一种实现dma数据传输的方法及装置
US7433977B2 (en) DMAC to handle transfers of unknown lengths
US8266371B2 (en) Non-volatile storage device, host device, non-volatile storage system, data recording method, and program
US20120084469A1 (en) Usb transaction translator and a bulk transaction method
EP0260693B1 (en) Program mode access control system
EP2214103B1 (en) I/O controller and descriptor transfer method
CN101877666A (zh) 基于零拷贝方式的多应用程序报文接收方法和装置
US20060103948A1 (en) Multimedia card interface method, computer program product and apparatus
CN113726498A (zh) 基于spi的双全工通信方法、主机、从机及存储介质
CN112214240A (zh) 主机输出输入命令的执行装置及方法及计算机可读取存储介质
CN114691023A (zh) 读写设备的读写操作方法、读写设备及可读存储介质
US6751686B2 (en) Automated transfer of a data unit comprising a plurality of fundamental data units between a host device and a storage medium
US7409486B2 (en) Storage system, and storage control method
CN103838694B (zh) 一种fpga高速读取usb接口数据的方法
CN115587076B (zh) 数据解压***、图形处理***、组件、设备及解压方法
CN101976230B (zh) 通用序列总线传输转译器及输入请求同步传输方法
CN112346665B (zh) 基于pcie的通信方法、装置、设备、***及存储介质
KR100633120B1 (ko) 저장 매체의 데이터 대역폭 향상 방법 및 이를 위한 장치
CN110462598B (zh) 信息处理装置
CN117472819A (zh) 基于PXIe的DMA数据传输处理方法、***及设备
KR20030044373A (ko) 기억 장치 직접 접근 인터페이스를 지원하는 범용 직렬버스 장치
CN116048893B (zh) 光纤总线接口的测试方法及相关设备
US7421459B2 (en) Buffer management for data transfers between a host device and a storage medium
US6745263B2 (en) Automated multiple data unit transfers between a host device and a storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination