Evaluation Of Multiple Conditions Or Multiway Branching Patents (Class 712/236)
-
Patent number: 12182680Abstract: A system and method are disclosed to generate, modify, and deploy machine learning models. Embodiments include a database comprising historical sales data and a server comprising a processor and memory. Embodiments receive historical sales data comprising aggregated sales data for one or more items sold in one or more stores over one or more past time periods. Embodiments train a first machine learning model to learn model parameters and generate sales predictions by identifying one or more causal factors that influence the sale of one or more items. Embodiments train a second machine learning model, based on the first machine learning model, to generate second predictions. Embodiments evaluate the predictions of the first and second machine learning models as compared to the historical sales data, and deploy the machine learning model that generated the predictions that are closer to the historical sales data to generate one or more subsequent predictions.Type: GrantFiled: December 8, 2020Date of Patent: December 31, 2024Assignee: Blue Yonder Group, Inc.Inventors: Moritz Wolf, Martin Hahn, Felix Christopher Wick
-
Patent number: 11681594Abstract: Disclosed herein are vector index registers for storing or loading indexes of true and/or false results of conditional operations using multiple lane processing in vector processors. Each of the vector index registers store multiple addresses for accessing multiple positions in operand vectors in various types of operations that can leverage multi-lane processing.Type: GrantFiled: May 6, 2022Date of Patent: June 20, 2023Assignee: Micron Technology, Inc.Inventor: Steven Jeffrey Wallach
-
Patent number: 11379239Abstract: An apparatus and method are provided for making predictions for instruction flow changing instructions. The apparatus has a fetch queue that identifies a sequence of instructions to be fetched for execution by execution circuitry, and prediction circuitry for making predictions in respect of instruction flow changing instructions, and for controlling which instructions are identified in the fetch queue in dependence on the predictions. The prediction circuitry has a target prediction storage used to identify target addresses for instruction flow changing instructions that are predicted as taken.Type: GrantFiled: March 26, 2019Date of Patent: July 5, 2022Assignee: Arm LimitedInventors: Yasuo Ishii, Muhammad Umar Farooq
-
Patent number: 11360774Abstract: In one embodiment, a branch processing method, comprising: assigning plural branch instructions for a given clock cycle to primary branch information and secondary branch information; routing the primary branch information along a first path having adder logic and the secondary branch information along a second path having no adder logic; and writing the primary branch information including a displacement branch target address to a branch order table (BOT) and the secondary branch information without a target address to the BOT.Type: GrantFiled: October 23, 2020Date of Patent: June 14, 2022Assignee: CENTAUR TECHNOLOGY, INC.Inventors: Thomas C. McDonald, John Duncan
-
Patent number: 11327862Abstract: Disclosed herein are vector index registers for storing or loading indexes of true and/or false results of conditional operations using multiple lane processing in vector processors. Each of the vector index registers store multiple addresses for accessing multiple positions in operand vectors in various types of operations that can leverage multi-lane processing.Type: GrantFiled: May 20, 2019Date of Patent: May 10, 2022Assignee: Micron Technology, Inc.Inventor: Steven Jeffrey Wallach
-
Patent number: 11240286Abstract: In filtering requests to be forwarded to a runtime environment, a filtering apparatus intercepts a new runtime request for the runtime environment and determines execution paths that may be traversed by the runtime request when executed in the runtime environment. The filtering apparatus assigns a probability of traversal by the runtime request to each of the execution paths and identifies at least one given execution path that reference a stressed resource of the runtime environment. Based on the probabilities assigned to the at least one given execution path, the filtering apparatus determines whether or not to block the runtime request from being sent to the runtime environment. If the probability assigned to the at least one given execution path exceeds a configured threshold, the runtime request is blocked from being sent to the runtime environment. Otherwise, the runtime request is sent to the runtime environment.Type: GrantFiled: June 29, 2015Date of Patent: February 1, 2022Assignee: International Business Machines CorporationInventors: Kyle G. Brown, Samir A. Nasser
-
Patent number: 11157271Abstract: Systems and methods are provided for receiving a request for documentation related to functionality of an application, accessing a test automate generated from a recording of actions using the functionality of the application, and parsing the test automate to determine one or more steps in a process and, for each step in the process, a list of the actions for the step and corresponding data. The system and methods further provide for generating a file comprising the one or more steps and the list of actions and corresponding data for each step, determining a selected template for generating documentation for the functionality of the application and generating a populated template by populating one or more steps and corresponding list of actions in the selected template using the file comprising the one or more steps and the list of actions and corresponding data for each step.Type: GrantFiled: December 3, 2019Date of Patent: October 26, 2021Assignee: SAP SEInventors: Sai Phani Sharath Chandra Danthalapelli, Warren Mark Fernandes
-
Patent number: 10678218Abstract: The present disclosure meets demand to realize control computations according to programs having different execution formats by a single control device. The control device includes a storage unit storing a first program to be scanned as a whole for each execution and a second program that is sequentially executed, an execution processing unit computing a first command value by executing the first program at every predetermined control cycle, an interpreter interpreting at least a part of the second program and generating an intermediate code, a command value computation unit computing a second command value at every control cycle according to the intermediate code generated in advance by the interpreter, and an output unit outputting the first command value computed by the execution processing unit and the second command value computed by the command value computation unit at every control cycle.Type: GrantFiled: February 13, 2018Date of Patent: June 9, 2020Assignee: OMRON CorporationInventors: Junji Shimamura, Tetsushi Jakunen, Eiji Yamamoto, Masahiko Nakano, Masanori Ota
-
Patent number: 10642619Abstract: Embodiments relate to branch prediction using a pattern history table (PHT) that is indexed using a global path vector (GPV). An aspect includes receiving a search address by a branch prediction logic that is in communication with the PHT and the GPV. Another aspect includes starting with the search address, simultaneously determining a plurality of branch predictions by the branch prediction logic based on the PHT, wherein the plurality of branch predictions comprises one of: (i) at least one not taken prediction and a single taken prediction, and (ii) a plurality of not taken predictions. Another aspect includes updating the GPV by shifting an instruction identifier of a branch instruction associated with a taken prediction into the GPV, wherein the GPV is not updated based on any not taken prediction.Type: GrantFiled: October 30, 2014Date of Patent: May 5, 2020Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: James J. Bonanno, Matthias D. Heizmann, Daniel Lipetz, Brian R. Prasky
-
Patent number: 10635446Abstract: Reconfiguring execution pipelines of out-of-order (OOO) computer processors based on phase training and prediction is disclosed. In one aspect, a pipeline reconfiguration circuit is communicatively coupled to an execution pipeline providing multiple selectable pipeline configurations. The pipeline reconfiguration circuit generates a phase identifier (ID) for a phase based on a preceding phase. The phase ID is used as an index into an entry of a pipeline configuration prediction (PCP) table to determine whether training for the phase is ongoing. If so, the pipeline reconfiguration circuit performs multiple training cycles, each employing a pipeline configuration from the selectable pipeline configurations for the execution pipeline, to determine a preferred pipeline configuration for the phase. If training for the phase is complete, the pipeline reconfiguration circuit reconfigures the execution pipeline into the preferred pipeline configuration indicated by the entry before the phase is executed.Type: GrantFiled: September 24, 2015Date of Patent: April 28, 2020Assignee: QUALCOMM IncorporatedInventors: Shivam Priyadarshi, Anil Krishna, Raguram Damodaran
-
Patent number: 10545735Abstract: An apparatus and method for a dual return stack buffer (RSB) for use in binary translation systems. For example, one embodiment of a processor comprises: a dual return stack buffer (DRSB) comprising a native RSB and an extended RSB (XRSB), the dual RSB to be used within a binary translation execution environment in which guest call-return instruction sequences are translated to native call-return instruction sequences to be executed directly by the processor; the native RSB to store native return addresses associated with the native call-return instruction sequences; and the XRSB to store emulated return addresses associated with the guest call-return instruction sequences, wherein each native return address stored in the RSB is associated with an emulated return address stored in the XRSB.Type: GrantFiled: November 14, 2017Date of Patent: January 28, 2020Assignee: Intel CorporationInventors: Polychronis Xekalakis, Jason M. Agron
-
Patent number: 10534611Abstract: Embodiments relate to branch prediction using a pattern history table (PHT) that is indexed using a global path vector (GPV). An aspect includes receiving a search address by a branch prediction logic that is in communication with the PHT and the GPV. Another aspect includes starting with the search address, simultaneously determining a plurality of branch predictions by the branch prediction logic based on the PHT, wherein the plurality of branch predictions comprises one of: (i) at least one not taken prediction and a single taken prediction, and (ii) a plurality of not taken predictions. Another aspect includes updating the GPV by shifting an instruction identifier of a branch instruction associated with a taken prediction into the GPV, wherein the GPV is not updated based on any not taken prediction.Type: GrantFiled: July 31, 2014Date of Patent: January 14, 2020Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: James J. Bonanno, Matthias D. Heizmann, Daniel Lipetz, Brian R. Prasky
-
Patent number: 10496402Abstract: A system, method, and computer program product are provided for defining and utilizing minimal testable values for software project development and operations. In operation, a system identifies a software development project. The system defines an initial list of minimal testable values (MTVs) as part of a backlog definition stage associated with a project backlog corresponding to the software development project. The system links the MTVs to the project backlog. The system confirms the MTVs as part of a backlog confirmation stage associated with the software development project. Further, the system maintains the MTVs during a backlog grooming stage associated with the software development project. Moreover, the system certifies the MTVs after each delivery of software associated with the software development project.Type: GrantFiled: September 28, 2017Date of Patent: December 3, 2019Assignee: AMDOCS DEVELOPMENT LIMITEDInventors: Dror Avrilingi, Sharon Elgarat
-
Patent number: 10394557Abstract: A data processing system supporting execution of transactions comprising one or more program instructions that execute to generate speculative updates is provided. The speculative updates are committed in normal operation if the transaction completes without a conflict. Start of execution of a transaction may be detected and execution diverted to be performed by software emulation rather than direct execution by the processing hardware. The software emulation may store data representing one or more versions of the speculative updates generated during the emulation. The software emulation may also detect conflicts with the transaction being emulated. In order to facilitate modifying the behaviour of other parts of the system interacting with a transaction under investigation, a non-standard response signal may be returned in response to a detected memory access request to a transaction being emulated.Type: GrantFiled: November 23, 2015Date of Patent: August 27, 2019Assignee: ARM LimitedInventors: Stephan Diestelhorst, Michael John Williams, Richard Roy Grisenthwaite, Matthew James Horsnell
-
Patent number: 10180839Abstract: An apparatus includes a processor and a loop cache coupled to the processor. The loop cache provides to the processor instructions corresponding to a loop in the instructions. The loop cache includes a persistence counter.Type: GrantFiled: March 4, 2016Date of Patent: January 15, 2019Assignee: Silicon Laboratories Inc.Inventors: Mark W. Johnson, Paul Zavalney, Marius Grannæs, Oeivind A. G. Loe
-
Patent number: 10055585Abstract: Technologies for assembling an execution profile of an event are disclosed. The technologies may include monitoring the event for a branch instruction, generating a callback to a security module upon execution of the branch instruction, filtering the callback according to a plurality of event identifiers, and validating a code segment associated with the branch instruction, the code segment including code executed before the branch instruction and code executed after the branch instruction.Type: GrantFiled: August 28, 2013Date of Patent: August 21, 2018Assignee: McAfee, LLCInventors: Greg William Dalcher, Ravi L. Sahita, Palanivelra Shanmugavelayutham, Koichi Yamada, Arvind Krishnaswamy
-
Patent number: 9946628Abstract: Provided are a computer program product, system, and method for embedding and executing trace functions in code to gather trace data. A plurality of trace functions are embedded in the code. For each embedded trace function, a trace level is included indicating code to which the trace applies. The trace level comprises one of a plurality of levels. During the execution of the code, the embedded trace functions having one of the levels associated with a specified at least one level specified are executed. The embedded trace functions associated with at least one level not comprising one of the at least one specified level are not invoked.Type: GrantFiled: April 22, 2016Date of Patent: April 17, 2018Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Herve G. P. Andre, Yolanda Colpo, Enrique Q. Garcia, Mark E. Hack, Larry Juarez, Ricardo S. Padilla, Todd C. Sorenson
-
Patent number: 9891913Abstract: An apparatus and method are described for performing conflict detection operations. For example, one embodiment of a processor comprises: a first source vector register to store a first set of data elements; a second source vector register to store a second set of data elements; conflict detection logic to perform a specified comparison operation comparing each of the first set of data elements with specified data elements from the second set and generating a set of comparison results, the comparison operation to be selected from a group consisting of a greater than comparison, a less than comparison, a greater than or equal to comparison, a less than or equal to comparison, and a not equal to comparison.Type: GrantFiled: December 23, 2014Date of Patent: February 13, 2018Assignee: INTEL CORPORATIONInventors: Christopher J. Hughes, Elmoustapha Ould-Ahmed-Vall, Robert Valentine, Milind B. Girkar
-
Patent number: 9817642Abstract: An apparatus and method for a dual return stack buffer (RSB) for use in binary translation systems. An embodiment of a processor includes: a dual return stack buffer (DRSB) comprising a native RSB and an extended RSB (XRSB), the dual RSB to be used within a binary translation execution environment in which guest call-return instruction sequences are translated to native call-return instruction sequences to be executed directly by the processor; the native RSB to store native return addresses associated with the native call-return instruction sequences; and the XRSB to store emulated return addresses associated with the guest call-return instruction sequences, wherein each native return address stored in the RSB is associated with an emulated return address stored in the XRSB.Type: GrantFiled: June 25, 2015Date of Patent: November 14, 2017Assignee: Intel CorporationInventors: Polychronis Xekalakis, Jason M. Agron
-
Patent number: 9619228Abstract: The data processor includes CPU operable to execute an instruction included in an instruction set. The instruction set includes a load instruction for reading data on a memory space. The data read according to the load instruction includes data of a format type having a data-read-branching-occurrence bit region. The CPU includes a data-read-branching control register; a data-read-branching address register; and a read-data-analyzing unit. On condition that a bit value showing the occurrence of data read branching has been set on the data-read-branching-occurrence bit region, and a value showing the data-read-branching-occurrence bit remaining valid has been set on the data-read-branching control register, the switching between processes is performed by branching to an address stored in the data-read-branching address register.Type: GrantFiled: March 28, 2011Date of Patent: April 11, 2017Assignee: Renesas Electronics CorporationInventors: Takafumi Yuasa, Hiroaki Nakata, Motoki Kimura, Kazushi Akie
-
Patent number: 9495157Abstract: Embodiments relate to fingerprint-based branch prediction. An aspect includes based on encountering a branch instruction during execution of software on a processor of a computer system, determining a fingerprint of the software, the fingerprint comprising a representation of a sequence of behavior that occurs in the processor while the software is executing. Another aspect includes based on determining that a match for the fingerprint and the branch instruction is located in an entry in the prediction table: predicting the branch instruction according to the associated prediction field. Another aspect includes based on determining that no match for the fingerprint and the branch instruction are located in an entry in the prediction table: creating a new entry in the prediction table for the fingerprint and the branch instruction.Type: GrantFiled: December 7, 2015Date of Patent: November 15, 2016Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Jonathan D. Bradbury, Giles R. Frazier, Michael Karl Gschwind, Christian Jacobi, Anthony Saporito, Chung-Lung K. Shum
-
Patent number: 9355491Abstract: An image processing apparatus is provided. A splitting unit of the image processing apparatus may split a first space within an input three-dimensional (3D) model into a plurality of subspaces in order to generate an acceleration structure of the input 3D model. A decision unit of the image processing apparatus may set a subspace determined as having a relatively high probability of including a ray progress path among the plurality of subspaces, as a child node having a relatively high traversal priority in the acceleration structure among a plurality of child nodes.Type: GrantFiled: June 22, 2011Date of Patent: May 31, 2016Assignees: Samsung Electronics Co., Ltd., INDUSTRY-ACADEMIC COOPERATION FOUNDATION, YONSEI UNIVERSITYInventors: Chan Min Park, Tack Don Han, Jin Woo Kim, Jeong Soo Park, Jae Ho Nah
-
Patent number: 9286066Abstract: A processor includes a loop counter that is reset to 0 when a loop instruction for executing a process in a loop from a loop start address to a loop end address is issued, a data memory that receives data that is used for executing a process in the loop, in which the data is transferred from outside, a calculator that uses the data transferred to the data memory to execute the process in the loop, a data counter that increments the loop counter by 1 every time a certain amount of data that is used for executing a process in the loop is transferred from outside to a data memory, and a loop controller that decrements the loop counter by 1 and causes the calculator to execute the process in the loop when a loop count value of the loop counter is not 0.Type: GrantFiled: October 15, 2010Date of Patent: March 15, 2016Assignee: NEC CORPORATIONInventor: Katsutoshi Seki
-
Publication number: 20150121049Abstract: One embodiment is a computer-implemented method for safe conditional operation when storage access cannot be proven safe. The method includes receiving a portion of source code for a transaction by an enhanced compiler and. The portion of source code received is analyzed, by the enhanced compiler, to determine whether the portion of source code is a candidate for transformation. Responsive to a determination that the portion of source code analyzed by the enhanced compiler is a candidate for transformation, the portion of the source code analyzed is transformed, by a computer processor, to use a conditional operation in a first portion of the transformed code. The conditional operation uses hardware transaction memory to invoke retry operations within hardware. A branch is added, directed to an original code portion, in a second portion of transformed code, where the branch is a recovery portion containing the original code portion.Type: ApplicationFiled: September 10, 2014Publication date: April 30, 2015Inventors: Marcel Mitran, Visda Vokhshoori
-
Publication number: 20150058606Abstract: Exemplary methods, apparatuses, and systems generate a plurality of possible branch traces for a computer program. Each possible branch trace represents different sequences of branch instructions that may be executed while the computer program is running. Each branch instruction has a corresponding identifier. A branch trace value is generated for at least one of the plurality of possible branch traces. Generating the branch trace value includes performing a mathematical or logical operation between a first identifier and each subsequent identifier of the possible branch trace to obtain the branch trace value. An output including a branch trace is generated based upon a match between a run-time branch trace value and the at least one generated branch trace value.Type: ApplicationFiled: August 21, 2013Publication date: February 26, 2015Applicant: VMware, Inc.Inventors: Rajiv MADAMPATH, Rupesh BAJAJ
-
Patent number: 8949806Abstract: A system comprises a plurality of computation units interconnected by an interconnection network.Type: GrantFiled: August 17, 2012Date of Patent: February 3, 2015Assignee: Tilera CorporationInventors: Walter Lee, Robert A. Gottlieb, Vineet Soni, Anant Agarwal, Richard Schooler
-
Patent number: 8909906Abstract: A method and apparatus for branch reduction in a multithreaded packet processor is presented. An instruction is executed which includes testing of a branch flag. The branch flag references a configuration bit vector wherein each bit in the configuration bit vector corresponds to a respective feature. When said branch flag returns a first result processing is continues at an instruction located at a first location relative to a Program Counter (PC) and when the branch flag returns a second result processing is continued at a second location relative to said PC.Type: GrantFiled: November 22, 2010Date of Patent: December 9, 2014Assignee: Avaya Inc.Inventor: Hamid Assarpour
-
Publication number: 20140344557Abstract: A method and system for automatically enforcing a hybrid branching strategy include receiving a changeset designated for a branch. In response to receiving the changeset, the system may automatically determine whether a merge conflict associated with the changeset exists between the branch and an associated protected branch, and the system may automatically determine whether the changeset is up to date. Upon determining that no merge conflict exists, the system automatically initiates execution of a continuous integration testing pipeline. The continuous integration testing pipeline includes a series of tests applied to the changeset. If the changeset passes the series of tests, the system automatically merges the changeset with the associated protected branch.Type: ApplicationFiled: May 14, 2013Publication date: November 20, 2014Applicant: Noblis, Inc.Inventors: Nicholas BARTLOW, Zachary HUTZELL
-
Patent number: 8677104Abstract: A data processing apparatus is provided comprising prediction circuitry for predicting a response of the data processing circuitry at at least one given execution point to execution of a program instruction; tracing circuitry for tracing operation of the data processing apparatus for outputting a prediction indicator indicating whether or not the predicted response is correct; a data store configured to store information relating to the predicted response of said data processing circuitry at the given execution point for use by at least one of said prediction logic and said tracing circuitry a later execution point; and a history buffer configured to store historical information with regard to one or more entries of the data store at a corresponding execution point previous to the given execution point to enable restoration of said data store to a state corresponding to said previous execution point.Type: GrantFiled: December 27, 2010Date of Patent: March 18, 2014Assignee: ARM LimitedInventors: Michael Gibbs, Paul Anthony Gilkerson, John Michael Horley
-
Patent number: 8677106Abstract: One embodiment of the present invention sets forth a mechanism for managing thread divergence in a thread group executing a multithreaded processor. A unanimous branch instruction, when executed, causes all the active threads in the thread group to branch only when each thread in the thread group agrees to take the branch. In such a manner, thread divergence is eliminated. A branch-any instruction, when executed, causes all the active threads in the thread group to branch when at least one thread in the thread group agrees to take the branch.Type: GrantFiled: June 14, 2010Date of Patent: March 18, 2014Assignee: Nvidia CorporationInventors: John R. Nickolls, Richard Craig Johnson, Robert Steven Glanville, Guillermo Juan Rozas
-
Patent number: 8656144Abstract: The invention provides an image processing device, an image processing method, and an image processing program which enable accurately observing a moving image of an object within a time interval within which the object is in a desired state. A control unit performs an analysis process after the elapse of every defined time period. As the analysis process, the control unit acquires evaluation values corresponding to image data of a plurality of frames stored within a latest defined time period and, based on the acquired evaluation values, selects a group of reproduction data formed from image data of a certain number of frames, out of the image data of the plurality of frames stored within the latest defined time period. After the completion of the analysis process, the control unit starts reproduction of a moving image based on the group of reproduction data selected through the analysis process.Type: GrantFiled: October 6, 2011Date of Patent: February 18, 2014Assignee: Keyence CorporationInventor: Woobum Kang
-
Patent number: 8601177Abstract: A method may include distributing ranges of addresses in a memory among a first set of functions in a first pipeline. The first set of the functions in the first pipeline may operate on data using the ranges of addresses. Different ranges of addresses in the memory may be redistributed among a second set of functions in a second pipeline without waiting for the first set of functions to be flushed of data.Type: GrantFiled: June 27, 2012Date of Patent: December 3, 2013Assignee: Intel CorporationInventor: Thomas A. Piazza
-
Patent number: 8595473Abstract: Methods and systems for performing control of flow in a graphics processor architecture are provided. For example, in at least one embodiment, a computing system includes a memory storing a plurality of instructions and a graphics processing unit. The graphics processing unit is configured to process the instructions according to a multi-stage scalar pipeline and store condition code values in the branch control stack. The graphics processing unit is further configured to process branch instructions using condition code values stored in the condition register at the top of the branch control stack.Type: GrantFiled: October 14, 2010Date of Patent: November 26, 2013Assignee: Via Technologies, Inc.Inventor: Zahid Hussain
-
Patent number: 8539501Abstract: Processes requiring access to shared resources are adapted to issue a reservation request, such that a place in a resource access queue, such as one administered by means of a semaphore system, can be reserved for the process. The reservation is issued by a Reservation Management module at a time calculated to ensure that the reservation reaches the head of the queue as closely as possible to the moment at which the process actually needs access to the resource. The calculation may be made on the basis of priority information concerning the process itself, and statistical information gathered concerning historical performance of the queue.Type: GrantFiled: March 6, 2012Date of Patent: September 17, 2013Assignee: International Business Machines CorporationInventors: Chiara Conti, Mariella Corbacio, Giuseppe Longobardi, Alessandra Masci, Enrico Nocerini, Pia Toro
-
Patent number: 8522250Abstract: Processes requiring access to shared resources are adapted to issue a reservation request, such that a place in a resource access queue, such as one administered by means of a semaphore system, can be reserved for the process. The reservation is issued by a Reservation Management module at a time calculated to ensure that the reservation reaches the head of the queue as closely as possible to the moment at which the process actually needs access to the resource. The calculation may be made on the basis of priority information concerning the process itself, and statistical information gathered concerning historical performance of the queue.Type: GrantFiled: August 17, 2011Date of Patent: August 27, 2013Assignee: International Business Machines CorporationInventors: Chiara Conti, Mariella Corbacio, Giuseppe Longobardi, Alessandra Masci, Enrico Nocerini, Pia Toro
-
Patent number: 8516229Abstract: A test code generation technique that replaces instructions having a machine state dependent result with special redirection instructions provides generation of test code in which state dependent execution choices are made without a state model. Redirection instructions cause execution of a handler than examines the machine state and replaces the redirection instruction with a replacement instruction having a desired result resolved in accordance with the current machine state. The instructions that are replaced may be conditional branch instructions and the result a desired execution path. The examination of the machine state permits determination of a branch condition for the replacement instruction so that the next pass of the test code executes along the desired path. Alternatively, the handler can execute a jump to the branch instruction, causing immediate execution of the desired branch path.Type: GrantFiled: February 5, 2010Date of Patent: August 20, 2013Assignee: International Business Machines CorporationInventors: Allon Adir, Brad Lee Herold, John Martin Ludden, Pedro Martin-de-Nicolas, Charles Leverett Meissner, Gil Eliezer Shurek
-
Patent number: 8516195Abstract: A facility and cache machine instruction of a computer architecture for specifying a target cache cache-level and a target cache attribute of interest for obtaining a cache attribute of one or more target caches. The requested cache attribute of the target cache(s) is saved in a register.Type: GrantFiled: February 8, 2012Date of Patent: August 20, 2013Assignee: International Business Machines CorporationInventors: Dan F Greiner, Timothy J Slegel
-
Patent number: 8417923Abstract: A data processing apparatus is disclosed including trace logic for monitoring behavior of a portion of said data processing apparatus and prediction logic for providing at least one prediction as to at least one step of the behavior of the portion of the data processing apparatus. The trace logic monitors behavior of the portion of the data processing apparatus, determines from the monitored behavior whether the at least one prediction is correct, and outputs a prediction indicator indicating whether the at least one prediction is correct.Type: GrantFiled: June 1, 2010Date of Patent: April 9, 2013Assignee: ARM LimitedInventors: Michael John Williams, John Michael Horley, Edmond John Simon Ashfield
-
Patent number: 8392893Abstract: The computer system of the present invention emulates target instructions. The computer system includes a processing unit for branching to collective emulation coding for emulating plural of target instructions created beforehand collectively, thereby processing those instructions collectively according to the coding when those target instructions are combined so as to be processed collectively and a memory for storing the collective emulation coding.Type: GrantFiled: May 11, 2007Date of Patent: March 5, 2013Assignee: NEC Computertechno, Ltd.Inventor: Tsutomu Fujihara
-
Publication number: 20120331278Abstract: A system and method for automatically optimizing parallel execution of multiple work units in a processor by reducing a number of branch instructions. A computing system includes a first processor core with a general-purpose micro-architecture and a second processor core with a same instruction multiple data (SIMD) micro-architecture. A compiler detects and evaluates branches within function calls with one or more records of data used to determine one or more outcomes. Multiple compute sub-kernels are generated, each comprising code from the function corresponding to a unique outcome of the branch. Multiple work units are produced by assigning one or more records of data corresponding to a given outcome of the branch to one of the multiple compute sub-kernels associated with the given outcome. The branch is removed. An operating system scheduler schedules each of the one or more compute sub-kernels to the first processor core or to the second processor core.Type: ApplicationFiled: June 23, 2011Publication date: December 27, 2012Inventors: Mauricio Breternitz, Patryk Kaminski, Keith Lowery
-
Patent number: 8332622Abstract: Methods and systems consistent with the present invention provide a programmable table which allows software to define a plurality of branching functions, each of which maps a vector of condition codes to a branch offset. This technique allows for a flexible multi-way branching functionality, using a conditional branch outcome table that can be specified by a programmer. Any instruction can specify the evaluation of arbitrary conditional expressions to compute the values for the condition codes, and can choose a particular branching function. When the processor executes the instruction, the processor's arithmetic/logical functional units evaluate the conditional expressions and then the processor performs the branch operation, according to the specified branching function.Type: GrantFiled: December 12, 2011Date of Patent: December 11, 2012Assignee: Juniper Networks, Inc.Inventors: Anurag P Gupta, John Keen, Jeffrey G Libby, Jean-Marc Frailong, Avanindra Godbole, Sharada Yeluri
-
Publication number: 20120210107Abstract: A method and apparatus for executing branch instructions is provided. In one embodiment, the method includes receiving a branch instruction, wherein a first path of the branch instruction branches to a target instruction, and wherein a second path of the branch instruction branches to one or more interceding instructions between the branch instruction and the target instruction. The method further includes issuing the one or more interceding instructions and the target instruction and determining if the branch instruction follows the first path or the second path. Upon determining that the branch instruction follows the first path, the one or more interceding instructions between the branch instruction and the target instruction are invalidated.Type: ApplicationFiled: April 26, 2012Publication date: August 16, 2012Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventor: David A. Luick
-
Patent number: 8239847Abstract: General-purpose distributed data-parallel computing using high-level computing languages is described. Data parallel portions of a sequential program written in a high-level language are automatically translated into a distributed execution plan. Map and reduction computations are automatically added to the plan. Patterns in the sequential program can be automatically identified to trigger map and reduction processing. Direct invocation of map and reduction processing is also provided. One or more portions of the reduce computation are pushed to the map stage and dynamic aggregation is inserted when possible. The system automatically identifies opportunities for partial reductions and aggregation, but also provides a set of extensions in a high-level computing language for the generation and optimization of the distributed execution plan. The extensions include annotations to declare functions suitable for these optimizations.Type: GrantFiled: March 18, 2009Date of Patent: August 7, 2012Assignee: Microsoft CorporationInventors: Yuan Yu, Pradeep Kumar Gunda, Michael A Isard
-
Patent number: 8225012Abstract: A method may include distributing ranges of addresses in a memory among a first set of functions in a first pipeline. The first set of the functions in the first pipeline may operate on data using the ranges of addresses. Different ranges of addresses in the memory may be redistributed among a second set of functions in a second pipeline without waiting for the first set of functions to be flushed of data.Type: GrantFiled: September 3, 2009Date of Patent: July 17, 2012Assignee: Intel CorporationInventor: Thomas A. Piazza
-
Publication number: 20120084534Abstract: Methods and systems consistent with the present invention provide a programmable table which allows software to define a plurality of branching functions, each of which maps a vector of condition codes to a branch offset. This technique allows for a flexible multi-way branching functionality, using a conditional branch outcome table that can be specified by a programmer. Any instruction can specify the evaluation of arbitrary conditional expressions to compute the values for the condition codes, and can choose a particular branching function. When the processor executes the instruction, the processor's arithmetic/logical functional units evaluate the conditional expressions and then the processor performs the branch operation, according to the specified branching function.Type: ApplicationFiled: December 12, 2011Publication date: April 5, 2012Applicant: JUNIPER NETWORKS, INC.Inventors: Anurag P. GUPTA, John Keen, Jeffrey G. Libby, Jean-Marc Frailong, Avanindra Godbole, Sharida Yeluri
-
Patent number: 8131934Abstract: A facility and cache machine instruction of a computer architecture for specifying a target cache cache-level and a target cache attribute of interest for obtaining a cache attribute of one or more target caches. The requested cache attribute of the target cache(s) is saved in a register.Type: GrantFiled: December 13, 2010Date of Patent: March 6, 2012Assignee: International Business Machines CorporationInventors: Dan F. Greiner, Timothy J. Slegel
-
Patent number: 8078849Abstract: Methods and systems consistent with the present invention provide a programmable table which allows software to define a plurality of branching functions, each of which maps a vector of condition codes to a branch offset. This technique allows for a flexible multi-way branching functionality, using a conditional branch outcome table that can be specified by a programmer. Any instruction can specify the evaluation of arbitrary conditional expressions to compute the values for the condition codes, and can choose a particular branching function. When the processor executes the instruction, the processor's arithmetic/logical functional units evaluate the conditional expressions and then the processor performs the branch operation, according to the specified branching function.Type: GrantFiled: December 23, 2008Date of Patent: December 13, 2011Assignee: Juniper Networks, Inc.Inventors: Jeffrey G. Libby, Jean-Marc Frailong, Anurag P. Gupta, John Keen, Avanindra Godbole, Sharada Yeluri
-
Patent number: 8069339Abstract: A microprocessor includes an architectural register and a non-architectural register, each having a plurality of condition code flags. A first instruction of the microarchitectural instruction set of the microprocessor instructs the microprocessor to update the plurality of condition code flags based on a result of the first instruction. The first instruction includes a field for indicating whether to update the plurality of condition code flags of the architectural or non-architectural register. A second instruction of the microarchitectural instruction set instructs the microprocessor to conditionally perform an operation based on one of the plurality of condition code flags. The second instruction includes a field for indicating whether to use the one of the plurality of condition code flags of the architectural or non-architectural register to determine whether to perform the operation.Type: GrantFiled: May 20, 2009Date of Patent: November 29, 2011Assignee: VIA Technologies, Inc.Inventors: G. Glenn Henry, Terry Parks, Gerard M. Col
-
Patent number: 8019979Abstract: An apparatus for implementing branch intensive algorithms is disclosed. The apparatus includes a processor containing a plurality of ALUs and a plurality of result registers. Each result register has a guard input which allows the ALU to write a result to the register upon receipt of a selection signal at the guard input. A lookup table is dynamically programmed with logic to implement an upcoming branching portion of program code. Upon evaluation of the branch conditions of the branching portion of code, the lookup table outputs a selection signal for writing the correct results of the branching portion of code based on the evaluation of the branch condition statements and the truth table programmed into the lookup table to the result register.Type: GrantFiled: September 12, 2007Date of Patent: September 13, 2011Assignee: Sigma Designs, Inc.Inventors: Jeffrey W. Calder, Tong Sun
-
Patent number: 7970723Abstract: Described herein is technology for, among other things, enabling use of custom expressions in a rules engine. The rules engine may be used in conjunction with a workflow. The technology involves providing a custom expression with access to validation context and execution context of the workflow. The custom expression can then participate in rules engine validation and execution. Furthermore, the technology allows for variables of the custom expression to be analyzed so that the rules engine can discover the variable dependencies of the custom expression and any side effects that drive forward chaining.Type: GrantFiled: August 30, 2006Date of Patent: June 28, 2011Assignee: Microsoft CorporationInventors: Jurgen A. Willis, Donald J. McCrady, John A. Rummell