GB2360105A - Increasing usable system memory utilising data compression - Google Patents

Increasing usable system memory utilising data compression Download PDF

Info

Publication number
GB2360105A
GB2360105A GB0023896A GB0023896A GB2360105A GB 2360105 A GB2360105 A GB 2360105A GB 0023896 A GB0023896 A GB 0023896A GB 0023896 A GB0023896 A GB 0023896A GB 2360105 A GB2360105 A GB 2360105A
Authority
GB
United Kingdom
Prior art keywords
data
memory
processing system
computer
data processing
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.)
Withdrawn
Application number
GB0023896A
Other versions
GB0023896D0 (en
Inventor
James Arthur Brewer
Sanjay Gupta
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of GB0023896D0 publication Critical patent/GB0023896D0/en
Publication of GB2360105A publication Critical patent/GB2360105A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A means for increasing the amount of data that can be stored and retrieved within the memory of a data processing system using data compression. Data is generated that is to be stored in the RAM memory, then compressed with a memory controller in the data processing system and then stored in the RAM memory. When the data needs to be retrieved, the compressed data is retrieved from the RAM memory, decompressed within the memory controller and then forwarded.

Description

2360105 1 METHOD AND APPARATUS FOR INCREASING USABLE SYSTEM MEMORY SIZE IN
A DATA PROCESSING SYSTEM is The present invention relates generally to an improved data processing system and, in particular, to a method and system of memory storage access and control.
The power of computer processing continues to increase significantly over time, enabling legacy software applications to be executed more quickly, thereby saving enterprises time and money. However, computer software applications continue to grow more sophisticated over time to take advantage of the newly developed computing power. As users become accustomed to using more complex software, they demand the development of more features within software applications, which in turn generally require computers with increased computational power to be able to execute the newly developed software capabilities within a reasonable amount of time. This virtuous cycle appears to be able to continue into the distant future.
Some of the most complex software applications currently under development generate sophisticated computer generated images, three- dimensional graphics, and real-time video processing. Humans are able to view large amounts of display data for gaining insight into various scientific problems as well as for entertainment, which drives demand for more processing power and data storage. Database applications have improved in their ability to store large amounts of data for a variety of purposes, whether displayable data like Web pages and video data or millions of purchase transactions for credit card companies.
As software applications create increasing amounts of data to satiate the desires of computer users, various bottlenecks related to storing, processing, and transferring larger amounts of data arise within computer systems used for these applications. For example, although the cost of memory per bit, particularly random access memory (RAM), continues to decrease, computer applications continue to be able to consume available memory. The amount of memory, and hence the cost of memory, in any given computer system continues to be a significant consideration in the purchase of the computer system. The amount and cost of memory is a particularly important issue in the deployment of low-cost network computers in which large amounts of RAM may be used to compensate for a network computer' s 2 lack of disk storage. In addition, operating systems continue to be developed that require increasing amounts of memory for new and varied applications.
The present invention accordingly provides, in a first aspect, a method for storing data within a memory in a data processing system, the method comprising the steps of: generating data to be stored in RAM memory; compressing the data within a memory controller in the data processing system; and storing the compressed data in RAM memory.
A method according to the first aspect preferably further comprises the steps of: retrieving compressed data from RAM memory; decompressing the data within a memory controller; and forwarding the decompressed data.
In a second aspect, the present invention provides an apparatus for storing data within a memory in a data processing system, the apparatus comprising: means for generating data to be stored in P-AM memory; compressing means for compressing the data within a memory controller in the data processing system; and storing means for storing the compressed data in RAM memory.
An apparatus according to the second aspect preferably further comprises: retrieving means for retrieving compressed data from RAM memory; decompressing means for decompressing the data within a memory controller; and forwarding means for forwarding the decompressed data.
In a third aspect, the present invention provides a computer program to, when loaded into a computer system and executed, perform the steps of a method according to the first aspect.
The present invention advantageously improves the storage capacity of a computer memory without a corresponding increase in the overall cost of the computer or the memory. A method and apparatus for storing and retrieving data within a memory in a data processing system is provided. Data is generated that is to be stored in RAM memory. The data is compressed within a memory controller in the data processing system, and the compressed data is stored in RAM memory. on the reverse path, the compressed data is retrieved from RAM memory, the compressed data is decompressed, and the decompressed data is forwarded to the appropriate destination.
3 A preferred embodiment of the present invention will now be described by way of example only, with reference to the accompanying drawings, wherein:
Figure 1 is a pictorial representation depicting a data processing system in accordance with a preferred embodiment of the present invention; Figure 2A is a block diagram depicting an organization of internal components in a data processing system that may implement a preferred embodiment of the present invention; Figure 2B is a block diagram depicting an organization of internal components in a data processing system that includes the ability to improve the storage capacity of a computer memory without a corresponding increase in the overall cost of the computer in accordance with a preferred embodiment of the present invention; and Figures 3A-3B are flowcharts depicting the steps within processes for increasing the storage capacity of a computer memory in accordance with a preferred embodiment of the present invention.
With reference now to Figure 1, a pictorial representation depicts a data processing system in accordance with a preferred embodiment of the present invention. A computer 100 is depicted, which includes a system unit 110, a video display terminal 102, a keyboard 104, storage devices 108, which may include floppy drives and other types of permanent and removable storage media, and mouse 106. Video display terminal 102 connects to system unit 110 via video cable 112. Additional input devices may be included with computer 100. Computer 100 can be implemented using any suitable computer, for example, an IBM RISC/System 6000 system, a product of International Business Machines Corporation in Armonk, New York, running the Advanced Interactive Executive (AIX)', operating system. Although the depicted representation shows a workstat ion- type computer, other embodiments of the present invention may be implemented in other types of data processing systems, such as network computers, Web-based television set-top boxes, Internet appliances, etc. Computer 100 also preferably includes a graphical user interface that may be implemented by means of system software residing in computer readable media in operation within computer 100.
4 Figure 1 is intended as an example and not as an architectural limitation.
is With reference now to Figure 2A, a block diagram depicts an organization of internal components in a data processing system that may implement a preferred embodiment of the present invention. Data processing system 200 employs a variety of bus structures and protocols. Although the depicted example employs a PCI bus and an ISA bus, other bus architectures may be used. Processor 202 and L2 cache 204 are connected to PC1 bridge 206 via processor bus 208. Dynamic RAM (DRAM) memory 210 connects to PCI bridge 206 via memory bus 212. PCI bridge 206 connects to P= bus 214 that provides interconnections to other PCI buses and media devices. For example, PCI bus 214 connects to PCI riser card 216 that allows the interconnection of other PCI buses, such as interconnect 218 and interconnect 220. P= bus 214 provides connections for external data streams through network controller 226 and network interconnect 228. Video controller 222 accepts video datastreams through video interconnect 224 and temporarily stores video frames in frame buffer 230 before feeding the video datastream to the rest of the data processing system through PCI bus 214.
ISA bridge 232 connects to PCI bridge 206 via interconnect 234. ISA bridge 232 provides interconnection capabilities to a variety of input/output devices. universal serial bus (USB) 236 provides interconnection capability to common personal electronic devices, such as digital cameras, video disk players, etc., that employ the well known USB standard. Audio controller 238 provides microphone connection 240 and headphone connection 242. Data processing system 200 uses ISA bus 244 to access system boot flash memory 246 in which system boot code may be stored. Real-time clock (RTC) 248 provides timing information to data processing system 200. Super I/0 interconnect 250 provides interconnection capability to a number of computer peripheral devices and routes the data to and from these devices to data processing system 200 via ISA bus 244. Serial ports 252-254 provide interconnection capability to devices with serial ports. Parallel port 256 provides interconnection capability to devices that also contain a parallel port. Integrated device electronics (IDE) connection 258 provides an interface to controller electronics that may reside on a disk drive. Compact flash port 260 provides an interface to flash memory cards that are commonly used with small electronic devices and laptop computers and may include such cards as PCMCIA cards. Keyboard connection 262 and mouse connection 264 allow data processing system 200 to accept input data from a user.
With reference now to Figure 2B, a block diagram depicts an organization of internal components in a data processing system that includes the ability to improve the storage capacity of a computer memory without a corresponding increase in the overall cost of the computer in accordance with a preferred embodiment of the present invention. Similar elements in Figure 2A and Figure 2B are labeled similarly. In lieu of some of the connections and components shown in system 200 in Figure 2A, such as DRAM memory 210 connected to PC1 bridge 206 via memory bus 212, Figure 2B includes DRAM 280 interfacing with PCI bridge 206 via compression logic 282 and decompression logic 284. Compression logic 282 and decompression logic 284 may be located within a bridge chip, or alternatively, compression logic 282 and decompression logic 284 may be located within a memory controller. In either case, DRAM 280 would contain a memory controller as appropriate for receiving or sending data as necessary for the structure of DRAM memory 280. As memory write transactions are requested or write instructions are executed, compression logic 282 buffers up and compresses the data being sent to DRAM memory 280 before sending the compressed data to a memory controller in DRAM memory 280. As memory read transactions are requested or read instructions are executed, decompression logic 284 receives compressed data from DRAM memory 280, decompresses the retrieved data, and forwards the decompressed data to the appropriate destination.
By compressing the data, fewer bits need to be stored for the same amount of information. DRAM memory 280 may contain the same amount of physical memory as DRAM memory 210, but because the data is compressed before the data is stored into the DRAM memory, DRAM memory 280 is able to store a larger amount of useful information than DRAM memory 210. Although the data within DRAM memory 280 is not directly useful without first decompressing the stored data, the dynamic nature of the memory would not allow persistent storage of the information, and applications that store information within DRAM memory 280 would not expect the information to be obtainable through any other means, for example, by physically removing DRAM memory 280 for transport to another computer system in which one might attempt to extract useful information from the memory.
Any variety of compression algorithms may be used by the compression logic, assuming that the decompression logic provides the corresponding 6 reverse process. In general, however, to maintain data integrity, a lossless compression scheme should be employed.
By implementing an efficient compression logic, a memory size can be implemented which would be half the size of a standard implementation, and in a direct relationship, the system memory cost could be reduced by half. This cost savings can be significant since memory cost can easily be 25% to 40% of the base system cost, thereby allowing the preferred embodiment of the present invention to lower the base cost by 12.5% to 20%.
With reference now to Figures 3A-3B, flowcharts depict the steps within processes for increasing the storage capacity of a computer memory in accordance with a preferred embodiment of the present invention. Figure 3A shows a process for storing data into memory, whereas Figure 3B shows a process for retrieving data from memory.
Figure 3A shows a process that begins when the memory controller receives and buffers data to be stored (step 302). The compression logic in the memory controller then compresses the data (step 304), and the compressed data is written to the physical memory (step 306). The process is then complete with respect to storing data in memory in a manner which increases the overall capacity of the memory for holding information.
Figure 3B shows a process that begins when the memory controller retrieves compressed data from storage in the memory (step 310). The decompression logic in the memory controller decompresses the data (step 312), and the decompressed data is forwarded to the appropriate destination or read requester (step 314). The process is then complete with respect to retrieving data in memory in a manner which increases the overall capacity of the memory for holding information.
Those of ordinary skill in the art will appreciate that the processes of embodiments of the present invention are capable of being distributed in the form of a computer readable medium of instructions and a variety of forms and regardless of the particular type of signal bearing media actually used to carry out the distribution. Examples of computer readable media include recordable-type media such a floppy disc, a hard disk drive, a RAM, and CD-ROMs and transmission- type media such as digital and analog communications links.
7

Claims (5)

1. A method for storing data within a memory in a data processing system, the method comprising the steps of:
is generating data to be stored in RAM memory; compressing the data within a memory controller in the data processing system; and storing the compressed data in RAM memory.
2. A method as claimed in claim 1, the method further comprising the steps of:
retrieving compressed data from RAM memory; decompressing the data within a memory controller; and forwarding the decompressed data.
3. An apparatus for storing data within a memory in a data processing system, the apparatus comprising:
generating means for generating data to be stored in RAM memory; compressing means for compressing the data within a memory controller in the data processing system; and storing means for storing the compressed data in RAM memory.
4. An apparatus as claimed in claim 3, further comprising:
retrieving means for retrieving compressed data from RAM memory; decompressing means for decompressing the data within a memory controller; and 8 forwarding means for forwarding the decompressed data.
5. A computer program to, when loaded into a computer system and executed, perf orm the steps of a method as claimed in claim 1 or claim 2.
GB0023896A 1999-10-07 2000-09-29 Increasing usable system memory utilising data compression Withdrawn GB2360105A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US41433699A 1999-10-07 1999-10-07

Publications (2)

Publication Number Publication Date
GB0023896D0 GB0023896D0 (en) 2000-11-15
GB2360105A true GB2360105A (en) 2001-09-12

Family

ID=23641014

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0023896A Withdrawn GB2360105A (en) 1999-10-07 2000-09-29 Increasing usable system memory utilising data compression

Country Status (1)

Country Link
GB (1) GB2360105A (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0266135A2 (en) * 1986-10-27 1988-05-04 Perstor Systems, Inc. Apparatus and method for increasing the storage capacity of a disk storage unit
GB2305274A (en) * 1995-09-15 1997-04-02 Hewlett Packard Co Laser printer data compression/decompression apparatus
GB2317246A (en) * 1996-09-13 1998-03-18 Orange Personal Comm Serv Ltd Data compressing subscriber identity module

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0266135A2 (en) * 1986-10-27 1988-05-04 Perstor Systems, Inc. Apparatus and method for increasing the storage capacity of a disk storage unit
GB2305274A (en) * 1995-09-15 1997-04-02 Hewlett Packard Co Laser printer data compression/decompression apparatus
GB2317246A (en) * 1996-09-13 1998-03-18 Orange Personal Comm Serv Ltd Data compressing subscriber identity module

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Franaszek et al."Design and Analysis of Internal Organisations for Compressed RAM" IBM Research 1998 *

Also Published As

Publication number Publication date
GB0023896D0 (en) 2000-11-15

Similar Documents

Publication Publication Date Title
US6263413B1 (en) Memory integrated circuit and main memory and graphics memory systems applying the above
CN109388595B (en) High bandwidth memory system and logic die
US5974471A (en) Computer system having distributed compression and decompression logic for compressed data movement
JP5078979B2 (en) Data processing method and apparatus, processing system, computer processing system, computer network and storage medium
US5724070A (en) Common digital representation of still images for data transfer with both slow and fast data transfer rates
JP3260692B2 (en) Logic embedded DRAM LSI
CN101896941A (en) Unified compression/decompression graphics architecture
WO1999003040A1 (en) Virtual memory manager for multi-media engines
TW201737095A (en) Providing memory bandwidth compression using multiple last-level cache (LLC) lines in a central processing unit (CPU)-based system
US20110316862A1 (en) Multi-Processor
US8478074B2 (en) Providing multiple and native representations of an image
US20020184471A1 (en) Semiconductor integrated circuit and computer-readable recording medium
JP3055990B2 (en) Data compression device and data decompression device
CN102054051A (en) Recording contents of display screens
US8427496B1 (en) Method and system for implementing compression across a graphics bus interconnect
US6829691B2 (en) System for compressing/decompressing data
Badawy et al. Algorithm-based low-power VLSI architecture for 2D mesh video-object motion tracking
GB2360105A (en) Increasing usable system memory utilising data compression
JPH04205634A (en) Storage device control method
IL150149A (en) Specialized memory device
Park et al. A reconfigurable multilevel parallel texture cache memory with 75-GB/s parallel cache replacement bandwidth
JP7481167B2 (en) Compressed data decompression system, memory system, and data decompression method
GB2356542A (en) Reducing video monitor/cable bandwidth without losing video performance
TWI813455B (en) Address conversion system and address conversion method
US8412916B2 (en) Computing system having CPU and bridge operating using CPU frequency

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)