WO2024183494A1 - 数据读取方法、装置、设备及可读存储介质 - Google Patents
数据读取方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- WO2024183494A1 WO2024183494A1 PCT/CN2024/073958 CN2024073958W WO2024183494A1 WO 2024183494 A1 WO2024183494 A1 WO 2024183494A1 CN 2024073958 W CN2024073958 W CN 2024073958W WO 2024183494 A1 WO2024183494 A1 WO 2024183494A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- weight
- request
- attribute data
- sub
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8046—Systolic arrays
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
Definitions
- the embodiments of the present application relate to the field of computer technology, and in particular to a data reading method, device, equipment and readable storage medium.
- Peak computing power is an indicator in the field of computer technology to measure computer performance. Peak computing power refers to the maximum number of calculations that a processor can achieve per unit time, and the ability to read data from storage units is closely related to peak computing power.
- a systolic array there is an array structure including multiple rows and columns of processing engines, which is called a systolic array.
- Data in a storage unit can be read into the systolic array, and the data can be efficiently calculated by the systolic array.
- the target data in the storage unit will be stored in a queue. If the condition that the data in the storage unit is read into the systolic array is met, the target data will be taken out of the queue and sent to the systolic array.
- a chip can be used as a carrier for objects with data storage functions such as storage units and queues.
- data storage functions such as storage units and queues.
- queues require a certain amount of storage resources, which easily leads to a large chip area.
- a data reading method, device, equipment and readable storage medium are provided.
- a processor of an electronic device comprising a systolic array and a storage unit respectively connected to the processor, the systolic array comprising a weight attribute register, the method comprising:
- first weight read request is used to request to read weight attribute data from a storage unit
- first feature map read request is used to request to read feature map attribute data from the storage unit
- the reference state identifier being used to represent a state of a weight attribute register in a systolic array after a preset running time from a current time, the weight attribute register being used to store the weight attribute data;
- the feature map attribute data stored in the storage unit is read to the systolic array based on the first feature map read request, and the systolic array is used to perform calculations based on the weight attribute data and the feature map attribute data.
- a storage system comprising a processing unit and a storage unit;
- the storage unit is used to store weight attribute data and feature mapping attribute data
- the processing unit is used to obtain a first weight read request and a first feature map read request, wherein the first weight read request is used to read weight attribute data from the storage unit, and the first feature map read request is used to request to read feature map attribute data from the storage unit;
- the processing unit is further used to obtain a reference state identifier, the reference state identifier is used to represent the state of a weight attribute register in the systolic array after a preset running time from a current time, the weight attribute register is used to store the weight attribute data;
- the processing unit is further configured to read the weight attribute data stored in the storage unit to the systolic array in response to the first weight read request when the reference state identifier satisfies a first preset condition;
- the processing unit is further configured to read the feature mapping attribute data stored in the storage unit to the systolic array based on the first feature mapping read request when the reference state identifier satisfies a second preset condition, and the systolic array is configured to perform calculations based on the weight attribute data and the feature mapping attribute data.
- a data reading device comprising:
- An acquisition module used to acquire a first weight read request and a first feature map read request, wherein the first weight read request is used to request to read weight attribute data from a storage unit, and the first feature map read request is used to request to read feature map attribute data from the storage unit;
- the acquisition module is further used to acquire a reference state identifier, wherein the reference state identifier is used to represent a state of a weight attribute register in the systolic array after a preset running time from a current time, wherein the weight attribute register is used to store the weight attribute data;
- a reading module configured to read the weight attribute data stored in the storage unit into the systolic array in response to the first weight read request when the reference state identifier satisfies a first preset condition
- the reading module is further used to read the feature mapping attribute data stored in the storage unit to the systolic array based on the first feature mapping read request when the reference state identifier meets the second preset condition, and the systolic array is used to perform calculations based on the weight attribute data and the feature mapping attribute data.
- an electronic device comprising a processor and a memory, wherein the memory stores at least one computer-readable instruction, and the at least one computer-readable instruction is loaded and executed by the processor so that the electronic device implements any of the above-mentioned data reading methods.
- a computer-readable storage medium in which at least one computer-readable instruction is stored.
- the at least one computer-readable instruction is loaded and executed by a processor to enable an electronic device to implement any of the above-mentioned data reading methods.
- a computer program product is also provided, wherein at least one computer-readable instruction is stored in the computer program product, and the at least one computer-readable instruction is loaded and executed by a processor to enable an electronic device to implement any of the above-mentioned data reading methods.
- FIG1 is a schematic diagram of an implementation environment of a data reading method provided in an embodiment of the present application.
- FIG2 is a schematic diagram of data loading of a systolic array provided in an embodiment of the present application.
- FIG3 is a flow chart of a data reading method provided in an embodiment of the present application.
- FIG4 is a schematic diagram of updating a status indicator provided in an embodiment of the present application.
- FIG5 is a schematic diagram of determining whether a sub-request is valid provided in an embodiment of the present application.
- FIG6 is a schematic diagram of a data collection process provided in an embodiment of the present application.
- FIG8 is a schematic diagram of the structure of an arbitration unit provided in an embodiment of the present application.
- FIG9 is a schematic diagram of the structure of a data reading device provided in an embodiment of the present application.
- FIG10 is a schematic diagram of the structure of a terminal device provided in an embodiment of the present application.
- FIG11 is a schematic diagram of the structure of a server provided in an embodiment of the present application.
- FIG. 12 is an architecture diagram of another storage system provided in an embodiment of the present application.
- FIG1 is a schematic diagram of an implementation environment of a data reading method provided in an embodiment of the present application.
- the implementation environment includes a terminal device 101 and a server 102.
- the data reading method in the embodiment of the present application can be executed by the terminal device 101, or by the server 102, or by the terminal device 101 and the server 102 together.
- the terminal device 101 can be a smart phone, a game console, a desktop computer, a tablet computer, a laptop computer, a smart TV, a smart car device, an intelligent voice interaction device, a smart home appliance, etc.
- the server 102 can be a single server, or a server cluster consisting of multiple servers, or any one of a cloud computing platform and a virtualization center, which is not limited in the embodiments of the present application.
- the server 102 can be connected to the terminal device 101 through a wired network or a wireless network.
- the server 102 can have functions such as data processing, data storage, and data transmission and reception, which are not limited in the embodiments of the present application.
- the number of terminal devices 101 and servers 102 is not limited and can be one or more.
- Figure 2 is a schematic diagram of data loading of a systolic array provided in an embodiment of the present application.
- a systolic array is an array structure whose working mode and process can be compared to the working mode and process of the human blood circulation system.
- data flows rhythmically between the process engines (PE) of the systolic array in a set pipeline manner.
- PE process engines
- all the processing engines process the data flowing through them in parallel, so the systolic array can achieve a very high parallel processing speed.
- the systolic array includes M rows and N columns of processing engines, where M and N are both positive integers greater than 1.
- a beat register can be inserted between any two columns of processing engines in the systolic array, and/or a beat register can be inserted between any two rows of processing engines in the systolic array.
- layout and wiring can be facilitated, which is conducive to physical implementation.
- the beat register is a first-level beat register.
- the systolic array shown in Figure 2 includes 8 rows and 8 columns of processing engines, and a beat register is inserted between every two columns of processing engines in the systolic array.
- the electronic device may include a processor, a storage unit and a systolic array, and the electronic device includes a systolic array and a storage unit respectively connected to the processor, and the systolic array includes a weight attribute register.
- the electronic device can read data from the storage unit and load the data into the systolic array.
- the embodiment of the present application does not limit the storage unit.
- the storage unit is any one of L1 storage (L1Memory), L2 storage, internal disk, etc.
- the embodiments of the present application are applicable to the field of artificial intelligence technology.
- the features of media information such as images, texts, and audio can be processed by neural network models for feature extraction, classification, and the like.
- the essence of the neural network model processing the features of media information is to calculate the model parameters of the neural network model and the features of the media information.
- the features of the media information belong to feature map (FM) attribute data
- the model parameters of the neural network model belong to weight (WT) attribute data.
- the data in the storage unit includes weight attribute data and feature map attribute data.
- weight attribute data and feature map attribute data When the weight attribute data and feature map attribute data are loaded into the systolic array, the loading of the weight attribute data and the loading of the feature map attribute data have a certain timing relationship.
- the electronic device can read the weight attribute data from the storage unit.
- the read weight attribute data needs to be tapped by the triangularization array, and the horizontal data is converted into oblique triangular data and then input into the pulsating array. Since the tap register is inserted into the pulsating array, the weight attribute data needs to be tapped by the triangularization array.
- the systolic array includes 8 rows and 8 columns of processing engines.
- the electronic device can load the weight attribute data from the storage unit based on a read request for the weight attribute data.
- the weight attribute data is input into the systolic array after passing through the triangulated array.
- the weight attribute data is located in the processing engine of the first row of the first column of the systolic array.
- the electronic device can load the weight attribute data from the storage unit based on a read request for the weight attribute data.
- the weight attribute data is input into the systolic array after passing through the triangulated array.
- the weight attribute data is located in the processing engines of the first row of the first column, the second row of the first column, and the first row of the second column of the systolic array.
- the first The weight attribute data loaded in the clock cycle is located in the processing engine of the second row of the first column
- the weight attribute data loaded in the second clock cycle is located in the processing engine of the first row of the first column and the first row of the second column.
- the electronic device can load the weight attribute data from the storage unit based on the read request for the weight attribute data, and the weight attribute data is input into the systolic array after the triangulation array.
- the weight attribute data is located in the processing engines of the first row of the first column to the third row, the first row of the second column to the second row, and the first row of the third column of the systolic array.
- the weight attribute data loaded in the first clock cycle is located in the processing engine of the third row of the first column
- the weight attribute data loaded in the second clock cycle is located in the processing engine of the second row of the first column and the second row of the second column
- the weight attribute data loaded in the third clock cycle is located in the processing engine of the first row of the first column, the first row of the second column, and the first row of the third column. And so on.
- the flow mode of the weight attribute data loaded in the first clock cycle is: from the processing engine of the first column and the first row to the processing engine of the first column and the second row, and then to the processing engine of the first column and the third row;
- the flow mode of the weight attribute data loaded in the second clock cycle is: from the processing engine of the first column and the first row of the second column to the processing engine of the first column and the second row of the second column.
- the weight attribute data is loaded into the processing engine of the first column and the first row in the first clock cycle
- the weight attribute data is loaded into the processing engine of the first column and the first row in the second clock cycle
- the weight attribute data is loaded into the processing engine of the first column and the first row in the second column
- the weight attribute data is loaded into the processing engine of the first column and the first row in the third clock cycle.
- each clock cycle loads a new row of weight attribute data to the systolic array, and the weight attribute data of this row has one more column than the weight attribute data of the previous clock cycle.
- the weight attribute data loaded into the systolic array sinks one row, and at the same time, a new row of weight attribute data is loaded into the systolic array, and the weight attribute data in this row has one more column than the weight attribute data in the previous clock cycle. Therefore, after eight clock cycles, the weight attribute data is located in the processing engines of the first to eighth rows of the first column, the first to seventh rows of the second column, the first to sixth rows of the third column, the first to fifth rows of the fourth column, the first to fourth rows of the fifth column, the first to third rows of the sixth column, the first to second rows of the seventh column, and the first row of the eighth column, as shown in the gray processing engine in FIG2.
- the systolic array includes M rows and N columns of processing engines, and a new row of weight attribute data is loaded into the systolic array in one clock cycle, and the row of weight attribute data has one more column than the weight attribute data in the previous clock cycle. Therefore, if a row of N weight attribute data is newly loaded into the systolic array in one clock cycle, a row of N weight attribute data is newly loaded into the systolic array in each clock cycle after the clock cycle. In other words, the weight attribute data newly loaded in one clock cycle is not greater than the number of processing engines in one row.
- the electronic device can read the feature mapping attribute data from the storage unit.
- the electronic device can load the feature mapping attribute data from the storage unit based on the read request for the feature mapping attribute data, and the feature mapping attribute data flows from the input side (such as the left side) of the systolic array into the processing engine in the first column of the systolic array, and the weight attribute data residing in the processing engine and the feature mapping attribute data flowing into the processing engine are calculated by each processing engine in the first column.
- at least one of multiplication calculation and addition calculation is performed on the weight attribute data and the feature mapping attribute data by the processing engine.
- a clock cycle ends and enters the next clock cycle of the clock cycle.
- the next clock cycle of the clock cycle is the current clock cycle at the current time.
- the electronic device can load the weight attribute data from the storage unit based on the read request for the weight attribute data.
- the weight attribute data is input into the systolic array after the triangulation array.
- the weight attribute data loaded into the systolic array sinks one row, and a new row of weight attribute data is loaded into the systolic array, so that all the processing engines in the first column of the systolic array and all the processing engines in the second column are loaded with weight attribute data.
- the feature mapping attribute data loaded in the previous clock cycle flows into the processing engine in the second column of the systolic array, and the weight attribute data residing in the processing engine and the feature mapping attribute data flowing into the processing engine are calculated through each processing engine in the second column.
- the electronic device can load the feature mapping attribute data from the storage unit based on the read request for the feature mapping attribute data, and the feature mapping attribute data flows from the input side (such as the left side) of the systolic array to the first column processing engine of the systolic array, and the weight attribute data residing in the processing engine and the feature mapping attribute data flowing into the processing engine are processed by each processing engine of the first column. And so on.
- the weight attribute data loaded into the systolic array sinks one row, and the feature mapping attribute data loaded into the systolic array shifts one column to the right.
- a new row of weight attribute data is loaded into the systolic array, and a new column of feature mapping attribute data is loaded into the systolic array.
- the feature mapping attribute data flowing through each processing engine will participate in the calculation together with the weight attribute data flowing through the processing engine.
- the weight attribute data flows out from the first output side of the systolic array (such as the side adjacent to the input side, specifically the lower side), and the feature mapping attribute data flows out from the second output side of the systolic array (such as the side opposite to the input side, specifically the right side).
- the electronic device needs to load the weight attribute data in the storage unit into the first column processing engine of the systolic array before it can load the feature mapping attribute data in the storage unit into the first column processing engine of the systolic array, and the electronic device needs to go through at least one clock cycle to load the weight attribute data in the storage unit into the first column processing engine of the systolic array.
- the electronic device can load the weight attribute data in the storage unit into the systolic array again.
- the loading of weight attribute data and the loading of feature mapping attribute data have a certain timing relationship.
- the feature mapping attribute data in the storage unit can be loaded into the systolic array, and only after the weight attribute data in the first column processing engine of the systolic array and the feature mapping attribute data flowing into the first column processing engine are calculated, the feature mapping attribute data in the storage unit can be loaded into the systolic array again, so the related art instantiates a queue in the storage unit.
- the read data end (a port in the storage unit for inputting feature mapping attribute data or weight attribute data into the systolic array) does not have the condition of receiving data, that is, when the feature mapping attribute data or weight attribute data in the storage unit cannot be loaded into the systolic array
- the data is read from the storage unit and stored in the queue.
- the read data end has the condition of receiving data, that is, when the feature mapping attribute data or weight attribute data in the storage unit can be loaded into the systolic array
- the data is taken out from the queue and sent to the systolic array through the read data end.
- the depth of the queue needs to be greater than or equal to the read delay. For example, if the read delay is 10 clock cycles, the depth of the queue is at least 10, which can avoid data loss. As the amount of processed data increases, the read delay will also increase, so that the two queues need to occupy a large amount of storage resources, resulting in a large chip area.
- the embodiment of the present application provides a data reading method, which can be applied in the above-mentioned implementation environment and can reduce the chip area.
- the terminal device 101 or server 102 that executes the data reading method in the embodiment of the present application is referred to as an electronic device.
- the method can be executed by an electronic device, specifically, it can be executed by a processor of the electronic device, and the electronic device also includes a systolic array and a storage unit respectively connected to the processor, and the systolic array includes a weight attribute register.
- the method includes the following steps.
- Step 301 obtaining a first weight read request and a first feature map read request, wherein the first weight read request is used to request to read weight attribute data from a storage unit, and the first feature map read request is used to request to read feature map attribute data from a storage unit.
- the data reading method of the embodiment of the present application is applicable to the field of artificial intelligence technology, and in the field of artificial intelligence technology, the features of media information are often processed through neural network models.
- the weight attribute data belongs to the model parameters of the neural network model, and specifically can be in the layer of the neural network model, characterizing the contribution of the variable corresponding to the weight attribute data to the calculation result of the layer.
- the neural network model can be a feature extraction model for extracting features from media information, or the neural network model can also be a classification model for classifying media information.
- the feature mapping attribute data belongs to the features of the media information.
- the media information includes at least one of images, text, audio, etc., that is, the feature mapping attribute data belongs to at least one of image features, text features, or audio features.
- the electronic device may obtain a first weight read (Weight Read, wt_rd) request in any clock cycle, and the first weight read request is used to read weight (Weight, wt) attribute data.
- the electronic device may obtain a first feature map read (Feature Map Read, fm_rd) request in any clock cycle, and the first feature map read request is used to read feature map (Feature Map, fm) attribute data.
- the embodiment of the present application does not limit the order of the first weighted read request and the first feature mapping read request. That is, the first weighted read request and the first feature mapping read request can be obtained at the same time, the first weighted read request can be obtained first, and then the first feature mapping read request can be obtained, or the first feature mapping read request can be obtained first and then the first weighted read request can be obtained.
- Step 302 obtaining a reference state identifier, wherein the reference state identifier is used to represent the state of a weight attribute register in the systolic array after a preset running time from the current time, and the weight attribute register is used to store weight attribute data.
- the electronic device has an arbiter unit, which coordinates the timing relationship between the weight attribute data and the feature mapping attribute data by maintaining a reference state register.
- the reference state register can be recorded as a weight occupation (wt_occupy) register, and the reference state register is used to store the reference state identifier.
- the reference state identifier can be recorded as wt_occupy.
- the reference state identifier is used to characterize the state of the weight attribute register in the systolic array after a preset running time from the current time, and the weight attribute register is used to store the weight attribute data.
- the preset running time in English, is pre-defined elapsed time, which can be a preset time calculated from a certain time point.
- the preset running time is the time from the moment when the reference state identifier is judged to meet the first preset condition to the moment when the corresponding data enters the systolic array.
- the time from the moment when the reference state identifier is judged to meet the first preset condition to the moment when the corresponding data enters the systolic array can be the same as the time from the moment when the reference state identifier is judged to meet the second preset condition to the moment when the corresponding data enters the systolic array. Since the clock frequency is regular, the preset running time can be pre-set.
- Step 303 When the reference state flag satisfies a first preset condition, in response to a first weight read request, read the weight attribute data stored in the storage unit into the systolic array.
- the state of the weight attribute register is: the weight attribute register is in a state of waiting to store weight attribute data, or the weight attribute register is in a state of storing weight attribute data.
- the pulsating array operates regularly at a certain frequency, so it can be determined at the current time whether the weight attribute register in the pulsating array is in a state of waiting to store weight attribute data or a state of storing weight attribute data after the preset running time from the current time.
- the weight attribute register if all the processing engines in the first column of the systolic array have weight attribute data, the weight attribute register is in a state where the weight attribute data has been stored; if all or some of the processing engines in the first column of the systolic array do not have weight attribute data, the weight attribute register is in a state where weight attribute data is waiting to be stored.
- the weight attribute register is in a state where the weight attribute data has been stored; if the processing engine in the first column of the systolic array does not have unused weight attribute data, the weight attribute register is in a state where weight attribute data is to be stored. If the weight attribute data residing in any processing engine is calculated with the feature mapping attribute data flowing through the processing engine, the weight attribute data has been used; if the weight attribute data residing in any processing engine is not calculated with the feature mapping attribute data flowing through the processing engine, the weight attribute data has not been used.
- the weight attribute register is in a state of waiting to store weight attribute data.
- the weight attribute register is in a state of storing the weight attribute data; if all processing engines have used weight attribute data, the weight attribute register is in a state of waiting to store weight attribute data.
- the reference state flag satisfies the first preset condition: the reference state flag indicates that the weight attribute register is in a state of waiting to store weight attribute data after a preset running time from the current time. state.
- weight attribute register may cause the weight attribute register to be in a state where weight attribute data is to be stored.
- the first possibility is that all or some of the processing engines in the first column of the systolic array have never received weight attribute data.
- the second possibility is that all of the processing engines in the first column of the systolic array have received weight attribute data, but the weight attribute data in all or some of the processing engines have been calculated with the feature mapping attribute data flowing through the processing engines, so that the weight attribute data in the processing engines have been used.
- the electronic device can load the weight attribute data in the storage unit to the systolic array.
- the electronic device determines that the reference state identifier satisfies the first preset condition, so as to read the weight attribute data stored in the storage unit to the systolic array, so that all the processing engines in the first column of the systolic array have weight attribute data, and all or part of the processing engines have unused weight attribute data.
- the reference state identifier represents that after the preset running time from the current time, the weight attribute register is in a state where the weight attribute data is stored, it means that all processing engines in the first column of the systolic array have weight attribute data, and all or part of the processing engines have unused weight attribute data. In this case, the electronic device cannot load the weight attribute data in the storage unit into the systolic array. Based on this principle, the electronic device determines that the reference state identifier does not meet the first preset condition. At this time, the electronic device will block the first weight read request.
- Step 304 when the reference state identifier satisfies the second preset condition, in response to the first feature map read request, the feature map attribute data stored in the storage unit is read into the systolic array, and the systolic array is used to perform calculations based on the weight attribute data and the feature map attribute data.
- step 304 may be performed after step 302. Based on the state of the weight attribute register after the preset running time, it can be determined whether the reference state flag meets the second preset condition, thereby determining whether the feature map attribute data can be loaded into the systolic array.
- the calculation based on the weight attribute data and the feature mapping attribute data specifically includes: determining the relationship between the weight attribute data and the feature mapping attribute data according to the structure of the neural network model, and then organizing the weight attribute data and the feature mapping attribute data to participate in the calculation of the neural network model according to the relationship between the weight attribute data and the feature mapping attribute data, and obtaining a calculation result.
- the calculation result can be an intermediate calculation result or a result finally output by the neural network model.
- the relationship between the weight attribute data and the feature map attribute data can be that the weight attribute data and the feature map attribute data are respectively used as input data of a specific function in the neural network model, and the output data of the function is a calculation result obtained by calculating the weight attribute data and the feature map attribute data.
- the relationship between the weight attribute data and the feature map attribute data can be a dot product multiplication relationship.
- the reference state flag satisfies the second preset condition: the reference state flag indicates that the weight attribute register is in a state where all weight attribute data are stored after a preset running time from the current time.
- the weight attribute register is in a state where the weight attribute data has been stored, indicating that all processing engines in the first column of the systolic array have weight attribute data, and all or part of the processing engines have unused weight attribute data, and the electronic device can load the feature mapping attribute data in the storage unit to the systolic array.
- the electronic device determines that the reference state identifier satisfies the second preset condition, so as to read the feature mapping attribute data stored in the storage unit to the systolic array, so that all processing engines in the first column of the systolic array can calculate the weight attribute data residing in the processing engine and the feature mapping attribute data flowing through the processing engine.
- the reference state identifier indicates that when the weight attribute register is in a state of waiting to store weight attribute data after a preset running time from the current time, it indicates that all or part of the processing engines in the first column of the systolic array are not There is weight attribute data, and/or the weight attribute data of all processing engines in the first column of the systolic array have been used. In this case, the electronic device cannot load the feature mapping attribute data in the storage unit into the systolic array. Based on this principle, the electronic device determines that the reference state identifier does not meet the second preset condition, and at this time, the electronic device will block the first feature mapping read request.
- the weight attribute data can be directly read based on the first weight read request, and the first feature map read request can also be shielded.
- the feature map attribute data can be directly read based on the first feature map read request, and the first weight read request can also be shielded.
- steps 306 to 307 as shown below are also included (not shown in FIG. 3 ).
- Step 306 obtaining a first state flag, the first state flag indicating whether the weight attribute register has stored the weight attribute data of a set number of clock cycles after a preset running time from the current time.
- the reference state identifier can be arbitrated by an arbitration unit, and when the reference state identifier meets the first preset condition, the weight attribute data is read based on the first weight read request, or, when the reference state identifier does not meet the first preset condition, the first weight read request is shielded.
- the arbitration unit can maintain a first state register, and store the first state identifier through the first state register.
- the first state identifier is set to a third value
- the first state identifier is set to a fourth value. It can be understood that the value of the first state identifier is the third value only within the set number of clock cycles, and the value in other clock cycles is the fourth value.
- the first state identifier can be recorded as wt_last_beat.
- the weight attribute register When the first state flag is set from the third value to the fourth value, it indicates that after the preset running time from the current time, the weight attribute register has stored the weight attribute data of the set number of clock cycles.
- the first state flag When the first state flag is set from the fourth value to the third value, it indicates that after the preset running time from the current time, the weight attribute register starts to store the weight attribute data of the set number of clock cycles.
- the embodiment of the present application does not limit the magnitude of the third value and the fourth value.
- the third value is 1 and the fourth value is 0.
- Step 307 in response to the first state identification representing that the weight attribute register has stored the weight attribute data of a set number of clock cycles after the preset running time from the current time, it is determined that the reference state identification represents that the weight attribute register is in a state of storing the weight attribute data after the preset running time from the current time.
- the electronic device sets the reference state identifier from the first value to the second value.
- the reference state identifier when the reference state identifier is the first value, it indicates that the weight attribute register is in a state of waiting to store the weight attribute data after the preset running time; when the reference state identifier is the second value, it indicates that the weight attribute register is in a state of storing the weight attribute data after the preset running time.
- the embodiment of the present application does not limit the size of the first value and the second value. Exemplarily, the first value is 0 and the second value is 1.
- Figure 4 is a schematic diagram of updating a state identifier provided in an embodiment of the present application.
- the first state identifier is set from 1 (i.e., the third value) to 0 (i.e., the fourth value)
- the reference state identifier is set from 0 (i.e., the first value) to 1 (i.e., the second value).
- the method further includes steps 308 and 309 (not shown in FIG. 3 ).
- steps 308 and 309 may be performed after step 307 .
- Step 308 obtaining a second state flag, the second state flag indicating whether the weight attribute data in the weight attribute register is calculated with the feature mapping attribute data of the first clock cycle after a preset running time from the current time.
- the arbitration unit After a feature map read request of any clock cycle passes through the arbitration unit, if the second preset condition is met, the feature map attribute data corresponding to the feature map read request is transmitted through the systolic array and the register in the buffer after a preset running time. The weight attribute data in the weight attribute register is used for calculation. Based on this, the arbitration unit can maintain a second state register, and the second state identifier is stored in the second state register.
- the second state identifier is set to the fifth value
- the second state identifier is set to the sixth value. It can be understood that the value of the second state identifier is the fifth value only in the first clock cycle, and the value in other clock cycles is the sixth value.
- the second state identifier can be recorded as fm_update_first_beat.
- the second state flag When the second state flag is set from the fifth value to the sixth value, it indicates that after the preset running time from the current time, the weight attribute data in the weight attribute register and the feature mapping attribute data of the first clock cycle have completed the calculation.
- the second state flag When the second state flag is set from the sixth value to the fifth value, it indicates that the weight attribute data in the weight attribute register and the feature mapping attribute data of the first clock cycle have started to be calculated.
- the embodiment of the present application does not limit the magnitude of the fifth value and the sixth value.
- the fifth value is 1 and the sixth value is 0.
- Step 309 when the second state identification represents that the weight attribute data in the weight attribute register and the feature mapping attribute data of the first clock cycle are calculated after the preset running time from the current time, it is determined that the reference state identification represents that the weight attribute register is in a state of waiting to store weight attribute data after the preset running time from the current time.
- the electronic device sets the reference state flag from the second value to the first value.
- the reference state flag is set from 1 (i.e., the second value) to 0 (i.e., the first value).
- the initial value of the reference state identifier is the first value, indicating that after the preset running time from the current time, the weight attribute register is in a state of waiting to store weight attribute data.
- the reference state identifier satisfies the first preset condition, so the weight attribute data stored in the storage unit can be read to the systolic array in response to the first weight read request. If the first feature mapping read request is obtained, the first feature mapping read request is shielded. This process will continue for several clock cycles until the reference state identifier is set from the first value to the second value.
- the reference state identifier is the second value, it can be characterized that the weight attribute register is in a state where the weight attribute data is stored. In this case, the reference state identifier satisfies the second preset condition. Therefore, within one clock cycle, the feature mapping attribute data stored in the storage unit can be read to the pulsation array in response to the first feature mapping read request. If the first weight read request is obtained, the first weight read request is shielded. After the clock cycle, the reference state identifier is set from the second value to the first value. Next, implementation method A or implementation method B is executed.
- the reference state identifier is a first value.
- the weight attribute data stored in the storage unit can be read to the systolic array in response to the first weight read request, and the first feature map read request is shielded.
- the reference state identifier is set from the first value to the second value.
- the feature map attribute data stored in the storage unit can be read to the systolic array in response to the first feature map read request, and the first weight read request is shielded.
- the reference state identifier is set from the second value to the first value. Repeat this process until the reading stops.
- the reference state identifier is the first value.
- step 310 to step 311 are executed (not shown in FIG3 ).
- Step 310 to step 311 may be executed after step 304 or after “the reference state identifier is set from the second value to the first value”.
- Step 310 obtaining a second weight read request and a second feature map read request, wherein the second weight read request is used to request to read weight attribute data from a storage unit, and the second feature map read request is used to request to read feature map attribute data from a storage unit.
- the electronic device may also obtain a second weight read request in any clock cycle, and the second weight read request is used to read the wt attribute data.
- the electronic device may also obtain a second feature map read request in any clock cycle, and the second feature map read request is used to read the fm attribute data.
- the second feature mapping read request may be obtained first, and the second weighted read request may be obtained later.
- the second feature mapping read request may also be obtained first, and the second weighted read request may be obtained later.
- Step 311 based on the second weight read request, the weight attribute data stored in the storage unit is read into the systolic array, and based on the second feature map read request, the feature map attribute data stored in the storage unit is read into the systolic array, and the read delay of the weight attribute data and the read delay of the feature map attribute data are preset running times.
- the read delay of the weight attribute data and the read delay of the feature mapping attribute data are both preset running times, that is to say, the read delay of the weight attribute data and the read delay of the feature mapping attribute data are equal. Therefore, every time a clock cycle of weight attribute data is loaded into the systolic array, correspondingly, a clock cycle of feature mapping attribute data will flow into the systolic array and be calculated with the weight attribute data residing in the systolic array, so that the timing relationship between the weight attribute data and the feature mapping attribute data is maintained.
- the timing relationship between the weight attribute data and the feature mapping attribute data can be maintained when the read delay of the weight attribute data and the feature mapping attribute data are equal, there is no need to introduce a queue to store data, which reduces the storage resources required for the queue and helps reduce the chip area.
- the first weighted read request includes at least one first weighted sub-request
- the storage unit includes at least one first storage block.
- the first weighted read request includes four first weighted sub-requests, which are respectively recorded as req0 to req3, and the storage unit includes four first storage blocks, which are respectively recorded as bg0 to bg3.
- step 303 "reading the weight attribute data stored in the storage unit to the systolic array in response to the first weight read request” includes steps 3031 to 3032 as shown below (not shown in FIG. 3).
- Step 3031 for any first weight sub-request, if any first weight sub-request is a valid request, determine the first storage block corresponding to any first weight sub-request, and read the weight attribute data corresponding to any first weight sub-request from the first storage block corresponding to any first weight sub-request.
- the electronic device may directly determine any first weighted sub-request as a valid request, or may compare any first weighted sub-request with a reference first weighted sub-request to determine whether any first weighted sub-request is a valid request based on the comparison result.
- "determining any first weight sub-request as a valid request” in step 3031 includes: extracting the address of the first storage block corresponding to any first weight sub-request from any first weight sub-request; in response to the address of the first storage block corresponding to any first weight sub-request being different from the address of the first storage block corresponding to the reference first weight sub-request, determining that any first weight sub-request is a valid request, and the reference first weight sub-request is at least one first weight sub-request among multiple first weight sub-requests other than any first weight sub-request.
- Any first weighted sub-request includes an identification bit and an address (Address, Addr), wherein the identification bit is used to indicate that the first weighted sub-request is a valid request, and the address is a storage address where data corresponding to the first weighted sub-request is located.
- any first weight sub-request includes the address of the first storage block to realize reading the weight attribute data corresponding to the first weight sub-request from the first storage block.
- any first weight sub-request corresponds to an address of a first storage block
- any two first weight sub-requests may correspond to the address of the same first storage block, or may correspond to addresses of different first storage blocks. Based on this, it is necessary to determine whether two first weight sub-requests correspond to the address of the same first storage block.
- any first weight sub-request includes the address of the first storage block
- the address of the corresponding first storage block can be extracted from the first weight sub-request.
- the address of the first storage block corresponding to any first weight sub-request is compared with the address of the first storage block corresponding to the reference first weight sub-request. If the comparison result is that the two addresses are different, then any first weight sub-request is determined to be a valid request; if the comparison result is that the two addresses are the same, then any first weight sub-request is determined to be a valid request.
- the first weighted sub-request is an invalid request.
- the number of reference first weight sub-requests is at least one. In the case where there are at least two reference first weight sub-requests, if the address of the first storage block corresponding to any first weight sub-request is different from the address of the first storage block corresponding to each reference first weight sub-request, then any first weight sub-request is determined to be an invalid request; if the address of the first storage block corresponding to the reference first weight sub-request is the same as the address of the first storage block corresponding to any first weight sub-request, then any first weight sub-request is determined to be an invalid request.
- each first weight sub-request other than any first weight sub-request among multiple first weight sub-requests may be used as a reference first weight sub-request, or each first weight sub-request before (or after) any first weight sub-request among multiple first weight sub-requests may be used as a reference first weight sub-request.
- the first weighted read request includes four first weighted sub-requests, which are respectively denoted as sub-request 0 to sub-request 3.
- the first weighted sub-request includes an identification bit used to characterize that the first weighted sub-request is valid and an address for storing data corresponding to the first weighted sub-request. All or part of the address included in any first weighted sub-request is the address of the first storage block.
- Figure 5 shows that sub-requests 0 to 3 all include an identification bit and an address representing "valid", and part of the address is the address of the corresponding first storage block.
- the electronic device may directly determine whether sub-request 0 is valid. For example, the electronic device directly determines that sub-request 0 is a valid request.
- the electronic device may compare the address of the first storage block corresponding to sub-request 0 with the address of the first storage block corresponding to sub-request 1.
- the flag bit of sub-request 1 indicates "valid”
- the operation result is determined to be true when both operands are true.
- the comparison result is different
- the operand corresponding to the comparison result indicates that sub-request 1 is "valid”, which is equivalent to true.
- the flag bit of sub-request 1 indicates that sub-request 1 is "valid”, which is equivalent to true. Therefore, the operation result is true, that is, the operation result is that sub-request 1 is "valid".
- sub-request 2 For sub-request 2, based on a principle similar to that of sub-request 1, the address of the first storage block corresponding to sub-request 2 can be compared with the address of the first storage block corresponding to sub-requests 0 and 1.
- the comparison result is different and the flag bit of sub-request 2 indicates "valid”
- a logical AND operation is performed on the comparison result and the flag bit to obtain that sub-request 2 is valid.
- the comparison result is the same and the flag bit of sub-request 2 indicates that sub-request 2 is "valid”
- a logical AND operation is performed on the comparison result and the flag bit to obtain that sub-request 2 is invalid.
- sub-request 3 For sub-request 3, based on a principle similar to that of sub-request 1, the address of the first storage block corresponding to sub-request 3 can be compared with the address of the first storage block corresponding to sub-requests 0, 1, and 2.
- the comparison result is different and the flag bit of sub-request 3 indicates "valid”
- a logical AND operation is performed between the comparison result and the flag bit to obtain that sub-request 3 is valid.
- the comparison result is the same and the flag bit of sub-request 3 indicates that sub-request 3 is "valid”
- a logical AND operation is performed between the comparison result and the flag bit to obtain that sub-request 3 is invalid.
- the identification bit of the first weight sub-request when the identification bit of the first weight sub-request is the seventh value, the identification bit of the first weight sub-request is determined to represent "valid", and when the identification bit of the first weight sub-request is the eighth value, the identification bit of the first weight sub-request is determined to represent "invalid".
- the embodiment of the present application does not limit the seventh value and the eighth value. In an exemplary embodiment, the seventh value is 1 and the eighth value is 0.
- any first weight sub-request includes the address of the first storage block, based on the address of the first storage block included in any first weight sub-request, the first storage block corresponding to the first weight sub-request can be determined, and the data corresponding to the first weight sub-request can be read from the first storage block.
- any first storage block includes at least one second storage block.
- 0 includes the second storage block 0 and 1
- the first storage block 1 includes the second storage block 0 and 1
- the first storage block 2 includes the second storage block 0 and 1
- the first storage block 3 includes the second storage block 0 and 1. Since the first storage block includes at least one second storage block, the second storage block can be recorded as a storage module (Bank), and the first storage block can be recorded as a storage module group (Bank Group).
- step 3031 "reading weight attribute data corresponding to any first weight sub-request from the first storage block corresponding to any first weight sub-request” includes: determining the second storage block corresponding to any first weight sub-request based on any first weight sub-request; reading the weight attribute data corresponding to any first weight sub-request from the second storage block corresponding to any first weight sub-request.
- any first weight sub-request includes the address of the first storage block, and the first storage block includes at least one second storage block, any first weight sub-request may include the address of the second storage block. Based on the address of the second storage block included in any first weight sub-request, the second storage block corresponding to the first weight sub-request may be determined, and the weight attribute data corresponding to the first weight sub-request may be read from the second storage block.
- Step 3032 Send the weight attribute data corresponding to each first weight sub-request to the systolic array.
- the electronic device needs to determine whether each first weight sub-request in the first weight read request is a valid request, and can only read the data corresponding to the first weight sub-request if the first weight sub-request is a valid request, there are differences in the reading completion time of the data corresponding to each first weight sub-request.
- the data corresponding to each first weight sub-request can be collected by a collection unit. After the collection unit collects the data corresponding to each first weight sub-request, according to the export command (for example, the reg command), the data corresponding to each first weight sub-request is exported to the storage unit as the weight attribute data corresponding to the first weight read request, thereby sending the weight attribute data to the systolic array.
- the first weighted read request includes four first weighted sub-requests, which are sub-requests 0 to 3.
- the collection unit has not collected the data corresponding to any of the first weighted sub-requests, at time T1, the collection unit collects the data corresponding to sub-requests 0 and 1, at time T2, the collection unit collects the data corresponding to sub-requests 0 to 2, and at time T3, the collection unit collects the data corresponding to sub-requests 0 to 3.
- the export command the data corresponding to sub-requests 0 to 3 are exported to the storage unit as the weight attribute data corresponding to the first weighted read request.
- the first feature mapping read request includes at least one first feature mapping sub-request
- the second weight read request includes at least one second weight sub-request
- the second feature mapping read request includes at least one second feature mapping sub-request.
- the method further includes steps 312 to 313 (not shown in FIG. 3 ).
- Step 312 Get a write request.
- the electronic device can obtain a write request at any clock cycle, and the write request is used to write weight attribute data or feature mapping attribute data into the storage unit.
- the write request can be a data move write (Write, wr) request based on direct memory access (Direct Memory Access, DMA), which is used to move data in other storage to the storage unit. Therefore, the write request can be recorded as a dma_wr request.
- Step 313 Write the corresponding weight attribute data or feature mapping attribute data into the storage unit based on the write request.
- the write request includes at least one third sub-request, and the storage unit includes at least one first storage block.
- the write request includes four third sub-requests, and the storage unit includes four first storage blocks.
- step 313 includes: for any third sub-request, determining the first storage block corresponding to any third sub-request; and writing the data corresponding to any third sub-request into the first storage block corresponding to any third sub-request based on any third sub-request.
- any third sub-request includes the address of the first storage block. Therefore, based on the address of the first storage block included in any third sub-request, the first storage block corresponding to the third sub-request can be determined, and the weight attribute data or feature mapping attribute data corresponding to the third sub-request can be written into the first storage block corresponding to the third sub-request.
- any first storage block includes at least one second storage block.
- "writing data corresponding to any third sub-request into the first storage block corresponding to any third sub-request based on any third sub-request” includes: determining the second storage block corresponding to any third sub-request based on any third sub-request; and writing the data corresponding to any third sub-request into the second storage block corresponding to any third sub-request.
- any third sub-request may include the address of the second storage block. Based on the address of the second storage block included in any third sub-request, the second storage block corresponding to the third sub-request may be determined, and the data corresponding to the third sub-request may be written into the second storage block corresponding to the third sub-request.
- the scheduler is a strict priority (SP) scheduler.
- the feature mapping attribute data needs to be loaded into the systolic array first, so as to calculate the feature mapping attribute data flowing through the systolic array and the weight attribute data residing in the systolic array, and then the weight attribute data can be loaded into the systolic array again.
- the priority of the (first or second) weight read request is lower than the priority of the (first or second) feature mapping read request, wherein the priority of the write request can be higher than the priority of the weight read request, or lower than the priority of the weight read request, and can be higher than the priority of the feature mapping read request, or lower than the priority of the feature mapping read request.
- the priority of the feature mapping read request is higher than the priority of the weight read request
- the priority of the weight read request is higher than the priority of the write request.
- the scheduler coordinates the priorities of various requests so that data can be read and written in an orderly manner, achieving efficient switching between multiple requests and improving data processing efficiency.
- the information including but not limited to user device information, user personal information, etc.
- data including but not limited to data used for analysis, stored data, displayed data, etc.
- signals involved in this application are all authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with relevant laws, regulations and standards in the relevant regions.
- the first data, second data, third data, etc. involved in this application are all obtained with full authorization.
- the above method characterizes the state of the weight attribute register in the pulsation array through a reference state identifier.
- the weight attribute data stored in the storage unit is read to the pulsation array in response to the first weight read request;
- the reference state identifier satisfies the second preset condition
- the feature mapping attribute data stored in the storage unit is read to the pulsation array in response to the first feature mapping read request.
- the storage resources required for the reference state identifier are fewer. This method can be applied to chips. Since the fewer the storage resources, the smaller the chip area, the chip has the conditions to reduce the chip area.
- Figure 7 is an architecture diagram of a storage system provided by an embodiment of the present application.
- the storage system includes a conflict detection unit, a hash unit, at least one processing block and a collection unit, and any processing block includes an arbitration unit, at least one second storage block and a selection unit.
- FIG7 does not show the storage unit and the first storage block.
- a first storage block includes each second storage block in a processing block, that is, one processing block corresponds to a first storage block, and the storage unit includes each first storage block.
- the storage unit includes the first storage block corresponding to processing block 0, the first storage block corresponding to processing block 1, the first storage block corresponding to processing block 2, and the first storage block corresponding to processing block 3.
- the first storage block corresponding to processing block 0 includes the second storage blocks 0 and 1 in processing block 0; the first storage block corresponding to processing block 1 includes the second storage blocks 0 and 1 in processing block 1; the first storage block corresponding to processing block 2 includes the second storage blocks 0 and 1 in processing block 2; the first storage block corresponding to processing block 3 includes the second storage blocks 0 and 1 in processing block 3.
- the electronic device can read the feature mapping attribute data from the storage unit based on the feature mapping read request, and can also read the weight attribute data from the storage unit based on the weight read request.
- the processing method for the feature mapping read request in the embodiment of the present application is similar to the processing method for the weight read request. Therefore, the following is a processing method for the feature mapping read request. Request as an example to illustrate the processing method of the embodiment of the present application for the feature mapping read request.
- the feature mapping read request (corresponding to the first feature mapping read request and the second feature mapping read request)
- the feature mapping read request is subjected to conflict detection through the conflict detection unit, wherein the principle of conflict detection is shown in FIG5 .
- the feature mapping read request includes sub-requests 0 to 3.
- sub-request 0 is directly determined to be valid; for sub-request 1, when the address of the first storage block corresponding to sub-request 0 is different from the address of the first storage block corresponding to sub-request 1, sub-request 1 is determined to be valid, otherwise, sub-request 1 is determined to be invalid; for sub-request 2, when the address of the first storage block corresponding to sub-requests 0 and 1 is different from the address of the first storage block corresponding to sub-request 2, sub-request 2 is determined to be valid, otherwise, sub-request 2 is determined to be invalid; for sub-request 3, when the address of the first storage block corresponding to sub-requests 0 to 2 is different from the address of the first storage block corresponding to sub-request 3, sub-request 3 is determined to be valid, otherwise, sub-request 3 is determined to be invalid.
- each sub-request included in the feature mapping read request is valid. For any sub-request, if the sub-request is valid, the hash unit is used to determine the first storage block corresponding to the sub-request based on the address of the first storage block corresponding to the sub-request, and the request path of the processing block where the first storage block corresponding to the sub-request is located is set to be valid, so that the sub-request can reach the corresponding first storage block; if the sub-request is invalid, the hash unit is used to set the request path of the processing block where the first storage block corresponding to the sub-request is located to be invalid, so as to prevent the sub-request from reaching the corresponding first storage block.
- sub-request 0 corresponds to the first storage block 0, and processing block 0 includes the first storage block 0. If sub-request 0 is valid, the request path of processing block 0 is set to valid through the hash unit, so that sub-request 0 can reach the first storage block 0; if sub-request 0 is invalid, the request path of processing block 0 is set to invalid through the hash unit, so as to prevent sub-request 0 from reaching the first storage block 0.
- the storage system includes at least one processing block, one processing block includes an arbitration unit, a first storage block (not shown in the figure) and a selection unit, and the first storage block includes at least one second storage block.
- the structural diagram of the arbitration unit can be seen in Figure 8.
- the sub-request is first arbitrated by the arbitration unit.
- the arbitration unit is configured with an update logic of the reference state identifier, and the update logic is shown in FIG4 .
- the initial values of the reference state identifier, the first state identifier, and the second state identifier are all 0.
- the electronic device can read the weight attribute data from the storage unit, and load it into the weight attribute register of the systolic array after the preset running time. If the weight attribute register is in a state to be stored with the weight attribute data after the preset running time, then in the second clock cycle, the electronic device can also read the weight attribute data from the storage unit, and load it into the weight attribute register of the systolic array after the preset running time. This loading method will continue for several clock cycles until the weight attribute register is in a state where the weight attribute data has been stored after the preset running time.
- the clock cycle at this time can be recorded as the set number of clock cycles. That is to say, in the set number of clock cycles, the electronic device reads the weight attribute data from the storage unit, and loads it into the weight attribute register of the systolic array after the preset running time. At this time, the weight attribute register is in a state where the weight attribute data has been stored.
- the first state flag When a sub-request of a weight read request corresponding to a set number of clock cycles flows into the arbitration unit, the first state flag may be set from 0 to 1, and when the sub-request flows out of the arbitration unit, the first state flag may be set from 1 to 0.
- the first state flag When the first state flag is set from 1 to 0, it may indicate that after a preset running time, the weight attribute register has stored the weight attribute data of the set number of clock cycles, and at this time, the reference state flag is set from 0 to 1.
- the electronic device can read the feature mapping attribute data from the storage unit in any clock cycle, and after a preset running time, the feature mapping attribute data flows into the systolic array and is calculated with the weight attribute data in the weight attribute register.
- this clock cycle is the first clock cycle for reading the feature mapping attribute data.
- the second state flag can be set from 0 to 1, and when the sub-request flows out of the arbitration unit, the second state flag can be set from 1 to 0.
- the state flag is set from 1 to 0, it can indicate that the weight attribute data of the weight attribute register and the feature mapping attribute data of the first clock cycle are calculated after the preset running time. At this time, the reference state flag is set from 1 to 0.
- the reference state flag is first set from 0 to 1, and then from 1 to 0.
- the reference state flag can be obtained when any sub-request of the feature mapping read request is arbitrated by the arbitration unit. If the reference state flag is equal to 1, it is determined that the sub-request meets the second preset condition, and the second storage block to which the sub-request belongs is determined based on the address carried by the sub-request, and the sub-request is sent to the corresponding second storage block through the scheduler; if the reference state flag is equal to 0, it is determined that the sub-request does not meet the second preset condition, and the sub-request is blocked.
- the sub-request meets the second preset condition and the sub-request belongs to the second storage block 0
- the sub-request is sent to the second storage block 0 through the scheduler
- the sub-request meets the second preset condition and the sub-request belongs to the second storage block 1
- the sub-request is sent to the second storage block 1 through the scheduler.
- the selection unit reads the data corresponding to the sub-request from the second storage block corresponding to the sub-request based on any sub-request of the feature map read request.
- the data corresponding to each sub-request is collected by the collection unit.
- the collection process can be seen in the description of FIG6 and will not be repeated here.
- the collection unit collects the data corresponding to each sub-request of the feature map read request, it is equivalent to collecting the feature map attribute data corresponding to the feature map read request.
- the feature map attribute data is input into the systolic array through the export command.
- the arbitration unit arbitrates the sub-requests of the feature mapping read request of one clock cycle, the arbitration results of the sub-requests are the same. Based on this, after the feature mapping read request of one clock cycle is arbitrated by the arbitration unit, the feature mapping read request can be input into the conflict detection unit for the above-mentioned processing. In this case, the sub-requests of the feature mapping read request can be arbitrated by the arbitration unit in the processing block, or the processing block may not include the arbitration unit.
- the sub-requests of the feature mapping read request can be directly sent to the corresponding second storage block through the hash unit, or the sub-requests of the feature mapping read request can be directly sent to the corresponding scheduler through the hash unit, and then sent to the corresponding second storage block after being scheduled by the scheduler.
- the weight read request can be processed similarly.
- the arbitration unit when any sub-request of the weight read request is arbitrated by the arbitration unit, if the reference state identifier is equal to 0, it is determined that the sub-request meets the first preset condition, the second storage block to which the sub-request belongs is determined based on the address carried by the sub-request, and the sub-request is sent to the corresponding second storage block through the scheduler; if the reference state identifier is equal to 1, it is determined that the sub-request does not meet the first preset condition, and the sub-request is blocked.
- the arbitration unit determines that the sub-request of the weighted read request (corresponding to the first weighted read request) satisfies the first preset condition in each clock cycle of several clock cycles. As time passes, when the arbitration unit determines that the sub-request of the weighted read request does not satisfy the first preset condition, the arbitration unit can determine that the sub-request of the feature mapping read request (corresponding to the first feature mapping read request) satisfies the second preset condition.
- the arbitration unit determines that the sub-request of the feature mapping read request satisfies the second preset condition, when the read delay of the weight attribute data and the read delay of the feature mapping attribute data are the same, the subsequent reading of the weight attribute data and the reading of the feature mapping attribute data can be performed without the arbitration of the arbitration unit, that is, the subsequent sub-request of the weighted read request (corresponding to the second weighted read request) and the sub-request of the feature mapping read request (corresponding to the second feature mapping read request) can be performed without the arbitration of the arbitration unit. This is because the read delay of the weight attribute data and the read delay of the feature mapping attribute data are both reference time cycles.
- the electronic device can write feature mapping attribute data and weight attribute data into a storage unit based on a write request.
- the following describes how to process the write request.
- the write request includes at least one sub-request (corresponding to the third sub-request).
- the hash unit determines the first storage block corresponding to the sub-request based on the address of the first storage block corresponding to the sub-request, and sets the request path of the processing block where the first storage block corresponding to the sub-request is located to be valid, so that the sub-request can reach the corresponding first storage block; if the sub-request is invalid, the hash unit sets the request path of the processing block where the first storage block corresponding to the sub-request is located to be invalid, so as to prevent the sub-request from reaching the corresponding first storage block.
- the second storage block to which the sub-request belongs can be determined based on the address carried by the sub-request, and the sub-request is sent to the corresponding second storage block through the scheduler to The corresponding data is written into the second storage block.
- the scheduler can receive sub-requests of feature mapping read requests, sub-requests of weighted read requests, and sub-requests of write requests.
- the priorities of various sub-requests can be configured.
- the priority of the sub-request of feature mapping read request is higher than the priority of the sub-request of weighted read request
- the priority of the sub-request of weighted read request is higher than the priority of the sub-request of write request.
- the scheduler Based on the priorities of various sub-requests, the scheduler sends various sub-requests to the second storage block in order.
- the arbitration unit determines whether the sub-request of the feature mapping read request meets the second preset condition or whether the sub-request of the weighted read request meets the first preset condition based on the reference state identifier.
- the condition is met, the data corresponding to the sub-request is read from the second storage block.
- the storage resources required for the reference state identifier are less, which is conducive to reducing the chip area.
- the arbitration unit performs arbitration on the sub-request, which is beneficial to construct the timing between the weight attribute data and the feature mapping attribute data.
- the embodiment of the present application can achieve efficient switching between multiple requests, which is beneficial to improving the efficiency of data reading.
- FIG. 12 is an architecture diagram of another storage system provided in an embodiment of the present application.
- the storage system includes a processing unit 1201, and also includes a storage unit 1202 and a systolic array 1203 respectively connected to the processing unit 1201.
- the storage unit 1202 is used to store weight attribute data and feature mapping attribute data.
- the processing unit 1201 is used to obtain a first weight read request and a first feature map read request, wherein the first weight read request is used to request to read weight attribute data from a storage unit, and the first feature map read request is used to request to read feature map attribute data from a storage unit.
- the processing unit 1201 is further used to obtain a reference state identifier, which is used to represent the state of a weight attribute register in the systolic array 1203 after a preset running time from the current time, and the weight attribute register is used to store weight attribute data.
- the processing unit 1201 is further configured to read the weight attribute data stored in the storage unit to the systolic array 1203 in response to a first weight read request when the reference state identifier satisfies a first preset condition.
- the processing unit 1201 is further configured to read the feature mapping attribute data stored in the storage unit to the systolic array 1203 in response to the first feature mapping read request when the reference state identifier satisfies the second preset condition;
- the systolic array 1203 is used to perform calculations based on the weight attribute data and the feature map attribute data.
- the processing unit 1201 includes a first state register, a reference state register, and a determination unit;
- a first state register used to store a first state flag, the first state flag indicating whether the weight attribute register has stored the weight attribute data of a set number of clock cycles after a preset running time from the current time;
- a reference status register used to store a reference status identifier
- a determination unit is used to obtain a first state identifier; when the first state identifier represents that after a preset running time from the current time, the weight attribute register has stored the weight attribute data of a set number of clock cycles, it is determined that the reference state identifier represents that after the preset running time from the current time, the weight attribute register is in a state where the weight attribute data has been stored, and the reference state identifier satisfies a second preset condition: the reference state identifier represents that after the preset running time from the current time, the weight attribute register is in a state where the weight attribute data has been stored.
- the processing unit 1201 includes a second state register, a reference state register, and a determination unit;
- a second state register used to store a second state flag, the second state flag indicating whether the weight attribute data in the weight attribute register is calculated with the feature mapping attribute data of the first clock cycle after a preset running time from the current time;
- a reference status register used to store a reference status identifier
- a determination unit is used to obtain a second state identifier; when the second state identifier represents that after a preset running time from the current time, the weight attribute data in the weight attribute register and the feature mapping attribute data of the first clock cycle are calculated, it is determined that the reference state identifier represents that after the preset running time from the current time, the weight attribute register is in a state of waiting to store the weight attribute data, and the reference state identifier satisfies the first preset condition: the reference state identifier represents that after the preset running time from the current time, the weight attribute register is in a state of waiting to store the weight attribute data.
- the processing unit 1201 is further configured to obtain a second weight read request and a second feature map read request, the second weight read request being used to request reading weight attribute data from the storage unit, and the second feature map read request being used to request reading feature map attribute data from the storage unit;
- the processing unit 1201 is further configured to read the weight attribute data stored in the storage unit to the systolic array 1203 based on the second weight read request;
- the processing unit 1201 is further configured to read the feature mapping attribute data stored in the storage unit to the systolic array 1203 based on the second feature mapping read request, and the read delay of the weight attribute data and the read delay of the feature mapping attribute data are preset running times.
- the processing unit 1201 includes a hash unit, a reading unit, and a collecting unit
- the storage unit 1202 includes at least one first storage block
- Any first storage block used to store weight attribute data and feature map attribute data
- a hash unit configured to determine, for any first weighted sub-request, a first storage block corresponding to any first weighted sub-request when any first weighted sub-request is a valid request, the first weighted read request including at least one first weighted sub-request;
- a reading unit configured to read weight attribute data corresponding to any first weight sub-request from a first storage block corresponding to any first weight sub-request
- the collecting unit is used to collect the weight attribute data corresponding to each first weight sub-request, and send the weight attribute data corresponding to each first weight sub-request to the systolic array 1203.
- system further includes a conflict detection unit
- a conflict detection unit used for extracting an address of a first storage block corresponding to any first weight sub-request from any first weight sub-request
- the conflict detection unit is also used to determine that any first weight sub-request is a valid request in response to the address of the first storage block corresponding to any first weight sub-request being different from the address of the first storage block corresponding to the reference first weight sub-request, and the reference first weight sub-request is at least one first weight sub-request among multiple first weight sub-requests except any first weight sub-request.
- any first storage block includes at least one second storage block
- Any second storage block used to store weight attribute data and feature map attribute data
- the reading unit is used to determine the second storage block corresponding to any first weight sub-request; and read the weight attribute data corresponding to any first weight sub-request from the second storage block corresponding to any first weight sub-request.
- the processing unit 1201 is further used to obtain a write request, which is used to write weight attribute data or feature mapping attribute data into a storage unit; and write the weight attribute data or feature mapping attribute data corresponding to the write request into the storage unit.
- the processing unit 1201 includes a hash unit and a write unit, and the storage unit 1202 includes at least one first storage block;
- a hash unit configured to determine, for any third sub-request, a first storage block corresponding to any third sub-request, The write request includes at least one third sub-request;
- a writing unit is used to write the weight attribute data or feature mapping attribute data corresponding to any third sub-request into the first storage block corresponding to any third sub-request.
- the function of the first state register, the function of the second state register, the function of the reference state register and the function of the determination unit can be implemented by the arbitration unit shown in FIG7.
- the function of the hash unit can be implemented by the hash unit shown in FIG7.
- the function of the reading unit can be implemented by the scheduler and the selection unit shown in FIG8.
- the function of the collection unit can be implemented by the collection unit shown in FIG7.
- the function of the conflict detection unit can be implemented by the conflict detection unit shown in FIG7.
- the function of the second storage block can be implemented by the second storage block shown in FIG7.
- the function of the writing unit can be implemented by the scheduler shown in FIG8.
- FIG. 12 belongs to the same concept, and the specific implementation process is detailed in the method embodiment.
- the contents in the system provided in FIG. 12 corresponding to FIG. 7 and FIG. 8 can be found in the description of FIG. 7 and FIG. 8, and will not be repeated here.
- the above system characterizes the state of the weight attribute register in the systolic array through a reference state identifier.
- the weight attribute data stored in the storage unit is read to the systolic array in response to the first weight read request;
- the reference state identifier satisfies the second preset condition
- the feature mapping attribute data stored in the storage unit is read to the systolic array in response to the first feature mapping read request.
- the storage resources required for the reference state identifier are fewer.
- the system can be applied to chips. Since the fewer the storage resources, the smaller the chip area, the chip has the conditions to reduce the chip area.
- FIG9 is a schematic diagram of the structure of a data reading device provided in an embodiment of the present application. As shown in FIG9 , the device includes:
- An acquisition module 901 is used to acquire a first weight read request and a first feature map read request, wherein the first weight read request is used to request to read weight attribute data from a storage unit, and the first feature map read request is used to request to read feature map attribute data from a storage unit;
- the acquisition module 901 is further used to acquire a reference state identifier, which is used to represent the state of a weight attribute register in the systolic array after a preset running time from the current time, and the weight attribute register is used to store weight attribute data;
- a reading module 902 configured to read the weight attribute data stored in the storage unit into the systolic array in response to a first weight read request when the reference state identifier satisfies a first preset condition
- the reading module 902 is also used to read the feature mapping attribute data stored in the storage unit to the systolic array in response to the first feature mapping read request when the reference state identifier meets the second preset condition.
- the systolic array is used to perform calculations based on the weight attribute data and the feature mapping attribute data.
- the reference state flag satisfies the first preset condition: the reference state flag indicates that the weight attribute register is in a state of waiting to store weight attribute data after a preset running time from the current time;
- the reference state flag satisfies the second preset condition that: the reference state flag indicates that after a preset running time from the current time, the weight attribute register is in a state where all weight attribute data are stored.
- the acquisition module 901 is further used to acquire a first state flag, which indicates whether the weight attribute register has stored the weight attribute data of a set number of clock cycles after a preset running time from the current time;
- the device also includes:
- a determination module is used to determine that the reference state identification represents that the weight attribute register is in a state where the weight attribute register has stored the weight attribute data for a set number of clock cycles after the preset running time from the current time, when the first state identification represents that the weight attribute register has stored the weight attribute data for a set number of clock cycles after the preset running time from the current time.
- the acquisition module 901 is further used to acquire a second state identifier, which indicates whether the weight attribute data in the weight attribute register is calculated with the feature mapping attribute data of the first clock cycle after a preset running time from the current time;
- the device also includes:
- a determination module is used to determine that the reference state identification represents that the weight attribute register is in a state of waiting to store weight attribute data after the preset running time from the current time, when the weight attribute data in the weight attribute register and the feature mapping attribute data of the first clock cycle are calculated after the second state identification represents that the weight attribute data in the weight attribute register and the feature mapping attribute data of the first clock cycle are calculated.
- the acquisition module 901 is further used to acquire a second weight read request and a second feature map read request, the second weight read request is used to request to read weight attribute data from the storage unit, and the second feature map read request is used to request to read feature map attribute data from the storage unit;
- the reading module 902 is also used to read the weight attribute data stored in the storage unit to the pulsation array based on the second weight read request; and read the feature mapping attribute data stored in the storage unit to the pulsation array based on the second feature mapping read request, and the read delay of the weight attribute data and the read delay of the feature mapping attribute data are preset running times.
- the first weight read request includes at least one first weight sub-request
- the storage unit includes at least one first storage block
- the reading module 902 is used to determine the first storage block corresponding to any first weight sub-request for any first weight sub-request, when any first weight sub-request is a valid request, read the weight attribute data corresponding to any first weight sub-request from the first storage block corresponding to any first weight sub-request; and send the weight attribute data corresponding to each first weight sub-request to the pulsating array.
- the device further includes:
- An extraction module used to extract the address of the first storage block corresponding to any first weight sub-request from any first weight sub-request
- a determination module is used to determine that any first weight sub-request is a valid request in response to the address of the first storage block corresponding to any first weight sub-request being different from the address of the first storage block corresponding to the reference first weight sub-request, and the reference first weight sub-request is the first weight sub-request among multiple first weight sub-requests other than any first weight sub-request.
- any first storage block includes at least one second storage block
- the reading module 902 is used to determine the second storage block corresponding to any first weight sub-request; and read the weight attribute data corresponding to any first weight sub-request from the second storage block corresponding to any first weight sub-request.
- the acquisition module 901 is further used to acquire a write request, where the write request is used to write the third data into the storage unit, where the third data is weight attribute data or feature mapping attribute data;
- the device also includes:
- the writing module is used to write the weight attribute data or feature mapping attribute data corresponding to the write request into the storage unit.
- the write request includes at least one third sub-request
- the storage unit includes at least one first storage block
- a writing module is used to determine, for any third sub-request, a first storage block corresponding to any third sub-request; and write the weight attribute data or feature mapping attribute data corresponding to any third sub-request into the first storage block corresponding to any third sub-request.
- the above-mentioned device characterizes the state of the weight attribute register in the pulsation array through a reference state identifier.
- the weight attribute data stored in the storage unit is read to the pulsation array in response to the first weight read request;
- the reference state identifier satisfies the second preset condition
- the feature mapping attribute data stored in the storage unit is read to the pulsation array in response to the first feature mapping read request.
- the storage resources required for the reference state identifier are fewer.
- the device can be applied to chips. Since the fewer the storage resources, the smaller the chip area, the chip has the conditions to reduce the chip area.
- the device provided in FIG. 9 above only uses the division of the above functional modules as an example to illustrate when implementing its functions.
- the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above.
- the device and method embodiments provided in the above embodiments belong to the same concept, and their specific implementation process is detailed in the method embodiment, which will not be repeated here.
- FIG10 shows a block diagram of a terminal device 1000 provided by an exemplary embodiment of the present application. 1000 includes: a processor 1001 and a memory 1002 .
- the processor 1001 may include one or more processing cores, such as a 4-core processor, an 8-core processor, etc.
- the processor 1001 may be implemented in at least one hardware form of DSP (Digital Signal Processing), FPGA (Field-Programmable Gate Array), and PLA (Programmable Logic Array).
- the processor 1001 may also include a main processor and a coprocessor.
- the main processor is a processor for processing data in the awake state, also known as a CPU (Central Processing Unit); the coprocessor is a low-power processor for processing data in the standby state.
- the processor 1001 may be integrated with a GPU (Graphics Processing Unit), which is responsible for rendering and drawing the content to be displayed on the display screen.
- the processor 1001 may also include an AI (Artificial Intelligence) processor, which is used to process computing operations related to machine learning.
- AI Artificial Intelligence
- the memory 1002 may include one or more computer-readable storage media, which may be non-transitory.
- the memory 1002 may also include a high-speed random access memory, and a non-volatile memory, such as one or more disk storage devices, flash memory storage devices.
- the non-transitory computer-readable storage medium in the memory 1002 is used to store at least one computer-readable instruction, which is used to be executed by the processor 1001 to implement the data reading method provided in the method embodiment of the present application.
- the terminal device 1000 may further optionally include: a peripheral device interface 1003 and at least one peripheral device.
- the processor 1001, the memory 1002 and the peripheral device interface 1003 may be connected via a bus or a signal line.
- Each peripheral device may be connected to the peripheral device interface 1003 via a bus, a signal line or a circuit board.
- the peripheral device includes: at least one of a radio frequency circuit 1004, a display screen 1005, a camera assembly 1006, an audio circuit 1007 and a power supply 1008.
- the peripheral device interface 1003 may be used to connect at least one peripheral device related to I/O (Input/Output) to the processor 1001 and the memory 1002.
- the processor 1001, the memory 1002, and the peripheral device interface 1003 are integrated on the same chip or circuit board; in some other embodiments, any one or two of the processor 1001, the memory 1002, and the peripheral device interface 1003 may be implemented on a separate chip or circuit board, which is not limited in this embodiment.
- the radio frequency circuit 1004 is used to receive and transmit RF (Radio Frequency) signals, also known as electromagnetic signals.
- the radio frequency circuit 1004 communicates with the communication network and other communication devices through electromagnetic signals.
- the radio frequency circuit 1004 converts electrical signals into electromagnetic signals for transmission, or converts received electromagnetic signals into electrical signals.
- the radio frequency circuit 1004 includes: an antenna system, an RF transceiver, one or more amplifiers, a tuner, an oscillator, a digital signal processor, a codec chipset, a user identity module card, and the like.
- the radio frequency circuit 1004 can communicate with other terminals through at least one wireless communication protocol.
- the display screen 1005 can be one, which is set on the front panel of the terminal device 1000; in other embodiments, the display screen 1005 can be at least two, which are respectively set on different surfaces of the terminal device 1000 or are folded; in other embodiments, the display screen 1005 can be a flexible display screen, which is set on the curved surface or folded surface of the terminal device 1000. Even, the display screen 1005 can also be set to a non-rectangular irregular shape, that is, a special-shaped screen.
- the display screen 1005 can be made of materials such as LCD (Liquid Crystal Display) and OLED (Organic Light-Emitting Diode).
- the camera assembly 1006 is used to collect images or videos.
- the camera assembly 1006 includes a front camera and Rear camera.
- the front camera is set on the front panel of the terminal, and the rear camera is set on the back of the terminal.
- there are at least two rear cameras which are any one of a main camera, a depth of field camera, a wide-angle camera, and a telephoto camera, so as to realize the fusion of the main camera and the depth of field camera to realize the background blur function, the fusion of the main camera and the wide-angle camera to realize panoramic shooting and VR (Virtual Reality) shooting function or other fusion shooting functions.
- the camera assembly 1006 may also include a flash.
- the flash can be a single-color temperature flash or a dual-color temperature flash.
- a dual-color temperature flash refers to a combination of a warm light flash and a cold light flash, which can be used for light compensation at different color temperatures.
- the audio circuit 1007 may include a microphone and a speaker.
- the microphone is used to collect sound waves from the user and the environment, and convert the sound waves into electrical signals and input them into the processor 1001 for processing, or input them into the radio frequency circuit 1004 to achieve voice communication.
- the microphone may also be an array microphone or an omnidirectional acquisition microphone.
- the speaker is used to convert the electrical signal from the processor 1001 or the radio frequency circuit 1004 into sound waves.
- the speaker may be a traditional film speaker or a piezoelectric ceramic speaker.
- the speaker When the speaker is a piezoelectric ceramic speaker, it can not only convert the electrical signal into sound waves audible to humans, but also convert the electrical signal into sound waves inaudible to humans for purposes such as ranging.
- the audio circuit 1007 may also include a headphone jack.
- the power supply 1008 is used to power various components in the terminal device 1000.
- the power supply 1008 can be an alternating current, a direct current, a disposable battery, or a rechargeable battery.
- the rechargeable battery can be a wired rechargeable battery or a wireless rechargeable battery.
- a wired rechargeable battery is a battery charged through a wired line
- a wireless rechargeable battery is a battery charged through a wireless coil.
- the rechargeable battery can also be used to support fast charging technology.
- the terminal device 1000 further includes one or more sensors 1009 .
- the one or more sensors 1009 include, but are not limited to: an acceleration sensor 1011 , a gyroscope sensor 1012 , a pressure sensor 1013 , an optical sensor 1014 , and a proximity sensor 1015 .
- the acceleration sensor 1011 can detect the magnitude of acceleration on the three coordinate axes of the coordinate system established by the terminal device 1000.
- the acceleration sensor 1011 can be used to detect the components of gravity acceleration on the three coordinate axes.
- the processor 1001 can control the display screen 1005 to display the user interface in a horizontal view or a vertical view according to the gravity acceleration signal collected by the acceleration sensor 1011.
- the acceleration sensor 1011 can also be used for collecting game or user motion data.
- the gyro sensor 1012 can detect the body direction and rotation angle of the terminal device 1000, and the gyro sensor 1012 can cooperate with the acceleration sensor 1011 to collect the user's 3D actions on the terminal device 1000.
- the processor 1001 can implement the following functions based on the data collected by the gyro sensor 1012: motion sensing (such as changing the UI according to the user's tilt operation), image stabilization during shooting, game control, and inertial navigation.
- the pressure sensor 1013 can be set on the side frame of the terminal device 1000 and/or the lower layer of the display screen 1005.
- the processor 1001 performs left and right hand recognition or shortcut operations according to the holding signal collected by the pressure sensor 1013.
- the processor 1001 controls the operability controls on the UI interface according to the user's pressure operation on the display screen 1005.
- the operability controls include at least one of a button control, a scroll bar control, an icon control, and a menu control.
- the optical sensor 1014 is used to collect the ambient light intensity.
- the processor 1001 can control the display brightness of the display screen 1005 according to the ambient light intensity collected by the optical sensor 1014. Specifically, when the ambient light intensity is high, the display brightness of the display screen 1005 is increased; when the ambient light intensity is low, the display brightness of the display screen 1005 is reduced.
- the processor 1001 can also dynamically adjust the shooting parameters of the camera assembly 1006 according to the ambient light intensity collected by the optical sensor 1014.
- the proximity sensor 1015 also known as a distance sensor, is usually disposed on the front panel of the terminal device 1000.
- the proximity sensor 1015 is used to collect the distance between the user and the front of the terminal device 1000.
- the processor 1001 controls the display screen 1005 to switch from the on screen state to the off screen state; when the proximity sensor 1015 detects that the distance between the user and the front of the terminal device 1000 is gradually decreasing, the processor 1001 controls the display screen 1005 to switch from the on screen state to the off screen state;
- the processor 1001 controls the display screen 1005 to switch from the screen-off state to the screen-on state.
- FIG. 10 does not limit the terminal device 1000 and may include more or fewer components than shown in the figure, or combine certain components, or adopt a different component arrangement.
- FIG11 is a schematic diagram of the structure of the server provided in the embodiment of the present application.
- the server 1100 may have relatively large differences due to different configurations or performances, and may include one or more processors 1101 and one or more memories 1102, wherein the one or more memories 1102 store at least one computer-readable instruction, and the at least one computer-readable instruction is loaded and executed by the one or more processors 1101 to implement the data reading method provided in the above-mentioned various method embodiments.
- the processor 1101 is a CPU.
- the server 1100 may also have components such as a wired or wireless network interface, a keyboard, and an input and output interface for input and output.
- the server 1100 may also include other components for implementing device functions, which will not be described in detail here.
- the above-mentioned computer readable storage medium can be a read-only memory (ROM), a random access memory (RAM), a compact disc (CD-ROM), a magnetic tape, a floppy disk, an optical data storage device, etc.
- ROM read-only memory
- RAM random access memory
- CD-ROM compact disc
- magnetic tape a magnetic tape
- floppy disk a magnetic tape
- optical data storage device etc.
- a computer program product is further provided.
- the computer program product stores at least one computer-readable instruction.
- the at least one computer-readable instruction is loaded and executed by a processor to enable an electronic device to implement any of the above data reading methods.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Neurology (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Molecular Biology (AREA)
- Pure & Applied Mathematics (AREA)
- Biophysics (AREA)
- Computational Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims (23)
- 一种数据读取方法,由电子设备的处理器执行,所述电子设备包括分别与所述处理器连接的脉动阵列和存储单元,所述脉动阵列包含权重属性寄存器,所述方法包括:获取第一权重读请求和第一特征映射读请求,所述第一权重读请求用于请求从所述存储单元中读取权重属性数据,所述第一特征映射读请求用于请求从所述存储单元中读取特征映射属性数据;获取参考状态标识,所述参考状态标识用于表征在预设运行时间后,脉动阵列中权重属性寄存器的状态,所述权重属性寄存器用于寄存所述权重属性数据;在所述参考状态标识满足第一预设条件的情况下,响应于所述第一权重读请求将所述存储单元存储的所述权重属性数据读取至所述脉动阵列;及在所述参考状态标识满足第二预设条件的情况下,响应于所述第一特征映射读请求将所述存储单元存储的所述特征映射属性数据读取至所述脉动阵列,所述脉动阵列用于基于所述权重属性数据和特征映射属性数据进行计算。
- 根据权利要求1所述的方法,所述参考状态标识满足第一预设条件为:所述参考状态标识表征在从当前时间起的所述预设运行时间后,所述权重属性寄存器处于待寄存权重属性数据的状态。
- 根据权利要求1或2所述的方法,所述参考状态标识满足第二预设条件为:所述参考状态标识表征在从当前时间起的所述预设运行时间后,所述权重属性寄存器处于寄存完权重属性数据的状态。
- 根据权利要求2所述的方法,所述方法还包括:获取第一状态标识,所述第一状态标识表征在从当前时间起的所述预设运行时间后,所述权重属性寄存器是否寄存完第设定数量个时钟周期的权重属性数据;当所述第一状态标识表征:在从当前时间起的所述预设运行时间后,所述权重属性寄存器寄存完第设定数量个时钟周期的权重属性数据,则确定所述参考状态标识表征在从当前时间起的所述预设运行时间后,所述权重属性寄存器处于寄存完权重属性数据的状态。
- 根据权利要求3所述的方法,所述方法还包括:获取第二状态标识,所述第二状态标识表征在从当前时间起的所述预设运行时间后所述权重属性寄存器中的权重属性数据是否和第一个时钟周期的特征映射属性数据进行计算;当所述第二状态标识表征:在从当前时间起的所述预设运行时间后,所述权重属性寄存器中的权重属性数据和第一个时钟周期的特征映射属性数据进行计算,则确定所述参考状态标识表征在从当前时间起的所述预设运行时间后,所述权重属性寄存器处于待寄存权重属性数据的状态。
- 根据权利要求1至5任一项所述的方法,在所述基于所述第一特征映射读请求将所述存储单元存储的所述特征映射属性数据读取至所述脉动阵列之后,还包括:获取第二权重读请求和第二特征映射读请求,所述第二权重读请求用于请求从所述存储单元中读取所述权重属性数据,所述第二特征映射读请求用于请求从所述存储单元中读取所述特征映射属性数据;基于所述第二权重读请求将所述存储单元存储的所述权重属性数据读取至所述脉动阵列;基于所述第二特征映射读请求将所述存储单元存储的所述特征映射属性数据读取至所述脉动阵列,所述权重属性数据的读延迟和所述特征映射属性数据的读延迟为所述预设运行时间。
- 根据权利要求1至6任一项所述的方法,所述第一权重读请求包括至少一个第一权重子请求,所述存储单元包括至少一个第一存储块;所述响应于所述第一权重读请求将所述存储单元存储的所述权重属性数据读取至所 述脉动阵列,包括:对于任一个第一权重子请求,在所述任一个第一权重子请求为有效请求的情况下,确定所述任一个第一权重子请求对应的第一存储块,从所述任一个第一权重子请求对应的第一存储块中读取所述任一个第一权重子请求对应的权重属性数据;将各个第一权重子请求对应的权重属性数据送入所述脉动阵列。
- 根据权利要求7所述的方法,所述方法还包括:从所述任一个第一权重子请求中提取所述任一个第一权重子请求对应的第一存储块的地址;当所述任一个第一权重子请求对应的第一存储块的地址与参考第一权重子请求对应的第一存储块的地址不同,确定所述任一个第一权重子请求为有效请求,所述参考第一权重子请求为所述多个第一权重子请求中除所述任一个第一权重子请求之外的至少一个第一权重子请求。
- 根据权利要求7所述的方法,任一个第一存储块包括至少一个第二存储块;所述从所述任一个第一权重子请求对应的第一存储块中读取所述任一个第一权重子请求对应的权重属性数据,包括:确定所述任一个第一权重子请求对应的第二存储块;从所述任一个第一权重子请求对应的第二存储块中读取所述任一个第一权重子请求对应的权重属性数据。
- 根据权利要求1至9任一项所述的方法,所述方法还包括:获取写请求,所述写请求用于将所述权重属性数据或者所述特征映射属性数据写入所述存储单元中;将所述写请求对应的权重属性数据或者特征映射属性数据写入所述存储单元中。
- 根据权利要求10所述的方法,所述写请求包括至少一个第三子请求,所述存储单元包括至少一个第一存储块;所述将所述写请求对应的权重属性数据或者特征映射属性数据写入所述存储单元中,包括:对于任一个第三子请求,确定所述任一个第三子请求对应的第一存储块;将所述任一个第三子请求对应的权重属性数据或者特征映射属性数据写入所述任一个第三子请求对应的第一存储块。
- 一种存储系统,所述存储系统包括处理单元,还包括分别与所述处理器连接的存储单元和脉动阵列,所述脉动阵列包含权重属性寄存器;所述存储单元,用于存储权重属性数据和特征映射属性数据;所述处理单元,用于获取第一权重读请求和第一特征映射读请求,所述第一权重读请求用于从所述存储单元中读取权重属性数据,所述第一特征映射读请求用于请求从所述存储单元中读取特征映射属性数据;所述处理单元,还用于获取参考状态标识,所述参考状态标识用于表征在从当前时间起的预设运行时间后,脉动阵列中权重属性寄存器的状态,所述权重属性寄存器用于寄存所述权重属性数据;所述处理单元,还用于在所述参考状态标识满足第一预设条件的情况下,响应于所述第一权重读请求将所述存储单元存储的所述权重属性数据读取至所述脉动阵列;及所述处理单元,还用于在所述参考状态标识满足第二预设条件的情况下,基于所述第一特征映射读请求将所述存储单元存储的所述特征映射属性数据读取至所述脉动阵列;所述脉动阵列,用于基于所述权重属性数据和特征映射属性数据进行计算。
- 根据权利要求12所述的系统,所述处理单元包括第一状态寄存器、参考状态寄存器和确定单元;所述第一状态寄存器,用于寄存第一状态标识,所述第一状态标识表征在从当前时间 起的所述预设运行时间后所述权重属性寄存器是否寄存完第设定数量个时钟周期的权重属性数据;所述参考状态寄存器,用于寄存所述参考状态标识;所述确定单元,用于获取所述第一状态标识;当所述第一状态标识表征:在从当前时间起的所述预设运行时间后,所述权重属性寄存器寄存完第设定数量个时钟周期的权重属性数据,则确定所述参考状态标识表征在从当前时间起的所述预设运行时间后,所述权重属性寄存器处于寄存完权重属性数据的状态,所述参考状态标识满足第二预设条件为:所述参考状态标识表征在从当前时间起的所述预设运行时间后,所述权重属性寄存器处于寄存完权重属性数据的状态。
- 根据权利要求12或13所述的系统,所述处理单元包括第二状态寄存器、参考状态寄存器和确定单元;所述第二状态寄存器,用于寄存第二状态标识,所述第二状态标识表征在从当前时间起的所述预设运行时间后所述权重属性寄存器中的权重属性数据是否和第一个时钟周期的特征映射属性数据进行计算;所述参考状态寄存器,用于寄存所述参考状态标识;所述确定单元,用于获取第二状态标识;在所述第二状态标识表征在从当前时间起的所述预设运行时间后所述权重属性寄存器中的权重属性数据和第一个时钟周期的特征映射属性数据进行计算的情况下,确定所述参考状态标识表征在从当前时间起的所述预设运行时间后,所述权重属性寄存器处于待寄存权重属性数据的状态,所述参考状态标识满足第一预设条件为:所述参考状态标识表征在从当前时间起的所述预设运行时间后,所述权重属性寄存器处于待寄存权重属性数据的状态。
- 根据权利要求12至14任一项所述的系统,所述处理单元,还用于获取第二权重读请求和第二特征映射读请求,所述第二权重读请求用于请求从所述存储单元中读取所述权重属性数据,所述第二特征映射读请求用于请求从所述存储单元中读取所述特征映射属性数据;所述处理单元,还用于基于所述第二权重读请求将所述存储单元存储的所述权重属性数据读取至所述脉动阵列;所述处理单元,还用于基于所述第二特征映射读请求将所述存储单元存储的所述特征映射属性数据读取至所述脉动阵列,所述权重属性数据的读延迟和所述特征映射属性数据的读延迟为所述预设运行时间。
- 根据权利要求12至15任一项所述的系统,所述处理单元包括散列单元、读取单元和收集单元,所述存储单元包括至少一个第一存储块;任一个第一存储块,用于存储所述权重属性数据和所述特征映射属性数据;所述散列单元,用于对于任一个第一权重子请求,在所述任一个第一权重子请求为有效请求的情况下,确定所述任一个第一权重子请求对应的第一存储块,所述第一权重读请求包括至少一个第一权重子请求;所述读取单元,用于从所述任一个第一权重子请求对应的第一存储块中读取所述任一个第一权重子请求对应的权重属性数据;所述收集单元,用于收集各个第一权重子请求对应的权重属性数据,并将各个第一权重子请求对应的权重属性数据送入所述脉动阵列。
- 根据权利要求16所述的系统,所述系统还包括冲突检测单元;所述冲突检测单元,用于从所述任一个第一权重子请求中提取所述任一个第一权重子请求对应的第一存储块的地址;所述冲突检测单元,还用于当所述任一个第一权重子请求对应的第一存储块的地址与参考第一权重子请求对应的第一存储块的地址不同,确定所述任一个第一权重子请求为有效请求,所述参考第一权重子请求为所述多个第一权重子请求中除所述任一个第一权重子 请求之外的至少一个第一权重子请求。
- 根据权利要求16所述的系统,任一个第一存储块包括至少一个第二存储块;任一个第二存储块,用于存储所述权重属性数据和所述特征映射属性数据;所述读取单元,用于确定所述任一个第一权重子请求对应的第二存储块;从所述任一个第一权重子请求对应的第二存储块中读取所述任一个第一权重子请求对应的权重属性数据。
- 根据权利要求12至18任一项所述的系统,所述处理单元,还用于获取写请求,所述写请求用于将所述权重属性数据或者所述特征映射属性数据写入所述存储单元中;将所述写请求对应的权重属性数据或者特征映射属性数据写入所述存储单元中。
- 根据权利要求19所述的系统,所述处理单元包括散列单元和写入单元,所述存储单元包括至少一个第一存储块;所述散列单元,用于对于任一个第三子请求,确定所述任一个第三子请求对应的第一存储块,所述写请求包括至少一个第三子请求;所述写入单元,用于将所述任一个第三子请求对应的权重属性数据或者特征映射属性数据写入所述任一个第三子请求对应的第一存储块。
- 一种数据读取装置,所述装置包括:获取模块,用于获取第一权重读请求和第一特征映射读请求,所述第一权重读请求用于请求从存储单元中读取权重属性数据,所述第一特征映射读请求用于请求从所述存储单元中读取特征映射属性数据;所述获取模块,还用于获取参考状态标识,所述参考状态标识用于表征在从当前时间起的预设运行时间后,脉动阵列中权重属性寄存器的状态,所述权重属性寄存器用于寄存所述权重属性数据;读取模块,用于在所述参考状态标识满足第一预设条件的情况下,响应于所述第一权重读请求将所述存储单元存储的所述权重属性数据读取至所述脉动阵列;及所述读取模块,还用于在所述参考状态标识满足第二预设条件的情况下,基于所述第一特征映射读请求将所述存储单元存储的所述特征映射属性数据读取至所述脉动阵列,所述脉动阵列用于基于所述权重属性数据和特征映射属性数据进行计算。
- 一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条计算机可读指令,所述至少一条计算机可读指令由所述处理器加载并执行,以使所述电子设备实现如权利要求1至11任一所述的数据读取方法。
- 一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机可读指令,所述至少一条计算机可读指令由处理器加载并执行,以使电子设备实现如权利要求1至11任一所述的数据读取方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP24766217.4A EP4586256A4 (en) | 2023-03-09 | 2024-01-25 | METHOD AND APPARATUS FOR READING DATA, DEVICE, AND READABLE STORAGE MEDIA |
| US19/169,081 US20250259687A1 (en) | 2023-03-09 | 2025-04-03 | Data reading method and apparatus, device, and readable storage medium |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310254874.9A CN116959532A (zh) | 2023-03-09 | 2023-03-09 | 数据读取方法、装置、设备及可读存储介质 |
| CN202310254874.9 | 2023-03-09 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US19/169,081 Continuation US20250259687A1 (en) | 2023-03-09 | 2025-04-03 | Data reading method and apparatus, device, and readable storage medium |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024183494A1 true WO2024183494A1 (zh) | 2024-09-12 |
Family
ID=88453670
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2024/073958 Ceased WO2024183494A1 (zh) | 2023-03-09 | 2024-01-25 | 数据读取方法、装置、设备及可读存储介质 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20250259687A1 (zh) |
| EP (1) | EP4586256A4 (zh) |
| CN (1) | CN116959532A (zh) |
| WO (1) | WO2024183494A1 (zh) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116959532A (zh) * | 2023-03-09 | 2023-10-27 | 腾讯科技(深圳)有限公司 | 数据读取方法、装置、设备及可读存储介质 |
| CN117667208B (zh) * | 2024-02-01 | 2024-05-24 | 腾讯科技(深圳)有限公司 | 数据运算方法、存储器及计算机设备 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107578098A (zh) * | 2017-09-01 | 2018-01-12 | 中国科学院计算技术研究所 | 基于脉动阵列的神经网络处理器 |
| CN110785778A (zh) * | 2018-08-14 | 2020-02-11 | 深圳市大疆创新科技有限公司 | 基于脉动阵列的神经网络处理装置 |
| CN112639839A (zh) * | 2020-05-22 | 2021-04-09 | 深圳市大疆创新科技有限公司 | 神经网络的运算装置及其控制方法 |
| CN114218136A (zh) * | 2021-12-17 | 2022-03-22 | 中国人民解放军国防科技大学 | 一种面向脉动阵列的面积友好存储地址映射方法 |
| US20220413851A1 (en) * | 2021-06-25 | 2022-12-29 | Intel Corporation | Register file for systolic array |
| CN116959532A (zh) * | 2023-03-09 | 2023-10-27 | 腾讯科技(深圳)有限公司 | 数据读取方法、装置、设备及可读存储介质 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102487535B1 (ko) * | 2018-02-20 | 2023-01-12 | 삼성전자주식회사 | 시스톨릭 배열(Systolic Array)을 이용하여 딥 러닝(Deep Learning) 연산을 수행하는 방법 및 장치 |
-
2023
- 2023-03-09 CN CN202310254874.9A patent/CN116959532A/zh active Pending
-
2024
- 2024-01-25 WO PCT/CN2024/073958 patent/WO2024183494A1/zh not_active Ceased
- 2024-01-25 EP EP24766217.4A patent/EP4586256A4/en active Pending
-
2025
- 2025-04-03 US US19/169,081 patent/US20250259687A1/en active Pending
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107578098A (zh) * | 2017-09-01 | 2018-01-12 | 中国科学院计算技术研究所 | 基于脉动阵列的神经网络处理器 |
| CN110785778A (zh) * | 2018-08-14 | 2020-02-11 | 深圳市大疆创新科技有限公司 | 基于脉动阵列的神经网络处理装置 |
| CN112639839A (zh) * | 2020-05-22 | 2021-04-09 | 深圳市大疆创新科技有限公司 | 神经网络的运算装置及其控制方法 |
| US20220413851A1 (en) * | 2021-06-25 | 2022-12-29 | Intel Corporation | Register file for systolic array |
| CN114218136A (zh) * | 2021-12-17 | 2022-03-22 | 中国人民解放军国防科技大学 | 一种面向脉动阵列的面积友好存储地址映射方法 |
| CN116959532A (zh) * | 2023-03-09 | 2023-10-27 | 腾讯科技(深圳)有限公司 | 数据读取方法、装置、设备及可读存储介质 |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP4586256A4 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN116959532A (zh) | 2023-10-27 |
| EP4586256A4 (en) | 2026-03-18 |
| EP4586256A1 (en) | 2025-07-16 |
| US20250259687A1 (en) | 2025-08-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110673944B (zh) | 执行任务的方法和装置 | |
| CN108304265B (zh) | 内存管理方法、装置及存储介质 | |
| CN111569435B (zh) | 排行榜生成方法、系统、服务器及存储介质 | |
| CN110147347B (zh) | 用于矩阵处理的芯片、矩阵处理方法、装置及存储介质 | |
| CN110045960A (zh) | 基于芯片的指令集处理方法、装置及存储介质 | |
| US20250259687A1 (en) | Data reading method and apparatus, device, and readable storage medium | |
| CN110222789A (zh) | 图像识别方法及存储介质 | |
| WO2025180460A1 (zh) | 模型训练方法、装置、计算机设备及存储介质 | |
| CN115220564B (zh) | 功耗调节方法、装置、存储介质、处理器及电子设备 | |
| WO2021109703A1 (zh) | 数据处理方法、芯片、设备及存储介质 | |
| CN110647881B (zh) | 确定图像对应的卡片类型的方法、装置、设备及存储介质 | |
| CN111068323B (zh) | 智能速度检测方法、装置、计算机设备及存储介质 | |
| CN111914985B (zh) | 深度学习网络模型的配置方法、装置及存储介质 | |
| CN115713101B (zh) | 并行处理方法及装置 | |
| CN116842047A (zh) | 缓存更新方法、装置、设备及计算机可读存储介质 | |
| CN111695981B (zh) | 资源转移方法、装置及存储介质 | |
| HK40099457A (zh) | 数据读取方法、装置、设备及可读存储介质 | |
| WO2024193535A1 (zh) | 数据处理方法、装置、设备及可读存储介质 | |
| CN111897488B (zh) | 管理数据的方法、装置、电子设备及介质 | |
| CN116661587A (zh) | 眼动数据处理方法及电子设备 | |
| CN117456044A (zh) | 波形绘制方法、装置、设备及存储介质 | |
| WO2024130737A1 (zh) | 图像渲染方法、装置及电子设备 | |
| CN116431257A (zh) | 页面跳转方法、装置、计算机设备及存储介质 | |
| CN111381979B (zh) | 神经网络的开发验证方法、装置、系统及存储介质 | |
| CN112699997A (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: 24766217 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2024766217 Country of ref document: EP |
|
| ENP | Entry into the national phase |
Ref document number: 2024766217 Country of ref document: EP Effective date: 20250411 |
|
| WWP | Wipo information: published in national office |
Ref document number: 2024766217 Country of ref document: EP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |