KR940003324B1 - 입출력 제어시스템 - Google Patents

입출력 제어시스템 Download PDF

Info

Publication number
KR940003324B1
KR940003324B1 KR1019860001868A KR860001868A KR940003324B1 KR 940003324 B1 KR940003324 B1 KR 940003324B1 KR 1019860001868 A KR1019860001868 A KR 1019860001868A KR 860001868 A KR860001868 A KR 860001868A KR 940003324 B1 KR940003324 B1 KR 940003324B1
Authority
KR
South Korea
Prior art keywords
input
output device
queue
subchannel
information
Prior art date
Application number
KR1019860001868A
Other languages
English (en)
Other versions
KR860007594A (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 가부시기가이샤 히다찌세이사꾸쇼
Publication of KR860007594A publication Critical patent/KR860007594A/ko
Application granted granted Critical
Publication of KR940003324B1 publication Critical patent/KR940003324B1/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/10Program control for peripheral devices
    • 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)

Abstract

내용 없음.

Description

입출력 제어시스템
제1도는 종래예의 시스템의 전체구성도.
제2도는 주기억장치상에 놓인 동작요구블록의 포맷을 나타낸 도면.
제3도는 주기억장치상에 놓인 로지컬 CU 제어블록의 포맷을 나타낸 도면.
제4도는 주기억장치상에 놓인 서브채널블록의 포맷을 나타낸 도면.
제5도는 주기억장치상에서의 종래의 제어블록체인의 형태를 나타낸 도면.
제6도는 본 발명 시스템의 전체구성도.
제7도는 본 발명에 의한 동작요구블록의 포맷을 나타낸 도면.
제8도는 본 발명에 의한 서브채널블록의 포맷을 나타낸 도면.
제9도는 본 발명에 의한 기동큐제어블록의 포맷을 나타낸 도면.
제10도는 본 발명에 의한 로지컬 CU제어블록의 포맷을 나타낸 도면.
제11도는 CP(21)의 동작플로를 나타낸 도면.
제12도는 EDC(23)의 동작플로를 나타낸 도면.
제13도는 본 발명에 의한 인터럽트큐제어블록의 포맷을 나타낸 도면.
제14도는 EDC(23)의 동작플로를 나타낸 도면.
제15도는 CP(21)의 동작플로를 나타낸 도면.
본 발명은 입출력장치의 기동 및 인터럽트처리를 제어하는 입출력제어시스템에 관한 것이다.
근년, 전자계산기의 입출력채널에 새로운 개념이 채택되어 왔다. IBM사 발행의 간행물(문헌 1) (IBM System/370 Extended Architecture Principles of Operation)(SA22-7085-0)의 제13장에서 이 새로운 개념의 소개가 기재되어 있으며, 또 제14장 내지 제17장에서 그 상세한 동작설명이 기재되어 있다.
이 개념은 한마디로 말하면, 입출력정보전송을 행하는 채널이 채널서브시스템에 의해, 채널의 사용상태에 따라서 동적(動的)으로 결정되는 것이다. 상기 문헌 1에 기재된 원리에 의거한 전자계산기의 하나가 IBM-308x 처리장치이며, 그 채널서브시스템이 외부데이터제어장치(External Data Controller) (EDC)이다. 본 장치의 동작개요는 IBM사 발행의 간행물(문헌 2) (IBM Maintenance Library : 3081/3083/3084 Processor Complex External Data Controller Introduction/Maintenance)(SY-22-7087-2)에 기재되어 있다.
상기 문헌 2에 의하면, 입출력장치(I/O)의 기동요구는 일단 I/O 속하는 로지컬콘트롤유니트내에 보류된다. EDC는 로지컬콘트롤유니트에 보류된 기동요구를 설치하여, 기동요구를 처리한다. 설치 순서는 복수의 로지컬콘트롤유니트를 라운드로빈방식으로 한다.
다음에, 제1도 내지 제5도에 따라서, 그 동작개요를 설명한다.
제1도는 시스템 전체의 구성블록도이다. EDC(13)는 는 시스템콘트롤러(SC) (12)를 통해, 중앙처리장치 (CP)(11)와 주기억장치 (MS)(10)에 접속된다. 또한, EDC(13)내의 채널(CH)(131)은 표준적인 인터페이스이며, 입출력제어장치(CU)(142)와 접속된다. 제1도에서는 1대의 CU(142)는 스위치(SW)(141)에서 2대의 CH와 접속되어 있다. 또, 1대의 I/O(43)는 2대의 CU에 접속되어 있다. 이와 같이, 어떤 I/O가 복수의 CU에 접속되어 있는 경우, 그들 CU를 묶어서 하나의 로지컬콘트롤유니트(로지컬 CU)(14)라고 하기로 한다. 이와 같은 로지컬 CU는 시스템내에 복수 존재한다. 한편, MS(10)는 프로그램에리어(101)와 하드웨어 시스템에리어(HSA)(102)로 나누어진다. 프로그램에리어(101)는 통의상 프로그램에서 사용하는 에리어이며, 통상의 프로그램, 데이터에리어로서 사용되는 외에, 후술하는 동작요구블록(103)이 준비된다. HSA에리어(102)는 CP(11)와 EDC(13)의 양쪽으로부터 액세스 되는 특별한 에리어이며, 여기에 후술하는 로지컬 CU 제어블록(104)(복수의 로지컬 CU의 각각에 대응하여 배설됨), 서브채널블록(105)(복수의 서브채널의 각각에 대응하여 배설됨)이 준비된다. 제2도 내지 제4도는 상기 문헌에서 기재되어 있는 동작요구블록(103), 로지컬 CU제어블록(104) 및 서브채널블록(105)의 구성예이다.
상기 문헌 2에 기재되어 있는 새로운 개념에 있어서의 입출력명령의 실행은 I/O와 1대 1로 대응한 서브 채널에 따라서 이루어진다.
서브채널은 대응하는 개개의 I/O의 입출력동작을 행하기 위해 필요한 정보를 말하며, 대응하는 서브채널 블록(105)에 유지되고 있다. 이와 같은 서브채널을 사용한 본 개념은 종래의 잘 알려져 있는 입출력명령의 실행과 다음의 점에서 상이하다.
(1) I/O를 기동하는 제어프로그램은 채널을 의식하지 않는다. 기동명령은 서브채널을 지정하여 행해지며, 실제로 I/O에 이르는 채널경로의 선택은 하드웨어(본 예에서는 EDC)가 행한다.
(2) I/O에 이른 경로가 사용중일 때, 하드웨어는 다른 경로를 찾아서 기동하려고 한다. 다른 사용가능한 경로가 없으면, 그 기동요구는 하드웨어 자체가 보류하고, 경로가 비는 것을 기다린다.
제1도에 있어서, 이러한 I/O기동의 처리는 다음과 같이 행해진다. 먼저, CP(11)는 MS(10)상의 제어프로그램을 독출하여 실행하지만, 이때 명령이 I/O기동명령(SSCH명령 : Start Subchannel)의 경우, 제2도에서 나타낸 동작요구블록(103)의 내용을 SSCH명령으로 지정된 서브채널에 대응하는 서브채널블록(105)에 전송한다 동작요구블록에는 채널프로그램(CCW)어드레스 등의 정보가 포함되어 있다. 제4도는 하나의 서브채널블록의 구성예를 나타내고 있다. S는 기동, I는 인터럽트를 의미하는 비트이다. 전송된 동작요구블록의 내용은 서브채널제어정보의 격납에리어의 일부에 기억된다. 서브채널제어정보의 다른 격납에리어에는 입출력장치에 대한 고정정보(ISC,로지컬 CU번호 등)가 이니셜프로그램로드(IPL)시에 미리 기억되어 있다. 로지컬 CU번호는 그 서브채널에 대응한 I/O가 속하는 로지털 CU의 어드레스이다. 동작요구블록이 전송되면, 이 로지컬 CU번호에 따라서 관계되는 로지컬 CU에 I/O기동요구를 큐잉한다.
I/O기동요구를 로지컬 CU에 큐잉하는 방법은 제5도에 나타낸 바와 같이, 기동요구를 기다리는 서브채널중의 선두의 서브채널의 번호와 최후의 서브채널의 번호를 로지컬 CU제어블록(104)에 기억하고, 서브채널블록(105)에 다음의 체인선(先)서브채널번호를 기억하고, 기동요구보류중을 표시하는 S비트를 “1”로 하여, 큐의 체인을 만든다. 제5도에서는 어떤 로지컬 CU블록에 2개의 기동요구가 큐잉되어 있는 형태를 나타내며, 큐카운트는 “2”를 나타내고 있다.
즉, 기동요구를 기다리는 서브채널중 선두에 있는 서브채널이 서브채널 a이며, 다음의 서브채널이 서브 채널 b일 때, 로지컬 CU블록(104)내의 선두서브채널번호가 서브채널 a의 블록을 나타낸다. 또한, 서브채널 a의 블록내의 다음의 서브채널번호가 서브채널 b의 블록을 나타낸다.
하나의 로지컬 CU에는 복수의 I/O가 존재하므로, 이 예와 같이 로지컬 CU블록내에서 큐가 만들어지는 일이 있다. 또한, 시스템 전체로부터 보면 로지컬 CU는 복수개 존재하며, 그 각각의 로지컬 CU블록에 I/O기동의 큐가 만들어진다.
이렇게 하여 만들어진 큐를 취출하여, 실제로 I/O(143)를 기동하는 것이 EDC(13)의 역할이다. EDC(13)는 MS(10)상의 서브채널블록(105)이나 로지컬 CU제어블록(104)를 독출하여 갱신하지만, 이와 같이 CP(11)와 EDC(13) 양쪽에서 이들 블록을 액세스하기 위해, MS(10)의 일부에 이들 블록을 격납하는 HSA에리어 (102)가 배설되며. 이 에리어는 통강의 프로그램에서 사용하는 에리어(101)와는 분리된다. 또, 제3도, 제4도에 나타낸 바와 같이 어느 블록(104), (105)에도 “로크바이트”라고 불리우는 에리어가 있는데, 이것은 CP(11), EDC(13)로 부터의 액세스의 경합을 피하기 위해 사용된다.
EDC(13)는 복수의 로지컬 CU제어에 대하여, 사이클릭으로 독출을 행한다. 또한, 이 독출한 로지컬 CU블록에 큐잉중의 서브채널이 존재하는지의 여부를 판단하고, 판단 큐가 있으면(큐카운트≠0), 선두의 서브채널번호를 사용하여 기동처리를 행한다. 만약, 큐가 없으면 다음의 로지컬 CU제어블록을 독출하여, 동일한 처리를 행한다.
EDC(13)에서 큐가 취출되면, 서브채널블록(105)내의 서브채널제어정보 및 로지컬 CU제어블록(104)내의 채널어드레스(제3도의 CH0, CH1, CH8, CH9)에 따라서, I/O의 기동이 행해진다. 어느 채널로부터의 경로도 사용중일 때 다시 큐된다.
그런데, 이와 같이 일단 큐잉된 I/O의 기동을 실행하는 순서는 SSCH 명령실행순 및 로지컬 CU번호에 의존하지만, 명확한 우선순위라고 하는 것은 없다. 한편, 제어프로그램은 I/O처리에 우선순위를 부여하여 제어하고 있지만, 지금까지 기술한 종래예에서는 일단 기동 명령이 발해진 후의 우선처리까지는 배려되어 있지 않다.
또한, I/O처리가 완료된 후의 I/O 인터럽트는 우선처리라고 하는 개념이 들어가 있지만, 종래예는 우선 순위지정에 대한 유연성에 대해 반드시 충분하다고는 할 수 없었다.
본 발명의 목적은 채널서브시스템에서의 I/O기동처리 및 인터럽트처리를 긴급도에 따라서 처리하여, 시스템의 처리효율을 높이는데 있다.
본 발명은 큐잉중의 미처리의 I/O처리요구를 긴급도에 따라서 클라스 분류하고, 채널서브시스템에서 이 클라스에 따라서 기동 및 인터럽트를 처리하는 것으로서, 복수의 입출력장치와, 상기 복수의 입출력장치에 각각 대응하는 복수의 영역을 가지며, 입출력장치에 대응하는 상기 각 영역에 제어정보를 기억하는 제1의 기억영역과, 복수의 클라스에 대응하는 기억영역의 복수의 영역에 상기 각 입출력장치의 기동의 우선순위를 나타내는 기동큐의 형태로 제1의 정보를 기억하는 제2의 기억영역을 갖는 주기억장치와, 상기 주기억강치 에 접속되어, 프로그램으로 지정된 기동요구에 대응하여 요구되는 입출력장치의 기동에 필요한 제어정보 및 상기 요구되는 입출력장치의 기동의 우선순위를 나타내는 클라스코드를 상기 주기억장치의 제1의 기억영역에 설정하고, 그리고 상기 주기억장치의 제2의 기억영역을 갱신하여 상기 요구되는 입출력장치를 나타내는 제1의 정보를 상기 클라스코드로 나타낸 상기 복수의 클라스중 하나에 대응하는 상기 기동큐의 소정의 영역에 등록하는 중앙처리장치와, 상기 복수의 입출력장치와, 상기 중앙처리장치와, 상기 주기억장치에 접속되어, 기동 우선순위가 가장 높은 상기 기동큐로부터 제1의 정보를 독출하고, 상기 제1의 정보에 대응하 는 요구되는 입출력장치의 제어정보를 상기 주기억장치로 부터 독출하며, 상기 독출한 제어정보에 따라서 상기 요구되는 입출력장치를 기동하는 외부데이터제어장치를 구비하며, 상기 주기억장치는 상기 복수의 입출력장치로부터의 인터럽트요구의 각 우선순위를 정하는 상기 복수의 클라스에 대응하는 복수의 영역을 가지는 인터럽트큐에 제2의 정보를 기억하는 제3의 기억영역을 더 가지고, 상기 외부데이터제어 장치는 기동 상태에 있는 입출력장치로부터의 인터럽트요구에 대응하여 상기 주기억장치의 상기 제1의 기억영역에 설정된 클라스코드를 참조하고, 상기 제3의 기억영역을 갱신하여, 상기 입출력장치를 나타내는 상기 제1의 정보를 상기 클라스코드로 나타낸 클라스에 대응하는 인터럽트큐에 등록하고, 상기 중앙처리장치는 우선순위가 가장 높은 인터럽트큐로부터 입출력장치를 나타내는 상기 제1의 정보를 독출하여, 그 입출력장치에 대해 인터럽트처리를 행하는 것을 특징으로 하는 것이다.
종래, 이 종류의 우선순위관리하는 입출력관리프로그램레벨에서 행해지고 있었지만, 「익스텐디드 아키텍 쳐 (Extended Architecture)」의 개념에서 볼 수 있듯이, I/O기동요구가 채널서브시스템이라고 하는 하드웨어에서 보류되면, 프로그램레벨에서의 우선순위관리가 불완전하게 되어 버린다. 또, I/O(서브채널)라고 하는 물리적인 것에만 우선순위를 부여한다고 하는 생각도, 예를 들면 하나의 디스크장치에 페이징용 데이터 세트와 다른 일반의 데이터세트가 혼재하는 일도 있으며. 시스템의 효율상 적절하다고는 할 수 없다. 상기 예에서는 페이징용의 데이터세트 액세스시는 다른 일반 데이터세트 액세스시보다, 그 I/O처리의 우선순위가 높은 편이 좋다. 즉, 어떤 하나의 I/O만 보아도, I/O처리요구원(處理要求元)에서, 그 I/O처리의 긴급도는 다른 것이다. 본 발명은 이들에 충분히 대처할 수 있는 것이다.
다음에, 본 발명의 일실시예에 대하여 제6도 내지 제15도에 따라서 설명한다.
제6도는 본 실시예의 시스템 전체블록도이다. 제1도에 나타낸 시스템구성과 대략 같은 구성이지만, 주기억장치(20)에 배실되는 각 블록의 내용이 후술하는 바와 같이 다르며, 또 새로운 기동큐제어블록(116) 및 인터럽트큐제어블록(117)이 배설되어 있다. 중앙처리장치(CP)(21) 및 외부데이터제어장치(EDC)(23)도 제11도, 제12도 및 제15도에 있어서 후술하는 바와 같이 다르다.
시스템콘트롤러(SC) 및 로지컬 CU에 대한 것은 제1도와 같다.
제7도는 본 발명에 의한 동작요구블록(113)의 구성예를 나타내며, 새로 워드에 I/O 처리클라스 C가 추가된 점이 제2도의 종래예와 다르다. 본 클라스 C는 다음과 같이 비트할당된다. 그리고, 유효클라스코드는 3비트구성으로 한다.
비트 0 : “0”
비트 1 : 클라스코드 0
비트 2 : 클라스코드 1
비트 3 : 클라스코드 2
클라스코드의 0∼2는 디코드되어, 클라스 0∼7을 지정한다. 즉, 클라스코드가 “000”일 때, 최고위의 I/O 처리클라스 0을 의미하며, “111”일 때, 최저위의 처리클라스 7를 의미한다.
제8도는 본 발명에 의한 서브채널블록(115)을 나타내며, 제4도의 종래예와 비교하여, I/O처리클라스 C를 기억하는 에리어가 추가된 점이 다르다.
제9도는 I/O의 기동을 제어하는 블록(기동큐제어블럭)의 포맷을 나타낸다. 기동큐제어블록의 각 처리클라스마다의 큐의 수, 선두포인터(Top of queue pointer)(큐의 선두의 서브채널번호), 말미 포인터(Bottom of queue pointer)(큐의 말미의서브채널번호)로 이루어진다. 기동큐제어블록 MS상의 HSA의 에리어 (202)에 놓인다.
또, 로지컬 CU제어블록은 제9도에 나타낸 바와 같이, 종래(제3도)와 비교하여 채널어드레스만을 유지하는 것으로 축퇴되어 HSA에리어 (202)에 놓인다.
다음에, 구체적인 동작에 대하여 제6도 및 제11도에 따라서 설명한다.
SSCH명령이 실행되면, CP(21)는 MS(20)의 동작요구블록(113)(제7도)의 내용이 지정된 서브채널블록 (115)(제8도)내에 전송한다(스텝 202). 이 때, 종래와 달리 새로 추가된 I/O처리클라스 C의 값이 서브채널블록(115)에 세트된다. 또한, CP(21)는 이 I/O처리클라스에 대응한 기동큐제어블록(제9도)을 독출하고 (스텝 203), I/O기동요구를 큐잉한다. 즉, 어떤 「처리클라스」에 하나도 I/O기동요구가 큐되어 있지 않을때(스텝 204), 대응하는 I/O처리클라스의 기동큐제어블록의 「선두의 서브채널번호」와 「말미의 서브채널번호」에리어에 큐해야 할 서브채널번호가 격납되며 (스텝 206), 또한 큐카운트는 “0”에서 “1”로 갱신된다(스텝 208). 또한, 서브채널블록(115)중의 S비트가 “1”로 세트된다.
이 상태에서, 상기 처리클라스와 같은 클라스를 갖는 서브채널에 대해 기동이 이루어지면, CP(21)는 대응하는 기동큐제어블록(제9도)을 MS(20)의 HSA에리어 (112)로부터 독출하고(스텝 203), 말미의 서브채널 번호로 표시되는 서브채널제어블록(제8도)의 「체인중의 다음의 서브채널번호」에리어에 기동된 서브채널의 번호를 격납하고(스텝 205), 다시 상기 기동큐제어블록중의 「말미의 서브채널번호」에리어에 기동된 서브채널번호를 격납하여(스텝 207), 큐카운트를 +1하여(스텝 208), 큐의 체인을 작성한다. 그리고, 기동된 서브 채널의 블록의 S비트를 “1”로 세트한다.
상기와 같이 각 「I/O처리클라스」에 따라서 큐잉된 I/O기동요구는 EDC(23)에 의해 디큐된다. 이 동작은 제12도에 나타낸다. EDC(23)는 먼저 가장 우선순위가 높은 처리클라스 0(스텝 301)의 기동큐제어블록(제9도)를 MS(20)의 HSA에리어(202)에서 독출하고, 큐의 유무를 큐카운트의 값으로 판정한다(스텝 302). 그 값이 전부 “0”이 아니면 「선두의 서브채널번호」로 표시되는 번호의 서브채널블록(115)(제8도)을 독출한다(스텝 304). EDC(13)는 독출된 서브채널블록(115)(제8도)내의 로지컬 CU번호에 따라서, 로지컬 CU제어블록(제10도)을 참조하여, 채널어드레스를 독출한다(스텝 305). 이와 같이 하여 독출된 서브채널블록 (115)(제8도)의 서브채널제어정보 및 로지컬 CU제어블록(제10도)의 채널어드레스에 따라서 I/O기동이 행 해진다(스텝 308). 어느 채널로부터의 경로도 사용중일 때(스텝 306), 다시 큐된다(스텝 307). 재(再)큐는 기동하지 못했던 I/O의 기동요구를 큐의 취후부로 옮기고, 다음에 체인되어 있던 I/O의 기동요구를 선두로 옮김으로써 행해진다. I/O의 기동이 행해졌을 때(스텝 308), 이 서브채널블록의「체인중의 다음의 서브채널번호」가 기동큐제어블록의 「선두의 서브채널번호」에리어에 옮겨지고(스텝 309), 큐카운트는 -1된다(스텝 310).
이상의 동작에 의해 하나의 I/O기동요구에 대한 디큐가 종료한다. 다시 디큐할 때에는 다시 클라스가 0의 큐로부터 디큐를 개시하게 된다.
EDC(23)는 CP(21)와는 독립하여 동작하므로, EDC(23)의 디큐시에 상위의 I/O처리클라스에 CP(21)가 큐를 만드는 일이 있다. 그러나, 본 실시예와 같이 디큐할 때는 항상 최상위의 I/O처리클라스부터 행하므로, 기동의 우선순위가 확립된다.
이와 같이, 종래에는 EDC(23)는 단지 복수의 로지컬 CU에 대해 사이클릭으로 기동처리를 행하고 있었던 것에 대하여, 본 발명에서는 SSCH명령으로 지정된 처리클라스의 우선순위에 따라서 서브채널을 기동처리할 수 있으므로, 긴급도가 높은 I/O처리를 우선적으로 실행할 수 있어서, 종래에 비해 채널서브시스템의 처리효율을 높일 수 있다. 특히, I/O처리요구시마다 우선순위를 바꿀 수 있기 때문에, 더욱 세밀한 우선처리 가 가능해진다.
이상 기술한 처리는 I/O기동의 우선처리를 가능하게 하는 것이지만, 다음에 I/O인터럽트에 대하여 설명한다.
앞에 나타낸 문헌에 개시된 종래의 전자계산기의 I/O인터럽트처리에서는 전자계산기의 이니셜프로그램로드(IPL)시에 있어서, 서브채널로 결정된 「인터럽트서브클라스」가 설정된다. 이 설정은 서브채널블록의 ISC (제4도 참조)에 기입됨으로써 행해진다. I/O기동된 어떤 I/O로부터 대응하는 서브채널에 대한 I/O인터럽트요구가 발생하면, 미리 IPL시에 결정된 「인터럽트서브클라스」(제4도의 ISC)에 대응한 인터럽트제어블록에 인터럽트큐가 등록된다. 이 조작은 EDC(13)가 행한다. ISC의 포맷 및 그 의미부여는 본 발명에 의한「I/O처리클라스」와 같지만, 그 효력은 I/O인터럽트에 있어서만 작용한다. 인터럽트큐제어블록의 포맷 및 그 조작방법은 전술한 기동큐의 그것과 같지만, 디큐는 CP(11)가 행하는 점이 다르다. 어떤 서브채널이 인터럽트큐에 들어가 있으면, 그것에 대응하는 서브채널블록의 I비트가 세트된다.
본 발명에서는 I/O인터럽트의 큐는「처리클라스」에 의해 제어된다. 「I/O처리클라스」는 서브채널기동시에 지정된 것이며, 종래예의 ISC보다도 더욱 동적으로 우선순위를 지정할 수 있다.
I/O인터럽트의 동작은 제14도 및 제15도에 나타낸다.
I/O인터럽트요구가 발생하면(스텝 401), EDC(23)는 그 I/O에 대응하는 서브채널블록(제8도)내의 I/O처리클라스를 참조한다(스텝 402). 이 I/O처리클라스는 I/O기동시에 지정된 것이다. 그 참조시에 I비트를 세트해 둔다. EDC(23)는 이 참조한 클라스에 대응한 인터럽트큐제어블록(제13도)(MS(20)의 의 HSA에리어 (102)에 배설됨)을 독출하여, I/O인터럽트요구를 큐잉한다(스텝 403). 큐잉을 하는 방법은 앞의 I/O기동요구를 큐잉하는 방법과 같다.
I/O처리클라스에 따라서 큐잉된 I/O인터럽트요구는 CP(21)에 의해 디큐된다. CP(21)는 먼저 가장 우선 순위가 높은 I/O처리클라스 0의 인터럽트큐제어블록(제13도)을 독출하고(스텝 501), 큐의 유무를 큐카운트의 값으로 판정한다(스텝 502). 그 값이 모두 “0”이 아니면 「선두의 서브채널번호」로 표시되는 번호의 서브 채널블록을 독출한다(스텝 504). CP(11)는 독출된 서브채널블록의 정보에 따라서, 인터럽트처리를 하게 된다(스텝 505). 큐카운트가 모드 “0”일 경우는 다음에 우선순위가 높은 I/O처리클라스에 대해 처리를 행한다(스텝 503).
끝으로, I/O처리클라스의 설정법에 대하여 설명한다.
가상기억방식의 전자계산기시스템에 있어서 I/O의 하나가 디스크장치이며, 페이징용의 데이터세트와 사용자의 데이터세트가 혼재하여 기억되고 있는 경우를 생각한다. 제어프로그램에 의해 미리 그 디스크장치에 대해 2개의 제1블록(제6도에 있어서 도시되어 있지 않음)이 작성된다. 제어블록의 내용은 제7도에 나타낸 동작요구블록(113)과 같다고 생각해도 된다.
한쪽의 제어블록은 페이징용이며, I/O처리클라스가 0으로 세트되고. 다른 쪽은 사용자용이며 I/O처리클라스가 1로 세트되어 있다.
제어프로그램은 일반의 사용자 프로그램의 실행을 관리하고 있지만, 사용자 프로그램의 실행시 어드레스 변환예외(가상기억방식에 있어서, 주기억장치상에 없는 어드레스를 액세스했을 때에 생긴)가 발생한 경우, 페이징용의 제어블록을 동작요구블록(113)(제7도)에 전송하고, SSCH명령을 발행한다. 또, 사용자 프로그램이 사용자의 데이터세트를 요구할 경우, 제어프로그램은 사용자용의 제어블록을 동작요구블록(113)(제7도)에 전송하여, SSCH명령을 발행한다.
이후의 처리는 전술한 CP(21)의 하드웨어가 큐를 구축하고, EDC(23)가 디큐한다.
그 결과, 페이징용의 데이터 세트는 사용자용의 데이터세트에 비해 높은 우선순위로 디스크장치로부터 독출되게 된다.
이와 같이 I/O처리클라스는 제어프로그램에 의해, I/O기동요구의 성질에 따라서 배설된 제어블록내에 미리 설정할 수 있다.
I/O처리클라스의 다른 설정방법으로서는, 예를 들면 사용자마다 제어블록을 배설하여 클라스를 설정하는 방법을 생각할 수 있다. 즉, 전자계산기시스템의 사용자중 긴급을 요하는 일에 종사하는 사용자에 대하여는 우선도가 높은 I/O처리클라스를 부여한다.
다른 설정법으로서는, 디스크장치에 격납되는 프로그램마다 설정하는 것도 생각할 수 있다. 즉 장해처리용의 프로그램에 대하여는 높은 우선도의 I/O처리클라스를 갖는 제어블록을 배설해 두고, 장해 발생시는 그 제어블록에 따라서 디스크장치를 기동한다.
그 밖에도 I/O처리클라스의 설정에 대하여는 여러가지를 생각할 수 있다.

Claims (1)

  1. (a) 복수의 입출력장치와, (b) (i) 상기 복수의 입출력장치에 각각 대응하는 복수의 영역을 가지며, 입출력장치에 대응하는 상기 각 영역에 제어정보를 기억하는 제1의 기억영역과, (ii) 복수의 클라스에 대응하는 기억영역의 복수의 영역에 상기 각 입출력장치의 기동의 우선순위를 나타내는 기동큐의 형태로 제1의 정보를 기억하는 제2의 기억영역을 갖는 주기억장치와, (c) 상기 주기억 장치에 접속되어, 프로그램으로 지 정된 기동요구에 대응하여 요구되는 입출력장치의 기동에 필요한 제어정보 및 상기 요구되는 입출력장치의 기동의 우선순위를 나타내는 클라스코드를 상기 주기억장치의 제1의 기억영역에 설정하고, 그리고 상기 주기억장치의 제2의 기억영역을 갱신하여 상기 요구되는 입출력장치를 나타내는 제1의 정보를 상기 클라스코드로 나타낸 상기 복수의 클라스중 하나에 대응하는 상기 기동큐의 소정의 영역에 등록하는 중앙처리장치와, (d) 상기 복수의 입출력장치와, 상기 중앙처리장치와, 상기 주기억장치에 접속되어 기동 우선순위가 가장 높은 상기 기동큐로부터 제1의 정보를 독출하고, 상기 제1의 정보에 대응하는 요구되는 입출력장치의 제어정보를 상기 주기억장치로부터 독출하며, 상기 독출한 제어 정보에 따라서 상기 요구되는 입출력장치를 기동하는 외부데이터장치를 구비하며, (e) 상기 주기억장치는 상기 복수의 입출력장치로부터의 인터럽트요구의 각 우선순위를 정하는 상기 복수의 클라스에 대응하는 복수의 영역을 가지는 인터럽트큐에 제2의 정보를 기억하는 제3의 기억영역을 더 가지고, (f) 상기 외부데이터제어장치는 기동상태에 있는 입출력장치로부터의 인터럽트요구에 대응하여 상기 주기억장치의 상기 제1의 기억영역에 설정된 클라스코드를 참조하고, 상기 제3의 기억영역을 갱신하여, 상기 입출력장치를 나타내는 상기 제1의 정보를 상기 클라스 코드로 나타낸 클라스에 대응하는 인터럽트큐에 등록하고, (g) 상기 중앙처리장치는 우선순위가 가장 높은 인터럽트큐로부터 입출력장치를 나타내는 상기 제1의 정보를 독출하여, 그 입출력장치에 대해 인터럽트처리를 행하는것을 특징으로 하는 입출력제어시스템.
KR1019860001868A 1985-03-20 1986-03-14 입출력 제어시스템 KR940003324B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP85-57029 1985-03-20
JP57029 1985-03-20
JP5702985 1985-03-20

Publications (2)

Publication Number Publication Date
KR860007594A KR860007594A (ko) 1986-10-15
KR940003324B1 true KR940003324B1 (ko) 1994-04-20

Family

ID=13044008

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019860001868A KR940003324B1 (ko) 1985-03-20 1986-03-14 입출력 제어시스템

Country Status (6)

Country Link
US (1) US4858108A (ko)
EP (1) EP0199053B1 (ko)
JP (1) JPH0750456B2 (ko)
KR (1) KR940003324B1 (ko)
CN (1) CN86102662A (ko)
DE (1) DE3688759T2 (ko)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4926324A (en) * 1985-02-28 1990-05-15 Hitachi, Ltd. I/O control system and method
US4872110A (en) * 1987-09-03 1989-10-03 Bull Hn Information Systems Inc. Storage of input/output command timeout and acknowledge responses
FR2635390B1 (fr) * 1988-08-12 1990-10-12 Bull Sa Unite centrale pour systeme de traitement de l'information
DE68924051T2 (de) * 1988-12-30 1996-05-02 Ibm Vielfacher Ein-/Ausgabe-Kanal.
JPH03142504A (ja) * 1989-10-30 1991-06-18 Toshiba Corp プログラマブルコントローラ
US5247671A (en) * 1990-02-14 1993-09-21 International Business Machines Corporation Scalable schedules for serial communications controller in data processing systems
EP0444711A3 (en) * 1990-03-02 1994-07-20 Fujitsu Ltd Bus control system in a multi-processor system
EP0477947B1 (en) * 1990-09-28 1998-07-15 Hewlett-Packard Company Switch for sharing a peripheral device
US5644786A (en) * 1990-11-08 1997-07-01 At&T Global Information Solutions Company Method for scheduling the execution of disk I/O operations
US5394542A (en) * 1992-03-30 1995-02-28 International Business Machines Corporation Clearing data objects used to maintain state information for shared data at a local complex when at least one message path to the local complex cannot be recovered
US5444861A (en) * 1992-06-01 1995-08-22 United Technologies Corporation System for downloading software
US5375223A (en) * 1993-01-07 1994-12-20 International Business Machines Corporation Single register arbiter circuit
US5860022A (en) * 1994-07-26 1999-01-12 Hitachi, Ltd. Computer system and method of issuing input/output commands therefrom
US6393455B1 (en) 1997-03-28 2002-05-21 International Business Machines Corp. Workload management method to enhance shared resource access in a multisystem environment
US6157963A (en) * 1998-03-24 2000-12-05 Lsi Logic Corp. System controller with plurality of memory queues for prioritized scheduling of I/O requests from priority assigned clients
US6434637B1 (en) 1998-12-31 2002-08-13 Emc Corporation Method and apparatus for balancing workloads among paths in a multi-path computer system based on the state of previous I/O operations
US6427180B1 (en) * 1999-06-22 2002-07-30 Visteon Global Technologies, Inc. Queued port data controller for microprocessor-based engine control applications
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
US6427196B1 (en) * 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
US6651125B2 (en) * 1999-09-28 2003-11-18 International Business Machines Corporation Processing channel subsystem pending I/O work queues based on priorities
US6986137B1 (en) * 1999-09-28 2006-01-10 International Business Machines Corporation Method, system and program products for managing logical processors of a computing environment
US6532509B1 (en) 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US7620702B1 (en) 1999-12-28 2009-11-17 Intel Corporation Providing real-time control data for a network processor
US6661794B1 (en) 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US7480706B1 (en) 1999-12-30 2009-01-20 Intel Corporation Multi-threaded round-robin receive for fast network port
US6584522B1 (en) 1999-12-30 2003-06-24 Intel Corporation Communication between processors
US6952824B1 (en) 1999-12-30 2005-10-04 Intel Corporation Multi-threaded sequenced receive for fast network port stream of packets
DE10218646A1 (de) * 2002-04-25 2003-11-13 Infineon Technologies Ag An einen Bus angeschlossene Einrichtung
US7471688B2 (en) 2002-06-18 2008-12-30 Intel Corporation Scheduling system for transmission of cells to ATM virtual circuits and DSL ports
US7352769B2 (en) 2002-09-12 2008-04-01 Intel Corporation Multiple calendar schedule reservation structure and method
US7433307B2 (en) 2002-11-05 2008-10-07 Intel Corporation Flow control in a network environment
US7443836B2 (en) 2003-06-16 2008-10-28 Intel Corporation Processing a data packet
CN100371896C (zh) * 2005-08-22 2008-02-27 威盛电子股份有限公司 计算机系统及其开机方法
CN106358042B (zh) * 2015-07-17 2020-10-09 恩智浦美国有限公司 使用视频图像的帧间预测的并行解码器

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3728682A (en) * 1971-03-11 1973-04-17 Rca Corp Computer input-output chaining system
US4060849A (en) * 1975-10-28 1977-11-29 Compagnie Internationale Pour L'informatique Cii-Honeywell Bull Data input and output controller
US4028668A (en) * 1975-12-22 1977-06-07 Honeywell Information Systems, Inc. Apparatus for selectively addressing sections and locations in a device controller's memory
US4124888A (en) * 1975-12-24 1978-11-07 Computer Automation, Inc. Peripheral-unit controller apparatus
US4093981A (en) * 1976-01-28 1978-06-06 Burroughs Corporation Data communications preprocessor
US4246637A (en) * 1978-06-26 1981-01-20 International Business Machines Corporation Data processor input/output controller
IT1100916B (it) * 1978-11-06 1985-09-28 Honeywell Inf Systems Apparato per gestione di richieste di trasferimento dati in sistemi di elaborazione dati
US4271468A (en) * 1979-11-06 1981-06-02 International Business Machines Corp. Multiprocessor mechanism for handling channel interrupts
US4328543A (en) * 1980-03-25 1982-05-04 Ibm Corporation Control architecture for a communications controller
US4425615A (en) * 1980-11-14 1984-01-10 Sperry Corporation Hierarchical memory system having cache/disk subsystem with command queues for plural disks
US4394734A (en) * 1980-12-29 1983-07-19 International Business Machines Corp. Programmable peripheral processing controller
US4400773A (en) * 1980-12-31 1983-08-23 International Business Machines Corp. Independent handling of I/O interrupt requests and associated status information transfers
US4423480A (en) * 1981-03-06 1983-12-27 International Business Machines Corporation Buffered peripheral system with priority queue and preparation for signal transfer in overlapped operations
US4546430A (en) * 1983-07-13 1985-10-08 Sperry Corporation Control unit busy queuing

Also Published As

Publication number Publication date
JPS621053A (ja) 1987-01-07
DE3688759D1 (de) 1993-09-02
US4858108A (en) 1989-08-15
EP0199053A3 (en) 1989-02-22
JPH0750456B2 (ja) 1995-05-31
DE3688759T2 (de) 1994-01-05
CN86102662A (zh) 1986-11-05
KR860007594A (ko) 1986-10-15
EP0199053B1 (en) 1993-07-28
EP0199053A2 (en) 1986-10-29

Similar Documents

Publication Publication Date Title
KR940003324B1 (ko) 입출력 제어시스템
US4432051A (en) Process execution time accounting system
FI78993B (fi) Oevervakare av driftsystem.
US5109489A (en) I/o execution method for a virtual machine system and system therefor
US4077058A (en) Method and apparatus for executing an extended decor instruction
US4435780A (en) Separate stack areas for plural processes
EP1054322B1 (en) Computer system with multiple operating system operation
US4803622A (en) Programmable I/O sequencer for use in an I/O processor
US5276879A (en) Portable, resource sharing file server using co-routines
US5911065A (en) System and method for providing cooperative interrupts in a preemptive task scheduling environment
US5584041A (en) Channel apparatus having a plurality of channels capable of being operated either in parallel mode or in separate mode
US5392409A (en) I/O execution method for a virtual machine system and system therefor
US4351024A (en) Switch system base mechanism
JPS6364133A (ja) 情報処理システム
Grzelakowski et al. The 3B20D Processor & DMERT operating system: DMERT operating system
GB2191612A (en) Display terminal
JP2534797B2 (ja) キュ―イング制御方式
CN111858011A (zh) 一种多数据流任务处理方法、装置、设备及存储介质
JPH0754469B2 (ja) 仮想計算機システムのための入出力命令実行装置
Bridges Executive programs for the LACONIQ time-shared retrieval monitor
Gammill et al. VT: a virtual terminal window package for UNIX
JPH05128077A (ja) 複数計算機システムの分散処理方法
JPH0696004A (ja) 計算機システムにおけるi/o実行方法
JPH01237745A (ja) チャネルパス選択方式
JPS62247444A (ja) チヤネル・パス制御方式

Legal Events

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

Payment date: 20010220

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee