TW201706859A - Memory systems - Google Patents

Memory systems Download PDF

Info

Publication number
TW201706859A
TW201706859A TW105109013A TW105109013A TW201706859A TW 201706859 A TW201706859 A TW 201706859A TW 105109013 A TW105109013 A TW 105109013A TW 105109013 A TW105109013 A TW 105109013A TW 201706859 A TW201706859 A TW 201706859A
Authority
TW
Taiwan
Prior art keywords
memory
controller
identifier
router
unit
Prior art date
Application number
TW105109013A
Other languages
Chinese (zh)
Inventor
路易斯M 法奎羅剛拉茲
光輝 羅
Original Assignee
惠普發展公司有限責任合夥企業
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 惠普發展公司有限責任合夥企業 filed Critical 惠普發展公司有限責任合夥企業
Publication of TW201706859A publication Critical patent/TW201706859A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A memory system is described which comprises a plurality of memory modules. Each memory module comprises a non-volatile memory unit; and a controller to access information stored in the non-volatile memory unit in response to a request from a processor, to deliver accessed information to the processor, and to communicate with controllers of other memory modules. The controllers are connected so as to form a peer-to-peer network. Each given memory module is associated with a memory address range which is non-overlapping with a memory address range associated with any memory module to which the given memory module is directly connected.

Description

記憶體系統 Memory system

本發明係有關於記憶體系統。 The present invention is related to a memory system.

非依電性記憶體乃是即使未供電仍可保持所儲存資訊的電腦記憶體。電腦系統將非依電性記憶體(NVM)用於長期永續儲存。在一些系統中,非依電性記憶體係設置於遠離使用該非依電性記憶體之處理器處,例如設置於遠端資料中心中,相較於專門使用位處該處理器本機之記憶體,有可能實現一更大的儲存容量。 Non-electrical memory is a computer memory that retains stored information even when it is not powered. Computer systems use non-electrical memory (NVM) for long-term, sustainable storage. In some systems, the non-electrical memory system is disposed away from the processor that uses the non-electrical memory, such as in a remote data center, compared to the memory of the processor local to the dedicated memory. It is possible to achieve a larger storage capacity.

依據本發明之一實施例,係特地提出一種包含有複數個記憶體模組之記憶體系統,其中各記憶體模組包含有:一非依電性記憶體單元;以及一控制器,該控制器係用來回應於一來自一處理器之請求以存取該非依電性記憶體單元中所儲存之資訊、將所存取之資訊遞送至該處理器、以及與其他記憶體模組之控制器進行通訊;其中該等控制器係連接成用來形成一同級間記憶體模組網路,以及其中各給定記憶體模組係與一記憶體位址範圍相關聯,該記憶體位址範圍及一與任何直接連接至該給定記憶體模組之記 憶體模組相關聯的記憶體位址範圍未重疊。 According to an embodiment of the present invention, a memory system including a plurality of memory modules is provided, wherein each memory module includes: a non-electric memory unit; and a controller, the control The device is configured to respond to a request from a processor to access information stored in the non-volatile memory unit, to deliver the accessed information to the processor, and to control other memory modules Communicating; wherein the controllers are coupled to form an inter-level memory module network, and wherein each of the given memory modules is associated with a memory address range, the memory address range and One with any record directly connected to the given memory module The memory address ranges associated with the memory module do not overlap.

1‧‧‧記憶體系統 1‧‧‧ memory system

2‧‧‧第一記憶體組件 2‧‧‧First memory component

3‧‧‧第二記憶體組件 3‧‧‧Second memory component

10‧‧‧記憶體模組 10‧‧‧ memory module

20‧‧‧路由器控制器 20‧‧‧ router controller

21‧‧‧符片引導子 21‧‧‧Function guide

22‧‧‧單元引導子 22‧‧‧Unit Guide

23、24‧‧‧訊息 23, 24‧‧‧Information

25‧‧‧資訊 25‧‧‧Information

26‧‧‧事件通知訊息 26‧‧‧Event notification message

301~307、401~408‧‧‧程序塊 301~307, 401~408‧‧‧ program block

現將參照附圖藉由非限制實例的方式來說明實例,其中圖1乃是一例示性記憶體系統之一簡化示意圖;圖2繪示一由一例示性記憶體系統所用之例示性路由安排協定;圖3乃是將一控制器聯結至一例示性記憶體系統之同級間網路之一種方法之一實例之一流程圖;以及圖4乃是一種用於存取一例示性記憶體系統中所儲存資訊之例示方法之一流程圖。 An example will now be described by way of non-limiting example, in which FIG. 1 is a simplified schematic diagram of an exemplary memory system; FIG. 2 illustrates an exemplary routing arrangement for use with an exemplary memory system. Protocol; Figure 3 is a flow diagram of one example of a method of coupling a controller to an inter-network of an exemplary memory system; and Figure 4 is an example of accessing an exemplary memory system A flow chart of one of the exemplary methods of storing information in the medium.

許多運算任務涉及大規模資料量之處理。為了因應此等大規模資料集,可使用具有多個核心之處理器及/或連結之處理器網路,而且資源可儲存在位於進行該處理處遠端之記憶體資源中。然而,此類布置結構涉及遠端位置之間頻繁的資料轉送。存取遠端記憶體資源所涉及的時間抵消處理器速度提升效果,使得縮減資料處理的時間額外負荷有所困難。 Many computing tasks involve the processing of large amounts of data. In order to accommodate such large-scale data sets, a processor network having multiple cores and/or connections may be used, and resources may be stored in memory resources located remotely from the processing. However, such an arrangement involves frequent data transfer between remote locations. The time involved in accessing the remote memory resource counteracts the processor speed boosting effect, making it less difficult to reduce the extra load of data processing time.

近來在光子方面的進步已對外部記憶體資源實現光學連接。此類光學互連導致延遲減小且頻寬可能更高,使得對遠端記憶體資源之存取與本機存取幾乎一樣快。因此,一將散布於一資料中心之數個機架(或甚至是散布於數個資料中心)之多個不同記憶體資源整合起來的「記憶體組 織架構」成為可能。 Recent advances in photonics have enabled optical connections to external memory resources. Such optical interconnects result in reduced latency and higher bandwidth, making access to remote memory resources almost as fast as native access. Therefore, a "memory group" that integrates multiple different memory resources scattered in several racks of a data center (or even scattered among several data centers) Weaving the architecture" is possible.

然而,出自不同廠商之記憶體資源可能使用各種不同的實體與虛擬記憶體協定。一包含有出自不同廠商之記憶體資源的記憶體組織架構因此可包含有一組有可能令該記憶體組織架構中所含括之所有此等廠商及解決方案彼此間進行處理器-記憶體通訊的協定。 However, memory resources from different vendors may use a variety of different entities and virtual memory agreements. A memory organization architecture comprising memory resources from different vendors may therefore comprise a set of processor-memory communication that is likely to cause all such vendors and solutions included in the memory organization to communicate with each other. agreement.

可設想的是,變更一給定記憶體組織架構之構成舉例而言,對新增或移除記憶體資源可能產生功效,或在該組織架構中所包含之記憶體資源失效時可能產生功效。再者,可動態變更管理、利用及存取特性。取決於使用的核心數及手邊的應用,最適合一給定處理器的記憶體在該應用之排程場合可能改變或可能無法取用。一記憶體組織架構在設計方面待解決的挑戰因此在於提供一種高度靈活的記憶體管理系統,使其可以反應該記憶體組織架構中該等記憶體資源之系統狀態變化、及存取該記憶體組織架構之處理器之執行階段行為變化。 It is conceivable that changing the composition of a given memory organization structure may have an effect on adding or removing memory resources, or may be effective when memory resources contained in the organization structure fail. Furthermore, management, utilization, and access characteristics can be dynamically changed. Depending on the number of cores used and the application at hand, the memory that is best suited for a given processor may or may not be available in the application's scheduling. The challenge of designing a memory organization architecture in terms of design is therefore to provide a highly flexible memory management system that can reflect system state changes of the memory resources in the memory organization architecture and access the memory. Changes in the execution phase of the processor of the organizational structure.

一「隨插即用」裝置乃是一種具有一規格之週邊電腦組件,該規格在該裝置連接至一電腦系統時,容許該電腦系統自動發現並且安裝該裝置。一隨插即用裝置通常可在一電腦系統正在運作時連接至該電腦系統、及與該電腦系統斷接。 A "plug and play" device is a peripheral computer component having a specification that allows the computer system to automatically discover and install the device when it is connected to a computer system. A plug-and-play device can typically be connected to and disconnected from a computer system while a computer system is in operation.

以下說明的是一種使一非依電性記憶體組件能夠動態加入一記憶體系統(諸如一記憶體組織架構)之系統的實例,此加入方式類似於將一隨插即用裝置連接至一電 腦系統。所述實例提供一種NVM系統,其中該記憶體系統之組態無論採何種方式,都不局限於一存取該記憶體之處理器。這意味著一記憶體組件可從一個記憶體系統拔出,並且連接至一不同的記憶體系統,在運作及整合方面將會與連接至該原始記憶體系統時如出一轍。 Illustrated below is an example of a system that enables a non-electrical memory component to be dynamically added to a memory system, such as a memory organization, similar to connecting a plug-and-play device to an electrical device. Brain system. The example provides an NVM system in which the configuration of the memory system is not limited to a processor that accesses the memory, regardless of the manner. This means that a memory component can be pulled from a memory system and connected to a different memory system, which will be identical in operation and integration to the original memory system.

圖1展示一記憶體系統1之一實例。記憶體系統1包含有複數個記憶體模組10。在這項實例中,記憶體模組10係分布於一第一記憶體組件2與一第二記憶體組件3之間。第一記憶體組件2與第二記憶體組件3可(但並非一定)彼此遠端而置。各記憶體模組10包含有一非依電性記憶體(NVM)單元及一控制器。各控制器係用來回應於一來自一處理器之請求以存取該非依電性記憶體單元中所儲存之資訊、將所存取之資訊遞送至該處理器、以及與其他記憶體模組之控制器進行通訊。該等控制器係連接成用來形成一同級間網路。該等控制器藉此在一同級間網路中包含有同級物。 FIG. 1 shows an example of a memory system 1. The memory system 1 includes a plurality of memory modules 10. In this example, the memory module 10 is distributed between a first memory component 2 and a second memory component 3. The first memory component 2 and the second memory component 3 may, but need not, be remote from each other. Each memory module 10 includes a non-electrical memory (NVM) unit and a controller. Each controller is responsive to a request from a processor to access information stored in the non-volatile memory unit, to deliver the accessed information to the processor, and to other memory modules The controller communicates. The controllers are connected to form an inter-network. The controllers thereby include peers in the network between peers.

在一同級間網路中將該等記憶體模組控制器連結為同級物能夠使該記憶體系統以分散方式自主發現並且組配該系統的新記憶體模組(即已在最近提供之與該同級間網路中至少一個控制器通訊之記憶體模組)。因此,此記憶體系統係規模可調,並且可容許個別記憶體模組失效。再者,例示性記憶體系統不需要使用有線互連件或記憶體交換器。這些特徵之組合有可能聯合按另一種方式獨立之NVM單元(即包含有不同實體裝置、及/或位在不同地理位置、及/或彼此沒有連接之NVM單元)的記憶體空間。由此 等例示性記憶體系統所建立的聯合記憶體空間對於一外部處理器看起來像是單一記憶體空間,即使此系統中所包含之記憶體模組有變化亦然。 The interconnection of the memory module controllers into peers in an inter-network can enable the memory system to autonomously discover and assemble new memory modules of the system in a decentralized manner (ie, has recently been provided with a memory module for communicating with at least one controller in the network of the same level). Therefore, this memory system is scalable in size and can tolerate the failure of individual memory modules. Furthermore, the exemplary memory system does not require the use of wired interconnects or memory switches. Combinations of these features make it possible to combine memory spaces of NVM units that are independent of each other (ie, NVM units that contain different physical devices, and/or are located in different geographic locations, and/or are not connected to each other). thus The joint memory space created by the exemplary memory system appears to the external processor to be a single memory space, even if the memory modules included in the system change.

各記憶體模組係與一記憶體位址範圍相關聯。在一些實例中,各記憶體模組係與唯一記憶體位址範圍相關聯。這些記憶體位址範圍乃是依靠此記憶體系統所使用之基本協定所啟用之一定址架構來動態指定。在一些實例中,與一給定記憶體模組相關聯之記憶體位址範圍乃是在將記憶體模組之該控制器聯結至該同級間網路期間作判斷。在一些實例中,一給定記憶體模組之控制器係用來在該記憶體模組初始連接至一記憶體系統(此程序可看起來類似於尋找一IP網路中之一可用子範圍)時,判斷該記憶體模組之一記憶體位址範圍。在一些此類實例中,該控制器係藉由連絡鄰近控制器(即直接連接至新聯結控制器之控制器)並取得其記憶體映像,用來尋找可用的記憶體位址範圍,因此可判斷可用的記憶體位址範圍(即未由任何鄰近控制器使用之記憶體位址範圍)。 Each memory module is associated with a memory address range. In some examples, each memory module is associated with a unique memory address range. These memory address ranges are dynamically specified by the address structure enabled by the basic protocol used by this memory system. In some examples, the memory address range associated with a given memory module is determined during the connection of the controller of the memory module to the inter-network. In some examples, a controller of a given memory module is used to initially connect to a memory system in the memory module (this program may look similar to finding one of the available sub-ranges in an IP network) When determining the memory address range of one of the memory modules. In some such instances, the controller is able to determine the range of available memory addresses by contacting the proximity controller (ie, the controller directly connected to the new junction controller) and taking its memory map. The range of available memory addresses (ie, the range of memory addresses not used by any neighboring controllers).

一給定記憶體模組之控制器可宣傳與該記憶體模組相關聯(且從而由該記憶體模組所管理)之記憶體位址範圍。在一些實例中,一給定記憶體模組之控制器係用來宣傳該記憶體模組的功能。在一些此類實例中,所宣傳之功能包括有下列任一者或全部:尺寸(即記憶體容量)、技術、安裝日期、故障位址等。 A controller of a given memory module can propagate a range of memory addresses associated with (and thus managed by) the memory module. In some instances, a controller of a given memory module is used to promote the functionality of the memory module. In some such instances, the advertised functions include any or all of the following: size (ie, memory capacity), technology, installation date, fault address, and the like.

各控制器係與一角色相關聯,其中該角色乃是下 列其中一者:路由器、交換器、及普通記憶體。一與該路由器角色相關聯之控制器將會在下文稱為一路由器控制器,一與該交換器角色相關聯之控制器將會在下文稱為一交換器控制器,而一與該普通記憶體角色相關聯之控制器將會在下文稱為一普通記憶體控制器。一例示性記憶體系統1包含有十二個普通記憶體控制器(在圖1中以字母「M」表示)、三個交換器控制器(在圖1中以字母「S」表示)及兩個路由器控制器(在圖1中以字母「R」表示)。各記憶體組件2、3包含有單一路由器控制器R。 Each controller is associated with a role, where the role is One of the columns: routers, switches, and normal memory. A controller associated with the router role will be referred to hereinafter as a router controller, and a controller associated with the switch role will be referred to hereinafter as a switch controller, and a common memory The controller associated with the body role will be referred to below as a normal memory controller. An exemplary memory system 1 includes twelve ordinary memory controllers (indicated by the letter "M" in FIG. 1), three switch controllers (indicated by the letter "S" in FIG. 1), and two Router controllers (indicated by the letter "R" in Figure 1). Each memory component 2, 3 includes a single router controller R.

各路由器控制器儲存一繞送表,該繞送表包含有該同級間網路中每個其他路由器控制器之一識別符,各路由器控制器還根據該所儲存之繞送表用來繞送(例如源自一處理器之)記憶體存取請求。各交換器控制器係用來將記憶體存取請求轉發至該同級間網路中之每個其他控制器。與在一IP網路中相似,在一些實例中,一些連網之記憶體模組可將記憶體存取請求轉發至所有此等連接之記憶體模組(進行交換),而一些連結之記憶體模組可基於繞送表(以類似於IP網路中路由器之方式)來繞送記憶體存取請求。普通記憶體控制器可不進行繞送或交換功能。 Each router controller stores a routing table, the routing table includes an identifier of each of the other router controllers in the network of the same level, and each router controller is further configured to circulate according to the stored routing table. A memory access request (eg, from a processor). Each switch controller is used to forward memory access requests to each of the other controllers in the peer network. Similar to an IP network, in some instances, some networked memory modules can forward memory access requests to all of these connected memory modules (for swapping), while some linked memories The body module can route memory access requests based on a wrap-around table (similar to a router in an IP network). The normal memory controller does not perform the bypass or exchange function.

各路由器控制器係與唯一識別符相關聯。在一些實例中,此記憶體系統之一操作員將此等識別符手動指定予該等路由器控制器。在一些實例中,將識別符指定予路由器控制器係藉由該記憶體系統之一管理層來進行。在一些實例中,該同級間網路於一分散式雜湊表(DHT)中儲存此 等識別符。在一些實例中,此等識別符係均勻分布於一識別符空間中。一均勻分布舉例而言,可藉由將一給定路由器控制器之識別符設定為一廠商指定組件ID(例如與該路由器控制器相關聯之該NVM單元之廠商指定組件ID)之密碼編譯雜湊來達成。 Each router controller is associated with a unique identifier. In some instances, one of the memory system operators manually assigns such identifiers to the router controllers. In some instances, assigning an identifier to the router controller is performed by a management layer of the memory system. In some examples, the peer network stores this in a Decentralized Hash Table (DHT) Etc. In some instances, the identifiers are evenly distributed in an identifier space. For example, a uniform distribution can be compiled by setting the identifier of a given router controller to the password of a vendor-specified component ID (eg, the vendor-specified component ID of the NVM unit associated with the router controller). To reach.

在一些實例中,該等識別符係於一識別符環中排序,使得各控制器在該識別符環中具有一前導子及一後繼子。在一些實例中,各控制器可例如根據該記憶體系統之一路由安排協定,將維生訊息週期性發送至其前導子及其後繼子。 In some examples, the identifiers are ordered in an identifier loop such that each controller has a leader and a successor in the identifier loop. In some examples, each controller may periodically schedule a live message to its predecessor and its successor, for example, according to one of the memory system routing protocols.

此例示性記憶體系統1可使用各種路由安排協定。現將參照圖2說明一適合的路由安排協定之一實例。 This exemplary memory system 1 can use a variety of routing protocols. An example of a suitable routing arrangement will now be described with reference to FIG.

此例示性路由安排協定包含有一種單躍方案,其中一記憶體系統(例如圖1之記憶體系統1)之全部路由器控制器20形成一環,而每個路由器控制器20維持一含有與該環中每個其他路由器控制器20有關資訊的完整繞送表。各該繞送表中的資訊舉例而言,可包含有下列任何一者或全部:該環中之位置,記憶體範圍、尺寸、技術與故障組件彙總、其直接連接之(所有角色之)控制器之ID等。 The exemplary routing protocol includes a single-hop scheme in which all router controllers 20 of a memory system (e.g., memory system 1 of FIG. 1) form a ring, and each router controller 20 maintains a containment and A complete routing table of information about each of the other router controllers 20. For example, the information in the routing table may include any or all of the following: location in the ring, memory range, size, summary of technical and fault components, and direct connection (all roles) control ID of the device, etc.

各路由器控制器20係與一隨機128位元組件識別符相關聯,並且該等識別符係於一識別符環中以2^128為模進行排序。 Each router controller 20 is associated with a random 128-bit component identifier, and the identifiers are ordered in an identifier loop modulo 2^128.

該記憶體系統之詢問成功率取決於路由器控制器20之繞送表中資訊的準確度。若要維持正確的本機資訊 (即與其後繼子及前導子有關的資訊),各給定路由器控制器n週期性運行一穩定化例行程序,其中該給定路由器控制器將維生訊息發送至其後繼子s及前導子p。收到此一維生訊息時,後繼子s(例如藉由比較n之識別符與其繞送表中所儲存之前導子識別符來)檢查n是否的確為其前導子,若不是,則後繼子s通知n兩者之間存在另一路由器控制器。類似的是,從n收到一維生訊息時,p(例如藉由比較n的識別符與其繞送表中所儲存的後繼子識別符來)檢查n是否的確為其後繼子,若否,則通知n。若sp任一者未對一維生訊息作出回應,則n不斷地偵測未回應組件,直到一逾時週期已屆滿為止。逾時週期屆滿時,n裁決未回應組件無法連絡或已死亡。 The query success rate of the memory system depends on the accuracy of the information in the routing table of the router controller 20. To maintain correct local information (ie, information related to its successors and predecessors), each given router controller n periodically runs a stabilization routine in which the given router controller sends a live message To its successor s and the leading dep . Upon receipt of the one-dimensional message, the successor s (for example by comparing the identifier of n with the previous derivation identifier stored in the routing table) checks whether n is indeed its leading, if not, the successor s inform n that there is another router controller between the two. Similarly, when a one-dimensional message is received from n , p (for example, by comparing the identifier of n with the subsequent child identifier stored in the round table), it is checked whether n is indeed its successor, if not, Then notify n . If either s or p does not respond to the one-dimensional message, n continuously detects the unresponsive component until a timeout period has expired. When the timeout period expires, the n ruling does not respond to the component being unable to contact or has died.

若要維持對(例如因為一記憶體組件加入或移離該記憶體系統而)聯結或離開該同級間網路之控制器作出回應之完整繞送表,網路隸屬變更事件(例如聯結與離開)之通知應該在一指定時間量內抵達該網路中之每個路由器控制器20。此類通知可源自一控制器,該控制器係直接連接至一新加入記憶體模組之控制器、或係原來(即移除前)直接連接至一新移除記憶體模組之控制器。在一些實例中,該指定時間係基於網路尺寸(即該識別符環中路由器控制器的數量),並且可小於一秒。此例示性路由安排協定按照以下方式達成這點。 To maintain a complete routing table that responds (eg, because a memory component is added to or removed from the memory system) to the controller that is connected or leaves the peer network, the network is subject to a change event (eg, join and leave) The notification should arrive at each router controller 20 in the network within a specified amount of time. Such notifications may originate from a controller that is directly connected to a controller that is newly added to the memory module, or that is directly connected to a new removable memory module (ie, before removal). Device. In some examples, the specified time is based on the network size (ie, the number of router controllers in the identifier ring) and can be less than one second. This exemplary routing protocol achieves this in the following manner.

該128位元圓形識別符空間係區分成k個等相連間隔,下文稱為符片。k可由該記憶體系統之一操作員來選 擇。k舉例來說,可基於下列任何一者或全部來選擇:網路拓樸結構、所服務的使用者、足以防止全體失效的可用性程度等。在一資料中心中,舉例來說,k可選擇成使得沒有路由器控制器是出自同一符片中該資料中心之同一區域。在圖2的實例中,該識別符環係(以虛線A)區分成兩個符片,所以k=2。第i個符片目前含有識別符落在範圍 內之該同級間網路中的所有路由器控制器 20。由於路由器控制器20具有均勻分布的隨機識別符,各符片於任何給定時間,將會包含有約與各其他符片相同數量之路由器控制器20。 The 128-bit circular identifier space is divided into k consecutive intervals, hereinafter referred to as a slice. k can be selected by one of the operators of the memory system. k, for example, may be selected based on any or all of the following: a network topology, a user served, a degree of availability sufficient to prevent overall failure, and the like. In a data center, for example, k can be selected such that no router controller is from the same area of the data center in the same tile. In the example of Figure 2, the identifier ring system (in dotted line A) is divided into two slices, so k = 2. The i- th note currently contains an identifier that falls within the scope. All router controllers 20 in the same inter-network. Since router controller 20 has a uniformly distributed random identifier, each tile will contain approximately the same number of router controllers 20 as each of the other tiles at any given time.

該路由安排協定為各符片定義一符片引導子21。該符片引導子係動態定義為所具有之一識別符即為該符片範圍中點處識別符之後繼子的路由器控制器。若一符片包含有偶數個識別符,使得沒有識別符對應於一精準中點,則將一所具有之一識別符最靠近該中點之路由器控制器定義為該符片引導子。舉例而言,第i個符片之符片引導子乃 是具有識別符之路由器控制器的後繼子。 The routing arrangement defines a slice guide 21 for each tile. The slice guide subsystem is dynamically defined as having one of the identifiers of the router controller that is the successor of the identifier at the midpoint of the slice range. If a note contains an even number of identifiers such that no identifier corresponds to a precise midpoint, then a router controller having one of the identifiers closest to the midpoint is defined as the slice guide. For example, the i- th slice of the slice guide is an identifier. The successor of the router controller.

類似的是,各符片係區分成稱為單元之等尺寸相連間隔。在一些實例中,各符片係區分成log(k)個單元。為了簡單起見,在圖2的實例中,各符片係(以虛線B)區分成兩個單元。該路由安排協定為各單元定義一單元引導子22。該單元引導子係動態定義為所具有之一識別符即為該單元 範圍中點處識別符之後繼子的路由器控制器。若一單元含有偶數個識別符,使得沒有識別符對應於一精準中點,則將一所具有之一識別符最靠近該中點之路由器控制器定義為該單元引導子。 Similarly, each tile is divided into equal-sized intervals called cells. In some instances, each tile is divided into log (k) cells. For the sake of simplicity, in the example of Figure 2, each tile system (in dotted line B) is divided into two cells. The routing arrangement defines a unit leader 22 for each unit. The unit guiding subsystem is dynamically defined as having one of the identifiers is the unit The router controller of the successor at the midpoint of the range. If a unit contains an even number of identifiers such that no identifier corresponds to a precise midpoint, then a router controller having one of the identifiers closest to the midpoint is defined as the unit leader.

回應於一聯結該同級間網路之新控制器,該新聯結控制器從其鄰近者其中一者接收與該符片引導子及該單元引導子有關的資訊(例如該符片引導子及該單元引導子的識別符),另外還接收與該鄰近路由器控制器所負責有關資料的其他資訊、及該鄰近路由器控制器之繞送表。 Responding to a new controller that is coupled to the peer network, the new controller receives information related to the tile leader and the unit leader from one of its neighbors (eg, the tile guide and the The identifier of the unit booter) additionally receives other information related to the data of the neighboring router controller and the routing table of the neighboring router controller.

各符片引導子21進行以下功能: Each of the slice guides 21 performs the following functions:

- 從該同級間網路中之其他路由器控制器接收事件通知。 - Receive event notifications from other router controllers in the peer network.

- 在一第一預定時段範圍內匯集所接收事件通知。該第一預定時間可基於例如該環之尺寸、單元尺寸、該記憶體系統所使用的技術、壅塞狀況等。在一些實例中,該第一預定時段的等級為數十秒。 - Aggregating received event notifications within a first predetermined time period. The first predetermined time may be based, for example, on the size of the ring, the size of the unit, the technology used by the memory system, the congestion condition, and the like. In some examples, the level of the first predetermined time period is tens of seconds.

- 當該第一預定時段過後,將一含有該等所匯集事件通知之第一匯集訊息發送至該同級間網路中之各其他符片引導子。 - After the first predetermined time period has elapsed, a first aggregate message containing the aggregated event notifications is sent to each of the other tile guides in the peer network.

- 從其他符片引導子接收第一匯集訊息。 - Receive the first aggregated message from other slice guides.

- 在一第二預定時段範圍內匯集所接收第一匯集訊息。該第二預定時段可按照經驗來判斷。在一些實例中,該第二預定時段比該第一預定時段大一個幅度等級。 - assembling the received first aggregated message within a second predetermined time period. The second predetermined time period can be judged empirically. In some examples, the second predetermined time period is one magnitude greater than the first predetermined time period.

- 當該第二預定時段過後,將一含有該等所匯集第一匯集訊息之第二匯集訊息發送至其符片中所包含該等單元之該等單元引導子。 - after the second predetermined time period has elapsed, transmitting a second aggregate message containing the aggregated first aggregated messages to the unit guides of the cells included in the slice.

各單元引導子22進行以下功能: Each unit leader 22 performs the following functions:

- 將維生訊息週期性發送至其後繼子。 - Periodically send a live message to its successor.

- 將維生訊息週期性發送至其前導子。 - Periodically send a live message to its leading predecessor.

- 從一符片引導子接收第二匯集訊息。 - Receive a second aggregated message from a one-leaf guide.

- 連同一維生訊息將一所接收第二匯集訊息發送至其後繼子及其前導子。 - The same live message sends a received second aggregate message to its successor and its predecessors.

既非一符片引導子也非一單元引導子之各路由器控制單元進行以下功能: Each router control unit that is neither a one-chip leader nor a one-unit leader performs the following functions:

- 將維生訊息週期性發送至其後繼子。 - Periodically send a live message to its successor.

- 將維生訊息週期性發送至其前導子。 - Periodically send a live message to its leading predecessor.

- 從其後繼子及其前導子其中一者接收一第二匯集訊息。 - receiving a second collection message from one of its successors and its predecessors.

- 連同一維生訊息將一所接收第二匯集訊息發送至其後繼子及其前導子其中另一者。 - The same live message sends a received second aggregate message to the other of its successor and its predecessor.

因此,在此實例中,回應於一路由器控制器20(例如經由上述穩定化例行程序)偵檢其後繼子之失效或其具有一新後繼子,其將一事件通知訊息26發送至其符片引導子21。符片引導子21收集其從其本身符片中之路由器控制器20接收到的所有事件通知26,並且將這些事件通知匯集一預定時段,之後將一含有該等所匯集事件通知之訊息23(一第一匯集訊息)發送至各其他符片引導子。各符片引導子21收集其從其中符片引導子21接收到的所有第一匯集訊息23,並且將這些第一匯集訊息匯集一預定時段,之後將一含有該等所匯集第一匯集訊息之訊息24(一第二匯集訊息)發送至其符片中之各單元引導子22。各單元引導子22在收到一第二匯集訊息24時,將該第二匯集訊息中所含有之資訊25發送至其在一維生訊息上所背載之後繼子及前導子。 Thus, in this example, in response to a router controller 20 (e.g., via the stabilization routine described above) detecting the failure of its successor or having a new successor, it sends an event notification message 26 to its symbol. Slice guide 21. The slice guide 21 collects all event notifications 26 that it receives from the router controller 20 in its own package, and notifies these event collections for a predetermined period of time, after which a message 23 containing the aggregated event notifications is received ( A first aggregate message is sent to each of the other slice guides. Each of the fragment guides 21 collects all of the first aggregated messages 23 received therefrom from the signature guide 21, and collects the first aggregated messages for a predetermined period of time, and then includes a first aggregated message containing the collected Message 24 (a second aggregate message) is sent to each unit leader 22 in its slice. When receiving the second aggregation message 24, each unit guide 22 sends the information 25 contained in the second aggregation message to its subsequent operator and the preamble carried on the one-dimensional message.

非為一符片引導子或一單元引導子之各路由器控制器順著單一方向傳播資訊25,亦即,資訊若是接收自一前導子,則予以發送到一後繼子,反之亦然。因此,從單元引導子22收到資訊25時,各非引導子路由器控制器20 將資訊25發送到其在一維生訊息上背載之後繼子(若該單元後繼子是其前導子)或前導子(若該單元引導子是其後繼子)任一者。位處單元邊界之路由器控制器20(即同一單元內沒有一後繼子、或沒有一前導子之路由器控制器)未將資訊25發送至其單元外之路由器控制器。依此作法,該同級間網路中之所有路由器控制器接收所有事件之所有事件通知,但在一單元資訊裡,一直是從單元引導子22流動至該單元之末端。 Each router controller that is not a slice guide or a unit guide propagates information 25 in a single direction, that is, if the information is received from a leader, it is sent to a successor, and vice versa. Therefore, when the information 25 is received from the unit guide 22, each non-boot sub-router controller 20 The message 25 is sent to either of its successor (if the unit's successor is its predecessor) or the preamble (if the unit's leader is its successor). The router controller 20 located at the cell boundary (i.e., the router controller without a successor or the same in the same cell) does not send the information 25 to the router controller outside its cell. In this way, all router controllers in the peer network receive all event notifications for all events, but in a unit of information, it always flows from the unit leader 22 to the end of the unit.

上述例示性路由安排協定導致符片引導子21比其他路由器控制器有更多待進行的工作。這在一些記憶體系統中可能產生問題,例如這些記憶體系統屬於不良供應系統而使得一路由器控制器具有一大規模記憶體空間(等同於一IP網路中一ISP之一骨幹路由器)的情況。為了克服此問題,在一些實例中,使用一不同的路由安排協定(下文稱為「超組件路由安排協定」)。該超組件路由安排協定例如藉由提供連接與供應方面的預定義準則,將「超組件」定義為連接妥當且供應妥當的控制器。一新聯結路由器控制器在聯結程序期間若符合該預定義準則,則予以指定為一「超組件」。在此等實例中,一超組件環係平行於「普通」識別符環而建立。該符片引導子係定義為該超組件環中之路由器控制器,該路由器控制器乃是與符片範圍中點處之識別符相關聯之路由器控制器的後繼子(此中點路由器控制器可位在該超組件環或該普通環任一者中)。該超組件路由安排協定之其他態樣與用於段落25至37中所述例示性路 由安排協定者相同。 The exemplary routing protocol described above results in the slice leader 21 having more work to do than other router controllers. This can cause problems in some memory systems, such as a poor provisioning system that allows a router controller to have a large memory space (equivalent to one of the ISP's backbone routers in an IP network). To overcome this problem, in some instances, a different routing arrangement (hereinafter referred to as a "super component routing protocol") is used. The super-component routing protocol defines a "super component" as a properly connected and properly provisioned controller, for example by providing predefined criteria for connection and provisioning. A new junction router controller is designated as a "hypercomponent" if it meets the predefined criteria during the junction procedure. In these examples, a super component ring is established parallel to the "normal" identifier ring. The blade boot subsystem is defined as the router controller in the widget loop, which is the successor of the router controller associated with the identifier at the midpoint of the patch range (this midpoint router controller) It can be in the super component ring or in any of the ordinary rings). Other aspects of the super-component routing protocol and the exemplary roads described in paragraphs 25 through 37 The same is true by the arrangement of the agreement.

此等例示性路由安排協定因此能夠在整體網路各處以合理的頻寬消耗快速傳播通知,從而有助於維護完整繞送表。使用此等例示性路由安排協定之例示性記憶體系統因此可達到一高詢問成功率。 These exemplary routing protocols thus facilitate the rapid propagation of notifications across the entire network with reasonable bandwidth consumption, thereby helping to maintain a complete routing table. An exemplary memory system using such exemplary routing protocols can thus achieve a high query success rate.

現將參照圖3說明一種用於將一新控制器聯結至一記憶體系統之一同級間網路之方法之一實例。於一第一程序塊301中,提供一記憶體系統,例如圖1之記憶體系統1。該記憶體系統包含有複數個記憶體模組,各記憶體模組包含有一非依電性記憶體單元及一控制器,該控制器係用來回應於一來自一處理器之請求以存取該非依電性記憶體單元中所儲存之資訊、將所存取之資訊遞送至該處理器、以及與其他記憶體模組之控制器進行通訊。該等控制器係連接成用來形成一同級間網路。 An example of a method for coupling a new controller to an inter-network of a memory system will now be described with reference to FIG. In a first block 301, a memory system, such as the memory system 1 of FIG. 1, is provided. The memory system includes a plurality of memory modules, each memory module includes a non-electric memory unit and a controller for responding to a request from a processor for access The information stored in the non-electrical memory unit, the accessed information is delivered to the processor, and communicated with controllers of other memory modules. The controllers are connected to form an inter-network.

於一第二程序塊302中,提供一與該記憶體系統進行通訊之附加記憶體模組,該附加記憶體模組包含有一附加控制器。該通訊可以是有線或無線通訊。在一些實例中,提供一與該記憶體系統進行通訊之附加記憶體模組包含有在該附加控制器與該同級間網路中之單一控制器之間建立一通訊鏈路。在一些實例中,提供一與該記憶體系統進行通訊之附加記憶體模組包含有在該附加控制器與該同級間網路中之多個控制器各者之間建立一通訊鏈路。該同級間網路中對該附加控制器建立有一通訊鏈路之該(等)控制器可以是該同級間網路中之任一(任何)控制器。一旦一連 接建立完成,該附加控制器便存取該同級間網路中一與其具有一通訊鏈路之控制器。該所存取控制器將會在下文稱為連絡控制器。於此點,該附加控制器可視為已聯結該DHT。 In a second block 302, an additional memory module is provided for communicating with the memory system, the additional memory module including an additional controller. The communication can be wired or wireless communication. In some examples, providing an additional memory module in communication with the memory system includes establishing a communication link between the additional controller and a single controller in the peer network. In some examples, providing an additional memory module in communication with the memory system includes establishing a communication link between the additional controller and a plurality of controllers in the peer network. The controller of the peer network having a communication link to the additional controller may be any (any) controller of the peer network. Once connected After the connection is established, the additional controller accesses a controller in the peer network with a communication link. The access controller will be referred to below as the connection controller. At this point, the additional controller can be considered to have joined the DHT.

在一些實例中,一經聯結該DHT,該附加控制器便發現該記憶體系統之該基本協定,該基本協定在韌體及/或硬體中可為固線。該DHT係藉由該網路中之所有該等控制器以一分布方式來維持,意味著任何控制器可由想要聯結該同級間網路之附加控制器當作一進入點使用。(即該等控制器任何一者可以是該連絡控制器。)在一些實例中,一經聯結該DHT,該附加控制器便接收可包含有例如下列任何一者或全部的資訊:該記憶體系統之一協定、一路由安排協定、一繞送表等。 In some instances, upon coupling the DHT, the additional controller discovers the basic agreement of the memory system, which may be a fixed line in the firmware and/or hardware. The DHT is maintained in a distributed manner by all of the controllers in the network, meaning that any controller can be used as an entry point by an additional controller that wants to connect the peer network. (Either any of the controllers may be the contact controller.) In some instances, once coupled to the DHT, the additional controller receives information that may include, for example, any or all of the following: the memory system One of the agreements, a routing arrangement, a routing table, and so on.

於程序塊303,該附加控制器若已連接至一連絡控制器並且聯結該DHT時,則接收該同級間網路中各控制器的記憶體位址範圍。這使該附加控制器能夠判斷其在該網路拓樸結構中應處的所在位置。舉例來說,前一個控制器可已經離開該環(例如,因為失效),在此種狀況中,該附加控制器可決定要佔據該前一個控制器所留下的「洞」。或者,在另一實例中,該附加控制器可決定要將該同級間網路之目前位址範圍擴充到超出其目前上限。 At block 303, if the add-on controller is connected to a contact controller and connects the DHT, it receives the memory address range of each controller in the peer network. This allows the additional controller to determine where it should be in the network topology. For example, the previous controller may have left the ring (eg, because of a failure), in which case the additional controller may decide to occupy the "hole" left by the previous controller. Alternatively, in another example, the additional controller may decide to extend the current address range of the peer network beyond its current upper limit.

接著,於程序塊304,該附加控制器使用該所接收位址資訊連接至一第一控制器,其中該第一控制器乃是該同級間網路中之另一控制器(即有別於該連絡控制器)。該 附加控制器於程序塊303中所接收之該等記憶體位址範圍係予以送入該網路拓樸結構中亦識別該發送器(即該已發送一給定訊息之控制器)之位置的訊息。於程序塊305中,該附加控制器使用此位置資訊判斷其與該第一控制器之間是否存在一直接連接。接著,於程序塊306中,該附加控制器若判斷與該第一控制器存在一直接連接,則判斷該第一控制器之角色。具體而言,其判斷該第一控制器是否為路由器控制器、一交換器控制器、或一普通記憶體控制器。此判斷係以該第一控制器所宣傳之資訊為基礎來進行。在一些實例中,該附加控制器進行涉反多個控制器各者之程序塊304、305及306。 Then, in block 304, the additional controller is connected to a first controller by using the received address information, wherein the first controller is another controller in the peer network (ie, different from The contact controller). The The memory address ranges received by the add-on controller in block 303 are sent to the network topology to also identify the location of the sender (i.e., the controller that sent a given message). . In block 305, the additional controller uses the location information to determine if there is a direct connection to the first controller. Next, in block 306, the additional controller determines the role of the first controller if it determines that there is a direct connection with the first controller. Specifically, it determines whether the first controller is a router controller, a switch controller, or a normal memory controller. This determination is based on the information advertised by the first controller. In some examples, the additional controller performs blocks 304, 305, and 306 that are associated with each of the plurality of controllers.

在最後一程序塊307中,從該等路由器、交換器及普通記憶體角色選擇出該附加控制器之一角色。該選擇係基於該附加控制器與該第一控制器之間是否存在一直接連接,而且若存在一直接連接,則另外基於該第一控制器之角色,其中該所選擇角色係選自於下列之群組:路由器、交換器、普通記憶體。該選擇使用的規則係由該記憶體系統之一協定來載明,並且由該同級間網路中之各控制器來儲存。在一實例中,一直接連接至一交換器控制器或一路由器控制器之附加控制器係選定為一普通記憶體控制器,而一未直接連結至路由器控制器或一交換器控制器之附加控制器係選定為一路由器控制器。在此實例中,一附加控制器若連接至一路由器控制器、及超過一預定最小數量之普通記憶體控制器,則將會選定為一交換器。該預定最小 數量舉例而言,可基於下列之任何一者或全部:總體記憶體、記憶體系統技術、及記憶體系統協定。舉例來說,一包含有超過10個記憶體模組具有超過1PB儲存量之記憶體系統將會包含有數個交換器。 In the last block 307, one of the roles of the additional controller is selected from the router, switch, and normal memory roles. The selection is based on whether there is a direct connection between the additional controller and the first controller, and if there is a direct connection, based on the role of the first controller, wherein the selected role is selected from the following Groups: routers, switches, common memory. The rules used for this selection are specified by one of the memory systems and stored by each controller in the peer network. In one example, an additional controller directly connected to a switch controller or a router controller is selected as a normal memory controller, and an add-on that is not directly connected to the router controller or a switch controller The controller is selected as a router controller. In this example, an add-on controller, if connected to a router controller, and beyond a predetermined minimum number of normal memory controllers, will be selected as a switch. The predetermined minimum The quantities may be based, for example, on any or all of the following: overall memory, memory system technology, and memory system protocols. For example, a memory system containing more than 10 memory modules with more than 1 PB of storage would contain several switches.

一附加控制器若選定為一普通記憶體控制器,則根據該記憶體系統協定之規則,其修剪對其他控制器的非直接鏈路,並且與最靠近的路由器控制器或交換器控制器協商其位址範圍。 If an additional controller is selected as a normal memory controller, it prunes an indirect link to other controllers and negotiates with the nearest router controller or switch controller according to the rules of the memory system protocol. Its address range.

在一些實例中,本方法另外涉及該附加控制器連絡該第一控制器,並且從該第一控制器接收一第二記憶體位址範圍。該第二記憶體位址範圍係與該記憶體系統之一第二控制器相關聯,該第二控制器係直接連接至該第一控制器。該附加控制器接著判斷其與該第二控制器之間是否存在一直接連接;並且若存在一直接連接,則判斷該第二控制器的角色。在此等實例中,該附加控制器的角色在選擇上乃是另外基於該附加控制器與該第二控制器之間是否存在一直接連接,並且若存在一直接連接,另外基於該第二控制器的角色。 In some examples, the method additionally involves the additional controller contacting the first controller and receiving a second memory address range from the first controller. The second memory address range is associated with a second controller of the memory system, the second controller being directly coupled to the first controller. The additional controller then determines if there is a direct connection with the second controller; and if there is a direct connection, the role of the second controller is determined. In such instances, the role of the additional controller is selected based on whether there is a direct connection between the additional controller and the second controller, and if there is a direct connection, additionally based on the second control The role of the device.

圖3之方法之一特定實例可進行如下。一旦一附加記憶體模組之一附加控制器已連接至一連絡控制器,該連絡控制器便將少量控制器記憶體範圍位址發送出去。該附加控制器因此嘗試連接至與該所接收記憶體範圍位址相關聯之控制器,並且作為回應,這些控制器亦將與其連接之控制器之位址提供給該附加控制器。此動作持續進行, 直到已達到一預定最大躍數為止,其中該最大數係由該記憶體系統協定記下。 A specific example of the method of Figure 3 can be performed as follows. Once an additional controller of an additional memory module is connected to a contact controller, the contact controller sends a small number of controller memory range addresses. The add-on controller therefore attempts to connect to the controller associated with the received memory range address and, in response, the controller also provides the additional controller with the address of the controller to which it is connected. This action continues, Until a predetermined maximum number of hops has been reached, wherein the maximum number is recorded by the memory system protocol.

接著,該附加控制器使用該記憶體系統協定判斷其是否有直接連接至這些控制器中記憶體位址範圍已由其所接收之任何一者。若有,則其使用該等已直接連接控制器所公布的資訊來判斷該等已直接連接控制器(即路由器、交換器或普通記憶體)之角色,並從而選定該附加控制器之一角色。一旦一角色已與該附加控制器相關聯,便進行該記憶體系統之組配程序(例如若一普通記憶體連接至一交換器控制器,則該交換器控制器運行一類似於一IP網路中一生成樹的協定以自動組配該交換器)。 The add-on controller then uses the memory system protocol to determine if it is directly connected to any of the controllers whose memory address range has been received. If so, it uses the information published by the directly connected controller to determine the role of the directly connected controller (ie, router, switch, or normal memory) and thereby select one of the additional controllers. . Once a character has been associated with the additional controller, the memory system is programmed (eg, if a normal memory is connected to a switch controller, the switch controller operates similar to an IP network) The agreement of a spanning tree in the road to automatically assemble the switch).

原則上,知道(例如該連絡控制器之)單一控制器位址足以令一聯結之附加控制器取得該同級間網路中所有其他控制器之位址,因為該連絡控制器將會與該附加控制器共享其餘該等位址。這降低了該DHT所用的頻寬。 In principle, it is known that (for example, the contact controller) a single controller address is sufficient for a coupled additional controller to obtain the address of all other controllers in the inter-network, since the contact controller will be attached to the The controller shares the remaining addresses. This reduces the bandwidth used by the DHT.

現將參照圖4說明一種用於存取一記憶體系統中所儲存資訊之方法之一實例。在一第一程序塊401中,提供複數個記憶體模組。各記憶體模組包含有一非依電性記憶體單元及一控制器,而且上述控制器係通訊連接而形成一同級間網路。各記憶體模組與一記憶體位址範圍相關聯,一給定記憶體模組之該記憶體位址範圍在該同級間網路中該組其鄰近記憶體模組裡乃是唯一的。在一些實例中,該等記憶體模組係包含於一記憶體系統中,例如包含於圖1之記憶體系統1中。 An example of a method for accessing information stored in a memory system will now be described with reference to FIG. In a first block 401, a plurality of memory modules are provided. Each memory module includes a non-electrical memory unit and a controller, and the controllers are communicatively coupled to form an inter-network. Each memory module is associated with a memory address range, and the memory address range of a given memory module is unique among the adjacent memory modules in the network of the same level. In some examples, the memory modules are included in a memory system, such as included in the memory system 1 of FIG.

於一第二程序塊402中,一第一記憶體模組之一第一控制器針對其他記憶體模組中之至少一者中所儲存之資訊,從一處理器接收一請求。在一些實例中,該所請求資訊係僅儲存於該等記憶體模組其中一者。在一些實例中,該所請求係儲存於多個記憶體模組中。 In a second block 402, a first controller of a first memory module receives a request from a processor for information stored in at least one of the other memory modules. In some examples, the requested information is stored only in one of the memory modules. In some examples, the requested system is stored in a plurality of memory modules.

接著,於程序塊403中,該第一控制器將該請求發送至該同級間網路中之另一控制器、或多個其他控制器。該請求係發送至哪個(些)控制器乃是由該第一控制器根據該同級間網路之一路由安排協定來判斷。在一些實例中,該控制器將該請求發送至其在一識別符環中之前導子及後繼子。在一些實例中,該控制器將該請求發送至其前導子或後繼子。程序塊403將會由接收該請求之各控制器來進行,直到該請求已抵達該同級間網路中之所有該等控制器。各控制器一經接收該請求,便判斷任何該所請求資訊是否由其記憶體模組所儲存。一於其NVM單元儲存至少部分該所請求資訊之記憶體模組之一控制器為達本方法之目的而變為一第二控制器。 Next, in block 403, the first controller sends the request to another controller in the peer network, or to a plurality of other controllers. The controller(s) to which the request is sent are determined by the first controller based on one of the routing protocols of the peer network. In some instances, the controller sends the request to its previous and succeeding children in an identifier ring. In some instances, the controller sends the request to its leading or succeeding child. Block 403 will be performed by each controller that receives the request until the request has arrived at all of the controllers in the peer network. Upon receiving the request, each controller determines whether any of the requested information is stored by its memory module. A controller of a memory module that stores at least a portion of the requested information in its NVM unit becomes a second controller for the purpose of the method.

於程序塊404中,一第二記憶體模組之一第二控制器從該同級間網路中之另一控制器接收該請求。該所請求資訊至少有部分係儲存於該第二記憶體模組之該NVM單元中。接著,於程序塊405中,該第二控制器判斷該所請求資訊至少有部分係儲存於該第二記憶體模組之該非依電性記憶體單元中,如上述。於程序塊406,該第二控制器回應於此判斷,從該第二記憶體模組之該NVM單元取回該所請 求資訊,並且根據該路由安排協定,將該所請求資訊發送至該同級間網路中的另一控制器、或多個其他控制器。接收該所請求資訊之各控制器根據該路由安排協定,將該所請求資訊轉發到至少一個其他控制器,直到該所請求資訊已抵達該同級間網路中之每個控制器。 In block 404, a second controller of a second memory module receives the request from another controller in the peer network. At least part of the requested information is stored in the NVM unit of the second memory module. Next, in block 405, the second controller determines that at least part of the requested information is stored in the non-electrical memory unit of the second memory module, as described above. In block 406, the second controller responds to the determination to retrieve the request from the NVM unit of the second memory module. Information is sought, and the requested information is sent to another controller in the peer network, or to multiple other controllers, according to the routing protocol. Each controller receiving the requested information forwards the requested information to at least one other controller in accordance with the routing agreement until the requested information has arrived at each of the controllers in the peer network.

於程序塊407中,該第一控制器從該同級間網路中之另一控制器(即一第二控制器)接收該所請求資訊,以及於程序塊408中,該第一控制器對該處理器提供該所請求資訊。該第一控制器可從該同級間網路中之多個其他控制器接收該所請求資訊。於此類狀況下,在一些實例中,該第一控制器回應於該所請求資訊之第一接收對該處理器提供該所請求資訊,並且不回應於該同一所請求資訊之後續接收對該處理器提供該所請求資訊。該第一控制器可從一第一其他控制器接收該所請求資訊之一第一部分,並且從一第二其他控制器接收該所請求資訊之一第二部分,及/或可於一不同時間從該所請求資訊之一第二部分接收該所請求資訊之一第一部分。於此類狀況下,在一些實例中,該第一控制器進行等待直到該所請求資訊之所有部分都已收到。回應於該所請求資訊之所有部分都已由該第一控制器所接收,該第一控制器對該處理器提供該所請求資訊。 In block 407, the first controller receives the requested information from another controller (ie, a second controller) in the peer network, and in block 408, the first controller pair The processor provides the requested information. The first controller can receive the requested information from a plurality of other controllers in the peer network. In such an instance, in some instances, the first controller provides the requested information to the processor in response to the first receipt of the requested information, and does not respond to subsequent receipt of the same requested information. The processor provides the requested information. The first controller may receive a first portion of the requested information from a first other controller and receive a second portion of the requested information from a second other controller, and/or may be at a different time Receiving a first portion of the requested information from a second portion of the requested information. In such cases, in some instances, the first controller waits until all portions of the requested information have been received. In response to all portions of the requested information being received by the first controller, the first controller provides the requested information to the processor.

在對於該模組中所儲存資訊之一請求係由一記憶體模組所接收的情況下,不需進行上述方法。在此類狀況中,接收該請求之該記憶體模組將會單純地從其NVM單元取回該所請求資訊,並且予以遞送至該提出請求之處理 器。 In the case where one of the information stored in the module is received by a memory module, the above method is not required. In such a situation, the memory module receiving the request will simply retrieve the requested information from its NVM unit and deliver it to the requesting process. Device.

若由一處理器對一給定記憶體模組控制器之一記憶體存取請求因為該記憶體模組不再位於該系統中而失敗,則該處理器可藉由將該記憶體存取請求發送至該給定記憶體模組之該後繼子來重試擷取該資料。 If a memory access request by a processor to a given memory module controller fails because the memory module is no longer in the system, the processor can access the memory by The request is sent to the successor of the given memory module to retry the retrieval of the data.

上述例示性記憶體系統各可因此看成是一組建於一組動態記憶體組件上之繞送覆蓋,使得該系統具有繞送、交換及資料存取功能。 Each of the above exemplary memory systems can thus be viewed as a set of wraparound overlays built on a set of dynamic memory components such that the system has wrap-around, switch, and data access functions.

本揭露乃是參照根據本揭露之實例之方法、裝置及系統之流程圖及/或方塊圖來說明。雖然上述流程圖展示一特定執行順序,仍可採用與所示者不同的執行順序。與一個流程圖有關所述的程序塊可與另一流程圖之程序塊組合。應瞭解的是,可藉由機器可讀指令來落實流程圖及/或方塊圖中的各流程及/或區塊、以及流程圖及/或方塊圖中流程及/或圖的組合。 The disclosure is described with reference to flowchart illustrations and/or block diagrams of methods, apparatuses, and systems in accordance with the examples of the disclosure. Although the above flow chart shows a particular order of execution, a different order of execution than that shown may be employed. The blocks associated with one flowchart may be combined with the blocks of another flowchart. It will be appreciated that the processes and/or blocks of the flowcharts and/or block diagrams, and combinations of the flowcharts and/or FIG.

此等機器可讀指令舉例而言,可藉由上有一經儲存且執行此等機器可讀指令便形成一特殊用途電腦之一通用電腦、一特殊用途電腦、一嵌入式處理器、或其他可規劃資料處理裝置之處理器來執行以落實說明及圖中所述的功能。特別的是,一處理器或處理設備可執行此等機器可讀指令。因此,此等設備及裝置之功能模組可藉由一執行一記憶體中所儲存機器可讀指令之處理器、或一根據邏輯電路系統中所嵌入指令而運作之處理器來實施。「處理器」一詞要廣義解讀為包括有一CPU、處理單元,ASIC、邏輯 單元、或可規劃閘陣列等。此等方法及功能模組全都可藉由單一處理器來進行或區分成數個處理器。 Such machine readable instructions may, for example, be a general purpose computer, a special purpose computer, an embedded processor, or the like formed by storing and executing such machine readable instructions. The processor of the data processing device is programmed to perform the functions described in the description and figures. In particular, a processor or processing device can execute such machine readable instructions. Thus, the functional modules of such devices and devices can be implemented by a processor executing a machine readable instruction stored in a memory or a processor operating in accordance with instructions embedded in the logic circuitry. The term "processor" is to be interpreted broadly to include a CPU, processing unit, ASIC, logic. Unit, or programmable gate array, etc. These methods and functional modules can all be performed by a single processor or divided into several processors.

此等機器可讀指令亦可儲存於一可導引該電腦或其他可規劃資料處理裝置在一特定模式下運作之電腦可讀儲存器中。 The machine readable instructions can also be stored in a computer readable storage that can direct the computer or other programmable data processing device to operate in a particular mode.

此等機器可讀指令亦可載入到一電腦或其他可規劃資料處理裝置,以使得該電腦或其他可規劃資料處理裝置進行一串操作步驟以產生電腦實施之處理,因此,該電腦或其他可規劃裝置上執行之此等指令提供一用於落實流程圖中(多個)流程及/或方塊圖中(多個)區塊所指定功能的步驟。 The machine readable instructions can also be loaded into a computer or other programmable data processing device to cause the computer or other programmable data processing device to perform a series of operational steps to produce a computer implemented process, thereby, the computer or other The instructions executed on the planable device provide a step for implementing the functions specified by the process(s) in the flowchart and/or the block(s) in the block diagram.

儘管本方法、設備及有關態樣已參照某些實例作說明,仍可進行各種修改、變更、省略及替代但不會脫離本揭露之精神。因此,意欲本方法、設備及有關態樣僅由以下申請專利範圍及其均等論述之範疇來限制。應知上述實例說明而不是限制本文中所述,而且所屬技術領域中具有通常知識者將能夠設計許多替代實作態樣但不會脫離隨附申請專利範圍之範疇。 While the present method, apparatus, and related aspects have been described with reference to the embodiments, various modifications, changes, omissions and substitutions may be made without departing from the spirit of the disclosure. Accordingly, the method, apparatus, and related aspects are intended to be limited only by the scope of the following claims. It is to be understood that the foregoing description is not intended to be limited,

「包含有」一詞未排除一請求項中所列除外元件的存在,「一」或其詞形變化未排除複數個,而且單一處理器或其他單元可實現申請專利範圍中所詳載數種單元之功能。 The word "included" does not exclude the existence of the excluded components listed in a claim, "a" or its morphological changes do not exclude a plurality of, and a single processor or other unit can achieve the number of The function of the unit.

任何附屬項之特徵可與任何獨立項或其他附屬項之特徵組合。 The characteristics of any subsidiary item may be combined with the characteristics of any individual item or other subsidiary item.

1‧‧‧記憶體系統 1‧‧‧ memory system

2‧‧‧第一記憶體組件 2‧‧‧First memory component

3‧‧‧第二記憶體組件 3‧‧‧Second memory component

10‧‧‧記憶體模組 10‧‧‧ memory module

Claims (15)

一種包含有複數個記憶體模組之記憶體系統,其中各記憶體模組包含有:一非依電性記憶體單元;以及一控制器,該控制器係用來回應於一來自一處理器之請求以存取該非依電性記憶體單元中所儲存之資訊、將所存取之資訊遞送至該處理器、以及與其他記憶體模組之控制器進行通訊;其中該等控制器係連接成用來形成一同級間記憶體模組網路,以及其中各給定記憶體模組係與一記憶體位址範圍相關聯,該記憶體位址範圍及一與任何直接連接至該給定記憶體模組之記憶體模組相關聯的記憶體位址範圍未重疊。 A memory system including a plurality of memory modules, wherein each memory module includes: a non-electric memory unit; and a controller for responding to a processor Requesting to access information stored in the non-electrical memory unit, delivering the accessed information to the processor, and communicating with controllers of other memory modules; wherein the controllers are connected Forming an inter-level memory module network, and each of the given memory modules is associated with a memory address range, the memory address range and one directly connected to the given memory The memory address ranges associated with the memory modules of the module do not overlap. 如請求項1之記憶體系統,其中各記憶體模組係與一唯一記憶體位址範圍相關聯。 The memory system of claim 1, wherein each memory module is associated with a unique memory address range. 如請求項2之記憶體系統,其中與一給定記憶體模組相關聯之該記憶體位址範圍乃是在將記憶體模組之該控制器聯結至該同級間網路期間作判斷。 The memory system of claim 2, wherein the memory address range associated with a given memory module is determined during the connection of the controller of the memory module to the peer network. 如請求項1之記憶體系統,其中各控制器是用來將其記憶體模組之該記憶體位址範圍宣傳給該同級間網路中的其他控制器。 The memory system of claim 1, wherein each controller is configured to advertise the memory address range of its memory module to other controllers in the peer network. 如請求項1之記憶體系統,其中各控制器係與一角色相關聯,該角色乃是下列其中一者:路由器、交換器、普 通記憶體。 The memory system of claim 1, wherein each controller is associated with a role, the role is one of the following: a router, a switch, a general Through memory. 如請求項5之記憶體系統,其中各路由器控制器是用來儲存一表格,該表格含有該同級間網路中每個其他路由器控制器之一識別符,並且用來根據該所儲存之繞送表繞送記憶體存取請求;以及各交換器控制器是用來將記憶體存取請求轉發至該同級間網路中的每個其他控制器。 The memory system of claim 5, wherein each router controller is configured to store a table containing an identifier of each of the other router controllers in the network of the peers, and for use in accordance with the stored The send table bypasses the memory access request; and each switch controller is used to forward the memory access request to each of the other controllers in the peer network. 如請求項1之記憶體系統,其中各路由器控制器係與一唯一識別符相關聯,以及其中該同級間網路是用來在一分散式雜湊表DHT中儲存該等識別符。 The memory system of claim 1, wherein each router controller is associated with a unique identifier, and wherein the peer network is for storing the identifiers in a decentralized hash table DHT. 如請求項7之記憶體系統,其中該等識別符係均勻分布於一識別符空間中。 The memory system of claim 7, wherein the identifiers are evenly distributed in an identifier space. 如請求項7之記憶體系統,其中該等識別符係於一識別符環中排序,使得各路由器控制器在該識別符環中具有一前導子及一後繼子。 The memory system of claim 7, wherein the identifiers are ordered in an identifier ring such that each router controller has a leader and a successor in the identifier ring. 如請求項9之記憶體系統,其中:該識別符環包含有複數個等尺寸相連符片,各該相連符片含有一識別符符片範圍,以及其中針對各符片,一符片引導子乃是定義為:一與一識別符相關聯之路由器控制器,該識別符乃是該符片範圍中點處識別符之該後繼子;或者,若該中點處沒有識別符,則定義為一具有一最靠近該中點之識別符的路由器控制器;以及各符片包含有複數個等尺寸相連單元,各該相連單元含有一識別符單元範圍,以及其中針對各單元,一單 元引導子乃是定義為:一與一識別符相關聯之路由器控制器,該識別符乃是該單元範圍中點處識別符之該後繼子;或者,若該中點處沒有識別符,則定義為一具有一最靠近該中點之識別符的路由器控制器。 The memory system of claim 9, wherein: the identifier ring comprises a plurality of equal-sized contiguous segments, each of the contiguous segments containing an identifier-like slice range, and wherein each of the slices has a slice guide Is defined as: a router controller associated with an identifier, the identifier being the successor of the identifier at the midpoint of the slice range; or, if there is no identifier at the midpoint, defined as a router controller having an identifier closest to the midpoint; and each tile includes a plurality of equal-sized connected units, each of the connected units having an identifier unit range, and wherein each unit has a single A meta-guide is defined as: a router controller associated with an identifier, the identifier being the successor of the identifier at a point in the range of the unit; or, if there is no identifier at the midpoint, Defined as a router controller with an identifier closest to the midpoint. 如請求項10之記憶體系統,其中各符片引導子是用來:從該同級間網路中之其他路由器控制器接收事件通知;在一第一預定時段範圍內匯集所接收事件通知;當該第一預定時段過後,將一含有該等所匯集事件通知之第一匯集訊息發送至該同級間網路中之各其他符片引導子;從其他符片引導子接收第一匯集訊息;在一第二預定時段範圍內匯集所接收第一匯集訊息;當該第二預定時段過後,將一含有該等所匯集第一匯集訊息之第二匯集訊息發送至其符片中所包含該等單元之該等單元引導子。 The memory system of claim 10, wherein each of the slice guides is configured to: receive event notifications from other router controllers in the peer network; aggregate the received event notifications within a first predetermined time period; After the first predetermined time period, a first aggregate message containing the aggregated event notifications is sent to each of the other tile guides in the peer network; the first aggregate message is received from the other slice guides; Receiving the received first aggregate message within a second predetermined time period; after the second predetermined time period, sending a second aggregate message containing the aggregated first aggregated message to the unit included in the slice These unit guides. 如請求項11之記憶體系統,其中各單元引導子是用來:將維生訊息週期性發送至其後繼子;將維生訊息週期性發送至其前導子;從一符片引導子接收第二匯集訊息;以及連同一維生訊息將一所接收第二匯集訊息發送至其後繼子及其前導子。 The memory system of claim 11, wherein each unit guide is used to: periodically send the live message to its successor; periodically send the live message to its preamble; receive the first from a slice guide The second collection message; and the same live message sends a received second collection message to its successor and its predecessor. 如請求項12之記憶體系統,其中非為一單元引導子或一 符片引導子之各路由器控制器是用來:將維生訊息週期性發送至其後繼子;將維生訊息週期性發送至其前導子;從其後繼子及其前導子其中一者接收一第二匯集訊息;以及連同一維生訊息將一所接收第二匯集訊息發送至其後繼子及其前導子其中另一者。 The memory system of claim 12, wherein the non-unit is a guide or a Each router controller of the slice guide is used to: periodically send the live message to its successor; periodically send the live message to its predecessor; receive one from its successor and its predecessor a second aggregate message; and the same live message sends a received second aggregate message to the other of its successor and its predecessor. 如請求項1之記憶體系統,其中該記憶體系統包含有非依電性記憶體單元,該等非依電性記憶體單元在下列至少一方面彼此不同:容量;製造商;儲存技術;記憶體協定,記憶體系統技術。 The memory system of claim 1, wherein the memory system comprises non-electrical memory cells, the non-electrical memory cells being different from each other in at least one of the following: capacity; manufacturer; storage technology; Body agreement, memory system technology. 一種方法,其包含有:提供複數個記憶體模組,各記憶體模組包含有一非依電性記憶體單元及一控制器;其中該等控制器係通訊連接成用來形成一同級間網路,以及其中各記憶體模組與一記憶體位址範圍相關聯,一給定記憶體模組之該記憶體位址範圍在該同級間網路中其鄰近記憶體模組集合裡乃是唯一的;一第一記憶體模組之一第一控制器針對其他記憶體模組中之至少一者中所儲存之資訊,從一處理器接收一請求;該第一控制器根據該同級間網路之一路由安排協定,將該請求發送至該同級間網路中之至少一個其他控制器; 一第二記憶體模組之一第二控制器從該同級間網路中之另一控制器接收該請求,其中該所請求資訊至少有部分係儲存於該第二記憶體模組之該非依電性記憶體單元中;該第二控制器判斷該所請求資訊至少有部分係儲存於該第二記憶體模組之該非依電性記憶體單元中;該第二控制器從該第二記憶體模組之該非依電性記憶體單元取回該所請求資訊,並且根據該路由安排協定,將該所請求資訊發送至該同級間網路中之至少一個其他控制器;該第一控制器從該同級間網路中之另一控制器接收該所請求資訊;以及該第一控制器將該所請求資訊提供給該處理器。 A method includes: providing a plurality of memory modules, each memory module including a non-electric memory unit and a controller; wherein the controllers are communicatively coupled to form an inter-network And the memory module is associated with a memory address range, and the memory address range of a given memory module is unique among the adjacent memory modules in the network of the same level The first controller of the first memory module receives a request from a processor for information stored in at least one of the other memory modules; the first controller is based on the network between the peers a routing protocol that sends the request to at least one other controller in the peer network; The second controller of the second memory module receives the request from another controller in the network of the same level, wherein the requested information is at least partially stored in the second memory module. In the electrical memory unit, the second controller determines that at least part of the requested information is stored in the non-electrical memory unit of the second memory module; the second controller is from the second memory The non-electrical memory unit of the body module retrieves the requested information, and according to the routing agreement, sends the requested information to at least one other controller in the peer network; the first controller Receiving the requested information from another controller in the peer network; and the first controller provides the requested information to the processor.
TW105109013A 2015-04-27 2016-03-23 Memory systems TW201706859A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2015/059047 WO2016173611A1 (en) 2015-04-27 2015-04-27 Memory systems

Publications (1)

Publication Number Publication Date
TW201706859A true TW201706859A (en) 2017-02-16

Family

ID=53015803

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105109013A TW201706859A (en) 2015-04-27 2016-03-23 Memory systems

Country Status (2)

Country Link
TW (1) TW201706859A (en)
WO (1) WO2016173611A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI787290B (en) * 2017-06-28 2022-12-21 英商Arm股份有限公司 Sub-realms

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8549092B2 (en) * 2009-02-19 2013-10-01 Micron Technology, Inc. Memory network methods, apparatus, and systems
CN104813306B (en) * 2012-11-21 2017-07-04 相干逻辑公司 With the processing system for spreading processor DMA FIFO
WO2014178854A1 (en) * 2013-04-30 2014-11-06 Hewlett-Packard Development Company, L.P. Memory network to route memory traffic and i/o traffic

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI787290B (en) * 2017-06-28 2022-12-21 英商Arm股份有限公司 Sub-realms

Also Published As

Publication number Publication date
WO2016173611A1 (en) 2016-11-03

Similar Documents

Publication Publication Date Title
US9116749B2 (en) Method for dynamic on demand startup of a process or resource
US11102290B2 (en) Peer-to-peer network prioritizing propagation of objects through the network
KR102349208B1 (en) System and method for providing a dynamic cloud with subnet administration (sa) query caching
EP3353952B1 (en) Managing groups of servers
CN107547661B (en) Container load balancing implementation method
CA2897118A1 (en) System and method for providing p2p based reconfigurable computing and structured data distribution
US8898266B2 (en) Apparatus and method for setting role based on capability of terminal
JP5536900B2 (en) Localizing peer-to-peer traffic
JP2016051446A (en) Calculator system, calculator, and load dispersing method and program
JP2017529768A (en) Network service recognition routers and their applications
TW201706859A (en) Memory systems
US10305987B2 (en) Method to syncrhonize VSAN node status in VSAN cluster
Costa et al. Why should we integrate services, servers, and networking in a data center?
JP2011118593A (en) Data transfer server, data transfer system, data transfer method, and program
US20140229602A1 (en) Management of node membership in a distributed system
CN107431634A (en) A kind of method, apparatus and system of the interface established between VNFM
US9929934B2 (en) Partner discovery in control clusters using shared VLAN
Zhao et al. On peer-assisted data dissemination in data center networks: Analysis and implementation
JP2024514467A (en) Geographically distributed hybrid cloud cluster
EP3188531B1 (en) Cluster system self-organizing method, device, and cluster system
US9755846B2 (en) Leader device selection in control clusters using shared VLAN
CN112954074B (en) Block chain network connection method and device
US11477303B1 (en) Broker cell for distributed message system
Celaya et al. Scalable architecture for allocation of idle CPUs in a P2P network
JP2015156587A (en) Network system, network switch apparatus, and information processing apparatus, and setting method