KR920004771B1 - 작업 관련 메세지 흐름 제어방법 및 통신 관리 장치 - Google Patents

작업 관련 메세지 흐름 제어방법 및 통신 관리 장치 Download PDF

Info

Publication number
KR920004771B1
KR920004771B1 KR1019880014991A KR880014991A KR920004771B1 KR 920004771 B1 KR920004771 B1 KR 920004771B1 KR 1019880014991 A KR1019880014991 A KR 1019880014991A KR 880014991 A KR880014991 A KR 880014991A KR 920004771 B1 KR920004771 B1 KR 920004771B1
Authority
KR
South Korea
Prior art keywords
message
bus
bus unit
processor
server
Prior art date
Application number
KR1019880014991A
Other languages
English (en)
Other versions
KR890008703A (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 KR890008703A publication Critical patent/KR890008703A/ko
Application granted granted Critical
Publication of KR920004771B1 publication Critical patent/KR920004771B1/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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • 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
    • 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
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Small-Scale Networks (AREA)

Abstract

내용 없음.

Description

작업 관련 메세지 흐름 제어방법 및 통신 관리 장치
제 1 도는 미합중국 특허 제4,649,473호에 취해진 프로세스 사이에 통신을 위한 인터프로세스 통신설비를 갖는 멀티프로세스 시스템에 대한 개략적인 블럭 다이어그램.
제 2 도는 프로세스 사이에 논리적 접속을 갖는 논리 접속그룹을 도시하는 제 1 도의 멀티-프로세스 시스템의 개략적인 블럭 다이어그램.
제 3 도는 제 2 도의 논리접속그룹 프로세스에 사용된 표 및 제어 블럭도.
제 4 도는 보다 많은 작업요청을 수용하도록 충분한 자원을 갖지 못한 접속그룹에 대해 지정된 작업 요청을 위한 큐 풀 상태에 응답하여 요청하는 버스 유니트를 도시하는 블럭흐름 다이어그램.
제 5 도는 큐 풀 상태에 응답하여 제 4 도의 요청하는 버스 유니트에 대한 또다른 흐름 다이어그램.
제 6 도는 큐 풀 상태에 응답하여 제 4 도에 요청하는 버스 유니트에 의해 사용된 큐의 블럭 다이어그램.
제 7 도는 존재하지 않지만 큐 풀 메세지를 전송하고, 접속그룹에서 사용가능한 충분한 자원이 있는지를 결정하여 수반된 흐름을 도시하는 서버 버스 유니트의 블럭흐름 다이어그램.
제 8 도는 접속그룹에 대한 자원이 사용가능하게 되고, 큐 공간 사용가능 메세지를 전송할때를 결정하는 제 7 도의 서버 버스 유니트에 대한 또다른 흐름 다이어그램.
제 9 도는 큐 풀 상태를 나타내고, 에러를 표시하는 버스 에러상태 메세지의 필드를 도시하는 블럭 다이어그램.
제 10 도는 접속그룹과 무관한 자원을 가리키는 큐 공간 사용가능 메세지의 필드를 도시하는 블럭 다이어그램.
제 11 도는 수용하는 작업요청을 개시하도록 접속그룹을 알리는 재개시 큐 메세지의 필드를 도시하는 블럭 다이어그램.
제 12 도는 접속그룹에 대한 큐 풀 상태에 포함된 메세지 흐름의 다이어그램.
제 13 도는 식별된 프로세스에 대한 작업요청이 있는 것을 가리키는 조작개시 메세지의 필드를 도시하는 블럭 다이어그램.
제 14 도는 요청위치와 데이타를 식별하도록 사용된 요청/응답 제어블럭의 필드를 도시하는 블럭 다이어그램.
제 15 도는 요청/응답 제어블럭에 부가된 필드를 도시하는 블럭 다이어그램.
제 16 도는 작업요청의 응답을 가리키는 개방 메세지의 필드를 도시하는 블럭 다이어그램.
제 17 도는 관리하도록 원격기억부를 요청하는 기억요청 메시지의 필드를 도시하는 블럭 다이어그램.
제 18 도는 원격관리될 기억부 리스트의 위치를 가리키는 기억부 리스트 사용가능 메세지의 필드를 도시하는 블럭 다이어그램.
제 19 도는 관리될 원격 기억부를 식별하도록 사용된 기억부 리스트 제어블럭의 필드를 도시하는 블럭 다이어그램.
제 20 도는 원격기억부 관리를 복귀시키는데 사용된 기억부 리스트 완료 메세지의 필드를 도시하는 블럭 다이어그램.
제 21 도는 원격기억부 관리 복귀요청에 사용된 복귀 기억부 리스트 메세지의 필드를 도시하는 블럭 다이어그램.
제 22 도는 원격 기억관리부 제어전달에 수반된 메세지 흐름의 다이어그램.
제 23 도는 원격 기억부 관리부여를 도시하는 블럭흐름 다이어그램.
제 24 도는 원격기억부 관리의 복귀를 도시하는 블럭흐름 다이어그램.
제 25 도는 작업요청의 흐름을 역전시키는데서 수반된 메세지 흐름의 다이어그램.
제 26 도는 작은 양의 데이타를 비공식적으로 전달하는데 사용된 신호버스 메세지의 필드를 도시하는 블럭 다이어그램.
제 27 도는 작업요청의 흐름을 역전시키는 제 26 도의 신호 메세지에 대한 다른 비젼을 도시하는 블럭 다이어그램.
제 28 도는 DMA전송요청에 사용된 DMA요청버스 메세지의 필드를 도시하는 블럭 다이어그램.
제 29 도는 DMA전송완료를 가리키는데 사용된 DMA Comp버스 메세지의 필드를 도시하는 블럭 다이어그램.
제 30 도는 제 29 도 및 30 도의 DMA메세지를 전송 데이타로 사용하는데 수반된 메세지 흐름의 다이어그램.
* 도면의 주요부분에 대한 부호의 설명
50.52 : 버스 유니트 56 : 프로세서
58 : 주기억부 66 : I/O프로세서
86 : 버스관리기 120 : 제어블럭
156 : 포인터
본 발명의 양수인에게 양도된 미합중국 특허 제4,649,473호가 본원에 참고로 포함되어 있다.
동시 계류중인 미합중국 특허출원 제 호(대리인 일람번호 RO987-030) "역전흐름 제어장치 및 방법 (REVERSE FLOW CONTROL MECHANISM AND METHOD)"을 대응참고로 할 수 있다.
동시 계류중인 미합중국 특허출원 제 호(대리인 일람번호 RO987-031) "원격저장 관리장치 및 방법(REMOTE STORAGE MANAGEMENT MECHANISM AND METHOD)"을 대응참고로 할 수 있다.
본 발명은 버스상에서 프로세스들 사이의 작업 흐름제어에 관한 것으로, 특히, 프로세서 자원의 공유를 위한 프로세서 사이의 논리적 접속의 관리에 관한 것이다.
종래의 프로세스-대-프로세스 통신에서 통신방법이 통신 프로세스에 대해 명료한 경우, 프로세스를 포함하는 하나의 유니트는 버스상에서 다른 유니트에 의해 수행될 작업을 요청한다. 작동될 데이타는 요청기(requestor)의 기억부에 있으며, 그리고 서버 유니트(server unit), 즉, 요청을 실행하는 유니트는 데이타에 억세스가능하다. 종래 시스템은 프로세스 사이의 논리적 접속을 공정히 관리하기 위한 수단이 부족하여, 최저 수준의 서비스만이 사용가능하다. 서비스의 수준은 할당된 시스템 자원에 의해 좌우된다.
프로그래밍 프로세스의 관점에서 보면, 공유된 자원은 서버 프로세스에 의해 제공된 작업이다. 상기 자원의 유니트는 작업 요청이다. 임의의 서버의 모든 사용자는 그 자원에 대하여 최저 수준의 억세를 보장받아야 한다. 즉, 모든 사용자는 어떠한 미처리의 작업 요청을 갖는 것을 허락받아야 하며 이러한 요청은 최후에는 프로세스를 위해 서버에 제공되는 것이 보장되어야 한다.
대부분의 버스 구현은 각각의 신호라인을 사용하여 작업요청을 표시하는 메세지의 수용 및 거절을 확인한다. 원격 통신응용에 있어서, 흐름제어를 위해 페이징 장치가 설치되어 있다. SNA를 카운팅 장치를 사용한다. 메세지의 창시자는 확인이 수신될때까지 최대의 메세지가 미처리되는 것을 허용한다. 미처리될 수 있는 메세지의 수는, 메세지의 수신측에 의해 설정되어야 하고, 미처리 메세지의 페이징 제어는, 메세지의 송신측에서 책임져야 한다. 그리하여 각각의 송신측 및 수신측의 흐름 제어에 직접 포함된다.
러빈슨등의 미합중국 특허 제4,449,182호에서, 명령링과 응답링을 호스트 프로세서 주 기억부에 기억된다. 그들은 I/O제어 프로세서에 대한 명령을 위한 공간과, 제어기로부터의 명령에 대한 응답을 위한 공간을 포함한다. 각각의 I/O제어기마다 하나의 응답링과 명령링이 있다. 소유권 비트는 호스트 프로세서에 의해 아직 판독되지 않은 응답 또는 I/O제어기에 의해 프로세스되지 않은 명령에 대해 프로세서중 하나가 기록하지 못하도록 사용된다. 명령링이 꽉찬다거나, 웅답링이 빈다면, 상기 호스트는 명령링에 채워져 있지 않은가 또는 웅답링이 비어 있지 않는가를 나타내는 인터럽트를 수신때까지 링 검사를 하지 않도록 지시된다. 두 프로세서는 판독 또는 기록되어야 하는 링내의 다음 위치를 가리키는 포인터를 포함한다. 그리하여, 매우 초보적인 형태로, 장치 사이에서의 간단한 형태의 흐름 제어가 설정된다.
러빈슨등의 특허는, 서로 통신하는 복수의 프로세스에 대한 자원 할당의 문제를 다루지 않는다. 상기 특허는 프로세서에서 실행되는 복수의 프로세스에 의해 최저 수준의 서비스를 보장하지 않는다. 다중 프로세스 환경에서의 통신은, 주어진 다른 큐잉지연(queueing delay)과 프로세스의 독립성 때문에 훨씬 더 복잡하다.
분산 프로세서 네트워크내 버스 유니트용 통신 관리장치는 각 프로세스에 의해 사용가능한 최소 수준의 서비스를 보장하도록 통신 프로세스 사이에서의 논리 접속을 관리한다. 버스 유니트는 분산 프로세스 네트워크내 버스에 부착된 프로세스 유니트이며, 예를들면 하나이상의 호스트 프로세서 또는 입력/출력 프로세서를 포함할 수 있다. 프로세스 사이의 논리적 접속은 버스관리기에 의해 각각 프로세스에서 접속그룹내에 함께 그룹을 이룬다. 각 접속그룹은 적어도 하나의 작업요청을 수행하도록 충분한 프로세서 자원이 주어진다.
접속그룹이 이미 그 한계까지 미처리의 작업요청을 가질 때, 버스관리기는 그룹이 꽉찬후 요청된 작업의 프로세스를 포함하는 버스 유니트에서 그들의 특정 요청은 동시에 실행될 수 없는 것을 알려준다.
하드웨어 큐잉지연때문에, 요청 프로세스는 꽉찬 접속그룹에 접속된 프로세스로의도된 또다른 작업 요구를 전송할 수도 있다. 버스관리기는 다시 요구를 거절하고 원래 버스 유니트에게 알린다. 작업이 접속그룹 내의 프로세스에 의해 완료되면, 버스관리기는 또다른 작업요청을 수용할 수 있는 것이 가능한 것을 버스 유니트에게 알린다. 전송되는 순서로 작업 요청은 프로세스하는 것이 바람직하므로, 요청하는 버스 유니트는 올바른 순서로 그의 작업 요청을 재개시하며 그때 버스 유니트에게 수용하는 작업 요청을 다시 시작해야 하는 서버프로세스를 알린다. 요청버스 유니트는 요청기로부터 재개시 메세지를 수신한 후에만 서버 버스 유니트에 의해 수용될 요청을 전송한다.
접속그룹의 사용은 상당한 장점을 제공한다. 그것은 가장 낮은 프로그래밍 레벨에서의 단일 제어장치이며, 모든 버스 유니트에 대해 사용된다. 버스 유니트의 역활과는 관계없이, 호스트 프로세서, 통신, 2차 기억부, 작업 단말등과 같은 다른 형의 장치를 지지하는 I/O제어기는, 모두 흐름 제어장치를 사용한다. 그것은 모든 버스 유니트에 대해 같기 때문에 버스상에서 대등한 환경을 지지한다.
접속그룹은 임의의 버스 유니트가 다른 버스 유니트에 의해 대량의 활동때문에 또다른 버스 유니트의 서비스로부터 차단되는 것을 방지한다. 이것은 두개의 독자적인 프로세서상의 프로세서 사이 접속만을 위한 접속그룹을 갖고, 버스에 부착된 각 프로세서에 대해 적어도 하나의 접속그룹을 요청함으로써 이룩된다. 그리하여, 두개의 다른 프로세서에 결합된 프로세서는 적어도 두 접속그룹(각 프로세서에 있어서 1개씩)을 가져야 한다.
양호한 실시예에서, 통신이 요망되는 다른 각 프로세서와의 통신에는 세종류의 접속그룹이 있다. 저활동 프로세스는 임의의 일시에 소량의 작업요청을 수용할 수 있는 접속그룹에 속한다. 중간 활동 프로세스는 많은 작업 요청을 수용할 수 있는 접속그룹에 속하며, 그리고 고 활동 프로세스는 대량의 작업요청을 수용하기 위해 많은 시스템 자원을 갖은 접속그룹에 속한다. 그러므로 예상된 작업 수준을 기초로 한 다양한 프로세스에 대하여 서비스의 수준이 보장된다.
상기 메세지를 사용해서 접속그룹이 풀 될때를 표시하고 또한 그 접속그룹으로 거절된 메세지의 재전송을 조정하면 또다른 이점이 제공된다. 그것은 작업이 의도된 순서로 실행되는 것을 보증한다.
접속그룹을 사용하면, 1개의 접속그룹을 임계 상항으로 자원을 해방시키는 역할을 하는 프로세서에 할당하는 것이 가능하다. 그래서 최소한 하나의 작업 요청이 상기 그룹에 의해 수신된다면, 자원은 해방될 수 있다. 자원을 해방시키는 1개의 수단은 작업을 완전히 중지시켜, 시스템을 리세트시킨다.
자원을 그룹화하는 것의 한 이점은 더많은 장치를 지지할 수 있는 것이다. 각 장치는 장치가 동작하기 위해 필요로 하는 최소한의 자원을 가진다. (상기 그룹내의 장치수의 장치당 요구된 최소치)보다 적은 자원을 제공함으로써, 보다 많은 장치가 시스템에 부착될 수 있다. 한 예는 테이프 구동장치이다. 다수의 테이프 구동장치를 부착시키는 것이 바람직하고, 각각의 구동장치가 데이타를 버퍼하기 위해 많은 양의 기억부를 요구한다면, 각 테이프 구동장치에 충분한 자원을 할당시켜 직접 억세스 기억장치가 사용가능한 자원은 거의 남아있는 것이 없다. 테이프 구동장치를 1개의 접속그룹에서 결합시키며, 동시에 1대 또는 2대만이 동작하는 것으로 충분한 자원을 할당함으로써, 충분한 자원은 직접 억세스 기억장치에서 사용가능하다. 테이프 구동장치에, 또는 직접 억세스 기억장치에도 보증되는 수준의 지지가 제공된다. 5대의 테이프 구동장치가 동시에 동작하는 것은 전혀 없기 때문에, 전체적인 서비스는 저하되지 않는다.
제 1 도는 본 발명과 같은 양도인에 양도된 미합중국 제4,649,473호로부터 취해진다. 제 1 도는 독자가 본 발명을 보다 명확히 이해하기 위한 기초지식을 제공한다. 다음 문장은 제 1 도를 기술하며, 프로세스가 기초적인 통신 관리를 모르는 프로세스-대-프로세스 통신에 중점을 둔다. 기초적인 버스 전송장치, 및 본 발명의 주안점인 버스관리기는 후술하기로 한다.
제 1 도에서, 분산 처리 환경의 상부도는 일반적으로(10)으로 표시된다. (12)로 표시된 프로세서 A는 라인(14)으로 표시된 물리적인 통로에 의해(16)으로 표시된 프로세서 B에 결합된다 프로세서 A는, 그의 중심에서 (18)로 표시된 프로세서 A와 (19)로 표시된 프로세스 B를갖 도록 도시된다. 기억부(20)는 데이타 기억부의 프로세스 제어 및 데이타 기억부에 대한 억세스를 제공하도록 각각 라인(21 및 22)에 의해 표시된 바와 같이, 프로세스 A와 프로세스 B에 연결된다.
프로세스 B는, 그의 중심에서 (24)로 표시된 프로세스 D와 (23)으로 표시된 프로세스 C를 갖도록 도시된다. 기억부(25)는, 데이타 기억부의 프로세스 제어 및 데이타 기억부에 대한 억세스를 제공하도록 각각 라인(26 및 38)에 의해 표시된 바와 같이, 프로세스 C와 프로세스 D에 연결된다.
프로세스, 즉 프로세서내의 실행 프로그램은 서로 통신할 필요가 있다. 다른 구성의 프로세서, 또는, 오버타임을 변화시키는 같은 프로세서에서, 통신하는 두개의 프로세스는 다른 상대위치에 있을 수 있고, 그들사이에서 다른 물리적인 경로를 가질 수도 있다.
인터 프로세스 통신설비(IPCF)는 프로세서 A 및 프로세서 B내에 각각(30,32)으로 제공되여 프로세스간의 통신을 조정한다. 이것은 통신을 행하는 프로세스에 의해서 명료하게 위치된다. IPCF(30)는, 라인(34)으로 표시된 바와 같이, 프로세서 A내의 프로세스 A에 결합되며 또한, 라인(36)으로 표시된 바와 같이, 프로세스 B에 결합된다. 라인(34 및 36)은 프로세스 A 및 프로세서 B와 IPCF(30)사이의 인터페이스를 표시한다. 상기 인터페이스는, 적절한 데이타 경로가 설정된다면, 프로세스 A와 프로세스 B사이의 통신을 허용한다. IPCF(30)는 또한 프로세서 B내의 전송장치(40)를 통해 IPCF(32)로 결합된다. IPCF(32)는 인터페이스 라인(42 및 44)에 의해 프로세스 C와 D에 차례로 결합된다. IPCF 및 전송장치를 갖는 상기 인터페이스는, 통신하는 프로세스 위치의 인지없이도, 모든 프로세스 사이의 통신 설정을 허용한다. 전송장치(38 및 40)는 프로세스 A와 프로세스 B 또는 프로세스 C와 프로세스 D가 단일 프로세스내에서 통신할때 사용하기 위한 로컬 전송장치와, 같은 다수의 전송장치를 구비한다. 프로세스 A와 프로세서 B가 동일 기계에 존재한다면, 버스 전송장치는 프로세서 A와 프로세서 B상의 프로세스들 사이의 통신이 용이하도록 사용된다. 내부 기계통신에 있어서, SNA와 같은 통신 프로토콜이 사용하기에 적합하다.
전송장치(38,40)는 데이타 이동기이다. 그들은 한 위치에서 다른쪽으로 데이타의 바이트 전달 책임이 있으며, 정보가 이동되는 것의 의미는 아니다. 그리하여, 프로세서 A내의 기억부(20)는, 라인(46)으로 표시된 바와 같이 전송장치(25)에 결합되고, 프로세서 B내의 기억부(25)는 라인(48)으로 표시된 바와 같이 전송장치(38,40)에 결합되여, 전송장치(38,40)에 의해 직접적인 정보전달을 가능케 한다.
통신하려는 프로세스용의 IPCF는, 통신을 위한 전송장치를 선택한다. 통신 프로세스는 사용된 장치에 대하여 알 필요는 없다. 통신을 하려는 프로세스는 목표 프로세스의 이름을 통신하려는 프로세스에 공지된 바와 같이 IPCF에 제공하고, 상기 IPCF는 적절한 디렉토리 서비스를 사용하고 그것을 위치시킨다.
그때, IPCF는 적절한 전송장치를 선택하고, 시스템으로부터 제공된 서비스를 사용하여 통상의 방법으로 프로세스간의 접속을 셋-업한다. IPCF는, 응용으로부터 페이징 관리기와 같은 기본 시스템 서비스까지 모든 레벨의 프로세스에 의해 사용될 수 있다.
각각의 다른 능력 및 특성을 갖는 다수의 다른 전송장치의 사용을 가능케 하기 위해, IPCF는 각 프로세스에 대한 일반적인 전송장치 인터페이스를 포함한다. 인터페이스는 접속부의 설정과 프로세스간의 정보 이동을 위한 한세트의 기능을 정의한다. 정의된 기능은 IPCF에 의해 사용된 전송장치상에 맵된다. 인터페이스에 수록된 프로그램은 전송장치와는 무관계하므로, 통신할때 그들의 상대 위치와도 무관하다.
프로세스 사이의 통신은, IPCF에 의해 설정된 바와 같이, 그들 사이의 접속을 걸쳐 메세지를 전송 및 수신하는 것이다. 메세지는 작업 요청 및 데이타를 포함한다. 특정한 작업요청에 관련하여, 프로세스는 요청기(requestor) 또는 서버(sewer)의 역할을 한다. 요청기는 요청을 실행하는 서버에 요청을 전달하므로써 작업 요구를 시작한다. 요청은 작업 요청(명령 및 그의 파라미터)와 임의의 선택적인 일부 데이타를 포함한다. 요청 및 데이타 둘다는 가변길이이다.
IPCF, 및 접속이 설정되는 방법에 있어서, 독자가 또다른 정보를 원한다면, 참조로 본원에 포함된 상술된 특허는 또다른 상세한 설명을 제공한다. 전송장치(38 및 48)의 일부인 버스관리기는 지금부터 기술하기로 한다.
[U버스관리기]
제 2 도에서, 두개의 버스 유니트(50 및 52)는 I/O(입력 및 출력) 버스(54)와 같은 물리적인 경로에 의해 결합된다. 한 양호한 실시예에서, 버스 유니트(50)는, 라인(60)에 의해 결합된 주 기억부(58)를 갖는 프로세서(56)를 지닌 호스트 처리 시스템을 구비한다. 호스트 프로세서(56)는, 계수 프로그램으로부터 작동 시스템 프로그램까지, 다수의 프로그램을 실행시킨다. 프로그램의 실행 단계를 프로세스라고 불려진다. 여러 프로세스 PA1,PAm,PB1-PBm 및 PC1-PCm는 호스트 프로세서(56)에 도시된다.
양호한 실시예에서, 버스 유니트(52)는 라인(70)에 의해 결합된 주기억부(68)를 갖는 I/O프로세서(66)를 구비한다. I/O프로세서(66)는 또한 실행할 수 있는 다수의 프로세스 PD1-PDn,PEl-PEn 및 PF1-PFn를 갖는다. 많은 수의 프로세스가 프로세서(56 및 66) 각각에 도시되지만, 프로세서가 단지 하나의 프로세스를 갖는 경우도 있을 수 있다. 또다른 실시예에서, 프로세서(66)는 프로세서 네트워크내의 피어 프로세서(peer processor)이다. 버스 유니트(52)내로 IPCF(74)와 버스 유니트(50)내의 IPCF(74)를 통하는 두 통신 프로세스의 위치와는 무관하게, 프로세스는 서로 통신한다. 각 쌍은, 버스 유니트(52)내와 라인(82)과 버스 유니트(50)내의 라인(80)에 의해 표시된 논리접속에 의해 IPCF를 통해 논리적으로 접속된다.
접속설정은 상기 관련된 특허에 보다 상세히 기술되있다. 요약하면, IPCF개방 동사(open verb)가 두 프로세스사이의 IPCF접속을 설정한다. 상기 저속은 프로세스 통신의 각 쌍에 고정된다. 그리하여, 각각의 라인(80)은 라인(82)중 하나와 매치한다. 제 2 도에 도시된 것보다 많은 I/O프로세서 또는 호스트 프로세서가 있을 수 있으므로, 라인(82)보다도 많은 라인(80)은 도시되지 않은 프로세서내에서 프로세서로의 접속을 표시한다. 통신을 시작하는 것이 바람직한 프로세스에 의해 나타난 개방동사는 IPCF로 하여금 개방 동사를 표시한 프로세스와 개방동사에 의해 지정된 목표 프로세스 사이의 논리 접속을 발생시킨다. 개방 동사 목표는 엔트리 이름을 통해 식별된다. 개방 동사는 개방 동사에 제공된 엔트리 이름을 기초로하여, 프로그램의 새로운 단계 또는 이미 실행중인 단계에 대한 접속을 설정한다.
개방동사는, 서버내의 프로그램 및, 접속된 상기 프로그램의 실행단계(즉, 프로세스)를 판정하기 위해 IPCF 및 연관된 동작 시스템에 사용되는 엔트리 이름을 포함한다. 접속 id는, IPCF에 의해 복귀된 접속을 식별한다. 그것은 다른 조작에서 상기 접속을 참조하기 위해 사용된다. 특정 접속 id는, 단지 단일 프로세서내에서만 공지된다. 두개의 접속된 프로세스는, 일반적으로 같은 접속에 대해 다른 접속 id를 갖는다. 접속 id는, 로컬 IPCF에 의해 할당되며 프로세서내서 유일무이하다. 복귀 코드는 개방동사의 프로세스 완료를 표시하기 위해 IPCF에 의해 사용된다.
제 2 도면에서, 버스관리기(86)는 이미 설정된 다수의 논리 접속(80)에 의해 호스트 프로세서(56)에 결합된다. 유사한 버스관리기(88)는 버스 유니트(52)에서 도시되며, 또한 (82)에서 다중 접속을 갖는다. 버스관리기(86)는 제 1 도의 버스 유니트에서(38 및 40)으로 표시된 버스전송장치 (BTM)에 의해 수행된 같은 기능을 제공한다.
버스관리가(86 및 88)는 접속을 관리하며, 버스(54)상에서 작업요청에 대한 흐름을 제어하는 메세지를 전송한다. (90 및 92)로 표시된 버스를 지지하는 하드웨어는, 버스 유니트 각각에 대한 버스에 중재를 제공하고, 또다른 버스 유니트의 주 기억부에 DMA 가능성을 제공하고, 데이타 및 메세지의 전송을 허용하도록 얻어진 버스를 제어할때까지 각 버스관리기로부터 메세지의 큐잉을 제공한다. 상기 버스 하드웨어는, 또한 주 기억부내에서 버스 유니트로부터 나온 메세지의 큐잉을 제어한다.
버스관리기 (86)는 버스 유니트(52)내에서 추구된 개방동시에 의해 야기된 통신을 수신한다. 그리고 나서 표시된 프로세스로의 접속부를 설정한다. 목표 프로세스(즉, 서버 프로세스)의 식별자, 요구 프로세스 식별자 특정한 장치가 실행하는 작업 형태와 같은 정보를 사용하여, 상기 접속에 대한 접속 id는, CG1, CG2‥‥CGn로 표시된 다수의 접속군중 하나에 할당된다. 정보의 일부는 버스 유니트(52)와의 통신에 포함된다. 다른 정보는 주기억부(58)내에 포함되며, 버스 유니트(52)에 의해 제공된 정보를 기초로하여 억세스된다. 상기 할당은 정보를 토대로 하며, 양호한 실시예에서 개발자에 의해 미리 구성된다.
접속그룹은 작업요청의 흐름을 제어하기 위해 사용된다. 각 작업요청은 프로세스 때문에 시스템 자원을 필요로 한다. 모든 작업요청이 선입 선출방식으로 제공된다면, 다수의 고자원 요청장치는 다른 장치가 서비스를 제공하지 못하도록 한다.
많은 양의 주 기억자원을 요구하는 장치의 한예는, 테이프 구동장치이다. 테이프 장치를, 그의 최대 효율모드인 스트림 모드에서 동작시키기 위해, 큰 주 기억버퍼가 요구된다. 버퍼가 다중 테이프 구동장치에 부착하는 것이 바람직하고, 각각이 스트림모드에서 작동할때 많은 양의 기억을 버퍼 데이타로 요청하면, 각 테이프 구동장치에 대한 충분한 자원의 할당은 기억장치를 직접 억세스하도록 할당되게 유용한 소수의 자원은 남긴다. 테이프 구동장치를 접속그룹으로 결합시키고, 동시에, 작동하도록 하나 또는 둘에 대해 충분한 자원을 할당함으로써, 보다 많은 자원이 직접 억세스 기억 장치에서 이용가능하다. 테이프 구동장치에도 직업 억세스 기억 장치에도 보장된 수준의 다섯개의 지지가 제공된다. 테이프 장치가 동시에 작동 불가능함으로, 전체적인 서비스 감소는 없다. 지지의 보장된 레벨이 테이프 구동장치에 대해 제공되고, 또한 기억장치를 직접 억세스하도록 제공된다. 다섯개의 테이프 장치가 동시에 작동불가하므로, 전체적인 서비스내의 감소는 없다.
접속그룹이 사용되여 자원이 어떤 호스트 프로세스에 대해 항상 사용가능하도록 한다. 한 예로 군내에 하나의 접속이 있는 접속그룹으로 대응하는 I/O프로세스와 호스트 저장/재기억(save/restore)프로세스 사이의 서버측 접속이 위치일 수 있다. 그리하여, 서버 프로세스가 다른 구룹에 대한 접속을 가질 수 있지만. 자원은 호스트 저장/재기억 작업요청을 처리하도록 사용될 수 있다.
그룹을 할당하는 하나의 기준은, 장치의 동작특성이다. 테이프 구동장치와 같은 대량의 데이타 이동기는, 한 그룹으로 넣어진다. 직접 억세스 기억장치와 같은 장치는, 주로 데이타를 다른 구룹내에 넘는 주 기억부의 안밖으로 페이징하는데 사용되고, 많은 양의 자원은 고 수준의 서비스를 보장하도록 그룹에 할당된다. 작업 스테이션과 같은 다른 장치는 또다른 그룹으로 넣는다. 사용가능한 충분한 자원이 있다면. 각 장치는 자신의 그룹을 갖는다.
그룹내에 놓인 장치가 논의될때, 그 장치에 관련하는 프로세스로의 접속이 1개의 그룹에 입력된다고 표시할 수 있다. 접속그룹으로의 또다른 할당은 서비드되고 있는 작업 요청의 형태를 기초로하여 이루어진다. 에러상태의 처리 및 유지에 연결하는 작업 요청에 관련하는 접속은 이러한 요청에 대해 서비스의 최소 수준을 보장하기 위해 또다른 그룹에 놓일 수 있다. 접속그룹을 사용하고 자원을 할당하여 작업 흐름을 제어함으로써 유연성이 제공된다.
버스 유니트(50)에서, 서버로서 작용할때, 각 접속그룹은 주 기업부(58)내의 제 3 도(제 2 도와 번호가 일치)에서 제어블럭(120)에 리스트된다. 제어블럭(120)은 그룹(10)에 대해 GPID로 표시된 각 접속그룹 CG-n의 엔트리를 포함한다. 컬럼(122)에 나타난 카운트는 그룹내의 접속부를 통해 수신된 작업요청의 수에 대한 트랙을 유지하는데 사용된 GPID엔트리에 관련되지만, 버스유니트(50)내의 프로세스에 의해 서비스되지 않는다. 활동접속 id(C10) (125)의 표는, (127)에서 접속그룹엔트리로의 포인터를 갖고, 접속이 일부분인 그룹을 식별한다. 버스 유니트(52)는 공급되지 않은 작업요청의 수에 대한 트랙을 유지시키기 위해 비슷한 장치를 갖는다.
작업요청의 상기 흐름에 대한 이정중 하나는, 접속그룹내의 작업(같은 우선순위를 갖는 단일 접속에 대해)이 최종적으로 요청 버스 유니트에 의해 요청되는 순서로 작업이 이루어지는 것이다. 그러므로,1개의 프로세스에 대하여 일부 우선순위의 데이타 기록 요청이 발생하는 경우, 자원이 사용가능하지 않을때라도 요청된 순서대로 기록한다. 이것의 모두는 요청하는 프로세서에서 명료하게 발생한다.
요청이 버스 유니트내의 흐름도가 제 4 도 및 제 5 도를 참조로하여 지금까지 기술하기로 한다. 요청기 버스유니트로부터 나온 작업요청을 기록하기 위해 4개의 큐(queue)가 사용됩니다. 각 큐는 작업요청 포인터, 요청 ID, 및, 개방 프로세스동안 통신되는 서버 버스 유니트내의 대응하는 접속그룹을 포함한다. 전송 준비완료 큐는 서버 프로세서에 전송될 준비가 되어 있는 큐 작업 요청으로 포인트하기 위해 작업요청의 정상흐름에서 사용된다. 조작개시 메세지가 전송준비 완료 큐내의 요청에 대해 전송될때 포인터는 제거되는 응답 대기 큐상에 입력된다. 조작 완료 메세지가 수신될때, 작업 요청에 대한 엔트리는 동일한 큐로부터 제거된다. 이러한 정상적인 흐름은 제 4 도의 블럭(150,152, 및 154)에 나타난다.
큐 풀 지시가 작업 요청에 응답하여 복귀될때, 포인터는(156)에서 대기로부터 완료 큐내지 거절 큐로 이동되며 수신된 큐 풀 메세지(queue full message)가 수신되는 지시는 메세지가 수신되는 접속그룹에 관련된다. 접속그룹이 사용가능한 공간을 갖는 것을 표시하는 큐 공간 플래그는 (158)에서 체크된다. 상기 플래그는 정상적으로 오프하여, 버스관리기는 전송 및 수신통신을 계속한다. 큐 풀 지시가 복귀되는 완료 큐에서의 각 작업요청은 상기 방법으로 거절 큐상에 위치된다.
제 5 도에서, 버스관리기가 큐 전송 준비에서 다음 엔트리에 대응하는 또다른 조작 개시 메세지를 보내도록 준비할때, 그것은(160)에서 서버 유니트내의 접속그룹에 대한 접속그룹 풀 지시를 체크한다. 접속그룹 큐를 나타내는 것이 꽉 찬다면, 요청에 대한 엔트리는 (162)에서 중간-큐상에 유치된다. 꽉차지 않는다면, 조작 개시 메세지는 (164)에서 보내지며, 요청 엔트리는(166)에서 완료 큐를 대기하도록 위치된다.
제 4 도의 역 흐름을 보면, 큐 공간 사용가능 메세지가 (168)에서 요청기 프로세서에 의해 수신될때, 큐 공간 플래그는(170)에서 세트되며, 완료 큐의 대기는 큐 풀이 수신된 후 임의의 엔트리에 대해 체크된다. 요청에 대해 복귀되지 않으면, 버스 유니트는(174)에서 다음 통신을 계속 대기한다.
모든 것이(172)에서 인지되면, 엔트리는(176)에서 거절 큐로부터 전송준비 큐의 초기로 이동된다. 그리고나서, 요청 엔트리는(178)에서 중간 큐로부터 전송준비 완료 큐로 그 다음 거절큐로 이동되고 공간 플래그(18)에서 리세트된다. 재개시 큐 메세지는(182)에서 보내지며, 버스관리기(184)에서 전송준비 완료 큐로부터 전송을 시작한다.
제 6 도에서, 상기 흐름에 의해 사용된 큐는 도시되고, 작업 요청에 대응하는 큐 엔트리의 흐름은 화살표로 도시된다. 전송준비 큐(200)는 정상적으로, 라인(202)에 의해 엔트리를 응답 큐(210)로 전달한다. 큐 풀 상태가 수신되면, 엔트리는 큐(210)로부터 라인(222)을 통해 거절큐(220)에 전달된다.
한편, 큐(200)에서 새로운 작업이 시작될때, 접속그룹에 대한 작업요청이 이미 풀인것이 검출되면, 그것은 라인(232)을 통해 중간큐(230)로 전달된다. 풀 접속그룹으로 표시 응답큐(210)로부터의 모든 엔트리가 거절큐(220)로 전달되고, 재개시 큐 메세지가 큐 공간 사용가능 메세지에 응답하여 전송될때, 거절된 큐는 라인(234)을 통해 전송준비 큐(200)의 상부뒤로 전달된다. 그리고 나서, 라인(246)상에서, 다른 작업에 자원을 갖는 그룹에 대한 다른 요청은 미리 거절된 요청뒤의 전송준비 큐(20O)로 전달된다.
서버 버스 유니트에서 대응하는 흐름은 제 7 도 및 제 8 도에 도시된다. 서버 버스 유니트에 의해(250)에서 조작 개시 메세지를 수신할때, 접속그룹은(252)에서 결정되고, 그의 카운터는(254)에서 증가된다. 카운터 한계는 어떤 시간에는 눈에 묄 수 있는 접속그룹인 작업 요청의 수를 정의하는테 사용된다. 상기 카운터의 값은(256)에서 카운터 한계와 비교되고, 상기 값이 한계치보다 크면, 큐 풀 플래그는 (258)에서 세트되고 큐 풀 상태는(260)에서 시작의 버스 유니트로 버스에러 상태 메세지내에서 보내지고, (261)에서 처리는 계속한다. 또다른 실시예에서, 실제 사용가능한 자원은 모니터되고, 조작 개시에 의해 표시된 작업요청에 대해 요청된 자원과 비교된다. 카운터가 한계치보다 크지 않지만, 큐 풀 플래그가(262)상에서 검출된다면, 흐름은(260)으로 복귀하고, 큐 풀 상태는 조작개시에 응답하여 보내지며, 그렇지 않으면, 요청 처리는(264)에서 계속하고, 흐름은(266)에서 계속한다. (250)에서 수신된 메세지가 조작 개시 메세지가 아니라면, 그것은(268)에서 재개시 큐 메세지인지 알도록 체크된다. 그렇지 않다면, 처리는(270)에서 계속한다. 그것이 재개시 큐 메세지라면, 퓨 풀 플래그는(272)에서 오프되도록 리셋되며, 처리는 (274)에서 계속한다.
큐 풀 상태를 제거하기 위해, 서버 프로세서는 보다 많은 자원을 할당시켜야 하고, 미처리 요청의 한계는 증가하거나, 풀 접속상의 요청중 하나에서 작업을 완료한다. 상기 흐름은 제 8 도에 나타난다. 작업 요청이 완료될때, 관련 접속그룹 카운터는(280)에서 감소된다. 개방 및 에러상태 메세지는 (282)에서 보내진다. 큐 풀 플래그는(284)에서 체크되고, 그것이 오프이면, 처리는(285)에서 계속한다. 큐 풀 플래그가 세트되면 접속그룹 카운터는 그것이(286)에서 한계치 이하인지를 알도록 채크된다. 블럭(286)에서 "로우값(low Valve)"으로 언급된 이러한 한계는, 미리 논의된 한계치와 같을 필요는 없다. 충분한 자원이 다수의 요청에 대해 사용가능하도록 보다 낮은 한계치를 설정하는 것이 바람직할 수 있다. 이것은 다수의 요청이 요청기 큐의 재개시 요청에 따라 급히 전송되는 큐 풀 흐름의 연속순차를 제거한다. 카운터가 로우값 이하가 아니면, (287)에서 계속된다. 카운터가 (286)에서 로우값 이하이면, 큐 공간 사용가능 메세지는(288)에서 전송되며, 처리는(290)에서 계속된다.
양호한 한 실시예에서, 분리된 접속그룹은 X25,LAN,SDLC 및 다른 통신 프로토콜을 수행하는 프로세스로의 접속을 포함하는 각 통신 프로토콜을 위해 버스 유니트에서 제한된다.
다른 그룹은 에러조정 프로세스 접속을 구비한다. 또다른 그룹은 일반 관리 프로세스에 관련된 접속을 포함한다.
또다른 그룹은 버스 유니트(52)에 의해 제어된 디스크 구동장치 사이에서 데이타를 전달할때 포함되는 프로세스로의 접속과 같은 정상기능을 구비한다.
본 발명의 영역내에서 접속그룹 수에는 여러가지로 변형이 가능하다. 몇몇 프로세스는 상당량의 자원을 필요로하며, 따라서 각각의 그러한 프로세스의 접속을 위해 단일 접속그룹을 갖는 것이 바람직하다. 필요한 접속의 특정 그룹은, 실제의 수행 및 서로 통신하기 위한 프로세스 특성에 의존한다.
호스트 프로세서(56)내의 프로세스와 I/O프로세서 (66)내의 프로세서 사이의 접속을 설정하는 것은, 접속을 완료하며 다수의 접속그룹 CG1,CG2‥‥CGn중 하나에 프로세스 접속을 지정하는 버스관리기(88)에서 발생한다. 따라서, 또다른 프로세스에 접속되는 버스 유니트를 구비하는 시스템내 각 처리에 대해, 목표 처리가 할당되는 프로세서의 버스 관리기는, 그 접속을 그룹에 지정하며, 그 그룹에 지정된 접속상에서 작업요청을 하도록 사용되는 접속그룹에 자원을 할당한다.
[U흐름제어 버스 메세지]
메세지는 제어용 버스관리기 사이엔 전달되며, 접속그룹이 상기 그룹에 접속된 처리에 대해 의도된 요청을하 도록 충분한 자원을 갖지 않을때 메세지를 재 동기화 한다. 목표 버스 유니트가 특정 접속그룹을 위해 부가작업을 수용하지 못할때, 상기 유니트는 지정된 큐 풀 상태에 따라 메세지를 복귀시킨다. 이 상태는 버스 에러상태 메세지내에 포함되며, 그 포맷은 제 9 도에 도시된다. 버스에러 상태 메세지는 동작의 연속적인 종료 및 계속을 방지하기 위한 요청에 따라 복귀된다. 버스에러 상태 메세지가 전송되는 일부 다른 상태는, 메모리 억세스 요청상에서의 어드레싱 에러, 포맷에러 및 규정되지 않은 또는 지지되지 않은 메세지 수신을 포함한다. 여러다른 상태는 버스전공 장치의 물리적 수행에 의존하는 이 메세지를 전송하기 위해 호출할 수 있다.
버스애서러상태 메세지에서 예약으로 표시된 필드는 후에 사용하기 위해 예약된다. 버스 유니트 필드는 메세지 소스를 확인하기 위해 사용된다. 그것은 본 발명의 목적상 무시된다. 제 3필드, 메세지 ID(82)는 버스에러 상태 메세지로서 메세지를 확인하기 위해 사용된다. 제어필드는 독특한 요청 또는 실패를 경험하는 접속을 확인하기 위한 정보를 포함한다. 이 펄스의 내용은 실패 및 특정전송 메세지/DMA 및 실패를 경험하는 흐름방법에 의존한다. CFID필드는 제어필드의 내용을 확인한다. 다른 값은 제어필드의 정보가, 요청기 ID, 또는 서버접속 ID 또는 제어블록의 어드레스 등임을 나타낸다. 그것은 메세지가 전송된 이유와 누가 전송했는가에 의존된다. ACTN필드는 재생활동을 확인한다. 한 값은 어떤 작용도 취해지지 않았음을 나타내며, 또다른 것은 접속의 폐쇄 개시를 요청하며, 또다른 것은 리세트가 통신을 재 동기화하도록 한다.
큐 풀 상태는 에러상태 필드에서 나타나는데, 이것은 풀 상태인 접속그룹을 확인하는 CONN그룹 ID가 따른다. 그것은 메세지가 어드레스 버스 유니트에 의해 실행되지 않은 것을 나타낸다. 제어필드는 큐 풀 상태가 표시될때 다른 값을 포함한다 그것은 데이타가 전송되는 방식에 의존하는 요청기의 ID 또는 제어 블럭 어드레스를 포함한다. 데이타를 전달하는 다른 방법은, 본원의 흐름 제어부에서 더 상세히 설명된다. 에러상태 필드는 상술된 것과 같은 다른 에러상태를 확인하기 위해 사용된다. 큐 풀 상태를 소스버스 유니트에 전송한 후에, 목표 버스 유니트의 버스관리기는 충분한 자원이 접속그룹을 사용하기 위해 언제 이용할 수 있는지를 판단하기 위해 적당한 접속그룹을 모니터한다.
상기 목표 버스 유니트가 특별한 접속그룹에서 사용가능한 공간을 갖을때, 유니트는 큐 공간 사용가능 메세지를 소스 버스유니트에 전송한다. 큐 공간 사용가능 버스 유니트 메세지는, 사용가능 큐 공간은 소스 버스 관리기를 나타내기 위해 사용된다. 상기 메세지는 버스 유니트가 큐 폴 상태를 소스 버스 유니트에 전송한 후에만 버스 유니트에 의해 전송된다. 상기 메세지는 어떤 접속 그룹이 사용가능 큐 공간을 갖는지를 나타낸다. 큐 공간 사용가능 메세지의 포맷은 제 10 도에도 도시된다. 네개의 예약 필드, 메세지 ID드 및 사용 가능한 큐 공간이 존재하는 접속그룹을 독특하게 규정하는 그룹필드가 있다.
소스 버스 유니트는 큐 공간 사용가능 메세지를 수신하며, 목표 버스 유니트상에서 특별한 접속그룹에 전송되는 작업 요청수를 결정한다. 통신이 비동기로 발생하며, 소스버스 유니트의 하드웨어내 내부 큐 지연이 있으므로, 소스 버스 유니트는 작업을 시작하기 위해 이미 전송된 더 많은 메세지를 갖을 수 있다.
다시 전송되어야 할 통신이 확인될때, 즉, 큐 폴 상태가 복귀되게 하는 메세지보다 시기가 늦게 발생되며, 풀인 접속그룹에 대해 지정될때, 소스 버스 유니트의 버스관리기는 재 개시 큐 메세지를 유출한다. 이 메세지는 목표 프로세서내의 접속그룹에 비순서대로 받아들여진 메세지가 없는 것을 확인하기 위해 사용된다. 자원 사용가능 메세지가 나온직후에, 접속그룹이 메세지를 받아들이기 시작하면, 임의의 작업이 비순서대로 처리될 수도 있다. 이것은 큐 풀 상태를 수신하는 소스 버스 유니트 전에 소스 버스 유니트에 의해 유출된 메세지에 의해 시작된 작업인데, 이것은 큐 공간 사용가능 메세지의 유출후에 목표 버스 유니트 관리기에 의해 수신된다.
재개시 큐 메세지의 포맷은 제 11 도에 표시된다. 그것은 메세지 (OD) ID필드내에서 메세지기 어떤 형태인가를 확인하며, 그룹필드에서 그 큐를 재개시 하기위한 접속그룹을 확인한다는 면에서 큐 공간 사용가능 메세지와 유사하다. 재개시 큐 메세지가 목표 버스 유니트의 버스관리기에 의해 수신될때까지, 버스관리기는 각 메세지가 작업을 시작하도록 큐 폴 상태로 복귀된다.
[U메세지 흐름예]
제 12 도에서는 목표 버스유니트내 접속그룹에 대한 풀큐에 응답한 메세지 상호 교환이 도시된다. 목표 버스 유니트는 서버로 표시되며 소스 버스 유니트는 요청기로서 표시된다. 서버에 의해 전송 및 수신된 메세지는 도면의 서버측에 도시된다. 왜냐하면 그것은 흐름이 제어되는 곳이기 때문이다. 요청기와 서버 사이의 화살표는 각 메세지를 수신한 버스 유니트를 표시한다. 메세지의 순서는 숫자 순서로 표시된다. 이제 이벤트가, 나열되는데, 제 12 도에 나타나는 순서이다. 즉,
1. 요청기 프로세스는 조작 개시(1) 메세지로 칭해지는 (추후 이부분에 대한 설명이 정의됨) 작업을 개시하는 메세지를 서버 프로세스로 전송한다.
2. 서버 프로세서는 조작 개시 메세지로 표시되는 접속그룹에 대한 큐 풀 상태를 인지하여, 큐 풀 상태를 포함하는 에러 메세지를 복귀시킨다.
3. 버스 유니트의 비동기 특성으로 인해, 요청기는 아직까지 큐 풀 상태를 인식하지 않았으며, 제 2메세지 조작 개시(2)를 서버에 전송한다.
4. 상기 서버는 일부 사전작업 요청을 완수하여, 개방 메세지를 전송하므로 그것을 요청기에 전달한다.
5. 서버가 일부 사전 작업요청을 완수하였으므로, 상기 서버를 사용가능 자원 또는 사용가능 큐 공간을 가지며 큐 공간 사용가는 메세지를 요청기에 전송한다.
6. 요청기는 요청기내 하드웨어 큐잉지연으로 인해 큐 풀 상태를 인식하지 않았으며, 조작 개시(3) 메세지를 전송한다.
7. 상기 서버는 서버가 재개시 큐 메세지를 수신할때까지 요청기에 큐 풀 상태를 계속 복귀시켜야 한다. 따라서 조작 개시(2) 메세지 인식에 응답하여 큐 풀(2)를 복귀시킨다.
8. 상기 서버 조작 개시(3)메세지를 인식하며 큐 풀(3) 메세지를 복귀시킨다.
9. 요청기는 조작 개시 (1), (2) 및 (3)과 큐 공간 사용가능 메세지에 대한 규 풀 상태를 인식하며, 어떤 메세지를 재전송해야 하는지 그리고 그것을 전송하는 순서를 판단한 후 재개시 큐 메세지를 전송한다.
10. 11 및 12요청기 프로세서는 정확한 순서로 조작 개시 메세지를 재전송한다.
작업이 서버에 의해 완수될때, 개방 메세지는 작업이 완수되었음을 나타내기 위한 요청버스 유니트에 전송된다. 그 포맷은 후술된다.
[U데이타 흐름]
제 2 도의 양호한 실시예에서, 버스 유니트(50 및 52)의 버스 하드웨어(90 및 92)는, 직접 메모리 억세스(DMA)기능을 갖는 것으로 표시된다. 이러한 기능은 오늘날 대부분의 하드웨어에 존재하는 표준적인 하드웨어 기능이다. 마스터 DMA기능을 갖은 버스 유니트는 DMA기능을 갖는 버스유니트내 프로세서를 방해하지 않고도 종속 DMA버스 유니트의 주기억부에 직접 억세스 하는 것이 가능하다. 이 동작은 본 발명을 완전한 이해하는데 필요하지 않음으로 상세한 설명은 생략한다.
버스 유니트(50)는 종속 DMA기능(90)을 갖는다. 양호한 실시예에서, 버스 유니트(50)는 호스트 프로세서이다. 종속 DMA기능은 호스트 프로세서(56)를 방해하지 않고도 다른 버스 유니트가 그 주 기억부(58)에 억세스 하도록 허용한다. 따라서, 호스트 프로세서(56)를 주 기억부(58)에 억세스하는 라인(60)은, 버스관리기(86)에 접속되며, 90억세스가 주 기억부(58)에 직접 허용하기 위해 종속 DMA하드웨어에 접속된다. 다시 이것은 호스트 프로세서(56)를 방해하지 않고도 버스 유니트(50)의 주 기억부(58)를 억게스하기 위해 마스터 DMA하드웨어(92) 기능을 갖는 버스 유니트(52)와 같은 또다른 버스 유니트를 허용한다. 종속 DMA기능만을 갖는 버스 유니트는, 다른 버스 유니트의 주 기억부를 직접 억세스할 수 없으며, 마스터 DMA기능만을 갖는 유니트는, 어떤 다른 버스 유니트가 그 주 기억부를 직접 억세스 하도록 할 수 없다.
버스 유니트(52)내 프로세스가 작업요청을 버스 유니트(50)내 프로세스 전송시키면, 실제 데이타 전송은 프로세스에 대해 명백하다. IPCF(72 및 74)는 작업을 조정하기 위해 프로세스에 의해 사용되는 동시 인터페이스이다. 서버 프로세스는 그자체 페이스에서 요청기에 의해 확인된 데이타를 억세스한다. 이 경우에 서버 버스유니트가 종속 DMA기능만을 갖으므로, IPCF 및 프로세스에 명백한 데이타를 얻기 위한 수단이 제공된다.
각 버스 유니트가 풀 DMA 기능을 갖는 보통 흐름에서, 버스관리기(88)는 IPCF(74)로부터의 IPCF 동사에서 정보를 수신하는데, 이것은 프로세스가 작업요청을 전송하기 위해 요구됨을 나타낸다. 버스관리기(88)는 조작 개시 메세지를 전송함으로써 해야할 작업을 갖는 버스 관리기(86)를 경계해야 한다. 버스 메세지 포맷은 제 13 도에 도시되며, 버스 유니트(52)내주 기억부(68)로부터 버스 유니트(50)내 주 기억부(58)까지 제어정보 및 데이타 어드레스를 지정하는 요청/응답 제어블럭(RRCB)을 이동시키기 위해 서버 버스 유니트(50)내 버스관리기(86)에 대한 충분한 정보를 갖는다. RRCB의 또다른 상세한 설명은 제 14 및 15 도에 도시된다. 버스관리기(86)는 IPCF(72)를 통해 주 프로세서(56)내 표시된 프로세스를 경계시켜서 계류 작업요청이 존재하는데, 이것은 프로세스에 의해 큐된다. 상기 프로세스는 상기 요청을 실행하는데, 이것은 버스 유니트 사이의 데이타 이동을 유청한다. 주 기억부(58)내에 있는 RRCB카피는, 버스 유니트 사이에서 데이타 전송을 제어하기 위해 버스 관리기 (86)에 의해 사용된다. 상기 요청된 작동은 버스 관리기(88)에 전송되는 개방(제 16 도 참조)메세지에 의해 전송 완료되는데, 이것은 IPCF(74)를 통해 요청프로세스를 경계한다.
상기 시나리오로 인한 문제는, 제 2 도에서 수행되는 것으로, 버스 하드웨어(90)는 주 기억부(68)를 직접 억세스할 수 없다. 버스 하드웨어(90)가 마스터 DMA기능을 갖는다. 할지라도, 버스 하드웨어는 물론 종속 DMA기능을 갖어야 한다.
상기 문제는 버스 유니트(50)의 주 기억부(58)내에 버퍼 관리를 버스 유니트(53)의 버스 관리기(88)에 전달하기 위한 여러 새로운 버스 메세지와 기억 리스트 제어 블럭을 사용하므로써 해결된다.이것은 요청기내 버스 관리기(88)가 요청과 관련된 데이타를 서버의 주 기억부(58)내 버퍼에 전달하도록 하며, 작업의 보통 흐름에 따라 버퍼로 부터 데이타가 서버 프로세스에 의해 사용가능한 기억부로 전달되게 한다. 따라서, 데이타 흐름은 IPCE(72)에서 정상으로 나타난다. RRCB는 서버가 억세스 해야 하는 데이타가 어디에 있는지 나타내는데 사용된다. 요청기 버스 관리기(88)는, 데이타가 주 기억부(58)내 버퍼에 배치되도록 한다. RRCB 및 메세지에 대한 더 상세한 설명은 후술된다.
RRCB는 제 14 및 15 도에 도시되며, RRCB는 작업요청 및 그에 관련된 데이타를 확인하기 위해 사용된다. RRCB는 요청기 버스 유니트내 버스 관리기와 버스 유니트 사이의 데이타 이동을 제어하기 위한 서버버스 유니트내 버스 관리기에 의해 사용되는 제어블록이다. RRCB내의 정보는 물리적 DMA 프로세스에 사용된다. RRCB 내용은 판독만 된다. 상기 내용은 서버 버스 유니트내 버스 관리기에 의해 변경 또는 수정되지 않는다.
RRCB는, 요청기의 버스 관리기에 의해 상술된 바와 같이, 양호한 실시예에서 4088 바이트 길이까지 될 수 있다. 요청기에 의해 고정된 블록 버퍼를 관리하기 위해, RRCB는 세분화되어 서로 연결될 수 있다. 고정된 블록이 512 바이트 길이이며, RRCB가 더 길때, RRCB는 일부 헤더 정보를 갖는 제 1형태로 세분화되며, 그리고 제 15 도에 도시된 다수의 제 2형태의 세그먼트로 세분화되는데, 그중 어느 세그먼트로 고정된 블록보다 길지 않다. 제 1형태의 RRCB중 제 1필드는 바이트내 전체 RRCB의 길이다. RRCB 형태 필드는 그것이 제 1형태의 RRCB 세그먼트인 것을 지정한다. 서버 접속 ID는 이 요청에 대한 목표 프로세스의 식별을 지정한다. 요청 우선순위 필드는, 요청 표시를 서버 프로세스의 입력 큐에 삽입할때, 서버 프로세서에 의해 사용되는 우선순위를 지정한다. FLAG 필드는 한정된 응답이 서버 또는 예외 응답에 의해 요구되는지를 규정한다. 요청기 RID 필드는 요청의 식별을 지정한다. 그것은 요청기에서만 알려진다.
확장 상태/포인터는 확장 상태(상태에 대해 허용된 설계 규격을 초과하는 상태 데이타)가 배치되는 영역의 어드레스를 지정한다. 이 영역은 양호하게 사용가능하며 사용전에 요청기 관리기에 의해 제로로 설정되어야 한다. 상기 어드레스는 요청기 관리 기억부내 RRCB와 같은 기억부에 사용된다.
제 1형태의 세그먼트의 나머지는, 두 형태의 세그먼트와 동일하다. 그것은 데이타 플래그 필드내 스크립터 요소에 의해 설명되는 데이타 형태를 지정하는 다수의 스크립터 요소로 구성된다. 데이타 플래그 필드내 스크립터 형태는, 요청과 같은 스크립터 형태 서버 기억부에서 요청기 기억부로 데이타인, 요청기 기억부로부터 서버 기억부로 데이타 아웃, 또는, 또다른 세그먼트가 요청될때 다음 RRCB 세그먼트 링크와 같은 디스크립터 형태를 식별한다. RRCB 세그먼트 링크 스크립터 요소는 또다른 RRCB 세그먼트가 있으면 RRCB 세그먼트의 단부에서 나타나야 한다. 데이타 플래그내 디스크립터 포맷 필드는, 데이타 워드내에서 출발하며 최대 44 바이트로 계속되는 것을 지정하기 위해 사용된다. 요청 또는 데이타 아웃 스크립터는 DMA 데이타가 어디로 와서 어디로 가는가를 식별하기 위해 버스 유니트 수 및 데이타 어드레스를 포함하는 즉치 데이타(immediate data) 도는 레퍼런스일 수도 있다. 버스 유니트 수는 레퍼런스 스크립터 포맷이 지정될때 항상 나타나야 한다. 데이타 플래그 필드는 버스 유니트 수에 의해 버스 유니트를 식별하며,다음 필드내 어드레스를 언급한다.
데이타 길이 필드는, 다음 어드레스 필드에 의해 지정된 필드의 데이타 길이를, 바이트로 지정한다. 그것은 연속 실제의 기억장치를 지정하는 무부호 정수 값이다. 데이타는 8 바이트의 배수로 될때까지 제로를 계속 입력한다.
데이타 어드레스/데이타 필드는, 어드레스 또는 측치 데이타로서 사용된다. 이 필드는 즉치 데이타가 RRCB 세그먼트의 이전워드의 데이타 플래그 디스크립터 포맷내에서 지정된다면 즉치 데이타이며, 그렇지 않으면 그것은 어드레스이다. 상기 어드레스는 서버 기억장치, 요청기의 기억장치 또는 도시되지 않은 제 3 버스 유니트의 기억장치에 있을 수 있다. 상기 어드레스는, 다른 어드레스의 기억장치, 또는 서버 기억장치의 요청기 제어 버퍼에서 DMA 동작을 위해 서버 버스 관리기에 의해 사용된다.
[버퍼 관리 메세지]
버퍼 매니지먼트는 두개의 버스 관리기 사이로 통과한다. 하나의 버스 유니트는 주 기억부가 다른 버스 유니트에 의해 사용 및 관리되는 원격 기억부를 제공한다. 이 실시예에서, 버스 유니트(52)는 주 프로세서(56)에 단단히 결합되는 주 기억부(58)내 버퍼 관리를 갖는다. 버스 유니트(52)원격 프로세서(66)는 그 요구조건을 충족시키기 위해 임의의 목적으로 주 기억부(58)내 원격 기억부를 사용할 수 있다. 이 원격 기억부는 그 자체의 기억부에 대한 논리 확장으로 원격 프로세서에 의해 검사될 수 있다.
버스 유니트(52)는 버스 관리기(88)로 부터 전송된 기억부 요청버스 유니트 메시지에 의해 원격 기억부에 대한 요청을 행한다. 기억부 요청 메세지의 포맷은 제 17 도에 표시된다. 통상의 시스템이 설치된 직후 이 메세지는 버스 유니트에 의해 호스트내 원격 기억부를 얻기 위해 사용된다.
기억부 요청 버스 유니트 메세지는, 원격 프로세서가 또다른 사용가능 버퍼를 갖지 않을때, 전송될 수 있다. 요청된 버퍼의 길이는 버퍼 필드의 길이에서 지정할 수 있다. 로컬 프로세서는 버퍼 규격을 요청하지 않지만, 더 큰 규격의 버퍼가 제공되면 요청을 만족시킨다. 더 작은 규격의 버퍼는 제공되지 않는다. 다수의 예약 필드가 표시되며, 제로로 지정된다. 메세지 ID(06) 필드는, 기억부 요청버스 유니트 메세지로서 지정한다. 기억부 규격 필드는 요청된 기억부의 바이트 길이이다. 양호한 실시예에서, 단일 메세지내에서 요청될 수 있는 최대 기억부는 65535 바이트이다. 버퍼 필드의 길이는 요청되는 버퍼의 최소 길이를 지정한다. 따라서, 요청된 전체 기억부 규격이 만족되지 않으면, 하나의 버퍼가 제공된다 할지라도, 적어도 버퍼필드 길이의 간과 동일한 길이가 제공된다.
기억부 리스트 사용가능 버스 유니트 메세지 및 기억부 리스트 제어 블럭(SLCB)는, 기억부 요청 버스 유니트 메세지에 응답하여, 로컬 버스 유니트내 버스 관리기에 의해 전송된다. 상기 SLCB는, 원격 버스 유니트에 의해 사용될 수 있는 로컬 버스 유니트의 기억부내 버퍼 리스트를 제공한다. 단 하나의 기억부 리스트 사용가능/SLCB이 기억부 요청에 웅답하며, 단지 기억부 요청에 대해서만 전송된다.
기억부 리스트 사용가능 버스 유니트 메세지의 포맷은 제 18 도에 도시된다. 플래스 필드는, 기억부가 사용 가능하며 자원이 사용가능하지 않으며, 기억부가 제공되지 않거나 또는 버퍼가 요청된 만큼 사용가능치 않으며 요청에 응답하여 아무것도 제공되지 않은 응답형태를 표시한다. 메세지 ID(07) 필드는 이것이 기억부 리스트 사용가능 버스 유니트 메세지임을 식별한다. 기억부 리스트 제어블럭 필드의 어드레스는, 원격 기억부를 포함하는 버스 유니트 기억부내 SLCB의 실제 어드레스를 지정한다. 이 필드는 플래그 필드값이 기억부가 사용가능함을 나타냈을 때만 유효하다. 길이 필드는 로컬 버스 유니트 기억부내 SLCB의 길이를 나타낸다.
SLCB 포맷은 제 19 도에 나타난다. 버스수 필드는 이 버스 유니트가 로컬 버스 유니트내에서 나타나는 버스수를 지정한다. 양호한 실시예에서는 8까지의 다른 버스가 있다. 버스 유니트 필드는 SLCB가 향하는 원격 버스 유니트의 버스 유니트 수를 지정한다. 버퍼의 수 및 그 길이는 다음 두 필드내에서 지정된다. 이 필드가 기억부 리스트 사용가능 메세지내 길이 필드와 부합되게 하는 것은 국부 버스 유니트내 전송기의 책임이다.
원격 기억부를 포함하는 버스 유니트내 버스 관리기는, 동일 버스 유니트의 주 기억부의 일부를 관리한다. 그것은 주 기억부내 버퍼 트랙을 유지하며, 주 기억부를 요청하는 다른 버스 유니트를 제어하도록 한다. 제공한다. 따라서, 접속 및 다른 버스 유니트는 버스 관리기를 통한 주 기억부내의 버퍼를 쟁취한다.
버퍼 어드레스 필드는 버퍼의 로컬 버스 유니트내 설제 기억부 어드레스를 지정하기 위해 사용된다. 이것은 버퍼 필드의 수에서 지정된 버퍼의 수를 만족시키기 위해서 요구되는 만큼 여러회 반복된다.
기억부 리스트 완료 버스 유니트 메세지는, 원격 버스 유너트가 SLCB에 의해 지정된 원격 기억부에 억세스를 더 이상 요구하지 않음을 나타내기 위해 원격 버스 유니트의 버스 관리기에 의해 전송된다. 원격 기억부의 복귀는, 마스터 DMA를 갖는 다른 버스 유니트에 대하여 기억부를 사용가능하도록 하는 종속DMA 기능을 갖은 버스 유니트에 의해 개시될 수 있으며, 이러한 경우, 복귀 기억부 리스트 버스 유니트 메시지가 미사용된 버퍼로 복귀된다. 기억부 리스트 완료 메세지는, 복귀 기억부 리스트내에서 지정된 요청이 만족될 수 없음을 나타내기 위해 사용된다.
기억부 리스트 완료 메세지의 포맷은 제 20 도에서 표시된다. 플래그 필드는 기억부 리스트의 통상의 복귀 또는 복귀 요청의 거절을 지정된다. 그것은 통상의 복귀가 전체 리스트로 되거나, 복귀가 기억부 리스트 메세지에 응답하여 되거나, 복귀 기억부 리스트 메세지내에서 표시된 지정 규격의 버퍼 복귀가 되거나, 요청된 기억부가 발견되지만 사용에만 요구되며 복귀되지 않음을 나타낸다.
기억부 리스트 제어 블럭 필드의 어드레스는, 로컬 프로세서내 SLCB의 실제 어드레스이다. 복귀 기억부 리스트가 버퍼의 길이를 포함하고, 그리고 버퍼가 기억부 리스트 완료 메세지에서 복귀되지 않을 때, 버퍼 필드의 길이는 복귀 기억부 리스트내에서 지정된 바와 같이 버퍼의 길이를 포함한다.
복귀 기억부 리스트 메세지 포맷은 제 21 도에 도시된다. 요청기는 요청된 버퍼 규격을 갖는 임의의 기억부 리스트가 복귀되는 것을 지정하거나 또는 복귀되는 지정 기억부 리스트를 식별할 수 있다.이 버스 유니트 메세지의 플래그 필드는, 특정 규격의 버퍼 또는 특정 기억부 리스트를 갖는 임의의 기억부 리스트가 복귀되지는 어떤지를 나타낸다. 원격 버스 유니트 제어로 부터 로컴 버스 유니트 제어로 통과되는 기억부 리스트의 제어 표시는, 상술된 바와 같이 기억부 리스트 완료 버스 유니트 메세지에 의해 존해한다. 메세지 ID(09) 필드는, 복귀 기억부 리스트 메세지로서 메세지를 식별한다. 요청된 기억부 리스트 필드의 어드레스, 플래그 필드가 특정 리스트가 요청됨을 나타내면 복귀되는 기억부 리스트의 어드레스를 지정한다. 버퍼 길이는, 특정 기억부 리스트가 요청되면 이 요청으로 복귀되는 버퍼의 길이를 지정한다.
제 22 도에서는, 기억부 리스트와 연결하는 흐름을 간락하게 도시한다. 마스터 DMA를 갖는 요청기 버스 유니트는, 도면의 우측에 도시하고 메세지 리스트는 그 아래로 도시한다. 종속 DMA를 갖는 서버 버스 유니트는 주면의 좌측에서 표시된다. 그 동작은 다음과 같이 단계 1 내지 6과 같이 설명된다.
1. 마스터 DMA 기능을 갖는 요청기 처리기내 버스 관리기는 요청 기억부 리스트 메세지를 전송함으로써 버퍼를 요구하는 서버 프로세서에 신호를 전달한다.
2. 서버 프로세서내 버스 관리기, 기억부 리스트 제어블록 SLCB가 요청기 프로세서에 사용가능함을 나타내는 메세지를 전송한다.
3. 원격 버스 관리기는 SLCB의 전부가 또는 일부를 상기 기억부에 DMA 전송한다.
4. 요청기 프로세서내 버스 관리기가 요구된 바와 같이 버퍼를 사용한다.
5. 서버 프로세서내 버스 관리기는 1일의 종료등과 같은 셧다운 형태를 실행하기를 원하며 버스 유니트가 피크부하를 통과시키거나 기억부는 복귀되지 않는다. 그것은 복귀 기억부 리스트 메세지를 요청기 프로세서로 전송한다.
6. 요청기 프로세서내 버스 관리기는, 더 이상 요청되지 않는 SLCB를 나타내는 기억부 리스트 완료 메시지를 전송한다.
제 23 도에서, 종속 DMA 기능만을 갖는 버스 유니트의 버스 관리기가 버스를 거쳐 통신을 수신할때 그것은 통신이 기억부 요청인지를 판단하기 위해(300)에서 체크된다. 기억부 요청이면, 블럭(302), (304),(306)에 나타난 바와 같이, 버스 관리기는 잘 공지된 기억부 관리 기술을 사용하는 요청을 만족시키기 위해, 시스템 기억부 관리기로 부터 주 기억부를 요청한다. 버스 관리기는 기억부에 대한 관리책임을 갖는지를 확인하기 위해서 기억부를 갖은다. 관리 책임은, 또다른 버스 유니트가 독립적으로 기억부를 사용하지 않도륵 하는 임의의 레밸로 기억부를 판독 및 기록하는 기능을 갖는다. 버스 관리기는 기억부를 요청된 블럭수로 블럭화하며, 기억부를 요청하는 버스 유니트를 허가된 블럭의 기억부 어드레스로 접속시키는 포인터를 유지한다. 상기 버스 관리기는 기억부 리스트 사용가능 메세지를 요청 버스 유니트에 전송하며. (308)에서 처리를 계속한다.
블럭 (300)으로 돌아가서, 버스통신이 기억부 요구가 없는 경우, 통신은 이(300)에서 기억부 리스트 완료 메시지인지를 판단하기 위해 체크된다. 판단이 옳으면, 식별된 기억부는 (312)에서 시스템 기억부 관리기로 복귀되며, 기억부 관리를 복귀하는 버스 유니트에 대한 포인터는 삭제된다. 처리는 (314)로 계속된다. 블럭(310)에서, 기억부 리스트 완료 메세지가 검출되지 않으면, 처리는 (316)로 계속된다.
호스트가 기억부를 복귀를 타나내는 종속 DMA만을 갖은 버스 유니트의 버스 관리기에 의해 요청이 수신되면, 제 24 도에 표시된 흐름은 블럭(330)로 입력된다. 그러한 요청은 셧다운시키지 위해 작동기 명령의 결과로서 발생되거나, 날짜 인터럽트의 시간유형에 의해서 발생된다. 아무튼, 복귀 기억부 요청을 수신할때, 버스 관리기는 또다른 버스 관리기에 의해 관리되는 것으로 인해 핀(pin)되는 기억부를 검사하며, 복귀되는 기억부를 선택한다. 버스 관리기가 사용량에 관하여 임의의 종류의 통계를 유지하는 것도 가능하며, 또는 요청으로 차단하여야만 하는 장치이 종류를 지정하는 것도 가능하다. 이러한 방식으로, 버스 유니트는 복귀되도록 요청하는 기억부내에 관하여 선택적으로 있다. (332)에서, 버스 메세지는 기억부를 복귀하기 위해 요구된 버스 유니트애 전송된다. 버스 유니트는, 제 23 도의 흐름에 도시된 바와 같이 하도록 기억부 리스트 완료 메시지를 복귀시킨다. 처리는 (334)에서 계속된다.
원격 기억부 관리 장치는 시스템 수행에 평형을 유지하기 위해 사용될 수 있다. 버스 유니트가 적당한 주기억부를 갖지 않으면, 호스트 주 기억부가 사용되는 버퍼를 요청할 수 있다. 적당한 버스 수행이 주어지면, 버스 유니트의 수행이 향상될 수 있다. 시스템은 다른 버스 유니트의 수행을 더 쉽게 트랙할 수 있으며 작업요청에 응답하도록 지연되는 그 버스 유니트에 원격 기억부를 더 할당할 수 있다. 할당된 량은, 상기 주 기억부가 너무 많이 원격으로 관리되면 호스트 수행의 잠재 드룹에 의해 상쇄되어야 한다.
[역 흐름]
상술된 바와 같이, 작업요청의 보통 흐름은 호스트 프로세서(56)에서 I/O 프로세서(66)로 흐른다. 그것은 I/O 프로세서(66)에 결합된 2차 기억장치에 데이타를 판독 및 기록하고 I/O 프로세서(66)를 통한 통신을 개시하는 것과 같은 작업을 포함한다. 마스터 DMA 기능을 갖는 I/O 프로세서(66)와 종속 DMA 기능을 갖는 호스트 프로세서(56)를 갖는 것은 이러한 관계에 이상적으로 적합하다. I/O 프로세서인 서버는 호스트를 인터럽트하지 않고도 데이타 전달을 구동한다.
작업요청을 호스트에 전송하는 프로세스를 I/O 프로세서(66)가 갖는 것이 일반적인 사항이다. 이것은 작업과 결합된 데이타의 역 흐름을 가져온다. 호스트가 I/O 프로세서로 부터의 데이타를 DMA할 수 없으므로, I/O 프로세서는 이미 상술된 메세지 사용에 의해 주 기억부내에서 얻어진 원격 버퍼를 사용한다.
역 흐름의 예는 제 25 도를 참조하여 설명된다. 마스터 DMA 기능을 갖는 요청기 버스 유니트, 즉, I/O프로세서(66)는 도면의 우측에 표신된 단계를 수행하며, 종속 DMA 기능을 갖은 서버 버스 유니트, 즉, 주 프로세서(56)는 도면의 좌측에 표시된 단계를 수행한다. 단계 1 내지 10은 다음과 같이 설명된다.
1. 요청기 프로세스는 프로세스 사이의 동사 인터페이스에 있어서 요구하는 프로세스 기구, 즉 제 2 도의 IPCF에 출력한다.
2. 버스 관리기(88)는 이미 하나를 갖지 않으면 호스트 프로세서 주 기억부(58)내 적당한 규격의 버퍼를 획득하며, 요청을 서버 기억부 버스 유니트(50)내 원격 기억부내로 이동시키기 위해 버스 하드웨어(92)를 통해 마스터 DMA 작동을 개시한다.
3. 요청 버스 관리기(88)는 데이타를 버퍼내로 DMA 한다.
4. 버스 관리기(18)는 RRCB를 서버 기억부내 버퍼로 DMA 한다. 이 점에서 RRCB는, 요청의 서버 기억장치내 어드레스를 사용하며 단계 2 및 3에서 서버 버스 유니트에 원격 기억부내로 DMA되는 데이타를 사용한다.
5. 요청기 프로세서(66)내 버스 환리기(88)는, 조작 개시 버스 유니트 메세지를 RRCB 및 데이타가 서버 기억부내에 있음을 나타내는 서버 프로세서로 전송한다. 조작 개시 메세지가 전송될때, 장치의 프로세스에 사용되는 프로세스에 연결된 모든 데이타는 서버의 기억부로 DMA 된다.
6. 상기 요청은 프로세스 대 프로세스 장치(72)에 의해 서버 프로세스내로 통과된다.
7. 서버 프로세스는, 서버의 기억부내에 있는 필요한 데이타를 요청한다. 버스 관리기(88)는 버퍼를 제어하지만 버스 관리기(86)는 조작 개시 메세지를 처리할때 이 버퍼를 억세스한다. 서버 프로세스의 버스 관리기(86)는 서버 프로세서에 억세스되는 주 기억부(58) 영역에 데이타를 전송한다.
8. 서버 프로세스가 요청된 작동을 완료했을때, 프로세스 대 프로세스 장치(72)는 IPCF 동사의 사용에 의해 확인된다.
9. 서버 프로세서(56)내 버스 관리기(86)는, 상태 정보를 갖는 개방 메세지를 출력한다. 이것은 요청기 프로세서(66)내 버스 관리기(85)에게 버스 관리기 (86)에 의한 버퍼내 임의의 응답을 알려준다. 그러한 응답을 받은 후, 버스 관리기(88)는 또다른 사용을 위해 버퍼를 자유롭게 하며, 요청된 작동이 완료되는 요청 프로세스를 가르킨다.
10. 프로세스 대 프로세스 장치(74)은 작동이 완료되는 요구 프로세스를 인지한다.
[신호 메세지에 의한 역 흐름]
신호 버스 유니트 메세지 포맷은 제 26 도에 도시된다. 신호 버스 유니트 메세지는 버스 관리기에 의해 발생되며, 작은 메세지를 다른 프로세서의 프로세스로 전달하기 위해 사용된다. 한번의 사용으로 한번에 4문자까지 데이타를 전달할 수 있다. 신호 버스 메세지의 수신기가 응답을 전송하는 것은 신호 전송 버스 관리기에 의해 요청되지 않는다. 요청기와 서버 프로세스 사이의 더 높은 레벨 프로토콜에 응답이 있을 수 있지만, 양호한 실시예에서는 버스 관리기에 의해 아무것도 요구되지 않는다. 신호의 전송기는 그것이 서버 버스 유니트에 의해 수신됨을 보증할 수 없다. 신호 메세지에는 어떤 흐름제어 장치도 존재하지 않는다. 신호가 실행될 수 없는 전송기를 확인하기 위한 버스 관리기 장치가 존재하지 않는다. 왜냐하면 수신 프로세스 기억부를 획득할 수 없기 때문이다. 이것은 응답이 요구되지 않으면 유연성이 있다. 작업요청에 반대로 신호 메세지를 사용하면 오버헤드가 적어진다. RRCB는 요구되지 않는다.
상기 신호는 양호한 실시예에서 제로인 두개의 예약 영역을 포함한다. 2X 필드 형태는 버스 유니트 메세지의 형태를 정의하기 위해 사용된다. 필드에서의 2는 이것을 신호 버스 유니트 메세지로 정의한다. X는 사용자 데이타 필드의 내용을 지정한다. 다음은 신호 메세지의 형태이다.
20-어텐션(수신측으로 경고)
21-즉치 데이타-1바이트
22-즉치 데이타-2바이트
23-즉치 데이타-3바이트
24-즉칙 데이타-4바이트
25-즉치 에러 데이타
26-즉치 사용자형 1데이타
27-즉치 사용자형 2데이타
28-즉치 사용자형 3데이타
29-즉치 사용자형 4데이타
2A-2F-앞으로의 사용을 위해 예약된 곳
메세지의 사용자 데이타 필드는, 사용자 정의 데이타, 즉, 즉치 데이타를 포함한다. 상기 필드에서의 즉치 데이타는, 좌측으로 정렬되는 것이 바람직하다. 목표 CID 필드는 상기 버스 유니트 메세지에 대한 목표 프로세스를 식별한다.
상기 신호의 변환은 마스터 DMA를 갖는 버스 유니트에 의해 전달하는 대신에 마스터 DMA를 갖는 버스 유니트로 부터 발생되는 관련 데이타 및 작업요청을 전달하기 위한 책임을 반전시키는 장치를 제공하기 위해 사용된다. 원격 기억부에 대한 대안으로서 제 27 도에 도시된 바와 같이 다른 형태의 신호가 사용될 수 있다. 반대 흐름 형태의 실행은 쉽지만 원격 기어부 형태의 반대흐름을 제공하는 동일한 보장을 제공하지 않는다.
I/O 버스 유니트가 주 버스 유니트에 있는 신뢰성/이용성/서비스성(RAS)형 프로세스에 대한 요청을 시작하는 것이 필요할 때, 제 27 도에 표시된 포맷의 신호 메세지를 전달한다. 사용자 데이타는 검색된 기록의 길이를 표시하는 2개 바이트 길이와 2개 바이트 옵셋으로서 정의된다 옵셋 필드는 I/O 버스 유너트에 의해 할당된 인코드된 값이 되며, 3가지 형태의 신호 메세지를 응답하여 발생된 작업요청과 신호 메세지를 연관시키기 위해 트랙킹 장치로서 사용된다. I/O 버스에 대응하는 형태는 다음과 같이 정의된다.
26-형태 1. 요청-에러 데이타
27-형태 2 요청-자원 데이타
28-형태 3 요청-테스트 데이타
다른 형태도 용이하게 식별될 수 있다.
RAS 형태는 I/O 버스 유니트로 부터 형태 요청을 검색하기 위해 처리된다. 상기 요청에서 신호 형태 옵셋 및 길이 필드값으로 복귀시킨다. I/O 버스 유니트는 식별된 형태 요청 명령과 상기 요청에 응답하여 관련된 데이타를 복귀시킨다. 이들 형태 요청 각각의 포맷은 이전의 역 흐름 방법을 이용하여 전송되었을지라도 정상흐름이 될 수 있다.
상기 역 흐름 방법의 한 실시예는 에러 데이타를 검색하는데 있다. 신호를 수신한 주 부분은 명령 바이트와 관련 데이타를 검색하기 위해 작업요청을 전달할 책임이 있다. 다음 작업요청 필드는 주어진 신호 메세지 필드를 포함한다.
목표-신호형태
어드레스-버퍼옵셋
GETMAX-신호길이
I/O 버스 유니트는 형태 1,2 또는 3 요청에 대응하는 프로세스를 위한 요청된 큐중의 하나로 부터 FIFO 순서로 다음에 이용가능한 입력으로 복귀된다.
길이 필드는 I/O 버스 유니트가 복귀시키는 데이타의 길이를 지정한다. 예를들면, 전송된 신호 형태로 복귀될 수 있는 최대길이는, 양호한 실시예에서, 형태 1,2 및 3 요청에 대해 각각 268,272 또는 48이다. 그러나, I/O 버스 유니트에 있는 작업요청의 실제길이는 관련된 데이타를 합한 바이트이며, 더 짧을 수도 있다. I/O 버스 유니트, 작업요청은 관련된 데이타의 실제 길이를 지정한다.
신호 메세지는 시스템 큐잉 제한 또는 에러 조건으로 인해 상실되어 버릴 수도 있기 때문에 메세지를 처리하기 위한 최소한의 시스템 큐 사이즈가 추천되어야 한다. EN에 대한 최소한 17개의 신호가 요청되며, 형태 2 요청에 대해서는 24개 및 형태 3 요청에 대해서는 16개 신호가 신호 메세지의 손실이 없이 가장 최상의 상황을 처리한다. 이들 수는 버스 유니트 자원 지원의 특정 형태에 따라 아주 다르며, 직접 억세스 기억부 제어기 버스 유니트에 대해서는 본원에서 양호한 실시예로 주어져 있다.
주어진 수는 I/O 버스 유니트 작업요청을 포함하는 I/O 내부 버퍼에서의 엔트리 수이다. 만약 엔트리가 호스트 프로세서의 작업요청을 갖은 이들 버퍼로 부터 소거되지 않고, 버퍼가 채워져 있으면, 에러 데이타 형태가 전달될 것이다. 신호 옵셋 값은 신호가 상실되었는가를 결정하기 위한 트랙킹 방법으로 사용된다.기대하지 않은 옵셋 값은 포함하는 호스트 프로세서의 작업요청은 신호 메세지의 손실을 표시한다. 상기 신호 메세지는 I/O 버스에 의해 리세트된다. 호스트 프로세서 요청에 대한 응답은 주 버스 유니트가 상기 요청을 무시하여야 한다는 것을 표시하는 에러 코드를 포함한다. 상기와 같은 트랙킹 방법은 또한 요청된 기록이 이미 전송된 타이밍 조건을 처리하기 위한 상관관계를 제공한다.
주 작업요청은 다음 정보를 포함한다.
바이트 설명
0-1 명령길이
2 명령 선별기
3 명령 코드=X'23'
4 수정기
비트 0-1-억세스 모드='00'
비트 2-7-예약부
어드레스 필드는 지정된 목표로 부터 옵셋된다.
비트 2-7-예약
5-7 예약부
8-15 어드레스: 옵셋-선행 제로를 가하여
우측으로 정렬
16-23 목표
바이트 16 : 신호형태
바이트 17-23 : 예 약
24-27 활성화 ID=버스 유니트 자원 ID
28-31 GETMAX=신호로 부터의 길이
주 요청에 대한 응답이 I/O버스 유니트로부터 돌아갈때 요청과 관련된 데이타를 기술하는 다음 정보를 포함한다.
바이트 설명
0-1 명령길이
2명령 선별기
3명령 코드(신호형태와 관련된)
4 수정기
5-(n-1) 명령 텍스트(n=명령길이)
n-L 데이타(L:설명길이에서의 데이타 길이)
[DMA 요청에 의한 역흐름]
데이타 흐름의 제어를 반대로 하기 위한 또다른 방법은 제 28 도 및 29도에 제공된 버스 유니트 메세지쌍을 사용한다. 버스 유니트 DMA 요청 (제 28 도)는 DMA를 기억부내로 요청하기 위한 요청기에 서버 버스 유니트에 의해 제공된다. 요청기 버스 유니트로부터 버스 유니트 메세지 DMA Comp(제 29 도)는, DMA 작동이 완료된 것을 표시한다. 요청기 버스 유니트와, 마스터 DMA를 가진 버스 유니트는 서버 버스 유니트에 대한 서비스를 수행한다.
요청기 버스 유니트에서의 버스관리기는 어느 CID가 서비스 요청을 야기시켰는지 모른다.
실시예는 서버 버스 유니트에 있는 버스 관리기가 조작 개시 버스 유니트 메세지를 수신했을때이다. 요청기 기억부에 있는 RRCB의 어드레스와 서버 기억부에 기억시킨 위치를 지정하는 DMA 요청 버스 유니트 메세지를 전달한다. 상기 요청기 버스 유니트는 서비스를 실행하고, 작동이 DMA Comp 버스 유니트 메세지에 의해 완료 되었다는 것을 다른 버스 유니트에게 통보한다. DMA 요청을 수신하는 버스 관리기는 실제 요청기의 서비스의 지식이 없이도 요청된 서비스를 수행한다. 다른 버스 전송 장치에 대한 서비스가 진행된다.
DMA 요청은 다음 필드를 갖는다
RSVD는 예약된 것으로 제로가 되어야 한다.
길이는 상기 DMA 요청 동작으로 전달되어야 할 데이타의 길이이다.
DMA ID는 상기 DMA 요청에 대해 사용이 되며, DMA Comp 버스 유니트 메세지로 복귀되어 상기 특정 DMA 요청을 식별한다. 상기 식별은 상기 DMA 요청 및 DMA 완료 버스 유니트 메세지 이외의 다른 의미가 없다.
형태 ID(OX)는 버스 유니트 메세지의 헝태와 DMA의 방향을 정의하는데 사용된다.
DMA 요청은 2개의 가능한 16진 값을 갖는다.
03 :요청기 프로세서로 부터 서버 프로세서까지
04 :서버 프로세서로부터 요청기 프로세서까지
요청기 프로세서 필드에 있는 데이타 어드레스는 데이타 전송기의 요청기 기억부에 들어가는 개시 어드레스이다. 상기 데이타 전송기의 방향은 형태 필드에 의해 지정된다. 이는 조작 개시 버스 유니트 메세지로 부터 얻어진 RRCB의 어드레스 또는 상기 RRCB의 내용으로 부터 얻어진 데이타 필드 어드레스일 수 있다. 서버 프로세서 필드에 있는 데이타 어드레스는 테이타 전송기의 제공기 기억부에 있는 개시 어드레스이다. 데이타 전송 방향은 형태 필드에 의해 지정된다.
요청기가 요청된 DMA 작동을 완료했을때 상기 작동이 완료되었다는 것을 서버에 통보를 한다. 이는 제 29 도에 있는 DMA Comp(DMA 완료)버스 유니트 메세지를 전송하여 이루어진다. 만약 서버 프로세서가 요청된 DMA 작동을 실행할때, 버스에러가 발생하였다면, DMA Comp버스 유니트 메세지보다는 버스 에러 조건 버스 유니트 메세지로 돌아간다. DMA Comp 버스 유니트 메세지의 필드는 다음과 같다.
예약된 필드 버스는 제로여야 한다.
DMA ID는 DMA 요청으로 제공된 ID이며 상기 특정 DMA 요청의 요청기를 식별하기 위해 사용된다.
형태 필드(05)는 버스 유니트 메세지의 형태를 정의하는데 사용된다.
2개의 또다른 예약 필드는 모두 제로가 되어야 한다.
조작 개시 버스 유니트 메세지로 시작되는 순차는 개방 버스 유니트 메세지로 완료될 것이다.
제 30 도는 종속 DMA능력을 갖지않는 버스유니트에서 시작되는 전송요청 작동의 간단한 메세지 흐름 실시 예이다.
1. 주버스 유니트에서의 프로세스 경우, 서버 프로세스는 대기할 필요가 있는 포인트에 도달한다.이것은 IPCI RCV Q를 실행한다(본 실시예는 서버가 RCV Q상에서 작업요청을 요구한 것으로 가정한다). 입력 큐에서 요청표시가 없기 때문에, 목표 프로세스는 대기상태에 들어간다.
2. IOP에서 프로세스인 본 실시예에서, 요청기는 PU에 있는 서보 프로세스에 데이타 전송을 의미한다. 상기 요청기 프로세스는 IPCI에서 IDCI 전송요청을 실행한다. IPCF버스 관리기 맵 정보는 RRCB내로 맵된다.
3. IOP에서의 버스전송 장치는 요청기에 의해 발생된 전송요청의 결과로 버스상에서의 동작을 개시한다. IOP버스 관리기는 버스 유니트 메세지를 호스트에 전송한다.
4. 호스트에 있는 버스 관리기는, IOP에 있는 버스 관리기가 버스 유니트 메세지에 의해 지정된 위치에 DMA를 실행하는 것으로 이루어진 DMA 요청 버스 유니트 메세지를 전송한다.
5. IOP버스 관리기는 IOP기억부로 부터 주 기억탁에 RRCB를 이동시키는 요청된 DMA작동을 실행한다.
6. IOP에 있는 버스 관리기는, 요청된 DMA 작동이 완료되었다는 것을 표시하는 DMA Comp버스 유니트 메세지를 호스트에 전송한다.
7. 호스트에 있는 버스관리기는 IOP에 있는 버스 관리기가 버스 유니트 메세지에 의해 지정된 위치에서 시작하여 DMA 작동을 실행하는 것을 표시하는 DMA 요청 버스 유니트 메세지를 전송한다. 이것은 호스트 버스 관리기에 의해 소유된 기억부에서 이루어진다.
8. IOP버스 관리기는 IOP기억부로 부터 주 기억부로 이동하는 요청된 DMA 작동을 실행한다.
9. IOP에 있는 버스 관리기는 요청된 DMA 작동이 완료되었다는 표시인 DMA Comp 버스 유니트 메세지를 전송한다. 상기 3가지 단계는 만약 요청이 RRCB에 있는 즉시 데이타인 4바이트보다 적은 경우 요청될 수 없다.
10, NOTE가 IPCF를 통해 적당한 서버 프로세스에 전송된다. 이것은 미처리 RCVQ를 만족시킨다.
11. 서버 프로세스는 주 기억부에 있는 데이타를 어디에 둘것인가를 구분하는 IPCI RCV DTA를 발생하여야 한다.
12. 호스트에 있는 버스 관리기는 IOP에 있는 버스관리기가 버스 유니트 메세지에 의해 구분된 위칙에서 DMA 작동을 실행할 것을 요청하는 DMA 요청 버스 유니트 메세지를 전송한다. 상기 어드레스는 IPCI에서 발생된 RCV DTA에 의해 지정된다.
13. IOP에 있는 버스관리기는 IOP기억부로 부터 호스트 기억부로 이동하는 요청된 DMA 작동을 실행한다.
14. IOP에 있는 버스 관리기는 요청된 DMA 작동이 완료되었다는 것을 표시하는 DMA 완료 버스 유니트 메세지를 전송한다.
15. 서버의 RCV DTA는 상기 작동을 만족시킨다. 단계 12 내지 15는 모든 요청된 데이타를 전송하는데 필요한 만큼 많은 횟수로 반복된다.
16. lOP에 있는 프로세스의 경우, 요청기 프로세스는 대기를 희망하는 프로세스에 도달하게 한다. 상기 프로세스는 RCV Q를 발생한다. 입력 큐상에는 요청이 없기 때문에 요청기 프로세스는 대기상태에 들어가게 된다.
17. 서버 프로세스는 상태정보를 갖은 전송 RSP를 발생하여야 한다.
18. 호스트의 버스 관리기는 요청된 작동이 완료되었다는 것을 표시하는 개방 버스 유니트 메세지를 전송한다.
19. NOTE는 요청기의 Q로 전송된다. 이는 요청기의 RCV Q를 만족시킨다.
역흐름의 방법의 이용을 통해, 프로세스의 독립성 및 프로세스의 투명사이의 통신관계를 유지하는 목적이 유지되었다. 실제로 버스 관리기는 IPCF를 통신 세부사항과 차단시키는데 사용된다. 접속 그룹의 사용은 자원이 보장된 최소레벨의 서비스를 제공하도록 할당된 것을 분명히 하기 위해, 흐름제어의 보강된 레벨을 허용한다. 다른 양호한 실시예를 참고로 하여 기술하였지만 본 분야의 기술에 숙련된 사람은 다음 청구범위의 범위내에서 여러가지 변형이 가능하다는 것을 잘 알 수 있을 것이다.

Claims (5)

  1. 각 그룹이 느슨하게 결합되어 분산된 프로세서 회로망에서의 프로세서상에 존재하며, 각 그룹내의 프로세스들은 프로세서 자원들을 공유하며, 프로세서 그룹들 사이에서 작업 관련 메세지 흐름을 제어하는 방법에 있어서, 서버 프로세스를 포함하는 서버 프로세서에서 작업을 개시하기 위해 한 그룹에서의 요청기 프로세스를 포함하는 요청기 프로세서로부터 다른 그룹에서의 서버 프로세스를 포함하는 서버 프로세서로 작업 요청 메세지를 전송하는 단계(sending a work request message)와, 서버 프로세서에서 작업을 개시하기 위해 작업 요청 메세지를 수신하는 단계와, 서버 프로세서가 요청기 프로세스로부터의 작업 개시를 허용하기 위해 서버 프로세서내에서 사용가능한 자원이 불충분한 경우 서버 프로세서에서 상태를 인지하는 단계(receqnizing a condition)와, 서버 프로세서로부터 서버 프로세서에서의 자원이 불충분한 상태를 표시하는 요청기 프로세서로 불충한 자원 메세지를 전송하는 단계(sending an insufficient resources message)와, 서버 프로세서가 불충분한 자원 메세지를 전송한 후 서버 프로세서에 의해 수신된 작업 요청 메세지를 큐에 위치시키는 단계(placing work request messages)와, 자원이 서버 프로세서에서 사용가능할때 서버 프로세서로부터 요청기 프로세서로 자원 사용가능 메세지를 전송하는 단계(sending a resource available message)와, 자원 사용가능 메세지에 응답하여 요청기 프로세서로부터 서버 프로세서로 재개시 메세지를 전송하는 단계(sending a restart message)와, 요청기 프로세서로부터 재개시 메세지를 수신하는 서버 프로세서에 응답하여 큐에서의 작업 요청 메세지를 서버 프로세서에 전송하는 단계(sending a work requestmessages in the queue to the server processor)를 구비하는 것을 특징으로 하는 작업 관련 메세지 흐름제어 방법.
  2. 버스 유니트는 버스에 의해 서로 접속되고, 통신 관리 장치는 목표상에 있는 프로세스와 버스 유니트에서 발생하는 프로세스들 사이에서 프로세스-대-프로세스 통신을 용이하게 하며, 다수의 버스 유니트들로 구성된 느슨하게 결합되어 분산된 프로세서 회로망에서 버스 유니트에 대한 통신 관리 장치에 있어서, 상기 다수의 버스 유니트들중 하나에서의 장치는 작업 개시를 위해 발생 버스 유니트(originating bus unit)로 부터의 메세지를 수신하는 수신 수단(receiving means for receiving messages)과, 상기 수신 수단에 결합된 자원 관리기를 구비하며, 상기 자원 관리기는 ; 버스 유니트상에서 프로세스의 소정의 선택된 그룹에 대해 버스 유니트 자원을 관리하는 관리 수단(management means for managing bus unit resources)과, 선택된 그룹들중 하나에서 작업을 개시하는 메세지에 응답하여, 발생 버스 유니트로 큐 풀 메세지-상기 메세지는 작업을 실행하기 위해 선택된 그룹에서 사용가능한 적절한 자원이 없는 것을 표시-를 복귀시키는 풀 수단(full means for returning a queue full message)과, 자원이 선택된 그룹에서 사용가능할때 발생 버스 유니트로 자원 사용가능 메세지를 전송하는 자원 사용가능수단(resource available means)과, 발생 버스 유니트가 맨처음 재개시 메세지를 가지고, 그룹이 사용가능한 적절한 자원을 가진다면 발생 버스 유니트로 부터 작업을 개시하기 위해 메세지를 수용하는 작업 수용수단(work accepting means for accepting a message)을 구비하는 것을 특징으로 하는 통신 관리 장치.
  3. 제 2 항에 있어서. 상기 자원 관리기는 작업 요청을 시작하는 목표 버스 유니트내의 프로세스에 응답하여, 제 2버스 유니트-상기 유니트는 제 2버스 유니트상에서 프로세스의 선택된 그룹에 대해 제 2버스 유니트 자원을 관리하는 관리 수단을 더 구비하는 자원 관리기를 포함-로 작업 개시 메세지를 전송하는 수단(means for sending a message to initiate work)과, 부적절한 자원이 제 2버스상의 선택된 그룹에서 사용할때 풀 메세지를 복귀시키는 풀 수단과, 자원 사용가능 메세지를 전송하는 자원 사용가능수단과, 버스 유니트로부터 작업 개시 메세지를 수용하는 작업 수용 수단을 더 구비하는 것을 특징으로 하는 통신 관리 장치.
  4. 제 3 항에 있어서, 상기 자원 관리기는 기억된 메세지는 제 2버스 유니트에서 작업 개시를 위해 이전에 전송된 메세지가 전송되는 선택된 그룹과 제 2버스 유니트를 표시하며, 제 2버스 유니트에서 작업 개시를 위해 이미 전송된 메세지를 기억하기 위한 유지 수단(holding means for storing previously sentmessage)과, 목표 버스 유니트로부터 개시 작업 메세지로 큐 풀 메세지에 응답하여, 제 2버스 유니트로 재개시 메세지-상기 메세지는 제 2버스 유니트로부터 큐 공간 사용가능 메세지의 수신 다음 전송되며-를 전송하는 재개시 수단(restart means for sending restart message)과, 상기 재개시 수단 및 유지 수단에 접속되며, 제 2버스 유니트에 의해 전송될 큐 풀 메세지를 이미 발생한 제 2버스 유니트에서 작업 개시를 위해 메세지를 재전송하는 재전송수단(resending means for resending messages)를 구비하는 것을 특징으로 하는 통신 관리 장치.
  5. 제 2 항에 있어서, 상기 풀 수단은 각각 선택된 그룹에 대해 사용가능한 자원을 모니터하는 수단(means for monitoring a resources)을 더 구비하는 것을 특징으로 하는 통신 관리 장치.
KR1019880014991A 1987-11-18 1988-11-15 작업 관련 메세지 흐름 제어방법 및 통신 관리 장치 KR920004771B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12229287A 1987-11-18 1987-11-18
US122292 1987-11-18
US122,292 1987-11-18

Publications (2)

Publication Number Publication Date
KR890008703A KR890008703A (ko) 1989-07-12
KR920004771B1 true KR920004771B1 (ko) 1992-06-15

Family

ID=22401836

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019880014991A KR920004771B1 (ko) 1987-11-18 1988-11-15 작업 관련 메세지 흐름 제어방법 및 통신 관리 장치

Country Status (9)

Country Link
EP (1) EP0317468B1 (ko)
JP (1) JPH0786867B2 (ko)
KR (1) KR920004771B1 (ko)
CN (1) CN1014189B (ko)
DE (1) DE3851507T2 (ko)
ES (1) ES2059555T3 (ko)
GB (1) GB8814633D0 (ko)
HK (1) HK15195A (ko)
SG (1) SG9495G (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140077679A (ko) * 2012-12-14 2014-06-24 한국전자통신연구원 클러스터 기반의 적응적인 결합 전송 방법

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2272312A (en) * 1992-11-10 1994-05-11 Ibm Collaborative working in a network.
US6182176B1 (en) * 1994-02-24 2001-01-30 Hewlett-Packard Company Queue-based predictive flow control mechanism
US5594651A (en) 1995-02-14 1997-01-14 St. Ville; James A. Method and apparatus for manufacturing objects having optimized response characteristics
US7111125B2 (en) * 2002-04-02 2006-09-19 Ip-First, Llc Apparatus and method for renaming a data block within a cache
US7690003B2 (en) * 2003-08-29 2010-03-30 Fuller Jeffrey C System and method for increasing data throughput using thread scheduling
US8156472B2 (en) * 2004-02-12 2012-04-10 Microsoft Corporation Process language for microprocessors with finite resources
US8868891B2 (en) 2004-03-18 2014-10-21 Intel Corporation Method and apparatus to support booting despite deficient resources
CN1926521B (zh) * 2004-03-18 2010-10-06 英特尔公司 尽管资源不足仍支持引导的方法和装置
DE102012219180A1 (de) * 2012-10-22 2014-05-08 Robert Bosch Gmbh Recheneinheit für ein Steuergerät und Betriebsverfahren hierfür
US9323543B2 (en) * 2013-01-04 2016-04-26 Microsoft Technology Licensing, Llc Capability based device driver framework
CN111275952B (zh) * 2019-02-01 2021-05-18 奥克斯空调股份有限公司 一种无线通信系统及使用该系统的空调直流电机供电系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4601586A (en) * 1984-02-10 1986-07-22 Prime Computer, Inc. Solicited message packet transfer system
US4649473A (en) * 1985-06-17 1987-03-10 International Business Machines Corporation Flexible data transmission for message based protocols

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140077679A (ko) * 2012-12-14 2014-06-24 한국전자통신연구원 클러스터 기반의 적응적인 결합 전송 방법

Also Published As

Publication number Publication date
EP0317468A3 (en) 1991-01-30
JPH0786867B2 (ja) 1995-09-20
JPH01137356A (ja) 1989-05-30
EP0317468B1 (en) 1994-09-14
GB8814633D0 (en) 1988-07-27
ES2059555T3 (es) 1994-11-16
CN1014189B (zh) 1991-10-02
HK15195A (en) 1995-02-10
DE3851507D1 (de) 1994-10-20
SG9495G (en) 1995-06-16
DE3851507T2 (de) 1995-03-30
CN1035373A (zh) 1989-09-06
EP0317468A2 (en) 1989-05-24
KR890008703A (ko) 1989-07-12

Similar Documents

Publication Publication Date Title
US5257374A (en) Bus flow control mechanism
EP0317466B1 (en) Reverse flow control mechanism and method
JP3606541B2 (ja) 複数ノードの非同期データ通信システム内で早期到達メッセージを処理する方法
EP0362105B1 (en) Method for processing program threads of a distributed application program by a host computer and an intelligent work station in an SNA LU 6.2 network environment
US4604500A (en) Multiprocessing interrupt arrangement
US5315708A (en) Method and apparatus for transferring data through a staging memory
US5448698A (en) Inter-processor communication system in which messages are stored at locations specified by the sender
CA2103895C (en) Method and apparatus for controlling data communication operations within stations of a local area network
JP2561759B2 (ja) マルチプロセッサシステムおよびそのメッセージ送受信制御装置
US5781741A (en) Message communications system in a parallel computer
JPS61289458A (ja) プロセス間通信装置
EP0317481B1 (en) Remote storage management mechanism and method
KR920004771B1 (ko) 작업 관련 메세지 흐름 제어방법 및 통신 관리 장치
JPH03130863A (ja) 制御要素転送システム
US7640549B2 (en) System and method for efficiently exchanging data among processes
US5204954A (en) Remote storage management mechanism and method
JP2002041449A (ja) バスシステム及びその実行順序の調整方法
US5613141A (en) Data storage subsystem having dedicated links connecting a host adapter, controller and direct access storage devices
EP0119973B1 (en) Apparatus for load regulation in computer systems
US5970253A (en) Priority logic for selecting and stacking data
EP0321544A1 (en) METHOD AND APPARATUS FOR CONTROLLING COMMUNICATIONS BETWEEN COMPUTERS.
JPS61195439A (ja) リモ−トフアイルアクセス方式
JP2000244585A (ja) バスインタフェース回路
EP0517808A1 (en) A method and apparatus for transferring data through a staging memory
JP3023339B2 (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: 20070528

Year of fee payment: 16

LAPS Lapse due to unpaid annual fee