Abstract:
A processor core for supporting the concurrent execution of mixed integer and floating point operations includes integer functional units (110) utilizing 32-bit operand data and a floating point functional unit (22) utilizing up to 82-bit operand data. Eight operand busses (30, 31) connect to the functional units to furnish operand data, and five result busses (32) are connected to the functional units to return results. The width of the operand busses is 41 bits, which is sufficient to communicate either integer or floating point data. This is done using an instruction decoder (18) to apportion a floating point operation which operates on 82-bit floating point operand data into multiple suboperations each associated with a 41-bit suboperand. The operand busses and result busses have an expanded data-handling dimension from the standard integer data width of 32 bits to 41 bits for handling the floating point operands. The floating point functional unit recombines the suboperand data into 82-bits for execution of the floating point operation, and partitions the 82-bit result for output to the result busses. In addition, the excess capacity of the result busses during integer transfers is used to communicate integer flags.
Abstract:
A processor core for supporting the concurrent execution of mixed integer and floating point operations includes integer functional units (110) utilizing 32-bit operand data and a floating point functional unit (22) utilizing up to 82-bit operand data. Eight operand busses (30, 31) connect to the functional units to furnish operand data, and five result busses (32) are connected to the functional units to return results. The width of the operand busses is 41 bits, which is sufficient to communicate either integer or floating point data. This is done using an instruction decoder (18) to apportion a floating point operation which operates on 82-bit floating point operand data into multiple suboperations each associated with a 41-bit suboperand. The operand busses and result busses have an expanded data-handling dimension from the standard integer data width of 32 bits to 41 bits for handling the floating point operands. The floating point functional unit recombines the suboperand data into 82-bits for execution of the floating point operation, and partitions the 82-bit result for output to the result busses. In addition, the excess capacity of the result busses during integer transfers is used to communicate integer flags.
Abstract:
A processor having improved exception handling capability handles second level exceptions with reduced exception latency. The processor processes instructions in order through a plurality of serial stages. A first set of registers continuously tracks each instruction as it advances from stage to stage. An exception handles processes first level exception conditions and precludes updating of the first set of registers when it processes first level exception conditions to permit the processor to restart at the point of a first level exception condition. A second set of registers continuously tracks the instruction in tandem with the first set of registers, but is updatable during the processing of first level exception conditions by the exception handles. A monitor processes second level exception conditions occurring in the exception handler and precludes the second set of registers from being updated when it processes the second level exception conditions to permit the exception handler to restart from the point of the occurrence of a second level exception condition.
Abstract:
A method of and apparatus for determining and controlling the inertial attitude of a spinning artificial satellite without using a suite of inertial gyroscopes. The method and apparatus operate by tracking three astronomical objects near the Earth's ecliptic pole and the satellite's and/or star tracker's spin axis and processing the track information. The method and apparatus include steps and means for selecting preferably three astronomical objects using a histogram method and determining a square of a first radius (R12) of a track of a first astronomical object; determining a square of a second radius (R22) of a track of a second astronomical object; determining a square of a third radius (R32) of a track of a third astronomical object; determining the inertial attitude of the spin axis using the squares of the first, second, and third radii (R12, R22, and R32) to calculate pitch, yaw, and roll rate; determining a change in the pitch and yaw of the artificial satellite; and controlling on-board generated current flow to various orthogonally-disposed current-carrying loops to act against the Earth's magnetic field and to apply gyroscopic precession to the spinning satellite to correct and maintain its optimum inertial attitude.
Abstract:
A wireless communications device includes a host processing unit, a modem processing unit, and a memory transport interface. The wireless communications device typically runs a variety of software tasks, some of which require considerably more memory than others. By processing the memory intensive tasks with the host processing unit and assigning tasks requiring high computing power but relatively smaller memory to the modem processor unit, a smaller on-chip memory can be used for the modem processor unit tasks. In addition, by using a messaging transport interface to transfer data between tasks running on different processing units, smaller local memories can be used in place of a shared memory. For example, by allocating and storing L1 tasks at the modem processing unit and allocating/storing L2 and L3 tasks at the host processing unit, duplicate memory components may be reduced or removed, thereby lowering system costs and improving system efficiency.
Abstract:
A method of and apparatus for determining and controlling the inertial attitude of a spinning artificial satellite without using a suite of inertial gyroscopes. The method and apparatus operate by tracking three astronomical objects near the Earth's ecliptic pole and the satellite's and/or star tracker's spin axis and processing the track information. The method and apparatus include steps and means for selecting preferably three astronomical objects using a histogram method and determining a square of a first radius (R12) of a track of a first astronomical object; determining a square of a second radius (R22) of a track of a second astronomical object; determining a square of a third radius (R32) of a track of a third astronomical object; determining the inertial attitude of the spin axis using the squares of the first, second, and third radii (R12, R22, and R32) to calculate pitch, yaw, and roll rate; determining a change in the pitch and yaw of the artificial satellite; and controlling on-board generated current flow to various orthogonally-disposed current-carrying loops to act against the Earth's magnetic field and to apply gyroscopic precession to the spinning satellite to correct and maintain its optimum inertial attitude.
Abstract:
A super-scalar microprocessor performs operations upon a plurality of instructions at each of its fetch, decode, execute, and write-back stages. To support such operations, the super-scalar microprocessor includes a dispatch arrangement including an instruction cache for fetching blocks of instructions including a plurality of instructions and an instruction decoder which decodes and dispatches the instructions to functional units for execution. The instruction decoder applies a dispatch criteria to selected instructions of each block of instructions and dispatches the selected instructions which satisfy the dispatch criteria. The dispatch criteria includes the requirement that the instructions be dispatched speculatively in order, that supporting operands be available for the execution of the instructions, or tagged values substituted that will be available later, and that the functional units required for executing the instructions be available. The operation of the instruction decoder and the instruction cache is coordinated by a preset protocol which assures that the instructions are dispatched in ascending consecutive order and that blocks of instructions are efficiently fetched for decode and dispatch by the instruction decoder.
Abstract:
A processor is configured to detect a branch instruction have a forward branch target address within a predetermined range of the branch fetch address of the branch instruction. If the branch instruction is predicted taken, instead of canceling subsequent instructions and fetching the branch target address, the processor allows sequential fetching to continue and selectively cancels the sequential instructions which are not part of the predicted instruction sequence (i.e. the instructions between the predicted taken branch instruction and the target instruction identified by the forward branch target address). Instructions within the predicted instruction sequence which may already have been fetched prior to predicting the branch instruction taken may be retained within the pipeline of the processor, and yet subsequent instructions may be fetched.
Abstract:
A microprocessor including a pair of caches is provided. One of the pair of caches is accessed by stack-relative memory accesses from the decode stage of the instruction processing pipeline. The second of the pair of caches is accessed by memory accesses from the execute stage of the instruction processing pipeline. When a miss is detected in the first of the pair of caches, the stack-relative memory access which misses is conveyed to the execute stage of the instruction processing pipeline. When the stack-relative memory access accesses the second of the pair of caches, the cache line containing the access is transmitted to the first of the pair of caches for storage. The first of the pair of caches selects a victim line for replacement when the data is transferred from the second of the pair of caches. If the victim line has been modified while stored in the first cache, then the victim line is stored in a copyback buffer. A signal is asserted by the first cache to inform the second cache of the need to perform a victim line copyback. Requests from the execute stage of the instruction processing pipeline are stalled to allow the copyback to occur.
Abstract:
A superscalar microprocessor is provided which includes a integer functional unit and a floating point functional unit that share a high performance main data processing bus. The integer unit and the floating point unit also share a common reorder buffer, register file, branch prediction unit and load/store unit which all reside on the same main data processing bus. Instruction and data caches are coupled to a main memory via an internal address data bus which handles communications therebetween. An instruction decoder is coupled to the instruction cache and is capable of decoding multiple instructions per microprocessor cycle. Instructions are dispatched from the decoder in speculative order, issued out-of-order and completed out-of-order. Instructions are retired from the reorder buffer to the register file in-order. The functional units of the microprocessor desirably accommodate operands exhibiting multiple data widths. High performance and efficient use of the microprocessor die size are achieved by the sharing architecture of the disclosed superscalar microprocessor.