CN102150147A - 存储器服务器 - Google Patents
存储器服务器 Download PDFInfo
- Publication number
- CN102150147A CN102150147A CN2008801301901A CN200880130190A CN102150147A CN 102150147 A CN102150147 A CN 102150147A CN 2008801301901 A CN2008801301901 A CN 2008801301901A CN 200880130190 A CN200880130190 A CN 200880130190A CN 102150147 A CN102150147 A CN 102150147A
- Authority
- CN
- China
- Prior art keywords
- memory
- server
- remote
- services device
- servers
- 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
Classifications
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
一种存储器服务器为独立于存储器服务器的服务器提供远程存储器。该存储器服务器包括存储器模块和页面表。用于存储器服务器的存储器控制器为每个服务器分配存储器模块中的存储器并且管理服务器的远程存储器访问。页面表包括标识存储器模块和存储器模块中存储用于服务器的数据的位置的条目。
Description
背景技术
每个服务器依赖于物理存储器(诸如动态随机存取存储器(DRAM))进行处理。除了处理器之外,物理存储器是用于现代服务器的性能最关键的资源之一并且也构成服务器硬件总成本的重要部分。
当前,存储器模块与处理器一起位于服务器中的系统板上。如今,在每个系统板上提供越来越多的处理器,例如多核芯片。这要求甚至更多的存储器以适应数目增加的处理器的处理需要。然而,对更多存储器的要求增加了成本和尺寸要求。另外,与子系统如功率和冷却系统关联的成本由于对每个系统板上更多存储器的要求而增加。对于需要许多服务器的企业或者其它实体,这可能代表大量成本增加。已经提出存储器共享方案,比如在多个处理器之间共享存储器和其它方案。然而,这些方案往往实施起来困难并且成本高或者要求大量改变商品服务器、操作系统和存储器控制器。
附图说明
将参照以下附图在下文描述中具体描述本发明的实施例。
图1图示了根据一个实施例的系统;并且
图2图示了根据一个实施例的方法。
具体实施方式
为了简化和说明性的目的,实施例的原理通过主要参照其示例来描述。在下文描述中,阐述许多具体细节以便提供对实施例的透彻理解。然而,本领域普通技术人员将清楚可以实现实施例而不限于这些具体细节。在一些情况中,没有具体描述公知方法和结构以免不必要地使实施例模糊。
根据一个实施例,称为存储器服务器的仅有存储器的服务器(memory-only server)封装商品存储器模块的阵列并且可以由常规服务器经由共享底板(比如快速外围部件互连(PCIe)底板或者有线链路)来访问。存储器服务器提供可以由多个不同服务器共享的存储器池。每个服务器可以是独立的。例如,每个可以具有它自己的包括OS和应用的软件栈和/或在单独的系统板上。
这里也称为计算服务器的共享存储器服务器的常规服务器通常均包括硬件,比如一个系统板上的一个或者多个中央处理单元(CPU)或者核以及存储器模块。不同于常规服务器,存储器服务器无需包括CPU。可以以刀片服务器的形状规格提供存储器服务器或者可以以其它服务器形状规格(比如具有更大外壳的服务器)提供存储器服务器。存储器服务器无论形状规格如何都不包括相同系统板上的存储器和CPU。存储器服务器和计算服务器可以容纳于一个机箱(诸如数据中心机架或者其它机箱)中并且通过可以包括PCIe底板的连接进行通信。
与将CPU和存储器资源设在同一位置的现有方式相比,存储器服务器实现了计算和存储器服务器的独立供应和维护。另外,在一个刀片机箱中具有多个计算服务器共享的大型存储器资源池实现了在常规处理器/存储器服务器中不可行的全局功率、可靠性和容量管理。存储器服务器尤其提供以下益处:(1)允许灵活的、需求驱动的DRAM供应;(2)实现超紧凑的服务器形状规格;以及(3)在服务器之间共享的DRAM资源的全局优化。另外,存储器服务器中的存储器可以比常规服务器存储器更慢、成本更低和密度更低,从而导致成本节省。注意当光学互连用于在存储器服务器与其它服务器和计算机系统之间联网时存储器服务器尤其有益。
图1图示了根据一个实施例的系统100,该系统包括多个计算服务器110、存储器服务器101和将计算服务器110与存储器服务器101连接的连接120。计算服务器110可以是包括CPU 111和示为DIMM(双列直插存储器模块)的存储器114的常规服务器。与存储器服务器101上的远程存储器相反,存储器114称为本地存储器。本地存储器114例如是用于计算服务器的主存储器。根据一个实施例,计算服务器110具有比常规服务器更少的本地存储器,因为计算服务器110利用存储器服务器101中的存储器。在一个实施例中,CPU的物理地址空间是本地存储器114和存储器服务器101中的一部分存储器的集合。如本领域中所知,CPU的物理地址空间是CPU主控的OS所用的页面表从虚拟地址空间映射的物理地址空间。然而,在该实施例中,物理地址空间并不限于本地存储器,而是也包括存储器服务器101中的分配的远程存储器。由于有能力利用远程存储器(存储器服务器101中的存储器),所以计算服务器110可以具有较少的本地存储器。例如,常规服务器可以包括4个或者更多DIMM,但是计算服务器110可以用1个DIMM进行工作,从而实现了成本和空间的节省。也可以通过利用远程存储器来实现优于常规服务器的功率节省,这在下文进一步具体描述。
计算服务器110也包括本地存储器控制器113、将CPU 111连接到其它部件的系统总线112、本地交换机115和I/O交换机116。本地存储器控制器113处理来自CPU 111的用于存储器访问的请求。下文进一步具体描述本地存储器控制器113的功能。本地交换机115从本地存储器控制器113接收远程存储器访问请求并且管理那些请求,所述请求可以包括存放或者获取操作。本地交换机115也经由连接120在计算服务器与存储器服务器101之间提供接口。如果连接120包括PCIe迹线,则本地交换机115可以是添加有用于管理远程存储器请求的功能的PCIe桥。I/O交换机116是用于连接I/O设备的接口,所述I/O设备比如硬驱动器(例如串行附接SCSI(SAS))、图形控制器、管理处理器(比如iLO)等。
存储器服务器101包括远程交换机103和远程存储器控制器104。远程交换机103和远程存储器控制器104被标记为远程的,因为从计算服务器110的观点来看它们为远程设备。远程交换机103和远程存储器控制器104可以设在同一位置。远程交换机103可以是用作存储器服务器101的接口的PCIe桥。存储器服务器101也包括存储器池,该存储器池可以包括多组DIMM 105。可选地,可以在存储器服务器101中提供用作备用储存器的成组的闪速芯片107。
远程交换机103从每个计算服务器110的本地交换机接收页面读取和写入(获取和存放)请求。每个请求包括服务器ID、物理地址和请求类型(读/写)和实际数据(如果请求为写入的话)。远程存储器控制器104然后使用服务器ID和页面地址在远程页面表106中查找从而确定将存储该页面的实际DIMM的ID。远程存储器控制器104将存储器控制命令(如唤醒和页面打开)与数据一起发送到DIMM。为了节省功率,DIMM可以处于打盹(nap)模式中,比如处于DDR2(双数据速率2 RAM)的活动功率下降(active power down)模式,因而将需要数个周期来唤醒。然后,例如以高速缓存块粒度从DIMM读出数据并且将其发送回远程存储器控制器104。经由远程交换机103和连接120向请求的计算服务器传送回该数据。
为了优化性能,远程存储器控制器104可以从关键块(引起远程访问的块)开始传送回高速缓存块,而关键块一到达,请求的计算服务器就重新开始计算。这一优化称为关键块优先(CBF)。
为了减少成本,闪存107与DRAM(例如DIMM模块105)一起混合于存储器服务器101上,并且可以以页面粒度访问二者。在这一情况下,存储器服务器101将活动的计算服务器拥有的页面存储到DRAM中并且使用闪存106存储空闲的计算服务器拥有的页面。由于存储器服务器101被配置成满足所有计算服务器的典型的、常见情况的存储器要求,所以当所有计算服务器同时使用它们的全部存储器资源时可能很少访问和写入闪存106。因而,访问闪存106的可靠性和性能影响最小。
根据实施例,存在两种用于将存储器服务器中的存储器池实施为用于计算服务器的远程存储器的机制。在一个实施例中,该机制包括对计算服务器上的固件的最少调节,并且可以实施优化以减少远程存储器访问的延时。现在将这一实施例与用于配置远程存储器作为用于计算服务器110中的CPU 111的地址空间的存储器的配置过程一起描述。
在这一实施例中,通过控制固件设置将远程存储器和本地存储器聚集为从CPU111的观点来看的单个物理地址空间。如常规所知,OS管理将虚拟存储器映射到物理存储器的页面表。常规地,物理存储器仅为服务器中的主存储器,比如本地存储器114。在这一实施例中,物理存储器空间是存储器服务器101上的远程存储器和本地存储器114的集合。这一集合组成CPU 111的物理地址空间。因此,OS将虚拟地址映射到物理地址,其中一些物理地址指向远程存储器。此外,在这一实施例中,使用固件设置和本地存储器控制器113来使得一些物理地址指向远程存储器这一事实对于CPU 111是透明的。通过透明性,CPU 111发送请求以访问指向远程存储器的物理地址如同该物理地址指向本地存储器那样。CPU和OS并不知道哪些地址为本地而哪些地址为远程的。在其它实施例中,OS了解哪些地址为本地而哪些地址为远程的,从而使OS能够针对数据放置做出智能判决。
固件设置的一个示例是包括如下数据的寄存器117,该数据将某些物理地址标识为本地存储器中的地址和远程存储器中的物理地址。可以通过BIOS将寄存器117配置为将一组物理地址标识为处于远程设备(在这一情况下为存储器服务器101)中并且本地交换机115然后用于对存储器服务器101进行远程访问。本地存储器控制器113访问这一寄存器以确定从CPU将存储器访问请求发送到何处。寄存器117的一个示例是用于AMD处理器的MTRR寄存器。寄存器117可以驻留于在引导期间可访问的持久储存器中。
注意当CPU向远程存储器请求数据时,进行通过本地存储器控制器113和本地交换机115的远程存储器访问以从存储器服务器101取回数据。当数据从存储器服务器101传送到计算服务器时,本地存储器控制器113将数据放在本地存储器114中以供CPU访问。本地存储器控制器113向OS通知本地存储器114中的存储器位置,因而可以更新用于OS的页面表以反映取回的数据的新物理存储器位置。可能需要进行页面收回(例如基于随机替换算法)以在本地存储器114中为取回的数据提供空间。而且,当由于在本地存储器114中未命中而导致需要远程存储器请求时,如果在进行高速缓存则可以在进行远程存储器访问之前针对请求的数据检查可能驻留于本地交换机115中的本地高速缓存或者缓冲器。
在图2中示出了根据一个实施例的配置过程。作为示例描述用于配置系统100并且具体地配置计算服务器110和存储器服务器101以便实现利用本地和远程存储器的存储器聚集的该配置过程。
在步骤201-203,向系统100通电。这包括在步骤202和203向计算服务器111和存储器服务器101通电。
可为每个计算服务器所用的远程存储器的量取决于至少两个因素:(1)共享存储器刀片的计算服务器的数目,和(2)安装于存储器服务器上的总存储器(包括DRAM和闪存)的量。存储器服务器101在步骤204检测活动地连接到它的计算服务器的数目以及在步骤205检测安装于存储器服务器101中的存储器的量。
在步骤206,存储器服务器101例如通过在计算服务器之间均匀分布存储器或者根据一些其它策略来计算每个计算服务器的远程存储器大小。
在步骤207,存储器服务器101向计算服务器110发送存储器量。这是起初向每个计算服务器分配的远程存储器的量。这可以包括向每个计算服务器发送存储器量的指示。
在步骤208,基于分配的远程存储器的量来配置固件设置。例如,固件设置被配置成包括与分配的远程存储器的量对应的物理存储器地址范围,并且相应地更新寄存器116。
在步骤209,在每个计算服务器上引导OS,并且OS页面表包括到远程存储器的映射。例如,在每个计算服务器上的OS在引导时读取可以是BIOS寄存器的寄存器117。OS识别的物理存储器总大小等于本地安装的DRAM(比如本地存储器114)与分配的远程存储器大小之和。OS设置它的页面表,因而在本地存储器范围以外、但是在总存储器范围内的物理地址是存储器映射(memory-mapped)的I/O、但是仍然可高速缓存。这些页面被存储器映射为I/O使得本地交换机115将负责服务于向它们的请求,同时仍然可高速缓存以减少长延时的存储器映射的I/O操作的数目。
不同策略可以用来确定存储器向计算服务器的分配。而且,可以实施一种策略进行初始分配,比如存储器在活动计算服务器之间的相等分配。然而,由于各种因素,可以根据不同策略来再分配存储器。例如,可以向活动度更高的计算服务器分配更多的存储器。
在用于将存储器服务器中的存储器池实施为用于计算服务器的远程存储器的第二机制中,OS知道哪些物理存储器地址用于远程存储器。OS因此能够进行关于什么数据本地存储而什么数据远程存储的智能判决。例如,将本地存储可能更经常或者在若干周期内需要的数据。
在第二机制的这一实施例中,从OS的观点来看将本地存储器和远程存储器配置为2级存储器。第一级存储器为本地存储器114并且用来存储频繁访问的页面。第二级存储器为存储器服务器101中的远程存储器并且用来存储从本地存储器114收回的页面。本地存储器114总是满足CPU/OS存储器请求。在本地存储器114中的未命中使远程页面迁移到本地存储器114中并且因而将本地页面替换为来自远程存储器的页面。各种替换策略可以用来选择牺牲页面。随机替换简易并且在与更高级替换策略如LRU(最近最少使用)比较时可以提供相当的性能。
在这一实施例中,可以修改内核或者使用代理或者线程以标识和访问远程存储器。在另一实施例中,OS访问远程存储器如同远程存储器为I/O设备(如盘)那样。此外,注意上文参照图2描述的配置过程可以用于第二机制以同样向计算服务器分配远程存储器。然而,可能不配置固件设置。
如上文所述,一种用于改进远程存储器访问延时的优化是CBF,该CBF无需CPU和存储器芯片中的定制改变。对于CBF,本地交换机115包括页面缓冲器表,该页面缓冲器表存储在从存储器服务器101到计算服务器的途中的有限数目的迁移页面。在该表中的每个条目包含(1)页面的基本物理地址、(2)跟踪这一页面中的什么高速缓存块已经到来的块存在位矢量和(3)页面内容。
如参照图2所述,本地存储器控制器113被配置成将作为存储器映射的I/O访问的远程存储器引用路由到本地交换机115。本地交换机115提取被请求页面的基本地址并且在其页面缓冲器表中查找它。如果未命中,则将向存储器服务器101发送请求,该请求触发到页面缓冲器表中的CBF数据传送。如果它在本地交换机115的页面缓冲器表中命中,则无论何时请求的块到来(这样的信息记录于块存在位矢量中)都将向CPU发送回响应消息。当整个页面已经到来时,本地交换机115可以转移到OS中以(1)选择用于替换的牺牲页面并且触发向存储器服务器101的页面传送、(2)用刚到的被请求页面再填充替换的页面帧,并且(3)更新CPU的存储器管理单元(MMU,经常实施为TLB)以反映这样的改变。然后将本地服务于向新安装页面的后续请求。
如果很少访问远程存储器,则可能适合的是进行检错扫描(比如存储器刷洗)而无需常常增添DRAM成本的高速硬件实施。由于在存储器服务器101上的存储器资源经常利用不足,所以在有故障的DIMM上的数据可以迁移到另一DIMM而无需再引导或者系统崩溃。当这样的故障积累至达到指定阈值时,向系统管理员发送警告消息,该管理员判决何时关闭服务器和替换可以由LED指示器标记的有故障的DIMM。
由于各个计算服务器可能具有异类的工作负荷和改变的利用水平,所以可能罕见的是所有计算服务器同时使用所有它们的分配的远程存储器。为了利用这一性质,可以过量使用(over-commit)存储器服务器101上的存储器以减少成本,同时其余容量由成本为1/4且非易失性的闪存支持。存储器服务器101将用于利用不足的计算服务器的页面放入闪存中并且在DRAM中保持来自活动的、高度利用的计算服务器的页面。
存储器服务器101允许容量和功率优化。一种这样的优化是无需修改计算服务器110即可进行的存储器压缩。远程存储器控制器104在从计算服务器110收回页面时即时压缩页面内容并且将多个压缩页面存储到一个物理页面中。存储器压缩所节省的空间可以潜在地用来通过在多个DIMM模块中复制存储器页面来增强存储器可靠性。为了支持这样的优化,页面表106倍增页面条目数目。
当页面从计算服务器的本地存储器114收回到存储器服务器101中时,存储器服务器101中的远程存储器控制器104可以在页面被传送之时计算页面签名(经常实施为页面内容的散列函数)。这一签名可以存储于远程页面表106中并且作为后台任务与新到页面比较。如果两个签名匹配,则很可能两个页面具有相同内容。另一比较然后可以用来确认相同内容,比如逐字比较。用于相同页面的一个拷贝存储于存储器中,从而大量释放存储器资源。可以在远程页面表106中为每个拷贝创建条目,但是该条目指向存储器服务器101上的相同存储器位置。
存储器服务器架构以两种方式减少功率消耗:通过减少汲取功率的DRAM的总量、以及通过实现在共享存储器服务器上扩展使用较低功率的DRAM部件和模式。在页面粒度,对存储器服务器的访问可能不那么频繁,并且它们的延时受通过连接120的传送时间支配。结果,当然可以使存储器模块105处于活动功率下降模式中,这在DDR2中将功率减少90%以上,从而仅需相对少的延时代价(6个DRAM周期)以在每个访问时唤醒必要设备和存储体一次以取得相当于整个页面的数据。类似地,远程存储器控制器104可以在请求之间处于打盹模式中以节省功率,其中用于唤醒的延时代价可忽略不计。
如果计算服务器仅在它的本地存储器114中未命中时访问存储器服务器101(这与正常存储器访问相比频率低得多),则可以在多个计算服务器之间共享一个客户端侧PCIe交换机。例如,本地交换机115可以在计算机服务器外部并且由多个计算服务器共享。因而每个PCIe x4通信信道将用来在存储器服务器101与多个计算服务器之间传送页面,这增加计算服务器与存储器服务器之间的比率并且减少底板面积要求。
这里描述的方法的一个或者多个步骤和这里描述的其它步骤可以实施为嵌入在计算机可读介质如存储器和/或数据储存器上并且在计算机系统上如由处理器执行的软件。步骤可以由一个或者多个计算机程序实施,这些计算机程序可以以活动和不活动的多种形式存在。例如,它们可以作为软件程序存在,该软件程序包括用于执行一些步骤的以源代码、目标代码、可执行代码为格式或者其它格式的程序指令。上述任何一种可以实施于包括存储设备的计算机可读介质上。适当计算机可读存储设备的示例包括常规计算机系统RAM(随机存取存储器)、ROM(只读存储器)、EPROM(可擦除可编程ROM)、EEPROM(电可擦除可编程ROM)和磁盘或磁带或光盘或者光带。
尽管已经参照示例描述了实施例,但是本领域技术人员将能够对描述的实施例进行各种修改而不脱离要求保护的实施例的范围。
Claims (15)
1.一种系统,包括:
多个服务器,每个服务器包括一个或者多个中央处理单元(CPU)和本地存储器;
存储器服务器,远离所述多个服务器定位并且包括由所述多个服务器通过连接共享的远程存储器池,其中所述多个服务器中的每个服务器相互独立并且独立于所述存储器服务器;以及
远程存储器控制器,其中所述远程存储器控制器从所述存储器池向所述多个服务器分配远程存储器,其中用于在所述多个服务器中的每个服务器上运行的操作系统(OS)的物理地址空间包括它的分配的远程存储器和它的本地存储器的集合。
2.根据权利要求1所述的系统,其中对于每个OS,所述OS使用的一些虚拟存储器地址映射到与用于所述CPU的所分配的远程存储器关联的物理地址。
3.根据权利要求1所述的系统,其中所述池中的远程存储器的共享至少由在所述远程存储器控制器处的地址转换控制并且对于所述OS是透明的。
4.根据权利要求3所述的系统,其中所述多个服务器均包括固件设置,所述固件设置允许所述本地存储器控制器将用于所述地址空间的物理地址标识为所分配的远程存储器中的地址。
5.根据权利要求4所述的系统,其中所述固件设置包括BIOS使用的寄存器中的数据,所述数据表明映射到虚拟地址空间的物理地址空间的一部分在所分配的远程存储器中。
6.根据权利要求3所述的系统,还包括用于每个服务器的本地交换机,所述本地交换机经由所述连接提供到所述远程存储器的接口。
7.根据权利要求6所述的系统,其中所述本地交换机被配置成实施关键块优先(CBF)策略,其中向CPU提供取回的用于远程存储器请求的关键块,同时仍在取回用于所述请求的其它页面。
8.根据权利要求7所述的系统,其中块存在矢量被更新以表明哪些块已经到来并且在操作中由所述CPU使用,并且所述到来的块能够高速缓存于处理器高速缓存中。
9.根据权利要求1所述的系统,其中每个OS被配置成识别哪些物理地址对应于存储器服务器中的远程存储器,并且所述OS被配置为基于包括远程存储器访问延时的一个或者多个因素做出关于将数据存储在本地存储器还是存储在远程存储器中的判决。
10.根据权利要求1所述的系统,还包括通过以下中的一个或多个来节约功率:通过减少汲取功率的DRAM总量以及通过实现在所述存储器服务器上扩展使用较低功率的DRAM部件和模式。
11.一种存储器服务器,用于为相互独立并且独立于所述存储器服务器的多个服务器提供远程存储器,所述存储器服务器包括:
存储器模块;
存储器控制器,其为所述多个服务器中的每个服务器分配所述存储器模块中的存储器并且管理所述多个服务器的远程存储器访问,其中每个服务器使用所分配的存储器作为它的物理地址空间的一部分;以及
包括条目的页面表,所述条目标识所述存储器模块和所述存储器模块中存储用于所述多个服务器的数据的位置。
12.根据权利要求11所述的存储器服务器,还包括:
交换机,其经由光学互连连接为所述存储器服务器提供到所述多个服务器的接口,其中所述交换机从所述多个服务器接收页面读取和写入请求并且所述请求由所述存储器控制器管理。
13.根据权利要求12所述的存储器服务器,还包括:
闪存,其中所述存储器控制器标识所述多个服务器中的活动度较低的一个或者多个服务器并且将用于那些服务器的数据从存储器模块迁移到所述闪存。
14.一种方法,包括:
确定共享远程存储器服务器上的存储器的服务器的数目;
为每个服务器分配所述存储器服务器上的一定量的存储器;
向每个服务器发送对应分配的存储器量的指示,其中在每个服务器上的OS使用所述分配的存储器作为物理存储器并且所述物理存储器包括用于所述OS的物理地址空间的一部分;并且
基于所述服务器中的一个或者多个服务器对所述存储器服务器的远程访问为所述一个或者多个服务器再分配所述存储器的量。
15.根据权利要求14所述的方法,还包括:
对于所述一个或者多个服务器中的每个服务器,在远离所述一个或者多个服务器中的每个服务器的存储器控制器处进行地址转换,其中所述地址转换包括将用于每个服务器的虚拟地址转换成用于对应分配的量的存储器的物理地址,并且所述地址转换对于运行于所述一个或者多个服务器中的每个服务器上的OS是透明的。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2008/069168 WO2010002411A1 (en) | 2008-07-03 | 2008-07-03 | Memory server |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102150147A true CN102150147A (zh) | 2011-08-10 |
Family
ID=41466261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008801301901A Pending CN102150147A (zh) | 2008-07-03 | 2008-07-03 | 存储器服务器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9575889B2 (zh) |
CN (1) | CN102150147A (zh) |
WO (1) | WO2010002411A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617126A (zh) * | 2013-12-03 | 2014-03-05 | 曙光信息产业(北京)有限公司 | 存储器系统组件的配置方法和装置 |
CN103907108A (zh) * | 2012-10-25 | 2014-07-02 | 华为技术有限公司 | 共享闪存的方法、控制器及系统 |
CN104750559A (zh) * | 2013-12-27 | 2015-07-01 | 英特尔公司 | 跨多节点的存储器资源的池化 |
CN105224059A (zh) * | 2014-06-25 | 2016-01-06 | 宏碁股份有限公司 | 远端存取数据的方法以及本地端装置 |
CN105388355A (zh) * | 2015-12-03 | 2016-03-09 | 国家电网公司 | 一种运用gps同步的地网分流矢量测试系统及测试方法 |
CN108351832A (zh) * | 2015-11-09 | 2018-07-31 | 国际商业机器公司 | 实现用于存储写入高速缓存管理的硬件加速器 |
CN109196829A (zh) * | 2016-07-01 | 2019-01-11 | 英特尔公司 | 远程存储器操作 |
CN110622145A (zh) * | 2017-05-15 | 2019-12-27 | 莫列斯有限公司 | 可重新配置的服务器以及具有可重新配置的服务器的服务器机架 |
Families Citing this family (83)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8463934B2 (en) * | 2009-11-05 | 2013-06-11 | Rj Intellectual Properties, Llc | Unified system area network and switch |
US20110289332A1 (en) * | 2010-05-24 | 2011-11-24 | Advanced Micro Devices, Inc. | Method and apparatus for power management in a multi-processor system |
WO2012015430A1 (en) | 2010-07-30 | 2012-02-02 | Hewlett-Packard Development Company, L.P. | Computer system and method for sharing computer memory |
WO2012015432A1 (en) | 2010-07-30 | 2012-02-02 | Hewlett-Packard Development Company, L.P. | Computer system and method for sharing computer memory |
US9710426B2 (en) | 2010-07-30 | 2017-07-18 | Hewlett Packard Enterprise Development Lp | Computer system and method for sharing computer memory |
US8793427B2 (en) | 2011-02-10 | 2014-07-29 | Hewlett-Packard Development Company, L.P. | Remote memory for virtual machines |
EP3451176B1 (en) | 2011-09-30 | 2023-05-24 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy having different operating modes |
EP2761480A4 (en) | 2011-09-30 | 2015-06-24 | Intel Corp | APPARATUS AND METHOD FOR IMPLEMENTING MULTINIVE MEMORY HIERARCHY ON COMMON MEMORY CHANNELS |
US9342453B2 (en) | 2011-09-30 | 2016-05-17 | Intel Corporation | Memory channel that supports near memory and far memory access |
US9600416B2 (en) | 2011-09-30 | 2017-03-21 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy |
US20130166672A1 (en) * | 2011-12-22 | 2013-06-27 | International Business Machines Corporation | Physically Remote Shared Computer Memory |
KR20130109426A (ko) * | 2012-03-27 | 2013-10-08 | 삼성전자주식회사 | 메모리 확장 장치 및 그것을 사용하는 휴대용 모바일 장치 |
US10019371B2 (en) | 2012-04-27 | 2018-07-10 | Hewlett Packard Enterprise Development Lp | Data caching using local and remote memory |
US8868672B2 (en) * | 2012-05-14 | 2014-10-21 | Advanced Micro Devices, Inc. | Server node interconnect devices and methods |
WO2013178269A1 (de) * | 2012-05-31 | 2013-12-05 | Siemens Aktiengesellschaft | Kommunikation zweier clients über einen server |
CN104508647B (zh) * | 2012-06-08 | 2018-01-12 | 慧与发展有限责任合伙企业 | 用于扩大超大规模计算系统的存储器容量的方法和系统 |
US9137173B2 (en) | 2012-06-19 | 2015-09-15 | Advanced Micro Devices, Inc. | Devices and methods for interconnecting server nodes |
US8930595B2 (en) | 2012-06-21 | 2015-01-06 | Advanced Micro Devices, Inc. | Memory switch for interconnecting server nodes |
US9712373B1 (en) * | 2012-07-30 | 2017-07-18 | Rambus Inc. | System and method for memory access in server communications |
US9253287B2 (en) | 2012-08-20 | 2016-02-02 | Advanced Micro Devices, Inc. | Speculation based approach for reliable message communications |
US8875256B2 (en) | 2012-11-13 | 2014-10-28 | Advanced Micro Devices, Inc. | Data flow processing in a network environment |
US9965185B2 (en) | 2015-01-20 | 2018-05-08 | Ultrata, Llc | Utilization of a distributed index to provide object memory fabric coherency |
US10372335B2 (en) | 2014-09-16 | 2019-08-06 | Kove Ip, Llc | External memory for virtualization |
US10275171B2 (en) | 2014-09-16 | 2019-04-30 | Kove Ip, Llc | Paging of external memory |
US9626108B2 (en) | 2014-09-16 | 2017-04-18 | Kove Ip, Llc | Dynamically provisionable and allocatable external memory |
EP3248105B1 (en) * | 2015-01-20 | 2023-11-15 | Ultrata LLC | Object based memory fabric |
US11086521B2 (en) | 2015-01-20 | 2021-08-10 | Ultrata, Llc | Object memory data flow instruction execution |
US9886410B1 (en) * | 2015-02-04 | 2018-02-06 | Amazon Technologies, Inc. | Dynamic function assignment to I/O device interface port |
US9910813B1 (en) * | 2015-02-04 | 2018-03-06 | Amazon Technologies, Inc. | Single function using multiple ports |
US10454845B2 (en) * | 2015-04-22 | 2019-10-22 | ColorTokens, Inc. | Object memory management unit |
US10698628B2 (en) | 2015-06-09 | 2020-06-30 | Ultrata, Llc | Infinite memory fabric hardware implementation with memory |
US9886210B2 (en) | 2015-06-09 | 2018-02-06 | Ultrata, Llc | Infinite memory fabric hardware implementation with router |
US9971542B2 (en) | 2015-06-09 | 2018-05-15 | Ultrata, Llc | Infinite memory fabric streams and APIs |
WO2017100288A1 (en) | 2015-12-08 | 2017-06-15 | Ultrata, Llc. | Memory fabric operations and coherency using fault tolerant objects |
US10248337B2 (en) | 2015-12-08 | 2019-04-02 | Ultrata, Llc | Object memory interfaces across shared links |
EP3387547B1 (en) | 2015-12-08 | 2023-07-05 | Ultrata LLC | Memory fabric software implementation |
US10241676B2 (en) | 2015-12-08 | 2019-03-26 | Ultrata, Llc | Memory fabric software implementation |
US11086525B2 (en) | 2017-08-02 | 2021-08-10 | Kove Ip, Llc | Resilient external memory |
US10496548B2 (en) | 2018-02-07 | 2019-12-03 | Alibaba Group Holding Limited | Method and system for user-space storage I/O stack with user-space flash translation layer |
US10831404B2 (en) * | 2018-02-08 | 2020-11-10 | Alibaba Group Holding Limited | Method and system for facilitating high-capacity shared memory using DIMM from retired servers |
US11379155B2 (en) | 2018-05-24 | 2022-07-05 | Alibaba Group Holding Limited | System and method for flash storage management using multiple open page stripes |
WO2020000136A1 (en) | 2018-06-25 | 2020-01-02 | Alibaba Group Holding Limited | System and method for managing resources of a storage device and quantifying the cost of i/o requests |
US20190042511A1 (en) * | 2018-06-29 | 2019-02-07 | Intel Corporation | Non volatile memory module for rack implementations |
US10748603B2 (en) | 2018-09-28 | 2020-08-18 | Intel Corporation | In-memory multiply and accumulate with global charge-sharing |
US10877752B2 (en) | 2018-09-28 | 2020-12-29 | Intel Corporation | Techniques for current-sensing circuit design for compute-in-memory |
US11048434B2 (en) | 2018-09-28 | 2021-06-29 | Intel Corporation | Compute in memory circuits with time-to-digital computation |
US11061735B2 (en) | 2019-01-02 | 2021-07-13 | Alibaba Group Holding Limited | System and method for offloading computation to storage nodes in distributed system |
US10922234B2 (en) | 2019-04-11 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive |
US11169873B2 (en) | 2019-05-21 | 2021-11-09 | Alibaba Group Holding Limited | Method and system for extending lifespan and enhancing throughput in a high-density solid state drive |
US11169930B2 (en) | 2019-05-28 | 2021-11-09 | Micron Technology, Inc. | Fine grain data migration to or from borrowed memory |
US11061819B2 (en) | 2019-05-28 | 2021-07-13 | Micron Technology, Inc. | Distributed computing based on memory as a service |
US10860223B1 (en) | 2019-07-18 | 2020-12-08 | Alibaba Group Holding Limited | Method and system for enhancing a distributed storage system by decoupling computation and network tasks |
US11126561B2 (en) | 2019-10-01 | 2021-09-21 | Alibaba Group Holding Limited | Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive |
US20210019069A1 (en) * | 2019-10-21 | 2021-01-21 | Intel Corporation | Memory and storage pool interfaces |
US11042307B1 (en) | 2020-01-13 | 2021-06-22 | Alibaba Group Holding Limited | System and method for facilitating improved utilization of NAND flash based on page-wise operation |
US11449455B2 (en) | 2020-01-15 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility |
US10872622B1 (en) | 2020-02-19 | 2020-12-22 | Alibaba Group Holding Limited | Method and system for deploying mixed storage products on a uniform storage infrastructure |
US10923156B1 (en) | 2020-02-19 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive |
US11150986B2 (en) | 2020-02-26 | 2021-10-19 | Alibaba Group Holding Limited | Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction |
US11144250B2 (en) | 2020-03-13 | 2021-10-12 | Alibaba Group Holding Limited | Method and system for facilitating a persistent memory-centric system |
US11200114B2 (en) | 2020-03-17 | 2021-12-14 | Alibaba Group Holding Limited | System and method for facilitating elastic error correction code in memory |
US11385833B2 (en) | 2020-04-20 | 2022-07-12 | Alibaba Group Holding Limited | Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources |
US11281575B2 (en) | 2020-05-11 | 2022-03-22 | Alibaba Group Holding Limited | Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks |
US11461262B2 (en) | 2020-05-13 | 2022-10-04 | Alibaba Group Holding Limited | Method and system for facilitating a converged computation and storage node in a distributed storage system |
US11494115B2 (en) | 2020-05-13 | 2022-11-08 | Alibaba Group Holding Limited | System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC) |
US11218165B2 (en) | 2020-05-15 | 2022-01-04 | Alibaba Group Holding Limited | Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM |
US11507499B2 (en) | 2020-05-19 | 2022-11-22 | Alibaba Group Holding Limited | System and method for facilitating mitigation of read/write amplification in data compression |
US11556277B2 (en) | 2020-05-19 | 2023-01-17 | Alibaba Group Holding Limited | System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification |
US11263132B2 (en) | 2020-06-11 | 2022-03-01 | Alibaba Group Holding Limited | Method and system for facilitating log-structure data organization |
US11567679B2 (en) | 2020-06-15 | 2023-01-31 | Rambus Inc. | Concurrent remote-local allocation operations |
US11422931B2 (en) | 2020-06-17 | 2022-08-23 | Alibaba Group Holding Limited | Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization |
US11354200B2 (en) | 2020-06-17 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating data recovery and version rollback in a storage device |
US11354233B2 (en) | 2020-07-27 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating fast crash recovery in a storage device |
US11372774B2 (en) | 2020-08-24 | 2022-06-28 | Alibaba Group Holding Limited | Method and system for a solid state drive with on-chip memory integration |
US11487465B2 (en) | 2020-12-11 | 2022-11-01 | Alibaba Group Holding Limited | Method and system for a local storage engine collaborating with a solid state drive controller |
US11734115B2 (en) | 2020-12-28 | 2023-08-22 | Alibaba Group Holding Limited | Method and system for facilitating write latency reduction in a queue depth of one scenario |
US11416365B2 (en) | 2020-12-30 | 2022-08-16 | Alibaba Group Holding Limited | Method and system for open NAND block detection and correction in an open-channel SSD |
US11726699B2 (en) | 2021-03-30 | 2023-08-15 | Alibaba Singapore Holding Private Limited | Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification |
US11461173B1 (en) | 2021-04-21 | 2022-10-04 | Alibaba Singapore Holding Private Limited | Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement |
US11476874B1 (en) | 2021-05-14 | 2022-10-18 | Alibaba Singapore Holding Private Limited | Method and system for facilitating a storage server with hybrid memory for journaling and data storage |
KR20230111055A (ko) * | 2022-01-17 | 2023-07-25 | 한국전자통신연구원 | 분할운용 컴퓨팅 시스템 및 방법 |
WO2023184224A1 (en) * | 2022-03-30 | 2023-10-05 | Intel Corporation | Techniques to utilize near memory compute circuitry for memory-bound workloads |
CN115079803B (zh) * | 2022-05-20 | 2024-03-29 | 上海瑞浦青创新能源有限公司 | 一种适用于微控制器的异常掉电数据保存装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1118959A (zh) * | 1994-08-23 | 1996-03-20 | 国际商业机器公司 | 提供多媒体信息的半导体存储器服务器 |
US7043623B2 (en) * | 2003-01-22 | 2006-05-09 | Intelitrac, Inc. | Distributed memory computing environment and implementation thereof |
CN101001260A (zh) * | 2006-01-12 | 2007-07-18 | 三星电子株式会社 | 存储和恢复远程用户接口的状态信息的方法和设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5426747A (en) * | 1991-03-22 | 1995-06-20 | Object Design, Inc. | Method and apparatus for virtual memory mapping and transaction management in an object-oriented database system |
US5765181A (en) * | 1993-12-10 | 1998-06-09 | Cray Research, Inc. | System and method of addressing distributed memory within a massively parallel processing system |
US20040243769A1 (en) * | 2003-05-30 | 2004-12-02 | Frame David W. | Tree based memory structure |
US7480773B1 (en) * | 2005-05-02 | 2009-01-20 | Sprint Communications Company L.P. | Virtual machine use and optimization of hardware configurations |
KR20070071849A (ko) * | 2005-12-30 | 2007-07-04 | 브이케이 주식회사 | 공유메모리를 이용한 서버 시스템 |
US20100161929A1 (en) * | 2008-12-18 | 2010-06-24 | Lsi Corporation | Flexible Memory Appliance and Methods for Using Such |
-
2008
- 2008-07-03 WO PCT/US2008/069168 patent/WO2010002411A1/en active Application Filing
- 2008-07-03 CN CN2008801301901A patent/CN102150147A/zh active Pending
- 2008-07-03 US US12/993,926 patent/US9575889B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1118959A (zh) * | 1994-08-23 | 1996-03-20 | 国际商业机器公司 | 提供多媒体信息的半导体存储器服务器 |
US7043623B2 (en) * | 2003-01-22 | 2006-05-09 | Intelitrac, Inc. | Distributed memory computing environment and implementation thereof |
CN101001260A (zh) * | 2006-01-12 | 2007-07-18 | 三星电子株式会社 | 存储和恢复远程用户接口的状态信息的方法和设备 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103907108A (zh) * | 2012-10-25 | 2014-07-02 | 华为技术有限公司 | 共享闪存的方法、控制器及系统 |
CN103907108B (zh) * | 2012-10-25 | 2017-07-07 | 华为技术有限公司 | 共享闪存的方法、控制器及系统 |
CN103617126A (zh) * | 2013-12-03 | 2014-03-05 | 曙光信息产业(北京)有限公司 | 存储器系统组件的配置方法和装置 |
CN103617126B (zh) * | 2013-12-03 | 2017-11-28 | 曙光信息产业(北京)有限公司 | 存储器系统组件的配置方法和装置 |
CN104750559B (zh) * | 2013-12-27 | 2019-10-11 | 英特尔公司 | 跨多节点的存储器资源的池化 |
CN104750559A (zh) * | 2013-12-27 | 2015-07-01 | 英特尔公司 | 跨多节点的存储器资源的池化 |
US9977618B2 (en) | 2013-12-27 | 2018-05-22 | Intel Corporation | Pooling of memory resources across multiple nodes |
CN105224059A (zh) * | 2014-06-25 | 2016-01-06 | 宏碁股份有限公司 | 远端存取数据的方法以及本地端装置 |
CN105224059B (zh) * | 2014-06-25 | 2018-05-15 | 宏碁股份有限公司 | 远端存取数据的方法以及本地端装置 |
CN108351832A (zh) * | 2015-11-09 | 2018-07-31 | 国际商业机器公司 | 实现用于存储写入高速缓存管理的硬件加速器 |
CN108351832B (zh) * | 2015-11-09 | 2022-07-29 | 国际商业机器公司 | 实现用于存储写入高速缓存管理的硬件加速器 |
CN105388355A (zh) * | 2015-12-03 | 2016-03-09 | 国家电网公司 | 一种运用gps同步的地网分流矢量测试系统及测试方法 |
CN109196829B (zh) * | 2016-07-01 | 2021-09-03 | 英特尔公司 | 远程存储器操作 |
CN109196829A (zh) * | 2016-07-01 | 2019-01-11 | 英特尔公司 | 远程存储器操作 |
CN110622145A (zh) * | 2017-05-15 | 2019-12-27 | 莫列斯有限公司 | 可重新配置的服务器以及具有可重新配置的服务器的服务器机架 |
CN110622145B (zh) * | 2017-05-15 | 2023-06-13 | 莫列斯有限公司 | 可重新配置的服务器以及服务器机架 |
US11907152B2 (en) | 2017-05-15 | 2024-02-20 | Molex, Llc | Reconfigurable server and server rack with same |
Also Published As
Publication number | Publication date |
---|---|
US9575889B2 (en) | 2017-02-21 |
WO2010002411A1 (en) | 2010-01-07 |
US20110072204A1 (en) | 2011-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102150147A (zh) | 存储器服务器 | |
JP6009589B2 (ja) | マルチレベルのキャッシュ階層におけるキャストアウトを低減するための装置および方法 | |
TWI784084B (zh) | 資料管理方法、多處理器系統以及非暫態電腦可讀取儲存媒體 | |
US8412907B1 (en) | System, method and computer program product for application-level cache-mapping awareness and reallocation | |
US9128847B2 (en) | Cache control apparatus and cache control method | |
CN101593160B (zh) | 减少来自侦听过滤器的后无效事务 | |
CN100422959C (zh) | 用于交错存储器的系统和方法 | |
US8176282B2 (en) | Multi-domain management of a cache in a processor system | |
US7076609B2 (en) | Cache sharing for a chip multiprocessor or multiprocessing system | |
US7552288B2 (en) | Selectively inclusive cache architecture | |
US6965970B2 (en) | List based method and apparatus for selective and rapid cache flushes | |
US20080005516A1 (en) | Memory power management through high-speed intra-memory data transfer and dynamic memory address remapping | |
US20110161597A1 (en) | Combined Memory Including a Logical Partition in a Storage Memory Accessed Through an IO Controller | |
US20120102273A1 (en) | Memory agent to access memory blade as part of the cache coherency domain | |
CN102804152A (zh) | 对存储器层次结构中的闪存的高速缓存一致性支持 | |
US7197605B2 (en) | Allocating cache lines | |
CN111684435A (zh) | 实施于存储器系统中的通过消息传递接口的存储器存取通信 | |
US7721047B2 (en) | System, method and computer program product for application-level cache-mapping awareness and reallocation requests | |
KR101474842B1 (ko) | 쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법 및 이를 이용한 캐시 서브시스템을 가지는 정보 처리 장치 | |
CN109213693A (zh) | 存储管理方法、存储系统和计算机程序产品 | |
CN113711193A (zh) | 用以存取存储器子系统中的高速缓存数据的队列中的优先级调度 | |
US9058270B2 (en) | False sharing detection logic for performance monitoring | |
KR102570030B1 (ko) | 멀티프로세서 시스템 및 이의 데이터 관리 방법 | |
US20230052700A1 (en) | Memory expansion with persistent predictive prefetching | |
US20240061786A1 (en) | Systems, methods, and apparatus for accessing data in versions of memory pages |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110810 |
|
RJ01 | Rejection of invention patent application after publication |