KR930010915B1 - 다중 중앙 처리 유니트 인터록크 시스템 - Google Patents

다중 중앙 처리 유니트 인터록크 시스템 Download PDF

Info

Publication number
KR930010915B1
KR930010915B1 KR1019870008215A KR870008215A KR930010915B1 KR 930010915 B1 KR930010915 B1 KR 930010915B1 KR 1019870008215 A KR1019870008215 A KR 1019870008215A KR 870008215 A KR870008215 A KR 870008215A KR 930010915 B1 KR930010915 B1 KR 930010915B1
Authority
KR
South Korea
Prior art keywords
lac
data
bus
adapter
dma
Prior art date
Application number
KR1019870008215A
Other languages
English (en)
Other versions
KR890003159A (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 KR890003159A publication Critical patent/KR890003159A/ko
Application granted granted Critical
Publication of KR930010915B1 publication Critical patent/KR930010915B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass

Abstract

내용 없음.

Description

다중 중앙 처리 유니트 인터록크 시스템
제1도는 본 발명을 활용하는 LAN 시스템의 개략도.
제2도는 본 발명의 블럭도.
제3도는 본 발명의 동작 구성 블럭도.
제4도는 본 발명의 버스 분할 특징을 나타내는 로직 블럭도.
제5도는 본 발명의 LAN 콘트롤러 독점 버스의 로직 블럭도.
제6도는 LAC와 그에 부착된 어댑터들 사이에 사용되는 물리적 인터페이스의 개략도.
제7도는 본 발명의 멀티 CPU 인터록크 특징을 나타내는 로직 블럭도.
제8도는 주 메모리로부터의 LAC 소프트웨어 로딩/덤핑을 위한 LAC 제어 블럭의 개략도.
제9도는 I/O 오더 개시를 위한 LAN 제어 블럭의 개략도.
제10도는 데이타의 블럭을 이동시키기 위한 DMA 동작을 요구하는 데 활용되는 전형적인 메일박스의 개략도.
제11도는 메세지 전달을 위한 하드웨어 포맷의 개략도.
제12도 및 제13도는 RAM 내의 일시 대기 행렬을 나타낸 도면.
제14도는 LAC 콘트롤러내의 I/O 디스 패치처리 플로우 차트.
제15도 및 제16도는 LAC 콘트롤러상의 DMA 처리 플로우 차트.
제17도는 LAC 콘트롤러를 인터럽트시키기 위한 어댑터 인터럽트 루우틴의 플로우 챠트.
제18도는 어댑터의 3가지 MAC 처리를 위한 플로우 챠트.
제19도는 LAN 제어 블럭의 LAC 송신 플로우의 개략도.
제20도는 LAN 제어 블럭의 LAC 수신 플로우의 개략도.
* 도면의 주요부분에 대한 부호의 설명
100, 14, 105 : 저역 통신망(LAN) 101 : 지역 콘트롤러 서브시스템(LACS)
102 : 레벨 6(L6)시스템 103 : 메가버스
200 : 마이크로프로세서 버스 201, 301 : 마이크로프로세서
203 : 타이머 208 : DMA콘트롤러
209 : 버퍼 RAM 210-213 : 어댑터 접속기
215 : 주 메모리 400 : 제1버스
402 : 프로세서 메모리 411 : 버퍼 메모리
421a, 421b : 시스템버스 422a, 422b : 어댑터
614a, 614b : 제2버스
본 발명은 일반적으로 데이타 통신을 위한 장치에 관한 것으로서, 보다 구체적으로는, 저역 통신망(LAN:Local Area Network)을 구성하는 컴퓨터들이 그 LAN 구조에 관계없이 서로 통신할 수 있게 하기 위한 장치에 관한 것이다.
과학 기술 분야에서는 물론 사업상등의 여러 분야에서 디지탈 컴퓨터를 사용하여 데이타를 처리하려는 경향이 점차 증가하고 있으며, 처리 데이타의 양도 때로는 복수대의 컴퓨터를 필요로 할 정도로 급증하고 있다. 복수대의 컴퓨터가 사용되는 경우에는, 각 컴퓨터가 각기 다양한 업무를 처리할 수 있도록 하기 위하여, 컴퓨터를 사이에 통신이 필요하다. 역사적으로, 컴퓨터는 어떠한 유형 이든지간의 트랜잭션을 처리하도록 사용되어 왔다. 1970년대 초의 대부분의 컴퓨터는 트랜잭션들을 일괄처리 했었다. 초창기의 계산기에서는 일괄처리 방식으로서 펀치 카드들을 그룹처리하는 것이 주로 논의 되었다. 즉, 트랜잭션으로서 펀치 카드를 이용하였고, 컴퓨터가 카드들의 집단을 판독해서 정보를 일과 처리하도록 했었다. 1960년대에 사람들은 소위 대화식 계산기에 대한 연구를 시작하였다. 대화식 계산기에서는 트랜잭션들을 일괄처리하기 보다는 개별처리하도록 프로그램을 구성할 수 있다. 대화식 처리는 일반적으로 타자기 모양의 소위 단말기라고 하는 데이타 입력 장치에서 유래한다. 카드나, 테이프 또는 디스크를 판독해서 데이타를 일괄적으로 컴퓨터로 보내는 일괄 처리 단말기를 흔히 원격 작업 입력 단말기 또는 원격 일괄 단말기라고 부른다. 일괄식이든 또는 대화식이든지 간에 모든 처리는 네트워크내에서 집중식 또는 분산식으로 행해질 수 있다. 집중식 네트워크는 하나이상의 컴퓨터를 포함하는 중앙 계산 설비에 전적으로 의존하고, 반면에 분산식 네트워크는 하나의 계산 설비와 다른 계산 설비 사이에서 업무를 분할한다. 네트워크내의 각 지능 엔티티를 노드라고 부르며, 노드의 종류에는 컴퓨터와, 단말기 및 어떠한 유형이든지간의 통신 장비가 있다. 네트워크는 여러가지 방식으로 조직될 수 있고, 2개 이상의 컴퓨터가 동시에 동작하는 컴퓨터 네트워크에서는 단일의 통신 시스템을 이용하여 통신을 제공할 수 있다. 네트워크의 구성 유형은 다양하다. 가장 흔한 네트워크 구성 유형을 살펴보면 다음과 같다.
1. 지점간 네트워크(Point-to-point network)
지점간 네트워크는 가장 간단한 유형의 네트워크로서, 컴퓨터와, 통신라인 및 그 통신 라인의 타단에 설치된 단말기 또는 다른 컴퓨터로 이루어진다.
2. 다지점 네트워크(Multi-to-point network)
다지점 네트워크는 지점간 네트워크의 확장으로서, 스테이션(국)들을 서로 접속시키는데 다중의 지점간 링크를 사용한다.
3. 스타 네트워크(Star network)
스타 테트워크는 집중식 네트워크의 일종으로서, 원격의 스테이션들을 개개의 지점간 링크를 통해 주계산이 실행되는 단일의 사이트로 접속시킨다.
4. 링 네트워크(Ring network)
링 네트워크는, 각 노드가 그 우측 또는 좌측 노드에 링크되도록, 네트워크 노드들을 폐쇄 루우프로 접속 시킨다.
5. 버스 구조 네트워크(Bus structure network)
버스 네트워크는 중심 링크에서 뻗어나오는 아암들 또는 가지들과 같은 탭들로 로직 구성된다. 신호가 버스를 통과함에 따라, 모든 접속 노드는 수신지 어드레스를 운소하는 신호를 청취한다. 전형적인 버스시스템으로 이너네트(Ethernet) 및 모든 광대역 시스템이 포함되다.
6. 계층 네트워크(Hierarchical network)
계층 네트워크에서는 컴퓨터들이 번식적으로 접속되도록 구성된다. 원격장비로서 활용되는 컴퓨터들은 각기 독립적인 처리 능력을 가질 수 있으며, 정보나 기타의 자원들이 요구될 때 마다 고위 또는 저위 레벨의 자원들을 발행할 수 있다.
이상과 같은 기본적인 유형의 네트워크들은 상당한 거리를 커버하는 광역통신망 (WAN)으로서 사용될 수도 있고, 한두개의 건물내와 같이 비교적 단거리를 커버하는 지역 통신망(LAN)으로서 사용될 수도 있다.
디지탈 데이타가 비록 수 msec 내에 지역전체에 걸쳐 용이하게 전송 될수 있다고 하더라도, 원거리 또는 건물내에서의 전송시 병목현상으로 인하여 보다긴 시간이 필요할 경우가 있다. 따라서, 0.1㎞에서 10㎞까지의 거리를 커버하고 초당 100k 비트에서 10M 비트 이상까지의 비율로 데이타를 전송할 수 있는 유형의 LAN 내에서 데이타의 지역적 분산시의 병목 현상을 해결하기 우한 다수의 방안이 제안되고 있다. LAN에서는 각 단말 노드가 다른 모든 단말 노드와 통신할 수 있고, 그 네트워크에는 어떠한 중앙 노드나 프로세서도 필요하지 않다. 이러한 네트워크들의 도입되기 전에는, 각 지점에서 장치를 동작시키는 사람들이 각 단말기간에 공통 인터페이스가 존재하지 않으므로 시스템을 서로 연결시키지 않으면 안된다. 최근에 도입된 LAN 시스템중에서 가장 탁월한 것으로는 제록스사의 이더네트(Ethernet)를 들 수 있다 이더네트는 기저대역 시스템의 전형적인 예이다(기저대역 시스템은 데이타 신호를 매체상에 직접 인가하는 반면에, 광대역 시스템은 데이타 신호를 통신 매체상에 인가하기전에 그 데이타 신호를 고주파 또는 초고주파의 무선주파수 반송파 신호로 변조한다.). 이더네트는 최장 2.5㎞의 거리까지 10Mb/S의 속도로 데이타를 전송하지만, 음성이나 영상신호를 취급할 수 없다는 단점이 있다.
이더네트와 동일한 처리 속도를 가지면서 음성, 데이타 및 영상의 3가지 신호 모두를 취급할 수 있는 광대역 토폴로지의 일예로서는 왕 래버러토리즈의 왕네트 (Wangnet)를 들 수 있다. Wangnet 는 10MHz에서 350MHz 까지의 대역폭을 가지며, 거리가 길어지면 보다 많은 노드를 케이블상에 접속할 수 있도록 분기 토폴로지를 이용한다.
미합중국 캘리포니아주 새너제이 소재의 코르부스 시스템즈사에서 개발한 옴니네트(OMNINET)는 트의스트싸의 와이어들을 기초로한 버스 토폴로지를 이용한 것으로서, 퍼스널 컴퓨터를 위한 네트워크 접속에 주목한 것이다. 옴니네트는 1Mb/S의 속도로 데이타를 전달하고, 63대까지의 애플 Ⅱ퍼스널 컴퓨터와 호환성을 가질 수 있다. 각 컴퓨터는 1개 내지 6개의 플로피 디스크 메모리를 공유하고, 그것은 5M 내지 10M 바이트까지 메모리가 확장될 수 있다.
기타의 LAN 시스템들로서는 네트워크 시스템즈사의 하이퍼 채널(Hyper channel; 네트/원(NET/ONE);아아크(ARC) 등을 들수 있다.
이상과 같은 기저대역 및 광대역 시스템들은 각기 서로 다른 독점적 구성에 기초하기 때문에, 장비의 인터페이스를 위한 표준이 필요하였다. 인터페이스의 급증을 회피하기 위해, IEEE의 표준 위원회에서는 단말기들과 케이블 사이의 인터페이스 유니트 및 케이블과 데이타 인코딩 기구상의 데이타 억세스를 위한 로직 프로토콜에 적합한 사양을 연구하도록 소위원회를 설치하고 있다. 국제 표준기구(ISO)와 같은 단체에서도 네트워크 장비의 호환성을 연구하기 위한 위원회를 두어, 개방시스템 상호 접속 기준 모델(OSI)을 간행한바 있다. 호환성과 관련하여 개방 시스템(open system)이란 경쟁 제조업체의 장비를 사용하도록 개방된 네트워크 모델을 지칭하는 것이다. OSI 모델에서는 네트워크들은 그 기능에 따라 여러 계층으로 분할하고 있다. 즉, OSI 모델레는 1번부터 7번까지 7개의 계층이 있다.
계층 1은 물리적 계층으로서, 변조기술에 사용되는 매체와, 네트워크 동작주파수 및 사용 전압등과 같은 네트워크의 전기적 및 기계적 특성들을 정의한다.
계층 2는 데이타 링크 계층으로서, 각종 노드를 접속시키는 물리적 매체를 공유시키기 위한 억세스 전략 개념을 정의한다. 통상의 LAN 기술은 반송자감지 다중 억세스 충돌 검출(ASMA/CD) 및 토큰 전달 기구를 포함한다. 또한, 노드 어드레스와 같은 네트워크 명세 정보 및 데이타 패킷들을 배치하기 위한 기술들도 계층 2의 기능에 포함된다.
계층 3. 모든 LAN이 계층 3을 필요로 하는 것은 아니다. 그렇지만 상호 접속된 LAN 들상에 배치되는 노드들간에 루우틴 기구를 필요로 하는 네트워크들은 반드시 계층 3을 가져야 한다. 단일의 LAN 상에서는 브로드 캐스트 데이타가 모든 노드에서 보여지고, 따라서 특정의 접속은, 루우틴을 필요로 하지 않고, 그 접속에 적절히 어드레스되는 패킷들을 수집한다.
계층 4는 기본적인 레벨의 신뢰성 및 데이타 전송을 취급하는 전송계층이다. 이 계층은 플로우 제어, 에러 취급 및 패킷들의 송신 및 수신상의 문제점들에 관련되는 것이다(패킷은 사용자 발생 데이타와, 네프워크가 사용자 데이타를 하나의 네트워크 노드로부터 다른 네트워크 노드로 전송시키는데 필요한 정보로 구성된다.).
계층 5는 세션 계층으로서, LAN에 특히 중요한 것이다. 두 장치사이에 링크가 이루어질때 세션이 수립된다. 따라서, 세션계층은 2개 이상의 LAN 접속 또는 노드로부터의 데이타 스트림의 설정 및 종결을 위해 제공된다.
계층 6은 표시계층으로서, 프로토콜 변환, 데이타 언팩킹, 번역, 인크립션, 문자세트변경 또는 변환, 그리고 그래픽 명령들의 확장등과 같은 서비스가 발생하는 계층이다.
마지막으로, 계층 7은 응용 계층이다. 계층 1에서 계층 6까지의 모든 계층은 이 계층을 지원하도록 설계된다. 계층 7에서 동작하는 소프트웨어의 예로서는 전자식 메세지 시스템, 단말 모방기능 및 파일·전송 프로그램들이 있다.
이와 같은 장치와, 네트워크 및 표준이 급증함에 따라서, 저역 통신망(LAN) 접속의 물리적 계층에 관계없이, 전송계층, 네트워크 계층 및 논리적 링크제어 계층에 관련된 소프트웨어가 양측에서, 즉 계층 6의 컴퓨터 시스템(예를 들면, 허니웰 인포오메이션 시스템즈 사의 사용 컴퓨터 시스템)에 속하는 콘트롤러의 버스 측과, 이더네트나 토큰링 또는 토큰 버스와 같은 각종 유형의 LAN에 속하는 콘트롤러의 통신 어댑터측에서 변경되지 않고, 처리될 수 있도록 해야할 필요가 있다.
보다 구체적으로 설명하자면, 전송계층, 네트워크 계층 및 논리적 링크에저 계층 소프트웨어를 지원하기 위한 인터페이스 소프트웨어를 제공하되, 새로운 유형의 LAN 접속들의 이루어질 때에도 그 소프트웨어를 변경시킬 필요가 없도록 지역 통신망 콘트롤러(LALC)를 설계할 필요가 있었다. 더우기 이 설계는, 계층 6프로세서의 하드웨어를 갖는 콘트롤러의 하드웨어 인터페이스가 계층 소프트웨어를 처리할 수 있도록 하여야 했다. 그러므로, 하드웨어의 양측에서 통신 계층 소프트웨어를 격리시켜서, 각종 유형의 어댑터로 하여금 CSMA 및 이더네트나, 토큰 링 또는 토큰 버스 LAN 구조를 취급하도록 해야 할 필요가 있었고, 더우기 PBX 어댑터를 지원하도록 추가의 데이타가 사용되기도 하였다.
상기한 정보중의 일부는 다음의 문헌들로부터 얻을 수 있다.
(1) 1982년 1월 IEEE Spectrum에서 발행한 Nicholas Mokhoff 저술의 “Business Communications”.
(2) 1984년 Hayden Book Co. 에서 발간한 Thomas Wm. Madron 저술의 “Local Area Networks in Large Organizations”.
(3) 1978년 11월 IEEE 회보 Vol.66, No.11에 수록된 David D. Clark, Kenneth T. Pogran 및 David P. Reed 공저의 “An introduction to Local Area Networks”.
지역통신망(LAN)에 관련된 종래기술의 장치들을 아래에 참조하였다.
(1) 1985. 1.8일자로 공고된 Anil K. Agrawal 등의 미합중국 특허 제 4,493,021호, “Multicomputer Communication System”.
(2)1984. 11. 27일자로 공고된 Pierre Austray 등의 미합중극 특허 제 4,485,436호, “System for Selecting Interfaces on a Priority Basis”.
(3)1981. 9. 29일자로 공고된 Kapali P. Eswaran 등의 미합중국 특허 제 4,292,631호, “Port Logic for a Communication Bus System”.
(4) 1984. 2. 7일자로 공고된 David M. Bryant 등의 미합중국 특허 제 4,430,651호, “Expandable and Contractible Local Area Network System”.
버스에 다중의 CPU가 북착된 경우에는 문제가 더욱 복잡하다. 2대의 CPU가 동시에 입/출력 로드(IOLD)오더를 발생시킬때 문제가 생긴다. 이와 같은 오더는 통상 기능코드(FC=09/OD)를 갖는다. 이와 같은 오더들이 동시에 발생될때, 제2부분 OD은 식별되는 소스를 전혀 갖지 않으며, CPU는 서비스되지 못할 것이다.
보다 구체적으로, 2대의 CPU가 동시에 IOLD 오더를 발생시켰을 때, 콘트롤러는 2대의 CPU에서 각각 전달된 09 및 OD 기능코드 데이타를 어떻게 짝지워야 할 지 모르기 대문에 오더들이 인터리브 될 가능상이 있었다. 따라서, 다중의 CPU가 서비스를 제공할 수 있도록 이러한 상태를 인지하고 정정할 수 있는 메카니즘이 필요하였다.
본 발명의 주 목적은 개선된 다중 CPU 콘트롤러를 제공하기 위한 것이다.
본 발명의 다른 목적은 개선된 버스 콘트롤러를 제공하기 위한 것이다.
본 발명의 또 다른 목적은 버스에 결합된 CPU들의 다중동시 동작을 허용하는 메카니즘을 제공하기 위한 것이다.
본 발명의 상기한 목저들 및 기타의 목적들은 다중 CPU 인터록크 메카니즘을 제공함으로써 달성된다.
2대의 CPU가, 통상 FC=09/OD와 같은 IOLD 기능코드쌍을 포함하는 입/출력 로드(IOLD)오더를 동시에 발생할 때, 그 각각의 도어는 개별 오더이기는 하지만 어떠한 소스 식별자도 갖지 않는 제2오더를 포함하며, 그 메카니즘은 FC09(즉, 어드레스)의 수신지 대기 OD상태를 기입한다. CPU가 FCOD(즉, 어드레스의 범위)를 수신하기에 앞서 그 CPU에 의해 콘트롤러로 보내지는 연속적인 FC09들은 NAK, 즉 확인 부정될 것이다. 제2FC09를 NAK 함으로써, 그 CPU는 적절한 FCOD가 수신되었을 때 원래의 IOLD를 다시 발생할 것이다.
이와 같은 구성으로 콘트롤러는 콘트롤러 채널 또는 콘트롤러(적, 채널쌍)마다에 하나 이상의 CPU를 지지할 수 있다. 이 구성에서는 지역 통신만(LAN) 접속을 제공할 필요가 있다.
본 발명의 상기한 목적들과 기탄의 목적들 및 특징들은 이하에 설명되는 양호한 실시예들에 의해 달성된다. 본 발명의 구성 및 동작방법은 물론 장점들과 더불어 본 발명의 특성이라고 여겨지는 신규의 특징들은 첨부도면을 참조로한 이하의 설명으로부터 보다 명백히 이해될 수 있을 것이다., 그렇지만, 첨부도면들은 본 발명의 실시예에 불과한 것이고, 본 발명에 제한하기 위한 것은 아님을 이해하여야 한다.
지역 콘트롤러 서브시스템(LACS)은 허니웰사의 레벨 6 메가 버스(Megabus) 시스템에 접속되는 프로그램 가능 통신 서브시스템으로서, 본 출원의 출윈인에게 허여된 미합중국 특허 제3,993,981호; 제3,995,258호; 제4,000,485호; 제401,790호 및 제 4,050,097호를 참조하기 바란다. LACS는 다음과 같은 통신 부품 세트를 구비한다.
(a) 지역 콘트롤러(LAC)마더보드
(b) 매체 억세스 콘트롤러(MAC) 및 물리적 계층 어댑터
(c) 트렁크 커플러(TC)
(d) RF 모댐
본 발명은 상기한 아이템들중 처음의 두 아이템(즉, LAC와 어댑터)에 대한 정의 및 설명에 속하는 것이다.
LACS는 IEEE 802 지역 네트워크 표준을 지지할 수 있는 것이다. LACS는 허니웰사의 레빌 6/LACS 인터페이스 상에서 요구되는 대화를 최소화하고, 레벨 6(L6) 및 LAN 어댑터 인터페이스의 특정 하드웨어 특성들로부터 LACS 온-보드 통신 소프트웨어를 격리시키도록 설계된다. LAC 내의 운영체제(OS)로서는 브릿지 커뮤니케이션즈사에서 제조 판매하는 통신 커널이 사용된다. 본 발명에서 "CS 소프트웨어"(통신 서비스 소프트웨어)는 개방시스템 상호 접속(OSI) 링크 계층, 네트워크 계층 및 전송 계층을 실행하는 LAC 상주 소프트웨어를 지칭하고, "SM 소프트웨어" (시스템관리 계층 소프트웨어)는 IEEE 802 시스템 관리 기능들을 지지하는 LAC 상주 소프트 웨어를 지징한다.
비록 IEEE 802 표준이 데이타 링크 제어 인터페이스(계층 3/계층 2) 보다 높아지지는 않으나, 제공되는 레벨 6 대 LACS 인터페이스는 보다 높은(예를 들면 세션/전송)계층 인터페이스를 용이하게 지원하기에 적합할 정도로 유연성을 갖는다.
모든 지역 통신망(LAN) 분야에서 사용되는 LACS는 표준의 허니웰사의 레벨 6섀기 내에 장착되고, 메가버스 스스템(Megabus는 허니웰사의 등록상표이다)상에 하나의 슬로트를 필요로 한다. 즉 LACS는 대형 레벨 6시스템의 32비트 어드레스 버스를 지지하게 된다. LAN 어댑터들을 LAC으로부터 LAN으로의 인터페이스를 제공한다. 어댑터(도오터보드)는 매체 억세스 콘트롤러(MAC)를 포함한다. LAC에는 최대로 4개의 어댑터 도오터 보드를 부착할 수 있다. 어댑터의 유형은 다양하다(예를 들면, 토큰버스 MAC, CSMA/CD MAC 등).
트렁크 커플러(TC)의 유형도 다양하며(예를 들면, 광대역 지향성 커플러, 토큰링, 이더네트 송수신기등), 별개의 유니트로서 패키지된다. 광대역 분야에서 사용되는 RF 모뎀도 마찬가지로 별개의 유니트로서 패키지된다.
LACS는 유사한 유형이거나 또는 유사하지 않은 유형의 어댑터를 지지할 수 있기 때문에, 레벨 6과의 IEEE 802 LAN 접속뿐만 아니라 IEEE 802 LAN들 사이의 통로로서, 또는 광대역 채널들간의 브릿지로서 사용될 수 있다. 또한, LACS는 LAN 트래픽 모니터/저널라이저 및 네트워크 제어로서도 사용될 수 있다. 통신 서비스(CS) 및 시스템 관리(SM) 소프트웨어도 물론 각 분야에 적용될 것이다.
제1도는 워크스테이션 LAN 억세스 및 LAN 들간의 통로를 위해 LACS와 레벨 6시스템들과의 접속을 제공하는 지역 통신망을 도시한 것이다.
제1도에서, LAC(101)는 그 입/출력(I/O)인터페이스내에 최대로 16대 까지의 프로세서를 갖는 멀티프로세서 중앙시스템에 제공된다. LAC(101)는 레벨 6(L6)시스템(102)과 LAN(100) 사이에 접속을 제공하는데 메가버스(103)을 거쳐 L6(102)와 인터페이스 한다. 또한, LAC(101)는 LAN(104)이나 이더네트(105)와 같은 다른 LAN 들에 대한 통로로서 작용한다. 레벨 6 CPU의 제어하에, LAC(101)는 새로운 멀티라인 콘트롤러(NMLC)(107)를 위한 통신 수요 및 DPS8(106)과 같은 메인 프레임 컴퓨터 시스템을 위한 통신 요구등의 다른 통신요구들에 대한 서비스를 제공한다.
제2도에는 LAC(101)의 보다 상세한 블럭구성이 도시되어 있다. 상용 마이크로프로세서(MC 68000)(201)는 마이크로프로세서 버스(μ/p)(200)에 결합되고, 어댑터 접속기(210 내지 213)를 통해 어댑터들과 통신한다. 상용 RAM(209)은 DMA 버스(214)에 결합되고, 버스 커플러(206)를 통해 마이크로프로세서버스(μ/p)(200)와 통신한다. RAM은 물리적으로 2개의 섹션, 즉 데이타 버퍼 RAM과 프로그램 RAM으로 분리된다. 분리의 의도는 데이타 버퍼 RAM과 레벨 6메모리내의 데이타를 동시에 직접 메모리 억세스(DMA)할 수 있도록 하거나, LAN 어댑터들과 프로그램 RAM 내의 소프트웨어를 동시에 실행할 수 있게 하기 위해서이다. 버스 커플러(206)는 상용 송수신기 74 LS 245유형의 것으로서, μ/p 버스(200)를 DMA버스(214)로부터 격리시키고 양측의 MC 68000버스(200),(214)의 동시적이면서 독립적인 동작을 허용함과 동시에, 마이크로프로세서로 하여금 전체 RAM(202),(209) 내의 임의의 위치를 억세스할 수 있도록 허용한다.
DMA 콘트롤러(208)로서는 모토롤라사에서 시판하는 68440 콘트롤러와 같은 2채녈 디바이스가 사용된다. 하나의 채널은 마이크로프로세서(201)에 의해 사용되어 메가버스 인터페이스(207)를 통한 레벨 6주 메모리(215)와 데이타 버퍼 RAN(209)간의 데이타의 DMA 이동을 실행한다. 다른 채널은 메가버스(216)부터 I/O 오더 정보를 받아서 그것을 데이타 버퍼 RAM(209)내의 일시대기 행렬로 전달하기 위해 사용되는 것으로서, 일시대기 행렬내의 I/O 오더 정보는 다음에 펌웨어나 인터페이스(IF) 소프트 웨어의 의해서 분석 및 정리된다.
타이머 장치(203)는 어드반스드 마이크로 디바이스사에서 시판하는 9513 유형의 것으로서, LAC 소프트웨어를 위한 타이머 기능을 제공하도록 사용되는 LAC 운영체제에 대해 기본적인 클럭 기준을 제공한다.
어댑터들을 위한 DMA 기능안 각 어댑터 자체의 하드웨어의 의해 제공된다. 어댑터 DMA 는 항상 데이타 버퍼 RAM의 내부에 있거나 또는 외부에 있다.
프로그램 RAM(202)과 데이타 버퍼 RAM(209)간의 데이타 이동은 MC 68000 마이크로프로세서(201)에 의해 직접 수행되고, 프로그램 RAM(202)과 주메모리(215)간의 로드/덤프 동작으로서의 데이타 이동은 2단계, 즉 마이크로프로세서 (201)의 제어하에 수행되는 프로그램 RAM(202)과 데이타 버퍼 RAM(209)간의 이동 및 DMA 콘트롤러(208)에 의해 수행되는 데이타 버퍼 RAM(209)과 주 메모리 (215)간의 이동의 2단계로 수행된다.
본 발명에서는 필요하지 않지만, 제3도는 운영체제(OS)의 구조적 관계, 즉 브릿지 통신 커널 OS와 인터페이스(IF) 소프트웨어 및 하드웨어를 보다 명백히 이해할 수 있도록 하기 위해 제공된 것이다.
제3도는 본원 명세서에서 걸쳐서 설명되는 기능을 반영하는 것으로서, 여기서는 CS와 SM 소프트웨어(301),(302)가 LAC 하드웨어를 각각 직접 제어하지 않고, 그 대신에 IF 소프트웨어(304)의 처리 및 루우틴을 통해 LAC 하드웨어와 인터페이스한다. 이 IF 소프트웨어는 하드웨어의 특정의 특성들로부터 CS와 SM 소프트웨어에 영향을 미치지 않도록 한다. 모든 LAC 소프트웨어는 LAC 프로그램 RAM(202)내에 로드된다.
이와 같은 사양에서는, 소프트웨어의 특정 부분이 그곳으로 전달되는 메일박스 메세지에 의해서 수행되는가, 또는 LAC 하드웨어로 부터의 인터럽트의 발생에 기인하여 수행되는가에 따라서, IF 소프트웨어의 루우틴이 처리 루우틴인지 또는 인터럽트 루우틴인지가 결정되는 것으로 설명된다. OS 303의 사양을 살펴보면, IF ‘인터럽트 루우틴’들은 IF 메일박스 의거 치리(후술함)에 관련되거나, 기복적으로 인터럽트 에이전트만의 처리이다.
IF 소프트웨어에서, MEMDMA 및 IODISP 처리는 비통상적인 사고나 고장이 보고되는 메가버스 계층관리 엔티티(MBLME) 처리들과 관련된다. MBLME는 상기와 같은 사고들중 특정의 것을 SM 소프트웨어로 계속해서 보고하고, 일반적으로 SM과 상기한 처리들간의 매개 처리로서 작용한다.
IF 소프트웨어(304)의 MAC 처리는 물리적으로 부착된 각 어댑터를 위한 MAC 송신, 수신 및 계층 관리 처리로 이루어진다.
CS소프트웨어(304)는 LAN 접속을 위한 전송 계층, 네트워크 계층 및 링크 계층 기능들을 제공한다. 그 각각의 계층은 MBLME와 비례하는 기능들을 수행하는 각자의 계층 관리 엔티티를 갖는다.
SM 소프트웨어는 LACS 계층관리 엔티티들에 대한 전체적인 제어 및 시스템 상태를 CPU내의 시스템관리 소프트웨어로 보고한다.
OS 커널 소프트웨어는 처리들의 디스패칭 및 메일박스 메세지들의 통과를 위한 타이머 및 제어와 같은 서비스 기능들을 제공한다. 각종 처리 호출에 대한 커널로부터의 에러 응답 취급은 CS 및 IF 소프트웨어에 의해 보내진다.
LAC는 또한 QLT, RAM 로드/덤프 및 기본적인 I/O 순서들을 제공하는 몇가지 PROM 상주 펌 웨어(제3도에 도시되어 있지 않음)도 포함하고 있다.
상호처리 통신(후술함)은 OS SENDMSG 진행 호출들을 활용하는 메일박스 메세지를 통해 달성된다. OS SENDMSG 진행 호출들은 하나의 처리가 하나의 메시지나 다른 처리의 요구 서비스를 보내는 수단이다. 그들은 또한 비동기적인 사고의 발생이나 비동기적인 서비스의 완수가 소프트웨어에 보여질 수 있게 되어, 소프트웨어가 다음 단계에서 처리될 수 있도록 하는 수단이다. 호출된 처리는 그것의 메일 박스로 보내지는 메세지들을 검색할 것이다. 소프트웨어 처리들은 각자의 메일박스에 대한 ID를 얻을 수 있으며, 또한 다른 처리들의 공지된 등록 메일박스에 대한 ID를 얻을 수도 있다.
브릿지 OS(303)는 메일박스 메세지에대한 다수의 우선순위를 제공하여, 메일박스 대기행렬내의 메세지들의 상대 위치관계에 영향을 미친다. 유효한 메세지 우선순위들로서는 긴급(URGENT), 보통(NORMAL), 지연(MUSTDELIVER) 및 고속 (FAST)등이 있다.
LAN 제어 블럭(LCB)(후술함)은 레벨 6CPU와 LACS간의 가장 중요한 상호 통신 수단이다. 메가버스와의 SO/SM 소프트웨어 인터페이스(301), (302)는 IF 소프트웨어 I/O 디스패치 처리(304)로 부터 수신되는 메일박스 메세지 및 IF 소프트웨어에 전달되는 메일박스 메세지를 통해 지지된다. 수신되는 메일박스 메세지들은 기복적으로 주 메모리(215)내의 LCB에 대한 포인터로 이루어진다. 메모리 DMA 처리를 위한 메일박스 메세지는 주 메모리(215)와 LAC 데이타 버퍼 RAM(209)간의 데이타 이동이나, LCB 판독, 또는 주 메모리(215)내의 LCB 내로의 상태 유형 정보 기입 및 CPU 인터럽트를 유발하기 위해 사용된다.
어댑터들과의 CS/SM 소프트웨어는 IF 소프트웨어 매체 억세스 콘트롤러 (MAC) 처리에 의해 발생되는 메일박스 메세지(예를 들면, 데이타 지시 및 제어 지시) 및 IF 소프트웨어 MAC 처리를 위해 전달되는 메일박스 메세지를 통해 지지된다.
통상 운전중의 레벨 6과 LACS간의 소프트웨어 인터페이스는 LACS로 어드레스되는 입/출력 로드(IOLD) 오더 및 레벨 6에 대한 인터럽트 후에 LAC에서 주 메모리로 전달되는 복귀 상태 정보를 사용한다.
모든 데이타 메세지와 경영관리 조작은 주 메모리(215)내에 배치된 LAN 제어블록(LCB)의 사용에 근거하고, 그 LCB는 IOLD 오더로 주어진 정보에 의해 지시된다. LAC내의 적절한 소프트웨어 처리는 LCB LAN 제어 블럭 화상(LCBI)으로서 RAM내에 복제되도록 하고, 요구동작이 완성된 이후, 최종 상태는 LCB에 전달되도록 한다. 동작 수행시, 각 처리는 서로 다른 각종의 처리를 활용하게 될 것이다.
LAC은 기본적으로 제4도, 제5도 및 제6도에 도시된 바와 같이 3종의 버스, 즉 마이크로프로세서(μ/p)버스(400)(제4도); 직접 메모리 억세스(DMA) 버스(614a) 및 (614b); 어댑터버스(521a),(521b),(522a) 및 (522b)(이상, 제5도)와, 접속기 (1) 및 (2)(제6도)로 구성된다. 각 버스는 최대로 16 데이타 비트와 2패리티 비트 및 23 어드레스 비트를 포함하며, 데이타 스트로브, 어드레스 스트로브, 판독/기입라인 및 기능 코드라인으로 이루어진 제어 버스를 포함한다.
제4도 및 제5도를 참조로하면, 상용 DRAM(402)에 기억된 운영체제(OS)의 제어하에 동작하는 모토롤라 유형의 마이크로프로세서(μ/p)(401)가 도시되어 있다. 이 운영체제는 DMA 버스(614b)로 부터 어댑터 데이타 및 어드레스 버스(421b)와 메가버스(416B)로 데이타 흐름을 제어한다(이에 대해서는 다음에 어댑터 버스를 설명할 때 보다 상세히 설명하기로 하겠다). 상용 EPROM(404)은 16K×16비트 크기를 가지며, 27128 유형의 것이다. EPROM(404)은 마이크로프로세서(401)에 대한 고속 로직 테스트(QLT)와 스택포인터를 포한한다. EPROM(404)는 또한 레벨 6 명령들을 실행하는 모토롤라 68000(μ/p)(401)가 활용될 수 있는 64K×18 DRAM(411)내에 레벨 6 컴퓨터 시스템(214a),(241b),(215)으로부터의 I/O 명령 블럭을 전달하기 위해 모토롤라 유형의 68000 DMA 침(408)을 활용하기로 한다. 레벨 6 CPU(214)는 운영체제(OS)를 ERAM(402)내에 로드시키기도 한다. ERAM(402)의 프로그램 및 명령들을 실행하는 데에도 마이크로프로세서(μ/p)가 활용될 수 있다.
제2도에서 (214a),(214b),(215)로 도시되고 또한 제4도에서 (412a),(414b)로 도시된 레벨 6 시스템을 메가버스(216),(416a),(416b)를 거쳐 LAC와 통신시키기 위해, 레벨 6 CPU(214a/b)는 74 AS 867/26S 10유형 메가버스 인터페이스(407a)와 74 AS 823/26S10 유형 인터페이스(407b)를 통해 LAC로 명령을 발행한다. 이 명령은 74 AS 823 유형 레지스터에 의해 기능코드로서 수신된다. 레벨 6 CPU(414a)는 어드레스 인터페이스(407a)상에 어드레스를 배치하고, 반면에 레벨 6 CPU(414b)는 데이타 인터페이스(407b)내에 데이타를 배치한다. 그래서, 데이타는 FIFO(430)의 입력들로 배치되고, 명령들은 콘트롤러의 입력들로 배치된다. 명령들이 콘트롤러(408)내에 배치될때, DMA 버스(614b)제어를 획득하기 위한 요구 신호가 DMA 칩(408a)으로 보내진다. DMA 칩(408a)은 그 요구를 확인한후, 콘트롤러(408)로 하여금 DMA 버스(614a),(614b)상에 데이타를 배치시킬 수 있도록 한다. 다음에 DMA칩(408a)은 콘트롤러(408)의 메모리(408b)를 어드레스하고, DMA 데이타를 DRAM(411)내로 전송한다. 이러한 과정이 완수되었을 때, DMA 칩(408a)은 마이크로프로세서(401)의 실행을 허용한다. 그러면, 마이크로프로세서(401)는 DMA 버스를 요구할 것이고, 그것이 허락되면, 다음의 처리와 분석을 위해 메모리(408B)로 부터의 데이타를 전송할 것이다.
허니웰사의 레벨 6 시스템(102)으로 부터 LACS(101)를 거쳐 LAN(100)으로 데이타를 전송하기 위하여, μ/p 68000은 우선 레벨 6 시작 어드레스를 메가버스 어드레스 인터페이스(470A)네에 로드한다. 메가버스 어드레스 인터페이스(407a)내에는, 메모리(408b)내에 로드될 워드들의 수를 카운트하는 범위 카운터가 있다. 다음에 μ/p(401)는 DMA 어드레스를 DMA 칩 (408a)내에 로드한다. 이때 DMA 어드레스는 어드레스 메모리(408b)에 로드된 상태이다. DMA 어드레스는 또한 메모리(408b)내에 로드될 워드의 수를 위한 범위 카운트를 로드한다. 다음에는 μ/p(401)의 제어하에, 데이타는 메가버스 데이타 인터페이스(407b)를 거쳐 선입선출(FIFO) 메모리내와 DMA 버스(614b)상으로 전송된다. 다음에, DMA 칩(408a)은 DMA 버스(614b)상의 데이타를 DMA 버퍼 메모리(408b)내로 전송한다. 한편, μ/p(401)는 74 LS 245 송수신기(406b)에 의해 이 DMA 전송으로부터 격리된다. 그래서, μ/p(401)는 DRAM(402)에서 얻어진 정보를 활용하는 일부의 서로 다른 업무를동시에 수행할 수 있다. 레벨 6으로부터 DMA메모리로의 DMA 전송이 수행될때, DMA 칩(408a)은 μ/p(401)를 인터럽트한다. 그러면, μ/p(401)는 74 LS 245 유형 송수신기 (420a), (420b)를 거쳐 DMA 버스(614a), (614b) 및 어댑터 버스(421a),(421b)상으로 명령을 발행한다. 그러면, 그 명령을 수신하는 어댑터가 DMA 메모리(408b)를 판독하고, DMA 메모리(408b)로 부터의 데이타를 어댑터(422a),(422b) 중 하나와 LAN(100)상으로 전송한다. 이러한 과정이 수행되고 있는 동안, μ/p(401)는 송수신기 (406b) (420a),(420b)를 각각 거쳐서 DMA 버스(614a),(614b)는 물론 어댑터 버스 (421a),(421b)로 부터 격리된다.
다음에 μ/p(401)는 그것의 운영체제의 제어하에 동작을 진행해서, DMA 칩(408a)으로 하여금 다음 블럭을 전송하도록 한다. 송수신기(406b)는 마이크로프로세서 버스로 하여금 자신의 프로그램을 진행할 수 있도록 하고, DMA 버스로 하여금 레벨 6 메모리(215)나 메가버스(216)로 부터 DMA 메모리(408b)로 데이타를 전송할 수 있도록 한다. 따라서, 이와 같은 버스들의 격리는 3종의 버스가 인터페이스 없이 동시에 진행하는 것을 허용한다. 이것은 LAN을 매우 다기능화 할 뿐만 아니라, LAC를 통해 보다 많은 처리가 가능해 지도록 한다.
제5도 및 제6도를 참조로하면, 어댑터 도오터 보드 접속(210)-(213)(제2도 참조)과 각 어댑터의 도오터 보드(216)-(219)를 포함한 어댑터 인터페이스의 블럭도가 도시되어 있다. 어댑터 인터페이스 시스템을 이루는 전체 LAN 보드는 최대로 4개 까지의 도오터 보드(522a),(522b)를 가질 수 있다. 각 도오터 보드는 기수 및 우수 접속기를 갖는다. 예를 들어, 도오터 보드#1(어댑터 인터페이스#1)는 WO1과 WO2의 어댑터 접속기를 가지며, 도오터 보드 #2(어댑터 인터페이스 #2)는 WO3와 WO4의 접속기를 갖는다. 기수 접속기들은 제어 라인을 취급하고, 반면에 우수 접속기들은 데이타라인 00-15 및 어드레스 라인 00-23을 취급한다. 각 어댑터의 도오터 보드는 이더네트, 토큰링, 토큰 버스, 디스크, 테이프, 메모리 등의 어떠한 유형의 것일 수 있다.
어댑터 버스(421a),(421b),(521b)는 74 LS 245 유형의 송수신기 (420a), (420b), (520b), (520bc)에 의해서 DMA 버스(414b), (514b)로 부터 격리된다. DMA 버스가 어댑터 버스로 데이타를 보내고자 하는 경우, 송수신기는 그 방향으로의 데이타 플로우를 허용하지만, 어댑터 버스가 DMA 버스로 정보를 보내고자 하는 경우에는, 송수신기는 다른 방향으로 지시하게 된다. 콘넥터(210-213)상 각 어댑터 도오터 보드(216-219)는 LAN으로 부터 데이타를 송수신하기 쉽다. 그 어댑터는 DMA 버스에 대해 요구하고, 68542 유형의 임의 순서 칩(509)은 몇개인가의 요구중에서 최우선 순위를 갖는 요구를 결정해서, 최우선 순위를 갖는 어댑터에 버스를 부여한다. 임의 순서 칩은 또한 74 S 20 유형의 게이트(531)를 통해 7474 유형의 플립-플롭 칩으로 신호를 전달한다. 플립-플롭(530)은 세트시, 도오터 보드(어댑터)사이클이 진행중임을 지시한다. 다음에 그 신호를 판독/기입 신호들로 게이트되는 게이트(532),(533)를 거쳐 송수신기(520b),(520c)에 인가된다. 게이트(532),(533)에 인가된 판독/기입 신호는 송수신기(521b),(521bc)를 거쳐 데이타가 전송되는 방향, 즉 DMA 버스 데이타가 어댑터 버스상에 배치될 것인지 또는 어댑터 버스 데이타가 DMA 버스상에 배치될 것인지를 결정한다. 이 데이타 전송이 완료되면, 다음의 최우선 순위를 갖는 어댑터가 그 자신의 사이클을 개시한다.
데이타 전송은 또한 송수신기(406b)로 부터의 인에이블 신호를 활용하여 행해지기도 한다. 이 기술의 데이타 전송하에서, μ/p(401)는 송수신기(406b)가 어댑터 인에이블 신호를 갖도록 프로그램한다. 따라서, μ/p(401)는 송수신기(406b)를 거쳐 그것의 제어하에 어댑터들로부터 데이타를 판독하거나 각 어댑터로 데이타를 전달할 수 있다. 따라서, 송수신기(520b), (520bc)를 통한 이와 같은 유형의 격리와, 송수신기 (406b)를 통한 선택은, μ/p(401)에 의해 LAN이 프로그램될 수 있도록 하여, LAN 상의 어떠한 유형의 도오터 보드(어댑터)도 활용할 수 있게 한다.
제6도를 참조로 하면, LAC와 그에 부착된 어댑터들간의 물리적 인터페이스가 도시되어 있다. 어댑터 인터페이스는 접속기 WO1-WO8로 이루어진다. 제6도는 대표적이 2개의 접속기를 도시한 것이다. 모든 우수 접속기 WO2, WO4, WO6, WO8는 데이타 비트 0-15 및 어드레스 비트 1-23를 포함한다. 모든 기수 접속기 WO1, WO3, WO5, WO7는 제어신호를 취급한다. 기수 접속기 상에서, 접속기 단자(10)는 버스 클리어 신호 단자이고, 접속기 단자(11)는 마스터 클리어 신호 단자이며, 접속기 단자(12)는 버스 에러표시 단자이다. 접속기 단자(13)는 패리티 에러 신호를 취급하고, 판독/기입 신호는 접속기 단자(18)에 인가된다. 데이타 확인 신호는 단자(20)에 인가된다. 상위 데이타 스트로브 신호는 단자(22)에 인가되고, 하위 데이타 스트로브 신호는 단자(24)에 인가된다. 데이타 어드레스 스트로브 신호는 단자(26)에 인가된다. 단자(29)는 시스템 클럭을 위한 신호를 취급하고, 단자(31)는 2×2 시스템 클럭을 위한 신호를 취급한다. 단자(35)는 1/8 시스템 클럭을 위한 신호를 취급한다. 전원 인가 신호는 단자(34)를 통해 취급된다. 어댑터로부터의 인터럽트 요구신호는 단자(47)에 인가되고, 어댑터에 대한 인터럽트 확인신호는 단자(48)에 인가된다. 어댑터에 대한 인에이블 스트로브 신호는 단자(49)에 인가된다. 어댑터로 부터의 버스 요구 신호는 단자 (51)상에 인가되고, 도오터 보드에 대한 버스 부여 확인 신호는 단자 (52)에 인가되며, 어댑터로부터 LAN으로의 버스 부여 확인 신호는 단자(53)에 인가된다. 단자들은 각종의 데이타라인 및 어드레스 라인을 식별하도록 접속된다.
[입력/출력(I/O)오더]
레벨 6 CPU(214a),(215b)로 LACS를 제어하기 위하여, 일련의 입/출력(I/O) 오더가 구별기능 코드(FC)와 함께 활용된다.
[출력오더]
1. I/O(FC=01) 출력 LACS 제어
2. IOLD(FC=09/OD) 출력 LCB 포인터
[입력오더]
1. I/OPFC=26)입력 디바이스 I/O
출력 LACS 제어 I/O(FD=01)
오더는 16비트 제어 워드를 LACS로 전송하는 것이다. 모든 어댑터 및 인터페이스가 이 오드에 의해 영향을 받는다. 이 오더에서 사용되는 채널 수는 중요하지 않다. 워드내의 각 비트는 다음과 같이 정의된다.
비트 0 : 하드 초기화(논리 1일 경우)
비트 1 : I/O 중지(논리 1이고, 비트 0은 논리 0일 경우)
비트 2-15 : MBZ
하드 초기화 기능은 전원 인가 시퀀스에 의해 또는 출력 LACS 제어 오더(그 오더의 최초 비트)가 논리 1(즉, FC=01)일때 개시된다. 이 초기화 기능은 다음과 같은 작용들을 유발한다.
(a) LAC 및 어댑터 RAM(202),(216a)-(219b)이 클리어 된다.
(b) LAC 및 어댑터들내의 모든 하드웨어 레지스터가 클리어된다.
(c) LAC 는 품질 로직 테스트(QLT)를 진행하고, 적합한 구성의 정보를 확인한다.
(d) LAC는 정지 상태로 들어가고, 그것의 기능은 PROM(204)에 의해 지지되는 기능들로 이루어진다.
I/O 오더의 비트 1은 논리 1이고, 비트 0은 논리 0이면, 다음의 작용들을 유발하는 I/O 중지가 수행된다.
(a) LAC와 각 어댑터내의 하드웨어 레지스터들이 클리어 된다.
(b) LAC는 펌웨어 제어하에 동작을 지속 또는 연속하고, 그 기능은 PROM 상주 펌웨어(204)로 부터 지지되는 기능들로 이루어진다.
출력 LCB 포인터 IOLD(FC=09/OD)
이 IOLD 오더는 기본적으로 2개의 기능 코드로 이루어진 명령이다. 기능 코드 09는 어드레스의 로딩을 나타내고, 기능 코드 OD는 로드 범위를 나타낸다. 이오더는 LAC에 대해 2개의 별개의 버스 전송을 포함한다. 제1의 전송은 32-비트 바이트 어드레스이고, 제2의 전송은 LAC 하드웨어/소프트웨어를 정의하는 상위 8비트 및 LCB 규칙을 바이트 크기로 정의하는 하위 8비트로 이루어진 16비트 범위의 워드이다. 어드레스와 LCB 규격은 함께 레벨 6 주 메모리(215)내의 LCB의 위치와 크기를 정의한다. 레벨 6 CPU(214a)또는 (214)가 IOLD 오더를 발생할 때, 메가버스(216)는 09 기능 코드를 메가버스 어드레스 비트18-23 상에 배치한다. LAN은 이 기능 코드를 받아들여서, 그것을 제2도 및 제5도의 마더보드 상에 저장한다. LAN이 응답할 다음의 기능 코드는 IOLD 명령을 완료시키는 OD 기능 코드이다.
IOLD 오더의 발생과 관련하여 유발되는 한가지 중요한 문제점이 멀티프로세싱 시스템 내에서 존재한다. 인터록크가 없으면, IOLD 오더는 2개의 CPU로부터 발생될 수 있고, 이 IOLD 오더들은, LAC가 2개의 CPU에서 각각 보내진 기능 코드 09와 OD를 어떻게 조합해야할지 모르기 때문에, 인터리브될 수 있다. 인터록크가 있다면, 제2CPU에 대해 애매한 사이클을 방지하고 또한 모든 IOLD가 동일 CPU로 부터의 것임을 확실히 하는 NAK 신호를 발생하게 될 것이다.
다음에 제7도를 참조로 하면, 제 1 IOLD 오더로 부터의 제1기능 코드를 저장하는 74 S 112 유형 플립-플롭(701)이 도시되어 있다. 프립-플롭(701)으로 부터의 출력신호는 16 L8 유형 프로그램 가능 어레이 로직(PAL)(703)에 인가되고, 이 PAL(703)에는 또한 메가버스 어드레스 비트 18-23도 인가된다. PAL(703)은 기능코드를 디코드하고, 레벨 6으로부터 발생된 기능 코드가 확인되어야 하는지 (ACKed)또는 확인되지 않아야 하는지 (NAKed)를 경정한다. 결정된 사항은 74 AS 823 유형 래치(704)내에 저장된다. 이 래치는 적절한 시간에 버스가 해제되고 정보가 활용될 수 있도록 버스로 부터의 정보를 대기시킬 수 있는 시마포어(semaphore)로서 작용한다. 회로 시마포어(704)의 래칭은, LAN이 LAN 보드에 대한 명령을 검출할 때 결정된다. 플립-플롭(701)은 기능코드 OD로 리세트되어 사이클을 종료한다. 플립-플롭(703)은 기능 코드 09로 세트되고, 기능코드 OD로 세트도는 브래킷 유형의 것으로 생각될 수 있다. PAL(703)은 기능 비트들을 디코드해서, 기능 코드들이 메가버스에 대해 ACK 되었는지 또는 NAK 되었는지를 결정한다. 그래서, 이 로직은 각 CPU가 잘못된 확인을 수행하여 제1CPU가 IOLD를 발생하게 되는 것 및 제2CPU가 IOLD를 발생하게 되는 것을 방지한다. NAK를 위해, IOLD 이후에 임의의 입력 명령이 LAN 보드의 제어에 주어졌다면, 프립-플롭(702)이 활용된다. 플ㄹ립-플롭(702)은 제1IOLD 기능 코드 09를 세트하고, 마스터 클리어 신호가 그것에 인가될 때에만 리세트 할 수 있는 시마포어로서 작용한다. 그리하여, 그 사마포어(702)는 LAN 보드에 일단 IOLD 명령이 주어진 후에는 레벨 6 입력 명령들이 발생되지 못하도록 한다.
출력 LACS 제어 오더(FC=01)의 완료 직후에, LAC PROM(204)으로 하여금 메가버스로 16 비트 디바이스 ID 워드를 전달하도록 하는 입력 디바이스 ID 오더(FD=26)가 발생된다. 이 ID는 LAC 및 어드레스지정 어댑터 채널에 부착된 어댑터를 식별한다. LAC에는 64 채널 번호 세트가 할당된다. 입력 디바이스 ID 오더(FC=26)를 위해, 채널 어드레스의 6 하위 바트는 LAC에 의해 다음과 같은 2개의 필드 즉, 어댑터의 도오터 보드 위치를 규정하는 상위 2비트 및 어댑터(216)-(219)에 관련된 서브채널을 규정하는 하위 4비트로 이루어지는 것으로 취급된다. 입력 디바이스 ID 오더에 대한 채널번호 부호화는 10 비트 0-9를 갖는 포맷을 활용함으로써 달성된다. LAC 보드 어드레스는 최초의 4비트내에 위치된 코드에 의해서 식별되고, 어댑터 위치는 비트 위치 4-5 내의 2비트를 갖는 코드에 의해서 식별되며, 마지막으로 어댑터상의 서브 채널은 비트 위치 6-9내의 4비트에 의해서 식별된다.
[데이타 전송]
LAC의 설계시 가장 중요한 문제점중의 하나는 시스템에 어떠한 유형의 LAN 접속이 이루어지느냐에 관계없이 LAC내에 변경되지 않는 상주 통신 계층 소프트웨어를 갖도록 하느냐 하는 것이었다. 따라서, 레벨 6 메가버스 측과 LAN 인터페이스 측으로부터 상주 소프트웨어를 격리시킬 필요가 있었다. 이와 같이 하고, 또한 LAN과 레벨 6 사이에 통신 및 LAC 콘트롤러 자체내의 통신을 유지시키도록 선택된 하드웨어가 제8도와 제9도 및 제10도 내지 제13도에 전형적으로 도시된 LAC제어블럭이다.
우선 제8도를 참조로하면, 주 메모리로부터 LAC 소프트웨어를 로드/덤프하고, 주메모리내에 LAC RAM(202)의 각종 부분을 덤프하며, LAC로 부터 특정 배열의 정보를 수신하기 위한 LAC 제어 블럭이 도시되어 있다. 그 동작은 전술한 출력 LCB 포인터 IOLD를 통해 개시된다. 제8도의 LAC 제어 블럭의 포맷은 16비트 크기의 워드를 갖는데, 제1 워드(801)는, 그 최초의 6비트가 다음의 하드웨어 사용(RHU)을 위해 보존되고, 다음의 4비트는 자체적으로 로드/덤프 오더를 발생한 CPU(214a),(214b)의 채널번호의 최하위 4비트를 지시하도록 분할된다. CPU의 채널번호중 나머지 상위 비트들은 항상 0이므로, 단지 최하위 4비트만이 제공된다. 워드(801)의 그 다음 6비트는 CPU에 의해 인터럽트가 수신될 때 그 CPU가 활용되도록 하는 64 인터럽트 레벨중의 한 레벨을 지시한다.
워드(802)는 지속적으로 수행될 수 있는 단지 3가지의 기증중 하나의 기능을 규정한다. 즉, 워드(802)는 CPU내의 주 메모리(215)에 대해 LAC RAM(202)의 내용을 저장할 것인지 또는 전송할 것인지의 동작을 규정하거나, DPS6메모리로 부터 LAC와 RAM이 로드되는 곳을 규정한다. 제3의 동작은 LAC RAM으로 부터 얻어진 배열 정보를 DPS6 메모리에 저장시키는 것이다.
어드레스 워드(803) 및 (804)는 레벨 6 메모리 어드레스의 상위 및 하위 어드레스 부분들을 데이타가 전달되는 곳으로 또 데이타가 전달되는 곳으로 부터 기억한다.
전송워드(805)의 범위는 LAC와 주 메모리간에 전송되는 정보를 바이트의 수로서 정의하는 전송 범위이다.
LAC RAM 어드레스 워드(806) 및 (807)는 데이타가 이동되는 곳으로 또 데이타가 이동되는 곳으로 부터 LAC RAM(202)내의 어드레스의 상위 및 하위 부분을 지시한다. 판독 배열 형태의 정보인 경우에, 그 특정의 정보는 배열 정보가 지시된다는 사실로 강조된다. RSU 워드(808)는 필요해지는 소프트웨어 사용을 위해 보존된다.
상태 워드(809)는 전송 동작의 완료시 CPU에 전달된 정보를 취급하는 상태를 나타낸다. 상태 워드(809)내에 어떤 문제나 동작 종료 상태가 나타나면, 그 동작은 종료한다. 그렇지만, 전송에 아무런 문제도 없으면, 상태 워드는 모두 0으로 된다. 문제가 있는 경우에는, 상태 워드의 상위 워드의 상위 8비트가 모두 0으로되어야 한다. 비유효 비트인 다음의 비트는 요구가 다소 타당치 않음을 나타내고, 또한 사용된 로드/덤프 기능 코드가 정의된 코드 이외의 코드일 가능성이 있음을 나타내기 위해 사용된다. 예를 들어, 다음의 비트는 메모리 소모 MEMEXH이고, 하나 이상의 로드/덤프 기능이 발생되었음을 나타낸다. 즉, 콘트롤러는 이와 같은 기능을 한번에 하나씩만을 취급할 수 있기 때문에, 모든 기능을 한꺼번에 취급할 수는 없다. 워드(809)의 그 다음 비트 RAMNE는 워드(806),(807)내에서 정의된 어드레스가 LAC RAM내에 존재하지 않는 메모리 색선을 지시함을 나타내는 RAM 비소모 비트이다. 따라서, 이 비트는 이와 같은 곤란성 때문에 전송이 완료되지 못하였음을 나타낸다. 그 다음 비트 RAMP는 LAC RAM(202)을 판독하고 정보를 CPU메모리(215)로 전송하는 처리 동안에 패리티 에러가 있었음을 나타낸다. 상태 워드(809)의 MY 비트는 메모리의 엘로우 상태를 나타내는 것으로서, 레벨 6으로부터 LAC RAM으로의 정보 전송중에 데이타 판독에서 에러가 발생하였지만, 그 에러는 보정가능한 것이고, 따라서 데이타가 LAC로 전달 되었음을 나타낸다. 이것은 레벨 6 메모리에 무엇인가 약점이 있다는 것을 표시해준다.
다음 비트 NEM은 비상주 레벨 6 메모리에 대한 약성어로서 워드(803),(804)에 의해 형성된 어드레스를 활용함으로써 비상주 레벨 6 메모리(215)의 단편이 어드레스 되었음을 나타낸다. L6B 비트는 레벨 6 메모리로부터 LAC으로의 정보 전송중에 발생된 제벨 6 버스 패리티 에러를 나타내고, 그 에러가 레벨 6 메가버스(216)를 따른 어느 곳인가에서 발생되었음을 나타내며, LAC RAM(202)내에 배치된 데이타가 그 내부에 에러를 갖고 있음을 나타낸다. 워드(809)의 최종 비트 MR는 메모리의 레드 상태에 대한 약성어로서, LAC 메모리에 대한 레벨 6 메모리의 전송시 메벨 6 메모리에서 판독된 정보가 부정확하고, 정확한 하드웨어로서도 보정되지 않으며, 따라서, LAC RAM으로 전달된 정보가 부정확한 것임을 나타낸다. MBZ 워드(810)는 그 내부의 모든 비트가 0이어야 하고, 다음의 사용을 위한 워드이다. 마지막으로, 완료 워드(811)는 동작 완료시 LAC 콘트롤러에 의해 세트되는 상태 완료 비트 SC를 가지며, 레벨 6 소프트웨어에 대해 워드(809)로서의 어떠한 상태도 동작의 완료상태를 나타낸다는 것을 지시하기 위해 사용된다.
다음에 제9도를 참조로하면, 전술한 I/O 개시 오더를 위한 다른 LAN 제어 블럭 포맷이 도시되어 있다. 워드(901)는 16비트 워드로서, 그중 상위 6 비트는 하드웨어 사용(RSU)를 위해 다시 보존되고, 통상 모든 비트는 0이다. 다음의 4비트는 CPU 채널을 식별하고, 오더를 발생하는 CPU의 채널 번호의 최하위 4비트를 지정하며, 또한 I/O 개시 완료시 인터럽트되는 채널 번호이기도 하다. 워드(901)의 레벨번호는 최하위 6비트로서, 동작 완료시 작동되는 CPU내의 64 인터럽트 레벨 중 하나의 레벨을 지시한다.
RSU 워드(902)는 필요에 따라 사용되는 소프트웨어의 공유 영역이다. 워드(902),(904)는 마이크로프로세서 개시 어드레스를 나타내며, 마이크로프로세서는 이 워드들을 통해 특정 프로그램의 실행을 개시한다. 일반적으로 마이크로프로세서가 개시되기 전에, 제8도를 참조로하여 앞에서 설명한 로드 동작에 의해 마이크로프로세서의 메모리(202)가 로드될 것이고, 따라서 이 오더의 목적은 마이크로프로세서에 로드된 코드에 실행 개시를 알리기 위한 것이다. RSU 워드(905)는 장래의 소프트웨어 사용을 위해 보존된 다른 워드이다. MBZ 워드(906),(907)는 그 모든 비트가 0이어야 하는 워드들이다. MBZ 워드(908)는 마이크로프로세서(201)의 개시 동작 종료시 그 마이크로프로세서에 의해 로드되는 상태 완료 비트(SC)를 가지며, 중앙 프로세서가 인터럽트될때 그 중앙 프로세서로 I/O 개시 오더가 정확히 완료되었음을 지시한다. MBZ 워드(908)의 나머지는 모두 0이다.
다음에 제10도를 참조로 하면, LAC 내에 위치된 메모리와 레벨 6내에 위치된 메모리간에, 즉 RAM(202)으로부터 RAM(215)으로 전술한 LAN 제어 블럭과 같은 데이타 블럭을 이동시키기 위한 DMA 동작 요구에 대해 활용되는 전형적인 메일박스 메세지가 도시되어 있다. 메세지 헤터(1001)는 보통 요구되는 전송의 종류, 즉, LAN 제어 블럭으로서의 블걱 전송등을 정확히 정의하는 유형 코드를 포함한다. 메세지 헤더는, 비록 제10도에서 그것이 단지 하나의 워드로 이루어진 것처럼 도시되어 있으나, 몇개의 정보 워드로 이루어지는 것이 일반적이다. RHU워드(1002)는 장래의 하드웨어 사용을 위해 보존되고, 장래의 사용을 위해 보존되고, 장래의 사용을 위한 여유공간이다. 블럭 전송과 같은 동작의 완료시, 이와 같은 전송을 요구하고 있는 CPU는 인터럽트되고, 정보가 제공되어야 할 필요가 있다. 워드(1003)는 이와 같은 인터럽트가 요구될때 사용되어야 하는 파라미터들을 규정한다. 그런데, 인터럽트는 워드(1003)의 최하위 6비트로 이루어진 레벨이 모두 0이 아닌 경우에만 전송될 수 있다. LAC 채널 번호는 워드 (1003)의 상위 6비트로 이루어지고, CPU에 의해 LAC에 주어진 오더로 당초에 어드레스된 특정 채널을 위한 인터럽트시에 사용된다. 워드(1003)의 CPU 채널번호는 기본적으로 제8도 및 제9도의 것과 동일하며, 인터럽트될 CPU의 채널 번호를 정의하는 4비트 워드이다. 마지막으로 레벨워드는 인터럽트의 레벨을 정의하는 6비트 워드이다. 복귀메일박스 ID워드(1005) 및 (1006)들은, 수행될 동작을 실제로 요구하고 있는 LAC 내의 메일박스(202a)를 식별하는 것이고, 따라서 동작 자체의 완료시에 통지될 처리를 나타낸다. 상태 워드(1007)는 동작 종료시 메모리 DMA 처리에 의해 복귀된다.
그것의 비트들의 정의는 제8도의 상태워드(809)와 마찬가지이다. 레벨 6메모리 어드레스 어드(1008) 및 (1009)는 전송 및 피전송축의 레벨 6메모리 어드레스의 상위 및 하위 부분을 정의한다. 범위워드(1010)는 동작시 얼마나 많은 워드/바이트가 전송되는지를 정의한다. LAC RAM 어드레스 워드(1011) 및 (1012)는 정보가 얻어지거나 정보가 전달될 LAC RAM 내의 어드레스를 정의한다. RSU 워드(1013)는 장래의 하드 웨어 사용을 위해 보존된다.
다음에 제11도를 참조로 하면, LAN 상의 메세지 송신을 위한 전형적인 데이타 송신 요구로서 어댑터 인터페이스 소프트웨어 처리로 보내지는 메일박스 메세지가 제시되어 있다. 이것은 IEEE 표준 위원회의 인터페이스들을 갖는 각종 유형의 LAN을 취급한다. 메세지 헤더(1101)는, 송신될 메세지의 성질을 정의하는 유형 코드와 같은 수 비트의 정보와, 지역 네트워크를 거쳐 보내지는 데이타가 RAM(202),(214)내에 위치될 장소를 지정하는 버퍼 어드레스 디스크립터로 이루어진다. 하위 8비트로 이루어진 프레임 제어 워드(1102)는 토큰링이나 토큰버스 유형 프레임 내의 프레임 유형을 나타내기 위해 사용된다. RSU 워드(1103)는 소프트웨어 사용을 위해 보존되는 영역이다. 복귀 메일박스 ID 워드(1104), (1105)는 행해질 송신/전송을 요구하고 있는 처리의 메일 박스를 식별하여, 그 처리가 동작 완료시 식별될 수 있도록 하는 메세지를 메일박스내에 저장시킨다.
상태 워드(1106)는 기복적으로 복귀를 원하는 소프트웨어가 어떤 것인지를 결정함에 따라서 정의된다. 유형/데이타 길이 워드(1107)는 CSMA/CD 및 이더네트 프레임 내에서 사용된다. 이더네트 유형 LAN이 LAC에 결합된 경우, 이 유형, 데이타 길이 워드는 프레임의 길이를 지시하고, 반면에 CSMA/CD 유형 LAN이 LAC에 결합된 경우에는 사용중인 IEEE 802.3 프레임을 나타낸다. 수신지 어드레스 워드(1108)는 메세지가 보낼질 스테이션 어드레스를 정의한다. 마지막으로 RSU 워드(1109)는 소프트웨어 사용을 위해 보존되는 영역이다.
다음에 제12도 및 제13도를 참조로 하면, I/O 오더 일시 대기 영역으로서 할당되는 RAM 메모리의 위치 및 레이아웃이 도시되어 있다. 제12도는 바이트 어드레스 800400-800700으로 위치되어 1301-1304의 변호가 부여된 각각의 대기 영역을 나타낸다. 제13도는 임의의 대기 영역내의 전형적인 엔트리를 나타낸다. 워드(1201)는 일시 저장될 채널번호를 나타내고, 반면에 어드레스 워드(1202),(1203)는 주 메모리내에 전송될 정보의 상위 및 하위 어드레스를 나타낸다. 범위 워드(1204)는 전송될 정보내의 바이트의 수를 나타낸다.
[인터페이스(IF) 소프트웨어]
제14도 내지 제18도는 각종 IF 소프트웨어 처리 및 인터펍트 루틴의 고레벨 기능 신뢰성을 보다 상세히 도시한 일련의 플로우 챠트들이다.
우선 제14도를 참조로 하면, LAC 콘트롤러내의 I/O 디스패치 처리에 의해 수행되는 동작들의 플로우 선도가 도시되어 있다. 인터럽트 대기시간(1401)은 이 루우틴에의해서 제공될 수 있는 I/O 오더 인터럽트 전의 마이크로 프로세서 시간량을 나타낸다. LAC 콘크롤러에 의해 I/O 오더가 요구될 때마다, 마이크로프로세서(201)로 하여금 인터럽트를 취급할 수 있도록, 그 마이크로프로세서의 재가동 및 스위치 동작을 위한 시간이 제한된다. MBX blk할당(1402)은, 메세지 블럭을 할당하여 I/O 디스패치 처리로 하여금 LAC 콘트롤러 내의 다른 처리들로 방금 수신된 IOLD 오더에 대한 통지를 하도록, LAC 콘트롤러의 커널 소프트웨어를 호출하는 것이다. 디스패치 처리에 의해 수행되는 실제 동작들은 디스패치 테이블 내로의 인덱스(1403)에 의해 정의된다. 디스패치 테이블들은 I/O 오더가 어드레스 되는 채널 번호 뿐만 아니라 전술한 I/O 오더의 일부인 기능 코드에 의해 인텍스 된다. 따라서, 디스패치 처리는 어떤 처리가 통지될 것인지를 찾기 위해 디스패치 테이블을 활용하여 인덱스 할 것이다. 통지될 처리가 전혀 없으면, 명령은 디스패치 메세지(1405)를 수집하고 그 메세지를 다음단계 SENDMSG(1407)로 보냄으로써 메가버스 계층관리로 디스패치된다. I/O 오더는 다음에 계층관리 처리로 보내진다. 이 계층 관리 처리는 I/O 오더로 무엇을 할것인지를 결정하는데 신회성을 갖는다. 유효한 메일박스 ID가 (1404)에서 발견되었다고 가정하면, 처리는 디스패치 메세지 수집(1406)으로 보내진다.
여기서, 수집된 디스패치 메세지는 IOLD 정보를 포함하고, 그 메세지는 SENDMSG(1408)를 거쳐 그 메세지를 취급하게될 특정의 처리로 보내진다. 통상적인 DMA 메세지의 경우, 그 메세지는 그것이 입력 동작을 위한 I/O 오더인지 또는 출력 동작을 위한 I/O 오더 인지에 따라 통상 전송/송신처리나 전송/수신처리로 보내지다. 이 처리가 진행중인 동안 대기(queue)(1409)내에 더 이상의 엔트리가 존재하는 경우등과 같이 수신된 오더가 더 있을 경우에는 디스패치 처리는 MBX blk할당(1402)으로 루우프 백되고 다음 오더에 대한 처리를 반복한다. 대기(1409)내에 더 이상의 엔트리가 없는 경우에는, 디스패치 처리는 (1410)으로 배출된다.
다음에 제15도 및 제16도를 참조로 하면, LAC 콘트롤러 상에서 진행하는 DMA 처리의 플로우 선도가 도시되어 있다. 이 처리는 실제로 두부분으로 나누어진다. 그 일부분은 제15도에 도시된 바와 같이 DMA 동작 완료시 인터럽트 상에서 진행하는 메모리 DMA 처리 부분이고, 다른 부분은 제16도에 도시된 바와 같이 메일박스(202a)가 어떤 요구를 수신했는지의 여부에 따라 진행하는 처리 부분이다.
먼저 제16도를 참조로 하면, LAC 콘트롤러내의 처리들중 어느 하나의 처리로부터 메모리 DMA 동작에 대한 요구가 수신될 때 그 동작이 시작된다. 이 처리의 진행 개시를 위해서는, 우선 소프트웨어 내용 변경(1601)이 필요하다. 다음에 입력하는 메일박스내에 임의의 요구가 존재하는지를 결정하도록 커널 소프트웨어 호출 BRECV(1602)가 이루어진다. 어떤 동작 수행을 위한 처리 요구가 존재하지 않으면, 그 처리는 진행하지 못하여 BRECV 명령(1602)에 앞서 처리되지 못할 것이다. 어떤 동작을 위한 처리 요구가 존재하는 경우에는, O.S.커널에 대한 호출에 의해 시마포어 검사 SEMAWAIT(1603)가 이루어져서, 모든 시마포어를 유지시키고 인터럽트 처리로 하여금 그 인터럽트 처리가 DMA 콘트롤러를 염두에 둔 다른 어떤 동작도 수행하고 있지 않음을 확실히 하도록, 즉 DMA 동작이 이미 언더웨이 상태임을 확실히 하도록 하다. 현재의 DMA 동작이 언더 상태이지 않은 경우에는, 그 처리는 스텝(1604)로 보내질 것이고, 여기서, 메가버스 레지스터와 DMA 콘크롤러에 DMA 전송을 수행하는데 필요한 정보를 로드한다. 이 로드 동작이 완료되면, 처리는 스텝(1603)에서 앞서 검사된 시마포어의 시마포어 비트 SEMAWIT(1605)(O.S.커널에 대한 호출에 의함)을 세트하고, 시마포어 비트가 세트중인 동안에는 더이상의 어떠한 DAM 동작도 수행되지 않도록 한다. 스텝(1606)에서는, 플래그가 검사되어 완료된 동작에 대해 요구된 어떤 인터럽트가 CPU에 의해 수신되기를 기다린다(즉, ‘펜딩’상태). 펜딩 상태가 아닌 경우에는 그 동작이 요구되는 처리로 복귀 메일박스 메세지가 보내진다.
MSG 전달 MBX 복귀 단계(1607)에서, 복귀 메세지는 완료된 DMA 동작을 위해 전달된다(막 개시중인 특정의 DMA 동작을 위한 복귀가 아니다.) 다음에 소프트웨어는 BRECV(1602)로 루우프 백되고, 어떤 동작을 수행하기 위한 처리 요구가 존재하지 않으면 그 진행을 중지한다. 다른 요구가 대기중이면, 동작이 개시되었을때, 스텝 (1605)에서 막 세트된 시마포어인 SEMAWAIT(1603)상에서 진행을 중지한다. 특정의 DMA 동작이 완료되었을 때, 처리 흐름은 제15도로 절환한다. 인터럽트가 인지되어 진행을 개시하기 전에 다시 한번 인터럽트 대기 시간(1501)이 존재한다.ㅣ 일단 처리가 개시되면, 그 처리가 레벨 6와 LAC 콘트롤러 사이에서 스캐터/게더 유형 데이타 전송을 취급할 수 있는지를 결정하기 위한 테스트(1502)가 이루어진다. 스캐터/개더 유형 동작인 경우, 그 동작은 스텝(1503), (1507) 및 (1511)을 통해 처리되어, 그 처리가 필요에 따라 부가되는 전송의 스캐터/개터 동작과 통신할 수 있도록 DMA 콘트롤러가 셋업된다. 하나의 전송만이 이루어져야 할 경우에는, 어떠한 스캐터/개더 유형 데이타 전송도 존재하지 않기 때문에, 처리가 에러 검색(1504)으로 진행하여, 패리티 에러나 비존재 메모리와 같은 에러가 존재하고 있는지를 결정한다. 에러가 존재하고 있는 경우에는, 발생된 에러의 유형에 따라 상태 메세지(1505)가 수집된다. 메세지가 요구중인 처리로 복귀될 수 있도록 플래그가 세트(1508)된다(이 플래그는 스텝(1606)에서 참조된 플래그와 동일한 것이다). 스텝(1603)에서 참조된 시마포어가 이제 스텝(1509)에서 해제되어, 처리의 제2부분이 진행될 수 있도록 하고, 다음 동작을 취급할 수 도록 하며, 스텝(1512)상에서 배출된다.
스텝(1504)에서 어떠한 에러도 존재하지 않으면,스텝(1506)에서,동작의 완료시 레벨 6이 처리되어야 하는지의 여부를 결정하기 위한 검색이 이루어진다(그결정은 앞서 언급한 바와 같이 DMA요구내에 인터럽트에 대한요구가 존재함을 나타내는 레벨코드를 갖도록 함으로써 결정된다.)어떠한 에러도 존재하지 않는 경우,스텝(1510)에서,에러없이 DMA동작이 종료된 레벨 6시스템을 나타내기 위하여 레벨 6에대한 인터럽트가 수행(또는시도)될 것이다.동작중에 에러가 존재하고 있는 경우에는 인터럽트가 시도되지않는다. 그대신, 상태 메세지(1505)가 요구중인 처리로 보내져서,동작중에 에러가 존재하고 있음을 나타내도록 한다.
다음에 제17도를 참조로하면,LAC콘트롤러를 인터럽트하기 위한 어댑터 인터럽트 루우틴의 플로우 선도가 도시되어 있다.이플로우는 어댑터(216)-(219)중위 하나가 LAC 콘트롤러로 어떤동작을 완료했음을 나타내거나, 다소 비통상적인 동작이 발생되었음을 나타내거나, 또는 이와관련하여 어떤 소프트웨어 처리를 통지하고자 하는 인터럽트를 보냈을때, LAC콘트롤에 의해 가동된다. 따라서, 스텝(1701), (1702), (1703), (1705) 및 (1704)로 이루어진 루우프내에 어댑터주에 어떤것이 인터럽트를 행하고 있는지를 결정하는 인터럽트 소프트웨어 루우프가 존재한다.가능한 4개의 어댑터 모두로부터의 인터럽트들은 단일 와이어상에 함께 결합되기 때문에, 소프트웨어는 인터럽트를 요구하고있는지의 여부에 따라서 각 어댑터에 대해 질문을 한다. 따라서,그 루우프는 각 어댑터의 순차적인 테스트를 나타내며, 어느 어댑터가 인터럽트를 요구했는지를 결정하게 된다. 인터럽트가 이루어진 특정 어댑터가 결정되면, 인터럽트 루우틴은 스텝(1706), (1707), (1708)으로 분기되고, 인터럽트에 대한 이유에 의존하는 메세지를 구성한다. SENDMSG MAC TX(1707)에서, 메세지는 방금 송신 요구를 종료한 어댑터로부터 전달된다. SENDMSG MAC TX(1708)는,어댑터가 LAN으로부터 입력하는 메세지를 수신하였고, 그에따라 그 어댑터가 특정 상황을 취급하도록 메일박스 메세지를 전달하고자 한다는 사실을 나타낸다. SENDMSG MAC N LM(1706)을 사고 발생및 그사고를 취급하기 위한 MAC 계층 관리 처리로의 메일박스 메세지의 전달을 나타낸다. 마지막으로, 메세지 전달이 완료한 후에 인터럽트 루우틴은 단계 (1709)에서 배출된다.
다음에 제18도를 참조로 하면, 일부 어댑터 MAC처리 및 특정 어댑터에 대한 3가지의 상이한 MAC 처리흐름을 도시한것이다. 이 처리는 모든 메일박스 메세지를 수신하거나,그처리를 수신하도록 내용을 절환하는 내용절환(1801)을 통해 일단 개시된다. BRECV MAC LM(1802).BRECV MAC RX(1803) 또는 BRECV MAC TX(1804)처리들주의 하나는, 제17도에 도시한 어댑터 인터럽트 처리로부터 그메일박스내의 메일박스 메세지를 수신할때 가동될 것이다. 메세지의 수신시 이러한 처리들중 단자 하나의 처리만이 가동된다. MAC 계층관리(1802),(1805)는 가동시, 환경에 따라 어떤동작, 예를 들면, 메세지를 보내거나 단순히 어댑터 자체를 리세트 시킴으로써 스테이션 관리 처리를 통지하는 등의 동작을 취한다.메세지가 BRECV MAC RX(1803)에 수신되면, MAC 어댑터가 메세지를 취급하는데 사용했던 처리는 버퍼(1806)로 대치된다.어댑터는 내부에 데이타를 배치하기 위한 소정갯수의 버퍼를 가질수 있으며,입력하는 메세지를 위해 사용되었던 버퍼들은 그 어댑터가 장래의 메세지를 준비할수 있게 하기 위해 대치되어야 한다. 이처리가 일단 완수되면, 처리는 메세지나 어댑터내에 에러가 존재하는지의 여부를 결정(1808)한다. 에러가 존재하면,메세지는 디스카드(1811)된다.어떠한 에러도 존재하지 않으면,처리는 이메세지를 장래의 취급을 위한 논리적 링크 제어 계층 소프트웨어 처리로 전달하기 위한 대비책으로서 MAC 헤더를 추출(1814)한다. (그것은(301)내의 CS소프트웨어 처리의 일종이다.) 할당 스텝(1815)에서, 메모리의 블럭의 메일박스 메세지를 셋업하기 위해 할당된다. 다음에, 그 메세지는 스텝(1816)에서 수집되고, 스텝(1818)상에서 논리적 링크 제어처리로 전달된다. 스텝(1819) 및 (1820)에서, MAC 처리는 필요한 경우, 즉 어댑터에 대한 버퍼들의 대치필요 가능성에 따라 여분의 버퍼를 얻는다.
송신 동작이 수행중이면, 메세지는 송신동작의 완료를 나타내는 BRECV MAC TX(1804)에 의해 수신된다. 메세지는 그것이 어떠한 유형의 메세지인지, 즉 동작완료를 나타내는 어댑터 인터럽트 루우틴으로부터 수신된 메세지인지 또는 그 메세지의 송신을 요구하는 링트 계층 제어(LLC)로부터 수신된 메세지인지를 결정하기위해 조사된다. 메세지가 하나의 동작을 완료했다고 가정하면, 완료 복귀 메세지가 스텝(1810)내에 수집되고, 스텝(1813)에서 LLC로 전달된다. 이처리가 일단 행해진후, 그 처리는 다음에 그것의 대기(1824)스텝에서 송신할 메세지가 더이상 존재하는지의 여부를 결정한다. 추가의 메세지가 존재하면, 처리는 스텝(1825)으로 진행해서, 대기중인 메세지를 송신할 수 있도록 어댑터로 요구가 발생된다. 스텝(1824)에서, 대기 영역내에 대기중인 메세지가 존재하지 않는 것으로 결정되면, 단순히 어댑터는 더이상 비지상태가 아니고, BRECV MAC TX(1804)로부터 메일박스를 수신하기 위한 루우프 백이 존재함을 나타내는 어댑터대기 비트가 세트(1826)된다. 한편, LLC로부터 송신요구가 송신되면, 송신할 MAC의 소오스 어드레스를 정의하는데 필요한 헤더들이 스텝(1809)내에서 가산되고,스텝(1812)에서 어댑터 대기 비트가 검사되어, 그 어댑터가 아무것도 행하고 있지 않는 동안에 요구가 도착했는지의 여부를 결정한다. 어댑터가 어떤 처리를 대기하고 있는 상황에서, 그 처리는 스텝(1821)으로 진행되고, 어댑터로 즉시 송신요구를 전달하며, 어댑터 대기 비트를 리세트(1823)하여, 그 어댑터가 현지 비지 상태임을 나타낸다. 한편, 스텝(1812)에서, 어댑터가 이미 어떤 처리를 행하고 있는 비지 상태일때 요구가 도달된것으로 결정되면, 그요구는 어댑터의 대기(1827)스텝에 부가된다.
다음에 제19도를 참조로하면, LAC 송신 플로우가 도시되어 있다.스텝1에서, CPU(214a/b)내의 LAC구동기 소프트웨어는 IORB(1903)내의 정보를 통해 메모리 내의 LCB(1902)를 셋업한다. LCB는 요구된 처리 및 기능과 피라미터들을 정의하는 정보를 포함할 것이고, 또한 전달될 데이타를 포함하는 데이타내의 버퍼를 정의하기위한 물리적 어드레스 및 범위도 포함한다. LCB는 또한 LAC로부터의 복귀상태를 위한 공간도 포함한다.
스텝 2에서, LAC 구동기 (1901)는 LACS로 입/출력 로드오더(IOLD)를 발생시킨다. 오더로 주어진 어드레스는 LCB 및 두 피일드 ,즉 기능코드 피일드인 상위 8비트와 LCB의 크기를 정의하는 하위 8비트를 포함하는 "범위" 피라미터를 지시한다. IOLD정보는 메가버스(216)에 의해 취해지고,LAC하드웨어 DMA콘트롤러에 의해 일시 대기영역(1902)내에 배치된다. 이것은 인터럽트를 유발하여 I/O 디스패치 처리 (IODISP)를 요구하고, 그에 따라 오더를 검사하여 IOLD가 유효한 것으로 결정된 경우,디스패치 테이블을 참조하도록 하기 위하여 채널 번호를 사용하고, 장래의 처리를 위한 오더가 루우트 되는 곳을 결정한다. 이 경우 루우틴은 RAM의 블럭을 얻고(할당호출을 통해), LCB 포인터 IOLD 정보를 블럭내에 배치시키며, 그것을(SENDMSG 호출을 통해) CS 처리 메일박스로 보낸다. LSB포인터 IOLD정보메세지 블럭의 포오맷은 전술한 바 있다. 일시 대기중인 추가의 I/O 오데가 존재하면, I/O 디스패치 처리는 그들로 취급할 것이다. I/O 디스패치처리에 의해 얻어진 모든 메세지 블럭은 다른 어떤 처리(예를들면,스텝12)에 의해 독립 메모리로 복귀되어야 한다.
스텝 3에서는,CS처리(1905)가 OS에 어드레스된 메일박스 메세지 때문에 OS에 의해 실행되도록 스케줄 된다. 즉 그처리는 메일박스 메세지를 회복시키고, LCB화상 (LCBI)(1907)을 위한 RAM의 블럭을 고정한 후에, LCB의 DMA를 요구하는 메모리 DMA 요구처리(1906)의 메일박스에 대한 메세지를 LCB의 DMA의 요구하는 메모리 LCBI 내에 전달하도록 한다. CS처리(1905)는, 당분간 아무처리도 할 필요가 없으면,그 상태를 유지한다.
스텝 4에서, 메모리 DMA요구처리(1906)는 DMA 콘트롤러 하여금 LCB (1902)를 LCBI(1907)내에 복제하도록 한다. 그 동작의 완료시 DMA콘트롤러는 마이크로프로세서(201)를 인터럽트하고 이것은 메모리 DMA 처리가 다시 호출되도록 한다. 이 처리는 CS처리에 의해 전달된 메세지 블럭내의 상태정보를 배치 시키고, 다음에 그 블럭을(SENDMSG 호출을 통해)규정된 복귀 메일박스로 복귀시킨다. 스텝 3에서 CS처리에의한 블럭의 RSU 피일드 내에 애초부터 배치되었던 정보는 완료된 특정 DMA 동작을 식별할 수 있도록 한다.
스텝 5에서, CS처리는 스텝 4의 메일박스 메세지에 응답한다. LCBI의 검색 및 L6 버퍼의 전체 범위의 계산을 행한후에, 그 처리는 데이타 메세지를 홀드하기에 충분할 정도로 큰 RAM 버퍼를 얻기 위한 GETBUF 호출을 수행하고, RAM 내에서 데이타가 주 메모리로부터 이 버퍼로 이동되도록 메모리 DMA 처리로 메일박스 메세지를 전달한다. 전형적인 메세지 블럭의 포멧은 제10도 및 제11도에 도시되어 있다. LB버퍼 리스트는 LCBI(1907)에서 얻어지고, 레벨 피일드는 0 이어야 한다.
스텝 6에서, 메모리 DMA처리는 DMA 콘트롤로(208)로 하여금 주 메모리로 부터의 데이타를 RAM 버퍼(209)에 복재하도록 한다. 이 처리는 필요에 따라, 주 메모리와 관련하여 "개더"유형 DMA를 지원한다. LAC RAM 과 관련하여서는, DMA는 논리적으로 단일의 버퍼상에서 항상 수행된다. DMA의 완료시, 메모리 DMA 처리가 재호출되어,메세지 블럭내에 상태를 배치시키고, 그것을(CS처리의) 규정된 복귀 메일박스로 복귀시킨다.
스텝 7에서, CS처리는 스텝 6의 메일박스 메세지에 응답한다. 이처리는 메모리 DMA 처리(1906)로 메일박스 메세지를 전달해서, 메모리내의 LCB(1902)내에 상태 완료를 세트시키고, CPU(214a/b)를 인터럽트 시킨다. 얼마후에, LACS 구동기는 IORB(1903)내로 완료를 통지한다. 메세지가 IEEE02유형 LAN을 통해 전달되는 경우, CS처리는 헤더 피일드를 만들어 내야하고, 이것을 서두 정보로하여 RMA버퍼(209)에 부가하여야 한다. CS처리는 또한 버퍼의 시초에 MAC처리가 그 헤더들을 서두화 하도록 하기 위한 별도의 공간을 남겨야 한다. CS LLC처리는 메일박스 메세지(1908)를 수집해서, 그것(1909)을 적절한 MAC 처리로 전달한다.
스텝 8에서, MAC 송신처리는 취급될 최우선 순위 요구들이 존재하는 경우에 요구를 일시 대기시킨다. 그 처리는 가능한한 빨리 그 요구를 어댑터(216)-(219)에 전달한다. 어댑터는 메세지 프레임(SA 및 FC)의 서두화를 완료하고,매체 억세스가 허용될때, 정확히 포맷된 프레임(서문,한계 및 FCS를 포함함)을 어댑터의 물리적 계층 설비를 통해 LAN으로 전달한다. 송신이 완료되면, 어댑터의 DMA콘트롤러는 LAC의 마이크로 프로세서(201)로 인터럽트를 전달한다.
스텝 9에서, 어댑터 인터럽트 루우틴은 어댑터로 부터의 최종 상태를 페치하는 MAC 송신처리를 호출한다. MAC 송신처리는 RAM 버퍼를 해체한다.(FREEBUF 호출) 다른 송신 요구가 존재하고 있으면, 그 처리는 앞서의 요구를 어댑터로 전달한다.
제19도에서는 비록 송신플로우만이 설명되었고, 편의상 단일의 플로우를 제공하였으나, 실제로는 각 스테이지에서 순간적으로 처리되는 다중의 플로우가 존재하게 된다. 각 소프트웨어 처리는 자체의 모든 업무를 완수하고자 가입되기 때문에, 가능하면, 마이크로프로세서를 순환 폐기하기전에, 송신되는 메세지마다에 수행되는 각종 내용절환은 단일 메세지 취급을 고려할 때보다 덜 복잡하다. 수신된 메세지의 처리를 위해서는, 메세지가 LAN으로 부터 수신될때만 버퍼를 할당하고자 하는지 또는 입력하는 모든 메세지의 수신시 버퍼를 할당하고자 하는지에 따라 2개의 기구중 하나의 기구가 사용될수 있다. 전자, 즉 판독-통지의 경우 2개의 IOLD가 발생되어야 하고, 각 메세지에 대한 2개의 인터럽트가 CPU 로 보내져야 한다. 후자의 경우에는, 버퍼들이 한꺼번에 메세지를 대기하고 있기 때문에 주 메모리 공간이 필요하게된다.
CS소프트웨어처리, IF소프트웨어처리, 하드웨어 인터럽트 및 인터럽트 펌웨어의 트랙잭션들은 유사하기 때문에, 수신 플로우는 송신플로우의 설명에서 처럼 상세히 설명하지는 않겠다.
수신 동작의 경우에는, 송신 동작의 경우에서처럼 메모리 관리로부터 데이타 버퍼를 요구하기 위한 CS소프트웨어가 필요하지않다. 그대신 IF 소프트웨어 MAC 처리가 각 어댑터에 대해 몇개의 논리적 버퍼를 자동적으로 활용 가능하게 한다. 그 각각은 가능한한 최대의 메세지를 홀드하기에 충분한 크기를 갖는다. 유효한 메세지가 수신된후에 MAC 처리의 데이타지시 루우틴이 버퍼를 통과하여 적절한 CS처리로 전달된다.
제20도에 도시된 바와 같은 판독-통지의 경우에, CPU 소프트웨어는 "판독-통지 "LCB(2002)라고 부르는 일련의 LCB를 출력 LCB 포인터 IOLD오더를 통해 LAC로 발생시킨다. 이러한 오더들을 CPU소프트웨어로 하여금 메세지의 도착을 통지하도록 하기 위한 CS소프트웨어가 사용되는 LCB 를 제공한다. 이 수단에 의해 메세지 도착이 지시되었을때, CPU소프트웨어는 판독메세지 명령을 발생시켜서 주 메모리내에 그메세지가 배치될 곳을 규정하고, 또한, 사용된 판독-통지 LCB를 대치시키기 위한 다른 판독-통신 LCB를 일반적으로 발생시킨다. 이기구는 데이타가 직접 적용측의 버퍼에 입력될수 있도록 한다. ICB 자체내의 소프트웨어 정의 지시에 의해 판독-통지 LCB로부터 판독 LCB가 분리된다.
스텝 6에서, CS처리(2006)는 자체의 판독-통지LCB 리스트를 참고하여, 방금 수신된 특정의 메세지가 속하는 LCB가 존재하는지 찾아본다. 그러한 LCB가 존재하지않으면, 그 메세지는 RAM내에 보존된다. (그러나, 적절한 LCB 가 없는 상태에서 어느 정도의 시간이 경과하면,그 처리는 메세지를 강제로 디스카드 하게된다) 통상적인 경우에, CS처리는 메세지 헤더(1001)로부터 정보를 수집해서 그것을 메모리(215) 내의 LCB로 전달하고, 또한 메일박스 메세지 블럭을 수집해서 그것을 메모리 DMA처리 (2007)로 전달한다. 메모리 DMA처리는 판독-통지 LCB(2002)에 대한 이 정보의 DMA를 요구한다. 메세지 블럭에서,CPU 채널 및 인터럽트 레벨 피일드는 당초의 IOLD및 LCB내에 주어진 채널번호와 같은 정보를 반영한다.(제8도참조)
스텝 7에서, DMA 콘트롤러(2007)는 정보를 판독-통지 LCB(2002)로 전달하고 마이크로프로세서(201)를 인터럽트하여,메모리 DMA처리(2007)가 재호출되도록 한다. 이처리는 다음에 요구된 인터럽트를 CPU로 보내고, 이것이 완수되면, 스텝 6의 메세지 블럭을 복귀 메일박스로 복귀시킨다.(CS 처리)
스텝 8에서, CPU소프트웨어는 인터럽트에 응답하고, IORB들의 리스트를 참고하거나 다른 수단을 이용하여, 주 메모리내에 데이타 메세지가 배치되어야 하는 곳을 결정한다. 다음에, LCB 구동기(2001)는 메모리내에 판독 LCB를 셋업시킨다. 이 LCB는 스텝 6의 시별자를 포함할 것이고(LAC 내의 CS처리가 전달될 메세지를 식별할 수 있도록), 주 메모리 영역을 그것이 배치될 위치로 규정한다.
스텝 9에서, LCA 구동기(2001)는 LCB로 IOLD를 발생시킨다. 통상의 방식으로, IF 소프트웨어는 CS 처리(2006)로 LCB 포인터 정보(2005)를 전달한다.
스텝 10에서, CS 처리는 메모리 DMA 처리를 위한 요구를 발생시켜서, LCB를 RAM 내의 LCBI(2008)내로 복제시킨다.
스텝 12에서, CS 처리는 LCBI를 검색하고, 판독 정보가 포함되었는지를 결정한다. 이 처리는 L6 버퍼의 전체 크기를 계산하고, LCB 상태를 위한 범위 잉여값을 계산하여, LCBI(2008)내에 최종 상태를 배치시킨다. 다음에, 이 처리는 메모리 DMA 처리에 대한 요구를 발생시켜서, 데이타 메세지를 RAM(209)으로부터 주 메모리(215)로 이동시키고, 최종 상태를 LCBI로 부터 LCB로 전달시키며, 또한 CPU를 인터럽트시킨다.
스텝 13에서, DMA 콘트롤러는 DMA 처리의 제어하에 필요한 경우 “스케터” DMA를 수행하면서 데이터(2012)를 버퍼 RAM으로부터 주 메모리로 복제시킨다. 데이타 전송의 완료후에 DMA 처리는 LCBI 상태를 LCB내에 복제시키고 또한 CPU를 인터럽트 시키는 벌럭 전송을 수행한다. 블럭 전송의 완료후에, 메모리 DMA 처리는 메일박스 메세지 블럭을 복귀 메일박스로 복귀시킨다(CS 처리).
스텝 14에서, CS처리는 데이타 버퍼, LCBI 블럭 및 메일 박스 메세지 블럭을 해제시킨다.
이상에서도 편의상 단일의 플로우 취급만을 설명하였으나, 실제로는 각 스테이지에서 순간적으로 다중의 플로우가 처리될 것이다. 각 소프트웨어 처리는 마이크로프로세서를 폐기하기전에, 모든 업무를 완수하도록 기입되기 때문에, 메세지가 수신될 때마다 수행되는 내용 절환회수는 단일의 메세지 플로우를 고려할때의 것보다는 적어질 것이다.
도시하지는 않았으나, 판독 LCB의 경우, CPU는 판독 LCB를 지시하는 IOLD를 발생시키고, 각 판독 LCB는 최대로 가능한 메세지를 홀드하기에 충분할 정도로 큰 시스템 메모리내의 버퍼에 대한 포인터를 포함한다. 데이타 및 최종의 상태가 인도된 이후, 하나의 인터럽트는 CPU로 전달된다.
이상에서는 본 발명의 일 실시예에 대하여 설명하였으나, 당기술분야에서 숙련된자라면 본 발명의 개요 및 원리내에서 본 발명을 여러 유형으로 변형 및 변경할 수 있을 것이다. 따라서, 본 발명은 특허청구의 범위에 기술된 사항만에 의해서 제한될 것이다.

Claims (4)

  1. 공동 버스(216,207,214)에 결합되어 상기 버스를 통해 테이타 및 제어 정보를 송신하는 적어도 한 쌍의 프로세서(214a,214b)와, 상기 버스에 결합된 상기 프로세서들이 동일 유형의 제어 정보를 동시에 발생할 경우 상기 제어 정보의 충돌을 방지하기 위한 장치(208)를 포함하는데, 상기 제어 정보중 어떤 것은 하나의 프로세서에 의해 복수의 부분들로 복수의 각 버스사이클로 송신되는 컴퓨터 시스템에 있어서, 상기 장치(208)는 상기 버스상의 상기 제어 정보의 제1부분의 전송에 응답하여 제1신호(FCO9FF)를 발생하는 기억 엘리먼트(701)와; 상기 제1신호를 수신하도록 결합되고, 상기 제1신호의 발생과 상기 버스상의 상기 제어 정보의 후속하는 제1부분의 전송에 응답하여 제2신호를 발셍하는 논리 엘리먼트(70)와; 상기 제2신호의 발생에 응답하여, 상기 후속하는 제1부분을 전송하는 상기 프로세서에 상기 후속하는 제1부분의 전송이 허용되지 않음을 통지하도록 상기 버스에 공급되는 제3신호(NAK)를 발생하는 회로 엘리먼트(704)를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  2. 제1항에 있어서, 상기 제2신호 부재시 상기 회로 엘리먼트는 제1부분을 전송하는 임의의 프로세서에 상기 제1부분의 전송이 허용되지 않음을 통지하도록 상기 버스에 공급되는 제4신호(ACK)를 발생시키는 것을 특징으로 하는 컴퓨터 시스템.
  3. 제1항에 있어서, 상기 제어정보는 입출력 오더(IOLD)이며, 상기 복수의 부분들은 최소한 각각의 기능코드들인, 어드레스에 관한 제1부분의 기능코드(09)와, 상기 컴퓨터 시스템의 메모리(215)의 범위에 관한 제2부분의 기능코드(OD)를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  4. 제3항에 있어서, 상기 기억 엘리먼트(701)는 상기 제1기능코드의 표시를 기억하는 것을 특징으로 하는 컴퓨터 시스템.
KR1019870008215A 1986-07-28 1987-07-28 다중 중앙 처리 유니트 인터록크 시스템 KR930010915B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US891,090 1978-03-28
US06/891,090 US4835674A (en) 1986-07-28 1986-07-28 Computer network system for multiple processing elements
US891.090 1986-07-28

Publications (2)

Publication Number Publication Date
KR890003159A KR890003159A (ko) 1989-04-13
KR930010915B1 true KR930010915B1 (ko) 1993-11-17

Family

ID=25397600

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019870008215A KR930010915B1 (ko) 1986-07-28 1987-07-28 다중 중앙 처리 유니트 인터록크 시스템

Country Status (12)

Country Link
US (1) US4835674A (ko)
EP (1) EP0255091B1 (ko)
JP (1) JPH084267B2 (ko)
KR (1) KR930010915B1 (ko)
CN (1) CN1007760B (ko)
AU (1) AU601754B2 (ko)
CA (1) CA1288525C (ko)
DE (1) DE3788539T2 (ko)
DK (1) DK393887A (ko)
ES (1) ES2047482T3 (ko)
MX (1) MX169677B (ko)
YU (1) YU142187A (ko)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142683A (en) * 1987-03-09 1992-08-25 Unisys Corporation Intercomputer communication control apparatus and method
US5109515A (en) * 1987-09-28 1992-04-28 At&T Bell Laboratories User and application program transparent resource sharing multiple computer interface architecture with kernel process level transfer of user requested services
US5086426A (en) * 1987-12-23 1992-02-04 Hitachi, Ltd. Communication network system having a plurality of different protocal LAN's
US4977499A (en) * 1988-04-08 1990-12-11 International Business Machines Corp. Method and apparatus for commanding operations on a computer network
EP0379557A4 (en) * 1988-06-20 1992-09-09 United States Department Of Energy Interconnection networks
US5068823A (en) * 1988-07-11 1991-11-26 Star Semiconductor Corporation Programmable integrated circuit using topological and parametric data to selectively connect and configure different high level functional blocks thereof
US5253343A (en) * 1988-08-18 1993-10-12 La Telemecanique Electric Method for the management of a memory of messages in a station of a data transmission network, and station designed for the implementation of the method
US5345587A (en) * 1988-09-14 1994-09-06 Digital Equipment Corporation Extensible entity management system including a dispatching kernel and modules which independently interpret and execute commands
US5056012A (en) * 1988-11-30 1991-10-08 Motorola, Inc. Memory addressable data transfer network
US5210828A (en) * 1988-12-29 1993-05-11 International Business Machines Corporation Multiprocessing system with interprocessor communications facility
US5097410A (en) * 1988-12-30 1992-03-17 International Business Machines Corporation Multimode data system for transferring control and data information in an i/o subsystem
US5109519A (en) * 1989-03-28 1992-04-28 Wang Laboratories, Inc. Local computer participating in mail delivery system abstracts from directory of all eligible mail recipients only served by local computer
US5263137A (en) * 1989-05-12 1993-11-16 Nec Corporation Syntax converting apparatus for decomposing different portions of a data string differently depending on whether a data string is an external type data string
US5123089A (en) * 1989-06-19 1992-06-16 Applied Creative Technology, Inc. Apparatus and protocol for local area network
US5237659A (en) * 1989-07-27 1993-08-17 Bull S.A. Gateway device for connecting a computer bus to a ring network
JPH0366241A (ja) * 1989-08-04 1991-03-20 Matsushita Electric Ind Co Ltd プロパティ管理方法とその装置
US5708810A (en) * 1989-10-10 1998-01-13 Unisys Corporation Image-based document processing system having a platform architecture
US5142624A (en) * 1989-11-08 1992-08-25 Softworx, Inc. Virtual network for personal computers
US5245704A (en) * 1990-03-22 1993-09-14 Square D Company System for sharing data between microprocessor based devices
US5237693A (en) * 1990-04-04 1993-08-17 Sharp Kabushiki Kaisha System for accessing peripheral devices connected in network
US5165024A (en) * 1990-04-12 1992-11-17 Apple Computer, Inc. Information transfer and receiving system with a ring interconnect architecture using voucher and ticket signals
US6324120B2 (en) 1990-04-18 2001-11-27 Rambus Inc. Memory device having a variable data output length
IL96808A (en) 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
US5301303A (en) * 1990-04-23 1994-04-05 Chipcom Corporation Communication system concentrator configurable to different access methods
US5165019A (en) * 1990-05-29 1992-11-17 Apple Computer, Inc. Ring interconnect system architecture
DE69121973T2 (de) * 1990-05-30 1997-01-30 Fujitsu Ltd Verarbeitungssystem zur Ausgabe vom Verwendungsrecht vom Betriebsmittel
US5150464A (en) * 1990-06-06 1992-09-22 Apple Computer, Inc. Local area network device startup process
US5428783A (en) * 1990-11-28 1995-06-27 Motorola, Inc. Lan based loosely coupled large grain parallel processing method
FR2670925B1 (fr) * 1990-12-20 1995-01-27 Bull Sa Architecture informatique distribuee utilisant un reseau local de type csma/cd.
JP2501965B2 (ja) * 1991-02-12 1996-05-29 パイオニア株式会社 デ―タ転送制御装置
US5404461A (en) * 1991-03-29 1995-04-04 International Business Machines Corp. Broadcast/switching apparatus for executing broadcast/multi-cast transfers over unbuffered asynchronous switching networks
US5365228A (en) * 1991-03-29 1994-11-15 International Business Machines Corporation SYNC-NET- a barrier synchronization apparatus for multi-stage networks
US5250943A (en) 1991-03-29 1993-10-05 International Business Machines Corporation GVT-NET--A Global Virtual Time Calculation Apparatus for Multi-Stage Networks
US5343144A (en) * 1991-02-28 1994-08-30 Sony Corporation Electronic device
US5594927A (en) * 1992-01-09 1997-01-14 Digital Equipment Corporation Apparatus and method for aligning data transferred via DMA using a barrel shifter and a buffer comprising of byte-wide, individually addressabe FIFO circuits
GB2264843B (en) * 1992-02-28 1995-09-20 Texas Instruments Ltd An interface device for coupling a host device having a network interface to a computer network having a predetermined communications medium
DE69330981T2 (de) * 1992-04-20 2002-06-27 3Com Corp Vorrichtung zur Netzmittelerweiterung auf entfernte Netzwerke
US5414845A (en) * 1992-06-26 1995-05-09 International Business Machines Corporation Network-based computer system with improved network scheduling system
FR2698464B1 (fr) * 1992-11-24 1997-06-20 Bull Sa Systeme d'appareils distribues en reseau.
US5522069A (en) * 1993-04-30 1996-05-28 Zenith Data Systems Corporation Symmetric multiprocessing system with unified environment and distributed system functions
US5761425A (en) * 1994-12-02 1998-06-02 Compuserve Incorporated System for facilitating data transfers between host computers and workstations by having a first, second and third computer programs communicate in a matching application-level protocol
US5850518A (en) * 1994-12-12 1998-12-15 Northrup; Charles J. Access-method-independent exchange
US5740438A (en) * 1995-03-31 1998-04-14 International Business Machines Corporation Methods and system for network communications of multiple partitions
US5651002A (en) * 1995-07-12 1997-07-22 3Com Corporation Internetworking device with enhanced packet header translation and memory
US5812775A (en) * 1995-07-12 1998-09-22 3Com Corporation Method and apparatus for internetworking buffer management
US5748633A (en) * 1995-07-12 1998-05-05 3Com Corporation Method and apparatus for the concurrent reception and transmission of packets in a communications internetworking device
US5825774A (en) * 1995-07-12 1998-10-20 3Com Corporation Packet characterization using code vectors
US5796944A (en) * 1995-07-12 1998-08-18 3Com Corporation Apparatus and method for processing data frames in an internetworking device
US5764155A (en) * 1996-04-03 1998-06-09 General Electric Company Dynamic data exchange server
US5941972A (en) 1997-12-31 1999-08-24 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
USRE42761E1 (en) 1997-12-31 2011-09-27 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
US6446149B1 (en) * 1998-03-03 2002-09-03 Compaq Information Technologies Group, L.P. Self-modifying synchronization memory address space and protocol for communication between multiple busmasters of a computer system
US7225244B2 (en) * 2000-05-20 2007-05-29 Ciena Corporation Common command interface
US6983362B1 (en) 2000-05-20 2006-01-03 Ciena Corporation Configurable fault recovery policy for a computer system
US6715097B1 (en) 2000-05-20 2004-03-30 Equipe Communications Corporation Hierarchical fault management in computer systems
CN103136159A (zh) * 2011-11-29 2013-06-05 中国航空工业集团公司第六三一研究所 一种用于多处理机系统的控制和信息交互方法
KR20230130954A (ko) 2022-03-04 2023-09-12 김미경 섬유강화복합성형물 제조용 인발성형장치

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4065809A (en) * 1976-05-27 1977-12-27 Tokyo Shibaura Electric Co., Ltd. Multi-processing system for controlling microcomputers and memories
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4336588A (en) * 1977-01-19 1982-06-22 Honeywell Information Systems Inc. Communication line status scan technique for a communications processing system
US4207609A (en) * 1978-05-08 1980-06-10 International Business Machines Corporation Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system
BE881675A (fr) * 1979-02-13 1980-08-12 Leo Pharm Prod Ltd B-lactames derives de l'acide penicillanique leur preparation et leurs utilisations therapeutiques
ZA80646B (en) * 1979-03-05 1981-02-25 Pfizer Process and intermediates for penicillanic acid,1,1-dioxide and esters thereof
US4304001A (en) * 1980-01-24 1981-12-01 Forney Engineering Company Industrial control system with interconnected remotely located computer control units
AU6692281A (en) * 1980-02-07 1981-08-13 Honeywell Information Systems Italia S.P.A. Multiprocessars plus single memory
US4363093A (en) * 1980-03-10 1982-12-07 International Business Machines Corporation Processor intercommunication system
FR2477809B1 (fr) * 1980-03-10 1987-08-21 Jeumont Schneider Systeme de transmission rapide de messages entre calculateurs
AU6785881A (en) * 1980-03-21 1981-10-09 Concurrent Processing Systems Pty. Ltd. Computer system and interface therefor
US4543627A (en) * 1981-12-14 1985-09-24 At&T Bell Laboratories Internal communication arrangement for a multiprocessor system
US4494193A (en) * 1982-09-30 1985-01-15 At&T Bell Laboratories Deadlock detection and resolution scheme
US4574284A (en) * 1983-01-26 1986-03-04 Trw Inc. Communication bus interface unit
SE448919B (sv) * 1983-03-04 1987-03-23 Ibm Svenska Ab Metod for att overfora informationsenheter i ett datornetsystem, samt datornetsystem for genomforande av metoden
US4679191A (en) * 1983-05-04 1987-07-07 Cxc Corporation Variable bandwidth switching system
JPS6090452A (ja) * 1983-07-20 1985-05-21 フエアチアイルド カメラ アンド インストルメント コ−ポレ−シヨン 独立的に操作可能なロ−カルエリアネツトワ−ク
US4593281A (en) * 1983-10-13 1986-06-03 Rockwell International Corporation Local area network interframe delay controller
US4719622A (en) * 1985-03-15 1988-01-12 Wang Laboratories, Inc. System bus means for inter-processor communication
US4730250A (en) * 1985-09-03 1988-03-08 Ncr Corporation Local area network processing system
US4730308A (en) * 1985-10-04 1988-03-08 International Business Machines Corporation Interface between a computer bus and a serial packet link
US4679189A (en) * 1985-11-27 1987-07-07 American Telephone And Telegraph Company Alternate routing arrangement
US4750114A (en) * 1986-07-28 1988-06-07 Honeywell Bull Inc. Local area network control block
US4771286A (en) * 1986-07-28 1988-09-13 Honeywell Bull Inc. Lan controller having split bus design
US4715030A (en) * 1986-08-04 1987-12-22 General Electric Company Local area network bridge

Also Published As

Publication number Publication date
JPH084267B2 (ja) 1996-01-17
DK393887D0 (da) 1987-07-28
MX169677B (es) 1993-07-19
YU142187A (en) 1990-02-28
AU7621387A (en) 1988-02-04
CN1007760B (zh) 1990-04-25
EP0255091A2 (en) 1988-02-03
DK393887A (da) 1988-01-29
EP0255091A3 (en) 1990-02-07
AU601754B2 (en) 1990-09-20
DE3788539D1 (de) 1994-02-03
KR890003159A (ko) 1989-04-13
CA1288525C (en) 1991-09-03
DE3788539T2 (de) 1994-07-28
ES2047482T3 (es) 1994-03-01
CN87106124A (zh) 1988-03-30
JPS6352260A (ja) 1988-03-05
EP0255091B1 (en) 1993-12-22
US4835674A (en) 1989-05-30

Similar Documents

Publication Publication Date Title
KR930010915B1 (ko) 다중 중앙 처리 유니트 인터록크 시스템
KR940000177B1 (ko) 멀티프로세서 인터럽트 선회 기구
US4831620A (en) Controller for controlling multiple LAN types
US4750114A (en) Local area network control block
US4771286A (en) Lan controller having split bus design
JP2889932B2 (ja) 4ポート付きパケットメモリ制御装置を有する二重経路コンピュータ相互接続システム
US5020020A (en) Computer interconnect system with transmit-abort function
US5187780A (en) Dual-path computer interconnect system with zone manager for packet memory
US6978331B1 (en) Synchronization of interrupts with data packets
US7072294B2 (en) Method and apparatus for controlling network data congestion
US7337253B2 (en) Method and system of routing network-based data using frame address notification
US5519883A (en) Interbus interface module
CA2432386A1 (en) Method and apparatus for transferring interrupts from a peripheral device to a host computer system
JPH0644783B2 (ja) アプリケーションプロセッサマイクロプロセッサ(apm)及び当該apmを有するネットワーク
KR930004909B1 (ko) 지역 네트워크 콘트롤러 시스템
US4823124A (en) Lan controller proprietary bus
EP0255090A2 (en) LAN controller proprietary bus
Simoncic et al. Shipnet: A real-time local area network for ships
JPS62181551A (ja) ゲ−トウエイ装置
Morling et al. Design of a high-speed word-switched transport station
JPS635641A (ja) ゲ−トウエイ装置のバツフア管理方法
IE901711A1 (en) Dual-path computer interconnect system with four-ported¹packet memory control

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

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee