WO2022217517A1 - 一种存储控制装置和在存储控制装置中执行的方法 - Google Patents
一种存储控制装置和在存储控制装置中执行的方法 Download PDFInfo
- Publication number
- WO2022217517A1 WO2022217517A1 PCT/CN2021/087314 CN2021087314W WO2022217517A1 WO 2022217517 A1 WO2022217517 A1 WO 2022217517A1 CN 2021087314 W CN2021087314 W CN 2021087314W WO 2022217517 A1 WO2022217517 A1 WO 2022217517A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- unit
- compression
- physical address
- compression algorithm
- Prior art date
Links
- 238000003860 storage Methods 0.000 title claims abstract description 342
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000007906 compression Methods 0.000 claims abstract description 424
- 230000006835 compression Effects 0.000 claims abstract description 424
- 238000012545 processing Methods 0.000 claims abstract description 273
- 230000015654 memory Effects 0.000 claims abstract description 133
- 230000006837 decompression Effects 0.000 claims description 60
- 238000004590 computer program Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 11
- 239000004065 semiconductor Substances 0.000 claims description 10
- 238000013144 data compression Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 16
- 239000003795 chemical substances by application Substances 0.000 description 10
- 230000008878 coupling Effects 0.000 description 7
- 238000010168 coupling process Methods 0.000 description 7
- 238000005859 coupling reaction Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 3
- 239000003990 capacitor Substances 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 235000012431 wafers Nutrition 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
Definitions
- the present application relates to the field of memory technology, and in particular, to a storage control device and a method executed in the storage control device.
- the memory bottleneck includes the bandwidth limit of the memory.
- the memory controller queues the access request to the memory, and this method causes the speed of the processor to access the data. reduce.
- the data is compressed to optimize bandwidth constraints when the storage controller writes the data.
- the current compression efficiency and bandwidth limitations still need to be improved.
- Embodiments of the present application provide a storage control device and a method executed in the storage control device, the device can realize the compression and decompression of written or read data, so as to improve the memory bandwidth of the storage and improve the access data speed.
- an embodiment of the present application provides a storage control device, which is configured to: when a first processing unit requests to write first data into a storage area corresponding to a first physical address of a memory, according to the identification of the first processing unit or the first physical address, determine a compression algorithm; compress the first data according to the compression algorithm to obtain compressed first data; write the compressed first data into the memory in the first physical address in the storage area corresponding to the address.
- the embodiment of the present application determines an adaptive compression algorithm for the data to be written currently.
- the same compression algorithm is used for all data, and different compression algorithms have different compression efficiencies for data of different data structures, which may cause compression failure or low compression efficiency.
- Data processed by different processing units have different data structures, and the same compression algorithm has different compression efficiencies for read and write data of different processing units.
- the data structures of data read and written by different programs are different.
- the data of office software is text data
- the data of video applications is video data.
- Different programs correspond to different physical address ranges.
- a compression algorithm for compressing data is determined for data to be written by different processing units or data to be written in different physical address ranges by different programs, which can improve compression efficiency.
- the dynamic selection of the compression algorithm is provided according to the currently requested processing unit or the currently requested program.
- the apparatus includes an agent unit; wherein,
- the proxy unit is configured to: receive a first write request from the first processing unit, where the first write request is used to request to write the first data into the storage area corresponding to the first physical address, the first write request A write request includes the identification of the first processing unit or the first physical address.
- the apparatus further includes a compression unit, wherein:
- the proxy unit is further configured to determine the compression algorithm according to the identifier of the first processing unit or the first physical address;
- the compression unit is configured to compress the first data according to the compression algorithm to obtain the compressed first data.
- the apparatus further includes a prediction unit and a compression unit;
- the proxy unit is configured to: when receiving the first write request, send the identifier of the first processing unit or the first physical address to the prediction unit;
- the prediction unit is configured to: determine the compression algorithm according to the identifier of the first processing unit or the first physical address;
- the compression unit is configured to: compress the first data according to the compression algorithm to obtain the compressed first data.
- the predicting unit is configured to, after determining the compression algorithm, send first indication information to the proxy unit, where the first indication information is used to indicate a pair of a compression algorithm for compressing the first data;
- the proxy unit is further configured to: when receiving the first indication information, send a compression request to the compression unit, where the compression request includes the compression algorithm and the first data, and the compression request is used for Request the compression unit to compress the first data according to the compression algorithm to obtain the compressed first data.
- the prediction unit is configured to, after determining the compression algorithm, send second indication information to the compression unit, where the second indication information is used to indicate a pair of A compression algorithm for compressing the first data.
- the apparatus further includes a storage controller
- the compression unit is configured to: after obtaining the compressed first data, send a second write request to the storage controller, where the second write request is used to request to compress the compressed first data data is written into the storage area corresponding to the first physical address;
- the storage controller is configured to: in response to the second write request, write the compressed first data into a storage area corresponding to the first physical address in the memory.
- the proxy unit is further configured to receive multiple write requests from multiple processing units, and determine a processing order for the multiple write requests according to a storage consistency protocol.
- the prediction unit is configured to: determine the first processing from a first configuration table
- the identifier of the unit corresponds to the compression algorithm
- the first configuration table includes identifiers of the N processing units and identifiers of the compression algorithms corresponding to the identifiers of the N processing units, and N is a positive integer.
- the present application can provide dynamic selection of multiple compression algorithms for different processing units. Due to the characteristics of different processing units, there is a relatively suitable compression algorithm corresponding to a certain processing unit.
- the prediction unit when the first write request includes the first physical address, is further configured to: determine the first physical address from a second configuration table For the corresponding compression algorithm, the second configuration table includes M physical address ranges and identifiers of compression algorithms corresponding to the M physical address ranges, where M is a positive integer.
- the prediction unit is further configured to determine whether to compress the first data according to a compression success rate, where the compression success rate is used to indicate time T0 to time T1
- the success rate of internal data compression or decompression the time T1 is the current time, and the time T0 is the time before the time T1.
- the compression success rate When the compression success rate is low, the read and write data is compressed, and the compression failure is very likely to occur, the income is low and the power consumption is large.
- whether to compress the data is determined by the compression success rate, and the read and write can be compressed when the compression success rate is high, which can effectively improve the bandwidth and avoid the waste of power consumption when the compression success rate is low.
- the compression unit is further configured to: send third indication information to the storage controller, where the third indication information is used to indicate the compression algorithm;
- the storage controller is further configured to: when writing the compressed first data into the memory, write the third indication information into the memory as a compression mark in association with the compressed first data.
- the present application provides a storage control device, which is configured to: when a first processing unit requests to read compressed data of a first physical address in a memory, according to the identification of the first processing unit or the compressed data The first physical address of the compressed data is determined, and the compression algorithm used before the compressed data is determined; the compressed data is read; the compressed data is decompressed according to the compression algorithm to obtain decompressed data; the decompressed data is sent to the first processing unit.
- the apparatus includes an agent unit; wherein,
- the proxy unit is configured to: receive a first read request from the first processing unit, where the first read request is used to request the compressed data, and the first read request includes the first processing The identification of the unit or the first physical address.
- the apparatus further includes a decompression unit, wherein:
- the proxy unit is further configured to determine the compression algorithm according to the identifier of the first processing unit or the first physical address;
- the decompression unit is configured to decompress the compressed data according to the compression algorithm to obtain the decompressed data.
- the apparatus further includes a prediction unit and a decompression unit;
- the proxy unit is configured to: when receiving the first read request, send the identifier of the first processing unit or the first physical address to the prediction unit;
- the prediction unit is configured to: determine the compression algorithm according to the identifier of the first processing unit or the first physical address;
- the decompression unit is configured to: decompress the first data according to the compression algorithm to obtain the decompressed data.
- the prediction unit is configured to, after determining the compression algorithm, send fourth indication information to the proxy unit, where the fourth indication information is used to indicate the The compression algorithm used when the compressed data was written before;
- the proxy unit is further configured to: upon receiving the fourth indication information, send a decompression request to the decompression unit, where the decompression request is used to request to decompress the first data according to the compression algorithm.
- the prediction unit is further configured to, after determining the compression algorithm, send indication information to the decompression unit, which is used to indicate that the compressed data is written before compression algorithm used.
- the apparatus further includes a storage controller
- the proxy unit is configured to send a second read request to the storage controller, where the second read request is used to request to read the compressed data;
- the storage controller is configured to: read the compressed data to obtain the first data; and send the first data to the decompression unit;
- the decompression unit is configured to: decompress the first data according to the compression algorithm to obtain the decompressed data; and send the decompressed data to the first processing unit through the proxy unit .
- the proxy unit is further configured to receive multiple read requests from multiple processing units.
- the present application provides a storage control device, which is applied to when a processing unit reads data from a memory, the prediction unit can predict the data to be read, determine a compression algorithm to be used for the data, and further, when the storage controller reads data When the compressed data is taken and sent to the decompression unit, the compressed data is decompressed by the decompression unit to obtain the data to be read.
- the device and the device of the first aspect can be used together, or can be the same device, so as to achieve efficient data access.
- the prediction unit when the first read request includes the identifier of the first processing unit, the prediction unit is configured to: determine the first processing from a first configuration table The identifier of the unit corresponds to the compression algorithm, and the first configuration table includes identifiers of the N processing units and identifiers of the compression algorithms corresponding to the identifiers of the N processing units, and N is a positive integer.
- the prediction unit when the first read request includes the first physical address, the prediction unit is configured to: determine the compression algorithm from a second configuration table, and the The second configuration table includes M physical address ranges and identifiers of compression algorithms corresponding to the M physical address ranges, where M is a positive integer.
- the prediction unit is further configured to determine whether to compress the first data according to a bandwidth utilization rate, where the bandwidth utilization rate is used to indicate all data from time T0 to time T1.
- the utilization rate of the bandwidth when the storage controller accesses data the time T1 is the current time, and the time T0 is the time before the time T1.
- the storage controller is further configured to: read a compression mark from the storage area in the memory, where the compression mark is used to indicate that the compressed data is compressed before and, sending the compression mark to the decompression unit;
- the decompression unit is specifically configured to: decompress the first data through the compression algorithm indicated by the compression flag to obtain the decompressed data.
- the present application provides a method executed in a storage control device, applied to the storage control device, the device includes: a proxy unit, a prediction unit, a compression unit and a storage controller; the method includes:
- the present application provides a method executed in a storage control device, characterized in that, when applied to a storage control device, the device includes a proxy unit, a prediction unit, a decompression unit, and a storage controller; the method includes :
- Receive a first read request from a first processing unit the first read request is used to request compressed data at a first physical address in the memory, the first read request includes an identifier of the first processing unit or the first physical address;
- the decompressed data is sent to the first processing unit.
- the present application provides a semiconductor chip, which may include the storage control device provided in any one of the implementation manners of the above-mentioned first aspect.
- the present application provides a semiconductor chip, which may include the storage control device provided by any one of the implementation manners of the foregoing second aspect.
- the present application provides a semiconductor chip, which may include: the storage control device provided by any one of the implementation manners of the first aspect, an internal memory coupled to the storage control device, and an external memory.
- the present application provides a semiconductor chip, which may include: the storage control device provided by any one of the implementation manners of the second aspect, an internal memory coupled to the storage control device, and an external memory.
- the present application provides a semiconductor chip, which may include a prediction unit and a compression unit in the storage control apparatus provided by any one of the implementation manners of the above-mentioned first aspect.
- the present application provides a semiconductor chip, which may include a prediction unit and a decompression unit in the storage control device provided by any one of the implementation manners of the second aspect.
- the present application provides a chip system, where the chip system includes the storage control apparatus provided by any one of the implementation manners of the first aspect above.
- the chip system further includes a memory, and when the memory is executed, any one of the method processes in the third aspect above is implemented.
- the chip system may be composed of chips, or may include chips and other discrete devices.
- the present application provides a chip system, where the chip system includes the storage control apparatus provided by any one of the implementation manners of the second aspect above.
- the system-on-a-chip further includes a memory, and when the memory is executed, any one of the method flows in the fourth aspect above is implemented.
- the chip system may be composed of chips, or may include chips and other discrete devices.
- the present application provides a processing device having the function of implementing any one of the storage control devices in the first aspect.
- This function can be implemented by hardware or by executing corresponding software by hardware.
- the hardware or software includes one or more modules corresponding to the above functions.
- the present application provides a processing device having the function of implementing any one of the storage control devices in the second aspect.
- This function can be implemented by hardware or by executing corresponding software by hardware.
- the hardware or software includes one or more modules corresponding to the above functions.
- the present application provides a terminal, the terminal includes a storage control device, and the storage control device is the storage control device provided by any one of the implementation manners of the first aspect above.
- the terminal may also include memory for coupling with the memory control device, which stores program instructions and data.
- the terminal may also include a communication interface for the terminal to communicate with other devices or a communication network.
- the present application provides a terminal, the terminal includes a storage control device, and the storage control device is the storage control device provided by any one of the implementation manners of the second aspect above.
- the terminal may also include a memory for coupling with the storage control device, which holds program instructions and data necessary for the terminal.
- the terminal may also include a communication interface for the terminal to communicate with other devices or a communication network.
- the present application provides a computer-readable storage medium, where a computer program is stored in the computer-readable storage medium, and when the computer program is executed by a storage control device, the above-mentioned method in any one of the third aspects is implemented. The method flow executed in the storage control device is stored.
- the present application provides a computer-readable storage medium, where a computer program is stored in the computer-readable storage medium. The method flow executed in the storage control device is stored.
- an embodiment of the present invention provides a computer program, where the computer program includes instructions, when the computer program is executed by the storage control device, the storage control device can execute any one of the above-mentioned third aspects.
- an embodiment of the present invention provides a computer program, where the computer program includes instructions, when the computer program is executed by the storage control device, the storage control device can execute any one of the above-mentioned fourth aspects.
- FIG. 1 is a schematic diagram of a computing system architecture provided by an embodiment of the present application
- FIG. 2 is a schematic structural diagram of a processing unit according to an embodiment of the present application.
- FIG. 3 is a schematic structural diagram of a memory according to an embodiment of the present application.
- 4A is a schematic diagram of a first configuration table provided by an embodiment of the present application.
- 4B is a schematic diagram of a second configuration table provided by an embodiment of the present application.
- FIG. 5 is a schematic diagram of a storage control device according to an embodiment of the present application.
- FIG. 6 is a schematic diagram of another storage control device provided by an embodiment of the present application.
- FIG. 7 is a schematic diagram of another storage control device provided by an embodiment of the present application.
- FIG. 8 is a schematic flowchart of a method executed in a storage control device according to an embodiment of the present application.
- FIG. 9 is a schematic diagram of a prediction method provided by an embodiment of the present application.
- FIG. 10 is a schematic flowchart of a method executed in a storage control device provided by an embodiment of the present application.
- FIG. 11 is a schematic diagram of another prediction method provided by an embodiment of the present application.
- a component may be, but is not limited to, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer.
- an application running on a computing device and the computing device may be components.
- One or more components may reside within a process and/or thread of execution, and a component may be localized on one computer and/or distributed between 2 or more computers.
- these components can execute from various computer readable media having various data structures stored thereon.
- a component may, for example, be based on a signal having one or more data packets (eg, data from two components interacting with another component between a local system, a distributed system, and/or a network, such as the Internet interacting with other systems via signals) Communicate through local and/or remote processes.
- data packets eg, data from two components interacting with another component between a local system, a distributed system, and/or a network, such as the Internet interacting with other systems via signals
- IC Integrated Circuit
- An IC is a tiny electronic device or component. Using a certain process, components and wirings such as transistors, resistors, capacitors and inductors required in a circuit are interconnected, fabricated on a small or several small semiconductor wafers or dielectric substrates, and then packaged in a package. , become a micro structure with the required circuit functions; that is, an IC chip is an integrated circuit formed by a large number of microelectronic components (transistors, resistors, capacitors, etc.) on a plastic base to make a chip.
- microelectronic components transistors, resistors, capacitors, etc.
- some units of the storage control device may be integrated into a single chip.
- the compression unit, prediction unit, and decompression unit in the storage control device may be integrated into a single chip, and then the chip is integrated with the processor and the storage controller. It is interconnected with a memory and the like to perform the method performed in the storage control device provided by the present application.
- IP Core Intellectual property Core
- the intellectual property core is the abbreviation of the integrated circuit core with intellectual property rights, referred to as the IP core.
- An IP core is a pre-designed or even verified integrated circuit, device or component with a specific function. According to the hardware description level implementation program of IP core, it can be divided into three categories: soft core, hard core and solid core. in,
- Soft core Mainly describe the function and submit it to the user in the form of HDL (hardware description language) text.
- Solid core mainly describes the structure, which is between the soft core and the hard core, and is provided to the user in the form of a gate-level netlist.
- Hard core based on physical description and process verification, is provided to users with circuit physical structure mask diagram and a full set of process files.
- the processing unit (Master) in this embodiment of the present application may be an intellectual property core.
- a multi-core operating system is an operating system running on a multi-core processing unit capable of exerting the multi-core computing power.
- multicore refers to integrating two or more complete computing engines (cores) in one processing unit (processor).
- processor processing unit
- a multi-core operating system includes multiple processing cores.
- the processing core may also be called a processing unit, and the processing core may be an intellectual property core.
- Multi-core operating systems implement a "divide and conquer" strategy. By dividing tasks, threaded applications can take advantage of multiple execution cores and perform more tasks in a given amount of time.
- a multi-core processing unit is a single chip (also called a "silicon core") that plugs directly into a single processing unit socket, but the operating system uses all relevant resources to treat each of its execution cores as discrete logic unit. By dividing tasks between two execution cores, a multi-core processing unit can perform more tasks in a given clock cycle.
- Multi-core technology enables servers to parallelize tasks that previously might have required the use of multiple processing units. Multi-core systems are easier to scale and pack more processing power into a slimmer form factor that uses less power , Computing power consumption generates less heat.
- the storage control device provided by the embodiment of the present application can be applied to a multi-core system. Multiple processing units in the multi-core system can use the storage control device to compress data and write them into the memory, or use the storage control device to compress the data in the memory. Perform decompression to obtain decompressed data.
- Memory is a memory component used to store programs and various data information. There are various types of memory, and four types of processors are exemplified below.
- Random Access Memory Random Access Memory
- RAM Random Access Memory
- RAM used to store and save data. It can be read and written at any time, and RAM is usually used as a temporary storage medium (which can be called system memory) for the operating system or other running programs. RAM cannot retain data when the power is turned off, and if data needs to be saved, they must be written to a long-term memory (eg, a hard disk).
- Random Access Memory RAM can be further divided into two categories: Static Random Access Memory (SRAM) and Dynamic Random Access Memory (DRAM).
- SRAM Static Random Access Memory
- DRAM Dynamic Random Access Memory
- SRAM Static Random Access Memory
- DRAM Dynamic Random Access Memory
- DDR SDRAM Double Data Rate Synchronous Dynamic Random Access Memory
- DDR memory is developed on the basis of SDRAM memory, and still uses the SDRAM production system, so for As far as memory manufacturers are concerned, the production of DDR memory can be achieved only by slightly improving the equipment for manufacturing ordinary SDRAM, which can effectively reduce costs.
- DDR technology realizes two read/write operations in one clock cycle, that is, one read/write operation is performed on the rising edge and the falling edge of the clock respectively.
- ROM Read Only Memory
- FIG. 1 is a schematic diagram of a computing system architecture provided by an embodiment of the present application.
- the system architecture includes a processing module 10 , a storage control device 20 and a memory 30 .
- the processing module 10 may include one or more processing units. in:
- the processing module 10 may include multiple processing units such as a first processing unit, a second processing unit . . . a Wth processing unit, where W is a positive integer.
- the processing unit may be an IP core such as a central processing unit (Central processing unit, CPU), a graphics processing unit (Graphics processing unit, GPU), an artificial intelligence core (AI core), and a media (media) accelerator. All IP cores in the system that need to read and write access from the memory can be used as processing units. It should be understood that a processing unit may also be referred to as a processor.
- FIG. 2 is a schematic structural diagram of a processing unit according to an embodiment of the present application.
- the processing module 10 is a multi-core processor, which includes a master processing core 101 and one or more slave processing cores 102 coupled to the master processing core 101 .
- K slave processing cores are used. 102 as an example, including slave processing core 1 (Core1), slave processing core 2 (Core2), slave processing core 3 (Core3), slave processing core 4 (Core4)... slave processing core (K-1) (Core (K-1) -1)) and slave processing core K (CoreK).
- the K slave processing cores 102 all include configuration interfaces, which are configuration interface 1 , configuration interface 2 , configuration interface 3 , . . . configuration interface K-1 , configuration interface K, respectively.
- the master processing core 101 can perform related configuration and control on the corresponding slave processing core 102 through the above-mentioned configuration interface.
- the master processing core 101 and the one or more slave processing cores 102 may be located in one or more ICs, for example, the master processing core 101 and the one or more slave processing cores 102 may be located in one IC Or, the master processing core 101 is located in one IC, and some or all of the one or more slave processing cores 102 are located in another IC, which is not specifically limited in this embodiment of the present invention. It can be understood that, the master processing core 101 and the N slave processing cores 102 may be coupled and communicated through a bus or other means, and the connection relationship shown in FIG. 2 does not limit the coupling relationship between them.
- the storage control apparatus may receive a request from each processing unit in the processing module 10 respectively, and access data according to the request of each processing unit.
- the memory 30 may be a general-purpose memory structure, for example, the memory 30 may be a general-purpose random access memory or a power-down volatile storage device such as static random access memory, dynamic random access memory, or synchronous dynamic random access memory, double Rate SDRAM (Dual Data Rate SDRAM, DDR SDRAM), etc.; the memory 30 can also be a general read-only memory or a non-power-down volatile memory, such as Programmable ROM (Programmable ROM, PROM), Erasable Programmable ROM ( Erasable Programmable ROM, EPROM), Electrically Erasable Programmable ROM (Electrically Erasable Programmable ROM, EEPROM), Flash ROM (FLASH ROM), etc.; the memory 30 can also be a general-purpose register on the processor, a flash memory, or any other suitable type of memory.
- Programmable ROM Programmable ROM, PROM
- Erasable Programmable ROM Erasable Programmable ROM, EPROM
- Electrically Erasable Programmable ROM
- the memory 30 is a RAM, the data to be matched can be changed, and if the memory 30 is a ROM, the data to be matched is the data solidified in the memory 30 . It should be noted that the specific form in which the memory 30 stores the data to be matched is not specifically limited in this application, and relevant changes can be made according to actual needs or business conditions.
- FIG. 3 is a schematic structural diagram of a memory 30 according to an embodiment of the present application.
- the memory includes X cache lines, which are exemplarily represented by the first cache line to the X th cache line in the figure, wherein each cache line is divided into Z memory blocks, which is exemplified in the figure. Multiple storage blocks are represented by the first storage block to the Zth storage block, X is a positive integer greater than zero, and Z is a positive integer greater than zero.
- each of the Z memory blocks may be the smallest amount of data read or written to the memory (ie, memory storage access granularity), for example, the cache line includes each of the X cache lines Both include 128 bytes, and each cache line includes two 64-byte memory blocks.
- each storage block in the Z storage blocks is associated with one or more Error Correcting Code (ECC) bits, wherein the ECC bit is information that can be used to store the corresponding storage block.
- ECC bit may store a compression flag corresponding to the compressed data in the storage block, where the compression flag is used to indicate the compression algorithm used when the data was previously compressed.
- the processing module 10 and the storage control device 20 may also form a multi-core system. It should be noted that, the system architecture shown in FIG. 1 does not limit the integration between various elements of the storage control system in the embodiment of the present application.
- FIG. 1 is only an exemplary implementation in the embodiments of the present application, and the computing system architectures in the embodiments of the present application include but are not limited to the above computing system architectures. It should be understood that FIG. 1 does not limit the coupling of the various components in the system.
- the processing module 10 can write data into the memory 30 through the storage control device 20, wherein the storage control device 20 can compress the data, and then write the compressed data into the memory 30; the processing module 10 can also The storage control device 20 reads data from the memory 30 . If the data in the memory 30 is compressed data, the storage control device 20 can decompress the compressed data, and then send the decompressed data to the processing module 10 .
- a compression algorithm is determined according to the identifier of the first processing unit or the first physical address, and according to the determined compression algorithm The first data is compressed, and the compressed first data is written into the memory.
- the storage control device 20 may be configured with a first configuration table and/or a second configuration table, wherein the first configuration table may include identifiers of N processing units and identifiers of N processing units, respectively.
- the second configuration table may include M physical address ranges and identifiers of the compression algorithms corresponding to the M physical address ranges, where M is a positive integer.
- FIG. 4A is a schematic diagram of a first configuration table provided by an embodiment of the present application.
- the configuration table includes the identifier of at least one processing unit and the identifier of the compression algorithm corresponding to the identifier of each processing unit in the identifier of the at least one processing unit.
- the third identifier and the fourth identifier represent the identifiers of four different processing units
- the first algorithm identifier, the second algorithm identifier and the third algorithm identifier represent the identifiers of three different compression algorithms
- the first identifier in the figure corresponds to the first
- the algorithm identifier, the second identifier corresponds to the second algorithm identifier
- the third identifier corresponds to the third algorithm identifier
- the fourth identifier corresponds to the first algorithm identifier.
- the embodiments of the present application may provide dynamic selection of multiple compression algorithms for different processing units.
- the processing units mentioned in this application may be processing cores such as CPU, GPU, AI Core, Media accelerator, etc., and may also be other types of processing cores, which are not limited here. Since the data structures of the data processed by different processing units are different, the same compression algorithm has different compression efficiencies for the read and write data of different processing units.
- an adaptive compression algorithm may be set for different processing units. Currently, the data requested to be written by the processing unit selects an adapted compression algorithm to improve compression efficiency.
- FIG. 4B is a schematic diagram of a second configuration table provided by an embodiment of the present application.
- the configuration table includes at least one physical address range and at least the identifier of the compression algorithm corresponding to the identifier of each physical address range in the physical address range.
- three physical addresses are exemplarily taken as an example.
- the algorithm ID, the second algorithm ID, and the third algorithm ID represent the IDs of three different compression algorithms.
- the data structures of data read and written by different programs are different (for example, the data of office software is text data, the data of video applications is video data, and different programs correspond to different physical address ranges).
- the physical address ranges corresponding to different programs may be fixed rules or artificially divided.
- the physical address range of the program may be determined according to the amount of data used by the program on a daily basis. Since the data structures of the data read and written by different programs are different, different programs correspond to the different physical address ranges. Therefore, data of different data structures correspond to different physical address ranges. Also, because different compression algorithms have different compression efficiencies for data of different data structures, the second configuration table can be preset according to the data, and further, the data of different physical addresses is used through the second configuration table. The data compression efficiency corresponding to the physical address is used. The best compression algorithm can improve the compression efficiency.
- the embodiment of the present application determines an adaptive compression algorithm for the data to be written currently in the case of determining the compression algorithm according to the physical address.
- the data structures of data read and written by different programs are different.
- the data of office software is text data
- the data of video applications is video data.
- Different programs correspond to different physical address ranges.
- a compression algorithm for compressing data to be written into different physical address ranges by different programs is determined, which can improve compression efficiency.
- the storage control apparatus 20 may prioritize according to the first processing unit
- the identification determines the compression algorithm from the first configuration table.
- the storage control apparatus 20 may determine the compression algorithm from the second configuration table according to the first physical address.
- the storage control device 20 may compress the first data according to the compression algorithm to obtain the compressed first data, and then write the compressed first data into the storage area corresponding to the first physical address in the memory.
- the storage control device 20 can also modify the address length according to the compression algorithm and the first data to obtain the second physical address, so as to write the compressed first data into the storage area corresponding to the second physical address in the memory, and the first physical address
- the corresponding storage area includes a storage area corresponding to the second physical address.
- the storage control device 20 when the storage control device 20 writes the compressed data into the memory 30, it stores a compression flag associated with the compressed data in the memory, where the compression flag is used to indicate the compression algorithm, specifically , the storage control apparatus may write the compression mark into the ECC bit of the storage area corresponding to the first physical address or the second physical address.
- the storage control device 20 can read the compression mark associated with the compressed data, and decompress the compressed data according to the compression algorithm indicated by the compression mark to obtain the decompressed data, Finally, the decompressed data is sent to the processing module 10 .
- the storage control device 20 may not need to write the compression mark into the memory 30 .
- the storage control device 20 can determine the compression algorithm used when the compressed data is compressed before reading the compressed data, and further, after reading the compressed data, decompress the compressed data according to the compression algorithm to obtain decompression. data.
- the compression algorithm used when the compressed data in the storage area corresponding to the first physical address is previously compressed is determined. For example, when the first processing unit sends a read request to the storage control device 20, the read request includes the identifier of the first processing unit or the first physical address. A physical address determines the compression algorithm used in the previous compression from the first configuration table or the second configuration table, respectively.
- the storage control device 20 may first determine whether the identifier of the first processing unit is included in the first configuration table, and then, if the first configuration table contains the identifier of the first processing unit If the compression algorithm corresponding to the identifier of the first processing unit is not included, the compression algorithm is determined from the second configuration table according to the first physical address. Further, the storage control device 20 may read the compressed data of the storage area corresponding to the first physical address; decompress the compressed data according to the determined compression algorithm; and send the decompressed data to the first processing unit. It should be noted that the process of determining the compression algorithm by the storage control device when writing data is the same as the process of determining the compression algorithm when reading data, so as to ensure that the algorithm for compressing the compressed data can be obtained when the compressed data is read.
- FIG. 5 is a schematic diagram of a storage control apparatus applicable to FIG. 1 according to an embodiment of the present application.
- the storage control apparatus may include an agent unit (home agent, also referred to as a home agent unit) 401, a compression (compress) unit 402, a decompression unit 403 and a memory controller (also referred to as a memory controller) internal memory controller) 404.
- agent unit home agent, also referred to as a home agent unit
- compression (compress) unit 402 a decompression unit 403
- a memory controller also referred to as a memory controller
- the processing unit e.g. the first processing unit
- the functions specifically implemented by the storage control apparatus 400 may include the following:
- the proxy unit 401 is configured to: when receiving the first write request from the first processing unit, determine the compression algorithm according to the identifier of the first processing unit or the first physical address. For example, the first write request includes the identification of the first processing unit or the first physical address;
- the proxy unit 401 includes the above-mentioned first configuration table.
- the proxy unit 401 can select the first configuration table from the first configuration table according to the identifier of the first processing unit. Determine the compression algorithm.
- the proxy unit 401 may also send a compression flag to the compression unit 402, where the compression flag is used to indicate the compression algorithm.
- the proxy unit 401 includes the above-mentioned second configuration table.
- the proxy unit 401 can determine the compression algorithm from the second configuration table according to the first physical address.
- the proxy unit 401 may also send a compression flag to the compression unit 402, where the compression flag is used to indicate the compression algorithm.
- the compressing unit 402 is configured to: compress the first data according to the compression algorithm to obtain the compressed first data;
- the compression unit 402 is configured to: after obtaining the compressed first data, send a second write request to the storage controller 404, where the second write request is used to request to write the compressed first data into the storage corresponding to the first physical address area; specifically, the second write request includes the compressed first data.
- the compression unit 402 is further configured to: after obtaining the compressed first data, send a compression flag to the storage controller 404, where the compression flag is used to indicate a compression algorithm for compressing the compressed first data.
- the storage controller 404 is configured to: in response to the second write request, write the compressed first data into the storage area corresponding to the first physical address in the memory.
- the compression unit 402 may modify the first physical address according to the first data and the compression algorithm to obtain the second physical address, and the storage area corresponding to the first physical address includes the storage area corresponding to the second physical address. Furthermore, the storage controller 404 may write the compressed first data into the storage area corresponding to the second physical address.
- the storage controller 404 is further configured to: when storing the compressed data, write the compression mark in the memory in association with the compressed first data.
- the proxy unit 401 may preferentially select the first configuration from the first configuration according to the identification of the first processing unit
- the table determines the compression algorithm.
- the proxy unit 401 may determine the compression algorithm from the second configuration table according to the first physical address. Further, the compression unit 402 may compress the first data according to the determined compression algorithm to obtain compressed first data, and finally write the compressed first data into a storage area corresponding to the first physical address in the memory.
- the specific functions implemented by the storage control device may include the following:
- the storage controller 404 may read a compression flag associated with the compressed data stored in the memory, so that the decompression unit 403 may decompress the compressed data according to the compression algorithm indicated by the compression flag, Get decompressed data.
- the storage control device does not need to write a compression mark into the memory 30 when writing compressed data, and the storage control device 20 can determine the compression according to the identification or physical address of the processing unit before reading the compressed data
- the proxy unit 401 is configured to: when receiving a first read request from the first processing unit or other processing units for the storage area corresponding to the first physical address, according to the identifier of the first processing unit or the first read request
- the physical address determines the compression algorithm
- the first read request includes the identification of the first processing unit or the first physical address.
- the proxy unit 401 determines the previously used compression algorithm according to the identifier of the first processing unit or the first physical address.
- the proxy unit 401 sends a compression flag to the decompression unit 403, where the compression flag is used to indicate the determined compression algorithm.
- the processing units that write and read the same data have the same compression algorithm in the configuration table, so as to ensure that the processing unit that reads the compressed data can determine the compression algorithm used when the compressed data is compressed before;
- the proxy unit 401 is further configured to send a second read request to the storage controller 404, where the second read request is used to request to read the data of the storage area corresponding to the first physical address;
- the storage controller 404 is configured to: in response to the second read request, read data in the storage area corresponding to the first physical address to obtain decompressed data; and send the decompressed data to the decompression unit 403;
- the decompression unit 403 is configured to: decompress the decompressed data according to the compression algorithm indicated by the compression flag to obtain compressed data; and send the compressed data to the first processing unit through the proxy unit 401 .
- the storage controller 404 may be various devices known in the art for controlling writing to or reading from the storage.
- the agent unit mentioned in the present invention may be an agent unit known in the art for ensuring storage consistency, for example, a module for managing and maintaining data consistency in a multi-core system.
- Make a request to the proxy unit For example, the proxy unit can receive write requests from multiple processing units at the same time, and can determine the processing order of multiple write requests according to the storage consistency protocol. It should be noted that the proxy unit may also be other types of processing units, which are not limited here.
- the compression unit 402 and the decompression unit 403 may be integrated on a single chip.
- FIG. 6 is a schematic diagram of another storage control apparatus provided by an embodiment of the present application.
- a prediction (predict) unit may be set in the storage control apparatus, and the prediction unit may be used to determine a compression algorithm according to the identifier of the first processing unit or the first physical address.
- the prediction unit may include the first configuration table and/or the second configuration table described above.
- the prediction unit may also be used to calculate the compression success rate according to the It is determined whether to compress the first data.
- the storage control apparatus may include a proxy unit 501 , a prediction unit 502 , a compression unit 503 and a storage controller 504 .
- the storage control device may specifically be a chip or a chip set or a circuit board equipped with a chip or a chip set, and the arrows in FIG. 6 exemplarily represent the direction of the data flow when the proxy unit requests to write data to the memory.
- the chip or chip set or the circuit board on which the chip or chip set is mounted can be driven by necessary software.
- the specific implementation of the storage control device 50 is as follows:
- the proxy unit 501 is configured to receive a first write request from the first processing unit, the first write request is used to request to write the first data into the storage area corresponding to the first physical address, and the first write request includes the first write request.
- An identification or first physical address of a processing unit, and the received identification or first physical address of the first processing unit is sent to the prediction unit 502 .
- the identifier of the first processing unit may be an identity identifier (Identity, ID) of the first processing unit.
- the proxy unit 501 may send a prediction request to the prediction unit 502, where the prediction request carries parameter information, for example, the identifier of the first processing unit or the first physical address, and the prediction request is used to request A compression algorithm for compressing data.
- the prediction request carries parameter information, for example, the identifier of the first processing unit or the first physical address, and the prediction request is used to request A compression algorithm for compressing data.
- a prediction unit 502 configured to determine the compression algorithm according to the parameter information (for example, the identifier of the first processing unit or the first physical address); and send first indication information to the proxy unit, where the first indication information Indicates a compression algorithm for compressing the first data.
- the prediction unit 502 may directly send the determined compression algorithm to the compression unit 503 after determining the compression algorithm.
- the received parameter information is an identifier of the first processing unit
- the prediction unit is configured to: determine a compression algorithm corresponding to the identifier of the first processing unit from a first configuration table, and the first A configuration table includes identifiers of N processing units and identifiers of compression algorithms corresponding to the identifiers of the N processing units, where N is a positive integer.
- the prediction unit 502 may determine from the first configuration table that the compression algorithm for compressing the first data is the first algorithm.
- the parameter information received by the prediction unit is the first physical address
- the prediction unit is further configured to: determine, from the second configuration table, a compression algorithm corresponding to the first physical address, and the first physical address
- the second configuration table includes M physical address ranges and identifiers of compression algorithms corresponding to the M physical address ranges, where M is a positive integer.
- the prediction unit 502 may query the second configuration table for the first physical address, and further, may determine that the second configuration table includes the first physical address, and the first physical address corresponds to the first physical address. If one algorithm is used, the prediction unit 502 can obtain that the prediction result is that the first data needs to be compressed and the compression algorithm for compressing the first data is the first algorithm. It should be noted that different physical addresses in the second configuration table may correspond to the same compression algorithm, and the second configuration table may be the same configuration table as the second configuration table described above.
- the prediction unit can also be used to determine whether to compress the first data according to the compression success rate, and the compression success rate is used to indicate the success rate of data compression or decompression from time T0 to time T1, where time T1 is the current time, time T0 is the time before time T1. Specifically, when the compression success rate is greater than the first threshold, the prediction unit determines to compress the first data; when the compression success rate is smaller than the first threshold, the prediction unit determines not to compress the first data, where the first threshold may be default value. It is understandable that since the read and write data is compressed when the compression success rate is low, the compression failure is very likely to occur, and the income is low and the power consumption is large. In this application, whether to compress the data is determined by the compression success rate, and the read and write can be compressed when the compression success rate is high, which can effectively improve the bandwidth and avoid the waste of power consumption when the compression success rate is low.
- the prediction unit may determine whether to compress the first data according to the compression success rate, and after determining to be compressed, determine the compression algorithm according to the identifier or physical address of the first processing unit.
- the prediction unit 502 may preferentially obtain the first configuration table from the first configuration table according to the received identification of the first processing unit Determine the compression algorithm. If the first configuration table does not contain the identifier of the first processing unit, the prediction unit 502 determines the compression algorithm from the second configuration table according to the received first physical address. Further, if the second configuration table does not contain the first physical address, the prediction unit 502 may obtain the compression success rate from the compression unit 503 and/or the decompression unit 505, and determine whether to compress the first data according to the compression success rate, and then determine whether to compress the first data. After being compressed, the data is compressed according to a preset compression algorithm.
- the prediction unit 502 may obtain the compression algorithm that is most frequently used by the compression unit 503 in the current period of time as the compression algorithm for compressing the first data, or may use the default compression algorithm.
- the physical address in the second configuration table may be a physical address range, which is not limited here.
- the experimental results show that when the embodiment of the present application is used on the Hi1951 series chips, the broadband performance of the ESL test is improved by 8%.
- the storage control device 50 may further include a decompression unit 505, and the decompression unit 505 is configured to send a second success rate to the prediction unit, where the second success rate is used to indicate the success rate of the data decompression by the decompression unit 505 from time T0 to time T1, wherein , time T1 is the current time, and time T0 is the time before time T1.
- the prediction unit 502 may obtain the first success rate from the compression unit 503, where the first success rate is used to indicate the success rate of the compression unit 503 in compressing data from the time T0 to the time T1, and obtain the second success rate from the decompression unit 505 , and further, the compression success rate is determined according to the first success rate and the second success rate.
- the compression success rate may be the first success rate, the second success rate, or the sum of the first success rate and the second success rate, which is not limited here.
- the prediction unit provided in the embodiment of the present application is only an example.
- the prediction unit can be an individually set unit or a component in a proxy unit.
- the proxy unit may perform the function of the above-mentioned prediction unit, which is not limited here.
- the proxy unit 501 is further configured to send a compression request to the compression unit 503 when receiving the first indication information from the prediction unit 502, where the compression request is used to request the compression unit to compress the first indication information according to the compression algorithm a data, the compression request includes the compression algorithm and the first data.
- the prediction unit 502 sends the compression algorithm to the compression unit 503; the proxy unit 501 sends a compression request to the compression unit 503 when receiving the first indication information from the prediction unit 502,
- the compression request includes the first data without including the compression algorithm.
- the compression unit 503 is configured to compress the first data according to the compression algorithm to obtain the compressed first data, that is, the compressed data; and, send a second write request to the storage controller 504, the second write request is used for Request to write compressed data into the storage area corresponding to the first physical address.
- the compression unit 503 may compress the first data according to the compression algorithm to obtain the compressed first data, and then send the second write request to the storage controller 504,
- the second write request is used to request to write the compressed first data into the storage area corresponding to the first physical address.
- the compressing unit 503, when compressing the first data is also used to determine the second physical address according to the target length and the first physical address, the target length is the length of the compressed first data, and the first physical address corresponds to
- the storage area includes the storage area corresponding to the second physical address; the second write request sent by the compression unit 503 to the storage controller 504 is used to request to write the compressed data into the storage area corresponding to the second physical address in the memory, so that the storage control The controller 504 writes the compressed first data into the storage area corresponding to the second physical address in the memory in response to the second write request.
- the compression unit 503 may modify the first physical address according to the length of the compressed first data to obtain the second physical address. For example, after the compression unit 503 compresses the first data, the data length of the obtained compressed first data is half of the data length of the first data, and the first physical address corresponds to two storage blocks in the memory, then the second The storage block corresponding to the physical address may be one of the storage blocks corresponding to the first physical address. It should be noted that the compression unit 503 can set whether to write the high-order or low-order of the first data into the memory, thereby determining one memory block from the two memory blocks corresponding to the first physical address as the memory area corresponding to the second physical address.
- the compression unit 503 is further configured to send a compression flag to the storage controller 504, where the compression flag is used to indicate the compression algorithm, so that the storage controller 504 writes the compression flag into the compression
- the storage block where the data is stored for example, the ECC bit of the storage area corresponding to the first physical address or the second physical address.
- the storage controller 504 is configured to, in response to the second write request, write the compressed data into the storage area corresponding to the first physical address in the memory.
- the second write request is used to request to write the compressed data into the storage area corresponding to the second physical address in the memory
- the storage controller 504 is used to write the compressed data into the second physical address in the memory The storage area corresponding to the address.
- the storage controller 504 is further configured to write a compression mark into the memory when the compressed data is written into the memory. Specifically, the storage controller 504 may write the compression flag into the ECC bit of the storage area corresponding to the second physical address in the memory in association with the compressed data. It can be understood that the storage controller 504 also writes the compression mark into the storage area corresponding to the first physical address in the memory. Specifically, the storage controller 504 can also write the compression mark into the storage area corresponding to the first physical address in the memory. ECC bits for the region.
- the processing of data by different processing units or different programs has spatial locality and temporal locality, so that the corresponding data written into the memory by different processing units or different programs have their own data structures.
- the data processed by the AI core for artificial intelligence training and the data processed by the Media accelerator for streaming media have different data structures, such as different data arrangement rules, game program data and document processing program data also have different data structures.
- the embodiments of the present application use different compression algorithms for data of different data structures, and these compression algorithms can achieve the purpose of data compression by extracting the data structures of the corresponding data and rearrange the data to achieve the purpose of data compression and can improve the compression efficiency.
- the above storage control device is only an exemplary embodiment provided by the present application.
- the present application is not limited to storing the results of the control device, for example, the functions of the prediction unit, the compression unit and the decompression unit can all be implemented in the proxy unit, which is not limited here.
- the storage control apparatus may include a proxy unit 601 , a prediction unit 602 , a decompression unit 603 and a storage controller 604 .
- the arrows exemplarily represent the data when the proxy unit requests to read data from the memory. direction of flow.
- the storage control device may specifically be a chip or a chipset or a circuit board on which the chip or chipset is mounted. The chip or chip set or the circuit board on which the chip or chip set is mounted can be driven by necessary software.
- the specific functions implemented by the storage control device 20 may include the following:
- the proxy unit 601 is configured to receive a first read request from the first processing unit, where the first read request is used to request data in the storage area corresponding to the physical address of the storage block corresponding to the first physical address in the memory, the first The read request includes the identifier of the first processing unit or the first physical address; and the received identifier of the first processing unit or the received first physical address is sent to the prediction unit 602 .
- the proxy unit 601 may send a prediction request to the prediction unit 602, where the prediction request includes the identifier of the first processing unit or the first physical Address, the prediction request is used for requesting to predict the compression algorithm used when the compressed data is compressed before.
- the prediction unit 602 is configured to determine a compression algorithm according to the identifier of the first processing unit or the first physical address included in the received prediction request, and send a compression flag to the proxy unit 601, where the compression flag is used to indicate the corresponding first physical address.
- the decompression unit 603 is configured to decompress the compressed data according to the compression algorithm to obtain decompressed data; and send the decompressed data to the first processing unit through the proxy unit 601 .
- the prediction unit 602 predicts, in response to the prediction request from the proxy unit 601, the compression adopted when the compressed data is compressed according to the identifier of the first processing unit or the first physical address included in the received prediction request algorithm. Further, the prediction unit 602 sends a compression flag to the proxy unit 601, indicating the compression algorithm. In addition, when the prediction result is that the data in the storage area corresponding to the first physical address is not compressed data, the prediction unit 602 may also send indication information to the proxy unit 601, where the indication information is used to indicate that the data in the storage area corresponding to the first physical address is not compressed data. The data is not compressed data.
- the prediction unit when the prediction request received by the prediction unit includes the identifier of the first processing unit, the prediction unit is specifically configured to: determine a compression algorithm corresponding to the identifier of the first processing unit from a first configuration table, where the first configuration table includes N The identifiers of the processing units and the identifiers of the N processing units correspond to the identifiers of the compression algorithms, where N is a positive integer.
- the prediction unit when the prediction request received by the prediction unit includes the first physical address, the prediction unit is specifically configured to: determine, from a second configuration table, a compression algorithm corresponding to the first physical address, and the second configuration table includes M The physical address and the identifier of the compression algorithm corresponding to the M physical addresses, where M is a positive integer.
- the data when the amount of data is small or the compression success rate is low, the data may be written into the memory without compression.
- the prediction unit determines the data to be read according to the bandwidth utilization Whether the data is compressed data, the bandwidth utilization rate is used to indicate the bandwidth utilization rate when the storage controller 604 accesses the data from time T0 to time T1, where time T1 is the current time, and time T0 is the time before time T1.
- the prediction unit first predicts whether the compressed data is compressed according to the bandwidth utilization rate, and then determines the compression algorithm according to the above-mentioned method for determining the compression algorithm. It can be understood that in the case of low bandwidth utilization, there is still a large bandwidth available for accessing data. At this time, data does not need to be compressed; on the contrary, in the case of high bandwidth utilization, the bandwidth is not sufficient to meet the Data access, at this time, by compressing data, the amount of data can be reduced and the bandwidth can be increased.
- the following exemplarily introduces a specific implementation manner in which the prediction unit 602 performs prediction on the data in the storage area corresponding to the first physical address.
- the parameters received by the prediction unit 602 include the identifier of the first processing unit and the first physical address, and the prediction unit 602 may first determine the compression algorithm from the first configuration table according to the identifier of the first processing unit, and in the first configuration table When the identifier of the first processing unit and the identifier of the compression algorithm corresponding to the first processing unit are included, it is determined that the compression algorithm is the compression algorithm corresponding to the first processing unit; otherwise, the prediction unit 602 determines the compression algorithm from the second configuration table according to the first physical address.
- the prediction unit 602 determines that the process is to write When entering data, the compression success rate is obtained, and when the bandwidth utilization rate is greater than the second threshold, the predicted result is that the data in the storage block corresponding to the first physical address is compressed data; otherwise, the predicted result is that the storage block corresponding to the first physical address is obtained.
- the data in is not compressed data.
- the prediction unit 602 may obtain the compression algorithm most frequently used by the compression unit 605 in the current period of time as the compression algorithm for compressing the data in the storage block corresponding to the first physical address.
- the proxy unit 601 is further configured to send a second read request to the storage controller 604 when receiving the compression mark, where the second read request is used to request to read the data of the storage area corresponding to the first physical address;
- the decompression unit 603 sends the compression flag.
- the storage control apparatus further includes a compression unit 605 .
- the proxy unit 601 sends a second read request to the storage controller 604 through the compression unit 605, where the second read request is specifically used to request to read the data of the storage area corresponding to the second physical address.
- the proxy unit 601 when receiving the compression flag, sends the first read request to the compression unit 605 .
- the compression unit 605 is configured to determine the second physical address according to the target length and the first physical address, and the storage area corresponding to the first physical address includes the storage area corresponding to the second physical address; and, send the second read to the storage controller 604
- the second read request is specifically used to request to read compressed data from the storage area corresponding to the second physical address, so that the storage control responds to the second read request and reads the storage area corresponding to the second physical address. compressed data.
- the proxy unit 601 receives the response request sent by the prediction unit 602, and sends a read request to the compression unit 605 according to the response request.
- the proxy unit 601 may send a read request to the compression unit 605, where the read request is used to request to read the data of the storage area corresponding to the first physical address, and the compression unit 605 may The read request is modified to obtain a second read request, where the second read request is used to request to read the data of the storage area corresponding to the second physical address, and then the compression unit 605 can send the second read request to the storage controller 604 Read request; when the response request includes an indication that the compressed data is not compressed data, the proxy unit 601 may send a second read request to the compression unit 605 , and the compression unit 605 sends the second read request to the storage controller 604 .
- the storage controller 604 is configured to read data in the storage area corresponding to the first physical address to obtain compressed data; and, send the compressed data to the decompression unit 603;
- the storage controller 604 is further configured to read a compression flag from the storage area corresponding to the second physical address in the memory, where the compression flag is used to indicate compression in the storage area corresponding to the second physical address The compression algorithm used when the data was compressed before; and sending the compression flag to the decompression unit 603, so that the decompression unit 603 decompresses the compressed data specifically through the compression algorithm indicated by the compression flag to obtain decompressed data.
- the compression flag can also be used to indicate the compression algorithm used when the compressed data in the storage area corresponding to the first physical address is compressed. Read compression flags in the region.
- the processing unit can read the compression flag from the memory when reading the compressed data, so as to determine the compression algorithm.
- the method does not need to perform a predictive compression algorithm on the data to be read again, and the determined compression algorithm has high accuracy.
- FIG. 8 is a schematic flowchart of a method executed in a storage control apparatus provided by an embodiment of the present application. The method is applicable to the storage control apparatus in FIG. 6 or FIG. 7 and a device including the storage control apparatus.
- the storage control apparatus may include: a proxy unit, a prediction unit, a compression unit, and a storage controller, and in addition, the apparatus or device may further include a decompression unit, a plurality of processing units, and a memory.
- the memory data has the distribution characteristics of spatial locality and time locality. It can be understood that the more the amount of data, the more times of memory burst access is needed to access the data. Therefore, this method uses the technology of real-time prediction and dynamic compression to compress the memory data to improve the compression efficiency. Reduce the amount of data in the process of reading and writing memory data, thereby reducing the number of burst accesses to improve bandwidth.
- the method may include the following steps.
- the storage control device includes a proxy unit, then step S701 may be specifically performed by the proxy unit in the storage control device.
- the proxy unit receives write requests from multiple processing units at the same time, and can determine the processing order of the multiple requests according to the storage consistency protocol.
- the storage control device may be configured with a configuration table as shown in FIG. 4A and FIG. 4B , and the compression success rate from the compression unit and the decompression unit may be acquired in real time, and the storage control device may be based on the identification of the first processing unit. Or the first physical address and the configuration table determine the compression algorithm.
- the storage control apparatus includes an agent unit, and step S702 may be performed by an agent unit in the storage control apparatus.
- the agent unit determines the compression algorithm according to the identifier of the first processing unit or the first physical address, and can refer to FIG. 5 . The relevant description of the proxy unit will not be repeated here.
- the storage control apparatus may further include a prediction unit, and step S702 may be performed by the prediction unit in the storage control apparatus.
- FIG. 9 is a schematic diagram of a prediction method performed by a prediction unit provided in an embodiment of the present application.
- the parameters received by the prediction unit include the identifier of the first processing unit and the first physical address
- the storage control device first determines the compression algorithm from the first configuration table according to the identifier of the first processing unit through the prediction unit;
- the compression algorithm is determined from the second configuration table according to the first physical address.
- the compression success rate is obtained, and when the compression success rate is greater than the first threshold, the prediction result is that the first data needs to be compressed, and vice versa , and the prediction result is that the first data is not compressed.
- the compression algorithm that is most frequently used by the compression unit in the current period of time may be obtained as the compression algorithm for compressing the first data.
- the storage control device may compress the first data according to a compression algorithm to obtain compressed first data.
- the storage control device includes a compression unit, and step S703 may be specifically performed by a compression unit in the storage control device.
- step S703 may be specifically performed by a compression unit in the storage control device.
- the storage control apparatus includes a storage controller, and step S704 may be performed by the storage controller in the storage control apparatus.
- step S704 may be performed by the storage controller in the storage control apparatus.
- FIG. 10 is a schematic flowchart of a method executed in a storage control device according to an embodiment of the present application, and the method executed in the storage control device is applicable to any one of the foregoing FIGS. 1 to 7 .
- a storage control apparatus and a device including the storage control apparatus the storage control apparatus may include: a proxy unit, a prediction unit, a decompression unit and a storage controller, in addition, the apparatus or device may further include a compression unit, multiple processing units and a memory.
- the method may include the following steps.
- the storage control apparatus may receive the first read request from the first processing unit.
- the storage control device may also receive read requests from multiple processing units at the same time.
- the storage control apparatus includes a proxy unit. Specifically, the first read request from the first processing unit may be received by the proxy unit in the storage control apparatus.
- the storage control device is configured with a configuration table, and the storage control device can determine, according to the identifier of the first processing unit or the first physical address and the configuration table, the method used when the compressed data in the storage area corresponding to the first physical address is previously compressed compression algorithm.
- the storage control apparatus may include a proxy unit, and step S802 may be performed by the proxy unit in the storage control apparatus.
- step S802 may be performed by the proxy unit in the storage control apparatus.
- the storage control apparatus may further include a prediction unit, and step S802 may be performed by the prediction unit in the storage control apparatus.
- step S802 may be performed by the prediction unit in the storage control apparatus.
- the prediction unit may be configured with a configuration table as shown in FIG. 4A and FIG. 4B , and the prediction unit may acquire the compression success rate from the compression unit and the decompression unit in real time.
- the storage control device may read data in the storage area corresponding to the first physical address to obtain compressed data.
- the storage control apparatus further includes a storage controller, and step S803 may be performed by the storage controller.
- step S803 may be performed by the storage controller.
- the storage control device may decompress the compressed data according to the compression algorithm to obtain decompressed data.
- the storage control apparatus includes a decompression unit, and the decompression unit can decompress the compressed data according to a compression algorithm to obtain decompressed data.
- the decompression unit can decompress the compressed data according to a compression algorithm to obtain decompressed data.
- the storage control device may send the decompressed data to the first processing unit.
- FIG. 11 is a schematic diagram of another prediction method performed by the prediction unit provided by the embodiment of the present application. This prediction method is applicable to step S802 in FIG. 10 above.
- the parameters received by the prediction unit include the identifier of the first processing unit and the first physical address
- the storage control device first determines the compression algorithm from the first configuration table according to the identifier of the first processing unit through the prediction unit; When the identifier of the first processing unit is not included in a configuration table, the compression algorithm is determined from the second configuration table according to the first physical address.
- the predicted result is that the data in the storage area corresponding to the first physical address is compressed data; on the contrary, when the prediction unit determines that the process is to read data, the data is obtained from the storage controller. Obtain the bandwidth utilization rate.
- the bandwidth utilization rate is greater than the second threshold, the predicted result is that the data in the storage area corresponding to the first physical address is compressed data; otherwise, the predicted result is that the data in the storage area corresponding to the first physical address is obtained. The data is not compressed data.
- the prediction unit may further determine the compression algorithm used when the data requested to be read by the processing unit is compressed before.
- the parameters received by the prediction unit include the identifier of the first processing unit and the first physical address
- the storage control apparatus may, through the prediction unit, determine the storage block corresponding to the first physical address by the prediction unit according to the identifier of the first processing unit and the first configuration table.
- the data is predicted, and when the first configuration table includes the identification of the first processing unit and the identification of the compression algorithm corresponding to the first processing unit, the obtained prediction result is that the data in the storage block corresponding to the first physical address is compressed data and
- the compression algorithm for compressing the data in the storage block corresponding to the first physical address is the compression algorithm corresponding to the first processing unit.
- the data in the storage block corresponding to the first physical address is compressed It is predicted that when the second configuration table includes the first physical address and the identifier of the compression algorithm corresponding to the first physical address, the predicted result is that the data in the storage block corresponding to the first physical address is compressed data and corresponds to the first physical address.
- the compression algorithm for compressing the data in the storage block is the compression algorithm corresponding to the first physical address.
- the compression success rate is obtained, and when the bandwidth utilization rate is greater than the second threshold, the prediction result is obtained
- the data in the storage block corresponding to the first physical address is compressed data; otherwise, the prediction result obtained is that the data in the storage block corresponding to the first physical address is not compressed data.
- the compression algorithm most frequently used by the compression unit in the current period of time may be obtained as the compression algorithm for compressing the data in the storage block corresponding to the first physical address.
- the storage control device includes a proxy unit.
- the proxy unit in the storage control device may send the decompressed data to the first processing unit.
- the proxy unit may send the decompressed data to the first processing unit.
- Embodiments of the present application further provide a computer storage medium, wherein the computer storage medium may store a computer program, which, when executed, causes the execution of some or all of the steps of any one of the methods described in the above method embodiments.
- Embodiments of the present application also provide a computer program, the computer program including computer-executable instructions, when the computer-executable instructions are executed by a computer, to cause some or all of the steps of the method executed in the storage control device to be implemented.
- the embodiments of the present application may be implemented in whole or in part by software, hardware, firmware, or any combination thereof.
- software When implemented in software, it can be implemented in whole or in part in the form of a computer program product.
- the computer program product includes one or more computer program instructions.
- the computer program instructions when loaded and executed on a computer, cause in whole or in part to implement the methods or functions according to the embodiments of the present invention.
- the computer may be a general purpose computer, special purpose computer, computer network, or other programmable device.
- the computer program instructions may be stored in or transmitted from one computer readable storage medium to another computer readable storage medium, for example, the computer program instructions may be downloaded from a website, computer, server or A data center transmits to another website site, computer, server, or data center by wire (eg, coaxial cable, optical fiber, digital subscriber line DSL), or wireless (eg, infrared, wireless, microwave, etc.).
- the computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. that includes one or more available mediums integrated.
- the usable media may be magnetic media (eg, floppy disks, hard disks, magnetic tapes), optical media (eg, DVDs), or semiconductor media (eg, solid state drives, SSDs, etc.).
- the disclosed apparatus may be implemented in other manners.
- the device embodiments described above are only illustrative.
- the division of the above-mentioned units is only a logical function division. In actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated. to another system, or some features can be ignored, or not implemented.
- the shown or discussed mutual coupling or direct coupling or communication connection may be through some interfaces, indirect coupling or communication connection of devices or units, and may be in electrical or other forms.
- the units described above as separate components may or may not be physically separated, and components presented as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution in this embodiment.
- each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit.
- the above-mentioned integrated units may be implemented in the form of hardware, or may be implemented in the form of software functional units.
- the integrated units are implemented in the form of software functional units and sold or used as independent products, they may be stored in a computer-readable storage medium.
- the technical solutions of the present application can be embodied in the form of software products in essence, or the parts that contribute to the prior art, or all or part of the technical solutions, and the computer software products are stored in a storage medium , including several instructions to cause a computer device (which may be a personal computer, a server, or a network device, etc., specifically a processor in the computer device) to execute all or part of the steps of the foregoing methods in the various embodiments of the present application.
- a computer device which may be a personal computer, a server, or a network device, etc., specifically a processor in the computer device
- the aforementioned storage medium may include: U disk, mobile hard disk, magnetic disk, optical disk, Read-Only Memory (Read-Only Memory, abbreviation: ROM) or Random Access Memory (Random Access Memory, abbreviation: RAM) and so on.
- U disk mobile hard disk
- magnetic disk magnetic disk
- optical disk Read-Only Memory
- Random Access Memory Random Access Memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种存储控制装置和在存储控制装置中执行的方法,该装置可以配置成:在第一处理单元请求将第一数据写入第一物理地址对应的存储区域时,根据第一处理单元的标识或第一物理地址,确定压缩算法;根据压缩算法对第一数据进行压缩,得到压缩的第一数据;将压缩的第一数据写入存储器中第一物理地址对应的存储区域。该装置还可以配置成:在第一处理单元请求存储器中第一物理地址对应的存储区域中的压缩数据时,确定所述压缩数据之前被压缩时采用的压缩算法;读取所述压缩数据;根据所述压缩算法对所述压缩数据进行解压缩,得到解压缩的数据;将解压缩的数据发送至第一处理单元。本申请可以提升内存带宽,提高存取数据的效率。
Description
本申请涉及存储器技术领域,尤其涉及一种存储控制装置和在存储控制装置中执行的方法。
在过去的二十多年,处理器的性能以每年大约55%速度快速提升,而存储器性能的提升速度则只有每年10%左右。存储器瓶颈导致高性能处理器难以发挥出最佳性能,这对日益增长的高性能计算形成了极大的制约。
其中,存储器瓶颈包括存储器的带宽限制,在处理器对存储器的数据存取达到存储器的带宽限制时,存储控制器将对存储器的存取请求排成队列,该方法导致处理器存取数据的速度降低。现有技术中,在存储控制器写入数据时将数据压缩来优化带宽限制。但是目前的压缩效率和带宽限制仍待提高。
发明内容
本申请实施例提供了一种存储控制装置和在存储控制装置中执行的方法,该装置能够实现对写入或读取的数据进行压缩和解压,从而能够提升存储器的内存带宽以及提高存取数据的速度。
第一方面,本申请实施例提供一种存储控制装置,其配置成:在第一处理单元请求将第一数据写入存储器的第一物理地址对应的存储区域时,根据第一处理单元的标识或所述第一物理地址,确定压缩算法;根据所述压缩算法对所述第一数据进行压缩,得到压缩的第一数据;将所述压缩的第一数据写入存储器中所述第一物理地址对应的存储区域中。
本申请的实施例对于当前要写入的数据确定适应的压缩算法。现有技术中,对所有数据均采用相同的压缩算法,不同的压缩算法对不同的数据结构的数据的压缩效率不同,会导致出现压缩失败或压缩效率低的情况。不同的处理单元处理的数据的数据结构不同,同一个压缩算法对不同的处理单元的读写数据的压缩效率不同。此外,一般情况下,不同的程序所读写的数据的数据结构不同,如,办公软件的数据为文字数据,视频应用的数据为视频数据,不同的程序对应着不同的物理地址范围。本申请实施例,针对不同的处理单元要写入的数据或者针对不同程序要写入不同物理地址范围的数据确定对该数据进行压缩的压缩算法,可以提高压缩效率。本申请实施例,根据当前请求的处理单元或者当前请求的程序提供压缩算法的动态选择。
结合第一方面,在一种可能的实现方式中,所述装置包括代理单元;其中,
所述代理单元用于:接收来自所述第一处理单元的第一写入请求,所述第一写入请求用于请求将第一数据写入第一物理地址对应的存储区域,所述第一写入请求包括所述第一处理单元的标识或所述第一物理地址。
结合第一方面,在一种可能的实现方式中,所述装置还包括压缩单元,其中:
所述代理单元还用于,根据所述第一处理单元的标识或所述第一物理地址确定所述压 缩算法;
所述压缩单元用于,根据所述压缩算法对所述第一数据进行压缩,得到所述压缩的第一数据。
结合第一方面,在一种可能的实现方式中,所述装置还包括预测单元、压缩单元;
所述代理单元用于:在接收所述第一写入请求时,将所述第一处理单元的标识或所述第一物理地址发送到所述预测单元;
所述预测单元用于:根据所述第一处理单元的标识或所述第一物理地址确定所述压缩算法;
所述压缩单元用于:根据所述压缩算法对所述第一数据进行压缩,得到所述压缩的第一数据。
结合第一方面,在一种可能的实现方式中,所述预测单元用于,在确定所述压缩算法之后,向所述代理单元发送第一指示信息,所述第一指示信息用于指示对所述第一数据进行压缩的压缩算法;
所述代理单元还用于:在接收到所述第一指示信息时,向所述压缩单元发送压缩请求,所述压缩请求包括所述压缩算法和所述第一数据,所述压缩请求用于请求所述压缩单元根据所述压缩算法压缩所述第一数据而得到所述压缩的第一数据。
结合第一方面,在一种可能的实现方式中,所述预测单元用于,在确定所述压缩算法之后,向所述压缩单元发送第二指示信息,所述第二指示信息用于指示对所述第一数据进行压缩的压缩算法。
结合第一方面,在一种可能的实现方式中,所述装置还包括存储控制器,
其中,所述压缩单元用于:在得到所述压缩的第一数据之后,向所述存储控制器发送第二写入请求,所述第二写入请求用于请求将所述压缩的第一数据写入所述第一物理地址对应的存储区域;
所述存储控制器用于:响应于所述第二写入请求,将所述压缩的第一数据写入存储器中所述第一物理地址对应的存储区域。
结合第一方面,在一种可能的实现方式中,所述代理单元还用于接收来自多个处理单元的多个写入请求,根据存储一致性协议确定对多个写入请求的处理顺序。
结合第一方面,在一种可能的实现方式中,所述第一写入请求包括所述第一处理单元的标识时,所述预测单元用于:从第一配置表确定所述第一处理单元的标识对应的压缩算法,所述第一配置表包括N个处理单元的标识和所述N个处理单元的标识对应的压缩算法的标识,N为正整数。
本申请可以针对不同的处理单元,提供多种压缩算法的动态选择。由于不同的处理单元特性,导致对于一确定的处理单元,有与之对应的较为适配的压缩算法。
结合第一方面,在一种可能的实现方式中,所述第一写入请求包括所述第一物理地址时,所述预测单元还用于:从第二配置表确定所述第一物理地址对应的压缩算法,所述第二配置表包括M个物理地址范围和所述M个物理地址范围对应的压缩算法的标识,M为正整数。
结合第一方面,在一种可能的实现方式中,所述预测单元还用于,根据压缩成功率确 定是否对所述第一数据进行压缩,所述压缩成功率用于指示时间T0至时间T1内数据压缩或解缩的成功率,所述时间T1为当前时刻,所述时间T0为所述时间T1之前的时刻。
由于在压缩成功率低时,对读写数据进行压缩,极易出现压缩失败的情况,收益低且功耗大。本申请中通过压缩成功率确定是否对数据进行压缩,可以在压缩成功率高时对读写进行压缩,有效提升带宽,同时避免了压缩成功率低时出现浪费功耗的情况。
结合第一方面,在一种可能的实现方式中,所述压缩单元还用于:向所述存储控制器发送第三指示信息,所述第三指示信息用于指示所述压缩算法;
所述存储控制器还用于:在将所述压缩的第一数据写入所述存储器时,将所述第三指示信息作为压缩标记与所述压缩的第一数据关联地写入存储器中。
第二方面,本申请提供一种存储控制装置,其配置成:在第一处理单元请求读取存储器中第一物理地址的压缩数据时,根据所述第一处理单元的标识或所述压缩数据的第一物理地址,确定所述压缩数据之前压缩采用的压缩算法;读取所述压缩数据;根据所述压缩算法对所述压缩数据进行解压缩,得到解压缩数据;将所述解压缩数据发送至所述第一处理单元。
结合第二方面,在一种可能的实现方式中,所述装置包括代理单元;其中,
所述代理单元用于:接收来自所述第一处理单元的第一读取请求,所述第一读取请求用于请求所述压缩数据,所述第一读取请求包括所述第一处理单元的标识或所述第一物理地址。
结合第二方面,在一种可能的实现方式中,所述装置还包括解压单元,其中:
所述代理单元还用于,根据所述第一处理单元的标识或所述第一物理地址确定所述压缩算法;
所述解压单元用于,根据所述压缩算法对所述压缩数据进行解压缩,得到所述解压缩数据。
结合第二方面,在一种可能的实现方式中,所述装置还包括预测单元、解压单元;
所述代理单元用于:在接收所述第一读取请求时,将所述第一处理单元的标识或所述第一物理地址发送至所述预测单元;
所述预测单元用于:根据所述第一处理单元的标识或所述第一物理地址确定所述压缩算法;
所述解压单元用于:根据所述压缩算法对所述第一数据进行解压缩,得到所述解压缩数据。
结合第二方面,在一种可能的实现方式中,所述预测单元用于,在确定所述压缩算法之后,向所述代理单元发送第四指示信息,所述第四指示信息用于指示所述压缩数据之前被写入时采用的压缩算法;
所述代理单元还用于:在接收到所述第四指示信息时,向所述解压单元发送解压请求,所述解压请求用于请求根据所述压缩算法对所述第一数据进行解压缩。
结合第二方面,在一种可能的实现方式中,所述预测单元还用于,在确定所述压缩算法之后,向所述解压单元发送指示信息,用于指示所述压缩数据之前被写入时采用的压缩算法。
结合第二方面,在一种可能的实现方式中,所述装置还包括存储控制器,
其中,所述代理单元用于,向所述存储控制器发送第二读取请求,所述第二读取请求用于请求读取所述压缩数据;
所述存储控制器用于:读取所述压缩数据,得到所述第一数据;以及,将所述第一数据发送至所述解压单元;
所述解压单元用于:根据所述压缩算法对所述第一数据进行解压缩,得到所述解压缩数据;以及,通过所述代理单元将所述解压缩数据发送至所述第一处理单元。
结合第二方面,在一种可能的实现方式中,所述代理单元还用于接收来自多个处理单元的多个读取请求。
本申请提供了一种存储控制装置,应用于处理单元向存储器读取数据时,预测单元可以对要读取的数据进行预测,确定对该数据采用的压缩算法,进而,在存储控制器将读取压缩后的数据发送至解压单元时,通过解压单元对压缩后的数据进行解压缩,得到要读取的数据。可以理解的,该装置与第一方面的装置可以配套使用,也可以是同一个装置,从而实现数据的高效率的存取。
结合第二方面,在一种可能的实现方式中,所述第一读取请求包括所述第一处理单元的标识时,所述预测单元用于:从第一配置表确定所述第一处理单元的标识对应的压缩算法,所述第一配置表包括N个处理单元的标识和所述N个处理单元的标识对应的压缩算法的标识,N为正整数。
结合第二方面,在一种可能的实现方式中,所述第一读取请求包括所述第一物理地址时,所述预测单元用于:从第二配置表确定所述压缩算法,所述第二配置表包括M个物理地址范围和所述M个物理地址范围对应的压缩算法的标识,M为正整数。
结合第二方面,在一种可能的实现方式中,所述预测单元还用于,根据带宽利用率确定是否对第一数据进行压缩,所述带宽利用率用于指示时间T0至时间T1内所述存储控制器存取数据时带宽的利用率,所述时间T1为当前时刻,所述时间T0为所述时间T1之前的时刻。
结合第二方面,在一种可能的实现方式中,所述存储控制器还用于:从存储器中所述存储区域中读取压缩标记,所述压缩标记用于指示所述压缩数据之前被压缩时采用的压缩算法;以及,将所述压缩标记发送至所述解压单元;
所述解压单元具体用于:通过所述压缩标记指示的压缩算法对所述第一数据进行解压缩,得到所述解压缩数据。
第三方面,本申请提供一种在存储控制装置中执行的方法,应用于存储控制装置,所述的装置包括:代理单元、预测单元、压缩单元和存储控制器;所述方法包括:
接收来自所述第一处理单元的第一写入请求,所述第一写入请求用于请求将第一数据写入第一物理地址对应的存储区域,所述第一写入请求包括所述第一处理单元的标识或所述第一物理地址;
根据所述第一处理单元的标识或所述第一物理地址确定压缩算法;
根据所述压缩算法对所述第一数据进行压缩,得到压缩的第一数据;
将所述压缩的第一数据写入存储器中所述第一物理地址对应的存储区域。
第四方面,本申请提供一种在存储控制装置中执行的方法,其特征在于,应用于存储控制装置,所述的装置包括代理单元、预测单元、解压单元和存储控制器;所述方法包括:
接收来自第一处理单元的第一读取请求,所述第一读取请求用于请求存储器中第一物理地址的压缩数据,所述第一读取请求包括所述第一处理单元的标识或所述第一物理地址;
根据所述第一处理单元的标识或所述第一物理地址确定对所述压缩数据之前压缩时采用的压缩算法;
读取所述压缩数据;
根据所述压缩算法对所述压缩数据进行解压缩,得到解压缩数据;
将所述解压缩数据发送至所述第一处理单元。
第五方面,本申请提供一种半导体芯片,可包括上述第一方面中的任意一种实现方式所提供的存储控制装置。
第六方面,本申请提供一种半导体芯片,可包括上述第二方面中的任意一种实现方式所提供的存储控制装置。
第七方面,本申请提供一种半导体芯片,可包括:上述第一方面中的任意一种实现方式所提供的存储控制装置、耦合于所述存储控制装置的内部存储器以及外部存储器。
第八方面,本申请提供一种半导体芯片,可包括:上述第二方面中的任意一种实现方式所提供的存储控制装置、耦合于所述存储控制装置的内部存储器以及外部存储器。
第九方面,本申请提供一种半导体芯片,可包括上述第一方面中的任意一种实现方式所提供的存储控制装置中的预测单元和压缩单元。
第十方面,本申请提供一种半导体芯片,可包括上述第二方面中的任意一种实现方式所提供的存储控制装置中的预测单元和解压单元。
第十一方面,本申请提供了一种芯片系统,该芯片系统包括上述第一方面中的任意一种实现方式所提供的存储控制装置。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器被执行时实现上述第三方面中任意一项方法流程。该芯片系统,可以由芯片构成,也可以包含芯片和其它分立器件。
第十二方面,本申请提供了一种芯片系统,该芯片系统包括上述第二方面中的任意一种实现方式所提供的存储控制装置。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器被执行时实现上述第四方面中任意一项方法流程。该芯片系统,可以由芯片构成,也可以包含芯片和其它分立器件。
第十三方面,本申请提供一种处理装置,该处理装置具有实现上述第一方面中的任意一种存储控制装置的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第十四方面,本申请提供一种处理装置,该处理装置具有实现上述第二方面中的任意一种存储控制装置的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第十五方面,本申请提供一种终端,该终端包括存储控制装置,该存储控制装置为上述第一方面中的任意一种实现方式所提供的存储控制装置。该终端还可以包括存储器,存 储器用于与存储控制装置耦合,其保存程序指令和数据。该终端还可以包括通信接口,用于该终端与其它设备或通信网络通信。
第十六方面,本申请提供一种终端,该终端包括存储控制装置,该存储控制装置为上述第二方面中的任意一种实现方式所提供的存储控制装置。该终端还可以包括存储器,存储器用于与存储控制装置耦合,其保存终端必要的程序指令和数据。该终端还可以包括通信接口,用于该终端与其它设备或通信网络通信。
第十七方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,该计算机程序被存储控制装置执行时实现上述第三方面中任意一项所述的在存储控制装置中执行的方法流程。
第十八方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,该计算机程序被存储控制装置执行时实现上述第四方面中任意一项所述的在存储控制装置中执行的方法流程。
第十九方面,本发明实施例提供了一种计算机程序,该计算机程序包括指令,当该计算机程序被存储控制装置执行时,使得存储控制装置可以执行上述第三方面中任意一项所述的在存储控制装置中执行的方法流程。
第二十方面,本发明实施例提供了一种计算机程序,该计算机程序包括指令,当该计算机程序被存储控制装置执行时,使得存储控制装置可以执行上述第四方面中任意一项所述的在存储控制装置中执行的方法流程。
需要说明的是,本申请第二方面、第三方面和第三方面的部分可能实施方式与第一方面的部分实施方式构思一致,其所带来的有益效果可以参考第一方面的有益效果,因此不再赘述。
图1为本申请实施例提供的一种计算系统架构示意图;
图2为本申请实施例提供的一种处理单元的结构示意图;
图3为本申请实施例提供的一种存储器的结构示意图;
图4A为本申请实施例提供的一种第一配置表的示意图;
图4B为本申请实施例提供的一种第二配置表的示意图;
图5为本申请实施例提供的一种存储控制装置的示意图;
图6为本申请实施例提供的另一种存储控制装置的示意图;
图7为本申请实施例提供的又一种存储控制装置的示意图;
图8为本申请实施例提供的一种在存储控制装置中执行的方法的流程示意图;
图9为本申请实施例提供的一种预测方法的示意图;
图10为本申请实施例提供的一种在存储控制装置中执行的方法的流程示意图;
图11为本申请实施例提供的另一种预测方法的示意图。
下面将结合本申请实施例中的附图,对本申请实施例进行描述。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件的上述任一种。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
首先,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
1、集成电路(Integrated Circuit,IC)
IC是一种微型电子器件或部件。采用一定的工艺,把一个电路中所需的晶体管、电阻、电容和电感等元件及布线互连一起,制作在一小块或几小块半导体晶片或介质基片上,然后封装在一个管壳内,成为具有所需电路功能的微型结构;即IC芯片是将大量的微电子元器件(晶体管、电阻、电容等)形成的集成电路放在一块塑基上,做成一块芯片。
本申请实施例中,存储控制装置的部分单元可以单独集成一块芯片,例如,存储控制装置中的压缩单元、预测单元和解压单元可以单独集成一块芯片,再将该芯片与处理器、存储控制器和存储器等互连以执行本申请提供的在存储控制装置中执行的方法。
2、知识产权核(Intellectual property Core,IP Core)
知识产权核是具有知识产权的集成电路芯核的简称,简称IP核。IP核是一种预先设计好的甚至已经过验证的具有某种特定功能的集成电路、器件或部件。按IP核的硬件描述级实现程序,可将它分为三类:软核、硬核和固核。其中,
软核:主要描述功能,以HDL(硬件描述语言)文本形式提交给用户。
固核:主要描述结构,介于软核和硬核之间,以门电路级网表的形式提供给用户。
硬核,基于物理描述,并已经过工艺验证,以电路物理结构掩模板图和全套工艺文件提供给用户。
本申请实施例中的处理单元(Master)可以为知识产权核。
3、多核操作系统(multi-core operating system)
多核操作系统是在多核处理单元上运行的能够发挥多核计算能力的操作系统。其中,多核(multicore)是指在一枚处理单元(processor)中集成两个或多个完整的计算引擎(内核)。可以理解的,多核操作系统包括多个处理核。需要说明的是,处理核又可以称为处理单元,处理核可以是知识产权核。
多核操作系统实现了“分治法”战略,通过划分任务,线程应用能够充分利用多个执行内核,并可在特定的时间内执行更多任务。多核处理单元是单枚芯片(也称为“硅核”),能够直接插入单一的处理单元插槽中,但操作系统会利用所有相关的资源,将它的每个执行内核作为分立的逻辑处理单元。通过在两个执行内核之间划分任务,多核处理单元可在特定的时钟周期内执行更多任务。
多核技术能够使服务器并行处理任务,此前,这可能需要使用多个处理单元,多核系统更易于扩充,并且能够在更纤巧的外形中融入更强大的处理性能,这种外形所用的功耗更低、计算功耗产生的热量更少。
本申请实施例提供的存储控制装置可以应用于多核系统中,多核系统中的多个处理单元可以通过存储控制装置将数据压缩后写入存储器中,也可以通过存储控制装置将存储器中的压缩数据进行解压缩,从而获取解压缩后的数据。
4、存储器(Memory)
存储器是用来存储程序和各种数据信息的记忆部件。存储器包括多种类型,以下示例性介绍四种类型的处理器。
(1)随机存取存储器(Random Access Memory,RAM),用来存储和保存数据。它在任何时候都可以读写,RAM通常是作为操作系统或其他正在运行程序的临时存储介质(可称作系统内存)。当电源关闭时RAM不能保留数据,如果需要保存数据,就必须把它们写入到一个长期的存储器中(例如硬盘)。
(2)随机存取存储器RAM可以进一步分为:静态随机存储(Static Random Access Memory,SRAM),和动态随机存储(Dynamic Random Access Memory,DRAM)两大类。这两者基本原理上有相同的地方,都是将电荷存储到记忆体内部,其中,SRAM的结构比较复杂,单位面积的容量少,存取速度很快;DRAM则结构简单,单位面积存储的容量比较多,存取时间相对SRAM慢,同时DRAM因为构造比较简单,存储的电荷会随着时间逐渐消失,因此需要定时再充电(Refresh),以保持电容存储的资料。
(3)双倍速率同步动态随机存取存储器(Double Data Rate Synchronous Dynamic Random Access Memory,DDR SDRAM),简称DDR,DDR内存是在SDRAM内存基础上发展而来的,仍然沿用SDRAM生产体系,因此对于内存厂商而言,只需对制造普通SDRAM的设备稍加改进,即可实现DDR内存的生产,可有效的降低成本。与传统的单数据速率相比,DDR技术实现了一个时钟周期进行两次读/写操作,即在时钟的上升沿和下降沿分别执行一次读/写操作。
(4)只读存储器(Read Only Memory,ROM),是一种只能读出事先所存数据的固态半导体存储器。其特性是一旦储存资料就无法再将之改变或删除。通常用在不需经常变更资料的电子或电脑系统中,并且资料不会因为电源关闭而消失。
为了更好地理解本申请实施例提供的一种存储控制装置和在存储控制装置中执行的方法,下面先对本申请实施例使用的系统架构进行描述。
请参见图1,图1为本申请实施例提供的一种计算系统架构示意图。如图1所示,该系统架构包括处理模块10、存储控制装置20和存储器30。其中,处理模块10可以包括一个或多个处理单元。其中:
如图1所示,处理模块10可以包括第一处理单元、第二处理单元….第W处理单元等多个处理单元,其中,W为正整数。其中,处理单元可以是中央处理器(Central processing unit,CPU)、图形处理器(Graphics processing unit,GPU)、人工智能核(AI core)和媒体(media)加速器等IP核,在单核或多核系统中需要从存储器中进行读写访问的IP核均可以作为处理单元。应理解,处理单元也可以称为处理器。
请参见图2,图2为本申请实施例提供的一种处理单元的结构示意图。如图2所示,处理模块10为一个多核处理器,其包括主处理核101、以及耦合于所述主处理核101的一个或多个从处理核102,图2中以K个从处理核102为例,包括从处理核1(Core1)、从处理核2(Core2)、从处理核3(Core3)、从处理核4(Core4)……从处理核(K-1)(Core(K-1))和从处理核K(CoreK)。该K个从处理核102均包含配置接口,分别为配置接口1、配置接口2、配置接口3、……配置接口K-1、配置接口K。主处理核101可通过上述配置接口对相应的从处理核102进行相关的配置和控制。可选的,主处理核101和所述一个或多个从处理核102可位于一个或多个IC中,例如,主处理核101和所述一个或多个从处理核102可位于一个IC中,或者,主处理核101位于一个IC中,所述一个或多个从处理核102中的部分或全部位于另一个IC中,本发明实施例对此不作具体限定。可以理解的是,主处理核101与N个从处理核102之间可通过总线或其他方式耦合通信,图2中所示意的连接关系并不对其之间的耦合关系构成限制。
需要说明的是,存储控制装置可以分别接收来自处理模块10中的每一个处理单元的请求,根据每一个处理单元的请求存取数据。
存储器30可以是通用的存储器结构,例如,存储器30可以是通用的随机存取存储器或掉电易失性存储设备,如静态随机存取存储器、动态随机存取存储器或同步动态随机存储器、双倍速率SDRAM(Dual Data Rate SDRAM,DDR SDRAM)等;存储器30也可以是通用的只读存储器或非掉电易失性存储器,如可编程ROM(Programmable ROM,PROM)、可擦写可编程ROM(Erasable Programmable ROM,EPROM)、电可擦除可编程ROM(Electrically Erasable Programmable ROM,EEPROM)、快速擦写ROM(FLASH ROM)等;存储器30还可以是处理器上的通用寄存器、闪存、或任何其他合适类型存储器。可以理解的是,若存储器30为RAM,则待匹配的数据是可以变化的,若存储器30为ROM,则待匹配的数据为固化在存储器30中的数据。需要说明的是,关于存储器30具体以何种形式来存储待匹配的数据本申请不作具体限定,可以依据实际的需求或业务情况,作相关的变化。
请参见图3,图3为本申请实施例提供的一种存储器30的结构示意图。如图3所示,存储器包括X个缓存行(cacheline),图中示例性以第一缓存行至第X缓存行表示,其中, 每一个缓存行各自分为Z个存储块,图中示例性以第一存储块至第Z存储块表示多个存储块,X为大于零的正整数,Z为大于零的正整数。其中,Z个存储块中每一个存储块的大小可以为读取或写入到存储器最小量的数据(即,存储器存储存取粒度),例如,缓存行包括X个缓存行中每一个缓存行均包括128个字节,每一个缓存行包括两个64字节的存储块。需要说明的是,Z个存储块中每一个存储块对应一个或多个校验(Error Correcting Code,ECC)位相关联,其中,ECC位为可以用来存储对应存储块的信息,例如,本申请实施例中ECC位中可存储对应存储块中的压缩数据的压缩标记,该压缩标记用于指示该数据之前被压缩时采用的压缩算法。
如图1所示,处理模块10和存储控制装置20也可以组成一个多核系统。需要说明的是,图1所示的系统架构并不对本申请实施例中的存储控制系统的各个元件之间的集成造成限制。
需要说明的是,图1中的计算系统架构只是本申请实施例中的一种示例性的实施方式,本申请实施例中的计算系统架构包括但不仅限于以上计算系统架构。应理解,图1并不对该系统中的各个部件的耦合造成限定。
具体的,处理模块10可以通过存储控制装置20将数据写入存储器30中,其中,存储控制装置20可以对数据进行压缩,进而,将压缩后的数据写入存储器30中;处理模块10也可以通过存储控制装置20从存储器30中读取数据,若存储器30中的数据为压缩数据,存储控制装置20可以对该压缩数据进行解压缩,进而,将解压缩的数据发送至处理模块10。
在一些实施例中,在第一处理单元请求将第一数据写入第一物理地址对应的存储区域时,根据第一处理单元的标识或第一物理地址,确定压缩算法,根据确定的压缩算法对第一数据进行压缩,将压缩后的第一数据写入存储器中。
如图1所示,该存储控制装置20可以配置有第一配置表和/或第二配置表,其中,第一配置表可以包括N个处理单元的标识和N个处理单元的标识每个分别对应的压缩算法的标识,N为正整数;第二配置表可以包括M个物理地址范围和M个物理地址范围对应的压缩算法的标识,M为正整数。
请参见图4A,图4A为本申请实施例提供的一种第一配置表的示意图。如图4A所示,配置表包括至少一个处理单元的标识和至少一个处理单元的标识中每一个处理单元的标识对应的压缩算法的标识,图中示例性的以第一标识、第二标识、第三标识和第四标识代表四个不同的处理单元的标识,以第一算法标识、第二算法标识和第三算法标识代表三个不同的压缩算法的标识,图中第一标识对应第一算法标识,第二标识对应第二算法标识,第三标识对应第三算法标识,第四标识对应第一算法标识。需要说明的是,由于不同的处理单元处理的数据的数据结构不同,且同一个压缩算法对不同的处理单元的读写数据的压缩效率不同,故可以根据处理单元和压缩该处理单元的压缩效率最高的压缩算法预设第一配置表,根据该第一配置表确定数据对应的压缩算法可以提高压缩效率。
本申请实施例在根据处理单元的标识来确定压缩算法的情形中可以针对不同的处理单元,提供多种压缩算法的动态选择。本申请提到的处理单元可以是CPU,GPU,AI Core,Media加速器等处理核,还可以是其他类型的处理核,此处不作限定。由于不同的处理单 元处理的数据的数据结构不同,因此同一个压缩算法对不同的处理单元的读写数据的压缩效率不同,本申请实施例可以分别对不同处理单元设置适配的压缩算法,对于当前该处理单元请求写入的数据选择适配的压缩算法,以提高压缩效率。
请参见图4B,图4B为本申请实施例提供的一种第二配置表的示意图。如图4B所示,配置表包括至少一个物理地址范围和至少物理地址范围中每一个物理地址范围的标识对应的压缩算法的标识,图中示例性的以三个物理地址为例,以第一算法标识、第二算法标识和第三算法标识代表三个不同的压缩算法的标识。需要说明的是,不同的程序所读写的数据的数据结构不同(例如,办公软件的数据为文字数据,视频应用的数据为视频数据,不同的程序对应着不同的物理地址范围)。其中,不同程序对应的物理地址范围可以是固定规则,也可以是人为划分的,例如,可以根据该程序日常使用的数据量的大小确定该程序的物理地址范围。由于不同的程序所读写的数据的数据结构不同,不同的程序对应这不同的物理地址范围,因此,不同数据结构的数据对应不同的物理地址范围。又因为不同的压缩算法对不同数据结构的数据的压缩效率不同,因此,根据可以预设第二配置表,进而,通过第二配置表对不同物理地址的数据采用该物理地址对应的数据压缩效率最佳的压缩算法,可以提高压缩效率。
本申请的实施例在根据物理地址来确定压缩算法的情形中对于当前要写入的数据确定适应的压缩算法。一般情况下,不同的程序所读写的数据的数据结构不同,如,办公软件的数据为文字数据,视频应用的数据为视频数据,不同的程序对应着不同的物理地址范围。本申请实施例,针对不同程序要写入不同物理地址范围的数据确定对该数据进行压缩的压缩算法,可以提高压缩效率。
在一种可能的实现方式中,例如,在存储控制装置20从第一处理单元接收到第一处理单元的标识和第一物理地址二者时,存储控制装置20可以优先根据第一处理单元的标识从第一配置表确定压缩算法。在第一配置表中未包括与第一处理单元标识对应的压缩算法时,存储控制装置20可以根据第一物理地址从第二配置表确定压缩算法。进而,存储控制装置20可以根据压缩算法对第一数据进行压缩,得到压缩后的第一数据,之后将压缩后的第一数据写入存储器中第一物理地址对应的存储区域中。其中,存储控制装置20还可以根据压缩算法和第一数据修改地址长度,得到第二物理地址,从而将压缩后的第一数据写入存储器中第二物理地址对应的存储区域,第一物理地址对应的存储区域包括该第二物理地址对应的存储区域。
在一种可能的实现方式中,存储控制装置20在将压缩数据写入存储器30时,将与该压缩数据关联的压缩标记存储在存储器中,所述压缩标记用于指示该压缩算法,具体的,存储控制装置可以将压缩标记写入第一物理地址或第二物理地址对应的存储区域的ECC位。
进一步的,在处理模块10请求读取压缩数据时,存储控制装置20可以读取压缩数据关联的压缩标记,根据该压缩标记指示的压缩算法对该压缩数据进行解压缩,得到解压缩的数据,最后将解压缩的数据发送至处理模块10。
在另一种可能的实现方式中,在写入压缩数据时,存储控制装置20可以不需要将压缩标记写入存储器30。存储控制装置20可以在读取该压缩数据之前确定该压缩数据之前被 压缩时采用的压缩算法,进而,在读取到该压缩数据后,根据该压缩算法对该压缩数据进行解压,得到解压缩数据。
具体地,在第一处理单元请求读取存储器中第一物理地址对应的存储区域中的数据时,确定对第一物理地址对应的存储区域中的压缩数据之前被压缩时采用的压缩算法。例如,第一处理单元向存储控制装置20发送读取请求时,读取请求包括第一处理单元的标识或者第一物理地址,存储控制装置20可以根据接收到的第一处理单元的标识或者第一物理地址分别从第一配置表或者第二配置表,确定之前压缩时采用的压缩算法。在读取请求包括第一处理单元的标识和第一物理地址二者情况下,存储控制装置20可以先确定第一配置表中是否包括第一处理单元的标识,进而,如果在第一配置表中未包括与第一处理单元的标识对应的压缩算法,则根据第一物理地址从第二配置表确定压缩算法。进而,存储控制装置20可以读取第一物理地址对应的存储区域的压缩数据;根据确定的压缩算法对该压缩数据进行解压缩;将解压缩的数据发送至第一处理单元。需要说明的是,存储控制装置在写入数据时确定压缩算法的过程与读取数据时确定压缩算法的过程相同,以确保在读取压缩数据时可以得到之前对该压缩数据进行压缩的算法。
请参见图5,图5为本申请实施例提供的适用于图1的一种存储控制装置的示意图。如图5所示,该存储控制装置可以包括代理单元(home agent,又可以称为归属代理单元)401、压缩(compress)单元402、解压单元403和存储控制器(memory controler,又可以称为内部存储器控制器)404。
在处理单元(例如,第一处理单元)请求写入的情形中,该存储控制装置400具体所实现的功能可包括如下:
代理单元401用于:在接收来自第一处理单元的第一写入请求时,根据第一处理单元的标识或者第一物理地址确定压缩算法。例如,该第一写入请求包括第一处理单元的标识或者第一物理地址;
例如,代理单元401包含上述第一配置表,在代理单元401接收到的第一写入请求包括第一处理单元的标识时,代理单元401可以根据第一处理单元的标识从第一配置表中确定压缩算法。进一步的,代理单元401还可以向压缩单元402发送压缩标记,该压缩标记用于指示该压缩算法。
又例如,代理单元401包含上述第二配置表,在代理单元401接收到的第一写入请求包括第一物理地址时,代理单元401可以根据第一物理地址从第二配置表中确定压缩算法。进一步的,代理单元401还可以向压缩单元402发送压缩标记,该压缩标记用于指示该压缩算法。
压缩单元402用于:根据压缩算法对第一数据进行压缩,得到压缩的第一数据;
压缩单元402用于:在得到压缩的第一数据之后,向存储控制器404发送第二写入请求,第二写入请求用于请求将压缩的第一数据写入第一物理地址对应的存储区域;具体地,所述第二写入请求包括所述压缩的第一数据。
压缩单元402还用于:在得到压缩的第一数据之后,向存储控制器404发送压缩标记,该压缩标记用于指示对该压缩的第一数据进行压缩的压缩算法。
存储控制器404用于:响应于第二写入请求,将压缩的第一数据写入存储器中第一物 理地址对应的存储区域。
在一些实施例中,压缩单元402可以根据第一数据和压缩算法对第一物理地址进行修改,得到第二物理地址,第一物理地址对应的存储区域包括第二物理地址对应的存储区域。进而,存储控制器404可以将压缩的第一数据写入第二物理地址对应的存储区域。
存储控制器404还用于:在存储压缩数据时,将压缩标记与压缩的第一数据关联地写入存储器中。
在一些实施例中,在代理单元401接收到的第一写入请求包括第一处理单元的标识和第一物理地址二者时,代理单元401可以优先根据第一处理单元的标识从第一配置表确定压缩算法。在第一配置表中未包括与第一处理单元的标识对应的压缩算法时,代理单元401可以根据第一物理地址从第二配置表确定压缩算法。进而,压缩单元402可以根据确定的压缩算法对第一数据进行压缩,得到压缩的第一数据,最后,将压缩的第一数据写入存储器中第一物理地址对应的存储区域中。
在处理单元(例如,第一处理单元)请求读取存储器中的数据(例如,压缩数据)时,该存储控制装置具体所实现的功能可包括如下:
在一些实施例中,存储控制器404在读取压缩数据时,可以读取存储器中存储的该压缩数据关联的压缩标记,从而解压单元403可以根据压缩标记指示的压缩算法对压缩数据进行解压,得到解压缩数据。
在另一些实施例中,存储控制装置在写入压缩数据时不需要将压缩标记写入存储器30,存储控制装置20可以在读取压缩数据之前可以根据处理单元的标识或者物理地址来确定该压缩数据之前被压缩时采用的压缩算法,进而,在读取到该压缩数据后,根据该压缩算法对该压缩数据进行解压,得到解压缩数据。
具体而言,代理单元401用于:在接收来自第一处理单元或者其他处理单元的针对该第一物理地址对应的存储区域的第一读取请求时,根据第一处理单元的标识或者第一物理地址确定压缩算法,该第一读取请求包括第一处理单元的标识或第一物理地址。例如,代理单元401根据第一处理单元的标识或者第一物理地址来确定之前采用的压缩算法。进而,代理单元401向解压单元403发送压缩标记,该压缩标记用于指示确定的压缩算法。需要说明的是,写入和读取同一数据的处理单元在配置表中对应的压缩算法相同,以确保读取压缩数据的处理单元能够确定该压缩数据之前被压缩时采用的压缩算法;
代理单元401还用于,向存储控制器404发送第二读取请求,第二读取请求用于请求读取第一物理地址对应的存储区域的数据;
存储控制器404用于:响应于第二读取请求,读取第一物理地址对应的存储区域的数据,得到解压缩数据;以及,将解压缩数据发送至解压单元403;
解压单元403用于:根据压缩标记指示的压缩算法对解压缩数据进行解压缩,得到压缩数据;以及,通过代理单元401将压缩数据发送至第一处理单元。
其中,存储控制器404可以是本领域已知的各种控制对存储器写入或者读取的装置。
本发明提到的代理单元可以是本领域已知的用于保证存储一致性的代理单元,例如,是多核系统中管理维护数据一致性的模块,多个处理单元对存储器数据的读写时分别向代理单元发出请求。例如,代理单元可以同时接收来自多个处理单元的写入请求,可以根据 存储一致性协议确定对多个写入请求的处理顺序。需要说明的是,代理单元还可以是其他类型的处理单元,此处不作限定。
需要说明的是,存储控制装置中的部分单元可以单独集成在一个芯片上,例如,压缩单元402和解压单元403可以单独集成在一个芯片上。
请参见图6,图6为本申请实施例提供的另一种存储控制装置的示意图。如图6所示,存储控制装置中可以设置预测(predict)单元,预测单元可以用于根据第一处理单元的标识或第一物理地址确定压缩算法。在本实施例中,预测单元可以包括上面描述的第一配置表和/或第二配置表。此外,在第一配置表中未包含与第一处理单元的标识对应的压缩算法,并且第二配置表未包含与第一物理地址对应的压缩算法时,预测单元还可以用于根据压缩成功率确定是否对第一数据进行压缩。
如图6所示,该存储控制装置可以包括代理单元501、预测单元502、压缩单元503和存储控制器504。可选的,该存储控制装置具体可以是芯片或芯片组或搭载有芯片或者芯片组的电路板,图6中通过箭头示例性的表示了在代理单元请求向存储器写入数据时数据流的方向。该芯片或芯片组或搭载有芯片或芯片组的电路板可在必要的软件驱动下工作。
在代理单元请求向存储器写入数据时,该存储控制装置50具体实现如下:
代理单元501,用于接收来自第一处理单元的第一写入请求,该第一写入请求用于请求将第一数据写入第一物理地址对应的存储区域,第一写入请求包括第一处理单元的标识或者第一物理地址,以及,将接收的第一处理单元的标识或者第一物理地址发送至预测单元502。其中,第一处理单元的标识可以为第一处理单元的身份标识(Identity,ID)。
在一种可能的实现方式中,代理单元501可以向预测单元502发送预测请求,该预测请求携带参数信息,例如,第一处理单元的标识或者第一物理地址,该预测请求用于请求对第一数据进行压缩的压缩算法。
预测单元502,用于根据所述参数信息(例如第一处理单元的标识或者第一物理地址)确定所述压缩算法;以及,向所述代理单元发送第一指示信息,所述第一指示信息用于指示对所述第一数据进行压缩的压缩算法。备选地,预测单元502可以在确定所述压缩算法之后,直接将确定的压缩算法发送给压缩单元503。
在一些实施例中,接收的参数信息为所述第一处理单元的标识,所述预测单元用于:从第一配置表,确定所述第一处理单元的标识对应的压缩算法,所述第一配置表包括N个处理单元的标识和所述N个处理单元的标识对应的压缩算法的标识,N为正整数。
例如,预测单元502接收到第一处理单元的标识为第一标识时,预测单元502可以从第一配置表确定对第一数据进行压缩的压缩算法为第一算法。
在另一些实施例中,预测单元接收的参数信息为所述第一物理地址,所述预测单元还用于:从第二配置表,确定所述第一物理地址对应的压缩算法,所述第二配置表包括M个物理地址范围和所述M个物理地址范围对应的压缩算法的标识,M为正整数。
例如,预测单元502接收到第一物理地址时,预测单元502可以在第二配置表查询第一物理地址,进而,可以确定第二配置表中包括第一物理地址,且第一物理地址对应第一算法,则预测单元502可以得到预测结果为第一数据需要压缩以及对第一数据进行压缩的压缩算法为第一算法。需要说明的是,第二配置表中不同的物理地址可以对应同一个压缩 算法,第二配置表可以跟上述文中所述第二配置表为一个配置表。
进一步地,预测单元还可以用于,根据压缩成功率确定是否对第一数据进行压缩,压缩成功率用于指示时间T0至时间T1内数据压缩或解缩的成功率,其中,时间T1为当前时刻,时间T0为时间T1之前的时刻。具体的,在压缩成功率大于第一阈值时,预测单元确定对第一数据进行压缩;在压缩成功率小于第一阈值时,预测单元确定不对第一数据进行压缩,其中,第一阈值可以是预设值。可以理解的,由于在压缩成功率低时,对读写数据进行压缩,极易出现压缩失败的情况,收益低且功耗大。本申请中通过压缩成功率确定是否对数据进行压缩,可以在压缩成功率高时对读写进行压缩,有效提升带宽,同时避免了压缩成功率低时出现浪费功耗的情况。
例如,在压缩之前,预测单元可以根据压缩成功率确定是否对第一数据进行压缩,在确定要压缩之后,根据第一处理单元的标识或者物理地址确定压缩算法。
在另一些实施例中,在预测单元502接收到参数信息包括第一处理单元的标识和第一物理地址二者时,预测单元502可以优先根据接收的第一处理单元的标识从第一配置表确定压缩算法。如果第一配置表中未包含第一处理单元的标识,则预测单元502再根据接收的第一物理地址从第二配置表中确定压缩算法。进一步的,如果第二配置表未包含第一物理地址,则预测单元502可以从压缩单元503和/或解压单元505获取压缩成功率,根据压缩成功率确定是否对第一数据进行压缩,在确定要压缩之后,根据预设的压缩算法对数据进行压缩。例如,具体的,在压缩成功率大于第一阈值时,确定第一数据需要压缩,反之,不对第一数据进行压缩。其中,在压缩成功率大于第一阈值时,预测单元502可以获取当前一段时间内压缩单元503使用的频率最高的压缩算法作为压缩第一数据的压缩算法,也可以采用默认的压缩算法。
本申请实施例中,上述第二配置表中的物理地址可以是物理地址范围,此处不做限制。实验结果表明,本申请实施例在Hi1951系列芯片上使用,ESL测试宽带性能提升8%。
该存储控制装置50还可以包括解压单元505,解压单元505用于向预测单元发送第二成功率,该第二成功率用于指示时间T0至时间T1内解压单元505解压数据的成功率,其中,时间T1为当前时刻,时间T0为时间T1之前的时刻。例如,预测单元502可以从压缩单元503中获取第一成功率,该第一成功率用于指示时间T0至时间T1内压缩单元503压缩数据的成功率,以及从解压单元505获取第二成功率,进而,根据第一成功率和第二成功率确定压缩成功率。需要说明的是,压缩成功率可以为第一成功率,也可以为第二成功率,还可以为第一成功率和第二成功率的和,此处不作限定。
需要说明的是,本申请实施例提供的预测单元仅是一种示例。预测单元可以是单独设置的单元,也可以是代理单元中的组成部分。或者是,代理单元可以执行上述预测单元的功能,此处不作限定。
代理单元501,还用于在从预测单元502接收到第一指示信息时,向所述压缩单元503发送压缩请求,所述压缩请求用于请求所述压缩单元根据所述压缩算法压缩所述第一数据,所述压缩请求包括所述压缩算法和所述第一数据。备选地,预测单元502在确定压缩算法之后,将压缩算法发送给压缩单元503;代理单元501在从预测单元502接收到所述第一指示信息时,向所述压缩单元503发送压缩请求,所述压缩请求包括所述第一数据而无需 包括所述压缩算法。
压缩单元503,用于根据该压缩算法对第一数据进行压缩,得到压缩的第一数据,即压缩数据;以及,向将存储控制器504发送第二写入请求,第二写入请求用于请求将压缩数据写入第一物理地址对应的存储区域。
具体的,压缩单元503可以在接收到代理单元501发送的压缩请求时,根据压缩算法对第一数据进行压缩,得到压缩后的第一数据,进而向存储控制器504发送第二写入请求,第二写入请求用于请求将压缩后的第一数据写入第一物理地址对应的存储区域。
此外,压缩单元503,在将第一数据压缩时,还用于根据目标长度和第一物理地址,确定第二物理地址,目标长度为压缩后的第一数据的长度,第一物理地址对应的存储区域包括第二物理地址对应的存储区域;压缩单元503向存储控制器504发送的第二写入请求用于请求将压缩数据写入存储器中第二物理地址对应的存储区域,以使存储控制器504响应于第二写入请求,将压缩后的第一数据写入存储器中第二物理地址对应的存储区域。
具体的,压缩单元503可以根据压缩后的第一数据的长度对第一物理地址进行修改,得到第二物理地址。例如,压缩单元503对第一数据进行压缩后,得到的压缩后的第一数据的数据长度为第一数据的数据长度的一半,第一物理地址对应存储器中的两个存储块,则第二物理地址的对应的存储块可以为第一物理地址对应的存储块中的一个。需要说明的是,压缩单元503可以设定将第一数据高位还是低位写入存储器,从而,从第一物理地址对应的两个存储块中确定一个存储块为第二物理地址对应的存储区域。
在一种可能的实现方式中,压缩单元503,还用于向存储控制器504发送压缩标记,所述压缩标记用于指示所述压缩算法,以使存储控制器504将该压缩标记写入压缩数据所存储的存储块,例如,第一物理地址或第二物理地址对应的存储区域的ECC位。
存储控制器504,用于响应于第二写入请求,将压缩数据写入存储器中第一物理地址对应的存储区域。
在一种可能的实现方式中,第二写入请求用于请求将压缩数据写入存储器中第二物理地址对应的存储区域,存储控制器504,用于将压缩数据写入存储器中第二物理地址对应的存储区域。
在一种可能的实现方式中,存储控制器504,还用于在将压缩数据写入存储器时将压缩标记写入存储器中。具体地,存储控制器504,可以将压缩标记与压缩数据关联地写入存储器中第二物理地址对应的存储区域的ECC位。可以理解的,存储控制器504也即是将压缩标记写入存储器中第一物理地址对应的存储区域,具体的,存储控制器504也可以将压缩标记写入存储器中第一物理地址对应的存储区域的ECC位。
需要说明的是,不同的处理单元或者不同的程序对数据的处理存在空间局部性和时间局部性,导致不同的处理单元或者不同的程序写入存储器中的对应数据具有各自的数据结构。例如,AI core进行人工智能训练时处理的数据和Media加速器对流媒体处理的数据具有不同的数据结构,例如不同的数据排列规律,游戏程序的数据和文档处理程序的数据也具有不同的数据结构。本申请实施例对不同数据结构的数据采用不同的压缩算法,这些压缩算法通过提取相应数据的数据结构,对数据进行重新排列,达到数据压缩的目的,可以 提高压缩效率。
需要说明的是,上述存储控制装置仅为本申请示例性的提供的一种实施例。本申请不限于存储控制装置的结果,例如,预测单元、压缩单元以及解压单元的功能均可以在代理单元中实现,此处不作限制。
下面结合图7介绍上面图6的存储控制装置的读取数据的情形。下文中提及的配置表均可参见上文中的相关解释。
如图7所示,该存储控制装置可以包括代理单元601、预测单元602、解压单元603和存储控制器604,图7中通过箭头示例性的表示了在代理单元请求向存储器读取数据时数据流的方向。可选的,该存储控制装置具体可以是芯片或芯片组或搭载有芯片或者芯片组的电路板。该芯片或芯片组或搭载有芯片或芯片组的电路板可在必要的软件驱动下工作。
在处理单元向存储器读取压缩数据时,该存储控制装置20具体所实现的功能可包括如下:
代理单元601,用于接收来自第一处理单元的第一读取请求,该第一读取请求用于请求存储器中第一物理地址对应的存储块物理地址对应的存储区域中的数据,第一读取请求包括第一处理单元的标识或者第一物理地址;以及,将接收的第一处理单元的标识或者接收的第一物理地址发送至预测单元602。
在一种可能的实现方式中,代理单元601可以在接收第一处理单元的第一读取请求后,可以向预测单元602发送预测请求,该预测请求包括第一处理单元的标识或者第一物理地址,该预测请求用于请求预测该压缩数据之前被压缩时所使用的压缩算法。
预测单元602,用于根据接收的预测请求中包括的第一处理单元的标识或者第一物理地址确定压缩算法,向代理单元601发送压缩标记,压缩标记用于指示所述第一物理地址对应的存储区域中的数据之前被压缩时采用的压缩算法。
解压单元603,用于根据压缩算法对压缩数据进行解压缩,得到解压缩数据;以及,通过代理单元601将解压缩数据发送至第一处理单元。
在一种可能的实现方式中,预测单元602响应于来自代理单元601的预测请求根据接收的预测请求中包括的第一处理单元的标识或者第一物理地址预测压缩数据之前被压缩时采用的压缩算法。进一步,预测单元602向代理单元601发送压缩标记,指示该压缩算法。此外,在预测结果是第一物理地址对应的存储区域中的数据不是压缩数据时,预测单元602还可以向代理单元601发送指示信息,该指示信息用于指示第一物理地址对应的存储区域中的数据不是压缩数据。
在一些实施例中,预测单元接收的预测请求包括第一处理单元的标识时,预测单元具体用于:从第一配置表确定第一处理单元的标识对应的压缩算法,第一配置表包括N个处理单元的标识和N个处理单元的标识对应的压缩算法的标识,N为正整数。
在另一些实施例中,预测单元接收的预测请求中包括第一物理地址时,预测单元具体用于:从第二配置表,确定第一物理地址对应的压缩算法,第二配置表包括M个物理地址和M个物理地址对应的压缩算法的标识,M为正整数。
需要说明的是,在数据量小或压缩成功率低时,数据可以不需压缩而被写入存储器中。 在读取数据时,可以通过带宽利用率预测该数据是否是压缩数据,在要读取的数据不是压缩数据的情况下,直接读取该数据并将该数据发送至处理单元,可以避免修改地址和解压缩,不增加时延。在一种可能的实现方式中,可以在读取时,在配置表(例如第一配置表和第二配置表)中没有找到对应的压缩算法时,预测单元根据带宽利用率确定要读取的数据是否为压缩数据,带宽利用率用于指示时间T0至时间T1内存储控制器604存取数据时带宽的利用率,时间T1为当前时刻,时间T0为时间T1之前的时刻。
例如,在带宽利用率小于第二阈值时,确定不对压缩数据进行压缩;在带宽利用率大于第二阈值时,确定对压缩数据进行压缩,其中,第二阈值可以为预设值。需要说明的是,预测单元先根据带宽利用率对压缩数据进行预测是否压缩,再根据以上所述确定压缩算法的方法确定压缩算法。可以理解的,在带宽利用率低的情况下,仍存在较大的带宽可供存取数据,此时,不需要对数据进行压缩;反之,在带宽利用率高的情况下,带宽不足以满足数据的存取,此时,通过压缩数据可以降低数据量,提升带宽。
以下示例性的介绍预测单元602对第一物理地址对应的存储区域中的数据进行预测的一种具体实现方式。
具体的,预测单元602接收到的参数包括第一处理单元的标识和第一物理地址,预测单元602可以先根据第一处理单元的标识从第一配置表确定压缩算法,在第一配置表中包括第一处理单元的标识和第一处理单元对应的压缩算法的标识时,确定压缩算法为第一处理单元对应的压缩算法,反之,预测单元602根据第一物理地址从第二配置表确定压缩算法,在第二配置表中包括第一物理地址和第一物理地址对应的压缩算法的标识时,得到压缩算法为第一物理地址对应的压缩算法,反之,预测单元602在确定该过程为写入数据时,获取压缩成功率,在带宽利用率大于第二阈值时,得到预测结果为第一物理地址对应存储块中的数据为压缩数据,反之,得到预测结果为第一物理地址对应存储块中的数据不是压缩数据。其中,在带宽利用率小于第二阈值时,预测单元602可以获取当前一段时间内压缩单元605使用的频率最高的压缩算法作为压缩第一物理地址对应存储块中的数据的压缩算法。
代理单元601,还用于在接收到压缩标记时,向存储控制器604发送第二读取请求,第二读取请求用于请求读取第一物理地址对应的存储区域的数据;以及,向解压单元603发送所述压缩标记。
在一些实施例中,该存储控制装置还包括压缩单元605。代理单元601通过压缩单元605向存储控制器604发送第二读取请求,该第二读取请求具体用于请求读取第二物理地址对应的存储区域的数据。
具体的,代理单元601在接收到压缩标记时,将第一读取请求发送至压缩单元605。压缩单元605,用于根据目标长度和第一物理地址,确定第二物理地址,第一物理地址对应的存储区域包括第二物理地址对应的存储区域;以及,向存储控制器604发送第二读取请求,第二读取请求具体用于请求从第二物理地址对应的存储区域中读取压缩数据,以使存储控制响应于第二读取请求,读取第二物理地址对应的存储区域中的压缩数据。
在一种可能的实现方式中,代理单元601在向预测单元602发送预测请求后,接收到预测单元602发送的响应请求,根据该响应请求向压缩单元605发送读取请求。具体的, 在该响应请求包括压缩标记时,代理单元601可以向压缩单元605发送读取请求,该读取请求用于请求读取第一物理地址对应的存储区域的数据,压缩单元605可以对该读取请求进行修改,得到第二读取请求,该第二读取请求用于请求读取第二物理地址对应的存储区域的数据,进而,压缩单元605可以向存储控制器604发送第二读取请求;在该响应请求包括指示压缩数据不是压缩数据时,代理单元601可以向压缩单元605发送第二读取请求,由压缩单元605将该第二读取请求发送至存储控制器604。
存储控制器604,用于读取第一物理地址对应的存储区域的数据,得到压缩数据;以及,将压缩数据发送至解压单元603;
在一种可能的实现方式中,存储控制器604,还用于从存储器中第二物理地址对应的存储区域中读取压缩标记,压缩标记用于指示第二物理地址对应的存储区域中的压缩数据之前被压缩时采用的压缩算法;以及,将压缩标记发送至解压单元603,以使解压单元603具体通过压缩标记指示的压缩算法对压缩数据进行解压缩,得到解压缩数据。需要说明的是,压缩标记还可以用于指示第一物理地址对应的存储区域中的压缩数据之前被压缩时采用的压缩算法,具体的,存储器控制器可以从存储器中第一物理地址对应的存储区域中读取压缩标记。
本申请实施例中通过将压缩标记写入存储器中,可以使处理单元读取压缩数据时从存储器中读取压缩标记,从而确定压缩算法。该方法不需要再次对要读取的数据进行预测压缩算法,确定的压缩算法的准确性高。
请参见图8,图8为本申请实施例提供的存储控制装置中执行的方法的流程示意图,该方法适用于上述图6或图7中的存储控制装置以及包含所述存储控制装置的设备,所述存储控制装置可以包括:代理单元、预测单元、压缩单元和存储控制器,另外,该装置或设备还可以包括解压单元、多个处理单元和存储器。
需要说明的是,根据多核系统的应用特点,内存数据具有空间局部性和时间局部性的分布特点。可以理解的,数据量越多,则需要通过越多次数的突发(Memory burst)访问来存取数据,故本方法采用实时预测和动态压缩的技术对内存数据进行压缩处理,提升压缩效率,降低内存数据的读写过程中的数据量,从而减少突发访问的数量以提升带宽。该方法可以包括以下步骤。
S701、接收来自第一处理单元的第一写入请求,第一写入请求用于请求将第一数据写入第一物理地址对应的存储区域,第一写入请求包括第一处理单元的标识或第一物理地址。
在一些实施例中,存储控制装置包括代理单元,则步骤S701可以具体由存储控制装置中的代理单元来执行,具体内容可以参见上文中关于代理单元的相关描述,此处不再赘述例如,代理单元同时接收来自多个处理单元的写入请求,可以根据存储一致性协议确定对多个请求的处理顺序。
S702、根据第一处理单元的标识或第一物理地址确定压缩算法。
在一些实施例中,存储控制装置可以配置有如图4A和图4B所示的配置表,以及,可以实时获取来自压缩单元和解压单元的压缩成功率,存储控制装置可以根据第一处理单元 的标识或第一物理地址和配置表确定压缩算法。
在另一些实施例中,存储控制装置包括代理单元,步骤S702可以由存储控制装置中的代理单元来执行,代理单元根据第一处理单元的标识或第一物理地址确定压缩算法可以参见图5中关于代理单元的相关描述,此处不再赘述。
进一步的,存储控制装置还可以包括预测单元,则步骤S702可以由存储控制装置中的预测单元来执行。请参见图9,图9为本申请实施例提供的预测单元执行的一种预测方法的示意图。如图9所示,预测单元接收到的参数包括第一处理单元的标识和第一物理地址,存储控制装置通过预测单元先根据第一处理单元的标识从第一配置表确定压缩算法;在第一配置表中包括第一处理单元的标识时,根据第一物理地址从第二配置表确定压缩算法。在第二配置表中包括第一物理地址和第一物理地址对应的压缩算法的标识时,获取压缩成功率,在压缩成功率大于第一阈值时,得到预测结果为第一数据需要压缩,反之,得到预测结果为不对第一数据进行压缩。其中,在压缩成功率大于第一阈值时,可以获取当前一段时间内压缩单元使用的频率最高的压缩算法作为压缩第一数据的压缩算法。
其中,第一配置表和第二配置表可以参见上文中的相关内容,此处不再赘述。
S703、根据压缩算法对第一数据进行压缩,得到压缩的第一数据。
存储控制装置可以根据压缩算法对第一数据进行压缩,得到压缩的第一数据。
在一些实施例中,存储控制装置包括压缩单元,步骤S703具体可以由存储控制装置中的压缩单元来执行,压缩单元根据压缩算法对第一数据进行压缩的具体过程可以参见以上关于压缩单元的相关描述,此处不再赘述。
S704、将压缩的第一数据写入存储器中第一物理地址对应的存储区域。
在一些实施例中,存储控制装置包括存储控制器,步骤S704可以由存储控制装置中的存储控制器来执行,具体过程可以参见以上关于存储控制器的相关描述,此处不再赘述。
需要说明的是,本申请实施例中所描述的在存储控制装置中执行的方法中的具体流程,可参见上述图1~图7中的申请实施例中的相关描述,此处不再赘述。
请参见图10,图10为本申请实施例提供的一种在存储控制装置中执行的方法的流程示意图,该在存储控制装置中执行的方法适用于上述图1~图7中的任意一种存储控制装置以及包含存储控制装置的设备,存储控制装置可以包括:代理单元、预测单元、解压单元和存储控制器,另外,该装置或设备还可以包括压缩单元、多个处理单元和存储器。该方法可以包括以下步骤。
S801、接收来自第一处理单元的第一读取请求,第一读取请求用于请求存储器中第一物理地址对应的存储区域中的数据,第一读取请求包括第一处理单元的标识或第一物理地址。
具体的,存储控制装置可以接收来自第一处理单元的第一读取请求。存储控制装置也可以同时接收来自多个处理单元的读取请求。
在一些实施例中,存储控制装置包括代理单元,具体的,可以由存储控制装置中的代理单元接收来自第一处理单元的第一读取请求。
S802、根据第一处理单元的标识或第一物理地址确定对第一物理地址对应的存储区域中的压缩数据之前被压缩时采用的压缩算法。
具体的,存储控制装置配置有配置表,存储控制装置可以根据第一处理单元的标识或第一物理地址和配置表确定对第一物理地址对应的存储区域中的压缩数据之前被压缩时采用的压缩算法。
在一些实施例中,存储控制装置可以包括代理单元,步骤S802可以由存储控制装置中的代理单元执行,具体过程可以参见上文中关于代理单元的相关内容,此处不再赘述。
进一步,存储控制装置还可以包括预测单元,步骤S802可以由存储控制装置中的预测单元执行,具体过程可以参见上文中关于预测单元的相关内容,此处不再赘述。
例如,预测单元可以配置有如图4A和图4B所示的配置表,以及,预测单元可以实时获取来自压缩单元和解压单元的压缩成功率。
S803、读取第一物理地址对应的存储区域的数据,得到压缩数据。
存储控制装置可以读取第一物理地址对应的存储区域的数据,得到压缩数据。
在一些实施例中,存储控制装置还包括存储控制器,步骤S803可以由存储控制器执行,具体过程可以参见上文中关于存储控制器相关描述,此处不再赘述。
S804、根据压缩算法对压缩数据进行解压缩,得到解压缩数据。
存储控制装置可以根据压缩算法对压缩数据进行解压缩,得到解压缩数据。
在一些实施例中,存储控制装置包括解压单元,解压单元可以根据压缩算法对压缩数据进行解压缩,得到解压缩数据,具体可以参见上文中关于解压单元的相关内容,此处不再赘述。
S805、将解压缩数据发送至第一处理单元。存储控制装置可以将解压缩数据发送至第一处理单元。
请参见图11,图11为本申请实施例提供的预测单元执行的另一种预测方法的示意图。该预测方法适用于上面图10中的步骤S802。如图11所示,预测单元接收到的参数包括第一处理单元的标识和第一物理地址,存储控制装置通过预测单元先根据第一处理单元的标识从第一配置表确定压缩算法;在第一配置表中未包括第一处理单元的标识时,根据第一物理地址从第二配置表确定压缩算法。在第二配置表中包括第一物理地址时,得到预测结果为第一物理地址对应的存储区域中的数据为压缩数据;反之,预测单元在确定该过程为读取数据时,从存储控制器获取带宽利用率,在带宽利用率大于第二阈值时,得到预测结果为第一物理地址对应的存储区域中的数据为压缩数据,反之,得到预测结果为第一物理地址对应的存储区域中的数据不是压缩数据。
进一步的,存储控制装置还可以在确定数据为压缩数据的情况下,通过预测单元可以进一步确定处理单元请求读取的数据之前被压缩时使用的压缩算法。
例如,预测单元接收到的参数包括第一处理单元的标识和第一物理地址,存储控制装置可以通过预测单元根据第一处理单元的标识和第一配置表对第一物理地址对应存储块中的数据进行预测,在第一配置表中包括第一处理单元的标识和第一处理单元对应的压缩算法的标识时,其中,得到预测结果为第一物理地址对应存储块中的数据为压缩数据且对第一物理地址对应存储块中的数据进行压缩的压缩算法为第一处理单元对应的压缩算法,反之,根据第一物理地址和第二配置表对第一物理地址对应存储块中的数据进行预测,在第 二配置表中包括第一物理地址和第一物理地址对应的压缩算法的标识时,得到预测结果为第一物理地址对应存储块中的数据为压缩数据且对第一物理地址对应存储块中的数据进行压缩的压缩算法为第一物理地址对应的压缩算法,反之,在确定该过程为写入数据时,获取压缩成功率,在带宽利用率大于第二阈值时,得到预测结果为第一物理地址对应存储块中的数据为压缩数据,反之,得到预测结果为第一物理地址对应存储块中的数据不是压缩数据。其中,在带宽利用率小于第二阈值时,可以获取当前一段时间内压缩单元使用的频率最高的压缩算法作为压缩第一物理地址对应存储块中的数据的压缩算法。
在一些实施例中,存储控制装置包括代理单元,具体的,可以由存储控制装置中的代理单元将解压缩数据发送至第一处理单元,具体可以参见上文中关于代理单元的相关内容,此处不再赘述。
需要说明的是,本申请实施例中所描述的在存储控制装置中执行的方法中的具体流程,可参见上述图1~图7中所述的申请实施例中的相关描述,此处不再赘述。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有计算机程序,该计算机程序被执行时促使执行上述方法实施例中记载的任意一种方法的部分或全部步骤。
本申请实施例还提供一种计算机程序,该计算机程序包括计算机可执行指令,当该计算机可执行指令被计算机执行时,促使实现存储控制装置中执行的方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,描述一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可能可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本申请实施例可以全部或者部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或者部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或者多个计算机程序指令。在计算机上加载和执行所述计算机程序指令时,全部或者部分地促使实现按照本发明实施例所述的方法或者功能。所述计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。所述计算机程序指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线DSL)、或者无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或者数据中心进行传输。所述计算机可读存储介质可以是计算机能存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘SSD等)。
在本申请所提供的实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的 耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元呈现的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本申请各个实施例上述方法的全部或部分步骤。其中,而前述的存储介质可包括:U盘、移动硬盘、磁碟、光盘、只读存储器(Read-Only Memory,缩写:ROM)或者随机存取存储器(Random Access Memory,缩写:RAM)等各种可以存储程序代码的介质。
Claims (27)
- 一种存储控制装置,其特征在于,其配置成:在第一处理单元请求将第一数据写入第一物理地址对应的存储区域时,根据所述第一处理单元的标识或所述第一物理地址,确定压缩算法;根据所述压缩算法对所述第一数据进行压缩,得到压缩的第一数据;将所述压缩的第一数据写入存储器中。
- 根据权利要求1所述的装置,其特征在于,所述装置包括代理单元;其中,所述代理单元用于:接收来自所述第一处理单元的第一写入请求,所述第一写入请求用于请求将第一数据写入第一物理地址对应的存储区域,所述第一写入请求包括所述第一处理单元的标识或所述第一物理地址。
- 根据权利要求2所述的装置,其特征在于,所述装置还包括压缩单元,其中:所述代理单元还用于,根据所述第一处理单元的标识或所述第一物理地址确定所述压缩算法;所述压缩单元用于,根据所述压缩算法对所述第一数据进行压缩,得到所述压缩的第一数据。
- 根据权利要求2所述的装置,其特征在于,所述装置还包括预测单元、压缩单元;所述代理单元用于:在接收所述第一写入请求时,将所述第一处理单元的标识或所述第一物理地址发送到所述预测单元;所述预测单元用于:根据所述第一处理单元的标识或所述第一物理地址确定所述压缩算法;所述压缩单元用于:根据所述压缩算法对所述第一数据进行压缩,得到所述压缩的第一数据。
- 根据权利要求4所述的装置,其特征在于,所述预测单元用于,在确定所述压缩算法之后,向所述代理单元发送第一指示信息,所述第一指示信息用于指示所述压缩算法;所述代理单元还用于:在接收到所述第一指示信息时,向所述压缩单元发送压缩请求,所述压缩请求包括所述压缩算法和所述第一数据,所述压缩请求用于请求所述压缩单元根据所述压缩算法压缩所述第一数据而得到所述压缩的第一数据。
- 根据权利要求4所述的装置,其特征在于,所述预测单元用于,在确定所述压缩算法之后,向所述压缩单元发送第二指示信息,所述第二指示信息用于指示所述压缩算法。
- 根据权利要求3-6中任一项所述的装置,其特征在于,所述装置还包括存储控制器,其中,所述压缩单元用于:在得到所述压缩的第一数据之后,向所述存储控制器发送第二写入请求,所述第二写入请求用于请求将所述压缩的第一数据写入所述第一物理地址 对应的存储区域;所述存储控制器用于:响应于所述第二写入请求,将所述压缩的第一数据写入存储器中所述第一物理地址对应的存储区域。
- 根据权利要求1-7中任一项所述的装置,其特征在于,所述代理单元还用于接收来自多个处理单元的多个写入请求,根据存储一致性协议确定对多个写入请求的处理顺序。
- 根据权利要求3-8中任一项所述的装置,其特征在于,所述第一写入请求包括所述第一处理单元的标识时,所述预测单元用于:从第一配置表确定所述第一处理单元的标识对应的压缩算法,所述第一配置表包括N个处理单元的标识和所述N个处理单元的标识对应的压缩算法的标识,N为正整数。
- 根据权利要求3-8中任一项所述的装置,其特征在于,所述第一写入请求包括所述第一物理地址时,所述预测单元还用于:从第二配置表确定所述第一物理地址对应的压缩算法,所述第二配置表包括M个物理地址范围和所述M个物理地址范围对应的压缩算法的标识,M为正整数。
- 根据权利要求3-10中任一项所述的装置,其特征在于,所述预测单元还用于,根据压缩成功率确定是否对所述第一数据进行压缩,所述压缩成功率用于指示时间T0至时间T1内数据压缩或解缩的成功率,所述时间T1为当前时刻,所述时间T0为所述时间T1之前的时刻。
- 根据权利要求3-11中任一项所述的装置,其特征在于,所述压缩单元还用于:向所述存储控制器发送第三指示信息,所述第三指示信息用于指示所述压缩算法;所述存储控制器还用于:将所述第三指示信息作为所述压缩标记与所述压缩的第一数据关联地写入存储器中。
- 一种存储控制装置,其特征在于,其配置成:在第一处理单元请求读取存储器中第一物理地址的压缩数据时,根据所述第一处理单元的标识或所述第一物理地址,确定所述压缩数据之前压缩采用的压缩算法;读取所述压缩数据;根据所述压缩算法对所述压缩数据进行解压缩,得到解压缩数据;将所述解压缩数据发送至所述第一处理单元。
- 根据权利要求13所述的装置,其特征在于,所述装置包括代理单元;其中,所述代理单元用于:接收来自所述第一处理单元的第一读取请求,所述第一读取请求用于请求所述压缩数据,所述第一读取请求包括所述第一处理单元的标识或所述第一物理地址。
- 根据权利要求14所述的装置,其特征在于,所述装置还包括解压单元,其中:所述代理单元还用于,根据所述第一处理单元的标识或所述第一物理地址确定所述压缩算法;所述解压单元用于,根据所述压缩算法对所述压缩数据进行解压缩,得到所述解压缩数据。
- 根据权利要求14所述的装置,其特征在于,所述装置还包括预测单元、解压单元;所述代理单元用于:在接收所述第一读取请求时,将所述第一处理单元的标识或所述第一物理地址发送至所述预测单元;所述预测单元用于:根据所述第一处理单元的标识或所述第一物理地址确定所述压缩算法;所述解压单元用于:根据所述压缩算法对所述压缩数据进行解压缩,得到所述解压缩数据。
- 根据权利要求16所述的装置,其特征在于,所述预测单元用于,在确定所述压缩算法之后,向所述代理单元发送第四指示信息,所述第四指示信息用于指示所述压缩数据之前被写入时采用的压缩算法;所述代理单元还用于:在接收到所述第四指示信息时,向所述解压单元发送解压请求,所述解压请求用于请求根据所述压缩算法对所述压缩数据进行解压缩。
- 根据权利要求16所述的装置,其特征在于,所述预测单元还用于,在确定所述压缩算法之后,向所述解压单元发送指示信息,用于指示所述压缩数据之前被写入时采用的压缩算法。
- 根据权利要求15-18中任一项所述的装置,其特征在于,所述装置还包括存储控制器,其中,所述代理单元用于,向所述存储控制器发送第二读取请求,所述第二读取请求用于请求读取所述压缩数据;所述存储控制器用于:读取所述压缩数据;以及,将所述压缩数据发送至所述解压单元;所述解压单元用于:根据所述压缩算法对所述压缩数据进行解压缩,得到所述解压缩数据;以及,通过所述代理单元将所述解压缩数据发送至所述第一处理单元。
- 根据权利要求14-19中任一项所述的装置,其特征在于,所述代理单元还用于接收来自多个处理单元的多个读取请求。
- 根据权利要求16-20中任一项所述的装置,其特征在于,所述第一读取请求包括所述第一处理单元的标识时,所述预测单元用于:从第一配置表确定所述第一处理单元的标识对应的压缩算法,所述第一配置表包括N个处理单元的标识和所述N个处理单元的标 识对应的压缩算法的标识,N为正整数。
- 根据权利要求16-20中任一项所述的装置,其特征在于,所述第一读取请求包括所述第一物理地址时,所述预测单元用于:从第二配置表确定所述压缩算法,所述第二配置表包括M个物理地址范围和所述M个物理地址范围对应的压缩算法的标识,M为正整数。
- 一种在存储控制装置中执行的方法,其特征在于,应用于存储控制装置;所述方法包括:接收来自所述第一处理单元的第一写入请求,所述第一写入请求用于请求将第一数据写入第一物理地址对应的存储区域,所述第一写入请求包括所述第一处理单元的标识或所述第一物理地址;根据所述第一处理单元的标识或所述第一物理地址确定压缩算法;根据所述压缩算法对所述第一数据进行压缩,得到压缩的第一数据;将所述压缩的第一数据写入存储器中所述第一物理地址对应的存储区域。
- 一种在存储控制装置中执行的方法,其特征在于,应用于存储控制装置,所述方法包括:接收来自第一处理单元的第一读取请求,所述第一读取请求用于请求存储器中第一物理地址的压缩数据,所述第一读取请求包括所述第一处理单元的标识或所述第一物理地址;根据所述第一处理单元的标识或所述第一物理地址确定对所述压缩数据之前压缩时采用的压缩算法;读取所述压缩数据;根据所述压缩算法对所述压缩数据进行解压缩,得到解压缩数据;将所述解压缩数据发送至所述第一处理单元。
- 一种半导体芯片,其特征在于,包括:根据权利要求1至22中任一所述的存储控制装置、耦合于所述存储控制装置的一个或多个处理器以及所述存储控制装置外部的存储器。
- 一种电子设备,其特征在于,包括:根据权利要求1至22任一所述的存储控制装置,以及耦合于所述存储控制装置的分立器件。
- 一种计算机存储介质,包括计算机程序指令,其在计算机上被执行时促使实现权利要求23或24所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202180096944.1A CN117203623A (zh) | 2021-04-14 | 2021-04-14 | 一种存储控制装置和在存储控制装置中执行的方法 |
PCT/CN2021/087314 WO2022217517A1 (zh) | 2021-04-14 | 2021-04-14 | 一种存储控制装置和在存储控制装置中执行的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/087314 WO2022217517A1 (zh) | 2021-04-14 | 2021-04-14 | 一种存储控制装置和在存储控制装置中执行的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022217517A1 true WO2022217517A1 (zh) | 2022-10-20 |
Family
ID=83639996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2021/087314 WO2022217517A1 (zh) | 2021-04-14 | 2021-04-14 | 一种存储控制装置和在存储控制装置中执行的方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117203623A (zh) |
WO (1) | WO2022217517A1 (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109756230A (zh) * | 2019-01-03 | 2019-05-14 | Oppo广东移动通信有限公司 | 数据压缩存储方法、数据压缩方法、装置、设备及介质 |
CN110099092A (zh) * | 2018-01-31 | 2019-08-06 | 慧与发展有限责任合伙企业 | 动态数据压缩 |
US20200249877A1 (en) * | 2019-02-01 | 2020-08-06 | EMC IP Holding Company LLC | Compression of data for a file system |
CN111724295A (zh) * | 2019-03-18 | 2020-09-29 | 芯原微电子(成都)有限公司 | 一种外部存储器的协同访问方法及系统、协同访问架构 |
CN112306974A (zh) * | 2019-07-30 | 2021-02-02 | 深信服科技股份有限公司 | 一种数据处理方法、装置、设备及存储介质 |
-
2021
- 2021-04-14 CN CN202180096944.1A patent/CN117203623A/zh active Pending
- 2021-04-14 WO PCT/CN2021/087314 patent/WO2022217517A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110099092A (zh) * | 2018-01-31 | 2019-08-06 | 慧与发展有限责任合伙企业 | 动态数据压缩 |
CN109756230A (zh) * | 2019-01-03 | 2019-05-14 | Oppo广东移动通信有限公司 | 数据压缩存储方法、数据压缩方法、装置、设备及介质 |
US20200249877A1 (en) * | 2019-02-01 | 2020-08-06 | EMC IP Holding Company LLC | Compression of data for a file system |
CN111724295A (zh) * | 2019-03-18 | 2020-09-29 | 芯原微电子(成都)有限公司 | 一种外部存储器的协同访问方法及系统、协同访问架构 |
CN112306974A (zh) * | 2019-07-30 | 2021-02-02 | 深信服科技股份有限公司 | 一种数据处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117203623A (zh) | 2023-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11500810B2 (en) | Techniques for command validation for access to a storage device by a remote client | |
US11775455B2 (en) | Storage device for interfacing with host and method of operating the host and the storage device | |
JP6431536B2 (ja) | 最終レベルキャッシュシステム及び対応する方法 | |
US8549231B2 (en) | Performing high granularity prefetch from remote memory into a cache on a device without change in address | |
US10739836B2 (en) | System, apparatus and method for handshaking protocol for low power state transitions | |
US11693809B2 (en) | Asymmetric read / write architecture for enhanced throughput and reduced latency | |
US10366026B1 (en) | Random access to decompressed blocks | |
TW201508483A (zh) | 混合式記憶體裝置 | |
US20140068125A1 (en) | Memory throughput improvement using address interleaving | |
EP3895025B1 (en) | Cache for storing regions of data | |
CN111656322A (zh) | 针对联动存储器设备调度存储器请求 | |
CN117785765A (zh) | 用于将数据预取到分级存储器布置的第一级存储器的技术 | |
WO2023125524A1 (zh) | 数据存储方法、系统、存储访问配置方法及相关设备 | |
CN115495433A (zh) | 一种分布式存储系统、数据迁移方法及存储装置 | |
US9792049B2 (en) | Memory subsystem with wrapped-to-continuous read | |
TW202008172A (zh) | 儲存系統 | |
WO2022217517A1 (zh) | 一种存储控制装置和在存储控制装置中执行的方法 | |
CN115080262A (zh) | 实现内存共享控制的方法、设备、计算机设备和系统 | |
WO2023000696A1 (zh) | 一种资源分配方法及装置 | |
CN102169428A (zh) | 一种动态可配置的指令访问加速器 | |
WO2021082877A1 (zh) | 访问固态硬盘的方法及装置 | |
US6587390B1 (en) | Memory controller for handling data transfers which exceed the page width of DDR SDRAM devices | |
WO2023056687A1 (zh) | 一种固态硬盘及其数据操作方法、装置及电子设备 | |
WO2023184224A1 (en) | Techniques to utilize near memory compute circuitry for memory-bound workloads | |
WO2023000784A1 (zh) | 数据访问方法以及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21936407 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 202180096944.1 Country of ref document: CN |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21936407 Country of ref document: EP Kind code of ref document: A1 |