CN111176726A - 可配置的命令撤销方法及其装置 - Google Patents

可配置的命令撤销方法及其装置 Download PDF

Info

Publication number
CN111176726A
CN111176726A CN201911412331.5A CN201911412331A CN111176726A CN 111176726 A CN111176726 A CN 111176726A CN 201911412331 A CN201911412331 A CN 201911412331A CN 111176726 A CN111176726 A CN 111176726A
Authority
CN
China
Prior art keywords
command
undo
queue
processing unit
processing
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
CN201911412331.5A
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.)
Xiamen Kingblaze Technology Co ltd
Original Assignee
Xiamen Kingblaze Technology 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 Xiamen Kingblaze Technology Co ltd filed Critical Xiamen Kingblaze Technology Co ltd
Priority to CN201911412331.5A priority Critical patent/CN111176726A/zh
Publication of CN111176726A publication Critical patent/CN111176726A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

提供了可配置的命令撤销方法及其装置。所提供的信息处理装置,包括:命令提交队列、命令完成队列、撤销处理单元与命令处理装置;撤销处理单元耦合命令提交队列与命令处理装置;撤销处理单元响应于从命令提交队列获取的第一命令,遍历命令提交队列以识别第一命令是否要被撤销;若第一命令要被撤销,撤销处理单元将指示第一命令被撤销的处理结果添加到命令完成队列;若第一命令非要被撤销,撤销处理单元将第一命令交给命令处理装置。

Description

可配置的命令撤销方法及其装置
技术领域
本申请涉及信息处理技术,具体地,涉及在通过队列通信的多个信息处理单元之间撤销之前发出的命令的方法及其装置。
背景技术
图1A展示了基于队列通信的信息处理装置的框图。
典型的信息处理装置处理外部提交给它的命令,包括命令提交队列、命令完成队列与命令处理单元。外部装置将命令填加到命令提交队列。命令处理单元从命令提交队列获取命令并处理,还将命令的处理结果添加到命令完成队列,而外部装置从命令完成队列取出命令处理结果。
向队列添加命令的操作,发生在队列的队尾;从队列取出命令的操作,发生在队列的队头。通过队列交换命令,屏蔽了产生命令的外部组件与处理命令的信息处理装置的速度差异,来不及处理的命令被缓存在队列中。
图1B展示了存储设备的框图。存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SCSI(SmallComputer System Interface,小型计算机***接口)、SAS(Serial Attached SCSI,串行连接SCSI)、IDE(Integrated Drive Electronics,集成驱动器电子)、USB(Universal SerialBus,通用串行总线)、PCIE(Peripheral Component Interconnect Express,PCIe,高速***组件互联)、NVMe(NVM Express,高速非易失存储)、UFS(Universal Flash Storage)、eMMC(embedded MMC(MultiMediaCard))、以太网、光纤通道、无线通信网络等连接主机与存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM芯片105以及可选地DRAM(Dynamic Random Access Memory,动态随机访问存储器)110。
NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、MRAM(MagneticRandom Access Memory,磁阻存储器)、RRAM(Resistive Random Access Memory,阻变存储器)、XPoint存储器等是常见的NVM。
接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、UFS(UniversalFlashStorage)、以太网、光纤通道等方式与主机交换数据。
控制部件104用于控制在接口103、NVM芯片105以及DRAM 110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(Application SpecificIntegrated Circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理IO(Input/Output)命令。控制部件104还可以耦合到DRAM 110,并可访问DRAM 110的数据。在DRAM可存储FTL表和/或缓存的IO命令的数据。
控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。
UFS(UniversalFlashStorage)是JEDEC标准组织制定的用于闪存存储设备的接口标准,标准编号例如JESD220C。UFS协议以UPIU(UFS Protocol Information Unit,UFS协议信息单元)为传输单元在主机与存储设备之间交换命令。UPIU包括多种类型,例如命令单元、RTT单元、读数据单元、写数据单元以及响应单元等。
除了读命令、写命令,UFS协议还定义了任务管理命令、咨询命令、弹出命令、空命令等。任务管理命令包括例如撤销(Abort)功能,其指示撤销之前提交给UFS存储设备的一个或多个命令。
发明内容
队列具有先进先出的特点,先被添加到队列的命令被更早取出处理,后被添加到队列的命令被更晚的处理。这带来了顺序性的优点。但当需要在后地撤销之前已添加到队列的命令时产生了很大的障碍。信息处理装置在处理队列中在前的要被撤销的命令时,因难以及时获得撤销命令的存在,而导致撤销命令难以生效。
特别地,UFS协议中定义了任务管理命令的撤销功能。UFS存储设备需要处理主机发出的撤销命令。并且恰当的处理撤销命令还能降低对闪存存储介质的数据写入量、减少存储介质的磨损,以及因待处理的命令的减少而提升存储设备的性能。
并且对撤销功能的支持还希望尽量小的影响既有信息处理装置。
根据本申请的第一方面,提供了根据本申请第一方面的第一信息处理装置,包括:命令提交队列、命令完成队列、撤销处理单元与命令处理装置;撤销处理单元耦合命令提交队列与命令处理装置;撤销处理单元响应于从命令提交队列获取的第一命令,遍历命令提交队列以识别第一命令是否要被撤销;若第一命令要被撤销,撤销处理单元将指示第一命令被撤销的处理结果添加到命令完成队列;若第一命令非要被撤销,撤销处理单元将第一命令交给命令处理装置。
根据本申请第一方面的第一信息处理装置,提供了根据本申请第一方面的第二信息处理装置,其中命令提交队列中的每个命令包括命令标识与命令体,命令标识唯一识别了所述信息处理装置正在处理的命令。
根据本申请第一方面的第一或第二信息处理装置,提供了根据本申请第一方面的第三信息处理装置,其中为识别第一命令是否要被撤销,撤销处理单元从队头向队尾遍历命令提交队列以访问命令提交队列中的撤销命令,并根据命令提交队列中的一个或多个撤销命令所指示的一个或多个命令标识同第一命令的命令标识是否相同来识别第一命令是否要被撤销。
根据本申请第一方面的第三信息处理装置,提供了根据本申请第一方面的第四信息处理装置,其中若撤销处理单元从命令提交队列中找到的撤销命令的命令体中记录了第一命令的命令标识,撤销处理单元识别出第一命令要被撤销。
根据本申请第一方面的第三或第四信息处理装置,提供了根据本申请第一方面的第五信息处理装置,其中若命令提交队列中的一个或多个撤销命令的命令体中均未记录第一命令的命令标识,或者命令提交队列中未包括撤销命令,撤销处理单元识别出第一命令未要被撤销。
根据本申请第一方面的第一至第五信息处理装置之一,提供了根据本申请第一方面的第六信息处理装置,其中响应于撤销处理单元将第一命令交给命令处理装置,撤销处理单元继续从命令提交队列获取的其他命令。
根据本申请第一方面的第一至第六信息处理装置之一,提供了根据本申请第一方面的第七信息处理装置,其中响应于从命令提交队列获取了撤销命令,撤销处理单元将撤销命令的处理结果添加到命令完成队列,而不将撤销命令转交给命令处理装置。
根据本申请第一方面的第七信息处理装置,提供了根据本申请第一方面的第八信息处理装置,其中若第一命令要被撤销,撤销处理单元还相关联地记录第一命令的命令标识与指示撤销第一命令的第一撤销命令的命令标识;响应于从命令提交队列获取了第一撤销命令,撤销处理单元在第一撤销命令的处理结果中记录其成功撤销的一个或多个命令的命令标识。
根据本申请第一方面的第一至第八信息处理装置之一,提供了根据本申请第一方面的第九信息处理装置,还包括撤销使能端口;响应于撤销使能端口被设置,撤销处理单元响应于从命令提交队列获取的第一命令,遍历命令提交队列以识别第一命令是否要被撤销。
根据本申请第一方面的第九信息处理装置,提供了根据本申请第一方面的第十信息处理装置,其中响应于撤销使能端口未被设置,撤销处理单元响应于从命令提交队列获取的第一命令,将第一命令转发给命令处理装置,而不识别第一命令是否要被撤销。
根据本申请第一方面的第一至第八信息处理装置之一,提供了根据本申请第一方面的第十一信息处理装置,还包括撤销使能端口;撤销处理单元响应于从命令提交队列获取的第一命令,还访问撤销使能端口;响应于撤销使能端口被设置,撤销处理单元遍历命令提交队列以识别第一命令是否要被撤销。
根据本申请第一方面的第十一信息处理装置,提供了根据本申请第一方面的第十二信息处理装置,其中响应于撤销使能端口未被设置,撤销处理单元响应于从命令提交队列获取的第一命令,将第一命令转发给命令处理装置,而不识别第一命令是否要被撤销。
根据本申请第一方面的第一至第十二信息处理装置之一,提供了根据本申请第一方面的第十三信息处理装置,其中所述命令处理装置包括调度单元、状态存储单元与一个或多个命令处理单元;状态存储单元存储命令处理装置正在处理的每个命令的上下文;
调度单元调度命令处理单元之一处理命令;命令处理单元响应于被调度而处理命令。
根据本申请第一方面的第十三信息处理装置,提供了根据本申请第一方面的第十四信息处理装置,其中响应于从命令提交队列获取了第一撤销命令,撤销处理单元根据第一撤销命令指示的希望撤销的命令的命令标识,访问状态存储单元,在状态存储单元中存储的具有相同命令标识的命令的上下文中设置撤销标记。
根据本申请第一方面的第十四信息处理装置,提供了根据本申请第一方面的第十五信息处理装置,其中命令处理单元响应于其处理的一个或多个第二命令的上下文中被设置了撤销标记,自行决定是否继续处理第二命令。
根据本申请第一方面的第十五信息处理装置,提供了根据本申请第一方面的第十六信息处理装置,其中若命令处理单元决定继续处理第二命令,在对第二命令处理完成后,将正常的命令处理结果添加到命令完成队列。
根据本申请第一方面的第十五或第十六信息处理装置,提供了根据本申请第一方面的第十七信息处理装置,其中若命令处理单元决定终止处理第二命令,生成指示了第二命令被撤销的命令处理结果并添加到命令完成队列。
根据本申请第一方面的第一至第十七信息处理装置之一,提供了根据本申请第一方面的第十八信息处理装置,其中所述信息处理装置是介质接口控制器。
根据本申请的第二方面,提供了根据本申请第二方面的第一UFS存储设备,包括控制部件与NVM芯片;所述控制部件包括主机接口、UFS命令处理单元与根据权利要求18所述的介质接口控制器;所述介质接口控制器耦合所述NVM芯片,并向NVM芯片发送NVM命令。
根据本申请第二方面的第一UFS存储设备,提供了根据本申请第二方面的第二UFS存储设备,其中主机接口接收的UFS命令被提供给UFS命令处理单元;UFS命令处理单元响应于收到UFS命令,生成命令添加到所述介质接口控制器的命令提交队列。
根据本申请第二方面的第二UFS存储设备,提供了根据本申请第二方面的第三UFS存储设备,其中若所述UFS命令是指示撤销功能的任务管理命令,UFS命令处理单元生成撤销命令添加到所述介质接口控制器的命令提交队列;其中所述撤销命令的命令体中指示了UFS命令处理单元已提供给介质接口控制器的一个或多个命令的命令标识。
根据本申请第二方面的第三UFS存储设备,提供了根据本申请第二方面的第四UFS存储设备,其中响应于将生成的撤销命令添加到所述介质接口控制器的命令提交队列,UFS命令处理单元还设置所述介质接口控制器的撤销使能端口。
根据本申请第二方面的第一至第四UFS存储设备之一,提供了根据本申请第二方面的第五UFS存储设备,其中UFS命令处理单元根据从所述介质接口控制器的命令完成队列获取命令的处理结果。
根据本申请第二方面的第五UFS存储设备,提供了根据本申请第二方面的第六UFS存储设备,其中UFS命令处理单元根据从所述介质接口控制器的命令完成队列获取的撤销命令的处理结果,知晓该撤销命令所希望撤销的哪些命令被成功撤销。
根据本申请第二方面的第五或第六UFS存储设备,提供了根据本申请第二方面的第七UFS存储设备,其中UFS命令处理单元根据从所述介质接口控制器的命令完成队列获取的撤销命令的处理结果以及其他命令的处理结果,知晓该撤销命令所希望撤销的哪些命令被成功撤销。
根据本申请的第三方面,提供了根据本申请第三方面的第一信息处理方法,包括:从命令提交队列获取的第一命令;遍历命令提交队列以识别第一命令是否要被撤销;若第一命令要被撤销,将指示第一命令被撤销的处理结果添加到命令完成队列;若第一命令非要被撤销,处理所述第一命令。
根据本申请第三方面的第一信息处理方法,提供了根据本申请第三方面的第二信息处理方法,其中命令提交队列中的每个命令包括命令标识与命令体,命令标识唯一识别了正在处理的命令。
根据本申请第三方面的第一或第二信息处理方法,提供了根据本申请第三方面的第三信息处理方法,其中为识别第一命令是否要被撤销,从队头向队尾遍历命令提交队列以访问命令提交队列中的撤销命令,并根据命令提交队列中的一个或多个撤销命令所指示的一个或多个命令标识同第一命令的命令标识是否相同来识别第一命令是否要被撤销。
根据本申请第三方面的第三信息处理方法,提供了根据本申请第三方面的第四信息处理方法,其中若从命令提交队列中找到的撤销命令的命令体中记录了第一命令的命令标识,识别出第一命令要被撤销。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1A是现有技术的信息处理装置的框图;
图1B是现有技术中存储设备的框图;
图2A展示了根据本申请实施例的信息处理装置接受的命令的示意图;
图2B展示了根据本申请实施例的信息处理装置的框图;
图2C展示了根据本申请实施例的撤销命令的流程图;
图3A与图3B展示了根据本申请又一实施例的撤销命令的示意图;
图4展示了根据本申请另一实施例的信息处理装置的框图;
图5展示了根据本申请又一实施例的UFS存储设备的框图;以及
图6展示了根据本申请依然又一实施例的UFS存储设备的框图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图2A展示了根据本申请实施例的信息处理装置接受的命令的示意图。
为了向信息处理装置指示撤销在前命令,提供了撤销命令。外部单元向信息处理装置发出撤销命令,信息处理装置可接收并处理撤销命令。撤销命令同信息处理装置处理的其他命令具有相似的结构(例如,同样的大小),从而可被添加到命令提交队列。
信息处理装置通过命令提交队列接收多种命令。图2A展示了读命令、写命令与撤销命令。可以理解地,信息处理装置还可接受其他种类的命令。
被添加到命令提交的各个命令还具有命令标识。命令标识唯一标识了正在被处理中的命令。将已添加到命令提交队列并且其处理结果尚未被从命令完成队列中被取出的命令称为正在被处理的命令。
图2A中展示的撤销命令包括命令标识“03”与其命令体。撤销命令的命令体包括命令类型(指示“撤销命令”)与一个或多个命令标识。撤销命令的命令体携带的命令标识,指示了撤销命令希望撤销的目标命令的标识。可选地,撤销命令的命令体指示特殊命令标识,特殊命令标识指示撤销所有正在被处理的命令。
命令标识是外部单元附加到命令并添加到命令提交队列的。从而外部单元知晓哪些命令标识在被使用并且被使用的命令标识关联于哪个命令。从而通过在撤销命令的命令体中指定命令标识来指示撤销目标命令。可以理解地,撤销命令本身也具有命令标识,撤销命令的命令标识的含义不同于撤销命令的命令体中携带的指示希望撤销的目标命令的命令标识。
可选地,撤销命令不具有强制性。信息处理装置根据自身的能力而撤销其指示的希望撤销的命令的一个、部分或全部。
依然可选地,被撤销的命令的处理结果也被通过命令完成队列而告知使用信息处理装置的外部单元。
图2B展示了根据本申请实施例的信息处理装置的框图。
信息处理装置包括命令提交队列210、命令完成队列220与命令处理单元260。信息处理装置还包括撤销处理单元240与撤销使能端口245。
外部单元将撤销命令添加到命令提交队列210。外部单元还设置撤销使能端口245,以指示有撤销命令被提交给信息处理装置。撤销使能端口245是例如一比特寄存器。若撤销使能端口245未被设置,撤销单元240不工作,命令处理单元260直接从命令提交队列210获取待处理的命令。或者,若撤销使能端口245未被设置,撤销单元240将从命令提交队列210获取的命令直接转发给命令处理单元。
若撤销使能端口245被设置,撤销单元240介入对从命令提交队列210获取的命令的处理。撤销单元240从命令提交队列210取出命令(当前命令),提取该命令的命令标识(记为CID)。撤销单元240还遍历命令提交队列210以从中寻找可能存在的撤销命令。当找到了撤销命令,提取撤销命令的命令体中携带的命令标识。若从撤销命令中提取的命令标识之一同当前命令的命令标识CID一致,则撤销该命令。撤销处理单元为该命令生成命令处理结果,命令处理结果指示该命令被撤销,并将命令处理结果添加到命令完成队列210。撤销处理单元不将该命令转发给命令处理单元260。响应于当前命令被撤销,撤销处理单元240完成了对当前命令的处理,继而从命令提交队列210获取下一命令,并重复上述处理过程。
若从撤销命令中提取的任何命令标识同当前命令的命令标识CID均不一致,撤销处理单元240继续遍历命令提交队列210以寻找其他撤销命令,并对找到的撤销命令执行同上面相同的操作来确定是否要撤销当前命令。
若已遍历了命令提交队列210而未找到任何撤销命令,或者找到的任何撤销命令都未携带该命令标识CID,意味着当前命令不需要被撤销,因而撤销处理单元240将当前命令转发给命令处理单元260来处理。命令处理单元260处理当前命令,并将命令处理结果添加到命令完成队列220。
若撤销处理单元240从命令提交队列210获取的命令是撤销命令,撤销处理单元240为该撤销命令生成命令处理结果并添加到命令完成队列220以代表对该撤销命令处理完成。撤销命令的命令处理结果是例如撤销命令本身或该撤销命令的命令标识。
若撤销使能端口245未被设置,撤销单元240从命令提交队列210获取的命令是撤销命令,撤销处理单元240也为该撤销命令生成命令处理结果并添加到命令完成队列220以代表对该撤销命令处理完成。
通过提供撤销处理单元240,使得信息处理装置能处理撤销命令,并能依据被更晚添加到命令提交队列210的撤销命令来撤销被更早添加到命令提交队列210的目标命令。
可以理解地,根据本申请的实施例,撤销命令未必能撤销任何正在被处理的命令。一些命令已被转发给命令处理单元260处理。撤销处理单元240检查从命令提交队列210获取的命令是否要被撤销,而不检查命令处理单元260正在处理的命令是否要被撤销。从而即使是被撤销命令指示撤销的命令,命令单元260依然可以对其正常处理,并将正常处理的结果添加到命令完成队列220。
图2C展示了根据本申请实施例的撤销命令的流程图。
外部单元将命令提交到信息处理装置的命令提交队列210(也参看图2B)。外部单元为撤销已提交到信息处理装置的命令,生成指示了要撤销的目标命令的命令标识的撤销命令。以及外部单元还设置撤销使能端口245。
图2C展示了信息处理装置的撤销处理单元240的处理流程。
撤销处理单元240从命令提交队列210取出第一命令(270)。撤销处理单元240检查撤销使能端口245是否被设置(272)。若撤销使能端口245未被设置(272),撤销处理单元240将获取的第一命令转发给命令处理单元260(290)。接下来,撤销处理单元240再从命令提交队列210的队头获取下一命令(例如返回步骤270)。
若撤销使能端口245被设置(272),撤销处理单元240从第一命令中提取其命令标识(274)。撤销处理单元240还从队头向队尾遍历命令提交队列210(276)。在遍历命令提交队列210的过程中,识别每个队列是否是撤销命令(278)。对于非撤销命令,直接跳过而继续访问队列中的下一命令;对于撤销命令,获取其命令体中记录的指示要撤销的目标命令的标识。可以理解地,撤销处理单元240遍历命令提交队列210的过程中,被访问的每个命令依然保持在命令提交队列210中。
撤销处理单元240比较从撤销命令中获取的目标命令的标识与第一命令标识是否相同(280)。若从撤销命令中获取的目标命令的标识与第一命令标识相同(280),意味着找到了要撤销第一命令的撤销命令,作为响应,为第一命令生成命令处理结果并添加到命令完成队列220(282)。例如,撤销处理单元240将第一命令添加到命令完成队列220,或者将附加了被撤销标记的第一命令添加到命令完成队列220。接下来,撤销处理单元240再从命令提交队列210的队头获取下一命令(例如返回步骤270)。
若从撤销命令中获取的任何目标命令的标识都与第一命令标识不同(280),意味着未找到要撤销第一命令的撤销命令,作为响应,撤销处理单元240返回步骤276继续向队尾遍历命令提交队列210。
若已经遍历了整个命令提交队列210,依然未找到要撤销第一命令的撤销命令(278),转向步骤290,撤销处理单元240将第一命令转发给命令处理单元260(290)。接下来,撤销处理单元240再从命令提交队列210的队头获取下一命令(例如返回步骤270)。
图3A与图3B展示了根据本申请又一实施例的撤销命令的示意图。
参看图3A,信息处理装置的命令提交队列被添加了命令,其命令标识各自为“00”、“01”、……与“07”,其中命令标识为“00”的命令位于队头,命令标识为“04”与“06”的命令是撤销命令。命令标识为“04”的撤销命令的命令体指示要撤销命令标识为“03”与“01”的命令,而命令标识为“06”的撤销命令的命令体指示要撤销命令标识为“05”与“00”的命令。
撤销处理单元从命令提交队列的队头获取命令标识为“00”的命令(图3A中由(1)所指示)。撤销处理单元接下来获取撤销使能端口是否被置位(图3A中由(2)所指示)。在图3A的例子中,撤销使能端口已被置位,撤销处理单元作为响应要遍历命令提交队列以识别是否要撤销从命令提交队列获取的命令标识为“00”的命令。
撤销单元从队头向队尾遍历命令提交队列,识别出命令标识为“01”、“02”与“03”的命令都不是撤销命令,而命令标识为“04”的命令是撤销命令(图3A中由(3)所指示)。撤销单元获取命令标识为“04”的撤销命令的命令体,得到其中指示的要撤销的命令标识为“03”与“01”。这两个要撤销的命令标识“03”与“01”均不同于当前从队头获取的命令标识“00”,因而撤销单元完成了对命令标识为“04”的撤销命令的检查,继续遍历命令提交队列。
撤销单元继续向队尾遍历命令提交队列,识别出命令标识为“05”的命令不是撤销命令,而命令标识为“06”的命令是撤销命令(图3A中由(4)所指示)。撤销单元获取命令标识为“06”的撤销命令的命令体,得到其中指示的要撤销的命令标识为“05”与“00”。这两个要撤销的命令标识“05”与“00”包括了当前从队头获取的命令标识“00”,因而撤销单元要撤销当前从队头获取的具有命令标识“00”的命令。
继续参看图3B,撤销单元在具有命令标识“00”的命令的命令体中附加“撤销”标记,并将其添加到命令完成队列(图3A中由(5)所指示)。
由于具有命令标识“00”的命令被撤销,虽然尚未遍历到命令提交队列的队尾,撤销单元也不再继续在命令提交队列中查找撤销命令,而是已完成了对从队头获取的具有命令标识“00”的命令的处理。命令提交队列的队头变为命令标识为“01”的命令,撤销单元继续从队头获取命令并处理。
图4展示了根据本申请另一实施例的信息处理装置的框图。
信息处理装置包括命令提交队列410、命令完成队列420、撤销处理单元440、撤销使能端口445、多个命令处理单元(460、462、464与446)、状态存储单元452与调度单元454。
外部单元将撤销命令添加到命令提交队列410。外部单元还设置撤销使能端口445,以指示有撤销命令被提交给信息处理装置。若撤销使能端口445未被设置,撤销单元440不工作,撤销单元440将从命令提交队列410获取的命令直接转发给调度单元454。
调度单元454根据收到的命令及其状态,调度命令处理单元之一(460、462、464或446)处理命令。命令处理单元对命令的处理包括多个阶段,状态存储单元452记录了每个被处理的命令的上下文与所处的处理阶段,从而命令处理单元根据状态存储单元452的信息暂存命令处理的中间结果或继续处理尚未完成的命令。
若撤销使能端口445被设置,撤销单元440介入对从命令提交队列410获取的命令的处理。
根据本申请的一种实施方式,撤销单元440从命令提交队列410取出命令(当前命令),并遍历命令提交队列410以确定在命令提交队列410中存在要撤销当前命令的撤销命令。若当前命令被撤销,撤销处理单元440将当前命令的处理结果添加到命令完成队列420,而不将其转发给调度单元454。若命令提交队列410中不存在要撤销当前命令的撤销命令,撤销处理单元440将当前命令转发给调度单元454。在这种实施方式中,撤销命令可撤销的是在命令提交队列410中待处理的命令,若命令已被从命令提交队列410取出并由命令处理单元处理,则无法再被撤销。
响应于从命令提交队列410的队头获取的当前命令是撤销命令,撤销处理单元440为撤销命令生成处理结果并添加到命令完成队列420,从而外部单元得以从命令完成队列420知晓撤销命令被处理完成。响应于获取了撤销命令,撤销处理单元440不再遍历命令提交队列440以检查命令提交队列440中是否有要被撤销的命令。从而撤销命令仅能撤销在其之前被添加到命令提交队列440的命令,而不会影响在其之后被添加到命令提交队列440的命令。
可选地,根据本申请的又一种实施方式。响应于获取了撤销命令,撤销处理单元440除了将撤销命令的处理结果添加到命令完成队列420,还访问状态存储单元452。撤销处理单元440根据撤销命令希望撤销的命令的命令标识,搜索状态存储单元452中是否记录了具有相同命令标识的命令的上下文。对于状态存储单元452中记录的具有相同命令标识的命令的上下文,撤销处理单元440还在该上下文中设置撤销标记。命令上下文中的撤销标记向命令处理单元指示该命令希望被撤销。命令处理单元响应于其处理的命令的上下文中被设置了撤销标记,自行决定是否继续处理该命令。若命令处理单元决定继续处理该命令,在对该命令处理完成后,将正常的命令处理结果添加到命令完成队列。若命令处理单元决定终止处理该命令,生成指示了该命令被撤销的命令处理结果并添加到命令完成队列。从而,若撤销命令被添加到命令提交队列410时,若希望被撤销的命令已被从命令提交队列410取出并处理,撤销处理单元440在处理撤销命令时依然有机会请求命令处理单元撤销该命令。
进一步地,撤销处理单元440还记录其撤销的每个命令的命令标识与对应的撤销命令的命令标识。从而当撤销处理单元440从命令提交队列410获取撤销命令时,通过记录的撤销命令标识与已撤销的命令的命令标识,得以知晓该获取的撤销命令所指示的一个或多个希望撤销的命令是否都被撤销。若撤销命令希望撤销的命令都已被撤销处理单元440撤销,则撤销处理单元无须再根据该撤销命令在状态存储单元452中设置撤销标记。若撤销命令希望撤销的一个或多个命令尚未被撤销处理单元440撤销,则撤销处理单元再根据该撤销命令访问状态存储单元452,以搜索状态存储单元452中记录的具有相同命令标识的命令的上下文,并在该上下文中设置撤销标记。
命令处理单元(460、462、464或446)响应于被调度单元454调度来处理命令,从状态存储单元452获取要处理命令的上下文与处理阶段,并继续对该命令的处理。进一步地,命令命令处理单元(460、462、464或446)响应于调度单元454的调度而继续处理命令前,还识别命令的上下文中是否被设置了撤销标记。对于被设置了撤销标记的命令,根据命令的处理阶段确定要终止对命令的处理。例如,命令是读命令,当前的处理阶段是等待存储介质输出要读取的数据,此时响应于该命令被设置了撤销标记,命令处理单元不再等待存储介质输出的要读取数据,或者不将存储介质输出的数据提供给外部单元。作为又一个例子,命令是擦除命令,存储命令处理擦除命令需要约10ms(毫秒),命令处理阶段指示存储介质已经为该擦除命令处理了9.5ms(临近处理完成),则命令处理单元不终止对该命令的处理,而将其处理完成,并根据存储介质给出的擦除命令处理结果添写命令完成队列420。
图5展示了根据本申请又一实施例的UFS存储设备的框图。
UFS存储设备包括控制部件与一个或多个NVM芯片。控制部件包括主机接口、UFS命令处理单元500、介质接口控制器与可选的存储器。介质接口控制器耦合一个或多个NVM芯片,向NVM芯片发送NVM命令并接收NVM芯片对NVM命令的处理结果。NVM命令是操作NVM芯片的命令。
介质接口控制器包括命令提交队列510、命令完成队列520、撤销处理单元540、撤销使能端口545、5NVM命令处理单元560。
主机接口接收UFS协议的数据包,提取出UFS命令,并提供给USF命令处理单元500。UFS命令处理单元500响应于处理UFS命令,生成命令通过命令提交队列510提供给介质接口控制器,并从命令完成队列520获取命令的处理结果。
UFS命令处理单元500为添加到命令提交队列510的每个命令附加命令标识,命令标识唯一地标识介质接口控制器正在处理的命令。
响应于接收了UFS协议的指示撤销功能的任务管理命令,USF命令处理单元500生成撤销命令添加到命令提交队列510,其中生成的撤销命令的命令体中指示了一个或多个已提供给介质接口控制器的命令的命令标识。USF命令处理单元500还设置撤销使能端口545,以指示介质接口控制器的撤销处理单元540从命令提交队列510获取命令时,检查获取的命令是否要被撤销。
对于从命令提交队列510取出的未被撤销的命令,撤销处理单元540将其转发给NVM命令处理单元560。NVM命令处理单元560根据收到的命令向NVM芯片发出NVM命令并获取NVM芯片提供的NVM命令的处理结果。
可选地,对于撤销命令,撤销处理单元540还在撤销命令的处理结果中记录该撤销命令所成功撤销的命令的命令标识。从而UFS命令处理单元500根据从命令完成队列520获取的撤销命令的处理结果,知晓哪些其希望撤销的命令被成功撤销,以及也知晓哪些其希望撤销的命令未被撤销。
图6展示了根据本申请依然又一实施例的UFS存储设备的框图。
UFS存储设备包括控制部件与一个或多个NVM芯片。控制部件包括主机接口、UFS命令处理单元600、介质接口控制器与可选的存储器。介质接口控制器耦合一个或多个NVM芯片。
介质接口控制器包括命令提交队列610、命令完成队列620、撤销处理单元640、撤销使能端口645、多个NVM命令处理单元、状态存储单元与调度单元。每个NVM命令处理单元各自耦合到NVM芯片。调度单元根据命令要访问的NVM芯片将收到的命令发送给对应的NVM命令处理单元处理。
主机接口将UFS命令提供给USF命令处理单元600。UFS命令处理单元600响应于处理UFS命令,生成命令通过命令提交队列610提供给介质接口控制器,并从命令完成队列620获取命令的处理结果。
响应于接收了UFS协议的指示撤销功能的任务管理命令,USF命令处理单元600生成撤销命令添加到命令提交队列610。USF命令处理单元600还设置撤销使能端口645。
响应于撤销使能端口645被设置,撤销处理单元640为从命令提交队列610获取的命令,遍历命令提交队列610以检查其是否要被撤销。
对于从命令提交队列610取出的未被撤销的命令,撤销处理单元640将其转发给调度单元。
可选地,响应于从命令提交队列610取出撤销命令,撤销处理单元640除了将撤销命令的处理结果添加到命令完成队列620,还访问状态存储单元。根据撤销命令的命令体指示的希望撤销的命令的命令标识,对于状态存储单元中记录的具有相同命令标识的命令的上下文,撤销处理单元440还在该上下文中设置撤销标记。NVM命令处理单元响应于其处理的命令的上下文中被设置了撤销标记,自行决定是否继续处理该命令。NVM命令处理单元添加到命令完成队列620的命令处理结果还指示对应的命令是否被成功撤销。
可选地,对于撤销命令,撤销处理单元640还在撤销命令的处理结果中记录该撤销命令所成功撤销的命令的命令标识。从而UFS命令处理单元600根据从命令完成队列620获取的撤销命令的处理结果,以及其他命令的处理结果,知晓哪些其希望撤销的命令被成功撤销,以及也知晓哪些其希望撤销的命令未被撤销。
根据本申请的实施例还提供了一种存储设备,包括控制器与非易失存储器芯片,其中,控制器执行本申请实施例提供的任意一种处理方法。
根据本申请的实施例还提供了一种存储在可读介质上的程序,当被存储设备的控制器运行时,使得存储设备执行根据本申请实施例提供的任意一种处理方法。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种信息处理装置,包括:命令提交队列、命令完成队列、撤销处理单元与命令处理装置;
撤销处理单元耦合命令提交队列与命令处理装置;
撤销处理单元响应于从命令提交队列获取的第一命令,遍历命令提交队列以识别第一命令是否要被撤销;
若第一命令要被撤销,撤销处理单元将指示第一命令被撤销的处理结果添加到命令完成队列;
若第一命令非要被撤销,撤销处理单元将第一命令交给命令处理装置。
2.根据权利要求1所述的信息处理装置,其中
为识别第一命令是否要被撤销,撤销处理单元从队头向队尾遍历命令提交队列以访问命令提交队列中的撤销命令,并根据命令提交队列中的一个或多个撤销命令所指示的一个或多个命令标识同第一命令的命令标识是否相同来识别第一命令是否要被撤销。
3.根据权利要求1或2所述的方法,其中
响应于从命令提交队列获取了撤销命令,撤销处理单元将撤销命令的处理结果添加到命令完成队列,而不将撤销命令转交给命令处理装置;
若第一命令要被撤销,撤销处理单元还相关联地记录第一命令的命令标识
与指示撤销第一命令的第一撤销命令的命令标识;
响应于从命令提交队列获取了第一撤销命令,撤销处理单元在第一撤销命令的处理结果中记录其成功撤销的一个或多个命令的命令标识。
4.根据权利要求1-3之一所述的信息处理装置,还包括撤销使能端口;
响应于撤销使能端口被设置,撤销处理单元响应于从命令提交队列获取的第一命令,遍历命令提交队列以识别第一命令是否要被撤销。
5.根据权利要求1-4之一所述的信息处理装置,其中
所述命令处理装置包括调度单元、状态存储单元与一个或多个命令处理单元;
状态存储单元存储命令处理装置正在处理的每个命令的上下文;
调度单元调度命令处理单元之一处理命令;
命令处理单元响应于被调度而处理命令。
6.根据权利要求5的信息处理装置,其中
响应于从命令提交队列获取了第一撤销命令,撤销处理单元根据第一撤销命令指示的希望撤销的命令的命令标识,访问状态存储单元,在状态存储单元中存储的具有相同命令标识的命令的上下文中设置撤销标记。
7.根据权利要求6所述的信息处理装置,其中
命令处理单元响应于其处理的一个或多个第二命令的上下文中被设置了撤销标记,自行决定是否继续处理第二命令。
8.根据权利要求1-7之一所述的信息处理装置,其中
所述信息处理装置是介质接口控制器。
9.一种UFS存储设备,包括控制部件与NVM芯片;
所述控制部件包括主机接口、UFS命令处理单元与根据权利要求8所述的介质接口控制器;
所述介质接口控制器耦合所述NVM芯片,并向NVM芯片发送NVM命令。
10.一种信息处理方法,包括:
从命令提交队列获取的第一命令;
遍历命令提交队列以识别第一命令是否要被撤销;
若第一命令要被撤销,将指示第一命令被撤销的处理结果添加到命令完成队列;
若第一命令非要被撤销,处理所述第一命令。
CN201911412331.5A 2019-12-31 2019-12-31 可配置的命令撤销方法及其装置 Pending CN111176726A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911412331.5A CN111176726A (zh) 2019-12-31 2019-12-31 可配置的命令撤销方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911412331.5A CN111176726A (zh) 2019-12-31 2019-12-31 可配置的命令撤销方法及其装置

Publications (1)

Publication Number Publication Date
CN111176726A true CN111176726A (zh) 2020-05-19

Family

ID=70623752

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911412331.5A Pending CN111176726A (zh) 2019-12-31 2019-12-31 可配置的命令撤销方法及其装置

Country Status (1)

Country Link
CN (1) CN111176726A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022237582A1 (en) * 2021-05-11 2022-11-17 Mediatek Inc. Abort handling by host controller for storage device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022237582A1 (en) * 2021-05-11 2022-11-17 Mediatek Inc. Abort handling by host controller for storage device

Similar Documents

Publication Publication Date Title
US10282132B2 (en) Methods and systems for processing PRP/SGL entries
US10620832B1 (en) Method and apparatus to abort a command
CN102841872B (zh) 用于命令处理的高性能路径
US9389804B2 (en) Host, system, and methods for transmitting commands to non-volatile memory card
US20180113615A1 (en) Storage device generating adaptive interrupt and operating method thereof
US8924627B2 (en) Flash memory device comprising host interface for processing a multi-command descriptor block in order to exploit concurrency
US20150253992A1 (en) Memory system and control method
US20180275921A1 (en) Storage device
EP3608790B1 (en) Modifying nvme physical region page list pointers and data pointers to facilitate routing of pcie memory requests
US9052835B1 (en) Abort function for storage devices by using a poison bit flag wherein a command for indicating which command should be aborted
US10282103B1 (en) Method and apparatus to delete a command queue
US8266371B2 (en) Non-volatile storage device, host device, non-volatile storage system, data recording method, and program
US9317445B2 (en) Rapid memory buffer write storage system and method
CN107092835B (zh) 一种虚拟存储盘的计算机数据加密装置及方法
US20150149741A1 (en) Storage System and Control Method Thereof
CN111258932A (zh) 加速ufs协议处理的方法与存储控制器
US11494318B2 (en) Controller and operation method thereof
CN105389268B (zh) 资料储存***及其运作方法
CN109213423B (zh) 基于地址屏障无锁处理并发io命令
US10324622B2 (en) Data storage device and operating method thereof
CN108628759B (zh) 乱序执行nvm命令的方法与装置
CN111176726A (zh) 可配置的命令撤销方法及其装置
CN110515861B (zh) 处理刷写命令的存储设备及其方法
US10268388B2 (en) Access control method, storage device, and system
US20060277326A1 (en) Data transfer system and method

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