专利名称:闪存阵列存储器的限制性分区方法
技术领域:
本发明涉及一种对二级物理存储设备的限制性分区方法,尤其涉及一种对闪 存阵列存储器的限制性分区方法。
背景技术:
超级操作系统允许计算机用户从二级物理存储设备中装载一个或多个操作系 统到内存中去。实际上这一选择把用户从必须购买只适用一个操作系统的软件中解 放出来,而用户可以享受多个操作系统所带来的好处。而超级操作系统的基石是存储设备的虚拟化,二级物理存储设备被分割成若 干逻辑盘,每个逻辑盘均包含一个单独的操作系统。然而这些逻辑盘必须是稳定刚 性的以使操作系统不会同其它逻辑盘混淆或交换数据,除非是用户要求的数据交 换。若能提供一个允许的限制性分区和支持虚拟化存储的机制,对现有技术来说是 非常有益的。通常情况下, 一个磁盘驱动器接收不同来源(如BIOS或不同操作系统的特定 设备驱动程序)的地址访问请求。如果使用分区和存储虚拟化支持,那么无论访问 请求来源于何处,限制对所有的相关逻辑盘以外的二级存储地址的访问是非常重要 的。因此提供这样一个无论其地址的访问请求来源于何处,都支持限制性分区和支 持虚拟化存储的机制对现有技术来说是非常有益的。当一个计算机系统受病毒干扰,病毒通过系统自带功能和地址请求侵入整个系统。通过限制访问一个二级物理存储设备的其中一段,用户就可以把病毒限制在 设备的那个部份,而保护了其余的存储设备数据。因此提供一个能把病毒限制在设 备中一个已定义的区域里的二级物理存储设备也是有益的。同样的,当一些操作系统,如Windows操作系统系列,是从二级存储装载到 主内存,为了与它的特别需求相配,它重新配置并垄断了整个系统,包括二级物理 存储设备。如果另有一个操作系统在相同的物理设备里与它共存,那么必须限制这些操作系统对包含了别的操作系统的二级物理存储设备地址块的任何区域的访问。 因此对于现有技术来说,提供这样的一个可以限制访问一个预先设定的区域的二级 物理存储设备是有益的。当一个计算机系统被多个用户在不同的时间使用时,没有一个独立于操作系统外的方法可以保护一个用户的数据不被其他用户使用。例如,通常家长使用的商 务电脑,如果允许孩子在同一个系统里面玩游戏,他们的重要数据就无法得到不受 损的保证。对于现有技术来说,提供一个独立于任何操作系统外的,可以限制访问 一个预先设定的区域的二级存储设备是很有益的。发明内容本发明的目的在于提供一种闪存阵列存储器的限制性分区方法,能使闪存阵 列存储器在固件水平上虚拟化,闪存阵列存储器的控制器能根据最底层边界的实际 位置而自动调整所接收到的每个地址请求。本发明的技术方案为本发明揭示了一种闪存阵列存储器的限制性分区方法,包括(1) 将闪存阵列存储器分区成一个或多个逻辑盘;(2) 将该些逻辑盘中的地址边界设置成该闪存阵列存储器的地址边界;(3) 对该闪存阵列存储器接收到的地址请求中的目标地址进行调整校准;(4) 将调整校准后的地址与当前操作系统控制下的逻辑盘中的地址边界进行比较,以确保调整校准后的地址位于地址边界内。上述的闪存阵列存储器的限制性分区方法,其中,步骤(3)的地址请求的调 整校准是在闪存阵列存储器的固件上实施的。上述的闪存阵列存储器的限制性分区方法,其中,步骤(3)进一步包括从地址请求中提取目标地址;提取逻辑盘的最底层边界地址;在该最底层边界地址之上加上该目标地址,形成调整校准后的翻译地址。 上述的闪存阵列存储器的限制性分区方法,其中,步骤(4)进一步包括 提取逻辑盘的最底层边界地址和最上层边界地址;将接收到的物理地址与提取的最底层边界地址和最上层边界地址作比较,对于处于最底层边界地址和最上层边界地址之外的物理地址,限制访问闪存阵列存储 器的该物理地址。上述的闪存阵列存储器的限制性分区方法,其中,步骤(2)进一步包括发送至少一个接口命令到闪存阵列存储器,该接口命令把该些逻辑盘的地址 边界设置成该闪存阵列存储器的地址边界。上述的闪存阵列存储器的限制性分区方法,其中,该接口命令包括最底层边 界命令和最上层边界命令。上述的闪存阵列存储器的限制性分区方法,其中,该接口命令中嵌有永久位, 该永久位用以控制相关逻辑盘的地址边界是否是可更改的。上述的闪存阵列存储器的限制性分区方法,其中,该接口命令中嵌有密码位, 该密码位用以控制相关逻辑盘的地址边界是否是可更改的。上述的闪存阵列存储器的限制性分区方法,其中,该些逻辑盘的地址空间由 该闪存阵列存储器中多个不连续的地址段组成。本发明对比现有技术有如下的有益效果本发明通过用户在固件水平上确定 和更改闪存阵列存储器的地址边界使之成为位于该闪存阵列存储器中的一个逻辑 盘的地址边界。因为这样的边界定义是在物理设备的固件水平上实施的,每一个地 址访问请求,不论其来源,也不管是哪一个软件组件发出的请求,都是受固件规定 的界限限制的。本发明的逻辑盘能把其最底层的地址作为其零地址,尽管这个地址 可能不是真正位于物理设备的绝对零地址上。为了使固件水平的物理设备虚拟化, 物理设备的控制器根据最底层边界的实际位置自动调整所接收到的地址请求。相较 于现有技术,本发明能限制访问一个内部预先设定的区域,因而也能保护所有其他 数据免遭灾害性的损害。本发明能支持限制性分区以及存储虚拟化。无论地址请求 来源于何处,都能支持这些分区的存储虚拟化并独立于任何操作系统之外。本发明 可使闪存阵列存储器包含多于一个的引导块,每个引导块有一个分开的独立的设备 区,使得主引导块在受损的情况下也能正常工作。而且,本发明能将病毒限制于一 个预先设定的内部区域内。
图1是闪存阵列存储器的原理图。6图2是本发明的闪存阵列存储器的限制性分区方法的较佳实施例的流程图。图3是图2的限制性分区方法中的一个子流程图。图4是图2的限制性分区方法中的另一个子流程图。图5是本发明的接口命令的一个较佳实施例的结构图。图6A、 6B是本发明的接口命令的另一较佳实施例的结构图。图7是本发明的接口命令的又一较佳实施例的结构图。图8是本发明的接口命令的又一较佳实施例的结构图。
具体实施方式
下面结合附图和实施例对本发明作进一步的描述。闪存阵列存储器的结构请参见申请人的另一份申请文件中的描述(申请号为 200710171787.8,申请日为2007年12月5日,发明名称为"一种闪存阵列存储器")。 图1示出了闪存阵列存储器的结构。请参见图1,闪存阵列存储器1包括物理输入 /输出接口 10、闪存阵列控制器12、闪存阵列14。当然,阵列存储器还可以包括 容纳闪存阵列控制器12的印刷电路板(未图示)和外壳(未图示)。闪存阵列控 制器12内设置块映射单元120。闪存阵列14由闪存模块141、闪存模块142…… 闪存模块14N等多个闪存模块组成,可以是如图1所示的平行并列,也可以是其他 的排列方式。物理输入/输出接口 10与外界进行数据传输,这种数据传输是基于逻辑地址 进行的。外界包括存储设备、读写设备、总线结构等。物理输入/输出接口 10包括 USB接口、 SATA接口、 IDE接口、 eSATA接口、 ATA接口其中之一。例如当闪存阵 列存储器1同计算机连接时,接口 IO与主机的物理存储总线相互作用,并在运行 期把主机的输入/输出请求转换成逻辑的读写命令。接口 io也处理总线特定命令, 如那些发现和初始化设备的命令。 一旦收到存储总线的读写命令,它们将被装置的 接口 IO翻译。从物理输入/输出接口 10以逻辑地址接收到的数据,需要存储在闪存阵列14 的其中一个闪存模块中。由于接口 IO与内部的各个闪存模块是基于物理地址寻址 的,闪存阵列控制器12中的块映射单元120负责将该逻辑地址映射到物理地址。 数据基于映射后的物理地址存储在对应的闪存模块上。类似的,当存储在某一闪存模块的数据通过接口 10向外传输时,也需要通过块映射单元120将内部的物理地 址映射到外部的逻辑地址。块映射单元120的映射方式有两种。块映射单元120可以把并列的闪存模块 所组成的闪存阵列作为线性的可寻址块的独立阵列。例如,假设每个闪存模块的容 量为256个物理块,则第一个逻辑块包括逻辑地址0 255,第二个逻辑块包括逻 辑地址256 511,依此类推。但对于大批量线性数据转移来说,其总体性能受到 其中任何一个独立存储模块的吞吐量的限制。块映射单元120可同时平行存储闪存模块。例如,假设装置1使用4个平行 的闪存模块(即N=4),把第一个逻辑块放在第一个闪存模块中,第二个逻辑块 放在第二个闪存模块中,第三个逻辑块放在第三个闪存模块中,第四个逻辑块放在 第四个闪存模块中。这样存储器能支持的有效吞吐量是每个单独闪存模块的4倍。 假设N是闪存模块的数目,逻辑地址A对应的物理块位置是在闪存模块(AmodN) 中。图2示出了本发明的闪存阵列存储器的限制性分区方法。请参见图2,下面是 对该方法中各步骤的详细描述。步骤S10:将闪存阵列存储器l分区成一个或多个逻辑盘。其中每一个逻辑盘 是闪存阵列存储器1的一部分。步骤S12:将这些逻辑盘中的地址边界设置成闪存阵列存储器1的地址边界。这一步骤是将闪存阵列存储器1的物理地址定义为某一逻辑盘的地址边界。 具体的说,发送至少一个接口命令到闪存阵列存储器l,接口命令将逻辑盘的地址 边界设置成闪存阵列存储器1的地址边界。图5示出了接口命令的一般结构。如图 5所示,相关逻辑盘的地址边界200嵌入在接口命令52里并转移到闪存阵列存储 器1中。接口命令的约定包含在闪存阵列存储器1的闪存阵列控制器12上,因而 闪存阵列存储器1能存储相关逻辑盘的边界地址。为了识别该接口命令,这种识别 代码和操作将需要加入到闪存阵列存储器1的固件或控制器12上,加入这样代码 的方法是现有技术。在一个实施例中,接口命令52可以包括两个命令图6A所示的最底层边界 命令54和图6B所示的最上层边界命令56。相关逻辑盘的最底层边界地址202嵌 入在最底层边界命令54里并转移到闪存阵列存储器1中,将闪存阵列存储器1的一个物理地址设置成相关逻辑盘的最底层边界。相关逻辑盘的最上层边界地址204 嵌入在最上层边界命令56里并转移到闪存阵列存储器1中,将闪存阵列存储器1 的一个物理地址设置成相关逻辑盘的最上层边界。较佳的,可以在接口命令中嵌入永久位以控制相关逻辑盘的地址边界是否是 可更改的。如图5所示, 一个永久位212被嵌入在接口命令52中,并被转换到闪 存阵列存储器1里。永久位212控制了相关逻辑盘的永久性地址边界直到电脑系统 被硬复位。如果永久位212不被激活,那么相关逻辑盘的地址边界随后可以被任何 适当命令所改变,如果永久位212被激活,那么相关逻辑盘的地址边界是不可变的, 除非该电脑系统下次被硬复位。激活永久位212被闪存阵列存储器1接收后,闪存 阵列存储器1在旧的接口命令52完成之前停止实现新的接口命令52,除非相关的 电脑系统被硬复位。对于包含了最底层边界命令54和最上层边界命令56的接口命 令52,永久位214嵌入在最底层边界命令54中,永久位216也嵌入在最上层边界 命令56中。较佳的,可以在接口命令中嵌入密码位以控制相关逻辑盘的地址边界是否是 可更改的。如图5所示,密码位218被嵌入在接口命令52中并被转换到闪存阵列 存储器1里。在这一实施例中,闪存阵列存储器1在它的控制器12上包括了一个 数据域。在闪存阵列存储器1接收到密码位218后,把密码位218与存储在数据域 中的数据加以比较。除非在数据域里没有存储数据(这种情况下密码位218是通过 存储来保存在数据域中的),或者除非密码位218与存储在数据域的数据相吻合, 闪存阵列存储器1在接口命令52完成之前停止实现新的接口命令52。对于包含了 最底层边界命令54和最上层边界命令56的接口命令52,密码位220嵌入在最底 层边界命令54中,密码位222也嵌入在最上层边界命令56中。较佳的,可以结合永久位和密码位对相关逻辑盘的地址边界是否可更改进行 控制。如果密码位218与存储在数据域的数据不吻合,接口命令52的实施在它完 成之前被中断,访问相关逻辑盘被禁止,改变相关逻辑盘的地址边界也被禁止。如 果密码位218与存储在数据域的数据相吻合,或者如果在数据域中无数据保存,那 么永久位212将被检查。如果在数据域中没有数据保存,那么密码位218就被保存 在数据域中。如果永久位212没有被激活,当密码位218与存储在数据域中的数据 吻合或在数据域中没有数据时,相关逻辑盘的地址边界可能被任何随后的适当命令或该电脑系统的硬复位改变。如果永久位212被激活,当密码位218与数据域的数 据吻合或数据域中没有数据时,直到下次电脑系统被硬复位之前,相关逻辑盘的地 址边界被设置成永久不可改变的。接口命令较佳的可包括一些预留区域,例如图5所示的接口命令52的保留区 域224、图6A所示的最底层边界命令54的保留区域226以及图6B所示的最上层 边界命令56的保留区域228。相关逻辑盘的地址空间可以由闪存阵列存储器l中多个不连读的地址段组成。 可以由如下的几个方式来实现。请参见图7,这样的指定是在接口命令内提供的。接口命令52仍然包括一个 命令代码206、 一个永久位212、 一个保留区域224和一个密码位218。同时,接 口命令52也包括了一系列范围领域(范围数)230和一个在每个范围领域230里 的最底层和最上层地址232。范围数230提供物理地址的不同不连续地址段的数量, 在范围领域230中标明的是每个地址段里的最底层和最上层地址。请参见图8,指定多个不连续的地址段由嵌入在接口命令52中的多位234提 供。接口命令52仍然包括一个命令代码206、 一个永久位212、 一个保留区域224、 一个密码位218和一个地址边界领域200。此外,接口命令52也包括了一个多位 234,多位234的激活标志了相关逻辑盘由闪存阵列存储器1中的多个不连续的物 理地址段组成。当多位234被激活,闪存阵列存储器1中的控制器12就会明白 除了嵌入在当前接口命令52里的地址段外,相关逻辑盘还包括最近一次电脑系统 的硬复位后或者上次在不激活的多位234时成功地执行接口命令52后存储在控制 器12中的多个地址段。在执行一个包括多个不连续区域的接口命令52后,相关逻辑盘的逻辑大小等 于在相关逻辑盘里的所有不连续的地址段大小的总和,相关逻辑盘的逻辑地址空间 从逻辑地址0延伸到其逻辑地址终点。选定的物理地址段在逻辑地址中依起始地址 大小递增顺序出现,重叠的物理地址段是不允许的。步骤S14:对闪存阵列存储器接收到的地址请求中的目标地址进行调整校准, 这一步骤是在闪存阵列存储器的控制器12上实施的,具有固件水平。这一步骤的细化请参见图3,下面是对步骤S14的细化流程的描述。步骤S140:从地址请求中提取目标地址。步骤S142:提取当前逻辑盘的最底层边界地址,这个地址通常存储在闪存阵 列存储器的控制器12上。步骤S144:在最底层边界地址上加上目标地址,形成调整校准后的翻译地址。亦即,翻译地址=目标地址+最底层边界地址。通过把目标地址加入到相关 逻辑盘的最底层边界地址上,调整校准步骤把一个虚拟地址(基于最底层边界是位于闪存阵列存储器的虚拟o地址)上的目标地址翻译到一个真实地址(基于闪存阵 列存储器的真实绝对o物理地址)上去。这样的翻译使得闪存阵列存储器1不用牺牲自身的地址精确度,把二级存储 虚拟化,把相关逻辑盘的最底层和最上层之间的地址范围当做整个的二级存储范 围。闪存阵列存储器1的二级存储通过这个翻译和虚拟化,把容量有效縮小到(最 上层地址边界_最底层地址边界+1)。步骤S16:将调整校准后的地址与当前操作系统控制下的逻辑盘中的地址边界进行比较,以确保调整校准后的地址位于地址边界内。这一步骤的细化请参见图4,下面结合图4对步骤S16进行更详细的描述。步骤S160:提取当前逻辑盘的最底层边界地址和最上层边界地址。这两个边界地址通常是从闪存阵列存储器1的控制器12上获得。步骤S162:判断接收到的地址请求中的物理地址与提取到的最底层边界地址和最上层边界地址作比较,如果物理地址位于最底层边界地址和最上层边界地址之间,则进入步骤S164,否则转入步骤S166。步骤S164:对该地址请求不做限制,允许访问目标地址。 步骤S166:限制该地址请求对其中的物理地址的访问。本发明的闪存阵列存储器的限制性分区方法可以有如下方面的实际应用。 和闪存虚拟操作系统以及其他操作系统的关系本发明可应用于超级操作系统,这种操作系统在美国专利申请号60/080, 485 的美国专利申请被详细描述,以下简称闪存虚拟操作系统(Flash VOS)。除此之 外,本发明也能应用在典型的计算机系统中。逻辑盘都是由闪存阵列控制器12来设置的,每一个逻辑盘都是闪存阵列存储 器1的一个子集。而操作系统借助闪存阵列控制器12,只对闪存阵列控制器12所提供的那个逻辑盘进行数据存取。闪存阵列控制器12负责为操作系统设置起始/ 结束地址、块大小以及总容量等。对于闪存超级操作系统,在任何时候用户设置或改变默认的操作系统后,设 置的边界命令将自动被闪存超级操作系统激活。通过选择一个特定的操作系统作为 计算机的默认操作系统,用户事实上确定含有默认操作系统的逻辑盘的相关最底层 和最上层边界。在默认操作系统被设置或改变并在整个电脑系统硬复位后,闪存超级操作系统的BIOS ROM激活一个设置边界的命令。设置边界命令的相关部份把包 含默认操作系统的逻辑盘的最底层地址或把边界设置为可以在相关物理设备中被 访问的最底层地址。设置边界命令的相关部份把包含默认操作系统的逻辑盘的最上 层地址设置为可以访问相关物理设备的最上层地址或边界。默认操作系统(和每一 个操作系统)的最底层和最上层地址存储在虚拟目录表中的BIOS R0M水平上,这 样,正确的最底层和最上层边界的逻辑地址就能被访问并发送到闪存阵列存储器。永久位设置本发明的程序是嵌入在闪存阵列存储器的控制器固件中的。用户可以选择当 永久位是设置在每个接口命令上,在电脑系统的一个硬复位后即时被超级操作系统 (如闪存虚拟操作系统)激活。而且一旦永久位被设置,除了相关超级操作系统(硬 复位后),没有软件能通过这样的命令控制或改变最底层和/或最上层地址的设置。 这样,被最底层和最上层边界定义的可访问的逻辑盘仅能被超级操作系统(如闪存 虚拟操作系统)及相关硬复位功能修改。永久位的功能提供了在一个物理设备的固 定的逻辑盘分区中,让多个操作系统共存于一台电脑是很重要的。密码保护密码保护允许用户禁止访问闪存阵列存储器的特定区域,并禁止改变这个特 定区域的边界。不像永久位功能在电脑系统一个硬复位后就无效了,密码位的功能 即使在电脑有一个硬复位后还是有效的,这是因为密码位存储在数据域的控制器 中。多个不连续区域允许选择多个不连续的物理段的选项,可以支持操作系统访问一个单一磁盘 的多个不连续的区域,能允许如闪存虚拟系统一样的超级操作系统在一个特定的物 理磁盘上让一个特定的操作系统访问多个分区。和Partition Magic (磁盘分区)软件的比较(1) 本发明能在固件水平上让用户自行定义和改变二级存储物理设备(如闪 存阵列存储器)的地址边界,Partition Magic软件无法在固件水平上定义二级存 储物理设备的地址边界。(2) Partition Magic创建的分区不能限制其他操作系统对该分区的访问, 从而无法保证用户的数据不被其他用户破坏。而本发明能使对闪存阵列存储器的地 址访问限制在特定的一段存储空间内,禁止访问该特定存储空间以外的存储空间, 因而能保护所有其他数据免遭灾害性的损害。(3) 此外利用Partition Magic进行分区的二级物理存储设备仅包含一个主 引导分区,如果主引导分区受到损坏,通常整个物理设备就会因为无法被访问而变 得无用。而本发明可以使一个物理设备包含多个引导块,每个引导块是独立分开的 区域(逻辑盘)。这样不管主引导块是否受损,用户都能通过启动多个引导块中的 一个来使用设备。上述实施例是提供给本领域普通技术人员来实现或使用本发明的,本领域普 通技术人员可在不脱离本发明的发明思想的情况下,对上述实施例做出种种修改或 变化,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书提 到的创新性特征的最大范围。
权利要求
1. 一种闪存阵列存储器的限制性分区方法,包括(1)将闪存阵列存储器分区成一个或多个逻辑盘;(2)将该些逻辑盘中的地址边界设置成该闪存阵列存储器的地址边界;(3)对该闪存阵列存储器接收到的地址请求中的目标地址进行调整校准;(4)将调整校准后的地址与当前操作系统控制下的逻辑盘中的地址边界进行比较,以确保调整校准后的地址位于地址边界内。
2、 根据权利要求1所述的闪存阵列存储器的限制性分区方法,其特征在于, 步骤(3)的地址请求的调整校准是在闪存阵列存储器的固件上实施的。
3、 根据权利要求1所述的闪存阵列存储器的限制性分区方法,其特征在于, 步骤(3)进一步包括从地址请求中提取目标地址; 提取逻辑盘的最底层边界地址;在该最底层边界地址之上加上该目标地址,形成调整校准后的翻译地址。
4、 根据权利要求l所述的闪存阵列存储器的限制性分区方法,其特征在于, 步骤(4)进一步包括提取逻辑盘的最底层边界地址和最上层边界地址;将接收到的物理地址与提取的最底层边界地址和最上层边界地址作比较,对 于处于最底层边界地址和最上层边界地址之外的物理地址,限制访问闪存阵列存储 器的该物理地址。
5、 根据权利要求1所述的闪存阵列存储器的限制性分区方法,其特征在于, 步骤(2)进一步包括发送至少一个接口命令到闪存阵列存储器,该接口命令把该些逻辑盘的地址 边界设置成该闪存阵列存储器的地址边界。
6、 根据权利要求5所述的闪存阵列存储器的限制性分区方法,其特征在于, 该接口命令包括最底层边界命令和最上层边界命令。
7、 根据权利要求5所述的闪存阵列存储器的限制性分区方法,其特征在于, 该接口命令中嵌有永久位,该永久位用以控制相关逻辑盘的地址边界是否是可更改 的。
8、 根据权利要求5所述的闪存阵列存储器的限制性分区方法,其特征在于, 该接口命令中嵌有密码位,该密码位用以控制相关逻辑盘的地址边界是否是可更改 的。
9、 根据权利要求l所述的闪存阵列存储器的限制性分区方法,其特征在于, 该些逻辑盘的地址空间由该闪存阵列存储器中多个不连续的地址段组成。
全文摘要
本发明公开了一种闪存阵列存储器的限制性分区方法,能使闪存阵列存储器在固件水平上虚拟化,闪存阵列存储器的控制器能根据最底层边界的实际位置而自动调整所接收到的每个地址请求。其技术方案为方法包括将闪存阵列存储器分区成一个或多个逻辑盘;将该些逻辑盘中的地址边界设置成该闪存阵列存储器的地址边界;对该闪存阵列存储器接收到的地址请求中的目标地址进行调整校准;将调整校准后的地址与当前操作系统控制下的逻辑盘中的地址边界进行比较,以确保调整校准后的地址位于地址边界内。本发明应用于存储设备领域。
文档编号G06F12/14GK101276311SQ20081003713
公开日2008年10月1日 申请日期2008年5月8日 优先权日2008年5月8日
发明者林贻基, 英 胡, 舒曼·拉菲扎德 申请人:苏州壹世通科技有限公司