CN105556497B - 查明闪存中的命令完成 - Google Patents
查明闪存中的命令完成 Download PDFInfo
- Publication number
- CN105556497B CN105556497B CN201480049956.9A CN201480049956A CN105556497B CN 105556497 B CN105556497 B CN 105556497B CN 201480049956 A CN201480049956 A CN 201480049956A CN 105556497 B CN105556497 B CN 105556497B
- Authority
- CN
- China
- Prior art keywords
- transmission request
- bit
- register
- doorbell
- request
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
-
- 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2206/00—Indexing scheme related to dedicated interfaces for computers
- G06F2206/10—Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
- G06F2206/1014—One time programmable [OTP] memory, e.g. PROM, WORM
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)
- Computer Security & Cryptography (AREA)
- Information Transfer Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
- Retry When Errors Occur (AREA)
- Read Only Memory (AREA)
- Communication Control (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Telephone Function (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Bus Control (AREA)
- Storage Device Security (AREA)
- Memory System (AREA)
Abstract
公开了查明闪存中的命令完成。一示例性方面包括消除软件锁和未完结请求变量并用传输请求完成寄存器替换它们。传输请求完成寄存器可以被映射到通用闪存存储(UFS)传输协议(UTP)传输请求列表(UTRL)时隙。主机的控制器(硬件组件)可在传输请求完成时设置传输请求完成寄存器中的比特,同时门铃寄存器被清除。在该比特被读取之后,传输请求完成寄存器中的这个比特被清除。
Description
优先权要求
本申请要求于2013年9月10日提交的题为“SYSTEMS AND METHODS FORASCERTAINING COMMAND COMPLETION IN FLASH MEMORY(用于查明闪存中的命令完成的系统和方法)”的美国临时专利申请S/N.61/875,907的优先权,该申请通过援引全部纳入于此。
本申请还要求于2014年8月25日提交的题为“ASCERTAINING COMMAND COMPLETIONIN FLASH MEMORIES(查明闪存中的命令完成)”的美国专利申请S/N.14/467,404的优先权,该申请通过援引全部纳入于此。
背景
I.公开领域
本公开的技术一般涉及闪存以及处理闪存命令。
II.背景技术
闪存在多种计算设备中是常见的,包括移动终端,诸如相机、音频播放器、智能电话、平板设备等。闪存可以是两种一般类型——可移除式或嵌入式——中的一种,并且存在针对这两种一般类型的若干标准。最初为嵌入式境况设计的一种标准是由电子器件工程联合委员会(JEDEC)所阐述的通用闪存存储(UFS)标准。另一种常见标准是嵌入式多媒体控制器(eMMC)标准。
在UFS标准中,主机与保持存储器元件的设备通信。主机向该设备发出命令以执行“传输请求”任务,诸如将数据写入存储器元件、从存储器元件读取数据、以及同步高速缓存。根据设计,UFS支持多个并发传输请求。传输请求在主机的控制器处是软件驱动的,并且使用被称为门铃寄存器的寄存器以及被称为(至少在LINUX实现中)未完结请求变量的软件变量。虽然术语“未完结请求变量”是专用于LINUX的,但是其他操作系统使用类似的变量且在本文中皆被称为未完结请求变量。每个传输请求占据一时隙以及门铃寄存器和未完结请求变量中的对应比特。当发送新传输请求时,软件设置该寄存器和该变量中对应于该时隙的比特。设置寄存器中的比特向控制器通知新传输请求已就绪。当传输请求完成时,硬件清除寄存器中对应于该时隙的比特,并且软件随后将寄存器中的比特与未完结请求变量中的比特作比较以寻找完成的请求。注意,eMMC是类似的,尽管特定元素可能具有不同名称。
如果主机在设置门铃寄存器之前且在更新未完结请求变量之后接收到中断,则主机可在请求被发送之前识别出该请求已完成。在此境况中,软件可以完成该请求,但存在错误。替换地,如果主机在设置寄存器之后接收到中断且该请求在更新未完结请求变量之前完成,则该请求可能丢失。又一境况可能延迟这些请求直至另一传输请求完成中断到达。此类境况或者延迟请求由此导致性能降级、使该延迟无限地持续、或者直至发生错误从而中止该命令。当前,通过使用软件锁来避免此类境况。然而,此类软件锁是较慢的,并且可能排除其他传输请求。进一步,此类软件锁或排除一般会增加等待时间从而导致性能降级,尤其是在多核处理器中。
公开概述
在详细描述中所公开的诸方面包括查明闪存中的命令完成。一示例性方面包括消除软件锁和未完结请求变量并用传输请求完成寄存器替换它们。传输请求完成寄存器可以被映射到通用闪存存储(UFS)传输协议(UTP)传输请求列表(UTRL)时隙。主机的控制器(硬件组件)可在传输请求完成时设置传输请求完成寄存器中的比特,同时门铃寄存器被清除。在该比特被读取之后,传输请求完成寄存器中的这个比特被清除。虽然具体构想了UFS,但是其他闪存标准(诸如嵌入式多媒体控制器(eMMC))也可受益于本公开的诸方面(例如,eMMC具有在功能上等效于UTRL的任务描述符列表(TDL))。替换软件锁和未完结请求变量通过减少等待时间并消除在使用此类软件锁中可能发生的传输请求排除来提高性能。具体而言,完成上下文和发出上下文可以同时工作。可同时从多个上下文发出传输请求。使用这多个上下文改善了性能,尤其是在多核设备(诸如智能电话)中。
就这一点来说,在一方面,公开了一种UFS系统。该UFS系统包括具有对应于UTRL的数个比特的门铃寄存器。该UFS系统还包括具有相同数目的比特的完成寄存器。该UFS系统进一步包括起作用地耦合至该门铃寄存器和该完成寄存器的控制系统。该控制系统被配置成针对发送请求开始,在该门铃寄存器中设置门铃比特。换言之,当该门铃寄存器中的比特被提高时,其向控制器发信令通知传输请求已就绪并可被处理(即,开始传输数据)。该控制系统还被配置成在传输请求完成之际在完成寄存器中设置完成比特。该控制系统还被配置成在传输请求完成之际清除门铃比特。
在另一方面,公开了一种存储器系统。该存储器系统包括具有数个比特的门铃寄存器。该存储器系统还包括具有相同数目的比特的完成寄存器。该存储器系统还包括起作用地耦合至该门铃寄存器和该完成寄存器的控制系统。该控制系统被配置成针对发送请求开始,在该门铃寄存器中设置门铃比特。该控制系统还被配置成在传输请求完成之际在完成寄存器中设置完成比特。该控制系统还被配置成在传输请求完成之际清除门铃比特。
在另一方面,公开了一种控制存储器系统的方法。该方法包括在主机中生成传输请求。该方法还包括在主机中的门铃寄存器中设置标识该传输请求的比特。该方法还包括通过通信接口向设备传递该传输请求。该方法还包括完成与该传输请求相关联的传输。该方法还包括清除门铃寄存器中的该比特。该方法还包括在完成寄存器中设置完成比特。
在另一方面,公开了一种嵌入式多媒体控制器(eMMC)存储器系统。该存储器系统包括具有对应于eMMC任务描述符列表的数个比特的门铃寄存器。该存储器系统还包括具有相同数目的比特的完成通知寄存器。该存储器系统还包括控制系统,该控制系统起作用地耦合至该门铃寄存器和该完成通知寄存器并且被配置成针对发送请求开始,在该门铃寄存器中设置门铃比特。该控制系统还被配置成在传输请求完成之际在完成通知寄存器中设置完成比特。该控制系统还被配置成在传输请求完成之际清除门铃比特。
附图简述
图1是不具有本公开的示例性方面的主机与设备之间的示例性连接的框图;
图2A解说不具有同步锁或本公开的方面的存储器系统中可能出现的第一竞态状况;
图2B解说不具有同步锁或本公开的方面的存储器系统中可能出现的第二竞态状况;
图3解说使用锁来防止竞态状况(诸如图2A和2B中所解说的那些竞态状况)的常规数据流过程的流程图;
图4是根据本公开的示例性方面的在主机与设备及主机寄存器之间的示例性连接的框图;
图5是解说图4的主机与设备之间的数据流的示例性过程的流程图;以及
图6是可采用图4中所解说的主机和设备的示例性的基于处理器的系统的框图。
详细描述
现在参照附图,描述了本公开的若干示例性方面。措辞“示例性”在本文中用于表示“用作示例、实例或解说”。本文中描述为“示例性”的任何方面不必被解释为优于或胜过其他方面。
在详细描述中所公开的诸方面包括查明闪存中的命令完成。一示例性方面包括消除软件锁和未完结请求变量并用传输请求完成寄存器替换它们。传输请求完成寄存器可以被映射到通用闪存存储(UFS)传输协议(UTP)传输请求列表(UTRL)时隙。主机的控制器(硬件组件)可在传输请求完成时设置传输请求完成寄存器中的比特,同时门铃寄存器被清除。在该比特被读取之后,传输请求完成寄存器中的这个比特被清除。虽然具体构想了UFS,但是其他闪存标准(诸如嵌入式多媒体控制器(eMMC))也可受益于本公开的诸方面(例如,eMMC具有在功能上等效于UTRL的任务描述符列表(TDL))。替换软件锁和未完结请求变量通过减少等待时间并消除在使用此类软件锁中可能发生的传输请求排除来提高性能。具体而言,完成上下文和发出上下文可以同时工作。可同时从多个上下文发出传输请求。使用这多个上下文改善了性能,尤其是在多核设备(诸如智能电话)中。
在叙述本公开的诸方面之前,参照图1-3给出了常规系统以及与其一起出现的问题的概览。本公开的示例性方面在以下参照图4开始。
就此,图1是主机10经由导体14耦合至设备12的框图。主机10与设备12之间的通信遵循2013年9月发布的UFS v2.0标准。虽然本讨论专注于UFS,但是其他闪存标准也可受益于本公开的诸方面,包括嵌入式多媒体控制器(eMMC)。主机10包括主机控制器16,该主机控制器16是起作用地耦合至恰适通信接口18的基于硬件的系统。主机控制器16与主机软件20互操作。主机控制器16和主机软件20一起作为控制系统。
继续参考图1,设备12包括控制器22,该控制器22是起作用地耦合至恰适通信接口24的基于硬件的系统。设备12进一步包括存储器单元26(例如,与非型或者NOT AND(NAND)闪存存储设备)。设备12进一步包括任务队列28。控制器22以及与控制器22的操作相关联的任何软件一起作为控制系统。
主机10进一步包括门铃寄存器30(UTRLDBR)。门铃寄存器30是基于硬件的组件,其具有与由主机控制器16处置的传输请求时隙数目相等的比特数目。即,门铃寄存器30具有对应于UFS标准协议传输请求列表的比特数目。
继续参照图1,在常规UFS系统中,纳入主机10的计算元件可能需要从/向存储器单元26读取或写入数据。因此,概述所请求的数据传输的传输请求可被发送给主机控制器16。主机软件20随后向该传输请求指派时隙。主机控制器16可具有多个时隙(未示出)以处置多个传输请求。多个传输请求是常见的,尤其在多核处理器中。当主机软件20已准备好针对设备12的传输请求时,主机软件20设置门铃寄存器30中对应于与该传输请求相关联的时隙的比特。设置门铃寄存器30中的该比特发信令通知主机控制器16通过通信接口18向设备12发送传输请求。
设备12根据UFS标准内被很好地记录的规则处置该传输请求。发生数据传输,并且一旦完成该数据传输,主机控制器16就通过清除门铃寄存器30中的该比特来通知主机软件20。在操作中,主机10可以接收传输请求中断。主机软件20检查门铃寄存器30以查看哪些任务已完成以及哪些时隙已被指派。然而,在没有更多信息的情况下,主机软件20无法辨别针对完成的任务被设置为0的比特与针对尚未发送的请求被设置为0的比特。因此,主机软件20维持未完结请求变量(未示出),该未完结请求变量指示哪些时隙已被指派。
未完结请求变量在开始准备发送传输请求之际被更新,并且在从设备12接收到对传输请求的响应之际被清除。主机软件20将未完结请求变量与门铃寄存器30作比较以知晓哪些时隙已完成请求。在没有进一步控制的情况下,UFS系统可能具有竞态状况,该竞态状况导致错误、延迟、命令中止、或命令丢失。图2A和2B中解说了两种此类竞态状况。
就此,图2A通过进程34解说了当发送请求在未完结请求变量被更新之前停止运行时所发生的情况。应当领会,进程34可由不同元件(包括软件和硬件)来实现,并且这些元件可以是分开且不同的组件(例如,不同的子例程、不同的软件模块、不同的IC等)。具体而言,并且如上所述,当图1的主机软件20已准备好针对设备12的传输请求时,主机软件20设置门铃寄存器30中对应于与该传输请求相关联的时隙的比特(框36)。主机10的上下文改变(框38)对应于主机10处理某个其他传输请求或处理某些传入数据。设备12处理传输请求(框40)。设备12可能需要一些时间来处理传输请求。当设备12处理传输请求时,可能发生使‘发送命令进程’休眠的上下文切换。当设备12完成传输请求时,设备12发送完成任务通知。主机10随后提出完成中断(框42)。此时,由于上下文已改变,未完结请求变量从未被更新。因此,在完成中断时,主机10检查门铃寄存器30(框44)并读取未完结请求变量(框46)。然而,如上所述,未完结请求变量未被更新,并且因此完成的请求未被识别出(框48),于是该命令中止或超时(框50)。
类似地,图2B解说进程52,其中未完结请求变量的更新发生在更新门铃寄存器30之前(与上述次序相反,这么做以避免进程34中所阐述的竞态状况)。应当领会,进程52可由不同元件(包括软件和硬件)来实现,并且这些元件可以是分开且不同的组件(例如,不同的子例程、不同的软件模块、不同的IC等)。然而,进程52导致了另一种竞态状况(即,两个进程争用同一资源),其中命令被完成,但存在错误。具体而言,进程52在未完结请求变量被更新的时间点开始(框54)。针对另一个传输请求的完成中断被提出(框56)。然而,该中断发生在更新门铃寄存器30之前。由此,当门铃寄存器30被读取时(框58),该比特未被设置。然而,当未完结请求变量被读取时(框60),主机软件20查看该传输请求并识别出完成的请求(框62)。由此,主机软件20将完成该请求,但存在错误(框64)。
常规系统通过使用软件锁来防止这些竞态状况。软件锁增加了等待时间。为了完整性起见,图3解说与发送请求上下文66和请求完成上下文68相关联的流程。与发送请求上下文66相关联的过程始于发送请求上下文开始(框70)。主机10准备事务数据(框72)。主机软件20随后设置锁并禁用中断(框74)。软件设置未完结请求变量(框76),并且随后门铃寄存器30被设置(框78)。在门铃寄存器30被设置之后,锁被禁用且中断被启用(框80)。在锁被移除之后,发送请求上下文结束(框82)。
继续参照图3,请求完成上下文68开始(框84)。主机控制器16清除门铃寄存器30中的(诸)比特(框85)。请求完成中断发生,并且由主机软件20创建锁(框86)。主机10读取主机软件20中的未完结请求变量(框88)。主机10随后读取门铃寄存器30(框90)并参照门铃寄存器30和未完结请求变量来确定完成的请求(框92)。针对每个完成的请求执行子例程(框94),其中读取响应码(框96),处置任何错误(框98),并且向上层(例如,在第一实例中发出请求的软件)通知请求完成(框100)。当所有完成的请求都已在框94处被处理时,未完结请求变量的对应比特被清除(框101),并且随后主机软件20移除锁并退出(框102),从而导致请求完成上下文结束(框104)。发送请求上下文66和请求完成上下文68两者中锁的存在由指定锁定序列突出显示(框106)。
与发送请求上下文66和请求完成上下文68的过程形成对比,本公开的诸方面允许消除锁,并且减轻了伴随缺陷。就此,图4解说了包括命令完成寄存器(UTRLCNR)32(有时也被称为完成通知寄存器)的主机10’。注意,在大多数其他请求中,主机10’具有等同于图1的主机10的元件。如同门铃寄存器30那样,命令完成寄存器32基于硬件且具有与由主机控制器16处置的时隙数目相等的比特数目。即,使用命令完成寄存器32允许硬件解决方案来替代锁。通过使用硬件解决方案,发送和完成请求可在任何点开始。使多个上下文并发地操作的能力提高了操作效率,尤其是对于多核处理器。
就此,图5提供了发送请求上下文108和请求完成上下文110。发送请求上下文108开始(框112)且主机软件20准备事务数据(框114)。主机软件20设置门铃寄存器30(框116)且发送请求结束(框118)。由于不需要为未完结请求设置软件变量,因此不存在关于中断发生的担忧。
继续参照图5,请求完成上下文110开始(框120)。最初,硬件清除门铃寄存器30并设置命令完成寄存器32(框122)。中断发生(框124)。主机软件20读取命令完成寄存器32(框126)以查明哪些任务被完成。针对每个完成的任务开始子例程(框128),其中读取响应码(框130),处置任何错误(框132),并且主机软件20清除命令完成寄存器32(框134)。在主机软件20清除命令完成寄存器32之后,向上层(例如,发出请求的软件)通知请求完成(框136)。在进行清除和通知之后,命令完成寄存器32中对应于该比特的时隙可按照需要或定义被保留。当所有完成的请求已被处理时(框128),请求完成上下文110结束(框138)。与锁禁用中断的时间段(由图3中的106突出显示)形成对比,框139突出显示了中断可在任何点发生,并且具体而言可在常规系统强加锁的时间期间发生。如上所述,消除锁改善了性能,并且添加新硬件(即,命令完成寄存器32)被视为性能改善的可接受折衷。
根据本文中所公开的诸方面的查明闪存中的命令完成可设在或集到任何基于处理器的设备中。不作为限定的示例包括机顶盒、娱乐单元、导航设备、通信设备、固定位置数据单元、移动位置数据单元、移动电话、蜂窝电话、计算机、便携式计算机、台式计算机、个人数字助理(PDA)、监视器、计算机监视器、电视机、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频碟(DVD)播放器、以及便携式数字视频播放器。
就此,图6解说了可采用如图4中所解说的主机10’和设备12的基于处理器的系统140的示例。在这一示例中,基于处理器的系统140包括一个或多个中央处理单元(CPU)142,其各自包括一个或多个处理器144。(诸)CPU 142可以是主设备,并且包括主机10’。(诸)CPU142可具有耦合至(诸)处理器144以用于对临时存储的数据进行快速访问的高速缓存存储器146。CPU 142耦合至系统总线148。如众所周知的,(诸)CPU 142通过在系统总线148上交换地址、控制、和数据信息来与这些其他设备通信。例如,(诸)CPU 142可向可包括设备12的存储器系统150传达总线事务请求。尽管未在图6中解说,但可提供多个系统总线148,其中每个系统总线148构成不同的织构。
其他主设备和从设备可被连接到系统总线148。如图6中所解说的,作为示例,这些设备可包括可具有多个存储器单元(未具体解说)的存储器系统150、一个或多个输入设备152、一个或多个输出设备154、一个或多个网络接口设备156、以及一个或多个显示器控制器158。(诸)输入设备152可包括任何类型的输入设备,包括但不限于输入键、开关、语音处理器等。(诸)输出设备154可包括任何类型的输出设备,包括但不限于音频、视频、其他视觉指示器等。(诸)网络接口设备156可以是被配置成允许往来于网络160的数据交换的任何设备。网络160可以是任何类型的网络,包括但不限于:有线或无线网络、私有或公共网络、局域网(LAN)、广域网(WLAN)和因特网。(诸)网络接口设备156可被配置成支持所期望的任何类型的通信协议。
(诸)CPU 142还可被配置成通过系统总线148访问(诸)显示器控制器158以控制发送给一个或多个显示器162的信息。(诸)显示器控制器158经由一个或多个视频处理器164向(诸)显示器162发送要显示的信息,视频处理器164将要显示的信息处理成适于(诸)显示器162的格式。(诸)显示器162可包括任何类型的显示器,包括但不限于:阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器等。
本领域技术人员将进一步领会,结合本文所公开的诸方面描述的各种解说性逻辑块、模块、电路和算法可被实现为电子硬件、存储在存储器中或另一计算机可读介质中并由处理器或其它处理设备执行的指令、或这两者的组合。作为示例,本文中描述的设备可用在任何电路、硬件组件、集成电路(IC)、或IC芯片中。本文所公开的存储器可以是任何类型和大小的存储器,且可被配置成存储所需的任何类型的信息。为清楚地解说这种可互换性,以上已经以其功能性的形式一般地描述了各种解说性组件、框、模块、电路和步骤。此类功能性如何被实现取决于具体应用、设计选择和/或加诸于整体系统上的设计约束。技术人员可针对每种特定应用以不同方式来实现所描述的功能性,但此类实现决策不应被解读为致使脱离本公开的范围。
结合本文中公开的诸方面描述的各种解说性逻辑块、模块、以及电路可用设计成执行本文中描述的功能的处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合来实现或执行。处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协同的一个或多个微处理器、或任何其它此类配置。
本文所公开的诸方面可被实施在硬件和存储在硬件中的指令中,并且可驻留在例如随机存取存储器(RAM)、闪存、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、寄存器、硬盘、可移动盘、CD-ROM,或本领域中所知的任何其它形式的计算机可读介质中。示例性存储介质被耦合到处理器,以使得处理器能从/向该存储介质读取/写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在ASIC中。ASIC可驻留在远程站中。在替换方案中,处理器和存储介质可作为分立组件驻留在远程站、基站或服务器中。
还注意到,本文任何示例性方面中描述的操作步骤是为了提供示例和讨论而被描述的。所描述的操作可按除了所解说的顺序以外的众多不同顺序来执行。而且,在单个操作步骤中描述的操作实际上可在多个不同步骤中执行。另外,在示例性方面中讨论的一个或多个操作步骤可被组合。应理解,如对本领域技术人员显而易见地,在流程图中解说的操作步骤可进行众多不同的修改。本领域技术人员还将理解,可使用各种不同技术中的任何一种来表示信息和信号。例如,贯穿上面描述始终可能被述及的数据、指令、命令、信息、信号、位(比特)、码元、和码片可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子、或其任何组合来表示。
提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员来说都将是显而易见的,且本文中所定义的普适原理可被应用到其他变型而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖特征一致的最广义的范围。
Claims (26)
1.一种通用闪存存储系统,包括:
门铃寄存器,其具有对应于通用闪存存储传输协议传输请求列表的数个比特;
完成通知寄存器,其具有与所述门铃寄存器相同数目的比特;以及
控制系统,其起作用地耦合至所述门铃寄存器和所述完成通知寄存器并且被配置成:
针对发送请求开始,在所述门铃寄存器中设置门铃比特;
在传输请求完成之际,在所述完成通知寄存器中设置完成比特;以及
在传输请求完成之际,清除所述门铃比特。
2.如权利要求1所述的通用闪存存储系统,其特征在于,所述控制系统被进一步配置成向设备发出传输请求。
3.如权利要求2所述的通用闪存存储系统,其特征在于,所述发送请求开始与所述传输请求相关联。
4.如权利要求1所述的通用闪存存储系统,其特征在于,进一步包括配置成将主机耦合至设备的通信接口。
5.如权利要求2所述的通用闪存存储系统,其特征在于,所述控制系统被进一步配置成在对所述传输请求的处理完成之后清除所述完成比特。
6.如权利要求5所述的通用闪存存储系统,其特征在于,所述控制系统被进一步配置成在清除所述完成比特之后重用与所述完成比特相关联的时隙。
7.如权利要求2所述的通用闪存存储系统,其特征在于,所述传输请求包括用于向所述设备写入数据的写命令。
8.如权利要求2所述的通用闪存存储系统,其特征在于,所述传输请求包括用于从所述设备读取数据的读命令。
9.如权利要求1所述的通用闪存存储系统,其特征在于,所述通用闪存存储系统被集成在从包含以下各项的组中选取的设备中:机顶盒、娱乐单元、导航设备、通信设备、固定位置数据单元、移动位置数据单元、移动电话、蜂窝电话、计算机、便携式计算机、台式计算机、个人数字助理、监视器、计算机监视器、电视机、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光碟播放器和便携式数字视频播放器。
10.一种存储器系统,包括:
门铃寄存器,其具有数个比特;
完成寄存器,其具有与所述门铃寄存器相同数目的比特;以及
控制系统,其起作用地耦合至所述门铃寄存器和所述完成寄存器并且被配置成:
针对发送请求开始,在所述门铃寄存器中设置门铃比特;
在传输请求完成之际,在所述完成寄存器中设置完成比特;以及
在传输请求完成之际,清除所述门铃比特。
11.一种控制存储器系统的方法,包括:
在主机中生成传输请求;
在所述主机中的门铃寄存器中设置标识所述传输请求的比特;
通过通信接口向设备传递所述传输请求;
完成与所述传输请求相关联的传输;
清除所述门铃寄存器中的所述比特;以及
在完成寄存器中设置完成比特。
12.如权利要求11所述的方法,其特征在于,生成所述传输请求包括生成用于从所述设备读取数据的读命令。
13.如权利要求11所述的方法,其特征在于,生成所述传输请求包括生成用于向所述设备写入数据的写命令。
14.如权利要求11所述的方法,其特征在于,进一步包括开始所述传输。
15.如权利要求11所述的方法,其特征在于,进一步包括在不需要软件锁的情况下处置对所述传输请求的中断。
16.如权利要求11所述的方法,其特征在于,进一步包括接收由第二传输请求所生成的中断。
17.如权利要求11所述的方法,其特征在于,进一步包括在对所述传输请求的处理完成之后清除所述完成比特。
18.如权利要求17所述的方法,其特征在于,进一步包括在清除所述完成比特之后重用与所述完成比特相关联的时隙。
19.一种嵌入式多媒体控制器存储器系统,包括:
门铃寄存器,其具有对应于嵌入式多媒体控制器任务描述符列表的数个比特;
完成通知寄存器,其具有与所述门铃寄存器相同数目的比特;以及
控制系统,其起作用地耦合至所述门铃寄存器和所述完成通知寄存器并且被配置成:
针对发送请求开始,在所述门铃寄存器中设置门铃比特;
在传输请求完成之际,在所述完成通知寄存器中设置完成比特;以及
在传输请求完成之际,清除所述门铃比特。
20.如权利要求19所述的嵌入式多媒体控制器存储器系统,其特征在于,所述控制系统被进一步配置成向设备发出传输请求。
21.如权利要求20所述的嵌入式多媒体控制器存储器系统,其特征在于,所述发送请求开始与所述传输请求相关联。
22.如权利要求19所述的嵌入式多媒体控制器存储器系统,其特征在于,进一步包括配置成将主机耦合至设备的通信接口。
23.如权利要求20所述的嵌入式多媒体控制器存储器系统,其特征在于,所述控制系统被进一步配置成在对所述传输请求的处理完成之后清除所述完成比特。
24.如权利要求23所述的嵌入式多媒体控制器存储器系统,其特征在于,所述控制系统被进一步配置成在清除所述完成比特之后重用与所述完成比特相关联的时隙。
25.如权利要求20所述的嵌入式多媒体控制器存储器系统,其特征在于,所述传输请求包括用于向所述设备写入数据的写命令。
26.如权利要求20所述的嵌入式多媒体控制器存储器系统,其特征在于,所述传输请求包括用于从所述设备读取数据的读命令。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361875907P | 2013-09-10 | 2013-09-10 | |
US61/875,907 | 2013-09-10 | ||
US14/467,404 | 2014-08-25 | ||
US14/467,404 US9348537B2 (en) | 2013-09-10 | 2014-08-25 | Ascertaining command completion in flash memories |
PCT/US2014/052667 WO2015038325A1 (en) | 2013-09-10 | 2014-08-26 | Ascertaining command completion in flash memories |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105556497A CN105556497A (zh) | 2016-05-04 |
CN105556497B true CN105556497B (zh) | 2017-11-07 |
Family
ID=52626699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480049956.9A Active CN105556497B (zh) | 2013-09-10 | 2014-08-26 | 查明闪存中的命令完成 |
Country Status (19)
Country | Link |
---|---|
US (1) | US9348537B2 (zh) |
EP (2) | EP4177764A1 (zh) |
JP (2) | JP6173603B2 (zh) |
KR (1) | KR101754545B1 (zh) |
CN (1) | CN105556497B (zh) |
AU (1) | AU2014318238B2 (zh) |
BR (1) | BR112016005368B1 (zh) |
CA (1) | CA2920748C (zh) |
CL (1) | CL2016000555A1 (zh) |
HK (1) | HK1222239A1 (zh) |
MX (1) | MX350915B (zh) |
MY (1) | MY177952A (zh) |
NZ (1) | NZ717400A (zh) |
PH (1) | PH12016500339B1 (zh) |
RU (1) | RU2016107810A (zh) |
SA (1) | SA516370693B1 (zh) |
SG (1) | SG11201600764RA (zh) |
TW (1) | TWI570568B (zh) |
WO (1) | WO2015038325A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9632953B2 (en) * | 2014-06-03 | 2017-04-25 | Qualcomm Incorporated | Providing input/output virtualization (IOV) by mapping transfer requests to shared transfer requests lists by IOV host controllers |
US9690720B2 (en) * | 2014-06-03 | 2017-06-27 | Qualcomm Incorporated | Providing command trapping using a request filter circuit in an input/output virtualization (IOV) host controller (HC) (IOV-HC) of a flash-memory-based storage device |
US9881680B2 (en) | 2014-06-03 | 2018-01-30 | Qualcomm Incorporated | Multi-host power controller (MHPC) of a flash-memory-based storage device |
RU2610681C1 (ru) * | 2016-02-18 | 2017-02-14 | Акционерное общество "Научно-исследовательский институт вычислительных комплексов им. М.А. Карцева" (АО "НИИВК им. М.А. Карцева") | Способ сохранения информации в аварийных регистраторах |
KR20180045103A (ko) * | 2016-10-24 | 2018-05-04 | 삼성전자주식회사 | 적응형 인터럽트를 생성하는 데이터 저장 장치 및 그것의 동작 방법 |
US10466903B2 (en) | 2017-03-24 | 2019-11-05 | Western Digital Technologies, Inc. | System and method for dynamic and adaptive interrupt coalescing |
WO2018175059A1 (en) * | 2017-03-24 | 2018-09-27 | Western Digital Technologies, Inc. | System and method for speculative execution of commands using the controller memory buffer |
US10725835B2 (en) | 2017-05-03 | 2020-07-28 | Western Digital Technologies, Inc. | System and method for speculative execution of commands using a controller memory buffer |
US10452278B2 (en) | 2017-03-24 | 2019-10-22 | Western Digital Technologies, Inc. | System and method for adaptive early completion posting using controller memory buffer |
US10509569B2 (en) | 2017-03-24 | 2019-12-17 | Western Digital Technologies, Inc. | System and method for adaptive command fetch aggregation |
US10296249B2 (en) | 2017-05-03 | 2019-05-21 | Western Digital Technologies, Inc. | System and method for processing non-contiguous submission and completion queues |
KR20190051530A (ko) | 2017-11-07 | 2019-05-15 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법 |
JP6954864B2 (ja) | 2018-04-13 | 2021-10-27 | ルネサスエレクトロニクス株式会社 | 半導体装置およびufsシステム |
KR102075689B1 (ko) * | 2018-08-16 | 2020-02-10 | 주식회사 넥스트칩 | 태스크의 기능 안전을 보장하기 위한 방법 및 장치 |
KR20210016938A (ko) * | 2019-08-06 | 2021-02-17 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 그것의 동작방법 |
CN116235139A (zh) * | 2020-07-31 | 2023-06-06 | 华为技术有限公司 | 一种处理器、ufs控制方法及计算机系统 |
KR20220105304A (ko) * | 2021-01-20 | 2022-07-27 | 에스케이하이닉스 주식회사 | 시스템 및 시스템의 동작 방법 |
KR20220165128A (ko) | 2021-06-07 | 2022-12-14 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 데이터 처리 시스템 |
CN114296639B (zh) * | 2021-12-10 | 2024-02-20 | 深圳大普微电子科技有限公司 | 命令处理方法及闪存设备 |
CN117012267B (zh) * | 2023-06-30 | 2024-03-19 | 珠海妙存科技有限公司 | 对ufs所写入数据的验证方法、控制器及介质 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3783255A (en) * | 1972-07-12 | 1974-01-01 | Gte Automatic Electric Lab Inc | Data handling system maintenance arrangement for processing system trouble conditions |
US5870758A (en) * | 1996-03-11 | 1999-02-09 | Oracle Corporation | Method and apparatus for providing isolation levels in a database system |
US6353845B1 (en) * | 1998-06-25 | 2002-03-05 | International Business Machines Corporation | Computer system, program product and method for tracking asynchronous I/O with timeout support |
US6434637B1 (en) * | 1998-12-31 | 2002-08-13 | Emc Corporation | Method and apparatus for balancing workloads among paths in a multi-path computer system based on the state of previous I/O operations |
US6275876B1 (en) * | 1999-05-21 | 2001-08-14 | International Business Machines Corporation | Specifying wrap register for storing memory address to store completion status of instruction to external device |
US6587893B1 (en) | 2000-04-28 | 2003-07-01 | Hewlett-Packard Development Company, L.P. | Method and apparatus to determine when all outstanding fetches are complete |
US6341367B1 (en) * | 2000-07-25 | 2002-01-22 | Lsi Logic Corporation | Hardware realized state machine |
US7328304B2 (en) * | 2004-02-27 | 2008-02-05 | Intel Corporation | Interface for a block addressable mass storage system |
US7219178B2 (en) * | 2004-09-30 | 2007-05-15 | Arm Limited | Bus deadlock avoidance |
JP2006195746A (ja) * | 2005-01-13 | 2006-07-27 | Oki Electric Ind Co Ltd | マルチレイヤバスシステム |
US7853957B2 (en) | 2005-04-15 | 2010-12-14 | Intel Corporation | Doorbell mechanism using protection domains |
JP4848562B2 (ja) * | 2005-08-22 | 2011-12-28 | 新世代株式会社 | マルチプロセッサ |
JP4814617B2 (ja) * | 2005-11-01 | 2011-11-16 | 株式会社日立製作所 | ストレージシステム |
US7587543B2 (en) * | 2006-01-23 | 2009-09-08 | International Business Machines Corporation | Apparatus, method and computer program product for dynamic arbitration control |
GB2440758B (en) * | 2006-08-08 | 2011-03-30 | Advanced Risc Mach Ltd | Interconnect logic for a data processing apparatus |
US8156273B2 (en) * | 2007-05-10 | 2012-04-10 | Freescale Semiconductor, Inc. | Method and system for controlling transmission and execution of commands in an integrated circuit device |
US7657682B2 (en) * | 2007-09-14 | 2010-02-02 | Freescale Semiconductor, Inc. | Bus interconnect with flow control |
SG177597A1 (en) * | 2009-07-10 | 2012-03-29 | Certicom Corp | System and method for performing serialization of devices |
US8549204B2 (en) * | 2010-02-25 | 2013-10-01 | Fresco Logic, Inc. | Method and apparatus for scheduling transactions in a multi-speed bus environment |
CN103080917B (zh) * | 2010-06-18 | 2014-08-20 | Lsi公司 | 可扩展存储装置 |
JP2012073851A (ja) * | 2010-09-29 | 2012-04-12 | Sony Corp | バスシステムおよびそのデッドロック回避回路 |
TWI521343B (zh) * | 2011-08-01 | 2016-02-11 | Toshiba Kk | An information processing device, a semiconductor memory device, and a semiconductor memory device |
US8700834B2 (en) * | 2011-09-06 | 2014-04-15 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture in data storage systems |
WO2013048451A1 (en) * | 2011-09-30 | 2013-04-04 | Intel Corporation | Presentation of direct accessed storage under a logical drive model |
US8301832B1 (en) * | 2012-03-23 | 2012-10-30 | DSSD, Inc. | Storage system with guaranteed read latency |
US8370567B1 (en) * | 2012-03-23 | 2013-02-05 | DSSD, Inc. | Storage system with self describing data |
US8341342B1 (en) * | 2012-03-23 | 2012-12-25 | DSSD, Inc. | Storage system with incremental multi-dimensional RAID |
-
2014
- 2014-08-25 US US14/467,404 patent/US9348537B2/en active Active
- 2014-08-26 AU AU2014318238A patent/AU2014318238B2/en not_active Ceased
- 2014-08-26 RU RU2016107810A patent/RU2016107810A/ru not_active Application Discontinuation
- 2014-08-26 JP JP2016540914A patent/JP6173603B2/ja active Active
- 2014-08-26 CN CN201480049956.9A patent/CN105556497B/zh active Active
- 2014-08-26 MX MX2016002983A patent/MX350915B/es active IP Right Grant
- 2014-08-26 WO PCT/US2014/052667 patent/WO2015038325A1/en active Application Filing
- 2014-08-26 KR KR1020167007288A patent/KR101754545B1/ko active IP Right Grant
- 2014-08-26 EP EP22194758.3A patent/EP4177764A1/en active Pending
- 2014-08-26 SG SG11201600764RA patent/SG11201600764RA/en unknown
- 2014-08-26 CA CA2920748A patent/CA2920748C/en not_active Expired - Fee Related
- 2014-08-26 NZ NZ717400A patent/NZ717400A/en not_active IP Right Cessation
- 2014-08-26 BR BR112016005368-0A patent/BR112016005368B1/pt active IP Right Grant
- 2014-08-26 MY MYPI2016700399A patent/MY177952A/en unknown
- 2014-08-26 EP EP14767183.8A patent/EP3044687A1/en not_active Ceased
- 2014-08-29 TW TW103130009A patent/TWI570568B/zh active
-
2016
- 2016-02-19 PH PH12016500339A patent/PH12016500339B1/en unknown
- 2016-03-07 SA SA516370693A patent/SA516370693B1/ar unknown
- 2016-03-10 CL CL2016000555A patent/CL2016000555A1/es unknown
- 2016-08-30 HK HK16110301.5A patent/HK1222239A1/zh unknown
-
2017
- 2017-05-09 JP JP2017092848A patent/JP6599397B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
SG11201600764RA (en) | 2016-03-30 |
CA2920748C (en) | 2017-09-05 |
JP6173603B2 (ja) | 2017-08-02 |
NZ717400A (en) | 2017-06-30 |
JP2016539429A (ja) | 2016-12-15 |
PH12016500339A1 (en) | 2016-05-02 |
JP6599397B2 (ja) | 2019-10-30 |
HK1222239A1 (zh) | 2017-06-23 |
BR112016005368B1 (pt) | 2022-09-27 |
CN105556497A (zh) | 2016-05-04 |
WO2015038325A1 (en) | 2015-03-19 |
CL2016000555A1 (es) | 2016-11-18 |
MX2016002983A (es) | 2016-06-02 |
MX350915B (es) | 2017-09-25 |
US20150074338A1 (en) | 2015-03-12 |
JP2017152041A (ja) | 2017-08-31 |
AU2014318238A1 (en) | 2016-03-17 |
CA2920748A1 (en) | 2015-03-19 |
EP3044687A1 (en) | 2016-07-20 |
KR20160054494A (ko) | 2016-05-16 |
MY177952A (en) | 2020-09-28 |
RU2016107810A (ru) | 2017-10-16 |
KR101754545B1 (ko) | 2017-07-19 |
PH12016500339B1 (en) | 2016-05-02 |
TW201523267A (zh) | 2015-06-16 |
EP4177764A1 (en) | 2023-05-10 |
US9348537B2 (en) | 2016-05-24 |
SA516370693B1 (ar) | 2018-10-04 |
AU2014318238B2 (en) | 2017-06-08 |
TWI570568B (zh) | 2017-02-11 |
RU2016107810A3 (zh) | 2018-06-25 |
BR112016005368A2 (zh) | 2017-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105556497B (zh) | 查明闪存中的命令完成 | |
CN110851253B (zh) | 一种远程运维的方法、系统、存储介质及电子设备 | |
CN105808374A (zh) | 一种快照处理方法及相关设备 | |
CN111865831A (zh) | 数据处理的方法、网络设备、计算节点和系统 | |
EP4052126A1 (en) | Management of multiple physical function non-volatile memory devices | |
CN112835885A (zh) | 一种分布式表格存储的处理方法、装置及系统 | |
US9594713B2 (en) | Bridging strongly ordered write transactions to devices in weakly ordered domains, and related apparatuses, methods, and computer-readable media | |
US20150363322A1 (en) | Systems, methods, and computer programs for providing client-filtered cache invalidation | |
CN112363815A (zh) | Redis集群处理方法、装置、电子设备及计算机可读存储介质 | |
CN107644020B (zh) | 数据存储和调用的方法及装置 | |
US10761940B2 (en) | Method, device and program product for reducing data recovery time of storage system | |
US20140289336A1 (en) | Migrating Social Connections from a First Profile to a Second Profile | |
CN104765704A (zh) | 一种移动通讯装置及电子设备 | |
CN107870878A (zh) | 存储系统、终端及计算机装置 | |
CN108121580A (zh) | 应用程序通知服务的实现方法及装置 | |
EP4148577A2 (en) | Method and apparatus of responding to client fault detection with update operation, electronic device, and storage medium | |
JP7463444B2 (ja) | 来訪通知システム、情報処理装置の制御方法、および通信情報処理装置の制御プログラム | |
WO2021155491A1 (en) | Data transfer with media transfer protocol (mtp) over universal serial bus (usb) | |
CN113918391A (zh) | 数据库双机热备方法、装置、设备及计算机可读存储介质 | |
CN117453415A (zh) | 数据审核方法、装置、设备及存储介质 | |
CN116955714A (zh) | 图结构处理方法及图结构处理系统 | |
CN115965454A (zh) | 数据处理方法、装置、电子设备和可读存储介质 | |
CN116955485A (zh) | 基于分布式数据库实现数据导入性能优化方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1222239 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1222239 Country of ref document: HK |