To Macro-instruction Routine Patents (Class 712/242)
-
Patent number: 12056057Abstract: Systems, apparatuses, and methods related to a computer system having a page table entry containing security settings for calls from predefined domains are described. The page table entry can be used to map a virtual memory address to a physical memory address. In response to a call to execute a routine identified using the virtual memory address, a security setting corresponding to the execution domain from which the call initiates can be extracted from the page table entry to determine whether a security measure is to be used. For example, a shadow stack structure can be used to protect the private stack content of the routine from being access by a caller and/or to protect the private stack content of the caller from being access by the callee.Type: GrantFiled: December 12, 2022Date of Patent: August 6, 2024Assignee: Lodestar Licensing Group LLCInventor: Steven Jeffrey Wallach
-
Patent number: 11941401Abstract: An apparatus includes a processor circuit that includes a return address stack circuit, a return prediction circuit, and a fetch control circuit. The return prediction circuit is configured to store, for previously accessed return addresses, fetch parameters for next fetch addresses. The fetch control circuit is configured to in response to a fetch of a call instruction, push a return address onto the return address stack circuit. In response to a fetch of a return instruction that corresponds to the call instruction, the fetch control circuit is further configured to retrieve the return address from the return address stack circuit, and to create, using the return address and fetch parameters retrieved from the return prediction circuit, a next fetch request to retrieve instructions subsequent to the return instruction.Type: GrantFiled: June 9, 2022Date of Patent: March 26, 2024Assignee: Apple Inc.Inventors: Pruthivi Vuyyuru, Ian D. Kountanis
-
Patent number: 11762566Abstract: An apparatus comprises processing circuitry to perform data processing in response to instructions, and memory access circuitry to perform a tag-guarded memory access operation in response to a target address. The tag-guarded memory access operation comprises comparing an address tag associated with the target address with a guard tag stored in a memory system in association with a block of one or more memory locations comprising an addressed location identified by the target address, and generating an indication of whether a match is detected between the guard tag and the address tag. The memory access circuitry determines, according to a programmable mapping, a mapping of guard tag storage locations for storing guard tags for corresponding blocks of memory locations.Type: GrantFiled: July 8, 2021Date of Patent: September 19, 2023Assignee: Arm LimitedInventors: Richard Roy Grisenthwaite, Graeme Peter Barnes
-
Patent number: 11687353Abstract: A method is described for controlling an electronic device with a programmable control unit based upon a plurality of operative parameters and a series of rules that these operative parameters shall satisfy. The method includes the following steps: associating a firmware with the electronic device; providing the firmware with a file containing the values of the operative parameters and the rules these operative parameters shall satisfy; and controlling the device by using the operative parameters and the rules contained in the file.Type: GrantFiled: September 28, 2016Date of Patent: June 27, 2023Assignee: Marici Holdings The Netherlands B.V.Inventors: Filippo Vernia, Claudio Tacchini, Lorenzo Bianchi, Davide Tazzari
-
Patent number: 11307861Abstract: A method performed in a processor, includes: receiving, in the processor, a branch instruction in the processing; determining, by the processor, an address of an instruction after the branch instruction as a candidate for speculative execution, the address including an object identification and an offset; and determining, by the processor, whether or not to perform speculative execution of the instruction after the branch instruction based on the object identification of the address.Type: GrantFiled: July 29, 2020Date of Patent: April 19, 2022Assignee: Micron Technology, Inc.Inventor: Steven Jeffrey Wallach
-
Patent number: 11016878Abstract: A system and method are provided for data collection and analysis of information related to applications. Specifically, the developer of the application may install analytic software, which may be embodied as a software development kit (SDK), on an integrated development environment (“IDE”) associated with the developer, wherein the analytic software may be installed with a wizard-like interface having a series of easy to follow instructions. Once installed, the application, with the analytic software incorporated therein, may be provided and installed on a plurality of end user devices. Thereafter, the analytic software may work in conjunction with analytic processing logic to assist the developer in obtaining pertinent information related to bugs associated with the application that is being executed on an end user device.Type: GrantFiled: March 21, 2017Date of Patent: May 25, 2021Assignee: Google LLCInventors: Wayne Chang, Jeffrey H. Seibert, Jr.
-
Patent number: 10698726Abstract: Various technologies and techniques are disclosed for switching threads within routines. A controller routine receives a request from an originating routine to execute a coroutine, and executes the coroutine on an initial thread. The controller routine receives a response back from the coroutine when the coroutine exits based upon a return statement. Upon return, the coroutine indicates a subsequent thread that the coroutine should be executed on when the coroutine is executed a subsequent time. The controller routine executes the coroutine the subsequent time on the subsequent thread. The coroutine picks up execution at a line of code following the return statement. Multiple return statements can be included in the coroutine, and the threads can be switched multiple times using this same approach. Graphical user interface logic and worker thread logic can be co-mingled into a single routine.Type: GrantFiled: June 26, 2018Date of Patent: June 30, 2020Assignee: Microsoft Technology Licensing, LLCInventor: Krzysztof Cwalina
-
Patent number: 10474618Abstract: A method, apparatus, and system are provided for implementing debug data saving in host memory on a Peripheral Component Interconnect Express (PCIE) solid state drive (SSD). Upon Power Loss Interruption (PLI) event detected in a solid state drive (SSD), the SSD transfers debug data directly to the host system main (DRAM) memory via a Peripheral Component Interconnect Express (PCIE) bus.Type: GrantFiled: September 4, 2014Date of Patent: November 12, 2019Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.Inventors: Michael J. Anderson, Adam Michael Espeseth, Brandon William Schulz, Lee Anton Sendelbach
-
Patent number: 10360373Abstract: Disclosed in some examples are methods, systems, and machine readable media for encrypting return addresses with a cryptographic key. The call and return operations may be changed to incorporate an XOR operation on the return address with the cryptographic key. Upon calling a function, the return address may be XORed with the key which encrypts the return address. The encrypted return address may then be placed upon the stack. Upon returning from the function, the return address may be retrieved from the stack and XORed with the cryptographic key which then decrypts the return address. The processor may then return control to the address indicated by the unencrypted return address. This method makes modifications of the return address useless as an attack vector because the result of modifying the return address will be unpredictable to the attacker as a result of the XOR operation done on the return address.Type: GrantFiled: September 28, 2016Date of Patent: July 23, 2019Assignee: Intel CorporationInventor: Rodrigo R. Branco
-
Patent number: 10185595Abstract: An example method includes partitioning a software application into two or more instruction blocks each containing one or more software instructions. The two or more instruction blocks are arranged in a sequence defining an order in which to execute the two or more instruction blocks. The method may also involve storing, in a first block of the two or more instruction blocks, a first identifier of the first block and storing, in a second block of the two or more instruction blocks, (i) a second identifier of the second block, (ii) the first identifier of the first block, and (iii) a one-way cryptographic hash of contents of the first block. The first block is adjacent to the second block in the sequence. The method may additionally include transmitting, to a computing device, the two or more instruction blocks for execution by the computing device in the defined order.Type: GrantFiled: June 4, 2018Date of Patent: January 22, 2019Assignee: Confia Systems, Inc.Inventors: Nadaradjane Ramatchandirane, Vandana Upadhyay
-
Patent number: 10157268Abstract: Each program thread running on a computing device has an associated data stack and control stack. A stack displacement value is generated, which is the difference between the memory address of the base of the data stack and the memory address of the base of the control stack, and is stored in a register of a processor of the computing device that is restricted to operating system kernel use. For each thread on which return flow guard is enabled, prologue and epilogue code is added to each function of the thread (e.g., by a memory manager of the computing device). The data stack and the control stack each store a return address for the function, and when the function completes the epilogue code allows the function to return only if the return addresses on the data stack and the control stack match.Type: GrantFiled: September 27, 2016Date of Patent: December 18, 2018Assignee: Microsoft Technology Licensing, LLCInventors: Jordan Thomas Rabet, Kenneth D. Johnson, Matthew R. Miller, Adam M. Zabrocki, Shawn Daniel Hoffman, Landy Wang, Yevgeniy M. Bak
-
Patent number: 10088812Abstract: A functional unit includes: a parameter reception unit that classifies a parameter as a first parameter or as a second parameter; a first-parameter analysis unit that analyzes the classified first parameter; a second-parameter analysis unit that analyzes the classified second parameter; a first-parameter storage unit that stores therein the first parameter analyzed by the first-parameter analysis unit; a second-parameter storage unit that stores therein the second parameter analyzed by the second-parameter analysis unit; a first processing unit that controls the first function in accordance with the first parameter stored in the first-parameter storage unit; and a second processing unit that controls the second function in accordance with the second parameter stored in the second-parameter storage unit, wherein the functional unit is controlled by a plurality of controllers.Type: GrantFiled: April 25, 2014Date of Patent: October 2, 2018Assignee: Mitsubishi Electric CorporationInventor: Yoshiyuki Kubota
-
Patent number: 9990233Abstract: Technologies for partial binary translation on multi-core platforms include a shared translation cache, a binary translation thread scheduler, a global installation thread, and a local translation thread and analysis thread for each processor core. On detection of a hotspot, the thread scheduler first resumes the global thread if suspended, next activates the global thread if a translation cache operation is pending, and last schedules local translation or analysis threads for execution. Translation cache operations are centralized in the global thread and decoupled from analysis and translation. The thread scheduler may execute in a non-preemptive nucleus, and the translation and analysis threads may execute in a preemptive runtime. The global thread may be primarily preemptive with a small non-preemptive nucleus to commit updates to the shared translation cache. The global thread may migrate to any of the processor cores. Forward progress is guaranteed. Other embodiments are described and claimed.Type: GrantFiled: June 28, 2013Date of Patent: June 5, 2018Assignee: Intel CorporationInventors: Abhik Sarkar, Jiwei Lu, Palanivelrajan Rajan Shanmugavelayutham, Jason M. Agron, Koichi Yamada
-
Patent number: 9921816Abstract: A computer-implemented method includes, in a code transformation system, identifying save-to-return code instructions, function call code instructions, comparison code instructions, and exceptional code instructions. The function call code instructions are associated with the save-to-return code instructions. The comparison code instructions are associated with the save-to-return code instructions. The exceptional code instructions are associated with the comparison code instructions. A predefined proximity range based on a predefined proximity value as well as a proximity eligibility indicator are determined. The proximity eligibility indicator denotes whether the save-to-return code instructions and the comparison code instructions are within the predefined proximity range.Type: GrantFiled: March 8, 2016Date of Patent: March 20, 2018Assignee: International Business Machines CorporationInventors: Iain A. Ireland, Allan H. Kielstra, Muntasir A. Mallick
-
Patent number: 9916141Abstract: A computer-implemented method includes, in a code transformation system, identifying save-to-return code instructions, function call code instructions, comparison code instructions, and exceptional code instructions. The function call code instructions are associated with the save-to-return code instructions. The comparison code instructions are associated with the save-to-return code instructions. The exceptional code instructions are associated with the comparison code instructions. A predefined proximity range based on a predefined proximity value as well as a proximity eligibility indicator are determined. The proximity eligibility indicator denotes whether the save-to-return code instructions and the comparison code instructions are within the predefined proximity range.Type: GrantFiled: October 15, 2015Date of Patent: March 13, 2018Assignee: International Business Machines CorporationInventors: Iain A. Ireland, Allan H. Kielstra, Muntasir A. Mallick
-
Patent number: 9582312Abstract: Context information associated with asynchronous tasks executing in a multithread computer processing environment can be captured. An identifier block having context information associated with tasks executed in the thread is stored in a call stack of a thread. For asynchronous tasks that execute in the thread, a context trace component causes the thread to place an identifier block in the stack of the thread. The identifier block stores context information associated with the currently executing task and with one or more previously executed tasks. Context information currently stored in an identifier block can be retrieved and stored in subsequent identifier blocks, thereby enabling capture of a sequential context trace of asynchronous tasks that execute in the thread. The context trace information stored in the identifier block can be retrieved to support failure analysis when a task fails to execute properly.Type: GrantFiled: February 4, 2015Date of Patent: February 28, 2017Assignee: Amazon Technologies, Inc.Inventor: Jari Juhani Karppanen
-
Patent number: 9268559Abstract: The invention relates to a method for detecting a subroutine call stack modification, including the steps of, when calling a subroutine, placing a return address at the top of the stack; at the end of the subroutine, using the address at the top of the stack as the return address, and removing the address from the stack; when calling the subroutine, accumulating the return address in a memory location with a first operation; at the end of the subroutine, accumulating the address from the top of the stack in the memory location with a second operation, reciprocal of the first operation; and detecting a change when the content of the memory location is different from its initial value.Type: GrantFiled: July 31, 2013Date of Patent: February 23, 2016Assignee: INSIDE SECUREInventor: Florian Galdo
-
Patent number: 9213551Abstract: Techniques and structures are disclosed relating to predicting return addresses in multithreaded processors. In one embodiment, a processor is disclosed that includes a return address prediction unit. The return address prediction unit is configured to store return addresses for different ones of a plurality of threads executable on the processor. The return address prediction unit is configured to receive a request for a predicted return address for one of the plurality of threads. The first request includes an identification of the requesting thread. The return address prediction unit is configured to provide the predicted return address to the requesting thread. In some embodiments, the return address prediction unit is configured to store the return addresses in a memory that has a plurality of dedicated portions. In some embodiments, the return address prediction unit is configured to store the return addresses in a memory that has dynamically allocable entries.Type: GrantFiled: March 11, 2011Date of Patent: December 15, 2015Assignee: Oracle International CorporationInventors: Manish K. Shah, Gregory F. Grohoski, Zeid H. Samoail
-
Patent number: 8990546Abstract: Embodiments of a system and method are disclosed that can include a memory unit, and a memory management unit coupled to the memory unit. The memory management unit can include address mapping circuitry and access control circuitry operable to: provide address mappings for at least a frame stack and a link stack in the memory unit for programs being executed by the processing unit, and provide an access permission indicator applicable to any segment of the memory unit. A processing unit can save context information for a program to the frame stack, and execute a savelink instruction subsequent to the execution of a branch and link instruction. If the access permission indicator is set, the savelink instruction saves to the link stack a return address provided by the branch and link instruction.Type: GrantFiled: October 31, 2011Date of Patent: March 24, 2015Assignee: Freescale Semiconductor, Inc.Inventor: Peter J. Wilson
-
Patent number: 8959317Abstract: A microcomputer includes: a plurality of register lists having a plurality of register patterns, respectively, wherein each of plurality of register patterns designates registers, data of which are to be saved in a data memory; an instruction fetch control circuit configured to fetch instruction code from an instruction memory in response to an interrupt request issued based on occurrence of an interrupt factor; and a register data saving control circuit configured to acquire one register pattern from one of the plurality of register lists in response to the interrupt request, and issue a microinstruction based on the acquired register pattern in response to the interrupt request. An instruction executing section is configured to execute the microinstruction prior to the fetched instruction code, to save the data of registers designated based on the acquired register pattern in the data memory.Type: GrantFiled: April 12, 2011Date of Patent: February 17, 2015Assignee: Renesas Electronics CorporationInventor: Hideki Matsuyama
-
Patent number: 8943300Abstract: An apparatus for emulating the branch prediction behavior of an explicit subroutine call is disclosed. The apparatus includes a first input which is configured to receive an instruction address and a second input. The second input is configured to receive predecode information which describes the instruction address as being related to an implicit subroutine call to a subroutine. In response to the predecode information, the apparatus also includes an adder configured to add a constant to the instruction address defining a return address, causing the return address to be stored to an explicit subroutine resource, thus, facilitating subsequent branch prediction of a return call instruction.Type: GrantFiled: July 31, 2008Date of Patent: January 27, 2015Assignee: QUALCOMM IncorporatedInventors: Brian Michael Stempel, James Norris Dieffenderfer, Thomas Andrew Sartorius, Rodney Wayne Smith
-
Patent number: 8694760Abstract: A branch prediction mechanism within an information processing device comprises a call stack where function arguments are stacked when function calls are performed. The call stack stores arguments relating to branch instructions within the function. The branch prediction mechanism stores the branch instruction address, the leading value of the call stack, and the branch destination address at branch instruction execution time, which are in correspondence, in a branch result buffer. A branch prediction unit obtains the branch instruction address and leading value of the call stack when notified of branch instruction execution, searches the branch result buffer for a branch destination corresponding to the address and leading value, and predicts the search result as the branch destination of the executed branch instruction. An instruction fetch unit fetches instructions from the branch destination predicted by the branch prediction unit.Type: GrantFiled: May 19, 2010Date of Patent: April 8, 2014Assignee: Panasonic CorporationInventor: Katsushige Amano
-
Patent number: 8555041Abstract: Various embodiments include methods and related media for performing operations including a return operation. One such method includes testing a content of a return value register and setting status flags. Testing the content of the return value register and setting the status flags are performed in response to a single instruction.Type: GrantFiled: June 7, 2010Date of Patent: October 8, 2013Assignee: Atmel CorporationInventors: Erik K. Renno, Oyvind Strom, Morten W. Lund
-
Patent number: 8438371Abstract: Whenever a link address is written to the link stack, the prior value of the link stack entry is saved, and is restored to the link stack after a link stack push operation is speculatively executed following a mispredicted branch. This condition is detected by maintaining a count of the total number of uncommitted link stack write instructions in the pipeline, and a count of the number of uncommitted link stack write instructions ahead of each branch instruction. When a branch is evaluated and determined to have been mispredicted, the count associated with it is compared to the total count. A discrepancy indicates a link stack write instruction was speculatively issued into the pipeline after the mispredicted branch instruction, and pushed a link address onto the link stack. The prior link address is restored to the link stack from the link stack restore buffer.Type: GrantFiled: May 16, 2011Date of Patent: May 7, 2013Assignee: QUALCOMM IncorporatedInventors: James Norris Dieffenderfer, Brian Michael Stempel, Rodney Wayne Smith
-
Patent number: 8438372Abstract: Whenever a link address is written to the link stack, the prior value of the link stack entry is saved, and is restored to the link stack after a link stack push operation is speculatively executed following a mispredicted branch. This condition is detected by maintaining an incrementing tag register which is incremented by each link stack write instruction entering the pipeline, and a snapshot of the incrementing tag register, associated with each branch instruction. When a branch is evaluated and determined to have been mispredicted, the snapshot associated with it is compared to the incrementing tag register. A discrepancy indicates a link stack write instruction was speculatively issued into the pipeline after the mispredicted branch instruction, and pushed a link address onto the link stack, thus corrupting the link stack. The prior link address is restored to the link stack from the link stack restore buffer.Type: GrantFiled: August 18, 2011Date of Patent: May 7, 2013Assignee: QUALCOMM IncorporatedInventors: James Norris Dieffenderfer, Brian Michael Stempel, Rodney Wayne Smith
-
Patent number: 8423968Abstract: Method, system and computer program product for template-based vertical microcode instruction trace generation. An exemplary embodiment includes an instruction trace generation method, including generating a testcase for a millicoded instruction in an instruction trace pool, wherein the millicoded instruction is included in a parent instruction trace, processing the testcase to generate a millicode instruction trace snippet, editing the millicode instruction trace snippet to generate a templatized millimode snippet, processing the parent instruction trace, accessing the templatized millimode snippet, updating the templatized millimode snippet with a value from the parent instruction trace, and generating a millicoded instruction trace from the updated templatized millimode snippet.Type: GrantFiled: February 11, 2008Date of Patent: April 16, 2013Assignee: International Business Machines CorporationInventors: David S. Hutton, Jane H Bartik
-
Patent number: 8296750Abstract: A method and apparatus for optimizing a target program including a pattern of instructions to be replaced. The method is performed by execution of program code by a processor of an information processing apparatus that includes an output device and a computer readable storage medium storing the program code. At least one transformation is performed on the target program to generate a transformed target subprogram in which dependencies among the instructions included in the target subprogram are matched with dependencies in the pattern to be replaced. The transformed target subprogram is replaced, with a post-replacement instruction stream determined to correspond to the pattern to be replaced, to generate a replaced target subprogram. An optimized target program that includes the replaced target subprogram is outputted to the output device. The at least one transformation includes a first transformation, a loop transformation, or both the first transformation and the loop transformation.Type: GrantFiled: September 12, 2007Date of Patent: October 23, 2012Assignee: International Business Machines CorporationInventor: Motohiro Kawahito
-
Patent number: 8250349Abstract: A branch prediction control device, in an information processing unit which performs a pipeline process, generates a branch prediction address used for verification of an instruction being speculatively executed. The branch prediction control device includes a first return address storage unit storing the prediction return address, a second return address storage unit storing a return address to be generated depending on an execution result of the call instruction, and a branch prediction address storage unit sending a stored prediction return address as a branch prediction address and storing the sent branch prediction address. When the branch prediction address differs from a return address, which is generated after executing a branch instruction or a return instruction, contents stored in the second return address storage unit are copied to the first return address storage unit.Type: GrantFiled: June 3, 2008Date of Patent: August 21, 2012Assignee: Renesas Electronics CorporationInventor: Tomoo Inoue
-
Patent number: 8087018Abstract: A computer implemented method and apparatus to manage multithread resources in a multiple instruction set architectures environment comprising initializing a first thread from a first context. The initialization of the first thread is suspended at a position in response to an operating system request call to create the first thread. A second thread from a host environment is created based on the position. After the second thread is created, completion of the initialization of the first thread based on the position is then performed. Other embodiments are described in the claims.Type: GrantFiled: March 31, 2006Date of Patent: December 27, 2011Assignee: Intel CorporationInventors: Zach Yoav, Chen Miaobo, Valery E. Ushakov, Vasily Levchenko, Polevic Stanislav
-
Publication number: 20110167248Abstract: Unsuspended co-routines are handled by the machine call stack mechanism in which the stack grows and shrinks as recursive calls are made and returned from. When a co-routine is suspended, however, additional call stack processing is performed. A suspension message is issued, and the entire resume-able part of the call stack is removed, and is copied to the heap. A frame that returns control to a driver method (a resumer) is copied to the call stack so that resumption of the co-routine does not recursively reactivate the whole call stack. Instead the resumer reactivates only the topmost or most current frame called the leaf frame. When a co-routine is suspended, it does not return to its caller, but instead returns to the resumer that has reactivated it.Type: ApplicationFiled: January 7, 2010Publication date: July 7, 2011Applicant: Microsoft CorporationInventors: Neal M. Gafter, Mads Torgersen, Henricus Johannes Maria Meijer, Niklas Gustafsson
-
Patent number: 7971044Abstract: Whenever a link address is written to the link stack, the prior value of the link stack entry is saved, and is restored to the link stack after a link stack push operation is speculatively executed following a mispredicted branch. This condition is detected by maintaining a count of the total number of uncommitted link stack write instructions in the pipeline, and a count of the number of uncommitted link stack write instructions ahead of each branch instruction. When a branch is evaluated and determined to have been mispredicted, the count associated with it is compared to the total count. A discrepancy indicates a link stack write instruction was speculatively issued into the pipeline after the mispredicted branch instruction, and pushed a link address onto the link stack. The prior link address is restored to the link stack from the link stack restore buffer.Type: GrantFiled: October 5, 2007Date of Patent: June 28, 2011Assignee: QUALCOMM IncorporatedInventors: James Norris Dieffenderfer, Brian Michael Stempel, Rodney Wayne Smith
-
Patent number: 7900027Abstract: A computer implemented method, a processor chip, a computer program product, and a data processing system managing a link stack. The data processing system utilizes speculative pushes onto and pops from the link stack. The link stack comprises a set of entries, and each entry comprises a set of state bits. A speculative push of a first instruction is received onto the data stack, and the first instruction is stored into a first entry of the set of entries. A first bit is set to indicate that the first instruction is a valid instruction. A second bit is set to indicate that the first instruction has been speculatively pushed onto the link stack. The link stack pointer control is updated to indicate that the first entry is a top-of-data stack entry.Type: GrantFiled: January 31, 2008Date of Patent: March 1, 2011Assignee: International Business Machines CorporationInventors: Ronald P. Hall, Michael Lance Karm, David Mui, Albert James Van Norstrand, Jr.
-
Patent number: 7882338Abstract: A method, system and computer program product for performing an implicit predicted return from a predicted subroutine are provided. The system includes a branch history table/branch target buffer (BHT/BTB) to hold branch information, including a target address of a predicted subroutine and a branch type. The system also includes instruction buffers, and instruction fetch controls to perform a method including fetching a branch instruction at a branch address and a return-point instruction. The method also includes receiving the target address and the branch type, and fetching a fixed number of instructions in response to the branch type. The method further includes referencing the return-point instruction within the instruction buffers such that the return-point instruction is available upon completing the fetching of the fixed number of instructions absent a re-fetch of the return-point instruction.Type: GrantFiled: February 20, 2008Date of Patent: February 1, 2011Assignee: International Business Machines CorporationInventors: Khary J. Alexander, James J. Bonanno, Brian R. Prasky, Anthony Saporito, III, Robert J. Sonnelitter, III, Charles F. Webb
-
Patent number: 7836290Abstract: A technique recovers return address stack (RAS) content and restores alignment of a RAS top-of-stack (TOS) pointer for occurrences of mispredictions due to speculative operation, out-of-order instruction processing, and exception handling. In at least one embodiment of the invention, an apparatus includes a speculative execution processor pipeline, a first structure for maintaining return addresses relative to instruction flow at a first stage of the pipeline, at least a second structure for maintaining return addresses relative to instruction flow at a second stage of the pipeline. The second stage of the pipeline is deeper in the pipeline than the first stage. The apparatus includes circuitry operable to reproduce at least return addresses from the second structure to the first structure.Type: GrantFiled: February 28, 2006Date of Patent: November 16, 2010Assignee: Oracle America, Inc.Inventors: Shailender Chaudhry, Quinn A. Jacobson, Paul Caprioli, Marc Tremblay
-
Patent number: 7831660Abstract: The present invention relates to a network system providing a wireless website and method for providing and connecting the wireless website using the same, the network system including a contents providing system using a mobile terminal including at least one terminal device receiving contents information for the wireless website through a wired means or a wireless means, thereby transmitting the contents information or connecting to the wireless website, a macro server storing the wireless website created by using the contents information inputted from the terminal device, wherein the macro server includes scripts corresponding to the created wireless website, a database for storing information of the wireless website in a table form, and phone page information for displaying the wireless website, and an execution server searching the database so as to provide contents corresponding to each wireless website, in accordance with a connection of the terminal device.Type: GrantFiled: March 2, 2007Date of Patent: November 9, 2010Assignee: Mtome Co., Ltd.Inventor: Se Jin Park
-
Patent number: 7793086Abstract: A method for link stack misprediction resolution using a rename structure for tracking the link stack processing, in order to quickly resolve link stack corruption from mispredicted function returns. The method comprises establishing a set of physical data structures forming a common pool and an operation control table. Maintaining, within the common pool, a plurality of entries for a plurality of speculative instructions and a plurality of non-speculative instructions. And determining one speculative instruction to be a bad prediction speculative entry, identifying related entries to form a collection, and discarding the collection.Type: GrantFiled: September 10, 2007Date of Patent: September 7, 2010Assignee: International Business Machines CorporationInventor: Gregory W. Alexander
-
Patent number: 7685404Abstract: An apparatus is provided for processing data under control of a program having program instructions and subgraph suggestion information identifying respective sequences of program instructions corresponding to computational subgraphs identified within the program. A memory stores a program formed of separate program instructions. Processing logic executes respective separate program instructions from said program. Accelerator logic, in response to reaching an execution point within the program associated with a subgraph suggestion, executes a sequence of program instructions corresponding to the subgraph suggestion as an accelerated operation instead of executing the sequence of program instructions as respective separate program instructions with the processing logic.Type: GrantFiled: June 5, 2007Date of Patent: March 23, 2010Assignees: ARM Limited, University of MichiganInventors: Stuart David Biles, Krisztian Flautner, Scott Mahlke, Nathan Clark
-
Patent number: 7647489Abstract: 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: GrantFiled: March 14, 2005Date of Patent: January 12, 2010Assignee: ARM LimitedInventor: David John Butcher
-
Patent number: 7617388Abstract: An extendable instruction set architecture is provided. In an embodiment, a microprocessor includes a memory, a virtual instruction expansion store, and substitution logic. The memory stores at least one virtual instruction that includes an index and at least one parameter. The virtual instruction expansion store includes at least one instruction template and at least one parameter selector. The substitution logic forms a sequence of at least one expanded instruction. In an example, each expanded instruction is based on an instruction template and includes a new parameter for use with the instruction template. The new parameter is generated by performing a logical operation from the parameter selector on one or more parameter of the virtual instruction.Type: GrantFiled: December 22, 2006Date of Patent: November 10, 2009Assignee: MIPS Technologies, Inc.Inventor: Kevin D. Kissell
-
Patent number: 7581089Abstract: A method of protecting a return address on a computer stack is disclosed. Two stacks are created, the first a normal stack, and the second, or shadow, having shadow frames containing the return address upon a subroutine call, the address on the first stack where the return address is stored, and a user-definable state variable which is used to identify a shadow frame as a return address. Before returning from a subroutine, the two return addresses are compared, and if they do not match, the second stack is searched down, and then up, for a matching return address. If there is a match, the shadow is re-synchronized with the first stack by comparing the stored values of the first stack pointer with the first stack pointer and adjusting appropriately the shadow stack pointer. The matching shadow frame must also be a return address datatype of return address.Type: GrantFiled: April 18, 2007Date of Patent: August 25, 2009Assignee: The United States of America as represented by the Director of the National Security AgencyInventor: Andrew H. White
-
Patent number: 7526638Abstract: Processor logic gates are used to modify microcode instructions, while they are being executed. The results of previous operations are used by the hardware to modify subsequent instructions in a microcode routine. This gives the effect of branching and also reduces the number of instructions that are executed. Different examples and embodiments are also discussed.Type: GrantFiled: March 16, 2008Date of Patent: April 28, 2009Assignee: International Business Machines CorporationInventor: Glen H. Handlogten
-
Patent number: 7478228Abstract: An apparatus for emulating the branch prediction behavior of an explicit subroutine call is disclosed. The apparatus includes a first input which is configured to receive an instruction address and a second input. The second input is configured to receive predecode information which describes the instruction address as being related to an implicit subroutine call to a subroutine. In response to the predecode information, the apparatus also includes an adder configured to add a constant to the instruction address defining a return address, causing the return address to be stored to an explicit subroutine resource, thus, facilitating subsequent branch prediction of a return call instruction.Type: GrantFiled: August 31, 2006Date of Patent: January 13, 2009Assignee: QUALCOMM IncorporatedInventors: Brian Michael Stempel, James Norris Dieffenderfer, Thomas Andrew Sartorius, Rodney Wayne Smith
-
Patent number: 7472259Abstract: In one embodiment, a pipelined processor is described that includes an execution pipeline having a plurality of stages and a multi-cycle instruction (MCI) controller adapted to assert a stall signal to stall the multi-cycle instruction within one of the stages of the execution pipeline. The MCI controller is adapted to issue a plurality of instructions to subsequent stages in the pipeline while the multi-cycle instruction is stalled.Type: GrantFiled: December 6, 2000Date of Patent: December 30, 2008Assignee: Analog Devices, Inc.Inventors: Gregory A. Overkamp, Charles P. Roth, Ravi P. Singh
-
Patent number: 7444501Abstract: An apparatus for recognizing a subroutine call is disclosed. The apparatus includes a circuit comprising a first input for receiving contents of a register, a second input for receiving a non-sequential change in program flow, and a third input for receiving the next sequential address after the non-sequential change in program flow. The circuit is configured to compare the next sequential address and the contents of the register to determine whether the non-sequential change in program flow is a subroutine call.Type: GrantFiled: November 28, 2006Date of Patent: October 28, 2008Assignee: QUALCOMM IncorporatedInventor: Michael William Morrow
-
Patent number: 7412593Abstract: A processor for processing a program with commands, which has a mother program with a sub-program jump command and a sub-program, which is to be processed in response to the sub-program jump command. The processor has a command processor, which is adapted in the mother program upon occurrence of the sub-program jump command, to extract back-up information about data required in the mother program after processing the sub-program from the sub-program jump command, to back-up data required in the mother program after execution of the sub-program based on the back-up information, to extract a destination address from the sub-program jump command, which refers to the sub-program, and to effect the continuation of the processing of the program with the sub-program based on the destination address.Type: GrantFiled: March 28, 2005Date of Patent: August 12, 2008Assignee: Infineon Technologies AGInventors: Gerd Dirscherl, Berndt Gammel, Michael Smola
-
Patent number: 7409479Abstract: When needing to make write accesses to both upper and lower sides of a counter in a timer, a CPU accesses the lower side last, and accesses the lower side first when needing to make read accesses thereto. The timer stores data of the data bus in the write buffer at the write access to the upper side, and writes the data of the data bus to the lower side and writes the data of the write buffer to the upper side at the write access to the lower side. At the read access to the lower side of the counter, the timer reads the data of the lower side for output to the data bus and reads the data of the upper side for storage in the read buffer. At the read access to the upper side, it outputs data of the read buffer to the data bus.Type: GrantFiled: June 20, 2005Date of Patent: August 5, 2008Assignee: Fujitsu LimitedInventor: Satoshi Matsui
-
Patent number: 7401210Abstract: Following execution of a subroutine, a return instruction is executed having an address as an input operand thereto. This input operand is compared with one or more predetermined values to detect a match and the return instruction response is selected in dependence upon whether or not a match is detected. Thus, the return address value can be used to invoke differing return instruction responses, such as an exception return response or a procedure return response. The one or more predetermined addresses may be conveniently allocated to the highest memory addresses within the memory map.Type: GrantFiled: March 30, 2005Date of Patent: July 15, 2008Assignee: Arm LimitedInventors: Richard Roy Grisenthwaite, Paul Kimelman, David James Seal
-
Patent number: 7386709Abstract: A data processing apparatus is provided with an execute block instruction EMB which specifies a memory location of a block of program instructions to be executed as well as the length of that block of program instructions. When the end of that block of program instructions has been reached as tracked in response to the specified length value, a return to the main program flow is triggered. The instruction decoder can include a block counter register to keep track of the position within the block of program instructions being called. The block of program instructions are fetched by a prefetch unit into the instruction pipeline following the execute block instruction and are treated as having a program counter value corresponding to the execute block instruction whilst the block counter value keeps track of their separate positions within the block of program instructions.Type: GrantFiled: January 13, 2004Date of Patent: June 10, 2008Assignee: ARM LimitedInventor: Vladimir Vasekin
-
Patent number: 7383425Abstract: This invention is directed to a method and apparatus for providing low, predictable latencies in processing IP packets. The apparatus provides a specialized microprocessor or hardwired circuitry to process IP packets for video communications and control of the video source without an operating system. The method relates to operation of a microprocessor which is suitably arranged to carry out the steps of the method. The method includes details of operation of the specialized microprocessor.Type: GrantFiled: February 27, 2004Date of Patent: June 3, 2008Assignee: Pleora Technologies Inc.Inventors: Eric Boisvert, Alain Rivard, George Chamberlain
-
Patent number: 7343482Abstract: There is provided an apparatus for processing data under control of a program having program instructions and subgraph suggestion information identifying respective sequences of program instructions corresponding to computational subgraphs identified within said program, said apparatus comprising: a memory operable to store a program formed of separate program instructions; processing logic operable to execute respective separate program instructions from said program; and accelerator logic operable in response to reaching an execution point within said program associated with a subgraph suggestion to execute a sequence of program instructions corresponding to said subgraph suggestion as an accelerated operation instead of executing said sequence of program instructions as respective separate program instructions with said processing logic.Type: GrantFiled: January 31, 2005Date of Patent: March 11, 2008Assignees: ARM Limited, University of MichiganInventors: Stuart David Biles, Krisztian Flautner, Scott Mahlke, Nathan Clark