US20150046628A1 - Memory module communication control - Google Patents
Memory module communication control Download PDFInfo
- Publication number
- US20150046628A1 US20150046628A1 US13/960,883 US201313960883A US2015046628A1 US 20150046628 A1 US20150046628 A1 US 20150046628A1 US 201313960883 A US201313960883 A US 201313960883A US 2015046628 A1 US2015046628 A1 US 2015046628A1
- Authority
- US
- United States
- Prior art keywords
- bus
- memory module
- clock line
- switch controller
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C14/00—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
- G11C14/0009—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell
- G11C14/0045—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell and the nonvolatile element is a resistive RAM element, i.e. programmable resistors, e.g. formed of phase change or chalcogenide material
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
Definitions
- the present invention relates to computer memory, and more specifically, to memory module communication control.
- a dual in-line memory module includes a series of dynamic random-access memory integrated circuits. These modules are mounted on a printed circuit board (PCB) and designed for use in computing devices, such as desktop computer, laptop computers, and servers.
- a non-volatile DIMM is a DRAM DIMM module that retains data even during loss of power. NVDIMMs are used in server systems to improve application performance, data security, system crash recovery time, and reliability.
- multiple DIMMs may be managed and controlled by a baseboard management controller (BMC).
- BMC baseboard management controller
- NVDIMMs are slower than typical DIMMs, they may sometimes require the BMC to return for service at a later time.
- a processor of the BMC may be notified to return for service by the NVDIMM asserting an interrupt into the processor.
- the processor may be instructed to read a status register in the NVDIMM via double data rate (DDR).
- DDR double data rate
- this action results inefficiency because an additional control signal is routed from the memory subsystem to the processor subsystem for each DIMM socket supporting the NVDIMM.
- a method includes receiving a message associated with a memory module in communication with a controller via a bus including a clock line. Further, the method includes determining whether the bus is idle. The method also includes communicating a signal via the clock line regarding the message associated with the memory module in response to determining that the bus is idle.
- a method includes receiving an interrupt for a memory module in communication with a controller via a bus including a clock line. The method also includes determining whether the bus is idle. Further, the method includes driving the clock line low; and communicating a stop command to one or more other memory modules in response to determining that the bus is not idle.
- a method may be implemented at a master device in a computer bus system.
- the method may include receiving a signal via a clock line. Further, the method may include communicating a message associated with the signal to one or more other devices.
- FIG. 1 is a block diagram of an example system operable for memory module communication control in accordance with embodiments of the present invention.
- FIG. 2 is a flowchart of an example method for memory module communication control in accordance with embodiments of the present invention.
- the present invention is directed to systems and methods for memory module communication control.
- the figure illustrates a block diagram of an example system 100 operable for memory module communication control in accordance with embodiments of the present invention.
- the system 100 includes multiple NVDIMM 1 102 -NVDIMM n 102 and a BMC 104 .
- the BMC 104 may include a processor and be configured to control each NVDIMM 102 .
- the BMC 104 functions as an I 2 C master.
- I 2 C is a multimaster serial single-ended computer bus system.
- the BMC 104 may communicate with the NVDIMMs 102 via a bus 104 including a serial clock line (SCL) 106 and a signal data line (SDA) 108 .
- SCL serial clock line
- SDA signal data line
- the bus 104 may be an I 2 C bus or any other suitable type of bus.
- the bus 104 may include a connector for physically connecting a switch A 110 serving the BMC 104 with a switch B 112 serving the NVDIMMs 102 .
- the system 100 may also include multiple programmable read-only memory (PROM) devices 114 capable of communication with the BMC 104 via switches 110 and 112 and the bus 104 .
- PROM programmable read-only memory
- the system 100 may include a platform controller hub (PCH) 116 capable of working in conjunction with the BMC 104 .
- the PCH 116 may function as a system clock, provide a flexible display interface (FDI), and provide a direct media interface (DMI).
- FDI flexible display interface
- DMI direct media interface
- FIG. 2 illustrates a flowchart of an example method for memory module communication control in accordance with embodiments of the present invention.
- controllers 118 and 120 of switches 110 and 112 respectively, shown in FIG. 1 , although any suitable controllers may be utilized.
- the method is described in examples as being implemented in a NVDIMM system with the components shown in FIG. 1 , although the method may be implemented in any suitable system having one or more memory modules.
- Each of the controllers 118 and 120 may be implemented by hardware, software, firmware, or combinations thereof.
- the method includes receiving 200 a message associated with a memory module in communication with a controller via a bus including a clock line.
- NVDIMM 1 102 shown in FIG. 1 may generate an interrupt 122 and communicate the interrupt 122 to the switch B 112 for communication to the PCH 116 .
- the controller 120 may receive the interrupt 122 .
- the message received at the switch 112 may be any other message addressed for delivery via the bus 104 .
- the method of FIG. 2 includes determining 202 whether the bus is idle.
- the controller 120 may determine whether the bus 104 is idle. A bus may not be idle when it is conducting a transaction or communicating.
- the method includes communicating 204 a signal via the clock line regarding the message associated with the memory module.
- the controller 120 may signal the interrupt 122 to the switch A 110 via the SCL 106 for routing to the PCH 116 .
- the switch B 112 may drive the SCL 106 low in response to receipt of the interrupt for signaling the interrupt.
- the switch B 112 may drive the SCL 106 low for signaling the interrupt only when the bus 104 is idle. Such action is acceptable under I 2 C protocol, because devices on the bus can view this behavior as a clock stretch.
- the method includes communicating a message in response to receipt of the signal.
- the controller 118 of switch A 110 may communicate an interrupt to the PCH 116 in response to receipt of the signal via the SCL 106 .
- the controller 118 may recognize the signal as indicating an interrupt from one of the NVDIMMs 102 and subsequently send the interrupt.
- the method includes communicating 210 a stop command.
- the controller 120 may generate a stop command and send the stop command to associated I2C devices such as the other NVDIMMs 102 and PROMs 114 to thereby instruct these devices to stop communicating with the switch B 112 .
- the method includes driving 212 the clock line low.
- the controller 120 can control the switch B 112 to drive SCL 106 from between 1.0 V and 0.7 V when it is not idle to less than 0.4 V.
- the method includes communicating 214 an interrupt in response to the clock line being low.
- the switch A 110 may communicate an interrupt to the PCH 116 in response to the PCL 106 being low.
- the switch A 110 can detect a voltage less than 0.7 V on its input, and assert an interrupt signal in response to the detection. As a result of the interrupt signal, processes associated with PCH 116 and BMC 104 may be stopped.
- the bus can return to normal operation.
- the bus wires can float to a logical “1” state and if the master would like to communicate with a slave, it can do so by issuing a start command.
- the master may recover after an interrupt has subsided. In other words, if the master is processing a data transaction and is stopped, it can attempt again to capture the data that was aborted subsequent to the event clearing.
- a clock line may be driven to two or more levels for communicating more than one type of message.
- the switch B 112 may be configured to recognize two or more types of messages.
- the switch B 112 may be configured to drive the SCL 106 to a particular voltage level based on the received type of message.
- the switch A 110 may be configured to interrupt the type of message based on the driven voltage level of the SCL 106 .
- the switch A 110 may generate and communicate the message corresponding to the voltage level to an appropriate device such as the PCH 116 .
- aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
- the computer readable medium may be a computer readable signal medium or a computer readable storage medium (including, but not limited to, non-transitory computer readable storage media).
- a computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.
- a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
- a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof.
- a computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
- Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
- Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages.
- the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
- the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
- LAN local area network
- WAN wide area network
- Internet Service Provider for example, AT&T, MCI, Sprint, EarthLink, MSN, GTE, etc.
- These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
- the computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s).
- the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Systems (AREA)
Abstract
Description
- 1. Field of the Invention
- The present invention relates to computer memory, and more specifically, to memory module communication control.
- 2. Description of Related Art
- A dual in-line memory module (DIMM) includes a series of dynamic random-access memory integrated circuits. These modules are mounted on a printed circuit board (PCB) and designed for use in computing devices, such as desktop computer, laptop computers, and servers. A non-volatile DIMM (NVDIMM) is a DRAM DIMM module that retains data even during loss of power. NVDIMMs are used in server systems to improve application performance, data security, system crash recovery time, and reliability.
- In a server, multiple DIMMs may be managed and controlled by a baseboard management controller (BMC). There is a need to manage the communication between a DIMM and the controller. In particular example, since NVDIMMs are slower than typical DIMMs, they may sometimes require the BMC to return for service at a later time. A processor of the BMC may be notified to return for service by the NVDIMM asserting an interrupt into the processor. As a result, the processor may be instructed to read a status register in the NVDIMM via double data rate (DDR). However, this action results in inefficiency because an additional control signal is routed from the memory subsystem to the processor subsystem for each DIMM socket supporting the NVDIMM.
- In view of the foregoing, there is a need for improved techniques of memory module communication control.
- In accordance with one or more embodiments of the present invention, methods and systems disclosed herein provide for memory module communication control. According to an aspect, a method includes receiving a message associated with a memory module in communication with a controller via a bus including a clock line. Further, the method includes determining whether the bus is idle. The method also includes communicating a signal via the clock line regarding the message associated with the memory module in response to determining that the bus is idle.
- According to another aspect, a method includes receiving an interrupt for a memory module in communication with a controller via a bus including a clock line. The method also includes determining whether the bus is idle. Further, the method includes driving the clock line low; and communicating a stop command to one or more other memory modules in response to determining that the bus is not idle.
- According to another aspect, a method may be implemented at a master device in a computer bus system. The method may include receiving a signal via a clock line. Further, the method may include communicating a message associated with the signal to one or more other devices.
-
FIG. 1 is a block diagram of an example system operable for memory module communication control in accordance with embodiments of the present invention; and -
FIG. 2 is a flowchart of an example method for memory module communication control in accordance with embodiments of the present invention. - As described herein, there are various embodiments and aspects of the present invention. According to embodiments, the present invention is directed to systems and methods for memory module communication control.
- Referring now to
FIG. 1 , the figure illustrates a block diagram of anexample system 100 operable for memory module communication control in accordance with embodiments of the present invention. In this example, thesystem 100 includesmultiple NVDIMM 1 102-NVDIMMn 102 and a BMC 104. The BMC 104 may include a processor and be configured to control each NVDIMM 102. In this example, the BMC 104 functions as an I2C master. I2C is a multimaster serial single-ended computer bus system. The BMC 104 may communicate with the NVDIMMs 102 via abus 104 including a serial clock line (SCL) 106 and a signal data line (SDA) 108. Thebus 104 may be an I2C bus or any other suitable type of bus. Thebus 104 may include a connector for physically connecting aswitch A 110 serving the BMC 104 with aswitch B 112 serving theNVDIMMs 102. Thesystem 100 may also include multiple programmable read-only memory (PROM)devices 114 capable of communication with the BMC 104 viaswitches bus 104. - The
system 100 may include a platform controller hub (PCH) 116 capable of working in conjunction with the BMC 104. The PCH 116 may function as a system clock, provide a flexible display interface (FDI), and provide a direct media interface (DMI). -
FIG. 2 illustrates a flowchart of an example method for memory module communication control in accordance with embodiments of the present invention. In examples described herein to illustrate the method, reference is made tocontrollers switches FIG. 1 , although any suitable controllers may be utilized. Further, the method is described in examples as being implemented in a NVDIMM system with the components shown inFIG. 1 , although the method may be implemented in any suitable system having one or more memory modules. Each of thecontrollers - Referring now to
FIG. 2 , the method includes receiving 200 a message associated with a memory module in communication with a controller via a bus including a clock line. For example, NVDIMM 1 102 shown inFIG. 1 may generate aninterrupt 122 and communicate theinterrupt 122 to theswitch B 112 for communication to thePCH 116. Thecontroller 120 may receive theinterrupt 122. Alternative to an interrupt, the message received at theswitch 112 may be any other message addressed for delivery via thebus 104. - The method of
FIG. 2 includes determining 202 whether the bus is idle. Continuing the aforementioned example, thecontroller 120 may determine whether thebus 104 is idle. A bus may not be idle when it is conducting a transaction or communicating. In response to determining that the bus is idle, the method includes communicating 204 a signal via the clock line regarding the message associated with the memory module. For example, thecontroller 120 may signal theinterrupt 122 to theswitch A 110 via theSCL 106 for routing to the PCH 116. As an example, theswitch B 112 may drive theSCL 106 low in response to receipt of the interrupt for signaling the interrupt. Theswitch B 112 may drive theSCL 106 low for signaling the interrupt only when thebus 104 is idle. Such action is acceptable under I2C protocol, because devices on the bus can view this behavior as a clock stretch. - Subsequent to the communication 204, the method includes communicating a message in response to receipt of the signal. For example, the
controller 118 ofswitch A 110 may communicate an interrupt to thePCH 116 in response to receipt of the signal via theSCL 106. Thecontroller 118 may recognize the signal as indicating an interrupt from one of theNVDIMMs 102 and subsequently send the interrupt. - In response to determining that the bus is not idle, the method includes communicating 210 a stop command. For example, the
controller 120 may generate a stop command and send the stop command to associated I2C devices such as theother NVDIMMs 102 andPROMs 114 to thereby instruct these devices to stop communicating with theswitch B 112. Subsequently, the method includes driving 212 the clock line low. For example, thecontroller 120 can control theswitch B 112 to driveSCL 106 from between 1.0 V and 0.7 V when it is not idle to less than 0.4 V. Subsequently, the method includes communicating 214 an interrupt in response to the clock line being low. For example, theswitch A 110 may communicate an interrupt to thePCH 116 in response to thePCL 106 being low. As an example, theswitch A 110 can detect a voltage less than 0.7 V on its input, and assert an interrupt signal in response to the detection. As a result of the interrupt signal, processes associated withPCH 116 andBMC 104 may be stopped. - When an interrupt event has completed, the bus can return to normal operation. For example, the bus wires can float to a logical “1” state and if the master would like to communicate with a slave, it can do so by issuing a start command. It is also noted that the master may recover after an interrupt has subsided. In other words, if the master is processing a data transaction and is stopped, it can attempt again to capture the data that was aborted subsequent to the event clearing.
- In accordance with embodiments of the present invention, a clock line may be driven to two or more levels for communicating more than one type of message. For example, the
switch B 112 may be configured to recognize two or more types of messages. Theswitch B 112 may be configured to drive theSCL 106 to a particular voltage level based on the received type of message. Theswitch A 110 may be configured to interrupt the type of message based on the driven voltage level of theSCL 106. In response to detection of the voltage level, theswitch A 110 may generate and communicate the message corresponding to the voltage level to an appropriate device such as thePCH 116. - As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
- Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium (including, but not limited to, non-transitory computer readable storage media). A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
- A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
- Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
- Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter situation scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
- Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
- The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
- The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a,” “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
- The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.
- The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.
Claims (20)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/960,883 US8954619B1 (en) | 2013-08-07 | 2013-08-07 | Memory module communication control |
US13/961,931 US9026685B2 (en) | 2013-08-07 | 2013-08-08 | Memory module communication control |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/960,883 US8954619B1 (en) | 2013-08-07 | 2013-08-07 | Memory module communication control |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/961,931 Continuation US9026685B2 (en) | 2013-08-07 | 2013-08-08 | Memory module communication control |
Publications (2)
Publication Number | Publication Date |
---|---|
US8954619B1 US8954619B1 (en) | 2015-02-10 |
US20150046628A1 true US20150046628A1 (en) | 2015-02-12 |
Family
ID=52443751
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/960,883 Active US8954619B1 (en) | 2013-08-07 | 2013-08-07 | Memory module communication control |
US13/961,931 Active 2033-12-13 US9026685B2 (en) | 2013-08-07 | 2013-08-08 | Memory module communication control |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/961,931 Active 2033-12-13 US9026685B2 (en) | 2013-08-07 | 2013-08-08 | Memory module communication control |
Country Status (1)
Country | Link |
---|---|
US (2) | US8954619B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160335213A1 (en) * | 2015-05-13 | 2016-11-17 | Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd. | Motherboard with multiple interfaces |
CN107533509A (en) * | 2015-05-29 | 2018-01-02 | 英特尔公司 | The specific self-refresh of memory devices enters and exited |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6426031B2 (en) * | 2015-03-13 | 2018-11-21 | ルネサスエレクトロニクス株式会社 | Semiconductor device and control method thereof |
CN111007991B (en) * | 2015-08-13 | 2024-01-26 | 北京忆恒创源科技股份有限公司 | Method for separating read-write requests based on NVDIMM and computer thereof |
US10888922B2 (en) * | 2015-11-04 | 2021-01-12 | Hitachi Metals, Ltd. | Casting apparatus and casting method |
US10007579B2 (en) * | 2016-03-11 | 2018-06-26 | Microsoft Technology Licensing, Llc | Memory backup management in computing systems |
US10331593B2 (en) * | 2017-04-13 | 2019-06-25 | Dell Products, Lp | System and method for arbitration and recovery of SPD interfaces in an information handling system |
CN112051889A (en) * | 2020-08-27 | 2020-12-08 | 海光信息技术有限公司 | Clock frequency self-adaptive adjusting method of I2C bus, master device and device system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140189177A1 (en) * | 2013-01-03 | 2014-07-03 | International Business Machines Corporation | High speed overlay of idle i2c bus bandwidth |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6745223B1 (en) | 2000-01-26 | 2004-06-01 | Viaclix, Inc. | User terminal for channel-based internet network |
US8006100B2 (en) | 2004-06-10 | 2011-08-23 | Oracle America, Inc. | Enhancing trusted platform module performance |
KR20080022185A (en) | 2005-06-09 | 2008-03-10 | 엔엑스피 비 브이 | Storage unit for a communication system node, method for data storage and communication system node |
US8341433B2 (en) | 2008-01-04 | 2012-12-25 | Dell Products L.P. | Method and system for managing the power consumption of an information handling system |
US8281074B2 (en) | 2008-10-07 | 2012-10-02 | Micron Technology, Inc. | Interface device for memory in a stack, storage devices and a processor |
WO2010093356A1 (en) | 2009-02-11 | 2010-08-19 | Stec, Inc. | A flash backed dram module |
US8169839B2 (en) | 2009-02-11 | 2012-05-01 | Stec, Inc. | Flash backed DRAM module including logic for isolating the DRAM |
US8977831B2 (en) | 2009-02-11 | 2015-03-10 | Stec, Inc. | Flash backed DRAM module storing parameter information of the DRAM module in the flash |
WO2011059448A1 (en) | 2009-11-13 | 2011-05-19 | Hewlett-Packard Development Company, L.P. | PARALLELIZED CHECK POINTING USING MATs AND THROUGH SILICON VIAs (TSVs) |
JP5565187B2 (en) | 2010-08-10 | 2014-08-06 | 富士通株式会社 | Information processing apparatus and interrupt control program |
TW201301721A (en) | 2011-06-27 | 2013-01-01 | Wistron Corp | Fan control system, computer system, and method of controlling fan speed thereof |
-
2013
- 2013-08-07 US US13/960,883 patent/US8954619B1/en active Active
- 2013-08-08 US US13/961,931 patent/US9026685B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140189177A1 (en) * | 2013-01-03 | 2014-07-03 | International Business Machines Corporation | High speed overlay of idle i2c bus bandwidth |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160335213A1 (en) * | 2015-05-13 | 2016-11-17 | Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd. | Motherboard with multiple interfaces |
CN107533509A (en) * | 2015-05-29 | 2018-01-02 | 英特尔公司 | The specific self-refresh of memory devices enters and exited |
Also Published As
Publication number | Publication date |
---|---|
US20150046615A1 (en) | 2015-02-12 |
US8954619B1 (en) | 2015-02-10 |
US9026685B2 (en) | 2015-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8954619B1 (en) | Memory module communication control | |
US8468389B2 (en) | Firmware recovery system and method of baseboard management controller of computing device | |
EP3161639B1 (en) | Techniques for handling errors in persistent memory | |
US9389937B2 (en) | Managing faulty memory pages in a computing system | |
US20170091042A1 (en) | System and method for power loss protection of storage device | |
US9817468B2 (en) | System and method for automatic detection and switching between USB host and device rolls on a type-A connector | |
CN104050061B (en) | A kind of Based PC Ie bus many master control board redundancies standby system | |
US7490176B2 (en) | Serial attached SCSI backplane and detection system thereof | |
EP2372521A2 (en) | Remote direct storage access | |
US10846159B2 (en) | System and method for managing, resetting and diagnosing failures of a device management bus | |
CN106610712B (en) | Substrate management controller resetting system and method | |
US9712382B2 (en) | Retrieving console messages after device failure | |
US10691562B2 (en) | Management node failover for high reliability systems | |
CN112825011A (en) | Power-on and power-off control method and system of PCIe device | |
US20100088533A1 (en) | Single Shared Power Domain Dynamic Load Based Power Loss Detection and Notification | |
US9377966B2 (en) | Method and apparatus for efficiently processing storage commands | |
US9152584B2 (en) | Providing bus resiliency in a hybrid memory system | |
US20130301671A1 (en) | Detecting Thermal Interface Material ('TIM') Between A Heat Sink And An Integrated Circuit | |
US20180338007A1 (en) | System and method for providing extensible communication gateway with session pooling | |
US9170222B2 (en) | Detecting thermal interface material (‘TIM’) between a heat sink and an integrated circuit | |
US20140181496A1 (en) | Method, Apparatus and Processor for Reading Bios | |
US10324777B2 (en) | Register-based communications interface | |
US9405629B2 (en) | Information processing system, method for controlling information processing system, and storage medium | |
US9141565B2 (en) | Memory bus attached input/output (‘I/O’) subsystem management in a computing system | |
US7868651B1 (en) | Off-die termination of memory module signal lines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DECESARIS, MICHAEL;PARSONESE, JAMES J.;REMIS, LUKE D.;AND OTHERS;SIGNING DATES FROM 20130805 TO 20130806;REEL/FRAME:030956/0106 |
|
AS | Assignment |
Owner name: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD., SINGAPORE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:034194/0111 Effective date: 20140926 Owner name: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD., Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:034194/0111 Effective date: 20140926 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: LENOVO INTERNATIONAL LIMITED, HONG KONG Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.;REEL/FRAME:037101/0969 Effective date: 20151112 |
|
AS | Assignment |
Owner name: LENOVO INTERNATIONAL LIMITED, HONG KONG Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNMENT DOCUMENT CONTAINING TYPO ERRORS PREVIOUSLY RECORDED AT REEL: 037101 FRAME: 0969. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNOR:LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.;REEL/FRAME:037689/0190 Effective date: 20151211 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551) Year of fee payment: 4 |
|
AS | Assignment |
Owner name: LENOVO INTERNATIONAL LIMITED, HONG KONG Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE LTD.;REEL/FRAME:050300/0721 Effective date: 20150401 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |