Patent classifications
G06F9/322
HANDLING MODIFICATIONS TO PERMITTED PROGRAM COUNTER RANGES IN A DATA PROCESSING APPARATUS
An apparatus and method of operating an apparatus are disclosed. The apparatus has a program counter permitted range storage element defining a permitted range of program counter values for the sequence of instructions it executes. Branch prediction circuitry predicts target instruction addresses for branch instructions. In response to a program counter modifying event, a program counter speculative range storage element is updated corresponding to each speculatively executed instruction after a branch instruction. Program counter permitted range verification circuitry is responsive to resolution of a modification of the program counter permitted range indication resulting from the program counter modifying event to determine whether the speculatively executed program counter range satisfies the permitted range of program counter values. A branch mis-prediction mechanism may support the response of the apparatus if the permitted range of program counter values is violated.
Application specific instruction-set processor (ASIP) architecture having separated input and output data ports
The invention provide an application specific instruction-set processor (ASIP) that uses a Very Long Instruction Word (VLIW) for executing atomic application specific instructions. The ASIP includes one or more units for executing a first set of atomic application specific instructions for receiving a first set of data across a plurality of input data ports in a first operation specified in an instruction word. Further, the one or more units execute a second set of atomic application specific instructions for outputting a second set of data across a plurality of output data ports in a second operation specified in the instruction word, wherein an input data port of the plurality of input data ports and a corresponding output data port of the plurality of output data ports share a same address location and are specified as operands in the instruction word. Thus, the first operation and the second operation can occur simultaneously.
COMPUTING ARCHITECTURE TO PROVIDE SIMPLIFIED POST-SILICON DEBUGGING CAPABILITIES
This disclosure provides techniques for debugging a computing system in a post-silicon validation process. In one example, a system can include a memory storing a set of instructions. The system can include a controller configured to fetch and execute the set of instructions. The system can include a logic block. The system can include a control bus coupling the memory, the controller, and the logic block. The control bus can include a first break-in circuit and a second break-in circuit each coupled to the controller. The first break-in circuit and the second break-in circuit can be configured to selectively cascade a break point from the controller through the logic block to halt execution of the set of instructions.
Method and system for optimizing data transfer from one memory to another memory
A method and system for moving data from a source memory to a destination memory by a processor is disclosed herein. The destination memory stores a sequence of instructions and the sequence of instructions comprises one or more load instructions and one or more store instructions. The processor initially moves the one or more store instructions from the destination memory to the source memory. The processor then executes the one or more load instructions from the destination memory. On executing the one or more load instructions, the data is loaded from the source memory to at least one register in the processor. The processor further initiates execution of the one or more store instructions stored in the source memory. On executing the one or more store instructions from the source memory, the processor stores the data from the at least one register to the destination memory.
Identifying an effective address (EA) using an interrupt instruction tag (ITAG) in a multi-slice processor
Methods and apparatus for identifying an effective address (EA) using an interrupt instruction tag (ITAG) in a multi-slice processor including receiving, by an instruction fetch unit of the processor, the interrupt ITAG; retrieving an effective address table (EAT) row from an EAT, wherein the EAT row comprises a range of EAs and a first ITAG of a range of ITAGs; accessing a processor instruction vector comprising a plurality of elements, each element corresponding to one of a plurality of ITAGs; applying a mask to the processor instruction vector to obtain a portion of the processor instruction vector that begins with an element corresponding to the first ITAG and is defined by an element corresponding to the interrupt ITAG; calculating an EA offset; and identifying the EA for the interrupt ITAG using the EA offset and the range of EAs in the retrieved EAT row.
Reduced logic level operation folding of context history in a history register in a prediction system for a processor-based system
Reduced logic level operation folding of context history in a history register in a prediction system for a processor-based system is disclosed. The prediction system includes a prediction circuit employing reduced operation folding of the history register for indexing a prediction table containing prediction values used to process a consumer instruction when value has not yet been resolved. To avoid the requirement to perform successive logic folding operations to produce a folded context history of a resultant reduced bit width, reduced logic level folding operation of the resultant reduced bit width is employed. Reduced logic level folding operation of the resultant reduced bit width involves using current folded context history from previous contents of a history register as basis for determining a new folded context history. In this manner, logic folding of the history register is faster and operates with reduced power consumption as a result of fewer logic operations.
APPARATUS AND METHOD FOR AN EARLY PAGE PREDICTOR FOR A MEMORY PAGING SUBSYSTEM
An apparatus and method for early page address prediction. For example, one embodiment of a processor comprises: an instruction fetch circuit to fetch a load instruction; a decoder to decode the load instruction; execution circuitry to execute the load instruction to perform a load operation, the execution circuitry including an address generation unit (AGU) to generate an effective address to be used for the load operation; and early page prediction (EPP) circuitry to use one or more attributes associated with the load instruction to predict a physical page address for the load instruction simultaneously with the AGU generating the effective address and/or prior to generation of the effective address.
Verifying branch targets
Apparatus and methods are disclosed for implementing bad jump detection in block-based processor architectures. In one example of the disclosed technology, a block-based processor includes one or more block-based processing cores configured to fetch and execute atomic blocks of instructions and a control unit configured to, based at least in part on receiving a branch signal indicating a target location is received from one of the instruction blocks, verify that the target location is a valid branch target.
Additional Channel for Exchanging Useful Information
This patent application describes a device (for example, a microprocessor) in which an additional channel for exchanging useful information is implemented.
Such device may extract additional useful information (for example, information that serves to access other address spaces, control caching, prefetching, synchronization, or speculative execution) from logical addresses that are called by executable operations, and also obtains additional useful information using prefixes, suffixes, or the context of the executable operation.
In other words, this invention describes the use of logical addresses, prefixes and/or suffixes of executable operations, including in aggregate with the context, as an additional channel for exchanging useful information with a computer device. As well as the set of solutions, that use this information.
In addition, this method allows the simultaneous addressing of different address spaces without reloading supplementary or system registers and/or allows the use of additional useful information to control the address translation process or the memory accessing (control transfer) process.
This invention also describes devices that support access to other address spaces using ordinary pointers (without switching context), that use parameterized prefixes or suffixes to transmit additional information during the execution of operations, and conversely, that automatically modify the code executed by them, and that use a different number of bits in a logical address to represent different identifiers of address spaces (contexts) and a new scheme for coding immediate values (for example, offsets).
These are distinct ideas, but they are inspired by the idea of an additional channel and are used in the implementations described in this patent application, therefore they are included in this application.
In particular, such device may simultaneously (that is, without needing to regularly switch its mode of operation) use both logical (for example, those that are linear, or address virtual memory), and lower level (for example, physical) addresses in general purpose commands.
The device in which in which an additional channel for exchanging useful information is implemented, may also use several different rules to translate high level addresses into lower level addresses, thereby dispensing with switching the device's mode of operation in order to use different rules to translate addresses in neighboring commands or in compact fragments of the program code.
EVENT-BASED BRANCHING FOR SERIAL PROTOCOL PROCESSOR-BASED DEVICES
Event-based branching for serial protocol processor-based devices is disclosed. In this regard, a serial protocol processor-based device provides an event mesh control circuit comprising a mapping table circuit and a register control array corresponding to rows of the mapping table circuit. Each row of the mapping table circuit of the event mesh control circuit represents an implementation-specific grouping of events, with each column of the row representing a last known status or outcome for a corresponding event. A microcontroller of the serial protocol processor-based device is configured to use the register control array to select which event (i.e., which column of a corresponding row) will be used to make a branching determination. A branch custom instruction provided by the microcontroller indicates a selected row, a branch target address, and a comparison value to compare against the event indicated by the register control array entry corresponding to the selected row.