首页> 中国专利> 信息处理设备、用于控制信息处理设备的方法、存储控制工具的非临时记录介质、主机装置、存储性能评估工具的非临时记录介质、以及用于外部存储装置的性能评估方法

信息处理设备、用于控制信息处理设备的方法、存储控制工具的非临时记录介质、主机装置、存储性能评估工具的非临时记录介质、以及用于外部存储装置的性能评估方法

摘要

根据实施例,非易失性存储装置被配置为存储正常操作系统、紧急软件和启动载入器。当启动信息处理设备时,主机装置能够使用所述启动载入器启动所述正常操作系统。所述主机装置被配置为将从所述非易失性存储装置获取的统计信息与阈值进行比较,并且当所述统计信息已经超过所述阈值时,重写所述启动载入器以便在启动所述信息处理设备时启动所述紧急软件。

著录项

  • 公开/公告号CN103890724A

    专利类型发明专利

  • 公开/公告日2014-06-25

    原文格式PDF

  • 申请/专利权人 株式会社东芝;

    申请/专利号CN201280051269.1

  • 发明设计人 桥本大辅;

    申请日2012-08-09

  • 分类号G06F9/445(20060101);G06F11/34(20060101);

  • 代理机构11247 北京市中咨律师事务所;

  • 代理人杨晓光;于静

  • 地址 日本东京都

  • 入库时间 2023-12-17 00:40:32

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-02-15

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F 9/445 专利号:ZL2012800512691 变更事项:专利权人 变更前:日商潘杰亚股份有限公司 变更后:东芝存储器株式会社 变更事项:地址 变更前:日本东京都 变更后:日本东京都

    专利权人的姓名或者名称、地址的变更

  • 2017-09-12

    专利权的转移 IPC(主分类):G06F9/445 登记生效日:20170823 变更前: 变更后: 申请日:20120809

    专利申请权、专利权的转移

  • 2017-04-19

    授权

    授权

  • 2014-07-16

    实质审查的生效 IPC(主分类):G06F9/445 申请日:20120809

    实质审查的生效

  • 2014-06-25

    公开

    公开

说明书

相关申请的交叉引用

本申请基于2011年8月29日提交的编号为2011-186542的日本专利 申请并要求该申请的优先权益;该申请的全部内容通过引用的方式并入于 此。本申请还基于2011年8月19日提交的编号为2011-179890的在先日 本专利申请并要求该申请的优先权益;该申请的全部内容通过引用的方式 并入于此。

技术领域

本发明实施例一般地涉及信息处理设备、用于控制信息处理设备的方 法、存储控制工具的非临时记录介质、主机装置、存储性能评估工具的非 临时记录介质、以及用于外部存储装置的性能评估方法。

背景技术

随着外部存储装置在计算机系统中的使用,上面安装有诸如NAND型 闪存之类的非易失性半导体存储器的SSD(固态驱动器)受到了关注。与 磁盘装置相比,闪存具有诸如高速、重量轻的优点。SSD中包括多个闪存 芯片、根据来自主机设备的请求执行每个闪存芯片的读/写控制的控制器、 用于执行每个闪存芯片与主机设备之间数据传输的缓冲存储器、电源电路、 至主机设备的连接接口等。

附图说明

图1是示出第一实施例中的计算机系统的功能配置实例的框图。

图2是示出在SSD中存储控制工具的情况下,计算机系统的功能配置 实例的框图。

图3是示出在另一外部存储装置中存储控制工具的情况下,计算机系 统的功能配置实例的框图。

图4是示出在ROM中存储控制工具的情况下,计算机系统的功能配 置实例的框图。

图5是示出在ROM中存储控制工具并且不将控制工具载入到主存储 器内的情况下,计算机系统的功能配置实例的框图。

图6是示出在从网络(WEB)安装控制工具的情况下,计算机系统的 功能配置实例的框图。

图7是示出在从光驱安装控制工具的情况下,计算机系统的功能配置 实例的框图。

图8是示出在从USB存储器安装控制工具的情况下,计算机系统的功 能配置实例的框图。

图9是示出在SSD中存储正常OS和紧急OS的情况下,计算机系统 的功能配置实例的框图。

图10是示出在SSD中存储正常OS和紧急OS并且在ROM中存储控 制工具的情况下,计算机系统的功能配置实例的框图。

图11是示出在ROM中存储正常BIOS、紧急BIOS和控制工具的情 况下,计算机系统的功能配置实例的框图。

图12是示出在可靠性下降的SAD以外的非易失性存储装置中存储正 常OS和紧急OS的情况下,计算机系统的功能配置实例的框图。

图13是示出在从网络上的存储介质安装紧急OS的情况下,计算机系 统的功能配置实例的框图。

图14是示出在从光驱安装紧急OS的情况下,计算机系统的功能配置 实例的框图。

图15是示出在从USB存储器安装紧急OS的情况下,计算机系统的 功能配置实例的框图。

图16是示出主机的分层功能配置实例的框图。

图17是示出计算机系统的外观配置的图。

图18是示出计算机系统的另一外观配置的图。

图19是示出NAND存储器芯片的内部配置实例的框图。

图20是示出包括在NAND存储器芯片内的一个平面的配置实例的电 路图。

图21是示出4值数据存储系统中的阈值分布的图。

图22是示出SSD的内部配置实例的功能框图。

图23是示出SSD中的管理信息的图。

图24是示出SSD中LBA与管理单元之间的关系的图。

图25是示出从LBA指定物理地址的过程的流程图。

图26是示出SSD的读取操作实例的流程图。

图27是示出SSD的读取操作实例的流程图。

图28是示出SSD的写入操作实例的流程图。

图29是示出SSD的写入操作实例的流程图。

图30是示出整理SSD的NAND存储器(NAND垃圾收集)的操作实 例的流程图。

图31是示出当接收到删除通知时,SSD的操作实例的流程图。

图32是示出当发生错误时,SSD的操作实例的流程图。

图33是示出控制工具的操作过程的流程图。

图34是示出统计信息X01到X19、X23和X24的管理表实例的图。

图35是示出统计信息的原始值与SSD的FR之间的关系的图形。

图36是示出控制工具的另一操作实例的流程图。

图37是示出控制工具的另一操作实例的流程图。

图38是示出控制工具的寿命到期处理的流程图。

图39是示出控制工具的另一寿命到期处理的流程图。

图40是示出控制工具的另一寿命到期处理的流程图。

图41是示出在启动计算机系统时,操作过程的流程图。

图42是示出为紧急OS提供备份功能的情况下,主机的配置的图。

图43是示出启动计算机系统时,包括备份操作的操作过程的流程图。

图44是示出NAND存储器的存储内容和文件管理表的存储内容的图。

图45是示出在USB存储装置被用作备份存储装置的情况下,计算机 系统的功能配置实例的图。

图46是示出在光存储介质被用作备份存储装置的情况下,计算机系统 的功能配置实例的图。

图47是示出在存储服务器被用作备份存储装置的情况下,计算机系统 的功能配置实例的图。

图48是示出当生成紧急启动盘时,数据移动概念的图。

图49是示出当生成紧急启动盘时,操作过程的流程图。

图50是示出当生成包括紧急工具的紧急启动盘时,数据移动概念的 图。

图51是示出当生成包括紧急工具的紧急启动盘时,操作过程的流程 图。

图52是示出引导用户执行备份处理的屏幕实例的图。

图53是示出控制工具的另一操作过程的流程图。

图54是示出在启动计算机系统时,另一操作过程的流程图。

图55是示出关于统计信息的时间序列数据实例的图。

图56是示出统计信息的时间变化的图。

图57是概念性地示出基于统计信息的时间变化获取预测寿命的处理 的图。

图58是示出当SSD到达寿命结束时,针对用户的引导屏幕实例的图。

图59是示出对启动载入器执行恢复处理时,计算机系统的功能配置实 例的框图。

图60是示出寿命到期处理中对启动载入器的恢复处理的操作过程的 流程图。

图61是示出启动载入器的重写差异日志的图。

图62是示出紧急OS执行的备份操作过程的流程图。

图63是示出在对启动载入器执行恢复处理时,计算机系统的功能配置 实例的框图。

图64是示出紧急OS执行的启动载入器恢复处理的操作过程的流程 图。

图65是示出第八实施例中的整个操作过程的流程图。

图66是示出计算机系统的外观配置的图;

图67是示出在第九实施例中的主机的功能配置实例的框图;

图68是示出在SSD中存储性能评估工具的情况下,计算机系统的功 能配置实例的框图;

图69是示出在另一外部存储装置中存储性能评估工具的情况下,计算 机系统的功能配置实例的框图;

图70是示出在从网络安装性能评估工具的情况下,计算机系统的功能 配置实例的框图;

图71是示出在从光驱安装性能评估工具的情况下,计算机系统的功能 配置实例的框图;

图72是示出在从USB存储器安装性能评估工具的情况下,计算机系 统的功能配置实例的框图;

图73是示出主机的分层功能配置实例的框图;

图74是示出SSD的功能配置实例的框图;

图75是示出SSD的管理信息的图;

图76是示出SSD的LBA与管理单元之间的关系的图;

图77是示出从LBA指定物理地址的过程的流程图;

图78是示出SSD的读取操作实例的流程图;

图79是示出SSD的读取操作实例的流程图;

图80是示出SSD的写入操作实例的流程图;

图81是示出SSD的写入操作实例的流程图;

图82是示出SSD的NAND存储器的整理处理的操作实例的流程图;

图83是示出当接收到删除通知时,SSD的操作实例的流程图;

图84是示出SSD的传输数据速率随时间下降的图;

图85是示出SSD中的自动NAND整理处理的操作实例的流程图;

图86是示出作为比较实例的读取性能测试的操作实例的流程图;

图87是示出作为比较实例的写入性能测试的操作实例的流程图;

图88是示出通过性能评估工具获取访问信息的操作概念的图;

图89是示出访问日志表实例的图;

图90是示出另一访问日志表实例的图;

图91是示出通过访问信息获取工具获取访问信息的操作实例的流程 图;

图92是示出通过访问信息获取工具获取访问信息的操作实例的流程 图;

图93是示出性能日志表实例的图;

图94是示出通过性能信息获取工具获取性能信息的操作实例的流程 图;

图95是示出通过性能信息获取工具获取性能信息的操作实例的流程 图;

图96是示出通过性能信息获取工具进行的性能日志显示操作实例的 流程图;

图97是示出性能日志的显示实例的图;

图98是示出性能日志的另一显示实例的图;

图99是示出在多个线程执行操作时的命令状态和在综合评估多个线 程时的命令不活动时间的图;

图100A和图100B分别是示出第一方DMA读取(fp DMA读取)命 令的图;

图101A和图101B分别是示出第一方DMA写入(fp DMA写入)命 令的图;

图102A和图102B分别是示出非NCQ DMA读取命令的图;

图103A和图103B分别是示出非NCQ DMA写入命令的图;

图104是示出通过性能信息获取工具执行的传输数据速率计算过程的 流程图;

图105是解释贡献的图;

图106是示出通过性能信息获取工具执行的处理命令速率计算过程的 流程图;

图107是示出通过性能信息获取工具执行的平均响应时间计算过程的 流程图;

图108是示出通过性能信息获取工具执行的性能信息备份过程的流程 图;

图109是示出通过性能信息获取工具执行的性能信息备份过程的流程 图;

图110是示出在多个线程执行操作时的命令状态和在针对每个线程评 估多个线程时的命令不活动时间的图;

图111是示出当针对每个线程评估多个线程时,性能日志表实例的图;

图112是示出当根据顺序访问/随机访问和传输长度对性能日志进行 分类时,性能日志表实例的图;

图113是示出识别命令为顺序访问还是随机访问的操作过程实例的流 程图;

图114是示出当SSD的性能降低时,通过性能信息获取工具执行的操 作过程实例的流程图;

图115是示出当SSD的性能降低时,通过性能信息获取工具执行的操 作过程实例的流程图;

图116A、116B、116C和116D分别是示出碎片整理的图;

图117是示出当SSD的性能降低时,通过性能信息获取工具执行的操 作过程实例的流程图;

图118是示出当SSD的性能降低时,通过性能信息获取工具执行的操 作过程实例的流程图;

图119是示出硬盘驱动器(HDD)的传输数据速率的LBA依赖性的 图;

图120是示出当HDD的性能降低时,通过性能信息获取工具执行的 操作过程实例的流程图;

图121是示出第十一实施例中的主机的功能配置实例的框图;

图122是示出在第十一实施例中通过性能信息获取工具执行的操作实 例的流程图;

图123是示出卸载和载入访问信息获取工具的操作实例的图;以及

图124是示出卸载和载入访问信息获取工具的操作实例的图。

具体实施方式

根据实施例,信息处理设备包括主机装置和非易失性存储装置。非易 失性存储装置被配置为存储在主机装置上执行的正常操作系统,主机装置 能够在正常操作系统的控制下将读取和写入命令均发送到非易失性存储装 置。非易失性存储装置被配置为存储在主机装置上执行的紧急软件,主机 装置能够在紧急软件的控制下仅将读取和写入命令中的读取命令发送到非 易失性存储装置。非易失性存储装置被配置为存储当启动信息处理设备时 在主机装置上执行的启动载入器,主机装置能够使用启动载入器启动正常 操作系统。主机装置被配置为将从非易失性存储装置获取的统计信息与阈 值进行比较。主机装置被配置为当统计信息已经超过阈值时,重写启动载 入器以便在启动信息处理设备时启动紧急软件。

根据实施例,一种信息处理设备包括安装有性能评估工具的主机设备、 包括可读和可写非易失性存储器的外部存储装置、以及连接主机设备和外 部存储装置的接口单元。性能评估工具包括访问日志获取单元和性能日志 获取单元。访问日志获取单元在OS或主机设备中安装的性能评估工具以 外的软件正常访问外部存储装置时,从OS获取包括指令和响应的命令, 并且顺序记录该命令作为访问日志。性能日志获取单元通过使用访问日志 获取单元记录的访问日志来计算有关外部存储装置的性能信息,并记录该 计算结果作为性能信息日志。

非易失性半导体存储器包括安装有擦除/写入/读取单元的存储器,例 如,在以块为单位一次擦除数据之后存储数据的情况下执行写入的存储器, 以及以页为单位执行读/写的存储器,如NAND型闪存。另一方面,由诸 如个人计算机之类的主机设备进行的至第二存储装置(例如硬盘)的数据 写入/读取的单元被称为逻辑扇区。逻辑扇区独立于半导体存储装置中的擦 除/写入/读取单元而定义。例如,在某些情况下,非易失性半导体存储器 中的擦除/写入/读取单元大于主机设备中的写入/读取单元。

而且,当个人计算机的非易失性半导体存储装置由闪存构成时,在某 些情况下,如果块上发生编程错误、擦除错误、不可纠正的ECC错误等, 则某些块和某些区域不应被用作存储区域。这些块被称为“坏块”(“缺 陷块”),并且这些区域被称为“坏区”(“缺陷区”),或者在某些情 况下可被称为“坏簇”。当这些缺陷块或缺陷区的数量超过上限时,新的 缺陷块或缺陷区便无法注册(register)并且无法重新映射,因此不可能确 保缓冲存储器(高速缓冲存储器)中存储的数据以及写入请求针对的数据 被写入闪存。这样,当缺陷块的数量或缺陷区的数量超过预定值时,非易 失性存储装置突然进入数据不可写入状态,不管闪存是否仍具有空闲空间 (free space)(好块)。

作为上述问题的解决方案,存在一种管理在NAND型闪存中产生的坏 块和坏簇数量以及在将数据从主机设备写入NAND型闪存时根据坏块数 量和坏簇数量切换操作模式的方法。簇是一种管理单元,作为SSD中的逻 辑地址。簇大小是逻辑扇区大小的两倍或更大的自然数倍,并且簇地址由 阶位高于LBA预定位的位串形成。

在此方法中,SSD的操作模式例如被分为以下三种模式。

·WB模式(回写模式):用于将数据一次写入高速缓冲存储器并根 据预定条件将数据清空(flush)到NAND型闪存的正常操作模式。

·WT模式(直写模式):用于每次将在一个写入请求中写入高速缓 冲存储器的数据写入NAND型闪存的操作模式。通过每次将数据写入 NAND型闪存,确保从主机写入的数据尽可能多。当坏簇表或坏块表上的 剩余条目数变得等于或小于预定数量时,SSD转换到WT模式。

·RO模式(只读模式):在该模式中,禁止伴随写入NAND型闪存 的所有处理。错误被返回到来自主机的所有写入请求以禁止写入,从而确 保当SSD寿命接近到期(其寿命结束)时使得已从主机写入的数据尽可能 多。当坏簇表或坏块表中的剩余条目数变得等于或小于预定数量,或者当 空闲块变得不足时,SSD转换到RO模式。

在WB模式和WT模式中,SSD从主机接收读取请求和写入请求这两 者并执行处理。与之相对,在RO模式中,SSD在从主机接收到读取请求 时执行处理,但是响应于来自主机的写入请求,在不执行处理的情况下返 回错误。

当SSD连接到安装有诸如Windows(注册商标)之类的操作系统(OS) 的主机时,主机将写入请求发送到SSD,并且当写入请求被正常处理时, 主机将SSD识别为可用外部存储装置。

另一方面,当已经转变到上述RO模式的SSD连接到安装有Windows (注册商标)的主机时,如果该主机将写入请求发送到SSD,则SSD向主 机返回错误,从而在某些情况下,该主机不会将SSD识别为可用外部存储 装置。因此,即使处于RO模式(其中数据可读)的SSD连接到主机,也 有可能无法从SSD读取之前记录的数据。

如上所述,当SSD已达到其寿命结束或者接近寿命结束时,应该禁止 写入SSD。但是,当计算机系统中安装正常操作系统(OS)时,有些数据 可在启动时写入SSD,有些数据可在用户不注意的情况下,在后台处理中 写入SSD。因此,当SSD已达到其寿命结束或者接近寿命结束时,在计算 机系统中安装正常OS的条件下,SSD的可靠性进一步降低并且已写入的 数据可能被破坏。

这样,在这些实施例中,当判定SSD已达到寿命结束时,重写启动载 入器使得在重启系统时启动例如紧急OS(该紧急OS是不对SSD2执行写 入操作的紧急软件),从而防止SSD的可靠性降低以及防止破坏已写入的 数据。作为紧急OS,使用在启动时仅对SSD执行读取操作的软件,该软 件不会在用户不注意时在后台对SSD执行写入操作。紧急软件包括紧急操 作系统。

从信息处理设备发送到外部存储装置(例如,硬盘和固态驱动器 (SSD))的主指令包括数据读取指令和数据写入指令。在数据读取指令 中,包括有关外部存储装置中的逻辑地址(LBA:逻辑块寻址)和数据长 度(传输长度、有效负载长度)的信息的指令从信息处理设备发送到外部 存储装置,并且外部存储装置的控制器响应于该指令,从记录介质读取该 指令指定的数据,并将该读取的数据返回到信息处理设备。在数据写入指 令中,包括有关外部存储装置中的逻辑地址(LBA)和传输长度的信息的 指令从信息处理设备发送到外部存储装置,并且当外部存储装置进入可写 状态时,信息处理设备将数据发送到外部存储装置,然后外部存储装置的 控制器将接收到的数据写入记录介质,作为该指令指定的具有LBA的数 据。

测量外部存储装置读写性能的测量包括传输数据速率、处理命令速率、 响应时间、处理时间、相对评分等。

传输数据速率是每单位时间传输到外部存储装置以及从外部存储装置 传输的数据量。例如,对于数据读取,如果信息处理设备每秒从外部存储 装置接收平均250MiB的数据,则外部存储装置的用于读取的传输速率为 250MiB/s。

处理命令速率是每单位时间传输到外部存储装置以及从外部存储装置 传输的指令数量。例如,对于数据写入,如果信息处理设备每秒完成至外 部存储装置的平均100000个指令,则外部存储装置的读取传输速率为 100000IOPS。

响应时间是从信息处理设备向外部存储装置发送指令到完成与指令相 关的处理的时间。在读取指令的情况下,响应时间是直至信息处理设备响 应于指令而接收到数据的时间,并且在写入指令情况下,响应时间是直至 信息处理设备从外部存储装置接收到对指令的完成响应的时间。例如,在 数据读取指令中,如果信息处理设备需要10毫秒才能完成响应于指令的数 据接收,则外部存储装置的响应时间为10毫秒。

处理时间是在启动信息处理设备之后,在该信息处理设备中完成对外 部存储装置的特定应用或特定处理所需的时间。例如,如果需要50秒在外 部存储装置中复制10千兆字节的文件,则复制10千兆字节的文件的处理 时间为50秒。

相对评分是通过对各种条件下的多个评分(例如,传输数据速率、处 理命令速率、响应时间和处理时间)进行加权并对其执行加减乘除运算获 取的评分。

相对评分的实例包括以下指标:

●PCMark05(商标)http://www.futuremark.com/

●PCMark VANTAGE(商标)

http://www.futuremark.com/

●SYSmark2007Preview(商标)

http://www.bapco.com/

当测量外部存储装置的性能时,条件会发生变化。其中一个主要条件 是LBA模式,从该LBA中读取数据(或将数据写入其中)。这些模式大 致被分为两类:即顺序模式和随机模式。

顺序模式是其中按顺序提供连续LBA的访问模式。具体而言,顺序 模式是这样一种访问模式:其中信息处理设备将具有相对于特定LBA的 特定传输长度的读取指令(写入指令)发送到外部存储装置,然后将具有 相对于特定LBA(通过在上述LBA的基础上递增所述传输长度获取)的 特定传输长度的读取指令(写入指令)发送到外部存储装置,之后,信息 处理设备在递增LBA时重复读取命令(写入命令)。随机模式是这样一 种访问模式:其中按顺序提供随机的非连续LBA。

当测量外部存储装置的性能时的其它条件包括LBA(从其读取数据或 将数据写入其)的范围(访问范围)、当执行读取(写入)时每个命令的 数据传输长度(有效负载长度)、当在多线程情况下执行读取(写入)时 的线程数量、待读取(写入)的数据内容、测量执行时间等。

在如上存在大量指标和条件的外部存储装置的性能评估中,即使在相 同的指标和测量条件下,性能也不总是相同。尤其是,当外部存储装置为 SSD时,SSD的性能主要依赖于管理闪存(其是SSD的记录介质)中的物 理地址与LBA之间对应关系的逻辑-物理转换表的状态。这是因为在SSD 中,逻辑地址(LBA)与物理地址(NAND10中的存储位置)之间的关系 并非提前静态地判定,并且采用在写入数据时动态地关联物理地址与LBA 的逻辑-物理转换法。例如,当在相同LBA地址中覆写数据时,将执行下 面描述的操作。在有效数据存储在逻辑地址A1中并且块B1被用作存储区 域的情况下,当对逻辑地址A1的覆写数据(具有块大小)的命令从信息 处理设备接收时,保留一个空闲块(块B2)并且在空闲块中写入从信息处 理设备接收的数据。之后,逻辑地址A1与块B2关联。因此,块B2变为 活动块,并且存储在块B1中的数据失效,这样块B1变为空闲块。通过这 种方式,在SSD中,要用作具有同一逻辑地址A1的数据的实际记录区域 的块对于每次写入而改变。当选择空闲块时,一般而言,执行损耗均衡处 理以使擦除次数(擦除计数)和擦除时间间隔在所有块之间大致相同。

为了从测量结果中消除外部存储装置的内部状态的此类变化,例如, 在SNIA中存在测量的预调节标准,固态存储性能测试规范 http://www.snia.org/。但是,用户的SSD的内部状态根据用户对SSD的使 用、与SSD连接的计算机的硬件环境、在计算机上执行操作的软件类型、 操作时间等而变化,这样,根据上述标准执行预调节之后的SSD内部状态 不会总是与当用户在各种应用实际由用户操作的状态下(在实际使用时) 体验其性能时的SSD内部状态匹配。

用户可通过在实际使用期间不执行预调节的情况下亲自执行测量来获 取他/她自己的SSD的性能。因此,用户可以获取与标准化的统一方法相 比,相对接近用户体验的性能的性能指标。但是,此方法具有以下问题。

如上所述,SSD的内部状态随时变化,因此很容易受外部访问的影响。 这样,测量本身影响SSD的内部状态,从而由于测量导致该内部状态偏离 用户实际使用时的内部状态,因此测量结果偏离用户体验的速度。例如, 当为了性能测量本身而从计算机对SSD进行顺序写入访问时,作为写入目 标的LBA与闪存中的物理地址(数据实际写入的地址)之间的对应关系 在SSD中的逻辑-物理转换表中反映出来,从而SSD的内部状态发生变化。 这种改变的内部状态影响测量结果,从而SSD的最终计算性能偏离用户实 际体验的性能。实际中,许多性能测量工具具有某些规范,其中数十亿字 节或更大数据的顺序写入对SSD执行,作为各种测量之前的预调节,因此 这些工具测量的性能实质上偏离用户体验的性能。

如上所述,在典型性能测量工具执行的性能测量中,大量数据被从计 算机写入SSD,从而使得闪存(SSD的记录介质)的擦除计数增加。闪存 的故障率随着擦除计数的增加而增加,因此SSD的可靠性由于性能测量而 降低。因此,频繁监测SSD的性能对于用户不是优选的,因为它加速了 SSD的可靠性降级。

如上所述,性能测量中的软件和条件会发生变化。读/写、顺序/随机、 访问范围、有效负载长度以及线程数通过选择软件和条件来定义。在下文 中,这些一般被称为工作负荷。在性能测量期间选择的工作负荷并非总是 与在用户通过各种应用操作SSD时出现在SSD中的工作负荷(实际使用 的工作负荷)匹配。对于用户很难通过分析SSD与计算机之间的接口协议 找到适合用户的工作负荷。

此外,存在一种基于对于外部存储装置的读写量监测外部存储装置性 能的软件(请参见监测外部存储装置速度的软件, http://www.forest.impress.co.jp/docs/review/20100222_350600.html和 http://hansolav.net/gadgets/drivemeter/)。在该常规技术中,读取传输数 据速率和写入传输数据速率定义如下。

(读取传输数据速率)=(测量时段期间读取的数据量)/(测量时间长 度)

(写入传输数据速率)=(测量时段期间写入的数据量)/(测量时间长 度)

但是,如果软件例如具有等待用户输入的中断或等待CPU响应的中 断或在访问外部存储装置期间的其它硬件的中断,则在测量时段期间读取 的数据量减少。传输数据速率下降,因为测量时间长度恒定。尤其是,当 用户执行基本不访问外部存储装置的应用时,或者当信息处理设备处于空 闲状态(其中不执行应用)时,外部存储装置的传输数据速率为零或非常 接近零的值,而不管外部存储装置的实际性能。传输数据速率为接近零的 值,并不表示用户体验的外部存储装置性能不好。这表示通过此常规技术 获取的性能很容易受外部存储装置之外的外部因素影响,从而很难说可获 取外部存储装置的性能和用户体验的外部存储装置性能。

基于这些原因,很难说当前性能测量工具执行的性能测量反映每个用 户在实际使用中体验的性能。而且,为了外部存储装置的可靠性,不优选 在性能测量中执行额外的写入。这些实施例提供在不影响外部存储装置可 靠性的情况下,能够实时正确地获取用户在实际使用中体验的外部存储装 置性能的性能测量工具。

下面将参考附图详细介绍根据实施例的信息处理设备、用于信息处理 设备的控制方法、控制工具、主机设备、存储性能评估工具的非临时记录 介质、以及用于外部存储装置的性能评估方法。本发明不限于这些实施例。 (第一实施例)

图1示出第一实施例中的计算机系统的配置。计算机系统1包括作为 非易失性存储装置的SSD2、主机设备3、以及连接SSD2和主机设备3 的存储接口19。在该实施例中,SSD(固态驱动器)被用作非易失性存储 装置,但是,例如还可以使用其它非易失性存储装置,如硬盘驱动器、混 合式磁盘驱动器、SD卡、USB存储器和直接安装在主板上的NAND型闪 存。而且,在该实施例中,ATA(高级技术附件)接口被用作接口19,但 是,也可使用其它接口,如USB(通用串行总线)、SAS(串行附接SCSI)、 Thunderbolt(注册商标)和PCI Express。CPU(控制电路)4是主机设 备3中的中央处理单元,并且CPU4在主机设备3中执行各种操作和控制。 CPU4通过南桥7执行SSD2和诸如DVD-ROM之类的光驱10的控制。 CPU4通过北桥5执行主存储器6的控制。例如,DRAM可被用作主存储 器6。

用户通过诸如键盘14和鼠标15之类的输入设备执行主机设备3的控 制,并且来自键盘14和鼠标15的信号通过USB(通用串行总线)控制器 13和南桥7在CPU4中被处理。CPU4通过北桥5和显示控制器8将图 像数据、文本数据等发送到显示器(显示设备)9。用户可以通过显示器9 查看来自主机设备3的图像数据、文本数据等。

CPU4是被设置为控制计算机系统1的操作的处理器并且执行被从 SSD2载入到主存储器6的操作系统(OS)100。此外,当光驱10能够对 载入的光盘执行读取处理和写入处理中的至少一者时,CPU4执行该处理。 而且,CPU4执行存储在ROM11中的固件。固件可以是存储在BIOS(基 本输入/输出系统)-ROM11中的系统BIOS,或者可以是存储在ROM11 中的统一可扩展固件接口固件(UEFI固件)。ROM11中的固件是用于 控制计算机系统1中的硬件的程序。在该实施例中,系统BIOS被用作存 储在ROM11中的固件。在该实施例中,OS100可以包括ROM11中的 固件。在该实例中,OS100可从SSD2以及从ROM11载入,或者OS100 可从SSD20以及从ROM11载入。

此外,CPU4通过南桥7控制LAN(局域网)控制器12。

北桥5是连接到CPU4的本地总线的桥接装置。用于执行对主存储器 6的访问控制的存储控制器置于北桥5内。而且,北桥5例如具有执行与 显示控制器8通信的功能。

主存储器6中临时存储程序和数据并且充当CPU4的工作区域。主存 储器6包括存储OS100的存储区域6A和存储控制工具200的存储区域 6B。众所周知,OS是管理整个主机设备3的程序,例如通过管理主机设 备3的输入/输出设备以及管理磁盘和存储器来执行控制,以允许软件使用 主机设备3的硬件。存储在ROM11中的固件可被载入到区域6A,并且 可作为OS的一部分。

显示控制器8是视频再现控制器,用于控制计算机系统1的显示器9。 南桥7是连接到CPU4的本地总线的桥接装置。南桥7通过ATA接口19 控制SSD2,SSD2是用于存储各种软件和数据的存储装置。

计算机系统1以逻辑扇区为单位访问SSD2。写入命令(写入请求)、 读取命令(读取请求)、清空(flush)命令等通过ATA接口19而被输入 到SSD2。例如,INCITS ACS-2中描述的WRITE DMA EXT(35h)和 INCITS ACS-2中描述的WRITE FPDMA QUEUED(61h)可被用作写入 命令。例如,INCITS ACS-2中描述的READ DMA EXT(25h)和INCITS  ACS-2中描述的READ FPDMA QUEUED(60h)可被用作读取命令。例 如,INCITS ACS-2中描述的FLUSH CACHE EXT(EAh)可被用作清除 命令。

南桥7具有执行对BIOS-ROM11、光驱10、LAN控制器12,以及 USB控制器13的访问控制的功能。键盘14和鼠标15连接到USB控制器 13。

例如,如图2所示,当主机设备3的电源关断时,控制工具200被存 储在SSD2的NAND型闪存(NAND存储器)16的区域16B中,当主机 3启动或者程序开始时,控制工具200从NAND存储器16的区域16B被 载入到主存储器6的区域6B内。

例如,如图3所示,当多个非易失性存储装置连接到主机3时,SSD 控制工具200可存储在不同于SSD2的非易失性存储装置20的区域20B 中,当主机设备3启动或者程序开始时,控制工具200从区域20B载入到 主存储器6的区域6B内。尤其是,当非易失性存储装置20被用作用于存 储OS的系统驱动器,并且SSD2被用作用于存储用户数据(例如文档、 静止图像数据和运动图像数据)的数据驱动器时,就清楚地将驱动器2和 驱动器20的作用相互区分而言,例如在使用系统驱动器20作为用于主要 存储OS和应用程序的驱动器,以及使用数据驱动器2作为用于存储用户 数据的驱动器的情况下,期望将控制工具存储在作为系统驱动器的非易失 性存储装置20中。

例如,如图4所示,当主机设备3的电源关断时,控制工具200可存 储在主机设备3的ROM11的区域11B中,当主机3启动或者程序开始时, 控制工具200从区域11B载入到主存储器6的区域6B内。

例如,如图5所示,当主机设备3的电源关断时,控制工具200可存 储在主机设备3的ROM11的区域11B中,当主机3启动或者程序开始时, 区域6B可映射在ROM11的区域中,并且可在不将控制工具200载入到 主存储器6内的情况下,由CPU4直接从区域11B执行控制工具200。

就节省设置控制工具200所需的用户劳动而言,例如如图2、图3、图 4和图5所示,期望计算机系统1在控制工具200存储在SSD2、非易失 性存储装置20或ROM11中的状态下运送,到达商店,然后交付给用户。 另一方面,就允许用户选择是否安装控制工具以及允许将最新控制工具提 供给用户而言,期望控制工具200能够通过从WEB下载或从诸如 DVD-ROM和USB存储器之类的外部存储介质安装而存储在SSD2、非易 失性存储装置20或ROM11中。

图6是从WEB下载的实例。控制工具200存储在WEB服务器21上 的存储介质22的区域22B中,并且控制工具200例如通过LAN控制器 12,经由(例如,因特网、局域网和无线LAN)而被下载(或安装)到 SSD2的NAND存储器16的区域16B中。在图3的实例中,控制工具200 下载或安装到非易失性存储装置20的区域20B中。

图7是从诸如DVD-ROM和CD-ROM之类的光学介质安装的实例。 控制工具200存储在诸如DVD-ROM和CD-ROM之类的光学介质23中, 并且通过在光驱10中设置光学介质23,借助光驱10而安装在SSD2的 NAND存储器16的区域16B(或区域20B)中。图8是从USB存储器安 装的实例。控制工具200存储在USB存储器24的区域24B中,并且通过 将USB存储器24连接到USB控制器13,借助USB控制器13而安装在 SSD2的NAND存储器16的区域16B(或区域20B)中。很明显,可使 用诸如SD卡之类的其它外部存储器替代USB存储器24。就易于供用户使 用而言,当运送并销售SSD2时,期望将光学介质23或USB存储器24 作为配件与SSD2打包在一起。另一方面,光学介质23或USB存储器24 可作为软件产品单独销售,或可作为附赠品附加至杂志或图书。

在该实施例中,存在两种OS,即正常OS(第一操作系统)100A和 紧急OS(第二操作系统)100B作为OS100。正常OS100A是当SSD2 的可靠性未降低时使用的操作系统。如上所述,通过正常OS,某些数据 可在启动时被写入SSD,某些数据可在用户不注意的情况下,在后台处理 中被写入SSD。如图9所示,当主机设备3的电源关断时,正常OS100A 存储在NAND存储器16的区域16D中。紧急OS100B是在SSD2的可靠 性降低并且不对SSD2执行写入操作(不支持写入)时使用的操作系统。 这表示紧急OS在启动时仅对SSD执行读取操作,并且不在后台对SSD执 行写入(用户不希望执行此操作)。当可靠性降低时,紧急OS100B能够 对SSD2以外的非易失性存储装置执行写入。而且,当部分数据(例如, 有关紧急OS的系统信息)需要被写入SSD2时,紧急OS100B可例外地 允许将数据写入SSD2,但是,数据量期望充分小于NAND存储器16的 容量。更期望地,为了防止用户错误地发送写入命令以及防止数据被写入 SSD2,紧急OS100B禁止执行对SSD2的正常写入命令,并且当数据需 要被例外地写入SSD2时,紧急OS100B仅通过使用特殊命令(例如, INCITS ACS-2中描述的SCT Command Transport(SCT命令传输)和对 于供应商唯一的命令)的命令来允许对SSD2的写入。

如图9所示,当主机设备3的电源关断时,紧急OS100B存储在NAND 存储器16的区域16E中。由于紧急OS100B不在SSD2处于正常状态时 使用,因此就防止区域16E中的紧急OS数据被破坏而言,在使用正常 OS时期望将区域16E设定为不可从主机设备3写入。例如,当正常OS 100A执行操作时,在SSD2中的管理信息中不期望将LBA分配给区域 16E,下文将对此进行描述,在这种情况下,当需要执行紧急OS时,LBA 被分配给区域16E。备选地,当正常OS100A执行操作时,期望将区域16E 设定为受正常OS100A的写保护。

就在SSD2的可靠性降低的状态下尽可能减少对SSD2的访问而言, 存储有紧急OS100B的区域16E中的数据量期望显著小于NAND存储器 16的容量。紧急OS100B例如可以是通过定制诸如MS-DOS(商标)和 Linux之类的OS以禁止对SSD2执行写入而获取的OS,通过将SSD2 的备份功能添加到OS而获取的OS,或者是针对SSD2唯一地开发的软件。

当启动计算机系统1时,例如当计算机系统1的电源接通或者OS重 启时,主机设备3读取在NAND存储器16的区域16C中写入的启动载入 器300,并基于有关启动载入器300的信息判定正常OS100A和紧急OS 100B中的哪一者被载入到主机设备3的区域6A内。为此,指示要读取的 OS的LBA的OS指针信息OSPT存储在启动载入器300中。当读取启动 载入器300时,CPU4从由OS指针信息OSPT指示的LBA作为起点执 行读取,然后将读取数据写入主存储器6的区域6A中。启动载入器300 被配置为载入处于初始状态的正常OS100A。在SSD2的可靠性降低之后, 存储在主存储器6的区域6B中的控制工具200通过重写存储在NAND存 储器16的区域16C中的启动载入器300来重建启动载入器300,以读取紧 急OS100B。例如,可采用主启动记录(MBR),或者可采用GUID分割 表(GPT)作为启动载入器300。

当多个非易失性存储装置连接到主机设备3时,OS可存储在不同于 SSD2的非易失性存储装置20中。例如,如图12所示,正常OS和紧急 OS均可存储在非易失性存储装置20中,正常OS可存储在SSD2中并且 紧急OS可存储在非易失性存储装置20中,或者正常OS可存储在非易失 性存储装置20中,并且紧急OS可存储在SSD2中。尤其是,当非易失性 存储装置20被用作用于存储OS的系统驱动器,并且SSD2被用作用于存 储诸如文档、静止图像数据和运动图像数据之类的用户数据的数据驱动器 时,就清楚地将驱动器2和驱动器20的作用相互区分而言,例如在使用系 统驱动器20作为用于主要存储OS和应用程序的驱动器,并且使用数据驱 动器2作为用于存储用户数据的驱动器的情况下,期望将正常OS存储在 作为系统驱动器的非易失性存储装置20中。更期望地,也将紧急OS存储 在作为系统驱动器的非易失性存储装置20中。

如图10所示,控制工具200可存储在ROM11中。例如,BIOS-ROM 11具有BIOS区域11D和存储有紧急固件(紧急BIOS)的紧急BIOS区 域11F以及控制工具20011C。当主机3启动时,BIOS11D和控制工具 200被启动,并且BIOS11D将NAND闪存16中存储的OSPT载入到主 存储器6内。存储在NAND闪存中的OSPT优选地最初存储正常OS区域 16D的起始LBA地址。控制工具200从SSD2获取统计信息并基于统计 信息判定载入正常OS100A和紧急OS100B中的哪一者,然后将选择的 OS LBA指针写入主存储器6中的OSPT301内。例如,可使用INCITS  ACS-2中描述的SMART READ DATA(B0h(D0h))、INCITS ACS-2中描 述的IDENTIFY DEVICE(ECh)、ACS-2中描述的SCT Command  Transport、或对于供应商唯一的命令读出统计信息。BIOS11D将NAND 闪存16中的启动载入器300载入到区域6A内,该启动载入器读取主存储 器6中的OSPT301,并且该启动载入器基于主存储器6中的OSPT301 将正常OS100A和紧急OS100B中的一者载入到主机设备3的区域6A内。

如图11所示,ROM11中的固件可具有作为正常OS的正常固件和作 为紧急OS的紧急固件。例如,如图11所述,BIOS-ROM11具有存储有 正常固件(正常BIOS)的正常BIOS区域11D,和存储有紧急固件(紧急 BIOS)的紧急BIOS区域11E、以及存储初始程序载入程序(IPL程序) 的初始程序载入区(IPL区域),该IPL程序将在BIOS-ROM11100A中 存储的BIOS固件载入到主机设备3的区域6A内。控制工具200包括在 IPL300中。当启动IPL300时,控制工具200从SSD2获取统计信息并 基于统计信息判定将正常BIOS100A和紧急BIOS100B中的哪一者载入 到区域6A内,然后将选择的BIOS地址指针写入BIOSPT301(例如, OS的OSPT301)内。例如,可通过使用INCITS ACS-2中描述的SMART  READ DATA(B0h(D0h))、INCITS ACS-2中描述的IDENTIFY DEVICE (ECh)、ACS-2中描述的SCT Command Transport、或对于供应商唯一的 命令读出统计信息。IPL300基于在BIOSPT301中存储的BIOS地址指针 将正常BIOS100A和紧急BIOS100B中的一者载入到主机设备3的区域 6A内。正常BIOS100A是在SSD2的可靠性未降低时使用的BIOS。通 过正常BIOS,某些数据可在启动时被写入SSD,某些数据可在用户不注 意的情况下,在后台处理中被写入SSD。紧急BIOS100B是当SSD2的可 靠性降低时使用的BIOS并且不对SSD2执行写入(不支持写入)。这表 示紧急BIOS在启动时仅对SSD执行读取操作,不在后台对SSD执行写 入(用户不希望执行此操作)。当可靠性降低时,紧急BIOS100B能够对 SSD2以外的非易失性存储装置执行写入。为了防止用户错误地发送写入 命令以及防止数据被写入SSD2,紧急BIOS100B可禁止执行对SSD2的 正常写入命令,并且当数据需要被例外地写入SSD2时,紧急BIOS100B 可以允许仅通过使用特殊命令(例如,INCITS ACS-2中描述的SCT  Command Transport和对于供应商唯一的命令)的命令写入SSD2。ROM 11中的固件可被统一为包括正常固件功能和紧急固件功能的单个固件,该 固件可作为由控制工具200排他地选择的正常固件模式或紧急固件模式之 一执行操作。

就节省设置紧急OS所需的用户劳动而言,例如如图9、图10、图11 和图12所示,期望计算机系统1在紧急OS存储在SSD2、非易失性存储 装置20或ROM11中的状态下运送,到达商店,然后交付给用户。另一 方面,就允许用户选择是否安装紧急OS以及允许将最新紧急OS提供给 用户而言,期望紧急OS能够通过从WEB下载或从诸如DVD-ROM和 USB存储器之类的外部存储介质安装而存储在SSD2、非易失性存储装置 20或ROM11中。

图13是从WEB下载的实例。紧急OS存储在WEB服务器21上的存 储介质22的区域22E中,并且紧急OS借助LAN控制器12,通过网络(例 如,因特网、局域网和无线LAN)下载(或安装)到SSD2的NAND存 储器16的区域16E中。在图12的实例中,紧急OS下载或安装到非易失 性存储装置20的区域20E中。

图14是从诸如DVD-ROM和CD-ROM之类的光学介质安装的实例。 紧急OS存储在诸如DVD-ROM和CD-ROM之类的光学介质23的区域 23E中,并且通过在光驱10中设置光学介质23,借助光驱10而安装在SSD 2的NAND存储器16的区域16E(或区域20E)中。图15是从USB存储 器安装的实例。紧急OS存储在USB存储器24的区域24E中,并且通过 将USB存储器24连接到USB控制器13,借助USB控制器13而安装在 SSD2的NAND存储器16的区域16E(或区域20E)中。很明显,可使 用诸如SD卡之类的其它外部存储器替代USB存储器24。就易于供用户使 用而言,当运送并销售SSD2时,期望将光学介质23或USB存储器24 作为附件与SSD2打包在一起。另一方面,光学介质23或USB存储器24 可作为软件产品单独销售,也可作为杂志或图书的附赠品。就简化安装而 言,期望将紧急OS和控制工具存储在诸如光学介质23和USB存储器24 之类的同一外部存储器中。

图16示出计算机系统1在软件级上的分层结构。被载入到主存储器6 内的控制工具200和其它软件(控制工具200以外的软件)一般不直接与 SSD2正常通信,而是通过被载入到主存储器6内的OS100与SSD2通信。 当控制工具200和其它软件需要将诸如读取请求和写入请求之类的指令发 送到SSD2时,控制工具200和其它软件以文件为单位发送访问请求到 OS100。OS100参考包括在OS100中的文件管理表,指定SSD2中与产 生访问请求所针对的文件对应的逻辑地址(LBA),并且将包括对应LBA 的对于接口唯一的指令发送给SSD2。当从SSD2返回响应时,OS100指 定对于接口唯一的响应在转换(translation)之后所要返回的软件,并且 将响应返回至指定的软件。

接下来,将介绍计算机系统1的配置实例。计算机系统1例如可以实 现为桌面计算机或笔记本型便携式计算机。图17是作为计算机系统1的桌 面计算机的示意图。桌面计算机包括计算机主体31、显示器9、键盘14、 鼠标15等。计算机主体31包括上面安装有硬件的主板30、SSD2、电源 单元32等。SSD2通过SATA电缆与主板30进行物理连接,并且通过在 主板30上安装的南桥7与在主板上安装的CPU4进行电连接。电源单元 32生成在桌面计算机中使用的各种电力并且通过电力电缆向主板30、SSD 2等供电。

图18是作为计算机系统1的便携式计算机的示意图。便携式计算机由 计算机主体34、显示单元35等组成。例如由LCD(液晶显示器)构成的 显示设备9置于显示单元35内。显示单元35附接于计算机主体34,从而 可在打开位置与闭合位置之间旋转,在打开位置,主体34的上表面暴露, 在闭合位置,主体34的上表面被盖住。主体34具有薄盒状外壳,电源开 关36、键盘14、触摸板33等设置在该主体的上表面。而且,与桌面计算 机类似,主体34也包括SSD2、主板、电源单元等。

应用于本发明的信息处理设备可以是计算机系统1以外的成像设备 (例如照相机和摄像机)、平板计算机、智能电话、游戏机、汽车导航系 统等。

接下来,将介绍作为SSD2的主要组件的NAND存储器16。图19 示出配置NAND存储器16的NAND存储器芯片80的内部配置实例。 NAND存储器16由一个或多个NAND存储器芯片80构成。NAND存储 器芯片80包括存储基元(memory cell)阵列,在该阵列中,多个存储基 元以矩阵方式排列。配置存储基元阵列所使用的存储晶体管分别由 MOSFET(金属氧化物半导体场效应晶体管)构成,该MOSFET具有形 成于半导体衬底上的层叠栅结构。层叠栅结构包括形成于半导体衬底上的 电荷存储层(浮栅电极)(在半导体衬底与电荷存储层之间具有栅极介电 膜)以及形成于浮栅电极上的控制栅电极(在浮栅电极与控制栅电极之间 具有栅极间介电膜)。在存储基元晶体管中,阈值电压根据浮栅电极中存 储的电子的数目而变化,并且数据根据该阈值电压的差异而存储。在该实 施例中,将介绍每个存储基元采用4值存储系统(在该系统中,使用上页 和下页存储2位/基元)的写入系统的实例,但是,即使每个存储基元采用 2值存储系统的写入系统(使用单个页存储1位/基元)、8值存储系统的 写入系统(使用上页、中间页和下页存储3位/基元)、或多值存储系统的 写入系统(存储4位/基元或更多),本发明的性质也不改变。而且,存储 基元晶体管不限于具有包括浮栅电极的结构,并且可以具有诸如MONOS (金属氧化氮氧化硅)型之类的结构,其中可通过在作为电荷存储层的氮 化物界面中捕获电子来调整阈值电压。MONOS型存储基元晶体管可被配 置为存储1位,或者可被配置为以类似于MOSFET型存储基元晶体管的 方式存储多个值。而且,非易失性存储介质可以是半导体存储介质,其中 存储基元是进行三维排列,如公开号为20100172189的美国专利申请和公 开号为20100254191的美国专利申请中描述的那样。非易失性存储介质还 可以是其它类型的非易失性存储介质,例如ReRAM、硬盘驱动器的盘片 (platter)。

如图19所示,NAND存储器芯片80包括存储基元阵列82,该阵列通 过以矩阵方式设置存储数据的存储基元而形成。存储基元阵列82包括多个 位线、多个字线和一个公共源极线,并且可被电写入数据的存储基元以矩 阵方式设置在存储基元阵列82中的位线与字线的交叉处上。用于控制位线 的位线控制电路83和用于控制字线的字线控制电路85与存储基元阵列82 相连。这表示位线控制电路83通过位线读取存储基元阵列82中的存储基 元中的数据,并通过位线将写入控制电压施加于存储基元阵列82中的存储 基元以将数据写入存储基元。

列解码器84、数据输入/输出缓冲器89和数据输入/输出端子88连接 到位线控制电路83。从存储基元阵列82读取的存储基元中的数据通过位 线控制电路83和数据输入/输出缓冲器89,从数据输入/输出端子88输出 到外部。而且,从外部输入到数据输入/输出端子88的写数据通过数据输 入/输出缓冲器89,被列解码器84输入到位线控制电路83,并且被写入指 定的存储基元。

而且,存储基元阵列82、位线控制电路83、列解码器84、数据输入/ 输出缓冲器89和字线控制电路85连接到控制电路86。控制电路86产生 控制信号和用于根据输入到控制信号输入端子87的控制信号控制存储基 元阵列82、位线控制电路83、列解码器84、数据输入/输出缓冲器89和 字线控制电路85的控制电压。在NAND存储器芯片80中,存储基元阵列 82以外的电路部分被称为NAND控制器(NANDC)81。

图20示出图21所示的存储基元阵列82的配置。存储基元阵列82是 NAND基元型存储基元阵列并包括多个NAND基元。一个NAND单元包 括由串联连接的存储基元构成的存储串MS以及连接到其两端的选择栅S1 和S2。选择栅S1连接到位线BL,选择栅S2连接到源极线SRC。设置在 同一行上的存储基元MC的控制栅共同连接到字线WL0至WLm-1中的 任一字线。而且,第一选择栅S1共同连接到选择线SGD,第二选择栅S2 共同连接到选择线SGS。

存储基元阵列82包括一个或多个平面并且一个平面包括多个块。每个 块由多个NAND基元构成,并且数据以块为单位擦除。

而且,连接到一个字线的多个存储基元形成一个物理扇区。针对每个 物理扇区读写数据(该物理扇区与下面将介绍的LBA的逻辑扇区无关)。 在2位/基元写入系统(4值)实例中,例如,2个页的数据存储在一个物 理扇区中。另一方面,在1位/基元写入系统(2值)实例中,例如,1个 页的数据存储在一个物理扇区中,并且,在3位/基元写入系统(8值)实 例中,例如,3个页的数据存储在一个物理扇区中。

在读取操作、程序验证操作、以及程序操作中,根据从下面将描述的 SSDC41接收的物理地址选择一字线并且选择一物理扇区。该物理扇区中 页的切换通过物理地址执行。在该实施例中,NAND存储器16采用2位/ 基元写入系统,以便SSDC41确定将2个页(即,上页(上页)和下页(下 页))作为物理页分配给物理扇区,并且将物理地址分配给所有这些页。

存储2位/基元的4值NAND存储器被配置为使得一个存储基元中的 阈值电压可实现四种类型分布。图21示出存储在4值NAND基元型闪存 中的存储基元中的2位4值数据(数据“11”、“01”、“10”和“00”) 与存储基元的阈值电压分布之间的关系。在图21中,VA1是在读取物理扇 区中2个数据的情况下(其中,仅下页处于写入状态,上页处于未写入状 态)施加到选择字线的电压,并且VA1v指示用于在对A1执行写入的情况 下检查该写入是否已完成而施加的验证电压。

此外,VA2、VB2、和VC2是在读取物理扇区中4个数据的情况下(其 中,下页和上页均处于写入状态)施加到选择字线的电压,并且VA2v、VB2v、 和VC2v指示用于在对每个阈值电压分布执行写入的情况下检查该写入是 否已完成而施加的验证电压。而且,Vread1和Vread2指示施加到NAND 基元当中未选择存储基元的读取电压并将未选择存储基元呈现为导电状 态,而不考虑在读取数据的情况下的存储数据。此外,Vev1和Vev2是施 加到存储基元以在擦除存储基元中数据的情况下检查擦除是否已完成的擦 除验证电压且具有负值。擦除验证电压的大小在考虑相邻存储基元的干扰 效应的情况下确定。上述电压之间的大小关系如下所示:

Vev1<VA1<VA1V<Vread1

Vev2<VA2<VA2V<VB2<VB2V<VC2<VC2V<Vread2

擦除验证电压Vev1、Vev2和Vev3如上所述具有负值,但是,在实际 擦除验证操作中施加到存储基元MC的控制栅的电压不是负值,而是零或 正值。这表示,在实际擦除验证操作中,正电压被施加到存储基元MC的 背栅,并且具有零或小于背栅电压的正值的电压被施加到存储基元MC的 控制栅。换言之,擦除验证电压VeV1、VeV2和VeV3是其值等于负值的 电压。

在块擦除之后存储基元的阈值电压分布ER中,其上限也是负值并且 数据“11”被分配。具有数据“11”、“01”、“10”和“00”的存储基 元(其中下页和上页均处于写入状态)分别具有正阈值电压分布ER2、A2、 B2和C2(A2、B2和C2的下限也是正值),数据“01”的阈值电压分布 A2具有最低电压值,数据“00”的阈值电压分布C2具有最高电压值,各 个阈值电压分布的电压值具有关系A2<B2<C2。数据“10”的存储基元(其 中下页处于写入状态,上页处于未写入状态)具有正阈值电压分布A1(A1 的下限也是正值)。图21所示的阈值电压分布只是一个实例,本发明并不 限于此。例如,在图21中,介绍了所有阈值电压分布A2、B2和C2为正 阈值电压分布,但是,其中阈值电压分布A2为负电压分布并且阈值电压 分布B2和C2为正电压分布的情况也包括在本发明的范围内。而且,即使 阈值电压分布ER1和ER2具有正值,本发明也不限于此。此外,在该实 施例中,对应关系使得ER2、A2、B2和C2上的数据分别对应于“11”、 “01”、“10”和“00”,但是,例如可采用其它对应关系,例如“11”、 “01”、“00”和“10”。

一个存储基元中的2位数据由下页数据和上页数据构成,并且下页数 据和上页数据通过不同的写入操作(即,两个写入操作)而写入存储基元。 当数据被表示为“*@”时,*表示上页数据,@表示下页数据。

首先,将参考图21中的第一至第二阶段介绍对下页数据的写入。所有 存储基元具有处于擦除状态的阈值电压分布ER并存储数据“11”。如图 21所示,当执行对下页数据的写入时,根据下页数据的值(“1”或“0”), 存储基元的阈值电压分布ER被分为两个阈值电压分布(ER1和A1)。当 下页数据的值为“1”时,保持处于擦除状态的阈值电压分布ER,以使 ER1等于ER,但是,ER1可大于ER。

另一方面,当下页数据的值为“0”时,高电场被施加到存储基元的隧 道氧化膜以将电子注入浮栅电极,从而使存储基元的阈值电压Vth增加预 定量。具体而言,设定验证电位VA1V并重复写入操作,直到电压变为等于 或大于该验证电压VA1V的阈值电压。因此,存储基元变为写入状态(数据 “10”)。如果即使写入操作重复预定次数,电压也未达到阈值电压(或 者,如果未达到阈值电压的存储基元的数目等于或大于预定值),则对物 理页的写入变为“写错误”(“程序错误”)。

接下来,将参考图21中的第二至第三阶段介绍对上页数据的写入。对 上页数据的写入基于从芯片外部输入的写入数据(上页数据)和已在存储 基元中写入的下页数据来执行。

换言之,如图21中的第二至第三阶段所示,当上页数据的值为“1” 时,高电场受到控制以便不被施加到存储基元的隧道氧化膜,从而防止存 储基元的阈值电压Vth增加。因此,数据“11”的存储基元(处于擦除状 态的阈值电压分布ER1)保持数据“11”,不发生任何变化(ER2),并 且数据“10”的存储基元(阈值电压分布A1)保持数据“10”,不发生任 何变化(B2)。但是,就确保分布之间的电压容限,期望使用大于上述验 证电压VA1V的正验证电压VB2V调整阈值电压分布的下限,从而形成具有 窄阈值电压分布宽度的阈值电压分布B2。如果即使下限调整重复预定次 数,电压也未达到阈值电压(或者,如果未达到阈值电压的存储基元的数 目等于或大于预定值),则对物理页的写入变为“写错误”(“程序错误”)。

另一方面,当上页数据的值为“0”时,高电场被施加到存储基元的隧 道氧化膜以将电子注入浮栅电极,从而使存储基元的阈值电压Vth增加预 定量。具体而言,设定验证电位VA2V和VC2V并重复写入操作,直到电压 变为等于或大于该验证电压VA1V的阈值电压。因此,数据“11”的存储基 元(处于擦除状态的阈值电压分布ER1)变为阈值电压分布A2的数据“01”, 并且数据“10”(A1)的存储基元变为阈值电压分布C2的数据“00”。 此时,使用验证电压VA2V和VC2V调整阈值电压分布A2和C2的下限。如 果即使写入操作重复预定次数,电压也未达到阈值电压(或者,如果未达 到阈值电压的存储基元的数目等于或大于预定值),则对物理页的写入变 为“写错误”(“程序错误”)。

另一方面,在擦除操作中,设定擦除验证电位Vev并重复擦除操作, 直到电压变为等于或小于该擦除验证电压Vev的阈值电压。因此,存储基 元变为写入状态(数据“00”)。如果即使擦除操作重复预定次数,电压 也未达到阈值电压(或者,如果未达到阈值电压的存储基元的数目等于或 大于预定值),则对物理页的擦除变为“擦除错误”。

上面是典型的4值存储系统中的数据写入系统实例。在存储3或更多 位的多位存储系统中,仅将阈值电压分布分为八种或更多模式的操作根据 上页数据进一步添加到上述操作中,且基本操作相同。

接下来,将介绍SSD2的配置实例。如图22所示,SSD2包括NAND 型闪存(下文简称为NAND存储器)16(该NAND存储器为非易失性半 导体存储器)、接口控制器(IFC)42(其通过ATA接口19执行与主机 设备3之间的信号接收与发送)、RAM(随机存取存储器)40(该RAM 为半导体存储器并包括高速缓冲存储器(CM)46(高速缓冲存储器46充 当接口控制器42与NAND存储器16之间的中间缓冲器)、SSD控制器 (SSDC)41(其执行NAND存储器16和RAM40的管理和控制以及接 口控制器42的控制)、以及连接这些组件的总线43。

可采用DRAM(动态随机存取存储器)、SRAM(静态随机存取存储 器)、FeRAM(铁电随机存取存储器)、MRAM(磁阻随机存取存储器)、 PRAM(相变随机存取存储器)、ReRAM(电阻式随机存取存储器)等 作为RAM40。RAM40可包括在SSDC41中。

NAND存储器16由多个NAND存储器芯片80构成,并存储主机设备 3指定的用户数据,存储管理用户数据的管理表,以及为了备份而存储 RAM40管理的管理信息。NAND存储器16包括存储基元阵列82,其中 多个存储基元以矩阵方式设置,每个存储基元可使用上页和下页执行多级 记录。NAND存储器16由多个存储器芯片构成,每个存储器芯片通过将 多个块设置为数据擦除单位来形成。在NAND存储器16中,数据写入和 数据擦除针对每个页执行。块由多个页构成。

RAM40包括高速缓冲存储器(CM)46,高速缓冲存储器46充当主 机设备3与NAND存储器16之间的数据传输高速缓冲器。此外,RAM40 充当管理信息存储器和工作区域存储器。在RAM40的区域40A中管理的 管理表通过载入在NAND存储器16的区域40M中存储的各种管理表来获 取,例如,在启动SSD2时载入,并且定期地或在关断电源时保存在NAND 存储器16的区域40M中。

SSDC41的功能通过处理器实现,该处理器执行存储在NAND存储器 16、各种硬件电路等中的系统程序(固件),并且SSDC41针对来自主机 设备3的各种命令(例如,写入请求、缓存清空请求和读取请求)执行例 如主机设备3与NAND存储器16之间的数据传输控制,执行RAM40和 NAND存储器16中存储的各种管理表的更新和管理,执行要写入NAND 存储器16的数据的ECC编码,以及执行从NAND存储器16读取的数据 的ECC编码,。

当主机设备3将读取请求或写入请求发送到SSD2时,主机设备3通 过ATA接口19输入LBA(逻辑块寻址)作为逻辑地址。LBA是逻辑地 址,其中从0开始的序列号附加于逻辑扇区(大小:例如,512B)。而且, 当向SSD2发出读取请求或写入请求时,除了LBA以外,主机设备3还 输入要作为读取请求或写入请求目标的逻辑扇区大小。

IFC42具有接收来自主机设备3的读取请求、写入请求、其它请求和 数据,以及将接收的请求和数据发送到SSDC41,在SSDC41的控制下将 数据发送到RAM40的功能。

图23示出SSD2中使用的管理信息的配置。如上所述,管理信息以 非易失性的方式存储在NAND存储器16的区域40M中。存储在区域40M 中的管理信息在启动SSD2时被载入到RAM40的区域40A内并被使用。 RAM40中的管理信息44定期地或在关断电源时保存在区域40M中。当 RAM40为诸如MRAM、FeRAM和ReRAM之类的非易失性RAM时, 该管理信息44只能存储在RAM40中,并且在这种情况下,该管理信息 44不存储在NAND存储器16中。为了减少对NAND存储器16的写入量, 要存储在管理信息42中的数据期望为通过压缩RAM40的区域40A中存 储的数据而获取的数据。而且,为了减少在NAND存储器16中写入数据 的频率,期望将存储在RAM40的区域40A中的有关管理信息44的更新 信息(差异信息)附加到管理信息45上。

如图23所示,管理信息包括空闲块表(FBT)60、坏块表(BBT)61、 活动块表(ABT)62、磁道表(以磁道为单位的逻辑-物理转换表)63、簇 表(以簇为单位的逻辑-物理转换表)64、和统计信息65。

如图24所示,LBA是逻辑地址,其中从0开始的序列号附加于逻辑 扇区(大小:例如,512B)。在该实施例中,定义由阶位等于或高于LBA 的低阶第(s+1)位的位串形成的簇地址以及由阶位等于或高于LBA的低阶 第(s+t+1)位的位串形成的磁道地址,作为SSD2的逻辑地址(LBA)的管 理单元。换言之,逻辑扇区是主机设备3中的最小访问单元。簇是用于管 理SSD中“小数据”的管理单元,并且簇大小被设定为等于逻辑扇区大小 的自然数倍的大小。磁道是用于管理SSD中“大数据”的管理单元,并且 磁道大小被设定为等于簇大小的两倍或更大自然数倍的大小。因此,当 LBA除以磁道大小时,磁道地址为商,并且当LBA除以磁道大小时,磁 道内地址为余数;当LBA除以簇大小时,簇地址为商,并且当LBA除以 簇大小时,簇内地址为余数。在下面的介绍中,为方便起见,磁道大小等 于可在一个物理块中记录的数据大小(当SSDC41中执行的ECC处理的 冗余位包括在物理块中时,从大小中排除该冗余位)并且簇大小等于可在 一个物理页中记录的数据大小(当SSDC41中执行的ECC处理的冗余位 包括在物理页中时,从大小中排除该冗余位)。

空闲块表(FBT)60管理NAND存储器中的物理块(空闲块:FB) 的ID(物理块地址),该物理块可在对NAND存储器16执行写入时被新 分配以供写入,并不指定其用途。而且,空闲块表60管理每个物理块ID 的擦除次数(擦除计数),当擦除块时,SSDC41递增对物理块的擦除计 数。

坏块表(BBT)61管理坏块(BB)的ID,这些坏块是由于存在大量 错误等而无法用作存储区域的物理块(物理块)。BBT61可以类似于FBT 60的方式管理每个物理块ID的擦除计数。

活动块表(ABT)62管理活动块(AB),这些活动块是被指定用途 的物理块。而且,活动块表62管理每个物理块ID的擦除计数,当擦除块 时,SSDC41递增物理块的擦除计数。

磁道表63管理磁道地址与物理块ID(其中存储对应于该磁道地址的 磁道数据)之间的对应关系。

簇表64管理簇地址、物理块ID(其中存储对应于该簇地址的簇数据) 与物理块内页地址(其中存储对应于该簇地址的簇数据)之间的对应关系。

统计信息65存储与SSD2可靠性相关的各种参数(X01至X25)。

统计信息65包括坏块总数(统计信息X01)、总擦除计数(统计信息 X02)、平均擦除计数(统计信息X03)、NAND存储器中写入错误出现 的累计数(统计信息X04)、NAND存储器中擦除错误出现的累计数(统 计信息X05)、读取逻辑扇区总数(统计信息X06)、写入逻辑扇区总数 (统计信息X07)、不可校正ECC错误计数(统计信息X08)、n位至m 位ECC校正单元总数(统计信息X09)、SATA通信中的R错误出现次 数(统计信息X10)、SATA通信中的错误出现次数(统计信息X11)、 RAM40中的错误出现次数(统计信息X12)、SSD2的总操作时间(统 计信息X13)、温度超过推荐操作温度最高值期间的累计时间(统计信息 X14)、温度变得低于推荐操作温度最低值期间的累计时间(统计信息 X15)、对命令的最大响应时间(统计信息X16)、对命令的平均响应时 间(统计信息X17)、NAND存储器的最大响应时间(统计信息X18)、 NAND的平均响应时间(统计信息X19)、当前温度(统计信息X20)、 最高温度(统计信息X21)、最低温度(统计信息X22)、统计信息增长 率(统计信息X23)、NAND垃圾收集(GC)失败标志(统计信息X24)、 寿命结束标志(统计信息X25)等。

介绍坏块总数(统计信息X01)。每当SSD2中NAND存储器16的 一个物理块添加到坏块中时(每当SSD2中NAND存储器16的一个物理 块被标记为坏块时),统计信息X01递增1。期望在制造SSD2时(在检 测过程之前)或者在检测SSD2时将统计信息X01重置为0。更期望,将 在检测过程中发生错误或在阈值分布之间具有小容限的块提前添加到后面 的块中。统计信息X01可直接根据BBT61计算,无需将其存储在统计信 息65中。统计信息X01越大,可靠性就降低得越大。

介绍总擦除计数(统计信息X02)。统计信息X02指示SSD2中NAND 存储器16的所有块上的累计擦除计数。每当擦除SSD2中NAND存储器 16的一个物理块时,统计信息X02递增1。期望在制造SSD2时(在检测 过程之前)或者在检测SSD2时将统计信息X02重置为0。统计信息X02 可直接根据FBT60、BBT61和ABT62计算,无需将其存储在统计信息 65中。统计信息X02越大,可靠性就降低得越大。

介绍平均擦除计数(统计信息X03)。统计信息X03指示SSD2中 NAND存储器16的所有块上的每块平均擦除计数。可从目标中排除部分 块(例如,存储管理信息的块)以对统计信息X3进行计数。期望在制造 SSD2时(在检测过程之前)或者在检测SSD2时将统计信息X03重置为 0。统计信息X03可直接根据FBT60、BBT61和ABT62计算,无需将其 存储在统计信息65中。统计信息X03越大,可靠性就降低得越大。

介绍NAND存储器中的累计写入错误出现次数(总写入错误计数、总 程序错误计数)(统计信息X04)。每当SSD2中的NAND存储器16内 在一个写入单元中出现写入错误时,统计信息X04递增1(或者以块为单 位递增)。期望在制造SSD2时(在检测过程之前)或者在检测SSD2时 将统计信息X04重置为0。统计信息X04越大,可靠性就降低得越大。

介绍NAND存储器中的累计擦除错误出现次数(总擦除次数)(统计 信息X05)。期望在制造SSD2时(在检测过程之前)将统计信息X05重 置为0。每当SSD2中NAND存储器16的一个块内出现擦除错误时,统 计信息X05递增1。可将多个块整体定义为一个擦除单元,并且每当在一 个擦除单元中出现擦除错误时,统计信息X05递增1。统计信息X05越大, 可靠性就降低得越大。

介绍读取逻辑扇区总数(统计信息X06)。统计信息X06是IFC42 发送到主机设备3作为读取数据的数据的逻辑扇区总数。期望在制造SSD 2时(在检测过程之前)或者在检测SSD2时将统计信息X06重置为0。 统计信息X06越大,可靠性就降低得越大。

介绍写入逻辑扇区总数(统计信息X07)。统计信息X07是IFC42 从主机设备3接收作为写入数据的数据的逻辑扇区总数。期望在制造SSD 2时(在检测过程之前)或者在检测SSD2时将统计信息X07重置为0。 统计信息X07越大,可靠性就降低得越大。

介绍ECC无法校正错误的总次数(不可校正ECC错误计数)(统计 信息X08)。当错误位无法通过ECC校正来校正时,统计信息X08每个 读取单元递增1。可添加无法校正的错误位的数目估计值或者可添加其中 错误无法被校正的块的数目。期望在制造SSD2时(在检测过程之前)将 统计信息X08重置为0。统计信息X08越大,可靠性就降低得越大。

介绍n位至m位ECC校正单元总数(n-m ECC错误校正计数)(统 计信息X10)。存在0≤n≤m≤最大校正位数的关系,其中n和m为自然 数。当对ECC校正单元(例如,物理页)执行ECC校正时,如果所有错 误位被成功校正并且校正的错误位数大于等于n且小于等于m,则“n位 至m位ECC校正单元总数”每个ECC校正单元递增1。当可通过ECC 校正来每个校正单元校正最多64位时,例如,准备八个参数,即,“1位 至8位ECC校正单元总数”、“9位至16位ECC校正单元总数”、“17 位至24位ECC校正单元总数”、“25位至32位ECC校正单元总数”、 “33位至40位ECC校正单元总数”、“41位至48位ECC校正单元总 数”、“49位至56位ECC校正单元总数”、以及“57位至64位ECC 校正单元总数”。当ECC校正正常执行时,八个参数中的任一者针对每 次对一个ECC校正单元的每个ECC校正递增1。期望在制造SSD2时(在 检测过程之前)或者在检测SSD2时将统计信息X09重置为0。统计信息 X09越大,可靠性就降低得越大。

介绍SATA通信中的R错误出现次数(统计信息X10)。每当SATA 标准中出现一个R错误(接收错误,R_ERR)时,统计信息X10递增1。 当在主机与SSD之间传输的帧中出现任何错误(例如CRC错误)时,该 错误作为R错误进行计数。可采用SATA标准的Phy Event计数器中的任 何计数器作为统计信息X10。期望在制造SSD2时(在检测过程之前)或 者在检测SSD2时将统计信息X10重置为0。统计信息X10越大,可靠性 就降低得越大。

介绍SATA通信中的错误出现次数(统计信息X11)。每当SATA通 信中出现不同的异常(R错误以外的异常)时,统计信息X11递增1。例 如,当在SSD2与主机设备3之间实际协商的通信速度为较缓慢的速度通 信标准时(例如,3Gbps),不管SATA接口19、IFC42和SSDC41是 否被设计为满足SATA6Gbps,在SATA通信中都会将此视为错误,并且 统计信息X11递增1。期望在制造SSD2时(在检测过程之前)或者在检 测SSD2时将统计信息X11重置为0。该值越大,可靠性就降低得越大。

介绍RAM40中的错误出现次数(统计信息X12)。例如,当ECC 电路或错误检测电路安装在RAM40或SSDC41上时,如果SSDC41检 测到指示无法通过ECC校正错误位的信号,或者指示从RAM40检测到 错误位的信号,则统计信息X12递增1。期望在制造SSD2时(在检测过 程之前)或者在检测SSD2时将统计信息X12重置为0。该值越大,可靠 性就降低得越大。

介绍SSD2的总操作时间(通电小时)(统计信息X13)。SSDC41 在SSD2通电的同时对时钟进行计数并从内置时钟电路接收信息,从而递 增经过时间。备选地,SSDC41可定期地从主机设备3接收主机设备3中 的时间信息,并且可以递增时间信息差。期望在制造SSD2时(在检测过 程之前)或者在检测SSD2时将统计信息X13重置为0。该值越大,可靠 性就降低得越大。

介绍温度超过推荐操作温度最高值期间的累计时间(统计信息X14)。 例如,当在SSD2中设置温度计时(例如,设置在SSD2的衬底上、SSDC 41中、以及NAND存储器16中),SSDC41定期地从温度计接收温度信 息。当所接收的温度超过推荐操作温度(例如,100℃)时,SSDC41基 于从内置时钟或主机设备3获取的时钟或时间信息递增SSD2在估计的操 作温度或更高温度上执行操作期间的时间量。期望在制造SSD2时(在检 测过程之前)或者在检测SSD2时将统计信息X14重置为0。该值越大, 可靠性就降低得越大。

介绍温度变得低于推荐操作温度最低值期间的累计时间(统计信息 X15)。当在SSD2中设置温度计时,SSDC41定期地从温度计接收温度 信息。当所接收的温度低于推荐操作温度(例如,-40℃)时,SSDC41基 于从内置时钟或主机设备3获取的时钟或时间信息递增SSD2在估计的操 作温度或更高温度上执行操作期间的时间量。期望在制造SSD2时(在检 测过程之前)或者在检测SSD2时将统计信息X15重置为0。该值越大, 可靠性就降低得越大。

介绍对命令的最大响应时间(命令的最大延迟)(统计信息X16)。 统计信息X16是在从主机设备3接收命令之后,直到对主机设备3做出响 应(或者直到命令执行完成)时所需时间(或时钟数)的最大值。当出现 超过X16的响应时间时,该响应时间覆盖X16。统计信息X16可针对每个 命令存储。期望在制造SSD2时(在检测过程之前)、在检测SSD2时或 者在SSD2运送时将X16重置为0。

介绍对命令的平均响应时间(命令的平均延迟)(统计信息X17)。 统计信息X17是在从主机设备3接收命令之后,直到对主机设备3做出响 应(或者直到命令执行完成)时所需时间(或时钟数)的平均值。例如, 统计信息X17通过将特定数量的响应时间列表存储在RAM40中并计算响 应时间列表的平均值来获取。统计信息X17可针对每个命令存储。期望在 制造SSD2时(在检测过程之前)、在检测SSD2时或者在SSD2运送时 将X17重置为0。

介绍NAND存储器的最大响应时间(NAND存储器的最大延迟)(统 计信息X18)。统计信息X18是从SSDC41对NAND存储器16做出指示 时到SSDC41接收到响应时(接收到命令执行完成通知)所需时间(或时 钟数)的最大值。当出现超过X18的响应时间时,该响应时间覆盖X18。 统计信息X18可针对每个命令存储。期望在制造SSD2时(在检测过程之 前)、在检测SSD2时或者在SSD2运送时将X18重置为0。

介绍NAND的平均响应时间(NAND存储器的平均延迟)(统计信 息X19)。统计信息X19是从SSDC41对NAND存储器16做出指示时到 SSDC41接收到响应时(接收到命令执行完成通知)所需时间(或时钟数) 的平均值。例如,统计信息X19通过将特定数量的响应时间列表存储在 RAM40中并计算响应时间列表的平均值来获取。统计信息X19可针对每 个命令存储。期望在制造SSD2时(在检测过程之前)、在检测SSD2时 或者在SSD2运送时将X19重置为0。

介绍当前温度(统计信息X20)。当在SSD2中设置温度计时,SSDC 41定期地从温度计接收温度信息。SSDC41将从温度计最后接收到的温度 存储在统计信息X20中作为当前温度。如果该值非常大(例如,85℃或更 高),则判定该值对SSD2的可靠性具有负面影响,如果该值非常小(例 如,-10℃或更低),则判定该值对SSD2的可靠性具有负面影响。

介绍最高温度(统计信息X21)。SSDC41将当前温度X20的最大值 存储在统计信息X21中作为最高温度。如果该值非常大(例如,85℃或更 高),则该值对SSD2的可靠性具有负面影响。当SSDC41从温度计接收 到高于X21的当前温度时,SSDC41将X21重写为当前温度。期望在制造 SSD2时(在检测过程之前)、在检测SSD2时或者在SSD2运送时将X21 重置为与SSD2的操作温度相比足够小的温度(例如,-40℃)。

介绍最低温度(统计信息X22)。SSDC41将当前温度X20的最小值 存储在统计信息X22中作为最低温度。如果该值非常小(例如,-40℃或 更低),则该值对SSD2的可靠性具有负面影响。当SSDC41从温度计接 收低于X22的当前温度时,SSDC41将X22重写为当前温度。期望在制造 SSD2时(在检测过程之前)、在检测SSD2时或者在SSD2运送时将X22 重置为与SSD2的操作温度相比足够大的温度(例如,120℃)。

介绍统计信息增长率(统计信息X23)。单独存储有关统计信息X01 至X19的未更新信息(例如,固定时间之前的值、最后一次接通SSD2时 的值、最后一次关断SSD2时的值)。统计信息X23例如通过以下任一方 程式定义。

统计信息增长率=(最新统计信息)-(旧信息)

统计信息增长率=((最新统计信息)-(旧信息))/(获取旧信息之 后经过的时间)

统计信息增长率=((最新统计信息)-(旧信息))/(获取旧信息之 后的NAND访问次数)

期望在制造SSD2时(在检测过程之前)或者在检测SSD2时将统计 信息X23重置为0。该值越大,可靠性就降低得越大。

介绍NAND垃圾收集(GC)失败标志(统计信息X24)。当统计信 息X24为1时,即使通过NAND整理(NAND垃圾收集(NAND GC)) 也无法获取足以用于操作的空闲块。

期望在制造SSD2时(在检测过程之前)或者在检测SSD2时将统计 信息X24重置为0。该值越大,可靠性就降低得越大。

介绍寿命结束标志(EOL标志,EOLF)(统计信息X25)。EOL标 志根据上述参数计算。例如,EOL标志可根据X01计算,如下所示:

EOLF=0(如果X01的原始值小于或等于X01的RMAX)

EOLF=1(如果X01的原始值大于X01的RMAX)

可存储所有上述参数,或者存储其中的部分参数或仅存储其中的任一 个参数,作为统计信息65。

期望将最新信息存储在RAM40的区域40A中,并且定期地备份到 NAND存储器16的区域40M中,作为统计信息65。另一方面,统计信息 65可仅存储在RAM40和NAND存储器16中的任一者中,或者该统计信 息可发送到主机设备3或存储在主机设备3中或与主机设备3相连的存储 装置中。

(LBA正向查找转换)

接下来,将参考图25介绍用于从SSD2中的LBA指定物理地址的程 序(LBA正向查找转换)。当指定LBA时,SSDC41根据LBA计算磁道 地址、簇地址和簇内地址。

SSDC41首先搜索磁道表63并指定对应于所计算的磁道地址的物理 ID(物理块地址)(步骤S100和S101)。SSDC41判定所指定的物理块 ID是否有效(步骤S102)。当物理块ID不为空(null)时,即,该ID 是有效值(步骤S102:是),SSDC41搜索该物理块ID是否存储在ABT 62中(步骤S103)。当物理块ID存储在ABT62中时(步骤S104:是), 从该物理块ID指定的物理块头位置移位磁道内地址的位置是NAND存储 器16中对应于指定的LBA的物理位置(步骤105)。在这种情况下,不 需要簇表64来指定NAND存储器16中对应于LBA的物理位置并且此 LBA称为“以磁道为单位管理的LBA”。在步骤S104,当物理块ID不存 储在ABT62中时(步骤S104:否),指定的LBA不具有物理地址并且 此状态被称为“未写入状态”(步骤S106)。

在步骤S102,当对应于指定的磁道地址的物理地址为空,即,无效值 时(步骤S102:否),SSDC41根据LBA计算簇地址并搜索簇表64以获 取物理块ID和对应的物理块内页地址(对应于根据簇表64计算的簇地址) (步骤S107)。从物理块ID和物理块内页地址指定的物理页的头位置移 位簇内地址的位置是NAND存储器16中对应于指定LBA的物理位置。在 这种情况下,无法仅通过磁道表63指定NAND存储器16中对应于LBA 的物理位置,还需要参考簇表64,此LBA称为“以簇为单位管理的LBA” (步骤S108)。

(读取操作)

接下来,将参考图26和图27介绍SSD2中的读取操作。该实施例中 介绍的读取操作是使用INCITS ACS-2中描述的60h READ FPDMA  QUEUED的实例。但是,可使用诸如25h READ DMA EXT之类的其它 写入命令并且读取命令类型的差别不影响本发明的本质。当SSD2从主机 设备3接收读取指令时(步骤S110),SSDC41将该读取指令添加到RAM 40中的读取指令队列中(步骤S111),并将指示接收到读取指令的通知 返回到主机设备3。

另一方面,当RAM40中的读取指令队列中存在指令时,SSDC41判 定读取处理是否可执行(步骤S120)。当SSDC41判定读取处理可执行 时,SSDC41根据图25所示的LBA正向查找转换过程,根据从主机设备 3接收的LBA指定数据的当前物理位置(步骤S121)。SSDC41从指定 位置的物理页读取数据(步骤S123),使用读取数据中的ECC冗余位执 行ECC校正(步骤S124),通过IFC42将校正的数据发送到主机设备3 (步骤S125),并更新统计信息65。SSDC41可在校正从NAND存储器 16读取的数据之前将该数据写入RAM40,然后SSDC41可校正在RAM 40中写入的数据并将该数据发送到主机设备3,或者SSDC41可在校正数 据之后将校正的数据写入RAM40,并且SSDC41可将在RAM40中写入 的数据发送到主机设备3。

在步骤S124,SSDC41尝试通过ECC校正数据,但是,当SSDC41 无法校正数据时,SSDC41删除包括无法根据ABT62解码的页的物理块 并在BBT61中登记(register)该块,然后在统计信息65中递增不可校正 的ECC错误计数(统计信息X08)。此时,期望将块中的数据复制到根 据FBT60分配的空闲块,在ABT62中登记空闲块的物理块ID,并将磁 道表63和簇表64中的物理块从复制源物理块ID重写到复制目的地物理 块ID。可将其中发生不可校正的ECC错误的错误块添加到BBT61中。

(写入操作)

接下来,将参考图28和图29介绍SSD2中的写入操作。该实施例中 介绍的写入操作是使用INCITS ACS-2中描述的61h WRITE FPDMA  QUEUED的实例。但是,可使用诸如35h WRITE DMA EXT之类的其它 写入命令并且写入命令类型的差别不影响本发明的本质。当SSD2从主机 设备3接收写入指令时(步骤S130),SSDC41将该写入指令添加到RAM 40中的读取指令队列中(步骤S131),并将指示接收到写入指令的通知 返回到主机设备3。

另一方面,当RAM40中的写入指令队列中具有指令时,SSDC41判 定写入处理是否可执行(步骤S140)。当SSDC41判定写入处理可执行 时,SSDC41通知主机设备3可执行写入处理,从主机设备3接收写入数 据,对接收到的数据执行ECC编码,并将编码数据存储在RAM40的高 速缓冲存储器46中。可将未编码的数据存储在高速缓冲存储器46中,并 且可在对NAND存储器16执行写入时对数据进行编码。

接下来,SSDC41读取FBT60(步骤S141)并从FBT60获取空闲块 的物理块ID。当没有空闲块时(步骤S142:否),SSDC41对NAND存 储器16执行下面将描述的NAND GC(步骤S143),在此NAND GC之 后,读取FBT60(步骤S144)并从FBT60获取空闲块的物理块ID。SSDC 41对其物理块ID被获取的空闲块执行擦除操作。当出现擦除错误时,该 物理块ID被添加到BBT61中并从FBT60删除,并且从S141重新开始 处理以再次获取空闲块。即使对于其中发生一次擦除错误的物理块,也可 正常地执行擦除,而不会在再次执行擦除操作的某些情况下导致擦除错误, 因此,就防止坏块数不必要地增加而言,期望提供每个块的擦除错误发生 次数项,作为FBT60或ABT62中针对每个块的统计信息X05,当发生块 擦除错误时,递增该统计信息,并且当每个块的擦除错误发生次数变得等 于或大于预定值时,在BBT61中登记该块。为了仅将其中连续发生擦除 错误的物理块变更为坏块,更期望地,SSCD41提供“每个块的连续擦除 错误发生次数”项代替“每个块的擦除错误发生次数”,当发生块擦除错 误时,递增该统计信息,并且在可以执行无错误的擦除时将该统计信息重 置为0,当“每个块的连续擦除错误发生次数”变得等于或大于预定值时, 在BBT61中登记该块。

接下来,为了搜索写入指令指定的LBA是否处于未写入状态,SSDC 41根据图25所示的正向查找转换过程判定对应于LAB的有效数据是否已 存储在NAND存储器16中(步骤S145和S146)。

当LBA处于未写入状态时(步骤S146:是),SSDC41将存储在高 速缓冲存储器46中的接收数据写入空闲块(步骤S147),在ABT62中 登记被执行写入的空闲块(新物理块)的ID以及对其的擦除计数,并且 从FBT60删除被执行写入的物理块的ID(步骤S151)。此时,通过将所 接收的数据的LBA分为以磁道为单位的区段(磁道区段)并判定是否在 这些磁道区段中填充数据,判定是否以磁道为单位或以簇为单位管理LBA (步骤S152)。换言之,当磁道区段填充数据时,以磁道为单位管理LBA, 当并非所有磁道区段填充数据时,以簇为单位管理LBA。当以簇为单位管 理LBA时,重写簇表64并且将LBA与新物理块ID关联(步骤S153), 而且,重写磁道表63并且将LBA与无效的物理块ID(例如,空)关联(步 骤S153)。当以磁道为单位管理LBA时,重写磁道表63并且将LBA与 新物理块ID关联(步骤S154)。

另一方面,在步骤S146,当LBA不处于未写入状态时,SSDC41基 于通过正向查找转换获取的物理块ID,从NAND存储器16读取对应物理 块中的所有数据,并将数据写入RAM40(步骤S148)。然后,SSDC41 将从主机接收并存储在高速缓冲存储器46中的数据覆写(组合)在RAM 40中的从NAND存储器16读取并写入RAM40的数据上(步骤S149), 并将覆写的数据写入空闲块(步骤S150)。

在步骤S150,当发生写入错误时,物理块ID被添加到BBT61中并 从FBT60删除,并且从S141重新开始处理以再次获取空闲块。当SSDC 41对其中发生一次写入错误的物理块再次执行写入操作时,SSDC41可能 在不导致写入错误的情况下成功地写入数据。因此,就防止不必要地增加 坏块数而言,期望提供每个块的写入错误发生次数项,作为FBT60或ABT 62中每个块的统计信息X04,当发生块写入错误时,递增该统计信息,并 且当“每个块的写入错误发生次数”变得等于或大于预定值时,在BBT61 中登记该块。为了仅将其中连续发生写入错误的物理块变更为坏块,更期 望地,SSCD41提供“每个块的连续写入错误发生次数”项代替“每个块 的写入错误发生次数”,当发生块写入错误时,递增该统计信息,并且在 可以执行无错误的写入时将该统计信息重置为0,当“每个块的连续写入 错误发生次数”变得等于或大于预定值时,在BBT61中登记该块。

SSDC41在ABT62中注册被执行写入的空闲块(新物理块)的ID以 及对其的擦除计数,并且从FBT60删除被执行写入的物理块的ID(步骤 S151)。当以簇为单位管理LBA时,SSDC41将簇表64中的旧物理块ID 重写为新物理块ID(步骤S152和S153)。当以磁道为单位管理LBA时, SSDC41将磁道表中的旧物理块ID重写为新物理块ID(步骤S152和 S154)。此外,SSDC41将旧物理块ID及对其的擦除计数添加到FBT60 中并从ABT62删除旧物理块ID及上面的擦除计数(步骤S155)。SSDC 41在统计信息65中反映上述写入处理的内容。

(NAND GC)

SSD2中所有LBA的容量被设计为小于SSD2的NAND存储器16的 总容量,从而只要写入操作继续以磁道为单位执行,空闲块就不会变得不 足。另一方面,当以簇为单位对未写入LBA执行多次写入时,容量大于 簇的物理块被分配给一个以簇为单位的写入操作,这样,NAND存储器16 中需要容量大于待写入数据的物理块,因此空闲块的数量可能变得不足。 当空闲块的数量变得不足时,可通过下面描述的NAND GC新获取空闲块。

将参考图30介绍SSD2中的NAND GC(NAND闪存中数据的垃圾 收集)。并非物理块中存储的所有簇总是有效簇,有效簇以外的无效簇不 与LBA关联。有效簇是其中写入最新数据的簇,无效簇是因为在不同的 位置中写入具有相同LBA的数据而不被引用的簇。物理块具有针对一定 量无效簇的数据的空闲空间,空闲块可通过执行收集有效簇中数据并在不 同块中重写这些数据的NAND GC来获取。

首先,将选择的物理块ID=i设定为0,并将空闲空间累计量S设定 为0(步骤S160)。SSDC41判定ID为i=0的物理块是否被输入磁道表 63(步骤S161)。当物理块被输入磁道表时,i递增1(步骤S162),对 具有下一数值ID的物理块执行类似的判定(步骤S161)。换言之,当物 理块ID包括在磁道表63中时,该物理块中的数据以磁道为单位管理,以 便该物理块不包括在NAND GC目标中。

当ID为i的物理块不以磁道为单位管理时(步骤S161:否),SSDC 41接着读取簇表64并获取ID为i的物理块中包括的有效簇的所有地址(步 骤S163)。然后,SSDC41获取已获取的有效簇的总容量的大小z(步骤 S164),在其中v<物理块大小的情况下(步骤S165),SSDC41将该物 理块的ID添加到NAND GC目标块列表中(步骤S166)。

此外,SSDC41将已获取的该物理块的簇容量v添加到已获取的簇累 计量S中并更新已获取的簇累计量S(步骤S167)。

在步骤S165,当不满足v<物理块大小时(S165:否),或者在步骤 S168,当已获取的簇累计量S尚未达到物理块大小时(S168:否),SSDC 41使i递增1(步骤S162)并以类似于上面的方式对具有下一数值ID的 物理块执行步骤S161至S167中的过程。然后,在步骤S168,SSDC41 重复步骤S161至S167中的过程,直到已获取的簇累计量S达到物理块大 小。

在步骤S168,当已获取的簇累计量S达到物理块大小时(S168:是), SSDC41从NAND存储器16读取NAND GC目标块列表上所有物理块的 所有有效簇的数据,并将其写入RAM40(步骤S169)。而且,SSDC41 对NAND GC目标块列表上所有物理块执行擦除处理(步骤S170),从 ABT62删除所有已被执行擦除处理的物理块并将它们添加到FBT60中 (步骤S171)。此时,擦除计数递增。在步骤S170执行的擦除操作的目 标可被限制为作为步骤S172中写入数据目标的块,这是抑制块上的擦除 计数所期望的。

当发生擦除错误时,物理块ID被添加到BBT61中并从FBT60删除。 当SSDC41再次擦除发生一次擦除错误的物理块时,SSDC41可能在不引 起擦除错误的情况下成功完成擦除操作。因此,为了防止不必要地增加坏 块数,期望在FBT60或ABT62中针对每个块提供“每个块的擦除错误发 生次数”项,当发生块擦除错误时,递增该项,并且当每个块的擦除错误 发生次数变得等于或大于预定值时,在BBT61中登记该块。为了仅将其 中连续发生擦除错误的物理块变更为坏块,更期望地,SSDC41提供“每 个块的连续擦除错误发生次数”项代替“每个块的擦除错误发生次数”, 当发生块擦除错误时,递增该项,并且在可以执行无错误的擦除时将该项 重置为0,当“每个块的连续擦除错误发生次数”变得等于或大于预定值 时,在BBT61中登记该块。

SSDC41从FBT60获取新空闲块,将已写入RAM40的数据写入已 获取的空闲块(步骤S172),将被写入数据的空闲块的物理块ID以及对 该块的擦除计数添加到ABT62中,然后从FBT60删除被写入数据的块的 块ID(步骤S173)。此外,SSDC41更新簇表64中的簇地址、物理块ID 以及物理块内页地址以对应于此时的NAND GC(步骤S174)。SSDC41 基于上述NAND GC的处理内容更新统计信息65。

在步骤S172,当发生写入错误时,物理块ID被添加到BBT61中并 从FBT60删除,然后再次获取空闲块。当SSDC41再次将数据写入发生 一次写入错误的物理块时,SSDC41可能在不引起写入错误的情况下成功 写入数据。因此,为了防止不必要地增加坏块数,期望在FBT60或ABT62 中针对每个块提供“每个块的写入错误发生次数”项,当发生块写入错误 时,递增该项,并且当“每个块的写入错误发生次数”变得等于或大于预 定值时,在BBT61中登记该块。为了仅将其中连续发生写入错误的物理 块变更为坏块,更期望地,SSDC41提供“每个块的连续写入错误发生次 数”项,代替“每个块的写入错误发生次数”,当发生块写入错误时,递 增该项,并且在可以执行无错误的写入时将该项重置为0,当“每个块的 连续写入错误发生次数”变得等于或大于预定值时,在BBT61中登记该 块。

在图30的过程中,通过执行优先在空闲块中置入数据来执行NAND GC,但是,也可通过以下方式优先获取空闲块来执行NAND GC:即,在 步骤164通过从物理块大小减去已获取簇的容量来获取v,然后在步骤 S165判定是否满足v>0,当满足v>0时,继续到步骤S168,当不满足v>0 时,继续到步骤S162。

接下来,将参考图31介绍SSD2中的删除通知。删除通知是当主机 设备3中的OS100删除数据时,从主机设备3发送到外部存储装置的指 令。删除通知的实例例如包括INCITS ATA/ATAPI命令集-2(ACS-2)中 描述的Data Set Management Command(数据集管理命令)(被称为修剪 (TRIM)命令)。在此方法中,当数据从OS100删除时,将已删除数据 所在的逻辑地址区域(LBA区域)通知给外部存储装置,作为由LBA和 逻辑扇区数的组合形成的LBA范围条目,以便即使在外部存储装置中, 该区域也可用作空闲空间。删除通知允许SSD2获取新空闲块。TRIM命 令的功能可通过其它命令实现,例如除了Data Set Management Command 以外,还有INCITS ACS-2中描述的SCT Command Transport和对于供 应商唯一的命令。当OS100为紧急OS时,为了减少对NAND存储器的 写入,期望禁止在紧急OS的情况下发出删除通知。另一方面,删除通知 即使在紧急OS的情况下也允许发出,因为在删除通知处理中,最多只有 关于管理信息45的重写被写入NAND存储器16并且没有任何用户数据 (或极少用户数据)被写入NAND存储器16。

当SSD2从主机设备3接收删除通知时(步骤S180),SSDC41根据 图25所示的过程对删除通知中包括的LBA执行LBA正向查找转换。当 删除通知中包括的LBA以磁道为单位管理时(步骤S181:是),SSDC41 将物理块ID添加到FBT60中并将其从ABT62删除(步骤S184)。另一 方面,当删除通知中包括的LBA以簇为单位管理时(步骤S181:否), SSDC41从簇表64删除所有对应于物理块的簇(步骤S182),将适当的 有效值(例如,FFFF)写入磁道表63中与磁道(对应于LBA)对应的物 理块ID(步骤S183),然后将该物理ID添加到FBT60中并将其从ABT 62删除(步骤S184)。在SSD2中,除了NAND GC以外,还可通过删 除通知处理获取空闲块。

一般可通过此NAND GC获取用于写入操作的足够空闲块数。当即使 通过NAND GC无法获取用于写入操作的足够空闲块数时,期望将统计信 息65中的NAND GC失败标志(统计信息X24)设定为1,以便能够向主 机设备3通知SSD2无法通过主机设备3获取统计信息65来获取空闲块。 为了在NAND GC失败标志设定为1之后SSD2实际停止操作之前(在寿 命结束之前)提供时延,在满足下面条件的情况下,期望控制将NAND GC 失败标志设定为1。

(通过执行NAND GC获取的空闲块数)<(写入所需的空闲块数)+ (余量)

上述NAND GC不仅可在从主机设备3接收写入请求时执行,例如也 可以在自上次从主机接收指令起经过预定时间时,或者在从主机设备3接 收到用于转换到待机、空闲或休眠状态的命令时执行,或者,例如可以在 SSD2通过ACS-2中描述的SCT Command Transport或其它供应商命令 从主机设备3接收用于开始NAND GC的指令时执行。当OS100为紧急 OS时,为了减少写入NAND存储器的数据,即使自上次从主机设备3接 收指令起已经过预定时间时,并且即使在从主机设备3接收到用于转换到 待机、空闲或休眠状态的命令时,期望也不执行NAND GC。此外,当OS 100为紧急OS时,为了减少写入NAND存储器的数据,期望禁止在紧急 OS的情况下发出用于开始NAND GC的指令。

(错误处理)

接下来,将参考图32介绍与SSD2中的NAND存储器16相关的错误 处理。诸如用于来自主机设备3的写入请求的处理和NAND GC处理之类 的各种处理一般根据上述的方式执行,但是,存在对NAND存储器16的 写入操作(编程操作)中发生写入错误的情况、对NAND存储器16的擦 除操作(擦除操作)中发生擦除错误的情况、在对NAND存储器16的读 取操作中发生不可校正的ECC错误(错误校正处理失败)的情况等,并 且需要针对这些情况的例外处理。

当发生上述任一错误时(步骤S190),SSDC41将其中发生错误的物 理块添加到BBT61中(步骤S191)并从ABT62和FBT60删除其中发 生错误的物理块(步骤S192)以防止随后访问其中发生错误的物理块。此 时,其中发生错误的物理块中的数据可被复制到另一物理块。SSDC41基 于上述错误处理更新统计信息65。

在上文中,介绍了与读取处理、写入处理和NAND处理相关的错误处 理实例,但是,该错误处理不限于这些实例,该错误处理可应用于针对 NAND存储器16的所有读取处理、写入处理和错误处理。

(控制工具)

当使用SSD2时,NAND存储器16的每个块的可靠性降低,因此坏 块数增加,并且空闲块数和活动块数总量减少。当进一步使用SSD2时(当 SSD2磨损时),即使执行NAND GC,也无法保证空闲块数足以执行写 入处理,这表示SSD2的寿命结束(EOL,寿命结束)。在下文中,介绍 当SSD2达到寿命结束时,对控制工具200的处理。

当控制工具200被激活时,控制工具200驻留在主存储器6中并监测 SSD2中的统计信息65。为了持续监测SSD2中的统计信息65,期望在将 正常OS100A从区域16D(或20D)读取到区域6A时或者在此操作之后 立即,例如通过在正常OS100A的启动程序中注册控制工具200的启动程 序,从区域16B(或区域20B)读取控制工具200。例如,当OS100为 Windows(注册商标)时,例如,通过在Windows(注册商标)的开始菜 单中注册控制工具200,将控制工具200注册为服务,或者在Windows(注 册商标)的注册表中注册控制工具200,将控制工具200设定为启动时的 常驻程序,从而允许自动激活控制工具200。当BIOS11D被从BIOS-ROM 11读到区域6A时,也可从区域11B读取控制工具200。

例如,如图33所示,控制工具200以规则的时间间隔(例如,每1 分钟)从SSD2获取统计信息65。作为获取统计信息的方法,例如,可以 使用INCITS ACS-2中描述的SMART READ DATA(B0h(D0h))(这是 S.M.A.R.T(自监测分析和报告技术)命令,为存储器自诊断功能)、INCITS  ACS-2中描述的IDENTIFY DEVICE(ECh)、ACS-2中描述的SCT  Command Transport或对于供应商唯一的命令。

图34示出与在SSD2中管理的统计信息65(统计信息X01至X19、 X23和X24)相关的表实例。如图34所示,当使用SMART READ DATA (B0h(D0h))读取统计信息65时,将属性ID(属性ID)分配给统计信息65 的每个组成部分(X01至X19、X23和X24等)。属性ID可仅被分配给 这些组成部分的一部分。SMAB是预定值,作为统计信息65的每个组成 部分的标准化最佳值。SMAL是标准化值的下限,用来保证SSD的可靠性, 并且SSDC41将SMAL计算为SMAL=SMAB*AMALR(0≤AMALR<1) (SMAL是整数并通过舍入、上舍入小数点之后数字或下舍入小数点之后 数字中的任一方法而从小数转换为整数)。SSDC41通过下面的方程式将 智能信息的属性值(图34中的“值”)计算为标准化统计值,然后将其发 送到控制工具200。属性阈值是图34中的“阈值”,原始值是图34中的 “原始值”。

属性值=SMAL+SMAB×(1-AMALR)×(RMAX-原始值)/RMAX

属性阈值=30(固定值)

RMAX=统计信息的原始值上限,用于保证可靠性

原始值=统计信息的原始值

标准化最佳值SMAB可以是任何自然数,例如,可以预定SMAB=100。 AMALR可以是任何满足0≤AMALR<1的数值,例如,可以预定 AMALR=0.3。而且,可针对X01至X19、X23和X24中的每一者使用不 同的RMAX、AMALR和SMAB。当SMAB和AMALR被预定为 SMAB=100和AMALR=0.3时,紧接在运送之后SSD2的每个统计信息的 属性值为100(作为最佳值),该属性值随着可靠性降低而逐渐降低。当 SSD2的可靠性无法再保证时(当统计信息的原始值变得等于或大于 RMAX时),该属性值达到30或更低。可使用ACS-2中描述的B0h/DAh  SMART RETURN STATUS向主机3通知统计信息65的原始值超过其阈 值,并且控制工具200能够根据命令的输出判定原始值是否超过其阈值。

当在分析统计信息的原始值与SSD2的FR之间的关联关系之后SSD 2的故障率(FR)超过最大FR时,RMAX优选地预定为等于统计信息的 原始值。例如,如图35所示,当年故障率(AFR)超过最大AFR(其在 SSD2开发阶段的SSD2规格文件中描述)时,SSD2的供应公司可将 RMAX预定为等于统计信息的原始值。AFR可使用威布尔(Weibull)统 计法计算。例如,SSD2的供应公司可在SDD2开发阶段,在特定时间段 内对大量供测试的SSD2(例如,100个)构成的组执行磨损测试(或老 化测试),在这些测试中,在高温下重复执行擦除操作、写入操作、读取 操作和读取数据的验证操作以检查NAND存储器16的数据可靠性,同时 监测统计信息,并且预定RMAX在AFR达到作为RMAX的固定比率时 等于统计信息的原始值。例如,SSD2的供应公司可执行数据保持测试, 其中在高温条件下,使磨损的SSD2在特定时间段或更长时间段内不与主 机3附接,之后,降低SSD2的温度,由主机3对SSD2执行读取操作, 当读取数据无法通过ECC校正时(或者当无法通过ECC校正的数据为固 定数量或更多时),将此定义为SSD2的缺陷(故障),并且通过将缺陷 数除以被执行等效测试的SSD2数而获取的值用作FR。当AFR显著地超 过允许的AFR时,供应公司可将RMAX预定为等于统计信息的原始值。 根据下面的定义,RMAX’可通过在RMAX上添加某一余量进行预定,并 且可替代RMAX使用。

RMAX’=RMAX-余量

图34中的“最差”可被用作控制工具200的指标以检测(诊断)SSD 2的EOL。“最差”被SSDC41计算为属性值的最差值。例如,在X01 至X09和X23的情况下,最差例如是SSD2运送之后(或制造SSD2之 后),属性值的最小值。过去预定时间段内(滑动窗口内)的属性值的最 小值可被用作最差值。通信或处理的过去预定操作计数内(或特定数据量 交易内)的属性值的最小值可被用作最差值。

图34中的“原始数据”(原始值)可被用作控制工具200的指标以检 测(诊断)SSD2的EOL。统计信息(例如,X01至X09、X23、X24和 X25)的原始值作为原始数据被从SSD2发送到控制工具200。在这种情 况下,控制工具200已将RMAX存储在控制工具200中,或者通过从SSD 2单独地读取RMAX或从其它存储装置读取RMAX来获取RMAX,将 RMAX与原始数据进行比较,并且当关系变为原始数据>RMAX或原始数 据≥RMAX时,判定SSD2已达到寿命结束(判定SSD2已达到其EOL)。 例如,在NAND GC失败标志(统计信息X24)的情况下,如果该标志为 1,则控制工具200判定SSD2已达到其EOL。例如,在坏块总数(统计 信息X01)的情况下,如果该数量超过预定值,则控制工具200判定SSD 2已达到其EOL。统计信息的原始值并不一定需要作为原始数据输出,例 如,SSDC41可以将通过对统计信息的原始值执行四种算术运算获取的值 作为原始数据发送到到控制工具200,并且通过将该值与以相同方式对 RMAX执行四种算术运算获取的值进行比较来执行判定。备选地,SSDC 41可以将通过对统计信息的原始值进行加密(或编码)获取的数据作为原 始数据发送到控制工具200,然后对该数据进行解密(或解码),并通过 将解密后的数据与RMAX进行比较来执行判定。

通过上述方式,控制工具200判定SSD2是否已达到其EOL(SSD2 是否处于异常状态),当判定SSD2已达到其EOL时(或者当判定SSD2 处于异常状态时),移至寿命到期处理(EOL处理),将在下面对此进行 描述(步骤S205)。统计信息65可采取除统计信息X01至X19、X23、 X24和X25以外的其它各种形式,并且本发明也可应用于这些形式。而且, 尽管X01至X19、X23、X24和X25与FR之间的关系为正相关,但是本 发明也可应用于与FR具有负相关的统计信息。例如,可使用SSD2在运 送之后所经受的最低温度。在这种情况下,SSD2的供应公司可以预定保 证可靠性的下限RMIN代替RMAX,并且当统计信息变得低于RMIN时, 主机2判定SSD2已达到其异常状态(或其EOL)。

在图33中,当使用S.M.A.R.T时,控制工具200优选地以规则的时 间间隔(例如,每1分钟)获取统计信息(步骤S200:是)。控制工具 200发出在ACS-2中描述的B0h/D0h SMART READ DATA,该命令是统 计信息获取命令(步骤S201),从SSD2接收包括统计信息的数据(步骤 S202),然后诊断该接收的数据(步骤S203)。诊断方法如上所述。在步 骤S204,当控制工具200检测到(诊断)SSD2已达到其EOL时(步骤 S204:是),该控制工具移至寿命到期处理(EOL处理)(步骤S205)。 即使SSD2尚未达到其EOL,控制工具200也可移至步骤S205中的处理, 例如,当统计信息超过预定RMAX或者统计信息指示无法在正常操作中 采用的异常值时。

还可以通过使用统计信息65以外的信息移至寿命到期处理。例如,如 图36所示,控制工具200从OS100可获取(监测)主机3从SSD2接收 的响应信息(请参阅图16)(步骤S210)。当主机接收错误响应(错误 消息)时,控制工具200判定SSD2进入异常状态,并移至寿命到期处理 (步骤S212)。控制工具200可监测任何命令的响应。另一方面,例如, 控制工具200优选地仅监测从主机3传送到SSD2的写入命令的响应,该 命令的响应从SSD2传送到主机3,例如ACS-2中描述的61h WRITE  FPDMA QUEUED和35h WRITE DMA EXT,这是为了减少对CPU4的 负荷。尤其是,当SSD2是使用作为专利文献1给出的公开号为 2009-0222617的美国专利申请中描述的发明的SSD时,当SSD2已达到其 寿命结束时,写入命令的响应作为错误返回,因此,可以在不获取任何统 计信息的情况下判定SSD2已达到其寿命结束。不用说,即使SSD2不是 使用作为专利文献1给出的公开号为2009-0222617的美国专利申请中的发 明的SSD,本发明当然仍适用。

SSDC41可被配置为即使处于专利文献1中的只读模式,也不将错误 返回到特殊写入命令(例如,ACS-2中描述的SCT Command Transport 和对于供应商唯一的命令)。然后,即使SSD2处于将错误返回到正常写 入命令的状态,也可通过使用上述特殊命令执行某些特殊的写入操作,例 如下面将描述的重写SSD2中的启动载入器或写入紧急OS。写入SSD2 以外的存储装置时不需要这样做。备选地,在正常OS是仅使用特定写入 命令(正常写入命令)(例如,61h WRITE FPDMA QUEUED)作为写 入命令的OS的情况下,SSDC41可被配置为当SSDC41进入专利文献1 中的只读模式时,将错误返回到正常写入命令(例如,61h WRITE FPDMA  QUEUED),并且不将错误返回到其它命令(特殊的写入命令)(例如, 30h WRITE SECTOR(S))。然后可通过使用特殊的写入命令(例如,30h  WRITE SECTOR(S))执行将启动载入器、紧急OS等写入SSD2。

响应受控制工具200监测的命令可以是写入命令以外的命令。例如, 控制工具可监测响应(输出)并报告ACS-2中描述的B0H/D4H SMART  EXECUTE OFF-LINE IMMEDIATE或90h EXECUTE DEVICE  DIAGNOSTIC的响应。

而且,为了在发生具有再发生高可能性的命令错误时执行寿命到期处 理,控制工具200优选地仅在发生多次命令错误时执行寿命到期处理。这 是因为,如果特定的命令响应为错误,则当再次发送同一命令时,下面的 响应可能不是错误,此时,SSD2可能未达到其EOL。而且,为了严格判 定错误再发生的可能性,期望在命令错误连续发生多次时执行寿命到期处 理。备选地,如图37所示,当在监测对SSD2的命令的同时错误作为命 令响应返回时(步骤S220和S221:是),控制工具200或OS100可重试 对SSD2的相同命令(命令重试)(步骤S222),并且当重试的命令为错 误时(步骤S223:是),可执行寿命到期处理(步骤S224)。

(寿命到期处理)

接下来,将介绍寿命到期处理(异常状态处理)。在第一实施例中, 介绍在正常OS和紧急OS已存储在SSD2中的情况下的寿命到期处理。 如图9至图15所示,正常OS100A、紧急OS100B和启动载入器300例 如在计算机系统1运送之前由计算机系统1的制造商写入SSD2,或者在 计算机系统1运送之后由用户从诸如DVD-ROM、USB存储器和SSD之 类的安装盘安装它们来写入SSD2,或者在计算机系统1运送之后由用户 从WEB下载安装镜像并使用下载的安装镜像安装它们来写入SSD2。在 NAND存储器16中,如图9所示,启动载入器300被写入区域16C,正 常OS100A被写入区域16D,紧急OS100B被写入区域16E,并且通过 RAM40中存储的管理信息44为区域16C、区域16D和区域16E中的每 一者分配LBA。LBA16C被分配给区域16C,LBA16D被分配给区域16D, LBA16E被分配给区域16E。LBA还以类似的方式被分配给存储在启动载 入器300中的上述OS指针信息OSPT(指示待读取OS的LBA的指针信 息),并且被分配给OSPT的LBA被称为LBAOSPT。LBAOSPT包括在 LBA16C中。

控制工具200重写启动载入器300以在下次启动计算机系统1时,将 紧急OS100B而非正常OS100A读到主机设备3的主存储器6的区域6A 中。当正常OS100A被用作CPU4的OS100时,主机设备3可对SSD2 执行写入操作,这样导致进一步缩短SSD2的寿命或破坏被写入SSD2 的数据或已写入SSD2的数据。另一方面,如该实施例操作的那样,当 紧急OS100B而非正常OS100A被读到主存储器6的区域6A中并且CPU 4使用紧急OS100B时,主机3被禁止执行对SSD2的写入操作,以便 能够读取SSD2中的数据,并且可以在破坏SSD2中的数据或SSD2呈 现为不可读之前将SSD2中存储的用户数据备份到另一存储介质中。

例如,当在图33中的步骤S205调用寿命到期处理时,如图38所示, 控制工具200重写启动载入器300以在下次启动计算机系统1时,将紧急 OS100B而非正常OS100A读到主存储器6的区域6A中。例如,控制工 具200将LBA16E作为写入数据写入LBAOSPT。因此,当下次启动计 算机系统1时,CPU4可通过读取OS指针信息OSPT并将读取指令发送 到LBA16E(其是OS指针信息OSPT指示的LBA)来读取紧急OS100B。 在重写启动载入器300之前或之后,控制工具200可通过显示器9显示消 息“SSD已达到其寿命结束。激活紧急OS。”。

如图10所示,如果控制工具200存储在ROM11中并在从SSD2载 入OS100之前从ROM11载入,则控制工具200可重写存储在主存储器 6中并且在启动主机3时从存储在NAND闪存16中的启动载入器300载 入的启动载入器,控制工具200无需重写存储在NAND闪存16中的启动 载入器300。然后启动载入器300如上所述基于主存储器6中的OSPT301 将正常OS区域16D或紧急BIOS区域16E中的一者读出到主存储器6 中的区域6A。

如图11所示,如果控制工具200、正常OS100A(正常BIOS100A) 和紧急OS100B(紧急BIOS100B)存储在ROM11中并且在从SSD2 载入OS100之前从ROM11载入,则当启动主机3时,控制工具200可 重写存储在主存储器6中的BIOSPT301,控制工具200无需重写存储在 NAND闪存16中的启动载入器300。然后IPL如上所述基于主存储器6 中的BIOSPT301将正常BIOS区域11D或紧急BIOS区域11E中的一 者读出到主存储器6中的区域6A。

例如,在图38中,仅执行重写启动载入器300作为寿命到期处理。例 如,在图39中,控制工具200通过在步骤S240重写启动载入器之后, 将复位命令发送到计算机系统1或将复位命令发送到正常OS(步骤S241) 来重新启动计算机系统1。

例如,如图40所示,控制工具200在步骤S250重写启动载入器之后, 通过显示器9显示文本“SSD已达到其寿命结束。激活紧急OS。现在重 新启动?”以及“确认”按钮。当通过鼠标15或键盘14按下“确认”按 钮时(步骤S252:是),控制工具200重新启动计算机系统1(步骤S253)。 而且,控制工具200还可以在命令提示屏幕上显示文本“SSD已达到其 寿命结束。激活紧急OS。现在重新启动?y:是,n:否”代替显示“确 认”按钮,当输入“y”并通过键盘14按下回车键时,控制工具200重新 启动计算机系统1。

图41示出重新启动计算机系统1时的操作过程。当重新启动计算机系 统1时,CPU4通过使用对应于区域16C和LBAOSPT的LBA从SSD2 读取启动载入器300和OS指针信息OSPT(步骤S260)。接下来,CPU 4使用启动载入器300执行所需的启动处理并分析OS指针信息OSPT以 指定由OS指针信息OSPT指示的LBA。然后,CPU4将对指定LBA的 读取指令发送到SSD2以从SSD2读取由OS指针信息OSPT指定的OS。 因此,当由OS指针信息OSPT指示的LBA指定区域16D(其是正常OS 100A的存储区域)时(步骤S261:是),从区域16D读取正常OS100A 并将其写入主存储器6的区域6A(步骤S262),并且,当由OS指针信 息OSPT指示的LBA指定区域16E(其是紧急OS100B的存储区域)时 (步骤S261:否),从区域16E读取紧急OS100B并将其写入主存储器 6的区域6A(步骤S263)。通过这种方式,当重写启动载入器300中的 OS指针信息OSPT以通过控制工具200进行的寿命到期处理读取紧急 OS100B时,从区域16E读取紧急OS100B并将其写入主存储器6的区 域6A。这样便可启动紧急OS100B。

通过这种方式,当统计信息尚未超过阈值时,启动载入器载入正常 OS100A,当统计信息已超过阈值时,启动载入器载入紧急OS100B。

(备份功能)

为了便利用户将SSD2中的用户数据备份到其它存储装置,期望在紧 急OS100B中添加用户数据备份功能。在SSD2被视为已达到其EOL的 状态下,考虑到SSD2的数据保持可靠性降低,因此需要尽快将SSD2 中的用户数据保存到其它备份存储装置。

图42是示出为紧急OS100B提供备份功能的情况下,主机设备3的 配置的图。备份存储装置(例如,另一SSD和硬盘驱动器)150通过接口 19(在该实施例中,采用SATA接口)连接到主机设备3。备份存储装置 150不需要在计算机系统1运送时安装,例如,当用户使用单独购买的SSD 作为备份存储装置150时,用户可通过SATA电缆将SSD的SATA端口 连接到主板30(请参阅图17)以及通过电力电缆将SSD2的电源端口连 接到电源单元32。

图43示出在将备份功能添加到紧急OS100B中时,紧急OS100B的 启动过程实例。图43中步骤S270至S273的操作与图41中步骤S260至 S263的操作相同。在图43中,步骤S274至S276被添加到图41所示的计 算机系统1的启动程序中。在启动紧急OS100B之后,例如,当用户通过 键盘14或鼠标15从紧急OS100B的程序菜单选择备份功能或者当启动紧 急OS100B时,自动开始步骤S274中的处理以及后续步骤。期望在备份 处理之前在显示器9上显示消息“现在备份?”和确认按钮,从而允许用 户随意选择备份时间。当通过鼠标15或键盘14选择确认按钮时,处理继 续到步骤S275中的“是”。备选地,可通过命令提示在显示器9上显示 消息“是否备份?是:Y,否:N”,并且可通过从键盘14按下Y按钮和 回车键使处理继续到步骤S275中的“是”。当以此方式选择备份功能时 (步骤S275:是),紧急OS100B开始备份处理。

作为备份处理内容,例如,紧急OS100B将从SSD2读取的数据写入 与从SSD2读取的数据的LBA(SSD2中的LBA)相同的LBA(备份存 储装置150中的LBA)(逐LBA备份)。例如,SSD2中LBA=0h的数 据被复制到备份存储装置150中的LBA=0h(步骤S276)。而且,SSD2 中LBA=234c5h中的数据被复制到备份存储装置150中的LBA=234c5h。 数据复制通过以下步骤执行:将例如ACS-2中描述的60h READ FPDMA  QUEUED或25h READ DMA EXT命令发送到具有指定LBA和逻辑扇区 长度的SSD2,从SSD2接收读取数据并将其写入主存储器6,将例如 ACS-2中描述的61h WRITE FPDMA QUEUED或35h WRITE DMA  EXT命令发送到具有指定LBA和逻辑扇区长度的备份存储装置150,以 及将写入主存储器6的数据发送到备份存储装置150。备份处理可针对整 个LBA区域执行,或者可针对LBA区域的一部分执行。

在该备份处理中,紧急OS100B可将SSD2中所有文件复制到备份存 储装置150。在许多OS中,用户不通过直接指定LBA访问数据,而是使 用文件ID(文件名)访问数据。例如,如图44所示,SSD2存储文件管 理表140(元数据140),该表将文件ID与LBA和逻辑扇区长度进行关 联。LBA还根据管理信息44被分配给文件管理表140。正常OS100A基 于文件管理表140,将从图16所示的其它软件接收的文件ID转换为LBA, 并将其发送到SSD2,以及基于文件管理表140,将从SSD2接收的LBA 转换为文件ID,并将其发送到其它软件。在备份处理中,紧急OS100B 从SSD2读取文件管理表140,针对每个文件ID将读取文件管理表140 中对应的LBA上的数据的命令(例如,60h READ FPDMA QUEUED和 25h READ DMA EXT命令)发送到SSD2,从SSD2接收读取数据,然 后将其写入主存储器6。而且,紧急OS100B读取备份存储装置150中的 文件管理表(未示出),将写入主存储器6的数据写入未被分配文件ID 的LBA,获取SSD2的所有文件的所有LBA以将被写入的LBA与文件名 进行关联,读取已获取的LBA上的所有数据,将读取数据写入备份存储 装置150,然后重写备份存储装置150中的文件管理表(未示出)以将被 写入的LBA与文件ID进行关联。备份处理可针对所有文件执行,也可对 部分文件执行。

而且,在将备份数据写入备份存储装置150时,从SSD2读取的数据 可被压缩(编码)和写入。而且,还可以读取SSD2中诸如文件管理表140 之类的管理信息,获取有关正在使用的区域和文件的信息,基于已获取的 信息针对SSD2中的数据产生ROM映像,然后将所产生的ROM映像存 储在备份存储装置150中。

在上面的介绍中,使用了备份存储装置为通过SATA接口连接的 SATA装置的情况。也可使用其它备份存储装置。例如,可使用诸如USB 存储器之类的USB存储装置151和支持USB接口的SSD作为图45所示 的备份存储装置,可使用可写光驱152(例如DVD-R、DVD-RW和蓝光 (Blu-ray)(注册商标)盘)作为图46所示的备份存储装置,或者可使 用通过因特网或LAN连接的网络存储服务器153(云存储服务器)作为图 47所示的备份存储装置。而且,备份功能还可应用于其它实施例。

如图9所示,用于紧急OS100B的存储区域16E与管理信息44中的 LBA关联。另一方面,为了防止用户无意中重写区域16E中的数据,紧急 OS可记录在存储区域16E中,而不在SSD2运送时分配LBA,并且在执 行寿命到期处理时,通过控制工具200将SCT Command Transport或对 于供应商唯一的命令发送到SSD2,SSDC41可重写管理信息44并将LBA 分配给区域16E。备选地,通过控制工具200将SCT Command Transport 或对于供应商唯一的命令(包括被分配LBA的区域16E的LBA范围)发 送到SSD2,SSDC41可重写管理信息44,以便区域16E不被分配LBA, 并且在执行寿命到期处理时,通过控制工具200将SCT Command  Transport或对于供应商唯一的命令发送到SSD2,SSDC41可重写管理信 息44并将LBA分配给区域16E。

通过这种方式,根据第一实施例,控制工具200判定SSD2是否已达 到寿命结束,以及SSD2是否处于正常状态,当判定SSD2已达到其寿命 结束(其EOL)或SSD2处于异常状态时,控制工具200重写启动载入器 300或BIOSPT301,以便启动仅支持读写操作中的读取操作的紧急OS, 使得在重新启动计算机系统1时启动紧急OS,这样,禁止对SSD2的写 入操作或防止对SSD2的写入操作容易执行,从而抑制SSD2的可靠性降 级并防止要写入SSD2的数据和已写入SSD2的数据被破坏,这允许用户 容易从SSD2读取用户数据并将用户数据备份到其它存储装置中。

(第二实施例)

在第一实施例中,介绍了正常OS100A和紧急OS100B存储在SSD2 的NAND存储器16中的情况。在第二实施例中,介绍正常OS100A存储 在SSD2中而紧急OS100B不存储在SSD2中的情况。在第二实施例中, 在图37的步骤S224所示的寿命到期处理中执行启动载入器300的重写处 理(请参阅图39中的步骤S240)之前或之后,控制工具200从不同于SSD 2的外部存储装置20(请参阅图12)将紧急OS100B安装在SSD2的NAND 存储器16的区域16E中。就防止用户由于无意中重写SSD2中存储有紧 急OS的区域16E而破坏紧急OS数据而言,并且就通过保护区域16E而 防止减少SSD2的空闲空间而言,期望采用第二实施例。

而且,例如,如图13所示,在重写启动载入器300之前或之后,控制 工具200从WEB服务器21下载紧急OS100B的数据或安装程序,并且 基于所下载的数据在SSD2的NAND存储器16的区域16E中安装紧急 OS100B。备选地,控制工具200可通过显示器9向用户显示其中存储紧 急OS的数据或安装程序的WEB服务器的地址。

备选地,如图14和图15所示,在重写启动载入器300之前或之后, 控制工具200可从外部存储介质(诸如DVD-ROM之类的光学介质、USB 存储器、SD卡、SSD等)23或24将紧急OS100B安装在SSD2的NAND 存储器16的区域16E中。备选地,在重写启动载入器300之前或之后, 控制工具200可通过显示器9向用户显示消息以设定其中存储紧急OS 100B的安装程序的外部存储介质(诸如DVD-ROM之类的光学介质、USB 存储器、SD卡、SSD等)。

当在NAND存储器16中安装紧急OS100B时执行对NAND存储器 16的写入,因此,就防止NAND存储器16的可靠性降低和数据破坏而言, 期望使紧急OS的数据量显著地小于NAND存储器16的容量。

(第三实施例)

在第三实施例中,将介绍正常OS100A和紧急OS100B存储在不同 于SSD2的非易失性存储装置20中的情况下的寿命到期处理。如图12所 示,本发明也可应用于正常OS100A和紧急OS100B存储在不同于SSD2 的非易失性存储装置20中而不存储在SSD2中的情况,以及这两个OS之 一存储在SSD2中而另一个存储在非易失性存储装置20中的情况。在这 种情况下,除了SSD2中的启动载入器之外,控制工具200在某些情况下 还需要重写非易失性存储装置20中的启动载入器。

当正常OS100A和紧急OS100B存储在不同于SSD2的非易失性存 储装置20中时,控制工具200重写存储在非易失性存储装置20中的启动 载入器300而不重写SSD2中的启动载入器。

当正常OS100A存储在SSD2中且紧急OS100B存储在非易失性存 储装置20中时,期望控制工具200重写SSD2和非易失性存储装置20这 两者中的启动载入器。当在非易失性存储装置20从主机设备3移除的状态 下启动计算机系统1时,为了防止无意地对SSD2执行写入访问,期望将 启动载入器配置为不启动正常OS。

当紧急OS100B存储在SSD2中且正常OS100A存储在非易失性存 储装置20中时,期望重写SSD2和非易失性存储装置20这两者中的启动 载入器。另一方面,可以仅重写非易失性存储装置20中的启动载入器。在 这种情况下,即使当在非易失性存储装置20从主机设备3移除的状态下启 动计算机系统1时,也可通过读取SSD2中的启动载入器300,从SSD2 的NAND存储器16中的区域16E启动紧急OS。

(第四实施例)

在第四实施例中,将介绍正常OS100A安装在SSD2中而紧急OS未 安装在SSD2中的情况。为了尽可能多地抑制访问可靠性降低的SSD2, 紧急OS100B期望从不同于SSD2的存储装置启动。在该实施例中,控制 工具200具有在寿命到期处理中生成安装有紧急OS的紧急启动盘的功能。

作为紧急启动盘,可采用各种非易失性存储装置,例如USB存储器、 SD卡、诸如CD和DVD之类的光学介质、SSD和硬盘驱动器。在该实施 例中,介绍从中使用USB存储器作为紧急启动盘的情况。

包括用于生成紧急启动盘的紧急OS数据的数据(映像数据)例如存 储在SSD2、其它SSD、USB存储器、SD卡、诸如DVD-ROM驱动器之 类的光学介质、以及WEB服务器的存储介质中。在该实施例中,介绍SSD 2被用作用于存储安装紧急OS用的映像数据的存储介质的情况。换言之, 在该实施例中,安装源映像数据存储在可靠性降低的SSD2本身中。

当安装紧急OS时,从SSD2读取映像数据,一旦执行安装之后,便 不再读取相同的映像数据。而且,期望控制工具200具有允许用户在SSD 2达到其EOL之前的阶段中任意生成紧急启动盘的功能。

图48示出当生成紧急启动盘时数据移动的概念图。而且,图48示出 当生成紧急启动盘时控制工具200的操作过程。当开始寿命到期处理时, 期望控制工具200检查USB存储器是否连接到主机设备3的USB控制器 13,当USB存储器未连接时,通过显示器9向用户显示消息“生成用于启 动紧急OS的USB存储器。请连接USB存储器”。

如图48所示,当USB存储器24连接时,控制工具200从SSD2的 NAND存储器16的区域16Q中存储的安装映像数据400中提取紧急OS 数据(当紧急OS数据被压缩、加密或编码时,对该数据进行解压缩、解 密或解码),并将其复制(安装)到USB存储器24中的区域24R(步骤 S280)。接下来,控制工具200重写启动载入器310以便参考用于紧急 OS100B的区域24R,使得在读取存储在USB存储器24中的启动载入器 310时读取在USB存储器24中安装的紧急OS100B(步骤S281)。具体 而言,控制工具200例如将对应于存储区域24R的LBA写入启动载入器 310中的OS指针信息OSPT311。

当USB存储器24和SSD2均连接到主机设备3时,期望重写启动载 入器310或者使BIOS-ROM11的设置变更为优先启动USB存储器24中 的启动载入器310(步骤S282)。步骤S282可不执行。

当USB存储器24未连接到主机设备3时,为了防止正常OS100A从 SSD2启动以及对SSD2进行无意的写入访问,在步骤S282,期望重写SSD 2中的启动载入器300,以便不从SSD2启动正常OS100A。例如,通过 将用于正常OS100A的区域16D以外的LBA或无效LBA写入启动载入 器300中的OS指针信息OSPT301,即使读取SSD2中的启动载入器300, 也可防止载入正常OS100A。备选地,可重写正常OS100A上的数据。

通过这种方式,当SSD2达到其EOL或者当SSD2进入异常状态时, 生成用于启动OS的启动盘,该OS能够读取SSD2中的数据并将SSD2 中的数据备份到其它非易失性存储装置,同时抑制SSD2的可靠性降低和 SSD2中的数据破坏。

而且,如图50所示,还可以使用诸如MS-DOS(商标)、Linux(商 标)、Windows(注册商标)和PE(商标)之类的OS作为紧急OS110B, 并且在将紧急OS安装在USB存储器24中的同时将紧急工具210(具有 备份SSD2中数据的功能)安装在USB存储器24的区域24S中以允许从 紧急OS100B执行紧急工具210。紧急工具210期望具有类似于第一实施 例中介绍的备份功能。

图51示出启动主机设备3时的操作。在启动主机设备3时,从USB 存储器24读取紧急OS100B并将其写入主存储器6,以便从USB存储器 24启动紧急OS100B(步骤S290)。接下来,从USB存储器24读取紧急 工具210并将其写入主存储器6,以便从USB存储器24激活紧急工具210 (步骤S291)。期望例如通过在紧急OS100B的启动中注册紧急工具210, 使得在启动紧急OS100B之后自动激活紧急工具210。

如图52所示,期望紧急OS100B通过显示器19例如显示作为可由用 户选择的菜单项之一的备份菜单、消息“是否备份?”和确认按钮,或消 息“是否备份?”,以进入等待通过键盘14输入的状态,供用户任意将备 份功能设定为可激活状态(步骤S292)。紧急OS100B可自动开始备份。

当通过键盘14或鼠标15选择备份功能激活时(步骤S293),紧急工 具210被激活。紧急工具210将SSD2中存储的数据复制到备份存储装置 150(步骤S293)。作为备份方法,可采用类似于第一实施例中描述的方 法,例如可使用逐LBA备份或逐文件备份。

(第五实施例)

上述实施例允许用户容易地从SSD2读取用户数据,并在抑制SSD2 的可靠性降低和SSD2的数据破坏的同时将用户数据备份到其它存储装 置。第五实施例提供了一种进一步抑制SSD2的可靠性降低的方法。为SSD 2提供了一种在某些情况下在后台执行刷新处理的功能,用于修复由于老 化或读取干扰破坏的数据。借助此功能,执行定期读取NAND存储器16 的块并将其中存在大量数据错误的块中的数据写入其它块的处理。因此, 可减少老化和读取干扰的影响,但是另一方面,可对块执行额外的擦除和 写入,从而加速SSD2的可靠性降低。

在该实施例中,控制工具200或紧急OS100B指示SSDC41通过使 用刷新控制命令(ACS-2中描述的SCT Command Transport、对于供应 商唯一的命令或其它命令)停止执行刷新。响应于刷新控制命令,SSDC41 停止刷新处理或将刷新执行间隔(例如,1分钟)设定为更长间隔(例如, 2分钟)。在使SSDC41将刷新执行间隔设为更长的情况下,期望在刷新 控制命令中明确指定刷新执行间隔。

图53示出当控制工具200发出刷新控制命令时的操作。在这种情况下, 控制工具200在图33的步骤S205所示的寿命到期处理中发出刷新控制命 令。控制工具200执行图38中介绍的启动载入器300的重写(步骤S300), 然后将刷新控制命令发送到SSD2(步骤S301)。

图54示出当紧急OS100B发出刷新控制命令时的操作。在这种情况 下,如图41所示,在启动系统时,CPU4从SSD2的NAND存储器16 读取包括OS指针信息OSPT的启动载入器300(步骤S310)并指定OS 指针信息OSPT所指示的LBA。然后,CPU4通过将对所指定的LBA的 读取指令发送到SSD2,从SSD2读取由OS指针信息OSPT指定的OS。 当OS指针信息OSPT所指示的LBA指定区域16D(其为用于正常OS100A 的存储区域)时(步骤S311:是),从区域16D读取正常OS100A并将 其写入主存储器6的区域6A(步骤S312),并且,当OS指针信息OSPT 所指示的LBA指定区域16E(其为用于紧急OS100B的存储区域)时(步 骤S311:否),从区域16E读取紧急OS100B并将其写入主存储器6的 区域6A(步骤S313)。当启动紧急OS100B时,紧急OS100B将刷新控 制命令发送到SSD2(步骤314)。

通过这种方式,在第五实施例中,控制工具在寿命到期处理中通过执 行控制,禁止或阻止SSD2中的后台写入处理,例如刷新处理,从而可抑 制SSD的可靠性降级。

(第六实施例)

在第一实施例中,如图33所示,控制工具200定期获取统计信息,并 且在SSD2已达到(接近)其EOL时或紧接在SSD2已达到其EOL之后 执行寿命到期处理。控制工具200可基于所获取的统计信息预测SSD2的 寿命并通过显示器9通知给SSD2的用户,下面将对此进行描述。

当控制工具200根据图33所示的处理过程定期获取统计信息时,控制 工具200将已获取的数据附加到主存储器6,例如,采取图55所示的格式, 作为关于统计信息的时间序列数据。统计信息时间序列数据可定期备份到 诸如SSD2之类的非易失性存储装置。而且,相对于统计信息时间序列数 据,可在每次附加最新数据时擦除旧数据。

而且,控制工具200可通过显示器9以图形的方式向用户显示主存储 器6中的统计信息时间序列数据,例如以图56所示的显示格式。

在该实施例中,基于该统计信息时间序列数据执行对SSD2的寿命预 测。如图57所示,控制工具200通过使用时间段(从当前时间之前的预定 时间段T处的时间A到作为当前时间的时间C)中(X,Y)上的所有数据来 获取拟合函数Y=f(X),其中变量Y为特定属性ID的属性值,变量X为时 间。换言之,通过使用拟合函数f(X)从X获取Y的预测值。具有多种推 导f的方法。例如,f可通过以下方式确定:使用参数a和参数b定义 f(X)=aX+b,并且对从时间A到时间C的时间段中(X,Y)上的所有数据使 用最小平方法来获取a和b。

然后,获取f(X)的反函数f-1(Y)。当f(X)=aX+b时,获取f-1(Y)=(Y-b)/a。 预测的SSD2寿命到期时间为f-1(Y=阈值)。还可以相对于从时间A到时间 C的(X,Y)上的所有数据获取拟合函数X=g(Y)并将预测的SSD2寿命到期 时间设定为g(Y=阈值)。而且f(X)和g(Y)可被拟合至函数,例如线性函 数以外的二次函数。

在该实施例中,使用属性值(=Y)和S.M.A.R.T的阈值预测寿命,但是, 还可以使用原始值(原始数据)作为Y来获取f(X)和g(Y)并将预测的寿命 到期时间设定为f-1(Y=RMAX)或g(Y=RMAX)或f-1(Y=RMIN)或 g(Y=RMIN)。而且,可基于使用SMART信息以外的方法获取的统计信息 预测寿命。

控制工具200通过显示器9通知用户以这种方式获取的预测寿命到期 时间。作为通知方法,例如可显示诸如“预测寿命到期时间:09/09/1999” 之类的文本,或者如图58所示,可显示警告屏幕,例如“SSD的剩余寿 命小于30天。请立即备份SSD中的数据并更换新的SSD”。备选地,当 SSD的剩余寿命变得小于预定天数时,可通过变更控制工具200的图标颜 色来变更在显示器上显示的图标颜色。

(第七实施例)

在第一实施例中,如图42所示,介绍了当正常OS100A和紧急OS 100B存储在SSD2的NAND存储器16中时,将SSD2中的数据备份到备 份存储装置150的功能。当控制工具200重写启动载入器300(图38中的 步骤S230)作为寿命到期处理(图33中的步骤S205)并使用上述逐LBA 备份作为备份功能时,期望将通过备份处理复制到备份存储装置150的启 动载入器恢复到寿命到期处理之前SSD2的启动载入器300的状态,以便 当在SSD2作为旧系统驱动器断开与主机设备3的连接并且备份存储装置 150作为新系统驱动器连接到主机设备3之后打开计算机系统1时,正常 启动正常OS100A。在该实施例中,介绍在备份操作期间在备份存储装置 中重写启动载入器的方法。

图59示出在在备份操作之前或之后,计算机系统1和备份存储装置 150的功能配置。在SSD2的NAND存储器16的恢复启动载入器区域16V 中,存储用于将启动载入器300恢复到控制工具200重写前的状态的启动 载入器恢复信息350。区域16V可在寿命到期处理时被控制工具200分配, 在激活控制工具200时被分配,或者在控制工具200安装在SSD2中时被 分配。LBA根据SSD2中的管理信息45(请参阅图22)被分配给所分配 的区域16V。

图60示出根据该实施例的寿命到期处理的操作过程。在寿命到期处理 中,备份存储装置150可不连接到主机设备3。在寿命到期处理中,即, 在变更启动载入器300之前,控制工具200将启动载入器300的备份信息 (即,启动载入器恢复信息350)写入恢复启动载入器区域16V(步骤 S320)。作为待写入区域16V的信息,例如,区域16C中存储的启动载入 器300上的所有数据(映像)可被直接复制,或者可在区域16V中记录启 动载入器300的数据与将被写入区域16C的新数据之间的差异信息。

当在区域16V中记录差异信息时,例如,如图61所示,可以使用重 写差异日志(其中记录重写之前的数据与重写的LBA之间的对应关系) 作为差异信息。当采用重写差异日志时,控制工具200将区域16C中存储 的启动载入器300中的重写LBA写入重写差异日志的“重写的LBA”, 并将重写同一LBA之前的数据写入重写差异日志的“重写前的数据”。 例如,当逻辑扇区(LBA的最小单元)为512字节时,重写差异日志的“重 写前的数据”的一个元素可以是512字节数据或通过压缩或对重写前的数 据执行可逆变换获取的512字节以外的数据。当使用重写差异日志将启动 载入器300从新启动载入器恢复到旧启动载入器时,通过针对区域16C, 将“重写前的数据”写入由重写差异日志的“重写的LBA”指示的LBA, 将启动载入器300恢复到旧启动载入器。

之后,控制工具200重写启动载入器300,从而以类似于第一实施例 中介绍的方式,在下次启动计算机系统1时将紧急OS100B而非正常OS 100A读到主存储器6(步骤S321)。

为了便利在下面将描述的备份操作期间搜索恢复启动载入器区域 16V,期望控制工具200提前将恢复启动载入器区域16V的头LBA(起始 LBA)写入启动载入器区域16C(步骤S322)。不一定需要将恢复启动载 入器区域16V的头LBA写入启动载入器区域16C,区域16V可通过提前 将特定数据模式写入区域16V的头并在下面描述的备份时搜索该特定数据 模式来指定,可通过固定地将区域16V与预定的特定LBA进行关联并在 下面描述的备份时访问该特定LBA来指定,或者可通过其它方法来指定。

在步骤S321之后,计算机系统1可以类似于第一实施例的方式重启, 或者SSD2的刷新控制命令可以类似于第五实施例的方式发送。而且,恢 复启动载入器区域16V可存储在SSD2之外的存储装置中。

图62示出紧急OS100B执行的备份操作。在备份时,当备份存储装 置150未连接到主机设备3时,用户将备份存储装置150连接到主机设备 3。此时,控制工具200可在显示器9上向用户显示消息“请连接备份装置”。

从NAND存储器16的区域16E载入到主存储器6的区域6A内的紧 急OS以类似于第一实施例的方式将SSD2中的数据复制到备份存储装置 150(步骤330)。例如,当采用逐LBA备份作为备份方法并且SSD2的 所有LBA区域被复制到备份存储装置150时,存储在区域16D中的正常 OS100A被复制到备份存储装置150的区域150D,存储在区域16U中的 其它用户数据被复制到区域150U。存储在启动载入器区域16C中的启动 载入器300可被复制到备份存储装置150的区域100C或者可不被复制。 存储在区域16E中的紧急OS100B可被复制到备份存储装置150的区域 150E或者可不被复制。而且,存储在恢复启动载入器区域16V中的启动 载入器恢复信息350可不被复制到备份存储装置150。

紧急OS100B基于启动载入器恢复信息350和启动载入器300上的数 据产生要存储在备份存储装置150中的启动载入器320并将所产生的启动 载入器320写入备份存储装置150的区域150C,从而当在下次启动计算机 系统1期间载入启动载入器320时,将正常OS100A载入到主存储器6的 区域6A内(步骤S331)。

在图60的步骤S320中的启动载入器备份处理中,当存储在区域16C 中的启动载入器300上的数据(映像)直接被复制到恢复启动载入器区域 16V时,在图62的步骤S331,恢复启动载入器区域16V中的启动载入器 恢复信息350可直接被复制到备份存储装置150的区域150C。

而且,在图60的S320中的启动载入器备份处理中,在启动载入器区 域16C中的重写差异信息记录在恢复启动载入器区域16V中的情况下,尤 其是在当启动载入器区域16C从旧启动载入器数据重写为新启动载入器数 据时,有关新旧启动载入器数据的重写差异信息记录在恢复启动载入器区 域16V中的情况下,在图62的步骤S331,紧急OS100B将启动载入器区 域16C中的数据(新启动载入器数据)和启动载入器恢复信息350(存储 在恢复启动载入器区域16V中的差异数据)读到主存储器6,基于启动载 入器恢复信息350将新启动载入器数据恢复为旧启动载入器数据,并且将 已恢复的旧启动载入器数据写入备份存储装置150的区域150C。

在执行上述备份处理之后,当在已达到其寿命结束的SSD2与主机设 备3分离(通过从IF0移除SSD2)并且备份存储装置150连接到主机设 备3(通过将备份存储装置150连接到IF1)的状态下启动计算机系统1 时,主机设备3读取备份存储装置150中的启动载入器320并且主机设备 3基于有关启动载入器320的信息,将备份存储装置150中的区域150D载 入到主存储器6的区域6A内,以便启动正常OS。当备份存储装置150对 应于接口IF0时,备份存储装置150可被SSD2替代,并且备份存储装置 150可连接到接口IF0。当备份存储装置150不对应于接口IF0时,备份存 储装置150可被SSD2替代,并且备份存储装置150可通过接口转换器连 接到接口IF0。

通过这种方式,即使SSD2已达到其EOL,计算机系统1也可在备份 存储装置中恢复SSD2中存储的用户数据以及正常OS,并且用户可以在 不执行额外的设定并重新安装正常OS的情况下用备份存储装置150替代 SSD2,并使用备份存储装置150代替SSD2作为系统驱动器。

(第八实施例)

在该实施例中,当在SSD2从异常状态(寿命到期状态)恢复到正常 状态(健康状态)之后启动连接SSD2的主机设备时,控制启动正常OS, 而非紧急OS。

作为统计信息,例如,在采用指示可靠性随着其值变大而变差并且具 有能够再次恢复到正常值(即使在增加到对可靠性具有不利影响的值之后) 的特性的参数(例如,当前温度X20和最高温度X21)的情况下,例如, 采用RMAX=85℃作为关于这些统计信息的RMAX,并且当满足其中温度 落在操作保证温度之外的条件时(例如,当(统计信息的值)>RMAX或 (统计信息的值)≥RMAX时),控制工具200重写启动载入器300, 以便在下次启动计算机系统1时,将紧急OS100B而非正常OS100A控 制为读到主存储器6。

紧急OS100B在启动之后监测统计信息的值,并且在满足(统计信息 的值)≤(RMAX-MAX余量)或(统计信息的值)<(RMAX-MAX余 量)且统计信息再次返回到正常值时重写启动载入器300,从而执行在下 次启动计算机系统1时使正常OS100A而非紧急OS100B被读到主存储 器6的启动载入器恢复处理。

MAX余量为零值或更大值,但是,期望MAX余量是大于零的值, 以防止启动载入器300频繁地被重写。当统计信息是当前温度或最高温度 时,例如,MAX余量被设定为等于5℃。当使用SMART信息获取统计信 息并判定条件时,可使用属性值和阈值,或者可使用原始值与RMAX。而 且,当在启动正常OS期间统计信息被从异常状态恢复到正常状态时,可 通过控制工具200执行上述启动载入器恢复处理。

作为统计信息,在采用指示可靠性随着其值变小而变差并且具有能够 再次恢复到正常值(即使在减小到对可靠性具有不利影响的值之后)的特 性的参数(例如,当前温度X20和最低温度X22)的情况下,采用RMIN= -10℃作为RMIN,并且当满足其中温度例如落在操作保证温度之外的条件 时(例如,当(统计信息的值)<RMIN或(统计信息的值)≤RMIN时), 控制工具200重写启动载入器300,以便在下次启动计算机系统1时,将 紧急OS100B而非正常OS100A控制为读到主存储器6。

紧急OS100B在启动之后监测统计信息的值,并且在满足(统计信息 的值)≥(RMIN+MIN余量)或(统计信息的值)>(RMIN+MIN余量) 且统计信息再次返回到正常值时重写启动载入器300,从而执行在下次启 动计算机系统1时使正常OS100A而非紧急OS100B被读到主存储器6 的启动载入器恢复处理。

MIN余量为零值或更大值,但是,期望MIN余量是大于零的值,以 防止启动载入器300频繁地被重写。当统计信息是当前温度或最低温度时, 例如,MIN余量被设定为等于5℃。当使用SMART信息获取统计信息并 判定条件时,可使用属性值和阈值,或者可使用原始值与MIN。

接下来,将详细地介绍寿命到期处理中控制工具200的操作。当启动 载入器300被从异常状态(寿命到期状态)恢复到正常状态(健康状态) 时,期望通过上述启动载入器恢复处理将启动载入器300恢复到在寿命到 期处理中重写之前的启动载入器。图63示出在启动载入器恢复处理之前和 之后的计算机系统1的功能配置。在SSD2的NAND存储器16的恢复启 动载入器区域16V中,存储用于将启动载入器300恢复到控制工具200重 写前的状态的启动载入器恢复信息350。区域16V可在寿命到期处理时被 控制工具200分配,在激活控制工具200时被分配,或者在控制工具200 安装在SSD2中时被分配。LBA根据SSD2中的管理信息45(请参阅图 22)分配给所分配的区域16V。而且,该实施例中的区域16V与图59所 示的区域16V一样,可被用于在备份时恢复启动载入器,或者可以是不同 于图59所示的区域16V的区域。

寿命到期处理的过程与图60所示的过程类似。具体而言,控制工具 200在寿命到期处理中将启动载入器300的备份信息(即,启动载入器恢 复信息350)写入恢复启动载入器区域16V(步骤S320)。作为待写入区 域16V的信息,例如,区域16C中存储的启动载入器300上的数据(映像) 可直接复制,或者可记录有关启动载入器的重写差异信息。之后,控制工 具200重写启动载入器300,以便在下次启动计算机系统1时将紧急OS 100B而非正常OS100A读到主存储器6(步骤S321)。

此外,为了便利在下面将描述的备份操作时搜索恢复启动载入器区域 16V,期望控制工具200提前将恢复启动载入器区域16V的头LBA写入启 动载入器区域16C(步骤S322)。不一定需要将恢复启动载入器区域16V 的头LBA写入启动载入器区域16C,区域16V可通过将特定数据模式写 入区域16V的头并在下面描述的备份时搜索该特定数据模式来指定,可通 过固定地将区域16V与预定的特定LBA进行关联并在下面描述的备份时 访问该特定LBA来指定,或者可通过其它方法来指定。

在步骤S321之后,计算机系统1可以类似于第一实施例的方式重新 启动,或者SSD2的刷新控制命令可以类似于第五实施例的方式发送。而 且,恢复启动载入器区域16V可存储在SSD2以外的存储装置。

图64示出紧急OS100B执行的启动载入器恢复处理。在寿命到期处 理之后(异常状态处理之后),当使用紧急OS启动计算机系统1时,紧 急OS100B例如使用上述SMART READ DATA监测统计信息并判定统计 信息是否返回到正常值(步骤S340)。当基于上述判定参考,统计信息返 回到正常值时(步骤S340:是),紧急OS100B产生启动载入器,该启 动载入器进行处理以基于存储在恢复启动载入器区域16V中的启动载入器 恢复信息350和存储在启动载入器区域16C中的启动载入器300上的数据, 将正常OS100A载入到主存储器6的区域6A内,然后将所产生的启动载 入器写入启动载入器区域16C(步骤341)。因此,当启动载入器300在 下次启动计算机系统1期间载入时,正常OS100A被载入到主存储器6的 区域6A内。

在图60的步骤S320中的启动载入器备份处理中,当存储在区域16C 中的启动载入器300上的数据(映像)直接被复制到恢复启动载入器区域 16V时,在图64的步骤S341,恢复启动载入器区域16V中的启动载入器 恢复信息350可直接被复制到备份存储装置150的区域150C。

而且,在图60的S320中的启动载入器备份处理中,在启动载入器区 域16C中的重写差异信息记录在恢复启动载入器区域16V中的情况下,尤 其是在当启动载入器区域16C从旧启动载入器数据重写为新启动载入器数 据时,有关新旧启动载入器数据的重写差异信息记录在恢复启动载入器区 域16V中的情况下,在图64的步骤S341,紧急OS100B将启动载入器区 域16C中的数据(新启动载入器数据)和启动载入器恢复信息350(存储 在恢复启动载入器区域16V中的差异数据)读到主存储器6,基于启动载 入器恢复信息350将新启动载入器数据恢复为旧启动载入器数据,并且将 恢复的旧启动载入器数据写入备份存储装置150的区域150C。

通过这种方式,在该实施例中,如图65所示,当统计信息暗示SSD2 从正常状态变更为异常状态时,执行用于启动异常状态OS之操作的异常 状态到达处理,并且当统计信息暗示SSD2从异常状态返回到正常状态时, 执行用于启动正常OS之操作的启动载入器恢复处理。

通过这种方式,即使当在SSD2恢复到正常状态(健康状态)之后SSD 2临时进入异常状态时,计算机系统也会启动正常OS,以便用户可以与 寿命到期处理之前相同的方式使用SSD2,而不必执行额外的设定和重新 安装正常OS。

(第九实施例)

图66示出作为上面安装有外部存储装置的信息处理设备的计算机系 统1001的外观配置。图66示出一般桌面型个人计算机1001的配置。作为 外部存储装置的SSD1010通过供电的电力电缆1131连接到电源电路 1132。SSD1010通过SATA(串行高级技术附件)电缆1136物理连接到 主板1130,以便能够与主板1130通信。通过SATA电缆1136实现的通信 遵循SATA标准。CPU等(未示出)安装在主板1130上。显示器1133、 键盘1134、鼠标1135等连接到主板1130。计算机系统不限于桌面型个人 计算机,也可使用膝上型或笔记本个人计算机。

上面安装有外部存储装置的设备系统(主机1100)可以是成像装置, 例如照相机和摄像机、游戏机、汽车导航系统等。可使用其它外存储装置 (例如硬盘驱动器(HDD)和混合硬盘驱动器(混合HDD))替代SSD1010。 而且,在SSD与计算机之间使用的连接标准可以是SATA标准以外的其它 接口标准,例如USB(通用串行总线)标准、PCI Express标准或串行附 接SCSI(SAS)标准。

图67示出上面安装有SSD1010的主机1100的系统配置实例。主机 1100包括CPU1200、北桥1201、诸如DRAM、SRAM和MRAM之类的 主存储器1202、显示控制器1203、显示器1133、南桥1205、光驱1206、 BIOS-ROM1207、LAN控制器1208、USB控制器1209、键盘1134、鼠 标1135等。

CPU1200是处理器,被提供为控制主机1100的操作,并且执行从SSD 1010载入到主存储器1202内的操作系统(OS)。此外,当光驱1206能 够执行针对已载入光盘的读取处理和写入处理中的至少一者时,CPU1200 执行该处理。

而且,CPU1200执行存储在BIOS-ROM1207中的系统BIOS(基本 输入输出系统)。系统BIOS是用于控制主机1100中硬件的程序。

北桥1201是与CPU1200的本地总线连接的桥接装置。用于执行主存 储器1202的访问控制的存储控制器置于北桥1201内。而且,北桥1201 具有例如执行与显示控制器1203通信的功能。

主存储器1202中临时存储程序和数据并充当CPU1200的工作区域。 主存储器1202例如由DRAM、SRAM或MRAM构成。显示控制器1203 是视频再现控制器,用于控制计算机系统的显示器1133。

南桥1205是与CPU1200的本地总线连接的桥接装置。南桥1205通 过ATA接口1090控制SSD1010(其为用于存储各种类型软件和数据的存 储装置)。

主机1100以逻辑扇区为单位访问SSD1010。写入命令(写入请求)、 读取命令(读取请求)、清空(flush)命令等通过ATA接口1090被输入 SSD1010。

南桥1205具有执行BIOS-ROM1207、光驱1206、LAN控制器1208、 以及USB控制器1029的访问控制的功能。键盘1134和鼠标1135连接到 USB控制器209。

在图67中,当计算机系统的电源关断时,OS1150、性能评估工具1110、 访问日志表1120、性能日志表1125和软件(例如,字处理软件、数值软 件、游戏软件和图像编辑软件)1140存储在SSD1010中。当主机电源接 通或者这些功能被调用时,它们被从SSD1010载入到主存储器1202内。 软件1140是性能评估工具1110以外的软件,并且使用SSD1010。性能评 估工具1110是执行SSD1010的性能评估的软件并且包括访问信息获取工 具1111和性能信息获取工具1112。

如图68所示,例如,当主机1110的电源关断时,性能评估工具1110 存储在SSD1010的NAND存储器1020中作为性能评估工具1110A,但是, 当主机1100启动或者程序开始时,性能评估工具1110A被从NAND存储 器1020载入到主存储器1202内。另一方面,当多个外部存储装置连接到 主机1100时,如图69所示,性能评估工具1110可作为性能评估工具1110B 存储在不同于SSD1010的外部存储装置1300中,并且在启动主机1100 或程序时,性能评估工具1110B可被从外部存储装置1300载入到主存储 器1202内。尤其是,当外部存储装置1300被用作用于存储OS1150的系 统驱动器并且SSD1010被用作用于存储用户数据(例如,文档、静止图 像数据和运动图像数据)的数据驱动器时,为了清楚地将驱动器1010和驱 动器1300的作用相互区分,例如在使用外部存储装置1300(其为系统驱 动器)作为主要存储OS和应用程序的驱动器,使用SSD(其为数据驱动 器)1010作为用于存储用户数据的驱动器的情况下,期望将性能评估工具 1110存储在作为系统驱动器的外部存储装置1300中。

为了节省设置性能评估工具所需的用户劳动,例如如图68和图69所 示,期望计算机系统1001在性能评估工具存储在SSD1010或外部存储装 置1300中的状态下运送,到达商店,然后交付给用户。另一方面,为了允 许用户选择是否安装性能评估工具以及允许将最新性能评估工具提供给用 户,期望性能评估工具能够通过从WEB下载或从诸如DVD-ROM和USB 存储器之类的外部存储介质安装,存储在SSD1010或外部存储装置1300 中。

图70示出从WEB下载性能评估工具的实例。在图70中,性能评估 工具1110C存储在WEB服务器上的存储介质1400中,并且性能评估工 具1110C借助LAN控制器1208,通过网络(例如,因特网、局域网和无 线LAN)下载到SSD1010或外部存储装置1300中。

图71示出从诸如DVD-ROM和CD-ROM之类的光学介质安装性能 评估工具的实例。性能评估工具1110D存储在诸如DVD-ROM和CD-ROM 之类的光学介质1500中,并且通过在光驱1206中设置光学介质1500,借 助光驱1206而安装在SSD1010或外部存储装置1300中。

图72示出从USB存储器安装性能评估工具的实例。性能评估工具 1110E存储在USB存储器1600中,并且通过将USB存储器1600连接到 USB控制器1209,借助USB控制器1209而安装在SSD1010或外部存储 装置1300中。很明显,可使用诸如SD卡之类的其它外部存储器替代USB 存储器1600。为了使用户易于使用性能评估工具,当运送SSD1010时, 期望将光学介质1500或USB存储器1600作为附件与SSD1010打包在一 起。另一方面,光学介质1500或USB存储器1600可作为软件产品单独销 售,也可作为杂志或图书的附赠品。

访问信息获取工具1111将在OS1150或不同于性能评估工具1110的 软件1140正常地访问SSD1010时的命令顺序地记录在访问日志表1120 中作为访问日志。性能信息获取工具1112通过使用访问日志表1120中记 录的访问日志来计算有关SSD1010的性能信息,然后将该计算结果记录 在性能日志表1125中作为性能信息日志。

图73示出主机1100的各元件的层次结构。性能评估工具1110和软件 1140通过OS1150与SSD1010通信。具体而言,当性能评估工具1110或 软件1140需要访问SSD1010时,性能计算功能1110和软件1140通过 OS1150传输指令、响应和数据。

图74示出SSD1010的内部配置实例。SSD1010包括NAND型闪存 (下文称为NAND存储器)1020(其为非易失性半导体存储器)、接口控 制器1030(其通过ATA接口1090与主机1100通信)、RAM(随机存取 存储器)1040(其为易失性半导体存储器并包括高速缓冲存储器(CM) 1040a,该CM充当接口控制器1030与NAND存储器1020之间的中间缓 冲器)、存储控制器1050(其执行NAND存储器1020和RAM1040的管 理和控制以及接口控制器1030的控制)、ECC电路1058(其对从NAND 存储器1020读取的数据执行错误校正处理)、以及连接这些组件的总线 1057。

可采用DRAM(动态随机存取存储器)、SRAM(静态随机存取存储 器)、FeRAM(铁电随机存取存储器)、MRAM(磁阻随机存取存储器)、 PRAM(相位电荷随机存取存储器)等作为RAM1040。

NAND存储器1020中存储主机1100指定的用户数据,存储管理用户 数据的管理表,以及存储RAM1040管理的管理信息以供备份。NAND存 储器1020包括多个存储器芯片并且每个存储器芯片包括多个块作为数据 擦除单元。物理块包括多个物理页。物理页作为数据写入和数据读取的单 位。

配置NAND存储器1020之存储基元阵列的存储晶体管分别由 MOSFET(金属氧化物半导体场效应晶体管)构成,该MOSFET具有形 成于半导体衬底上的层叠栅结构。层叠栅结构包括通过栅极介电膜形成于 半导体衬底上的电荷存储层(浮栅电极)以及通过栅极间介电膜形成于浮 栅电极上的控制栅电极。在存储基元晶体管中,阈值电压根据浮栅电极中 存储的电子数而变化,并且数据根据该阈值电压的差异而存储。存储基元 晶体管可被配置为存储1位或者可被配置为存储多值(2位或更多位数据)。 存储基元晶体管不限于具有包括浮栅电极的结构,并且可以具有诸如 MONOS(金属氧化氮氧化硅)型之类的结构,其中阈值电压可通过在作 为电荷存储层的氮化物界面中捕获电子来调整。MONOS型存储基元晶体 管可被配置为存储1位,或者可被配置为以类似于MOSFET型存储基元 晶体管的方式存储多个值。而且,存储基元可以是三维排列的存储基元, 如公开号为20100172189的美国专利申请和公开号为20100254191的美国 专利申请中描述的那样。

RAM1040包括高速缓冲存储器(CM)1040a,该CM其充当主机1100 与NAND存储器1020之间的数据传输高速缓冲器。此外,RAM1040充 当管理信息存储器和工作区域存储器。在RAM1040中管理的管理表通过 例如在启动时载入NAND存储器1020中存储的各种管理表来获取,并且 定期地或在关断电源时被保存在NAND存储器1020中。

存储控制器1050的功能通过处理器(其执行存储在NAND存储器1020 中的系统程序(固件))、各种硬件电路等来实现,并且存储控制器1050 例如针对来自主机1100的各种指令(例如,写入请求、高速缓存清空请求 和读取请求)执行主机1100与NAND存储器1020之间的数据传输控制, 执行RAM1040和NAND存储器1020中存储的各种管理表的更新和管理。 接口控制器1030在存储控制器1050的控制下,通过ATA接口1090将指 令和数据发送到主机1100或者从主机1100接收指令和数据。

当主机1100向SSD1010发送读取请求或写入请求时,主机1100通 过ATA接口1090输入LBA(逻辑块寻址)作为逻辑地址。LBA是逻辑 地址,其中从0开始的序列号附加于逻辑扇区(大小:例如,512B)。而 且,当向SSD1010发出读取请求或写入请求时,除了LBA以外,主机1100 还输入要作为读取请求或写入请求目标的逻辑扇区大小。

当从主机1100输入指令时,接口控制器1030接收指令并将接收的指 令发送到存储控制器1050。存储控制器1050处理接收到的指令。如上所 述,指令包括LBA,并且主机1100通过使用LBA来指定外部存储装置中 的数据位置。存储控制器1050通过参考RAM1040中的管理信息,将作 为从主机1100接收到的逻辑地址的LBA转换为物理地址。NAND存储器 1020中存储基元的物理位置由所转换的物理地址指定。

图75示出SSD1010中使用的管理信息的配置。如上所述,管理信息 以非易失性的方式存储在NAND存储器1020中。存储在NAND存储器 1020中的管理信息在启动SSD1010时被载入到RAM1040内并进行使用。 RAM1040中的管理信息定期地或在关断电源时被保存在NAND存储器 1020中。当RAM1040为诸如MRAM和FeRAM之类的非易失性RAM 时,该管理信息只能存储在RAM1040中,并且在这种情况下,该管理信 息不存储在NAND存储器1020中。

如图75所示,管理信息包括空闲块表1021、活动块表1022、磁道表 (以磁道为单位的逻辑-物理转换表)1023和簇表(以簇为单位的逻辑-物 理转换表)1024。

如图76所示,LBA是逻辑地址,其中从0开始的序列号附加于逻辑 扇区(大小:例如,512B)。在该实施例中,定义由阶位等于或高于LBA 的低阶第(s+1)位的位串形成的簇地址以及由阶位等于或高于LBA的低阶 第(s+t+1)位的位串形成的磁道地址,作为SSD1010的逻辑地址(LBA) 的管理单元。换言之,逻辑扇区是主机1100中的最小访问单元。簇是用于 管理SSD中“小数据”的管理单元,并且簇大小被设定为等于逻辑扇区大 小的自然数倍的大小。磁道是用于管理SSD中“大数据”的管理单元,并 且磁道大小被设定为等于簇大小的两倍或更大自然数倍的大小。因此,当 LBA除以磁道大小时,磁道地址为商,并且当LBA除以磁道大小时,磁 道内地址为余数;当LBA除以簇大小时,簇地址为商,并且当LBA除以 簇大小时,簇内地址为余数。在下面的介绍中,为方便起见,磁道大小等 于在一个物理块中可记录的数据大小(当ECC电路1058中执行的错误校 正的冗余位包括在物理块中时,排除该冗余位的大小)并且簇大小等于在 一个物理页中可记录的数据大小(当ECC电路1058中执行的错误校正的 冗余位包括在物理页中时,排除该冗余位的大小)。

·空闲块表(FB表)1021管理NAND存储器中的物理块(空闲块: FB)的ID,该物理块可在对NAND存储器1020执行写入时被新分配以供 写入,并不指定其用途。而且,空闲块表1021管理每个物理块ID的擦除 计数。

·活动块表(AB表)1022管理活动块(AB),这些活动块是被指定 用途的物理块。而且,活动块表1022管理每个物理块ID的擦除计数(擦 除计数)。

·磁道表1023管理磁道地址与物理块ID(其中存储对应于该磁道地 址的磁道数据)之间的对应关系。

·簇表1024管理簇地址、物理块ID(其中存储对应于该簇地址的簇 数据)与物理块内页地址(其中存储对应于该簇地址的簇数据)之间的对 应关系。

接下来,将参考图77介绍用于从SSD1010中的LBA指定物理地址 的过程(LBA正向查找转换)。当指定LBA时,存储控制器1050根据 LBA计算磁道地址、簇地址和簇内地址。

存储控制器1050首先搜索磁道表1023并指定对应于所计算的磁道地 址的物理块ID(步骤S1100和S1101)。存储控制器1050判定所指定的 物理块ID是否有效(步骤S1102)。当物理块ID不为空(null)时,即, 该ID是有效值(步骤S1102中的是),存储控制器1050搜索该物理块ID 是否被输入活动块表1022(步骤S1103)。当物理块ID被输入活动块表 1022时(步骤S1104中的是),从由该物理块ID指定的物理块头位置移 位磁道内地址的位置变为NAND存储器1020中对应于指定LBA的物理位 置(步骤S1105)。在这种情况下,不需要簇表1024指定NAND存储器 1020中对应于LBA的物理位置并且此LBA称为“以磁道为单位管理的 LBA”。在步骤S1104,当物理块ID未被输入活动块表1022时(步骤S1104 中的否),指定的LBA不具有物理地址并且此状态被称为“未写入状态” (步骤S1106)。

在步骤S1102,当对应于所指定的磁道地址的物理地址为空,即,无 效值时(步骤S1102中的否),存储控制器1050根据LBA计算簇地址并 搜索簇表1024以获取物理块ID和对应的物理块内页地址(对应于所计算 的簇地址)(步骤S1107)。从由该物理块ID和物理块内页地址指定的物 理页头位置移位簇内地址的位置变为NAND存储器1020中对应于指定 LBA的物理位置。在这种情况下,无法仅通过磁道表1023指定NAND存 储器1020中对应于LBA的物理位置,还需要参考簇表1024,此LBA称 为“以簇为单位管理的LBA”(步骤S1108)。

接下来,将参考图78和图79介绍SSD1010中的读取操作。当SSD 1010从主机1100接收读取指令时(步骤S1110),存储控制器1050将该 读取指令添加到RAM1040中的读取指令队列中(步骤S1111),并将指 示接收到读取指令的通知返回到主机1100。

另一方面,当RAM1040中的读取指令队列中具有指令时,存储控制 器1050判定读取处理是否可执行(步骤S1120)。当存储控制器1050判 定读取处理可执行时,存储控制器1050根据图77所示的LBA正向查找 转换过程,基于从主机1100接收到的LBA指定数据的物理位置(步骤 S1121)。存储控制器1050从指定位置的物理页读取数据(步骤S1123), 并通过接口控制器1030将读取数据发送到主机1100(步骤S1124)。从 NAND存储器1020读取的数据可一次写入RAM1040,然后,写入RAM 1040的数据可被发送到主机1100。

接下来,将参考图80和图81介绍SSD1010中的写入操作。当SSD 1010从主机1100接收写入指令时(步骤S1130),存储控制器1050将该 写入指令添加到RAM1040中的写入指令队列中(步骤S1131),并将指 示接收到写入指令的通知返回到主机1100。

另一方面,当RAM1040中的写入指令队列中具有指令时,存储控制 器1050判定写入处理是否可执行(步骤S1140)。当存储控制器1050判 定写入处理可执行时,存储控制器1050通知主机1100可执行写入处理, 从主机1100接收写入数据,并将所接收的数据存储在RAM1040的高速 缓冲存储器1040a中。接下来,存储控制器1050读取空闲块表1021(步 骤S1141)并从空闲块表1021获取空闲块的物理块ID。当没有空闲块时 (步骤S1142),存储控制器1050对NAND存储器1020执行下面将描述 的整理处理(NAND整理处理)(步骤S1143),之后读取空闲块表1021 (步骤S1144)并从空闲块表1021获取空闲块的物理块ID。

接下来,为了搜索由写入指令指定的LBA是否处于未写入状态,存 储控制器1050根据图77所示的正向查找转换过程判定对应于LBA的有 效数据是否已存储在NAND存储器1020中(步骤S1145和S1146)。

当LBA处于未写入状态时(步骤S1146中的是),存储控制器1050 将存储在高速缓冲存储器1040a中的接收数据写入空闲块(步骤S1147), 在活动块表1022中登记被写入数据的空闲块(新物理块)的ID及其擦除 计数,并且从空闲块表1021删除被写入数据的物理块的ID(步骤S1151)。 此时,通过将接收到的数据的LAB分为以磁道为单位的区段(磁道区段) 并判定是否在这些磁道区段中填充数据,判定是否以磁道为单位或以簇为 单位管理LBA(步骤S1152)。换言之,当磁道区段填充数据时,以磁道 为单位管理LBA,当并非所有磁道区段填充数据时,以簇为单位管理LBA。 当以簇为单位管理LBA时,重写簇表1024并且将LBA与新物理块ID关 联(步骤S1153),而且,重写磁道表1023并且将LBA与无效的物理块 ID(例如,空)关联(步骤S1153)。当以磁道为单位管理LBA时,重写 磁道表并且LBA与新物理块ID关联(步骤S1154)。

另一方面,在步骤S1146,当LBA不处于未写入状态时,存储控制器 1050基于通过正向查找转换获取的物理ID,从NAND存储器1020读取对 应物理块中的所有数据,并将数据写入RAM1040(步骤S1148)。然后, 存储控制器1050将存储在高速缓冲存储器1040a中的数据和在RAM1040 中的从NAND存储器1020读取并写入RAM1040的数据进行组合(步骤 S1149)并将组合的数据写入空闲块(步骤S1150)。存储控制器1050在 活动块表1022中登记被写入数据的空闲块(新物理块)的ID及其擦除计 数,并且从空闲块表删除被写入数据的物理块的ID(步骤S1151)。当以 簇为单位管理LBA时,存储控制器1050将簇表1024中的旧物理块ID重 写为新物理块ID(步骤S1152和S1153)。当以磁道为单位管理LBA时, 存储控制器1050将磁道表中的旧物理块ID重写为新物理块ID(步骤 S1152和S1154)。此外,存储控制器1050将旧物理块ID及其擦除计数 添加到空闲块表1021中并从活动块表1022删除旧物理块ID及其擦除计 数(步骤S1155)。

SSD1010中整个LBA的容量被设计为小于SSD1010的NAND存储 器1020的总容量,从而只要以磁道为单位执行写入操作,空闲块就不会变 得不足。另一方面,当对未写入LBA以簇为单位执行多次写入时,容量 大于簇的物理块被用于一个以簇为单位的写入操作,这样,在NAND存储 器1020中需要容量大于待写入数据的物理块,因此空闲块可能变得不足。 当空闲块变得不足时,可如下所述通过整理NAND存储器1020(NAND 垃圾收集(NAND GC))来获取新的空闲块。

用户数据是否通过管理方法以簇为单位或以磁道为单位进行管理取决 于来自主机1100的写入模式。例如,当从主机1100到SSD1010执行大 小等于或等大于磁道大小的顺序写入时,写入数据被分布到大于磁道大小 的连续LBA区域,这样便可以磁道为单位管理用户数据。另一方面,例 如,当从主机1100到SSD1010执行簇大小的随机写入时,写入数据被分 散在属于不同磁道的不连续LBA区域上,这样便可以簇为单位管理用户 数据。

接下来,将参考图82介绍SSD1010中的NAND GC处理。并非在物 理块中存储的所有簇总是有效簇,无效簇(即,有效簇以外的簇)不与LBA 关联。有效簇是其中写入最新数据的簇,无效簇是因为在不同的位置中写 入具有相同LBA的数据而不被引用的簇。物理块具有针对一定量无效簇 的数据的空闲空间,空闲块可通过执行收集有效簇中数据并在不同块中重 写该数据的NAND整理处理来获取。

首先,将物理块ID(=i)设定为0,并将空闲空间累计量S设定为0(步 骤S1160)。存储控制器1050判定ID为i=0的物理块是否被输入磁道表 1023(步骤S1161)。当物理块被输入磁道表时,i递增1(步骤S1162), 对具有下一数值ID的物理块执行类似的判定(步骤S1161)。换言之,当 物理块ID包括在磁道表1023中时,该物理块中的数据以磁道为单位管理, 以便该物理块不包括在NAND整理处理目标中。

当ID为i的物理块不以磁道为单位管理时(步骤S1161中的否),存 储控制器1050参考簇表1024并获取在ID为i的物理块中包括的有效簇的 所有地址(步骤S1163)。然后,存储控制器1050获取所获取的有效簇的 总容量大小z(步骤S1164)。在其中v<物理块大小的情况下(步骤S1165), 存储控制器1050将该物理块的ID添加到NAND GC处理目标块列表中(步 骤S1166)。此外,存储控制器1050将所获取的该物理块簇容量v添加到 所获取的簇累计量S中并更新所获取的簇累计量S(步骤S1167)。

在步骤S1165,当v≥物理块大小时,或者在S1168,当获取的簇累计 量S尚未达到物理块大小时,存储控制器1050使i递增1(步骤S1162) 并以类似于上面的方式对具有下一数值ID的物理块执行步骤S1161至 S1167中的过程。然后,在步骤S1168,存储控制器1050重复步骤S1161 至S1167中的过程,直到所获取的簇累计量S达到物理块大小。

在步骤S1168,当获取的簇累计量S达到物理块大小时,存储控制器 1050从NAND存储器1020读取NAND GC处理目标块列表上所有物理块 的所有有效簇的数据,并将其写入RAM1040(步骤S1169)。而且,存 储控制器1050对NAND GC处理目标块列表上所有物理块执行擦除处理 (步骤S1170),从活动块表1022删除所有被执行擦除处理的物理块并将 它们添加到空闲块表1021中(此时,擦除计数递增,步骤S1171)。然后, 存储控制器1050从空闲块表1021获取新空闲块,将在RAM1040中写入 的数据写入所获取的空闲块(步骤S1172),将被写入数据的空闲块的物 理块ID及对该块的擦除计数添加到活动块表1022中,并从空闲块表1021 删除被写入数据的块的块ID(步骤S1173)。此外,存储控制器1050更 新簇表1024中的簇地址、物理块ID和物理块内页地址以对应于此时的 NAND GC处理(步骤S1174)。

在图82的过程中,NAND GC通过对在空闲块内置入数据设置优先级 来处理。另一方面,NAND GC可通过借助以下方式对获取空闲块设置优 先级来处理。例如,在步骤1164通过从物理块大小减去所获取簇的容量来 获取大小v,然后在步骤S1165判定是否v>0,当v>0时,处理继续到步 骤S1168,当v≤0时,处理继续到步骤S1162。

如上所述,NAND GC处理伴随对NAND存储器1020中物理块的许 多读取操作、写入操作和擦除操作,因此需要大量时间。这样,如果在空 闲块数量变得不足的状态下执行写入,则执行NAND GC处理,从主机1100 的角度来看,这样减小写入处理速度。通过这种方式,SSD内部状态随时 变化,因此很容易受外部访问的影响。

接下来,将参考图83介绍SSD1010中的删除通知。删除通知是当在 主机1100中的OS1150中删除数据时,从主机1100发送到外部存储装置 的指令。删除通知的实例例如包括在INCITS ATA/ATAPI命令集-2 (ACS-2)中描述的Data Set Management Command(数据集管理命令) (被称为修剪(TRIM)命令)。在此方法中,当数据在OS1150中删除 时,将已删除数据所在的逻辑地址区域(LBA区域)通知给外部存储装置, 作为由LBA和逻辑扇区数的组合形成的LBA范围条目,以便该区域随后 可用作甚至外部存储装置中的空闲空间。删除通知允许SSD1010获取新 空闲块。TRIM命令的功能可通过其它命令实现,例如INCITS ACS-2中 描述的SCT Command Transport(SCT命令传输)和对于供应商唯一的 命令等,替代Data Set Management Command。

当SSD1010从主机1100接收删除通知时(步骤S1180),存储控制 器1050根据图77所示的过程对在删除通知中包括的LBA执行LBA正向 查找转换。当删除通知中包括的LBA以磁道为单位管理时(步骤S1181 中的是),存储控制器1050将物理块ID添加到空闲块表1021中并将其 从活动块表1022删除(步骤S1184)。另一方面,当删除通知中包括的 LBA以簇为单位管理时(步骤S1181中的否),存储控制器1050从簇表 1024删除所有对应于物理块的簇(步骤S1182),将适当的有效值(例如, FFFF)写入磁道表1023中对应于磁道(与LBA对应)的物理块ID(步 骤S1183),然后将该物理ID添加到空闲块表1021并将其从活动块表1022 删除(步骤S1184)。在SSD1010中,除了NAND GC处理以外,也可通 过删除通知处理获取空闲块。

接下来,将介绍SSD1010中的性能降低。图84是SSD1010中的性 能降低的概念图。首先,描述写入操作的性能降低(图84中的实线)。紧 接在从工厂运送之后,没有数据被写入SSD1010并且所有LBA处于未写 入状态,这样,几乎所有物理块为空闲块。在这种状态下,当有从主机1100 到SSD10的写入指令时,存储控制器1050可立即将数据写入空闲块。但 是,当用户使用SSD1010时,写入量增加,这样空闲块数量减少。尤其 是,当小于磁道大小的数据写入多次发生时,数据以簇为单位管理,这样 使用容量大于簇的物理块进行一个以簇为单位的写入操作。因此,当数据 以簇为单位管理时,NAND存储器1020中需要容量大于待写入数据的物 理块,这样,空闲块数量可能变得不足。使NAND GC处理执行的可能性 随着剩余的空闲块数减少而增加。而且,当SSD1010中存储的用户数据 增加,为了获取一个空闲块而需要在NAND GC处理中读取的活动块数也 增加。这样,NAND GC处理所需的时间也增加。

写入所需的时间近似地通过以下方程式表示(实际上,管理表处理时 间等也被添加到其中)。

(写入时间)=(对物理块的写入时间)+(NAND GC处理概率)× (NAND GC处理时间)

由于NAND GC处理概率和NAND GC处理时间均随着累计写入数据 量增加而增加,因此写入性能以加速度降低。另一方面,在写入性能降低 状态下,例如,当执行顺序写入时,以磁道为单位管理的数据比率增加, 因此,空闲块数增加,从而恢复写入性能。而且,在写入性能降低状态下, 当删除通知针对不处于未写入状态的LBA区域发出时,与不处于未写入 状态的LBA区域对应的活动块被释放为空闲块,以此恢复写入性能。

图85示出当来自主机1100的访问频率较低时,由SSD1010本身执 行的NAND GC处理程序。当SSD1010在特定时间段内(例如,10秒) 或更长时间段内未从主机1100接收到命令(处于空闲状态)时,或者当 SSD1010在特定时间段内或更长时间段内未接收到命令(媒体访问命令) (主机1100需要使用该命令访问NAND存储器1020)时(步骤S1190), 执行NAND GC处理(步骤S1191)以提前获取空闲块,从而使得能够防 止写入性能降低(自动NAND GC处理)。可通过增加使自动NAND GC 处理执行的频率来有效地防止性能降低,但是,这样导致NAND存储器 1020上的擦除计数增加,此状况变为降低SSD1010可靠性的因素。这样, 鉴于性能与可靠性之间的均衡关系,需要适当地调整直至开始NAND GC 处理的时间。

接下来,将描述读取操作的性能降低(图84中的虚线)。当读取以磁 道为单位管理的用户数据时,通过搜索磁道表1023执行正向查找转换,并 且搜索目标元素数量与(总容量)÷(磁道大小)一样小。另一方面,在 用户数据以簇为单位管理的情况下,除了磁道表1023以外,还需要通过搜 索簇表1024来执行正向查找转换,以便搜索目标元素数量为(总容量)÷ (簇大小)的最大值。簇大小一般实质上小于磁道大小,以便簇表1024 中的搜索目标元素数量显著地大于磁道表1023中的搜索目标元素数量,从 而增加了搜索时间。因此,读取所需的时间增加。例如,当1个磁道由4096 个簇构成时,簇表1024中元素数量是磁道表1023中元素数量的4096倍。 如上所述,当向SSD1010以簇为单位管理的数据写入增加时,读取性能 降低。另一方面,在读取性能降低状态下,例如,当执行顺序写入时,以 磁道为单位管理的数据增加,这样恢复读取性能。

图86是示出作为比较实例的一般读取操作的性能测试实例。在读取性 能测试中,主机1100执行测试数据模式的顺序写入,以便读到测试目标 LBA区域。在写入之后,主机1100测量开始时间并将所测量的开始时间 存储在主机1100的主存储器1202中。此外,主机1100通过将用于对测试 目标LBA区域进行测试的读取指令发送到SSD1010中来使SSD1010读 取写入模式,以及在接收读取数据之后结束读取。然后,主机1100测量读 取结束时间并将所测量的结束时间存储在主机1100的主存储器1202中。 之后,CPU1200通过从结束时间减去开始时间来获取测试执行时间,并 且通过将用于测试的读取数据量除以测试执行时间来获取读取传输数据速 率。

图87是示出作为比较实例的一般写入操作的性能测试实例。在写入性 能测试中,主机1100对测试目标LBA区域执行预调节数据模式的顺序写 入(在某些测试中,不写入预调节模式数据)。在写入之后,主机1100 测量开始时间并将所测量的开始时间存储在主机1100的主存储器1202中。 此外,主机1100通过将用于对测试目标LBA区域进行测试的写入指令发 送到SSD1010来使SSD1010写入写入模式,以及在接收来自主机1100 的写入结束通知之后结束写入。然后,主机1100测量写入结束时间并将所 测量的结束时间存储在主机1100的主存储器1202中。之后,CPU1200 通过从结束时间减去开始时间来获取测试执行时间,并且通过将用于测试 的写入数据量除以测试执行时间来获取写入传输数据速率。

通过这种方式,在上述性能测量中,对SSD1010执行大量写入,这 样,测量本身影响SSD内部状态,从而因为测量而导致内部状态偏离用户 实际使用时的内部状态,这样造成测量结果偏离用户体验的速度。例如, 当从主机1100对SSD1010执行顺序写入访问以测量性能时,SSD1010 中的管理信息被重写,以便以簇为单位管理的数据变更为以磁道为单位管 理的数据,或者空闲块数减少。这样导致写入性能测试和读取性能测试中 最终计算的SSD性能偏离用户体验的性能(测量前的性能)。实际上,许 多性能测量工具都具有规范,在这些规范中,在各种测量中对SSD执行数 十亿字节或更大数据的顺序写入,从而使这些工具测量的性能大幅偏离用 户体验的性能。

下面介绍该实施例的主要部分。在该实施例中,性能测量使用图67 所示的主存储器1202中的性能评估工具1110执行。如上所述,性能评估 工具1110包括访问信息获取工具1111和性能信息获取工具1112。如图73 所示,性能评估工具1110将信息发送到OS1150或从OS1150接收信息, 而且,与一般软件1140类似,通过OS1150将指令、响应和数据发送到 硬件或从硬件接收指令、响应和数据。另一方面,如图88所示,当性能评 估工具1110以外的软件1140通过OS1150将命令(指令、响应和数据) 发送到SSD1010或从SSD1010接收命令时,性能评估工具1110从OS 1150至少接收指令和响应的日志。很明显,性能评估工具1110可以接收 指令、响应和数据的日志。

此外,当OS1150根据来自OS1150本身的请求将命令(指令、响应 和数据)发送到SSD1010或从SSD1010接收命令时,性能评估工具1110 从OS1150接收指令和响应的日志。很明显,性能评估工具1110可以接 收数据以及指令和响应的日志。

而且,当性能评估工具1110本身通过OS1150将指令、响应和数据 发送到SSD1010或从SSD1010接收指令、响应和数据时,性能评估工具 1110可以从OS1150接收指令和响应的日志(很明显,性能评估工具1110 可以接收指令、响应和数据的日志),但是,在该实施例中,为了便于理 解,性能评估工具1110不从OS1150获取在性能评估工具1110本身与SSD 1010之间传输指令、响应和数据时获取的日志。

当OS1150或软件1140访问SSD1010时,性能评估工具1110的访 问信息获取工具1111从OS1150接收该访问命令的日志,或者通过OS 1150从软件1140接收该访问命令的日志。如图89所示,性能评估工具1110 的访问信息获取工具1111接收的访问日志包括时间信息(包含粗略时间戳 和精细时间戳的时间戳)、命令方向信息、线程识别信息(队列ID)、命 令内容信息、传输长度信息(数据长度信息)、LBA信息等。

粗略时间戳是通过获取将指令、响应或数据发送到SSD1010或从SSD 1010接收指令、响应或数据的时间而获取的信息,例如,以秒为单位。该 时间可通过OS1150获取并且可从BIOS等获取。可使用传输指令、响应 或数据的日志的时间替代传输指令、响应或数据的时间。

精细时间戳是通过获取将指令、响应或数据发送到SSD1010或从SSD 1010接收指令、响应或数据的时间而获取的信息,其采用小于秒的单位, 例如μ秒。上述时间可通过OS1150获取或者可从BIOS等获取。可使用 传输指令、响应或数据的日志的时间替代传输指令、响应或数据的时间。 截去表示等于或大于秒的值的数字。在不截去任何数字的情况下,可以μ 秒为单位管理时间,并且可以省略粗时间信息项。

命令方向信息是指示该命令是到SSD1010的指令(请求发送)还是 来自SSDS1010的响应(完成通知)的信息。例如,在采用SATA标准的 情况下,在INCITS ACS-2中描述的60h READ FPDMA QUEUED命令中, 当60h READ FPDMA QUEUED命令的Register Host to Device(向装置 注册主机)(RegHD)从主机1100发送到SSD1010时,性能评估工具1110 的访问信息获取工具1111从OS1150接收日志作为指令(请求发送), 当60h READ FPDMA QUEUED命令的Set Device Bit(设置装置位) (SDB)从SSD1010接收时,性能评估工具1110的访问信息获取工具1111 从OS1150接收完成通知的日志以指示命令已完成。当RegHD中指定的 所有请求数据从SSD1010接收到主机1100时,访问信息获取工具1111 可在接收SDB之前接收完成通知。

而且,在SATA标准的61h WRITE FPDMA QUEUED命令中,当61h WRITE FPDMA QUEUED命令的RegHD从主机1100发送到SSD1010 时,性能评估工具1110的访问信息获取工具1111从OS1150接收日志作 为指令(请求发送),以及当61h WRITE FPDMA QUEUED命令的SDB 从SSD1010接收时,性能评估工具1110的访问信息获取工具11111从 OS1150接收完成通知的日志以指示命令已完成。当RegHD中指定的所有 请求数据从主机1100发送到SSD1010时,访问信息获取工具1111可在 SDB被接收之前接收完成通知。

除了命令未结束的异常时间之外,命令还有必要包括一对指令(请求 发送)和响应(完成通知)。请求发送指示命令开始,以及响应(完成通 知)指示命令结束,这样,它们之差指示执行命令所需的时间。

当通过多个线程执行对SSD1010的请求时,线程识别信息(队列ID) 是用于区分线程的ID。该线程可以是在OS1150中管理的线程,也可以是 在与SSD1010的接口中管理的线程。在与SSD1010的接口中管理的线程 例如是SATA标准的原生指令排序(NCQ),在这种情况下,将0至31 分配给队列ID。

命令内容信息例如是识别命令是写入命令还是读取命令的信息。例如, 在使用SATA标准的情况下,可以更精细地对有关读取命令和写入命令的 信息进行分类,例如,INCITS ACS-2中描述的60h READ FPDMA  QUEUED、25h READ DMA EXT、C8h READ DMA等。在该实施例中, 为了便于理解,获取该信息只是为了识别命令为写入命令还是读取命令。 尽管可以获取写入命令和读取命令以外的命令的日志,但是在该实施例中, 仅获取写入和读取命令的日志。在完成通知的情况下,可写入无效值(空)。

传输长度信息是指定从通过命令指定的头LBA起要读取(或要写入 的)的长度的信息并且对应于SATA标准的逻辑扇区计数。例如,当传输 长度在对LBA=0h的写入命令中为8h逻辑扇区时,从LBA=0h至LBA=7h 的连续区域是写入目标,并且其写入数据量为8h逻辑扇区=4KiB。在完 成通知的情况下,可写入无效值(空)。

LBA信息是有关命令指定的头LBA的信息。

性能评估工具1110的访问信息获取工具1111从OS1150接收的访问 日志顺序存储在图67所示的主存储器1202的访问日志表1120中(另外还 有记录方法或环形缓冲方法)。访问日志表1120例如具有图89所示的形 式,并且包括时间戳(包括粗略时间戳和精细时间戳)、命令方向信息、 线程识别信息(队列ID)、命令内容信息,传输长度信息、LBA信息等。 如图90所示,访问日志表1120可由两个分开的日志构成,即,请求发送 日志和完成通知日志。在图90中,省略LBA信息。

图91和图92示出通过访问信息获取工具1111另外将日志记录到访问 日志表1120的过程。当访问信息获取工具1111检测到读取命令或写入命 令被发送到SSD1010时(图91:步骤S1201),访问信息获取工具1111 另外将对应于该命令的访问日志记录到访问日志表1120(步骤S1202)。 而且,当访问信息获取工具1111检测到从SSD1010接收到对读取命令的 响应或对写入命令的响应时(图92:步骤S1211),访问信息获取工具1111 另外将对应于该命令响应的访问日志记录到访问日志表1120(步骤 S1212)。

存储在访问日志表1120中的访问日志被性能评估工具1110的性能信 息获取工具1112转换为性能日志信息,以便另外记录到存储在图67所示 的主存储器1202的性能日志表1125。性能日志信息被定期进行计算(例 如,每10秒)并且被另外记录到性能日志表1125作为预定时间段的性能 信息。图93示出包括时间信息、总传输数据速率、读取传输数据速率、写 入传输数据速率等作为记录元素的性能日志表1125的实例。在图93中, 传输数据速率被记录为性能信息。另一方面,可记录诸如处理命令速率、 响应时间、处理时间、和上述相对评分之类的其它性能。

在这种情况下,时间戳以秒或更长时间为单位管理。可将命令组(它 是访问日志表1120中包括的性能计算目标)中最后一个完成的命令的完成 时间用作性能日志表的时间戳。该时间戳可以小于秒的单位管理。替代最 后一个完成命令的完成时间,可使用命令(对该命令首先发送指令请求) 中的指令请求时间,或者可使用性能计算目标的时间范围中的开始时间和 结束时间作为性能日志表的时间戳。

总传输数据速率(MiB/s)是从SSD1010读到主机1100的数据或从 主机1100写入SSD1010的数据的传输数据速率。在图13中,总传输数 据速率的单位为MiB/s,这表示每秒传输的数据量(单位:MiB)。当数 据在性能计算目标时间段内根本不传输时,写入无效值(空(NULL)) 或者不添加该行。

读取传输数据速率(Mi/s)是从SSD1010读到主机1100的数据的传 输数据速率。在图93中,读取传输数据速率的单位为MiB/s,这表示每秒 传输的数据量(单位:MiB)。当数据读取在性能计算目标时间段内根本 未完成时,写入无效值(空)。

写入传输数据速率(MiB/s)是从主机1100写入SSD1010的数据的 传输数据速率。在图93中,写入传输数据速率的单位为MiB/s,这表示每 秒传输的数据量(单位:MiB)。当数据写入在性能计算目标时间段内根 本未完成时,写入无效值(空)。

访问日志由性能信息获取工具1112根据图94和图95所示的过程转换 为性能日志。可采用图94和图95所示的过程中的任一者或者可采用图94 和图95所示的过程这两者。

在图94所示的过程中,性能信息获取工具1112每预定性能计算时间 段通过使用存储在访问日志表1120中的访问日志来计算性能,另外将所计 算的性能记录到访问日志表1120。具体而言,当经过预定性能计算时间段 (例如,10秒)时(步骤S1220),性能信息获取工具1112通过使用存 储在访问日志表1120中的访问日志来计算性能日志信息,例如时间信息、 总传输数据速率、读取传输数据速率和写入传输数据速率(步骤S1221), 并且另外将所计算的性能日志信息记录到性能日志表1125(步骤S1222)。 当性能日志信息被另外记录到性能日志表1125时,性能信息获取工具1112 从访问日志表1120擦除用于计算性能的访问日志(步骤S1223)。

在图95所示的过程中,判定访问日志表1120的大小上限。当访问日 志表1120的大小达到上限时,性能信息获取工具1112通过使用存储在访 问日志表1120中的访问日志来计算性能,并且另外将所计算的性能记录到 性能日志表1125。具体而言,当访问日志表1120的大小达到上限时(步 骤S1230),性能信息获取工具1112通过使用存储在访问日志表1120中 的日志来计算性能日志信息,例如,时间信息、总传输数据速率、读取传 输数据速率和写入传输数据速率(步骤S1231),并且另外将所计算的性 能日志信息记录到性能日志表1125(步骤S1232)。当性能日志信息被另 外记录到性能日志表1125时,性能信息获取工具1112从访问日志表1120 擦除用于计算性能的访问日志(步骤S1233)。

在图94和图95的过程的任一者中,用于计算性能的命令被从访问日 志表1120擦除,这样,具有大数据大小的访问日志表1120顺序地转换为 具有小数据大小的性能日志表1125。

当图94和图95所示的过程同时被使用时,例如可采用下面的方法。 具体而言,性能信息获取工具1112每预定性能计算时间段计算性能日志, 直到达到访问日志表1120的大小上限,当达到访问日志表1120的大小上 限时,性能信息获取工具1112通过使用存储在访问日志表1120中的所有 访问日志来计算性能日志,且在此时第一次擦除存储在访问日志表1120 中的访问日志。而且,当擦除访问日志时,可仅擦除访问日志表1120的一 部分,而非擦除访问日志表1120中的所有元素。在这种情况下,例如,期 望从访问日志表1120的旧元素中顺序擦除元素。

以这种方式记录在性能日志表1125中的性能日志被性能信息获取工 具1112监测。图96示出性能日志表1125的监测过程。性能信息获取工具 1112判定性能日志表1125是否更新(步骤S1240)。当性能日志表1125 更新时,性能信息获取工具1112在显示器1133上显示性能日志表1125 的历史数据(步骤S1241)。图97示出在显示器1133上显示的性能日志 信息的实例。在这种情况下,实时显示总传输数据速率,其中将时间作为 横轴。当特定时间段内或更长时间段内没有对SSD1010的任何读取/写入 访问时,如图98所示,期望在这段时间内隐藏图形或者清楚地显示在这段 时间内无任何访问。

接下来,将详细地介绍性能信息获取工具1112执行的从访问日志到性 能日志的转换。在该实例中,阐述计算总传输数据速率的情况。在读取传 输数据速率情况下,仅使用读取命令日志(读取请求日志和读取完成日志), 在写入传输数据速率的情况下,仅使用写入命令日志(写入请求日志和写 入完成日志)。如图99所示,SSD1010在许多情况下被多个线程访问。 图99示出具有最大线程数的情况,即32个线程。

在图99中,交叉阴影条和阴影条指示各线程中的命令活动状态,条左 端指示命令的请求时间(开始时间),条右端指示命令的完成时间(结束 时间)。例如,在第一方DMA读取(fp DMA读取)命令(SATA标准 中原生命令排列(NCQ)的读取命令)的情况下,如图100A所示,命令 的开始时间是从主机1100向SSD1010发送命令的向装置注册主机 (RegHD)FIS(框架指令结构)的时间,命令的结束时间是主机1100从 SSD1010接收设置装置位(SDB)FIS的时间。命令的结束时间可以是在 接收SDB之前,主机1100完成从SSD1010接收在RegHD中指定的所有 请求数据的时间(图100B)。

而且,在第一方DMA写入(fp DMA写入)命令(NCQ的写入命令) 的情况下,如图101A所示,命令的开始时间是从主机1100向SD1010发 送命令的向装置注册主机(RegHD)FIS的时间,命令的结束时间是主机 1100从SSD1010接收设置装置位(SDB)FIS的时间。命令的结束时间 可以是在接收SDB之前,主机1100完成将RegHD中指定的所有请求数 据发送到SSD1010的时间(图101B)。

本发明甚至可应用于非NCQ命令,例如,在DMA读取命令的情况 下,如图102A所示,命令的开始时间是从主机100向SSD1010发送命 令的向装置注册主机(Register Host to Device)FIS的时间,命令的结束 时间是主机1100从SSD1010接收向主机注册装置(Register Host to  Device)的时间。命令的结束时间可以是在接收SDB之前,主机1100完 成从SSD10接收在RegHD中指定的所有请求数据的时间(图102B)。

而且,在DMA写入命令(非NCQ Write命令)的情况下,如图103A 所示,命令的开始时间是从主机100向SSD1010发送命令的向装置注册 主机FIS的时间,命令的结束时间是主机1100从SSD1010接收向主机注 册装置FIS的时间。命令的结束时间可以是在接收SDB之前,主机1100 完成将RegHD中指定的所有请求数据发送到SSD1010的时间(图103B)。 而且,在该实施例中,描述使用SATA的情况,但是很明显,本发明也可 应用于诸如SAS和USB之类的其它接口。

在图99中,时间t0、t1、t2和t3指示计算性能信息的时间。并非所 有命令在计算性能信息之前完成,具有跨越由时间t0、t1、t2和t3划分的 时间区域Δt1、Δt2、Δt3和Δt4存在的命令(例如,由阴影指示的条)。 但是,在时间区域Δt1、Δt2、Δt3和Δt4的每一者中,针对SSD1010的命 令并非总是活动的。正活动的命令指示该命令正在SSD1010中执行。命 令不活动的时间段例如指示主机1100中的CPU1200正等待操作的时间段 和等待用户操作的时间段。命令不活动的时间段例如为SSD1010的空闲 状态、待机状态和休眠状态。

图104示出作为性能信息的传输数据速率的计算过程实例。在该过程 中,计算传输数据速率,其中包括多个线程。换言之,传输数据速率通过 综合判定多个线程进行计算。而且,该过程示出时间tn-1至时间tn之间 的传输数据速率的计算过程,每性能计算时间段重复此过程。当计算开始 被触发时,性能信息获取工具112读取访问日志表1120(步骤S1250)。 性能信息获取工具1112基于记录在访问日志表1120中的时间信息,获取 时间tn-1与时间tn之间的时间(命令不活动时间)(其中,对SSD1010 的任何命令不活动)之和δn(步骤S1251)。在下文中,时间和δn被称 为不活动总时间。在图99所示的实例中,命令在时间t0与时间t1之间的 多个线程的任一线程中活动,因此δn=0。在时间t1与时间t2之间,存在 δa作为命令不活动时间,因此δn=δa。在时间t2与时间t3之间,存在δb 和δc作为命令不活动时间,因此δn=δb+δc。

接下来,性能信息获取工具1112从性能测量目标时间段中的结束时间 tn减去性能测量目标时间段中的开始时间tn-1以获取性能测量目标时间段 Δtn。此外,性能信息获取工具1112从性能测量目标时间段Δtn减去不活 动总时间δn以获取有效性能测量目标时间段Δtn’(=Δtn-δn)(步骤S1252)。 这样,该过程通过减去不活动总时间δn,允许性能信息获取工具1112从 性能测量中排除SSD1010以外的因素,例如主机1100中CPU1200的操 作时间和等待用户响应的时间段。

接下来,性能信息获取工具1112基于访问日志表1120中记录的信息 获取命令列表(这些命令在时间tn-1与时间tn之间开始和完成)并通过 求和它们的传输长度来计算总数据量(=S0)(步骤S1253)。而且,性能 信息获取工具1112基于访问日志表1120中记录的信息获取命令列表(这 些命令在作为上一时间段的时间tn-2与时间tn-1之间开始,且在作为当前 时间段的时间tn-1与时间tn之间完成)并计算每个命令的数据量与由下 面的方程式定义的贡献的乘积之总和(=S1)(步骤S1254)。

(贡献)=(时间tn-1与时间tn之间的命令活动时间)/(时间tn-2 与时间tn之间的命令活动时间)

图105示出跨越两个时间段(t0至t1和t1至t2)存在的命令,其中 B是时间t0与时间t1之间的命令活动时间,C是时间t1与时间t2之间的 命令活动时间,A是时间t0与时间t2之间的命令活动时间。相对于该命 令,时间t0与时间t1之间的时间段中的贡献为B/A,时间t1与时间t2之 间的时间段中的贡献为C/A。通过这种方式,当前时间段中的命令(在上 一时间段中开始,在当前时间段中结束)的数据量通过使用每个时间段中 的活动时间按比例分配命令的总数据量来进行计算。

接下来,性能信息获取工具1112基于访问日志表1120中记录的信息 获取命令列表(这些命令在作为当前时间段的时间tn-1与时间tn之间开 始,在作为下一时间段的时间tn与时间tn+1之间完成)并计算每个命令 的数据量与上述贡献的乘积之总和(S=2)(步骤S1255)。

此外,性能信息获取工具1112通过以下方程式计算传输数据速率(步 骤S1256)。

(传输数据速率)=(S0+S1+S2)/Δtn’

在图104的过程中,通过参考性能测量目标时间段(tn-1至tn)之前 和之后的一个时间段(tn-2至tn-1和tn至tn+1)来计算传输数据速率。 当在性能测量目标时间段(tn-1至tn)中结束的命令在该性能测量目标时 间段之前的n个时间段(n为自然数)开始时,可通过参考从性能测量目 标时间段(tn-1至tn)至作为性能测量目标时间段(tn-1至tn)之前n个 时间段的时间段来计算传输数据速率,其中采用类似于图105所示的方法 的比例分配法。类似地,当在性能测量目标时间段(tn-1至tn)中开始的 命令在该性能测量目标时间段之后的n个时间段(n为自然数)结束时, 可通过参考从性能测量目标时间段(tn-1至tn)到作为性能测量目标时间 段(tn-1至tn)之后n个时间段的时间段来计算传输数据速率。

图106示出作为性能信息的处理命令速率的计算过程实例。如上所述, 处理命令速率是每单位时间发送到SSD1010以及从SSD1010接收的指令 数。图106中的处理内容与在图104所示的传输数据速率计算中的一个命 令的数据量被设定为1的情况完全相同。当计算开始被触发时,性能信息 获取工具1112读取访问日志表1120(步骤S1260)。性能信息获取工具 1112基于记录在访问日志表1120中的时间信息,获取时间tn-1与时间tn 之间的时间(命令不活动时间)(其中针对SSD1010的任何命令均不活 动)之和δn(步骤S1261)。

接下来,性能信息获取工具1112从性能测量目标时间段中的结束时间 tn减去性能测量目标时间段中的开始时间tn-1以获取性能测量目标时间段 Δtn。此外,性能信息获取工具1112从性能测量目标时间段Δtn减去不活 动总时间δn以获取有效性能测量目标时间段Δtn’(=Δtn-δn)(步骤S1262)。 接下来,性能信息获取工具1112基于访问日志表1120中记录的信息获取 命令列表(这些命令在时间tn-1与时间tn之间开始和完成)并通过对列 表中的命令计数来计算命令数(=S0)(步骤S1263)。而且,性能信息获 取工具1112基于访问日志表1120中记录的信息获取命令列表(这些命令 在作为上一时间段的时间tn-2与时间tn-1之间开始,在作为当前时间段的 时间tn-1与时间tn之间完成)并以类似于上面的方式计算每个命令对当 前时间段的贡献,从而计算贡献之总和(=S1)(步骤S1264)。接下来, 性能信息获取工具1112基于访问日志表1120中记录的信息针对命令(这 些命令在作为当前时间段的时间tn-1与时间tn之间开始,在作为下一时 间段的时间tn与时间tn+1之间完成)执行类似的计算以计算贡献之总和 (=S2)(步骤S1265)。此外,性能信息获取工具1112根据以下方程式 计算处理命令速率(步骤S1266)。

(处理命令速率)=(S0+S1+S2)/Δtn’

图107示出作为性能信息的平均响应时间的计算过程实例。当计算开 始被触发时,性能信息获取工具1112读取访问日志表1120(步骤S1270)。 性能信息获取工具1112基于在访问日志表1120中记录的信息,获取命令 数(=D)(这些命令在时间tn-1与时间tn之间的性能测量目标时间段期 间完成)(步骤S1271),计算命令(这些命令在时间tn-1与时间tn之间 完成)活动期间的总时间(=S)(步骤S1272),以及将S除以D,从而 推导出平均响应时间(步骤S1273)。

在采用最大响应时间作为其它性能信息的情况下,通过性能信息获取 工具1112参考访问日志表1120获取在时间tn-1与时间tn之间完成的命 令当中的最大命令活动时间,获取最大响应时间。而且,可在计算命令响 应时间时,使用应用或应用的各线程而非命令的活动时间来计算应用处理 时间。在计算应用处理时间时,例如,当没有对SSD的访问时(例如,当 等待CPU完成处理或等待用户输入时),期望从应用执行时间减去对SSD 没有访问期间的时间来计算应用处理时间。而且,可通过在各种评分的计 算过程中对上述各种评分或各种参数的结果执行加减乘除来获取相对评 分。

如上所述,性能日志另外被记录到主机1100的主存储器1202。如果 性能日志仅存储在主存储器1202中,则当主机1100的电源关断时,将丢 失上面的信息。因此,如图108所示,性能信息获取工具1112可判定性能 日志的大小是否已达到特定的指定值(步骤S1280)。当性能日志的大小 已达到特定的指定值时(步骤S1280中的是),性能信息获取工具1112 将性能日志记录在SSD1010或其它外部存储装置(例如,HDD和USB 存储器)(步骤S1281),之后删除主存储器1202中存储的性能日志(步 骤S1282)。在SSD1010中记录性能日志之后,存储在主存储器1202中 的性能日志可以保留,而不必删除。当主机1100的电源先关断后接通时, 性能评估工具1110再次将存储在SSD1010或其它外部存储装置中的性能 日志读到主存储器1202。

也可应用图109所示的方法。具体而言,性能信息获取工具1112判定 自上次存储性能日志起是否经过特定的时间段(例如,10分钟)(步骤 S1290)。当经过特定的时间段时,性能信息获取工具1112将性能日志记 录在SSD1010或其它外部存储装置(例如,HDD和USB存储器)中(步 骤S1291),并且之后删除主存储器1202中存储的性能日志(步骤S1292)。 在这种情况下,在SSD1010中记录性能日志之后,也可以保留存储在主 存储器1202中的性能日志,而不必删除。

在图104所示的性能计算过程中,针对所有线程(例如,ATA标准的 NCQ中的标签和OS中的线程)综合计算性能。另一方面,可针对每个线 程计算性能信息。尤其是,当针对每个线程(例如,SSD的一部分)可以 独立地控制对NAND存储器1020的访问时,期望针对每个线程获取性能 信息。在下文中,示出针对每个线程计算总传输数据速率的情况作为每个 线程的性能信息。可通过下面的方式计算其它性能指标(例如,读取传输 数据速率、写入传输数据速率、处理命令速率、响应时间、处理时间和相 对评分)作为性能信息。

图110是计算ATA标准的NCQ中每个标签的性能信息的实例。另一 方面,可计算每个线程的性能信息,除了NCQ之外,例如还有OS1150 中每个线程编号的性能信息和其它标准中每个线程的性能信息。在图110 中,Q0、Q1、…以及Q31分别对应于ATA标准的NCQ中的标签编号=0、 1、…以及31,从而使得线程(队列)总数为32。通过类似于图99的方式, 交叉阴影条和阴影条分别指示线程中命令的活动状态,其中条左端指示命 令的开始时间(例如,发送命令的RegHD的时间),条右端指示命令的 结束时间(例如,接收命令的SDB的时间)。时间t0、t1、t2和t3指示 计算性能信息的时间。阴影条指示跨越由时间t0、t1、t2和t3划分的时间 区域而存在的命令。而且,如上所述,在时间区域Δt1、Δt2、Δt3和Δt4 的每一者中,针对SSD1010的命令并非总是活动的,存在其中命令不活 动的时间段δ,例如,主机1100中的CPU1200等待操作的时间段和等待 用户操作的时间段。

在图104所示的程序中,通过综合判定所有线程来计算性能,这样, 不活动时间段就是其中在多个线程中,没有任何针对SSD1010的命令是 活动的时间段(请参阅图99中的δa、δb和δc)。当单独计算每个线程的 性能信息时,如图110所示,任何不具有用于每个线程的条的时间段都是 其中不执行命令的不活动时间段δ(δ1、δ2…)。因此,例如,时间t0与 时间t1之间的时间段中的线程Q0的有效性能测量目标时间段Δtn’可通过 计算Δt1-δ1来获取。而且,时间t0与时间t1之间的时间段中的线程Q1 的有效性能测量目标时间段Δtn’可通过计算Δt1-(δ2+δ3)来获取。而且, 时间t0与时间t1之间的时间段中的线程Q5的有效性能测量目标时间段 Δtn’可通过计算Δt1-(δ4+δ5+δ6)来获取。

接下来,将参考图104介绍计算传输数据速率作为每个线程的性能信 息的实例中的过程。当计算开始被触发时,性能信息获取工具1112读取访 问日志表1120(步骤S1250)。性能信息获取工具1112基于记录在访问 日志表1120中的时间信息,获取一个线程(在该实例中,线程Qx(x=0、 1、2、…、31))中的时间tn-1与时间tn之间的不活动时间δ的时间之 和δn(步骤S251)。接下来,性能信息获取工具1112从性能测量目标时 间段中的结束时间tn减去性能测量目标时间段中的开始时间tn-1以获取 性能测量目标时间段Δtn。此外,性能信息获取工具1112从性能测量目标 时间段Δtn减去不活动总时间δn以获取有效性能测量目标时间段Δtn’ (=Δtn-δn)(步骤S1252)。

接下来,性能信息获取工具1112基于访问日志表1120中记录的信息 获取线程Qx的命令列表(这些命令在时间tn-1与时间tn之间开始和完成) 并通过对它们的传输长度求和来计算总数据量(=S0)(步骤S1253)。而 且,性能信息获取工具1112基于访问日志表1120中记录的信息获取线程 Qx命令列表(这些命令在作为上一时间段的时间tn-2与时间tn-1之间开 始,在作为当前时间段的时间tn-1与时间tn之间完成)并以类似于上面 的方式计算每个命令对当前时间段的贡献,以计算每个命令的数据量与对 应贡献的乘积之总和(=S1)(步骤S1254)。接下来,性能信息获取工具 1112基于访问日志表1120中已记录的信息,通过对线程Qx的每个命令 执行类似的计算(这些命令在作为当前时间段的时间tn-1与时间tn之间 开始,在作为下一时间段的时间tn与时间tn+1之间完成)来计算贡献, 从而计算每个命令的数据量与对应贡献的乘积之总和(S=2)(步骤S1255)。 此外,性能信息获取工具1112根据以下方程式计算线程Qx中的当前时间 段的传输数据速率(步骤S1256)。

(传输数据速率)=(S0+S1+S2)/Δtn’

针对每个线程重复地执行此处理。

图111示出当计算每个线程的传输数据速率时,性能日志表1125的实 例。如图111所示,在性能日志表1125中,针对每个线程中的每个测量目 标时间段记录总传输数据速率。可以计算总传输数据速率、读取传输数据 速率和写入传输数据速率中的每一者,作为性能日志。备选地,可以计算 传输数据速率、处理命令速率、响应时间、处理时间和相对评分中的每一 者,作为性能日志。此外,可以将多个线程(队列)组合在一起,例如(Q1 和Q2)和(Q3和Q4),并且可以针对每个组记录性能日志。采用类似 于图97的方式,可以在显示器1133上通过图形显示性能日志。此外,采 用类似于图98的方式,当在某个线程中对SSD1010在某个时间段或更长 时间段内没有进行读/写访问时,期望隐藏该线程中该时间段的图,或者明 确显示在该时间段内没有访问该线程。

通过这种方式,根据第九实施例,在主机1100的正常使用期间,主机 1100获取软件1140或OS1150发送到SSD1010以及从SSD1010接收的 命令的访问日志,将访问日志存储在访问日志表1120中,并且通过使用所 存储的访问日志来计算有关SSD1010的性能信息,以便不会出现用于测 量性能的特殊写入以及用于测量性能的特殊测量时间段。因此,可以正确 获取外部存储装置的随时变化的性能信息,其非常接近于在实际使用时用 户体验的性能,并且不会对外部存储装置的可靠性产生不利影响。此外, 当使用时间信息计算性能信息时,使用通过排除针对外部存储装置的命令 不活动之期间的时间而获取的有效时间信息,计算性能信息,以便可以正 确获取外部存储装置的性能,而不会受到例如等待用户输入的时间段或者 等待CPU或其它硬件响应的时间段的影响。仅当将性能日志存储在SSD 1010中时,才向SSD1010进行额外写入。性能日志的数据大小非常小, 以便对SSD1010的性能和可靠性的影响非常低,并且当性能信息获取时 间间隔更长时,可以进一步减小其影响。

(第十实施例)

在第十实施例中,将性能日志分类为顺序访问(顺序读取和顺序写入) 和随机访问(随机读取和随机写入),并且根据传输长度(数据长度)进 一步分类。图112示出应用第十实施例的性能日志表1125,并且示出数据 传输速率作为性能信息。如图112所示,将性能日志表1125分类为四个表, 即,顺序读取、顺序写入、随机读取和随机写入。此外,根据多个不同的 传输长度对每个表进行分类。例如,SSD1010的性能在以下两种情况之间 变得不同:每传输长度=4KiB(这是小的大小)执行顺序访问的情况,以 及每传输长度=128KiB(这是相对大的大小)执行顺序访问的情况,以便 本实施例根据传输长度执行性能分类。

图113示出识别将访问日志信息分类为顺序访问还是随机访问的过程 的实例。性能信息获取工具1112读取按时间顺序记录在访问日志表1120 中的访问日志信息,根据访问日志信息是读取命令还是写入对每个访问日 志信息进行分类,并且根据传输长度进一步分类(步骤S1300)。接下来, 针对根据读取命令或写入命令和传输长度分类的一个组,性能信息获取工 具1112判定包括在访问日志信息中的命令的LBA是否与通过以下操作获 取的结果相同:将在上一个访问日志信息中包括的传输长度加到在上一个 访问日志信息中包括的命令的LBA(步骤S1301)。当LBA与结果相同 时,将访问日志信息分类为顺序访问(步骤S1303)。此外,当步骤S1301 中的判定为“否”时,性能信息获取工具1112判定在紧接在该访问日志信 息之后的访问日志信息中包括的命令的LBA是否与通过以下操作获取的 结果相同:将包括在访问日志信息中的传输长度加到包括在访问日志信息 中的命令的LBA(步骤S1302)。当LBA与结果相同时,将访问日志信 息分类为顺序访问(步骤S1303),并且当LBA与结果不相同时,将访问 日志信息分类为随机访问(步骤S1304)。针对每个分类的组执行这种处 理。

在上面的处理中,当具有多个线程时,期望通过综合判断线程,判定 将访问日志信息分类为顺序访问还是随机访问。此外,在当前命令和下一 个命令的LBA的连续性对于预定数量的命令或更多命令持续时,可以将 访问日志信息确定为顺序访问,并且在连续性对于预定数量的命令或更多 命令未持续时,可以将访问日志信息确定为随机访问。此外,在当前命令 和下一个命令的LBA的连续性对于预定数据大小或更多数据大小持续时, 可以将访问日志信息确定为顺序访问,并且在连续性未持续预定数据大小 或更多数据大小时,可以将访问日志信息确定为随机访问。

在步骤S1301,不必根据传输长度对组进行分类,并且可以包括所有 传输长度来计算性能。

根据第十实施例,因为将性能日志分类为顺序访问或随机访问,可以 针对每个顺序访问和随机访问单独评估SSD的性能。此外,因为根据传输 长度对性能日志进行分类,可以针对每个传输长度单独评估SSD的性能。 (第十一实施例)

在第十一实施例中,性能信息获取工具1112基于实时监测的性能信息 检测SSD1010的性能降低,并且执行处理以便恢复SSD1010的性能。如 上所述,当SSD1010的性能降低时,传输数据速率下降,处理命令速率 下降,响应时间增加,并且处理时间增加。相对评分下降取决于每个评分 值定义。可以通过将性能数据与边界条件比较,检测SSD1010的性能降 低。边界条件例如是传输数据速率的下限、处理命令速率的下限、响应时 间的上限、处理时间的上限、或者相对评分的阈值。当SSD1010的传输 数据速率小于传输数据速率的下限时,SSD1010的性能降低。当处理命令 速率小于处理命令速率的下限时,SSD1010的性能降低。当响应时间大于 响应时间的上限时,SSD1010的性能降低。当处理时间大于处理时间的上 限时,SSD1010的性能降低。当相对评分超过相对评分的阈值时,SSD1010 的性能降低。在下面,仅描述传输数据速率的情况,但可以在其它性能指 数的情况下执行类似的处理。此外,例如可以基于在设计SSD时的预期设 计值或者提供给客户的最低规范,确定每个边界条件值。

图114示出当传输数据速率变得低于下限时,通过发出删除通知(例 如,TRIM命令)来恢复性能的过程。性能信息获取工具1112根据性能日 志表1125中存储的信息,判定传输数据速率是否变得低于下限(步骤 S1310)。当传输数据速率变得低于下限时,性能信息获取工具1112从 OS1150获取文件管理信息(OS1150的元数据),根据获取的文件管理 信息,获取其中数据对于OS1150无效的LBA区域中的LBA(步骤S1311), 并且向获取的LBA区域发出删除通知(例如,TRIM命令)(步骤S1312)。 因此,SSD1010中的空闲块数量增加,因此恢复SSD1010的性能。

图115示出当传输数据速率变得低于下限时,通过在主机1100上执行 磁盘碎片整理来恢复性能的过程。当传输数据速率变得低于下限时(步骤 S1320),性能信息获取工具1112例如通过使用安装在主机1100中的文 件优化工具(碎片整理工具),在主机1100中执行碎片整理(步骤S1321)。 通常,如图116A所示,随着外部存储装置使用的发展,文件或空闲空间 的LBA成碎片。OS1150通常以文件为单位管理用户数据,并且在某些情 况下,相同文件中的数据存储在不连续的LBA区域中(图116A中所示的 文件“a.dat”)。此时,当读取成碎片的文件“a.dat”时,需要将读取命 令分给每个LBA区域,从而读取性能降低。在碎片整理功能中,将成碎 片的数据重新定位到连续LBA区域以便消除成碎片的状态,如图116B所 示。这种通过碎片整理进行的性能恢复具有的作用是:减少要在非易失性 存储装置1010中处理的读取命令的数量。因此,例如对于其它非易失性存 储装置(例如硬盘驱动器以及包括作为存储介质的NAND闪存的SSD)很 有用。此外,在硬盘驱动器中,如果作为读取目标的LBA区域成碎片, 则头查找操作的数量增加并且性能降低,从而碎片整理有效。

如图116C所示,在OS1150的文件管理表中的未存储数据的LBA区 域(空闲空间)在不连续的LBA区域上成碎片,这是由于用户使用该区 域。在这种状态下,当用户新生成并且更新文件时,OS1150在某些情况 下分配成碎片的LBA区域以进行数据写入。此时,否则向连续LBA区域 仅一次写入完成的写入操作在某些情况下导致写入到多个成碎片的LBA 区域,从而使写入性能降低。在碎片整理功能中,如图116D所示,重新 定位LBA以便将用户数据移动到成碎片的空闲空间以填充成碎片的空闲 空间,从而消除空闲空间的碎片。因此,提高外部存储装置的写入性能。 这种通过碎片整理进行的性能恢复具有的作用是:减少要在非易失性存储 装置1010中处理的写入命令的数量。因此,例如对于其它非易失性存储装 置(例如硬盘驱动器以及包括作为存储介质的NAND闪存的SSD)很有用。 此外,在硬盘驱动器中,如果作为写入目标的LBA区域成碎片,则头查 找操作的数量增加并且性能降低,从而碎片整理有效。

图117示出当传输数据速率变得低于下限时,通过将指令发送到SSD 1010以强制执行NAND GC处理来恢复性能的过程。例如可以通过 INCITS ACS-2中描述的SCT Command Transport(SCT命令传输)、对 于供应商唯一的命令等执行指令。当传输数据速率变得低于下限时(步骤 S1330),性能评估工具1110将指令发送到SSD1010以使SSD1010执行 NAND GC处理(步骤S1331)。因此,在SSD1010中执行NAND GC处 理,并且空闲块数量增加,从而恢复SSD1010的性能。

图118示出在传输数据速率变得低于下限时通过以下操作恢复性能的 过程:通过在某个时间段或更长时间段内禁止软件1140或OS1150将任 何指令发送到SSD1010,或者禁止软件1140或OS1150将介质访问命令 (用于访问NAND存储器1020的命令,例如写入命令、读取命令)发送 到SSD1010,使得在SSD1010中执行上述自动NAND GC处理。当传输 数据速率变得低于下限时(步骤S1340),性能信息获取工具1112在某个 时间段或更长时间内禁止软件1140或OS1150将任何指令发送到SSD 1010,或者禁止软件1140或OS1150将介质访问命令发送到SSD1010(步 骤S1341)。通过这种方式使得在SSD1010中执行NAND GC处理,以便 SSD1010中的空闲块数量增加,从而恢复SSD1010的性能。

图119示出硬盘驱动器(HDD)的传输数据速率的LBA依赖性。通 常,在HDD中,具有较小LBA的数据位于HDD磁盘的外周边,具有较 大LBA的数据位于HDD磁盘的内周边。因为磁盘的角速度恒定,在HDD 的外周边,头在每单位时间通过的位数量较大,在HDD的内周边,头在 每单位时间通过的位数量较小。因此,如图119所示,当LBA变得较大 时性能降低。

图120示出在采用HDD作为外部存储装置的情况下性能恢复的过程。 当传输数据速率变得低于下限时(步骤S1350),性能信息获取工具1112 将具有大LBA的数据移动到具有小LBA的空闲LBA空间(步骤S1351)。 因此,可以恢复HDD的性能降低。

如上所述,当传输数据速率变得低于下限时,可以通过传输各种命令 或者控制SSD以优化SSD,恢复SSD的性能。本实施例的优化功能并不 限于在本实施例中描述的优化功能的特定实例。

当超过上面使用的边界条件值时,可以向用户显示警告消息,而不是 执行上述性能优化。此外,可以在外部存储装置的设计阶段将上述边界条 件值(例如上限和下限)设置为固定值,或者可以在以后动态变更。例如, 如果即使通过执行上面的优化也未恢复性能,或者如果太频繁地进行优化, 则性能信息获取工具1112可以增加上限(减小下限)。将动态边界条件值 存储在如图121所示的主机1100的主存储器1202中。在图121中,在主 存储器1202中提供存储边界条件值的边界条件值存储区域1126。此外, 如图122所示,当边界条件改变时(步骤S1360),性能评估工具1110可 以将改变的边界条件值存储在SSD1010中(步骤S1361),以便防止在计 算机系统断电时值丢失。

当判定边界条件值时,可以根据存储在性能日志表1125中的过去性能 信息计算边界条件。例如,如果将第一次供电之后的预定时间段(例如,1 个月)内的平均性能信息存储在SSD1010中,并且例如使用该平均性能 信息的0.8倍作为边界条件,则当性能从紧接在运送之后的性能降低20% 时,对SSD1010执行上面的优化。

(第十二实施例)

在上面的实施例中,性能评估工具1110被配置为以便访问信息获取工 具(访问信息获取程序)1111总是监测有关软件1140的访问信息,并且 还将访问信息记录到访问日志表1120。另一方面,当主机1100的CPU性 能极低时,并且当访问信息获取工具1111导致的CPU负荷高时,可以降 低获取访问信息的频率以便提高OS1150和软件1140的计算处理效率。 因此,当性能评估工具1110的性能信息获取工具1112定期从OS1150获 取CPU利用率时,如果主机1100的CPU利用率是预定值或更高值,则 可以卸载访问信息获取工具1111以便不获取访问日志。

图123示出性能信息获取工具1112根据CPU利用率卸载和重新载入 访问信息获取工具1111的过程。在启动主机1100之后,启动性能评估工 具1110的性能信息获取工具1112,并且性能信息获取工具1112载入访问 信息获取工具1111(步骤S1570)。性能信息获取工具1112定期从OS1150 获取CPU利用率,并且判定CPU利用率是否是预定值J1(例如,80%) 或更高值(步骤S1571)。当CPU利用率是预定值J1或更高值时,性能 信息获取工具1112判定CPU负荷过高,并且卸载(或禁用)访问信息获 取工具1111以便优先处理其它应用(步骤S1572)。此后,性能信息获取 工具1112定期从OS1150获取CPU利用率,并且判定CPU利用率是否 是预定值J2(例如,60%)或更低值(步骤S573)。当CPU利用率是预 定值J2或更低值时,性能信息获取工具1112判定CPU负荷减少,并且 重新载入访问信息获取工具1111以便继续获取访问日志(步骤S1570)。

预定值J1和J2期望具有J1>(J2+余量)的关系,以便防止频繁切换 载入和卸载访问信息获取工具1111,并且防止切换本身成为主机1100的 负担。例如,将余量设置为大约20%。此外,期望使用于在步骤S1573中 获取CPU利用率的时间间隔长于用于在步骤S1571中获取CPU利用率的 时间间隔,以便防止当CPU负荷高时,监测本身成为CPU的负担。

图124示出性能信息获取工具1112以规则的时间间隔卸载和重新载入 访问信息获取工具1111的过程。在载入访问信息获取工具1111(步骤 S1580)之后,性能信息获取工具1112判定是否经过特定时间段(例如, 1小时)(步骤S1581)。当经过该特定时间段时,性能信息获取工具1112 卸载访问信息获取工具1111(步骤S1582)。此后,性能信息获取工具1112 判定是否经过特定时间段(例如,1小时)(步骤S1583)。当经过该特 定时间段时,性能信息获取工具1112重新载入访问信息获取工具1111并 且继续获取访问日志(步骤S1580)。通过这种方式,以规则的时间间隔 切换获取访问日志的时间段和不获取访问日志的时间段。

尽管描述了特定的实施例,但这些实施例仅通过举例的方式提供,并 且并非旨在限制本发明的范围。实际上,可以以各种其它形式体现在此描 述的新颖实施例;此外,在不偏离本发明的精神的情况下,可以在此处描 述的实施例的形式方面做出各种省略、替换和变更。所附权利要求及其等 同物旨在涵盖属于本发明的范围和精神内的此类形式或修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号