CN102043730A - 储存单元及存储系统 - Google Patents
储存单元及存储系统 Download PDFInfo
- Publication number
- CN102043730A CN102043730A CN2010105013353A CN201010501335A CN102043730A CN 102043730 A CN102043730 A CN 102043730A CN 2010105013353 A CN2010105013353 A CN 2010105013353A CN 201010501335 A CN201010501335 A CN 201010501335A CN 102043730 A CN102043730 A CN 102043730A
- Authority
- CN
- China
- Prior art keywords
- storage device
- data
- random access
- function
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/38—Universal adapter
- G06F2213/3854—Control is performed at the peripheral side
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了储存单元及存储系统。储存单元包括:随机存取存储装置和储存装置,分别使用以字和扇区为单位的地址被访问;储存控制器,根据经由总线指定的地址,控制对随机存取存储装置以及储存装置的访问。储存控制器包括:第一和第二接口功能,分别对利用经由总线提供的扇区地址以及字地址指定的存储在储存装置和随机存取存储器上的数据进行访问;响应于第一接口功能的访问,使用随机存取存储装置作为第一磁盘高速缓存,并且确定要保存在随机存取存储装置中数据的功能;以及通过反复进行寄存器访问并经由总线通过总线主控功能,传送利用扇区地址指定的数据作为连续的字大小的数据的功能。
Description
相关申请的交叉参考
本申请包含涉及于2009年10月14日向日本专利局提交的日本优先权专利申请JP 2009-237503中公开的主题,其全部内容结合于此作为参考。
技术领域
本发明涉及一种具有非易失性存储装置和随机存取存储器的储存单元(storage unit)以及一种存储系统(memory system)。
背景技术
在现有技术中,储存器(storage)和存储器(memory)之间存在非常大的速度差。随着存储器的速度变得越来越高,该差值越来越大,给整个系统的性能改善带来了问题。
因此,为了减小该速度差,存储器被用作磁盘高速缓存(diskcache)。
可将最近访问过的扇区数据留在存储器中,在作出下一个访问请求时,如果信息存在于高速缓存中,则可从存储器中读入该信息而无需访问储存器。
这在多次读出同一扇区数据以及写入多个零碎数据(smalldata)时表现出很好的效果。
实际上,以HDD和SDD为代表的储存单元包含随机存取存储装置(RAMD),并将其用作第一磁盘高速缓存。
此外,在现有技术的系统中,将主存储器(main memory)的一部分用作第二磁盘高速缓存。第二磁盘高速缓存与第一磁盘高速缓存不同,其是由CPU直接管理的磁盘高速缓存。
应当注意的是,存在于第二磁盘高速缓存中的数据是经由第一高速缓存从储存单元读入的数据。
在JP-A-1994-161897和JP-A-2008-026970中公开了有效使用高速缓存存储器(cache memory)的技术。
JP-A-1994-161897中公开的磁盘高速缓存单元在主存储装置(主存储器)上具有针对控制数据的软高速缓存区。
此外,磁盘控制器具有数据确定装置(data determining means),并通过如下方式来改善高速缓存的利用率,即,在高速缓存存储器上不保留已被确定为控制数据的数据。
这项技术可防止第一磁盘高速缓存和第二磁盘高速缓存中的数据重复。
JP-A-2008-026970中公开的储存单元具有来自主机的用来为高速缓存的定位(fiXation)指定文件区域的区域通知命令(regionnotification command),并且在读取命令的执行过程中传输该区域通知命令。然后,储存单元将区域通知命令被再次传输之前所传送的数据定位到高速缓存存储器上。
这项技术能够容易地进行文件的特定区域在高速缓存存储器中的定位。
发明内容
然而,RAMD上的数据是基于产生的访问请求而在储存器内管理的,来自主机的直接操作就不可能了。
此外,存在于第二磁盘高速缓存中的数据是经由第一高速缓存从储存单元读入的数据。
即,经常出现两个磁盘高速缓存中存在相同数据的情形。
这样,独立地控制两个磁盘高速缓存。
因此,加载在第二磁盘高速缓存上的数据也同时存在于第一磁盘高速缓存中,降低了存储器的使用效率,因此,还降低了性能改善效果。
另一方面,第二磁盘高速缓存耗用了主存储器,从而工作存储器变小。
在工作存储器不足的情况下,系统的操作系统(OS)通过交换操作(swapping operation)产生储存器访问,这使得系统操作性能降低。
此外,在从储存器启动的系统中,在CPU模块的初始化之后即开始对储存器的访问,许多数据访问都集中在储存器上。此外,存在如下缺点,即,对于仅在启动(start-up)时要访问的数据,无法获得磁盘高速缓存的效果。
在JP-A-1994-161897中公开的技术中,指定了不保留的数据,可能无法在高速缓存存储器中提前预读数据或无法通过在启动时的预读来实现加速。
在这项技术中,控制器没有可访问高速缓存存储器的存储接口(memory interface)。因此,在访问数据、代码之前的数据传送是必不可少的并且成为系统开销(overhead)。
在JP-A-2008-026970中公开的技术中,在总线主控传送的情况下,CPU无法把握数据传送的进度,并且难以发送区域通知命令。
此外,在这项技术中,发送用于在数据传送期间将要定位的数据指定到高速缓存存储器的区域通知命令。因此,在由于先前处理处于执行中而不可能开始数据传送的情况下,不可能在高速缓存上准备下一个数据或通过预读实现加速。
此外,控制器没有可访问高速缓存存储器的存储接口。因此,在访问数据、代码之前数据传送是必不可少的并且成为系统开销。
因此,期望提供一种储存单元以及一种存储系统,能够在不必将数据、代码传送到主存储器上的情况下缩短系统的启动时间以及启动代码的时间,并且实现整个系统处理的高速化。
根据本发明的一个实施方式的储存单元包括:使用以字为单位的地址进行访问的随机存取存储装置;使用以扇区为单位的地址进行访问的储存装置;以及根据经由总线指定的地址,控制对随机存取存储装置以及储存装置的访问的储存控制器;其中,储存控制器包括:对存储在所述储存装置上的利用经由所述总线提供的所述扇区地址指定的数据进行访问的第一接口功能;利用经由总线指定的字地址,对随机存取存储装置上的数据进行直接访问的第二接口功能;响应于第一接口功能的访问,使用随机存取存储装置作为第一磁盘高速缓存,并且确定要保存在随机存取存储装置中数据的功能;通过反复进行寄存器访问来传送利用扇区地址指定的数据的功能,以及经由总线通过总线主控功能来传送利用扇区地址指定的数据作为连续字大小的数据的功能。
根据本发明的另一实施方式的存储系统包括:主机、主存模块、由主机访问的储存单元以及连接主机、主存模块以及储存单元的系统总线,其中储存单元包括:使用以字为单位的地址进行访问的随机存取存储装置;使用以扇区为单位的地址进行访问的储存装置;以及根据经由系统总线指定的地址,控制对随机存取存储装置以及储存装置的访问的储存控制器;其中,储存控制器包括:根据经由系统总线来自主机的指令对存储在所述存储装置上的利用所述扇区地址指定的数据进行访问的第一接口功能;通过所述主机,利用经由系统总线指定的字地址直接访问随机存取存储装置上的数据的第二接口功能;响应于第一接口功能的访问,使用随机存取存储装置作为第一磁盘高速缓存,并且确定要保存在随机存取存储装置中数据的功能;通过反复进行寄存器访问来传送利用扇区地址指定的数据的功能;以及经由系统总线通过总线主控功能在主存储模块和其自身之间来传送利用扇区地址指定的数据作为连续字大小的数据的功能。
根据本发明的实施方式,不需要被传送到主存储器上的数据、代码,能够缩短系统的启动时间和启动代码的时间,并且能够实现整个系统处理的加速。
附图说明
图1示出了根据本发明的第一实施方式的包括储存单元的存储系统的配置实例。
图2是作为比较实例的存储系统的框图。
图3示出了比较实例中的STGC的基本内部配置。
图4示出了根据本发明的实施方式的STGC的基本内部配置。
图5示出了本实施方式中可从CPU直接访问磁盘高速缓存的STGC的第一配置实例。
图6示出了本实施方式中可从CPU直接访问磁盘高速缓存的STGC的第二配置实例。
图7示出了从本实施方式以及比较实例的系统总线看到的存储分配图(memory map)。
图8示出了控制根据本实施方式的STGC的控制寄存器CTRL_REG的配置实例。
图9示出了控制寄存器中的错误寄存器(error register)的细节。
图10示出了控制寄存器中的状态寄存器的细节。
图11示出了控制STGC的总线主控寄存器(bus master register)BM_REG的配置实例。
图12示出了总线主控寄存器中的总线主控命令寄存器的细节。
图13示出了总线主控寄存器中的总线主控状态寄存器的细节。
图14示出了PRD表的细节。
图15示出了在从系统总线控制本实施方式的STGC(储存控制器)的情况下当执行作为序列实例的读取(读取(0001000h,04h))命令时的流程图。
图16示出了当响应于图15中的流程图而执行读取命令时各寄存器中设定的值的实例。
图17示出了在从系统总线控制本实施方式的STGC(储存控制器)的情况下当执行作为序列的写入(写入(00002000h,04h))命令时的流程图。
图18示出了当响应于图17中的流程图而执行写入命令时各寄存器中设定的值的实例。
图19示出了在从系统总线控制本实施方式的STGC(储存控制器)的情况下当执行作为序列的实例的设定高速缓存命令(设定高速缓存(00004000h,10h))时的流程图。
图20示出了当响应于图19中的流程图而执行设定高速缓存命令(set cache command)时各寄存器中设定的值的实例。
图21示出了在从系统总线控制本实施方式的STGC(储存控制器)的情况下当执行作为序列实例的释放高速缓存(释放高速缓存(00004000h,10h))命令时的流程图。
图22示出了当响应于图21中的流程图而执行释放高速缓存命令时各寄存器中设定的值的实例。
图23是用于说明实现如图15~图22中的功能所需要的磁盘高速缓存区的管理信息的实例的示图。
图24示出了描述读取命令的STGC内部操作的流程图。
图25示出了描述写入命令的STGC内部操作的流程图。
图26示出了描述高速缓存退出处理(cache out processing)的STGC内部操作的流程图。
图27示出了描述设定高速缓存命令(set cache command)的STGC内部操作的流程图。
图28示出了描述释放高速缓存命令(release cache command)的STGC内部操作的流程图。
图29是通过比较从将保存在储存器上的代码读入到存储器上直到从CPU执行的时间来描述和示出本发明的实施方式的效果的示图。
图30示出了描述当释放储存模块的复位以进行启动时在STGC中执行的操作的流程图。
图31示出了自动加载本实施方式的高速缓存管理信息的初始值的功能的效果(启动时间的比较)。
图32示出了根据本发明的第二实施方式的包括储存单元的存储系统的配置实例。
具体实施方式
在下文中,将参照附图说明本发明的实施方式。
将以如下顺序进行说明:
1.第一实施方式
2.第二实施方式
<1.第一实施方式>
图1示出了根据本发明的第一实施方式的包括储存单元的存储系统的配置实例。
根据第一实施方式的存储系统10具有储存模块20、作为主机的CPU模块(CPU)30、主存储模块(MMM)40、系统总线50以及IO模块60、70。
通过系统总线50连接储存模块20、CPU 30、MMM 40以及IO模块60、70。
根据第一实施方式的储存模块(STGM)20包括储存控制器(STGC)21、随机存取存储装置(RAMD)22以及储存装置(STGD)23。
使用以字为单位的地址访问RAMD 22,而使用以扇区为单位的地址访问STGD 23。
STGC 21具有可从CPU 30访问的连接至总线的两个接口功能。
STGC 21具有作为第一接口功能的储存接口(STGC-IF)24和作为第二接口功能的存储接口(MEM-IF)25。
此外,STGM 20通过储存接口(STGC-IF)24和存储接口(MEM-IF)25连接至系统总线50。
STGC-IF 24提供了一个用来根据来自CPU 30的指令访问储存在STGD 23上的用扇区地址指定的数据的接口。
这里,用扇区地址指定的数据通过反复进行STGC 21的寄存器访问来传送,另外,通过总线主控功能在MMM 40和其自身之间作为连续的字大小(word-sized)的数据高速度地被传送。
响应于来自STGC-IF 24的访问,STGC 21使用RAMD 22作为第一磁盘高速缓存,并且STGC 21确定要保存在RAMD 22上的数据。
MEM-IF 25提供一个由CPU 30利用字地址直接访问RAMD 22上的数据的接口。
本实施方式的STGC 21具有指定保留在RAMD 22上的数据的高速缓存指定功能以及释放由CPU 30指定为第二磁盘高速缓存的高速缓存释放功能。
经由作为第一接口的STGC-IP 24向STGC 21指示高速缓存指定功能。
该指示包含关于STGD 23的地址和数据大小的信息。
STGC 21执行以下处理:从RAMD 22上未使用的区域中确保具有指定数据大小的区域,并将具有从STGD 23指定的地址的数据写入已预先确保的区域。
经由作为第一接口的STGC-IF 24向STGC 21指示高速缓存释放功能。
该指示包含关于STGD 23的地址的信息,并且STGC 21对于RAMD 22上的指定数据区域,根据STGC 21的判断确定在释放指令之后是否将数据保留在RAMD 22上。
在本实施方式中,保留为第二磁盘高速缓存的数据还用作第一磁盘高速缓存。
STGC 21具有如下功能,即,如果指定为第二磁盘高速缓存的数据已存在于作为第一磁盘高速缓存的RAMD 22上,则切换到第二磁盘高速缓存的数据。
通过STGC 21的判断,STGC 21执行将作为第一磁盘高速缓存而保留在RAMD 22上的数据写回STGC 23中的处理。
STGC 21继续保留作为第二磁盘高速缓存而保留在RAMD 22上的数据,直到接收到来自CPU 30的释放指令。
STGC 21具有切换器(ARBT)(将在后面进行描述),用于在以下两种信号之间进行切换:用于STGC 21向RAMD 22传输作为第一磁盘高速缓存的访问的信号和用于从CPU总线直接传输作为第二磁盘高速缓存的访问的信号。
STGC 21具有将高速缓存管理信息保留在非易失性存储器中的功能以及在STGM 20启动时再生保留在非易失性存储器中的指令的功能。
应当注意的是,非易失性存储器可以是STGD 23的一部分。
在本实施方式中,作为结合STGD 23和RAMD 22而作为储存模块的器件,可以使用非易失性随机存取存储器(NVRAM)。
在这种情况下,通过提供从MEM-IF 25经由ARBT直接访问NVRAM的路径,可不必在STGC 21内传送数据,从而可进一步实现加速。
以下,将通过把注意力集中在STGM 20的配置和功能上,同时根据需要将其与一般系统进行比较来具体说明根据本实施方式的存储系统10。
应当注意的是,为便于理解,将本实施方式的组成部件的相同标号分配给比较实例的那些组成部件以用于以下的说明。
在存储系统10中,STGC 21通过由CPU 30经由STGC-IF 24访问寄存器(未示出)而被作为储存装置控制,并且利用STGC 21具有的总线主控功能执行数据传送。
STGD 23用作非易失性数据存储区,而RAMD 22用作STGD23和STGC 21之间数据输入和输出的高速缓存区。
MEM-IF 25提供从CPU 30访问作为存储器的RAMD 22的功能。
在本实施方式中,保留在高速缓存区中的数据被直接访问而无须被传送至主存储器。
图2是作为比较实例的存储系统的框图。
在存储系统10A中,STGM 20A经由STGC-IF 24A连接至系统总线50A而不具有MEM-IF的功能。
在比较实例的存储系统10A中,除了系统在储存模块(STGM)20A内具有的第一磁盘高速缓存221A,还在主存储模块(MMM)40A上确保并使用了第二磁盘高速缓存区41。
第一磁盘高速缓存区221A是基于对STGM 20A的访问信息和STGD 23A的访问性能由STGC 21A控制的高速缓存区。
另一方面,第二磁盘高速缓存区41是由CPU 30根据OS和应用程序的请求来管理的高速缓存区。
本实施方式的STGM 20的特征在于,将所包含的磁盘高速缓存区用于第一磁盘高速缓存221和第二磁盘高速缓存222这两者。
磁盘高速缓存区的管理由STGC 21来执行,并且由于当请求第二磁盘高速缓存222的分配时地址信息被输出到CPU 30,所以哪个扇区存在于哪个磁盘高速缓存中可由CPU 30确定。
不再需要的磁盘高速缓存可以释放。
图3示出了比较实例中的STGC的基本内部配置。
STGC 21A具有控制与系统总线50A的接口的储存接口控制部211A、控制STGD 23A的储存装置控制部212A以及控制RAMD22A的RAM装置控制部213A。
此外,三个控制部211A、212A、213A由一条内部总线连接。
[STGC的基本内部配置]
图4示出了根据本发明的实施方式的STGC的基本内部配置。
STGC 21具有控制STGC-IF 24和系统总线50之间的接口的储存接口控制部211、控制STGD 23的储存装置控制部212以及控制RAMD的RAM装置控制部213。
此外,STGC 21具有控制MEM-IF 25和系统总线50之间的接口的存储接口控制部214。
在本实施方式的STGC 21中,RAM装置控制部213除了连接至与比较实例的STGC 21A的内部总线相同的内部总线之外,还连接至存储接口控制部214。
[从CPU访问RAMD的配置实例]
图5示出了本实施方式中可从CPU直接访问从而到达磁盘高速缓存的STGC的第一配置实例。
图6示出了本实施方式中可从CPU直接访问从而到达磁盘高速缓存的STGC的第二配置实例。
图5的第一配置实例是将具有两个随机存取端口PT-A、PT-B的存储器装配作为RAMD 22B的情况。
相应地,STGC 21B具有两个RAM装置控制部213-1、213-2。
RAM装置控制部213-1连接在RAMD 22B的随机存取端口PT-A与储存接口控制部211之间。
RAM装置控制部213-2连接在RAMD 22B的随机存取端口PT-B与存储接口控制部214之间。
图6的第二配置实例的情况是具有判优器(arbiter)215(包括在RAM装置控制部213上游的两个端口)以及通过CPU 30经由MEM-IF 25访问和在STGC 21C内访问的判优机理的实例。
判优器215具有连接至储存接口控制部211以及储存装置控制部212的端口PT-A,以及连接至存储接口控制部214的端口PT-B。
当两个访问互相冲突时,判优器215将优先权给予端口PT-B侧经由MEM-IF 25的访问,并防止CPU 30的处理延迟。
图7示出了从本实施方式以及比较实例的系统总线看到的存储分配图。
每条总线均具有作为控制STGC的寄存器的控制寄存器CTRL_REG和总线主控寄存器BM_REG。
本实施方式的存储分配图具有可从MEM-IF 25访问的地址空间。使用该空间作为第二磁盘高速缓存区,可以不需要到作为主存储器的MMM 40的数据传送时间,并且可以不必消耗主存储器。
[控制寄存器的配置实例]
图8示出了控制根据本实施方式的STGC的控制寄存器CTRL_REG的配置实例。
在该配置实例中,将每8位(bit)分配给一个寄存器,并且部分地,待访问的寄存器在读取和写入时进行切换。
数据寄存器DR是用于传送来自和送往CPU的数据的寄存器,并且在从CPU 30向STGC 21传送数据时进行写入,而在从STGC21向CPU 30传送数据时进行读取。
错误寄存器(error register)ER是当状态寄存器SR(其将在后面进行描述)给出错误发生的通知时示出其原因的只读寄存器。
扇区数目寄存器SNR是设定待传送的扇区数目的寄存器。在该实例中,由于寄存器具有8位,所以最多可指定255个扇区。
扇区地址寄存器SAR是设定待访问的引导扇区(head sector)地址的寄存器。在该实例中,最多可指定32位地址。
状态寄存器SR是示出STGC 21的操作状态的只读寄存器。
图9示出控制寄存器中错误寄存器的细节。
ABRT表示“异常中止”,并且当传送中途中断时变成“1”。
图10示出了控制寄存器中的状态寄存器的细节。
BSY表示“占线”,并且BSY=1指示STGC 21处于命令执行中。
DRDY表示“数据就绪”,并且DRDY=1指示数据已设定在数据寄存器DR中并且可读。
DRQ表示“数据请求”,并且DRQ=1指示数据寄存器DR为空并且可写入。
ERR表示“错误”,并且ERR=1指示已发生错误并且可从错误寄存器ER的值确认其要因(factor)。
存在很多具有当状态寄存器SR的值改变时、向CPU 30发出中断信号以通知状态改变的机制的系统,然而,这里将说明为了确认而轮询(poll)状态寄存器SR的实例。
命令寄存器CR是向STGC 21设定只写命令的寄存器。
这里,8位的值可用作操作码OC,并且最多可以定义256种命令。
图11示出了控制STGC的总线主控寄存器BM_REG的配置实例。
总线主控命令寄存器BMCR是用于控制作为总线主控的STGC21对系统总线50的访问的寄存器。
总线主控状态寄存器BMSR是用于示出作为总线主控进行操作的STGC 21的状态的寄存器。
总线主控PRD表地址寄存器BMPRDTAR是用于设定在主存储器上准备的PRD(物理区描述符)表PRDT的地址的寄存器。
STGC 21从PRD表PRDT依次读入PRD,并且基于PRD表PRDT中写入的地址信息来执行数据传送。
图12示出了总线主控寄存器中的总线主控命令寄存器的细节。
读取或写入RoW设定数据传送的方向,并且指示读取(从STGC向主存储器传送数据)=0,写入(从主存储器向STGC传送数据)=1。
开始或停止SoS设定总线主控操作的开始或停止,并且开始=1,停止=0。
图13示出了总线主控寄存器中的总线主控状态寄存器的细节。
错误ERR指示数据传送尚未完成。
总线主控有效(Bus master active)BMA指示总线主控处于操作中。
存在许多具有当状态寄存器SR的值改变时、向CPU 30发出中断信号以通知状态改变的机制的系统,然而,这里将说明为了确认而轮询状态寄存器SR的实例。
图14示出PRD表的细节。
PRD表PRDT由多个PRD表条目PRDTE形成,并且只有最终条目是EOT=1。
PRD表条目PRDTE的内容包括指示主存储器上的数据区的地址的主机存储区物理基址HMRPBA。
此外,PRD表条目PRDTE的内容由指示最终条目的EOT(表的末尾)和用字节来指示数据区的大小的字节计数BC形成。
应当注意的是,这些控制寄存器CTRL_REG、总线主控寄存器BM_REG的配置是一般的,并未显示出本发明的实施方式的特征,并且作为具体描述本发明的实施实例的手段。
图15示出了在从系统总线控制本实施方式的STGC(储存控制器)的情况下当执行作为序列的实例的读取命令时的流程图。
此外,图16示出了当响应于图15中的流程图而执行读取命令时各寄存器中设定的值的实例。
在步骤ST11,CPU 30在MMM 40上确保用于保留从STGM(储存模块)20读入的数据的缓冲区。
通常的CPU系统使用虚拟存储器,并且缓冲区没有必要是一个连续的地址空间。
在步骤ST12,在MMM 40上从所确保的缓冲区生成PRD表PRDT。
在步骤ST13,在STGC 21的总线主控寄存器BM_REG中,对数据传送方向和开始位SoS以及MMM 40的地址(其中保存了PRD表PRDT)进行设定。
在步骤ST14,对STGC 21的控制寄存器CTRL REG中的要读取的扇区数目、引导扇区地址、读取命令代码(0x20)进行设定。
STGC 21开始执行命令,并且当数据就绪时开始作为总线主控进行传送。
在传送开始之后,CPU 30通过轮询总线主控寄存器BM_REG的总线主控状态寄存器BMSR来确认STGC 21的总线主控操作。
在步骤ST15,CPU 30通过总线主控有效BMA=0来确认数据传送的完成。
在步骤ST16,CPU 30通过错误位ERR=0来确认数据传送的正常终止。
如果错误位ERR=1,则在步骤ST19,在总线主控寄存器BM_REG的总线主控命令寄存器BMCR中设定停止位SoS=1。
在总线主控传送完成之后,CPU 30通过轮询控制寄存器CTRL_REG的状态寄存器SR来确认STGC 21的操作。
在步骤ST17,CPU 30通过占线位(busy bit)BSY=0来确认命令的结束。
在步骤ST18,CPU 30通过错误位ERR=0来确认命令执行结果是正常的。
如果错误位ERR是“1”,则在步骤ST1A,确认控制寄存器CTRL_REG的错误寄存器ER的值并且确认错误(异常中止)的状态。
将所访问的扇区数据保留为磁盘高速缓存区中的第一磁盘高速缓存。
图17示出了在从系统总线控制本实施方式的STGC(储存控制器)的情况下当执行作为序列的实例的写入命令时的流程图。
此外,图18示出了当响应于图17中的流程图而执行写入命令时各寄存器中设定的值的实例。
在步骤ST21,CPU 30在MMM 40上确保用于保留要写入STGM(储存模块)20中的数据的缓冲区,并且准备写入数据。
一般的CPU系统使用虚拟存储器,并且缓冲区没有必要是一个连续的地址空间。
在步骤ST22,在MMM 40上从确保的缓冲区生成PRD表PRDT。
在步骤ST23,在总线主控寄存器BM_REG中,对数据传送方向和开始位SoS以及MMM 40的地址(其中保存了PRD表PRDT)进行设定。
在步骤ST24,对引导扇区地址、写入命令代码(0x30)、STGC21的控制寄存器CTRL_REG中的要写入的扇区数目进行设定。
STGC 21开始执行命令,并且当准备好接收数据时,开始作为总线主控进行传送。
在传送开始之后,CPU 30通过轮询总线主控寄存器BM_REG的总线主控状态寄存器BMSR来确认STGC 21的总线主控操作。
在步骤ST25,CPU 30通过总线主控有效BMA=0来确认数据传送的完成。
在步骤ST26,CPU 30通过错误位ERR=0来确认数据传送的正常终止。
如果错误位ERR=1,则在步骤ST29,在总线主控寄存器BM REG的总线主控命令寄存器BMCR中设定停止位SoS=1。
在总线主控传送完成之后,CPU 30通过轮询控制寄存器CTRL REG的状态寄存器SR来确认STGC 21的操作。
在步骤ST27,CPU 30通过占线位BSY=0来确认命令的结束。
在步骤ST28,CPU 30通过错误位ERR=0来确认命令执行结果是正常的。
如果错误位是“1”,则在步骤ST2A,确认控制寄存器CTRL_REG的错误寄存器ER的值并且确认错误(异常中止)的状态。
将所访问的扇区数据保留为磁盘高速缓存区中的第一磁盘高速缓存。
图19示出了在从系统总线控制本实施方式的STGC(储存控制器)的情况下当执行作为序列的实例的设定高速缓存命令时的流程图。
此外,图20示出了当响应于图19中的流程图而执行设定高速缓存命令时各寄存器中设定的值的实例。
在步骤ST31,CPU 30在STGC 21的控制寄存器CTRL_REG中设定(作为第二磁盘高速缓存的)要读入的数据的扇区数目、引导扇区地址以及扇区高速缓存的命令代码(0xC0)。
STGC 21开始执行命令,在RAMD 22上搜索磁盘高速缓存区的空闲空间,并且从STGD 23读入指定数据。
在开始执行命令之后,CPU 30通过轮询来确认控制寄存器CTRL_REG的状态寄存器SR。
在步骤ST32,如果CPU 30检测到数据就绪位(DRDY位)DRDY=1,则在步骤ST33,CPU 30读出控制寄存器CTRL_REG的数据寄存器DR。
作为设定高速缓存命令的执行结果,STGC 21输出其中已分配了指定的数据的磁盘高速缓存区的地址。
在步骤ST34,CPU 30通过占线位BSY=0来确认命令的结束。
在步骤ST35,CPU 30通过错误位ERR=0来确认命令执行结果是正常的。
如果错误位ERR是“1”,则在步骤ST36,确认控制寄存器CTRL_REG的错误寄存器ER的值并且确认错误的状态(异常中止,在这里高速缓存分配失败)。
图21示出了在从系统总线控制本实施方式的STGC(储存控制器)的情况下当执行作为序列的实例的释放高速缓存命令时的流程图。
此外,图22示出了当响应于图21中的流程图而执行释放高速缓存命令时各寄存器中设定的值的实例。
在步骤ST41,CPU 30在STGC 21的控制寄存器CTRL_REG中设定不必要作为第二磁盘高速缓存的数据的扇区数目、引导扇区地址以及释放高速缓存的命令代码(0xC1)。
STGC 21开始执行命令,在指定的RAMD 22上搜索磁盘高速缓存区,并且执行高速缓存退出(cache out)处理。
利用第一磁盘高速缓存的数据,当磁盘高速缓存区的空闲空间用完时,可以执行高速缓存退出。
在开始执行命令之后,CPU 30通过轮询来确认控制寄存器CTRL_REG的状态寄存器SR。
在步骤ST42,CPU 30通过占线位BSY=0来确认命令的结束。
在步骤ST43,CPU 30通过错误位ERR=0来确认命令的执行结果是正常的。
如果错误位ERR是“1”,则在步骤ST44,确认控制寄存器CTRL_REG的错误寄存器ER的值并且确认错误的状态(异常中止,这在里高速缓存分配失败)。
接下来,将说明实现如图15~图22中的功能所需要的磁盘高速缓存区的管理信息的实例。
图23是用于说明实现如图15~图22中的功能所需要的磁盘高速缓存区的管理信息的实例的示图。
在该实例中,STGC 21使用RAMD 22作为高速缓存管理信息CMI的工作存储器。RAMD 22上的存储区由将数据保留为磁盘高速缓存区DCR的区域以及高速缓存管理信息区CMIR形成。
STGC 21利用磁盘高速缓存管理信息CMI来管理磁盘高速缓存区DCR。将磁盘高速缓存区DCR作为使用512字节为一个单位的磁盘高速缓存条目DCE来管理。
高速缓存管理信息CMI包括多个高速缓存管理信息条目CMIE,并且高速管理信息条目CMIE由STGD 23上的扇区地址以及管理信息MI形成。
管理信息MI包括指示是第一磁盘高速缓存或是第二磁盘高速缓存的高速缓存类型CT以及指示使用与否的使用/未用UUS。
管理信息MI包括指示是否已通过写入将数据改变的修改标志(dirty flag)DRTF以及作为用于选择高速缓存退出的数据的信息的LRU info。
此外,STGC 21的存储接口控制部214使得能够(enable)从系统总线50对磁盘高速缓存区DCR进行访问,但是禁止从系统总线50对高速缓存管理信息区CMIR的访问。
图24~图28示出了描述当执行四种命令时STGC内部操作的流程图。
图24示出了描述读取命令的STGC内部操作的流程图。
通过在控制寄存器CTRL_REG的命令寄存器CR中写入命令的操作码来开始命令处理操作。
在步骤ST51,STGC 21使用总线主控功能以从MMM 40上的PRD表PRDT读入第一PRD表条目PRDTE。
在步骤ST52,STGC 21从扇区地址搜索磁盘高速缓存管理信息CMI,并搜索写在控制寄存器CTRL_REG中的扇区数目。
在步骤ST53,作为搜索结果,如果磁盘高速缓存上存在合适的数据(高速缓存命中),则在步骤ST54,利用总线主控功能将数据传送至MMM 40上的数据缓冲区。
在步骤ST55,确认用于头PRD表条目PRDTE的数据完成与否,并且在步骤ST56,通过关于传送信息结束与否的确定处理,返回到步骤ST51,读入下一个PRD表条目PRDTE。
在步骤ST53,如果已确定高速缓存未命中(cache miss),则在步骤ST57,搜索用于最新读入的数据的磁盘高速缓存区DCR。
如果未找到新的磁盘高速缓存区,则在步骤ST5B,执行高速缓存退出处理并确保空闲磁盘区域。
在步骤ST58,如果确定存在空闲磁盘区域,则在步骤ST59,利用总线主控功能将读出的数据从STGD传送至MMM 40上的数据缓冲区,并且同时传送至RAMD 22上的最新确保的高速缓存区。
在步骤ST5A,通过关于在步骤ST55处的传送结束与否以及在步骤ST56处的传送信息结束与否的判决处理,在高速缓存管理信息CMI中执行注册,返回到步骤ST51,读入下一个PRD表条目PRDTE。
重复上述处理直到命令结束。
图25示出了描述写入命令的STGC内部操作的流程图。
通过在控制寄存器CTRL_REG的命令寄存器CR中写入命令的操作码OC来开始命令处理操作。
在步骤ST61,STGC 21使用总线主控功能以从MMM 40上的PRD表PRDT读入第一个PRD表条目PRDTE。
在步骤ST62,STGC 21从扇区地址搜索磁盘高速缓存管理信息并且搜索写在控制寄存器CTRL_REG中的扇区数目。
在步骤ST63,如果发生高速缓存未命中,则在步骤ST68,搜索用于最新读入的数据的磁盘高速缓存区DCR。如果未找到新的磁盘高速缓存区,则在步骤ST6C,执行高速缓存退出处理并确保空闲磁盘区域。
在步骤ST63,如果已确定高速缓存命中,则在步骤ST64,STGC21利用总线主控功能将MMM 40上的数据传送至RAMD 22上确保的高速缓存区。
在步骤ST65,设定高速缓存管理信息的修改标志(修改标志位)DRTF=1。
然后,在步骤ST66,确认头PRD表条目PRDTE的数据完成与否,并且在步骤ST67,通过关于传送信息结束与否的确定处理,返回到步骤ST61,读入下一个PRD表条目PRDTE。
上述操作与一般比较实例的基本操作相同。
在本发明的实施方式中,在由STGC 21控制的RAMD 22上,在磁盘高速缓存区DCR的数据中存在第一磁盘高速缓存和第二磁盘高速缓存的两种高速缓存类型CT。
另一方面,在比较实例中,仅存在对应于第一磁盘高速缓存的数据。
图26示出了描述高速缓存退出处理的STGC内部操作的流程图。
在步骤ST71,STGC 21为了从磁盘高速缓存区进行高速缓存退出而检查作为候选项的扇区。
为了确定候选项,高速缓存管理信息CMI的管理信息MI中的LRU info被读取并被使用。
此外,第二磁盘高速缓存并不用作高速缓存退出的候选项。
在步骤ST72,如果作为候选项的扇区的管理信息MI是修改标志位DRTF=1,则在步骤ST73,执行将RAMD 22上当前存在的扇区数据写回到STGD 23中的处理。
在步骤ST74,将高速缓存管理信息清除为未使用。
关于具有修改标志位DB=0的数据,不执行写回操作,并且在步骤ST74清除高速缓存管理信息。
在步骤ST75,以需要的扇区数目重复上面的处理直到确定最终扇区。
图27示出了描述设定高速缓存命令的STGC内部操作的流程图。
在步骤ST81,STGC 21从扇区地址搜索高速缓存管理信息并且搜索写在控制寄存器CTRL_REG中的扇区数目。
在步骤ST82,如果找到了合适的磁盘高速缓存数据,在步骤ST83,如果数据是第一磁盘高速缓存,则在步骤ST84,高速缓存管理信息被改变并且被设定成第二磁盘高速缓存。
在步骤ST82,如果不存在合适的磁盘高速缓存数据,则在步骤ST87,从RAMD 22上的磁盘高速缓存区DCR中搜索空闲空间。在步骤ST88,如果未找到空闲空间,则在步骤ST8B,执行高速缓存退出处理并且准备空闲空间。
在步骤ST88,如果已确定存在空闲空间,则在步骤ST89,将合适的扇区数据从STGD 23传送至RAMD 22上确保的磁盘高速缓存空闲区。
然后,在步骤ST8A,在高速缓存管理信息CMI中执行作为第二磁盘高速缓存的注册。
在步骤ST85,分配给指定的扇区数据的RAMD 22上的第二磁盘高速缓存的地址被设定在控制寄存器CTRL_REG的数据寄存器DR中。当数据被设定在数据寄存器DR中时,在控制寄存器CTRL_REG的状态寄存器中,DRDY=1,并且发出已将新数据设定在数据寄存器DR中的通知。当数据寄存器DR的数据被读出时,DRDY=0,并且可以在数据寄存器DR中设定下一数据。
在步骤ST86,以控制寄存器CTRL_REG中的扇区数目SN中设定的扇区数目来重复上面的处理,直到确定为最终的扇区。
图28示出了描述释放高速缓存命令的STGC内部操作的流程图。
在步骤ST91,STGC 21从扇区地址搜索高速缓存管理信息CMI并且搜索写在控制寄存器CTRL_REG中的扇区数目。
在步骤ST92,如果找到了合适的磁盘高速缓存数据,并且进一步地,在步骤ST93,确认数据是否是第二磁盘高速缓存。这里,如果得到肯定的判断(是),则在步骤ST94,将设定变成第一磁盘高速缓存。
在步骤ST95,以CTRL_REG中的扇区数目SN中设定的扇区数目来重复上面的处理,直到确定为最终扇区。
当接下来需要磁盘高速缓存区的空闲空间时,改变为第一磁盘高速缓存的数据成为用于高速缓存退出的扇区的候选项。
图29是通过比较从将保存在储存器上的代码读入到存储器上直到从CPU执行的时间来描述和示出本发明的实施方式的效果的示图。
在任意实例中,依次加载并且执行三种代码。
情况CS1是在存储器上读入代码并以与现有技术中相同的方式执行它们的操作(储存和下载)。
代码CD1至CD3通过读取命令被依次加载在MMM 40上并且被执行,总处理时间是{T(读取代码1)+T(执行代码1)+T(读取代码2)+T(执行代码2)+T(读取代码3)+T(执行代码3)}。
这里,T(x)是直到处理完成所花费的时间。
由于所有的代码CD1、CD2、CD3保存在不同的扇区中,所以无法得到第一磁盘高速缓存的效果。
情况2是通过设定高速缓存命令来缩短代码CD2、代码CD3的加载时间的操作。
第一代码CD1是读取命令,并且在代码CD1的执行期间代码CD2执行设定高速缓存命令,并且在代码CD2的执行期间代码CD3执行设定高速缓存命令。
因此,总处理时间是{T(读取代码1)+T(执行代码1)+T(从磁盘高速缓存读取代码2)+T(执行代码2)+T(从磁盘高速缓存读取代码3)+T(执行代码3)}。
通过第一磁盘高速缓存的效果缩短了代码CD2、代码CD3的加载时间。
情况CS3是将第二磁盘高速缓存作为执行代码CD1、CD2、CD3的存储器时使用该第二磁盘高速缓存的操作(就地执行,Execute In Place)。
通过设定高速缓存命令将所有的代码CD1至CD3加载在作为第二磁盘高速缓存的RAMD 22上,并且CPU 30从STGC 21的MEM-IF 25直接访问以执行这些代码。
RAMD 22的读出性能和从STGC 21访问的主存储器的性能是等同的,从STGC到MMM并不花费传送时间。
因此,总处理时间是{T(设定高速缓存代码1)+T(执行代码1)+T(执行代码2)+T(执行代码3)}。
在STGC 21内部的存储控制部中,通过执行设定高速缓存命令来判优代码的执行和对RAMD 22的访问。此外,将优先权给予从MEM-IF 25的访问,因此设定高速缓存的处理时间在某种程度上较长,然而,如果上述的总处理时间不超过执行时间则花费总处理时间。
由于实际的CPU模块内部具有指令高速缓存和数据高速缓存,所以由于判优而导致的设定高速缓存处理时间的延长的影响很难大的超过执行时间。
图30示出了描述当释放储存模块的复位以进行启动时在STGC中执行的操作的流程图。
同时,并列地,还释放了STGD 23以及RAMD 22的复位。
在步骤ST101,STGC 21在RAMD 22上的高速缓存管理区CMIR中加载高速缓存管理信息的初始值。
将该初始值保存在STGD 23上或保存在STGC 21内的非易失性存储区上。
此外,STGC 21还提供用于在其保存区中设定初始值的手段。
由该初始值设定的磁盘高速缓存可包括第一磁盘高速缓存和第二磁盘高速缓存中的任意一个或两个。
在步骤ST102,STGC 21根据初始值从STGD 23向RAMD 22传送扇区数据。
重复该处理直到加载了注册为初始值的所有第二磁盘高速缓存。
图31示出了自动加载本实施方式的高速缓存管理信息的初始值的功能的效果。
假定的系统执行来自图2和图3中所示的引导(boot)ROM 80的初始启动代码,并且执行CPU外围设备的初始化,尤其是控制MMM 40的存储控制器的初始化。
然后,从STGC 21加载作为OS和应用程序的启动代码的代码CD1、CD2、CD3。
情况CS11是通过引导BOM 80的CPU模块30的初始化处理结束之后开始从STGM 20读入启动代码的操作。
总处理时间是{T(执行引导ROM)+T(读取代码1)+T(读取代码2)+T(执行代码2)+T(读取代码3)+T(执行代码3)}。
同时,并列地,RAMD 22的复位也被释放,并且CPU模块30开始其自身的初始化处理并且通常在CPU模块30的初始化处理中执行MMM 40的初始化。
因此,在所有的初始化处理结束之前不可能使用利用STGC 21的总线主控功能的外部数据传送。
情况CS11描述了这种比较实例,并且从引导ROM 80上执行CPU模块30的启动代码,在执行结束后,代码CD1、CD2、CD3被依次加载在MMM 40上并被执行(储存和下载)。
自始至终,在电源开启后,第一次访问代码CD11~至CD13,并且未获得磁盘高速缓存的效果。
情况CS12利用设定高速缓存命令在CPU模块30的启动处理结束之前加载作为(作为第二磁盘高速缓存的)STGC 21的启动处理的CD11~CD13。
CPU模块30在启动处理结束之后使用用于为STGD 23加载代码的读取命令,并且因此,RAMD 22上的高速缓存数据通过作为第一磁盘高速缓存的操作而变得更快。
情况CS13直接执行代码CD11~至CD13,而没有将它们作为STGC 21的启动处理传送至MMM 40。因此,情况CS13是在不需要从STGM 20向MMM 40的数据传送时间的情况下缩短启动时间的实例(第二磁盘高速缓存的效果,就地执行)。
在启动处理结束之后,可以利用释放高速缓存命令释放所有这些第二磁盘高速缓存数据。
<2.第二实施方式>
图32示出了根据本发明的第二实施方式的包括储存单元的存储系统的配置实例。
根据第二实施方式的存储系统10D与根据第一实施方式的上述存储系统10的不同在于以下几点。
即,在第二实施方式中,在储存模块20D中,作为非易失性存储装置并且可用作随机存取存储器的非易失性随机存取存储器(NVRAM)26被用作STGD。
STGD作为RAM是可访问的,并且通常,系统总线上的地址空间小于总储存空间。
因此,存储接口控制部214可具有执行转换为NVRAM地址的功能(当执行设定高速缓存命令时,确定用于从系统总线50访问数据的MEM-IF 25上的地址)。
此外,将高速缓存管理信息保存在NVRAM 26上的预定区域中,并且存在用于工作的以及用于保存启动用的高速缓存管理信息的两个高速缓存管理信息区。
如上面所说明的,根据本实施方式,可获得下列有益效果。
根据本发明的储存模块内部使用随机存取存储器装置作为第一和第二磁盘高速缓存,因此,能够改善作为系统的性能。
在本实施方式中,在储存模块上实现第二磁盘高速缓存的功能,因此,能够避免由于用第一磁盘高速缓存保留重复数据造成的磁盘高速缓存的使用效率降低,并且能够改善磁盘高速缓存对容量的效果。
此外,根据本实施方式,与使用主存储器作为第二磁盘高速缓存的系统相比,能够实现由于主存储器和储存模块之间不发生数据传送而使得性能改善。
同时,还能改善了主存储器的使用效率并且能够防止由于发生交换而引起的系统性能降低。
而且,一般的第一磁盘高速缓存没有从CPU指定保留在高速缓存上的数据的功能。
另一方面,在本实施方式中,指定为第二磁盘高速缓存的数据也可用作第一磁盘高速缓存的数据。
据此,结果,可以将从CPU指定的数据保留为第一磁盘高速缓存,能够降低对储存装置的访问次数并且能够实现性能的改善。
此外,本实施方式具有如下功能,即,在非易失性存储器或储存装置的一部分区域中保留存储控制器所具有的为启动而设置的高速缓存功能的指令。而且,本实施方式具有如下功能,即,在储存模块启动时再生保留在该磁盘高速缓存上的该区域中的指令的功能。在本实施方式中,通过这些功能能够实现系统启动时间的改善。
在通常的存储系统中,在CPU模块的启动处理完成之后在储存器上开始对需要的数据的访问,并且能够进行对主存储器和储存模块的访问。因此,存在较大的时滞(time lag),直到从储存器在存储器上展开需要的数据。
另一方面,在本实施方式中,储存模块自身能够在磁盘高速缓存上展开数据作为初始状态。
因此,根据本实施方式,在CPU模块的启动完成之后,可以立即最大限度地发挥第一和第二磁盘高速缓存的效果,并且能够缩短系统的启动时间。
本领域的技术人员应当理解的是,根据设计要求和其他因素可以进行各种修改、组合、子组合以及变化,只要它们在所附权利要求及其等同替换的范围内。
Claims (20)
1.一种储存单元,包括:
随机存取存储装置,该随机存取存储装置使用以字为单位的地址访问;
储存装置,该储存装置使用以扇区为单位的地址访问;以及
储存控制器,根据经由总线指定的地址,控制对所述随机存取存储装置以及所述储存装置的访问,
其中,所述储存控制器包括
第一接口功能,对存储在所述储存装置上的利用经由所述总线提供的所述扇区地址指定的数据进行访问,
第二接口功能,利用经由所述总线指定的字地址直接访问所述随机存取存储装置上的数据,
一种功能,响应于所述第一接口功能的访问,使用所述随机存取存储装置作为第一磁盘高速缓存,并且确定要保存在所述随机存取存储装置中的数据,
一种功能,通过反复进行寄存器访问来传送利用所述扇区地址指定的所述数据,以及
一种功能,经由所述总线通过总线主控功能来传送作为连续字大小的数据的利用所述扇区地址指定的数据。
2.根据权利要求1所述的储存单元,其中,所述储存控制器包括:
高速缓存指定功能,经由所述总线指定保留在所述随机存取存储装置上的数据作为第二磁盘高速缓存,以及
高速缓存释放功能,释放高速缓存指定。
3.根据权利要求2所述的储存单元,其中,经由所述第一接口功能向所述储存控制器指示所述高速缓存指定功能,
所述指示包括关于所述储存装置的地址以及数据大小的信息,以及
所述储存控制器从所述随机存取存储装置上的未使用的区域中以指定的数据大小确保一个区域,并且用从所述储存装置指定的地址在预先确保的所述区域中执行所述数据的写入处理。
4.根据权利要求2或3所述的储存单元,其中,经由所述第一接口功能向所述储存控制器指示所述高速缓存释放功能,
所述指示包括关于所述储存装置的地址的信息,以及
在释放指令之后,所述储存控制器确定,对于所述随机存取存储装置上的指定的数据的区域,是否将所述数据保留在所述随机存取存储装置上。
5.根据权利要求2至4中任意一项所述的储存单元,其中,作为所述第二磁盘缓存而保留的所述数据还可用作所述第一磁盘高速缓存,以及
所述储存控制器具有如下功能,如果指定为所述第二磁盘高速缓存的数据已作为所述第一磁盘缓存而存在于所述随机存取存储装置上,则将所述数据切换成所述第二高速缓存数据的数据。
6.根据权利要求2至5中任意一项所述的储存单元,其中,所述储存控制器根据其自身的判断,在所述储存装置中对作为所述第一磁盘高速缓存而保留在所述随机存取存储装置上的所述数据执行写回处理,并且继续保留作为所述第二磁盘高速缓存而保留在所述随机存取存储装置上的所述数据,直到所述储存控制器接收到所述释放指令。
7.根据权利要求2至6中任意一项所述的储存单元,其中,所述储存控制器具有判优器,所述判优器用于判优并切换用来将作为所述第一磁盘高速缓存的访问传输到所述随机存取存储装置的信号和用来直接传输来自所述总线的作为所述第二磁盘高速缓存的访问的信号。
8.根据权利要求1至7中任意一项所述的储存单元,其中,所述储存控制器具有:
在非易失性存储器中保留高速缓存管理信息的功能;以及
在启动时再生保留在所述非易失性存储器中的指令的功能。
9.根据权利要求1至8中任意一项所述的储存单元,其中,所述随机存取存储装置和所述储存装置由具有随机存取存储装置功能的非易失性随机存取存储器和所述储存装置的组合形成。
10.根据权利要求9所述的储存单元,其中,所述储存控制器具有经由所述第二接口功能直接访问所述非易失性随机储存器的路径。
11.一种存储系统,包括:
主机;
主存储模块;
储存单元,通过所述主机访问;以及
系统总线,连接所述主机、所述主存储模块以及所述储存单元,
其中,所述储存单元包括:
随机存取存储装置,该随机存取存储装置使用以字为单位的地址访问;
储存装置,该储存装置使用以扇区为单位的地址访问;以及
储存控制器,根据经由所述系统总线指定的地址,控制对所述随机存取存储装置以及所述储存装置的访问,以及
其中,所述储存控制器包括:
第一接口功能,根据经由所述系统总线来自所述主机的指令,对存储在所述存储装置上的利用所述扇区地址指定的数据进行访问,
第二接口功能,通过所述主机,利用经由所述系统总线指定的字地址直接访问所述随机存取存储装置上的数据,
一种功能,响应于所述第一接口功能的访问,使用所述随机存取存储装置作为第一磁盘高速缓存,并且确定要保存在所述随机存取存储装置中的数据,
一种功能,通过反复进行寄存器访问来传送利用所述扇区地址指定的所述数据,以及
一种功能,经由所述系统总线通过总线主控功能在所述主存储模块和其自身之间来传送作为连续字大小的数据的利用所述扇区地址指定的所述数据。
12.根据权利要求11所述的存储系统,其中,所述储存控制器包括:
高速缓存指定功能,通过所述主机,经由所述总线指定保留在所述随机存取存储装置上的数据作为第二磁盘高速缓存,以及
高速缓存释放功能,释放高速缓存指定。
13.根据权利要求12所述的存储系统,其中,经由所述第一接口功能向所述储存控制器指示所述高速缓存指定功能,
所述指示包括关于所述储存装置的地址以及数据大小的信息,以及
所述储存控制器从所述随机存取存储装置上的未使用的区域中以指定的数据大小确保一个区域,并且用从所述储存装置指定的地址在预先确保的所述区域中执行所述数据的写入处理。
14.根据权利要求12或13所述的存储系统,其中,经由所述第一接口功能向所述储存控制器指示所述高速缓存释放功能,
所述指示包括关于所述储存装置的地址的信息,以及
在释放指令之后,所述储存控制器确定,对于所述随机存取存储装置上的指定的数据区域,是否将所述数据保留在所述随机存取存储装置上。
15.根据权利要求12至14中任意一项所述的存储系统,其中,作为所述第二磁盘缓存而保留的所述数据还可用做所述第一磁盘缓存,以及
所述储存控制器具有如下功能,如果指定为所述第二磁盘高速缓存的数据已作为所述第一磁盘缓存而存在于在所述随机存取存储装置上,则将所述数据切换成所述第二高速缓存数据的数据。
16.根据权利要求12至15中任意一项所述的存储系统,其中,所述储存控制器根据其自身的判断,在所述储存装置中对作为所述第一磁盘高速缓存而保留在所述随机存取存储装置上的所述数据执行写回处理,并且继续保留作为所述第二磁盘高速缓存而保留在所述随机存取存储装置上的所述数据,直到所述储存控制器接收到所述释放指令。
17.根据权利要求12至16中任意一项所述的存储系统,其中,所述储存控制器具有判优器,所述判优器用于判优并切换用来将作为所述第一磁盘高速缓存的访问传输到所述随机存取存储装置的信号和用来直接传输来自所述总线的作为所述第二磁盘高速缓存的访问的信号。
18.根据权利要求11至17中任意一项所述的存储系统,其中,所述储存控制器具有:
在非易失性存储器中保留高速缓存管理信息的功能;以及
在启动时再生保留在所述非易失性存储器中的指令的功能。
19.根据权利要求11至18中任意一项所述的存储系统,其中,所述随机存取存储装置和所述储存装置由具有随机存取存储装置功能的非易失性随机存取存储器和所述储存装置的组合形成。
20.根据权利要求19所述的存储系统,其中,所述储存控制器具有经由所述第二接口功能直接访问非所述易失性随机存储器的路径。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009237503A JP5526697B2 (ja) | 2009-10-14 | 2009-10-14 | ストレージ装置およびメモリシステム |
JP2009-237503 | 2009-10-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102043730A true CN102043730A (zh) | 2011-05-04 |
CN102043730B CN102043730B (zh) | 2014-03-05 |
Family
ID=43855736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010501335.3A Expired - Fee Related CN102043730B (zh) | 2009-10-14 | 2010-10-08 | 储存单元及存储系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20110087836A1 (zh) |
JP (1) | JP5526697B2 (zh) |
CN (1) | CN102043730B (zh) |
TW (1) | TWI442231B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104750425A (zh) * | 2013-12-30 | 2015-07-01 | 国民技术股份有限公司 | 一种存储系统及其非易失性存储器的控制方法 |
CN104750424A (zh) * | 2013-12-30 | 2015-07-01 | 国民技术股份有限公司 | 一种存储系统及其非易失性存储器的控制方法 |
CN106919343A (zh) * | 2015-12-28 | 2017-07-04 | 晶心科技股份有限公司 | 周边接口电路与周边存储器系统 |
CN107025190A (zh) * | 2016-02-02 | 2017-08-08 | 爱思开海力士有限公司 | 系统及其操作方法 |
CN108121680A (zh) * | 2016-11-30 | 2018-06-05 | 三星电子株式会社 | 存储装置、电子系统以及操作电子装置的方法 |
CN109952567A (zh) * | 2016-09-08 | 2019-06-28 | 优普梅姆公司 | 用于旁通高级dram存储器控制器的内部高速缓存的方法和装置 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8307180B2 (en) | 2008-02-28 | 2012-11-06 | Nokia Corporation | Extended utilization area for a memory device |
US8874824B2 (en) | 2009-06-04 | 2014-10-28 | Memory Technologies, LLC | Apparatus and method to share host system RAM with mass storage memory RAM |
US9417998B2 (en) | 2012-01-26 | 2016-08-16 | Memory Technologies Llc | Apparatus and method to provide cache move with non-volatile mass memory system |
TWI464593B (zh) | 2012-03-03 | 2014-12-11 | Nuvoton Technology Corp | 輸出輸入控制裝置與其控制方法 |
US9311226B2 (en) | 2012-04-20 | 2016-04-12 | Memory Technologies Llc | Managing operational state data of a memory module using host memory in association with state change |
TWI507876B (zh) * | 2014-07-21 | 2015-11-11 | Phison Electronics Corp | 記憶體儲存裝置及控制方法、記憶體控制電路單元及模組 |
CN104298620A (zh) * | 2014-10-10 | 2015-01-21 | 张维加 | 一种耐擦写低能耗的外接计算机加速设备 |
KR20180093648A (ko) * | 2017-02-14 | 2018-08-22 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004171469A (ja) * | 2002-11-22 | 2004-06-17 | Toshiba Corp | キャッシュメモリシステムおよびキャッシュメモリ制御方法 |
US20060236020A1 (en) * | 2003-03-11 | 2006-10-19 | Taylor Michael D | Cache memory architecture and associated microprocessor and system controller designs |
CN101101533A (zh) * | 2006-07-06 | 2008-01-09 | 奇梦达北美公司 | 通过易失性存储器接口访问非易失性存储器的方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0216651A (ja) * | 1988-07-05 | 1990-01-19 | Mitsubishi Electric Corp | ディスクキャッシュ制御方式 |
JP3515495B2 (ja) * | 1993-11-16 | 2004-04-05 | 富士通株式会社 | ディスク制御装置及びその制御方法 |
US5732409A (en) * | 1994-03-21 | 1998-03-24 | Legend Research Limited | Caching disk controller implemented by hardwired logic |
US6785774B2 (en) * | 2001-10-16 | 2004-08-31 | International Business Machines Corporation | High performance symmetric multiprocessing systems via super-coherent data mechanisms |
JP4100256B2 (ja) * | 2003-05-29 | 2008-06-11 | 株式会社日立製作所 | 通信方法および情報処理装置 |
US7272687B2 (en) * | 2005-02-01 | 2007-09-18 | Lsi Corporation | Cache redundancy for LSI raid controllers |
JP4813843B2 (ja) * | 2005-08-04 | 2011-11-09 | 株式会社日立製作所 | ストレージ装置、ディスクキャッシュ制御方法及びディスクキャッシュの容量割当方法 |
US20080016274A1 (en) * | 2006-07-13 | 2008-01-17 | Xing-Jia Wang | Method of protecting cache memory data in storage system |
JP2008026970A (ja) * | 2006-07-18 | 2008-02-07 | Toshiba Corp | ストレージ装置 |
JP2008234074A (ja) * | 2007-03-16 | 2008-10-02 | Fujitsu Ltd | キャッシュ装置 |
JP2008276646A (ja) * | 2007-05-02 | 2008-11-13 | Hitachi Ltd | ストレージ装置及びストレージ装置におけるデータの管理方法 |
US8347041B2 (en) * | 2009-01-02 | 2013-01-01 | Lsi Corporation | System and method to preserve and recover unwritten data present in data cache of a disk subsystem across power outages |
US8874824B2 (en) * | 2009-06-04 | 2014-10-28 | Memory Technologies, LLC | Apparatus and method to share host system RAM with mass storage memory RAM |
-
2009
- 2009-10-14 JP JP2009237503A patent/JP5526697B2/ja not_active Expired - Fee Related
-
2010
- 2010-09-24 TW TW99132459A patent/TWI442231B/zh not_active IP Right Cessation
- 2010-10-05 US US12/897,990 patent/US20110087836A1/en not_active Abandoned
- 2010-10-08 CN CN201010501335.3A patent/CN102043730B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004171469A (ja) * | 2002-11-22 | 2004-06-17 | Toshiba Corp | キャッシュメモリシステムおよびキャッシュメモリ制御方法 |
US20060236020A1 (en) * | 2003-03-11 | 2006-10-19 | Taylor Michael D | Cache memory architecture and associated microprocessor and system controller designs |
CN101101533A (zh) * | 2006-07-06 | 2008-01-09 | 奇梦达北美公司 | 通过易失性存储器接口访问非易失性存储器的方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104750425A (zh) * | 2013-12-30 | 2015-07-01 | 国民技术股份有限公司 | 一种存储系统及其非易失性存储器的控制方法 |
CN104750424A (zh) * | 2013-12-30 | 2015-07-01 | 国民技术股份有限公司 | 一种存储系统及其非易失性存储器的控制方法 |
CN106919343A (zh) * | 2015-12-28 | 2017-07-04 | 晶心科技股份有限公司 | 周边接口电路与周边存储器系统 |
CN106919343B (zh) * | 2015-12-28 | 2020-03-31 | 晶心科技股份有限公司 | 周边接口电路与周边存储器系统 |
CN107025190A (zh) * | 2016-02-02 | 2017-08-08 | 爱思开海力士有限公司 | 系统及其操作方法 |
CN107025190B (zh) * | 2016-02-02 | 2021-04-13 | 爱思开海力士有限公司 | 系统及其操作方法 |
CN109952567A (zh) * | 2016-09-08 | 2019-06-28 | 优普梅姆公司 | 用于旁通高级dram存储器控制器的内部高速缓存的方法和装置 |
CN109952567B (zh) * | 2016-09-08 | 2023-08-22 | 优普梅姆公司 | 用于旁通高级dram存储器控制器的内部高速缓存的方法和装置 |
CN108121680A (zh) * | 2016-11-30 | 2018-06-05 | 三星电子株式会社 | 存储装置、电子系统以及操作电子装置的方法 |
CN108121680B (zh) * | 2016-11-30 | 2023-03-10 | 三星电子株式会社 | 存储装置、电子系统以及操作电子装置的方法 |
Also Published As
Publication number | Publication date |
---|---|
JP5526697B2 (ja) | 2014-06-18 |
TW201120637A (en) | 2011-06-16 |
CN102043730B (zh) | 2014-03-05 |
JP2011086064A (ja) | 2011-04-28 |
TWI442231B (zh) | 2014-06-21 |
US20110087836A1 (en) | 2011-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102043730B (zh) | 储存单元及存储系统 | |
US6976135B1 (en) | Memory request reordering in a data processing system | |
CN100472494C (zh) | 支持多总线多类型存储器的内存仲裁实现系统和方法 | |
JP3561915B2 (ja) | スーパースカラ型プロセサにおいて命令処理を制御するためタグを割り当てるシステム及び方法 | |
CN1728118B (zh) | 资源分配管理方法和设备 | |
EP1189132B1 (en) | Shared peripheral architecture | |
CN103365794B (zh) | 数据处理方法、装置和系统 | |
US8190825B2 (en) | Arithmetic processing apparatus and method of controlling the same | |
EP0978044A4 (en) | METHOD AND APPARATUS FOR REORDERING INSTRUCTIONS AND RESTORING DATA BASED ON AN INITIAL INSTRUCTION ORDER | |
JPS63103343A (ja) | ムーブアウト待ち行列バッファ | |
US8793435B1 (en) | Load miss result buffer with shared data lines | |
CN102073533A (zh) | 支持动态二进制翻译的多核体系结构 | |
US7574562B2 (en) | Latency-aware thread scheduling in non-uniform cache architecture systems | |
US6546465B1 (en) | Chaining directory reads and writes to reduce DRAM bandwidth in a directory based CC-NUMA protocol | |
US20080320234A1 (en) | Information processing apparatus and data transfer method | |
US8806135B1 (en) | Load store unit with load miss result buffer | |
US20210034367A1 (en) | Spare cache set to accelerate speculative execution | |
US7069394B2 (en) | Dynamic data routing mechanism for a high speed memory cloner | |
US6996693B2 (en) | High speed memory cloning facility via a source/destination switching mechanism | |
US6892283B2 (en) | High speed memory cloner with extended cache coherency protocols and responses | |
US20020049889A1 (en) | Data processing apparatus with a cache memory and method of using such an apparatus | |
US6898677B2 (en) | Dynamic software accessibility to a microprocessor system with a high speed memory cloner | |
CN115454502B (zh) | 用于调度simt架构处理器的返回数据的方法及相应处理器 | |
US6986013B2 (en) | Imprecise cache line protection mechanism during a memory clone operation | |
US7502917B2 (en) | High speed memory cloning facility via a lockless multiprocessor mechanism |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140305 Termination date: 20211008 |
|
CF01 | Termination of patent right due to non-payment of annual fee |