CN108572798B - 针对快速数据传输执行监听操作的存储装置及其方法 - Google Patents
针对快速数据传输执行监听操作的存储装置及其方法 Download PDFInfo
- Publication number
- CN108572798B CN108572798B CN201810194797.1A CN201810194797A CN108572798B CN 108572798 B CN108572798 B CN 108572798B CN 201810194797 A CN201810194797 A CN 201810194797A CN 108572798 B CN108572798 B CN 108572798B
- Authority
- CN
- China
- Prior art keywords
- data
- buffer memory
- memory device
- engine
- host
- 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
Images
Classifications
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
-
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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
-
- 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
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/28—DMA
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
Abstract
根据本发明构思的示例实施例的存储器控制器包括:***总线;第一直接存储器存取引擎,其被构造为通过***总线将数据写入缓冲存储器中;***,其被构造为通过在***总线周围监听,输出指示数据是否被存储在缓冲存储器中的通知信息;以及第二直接存储器存取引擎,其被构造为响应于来自***的通知信息将写入在缓冲存储器中的数据发送至主机。本发明构思还提供了一种存储装置以及一种操作存储装置的方法。
Description
相关申请的交叉引用
本申请要求于2017年3月10日提交的韩国专利申请No.10-2017-0030763的优先权,该申请的全部内容以引用方式并入本文中。
技术领域
本发明构思涉及半导体存储器,并且更具体地说,涉及存储器控制器和包括存储器控制器的存储装置。
背景技术
半导体存储器装置分为当断电时丢失其存储的数据的易失性存储器装置(诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM等)和即使断电也保持其存储的数据的非易失性存储器装置(诸如只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器装置、相变RAM(PRAM)、磁性RAM(MRAM)、电阻RAM(RRAM)、铁电RAM(FRAM)等)。
闪速存储器装置广泛用作计算***的大容量存储介质。随着计算技术发展,对于基于闪存的大容量存储介质,需要极大地改进性能。为了提高基于闪存的大容量存储介质的性能,各种技术或者各种装置得到了发展。
发明内容
本发明构思的示例实施例提供了一种存储器控制器。所述存储器控制器可包括:***总线;第一直接存储器存取(DMA)引擎,其被构造为通过***总线在缓冲存储器中写入数据;***,其被构造为通过在***总线周围监听,输出指示数据是否存储在缓冲存储器中的通知信息;以及第二直接存储器存取(DMA)引擎,其被构造为响应于来自***的通知信息将写入在缓冲存储器中的数据发送至主机。
本发明构思的示例实施例提供了一种存储装置。所述存储装置可包括:非易失性存储器装置、存储器控制器,其被构造为根据主机的请求将存储在非易失性存储器装置中的数据发送至主机;以及缓冲存储器装置,其被构造为根据存储器控制器的控制暂时存储数据。存储器控制器可包括:***总线;第一直接存储器存取(DMA)引擎,其被构造为通过***总线将来自非易失性存储器装置的数据写入在缓冲存储器装置中;***,其被构造为通过在***总线周围监听,输出指示数据是否存储在缓冲存储器装置中的通知信息;以及第二直接存储器存取(DMA)引擎,其被构造为响应于来自***的通知信息将写入在缓冲存储器装置中的数据发送至主机。
附图说明
下面,将参照附图更详细地描述本发明构思的实施例。然而,本发明构思的实施例可按照不同形式实施,并且不应理解为限于本文阐述的实施例。相反,提供这些实施例以使得本公开将是彻底和完整的,并且将把本发明构思的范围完全传递给本领域技术人员。相同的附图标记始终指代相同的元件。
图1是示出根据本发明构思的示例实施例的计算***的框图。
图2是详细示出图1的存储器控制器的框图。
图3是示出图2的存储器控制器的操作的流程图。
图4是详细示出图3的存储器控制器的操作的流程图。
图5是用于详细解释图4的流程图中所示的操作的概念图。
图6是示出基于轮询操作的DMA操作的时序图。
图7是示出基于根据本发明构思的示例实施例的监听操作的DMA操作的时序图。
图8是示出根据本发明构思的示例实施例的计算***的框图。
图9是示出图8的存储器控制器的操作的流程图。
图10是详细示出图9的操作的流程图。
图11是详细示出根据图10的流程图的操作的概念图。
图12是示出根据本发明构思的示例实施例的计算***的框图。
图13是示出包括根据本发明构思的示例实施例的存储装置的SSD(固态盘)***的框图。
具体实施方式
下文中,将参照示出了本发明的实施例的附图更完全地描述本发明构思的实施例。然而,本发明构思可按照许多不同形式实现,并且不应理解为限于本文阐述的实施例。相反,提供这些实施例以使得本公开将是彻底和完整的,并且将把本发明构思的范围完全传递给本领域技术人员。在附图中,为了清楚起见,可夸大层和区的尺寸和相对尺寸。相同的附图标记始终指代相同元件。
图1是示出根据本发明构思的示例实施例的计算***10的框图。参照图1,计算***10可包括主机11和存储装置100。计算***10可包括计算机、超级移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板计算机、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航装置、黑盒子、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录仪、数字音频播放器、数字图片记录仪、数字图片播放器、数字视频记录仪、数字视频播放器、可在无线环境下发送和接收信息的装置以及构成家庭网络的各种电子装置之一。
主机11可被构造为控制计算***10的操作。主机11可与存储装置100交换驱动操作***(OS)或者运行程序所需的信息和数据。
存储装置100可在主机11的控制下与主机11交换数据。存储装置100可为计算***10中使用的大容量存储介质,诸如硬盘、SSD、存储卡、内置存储卡、记忆棒等。
存储装置100可包括存储器控制器110、缓冲存储器装置120和非易失性存储器装置130。存储器控制器110、缓冲存储器装置120和非易失性存储器装置130中的每一个可为分离的半导体晶片、芯片、封装件或模块。可替换地,存储器控制器110、缓冲存储器装置120和非易失性存储器装置130可在一个或两个半导体晶片、芯片、封装件或模块中实现。
存储器控制器110可在主机11的控制下将数据写入非易失性存储器装置130中或者将从非易失性存储器装置130读取的数据发送至主机11。存储器控制器110可被构造为交换操作非易失性存储器装置130所需的诸如闪存转换层(FTL)程序代码或者映射表的各种数据。
缓冲存储器装置120可被构造为在存储器控制器110的控制下暂时存储从主机11接收到的写入数据或者从非易失性存储器装置130读取的数据。
第一传输通道CH1可用于主机11与存储器控制器110之间的数据通信,第二传输通道CH2可用于存储器控制器110与非易失性存储器装置130之间的数据通信。第一传输通道CH1的带宽和传输速度可与第二传输通道CH2的带宽和传输速度不同。为了解决第一传输通道CH1与第二传输通道CH2之间的传输速度差异,缓冲存储器装置120可被构造为暂时存储写入数据或读取数据。
缓冲存储器装置120可包括诸如静态随机存取存储器(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)等的高速随机存取存储器。可替换地,缓冲存储器装置120可包括诸如ROM(只读存储器)、PROM(可编程ROM)、EPROM(电可编程ROM)、EEPROM(电可擦除可编程ROM)、闪速存储器、PRAM(相变RAM)、MRAM(磁性RAM)、RRAM(电阻RAM)、FRAM(铁电RAM)、TRAM(晶闸管RAM)等的非易失性存储器。在示例实施例中,缓冲存储器装置120是双端口存储器,并且可被构造为通过闪速直接存储器存取(FDMA)引擎111和主机直接存储器存取(HDMA)引擎112中的每一个来被控制。
非易失性存储器装置130可被构造为在存储器控制器110的控制下存储数据或者将存储的数据提供至存储器控制器110。非易失性存储器装置130可包括诸如ROM(只读存储器)、PROM(可编程ROM)、EPROM(电可编程ROM)、EEPROM(电可擦除可编程ROM)、闪速存储器、PRAM(相变RAM)、MRAM(磁性RAM)、RRAM(电阻RAM)、FRAM(铁电RAM)、TRAM(晶闸管RAM)等的非易失性存储器。
根据该本发明构思的示例实施例的存储器控制器110可包括FDMA引擎111、HDMA引擎112和***113。FDMA引擎111、HDMA引擎112和***113可按照硬件、软件或者它们的组合的形式来实现。
FDMA引擎111可被构造为控制非易失性存储器装置130与缓冲存储器装置120之间的直接存储器存取(DMA)操作。HDMA引擎112可被构造为控制缓冲存储器装置120与主机11之间的DMA操作。
例如,存储装置100可在DMA模式下操作,以提高数据传输速度。DMA模式是指在不用包括在存储器控制器110中的处理器或核介入的情况下根据DMA引擎111和112的控制将数据写入缓冲存储器装置120或者从缓冲存储器装置120读取数据的操作模式。因为不需要处理器或核的任何控制或处理,因此可提高数据传输速度。在DMA操作中,FDMA引擎111可控制非易失性存储器装置130与缓冲存储器装置120之间的数据传输,并且HDMA引擎112可控制主机11与缓冲存储器装置120之间的数据传输。
根据示例实施例,如果存储器控制器110从主机11接收到读请求,则FDMA引擎111可被构造为从非易失性存储器装置130读取数据(例如,对应于包括在读请求中的地址的数据),并且将读取的数据存储在缓冲存储器装置120中,而不用处理器或核进行控制。在读取的数据被存储在缓冲存储器装置120中之后,HDMA引擎112可被构造为读取存储在缓冲存储器装置120中的数据,并且将读取的数据发送至主机11,而不用处理器或核进行控制。
***113可通过监听操作检测所有读取的数据是否通过FDMA引擎111写入缓冲存储器装置120中。***113可将检测结果发送至HDMA引擎112。根据示例实施例,监听操作可为监视包括在存储器控制器110中的特定总线(例如,数据总线或地址总线)以获得从存储器控制器110发送的数据、控制信息或者地址信息的操作。
例如,FDMA引擎111可通过位于存储器控制器110内的***总线或者存储器控制器110与缓冲存储器装置120之间的第三传输通道CH3将从非易失性存储器装置130读取的数据写入缓冲存储器装置120中。***113可被构造为在位于存储器控制器110内的***总线周围或者在存储器控制器110与缓冲存储器装置120之间的第三传输通道CH3周围监听。
***113还可检测关于来自非易失性存储器装置130的数据的元数据是否通过监听操作被写入缓冲存储器装置120中。元数据表示关于在缓冲存储器装置120中写入的数据的诸如纠错码或有效位的额外信息。有效位可为表示存储在缓冲存储器装置120中的数据是否有效的信息。也就是说,存储在缓冲存储器装置120中的有效位可表示来自非易失性存储器装置130的数据被成功写入缓冲存储器装置120中。由于在将来自非易失性存储器装置130的数据写入缓冲存储器装置120中之后可将元数据写入缓冲存储器装置120中,因此可通过检查到存在元数据来确定来自非易失性存储器装置130的数据被完全写入缓冲存储器装置120中。
根据示例实施例,当从主机11接收到读请求时,可分配缓冲存储器装置120的一部分区域作为用于存储读取的数据的读缓冲区。FDMA引擎111可将读取的数据和元数据写入分配的缓冲区中。如果通过***总线发送对应于分配的缓冲区的地址信息(尤其是,其中将要存储元数据的区域的地址信息),则元数据将通过FDMA引擎111被写入缓冲存储器装置120中。此时,***113可通过监听***总线(尤其是,地址总线)检测读取的数据和元数据是否被写入缓冲存储器装置120中,以检测地址信息(尤其是,其中存储了元数据的区域的地址信息)是否通过***总线被发送。
在通过监听操作检测到FDMA引擎111写入了所有读取的数据的情况下,***113可被构造为将检测结果提供至HDMA引擎112。HDMA引擎112可被构造为响应于来自***113的检测结果读取存储在缓冲存储器装置120中的数据,并且将读取的数据发送至主机11,而不用处理器或核进行控制。
如上所述,存储装置100可通过监听操作检测读取的数据通过FDMA引擎111被完全写入缓冲存储器装置120中,并且可基于检测结果开始HDMA引擎112的DMA操作。由于减小了通过检查存储在缓冲存储器装置120中的数据的操作(例如,周期性轮询操作)导致的延迟,因此提高了存储装置100的整体性能。
例如,常规HDMA引擎通过对缓冲存储器装置的周期性轮询操作检查存储在缓冲存储器装置中的读数据的状态,并且基于轮询操作的结果开始传输操作。由于以预定周期周期性地执行轮询操作,因此在读取的数据被写入缓冲存储器中之后不会立即开始通过HDMA引擎的数据传输。
根据本发明构思的示例实施例,由于***113通过监听操作检测到读取的数据(或者可传输数据单元)被完全写入缓冲存储器装置120中,因此基于检测结果,通过HDMA引擎112的数据传输可在将数据完全写入缓冲存储器装置120中之后立即开始。可防止由于周期性轮询操作导致的延迟。
在示例实施例中,如图1所示,FDMA引擎111、HDMA引擎112和***113可通过分离的硬件电路来实现。可替换地,FDMA引擎111和HDMA引擎112可在一个硬件电路中实现,并且可通过它们的功能彼此区分。
为了便于描述,基于根据主机的读请求的对存储装置的读操作来描述本发明构思的实施例。在读操作中,将通过FDMA引擎111执行的操作(也就是说,从非易失性存储器装置130读取数据并将读取的数据写入缓冲存储器装置120中的操作)称作“FDMA操作”。在读操作中,将通过HDMA引擎112执行的操作(也就是说,从缓冲存储器装置120读取数据并将读取的数据发送至主机11的操作)称作“HDMA操作”。然而,本发明构思的范围不限于此,并且本发明构思的技术精神可相似地应用于存储装置100的写操作。
为了便于描述,在本发明构思的实施例中,描述了***113简单地监听FDMA引擎111所使用的***总线。然而,本发明构思的范围不限于此,并且***113的监听操作可表示检测是否通过监听***总线发送了关于针对读操作分配的缓冲区的地址信息(更具体地说,其中将要存储元数据的缓冲区的地址信息)的操作。
图2是详细示出图1的存储器控制器的框图。参照图1和图2,存储器控制器110可包括FDMA引擎111、HDMA引擎112、***113、处理器114、ROM 115、主机接口116、闪存接口117、缓冲控制器118和***总线119。
由于参照图1描述了FDMA引擎111、HDMA引擎112和***113,因此省略了其详细描述。处理器114可被构造为控制存储器控制器110的整体操作。处理器114可被构造为驱动存储器控制器110操作时所需的各种软件层,或者控制包括在存储器控制器110中的各种硬件配置。
在示例中,处理器114可被构造为对FDMA引擎111和HDMA引擎112中的每一个执行初始设置,以执行FDMA操作和HDMA操作。FDMA引擎111和HDMA引擎112可被构造为根据处理器114的初始设置分别执行FDMA操作和HDMA操作。处理器114的初始设置指示了针对FDMA引擎111和HDMA引擎112或者在FDMA引擎111和HDMA引擎112中输入或设置目标地址、地址大小、输入/输出(I/O)装置、数量、输入/输出信息等的操作。
为了便于描述,处理器114响应于来自主机11的读请求执行关于FDMA引擎111和HDMA引擎112的初始设置。然而,本发明构思的范围不限于此,并且在读操作中,处理器114可响应于主机11的读请求而初始设置FDMA引擎111。FDMA引擎111可响应于初始设置信息从非易失性存储器装置130读取数据。然后,FDMA引擎111可被构造为将设置信息提供至HDMA引擎112。HDMA引擎112可根据通过FDMA引擎111提供的信息进行操作。也就是说,FDMA引擎111和HDMA引擎112可被构造为根据操作次序在不同的时间点被设置。
ROM 115可按照固件的形式存储存储器控制器110操作时所需的各种信息。存储在ROM 115中的固件可通过处理器114驱动。
存储器控制器110可被构造为通过主机接口116与主机11通信。主机接口116可包括诸如通用串行总线(USB)、双数据率(DDR)、多媒体卡(MMC)、嵌入式MMC、外设部件互连(PCI)、快速PCI、高级技术附件(ATA)、串行ATA、并行ATA、小计算机小接口(SCSI)、增强型小型磁盘接口(ESDI)、集成驱动电子器件(IDE)、火线、通用闪存(UFS)、快速非易失性存储器(NVMe)等中的至少一个接口。存储器控制器110可被构造为通过闪存接口117与非易失性存储器装置130通信。
缓冲控制器118可被构造为控制缓冲存储器装置120。缓冲控制器118可产生用于将数据写入缓冲存储器装置120中或者读取存储在缓冲存储器装置120中的数据的各种控制信号,以将产生的控制信号提供至缓冲存储器装置120。在FDMA操作或者HDMA操作中,缓冲控制器118可被构造为在FDMA引擎111和HDMA引擎112的控制下将数据写入缓冲存储器装置120中,或者读取被写入到缓冲存储器装置120中的数据。
***总线119可被构造为在包括在存储器控制器110中的构造元件之间提供数据、信息或者控制信号的传输路径。***总线119可提供诸如数据总线、地址总线、控制总线等的各种信息传输路径。
在示例实施例中,FDMA引擎111可通过***总线119将从非易失性存储器装置130读取的数据提供至缓冲存储器装置120。也就是说,FDMA引擎111可被构造为通过***总线119执行FDMA操作。HDMA引擎112可通过***总线119从缓冲存储器装置120读取数据。也就是说,HDMA引擎112可被构造为通过***总线119执行HDMA操作。然而,本发明构思的范围不限于此。
***113可被构造为在***总线119周围监听。***113可在***总线119周围监听以检测FDMA引擎111是否将读取的数据或者可传输数据单元完全写入缓冲存储器装置120中。***113可将检测结果提供至HDMA引擎112,并且HDMA引擎112可响应于来自***113的检测结果执行HDMA操作。然而,本发明构思的范围不限于此,并且***113可被构造为在***总线119周围监听或者在缓冲控制器118与缓冲存储器装置120之间的第三传输通道CH3周围监听。
虽然图中未示出,但是存储器控制器110还可包括诸如ECC(纠错码)引擎、随机数生成器、SRAM等的构造元件。
图3是示出图2的存储器控制器的操作的流程图。参照图1至图3,在操作S110中,存储器控制器110可从主机11接收读请求。
在操作S120中,存储器控制器110可响应于读请求执行关于FDMA引擎111和HDMA引擎112的初始设置。例如,存储器控制器110的处理器114可针对FDMA操作和HDMA操作关于FDMA引擎111和HDMA引擎112的初始设置。由于参照图2描述了关于FDMA引擎111和HDMA引擎112的初始设置,因此省略了其详细描述。
在操作S130中,存储器控制器110可执行FDMA操作。例如,存储器控制器110的FDMA引擎111可基于初始设置信息执行FDMA操作,以将从非易失性存储器装置130读取的数据写入缓冲存储器装置120中。
在操作S140中,存储器控制器110可通过监听操作来检测写入完成。例如,存储器控制器110的***113可在***总线119周围监听,以检测读取的数据是否被写入缓冲存储器装置120中。在示例实施例中,***113可在***总线119周围监听,以检测FDMA引擎111是否将关于读取的数据的元数据写入缓冲存储器装置120中。在操作S150中,存储器控制器110可响应于检测执行HDMA操作。存储器控制器110的HDMA引擎112可响应于来自***113的检测结果开始HDMA操作。HDMA引擎112可响应于来自***113的检测结果从缓冲存储器装置120读取数据并将读取的数据发送至主机11。
图4是详细示出图3的存储器控制器的操作的流程图。参照图4描述FDMA引擎111、HDMA引擎112和***113中的每一个的操作。
参照图2至图4,在操作S131中,FDMA引擎111可从非易失性存储器装置130读取数据。如参照图3的操作S120的描述,FDMA引擎111可由处理器114初始设置。FDMA引擎111可基于初始设置的信息从非易失性存储器装置130读取数据。
在操作S132中,FDMA引擎111可将读取的数据写入缓冲存储器装置120中。例如,FDMA引擎111可利用***总线119将读取的数据写入缓冲存储器装置120中。在示例实施例中,在将读取的数据写入缓冲存储器装置120中之后,FDMA引擎111可将关于于读取的数据的元数据写入缓冲存储器装置120中。可替换地,每当将一部分读取的数据写入缓冲存储器装置120中时,FDMA引擎111可将对应的元数据写入缓冲存储器装置120中。在示例实施例中,读取的数据的所述一部分可具有预定数据单元。
操作S131和S132可包括在图3的操作S130的FDMA操作中。
在操作S141中,***113可在***总线119周围监听。在操作S142中,***113可确定读取数据的写入是否完成。如上所述,***113可在***总线119周围监听,以检测读取的数据是否被写入到缓冲存储器装置120中。更具体地说,***113可通过在***总线119周围监听来确定一部分读取的数据的写入是否完成,以确定元数据是否存储在缓冲存储器装置120中。
在写入一部分读取的数据的过程中,***113可连续地在***总线119周围监听。一旦***113检测到一部分读取的数据的写入已完成,***113就可将通知信息(NT)提供至HDMA引擎112。通知信息(NT)可为通知读取的数据或者一部分读取的数据已写入缓冲存储器装置120中的信息(即,检测结果)。所述一部分读取的数据可表示可进行HDMA操作的数据单元。可通过***总线119或者分离的专用线将通知信息(NT)从***113提供至HDMA引擎112。
操作S141至S142可包括在图3的操作S140的写入完成检测操作(即,监听操作)中。
在操作S151中,HDMA引擎112可响应于来自***113的通知信息(NT)从缓冲存储器装置120读取数据。在操作S152中,HDMA引擎112可将读取的数据发送至主机11。HDMA引擎112可通过主机接口116将读取的数据发送至主机11。操作S151和S152可包括在图3的操作S150中。
图5是用于更详细地解释图4的流程图中所示的操作的概念图。为了便于描述,假设图5所示的FDMA引擎111和HDMA引擎112处于由处理器114进行初始设置的状态,并且可执行FDMA引擎111和HDMA引擎112,而不需要处理器114介入。
示出了FDMA引擎111和HDMA引擎112可读取用于进一步处理的数据DATA。然而,本发明构思的范围不限于此,并且FDMA引擎111和HDMA引擎112可被构造为控制***总线119中的数据流或数据路径,而不需要处理器114介入。
参照图1和图5,FDMA引擎111可从非易失性存储器装置130读取数据DATA(操作[1])。FDMA引擎111可将读取的数据DATA写入缓冲存储器装置120中(操作[2-1])。在将读取的数据DATA写入缓冲存储器装置120中之后,FDMA引擎111可将与数据DATA关联的元数据(MD)写入缓冲存储器装置120中。元数据(MD)可表示诸如纠错码、有效位等的额外信息。如果元数据(MD)写入缓冲存储器装置120中,则这可表示数据DATA已被写入缓冲存储器装置120中。数据DATA和元数据(MD)可被存储在缓冲存储器装置120的分配的缓冲区中,并且可处于就绪状态,以由HDMA引擎112通过读操作读出。
***113可在由FDMA引擎111进行的写操作(即,操作[2-1])期间在***总线119周围监听(操作[2-2])。***113可通过监听操作来检测元数据(MD)是否被写入缓冲存储器装置120中。在示例实施例中,通过监听操作,***113可检测是否通过***总线119发送了分配的缓冲区的地址信息或者其中将要存储元数据的缓冲区的地址信息。
在检测到元数据(MD)被写入缓冲存储器装置120中的情况下,***113可将通知信息(NT)发送至HDMA引擎112(操作[2-3])。HDMA引擎112可响应于通知信息(NT)从缓冲存储器装置120读取数据DATA(操作[3])。HDMA引擎112可将读取的数据DATA发送至主机11(操作[4])。
虽然已经参照图5描述了关于一个单元数据的FDMA操作和HDMA操作,本发明构思的范围不限于此。FDMA引擎111可对多个单元数据执行上述FDMA操作。***113可通过监听操作检测每个单元数据是否被写入,并且根据检测结果将通知信息(NT)提供至HDMA引擎112。HDMA引擎112可响应于通知信息(NT)而关于每个单元数据执行HDMA操作。
可并行地执行图5所示的操作[1]、操作[2-1]、操作[2-2]、操作[2-3]、操作[3]或操作[4]。例如,在将第一读取数据写入缓冲存储器装置120中之后,FDMA引擎111可将第二读取数据写入缓冲存储器装置120中。***113可通过监听操作而检测到第一读取数据的写入完成,并且可将通知信息(NT)提供至HDMA引擎112。在将第二读取数据写入缓冲存储器装置120中的同时,HDMA引擎112可从缓冲存储器装置120读取第一读取数据,并且可将第一读取数据发送至主机11。
存储器控制器110可包括在***总线119周围监听的***113。***113可在***总线119周围监听,以检测读取的数据是否通过FDMA引擎111被写入缓冲存储器装置120中。HDMA引擎112可响应于***113的检测结果(或者,通知信息)开始HDMA操作。由于不需要用于检查缓冲存储器装置120中的数据的操作(例如,HDMA引擎112的轮询操作),因此可防止由于用于检查数据的操作导致延迟。因此,可提高存储装置的整体性能。
图6是示出基于轮询操作的DMA操作的时序图。图7是示出基于根据本发明构思的示例实施例的监听操作的DMA操作的时序图。图6和图7的时序图的水平轴线表示时间。参照图6和图7,描述了根据本发明构思的示例实施例的存储装置的性能提高。
为了附图简明和为了便于描述,基于通过来自主机11的单个读请求而执行的单个读操作描述下面的操作。假设该单个读操作是关于第一数据至第八数据(D1至D8)的读操作。也就是说,在由处理器114进行初始设置之后,FDMA引擎111和HDMA引擎112中的每一个可关于第一数据至第八数据(D1至D8)执行FDMA操作和HDMA操作,而不需要处理器114介入。
假设第一数据至第八数据(D1至D8)中的每一个是针对读操作读取的数据或单元数据。第一数据至第八数据(D1至D8)中的每一个可为包括在读取的数据中的子数据。第一数据至第八数据(D1至D8)中的每一个可具有诸如256B、512B、1KB、2KB、4KB等的特定数据大小,但是本发明构思的范围不限于此。
还假设在将第一数据至第八数据(D1至D8)中的每一个写入缓冲存储器装置120中之后,FDMA引擎111将第一元数据至第八元数据(M1至M8)中的每一个写入缓冲存储器装置120中。在将第一数据D1写入缓冲存储器装置120中之后,FDMA引擎111可将对应于第一数据D1的第一元数据M1写入缓冲存储器装置120中。在将第二数据D2写入缓冲存储器装置120中之后,FDMA引擎111可将对应于第二数据D2的第二元数据M2写入缓冲存储器装置120中。在将第三数据至第八数据(D3至D8)中的每一个写入缓冲存储器装置120中之后,FDMA引擎111可将对应于第三数据至第八数据(D3至D8)中的每一个的第三元数据至第八元数据(M3至M8)中的每一个写入缓冲存储器装置120中。
假设HDMA引擎112根据驱动方法基于两个数据单元或四个数据单元执行HDMA操作。例如,HDMA引擎112可在第一数据和第二数据(D1、D2)写入缓冲存储器装置120中之后关于第一数据和第二数据(D1、D2)执行HDMA操作,并且可在第三数据和第四数据(D3、D4)写入缓冲存储器装置120中之后关于第三数据和第四数据(D3、D4)执行HDMA操作。HDMA引擎112还可在第五数据至第八数据(D5至D8)写入缓冲存储器装置120中之后关于第五数据至第八数据(D5至D8)执行HDMA操作。
上述构造仅是用于简单和清楚地描述本发明构思的实施例的示例,并且本发明构思的范围不限于此。
参照图1和图6,图6所示的时序图示出了基于轮询操作的DMA操作。HDMA引擎112关于缓冲存储器装置120的特定区域执行轮询操作,以检查数据是否通过FDMA引擎111被写入缓冲存储器装置120中。缓冲存储器装置120的特定区域表示针对读操作分配的缓冲区或者其中将要存储元数据的区域。轮询操作指示周期性地检查缓冲存储器装置120的特定区域的操作。
如图6所示,HDMA引擎112在第一轮询时间点至第八轮询时间点(pt1至pt8)中的每一个周期性地执行轮询操作。例如,HDMA引擎112可在第一轮询时间点(pt1)和在从第一轮询时间点开始过去预定时间之后的第二轮询时间点(pt2)关于缓冲存储器装置120执行轮询操作。相似地,HDMA引擎112可分别在第三轮询时间点至第八轮询时间点(pt3至pt8)执行轮询操作。
如图6所示,在第一轮询时间点(pt1),HDMA引擎112可通过轮询操作检查到第一元数据和第二元数据(M1,M2)。在这种情况下,HDMA引擎112可关于第一数据和第二数据(D1、D2)执行HDMA操作。HDMA操作表示从缓冲存储器装置120读取第一数据和第二数据(D1、D2)并将第一数据和第二数据(D1、D2)发送至主机11的操作。
在这之后,HDMA引擎112可在第二轮询时间点(pt2)执行轮询操作。由于在第四元数据M4被写入缓冲存储器装置120中之前在第二轮询时间点执行轮询操作,HDMA引擎112不会关于第三数据和第四数据(D3、D4)执行HDMA操作。在第三轮询时间点(pt3),HDMA引擎112可检查第三元数据和第四元数据(M3、M4)是否被写入缓冲存储器装置120中。如果检查出第三元数据和第四元数据(M3、M4)被写入缓冲存储器装置120中,则HDMA引擎112可关于第三数据和第四数据(D3、D4)执行HDMA操作。
如图6所示,第四元数据M4会在第三轮询时间点(pt3)之前被写入缓冲存储器装置120中。即使第三数据和第四数据(D3、D4)被完全写入缓冲存储器装置120中,由于HDMA引擎112的轮询周期,会在从第四数据D4和第四元数据M4的写操作完成开始过去第一延迟时间(dT1)之后才开始HDMA操作。
相似地,当关于四个单元数据执行HDMA操作时,HDMA引擎112可在第五轮询时间点至第七轮询时间点(pt5至pt7)中的每一个执行轮询操作。由于这是在四个单元数据(即,第五数据至第八数据(D5至D8))被写入缓冲存储器装置120中之前,因此HDMA引擎112会不执行HDMA操作。在这之后,HDMA引擎112可在第八轮询时间点(pt8)执行轮询操作,以检查到第五元数据至第八元数据(M5至M8)被写入缓冲存储器装置120中,因此可关于第五数据至第八数据(D5至D8)执行HDMA操作。即使第五数据至第八数据(D5至D8)在第八轮询时间点(pt8)之前被写入缓冲存储器装置120中,由于HDMA引擎112的轮询周期,会在从当第八数据D8和第八元数据M8全都写入时开始过去第二延迟时间(dT2)之后才开始HDMA操作。
如上所述,由于HDMA引擎112的轮询周期导致出现的第一延迟时间和第二延迟时间(dT1、dT2)可变为存储装置100的读延迟,并且这会降低存储装置100的性能。
参照图1、图2和图7,与图6的实施例不同,存储器控制器110的HDMA引擎112可不执行轮询操作。作为替代,HDMA引擎112可响应于***113的通知信息(NT)执行HDMA操作。
FDMA引擎111可将第一数据和第二数据(D1、D2)以及第一元数据和第二元数据(M1、M2)写入缓冲存储器装置120中。如上所述,FDMA引擎111可通过***总线119执行写操作。***113可在***总线119周围监听,以检测到第一元数据和第二元数据(M1、M2)被写入缓冲存储器装置120中。也就是说,***113可在第一监听时间点(st1)将通知信息(NT)提供至HDMA引擎112。
第一监听时间点(st1)可为当FDMA引擎111通过***总线119提供用于将第二元数据M2写入缓冲存储器装置120的信号(例如,地址、控制信号等)时的时间。第一监听时间点(st1)也可为当FDMA引擎111通过***总线119将关于第二元数据M2的信息(即,有效位)提供至缓冲存储器装置120时的时间。
HDMA引擎112可从***113接收通知信息(NT),并且可响应于接收到的通知信息(NT)关于第一数据和第二数据(D1、D2)开始或执行HDMA操作。HDMA引擎112可从缓冲存储器装置120读取第一数据和第二数据(D1、D2),并且可将读取的第一数据和第二数据(D1、D2)发送至主机11。
在将第一数据和第二数据(D1、D2)以及第一元数据和第二元数据(M1、M2)写入缓冲存储器装置120中之后,FDMA引擎111可将第三数据和第四数据(D3、D4)以及第三元数据和第四元数据(M3、M4)连续地写入缓冲存储器装置120中。***113可在***总线119周围监听,以检测到第三元数据和第四元数据(M3、M4)被写入缓冲存储器装置120中。***113可在第二监听时间点(st2)将通知信息(NT)提供至HDMA引擎112。
第二监听时间点(st2)可为当FDMA引擎111通过***总线119提供用于将第四元数据M4写入缓冲存储器装置120的信号(例如,地址、控制信号等)时的时间。第二监听时间点(st2)也可为当FDMA引擎111通过***总线119将关于第四元数据M4的信息(即,有效位)提供至缓冲存储器装置120时的时间。
相似地,在关于四个单元数据的DMA操作中,FDMA引擎111可将第五数据至第八数据(D5至D8)以及第五元数据至第八元数据(M5至M8)写入缓冲存储器装置120中。***113可在***总线119周围监听,以检测到第八元数据M8被写入缓冲存储器装置120中。***113可在第三监听时间点(st3)将通知信息(NT)提供至HDMA引擎112,并且HDMA引擎112可响应于通知信息(NT)关于第五数据至第八数据(D5至D8)执行HDMA操作。
与图6的实施例不同,在图7的实施例中,即使HDMA引擎112不执行周期轮询操作,由于***113可通过监听操作检测元数据的写入时间,因此HDMA引擎112的HDMA操作可与元数据的写入并行地执行或者在通过***113检测到元数据的写入完成时执行。根据图7的实施例,可防止参照图6描述的第一延迟时间和第二延迟时间(dT1、dT2)。因此,根据图7的实施例的整个DMA操作时间(T_DMA2)可比图6所示的整个DMA操作时间(T_DMA1)更短。由于去除了延迟时间,因此可减少存储装置100的读延迟,并且可提高存储装置的整体性能。
***113可在***总线周围或者缓冲通道周围监听,以检测元数据的写入,并且HDMA引擎112可响应于***113的检测或者来自***113的通知信息(NT)执行HDMA操作。由于HDMA引擎112可在不需要轮询操作的情况下开始HDMA操作,因此可防止由于轮询周期导致的时延。
由于周期轮询操作相对于缓冲存储器装置的特定区域执行重复访问,因此存储在缓冲存储器装置中的数据的可靠性可降低。然而,由于HDMA引擎112不执行轮询操作,因此可减少由于周期轮询操作对缓冲存储器装置的访问,因此可防止存储在缓冲存储器装置中的数据的可靠性降低。
参照图1至图7描述的存储器控制器110可包括***113,以执行监听操作,其中通过该监听操作检测元数据的写入。FDMA引擎211可提供关于元数据是否被写入HDMA引擎212的信息(即,通知信息(NT))。因此,HDMA引擎212可响应于来自FDMA引擎211的通知信息(NT)开始或执行HDMA操作,而不对缓冲存储器装置220执行周期轮询操作。
图8是示出根据本发明构思的示例实施例的计算***20的框图。参照图8,计算***20可包括主机21和存储装置200。存储装置200可包括存储器控制器210、缓冲存储器装置220和非易失性存储器装置230。存储器控制器210可包括FDMA引擎211和HDMA引擎212。
与图1所示的存储器控制器110不同,图8的存储器控制器210可不包括图1所示的***113。作为替代,FDMA引擎211可将通知信息(NT)提供至HDMA引擎212。HDMA引擎212可响应于来自FDMA引擎211的通知信息(NT)执行HDMA操作。
FDMA引擎211可被构造为控制将从非易失性存储器装置230读取的数据写入缓冲存储器装置220中的FDMA操作。FDMA引擎211可将读取的数据和对应于读取的数据的元数据写入缓冲存储器装置220中。FDMA引擎211可在将元数据写入缓冲存储器装置220中之后或者在将元数据写入缓冲存储器装置220中的同时将通知信息(NT)提供至HDMA引擎212。
来自FDMA引擎211的通知信息(NT)是通知所有读取的数据或特定单元的读取的数据被写入缓冲存储器装置220中的信息。HDMA引擎212可响应于通知信息(NT)执行HDMA操作。
图9是示出图8的存储器控制器210的操作的流程图。参照图8和图9,存储器控制器210可执行操作S210至S230。操作S210至S230可与图3的操作S110至S130相似。
在操作S240中,存储器控制器210可响应于来自FDMA引擎211的通知信息(NT)执行HDMA操作。FDMA引擎211可执行FDMA操作,以将读取的数据和元数据写入缓冲存储器装置220中。FDMA引擎211可在将元数据写入缓冲存储器装置220中之后或者与此同时将通知信息(NT)提供至HDMA引擎212。
存储器控制器210的HDMA引擎212可响应于来自FDMA引擎211的通知信息(NT)执行HDMA操作。
图10是详细示出图9的操作的流程图。参照图8至图10,FDMA引擎211可执行操作S231和S232。操作S231和S232可与图4的操作S131和S132相似。
在操作S233中,FDMA 211可确定写操作是否完成。例如,FDMA引擎211可确定特定单元的读数据是否被写入缓冲存储器装置220中。FDMA引擎211还可确定是否将特定数量的元数据写入缓冲存储器装置220中。如果写操作未完成,则FDMA引擎211可执行S232的操作。FDMA引擎211还可在操作S232期间从非易失性存储器装置230中读取数据,FDMA引擎211可将读取的数据写入缓冲存储器装置220中。
在写操作完成(即,特定单元的读数据写入缓冲存储器装置220中,或者特定数量的元数据写入缓冲存储器装置220中)的情况下,在操作S234中,FDMA引擎211可将通知信息(NT)提供至HDMA引擎212。通知信息(NT)可为通知读取的数据被成功地写入缓冲存储器装置220中的信息。
操作S231至S234可包括在图9的FDMA操作S230中。
HDMA引擎212可响应于来自FDMA引擎211的通知信息(NT)执行操作S241和S242。由于操作S241和S242与图4的操作S151和S152相似,因此省略了其详细描述。操作S241和S242可包括在图9的HDMA操作S240中。
图11是详细示出根据图10的流程图的操作的概念图。
参照图11,FDMA引擎211可从非易失性存储器装置230中读取数据DATA,并且可将读取的数据DATA写入缓冲存储器装置220中(操作[1]和操作[2-1])。
如图11所示,FDMA引擎211可在将数据DATA写入缓冲存储器装置220之后将关于数据DATA的元数据MD写入缓冲存储器装置220中。FDMA引擎211可在将元数据MD写入缓冲存储器装置220中之后或与此同时将通知信息(NT)提供至HDMA引擎212(操作[2-2])。
HDMA引擎212可从缓冲存储器装置220中读取数据DATA,并且将读取的数据DATA提供至主机21(操作[3]和操作[4])。
虽然图11示出了关于单个读数据单元的实施例,但是本发明构思的范围不限于此,并且可将本发明构思的实施例应用于多个单元数据。例如,FDMA引擎211可将多个读取的数据和对应于所述多个读取的数据的多个元数据分别写入缓冲存储器装置220中。每当将所述多个元数据中的每一个写入缓冲存储器装置220中时,FDMA引擎211就可将通知信息(NT)提供至HDMA引擎212。每当将特定数量的元数据写入缓冲存储器装置220中时,FDMA引擎211还可将通知信息(NT)提供至HDMA引擎212。HDMA引擎212可响应于通知信息(NT)关于对应的数据执行HDMA操作。FDMA操作和HDMA操作可并行执行。
每当将特定数量的元数据写入缓冲存储器装置220中时,通过经由FDMA引擎211将通知信息(NT)提供至HDMA引擎212,HDMA引擎212可在无延迟时间的情况下开始或执行HDMA操作。
图12是示出根据本发明构思的示例实施例的计算***的框图。参照图12,计算***30可包括主机31和存储装置300。存储装置300可包括存储器控制器310和非易失性存储器装置330。存储器控制器310可包括FDMA引擎311、HDMA引擎312、***313和缓冲存储器314。为了便于描述,省略了对与上述构造元件相似的构造元件的描述。
与图1的存储器控制器110不同,图12的存储器控制器310可包括缓冲存储器314。缓冲存储器314可执行与参照图1至图11描述的缓冲存储器装置(120、220)相似的功能。缓冲存储器314可被构造为暂时存储从主机31接收到的写入数据、从非易失性存储器装置330读取的读取数据或者存储器控制器310操作时所需的各种信息。缓冲存储器314可为诸如SRAM(静态RAM)、DRAM(动态RAM)、SDRAM(同步DRAM)等的高速随机存取存储器。
缓冲存储器314可被构造为连接至包括在存储器控制器310中的***总线(参照图2)。FDMA引擎311可通过***总线执行FDMA操作。***313可在***总线周围监听,以检测读取的数据或元数据是否被写入缓冲存储器314中,并且可根据检测结果将通知信息提供至HDMA引擎312。HDMA引擎312可关于存储在缓冲存储器314中的数据执行HDMA操作。
存储器控制器310的***313可在***总线周围监听,以检测读取的数据是否被写入缓冲存储器314中,并且可将指示检测结果的通知信息提供至HDMA引擎312。由于HDMA引擎312可响应于通知信息开始HDMA操作或执行HDMA操作而无需关于缓冲存储器314的轮询操作,因此可防止由于轮询操作导致的延迟。因此,提供了具有提高的性能的存储装置。
虽然基于存储装置的读操作描述了上述本发明构思的实施例,但是本发明构思的范围不限于此。在根据主机的写请求的存储装置的写操作中,HDMA引擎可将来自主机的数据写入缓冲存储器装置中。在这种情况下,***可在***总线周围监听,以检测写入数据是否被写入,并且可将指示检测结果的通知信息提供至FDMA引擎。响应于通知信息,FDMA引擎可从缓冲存储器装置中读取待写入的数据,并且可将读取的数据发送至非易失性存储器装置。因为可通过***的监听操作使得FDMA引擎的FDMA操作变得快速,所以可提高关于主机的特定写请求的写入速度。
图13是示出包括根据本发明构思的示例实施例的存储装置的SSD(固态盘)***的框图。参照图13,SSD***1000包括主机1100和SSD 1200。
SSD 1200通过信号连接器1201与主机1100交换信号SIG,并且通过电源连接器1202接收功率PWR。信号SIG可为指示写入数据、读取数据、请求、各种控制信息等的信号。SSD 1200可包括SSD控制器1210、多个闪速存储器(1221至122n)、缓冲存储器1230和辅助电源装置1240。
SSD控制器1210可响应于从主机1100接收的信号SIG控制闪速存储器(1221至122n)。闪速存储器(1221至122n)可在SSD控制器1210的控制下操作。SSD控制器1210可为参照图1至图12描述的存储器控制器(110、210、310)。SSD控制器1210可包括诸如参照图1至图12描述的FDMA引擎(1211_1至1211_n)、HDMA引擎1212或者***1213。FDMA引擎(1211_1至1211_n)可对应于分别连接至所述多个闪速存储器(1221至122n)的多个通道。***1213可被构造为通过在控制器1210内的***总线周围监听,检测读取的数据通过FDMA引擎(1211_1至1211_n)之一被写入缓冲存储器1230中,因此将通知信息(NT)提供至HDMA引擎1212。HDMA引擎1212可响应于通知信息关于读取的数据执行对应的HDMA操作。可将上述本发明构思的实施例应用于包括多通道的SSD***1000。
缓冲存储器1230作为SSD 1200的缓冲存储器操作。例如,缓冲存储器1230可暂时存储从主机1100接收到的数据或者从闪速存储器(1221至122n)接收到的数据,或者可暂时存储闪速存储器(1221至122n)的元数据(例如,映射表)。缓冲存储器1230可暂时存储SSD控制器1210操作时所需的各种信息。
辅助电源装置1240通过电源连接器1202连接至主机1100。辅助电源装置1240可从主机1100接收功率PWR,以为辅助电源装置1240充电。当主机1100的电源不足时,辅助电源装置1240可提供SSD 1200的电源。
根据本发明构思,在存储装置的直接存储器存取(DMA)操作中,可以通过包括在存储器控制器中的***的监听操作检测到读取的数据是否通过闪速直接存储器存取(FDMA)操作被写入缓冲存储器装置中,并且可响应于***的通知信息开始主机直接存储器存取(HDMA)操作。因此,由于可在不用进行关于缓冲存储器装置的分离的轮询操作的情况下开始HDMA操作,因此可防止由轮询操作带来的时延。因此,提供了具有提高的性能的存储器控制器和包括该存储器控制器的存储装置。
上述内容是用于实施本发明构思的特定实施例。本发明构思不仅可包括上述实施例,而且还可包括其中可简单和容易地改变设计的实施例。本发明构思还可包括容易改变以利用实施例实现的技术。因此,本发明构思的范围通过权利要求及其等同物来确定,并且不应受到前述实施例的限制或局限。
Claims (20)
1.一种存储器控制器,包括:
***总线;
第一直接存储器存取引擎,其被构造为通过所述***总线接收第一数据,并且将所述第一数据写入缓冲存储器中;
***,其被构造为通过监听所述***总线来检测所述第一数据是否被完全写入所述缓冲存储器中,并且基于检测结果输出通知信息;以及
第二直接存储器存取引擎,其被构造为响应于来自所述***的通知信息将写入在所述缓冲存储器中的第一数据发送至主机,而不用对所述缓冲存储器执行周期轮询操作。
2.根据权利要求1所述的存储器控制器,其中,所述第一直接存储器存取引擎还被构造为在将所述第一数据写入所述缓冲存储器中之后将对应于所述第一数据的第一元数据写入所述缓冲存储器中。
3.根据权利要求2所述的存储器控制器,其中,所述***被构造为通过检测到被发送至所述缓冲存储器的第一元数据确定所述第一数据被完全写入所述缓冲存储器中,并且基于该确定输出所述通知信息。
4.根据权利要求1所述的存储器控制器,其中,所述第一数据包括多个子数据,并且所述第一直接存储器存取引擎被构造为写入多个元数据,所述多个元数据中的每一个对应于所述缓冲存储器中的所述多个子数据中的每一个。
5.根据权利要求4所述的存储器控制器,其中,所述***被构造为在所述***总线周围监听,从而每当将特定数量的元数据写入所述缓冲存储器中时,输出所述通知信息。
6.根据权利要求5所述的存储器控制器,其中,所述第二直接存储器存取引擎被构造为响应于所述通知信息将所述多个子数据中的第一子数据发送至所述主机,所述第一子数据对应于写入在所述缓冲存储器中的所述多个元数据中的第一元数据。
7.根据权利要求1所述的存储器控制器,其中,所述第二直接存储器存取引擎被构造为响应于所述通知信息将写入在所述缓冲存储器中的第一数据发送至所述主机。
8.根据权利要求1所述的存储器控制器,还包括:
第一接口,其被构造为与非易失性存储器装置通信,并且从所述非易失性存储器装置接收所述第一数据;以及
第二接口,其被构造为与所述主机通信,并且将所述第一数据发送至所述主机,
其中,所述第一直接存储器存取引擎被构造为将通过所述第一接口接收的第一数据写入所述缓冲存储器中,并且
其中,所述第二直接存储器存取引擎被构造为通过所述第二接口将所述第一数据发送至所述主机。
9.根据权利要求1所述的存储器控制器,还包括处理器,其响应于来自所述主机的请求而执行关于所述第一直接存储器存取引擎和所述第二直接存储器存取引擎的初始设置。
10.根据权利要求9所述的存储器控制器,其中,所述第一直接存储器存取引擎被构造为在通过所述处理器进行初始设置之后将所述第一数据写入所述缓冲存储器中,而不用所述处理器介入,并且
其中,所述第二直接存储器存取引擎被构造为在通过所述处理器进行初始设置之后将所述第一数据从所述缓冲存储器发送至所述主机,而不用所述处理器介入。
11.根据权利要求1所述的存储器控制器,还包括缓冲控制器,其被构造为连接至所述***总线并且根据所述第一直接存储器存取引擎和所述第二直接存储器存取引擎的控制来控制所述缓冲存储器。
12.一种存储装置,包括:
非易失性存储器装置;
存储器控制器,其被构造为根据主机的请求将存储在所述非易失性存储器装置中的第一数据发送至所述主机;以及
缓冲存储器装置,其被构造为根据所述存储器控制器的控制暂时存储所述第一数据,
其中,所述存储器控制器包括:
***总线;
第一直接存储器存取引擎,其被构造为将来自所述非易失性存储器装置的第一数据写入所述缓冲存储器装置中,所述第一数据通过所述***总线被发送至所述缓冲存储器装置;
***,其被构造为通过在所述***总线周围监听来输出指示所述第一数据是否被完全存储在所述缓冲存储器装置中的通知信息;以及
第二直接存储器存取引擎,其被构造为响应于来自所述***的通知信息将写入在所述缓冲存储器装置中的第一数据发送至所述主机,而不用对所述缓冲存储器执行周期轮询操作。
13.根据权利要求12所述的存储装置,其中,所述存储器控制器还包括处理器,其被构造为根据所述主机的请求对所述第一直接存储器存取引擎和所述第二直接存储器存取引擎进行初始设置。
14.根据权利要求13所述的存储装置,其中,所述第一直接存储器存取引擎被构造为在通过所述处理器进行初始设置之后将所述第一数据写入所述缓冲存储器装置中,而不用所述处理器介入,并且
其中,所述第二直接存储器存取引擎被构造为在通过所述处理器进行初始设置之后将所述第一数据从所述缓冲存储器装置发送至所述主机,而不用所述处理器介入。
15.根据权利要求12所述的存储装置,其中,所述第二直接存储器存取引擎被构造为响应于所述通知信息将写入在所述缓冲存储器装置中的第一数据发送至所述主机。
16.一种操作存储装置的方法,所述方法包括步骤:
通过***总线从非易失性存储器装置接收第一数据;
通过第一直接存储器存取将所述第一数据写入缓冲存储器中;
通过监听***总线来检测将所述第一数据完全写入所述缓冲存储器的步骤是否完成,并且基于检测结果输出通知信息;以及
响应于通知信息,通过第二直接存储器存取将存储在所述缓冲存储器中的第一数据发送至主机,而不用对所述缓冲存储器执行周期轮询操作。
17.根据权利要求16所述的方法,其中,通过由***在所述***总线周围监听,在完成将所述第一数据写入所述缓冲存储器中的步骤之后立即输出所述通知信息。
18.根据权利要求17所述的方法,其中,从接收到所述通知信息开始无延迟地通过所述第二直接存储器存取执行将所述第一数据发送至所述主机的步骤。
19.根据权利要求18所述的方法,其中,通过所述第二直接存储器存取执行将所述第一数据发送至所述主机的步骤。
20.根据权利要求19所述的方法,其中,所述方法还包括步骤:
在将所述第一数据写入所述缓冲存储器中之后写入对应于所述第一数据的第一元数据;以及
在将所述第一数据发送至所述主机之后将所述第一元数据发送至所述主机。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170030763A KR102392844B1 (ko) | 2017-03-10 | 2017-03-10 | 메모리 컨트롤러 및 그것을 포함하는 저장 장치 |
KR10-2017-0030763 | 2017-03-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108572798A CN108572798A (zh) | 2018-09-25 |
CN108572798B true CN108572798B (zh) | 2023-02-21 |
Family
ID=63445361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810194797.1A Active CN108572798B (zh) | 2017-03-10 | 2018-03-09 | 针对快速数据传输执行监听操作的存储装置及其方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10459854B2 (zh) |
KR (1) | KR102392844B1 (zh) |
CN (1) | CN108572798B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102583266B1 (ko) * | 2018-10-24 | 2023-09-27 | 삼성전자주식회사 | 스토리지 모듈, 스토리지 모듈의 동작 방법, 및 스토리지 모듈을 제어하는 호스트의 동작 방법 |
TWI755739B (zh) * | 2020-05-26 | 2022-02-21 | 慧榮科技股份有限公司 | 記憶體控制器與資料處理方法 |
US11941131B1 (en) * | 2020-12-31 | 2024-03-26 | Meta Platforms Technologies, Llc | Isolation of secrets from an operating system |
US11995351B2 (en) * | 2021-11-01 | 2024-05-28 | Advanced Micro Devices, Inc. | DMA engines configured to perform first portion data transfer commands with a first DMA engine and second portion data transfer commands with second DMA engine |
KR20230082377A (ko) * | 2021-12-01 | 2023-06-08 | 삼성전자주식회사 | 메모리 컨트롤러 및 메모리 시스템 |
US20230236994A1 (en) * | 2022-01-27 | 2023-07-27 | Samsung Electronics Co., Ltd. | Systems, methods, and devices for queue management with a coherent interface |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101124545A (zh) * | 2004-12-21 | 2008-02-13 | 桑迪士克股份有限公司 | 带有流中数据加密/解密和纠错的存储器*** |
CN101673253A (zh) * | 2009-08-21 | 2010-03-17 | 曙光信息产业(北京)有限公司 | 直接存储器访问的实现方法 |
CN101901200A (zh) * | 2010-08-11 | 2010-12-01 | 烽火通信科技股份有限公司 | 一种基于双AHB Master接口的片上DMA控制器实现方法 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5551006A (en) | 1993-09-30 | 1996-08-27 | Intel Corporation | Low cost writethrough cache coherency apparatus and method for computer systems without a cache supporting bus |
US5745732A (en) | 1994-11-15 | 1998-04-28 | Cherukuri; Ravikrishna V. | Computer system including system controller with a write buffer and plural read buffers for decoupled busses |
US6230219B1 (en) | 1997-11-10 | 2001-05-08 | International Business Machines Corporation | High performance multichannel DMA controller for a PCI host bridge with a built-in cache |
US6507920B1 (en) | 1999-07-15 | 2003-01-14 | Teradyne, Inc. | Extending synchronous busses by arbitrary lengths using native bus protocol |
US7237071B2 (en) | 2001-12-20 | 2007-06-26 | Texas Instruments Incorporated | Embedded symmetric multiprocessor system with arbitration control of access to shared resources |
US7003628B1 (en) | 2002-12-27 | 2006-02-21 | Unisys Corporation | Buffered transfer of data blocks between memory and processors independent of the order of allocation of locations in the buffer |
JP2005128963A (ja) * | 2003-10-27 | 2005-05-19 | Toshiba Information Systems (Japan) Corp | 記憶制御装置及びdma転送が可能な制御システム |
US7395375B2 (en) | 2004-11-08 | 2008-07-01 | International Business Machines Corporation | Prefetch miss indicator for cache coherence directory misses on external caches |
US7802026B2 (en) | 2004-11-15 | 2010-09-21 | Marvell International Ltd. | Method and system for processing frames in storage controllers |
US8601283B2 (en) * | 2004-12-21 | 2013-12-03 | Sandisk Technologies Inc. | Method for versatile content control with partitioning |
KR100621631B1 (ko) * | 2005-01-11 | 2006-09-13 | 삼성전자주식회사 | 반도체 디스크 제어 장치 |
US7620748B1 (en) | 2006-04-06 | 2009-11-17 | Bitmicro Networks, Inc. | Hardware assisted non-volatile memory-to-input/output direct memory access (DMA) transfer |
US8266711B2 (en) * | 2006-07-07 | 2012-09-11 | Sandisk Technologies Inc. | Method for controlling information supplied from memory device |
US8869288B2 (en) * | 2007-06-08 | 2014-10-21 | Sandisk Technologies Inc. | Method for using time from a trusted host device |
KR20090087689A (ko) * | 2008-02-13 | 2009-08-18 | 삼성전자주식회사 | 다중 채널 플래시 메모리 시스템 및 그것의 액세스 방법 |
US20100125695A1 (en) * | 2008-11-15 | 2010-05-20 | Nanostar Corporation | Non-volatile memory storage system |
US8341311B1 (en) * | 2008-11-18 | 2012-12-25 | Entorian Technologies, Inc | System and method for reduced latency data transfers from flash memory to host by utilizing concurrent transfers into RAM buffer memory and FIFO host interface |
US8719499B2 (en) | 2009-02-10 | 2014-05-06 | International Business Machines Corporation | Cache-line based notification |
KR101888009B1 (ko) * | 2012-02-28 | 2018-09-07 | 삼성전자주식회사 | 저장 장치 |
JP5962260B2 (ja) * | 2012-06-29 | 2016-08-03 | 富士通株式会社 | ストレージ装置および書込完了通知方法 |
US9697147B2 (en) | 2012-08-06 | 2017-07-04 | Advanced Micro Devices, Inc. | Stacked memory device with metadata management |
US20140219021A1 (en) * | 2013-02-07 | 2014-08-07 | Seagate Technology Llc | Data protection for unexpected power loss |
US20140281164A1 (en) * | 2013-03-14 | 2014-09-18 | Kabushiki Kaisha Toshiba | Memory system and memory controller |
US9971524B1 (en) * | 2013-03-15 | 2018-05-15 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
KR102196971B1 (ko) * | 2014-03-28 | 2020-12-31 | 삼성전자주식회사 | 스토리지 시스템, 그것의 쓰기 방지 수행 방법, 그리고 그것의 쓰기 방지 인증 방법 |
US9984007B2 (en) * | 2014-03-28 | 2018-05-29 | Samsung Electronics Co., Ltd. | Storage system and method for performing and authenticating write-protection thereof |
US9905314B2 (en) * | 2014-10-09 | 2018-02-27 | Sandisk Technologies Llc | Storage module and method for datapath bypass |
KR20180051706A (ko) * | 2016-11-07 | 2018-05-17 | 삼성전자주식회사 | 어드레스 맵핑 테이블의 에러 정정을 수행하는 메모리 시스템 |
US10838896B2 (en) * | 2018-10-15 | 2020-11-17 | Texas Instruments Incorporated | Split direct memory access (DMA) |
-
2017
- 2017-03-10 KR KR1020170030763A patent/KR102392844B1/ko active IP Right Grant
- 2017-12-13 US US15/840,374 patent/US10459854B2/en active Active
-
2018
- 2018-03-09 CN CN201810194797.1A patent/CN108572798B/zh active Active
-
2019
- 2019-10-21 US US16/658,905 patent/US11016912B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101124545A (zh) * | 2004-12-21 | 2008-02-13 | 桑迪士克股份有限公司 | 带有流中数据加密/解密和纠错的存储器*** |
CN101673253A (zh) * | 2009-08-21 | 2010-03-17 | 曙光信息产业(北京)有限公司 | 直接存储器访问的实现方法 |
CN101901200A (zh) * | 2010-08-11 | 2010-12-01 | 烽火通信科技股份有限公司 | 一种基于双AHB Master接口的片上DMA控制器实现方法 |
Also Published As
Publication number | Publication date |
---|---|
US10459854B2 (en) | 2019-10-29 |
KR20180104249A (ko) | 2018-09-20 |
US20200050559A1 (en) | 2020-02-13 |
US20180260343A1 (en) | 2018-09-13 |
CN108572798A (zh) | 2018-09-25 |
KR102392844B1 (ko) | 2022-05-03 |
US11016912B2 (en) | 2021-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108572798B (zh) | 针对快速数据传输执行监听操作的存储装置及其方法 | |
US10891236B2 (en) | Data storage device and operating method thereof | |
US8904095B2 (en) | Data storage device and operating method thereof | |
US20180130537A1 (en) | Data storage device and operating method thereof | |
US20200218653A1 (en) | Controller, data storage device, and operating method thereof | |
TWI754050B (zh) | 微控制器、具有該微控制器的記憶系統及其操作方法 | |
US10698819B2 (en) | Memory system and operating method thereof | |
US20190220220A1 (en) | Data storage device, operating method thereof and nonvolatile memory device | |
US20180239557A1 (en) | Nonvolatile memory device, data storage device including the same, and operating method of data storage device | |
US10546618B2 (en) | Nonvolatile memory device, data storage device including the same and operating method thereof | |
US9785584B2 (en) | Data storage device and method thereof | |
KR20200114052A (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
US10871915B2 (en) | Data processing system and operating method thereof | |
US10754768B2 (en) | Memory system using descriptor lookup tables to access setting information for a non-volatile memory, and an operating method thereof | |
US11748025B2 (en) | Nonvolatile memory device, data storage device including the same and operating method thereof | |
US10719382B2 (en) | Collecting state records of cores in a data storage device | |
KR20200114086A (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
KR20190099879A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
KR102645786B1 (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
US11366736B2 (en) | Memory system using SRAM with flag information to identify unmapped addresses | |
US20190179749A1 (en) | Memory system, operating method thereof and nonvolatile memory device | |
KR102695482B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR102653852B1 (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
EP4386556A1 (en) | Operation method of memory controller configured to control memory device | |
US10628322B2 (en) | Memory system and operating method thereof |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |