| Information processing device -> Monitor Keywords |
|
Information processing deviceUSPTO Application #: 20060224870Title: Information processing device Abstract: The present invention is defined in that an information processing device which reads, buffers, decodes and executes instructions from an instruction store portion by pipeline processing comprises: an instruction reading request portion which assigns a read address to the instruction store portion; an instruction buffering portion including a plurality of instruction buffers which buffer an instruction sequence read from the instruction store portion; an instruction execution unit which decodes and executes instructions buffered by the instruction buffering portion; a branching instruction detection portion which detects a branching instruction in the instruction sequence read from the instruction store portion; and a branch target address information buffering portion including a plurality of branch target address information buffers which, when the branching instruction detection portion has detected a branching instruction, buffer the branch target address information for generating the branch target address of the branching instruction; wherein, when the branching instruction detection portion has detected a branching instruction, either the branch target address information of the branching instruction is stored in one of the plurality of branch target address information buffers, or the branch target instruction sequence of the branching instruction is stored in one of the plurality of instruction buffers in addition to the storing in the branch target address information buffer. (end of abstract) Agent: Katten Muchin Rosenman LLP - New York, NY, US Inventors: Shin-ichiro Tago, Taizo Sato, Yoshimasa Takebe, Yasuhiro Yamazaki, Teruhiko Kamigata, Atsuhiro Suga, Hiroshi Okano, Hitoshi Yoda USPTO Applicaton #: 20060224870 - Class: 712238000 (USPTO) Related Patent Categories: Electrical Computers And Digital Processing Systems: Processing Architectures And Instruction Processing (e.g., Processors), Processing Control, Branching (e.g., Delayed Branch, Loop Control, Branch Predict, Interrupt), Conditional Branching, Prefetching A Branch Target (i.e., Look Ahead), Branch Target Buffer The Patent Description & Claims data below is from USPTO Patent Application 20060224870. Brief Patent Description - Full Patent Description - Patent Application Claims BACKGROUND OF THE INVENTION [0001] 1. Filed of the Invention [0002] The present invention relates to an information processing device which reads instructions, buffers and executes instructions by pipeline processing, and more particularly, to an information processing device which can reduce pipeline branching confusion when executing instruction sequences comprising branching instructions. [0003] The present invention further relates to a memory bus access system for an information processing device which performs instruction fetching, instruction buffering and instruction decoding and execution by pipeline processing, and more particularly provides an efficient memory bus access system in a dual instruction fetch-type information processing system which performs parallel fetches for branching-generating side instruction sequence (referred to below as target side instruction sequence) and non-branching-generating side sequence (referred to below as sequential side instruction sequence). [0004] 2. Description of the Related Art [0005] In information processing devices such as microprocessors which have employed pipeline processing, the reading of consecutive instruction sequences is performed successively without waiting for the execution of the individual instructions to be completed and the aforementioned instructions are buffered in an instruction buffer in such a way that there are no empty spaces in the execution cycle of the execution unit. However, when there is a branching instruction in the instruction sequence, the branch target instruction which has the possibility of being executed directly after this branching instruction becomes an instruction which does not follow in address from that branching instruction and the pipeline processing becomes confused, possibly reducing the efficiency of the information processing device. [0006] For this reason, a method has been devised in which, if the information processing device has read a branching instruction, the branch target instruction sequence of that branching instruction is read in advance and buffered in an instruction buffer so that the confusion of the pipeline processing is minimized. [0007] FIG. 13 shows a general constructional diagram of a conventional information processing device which performs such pipeline processing. A conventional information processing device has an instruction store 11 which stores the instruction sequence which is to be executed, an instruction buffering portion 12 which buffers the instruction read from the instruction store 11 and supplies to the decoder 21 the instruction whose execution is predicted, an instruction execution unit 20 provided with a decoder 21 which decodes the instruction supplied from the instruction buffering portion 12 and, if that instruction is a branching instruction, supplies a branch target address information (usual corresponding address) to a branch target address generating portion 16, a branch target address generating portion 16 which generates branch target addresses on the basis of the branch target address information which is received from the decoder 21 and a current address counter value, and an instruction reading request portion 17 which selects the instruction address to be read next from among the program counter values or branch target addresses received from the branch target address generating portion 16, or the addresses which have been requested from the instruction execution unit 20, supplies this address to the instruction store 11 and executes the instruction reading request. [0008] In this type of information processing device, the decoder 21 decodes instructions which are supplied from the instruction buffering portion 12 and, if it detects that this instruction is a branching instruction, before the execution of this branching instruction, generated is the address of the branch target instruction which is a candidate to be the next instruction executed after this branching instruction, and this branch target instruction and the following instruction sequence can be read from the instruction store 11 in advance and buffered in the instruction buffering portion 12. [0009] Therefore, when the branching to a branch target instruction has been determined as a result of the execution of a destination instruction, or when branching to a branch target instruction has been predicted, it is possible to process a branching instruction sequence at high speed with a low level of pipeline processing confusion by fetching this branch target instruction sequence from the instruction buffering portion 12 to the instruction execution unit 20. [0010] In such a case, if instruction buffers for a plurality of sequences are provided in the instruction buffering portion 12, the branch target instruction sequence which is predicted to branch can be respectively buffered in the instruction buffers for a plurality of sequences and when it has been decided to perform branching the branch target instruction can be quickly fetched from the instruction buffer so that even when branching instructions consecutively follow, pipeline confusion can be reduced. [0011] However, the constitution according to the prior art provides multi-sequence instruction buffers so that all the branch target instruction sequences which are predicted to branch can be buffered when there is a large number of branching instructions. This results in a disadvantageous increase in the hardware (instruction buffer) of the information processing device. [0012] In addition, because in the information processing device according to the prior art it was necessary to decode branching instructions so as to generate branch target addresses in order to read branch target instruction sequences of the branching instructions, a large amount of processing time was required after reading the branching instruction until the branch target instruction corresponding to the aforementioned branching instruction was read, so that an instruction buffer for a plurality of instruction sequences could not be employed effectively. [0013] The microprocessor (or information processing device) which relates to a second aspect of the invention and which performs instruction fetching, instruction buffering, instruction decoding and instruction execution by pipeline processing, performs high speed processing because it performs consecutive instruction sequence instruction fetching in advance, without any gaps in the execution stages in the execution unit. However, if there are branching instructions present inside the instruction sequence, which instruction sequence is fetched next varies depending on whether the system waits for the execution of that branching instruction and branches on the target side instruction sequence or whether it continues on the sequential side instruction sequence. As a result of this, empty spaces are generated temporally in the execution cycle of the execution unit. A target side instruction sequence is a branch target instruction sequence which is executed when branching is carried out as a result of a branching instruction being executed, and a sequential side instruction sequence is an instruction sequence which is executed when branching is not carried out as a result of a branching instruction being executed. [0014] In order to avoid the abovementioned situations, dual instruction fetch-type information processing devices have been proposed, in which the CPU simultaneously outputs instruction fetch requests for both target side instruction sequence and sequential side instruction sequence and stores these instructions respectively in the 2 instruction buffers inside the CPUs. In these dual instruction fetch type devices, irrespective of whether the execution of the branching instruction results in branching to the target side or not, the next instruction sequence to be executed is buffered in the instruction buffer so that it is possible to minimize the execution stage delay associated with a new instruction fetch resulting from a predicted miss for the branching direction of the branching instruction. [0015] In addition, a CPU which is a microprocessor uses a cache memory in order to perform high speed instruction fetching. Without using an external memory bus, CPU can not fetch instructions and data from a main memory of an external component in which instructions and data and the like are stored. Because the abovementioned memory bus access operations take a comparatively long time (a large number of pipeline cycles), a cache memory which stores instructions and data in the main memory is provided to the CPU. Usually, in the instruction fetch operation from the CPU, requests are made to the cache memory and fetched instructions are stored in the instruction buffer. When the cache memory does not store the fetched instruction with resulting a cache miss, a fetch object instruction is fetched from the main memory via the memory bus and is stored in both the instruction buffer and the cache memory. [0016] However, when a main memory bus access which makes an instruction fetch from the main memory is performed frequently, the traffic on the memory bus increases. An increase in traffic on the memory busses causes delays in accessing the memory bus. In particular, it is undesirable that, in a stage before the branching instruction is executed, it takes a long time to fetch from the main memory instructions which have become necessary as a result of the execution of the branching instruction, due to the fact that target side or sequential side instructions which will probably not be executed are extracted from the main memory. SUMMARY OF THE INVENTION [0017] Therefore, the object of the present invention is to restrict the increase in the hardware for instruction buffers and the like and reduce the confusion in the pipeline processing due to consecutive branching instructions in an information processing device which reads an instruction before the aforementioned instruction is executed by pipeline processing. [0018] A further object of the present invention is to provide a memory bus access system for an information processing device which reduces the number of superfluous memory bus accesses and makes more efficient instruction fetches possible. [0019] In order to achieve the above objects, a first aspect of the present invention is defined in that an information processing device which reads, buffers, decodes and executes instructions from an instruction store portion by pipeline processing comprises: an instruction reading request portion which assigns a read address to the instruction store portion; an instruction buffering portion including a plurality of instruction buffers which buffer an instruction sequence read from the instruction store portion; an instruction execution unit which decodes and executes instructions buffered by the instruction buffering portion; a branching instruction detection portion which detects a branching instruction in the instruction sequence read from the instruction store portion; and a branch target address information buffering portion including a plurality of branch target address information buffers which, when the branching instruction detection portion has detected a branching instruction, buffer the branch target address information for generating the branch target address of the branching instruction; wherein, when the branching instruction detection portion has detected a branching instruction, either the branch target address information of the branching instruction is stored in one of the plurality of branch target address information buffers, or the branch target instruction sequence of the branching instruction is stored in one of the plurality of instruction buffers in addition to the storing in the branch target address information buffer. [0020] In order to achieve the above objects, a second aspect of the present invention is defined in that an information processing device which reads, buffers, decodes and executes instructions from an instruction store portion by pipeline processing comprises: an instruction reading request portion which assigns a read address to the instruction store portion; an instruction buffering portion including a plurality of instruction buffers which buffer an instruction sequence read from the instruction store portion; an instruction execution unit which decodes and executes instructions buffered by the instruction buffering portion; a branching instruction detection portion which detects a branching instruction in the instruction sequence read from the instruction store portion; and a branch target address information buffering portion including a plurality of branch target address information buffers which, when the branching instruction detection portion has detected a branching instruction, buffer the branch target address information for generating the branch target address of the branching instruction; wherein, the first instruction sequence being processed is stored in either one of the first or second instruction buffer and when the branching instruction detection portion detects the branching instruction in the first instruction sequence, a second instruction sequence of the branch target is stored in the other one of the first or second instruction buffers in accordance with the branch target address information of the branching instruction, the branch target address information of the next branching instruction in the first instruction sequence is stored in either one of the first or second branch target address information buffer, and the branch target address information of the branching instruction in the second instruction sequence is stored in the other one of the first or second branch target address information buffer. [0021] Because this invention has a branching instruction detection portion which detects branching instructions in an instruction sequence which has been read from instruction store portion, a branching instruction in an instruction sequence which has been read can be detected before the decoding of the instruction buffered inside the first or second instruction buffer. [0022] In addition, when the branching instruction is in the first instruction sequence, since it is necessary to employ at least the first and second instruction buffers which store the first instruction sequence that is being processed and the second instruction sequence of the branch target, the hardware for instruction buffering portions which store the branch target instruction sequence can be reduced. Continue reading... Full patent description for Information processing device Brief Patent Description - Full Patent Description - Patent Application Claims Click on the above for other options relating to this Information processing device patent application. ### 1. Sign up (takes 30 seconds). 2. Fill in the keywords to be monitored. 3. Each week you receive an email with patent applications related to your keywords. Start now! - Receive info on patent apps like Information processing device or other areas of interest. ### Previous Patent Application: Combination of forwarding/bypass network with history file Next Patent Application: System for speculative branch prediction optimization and method thereof Industry Class: Electrical computers and digital processing systems: processing architectures and instruction processing (e.g., processors) ### FreshPatents.com Support Thank you for viewing the Information processing device patent info. IP-related news and info Results in 0.76664 seconds Other interesting Feshpatents.com categories: Qualcomm , Schering-Plough , Schlumberger , Seagate , Siemens , Texas Instruments , |
||