Data processing circuits and interfaces
First Claim
1. A data processing apparatus including;
- a processor constructed to operate under control of a stored program comprising a sequence of program instructions selected from a predetermined instruction set;
an interface circuit which is operable to provide an interface for an external apparatus to signal a request for access to one of a plurality of storage locations within the processor, said one of a plurality of storage locations being specified independently of the stored program in a communication request supplied by the external apparatus to the interface circuit; and
control means operable to cause the processor to provide access between the specified storage location and the interface circuit in response to such a communication request only at predetermined points in the execution of the stored program, said control means being operable to fix periods of time for providing such access relative to the sequence of program instructions such that execution timing of the stored program is independent of whether or not such a communication request is supplied to said interface circuit by said external apparatus.
3 Assignments
0 Petitions
Accused Products
Abstract
An integrated circuit contains a microprocessor core, program memory and separate data storage, together with analogue and digital signal processing circuitry. The ALU is 16 bits wide, but a 32-bit shift unit is provided, using a pair of 16-bit registers. The processor has a fixed length instruction format, with an instruction set including multiply and divide operations which use the shift unit over several cycles. No interrupts are provided. External pins of the integrated circuit allow for single stepping and other debug operations, and a serial interface (SIF) which allows external communication of test data or working data as necessary. The serial interface has four wires (SERIN, SEROUT, SER-CLK, SERLOADB), allowing handshaking with a master apparatus, and allowing direct access to the memory space of the processor core, without specific program control. Within each processor cycle, the processor circuitry is divided into plural stages, and latches are interposed between the stages to minimize power consumption.
140 Citations
55 Claims
-
1. A data processing apparatus including;
-
a processor constructed to operate under control of a stored program comprising a sequence of program instructions selected from a predetermined instruction set;
an interface circuit which is operable to provide an interface for an external apparatus to signal a request for access to one of a plurality of storage locations within the processor, said one of a plurality of storage locations being specified independently of the stored program in a communication request supplied by the external apparatus to the interface circuit; and
control means operable to cause the processor to provide access between the specified storage location and the interface circuit in response to such a communication request only at predetermined points in the execution of the stored program, said control means being operable to fix periods of time for providing such access relative to the sequence of program instructions such that execution timing of the stored program is independent of whether or not such a communication request is supplied to said interface circuit by said external apparatus. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51)
an instruction decoding circuit for implementing control within the processor in accordance with the stored program;
an arithmetic unit having input and output data paths of width n bits;
a register of width greater than n bits connectable under control of the instruction decoding circuit to at least one of the input and output paths of the arithmetic unit; and
a shifting circuit separate from the arithmetic unit for performing shift operations of said greater width using said register.
-
-
28. An apparatus according to claim 27 wherein said instruction decoding circuit is responsive to a predetermined division instruction to control the arithmetic unit, the shifting circuit and the register so as to divide two values of width n bits, the quotient and remainder being obtained in the register.
-
29. An apparatus according to claim 28, wherein the division operation is performed over plural operating cycles of the arithmetic unit and the shifting circuit.
-
30. An apparatus according to claim 27, wherein the shifting circuit is operable to perform only single bit position shifting per operating cycle.
-
31. An apparatus according to claim 27, wherein dedicated unidirectional data paths are provided (i) between the register output and the input path of the arithmetic unit and (ii) between the arithmetic unit output and the register input.
-
32. An apparatus according to claim 27, comprising at least one external control line, and wherein at least one instruction of the instruction set is decoded differently by said decoding circuit depending on a signal present on the external control line.
-
33. An apparatus according to claim 27, wherein the processor has a basic instruction cycle sub-divide into plural internal clock states, and wherein, for at least one combinational logic circuit having plural input lines and functioning under control of each stored program, means are provided to sample and latch input values for the combinational logic circuit only at a defined state or states within the operational cycle.
-
34. An apparatus according to claim 33, wherein said combinational logic circuit comprises the arithmetic unit of the processor.
-
35. An apparatus according to claim 34, wherein said combinational logic circuit further comprises the instruction decoding circuit of the processor.
-
36. An apparatus according to claim 27, wherein said shifting circuit is physically connected between the output path of the arithmetic unit and data inputs of said register, with feedback also from data outputs of said register.
-
37. An apparatus according to claim 27, wherein said register of greater width comprises a pair of registers each of width n, independently connectable to an input or output path of said arithmetic unit.
-
38. An apparatus according to claim 27, wherein said instruction decoding circuit is responsive to a predetermined multiplication instruction to control the arithmetic unit, the shifting circuit and the register so as to multiply two values of width n bits, the result being obtained in the register.
-
39. An apparatus according to claim 38, wherein the multiplication operation is performed over plural operating cycles of the arithmetic unit and the shifting circuit.
-
40. An apparatus according to claim 1, wherein the execution of each program instruction takes a number of processor execution cycles, dependent on the type of instruction, and wherein a further instruction is not executable until a current instruction has been completely executed.
-
41. An apparatus according to claim 1, wherein said processor comprises:
-
an instruction decoding circuit for implementing control within the processor in accordance with the stored program;
an arithmetic unit having input and output data paths of width n bits;
a register space of width n bits connectable under control of the instruction decoding circuit to either the input or output paths of the arithmetic unit, wherein dedicated unidirectional data paths are provided (i) between the register space output(s) and the input path of the arithmetic unit and (ii) between the arithmetic unit output path and the input(s) of the register space.
-
-
42. An apparatus according to claim 41, wherein a further dedicated path is provided from a program counter register to one data register of the processor for storing a subroutine return address said data path including an incrementer.
-
43. An apparatus according to claim 1, further comprising means for implementing a state of low power consumption in which execution of said program by said processor is suspended, and means for ending said suspended state so that execution of said program continues from the next instruction in the stored sequence without execution of instructions stored outside said sequence.
-
44. An apparatus according to claim 43, wherein said suspended state is entered in response to a signal applied to the processor, but only at a time in the instruction sequence defined by inclusion of a specific instruction.
-
45. An apparatus according to claim 43, wherein said suspended state is entered in response to a sleep instruction which forms part of said stored program.
-
46. An apparatus according to claim 1, further comprising:
-
means for imposing a state of low power consumption in which execution of said stored program by said processor is suspended and in which a clock signal for said processor is isolated from the processor, while the clock signal continues running; and
monitoring means responsive to any of a plurality of external signals for ending said suspended state by reapplying said clock signal to the processor, wherein said monitoring means comprises;
plural individual monitoring circuits for detecting predetermined changes in respective ones of the external signals; and
a common trigger circuit responsive to outputs of the individual monitoring circuits for re-applying said clock signal to the processor, and wherein the individual monitoring circuits, but not the common trigger circuit, are isolated from the running clock signal during said suspended state.
-
-
47. An apparatus according to claim 46, wherein at least one of said individual monitoring circuits comprises:
-
means responsive to said clock signal prior to the suspended state for storing a value of the corresponding external signal; and
asynchronous circuit means for, during the suspended state, comparing the external signal with the stored value.
-
-
48. An apparatus according to claim 46, wherein said read or write operation is performed without interpretation by said processor.
-
49. An apparatus according to claim 1, wherein the apparatus has at least one external control line, and wherein at least one instruction of the instruction set is an instruction which will either halt the execution of the stored program or will effect no meaningful operation, depending on a signal applied to said external control line.
-
50. An apparatus according to claim 49, comprising means for signaling externally that execution has been halted.
-
51. An apparatus according to claim 49 comprising at least one further external control line and wherein said apparatus is responsive to signals applied to said control lines so as to:
- (I) start and stop the execution of the stored program;
(ii) to halt the execution of the stored program at a predetermined instruction;
or (iii) to single step through the sequence of program instructions of said stored program.
- (I) start and stop the execution of the stored program;
-
52. In combination, a data processing apparatus and an external apparatus, the data processing apparatus including:
-
a processor constructed to operate under control of a stored program comprising a sequence of program instructions selected from a predetermined instruction set;
an interface circuit which is operable to provide an interface for the external apparatus to signal a request for access to one of a plurality of storage locations within the processor, said one of a plurality of storage locations being specified independently of the stored program in a communication request supplied by the external apparatus to the interface circuit; and
control means comprising (i) means operable to provide fixed periods of time during an execution timing of the stored program by the processor during which said processor does not access said storage locations under control of said stored program, said fixed periods being provided at predetermined points in the execution of the stored program; and
(ii) means operable to cause the processor to provide access between the specified storage location and the interface circuit in response to such a communication request only during said fixed periods of time whereby the execution timing of the stored program by the processor is independent of whether or not such a communication request is supplied to said interface circuit by said external apparatus.- View Dependent Claims (53)
-
-
54. A data processing apparatus including:
-
input means for receiving input data;
a processor operable to process the input data in accordance with a stored program comprising a sequence of program instructions selected from a predetermined instruction set and using a plurality of storage locations within the processor;
an interface circuit for providing an interface for an external apparatus to signal a request for access to one of said plurality of storage locations within the processor, said one of a plurality of storage locations being specified independently of the stored program in a communication request supplied by the external apparatus to the interface circuit; and
control means comprising (i) means operable to provide fixed periods of time during an execution timing of the stored program by the processor during which said processor does not access said storage locations under control of said stored program, said fixed periods being provided at predetermined points in the execution of the stored program; and
(ii) means operable to cause the processor to provide access between the specified storage location and the interface circuit in response to such a communication request only during said fixed periods of time whereby the execution timing of the stored program by the processor is independent of whether or not such a communication request is supplied to said interface circuit by said external apparatus.
-
-
55. A data processing apparatus including:
-
a processor constructed to operate under control of a stored program comprising a sequence of program instructions selected from a predetermined instruction set;
an interface circuit which is operable to provide an interface for an external apparatus to signal a request for access to one of a plurality of storage locations within the processor, said one of a plurality of storage locations being specified independently of the stored program in a communication request supplied by the external apparatus to the interface circuit; and
a controller operable to provide fixed periods of time during an execution timing of the stored program by the processor during which said processor does not access said storage locations under control of said stored program, said fixed periods being provided at predetermined points in tie execution of the stored program, the controller also being operable to cause the processor to provide access between the specified storage location and the interface circuit in response to such a communication request only during said fixed periods of time whereby the execution timing of the stored program by the processor is independent of whether or not such a communication request is supplied to said interface circuit by said external apparatus.
-
Specification