KR0146521B1 - Protocol controller and data transfer in multiprocessor system - Google Patents

Protocol controller and data transfer in multiprocessor system

Info

Publication number
KR0146521B1
KR0146521B1 KR1019950026498A KR19950026498A KR0146521B1 KR 0146521 B1 KR0146521 B1 KR 0146521B1 KR 1019950026498 A KR1019950026498 A KR 1019950026498A KR 19950026498 A KR19950026498 A KR 19950026498A KR 0146521 B1 KR0146521 B1 KR 0146521B1
Authority
KR
South Korea
Prior art keywords
data
bus
address
processor board
master processor
Prior art date
Application number
KR1019950026498A
Other languages
Korean (ko)
Other versions
KR970012191A (en
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 KR1019950026498A priority Critical patent/KR0146521B1/en
Publication of KR970012191A publication Critical patent/KR970012191A/en
Application granted granted Critical
Publication of KR0146521B1 publication Critical patent/KR0146521B1/en

Links

Classifications

    • 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

Landscapes

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

Abstract

본 발명은 멀티프로세서 시스템에서 버스프로토콜 제어기에 관한 것으로서, 특히 데이타전송을 위하여 어드레스버스와 데이타버스를 각각 중재하여 버스효율을 높이는 멀티프로세서 시스템의 버스프로토콜 제어기와 데이타 전송방법에 관한 것이다. 프로세서보드내에서 프로세서의 제어신호와 프로토콜제어기의 각 기능블럭을 연결시키는 내부버스연결기; 프로토콜의 어드레스정보를 생성하는 명령어 발생기; 우선순위방식에 의하여 시스템버스를 중재하는 중재기; 어드레스 및 읽기상태천이 또는 쓰기상태천이를 수행하는 프로토콜상태 천이기; 및 상기 프로토콜상태 천이기를 구동시키거나 시스템버스에서 상태를 기록하는 명령상태 레지스터를 포함함을 특징으로 한다. 따라서, 상술한 바와 같이 본 발명의 버스프로토콜 제어기는 어드레스버스와 데이타버스의 중재를 각각 수행함으로써 명령과 동시에 데이타 송수신이 가능하여 버스효율을 높인다. 또한, 시스템버스를 사용시에 응용프로그램의 시험 및 성능시험을 수행할 수 있는 기능을 제공한다.The present invention relates to a bus protocol controller in a multiprocessor system. More particularly, the present invention relates to a bus protocol controller and a data transmission method of a multiprocessor system for arbitrating an address bus and a data bus to improve bus efficiency. An internal bus connector connecting the control signal of the processor and each function block of the protocol controller in the processor board; An instruction generator for generating address information of the protocol; An arbiter that arbitrates the system bus in a priority manner; A protocol state transition to perform an address and read state transition or a write state transition; And a command status register for driving the protocol status transition or recording the status on a system bus. Therefore, as described above, the bus protocol controller of the present invention performs arbitration of the address bus and the data bus, respectively, so that data can be transmitted and received simultaneously with the command, thereby increasing the bus efficiency. In addition, it provides the function to perform the application test and performance test when using the system bus.

Description

멀티프로세서 시스템에 있어서의 버스 프로토콜 제어기와 데이타 전송방법Bus Protocol Controller and Data Transfer Method in Multiprocessor Systems

제1a도는 종래 기술의 순차응답 방식을 보이는 블럭도Figure 1a is a block diagram showing a sequential response method of the prior art

제1b도는 종래 기술의 비순차응답 방식을 보이는 블럭도Figure 1b is a block diagram showing a non-sequential response method of the prior art

제2도는 본 발명에 따른 버스 프로토콜 제어기를 설명하기 위한 블럭도2 is a block diagram illustrating a bus protocol controller according to the present invention.

제3도는 제2도에 도시된 내부버스 연결기의 블럭도FIG. 3 is a block diagram of the internal bus connector shown in FIG.

제4도는 제2도에 도시된 중재기의 블럭도4 is a block diagram of the arbiter shown in FIG.

제5도는 제2도에 도시된 RMC 제어기의 블럭도5 is a block diagram of the RMC controller shown in FIG.

제6도는 제2도에 도시된 시스템 버스 통신용 클럭 파형도6 is a clock waveform diagram for the system bus communication shown in FIG.

제7도는 본 발명에 따른 버스 프로토콜 제어기의 시스템버스프로토콜도7 is a system bus protocol diagram of a bus protocol controller according to the present invention.

제8도는 본 발명에 따른 버스 프로토콜 제어기의 어드레스 및 읽기 상태 천이도8 is an address and read state transition diagram of a bus protocol controller according to the present invention.

제9도는 본 발명에 따른 버스 프로토콜 제어기의 쓰기 상태 천이도9 is a write state transition diagram of a bus protocol controller according to the present invention.

본 발명은 멀티프로세서 시스템에서의 버스 프로토콜 제어기에 관한 것으로서, 특히 데이타 전송을 위하여 어드레스 버스와 데이타 버스를 각각 중재하여 버스효율을 높이는 멀티프로세서 시스템의 버스 프로토콜 제어기와 데이타 전송방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a bus protocol controller in a multiprocessor system, and more particularly, to a bus protocol controller and a data transmission method of a multiprocessor system for arbitrating an address bus and a data bus for data transmission to increase bus efficiency.

미국 특허번호 US005191649에 나타난 인텔사의 특허는 순차응답방식(An ordered response)과 비순차응답방식(An out-ordered response)으로 분리된 데이타 전송과 데이타 버스를 가진 멀티프로세서 시스템에 관한 것이다.Intel's patent, shown in US Pat. No. US005191649, relates to a multiprocessor system with data transfer and data buses separated into an ordered response and an out-ordered response.

제1a도는 미국 특허번호 US005191649인 종래의 순차응답방식을 보이는 블럭도로서, 순차응답방식은 마스터 프로세서 보드가 다른 프로세서 보드로부터 데이타를 읽고자 할 때 데이타를 송신하는 마스터 프로세서 보드가 데이타를 보낼 때까지 통신링크가 계속 유지되는 경우로서 그 과정은 다음과 같다.Figure 1a is a block diagram showing a conventional sequential response method of the US patent number US005191649, the sequential response method until the master processor board to send data when the master processor board wants to read data from another processor board to send data If the communication link is maintained, the process is as follows.

제1a도에서 제1프로세서보드(10)에서 제2프로세서보드(12)의 데이타를 읽고자 할 때 제1프로세서보드(10)는 어드레스 버스에 대해 우선 버스요구를 하고 버스중재를 하여 버스를 획득한 후에 읽기명령을 제2프로세서보드(12)에 보내면 제2프로세서보드(12)는 데이타를 제1프로세서보드(10)에 송신한다. 이 때 제1프로세서보드(10)는 데이타 수신을 완료할 때까지 시스템버스를 점유하고 기다린 후에 데이타 수신이 완료되면 다른 전송명령을 수행한다.In FIG. 1A, when the first processor board 10 wants to read data from the second processor board 12, the first processor board 10 first requests a bus for the address bus and acquires a bus by bus arbitration. After the read command is sent to the second processor board 12, the second processor board 12 transmits data to the first processor board 10. At this time, the first processor board 10 occupies the system bus and waits until the data reception is completed, and then performs another transfer command when the data reception is completed.

이 경우 전송명령을 수행 중일 때는 시스템버스를 계속 점유하고 있기 때문에 다른 프로세서는 시스템버스를 이용할 수 없기 때문에 데이타 전송 효율이 떨어진다.In this case, since the system bus is still occupied while the transfer command is being executed, the data transfer efficiency is inferior because other processors cannot use the system bus.

제1b도는 미국 특허번호 US005191649인 종래의 비순차응답방식을 도시한 것으로서, 비순차응답방식은 일단 수신하고자 하는 프로세서보드가 버스를 계속 점유하지 않고 버스사용을 해제한 후, 송신하고자 하는 프로세서 보드가 송신 데이타를 준비하면 송신가능명령 즉,읽기응답명령을 보내어 버스를 연결하여 데이타를 송신하는 방식으로서 다음과 같은 과정으로 동작한다.FIG. 1B illustrates a conventional non-sequential response method of US Patent No. US005191649. In the non-sequential response method, once the processor board to receive does not occupy the bus and releases the bus, the processor board to transmit When the send data is prepared, the sendable command, that is, the read response command, is used to connect the bus and transmit the data.

먼저 제1b도의 제1프로세서보드(14)에서 제2프로세서보드(16)의 데이타를 읽고자 할 때, 제1프로세서보드(14)는 시스템버스에 대해 우선 버스요구를 하고 버스중재를 통하여 시스템버스를 획득한다. 그리고 나서 읽기명령을 제2프로세서보드(16)에 보내고 시스템버스 점유를 해제하면 제2프로세서보드(16)는 송신할 데이타를 준비한 후 시스템버스에 대한 버스요구를 하고, 버스 중재를 통해 시스템버스가 획득되면 읽기응답명령을 제1프로세서보드(14)에 송신하고 데이타를 송신한다.When first reading data of the second processor board 16 from the first processor board 14 of FIG. 1B, the first processor board 14 first requests a bus for the system bus and then the system bus through the bus arbitration. Acquire. Then, when a read command is sent to the second processor board 16 and the system bus is released, the second processor board 16 prepares data to be transmitted and then makes a bus request to the system bus. If obtained, a read response command is sent to the first processor board 14 and data is transmitted.

상기와 같은 종래 기술의 문제점은 멀티프로세서 시스템에서 각 프로세서 보드에 중재기가 한 개만 있기 때문에 동시에 명령과 데이타 송수신을 수행할 수 없고, 비순차응답방식시 불필요한 읽기응답 명령을 송신함으로 인해 데이타전송 효율이 크게 저하된다.The problem of the prior art as described above is that in a multiprocessor system, since there is only one arbiter in each processor board, it is impossible to simultaneously transmit and receive commands and data, and data transmission efficiency is increased by transmitting unnecessary read response commands in a non-sequential response method. It is greatly reduced.

상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 멀티프로세서 시스템에 있어서 비순차응답방식으로 데이타를 처리할 경우 혹은 필요 데이타 전송지연이 발생할 경우에 읽기응답 명령없이 데이타를 전송하는 멀티프로세서 시스템의 버스 프로토콜 제어기를 제공함에 있다.An object of the present invention for solving the above problems is a bus of a multiprocessor system that transmits data without a read response command when processing data in a nonsequential response method or when a necessary data transmission delay occurs in a multiprocessor system. In providing a protocol controller.

본 발명의 다른 목적은 멀티프로세서 시스템에 있어서 비순차응답방식으로 데이타를 처리할 경우 또는 필요 데이타 전송지연이 발생할 경우에 읽기응답 명령없이 데이타를 전송하는 멀티프로세서 시스템의 읽기 싸이클의 데이타 전송방법을 제공하는데 있다.Another object of the present invention is to provide a data transmission method of a read cycle of a multiprocessor system that transmits data without a read response command when processing data in a non-sequential response method or when a necessary data transmission delay occurs in a multiprocessor system. It is.

본 발명의 또 다른 목적은 멀티프로세서 시스템에 있어서 비순차응답방식으로 데이타를 처리할 경우 또는 필요 데이타 전송지연이 발생할 경우 멀티프로세서 시스템의 쓰기싸이클의 데이타 전송방법을 제공하는 데 있다.Another object of the present invention is to provide a data transfer method of a write cycle of a multiprocessor system when data is processed in a nonsequential response method or a required data transfer delay occurs in a multiprocessor system.

상기의 목적을 달성하기 위한 멀티프로세서 시스템에 있어서의 버스 프로토콜 제어기는 프로세서보드내에서 마이크로 프로세서(CPU)의 제어신호들과 프로토콜 제어기 내의 각 기능블럭을 인터페이스하는 내부버스연결기;A bus protocol controller in a multiprocessor system for achieving the above object includes an internal bus connector for interfacing control signals of a microprocessor (CPU) and respective function blocks in a protocol controller in a processor board;

상기 내부버스연결기로부터 유입된 제어신호에 의하여 프로토콜의 어드레스 정보를 생성하는 명령어 발생기;A command generator for generating address information of a protocol according to a control signal introduced from the internal bus connector;

상기 내부버스연결기로부터 어드레스버스 요구신호 또는 데이타전송 준비 완료신호가 유입되면 우선순위방식에 의하여 시스템버스를 중재하는 중재기;An arbiter for arbitrating a system bus by a priority method when an address bus request signal or a data transmission ready signal is received from the internal bus connector;

상기 내부버스연결기로부터 유입된 명령에 의하여 단일 어드레스의 데이타를 읽고난 후 이어서 단일 어드레스의 데이타의 쓰기 동작을 제어하는 RMC 제어기;An RMC controller which reads data of a single address by a command introduced from the internal bus connector and subsequently controls a write operation of data of a single address;

상기 중재기에서 중재를 하여 시스템 버스를 점유하면 데이타전송 명령에 의하여 읽기와 쓰기 명령을 수행하는 프로토콜상태 천이기; 및A protocol state transition to perform read and write commands by a data transfer command when the arbitrator arbitrates and occupies a system bus; And

상기 중재기, 상기 RMC제어기, 상기 명령어 발생기 및 상기 프로토콜 천이기로 데이타 전송을 위한 송신 및 수신클럭과 상태천이를 위한 클럭을 발생시키는 클럭발생기를 포함함을 특징으로 하여 이루어진다.And a clock generator for generating a transmission and reception clock for data transmission and a clock for state transition to the arbiter, the RMC controller, the command generator, and the protocol transition.

그리고 상기 멀티프로세서 시스템에 있어서의 버스프로토콜 제어기는 시스템버스 사용중 에러발생을 알리고 어드레스버스 중재시 어드레스를 점유와 재시도하는 신호를 계수하여 어드레스버스 중재를 통한 시스템버스 측정 기능을 갖는 응용기를 더 구비함을 특징으로 한다.The bus protocol controller in the multiprocessor system further includes an application having a system bus measurement function through address bus arbitration by notifying an error occurrence during the use of the system bus and counting a signal to occupy and retry an address during mediation. It is characterized by.

그리고 상기 멀티프로세서 시스템에 있어서의 버스프로토콜 제어기에 있어서, 상기 RMC제어기는 이미 RMC 명령이 수행중일 때 매 시스템 버스 클럭마다 어드레스를 래치하여 저장하는 시스템 어드레스 레지스터;And a bus protocol controller in said multiprocessor system, said RMC controller comprising: a system address register for latching and storing an address at every system bus clock when an RMC instruction is already being executed;

마스터 프로세서 보드의 이미 수행중인 RMC 동작의 해당 어드레스를 저장하는 로칼 어드레스 레지스터; 및A local address register that stores a corresponding address of an RMC operation already performed on the master processor board; And

상기 시스템 어드레스 레지스터와 상기 로칼 어드레스 레지스터를 비교하여 같으면 다른 마스터 프로세서 보드의 RMC 동작을 금지하는 신호(SRMCBSY 신호)를 발생하는 RMCBUSY신호 발생기를 포함함을 특징으로 한다.And a RMCBUSY signal generator for comparing the system address register with the local address register and generating a signal (SRMCBSY signal) for inhibiting RMC operation of another master processor board if the same.

그리고 상기 멀티프로세서 시스템에 있어서의 버스프로토콜 제어기에 있어서, 상기 프로토콜상태 천이기는And in the bus protocol controller in the multiprocessor system, the protocol state transition

마스터 프로세서 보드가 슬레이브 프로세서 보드로 단일 어드레스 및 복수 어드레스의 데이타를 읽어 들이는 어드레스 및 읽기상태 천이기; 및An address and read state transition in which the master processor board reads data of a single address and a plurality of addresses from the slave processor board; And

마스터 프로세서 보드가 슬레이브 프로세서 보드로 단일 어드레스 및 복수 어드레스의 데이타를 쓰는 쓰기상태 천이기로 구성됨을 특징으로 한다.The master processor board is configured as a write state transition to write data of a single address and a plurality of addresses to the slave processor board.

그리고 상기 멀티프로세서 시스템에 있어서의 버스프로토콜 제어기에 있어서, 상기 중재기는And in the bus protocol controller in the multiprocessor system, the arbiter

어드레스 버스를 중재하는 어드레스버스 중재기; 및An address bus arbiter for arbitrating the address bus; And

데이타버스를 중재하는 데이타버스 중재기를 구비함을 특징으로 한다.And a data bus arbiter for arbitrating the data bus.

또한 상기 중재기는 어드레스버스와 데이타버스중재를 어드레스 중재기와 데이타버스 중재기에서 별도로 중재하여 전송명령과 데이타송수신을 분리하여 수행함을 특징으로 한다.In addition, the arbiter may arbitrate the address bus and the data bus arbitration separately from the address arbiter and the data bus arbiter to separate the transmission command and the data transmission and reception.

그리고 상기 멀티프로세서 시스템에 있어서의 버스프로토콜제어기는 상기 프로토콜상태 천이기를 소프트웨어적으로 중재없이 구동시키거나 시스템버스에서 상태를 기록하는 명령상태 레지스터를 더 구비함을 특징으로 한다.The bus protocol controller in the multiprocessor system may further include a command status register for driving the protocol state transition without software intervention or recording a state on the system bus.

그리고 상기 멀티프로세서 시스템에 있어서의 버스프로토콜제어기에 있어서, 상기 버스프로토콜 제어기는And a bus protocol controller in the multiprocessor system, wherein the bus protocol controller

단일 어드레스의 데이타를 읽는 단일읽기;A single read that reads data at a single address;

단일 어드레스의 데이타를 쓰는 단일쓰기;Single write to write data of a single address;

복스의 어드레스의 데이타를 읽는 복수읽기;Plural reads for reading the data of the address of the box;

복수의 어드레스의 데이타를 쓰는 복수쓰기; 및Plural writes to write data of plural addresses; And

단일 어드레스의 데이타를 읽고 나서 이어서 단일 어드레스의 데이타를 쓰는 RMC 싸이클로 데이타를 전송함을 특징으로 한다.Read data of a single address and then transfer the data to the RMC cycle to write data of a single address.

한편 상기 본 발명의 다른 목적을 달성하기 위한 멀티프로세서 시스템의 비순차응답방식 읽기싸이클의 데이타 전송방법은On the other hand, a data transmission method of a non-sequential response type read cycle of a multiprocessor system for achieving the another object of the present invention is

마스터 프로세서보드에서 어드레스버스 사용을 요구하고 어드레스버스 요구를 우선순위에 의하여 중재하는 단계;Requesting use of the address bus at the master processor board and arbitrating the address bus request by priority;

상기 중재에 의하여 어드레스버스를 점유하게 되면 어드레스정보를 슬레이브 프로세서보드에 송신하는 단계;Transmitting address information to a slave processor board when the address bus is occupied by the arbitration;

상기 어드레스정보를 수신한 후 이상유무 상태를 마스터 프로세서보드에 응답하는 단계;Responding to the master processor board whether there is an abnormal state after receiving the address information;

읽기데이타의 송신준비가 완료되면 데이타버스 사용을 요구하고 우선순위에 의하여 데이타버스의 점유를 중재하는 단계;Requesting the use of the data bus when the read data is ready to be transmitted and mediating the occupation of the data bus according to priority;

상기 데이타버스 중재단계에서 데이타버스를 점유하였을 경우에 슬레이브 프로세서보드에서 수신측인 마스터 프로세서보드에 데이타정보를 송신하는 단계; 및Transmitting data information from a slave processor board to a master processor board at a receiving end when the data bus is occupied in the data bus arbitration step; And

상기 슬레이브 프로세서보드로부터 데이타를 수신한 마스터 프로세서보드가 데이타를 수신한 후 이상유무 상태를 슬레이브 프로세서보드에 응답하는 단계를 포함함을 특징으로 한다.The master processor board receiving the data from the slave processor board after receiving the data characterized in that it comprises the step of responding to the slave processor board status.

그리고 상기 멀티프로세서 시스템의 비순차응답방식 읽기싸이클의 데이타 전송방법에 있어서, 복수단위의 데이타를 전송시에는 한 단위의 데이타를 전송시마다 상기 어드레스정보에 포함된 전송데이타의 크기를 역으로 카운트하여 0이 될 때까지 연속하여 데이타를 송신함을 특징으로 한다.In the data transmission method of a non-sequential response type read cycle of the multiprocessor system, when a plurality of units of data are transmitted, the size of the transmission data included in the address information is counted inversely every time one unit of data is transferred. It is characterized in that the data is transmitted continuously until it is.

그리고 상기 멀티프로세서 시스템의 비순차응답방식 읽기싸이클의 데이타 전송방법에 있어서, 상기 어드레스정보는In the data transmission method of a non-sequential response type read cycle of the multiprocessor system, the address information

어드레스와 전송형태, 송신마스터 프로세서보드 번호, 전송데이타의 크기의 정보를 포함함을 특징으로 한다.It includes information on the address, transmission type, transmission master processor board number, and transmission data size.

그리고 상기 멀티프로세서 시스템의 비순차응답방식 읽기싸이클의 데이타 전송방법에 있어서, 상기 이상유무 상태를 응답하는 단계에서 상태정보는 정상, 에러, 재전송 정보임을 특징으로 한다.In the data transmission method of a non-sequential response type read cycle of the multiprocessor system, the status information in the step of responding to the abnormal status is characterized in that the normal, error, retransmission information.

그리고 상기 멀티프로세서 시스템의 비순차응답방식 읽기싸이클의 데이타 전송방법에 있어서, 상기 데이타정보는 읽기명령을 송신한 마스터프로세서보드의 번호임을 특징으로 한다.In the data transmission method of a non-sequential response type read cycle of the multiprocessor system, the data information is a number of a master processor board that has transmitted a read command.

한편 상기 본 발명의 또 다른 목적을 달성하기 위한 멀티프로세서 시스템의 비순차응답방식 쓰기싸이클의 데이타 전송방법은Meanwhile, a data transmission method of a non-sequential response type write cycle of a multiprocessor system for achieving another object of the present invention is

마스터 프로세서보드에서 어드레스버스 사용을 요구하고 어드레스버스 요구를 우선순위에 의하여 중재하는 단계;Requesting use of the address bus at the master processor board and arbitrating the address bus request by priority;

상기 중재에 의하여 어드레스버스를 점유하게 되면 어드레스정보를 슬레이브 프로세서보드에 송신하는 단계;Transmitting address information to a slave processor board when the address bus is occupied by the arbitration;

상기 어드레스정보를 수신한 후 이상유무 상태를 마스터프로세서보드에 송신하는 응답단계;A response step of transmitting a status of abnormality to a master processor board after receiving the address information;

마스터 프로세서에서 데이타를 슬레이브 프로세서보드에 송신하는 단계; 및Transmitting data from the master processor to the slave processor board; And

슬레이브 프로세서보드에서 데이타를 수신 후 이상유무 상태를 마스터 프로세서보드에 송신하는 단계를 포함함을 특징으로 한다.And transmitting a status of abnormality to the master processor board after receiving data from the slave processor board.

그리고 상기 멀티프로세서 시스템의 비순차응답방식 쓰기싸이클의 데이타 전송방법에 있어서, 복수단위의 데이타를 전송시에는 한 단위의 데이타를 전송시마다 상기 어드레스정보에 포함된 전송데이타의 크기를 역으로 카운트하여 0이 될 때까지 연속하여 데이타를 송신함을 특징으로 한다.In the data transmission method of a non-sequential response type write cycle of the multiprocessor system, when a plurality of units of data are transmitted, the size of the transmission data included in the address information is counted inversely every time one unit of data is transferred. It is characterized in that the data is transmitted continuously until it is.

그리고 상기 멀티프로세서 시스템의 비순차응답방식 쓰기싸이클의 데이타 전송방법에 있어서, 상기 이상유무 상태를 응답하는 단계에서 상태정보는 정상, 에러, 재전송 정보임을 특징으로 한다.In the data transmission method of a non-sequential response type write cycle of the multiprocessor system, the status information in the step of responding to the abnormal status is characterized in that the normal, error, retransmission information.

그리고 상기 멀티프로세서 시스템의 비순차응답방식 쓰기싸이클의 데이타 전송방법에 있어서, 상기 어드레스정보는In the data transmission method of a non-sequential response type write cycle of the multiprocessor system, the address information

어드레스와 전송형태, 송신마스터 프로세서보드 번호, 전송데이타의 크기의 정보를 포함함을 특징으로 한다.It includes information on the address, transmission type, transmission master processor board number, and transmission data size.

이하에서 첨부된 도면을 참조하여 본 발명을 상세히 설명한다. 본 발명은 각기 프로세서를 장착한 복수 개의 프로세서 보드가 버스방식으로 서로 연결된 멀티프로세서 시스템에 있어서, 각 프로세서 보드가 시스템버스의 데이타 전송 프로토콜을 만족시키면서 시스템버스를 사용하게 하도록 하기 위해 각 프로세서 보드를 제어하는 버스 프로토콜 제어기 및 데이타 전송 방법에 관한 것이다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings. In the present invention, a multiprocessor system in which a plurality of processor boards each including a processor is connected to each other by a bus method, controls each processor board so that each processor board can use the system bus while satisfying the data transfer protocol of the system bus. The present invention relates to a bus protocol controller and a data transmission method.

제2도는 본 발명에 따른 버스프로토콜 제어기의 구성을 보이는 블럭도로서, 상기 버스프로토콜 제어기는 CPU 인터페이스부(200),내부버스 연결기(210), 중재기(220), RMC 제어기(230), 프로토콜 상태천이기(240), 명령어 상태 레지스터(250), 명령어 발생기(260), 클럭발생기(270) 및 응용기(280)로 이루어져 있다.2 is a block diagram showing the configuration of a bus protocol controller according to the present invention, wherein the bus protocol controller includes a CPU interface unit 200, an internal bus connector 210, an arbiter 220, an RMC controller 230, and a protocol. It is composed of a state shifter 240, an instruction status register 250, an instruction generator 260, a clock generator 270, and an application 280.

상기 내부버스 연결기(210)는 인터페이스 역할을 하는 블럭으로서, 상기 CPU 인터페이스(200)와 상기 RMC제어기(230), 상기 중재기(220), 상기 프로토콜 상태천이기(240), 상기 명령어 상태 레지스터(250) 및 상기 명령어 발생기(260)를 인터페이스한다.The internal bus connector 210 is a block acting as an interface, and includes the CPU interface 200, the RMC controller 230, the arbiter 220, the protocol state processor 240, and the command status register ( 250) and the command generator 260.

상기 내부버스연결기(210)를 보다 자세히 설명하기 위한 블럭도는 제3도에 도시되어 있으며, 여기서 LMS 신호는 프로세서보드가 읽기 또는 쓰기로 명령을 송신하는 마스터(Master)인지 아니면 마스터의 명령에 따라 데이타를 송수신하는 슬레이브(Slave)인지를 나타내는 신호이다. 이 신호가 하이(high)일 경우에는 프로세서 보드가 마스터임을 의미하고 로(low)일 경우는 슬레이브 임을 의미하며, 마스터 프로세서 보드의 CPU 인터페이스부(200)에서 출력된다.A block diagram for explaining the internal bus connector 210 in more detail is shown in FIG. 3, where the LMS signal is a master in which the processor board sends a command by reading or writing or according to the command of the master. This signal indicates whether the slave is transmitting or receiving data. When this signal is high, it means that the processor board is a master, and when it is low, it means that it is a slave, and is output from the CPU interface unit 200 of the master processor board.

LRW 신호는 마스터 프로세서보드의 CPU 인터페이스부(200)에서 출력되는 읽기/쓰기 명령을 구분하는 신호로서, 읽기명령을 수행할 때는 하이(high)가 되고 쓰기명령을 수행할 때는 로(low)로 된다.The LRW signal is a signal for distinguishing read / write commands output from the CPU interface unit 200 of the master processor board. The LRW signal becomes high when a read command is executed and becomes low when a write command is performed. .

LSTX* 신호는 마스터 프로세서 보드의 CPU 인터페이스부(200)에서 출력되는 신호로서, 데이타 전송이 한 번에 한 어드레스의 데이타를 전송할 때에 인에이블(enable)되는 신호인 반면에 LBTX* 신호는 한번에 다수의 어드레스의 데이타를 전송할 때에 인에이블되는 신호이다.The LSTX * signal is a signal output from the CPU interface unit 200 of the master processor board. While the data transmission is an enable signal when transmitting data of one address at a time, the LBTX * signal is multiple at a time. This signal is enabled when transferring data of an address.

LRMC* 신호는 마스터 프로세서 보드의 CPU 인터페이스부(200)가 한번에 데이타 전송에 있어서 해당 어드레스의 데이타를 읽은 후 연속해서 데이타 쓰기를 수행하고자 할 때 인에이블되는 신호이다.The LRMC * signal is enabled when the CPU interface unit 200 of the master processor board attempts to continuously write data after reading data at the corresponding address in data transmission at once.

LCS* 신호는 마스터 프로세서 보드의 CPU 인터페이스부(200)가 버스프로토콜 제어기의 상기 명령어 상태 레지스터(250)를 액서스 하기 위해 사용하는 칩선택 제어신호이다.The LCS * signal is a chip select control signal used by the CPU interface 200 of the master processor board to access the command status register 250 of the bus protocol controller.

LDATA[L:0]는 상기 명령어 상태레지스터(250)의 값을 읽고 쓸때에 사용하기 위한 내부데이타버스이다.LDATA [L: 0] is an internal data for use in reading and writing the value of the command status register 250.

한편 SRGO 신호는 내부버스연결기(210)의 출력신호로서, 마스터 프로세서보드가 슬레이브 프로세서보드로부터 하나의 어드레스의 데이타를 읽을 때 인에이블되는 전송명령이고, SWGO 신호는 마스터 프로세서보드가 하나의 어드레스의 데이타를 슬레이브 프로세서보드에 쓰고자 할 때에 인에이블되는 전송명령이다.The SRGO signal is an output signal of the internal bus connector 210. The SRGO signal is a transfer command enabled when the master processor board reads data of one address from the slave processor board, and the SWGO signal is data of one address of the master processor board. Is a transfer command that is enabled when writing to the slave processor board.

반면에 BRGO는 마스터 프로세서보드가 슬레이브 프로세서보드로부터 다수의 어드레스의 데이타를 읽기하기 위한 전송명령이고, BWGO는 마스터 프로세서보드가 슬레이브 프로세서보드에 다수의 어드레스의 데이타를 쓰기하기 위한 전송명령이다.On the other hand, BRGO is a transfer command for the master processor board to read a plurality of addresses of data from the slave processor board, and BWGO is a transfer command for the master processor board to write a plurality of addresses of data to the slave processor board.

RMC 신호는 읽기와 쓰기 동작이 연속해서 발생하여 하나의 전송싸이클을 이루는 일종의 잠금(locking) 신호로서, 슬레이브 프로세서보드의 데이타를 읽은 후에 연속하여 데이타를 쓰고자 할 때에 발생되는 전송명령이다.RMC signal is a kind of locking signal that reads and writes continuously and forms a transmission cycle. It is a transfer command generated when data is continuously written after reading data from the slave processor board.

RQ 신호는 시스템버스를 요구할 때에 사용되는 신호로서, 상기 SRGO, BRGO, BWGO, RMC 신호 중 하나의 명령이 발생한 경우에 인에이블된다.The RQ signal is used when requesting a system bus, and is enabled when one of the SRGO, BRGO, BWGO, and RMC signals occurs.

LSRDY* 신호는 프로세서보드가 슬레이브로 동작할 경우 마스터 프로세서보드에서 출력된 읽기와 쓰기 명령신호에 대한 슬레이브 프로세서보드의 응답신호이다.The LSRDY * signal is a response signal of the slave processor board to read and write command signals output from the master processor board when the processor board operates as a slave.

RDY 신호는 CPU 인터페이스부(200)로부터 상기 LSRDY* 신호를 받아 내부버스연결기(210)가 출력하는 신호로서, 다른 마스터 프로세서보드가 읽기명령을 보낸 후 이에 대한 응답으로 슬레이브 프로세서보드가 마스터 프로세서보드로 데이타를 송신할 준비가 완료되었음을 나타낼 때 사용된다.The RDY signal is a signal output from the internal bus connector 210 by receiving the LSRDY * signal from the CPU interface unit 200, and the slave processor board returns to the master processor board in response to the read command from another master processor board. Used to indicate that data is ready to be sent.

LOK* 신호는 데이타 전송이 정상적으로 종료되었을 시에 발생되는 신호이고, LERR* 신호는 전송시 에러가 발생하였을 경우에 발생하며, LRTY* 신호는 데이타를 전송한 후에 재전송이 필요할 경우 인에이블된다.The LOK * signal is generated when data transmission is normally completed. The LERR * signal is generated when an error occurs during transmission. The LRTY * signal is enabled when retransmission is required after transmitting data.

한편, 중재기(220)는 여러 개의 프로세서 보드가 시스템 버스를 사용하고자 할 경우 이를 중재하는 블럭으로서, 제4도에 도시된 바와 같이 어드레스버스 중재기(222)와 데이타버스 중재기(224)로 이루어진다.Meanwhile, the arbiter 220 is a block for arbitrating when a plurality of processor boards want to use a system bus. As shown in FIG. 4, the arbiter 220 may include an address bus arbiter 222 and a data bus arbiter 224. Is done.

어드레스버스 중재기(222)는 각 프로세스 보드가 시스템버스의 어드레스 버스를 사용하고자 할 때 어드레스 버스를 중재하는 것으로서, 제3도의 상기 SRGO, BRGO, SWGO, BWGO 및 RMC 신호 중 하나의 명령이 발생하면 상기 내부버스연결기(210)에서 출력되는 RQ 신호가 어드레스버스 중재기(222)에 입력되고, 우선순위방식에 따라 중재를 수행한다. 각 프로세서보드는 어드레스버스를 요구하는 RQ 신호를 가지고 있으며 SARQ[N:0] 신호는 각 프로세서보드에 하나씩 할당되어 출력되는 어드레스버스 요구신호이다. AWIN 신호는 어드레스 요구신호 RQ에 따라 어드레스버스 중재를 하여 어드레스버스를 점유했을 경우에 어드레스 중재기(222)에서 발생되는 신호로서, CPU 인터페이스부(200)로 송신된다. 그리고 ARTY 신호는 어드레스버스 중재 결과 어드레스버스를 점유하지 못하였을 경우에 어드레스버스 중재를 재시도하기 위하여 발생되는 신호로서, CPU 인터페이스부(200)로 송신된다.The address bus arbiter 222 arbitrates the address bus when each process board intends to use the address bus of the system bus, and when one of the SRGO, BRGO, SWGO, BWGO and RMC signals of FIG. The RQ signal output from the internal bus connector 210 is input to the address bus arbiter 222 and performs arbitration according to a priority scheme. Each processor board has an RQ signal for requesting an address bus, and the SARQ [N: 0] signal is an address bus request signal that is assigned and output one by one for each processor board. The AWIN signal is a signal generated by the address arbiter 222 when the address bus arbitrates in accordance with the address request signal RQ and occupies the address bus, and is transmitted to the CPU interface unit 200. The ARTY signal is a signal generated to retry the address bus arbitration when the bus has not occupied the address bus as a result of the address bus arbitration and is transmitted to the CPU interface unit 200.

데이타버스 중재기(224)는 프로세서보드가 슬레이브로 작동시에 시스템버스의 데이타 버스에 대한 시용권을 중재하는 블럭으로서, 다음과 같은 과정으로 중재가 이루어진다. 먼저 슬레이브 프로세서 보드는 마스터 프로세서보드에서 출력되는 읽기 또는 쓰기 전송명령을 받아들여 해당 전송할 데이타가 준비된 경우에, 내부버스연결기(210)에서 출력되는 RDY 신호가 들어오면 다른 프로세서보드의 데이타버스 요구신호 SDRQ[M:0]들을 받아 들여 자신의 데이타버스 요구신호와 비교를 한다. 이 때, 자신의 프로세서보드가 우선순위가 가장 높으면 데이타버스를 점유하고 데이타버스를 점유했다는 DWIN 신호를 CPU 인터페이스부(200)로 출력한다.The data bus arbiter 224 is a block that arbitrates the right to use the data bus of the system bus when the processor board operates as a slave, and arbitration is performed as follows. First, when the slave processor board receives a read or write transfer command output from the master processor board and the corresponding data is ready, when the RDY signal output from the internal bus connector 210 is received, the data bus request signal SDRQ of another processor board is received. Take [M: 0] and compare it with its data bus request signal. At this time, if its own processor board has the highest priority, it outputs a DWIN signal to the CPU interface unit 200 that occupies the data bus and occupies the data bus.

따라서, 본 발명에 따른 버스프로토콜 중재기는 마스터와 슬레이브의 기능을 모두 제공한다.Thus, the bus protocol arbiter according to the present invention provides both master and slave functions.

한편, 데이타버스 중재기(224)는 내부버스연결기(210)에서 출력되는 RDY 신호가 유입되면 다른 프로세서보드에서 출력되는 데이타버스 요구신호 SDRQ[M:0]와 비교하여 자신의 프로세서보드가 우선 순위가 가장 높지 않을 경우에는, 데이타버스 중재를 다시 시도한다는 DRTY 신호를 CPU 인터페이스부(200)로 출력하고 데이타버스 중재를 재 시도한다.Meanwhile, when the RDY signal output from the internal bus connector 210 is introduced, the data bus arbiter 224 has its own processor board priority compared to the data bus request signal SDRQ [M: 0] output from another processor board. If is not the highest, output the DRTY signal to the CPU interface unit 200 to retry databus arbitration and retry databus arbitration.

한편, RMC 제어기(230)는 마스터 프로세서보드가 RMC(Read Modifided Cycle)동작을 수행하고자 할 때 이를 버스 프로토콜에 맞게 제어하는 블럭으로서, 제5도에 그 블럭도가 도시되어 있다. 여기서 시스템 어드레스 레지스터(238)는 이미 RMC 명령이 수행중일 때 매 시스템 버스 클럭마다 어드레스를 래치하여 저장하며, 로칼 어드레스 레지스터(236)은 마스터 프로세서 보드의 이미 수행중인 RMC 동작의 해당 어드레스를 저장한다. 그리고, RMCBUSY 신호 발생기(234)는 상기 시스템 어드레스 레지터(238)와 상기 로칼 어드레스 레지스터(236)를 비교하여 같으면 다른 마스터 프로세서 보드의 RMC 동작을 금지하는 신호(SRMCBSY)를 발생한다. RMC WIN 레지스터(232)는 자기 프로세서 보드가 RMC를 사용하고 있는지를 나타내는 레지스터이다.Meanwhile, the RMC controller 230 is a block for controlling the master processor board according to a bus protocol when the master processor board intends to perform a read modified cycle (RMC) operation. The block diagram is illustrated in FIG. 5. Here, the system address register 238 latches and stores an address every system bus clock when an RMC command is already being executed, and the local address register 236 stores a corresponding address of an already performing RMC operation of the master processor board. In addition, the RMCBUSY signal generator 234 compares the system address register 238 with the local address register 236 and generates a signal SRMCBSY for inhibiting the RMC operation of another master processor board if they are the same. The RMC WIN register 232 is a register indicating whether the magnetic processor board is using the RMC.

한편 상기 RMC 제어기(230)의 동작은 다음과 같이 이루어진다. 먼저 내부버스연결기(210)에서 출력되어 RMC 수행을 명령하는 RMC 신호가 RMC 제어기(230)로 입력되면, 액세스하고자 하는 슬레이브의 어드레스를 내부 어드레스 버스(LADR[P:0])를 통해 로칼 어드레스 레지스터(236)에 저장시켜두고, 시스템 버스(SADR[R:0])에 같은 어드레스를 출력한다.Meanwhile, the operation of the RMC controller 230 is performed as follows. First, when the RMC signal output from the internal bus connector 210 to command the RMC is input to the RMC controller 230, the address of the slave to be accessed is input via the internal address bus LADR [P: 0] to the local address register. The same address is stored on the system bus SADR [R: 0].

이 때 만일 다른 마스터 프로세서 보드가 해당 어드레스에 대해 RMC를 수행하고 있지 않으면, 즉 인에이블된 SRMCBSY 신호가 없으면 자기 프로세서 보드 내부에서 RMC를 사용하고 있음을 나타내는 레지스터인 RMC WIN 레지스터(232)를 세팅시켜 놓고 RMC를 수행한 후, RMC 수행이 끝나면 RMC WIN 레지스터(232)를 리셋시킨다.At this time, if another master processor board is not performing RMC for the corresponding address, that is, if there is no enabled SRMCBSY signal, the RMC WIN register 232, which is a register indicating that the RMC is being used in the own processor board, is set. After performing the RMC, the RMC WIN register 232 is reset.

만일 다른 마스터 프로세서 보드가 해당 어드레스에 대해 이미 RMC를 수행하고 있는 중이라면, RMC를 수행중인 다른 마스터 프로세서보드가 SRMCBSY 신호를 인에이블시키므로 RMC를 수행하지 못하게 된다. 그리고 이 때 자신의 RMC WIN 레지스터(232)가 리셋되어 있으면 RMC를 다시 시도하라는 신호인 RMCRTY 신호를 인에이블 시켜 CPU 인터페이스부(200)으로 출력하고, SRMCBSY 신호가 디스에이블(disable)될 때까지 기다린다.If another master processor board is already performing the RMC for the corresponding address, the other master processor board executing the RMC enables the SRMCBSY signal and thus cannot perform the RMC. If the RMC WIN register 232 is reset at this time, the RMCRTY signal, which is a signal for retrying RMC, is enabled and output to the CPU interface unit 200, and waits until the SRMCBSY signal is disabled. .

한편 SRMCBSY 신호를 인에이블 시키는 것은 RMC 수행을 하고 있는 마스터 프로세서 보드만 할 수 있는 데, 그 과정은 다음과 같이 이루어진다. RMC를 수행하고자 할 때 해당 어드레스를 자신의 로칼 어드레스 레지스터(236)에 저장해 놓고 나서, RMC 수행 중에 매 시스템버스 클럭마다 어드레스를 시스템 어드레스 레지스터(238)에 래치하여 이를 로칼 어드레스 레지스터(236)에 저장된 어드레스와 비교를 한다. 그리하여 만일 같은 어드레스로 판명나면 RMCBUSY 신호 발생기(234)를 통해 SRMCBSY 신호를 출력하여 다른 마스터 프로세서 보드가 해당 어드레스를 액서스하지 못하게 한다.On the other hand, enabling the SRMCBSY signal can be done only by the master processor board performing RMC. The process is as follows. When the RMC is to be executed, the corresponding address is stored in its local address register 236, and then during the RMC, the address is latched in the system address register 238 at every system bus clock to store the address in the local address register 236. Compare with address. Thus, if it turns out to be the same address, it outputs the SRMCBSY signal through the RMCBUSY signal generator 234 to prevent other master processor boards from accessing that address.

한편 클럭발생기(270)는 중재기(220), RMC제어기(230), 프로토콜상태 천이기(240), 명령어 발생기(260), 명령어 상태레지스터(250)의 동작에 필요한 클럭을 공급하는 블럭으로서, 제6도에 시스템버스 통신용클럭 파형도가 도시되어 있다. 클럭발생기(270)에서 발생되는 클럭은 TXCLK클럭, RXCLK클럭, 상태천이 클럭의 3가지 클럭으로 구성되는데, 시스템버스의 데이타 전송은 두 개의 기준클럭 즉 시스템버스로 어드레스, 데이타 및 기타정보를 송신하기 위한 송신용 TXCLK클럭과 데이타를 수신하기 위한 수신용 RXCLK클럭으로 구성된다. △D는 TXCLK클럭에 맞추어 송신된 데이타가 시스템버스에서 안정된 후 RXCLK클럭에 맞추어 수신할 수 있기 위한 타임 지연기간으로 △D는 클럭주기인 △P의 사분에 삼 또는 이분에 일정도 클럭위상이 지연된다. 또한 프로토콜상태 천이기에 적용되는 상태천이 클럭은 수신용 RXCLK클럭의 반전된 클럭이 사용된다.The clock generator 270 is a block for supplying a clock required for the operation of the arbiter 220, the RMC controller 230, the protocol state shifter 240, the command generator 260, and the command state register 250. 6 shows a clock waveform diagram for system bus communication. The clock generated by the clock generator 270 is composed of three clocks: the TXCLK clock, the RXCLK clock, and the state transition clock. The data transmission on the system bus transmits address, data, and other information to the two reference clocks. It consists of a TXCLK clock for transmission and a RXCLK clock for receiving data. D is a time delay period for data transmitted in accordance with the TXCLK clock to be received in accordance with the RXCLK clock after the data is stabilized on the system bus. D is a constant clock phase delay in three or two quarters of the clock period. do. In addition, the state transition clock applied to the protocol state transition uses the inverted clock of the RXCLK clock for reception.

한편 명령어 발생기(260)는 버스프로토콜에서 마스터 프로세서보드가 슬레이브 프로세서보드를 액세스할 때 어드레스 정보를 제공하는 단계(AINFO 단계)에서 송신되는 자료를 생성하는 블럭으로서, 어드레스, 전송형태, 송신마스터 프로세서 보드번호, 전송데이타의 크기의 정보를 생성한다. 상기의 전송형태는 단일읽기와 단일쓰기, 복수읽기, 복수쓰기 및 RMC 싸이클로 구성된다.On the other hand, the instruction generator 260 is a block for generating data transmitted in the step of providing address information (AINFO step) when the master processor board accesses the slave processor board in the bus protocol, and includes an address, a transmission form, and a transmission master processor board. Generate information about the number and size of the transfer data. The above transmission type is composed of single read, single write, multiple read, multiple write and RMC cycles.

송신마스터 프로세서보드 번호는 읽기전송시 마스터 프로세서보드가 읽기명령을 송신한 다음, 해당 슬레이브 프로세서보드가 읽기명령을 송신한 마스터 프로세서보드에 데이타를 송신하기 위한 데이타 정보를 보내는 단계(DINFO 단계)에서 한다.The send master processor board number is a step in which the master processor board sends a read command during a read transmission, and then sends data information for transmitting data to the master processor board to which the corresponding slave processor board sends the read command (DINFO step). .

명령어 상태 레지스터(250)는 명령레지스터와 상태레지스터로 구성된다. 명령레지스터는 소프트웨어적으로 중재없이 프로토콜상태 천이기를 구동시키거나, 어드레스버스 중재나 데이타버스 중재만을 반복시키는 등 시험용으로 사용한다. 그리고 명령어 상태 레지스터(250)내의 상태레지스터는 시스템버스에서 후술할 버스 프로토콜의 AACK나 DACK신호 단계에서 정상, 에러, 재전송 상태를 기록했다가 소프트웨어가 읽기하여 버스상태를 알 수 있도록 한다. RMC 싸이클시 대기 및 재전송되는 상태도 기록된다. 상태레지스터에는 내부버스연결기(210)의 RQ, SRGO, SWGO, BWGO, RMC, RDY 상태가 기록된다.The instruction status register 250 is composed of an instruction register and a status register. The instruction register is used for testing purposes such as running a protocol state transition without software intervention, or repeating only addressbus arbitration or databus arbitration. The status register in the command status register 250 records the normal, error, and retransmission status at the AACK or DACK signal stage of the bus protocol to be described later on the system bus so that the software can read the bus status. Waiting and retransmission status during the RMC cycle is also recorded. In the state register, the RQ, SRGO, SWGO, BWGO, RMC, and RDY states of the internal bus connector 210 are recorded.

응용기(280)는 내부유틸리티버스를 통하여 시스템버스가 동작중임을 나타내는 작동신호와 에러발생시 에러를 나타내는 ERR 신호를 출력한다.The application 280 outputs an operation signal indicating that the system bus is operating and an ERR signal indicating an error when an error occurs through the internal utility bus.

또한, 어드레스버스 중재시 어드레스를 점유한 신호인 AWIN과 어드레스 점유를 재시도하는 신호인 ARTY를 계수하여 어드레스중재를 통한 시스템버스 측정용으로 사용된다. 상기의 계수된 값은 소프트웨어가 읽기 할 수 있다.In addition, AWIN, which is a signal occupying an address, and ARTY, which is a signal retrying to occupy an address, are counted and used for system bus measurement through address arbitration. The counted values are software readable.

프로토콜상태 천이기(240)는 시스템 버스 프로토콜에 맞게 읽기/쓰기, RMC 동작을 할 수 있도록 버스 프로토콜의 각 단계별로 제어를 수행하는 제어 블럭으로서, 어드레스 및 읽기상태 천이기와 쓰기상태 천이기의 2가지로 구성된다.The protocol state transition unit 240 is a control block that controls each stage of the bus protocol to perform read / write and RMC operations according to the system bus protocol, and includes two types of addresses, read state transitions, and write state transitions. It consists of.

프로토콜 상태 천이기(240)를 설명하기 전에 먼저 프로토콜 상태천이기(240)의 기초가 되는 시스템 버스의 프로토콜을 제7도를 참조하여 설명하기로 한다. 제7도는 본 발명에 따른 버스프로토콜 제어기의 시스템버스 프로토콜도이다. 여기서 M과 S는 각각 마스터와 슬레이브 프로세서 보드측의 송신을 나타낸다. 시스템버스의 통신프로토콜은 단일읽기, 단일쓰기, 복수읽기, 복수쓰기 및 RMC 싸이클의 다섯 가지로 구성된다. 먼저 상기 다섯 가지의 프로토콜의 세부 구성 요소들을 설명하기로 한다.Before describing the protocol state shifter 240, the protocol of the system bus that is the basis of the protocol state shifter 240 will be described with reference to FIG. 7 is a system bus protocol diagram of a bus protocol controller according to the present invention. Where M and S represent transmissions on the master and slave processor boards respectively. There are five communication protocols on the system bus: single read, single write, multi-read, multi-write and RMC cycles. First, detailed components of the five protocols will be described.

AINFO 단계는 마스터 프로세서 보드가 슬레이브 프로세서 보드에게 어드레스정보를 송신하는 단계로서, 어드레스 정보는 전송 어드레스, 전송형태, 송신 마스터 프로세서보드 번호, 전송데이타 크기를 포함한다. ARQ# 단계는 마스터 프로세서 보드가 슬레이브 프로세서보드의 데이타를 읽기 또는 쓰기시에 액세스하기 위한 어드레스버스 요구 단계이다.In the AINFO step, the master processor board transmits address information to the slave processor board. The address information includes a transmission address, a transmission type, a transmission master processor board number, and a transmission data size. The ARQ # step is an address bus request step for the master processor board to access data when reading or writing the slave processor board.

AACK 단계는 슬레이브 프로세서보드들의 AINFO 단계에서 수신한 자료를 에러없이 잘 받았다고 마스터에 보내는 응답단계이다. 또한 이 단계는 에러 및 재전송의 메세지를 보낼 수도 있으며, 이 단계에서 RMC제어기의 SRMCBSY 신호가 상태레지스에 기록된다.The AACK step is a response step in which the master receives the data received in the AINFO step of the slave processor boards without error. This step can also send messages of errors and retransmissions, where the SRMCBSY signal from the RMC controller is written to the status register.

DRQ# 단계는 마스터 프로세서 보드로부터 읽기명령을 받고 슬레리이브 프로세서보드에서 해당 어드레스의 데이타를 준비하여 송신하고자 할 때 데이타버스를 요구하는 중재단계이다. 그리고 DACK 단계는 데이타를 수신하는 측(마스터 프로세서보드 또는 슬레이브 프로세서보드)이 에러없이 데이타를 수신하였다고 응답하는 단계이다. DINFO 단계는 읽기전송시 슬레이브 프로세서보드가 읽기명령을 송신한 마스터 프로세서보드의 번호를 저장하였다가 송신할 데이타가 준비되면 데이타를 수신할 예정인 마스터 프로세서보드에 송신하는 단계이다.The DRQ # step is an arbitration step that requires a data bus when a read command is received from the master processor board and data is prepared and transmitted from the slave processor board. The DACK step is a step in which the receiving side (master processor board or slave processor board) receives the data without error. In the DINFO step, the slave processor board stores the number of the master processor board to which the read command has been transmitted and transmits the data to the master processor board to receive the data when the data is ready to be transmitted.

그리고 복수읽기 및 복수쓰기 수행시 데이타 크기는 복수단위로 전송되므로 도시되지 않은 데이타 단위계수기에 의한 카운터가 마스터 프로세서와 슬레이브 프로세서에서 동시에 동작한다. 상기의 동작을 위해서 AINFO 단계에서 데이타 전송크기가 슬레이브 프로세서 보드로 전송된다. 어드레스 및 읽기상태 천이기와 쓰기상태 천이기의 기준클럭은 RXCLK를 180도 위상이동 시킨 신호를 사용한다.Since the data size is transmitted in units of multiple reads and multiple writes, a counter by the data unit counter (not shown) operates simultaneously in the master processor and the slave processor. For the above operation, the data transfer size is transmitted to the slave processor board in the AINFO step. The reference clocks of the address and read state transitions and the write state transitions use a signal shifted RXCLK 180 degrees.

이상의 버스프로토콜을 구성하는 기본적인 단계를 기초로 상기 5가지의 버스 싸이클에 대한 프로토콜을 설명한다.Based on the basic steps of constructing the above bus protocols, the protocols for the above five bus cycles will be described.

먼저 단일읽기 싸이클에 대한 프로토콜은 다음과 같다. 마스터 프로세서 보드가 ARQ# 단계에서 어드레스버스를 요구하면 마스터프로세서보드의 어드레스버스 중재기(222)에서 중재를 하여 어드레스버스를 점유하고, AINFO 단계에서 데이타를 읽고자 하는 슬레이브 프로세서보드에 어드레스정보를 송신한다. AACK 단계에서는 AINFO 단계에서의 어드레스정보를 수신한 해당 슬레이브 프로세서보드가 어드레스정보를 수신하였다는 응답신호를 마스터 프로세서보드에 송신한다. 슬레이브 프로세서보드가 읽고자 하는 어드레스의 데이타를 액세스하여 데이타를 마스터 프로세서보드에 송신할 준비가 될 때까지 대기상태 단계를 거친다. 데이타를 송신할 준비가 완료되면 DRQ# 단계에서 데이타버스를 요구하고 슬레이브 프로세서보드의 데이타버스 중재기(224)에서 중재를 하여 데이타버스를 점유하고 DINFO 단계에서 슬레이브 프로세서보드에서 데이타정보 즉, 읽기명령을 한 마스터 프로세서보드의 번호를 송신하고 D0 단계에서 한 단위의 데이타를 데이타버스에 인가하여 마스터 프로세서보드로 송신한다. DACK0 단계는 마스터 프로세서보드가 데이타를 수신하였다는 응답신호를 슬레이브 프로세서보드에 송신하는 단계이다.First, the protocol for a single read cycle is: When the master processor board requests an address bus in the ARQ # stage, the master bus board arbitrates in the address bus arbiter 222 to occupy the address bus, and transmits address information to the slave processor board to read data in the AINFO stage. do. In the AACK step, the corresponding slave processor board receiving the address information in the AINFO step transmits a response signal indicating that the address information has been received to the master processor board. The slave processor board goes through a waiting state until it is ready to access the data at the address it wants to read and send the data to the master processor board. When the data is ready to be transmitted, the data bus is requested in the DRQ # stage, the data bus arbiter 224 of the slave processor board arbitrates, and the data bus is occupied. The number of one master processor board is transmitted, and at the step D0, one unit of data is applied to the data bus and transmitted to the master processor board. DACK0 is a step of transmitting a response signal indicating that the master processor board has received data to the slave processor board.

다음은 단일쓰기 싸이클에 대한 프로토콜을 설명한다. 마스터 프로세서 보드가 ARQ# 단계에서 어드레스버스를 요구하면 마스터 프로세서보드의 어드레스버스 중재기(224)에서 중재를 하여 어드레스버스를 점유하고, AINFO 단계에서 데이타를 쓰고자 하는 슬레이브 프로세서보드에 어드레스정보를 송신한다. AACK 단계에서는 AINFO 단계에서의 어드레스정보를 수신한 해당 슬레이브 프로세서보드가 어드레스정보를 수신하였다는 응답신호를 쓰기 명령을 수행하는 해당 마스터 프로세서보드에 송신한다. D0 단계에서는 마스터 프로세서보드가 수신한 AACK 단계의 슬레이브 프로세서의 응답신호를 수신하고 한 단위 데이타를 데이타버스에 인가하여 송신한다. DACK0 단계는 슬레이브 프로세서보드가 데이타를 수신하였다는 응답신호를 마스터 프로세서보드에 송신하는 단계이다.The following describes the protocol for single write cycles. When the master processor board requests the address bus in the ARQ # stage, the master bus board arbitrates in the address bus arbiter 224 to occupy the address bus, and transmits address information to the slave processor board to write data in the AINFO stage. do. In the AACK step, the corresponding slave processor board receiving the address information in the AINFO step transmits a response signal indicating that the address information has been received to the corresponding master processor board performing the write command. In the D0 stage, the master processor board receives the response signal of the slave processor in the AACK stage, and transmits one unit of data to the data bus. The DACK0 step transmits a response signal indicating that the slave processor board has received data to the master processor board.

한편 복수읽기 싸이클에 대한 프로토콜은 다음과 같다. 마스터 프로세서가 ARQ# 단계에서 어드레스버스를 요구하면 마스터 프로세서보드의 어드레스버스 중재기(222)에서 중재를 하여 어드레스버스를 점유하여, AINFO 단계에서 데이타를 읽고자 하는 슬레이브 프로세서보드에 어드레스정보를 송신한다. AACK 단계에서는 AINFO 단계에서의 어드레스정보를 수신한 해당 슬레이브 프로세서보드가 어드레스정보를 수신하였다는 응답신호를 마스터 프로세서보드에 송신한다. 슬레이브 프로세서 보드가 읽고자 하는 어드레스의 데이타를 액세스하여 데이타를 마스터 프로세서보드에 송신할 준비가 될 때까지 대기상태 단계를 거친다. 데이타를 송신할 준비가 완료되면 DRQ# 단계에서 데이타버스 요구하고 슬레이브 프로세서보드의 데이타버스 중재기(224)에서 중재를 하여 데이타버스를 점유한다. DINFO 단계에서는 슬레이브 프로세서보드에서 데이타정보 즉, 읽기명령을 한 마스터 프로세서보드의 번호를 송신하고 D0 단계에서 한 단위의 데이타를 데이타버스에 인가하여 마스터 프로세서보드로 송신한다.Meanwhile, the protocol for the multi-read cycle is as follows. When the master processor requests an address bus in the ARQ # stage, the master bus arbitrates in the address bus arbiter 222 of the master processor board, occupies the address bus, and transmits address information to the slave processor board to read data in the AINFO stage. . In the AACK step, the corresponding slave processor board receiving the address information in the AINFO step transmits a response signal indicating that the address information has been received to the master processor board. The slave processor board goes through the wait state until it is ready to access the data at the address it wants to read and send the data to the master processor board. When the data is ready to be transmitted, the data bus is requested in the DRQ # step and the data bus arbiter 224 of the slave processor board arbitrates to occupy the data bus. In the DINFO step, the slave processor board transmits data information, that is, the number of the master processor board which has read command, and in step D0, one unit of data is applied to the data bus and transmitted to the master processor board.

DACK0 단계는 마스터 프로세서보드가 D0 단계의 데이타를 수신하였다는 응답신호이고 D1 단계는 슬레이브 프로세서보드가 한 단위의 데이타를 데이타버스에 인가하여 마스터 프로세서보드로 송신한다. DACK1 단계는 마스터 프로세서보드가 D1 단계의 데이타를 수신하였다는 응답신호이고 D2 단계는 슬레이브 프로세서보드가 한 단위의 데이타를 데이타버스에 인가하여 마스터 프로세서보드로 송신한다. AINFO 단계의 어드레스정보에 포함된 읽기할 데이타의 크기에 따라 슬레이브 프로세서보드에서 마지막 Dn의 데이타를 데이타버스에 인가하여 마스터 프로세서보드로 송신하면 마스터 프로세서보드는 DACKn 단계에서 D1 단계의 데이타를 수신하였다는 응답신호를 슬레이브 프로세서보드에 송신한다.The DACK0 stage is a response signal indicating that the master processor board has received data of the D0 stage, and the D1 stage transmits data to the master processor board by applying a unit of data to the data bus. The DACK1 stage is a response signal indicating that the master processor board has received the data of the D1 stage. In the D2 stage, the slave processor board applies a unit of data to the data bus and transmits the data to the master processor board. According to the size of the data to be read included in the address information of the AINFO stage, the slave processor board applies the data of the last Dn to the data bus and transmits the data to the master processor board. Then, the master processor board receives the data of the D1 stage in the DACKn stage. Send the response signal to the slave processor board.

그리고 복수쓰기 싸이클에 대한 프로토콜은 다음과 같다. 마스터 프로세서 보드가 데이타를 쓰기 위해 ARQ# 단계의 어드레스버스를 요구하면 마스터 프로세서보드의 어드레스버스 중재기(222)에서 중재를 하여 어드레스버스를 점유한다. AINFO 단계에서는 마스터 프로세서의 데이타를 쓰고자 하는 슬레이브 프로세서보드에 어드레스정보를 송신한다. AACK 단계에서는 AINFO 단계에서의 어드레스정보를 수신한 해당 슬레이브 프로세서보드가 어드레스정보를 수신하였다는 응답신호를 마스터 프로세서보드에 송신한다.The protocol for the multiwrite cycle is as follows. When the master processor board requires an address bus in the ARQ # stage to write data, the master processor board arbitrates in the master bus board and occupies the address bus. In the AINFO step, address information is transmitted to the slave processor board to write data of the master processor. In the AACK step, the corresponding slave processor board receiving the address information in the AINFO step transmits a response signal indicating that the address information has been received to the master processor board.

D0 단계에서는 마스터 프로세서보드가 수신한 AACK 단계의 슬레이브 프로세서의 응답신호를 수신하고 한 단위 데이타를 데이타버스에 인가하여 송신한다. DACKO 단계는 슬레이브 프로세서보드가 데이타를 수신한였다는 응답신호를 마스터 프로세서보드에 송신하는 단계이고 D1단계는 미스터 프로세서보드가 수신한 AACK 단계의 슬레이브 프로세서의 응답신호를 수신하고 한 단위 데이타를 데이타버스에 인가하여 송신한다.In the D0 stage, the master processor board receives the response signal of the slave processor in the AACK stage, and transmits one unit of data to the data bus. The DACKO stage transmits a response signal indicating that the slave processor board has received data to the master processor board, and the D1 stage receives a response signal of the slave processor of the AACK stage received by the MR processor board and transmits one unit of data to the data bus. Authorize and send.

DACK1 단계는 슬레이브 프로세서보드가 D1 단계의 데이타를 수신하였다는 응답신호이고 D2 단계는 마스터 프로세서보드가 한 단위의 데이타를 데이타버스에 인가하여 슬레이브 프로세서보드로 송신한다. AINFO 단계의 어드레스정보에 포함된 쓰기할 데이타의 크기에 따라 마스터 프로세서보드에서 마지막 Dn의 데이타를 데이타버스에 인가하여 슬레이브 프로세서보드로 송신하면 슬레이브 프로세서보드는 DACKn 단계에서 Dn 단계의 데이타를 수신하였다는 응답신호를 마스터 프로세서보드에 송신하여 복수쓰기 싸이클을 완료한다.The DACK1 stage is a response signal indicating that the slave processor board has received data of the D1 stage, and the D2 stage transmits the master processor board to the slave processor board by applying a unit of data to the data bus. According to the size of the data to be written in the address information of the AINFO step, the master processor board applies the data of the last Dn to the data bus and transmits the data to the slave processor board. The slave processor board receives the data of the step Dn in the DACKn step. Send a response signal to the master processor board to complete the multi-write cycle.

마지막으로 RMC 싸이클에 대한 프로토콜은 다음과 같다. 마스터 프로세서가 ARQ# 단계에서 어드레스버스를 요구하면 마스터 프로세서보드의 어드레스버스 중재기(222)에서 중재를 하여 어드레스버스를 점유하여 AINFO 단계에서 데이타를 읽고자 하는 슬레이브 프로세서보드에 어드레스정보를 송신한다. AACK 단계에서는 AINFO 단계에서의 어드레스정보를 수신한 해당 슬레이브 프로세서보드가 어드레스정보를 수신하였다는 응답신호를 마스터 프로세서보드에 송신한다. 슬레이브 프로세서보드가 데이타를 마스터 프로세서보드에 송신할 준비가 될 때까지 대기상태 단계를 거친다.Finally, the protocol for the RMC cycle is: When the master processor requests the address bus in the ARQ # stage, the master bus arbitrates in the address bus arbiter 222 of the master processor board, occupies the address bus, and transmits address information to the slave processor board to read data in the AINFO stage. In the AACK step, the corresponding slave processor board receiving the address information in the AINFO step transmits a response signal indicating that the address information has been received to the master processor board. The slave processor board goes through a waiting state until it is ready to send data to the master processor board.

데이타를 송신할 준비가 완료되면 DRQ# 단계에서 데이타버스 요구하고 슬레이브 프로세서보드의 데이타버스 중재기(224)에서 중재를 하여 데이타버스를 점유한다.When the data is ready to be transmitted, the data bus is requested in the DRQ # step and the data bus arbiter 224 of the slave processor board arbitrates to occupy the data bus.

또한 DINFO 단계에서 읽기명령을 한 마스터 프로세서보드의 번호를 송신하고 D0 단계에서 한 단위의 데이타를 데이타버스에 인가하여 마스터 프로세서보드로 송신한다. DACK0 단계는 마스터 프로세서보드가 읽기한 데이타를 수신하였다는 응답신호를 슬레이브 프로세서보드에 송신하는 단계이다.In addition, in the DINFO stage, the master processor board number of the read command is transmitted. In the D0 stage, one unit of data is applied to the data bus and transmitted to the master processor board. DACK0 transmits a response signal indicating that the master processor board has received data read to the slave processor board.

마스터 프로세서보드에서 읽기한 데이타를 연산처리한 후 마스터 프로세서가 데이타를 읽기한 슬레이브 프로세서보드에 다시 쓰기할 준비가 완료될 때까지 대기 상태의 단계를 거친다.After processing the data read from the master processor board, it goes through the waiting stage until the master processor is ready to write back to the read slave processor board.

ARQ# 단계에서는 마스터 프로세서에서 어드레스버스를 요구하면 마스터 프로세서보드의 어드레스버스 중재기(222)에서 중재를 하여 어드레스버스를 점유하고 AINFO 단계에서 데이타를 쓰고자 하는 슬레이브 프로세서보드에 어드레스정보를 송신한다. AACK 단계에서는 AINFO 단계에서의 어드레스정보를 수신한 해당 슬레이브 프로세서보드가 어드레스정보를 수신하였다는 응답신호를 쓰기 명령을 수행하는 해당 마스터 프로세서보드에 송신한다.In the ARQ # stage, when the master processor requests an address bus, the address bus arbiter 222 of the master processor board arbitrates to occupy the address bus and transmits address information to the slave processor board to write data in the AINFO stage. In the AACK step, the corresponding slave processor board receiving the address information in the AINFO step transmits a response signal indicating that the address information has been received to the corresponding master processor board performing the write command.

D0 단계에서는 마스터 프로세서보드가 수신한 AACK 단계의 슬레이브 프로세서의 응답신호를 수신하고 한 단위 데이타를 데이타버스에 인가하여 송신하고 DACK0 단계에서 슬레이브 프로세서보드가 데이타를 수신하였다는 응답신호를 마스터 프로세서보드에 송신한다.In the D0 stage, the master processor board receives the response signal of the slave processor in the AACK stage, transmits one unit of data to the data bus, and transmits the response signal indicating that the slave processor board receives the data in the DACK0 stage. Send.

ARQ# 단계에서 쓰고자 하는 마스터 프로세서에서 어드레스버스를 요구하면 마스터 프로세서보드의 어드레스버스 중재기(222)에서 중재를 하여 어드레스버스를 점유하고 AINFO 단계에서 데이타를 쓰고자 하는 슬레이브 프로세서보드에 어드레스정보를 송신한다. AACK 단계에서는 AINFO 단계에서의 어드레스정보를 수신한 해당 슬레이브 프로세서보드가 어드레스정보를 수신하였다는 응답신호를 쓰기 명령을 수행하는 해당 마스터 프로세서보드에 송신한다.When an address bus is requested from the master processor to be written in the ARQ # stage, the address bus arbiter 222 of the master processor board arbitrates to occupy the address bus and sends address information to the slave processor board to write data in the AINFO stage. Send. In the AACK step, the corresponding slave processor board receiving the address information in the AINFO step transmits a response signal indicating that the address information has been received to the corresponding master processor board performing the write command.

D0 단계에서는 마스터 프로세서보드가 슬레이브 프로세서보드에 한 단위 데이타를 데이타버스에 인가하여 송신한다. DACK0 단계는 슬레이브 프로세서보드가 데이타를 수신하였다는 응답신호를 마스터 프로세서보드에 송신하여 RMC 싸이클을 완료한다.In the step D0, the master processor board applies one unit data to the data bus to the slave processor board. In the DACK0 step, the slave processor board transmits a response signal indicating that data has been received to the master processor board to complete the RMC cycle.

상술한 버스 프로토콜을 기초로 하여 버스 프로토콜 상태 천이도를 설명하기로 한다. 먼저 어드레스 및 읽기 상태천이도를 설명하면 다음과 같다. 제8도는 본 발명에 따른 버스프로토콜 제어기의 어드레스 및 읽기상태천이도를 도시한 것이다. 참조번호 800의 AIDLE 단계는 전송명령을 수행하지 않는 상태이며, 중재기(220)내의 어드레스중재기(222)는 마스터 프로세서보드의 내부버스연결기(210)에서 송신된 어드레스 요구신호인 RQ신호를 받아들여 어드레스버스 중재를 실시하여 시스템 어드레스를 점유하게 될 때 어드레스를 점유하였다는 AWIN 신호를 CPU 인터페이스부(200)로 출력하고, AINFO(810) 단계로 천이한다. AINFO(810) 단계에서는 송신하는 마스터 프로세서보드번호, 전송형태 및 데이타크기를 액세스하고자 하는 해당 슬레이브 프로세서보드에 송신하고, WAIT0(820) 단계로 천이하여 데이타를 읽고자 하는 슬레이브 프로세서보드가 데이타를 마스터 프로세서보드에 송신할 준비를 완료할 때까지 대기한다. AACK(830) 단계에서는 슬레이브 프로세서보드에서 AINFO(810) 단계에서 수신한 어드레스정보에 대한 슬레이브 프로세서의 응답인 정상, 에러, 재전송 상태를 상태레지스터에 저장하고 에러나 재전송시 AIDLE(800) 단계로 천이한다. 또한, 이 때에 단일 쓰기명령인 SWGO 또는 복수쓰기명령인 BWGO가 내부버스연결기(210)에서 출력되면 AIDLE(800) 단계로 천이하여 쓰시수행을 준비한다.A bus protocol state transition diagram will be described based on the bus protocol described above. First, the address and read state transition diagram will be described. 8 illustrates an address and read state transition diagram of a bus protocol controller according to the present invention. The AIDLE step of reference numeral 800 is a state in which no transmission command is performed, and the address intermediate device 222 in the arbiter 220 receives the RQ signal, which is an address request signal transmitted from the internal bus connector 210 of the master processor board. When an address bus arbitration is performed to occupy the system address, the AWIN signal indicating that the address is occupied is output to the CPU interface 200, and the process proceeds to the AINFO step 810. In the AINFO step 810, the master processor board number to be transmitted, the transmission type and the data size are transmitted to the corresponding slave processor board to be accessed, and the slave processor board to change data to the WAIT0 820 step reads the data. Wait until the processor board is ready to send. In the AACK step 830, the slave processor board stores the normal, error, and retransmission states, which are the response of the slave processor to the address information received in the AINFO step 810, in the state register and transitions to the AIDLE 800 step in the error or retransmission. do. At this time, if a single write command SWGO or a multi-write command BWGO is output from the internal bus connector 210, the process transitions to the AIDLE 800 stage to prepare for writing.

한편, AACK(830) 단계에서 슬레이브 프로세서의 응답이 정상(OK)이면 WAIT1(840) 단계로 천이하여 슬레이브 프로세서보드가 수신측 마스터 프로세서보드로 송신할 데이타 준비가 완료될 때까지 대기하고 RD0(850) 단계로 천이한다. RD0 (850) 단계에서 송신 준비가 완료되면 첫 번째 데이타를 슬레이브 프로세서보드에서 마스터 프로세서보드로 송신 후 내부버스연결기(210)에서 SRGO 명령이 출력되면 RDACK(860) 단계로 마스터 프로세서보드가 수신한 데이타의 정상, 에러, 재전송신호를 시스템버스를 통하여 슬레이브 프로세서보드에 송신하다.On the other hand, if the response of the slave processor in the AACK (830) step is OK (OK), the transition to the WAIT1 (840) step and waits until the slave processor board is ready to transmit data to the receiving master processor board and RD0 (850) Transition to step). When the preparation for transmission is completed in the RD0 (850) step, the first data is transmitted from the slave processor board to the master processor board. After the SRGO command is output from the internal bus connector 210, the data received by the master processor board in the RDACK (860) step Sends normal, error and retransmission signals to the slave processor board via the system bus.

이 때, 에러가 발생해도 버스프로토콜의 구현을 간단히 하기 위하여 일단 전송을 완료하고 해당 마스터 프로세서보드는 버스프로토콜을 다시 시작한다.At this time, even if an error occurs, in order to simplify the implementation of the bus protocol, once the transfer is completed, the master processor board restarts the bus protocol.

한편, 내부버스연결기(210)에서 BRGO 명령이 출력되면 RD0(850) 단계에서 MRD(870) 단계로 천이하여 슬레이브 프로세서보드에서 데이타를 한 단위씩 시스템버스에 인가하여 마스터 프로세서보드에 송신한다.On the other hand, if the BRGO command is output from the internal bus connector 210, the transition from the RD0 (850) to the MRD (870) step, the slave processor board is applied to the system bus by the data unit by unit to the master processor board.

MRDACK(880) 단계에서는 상기 MRD(870)단계에서 마스터 프로세서보드가 수신한 한 단위씩의 데이타를 수신할 때마다 데이타에 대한 정상, 에러, 재전송신호를 시스템버스로 송신하고 비정상(ERR)인 경우에는 WIDLE(800) 단계로 천이하여 버스프로토콜을 다시 시작한다.In the MRDACK 880, whenever normal data received by the master processor board in the MRD 870 is transmitted, the normal, error, and retransmission signals of the data are transmitted to the system bus. In step WIDLE (800), the bus protocol is restarted.

프로토콜상태 천이기(240)의 데이타단위 계수기에서 전송할 데이타단위 크기를 나타내는 CNTSIZ를 데이타 전송시마다 역으로 카운트해서 0이 아니면 MRDACK(800) 단계에서 전송된 상태를 상태레지스터에 저장하고 MRD(930) 단계로 천이하여 슬레이브 프로세서보드로 데이타를 송신을 계속한다. 이 때 복수 데이타의 전송완료를 나타내는 CNTSIZ가 0상태가 되면 AIDLE(800)단계로 천이한다.The CNTSIZ representing the data unit size to be transmitted in the data unit counter of the protocol state shifter 240 is counted inversely for each data transmission, and if it is not 0, the state transmitted in the MRDACK 800 is stored in the state register and the MRD 930 step is performed. Transmit to and continue sending data to slave processor board. At this time, when the CNTSIZ indicating the completion of the transmission of the plurality of data becomes 0, the process proceeds to step AIDLE (800).

데이타전송이 정상일 경우에는 복수읽기명령시 AINFO(810) 단계에서 마스터 프로세서보드의 어드레스정보에 포함된 한 단위의 데이타를 전송시마다 데이타단위의 크기를 역으로 카운트해서 0이 될 때까지 수신한 데이타에 대한 데이타응답 상태인 MRDRCK(880) 단계와 MRD(870) 단계를 반복 수행하고 데이타전송이 완료되었거나 MRDACK(880) 단계에서 에러가 발생하면 AIDLE(800) 단계로 천이한다.If the data transfer is normal, in the multi-read command, one unit of data included in the address information of the master processor board in the AINFO (810) step is counted inversely and transferred to the received data until it reaches zero. The MRDRCK 880 and the MRD 870 steps, which are data response states, are repeatedly performed. When the data transmission is completed or an error occurs in the MRDACK 880 step, the terminal transitions to the AIDLE 800 step.

다음은 쓰기 상태 천이도를 설명하기로 한다. 제9도는 본 발명에 따른 버스프로토콜 제어기의 쓰기상태천이도로서, 전송명령을 수행하고 있지 않는 참조번호 900의 WIDLE 단계에서는 내부버스 연결기(210)에서 단일읽기 명령인 SWGO를 출력하면, SWDO(910) 단계에서 마스터 프로세서보드에서 슬레이브 프로세서보드에 데이타를 송신한다. WDACK(920) 단계에서는 슬레이브 프로세서보드는 수신한 데이타의 상태가 정상인지 에러(ERR)인지를 송신하고 마스터 프로세서보드는 응답상태를 확인하고 제2도의 명령어 상태 레지스터(250)내의 상태레지스터에 저장한다.Next, the write state transition diagram will be described. FIG. 9 is a write state transition diagram of a bus protocol controller according to the present invention. When the WIDLE step of the reference numeral 900 that does not perform a transfer command outputs a single read command SWGO from the internal bus connector 210, SWDO 910 In step), data is transmitted from the master processor board to the slave processor board. In the WDACK 920 step, the slave processor board transmits whether the received data state is normal or error (ERR), and the master processor board checks the response state and stores it in the state register in the command status register 250 of FIG. .

또한, WIDLE(900) 단계에서 제3도의 내부버스여녈기(210)에서 복수읽기 명령인 BWGO 발생시는 MWR(930) 단계로 천이하여 마스터 프로세서보드에서 슬레이브 프로세서보드로 데이타를 송신한다. 프로토콜상태 천이기(240) 내의 도시되지 않은 데이타단위계수기에서 한 단위의 데이타전송이 수행될 때마다 송신될 데이타단위 크기(CNTSIZ)에서 하나씩 감소시킨다. M은 마스터 프로세서 보드가 송신상태에 있음을 표시하고 S는 슬레이브 보드가 송신상태임을 표시한다.In addition, when the BWGO, which is a multi-read command, occurs in the internal bus filter 210 of FIG. 3 at the WIDLE 900 stage, the process transitions to the MWR stage 930 to transmit data from the master processor board to the slave processor board. Each time a unit of data transmission is performed in a data unit counter (not shown) in the protocol state shifter 240, it decreases by one in the data unit size (CNTSIZ) to be transmitted. M indicates that the master processor board is in the transmit state and S indicates that the slave board is in the transmit state.

따라서, 쓰기될 데이타크기인 CNTSIZ가 0이 될 때까지 MWDACK(940) 단계에서 상태를 상태레지스터에 저장하고 MWR(930) 단계로 천이하여 데이타를 슬레이브 프로세서보드로 데이타를 송신을 계속한다. MWDACK(940) 단계에서 상태를 상태레지스터에 저장한다.Accordingly, the state is stored in the state register in the MWDACK 940 until the data size CNTSIZ becomes 0, and the state transitions to the MWR 930 to continue transmitting data to the slave processor board. In step MWDACK 940, the state is stored in the state register.

한편, MWDACK(940) 단계에서 에러(ERR) 또는 CNTSIZ가 0이 되면 WIDLE(900) 단계로 천이한다.On the other hand, when the error ERR or CNTSIZ becomes 0 in the MWDACK 940 step, the transition to the WIDLE 900 step.

RMC 싸이클은 읽기후 쓰기전송이므로 먼저 제8도에 설명된 어드레스 및 읽기상태 천이에서 단일 읽기 수행을 한 다음에 제9도에 설명된 쓰기상태 천이에서 단일쓰기를 수행하여 싸이클을 완료한다.Since the RMC cycle is a read-write write transfer, a single read is performed at the address and read state transition described in FIG. 8, and then a single write is performed at the write state transition described in FIG. 9 to complete the cycle.

이 때, 읽기와 쓰기 전에 전송되는 어드레스 정보는 어드레스 및 읽기상태 천이시의 AINFO(810) 단계에서 송신된다.At this time, address information transmitted before reading and writing is transmitted in the AINFO step 810 during the address and read state transition.

따라서, 상술한 바와 같이 본 발명의 버스프로토콜 제어기는 데이타전송을 위하여 어드레스버스와 데이타버스의 중재를 각각 수행함으로써 명령과 동시에 데이타 송수신이 가능하여 버스효율을 높인다. 각 프로세서보드는 버스프로토콜 제어기를 하나씩 가지고 있기 때문에 프로세서보드의 내부로직과 간단한 인터페이스를 가지고 있어서 범용적으로 사용하기 쉽다. 또한 시스템버스를 사용시에 발생한 신호나 상태신호를 제공하여 응용프로그램의 시험 및 성능시험을 수행할 수 있는 기능을 제공한다.Therefore, as described above, the bus protocol controller of the present invention performs arbitration of the address bus and the data bus for data transmission, thereby enabling data transmission and reception at the same time to increase bus efficiency. Each processor board has one bus protocol controller, so it has a simple interface with the internal logic of the processor board, making it easy to use universally. In addition, it provides the function to perform the test and performance test of the application program by providing the signal or status signal generated when using the system bus.

Claims (17)

멀티프로세서 시스템에 있어서의 버스프로토콜 제어기에 있어서, 프로세서보드 내에서 마이크로 프로세서(CPU)의 제어신호들과 프로토콜 제어기 내의 각 기능블럭을 인터페이스하는 내부버스연결기; 상기 내부버스연결기로부터 유입된 제어신호에 의하여 프로토콜의 어드레스 정보를 생성하는 명령어 발생기; 상기 내부버스연결기로부터 어드레스버스 요구신호 또는 데이타전송 준비 완료신호가 유입되면 우선순위방식에 의하여 시스템버스를 중재하는 중재기; 상기 내부버스연결기로부터 유입된 명령에 의하여 단일 어드레스의 데이타를 읽고난 후 이어서 단일 어드레스의 데이타의 쓰기 동작을 제어하는 RMC 제어기; 상기 중재기에서 중재를 하여 시스템 버스를 점유하면 데이타전송 명령에 의하여 읽기와 쓰기 명령을 수행하는 프로토콜상태 천이기; 및 상기 중재기, 상기 RMC제어기, 상기 명령어 발생기 및 상기 프로토콜 천이기로 데이타전송을 위한 송신 및 수신클럭과 상태천이를 위한 클럭을 발생시키는 클럭발생기를 포함함을 특징으로 하는 멀티프로세서 시스템에 있어서의 버스프로토콜 제어기.A bus protocol controller in a multiprocessor system, comprising: an internal bus connector for interfacing control signals of a microprocessor (CPU) in a processor board and respective functional blocks in a protocol controller; A command generator for generating address information of a protocol according to a control signal introduced from the internal bus connector; An arbiter for arbitrating a system bus by a priority method when an address bus request signal or a data transmission ready signal is received from the internal bus connector; An RMC controller which reads data of a single address by a command introduced from the internal bus connector and subsequently controls a write operation of data of a single address; A protocol state transition to perform read and write commands by a data transfer command when the arbitrator arbitrates and occupies a system bus; And a clock generator for generating a transmission and reception clock for data transmission and a clock for state transition to the arbiter, the RMC controller, the command generator, and the protocol transition. Protocol controller. 제1항에 있어서, 시스템버스 사용중 에러발생을 알리고 어드레스버스 중재시 어드레스를 점유와 재시도하는 신호를 계수하여 어드레스버스 중재를 통한 시스템버스 측정 기능을 갖는 응용기를 더 구비함을 특징으로 하는 멀티프로세서 시스템에 있어서의 버스프로토콜 제어기.The multiprocessor of claim 1, further comprising an application having a system bus measurement function through address bus arbitration by counting a signal for notifying an error occurrence while using the system bus and occupying and retrying an address during mediation. Bus protocol controller in the system. 제1항에 있어서, 상기 RMC 제어기는 이미 RMC 명령이 수행중일 때 매 시스템 버스 클럭마다 어드레스를 래치하여 저장하는 시스템 어드레스 레지스터; 마스터 프로세서보드의 이미 수행중인 RMC 동작의 해당 어드레스를 저장하는 로칼 어드레스 레지스터; 및 상기 시스템 어드레스 레지스터와 상기 로칼 어드레스 레지스터를 비교하여 같으면 다른 마스터 프로세서 보드의 RMC 동작을 금지하는 신호(SRMCBSY 신호)를 발생하는 RMCBUSY신호 발생기를 포함함을 특징으로 하는 멀티프로세서 시스템에 있어서의 버스프로토콜 제어기.The system of claim 1, wherein the RMC controller comprises: a system address register configured to latch and store an address at every system bus clock when an RMC command is already being executed; A local address register for storing a corresponding address of an RMC operation already performed on the master processor board; And an RMCBUSY signal generator which compares the system address register with the local address register and generates a signal (SRMCBSY signal) for inhibiting RMC operation of another master processor board if it is the same. Controller. 제1항에 있어서, 상기 프로토콜상태 천이기는 마스터 프로세서 보드가 슬레이브 프로세서 보드로 단일 어드레스 및 복수 어드레스의 데이타를 읽어 들이는 어드레스 및 읽기상태 천이기; 및 마스터 프로세서 보드가 슬레이브 프로세서 보드로 단일 어드레스 및 복수 어드레스의 데이타를 쓰는 쓰기상태 천이기로 구성됨을 특징으로 하는 멀티프로세서 시스템에 있어서의 버스프로토콜 제어기.The method of claim 1, wherein the protocol state transition unit comprises: an address and read state transition unit for the master processor board to read data of a single address and a plurality of addresses to the slave processor board; And a write state transition in which the master processor board writes data of a single address and a plurality of addresses to the slave processor board. 제1항에 있어서, 상기 중재기는 어드레스 버스를 중재하는 어드레스버스 중재기; 및 데이타버스를 중재하는 데이타버스 중재기를 구비함을 특징으로 하는 멀티프로세서 시스템에 있어서의 버스프로토콜 제어기.2. The apparatus of claim 1, wherein the arbiter comprises: an address bus arbiter that arbitrates an address bus; And a data bus arbiter for arbitrating the data bus. 제5항에 있어서, 어드레스버스와 데이타버스중재를 어드레스 중재기와 데이타버스 중재기에서 별도로 중재하여 전송명령과 데이타 송수신을 분리하여 수행함을 특징으로 하는 멀티프로세서 시스템에 있어서의 버스프로토콜 제어기.6. The bus protocol controller according to claim 5, wherein the address bus and the data bus arbitration are arbitrated separately in the address arbiter and the data bus arbiter to separately perform transmission commands and data transmission and reception. 제1항에 있어서, 상기 프로토콜상태 천이기를 소프트웨어적으로 중재없이 구동시키거나 시스템버스에서 상태를 기록하는 명령상태레지스터를 더 구비함을 특징으로 하는 멀티프로세서 시스템에 있어서의 버스프로토콜 제어기.The bus protocol controller of claim 1, further comprising a command status register for driving the protocol state transition without software intervention or recording a state on a system bus. 제1항에 있어서, 버스프로토콜 제어기는 단일 어드레스의 데이타를 읽는 단일읽기; 단일 어드레스의 데이타를 쓰는 단일쓰기; 복수의 어드레스의 데이타를 읽는 복수읽기; 복수의 어드레스의 데이타를 쓰는 복수쓰기; 및 단일 어드레스의 데이타를 읽고 나서 이어서 단일 어드레스의 데이타를 쓰는 RMC 싸이클로 데이타를 전송함을 특징으로 하는 멀티프로세서 시스템에 있어서의 버스프로토콜 제어기.2. The system of claim 1, wherein the bus protocol controller comprises: a single read that reads data of a single address; Single write to write data of a single address; Reading a plurality of data at a plurality of addresses; Plural writes to write data of plural addresses; And transmitting data to an RMC cycle which reads data of a single address and then writes data of a single address. 멀티프로세서 시스템의 비순차응답방식 읽기싸이클의 데이타 전송방법에 있어서, 마스터 프로세서보드에서 어드레스버스 사용을 요구하고 어드레스버스 요구를 우선순위에 의하여 중재하는 단계; 상기 중재에 의하여 어드레스버스를 점유하게 되면 어드레스정보를 슬레이브 프로세서보드에 송신하는 단계; 상기 어드레스정보를 수신한 후 이상유무 상태를 마스터 프로세서보드에 응답하는 단계; 읽기데이타의 송신준비가 완료되면 데이타버스 사용을 요구하고 우선순위에 의하여 데이타버스의 점유를 중재하는 단계; 상기 데이타버스 중재단계에서 데이타버스를 점유하였을 경우에 슬레이브 프로세서보드에서 수신측인 마스터 프로세서보드에 데이타정보를 송신하고 데이타를 송신하는 단계; 및 상기 슬레이브 프로세서보드로부터 데이타를 수신한 마스터 프로세서보드가 데이타를 수신한 후 이상유무 상태를 슬레이브 프로세서보드에 응답하는 단계를 포함함을 특징으로 하는 멀티프로세서 시스템에 있어서 읽기싸이클의 데이타 전송방법.CLAIMS What is claimed is: 1. A data transmission method of a non-sequential read cycle in a multiprocessor system, comprising: requesting use of an address bus at a master processor board and arbitrating address bus requests by priority; Transmitting address information to a slave processor board when the address bus is occupied by the arbitration; Responding to the master processor board whether there is an abnormal state after receiving the address information; Requesting the use of the data bus when the read data is ready to be transmitted and mediating the occupation of the data bus according to priority; Transmitting data information and transmitting data from the slave processor board to the master processor board at the receiving end when the data bus is occupied in the data bus arbitration step; And responsive to the slave processor board by the master processor board receiving data from the slave processor board after receiving the data, from the slave processor board. 제9항에 있어서, 복수단위의 데이타를 전송시에는 한 단위의 데이타를 전송시마다 상기 어드레스정보에 포함된 전송데이타의 크기를 역으로 카운트하여 0이 될 때까지 연속하여 데이타를 송신함을 특징으로 하는 멀티프로세서 시스템에 있어서 읽기싸이클의 데이타 전송방법.10. The method of claim 9, wherein when transmitting a plurality of units of data, the data is continuously transmitted until the number is zero by counting the size of the transmission data included in the address information each time one unit of data is transmitted. Read cycle data transmission method in a multiprocessor system. 제9항에 있어서, 상기 어드레스정보는 어드레스와 전송형태, 송신마스터 프로세서보드 번호, 전송테이타의 크기의 정보를 포함함을 특징으로 하는 멀티프로세서 시스템에 있어서 읽기싸이클의 데이타 전송방법.10. The method of claim 9, wherein the address information includes information on an address, a transmission type, a transmission master processor board number, and a size of a transmission data. 제9항에 있어서, 상기 이상유무 상태를 응답하는 단계에서 상태정보는 정상, 에러, 재전송 정보임을 특징으로 하는 멀티프로세서 시스템에 있어서 읽기싸이클의 데이타 전송방법.10. The method of claim 9, wherein the status information in the step of responding to the abnormality status is normal, error, retransmission information. 제9항에 있어서, 상기 데이타 정보는 읽기명령을 송신한 마스터프로세서보드의 번호임을 특징으로 하는 멀티프로세서 시스템에 있어서 읽기싸이클의 데이타 전송방법.10. The method of claim 9, wherein the data information is a number of a master processor board that has transmitted a read command. 멀티프로세서 시스템의 비순차응답방식 쓰기싸이클의 데이타 전송방법에 있어서, 마스터 프로세서보드에서 어드레스버스 사용을 요구하고 어드레스버스 요구를 우선순위에 의하여 중재하는 단계; 상기 중재에 의하여 어드레스버스를 점유하게 되면 어드레스정보를 슬레이브 프로세서보드에 송신하는 단계; 상기 어드레스정보를 수신한 후 이상유무 상태를 마스터 프로세서보드에 송신하는 응답단계; 마스터 프로세서보드에서 데이타를 슬레이브 프로세서보드에 송신하는 단계; 및 슬레이브 프로세서보드에서 데이타를 수신한 후 이상유무 상태를 마스터 프로세서보드에 송신하는 단계를 포함함을 특징으로 하는 멀티프로세서 시스템에 있어서 쓰기싸이클의 데이타 전송방법.CLAIMS What is claimed is: 1. A data transfer method of a non-sequential write cycle in a multiprocessor system, comprising: requesting use of an address bus at a master processor board and arbitrating address bus requests by priority; Transmitting address information to a slave processor board when the address bus is occupied by the arbitration; A response step of transmitting an abnormal state state to the master processor board after receiving the address information; Transmitting data from the master processor board to the slave processor board; And transmitting a status of abnormality to the master processor board after receiving data from the slave processor board. 제14항에 있어서, 복수단위의 데이타를 전송시에는 한 단위의 데이타를 전송시마다 상기 어드레스정보에 포함된 전송데이타의 크기를 역으로 카운트하여 0이 될 때까지 연속하여 데이타를 송신함을 특징으로 하는 멀티프로세서 시스템에 있어서 쓰기싸이클의 데이타 전송방법.15. The method of claim 14, wherein when transmitting a plurality of data units, data is continuously transmitted until a value of 0 is obtained by reversing the size of the transmission data included in the address information for each transmission of one unit of data. A write cycle data transfer method in a multiprocessor system. 제14항에 있어서, 상기 이상유무 상태를 응답하는 단계에서 상태정보는 정상, 에러, 재전송 정보임을 특징으로 하는 멀티프로세서 시스템에 있어서 쓰기싸이클의 데이타 전송방법.15. The method of claim 14, wherein the status information in the step of responding to the abnormal status is normal, error, retransmission information. 제14항에 있어서, 상기 어드레스정보는 어드레스와 전송형태, 송신마스터 프로세서보드 번호, 전송데이타의 크기의 정보를 포함함을 특징으로 하는 멀티프로세서 시스템에 있어서 쓰기싸이클의 데이타 전송방법.15. The method of claim 14, wherein the address information includes information on an address, a transmission type, a transmission master processor board number, and size of transmission data.
KR1019950026498A 1995-08-24 1995-08-24 Protocol controller and data transfer in multiprocessor system KR0146521B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950026498A KR0146521B1 (en) 1995-08-24 1995-08-24 Protocol controller and data transfer in multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950026498A KR0146521B1 (en) 1995-08-24 1995-08-24 Protocol controller and data transfer in multiprocessor system

Publications (2)

Publication Number Publication Date
KR970012191A KR970012191A (en) 1997-03-29
KR0146521B1 true KR0146521B1 (en) 1998-09-15

Family

ID=19424457

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950026498A KR0146521B1 (en) 1995-08-24 1995-08-24 Protocol controller and data transfer in multiprocessor system

Country Status (1)

Country Link
KR (1) KR0146521B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100451789B1 (en) * 2001-10-16 2004-10-08 엘지전자 주식회사 Arbitration apparatus and method of processor for resources share

Also Published As

Publication number Publication date
KR970012191A (en) 1997-03-29

Similar Documents

Publication Publication Date Title
US5283870A (en) Method and apparatus for avoiding processor deadly embrace in a multiprocessor system
KR970000842B1 (en) System direct memory access(dma)support logic for pci based computer system
US4381542A (en) System for interrupt arbitration
US5459839A (en) System and method for managing queue read and write pointers
KR970001919B1 (en) System and method for transfering information between multiple buses
US5191656A (en) Method and apparatus for shared use of a multiplexed address/data signal bus by multiple bus masters
KR910001789B1 (en) Cache invalidation apparatus for multiprocessor system of digital computer system
US6141715A (en) Method and system for avoiding live lock conditions on a computer bus by insuring that the first retired bus master is the first to resubmit its retried transaction
US5148545A (en) Bus device which performs protocol confidential transactions
KR980010805A (en) Universal Computer Architecture Processor Subsystem
EP0301610B1 (en) Data processing apparatus for connection to a common communication path in a data processing system
US5388223A (en) 1-bit token ring arbitration architecture
US5119292A (en) Bus device which abstains from round robin arbitration
KR980010806A (en) Computer system that provides a general-purpose structure adaptable to various processors and bus protocols
KR100708096B1 (en) Bus system and execution scheduling method for access commands thereof
EP0512685B1 (en) Quadrature bus protocol for carrying out transactions in a computer system
US5471638A (en) Bus interface state machines with independent access to memory, processor and registers for concurrent processing of different types of requests
JPS61151767A (en) Arbitration circuit
US4837767A (en) Bus adapter module with improved error recovery in a multibus computer system
JPH0626336B2 (en) Control link
KR980010804A (en) Signal Processing Protocol Converter between Processor and High Performance System Bus
US5787263A (en) Method of an apparatus for controlling data transfer
US5627968A (en) Data transfer apparatus which allows data to be transferred between data devices without accessing a shared memory
KR0146521B1 (en) Protocol controller and data transfer in multiprocessor system
US20040054843A1 (en) Configuration and method having a first device and a second device connected to the first device through a cross bar

Legal Events

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

Payment date: 20060508

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee