A hybrid memory arrangement provides a two-level main memory hierarchy in a computer system. The hybrid memory arrangement comprises a near memory (NM), comprising one or more near-memory modules (251-252; 1151-1152) controllable by one or more near-memory controllers (241-242; 1141-1142). The hybrid memory arrangement further comprises a far memory (FM), comprising one or more far-memory modules (253- 254; 1153-1154) controllable by one or more far-memory controllers (251-252; 1151-1152). A hybrid memory controller (260) of the hybrid memory arrangement is configured for monitoring access requests to the far memory (FM) to identify bandwidth-demanding memory contents of the far memory (FM), compressing memory contents in the near memory (NM) to form a dynamic cache from memory space freed up by the compression, and accommodating at least some of the detected bandwidth-demanding memory contents of the far memory (FM) in the dynamic cache in the near memory (NM). Beneficially, metadata for said accommodating is stored in the far memory (FM), and the total memory capacity exposed by the hybrid memory arrangement to an operating system (270; 1170) running on the computer system (200; 1100) is the total of the capacities of the near memory (NM) and the far memory (FM).
G06F 12/0802 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
G06F 12/0804 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
G06F 12/0868 - Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
G06F 12/0897 - Caches characterised by their organisation or structure with two or more cache hierarchy levels
A compressed memory management method for a computer system having a computer subsystem, a memory subsystem and a memory compression arrangement. The compressed memory management method involves the following. Managing a compressed memory layout which divides the physical address space of the memory subsystem into a plurality of fragments of memory. Pre-allocating free fragments in the compressed memory layout. Receiving and handling fragment allocation requests from the memory compression arrangement by providing one or more of the pre-allocated free fragments for use by the memory compression arrangement to accommodate pieces of compressed memory. Receiving and handling fragment release requests pertaining to one or more used fragments by providing at least some of said one or more used fragments for deallocation in the compressed memory layout. The managing of the compressed memory and pre allocating of fragments are decoupled from the memory compression arrangement.
A device for managing compressible computer memory is described. The device has a memory region categorization arrangement configured to monitor memory requests to the computer memory and categorize memory regions based on spatio-temporal locality of the memory requests made to the memory regions. A memory region is categorized to exhibit low spatio-temporal locality when memory requests to said memory region are less frequent than a threshold. The device further has a selective computer memory management arrangement operatively connected with the memory region categorization arrangement and comprising a bypassed memory access mechanism and a compressed memory access mechanism. The bypassed memory access mechanism is configured to handle memory contents of memory regions categorized to exhibit low spatio-temporal locality in uncompressed form in the computer memory. The compressed memory access mechanism is configured to handle memory contents of memory regions not categorized to exhibit low spatio-temporal locality in compressed form in the computer memory.
09 - Scientific and electric apparatus and instruments
42 - Scientific, technological and industrial services, research and design
45 - Legal and security services; personal services for individuals.
Goods & Services
Downloadable and recorded programs for computers, namely, programs for microchip data compression, microchip data compaction and microchip data management; Computer memory devices in the nature of chipsets for compressing data, compacting data, and managing data; Computer memory hardware that includes functionality for compressing data, compacting data, and managing data; Electronic memory units in the nature of semiconductor data storage devices that include functionality for compressing data, compacting data, and managing data; Integrated circuit memory chips that include functionality for compressing data, compacting data, and managing data; Downloadable and recorded data compression software; Downloadable and recorded computer programs for data processing in the nature of compressing data; Data processors; Downloadable and recorded computer utility programs for data compression; Electronic memory readers for use with electronic memory chips; Computer memory devices for use with data processing apparatus and that include functionality for compressing data, compacting data, and managing data; Downloadable and recorded computer software for encryption; Electronic encryption units; Chipsets; Computer chips; none of the aforesaid being computer servers, cloud servers, file servers, network servers, communications servers, telecommunications networks, or electronic payment devices Computer programming and maintenance of computer programs relating to compressing data, compacting data, and managing data; Development of computer systems that include chipsets and related software for compressing data, compacting data, and managing data; Updating of memory bank software for improved data compression and compaction in computer systems; Digital compression of computer data; Digital compression of data for electronic storage; Software development relating to microchip data compression, microchip data compaction and microchip data management; Computer programming services for data processing; Engineering research relating to data processing; Maintenance of data processing software; Updating of software for data processing; Software engineering services for data processing; Design and development of data processing software; Encryption, decryption and authentication of electronic data; none of the aforesaid being data center services, data center facilities, cloud computing services, cloud computing managed services, data center managed services, data storage services, cloud storage services for electronic data and files or electronic payment devices and services Licensing of technology for compressing data and compacting data; none of the aforesaid relating to computer servers, cloud servers, file servers, network servers, communications servers, telecommunications networks, or electronic payment devices and services
A method for accessing compressed computer memory residing in physical computer memory is disclosed. In the method, compressed memory blocks are represented as sectors, wherein all sectors contain a fixed number of compressed memory blocks, have a fixed logical size in the form of the fixed number of compressed memory blocks, and have varying physical sizes in the form of the total size of data stored in the respective compressed memory blocks. The method involves providing sector-based translation metadata to keep track of the sectors within a compressed memory page, receiving a physical memory access request comprising an address in the physical computer memory, using the address in the physical memory access request to derive a memory block index, using the memory block index and the fixed logical size of the sectors to determine a sector id, using the sector-based translation metadata to locate a sector having the sector id in the compressed memory page, and using the address of the physical memory access request to locate the requested data within said sector.
G06F 12/1045 - Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
G06F 3/06 - Digital input from, or digital output to, record carriers
09 - Scientific and electric apparatus and instruments
42 - Scientific, technological and industrial services, research and design
45 - Legal and security services; personal services for individuals.
Goods & Services
Computer systems: downloadable and recorded programs for computer, namely, programs for microchip data compression, microchip data compaction and microchip data management; computer memory devices in nature of chipsets for compressing data, compacting data, and managing data; computer memory hardware that includes functionality for compressing data, compacting data, and managing data; electronic memory units in the nature of semiconductor data storage devices that include functionality for compressing data, compacting data, and managing data; integrated circuit memory chips that include functionality for compressing data, compacting data, and managing data; downloadable and recorded data compression software; downloadable and recorded computer programs for data processing in the nature of compressing data; data processors; downloadable and recorded computer utility programs for data compression; electronic memory readers for use with electronic memory chips; computer memory devices for use with data processing apparatus and that include functionality for compressing data, compacting data, and managing data; downloadable and recorded computer software for encryption; electronic encryption units; chipsets; computer chips; none of the aforesaid being computer servers, cloud servers, file servers, network servers, communications servers, telecommunications networks. Computer programming and maintenance of computer programs relating to compressing data, compacting data, and managing data; development of computer systems that include chipsets and related software for compressing data, compacting data, and managing data; updating of memory bank hardware and software for improved data compression and compaction in computer systems; digital compression of computer data; digital compression of data for electronic storage; software development relating to microchip data compression, microchip data compaction and microchip data management; computer programming services for data processing; engineering research relating to data processing; maintenance of data processing software; updating of software for data processing; software engineering services for data processing; design and development of data processing software; encryption, decryption and authentication of electronic data; none of the aforesaid being data center services, data center facilities, cloud computing services, cloud computing managed services, data center managed services, data storage services, cloud storage services for electronic data and files. Licensing of technology for or relating to compressing data and compacting data; none of the aforesaid relating to computer servers, cloud servers, file servers, network servers, communications servers, telecommunications networks.
7.
Systems, methods and devices for exploiting value similarity in computer memories
A data compression method is disclosed which involves obtaining a plurality of data blocks, each data block comprising a plurality of data values. The method performs base-delta encoding of the obtained plurality of data blocks, wherein a delta value means a difference between a data value and a base value. This involves determining, among the data values of the plurality of data blocks, a set of global base values common to said plurality of data blocks. The set of global base values is selected to minimize delta values for the data values of the plurality of data blocks with respect to the global base values in said set of global base values. The method further involve encoding individual data values of the plurality of data blocks by selecting, in the set of global base values, for each individual data value a global base value that is numerically closest to the individual data value and thus results in a smallest delta value, and then generating metadata for the encoded individual data value to represent the selected global base value and the resulting delta value.
G06F 12/0802 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
H03M 7/42 - Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
G06F 3/06 - Digital input from, or digital output to, record carriers
09 - Scientific and electric apparatus and instruments
42 - Scientific, technological and industrial services, research and design
Goods & Services
Computers; computer systems; programs for computers;
computer memory devices; computer memory hardware; data
compression software; computer utility programs for data
compression; data processors; computer programmes for data
processing; computer software for encryption; electronic
encryption units; chipsets; computer chips. Computer programming; computer programming and maintenance
of computer programs; development of computer systems;
computer system design; updating of computer programs;
computer software design; digital compression of computer
data; compression of data for electronic storage;
encryption, decryption and authentication of information,
messages and data.
9.
IDENTIFICATION OF RANDOM-ACCESS PAGES AND MITIGATION OF THEIR IMPACT ON COMPRESSIBLE COMPUTER MEMORIES
A device (1900) for managing compressible computer memory (1990) is presented. The device (1900) has a memory region categorization arrangement (1901) configured to monitor memory requests (1705) to the computer memory (1790, 1990) and categorize memory regions based on spatio-temporal locality of the memory requests made to the memory regions. A memory region is categorized to exhibit low spatio-temporal locality when memory requests to said memory region are less frequent than a threshold. The device (1900) further has a selective computer memory management arrangement (1902) operatively connected with the memory region categorization arrangement (1901) and comprising a bypassed memory access mechanism (1903) and a compressed memory access mechanism (1904). The bypassed memory access mechanism (1903) is configured to handle (1906) memory contents of memory regions categorized to exhibit low spatio-temporal locality in uncompressed form in the computer memory (1990). The compressed memory access mechanism (1904) is configured to handle (1907) memory contents of memory regions not categorized to exhibit low spatio-temporal locality in compressed form in the computer memory (1990).
09 - Scientific and electric apparatus and instruments
42 - Scientific, technological and industrial services, research and design
Goods & Services
(1) Computers; computer systems comprised of computer memory hardware; downloadable computer operating system software and associated software drivers; computer memory hardware; computer memory hardware; data compression software; computer utility programs for data compression; computer hardware for data processing; downloadable data compression software; downloadable computer software for encryption of digital files; electronic encryption units; computer chipsets for use in transmitting data to and from a central processing unit; computer chips (1) Computer programming; computer programming and maintenance of computer programs; development of computer systems; computer system design; updating of computer programs; computer software design; digital compression of computer data; compression of data for electronic storage; encryption, decryption and authentication of electronic data via software as a service software
09 - Scientific and electric apparatus and instruments
42 - Scientific, technological and industrial services, research and design
Goods & Services
Computers; computer systems comprised of computer memory hardware and data processors; downloadable programs for computers, namely system programs for operating systems for performing data compression, data compaction, and data management; downloadable programs for computers, namely driver software for memory devices ; computer memory devices; computer memory hardware, downloadable data compression software; downloadable computer utility programs for data compression; data processors; downloadable computer programs for data processing; downloadable computer software for encryption units; chipsets; computer chips Computer programming; computer programming and maintenance of computer programs; development of computer systems; computer system design; updating of computer programs; computer software design; digital compression of computer data; compression of data for electronic storage; encryption, decryption and authentication of information, messages and data
12.
Systems, methods and devices for eliminating duplicates and value redundancy in computer memories
A computer memory compression method involves analyzing computer memory content with respect to occurrence of duplicate memory objects as well as value redundancy of data values in unique memory objects. The computer memory content is encoded by eliminating the duplicate memory objects and compressing each remaining unique memory object by exploiting data value locality of the data values thereof. Metadata is provided to represent the memory objects of the encoded computer memory content. The metadata reflects eliminated duplicate memory objects, remaining unique memory objects as well as a type of compression used for compressing each remaining unique memory object. A memory object in the encoded computer memory content is located using the metadata.
G06F 16/215 - Improving data qualityData cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
G06F 12/0804 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
09 - Scientific and electric apparatus and instruments
42 - Scientific, technological and industrial services, research and design
Goods & Services
Computers; Computer systems; Programs for computers; Computer memory devices; Computer memory hardware; Data compression software; Computer utility programs for data compression; Data processors; Computer programmes for data processing; Computer software for encryption; Electronic encryption units; Chipsets; Computer chips. Computer programming; Computer programming and maintenance of computer programs; Development of computer systems; Computer system design; Updating of computer programs; Computer software design; Digital compression of computer data; Compression of data for electronic storage; Encryption, decryption and authentication of information, messages and data.
09 - Scientific and electric apparatus and instruments
42 - Scientific, technological and industrial services, research and design
Goods & Services
Computer systems; programs for computers; computer memory
devices; computer memory hardware; electronic memory units;
integrated circuit memory chips; data compression software;
computer software for application and database integration;
computer programmes for data processing; data processors;
computer utility programs for data compression; readers
[data processing equipment]; memory devices for use with
data processing apparatus; computer software for encryption;
electronic encryption units; chipsets; computer chips. Computer programming and maintenance of computer programs;
development of computer systems; updating of memory banks of
computer systems; digital compression of computer data;
compression of data for electronic storage; software
development; computer programming services for data
processing; research relating to data processing;
maintenance of data processing software; updating of
software for data processing; software engineering services
for data processing; design and development of data
processing software; encryption, decryption and
authentication of information, messages and data.
09 - Scientific and electric apparatus and instruments
42 - Scientific, technological and industrial services, research and design
Goods & Services
(1) Computer systems, comprised of computer memory hardware; downloadable computer operating system software and associated software drivers for microchip data compression, microchip data compaction and microchip data management; computer memory hardware; computer memory hardware; computer hardware for computer memory; blank flash memory cards; computer memory boards; computer memory expansion modules; secure digital (SD) memory cards; static random-access memory [SRAM] modules; integrated circuit memory chips; data compression software; computer software for application and database integration; downloadable data compression software; computer hardware for data processing; computer utility programs for data compression; memory card readers; secure digital [SD] card readers; USB card readers; computer memory hardware for use with data processing equipment and that include functionality for compressing data, compacting data and managing data; downloadable computer software for encryption of digital files; electronic encryption units; computer chipsets for use in transmitting data to and from a central processing unit; computer chips; none of the aforesaid being computer servers, cloud servers, file servers, network servers, communications servers, telecommunications networks. (1) Computer programming and maintenance of computer programs; development of computer systems; updating of memory banks of computer systems; digital compression of computer data; compression of data for electronic storage; software development relating to microchip data compression, microchip data compaction and microchip data management; computer programming services for data processing; engineering research in the field of computer data processing; maintenance of data processing software; updating of software for data processing; software engineering services for data processing; design and development of data processing software; encryption, decryption and authentication of electronic data via software as a service software; none of the aforesaid being data centre services, data center facilities, cloud computing services, data storage services, or cloud storage services for electronic data and files.
09 - Scientific and electric apparatus and instruments
42 - Scientific, technological and industrial services, research and design
Goods & Services
Downloadable and recorded programs for computers, namely, programs for microchip data compression, microchip data compaction and microchip data management; Computer memory devices in nature of chipsets for compressing data, compacting data, and managing data; Computer memory hardware that includes functionality for compressing data, compacting data, and managing data; Electronic memory units in the nature of semiconductor data storage devices that include functionality for compressing data, compacting data, and managing data; Integrated circuit memory chips that include functionality for compressing data, compacting data, and managing data; Downloadable and recorded data compression software; Downloadable and recorded computer programs for data processing in the nature of compressing data; Data processors; Downloadable and recorded computer utility programs for data compression; Electronic memory readers for use with electronic memory chips; Computer memory devices for use with data processing apparatus and that include functionality for compressing data, compacting data, and managing data; Downloadable and recorded computer software for encryption; Electronic encryption units; Chipsets; Computer chips; none of the aforesaid being computer servers, cloud servers, file servers, network servers, communications servers, telecommunications networks, or electronic payment devices Computer programming and maintenance of computer programs relating to compressing data, compacting data, and managing data; Development of computer systems that include chipsets and related software for compressing data, compacting data, and managing data; Updating of memory bank software for improved data compression and compaction in computer systems; Digital compression of computer data; Digital compression of data for electronic storage; Software development relating to microchip data compression, microchip data compaction and microchip data management; Computer programming services for data processing; Engineering research relating to data processing; Maintenance of data processing software; Updating of software for data processing; Software engineering services for data processing; Design and development of data processing software; Encryption, decryption and authentication of electronic data; none of the aforesaid being for data center services, data center facilities, cloud computing services, data storage services, cloud storage services for electronic data and files, or electronic payment devices and services
17.
SYSTEMS, METHODS AND DEVICES FOR EXPLOITING VALUE SIMILARITY IN COMPUTER MEMORIES
A data compression method (2200) is disclosed which involves obtaining (2210) a plurality of data blocks, each data block comprising a plurality of data values. The method performs base-delta encoding (2220) of the obtained plurality of data blocks, wherein a delta value means a difference between a data value and a base value. This involves determining (2230), among the data values of the plurality of data blocks, a set of global base values common to said plurality of data blocks. The set of global base values is selected to minimize delta values for the data values of the plurality of data blocks with respect to the global base values in said set of global base values. The method further involve encoding (2240) individual data values of the plurality of data blocks by selecting (2250), in the set of global base values, for each individual data value a global base value that is numerically closest to the individual data value and thus results in a smallest delta value, and then generating (2260) metadata for the encoded individual data value to represent the selected global base value and the resulting delta value.
H03M 7/30 - CompressionExpansionSuppression of unnecessary data, e.g. redundancy reduction
G06F 3/06 - Digital input from, or digital output to, record carriers
G06F 12/08 - Addressing or allocationRelocation in hierarchically structured memory systems, e.g. virtual memory systems
G06F 16/17 - Details of further file system functions
H03M 7/42 - Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
09 - Scientific and electric apparatus and instruments
42 - Scientific, technological and industrial services, research and design
Goods & Services
(1) Computers; computer systems comprised of computer memory hardware; downloadable computer operating system software and associated software drivers; computer memory hardware; data compression software; computer utility programs for data compression; computer hardware for data processing; downloadable data compression software; downloadable computer software for encryption of digital files; electronic encryption units; computer chipsets for use in transmitting data to and from a central processing unit; computer chips. (1) Computer programming; computer programming and maintenance of computer programs; development of computer systems; computer system design; updating of computer programs; computer software design; digital compression of computer data; compression of data for electronic storage; encryption, decryption and authentication of electronic data via software as a service software
09 - Scientific and electric apparatus and instruments
42 - Scientific, technological and industrial services, research and design
Goods & Services
Computer systems; Programs for computers, namely, programs for microchip data compression, microchip data compaction and microchip data management; Computer memory devices; Computer memory hardware; Electronic memory units; Electronic memory integrated circuit chips; Data compression software; Computer software for application and database integration; Computer programs for data processing; Data processors; Computer utility programs for data compression; Readers [data processing equipment]; Memory devices for use with data processing apparatus; Computer software for encryption; Electronic encryption units; Chipsets; Computer chips; none of the aforesaid being computer servers, cloud servers, file servers, network servers, communications servers, telecommunications networks. Computer programming and maintenance of computer programs; Development of computer systems; Updating of memory banks of computer systems; Digital compression of computer data; Compression of data for electronic storage; Software development relating to microchip data compression, microchip data compaction and microchip data management; Computer programming services for data processing; Research relating to data processing; Maintenance of data processing software; Updating of software for data processing; Software engineering services for data processing; Design and development of data processing software; Encryption, decryption and authentication of information, messages and data; none of the aforesaid being data centre services, data center facilities, cloud computing services, data storage services, or cloud storage services for electronic data and files.
20.
Methods, devices and systems for efficient compression and decompression for higher throughput
A decompression system has a plurality of decompression devices in an array or chain layout for decompressing respective compressed data values of a compressed data block. A first decompression device is connected to a next decompression device, and a last decompression device is connected to a preceding decompression device. The first decompression device decompresses a compressed data value and reduces the compressed data block by extracting a codeword of the compressed data value and removing the compressed data value from the compressed data block, retrieving a decompressed data value out of the extracted codeword, and passing the reduced compressed data block to the next decompression device. The last decompression device receives a reduced compressed data block from the preceding decompression device and decompresses another compressed data value by extracting a codeword of the other compressed data value, and retrieving another decompressed data value out of the extracted codeword.
Elected for publication; FIG. 8.
H03M 7/00 - Conversion of a code where information is represented by a given sequence or number of digits to a code where the same information is represented by a different sequence or number of digits
H03M 7/40 - Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
H03M 7/30 - CompressionExpansionSuppression of unnecessary data, e.g. redundancy reduction
Disclosed is a compressed memory management method for a computer system having one or more processors (P1-PN), compressible main memory, secondary memory and an operating system. The compressible main memory has a compressed memory space comprising an active part directly accessible to said one or more processors (P1-PN), as well as an inactive part not directly accessible to said one or more processors (P1-PN) in the form of memory freed up by memory compression. The compressed memory management method comprises maintaining, in an auxiliary memory, a layout of the compressed memory space of the compressible main memory, the layout including size and location of individual memory pages as well as free memory regions in said compressed memory space; triggering the compression of a memory page in the compressible main memory; intercepting a page-in request from said operating system to said secondary memory, using the layout of the compressed memory space maintained by the auxiliary memory to locate, when available, in said auxiliary memory a page requested by the page-in request, and making the located requested page available in the active part of the compressed memory space; and intercepting a page-out request from said operating system to said secondary memory, using the layout of the compressed memory space maintained by the auxiliary memory to obtain a free region for a page requested by the page-out request, and accommodating the requested page in the obtained free region of the auxiliary memory.
A method for accessing compressed computer memory residing in physical computer memory is disclosed. In the method, compressed memory blocks are represented as sectors, wherein all sectors contain a fixed number of compressed memory blocks, have a fixed logical size in the form of the fixed number of compressed memory blocks, and have varying physical sizes in the form of the total size of data stored in the respective compressed memory blocks. The method involves providing sector-based translation metadata to keep track of the sectors within a compressed memory page, receiving a physical memory access request comprising an address in the physical computer memory, using the address in the physical memory access request to derive a memory block index, using the memory block index and the fixed logical size of the sectors to determine a sector id, using the sector-based translation metadata to locate a sector having the sector id in the compressed memory page, and using the address of the physical memory access request to locate the requested data within said sector.
G06F 12/1045 - Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
G06F 3/06 - Digital input from, or digital output to, record carriers
Methods, devices and systems for data compression and decompression are disclosed. A collection of data is obtained. The collection of data is sampled to establish, for a plurality of different symbol sizes, relative frequencies of symbols of the respective sizes in the collection of data. A code is generated to contain variable-length codewords by entropy encoding sampled symbols in the collection of data based on a metric which reflects the relative frequencies of the sampled symbols as well as their sizes. Symbols in the collection of data are compressed into compressed representations using the generated code, wherein the compressed representation of a symbol comprises a codeword which represents the symbol as well as metadata for decompressing the compressed representation.
A computer memory compression method involves analyzing (1210) computer memory content with respect to occurrence of duplicate memory objects as well as value redundancy of data values in unique memory objects. The computer memory content is encoded (1220) by eliminating the duplicate memory objects and compressing each remaining unique memory object by exploiting data value locality of the data values thereof. Metadata (500) is provided (1230) to represent the memory objects of the encoded computer memory content. The metadata reflects eliminated duplicate memory objects, remaining unique memory objects as well as a type of compression used for compressing each remaining unique memory object. A memory object in the encoded computer memory content is located (1240) using the metadata (500).
A decompression system (800; 1100; 1300) for decompressing a compressed data block that comprises a plurality of compressed data values is presented. The decompression system has a plurality of decompression devices (700; 1200A-B) in an array or chain layout (820a-820m-1; 120a-1120m-1; 1320a-1320m-1) for decompressing respective compressed data values of the compressed data block. A first decompression device (820a; 1120a; 1320a) is connected to a next decompression device (820b; 1120b; 1320b), and a last decompression device (820m-1; 120m-1; 1320m-1) is connected to a preceding decompression device (820m-2; 1120m-2; 320m-2). The first decompression device (820a; 1120a; 1320a) decompresses a compressed data value of the compressed data block and reduces the compressed data block by extracting a codeword of the compressed data value and removing the compressed data value from the compressed data block, retrieving a decompressed data value out of the extracted codeword, and passing the reduced compressed data block to the next decompression device (820b; 1120b; 320b). The last decompression device (820m-1; 1120m-1; 1320m-1) receives a reduced compressed data block as reduced by the preceding decompression device (820m-2; 1120m-2; 320m-2) and decompresses another compressed data value of the compressed data block by extracting a codeword of said another compressed data value, and retrieving another decompressed data value out of the extracted codeword.
1N1N1NN) in the form of memory freed up by memory compression. The compressed memory management method comprises maintaining (4410), in an auxiliary memory (440), a layout of the compressed memory space of the compressible main memory (414), the layout including size and location of individual memory pages as well as free memory regions in said compressed memory space; triggering (4420) the compression of a memory page in the compressible main memory (414); intercepting (4430) a page-in request from said operating system (420) to said secondary memory (450), using (4432) the layout of the compressed memory space maintained by the auxiliary memory (440) to locate, when available, in said auxiliary memory (430) a page requested by the page-in request, and making (4434) the located requested page available in the active part of the compressed memory space; and intercepting (4440) a page-out request from said operating system (420) to said secondary memory (450), using (4442) the layout of the compressed memory space maintained by the auxiliary memory (440) to obtain a free region for a page requested by the page-out request, and accommodating (4444) the requested page in the obtained free region of the auxiliary memory (440).
A method (4500) for accessing compressed computer memory residing in physical computer memory is disclosed. In the method, compressed memory blocks are represented (4510) as sectors, wherein all sectors contain a fixed number of compressed memory blocks such as cache lines, have a fixed logical size in the form of the fixed number of compressed memory blocks, and have varying physical sizes in the form of the total size of data stored in the respective compressed memory blocks. The method involves providing (4520) sector- based translation metadata to keep track of the sectors within a compressed memory page, receiving (4530) a physical memory access request comprising an address in the physical computer memory, using (4540) the address in the physical memory access request to derive a memory block index, using (4550) the memory block index and the fixed logical size of the sectors to determine a sector id, using (4560) the sector-based translation metadata to locate a sector having the sector id in the compressed memory page, and using (4570) the address of the physical memory access request to locate the requested data within said sector.
Methods, devices and systems enhance compression and decompression of data blocks of data values by selecting the best suited compression method and device among two or a plurality of compression methods and devices, which are combined together and which said compression methods and devices compress effectively data values of particular data types; said best suited compression method and device is selected using as main selection criterion the dominating data type in a data block by predicting the data types within said data block.
H03M 7/38 - Conversion to or from differential modulation with several bits, i.e. the difference between successive samples being coded by more than one bit adaptive
H03M 7/30 - CompressionExpansionSuppression of unnecessary data, e.g. redundancy reduction
G06F 3/06 - Digital input from, or digital output to, record carriers
H03M 7/48 - Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind alternating with other codes during the code conversion process, e.g. run-length coding being performed only as long as sufficiently long runs of digits of the same kind are present
H03M 7/00 - Conversion of a code where information is represented by a given sequence or number of digits to a code where the same information is represented by a different sequence or number of digits
H03M 5/00 - Conversion of the form of the representation of individual digits
H03M 7/40 - Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
H03M 7/42 - Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
09 - Scientific and electric apparatus and instruments
42 - Scientific, technological and industrial services, research and design
Goods & Services
Computers; computer systems; programs for computers;
computer memory devices; computer memory hardware; data
compression software; computer utility programs for data
compression; data processors; computer programmes for data
processing; computer software for encryption; electronic
encryption units; chipsets; computer chips. Computer programming; computer programming and maintenance
of computer programs; development of computer systems;
computer system design; updating of computer programs;
computer software design; digital compression of computer
data; compression of data for electronic storage;
encryption, decryption and authentication of information,
messages and data.
09 - Scientific and electric apparatus and instruments
42 - Scientific, technological and industrial services, research and design
Goods & Services
Computers; computer systems comprised of computer memory hardware; downloadable programs for computers for operating systems and their associated software drivers; computer memory devices; computer memory hardware, downloadable data compression software; downloadable computer utility programs for data compression; data processors; downloadable computer programmes for data processing; downloadable computer software for encryption units; chipsets; computer chips Computer programming; computer programming and maintenance of computer programs; development of computer systems comprised of central processor and working memory; computer system design; updating of computer programs for third parties; computer software design; digital compression of computer data; digital compression of data for electronic storage; encryption, decryption and authentication of information, messages and data
09 - Scientific and electric apparatus and instruments
42 - Scientific, technological and industrial services, research and design
Goods & Services
Computers; Computer systems; Programs for computers; Computer memory devices; Computer memory hardware; Data compression software; Computer utility programs for data compression; Data processors; Computer programmes for data processing; Computer software for encryption; Electronic encryption units; Chipsets; Computer chips. Computer programming; Computer programming and maintenance of computer programs; Development of computer systems; Computer system design; Updating of computer programs; Computer software design; Digital compression of computer data; Compression of data for electronic storage; Encryption, decryption and authentication of information, messages and data.
32.
Methods, devices and systems for compressing and decompressing data
Methods, devices and systems for a compressor and a decompressor for encoding and decoding data in the cache/memory/data transferring subsystem in a computer system or in a communication network are described herein. Example variable-length compressors and decompressors are able to: compress more densely when specific values occur in specific positions in a data block; to improve compression and decompression latency when specific values that appear frequently occur in a data block; to also improve decompression latency by recording the lengths of variable-length encoded values of a compressed data block. The compressor and decompressor are able to support compression and decompression of common compression scenarios that are used in combination with variable-length compression to improve compressibility in the cache/memory/data transferring subsystem in a computer system or in a communication network.
Methods, devices and systems for a compressor and a decompressor for encoding and decoding data in the cache/memory/data transferring subsystem in a computer system or in a communication network are described herein. An example variable-length compressor is able to compress blocks of data values and the compressed blocks may include mixes of compressed and uncompressed values, wherein metadata in the form of a unique special-meaning codeword (UUIC) indicates uncompressed values. An example variable-length decompressor is able to decompress the compressed data blocks. The compressor and decompressor are able to support compression and decompression of common compression scenarios that are used in combination with variable-length compression to improve compressibility in the cache/memory/data transferring subsystem in a computer system or in a communication network.
Methods, devices and systems enhance compression and decompression of data values when they comprise a plurality of semantically meaningful data fields. Compression is sometimes not applied to each data value as a whole, but instead to at least one of the semantically meaningful data fields of each data value, and in isolation from the other ones. Data fields can be organized that share the same semantic meaning together to accelerate compression and decompression as multiple compressors and decompressors can be used in parallel. A system can be used where methods and devices are tailored to perform compression and decompression of the semantically meaningful data fields of floating-point numbers after first partitioning further at least one of said data fields into two or a plurality of sub-fields to increase the degree of value locality and improve compressibility of floating-point values.
Methods, devices and systems enhance compression and decompression of data blocks of data values by selecting the best suited compression method and device among two or a plurality of compression methods and devices, which are combined together and which said compression methods and devices compress effectively data values of particular data types; said best suited compression method and device is selected using as main selection criterion the dominating data type in a data block by predicting the data types within said data block.
H03M 7/34 - Conversion to or from delta modulation, i.e. one-bit differential modulation adaptive
H03M 7/30 - CompressionExpansionSuppression of unnecessary data, e.g. redundancy reduction
H03M 7/48 - Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind alternating with other codes during the code conversion process, e.g. run-length coding being performed only as long as sufficiently long runs of digits of the same kind are present
G06F 3/06 - Digital input from, or digital output to, record carriers
H03M 7/00 - Conversion of a code where information is represented by a given sequence or number of digits to a code where the same information is represented by a different sequence or number of digits
H03M 5/00 - Conversion of the form of the representation of individual digits
H03M 7/40 - Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
H03M 7/42 - Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
36.
VARIABLE-SIZED SYMBOL ENTROPY-BASED DATA COMPRESSION
Methods, devices and systems for data compression and decompression are disclosed. A collection of data is obtained (1510). The collection of data is sampled (1520) to establish, for a plurality of different symbol sizes (S1-Sn), relative frequencies (1615) of symbols (1606) of the respective sizes in the collection of data. A code (1625) is generated to contain variable-length codewords by entropy encoding sampled symbols in the collection of data based on a metric (1616) which reflects the relative frequencies (1615) of the sampled symbols as well as their sizes. Symbols in the collection of data are compressed (1540) into compressed representations using the generated code, wherein the compressed representation (1635) of a symbol (SY) comprises a codeword (CW) which represents the symbol as well as metadata (MD) for decompressing the compressed representation.
H03M 7/30 - CompressionExpansionSuppression of unnecessary data, e.g. redundancy reduction
H03M 7/00 - Conversion of a code where information is represented by a given sequence or number of digits to a code where the same information is represented by a different sequence or number of digits
H03M 7/40 - Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
37.
METHODS, DEVICES AND SYSTEMS FOR COMPRESSING AND DECOMPRESSING DATA
Methods, devices and systems extend a compressor and a decompressor for encoding and decoding data in the cache/memory/data transferring subsystem in a computer system or in a communication network. An example variable-length compressor is extended to be able to compress blocks of data values and said compressed blocks comprise mixes of compressed and uncompressed values, wherein metadata in the form of a unique special-meaning codeword (UUIC) indicates uncompressed values. An example variable-length decompressor is extended to be able to decompress said compressed data blocks that comprise mixes of compressed and uncompressed data values. Said compressor and decompressor are extended to support compression and decompression of common compression scenarios that are used in combination with variable-length compression to improve compressibility in the cache/memory/data transferring subsystem in a computer system or in a communication network.
H03M 7/48 - Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind alternating with other codes during the code conversion process, e.g. run-length coding being performed only as long as sufficiently long runs of digits of the same kind are present
H03M 7/30 - CompressionExpansionSuppression of unnecessary data, e.g. redundancy reduction
H04N 19/13 - Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
H04N 19/91 - Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
38.
METHODS, DEVICES AND SYSTEMS FOR COMPRESSING AND DECOMPRESSING DATA
Methods, devices and systems extend a compressor and a decompressor for encoding and decoding data in the cache/memory/data transferring subsystem in a computer system or in a communication network. Example variable-length compressors and decompressors are extended with new features to: compress more densely when specific values occur in specific positions in a data block; to improve compression and decompression latency when specific values that are appear frequent occur in a data block; to also improve decompression latency by recording the lengths of variable-length encoded values of a compressed data block. Said compressor and decompressor are extended to support compression and decompression of common compression scenarios that are used in combination with variable-length compression to improve compressibility in the cache/memory/data transferring subsystem in a computer system or in a communication network.
09 - Scientific and electric apparatus and instruments
42 - Scientific, technological and industrial services, research and design
Goods & Services
Computers; computer systems; computer networks; programs for
computers; computer memory devices; interactive computer
software; computer memory hardware; data compression
software; computer utility programs for data compression;
mobile telephones; smartphones; communications processors;
data processors; computer programmes for data processing. Computer programming; computer programming and maintenance
of computer programs; development of computer systems;
computer system design; development of computer programs;
updating of computer programs; computer software design;
digital compression of computer data; compression of data
for electronic storage; computer network services.
09 - Scientific and electric apparatus and instruments
42 - Scientific, technological and industrial services, research and design
Goods & Services
Computers; Computer systems; Computer networks; Programs for computers; Computer memory devices; Interactive computer software; Computer memory hardware; Data compression software; Computer utility programs for data compression; Mobile telephones; Smartphones; Communications processors; Data processors; Computer programmes for data processing. Computer programming; Computer programming and maintenance of computer programs; Development of computer systems; Computer system design; Development of computer programs; Updating of computer programs; Computer software design; Digital compression of computer data; Compression of data for electronic storage; Computer network services.
41.
METHODS, DEVICES AND SYSTEMS FOR SEMANTIC-VALUE DATA COMPRESSION AND DECOMPRESSION
Methods, devices and systems enhance compression and decompression of data values when they comprise a plurality of semantically meaningful data fields. According to a first inventive concept of the present invention disclosure, compression is not applied to each data value as a whole, but instead to at least one of the semantically meaningful data fields of each data value, and in isolation from the other ones. A second inventive concept organizes the data fields that share the same semantic meaning together to accelerate compression and decompression as multiple compressors and decompressors can be used in parallel. A third inventive concept is a system where methods and devices are tailored to perform compression and decompression of the semantically meaningful data fields of floating-point numbers after first partitioning further at least one of said data fields into two or a plurality of sub-fields to increase the degree of value locality and improve compressibility of floating-point values.
Methods, devices and systems enhance compression and decompression of data blocks of data values by selecting the best suited compression method and device among two or a plurality of compression methods and devices, which are combined together and which said compression methods and devices compress effectively data values of particular data types; said best suited compression method and device is selected using as main selection criterion the dominating data type in a data block by predicting the data types within said data block.
H03M 7/30 - CompressionExpansionSuppression of unnecessary data, e.g. redundancy reduction
G06F 3/06 - Digital input from, or digital output to, record carriers
H03M 7/48 - Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind alternating with other codes during the code conversion process, e.g. run-length coding being performed only as long as sufficiently long runs of digits of the same kind are present
43.
Cache system and a method of operating a cache memory
In one embodiment, a computer cache is extended with structures that can (1) establish the frequency by which distinct values occur in the cache and use that information to (2) compress values in caches into dense codes using a plurality of statistical-based compression techniques and (3) decompress densely coded values to realize caches that can store information densely that can be retrieved with low overhead.
Methods, devices and systems enhance compression and decompression of data blocks of data values by selecting the best suited compression method and device among two or a plurality of compression methods and devices, which are combined together and which said compression methods and devices compress effectively data values of particular data types; said best suited compression method and device is selected using as main selection criterion the dominating data type in a data block by predicting the data types within said data block.
G06F 3/06 - Digital input from, or digital output to, record carriers
H03M 7/30 - CompressionExpansionSuppression of unnecessary data, e.g. redundancy reduction
H03M 7/48 - Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind alternating with other codes during the code conversion process, e.g. run-length coding being performed only as long as sufficiently long runs of digits of the same kind are present
45.
METHODS, DEVICES AND SYSTEMS FOR SEMANTIC-VALUE DATA COMPRESSION AND DECOMPRESSION
Methods, devices and systems enhance compression and decompression of data values when they comprise a plurality of semantically meaningful data fields. According to a first inventive concept of the present invention disclosure, compression is not applied to each data value as a whole, but instead to at least one of the semantically meaningful data fields of each data value, and in isolation from the other ones. A second inventive concept organizes the data fields that share the same semantic meaning together to accelerate compression and decompression as multiple compressors and decompressors can be used in parallel. A third inventive concept is a system where methods and devices are tailored to perform compression and decompression of the semantically meaningful data fields of floating-point numbers after first partitioning further at least one of said data fields into two or a plurality of sub-fields to increase the degree of value locality and improve compressibility of floating-point values.
A data compression method (2200) is disclosed which involves obtaining (2210) a plurality of data blocks, each data block comprising a plurality of data values. The method performs base-delta encoding (2220) of the obtained plurality of data blocks, wherein a delta value means a difference between a data value and a base value. This involves determining (2230), among the data values of the plurality of data blocks, a set of global base values common to said plurality of data blocks. The set of global base values is selected to minimize delta values for the data values of the plurality of data blocks with respect to the global base values in said set of global base values. The method further involve encoding (2240) individual data values of the plurality of data blocks by selecting (2250), in the set of global base values, for each individual data value a global base value that is numerically closest to the individual data value and thus results in a smallest delta value, and then generating (2260) metadata for the encoded individual data value to represent the selected global base value and the resulting delta value.
G06F 3/06 - Digital input from, or digital output to, record carriers
G06F 12/08 - Addressing or allocationRelocation in hierarchically structured memory systems, e.g. virtual memory systems
G06F 16/17 - Details of further file system functions
H03M 7/30 - CompressionExpansionSuppression of unnecessary data, e.g. redundancy reduction
H03M 7/42 - Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
47.
SYSTEMS, METHODS AND DEVICES FOR ELIMINATING DUPLICATES AND VALUE REDUNDANCY IN COMPUTER MEMORIES
A computer memory compression method involves analyzing (1210) computer memory content with respect to occurrence of duplicate memory objects as well as value redundancy of data values in unique memory objects. The computer memory content is encoded (1220) by eliminating the duplicate memory objects and compressing each remaining unique memory object by exploiting data value locality of the data values thereof. Metadata (500) is provided (1230) to represent the memory objects of the encoded computer memory content. The metadata reflects eliminated duplicate memory objects, remaining unique memory objects as well as a type of compression used for compressing each remaining unique memory object. A memory object in the encoded computer memory content is located (1240) using the metadata (500).