Memory controller based (DE)compression
First Claim
Patent Images
1. A system, comprising:
- a memory controller configured;
to receive an uncompressed data block to be stored in memory;
to compress in hardware the uncompressed data block into a compressed data block;
to compute a size of the compressed data block; and
to selectively manipulate a burst-mode protocol employed in communicating data with a random access memory (RAM);
and a RAM controller operably connected to the memory controller by a bus and to the RAM by a memory interface, the RAM controller being configured;
to receive the compressed data block and the size of the compressed data block from the memory controller;
to write the compressed data block to the RAM via the memory interface using the burst-mode protocol, where the number of bursts required to write the compressed data block to the RAM is controllable by the RAM controller and is based, at least in part, on the size of the compressed data block, and where the compressed data block is written as one or more sub-blocks of data that are aligned on a default burst mode RAM line boundary based, at least in part, on the size of the uncompressed data block; and
to store the size of the compressed data block so that it may be acquired upon a read access targeted at the compressed data block written to the RAM.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems, methodologies, media, and other embodiments associated with (de)compressing data at a time and in a location that facilitates increasing memory transfer bandwidth by selectively controlling a burst-mode protocol used to transfer data to and/or from a memory are described. One exemplary system embodiment includes a memory controller configured to (de)compress memory, to manipulate size data associated with compressed data, and to selectively manipulate a burst-mode protocol employed in transferring compressed data to and/or from random access memory.
60 Citations
31 Claims
-
1. A system, comprising:
-
a memory controller configured;
to receive an uncompressed data block to be stored in memory;
to compress in hardware the uncompressed data block into a compressed data block;
to compute a size of the compressed data block; and
to selectively manipulate a burst-mode protocol employed in communicating data with a random access memory (RAM);
and a RAM controller operably connected to the memory controller by a bus and to the RAM by a memory interface, the RAM controller being configured;
to receive the compressed data block and the size of the compressed data block from the memory controller;
to write the compressed data block to the RAM via the memory interface using the burst-mode protocol, where the number of bursts required to write the compressed data block to the RAM is controllable by the RAM controller and is based, at least in part, on the size of the compressed data block, and where the compressed data block is written as one or more sub-blocks of data that are aligned on a default burst mode RAM line boundary based, at least in part, on the size of the uncompressed data block; and
to store the size of the compressed data block so that it may be acquired upon a read access targeted at the compressed data block written to the RAM. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A system, comprising:
-
a memory controller configured;
to receive, from one or more of, a processor, an input/output logic, and a cache, an uncompressed data block to be stored in memory, the uncompressed data block being accompanied by a memory action request;
to compress, in hardware, the uncompressed data block into a compressed data block;
to compute a size of the compressed data block; and
to selectively manipulate a burst-mode protocol employed in communicating data with a random access memory (RAM);
and a RAM controller operably connected to the memory controller by a bus and to the RAM by a memory interface, the RAM controller being configured;
to receive the compressed data block and the size of the compressed data block from the memory controller, the compressed data block being provided by the memory controller to the RAM controller via the bus, where the number of bus cycles employed in providing the compressed data block to the RAM controller is calculated from and controlled, at least in part, by the size of the compressed data block;
to write the compressed data block to the RAM via the memory interface using the burst-mode protocol as one or more sub-blocks of data aligned on one or more default burst-mode RAM line boundaries based on the size of the uncompressed data block, where the number of bursts required to write the compressed data block to the RAM is controllable by the RAM controller and is based, at least in part, on the size of the compressed data block, the number of bursts required to write the compressed data block to the RAM using the burst-mode protocol being less than the number of bursts required to write the uncompressed data block to the RAM using the burst-mode protocol; and
to store the size of the compressed data block so that it may be acquired upon a read access targeted at the compressed data block written to the RAM.
-
-
22. A system, comprising:
-
a memory controller configured;
to receive, from one or more of, a processor, an input/output logic, and a cache, an uncompressed data block to be stored in memory, the uncompressed data block being accompanied by a memory action request;
to compress, in hardware, the uncompressed data block into a compressed data block;
to compute a size of the compressed data block;
to selectively manipulate a burst-mode protocol employed in communicating data with a random access memory (RAM); and
to request that a stored block of compressed data be retrieved from a RAM;
and a RAM controller operably connected to the memory controller by a bus and to the RAM by a memory interface, the RAM controller being configured;
to receive the compressed data block and the size of the compressed data block from the memory controller, the compressed data block being provided by the memory controller to the RAM controller via the bus, where the number of bus cycles employed in providing the compressed data block to the RAM controller is calculated from and controlled, at least in part, by the size of the compressed data block;
to write the compressed data block to the RAM via the memory interface as one or more sub-blocks of data aligned on one or more default burst-mode RAM line boundaries using the burst-mode protocol, the number of bursts required to write the compressed data block to the RAM being controllable by the RAM controller and being based, at least in part, on the size of the compressed data block, the number of bursts required to write the compressed data block to the RAM using the burst-mode protocol being less than the number of bursts required to write the uncompressed data block to the RAM using the burst-mode protocol;
to store the size of the compressed data block so that it may be acquired upon a read access targeted at the compressed data block written to the RAM;
to retrieve the stored block of compressed data from the RAM using the burst-mode protocol;
to determine a retrieval size of the stored block of compressed data; and
to customize the retrieval of the stored block of compressed data via the memory interface and to control the burst-mode protocol based, at least in part, on the retrieval size of the stored block of compressed data;
the system being configured to decompress the block of compressed data into a decompressed block of data in hardware associated with one or more of, the RAM controller, and the memory controller. - View Dependent Claims (23)
-
-
24. A method, comprising:
-
receiving in a memory controller an uncompressed block of data to be stored in a memory;
compressing the uncompressed block of data into a compressed block of data in hardware associated with the memory controller;
providing the compressed block of data to a RAM controller for storage in the memory; and
controlling the RAM controller to selectively manipulate a burst-mode protocol for transferring data to the memory. - View Dependent Claims (25, 26)
-
-
27. A system, comprising:
-
a memory controller logic, comprising;
a receive logic configured to receive a data line to be stored in a random access memory;
a compression logic operably connected to the receive logic, the compression logic being configured to compress, in hardware, the data line into a compressed data line; and
a write length logic operably connected to the compression logic, the write length logic being configured to determine the size of the compressed data line;
and a random access memory controller logic operably connected to the memory controller logic and the RAM, comprising;
a burst-mode control logic configured to control a burst-mode protocol employed by the random access memory controller to write the compressed data line on a default burst-mode boundary in the random access memory; and
a write logic operably connected to the burst-mode control logic, the write logic being configured to write the compressed data line to the random access memory. - View Dependent Claims (28, 29, 30)
-
-
31. A system, comprising:
-
means for compressing, in hardware, a block of uncompressed data to be stored in a random access memory;
means for decompressing, in hardware, a block of compressed data stored in the random access memory; and
means for controlling a bus and a bus protocol employed in reading compressed data from the random access memory and writing compressed data to the random access memory, where the controlling is based, at least in part, on an amount of compressed data to be transferred between a memory controller and the random access memory, the means for controlling being operably connected to the means for compressing and the means for decompressing.
-
Specification