KR0131860B1 - Apparatus for input/output of console in multiprocessor system and method of the same - Google Patents

Apparatus for input/output of console in multiprocessor system and method of the same

Info

Publication number
KR0131860B1
KR0131860B1 KR1019940016750A KR19940016750A KR0131860B1 KR 0131860 B1 KR0131860 B1 KR 0131860B1 KR 1019940016750 A KR1019940016750 A KR 1019940016750A KR 19940016750 A KR19940016750 A KR 19940016750A KR 0131860 B1 KR0131860 B1 KR 0131860B1
Authority
KR
South Korea
Prior art keywords
data
console
duart
processing
output
Prior art date
Application number
KR1019940016750A
Other languages
Korean (ko)
Inventor
김학영
김주만
임기욱
Original Assignee
양승택
재단법인한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 양승택, 재단법인한국전자통신연구원 filed Critical 양승택
Priority to KR1019940016750A priority Critical patent/KR0131860B1/en
Application granted granted Critical
Publication of KR0131860B1 publication Critical patent/KR0131860B1/en

Links

Landscapes

  • Multi Processors (AREA)

Abstract

본 발명은 입출력 전용 처리기를 갖는 다중 처리기 시스템의 시스템 제어기 장착되는 콘솔(con-sole)과의 문제 입출력 제어 처리에 따른 시스템의 효율저하를 막기 위한 것으로, 2포트 범용 비동기 송수신기(DUART)의 포트를 통하여 입력되는 문자를 시스템의 주처리기가 원하는 영역으로 전달해 주거나 주처리기가 지정한 DUART의 포트로 문자를 출력한다.DISCLOSURE OF THE INVENTION The present invention is to prevent a problem of the system according to the input / output control process with a console equipped with a system controller of a multiprocessor system having a dedicated input / output processor. The port of a two-port general purpose asynchronous transceiver (DUART) The text input through the system is transferred to the desired area by the main processor of the system or the character is output to the port of the DUART designated by the main processor.

본 발명에서는 콘솔 입출력장치의 레지스터들과 송수신용 버퍼(buffer) 및 큐(queue)를 초기화시킨 후, 콘솔 입출력이 요구되는 시점에서 메세지 전송 규약에서 정의한 형태로 서비스를 제공하는 입출력 명령을 수행하고 이와 연계하여 데이타 흐름을 제어하고 인터럽트(interupt)를 처리한다.The present invention initializes the registers of the console input / output device, buffers and queues for transmission and reception, and then executes an input / output command for providing a service in the form defined in the message transfer protocol at the time when the console input / output is required. In conjunction, it controls data flow and handles interrupts.

Description

다중처리기 시스템의 콘솔 입출력 구동장치 및 그 방법Console I / O Drive in Multiprocessor System and Its Method

제1도는 본 발명이 적용되는 시스템의 기본적인 구조를 나타낸 도면.1 is a diagram showing the basic structure of a system to which the present invention is applied.

제2도는 주처리기와 본 발명간의 인터페이스 방식을 설명하기 위한 도면.2 is a view for explaining the interface method between the main processor and the present invention.

제3도는 본 발명의 구성도.3 is a block diagram of the present invention.

제4도는 인터럽트 처리기의 기능수행과정을 나타낸 흐름도.4 is a flowchart showing a function execution process of an interrupt handler.

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

1:주처리기2:시스템 제어기1: main processor 2: system controller

3:입출력 처리기4:공유 메모리3: I / O processor 4: shared memory

5:2포트 범용 비동기 송수신기6:순차 입출력 포트5: 2-port general purpose asynchronous transceiver 6: Sequential I / O port

7:콘솔100:콘솔 입출력 구동기7: Console 100: Console I / O Driver

본 발명은 입출력 전용 처리기를 갖는 다중 처리기 시스템의 시스템 제어기에 장착되는 콘솔(con-sole)과의 문자 입출력 제어 처리에 관한 것으로, 더 구체적으로는 2포트 범용 비동기 송수신기(이하, 'DUART'라 함)의 포트를 정하여 입력되는 문자를 시스템의 주처리기가 원하는 영역으로 전달해 주거나 주처리기가 지정한 DUART의 포트로 문자를 출력하는 장치 및 그 방법에 관한 것이다.The present invention relates to a character input / output control process with a console (con-sole) mounted on a system controller of a multiprocessor system having an input / output dedicated processor. More specifically, a two-port general purpose asynchronous transceiver (hereinafter referred to as 'DUART') The present invention relates to an apparatus and method for transmitting a character inputted by determining a port of a terminal) to a desired area of a system main processor or outputting a character to a port of a DUART designated by the main processor.

슈퍼미니(supermini)또는 메인 프레임(Mainframe)과 같은 고속 중형 컴퓨터는, 통상적으로 제1도를 참조하여, 다수의 주처리기(1)와, 시스템 제어기(2)와, 입출력 처리기(3) 및 주기억장치인 공유메모리(4)가 시스템 버스(8)에 각각 연결된 밀결합 다중처리기(Tightly Coupled Multiprocessor) 구조를 가지며, 대칭형 운영체제(Symetric Operating Systrm)가 탑재되어 운용된다.A fast medium sized computer, such as a supermini or mainframe, is typically referred to FIG. 1 with a number of main processors 1, a system controller 2, an input / output processor 3 and a main memory. The shared memory 4, which is a device, has a tightly coupled multiprocessor structure connected to the system bus 8, and a symmetric operating system is mounted and operated.

운영체제의 커널(Kernel)은 주처리기(1)에서 실행된다.The kernel of the operating system is executed in the main processor 1.

이런 시스템에서 모든 입출력은 주처리기(1) 내의 커널과 시스템제어기(2)사이에 메세지전송방식으로 이루어진다.In this system, all inputs and outputs are made by message transmission between the kernel in the main processor 1 and the system controller 2.

퍼스널 컴퓨터, 미니 컴퓨터 정도의 시스템에서는 콘솔 입출력이 운영체제의 커널 레벨에서(즉, 소프트웨어에 의해서만) 구현되나, 다중처리기시스템과 같은 고속 중형 컴퓨터에 있어서는 그 시스템의 하드웨어 구조 상 콘솔 입출력을 커널 레벨에서 구현하는 경우 콘솔과 시스템 간의 데이타 처리 속도 차이 등으로 인해 커널이 실제로 실행되는 주처리기(1)의 작업 수행 효율이 떨어지게 된다.In systems such as personal computers and minicomputers, console I / O is implemented at the kernel level of the operating system (i.e. only by software) .In high speed medium computers such as multiprocessor systems, console I / O is implemented at the kernel level due to the hardware structure of the system. In this case, due to the difference in data processing speed between the console and the system, the main processor 1, which actually executes the kernel, may be inefficiently executed.

본 발명의 목적은 고속 컴퓨터 시스템에 있어서 콘솔 입출력 제어로 인한 시스템의 성능저하를 개선하는 것이다.An object of the present invention is to improve performance degradation of a system due to console input / output control in a high speed computer system.

본 발명의 다른 목적은 다중프로세서시스템에서 콘솔 입출력 제어시에도 주처리기의 작업 수행 효율을 높일 수 있는 콘솔 입출력 구동장치 및 그 구동방법을 제공하는 것이다.Another object of the present invention is to provide a console input / output driving apparatus and a driving method thereof, which can increase the work performance of the main processor even when controlling the console input / output in a multiprocessor system.

이와 같은 목적들을 달성하기 위해서 본 발명에서는 콘솔 입출력을 하고자 할 경우에 커널의 콘솔 입출력 요구를 충족시키기 위한콘솔에 대한 하부 제어 기능을 펌웨어(Firmware)레벨에서 전담 처리할 수 있는 콘솔 입출력 구동장치를 제공한다.In order to achieve the above objects, the present invention provides a console input / output driving apparatus capable of performing a dedicated control function at the firmware level of a lower control function for a console to satisfy a console input / output requirement of a kernel when a console input / output is desired. do.

일 특징에 따르면, 다수의 주처리기와, 시스템 제어기와, 입출력 처리기 및 공유메모리가 시스템 버스에 각각 밀결합되는 다중처리기 시스템에서 콘솔의 입출력을 구동하기 위한 본 발명의 콘솔입출력구동장치는 상기 시스템 제저기와 콘솔 사이에 연결되고 두개의 포트를 갖는 2포트 범용 비동기 송수신기(DUART)와, 콘솔의 입출력구동을 위한 콘솔구동기를 포함하고; 상기 주처리기와 상기 콘솔 구동기 및 상기 DUART 사이의 데이타 전송은 문자단위로 이루어지고, 상기 주처리기와 상기 콘솔 구동기 간의 정보교환은 메세지전송규약에 따라 상기 공유메모리를 이용하고 인터럽트를 사용하는 메세지 전송방식으로 이루어 지며; 상기 콘솔 구동기는 상기 주처리기의 커널로 부터의 병렬 데이타를 받아 들여 직렬 데이타로 변환하여 출력하기 위한 제1큐수단과, 상기 제1큐수단으로부터 제공되는 정보를 상기DUART의 레지스터들로 순차로 전달하기 위한 제1버퍼수단과, 상기 DUART의 상기 레지스터들로부터 직렬로 제공되는 데이타를 받아 들이기 위한 제2버퍼수단과, 상기 제2버퍼수단으로부터 제공되는 직렬 데이타를 병렬 데이타로 변환하여 상기 주처리기의 상기 커널로 제공하기 위한 제2큐수단과, 콘솔 입출력을 위한 인터럽트를 처리하는 인터럽트처리수단을 포함한다.According to one aspect, a console input / output driving apparatus of the present invention for driving the input / output of a console in a multiprocessor system in which a plurality of main processors, a system controller, an input / output processor and a shared memory are tightly coupled to a system bus, respectively, A two-port universal asynchronous transceiver (DUART) connected between the console and the console and having two ports, and a console driver for input / output driving of the console; Data transmission between the main processor, the console driver and the DUART is performed in character units, and information exchange between the main processor and the console driver uses the shared memory and interrupts according to a message transfer protocol. It consists of; The console driver sequentially transfers first queue means for receiving parallel data from the kernel of the main processor, converting the serial data into serial data, and outputting the information provided from the first queue means to the registers of the DUART. A first buffer means for receiving data, a second buffer means for receiving data provided serially from the registers of the DUART, and serial data provided from the second buffer means for converting the serial data into parallel data. Second queue means for providing the kernel, and interrupt processing means for processing interrupts for console input and output.

본 발명의 방법은 콘솔 입출력당치의 레지스터들가 송수신용 버퍼(buffer) 및 큐(queue)을 초기화시킨 후, 콘솔 입출력이 요구되는 시점에서 메세지 전송 규약에서 정의한 형태로 서비스를 제공하는 입출력 명령을 수행하고 이와 연계하여 데아타 흐름 을 제어하고 이터럽트(interupt)를 처리한다.According to the method of the present invention, after the registers of the console input / output values initialize buffers and queues for transmission and reception, an input / output command for providing a service in the form defined in the message transfer protocol is performed at the time when the console input / output is required. In conjunction with this, it controls the data flow and handles interrupts.

이하 첨부된 도면들을 참조하여 본 말명을 상세히 설명한다. 제1도를 참조하여, 본 발명에 따른 시스템 제어기(2)는 공유자원으로서 두개의 순차 입출력 포트(6)를 갖는 하나의 DUART(5)와, 자신의 내부에 내장되고 콘솔 입출력 구동을 위한 프로그램이 탑재되어 있는 PROM(Programmable Read Only Memory)(7)을 구비하고 있다.Hereinafter, the present name will be described in detail with reference to the accompanying drawings. Referring to FIG. 1, the system controller 2 according to the present invention includes one DUART 5 having two sequential I / O ports 6 as shared resources, and a program for driving the console I / O embedded therein. A PROM (Programmable Read Only Memory) 7 mounted thereon is provided.

본 발명에 따른 장치 및 방법은 PROM에 기록되어 있는 명령들에 따라 시스템제어기(2)가 제어기능을 수행하는 것에 의해 실현된다.The apparatus and method according to the invention are realized by the system controller 2 performing a control function in accordance with the instructions recorded in the PROM.

제2도는 운영체제의 커널이 탑재되어 있는 주처리기(1)와, 시스템제어기(2) 내에 구현되는 콘솔 구동기(100) 사이의 인터페이스 방식을 보여 준다.2 illustrates an interface method between a main processor 1 in which a kernel of an operating system is mounted, and a console driver 100 implemented in the system controller 2.

주처리기(1)와 콘솔 구동기(100)간의 정보교환은 메세지전송규약(Message Passing Protocol: MPP)에 따라 공유메모리(4)를 이용하고 인터럽트를 사용하는 메세지 전송방식으로 이루어 진다.The exchange of information between the main processor 1 and the console driver 100 uses a shared memory 4 according to the Message Passing Protocol (MPP) and a message transfer method using interrupts.

주처리기(1)와 콘솔 구동기 (100)사이에 전송되는 메세지(10)에는 콘솔의 입출력을 위한 정보가 포함되어 있다.The message 10 transmitted between the main processor 1 and the console driver 100 includes information for inputting and outputting the console.

메세지 전송규약(MPP)에서는 커널이 요구할 수 있는 콘솔 입출력명령들을 정의하고 있다.The Message Transfer Protocol (MPP) defines the console I / O commands that the kernel can request.

이들 입출력 명령의 종류로는 초기화, 읽기, 쓰기, 입력데이타 흐름중지/재개, 입력데이타 화면출력, 모드 변환, 버퍼 및 큐의 플러쉬(flush), 모뎀 제어, 행업(hangup), 파라메터 설정 명령 등이 있다.These I / O commands include initialization, read, write, stop / resume input data flow, input data output, mode conversion, buffer and queue flush, modem control, hangup, parameter setting command, etc. have.

주처리기(1) 내의 커널이 입출력 명령을 메세지에 기록하여 콘솔 입출력 구동기(100)로 전송함으로써 콘솔 입출력 요구가 발생된다.The kernel in the main processor 1 writes an I / O command in a message and transmits it to the console I / O driver 100 so that a console I / O request is generated.

커널로부터의 메세지를 접수한 콘솔 입출력 구동기(100)는 그 메세지에 기록된 입출력명령에따라 입출력명령을 수행하는 함수를 호출하여 해당 서비스를 수행한 후, 상태 및 (필요한 경우에만) 결과를 다시 메세지를 통하여 커널로 반환함으로써 서비스를 완료하는 하나의 수행 사이클이 종료된다.Upon receipt of a message from the kernel, the console I / O driver 100 performs a corresponding service by calling a function that performs an I / O command according to the I / O command recorded in the message, and then returns the status and the result (if necessary). By returning to the kernel via, the one execution cycle to complete the service is terminated.

제3도는 본 발명에 따른 구동기(100)의 구성을 나타낸 것이다.3 shows the configuration of the driver 100 according to the present invention.

본 발명의 콘솔 구동기(100)는 주처리기(1)와 DUART(5)사이에 연결된다. 주처리기(1), 콘솔 구동기(100), DUART(5) 사이의 데이타 전송은 문자 단위로 이루어 진다.The console driver 100 of the present invention is connected between the main processor 1 and the DUART (5). Data transmission between the main processor 1, the console driver 100, and the DUART 5 is performed in units of characters.

콘솔 구동기(100)는 주처리기(1)의 커널로부터의 병렬 데이타를 받아들여 직렬 데이타로 변환하여 출력하기 위한 송신큐(transmittingqueue)(101)와, 송신큐(101)로부터 제공되는 정보를 DUART(5)의 레지스터들(107, 109)로 순차로 전달하기 위한 송신버퍼(transmitting buffer)(102)와, DUART(5)의 레지스터들로부터 제공되는 직렬 데이타를 받아들이기 위한 수신버퍼(recriving buffer)(103)와, 수신버퍼(103)로부터 제공되는 직렬 데이타를 병렬 데이타로 변환하여 주처리기(1)의 커널로 제공하는 수신큐(receiving queue)(104)와, DUART(5)와 송신버퍼(102) 및 수신버퍼(103)의 인터럽트를 처리하는 인터럽트처리기(interupt handler)(105)를 포함한다.The console driver 100 receives the parallel data from the kernel of the main processor 1, converts it into serial data and outputs the serial data, and transmits the information provided from the transmission queue 101 to DUART ( A transmitting buffer 102 for sequentially transferring to the registers 107, 109 of 5), and a receiving buffer for receiving serial data provided from the registers of the DUART 5; 103, a receiving queue 104 which converts serial data provided from the receiving buffer 103 into parallel data and provides it to the kernel of the main processor 1, DUART 5 and transmitting buffer 102. And an interrupt handler 105 that handles the interrupt of the receive buffer 103.

또한, 에코우플래그(echo flag)가 셋팅(setting)되는 경우에는 수신버퍼(103)의 출력이 송신큐(101)로 제공된다.In addition, when the echo flag is set, the output of the reception buffer 103 is provided to the transmission queue 101.

데이타 및 제어정보를 관리하기 위한 송신큐(101)와, 송신버퍼(102)와, 수신버퍼(103) 및 수신큐(104)는 시스템 제어기(2)의 지역메모리(local memory)내에 구성된다.The transmission queue 101, the transmission buffer 102, the reception buffer 103, and the reception queue 104 for managing data and control information are configured in a local memory of the system controller 2.

주처리기(1)의 커널, 콘솔구동기(100)의 버퍼들(102, 103)및 큐들(101, 104), 그리고 DUART(5)간의 데이타 흐름제어는 인터럽트 처리기(105)의 인터럽트처리함수와 시스템제어기(2) 내의 데이타흐름 제어처리함수의 연계에 의해 수행된다.The data flow control between the kernel of the main processor 1, the buffers 102 and 103 and the queues 101 and 104 of the console driver 100, and the DUART 5 is based on the interrupt processing function of the interrupt processor 105 and the system. This is performed by linkage of data flow control processing functions in the controller 2.

주처리기(1)(더 구체적으로는, 커널)가 콘솔로부터의 데이타 입력을 요구하는 경우, 콘솔의 키보드등에 의해 문자가 입력되면 그 문자는 DUART(5)의 데이타레지스터(107, 109)에 일단 저장된다.When the main processor 1 (more specifically, the kernel) requests data input from the console, when a character is input by the console keyboard or the like, the character is once input to the data registers 107 and 109 of the DUART 5. Stored.

DUART(5)의 데이타레지스터에 저장된 문자데이타는 수신버퍼(103) 및 수신큐(104)를 통하여 주처리기(1) 커널에 전달된다.The character data stored in the data register of the DUART 5 is transferred to the main processor 1 kernel through the reception buffer 103 and the reception queue 104.

이때, 에코우 플래그가 셋팅되어 있으면 수신버퍼(103)의 출력은 동시에 송신큐(101)로도 전달되어 화면에 에코우 된다.At this time, if the echo flag is set, the output of the reception buffer 103 is also transmitted to the transmission queue 101 at the same time and echoed on the screen.

이런 경우에 있어서, 그러나, 커널 모드가 아니면 모니터 데몬(monitor demon)이 수행된다.In this case, however, the monitor daemon runs unless it is in kernel mode.

주처리기(1) 내 커널이 콘솔로의 데이타출력을 요구하는 경우, 커널은 자신이 콘솔로 출력하고자 하는 문자 데이타를 일단 콘솔구동기(100)의 송신큐(101)로 제공한다.When the kernel in the main processor 1 requests data output to the console, the kernel first provides the character data to be output to the console to the transmission queue 101 of the console driver 100.

송신큐(101)의 직렬 출력은 송신버퍼(102)를 통하여 DUART(5)의 데이타레지스터로 제공되어 콘솔인 터미날에 출력된다.The serial output of the transmission queue 101 is provided to the data register of the DUART 5 via the transmission buffer 102 and output to the terminal which is the console.

버퍼들(102, 103) 및 큐들(101, 104)은 빈번한 데이타 송수신으로 인한 데이타 및 메시지 소통량의 부담(overhead of traffic)을 감소시켜 빠른 응답을 수행하도록 하고, 데이타 분실을 방지하는 기능을 한다.The buffers 102 and 103 and the queues 101 and 104 reduce the overhead of data and message traffic due to frequent data transmission and reception to perform a quick response and prevent data loss.

제4도는 인터럽트 처리기(105)의 기능수행과정을 나타낸 흐름도이다.4 is a flowchart illustrating a functional process of the interrupt handler 105.

제4도를 참조하여, 인터럽트 처리기(105)는 커널의 요구에 따라 DUART(5)의 2개의 포트들에 대해 교대로 인터럽트처리를 수행한다. 커널의 콘솔입출력요구에 따른 인터럽트처리기(105)의 인터럽트처리는 DUART(5)의 데이타레지스터(107, 109)에 저장된 데이타를 커널러 전달하기 위한 수신처리와 커널로부터 데이타를 DUART(5)의 데이타레지스터로 전달하기 위한 송신처리로 나누어 수행된다.Referring to FIG. 4, the interrupt handler 105 alternately performs interrupt processing on two ports of the DUART 5 in accordance with a request of the kernel. Interrupt processing of the interrupt handler 105 according to the console input / output request of the kernel includes reception processing for delivering data stored in the data registers 107 and 109 of the DUART 5 and data from the kernel to the data of the DUART 5. It is divided into transmission processing to transfer to register.

먼저, 커널의 콘솔입출력요구가 있는 경우, 인터럽트처리기(105) DUART(5)의 한 포트에 대한 인터럽트처리를 위하여 DUART(5)의 상태 레지스터(106, 108)를 읽어서 DUART(5)가 수신처리 준비상태에 있는 지의 여부를 조사하고(401), 수신처리 준비상태에 있는 것으로 판명되면 DUART(5)의 데이타레지스터로부터 데이타를 읽어 들인다(402). 이어, 읽어 들인 데이타가 콘솔 장치로부터 전달된 데이타임과 아울러 모드의 변환을 위한 문자 데이타인 지의 여부를 조사한다(403). 이때, 읽어 들인 데이타가 모드 변환을 위한 데이타이라고 판명되면(단계 403에서 '예'이면) 모드를 변환하고(404), 그런 후 지금까지의 처리가 두번째 포트를 위한 처리였는지의 여부를 조사한다(405).First, when there is a console input / output request of the kernel, the interrupt register 105 reads the status registers 106 and 108 of the DUART 5 for interrupt processing for one port of the DUART 5, and the DUART 5 receives the processing. It is checked whether it is in a ready state (401). If it is found that it is in a ready state for receiving processing, it reads data from the data register of DUART (5) (402). Then, it is checked whether the read data is the data transmitted from the console device and the character data for changing the mode (403). At this time, if the read data is found to be data for mode conversion (YES in step 403), the mode is switched (404), and then whether the processing up to now has been for the second port is checked ( 405).

상기의 단계 405에서, 두번째 포트를 위한 처리가 아니었던 것으로 판명되면 두번째 포트를 위한 인터럽트처리를 추가로 수행하기 위해 단계 401로 분기한다.If it is found in step 405 above that the process was not for the second port, then branch to step 401 to further perform interrupt processing for the second port.

이때, 두번째 포트를 위한 처리였던 것으로 판명되면 커널의 콘솔 입출력요구에 대한 인터럽트처리를 종료한다.At this time, if it is determined that the processing was for the second port, the interrupt processing for the console input / output request of the kernel is terminated.

한편, 상기의 단계 403에서, 읽어 들인 데이타가 모드의 변환을 위한 데이타가 아니라고 판명되면('아니오'이면), 현재의 모드가 콘솔모드인지의 여부를 조사한다(406).On the other hand, if it is found in step 403 that the read data is not data for mode switching (No), it is checked whether the current mode is the console mode (406).

이때, 현재의 모드가 콘솔모드가 아닌 것으로 판명되면(단계 406에서 '아니오'이면) 모니터 기능을 수행하고 상술한 단계 405로 복귀한다. 상기의 단계 406에서, 현재의 모드가 콘솔모드린 것으로 판명괴면('예'이면) 문자 데이타 및 상태 데이타가 수신버퍼(103)에 기록한다(408).At this time, if it is determined that the current mode is not the console mode (NO in step 406), the monitor function is performed and the process returns to step 405 described above. In step 406 above, if the current mode is found to be in console mode ('Yes'), character data and status data are written to the reception buffer 103 (408).

이로써, 콘솔로부터의 데이타가 수신버퍼(103) 및 수신큐(104)를 통하여 주처리기(1)의 커널로 제공되어 수신처리가 이루어징다. 수신처리가 완료된 경우(단계 408참조)나 수신처리의 준비가 되어 있지 않은 경우(단계 401에서 '아니오'이며), 인터럽트처리기(105)는 DUART(5)의 상태레지스터(106, 108)를 읽어서 DUART(5)가 송신처리 준비상태에 있는 지의 여부를 조사하고(409), DUART(5)가 송신처리준비상태에 있지 않은 것으로 판명되면(단계 409에서 '아니오'이면) 단계 405로 복귀한다.As a result, data from the console is provided to the kernel of the main processor 1 through the reception buffer 103 and the reception queue 104 to perform reception processing. When the reception process is completed (see step 408) or when the reception process is not ready (NO in step 401), the interrupt handler 105 reads the state registers 106 and 108 of the DUART 5, It is checked whether the DUART 5 is in a transmission processing ready state (409), and if it is determined that the DUART 5 is not in the transmission processing ready state (NO in step 409), the process returns to step 405.

상기의 단계 409에서, DUART(5)가 송신처리준비상태에 있는 것으로 판명되면('예'이면), 송신할 데이타(콘솔로 출력할 데이타)가 있는 지의 여부를 조사한다(410).In step 409, if the DUART 5 is found to be ready for transmission processing (YES), it is checked whether there is data to be transmitted (data to be output to the console) (410).

상기의 단계 410에서,송신할 데이타가 존재하는 것으로 판명되면('예'이면), 송신버퍼(102)의 데이타를 DUART(5)의 데이타레지스터에 기록하고(411), 그런 후 단계 405로 복귀한다.In the above step 410, if it is determined that there is data to be transmitted (YES), the data of the transmission buffer 102 is written to the data register of the DUART 5 (411), and then returned to the step 405. do.

송신버퍼(102)의 데이타를 DUART(5)의 데이타레지스터에 기록하는 것에 의해 커널로부터의 데이타가 콘솔로 전달된다.Data from the kernel is transferred to the console by writing the data of the transmission buffer 102 to the data register of the DUART 5.

상기의 단계 410에서, 송신할 데이타가 존재하지 않는 것으로 판명되면('아니오'이면) 송신인터럽트를 디스에이블(disable)시키고(412), 그런 후 단계 405로 복귀한다.In step 410 above, if it is determined that there is no data to transmit ('No'), the transmission interrupt is disabled (412), and then the flow returns to step 405.

이상에서 설명된 바와 같이, 본 발명에 따르면 시스템 제어기 내에 구성되는 콘솔입출럭구동기가 콘솔로의 문자 입력 또는 콘솔로부터의 문자출력을 직접 처리함으로써 주처리기의 오버헤드를 감소시킬수 있게 시스템의 효율을 향상시키는 효과가 있다.As described above, according to the present invention, the console entry / exit driver configured in the system controller improves the efficiency of the system so that the overhead of the main processor can be reduced by directly processing the character input to or output from the console. It is effective to let.

Claims (3)

다수의 주처리기(1)와, 시스템 제어기(2)와, 입출력 처리기(3) 및 공유메모리(4)가 시스템 버스(8)에 각각 밀결합되는 다중 처리기 시스템에서 콘솔의 입출력을 구동하기 이한 콘솔입출력 구동장치에 있어서; 상기 시스템제어기(2)와 콘솔 사이에 연결되고 두개의 포트를 각는 2포트범용 비동기 송수신기(DUART)(5)와, 콘솔의 입출력구동을 위한 콘솔 구동기(100)를 포함하되; 상기 주처리기(1)와 상기 콘솔 구동기(100) 및 상기 DUART(5) 사이의 데이타 전송은 문자단위로 이루어지고, 상기 주처리기(1)와 상기 콘솔 구동기(100)간의 정보교환은 메세지전송규약에 따라 상기 공유메모리(4)를 이용하고 인터럽트를 사용하는 메세지 전송방식으로 이루어지며; 상기 콘솔 구동기(100)는 상기 주처리기(1)의 커널로부터의 병렬 데이타를 받아들여 직렬 데이타로 변환하여 출력하기 위한 제1큐수단(101)과, 상기 제1큐수단으로부터 제공되는 종보를 상기 DUART(5)의 레지스터들로 순차로 전달하기 위한 제1버퍼수단(102)과, 상기 DUART(5)의 상기 레지스터들로부터 직렬로 제공되는 데이타를 받아들이기 위한 제2버퍼수단(103)과, 상기 제2버퍼수단으로부터 제공되는 직렬 데이타를 병렬데이타로 변환하여 상기 주처리기(1)의 상기 커널로 제공하기 위한 제2큐수단(104)과, 콘솔 입출력을 위한 인터럽트를 처리하는 인터럽트처리수단(105)을 포함하고; 상기 인터럽트처리수단은 상기 커널의 콘솔입출력요구가 있는 경우 상기 DUART(5)의 상태레지스터를 읽어서 상기 DUART(5)가 수신처리 준비상태에 있는지의 여부를 조사하고, 수신처리 준비상태에 있는 것으로 판명되면 상기 DUART(5)의 데이타레지스터로부터 데이타를 읽어 들이고, 상기 읽어들인 데이타가 콘솔 장치로부터 전달된 데이타임과 아울러 모드의 변환을 위한 문자 데이타인지의 여부를 조사하여 모드 변환을 위한 데이타이라고 판명되면 모드를 변환하고, 상기 읽어 들인 데이타가 모드의 변환을 위한 데이타가 아니라고 판명되면, 현재의 모드가 콘솔모드인지의 여부를 조사하여 콘솔모드가 아닌 것으로 판명되면 모니터 기능을 수행하며, 현재의 모드가 콘솔모드인 것으로 판명되면 문자 데이타 및 상태 데이타가 상기 제2버퍼수단(103)에 기록하고, 수신처리가 완료된 경우나 수신처리의 준비가 되어 있지 않은 경우, 상기 DUART(5)의 상기 상태레지스터를 읽어서 상기 DUART(5)가 송신처리 준비상태에 있는지의 여부를 조사하여 송신처리준비상태에 있는 것으로 판명되면 송신할 데이타가 있는지의 여부를 조사하고, 송신할 데이타가 존재하는 것으로 판명되면, 상기 제1버퍼수단(102)의 데이타를 상기 DUART(5)의 상기 데이타레지스터에 기록하며, 송신할 데이타가 존재하지 않는 것으로 판명되면 송신인터럽트를 디스에이블시키고, 상기의 모드변환, 모니터기능수행, 데이터레지스터쓰기, 송신인터럽트 디스에이블이 완료된 후 또는 송신준비가 완료되지 않은 경우 지금까지의 처리가 두번째 포트를 위한 처리였는지의 여부를 조사하여, 두번째 포트를 위한 처리가 아니었던 것으로 판명되면 두번째 포트를 위한 인터럽트처리를 추가로 수행하고, 두번째 포트를 위한 처리였던 것으로 판명되면 상기 커널의 콘솔입출력요구에 대한 인터럽트처리를 종료하는 기능을 수행하는 것을 특징으로 하는 다중 처리기 시스템으 콘솔 입출력 구동장치.Consoles for driving the input and output of the console in a multiprocessor system in which a plurality of main processors 1, a system controller 2, an input / output processor 3 and a shared memory 4 are tightly coupled to the system bus 8, respectively. An input / output drive device; A two-port universal asynchronous transceiver (DUART) 5 connected between the system controller 2 and the console and each having two ports, and a console driver 100 for input / output driving of the console; Data transmission between the main processor 1 and the console driver 100 and the DUART 5 is performed in units of characters, and information exchange between the main processor 1 and the console driver 100 is a message transfer protocol. According to the message transmission method using the shared memory 4 and using an interrupt; The console driver 100 receives first parallel data from the kernel of the main processor 1, converts the serial data into serial data, and outputs the serial data from the first queue means. First buffer means 102 for sequentially transferring to the registers of the DUART 5, second buffer means 103 for receiving data provided in series from the registers of the DUART 5, A second queue means 104 for converting serial data provided from the second buffer means into parallel data and providing it to the kernel of the main processor 1, and an interrupt processing means for processing an interrupt for console input / output ( 105); The interrupt processing means reads the state register of the DUART 5 when the console input / output request of the kernel is checked to determine whether the DUART 5 is in a reception processing ready state, and turns out to be in a reception processing ready state. If data is read from the data register of the DUART (5), the read data is data transmitted from the console device, and whether or not it is character data for mode conversion is determined. If the mode is changed and the read data is found to be not the mode for mode conversion, it is checked whether the current mode is the console mode, and if it is determined that the mode is not the console mode, the monitor function is performed. If it is determined that the console mode, the character data and status data is recorded in the second buffer means 103. When the reception processing is completed or when the reception processing is not ready, the state register of the DUART 5 is read to check whether the DUART 5 is in the transmission processing ready state, and is ready for transmission processing. If it is found that the data is transmitted, it is examined whether there is data to be transmitted; if it is found that there is data to be transmitted, the data of the first buffer means 102 is recorded in the data register of the DUART 5; If the data to be transmitted is found to be absent, the transmission interrupt is disabled and the processing so far is completed after the above mode change, monitor function execution, data register writing, transmission interrupt disabling is completed or transmission preparation is not completed. Investigate whether it was processing for the second port, and if it turns out that it was not processing for the second port, And performing an interrupt process for the port, and terminating the interrupt process for the console I / O request of the kernel if it is determined that the process was for the second port. 제1항에 있어서, 상기 제2버퍼수단(103)은 에코우플래그가 셋팅되는 경우에 상기 인터럽트처리수단(105)의 제어에 응답하여 자신의 출력을 상기 제1큐수단(101)으로 제공하는 것을 특징으로 하는 다중 처리기 시스템의 콘솔 입출력 구동장치.2. The second buffer means (103) according to claim 1, wherein the second buffer means (103) provides its output to the first queue means (101) in response to the control of the interrupt processing means (105) when the echo flag is set. Console input and output drive device of the multi-processor system. 다수의 주처리기(1)와, 시스템 제어기(2)와. 입출력 처리기(3)와, 공유메모리(4)와, 시스템 버스(8)와, 상기 시스템제어기(2)와 콘솔 사이에 연결되고 두개의 포트를 갖는 2포트범용 비동기 송수신기(DUART)(5)와, 콘솔의 입출력 구동을 위한 콘솔 구동기(100)를 포함하되; 상기 콘솔 구동기(100)는 상기 주처리기(1)로 부터의 테이타를 상기 콘솔로 전달하기 위해 상기 주처리기(1)와 상기DUART(5)사이에 상호 직렬 연결되는 송신큐 및 송신버퍼와, 상기 콘솔로부터의 데이타를 상기 주처리기(1)로 전달하기 위해 상기 DUART(5)상기 주처리기(1) 사이에 상호 직렬 연결되는 수신버퍼 및 수신규와,상기 주처리기와 상기 DUART 간의 데이타 송수신을 위한 인터럽트처리를 수행하는 인터럽트처리기를 구비하고 ;상기 주처리기(1)와 상기 콘솔 구동기(100) 및 상기 DUART(5) 사이에 데이타 전송은 문자 단위로 이루어지고, 상기 주처리기(1)와 상기 콘솔 구동기 (100) 간의 정보교환은 메세지전송규약에 따라 상기 공유메모리를(4)이용하고 인터럽트를 사용하는 메세지 전송방식으로 이루어지는 다중처리기 시스템에서 상기 콘솔의 입출력을 구동하기 위한 방법에 있어서 ;상기 주처리기에 탑재된 운영체제의 커널의 콘솔입출력요구가 있는 경우, 상기 인터럽트처리기가 상기 DUART(5)의 상태레지스터를 읽어서 상기 DUART가 수신처리 준비상태에 있는지의 여부를 조사하도록 하여, 수신처리 준비상태에 있는 것으로 판명되면 상기 DUART(5)의 테이타레지스터로부터 데이타를 읽어 들이도록 하는 단계(401,402)와 ; 상기 읽어들인 데이타가 콘솔 장치로부터 전달된 데이타임과 아울러 모드의 변환을 위한 문자 데이타인지의 여부를 조사하도록 하여(403), 모드 변환을 위한 데이타이라과 판명되면 모드를 변환하게 하고(404), 그런후 지금까지의 처리가 두번째 포트를 위한 처리였는지의 여부를 조사하도록 하여(405), 두번째 포트를 위한 처리가 아니였던 것으로 판명되면 두번째 포트를 위한 인터럽트처리를 추가로 수행하기 위해 상기 DUART 수신처리 준비상태를 조사하도록 하고, 두번째 포트를 위한 처리였던 것으로 판명되면 커널의 콘솔입출력요구에 대한 인터럽트처리를 종료하도록 하는 단계와 ; 읽어 들인 데이타가 모드의 변환을 위한 데이타가 아니라고 판명되면, 현재의 모드가 콘솔모드인지의 여부를조사하도록 하고(406), 현재의 모드가 콘솔모드가 아닌 것으로 판명되면 모니터 기능을 수행하도록 한후 상기 두번재 포트를 위한 처리 여부 조사하도록 하며, 현재의 모드가 콘솔모드인 것으로 판면되면읽어들인 데이타를 상기 수신버퍼에 기록하도록 하는 단계(408)와 ; 상기 수신버퍼로부터 제공되는 직렬 데이타를 상기 수신큐가 받아 들여서 병렬 데이타로 변환하여 상기 주처리기(1)의 상기 커널로 제공하도록 하는 단계와 ; 상기 주처리기(1)의 커널로부터의 콘솔출력요구가 있는 경우 상기 커널로부터의 병렬 데이타를 송신큐가 받아 들여서 직렬 데이타로 변환하도록 하고, 상기 송신큐로부터의 직렬 데이타를 상기 송신버퍼가 받아들이도록 하는 단계와 ; 수신처리가 완료된 경우나 상기 DUART의 수신처리의 준비가 되어 있지 않은 경우, 상기 인터럽트처리기는 상기 DUART의 상태레지스터를 읽어서 상기 DUART가 송신처리 준비상태에 있는지의 여부를 조사하도록 하여(409), 송신처리준비상태에 있지 않은 것으로 판명되면 상기의 두번째 포트를 위한 처리 여부 조사 단계를 수행하도록하고, 송신처리준비상태에 있는 것으로 판명되면 송신할 데이타가 있는지의 여부를 조사하는 단계(410)와 ; 송신할 데이타가 존재하는 것으로 판명되면, 상기 송신버퍼의 데이타를 상기 DUART의 데이타레지스터에 기록하도록 하고 (411), 송신할 데이타가 존재하지 않는 것으로 판명되면 송신인터럽트를 디스에이블시키고(412), 상기의 두번째 포트를 위한 처리 여부 조사 단계를 수행하도록 하는 단계를 포함하는것을 특징으로 하는 다중 처리기 시스템의 콘솔 입출력 구동방법.A plurality of main processors 1 and a system controller 2. A two-port universal asynchronous transceiver (DUART) 5 connected between the input / output processor 3, the shared memory 4, the system bus 8, the system controller 2 and the console and having two ports; It includes a console driver 100 for driving the input and output of the console; The console driver 100 includes a transmission queue and a transmission buffer connected in series between the main processor 1 and the DUART 5 to transfer data from the main processor 1 to the console, In order to transfer data from the console to the main processor (1), the DUART (5) receiving buffer and reception protocol connected in series between the main processor 1, and for transmitting and receiving data between the main processor and the DUART An interrupt processor for performing interrupt processing; data transmission between the main processor 1, the console driver 100, and the DUART 5 is performed in units of characters, and the main processor 1 and the console. The exchange of information between the drivers 100 drives the input / output of the console in the multiprocessor system which uses the shared memory 4 and the message transfer method using interrupts according to the message transfer protocol. In the method for; if the console I / O request of the kernel of the operating system mounted on the main processor, the interrupt processor reads the status register of the DUART (5) to check whether the DUART is in the ready to receive processing (401, 402) to read data from the data register of the DUART (5) when it is determined that the receiver is ready to receive processing; Investigate whether the read data is data transmitted from the console device and whether it is character data for mode conversion (403), and if it is determined that the data is for mode conversion, mode conversion (404). After that, it is checked whether the processing up to now was processing for the second port (405), and if it is found that the processing was not for the second port, the DUART reception processing preparation is performed to further perform interrupt processing for the second port. Checking the status and terminating the interrupt processing for the console input / output request of the kernel if it is determined that the processing was for the second port; If the read data is found to be not the data for the mode conversion, it is checked whether the current mode is the console mode (406), and if the current mode is found not to be the console mode, the monitor function is performed. Checking whether the second port is processed or not, and if it is determined that the current mode is the console mode, recording the read data into the receiving buffer (408); Receiving, by the reception queue, serial data provided from the reception buffer and converting the serial data into parallel data and providing the serial data to the kernel of the main processor (1); When there is a console output request from the kernel of the main processor 1, parallel data from the kernel is accepted by the transmission queue and converted into serial data, and the transmission buffer accepts serial data from the transmission queue. Step; When the reception process is completed or when the reception processing of the DUART is not ready, the interrupt processor reads the status register of the DUART to check whether the DUART is in a transmission processing preparation state (409). If it is determined that it is not in the processing ready state, performing a process checking step for the second port; and if it is determined that it is in the processing ready state, investigating whether there is data to be transmitted (410); If the data to be transmitted is found to exist, the data of the transmission buffer is written to the data register of the DUART (411). If the data to be transmitted is found to be absent, the transmission interrupt is disabled (412). And performing a step of checking whether or not a processing is performed for a second port of the console.
KR1019940016750A 1994-07-12 1994-07-12 Apparatus for input/output of console in multiprocessor system and method of the same KR0131860B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019940016750A KR0131860B1 (en) 1994-07-12 1994-07-12 Apparatus for input/output of console in multiprocessor system and method of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019940016750A KR0131860B1 (en) 1994-07-12 1994-07-12 Apparatus for input/output of console in multiprocessor system and method of the same

Publications (1)

Publication Number Publication Date
KR0131860B1 true KR0131860B1 (en) 1998-04-24

Family

ID=19387819

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940016750A KR0131860B1 (en) 1994-07-12 1994-07-12 Apparatus for input/output of console in multiprocessor system and method of the same

Country Status (1)

Country Link
KR (1) KR0131860B1 (en)

Similar Documents

Publication Publication Date Title
US5428799A (en) Redirection of interrupts to microprocessors
US4821180A (en) Device interface controller for intercepting communication between a microcomputer and peripheral devices to control data transfers
US5935233A (en) Computer system with a switch interconnector for computer devices
US6477610B1 (en) Reordering responses on a data bus based on size of response
US6532510B2 (en) Computer system for processing system management interrupt requests
JPH096717A (en) System and method for data processing containing buffering mechanism for inbound and outbound read as well as posted write
EP2062147B1 (en) Method and apparatus for conditional broadcast of barrier operations
US5475846A (en) Apparatus for processing PCMCIA interrupt requests
US4905145A (en) Multiprocessor
US5014236A (en) Input/output bus expansion interface
US6061757A (en) Handling interrupts by returning and requeuing currently executing interrupts for later resubmission when the currently executing interrupts are of lower priority than newly generated pending interrupts
US6145048A (en) Method of processing system management interrupt requests
US5923887A (en) Interrupt request that defines resource usage
US20050256998A1 (en) Bus bridge device
KR0131860B1 (en) Apparatus for input/output of console in multiprocessor system and method of the same
US5640570A (en) Information handling system for transmitting contents of line register from asynchronous controller to shadow register in another asynchronous controller determined by shadow register address buffer
US5432910A (en) Coupling apparatus and method for increasing the connection capability of a communication system
US5666545A (en) Direct access video bus computer system and method for transferring video information using a dedicated video bus
EP0546354B1 (en) Interprocessor communication system and method for multiprocessor circuitry
JPS634209B2 (en)
KR20020067752A (en) The one chip asynchronous microprocessor Inter Processor Communication circuit
US7111301B1 (en) Request and completion queue load balancing
US6023752A (en) Digital data apparatus for transferring data between NTDS and bus topology data buses
KR0145932B1 (en) Dma controller in high speed computer system
KR950010947B1 (en) Bus protocol mapping circuit

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: 20071115

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee