Microprocessor with an external command mode for diagnosis and debugging
First Claim
1. A computer circuit for operating in a processor-driven mode responsive to a series of stored macroinstructions from a computer memory, and also for operating in an external command mode responsive to an externally supplied microinstruction and an externally supplied command, comprising:
- a mode selection unit for selecting the external command mode or the processor-driven mode;
an execution unit for executing microinstructions;
a microinstruction multiplexer for providing a selected microinstruction to the execution unit;
a processor-driven instruction path including a decoder for receiving and decoding said stored macroinstructions and decoding them into microinstructions which are then supplied to a first input of the microinstruction multiplexer;
an external instruction path for supplying an externally supplied microinstruction to a second input of the microinstruction multiplexer; and
a control circuit responsive to the mode selection unit for controlling the microinstruction multiplexer to selectduring processor-driven operation, a microinstruction resulting from a decoded macroinstruction from the processor-driven instruction path, andduring external command mode operation, an externally supplied microinstruction from the external instruction path.
0 Assignments
0 Petitions
Reexamination
Accused Products
Abstract
A microprocessor is disclosed herein having an external command mode for directly accessing the execution unit, responsive to externally generated commands and instructions. An external instruction path is provided, as well as a conventional processor-driven instruction path. A multiplexer is provided that selects which of the instruction paths is actually supplied to the execution unit. Using the external command mode, the user can examine and modify registers, memory, and I/O space without otherwise affecting their contents. Any instruction executable by the execution unit is executable in the external command mode. Because direct access is provided into the execution unit, there is no implicit updating that would otherwise affect the state of the processor and require saving to an alternate memory. The present invention is implemented with a conventional test access port designed in accordance with the IEEE 1149.1 boundary scan standard, with modification to include an instruction register, a data register, and control logic. The external command mode is applicable to single and multiple pipeline processors. The circuit described herein includes several selectors for selecting between the probe mode and the processor-driven mode of operation, including an external pin, an external command, and a debug exception. For ascertaining if the circuit is in the external command mode, an acknowledge pin is provided to indicate when the execution unit is ready to accept an instruction in the probe model.
250 Citations
36 Claims
-
1. A computer circuit for operating in a processor-driven mode responsive to a series of stored macroinstructions from a computer memory, and also for operating in an external command mode responsive to an externally supplied microinstruction and an externally supplied command, comprising:
-
a mode selection unit for selecting the external command mode or the processor-driven mode; an execution unit for executing microinstructions; a microinstruction multiplexer for providing a selected microinstruction to the execution unit; a processor-driven instruction path including a decoder for receiving and decoding said stored macroinstructions and decoding them into microinstructions which are then supplied to a first input of the microinstruction multiplexer; an external instruction path for supplying an externally supplied microinstruction to a second input of the microinstruction multiplexer; and a control circuit responsive to the mode selection unit for controlling the microinstruction multiplexer to select during processor-driven operation, a microinstruction resulting from a decoded macroinstruction from the processor-driven instruction path, and during external command mode operation, an externally supplied microinstruction from the external instruction path. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer circuit including a processor, said circuit operating in a processor-driven mode wherein the circuit executes a series of macroinstructions stored in a computer memory, and also for operating in a probe mode wherein the circuit receives an external signal that may include externally supplied commands, and externally supplied probe mode microinstructions, said circuit comprising:
-
a mode selection unit for selecting between the processor-driven mode and the probe mode; an access port, including means for receiving and sending the external signal, means for sending information to the processor and receiving information from the processor, and control logic for controlling the interface between the port and the processor; a probe instruction register for holding a probe mode microinstruction received in the external signal; a probe data register for holding data; an execution unit for executing microinstructions; and a microinstruction multiplexer coupled to the mode selection unit that selects a microinstruction to be provided to the execution unit, said microinstruction multiplexer selecting one of inputs including an input microinstruction decoded from a macroinstruction from the processor-driven path and an input probe mode microinstruction from the probe instruction register. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A microprocessor for selectively operating in a processor-driven mode wherein the microprocessor is responsive to a series of macroinstructions stored in a computer memory, and for operating in an external command mode wherein the microprocessor is responsive to externally supplied microinstructions, said microprocessor comprising:
-
means for selecting between the external command mode and the processor-driven mode; a decoder for receiving and decoding stored macroinstructions; an execution unit for executing microinstructions; means for supplying an externally supplied microinstruction to the execution unit directly, thereby bypassing the decoder when the external command mode is selected; and means for supplying one or more microinstructions from a decoded macroinstruction from the decoder to the execution unit when the processor-driven mode is selected; updating means for implicitly updating the processor state information before supplying said decoded microinstruction to the execution unit when said processor-driven mode is selected, said processor state information including an instruction pointer; and means for bypassing said updating means when the external command mode is selected. - View Dependent Claims (15, 16, 17)
-
-
18. An external command method of operating a microprocessor having a pipelined instruction flow through a processor-driven instruction path that implicitly updates state information, including the instruction pointer, before supplying a microinstruction to an execution unit, said external command method comprising the steps of:
-
providing an external instruction path coupling an external signal with the execution unit, said external instruction path bypassing the implicit updating of the processor-driven instruction path which would otherwise result from decoding a stored macroinstruction; supplying a microinstruction through the external instruction path for execution in the execution unit, bypassing the macroinstruction decoder in the processor-driven instruction path; and executing said microinstruction in the execution unit. - View Dependent Claims (19, 20, 21)
-
-
22. A method of operating a microprocessor including a decoder and an execution unit, comprising the steps of:
-
selecting a mode of executing microinstructions, said modes including a probe mode method of executing microinstructions supplied by the external path and a processor-driven mode method of executing microinstructions which resulted from the decoding of macroinstructions stored in memory; if the processor-driven mode has been selected, then executing microinstructions comprises the steps of fetching a macroinstruction from memory and providing it to a decoder, decoding the macroinstruction to provide one or more microinstructions that are applied, one after the other, to an execution unit, updating processor state information including an instruction pointer, and executing microinstructions supplied from the decoder; and if the probe mode has been selected, then executing microinstructions comprises the steps of providing an externally supplied microinstruction to the execution unit, thereby bypassing the decoder and not updating the instruction pointer and other processor state information, and executing the externally supplied microinstruction. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A computer circuit including a processor operating in one of a processor-driven mode in which the circuit executes a series of macroinstructions stored in a computer memory and a probe mode wherein the processor receives and processes an external signal, said circuit comprising:
-
an external control unit that provides said external signal including an externally supplied command and probe mode instruction; an access port coupled to said external control unit, including a circuit for receiving and sending the external signal; a circuit for sending information to the processor and receiving information from the processor; control logic for controlling the interface between the access port and the processor, and a probe instruction register for holding a probe mode microinstruction received in the external signal; an execution unit for executing microinstructions; a mode selection unit for selecting between the processor-driven mode and the probe mode; and a microinstruction multiplexer that selects a microinstruction to be provided to the execution unit, said microinstruction multiplexer having inputs including a microinstruction decoded from a macroinstruction from the processor-driven path and a probe mode microinstruction from the probe instruction register, said microinstruction multiplexer coupled to the mode selection unit to select one of said inputs. - View Dependent Claims (32, 33, 34, 35, 36)
-
Specification