操作计算系统的方法以及操作计算系统中的存储器控制器的方法与流程

文档序号:14036395阅读:130来源:国知局
相关申请的交叉引用本申请要求于2016年9月20日提交的韩国专利申请no.10-2016-0119990的优先权,该申请的全部内容以引用方式并入本文中。本发明构思的实施例涉及操作存储器控制器的方法,并且更具体地涉及使用存储装置缓冲器和非易失性存储器之间的存储器地址映射将数据编写(programming)(或写入)到非易失性存储器中的方法。
背景技术
::存储器通常包括易失性存储器和非易失性存储器。当外部电压的供应停止时,存储在易失性存储器中的数据丢失,而非易失性存储器具有即使外部电压的供应停止也会保留存储在非易失性存储器中的数据的优点。在计算系统中,使用易失性存储器来处理需要高速处理的数据,但是当需要保留数据时,将数据存储在非易失性存储器中。用于在主机中处理数据的单位不同于用于在非易失性存储器中存储数据的单位,并因此,当与在非易失性存储器装置中处理的数据相比尺寸较小的数据被存储在非易失性存储器中时,比在主机中所必要的更频繁地发生多个写入请求。因此,存在使用主机的处理器来处理大量指令的负担,并且非易失性存储器可能由于耗尽而具有寿命缩短的问题。技术实现要素:在一个实施例中,本发明的构思提供一种操作存储装置中的存储器控制器的方法,其中所述存储器控制器包括存储器处理器和缓冲器。所述方法包括:在所述存储器处理器的控制下,按顺序地从主机接收第一数据段,其中每一个第一数据段具有第一尺寸;在所述缓冲器中按顺序地存储所接收到的第一数据段,直到所接收的第一数据段的累积尺寸达到第二尺寸;以及将具有第二尺寸且包括所存储的第一数据段的第二数据段编写在非易失性存储器中。在另一实施例中,本发明的构思提供一种操作计算系统的方法,计算系统包括主机和存储装置,存储装置包括包含缓冲器的存储器控制器和非易失性存储器。所述方法包括:按顺序地将第一数据段从所述主机传送到所述存储装置,其中每一个第一数据段具有第一尺寸;以及在所述缓冲器中按顺序地且暂时地存储所述第一数据段,直到所存储的第一数据段的累积尺寸等于或超过第二尺寸,其中所述第一尺寸对应于针对所述存储装置从所述主机接收到的数据的处理单位,或者针对在将所述第一数据段传送到所述存储装置之前由主机暂时存储的数据的处理单位,并且所述第二尺寸是针对由所述存储器控制器处理的数据的处理单位,或针对在所述非易失性存储器中编写的数据的处理单位。在另一实施例中,本发明的构思提供一种操作计算系统的方法,计算系统包括主机和存储装置,存储装置包括包含缓冲器的存储器控制器和非易失性存储器(nvm)。所述方法包括:在所述主机中生成待被编写到所述nvm的程序数据;如果所述程序数据的尺寸至少等于第二尺寸,则使用由所述主机提供的装置驱动器执行数据块输出操作,以将所述程序数据的数据块传送到所述存储装置,并且之后将所述数据块编写到所述nvm中;如果所述程序数据的尺寸比第二尺寸小,则按顺序地将第一数据段从主机传送到存储装置,其中每一个第一数据段具有小于第二尺寸的第一尺寸;以及在所述缓冲器中按顺序地且暂时地存储所述第一数据段,直到所存储的第一数据段的累积尺寸等于或超过第二尺寸,其中所述第一尺寸对应于针对由所述存储装置从所述主机接收到的数据的处理单位,或者针对在将所述第一数据段传送到所述存储装置之前由主机暂时存储的数据的处理单位,并且所述第二尺寸是针对在所述非易失性存储器中编写的数据的处理单位。附图说明图1是根据本发明构思的实施例的计算系统的框图;图2是进一步示出图1所示的存储器控制器的一个示例的框图;图3是进一步示出图1和图2所示的存储器接口和主机接口的一个示例的框图;图4示出了根据本发明构思的实施例的缓冲器地址-非易失性存储器地址映射表;图5是示出根据本发明构思的示例性实施例的在非易失性存储器的存储器空间中编写第一数据段的过程的概念图;以及图6是根据本发明构思的示例性实施例的概括主机在非易失性存储器中编写数据的方法的流程图。具体实施方式图1是根据本发明构思的示例性实施例的计算系统100的框图。参照图1,计算系统100通常可包括通过存储总线160连接的主机120和存储装置140。计算系统100可以是服务器-客户机系统(server-clientsystem)、个人计算机(pc)或移动计算装置,如移动电话、平板电脑、物联网(iot)装置或万联网(ioe)装置。图1所示的主机120包括通过主机总线250相互连接的主机处理器210、主机存储器220、输入/输出(i/o)接口230和存储器接口240。在本发明构思的某些实施例中,主机120可按照存储器映射的输入/输出(i/o)方法操作。例如,此后被假设为示意性示例的存储器映射i/o方法可以将与构成的i/o接口230相关联的地址空间和/或主机存储器220的地址空间作为单个存储空间来进行操纵(例如,写入、读取、指定、分配、解除分配、分派、配置和/或安排存储空间),而不考虑物理上的设置或分离。因此,主机120可以将与i/o接口230相关联的(多个)存储器资源(可能包括一个或多个存储器寄存器)识别为整个存储器的完整的部分,并可因此对与整个存储器地址空间内的特定数据相对应的地址进行分配/解除分配。此处,术语“整个存储器”可指包含在主机120中的可访问的存储器资源,但是具体地排除在存储装置140中所包含的存储器资源。术语“整个存储器地址空间”可指与整个存储器对应的地址空间,并且具体地至少包括用于访问主机存储器220的地址空间以及用于访问i/o接口230的地址空间。如上所述,主机120通过存储总线160连接到存储装置140,其中例如,存储总线160可以是外围组件互连(pci)总线。主机处理器210通常可控制主机120的操作。例如,主机处理器210可控制主机存储器220、i/o接口230、存储器接口240和/或主机总线250的操作和/或它们之间的互操作。主机处理器210可利用存储器控制器300将第一数据段(例如,“di”,其中‘i’是自然数)编写到非易失性存储器(nvm)400。在此上下文中,“数据段”可以指一组数据位。主机处理器210可将第一数据段di中的每一个按顺序地传送到存储装置140。假设第一数据段di中的每一个具有第一尺寸。这里,术语“第一尺寸”可以指响应于主机指令所处理的(例如,暂时存储的)数据的基本(或最小)单位尺寸(例如,主机的“处理单位”尺寸,其与“将数据段传送到存储装置140”以及“在主机中进行内部处理”中的至少一个相关)。例如,主机120可响应于对主机指令进行的处理,将具有第一尺寸的数据暂时存储在整个存储器和/或外部存储器(诸如nvm400)中的某处。在本发明构思的某些实施例中,第一尺寸可以是64字节,但本领域技术人员将认识到第一尺寸的任何合理的定义可用于本发明构思的实施例中。鉴于对术语“第一尺寸”的这种理解,主机处理器210可确定是否将具有不同于(即,大于)第一尺寸的“第二尺寸”的数据编写在外部存储器资源(诸如nvm400)中。可替代地或者额外地,主机处理器210可确定是否利用包括在主机120中的装置驱动器来将第一数据段di中的每一个编写在nvm400中。在本发明构思的某些实施例中,第二尺寸是指与存储装置的存储器处理器的数据处理相关联的、或者与nvm400中的数据的编写相关联的基本(或最小)单位。第二尺寸可以是,例如,512字节或4千字节。也就是说,第二尺寸可以按照计算系统的数据处理和/或数据存储要求而被不同地定义。就这一点而言,主机处理器210可将具有第一尺寸的第一数据段di中的一个或多个传送到存储装置140,从而降低对存储总线160的要求,按照惯例会要求存储总线160将第二尺寸的数据块编写到nvm400。也就是说,根据本发明构思的某些实施例的主机处理器210可通过存储器接口240将一个或多个第一数据段di传送到存储装置140。按照这种方式,主机处理器210无需使用通常在主机120和存储装置140之间控制数据传送的装置驱动器,就可传送第一数据段di。也就是说,主机处理器210可分配与由存储器控制器300可访问的缓冲器(例如,图2所示的缓冲器340)有关的整个存储器地址空间(即,可由主机处理器210访问的存储器地址空间)的一部分。例如,可利用整个存储器地址空间的所分配的部分,将一个或多个第一数据段di暂时存储在与存储器控制器300相关联的缓冲器中。回到图1,主机存储器220可存储主机120的操作所需要的数据,诸如暂时存储处理主机指令所需要的数据。例如,主机存储器220在主机处理器210的控制下,可接收具有第一尺寸的数据。响应于主机处理器210做出的各种i/o请求,i/o接口230可用于控制各种i/o装置(例如,键盘、鼠标和/或显示装置)的操作。存储器接口240可用于改变(或转换)传送到存储器控制器300的第一数据段di的格式,以使第一数据段di的格式将被存储器控制器300识别,并可进行处理。就这一点而言,存储器接口240可在第一数据段di通过存储总线160提供到存储器控制器300之前,转换第一数据段di的格式。此外,存储器接口240可接收从存储器控制器300传送的数据,并按需要改变数据的格式。因此,本发明构思的某些实施例可包括存储器接口240,其具有用于传送和接收数据的完整的收发器。存储器接口240可实现为提供一个或多个数据接口,诸如,例如sata接口、satae接口、sas接口和pcie接口。例如,主机总线250可以实现为高级微控制器总线架构(amba)、高级高性能总线(ahb)、高级外围总线(apb)、高级可扩展接口(axi)、高级系统总线(asb),或者它们的结合。如上所述,存储装置140可配置为接收和存储由主机120传送的第一数据段di。存储装置140可按照缓冲器地址到nvm存储器地址映射表(此后称为“缓冲器到nvm映射表”(buffer-to-nvmmappingtable))来存储数据,在该映射表中,与包括在存储器控制器300中的缓冲器340相关联的缓冲器地址以一一对应的关系分别映射至与nvm400相关联的存储器地址。存储装置140可在初始化操作期间从主机120接收缓冲器到nvm映射表。此外,因为缓冲器到nvm映射表需要更新,存储装置140可从主机120接收这些更新。在本发明构思的某些实施例中,当存储装置连接到主机时,计算系统初始化或者存储装置初始化过程可包括从数据存储装置到主机的特定初始化信息的传送,其中初始化信息包括缓冲器到nvm映射表的最后已知的、有效的状态。此后,响应于主机指令,缓冲器到nvm映射表可在主机和存储装置中的至少一个中更新。存储装置140可以各种形式实现,例如,作为固态驱动器(ssd)、通用闪存(ufs)、多媒体卡(mmc)、嵌入式mmc(emmc)、或完美页面新(ppn)nand。如图1所示,存储装置140包括存储器控制器300、nvm400,以及存储缓冲器410。存储器控制器300可通常用于控制存储装置140的操作。存储器控制器300可从nvm400读取数据,并通过存储总线160将作为结果的读取的数据传送给主机120。可替代地或额外地,存储器控制器300可通过存储缓冲器410将从主机120接收到的数据编写在nvm400中。存储器控制器300可暂时地并递增地将从主机120接收到的第一数据段di存储在包含在存储器控制器300内的缓冲器(例如,图2所示的缓冲器340)中。一旦暂时存储在缓冲器340中的所接收的数据(例如,第一数据段di序列)的总(或累积)尺寸达到第二尺寸,在缓冲器340中累积存储的数据可在存储器控制器300的控制下编写到nvm400。在上述配置中,存储装置140参考缓冲器到nvm地址映射表,可确定特定缓冲器地址和对应的nvm存储器地址之间的地址映射关系。因此,主机120可将数据传送到与nvm存储器地址具有一一对应关系的缓冲器地址,以将数据编写在nvm400的特定存储器地址中。nvm400可以各种形式配置为存储从主机120接收到的数据。例如,nvm400可包括多个nand闪速存储器。nvm400可配置为三维(3d)存储器单元阵列,其是单片地形成在存储器单元阵列的一个或多个物理级中,所述存储器单元阵列具有布置在硅衬底之上的有源区和与那些存储器单元的操作相关联的电路,无论这样的相关联的电路位于这样的衬底之上还是之内。这里,术语“单片”意味着阵列的每一级的各层都是直接沉积在阵列的每一下级的各层上。在本发明构思的某些实施例中,3d存储器单元阵列包括垂直的nand串,其是垂直取向的,以使至少一个存储器单元位于另一存储器单元之上。至少一个存储器单元可包括电荷陷阱层。存储缓冲器410可用于作为存储装置的缓存(cache)(或缓存缓冲器),以暂时存储稍后要被存储在nvm400中的接收到的数据、或从nvm400读取的数据。存储缓冲器410可使用易失性存储器实现,诸如静态随机存取存储器(sram)或动态随机存取存储器(dram)。为方便下面详细描述,假设存储缓冲器410设置在存储器控制器300的外部(或与存储器控制器300分离)。然而,在本发明构思的某些实施例的情况下不必是这样的。也就是说,存储缓冲器410可提供在存储器控制器300的内部。图2是进一步示出了图1的存储器控制器300的一个示例的框图。共同参照图1和图2,存储器控制器300可包括存储器处理器310、主机接口320、缓冲器控制器330、缓冲器340、缓冲器控制电路350、存储缓冲器控制器360及nvm控制器370。存储器处理器310通常可用于控制存储器控制器300的操作。例如,存储器处理器310可控制主机接口320、缓冲器340、缓冲器控制电路350、存储缓冲器控制器360和/或nvm控制器370的操作和/或它们之间的互操作。存储器处理器310可从缓冲器控制电路350接收存储信息si,存储信息si指示是否将从主机120接收到的第一数据段di编写在nvm400中。例如,存储信息si可指示通过对接收到的第一数据段di的数目进行计数而得到的计数值,或以其它方式监测存储在缓冲器340中的所接收到的数据的累计尺寸。也就是说,存储信息si可以是以各种方式指示是否将累积地接收到的第一数据段di编写在nvm400中的信息(或数据)。就这一点而言,存储器处理器310可用于基于存储信息si来确定是否将累积地接收到的、暂时存储在缓冲器340中的第一数据段di编写在nvm400中。当确定编写累积地接收到的第一数据段di时,存储器处理器310可将相应的缓冲器指示信号bis传送到缓冲器控制电路350。按照这种方式,存储器处理器310可利用例如存储缓冲器控制器360和存储缓冲器410使第二数据段data2被编写在nvm400中。此处,第二数据段data2(至少包括累积地接收到的第一数据段di)可以具有第二尺寸。换句话说,存储器处理器310可在存储缓冲器410中累积(例如,以递增的方式暂时存储)第二数据段data2之后,将第二数据段data2编写在nvm400中。或者,可利用nvm控制器370将第二数据段data2编写在nvm400中,而无需在存储缓冲器410中存储第二数据段。主机接口320可用于改变要被传送到主机120的数据的格式,以使数据的格式可被主机120识别并利用。然后主机接口320可用于将具有改变后的格式的数据通过存储总线160传送到主机120。另外,主机接口320可接收从主机120传送的第一数据段di,改变所接收到的第一数据段di的格式,并在缓冲器340中暂时存储具有改变后的格式的第一数据段di。根据示例实施例,主机接口320可包括收发机,用于传送和接收数据。因此,主机接口320可实现为例如一个或多个sata接口、satae接口、sas接口和/或pcie接口。缓冲器控制器330可在存储器处理器310的全面控制下用于控制缓冲器340的操作。从主机120接收到的第一数据段di可在缓冲器控制器330的控制下按顺序地存储在缓冲器340中。缓冲器340可暂时存储每一个均具有第一尺寸的第一数据段di。第一数据段di可按顺序地存储在缓冲器340中。将参照图3更详细地描述缓冲器340的一个示例。缓冲器控制电路350可将存储信息si传送到存储器处理器310,存储信息si指示是否将从主机120接收到的第一数据段di编写在nvm400中。缓冲器控制电路350可根据从存储器处理器310传送的缓冲器指示信号bis将存储在缓冲器340中并具有第二尺寸的第二数据段data2编写在nvm400中。例如,第二数据段data2可包括第一数据段di中的至少一个。虽然为清楚地描述而在图2中分别示出了缓冲器控制器330和缓冲器控制电路350,但是在本发明构思的不同实施例中这些元件可在单个电路或集成电路中实现。存储缓冲器控制器360在存储器处理器310的全面控制下,可用于在存储缓冲器410中写入数据或从存储缓冲器410中读取数据。由存储缓冲器控制器360处理的数据可以传送到nvm控制器370或主机接口320。nvm控制器370在存储器处理器310的全面控制下,可用于控制nvm400。根据nvm控制器370的控制,存储在nvm400中的数据可被读取或者数据可被写入到nvm400。图3是进一步示出了一个实施例中的图1和图2的存储器接口240和主机接口320之间的操作关系的框图。参照图1、图2和图3,存储器接口240可包括第一输出选择器242、第一接口244和第二接口246。第一输出选择器242可用于在第一路径path1和第二路径path2之中进行选择。也就是说,第一输出选择器242可选择是通过第一接口244和第二接口246,还是通过第二接口246来传送第一数据段di。此处,第一输出选择器242可例如在主机处理器210的控制下进行操作。当第一输出选择器242选择第一路径path1时,可利用第一接口244和第二接口246依次转换第一数据段di的格式。或者,当第一输出选择器242选择第二路径path2时,第一数据段di的格式不会通过第一接口244改变,而是可仅通过第二接口246被处理。因此,第一接口244可转换(或变换)从第一输出选择器242接收到的第一数据段di的格式,以使第一数据段的作为结果的格式与存储装置140兼容。例如,第一接口244可实现为nvme协议。第二接口246可进一步处理重格式化的第一数据段di,以使作为结果的第一数据段di与存储总线160的要求兼容。因此,第二接口244可实现为例如pcie接口。如图3的示例所示,主机接口320可包括第三接口322、第二输出选择器324和第四接口326。第三接口322可对从主机120接收到的第一数据段di执行第二接口246所执行的变换的逆变换。因此,第二接口246和第三接口322可以是相同类型的接口。第二输出选择器324可选择第三路径path3和第四路径path4中之一。也就是说,第二输出选择器324可选择是否将通过第三接口322转换格式的第一数据段di传送到第四接口326。第二输出选择器326可根据存储器处理器310的控制而进行操作;然而,并不限于此。第二输出选择器324的操作可与第一输出选择器242的操作配对。也就是说,当第一输出选择器242选择第一路径path1时,第二输出选择器324选择第三路径path3,并且当第一输出选择器242选择第二路径path2时,第二输出选择器324选择第四路径path4。第四接口326可对从第二输出选择器324接收到的第一数据段di执行第一接口244所执行的变换的逆变换。因此,第一接口244和第四接口326可以是相同类型的接口。主机120可通过第二路径path2和第四路径path4将每一个具有第一尺寸的第一数据段di传送到存储器控制器300。此时,主机120可将第一数据段di传送到存储器控制器300,而无需利用第一接口244执行格式转换。因此,所接收到的第一数据段di可存储在缓冲器340中,而无需利用第四接口326执行格式逆变换。主机处理器210不执行利用第一接口244的格式转换,并因此能减少要通过主机处理器210执行的指令的数目。此处应该注意:主机可利用一个或多个不同的接口给将数据编写到nvm400的某些方法提供某种形式的错误检测和/或纠正(以下一般地称为“错误检测”)。例如,在定义的特定数据格式转换期间,一个或多个错误检测位(例如,一个或多个检验位)可添加到每一个第一数据段。此后,当第二数据段编写在nvm400中时,存储器控制器300可运行错误检测程序,以判定包含在第二数据段内的各个第一数据段的准确性。图4是进一步示出了一个示例中的可用于本发明构思的某些实施例中的缓冲器到nvm地址映射表312的概念示意图。参照图4,缓冲器到nvm地址映射表312可包括:与缓冲器340相关联的缓冲器地址数据结构(此后称为“缓冲器地址ban”),例如ban,其中‘n’是(例如)从1到8的范围内的自然数;以及与nvm400相关联的存储器地址数据结构(此后称为“存储器地址man”),例如,man,其中存储器地址中的各个元素具有与缓冲器地址元素ban一一对应(或者映射)的关系。在缓冲器地址ban中每一个元素(例如,存储器位置或空间)的规定尺寸可以与在存储器地址ma中每一个元素的规定尺寸相同。此外,完整的缓冲器地址ban的累积尺寸和/或完整的存储器地址man的累积尺寸可以与第二尺寸相同。为了描述方便,仅描述了八(8)个缓冲器地址元素ba1至ba8和八个相应的存储器地址元素ma1至ma8,但是本发明构思不限于该示例。也就是说,通过缓冲器到nvm地址映射表312所考虑的元素(例如,地址位置)的数目可以根据(例如)缓冲器340的尺寸、nvm400的尺寸和/或结构、所要求的第一尺寸、所要求的第二尺寸等而不同。缓冲器到nvm地址映射表312可存储在存储器处理器310中。当存储信息si指示第一数据段di将编写在nvm400中时,存储器处理器310可参照缓冲器到nvm地址映射表312将数据(例如,第二数据段data2)编写在nvm400中。因此,当存储在对应于特定缓冲器地址ban元素(例如,ba1)的存储器空间中的具有第二尺寸的第二数据段data2编写在nvm400中时,存储器处理器310可参照缓冲器到nvm地址映射表312将第二数据段data2编写在由对应的存储器地址man元素(例如,ma1)所限定的存储器空间中。多个子缓冲器地址ba1-1至ba1-8中的每一个可表示第一数据段di可暂时存储在其中的存储器空间中的地址。因此,多个子缓冲器地址ba1-1至ba1-8中的每一个的尺寸可以与第一数据段di(例如,第一尺寸)相同。为了描述方便,图4中示出了八(8)个子缓冲器地址ba1-1至ba1-8。然而,本发明的构思不限于此。也就是说,存储在缓冲器地址-非易失性存储器地址映射表312中的缓冲器地址ba1至ba8中的每一个可包括八个子缓冲器地址,但是包括在缓冲器地址ba1至ba8中的每一个中的子缓冲器地址的尺寸和/或数目可根据计算系统100进行各种改变。图5是进一步示出了根据本发明构思的实施例的在一个示例中的可将数据段编写在nvm400中所采用的步骤或方法的概念示意图。参照图1、图2、图3、图4和图5,主机120可将每一个具有第一尺寸s1的各个数据段(例如,d1至d8)编写在nvm400中。此处,假设各个数据段d1至d8按顺序地存储在包括在存储装置140中的缓冲器340中。在图5示出的示例的环境中,主机120可将数据段d1存储在对应于缓冲器340的第一子缓冲器地址ba1-1的存储器空间中,并且然后将数据段d2存储在对应于缓冲器340的第二子缓冲器地址ba1-2的存储器空间中。主机120可将数据段d3至d8中的每一个存储在对应于子缓冲器地址ba1-3至ba1-8中的每一个的每一个存储器空间中。当包括按顺序地存储在缓冲器340中的数据段d1至d8的数据的累积尺寸等于第二尺寸s2时,存储器处理器310可将数据段d1至d8全体编写在nvm400中,作为第二数据段data2。也就是说,存储器处理器310可参照存储在存储器处理器310中的缓冲器到nvm地址映射表312,确定在nvm400的存储器空间当中的将在其中存储第二数据段data2的存储器空间中的位置。在此环境中并参照图4和图5,缓冲器地址的第一元素ba1被一对一地映射到存储器地址的第一元素ma1上。因此,存储在缓冲器340的对应于缓冲器地址的第一元素ba1的存储器空间中的数据段d1至d8可编写在nvm400的对应于存储器地址的第一元素ma1的存储器空间中。与缓冲器地址的元素ban相关联的存储器空间和与存储器地址的元素man相关联的存储器空间可具有相同的尺寸(例如,第二尺寸s2)。因此,存储器处理器310可参照缓冲器到nvm地址映射表312,容易地将存储在对应于缓冲器340的缓冲器地址ba1的存储器空间中的数据段d1至d8编写在nvw400的存储器空间当中的对应于存储器地址ma1的存储空间中。图6是概括根据本发明构思的实施例的方法的流程图,根据该方法主机可高效地将数据编写在非易失性存储器中。参照图1、图2、图3、图4、图5和图6,假设存储器控制器300从主机120顺序地接收一组第一数据段d1至d8(s610),其中还假设第一数据段d1至d8中的每一个具有第一尺寸s1。作为回应,存储器控制器300可在缓冲器340中按顺序地以及暂时地存储所接收到的第一数据段d1至d8(s620)。当存储信息si指示第一数据段d1至d8应全体地编写在nvm400中时,存储器控制器300可将具有第二尺寸s2的第二数据段data2编写在nvm400的存储器空间中。例如,当存储在缓冲器340中的数据当中的第一数据段d1至d8的累积尺寸达到第二尺寸s2(s630=是)时,对应于第二尺寸s2的第一数据段d1至d8的累积组可在nvm400的存储器空间中被编写为第二数据段data2(s640)。另一方面,只要所接收到的第一数据段的累积尺寸保持小于第二尺寸(s630=否),就重复步骤s610至s630,直到所接收到的第一数据段的累积尺寸达到第二尺寸s2。在某些与本发明构思的实施例相一致的某些计算系统中,可能希望提供一种传统的功能,其中,在所述主机中常规地提供的装置驱动器能够执行块i/o操作(blocki/ooperation)。当程序数据的数据块至少与上述第二尺寸一样大时,可以执行该块i/o操作。因此,在操作包括如上示出的主机和存储装置的计算系统的某些方法中,方法可以在主机中产生要被编写到nvm的程序数据。如果程序数据的尺寸至少等于第二尺寸,则可以使用由主机提供的装置驱动器来执行数据块i/o(或输出)操作,以将程序数据的数据块传输到存储装置中。此后,可以在nvm中进行数据块的编写。然而,如果程序数据具有比第二尺寸更小的尺寸,则前述实施例中的一个可以用于顺序地将第一数据段从主机传送到存储装置,其中每一个第一数据段具有比第二尺寸更小的第一尺寸。此后,第一数据段可以被顺序地和暂时地存储在缓冲器中,直到所存储的第一数据段的累积尺寸等于或超过第二尺寸。根据本发明构思的实施例的计算系统减少了将数据编写(或写入)在连接到主机的非易失性存储器中所需的指令的数量,从而减少了必须由主机进行处理的指令的数量。此外,这样的计算系统减少了对非易失性存储器的编写事件的数量,从而增加了在非易失性存储器中的存储器单元的有效使用寿命。此外,这样的计算系统仅需要将需要改变的数据发送到非易失性存储器,从而增加了主机接口的效率。尽管总的发明构思的几个实施例已被示出和描述,但是本领域的技术人员可以理解,在不脱离由所附权利要求和其等价物限定的本发明构思的范围的情况下,可对这些实施例做出改变。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1