IP Library Granted Patent US 8,898,671
Granted Patent B2
US 8,898,671 · App. 13/393,967 · Granted Nov 25, 2014

Processor that executes a plurality of threads by promoting efficiency of transfer of data that is shared with the plurality of threads

Inventor: Hiroyuki Morishita (Osaka, JP)
Assignee: Panasonic Corporation
G06F9/3009G06F9/4812G06F9/3851G06F9/4843
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,898,671
App. No.
13/393,967
Granted
Nov 25, 2014
Kind
B2
Abstract

Provide is a processor that can maintain a dependency relationship between a plurality of instructions and one read instruction. The processor comprises: a setting unit configured to set, when an instruction that exists at a location ensuring that writing into a memory area has been completed is executed, usage information indicating whether writing into the memory area has been completed such that the usage information indicates that writing into a memory area during execution of one thread has been completed; and a control unit configured to (i) perform execution of a read instruction to read data stored in the memory area when the usage information indicates that writing into the memory area during execution of the one thread has been completed, and (ii) suppress execution of the read instruction when the usage information indicates that writing into the memory area during execution of the one thread has not been completed.

Claims (43)

1. A processor that executes a plurality of threads, the processor comprising:

a register configured to store, in association, an instruction address, a data address, and usage information indicating whether or not writing into a memory area has been completed;

a setting unit configured to monitor a fetch address of an instruction fetch in one thread, and when the fetch address matches the instruction address stored in the register, update the usage information stored in the register with a value indicating that writing into the memory area has been completed;

a control unit configured to monitor a read address for execution of a read instruction of another thread, and when the read address matches the data address stored in the register, suppress execution of the read instruction when the usage information stored in the register indicates that writing into the memory area has not been completed; and

an address conversion unit configured to convert a virtual address to a physical address, the virtual address being received when the data is read, wherein

when converting the virtual address, the address conversion unit determines whether or not a read address check flag of the virtual address is ON, and

the control unit performs monitoring pertaining to the read instruction only when the address conversion unit has determined that the read address check flag is ON.

2. The processor of claim 1 , wherein

the control unit further configured to monitor a different read address for execution of a different read instruction of a different thread than the other thread, and when the different read address matches the data address stored in the register to suppress execution of the read instruction when the usage information stored in the register indicates that writing into the memory area has not been completed.

3. The processor of claim 1 , wherein

when converting the virtual address, the address conversion unit determines whether or not a fetch address check flag of the virtual address is ON, and

the control unit performs monitoring pertaining to the instruction fetch only when the address conversion unit has determined that the fetch address check flag is ON.

4. The processor of claim 1 , wherein

when updating the usage information to indicate that writing into the memory area has been completed, the setting unit further sets another piece of usage information to indicate that writing into the memory area has been completed, the other piece of usage information being managed by another processor.

5. The processor of claim 1 provided in an image processing system that decodes images, wherein

the one thread and the other thread are for decoding the images.

6. The processor of claim 1 provided in an image processing system that encodes images, wherein

the one thread and the other thread are for encoding the images.

7. The processor of claim 1 , wherein

the processor is connected to an instruction memory and to a data memory that is distinct from the instruction memory,

the instruction fetch is processing of fetching an instruction from the instruction memory, and

the read instruction is an instruction of fetching data from the data memory.

8. A control method used in a processor that executes a plurality of threads, the processor including a register, the control method comprising:

storing, in the register and in association, an instruction address, a data address, and usage information indicating whether or not writing into a memory area has been completed;

monitoring a fetch address of an instruction fetch in one thread, and when the fetch address matches the instruction address stored in the register, updating the usage information stored in the register with a value indicating that writing into the memory area has been completed;

monitoring a read address for execution of a read instruction of another thread, and when the read address matches the data address stored in the register, suppressing execution of the read instruction when the usage information stored in the register indicates that writing into the memory area has not been completed; and

converting a virtual address to a physical address, the virtual address being received when the data is read, and determining whether or not a read address check flag of the virtual address is ON, wherein

monitoring pertaining to the read instruction is performed only when the read address check flag is determined to be ON.

9. An image processing apparatus that processes an image by using a plurality of threads, the image processing apparatus comprising:

a register configured to store, in association, an instruction address, a data address, and usage information indicating whether or not writing into a memory area has been completed;

a setting unit configured to monitor a fetch address of an instruction fetch in one thread, and when the fetch address matches the instruction address stored in the register, update the usage information stored in the register with a value indicating that writing into the memory area has been completed;

a control unit configured to monitor a read address for execution of a read instruction of another thread, and when the read address matches the data address stored in the register, suppress execution of the read instruction when the usage information stored in the register indicates that writing into the memory area has not been completed; and

an address conversion unit configured to convert a virtual address to a physical address, the virtual address being received when the data is read, wherein

when converting the virtual address, the address conversion unit determines whether or not a read address check flag of the virtual address is ON, and

the control unit performs monitoring pertaining to the read instruction only when the address conversion unit has determined that the read address check flag is ON.

10. The image processing apparatus of claim 9 that decodes an encoded image, wherein

macroblocks are allocated to the plurality of threads so that the allocated macroblocks differ from one another, the macroblocks being arranged continuously in the encoded image,

the instruction address stored in the register is an address at which an instruction is stored that indicates that one of variable length decoding processing, processing pertaining to inverse quantization and inverse frequency transformation, processing pertaining to motion compensation, reconfiguration processing of the image, and deblocking filter processing has been completed, and

when judging that writing performed in the one processing has been completed in one of the macroblocks, the control unit controls the same processing as the one processing to be performed in a next macroblock that immediately follows the one macroblock.

11. The image processing apparatus of claim 9 that encodes the image, wherein

macroblocks are allocated to the plurality of threads so that the allocated macroblocks differ from one another, the macroblocks being arranged continuously in the encoded image,

the instruction address stored in the register is an address at which an instruction is stored that indicates that one of subtraction processing for calculating a prediction error of image data that is targeted for encoding, quantizing processing for performing quantization and frequency transformation on the prediction error, encoding processing, generation processing of a reference image, and processing pertaining to motion compensation has been completed, and

when judging that writing performed in the one processing has been completed in one of the macroblocks, the control unit controls the same processing as the one processing to be performed in a next macroblock that immediately follows the one macroblock.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2012
From: MORISHITA, HIROYUKI
To: PANASONIC CORPORATION
Reel/Frame 028276/0578 →
Priority Claims (1)
JP 2010-154629 · Jul 7, 2010 · national
Continuity (1)
Related Publication 20120167114A1 · Jun 28, 2012