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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000008569 process Effects 0.000 title claims abstract description 13
- 238000012545 processing Methods 0.000 claims abstract description 148
- 238000012546 transfer Methods 0.000 claims description 87
- 230000015654 memory Effects 0.000 claims description 47
- 230000004044 response Effects 0.000 claims description 6
- 230000008878 coupling Effects 0.000 claims 2
- 238000010168 coupling process Methods 0.000 claims 2
- 238000005859 coupling reaction Methods 0.000 claims 2
- 230000005540 biological transmission Effects 0.000 claims 1
- 230000000630 rising effect Effects 0.000 description 28
- 238000010586 diagram Methods 0.000 description 16
- 230000014509 gene expression Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30196—Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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
Description
도 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
실시예에 따라, 버스 인터페이스 장치(133)는 생략될 수 있고, 데이터 캐시 메모리(131) 및 명령 캐시 메모리(132)는 하나의 캐시 메모리로 구현될 수 있으며, 또한 코프로세서 버스(121) 및 내부 데이터 버스(122)는 하나의 내부 버스로 구현될 수 있다.According to an embodiment, the
외부 버스(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
도 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
메인 프로세서(211)는 코프로세서들(212, 213)에 제 1 코프로세서 인터페이스 신호 집합을 송신하고 코프로세서들(212, 213)로부터 제 2 코프로세서 인터페이스 신호 집합을 수신하여 코프로세서 명령을 전달한다. 실시예에 따라 상기 코프로세서 명령은 메인 프로세서(211) 및 코프로세서들(212, 213)이 동일한 클록 신호를 수신하여 전달될 수 있다. 상기 코프로세서 명령을 전달한 메인 프로세서(211)는 상기 코프로세서 명령에 대한 처리결과를 대기하지 않고 파이프라인을 계속적으로 진행한다. 즉, 메인 프로세서(211) 및 상기 코프로세서들(212, 213)은 서로 독립적으로 파이프라인을 진행한다. 따라서, 본 발명의 일 실시예에 따른 데이터 처리 장치는 데이터를 효율적으로 처리한다.The
도 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
상기 제 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
코프로세서 버스(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)는 각각의 신호 마다 동일한 신호선에 의하여 전송된다. 따라서, 상기 데이터 처리 장치에 코프로세서가 추가되더라도 신호선을 추가적으로 사용하지 않고, 적은 수의 신호선들을 사용하여 데이터 처리 장치가 구현될 수 있다.
상기 데이터 처리 장치의 동작을 살펴보면, 메인 프로세서(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
상기 데이터 처리 장치에서, 메인 프로세서(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
도 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
도 3에서, 메인 프로세서(411)는 코프로세서들(412, 413)에 제 1 코프로세서 인터페이스 신호 집합을 송신하고 코프로세서들(412, 413)로부터 제 2 코프로세서 인터페이스 신호 집합을 수신하여 코프로세서 명령을 전달한다. 상기 코프로세서 명령은 코프로세서들(412, 413) 중 선택된 하나의 코프로세서가 전달받아, 상기 선택된 하나의 코프로세서에 의해 독립적으로 수행되는 명령인 코프로세서 데이터 처리 명령이거나, 상기 메인 프로세서와 상기 선택된 하나의 코프로세서간에 코프로세서 데이터가 전송되는 명령인 코프로세서 데이터 전달 명령일 수 있다. 또한, 메인 프로세서(411)는 코프로세서들(412, 413)로부터 코프로세서 예외 발생 신호(CP_EXC)를 수신하여 예외 상황에 따른 처리를 수행할 수 있다.In FIG. 3,
상기 제 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
상기 제 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
코프로세서 버스(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)는 각각의 신호 마다 동일한 신호선에 의하여 전송된다. 따라서, 상기 데이터 처리 장치에 코프로세서가 추가되더라도 신호선을 추가적으로 사용하지 않고, 적은 수의 신호선들을 사용하여 데이터 처리 장치가 구현될 수 있다.
상기 데이터 처리 장치의 동작을 살펴보면, 메인 프로세서(411)는 상기 코프로세서 데이터 처리 명령 또는 상기 코프로세서 데이터 전달 명령을 코프로세서들(212, 213)에 전달할 수 있다. 메인 프로세서(411)가 상기 코프로세서 데이터 처리 명령을 전달하는 경우에는 코프로세서 명령 요청 신호(CPI_REQ), 코프로세서 명령 인덱스 신호(CPI_NUM), 코프로세서 명령 데이터 신호(CPI_INSTR), 및 코프로세서 명령 가능 신호(CPI_READY)만이 사용된다. 상기 코프로세서 데이터 처리 명령은 도 2의 데이터 처리 장치에서 코프로세서 데이터 처리 명령이 전달되는 방식과 동일한 방식으로 전달된다. 따라서, 상기 코프로세서 데이터 처리 명령을 전달하는 것과 관련된 동작에 대한 설명은 생략한다.Referring to the operation of the data processing apparatus, the
상기 코프로세서 데이터 전달 명령이 전달되는 경우에 상기 데이터 처리 장치의 동작을 살펴보면, 메인 프로세서(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
상기 코프로세서 데이터 전달 명령을 전달한 메인 프로세서(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
한편, 실시예에 따라 메인 프로세서(411)는 코프로세서 전달 선택 신호(CPD_RW)를 송신하지 않을 수도 있다. 메인 프로세서(411)가 코프로세서 전달 선택 신호(CPD_RW)를 송신하지 않는 경우에는, 메인 프로세서(411)는 상기 코프로세서 데이터 전달 명령이 전달될 때에 상기 코프로세서 데이터 전달 명령이 기입 명령인지 독출 명령인지에 대한 정보를 전달한다. 또한, 상기 코프로세서 데이터 전달 명령이 전달될 때에 상기 코프로세서 데이터 전달 명령이 기입 명령인지 독출 명령인지에 대한 정보가 전달되더라도, 코프로세서의 구성을 단순화하기 위해 상기 코프로세서 데이터가 전달될 때에 메인 프로세서(411)가 코프로세서 전달 선택 신호(CPD_RW)를 송신할 수 있다. 또한, 실시예에 따라 메인 프로세서(411)는 상기 선택된 하나의 코프로세서에 상기 코프로세서 데이터가 어느 레지스터에 대한 코프로세서 데이터인지를 나타내는 코프로세서 전달 레지스터 신호를 더 송신할 수 있다. 상기 선택된 하나의 코프로세서는 상기 코프로세서 전달 레지스터 신호를 송신하여 상기 선택된 하나의 코프로세서가 가지는 레지스터들 중 어느 레지스터에 상기 코 프로세서 데이터를 입력 받을지 또는, 어느 레지스터로부터 상기 코프로세서 데이터를 출력할 지를 결정할 수 있다.In some embodiments, the
메인 프로세서(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
이하, 도 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)
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)
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 |
-
2007
- 2007-05-18 KR KR1020070048385A patent/KR100868677B1/en not_active IP Right Cessation
Patent Citations (4)
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 |