专利名称:提高对外部存储装置的访问速度的方法以及外部存储系统的制作方法
技术领域:
本发明涉及计算机对外部存储装置的访问。
背景技术:
以往使用硬盘装置作为计算机的外部存储装置,但是近年来开始使用了固态硬盘 (SSD =Solid State Drive,以下称为“SSD”)作为计算机的外部存储装置(例如,非专利文 献1) ο非专利文献1 日経"V - > 2009年7月13日号P38-58
发明内容
发明要解决的问题在SSD中,当想要对大量的小文件进行改写时,有时会产生花费较多处理时间的 瞬间假死(petit freeze)问题。这是因为SSD将快闪存储器(Flash Memory)用作存储元 件而引起的。即,在快闪存储器中,无法仅改写块(block)的一部分。在改写数据的情况下, SSD删除包含被改写的页面(page)的块的所有页面的数据,之后对该块进行所有页面的写 入,因此此时会产生瞬间假死。因此,以往采用一种在计算机的主存储器上设置SSD用的高 速缓冲存储器的技术。但是,在以往的技术中,由计算机的OS对主存储器用的高速缓冲存 储器的区域进行管理,因此对SSD的访问速度有可能伴随着该OS的管理而降低。因此,存 在如下的期望防止以往的访问速度伴随着OS对高速缓冲存储器的管理而降低的问题,而 想要提高对SSD访问时的主观感觉速度。另外,在SSD以外的其它存储装置中也同样地存 在想要提高访问的主观感觉速度这样的期望。例如,在硬盘装置中,在分割地写入一个文件 的情况下,存在由于磁头的移动等而花费较多写入时间的问题。本发明的目的在于解决上述问题的至少一部分,并提高计算机对存储装置访问时 的主观感觉速度。用于解决问题的方案本发明是为了解决上述问题的至少一部分而完成的,并能够实现为以下的方式或 应用例。[应用例1]一种用于提高对外部存储装置的访问速度的方法,具备以下工序(a)在计算机 启动时,在由上述计算机的操作系统所管理的物理存储器区域外,以连续的物理存储器区 域的方式将上述计算机的物理存储器的一部分设定为上述外部存储装置用的高速缓冲存 储器;(b)在检测到对上述外部存储装置写入数据的请求时,将该数据写入上述高速缓冲 存储器;以及(c)将写入上述高速缓冲存储器中的数据发送到上述外部存储装置以保存在 上述外部存储装置中。根据该应用例,外部存储装置用的高速缓冲存储器被设定为处于计算机的操作系 统的管理外的连续的物理存储器区域,因此能够防止访问速度伴随着操作系统的管理而降低,从而提高计算机对存储装置访问时的主观感觉速度。[应用例2] 根据应用例1所述的用于提高外部存储装置的访问速度的方法,上述工序(a)包 括如下的工序在上述物理存储器的容量大于上述操作系统所能够管理的最大容量的情 况下,将上述高速缓冲存储器优先设定于超出上述所能够管理的最大容量的物理存储器区 域。根据该应用例,能够将操作系统所管理的物理存储器区域的减少抑制到最小限 度,从而能够防止操作系统的速度降低,因此作为其结果,能够提高对外部存储装置访问时 的主观感觉速度。[应用例3]根据应用例2所述的用于提高外部存储装置的访问速度的方法,上述工序(a)包 括如下的工序在从上述物理存储器的容量中减去上述操作系统所能够管理的最大容量得 到的差小于上述高速缓冲存储器的容量的情况下,使上述操作系统所管理的物理存储器的 容量减少与上述差相当的量。根据该应用例,能够优先获取高速缓冲存储器,因此能够提高计算机对存储装置 访问时的主观感觉速度。[应用例4]一种外部存储系统,通过计算机进行使用,具备计算机,其具有物理存储器;夕卜 部存储装置;以及管理用装置,用于存取上述外部存储装置;其中,上述管理用装置执行以 下操作在上述计算机的操作系统所管理的物理存储器区域外,以连续的物理存储器区域 的方式将上述计算机的物理存储器的一部分设定为上述外部存储装置用的高速缓冲存储 器;在检测到对上述外部存储装置写入数据的请求时,将该数据写入上述高速缓冲存储器; 以及将写入上述高速缓冲存储器中的数据发送到上述外部存储装置以保存在上述外部存 储装置中。根据该应用例,外部存储装置用的高速缓冲存储器被设定为处于计算机的操作系 统的管理外的连续的物理存储器区域,因此能够防止访问速度伴随着操作系统的管理而降 低,从而提高计算机对存储装置访问时的主观感觉速度。本发明能够以各种方式实现,例如除了提高对外部存储装置的访问速度的方法以 夕卜,还能够以外部存储系统、用于提高对外部存储装置的访问速度的程序等各种方式实现。
图1是表示第一实施例所涉及的计算机的结构的说明图。图2是表示RAM的存储器映射的说明图。图3是表示SSD 120的结构的说明图。图4是示意性地表示对SSD的写入的说明图。图5是作为比较例表示将SSD用高速缓存112设定于OS所管理的存储器区域内 的情况下的存储器的映射的例的说明图。图6是作为其它比较例对OS请求将SSD用高速缓存112设定为连续的物理存储 器区域时的说明图。
图7是表示在本实施例中将SSD用高速缓存设定于OS的管理外的情况下的存储 器映射的说明图。图8是表示SSD驱动程序115的安装或其设定变更的过程的流程图。图9是表示重新启动之后的计算机的动作的说明图。图10是表示第二实施例中的存储器映射的说明图。图11是表示第二实施例的变形例中的存储器映射的说明图。图12是表示第二实施例及其变形例中的SSD驱动程序的安装或设定变更的过程 的流程图。附图标记说明 10 计算机;100 =CPU ;110 存储器;111 =OS 管理区域;112 高速缓存;120 =SSD ; 121 控制器;122 快闪存储器;123 块;124 页面;125 缓冲存储器;130 网络接口 ; 140 输出接口 ;150 输入接口 ;200 监视器;300 键盘;310 鼠标。
具体实施例方式图1是表示第一实施例所涉及的计算机的结构的说明图。计算机10具备CPU 100、 RAM 110、SSD(Solid State Drive 固态硬盘)120、网络接口 130、输出接口 140以及输入接 口 150。输出接口 140上连接有监视器200,输入接口 150上连接有键盘300和鼠标310。SSD 120是外部存储装置的一种,保存OS、设备驱动程序、应用程序、数据。CPU 100将OS、设备驱动程序、应用程序从SSD 120读取后在RAM 110中展开并执行。在图1所 示的例中,作为SSD用的设备驱动程序的SSD驱动程序115在RAM 110上被展开。图2是表示RAM的存储器映射的说明图。在本实施例中,RAM 110的容量是3GB, 其中的2. 5GB处于OS管理下。将该区域称为OS管理区域111。OS管理区域111内存储有 OS、应用程序、设备驱动程序、数据,并从OS或应用程序能够直接访问数据。剩下的0. 5GB 成为SSD用高速缓存112。SSD用高速缓存112处于OS的管理区域外,无法从OS或应用程 序直接进行访问,但是能够由SSD用设备驱动程序115对其进行访问。此外,OS管理区域 111和SSD用高速缓存112的大小能够根据设定而变更。该设定在后面叙述。图3是表示SSD 120的结构的说明图。如图3的(A)所示,SSD120具备控制器121 以及快闪存储器122。控制器121具备缓冲存储器125。在本实施例中,快闪存储器122有 八个,该八个快闪存储器122并联地进行连接。此外,快闪存储器122的个数由快闪存储器 122的容量和SSD 120的容量决定。另外,SSD 120除了这些快闪存储器122以外还可以具 备奇偶校验(parity)用的快闪存储器(未图示)。图3的(B)是表示快闪存储器的结构的说明图。快闪存储器122具备多个块123。 在本实施例中,使用256kb的容量作为块123的大小。此外,块的大小也可以是其它大小、 例如512kb或1024kb。一般来说,优选的是块的大小为2n比特(η是自然数)。在本实施 例中,并联地连接有八个快闪存储器122,为了对各快闪存储器122的同一地址同时进行访 问,在SSD 120中,将256kb作为1块。块123为S SD的数据删除单位。在此,将从快闪存 储器122的浮动栅极(未图示)中去除(引务抜< )电子称为数据的删除(数据0 — 1)。图3的(C)是表示块的结构的说明图。块123具备多个页面124。在本实施例中, 使用4kb的容量作为页面124的大小。此外,页面的大小也可以是其它大小、例如8kb。一般来说,优选的是页面的大小为2m比特(m是自然数)。在本实施例中,1个块具备64个页面。此外,1个块的页面数是根据块123和页面124的大小而变化的。页面124为数据的写 入单位。在此,将对快闪存储器122的浮动栅极(未图示)注入电子称为数据的写入(数 据 1 — 0)。在SSD 120中,无法将例如某个块123的某个页面124的数据、例如数据 “10101010”直接改写为数据“01010101”。即,暂时删除数据而设为数据“11111111”,之后 写入数据“01010101”。如上所述,由于数据的删除是以块为单位的,因此对于同一个块123 内的除了要改写的页面124以外的页面124的数据,SSD 120暂时将数据保存(退避)至Ij 控制器121的缓冲存储器125内,在删除了该块123的数据之后写回块123。例如,在本实 施例中,即使仅仅改写1比特,也要进行64页的读取和删除、64页的写入。图4的(A)是示意性地表示在主存储器(RAM 110)内未设置SSD高速缓存的情况 下的对SSD的写入动作的说明图。如图4的(A)所示,在由OS或应用程序进行文件的写入 动作的情况下,以文件为单位来进行。即,SSD 120对于文件1的写入进行块的删除、写入; 对于文件2的写入也进行块的删除、写入。因而,在文件很多的情况下,文件的删除、写入次 数增加,因此文件的改写会花费较多时间。图4的(B)表示在主存储器上设置SSD用高速缓存112的情况下的写入动作。在 此,首先对SSD用高速缓存112写入文件1、文件2。图4的(C)是表示从SSD用高速缓存112对SSD 120进行的写入的说明图。在此, 设文件1、文件2被写入同一个块123。SSD120的控制器121 (图3)将被写入文件1、文件2 的块123的数据保存到SSD 120内的缓冲存储器125内。接着,控制器121将SSD用高速 缓存112的文件1、文件2写入该缓冲器125。此时,控制器121也可以先将文件1、文件2 写入缓冲存储器125,之后将没有被文件1、文件2改写的页面124的数据写入缓冲存储器 125。然后,控制器121在删除块123的数据之后,将缓冲存储器125的内容写入块123。图5是表示作为比较例将SSD用高速缓存112设定于OS所管理的存储器区域内 的情况下的存储器的映射的例的说明图。在图5的(A)所示的例中,SSD用高速缓存112是 连续地获取到的。在图5的(B)、(C)所示的例中,SSD用高速缓存112不是连续地获取到 的。在此,在要获取SSD用高速缓存112的情况下,OS并不固定为图5的(A) (C)所示 的某个状态,而是根据应用程序的使用状态在图5的(A) (C)所示的状态中动态地发生 变化。即,OS对存储器110的使用进行管理,使其在图5的(A) (C)的状态间相互移动, 从而能够有效利用物理存储器。但是,对于向SSD120的写入来说,OS对存储器的管理并非 一定成为最合适的状态、即不一定会成为SSD用高速缓存112连续的状态。例如,当如图5 的(B)、(C)所示那样SSD用高速缓存112被分段(断片{匕)时,在对SSD 120的写入中, 无法进行有效的高速缓存控制。图6是表示作为其它比较例对OS请求将SSD用高速缓存112设定为连续的物理 存储器区域时的说明图。图6所示的状态如下0S虽然想要将SSD用高速缓存112获取为 连续的物理存储器区域,但是由于存储器110中不存在连续的空闲存储器,因此无法获取 连续的SSD用高速缓存112。因而,在这种情况下,其结果变为完全无法设定SSD内的控制 器用高速缓冲存储器。图7是表示在本实施例中将SSD用高速缓存设定于OS的管理外的情况下的存储器映射的说明图。在本例中,对于RAM 110的3GB容量,分配2. 5GB的容量作为OS所管理 的区域,分配0.5GB的容量作为SSD用高速缓存112。并且,SSD用高速缓冲112被设置于 OS的管理外,从而被分配为连续的物理存储器区域。图8是表示SSD驱动程序115的安装或其设定变更的过程的流程图。在步骤S800 中,SSD驱动程序115的安装程序(以下仅称为“安装程序”)例如从OS获取计算机10所 安装的物理存储器(RAM 110)的容量。具体地说,例如能够从BIOS(未图示)获取物理存 储器的容量。在步骤S810中,安装程序获取SSD 120用的高速缓存112的容量。例如由用户在 监视器200所显示的接口画面上输入该容量的值。在步骤S820中,安装程序 对OS所使用的存储器的容量进行设定。具体地说,通过 从在步骤S800中获取到的物理存储器的容量中减去在步骤S810中获取到的SSD用高速缓 存112的容量,来获取OS所使用的存储器的容量。在步骤S830中,安装程序对OS的存储器使用量和SSD用高速缓存的使用量进行 设定。例如,在OS是Windows (Windows是Microsoft的注册商标)的情况下,安装程序能 够通过在OS用的Boot, ini文件上例如记载/MAXMEM = 2560这样的行(/MAXMEM = nn开 关)来将OS的使用区域限制为2. 5GB。此外,在步骤S840中重新启动之后,该设定变为有 效。/MAXMEM = Im开关是用于在启动时设定OS所能够使用的存储器的容量的开关。在此, nn是以兆字节(MB)为单位来表示容量大小的数值。此外,/MAXMEM = rm开关是被设置为 用于如下目的的开关当初根据软件而发生过在安装有较大容量的存储器时产生问题的例 子,因此为了防止产生该问题,对OS所能够使用的存储器的容量进行限制。在本实施例中, 使用了 /MAXMEM = nn开关,但是也可以使用/BURNMEMORY = nn开关。该开关能够以MB为 单位指定Windows所无法使用的存储器容量。然后,安装程序根据OS的存储器使用量、SSD 用高速缓存112的容量来设定SSD用高速缓存112的物理地址。在步骤S840中,安装程序在监视器200上显示促使重新启动的消息,使用户执行
重启ο图9是表示重新启动后的计算机的动作的说明图。在步骤S900中,读入启动文件。 启动文件内包含有boot, ini文件。CPU100读入boot, ini文件的/MAXMEM = nn开关的值。 在步骤S910中,CPU使用boot, ini文件的/MAXMEM = nn开关所记载的值来设定OS所管 理的存储器区域。在步骤S910中,OS从SSD 120将SSD驱动程序115加载到RAM 110。此 夕卜,SSD驱动程序115被加载到OS管理区域111。SSD驱动程序115能够访问RAM 110的 除OS管理区域111以外的SSD用高速缓存112。当在步骤S930中,SSD驱动程序115检测到对SSD 120写入数据的写入请求时, 在步骤S940中将数据保存到SSD用高速缓存112中。此外,从用户角度来讲的对SSD 120 访问时的主观感觉速度是根据对SSD用高速缓存112的数据保存而决定的。因而,能够使 用户感到数据被高速地保存到SSD 120。在步骤S950中,在高速缓存112所保存的数据为某个固定值以上的大小时,SSD驱 动程序115将数据从高速缓存112传输到SSD 120,并将数据写入SSD 120 (步骤S 960)。 此外,该固定值可以与SSD 120的块123的大小相同。这样,即使在对位于同一个块内的两 个以上的文件进行改写的情况下,也只要进行一次块的删除即可,从而与对于每个文件都改写SSD的数据的情况相比不在改写上花费时间。其结果,能够抑制产生瞬间假死。此外, 能够任意地设定从SSD用高速缓存112向SSD 120传输数据的定时。以上,根据本实施例,将SSD用高速缓存112设置在处于OS的管理外的连续的物 理存储器区域,在将数据写入SSD 120的情况下,SSD用高速缓存112暂时保存数据,之后 将数据一并传输到SSD 120。其结果,能够提高对SSD 120进行写入时的主观感觉速度,并 抑制产生瞬间假死。图10是表示第二实施例中的存储器映射的说明图。在上述第一实施例中,示出了 物理存储器的安装量为3GB的情况,但是在第二实施例中,示出物理存储器(RAM 110)的安 装量为4GB的情况。该物理存储器的量4GB大于作为OS存储器上限的3GB。在此,"OS存 储器上限”是指OS所能够用作保存OS、应用程序、设备驱动程序、数据的区域的区域(OS管 理区域111)的最大值,是OS所能够管理的最大容量。该值使计算机10所安装的RAMllO 不依赖于容量,例如,在32位版的Windows中,3GB为存储器上限。此外,如果OS或版本不 同,则该存储器上限的值不同。例如,在64位版的Windows中,根据版本的不同,存储器上 限采用8GB 128GB中的任一个。在第二实施例中,将从物理存储器4GB减去OS的存储器 上限3GB得到的IGB用作SSD用高速缓存112。此外,SSD用高速缓存112存在于OS的管 理外。图11是表示第二实施例的变形例中的存储器映射的说明图。在如图11的㈧所 示的例中,示出了从作为RAM 110的总容量的4GB减去OS的存储器上限3GB得到的IGB中 的一部分被用作SSD用高速缓存112的例子。在这样超过OS的存储器上限而存在RAM 110 的情况下,也可以是如下的结构仅该超过部分的一部分是SSD用高速缓存112而并非所有 的超过部分都是SSD用高速缓存112。此外,也可以不特别使用RAM 110中的、OS管理区域 111、SSD用高速缓存112都不使用的区域。另外,在图11的(B)所示的例中,示出了 OS管 理区域111的大小小于OS的存储器上限3GB且SSD用高速缓存112的大小大于从RAM 110 的4GB减去OS的存储器上限3GB得到的IGB的情况。这样,也可以是如下的结构0S管理 区域111小于OS的存储器上限,与此相应地SSD用高速缓存112较大。图12是表示第二实施例及其变形例中的SSD驱动程序的安装或设定变更的过程 的流程图,是相当于第一实施例的图8的图。此外,第二实施例的装置的整体结构(图1) 和图9的处理与第一实施例相同。在步骤SllOO中,安装程序例如从OS获取计算机10所 安装的物理存储器(RAM 110)的容量。在步骤SlllO中,获取OS的存储器上限W。能够从 OS获取该上限W的值。在步骤Sl 120中,安装程序获取SSD 120用的高速缓存112的容量。 例如由用户在监视器200所显示的接口画面上输入该容量的值。在步骤S1130中,安装程序判断从物理存储器的容量V减去SSD用高速缓存的容 量Y得到的大小是大于还是小于OS的存储器上限W的大小。在大于该上限W的情况下,在 步骤S1140中将OS管理区域的大小Z设为OS的存储器上限W。另一方面,在小于该上限W 的情况下,在步骤Sl 150中将OS管理区域的大小Z设为从物理存储器的容量V减去SSD用 高速缓存的容量Y得到的大小。此外,在从物理存储器的容量V减去SSD用高速缓存的容 量Y得到的大小与OS的存储器上限W相等的情况下,OS管理区域的大小Z =物理存储器 的容量V-SSD用高速缓存的容量Y = OS的存储器上限W,因此步骤S1140、S1150中的任一 个路径都是相同的。
在步骤S1160中,安装程序将OS的存储器使用量和SSD用高速缓存的使用量设定 于启动文件。此外,该动作与步骤S830中的动作相同。在步骤S1170中,安装程序在监视 器200上显示促使重新启动的消息,使用户执行重启。这样,根据第二实施例,能够根据物理存储器的容量、从用户获取到的高速缓存的 容量以及OS的存储器上限,来对RAMllO的使用状态进行切换。特别是在安装有超过OS的 存储器上限W的物理存储器时,将该超过的部分优先分配给SSD用高速缓存112。由此,不 缩小OS管理区域111的大小就能够获取SSD用高速缓存112。在以上的说明中,以使用SSD 120作为外部存储装置的情况为例进行了说明,但 是外部存储装置也可以是其它装置、例如硬盘装置、CD、DVD。在这些其它外部存储装置的情 况下,也能够通过将高速缓存设置于OS的管理外而不受OS的影响地传输数据,能够实现处 理的主观感觉速度的提高。在本实施例中,使用了设备驱动程序作为用于利用SSD120的高速缓冲存储器的 管理用软件,但是也能够代之使用实用软件。以上根据几个实施例说明了本发明的实施方式,但是上述发明的实施方式是为了 容易理解本发明的,而并非对本发明进行了限定。本发明能够在不脱离其宗旨和权利要求 书的范围内进行变更、改进,并且,本发明中包含其等价物是理所当然的。
9
权利要求
一种用于提高对外部存储装置的访问速度的方法,具备以下工序(a)在计算机启动时,在由上述计算机的操作系统所管理的物理存储器区域外,以连续的物理存储器区域的方式将上述计算机的物理存储器的一部分设定为上述外部存储装置用的高速缓冲存储器;(b)在检测到对上述外部存储装置写入数据的请求时,将该数据写入上述高速缓冲存储器;以及(c)将写入上述高速缓冲存储器中的数据发送到上述外部存储装置以保存在上述外部存储装置中。
2.根据权利要求1所述的用于提高对外部存储装置的访问速度的方法,其特征在于,上述工序(a)包括如下的工序在上述物理存储器的容量大于上述操作系统所能够管理的最大容量的情况下,将上述 高速缓冲存储器优先设定于超出上述所能够管理的最大容量的物理存储器区域。
3.根据权利要求2所述的提高对外部存储装置的访问速度的方法,其特征在于,上述工序(a)包括如下的工序在从上述物理存储器的容量中减去上述操作系统所能够管理的最大容量得到的差小 于上述高速缓冲存储器的容量的情况下,使上述操作系统所管理的物理存储器的容量减少 与上述差相当的量。
4.一种外部存储系统,通过计算机进行使用,具备计算机,其具有物理存储器;外部存储装置;以及管理用装置,用于存取上述外部存储装置;其中,上述管理用装置执行以下操作在上述计算机的操作系统所管理的物理存储器区域外,以连续的物理存储器区域的方 式将上述计算机的物理存储器的一部分设定为上述外部存储装置用的高速缓冲存储器;在检测到对上述外部存储装置写入数据的请求时,将该数据写入上述高速缓冲存储 器;以及将写入上述高速缓冲存储器中的数据发送到上述外部存储装置以保存在上述外部存 储装置中。
5.一种外部存储装置的管理用装置,其特征在于,执行以下操作(a)在由计算机的操作系统所管理的物理存储器区域外,以连续的物理存储器区域的 方式将上述计算机的物理存储器的一部分设定为外部存储装置用的高速缓冲存储器;(b)在检测到对上述外部存储装置写入数据的请求时,将该数据写入上述高速缓冲存 储器;以及(c)将写入上述高速缓冲存储器中的数据发送到上述外部存储装置以保存在上述外部 存储装置中。
全文摘要
本发明提供一种用于提高对外部存储装置的访问速度的方法以及外部存储系统。该方法具备以下工序(a)在计算机(10)启动时,将上述计算机所具有的物理存储器(110)的一部分设定为上述外部存储装置用的高速缓冲存储器(112),在上述计算机的操作系统所管理的区域(111)外将上述外部存储装置用的高速缓冲存储器(112)设定为连续的区域;(b)在检测到请求对上述外部存储装置(120)写入数据的写入请求的情况下,将该数据写入上述高速缓冲存储器;以及(c)上述驱动程序将上述高速缓冲存储器的数据发送到上述外部存储装置并进行保存。
文档编号G06F3/06GK101968721SQ20101024122
公开日2011年2月9日 申请日期2010年7月27日 优先权日2009年7月27日
发明者菅原识介 申请人:巴比禄股份有限公司