KR100868677B1 - Data process device, data process system, method of connecting coprocessor, and coprocessor interface method - Google Patents

Data process device, data process system, method of connecting coprocessor, and coprocessor interface method Download PDF

Info

Publication number
KR100868677B1
KR100868677B1 KR1020070048385A KR20070048385A KR100868677B1 KR 100868677 B1 KR100868677 B1 KR 100868677B1 KR 1020070048385 A KR1020070048385 A KR 1020070048385A KR 20070048385 A KR20070048385 A KR 20070048385A KR 100868677 B1 KR100868677 B1 KR 100868677B1
Authority
KR
South Korea
Prior art keywords
coprocessor
coprocessors
main processor
data
signal
Prior art date
Application number
KR1020070048385A
Other languages
Korean (ko)
Inventor
박인철
배은주
권기석
전해수
Original Assignee
한국과학기술원
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 한국과학기술원 filed Critical 한국과학기술원
Priority to KR1020070048385A priority Critical patent/KR100868677B1/en
Application granted granted Critical
Publication of KR100868677B1 publication Critical patent/KR100868677B1/en

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • 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/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Advance Control (AREA)

Abstract

A data processing unit, a data processing system, a co-processor connecting method, and a co-processor interfacing method are provided to improve the process speed and supporting a connection of multiple co-processor using small number of signal lines. A main processor(411) transmits a first coprocessor interface signal combination, transmits a coprocessor command by receiving a second coprocessor interface signal, and continues the pipeline without waiting the result of coprocessor command. A plurality of coprocessors(412,413) are operated by the coprocessor command. A data processing unit includes a coprocessor bus(420) connecting main processors, and coprocessors for inputting the first coprocessor interface signal group, or the second coprocessor interface signal group to each coprocessors through the same signal line by the interface signals.

Description

데이터 처리 장치, 데이터 처리 시스템, 코프로세서 연결 방법, 및 코프로세서 인터페이스 방법{DATA PROCESS DEVICE, DATA PROCESS SYSTEM, METHOD OF CONNECTING COPROCESSOR, AND COPROCESSOR INTERFACE METHOD}Data processing unit, data processing system, coprocessor connection method, and coprocessor interface method {DATA PROCESS DEVICE, DATA PROCESS SYSTEM, METHOD OF CONNECTING COPROCESSOR, AND COPROCESSOR INTERFACE METHOD}

도 1은 본 발명의 일 실시예에 따른 데이터 처리 시스템을 나타내는 블록도이다.1 is a block diagram illustrating a data processing system according to an exemplary embodiment of the present invention.

도 2는 본 발명의 제 1 실시예에 따른 데이터 처리 장치를 나타내는 블록도이다.2 is a block diagram showing a data processing apparatus according to a first embodiment of the present invention.

도 3은 본 발명의 제 2 실시예에 따른 데이터 처리 장치를 나타내는 블록도이다.3 is a block diagram showing a data processing apparatus according to a second embodiment of the present invention.

도 4는 코프로세서 데이터 처리 명령이 전달되는 경우에 도 3의 데이터 처리 장치의 신호들을 나타내는 도면이다.4 is a diagram illustrating signals of the data processing apparatus of FIG. 3 when a coprocessor data processing command is transmitted.

도 5는 2개의 코프로세서 데이터 처리 명령이 전달되는 경우에 도 3의 데이터 처리 장치의 신호들을 나타내는 도면이다.FIG. 5 is a diagram illustrating signals of the data processing apparatus of FIG. 3 when two coprocessor data processing instructions are delivered.

도 6은 메인 프로세서가 코프로세서에 데이터를 기입하는 코프로세서 데이터 전달 명령이 전달되는 경우에 도 3의 데이터 처리 장치의 신호들을 나타내는 도면이다.FIG. 6 is a diagram illustrating signals of the data processing apparatus of FIG. 3 when a main processor receives a coprocessor data transfer command for writing data to the coprocessor.

도 7은 메인 프로세서가 코프로세서로부터 데이터를 독출하는 코프로세서 데 이터 전달 명령이 전달되는 경우에 도 3의 데이터 처리 장치의 신호들을 나타내는 도면이다.FIG. 7 is a diagram illustrating signals of the data processing apparatus of FIG. 3 when a main processor receives a coprocessor data transfer command for reading data from a coprocessor.

도 8은 메인 프로세서가 코프로세서로부터 데이터를 독출하는 코프로세서 데이터 전달 명령이 전달된 후 메인 프로세서가 코프로세서에 데이터를 기입하는 코프로세서 데이터 전달 명령이 전달되는 경우에 도 3의 데이터 처리 장치의 신호들을 나타내는 도면이다.8 is a diagram of the data processing apparatus of FIG. 3 when a coprocessor data transfer instruction in which the main processor writes data to the coprocessor after a coprocessor data transfer instruction in which the main processor reads data from the coprocessor is delivered. A diagram illustrating signals.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

111, 211, 411 : 메인 프로세서111, 211, 411 main processor

112, 113, 212, 213, 412, 413 : 코프로세서112, 113, 212, 213, 412, 413: Coprocessor

121, 220, 420 : 코프로세서 버스121, 220, 420: Coprocessor Bus

221, 222, 421, 422, 423, 424 : 먹스221, 222, 421, 422, 423, 424

본 발명은 프로세서간의 인터페이스 방식에 관한 것으로, 더욱 상세하게는 메인 프로세서와 코프로세서들 간에 파이프라인 비인터락킹 인터페이스(pipeline non-interlocking interface) 방식을 채용하는 데이터 처리 장치, 데이터 처리 시스템, 코프로세서 연결 방법, 및 코프로세서 인터페이스 방법에 관한 것이다.The present invention relates to an interface method between processors, and more particularly, to a data processing device, a data processing system, and a coprocessor connection employing a pipeline non-interlocking interface method between a main processor and a coprocessor. A method, and a coprocessor interface method.

시스템의 처리 속도를 향상시키기 위하여 메인 프로세서(main processor)의 기능을 보완하는 코프로세서(coprocessor)들이 채용된다. 메인 프로세서의 명 령(instruction)에 응답하여 동작하는 코프로세서는 통상적으로 특정한 기능만을 수행하는 전용 프로세서이다. 이러한 코프로세서의 예로 FPU(floating-point processing unit), 승산-누산기, 변조기/복조기, 디지털 신호 프로세서(digital signal processor), 비터비 연산기, 암호 프로세서(cryptographic processor), 이미지 프로세서, 벡터 프로세서 등이 있다.In order to improve the processing speed of the system, coprocessors that complement the functions of the main processor are employed. Coprocessors that operate in response to the instructions of the main processor are typically dedicated processors that perform only specific functions. Examples of such coprocessors are floating-point processing units (FPUs), multiplier-accumulators, modulators / demodulators, digital signal processors, Viterbi operators, cryptographic processors, image processors, vector processors, and the like. .

일반적으로, 메인 프로세서와 코프로세서 간 통신 방식에는 파이프라인(pipeline) 인터페이스 방식이 사용된다. 메인 프로세서와 코프로세서 간의 파이프라인 인터페이스 방식에는 메인 프로세서가 코프로세서에 명령을 전달한 후 코프로세서의 데이터 처리를 대기하는 파이프라인 인터락킹(pipeline interlocking) 인터페이스 방식과 메인 프로세서가 코프로세서에 명령을 전달한 후 코프로세서의 데이터 처리를 대기하지 않고 다음 명령을 처리하는 파이프라인 비인터락킹(pipeline non-interlocking) 인터페이스 방식이 있다.In general, a pipeline interface method is used for communication between the main processor and the coprocessor. The pipelined interface method between the main processor and the coprocessor includes a pipeline interlocking interface method in which the main processor sends instructions to the coprocessor, and then waits for data processing on the coprocessor, and after the main processor sends instructions to the coprocessor. There is a pipeline non-interlocking interface that processes the next command without waiting for the coprocessor to process the data.

파이프라인 인터락킹 인터페이스 방식을 사용하는 시스템에서, 메인 프로세서는 명령을 디코드(Decode)하여 상기 명령이 코프로세서에서 수행하는 명령일 경우 상기 명령을 코프로세서에 전달한다. 코프로세서는 상기 명령에 응답하여 동작한다. 이때, 메인 프로세서는 코프로세서에 명령을 전달한 후 코프로세서가 상기 명령의 처리를 완료할 때까지 대기 상태가 된다. 따라서, 코프로세서가 명령의 처리를 완료하는 데에 수십 사이클(cycle)이 경과하더라도 메인 프로세서는 다음 명령을 처리하지 못하고 대기 상태에 있으므로, 명령의 처리가 비효율적이고 시스템의 처리 속도가 느려질 수 있다.In a system using a pipeline interlocking interface scheme, the main processor decodes the instructions and passes the instructions to the coprocessor if the instructions are instructions executed by the coprocessor. The coprocessor operates in response to the command. At this time, the main processor transfers an instruction to the coprocessor and then waits until the coprocessor completes processing of the instruction. Thus, even if several tens of cycles have elapsed before the coprocessor completes processing of the instruction, the main processor is in a waiting state without processing the next instruction, so that the instruction processing is inefficient and the processing speed of the system may be slowed down.

파이프라인 비인터락킹 인터페이스 방식을 사용하는 시스템에서는, 메인 프로세서가 코프로세서로부터 데이터를 전달받는 상황 등의 예외적인 상황이 아닌 한 메인 프로세서는 코프로세서의 명령 처리 결과를 기다리지 않고 다음 명령을 처리한다. 따라서, 파이프라인 비인터락킹 인터페이스 방식을 사용하는 시스템에서는 명령 처리 속도가 향상될 수 있다.In a system using the pipelined non-interlocking interface method, the main processor processes the next instruction without waiting for the coprocessor's instruction processing result, except in an exceptional situation such as the main processor receiving data from the coprocessor. Accordingly, the instruction processing speed may be improved in a system using the pipelined non-interlocking interface scheme.

그러나, 종래의 파이프라인 비인터락킹 인터페이스 방식을 사용하는 시스템에서는 메인 프로세서와 코프로세서 사이에 모든 신호에 대하여 각각 다른 신호선을 사용한다. 이에 따라 종래의 메인 프로세서와 코프로세서 간 인터페이스 방식은 다수의 신호선을 사용하여 제조 비용이 증가하고, 복잡한 인터페이스를 제공하는 문제가 있다. 또한, 종래의 파이프라인 비인터락킹 인터페이스 방식을 사용하는 시스템은 코프로세서를 추가할 때 마다 다수의 신호선들을 더 사용해야 하므로 제한적인 개수의 코프로세서들 만을 사용할 수 있고, 통상적으로 1개의 코프로세서만을 사용할 수 있었다. 즉, 종래의 메인 프로세서와 코프로세서 간 인터페이스 방식은 다수의 코프로세서들과의 연결을 지원하지 못하는 문제가 있다.However, in the system using the conventional pipeline non-interlocking interface method, different signal lines are used for all signals between the main processor and the coprocessor. Accordingly, the conventional interface method between the main processor and the coprocessor increases the manufacturing cost by using a plurality of signal lines, and there is a problem of providing a complicated interface. In addition, the system using the conventional pipeline non-interlocking interface method can use only a limited number of coprocessors because a number of signal lines must be used every time a coprocessor is added, and typically only one coprocessor is used. Could. That is, the conventional interface method between the main processor and the coprocessor does not support a connection with a plurality of coprocessors.

따라서, 시스템의 데이터 처리 속도가 향상되고, 적은 수의 신호선들을 사용하며, 다수의 코프로세서들과의 연결을 지원하는 메인 프로세서와 코프로세서 간 인터페이스 방법이 요구된다.Accordingly, there is a need for an interface method between a main processor and a coprocessor that improves data processing speed of a system, uses a small number of signal lines, and supports a connection with a plurality of coprocessors.

본 발명의 일 목적은 적은 수의 신호선들을 사용하여 다수의 코프로세서들과의 연결을 지원하고 데이터 처리 속도가 향상된 데이터 처리 장치를 제공하는데 있 다.An object of the present invention is to provide a data processing apparatus supporting connection with a plurality of coprocessors using a small number of signal lines and improving data processing speed.

또한 본 발명의 일 목적은, 상기 데이터 처리 장치를 포함하는 데이터 처리 시스템을 제공하는데 있다.Another object of the present invention is to provide a data processing system including the data processing apparatus.

나아가 적은 수의 신호선들을 사용하여 다수의 코프로세서들과의 연결을 지원하고 데이터 처리 속도가 향상된 코프로세서 연결 방법 및 코프로세서 인터페이스 방법을 제공하는데 있다.Furthermore, the present invention provides a coprocessor connection method and a coprocessor interface method that support a connection with a plurality of coprocessors using a small number of signal lines and improve data processing speed.

상기 목적을 달성하기 위해, 본 발명의 일 실시예에 따른 데이터 처리 장치 는 메인 프로세서, 복수의 코프로세서들, 및 코프로세서 버스를 포함한다.In order to achieve the above object, a data processing apparatus according to an embodiment of the present invention includes a main processor, a plurality of coprocessors, and a coprocessor bus.

상기 메인 프로세서는 제 1 코프로세서 인터페이스 신호 집합을 송신하고 제 2 코프로세서 인터페이스 신호 집합을 수신하여 코프로세서 명령을 전달하고, 상기 코프로세서 명령을 전달한 후 상기 코프로세서 명령에 대한 처리결과를 대기하지 않고 파이프라인을 계속적으로 진행한다. 상기 코프로세서들은 상기 제 1 코프로세서 인터페이스 신호 집합을 수신하고 상기 제 2 코프로세서 인터페이스 신호 집합을 송신하여 전달받은 상기 코프로세서 명령에 응답하여 동작한다. 상기 코프로세서 버스는 상기 제 1 코프로세서 인터페이스 신호 집합 또는 상기 제 2 코프로세서 인터페이스 신호 집합에 포함된 각각의 코프로세서 인터페이스 신호 마다 동일한 신호선을 통하여 상기 제 1 코프로세서 인터페이스 신호 집합이 상기 코프로세서들 각각에 입력되고 상기 제 2 코프로세서 인터페이스 신호 집합이 상기 코프로세서들 각각으로부터 출력되도록 상기 메인 프로세서 및 상기 코프로세서들을 연결한다.The main processor transmits a first coprocessor interface signal set and receives a second coprocessor interface signal set to deliver a coprocessor command, and after passing the coprocessor command, does not wait for a processing result of the coprocessor command. Continue the pipeline. The coprocessors operate in response to the coprocessor command received by receiving the first coprocessor interface signal set and transmitting the second coprocessor interface signal set. The coprocessor bus may include the first coprocessor interface signal set and the coprocessor interface signals through the same signal line for each coprocessor interface signal included in the first coprocessor interface signal set or the second coprocessor interface signal set. Connect the main processor and the coprocessors to be input to the second coprocessor interface signal set and output from each of the coprocessors.

상기 메인 프로세서 및 상기 코프로세서들은 서로 독립적으로 파이프라인을 진행할 수 있다.The main processor and the coprocessors can proceed pipeline independently of each other.

상기 코프로세서 명령은, 상기 코프로세서들 중 선택된 하나의 코프로세서가 전달받아 상기 선택된 하나의 코프로세서에 의해 독립적으로 수행되는 명령인 코프로세서 데이터 처리 명령일 수 있다. 상기 제 1 코프로세서 인터페이스 신호 집합은, 상기 선택된 하나의 코프로세서에 상기 코프로세서 데이터 처리 명령을 수신하도록 요청하는 코프로세서 명령 요청 신호, 및 상기 선택된 하나의 코프로세서의 인덱스를 나타내는 코프로세서 명령 인덱스 신호를 포함할 수 있다. 상기 제 1 코프로세서 인터페이스 신호 집합은, 상기 메인 프로세서로부터 상기 선택된 하나의 코프로세서로 전달되는 상기 코프로세서 데이터 처리 명령의 내용을 나타내는 코프로세서 명령 데이터 신호를 더 포함할 수 있다. 상기 제 2 코프로세서 인터페이스 신호 집합은, 상기 선택된 하나의 코프로세서가 상기 코프로세서 데이터 처리 명령을 수신할 수 있는지 여부를 나타내는 코프로세서 명령 가능 신호를 포함할 수 있다.The coprocessor instruction may be a coprocessor data processing instruction that is a command that is received by a selected one of the coprocessors and is executed independently by the selected one of the coprocessors. The first coprocessor interface signal set is a coprocessor command request signal requesting the selected one coprocessor to receive the coprocessor data processing instruction, and a coprocessor command index signal representing an index of the selected one coprocessor. It may include. The first coprocessor interface signal set may further include a coprocessor command data signal indicating a content of the coprocessor data processing instruction transferred from the main processor to the selected one coprocessor. The second coprocessor interface signal set may include a coprocessor command enable signal indicating whether the selected one coprocessor can receive the coprocessor data processing instruction.

상기 코프로세서 명령은, 상기 코프로세서들 중 선택된 하나의 코프로세서가 전달받아 상기 메인 프로세서와 상기 선택된 하나의 코프로세서간에 코프로세서 데이터가 전송되는 명령인 코프로세서 데이터 전달 명령일 수 있다. 상기 제 1 코프로세서 인터페이스 신호 집합은, 상기 선택된 하나의 코프로세서에 상기 코프로세서 데이터 전달 명령을 수신하도록 요청하는 코프로세서 명령 요청 신호, 상기 코프로세서 데이터 전달 명령을 전달하기 위해 사용되고, 상기 선택된 하나의 코프로 세서의 인덱스를 나타내는 코프로세서 명령 인덱스 신호, 상기 코프로세서 데이터 전달 명령에 따라 상기 코프로세서 데이터가 전송되도록 요청하는 코프로세서 전달 요청 신호, 및 상기 코프로세서 데이터가 전송되기 위해 사용되고, 상기 선택된 하나의 코프로세서의 인덱스를 나타내는 코프로세서 전달 인덱스 신호를 포함할 수 있다. 상기 제 1 코프로세서 인터페이스 신호 집합은, 상기 메인 프로세서로부터 상기 선택된 하나의 코프로세서로 전달되는 상기 코프로세서 데이터 전달 명령의 내용을 나타내는 코프로세서 명령 데이터 신호, 상기 코프로세서 데이터 전달 명령이 상기 메인 프로세서가 상기 선택된 하나의 코프로세서에 상기 코프로세서 데이터를 기입하는 명령인지 또는 상기 선택된 하나의 코프로세서로부터 상기 코프로세서 데이터를 독출하는 명령인지를 알리는 코프로세서 전달 선택 신호, 및 상기 코프로세서 데이터 전달 명령에 따라 상기 메인 프로세서로부터 상기 선택된 하나의 코프로세서로 전송되는 상기 코프로세서 데이터를 나타내는 코프로세서 전달 기입 신호를 더 포함할 수 있다. 상기 제 2 코프로세서 인터페이스 신호 집합은, 상기 선택된 하나의 코프로세서가 상기 코프로세서 데이터 전달 명령을 수신할 수 있는지 여부를 나타내는 코프로세서 명령 가능 신호, 및 상기 선택된 하나의 코프로세서가 상기 코프로세서 데이터 전달 명령에 따라 상기 코프로세서 데이터를 전송하거나 전송 받을 수 있는지 여부를 나타내는 코프로세서 전달 가능 신호를 포함할 수 있다. 상기 제 2 코프로세서 인터페이스 신호 집합은, 상기 코프로세서 데이터 전달 명령에 따라 상기 선택된 하나의 코프로세서로부터 상기 메인 프로세서로 전송되는 상기 코프로세서 데이터를 나타내는 코프로세서 전달 독출 신호를 더 포함 할 수 있다.The coprocessor instruction may be a coprocessor data transfer instruction that is a command for receiving a coprocessor selected from among the coprocessors and transmitting coprocessor data between the main processor and the selected coprocessor. The first coprocessor interface signal set is used to convey a coprocessor command request signal, the coprocessor data transfer command, to request the selected one coprocessor to receive the coprocessor data transfer command, and the selected one A coprocessor instruction index signal indicative of an index of a coprocessor, a coprocessor transfer request signal requesting that the coprocessor data be transmitted in accordance with the coprocessor data transfer command, and the coprocessor data being used to be transmitted, the selected one It may include a coprocessor forward index signal representing the index of the coprocessor of. The first coprocessor interface signal set includes: a coprocessor instruction data signal representing a content of the coprocessor data transfer instruction transmitted from the main processor to the selected one of the coprocessors; A coprocessor delivery selection signal for indicating whether to write the coprocessor data to the selected one coprocessor or to read the coprocessor data from the selected one coprocessor, and the coprocessor data transfer command. The apparatus may further include a coprocessor transfer write signal representing the coprocessor data transmitted from the main processor to the selected coprocessor. The second set of coprocessor interface signals includes a coprocessor command enabled signal indicating whether the selected one coprocessor can receive the coprocessor data transfer command, and the selected one coprocessor transfers the coprocessor data. It may include a coprocessor deliverable signal indicating whether the coprocessor data can be transmitted or received according to the command. The second coprocessor interface signal set may further include a coprocessor transfer read signal representing the coprocessor data transmitted from the selected one coprocessor to the main processor according to the coprocessor data transfer instruction.

상기 제 2 코프로세서 인터페이스 신호 집합은, 상기 코프로세서들에서 예외 상황이 발생한 경우에 상기 메인 프로세서가 인터럽트 서비스 루틴(interrupt service routine)을 실행하여 상기 예외 상황에 따른 처리를 하도록 상기 코프로세서들에서 상기 예외 상황이 발생한 것을 알리는 코프로세서 예외 발생 신호를 포함할 수 있다.The second coprocessor interface signal set is configured in the coprocessors to cause the main processor to execute an interrupt service routine when the coprocessor encounters an exception. It may include a coprocessor exception occurrence signal indicating that an exception has occurred.

상기 데이터 처리 장치는 상기 메인 프로세서가 상기 제 2 코프로세서 인터페이스 신호 집합을 상기 코프로세서들 중 선택된 하나의 코프로세서로부터 수신하도록 상기 제 2 코프로세서 인터페이스 신호 집합에 포함되는 인터페이스 신호들을 선택하는 먹스(mux)들을 더 포함할 수 있다. 상기 데이터 처리 장치는 상기 메인 프로세서로부터 상기 선택된 하나의 코프로세서의 인덱스를 포함하는 신호를 수신하여 상기 먹스들의 선택 신호로 입력되는 신호를 출력하는 디코더(decoder)를 더 포함할 수 있다.The data processing apparatus mux selecting interface signals included in the second coprocessor interface signal set such that the main processor receives the second coprocessor interface signal set from a selected one of the coprocessors. ) May further include. The data processing apparatus may further include a decoder configured to receive a signal including an index of the selected one coprocessor from the main processor and output a signal input as a selection signal of the mux.

본 발명의 일 실시예에 따른 데이터 처리 시스템은 메인 프로세서, 복수의 코프로세서들, 코프로세서 버스, 외부 버스, 캐시 메모리, 및 내부 버스를 포함한다.A data processing system according to an embodiment of the present invention includes a main processor, a plurality of coprocessors, a coprocessor bus, an external bus, a cache memory, and an internal bus.

상기 메인 프로세서는 코프로세서 인터페이스 신호들을 통하여 코프로세서 명령을 전달하고, 상기 코프로세서 명령을 전달한 후 상기 코프로세서 명령에 대한 처리결과를 대기하지 않고 파이프라인을 계속적으로 진행한다. 상기 코프로세서들은 상기 코프로세서 인터페이스 신호들을 통하여 전달받은 상기 코프로세서 명령에 응답하여 동작한다. 상기 코프로세서 버스는 상기 코프로세서 인터페이스 신호들 각각 마다 동일한 신호선을 통하여 상기 코프로세서 인터페이스 신호들이 상기 코프로세서들 각각으로부터 출력되거나 상기 코프로세서들 각각에 입력되도록 상기 메인 프로세서 및 상기 코프로세서들을 연결한다. 상기 외부 버스는 외부 메모리와 연결되어 있다. 상기 캐시 메모리는 상기 외부 버스와 연결되어 있고, 상기 외부 메모리로부터 데이터 및 명령을 입력받아 저장한다. 상기 내부 버스는 상기 캐시 메모리와 상기 메인 프로세서를 연결한다.The main processor delivers coprocessor instructions through coprocessor interface signals and continues the pipeline without waiting for processing results for the coprocessor instructions after delivering the coprocessor instructions. The coprocessors operate in response to the coprocessor command received via the coprocessor interface signals. The coprocessor bus connects the main processor and the coprocessors such that the coprocessor interface signals are output from or input to each of the coprocessors through the same signal line for each of the coprocessor interface signals. The external bus is connected to an external memory. The cache memory is connected to the external bus and stores data and commands from the external memory. The internal bus connects the cache memory with the main processor.

상기 메인 프로세서 및 상기 코프로세서들은 서로 독립적으로 파이프라인을 진행할 수 있다.The main processor and the coprocessors can proceed pipeline independently of each other.

상기 캐시 메모리는, 상기 외부 메모리로부터 상기 데이터를 입력받아 저장하는 데이터 캐시 메모리, 및 상기 외부 메모리로부터 상기 명령을 입력받아 저장하는 명령 캐시 메모리를 포함할 수 있다. 상기 내부 버스는, 상기 데이터 캐시 메모리와 상기 메인 프로세서를 연결하는 내부 데이터 버스, 및 상기 명령 캐시 메모리와 상기 메인 프로세서를 연결하는 내부 명령 버스를 포함할 수 있다.The cache memory may include a data cache memory for receiving and storing the data from the external memory, and a command cache memory for receiving and storing the command from the external memory. The internal bus may include an internal data bus connecting the data cache memory and the main processor, and an internal command bus connecting the command cache memory and the main processor.

상기 데이터 처리 시스템은 상기 외부 버스와 상기 캐시 메모리 사이에 상기 외부 버스를 통하여 상기 외부 메모리로부터 상기 캐시 메모리에 입력되는 상기 데이터 및 상기 명령을 상기 캐시 메모리가 인식할 수 있는 캐시 데이터 및 캐시 명령으로 변환하는 버스 인터페이스 장치를 더 포함할 수 있다.The data processing system converts the data and instructions input from the external memory into the cache memory through the external bus between the external bus and the cache memory into cache data and cache commands that the cache memory can recognize. The apparatus may further include a bus interface device.

본 발명의 일 실시예에 따른 코프로세서 연결 방법에서, 코프로세서들에 코프로세서 명령을 전달한 후 상기 코프로세서 명령에 대한 처리결과를 대기하지 않 고 파이프라인을 계속적으로 진행하는 메인 프로세서로부터 상기 코프로세서들로 전송되는 제 1 코프로세서 인터페이스 신호 집합에 포함된 각각의 코프로세서 인터페이스 신호 마다 동일한 신호선을 통하여 상기 제 1 코프로세서 인터페이스 신호 집합이 상기 코프로세서들 각각에 입력되도록 상기 메인 프로세서와 상기 코프로세서들을 연결한다. 상기 코프로세서들로부터 상기 메인 프로세서로 전송되는 제 2 코프로세서 인터페이스 신호 집합에 포함된 각각의 코프로세서 인터페이스 신호 마다 동일한 신호선을 통하여 상기 제 2 코프로세서 인터페이스 신호 집합이 상기 코프로세서들 각각으로부터 출력되도록 상기 메인 프로세서와 상기 코프로세서들을 연결한다. 상기 메인 프로세서 및 상기 코프로세서들은 서로 독립적으로 파이프라인을 진행할 수 있다.In the coprocessor connection method according to an embodiment of the present invention, the coprocessor from the main processor to continue the pipeline without waiting for the processing result of the coprocessor instruction after passing the coprocessor instruction to the coprocessors The main processor and the coprocessors so that the first coprocessor interface signal set is input to each of the coprocessors through the same signal line for each coprocessor interface signal included in the first coprocessor interface signal set transmitted to the coprocessor. Connect. The second coprocessor interface signal set is output from each of the coprocessors through the same signal line for each coprocessor interface signal included in the second coprocessor interface signal set transmitted from the coprocessors to the main processor. Connect the main processor and the coprocessors. The main processor and the coprocessors can proceed pipeline independently of each other.

본 발명의 일 실시예에 따른 코프로세서 인터페이스 방법에서, 코프로세서 인터페이스 신호들 각각이 동일한 신호선을 통하여 메인 프로세서 및 코프로세서들 간에 전송되어 메인 프로세서로부터 코프로세서들에 코프로세서 명령을 전달한다. 상기 메인 프로세서가 상기 코프로세서 명령을 전달한 후 상기 코프로세서 명령에 대한 처리결과를 대기하지 않고 파이프라인을 계속적으로 진행한다. 상기 메인 프로세서 및 상기 코프로세서들은 서로 독립적으로 파이프라인을 진행할 수 있다.In the coprocessor interface method according to an embodiment of the present invention, each of the coprocessor interface signals is transmitted between the main processor and the coprocessors through the same signal line to transfer coprocessor instructions from the main processor to the coprocessors. After the main processor delivers the coprocessor instruction, the main processor continues the pipeline without waiting for the processing result of the coprocessor instruction. The main processor and the coprocessors can proceed pipeline independently of each other.

따라서 본 발명의 일 실시예에 따른 데이터 처리 장치는 데이터 처리 속도가 향상되고, 적은 수의 신호선들을 사용하여 다수의 코프로세서들과의 연결을 지원할 수 있다.Accordingly, the data processing apparatus according to an embodiment of the present invention may improve data processing speed and support connection with a plurality of coprocessors using a small number of signal lines.

본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기 능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.With respect to the embodiments of the present invention disclosed herein, specific structural to functional descriptions are merely illustrated for the purpose of describing embodiments of the present invention, embodiments of the present invention may be implemented in various forms It should not be construed as limited to the embodiments set forth herein.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. As the inventive concept allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the text. However, this is not intended to limit the present invention to the specific disclosed form, it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that other components may be present in between. Should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that there is no other component in between. Other expressions describing the relationship between components, such as "between" and "immediately between," or "neighboring to," and "directly neighboring to" should be interpreted as well.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "having" are intended to indicate that there is a feature, number, step, action, component, part, or combination thereof that is described, and that one or more other features or numbers are present. It should be understood that it does not exclude in advance the possibility of the presence or addition of steps, actions, components, parts or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, with reference to the accompanying drawings, it will be described in detail a preferred embodiment of the present invention. The same reference numerals are used for the same elements in the drawings, and duplicate descriptions of the same elements are omitted.

도 1은 본 발명의 일 실시예에 따른 데이터 처리 시스템을 나타내는 블록도이다.1 is a block diagram illustrating a data processing system according to an exemplary embodiment of the present invention.

도 1을 참조하면, 데이터 처리 시스템은 메인 프로세서(111), 코프로세서 들(112, 113), 코프로세서 버스(121), 내부 데이터 버스(122), 내부 명령 버스(123), 외부 버스(124), 데이터 캐시 메모리(131), 명령 캐시 메모리(132), 및 버스 인터페이스 장치(133)를 포함한다.Referring to FIG. 1, a data processing system includes a main processor 111, coprocessors 112 and 113, a coprocessor bus 121, an internal data bus 122, an internal command bus 123, and an external bus 124. ), Data cache memory 131, instruction cache memory 132, and bus interface device 133.

실시예에 따라, 버스 인터페이스 장치(133)는 생략될 수 있고, 데이터 캐시 메모리(131) 및 명령 캐시 메모리(132)는 하나의 캐시 메모리로 구현될 수 있으며, 또한 코프로세서 버스(121) 및 내부 데이터 버스(122)는 하나의 내부 버스로 구현될 수 있다.According to an embodiment, the bus interface device 133 may be omitted, the data cache memory 131 and the instruction cache memory 132 may be implemented as one cache memory, and also the coprocessor bus 121 and the internal The data bus 122 may be implemented as one internal bus.

외부 버스(124)는 외부 메모리와 같은 외부 장치와 연결된다. 상기 외부 메모리로부터 외부 버스(124)를 통하여 데이터 캐시 메모리(131)로 데이터(data)가 입력되고 명령 캐시 메모리(132)로 명령(instruction)이 입력된다. 실시예에 따라, 외부 버스(124)와 캐시 메모리들(131, 132) 사이에 외부 버스(124)의 명령 및 데이터를 캐시 메모리들(131, 132)의 명령 및 데이터로 변환하거나 캐시 메모리들(131, 132)의 명령 및 데이터를 외부 버스(124)의 명령 및 데이터로 변환하는 버스 인터페이스 장치(133)가 더 포함될 수 있다. 데이터 캐시 메모리(131)는 상기 입력된 데이터를 저장하고, 명령 캐시 메모리(132)는 상기 입력된 명령을 저장한다. 메인 프로세서(111)는 파이프라인을 진행하는 과정에서 필요에 따라 내부 데이터 버스(122)를 통하여 데이터 캐시 메모리(131)로부터 상기 입력된 데이터를 페치(fetch)하고, 내부 명령 버스(123)를 통하여 명령 캐시 메모리(131)로부터 상기 입력된 명령을 페치한다. 메인 프로세서(111)는 상기 페치된 데이터 또는 상기 페치된 명령을 디코드(decode)하여 상기 페치된 데이터 또는 상기 페치된 명령을 분 석하여 실행(execute)한다. 여기서, 상기 디코드된 데이터 또는 상기 디코드된 명령이 코프로세서들(112, 113)에 대한 데이터 또는 명령인 경우 메인 프로세서(111)는 코프로세서 데이터 전달 명령을 통하여 상기 디코드된 데이터를 코프로세서들(112, 113)에 전송하거나 코프로세서 데이터 처리 명령을 통하여 상기 디코드된 명령을 코프로세서들(112, 113)에 전송한다. 상기 코프로세서 데이터 전달 명령, 상기 코프로세서 데이터 처리 명령 등의 코프로세서 명령은 코프로세서 인테페이스 신호들을 통하여 전송되고, 상기 코프로세서 인터페이스 신호들 각각 마다 동일한 신호선을 통하여 상기 코프로세서 인터페이스 신호들이 코프로세서들(112, 113) 각각으로부터 출력되거나 코프로세서들(112, 113) 각각에 입력된다. 상기 코프로세서 인터페이스 신호들이 전송되는 신호선들은 메인 프로세서(111) 및 코프로세서들(112, 113)을 연결하는 코프로세서 버스(121)에 포함된다. 메인 프로세서(111)는 상기 코프로세서 명령을 전달한 후 상기 코프로세서 명령에 대한 처리결과를 대기하지 않고 파이프라인을 계속적으로 진행한다. 즉, 메인 프로세서(111) 및 코프로세서들(112, 113)은 서로 독립적으로 파이프라인을 진행한다. 즉, 메인 프로세서(111) 및 코프로세서들(112, 113)은 각각 파이프라인 방식의 데이터 처리를 수행함에 있어서 서로의 데이터 처리 완료 여부에 무관하게 데이터 처리를 수행한다. 따라서, 파이프라인 비인터락킹 인터페이스(pipeline non-interlocking interface) 방식을 채용한 데이터 처리 시스템은 데이터를 효율적으로 처리할 수 있고, 코프로세서 인터페이스 신호들 각각 마다 동일한 신호선을 사용하는 코프로세서 버스를 채용하여 다수의 코프로세서들과의 연결을 지원할 수 있고 적은 수의 신호선들을 사용하여 구현될 수 있다.The external bus 124 is connected with an external device such as an external memory. Data is input from the external memory to the data cache memory 131 through the external bus 124 and an instruction is input to the command cache memory 132. According to an embodiment, the instruction and data of the external bus 124 between the external bus 124 and the cache memories 131 and 132 may be converted into the instructions and data of the cache memories 131 and 132 or the cache memories ( A bus interface device 133 may be further included to convert the commands and data of the 131 and 132 into the commands and data of the external bus 124. The data cache memory 131 stores the input data, and the instruction cache memory 132 stores the input command. The main processor 111 fetches the input data from the data cache memory 131 through the internal data bus 122 as needed in the course of the pipeline, and through the internal command bus 123. The input command is fetched from the instruction cache memory 131. The main processor 111 decodes the fetched data or the fetched instruction to analyze and execute the fetched data or the fetched instruction. Here, when the decoded data or the decoded instruction is data or instruction for the coprocessors 112 and 113, the main processor 111 may convert the decoded data through the coprocessor data transfer instruction. 113 to the coprocessors 112 and 113, or via a coprocessor data processing instruction. Coprocessor instructions, such as the coprocessor data transfer instruction and the coprocessor data processing instruction, are transmitted through coprocessor interface signals, and the coprocessor interface signals are transmitted through coprocessor interface signals through the same signal line for each of the coprocessor interface signals. 112, 113, or input to each of the coprocessors 112, 113. Signal lines through which the coprocessor interface signals are transmitted are included in the coprocessor bus 121 connecting the main processor 111 and the coprocessors 112 and 113. After the main processor 111 transmits the coprocessor command, the main processor 111 continues the pipeline without waiting for the processing result of the coprocessor command. That is, the main processor 111 and the coprocessors 112 and 113 proceed with the pipeline independently of each other. That is, the main processor 111 and the coprocessors 112 and 113 respectively perform data processing regardless of whether or not each other's data processing is completed in performing pipeline data processing. Therefore, a data processing system employing a pipeline non-interlocking interface method can efficiently process data and employ a coprocessor bus that uses the same signal line for each of the coprocessor interface signals. It can support connections with multiple coprocessors and can be implemented using fewer signal lines.

도 2는 본 발명의 제 1 실시예에 따른 데이터 처리 장치를 나타내는 블록도이다.2 is a block diagram showing a data processing apparatus according to a first embodiment of the present invention.

도 2를 참조하면, 데이터 처리 장치는 메인 프로세서(211), 코프로세서들(212, 213), 및 코프로세서 버스(220)를 포함한다.2, a data processing apparatus includes a main processor 211, coprocessors 212 and 213, and a coprocessor bus 220.

메인 프로세서(211)는 코프로세서들(212, 213)에 제 1 코프로세서 인터페이스 신호 집합을 송신하고 코프로세서들(212, 213)로부터 제 2 코프로세서 인터페이스 신호 집합을 수신하여 코프로세서 명령을 전달한다. 실시예에 따라 상기 코프로세서 명령은 메인 프로세서(211) 및 코프로세서들(212, 213)이 동일한 클록 신호를 수신하여 전달될 수 있다. 상기 코프로세서 명령을 전달한 메인 프로세서(211)는 상기 코프로세서 명령에 대한 처리결과를 대기하지 않고 파이프라인을 계속적으로 진행한다. 즉, 메인 프로세서(211) 및 상기 코프로세서들(212, 213)은 서로 독립적으로 파이프라인을 진행한다. 따라서, 본 발명의 일 실시예에 따른 데이터 처리 장치는 데이터를 효율적으로 처리한다.The main processor 211 transmits a first coprocessor interface signal set to the coprocessors 212 and 213 and receives a second coprocessor interface signal set from the coprocessors 212 and 213 to deliver coprocessor instructions. . According to an embodiment, the coprocessor command may be transmitted by the main processor 211 and the coprocessors 212 and 213 receiving the same clock signal. The main processor 211 which has delivered the coprocessor instruction continues the pipeline without waiting for the processing result of the coprocessor instruction. That is, the main processor 211 and the coprocessors 212 and 213 go through pipelines independently of each other. Therefore, the data processing apparatus according to the embodiment of the present invention processes the data efficiently.

도 2에서, 상기 코프로세서 명령은 코프로세서들(212, 213) 중 선택된 하나의 코프로세서가 전달받아 상기 선택된 하나의 코프로세서에 의해 독립적으로 수행되는 명령인 코프로세서 데이터 처리 명령이다. 상기 제 1 코프로세서 인터페이스 신호 집합은 상기 선택된 하나의 코프로세서에 상기 코프로세서 데이터 처리 명령을 수신하도록 요청하는 코프로세서 명령 요청 신호(CPI_REQ), 상기 선택된 하나의 코프로세서의 인덱스를 나타내는 코프로세서 명령 인덱스 신호(CPI_NUM), 상기 코 프로세서 데이터 처리 명령의 내용을 나타내는 코프로세서 명령 데이터 신호(CPI_INSTR)를 포함한다. 코프로세서 명령 인덱스 신호(CPI_NUM)는 상기 데이터 처리 장치에 포함된 코프로세서들의 개수에 따라 비트수가 달라질 수 있다. 예를 들어, 상기 데이터 처리 장치에 2개의 코프로세서들이 포함되면 상기 코프로세서 명령 인덱스 신호(CPI_NUM)는 1 비트의 신호일 수 있고, 16개의 코프로세서들이 포함되면 4 비트의 신호일 수 있다. 코프로세서 명령 데이터 신호(CPI_INSTR) 또한 실시예에 따라 비트수가 달라질 수 있다. 예를 들어, 메인 프로세서(211) 및 코프로세서들(212, 213) 간에 전달되는 코프로세서 데이터 처리 명령을 4 바이트로 정의하였으면 코프로세서 명령 데이터 신호(CPI_INSTR)는 하나의 클록 동안 상기 코프로세서 데이터 처리 명령이 전달되도록 32 비트의 신호로 구현될 수 있다.In FIG. 2, the coprocessor instruction is a coprocessor data processing instruction that is a command that is received by a selected coprocessor of the coprocessors 212, 213 and executed independently by the selected coprocessor. The first coprocessor interface signal set is a coprocessor command request signal (CPI_REQ) requesting the selected one coprocessor to receive the coprocessor data processing command, a coprocessor command index indicating an index of the selected one coprocessor. Signal CPI_NUM, and a coprocessor command data signal CPI_INSTR indicating the contents of the coprocessor data processing instruction. The number of bits of the coprocessor command index signal CPI_NUM may vary depending on the number of coprocessors included in the data processing device. For example, when two coprocessors are included in the data processing apparatus, the coprocessor command index signal CPI_NUM may be a 1-bit signal, and when 16 coprocessors are included, a 4-bit signal may be included. The number of bits of the coprocessor command data signal CPI_INSTR may also vary according to embodiments. For example, if the coprocessor data processing instruction transmitted between the main processor 211 and the coprocessors 212 and 213 is defined as 4 bytes, the coprocessor instruction data signal CPI_INSTR is processed for the coprocessor data during one clock. It can be implemented as a 32-bit signal so that the command is passed.

상기 제 2 코프로세서 인터페이스 신호 집합은 상기 선택된 하나의 코프로세서가 상기 코프로세서 데이터 처리 명령을 수신할 수 있는지 여부를 나타내는 코프로세서 명령 가능 신호(CPI_READY)를 포함한다. 코프로세서들(212, 213) 각각에서 출력되는 코프로세서 명령 가능 신호(CPI_READY)는 코프로세서 명령 인덱스 신호(CPI_NUM)를 선택 신호로서 수신하는 제 1 먹스(221)에 의하여 코프로세서 명령 인덱스 신호(CPI_NUM)에 포함된 인덱스가 지시하는 코프로세서에서 출력되는 코프로세서 명령 가능 신호(CPI_READY)로 선택된다. 이에 따라, 메인 프로세서(211)는 코프로세서 명령 인덱스 신호(CPI_NUM)에 따라 선택된 코프로세서에서 송신하는 코프로세서 명령 가능 신호(CPI_READY)를 수신한다. 실시예에 따라, 상기 제 2 코프로세서 인터페이스 신호 집합은 코프로세서들(212, 213)에서 예외 상황이 발생하였 음을 알리는 코프로세서 예외 발생 신호(CP_EXC)를 더 포함할 수 있다. 메인 프로세서(211)는 코프로세서 예외 발생 신호(CP_EXC)를 수신하여 상기 예외 상황에 따른 처리를 수행할 수 있다.The second coprocessor interface signal set includes a coprocessor command enable signal (CPI_READY) indicating whether the selected one coprocessor can receive the coprocessor data processing instruction. The coprocessor command enable signal CPI_READY output from each of the coprocessors 212 and 213 is a coprocessor command index signal CPI_NUM by the first mux 221 which receives the coprocessor command index signal CPI_NUM as a select signal. ) Is selected by the coprocessor command enable signal (CPI_READY) output from the coprocessor indicated by the index. Accordingly, the main processor 211 receives the coprocessor command enable signal CPI_READY transmitted by the selected coprocessor according to the coprocessor command index signal CPI_NUM. According to an embodiment, the second coprocessor interface signal set may further include a coprocessor exception occurrence signal CP_EXC indicating that an exception condition has occurred in the coprocessors 212 and 213. The main processor 211 may receive a coprocessor exception occurrence signal CP_EXC and perform processing according to the exception situation.

코프로세서 버스(220)는 코프로세서 명령 요청 신호(CPI_REQ), 코프로세서 명령 인덱스 신호(CPI_NUM), 코프로세서 명령 데이터 신호(CPI_INSTR), 코프로세서 명령 가능 신호(CPI_READY), 및 코프로세서 예외 발생 신호(CP_EXC)를 전송하는 신호선들, 제 1 먹스(221), 및 제 2 먹스(222)를 포함한다. 여기서, 코프로세서 명령 요청 신호(CPI_REQ), 코프로세서 명령 인덱스 신호(CPI_NUM), 코프로세서 명령 데이터 신호(CPI_INSTR), 코프로세서 명령 가능 신호(CPI_READY), 및 코프로세서 예외 발생 신호(CP_EXC)는 각각의 신호 마다 동일한 신호선에 의하여 전송된다. 따라서, 상기 데이터 처리 장치에 코프로세서가 추가되더라도 신호선을 추가적으로 사용하지 않고, 적은 수의 신호선들을 사용하여 데이터 처리 장치가 구현될 수 있다.Coprocessor bus 220 includes coprocessor command request signal (CPI_REQ), coprocessor command index signal (CPI_NUM), coprocessor command data signal (CPI_INSTR), coprocessor command enable signal (CPI_READY), and coprocessor exception occurrence signal ( Signal lines transmitting the CP_EXC, a first mux 221, and a second mux 222. Here, the coprocessor command request signal (CPI_REQ), the coprocessor command index signal (CPI_NUM), the coprocessor command data signal (CPI_INSTR), the coprocessor command enable signal (CPI_READY), and the coprocessor exception occurrence signal (CP_EXC) are each Each signal is transmitted by the same signal line. Therefore, even if a coprocessor is added to the data processing apparatus, the data processing apparatus may be implemented using a small number of signal lines without additionally using signal lines.

상기 데이터 처리 장치의 동작을 살펴보면, 메인 프로세서(211)는 코프로세서들(212, 213)에 코프로세서 데이터 처리 명령을 전달함을 알리는 코프로세서 명령 요청 신호(CPI_REQ)와 상기 코프로세서 데이터 처리 명령이 코프로세서들(212, 213) 중 어느 코프로세서에 전달되는 명령인지를 알리는 코프로세서 명령 인덱스 신호(CPI_NUM)를 송신한다. 코프로세서들(212, 213)은 코프로세서 명령 요청 신호(CPI_REQ) 및 코프로세서 명령 인덱스 신호(CPI_NUM)를 수신하고, 메인 프로세서(211)는 코프로세서 명령 인덱스 신호(CPI_NUM)에 포함된 인덱스가 지시하는 코프로세서에서 송신하는 코프로세서 명령 가능 신호(CPI_READY)를 수신한다. 메인 프로세서(211)가 수신한 코프로세서 명령 가능 신호(CPI_READY)가 로직 “하이”이면 메인 프로세서(211)는 상기 코프로세서 데이터 처리 명령의 내용을 나타내는 코프로세서 명령 데이터 신호(CPI_INSTR)를 송신하고, 상기 인덱스가 지시하는 코프로세서는 코프로세서 명령 데이터 신호(CPI_INSTR)를 수신하여 상기 코프로세서 데이터 처리 명령을 전달받아 상기 코프로세서 데이터 처리 명령에 따른 데이터 처리를 수행한다. 이 때, 상기 코프로세서 데이터 처리 명령을 전달한 메인 프로세서(211)는 상기 코프로세서 데이터 처리 명령의 처리결과를 대기하지 않고 메인 프로세서(211)의 파이프라인을 계속적으로 진행한다.Referring to the operation of the data processing apparatus, the main processor 211 is a coprocessor command request signal (CPI_REQ) and the coprocessor data processing command to inform the coprocessors (212, 213) to transfer the coprocessor data processing instruction A coprocessor command index signal (CPI_NUM) is transmitted indicating which of the coprocessors 212, 213 is the command passed to the coprocessor. The coprocessors 212 and 213 receive the coprocessor command request signal CPI_REQ and the coprocessor command index signal CPI_NUM, and the main processor 211 indicates the index included in the coprocessor command index signal CPI_NUM. Receives a coprocessor command enable signal (CPI_READY) sent by a coprocessor. If the coprocessor command enable signal CPI_READY received by the main processor 211 is logic “high,” the main processor 211 transmits a coprocessor command data signal CPI_INSTR indicating the contents of the coprocessor data processing instruction. The coprocessor indicated by the index receives the coprocessor command data signal CPI_INSTR, receives the coprocessor data processing command, and performs data processing according to the coprocessor data processing command. At this time, the main processor 211 which has delivered the coprocessor data processing instruction continues the pipeline of the main processor 211 without waiting for the processing result of the coprocessor data processing instruction.

상기 데이터 처리 장치에서, 메인 프로세서(211)는 코프로세서들(212, 213)에서 예외 상황이 발생한 경우에 상기 예외 상황에 따른 처리를 한다. 메인 프로세서(211)는 코프로세서들(212, 213)로부터 예외 상황이 발생한 것을 알리는 코프로세서 예외 발생 신호(CP_EXC)를 수신한다. 메인 프로세서(211)가 수신하는 코프로세서 예외 발생 신호(CP_EXC)는 먹스(222)에 의하여 코프로세서들(212, 213) 중 예외 상황이 발생한 코프로세서로부터 출력된 코프로세서예외 발생 신호(CP_EXC)로 선택될 수 있다. 실시예에 따라, 먹스(221)의 선택 신호를 제공하기 위한 디코더가 더 포함될 수 있다. 코프로세서 예외 발생 신호(CP_EXC)를 수신한 메인 프로세서(211)는 인터럽트 서비스 루틴(interrupt service routine)을 실행하여 상기 예외 상황에 따른 처리를 할 수 있다.In the data processing apparatus, the main processor 211 performs processing according to the exception situation when an exception situation occurs in the coprocessors 212 and 213. The main processor 211 receives a coprocessor exception occurrence signal CP_EXC indicating that an exception has occurred from the coprocessors 212 and 213. The coprocessor exception occurrence signal CP_EXC received by the main processor 211 is a coprocessor exception occurrence signal CP_EXC output from the coprocessor where an exception occurs among the coprocessors 212 and 213 by the mux 222. Can be selected. According to an embodiment, a decoder for providing a selection signal of the mux 221 may be further included. The main processor 211 that receives the coprocessor exception generation signal CP_EXC may execute an interrupt service routine to process the exception.

도 3은 본 발명의 제 2 실시예에 따른 데이터 처리 장치를 나타내는 블록도이다.3 is a block diagram showing a data processing apparatus according to a second embodiment of the present invention.

도 3를 참조하면, 데이터 처리 장치는 메인 프로세서(411), 코프로세서들(412, 413), 및 코프로세서 버스(420)를 포함한다.Referring to FIG. 3, a data processing apparatus includes a main processor 411, coprocessors 412 and 413, and a coprocessor bus 420.

도 3에서, 메인 프로세서(411)는 코프로세서들(412, 413)에 제 1 코프로세서 인터페이스 신호 집합을 송신하고 코프로세서들(412, 413)로부터 제 2 코프로세서 인터페이스 신호 집합을 수신하여 코프로세서 명령을 전달한다. 상기 코프로세서 명령은 코프로세서들(412, 413) 중 선택된 하나의 코프로세서가 전달받아, 상기 선택된 하나의 코프로세서에 의해 독립적으로 수행되는 명령인 코프로세서 데이터 처리 명령이거나, 상기 메인 프로세서와 상기 선택된 하나의 코프로세서간에 코프로세서 데이터가 전송되는 명령인 코프로세서 데이터 전달 명령일 수 있다. 또한, 메인 프로세서(411)는 코프로세서들(412, 413)로부터 코프로세서 예외 발생 신호(CP_EXC)를 수신하여 예외 상황에 따른 처리를 수행할 수 있다.In FIG. 3, main processor 411 transmits a first coprocessor interface signal set to coprocessors 412 and 413 and receives a second coprocessor interface signal set from coprocessors 412 and 413. Pass the command. The coprocessor instruction is a coprocessor data processing instruction which is received by a selected coprocessor of the coprocessors 412 and 413 and is independently executed by the selected coprocessor, or the main processor and the selected processor. It may be a coprocessor data transfer command which is a command for transmitting coprocessor data between one coprocessor. In addition, the main processor 411 may receive a coprocessor exception occurrence signal CP_EXC from the coprocessors 412 and 413 to perform processing according to the exception situation.

상기 제 1 코프로세서 인터페이스 신호 집합은 상기 선택된 하나의 코프로세서에 상기 코프로세서 데이터 처리 명령 또는 상기 코프로세서 데이터 전달 명령을 수신하도록 요청하는 코프로세서 명령 요청 신호(CPI_REQ), 상기 코프로세서 데이터 처리 명령 또는 상기 코프로세서 데이터 전달 명령을 전달하기 위해 사용되고, 상기 선택된 하나의 코프로세서의 인덱스를 나타내는 코프로세서 명령 인덱스 신호(CPI_NUM), 상기 코프로세서 데이터 전달 명령에 따라 상기 코프로세서 데이터가 전송되도록 요청하는 코프로세서 전달 요청 신호(CPD_REQ), 상기 코프로세서 데이터가 전송되기 위해 사용되고, 상기 선택된 하나의 코프로세서의 인덱스를 나타내는 코프로세서 전달 인덱스 신호(CPD_NUM), 상기 메인 프로세서로부터 상기 선택된 하나의 코프로세서로 전달되는 상기 코프로세서 데이터 처리 명령 또는 상기 코프로세서 데이터 전달 명령의 내용을 나타내는 코프로세서 명령 데이터 신호(CPI_INSTR), 상기 코프로세서 데이터 전달 명령이 메인 프로세서(411)가 상기 선택된 하나의 코프로세서에 데이터를 기입하는 명령인지 또는 상기 선택된 하나의 코프로세서로부터 데이터를 독출하는 명령인지를 알리는 코프로세서 전달 선택 신호(CPD_RW), 및 상기 코프로세서 데이터 전달 명령에 의해 상기 메인 프로세서로부터 상기 선택된 하나의 코프로세서로 전달되는 데이터를 나타내는 코프로세서 전달 기입 신호(CPD_WDATA)를 포함한다. 코프로세서 전달 인덱스 신호(CPD_NUM)는 상술한 코프로세서 명령 인덱스 신호(CPI_NUM)와 마찬가지로 상기 데이터 처리 장치에 포함된 코프로세서들의 개수에 따라 비트수가 달라질 수 있다. 코프로세서 전달 기입 신호(CPD_WDATA) 또한 실시예에 따라 비트수가 달라질 수 있다. 예를 들어, 32 비트의 운영 체제(operating system)를 통하여 동작하는 데이터 처리 장치의 경우 코프로세서 전달 기입 신호(CPD_WDATA)는 32 비트의 신호로 구현될 수 있다.The first coprocessor interface signal set includes: a coprocessor instruction request signal (CPI_REQ), the coprocessor data processing instruction, or requesting the selected one of the coprocessors to receive the coprocessor data processing instruction or the coprocessor data transfer instruction. A coprocessor command index signal (CPI_NUM) which is used to convey the coprocessor data transfer command and indicates an index of the selected one coprocessor, and which requests the coprocessor data to be transmitted according to the coprocessor data transfer command A transfer request signal (CPD_REQ), a coprocessor transfer index signal (CPD_NUM) used to transmit the coprocessor data and indicating an index of the selected one coprocessor, and transferred from the main processor to the selected one coprocessor Is a coprocessor instruction data signal (CPI_INSTR) indicating the contents of the coprocessor data processing instruction or the coprocessor data transfer instruction, and the coprocessor data transfer instruction writes data to the selected coprocessor by the main processor 411. A coprocessor transfer selection signal (CPD_RW) indicating whether the command is a command to read or read data from the selected one of the coprocessors, and the coprocessor data transfer command from the main processor to the selected one of the coprocessors. A coprocessor transfer write signal (CPD_WDATA) indicating the data to be written. Like the coprocessor command index signal CPI_NUM described above, the coprocessor transfer index signal CPD_NUM may have a different number of bits depending on the number of coprocessors included in the data processing apparatus. The coprocessor transfer write signal CPD_WDATA may also vary in number of bits in some embodiments. For example, in the case of a data processing device operating through a 32-bit operating system, the coprocessor transfer write signal CPD_WDATA may be implemented as a 32-bit signal.

상기 제 2 코프로세서 인터페이스 신호 집합은 상기 선택된 하나의 코프로세서가 상기 코프로세서 데이터 처리 명령 또는 상기 코프로세서 데이터 전달 명령을 수신할 수 있는지 여부를 나타내는 코프로세서 명령 가능 신호(CPI_READY), 상기 선택된 하나의 코프로세서가 상기 코프로세서 데이터 전달 명령에 따라 상기 코프로세서 데이터를 전송하거나 전송 받을 수 있는지 여부를 나타내는 코프로세서 전달 가능 신호(CPD_READY), 및 상기 코프로세서 데이터 전달 명령에 따라 상기 선택된 하나의 코프로세서로부터 메인 프로세서(411)에 전송되는 상기 코프로세서 데이 터를 나타내는 코프로세서 전달 독출 신호(CPD_RDATA)를 포함한다. 코프로세서들(412, 413) 각각에서 출력되는 코프로세서 전달 가능 신호(CPD_READY)는 코프로세서 전달 인덱스 신호(CPD_NUM)를 선택 신호로서 수신하는 제 3 먹스(423)에 의하여 코프로세서 전달 인덱스 신호(CPD_NUM)에 포함된 인덱스가 지시하는 코프로세서에서 출력되는 코프로세서 전달 가능 신호(CPD_READY)로 선택된다. 이에 따라, 메인 프로세서(411)는 코프로세서 전달 인덱스 신호(CPD_NUM)에 따라 선택된 코프로세서에서 송신하는 코프로세서 전달 가능 신호(CPD_READY)를 수신한다. 코프로세서 전달 독출 신호(CPD_RDATA) 또한 코프로세서 전달 인덱스 신호(CPD_NUM)를 선택 신호로서 수신하는 제 4 먹스(424)에 의하여 상기 선택된 코프로세서에서 출력된 신호로 선택될 수 있다. 실시예에 따라, 상기 제 2 코프로세서 인터페이스 신호 집합은 코프로세서들(412, 413)에서 예외 상황이 발생하였음을 알리는 코프로세서 예외 발생 신호(CP_EXC)를 더 포함할 수 있다. 메인 프로세서(411)는 코프로세서 예외 발생 신호(CP_EXC)를 수신하여 상기 예외 상황에 따른 처리를 수행할 수 있다.The second coprocessor interface signal set is a coprocessor command enable signal (CPI_READY) indicating whether the selected one coprocessor can receive the coprocessor data processing instruction or the coprocessor data transfer instruction, the selected one A coprocessor deliverable signal (CPD_READY) indicating whether a coprocessor can transmit or receive the coprocessor data in accordance with the coprocessor data transfer instruction, and from the selected coprocessor in accordance with the coprocessor data transfer instruction And a coprocessor transfer read signal CPD_RDATA representing the coprocessor data transmitted to the main processor 411. The coprocessor delivery possible signal CPD_READY output from each of the coprocessors 412 and 413 is a coprocessor delivery index signal CPD_NUM by a third mux 423 that receives the coprocessor delivery index signal CPD_NUM as a selection signal. ) Is selected by the coprocessor forwardable signal (CPD_READY) output from the coprocessor indicated by the index. Accordingly, the main processor 411 receives the coprocessor deliverable signal CPD_READY transmitted by the selected coprocessor according to the coprocessor forward index signal CPD_NUM. The coprocessor delivery read signal CPD_RDATA may also be selected as the signal output from the selected coprocessor by the fourth mux 424 which receives the coprocessor delivery index signal CPD_NUM as the selection signal. According to an embodiment, the second coprocessor interface signal set may further include a coprocessor exception occurrence signal CP_EXC indicating that an exception condition has occurred in the coprocessors 412 and 413. The main processor 411 may receive a coprocessor exception generation signal CP_EXC and perform processing according to the exception situation.

코프로세서 버스(420)는 코프로세서 명령 요청 신호(CPI_REQ), 코프로세서 명령 인덱스 신호(CPI_NUM), 코프로세서 명령 데이터 신호(CPI_INSTR), 코프로세서 명령 가능 신호(CPI_READY), 코프로세서 전달 요청 신호(CPD_REQ), 코프로세서 전달 인덱스 신호(CPD_NUM), 코프로세서 전달 선택 신호(CPD_RW), 코프로세서 전달 기입 신호(CPD_WDATA), 코프로세서 전달 가능 신호(CPD_READY), 코프로세서 전달 독출 신호(CPD_RDATA), 및 코프로세서 예외 발생 신호(CP_EXC)를 전송하는 신호선들, 제 1 먹스(421), 제 2 먹스(422), 제 3 먹스(423), 및 제 4 먹스(424)를 포함 한다. 여기서, 코프로세서 명령 요청 신호(CPI_REQ), 코프로세서 명령 인덱스 신호(CPI_NUM), 코프로세서 명령 데이터 신호(CPI_INSTR), 코프로세서 명령 가능 신호(CPI_READY), 코프로세서 전달 요청 신호(CPD_REQ), 코프로세서 전달 인덱스 신호(CPD_NUM), 코프로세서 전달 선택 신호(CPD_RW), 코프로세서 전달 기입 신호(CPD_WDATA), 코프로세서 전달 가능 신호(CPD_READY), 코프로세서 전달 독출 신호(CPD_RDATA), 및 코프로세서 예외 발생 신호(CP_EXC)는 각각의 신호 마다 동일한 신호선에 의하여 전송된다. 따라서, 상기 데이터 처리 장치에 코프로세서가 추가되더라도 신호선을 추가적으로 사용하지 않고, 적은 수의 신호선들을 사용하여 데이터 처리 장치가 구현될 수 있다.Coprocessor bus 420 includes coprocessor command request signal (CPI_REQ), coprocessor command index signal (CPI_NUM), coprocessor command data signal (CPI_INSTR), coprocessor command enable signal (CPI_READY), and coprocessor delivery request signal (CPD_REQ). ), Coprocessor forward index signal (CPD_NUM), coprocessor forward select signal (CPD_RW), coprocessor forward write signal (CPD_WDATA), coprocessor forward ready signal (CPD_READY), coprocessor forward read signal (CPD_RDATA), and coprocessor Signal lines transmitting the exception occurrence signal CP_EXC include a first mux 421, a second mux 422, a third mux 423, and a fourth mux 424. Here, coprocessor command request signal (CPI_REQ), coprocessor command index signal (CPI_NUM), coprocessor command data signal (CPI_INSTR), coprocessor command enable signal (CPI_READY), coprocessor delivery request signal (CPD_REQ), coprocessor delivery Index signal (CPD_NUM), coprocessor forward select signal (CPD_RW), coprocessor forward write signal (CPD_WDATA), coprocessor forward ready signal (CPD_READY), coprocessor forward read signal (CPD_RDATA), and coprocessor exception occurrence signal (CP_EXC) ) Is transmitted by the same signal line for each signal. Therefore, even if a coprocessor is added to the data processing apparatus, the data processing apparatus may be implemented using a small number of signal lines without additionally using signal lines.

상기 데이터 처리 장치의 동작을 살펴보면, 메인 프로세서(411)는 상기 코프로세서 데이터 처리 명령 또는 상기 코프로세서 데이터 전달 명령을 코프로세서들(212, 213)에 전달할 수 있다. 메인 프로세서(411)가 상기 코프로세서 데이터 처리 명령을 전달하는 경우에는 코프로세서 명령 요청 신호(CPI_REQ), 코프로세서 명령 인덱스 신호(CPI_NUM), 코프로세서 명령 데이터 신호(CPI_INSTR), 및 코프로세서 명령 가능 신호(CPI_READY)만이 사용된다. 상기 코프로세서 데이터 처리 명령은 도 2의 데이터 처리 장치에서 코프로세서 데이터 처리 명령이 전달되는 방식과 동일한 방식으로 전달된다. 따라서, 상기 코프로세서 데이터 처리 명령을 전달하는 것과 관련된 동작에 대한 설명은 생략한다.Referring to the operation of the data processing apparatus, the main processor 411 may transmit the coprocessor data processing instruction or the coprocessor data transfer instruction to the coprocessors 212 and 213. When the main processor 411 delivers the coprocessor data processing instruction, the coprocessor instruction request signal (CPI_REQ), the coprocessor instruction index signal (CPI_NUM), the coprocessor instruction data signal (CPI_INSTR), and the coprocessor instruction enable signal. Only (CPI_READY) is used. The coprocessor data processing instruction is transmitted in the same manner as that of the coprocessor data processing instruction in the data processing apparatus of FIG. 2. Therefore, the description of the operation related to conveying the coprocessor data processing instruction is omitted.

상기 코프로세서 데이터 전달 명령이 전달되는 경우에 상기 데이터 처리 장치의 동작을 살펴보면, 메인 프로세서(411)는 코프로세서들(412, 413) 중 선택된 하나의 코프로세서에 상기 코프로세서 데이터 전달 명령을 전달하고, 상기 코프로세서 데이터 전달 명령이 전달된 후 메인 프로세서(411) 및 상기 선택된 하나의 코프로세서 간에 상기 코프로세서 데이터 전달 명령에 따른 코프로세서 데이터가 전달된다. 즉, 상기 코프로세서 데이터 전달 명령의 전달은 상기 코프로세서 데이터의 전달을 수반한다. 메인 프로세서(411)는 코프로세서 명령 요청 신호(CPI_REQ), 코프로세서 명령 인덱스 신호(CPI_NUM), 코프로세서 명령 데이터 신호(CPI_INSTR), 및 코프로세서 명령 가능 신호(CPI_READY)를 통하여 상기 코프로세서 데이터 전달 명령을 상기 선택된 하나의 코프로세서에 전달한다. 상기 코프로세서 데이터 전달 명령은 도 2의 데이터 처리 장치에서 코프로세서 데이터 처리 명령이 전달되는 방식과 동일한 방식으로 전달된다. 이하, 상기 코프로세서 데이터 전달 명령에 따라 상기 코프로세서 데이터가 전달되는 과정을 살펴본다.Referring to the operation of the data processing device when the coprocessor data transfer command is delivered, the main processor 411 delivers the coprocessor data transfer command to one of the coprocessors 412 and 413. After the coprocessor data transfer command is delivered, coprocessor data according to the coprocessor data transfer command is transferred between the main processor 411 and the selected one of the coprocessors. That is, the delivery of the coprocessor data transfer instruction involves the delivery of the coprocessor data. The main processor 411 receives the coprocessor command transfer signal CPI_REQ, the coprocessor command index signal CPI_NUM, the coprocessor command data signal CPI_INSTR, and the coprocessor command enable signal CPI_READY. To the selected one coprocessor. The coprocessor data transfer instruction is delivered in the same manner as the coprocessor data processing instruction is delivered in the data processing apparatus of FIG. 2. Hereinafter, a process of transmitting the coprocessor data according to the coprocessor data transfer command will be described.

상기 코프로세서 데이터 전달 명령을 전달한 메인 프로세서(411)는 코프로세서들(412, 413)에 상기 코프로세서 데이터가 전송되도록 요청하는 코프로세서 전달 요청 신호(CPD_REQ)와 상기 코프로세서 데이터가 코프로세서들(412, 413) 중 어느 코프로세서에 또는 어느 코프로세서로부터 전달되는 데이터인지를 알리는 코프로세서 전달 인덱스 신호(CPD_NUM), 및 상기 코프로세서 데이터 전달 명령이 기입 명령인지 독출 명령인지를 알리는 코프로세서 전달 선택 신호(CPD_RW)를 송신한다. 코프로세서 전달 요청 신호(CPD_REQ)를 송신한 메인 프로세서(411)는 코프로세서 전달 인덱스 신호(CPD_NUM)에 포함된 인덱스가 지시하는 코프로세서에서 송신하는 코프로세서 전달 가능 신호(CPD_READY)를 수신한다. 메인 프로세서(411)가 수신한 코 프로세서 전달 가능 신호(CPD_READY)가 로직 “하이”이고 코프로세서 전달 선택 신호(CPD_RW)가 로직 “하이”이면, 메인 프로세서(311)는 코프로세서 전달 기입 신호(CPD_WDATA)를 송신하여 상기 선택된 하나의 코프로세서로 상기 코프로세서 데이터를 전달하고, 메인 프로세서(411)가 수신한 코프로세서 전달 가능 신호(CPD_READY)가 로직 “하이”이고 코프로세서 전달 선택 신호(CPD_RW)가 로직 “로우”이면 메인 프로세서(411)는 코프로세서 전달 독출 신호(CPD_RDATA)를 수신하여 상기 코프로세서 데이터를 전달받는다.The main processor 411, which has delivered the coprocessor data transfer command, transmits the coprocessor transfer request signal CPD_REQ to the coprocessors 412 and 413 so that the coprocessor data is transmitted. A coprocessor delivery index signal (CPD_NUM) indicating which coprocessor is the data being delivered to or from which coprocessor, and a coprocessor delivery selection signal indicating whether the coprocessor data transfer command is a write command or a read command. Send (CPD_RW). The main processor 411 which has transmitted the coprocessor delivery request signal CPD_REQ receives the coprocessor delivery possible signal CPD_READY transmitted by the coprocessor indicated by the index included in the coprocessor delivery index signal CPD_NUM. If the coprocessor deliverable signal CPD_READY received by the main processor 411 is logic "high" and the coprocessor delivery select signal CPD_RW is a logic "high", then the main processor 311 receives the coprocessor transfer write signal CPD_WDATA. Transmit the coprocessor data to the selected coprocessor, and the coprocessor forward enable signal CPD_READY received by the main processor 411 is logic “high” and the coprocessor forward select signal CPD_RW is If the logic is low, the main processor 411 receives the coprocessor transfer read signal CPD_RDATA and receives the coprocessor data.

한편, 실시예에 따라 메인 프로세서(411)는 코프로세서 전달 선택 신호(CPD_RW)를 송신하지 않을 수도 있다. 메인 프로세서(411)가 코프로세서 전달 선택 신호(CPD_RW)를 송신하지 않는 경우에는, 메인 프로세서(411)는 상기 코프로세서 데이터 전달 명령이 전달될 때에 상기 코프로세서 데이터 전달 명령이 기입 명령인지 독출 명령인지에 대한 정보를 전달한다. 또한, 상기 코프로세서 데이터 전달 명령이 전달될 때에 상기 코프로세서 데이터 전달 명령이 기입 명령인지 독출 명령인지에 대한 정보가 전달되더라도, 코프로세서의 구성을 단순화하기 위해 상기 코프로세서 데이터가 전달될 때에 메인 프로세서(411)가 코프로세서 전달 선택 신호(CPD_RW)를 송신할 수 있다. 또한, 실시예에 따라 메인 프로세서(411)는 상기 선택된 하나의 코프로세서에 상기 코프로세서 데이터가 어느 레지스터에 대한 코프로세서 데이터인지를 나타내는 코프로세서 전달 레지스터 신호를 더 송신할 수 있다. 상기 선택된 하나의 코프로세서는 상기 코프로세서 전달 레지스터 신호를 송신하여 상기 선택된 하나의 코프로세서가 가지는 레지스터들 중 어느 레지스터에 상기 코 프로세서 데이터를 입력 받을지 또는, 어느 레지스터로부터 상기 코프로세서 데이터를 출력할 지를 결정할 수 있다.In some embodiments, the main processor 411 may not transmit the coprocessor transfer selection signal CPD_RW. When the main processor 411 does not transmit the coprocessor transfer selection signal CPD_RW, the main processor 411 determines whether the coprocessor data transfer command is a write command or a read command when the coprocessor data transfer command is transmitted. Pass information about Further, even if information about whether the coprocessor data transfer command is a write command or a read command is passed when the coprocessor data transfer command is delivered, the main processor when the coprocessor data is delivered to simplify the configuration of the coprocessor. 411 may send a coprocessor delivery selection signal CPD_RW. Also, according to an embodiment, the main processor 411 may further transmit a coprocessor transfer register signal indicating to which selected coprocessor data the coprocessor data is to which coprocessor data. The selected coprocessor transmits the coprocessor transfer register signal to determine which register among the selected coprocessors receives the coprocessor data or from which register to output the coprocessor data. You can decide.

메인 프로세서(411)는 코프로세서 데이터 처리 명령 및 코프로세서 데이터 전달 명령을 전달하고 수행할 뿐만 아니라 코프로세서들(412, 413)에서 예외 상황이 발생한 경우에 예외 상황에 따른 처리를 한다. 메인 프로세서(411)는 코프로세서들(412, 413)로부터 예외 상황이 발생한 것을 알리는 코프로세서 예외 발생 신호(CP_EXC)를 수신한다. 메인 프로세서(411)가 수신하는 코프로세서 예외 발생 신호(CP_EXC)는 제 1 먹스(421)에 의하여 코프로세서들(412, 413) 중 예외 상황이 발생한 코프로세서로부터 출력된 코프로세서예외 발생 신호(CP_EXC)로 선택될 수 있다. 실시예에 따라, 제 1 먹스(421)의 선택 신호를 제공하기 위한 디코더가 더 포함될 수 있다. 코프로세서 예외 발생 신호(CP_EXC)를 수신한 메인 프로세서(411)는 인터럽트 서비스 루틴(interrupt service routine)을 실행하여 상기 예외 상황에 따른 처리를 할 수 있다.The main processor 411 not only delivers and executes coprocessor data processing instructions and coprocessor data transfer instructions, but also handles exception processing in the case where an exception occurs in the coprocessors 412 and 413. The main processor 411 receives from the coprocessors 412 and 413 a coprocessor exception occurrence signal CP_EXC indicating that an exception has occurred. The coprocessor exception occurrence signal CP_EXC received by the main processor 411 is a coprocessor exception occurrence signal CP_EXC output from the coprocessor in which an exception occurs among the coprocessors 412 and 413 by the first mux 421. ) May be selected. According to an embodiment, a decoder for providing a selection signal of the first mux 421 may be further included. The main processor 411 receiving the coprocessor exception occurrence signal CP_EXC may execute an interrupt service routine to process the exception.

이하, 도 4 내지 도 8을 참조하여 도 3의 데이터 처리 장치에서 코프로세서 명령이 전달되는 경우에 메인 프로세서 및 코프로세서의 동작을 설명한다. 도 4 내지 도 8에서 빗금이 쳐진 부분은, 상기 부분의 신호들의 파형에 무관하게 메인 프로세서 및 코프로세서가 동작하는 부분이거나, 또는 코프로세서 명령이 전달되는 경우의 메인 프로세서 및 코프로세서의 동작을 설명하는 데에 불필요한 부분이다.Hereinafter, operations of the main processor and the coprocessor when the coprocessor command is transmitted in the data processing device of FIG. 3 will be described with reference to FIGS. 4 to 8. The hatched portions in FIGS. 4 to 8 describe operations of the main processor and the coprocessor when the main processor and the coprocessor operate, or when coprocessor instructions are transmitted, regardless of the waveform of the signals of the portion. That's unnecessary.

도 4는 코프로세서 데이터 처리 명령이 전달되는 경우에 도 3의 데이터 처리 장치의 신호들을 나타내는 도면이다.4 is a diagram illustrating signals of the data processing apparatus of FIG. 3 when a coprocessor data processing command is transmitted.

도 4에서, 클록 신호(CLK)의 첫 번째 상승 에지에서는 코프로세서 명령 요청 신호(CPI_REQ)가 로직 “로우”이므로 전달되는 코프로세서 데이터 처리 명령은 없다. 클록 신호(CLK)의 두 번째 상승 에지에서는 코프로세서 명령 요청 신호(CPI_REQ)가 로직 “하이”이므로 메인 프로세서가 전달하려는 코프로세서 데이터 처리 명령이 존재하고, 코프로세서 명령 가능 신호(CPI_READY)가 로직 “하이”이므로 코프로세서에서 상기 코프로세서 데이터 처리 명령을 처리할 수 있다. 이에 따라, 코프로세서 명령 인덱스 신호(CPI_NUM)에 포함된 인덱스가 지시하는 코프로세서로 상기 코프로세서 데이터 처리 명령이 코프로세서 명령 데이터 신호(CPI_INSTR)를 통하여 전달된다. 코프로세서 명령 데이터 신호(CPI_INSTR)를 수신한 코프로세서는 상기 코프로세서 데이터 처리 명령에 따른 데이터 처리를 수행한다.In FIG. 4, no coprocessor data processing instruction is transmitted since the coprocessor instruction request signal CPI_REQ is a logic “low” on the first rising edge of the clock signal CLK. On the second rising edge of the clock signal CLK, the coprocessor command request signal CPI_REQ is a logic "high", so there is a coprocessor data processing instruction that the main processor is trying to pass, and the coprocessor command enable signal (CPI_READY) is a logic " High ”so that the coprocessor can process the coprocessor data processing instruction. Accordingly, the coprocessor data processing command is transmitted to the coprocessor indicated by the index included in the coprocessor command index signal CPI_NUM through the coprocessor command data signal CPI_INSTR. The coprocessor receiving the coprocessor command data signal CPI_INSTR performs data processing according to the coprocessor data processing command.

도 5는 2개의 코프로세서 데이터 처리 명령이 전달되는 경우에 도 3의 데이터 처리 장치의 신호들을 나타내는 도면이다.FIG. 5 is a diagram illustrating signals of the data processing apparatus of FIG. 3 when two coprocessor data processing instructions are delivered.

도 5에서, 클록 신호(CLK)의 클록 신호(CLK)의 첫 번째 상승 에지 및 두 번째 상승 에지에서의 동작은 도 4에서의 동작과 동일하다. 도 5의 예에서는 클록 신호(CLK)의 두 번째 상승 에지에서 제 1 코프로세서 데이터 처리 명령이 전달된 후 코프로세서의 파이프라인이 한 사이클 동안 스톨(stall)된다고 가정되었다. 클록 신호(CLK)의 두 번째 상승 에지 이후 파이프라인이 한 사이클 동안 스톨된 코프로세서는 로직 “로우”의 코프로세서 명령 가능 신호(CPI_READY)를 송신한다. 클록 신호(CLK)의 세 번째 상승 에지에서 코프로세서 명령 요청 신호(CPI_REQ)가 로직 “하이”이므로 메인 프로세서가 전달하려는 제 2 코프로세서 데이터 처리 명령이 존재하지만, 코프로세서 명령 가능 신호(CPI_READY)가 로직 “로우”이므로 상기 제 2 코프로세서 데이터 처리 명령이 전달되지 않는다. 클록 신호(CLK)의 네 번째 상승 에지에서 코프로세서 명령 요청 신호(CPI_REQ)가 로직 “하이”이고 코프로세서 명령 가능 신호(CPI_READY)가 로직 “하이”이므로, 코프로세서 명령 인덱스 신호(CPI_NUM)에 포함된 인덱스가 지시하는 코프로세서로 상기 제 2 코프로세서 데이터 처리 명령이 코프로세서 명령 데이터 신호(CPI_INSTR)를 통하여 전달된다. 코프로세서 명령 데이터 신호(CPI_INSTR)를 수신한 코프로세서는 상기 제 2 코프로세서 데이터 처리 명령에 따른 데이터 처리를 수행한다.In FIG. 5, the operations at the first rising edge and the second rising edge of the clock signal CLK of the clock signal CLK are the same as those in FIG. 4. In the example of FIG. 5, it is assumed that the pipeline of the coprocessor stalls for one cycle after the first coprocessor data processing instruction is delivered on the second rising edge of the clock signal CLK. The coprocessor with the pipeline stalled for one cycle after the second rising edge of the clock signal CLK sends a logic “low” coprocessor command enable signal CPI_READY. On the third rising edge of the clock signal CLK, the coprocessor command request signal CPI_REQ is a logic “high”, so there is a second coprocessor data processing instruction that the main processor is trying to pass, but the coprocessor command enable signal CPI_READY Since the logic is low, the second coprocessor data processing instruction is not passed. Included in the coprocessor command index signal (CPI_NUM) because the coprocessor command request signal (CPI_REQ) is logic "high" and the coprocessor command enable signal (CPI_READY) is logic "high" on the fourth rising edge of the clock signal (CLK). The second coprocessor data processing instruction is delivered via a coprocessor instruction data signal CPI_INSTR to the coprocessor indicated by the index. The coprocessor receiving the coprocessor command data signal CPI_INSTR performs data processing according to the second coprocessor data processing command.

도 6은 메인 프로세서가 코프로세서에 데이터를 기입하는 코프로세서 데이터 전달 명령이 전달되는 경우에 도 3의 데이터 처리 장치의 신호들을 나타내는 도면이다.FIG. 6 is a diagram illustrating signals of the data processing apparatus of FIG. 3 when a main processor receives a coprocessor data transfer command for writing data to the coprocessor.

도 6에서, 클록 신호(CLK)의 클록 신호(CLK)의 첫 번째 상승 에지 및 두 번째 상승 에지에서의 동작은 도 4 또는 도 5에서의 동작과 유사하다. 다만, 도 4 또는 도 5의 클록 신호(CLK)의 첫 번째 상승 에지 및 두 번째 상승 에지에서는 코프로세서 데이터 처리 명령이 전달되나, 도 6의 클록 신호(CLK)의 첫 번째 상승 에지 및 두 번째 상승 에지에서는 코프로세서 데이터 전달 명령이 전달된다. 클록 신호(CLK)의 세 번째 상승 에지에서 코프로세서 전달 요청 신호(CPD_REQ)가 로직 “하이”이므로 메인 프로세서가 전달하거나 전달받으려는 코프로세서 데이터가 존재하고, 코프로세서 전달 가능 신호(CPD_READY)가 로직 “하이”이므로 코프로세서는 상기 코프로세서 데이터를 전달하거나 전달받을 수 있다. 이때, 코프로세서 전달 선택 신호(CPD_RW)가 로직 “하이”이므로 메인 프로세서는 코프로세서 전달 인덱스 신호(CPD_NUM)에 포함된 인덱스가 지시하는 코프로세서에 코프로세서 전달 기입 신호(CPD_WDATA)에 포함된 상기 코프로세서 데이터를 기입한다.In FIG. 6, the operations at the first rising edge and the second rising edge of the clock signal CLK of the clock signal CLK are similar to those in FIG. 4 or 5. However, the coprocessor data processing instruction is transmitted on the first rising edge and the second rising edge of the clock signal CLK of FIG. 4 or 5, but the first rising edge and the second rising edge of the clock signal CLK of FIG. At the edge, a coprocessor data transfer instruction is sent. On the third rising edge of the clock signal CLK, the coprocessor forward request signal CPD_REQ is a logic “high”, so there is coprocessor data that the main processor wants to pass or receive, and the coprocessor forward signal CPD_READY is a logic “ High ”so that the coprocessor can either transmit or receive the coprocessor data. In this case, since the coprocessor delivery selection signal CPD_RW is logic “high,” the main processor includes the coprocessor included in the coprocessor delivery write signal CPD_WDATA to the coprocessor indicated by the index included in the coprocessor delivery index signal CPD_NUM. Write the processor data.

도 7은 메인 프로세서가 코프로세서로부터 데이터를 독출하는 코프로세서 데이터 전달 명령이 전달되는 경우에 도 3의 데이터 처리 장치의 신호들을 나타내는 도면이다.FIG. 7 is a diagram illustrating signals of the data processing apparatus of FIG. 3 when a main processor receives a coprocessor data transfer command for reading data from a coprocessor.

도 7에서, 클록 신호(CLK)의 첫 번째 상승 에지 및 클록 신호(CLK)의 두 번째 상승 에지에서의 동작은 도 6에서의 동작과 동일하다. 클록 신호(CLK)의 세 번째 상승 에지에서 코프로세서 전달 요청 신호(CPD_REQ)가 로직 “하이”이므로 메인 프로세서가 전달하거나 전달받으려는 코프로세서 데이터가 존재하고, 코프로세서 전달 가능 신호(CPD_READY)가 로직 “하이”이므로 코프로세서는 상기 코프로세서 데이터를 전달하거나 전달받을 수 있다. 이때, 코프로세서 전달 선택 신호(CPD_RW)가 로직 “로우”이므로 메인 프로세서는 코프로세서 전달 인덱스 신호(CPD_NUM)에 포함된 인덱스가 지시하는 코프로세서로부터 코프로세서 전달 독출 신호(CPD_RDATA)에 포함된 데이터를 독출한다. 클록 신호(CLK)의 세 번째 상승 에지에서 코프로세서 전달 요청 신호(CPD_REQ)를 수신한 코프로세서는 클록 신호(CLK)의 네 번째 상승 에지에서 코프로세서 전달 독출 신호(CPD_RDATA)를 송신하여 상기 코프로세서 데이터가 전달된다.In FIG. 7, the operations at the first rising edge of the clock signal CLK and the second rising edge of the clock signal CLK are the same as those in FIG. 6. On the third rising edge of the clock signal CLK, the coprocessor forward request signal CPD_REQ is a logic “high”, so there is coprocessor data that the main processor wants to pass or receive, and the coprocessor forward signal CPD_READY is a logic “ High ”so that the coprocessor can either transmit or receive the coprocessor data. At this time, since the coprocessor delivery selection signal CPD_RW is a logic “low”, the main processor receives data contained in the coprocessor delivery read signal CPD_RDATA from the coprocessor indicated by the index included in the coprocessor delivery index signal CPD_NUM. Read out. The coprocessor that receives the coprocessor delivery request signal CPD_REQ on the third rising edge of the clock signal CLK transmits the coprocessor delivery read signal CPD_RDATA on the fourth rising edge of the clock signal CLK to transmit the coprocessor. The data is passed.

도 8은 메인 프로세서가 코프로세서로부터 데이터를 독출하는 코프로세서 데 이터 전달 명령이 전달된 후 메인 프로세서가 코프로세서에 데이터를 기입하는 코프로세서 데이터 전달 명령이 전달되는 경우에 도 3의 데이터 처리 장치의 신호들을 나타내는 도면이다.8 is a data processing apparatus of FIG. 3 when a coprocessor data transfer instruction in which the main processor writes data to the coprocessor after a coprocessor data transfer instruction in which the main processor reads data from the coprocessor is passed; Figures showing signals of.

도 8에서, 클록 신호(CLK)의 첫 번째 상승 에지 및 클록 신호(CLK)의 두 번째 상승 에지에서의 동작은 도 6, 또는 도 7에서의 동작과 동일하다. 클록 신호(CLK)의 두 번째 상승 에지에서 제 1 코프로세서 데이터 전달 명령이 전달된다. 클록 신호(CLK)의 세 번째 상승 에지에서 코프로세서 전달 요청 신호(CPD_REQ)가 로직 “하이”이고, 코프로세서 전달 가능 신호(CPD_READY)가 로직 “하이”이며, 전달 선택 신호(CPD_RW)가 로직 “로우”이므로, 메인 프로세서는 코프로세서 전달 인덱스 신호(CPD_NUM)에 포함된 인덱스가 지시하는 코프로세서에 상기 코프로세서로부터 제 1 코프로세서 데이터가 독출되도록 요청한다. 또한, 클록 신호(CLK)의 세 번째 상승 에지에서 코프로세서 명령 요청 신호(CPI_REQ)가 로직 “하이”이므로 메인 프로세서가 전달하려는 제 2 코프로세서 데이터 전달 명령이 존재하지만, 코프로세서 명령 가능 신호(CPI_READY)가 로직 “로우”이므로 상기 제 2 코프로세서 데이터 전달 명령이 전달되지 않는다. 클록 신호(CLK)의 네 번째 상승 에지에서 코프로세서 명령 요청 신호(CPI_REQ)가 로직 “하이”이고, 코프로세서 명령 가능 신호(CPI_READY)가 로직 “하이”이므로 상기 제 2 코프로세서 데이터 전달 명령이 전달된다. 또한, 클록 신호(CLK)의 네 번째 상승 에지에서 상기 제 1 코프로세서 데이터가 독출된다. 클록 신호(CLK)의 다섯 번째 상승 에지에서 코프로세서 전달 요청 신호(CPD_REQ)가 로직 “하이”이고, 코프로세서 전달 가능 신호(CPD_READY) 가 로직 “하이”이며, 전달 선택 신호(CPD_RW)가 로직 “하이”이므로, 메인 프로세서는 코프로세서 전달 인덱스 신호(CPD_NUM)에 포함된 인덱스가 지시하는 코프로세서에 데이터를 기입하는 명령인 제 2 코프로세서 데이터 전달 명령을 수행하여 상기 코프로세서에 제 2 코프로세서 데이터를 기입한다.In FIG. 8, the operations at the first rising edge of the clock signal CLK and the second rising edge of the clock signal CLK are the same as those in FIG. 6 or FIG. 7. The first coprocessor data transfer command is delivered on the second rising edge of the clock signal CLK. On the third rising edge of the clock signal CLK, the coprocessor forward request signal CPD_REQ is logic "high", the coprocessor forward enable signal CPD_READY is logic "high", and the forward select signal CPD_RW is a logic " Low ”, the main processor requests the coprocessor indicated by the index included in the coprocessor transfer index signal CPD_NUM to read the first coprocessor data from the coprocessor. In addition, since the coprocessor command request signal CPI_REQ is a logic “high” on the third rising edge of the clock signal CLK, there is a second coprocessor data transfer command that the main processor attempts to deliver, but the coprocessor command enable signal CPI_READY. ) Is a logic "low" so that the second coprocessor data transfer instruction is not delivered. On the fourth rising edge of the clock signal CLK, the second coprocessor data transfer command is sent because the coprocessor command request signal CPI_REQ is logic “high” and the coprocessor command enable signal CPI_READY is logic “high”. do. In addition, the first coprocessor data is read at the fourth rising edge of the clock signal CLK. On the fifth rising edge of the clock signal CLK, the coprocessor forward request signal CPD_REQ is logic "high", the coprocessor forward signal (CPD_READY) is logic "high", and the forward select signal CPD_RW is a logic " High ”, so that the main processor executes a second coprocessor data transfer instruction, which is an instruction to write data to the coprocessor indicated by the index included in the coprocessor transfer index signal CPD_NUM, to the second coprocessor data. Enter.

한편, 상술한 실시예들에서는 데이터 처리 장치 및 데이터 처리 시스템에 포함되는 코프로세서들의 개수가 2 개인 경우를 예로 들었으나, 본 발명에 따른 데이터 처리 장치 및 데이터 처리 시스템은 3 개 이상의 코프로세서들을 포함할 수 있다.Meanwhile, in the above-described embodiments, the case where the number of coprocessors included in the data processing device and the data processing system is two is taken as an example, but the data processing device and the data processing system according to the present invention include three or more coprocessors. can do.

상기와 같은 본 발명의 실시예에 따른 데이터 처리 장치, 데이터 처리 시스템, 코프로세서 연결 방법, 및 코프로세서 인터페이스 방법은 데이터 처리 속도를 향상시킬 수 있고, 다수의 코프로세서들과의 연결을 지원할 수 있다.The data processing apparatus, the data processing system, the coprocessor connection method, and the coprocessor interface method according to the embodiment of the present invention as described above can improve the data processing speed and can support the connection with a plurality of coprocessors. .

또한, 본 발명의 실시예에 따른 데이터 처리 장치, 데이터 처리 시스템, 코프로세서 연결 방법, 및 코프로세서 인터페이스 방법은 적은 수의 신호선들을 사용하여 다수의 코프로세서들과의 연결을 지원할 수 있다.In addition, the data processing apparatus, the data processing system, the coprocessor connection method, and the coprocessor interface method according to the embodiment of the present invention can support the connection with a plurality of coprocessors using a small number of signal lines.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although described above with reference to a preferred embodiment of the present invention, those skilled in the art will be variously modified and changed within the scope of the invention without departing from the spirit and scope of the invention described in the claims below I can understand that you can.

Claims (23)

제 1 코프로세서 인터페이스 신호 집합을 송신하고 제 2 코프로세서 인터페이스 신호 집합을 수신하여 코프로세서 명령을 전달하고, 상기 코프로세서 명령을 전달한 후 상기 코프로세서 명령에 대한 처리결과를 대기하지 않고 파이프라인을 계속적으로 진행하는 메인 프로세서;Send a first coprocessor interface signal set and receive a second coprocessor interface signal set to deliver a coprocessor instruction, and after passing the coprocessor instruction, continue the pipeline without waiting for the processing result of the coprocessor instruction. Proceeding to the main processor; 상기 제 1 코프로세서 인터페이스 신호 집합을 수신하고 상기 제 2 코프로세서 인터페이스 신호 집합을 송신하여 전달받은 상기 코프로세서 명령에 응답하여 동작하는 복수의 코프로세서들; 및A plurality of coprocessors operable in response to said coprocessor command receiving said first coprocessor interface signal set and transmitting said second coprocessor interface signal set; And 상기 제 1 코프로세서 인터페이스 신호 집합 또는 상기 제 2 코프로세서 인터페이스 신호 집합에 포함된 각각의 코프로세서 인터페이스 신호 별로 동일한 신호선을 통하여 상기 제 1 코프로세서 인터페이스 신호 집합이 상기 코프로세서들 각각에 입력되고 상기 제 2 코프로세서 인터페이스 신호 집합이 상기 코프로세서들 각각으로부터 출력되도록 상기 메인 프로세서 및 상기 코프로세서들을 연결하는 코프로세서 버스를 포함하는 데이터 처리 장치.The first coprocessor interface signal set is input to each of the coprocessors through the same signal line for each coprocessor interface signal included in the first coprocessor interface signal set or the second coprocessor interface signal set. And a coprocessor bus connecting the main processor and the coprocessors such that a coprocessor interface signal set is output from each of the coprocessors. 제1항에 있어서,The method of claim 1, 상기 메인 프로세서 및 상기 코프로세서들은 서로 독립적으로 파이프라인을 진행하는 것을 특징으로 하는 데이터 처리 장치.And the main processor and the coprocessors run the pipeline independently of each other. 제1항에 있어서, 상기 코프로세서 명령은,The method of claim 1, wherein the coprocessor instruction is: 상기 코프로세서들 중 선택된 하나의 코프로세서가 전달받아 상기 선택된 하나의 코프로세서에 의해 독립적으로 수행되는 명령인 코프로세서 데이터 처리 명령인 것을 특징으로 하는 데이터 처리 장치.And a coprocessor data processing instruction, the coprocessor data processing instruction being one of the coprocessors that is received and executed independently by the selected one of the coprocessors. 제3항에 있어서, 상기 제 1 코프로세서 인터페이스 신호 집합은,The method of claim 3, wherein the first coprocessor interface signal set, 상기 선택된 하나의 코프로세서에 상기 코프로세서 데이터 처리 명령을 수신하도록 요청하는 코프로세서 명령 요청 신호; 및A coprocessor instruction request signal requesting the selected one of the coprocessors to receive the coprocessor data processing instruction; And 상기 선택된 하나의 코프로세서의 인덱스를 나타내는 코프로세서 명령 인덱스 신호를 포함하는 것을 특징으로 하는 데이터 처리 장치.And a coprocessor command index signal representing an index of the selected one coprocessor. 제4항에 있어서, 상기 제 1 코프로세서 인터페이스 신호 집합은,The method of claim 4, wherein the first coprocessor interface signal set, 상기 메인 프로세서로부터 상기 선택된 하나의 코프로세서로 전달되는 상기 코프로세서 데이터 처리 명령의 내용을 나타내는 코프로세서 명령 데이터 신호를 더 포함하는 것을 특징으로 하는 데이터 처리 장치.And a coprocessor command data signal indicating a content of the coprocessor data processing instruction transmitted from the main processor to the selected coprocessor. 제3항에 있어서, 상기 제 2 코프로세서 인터페이스 신호 집합은,The method of claim 3, wherein the second coprocessor interface signal set, 상기 선택된 하나의 코프로세서가 상기 코프로세서 데이터 처리 명령을 수신할 수 있는지 여부를 나타내는 코프로세서 명령 가능 신호를 포함하는 것을 특징으로 하는 데이터 처리 장치.And a coprocessor command enabled signal indicating whether the selected one coprocessor can receive the coprocessor data processing command. 제1항에 있어서, 상기 코프로세서 명령은,The method of claim 1, wherein the coprocessor instruction is: 상기 코프로세서들 중 선택된 하나의 코프로세서가 전달받아 상기 메인 프로세서와 상기 선택된 하나의 코프로세서간에 코프로세서 데이터가 전송되는 명령인 코프로세서 데이터 전달 명령인 것을 특징으로 하는 데이터 처리 장치.And a coprocessor data transfer instruction, the coprocessor data transfer instruction being a coprocessor data transfer command between the main processor and the selected one coprocessor. 제7항에 있어서, 상기 제 1 코프로세서 인터페이스 신호 집합은,The method of claim 7, wherein the first coprocessor interface signal set, 상기 선택된 하나의 코프로세서에 상기 코프로세서 데이터 전달 명령을 수신하도록 요청하는 코프로세서 명령 요청 신호;A coprocessor command request signal for requesting the selected one of the coprocessors to receive the coprocessor data transfer command; 상기 코프로세서 데이터 전달 명령을 전달하기 위해 사용되고, 상기 선택된 하나의 코프로세서의 인덱스를 나타내는 코프로세서 명령 인덱스 신호;A coprocessor command index signal used to convey the coprocessor data transfer command and indicating an index of the selected one coprocessor; 상기 코프로세서 데이터 전달 명령에 따라 상기 코프로세서 데이터가 전송되도록 요청하는 코프로세서 전달 요청 신호; 및A coprocessor delivery request signal for requesting the coprocessor data to be transmitted in accordance with the coprocessor data transfer command; And 상기 코프로세서 데이터가 전송되기 위해 사용되고, 상기 선택된 하나의 코프로세서의 인덱스를 나타내는 코프로세서 전달 인덱스 신호를 포함하는 것을 특징으로 하는 데이터 처리 장치.And a coprocessor forward index signal representing the index of the selected one coprocessor, wherein the coprocessor data is used for transmission. 제8항에 있어서, 상기 제 1 코프로세서 인터페이스 신호 집합은,The method of claim 8, wherein the first coprocessor interface signal set, 상기 메인 프로세서로부터 상기 선택된 하나의 코프로세서로 전달되는 상기 코프로세서 데이터 전달 명령의 내용을 나타내는 코프로세서 명령 데이터 신호;A coprocessor instruction data signal representing the content of the coprocessor data transfer instruction transferred from the main processor to the selected one coprocessor; 상기 코프로세서 데이터 전달 명령이 상기 메인 프로세서가 상기 선택된 하나의 코프로세서에 상기 코프로세서 데이터를 기입하는 명령인지 또는 상기 선택된 하나의 코프로세서로부터 상기 코프로세서 데이터를 독출하는 명령인지를 알리는 코프로세서 전달 선택 신호; 및A coprocessor delivery informing that the coprocessor data delivery instruction is whether the main processor writes the coprocessor data to the selected one coprocessor or reads the coprocessor data from the selected one coprocessor. Selection signal; And 상기 코프로세서 데이터 전달 명령에 따라 상기 메인 프로세서로부터 상기 선택된 하나의 코프로세서로 전송되는 상기 코프로세서 데이터를 나타내는 코프로세서 전달 기입 신호를 더 포함하는 것을 특징으로 하는 데이터 처리 장치.And a coprocessor transfer write signal representing the coprocessor data transmitted from the main processor to the selected one of the coprocessors according to the coprocessor data transfer instruction. 제7항에 있어서, 상기 제 2 코프로세서 인터페이스 신호 집합은,The method of claim 7, wherein the second coprocessor interface signal set, 상기 선택된 하나의 코프로세서가 상기 코프로세서 데이터 전달 명령을 수신할 수 있는지 여부를 나타내는 코프로세서 명령 가능 신호; 및A coprocessor command enabled signal indicating whether the selected one coprocessor can receive the coprocessor data transfer command; And 상기 선택된 하나의 코프로세서가 상기 코프로세서 데이터 전달 명령에 따라 상기 코프로세서 데이터를 전송하거나 전송 받을 수 있는지 여부를 나타내는 코프로세서 전달 가능 신호를 포함하는 것을 특징으로 하는 데이터 처리 장치.And a coprocessor deliverable signal indicating whether the selected one of the coprocessors can transmit or receive the coprocessor data in accordance with the coprocessor data transfer command. 제10항에 있어서, 상기 제 2 코프로세서 인터페이스 신호 집합은,The method of claim 10, wherein the second coprocessor interface signal set, 상기 코프로세서 데이터 전달 명령에 따라 상기 선택된 하나의 코프로세서로부터 상기 메인 프로세서에 전송되는 상기 코프로세서 데이터를 나타내는 코프로세서 전달 독출 신호를 더 포함하는 것을 특징으로 하는 데이터 처리 장치.And a coprocessor transfer read signal indicative of the coprocessor data transmitted from the selected one coprocessor to the main processor in accordance with the coprocessor data transfer instruction. 제1항에 있어서, 상기 제 2 코프로세서 인터페이스 신호 집합은,The method of claim 1, wherein the second coprocessor interface signal set, 상기 코프로세서들에서 예외 상황이 발생한 경우에 상기 메인 프로세서가 인터럽트 서비스 루틴(interrupt service routine)을 실행하여 상기 예외 상황에 따른 처리를 하도록 상기 코프로세서들에서 상기 예외 상황이 발생한 것을 알리는 코프로세서 예외 발생 신호를 포함하는 것을 특징으로 하는 데이터 처리 장치.A coprocessor exception is generated informing the coprocessors that the exception has occurred so that the main processor executes an interrupt service routine to process according to the exception when an exception occurs in the coprocessors. A data processing apparatus comprising a signal. 제1항에 있어서,The method of claim 1, 상기 메인 프로세서가 상기 제 2 코프로세서 인터페이스 신호 집합을 상기 코프로세서들 중 선택된 하나의 코프로세서로부터 수신하도록 상기 제 2 코프로세서 인터페이스 신호 집합에 포함되는 인터페이스 신호들을 선택하는 먹스(mux)들을 더 포함하는 것을 특징으로 하는 데이터 처리 장치.Further comprising mux for selecting interface signals included in the second coprocessor interface signal set such that the main processor receives the second coprocessor interface signal set from a selected one of the coprocessors. A data processing device, characterized in that. 제13항에 있어서,The method of claim 13, 상기 메인 프로세서로부터 상기 선택된 하나의 코프로세서의 인덱스를 포함하는 신호를 수신하여 상기 먹스들의 선택 신호로 입력되는 신호를 출력하는 디코더(decoder)를 더 포함하는 것을 특징으로 하는 데이터 처리 장치.And a decoder configured to receive a signal including an index of the selected one coprocessor from the main processor and output a signal input as the selection signal of the mux. 코프로세서 인터페이스 신호들을 통하여 코프로세서 명령을 전달하고, 상기 코프로세서 명령을 전달한 후 상기 코프로세서 명령에 대한 처리결과를 대기하지 않고 파이프라인을 계속적으로 진행하는 메인 프로세서;A main processor for delivering a coprocessor instruction through coprocessor interface signals, and continuing the pipeline without waiting for a processing result of the coprocessor instruction after delivering the coprocessor instruction; 상기 코프로세서 인터페이스 신호들을 통하여 전달받은 상기 코프로세서 명령에 응답하여 동작하는 복수의 코프로세서들;A plurality of coprocessors operative in response to the coprocessor command received via the coprocessor interface signals; 상기 코프로세서 인터페이스 신호들 각각 별로 동일한 신호선을 통하여 상기 코프로세서 인터페이스 신호들이 상기 코프로세서들 각각으로부터 출력되거나 상기 코프로세서들 각각에 입력되도록 상기 메인 프로세서 및 상기 코프로세서들을 연결하는 코프로세서 버스;A coprocessor bus connecting the main processor and the coprocessors such that the coprocessor interface signals are output from each of the coprocessors or input to each of the coprocessors through the same signal line for each of the coprocessor interface signals; 외부 메모리와 연결되어 있는 외부 버스;An external bus connected to the external memory; 상기 외부 버스와 연결되어 있고, 상기 외부 메모리로부터 데이터 및 명령을 입력받아 저장하는 캐시 메모리; 및A cache memory connected to the external bus and storing data and commands from the external memory; And 상기 캐시 메모리와 상기 메인 프로세서를 연결하는 내부 버스를 포함하는 데이터 처리 시스템.And an internal bus connecting the cache memory and the main processor. 제15항에 있어서,The method of claim 15, 상기 메인 프로세서 및 상기 코프로세서들은 서로 독립적으로 파이프라인을 진행하는 것을 특징으로 하는 데이터 처리 시스템.And said main processor and said coprocessors proceed pipeline independently of each other. 제15항에 있어서, 상기 캐시 메모리는,The method of claim 15, wherein the cache memory, 상기 외부 메모리로부터 상기 데이터를 입력받아 저장하는 데이터 캐시 메모리; 및A data cache memory configured to receive and store the data from the external memory; And 상기 외부 메모리로부터 상기 명령을 입력받아 저장하는 명령 캐시 메모리를 포함하는 것을 특징으로 하는 데이터 처리 시스템.And a command cache memory configured to receive and store the command from the external memory. 제17항에 있어서, 상기 내부 버스는,The method of claim 17, wherein the internal bus, 상기 데이터 캐시 메모리와 상기 메인 프로세서를 연결하는 내부 데이터 버스; 및An internal data bus connecting the data cache memory and the main processor; And 상기 명령 캐시 메모리와 상기 메인 프로세서를 연결하는 내부 명령 버스를 포함하는 데이터 처리 시스템.And an internal command bus connecting the instruction cache memory and the main processor. 제15항에 있어서,The method of claim 15, 상기 외부 버스와 상기 캐시 메모리 사이에 상기 외부 버스를 통하여 상기 외부 메모리로부터 상기 캐시 메모리에 입력되는 상기 데이터 및 상기 명령을 상기 캐시 메모리가 인식할 수 있는 캐시 데이터 및 캐시 명령으로 변환하는 버스 인터페이스 장치를 더 포함하는 것을 특징으로 하는 데이터 처리 시스템.A bus interface device between the external bus and the cache memory for converting the data and the command inputted from the external memory into the cache memory through the external bus into cache data and cache commands recognizable by the cache memory; The data processing system further comprises. 코프로세서들에 코프로세서 명령을 전달한 후 상기 코프로세서 명령에 대한 처리결과를 대기하지 않고 파이프라인을 계속적으로 진행하는 메인 프로세서로부터 상기 코프로세서들로 전송되는 제 1 코프로세서 인터페이스 신호 집합에 포함된 각각의 코프로세서 인터페이스 신호 별로 동일한 신호선을 통하여 상기 제 1 코프로세서 인터페이스 신호 집합이 상기 코프로세서들 각각에 입력되도록 상기 메인 프로세서와 상기 코프로세서들을 연결하는 단계; 및Each included in the first coprocessor interface signal set transmitted from the main processor to the coprocessors after passing the coprocessor instruction to the coprocessors and continuing the pipeline without waiting for the processing result of the coprocessor instruction. Coupling the main processor and the coprocessors so that the first coprocessor interface signal set is input to each of the coprocessors through the same signal line for each coprocessor interface signal of the coprocessor interface signal; And 상기 코프로세서들로부터 상기 메인 프로세서로 전송되는 제 2 코프로세서 인터페이스 신호 집합에 포함된 각각의 코프로세서 인터페이스 신호 별로 동일한 신호선을 통하여 상기 제 2 코프로세서 인터페이스 신호 집합이 상기 코프로세서들 각각으로부터 출력되도록 상기 메인 프로세서와 상기 코프로세서들을 연결하는 단계를 포함하는 코프로세서 연결 방법.The second coprocessor interface signal set is output from each of the coprocessors through the same signal line for each coprocessor interface signal included in the second coprocessor interface signal set transmitted from the coprocessors to the main processor. Coupling a coprocessor to a main processor. 제20항에 있어서,The method of claim 20, 상기 메인 프로세서 및 상기 코프로세서들은 서로 독립적으로 파이프라인을 진행하는 것을 특징으로 하는 코프로세서 연결 방법.And said main processor and said coprocessors proceed pipeline independently of each other. 코프로세서 인터페이스 신호들 각각이 동일한 신호선을 통하여 메인 프로세서 및 코프로세서들 간에 전송되어 메인 프로세서로부터 코프로세서들에 코프로세서 명령을 전달하는 단계; 및Each of the coprocessor interface signals is transmitted between the main processor and the coprocessors through the same signal line to deliver coprocessor instructions from the main processor to the coprocessors; And 상기 메인 프로세서가 상기 코프로세서 명령을 전달한 후 상기 코프로세서 명령에 대한 처리결과를 대기하지 않고 파이프라인을 계속적으로 진행하는 단계를 포함하는 코프로세서 인터페이스 방법.And after the main processor delivers the coprocessor instruction, continuing the pipeline without waiting for the processing result of the coprocessor instruction. 제22항에 있어서,The method of claim 22, 상기 메인 프로세서 및 상기 코프로세서들은 서로 독립적으로 파이프라인을 진행하는 것을 특징으로 하는 코프로세서 인터페이스 방법.And said main processor and said coprocessors proceed pipeline independently of each other.
KR1020070048385A 2007-05-18 2007-05-18 Data process device, data process system, method of connecting coprocessor, and coprocessor interface method KR100868677B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070048385A KR100868677B1 (en) 2007-05-18 2007-05-18 Data process device, data process system, method of connecting coprocessor, and coprocessor interface method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070048385A KR100868677B1 (en) 2007-05-18 2007-05-18 Data process device, data process system, method of connecting coprocessor, and coprocessor interface method

Publications (1)

Publication Number Publication Date
KR100868677B1 true KR100868677B1 (en) 2008-11-13

Family

ID=40284218

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070048385A KR100868677B1 (en) 2007-05-18 2007-05-18 Data process device, data process system, method of connecting coprocessor, and coprocessor interface method

Country Status (1)

Country Link
KR (1) KR100868677B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR890007159A (en) * 1987-10-30 1989-06-19 미다 가쓰시게 Data processing apparatus and data processing system having the same
KR20000056866A (en) * 1999-02-27 2000-09-15 윤종용 Pipelined data processing system having a microprocessor-coprocessor system on a single chip and method for interfacing host microprocessor with coprocessor
JP2003140888A (en) 2001-11-01 2003-05-16 Sharp Corp Microprocessor, coprocessor, and computing processing system therewith
KR20030078063A (en) * 2001-02-20 2003-10-04 에이알엠 리미티드 Data processing using a coprocessor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR890007159A (en) * 1987-10-30 1989-06-19 미다 가쓰시게 Data processing apparatus and data processing system having the same
KR20000056866A (en) * 1999-02-27 2000-09-15 윤종용 Pipelined data processing system having a microprocessor-coprocessor system on a single chip and method for interfacing host microprocessor with coprocessor
KR20030078063A (en) * 2001-02-20 2003-10-04 에이알엠 리미티드 Data processing using a coprocessor
JP2003140888A (en) 2001-11-01 2003-05-16 Sharp Corp Microprocessor, coprocessor, and computing processing system therewith

Similar Documents

Publication Publication Date Title
KR100267097B1 (en) Deferred store data read with simple anti-dependency pipeline interlock control in superscalar processor
US6434689B2 (en) Data processing unit with interface for sharing registers by a processor and a coprocessor
US5465376A (en) Microprocessor, coprocessor and data processing system using them
TWI567639B (en) Processor power management based on class and content of instructions
US4305124A (en) Pipelined computer
JP2000330790A (en) Method for operating computer system, method for instruction scheduling of computer system, and computer system
US5881307A (en) Deferred store data read with simple anti-dependency pipeline inter-lock control in superscalar processor
US6725357B1 (en) Making available instructions in double slot FIFO queue coupled to execution units to third execution unit at substantially the same time
TW201545058A (en) Inter-architecture compatibility module to allow code module of one architecture to use library module of another architecture
KR20150138343A (en) Multiple register memory access instructions, processors, methods, and systems
JPH11272464A (en) Method/device for loading/operating speculative boundary non-array
JP2002073330A (en) Data processing device
JPH04309131A (en) Microcode generating apparatus for instruction group and combining apparatus in computer
JP2018156672A (en) Method and system to combine corresponding half word units from multiple register units within microprocessor
JPH10228376A (en) Method and program for processing multiple-register instruction
JPH07120278B2 (en) Data processing device
JP2006331399A (en) Instruction issue control within superscalar processor
EP1680735A2 (en) Apparatus and method that accomodate multiple instruction sets and multiple decode modes
CN110941450A (en) Instruction emission processing circuit of RISC processor
CN112540792A (en) Instruction processing method and device
JP3182741B2 (en) Distributed instruction completion method and processor
US7051146B2 (en) Data processing systems including high performance buses and interfaces, and associated communication methods
CN112559048B (en) Instruction processing device, processor and processing method thereof
KR100267089B1 (en) Single instruction multiple data processing with combined scalar/vector operations
KR100868677B1 (en) Data process device, data process system, method of connecting coprocessor, and coprocessor interface method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20111102

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20121031

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee