CN101571831A - 存储器子系统及管理方法、包含该子系统的计算机系统 - Google Patents
存储器子系统及管理方法、包含该子系统的计算机系统 Download PDFInfo
- Publication number
- CN101571831A CN101571831A CNA2008100944648A CN200810094464A CN101571831A CN 101571831 A CN101571831 A CN 101571831A CN A2008100944648 A CNA2008100944648 A CN A2008100944648A CN 200810094464 A CN200810094464 A CN 200810094464A CN 101571831 A CN101571831 A CN 101571831A
- Authority
- CN
- China
- Prior art keywords
- memory
- blocks
- exchange
- physical memory
- computer system
- 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.)
- Pending
Links
Images
Abstract
一种存储器子系统及管理方法、包含该子系统的计算机系统。存储器子系统包含连接到系统总线的第一存储器和第二存储器,第一存储器具有优于第二存储器的性能;和独立于系统总线的交换器,被配置为响应来自存储器子系统外部的交换命令,将交换命令中指定的第二存储器的至少一个物理存储器块和第一存储器的相应物理存储器块进行内容交换。
Description
技术领域
本发明涉及计算机存储器技术,尤其涉及存储器子系统、管理存储器子系统的方法以及包含存储器子系统的计算机系统。
背景技术
在计算机系统中,当运行例如非常大的数据库应用或大的系统模拟应用时,越来越需要大的存储器,以避免频繁的对外部存储设备的I/O访问。I/O访问由于大得多的访问等待时间和寻址开销而比存储器访问慢得多,从而会带来很大的性能损失。
存储器的访问速率不同,其价格也不同。一般地,快速存储器的单位价格高于慢速存储器的单位价格。因此,出于成本考虑,难以在保证较高的存储器访问速率的情况下提供容量很大的存储器。
另外,在作为服务器系统的计算机系统中,由于例如电子设计自动化(EDA)设计的复杂性等问题,难以把大量存储器安装到服务器中并同时保持非常高的存储器访问速率。因此,服务器的存储器容量受到一定的限制。
发明内容
因此,本发明的一个目的在于提供一种存储器子系统、管理存储器子系统的方法以及包含存储器子系统的计算机系统,使得能够在保证期望性能(例如存储器访问速率)的情况下增加存储器容量。
本发明的一个实施例提供了一种用于计算机系统的存储器子系统,包含:连接到系统总线的第一存储器和第二存储器,第一存储器具有优于第二存储器的性能;和交换器,被配置为响应来自存储器子系统外部的交换命令,独立于系统总线地将交换命令中指定的第二存储器的至少一个物理存储器块和第一存储器的相应物理存储器块进行内容交换。
本发明的另一个实施例提供了一种包含上述存储器子系统的计算机系统,还包含交换控制器,被配置为预先确定要访问的、位于第二存储器中的数据,通知交换器将包含所述数据的至少一个物理存储器块的内容与第一存储器中相应数目的物理存储器块的内容分别进行交换,并修改逻辑存储器块与物理存储器块的对应关系以反映所述交换。
本发明的另一个实施例提供了一种计算机系统中管理存储器子系统的方法,所述存储器子系统包括连接到系统总线的第一存储器和第二存储器,第一存储器具有优于第二存储器的性能,所述方法包含:预先确定要访问的、位于第二存储器中的数据;独立于系统总线地将包含所述数据的至少一个物理存储器块的内容与第一存储器中相应数目的物理存储器块的内容分别进行交换;和修改逻辑存储器块与物理存储器块的对应关系以反映所述交换。
本发明的实施例从根本上改变了传统的存储器子系统的结构,能够在保证期望性能(例如存储器访问速率)的情况下增加存储器容量,具有更高的性价比、可扩展性和灵活性。
附图说明
参照下面结合附图对本发明实施例的说明,会更加容易地理解本发明的以上和其他目的、特点和优点。在附图中,相同的或对应的技术特征或部件将采用相同或对应的附图标记来表示。
图1是示出了根据本发明实施例的计算机系统及其中的存储器子系统的示意图;
图2图示了根据本发明实施例的计算机系统中管理存储器的方法;
图3A示意性地示出了在计算机系统上运行的一个应用程序的页表;
图3B示意性地示出了图3A中的页表所对应的存储器空间的情况;
图4A示意性地示出了修改后的页表;以及
图4B示出了修改后的页表所对应的存储器空间的情况。
具体实施方式
下面参照附图来说明本发明的实施例。应当注意,为了清楚的目的,附图和说明中省略了与本发明无关的、本领域普通技术人员已知的部件和处理的表示和描述。
图1是示出了根据本发明实施例的计算机系统及其中的存储器子系统的示意图。如图1所示,CPU 100通过系统总线110访问存储器子系统120。存储器子系统120包括连接到系统总线110的第一存储器130,连接到系统总线110的第二存储器140和连接到系统总线110的交换器150。第二存储器140的访问速率低于第一存储器130的访问速率。
系统总线110可以是任何用于连接主处理器(例如CPU)、存储器和其它设备(例如总线桥、从处理器等)的总线,例如PCI-E总线和Intel公司的FSB总线。
第一存储器130包括存储器模块128和存储器控制器122。虽然图中只示出一个存储器模块128,然而可根据存储器模块大小和容量需要配置相应数量的存储器模块。
第二存储器140包括存储器模块129和存储器控制器124。虽然图中只示出一个存储器模块129,然而可根据存储器模块大小和容量需要配置相应数量的存储器模块。
存储器控制器122和124分别处理各种设备(例如CPU 100)经由系统总线110对第一存储器130和第二存储器140的访问。此外,存储器控制器122和124还分别处理交换器150经由传送总线126对第一存储器130和第二存储器140的访问。
可以根据系统总线110的规范来设计第一存储器130的存储器控制器122和第二存储器140的存储器控制器124,使得第一存储器130和第二存储器140能够作为系统总线110上的设备被例如CPU100的处理器访问。例如,可以采用IBM公司的服务器存储器技术,其中DDR SDRAM存储器和CPU之外的L3高速缓冲存储器均连接在系统总线上,并且可被CPU访问。
交换器150经由系统总线110与CPU 100通信,以接收CPU 100发出的命令和向CPU 100返回响应。例如,可以基于系统总线110的规范将交换器150实现为主处理器(CPU 100)的从处理器,或类似存储器控制器的其它设备。
传送总线126可以是与系统总线110相同或不同的总线。类似地,可以根据传送总线126的规范来设计交换器150,第一存储器130的存储器控制器122和第二存储器140的存储器控制器124,使得第一存储器130和第二存储器140能够作为传送总线126上的设备被交换器150访问。例如,可以采用IBM公司的服务器存储器技术,其中DDR SDRAM存储器和CPU之外的L3高速缓冲存储器均连接在系统总线上,并且可被CPU访问。
可采用例如但不限于双端口存储器的技术来实现存储器控制器122和124,使得能够通过系统总线110和传送总线126来访问第一存储器130和第二存储器140。
CPU 100被配置为交换控制器,用于与交换器150进行通信,以控制交换器150的操作。此外,交换控制器也可被实现为连接到系统总线110上、与CPU 100分立的设备(例如从处理器)。
下面结合图2的流程图对图1所示的计算机系统进行说明。
图2图示了根据本发明实施例的计算机系统中管理存储器的方法。如图2所示,方法在步骤200开始。在步骤202,CPU 100实现的交换控制器预先确定将要执行的、访问第二存储器中的数据。
交换控制器(例如CPU 100)可利用已知的预测技术,通过在指令执行过程中分析待执行的指令序列来预先确定将要访问的第二存储器140中的数据。此外,通过在指令序列中访问数据的指令之前插入用于控制交换控制器确定数据是否在第二存储器140中的指令,或用于控制交换控制器进行上述分析和确定的指令,或直接指示交换控制器进行交换的指令,也可实现这种预先确定。
在计算机系统中,可执行程序所看到的通常是虚拟存储器空间,即逻辑存储器空间。并且逻辑存储器空间通常被组织成逻辑存储器块(例如存储器页)的集合。逻辑存储器块的内容可能在物理存储器,即相应的物理存储器块中,也可能在其它辅助存储器中。计算机系统中通常具有映射机构(例如页表),用于在逻辑存储器块已加载到物理存储器的情况下,维护逻辑存储器块与物理存储器块的对应关系。映射机构可通过例如CPU 100的处理器来实现,也可通过专用的电路逻辑来实现。
交换控制器可通过确定数据所在的逻辑存储器块,根据对应关系确定相应的物理存储器块(称为源物理存储器块),来确定数据是否在第二存储器140中。
在步骤204,交换控制器通过系统总线110通知(例如通过交换命令)交换器150。交换器150响应该通知,经由传送总线126将在步骤202确定的源物理存储器块的内容与第一存储器中的物理存储器块(称为目的物理存储器块)的内容进行交换。例如,通知中可包含标识源物理存储器块的信息、标识目的物理存储器块的信息和定义其交换关系的信息。交换器150根据这些信息读取源物理存储器块的内容和目的物理存储器块的内容,并将读取的源物理存储器块的内容写入相应的目的物理存储器块,将读取的目的物理存储器块的内容写入相应的源物理存储器块。目的物理存储器块可根据各种原则来确定,例如可将当前未使用的物理存储器块,最近最少使用的物理存储器块,或根据预测技术预测的将来不使用或最少使用的物理存储器块确定为目的物理存储器块。
在可选实施例中,交换器也可实现在第一存储器130的存储器控制器122或第二存储器140的存储器控制器124中。此外,交换器可以在存储器中但与存储器控制器分立,或者位于第一和第二存储器之外并且与系统总线110和传送总线126相连。
由于进行内容交换,交换器150可包括缓冲器,用于在交换期间临时存储要先被覆写的物理存储器块的内容。在可选实施例中,也可以在第一存储器130或第二存储器140中预留出空间来作为缓冲器,或者将缓冲器设置在交换器150能够访问的其它位置。
在步骤206,交换控制器修改逻辑存储器块与物理存储器块的对应关系(例如页表)以反映所进行的交换,即反映交换后的逻辑存储器块与物理存储器块的对应关系。方法在步骤S208结束。
下面结合图3和图4对图2中的步骤202和206做示例性的说明。
图3A示意性地示出了在计算机系统上运行的操作系统所维护的页表。图3A中的页表表明,页号为A、B和C的页所对应的物理存储器页起始地址分别为0x00410、0x10234和0x00100。图3B示意性地示出了图3A中的页表所对应的存储器空间的情况。在图3B中,上半部分存储器空间(0x0000~0xffff)对应于第一存储器,下半部分存储器空间(0x10000~0x7ffff)对应于第二存储器。可以看出,页A和C存储在第一存储器中,页B存储在第二存储器中。交换控制器(例如操作系统或者某个运行时间库)可以在应用程序执行的同时,对接下来可能执行的指令进行预测。
如果预测到以下指令将要被执行,
Load_From(A[i]); //从A[i]加载数据,i为页内偏移
Process(); //对加载的数据进行数据处理
Store_To(A[i]); //将处理后的数据存入到A[i]
Load_From(B[i]); //从B[i]加载数据,i为页内偏移
Process(); //对加载的数据进行数据处理
Store_To(B[i]); //将处理后的数据存入到B[i]
则在上述指令中,检测出存储器访问指令Load_From(A[i])。根据图3A中的页表找出该存储器访问指令所要访问的数据的存储器地址,并判断该存储器地址是否落在第二存储器的地址范围内,其中,第二存储器的地址范围是已知的。在本例中,判断出所要访问的数据的地址没有落在第二存储器的地址范围内,此时不需要移动数据。类似的,可以检测出存储器访问指令Load_From(B[i])并且判断出该指令所要访问的数据被存储在第二存储器中。此时,可以在执行该指令之前,先执行第一存储器和第二存储器间的页的交换,例如将页B的内容与第一存储器中的页C交换,然后相应地修改页表。修改后的页表如图4A所示。页交换后的存储器空间如图4B所示。这可以利用公知的instrument(修改)技术在上述指令之前插入交换指令Switch(B,C)来实现。页交换和修改页表的步骤可以与应用程序本身并行执行。可以利用各种方法来选择用于交换的第一存储器中的页C,例如,可以选择最长时间未被访问的页。
如果没有准确预测到访问第二存储器的中的数据的指令,则当执行到该访问指令时,可以直接对第二存储器进行访问。而不需要将第二存储器中的内容传送到第一存储器中再执行该访问指令。也就是说,在“未命中”第一存储器中时,不需要将第二存储器中的内容“重加载”到第一存储器中然后再次访问。从而减少了访问的等待时间。
在预测指令的准确率很高时,存储器子系统整体的访问速率可以接近第一存储器的访问速率。
在一个优选实施例中,交换控制器可被配置为以在交换期间,禁止针对交换所涉及的物理存储器块的其它访问。例如,交换控制器可以利用操作系统或其它层次提供的锁机制对当前交换所涉及的逻辑或物理存储器块加锁,并且在完成交换和对应关系修改后解锁。也可以利用系统提供的其它互斥机制来代替锁机制。或者,交换控制器可以在将要开始执行一个代码执行单元(进程、线程、函数、程序等,或甚至是指令)之前完成该单元执行期间所要访问的第二存储器中的物理存储器块内容的交换,然后开始单元的执行。
交换控制器和交换器可通过软件、固件、硬件电路或其组合的方式来实现。此外,传送总线126可被其它连接(例如交换连接、网络连接)所取代,只要按照连接的规范将交换控制器、交换器和存储器控制器设计为连接上的设备。
虽然在前面的说明中将第一存储器和第二存储器描述为具有不同的访问速度,然而这种差异并不限于访问速度。第一存储器也可以具有优于第二存储器的可靠性,例如第一存储器是带纠错码校验的存储器,而第二存储器是不带纠错码校验或纠错能力较低的存储器。这种差异也可以体现在其它对于计算机存储器重要的性能指标上,也可以是各种性能指标的任意组合。
在本发明的实施例的设备和方法中,显然,各部件或各步骤是可以分解、组合和/或分解后重新组合的。这些分解、组合和/或重新组合应视为本发明的等效方案。
以上描述了本发明的优选实施方式。本领域的普通技术人员知道,本发明的保护范围不限于这里所公开的具体细节,而可以具有在本发明的精神实质范围内的各种变化和等效方案。
Claims (15)
1.一种用于计算机系统的存储器子系统,包括:
连接到系统总线的第一存储器和第二存储器,第一存储器具有优于第二存储器的性能;和
交换器,被配置为响应来自存储器子系统外部的交换命令,独立于系统总线地将交换命令中指定的第二存储器的至少一个物理存储器块和第一存储器的相应物理存储器块进行内容交换。
2.如权利要求1所述的存储器子系统,其中所述交换器位于第一存储器和第二存储器之外、或位于第一存储器中、或位于第二存储器中。
3.如权利要求1或2所述的存储器子系统,还包括缓冲器,用于在交换期间临时存储要先被覆写的物理存储器块的内容。
4.一种计算机系统,包括:
如权利要求1至3中任何一个所述的存储器子系统;
交换控制器,被配置为预先确定要访问的、位于第二存储器中的数据,通知交换器将包含所述数据的至少一个物理存储器块的内容与第一存储器中相应数目的物理存储器块的内容分别进行交换,并修改逻辑存储器块与物理存储器块的对应关系以反映所述交换。
5.如权利要求4所述的计算机系统,其中所述交换控制器被进一步配置为在所述交换期间,禁止针对所述交换涉及的物理存储器块的其它访问。
6.如权利要求4所述的计算机系统,其中所述交换控制器被进一步配置为选择当前未使用的物理存储器块,作为所述第一存储器中相应数目的物理存储器块。
7.如权利要求4所述的计算机系统,其中所述交换控制器被进一步配置为响应特定指令的执行来进行所述预先确定。
8.如权利要求4所述的计算机系统,其中所述交换控制器被进一步配置为通过分析指令来进行所述预先确定。
9.如权利要求4所述的计算机系统,其中所述逻辑存储器块与物理存储器块的对应关系通过页表来维护。
10.一种计算机系统中管理存储器子系统的方法,所述存储器子系统包括连接到系统总线的第一存储器和第二存储器,第一存储器具有优于第二存储器的性能,所述方法包括:
预先确定要访问的、位于第二存储器中的数据;
独立于系统总线地将包含所述数据的至少一个物理存储器块的内容与第一存储器中相应数目的物理存储器块的内容分别进行交换;和
修改逻辑存储器块与物理存储器块的对应关系以反映所述交换。
11.如权利要求10所述的方法,其中所述交换包括在交换期间临时存储要先被覆写的物理存储器块的内容。
12.如权利要求10所述的方法,其中所述交换包括在所述交换期间,禁止针对所述交换涉及的物理存储器块的其它访问。
13.如权利要求10所述的方法,其中所述交换包括选择当前未使用的物理存储器块,作为所述第一存储器中相应数目的物理存储器块。
14.如权利要求10所述的方法,其中响应特定指令的执行来进行所述预先确定。
15.如权利要求10所述的方法,其中通过分析指令来进行所述预先确定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100944648A CN101571831A (zh) | 2008-04-30 | 2008-04-30 | 存储器子系统及管理方法、包含该子系统的计算机系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100944648A CN101571831A (zh) | 2008-04-30 | 2008-04-30 | 存储器子系统及管理方法、包含该子系统的计算机系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101571831A true CN101571831A (zh) | 2009-11-04 |
Family
ID=41231190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100944648A Pending CN101571831A (zh) | 2008-04-30 | 2008-04-30 | 存储器子系统及管理方法、包含该子系统的计算机系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101571831A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107039073A (zh) * | 2016-02-04 | 2017-08-11 | 新唐科技股份有限公司 | 非依电性存储器装置及其操作方法 |
CN107748649A (zh) * | 2017-09-18 | 2018-03-02 | 北京京东尚科信息技术有限公司 | 一种缓存数据的方法和装置 |
CN113311989A (zh) * | 2020-02-26 | 2021-08-27 | 北京君正集成电路股份有限公司 | 一种基于并行使用的双片nand flash坏块管理方法 |
-
2008
- 2008-04-30 CN CNA2008100944648A patent/CN101571831A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107039073A (zh) * | 2016-02-04 | 2017-08-11 | 新唐科技股份有限公司 | 非依电性存储器装置及其操作方法 |
CN107748649A (zh) * | 2017-09-18 | 2018-03-02 | 北京京东尚科信息技术有限公司 | 一种缓存数据的方法和装置 |
CN113311989A (zh) * | 2020-02-26 | 2021-08-27 | 北京君正集成电路股份有限公司 | 一种基于并行使用的双片nand flash坏块管理方法 |
CN113311989B (zh) * | 2020-02-26 | 2023-09-22 | 北京君正集成电路股份有限公司 | 一种基于并行使用的双片nand flash坏块管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102612685B (zh) | 经由存储器高速缓存操纵的无阻碍数据传送 | |
US7340574B2 (en) | Method and apparatus for synchronizing an industrial controller with a redundant controller | |
CN100541455C (zh) | 使用请求调页技术的系统中减少页替换时间的方法和设备 | |
CN101326494A (zh) | 协调硬件事务存储器事务和软件事务存储器事务对存储单元的访问 | |
CN109952567B (zh) | 用于旁通高级dram存储器控制器的内部高速缓存的方法和装置 | |
CN101981541A (zh) | 使用闪存和有限功能存储器控制器来引导电子设备 | |
CN104346290A (zh) | 存储装置、计算机系统及其操作方法 | |
CN101369247A (zh) | 创建存储器缺陷映射表并使用该映射表优化性能的方法 | |
CN103383672A (zh) | 高速缓存控制以减少事务回滚 | |
CN101788922A (zh) | 基于辅助线程实现事务存储系统的方法和装置 | |
CN101847096B (zh) | 包含栈变量函数的优化方法 | |
CN110018787A (zh) | 基于ssd全系统的固件读写方法、装置和计算机设备 | |
US8433873B2 (en) | Disposition instructions for extended access commands | |
CN109213693A (zh) | 存储管理方法、存储系统和计算机程序产品 | |
CN101645034A (zh) | 用于检测数据存取违例的方法和装置 | |
CN101706788A (zh) | 一种嵌入式文件系统的跨区访问方法 | |
CN101571831A (zh) | 存储器子系统及管理方法、包含该子系统的计算机系统 | |
CN112835514B (zh) | 存储器系统 | |
CN107341049B (zh) | 一种事务处理的优化处理方法及装置 | |
WO2006027643A1 (en) | A virtual address cache and method for sharing data stored in a virtual address cache | |
EP3759606B1 (en) | An apparatus and method for accessing metadata when debugging a device | |
JP2005512192A (ja) | キャッシュメモリをメインメモリに同期させる方法 | |
CN115269199A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN110309075A (zh) | 存储器控制器以及具有存储器控制器的存储器系统 | |
CN114817085A (zh) | 一种存储器仿真系统、方法、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20091104 |