Branching (e.g., Delayed Branch, Loop Control, Branch Predict, Interrupt) Patents (Class 712/233)
  • Patent number: 7853756
    Abstract: In a method for controlling a processor which accesses information of a storage device through cache memory, when reading information stored in a target address or an address range of the storage device, it is monitored whether there is an update access to the address or address range from another processor, and also the processor is entered into a suspense status, which is released using the occurrence of the update access to the storage device from another processor as a trigger.
    Type: Grant
    Filed: September 10, 2004
    Date of Patent: December 14, 2010
    Assignee: Fujitsu Limited
    Inventor: Masaki Ukai
  • Publication number: 20100306506
    Abstract: A pipelined out-of-order execution in-order retire microprocessor includes a branch predictor that predicts a target address of a branch instruction, a fetch unit that fetches instructions at the predicted target address, and an execution unit that: resolves a target address of the branch instruction and detects that the predicted and resolved target addresses are different; determines whether there is an unretired instruction that must be corrected and that is older in program order than the branch instruction, in response to detecting that the predicted and resolved target addresses are different; execute the branch instruction by flushing instructions fetched at the predicted target address and causing the fetch unit to fetch from the resolved target address, if there is not an unretired instruction that must be corrected and that is older in program order than the branch instruction; and otherwise, refrain from executing the branch instruction.
    Type: Application
    Filed: October 21, 2009
    Publication date: December 2, 2010
    Applicant: VIA Technologies, Inc.
    Inventors: Rodney E. Hooker, Gerard M. Col, Bryan Wayne Pogor
  • Publication number: 20100306474
    Abstract: A method of providing history based done logic for instructions includes receiving an instruction in a cache line in a L2 cache; and loading the cache line into an L1 cache with a history count that indicates the number of read references of the previous access.
    Type: Application
    Filed: May 28, 2009
    Publication date: December 2, 2010
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: David A. Luick
  • Patent number: 7840001
    Abstract: Data processing apparatus and methods are provided. One data processing apparatus comprises: a plurality of pipelined stages, each of the plurality pipelined stages being operable in each processing cycle to receive a group of data elements from an earlier pipelined stage; permute logic operable to buffer ‘n’ of the groups of data elements over a corresponding ‘n’ processing cycles thereby creating a bubble within pipelined stages, and forwarding logic operable, once the ‘n’ of the groups of data elements have been buffered by the permute logic, to forward permuted groups of data elements comprising the data elements reordered by the permute logic to fill the bubble within the pipelined stages.
    Type: Grant
    Filed: November 4, 2005
    Date of Patent: November 23, 2010
    Assignee: ARM Limited
    Inventors: Lionel Belnet, Stephane Eric Sebastien Brochier, Simon Andrew Ford
  • Patent number: 7836286
    Abstract: The present invention provides a data processor or a data processing system which can be used in compatible modes among which the number of bits of an address specifying a logical address space varies at the time of referring to a branch address table by extension of displacement of a branch instruction. At the time of generating a branch address of a first branch instruction, the data processor or the data processing system optimizes a multiple with which a displacement is multiplied in accordance with the number of bits of an address specifying a logical address space, adds extended address information to the value of a register, and refers to a branch address table with address information obtained by the addition. The referred information is used as a branch address. To be adapted to a compatible mode using different number of bits of an address specifying a logical address space, it is sufficient to change a multiple with which the displacement is multiplied in accordance with the mode.
    Type: Grant
    Filed: January 13, 2008
    Date of Patent: November 16, 2010
    Assignee: Renesas Electronics Corporation
    Inventor: Osamu Nishii
  • Publication number: 20100287361
    Abstract: Root cause analysis for complex event processing is described. In embodiments, root cause analysis at a complex event processor is automatically performed by selecting an output event from an operator and correlating the output event to an input event using event type and lifetime data for the input event and the output event stored in a data store. Embodiments describe how the lifetime data can comprise a start time and an end time for the event, and the correlation can be based on a comparison of the start and end times between the input and output events. Embodiments describe how the correlation algorithm used is selected in dependence on the event type. In embodiments, a complex event processing engine comprises a logging unit arranged to store in the data store an indicator of an event type and lifetime data for each output event from an operator.
    Type: Application
    Filed: May 11, 2009
    Publication date: November 11, 2010
    Applicant: Microsoft Corporation
    Inventors: Stephan Grell, Olivier Nano
  • Patent number: 7831809
    Abstract: A method of reducing a code size of a program by controlling a control flow of the program using software in a computer system is disclosed.
    Type: Grant
    Filed: August 28, 2006
    Date of Patent: November 9, 2010
    Assignee: Samsung Electronics Co., Ltd.
    Inventors: Keun-soo Yim, Jae-don Lee, Jeong-joon Yoo, Kyoung-ho Kang, Jung-keun Park, Chae-seok Im, Woon-gee Kim, Chang-woo Baek
  • Patent number: 7827355
    Abstract: A data processor (200) includes an instruction cache (220) and a secondary cache (250). The instruction cache (220) has a plurality of cache lines. Each of the plurality of cache lines stores a first plurality of bits (222) corresponding to at least one instruction and a second plurality of bits (224, 226) associated with the execution of the at least one instruction. The secondary cache (250) is coupled to the instruction cache (220) and stores cache lines from the instruction cache (250) by storing the first plurality of bits (222) and a third plurality of bits (255, 257) corresponding to the second plurality of bits (224, 226). The third plurality of bits (255, 257) is fewer in number than the second plurality of bits (224, 226).
    Type: Grant
    Filed: July 8, 2004
    Date of Patent: November 2, 2010
    Assignee: GlobalFoundries Inc.
    Inventors: Karthikeyan Muthusamy, Brian D. McMinn
  • Patent number: 7822954
    Abstract: A branch prediction algorithm is used to generate a prediction of whether or not a branch will be taken. One or more instructions are fetched such that, for each of the fetched instructions, the prediction initiates a fetch of an instruction at a predicted target of the branch. A test is performed to ascertain whether or not the prediction was generated late relative to the fetched instructions, so that if the branch is later detected as mispredicted, that detection can be correlated to the late prediction. When the prediction is generated late relative to the fetched instructions, a latent prediction is selected by utilizing a fetching initiated by the latent prediction such that a new fetch is not started.
    Type: Grant
    Filed: February 20, 2008
    Date of Patent: October 26, 2010
    Assignee: International Business Machines Corporation
    Inventors: John W. Ward, III, Khary J. Alexander, James J. Bonanno, Brian R. Prasky, Anthony Saporito, Robert J. Sonnelitter, III
  • Patent number: 7818551
    Abstract: Systems and methods are provided to detect instances where dynamic predication of indirect jumps (DIP) is considered to be ineffective utilizing data collected on the recent effectiveness of dynamic predication on recently executed indirect jump instructions. Illustratively, a computing environment comprises a DIP monitoring engine cooperating with a DIP monitoring table that aggregates and processes data representative of the effectiveness of DIP on recently executed jump instructions. Illustratively, the exemplary DIP monitoring engine collects and processes historical data on DIP instances, where, illustratively, a monitored instance can be categorized according to one or more selected classifications. A comparison can be performed for currently monitored indirect jump instructions using the collected historical data (and classifications) to determine whether DIP should be invoked by the computing environment or whether to invoke other indirect jump prediction paradigms.
    Type: Grant
    Filed: December 31, 2007
    Date of Patent: October 19, 2010
    Assignee: Microsoft Corporation
    Inventors: Jose A Joao, Onur Mutlu
  • Publication number: 20100250905
    Abstract: Disclosed are a method and system for reducing complexity of routing of instructions from an instruction issue queue to appropriate execution pipelines in a superscalar processor. In one or more embodiments, an instruction steering unit of the superscalar processor receives ordered instructions. The steering unit determines that a first instruction and a subsequent second instruction of the ordered instructions are non-branching instructions, and the steering unit stores the first and second instructions in two non-branching instruction issue queue entries of a shadow queue. The steering unit determines whether or not a third instruction the ordered instructions is a branch instruction, where the third instruction is subsequent to the second instruction. If the third instruction is a branch instruction, the steering unit stores the third instruction in a branch entry of the shadow queue; otherwise, the steering unit stores a no operation instruction in the branch entry of the shadow queue.
    Type: Application
    Filed: March 27, 2009
    Publication date: September 30, 2010
    Applicant: INTERNATIONAL BUISNESS MACHINES CORPORATION
    Inventors: Anthony J. Bybell, Kenichi Tsuchlya
  • Publication number: 20100241832
    Abstract: This application is concerned with a device and method for fetching instructions from a data store for processing by a data processor. The device comprises: a register for storing an address of an instruction to be processed by said data processor; a fetch unit responsive to an address input to said fetch unit to fetch an instruction stored at said address; an adder for adding a predetermined amount to said address stored in said register prior to sending said address to said fetch unit, said predetermined amount determining a position in a program flow said fetched instruction has with respect to said instruction addressed in said register; said adder being responsive to detection of a change in program flow to reset said predetermined amount to an initial value, and to increase said predetermined amount for subsequent fetches by an amount equal to the separation between addresses such that consecutive addresses are fetched up to a maximum predetermined amount.
    Type: Application
    Filed: March 20, 2009
    Publication date: September 23, 2010
    Applicant: ARM Limited
    Inventors: Simon John Craske, Chiloda Ashan Senerath Pathirane
  • Patent number: 7802080
    Abstract: A processor 6 is provided with an instruction decoder 18 which is responsive to memory access instructions to determine whether the base register value being used matches a null value and if such a match occurs then branches to a null value exception handler.
    Type: Grant
    Filed: March 24, 2004
    Date of Patent: September 21, 2010
    Assignee: ARM Limited
    Inventors: David John Butcher, Stephen John Hill, Hedley James Francis, Vladimir Vasekin, Andrew Christopher Rose
  • Publication number: 20100235913
    Abstract: Malware detection systems and methods for determining whether a collection of data not expected to include executable code is suspected of containing malicious executable code. In some embodiments, a malware detection system may disassemble a collection of data to obtain a sequence of possible instructions and determine whether the collection of data is suspected of containing malicious executable code based, at least partially, on an analysis of the sequence of possible instructions. In one embodiment, the analysis of the sequence of possible instructions may comprise determining whether the sequence of possible instructions comprises an execution loop. In a further embodiment, a control flow of the sequence of possible instructions may be analyzed. In a further embodiment, the analysis of the sequence of possible instructions may comprise assigning a weight that is indicative of a level of suspiciousness of the sequence of possible instructions.
    Type: Application
    Filed: March 12, 2009
    Publication date: September 16, 2010
    Applicant: Microsoft Corporation
    Inventors: Cristian Craioveanu, Ying Lin, Peter Ferrie, Bruce Dang
  • Patent number: 7797512
    Abstract: A virtual core management system including one or more physical cores and one or more virtual cores. Each virtual core respectively includes a collection of logical states associated with execution of a corresponding program. The virtual core management system further includes one or more interrupt controllers configured to send one or more interrupt signals to interrupt execution of a corresponding program associated with at least one of the one or more virtual cores, and a virtual core management component configured to map the at least one virtual core to one of the one or more physical cores and route the one or more interrupt signals to the corresponding physical core.
    Type: Grant
    Filed: October 31, 2007
    Date of Patent: September 14, 2010
    Assignee: Oracle America, Inc.
    Inventors: Yu Qing Cheng, John Gregory Favor, Peter N. Glaskowsky, Laurent R. Moll, Carlos Puchol, Seungyoon Peter Song
  • Patent number: 7793085
    Abstract: A memory control circuit for providing a small-circuit-size memory control circuit capable of reducing a branch penalty during the execution of a branch instruction in a CPU. A branch-destination buffer caches a branch-destination instruction and a branch-destination-instruction address determined by a branch instruction executed by the CPU. When the CPU executes a branch instruction thereafter, if the branch-destination-instruction address output from the CPU matches an instruction address in the branch-destination buffer, the corresponding branch-destination instruction stored in the branch-destination buffer is sent to the CPU. When a branch instruction is executed, an address comparison circuit compares the branch-destination-instruction address with the branch-source-instruction address.
    Type: Grant
    Filed: December 30, 2004
    Date of Patent: September 7, 2010
    Assignee: Fujitsu Semiconductor Limited
    Inventor: Kenji Furuya
  • Patent number: 7793122
    Abstract: An exemplary computer-automated method is disclosed. The computer-automated method may include determining a plurality of commands. The plurality of commands may include first and second commands. The computer-automated method may also include performing an iterative execution process. The iterative execution process may include executing the first command on a computer and determining whether the computer performed a power management operation in response to the first command. The iterative execution process may end when the computer performs the power management operation in response to the first command. The iterative execution process may execute the second command when the computer fails to perform the power management operation in response to the first command.
    Type: Grant
    Filed: April 27, 2007
    Date of Patent: September 7, 2010
    Assignee: Symantec Corporation
    Inventor: Konstantin Manuilov
  • Patent number: 7788511
    Abstract: An extremely low overhead method calculates CPU load in the presence of both CPU idling and frequency scaling. The method measures time the CPU is idled while waiting for a wakeup. This invention uses a feature in current DSPs with the capability of delaying ISR processing on wake from IDLE. Using this mechanism it is possible to determine the time before IDLE, the time immediately following CPU wakeup, and then run the wakeup ISR. The delta time can be accumulated and compared to total time to determine true CPU load.
    Type: Grant
    Filed: August 16, 2007
    Date of Patent: August 31, 2010
    Assignee: Texas Instruments Incorporated
    Inventor: Scott Paul Gary
  • Patent number: 7774766
    Abstract: Various embodiments of the present invention relate to methods and systems for optimizing an intermediate code in a compilation logic. The intermediate code is optimized by performing reassociation in software loops. The intermediate code includes at least one critical recurrence cycle. The performance of reassociation in software loops can reduce a critical recurrence cycle in them, which can speed up their execution. The subject method can include the determination of one or more critical recurrence cycles in a software loop. The method can also include the determination of at least one edge in a critical recurrence cycle, with respect to which reassociation can be performed, if one or more pre-determined criteria are met. The method can further include performing reassociation of a dependee and a dependent of an edge. In an embodiment, when one or more pre-determined criteria are met, the logic of the software loop is maintained after performing reassociation of the dependee and the dependent of the edge.
    Type: Grant
    Filed: September 29, 2005
    Date of Patent: August 10, 2010
    Assignee: Intel Corporation
    Inventors: Kalyan Muthukumar, Daniel M Lavery
  • Patent number: 7765388
    Abstract: The present invention relates to a device for an interrupt verification support mechanism and the method for operating said device comprising a processor and an input for external interrupt requests or interrupt pseudo-instructions communicatively coupled to the processor. The method comprises the steps of processing at least one actual instruction in the processor in an instruction pipeline, and if an external interrupt request is received by the processor, the actual instruction is replaced with the pseudo-instruction. Pursuant to the method, instructions are concurrently processed in the processor in an instruction pipeline with several stages. In the instruction pipeline, instructions are processed by an instruction fetch stage, an instruction decode stage, an instruction issue stage, an execute stage and a result write-back stage. Thereby, interrupt requests are only processed at the fetch stage of the instruction pipeline.
    Type: Grant
    Filed: September 17, 2003
    Date of Patent: July 27, 2010
    Assignee: Broadcom Corporation
    Inventors: Geoff Barrett, Richard Porter
  • Patent number: 7765387
    Abstract: A program counter control method controls instructions by an out-of-order method using a branch prediction mechanism and controls an architecture having delay instructions for branching. The method includes the steps of simultaneously committing a plurality of instructions including a branch instruction, when a branch prediction is successful and the branch instruction branches, and simultaneously updating a program counter and a next program counter depending on a number of committed instructions.
    Type: Grant
    Filed: January 28, 2003
    Date of Patent: July 27, 2010
    Assignee: Fujitsu Limited
    Inventors: Ryuichi Sunayama, Kuniki Morita, Aiichiro Inoue
  • Patent number: 7761697
    Abstract: One embodiment of a computing system configured to manage divergent threads in a thread group includes a stack configured to store at least one token and a multithreaded processing unit. The multithreaded processing unit is configured to perform the steps of fetching a program instruction, determining that the program instruction is an indirect branch instruction, and processing the indirect branch instruction as a sequence of two-way branches to execute an indirect branch instruction with multiple branch addresses. Indirect branch instructions may be used to allow greater flexibility since the branch address or multiple branch addresses do not need to be determined at compile time.
    Type: Grant
    Filed: November 6, 2006
    Date of Patent: July 20, 2010
    Assignee: NVIDIA Corporation
    Inventors: Brett W. Coon, John Erik Lindholm, Peter C. Mills, John R. Nickolls
  • Patent number: 7752350
    Abstract: A system and method for an efficient implementation of a software-managed cache is presented. When an application thread executes on a simple processor, the application thread uses a conditional data select instruction for eliminating a conditional branch instruction when accessing a software-managed cache. An application thread issues a conditional data select instruction (DMA transfer) after a cache directory lookup, wherein the size of the requested data is dependent upon the outcome of the cache directory lookup. When the cache directory lookup results in a cache hit, the application thread requests a transfer of zero bits of data, which results in a DMA controller (DMAC) performing a no-op instruction. When the cache directory lookup results in a cache miss, the application thread requests a data block transfer the size of a corresponding cache line.
    Type: Grant
    Filed: February 23, 2007
    Date of Patent: July 6, 2010
    Assignee: International Business Machines Corporation
    Inventors: Daniel Alan Brokenshire, Michael Norman Day, Barry L Minor, Mark Richard Nutter
  • Patent number: 7725695
    Abstract: A processor incorporates a branch prediction mechanism which acts to predict branch outcomes for predicted type branch instructions. The processor also supports non-predicted type branch instructions which are ignored by the branch prediction mechanism and are not subject to prediction. The impact of mispredictions degrading overall performance of the prediction mechanism is reduced by employing non-prediction type branch program instructions to represent/control branch operations when it is known that misprediction is likely for those branch operations.
    Type: Grant
    Filed: May 31, 2005
    Date of Patent: May 25, 2010
    Assignee: ARM Limited
    Inventors: David James Williamson, Andrew James Booker, David John Butcher
  • Patent number: 7721048
    Abstract: A computer processing system is disclosed that includes a cache that includes cache blocks of data. The system includes a marking sub-system, an ordering sub-system, and a replacement sub-system. The marking sub-system identifies and marks cache blocks that were provided to the cache via a wrong path with marking data. The ordering sub-system provides an order in which the cache blocks of data will be replaced in the cache, and the ordering sub-system is responsive to the marking data. The replacement sub-system replaces cache blocks in the cache in accordance with the ordering sub-system as required.
    Type: Grant
    Filed: March 15, 2007
    Date of Patent: May 18, 2010
    Assignee: Board of Governors for Higher Education, State of Rhode Island and Providence Plantations
    Inventors: Resit Sendag, Ayse Yilmazer, Augustus K. Uht
  • Patent number: 7711934
    Abstract: A processor core and method for managing branch misprediction in an out-of-order processor pipeline. In one embodiment, the pipeline of the processor core includes a front-end instruction fetch portion, a back-end instruction execution portion, and pipeline control logic. Operation of the instruction fetch portion is decoupled from operation of the instruction execution portion. Following detection of a control transfer misprediction, operation of the instruction fetch portion is halted and instructions residing in the instruction fetch portion are invalidated. When the instruction associated with the misprediction reaches a selected pipeline stage, instructions residing in the instruction execution portion of the pipeline are invalidated and the flow of instructions from the instruction fetch portion to the instruction execution portion of the processor pipeline is restarted.
    Type: Grant
    Filed: October 31, 2005
    Date of Patent: May 4, 2010
    Assignee: MIPS Technologies, Inc.
    Inventors: Karagada Ramarao Kishore, Kjeld Svendsen, Vidya Rajagopalan
  • Patent number: 7712091
    Abstract: A method and system for optimizing the execution of a software loop is provided. The method involves the determination of an edge in a critical recurrence cycle in the software loop. The edge is a dependency link between two instructions and contains a dependee and a dependent. The dependee is an instruction that produces a result, and the dependent is an instruction that uses the result. The method further involves performing predicate promotion of at least one of the dependee and the dependent if one or more pre-determined conditions are met.
    Type: Grant
    Filed: September 30, 2005
    Date of Patent: May 4, 2010
    Assignee: Intel Corporation
    Inventors: Kalyan Muthukumar, Robyn A. Sampson, Daniel Lavery
  • Publication number: 20100106943
    Abstract: It is possible to realize fetch of instructs constituting a loop by using a simple configuration without fixing a loop start point. Provided is a processing method performed by a processing device including: a instruction buffer; a instruction decoder; a pointer arranged to correspond to the instruction buffer and indicating a connection relationship between one instruction buffer from which a instruction stream is read out and other instruction buffer containing the next instruction stream to be read out, according to an identifier of other instruction buffer; a start point storage unit containing an identifier of the instruction buffer containing a instruction stream serving as a start point of repetition when performing a instruction fetch of such a predetermined instruction that processing of a instruction stream is repeated in a loop.
    Type: Application
    Filed: December 16, 2009
    Publication date: April 29, 2010
    Applicant: Fujitsu Limited
    Inventor: Megumi Ukai
  • Publication number: 20100106950
    Abstract: Apparatus and methods are provided for controlling the loading status of DLLs. Specifically, a streaming program compiler is provided. The compiler includes operation modules for calling DLLs during streaming program execution; association table generating units for generating association tables according to user-defined rules, where the association table includes entries indicating (i) stream branches of the streaming program and (ii) an operation module corresponding to the stream branches; and a trigger generating unit for generating a trigger based on user-defined rules, where the trigger generating unit (i) determines which conditions for loading and unloading DLLs fit the streaming program, (ii) matches these conditions to a particular stream branch to identify a matched stream branch, and (iii) sends out triggering signals indicating the matched stream branch. This invention also provides a corresponding method and controller.
    Type: Application
    Filed: October 28, 2009
    Publication date: April 29, 2010
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Rui Hou, Zhi Yu Liu, Huayong Wang, Yan Qi Wang
  • Publication number: 20100100715
    Abstract: A debugger debugs processes that execute shared instructions so a breakpoint set for one process will not cause a breakpoint to occur in the other processes. A breakpoint is set by recording the original instruction at the desired location and writing a trap instruction to the shared instructions at that location. When a process encounters the breakpoint, the process passes control to the debugger for breakpoint processing if the breakpoint was set at that location for that process. If the trap was not set at that location for that process, the cacheline containing the trap is copied to a small scratchpad memory, and the virtual memory mappings are changed to translate the virtual address of the cacheline to the scratchpad. The original instruction is then written to replace the trap instruction in the scratchpad, so the process can execute the instructions in the scratchpad thereby avoiding the trap instruction.
    Type: Application
    Filed: October 21, 2008
    Publication date: April 22, 2010
    Inventors: Thomas Michael Gooding, Richard Michael Shok
  • Publication number: 20100100704
    Abstract: An integrated circuit 4 is provided including an array 10 of processors 26 with interface circuitry 12 providing communication with further processing circuitry 14. The processors 26 within the array 10 execute individual programs which together provide the functionality of a cycle-based program. During each program-cycle of the cycle based program, each of the processors executes its respective program starting from a predetermined execution start point to evaluate a next state of at least some of the state variables of the cycle-based program. A boundary between program-cycles provides a synchronisation time (point) for processing operations performed by the array.
    Type: Application
    Filed: October 14, 2009
    Publication date: April 22, 2010
    Applicant: ARM Limited
    Inventors: Stephen John Hill, Michael Peter Muller
  • Publication number: 20100095102
    Abstract: A processor reads an interpreter program to start an interpreter. The interpreter makes branch prediction by executing, in place of an indirect branch instruction that is necessary for execution of a source program, storing branch destination addresses in the indirect branch instruction in a link register (the processor internally stacks the branch destination addresses also in a return address stack) in inverse order and reading the addresses from the return address stack in one at a time manner.
    Type: Application
    Filed: December 17, 2009
    Publication date: April 15, 2010
    Applicant: FUJITSU LIMITED
    Inventors: Takashi Toyoshima, Takashi Aoki
  • Patent number: 7698537
    Abstract: A data processing apparatus processes a stream of instructions from an instruction set. The instruction set includes exception instructions and non-exception instructions. Exception instructions may cause a break in an instruction flow, and non-exception instructions execute in a statically determinable way. At least two processing blocks process instructions from the stream of instructions. A first processing block has a set of physical registers associated with it for storing data values being processed by the first processing block. Renaming circuitry associated with the first processing block maps architectural registers specified in instructions to be processed by the first processing block to physical registers within the set of physical registers. A second processing block has a set of physical registers associated with it for storing data values being processed by the second processing block. The second processing block and registers do not support renaming.
    Type: Grant
    Filed: December 20, 2006
    Date of Patent: April 13, 2010
    Assignee: ARM Limited
    Inventors: Cédric Denis Robert Airaud, Melanie Emanuelle Lucie Vincent, Luc Orion, Norbert Bernard Eugene Lataille
  • Patent number: 7698689
    Abstract: A method that allows the context of an SMI task to be saved between SMIs. Upon entering an SMI handler for a task that needs to be split up into shorter SMIs, a new task context stack is created in memory. From that point forward, the SMI handler uses the task context, leaving the original stack unchanged. When the time limit for a single SMI is about to be reached, the CPU is directed back to the original stack, and the task context stack persists in memory and retains the context of the task in hand. The soft SMI exits with a return code or other indication to signify that a new SMI should be invoked to continue processing. The driver or other software that caused the first soft SMI then invokes another, passing in a code or other indication to signify that this is a continuation of a previously started task. On entering the SMI handler for the second time, the handler notes the request for continuation, switches back to the saved task context stack and continues processing where it left off.
    Type: Grant
    Filed: August 13, 2002
    Date of Patent: April 13, 2010
    Assignee: Phoenix Technologies Ltd.
    Inventor: Andrew P. Cottrell
  • Patent number: 7689812
    Abstract: A method of restoring register mapper states for an out-of-order microprocessor. A processor maps a logical register to a physical register in a map table in response to a first instruction. Instruction sequencing logic records a second speculatively executed instruction as a most recently dispatched instruction in the map table when the second instruction maps the same logical register of the first instruction. The instruction sequencing logic sets an evictor instruction tag (ITAG) of the first instruction in the map table when the second instruction maps a same logical register of the first instruction. The instruction sequencing logic detects mispredicted speculative instructions, determines which instructions in the map table were dispatched prior to the mispredicted speculative instructions, and restores the map table to a state prior to the mispredicted speculative instructions by utilizing the evictor ITAG to restore one or more A bits in the map table data structure.
    Type: Grant
    Filed: February 14, 2007
    Date of Patent: March 30, 2010
    Assignee: International Business Machines Corporation
    Inventors: Christopher M. Abernathy, Mary D. Brown, Dung Q. Nguyen, Joel A. Silberman
  • Patent number: 7681016
    Abstract: A low overhead mechanism for supporting speculative execution and code compression in a Very Long Instruction Word (VLIW) microprocessor. Profitable speculations can be determined statically at compile time and a low overhead hardware recovery mechanism used that does not require compensation code.
    Type: Grant
    Filed: June 30, 2003
    Date of Patent: March 16, 2010
    Assignee: Critical Blue Ltd.
    Inventor: Richard Michael Taylor
  • Patent number: 7676647
    Abstract: A processor device is disclosed that includes a register file with a combined condition code register for scalar and vector operations. The processor device utilizes the combined condition code register for scalar and vector operations. Further, a compare operation can store resulting bits in the combined condition code register and a conditional operation can utilize the combined condition code register bits for evaluating a condition.
    Type: Grant
    Filed: August 18, 2006
    Date of Patent: March 9, 2010
    Assignee: QUALCOMM Incorporated
    Inventors: Lucian Codrescu, Erich Plondke, Taylor Simpson
  • Publication number: 20100050164
    Abstract: Different numbers of delay slots are assigned by a compiler/scheduler to each different type of jump operation in a pipelined processor system. The number of delay slots is variable and kept to the minimum needed by each type of jump operation. A compatible processor uses a corresponding number of branch delay slots to exploit the difference in predictability of different types of branch or jump operations. Different types of jump operations resolved their target addresses in different numbers of delay slots. As a result, the compiler/scheduler is able to generate more efficient code than for a processor with a fixed number of delay slots for all jump types, resulting in better processor performance.
    Type: Application
    Filed: December 11, 2007
    Publication date: February 25, 2010
    Applicant: NXP, B.V.
    Inventors: Jan-Willem Van De Waerdt, Steven Roos
  • Publication number: 20100050026
    Abstract: A pipeline operation processor comprises a pipeline processing unit and an instruction insertion controller which inserts an instruction when access to an operation memory is requested, and corrects control information by reference to control information of stages. When a control program is in execution, on receiving an access request instruction requesting for access to the operation memory, the instruction insertion controller inserts an NOP instruction from the instruction decoding unit in place of the access request instruction. The access request instruction is executed while the pipeline processing unit executes no operation, and subsequently, the pipeline processing is continued.
    Type: Application
    Filed: June 4, 2009
    Publication date: February 25, 2010
    Inventor: Motohiko Okabe
  • Patent number: 7669203
    Abstract: Method, apparatus and system embodiments provide support for multiple SoEMT software threads on multiple SMT logical thread contexts. A thread translation table maintains physical-to-virtual thread translation information in order to provide such information to structures within a processor that utilize virtual thread information. By associating a thread translation table with such structures, a processor that supports simultaneous multithreading (SMT) may be easily retrofitted to support switch-on-event multithreading on the SMT logical processors.
    Type: Grant
    Filed: December 19, 2003
    Date of Patent: February 23, 2010
    Assignee: Intel Corporation
    Inventors: Nicholas G. Samra, Andrew S. Huang
  • Publication number: 20100042819
    Abstract: A computer readable medium storing a program causing a computer to execute a process for controlling a plurality of operations, the process including: accepting a change request to change an operation result of an operation executed prior to a current execution-permitted operation which an execution is permitted based on an operation procedure for the operations; assuming an operation for which the change request is accepted in the accepting step as a starting point; and identifying an operation permitted to be executed with reference to the starting point based on the operation procedure.
    Type: Application
    Filed: February 17, 2009
    Publication date: February 18, 2010
    Applicant: FUJI XEROX CO., LTD.
    Inventor: Takashi MIYATA
  • Patent number: 7653904
    Abstract: A method, apparatus, and system are provided for a multi-threaded virtual state mechanism. According to one embodiment, active thread state of a first active thread is received using a virtual state mechanism, and virtual thread state is generated in accordance with the active thread state of the first active thread, and the virtual thread state corresponding to the first active thread is forwarded to state update logic.
    Type: Grant
    Filed: September 26, 2003
    Date of Patent: January 26, 2010
    Assignee: Intel Corporation
    Inventor: Nicholas G. Samra
  • Patent number: 7649862
    Abstract: The flexible through-connection process, operational in a Mobile Switch Center, that provides support for allowing the call routing processor of the Mobile Switch Center to independently perform a through-connection/switch-connection based on different types of calls so that the Mobile Switch Center can make a through-connection at different stages of the outgoing call leg. In operation, the present flexible through-connection process includes in the call control processor of the switching system a new parameter in the existing inter-process message which is sent to the call routing processor at call setup time. The values supported for this new parameter will be pre-defined in the Mobile Switch Center and used by the call routing processor to determine when to perform through-connection/switch-connection for an outgoing call leg.
    Type: Grant
    Filed: May 19, 2005
    Date of Patent: January 19, 2010
    Assignee: Alcatel-Lucent USA Inc.
    Inventors: Julian Maurico Guio, Jason T. Kuo, Ismael Lopez, Huixian Song
  • Publication number: 20100011195
    Abstract: A processor includes a plurality of executing sections configured to simultaneously execute instructions for a plurality of threads, an instruction issuing section configured to issue instructions to the plurality of executing sections, and an instruction sync monitoring section configured to, when an instruction-synchronizing instruction is issued to one or more of the plurality of executing sections from the instruction issuing section, monitor completion of execution of the instruction-synchronizing instruction for each of the executing sections, to which the instruction-synchronizing instruction has been issued, thus detecting completion of execution of preceding instructions for the thread to which the instruction-synchronizing instruction belongs.
    Type: Application
    Filed: July 7, 2009
    Publication date: January 14, 2010
    Applicant: Sony Corporation
    Inventor: Masaaki Ishii
  • Patent number: 7647489
    Abstract: A data processing system 2 is provided which includes an instruction decoder 18 responsive to a handler branch instruction HLB, HBLP which includes an index value field to calculate a handler pointer in dependence upon a handler base address HBA and the index value field and then to branch to that handler pointer position. A handler program 24, 26 at the branch target is then executed following which a return is made to an address following the handler branch instruction using a link address value stored when the handler branch instruction was executed.
    Type: Grant
    Filed: March 14, 2005
    Date of Patent: January 12, 2010
    Assignee: ARM Limited
    Inventor: David John Butcher
  • Publication number: 20090319762
    Abstract: A dynamic reconfigurable circuit includes multiple clusters each including a group of reconfigurable processing elements. The dynamic reconfigurable circuit is capable of dynamically changing a configuration of the clusters according to a context including a description of processing of the processing elements and of connection between the processing elements. A first cluster among the clusters includes a signal generating circuit that when an instruction to change the context is received, generates a report signal indicative of the instruction to change the context; a signal adding circuit that adds the report signal generated by the signal generating circuit to output data that is to be transmitted from the first cluster to a second cluster; and a data clearing circuit that, when output data to which a report signal generated by the second cluster is added is received, performs a clearing process of clearing the output data received.
    Type: Application
    Filed: February 27, 2009
    Publication date: December 24, 2009
    Applicant: FUJITSU MICROELECTRONICS LIMITED
    Inventors: Takashi HANAI, Shinichi Sutou
  • Patent number: 7636837
    Abstract: An apparatus includes a branch instruction prediction unit configured to make branch prediction, and a branch prediction control unit configured to control an instruction fetch control unit, an instruction buffer, an instruction decoder, and the branch instruction prediction unit, wherein when the branch prediction control unit ascertains that the branch prediction by the branch instruction prediction unit is erroneous, the branch prediction control unit outputs to the instruction fetch control unit a signal for suppressing an instruction fetch request already supplied to the memory unit and outputs to the instruction buffer a signal for nullifying the instruction buffer during a period between a point in time at which the ascertainment is made by the branch prediction control unit that the branch prediction by the branch instruction prediction unit is erroneous and a point in time at which the instruction buffer fetches a correct instruction from the memory unit.
    Type: Grant
    Filed: April 26, 2005
    Date of Patent: December 22, 2009
    Assignee: Fujitsu Limited
    Inventors: Ryuichi Sunayama, Aiichirou Inoue, Masaki Ukai
  • Patent number: 7634644
    Abstract: Architectural techniques and implementations that defer enforcement of certain delayed control transfer instruction (DCTI) sequencing constraints or conventions to later stages of an execution pipeline are described. In this way, complexity of a processor pipeline front-end (including fetch sequencing) can be simplified, at least in-part, by fetching instructions generally without regard to such constraints or conventions. Instead, enforcement of such sequencing constraints and/or conventions may be deferred to one or more pipeline stages associated with commitment or retirement of instructions. Higher fetch bandwidth may be achieved in some realizations when, for example, DCTI couples are encountered in an execution sequence.
    Type: Grant
    Filed: September 21, 2006
    Date of Patent: December 15, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Shailender Chaudhry, Quinn A. Jacobson, Marc Tremblay
  • Patent number: 7627740
    Abstract: A method, storage medium, processor instruction and processor to for specifying a value in a first portion of a conditional pre-fetch instruction associated with a branch instruction used for effectuating a branch operation, specifying a target instruction address in a second portion of the instruction, evaluating the value to determine whether a condition is met, and pre-fetching one or more instructions starting at the target instruction address into an instruction buffer of the processor when the condition is met, is provided.
    Type: Grant
    Filed: January 31, 2006
    Date of Patent: December 1, 2009
    Assignee: Sony Computer Entertainment Inc.
    Inventors: Masahiro Yasue, Akiyuki Hatakeyama
  • Patent number: 7620803
    Abstract: A data processing device is provided using pipeline architecture to reduce a time loss due to a branch without causing an increase in circuit scale. The data processing device uses pipeline control. The data processing device includes an instruction queue in which a plurality of instruction codes can be fetched, a fetch address operation circuit which calculates a fetch address, a fetch circuit which fetches an instruction code based on the fetch address, and a branch information setting circuit which decodes a branch setting instruction, stores a branch address in a branch address storage register, and stores a branch target address in a branch target address storage register. The fetch address operation circuit compares either a previous fetch address or an expected next fetch address with a value stored in the branch address storage register, and determines a next fetch address to be output, based on the comparison result.
    Type: Grant
    Filed: June 20, 2003
    Date of Patent: November 17, 2009
    Assignee: Seiko Epson Corporation
    Inventor: Makoto Kudo