US20110296098A1 - System and Method for Reducing Power Consumption of Memory - Google Patents
System and Method for Reducing Power Consumption of Memory Download PDFInfo
- Publication number
- US20110296098A1 US20110296098A1 US12/791,563 US79156310A US2011296098A1 US 20110296098 A1 US20110296098 A1 US 20110296098A1 US 79156310 A US79156310 A US 79156310A US 2011296098 A1 US2011296098 A1 US 2011296098A1
- Authority
- US
- United States
- Prior art keywords
- individual units
- self
- refresh
- memory system
- inactive
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3225—Monitoring of peripheral devices of memory devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40611—External triggering or timing of internal or partially internal refresh operations, e.g. auto-refresh or CAS-before-RAS triggered refresh
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40615—Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40618—Refresh operations over multiple banks or interleaving
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40622—Partial refresh of memory arrays
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- the present disclosure relates in general to improving performance and reducing power consumption in information handling systems, and more particularly to improving performance and reducing power consumption of memory.
- 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.
- DRAM dynamic random access memory
- DRAM is a type of random access memory that stores each bit (or cell) of data in a separate capacitive element within an integrated circuit. Because capacitors leak charge, the information eventually fades unless the capacitor charge is refreshed periodically. Such refreshing of DRAM cells limits useful work performed by a memory system and consumes power. As the density and operating frequency of DRAMs increase, so too do limitations on useful work and the power consumed by DRAMs. Limitations on useful work will reduce overall system performance and efficiency.
- Consumption of additional power may lead to higher operating temperatures for the DRAMs and the information handling systems in which such DRAMs are present, which may affect operability of an information handling system and its components.
- consumption of power may lead to higher operating costs due to increased energy costs associated with operation, as well as costs associated with cooling systems to mitigate increased temperatures.
- a method for improving performance and reducing power consumption in memory may include tracking whether individual units of a memory system are active or inactive. The method may also include placing inactive individual units of the memory system in a self-refresh mode, such that the inactive individual units self-refresh their contents. The method may further include placing active individual units of the memory system in a command-based refresh mode, such that the active individual units are refreshed in response to a received command to refresh their contents.
- an information handling system may include a processor and a memory system communicatively coupled to the processor.
- the memory system may include individual units for storage of data and a memory controller communicatively coupled to the individual units.
- the memory controller may be configured to (i) track whether the individual units are active or inactive, (ii) place inactive individual units in a self-refresh mode, such that the inactive individual units self-refresh their contents, (iii) and place active individual units in a command-based refresh mode, such that the active individual units are refreshed in response to a received command to refresh their contents.
- a memory system may include individual units for storage of data and a memory controller communicatively coupled to the individual units.
- the memory controller may be configured to (i) track whether the individual units are active or inactive, (ii) place a first region including only inactive individual units in a self-refresh mode, such that the individual units of the first region self-refresh their contents, and (iii) place a second region including active individual units and inactive individual units in a command-based refresh mode, such that the individual units of the second region are refreshed in response to a received command to refresh their contents.
- FIG. 1 illustrates a block diagram of an example information handling system in accordance with certain embodiments of the present disclosure
- FIG. 2 illustrates various fields associated with mode register MR 2 of a DRAM according to the JEDEC Specification, in accordance with certain embodiments of the present disclosure
- FIG. 3 illustrates an example status table for a memory system including eight ranks and eight banks, in accordance with certain embodiments of the present disclosure
- FIG. 4 illustrates a flow chart of an example method for performing refresh within a memory unit, in accordance with certain embodiments of the present disclosure
- FIG. 5 illustrates a flow chart of an example method of execution for a filter of a memory controller in which memory controller commands would be generated in a conventional manner upstream of such filter, in accordance with certain embodiments of the present disclosure
- FIG. 6 illustrates a flow chart of an example method for transitioning a collection of banks (or other unit of memory) from a command-based refresh mode to a self-refresh mode, in accordance with certain embodiments of the present disclosure
- FIG. 7 illustrates a flow chart of an example method for transitioning a collection of banks (or other unit of memory) from a self-refresh mode to a command-based refresh mode, in accordance with certain embodiments of the present disclosure.
- FIGS. 1-7 Preferred embodiments and their advantages are best understood by reference to FIGS. 1-7 , wherein like numbers are used to indicate like and corresponding parts.
- 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, entertainment, or other purposes.
- an information handling system may be a personal computer, a PDA, a consumer electronic device, 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 memory, one or more processing resources such as a central processing unit (CPU) or hardware or software control logic.
- Additional components or the information handling system may include one or more storage devices, one or more communications ports for communicating with external devices as well as various input and 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 communication between the various hardware components.
- Computer-readable media may include any instrumentality or aggregation of instrumentalities that may retain data and/or instructions for a period of time.
- Computer-readable media may include, without limitation, storage media such as a direct access storage device (e.g., a hard disk drive or floppy disk), a sequential access storage device (e.g., a tape drive), compact disk, CD-ROM, DVD, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), and/or flash memory; as well as communications media such wires, optical fibers, microwaves, radio waves, and other electromagnetic and/or optical carriers; and/or any combination of the foregoing.
- storage media such as a direct access storage device (e.g., a hard disk drive or floppy disk), a sequential access storage device (e.g., a tape drive), compact disk, CD-ROM, DVD, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (
- FIG. 1 illustrates a block diagram of an example information handling system 102 in accordance with certain embodiments of the present disclosure.
- information handling system 102 may comprise a computer chassis or enclosure (e.g., a server chassis holding one or more server blades).
- information handling system 102 may be a personal computer (e.g., a desktop computer or a portable computer).
- information handling system 102 may include a processor 103 , a memory system 104 communicatively coupled to processor 103 , and a storage medium 106 communicatively coupled to processor 103 .
- Processor 103 may include any system, device, or apparatus configured to interpret and/or execute program instructions and/or process data, and may include, without limitation a microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), or any other digital or analog circuitry configured to interpret and/or execute program instructions and/or process data.
- processor 103 may interpret and/or execute program instructions and/or process data stored and/or communicated by one or more of memory system 104 , storage medium 106 , and/or another component of information handling system 100 .
- Memory system 104 may be communicatively coupled to processor 103 and may comprise any system, device, or apparatus operable to retain program instructions or data for a period of time (e.g., computer-readable media).
- Memory system 104 may comprise random access memory (RAM), electrically erasable programmable read-only memory (EEPROM), a PCMCIA card, flash memory, magnetic storage, opto-magnetic storage, or any suitable selection and/or array of volatile or non-volatile memory that retains data after power to information handling system 102 is turned off.
- RAM random access memory
- EEPROM electrically erasable programmable read-only memory
- PCMCIA card PCMCIA card
- flash memory magnetic storage
- opto-magnetic storage or any suitable selection and/or array of volatile or non-volatile memory that retains data after power to information handling system 102 is turned off.
- memory system 104 may comprise dynamic random access memory (DRAM).
- DRAM dynamic random access memory
- memory system 104 may include memory controller 108 , one or more memory modules 116 a - 116 n communicatively coupled to memory controller 108 , and status registers 112 communicatively coupled to memory controller 108 .
- Memory controller 108 may be any system, device, or apparatus configured to manage and/or control memory system 104 .
- memory controller 108 may be configured to read data from and/or write data to memory modules 116 comprising memory system 104 .
- memory controller 108 may be configured to refresh memory modules in embodiments in which memory system 104 comprises DRAM.
- memory controller 108 is shown in FIG. 1 as an integral component of memory system 104 , memory controller 108 may be separate from memory system 104 and/or may be an integral portion of another component of information handling system 102 (e.g., memory controller 108 may be integrated into processor 103 ).
- Each memory module 116 may include any system, device or apparatus configured to retain program instructions and/or data for a period of time (e.g., computer-readable media).
- Each memory module 116 may include a dynamic random access memory (DRAM) module (e.g, a dual in-line package (DIP) memory, a Single In-line Pin Package (SIPP) memory, a Single Inline Memory Module (SIMM), a Ball Grid Array (BGA)), or any other suitable memory.
- DRAM dynamic random access memory
- DI dual in-line package
- SIPP Single In-line Pin Package
- SIMM Single Inline Memory Module
- BGA Ball Grid Array
- each memory module 116 may include one or more ranks 118 a - 118 m .
- Each memory rank 118 within a memory module 116 may be a block or area of data created using some or all of the memory capacity of the memory module 116 .
- each rank 118 may be a rank as such term in defined by the Joint Electron Device Engineering Council (JEDEC) Standard for memory devices.
- JEDEC Joint Electron Device Engineering Council
- each rank 118 may include mode registers 120 and one or more memory banks 110 .
- Each memory bank 110 may be a logical unit of storage within memory system 104 , which may be based on physical parameters of the memory module 116 comprising such memory bank 110 .
- Mode registers 120 may include one or more configuration variables and/or parameters associated with memory system 104 . When reading, writing, refreshing, and/or performing other operations associated with memory system 104 , a memory module 116 may carry out such operations based at least in part on configuration parameters and/or variables stored in mode registers 120 .
- mode registers 120 may be defined by a Joint Electron Device Engineering Council (JEDEC) standard for memory devices.
- JEDEC Joint Electron Device Engineering Council
- Status registers 112 may include one or more configuration variables and/or parameters associated with memory system 104 . When reading, writing, refreshing, and/or performing other operations associated with memory system 104 , memory controller 108 may carry out such operations based at least in part on configuration parameters and/or variables stored in status registers 112 . In some embodiments, status registers 112 may include registers similar to mode registers 120 .
- Status table 113 may include one or more configuration variables and/or parameters associated with individual banks 110 (or other unit of memory) of memory modules 116 .
- individual entries of status table 113 may indicate whether a particular bank 110 (or other unit of memory) is in a self-refresh mode or command refresh mode.
- Storage medium 106 may be communicatively coupled to processor 104 .
- Storage medium 106 may include any system, device, or apparatus operable to store information processed by processor 103 .
- Storage medium 106 may include, for example, network attached storage, one or more direct access storage devices (e.g., hard disk drives), and/or one or more sequential access storage devices (e.g., tape drives).
- storage medium 106 may have stored thereon an operating system (OS) 114 .
- OS 114 may be any program of executable instructions, or aggregation of programs of executable instructions, configured to manage and/or control the allocation and usage of hardware resources such as memory, CPU time, disk space, and input and output devices, and provide an interface between such hardware resources and application programs hosted by OS 114 . Active portions of OS 114 may be transferred to memory 104 for execution by processor 103 .
- processor 103 and/or memory controller 108 may manage and control the various banks 110 such that one or more banks 110 (or other units of memory) may be enabled to self-refresh, while one or more other banks 110 (or other units of memory) may be enabled to refresh as a result of a refresh command from memory controller 108 .
- Such selective enabling of banks 110 (or other memory units) for self-refresh and command-based refresh may provide improved performance and power savings, as “inactive” areas of memory system 104 (e.g., those banks 110 that are not currently being accessed, but still require data to be retained) may be enabled for self-refresh, while other “active” areas of memory system 104 (e.g, those banks 110 accessed more frequently) that would typically often require command-based refresh due to the activity of such areas, may be enabled for command-based refresh. Because a self-refresh operation does not require a command, other commands may be issued and less power is consumed than a command-based refresh. Such selective enabling may allow for improved performance and reduced power consumption as compared with traditional memory systems.
- FIG. 2 illustrates various fields associated with mode register MR 2 of a DRAM according to the JEDEC Specification, in accordance with certain embodiments of the present disclosure.
- mode register MR 2 includes a three-bit field labeled as PASR or “Partial Array Self-Refresh.”
- PASR Phase Change Register
- FIG. 2 illustrates various fields associated with mode register MR 2 of a DRAM according to the JEDEC Specification, in accordance with certain embodiments of the present disclosure.
- PASR partial Array Self-Refresh
- PASR Partial Array Self-Refresh
- JEDEC Joint Equivalent Privacy
- PASR enables self-refresh of certain banks 110 , but those banks not so enabled are not refreshed, either by command or self-refresh. Accordingly, PASR is not sufficient in applications in which all data or a very large portion of data in a memory module 116 must be refreshed.
- Partial Array Standby an approach similar to identifying particular blocks 110 similar to that of PASR, which may be referred to as “Partial Array Standby” in this disclosure, may be utilized.
- the existing JEDEC Specification may be extended (e.g., by addition of another mode register and functionality for supporting such mode register) such that a field similar to that of PASR may designate a fraction (e.g., one-eighth, one-fourth, one-half, three-fourths, all) of banks 110 that will be enabled for self-refresh, and those banks 110 not enabled for self-refresh may be instead enabled for command-based refresh.
- FIG. 3 illustrates an example status table 113 for a memory system 104 including one or more memory modules 116 of eight ranks 118 and eight banks 110 each.
- a letter “C” indicates a bank 110 enabled for command-based refresh
- an “S” indicates a bank enabled for self-refresh. While FIG.
- status table 113 depicts status table 113 as being integral to memory system 104 , such status table 113 may be maintained by operating system 114 or another program of instructions executing on 103 , in which case the identity of the command-based and self-refresh banks could be communicated to memory controller 108 via firmware using Advanced Configuration and Power Interface (ACPI) extensions, or via any other suitable manner.
- ACPI Advanced Configuration and Power Interface
- regions of memory system 104 enabled for command-based refresh may be associated with collections of active threads (e.g., associated with active virtual machines) while those regions of memory system enabled for self-refresh may be associated with collections of inactive threads (e.g., associated with inactive virtual machines).
- enabling of banks 110 for either of command-based or self-refresh may be at a granularity finer or coarser than that of a bank 110 .
- enabling of portions of memory for command-based or self-refresh may be made on at the memory page level, the memory block level, or any other suitable unit of memory.
- FIG. 4 illustrates a flow chart of an example method 400 for performing refresh within a memory unit (e.g., rank or other unit of memory), in accordance with certain embodiments of the present disclosure.
- method 400 may begin at step 402 .
- teachings of the present disclosure may be implemented in a variety of configurations of information handling system 102 . As such, the initialization point for method 400 and the order of the steps 402 - 410 comprising method 400 may depend on the implementation chosen.
- the memory unit may determine whether a refresh command has been received from memory controller 402 . If a refresh command is received, method 400 may proceed to step 406 . Otherwise, if a refresh command is not received, method 400 may proceed to step 404 .
- the memory unit may determine whether a refresh timer for it has expired. In certain embodiments, such refresh timer may run on a clock external to the memory unit, rather than internal to the memory unit, to allow synchronizer with refresh timing of memory controller 108 . If the refresh timer has expired, method 400 may proceed to step 406 . Otherwise, if the refresh timer has not expired, method 400 may end.
- the memory unit may be refreshed.
- a counter may be incremented, such that method 400 may be implemented for a subsequent memory unit.
- a refresh timer may be started again (e.g., for the subsequent memory unit).
- method 400 may end with respect to one memory unit, then proceed to step 402 to begin again for a subsequent memory unit.
- FIG. 4 discloses a particular number of steps to be taken with respect to method 400
- method 400 may be executed with greater or lesser steps than those depicted in FIG. 4 .
- FIG. 4 discloses a certain order of steps to be taken with respect to method 400
- the steps comprising method 400 may be completed in any suitable order.
- Method 400 may be implemented using information handling system 102 or any other system operable to implement method 400 .
- method 400 may be implemented partially or fully in software and/or firmware embodied in computer-readable media.
- FIG. 5 illustrates a flow chart of an example method 500 of execution for a filter of memory controller 108 in which memory controller commands would be generated in a conventional manner upstream of such filter.
- the filter represented by method 500 may block explicit refresh commands to self-refresh banks and may delay commands to ranks with banks being self-refreshed. Also, in accordance with method 500 , if self-refresh is active in a rank 118 , other commands to such rank 118 may be disabled to prevent excessive power consumption.
- method 500 may begin at step 502 .
- teachings of the present disclosure may be implemented in a variety of configurations of information handling system 102 . As such, the initialization point for method 500 and the order of the steps 502 - 512 comprising method 500 may depend on the implementation chosen.
- memory controller 108 may determine if a particular bank 110 and/or rank 118 is presently in a refresh interval.
- the refresh interval may be an interval in which self-refresh occurs in designated banks 110 .
- the interval may be based on a table of self-refresh banks and a master timer synchronized with each rank 118 at start up.
- Memory controller 108 may be aware which bank (as well as rank) for which a refresh command is destined (e.g., by reference to status table 113 ). If presently in a refresh interval, method 500 may proceed to step 504 . If not presently in a refresh interval, method 500 may proceed to step 508 .
- memory controller 108 may determine if a command is to a rank 118 which contains a bank currently being self refreshed. If the command is to a rank 118 which contains a bank currently being self-refreshed, method 500 may proceed to step 506 . Otherwise, method 500 may proceed to step 512 . Step 504 may prevent an internal self-refresh conflict with a controller command.
- memory controller 108 may delay the command to self-refresh a rank 118 . After completion of step 506 , method 500 may end.
- memory controller 108 may determine if a generated command is a refresh command. If the command is a refresh command, method 500 may proceed to step 510 . Otherwise, if the command is not a refresh command, method 500 may proceed to step 512 .
- memory controller may determine if the generated command is a command to self-refresh a bank 110 per table 113 . If the command is a command to self-refresh a bank 110 , method 500 may end. Otherwise, if the command is not a command to self-refresh a bank 110 , method 500 may proceed to step 512 .
- step 512 memory controller 108 may issue the generated command. After completion of step 512 , method 500 may end.
- FIG. 5 discloses a particular number of steps to be taken with respect to method 500
- method 500 may be executed with greater or lesser steps than those depicted in FIG. 5 .
- FIG. 5 discloses a certain order of steps to be taken with respect to method 500
- the steps comprising method 500 may be completed in any suitable order.
- Method 500 may be implemented using information handling system 102 or any other system operable to implement method 500 .
- method 500 may be implemented partially or fully in software and/or firmware embodied in computer-readable media.
- FIG. 6 illustrates a flow chart of an example method 600 for transitioning a collection of banks 110 (or other unit of memory) from a command-based refresh mode to a self-mode, in accordance with certain embodiments of the present disclosure.
- method 600 may begin at step 602 .
- teachings of the present disclosure may be implemented in a variety of configurations of information handling system 102 . As such, the initialization point for method 600 and the order of the steps 602 - 604 comprising method 600 may depend on the implementation chosen.
- an event may occur whereby a collection of memory pages of memory system 104 may become infrequently accessed or inactive.
- a virtual machine executing on processor 103 may become inactive, thereby rendering data and instructions associated with such virtual machine inactive in memory system 104 .
- step 604 in response to memory pages becoming inactive, memory controller 108 may place all banks 110 having only such inactive pages in self-refresh mode (e.g., may appropriately update status table 113 to indicate transition to self-refresh mode). After completion of step 604 , method 600 may end.
- FIG. 6 discloses a particular number of steps to be taken with respect to method 600
- method 600 may be executed with greater or lesser steps than those depicted in FIG. 6 .
- FIG. 6 discloses a certain order of steps to be taken with respect to method 600
- the steps comprising method 600 may be completed in any suitable order.
- Method 600 may be implemented using information handling system 102 or any other system operable to implement method 600 .
- method 600 may be implemented partially or fully in software and/or firmware embodied in computer-readable media.
- FIG. 7 illustrates a flow chart of an example method 700 for transitioning a collection of banks 110 (or other unit of memory) from a self-refresh mode to a command-based refresh mode, in accordance with certain embodiments of the present disclosure.
- method 700 may begin at step 702 .
- teachings of the present disclosure may be implemented in a variety of configurations of information handling system 102 . As such, the initialization point for method 700 and the order of the steps 702 - 704 comprising method 700 may depend on the implementation chosen.
- an event may occur whereby a collection of inactive memory pages of memory system 104 may become active.
- an inactive virtual machine executing on processor 103 may become active, thereby rendering data and instructions associated with such virtual machine active in memory system 104 .
- step 704 in response to memory pages becoming active, memory controller 108 may place all banks 110 having such active pages in command-based mode (e.g., may appropriately update status table 113 to indicate transition to command-based refresh mode). After completion of step 704 , method 700 may end.
- FIG. 7 discloses a particular number of steps to be taken with respect to method 700
- method 700 may be executed with greater or lesser steps than those depicted in FIG. 7 .
- FIG. 7 discloses a certain order of steps to be taken with respect to method 700
- the steps comprising method 700 may be completed in any suitable order.
- Method 700 may be implemented using information handling system 102 or any other system operable to implement method 700 .
- method 700 may be implemented partially or fully in software and/or firmware embodied in computer-readable media.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Dram (AREA)
Abstract
Description
- This application is related to copending Patent Application entitled “System and Method For Reducing Power Consumption of Memory,” application Ser. No. 12/629,881, filed on Dec. 2, 2009, which is incorporated by reference herein.
- The present disclosure relates in general to improving performance and reducing power consumption in information handling systems, and more particularly to improving performance and reducing power consumption of memory.
- 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 often use memory to store data and/or instructions. Broadly speaking, the term memory refers to computer components, devices, and recording media that retain digital data used for processing for some interval of time. A commonly-used type of memory is known as dynamic random access memory (DRAM). DRAM is a type of random access memory that stores each bit (or cell) of data in a separate capacitive element within an integrated circuit. Because capacitors leak charge, the information eventually fades unless the capacitor charge is refreshed periodically. Such refreshing of DRAM cells limits useful work performed by a memory system and consumes power. As the density and operating frequency of DRAMs increase, so too do limitations on useful work and the power consumed by DRAMs. Limitations on useful work will reduce overall system performance and efficiency. Consumption of additional power may lead to higher operating temperatures for the DRAMs and the information handling systems in which such DRAMs are present, which may affect operability of an information handling system and its components. In addition, such consumption of power may lead to higher operating costs due to increased energy costs associated with operation, as well as costs associated with cooling systems to mitigate increased temperatures.
- In accordance with the teachings of the present disclosure, the disadvantages and problems associated with performance reduction and power consumption due to refresh in memory devices have been substantially reduced or eliminated.
- In accordance with one embodiment of the present disclosure, a method for improving performance and reducing power consumption in memory may include tracking whether individual units of a memory system are active or inactive. The method may also include placing inactive individual units of the memory system in a self-refresh mode, such that the inactive individual units self-refresh their contents. The method may further include placing active individual units of the memory system in a command-based refresh mode, such that the active individual units are refreshed in response to a received command to refresh their contents.
- In accordance with another embodiment of the present disclosure, an information handling system may include a processor and a memory system communicatively coupled to the processor. The memory system may include individual units for storage of data and a memory controller communicatively coupled to the individual units. The memory controller may be configured to (i) track whether the individual units are active or inactive, (ii) place inactive individual units in a self-refresh mode, such that the inactive individual units self-refresh their contents, (iii) and place active individual units in a command-based refresh mode, such that the active individual units are refreshed in response to a received command to refresh their contents.
- In accordance with a further embodiment of the present disclosure, a memory system may include individual units for storage of data and a memory controller communicatively coupled to the individual units. The memory controller may be configured to (i) track whether the individual units are active or inactive, (ii) place a first region including only inactive individual units in a self-refresh mode, such that the individual units of the first region self-refresh their contents, and (iii) place a second region including active individual units and inactive individual units in a command-based refresh mode, such that the individual units of the second region are refreshed in response to a received command to refresh their contents.
- Other technical advantages 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. 2 illustrates various fields associated with mode register MR2 of a DRAM according to the JEDEC Specification, in accordance with certain embodiments of the present disclosure; -
FIG. 3 illustrates an example status table for a memory system including eight ranks and eight banks, in accordance with certain embodiments of the present disclosure; -
FIG. 4 illustrates a flow chart of an example method for performing refresh within a memory unit, in accordance with certain embodiments of the present disclosure; -
FIG. 5 illustrates a flow chart of an example method of execution for a filter of a memory controller in which memory controller commands would be generated in a conventional manner upstream of such filter, in accordance with certain embodiments of the present disclosure; -
FIG. 6 illustrates a flow chart of an example method for transitioning a collection of banks (or other unit of memory) from a command-based refresh mode to a self-refresh mode, in accordance with certain embodiments of the present disclosure; and -
FIG. 7 illustrates a flow chart of an example method for transitioning a collection of banks (or other unit of memory) from a self-refresh mode to a command-based refresh mode, in accordance with certain embodiments of the present disclosure. - Preferred embodiments and their advantages are best understood by reference to
FIGS. 1-7 , wherein like numbers are used to indicate like and corresponding parts. - For the 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, entertainment, or other purposes. For example, an information handling system may be a personal computer, a PDA, a consumer electronic device, 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 memory, one or more processing resources such as a central processing unit (CPU) or hardware or software control logic. Additional components or the information handling system may include one or more storage devices, one or more communications ports for communicating with external devices as well as various input and 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 communication between the various hardware components.
- For the purposes of this disclosure, computer-readable media may include any instrumentality or aggregation of instrumentalities that may retain data and/or instructions for a period of time. Computer-readable media may include, without limitation, storage media such as a direct access storage device (e.g., a hard disk drive or floppy disk), a sequential access storage device (e.g., a tape drive), compact disk, CD-ROM, DVD, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), and/or flash memory; as well as communications media such wires, optical fibers, microwaves, radio waves, and other electromagnetic and/or optical carriers; and/or any combination of the foregoing.
-
FIG. 1 illustrates a block diagram of an exampleinformation handling system 102 in accordance with certain embodiments of the present disclosure. In certain embodiments,information handling system 102 may comprise a computer chassis or enclosure (e.g., a server chassis holding one or more server blades). In other embodiments,information handling system 102 may be a personal computer (e.g., a desktop computer or a portable computer). As depicted inFIG. 1 ,information handling system 102 may include aprocessor 103, amemory system 104 communicatively coupled toprocessor 103, and astorage medium 106 communicatively coupled toprocessor 103. -
Processor 103 may include any system, device, or apparatus configured to interpret and/or execute program instructions and/or process data, and may include, without limitation a microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), or any other digital or analog circuitry configured to interpret and/or execute program instructions and/or process data. In some embodiments,processor 103 may interpret and/or execute program instructions and/or process data stored and/or communicated by one or more ofmemory system 104,storage medium 106, and/or another component ofinformation handling system 100. -
Memory system 104 may be communicatively coupled toprocessor 103 and may comprise any system, device, or apparatus operable to retain program instructions or data for a period of time (e.g., computer-readable media).Memory system 104 may comprise random access memory (RAM), electrically erasable programmable read-only memory (EEPROM), a PCMCIA card, flash memory, magnetic storage, opto-magnetic storage, or any suitable selection and/or array of volatile or non-volatile memory that retains data after power toinformation handling system 102 is turned off. In particular embodiments,memory system 104 may comprise dynamic random access memory (DRAM). - As shown in
FIG. 1 ,memory system 104 may includememory controller 108, one or more memory modules 116 a-116 n communicatively coupled tomemory controller 108, andstatus registers 112 communicatively coupled tomemory controller 108.Memory controller 108 may be any system, device, or apparatus configured to manage and/or controlmemory system 104. For example,memory controller 108 may be configured to read data from and/or write data to memory modules 116 comprisingmemory system 104. Additionally or alternatively,memory controller 108 may be configured to refresh memory modules in embodiments in whichmemory system 104 comprises DRAM. Althoughmemory controller 108 is shown inFIG. 1 as an integral component ofmemory system 104,memory controller 108 may be separate frommemory system 104 and/or may be an integral portion of another component of information handling system 102 (e.g.,memory controller 108 may be integrated into processor 103). - Each memory module 116 may include any system, device or apparatus configured to retain program instructions and/or data for a period of time (e.g., computer-readable media). Each memory module 116 may include a dynamic random access memory (DRAM) module (e.g, a dual in-line package (DIP) memory, a Single In-line Pin Package (SIPP) memory, a Single Inline Memory Module (SIMM), a Ball Grid Array (BGA)), or any other suitable memory.
- As depicted in
FIG. 1 , each memory module 116 may include one or more ranks 118 a-118 m. Each memory rank 118 within a memory module 116 may be a block or area of data created using some or all of the memory capacity of the memory module 116. In some embodiments, each rank 118 may be a rank as such term in defined by the Joint Electron Device Engineering Council (JEDEC) Standard for memory devices. - Also as shown in
FIG. 1 , each rank 118 may include mode registers 120 and one ormore memory banks 110. Eachmemory bank 110 may be a logical unit of storage withinmemory system 104, which may be based on physical parameters of the memory module 116 comprisingsuch memory bank 110. - Mode registers 120 may include one or more configuration variables and/or parameters associated with
memory system 104. When reading, writing, refreshing, and/or performing other operations associated withmemory system 104, a memory module 116 may carry out such operations based at least in part on configuration parameters and/or variables stored in mode registers 120. In some embodiments, mode registers 120 may be defined by a Joint Electron Device Engineering Council (JEDEC) standard for memory devices. - Status registers 112 may include one or more configuration variables and/or parameters associated with
memory system 104. When reading, writing, refreshing, and/or performing other operations associated withmemory system 104,memory controller 108 may carry out such operations based at least in part on configuration parameters and/or variables stored in status registers 112. In some embodiments, status registers 112 may include registers similar to mode registers 120. - Status table 113 may include one or more configuration variables and/or parameters associated with individual banks 110 (or other unit of memory) of memory modules 116. In particular, as described in greater detail below, individual entries of status table 113 may indicate whether a particular bank 110 (or other unit of memory) is in a self-refresh mode or command refresh mode.
-
Storage medium 106 may be communicatively coupled toprocessor 104.Storage medium 106 may include any system, device, or apparatus operable to store information processed byprocessor 103.Storage medium 106 may include, for example, network attached storage, one or more direct access storage devices (e.g., hard disk drives), and/or one or more sequential access storage devices (e.g., tape drives). As shown inFIG. 1 ,storage medium 106 may have stored thereon an operating system (OS) 114.OS 114 may be any program of executable instructions, or aggregation of programs of executable instructions, configured to manage and/or control the allocation and usage of hardware resources such as memory, CPU time, disk space, and input and output devices, and provide an interface between such hardware resources and application programs hosted byOS 114. Active portions ofOS 114 may be transferred tomemory 104 for execution byprocessor 103. - In operation,
processor 103 and/ormemory controller 108 may manage and control thevarious banks 110 such that one or more banks 110 (or other units of memory) may be enabled to self-refresh, while one or more other banks 110 (or other units of memory) may be enabled to refresh as a result of a refresh command frommemory controller 108. Such selective enabling of banks 110 (or other memory units) for self-refresh and command-based refresh may provide improved performance and power savings, as “inactive” areas of memory system 104 (e.g., thosebanks 110 that are not currently being accessed, but still require data to be retained) may be enabled for self-refresh, while other “active” areas of memory system 104 (e.g, thosebanks 110 accessed more frequently) that would typically often require command-based refresh due to the activity of such areas, may be enabled for command-based refresh. Because a self-refresh operation does not require a command, other commands may be issued and less power is consumed than a command-based refresh. Such selective enabling may allow for improved performance and reduced power consumption as compared with traditional memory systems. -
FIG. 2 illustrates various fields associated with mode register MR2 of a DRAM according to the JEDEC Specification, in accordance with certain embodiments of the present disclosure. As shown inFIG. 2 , mode register MR2 includes a three-bit field labeled as PASR or “Partial Array Self-Refresh.” By appropriately setting this field as memory pages andbanks 110 are allocated and deallocated inmemory system 104, such PASR field may indicate to memory controller 108 a fraction (e.g., one-eighth, one-fourth, one-half, three-fourths, all) of thebanks 110 that are in use. Accordingly, during self-refresh, only a portion of thememory banks 110, as indicated by the PASR field, may be refreshed, which may reduce power consumption associated with refresh as compared to traditional approaches. However, the use of Partial Array Self-Refresh in accordance with the JEDEC standard may not be sufficient for all applications. For example, PASR enables self-refresh ofcertain banks 110, but those banks not so enabled are not refreshed, either by command or self-refresh. Accordingly, PASR is not sufficient in applications in which all data or a very large portion of data in a memory module 116 must be refreshed. - Nonetheless, an approach similar to identifying
particular blocks 110 similar to that of PASR, which may be referred to as “Partial Array Standby” in this disclosure, may be utilized. For example, the existing JEDEC Specification may be extended (e.g., by addition of another mode register and functionality for supporting such mode register) such that a field similar to that of PASR may designate a fraction (e.g., one-eighth, one-fourth, one-half, three-fourths, all) ofbanks 110 that will be enabled for self-refresh, and thosebanks 110 not enabled for self-refresh may be instead enabled for command-based refresh. - Alternatively, rather than identify a fraction of banks 110 (or fraction of another unit of memory),
banks 110 enabled for self-refresh and command-based refresh may be identified on a bank-by-bank basis (or based on another unit of memory) in status table 113.FIG. 3 illustrates an example status table 113 for amemory system 104 including one or more memory modules 116 of eight ranks 118 and eightbanks 110 each. In the example status table 113 ofFIG. 3 , a letter “C” indicates abank 110 enabled for command-based refresh, while an “S” indicates a bank enabled for self-refresh. WhileFIG. 1 depicts status table 113 as being integral tomemory system 104, such status table 113 may be maintained by operatingsystem 114 or another program of instructions executing on 103, in which case the identity of the command-based and self-refresh banks could be communicated tomemory controller 108 via firmware using Advanced Configuration and Power Interface (ACPI) extensions, or via any other suitable manner. - In some embodiments, regions of
memory system 104 enabled for command-based refresh may be associated with collections of active threads (e.g., associated with active virtual machines) while those regions of memory system enabled for self-refresh may be associated with collections of inactive threads (e.g., associated with inactive virtual machines). - In addition, although the foregoing discussion has discussed the enabling of
banks 110 for either of command-based or self-refresh, the enabling of portions ofmemory system 104 may be at a granularity finer or coarser than that of abank 110. For example, in some embodiments, enabling of portions of memory for command-based or self-refresh may be made on at the memory page level, the memory block level, or any other suitable unit of memory. -
FIG. 4 illustrates a flow chart of anexample method 400 for performing refresh within a memory unit (e.g., rank or other unit of memory), in accordance with certain embodiments of the present disclosure. According to one embodiment,method 400 may begin atstep 402. As noted above, teachings of the present disclosure may be implemented in a variety of configurations ofinformation handling system 102. As such, the initialization point formethod 400 and the order of the steps 402-410 comprisingmethod 400 may depend on the implementation chosen. - At
step 402, the memory unit may determine whether a refresh command has been received frommemory controller 402. If a refresh command is received,method 400 may proceed to step 406. Otherwise, if a refresh command is not received,method 400 may proceed to step 404. - At
step 404, the memory unit may determine whether a refresh timer for it has expired. In certain embodiments, such refresh timer may run on a clock external to the memory unit, rather than internal to the memory unit, to allow synchronizer with refresh timing ofmemory controller 108. If the refresh timer has expired,method 400 may proceed to step 406. Otherwise, if the refresh timer has not expired,method 400 may end. - At
step 406, in response to a determination that either a refresh command has been received or a refresh timer expired, the memory unit may be refreshed. - At
step 408, a counter may be incremented, such thatmethod 400 may be implemented for a subsequent memory unit. - At
step 410, a refresh timer may be started again (e.g., for the subsequent memory unit). After completion ofstep 410,method 400 may end with respect to one memory unit, then proceed to step 402 to begin again for a subsequent memory unit. - Although
FIG. 4 discloses a particular number of steps to be taken with respect tomethod 400,method 400 may be executed with greater or lesser steps than those depicted inFIG. 4 . In addition, althoughFIG. 4 discloses a certain order of steps to be taken with respect tomethod 400, thesteps comprising method 400 may be completed in any suitable order. -
Method 400 may be implemented usinginformation handling system 102 or any other system operable to implementmethod 400. In certain embodiments,method 400 may be implemented partially or fully in software and/or firmware embodied in computer-readable media. -
FIG. 5 illustrates a flow chart of anexample method 500 of execution for a filter ofmemory controller 108 in which memory controller commands would be generated in a conventional manner upstream of such filter. The filter represented bymethod 500 may block explicit refresh commands to self-refresh banks and may delay commands to ranks with banks being self-refreshed. Also, in accordance withmethod 500, if self-refresh is active in a rank 118, other commands to such rank 118 may be disabled to prevent excessive power consumption. According to one embodiment,method 500 may begin atstep 502. As noted above, teachings of the present disclosure may be implemented in a variety of configurations ofinformation handling system 102. As such, the initialization point formethod 500 and the order of the steps 502-512 comprisingmethod 500 may depend on the implementation chosen. - At
step 502,memory controller 108 may determine if aparticular bank 110 and/or rank 118 is presently in a refresh interval. The refresh interval may be an interval in which self-refresh occurs in designatedbanks 110. The interval may be based on a table of self-refresh banks and a master timer synchronized with each rank 118 at start up.Memory controller 108 may be aware which bank (as well as rank) for which a refresh command is destined (e.g., by reference to status table 113). If presently in a refresh interval,method 500 may proceed to step 504. If not presently in a refresh interval,method 500 may proceed to step 508. - At
step 504,memory controller 108 may determine if a command is to a rank 118 which contains a bank currently being self refreshed. If the command is to a rank 118 which contains a bank currently being self-refreshed,method 500 may proceed to step 506. Otherwise,method 500 may proceed to step 512. Step 504 may prevent an internal self-refresh conflict with a controller command. - At
step 506,memory controller 108 may delay the command to self-refresh a rank 118. After completion ofstep 506,method 500 may end. - At
step 508,memory controller 108 may determine if a generated command is a refresh command. If the command is a refresh command,method 500 may proceed to step 510. Otherwise, if the command is not a refresh command,method 500 may proceed to step 512. - At
step 510, memory controller may determine if the generated command is a command to self-refresh abank 110 per table 113. If the command is a command to self-refresh abank 110,method 500 may end. Otherwise, if the command is not a command to self-refresh abank 110,method 500 may proceed to step 512. - At
step 512,memory controller 108 may issue the generated command. After completion ofstep 512,method 500 may end. - Although
FIG. 5 discloses a particular number of steps to be taken with respect tomethod 500,method 500 may be executed with greater or lesser steps than those depicted inFIG. 5 . In addition, althoughFIG. 5 discloses a certain order of steps to be taken with respect tomethod 500, thesteps comprising method 500 may be completed in any suitable order. -
Method 500 may be implemented usinginformation handling system 102 or any other system operable to implementmethod 500. In certain embodiments,method 500 may be implemented partially or fully in software and/or firmware embodied in computer-readable media. -
FIG. 6 illustrates a flow chart of anexample method 600 for transitioning a collection of banks 110 (or other unit of memory) from a command-based refresh mode to a self-mode, in accordance with certain embodiments of the present disclosure. According to one embodiment,method 600 may begin atstep 602. As noted above, teachings of the present disclosure may be implemented in a variety of configurations ofinformation handling system 102. As such, the initialization point formethod 600 and the order of the steps 602-604 comprisingmethod 600 may depend on the implementation chosen. - At
step 602, an event may occur whereby a collection of memory pages ofmemory system 104 may become infrequently accessed or inactive. For example, a virtual machine executing onprocessor 103 may become inactive, thereby rendering data and instructions associated with such virtual machine inactive inmemory system 104. - At
step 604, in response to memory pages becoming inactive,memory controller 108 may place allbanks 110 having only such inactive pages in self-refresh mode (e.g., may appropriately update status table 113 to indicate transition to self-refresh mode). After completion ofstep 604,method 600 may end. - Although
FIG. 6 discloses a particular number of steps to be taken with respect tomethod 600,method 600 may be executed with greater or lesser steps than those depicted inFIG. 6 . In addition, althoughFIG. 6 discloses a certain order of steps to be taken with respect tomethod 600, thesteps comprising method 600 may be completed in any suitable order. -
Method 600 may be implemented usinginformation handling system 102 or any other system operable to implementmethod 600. In certain embodiments,method 600 may be implemented partially or fully in software and/or firmware embodied in computer-readable media. -
FIG. 7 illustrates a flow chart of anexample method 700 for transitioning a collection of banks 110 (or other unit of memory) from a self-refresh mode to a command-based refresh mode, in accordance with certain embodiments of the present disclosure. According to one embodiment,method 700 may begin atstep 702. As noted above, teachings of the present disclosure may be implemented in a variety of configurations ofinformation handling system 102. As such, the initialization point formethod 700 and the order of the steps 702-704 comprisingmethod 700 may depend on the implementation chosen. - At
step 702, an event may occur whereby a collection of inactive memory pages ofmemory system 104 may become active. For example, an inactive virtual machine executing onprocessor 103 may become active, thereby rendering data and instructions associated with such virtual machine active inmemory system 104. - At
step 704, in response to memory pages becoming active,memory controller 108 may place allbanks 110 having such active pages in command-based mode (e.g., may appropriately update status table 113 to indicate transition to command-based refresh mode). After completion ofstep 704,method 700 may end. - Although
FIG. 7 discloses a particular number of steps to be taken with respect tomethod 700,method 700 may be executed with greater or lesser steps than those depicted inFIG. 7 . In addition, althoughFIG. 7 discloses a certain order of steps to be taken with respect tomethod 700, thesteps comprising method 700 may be completed in any suitable order. -
Method 700 may be implemented usinginformation handling system 102 or any other system operable to implementmethod 700. In certain embodiments,method 700 may be implemented partially or fully in software and/or firmware embodied in computer-readable media. - Although the present disclosure has been described in detail, it should be understood that various changes, substitutions, and alterations can be made hereto without departing from the spirit and the scope of the disclosure as defined by the appended claims. As a specific example, although the embodiments above describe enabling refresh on a per bank basis for the purposes of simplicity and exposition, any appropriate level of granularity, whether a larger or smaller granularity than a bank, may be used.
Claims (21)
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/791,563 US20110296098A1 (en) | 2010-06-01 | 2010-06-01 | System and Method for Reducing Power Consumption of Memory |
| US15/236,034 US10365842B2 (en) | 2010-06-01 | 2016-08-12 | System and method for reducing power consumption of memory |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/791,563 US20110296098A1 (en) | 2010-06-01 | 2010-06-01 | System and Method for Reducing Power Consumption of Memory |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US15/236,034 Continuation US10365842B2 (en) | 2010-06-01 | 2016-08-12 | System and method for reducing power consumption of memory |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| US20110296098A1 true US20110296098A1 (en) | 2011-12-01 |
Family
ID=45023077
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US12/791,563 Abandoned US20110296098A1 (en) | 2010-06-01 | 2010-06-01 | System and Method for Reducing Power Consumption of Memory |
| US15/236,034 Active 2030-10-14 US10365842B2 (en) | 2010-06-01 | 2016-08-12 | System and method for reducing power consumption of memory |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US15/236,034 Active 2030-10-14 US10365842B2 (en) | 2010-06-01 | 2016-08-12 | System and method for reducing power consumption of memory |
Country Status (1)
| Country | Link |
|---|---|
| US (2) | US20110296098A1 (en) |
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20120079306A1 (en) * | 2010-09-24 | 2012-03-29 | Sarathy Jayakumar | Memory Reconfiguration During System Run-Time |
| US20130326252A1 (en) * | 2012-05-31 | 2013-12-05 | Kabushiki Kaisha Toshiba | Computer readable medium and computation processing apparatus |
| US9165635B2 (en) | 2012-12-27 | 2015-10-20 | Industrial Technology Research Institute | Memory controlling device and method thereof for controlling memory with partial array self refresh (PASR) function |
| US9274581B2 (en) | 2013-06-24 | 2016-03-01 | Dell Products, Lp | Date adjusted power budgeting for an information handling system |
| US20160352622A1 (en) * | 2015-06-01 | 2016-12-01 | Ciena Corporation | Enhanced forwarding database synchronization for media access control addresses learned in interconnected layer-2 architectures |
| WO2017091342A1 (en) * | 2015-11-24 | 2017-06-01 | Qualcomm Incorporated | Controlling a refresh mode of a dynamic random access memory (dram) die |
| US11164618B2 (en) | 2017-08-02 | 2021-11-02 | Qualcomm Incorporated | Partial refresh technique to save memory refresh power |
| US11341063B2 (en) * | 2019-01-31 | 2022-05-24 | Dell Products L.P. | Systems and methods for safely detecting indeterminate states of ranges in a self-encrypting storage resource |
| US20230282267A1 (en) * | 2022-01-14 | 2023-09-07 | Changxin Memory Technologies, Inc. | Power control circuit and control method |
| US12093110B2 (en) | 2022-01-14 | 2024-09-17 | Changxin Memory Technologies, Inc. | Power control circuit and control method |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10241702B1 (en) * | 2017-09-29 | 2019-03-26 | Agiga Tech Inc. | Extending the time for a memory save operation by reducing the peak instantaneous current draw |
| TWI729843B (en) * | 2020-06-08 | 2021-06-01 | 華邦電子股份有限公司 | Memory system and operating method thereof |
| US11164617B1 (en) | 2020-07-01 | 2021-11-02 | Winbond Electronics Corp. | Memory system and operating method thereof |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20030023825A1 (en) * | 2001-07-30 | 2003-01-30 | Woo Steven C | Consolidation of allocated memory to reduce power consumption |
| US20030028711A1 (en) * | 2001-07-30 | 2003-02-06 | Woo Steven C. | Monitoring in-use memory areas for power conservation |
| US20030174559A1 (en) * | 1999-08-30 | 2003-09-18 | Cooper Christopher B. | Methods of storing a temperature in an integrated circuit, method of modifying operation of dynamic random access memory in response to temperature, programmable temperature sensing circuit and memory integrated circuit |
| US20070106860A1 (en) * | 2005-11-10 | 2007-05-10 | International Business Machines Corporation | Redistribution of memory to reduce computer system power consumption |
| US20070253268A1 (en) * | 2006-04-28 | 2007-11-01 | Jin-Ki Kim | Dynamic random access memory with fully independent partial array refresh function |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5901105A (en) | 1995-04-05 | 1999-05-04 | Ong; Adrian E | Dynamic random access memory having decoding circuitry for partial memory blocks |
| US6590822B2 (en) | 2001-05-07 | 2003-07-08 | Samsung Electronics Co., Ltd. | System and method for performing partial array self-refresh operation in a semiconductor memory device |
| US7426151B2 (en) | 2001-08-14 | 2008-09-16 | Samung Electronics Co., Ltd. | Device and method for performing a partial array refresh operation |
| JP4257486B2 (en) | 2002-02-14 | 2009-04-22 | Okiセミコンダクタ株式会社 | DRAM power supply control device |
| JP4054200B2 (en) * | 2002-02-19 | 2008-02-27 | 松下電器産業株式会社 | Semiconductor memory device |
| KR100474551B1 (en) | 2003-02-10 | 2005-03-10 | 주식회사 하이닉스반도체 | Self refresh apparatus and method |
| US7392339B2 (en) * | 2003-12-10 | 2008-06-24 | Intel Corporation | Partial bank DRAM precharge |
| KR100611774B1 (en) | 2004-06-03 | 2006-08-10 | 주식회사 하이닉스반도체 | Bank-Based Partial Array Self Refresh Apparatus and Method of Semiconductor Memory Devices |
| US7200062B2 (en) * | 2004-08-31 | 2007-04-03 | Micron Technology, Inc. | Method and system for reducing the peak current in refreshing dynamic random access memory devices |
| KR100608370B1 (en) | 2004-11-15 | 2006-08-08 | 주식회사 하이닉스반도체 | How to perform a refresh of a memory device |
| US7342841B2 (en) | 2004-12-21 | 2008-03-11 | Intel Corporation | Method, apparatus, and system for active refresh management |
| US7953921B2 (en) * | 2004-12-28 | 2011-05-31 | Qualcomm Incorporated | Directed auto-refresh synchronization |
| KR101183684B1 (en) | 2005-07-13 | 2012-10-18 | 삼성전자주식회사 | DRAM AND Method for Refreshing a Portion of Memory Cell Array |
| US8095725B2 (en) | 2007-12-31 | 2012-01-10 | Intel Corporation | Device, system, and method of memory allocation |
| US20130100755A1 (en) * | 2011-10-21 | 2013-04-25 | Samsung Electronics Co., Ltd. | Semiconductor memory device implementing comprehensive partial array self refresh scheme |
-
2010
- 2010-06-01 US US12/791,563 patent/US20110296098A1/en not_active Abandoned
-
2016
- 2016-08-12 US US15/236,034 patent/US10365842B2/en active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20030174559A1 (en) * | 1999-08-30 | 2003-09-18 | Cooper Christopher B. | Methods of storing a temperature in an integrated circuit, method of modifying operation of dynamic random access memory in response to temperature, programmable temperature sensing circuit and memory integrated circuit |
| US20030023825A1 (en) * | 2001-07-30 | 2003-01-30 | Woo Steven C | Consolidation of allocated memory to reduce power consumption |
| US20030028711A1 (en) * | 2001-07-30 | 2003-02-06 | Woo Steven C. | Monitoring in-use memory areas for power conservation |
| US20070106860A1 (en) * | 2005-11-10 | 2007-05-10 | International Business Machines Corporation | Redistribution of memory to reduce computer system power consumption |
| US20070253268A1 (en) * | 2006-04-28 | 2007-11-01 | Jin-Ki Kim | Dynamic random access memory with fully independent partial array refresh function |
Cited By (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20120079306A1 (en) * | 2010-09-24 | 2012-03-29 | Sarathy Jayakumar | Memory Reconfiguration During System Run-Time |
| US8650414B2 (en) * | 2010-09-24 | 2014-02-11 | Intel Corporation | Logic device having status and control registers for recording the status and controlling the operation of memory slots such that each memory slot is identified using a bus address and port number |
| US20130326252A1 (en) * | 2012-05-31 | 2013-12-05 | Kabushiki Kaisha Toshiba | Computer readable medium and computation processing apparatus |
| US9471131B2 (en) * | 2012-05-31 | 2016-10-18 | Kabushiki Kaisha Toshiba | Apparatus and machine for reducing power consumption of memory including a plurality of segment areas, method therefore and non-transitory computer readable medium |
| US9165635B2 (en) | 2012-12-27 | 2015-10-20 | Industrial Technology Research Institute | Memory controlling device and method thereof for controlling memory with partial array self refresh (PASR) function |
| US9274581B2 (en) | 2013-06-24 | 2016-03-01 | Dell Products, Lp | Date adjusted power budgeting for an information handling system |
| US20160352622A1 (en) * | 2015-06-01 | 2016-12-01 | Ciena Corporation | Enhanced forwarding database synchronization for media access control addresses learned in interconnected layer-2 architectures |
| US10305796B2 (en) * | 2015-06-01 | 2019-05-28 | Ciena Corporation | Enhanced forwarding database synchronization for media access control addresses learned in interconnected layer-2 architectures |
| WO2017091342A1 (en) * | 2015-11-24 | 2017-06-01 | Qualcomm Incorporated | Controlling a refresh mode of a dynamic random access memory (dram) die |
| US9754655B2 (en) | 2015-11-24 | 2017-09-05 | Qualcomm Incorporated | Controlling a refresh mode of a dynamic random access memory (DRAM) die |
| US11164618B2 (en) | 2017-08-02 | 2021-11-02 | Qualcomm Incorporated | Partial refresh technique to save memory refresh power |
| US11631450B2 (en) | 2017-08-02 | 2023-04-18 | Qualcomm Incorporated | Partial refresh technique to save memory refresh power |
| US11341063B2 (en) * | 2019-01-31 | 2022-05-24 | Dell Products L.P. | Systems and methods for safely detecting indeterminate states of ranges in a self-encrypting storage resource |
| US20230282267A1 (en) * | 2022-01-14 | 2023-09-07 | Changxin Memory Technologies, Inc. | Power control circuit and control method |
| US12093110B2 (en) | 2022-01-14 | 2024-09-17 | Changxin Memory Technologies, Inc. | Power control circuit and control method |
Also Published As
| Publication number | Publication date |
|---|---|
| US10365842B2 (en) | 2019-07-30 |
| US20170052727A1 (en) | 2017-02-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10365842B2 (en) | System and method for reducing power consumption of memory | |
| US8468295B2 (en) | System and method for reducing power consumption of memory | |
| KR101665611B1 (en) | Computer system and method of memory management | |
| Bhati et al. | DRAM refresh mechanisms, penalties, and trade-offs | |
| US9696771B2 (en) | Methods and systems for operating multi-core processors | |
| TWI614752B (en) | Power conservation by way of memory channel shutdown | |
| US9336855B2 (en) | Methods and systems for smart refresh of dynamic random access memory | |
| TWI224728B (en) | Method and related apparatus for maintaining stored data of a dynamic random access memory | |
| US10176107B2 (en) | Methods and systems for dynamic DRAM cache sizing | |
| JP6276470B2 (en) | System and method for reducing standby power of volatile memory in portable computing devices | |
| US20120036381A1 (en) | Information processing device, power control method, and program | |
| TW201419299A (en) | System and method for dynamic memory power management | |
| US10108250B2 (en) | Memory module, system including the same | |
| US20180225059A1 (en) | Operating mode memory migration | |
| US20100115178A1 (en) | System and Method for Hierarchical Wear Leveling in Storage Devices | |
| US11907141B1 (en) | Flexible dual ranks memory system to boost performance | |
| CN102768571A (en) | Energy Saving Method of Data Center Based on PCM | |
| CN103927203A (en) | Computer system and control method | |
| US10394310B2 (en) | System and method for sleeping states using non-volatile memory components | |
| US10496303B2 (en) | Method for reducing power consumption memory, and computer device | |
| US11556253B1 (en) | Reducing power consumption by selective memory chip hibernation | |
| CN104123241A (en) | Internal storage anonymous page initializing method, device and system | |
| JP2001101067A (en) | Self-refresh controller and storage medium storing program | |
| CN100412759C (en) | Memory automatic update method | |
| Zi et al. | Suspend-to-PCM: a new power-aware strategy for operating system’s rapid suspend and resume |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: DELL PRODUCTS L.P., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SAUBER, WILLIAM;BERKE, STUART ALLEN;REEL/FRAME:024466/0239 Effective date: 20100527 |
|
| AS | Assignment |
Owner name: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT, TE Free format text: PATENT SECURITY AGREEMENT (ABL);ASSIGNORS:DELL INC.;APPASSURE SOFTWARE, INC.;ASAP SOFTWARE EXPRESS, INC.;AND OTHERS;REEL/FRAME:031898/0001 Effective date: 20131029 Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA Free format text: PATENT SECURITY AGREEMENT (TERM LOAN);ASSIGNORS:DELL INC.;APPASSURE SOFTWARE, INC.;ASAP SOFTWARE EXPRESS, INC.;AND OTHERS;REEL/FRAME:031899/0261 Effective date: 20131029 Owner name: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT, TEXAS Free format text: PATENT SECURITY AGREEMENT (NOTES);ASSIGNORS:APPASSURE SOFTWARE, INC.;ASAP SOFTWARE EXPRESS, INC.;BOOMI, INC.;AND OTHERS;REEL/FRAME:031897/0348 Effective date: 20131029 Owner name: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT, TEXAS Free format text: PATENT SECURITY AGREEMENT (ABL);ASSIGNORS:DELL INC.;APPASSURE SOFTWARE, INC.;ASAP SOFTWARE EXPRESS, INC.;AND OTHERS;REEL/FRAME:031898/0001 Effective date: 20131029 Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH Free format text: PATENT SECURITY AGREEMENT (TERM LOAN);ASSIGNORS:DELL INC.;APPASSURE SOFTWARE, INC.;ASAP SOFTWARE EXPRESS, INC.;AND OTHERS;REEL/FRAME:031899/0261 Effective date: 20131029 Owner name: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FI Free format text: PATENT SECURITY AGREEMENT (NOTES);ASSIGNORS:APPASSURE SOFTWARE, INC.;ASAP SOFTWARE EXPRESS, INC.;BOOMI, INC.;AND OTHERS;REEL/FRAME:031897/0348 Effective date: 20131029 |
|
| STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION |
|
| AS | Assignment |
Owner name: SECUREWORKS, INC., GEORGIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:040065/0216 Effective date: 20160907 Owner name: DELL INC., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:040065/0216 Effective date: 20160907 Owner name: DELL MARKETING L.P., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:040065/0216 Effective date: 20160907 Owner name: ASAP SOFTWARE EXPRESS, INC., ILLINOIS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:040065/0216 Effective date: 20160907 Owner name: DELL SOFTWARE INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:040065/0216 Effective date: 20160907 Owner name: APPASSURE SOFTWARE, INC., VIRGINIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:040065/0216 Effective date: 20160907 Owner name: PEROT SYSTEMS CORPORATION, TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:040065/0216 Effective date: 20160907 Owner name: FORCE10 NETWORKS, INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:040065/0216 Effective date: 20160907 Owner name: COMPELLANT TECHNOLOGIES, INC., MINNESOTA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:040065/0216 Effective date: 20160907 Owner name: DELL USA L.P., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:040065/0216 Effective date: 20160907 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:040065/0216 Effective date: 20160907 Owner name: WYSE TECHNOLOGY L.L.C., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:040065/0216 Effective date: 20160907 Owner name: CREDANT TECHNOLOGIES, INC., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:040065/0216 Effective date: 20160907 |
|
| AS | Assignment |
Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:040040/0001 Effective date: 20160907 Owner name: DELL USA L.P., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:040040/0001 Effective date: 20160907 Owner name: APPASSURE SOFTWARE, INC., VIRGINIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:040040/0001 Effective date: 20160907 Owner name: DELL INC., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:040040/0001 Effective date: 20160907 Owner name: DELL SOFTWARE INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:040040/0001 Effective date: 20160907 Owner name: PEROT SYSTEMS CORPORATION, TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:040040/0001 Effective date: 20160907 Owner name: COMPELLENT TECHNOLOGIES, INC., MINNESOTA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:040040/0001 Effective date: 20160907 Owner name: FORCE10 NETWORKS, INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:040040/0001 Effective date: 20160907 Owner name: ASAP SOFTWARE EXPRESS, INC., ILLINOIS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:040040/0001 Effective date: 20160907 Owner name: DELL MARKETING L.P., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:040040/0001 Effective date: 20160907 Owner name: SECUREWORKS, INC., GEORGIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:040040/0001 Effective date: 20160907 Owner name: CREDANT TECHNOLOGIES, INC., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:040040/0001 Effective date: 20160907 Owner name: WYSE TECHNOLOGY L.L.C., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:040040/0001 Effective date: 20160907 Owner name: ASAP SOFTWARE EXPRESS, INC., ILLINOIS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT;REEL/FRAME:040065/0618 Effective date: 20160907 Owner name: APPASSURE SOFTWARE, INC., VIRGINIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT;REEL/FRAME:040065/0618 Effective date: 20160907 Owner name: FORCE10 NETWORKS, INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT;REEL/FRAME:040065/0618 Effective date: 20160907 Owner name: DELL INC., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT;REEL/FRAME:040065/0618 Effective date: 20160907 Owner name: COMPELLENT TECHNOLOGIES, INC., MINNESOTA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT;REEL/FRAME:040065/0618 Effective date: 20160907 Owner name: DELL MARKETING L.P., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT;REEL/FRAME:040065/0618 Effective date: 20160907 Owner name: PEROT SYSTEMS CORPORATION, TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT;REEL/FRAME:040065/0618 Effective date: 20160907 Owner name: DELL SOFTWARE INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT;REEL/FRAME:040065/0618 Effective date: 20160907 Owner name: CREDANT TECHNOLOGIES, INC., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT;REEL/FRAME:040065/0618 Effective date: 20160907 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT;REEL/FRAME:040065/0618 Effective date: 20160907 Owner name: SECUREWORKS, INC., GEORGIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT;REEL/FRAME:040065/0618 Effective date: 20160907 Owner name: DELL USA L.P., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT;REEL/FRAME:040065/0618 Effective date: 20160907 Owner name: WYSE TECHNOLOGY L.L.C., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT;REEL/FRAME:040065/0618 Effective date: 20160907 |
|
| AS | Assignment |
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., 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 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 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 |
|
| 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: 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 |