GB2225881A - Co-processor intrude mechanism - Google Patents

Co-processor intrude mechanism Download PDF

Info

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
Application number
GB8828487A
Other versions
GB8828487D0 (en
Inventor
Ben Cheese
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
FLARE TECHNOLOGY Ltd
Original Assignee
FLARE TECHNOLOGY Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by FLARE TECHNOLOGY Ltd filed Critical FLARE TECHNOLOGY Ltd
Priority to GB8828487A priority Critical patent/GB2225881A/en
Publication of GB8828487D0 publication Critical patent/GB8828487D0/en
Publication of GB2225881A publication Critical patent/GB2225881A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent 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/3881Arrangements 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)

Claims
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.
GB8828487A 1988-12-06 1988-12-06 Co-processor intrude mechanism Withdrawn GB2225881A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)