BUS ASSIGNMENT SYSTEM FOR DSP PROCESSORS

Abstract: Three DSP processors selectively require access to a shared resource, such as an external memory, via a common communication bus. A control unit controls bus assignment to the processors to allow this access. The bus is assigned by default to the control unit rather than a processor.

Description: Bus assignment system for DSP processors The invention relates to an electronic circuit comprising processors, in particular digital signal processors, connected via communication busses to other circuit components. Known processors for digital signal processing (DSP) control their associated communication with other devices (e.g. memory, communication devices, etc.) via a bus which typically consists of several wires carrying an address, several wires carrying data, and further wires carrying control signals (e.g. read, write). Although in many systems the processor is in complete control of the bus, known DSP processors are provided with bus grant facilities whereby control of the bus may be granted to other devices on the bus so that the other device may perform some specific function, which normally takes the form of access to a system component which is also accessed by the processor (this system component thus being a shared resource). A typical example would be where a communications device accesses a memory which is also accessed by the processor. Such a mechanism is known as Direct Memory Access (DMA), and results in faster operation than if the processor were to have to pass data between the communications device and the memory. To avoid damage and/or erroneous operation when more than one device share a bus, each wire of the bus may be driven by only one device at a time. Other devices capable of driving a wire but forbidden to do so must "tristate" their outputs, i.e. make their outputs to the bus go to a high impedance state. The DSP processor acts as a "master", having the bus assigned to itself by default and only relinquishing the bus for use by another device when a request from that other device is received. The DSP processor accepts this request, when convenient to itself (usually on an instruction boundary), but without unnecessary delay, by tristating its own bus drivers and returning a grant signal to the requesting device, which may then legitimately drive the bus, typically for a relatively short time, before returning it (by removing the request signal). This known approach requires a DSP processor to be provided with control code to ensure synchronisation between the processor and other controlling devices. Continuous monitoring (polling) of the state of the other device is required, or it must be otherwise ensured that the processor and other device operate synchronously. This requirement usually results in an increase in complexity of the hardware or software. The present invention is defined in the claims, to which reference should now be made. The present invention preferably provides an electronic circuit comprising a plurality of processors, a common bus, a resource shared by the processors, and a control unit, the bus being assigned by default to the control unit, and the control unit controlling assignment of the bus to each processor. The processors are preferably DSP processors. Preferably, the control unit controls the timing and sequence of assignments of the bus to the processors. Each processor preferably includes internal program memory and data memory or registers. Such a processor can continue to execute instructions, without the bus being assigned to it, for as long as these instructions operate only on the internal memory or registers and do not require a bus assignment. Internal operations of this type make up a significant fraction of executable code, the bus only being required when data is to be transferred to or from another device. When an instruction is reached which requires the bus, execution halts until the bus is assigned to the processor. This mechanism provides efficient operation, and synchronisation between the processor code and the control unit without the use of synchroniation control signals. The preferred electronic circuit can be provided in a base station operative to receive time division multiple access (TDMA) signals from a number of subscriber units. Signals are preferably received over air by radio. Subscriber units are preferably at fixed locations. When receiving signals on more than one radio carrier frequency each processor preferably operates on a different radio carrier frequency signal. A preferred embodiment of the invention will now be described by way of example and with reference to the drawings in which: Figure 1 (a) is a block diagram illustrating bus assignment of a DSP processor in a circuit (prior art); Figure 1 (b) is a diagram illustrating bus request and bus grant signals over time in the circuit of Figure 1 (a) (prior art); Figure 1 (c) is a diagram indicating bus assignment over time in the circuit of Figure 1 (a) (prior art); Figure 2 (a) is a block diagram illustrating bus assignment in a circuit according to the present invention; Figure 2 (b) is a diagram illustrating bus assignment and bus grant signals over time in the circuit of Figure 2 (a); and Figure 2 (c) is a diagram illustrating bus assignment over time in the circuit of Figure 2 (a). As shown in Figure 1 (a), in a known DSP processor circuit, a DSP processor 2 is assigned to a data bus 4 most, say 99%, of the time. The bus 4 is assigned to the processor 2 by default. Occasionally, a peripheral device 6 requests access via bus 4, to shared resource 8. In response, the processor 2 grants peripheral device 6 access to shared resource 8 by assigning the bus 4 to peripheral device 6. Bus assignment is undertaken by a bus request/bus grant protocol. As shown in Figure 1 (b), the peripheral module 6 sends a bus request signal 10 to the processor 2. The processor 2 responds by sending a bus grant signal 12 to the peripheral device 6. The bus 4 is thereby assigned to the peripheral device 6 as shown in Figure 1 (c), allowing the peripheral device 6 to communicate with the shared resource 8. When such communication is complete and the bus is no longer required by the peripheral device 6, the peripheral device 6 ceases to send a bus grant signal 12. The bus 4 then returns to being assigned to the processor 2. Referring to Figure 2 (a), an embodiment of the present invention includes three DSP processors 14, 16, 18 which share a common data bus 20, via which access is made to a shared resource 22, specifically a proprietary high-performance dedicated processing circuit which is able to support the combined processing requirements of the three DSP processors 14, 16, 18. A control unit 23, specifically a DSP command interface, also shares the bus 20. The control unit 23 maintains bus request signals 24, 26, 28 by default, causing the processors 14, 16, 18 to maintain corresponding bus grant signals 30, 32, 34. The processors 14, 16, 18 each operate independently, performing internal calculations. Prior to any point in its program where a bus read or write is required, a program instruction causes such a need to be transmitted to the control unit 23 via separate control lines (not shown) which are not part of bus 20 and are not shared by DSP processors 14, 16, 18. The control unit 23 operates to assign the bus to each of the processors 14, 16, 18 in turn by selectively removing bus request signals 24, 26, 28 as shown in Figure 2(b), giving each processor a relatively small window of time in which to write to or read from the shared resource 22. The shared resource architecture and the program structure have been designed to cooperate in minimising these read and write window requirements. In this embodiment the control unit 23 may modify the bus assignments intelligently on the basis of individual DSP processor status so as to maximise the overall system performance. It will be seen in the preferred embodiment of the present invention, as shown in Figures 2 (c), the control unit 23 is the "master" to which the bus is assigned by default. In the preferred embodiment the control unit 23 ensures that only one of the DSP processors 14, 16, 18 can be assigned the bus 20 at any instant in time. In addition to the normal operation described above and illustrated in Figure 2, the control unit 23 also initially assigns bus 20 to the DSP processors 14, 16, 18 in turn for the purposes of code download, and thereafter seeks to minimise the effect on the bus 20 of a malfunction of any DSP processor 14, 16, 18 by monitoring the activity of bus 20 and forcibly removing and subsequently refusing to offer the bus 20 to any DSP processor 14, 16, 18 which has been observed to malfunction. The fact that the DSP processors 14, 16, 18 do not need to be aware of each other or perform any polling or synchronising functions result in simple and efficient software and hardware, both of which are instrumental in allowing the programs to execute at a speed which matches the shared resource 22.

Claims: CLAIMS 1. An electronic circuit comprising a plurality of processors, a common bus to a resource for sharing by the processors, and a control unit, the control unit controlling assignment of the bus to each processor, the bus being assigned by default to the control unit. 2. An electronic circuit according to claim 1 , in which the processors are digital signal processing DSP processors. 3. An electronic circuit according to claim 2 comprising three DSP processors. 4. An electronic circuit according to claim 1 , 2 or 3, in which the control unit controls the timing and sequence of assignments of the bus to the processors. 5. An electronic circuit according to any preceding claim, in which the control unit sends a bus request signal by default to each processor, causing each processor to send by default a corresponding bus grant signal to the control unit. 6. An electronic circuit according to any preceding claim, in which the control unit acts to assign the bus according to a predetermined rule in response to bus assignment requests from the processors. 7. An electronic circuit according to claim 6, in which the control unit assigns the bus according to a rule dependent on priorities assigned to processors. 8. An electronic circuit according to any preceding claim, in which the bus is assigned to no more than one processor at a time. 9. An electronic circuit according to any preceding claim, in which each processor includes internal memory so as to be operative to continue to execute instructions without the bus being assigned thereto. 10. An electronic circuit according to any preceding claim, in which each processor includes registers so as to be operative to continue to execute instructions without the bus being assigned thereto. 11. An electronic circuit according to claim 9 or claim 10, in which each processor is operative without bus assignment to continue to execute instructions which both use the internal memory or registers and do not require a bus assignment to transfer data to or from the shared resource. 12. An electronic circuit according to claim 11, in which when an instruction is reached which requires the bus, execution halts until the bus is assigned to the processor. 13. An electronic circuit according to any preceding claim, in which upon switch-on the control unit initially assigns the bus to each processor in turn to enable downloading of processing instructions then assigns the bus by default to the control unit. 14. An electronic circuit according to any preceding claim, in which the control unit does not assign the bus to a processor despite a bus request from that processor where a malfunction has been detected in respect of that processor. 15. A method of assigning a common bus to a resource shared by a plurality of processors in an electronic circuit, by providing a control unit, assigning the bus by default to the control unit, the control unit selectively responding to a bus request from each said processor to selectively assign the bus to the requesting processor(s).

Inventors: IRVING CLIVE RUSSELL, SPREADBURY DAVID JOHN, IRVING, CLIVE, RUSSELL, SPREADBURY, DAVID, JOHN
Applicants: IONICA INT LTD, IRVING CLIVE RUSSELL, SPREADBURY DAVID JOHN, IONICA INTERNATIONAL LIMITED, IRVING, CLIVE, RUSSELL, SPREADBURY, DAVID, JOHN
Application year: 1995
Main classification: G06F13
IPC codes: G06F13