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 - Adressage d’un niveau de mémoire dans lequel l’accès aux données ou aux blocs de données désirés nécessite des moyens d’adressage associatif, p. ex. mémoires cache
G06F 12/0804 - Adressage d’un niveau de mémoire dans lequel l’accès aux données ou aux blocs de données désirés nécessite des moyens d’adressage associatif, p. ex. mémoires cache avec mise à jour de la mémoire principale
G06F 12/0868 - Transfert de données entre une mémoire cache et d'autres sous-systèmes, p. ex. des dispositifs de stockage ou des systèmes hôtes
G06F 12/0897 - Mémoires cache caractérisées par leur organisation ou leur structure avec plusieurs niveaux de hiérarchie de mémoire cache
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 - Appareils et instruments scientifiques et électriques
42 - Services scientifiques, technologiques et industriels, recherche et conception
45 - Services juridiques; services de sécurité; services personnels pour individus
Produits et 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 - Traduction d'adresses utilisant des moyens de traduction d’adresse associatifs ou pseudo-associatifs, p. ex. un répertoire de pages actives [TLB] associée à une mémoire cache de données
G06F 3/06 - Entrée numérique à partir de, ou sortie numérique vers des supports d'enregistrement
G06F 12/06 - Adressage d'un bloc physique de transfert, p. ex. par adresse de base, adressage de modules, extension de l'espace d'adresse, spécialisation de mémoire
09 - Appareils et instruments scientifiques et électriques
42 - Services scientifiques, technologiques et industriels, recherche et conception
45 - Services juridiques; services de sécurité; services personnels pour individus
Produits et 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 - Adressage d’un niveau de mémoire dans lequel l’accès aux données ou aux blocs de données désirés nécessite des moyens d’adressage associatif, p. ex. mémoires cache
H03M 7/42 - Conversion en, ou à partir de codes de longueur variable, p. ex. code Shannon-Fano, code Huffman, code Morse utilisant une table pour le procédé de codage ou de décodage, p. ex. utilisant une mémoire morte
G06F 3/06 - Entrée numérique à partir de, ou sortie numérique vers des supports d'enregistrement
09 - Appareils et instruments scientifiques et électriques
42 - Services scientifiques, technologiques et industriels, recherche et conception
Produits et 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 - Appareils et instruments scientifiques et électriques
42 - Services scientifiques, technologiques et industriels, recherche et conception
Produits et 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 - Appareils et instruments scientifiques et électriques
42 - Services scientifiques, technologiques et industriels, recherche et conception
Produits et 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
13.
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 - Amélioration de la qualité des donnéesNettoyage des données, p. ex. déduplication, suppression des entrées non valides ou correction des erreurs typographiques
G06F 12/0804 - Adressage d’un niveau de mémoire dans lequel l’accès aux données ou aux blocs de données désirés nécessite des moyens d’adressage associatif, p. ex. mémoires cache avec mise à jour de la mémoire principale
G06F 16/22 - IndexationStructures de données à cet effetStructures de stockage
09 - Appareils et instruments scientifiques et électriques
42 - Services scientifiques, technologiques et industriels, recherche et conception
Produits et 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 - Appareils et instruments scientifiques et électriques
42 - Services scientifiques, technologiques et industriels, recherche et conception
Produits et 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 - Appareils et instruments scientifiques et électriques
42 - Services scientifiques, technologiques et industriels, recherche et conception
Produits et 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 - Appareils et instruments scientifiques et électriques
42 - Services scientifiques, technologiques et industriels, recherche et conception
Produits et 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
18.
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 - CompressionExpansionÉlimination de données inutiles, p. ex. réduction de redondance
G06F 3/06 - Entrée numérique à partir de, ou sortie numérique vers des supports d'enregistrement
G06F 12/08 - Adressage ou affectationRéadressage dans des systèmes de mémoires hiérarchiques, p. ex. des systèmes de mémoire virtuelle
G06F 16/17 - Détails d’autres fonctions de systèmes de fichiers
H03M 7/42 - Conversion en, ou à partir de codes de longueur variable, p. ex. code Shannon-Fano, code Huffman, code Morse utilisant une table pour le procédé de codage ou de décodage, p. ex. utilisant une mémoire morte
09 - Appareils et instruments scientifiques et électriques
42 - Services scientifiques, technologiques et industriels, recherche et conception
Produits et 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 - Appareils et instruments scientifiques et électriques
42 - Services scientifiques, technologiques et industriels, recherche et conception
Produits et 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.
21.
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 d'un code, dans lequel l'information est représentée par une séquence donnée ou par un nombre de chiffres, en un code dans lequel la même information est représentée par une séquence ou par un nombre de chiffres différents
H03M 7/40 - Conversion en, ou à partir de codes de longueur variable, p. ex. code Shannon-Fano, code Huffman, code Morse
H03M 7/30 - CompressionExpansionÉlimination de données inutiles, p. ex. réduction de redondance
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 - Traduction d'adresses utilisant des moyens de traduction d’adresse associatifs ou pseudo-associatifs, p. ex. un répertoire de pages actives [TLB] associée à une mémoire cache de données
G06F 3/06 - Entrée numérique à partir de, ou sortie numérique vers des supports d'enregistrement
G06F 12/06 - Adressage d'un bloc physique de transfert, p. ex. par adresse de base, adressage de modules, extension de l'espace d'adresse, spécialisation de mémoire
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 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.
H04N 19/13 - Codage entropique adaptatif, p. ex. codage adaptatif à longueur variable [CALV] ou codage arithmétique binaire adaptatif en fonction du contexte [CABAC]
H03M 7/30 - CompressionExpansionÉlimination de données inutiles, p. ex. réduction de redondance
H03M 7/40 - Conversion en, ou à partir de codes de longueur variable, p. ex. code Shannon-Fano, code Huffman, code Morse
H04N 19/91 - Codage entropique, p. ex. codage à longueur variable ou codage arithmétique
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 en, ou à partir d'une modulation différentielle à plusieurs bits, c.-à-d. la différence entre des échantillons successifs étant codée par plus d'un bit adaptative
H03M 7/30 - CompressionExpansionÉlimination de données inutiles, p. ex. réduction de redondance
G06F 3/06 - Entrée numérique à partir de, ou sortie numérique vers des supports d'enregistrement
H03M 7/48 - Conversion en, ou à partir de codes à longueur de série, c.-à-d. par représentation du nombre de chiffres successifs ou groupes de chiffres de même type à l'aide d'un mot-code et d'un chiffre représentant ce type alternativement avec d'autres codes au cours du processus de conversion, p. ex. le codage à longueur de série étant exécuté uniquement tant que des séries de chiffres, de même type, de longueur suffisante sont présentes
H03M 7/00 - Conversion d'un code, dans lequel l'information est représentée par une séquence donnée ou par un nombre de chiffres, en un code dans lequel la même information est représentée par une séquence ou par un nombre de chiffres différents
H03M 5/00 - Conversion de la forme de la représentation des chiffres individuels
H03M 7/40 - Conversion en, ou à partir de codes de longueur variable, p. ex. code Shannon-Fano, code Huffman, code Morse
H03M 7/42 - Conversion en, ou à partir de codes de longueur variable, p. ex. code Shannon-Fano, code Huffman, code Morse utilisant une table pour le procédé de codage ou de décodage, p. ex. utilisant une mémoire morte
09 - Appareils et instruments scientifiques et électriques
42 - Services scientifiques, technologiques et industriels, recherche et conception
Produits et 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 - Appareils et instruments scientifiques et électriques
42 - Services scientifiques, technologiques et industriels, recherche et conception
Produits et 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 - Appareils et instruments scientifiques et électriques
42 - Services scientifiques, technologiques et industriels, recherche et conception
Produits et 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.
34.
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.
H03M 7/40 - Conversion en, ou à partir de codes de longueur variable, p. ex. code Shannon-Fano, code Huffman, code Morse
G06F 12/0802 - Adressage d’un niveau de mémoire dans lequel l’accès aux données ou aux blocs de données désirés nécessite des moyens d’adressage associatif, p. ex. mémoires cache
G06F 3/06 - Entrée numérique à partir de, ou sortie numérique vers des supports d'enregistrement
G06F 12/0811 - Systèmes de mémoire cache multi-utilisateurs, multiprocesseurs ou multitraitement avec hiérarchies de mémoires cache multi-niveaux
35.
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. 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.
H03M 7/40 - Conversion en, ou à partir de codes de longueur variable, p. ex. code Shannon-Fano, code Huffman, code Morse
G06F 12/0802 - Adressage d’un niveau de mémoire dans lequel l’accès aux données ou aux blocs de données désirés nécessite des moyens d’adressage associatif, p. ex. mémoires cache
G06F 3/06 - Entrée numérique à partir de, ou sortie numérique vers des supports d'enregistrement
G06F 12/0811 - Systèmes de mémoire cache multi-utilisateurs, multiprocesseurs ou multitraitement avec hiérarchies de mémoires cache multi-niveaux
36.
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. 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 en, ou à partir d'une modulation delta, c.-à-d. une modulation différentielle à un bit adaptative
H03M 7/30 - CompressionExpansionÉlimination de données inutiles, p. ex. réduction de redondance
H03M 7/48 - Conversion en, ou à partir de codes à longueur de série, c.-à-d. par représentation du nombre de chiffres successifs ou groupes de chiffres de même type à l'aide d'un mot-code et d'un chiffre représentant ce type alternativement avec d'autres codes au cours du processus de conversion, p. ex. le codage à longueur de série étant exécuté uniquement tant que des séries de chiffres, de même type, de longueur suffisante sont présentes
G06F 3/06 - Entrée numérique à partir de, ou sortie numérique vers des supports d'enregistrement
H03M 7/00 - Conversion d'un code, dans lequel l'information est représentée par une séquence donnée ou par un nombre de chiffres, en un code dans lequel la même information est représentée par une séquence ou par un nombre de chiffres différents
H03M 5/00 - Conversion de la forme de la représentation des chiffres individuels
H03M 7/40 - Conversion en, ou à partir de codes de longueur variable, p. ex. code Shannon-Fano, code Huffman, code Morse
H03M 7/42 - Conversion en, ou à partir de codes de longueur variable, p. ex. code Shannon-Fano, code Huffman, code Morse utilisant une table pour le procédé de codage ou de décodage, p. ex. utilisant une mémoire morte
38.
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 - CompressionExpansionÉlimination de données inutiles, p. ex. réduction de redondance
H03M 7/00 - Conversion d'un code, dans lequel l'information est représentée par une séquence donnée ou par un nombre de chiffres, en un code dans lequel la même information est représentée par une séquence ou par un nombre de chiffres différents
H03M 7/40 - Conversion en, ou à partir de codes de longueur variable, p. ex. code Shannon-Fano, code Huffman, code Morse
39.
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 en, ou à partir de codes à longueur de série, c.-à-d. par représentation du nombre de chiffres successifs ou groupes de chiffres de même type à l'aide d'un mot-code et d'un chiffre représentant ce type alternativement avec d'autres codes au cours du processus de conversion, p. ex. le codage à longueur de série étant exécuté uniquement tant que des séries de chiffres, de même type, de longueur suffisante sont présentes
H03M 7/30 - CompressionExpansionÉlimination de données inutiles, p. ex. réduction de redondance
H04N 19/13 - Codage entropique adaptatif, p. ex. codage adaptatif à longueur variable [CALV] ou codage arithmétique binaire adaptatif en fonction du contexte [CABAC]
H04N 19/91 - Codage entropique, p. ex. codage à longueur variable ou codage arithmétique
40.
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 - Appareils et instruments scientifiques et électriques
42 - Services scientifiques, technologiques et industriels, recherche et conception
Produits et 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 - Appareils et instruments scientifiques et électriques
42 - Services scientifiques, technologiques et industriels, recherche et conception
Produits et 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.
43.
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 - CompressionExpansionÉlimination de données inutiles, p. ex. réduction de redondance
G06F 3/06 - Entrée numérique à partir de, ou sortie numérique vers des supports d'enregistrement
H03M 7/48 - Conversion en, ou à partir de codes à longueur de série, c.-à-d. par représentation du nombre de chiffres successifs ou groupes de chiffres de même type à l'aide d'un mot-code et d'un chiffre représentant ce type alternativement avec d'autres codes au cours du processus de conversion, p. ex. le codage à longueur de série étant exécuté uniquement tant que des séries de chiffres, de même type, de longueur suffisante sont présentes
45.
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.