GB2225881A - Co-processor intrude mechanism - Google Patents
Co-processor intrude mechanism Download PDFInfo
- Publication number
- GB2225881A GB2225881A GB8828487A GB8828487A GB2225881A GB 2225881 A GB2225881 A GB 2225881A GB 8828487 A GB8828487 A GB 8828487A GB 8828487 A GB8828487 A GB 8828487A GB 2225881 A GB2225881 A GB 2225881A
- Authority
- GB
- United Kingdom
- Prior art keywords
- processor
- intrude
- data
- cpu
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 230000007246 mechanism Effects 0.000 title claims description 8
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
- G06F9/3881—Arrangements for communication of instructions and data
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
A simple but fast co-processor within a multi processor computing system can transfer data to and from a host processor by using a dedicated instruction in conjunction with registers and a state machine. Thus information bandwidth can be defined according to application and loss of processing power due to communication can be minimised.
Description
CO-PROCESSOR INTRUDE MECHANISM
This invention relates to a means by which two processors within a computer system may pass information between each other.
Background
Within a computing device it is often desirable to install coprocessor(s) to perform tasks to which a general-purpose central processor (the CPU) is not well suited. With this arrangement it is necessary to organise the passage of data between the two processors (the co-processor and the CPU) such that the data transaction causes the minimum of disruption to the execution of programs by either processor. This is especially important where the speeds of these processors are significantly different such as in the case where the CPU is proprietary micro-processor and the co-processor is of a very simple architecture but very fast.
Essential technical features.
According to this invention there is a means built into the design of a co-processor by which the CPU may pass information to the co-processor under control of the program executing in the
CPU but at times dictated by the program executing in the coprocessor. With this means it is possible for the CPU to transfer data to and from the co-processor at times which are appropriate to both processors but without the loss in processing power usually associated with interrupt mechanisms or by bus sharing.
The co-processor has a special instruction (called INTRUDE) which makes the memory space within the co-processor available to the intrude registers.
The intrude registers are means by which the data is always available to the CPU. All that is required of the CPU is that when data is to be passed from the co-processor to the CPU that an extra (dummy) read is performed to inform the co-processor's intrude mechanism of the address within the co-processor from which the mechanism is to fetch the data. Data and address information are stored in the intrude registers. A state machine provides the means by which the transfer of data to and from the co-processor's memory is controlled automatically, needing no intervention from the CPU program.
Because the time at which the information is passed to the coprocessor is defined by INTRUDE instructions within the co processor 5 program it becomes possible for the programmer to decide at what rate he wishes information to be transferred between the two processors. This way the amount of information transfer (or bandwidth) may be decided according to the application to which the system is put.
Because the time at which the data arrives from the CPU is defined by INTRUDE instructions it becomes possible for the programmer to allow data within the co-processor to be updated in arbritrarily sized packets. This is useful where the co-processor is executing a program which implements a digital filter (or similar digital control system) where it is desirable that coefficients of a polynomial are all updated within the same program loop at a particular time in that loop. If this is achieved then the control system can remain stable whilst its characteristics are being changed by the CPU.
Examples: 1. Reading data from Co-processor.
1.1 When the CPU needs to read data from the co-processor it first transfers the address within the co-processor (from which it requires data) to a register called the 'INTRUDE ADDRESS
REGISTER'. This can either be done via an IO instruction or if the co-processor memory is also within the CPU's address space, by latching the CPU's address bus during a memory read operation from the co-processor memory.
1.2 When the co-processor encounters an intrude instruction in the instruction pipeline the address generator will take the intrude address register as the address for the following instruction cycle.
1.3 The following instruction cycle will then transfer data from the address defined by the intrude address register and place it in the 'INTRUDE DATA REGISTER'.
1.4 The CPU then will read the contents of the intrude data register.
Because the co-processor has a very simple architecture its instruction rate is very much greater than that of a proprietary micro-processor. If sufficient INTRUDE instructions are inserted into the co-processor program cycle then steps 1.2 and 1.3 will have been completed before the CPU is able to perform the final step 1.4 therefore neither processor is held up in the passage of data from one to the other.
2. Writing data from the CPU to the co-processor.
2.1 When the CPU needs to write data to the co-processor it first transfers the address within the co-processor (to which it will send data) to a register called the 'INTRUDE ADDRESS
REGISTER'. This can either be done via an IO instruction or by taking the address from when the address becomes valid during a memory write operation.
2.2 The co-processor will immediately cease any further writes to the INTRUDE DATA REGISTER. This has now become the property of the CPU.
2.3 When the co-processor encounters an intrude instruction in the instruction pipeline the address generator will take the intrude address register as the address for the following instruction cycle.
2.4 The following instruction cycle will then transfer data from the INTRUDE DATA REGISTER and place it in the co-processor data location described by the intrude address register.
2.5 Once the transfer has been completed the mechanism will continue to transfer data from the the co-processor data location to the intrude data register. This has the useful property that the CPU can verify the transfer or, alternatively, monitor the progress of the data as the co-processor program updates it.
Claims (2)
1 An Co-Processor Intrude mechanism where a co-processor in a multi-processor computing system has means for defining program time slots which are accessible to a central processor by a uniquely defined 'INTRUDE' instruction.
2 An Co-Processor Intrude mechanism as claimed in Claim 1 where means are provided for storing data and address information from the central processor until the next available time slot defined by the intrude instruction.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB8828487A GB2225881A (en) | 1988-12-06 | 1988-12-06 | Co-processor intrude mechanism |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB8828487A GB2225881A (en) | 1988-12-06 | 1988-12-06 | Co-processor intrude mechanism |
Publications (2)
Publication Number | Publication Date |
---|---|
GB8828487D0 GB8828487D0 (en) | 1989-01-05 |
GB2225881A true GB2225881A (en) | 1990-06-13 |
Family
ID=10648063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB8828487A Withdrawn GB2225881A (en) | 1988-12-06 | 1988-12-06 | Co-processor intrude mechanism |
Country Status (1)
Country | Link |
---|---|
GB (1) | GB2225881A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2371648A (en) * | 2000-11-14 | 2002-07-31 | Pacific Design Inc | System with general-purpose processor and special-purpose processor |
US6948049B2 (en) | 2001-06-25 | 2005-09-20 | Pacific Design Inc. | Data processing system and control method |
US6993674B2 (en) | 2001-12-27 | 2006-01-31 | Pacific Design, Inc. | System LSI architecture and method for controlling the clock of a data processing system through the use of instructions |
US7165166B2 (en) | 2001-01-31 | 2007-01-16 | Pacific Design, Inc. | Data processing system, data processing apparatus and control method for a data processing apparatus |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0174446A2 (en) * | 1984-08-03 | 1986-03-19 | International Business Machines Corporation | Distributed multiprocessing system |
GB2171823A (en) * | 1985-02-28 | 1986-09-03 | Ibm | Plural processor systems having shared resources |
WO1988008564A1 (en) * | 1987-04-23 | 1988-11-03 | Commodore-Amiga, Inc. | A method of communicating data between the cpu of a host computer system and the cpu of a co-processor computer system |
-
1988
- 1988-12-06 GB GB8828487A patent/GB2225881A/en not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0174446A2 (en) * | 1984-08-03 | 1986-03-19 | International Business Machines Corporation | Distributed multiprocessing system |
GB2171823A (en) * | 1985-02-28 | 1986-09-03 | Ibm | Plural processor systems having shared resources |
WO1988008564A1 (en) * | 1987-04-23 | 1988-11-03 | Commodore-Amiga, Inc. | A method of communicating data between the cpu of a host computer system and the cpu of a co-processor computer system |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2371648A (en) * | 2000-11-14 | 2002-07-31 | Pacific Design Inc | System with general-purpose processor and special-purpose processor |
GB2371648B (en) * | 2000-11-14 | 2005-03-23 | Pacific Design Inc | Data processing system and control method |
US7165166B2 (en) | 2001-01-31 | 2007-01-16 | Pacific Design, Inc. | Data processing system, data processing apparatus and control method for a data processing apparatus |
US6948049B2 (en) | 2001-06-25 | 2005-09-20 | Pacific Design Inc. | Data processing system and control method |
US6993674B2 (en) | 2001-12-27 | 2006-01-31 | Pacific Design, Inc. | System LSI architecture and method for controlling the clock of a data processing system through the use of instructions |
Also Published As
Publication number | Publication date |
---|---|
GB8828487D0 (en) | 1989-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4715013A (en) | Coprocessor instruction format | |
US6564179B1 (en) | DSP emulating a microcontroller | |
US4648034A (en) | Busy signal interface between master and slave processors in a computer system | |
US4729094A (en) | Method and apparatus for coordinating execution of an instruction by a coprocessor | |
US7793075B2 (en) | Active memory command engine and method | |
US4266270A (en) | Microprocessor having plural internal data buses | |
US4731736A (en) | Method and apparatus for coordinating execution of an instruction by a selected coprocessor | |
CN102150139A (en) | Data processing device and semiconductor integrated circuit device | |
US4750110A (en) | Method and apparatus for executing an instruction contingent upon a condition present in another data processor | |
JPH07117897B2 (en) | Prefetch circuit for data processing system | |
US5021991A (en) | Coprocessor instruction format | |
EP0525831B1 (en) | Method and apparatus for enabling a processor to coordinate with a coprocessor in the execution of an instruction which is in the intruction stream of the processor. | |
US4821231A (en) | Method and apparatus for selectively evaluating an effective address for a coprocessor | |
US4758950A (en) | Method and apparatus for selectively delaying an interrupt of a coprocessor | |
US4914578A (en) | Method and apparatus for interrupting a coprocessor | |
JPH0683582A (en) | Data arithmetic operation unit | |
US5581720A (en) | Apparatus and method for updating information in a microcode instruction | |
GB2225881A (en) | Co-processor intrude mechanism | |
JP3260083B2 (en) | Debug system and debugging method | |
JP2690406B2 (en) | Processor and data processing system | |
US6405233B1 (en) | Unaligned semaphore adder | |
US4994961A (en) | Coprocessor instruction format | |
US4758978A (en) | Method and apparatus for selectively evaluating an effective address for a coprocessor | |
EP0560393B1 (en) | Microprocessor and data processing system with register file | |
US5893928A (en) | Data movement apparatus and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WAP | Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1) |