KR850000562B1 - 계산기 시스템간 통신방식 - Google Patents

계산기 시스템간 통신방식 Download PDF

Info

Publication number
KR850000562B1
KR850000562B1 KR1019800004238A KR800004238A KR850000562B1 KR 850000562 B1 KR850000562 B1 KR 850000562B1 KR 1019800004238 A KR1019800004238 A KR 1019800004238A KR 800004238 A KR800004238 A KR 800004238A KR 850000562 B1 KR850000562 B1 KR 850000562B1
Authority
KR
South Korea
Prior art keywords
subsystem
address
buffer
receiving
transmission
Prior art date
Application number
KR1019800004238A
Other languages
English (en)
Other versions
KR830004628A (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 KR1019800004238A priority Critical patent/KR850000562B1/ko
Publication of KR830004628A publication Critical patent/KR830004628A/ko
Application granted granted Critical
Publication of KR850000562B1 publication Critical patent/KR850000562B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

내용 없음.

Description

계산기 시스템간 통신방식
제1도는 채널간 결합장치에 의한 서브시스템간 결합방식을 표시하는 도.
제2도는 멀티프로셋서 시스템간 통신을 표시하는 도.
제3도는 본 발명에 있어서의 통신로의 개념도.
제4도는 본 발명에 의한 실시예의 통신방식을 표시하는 도.
제5도는 CAW(Channel Address Word)의 양식.
제6도는 CCW(Channel Control Word)의 양식.
제7도는 BCB(Buffer Control Block)의 양식.
제8도는 BAT(Buffer Adress Table)의 양식.
제9도는 BAW(Buffer Adress Word)의 F필드의 양식
제10도는 본 발명에의 통신채널의 블록선도.
제11도는 엔큐포인터와 데큐포인터의 개념도.
제12도, 제13도는 본 발명의 예에 대한 흐름도이다.
본 발명은 복수의 계산기 시스템(서브시스템)간의 통신방식에 관한 것이다.
종래에는 서브시스템간 결합방식으로서 제1도에 표시하고 있는 바와 같은 채널간 결합장치 CTCA에 의한 서브시스템간 결합방식과 제2도에 표시되어 있는 바와 같은 멀티프로셋서간의 통신을 이용한 결합방식이 사용되었다.
주기억장치, CPU와 채널은 각각의 서브시스템을 구성하고, CTCA(Channel To Channel Adaptor)는 서브시스템을 결합하는 통신로를 구성하고 있다.
한 서브시스템의 CPU로부터 채널에 대하여 입출력장치 기동명령(SIO : Start Input Output)이 통신을 위하여 나타나면, 채널은 주기억장치상의 채널 어드레스워드(CAW : Channel Address Word)를 읽고, CAW에 의하여 지정된 어드레스의 채널 제어워드(CCW Channel Control Word)의 내용을 해독하여 처리를 실행한다.
CTCA(Channel To Channel Adaptor)에 의한 서브시스템간 결합방식은 다음에 기술하는 바와 같은 문제점을 가지고 있다. 즉, 그 문제점이란,
(i) CTCA의 동작은 CCW의 형태로만 지령할 수 있고, 고도의 지능을 갖는 처리를 요구하는 것이 어렵다.
(ii) CTCA의 동작종료는 항상 인터랍트에 의하여 CPU에 통지되므로 인터랍트에 의한 오버 헤드(Over head)가 크게 된다.
(iii) CPU가 채널실행 프로그램(Channel execution program)에 대하여 우선순서(priority sequence)를 지정하는 것이 곤란하다.
제2도는 I/O 서브시스템을 종래의 멀티프로셋서 형식으로 구성한 종래예를 표시하는 것이다.
제2도에서 좌측부분은 호스트 서브시스템을 구성하고 우측부분은 I/O 서브시스템을 구성하고 있다.
주기억장치는 CPU1과 CPU2의 명령, CPU1과 CPU2의 데이터, I/O 프로셋서 IOP1과 IOP2의 명령, I/O프로셋서 IOP1과 IOP2의 데이터 및 통신을 위한 데이터를 기억하고 있다.
통신을 위한 데이터(정보) 영역에는 예를 들면 호스트계가 서브시스템에 요구하는 처리내용이 기록되어진다. 호스시스템으로부터 서브시스템에 SIG-P 명령이 발해져서 I/O 프로셋서 IOU1또는 IOU2에 인터랍트가 걸리게 되면, I/O프로셋서 IOU1또는 IOU2는 상기 영역에 기록되어진 데이터(정보)를 읽어내어 그 내용을 실행하도록 동작한다. 여기서 SIG-P 명령이란 "IBM SYSYEM 370 Principle of Operation"에 규정되어 있는 Signal Processor 명령을 말하는 것이며, Multi-Processing 기구로서 CPU간 통신수단으로 이용된다.
제2도의 시스템의 경우에서는 공통메모리상의 SIG-P 명령의 정보는 통신방법을 이룬다.
제2도는 다음과 같은 문제점을 가지고 있다.
(I) SIG-P 명령의 경우에 특징의 프로셋서를 지정하여 인터랍트를 걸때 통지를 발행하는 서브시스템은 상대방 서브시스템의 상태를 첵크하여 통지를 받는 프로셋서의 인터랍트의 타당성을 판단하지 않으면 아니된다.
(II) 서브시스템이 밀접하게 결합(타이틀리커플)하기 때문에 서브시스템간의 물리적인 거리를 크게하는 것이 곤란하고 또한 효율이 떨어진다.
본 발명은 상기의 고찰에 기초를 둔 것으로서,
(가) 논리적으로 하이레벨(high level)의 프로토콜(Protocol)이 서브시스템간의 통신에 통신에 사용될 수 있을것.
(나) 서브시스템간의 통신에 수반하는 인터랍트가 최소한으로 저감될 것.
(다) 우선순위(Priority)에 의한 요구(repuest)가 서브시스템에 전송될때 우선순위처리(priority processing)가 서브시스템간에 정확하게 수행될 것.
(라) 서브시스템간의 물리적인 거리에서 하드웨어의 증가와 효율저하는 가능한한 최소화 될것.
(마) 하드웨어 에러가 발생되었을때, 복구처리는 오퍼레이팅 시스템(OS : Operating System)에 의하여 효과적으로 행하여질 것.
(바) 효율이 좋은 데이터전송 및 고속응답 특성이 확실히 보장될 것.
(사) 전용 서브시스템에 의한 시스템 구성에 한하지 아니하고 단순한 시스템간에 결합에서 복잡한 시스템에 이르기까지 널리 이용할 수 있을 것.
등의 요구를 만족시키는 서브시스템간 통신방식을 제공함을 목적으로 한다.
그리하여 상기한 목적을 달성하기 위한 본 발명을 독립의 혹은 공통의 OS의 제어하에서 동작하는 제1의 서브시스템과 제2의 서브시스템을 가지는 데이터처리 시스템처리 시스템에서 다음과 같은 특징을 갖는다.
송신측 서브시스템은 n개의 송신버퍼를, 수신측 서브시스템은 m개의 수신버퍼를 각각의 주기억소자상에 갖는다.
상기의 송신측 서브시스템은 n개의 엔트리를 갖는 송신 버퍼어드레스 테이블(BAT)를, 상기 수신측 서브시스템은 m개의 엔트리를 갖는 수신 BAT를 각각의 주기억소자상에 가지며, 상기한 각각의 엔트리는 대응하는 상기 송수신 버퍼의 선두 어드레스 정보와 버퍼의 길이정보 또는 관련버퍼의 최종어드레스 정보를 포함한다.
상기의 송신측 서브시스템은 송신 BAT의 선두 어드레스, 그 테이블의 엔트리수, 그 테이블에 보지되어 있는 다음에 엔큐(enqueue)할 버퍼 어드레스를 지시하는 ENQP(Enqueue Pointer)와 그 테이블에 보지되어 있는 다음에 데큐(dequeue)해야할 버퍼 어드레스를 지시하는 DEQP(Dequeue Pointer)를 포함하는 BCB를 관련송신측 서브시스템에 주기억상 또는 레지스터상에 가진다. 또한 상기한 수신측 서브시스템도 수신 BAT의 선두 어드레스, 그 테이블의 엔트리수, 그 테이블에 보지되어 있는 다음에 엔큐할 버퍼 어드레스를 지시하는 ENQP, 그 테이블에 보지되어 있는 다음에 데큐할 버퍼 어드레스를 지시하는 DDQP를 포함하는 BCB을 관련 수신측 서브시스템의 주기억상 또는 레지스터상에 가진다.
그 밖에 송신측 서브시스템의 송신버퍼에 놓인 데이터를 대응하는 수신측 서브시스템의 수신버퍼에 전송하는 통신로를 갖는다. 여기서 엔큐(Engueue), 데큐 (Dequeue)란 레지스터에 대하여 정보를 넣는 것을 엔큐, 반대로 꺼내는 것을 데큐라 한다.
본 발명에서 특징으로 하는 통신로에 대하여 설명한다.
본 발명을 실시하기 위하여 전용의 통신채널이 준비되고 이 통신채널은 양 서브시스템에 놓여져 물리적으로 접속되어 있다. 통신채널에는 일반적으로 복수의 송신채널 혹은 수신서브채널이 존재한다. 각 송신서브채널은 타서브시스템의 수신서브채널과 1대 1로 접속되어 있고, 각기 논리적으로 독립된 통신로를 형성하는 제3도는 본 발명에 있어서의 통신로의 개념도이다.
하나의 통신채널내의 복수의 서브채널은 논리적으로 는 상호 독립되어 있으나, 통상, 동일한 하드웨어를 공용하는 동작하므로 상호 의존한다. 또 하나의 물리적인 통신로는 복수의 논리적으로 독립한 통신링크 (link)에 의하여 공용하는 형태로 동작하는 것도 가능하다.
송신·수신 서브채널은 각각 정지모드, 동작모드(mode)를 갖고 하나의 통신로를 형성하는 한벌의 송신 서브채널, 수신 서브채널이 동작모드에 있을때, 통신로를 통한 데이터 전송이 가능하다.
실시예에서는 그 서브채널의 기동·정지는 SIO 명령, 정지 IO 명령(HIO 명령)에 의하여 제어되어진다.
통신로를 형성하는 송신·수신 서브채널이 정지모드에 있다가 SIO 명령에 의하여 기동되면, 통신로는 데이터 전송동작을 개시한다. 통신로에 의한 데이터 전송은 하나의 송신버퍼 영역에 기억된 데이터 단위, 즉 QE(Queue Element)를 하나의 단위로 하여 행하여진다.
실시예에서 QE의 길이는 그것을 기억하는 버퍼영역의 길이와 같이하며, 하나의 송신버퍼의 내용 전체가 다른 시스템의 대응하는 수신버퍼영역에 전송된다. 하나의 QE의 전송은 통신로의 다음의 3개의 동작에 의하여 고속으로 행하여진다. 즉, (1) 송신서브채널에 의하여 송신버퍼로부터 QE를 읽어내는 동작, (2) 송신서브채널로부터 수신서브채널로 상기 QE를 전송하는 동작, (3) 수신서브채널에 의하여 수신버퍼 영역에 상기 QE를 써넣는 동작이다.
이에 대한 자세한 동작 설명은 뒤에 설명하겠다.
다음에 제4도-제9도를 참조하여 본 발명의 실시예에 의한 데이터 전송동작을 설명한다.
제4도는 본 발명에 의한 실시예의 통신방식을 표시하는 그림이고, 이 그림에서 1,2는 각기 서브시스템 1,2의 주기억장치, 3,4는 각기 서브시스템 1,2의 CAW(Channel Address Word)이고, 이 CAW에 주기억악세스에 대한 보호메카니즘에 사용되는 보호키(Protection Key)와 CCW의 선두 어드레스가 기억된다.
이러한 내용은 CPU가 SIO 명령을 실행하고 있는 동안 송신(혹은 수신) 서브채널에 주어진다.
제5도는 CAW의 양식을 표시하는 그림이다. 제5도의 5,6은 각기 서브시스템 1, 서브시스템 2의 CCW이고, 제6도에 그 형식이 표시되어 있다. 명령코드는 송신(SEND), 수신(RECEIVE), 센스(SENSE)의 어느 것인가를 나타낸다.
송신명령은 송신서브채널에 대해서만이 유효하고, 송신서브채널을 정지모드에서 동작모드로 바꿀 때에 사용된다. 수신명령은 수신서브채널에 대해서만이 유효하고, 수신서브채널을 정지모드에서 동작모드로 바꿀때 사용된다. 센스명령은 송신/수신 서브채널 모두에 대하여 유효하고, 서브채널이 SENSE 정보를 보지하고 있을 때 그 SENSE 정보를 주기억장치에 저장하기 위하여 사용된다.
CCW 어드레스는 SEND 명령일때는 송신버퍼 제어블록(BCB)의 선두어드레스를 표시하고 RECEIVE 명령일때는 수신 BCB의 선두 어드레스를 표시하고 SENSE 명령일때는 SENSE 정보를 저장하는 영역(주기억장치상)의 선두 어드레스를 표시한다. CCW의 카운트 피일드(field)는 송신·수신 명령일때는 사용치 아니하고 센스명령일때는 저장되어야 할 센스정보의 값(value)을 나타낸다.
제4도의 7,8은 각기 서브시스템 1,2의 BCB를 표시한다. 제7도에서 BCB의 형식을 나타냈다.
실시예에서는 BCB는 주기억장치상에 두지만 레지스터상에 두는 것도 가능하다. THP는 버퍼 어드레스 테이블(BAT)의 선두어드레스를 표시하고 있다. TL은 BAT의 엔트리의 개수를 나타내고 있다. 엔큐포인터(ENQP)는 상기한 BAT의 엔트리 번호(entry number : O~TL-1)를 지정하고 다음에 엔큐할 버퍼를 지정한다. 데큐포인터(DEQP)는 상기 BAT의 엔트리번호(O~TL-1)를 지정하고, 다음에 데큐할 버퍼를 지정한다. ENQP, DEQP는 QE의 모드엔큐 또는 데큐에 대해 +1의 증가에 의하여 갱신(update)되고, 또한 그들은 TL-1과 일치될때 0이 되도록 갱신되어진다.
제4도의 9, 10은 각기 서브시스템 1, 2의 BAT이고, 제8도는 그 형식이 표시되어 있다.
제8도의 테이블의 각 엔트리는 8바이트로서 구성되고 버퍼어드레스워드(BAW)라고 부른다. 각 BAW는 플레그 필드(flag field : F) 버퍼 렝스 필드(BL : Buffer Length Field), 버퍼 어드레스 필드(BA Buffer Adderess Field)로서 구성된다. F는 인터랍트제어를 위한 비트에 의하여 정의되어지고, 제9도에 그 비트의 예를 나타내고 있다. BL은 송신 혹은 수신버퍼의 길이이고, BA는 상기 버퍼의 선두어드레스이다.
제9도에서 비트 0,1(즉, 첫번째, 두번째 비트)은 인터랍트 제어용으로 할당되어 있고, 상기 BAW에 의하여 지정된 (specified) 송신버퍼의 내용을 수신버퍼에 전송할때, 송신 서브시스템의 프로그램은 이들 비트들을 세트(set) 또는 리세트(reset)함으로써 인터랍트를 제어할 수 있다.
비트 0(FO)이 세트되면, 송신서브시스템에 인터랍트가 걸리고 반면에 비트 1(F1)이 세트되면, 수신측 서브시스템에 인터랍트가 걸린다.
제4도의 11-14는각기 BAW에 지정되는 버퍼영역을 표시하고 있다. QE는 큐엘레맨트가 그 버퍼영역에 기록되는 것을 표시하고 있다. 제4도의 15, 16은 하드웨어로 표시되어 있는 데이타 전송을 위한 통신채널이며, 이 채널을 통한 데이타 전송은 CPU 프로그램의 실행에 의하여 비동기로 행하여진다.
다음에 제4도를 참조하여 송신측 서브시스템에서 수신측 서브시스템으로 데이터가 전송되는 모습을 기술한다. 제4도는 서브시스템 1을 송신측, 서브시스템 2을 수신측으로 하는 편도방향 통신로(one-way communication path)를 표시하고 있다. 이와 역방향의 편도방향 통신로를 또 하나 설치하면, 서브시스템 1과 서브시스템 2 사이는 쌍방향 통신로(two-way communication Path)가 실현될 수 있다.
송신서브시스템의 프로그램은 ENQP에 의해 지정된 송신의 송신버퍼에 QE형식의 데이터를 써넣음과 동시에 그 ENQP를 갱신(update)함으로써 통신로에 데이터 전송을 지시한다. 프로그램은 갱신전의 ENQP에 의하여 지정된 BAW의 비트 0(즉 첫번째 비트)을 1로 세트함으로써 이 QE가 다른 서브시스템에 전송되고 있다는 것을 인식할 수 있다. 비트 1이 1로 세트되면, QE의 전송이 다른 시스템의 프로그램에 통지된다. 그에 의하여 인터랍트가 수신측에 걸리고, 그것은 채널상태워드(CSW)에 의하여 통지된다.
프로그램은 ENQP값이 DEQP-1이 될때까지 계속하여 엔큐할 수 있다.
이처럼 ENQP가 DEQP-1이 될때까지 연속 엔큐하는 것이 가능한 이유는 먼저 BAT가 정보영역(QEi)을 표시하는 포인터로서 이루어지지만 이 포인터 영역은 랩 어라운드(wRAP-AROUND)로 사용되기 때문이며, 이는 제11도와 같다.
결국, 제11도의 그림에서 ENQP는 다음 QE의 위치를 나타내는 BAT 엔트리를 표시하며, DEQP는 다음에 통신채널이 전송할 QE의 위치를 나타낸다. 통신채널은 항상 ENQP와 DEQP가 일치하는지 아닌지를 조사하여, 불일치하면 일치할때까지 데이타 전송과 DEQP의 갱신을 반복한다. 그러나 만약 통신채널의 전송(데큐처리)보다도 CPU 명령의 엔큐처리속도가 빠르다면, DEQP는 통신채널이 전송할 QE의 BAT엔트리를 표시하며, CPU명령에 의하여 이를(데큐속도를) 추월하면 앞의 정보를 파괴하게 된다.
이들의 큐잉(Queueing)동작에 있어서, 프로그램은 SIO 명령을 전혀 사용치 않고 있으므로 종래의 방식에 비하여 오버헤드가 저감된다는 것이 명백하다.
한편, 동작상태에 있는 통신로의 송신 서브채널은 다른 시스템에 전송할 QE가 있는지의 여부를 일정시간마다 체크한다. 즉, 송신서브채널은 일정시간마다 ENQP와 DEQP를 비교하여 일치하고 있는지 없는지를 본다. 만약 일치하고 있으면, 전송할 QE가 없는 상태라고 인식하여 일정시간 대기상태에 들어간다.
이 상태가 연속하여 일정회수 반복되면 송신서브채널은 송신측 서브시스템에 SIO 명령의 종료 인터랍트를 걸고, 정지모드에 들어간다. 만약 ENQP와 DEQP가 일치하고 있지 않으면, 송신측 서브시스템은 전송되어야 할 QP가 최소한 한개는 있는 상태로 판단하고, 수신측 서브시스테 1의 ENQP와 DEQP를 일정한 시간 간격으로 읽어내고 불일치가 있는지의 여부를 감지한다. 만약 불일치가 인식되고 서브시스템 2와 통신을 하여 수신이 가능하면 QE의 내용을 전송한다.
예를 들면 수신측의 ENQP로 지시된 수신버퍼가 빈 상태인지의 여부와 그 버퍼의 길이가 송신 QE의 길이보다 큰지의 여부등을 체크한다. 만약 수신이 가능하면 통신로는 QE의 전송동작을 개시한다. 전송동작은 QE를 수신버퍼에 저장동작과, 수신측 ENQP를 갱신하는 동작과, 송신측 DEQP를 갱신하는 동작을 완표함으로써 종료한다. 이때 만약 송신측의 BAW의 비트 0이 1이면 송신측에 인터랍트가 발생하고 비트 1이 1이면 수신측에 인터랍트가 발생하여 QE가 전송이 되었음을 통지하게 된다. 실시예에서는 이러한 인터랍트가 일어나더라도 정지모드에 들어가지 않고 동작모드를 유지한다.
하나의 QE의 전송이 종료되면 다음의 QE가 있는지 어떤지 체크한다. 그 후에는 위에 기술한 바와같은 동작이 반복된다. 수신측 프로그램은 상기 버퍼로부터 수신버퍼의 QE를 데큐한다. (즉, 주기억장치로). 수신측 프로그램은 또한 수신 BCB의 ENQP와 DEQP를 비교할 수 있다. 그들이 일치될때 수신측 프로그램은 QE가 없다고 인식하고, 반면에 일치하지 않는다면 QE가 있다고 인식한다.
ENQP와 DEQP가 일치하지 않을 경우 프로그램은 데큐를 행하고 DEQP를 갱신한다.
수신측 프로그램은 또한 수신측 BAW의 상기 인터랍트 지정비트 1(두번째 비트)에 의한 트리거를 사용하여 두 포인터를 비교함이 없어도 QE를 데큐할 수 있다. 또한 BAW에서 버퍼길이 정보대신 버퍼최종번지 정보를 제공하는 방법을 생각할 수 있다.
송신측 프로그램과 통신로와 수신측 프로그램의 동작은 위에서 설명한 바와 같고, 이들은 동시에 동작할 수 있으며, 그에 의하여 고속도 데이타 송신이 실현되어질 수 있다. 더구나 인터랍트가 최소화되어지기 때문에 인터랍트의 오버헤드는 성공적으로 감소되어진다.
구체적인 데이타 전송동작은 아래 제10도에 표시된 통신채널의 블록선도를 사용하여 설명하겠다.
제10도에서, 20은 ALU의 단입력 레지스터로서, 주기억부에 기록하는 동안 버퍼레지스터로서 사용되는 레지스터(RA)이고, 21은 ALU의 또 다른 입력 레지스터로서, 주기억부에서 읽어내는 동안 버퍼레지스터로서 사용되는 레지스터(RB)이고, 22는 연산회로(가감산)(ALU)이며, 23는 LS에 기록하는동안 사용되는 버퍼레지스터(RC)이고, 24는 QE의 데이타를 위한 버퍼로서 사용되는 국부기억부(LS : local storage)이며, 25는 LS의 번지레지스터(LSA)이고, 26은 주기억악세스 제어회로(MEC : Main storage Access Control Circuit)이다. 또한 27은 송신측 서브채널(SSC : Sender Subchannel)이고, 28은 송신측 서브채널(RSC)이며, 29는 명령송신 제어회로(CSC)이고, 30은 명령수신 제어회로(CRC)이며, 31은 다른 채널로 데이타를 송신하기 위한 버퍼레지스터(RE)이고, 32는 다른 채널로부터 데이타를 수신하기 위한 버퍼레지스터(RD)이다.
제10도에 나타난 통신채널은 송신과 수신동작을 동시에 수행하기 위한 구조를 갖고 있다. 송신동작은 송신측 서브채널(SSC) 27에 의하여 제어되어지고, 수신동작은 수신측 서브채널(RSC) 28에 의하여 각각 제어된다. SSC 27은 다른 시스템의 RSC와 짝이 되어서 QE의 연속 전송을 할 수 있게 한다.
제12도, 제13도는 본 발명의 예인 송·수신측 서브채널 27,28에 대한 흐름도이다.
(i) 제12도에 도시된 바와 같은 송신측 서브채널 27의 동작.
송신측 서브채널 27은 동작모드에 있을때 일정시간 간격마다 전송할 QE가 있는지를 첵크한다. 이 서브채널은 주기억부로부터 ENQP와 DEQP를 읽고, 레지스터 RA 20에서 ENQP를, 그리고 레지스터 RB 21에서 DEQP를 세트시킨다. AIU 22는 그들을 비교한다. 그들이 일치할때 그것은 전송할 QE가 없는 것으로 판단한다. 그러나 일치하지 않을때 그것은 전송할 QE가 있는 것으로 판단한다. 만약 그들이 일치하지 않으면 SSC 27은 QE가 수신될 수 있는가를 조사하기 위하여 다른 시스템의 수신서브채널 28에 명령 SRQ를 발생한다. 이 명령은 SSC 27에 의하여 명령송신제어회로(CSC) 29에 보내지고, 한편 CSC 29는 레지스터 RE 31에 상기 명령을 세트시키고 다른 시스템에 그것을 전송한다.
다른 시스템의 수신서브채널 28로부터 보내진 응답명령은 레지스터 RD 32에 의하여 수신되어지며, 명령 수신제어회로(CRC) 30에 의하여 부분적으로 해석되어서, 다시 SSC 27로 넘겨진다.
상기 명령은 수신의 가능성을 뜻하는 ROK 명령과 수신불가능을 뜻하는 RNOK 명령으로 분류된다.
SSC 27은 만일 RNOK를 받으면, ROK를 받을때까지 대기모드로 들어간다. 반면 SSC 27이 ROK를 받으면 그는 주기억장치상의 QE를 지정된 길이(예를 들어 64바이트, 이후 블록이라 한다)로 LS 24에 로드(load)시키고, 다른 시스템에서 상기한 블록 데이타를 보내기 위하여 송신명령 SD를 발생한다. SSC 27은 CSC 29에 SD 명령을 보내고, 따라서 CSC 29는 RE 31에 SD 명령을 보냄과 동시에 상기 지정한 양의 데이타를 연속해서 송신한다.
이 블록데이타는 SD 명령필드와 최종블록인지 아닌지를 표시하기 위한 비트들과, 다른 시스템에 인터랍트를 요구하는 비트들, 그리고 블록의 길이를 표시하기 위한 비트들을 표시한다. 블록전송은 QE의 최후블록이 전송될때까지 계속되며, 최후블록이 전송되었을때 송신서브채널(SSC) 27은 수신서브채널로부터 송출되는 수신종료 보고명령(RCP)을 기다린다. SSC 27이 명령 RCP를 수신하면 그것은 DEQP를 갱신한다.
DEQP의 갱신은 다음과 같이 처리되어진다. BCB의 DEQP는 레지스터 RB 21에 로드되어, 지정된 값(specified value)이 ALU 22에 의하여 가산되어서, 레지스터 RA 20에 옮겨진다. 그리고나서 BCB의 TL이 레지스터 RB 21에 로드되고, RA 20과 RB 21의 내용은 ALU 22에 의하여 비교되어진다.
이들이 일치될때 0(영)이 DEQP의 갱신된 값으로 주기억부의 DEQP에 저장된다. 만약, 일치되지 않는다면, RA 20의 값이 DEQP내에 저장된다. (BAT는 Wrap Around의 큐를 구성하며, 엔큐/데큐는 공히 0.1……TL-1와 같이 최대 TL-1로부터 0에 랩어라운드 한다. 엔큐포인터, 데큐포인터는 공히 엔큐, 데큐할때마다 "+1"되나, 만약 포인터의 값이 "TL"에 일치하면 "0"으로 한다. 즉, 포인터의 값이 일치하면 큐는 비어있는 것이라고 해석할 수 있다. CPU 명령에 의하여 데큐속도를 추월하면, 앞의 정보를 파괴하므로, 엔큐포인터, 데큐포인터는 공히 상대의 포인터를 추월하지 않도록 제어한다) 한개의 QE의 전송은 위헤 언급된 동작으로 끝나고 그후 다음 QE의 전송동작은 이와 같이 반복된다.
(ii) 제 13도에 도시된 바와 같은 수신서브채널 28의 동작.
수신서브채널 28은 그것이 동작모드에 들어가면, 다른 시스템이 송신측 서브채널로부터 전송되어지는 송신요구명령 SRQ를 기다린다. 명령 SRQ는 그것이 레지스터 RD 32에 의하여 수신되면 CRC 30에 의하여 구분적으로 해석되어서 RSC 28에 넘겨진다. RSC 28은 수신가능성을 검토하기 위하여 주기억부의 BCB로부터 ENQP와 DEQP를 읽고, 레지스터 RA 20과 RB 21에서 각각 그들을 세트시킨다. 그들은 ALU 22에 의하여 비교되고, 그들이 일치할때 수신이 불가능하다고 판단하며, 그들이 일치하지 않을때 수신이 가능하다고 판단한다. 만약 수신이 가능하다면 명령 ROK가 다른 시스템의 송신측 서브채널에 송출되고 반면에 수신이 불가능하다면 명령 RNOK가 송출되어 SD 명령의 수신할 때까지 기다린다.
SD 명령이 수신되면, 명령부분은 CRC 30을 거쳐 RSC 28에 넘겨지며, 계속되는(succeeding) 데이타부분(즉, 앞부분은 명령이고, 뒷부분은 데이타부분)은 CRC 30의 제어에 의하여 LS 24에 기록되어진다.
블록이 LS 24에 기록되고 난후 RSC 28은 주기억부상에 상기 블록을 기록한다. 이 동작은 최종블록이 주기억부상에 기록될때까지 계속된다. 최종블록이 기록되었을때 상기 서브시스템의 ENQP가 다음과 같이 갱신되어진다. 즉, ENQP는 주기억부로부터 레지스터 RB 21에 로드되고, 지정된 값이 때해져서 그 결과는 레지스터 RA 20에 세트된다. 그 다음에 BCB의 TL이 레지스터 RB 21에 로드되고 ALU는 RA 20의 내용과 RB 21의 내용을 비교한다. 만약 그들이 일치된다면 0(영)이 갱신후 값으로서 ENQP에 저장된다.
만약 일치하지 않는다면 RA 20의 내용이 ENQP에 저장된다(이는 DEQP의 갱신개념과 같다).
위 ENQP의 갱신이 끝나면 수신서브채널 28은 명령 RCP로 수신종료를 알린다. 이 명령은 레지스터 RE 31에 전송되고 다른 시스템의 송신서브채널 SSC 27에 보내진다. 그후 다음 QE 송신요구가 수신될때 같은 방법으로 반복한다.
위의 설명과 같이 본 발명의 서브시스템간 통신 방식에 대하여 각 데이타 전송을 위한 SIO 명령을 출력하는 것이 더 이상 필요없으므로 인터랍트의 발생이 최소화도어 높은 효율의 데이타 전송이 실현될 수 있으며, 전술한 목적을 만족하는 것으로 그 분야에 숙련된 사람이면 쉽게 이해할 수 있는 것이다.

Claims (1)

  1. 독립의 또는 공통의 오퍼레이팅 시스템의 제어하에 동작하는 제1의 서브시스템과 제2의 서브시스템을 갖는 데이터처리 시스템에 있어서, 송신측 서브시스템(1)은 n개의 송신버퍼(11, 13)를, 수신측 서브시스템(2)은 m개의 수신버퍼(12, 14)를 각각의 주기억상에 가지고, 상기 송신측 서브시스템은 n개의 엔트리를 갖는 송신버퍼 어드레스 테이블(9)을 상기 수신측 서브시스템은 m개의 엔트리를 갖는 수신버퍼 어드레스 테이블(10)을 각각 상기 각기의 주기억상에 가지고 상기 각기의 엔트리(BAW)는 대응하는 상기 송·수신버퍼의 선두 어드레스정보(BA)와 당해 버퍼의 길이정보 또는 최종 어드레스정보(BL)를 포함하고, 상기 송신측 서브시스템(1)은 송신버퍼어드레스테이블(9)의 선두어드레스(THP), 그 테이블(TL)의 엔트리수, 그 테이블에 보지되어 있는 다음에 엔큐할 BAW 어드레스를 지시하는 엔큐포인터(ENQP)와 그 테이블에 보지되어 있는 다음에 데큐할 BAW 어드레스를 지시하는 데큐표인터(DEQP)를 포함하는 버퍼제어블록(7)을 당해 송신측 서브시스템(1)의 주기억상 또는 레지스터상에 가지고, 상기 수신측 서브시스템(2)은 수신버퍼 어드레스 테이블(10)의 선두어드레스(THP), 그 테이블(TL)의 엔트리수, 그 테이블에 보지되어 있는 다음에 데큐할 BAW 어드레스를 지시하는 엔큐포인터(ENQP) 및 그 테이블에 보지되어 있는 다음에 데큐할 BAW 어드레스를 지시하는 데큐포인터(DEQP)를 포함하는 버퍼제어블록을 당해 수신측 서브시스템(2)의 주기억상 또는 레지스터상에 가지고, 다시금 송신측 서브시스템(1)의 송신버퍼(11, 13)에 놓여진 데이터를 대응하는 수신측 서브시스템(2)의 수신버퍼(12, 14)에 전송하는 통신로(15, 16)를 갖는 것을 특징으로 하는 계산기 시스템간 통신방식.
KR1019800004238A 1980-11-05 1980-11-05 계산기 시스템간 통신방식 KR850000562B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019800004238A KR850000562B1 (ko) 1980-11-05 1980-11-05 계산기 시스템간 통신방식

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019800004238A KR850000562B1 (ko) 1980-11-05 1980-11-05 계산기 시스템간 통신방식

Publications (2)

Publication Number Publication Date
KR830004628A KR830004628A (ko) 1983-07-16
KR850000562B1 true KR850000562B1 (ko) 1985-04-26

Family

ID=19218149

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019800004238A KR850000562B1 (ko) 1980-11-05 1980-11-05 계산기 시스템간 통신방식

Country Status (1)

Country Link
KR (1) KR850000562B1 (ko)

Also Published As

Publication number Publication date
KR830004628A (ko) 1983-07-16

Similar Documents

Publication Publication Date Title
EP0029331B1 (en) Inter-subsystem communication system
US5133062A (en) RAM buffer controller for providing simulated first-in-first-out (FIFO) buffers in a random access memory
EP0551191B1 (en) Apparatus and method for transferring data to and from host system
EP0734554B1 (en) Message facility for massively parallel processing systems
US5448698A (en) Inter-processor communication system in which messages are stored at locations specified by the sender
EP0676695B1 (en) Clock fault detection circuit
US4949301A (en) Improved pointer FIFO controller for converting a standard RAM into a simulated dual FIFO by controlling the RAM's address inputs
US5948060A (en) Speeding-up communication rates on links transferring data structures by a method of handing scatter/gather of storage blocks in commanded computer systems
US5664223A (en) System for independently transferring data using two independently controlled DMA engines coupled between a FIFO buffer and two separate buses respectively
US20080109573A1 (en) RDMA systems and methods for sending commands from a source node to a target node for local execution of commands at the target node
US4930065A (en) Automatic data channels for a computer system
US20080109569A1 (en) Remote DMA systems and methods for supporting synchronization of distributed processes in a multi-processor system using collective operations
US20080109570A1 (en) System and method for remote direct memory access without page locking by the operating system
EP0676700A1 (en) Method and apparatus for managing packet fifos
US20060212661A1 (en) Data transfer device
US8086766B2 (en) Support for non-locking parallel reception of packets belonging to a single memory reception FIFO
US4742446A (en) Computer system using cache buffer storage unit and independent storage buffer device for store through operation
US5507032A (en) Multiprocessor I/O request control system forming device drive queue and processor interrupt queue from rows and cells of I/O request table and interrupt request table
US5901328A (en) System for transferring data between main computer multiport memory and external device in parallel system utilizing memory protection scheme and changing memory protection area
US7143206B2 (en) Method for controlling data transfer unit having channel control unit, storage device control unit, and DMA processor
US20080109604A1 (en) Systems and methods for remote direct memory access to processor caches for RDMA reads and writes
US6988160B2 (en) Method and apparatus for efficient messaging between memories across a PCI bus
KR850000562B1 (ko) 계산기 시스템간 통신방식
US20080189719A1 (en) Operation processor apparatus
EP0376003A2 (en) Multiprocessing system with interprocessor communications facility