This disclosure relates generally to computing systems with variable memory module configurations.
Computing systems are often customizable to meet various customer needs. An aspect of the computing system that can be reconfigured is memory. For example, computing systems may accommodate varying memory module configurations. Generally, each memory module configuration requires a specified number of modules correctly installed in specific slots on the printed circuit board (PCB). Oftentimes, the system can include a user manual or printed layout to provide a guidance to ensure memory modules are correctly placed on the PCB based on the memory module configuration desired. However, an incorrectly placed or missing memory module is undetectable until the computing system is up and an error log is produced, which then requires that the system be disassembled and redone, which can be tedious, time consuming and prone to error.
Example implementations are illustrated in referenced figures of the drawings. It is intended that the implementations and figures disclosed herein are to be considered illustrative rather than limiting.
Aspects of the present disclosure involve systems, methods, devices and the like, for verifying and validating accurate memory module placement. In one embodiment, a printed board is configured to include indicators and actuating elements that can be used to indicate correct memory module location placement within the printed board. The actuating elements can be in the form of buttons that may be depressed and configured to trigger indicators such as, light emitting diodes (LED) that correlate to slots to where a memory module should be connected on the PCB. A lit LED may indicate a slot where a memory module is placed. Different LEDs or combination of LEDs may indicate different memory configurations. In another embodiment, the actuating elements can be used to verify accurate memory module placement. Once memory modules are in place, depression of the actuating element again can be used to ensure that the memory modules are located at each of the slots corresponding to the lit LEDs.
To store varying amounts of data, motherboards 104 may be configured with more or less memory modules 106 based on the functions intended for the server 102, and cost, among other things. In one possible configuration, a motherboard 104 may be in a “full configuration” where all memory slots 108 are occupied by a memory module 106. A memory slot 108 allows computer memory (e.g., dual in-line memory module DIMM) to be added to a motherboard 104. In other possible configurations, the motherboard 104 can function on a lower memory configuration (e.g., minimum or medium configuration) where less than all or a set of the slots 108 are used.
Conventionally, motherboards 104 have been designed to include memory slots 108 that are aligned with corresponding LEDs 112 that light when a faulty memory module (e.g., a (DIMM) 106) is located in the memory slot 108. The fault can be identified by depressing a fault remind button 110 to check for and report faults. Generally, a device driver monitors the operational status of the mother board. A change in the status can cause an error report to execute including the existence of a faulty memory module. A fault response processor is operable to consequent upon receipt of the error report by estimating the location of the faulty memory module and applying the fault indication that identifies the location corresponding to the faulty memory module 106. Therefore, a depression of the fault remind button 110 illuminates the corresponding LED 112, which enables the identification and replacement of the faulty memory module.
Conventional motherboards 104, however, fail to provide an indication when a memory module is incorrectly placed in a slot 108 or missing all together.
In
As indicated, servers 102 can be configured with varying memory configurations based on system needs. For example, three configurations commonly used include: full, medium, and minimum configurations. A full configuration can include a configuration where the motherboard 104 is fully stocked and all slots 108 available have a memory module 106. Medium and minimum configurations are those configurations with fewer memory modules 106 installed relative to the available slots. Therefore, empty slots 108 will exist between those filled with memory modules 106, creating an opportunity for error. However, only correct slots must be populated for any configuration less than a full configuration. Thus, in medium and minimum configurations, a missing or misplaced memory module 106 could not be so easily identified relative to a full configuration where a quick visual inspection may identify an open slot 108. Note that although full, minimum, and medium configurations are discussed herein, other configurations are possible and the described configurations are provided as examples only.
To aid in the correct placement of the memory modules 106, configuration actuating elements 204 and 206 can be depressed and used to locate the correct slots 108 in which the memory modules 106 belong using adjoining configuration LEDs 208.
In
In another instance, a device driver can provide an indication (via a report generated by the device driver) to a processor of the corresponding slot locations for the minimum configuration selected. The processor provides an indication of the correct slot locations corresponding to the minimum configuration such that depression of the minimum configuration actuating element 204 causes the configuration LEDs 208 to light. For example, minimum configuration actuating element 204 can be pushed, and configuration LEDs 208A-208D illuminate, where configuration LEDs 208A-208D corresponds to the correct slots for memory module 106A-106D placement for minimum configuration. As shown, memory module 106C is not in the correct slot and should be moved to the adjacent slot as shown in the dashed here. Note that the number and location of the lit configuration LEDs 208 can vary and the current configuration is used for exemplary purposes only.
In some instances, it is beneficial to ensure that once the memory modules 106 have been placed in the corresponding slots that verification occurs to ensure modules were not missed. In this instance, the minimum configuration actuating element 204 can be depressed again as verification that the memory modules 106 are adequately placed in the corresponding slots. Verification can occur by visually ensuring the memory modules 106 are installed in the slots 108 with the illuminated configuration LEDs 208. Therefore, the minimum verification actuating element 204 can have the dual functionality, for indication and verification.
In
In another instance, a device driver can provide an indication to the processor the slots locations corresponding to the medium configuration. The processor can then process the locations such that depression of the minimum configuration actuating element 204 caused the configuration LEDs 208 to light. In the example shown in
Further, like with minimum configuration, the medium configuration actuating element 206 can also be used for verification purposes. That is to say, once memory modules 106 are in place, the medium configuration actuating element 206 can be depressed once more to visually verify that the memory modules 106 are installed in the slots with the illuminated configuration LEDs 208.
Note that configuration LEDs 208, can operate under a storage capacity which is able to hold charge after the server 102 is down and the motherboard 104 is out of the server 102 and being tested, reconfigured, or maintained. That is to say, slot placement location can be determined from the configuration LEDs 208 after powering down the server 102 using a backup source that can be used to power the configuration LEDs 208. The backup source can come in the form of a battery, a super capacitor, or other storage unit.
In some instances, the slots 108 may also be lit to further enhance the correct location where memory modules should reside. For example, a small pin hole can be added to the side wall of the slot 108 adjacent to the LED so that the slot 108 itself is illuminated. As another example, acrylic tabs can light up to ensure correct slot 108 is used. Still as another example, the slots 108, configuration LEDs 208, and/or configuration actuating elements 204 and 206 may be color coordinated to correspond to the different configurations.
In some instances, software routines instead of hardware components (e.g., configuration actuating elements 204, 206 and configuration LEDs 208) may be added to aid in locating the correct slots 108 relative to the desired configuration.
In one instance, the fault remind button 110 may be depressed one or more times based on the desired functionality. For example, the fault remind button 110 may be depressed one time for identifying faulty memory modules 106, two times for identifying slot locations to populate in a minimum memory configuration, and three times for identifying slots locations to populate in a medium memory configuration and in some instances four times to clear all configurations.
Once the memory configuration is determined, method 500 continues to operation 504 where a decision is made as to whether the configuration determined is a full configuration. A full configuration is a configuration where all the slots in the motherboard 104 are fully populated. That is to say, a memory module 106 resides in every slot 108 of the current motherboard 104. If the decision is that indeed full configuration is desired, then method 500 continues to operation 506. In operation 506, a memory module 106 is installed in each and every slot of the motherboard 104. In this configuration, validation and/or verification of memory module location is not necessary as the motherboard 104 is fully populated (e.g., full DIMM banks).
However, if the current memory configuration is not a full configuration, then method 500 continues to operation 508 where the corresponding configuration button/actuating element is depressed. That is to say the minimum or medium configuration button is depressed corresponding to the current memory configuration desired. In a minimum memory configuration, the minimum configuration actuating element 204 is depressed and in the medium memory configuration, the medium configuration actuating element 206 is depressed. Depression of the actuating element 204, 206 illuminates configuration LEDs 208 corresponding to the appropriate slot 108 location where a memory module 106 can reside based on the selected configuration. In some instances, the configuration LEDs 208 and the configuration actuating elements 204, 206 can be directly wired such that depression of the configuration actuating element 204 or 206 illuminates the corresponding configuration LEDs 208. In other instances, depression of the configuration actuating elements 204, 206 can trigger the identification of the slots by a report generated by a device driver. Still in other instances, the fault remind button 110 may be functionally enabled to identify the slots 108 that may be filled by the memory modules 106 based on a routine that correlates the number of depression on the fault remind button 110 to a function.
In operation 508, the memory modules 106 (e.g., DIMMs) are installed in the corresponding slots 108 illuminated by the adjacent LEDs. Again, minimum configuration may require less memory than the medium configuration. Thus, in the medium configuration more memory modules may populate the motherboard 104.
In operation 512, once the memory modules 106 have been installed, the corresponding configuration actuating element 206, 208 can be depressed again as a verification that the memory modules where correctly installed. Operation 512 serves as a verification step in method 500, by highlighting the slots once again to ensure that the memory modules 106 are correctly placed. In this operation, the corresponding LEDs and/or slots may be highlighted. Once the memory modules are correctly placed for the corresponding configuration (e.g., full, medium, or minimum), the system is booted up in operation 514.
Referring to
The computer system 600 may be a computing system is capable of executing a computer program product to execute a computer process. Data and program files may be input to the computer system 600, which reads the files and executes the programs therein. Some of the elements of the computer system 600 are shown in
The processor 602 may include, for example, a central processing unit (CPU), a microprocessor, a microcontroller, a digital signal processor (DSP), and/or one or more internal levels of cache. There may be one or more processors 602, such that the processor 602 comprises a single central-processing unit, or a plurality of processing units capable of executing instructions and performing operations in parallel with each other, commonly referred to as a parallel processing environment. Further, the processor 602 can be used to run software that enables the identification of the slots that correspond to the memory configuration. The location of slots and/or incorrectly placed memory modules may be identified from reports that can be generated by device drivers within the software running on the processor 602.
The computer system 600 may be a conventional computer, a distributed computer, server, or any other type of computer, such as one or more external computers made available via a cloud computing architecture. The presently described technology is optionally implemented in software stored on the data storage device(s) 604, stored on the memory device(s) 606, and/or communicated via one or more of the ports 608-612, thereby transforming the computer system 600 in
The one or more data storage devices 604 may include any non-volatile data storage device capable of storing data generated or employed within the computing system 600, such as computer executable instructions for performing a computer process, which may include instructions of both application programs and an operating system (OS) that manages the various components of the computing system 600. The data storage devices 604 may include, without limitation, magnetic disk drives, optical disk drives, solid state drives (SSDs), flash drives, and the like. The data storage devices 604 may include removable data storage media, non-removable data storage media, and/or external storage devices made available via wired or wireless network architecture with such computer program products, including one or more database management products, web server products, application server products, and/or other additional software components. Examples of removable data storage media include Compact Disc Read-Only Memory (CD-ROM), Digital Versatile Disc Read-Only Memory (DVD-ROM), magneto-optical disks, flash drives, and the like. Examples of non-removable data storage media include internal magnetic hard disks, SSDs, and the like. The one or more memory devices 606 may include volatile memory (e.g., dynamic random access memory (DRAM), static random access memory (SRAM), etc.), dual in-line memory modules (DIMMs), and/or non-volatile memory (e.g., read-only memory (ROM), flash memory, etc.).
Computer program products containing mechanisms to effectuate the systems and methods in accordance with the presently described technology may reside in the data storage devices 604 and/or the memory devices 606, which may be referred to as machine-readable media. It will be appreciated that machine-readable media may include any tangible non-transitory medium that is capable of storing or encoding instructions to perform any one or more of the operations of the present disclosure for execution by a machine or that is capable of storing or encoding data structures and/or modules utilized by or associated with such instructions. Machine-readable media may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more executable instructions or data structures.
In some implementations, the computer system 600 includes one or more ports, such as an input/output (I/O) port 608, a communication port 610, and a sub-systems port 612, for communicating with other computing, or network devices. It will be appreciated that the ports 608-612 may be combined or separate and that more or fewer ports may be included in the computer system 600.
The I/O port 608 may be connected to an I/O device, or other device, by which information is input to or output from the computing system 600. Such I/O devices may include, without limitation, one or more input devices, output devices, and/or environment transducer devices. In one implementation, the input devices convert a human-generated signal, such as, human voice, physical movement, physical touch or pressure, and/or the like, into electrical signals as input data into the computing system 600 via the I/O port 608. Similarly, the output devices may convert electrical signals received from computing system 600 via the I/O port 608 into signals that may be sensed as output by a human, such as sound, light, and/or touch. The input device may be an alphanumeric input device, including alphanumeric and other keys for communicating information and/or command selections to the processor 602 via the I/O port 608. The input device may be another type of user input device including, but not limited to: direction and selection control devices, such as a mouse, a trackball, cursor direction keys, a joystick, and/or a wheel; one or more sensors, such as a camera, a microphone, a positional sensor, an orientation sensor, a gravitational sensor, an inertial sensor, and/or an accelerometer; and/or a touch-sensitive display screen (“touchscreen”). The output devices may include, without limitation, a display, a touchscreen, a speaker, a tactile and/or haptic output device, a LED, and/or the like.
In one implementation, a communication port 610 is connected to a network by way of which the computer system 600 may receive network data useful in executing the methods and systems set out herein as well as transmitting information and network configuration changes determined thereby. Stated differently, the communication port 610 connects the computer system 600 to one or more communication interface devices configured to transmit and/or receive information between the computing system 600 and other devices by way of one or more wired or wireless communication networks or connections. Examples of such networks or connections include, without limitation, Universal Serial Bus (USB), Ethernet, Wi-Fi, Bluetooth®, Near Field Communication (NFC), Long-Term Evolution (LTE), and so on. One or more such communication interface devices may be utilized via the communication port 610 to communicate one or more other machines, either directly over a point-to-point communication path, over a wide area network (WAN) (e.g., the Internet), over a local area network (LAN), over a cellular (e.g., third generation (3G) or fourth generation (4G)) network, or over another communication means. Further, the communication port 610 may communicate with an antenna for electromagnetic signal transmission and/or reception. In some examples, an antenna may be employed to receive Global Positioning System (GPS) data to facilitate determination of a location of a machine, vehicle, or another device.
The computer system 600 may include a sub-systems port 612 for communicating with one or more systems and/or exchange information between the computer system 600 and one or more sub-systems.
The computer system 600 set forth in
In the present disclosure, the methods disclosed may be implemented as sets of instructions or software readable by a device. Further, it is understood that the specific order or hierarchy of steps in the methods disclosed are instances of example approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the method can be rearranged while remaining within the disclosed subject matter. The accompanying method claims present elements of the various steps in a sample order, and are not necessarily meant to be limited to the specific order or hierarchy presented.
The described disclosure may be provided as a computer program product, or software, that may include a non-transitory machine-readable medium having stored thereon instructions, which may be used to program a computer system (or other electronic devices) to perform a process according to the present disclosure. A machine-readable medium includes any mechanism for storing information in a form (e.g., software, processing application) readable by a machine (e.g., a computer). The machine-readable medium may include, but is not limited to, magnetic storage medium, optical storage medium; magneto-optical storage medium, read only memory (ROM); random access memory (RAM); erasable programmable memory (e.g., EPROM and EEPROM); flash memory; or other types of medium suitable for storing electronic instructions.
While the present disclosure has been described with reference to various implementations, it will be understood that these implementations are illustrative and that the scope of the present disclosure is not limited to them. Many variations, modifications, additions, and improvements are possible. More generally, embodiments in accordance with the present disclosure have been described in the context of particular implementations. Functionality may be separated or combined in blocks differently in various embodiments of the disclosure or described with different terminology. These and other variations, modifications, additions, and improvements may fall within the scope of the disclosure as defined in the claims that follow.