US20170068607A1 - Systems and methods for detecting memory faults in real-time via smi tests - Google Patents
Systems and methods for detecting memory faults in real-time via smi tests Download PDFInfo
- Publication number
- US20170068607A1 US20170068607A1 US14/846,416 US201514846416A US2017068607A1 US 20170068607 A1 US20170068607 A1 US 20170068607A1 US 201514846416 A US201514846416 A US 201514846416A US 2017068607 A1 US2017068607 A1 US 2017068607A1
- Authority
- US
- United States
- Prior art keywords
- memory
- stress test
- information handling
- smi
- handling system
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 219
- 238000012360 testing method Methods 0.000 title claims abstract description 89
- 238000000034 method Methods 0.000 title claims description 39
- 230000002950 deficient Effects 0.000 claims abstract description 19
- 238000003860 storage Methods 0.000 claims description 36
- 230000008439 repair process Effects 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 8
- 230000007547 defect Effects 0.000 abstract description 6
- 238000004891 communication Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/327—Alarm or error message display
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0775—Content or structure details of the error report, e.g. specific table structure, specific error fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2231—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test interrupt circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
Definitions
- the present disclosure relates in general to information handling systems, and more particularly to capitalize on testing memory via storage management interrupt (SMI) in real-time while the operating system of an information handling system is idle.
- SMI storage management interrupt
- An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information.
- information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated.
- the variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications.
- information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
- ECC error correction code
- DRAM dynamic random access memory
- non-ECC non-error correcting code
- Some methods such as enhanced pre-boot system assessment (ePSA) fault tolerant memory feature, may resolve some faulty cell issues post failure by mapping out failing memory regions of the DRAM.
- ePSA enhanced pre-boot system assessment
- memory diagnostics must be ran before failure occurs or data corruption and/or a loss of content may occur.
- ECC memory allows single bit correction to be performed in real-time, however on client devices, or traditionally consumer information handling systems, no such capability exists.
- row hammer tests require special stress algorithms to identify row to row coupling. Such coupling is identified by constantly toggling one row to see if the data of an adjacent row changes. This constant toggling requires a significant amount of time and is seldom executed to the extent necessary to discover all the problems or issues with the memory.
- Prior solutions rely on the need for ECC memory or memory testing if performed only after a problem is seen by an end user. For example, in one prior solution ePSA must be ran before any memory fix may be implemented which may result in data corruption as client memory does not have ECC.
- the present disclosure contemplates executing certain procedures in the background during OS operation such that normally prohibitively long typical factory memory tests may be implemented.
- a method may comprise receiving by an information handling system a system management interrupt (SMI) and determining if a processor of the information handling system is in an idle state.
- SMI system management interrupt
- a memory stress test is performed on a memory (or one or more locations of the memory) for a predetermined memory stress test time period during which the memory being tested is not available for use, for example, by any application or the operating system (OS).
- the method detects whether post package repair (PPR) is supported by the information handling system and likewise the processor.
- the information handling system may include any number of processors and any processor may be capable of spawning any number of threads and including any number of processing cores.
- the method continues with the PPR support receiving a memory indicator from the memory stress test where the memory error indicator indicates that the memory being tested includes a defective memory portion.
- the memory being tested may include any number of memory portions that are defective.
- the PPR support may apply a repair to the defective memory portion whereupon the memory being tested is release or rather made available for use by the OS or applications.
- an information handling system may include an information handling system, one or more processors of the information handling system, a memory communicatively coupled to the one or more processors, and one or more modules that comprise instructions stored in the memory.
- the one or more instructions may, when read and executed by the one or more processors, be operable to perform operations that include receiving at the information handling system an SMI, determining if the one or more processors are in an idle state, performing a memory stress test on one or more memory locations for a predetermined memory stress test time period, wherein during the memory stress test the one or more memory locations are not available, for example, not accessible by the OS or applications, detecting PPR support, receiving by the PPR support a memory error indicator from the memory stress test where the memory error indicator indicates that the one or more memory locations include a defective memory portion, applying by the PPR support, a repair to the defective memory portion, and releasing the one or more memory locations.
- an article of manufacture may include a computer-readable non-transitory storage media and computer-executable instructions carried on the computer-readable non-transitory storage medium of a computer system (or an information handling system), where the instructions, when read and executed, may cause a processor of the computer system to: receive at the computer system a SMI, determine if the one or more processors are in an idle state, perform a memory stress test on one or more memory locations for a predetermined memory stress test time period, where during the memory stress test the one or more memory locations are not available, for example, not accessible by the OS or applications, detect PPR support, receive by the PPR support a memory error indicator from the memory stress test where the memory error indicator indicates that the one or more memory locations include a defective memory portion, apply by the PPR support, a repair to the defective memory portion, and release the one or more memory locations.
- FIG. 1 illustrates a block diagram of an example information handling system, in accordance with certain embodiments of the present disclosure
- FIG. 2A illustrates a flow chart of an example method in accordance with certain embodiments of the present disclosure.
- FIG. 2B illustrates a flow chart of an example method in accordance with certain embodiments of the present disclosure.
- This disclosure generally relates to implementation of information handling systems and, in particular, relates to the capitalization on testing memory via system management interrupt (SMI) while the information handling system is operational and idle.
- SMI system management interrupt
- DRAM dynamic random access memory
- DRAM may include redundant rows so as to remap bad circuits and improve yields.
- Such remapping is done at die sort using an “efuse” technology for double data rate type three (DDR3) and available via post package repair in double data rate type four (DDR4) which makes the “efuse” technology accessible to the controller.
- high levels of memory testing may be capable of being performed in the operating system (OS) due to memory utilization in a multi-threaded environment.
- the present disclosure provides a system and method for having the basic input/output system (BIOS) execute memory testing in SMI when the information handling system is operational and idle which allows continuous memory testing that has a minimum amount of impact to the information handling system, such as, not impacting performance.
- BIOS basic input/output system
- an information handling system may include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, or other purposes.
- an information handling system may be a personal computer (tablet or laptop or desktop or server or any other information handling system known to one of ordinary skill in the art) a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price.
- the information handling system may include random access memory (RAM), dynamic random access memory (DRAM), system management RAM (SMRAM), one or more processing resources such as a central processing unit (CPU) or hardware or software control logic, ROM, and/or other types of nonvolatile memory. Additional components of the information handling system may include an interface to a virtual machine manager, an interface to a web console, an interface to a management console, a remote access controller, a hypervisor, one or more disk drives, one or more network ports for communication with external devices as well as various input output (I/O) devices, such as a keyboard, a mouse, and a video display. The information handling system may also include one or more buses operable to transmit communications between the various hardware components.
- RAM random access memory
- DRAM dynamic random access memory
- SMRAM system management RAM
- processing resources such as a central processing unit (CPU) or hardware or software control logic
- ROM read-only memory
- Additional components of the information handling system may include an interface to a virtual machine manager, an interface to a web
- Computer-readable storage media may include any instrumentality or aggregation of instrumentalities that may retain data and/or instructions for a period of time.
- Computer-readable non-transitory storage media may include, for example, without limitation, storage media such as a direct access storage device (for example, a hard disk drive or floppy disk), a sequential access storage device (for example, a tape disk drive), compact disk, DRAM, CD-ROM, DVD, RAM, ROM, electrically erasable programmable read-only memory (EEPROM), and/or flash memory.
- FIG. 1 illustrates an information handling system environment 100 that can be implemented on one or more information handling systems.
- an information handling system can include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, entertainment, or other purposes.
- an information handling system may be a personal computer, a laptop computer, a smart phone, a tablet device or other consumer electronic device, a network server, a network storage device, a switch, a router, or another network communication device, or any other suitable device known to one of ordinary skill in the art and may vary in size, shape, performance, functionality, and price.
- an information handling system may include processing resources for executing machine-executable code, such as a central processing unit (CPU), a programmable logic array (PLA), an embedded device such as a System-on-a-Chip (SoC), or other control logic hardware.
- An information handling system may also include one or more computer-readable medium for storing machine-executable code, such as software or data. Additional components of an information handling system can include one or more storage devices that can store machine-executable code, one or more communications ports for communicating with external devices, and various I/O devices, such as a keyboard, a mouse, and a video display.
- An example of an information handling system includes a multi-tenant chassis system where groups of tenants (users) share a common chassis, and each of the tenants has a unique set of resources assigned to them.
- the resources can include blade servers of the chassis, I/O modules, Peripheral Component Interconnect- Express (PCIe) cards, storage controllers, and the like.
- PCIe Peripheral Component Interconnect- Express
- Information handling system environment 100 includes a user environment 140 and a system environment 130 .
- User environment 140 may comprise user systems 142 , 144 , and 146 .
- User systems 142 , 144 , and 146 may be any type of information handling system known to one of ordinary skill in the art.
- user systems 142 , 144 , and 146 may be laptop computers, PCs, thin-clients, smart monitors, tablets, phablets, or any other device known to one of ordinary skill in the art that can connect to a network as an endpoint for information handling system environment 130 .
- 130 and 140 may be a single system in one location.
- environments 130 and 140 may represent a distributed environment such as a virtual desktop infrastructure (VDI) where the user environment 140 is located remotely from the information handling system environment 130 . While three devices are shown as user systems 142 , 144 , and 146 , one of ordinary skill in the art understands that user systems 142 , 144 , and 146 may be any number of suitable devices.
- VDI virtual desktop infrastructure
- Information handling system 128 may comprise any number of devices and may be any number of information handling systems suitable to implement required tasks.
- Information handling system 128 includes a processor 102 , basic input/output system (BIOS) 114 , memory 104 , storage 106 , an input/output (I/O) interface 108 , a network interface 110 , and a bus(es) 112 .
- BIOS basic input/output system
- I/O input/output
- this disclosure describes and illustrates a particular information handling system 128 having a particular set of particular components in a particular arrangement, this disclosure contemplates any suitable information handling system having any suitable combination and arrangement of components as known to one of ordinary skill in the art.
- processor 102 may include hardware and software components for the structure and operation of the process steps and system disclosed. While not specifically shown, it should be understood that any number of program modules comprising computer-readable instructions may be stored in the information handling system 128 , storage 106 (a computer-readable medium) or other memory and may be executed by processor 102 . In one or more embodiments, processor 102 may be a central processing unit (CPU). Upon execution of the computer-readable instructions stored in a computer-readable medium, certain actions may be performed as described in this disclosure.
- CPU central processing unit
- BIOS 114 is stored in non-volatile memory. BIOS 114 may include one or more settings associated with the operation of the information handling system 128 . For example, BIOS 114 may include a setting associated with the periodicity for testing memory via SMI.
- Storage 106 or memory 104 or other such memory may be a hard-disk drive, magnetic disk, optical disk, DRAM, ROM, RAM or any other computer media known to one of ordinary skill in the art for the storage and retrieval of data, including executable or computer-readable instructions. Data may be stored in any one or more of storage 106 and memory 104 . As is known to one of ordinary skill in the art, some storage mediums have faster data access times than other storage mediums.
- long-term data or data that does not need to be accessed frequently or quickly may generally be stored on a hard-disk drive or other non-volatile storage medium, such as storage 106 , known to one of ordinary skill in the art.
- Retrieving and storing data to storage 106 may increase the time to perform an I/O operation as access times are typically longer than performing I/O operations from a faster storage medium, for example, memory 104 .
- Memory 104 and storage 106 may be communicatively coupled to processor 102 and may include any system, device, or apparatus configured to retain program instructions and/or data for a period of time (for example, computer-readable storage media).
- storage 106 is non-volatile long-term memory such as a hard-disk drive, magnetic disk, optical disk or any other storage device known to one of ordinary skill in the art.
- Storage 106 typically has a longer access time than memory 104 .
- memory 104 may be memory with reasonably fast access times, such as RAM or DRAM.
- Memory 104 may be any memory known to one of ordinary skill in the art that provides efficient access to data, for example, RAM or DRAM.
- memory 104 includes main memory for storing instructions for processor 102 to execute or data for processor 102 to operate on.
- information handling system 128 may load instructions for execution from storage 106 or another source (such as, for example, another information handling system 128 , an external memory source, a remote memory source, or any other memory source known to one of ordinary skill in the art) to memory 104 .
- Bus 112 may include one or more buses for connecting processor 102 , memory 104 , storage 106 , I/O interface 108 and network interface 110 .
- I/O interface 108 includes hardware, software, or both for providing one or more interfaces for communication between information handling system 128 and one or more I/O devices.
- Information handling system 128 may include one or more I/O devices, where appropriate. One or more of these I/O devices may enable communication between an individual or other software and information handling system 128 .
- an I/O device may include a keyboard, keypad, microphone, monitor, mouse, or any other I/O device known to one of ordinary skill in the art or a combination of two or more I/O devices.
- the I/O device may allow an individual or other software to request instantiation of a virtual application.
- I/O interface 108 may include one or more devices or software drivers enabling processor 102 to drive one or more of these I/O devices.
- I/O interface 108 may include one or more I/O interfaces 108 , where appropriate. Although this disclosure describes and illustrates a particular I/O interface, the disclosure contemplates any suitable I/O interface.
- network interface 110 includes firmware, hardware, software, or any combination thereof for providing one or more interfaces for communication (for example, packet-based communication) between information handling system 128 and one or more other information handling systems 128 on one or more networks.
- network interface 110 may include a network interface controller (NIC) or network adapter for communicating with a telephone network, an Ethernet or other wire-based network or a wireless NIC (WNIC) or wireless adapter for communicating with a wireless network, such as a WI-FI network, or any other network interface for communicating with any type of network known to one of ordinary skill in the art.
- NIC network interface controller
- WNIC wireless NIC
- information handling system 128 may connect to user systems 142 , 144 , and 146 through a network via a wireless or wired connection using any protocol known to one of ordinary skill in the art.
- bus 112 includes hardware, software, or both which couples components of information handling system 128 to each other.
- Bus 112 may include one or more buses where appropriate and may communicatively, physically, virtually, or otherwise as required couple the components of information handling system 128 to each other.
- Bus 112 may connect one or more information handling systems 128 to each other.
- FIG. 2A illustrates a method in accordance with certain embodiments of the present disclosure.
- the time period or interval for issuing an SMI is established. Such may be referred to throughout as an SMI time period, SMI interval, or SMI timer.
- the SMI interval is stored in the BIOS and is a setting available via BIOS interface.
- the SMI interval may be set via a graphical user interface (GUI), a command-line interface, a pre-set configuration of the BIOS, or by any other interface or way known to one of ordinary skill in the art.
- GUI graphical user interface
- setting the SMI interval may require a password.
- the SMI interval may be a password protected setting in the BIOS.
- the SMI interval may be set according to any interval of time, for example, milliseconds, seconds, microseconds, nanoseconds, or any other interval of time known to one of ordinary skill in the art.
- the information handling system 128 may only perform a memory stress test when an SMI occurs. The SMI occurs based, at least in part, on the SMI interval set in step 202 . If an SMI has not occurred at step 204 , then the method may continue to poll to determine if an SMI has occurred. In one embodiment, information handling system 128 continuously polls, polls on a predetermined interval, polls according to one or more parameters associated with processor 102 or any other polling or detecting known to one of ordinary skill in the art to determine if an SMI has occurred. If an SMI has occurred, the method continues to step 206 .
- the idle state of the processor 102 is determined.
- a memory stress test is performed when the OS is not actively storing and retrieving data from memory. For example, it may be determined that the processor 102 is in sleep mode.
- the idle state of the processor 102 may be determined in one or more embodiments by implementing steps 208 , 210 , and 212 or by using any other criteria known to one of ordinary skill in the art. In one embodiment, one or more criteria may be used in lieu of or in addition to steps 206 - 212 . For example, in one embodiment, the power source may be determined prior to step 206 or in lieu of steps 206 - 212 .
- the power source is a temporary power source, such as a battery
- the power source is a temporary power source, such as a battery
- an information handling system 128 powered via a battery may not have sufficient remaining power to support execution of the memory stress test while continuing proper operational status of the information handling system 128 . In such an example, it is best and more user-friendly not to deplete any remaining power by execution of the memory stress test.
- the method may continue at step 204 .
- the method may continue at step 226 such that the SMI interval is modified.
- the method may set a flag or other semaphore so as not to continue any SMI analysis until a stable, such as an alternating current (A/C) power source from an outlet (a stable power source), is connected to the information handling system 128 .
- A/C alternating current
- processor 102 may be a single processor, two processors, or any number of processor.
- Processor 102 may include one or more processor cores. When multiple processor cores exists, then, if an SMI has occurred at step 204 , at step 206 it must be determined the idle state of all or at least one or more processor cores based, at least in part, on one or more indicators, criteria, factors and/or parameters.
- one type of idle state indicator (the time stamp counter) is read.
- the time stamp counter indicates how long the processor 102 has been inactive or in sleep mode.
- only step 208 may be implemented to determine the processor 102 idle state.
- the processor may be determined to be idle based, at least in part, on comparing the time stamp counter to a predetermined threshold associated with the time stamp counter.
- the time stamp counter predetermined threshold may be a BIOS setting (hard-coded or adjustable) or any other time stamp counter predetermined threshold known to one of ordinary skill in the art.
- a register value indicative of how long a processor 102 has been active is read.
- C0_MCNT or C0MCNT may be read to determine how long a processor 102 has been active.
- Each processor 102 may have a corresponding active clock cycle counter
- each thread of a processor 102 may have a corresponding active clock cycle counter with the active clock cycle counter value for a given processor 102 equaling the sum of all the active clock cycle counters for all the threads of the processor 102 .
- the utilization ratio for processor 102 is determined.
- the utilization ratio is determined by dividing the active clock cycle counter value from step 210 by the time stamp counter from 208 .
- processor 102 includes multiple processor cores and the utilization ratio must be determined for each processor core.
- the processor 102 is determined to be idle by comparing the utilization ratio from step 212 to a predetermined threshold associated with the utilization ratio.
- the utilization ratio predetermined threshold may be a BIOS setting (hard-coded or adjustable) or any other utilization ratio predetermined threshold known to one of ordinary skill in the art. For example, in one embodiment, if the utilization ratio is less than 1%, which means the processor 102 is in sleep state 99% of the time, then at step 214 it would be determined that the processor is idle and the method would continue to step 216 to perform the memory stress test for the predetermined memory stress test time period.
- one or more criteria may be used in lieu of or in addition to steps 208 - 212 .
- storage system utilization may be checked to determine whether an information handling system 128 is idle. For example, it may be determined if large amounts of data are being copied to a memory location, such as a hard disk drive.
- the processor 102 may be mainly idle but other components of the information handling system 128 may be busy copying data such that a memory stress test during the copying would interfere with or at least delay the copying of the data and thus the memory stress test would not be performed.
- a memory stress test is performed for a predetermined period of time (memory stress test time period).
- the memory stress test is ran in the background while other operations, that do not require access to the memory to be tested, of the information handling system 128 are performed.
- the memory stress test may be the only operation being performed at the information handling system 128 . During the memory stress test, the tested memory is not available to the OS or any applications so as to prevent loss of data or improper operation of the information handling system 128 .
- a memory stress test may be provided by the manufacturer of the memory to be tested, a third party application, or any other memory test known to one of ordinary skill in the art.
- a memory stress test may be an OS memory test, a BIOS memory test, a diagnostics memory test or any other memory test known to one of ordinary skill in the art, but the memory stress test must run in SMI, and the entire test may not be performed in one interval or a single memory stress test time interval.
- the memory stress test may test 0.1% of a memory, then wait for the next SMI timer and test another 0.1%, such that over 1000 SMIs may be required to complete the memory stress test. In this example, if the period is 1 second between SMIs and 1 millisecond per memory stress test, then it would take 1001 seconds to complete the memory stress test.
- the predetermined period of time may be a value stored as a BIOS setting, a value stored in memory 104 or storage 106 , or any other value known to one of ordinary skill in the art.
- the memory stress test time period (length of time the memory stress test is executed) may be a fixed value or an adjustable value.
- the memory stress test time period may be set via a GUI, a command-line interface or any other interface known to one of ordinary skill in the art.
- the memory stress test time period may require a password before it can be modified.
- the value of the memory stress test time period may be based, at least in part, on the type of information handling system 128 , the number of processors 102 , how the information handling system 128 is being used, the type of applications executing on the information handling system 128 , the utilization ratio, or any other criteria known to one of ordinary skill in the art.
- the memory stress test time period is set to a value of less than or equal to 100 milliseconds.
- FIG. 2B illustrates a flow chart of an example method in accordance with certain embodiments of the present disclosure.
- teachings of the present disclosure may be implemented in a variety of configurations of information handling system 128 .
- a memory error was detected from step 216 of FIG. 2A .
- a data structure, specific memory location, table entry, database entry, an array or any other way for passing or storing information as known to one of ordinary skill in the art may be used as an indicator of the memory error.
- the memory error may indicate that a defective portion of memory was detected during the memory stress test and may identify the location of the defective portion of memory.
- the identified defective portion of memory may be indicative of a block of memory, a cell of memory or any other segment or division of memory known to one of ordinary skill in the art.
- the memory stress test may generate a memory error indicator that identifies the defective portion of memory.
- step 226 If a memory error is not detected at step 218 , then the method continues to step 226 . In one embodiment, if no error is detected the method continues to step 204 . If a memory error is detected then corrective action may be taken such as mapping out the bad raw memory with the spare raw memory.
- the BIOS will also store that the memory error has been repaired or fixed in the serial presence detect (SPD) (EEPROM attached to the dual inline memory module (DIMM)). Such may be informative for a future boot of the information handling system 128 if uncorrectable DIMMs have already been Single Bit corrected with post package repair (PPR).
- SPD serial presence detect
- DIMM dual inline memory module
- step 220 it is determined if the BIOS detects PPR support. If PPR is not supported, then at step 228 data may be captured for use along with any indicated defects at step 230 . That is, if PPR is not supported the necessary data must be stored along with any information related to the failure so that during the next boot of the information handling system 128 the portions of tested memory identified as having defects are not allocated or used by an application or the OS. This is done by reserving the memory for the BIOS.
- step 222 standard PPR commands are issued and at step 224 any necessary repairs to the tested memory are applied and the memory associated with the memory stress test is released such that it is available for use.
- BIOS detects an error and utilizes PPR to repair or fix any errors, no further action is needed by the information handling system 128 or processor 102 .
- the repair or fix is applied at the DIMM level such that the information handling system 128 and processor 102 continue to operate normally with respect to reading/writing the raw data.
- the information handling system 128 or the processor 102 are oblivious to any repair or fix performed as a result of the memory stress test.
- the periodicity of SMI may be modified.
- the SMI interval is lengthened such that a memory stress test is executed or implemented less frequently or is shortened such that a memory stress test is ran more frequently.
- Modification of the SMI interval may be based, at least in part, on one or more criteria. For example, the SMI interval may be lengthened or shortened depending on whether any errors were detected (the memory error indicator) during a prior memory stress test, the number of processors 102 , the utilization ratio, known or predicted reliability of the tested memory, increase or decrease in system utilization, removal of stable power source, increase or decrease in temperature or any other criteria known to one of ordinary skill in the art.
- FIG. 2A and FIG. 2B disclose a particular number of steps to be taken each may be executed with greater or lesser steps than those depicted.
- FIG. 2A and FIG. 2B discloses a certain order of steps to be taken, the steps of each may be completed in any suitable order.
- FIG. 2A and FIG. 2B may be implemented numerous times before the memory stress test has tested all of the memory to be tested.
- the number of iterations may be based, at least in part, on the size of the memory to be tested, the memory stress test time period, or any other criteria known to one of ordinary skill in the art.
- Methods of FIG. 2A and FIG. 2B may be implemented using information handling system 128 or any other system operable to implement methods. In certain embodiments, the methods of FIG. 2A and FIG. 2B may be implemented partially or fully in software and/or firmware embodied in computer-readable media.
- a computer-readable non-transitory storage medium or media may include one or more semiconductor-based or other integrated circuits (ICs) (such, as for example, field-programmable gate arrays (FPGAs) or application-specific ICs (ASICs)), hard disk drives (HDDs), hybrid hard drives (HHDs), optical discs, optical disc drives (ODDs), magneto-optical discs, magneto-optical drives, floppy diskettes, floppy disk drives (FDDs), magnetic tapes, solid-state drives (SSDs), RAM-drives, SECURE DIGITAL cards or drives, any other suitable computer-readable non-transitory storage media, or any suitable combination of two or more of these, where appropriate.
- ICs such, as for example, field-programmable gate arrays (FPGAs) or application-specific ICs (ASICs)
- HDDs hard disk drives
- HHDs hybrid hard drives
- ODDs optical disc drives
- magneto-optical discs magneto-optical drives
- an apparatus or system or a component of an apparatus or system being adapted to, arranged to, capable of, configured to, enabled to, operable to, or operative to perform a particular function encompasses that apparatus, system, component, whether or not it or that particular function is activated, turned on, or unlocked, as long as that apparatus, system, or component is so adapted, arranged, capable, configured, enabled, operable, or operative.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
- The present disclosure relates in general to information handling systems, and more particularly to capitalize on testing memory via storage management interrupt (SMI) in real-time while the operating system of an information handling system is idle.
- As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
- Information handling systems employ memories to store instructions and data. From time to time, certain portions of such memories may acquire a defect, making such portions unusable. Traditionally, the occurrence of such defects required replacement of such memory, which may be costly in terms of labor and hardware, as well as system downtime. More recent approaches to such failures and defects have included the use of error correction code (ECC) memory which requires significant logic and/or software complexity and significant cost to add the extra parity bit component and register.
- Further, up to 8% or more of dynamic random access memory (DRAM) modules are affected by single bit failures. As DRAM sizes grow, the need to provide a methodology for repairing marginally faulty cells in non-error correcting code (non-ECC) memory based platforms continues to increase. Some methods, such as enhanced pre-boot system assessment (ePSA) fault tolerant memory feature, may resolve some faulty cell issues post failure by mapping out failing memory regions of the DRAM. However, memory diagnostics must be ran before failure occurs or data corruption and/or a loss of content may occur. On servers, ECC memory allows single bit correction to be performed in real-time, however on client devices, or traditionally consumer information handling systems, no such capability exists.
- Further, row hammer tests require special stress algorithms to identify row to row coupling. Such coupling is identified by constantly toggling one row to see if the data of an adjacent row changes. This constant toggling requires a significant amount of time and is seldom executed to the extent necessary to discover all the problems or issues with the memory. Prior solutions rely on the need for ECC memory or memory testing if performed only after a problem is seen by an end user. For example, in one prior solution ePSA must be ran before any memory fix may be implemented which may result in data corruption as client memory does not have ECC. The present disclosure contemplates executing certain procedures in the background during OS operation such that normally prohibitively long typical factory memory tests may be implemented.
- In accordance with the teachings of the present disclosure, the disadvantages and problems associated with memory failures are reduced or eliminated.
- In accordance with embodiments of the present disclosure, a method may comprise receiving by an information handling system a system management interrupt (SMI) and determining if a processor of the information handling system is in an idle state. A memory stress test is performed on a memory (or one or more locations of the memory) for a predetermined memory stress test time period during which the memory being tested is not available for use, for example, by any application or the operating system (OS). The method detects whether post package repair (PPR) is supported by the information handling system and likewise the processor. The information handling system may include any number of processors and any processor may be capable of spawning any number of threads and including any number of processing cores. If PPR support is available, then the method continues with the PPR support receiving a memory indicator from the memory stress test where the memory error indicator indicates that the memory being tested includes a defective memory portion. The memory being tested may include any number of memory portions that are defective. The PPR support may apply a repair to the defective memory portion whereupon the memory being tested is release or rather made available for use by the OS or applications.
- In accordance with embodiments of the present disclosure, an information handling system may include an information handling system, one or more processors of the information handling system, a memory communicatively coupled to the one or more processors, and one or more modules that comprise instructions stored in the memory. The one or more instructions may, when read and executed by the one or more processors, be operable to perform operations that include receiving at the information handling system an SMI, determining if the one or more processors are in an idle state, performing a memory stress test on one or more memory locations for a predetermined memory stress test time period, wherein during the memory stress test the one or more memory locations are not available, for example, not accessible by the OS or applications, detecting PPR support, receiving by the PPR support a memory error indicator from the memory stress test where the memory error indicator indicates that the one or more memory locations include a defective memory portion, applying by the PPR support, a repair to the defective memory portion, and releasing the one or more memory locations.
- In further embodiments of the present disclosure, an article of manufacture, may include a computer-readable non-transitory storage media and computer-executable instructions carried on the computer-readable non-transitory storage medium of a computer system (or an information handling system), where the instructions, when read and executed, may cause a processor of the computer system to: receive at the computer system a SMI, determine if the one or more processors are in an idle state, perform a memory stress test on one or more memory locations for a predetermined memory stress test time period, where during the memory stress test the one or more memory locations are not available, for example, not accessible by the OS or applications, detect PPR support, receive by the PPR support a memory error indicator from the memory stress test where the memory error indicator indicates that the one or more memory locations include a defective memory portion, apply by the PPR support, a repair to the defective memory portion, and release the one or more memory locations.
- Technical advantages of the present disclosure will be apparent to those of ordinary skill in the art in view of the following specification, claims, and drawings.
- A more complete understanding of the present embodiments and advantages thereof may be acquired by referring to the following description taken in conjunction with the accompanying drawings, in which like reference numbers indicate like features, and wherein:
-
FIG. 1 illustrates a block diagram of an example information handling system, in accordance with certain embodiments of the present disclosure; -
FIG. 2A illustrates a flow chart of an example method in accordance with certain embodiments of the present disclosure; and -
FIG. 2B illustrates a flow chart of an example method in accordance with certain embodiments of the present disclosure. - The following description in combination with the Figures is provided to assist in understanding the teachings disclosed herein. The following discussion will focus on specific implementations and embodiments of the teachings. This focus is provided to assist in describing the teachings, and should not be interpreted as a limitation on the scope or applicability of the teachings. However, other teachings can certainly be used in this application. The teachings can also be used in other applications, and with several different types of architectures, such as distributed computing architectures, client/server architectures, or middleware server architectures and associated resources.
- This disclosure generally relates to implementation of information handling systems and, in particular, relates to the capitalization on testing memory via system management interrupt (SMI) while the information handling system is operational and idle. In general, higher density dynamic random access memory (DRAM) and any other higher density random access memory with shrinking topologies may be susceptible to adjacent row failures. DRAM may include redundant rows so as to remap bad circuits and improve yields. Such remapping is done at die sort using an “efuse” technology for double data rate type three (DDR3) and available via post package repair in double data rate type four (DDR4) which makes the “efuse” technology accessible to the controller. However, high levels of memory testing may be capable of being performed in the operating system (OS) due to memory utilization in a multi-threaded environment. The present disclosure provides a system and method for having the basic input/output system (BIOS) execute memory testing in SMI when the information handling system is operational and idle which allows continuous memory testing that has a minimum amount of impact to the information handling system, such as, not impacting performance.
- For purposes of this disclosure, an information handling system may include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, or other purposes. For example, an information handling system may be a personal computer (tablet or laptop or desktop or server or any other information handling system known to one of ordinary skill in the art) a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The information handling system may include random access memory (RAM), dynamic random access memory (DRAM), system management RAM (SMRAM), one or more processing resources such as a central processing unit (CPU) or hardware or software control logic, ROM, and/or other types of nonvolatile memory. Additional components of the information handling system may include an interface to a virtual machine manager, an interface to a web console, an interface to a management console, a remote access controller, a hypervisor, one or more disk drives, one or more network ports for communication with external devices as well as various input output (I/O) devices, such as a keyboard, a mouse, and a video display. The information handling system may also include one or more buses operable to transmit communications between the various hardware components.
- For the purposes of this disclosure, computer-readable storage media may include any instrumentality or aggregation of instrumentalities that may retain data and/or instructions for a period of time. Computer-readable non-transitory storage media may include, for example, without limitation, storage media such as a direct access storage device (for example, a hard disk drive or floppy disk), a sequential access storage device (for example, a tape disk drive), compact disk, DRAM, CD-ROM, DVD, RAM, ROM, electrically erasable programmable read-only memory (EEPROM), and/or flash memory.
-
FIG. 1 illustrates an informationhandling system environment 100 that can be implemented on one or more information handling systems. For purposes of this disclosure, an information handling system can include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, entertainment, or other purposes. For example, an information handling system may be a personal computer, a laptop computer, a smart phone, a tablet device or other consumer electronic device, a network server, a network storage device, a switch, a router, or another network communication device, or any other suitable device known to one of ordinary skill in the art and may vary in size, shape, performance, functionality, and price. Further, an information handling system may include processing resources for executing machine-executable code, such as a central processing unit (CPU), a programmable logic array (PLA), an embedded device such as a System-on-a-Chip (SoC), or other control logic hardware. An information handling system may also include one or more computer-readable medium for storing machine-executable code, such as software or data. Additional components of an information handling system can include one or more storage devices that can store machine-executable code, one or more communications ports for communicating with external devices, and various I/O devices, such as a keyboard, a mouse, and a video display. An example of an information handling system includes a multi-tenant chassis system where groups of tenants (users) share a common chassis, and each of the tenants has a unique set of resources assigned to them. The resources can include blade servers of the chassis, I/O modules, Peripheral Component Interconnect- Express (PCIe) cards, storage controllers, and the like. - Information
handling system environment 100 includes auser environment 140 and asystem environment 130.User environment 140 may compriseuser systems User systems user systems system environment 130. In oneembodiment information handling system 128 is shown separately from theuser environment 140, one of ordinary skill in the art understands thatuser systems information handling system 128. In another embodiment,environments user environment 140 is located remotely from the information handlingsystem environment 130. While three devices are shown asuser systems user systems -
Information handling system 128 may comprise any number of devices and may be any number of information handling systems suitable to implement required tasks.Information handling system 128 includes aprocessor 102, basic input/output system (BIOS) 114,memory 104,storage 106, an input/output (I/O)interface 108, anetwork interface 110, and a bus(es) 112. Although this disclosure describes and illustrates a particularinformation handling system 128 having a particular set of particular components in a particular arrangement, this disclosure contemplates any suitable information handling system having any suitable combination and arrangement of components as known to one of ordinary skill in the art. - In an example embodiment,
processor 102 may include hardware and software components for the structure and operation of the process steps and system disclosed. While not specifically shown, it should be understood that any number of program modules comprising computer-readable instructions may be stored in theinformation handling system 128, storage 106 (a computer-readable medium) or other memory and may be executed byprocessor 102. In one or more embodiments,processor 102 may be a central processing unit (CPU). Upon execution of the computer-readable instructions stored in a computer-readable medium, certain actions may be performed as described in this disclosure. -
BIOS 114 is stored in non-volatile memory.BIOS 114 may include one or more settings associated with the operation of theinformation handling system 128. For example,BIOS 114 may include a setting associated with the periodicity for testing memory via SMI.Storage 106 ormemory 104 or other such memory may be a hard-disk drive, magnetic disk, optical disk, DRAM, ROM, RAM or any other computer media known to one of ordinary skill in the art for the storage and retrieval of data, including executable or computer-readable instructions. Data may be stored in any one or more ofstorage 106 andmemory 104. As is known to one of ordinary skill in the art, some storage mediums have faster data access times than other storage mediums. For example, long-term data or data that does not need to be accessed frequently or quickly may generally be stored on a hard-disk drive or other non-volatile storage medium, such asstorage 106, known to one of ordinary skill in the art. Retrieving and storing data tostorage 106 may increase the time to perform an I/O operation as access times are typically longer than performing I/O operations from a faster storage medium, for example,memory 104.Memory 104 andstorage 106 may be communicatively coupled toprocessor 102 and may include any system, device, or apparatus configured to retain program instructions and/or data for a period of time (for example, computer-readable storage media). - In one embodiment,
storage 106 is non-volatile long-term memory such as a hard-disk drive, magnetic disk, optical disk or any other storage device known to one of ordinary skill in the art.Storage 106 typically has a longer access time thanmemory 104. In one embodiment,memory 104 may be memory with reasonably fast access times, such as RAM or DRAM.Memory 104 may be any memory known to one of ordinary skill in the art that provides efficient access to data, for example, RAM or DRAM. In another embodiment,memory 104 includes main memory for storing instructions forprocessor 102 to execute or data forprocessor 102 to operate on. As an example,information handling system 128 may load instructions for execution fromstorage 106 or another source (such as, for example, anotherinformation handling system 128, an external memory source, a remote memory source, or any other memory source known to one of ordinary skill in the art) tomemory 104.Bus 112 may include one or more buses for connectingprocessor 102,memory 104,storage 106, I/O interface 108 andnetwork interface 110. - In another embodiment, I/
O interface 108 includes hardware, software, or both for providing one or more interfaces for communication betweeninformation handling system 128 and one or more I/O devices.Information handling system 128 may include one or more I/O devices, where appropriate. One or more of these I/O devices may enable communication between an individual or other software andinformation handling system 128. As an example, an I/O device may include a keyboard, keypad, microphone, monitor, mouse, or any other I/O device known to one of ordinary skill in the art or a combination of two or more I/O devices. For example, the I/O device may allow an individual or other software to request instantiation of a virtual application. I/O interface 108 may include one or more devices or softwaredrivers enabling processor 102 to drive one or more of these I/O devices. I/O interface 108 may include one or more I/O interfaces 108, where appropriate. Although this disclosure describes and illustrates a particular I/O interface, the disclosure contemplates any suitable I/O interface. - In an example embodiment,
network interface 110 includes firmware, hardware, software, or any combination thereof for providing one or more interfaces for communication (for example, packet-based communication) betweeninformation handling system 128 and one or more otherinformation handling systems 128 on one or more networks. For example,network interface 110 may include a network interface controller (NIC) or network adapter for communicating with a telephone network, an Ethernet or other wire-based network or a wireless NIC (WNIC) or wireless adapter for communicating with a wireless network, such as a WI-FI network, or any other network interface for communicating with any type of network known to one of ordinary skill in the art. In one embodiment,information handling system 128 may connect touser systems - In an example embodiment,
bus 112 includes hardware, software, or both which couples components ofinformation handling system 128 to each other.Bus 112 may include one or more buses where appropriate and may communicatively, physically, virtually, or otherwise as required couple the components ofinformation handling system 128 to each other.Bus 112 may connect one or moreinformation handling systems 128 to each other. -
FIG. 2A illustrates a method in accordance with certain embodiments of the present disclosure. Atstep 202, the time period or interval for issuing an SMI is established. Such may be referred to throughout as an SMI time period, SMI interval, or SMI timer. In one embodiment, the SMI interval is stored in the BIOS and is a setting available via BIOS interface. In one or more embodiments, the SMI interval may be set via a graphical user interface (GUI), a command-line interface, a pre-set configuration of the BIOS, or by any other interface or way known to one of ordinary skill in the art. In one embodiment, setting the SMI interval may require a password. For example, the SMI interval may be a password protected setting in the BIOS. The SMI interval may be set according to any interval of time, for example, milliseconds, seconds, microseconds, nanoseconds, or any other interval of time known to one of ordinary skill in the art. - At
step 204, it is determined if an SMI occurred. In one embodiment, theinformation handling system 128 may only perform a memory stress test when an SMI occurs. The SMI occurs based, at least in part, on the SMI interval set instep 202. If an SMI has not occurred atstep 204, then the method may continue to poll to determine if an SMI has occurred. In one embodiment,information handling system 128 continuously polls, polls on a predetermined interval, polls according to one or more parameters associated withprocessor 102 or any other polling or detecting known to one of ordinary skill in the art to determine if an SMI has occurred. If an SMI has occurred, the method continues to step 206. - At
step 206, the idle state of theprocessor 102 is determined. A memory stress test is performed when the OS is not actively storing and retrieving data from memory. For example, it may be determined that theprocessor 102 is in sleep mode. The idle state of theprocessor 102 may be determined in one or more embodiments by implementingsteps step 214 it would be determined to continue to step 204, for example, and not to perform the memory stress test atstep 216. For example, aninformation handling system 128 powered via a battery may not have sufficient remaining power to support execution of the memory stress test while continuing proper operational status of theinformation handling system 128. In such an example, it is best and more user-friendly not to deplete any remaining power by execution of the memory stress test. - In one embodiment when the processor is not determined to be idle at
step 214, or because of some other inhibiting factor, for example, non-stable power source, such as a battery, detected, the method may continue atstep 204. In another embodiment instead of continuing to step 204, the method may continue atstep 226 such that the SMI interval is modified. In another embodiment, the method may set a flag or other semaphore so as not to continue any SMI analysis until a stable, such as an alternating current (A/C) power source from an outlet (a stable power source), is connected to theinformation handling system 128. - In one or more embodiments,
processor 102 may be a single processor, two processors, or any number of processor.Processor 102 may include one or more processor cores. When multiple processor cores exists, then, if an SMI has occurred atstep 204, atstep 206 it must be determined the idle state of all or at least one or more processor cores based, at least in part, on one or more indicators, criteria, factors and/or parameters. - As part of determining the processor idle state, at
step 208, one type of idle state indicator (the time stamp counter) is read. The time stamp counter indicates how long theprocessor 102 has been inactive or in sleep mode. In one embodiment, only step 208 may be implemented to determine theprocessor 102 idle state. For example, atstep 214 the processor may be determined to be idle based, at least in part, on comparing the time stamp counter to a predetermined threshold associated with the time stamp counter. The time stamp counter predetermined threshold may be a BIOS setting (hard-coded or adjustable) or any other time stamp counter predetermined threshold known to one of ordinary skill in the art. Atstep 214 it may be determined that theprocessor 102 is idle based, at least in part, on the time stamp counter. - At
step 210 another idle state indicator, a register value indicative of how long aprocessor 102 has been active (active clock cycle counter), is read. For example, C0_MCNT or C0MCNT may be read to determine how long aprocessor 102 has been active. Eachprocessor 102 may have a corresponding active clock cycle counter Likewise, each thread of aprocessor 102 may have a corresponding active clock cycle counter with the active clock cycle counter value for a givenprocessor 102 equaling the sum of all the active clock cycle counters for all the threads of theprocessor 102. - At
step 212 another idle state indicator, the utilization ratio forprocessor 102, is determined. The utilization ratio is determined by dividing the active clock cycle counter value fromstep 210 by the time stamp counter from 208. In one embodiment,processor 102 includes multiple processor cores and the utilization ratio must be determined for each processor core. - At
step 214, it is determined if theprocessor 102 is idle. In one embodiment, theprocessor 102 is determined to be idle by comparing the utilization ratio fromstep 212 to a predetermined threshold associated with the utilization ratio. The utilization ratio predetermined threshold may be a BIOS setting (hard-coded or adjustable) or any other utilization ratio predetermined threshold known to one of ordinary skill in the art. For example, in one embodiment, if the utilization ratio is less than 1%, which means theprocessor 102 is in sleep state 99% of the time, then atstep 214 it would be determined that the processor is idle and the method would continue to step 216 to perform the memory stress test for the predetermined memory stress test time period. - In other embodiments, one or more criteria may be used in lieu of or in addition to steps 208-212. In one embodiment, storage system utilization may be checked to determine whether an
information handling system 128 is idle. For example, it may be determined if large amounts of data are being copied to a memory location, such as a hard disk drive. In such an embodiment, theprocessor 102 may be mainly idle but other components of theinformation handling system 128 may be busy copying data such that a memory stress test during the copying would interfere with or at least delay the copying of the data and thus the memory stress test would not be performed. - At
step 214, if it is determined that theprocessor 102 is not idle, then the method continues atstep 204. If it is determined atstep 214 that theprocessor 102 is idle, then atstep 216, a memory stress test is performed for a predetermined period of time (memory stress test time period). In one embodiment, the memory stress test is ran in the background while other operations, that do not require access to the memory to be tested, of theinformation handling system 128 are performed. In another embodiment, the memory stress test may be the only operation being performed at theinformation handling system 128. During the memory stress test, the tested memory is not available to the OS or any applications so as to prevent loss of data or improper operation of theinformation handling system 128. A memory stress test may be provided by the manufacturer of the memory to be tested, a third party application, or any other memory test known to one of ordinary skill in the art. A memory stress test may be an OS memory test, a BIOS memory test, a diagnostics memory test or any other memory test known to one of ordinary skill in the art, but the memory stress test must run in SMI, and the entire test may not be performed in one interval or a single memory stress test time interval. For example, the memory stress test may test 0.1% of a memory, then wait for the next SMI timer and test another 0.1%, such that over 1000 SMIs may be required to complete the memory stress test. In this example, if the period is 1 second between SMIs and 1 millisecond per memory stress test, then it would take 1001 seconds to complete the memory stress test. - The predetermined period of time may be a value stored as a BIOS setting, a value stored in
memory 104 orstorage 106, or any other value known to one of ordinary skill in the art. The memory stress test time period (length of time the memory stress test is executed) may be a fixed value or an adjustable value. In one embodiment, the memory stress test time period may be set via a GUI, a command-line interface or any other interface known to one of ordinary skill in the art. In one embodiment, the memory stress test time period may require a password before it can be modified. The value of the memory stress test time period may be based, at least in part, on the type ofinformation handling system 128, the number ofprocessors 102, how theinformation handling system 128 is being used, the type of applications executing on theinformation handling system 128, the utilization ratio, or any other criteria known to one of ordinary skill in the art. In one embodiment, the memory stress test time period is set to a value of less than or equal to 100 milliseconds. Once the memory stress test has ran for the requisite memory stress test time period, the method continues toFIG. 2B . -
FIG. 2B illustrates a flow chart of an example method in accordance with certain embodiments of the present disclosure. As noted above, teachings of the present disclosure may be implemented in a variety of configurations ofinformation handling system 128. - At
step 218, it is determined if a memory error was detected fromstep 216 ofFIG. 2A . For example, a data structure, specific memory location, table entry, database entry, an array or any other way for passing or storing information as known to one of ordinary skill in the art may be used as an indicator of the memory error. The memory error may indicate that a defective portion of memory was detected during the memory stress test and may identify the location of the defective portion of memory. The identified defective portion of memory may be indicative of a block of memory, a cell of memory or any other segment or division of memory known to one of ordinary skill in the art. The memory stress test may generate a memory error indicator that identifies the defective portion of memory. If a memory error is not detected atstep 218, then the method continues to step 226. In one embodiment, if no error is detected the method continues to step 204. If a memory error is detected then corrective action may be taken such as mapping out the bad raw memory with the spare raw memory. The BIOS will also store that the memory error has been repaired or fixed in the serial presence detect (SPD) (EEPROM attached to the dual inline memory module (DIMM)). Such may be informative for a future boot of theinformation handling system 128 if uncorrectable DIMMs have already been Single Bit corrected with post package repair (PPR). - If an error is detected at
step 218, then atstep 220 it is determined if the BIOS detects PPR support. If PPR is not supported, then atstep 228 data may be captured for use along with any indicated defects atstep 230. That is, if PPR is not supported the necessary data must be stored along with any information related to the failure so that during the next boot of theinformation handling system 128 the portions of tested memory identified as having defects are not allocated or used by an application or the OS. This is done by reserving the memory for the BIOS. - If PPR is determined to be supported at
step 220, then atstep 222 standard PPR commands are issued and atstep 224 any necessary repairs to the tested memory are applied and the memory associated with the memory stress test is released such that it is available for use. Once the BIOS detects an error and utilizes PPR to repair or fix any errors, no further action is needed by theinformation handling system 128 orprocessor 102. The repair or fix is applied at the DIMM level such that theinformation handling system 128 andprocessor 102 continue to operate normally with respect to reading/writing the raw data. Theinformation handling system 128 or theprocessor 102 are oblivious to any repair or fix performed as a result of the memory stress test. - At
step 224, the periodicity of SMI (SMI interval) may be modified. For example, in one embodiment, the SMI interval is lengthened such that a memory stress test is executed or implemented less frequently or is shortened such that a memory stress test is ran more frequently. Modification of the SMI interval may be based, at least in part, on one or more criteria. For example, the SMI interval may be lengthened or shortened depending on whether any errors were detected (the memory error indicator) during a prior memory stress test, the number ofprocessors 102, the utilization ratio, known or predicted reliability of the tested memory, increase or decrease in system utilization, removal of stable power source, increase or decrease in temperature or any other criteria known to one of ordinary skill in the art. - Although
FIG. 2A andFIG. 2B disclose a particular number of steps to be taken each may be executed with greater or lesser steps than those depicted. In addition, althoughFIG. 2A andFIG. 2B discloses a certain order of steps to be taken, the steps of each may be completed in any suitable order. - The methods of
FIG. 2A andFIG. 2B may be implemented numerous times before the memory stress test has tested all of the memory to be tested. The number of iterations may be based, at least in part, on the size of the memory to be tested, the memory stress test time period, or any other criteria known to one of ordinary skill in the art. - Methods of
FIG. 2A andFIG. 2B may be implemented usinginformation handling system 128 or any other system operable to implement methods. In certain embodiments, the methods ofFIG. 2A andFIG. 2B may be implemented partially or fully in software and/or firmware embodied in computer-readable media. - Herein, a computer-readable non-transitory storage medium or media may include one or more semiconductor-based or other integrated circuits (ICs) (such, as for example, field-programmable gate arrays (FPGAs) or application-specific ICs (ASICs)), hard disk drives (HDDs), hybrid hard drives (HHDs), optical discs, optical disc drives (ODDs), magneto-optical discs, magneto-optical drives, floppy diskettes, floppy disk drives (FDDs), magnetic tapes, solid-state drives (SSDs), RAM-drives, SECURE DIGITAL cards or drives, any other suitable computer-readable non-transitory storage media, or any suitable combination of two or more of these, where appropriate. A computer-readable non-transitory storage medium may be volatile, non-volatile, or a combination of volatile and non-volatile, where appropriate.
- Herein, “or” is inclusive and not exclusive, unless expressly indicated otherwise or indicated otherwise by context. Therefore, herein, “A or B” means “A, B, or both,” unless expressly indicated otherwise or indicated otherwise by context. Moreover, “and” is both joint and several, unless expressly indicated otherwise or indicated otherwise by context. Therefore, herein, “A and B” means “A and B, jointly or severally,” unless expressly indicated otherwise or indicated otherwise by context.
- The concepts disclosed in this application should not be understood to be limited to the exemplary embodiments described herein, but should be understood to encompass all changes, substitutions, variations, alterations, and modifications to the example embodiments herein that a person having ordinary skill in the art would comprehend. Moreover, although this disclosure describes and illustrates respective embodiments herein as including particular components, elements, functions, operations, or steps, any of these embodiments may include any combination or permutation of any of the components, elements, functions, operations, or steps described or illustrated anywhere herein that a person having ordinary skill in the art would comprehend. Furthermore, reference in the appended claims to an apparatus or system or a component of an apparatus or system being adapted to, arranged to, capable of, configured to, enabled to, operable to, or operative to perform a particular function encompasses that apparatus, system, component, whether or not it or that particular function is activated, turned on, or unlocked, as long as that apparatus, system, or component is so adapted, arranged, capable, configured, enabled, operable, or operative.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/846,416 US9606889B1 (en) | 2015-09-04 | 2015-09-04 | Systems and methods for detecting memory faults in real-time via SMI tests |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/846,416 US9606889B1 (en) | 2015-09-04 | 2015-09-04 | Systems and methods for detecting memory faults in real-time via SMI tests |
Publications (2)
Publication Number | Publication Date |
---|---|
US20170068607A1 true US20170068607A1 (en) | 2017-03-09 |
US9606889B1 US9606889B1 (en) | 2017-03-28 |
Family
ID=58189473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/846,416 Active 2035-09-18 US9606889B1 (en) | 2015-09-04 | 2015-09-04 | Systems and methods for detecting memory faults in real-time via SMI tests |
Country Status (1)
Country | Link |
---|---|
US (1) | US9606889B1 (en) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678894A (en) * | 2017-08-31 | 2018-02-09 | 郑州云海信息技术有限公司 | A kind of internal storage testing method, apparatus and system |
US10061685B1 (en) * | 2016-08-31 | 2018-08-28 | Amdocs Development Limited | System, method, and computer program for high volume test automation (HVTA) utilizing recorded automation building blocks |
CN109062708A (en) * | 2018-07-05 | 2018-12-21 | 武汉斗鱼网络科技有限公司 | A kind of data transmission method for uplink, method of reseptance and device |
CN110691002A (en) * | 2018-07-05 | 2020-01-14 | 武汉斗鱼网络科技有限公司 | Interrupt detection method and device |
US10628265B2 (en) * | 2016-12-16 | 2020-04-21 | Samsung Electronics Co., Ltd. | Data backup method for performing post package repair (repair on system) operation |
US10725671B2 (en) * | 2018-10-30 | 2020-07-28 | Dell Products L.P. | Dual inline memory provisioning and reliability, availability, and serviceability enablement based on post package repair history |
CN112069009A (en) * | 2020-09-04 | 2020-12-11 | 广东小天才科技有限公司 | Method and device for pressure test in Recovery mode and terminal equipment |
US10978171B2 (en) * | 2019-07-31 | 2021-04-13 | Microsoft Technology Licensing, Llc | Identification of susceptibility to induced charge leakage |
WO2021126387A1 (en) * | 2019-12-16 | 2021-06-24 | Microsoft Technology Licensing, Llc | At-risk memory location identification and management |
US20210318971A1 (en) * | 2016-04-01 | 2021-10-14 | Intel Corporation | Enhanced directed system management interrupt mechanism |
US11302414B2 (en) * | 2018-08-14 | 2022-04-12 | Samsung Electronics Co., Ltd. | Storage device that performs runtime repair operation based on accumulated error information and operation method thereof |
US11314578B2 (en) * | 2019-03-06 | 2022-04-26 | Dell Products L.P. | Information handling system and method to detect and recover from spurious resets of PCIe devices |
US11557365B2 (en) * | 2019-08-16 | 2023-01-17 | Nxp B.V. | Combined ECC and transparent memory test for memory fault detection |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11150971B1 (en) | 2020-04-07 | 2021-10-19 | International Business Machines Corporation | Pattern recognition for proactive treatment of non-contiguous growing defects |
US11138055B1 (en) | 2020-07-01 | 2021-10-05 | Dell Products L.P. | System and method for tracking memory corrected errors by frequency of occurrence while reducing dynamic memory allocation |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6898734B2 (en) * | 2001-12-13 | 2005-05-24 | International Business Machines Corporation | I/O stress test |
US7213600B2 (en) * | 2002-04-03 | 2007-05-08 | The Procter & Gamble Company | Method and apparatus for measuring acute stress |
JP4314056B2 (en) * | 2003-04-17 | 2009-08-12 | パナソニック株式会社 | Semiconductor memory device |
US7298659B1 (en) * | 2004-06-07 | 2007-11-20 | Virage Logic Corporation | Method and system for accelerated detection of weak bits in an SRAM memory device |
US9196384B2 (en) * | 2012-12-28 | 2015-11-24 | Intel Corporation | Memory subsystem performance based on in-system weak bit detection |
-
2015
- 2015-09-04 US US14/846,416 patent/US9606889B1/en active Active
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210318971A1 (en) * | 2016-04-01 | 2021-10-14 | Intel Corporation | Enhanced directed system management interrupt mechanism |
US10061685B1 (en) * | 2016-08-31 | 2018-08-28 | Amdocs Development Limited | System, method, and computer program for high volume test automation (HVTA) utilizing recorded automation building blocks |
US10628265B2 (en) * | 2016-12-16 | 2020-04-21 | Samsung Electronics Co., Ltd. | Data backup method for performing post package repair (repair on system) operation |
CN107678894A (en) * | 2017-08-31 | 2018-02-09 | 郑州云海信息技术有限公司 | A kind of internal storage testing method, apparatus and system |
CN109062708A (en) * | 2018-07-05 | 2018-12-21 | 武汉斗鱼网络科技有限公司 | A kind of data transmission method for uplink, method of reseptance and device |
CN110691002A (en) * | 2018-07-05 | 2020-01-14 | 武汉斗鱼网络科技有限公司 | Interrupt detection method and device |
US11302414B2 (en) * | 2018-08-14 | 2022-04-12 | Samsung Electronics Co., Ltd. | Storage device that performs runtime repair operation based on accumulated error information and operation method thereof |
US10725671B2 (en) * | 2018-10-30 | 2020-07-28 | Dell Products L.P. | Dual inline memory provisioning and reliability, availability, and serviceability enablement based on post package repair history |
US11314578B2 (en) * | 2019-03-06 | 2022-04-26 | Dell Products L.P. | Information handling system and method to detect and recover from spurious resets of PCIe devices |
US10978171B2 (en) * | 2019-07-31 | 2021-04-13 | Microsoft Technology Licensing, Llc | Identification of susceptibility to induced charge leakage |
US11557365B2 (en) * | 2019-08-16 | 2023-01-17 | Nxp B.V. | Combined ECC and transparent memory test for memory fault detection |
US11107549B2 (en) | 2019-12-16 | 2021-08-31 | Microsoft Technology Licensing, Llc | At-risk memory location identification and management |
WO2021126387A1 (en) * | 2019-12-16 | 2021-06-24 | Microsoft Technology Licensing, Llc | At-risk memory location identification and management |
CN112069009A (en) * | 2020-09-04 | 2020-12-11 | 广东小天才科技有限公司 | Method and device for pressure test in Recovery mode and terminal equipment |
Also Published As
Publication number | Publication date |
---|---|
US9606889B1 (en) | 2017-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9606889B1 (en) | Systems and methods for detecting memory faults in real-time via SMI tests | |
TWI605459B (en) | Dynamic application of ecc based on error type | |
US10185617B2 (en) | Adjusting failure response criteria based on external failure data | |
US7945815B2 (en) | System and method for managing memory errors in an information handling system | |
US8856620B2 (en) | Dynamic graduated memory device protection in redundant array of independent memory (RAIM) systems | |
US8862953B2 (en) | Memory testing with selective use of an error correction code decoder | |
US7661044B2 (en) | Method, apparatus and program product to concurrently detect, repair, verify and isolate memory failures | |
US20160004587A1 (en) | Method, apparatus and system for handling data error events with a memory controller | |
US10725671B2 (en) | Dual inline memory provisioning and reliability, availability, and serviceability enablement based on post package repair history | |
US9645904B2 (en) | Dynamic cache row fail accumulation due to catastrophic failure | |
US9965346B2 (en) | Handling repaired memory array elements in a memory of a computer system | |
US9009548B2 (en) | Memory testing of three dimensional (3D) stacked memory | |
US11307785B2 (en) | System and method for determining available post-package repair resources | |
TWI493558B (en) | Signal line to indicate program-fail in memory | |
US20140185397A1 (en) | Hybrid latch and fuse scheme for memory repair | |
US20240013851A1 (en) | Data line (dq) sparing with adaptive error correction coding (ecc) mode switching | |
US20210279122A1 (en) | Lifetime telemetry on memory error statistics to improve memory failure analysis and prevention | |
US20210311833A1 (en) | Targeted repair of hardware components in a computing device | |
US20170046212A1 (en) | Reducing system downtime during memory subsystem maintenance in a computer processing system | |
TWI777259B (en) | Boot method | |
US20240241778A1 (en) | In-system mitigation of uncorrectable errors based on confidence factors, based on fault-aware analysis | |
US20230386598A1 (en) | Methods for real-time repairing of memory failures caused during operations, memory systems performing repairing methods, and data processing systems including repairing memory systems | |
EP4439564A1 (en) | Method and system for repairing a dynamic random access memory (dram) of memory device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA Free format text: SUPPLEMENTAL PATENT SECURITY AGREEMENT - TERM LOAN;ASSIGNORS:DELL PRODUCTS L.P.;DELL SOFTWARE INC.;BOOMI, INC.;AND OTHERS;REEL/FRAME:037160/0239 Effective date: 20151124 Owner name: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT, NORTH CAROLINA Free format text: SUPPLEMENTAL PATENT SECURITY AGREEMENT - ABL;ASSIGNORS:DELL PRODUCTS L.P.;DELL SOFTWARE INC.;BOOMI, INC.;AND OTHERS;REEL/FRAME:037160/0171 Effective date: 20151124 Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT, TEXAS Free format text: SUPPLEMENTAL PATENT SECURITY AGREEMENT - NOTES;ASSIGNORS:DELL PRODUCTS L.P.;DELL SOFTWARE INC.;BOOMI, INC.;AND OTHERS;REEL/FRAME:037160/0142 Effective date: 20151124 Owner name: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT, NO Free format text: SUPPLEMENTAL PATENT SECURITY AGREEMENT - ABL;ASSIGNORS:DELL PRODUCTS L.P.;DELL SOFTWARE INC.;BOOMI, INC.;AND OTHERS;REEL/FRAME:037160/0171 Effective date: 20151124 Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH Free format text: SUPPLEMENTAL PATENT SECURITY AGREEMENT - TERM LOAN;ASSIGNORS:DELL PRODUCTS L.P.;DELL SOFTWARE INC.;BOOMI, INC.;AND OTHERS;REEL/FRAME:037160/0239 Effective date: 20151124 Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., A Free format text: SUPPLEMENTAL PATENT SECURITY AGREEMENT - NOTES;ASSIGNORS:DELL PRODUCTS L.P.;DELL SOFTWARE INC.;BOOMI, INC.;AND OTHERS;REEL/FRAME:037160/0142 Effective date: 20151124 |
|
AS | Assignment |
Owner name: WYSE TECHNOLOGY L.L.C., CALIFORNIA Free format text: RELEASE OF REEL 037160 FRAME 0171 (ABL);ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:040017/0253 Effective date: 20160907 Owner name: DELL SOFTWARE INC., CALIFORNIA Free format text: RELEASE OF REEL 037160 FRAME 0171 (ABL);ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:040017/0253 Effective date: 20160907 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF REEL 037160 FRAME 0171 (ABL);ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:040017/0253 Effective date: 20160907 |
|
AS | Assignment |
Owner name: DELL SOFTWARE INC., CALIFORNIA Free format text: RELEASE OF REEL 037160 FRAME 0142 (NOTE);ASSIGNOR:BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT;REEL/FRAME:040027/0812 Effective date: 20160907 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF REEL 037160 FRAME 0142 (NOTE);ASSIGNOR:BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT;REEL/FRAME:040027/0812 Effective date: 20160907 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF REEL 037160 FRAME 0239 (TL);ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:040028/0115 Effective date: 20160907 Owner name: WYSE TECHNOLOGY L.L.C., CALIFORNIA Free format text: RELEASE OF REEL 037160 FRAME 0239 (TL);ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:040028/0115 Effective date: 20160907 Owner name: DELL SOFTWARE INC., CALIFORNIA Free format text: RELEASE OF REEL 037160 FRAME 0239 (TL);ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:040028/0115 Effective date: 20160907 Owner name: WYSE TECHNOLOGY L.L.C., CALIFORNIA Free format text: RELEASE OF REEL 037160 FRAME 0142 (NOTE);ASSIGNOR:BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT;REEL/FRAME:040027/0812 Effective date: 20160907 |
|
AS | Assignment |
Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT, TEXAS Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040136/0001 Effective date: 20160907 Owner name: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT, NORTH CAROLINA Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040134/0001 Effective date: 20160907 Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., A Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040136/0001 Effective date: 20160907 Owner name: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLAT Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040134/0001 Effective date: 20160907 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: DELL PRODUCTS L.P., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SHEPHERD, MICHAEL DAVID;REEL/FRAME:041276/0431 Effective date: 20150810 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., T Free format text: SECURITY AGREEMENT;ASSIGNORS:CREDANT TECHNOLOGIES, INC.;DELL INTERNATIONAL L.L.C.;DELL MARKETING L.P.;AND OTHERS;REEL/FRAME:049452/0223 Effective date: 20190320 Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., TEXAS Free format text: SECURITY AGREEMENT;ASSIGNORS:CREDANT TECHNOLOGIES, INC.;DELL INTERNATIONAL L.L.C.;DELL MARKETING L.P.;AND OTHERS;REEL/FRAME:049452/0223 Effective date: 20190320 |
|
AS | Assignment |
Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., TEXAS Free format text: SECURITY AGREEMENT;ASSIGNORS:CREDANT TECHNOLOGIES INC.;DELL INTERNATIONAL L.L.C.;DELL MARKETING L.P.;AND OTHERS;REEL/FRAME:053546/0001 Effective date: 20200409 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
AS | Assignment |
Owner name: WYSE TECHNOLOGY L.L.C., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: SCALEIO LLC, MASSACHUSETTS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: MOZY, INC., WASHINGTON Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: MAGINATICS LLC, CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: FORCE10 NETWORKS, INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: EMC IP HOLDING COMPANY LLC, TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: EMC CORPORATION, MASSACHUSETTS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: DELL SYSTEMS CORPORATION, TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: DELL SOFTWARE INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: DELL MARKETING L.P., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: DELL INTERNATIONAL, L.L.C., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: DELL USA L.P., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: CREDANT TECHNOLOGIES, INC., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: AVENTAIL LLC, CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: ASAP SOFTWARE EXPRESS, INC., ILLINOIS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 |
|
AS | Assignment |
Owner name: SCALEIO LLC, MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC), MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: DELL INTERNATIONAL L.L.C., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: DELL USA L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 |
|
AS | Assignment |
Owner name: SCALEIO LLC, MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC), MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: DELL INTERNATIONAL L.L.C., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: DELL USA L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 |
|
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 |