CN1989484B - 驱动部件和用于时间预算的方法及其系统和设备 - Google Patents
驱动部件和用于时间预算的方法及其系统和设备 Download PDFInfo
- Publication number
- CN1989484B CN1989484B CN2005800244927A CN200580024492A CN1989484B CN 1989484 B CN1989484 B CN 1989484B CN 2005800244927 A CN2005800244927 A CN 2005800244927A CN 200580024492 A CN200580024492 A CN 200580024492A CN 1989484 B CN1989484 B CN 1989484B
- Authority
- CN
- China
- Prior art keywords
- data
- logical block
- data transfer
- transfer operation
- parameter
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 51
- 238000003860 storage Methods 0.000 claims abstract description 21
- 238000011084 recovery Methods 0.000 claims abstract description 14
- 230000007246 mechanism Effects 0.000 claims abstract description 9
- 230000005540 biological transmission Effects 0.000 claims description 48
- 230000008569 process Effects 0.000 claims description 45
- 238000012546 transfer Methods 0.000 claims description 45
- 239000007858 starting material Substances 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 13
- 238000012360 testing method Methods 0.000 claims description 8
- 238000007726 management method Methods 0.000 claims description 5
- 238000013500 data storage Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 239000003999 initiator Substances 0.000 abstract 3
- 238000012423 maintenance Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 22
- 238000013461 design Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002028 premature Effects 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000003716 rejuvenation Effects 0.000 description 1
- 230000029058 respiratory gaseous exchange Effects 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B21/00—Head arrangements not specific to the method of recording or reproducing
- G11B21/02—Driving or moving of heads
- G11B21/10—Track finding or aligning by moving the head ; Provisions for maintaining alignment of the head relative to the track during transducing operation, i.e. track following
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Automatic Tape Cassette Changers (AREA)
- Information Transfer Systems (AREA)
- Arrangements For Transmission Of Measured Signals (AREA)
- Communication Control (AREA)
- Measurement Of Unknown Time Intervals (AREA)
Abstract
在由启动器所请求的对存储媒介的数据访问之间,逻辑部件可能需要执行自主操作。逻辑部件从启动器接收信息以便使所述逻辑部件能够估算所述启动器的流缓冲器是否到达临界水平。根据此估算,逻辑部件可以确定是执行还是继续自主操作,诸如错误恢复、驱动机构或存储媒介的物理维护或在驱动机构和存储媒介之间的相对定位。所述估算还允许灵活而不是固定的超时。
Description
技术领域
本发明涉及用于管理在启动器部件和逻辑部件之间数据传输的领域,尤其涉及在所述启动器部件中流缓冲器的使用。
背景技术
在处理情况中,至少一个主机(也被称为启动器)处理器运行用于提供或消费数据的一个或多个应用。主机处理器典型情况下与诸如驱动部件(也称为逻辑部件)之类的外围装置对接。驱动部件通常具有一定本地处理能力和至少一个媒介,从所述媒介读取数据或向所述媒介写入数据。存在诸如光、磁和电子之类的多种类型的媒介。
为了与媒介对接,应用程序常常具有大缓冲器。如果应用正在消费数据,那么当缓冲器充满度低于某个阈值水平时,应用程序会发布用于从相关驱动部件请求附加数据的一个或多个读取命令。如果应用程序正在生成数据,那么当缓冲器空闲度低于一阈值水平时,应用程序会向相关驱动部件发布至少一个写入命令。
还有当从各种类型媒介读取以及向其中写入数据时缓冲数据的许多例子。可以在PCT申请IB2004/0506(NL030617)中发现这种缓冲的例子,在此将其内容引用以供参考,所述申请描述了驱动部件怎样使传输速率相适应,所述驱动部件以所述传输速率从媒介获取数据以试图与应用传输速率相匹配。本申请只适用于读取,并且可以(并且确实)考虑驱动部件自己缓冲器的缓冲器充满度。驱动部件并不知道关于应用的缓冲器的任何事情。
发明内容
发明人已经发现的一个问题是:与数据访问相关的计时不只与满足应用程序有关。有时驱动部件本身需要执行自主的非数据传输操作。这种操作包括错误恢复、驱动部件或存储媒介的物理维持以及在驱动机构和所述存储媒介之间的相对定位。通常这种操作使用与对存储媒介的数据访问相同的资源,由此无法在与这种访问相同的时间执行。结果,驱动部件除知道它是否可以满足应用程序之外还需要知道是否有时间来用于这种自主操作。
可能希望使正在运行应用程序的主机处理器向驱动部件提供信息以便使所述驱动部件能够确定在流送丢失之前剩余多长时间。驱动部件可以使用此信息来调节其内部操作,例如通过实现灵活超时或通过判定在开始这种操作之前它是否可以成功地执行自主非数据传输操作来调节。自主操作可以属于许多不同的分类,例如在错误恢复、驱动机构或数据存储媒介的物理维持或在驱动机构和存储媒介之间相对定位的类别中。
根据本发明的一个方面,提供了一种设备,其包括:至少一个启动器处理部件以及至少一个逻辑部件。所述至少一个启动器处理部件适合于执行处理部件操作,包括:运行至少一个应用;为所述至少一个应用维持流送缓冲器;向所述至少一个逻辑部件发布至少一个命令。其中所述至少一个命令包括参数,该参数用以规定数据传输请求;并且使所述至少一个逻辑部件得以估算所述流送缓冲器的状态。其中,所述至少一个逻辑部件适合于执行逻辑部件操作,包括:对所述数据传输请求作出响应,相对于至少一个存储媒介传输数据;接收并存储所述参数;根据所述参数和所述数据的传输来估算所述流送缓冲器的状态;以及根据所估算的缓冲器状态,确定与自主的非数据传输操作有关的条件。
根据本发明的另一个方面,提供了一种控制驱动部件的方法,包括以下步骤:由启动器为应用维持流送缓冲器;从所述启动器向所述驱动部件发布至少一个命令,所述至少一个命令包括参数(该参数用以规定数据传输请求并且使所述驱动部件得以确定所述流送缓冲器状态);对所述数据传输请求作出响应,由所述驱动部件相对于存储媒介传输数据;由所述驱动部件接收并存储所述参数;并且根据所述参数和数据的传输,由所述驱动部件计算所述流送缓冲器的状态;以及根据所计算的缓冲器的状态,由所述驱动部件确定与自主的非数据传输操作有关的条件。
根据本发明的再一个方面,提供了一种数据处理系统,其包括:至少一个主机部件,适合于使用命令集,所述命令集包括适合于向驱动部件传输信息的命令,所述信息包括与在流送丢失之前的时间相关的数据项;和至少一个驱动部件,适合于:接收所述命令并且根据所述数据项导出在流送丢失之前可用的时间;并且根据在流送丢失之前可用的时间来依照灵活超时调节其自已的操作。
根据本发明的又一个方面,提供了一种驱动部件,包括:用于从至少一个主机部件接收数据传输请求的装置;以及用于访问至少一个存储媒介的装置。其中所述驱动部件具有以下本地处理能力:接收并存储与数据传输请求相关的命令参数;辨别是否需要流送性能;确定在流送丢失之前所剩余的时间;以及依照所剩下的时间来调节自主的非数据传输操作。
附图说明
在下面本发明的目的和优点将更加清楚。
图1示出了依照本发明的设备在读取操作期间的示意图。
图2示出了依照本发明的设备在写入操作期间的示意图。
图3a是缓冲器填充对时间的图表。
图3b是计时器值对时间的图表
图4a是与依照本发明的读取操作相关的流程图的第一部分。
图4b是与依照本发明的读取操作相关的流程图的第二部分。
图5a是与依照本发明的写入操作相关的流程图的第一部分。
图5b是与依照本发明的写入操作相关的流程图的第二部分。
图6示出了与图4a和4b的流程图相关的时序图。
图7示出了用于读取操作的前台过程的流程图。
图8示出了用于读取操作的第二前台过程的流程图。
图9示出了用于写入操作的后台过程的流程图。
具体实施方式
图1示出了其中可以使用本发明的设备例子的示意图。此示意图被组织来用于示出在流送情况下的读取操作。
所述设备包括数据源101,所述数据源101包括逻辑部件104和一个或者一些媒介107。这里术语“驱动部件”和“逻辑部件”可交换地使用。媒介107可以是光盘,诸如CD(紧凑盘)、DVD(数字化视频盘)、HD-DVD(高清晰度数字化视频盘)或BD(蓝光盘)。媒介107还可以属于诸如磁或电子之类的其它类型。
所述设备还包括用于使用来自源101的数据的主机106。这里术语“主机”和“启动器”可交换地使用。主机106可以属于任何类型,诸如PC、数字信号处理器、机顶盒等。主机106可以与逻辑部件104处于相同的机座中或不同的机座中。在启动器部件106内是收集器模块102,用于从源101内的逻辑部件104收集数据流3。流缓冲器105从收集器接收数据2并且向消费者103提供所流送的数据1。流缓冲器105优选为大缓冲器。数据流3经由接口(未示出)出现。消费者模块103是使用所流送数据1的应用程序的一部分。
消费者103具有已知的最大数据速率,它可以以所述数据速率从流缓冲器105移走数据。此速率被称作消费速率。该接口具有已知的最小数据传输速率。此速率被称作接口速率。源101具有从媒介到逻辑部件的高速缓存器或缓冲器108中已知的最小流送数据速率。此最小流送速率被称作源速率。通常消费速率小于源速率,所述源速率又小于接口速率。
逻辑部件缓冲器108是可选的。本领域普通技术人员可以在没有它的情况下设计驱动部件。
通常,读取命令可以属于许多不同的类型。一些要求流送性能,而一些则不要求。本发明在要求流送性能的情况下尤为有用。例如,MMC命令集具有一个以上的读取命令,包括:
·读取(10)
·读取(12)
数目(10或12)说明命令描述符块是从多少字节构成的。在两个命令之间的差异是:
·读取(10)命令具有用于规定要传输的扇区数目的2字节参数,而读取(12)命令具有4字节参数。
·只有读取(12)命令具有用于表明主机想要“流送”传输的参数。对于驱动器来说,这意味着按时递送数据(所述数据可能是错误的或伪造的)比进行重试来递送正确数据(但是可能会有延迟)更为重要。在此流送情况中本发明尤为有用。
在应用开始向消费者发送数据之前,事实上没有实时约束。因此,可以利用读取(10)命令或在“流送”参数被关掉的情况下利用读取(12)命令来初始填充缓冲器。在数据已经开始流向消费者之后,读取(12)命令是一个可以用来向逻辑部件指示流送传输请求的命令。
图3a示出了在数据消费操作期间纵轴上的缓冲器充满度对时间的图。缓冲器充满度在数据消费期间下降,直到它到达阈值或触发水平。在该点,应用使用驱动部件来启动新的数据传输操作,这使得缓冲器充满度再次增加。典型情况下,在缓冲器到达第二阈值前,数据将被传输,所述第二阈值足够满使得应用停止请求进一步的传输。从主机观点看来,如果有时间的话,那么这是启动自主操作的优选点,但是驱动器并不知道此时刻是何时,因此它需要接收足够信息以便能够执行自主操作并且仍然满足所述主机的需要。
图2类似于图1示出了依照本发明的设备在写入操作期间的例子的示意图。在这种情况下,数据产生器模块203以被称作产生速率的速率来向流缓冲器205提供数据211。流缓冲器205向组合器模块202提供数据212,所述组合器模块202随后以被称作接口速率的速率经由接口(未示出)向目的地201提供数据213。然后,目的地模块201以被称作目的地写入速率的速率向其本地媒介写入,所述本地媒介在图1中示出但在这里未示出。取决于应用,图2的模块可以与图1中的类似模块完全相同,即与附图标记中具有相同后两位数字的模块相同。作为选择,它们可以是不同的模块。为了确保可以记录应用所生成的所有数据,驱动部件能够写入所采用的速率需要大于产生速率。这一定不能受到太低的接口传输速率妨碍。
同样存在许多可以用来向逻辑部件发信号通知在写入情况中要求流送传输性能的不同命令,诸如MMC-4写入(12)命令。
图3a还可以被用作为在写入操作期间缓冲器空闲度对时间的插图。换句话说,在写入期间,缓冲器空闲度会下降,直到它到达阈值或触发值,在该点由应用使用驱动部件来启动数据传输。数据传输逐渐地增加缓冲器空闲度直到到达第二阈值。在到达第二阈值之后,应用程序停止请求数据传输。这是驱动部件可以启动自主操作的点。不过驱动部件不知道到达了优选的点。它只根据计时器值和恢复或校准所花费的时间量知道它有一些‘喘气时间’。
通常应当使用命令把关于可用于自主非数据传输操作的时间的信息从主机106/206传送到驱动部件101/201。优选,这种命令可以包括四个参数:
·初始流计时值(initial stream timing value ISTV);
·传输单元大小(transfer unit size TUS);
·传输单元增量(transfer unit increment TUI);
·写入标志,用于表明想要读取还是写入操作。
这些只是可以怎样设置参数的例子。本领域普通技术人员可以设计其它参数。例如,取代发送计时值,应用可以发送数据消费速率和已经处于流速缓冲器中的数据量的量化。根据这些值,驱动部件可以计算剩余时间。消费速率可以被视为TUS/TUI。
图7示出了在驱动部件中操作来用于数据传输的前台过程的例子。首先在701,驱动部件从主机部件接收超时参数,诸如上面列出的那些。然后在702,驱动部件存储所述参数。然后在703,驱动部件开始超时计数器。
所述计时器连续地倒计数。每当驱动器在由写入标志所确定的方向上传输大小为TUS的数据量时,驱动器可以向实际的计数器值添加TUI。在图3b中图示了表示计时器中的值对时间的图。在这种情况下,计数器值的增加遵循锯齿形线。添加TUI会使计时器值在传输单元传输末尾上升,但是在相同的传输期间计时器值会下降。因此计时器值是流送缓冲器中该值的锯齿状近似或估算。
图8示出了在驱动部件中操作的读取请求的第二前台过程。在801,驱动部件接收读取请求。如果在802读取命令不要求流送,例如读取(10),那么在803在没有流送要求的情况下处理所述命令。如果在802读取命令要求流送,例如读取(12),那么所述过程在806测试计时器是否期满。如果是的话,那么所述命令在805会以错误而终止。如果不是的话,那么所述过程在807测试所有数据是否已经被传输。如果是的话,那么所述命令在809成功完成。否则前台过程可以在808等待来自后台过程的数据。在810,传输可用数据继而在811更新计时器。然后控制返回到806。
如果数据已经由后台过程从盘取出,那么等待来自后台过程的数据的功能808可以非常迅速地返回。如果不是的话,那么一旦数据可用,前台过程就被后台过程触发。当然,可能出现致命错误,但是这在流程图中没有示出。
当在没有流送要求的情况下处理命令时,计时器仍然在倒计数,这是因为消费者仍然在使用来自应用的流送缓冲器的数据。
还假定驱动部件在读取操作期间检测到媒介中的缺陷,并且需要进行恢复和/或校准。问题是:在不危及消费者的实时要求的情况下允许驱动器在此恢复过程上花费多长时间?答案事实上取决于应用缓冲器的充满度。只要此缓冲器填充有数据,那么驱动器可以继续其恢复。但是当缓冲器占用接近零时,必须停止驱动器的恢复。
通常,应用不能停止恢复,这是因为接口不支持这一点。结果,驱动部件必须响应于其本地计时器中的超时值到达某个阈值水平而自身停止恢复。驱动部件常常自身具有缓冲器一类的东西,上面也被称作高速缓存器108,当所述驱动部件执行自主操作时所述高速缓存器108可以馈送主机。这会给自主操作多一点的时间,但是由于驱动部件中的缓冲器通常要与流送缓冲器的小,所以此额外时间可能并不是很显著的。
图9示出了由框808所使用的后台读取过程的例子。此特定的过程用于进行被称作校准的非数据传输操作。当读取时,驱动器执行被称作预先取出的任务。这意味着后台过程保持从盘读取数据直到驱动器的缓冲器变满为止,这样就使得它可以预计从应用随后请求更多的(连续数据)。这是按循环发生的:在已经触发前台过程之后,后台过程可以继续读取数据或(如果由驱动部件内部请求)执行非数据传输操作,因此优选在后台过程中执行这种操作。
在901,后台把数据预先取出到驱动部件缓冲器中。然后在902,它检查数据是否可用。
如果是的话,那么在907它触发前台过程。如果不是的话,那么在903该过程确定校准是否挂起。如果不是的话,那么在906,把数据从驱动器传输到缓冲器,并且在907触发前台过程。
如果校准挂起,那么在904后台过程测试超时计数器是否足以用于非数据传输操作。如果是的话,那么在905执行非数据传输操作--在这种情况下是校准请求,并且控制传递到906。如果没有时间用于非数据传输操作,那么控制绕过905而直接传递到906。
图7-9的流程图应当并行操作。
图4a和4b依照本发明示出了在错误的情况下要求自主操作的读取操作的流程图的例子。
在401,主机计算参数ISTV、TUS、TUI&WRITE,最后一个是标志。然后在402,主机在下面要描述的设置流送命令中经由‘流送计时描述符’发送参数。在403,驱动器接收设置流送命令并且从流送计时描述符获得参数。然后,在404驱动器利用ISTV编程来倒计算器并且存储其它参数。在405,主机现在发送至少一个读取命令,诸如读取(12),并且在406所述驱动器接收所述读取命令。使用流程图连接符X来连接在图4a和4b之间执行的流。在410,驱动器从盘读取一个或多个扇区。如果驱动部件还具有缓冲器,那么数据可能已经是可用的。
在读取期间,在411某个错误可能被驱动部件发现。如果是的话,那么在418驱动器必须执行自主的读取恢复操作。首先在423驱动器测试是否有足够时间来执行自主操作。如果没有足够时间,那么在421驱动器经由连接符W来生成错误消息。如果有足够时间,那么控制传递到框418。当执行这些操作时,驱动器还必须监视倒计数计数器/计时器。如果在419倒计数到达零,那么在422读取超时。如果倒计数没有到达零,但是在420读取恢复没有成功,那么在421所述读取必须以不可恢复错误终止。
如果在420读取恢复成功,那么在412驱动器表明数据可用,如果在411没有错误,那么也是这个结果。然后在412主机可以把数据从驱动器传输到所述主机,并且在414所述驱动器更新倒计数器,如图3b所示。倒计数器的这一更新实现了灵活的超时。如果在415驱动器倒计数器到达零,那么也会出现读取超时,导致在422的不成功读取终止。如果在415驱动器倒计数器还没有到达零,那么在416驱动器测试所有请求的数据是否已经被传输了。如果没有的话,那么控制返回到框410。如果是的话,那么在417驱动器发信号通知传输命令已经成功。
图5a和5b依照本发明示出了要求自主操作的写入操作的流程图的例子。
在501,主机计算参数ISTV、TUS、TUI&WRITE,最后一个是标志。然后在502,主机在设置流送命令中经由‘流送计时描述符’发送参数。在503,驱动器接收设置流送命令并且从流送计时描述符获得参数。然后在504驱动器利用ISTV来编程倒计数器并且存储其它参数。在505主机现在发送至少一个写入命令并且在506驱动器接收写入命令。在507,驱动器从主机请求数据。然后在508所述主机向驱动器发送一个或多个数据块,在509所述驱动器接受所述数据块。使用连接符Y和Z来连接图5a和5b的流程图部分。在510,驱动器更新倒计数器,即计时器,从而实现灵活的超时。
如果在511倒计数器到达零,那么在520写入命令由于超时条件而终止。如果没有的话,那么在512驱动器向盘写入。如果在513检测到由于此写入而导致的错误,那么在516驱动器必须执行自主的写入恢复。首先在522驱动器必须测试是否有时间执行自主操作。如果没有的话,那么在519经由连接符V来招致不可恢复的错误。如果有时间的话,那么控制传递到框516。在写入恢复期间,在517驱动器还必须监视倒计数。如果在517驱动器的倒计数到达零,那么在520写入命令必须由于超时条件而终止。如果没有的话,那么在518驱动器测试写入恢复是否成功。如果没有成功的话,那么在519写入命令由于不可恢复的错误而终止。如果写入恢复成功,那么控制传递到框514,所述框514还是如果在513没有检测到错误时控制要会传递到的地方。
在514,驱动器测试所有相关数据是否已经被传输了。如果没有的话,那么控制返回到块507。如果是的话,那么在521驱动器确定传输命令已经成功。
操作519、520、521、417、421&422根据数据传输操作的结果都要求驱动器向主机给出报告。
图4a、4b、5a和5b的流程图是依照顺序类型的格式编写的,但是类似于图7-9它们也可以依照并行类型格式来建立。
驱动部件可以执行诸如层跳跃、热管理活动或重试之类的其它自主操作。通常自主操作可以属于许多不同的分类,例如在驱动机构或数据存储媒介的物理维持或在驱动机构和存储媒介之间相对定位的类别中。
在任何情况下,此类自主操作对主机应当是透明的。正在处理命令的前台过程只是等待数据到达驱动部件的高速缓存器。它不知道等待数据到达的原因并且也不必知道。
本领域普通技术人员对于这些和其它类型自主操作来说可以设计类似于图4a&b和5a&b或类似于7-9的其它实现方式,特别是对框410、411、418、512、513和516进行小的修改。
在层跳跃的情况下,在读取期间,它可以作框410的一部分执行。层跳跃是相对于存储媒介的运动的一个例子。从盘读取扇区要求光学头被移动到合适的位置。这可以在另一层上,因此有层跳跃。
这些流程图示出了自主操作在流送缓冲器上超时的情况下提前终止。然而,一些自主操作是十分关键的,即便存在超时它们也应当进行。例如,即便没有足够时间,那么热管理操作也可能是必要的,以免损害存储媒介。在这种情况下,可以在热管理活动之后或与之并行发布超时错误消息。
框522和423必须确定到流送丢失为止的时间是否大于执行自主操作所必须的时间。在下表中示出了计算到流送丢失为止的时间的例子:
表1-在动态条件下剩余的时间
时间 | 流缓冲器深度 | 到流送丢失为止的时间 |
0 | X | (X*K)/C秒 |
K | X-C | ((X-C)*K)/C秒 |
2*K | X-2*C | ((X-2*C)*K)/C秒 |
… | … | … |
N*K | X-N*C | ((X-N*C)*K)/C秒 |
(N+1)*K | X-(N+1)*C | ((X-(N+1)*C)*K)/C秒 |
其中:
·C是在不小于K秒的间隔中所消费的字节组数目;
·N是乘数,可以把C乘以N以便得到优选的读取或写入大小;并且
·X是预定的流送缓冲器填入点。
通常,逻辑部件中依照本发明的自主操作可以在命令执行期间或在命令之间执行。
“在命令执行期间”是在流程图中所描述的情况,其中本发明解决了相对于来自MMC4的固定超时值的基本问题。应用允许超时被规定。但是此超时适用于每个单个命令的执行--因此这是在每个命令到达时重新开始的固定超时。此定义的问题在于不可以合计多个命令的超时。本发明的超时实际上是过程而不是单个命令的超时,即灵活或流动的超时。
在候选实施例中,在命令执行期间,驱动器可以测试自主操作有多重要,继而实际上只有在数据传输命令终止之前立即需要一个自主操作才会开始所述操作。在另一候选实施例中,驱动部件可以限制可在自主操作上花费的时间。
本发明还可以在命令之间使用。在这些情况中,驱动器可以自主且安全地执行除传输数据之外的活动。本发明的计时器值是用于过程而不是单个命令的流动计时器。因此,当在后台进行非数据传输操作时,驱动器仍能接收关于流送要求的新信息,命令处理是前台任务。
如果到消费者的实际传输速率(由于压缩)可能改变,那么本发明所维持的超时值可能变得不准确。因此,应用需要有规律地更新计时器值。
启动器可以发布要求传输非常大量扇区的一个命令,但是也可以发布带有少量扇区的许多命令。在前一种情况下,非数据传输操作可以在执行命令期间进行,而在后一种情况下,只要适当的计时器值继续被传输到驱动部件,非数据传输操作也可以在命令之间进行。由于驱动部件还具有高速缓存器,所以它能够为来自高速缓存器中的这些许多命令中几个传输扇区,同时并行执行非数据传输操作(像重试、错误恢复、校准等)。
然而应当注意,“在命令执行期间”并不意味着驱动器必须与从存储媒介读取数据或向其写入数据并行地来执行非数据传输操作。驱动器仅仅使用本发明的计时计算来利用不需要对存储媒介进行实际数据访问的时间。
图6示出了在读取操作期间缓冲器充满度对流失的时间的图。类似图也会适用于写入操作。在601,缓冲器充满度到达跳回级603。这充当用于读取操作的触发器。在第一间隔604期间,充满度继续下降,直到数据传输实际上开始。附图标记605示出了到超时为止的时间间隔,如果数据传输没有发生的话。附图标记606示出了在流程图中的422所示出的情况C的缓冲器充满度被遵循,自主操作是否费时太久。附图标记607和608指的是时序图的分支A和B的时间间隔。这些分支都涉及成功读取,依照块417,但是在分支A中,缓冲器充满度永不降到低于跳回级,而在分支B,所述缓冲器充满度降到低于跳回级而不会产生超时。
在主机部件和驱动器之间传送的命令可能依照诸如在MMC-4标准中所找到的那些格式,其草案位于http://www.t10.org/ftp/t10/drafts/mmc4/mmc4r03.pdf。优选实施例利用“SET STREAMING(设置流送)”命令传递与本发明相关的参数。本领域普通技术人员例如可以使用其它MMC类型的命令来设计其它通信技术,所述命令包括现有命令或新的命令。
下面描述了命令格式,所述命令格式可适于在MMC类型的情况中使用来实现本发明。这些只是例子。本领域普通技术人员可以设计其它本发明可以工作的格式或命令使用情况。
启动器发布GET CONFIGURATION(获得配置)命令以便获得驱动部件在简档和特征方面的所有能力。取决于所安装的媒介,使一些分布和特征变为当前的。
简档的当前状态定义了由驱动部件所支持的一组基本特征。依此,特征描述了用于规定驱动部件的能力和行为的一组命令和模式页面。
在表2中定义了要返回给启动器的对实时流送特征的特征描述符响应数据。
表2-实时流送特征描述符格式
这个表中的大部分位都合乎MMC-4标准,除了添加流送的计时(Streamed Timing ST)位之外。如果所述位是一,那么这表明此逻辑部件支持SET STREAMING(设置流送)命令的流送计时描述符。
支持此特征的逻辑部件实现了在表3中所列出的命令。
表3-实时流送特征命令
SET STREAMING命令
步骤402和502涉及使用SET STREAMING命令来向驱动部件发送流送计时描述符。
SET STREAMING命令向启动器提供了用于传送数据速率要求的方法。性能设置是不变的并且保持不变直到发送新的描述符。
如果SET STREAMING命令用来设置性能,那么逻辑部件可以禁止所规定区域中的读取和写入重新分配以便满足性能准则。
表4示出了与SET STREAMING命令相关联的特征。
表4-与SET STREAMING命令相关联的特征
特征号 | 特征名称 | 命令要求 |
0107h | 实时流送 | 强制的 |
CDB及其参数
在表5中示出了SET STREAMING CDB。
类型
类型字段(表6)规定了传输哪种类型的数据。
表6-类型字段定义
类型 | 描述符 | 规范 |
00h | 执行描述符 | |
01h | 流计时描述符 | |
02h-04h | 保留 | |
05h | DBI高速缓存器区域描述符 |
此表描述了可以发送的3个描述符:性能描述符(MMC-4中已有)、流计时描述符和DBI高速缓存器区域描述符(MMC-4中已有)。
命令执行
SET STREAMING命令为启动器提供了用于向逻辑部件表明应用对逻辑部件执行具有特定请求或要求的方式。
流计时描述符
流计时描述符,尤其是下面表7的字节4-15,允许启动器和逻辑部件共享计时信息以便维持流连续性。
逻辑部件将维持可用计时器,可用计时器表示可用于流维持的时间。可用计时器是倒计数计时器。如果启用流计时并且可用计时器到达零,那么存在流送UNIT ATTENTION(单元注意)条件的丢失。
表7-流计时描述符
启用
当启用被设置为零时,禁止所有基于流计时描述符的当前活动流计时功能。当启用被设置为一时,依照在包含的描述符中的参数来启用流计时。
写入
当启用被设置为一并且写入被设置为零时,依照此描述符中的参数来启用用于读取的流计时功能并且初始化用于读取的流计时。
当启用被设置为一并且写入被设置为一时,依照此描述符中的参数来启用用于写入的流计时功能并且初始化用于写入的流计时。
每当启用被设置为零时,不定义写入位。
初始流计时值
初始流计时值表示微秒数目直到出现丢失流送UNITATTENTION条件。
当启用被设置为一时,逻辑部件将把其可用时间计时器初始化为初始流计时值并且开始可用计时器。
每当启用被设置为零时,不定义此参数。
传输单元大小
传输单元大小是每次传输的优选扇区数目。
传输单元增量
传输单元增量是微秒数目,在已经传输传输单元大小扇区之后所述微秒数目被添加到可用时间计时器。
通过阅读本公开内容,本领域技术人员显然可以进行其它修改。这种修改可以包括其它特征,所述特征在用于在启动器和逻辑部件之间的数据传输设备的设计、制造和使用中是已知的,并且所述特征可以被用来代替或添加到这里已经描述的特征。尽管在本申请中已经把权利要求格式化为特定的特征组合,然而应当理解的是,本申请的公开范围还包括这里显式或隐式公开的任何新颖特征或新颖特征的组合或它们的任何概括,而不考虑它是否缓和了任何或所有与本发明相同的技术问题。申请人在此告知在本申请的申请期间或据此导出的更进一步申请的申请期间可以把新的权利要求公式化为这种特征。
如这里所用,词“包括”、“包含”或“具有”不应当被视为排除附加元素。如这里所用,单数“一个”或“一种”不应当被视为排除多个元素。
Claims (13)
1.一种用于在至少一个启动器处理部件和至少一个逻辑部件之间管理数据传输操作的设备,所述设备包括:
所述至少一个启动器处理部件;以及
所述至少一个逻辑部件;
其中,所述至少一个启动器处理部件适合于执行处理部件操作,包括:
运行至少一个应用;
为所述至少一个应用维持流送缓冲器;
向所述至少一个逻辑部件发布至少一个命令,其中所述至少一个命令包括参数,该参数用以
规定数据传输请求;并且
使所述至少一个逻辑部件得以估算所述流送缓冲器的状态;和
其中,所述至少一个逻辑部件适合于执行逻辑部件操作,包括:
对所述数据传输请求作出响应,相对于至少一个存储媒介传输数据;
接收并存储所述参数;
根据所述参数和所述数据的传输来估算所述流送缓冲器的状态;并且
根据所估算的缓冲器状态,确定与自主的非数据传输操作有关的条件。
2.如权利要求1所述的设备,其中
○所述应用在读取数据;并且
○所述条件是当启动器过程不需要所述流送缓冲器中的更多数据时,将在对存储媒介的读取访问之间尝试自主的非数据传输操作。
3.如权利要求1所述的设备,其中
○所述应用在写入数据;并且
○所述条件是当启动器处理器不需要从所述流送缓冲器中移走数据时,将在对存储媒介的写入访问之间尝试自主的非数据传输操作。
4.如权利要求1所述的设备,其中所述条件允许所述非数据传输操作出现在发布超时错误消息时。
5.如权利要求1所述的设备,其中所述逻辑部件操作包括,
○确定特定的自主非数据传输操作已经花费了比在要求另一数据传输之前剩余的时间更长的时间;并且
○响应于这种确定向启动器处理部件发送错误消息。
6.如权利要求1所述的设备,其中所述逻辑部件在启动非数据传输操作之前测试是否有时间启动这种非数据传输操作。
7.如权利要求1所述的设备,其中所述自主的非数据传输操作是错误恢复操作。
8.如权利要求1所述的设备,其中所述自主的非数据传输操作涉及所述逻辑部件的至少一个存储媒介或至少一个驱动机构的物理维持。
9.如权利要求1所述的设备,其中所述自主的非数据传输操作涉及在所述逻辑部件的至少一个数据存储媒介和至少一个驱动机构之间的相对定位。
10.如权利要求1所述的设备,其中所述参数包括
●初始流送计时值;
●传输单元大小;
●传输单元增量;
●写入标志,用于表明是希望读取操作还是写入操作。
11.如权利要求1所述的设备,其中,在所述至少一个逻辑部件正在执行自主的非数据传输操作时,所述至少一个逻辑部件还适于从该逻辑部件的缓冲器馈送所述至少一个启动器处理部件。
12.一种控制逻辑部件的方法,包括以下步骤:
由启动器为应用维持流送缓冲器;
从所述启动器向所述逻辑部件发布至少一个命令,所述至少一个命令包括参数,该参数用以
规定数据传输请求;并且
使所述逻辑部件得以确定所述流送缓冲器状态;
对所述数据传输请求作出响应,由所述逻辑部件相对于存储媒介传输数据;
由所述逻辑部件接收并存储所述参数;并且
根据所述参数和数据的传输,由所述逻辑部件计算所述流送缓冲器的状态;以及
根据所计算的缓冲器的状态,由所述逻辑部件确定与自主的非数据传输操作有关的条件。
13.如权利要求12所述的方法,还包括步骤:当所述逻辑部件正在执行自主的非数据传输操作时,从该逻辑部件的缓冲器馈送所述启动器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US58935904P | 2004-07-20 | 2004-07-20 | |
US60/589,359 | 2004-07-20 | ||
PCT/IB2005/052381 WO2006011106A2 (en) | 2004-07-20 | 2005-07-18 | Time budgeting for non-data transfer operations in drive units |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1989484A CN1989484A (zh) | 2007-06-27 |
CN1989484B true CN1989484B (zh) | 2010-06-23 |
Family
ID=35159726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800244927A Expired - Fee Related CN1989484B (zh) | 2004-07-20 | 2005-07-18 | 驱动部件和用于时间预算的方法及其系统和设备 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7620750B2 (zh) |
EP (1) | EP1782175B1 (zh) |
JP (2) | JP5399631B2 (zh) |
KR (2) | KR20110133059A (zh) |
CN (1) | CN1989484B (zh) |
AT (1) | ATE503220T1 (zh) |
DE (1) | DE602005027083D1 (zh) |
WO (1) | WO2006011106A2 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7317718B1 (en) * | 2002-12-06 | 2008-01-08 | Juniper Networks, Inc. | Flexible counter update and retrieval |
US20070060135A1 (en) * | 2005-08-22 | 2007-03-15 | Jeng-Tay Lin | Method and device for streaming wireless digital content |
JP2009282907A (ja) * | 2008-05-26 | 2009-12-03 | Seiko Epson Corp | データベースアクセスサーバおよびデータベースアクセスシステム |
US9311099B2 (en) * | 2013-07-31 | 2016-04-12 | Freescale Semiconductor, Inc. | Systems and methods for locking branch target buffer entries |
US9928890B2 (en) * | 2016-08-29 | 2018-03-27 | Apple Inc. | System and method for calibrating memory using credit-based segmentation control |
TWI718532B (zh) * | 2019-05-10 | 2021-02-11 | 技嘉科技股份有限公司 | 固態硬碟以及固態硬碟的效能優化方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4888692A (en) * | 1986-08-11 | 1989-12-19 | Texas Instruments Incorporated | Real-time scheduling system |
CN1360803A (zh) * | 1999-07-08 | 2002-07-24 | 艾利森公司 | 在切换期间基于时间到达的定位 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4888691A (en) * | 1988-03-09 | 1989-12-19 | Prime Computer, Inc. | Method for disk I/O transfer |
JPH08227343A (ja) * | 1995-02-21 | 1996-09-03 | Fujitsu Ltd | 2次記憶装置の制御装置および制御システム |
JP3142497B2 (ja) * | 1997-04-01 | 2001-03-07 | 富士通テン株式会社 | ディスク再生装置 |
JP3867447B2 (ja) * | 1999-06-22 | 2007-01-10 | ソニー株式会社 | ディスク型データ記録再生装置、及び、ディスク型データ記録再生装置を搭載する情報処理システム |
JP2001283509A (ja) * | 2000-03-31 | 2001-10-12 | Matsushita Electric Ind Co Ltd | 情報記録再生装置および情報記録再生方法 |
US6941419B2 (en) * | 2000-05-24 | 2005-09-06 | Seagate Technology Llc | Method and apparatus for disc drive buffer segment management |
EP1160787A2 (en) * | 2000-06-02 | 2001-12-05 | Hewlett-Packard Company | Variable speed writing on a CD-R, CD-RW and DVD-RW media |
JP2002157825A (ja) * | 2000-11-21 | 2002-05-31 | Ricoh Co Ltd | 情報記録装置 |
JP2003309797A (ja) * | 2002-04-17 | 2003-10-31 | Sharp Corp | 低消費電力モードを備えたハードディスクビデオカメラ |
KR20060017794A (ko) | 2003-05-19 | 2006-02-27 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 데이터 매체 구동장치에서의 데이터 매체 속도 설정방법 |
-
2005
- 2005-07-18 US US11/572,296 patent/US7620750B2/en not_active Expired - Fee Related
- 2005-07-18 KR KR1020117026362A patent/KR20110133059A/ko not_active Application Discontinuation
- 2005-07-18 DE DE602005027083T patent/DE602005027083D1/de active Active
- 2005-07-18 AT AT05764019T patent/ATE503220T1/de not_active IP Right Cessation
- 2005-07-18 CN CN2005800244927A patent/CN1989484B/zh not_active Expired - Fee Related
- 2005-07-18 JP JP2007522100A patent/JP5399631B2/ja not_active Expired - Fee Related
- 2005-07-18 KR KR1020077001175A patent/KR20070032788A/ko active IP Right Grant
- 2005-07-18 WO PCT/IB2005/052381 patent/WO2006011106A2/en active Application Filing
- 2005-07-18 EP EP05764019A patent/EP1782175B1/en not_active Not-in-force
-
2011
- 2011-06-08 JP JP2011128073A patent/JP5595334B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4888692A (en) * | 1986-08-11 | 1989-12-19 | Texas Instruments Incorporated | Real-time scheduling system |
CN1360803A (zh) * | 1999-07-08 | 2002-07-24 | 艾利森公司 | 在切换期间基于时间到达的定位 |
Also Published As
Publication number | Publication date |
---|---|
JP5595334B2 (ja) | 2014-09-24 |
ATE503220T1 (de) | 2011-04-15 |
CN1989484A (zh) | 2007-06-27 |
EP1782175A2 (en) | 2007-05-09 |
KR20110133059A (ko) | 2011-12-09 |
WO2006011106A3 (en) | 2006-06-29 |
WO2006011106A2 (en) | 2006-02-02 |
JP2008507748A (ja) | 2008-03-13 |
JP2011216102A (ja) | 2011-10-27 |
KR20070032788A (ko) | 2007-03-22 |
JP5399631B2 (ja) | 2014-01-29 |
US7620750B2 (en) | 2009-11-17 |
DE602005027083D1 (de) | 2011-05-05 |
EP1782175B1 (en) | 2011-03-23 |
US20070226397A1 (en) | 2007-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8010742B2 (en) | Using idle mode prediction to improve storage system performance | |
CN1989484B (zh) | 驱动部件和用于时间预算的方法及其系统和设备 | |
US8341374B2 (en) | Solid state drive and related method of scheduling operations | |
CN101452369B (zh) | 用于控制usb大容量存储设备的逻辑单元的方法和系统 | |
US20030120871A1 (en) | Storage apparatus and input/output control method for the storage apparatus | |
CN106293623B (zh) | 微指令序列执行方法及其装置 | |
US8539176B2 (en) | Data storage devices accepting queued commands having deadlines | |
CN102402401A (zh) | 一种磁盘io请求队列调度的方法 | |
CN102171649A (zh) | 用于用单个命令对多个不连续地址范围的传送进行排队的方法和系统 | |
US11467767B2 (en) | Storage device throttling amount of communicated data depending on suspension frequency of operation | |
US20090204775A1 (en) | Data copying method | |
JP2005115600A (ja) | 情報処理装置及び方法 | |
CN108021516B (zh) | 一种并行存储介质存储控制器的命令调度管理系统与方法 | |
US8032690B2 (en) | Non-volatile memory device, and method of accessing a non-volatile memory device | |
CN104063184A (zh) | 磁盘记录方法及其非易失性存储媒体与电子装置 | |
CN101465145A (zh) | 记录设备 | |
CN101447982A (zh) | 存储模拟装置及其存取方法 | |
US8819363B2 (en) | Data copying method | |
CN112764672A (zh) | 存储器控制器、存储装置及其控制方法以及记录介质 | |
US7831741B2 (en) | Indexing device and method for data storage system | |
US9965183B2 (en) | Method for processing data in storage device and storage device | |
US20140372633A1 (en) | Electronic system and computer readable recording media can perform report rate setting method | |
JP5216719B2 (ja) | 情報処理装置および制御装置 | |
KR100983048B1 (ko) | Ncq 제어 방법 및 컴퓨팅 장치 | |
KR102036124B1 (ko) | 저장 명령을 효율적으로 처리하는 방법 및 장치 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100623 Termination date: 20160718 |
|
CF01 | Termination of patent right due to non-payment of annual fee |