CN100511199C - 硬件加速器与数据传输方法 - Google Patents

硬件加速器与数据传输方法 Download PDF

Info

Publication number
CN100511199C
CN100511199C CNB2007101815917A CN200710181591A CN100511199C CN 100511199 C CN100511199 C CN 100511199C CN B2007101815917 A CNB2007101815917 A CN B2007101815917A CN 200710181591 A CN200710181591 A CN 200710181591A CN 100511199 C CN100511199 C CN 100511199C
Authority
CN
China
Prior art keywords
data
instruction
bag
state
length
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.)
Active
Application number
CNB2007101815917A
Other languages
English (en)
Other versions
CN101136001A (zh
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.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
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 Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN101136001A publication Critical patent/CN101136001A/zh
Application granted granted Critical
Publication of CN100511199C publication Critical patent/CN100511199C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种硬件加速器与数据传输方法,用以使主机与储存装置其中之一可传输一数据至其中的另一。数据传输系统包括总线控制器、指令暂存器、数据暂存器、储存装置控制器与硬件加速器。总线控制器用以经由总线连接至主机以接收指令包。指令与数据暂存器分别用以储存总线控制器接收的指令包与数据。储存装置控制器用以控制储存装置的存取操作。硬件加速器用以根据指令包产生并根据控制指令驱动储存装置控制器与总线控制器其中之一搬动数据暂存器中的数据至其中的另一。硬件加速器并根据数据的传输状况产生并输出传输状态包至主机。本发明具有数据存取速度较高、处理器的运算负载较低与数据存取速度不易受到处理器的运算负载影响的优点。

Description

硬件加速器与数据传输方法
技术领域
本发明是有关于一种数据传输系统,且特别是有关于一种设置有硬件加速器可降低数据传输系统的系统资源占用情形的数据传输系统。
背景技术
由于通用串行总线(Universal Serial Bus,USB)具有随插即用、高支持性与高传输效率等优点而已广泛地应用在各种电子产品中,如移动硬盘(Portable Hard Disk)。移动硬盘例如设置有数据处理系统,当计算机主机经由USB提供指令包来对移动硬盘进行数据存取时,数据处理系统用以对指令包进行解析并据以对移动硬盘端的USB装置控制器(Device Controller)与硬盘控制器进行设定,使计算机主机可对移动硬盘进行数据存取。
在传统技术中,于数据传输系统中设计存储器储存韧体程序,并经由处理器执行韧体程序,以回应于计算机主机提供的指令包来进行数据存取。如此,将增加处理器的运算负载,并使得数据存取速度容易因处理器的运算负载较高而较低。
发明内容
本发明提出一种硬件加速器,设置于数据传输系统中,用以控制总线控制器与储存装置控制器其中之一传输一数据至其中的另一。硬件加速器包括译码单元、描述元(Descriptor)更新单元、存取控制单元、状态包更新单元与状态机单元(FiniteState Machine)。译码单元用以对指令包进行译码以得到控制指令,并判断控制指令是否为正确的指令。描述元更新单元用以回应于控制指令来更新总线控制器中的一描述元,以决定总线控制器与储存装置控制器的传输数据方向与传输数据长度(Transfer Length)。存取控制单元用以控制储存装置控制器与总线控制器进行数据交换(Handshake),以控制储存装置控制器与总线控制器其中之一传输该数据至其中的另一,并判断数据是否传输完毕。状态包更新单元用以产生并输出一状态包至该总线控制器;状态机单元用以当该控制指令为正确的指令时驱动该描述元更新单元更新该描述元,当该描述元更新完毕时驱动该存取控制单元传输该数据,当该数据传输完毕时控制该状态包更新单元产生并输出该状态包至该总线控制器。
本发明提出一种数据传输方法,用以通过一硬件加速器控制储存装置控制器与总线控制器其中之一传输数据至其中的另一。数据传输方法包括下列的步骤。首先,对总线控制器接收的指令包进行译码以产生控制指令。接着,判断控制指令是否为正确的指令。然后,当控制指令为正确的指令时回应于控制指令更新总线控制器的描述元,以决定数据的传输方向与传输数据长度。接着,控制总线控制器与储存装置控制器其中之一传输数据至其中的另一。然后,判断数据是否传输完成。之后,当数据传输完成时产生并输出状态包。
本发明提出一数据传输系统,用以连接主机与储存装置,并使主机与储存装置其中之一传输一数据至其中的另一。数据传输系统包括总线控制器、指令暂存器、数据暂存器、储存装置控制器与硬件加速器。总线控制器用以经由总线连接至主机以接收指令包。指令暂存器用以储存总线控制器接收计算机指令包。数据暂存器用以储存数据。储存装置控制器用以控制储存装置计算机存取操作。硬件加速器用以回应于起始事件来根据指令暂存器中计算机指令包产生控制指令,并根据控制指令来经由储存装置控制器与总线控制器其中之一搬动数据暂存器中的数据至储存装置与主机其中的另一。其中,硬件加速器并根据数据的传输状况产生并经由总线控制器传输状态包至主机。
本发明所述的硬件加速器与数据传输方法,具有数据存取速度较高、处理器的运算负载较低与数据存取速度不易受到处理器的运算负载影响的优点。
附图说明
图1绘示依照本发明较佳实施例的数据传输系统的方块图。
图2绘示乃本实施例的硬件加速器的方块图。
图3绘示乃图2的状态机单元的详细状态图。
图4A及图4B绘示依照本发明较佳实施例的数据传输方法的流程图。
具体实施方式
为让本发明的上述内容能更明显易懂,下文特举一较佳实施例,并配合所附图式,作详细说明如下。
请参照图1,其绘示依照本发明较佳实施例的数据传输系统的方块图。数据传输系统10用以连接主机(未绘示)与储存装置(未绘示),并驱动主机与储存装置其中之一传输数据至其中的另一。本实施例的主机与储存装置例如分别为计算机主机与串行高级技术附加装置(Serial ATA,SATA)接口硬盘,计算机主机例如经由通用串行总线(Universal Serial Bus,USB)11连接至数据传输系统10,接下来以计算机主机传输数据包D至储存装置的操作为例做说明。
数据传输系统10包括总线控制器12、储存装置控制器13、指令暂存器14、数据暂存器16与硬件加速器20。总线控制器12例如为USB装置控制器(Device Controller),用以经由USB 11接收计算机主机提供的指令包C与数据包D,并分别储存其于指令暂存器14与数据暂存器16中。储存装置控制器13例如为SATA控制器,用以控制SATA硬盘的存取操作。
硬件加速器20用以回应于起始事件SE来根据指令暂存器14中的指令包C产生控制指令,并根据控制指令来控制总线控制器与SATA控制器搬动数据暂存器16中的数据包D至SATA硬盘中。于计算机主机与SATA硬盘完成数据包D的传输时硬件加速器20根据数据包D的传输状态来产生状态包S,并将状态包S经由USB装置控制器(总线控制器12)与USB 11传输至计算机主机来完成计算机主机传输数据包D至SATA硬盘的操作。
数据传输系统10更例如具有处理单元18与存储单元19,存储单元19例如用以储存起始程序码SS,而处理单元18用以读取起始程序码SS来触发起始事件SE。
请参照图2,其绘示乃本实施例的硬件加速器的方块图。硬件加速器20包括译码单元22、描述元(Descriptor)更新单元24、存取控制单元26、状态包更新单元28与状态机单元(Finite StateMachine)30。译码单元22用以接收指令暂存器14中的指令包C,并对其进行译码以产生控制指令(未绘示),而译码单元22更用以判断并通知状态机单元30控制指令是否为正确的指令。
描述元更新单元24用以回应于控制指令来更新USB装置控制器中的传输描述元,以决定数据包D的传输方向与传输数据长度(Transfer Length)。存取控制单元26用以回应于控制指令来对SATA控制器进行设定,以控制其搬动储存于数据暂存器16中的数据包D至SATA硬盘。存取控制单元26更用以判断并通知状态机单元30数据包D的传输操作是否完成。
状态包更新单元28用以依据数据包D的传送状态产生并输出状态包S至指令暂存器14。而状态包S并经由USB装置控制器与USB 11输出至计算机主机。状态机单元30用以分别于控制指令为正确的指令时驱动描述元更新单元24更新传输描述元、于USB装置控制器的传输描述元更新完毕时驱动存取控制单元26控制SATA控制器搬动数据包D至SATA硬盘并于数据包D传送至SATA硬盘时控制状态包更新单元28产生并输出状态包S至USB装置控制器。
译码单元22例如判断控制指令是否为存取指令且指令包C中的数据总长度是否大于零,以判断控制指令是否为正确的指令,数据总长度用以指示数据包D的数据长度。当控制指令为存取指令且数据总长度大于零时表示控制指令为正确的指令。
存取控制单元26判断USB装置控制器与SATA控制器是否完成其数据传输且待传输数据长度是否等于零,以判断数据包D是否传输完毕。待传输数据长度记录于传输暂存器(未绘示)中,其等于数据总长度与传输数据长度的差值,传输暂存器例如位于USB装置控制器中。当USB装置控制器与SATA控制器完成其的数据传输且待传输数据长度等于零时表示数据包D传输完成。
硬件加速器20例如具有暂存器单元32,用以回应于起始事件SE来驱动硬件加速器20的操作。硬件加速器20例如具有起始暂存器,其储存的数据回应于起始事件SE的触发与否而改变。例如当起始事件SE触发时驱动起始暂存器的数据由数据0转换为数据1,此时暂存器单元32经由状态机单元30来驱动硬件加速器20的操作。
硬件加速器20例如具有指令包更新单元34,用以更新指令暂存器14中的指令包C为更新指令包C”,其中的数据总长度等于传输数据长度。硬件加速器20例如具有中断单元36,用以产生并输出中断信号Sin至处理单元18,以停止硬件加速器20的操作。
请参照图3,其绘示乃图2的状态机单元的详细状态图。状态机单元30包括译码状态302、描述元更新状态304、数据传输状态306与状态包传输状态308。当状态机单元30处于译码状态302时驱动译码单元22对指令包C进行译码,并判断得到的控制指令是否为正确的指令。当控制指令为正确的指令时,状态机单元30进入描述元更新状态304,用以驱动描述元更新单元24更新传输描述元。
当传输描述元更新完毕时,状态机单元30进入数据传输状态306,用以驱动存取控制单元26控制SATA控制器搬动数据包D至SATA硬盘,以传输数据包D至SATA硬盘。而状态机单元30驱动存取控制单元26判断数据包D是否传输完成。当数据包D传输完成时,状态机单元30进入状态包传输状态308,用以驱动状态包更新单元28产生并输出状态包S至USB装置控制器(总线控制器12)。而状态包更新单元28经由USB装置控制器与USB 11输出状态包S至计算机主机。
于状态包传输状态308中状态机单元30更驱动状态包更新单元28判断状态包S是否成功地输出至计算机主机。状态机单元30更例如具有重置状态310,当状态包S成功地输出至计算机主机时状态机单元30进入重置状态310,用以驱动描述元更新单元24重置传输描述元,来停止USB装置控制器与SATA控制器间的数据传输。
状态机单元30更例如具有指令包接收状态312,用以驱动USB装置控制器接收指令包C,并判断是否完成接收指令包C的操作。当USB装置控制器成功地接收到指令包C时状态机单元30进入译码状态302,以对指令包C进行译码。而状态机单元30于状态310中驱动描述元更新单元24重置传输描述元的操作完毕后,状态机单元30例如进入指令包接收状态312,以接收下一个指令包并驱动对应的硬件单元进行操作。
状态机单元30更例如具有待机状态314,用以驱动暂存器单元32判断起始事件SE是否触发,而硬件加速器20中其余的硬件单元均为非致能。当起始事件SE触发时状态机单元30进入指令包接收状态312,以驱动对应的硬件单元进行对应的操作。
当于硬件加速器20的操作中发生译码单元22判断控制指令为不正确的指令、存取控制单元26判断数据包D传输失败、状态包更新单元28判断状态包S无法传输至计算机主机及USB装置控制器无法接收到指令包C的操作错误时,状态机单元30例如驱动中断单元36产生中断信号Sin至处理单元18,以通过处理单元18来排除产生的操作错误。而状态机单元30从其原本的状态进入待机状态314,以等待下一次起始事件SE的触发来传输数据。
状态机单元30更例如具有循环状态316。于传输状态306中,当存取控制单元26判断待传输数据长度不等于零,亦即数据包D尚未传输完毕时状态机单元30进入循环状态316,用以控制指令包更新单元34更新指令包C为更新指令包C”,其中的数据总长度等于待传输数据长度。于指令包C更新完毕后状态机单元30回到译码状态302以重新译码出控制指令来传输剩余的数据包D。
请参照图4A及图4B,其绘示依照本发明较佳实施例的数据传输方法的流程图。首先,如步骤402,状态机单元30处于待机状态314,暂存器单元32判断是否接收到起始事件SE。若是,如步骤404,状态机单元30进入指令包接收状态312,USB装置控制器接收指令包C。接着,如步骤406,USB装置控制器更判断其是否成功地接收到指令包C。
若是,如步骤408,状态机单元30进入译码状态302,而译码单元22对指令包C进行译码以产生控制指令。接着,如步骤410,译码单元22判断控制指令是否为正确的指令。若是,如步骤412,状态机单元30进入描述元更新状态304,描述元更新单元24回应于控制指令来更新USB装置控制器的传输描述元以决定数据包D的传输方向与传输数据长度。
接着,如步骤414,当传输描述元更新完毕时状态机单元30进入数据传输状态306,USB装置控制器与储存控制单元26控制SATA控制器搬动数据包D至SATA硬盘。然后,如步骤416,存取控制单元26更判断数据包D是否传输完成。若是,执行步骤418,状态机单元30进入状态包传输状态308,状态包更新单元28产生并输出状态包S至指令暂存器14,并经由USB装置控制器与USB 11传输状态包S至计算机主机,以完成本实施例的数据传输方法。
而于步骤418之后,更包括步骤420,状态包更新单元28更判断状态包S是否成功地输出至计算机主机。若是,如步骤422,状态机单元30进入重置状态310,描述元更新单元24重置传输描述元以停止USB装置控制器与SATA控制器的数据传输。于步骤422之后,本实施例的数据传输方法回到步骤404,以接收下一指令包并进行对应的操作。
在本实施例中,步骤410中判断控制指令是否为正确的指令的步骤例如包括步骤410a与410b。于步骤410a中,译码单元22判断控制指令是否为存取指令。若是,执行步骤410b,译码单元22判断数据总长度是否大于零。若是,表示控制指令为正确的指令,之后执行步骤412。
在本实施例中,步骤416中判断数据包D是否传输完成的步骤例如包括步骤416a与416b。于步骤416a中,存取控制单元26判断USB装置控制器与SATA控制器是否均完成对应的数据传输。若是,执行步骤416b,存取控制单元26判断待传输数据长度是否等于零。若是,表示数据包D传输完成,之后执行步骤418。
而于本实施例的步骤406、410a、410b、416a及与420中,若分别判断无法接收指令包C、控制指令不为存取指令、数据总长度不大于零、USB装置控制器与SATA控制器无法完成其的数据传输及状态包S无法传输至计算机主机时,数据传输方法均回到步骤402。此时状态机单元30驱动中断单元36产生中断信号Sin至处理单元18以中断硬件加速器20的操作。
于步骤416b中,若判断待传输数据长度不等于零时,执行步骤424,状态机单元30进入循环状态316,而指令包更新单元34修正指令暂存器14中的指令包C为更新指令包C”,使其的数据总长度等于待传输数据长度。之后回到步骤408。
本实施例的计算机主机与SATA硬盘例如经由USB批量传输(Bulk Transfer)传输数据包D,而本实施例的指令包C例如为USB批量传输中的指令块包(Command Block Wrapper,CBW)。译码单元22用以对CBW解译得到符合小型计算机标准接口(Small Computer System Interface,SCSI)格式的控制指令,之后根据控制指令来完成批量传输中的指令阶段(CommandPhase)。描述元更新单元24与存取控制单元26根据控制指令来搬动数据暂存器16中的数据包至SATA硬盘的操作是完成批量传输中的数据阶段(Data Phase)。
状态包S例如USB批量传输中的指令状态包(CommandStatus Wrapper,CSW),用以于数据包D的传输操作完成时反馈数据传输系统10与SATA硬盘端的数据传输状态至计算机主机端,以完成USB批量传输中的状态阶段(Status Phase)。如此,本实施例的硬件加速器20可有效地使计算机系统与SATA硬盘经由其进行数据包D的传输。
在本实施例中虽仅以计算机主机传输数据包D至SATA硬盘的操作为例做说明,然,SATA硬盘传输数据包至计算机主机的操作可根据本实施例中的叙述而类推得到。而本实施例虽仅以总线控制器12为USB装置控制器,以经由USB 11与USB批量传输协定来进行计算机主机与SATA硬盘间的数据传输为例做说明,然,本实施例的总线控制器12并不局限于为USB装置控制器而更可为其他形式的总线控制器。而本实施例的储存装置亦不局限于为SATA硬盘,而更可为其他种序列式(Serial)传输接口的储存装置。
本实施例的数据传输系统设置有硬件加速器,以于正常操作时代替处理单元执行数据存取操作。如此,本实施例的数据传输系统可有效地改善传统数据传输系统因需通过处理器执行程序码来进行存取而导致处理器的运算负载较高及数据存取速度易受处理器的运算负载影响的缺点,而实质上具有数据存取速度较高、处理器的运算负载较低与数据存取速度不易受到处理器的运算负载影响的优点。
另外,由于本实施例中的数据传输直接通过硬件单元,如存取控制器来对数据暂存器进行数据搬运的控制。如此,本实施例更可有效地省略传统数据传输系统对(DMA)引擎设定的设定时间,使本实施例的数据传输系统更具有可缩短主机存取储存装置的存取时间及提升主机与存取装置间数据存取效能的优点。
以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。
附图中符号的简单说明如下:
10:数据传输系统
11:通用串行总线
12:总线控制器
13:储存装置控制器
14:指令暂存器
16:数据暂存器
18:处理单元
19:存储单元
20:硬件加速器
22:译码单元
24:描述元更新单元
26:存取控制单元
28:状态包更新单元
30:状态机单元
32:暂存器单元
34:指令包更新单元
36:中断单元
302:译码状态
304:描述元更新状态
306:数据传输状态
308:状态包传输状态
310:重置状态
312:指令包接收状态
314:待机状态
316:循环状态
402~424:流程步骤

Claims (16)

1.一种硬件加速器,设置于一数据传输系统中,用以控制一总线控制器与一储存装置控制器其中之一传输一数据至其中的另一,其特征在于,该硬件加速器包括:
一译码单元,用以对一指令包进行译码以得到一控制指令,并判断该控制指令是否为正确的指令;
一描述元更新单元,回应于该控制指令来更新该总线控制器中的一描述元,以决定该总线控制器与该储存装置控制器的传输数据方向与一传输数据长度;
一存取控制单元,用以控制该储存装置控制器来与该总线控制器进行数据交换,以控制该储存装置控制器与该总线控制器其中之一传输该数据至其中的另一,并判断该数据是否传输完毕;
一状态包更新单元,用以产生并输出一状态包至该总线控制器;以及
一状态机单元,用以当该控制指令为正确的指令时驱动该描述元更新单元更新该描述元,当该描述元更新完毕时驱动该存取控制单元传输该数据,当该数据传输完毕时控制该状态包更新单元产生并输出该状态包至该总线控制器。
2.根据权利要求1所述的硬件加速器,其特征在于,该译码单元用以判断该控制指令是否为存取指令且该控制指令中一数据总长度是否大于零,以判断该控制指令是否为正确的指令,该数据总长度指示该数据的数据长度;
其中,当该控制指令为存取指令且该数据总长度大于零时表示该控制指令为正确的指令。
3.根据权利要求1所述的硬件加速器,其特征在于,该存取控制单元用以判断该总线控制器与该储存装置控制器是否完成对应的数据传输且一待传输数据长度是否等于零,以判断该数据是否传输完毕,该待传输数据长度为该数据的数据长度与该传输数据长度的差值;
其中,当该总线控制器与该储存装置控制器完成对应的数据传输且该待传输数据长度等于零时表示该数据传输完成。
4.根据权利要求1所述的硬件加速器,其特征在于,更包括一指令包更新单元,当判断待传输数据长度不等于零时,用以更新该指令包中一数据总长度等于该待传输数据长度,该数据总长度用以指示该数据的数据长度,该待传输数据长度等于该数据总长度与该传输数据长度的差;
于该指令包更新完毕后,该状态机单元回到译码状态以重新译码出该控制指令来传输剩余的数据。
5.根据权利要求1所述的硬件加速器,其特征在于,该状态机单元包括:
一译码状态,用以驱动该译码单元对该指令包进行译码,并判断该控制指令是否为正确的指令;
一描述元更新状态,用以于该控制指令为正确的指令时驱动该描述元更新单元更新该描述元;
一数据传输状态,用以于该描述元更新完毕时驱动该储存装置控制器与该总线控制器传输该数据,并判断该数据是否传输完毕;及
一状态包传输状态,用以于该数据传输完毕时驱动该状态包更新单元产生并输出该状态包;
其中当该控制指令不为正确的指令时该状态机单元驱动一中断单元产生一中断信号来中断该硬件加速器的操作。
6.根据权利要求5所述的硬件加速器,其特征在于,该存取控制单元用以判断该总线控制器与该储存装置控制器是否完成对应的数据传输且一待传输数据长度是否等于零,以判断该数据是否传输完毕,该待传输数据长度为该指令包中一数据总长度与该传输数据长度的差值,该数据总长度用以指示该数据的数据长度;
其中,当该总线控制器与该储存装置控制器完成对应的数据传输且该待传输数据长度等于零时表示该数据传输完成,该状态机单元进入该状态包传输状态。
7.根据权利要求6所述的硬件加速器,其特征在于,该状态机单元更包括:
一循环状态,用以于该总线控制器与该储存装置控制器完成对应的数据传输且该待传输数据长度不等于零时控制一指令包更新单元更新该数据总长度等于该待传输数据长度;
其中,当该数据总长度更新完毕时该状态机单元进入该译码状态,以重新译码出该控制指令来传输剩余的数据。
8.根据权利要求7所述的硬件加速器,其特征在于,当该总线控制器与该储存装置控制器无法完成对应的数据传输时该状态机单元驱动一中断单元产生一中断信号来中断该硬件加速器的操作。
9.根据权利要求5所述的硬件加速器,其特征在于,于该状态包传输状态中,该状态机单元更驱动该状态包更新单元判断该状态包是否成功地输出至该总线控制器;
其中,当该状态包无法成功地输出至该总线控制器时该状态机单元驱动一中断单元产生一中断信号来中断该硬件加速器的操作。
10.一种数据传输方法,用以通过一硬件加速器控制一储存装置控制器与一总线控制器其中之一传输一数据至其中的另一,其特征在于,该数据传输方法包括:
步骤a:对该总线控制器接收的一指令包进行译码以产生一控制指令;
步骤b:判断该控制指令是否为正确的指令;
步骤c:当该控制指令为正确的指令时回应于该控制指令更新该总线控制器的一描述元,以决定该数据的传输方向与一传输数据长度;
步骤d:控制该总线控制器与该储存装置控制器其中之一传输该数据至其中的另一;
步骤e:判断该数据是否传输完成;以及
步骤f:当该数据传输完成时产生并输出一状态包。
11.根据权利要求10所述的数据传输方法,其特征在于,步骤b中更包括:
步骤b1:判断该控制指令是否为存取指令;及
步骤b2:判断该控制指令中一数据总长度是否大于零,该数据总长度用以指示该数据的数据长度;
其中,当该控制指令为存取指令且该数据总长度大于零时表示该控制指令为正确的指令,接着执行步骤c。
12.根据权利要求11所述的数据传输方法,其特征在于,当该控制指令为存取指令且该数据总长度等于零时触发一中断事件,或当该控制指令不为存取指令时触发该中断事件,以中断该硬件加速器的操作。
13.根据权利要求10所述的数据传输方法,其特征在于,步骤e中包括:
步骤e1:判断该总线控制器与该储存装置控制器是否完成对应的数据传输;及
步骤e2:判断一待传输数据长度是否等于零,该待传输数据长度为一数据总长度与该传输数据长度的差值,该数据总长度用以指示该数据的数据长度;
其中,当该总线控制器与该储存装置控制器完成对应的数据传输且该待传输数据长度等于零时表示该数据传输完成,之后执行步骤f;
其中当该总线控制器与该储存装置控制器无法完成对应的数据传输时触发一中断事件以中断该硬件加速器的操作。
14.根据权利要求13所述的数据传输方法,其特征在于,当该总线控制器与该储存装置控制器完成对应的数据传输且该待传输数据长度不等于零时执行步骤:
步骤g:修正该指令包,使该指令包中该数据总长度等于该待传输数据长度,之后重新执行步骤a以再一次对该指令包进行译码产生该控制指令并传输剩余的数据。
15.根据权利要求10所述的数据传输方法,其特征在于,更包括步骤:
步骤h:判断是否接收到一起始事件,当接收到该起始事件时执行步骤i;
步骤i:控制该总线控制器接收一指令包;及
步骤j:判断是否成功地接收到该指令包;
其中,当该总线控制器成功地接收该指令包时执行步骤a;
其中当该总线控制器无法接收该指令包时触发一中断事件以中断该硬件加速器的操作。
16.根据权利要求10所述的数据传输方法,其特征在于,更包括步骤:
步骤k:判断该状态包是否成功输出;
步骤l:当该状态包成功输出时重置该总线控制器的该描述元;及
步骤m:控制该总线控制器接收下一指令包以进行下一次数据传输;
其中当该状态包无法成功地输出时触发一中断事件以中断该硬件加速器的操作;
其中,步骤k在步骤f之后执行。
CNB2007101815917A 2006-11-28 2007-10-23 硬件加速器与数据传输方法 Active CN100511199C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US86125906P 2006-11-28 2006-11-28
US60/861,259 2006-11-28
US60/861,739 2006-11-30

Publications (2)

Publication Number Publication Date
CN101136001A CN101136001A (zh) 2008-03-05
CN100511199C true CN100511199C (zh) 2009-07-08

Family

ID=39160104

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007101815917A Active CN100511199C (zh) 2006-11-28 2007-10-23 硬件加速器与数据传输方法

Country Status (1)

Country Link
CN (1) CN100511199C (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI594113B (zh) 2013-03-29 2017-08-01 慧榮科技股份有限公司 狀態切換方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5455918A (en) * 1993-08-26 1995-10-03 Electronic Arts, Inc. Data transfer accelerating apparatus and method
US5594926A (en) * 1993-07-19 1997-01-14 Efar Microsystems, Inc. Hard disk accelerating system for computer
CN1299096A (zh) * 2001-01-12 2001-06-13 常促宇 通用串行总线接口的大容量移动存储器及其实现方法
CN1369816A (zh) * 2001-02-13 2002-09-18 明碁电通股份有限公司 万用串行总线高速传输装置及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5594926A (en) * 1993-07-19 1997-01-14 Efar Microsystems, Inc. Hard disk accelerating system for computer
US5455918A (en) * 1993-08-26 1995-10-03 Electronic Arts, Inc. Data transfer accelerating apparatus and method
CN1299096A (zh) * 2001-01-12 2001-06-13 常促宇 通用串行总线接口的大容量移动存储器及其实现方法
CN1369816A (zh) * 2001-02-13 2002-09-18 明碁电通股份有限公司 万用串行总线高速传输装置及方法

Also Published As

Publication number Publication date
CN101136001A (zh) 2008-03-05

Similar Documents

Publication Publication Date Title
RU2505851C2 (ru) Обеспечение косвенной адресации данных в системе обработки ввода-вывода при фрагментированном списке косвенных адресов данных
US7899944B2 (en) Open exchange limiting in an I/O processing system
JP5461621B2 (ja) 遠隔デバイスドライバを利用した遠隔制御システム及び遠隔デバイスドライバを利用した遠隔制御方法
EP2181395B1 (en) Processing a variable length device command word at a control unit in an i/o processing system
US7917813B2 (en) Exception condition determination at a control unit in an I/O processing system
CN103838687B (zh) 贮存设备、包括其的计算系统及其数据传送方法
CN104679559B (zh) 单片机在线编程的方法
CN109447225B (zh) 一种高速安全加密Micro SD卡
US20090210768A1 (en) Exception condition handling at a channel subsystem in an i/o processing system
CN105224480A (zh) 一种用于响应于读取要求的存取存储器装置的方法和装置
JPH08235106A (ja) アップグレード・プロセッサのインタフェース方法及びシステム
EP3026591B1 (en) Function setting method
CN105224483B (zh) 数据传输方法、电子设备及通用串行总线设备
US9575669B2 (en) Programmable solid state drive controller and method for scheduling commands utilizing a data structure
CN106227571A (zh) 系统升级方法及其移动终端
CN101751338B (zh) 数据存取控制装置及数据存取方法
US7721016B2 (en) Method for using host controller to solicit a command failure from target device in order to initiate re-enumeration of the target device
US7702820B2 (en) Hardware accelerator and data transmission system and method using the same
CN100511199C (zh) 硬件加速器与数据传输方法
US20080066088A1 (en) Method for improving the communication of the human interface device
CN101447982A (zh) 存储模拟装置及其存取方法
CN1118756C (zh) 排除笔记本型电脑的键盘基本输入输出系统错误的方法
KR20070024600A (ko) 호스트 제어기 및 그 동작 방법
CN113986804B (zh) 国产嵌入式系统计算机与外设的通信方法、计算机及介质
CN112363670B (zh) 一种sata ncq命令调度方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant