# US 11,307,864 B2 · Data processing apparatus and method

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,307,864 B2
- Document ID: US11307864B2
- Status: Granted
- Kind: B2
- Application number: 16/698,992
- Filed: 2019-11-28
- Published: 2020-04-02
- Granted: 2022-04-19
- Earliest claimed: 2017-07-05
- Assignees: Shanghai Cambricon Information Technology Co., Ltd.
- Applicants: Shanghai Cambricon Information Technology Co., Ltd.
- Inventors: Tianshi Chen; Lei Zhang; Shaoli Liu
- Web page: https://patentgrep.com/patent/US11307864B2

## CPC

- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 1/3296: by lowering the supply or operating voltage
- G06F 3/012: {Head tracking input arrangements}
- G06F 3/017: {Gesture based interaction, e.g. based on a set of recognized hand gestures (interaction based on gestures traced on a digitiser G06F3/04883)}
- G06F 9/3004: {to perform operations on memory}
- G06F 9/30047: {Prefetch instructions; cache control instructions}
- G06F 9/3836: {Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution}
- G06F 9/3893: {controlled in tandem, e.g. multiplier-accumulator}
- G06F 9/505: {considering the load}
- G06F 9/546: {Message passing systems or structures, e.g. queues}
- G06F 11/0751: {Error or fault detection not based on redundancy (power supply failures G06F1/30; network fault management H04L41/06)}
- G06F 11/1004: {to protect a block of data words, e.g. CRC or checksum (G06F11/1076 takes precedence; security arrangements for protecting computers or computer systems against unauthorized activity G06F21/00)}
- G06F 11/1044: {with specific ECC/EDC distribution}
- G06F 11/1048: {using arrangements adapted for a specific error detection or correction feature}
- G06F 11/186: {Passive fault masking when reading multiple copies of the same data}
- G06F 11/3024: {where the computing system component is a central processing unit [CPU]}
- G06F 11/3058: {Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations (thermal management in cooling arrangements of a computing system G06F1/206)}
- G06F 11/3062: {where the monitored property is the power consumption (power management in a computing system G06F1/3203)}
- G06F 12/0875: with dedicated cache, e.g. instruction or stack
- G06F 17/16: Matrix or vector computation {, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization (matrix transposition G06F7/78)}
- G06F 18/24: Classification techniques
- G06F 18/24133: {Distances to prototypes}
- G06N 3/04: Architecture, e.g. interconnection topology
- G06N 3/045: Combinations of networks
- G06N 3/0464: Convolutional networks [CNN, ConvNet]
- G06N 3/048: Activation functions
- G06N 3/0495: Quantised networks; Sparse networks; Compressed networks
- G06N 3/063: using electronic means
- G06N 3/09: Supervised learning
- G06V 10/82: using neural networks
- G06V 10/94: Hardware or software architectures specially adapted for image or video understanding
- G06V 40/168: {Feature extraction; Face representation}
- G06V 40/174: {Facial expression recognition}
- G06F 1/324: by lowering clock frequency
- G06F 7/5443: {Sum of products (for applications thereof, see the relevant places, e.g. G06F17/10, H03H17/00)}
- G06F 7/57: Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations {(G06F7/49, G06F7/491 take precedence)}
- G06F 9/3001: {Arithmetic instructions}
- G06F 11/1612: {where the redundant component is persistent storage}
- G06F 11/167: {Error detection by comparing the memory output}
- G06F 11/3051: {Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs (verification or detection of system hardware configuration G06F11/2247)}
- G06F 2201/81: Threshold
- G06F 2203/011: Emotion or mood input determined on the basis of sensed human body parameters such as pulse, heart rate or beat, temperature of skin, facial expressions, iris, voice pitch, brain activity patterns
- G06F 2212/452: Instruction code
- G06N 3/044: Recurrent networks, e.g. Hopfield networks
- G06N 3/047: Probabilistic or stochastic networks
- G06N 3/08: Learning methods
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06V: IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

The disclosure provides a data processing device and method. The data processing device may include: a task configuration information storage unit and a task queue configuration unit. The task configuration information storage unit is configured to store configuration information of tasks. The task queue configuration unit is configured to configure a task queue according to the configuration information stored in the task configuration information storage unit. According to the disclosure, a task queue may be configured according to the configuration information.

## Claims

### Claim 1

A data processing device, comprising:
a task configuration information storage unit configured to store configuration information of tasks, wherein the task configuration information storage unit includes multiple storage units configured to store multiple task queues respectively into each of the multiple storage units according to the configuration information;
a task queue configuration unit configured to configure a task queue according to the configuration information stored in the task configuration information storage unit, and
an external device configured to provide the configuration information and execute the task queue, wherein the external device is configured to send the configuration information to the task configuration information storage unit, wherein the task queue configuration unit is configured to send tasks sequentially to the external device according to priority information in the configuration information, and the external device is configured to execute the tasks in the task queue, and then send a first end signal to the task configuration information storage unit every time a task is executed, wherein the task configuration information storage unit is configured to send an interrupt signal to the external device every time the first end signal is received, and the external device is configured to process the interrupt signal and send a second end signal to the task configuration information storage unit, wherein the task configuration information storage unit is configured to modify the stored task configuration information after receiving the first end signal.

### Claim 2 (depends on 1)

The data processing device of claim 1, wherein the configuration information includes at least one of a start tag of one of the tasks, an end tag of one of the tasks, a priority of one of the tasks, and launching manners for the tasks, a priority of the multiple storage units, or a priority of each task in each of the multiple storage units.

### Claim 3 (depends on 1)

The data processing device of claim 1, wherein the multiple storage units include: a first storage unit associated with a first priority, configured to store a first task queue, and a second storage unit associated with a second priority, configured to store a second task queue, wherein the first priority is higher than the second priority, and a priority of the first task queue is higher than a priority of the second task queue.

### Claim 4 (depends on 2)

The data processing device of claim 2, wherein a task in the task queue of each of the multiple storage units is stored according to the priority of each task in each of the multiple storage units.

### Claim 5 (depends on 1)

The data processing device of claim 1, wherein the external device is further configured to dynamically modify the configuration information of tasks that have not yet been sent to the external device at any time including when the task queue is executed and when the task is finished.

### Claim 6 (depends on 1)

The data processing device claim 1, wherein the external device includes one or more processor cores, wherein the one or more processor cores include a control module configured to provide the configuration information and dynamically modify the configuration information of tasks that have not yet been executed, and further include an operation module configured to execute the task queue, wherein the control module is configured to send the configuration information to the task configuration information storage unit, wherein the operation module includes a control unit, an operation unit, and one of the multiple storage units, the task queue configuration unit is configured to send tasks sequentially to the control unit according to the priority information in the configuration information, and the control unit is configured to monitor the configuration information of a self-launching task queue device, configure operation instructions of the storage unit, control the operation unit and the storage unit to execute tasks in the task queue, and send a first end signal to the task configuration information storage unit every time a task is executed, wherein the task configuration information storage unit is configured to send the interrupt signal to the control unit after receiving one first end signal, and the control unit is configured to process the interrupt signal and send the second end signal to the task configuration information storage unit, wherein the storage unit includes an external storage module and an instruction storage module, and the configuring the operation instructions of the storage unit by the control unit includes: inputting the instructions of the external storage module into the instruction storage module.

### Claim 7 (depends on 6)

The data processing device of claim 6, wherein the storage unit is configured to store data and instructions for a neural network operation, the control unit is configured to control the storage unit and a neural network operation unit to execute the tasks in the task queue, and the operation unit includes the neural network operation unit configured to perform the neural network operation on data according to instructions stored in the storage unit, wherein the storage unit is configured to store data and instructions for a universal operation, the control unit is configured to control the storage unit and a universal operation unit to execute the tasks in the task queue, and the operation unit includes the universal operation unit configured to perform the universal operation on the data according to the instructions stored in the storage unit, wherein the device further includes a data cache, an instruction cache, and a direct memory access (DMA), wherein the data cache is configured to cache data, intermediate results, and operational results, the instruction cache is configured to cache instructions, and the DMA is taken as a data interface between the storage unit and the data cache or a data interface between the storage unit and the instruction cache, wherein the data cache includes an input neuron cache, a weight cache, and an output neuron cache, wherein the input neuron cache is configured to cache input neurons, the weight cache is configured to cache weights, and the output neuron cache is configured to cache output neurons.

### Claim 8 (depends on 7)

The data processing device of claim 7, wherein the neural network operation unit includes at least one computational component, and the computational component includes at least one of multiplier, at least one adder, at least one activation function unit, or at least one pooling unit, wherein the multiple adders form an adder tree.

### Claim 9 (depends on 7)

The data processing device of claim 7, wherein the neural network operation unit includes multiple processing elements (PEs), and one or more arithmetic logic units (ALUs).

### Claim 10

A data processing method, comprising:
storing, by a task configuration information storage unit, configuration information of tasks, wherein the task configuration information storage unit stores multiple task queues separately into each of storage units of the task configuration information storage unit according to the configuration information;
configuring, by a task queue configuration unit, a task queue according to the configuration information stored in the task configuration information storage unit; providing, by an external device, the configuration information;
executing, by the external device, the task queue;
sending, by the external device, the configuration information to the task configuration information storage unit;
sending, by the task queue configuration unit, the tasks sequentially to the external device according to the priority information in the configuration information;
executing, by the external device, tasks in the task queue;
sending, by the external device, a first end signal to the task configuration information storage unit every time a task is completed;
sending by the task configuration information storage unit, an interrupt signal to the external device every time a first end signal is received;
processing, by the external device, the interrupt signal and sends a second end signal to the task configuration information storage unit; and
modifying, by the task configuration information storage unit, the stored configuration information of a task after receiving the first end signal.

### Claim 11 (depends on 10)

The data processing method of claim 10, wherein the configuration information includes at least one of a start tag of one of the tasks, an end tag of one of the tasks, a priority of one of the tasks, launching manners for the tasks, a priority of the multiple storage units, or a priority of each task in the each of the multiple storage units.

### Claim 12 (depends on 11)

The data processing method of claim 11, wherein the task configuration information storage unit stores the tasks in the task queue according to the priority of each task in the task configuration information storage unit.

### Claim 13 (depends on 10)

The data processing method of claim 10, further comprising: dynamically modifying, by the external device, the configuration information of tasks that have not yet been sent to the external device at any time including the time when the task queue is executed and when the task is finished.

### Claim 14 (depends on 10)

The data processing method claim 10, wherein a first storage unit of the storage unit stores a first task queue, and a second storage unit stores a second task queue, wherein the first task queue includes a high-priority task queue, and the second task queue includes a low-priority task queue.

### Claim 15 (depends on 10)

The data processing method of claim 10, wherein the external device includes one or more processor cores.

### Claim 16 (depends on 15)

The data processing method of claim 15, further comprising:
providing, by a control module of the one or more processor cores, the configuration information;
dynamically modifying, by the control module, the configuration information of tasks that have not yet been sent to the control module;
executing, by an operation module, the task queue
sending, by the control module, the configuration information to the task configuration information storage unit;
sending, by the task queue configuration unit, a configured task queue to a control unit;
monitoring, by the control unit, the configuration information of a self-launching task queue device;
configuring, by the control unit, an operation instruction of a storage unit;
controlling, by the control unit, an operation unit and the storage unit to execute the tasks in the task queue;
sending, by the operation unit, a first end signal to the task configuration information storage unit every time a task is completed;
sending, by task configuration information storage unit, an interrupt signal to the control unit every time the first end signal is received;
processing, by the control unit, the interrupt signal; and
sending, by the control unit, a second end signal to the task configuration information storage unit.

### Claim 17 (depends on 16)

The data processing method of claim 16, further comprising:
storing, by the storage unit, data and instructions for a neural network operation,
controlling, by the control unit, the storage unit and a neural network operation unit to execute the tasks in the task queue, wherein the operation unit includes the neural network operation unit which performs the neural network operation on data according to instructions stored in the storage unit.

### Claim 18 (depends on 16)

The data processing device of claim 16, further comprising:
storing, by the storage unit, data and instructions for a universal operation,
controlling, by the control unit, the storage unit and a universal operation unit to execute the tasks in the task queue,
wherein the operation unit includes the universal operation unit which performs the universal operation on the data according to the instructions stored in the storage unit.

### Claim 19

An electronic device, comprising:
a data processing device that includes:
a task configuration information storage unit configured to store configuration information of tasks, wherein the task configuration information storage unit includes multiple storage units configured to store multiple task queues respectively into each storage unit according to the configuration information;
a task queue configuration unit configured to configure a task queue according to the configuration information stored in the task configuration information storage unit; and
an external device configured to provide the configuration information and execute the task queue, wherein the external device is configured to send the configuration information to the task configuration information storage unit, wherein the task queue configuration unit is configured to send tasks sequentially to the external device according to priority information in the configuration information, and the external device is configured to execute the tasks in the task queue, and then send a first end signal to the task configuration information storage unit every time a task is executed, wherein the task configuration information storage unit is configured to send an interrupt signal to the external device every time the first end signal is received, and the external device is configured to process the interrupt signal and send a second end signal to the task configuration information storage unit, wherein the task configuration information storage unit is configured to modify the stored task configuration information after receiving the first end signal.
