Blade a Blade B Mem 1 Storage Storage Duplicated
Total Page:16
File Type:pdf, Size:1020Kb
US008234459B2 (12) United States Patent (10) Patent N0.: US 8,234,459 B2 Gaither et a]. 45 Date of Patent: Jul. 31 a 2012 (54) SWITCH MODULE BASED NON-VOLATILE (52) US. Cl. ...... .. 711/147; 711/103; 711/114; 711/170; MEMORY IN A SERVER 711/202 (75) Inventors: Blaine D- Gaither’ Fort Collins’ CO (58) Field 0f.Cla'ss1?cat10n Search ............. ..: ...... .. None (Us); Andrew R- Wheeler’ Fort Collins’ See appl1cat1on ?le for complete search h1story. CO (Us) (56) References Cited (73) Assignee: Hewlett-Packard Development Company, L.P., Houston, TX (US) US‘ PATENT DOCUMENTS 2003/0033363 A1* 2/2003 Garnett et a1. .............. .. 709/203 ( * ) Notice: Subject to any disclaimer, the term ofthis Zoos/0244172 A1: 10/2008 Kan°_ ~~_ ~~~~~~~~~~~~~~~~~~~~~~~~ ~~ 711/112 patent is extended or adjusted under 35 2008/0301256 A1 12/2008 McWllllams et a1. ...... .. 709/214 U.S.C. 154(b) by 568 days. * cited by examiner (21) Appl. No.: 12/403,712 Primary Examiner * ShaWn X Gu (22) Filed: Mar. 13, 2009 (57) ABSTRACT . A sWitch module having shared memory that is allocated to (65) Pnor Pubhcatlon Data other blade servers. A memory controller partitions and US 2010/0235562 A1 Sep. 16, 2010 enables access to partitions of the shared memory by request ing blade servers. (51) Int. Cl. G06F 12/00 (2006.01) 14 Claims, 5 Drawing Sheets BLADE A BLADE B MEM 1 STORAGE STORAGE MEM 2 BLADE C STORAGE DUPLICATED MEM 3 BLADE n STORAGE BLADE E STORAGE SHARED BY STORAGE D AND E US. Patent Jul. 31, 2012 Sheet 2 of5 US 8,234,459 B2 ROM ~Z°4 / 201~ PROCESSOR 4 , RAM ~203 A V SWITCH 1 > V0 N210 00~ MODULE FIG. 2 US. Patent Jul. 31, 2012 Sheet 3 of5 US 8,234,459 B2 /300/ 310 200 FIG. 3 US. Patent Jul. 31, 2012 Sheet 4 0f 5 US 8,234,459 B2 REQUEST MEMORY ~401 ALLOCATION l LOCATE UNUSED MEMORY l INITIALIZE MEMORY V MAP SECTORS TO MEMORY N407 ADDRESSES l ALLOCATE MEMORY TO ~409 BLADE SERVERS FIG. 4 US. Patent Jul. 31, 2012 Sheet 5 0f 5 US 8,234,459 B2 BLADE A BLADE B MEM 1 STORAGE STORAGE MEM 2 BLADE C STORAGE DUPLICATED BLADE D STORAGE BLADE E MEM 3 STORAGE SHARED BY STORAGE D AND E FIG. 5 US 8,234,459 B2 1 2 SWITCH MODULE BASED NON-VOLATILE any one memory location from being accessed repetitively. MEMORY IN A SERVER Some of the accesses to that address can be mapped to other, less used addresses. Flash memory is used as an example BACKGROUND nonvolatile memory technology, but other nonvolatile memory technologies couldbe used. The speci?c functions of Blade servers are self-contained all inclusive computer the memory controller are dependent upon the NV memory servers, designed for high density. Whereas a standard rack technology used. mount server has a power supply and networking capability, The memory controller block 103 is coupled to a manage blade servers have many components removed for space, ment console 107, over an external management interface power and other considerations while still having all the func 114, that provides external control of the memory devices tional components to be considered a computer (i.e., memory, 102. The management console 107 and memory controller processor, storage). block 103 are responsible for setting up the memory devices The blade servers are housed in a blade enclosure. The as described subsequently with reference to the ?owchart of enclosure can hold multiple blade servers and perform many FIG. 3. of the non-core services (i.e., power, cooling, networking) In an alternate embodiment, the shared memory 102 is a found in most computers. Non-blade computers require com solid state drive system that incorporates a number of non ponents that are bulky, hot, and space-inef?cient. By locating volatile memory devices such as ?ash memory. In such an these services in one place and sharing them amongst the embodiment, the memory devices 102 and controller block blade servers, the overall component utiliZation is more e?i 103 can be combined into one drive unit. cient. 20 A solid state drive is comprised of multiple ?ash packages Computers typically need bulk data storage to store oper where each package can be comprised of many memory dies. ating systems, applications, and data for the server system. Solid state drives are used in computers to replace the hard This bulk storage of data is typically accomplished with mag disk drives that typically have used magnetic or optical disks netic hard drives. One or more hard drives can be located in for storing large amounts of data. A solid state drive does not the enclosure or connected to it over a network. Hard drives 25 use moving parts whereas a hard disk drive requires a com add bulk, heat, and complexity from moving parts that are plex and sensitive drive and read/write head assembly to more prone to failure. interact with the magnetic/optical disk. Thus, the solid state drives are more resistant to damage and loss of data through BRIEF DESCRIPTION OF THE DRAWINGS vibration and impacts. 30 A Flash Translation Layer (FTL) works in conjunction FIG. 1 depicts a block diagram of one embodiment of a with an operating system to make the ?ash memory of the switch module incorporating shared memory. solid state drive appear to the operating system as a disk drive. FIG. 2 depicts a block diagram of one embodiment of a This is accomplished by the FTL creating virtual small blocks blade server that incorporates the switch module of FIG. 1. of data, also known as sectors, out of ?ash erase blocks. The FIG. 3 depicts a diagram of one embodiment of a blade 35 FTL also manages and maps data on the solid state drive so server system enclosure. that it appears to the system to be written in a certain location FIG. 4 depicts a ?ow chart of one embodiment of a method when in fact it is being stored, for wear leveling purposes, in for allocating the shared memory of FIG. 1. different locations of the ?ash memory. FIG. 5 depicts one embodiment of a memory allocation The switch module 100 may also be comprised of an exter diagram in accordance with the shared memory of FIG. 1. 40 nal Small Computer System Interface (SCSI), SATA, PC or other storage connection 110 that connects the memory con DETAILED DESCRIPTION troller 103 to external network elements. The storage connec tion 110 can be used by the blade enclosure, blade servers, The following detailed description is not to be taken in a and/or an external computer system to access the memory limiting sense. Other embodiments may be utiliZed and devices 102 through the memory controller block 103. This changes may be made without departing from the scope of the external connection could be used to mirror data on another present disclosure. blade, or provide access to storage on the switch module in the FIG. 1 illustrates a block diagram of one embodiment of a presence of a failure. switch module 100 that incorporates shared non-volatile An interface/ switch circuit 105 is coupled to and interfaces memory 102 that can be allocated between blade servers in a 50 the memory controller block 103 to the other blade servers of server system. The switch module 100 can be incorporated the system. The server interface circuit 105 interfaces the into one or more blade servers as described subsequently with switch module 100 to the server system backplane signals. In reference to FIG. 2. In one embodiment, the switch module one embodiment, this interface is a Peripheral Component 100 is an Ethernet switch module. Interconnect Express (PCI-E) interface 105. The PCI-E inter In one embodiment, the shared memory 102 is comprised 55 face 105 has multiple ports 120 that are connected to the blade of a number of ?ash memory devices that are coupled to and server system enclosure backplane to be routed to blade serv controlled by a memory controller block 103. The memory ers in the system. Alternate embodiments can use other inter controller block 103 is responsible for interfacing the face circuits incorporating other interface protocols in place memory devices 102 to external elements of the server system of the PCI-E interface. This block 105 also comprises switch and controlling operation of the memory devices 102. The 60 circuitry that can be comprised of standard Ethernet switch memory controller block 103 can be used to control and circuitry, or other types of switches, that is con?gured to maintain wear-leveling mapping tables for access to the switch server signals between input connections and output memory. Since ?ash memory devices 102 can only be used connections. for a certain number of write/erase cycles, the memory con Data stored in the shared memory 102 can be compressed troller block 103 performs a wear-leveling operation to 65 prior to being stored and decompressed after being read out spread the memory use over substantially all of the memory from the memory. Any available compression and decom devices 102. Thus the memory controller block 103 prevents pression routines can be implemented for the compression/ US 8,234,459 B2 3 4 decompression. The data compression frees up additional locations or solid state drive sectors available for use are not memory space for use by the blade servers. Zero, the controller Would have to erase the necessary FIG. 2 illustrates a block diagram of one embodiment of a memory blocks/sector(s) prior to use by another blade server.