KR950002714B1 - 통신 인터페이스 프로토콜 방법 및 장치 - Google Patents

통신 인터페이스 프로토콜 방법 및 장치 Download PDF

Info

Publication number
KR950002714B1
KR950002714B1 KR1019880700564A KR880700564A KR950002714B1 KR 950002714 B1 KR950002714 B1 KR 950002714B1 KR 1019880700564 A KR1019880700564 A KR 1019880700564A KR 880700564 A KR880700564 A KR 880700564A KR 950002714 B1 KR950002714 B1 KR 950002714B1
Authority
KR
South Korea
Prior art keywords
driver
call
information
job
data structure
Prior art date
Application number
KR1019880700564A
Other languages
English (en)
Other versions
KR880701916A (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 KR880701916A publication Critical patent/KR880701916A/ko
Application granted granted Critical
Publication of KR950002714B1 publication Critical patent/KR950002714B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)

Abstract

내용 없음.

Description

통신 인터페이스 프로토콜 방법 및 장치
본 발명은 컴퓨터 시스템에 관한 것으로써, 특히, 입·출력(I/O) 제어 구조와 같은 컴퓨터 시스템의 구조를 제어하고, 통신이 상기 시스템의 제어구조물 사이에 실행되는 방법에 관한 것이다.
발명의 배경
통신 버스는 통상 디스크, 테이프, 프린터 및 다른것과 같은 주변장치를 컴퓨터에 접속하기 위해 사용된다. 종종 여러 제조업자에 의해 제조된 다양한 주변장치의 사용을 위해(통상 여러 컴퓨터중의 소정의 하나는 다른 제조업자에 의해 제조됨), 주변장치를 검퓨터에 접속하기 위한 소정의 버스는 표준화되었다. 상기 표준화된 버스의 한 예는 소형 컴퓨터 시스템 인터페이스(SCSI)버스이다.
컴퓨터가 주변장치와 통신을 하기 위해, 통상 컴퓨터는 주변장치 구동기 또는 목표(target) 구동기로 평명된 제어 메카니즘을 포함한다. 장치 구동기는 디스크나 테이프 같은 장치의 특정한 부분을 제어한다. 이것은 사용자가 컴퓨터 실행을 처리하는 오구자로부터 입·출력 작동을 위한 요구를 수신하고, 원하는 작동을 수행하도록 장치를 위한 필요한 명령을 발생하며, 통신 버스를 통해 명령을 장치에 보내며, 버스를 통해 장치로부터 명령에 대한 응답을 수신하고 요구자에 대한 응답을 반송한다.
장치 구동기는 이것이 위치되는 특정 컴퓨터의 다른 제어 메카니즘의 주변 환경 내에서 작동하며 결과적으르 다른 제어 메카니즘에 인터페이스한다. 상기 제어 메카니즘의 한 에는 SCSl 버스를 컴퓨터의 I/0버스 또는 시스템 버스에 인터페이스하는 하드웨어 장치를 제어하는 호스트 어댑터 구동기이다. 상기 제어 메카니즘은 통상 이들이 장치 구동기에 상호 작용하는 방식처럼 컴퓨터 대 컴퓨터와는 다르다. 결과적으로 주변장치가 포트(port)될 수 있는, 예를 들면, 상기 컴퓨터가 동일한 표준 버스를 사용한다면 변형없이 다수의 다른 컴퓨터에 사용될 수 있는 반면에, 장치 구동기는 장치가 통상 그렇게 포트되지 않으나, 새로운 작동환경에 대해 재설계되거나 변형되야 한다. SCSI버스와 같은 표준버스는 주변장치의 휴대 결여 문제를 해결하는 반면에, 상기 장치에 대한 장치 구동기는 휴대결여 문제를 해결할 수 없다. 게다가, 장치 구동기의 설계는 서로 협력해야 하는 주변환경에 의한 장치 구동기의 요구된 상호작용 때문에 때우 복잡하게 된다. 그러므로, 상기 기술의 문제는 다른 컴퓨터 사이에 주변장치 구동기의 휴대 결여와 간단한 구동기 설계를 지지하기 위한 많은 컴퓨터에 의한 결핍에 있다.
발명의 요약
본 발명은 상기 및 다른 문제점과 종래기술의 불리한 점을 해결하기 위한 것이다. 본 발명에 따라서, 다양한 컴퓨터를 사용하기 위해, 주변장치 구동기에 대해 표준 통신 인터페이스 프로토콜을 분명히한다. 프로토콜은 주변장치 작업의 수행에서 서로 통신하도록 여러 컴퓨터의 장치 구동기와 제어 메카니즘에 의해서 사용된다. 주변장치 구동기는 표준 인터페이스 프로토콜을 제공하는 소정의 컴퓨터 사이에 변형 없이 실제로 포트된다. 이러한 프로토콜은 상기 휴대를 조장하도록 주변장치 작업을 수행하는 방법 및 장치 내에서 사용된다. 게다가 인터페이스 프로트콜은 단순한 구동기 설계를 보조하는데 가장 효과적으로 활용된다.
통신 인터페이스 프로토콜은 장치 작업을 수행하기 위한 컴퓨터와 같은 시스템에서 실시예에서 목표구동기로써 언급된 장치 구동기와 실시예에서 호스트 어댑터와 호스트 어댑터 구동기를 구비하는 인터페이스 장치사이에 사용된다. 상기 시스템은 주변장치, 주변장치를 제어하는 장치 구동기 및 장치를 장치 구동기에 결합하기 위한 인터페이스 장치를 구비한다. 인터페이스 프로토콜은 구동기와 인터페이스 장치에 의한 사용으로 할당된 데이타 구조를 포함한다. 제1예정된 기능 호출은 데이타 구조를 구동기에 할당하기 위한 인터페이스 장치에 대한 장치 구동기에 의해 만들어진다, 제2예정된 기능 호출은 구동기에 의해 데이타 구조 내에 저장된 정보로 제한되는 구변장치 작업의 실행을 위한 인터페이스 장치에 대한 장치 구동기에 의해 만들어진다. 제3기능 호출은 장치 구동기에 대한 인터페이스 장치에 의해 만들어지고, 기능이 구동기에 의해데이타 구조 내에 저장된 정보에 의해 지정될 때마다 호출이다. 상기 기능은 작업의 실행 종료되면 호출된다. 제4예정된 기능 호출은 구동기로부터 데이타 구조를 비할당(deallocation)을 위해 인터페이스 장치에 대한 장치 구동기에 의해 만들어진다.
장치 구동기에 의해 인터페이스 장치에 대한 기능 호출이 표준화되기 때문에, 장치 구동기는 인터페이스 장치가 어떻게 구성되고 서비스를 제공하는 방법에 관계없이 동일한 서비스를 얻기 위하여 인터페이스 장치에 대해 동일한 기능 호출을 만든다. 데이타 구조 할당 및 비할당과 같은 서비스를 제공하는 동안에, 작업실행은 호스트 컴퓨터-종속이며, 새로운 프로토콜하의 상기 서비스를 위한 호출은 호스트 컴퓨터-독립이다. 장치 구동기 사이에 교환되는 데이타와 인터페이스 장치는 예정되고 표준화된 방식으로 데이타 구조를 통해 교환된다. 잇점으로, 기능 호출은 여러 장치 구동기 설계에 맞도록 제한된 고레벨(예를들면, 추출된)호출이며, 복잡하지 않은 방식으로 그렇게되며, 이것에 의해 여러장치 구동기에 통신 인터페이스 프로토콜의 이용을 하게 하고, 구동기 설계자에게 구동기 설계의 편리함을 제공하며, 간단한 구동기 설계를 보조한다. 게다가, 장치 구동기에 대해 인터페이스 장치에 의해 만들어진 기능호출이 장치 구동기에 의해 지정되기 때문에, 구동기 설계의 용이성은 장치 구동기가 인터페이스 장치의 예정된 기능 호출의 제한 내에서 작업을 하도록 만들어지지 않으므로써 더 증가된다. 상기 인터페이스-배치제한의 장치 구동기를 프리함으로써, 구동기 설계는 때우 간단히 된다.
장치 구동기 설계가 실제로 프로토콜의 이용에 의해 호스트 컴퓨터 종속에 프리이기 때문에, 아마도, 주변장치 제조자는 프로토콜을 이용하는 다수의 컴퓨터중 어느 것의 이용을 위해 단일 장치 구동기를 주변장치에 제공한다. 컴퓨터 벤더 또는 사용자는 사용자들이 다수의 컴퓨터중 특정 하나를 사용하는 것이 모든 주변장치에 대해 자신의 장치 구동기를 전개할 필요가 없다.
실시예로, 통신 인터페이스 프로토콜은 작업을 제한하는 어드레스 정보를 번역하기 위해 데이타 구조 정보 내에 저장하도록 인터페이스 장치에 대해 장치 구동기에 의해 만들어지고 구동기에 의해 데이타 구조 내에 저장된 제5에정된 기능 호출을 포함한다. 상기 호출은 어드레싱 시스템에 의해 프로토콜의 이용을 용이하게 하며, 그것이 작동하는 시스템의 어드레스 약속 그 장체에 대해 갖고 있는 장치 구동기를 프리한다.
또한, 상술된 제2기능 호출은 작업이 대기행렬 내에 있는 순서로 실행을 위해 다른 실행안된 작업을 가진 데이타 구조에 의해 제한된 작업을 대기행렬 내에 넣기 위한, 예를들면 대기 행렬내의 위치시키기 위한 호출을 구비한다. 또한, 통신 인터페이스 프로토콜은 데이타 구조(상술된 데이타 구조나 제2데이타 구조)내의 구동기에 의해 저장된 정보로 제한된 대기행렬 내에 있지 않은 작업의 실행을 위해 제5예정된 기능호출을 포함하고, 다른 대기행렬내 작업의 실행 이전에 발생되는 실행을 포함한다.
통신 인터페이스 프로토콜의 상기 능력은 진단 및 유지 목적을 위해 요구될 때 장치에 대한 거의 즉각 억세스를 여전히 허락하는 동안에 주변장치와 통신을 위해 대기행렬 억세스 프로토콜을 이용하는 시스템내 프로토콜의 이용을 하게한다.
청구범위에 청구된 바와같이 본 발명에 따라서, 인터페이스 장치를 통해 주변장치를 제어하기 위한 장치 구동기는 인터페이스 장치와 협력하는 주변장치 작업을 수행하도록 프로토콜의 이용을 만드는 다른 기능소자를 구비한다. 예로써, 주변장치 작업에 대한 데이타 구조의 할당을 위한 인터페이스 장치에 호출을 제공하는 수단, 주변장치 작업을 제한하는 제1정보와 작업의 실행이 종료되면 만들어지는 호출을 지정하는 제2정보 데이타 구조 내에 저장을 위해 데이타 구조의 할당에 응답하는 수단, 주변장치와 협력하여, 제1정보에 의해 제한된 작업의 실행을 위해 인터페이스 장치에 제2호출을 제공하는 수단 및 데이타 구조의 구동기로부터 비할당을 위해 인터페이스장치에 호출을 제공하기 위해 제2정보에 의해 지정된 호출의 인터페이스 장치로부터 수신에 응답하는 수단을 구비한다.
실시예에서, 제1정보는 어드레싱 정보를 포함하고, 상기 구동기는 제2호출 이전에 제4호출을 어드레싱 정보를 번역하기 위해 데이타 구조 정보에 저장하도록 인터페이스 장치에 제공하는 수단을 포함한다.
또한 실시예에서, 구동기는 작업 실행이 좋은 결과인지 아닌지를 설정하기 위해 인터페이스 장치에 의해 데이타 구조 내에 저장되고 작업의 실행에 관한 제3정보를 조사하기 위해 제2정보에 의해 지정된 호출의 인터페이스 장치로부터 수신에 응답하는 수단을 포함한다. 전형적인 한 예로, 구동기는 성공 및 성공하지 못한 작업 실행중 하나의 통지를 제공하기 위한 조사수단에 협력하는 수단을 포함한다. 그래서 구동기는 작업 요구자에게 보고되고 작업상태를 얻을 수 있다.
또한 다른 실시예에서, 제2호출은 작업이 대기행렬 내에 있는 순서로 실행을 위해 다른 실행안된 작업을 대기행렬 내에 있기 위한 호출이며, 상기 구동기는 대기행렬 내에 있는 작업이 현재에 실행하에 있기 전에 실패한 작업의 재실행이나, 제2데이타 구조 내에 저장된 정보에 의해 제한된 작업, 즉, 제2대기행여 내에 있지 않은 작업의 실행을 위해 제4호출을 인터페이스 장치에 제공하기 위해 작업 실행이 성공하지 못한 결정수단에 의해 결정에 응답하는 수단을 포함한다. 이것은 장치 대기행렬억세스 프로토콜을 바이패스 하므로써 유지 및 진단 작업을 실행하거나 실패한 작업을 재실행하기 위한 능력을 구동기에 제공한다.
청구범위에 청구된 바와같은 본 발명에 따라서, 장치 구동기는 상술된 소자의 기능성인 단계를 수행하므로서 주변장치 작업을 수행한다.
반대로, 주변장치를 수행하기 위해 구동기에 의해 제어된 장치에 구동기를 인터페이스하기 위한 장치는 다음 소자를 구비하는데, 데이타 구조를 구동기에 할당하기 위해 장치 구동기로부터 제1호출의 수신에 응답하는 수단, 장치와 협력하여, 장치 구동기에 의해 데이타 구조 내에 저장된 정보에 의해 제한된 주변장치 작업을 실행하기 위한 장치 구동기로부티 제2호출의 수신에 응답하는 수단, 작업이 종료되면, 장치 구동기에 의해 데이타 구조 내에 저장된 정보로 지정된 호출을 장치 구동기에 제공하기 위한 단계 및 구동기로부터 데이타 구조를 비할당하기 위해 장치 구동기로부터 제3호출의 수신에 응답하는 수단을 구비한다.
실시예에서, 인터페이스 장치는 구동기에 의해 데이타 구조 내에 저장된 어드레스 정보를 번역하기 위해 데이타구조정보 내에 저장하도록 장치 구동기로부터 제4호출의 수신에 응답하는 수단을 더 포함한다.
또한, 실시예에서, 인터페이스 장치는 요구된 작업의 실행의 성공에 대해 궤환을 구동기에 제공하기 위하여, 작업의 실행에 관해 데이타 구조 정보 내에 저장을 하기 위한 수단을 포함한다.
또한 실시예에서, 제2호출에 응답하는 작업 실행 수단은 다른 실행안된 작업을 가진 데이타 구조 내에 저장된 정보에 의해 제한된 주변장치 작업을 대기행렬 내에 있기 위한 수단과, 이득이 대기행렬 내에 있는 순서로 대기행렬내 작업을 장치와 협력하여 실행하기 위한 수단을 구비한다. 그 다음에 인터페이스 장치는 대기행렬 내 작업을 실행하기 이전에 데이타 구조 내에 장치 구동기에 의해 저장된 정보에 의해 저장된 정보에 의해 제한된 대기행렬 내에 있지 않는 작업을 실행하기 위해 장치 구동기로부터 제4호출에 응답하는 수단을 구비한다. 상기 호출은 상술된 데이타 구조 내에 정보에 의해 제한된 작업의 재실행이나, 제2데이타 구조 내에 정보에 의해 제한된 다른 작업의 실행을 알 수 있다.
본 발명에 따른 인터페이스 장치는 상술된 소자의 기능적인 단계를 수행하므로써 주변장치 작업을 수행한다.
컴퓨터 시스템과 같은 본 발명에 따른 장치는 주변장치, 장치를 구동하기 위한 상술된 바와같은 장치 구동기 및 구동기를 장치에 인터페이스하기 위해 상술된 바와같은 인터페이스 장치를 포함한다. 상기 시스템에서 주변장치 작업의 수행방법은 상술된 바와같은 인터페이스 장치에 의해 수행된 단계와 협력으로 장치 구동기에 의해 수행된 목표를 포함한다.
본 발명의 상술된 것과 다른 잇점 및 특징은 첨부된 도면을 참조로 더욱 상세한 기술로부터 명백해 질 것이다.
상세한 설명
제1도는 AT&T 정보 시스템 인코포레이티드의 컴퓨터 시스템, 예를들면 3B 마이크로 컴퓨터의 원리 블록 다이아그램을 도시한다. 상기 컴퓨터 시스템은 메모리(15)에 접속되고 중앙제어(CC,9)에 함께 형성하는 중앙 처리 장치(CPU, 16)를 포함한다. 주변장치(18)가 CPU(16)와 메모리(15)에 통신하기 위해 입력및 출력(I/O) 버스(11)를 통해 CPU(16)와 메모리(15)에 접속된다.
장치(18)는 통상적이고 프린터, 디스크 드라이브 및 테이프를 포함한다. 장치(18)는 목표(13) 내에 구성된다. 목표(13)는 하나 이상의 장치의 동일한 테이프, 예를들면 다수의 테이프와 장치(18)를 제어하는 목표 제어기(l7)를 구비한다.
다수의 목포(13)는 장치 버스(12)와 통신하기 워해 접속된다. 목표 제어기(l7)는 버스(12)의 프로토콜에 의해 요구된 방식으로 장치 버스(12)에 장치(18)을 인터페이스 한다. 상기 실시예에서, 버스(12)는 상기 언급되고 1985년 12월 6일 미합중국 표준 설계 제안 X3T9.2/82-2-Rev·17B에 기술된 SCSI버스이다.
호스트 어댑터(10)에 접속된 버스(12)와 목표(l3)는 호스트 어댑터(10)에 의해 버스(11)에 인터페이스된다. 호스트 어댑터(10)는 한 버스의 프로토콜에서 다른 버스의 프로토콜까지 버스(11)과 (12)사이에 흐르는 통신을 변환하며 두 버스사이에 흐르는 통신의 버퍼링과 같은 다른 활동을 수행한다. 호스트 어댑터(10)와 같은 장치는 공지된 기술이다. 예로써, 호스트 어댑터(10)는, NCR 코포레이션의 5385 SCSI 프로토콜제어기를 기초로한다. 다수의 호스트 어댑터는 버스(11)에 접속되고 각각은 다른 장치 버스(12)에 접속되며 하나 이상의 단계(13)를 버스(11)에 인터페이스한다. 대안으로, 다수의 호스트 어댑터는 버스(12)에 접속되고, 각각은 다른 컴퓨터 시스템의 I/0버스(11)에 접속된다.
한번으로 버스(1I)에 억세스를 하나의 호스트 어댑터(10) 또는 CPU(16)로 제한할 목적으로, 제1도의 컴퓨터 시스템은 조정자(14)를 포함한다. 조정자(14)는 종래 장치와 유사하다.
중앙 제어(9)는 다수의 소프트웨어 장치(20 내지 23)를 포함한다. 이것은 제1도의 컴퓨터 시스템의 응용을 제한하는 사용자 처리(20)를 포함한다. 처리는 제1도의 컴퓨터 시스템 내에 제어의 기본적이 본질이다. 각각의 처리는 메모리 내에 비밀 데이타 스페이스, CPU(16)내의 레지스터 값 및 메모리(15) 내에 저장된 코드세트를 포함하고 가능한 다른 처리를 할당한다. 처리는 또한 메모리(15) 내에 공통 데이타 스페이스를 억세스한다. 처리(20)는 CPU(16)에서 실행한다.
사용자 처리(20)는 작동 시스템 커널(21)의 원시적 요소를 호출하므로서 목포(13)와 통신을 포함하는 여러기능을 수행한다. 작동 시스템은 모든 시스템 자원의 할당의 기본 제어를 갖는 마스터 제어 프로그램이다. 상기 커널은 작동 시스템의 부분에 있는 메모리(15)이며 하나 이상의 루틴, 예를들면, 프로그램을 포함한다. 제1도의 실시예에서, 작동시스템은 AT&T의 UNIXR작동 시스템이다.
커널(21)은 직접 목표(13)와 통신하지 않으나 그렇게 목표 구동기(22)를 호출한다. 목표 구동기(22)는 장치의 다른급을 제어하고 상기 장치에 대한 적절한 방식 예를들면, 장치-지정 방식으로 제어하는 것 중의 각각의 제어 프로그램이다. 이것은 커널(21)로부터 수신된 요구를 목표 구동기(17)에 의해 실행가능한 업무로 변환하고, 업무에 관해 고레벨 에러재생기능을 수행하며 업무의 결과를 커널(21)에 제공하기 위한 목표 구동기(22)의 일이다. 목표 구동기(22)는 장치 버스(12)의 표준통신 프로토콜에 의해 지시된 방식으로 목표제어기(17)를 통해 장치(18)와 통신한다.
I/O버스(11)와 호스트 어댑터(10)는 컴퓨터 시스템 대 컴퓨터 시스템이 다른 목표 구동기(22)와 목포(13)사이에 삽입된다. I/O버스(11)와 호스트 어댑터(10)의 구조에 무관한 목표 구동기(22)를 만들기 위해, 목표 구동기(22)는 호스트 어댑터 구동기(23)와 호스트 어댑터(l0)를 통해 간접으로 목표(l3)와 통신한다. 호스트 어댑터 구동기(23)는 표준 통신 인터페이스(24)에 목표 구동기(22)를 제공하는 프로그램이며 이것에 의해 여러 처리기의 I/0버스(11)와 호스트 어댑터(10)사이에 존재하는 구조 및 프로토콜에서 약간의 차를 목표 구동기(23)에 숨긴다. 인터페이스(24)는 간단하고, 복잡하지 않게 목표 구동기(22) 설계를 보조하는데 최적이며 장치(18)의 많은 다른 형태를 제어하는 다른 목표 구동기 설계에 대해서도 그렇다. 상기 실시예에서, 인터페이스(24)는 SCSI 구동기 인터페이스(SDI)로써 언급된다. 인터페이스(24)는 목표 구동기(22)를 위해 호스트 어댑터 구동기(23)에 의해 제공되는 일련의 기능, 구동기(22)와 (23)사이에 할당된 데이타 구조 및 호스트 어댑터 구동기(23)을 위해 목표 구동기(22)에 의해 제공되는 인터럽트 기능을 구비하는 통신 프로토콜이다.
호스트 어댑터 구동기(23)는 목표 구동기(22)가 목표 제어기(17)에 통신하도록 일련의 루틴을 포함하는 프로그램이다. 호스트 어댑터 구동기(23)는 버스(1l)양단의 CC(9)와 호스트 어댑터(10)사이에 통신 프로토콜을 조절한다. 이것은 호스트 어댑터(10)에 대기행렬 장치 명령에 관련이 있으나, 버스(12)상에 목표 구동기(17)와 장치(18)에 무관하다. 기능적으로, 호스트 어댑터 구동기(23)는 단일 장치로 나타나며, 그러나,실제 수행은 여러장치, 예를들면 CC(9)와 호스트 어댑터(10)양단으로 분리된다.
I/O버스(11)와 장치 버스(12)와 함께 호스트 어댑터 구동기(23)와 호스트 어댑터(10)는 목표 구동기(22)를 목표(13)에 인터페이스한다.
목표 구동기(22)가 커널(21)로부터 I/O요구를 수신할 때, 요구된 인터페이스(24)명령을 호스트 어댑터 구동기(23)에 보낸다. 인터페이스(24)는 호스트 머시인 종속을 목표구동기(22)로부터 분리한다. 호스트 어댑터 구동기(23)는 호스트 지정(예를들면, 머시인 종속)활동을 수행하며, 실시예에서 대기행렬 억세스 프로토콜을 통해 I/O명령을 보내는 것을 포함한다. 호스트 어댑터(10)는 장치 버스(12)를 통해 목표 구동기(17)에 보내진 명령을 들어오게 한다. 목표 제어기(17)는 장치(18)에 명령을 실행한다.
작업이 종료될 때, 목표 제어기(17)는 장치 버스를 통해 명령 종료 상태를 반송한다. 호스트 어댑터(10)는 필요한 것만큼 에러로부터 재생하며, 종료 상태를 호스트 어댑터 구동기(23)로 가게한다. 호스트 어댑터 구동기(23)는 종료상태를 수신하고, 종료 통지를 인터페이스(24)를 통해 목표구동기(12)에 다시 가게한다. 목표 구동기(22)는 종료통지를 수신하고, 소정의 필요한 하우스
Figure kpo00001
핑(house keeping)을 행하고, 작업을 시작하는 사용자 처리(20)에 보고되도록 작업 종료상태를 커널(21)에 보낸다.
서로 정보를 통신하기 위해, 호스트 어댑터 구동기(23)와 목표 구동기(22)는 인터페이스(24)의 데이타 구조를 이용한다. 데이타 구조는 예정된 데이타 크기(l6 또는 32 비트)를 가지며 예정된 방법으로 억세스 목적을 위해 조직된 데이타항 그룹의 장치 또는 그것에 대한 저장 할당이다. 데이타 구조는 메모리(15) 내에 있다. 상기 실시예에서, 데이타 구조는 SCSI블록(SB)으로 언급된다. 이것은 상기 실시에에서 SCSI제어블록(SCB), 근접 SCSI제어블록(ISCB) 및 SCSI기능블록(SFB)의 SB의 세 형태이다. SCB와 ISCB는 제11도에 도시되고 참조 번호(1100)으로 표시된다.
제11도를 참조하면, SCB는 목표 구동기(22)와 호스트 어댑터 구동기(23)에 의해 사용된 기본 데이타 구조이다. SCB는 32비트의 데이타크기를 가지며, I/O작업을 수행하도록 호스트 어댑더 구동기(23)와 목표 제어기(22)에 필요한 모든 정보를 포함하는 다수의 필드(1101 내지 1114)를 포함한다. 부가하면, SCB는 호스트 어댑터 구동기(23)와 호스트 어댑터(10)사이에 통신을 위해 사용된 영역(1115)를 포함한다. SCB는 대기행렬 억세스 프로토콜 내에 장치 작업 대기행렬을 통해 통과하는 "정상" 제어 블록을 위해 사용된다.
ISCB데이타 구조는 실제로 SCB구조와 동일하나, ''인접'' 제어블록을 위해 사용되고, 대기행렬 억세스 프로토콜 내에 작업 대기행렬을 통해 통과하지는 않으나 즉시 처리된다.
SB형 필드(1101)은 제11도에서 SCB 또는 ISCB인 블록의 부호를 지시한다.
SC-COMP-코드 필드(1102)는 작업의 진행 상태를 포시하는 것으로 완료 코드이다. 성공적이든 또는 실패적이든 한번 작업을 끝마치면, 상기 코드는 에러의 검출됨이 없는 것이든 또는 검출된 어떤 에러의 경우든간에 지시한다. 상기 상술한 실시예에서 필드(1l02)는 다음값 상에 나타난다.
SDI-NOALLOC : 상기 블록은 호스트 어댑터 구동기에 의하여 배치되지 않는다. 목포 구동기는 결코 상기 코드를 검출하지 않을 것이며, 즉, SC-CONIP-코드는 SB가 자유로울 때 상기 값에 세트한다.
SDI-ASW : 작업이 정상적으로 완료되고, 에러가 검출되지 않는 것으로 생각된다.
DI-LINKFO : 상기 링크된 명령은 정상적으로 완료되고, 장치 버스(SCS1)명령 플래그 비트는 0인 것을 지시한다.
SDI-LlNKFI : 상기 연결된 명령은 정상적으로 완료되고, 장치 버스(SCSI)명령 플래그비트는 1인 것을 지시한다.
SDI-QFLUSH : 장치에 대한 작업 대기행렬이 플러쉬하는 것을 목표 구동기 요구할 때, 상기 행렬에서 모든 작업은 상기 완료 코드와 함깨 리턴된다.
SDI-ABORT : 상기 작업을 목표 구동기에 의해 실패하였던 것을 지시한다.
SDI-RESET : 호스트 어댑터 구동기가 장치 버스상에 리셋을 검출할 때, 상기 조건 코드와 함께 목표 구동기에 대기행렬된 작업으로 아주 현저하게 리턴된다. 또한 상기 코드는 목표 제어기를 리셋할 때 목표구동기 요구는 리턴된다.
SDI-CRESET : 호스트 어댑터 구동기는 상기 작업상에 작업을 하며, 중대한 프로토콜 에러는 검출되며, 장치 버스를 리셋하기 위하여 호스트 어댑터 구동기를 생기게 된다.
SDI-V2PERR : 가장 대 물리적 어드레스 번역이 실패한 것은 지시한다. 예컨대, 상기 에러는 요구한 페이지 테이블을 수신받지 못하면, 리턴될 것이다.
SDI-TlME : 호스트 어댑터 구동기 타임아웃 작업일 때 리턴된다.
SDI-NOTEQ : 장치가 갖추지 않았을 때 호스트 어댑터에 의하여 러턴된다.
SDI-HAERR : 호스트 어댑터 구동기와 호스트 어댑터사이의 어떤 문제를 지시한다. I/O버스 패리티 또는 비상식적인 호스트 어댑터의 결여이다.
SDI-MEMERR : 작업의 데이터 영역을 억세스하는 동안 메모리 고장을 지시한다.
SDI-SBUSER : 호스트 어댑터가 장치 버스상의 문제에 부닥치고, 모든 재생동작이 실패할 때 셋트한다.
SDI-CKSTAT : 상태 필드가 체크되는 것을 지시한다. 상기 에러 코드는 목표 제어기가 GOOD과는 다른 상태로 리턴할 때 리턴된다.
SDI-SCBERR : 만약 SCB가 에러 또는 무효 형태를 포함하면 러턴된다.
SDI-OOS : 작업이 서비스 없는 장치에 대하여 제공될 때 리턴된다.
SDI-NOSELE : 호스트 어댑터 구동기가 목표 제어기를 선택하기 위한 시도가 타임아웃인 것을 지시한다.
SDI-MISMAT : 목표 제어기가 SCB에 공급된 데이타와 일치하지 않는 동작을 수행하려 한다는 것을 나타낸다. 예로써 제어기는 데이타내 이송을 수행하고 SCB-READ 프래그는 SC-MODE에 세트되지 않는다. SDI-PROGRES : 작업이 아직 끝나지 않았다는 것을 나타낸다.
SC-COMP-CODE는 SDI-ICMD 및 SDI-SEND 기능에서 호스트 어댑터 구동기에 의해 그 값이 세트된다.
SDI-UNUSED : 제어 구조를 이용하지 않을 때 목표 제어기에 의해 이용된다. 호스트 어댑터 구동기는 SB를 목표 구동기에 할달할 때 SC-COMP-DODE를 그 값에 세트시킨다.
SDI-ONEIC : 하나 이상의 즉각 요구가 보내졌을 때 되돌아 온다.
SDI-SFBERR : SFB의 필드에서 에러를 나타낸다. 상기한 모든 완성 코드(code)는 완성 코드의 형태를 지시해 주는 비트 필드(bit field)를 가지고 있다. 가능한 완성 코드의 4가지 예가 다음에 있다.
SDI-ERROR : 에러가 있다는 것을 나타낸다.
SDI-RETRY : 에러가 아마도 본 작업과 관련이 없어 작업을 다시 행하여야 한다는 것을 나타낸다.
SDI-MESS : 본 사건에 관한 메시지가 이미 콘솔에 프린트되었고 에러 로그에 로그되었다는 것을 나타낸다.
SDI-SUSPEND : 호스트 어댑터 구동기가 이 장치에 처리되는 일시 중단된 작업을 가지고 있다는 것을 나타낸다.
이에 제11도의 구조의 필드의 설명을 계속한다.
SC-INT필드(1103)은 목표 구동기 인터럽트 처리기(hamdler)의 지시계이다. 인터럽트 처리기는 호스트 어댑터 구동기에 의해 호출되는, 작업이 끝났다는 것을 목표 구동기에 알려주는 하나의 기능이다. 이것은 완성된 작업의 SB를 가리키는 하나의 인수로 호출된다.
만약 SC-COMP-CODE필드가 SDI-SUSPEND를 표시하면 호스트 어댑터는 논리장치에 명령을 보내는 것을 중단하고 목표 구동기는 대기행렬을 되찾는 원인이 된다. 만약 SC-INT 필드가 NULL이면, 호스트 어댑터는 어떤 목표 구동기 기능도 수행하지 않을 것이다. 명령을 보내는 호출이 있는 동안 작업이 끝나면 인터럽트 처리기는 호스트 어댑터 구동기에 의해 호출되지 않을 것이다. SCB에서 호스트 어댑터가 변화시키는 필드는 단지 SC-COMP-CODE, SC-TIME, SC-STATUS이다. 연결된 명령이 사용될 때, 각각의 명령은 연결된 것의 그 부분이 완료되면 SC-INT를 거쳐서 되돌아간다.
SC-STATUS 필드(1110)는 목표 제어기에 의해 되돌려지는 값이다. CHECK CONDITION이나 BUSY상태가 되돌려질 때, 호스트 어댑터는 그 장치에 대기된 명령의 수행을 중단한다. 만약 INTERMEDIATE상태가 되돌려지면 호스트 어댑터 구동기는 이 제어 블록을 목표 구동기에 되돌리고 다음것에 연결한다.
SC-CMDPT필드(1104)는 목표 제어기 명령 블록의 시작각을 가리키는 가상 어드레스이고 블록의 크기는 SC-CMDSZ필드(1112)에 의해 표시된다. SC-CMDPT에서 명령 블록은 호스트 어댑터 구동기에 의해 인터럽트되지 않는다.
SC-DATAPT필드(1105)는 명령을 위한 데이타 영역의 시작을 가리키는 가상 어드레스이고 영역의 크기는 SC-DATASZ필드(1113)에 의해 표시된다.
SC-LINK필드(1111)는 링크된 명령과 함께 사용된다. 목표 제어기가 INTERMEDIATE상태를 리턴할 때 호스트 어댑터 구동기는 차기 제어 블록으로 진행하기 위해 링크 포인터를 사용한다. 이것은 목표 구동기가 각각의 명령에 대한 여러 포인터들을 완전히 규정하는 것을 허용한다. 링크된 명령들이 사용될 때, SC-모드 필드 내의 LlNK 비트는 세트되야만 한다.
SC-RESID 필드(1114)는 데이타 버퍼에 지시된 것보다 얼마나 더 많은 바이트가 목표 제어기로부터 요청 되었는지를 가리킨다. 이것은 부분적인 블록 전달을 위해 사용된다. 목표 제어기로부터 수신되는 잔여 바이트는 호스트 어댑터 구동기에 의해 폐기된다. 목표 제어기에 의해 요청되는 잔여 바이트들은 0으로써 전송된다.
SC-TIME필드(1l07)는 호스트 어댑터 구동기가 작업이 완성될 때를 대기하는 최대의 밀리세컨드를 가리킨다. 타이밍은 명령이 목포 제어기에 전달될 때 시작하고, 완전한 상태는 타이머가 동작 중지전에 리턴되야만 한다. 타임-아웃이 발생하면, 호스트 어댑터 구동기는 ABORT메시지를 목표 제어기에 보낸다음 작업을 목표 구동기에 리턴시킨다. 상기 목표 제어기에 대한 순서가 정해진 작업의 처리는 목표 구동기에의해 재개될 때까지 중단된다. SC-TIME필드가 0이면, 작업은 시간이 정해지지 않는다. SC-TIME의 리턴된 값은 작업이 취한 실제의 시간량을 가리킨다.
SC-DEV필드(1108)는 장치 버스에 대한 장치의 어드레스이다. 상기 어드레스는 커널에 의해 목표 구동기에 통과되는 장치의 번호와 논리 장치번호를 포함한다. 호스트 어댑터 구동기는 장치번호로부터 목표 제어기 및 호스트 어댑터를 디코드한다. 논리 장치 번호는 목표 제어기에서 특정장치를 가리킨다.
SC-WD필드(1l06)는 목표 구동기에 의한 사용을 위해 제공된다. 필드는 호스트 어댑터 구동기에 의해 검사 또는 변화되지 않는다.
SC-MODE 필드(1109)는 이러한 작업에 대한 임의 특정 모드를 가리킨다. 이러한 예에서 상기 필드에 대한 유효값은 아래 기술되어 있다.
SCB-WRITE는 비판독 작업을 가리키고 SCB-READ는 판독 데이타 작업을 가리키고 SCB-LlNK는 장치 버스(SCSI)명령 링킹이 사용되는 것을 가리킨다.
SCB-HAND는 어드레스가 호스트 어댑터 구동기에 의해 제공되는 것을 가리킨다.
SCB-PARTBLK는 부분 블록 전달을 가리킨다.
SCB-PARTBLK이 모드 필드에서 세트될 때, 그것은 데이타 영역이 완전한 전달을 규정하지 않음을 가리킨다.
이 경우에, SC-RESID필드는 얼마나 많은 바이트들이 전달이 예기되는지를 가리킨다. 이들 여분의 바이트들은 시스템 메모리와 장치 버스 사이로 전송되지 않을 것이다. 전송이 기록이라면, 0은 목표 제어기에 전달될 것이다.
이러한 필드이외에도, 구조(1100)는 정보를 호스트 어댑터 구동기로부터 호스트 어댑터까지 통신하는데 사용되는 영역(1115)를 포함한다. 목표 제어기들은 상기 영역을 알지 못한다.
제12도를 보면, SFB는 호스트 어댑터 구동기(23)에 대한 기능 요청을 하는데 사용된다. SFB들은 "즉각" 기능 블록 즉 ISCB같은 블록이며, 이들은 작업 대기행렬을 통하여 통과되지 않으나 즉시 처리된다.
SFB는 다수의 필드(1201-1205)와, 호스트 어댑터 구동기(23)와 호스트 어댑터(10)사이의 통신을 위해 사용되는 영역(1206)을 포함한다. 상기 필드는 다음과 같이 규정되어 있다.
SB-TYPE 필드(1201)은 제12도의 블록-SFB의 형을 가리킨다.
SF-COMP-CODE필드(l202)는 SCB내의 SC-COMP-CODE 필드와 동일하며 동일값을 취한다.
SF-INT 및 SF-DEV 필드(1203 및 1204)는 SCB구조에서와 동일한 식으로 사용된다. SFB에서 호스트 어댑터가 변화하는 필드는 SC-COMP-CODE이다.
SF-FUNC 필드(1205)는 실행되는 기능을 가리킨다. 이러한 예에서, 규정된 기능들은 다음과 같다:
SFB-NOPF은 목표 구동기가 대기행렬을 단지 중단 또는 재개하기를 원할 때 사용되는 70-기능을 가리킨다.
SFB-RESTM은 호스트 어댑터 구동기가 버스 장치 리셋트 메시지를 어드레스된 목표 제어기에 보낼 것을 요청한다.
SFB-ABORTM은 이 코드가 통과될 때, ABORT메시지가 어드레스된 논리 장치에 전송되게 한다.
SFB-FLUSHR은 논리 장치의 장업 대기행렬을 플러쉬(flush)하는 요청이다.
SFB-RESUME는 정규 작업 대기행렬을 재개하는 것을 가리킨다.
SFB-SUSPEND는 정규 작업 대기행렬을 중단하는 것을 가리킨다.
대기행렬을 중단시키는 것은 대기행렬이 목표 구동기에 의해 재개되었을 때 까지 논리 유닛에 전송되지 않음을 의미한다.
이들 필드외에도, 구조(l200)는 제l1도의 영역(1115)에 유사한 영역(1206)을 포함한다.
인터페이스(24)의 기능성과 사용을 설명하기 위하여, 제2 내지 5도는 일반화된 목표 구동기(22)의 동작을 흐름도로 나타내고 있고, 제6 내지 10도는 호스트 어댑터 구동기(23)의 동작에 대한 관련 부분들을 흐름도로 표시하고 있으며, 제13 내지 15도는 호스트 어댑터(10) 동작이 관련 부분들을 흐름도로 도시한다. 목포구동기의 구조 및 동작에 대한 세부 사항은 목포 구동기가 제어되도록 설계되는 장치의 형 및 특성에 따른다. 상기 장치의 세부사항이 목표 구동기의 특정한 특정에 관계 없으므로 많은 형의 장치를 위한 목표 구동기와 함께 사용될 수 있음은 인터페이스(24)의 장점이다. 그러므로 목표 구동기의 동작에 대한 장치-특정양상은 본 발명의 설명된 실시예와 관계없다.
제2도를 보면, 그것은 커널(21)의 요청에 응답하는 목표 구동기(22)의 동작을 나타낸다. 목표 구동기(22)는 그것이 I/O 작업과 같은 주변 장치 작업을 실행시키도록 요청하면서 단계(200)에서 커널(21)로부터 호출을 수신한다. I/O 작업은 예로 디스크 또는 테이프와 같은 저장 장치에 관한 데이타 파일을 판독 또는 기록하라는 요청일 수 있다. 그러한 호출의 일부로서, 커널(21)은 I/O일을 실행하기 위하여 요구되는 목표 구동기 정보를 유효하게 한다. 그러한 정보는 I/O 작업이 필요한 목표(13)를 확인하는 장치 번호, 작업이 실행되는 I/0 어드레스 공간내의 가상 어드레스, 장치로 전송을 위한 데이타의 블록이 얻어지고 또는 장치로부터 전송된 데이타의 블록이 저장되는 메모리(15)내의 어드레스, 및 데이타 블록의 길이를 포함한다.
호출에 응답하여, 목표 구동기(22)는 단계(201)에서 요청을 유효하게 하기 위하여 호출의 일부로서 제공된 정보를 검사한다. 예로, 목표 구동기(22)는 블록의 어드레스와 사이즈가 허용된 범위내에 있는지, 그리고 이러한 요청이 의도되는 목표(13)가 존재하는지를 체크한다. 만약 단계(201)에서 체크가 요청이 비유효함을 가리키면, 목표 구동기(22)는 커널(2l)에 실패 지시를 가리킨다(단계(216)), 그러나, 만약, 요청이 유효하다면, 구동기(22)는 SDI-GETBLK 기능을 호출한다.스팁( 202). 이러한 기능 호출은 호스트 어댑터 구동기(23)에 의해 제공되는 인터페이스(24)의 일부이다. SDI-GETBLK 기능은 작업을 위한 SB를 목표 구동기(22)에 할당한다.
SDI-GETBI.K 호출에 대한 호스트 어댑터 구동기(23)의 응답은 제6도에 흐름도로 표시되어 있다. 단계(401)에서 호출의 수신에 따라 호스트 어댑터 구동기(23)는 임의 SB가 프리 및 유효한지를 체크한다(단계 401). 예시적으로, 호스트 어댑터 구동기(23)는 프리 SBS의 러스트를 유지하여 리스트가 비어 있는지를 검사한다.
SB가 유효하지 않으면, 호스트 어댑터 구동기(23)는 하나가 프리 및 유효하게 되기를 기다린다(단계 402). SB는 제10도에 도시된 SDI-FREEBLK 기능의 실행에 의해 유효하게 된다. 이리한 기능은 앞서 할당된 SB를 프리리스트에 리턴시킨다. 한 블록이 유효하다면, 즉, 한 블럭이 유효하게 될 때, 호스트 어댑터 구동기(23)는 SB를 목표 구동기(22)에 할당한다(스텝(403). 예시적으로, 호스트 어댑터 구동기(23)는 할당된 SB를 제거하기 위해 링크된 리스트의 상대를 갱신하므로써 SB를 목표 구동기에 할당한다. 그후 호스트 어댑터 구동기(23)는 할당된 SB를 목표 구동기(23)에 리턴시킨다(스텝 404). 이는 메모리(15) 내의 SB에 대한 포인터를 목표 구동기(22)에 리턴시키므로서 보여질 수 있다.
대안으로, 시스템에는 단지 하나의 목표 구동기(22)가 있을 수 있고, 또는 모든 목포 구동기(22)는 그 자신의 사용을 위해 할당된 한 그룹의 SB를 가질 수 있다. 그러한 경우에, 모든 SB는 단지 그것의 사용자로서 그곳과 함께 할당된 단지 하나의 목표 구동기(22)를 갖고 있다. 목포 구동기로의 SB의 할당은 그후 할당 호출을 신속하게한 목포 구동기의 일을 위한 유효 SBS중 하나의 정밀한 할당일 수 있다.
제2도를 보면, 그것이 단계(202)에서 SDI-GETBLK를 호출한 후에, 목표 구동기(22)는 메모리(15)에서 목표 제어기 명령 블록을 만들 수 있다(단계 203). 이 블록은 목표 구동기(22)가 목표 제어기(17)와 통신하게 하고 그것이 특정작업을 실행하게 하는 메시지이다. 목표 제어기 명령 블록은 장치 버스(12)의 내역(즉 SCSI내역)으로 규정되어 있다. 특히, 이러한 블록은 실행되는 기능을 목표 제어기(17)에 지정해 주는 OP코드, 기능이 실행되는 목표 제어기(17)에 의해 제어되는 장치(18)중 하나를 확인하는 논리장치 번호, 기능이 실행되는 데이타 블록을 확인하는 어드레싱 정보, 데이타 블록의 사이즈, 및 제어 플래그를 포함한다.
단계(202)에서 목표 구동기(22)에 의해 얻어진 SB는 비어 있으며, 목표 구동기(22)는 그것을 제11도의 SCB를 형성하기 위한 정보는 블록(202)에서 채우기 위해 진행한다. 특히, 목표 제어기는 SB의 SB-TYPE필드(1l01)내의 SCB를 세세히 지정하고, SC-CMDPT필드(1104)내에서 포인터를 단계(203)에서 만들어진 목표 제어기 명령 블록에 보낸다.
SCB 블록을 채우므로써, 목표 구동기(22)는 포인터를 독립변수로서 SCB에 통과시키면서 단계(205)에서 SDI-XLATE 기능을 호출한다. 이러한 기능 호출은 인터페이스(24)의 일부이다. SDI-XLATE기능을 SCB에 의해 통과되는 가상 어드레스(SC-DATAPT 필드 1105)와 사이즈(SC-DATAS 필드 1103)에 대한 번역 정보를 제공한다.
SDI-XLATE 호출에 대한 호스트 어댑터 구동기(23)의 응답은 제7도에 흐름도로 도시되어 있다. 호출의 수신에 따라 단계(500)에서 호스트 어댑터 구동기(23)는 단계(501)에서 번역을 위해 요구되는 처리-의존 정보(즉 I/0 작업를 개시한 특정 프로세서에 따른 정보)를 얻는다. 예시적으로 호스트 어댑터 구동기(22)는 커널(21)의 메모리 관리기능으로부터 그러한 정보를 얻는다. 호스트 어댑터 구동기(23)는 정보를 직접 얻을 수 없지만, 예로, 이러한 정보를 포함하는 메모리(15)내의 세그먼트 디스크립터 테이블에 개한 포인터를 얻는다. 그후 호스트 어댑터 구동기(23)는 단계(502)에 영역(1115) 내지 SCB의 정보를 저장한다(제11도 참조).
대안적인 실시예에서, 단계(502)에서 영역(1115)내의 번역 정보를 저장하는 대신, 호스트 어댑터 구동기(23)는 이러한 정보를 기초하어 직접 번역을 실행할 수 있고, 필드(1105 및 1113)내에서 번역된 결과를 저장한다. 양자 경우에, 번역 정보는 SCB에 저장된다.
그후 호스트 어댑터 구동기(23)는 단계(503)에서 목표 구동기(22)로 리턴한다.
제2도를 보면, 단계(205)에서 SDI-XLATE 기능을 호출한 후에, 목표 구동기(22)는 예시적으로 포인터를 링크된 리스트에 관한 SCB에 배치시키므로써 단계(206)에서 SCB로 표현된 I/O 작업을 작업대기 행렬을 근거로 열을 짓는다. 결정을 위한 기초는 목표 구동기-의존이다. 예로, 목표 구동기(22)는 또다른 작업을 전송하기 전에 임의 앞서 전송된 자브가 완성하기를 기다릴 수 있다. 목표 구동기(22)가 작업이 실행을 위해 전송되지 않음을 결정한다면, 그것은 단계(215)에서 커널(21)로 리턴한다.
목표 구동기(22)가 단계(207)에서 작업이 실행을 위해 전송되지 않음을 결정한다면, 그것은 독립변수로서 그것의 작업대기행렬에 관한 제lSCB에 포인터를 통과 시키면서 SDI-SEND 기능을 호출한다. SDI-SEND 기능은 SB를 취하고, 목표 제어기로 목표 제어기 명령 블록을 보낸다. 이러한 기능을 통하여 논리장치에 전송된 명령들은 그들의 전송되는 순서로 논리장치에 의해 실행된다.
SDI-SEND 호출에 대한 호스트 어댑터 구동기(23)의 응답은 제8도에 흐름도로 도시되어 있다. 호출의 수신에 따라서, 단계(600)에서, 호스트 어댑터 구동기(23)은 단계(601)에서 요청을 유효하게 하기 위하여 통과된 포인터에 의해 지정된 SB의 내용을 검사한다. 예로 호스트 어댑터 구동기(23)는 SB-TYPE 필드(1101)(제1l도 참조)가 이러한 요청을 위해 올바른지를 체크한다. 단계(601)에서 체크가 요청이 비유효함을 가리키면, 호스트 어댑터 구동기(23)는 단계(609)에서 에러 지시에 의해 목포 구동기에 리턴한다.
요청이 유효하다면, 호스트 어댑터 구동기(23)는 단계(602)에서 작업이 진행되는 논리장치(장치 18)가 동작적이며 작업을 실행하는 능력이 있는지를 체크한다. 예로, 호스트 어댑터 구동기(23)는 이러한 결정을 하기 위하여 호스트 어댑터(l0)에 의해 유지된 장치상태 정보를 체크한다. 목표장치(13)가 표시되시 않으면, 호스트 어댑터 구동기(23)는 적절한 코드를 SC-COMP-CODE 필드(1102)(제11도 참조) 내에 배치하므로써 작업을 고장나게 한다. 코드는 호스트 어댑터(10)가 작업을 실행하지 않도록 경고한다. 그후 호스트 어댑터 구동기(23)는 작업이 실행되어 그들이 제출되는 순서로 리턴되야만 하는 SCSI 요구를 만족시키기 위해 단계(604)로 진행한다.
단계(603)에 따라, 즉, 목표장치(13)가 단계(602)에서 체크하면, 호스트 어댑터 구동기(23)는 단계(604)에서 작업의 실행에 참여하는 동안 호스트 어댑터에 의해 요구되는 정보를 SCB의 영역(1115)(제11도 참조)의 필드를 채운다. 이러한 정보는 호스트 어댑터(10)의 특정 구조에 따라 변한다. 그것은 예로 목표 제어기 명령 블록의 물리적인 어드레스와 SCB의 가상 어드레스를 포함할 수 있다. 호스트 어댑터(10)는 모든 장치(18)에 대한 작업대기행렬을 유지하고, 호스트 어댑러 구동기(23)는 단계(605)에서 그곳에 SCB를 위한 목표장치(18)의 대기행렬에 관한 여유가 있는지를 체크한다. 대기행렬이 꽉차 있다면, 호스트 어댑터 구동기(23)는 단계(608)에서 "리트리"메시지를 목표 구동기(22)에 리턴시킨다. 상기 리트리 메시지는 호스트 어댑터 구동기(23)가 이때 작업을 억셉트할 수 없으므로 그것은 후에 다시 리트리되야 함을 가리킨다. 대기행렬이 꽉차있지 않다면, 호스트 어댑터 구동기(23)는 단계(606)에서 목표장치(18)의 대기행렬에 배치된 SCB를 가진다. 실행에 따라서 호스트 어댑터 구동기(23)은 SCB를 대기행렬에 직접 배치하고, 또는 그것은 호스트 어댑터(10)가 그렇게 하도록 요청할 수 있다. 호스트 어댑터 구동기(23)는, 단계(607)에서 "OK"메시지로 목표 드라이버(22)로 리턴한다.OK 메시지는 요구가 아직 완성되지않은 것을 나타내며, 목표 구동기 인터럽트 처리기 동작이 호출될 수 있다.
다시 제2도에서, 단계(208)에서의 SDI-SEND 동작을 따라, 목표 구동기(22)는 호스트 어댑터 구동기(23)에 의해 리턴되는 메시지를 조사한다. 만약, 동작호출이 성공되었다는 응답이 나타나며, 목표 구동기(22)는 단계(207)으로 러턴하여 작업대기행렬상에서 대기행렬되는 어떤 작업이 있는가를 결정하며, 만약 있다면, 실행하기 위해 다음의 작업을 외부로 전송한다.
만약 단계(209)에서 수신되는 응답이 "리트라인"이며, 목표 구동기(22)는 단계(210)에서 경보 타이머를 세트하여, 전송 실패의 작업을 확인한다. 그후, 목표 구동기(22)는 목표 (207)로 리턴한다. 경보 타이어가 타임아웃될 때, 블럭(214)에서 목표 구동기(22)를 경보하며, 단계(208)에서 SDI-SEND를 호출함으로 응답하여, 다시 작업을 전송한다.
만약 단계(209)에서 수신되는 응답이 에러이면, 목표 제어기(22)는 단계(2l1)에서 에러 로그에서의 에러를 나타낸다. 적절하게, 목표 제어기(22)는 제1도의 컴퓨터의 콘솔상에서 에러가 판독되게 한다. 목표 제어기(22)는 따라서 커닐(21)의 동작을 호출함으로 단계(212)에서 작업실패가 되며, 상기 커널은 작업완성을 나타내며, 실패원인을 나타내는 에러 확인을 인수로 통과시킨다. 작업이 완성된 후, 비록 불연속이지만, 목표 제어기(22)는 단계(213)에서 SDI-FREEBLK 동작을 호출하며, 포인터를 인수로서 완성된 작업 SCB로 통과시킨다. 상기 동작 호출은 인터페이스(24)의 부분이다. SDI-FREEBLK 동작은 앞서 할당딘 SB를 프리블럭풀로 리턴한다.
SDl-FREEBLK 호출에 대한 호스트 어댑터 구동기 (23)의 응답은 제10도에 흐름도로 나타나 있다. 단계(800)에서 호출을 수신하면, 호스트 어댑터 구동기(23)는 단계(801)에서 통과 포인터에 의해 포인터되는 SB의 할당해제 요청을 확인시킨다. 예로서, 호스트 어댑터 구동기(23)는 할당해제된 블럭이 할당된 블럭이되게 한다. 만약 확인 실패가 되면, 호스트 어댑터 구동기(23)는 단계(802)에서 제1도의 시스템의 제어 콘솔상에서 에러표시가 판독되게 하며, 단계(803)에서 시스템을 ''크레쉬"되게 한다. 크레쉬는 시스템을 디스에이블되게 하며, 시스템은 나중 동작이 되기전에 다시 시작해야 한다.
만약, 요구가 단계(801)에서 유효하면, 호스트 어댑터 구동기(23)는 단계(804)에서 SB를 할당해제 시킨다. 예로서, 호스트 어댑터 구동기(23)는 SB의 내용을 클리어되게 하므로 동작하며, 할당해제된 SB를 포함하기 위해 프리블럭의 링그 리스트 상태를 갱신되게 한다. 다음에, 호스트 어댑터구동기(23)는 단계(805)에서 목표 제어기(22)로 리턴한다.
작업이 연속적으르 전송된 것으로 가정하여, 작업이 실행이 완성된 후, 호스트 어댑터(10)가 연속 또는 불연속으로 작업 SCB의 필드내에 적절한 값으로 충만되어, 어떠한 목표 구동기 인터럽터 처리기 루틴이 SCB의 SC-INT 필드(I103)내의 목표 구동기(22)(제11도 참조)에 의해 특정 지워지는 가를 호출한다. 상기 동작 호출은 인터페이스(24)의 일부이다.
목표 구동기(22)가 복수의 인터럽터 처리 루틴중의 하나를 특정지우므로, 복수의 인터럽트 처러 루틴이 호출되며, 다른 목표 구동기(22)가 다른 인터럽터 처리 루틴을 가지므로, 호출에 대한 목표 구동기(22)의 응답이 변한다. 그러나, 응답의 어떤 형태는 모든 목표 구동기의 인터럽트 루틴에 공동으로 된다. 제3도 및 4도는 상기 공동형태 및 인터페이스(24)의 사용을 나타내기 위해 인터럽트에 응답하는 목표 구동기(22)의 일반적인 형태를 나타낸다.
단계(300)에서 인터럽트를 수신할 때, 목표 구동기(22)는 단계(301)에서 완성이 신호화되는 작업은 대기 행렬하는 작업으로부터 비대기행렬 된다. 예로서, 목표 구동기(22)는 포인터의 링크 리스트로부터의 작업의 SB에 대해 포인터를 제어시킴을 이행된다. 따라서, 목표 구동기(22)는 단계(302)에서 에러에 대한 작업의 SB의 내용을 조사한다. 상기 조사는 어떤 에러가 나타나는가를 결정하기 위해 SC-COMP-CODE 필드(1102) 및 SC-STATUS필드(1110)(제11도 참조)의 조사를 포함한다.
만약 단계(302)에서 어떠한 에러도 발견되지 않으면, 이것은 작업이 성공적으로 실행되며, 목표 구동기(22)가 단계(314)에서 작업이 완성된 것을 나타낸다. 이것은 커널(21)의 인터럽드 동작의 호출을 포함하여 작업이 완성된 것을 나타내며, 작업의 결과를 통과시키며, 완성된 것을 나타낸다. 목표 구동기(22)는 단계(315)에서 제10도의 SDI-FREEBLK 동작을 호출하여 완성된 작업의 SCB를 할당해제한다. 다음에 목표구동기(22)는 단계(316)에서 작업대기행렬상에서 다른 작업이 목표(13)로 전송되는가를 체크한다.
만약 에러가 단계(302)에서 발견되며, 목표 제어기(22)는 단계(303)에서, 작업에 대해 필연적인가를 결정한다. 페타리티(fatality)는 실행되는 작업의 타입의 기능이며, 장치(18)의 타입은 목포 구동기(22)에 의해 제어되며, 에러 복구능력은 목표 제어기(22)에 의해 제공된다. 만약 에러가 필연적이면, 목표 제어기(22)는 에러 로그내에서 기입되어 유지되며, 단계(3l1)에서, 제1도의 시스템의 콘솔상에서의 에러 메시지를 출력시킴으로, 단계(312)에서 작업을 실패하게 한다. 작업 실패는 커널(21)의 인터럽트 동작을 호출하여 작업의 완성을 통보하며, 컴피티션이 실패한 것을 나타내는 정보를 제공한다. 목표 구동기(22)는 단계(315) 및 (316)으로 진행되어, SDI-FREEBLK 동작을 호출하여 전송되는 다른 작업에 대한 작업유를 검사한다.
단계(302)에서 발견되는 에러가 단계(303)에서 필연적인 것이 아닌 것으로 정해지면, 목표 구동기(22)는 작업의 SCB에 의해 제공되는 에러 정보를 조사하여, 목표 제어기(17)가 단계(306)에서 작업 실패가 되는가를 결정한다. 만약 그렇지 않으면, 목표(309)에서, 목표 구동기는 호스트 어댑터 구동기(23)의 SDI-ICMD 동작을 호출한다. 상기 동작 호출은 인터페이스(24)의 일부이다. 상술한 바와같이, SDI-ICMD는SDI-SEND에 유사하며, 대기행렬 억세스 프로토콜의 논리장치(장치 18) 대기행렬에서 대기행렬되는 SCB를 바이패스 시키며, 요청동작을 즉시 실행하는 것만 다른다. 논리 장치가 비지로 되고, 장치가 프로로 될때에 작업을 대기 행렬된다.
상기 SDI-ICMD 호출의 목적은 목표장치(17)의 작업 대기행렬을 통해 행해지지 않으면, 실패된 I/O 작업은 즉시 철회된다. 상기 목적으로, 목표 구동기(22)는 SDI-ICMD 호출의 일부로서 실패작업의 SB에 포인터를 통과시킨다.
호출되는 것은 SDI-ICMD 동작이고, SDI-SEND 동작이 아니므로, SDI-ICMD 호출 및 포인터를 작업의 SB에 통과시키기 전에, 목표 구동기(22)는 SB의 SB-TYPE 필드(110l)내의 ISCB에 대한 값으로 유입되어 호출을 SB 타입과 매치시킨다.
만약, 목표 구동기(22)가 단계(306)에서 목표 제어기(17)가 I/O 작업을 실패되게 하는 것으로 결정되면, 목표 구동기(22)는 단계(307) 및 (308)에서 "리퀘스트 센서"작업을 발생시킨다. 목표 제어기(17)로부터의 상기 작업 리퀘스트는 작업실패 이유를 통보한다. 리퀘스트 센스 작업은 장치 버스(12, SCSI) 명세에 의해 규정된다. 목표 구동기(22)는 단계(203) 및 (204)에 기술된 바와같은 표준작업을 발생시키는 것과 유사한 방법으로 단계(307) 및 (308)에서의 작업을 발생되게 한다. 단계(307)에서 목표 제어기 공동블럭을 발생되게 하여 단계(308)에서, SB를 정보로 층만되게 한다. 목표 구동기(22)는 SDI-GETBLK 동작을 호출하여 SB에 양도하지는 않으나, 단계(708)에서 구동기(22)가 "O·K"메시지를 가지는 SB를 사용한다.
다시 제3도에서, 단계(309)에서 SDI-ICMD 동작을 호출한 후에, 본래의 I/O 작업을 철회하거나, "리퀘스트 센스"작업을 실행하면, 목표 구동기(22)는 상기 동작에 의해 리턴되는 응답을 조사한다. 만약 응답이 "O·K", 즉, 리퀘스트가 아직 완성되지 않으나, 목표 구동기 인터럽트 핸들리가 호출되면, 목표 구동기(22)는, 단계(300)에서 인터럽트되는 포인트에서 단계(331)에서 단지 리턴된다.
응답이 리퀘스트가 확인을 실패하는 것을 나타내는 "에러"가 되면, 목표 구동기(22)는 단계(311)로 진행되어 본래의 에러를 나타내며, 상기 에러는 작업을 다시 실행하게 하는 시도 또는 요청 센스작업을 이행하는 시도가 되게 하는 본래의 작업에서의 에러이면, 상기 에러는 에러 로그내에서, 콘솔상에 에러 메시지를 출력시킴으로, 단계(312)으로 진행되어, 상술한 바와같이 본래의 I/O 작업의 SCB를 할당해제한다. 그후 목표 구동기(22)는 제4도의 단계(316)에서 동작을 계속한다.
제2도와 비교하여 제4도는, 단계(315) 내지 (323)이 단계(207) 내지 (214)와 거의 동일하며, 상술한 내용이 모두 적용되는 것을 보여준다. 차이점은, 단계(316)에서, 목표 구동기(22)가 특정 장치(18)에 작업을 전송하는 가를 체크하여, 상기 장치(18)에 대항하여 작업이 완성되는가를 체크한다.
어떤 에러가 발생될 때, 목표 구동기(22)는 장치(18)가 어떤 새로운 작업을 이행하기 전에 상기 에러의 원인을 결정하는 것과 같은 어떤 동작을 취할 필요가 있다. 상기 이유를 위해, 하나 또 다수의 상기 에러의 목표 제어기(17)로부터의 표식을 수신할 때, 호스트 어댑터(10)는 작업대기행렬을 서스펜드하며, 장치(18)에 작업 대기행렬상의 어떤 작업이 전송되는 것을 방지한다. 예로서, 호스트 어댑터(10)는 시스템 초기에서 유지 및 진단목적으로 여기에 할당되는 장치의 작업을 서스팬드한다. 목표 구동기(22)는 전달 정보를 제공하기 위해 SDI-XLATE 동작을 호출하지 않으며, 만약 있다면, 유지 및 전단에 필요한 전송은 초기에 이행된다. 또, 목표 구동기(22)는 SB-TYPE 필드(1101, 제11도 참조)에서의 ISCB에 대한 값을 유입시켜, 단계(309)에서 SCI-ICMD 동작을 호출하여, 단계(308)에서 발생되는 ISCB에 포인터를 통과시켜 요청센서 작업이 이행되게 한다.
SDI-ICMD 호출에 대한 호스트 어댑터 구동기(23)의 응답은 제9도에 표시되어 있다. 제8도와의 비교에서 제9도는 단계(701) 내지 (704) 및 (709)가 단계(601) 내지 (604) 및 (609)와 동일한 것을 나타내며, 상술한 설명이 모두 적용된다.
단계(704)에서의 SB내의 정보 유입의 완성 후에, 호스트 어댑터 구동기(23)는 SB의 SB-TYPE 필드(1101) 또는 (120l)(제11도 및 12도 참조) 인가를 조사하여, 단계(705)에서 ISCB 또는 SFB 인가를 결정한다. 만약 SB가 ISCB이면, 호스트 어댑터 구동기(23)는 SB를 목표장치(18)에 대해 "즉시" 대기행렬상에 배치시킨다. 호스트 어댑터(10)는 각각의 장치(18)에 대해 즉시 대기행렬을 유지한다. 즉시 대기행렬은 1의 길이를 가지는 대기행렬이며, 단지 하나의 작업이 동시에 대기행렬상에 존재할 수 있다. 즉시 대기행렬상의 작업은 장치(18)의 정상작업 대기행렬상에서 우선적으로 어떤 작업을 이행한다. 즉시 대기행렬상에 작업을 배치시키는 본래의 효과는 작업을 통상의 작업대기행렬의 헤드에 배치시키거나 또는 통상의 작업대기행렬을 바이패스시킨다. 호스트 어댑터 구동기(23)는 따라서, 단계(708)에서 "O·K" 메시지로 목표 구동기(22)로 리턴된다.
만약 SB가 단계(705)에서 SFB로 되면, 호스트 어댑터 구동기(23)는 단계(707)에서 호스트 어댑터(10)에 의해 유지되는 작동대기행렬상에 작업을 배치시킨다. 호스트 어댑터(10)는 단지 하나의 작동대기행렬만 가진다. 작동대기 행렬상의 작업은 다른 대기행렬상의 작업에 우선하여 행해진다. 호스트 어댑터 구동기(23)는 따라서, 단계(708)에서 "O·K" 메시지를 목표 구동기(22)에 리턴시킨다.
응답이 "에러"이면, 요구가 실패된 비준을 나타내며, 목표 구동기(22)는 단계(328)에서 콘솔상에 에러 메시지를 출력하므로써 에러 로그의 실패를 나타낸다. 목표 구동기(22)는 단계(329)에서, 단계(312)에 대해 기술된 것과 같은 연속방식으로 원래 I/O 작업을 실패한다. 그 다음에 목표 구동기(22)는 단계(330)에서, 실패된 작업의 SB를 프리하도록 제10도의 SDI-FREEBLK 기능을 호출하며, 마지막으로 목표 구동기(22)는 단계(331)에서 단계(300)에서 인더럽트되는 포인트로 리턴한다.
제5도는 성공적으로 보내진 "요구감지"작업(제3도의 단계 307 내지 309)의 종료에 대해 목표 제어기(22)의 응답의 흐름도이다. 단계(400)에서 요구감지 작업 ISCB의 SC-INT 필드(1103)에 지정된 목표 구동기 인터럽트 처러기에 대한 호출을 수신하면, 목표 구동기(22)는 단계(401)에서, 단계(302)에 대해 기술된 유사한 방식으로 에러에 대한 작업의 ISCB의 내용을 조사한다. 에러가 발견되지 않았다면, 목표 구동기(22)는 성공적으로 원래 I/O 작업을 완성하도록 제3도의 단계(314)에서 작동을 계속한다. 에러가 발견됐다면, 목표 구동기(22)가 원래 I/O 작업에 치명적인지 단계(402)에서 결정한다. 목표 구동기(22)는 단계(303)에 대해 기술된 유사한 방식으로 결정을 한다. 에러가 결정적이라면, 목표 구동기(22)는 원래 I/O 작업을 실패하도록 제3도의 단계(311)로 진행한다. 에러가 치명적이 아니라면, 목표 구동기(22)는 원래 I/O 작업을 재실행하도록 제3도의 단계(309)로 진행한다.
제13 내지 15도는 인터페이스(24)의 이해에 관련된 호스트 어댑터(10)의 작동부분의 흐름도이다. 우선 제13도를 보면, 장치 버스(l2)가 프리될 때, 단계(900)에서 장치 작업 대기행렬상에 실행하도록 대기하는 작업이며, 호스트 어댑터(10)는 단계(901)에서 버스 프리 처리기(BFH) 기능을 호출한다. 상기 기능은 다른 작업을 수행하기 위해 목표 제어기(l7)와 버스(12)를 준비하고 목표 제어기(17)에 초기화 명령을 보낼 책임이 있다. 상기 BFH 기능을 SCSI버스 지정에 의해 제한된다.
호출된 BFH 기능을 가지면, 호스트 어댑터(10)는 버스(12)가 단계(902)에서 실제 프리인지 결정하도록 그곳의 결과를 조사한다. 예를들면, 상기 호스트 어댑터(10)보다 버스(12)에 억세스의 더 높은 우선을 갖고있는 장치는 버스(12)에 억세스를 요구하며, 그 결과로 버스(12)는 상기 호스트 어댑터(l0)에 의해 이용을 위해 프리되지 않는다. 버스(12)가 실제로 프리가 아니라면, 호스트 어댑터(10)는 버스가 프리가 되게 대기하도록 단계(912)에서, 리턴한다.
버스(12)가 프리라면, 호스트 어댑터(12)는 SFB가 대기행렬이고 단계(903)에서 수행하도록 어떤 기능이 있는지 결정하는 기능 대기행렬 자체를 체크한다. 만일 기능이 없다면, 호스트 어댑터(10)는 단계(904)에서 수행하도록 즉각 명령이 있는지 결정하도록 프리장치(18)의 즉각 대기 행렬을 ICSB가 대기행렬인 장치(18)를 체크한다. 만일 즉각 명령이 없다면, 호스트 어댑터(10)는 단계(905)에서 수행하도록 I/O 작업이 있는지 결정하도록 대기행렬이 중지되지 않기 위한 프리장치(18)의 작업대기행렬을 SCB가 대기행렬되는 장치를 체크한다. 만일 작업이 없다면, 호스트 어댑터(10)는 그렇게 작업의 수신을 대기하도록 단계(912)에서 리턴한다.
호스트 어댑터(10)가 단계(905)에서 프리장치(18)의 중지안된 대기행렬상에 걸려있는 작업을 발견하면, 이것은 단계(906)에서, 어댑터에 포함된 정보를 확인하도록 SCB를 조사한다. 확인이 실패한다면, 호스트 어댑터(10)는 단계(915)에서 실패를 표시하도록 SCB의 종료 코드를 세트하고나서 이하에 기술된 제14도의 "리턴작업" 기능을 호출한다. 만일 확인이 성공이라면, 호스트 어댑터(10)는 단계(907)에서, 목표 구동기(17)를 통해 버스(12)에 걸쳐서 장치(18)에 작업을 보내고, 단계(910)에서, 작업의 지속시간을 정하도록 타이머를 시작한다. 타이머 타임아웃에 대한 호스트 어댑터(10)의 응답은 제15도의 흐름도이다. 그 다음에 호스트 어댑터(10)는 단계(911)에서, 버스상태 처리기(BSH) 기능을 호출한다. 이러한 기능은 작업의 종료를 위해 요구된 목표 구동기(17)와 통신을 조정한다. BSH 기능은 SCSI 버스지정에 의해 제한된다. 작업이 종료되면, BSH기능은 제14도의 "리턴작업" 기능을 호출한다.
호스트 어댑터(10)가 단계(904)에서, 프리장치의 즉각 대기행렬상에 걸려있는 즉각 명령을 발견한다면, 단계(908)에서 어댑터에 의해 포함된 정보를 확인하도록 ISCB를 조사한다. 확인이 실패하면, 호스트 어댑터(10)는 단계(915)에서 실패를 표시하도록 ISCB의 종료 코드를 세트하고나서, 단계(916)에서 제14도의 "리턴작업" 기능을 호출한다. 확인이 성공이라면, 호스트 어댑터(10)는 단계(909)에서 목표 제어기(17)를 통해 버스(12)에 걸쳐서 장치(18)에 즉각 명령을 보내고나서, 단계(910)에서 작업 타이밍을 개시하며, 단계(911)에서 BSH 기능을 호출한다.
호스트 어댑터(10)가 단계(903)에서 기능대기행렬상애 기능을 발견하면, 단계(913)에서 어댑터에 의해 포함된 정보를 확인하도록 BFH를 조사한다. 확인이 성공이라면, 호스트 어댑터(10)는 단계(914)에서 기능을 실행하며, 단계(9l5)에서, 제14도의 "리턴작업" 기능을 호출한다. 확인 실패면, 호스트 어댑터(10)는 단계(915)에서 실패를 표시하도록 BFH의 종료코드를 세트하고나서, 단계(916)에 "리턴작업" 기능을 호출한다.
제14도의 "리턴작업" 기능 흐름도는 성공이든 비성공이든 소정의 작업, 명령 또는 기능의 실행 종료되면호스트 어댑터(10)에 의해 실행된다. 그 목적이 원래 목표 구동기(22)에 대한 종료로 정보를 리턴하는 것이다.
단계(1000)에서 "리턴작업" 호출을 수신하면, 호스트 어댑터(10)는 작업, 명령의 SB의 종료코드 필드 (SC-COMP-CODE 필드(1102) 또한 SF-COMP-CODE 필드(1202), 제11 및 12도에 도시) 또는 기능이 세트인지를 체크한다. 만일 그렇지 않다면, 호스트 어댑터(10)는 코드를 세트한다. 코드가 세트되었을 때, 호스트 어댑터(10)는 단계(1003)에서, 작업 또는 명령 타이밍을 정지하고, 단계(1004)에서 장치(l8)에 대해 작업대기행렬 중지가 요구되는지를 결정하도록 종료코드 필드를 체크한다. 작업중지을 위한 규범은 표시된 에러형태에 의존하고 시스템이 입력되는 응용의 요구에 의존한다. 대기행렬 중지가 요구된다면, 호스트 어댑터(10)는 단계(1005)에서 대기행렬을 중지한다. 대기행렬 중지에 따라서, 또는 대기행렬 중지가 요구되지 않는다면, 호스트 어댑터(10)는 단계(1006)에서, 작업, 명령 또는 기능을 호스트 어댑터 구동기(23)에 리턴한다. 예시적으로 리턴하는 협정으로써 작업, 명령 또는 기능의 SB에 대한 포인터를 통과하는 호스트 어댑터 구동기(23)의 인터럽트 또는 호스트 어댑터 구동기에 대한 기능호출을 통해 성취된다. 그 다음에, 호스트 어댑터(10)는 단계(1007)에서 종료를 되돌리도록 관련된 작업, 명령 또는 기능에 대한 장치(l8) 주위에 유지되는 소정의 정보의 상태를 갱신한다. 그 다음에, 호스트 어댑터(10)는 목표 구동기 인터럽트 기능이 종료된 작업의 SB의 SC-INT 필드(1103) 또는 SB-INT 필드(1203)(제11 및 12도에 도시)에 의해 지정될 때마다 그것을 호출하도록 하는 호스트 어댑터 구동기(23)에 인터럽트를 보낸다. 호출은 SB에 의해 지정된 일의 실행 종료의 목표 구동기(22)에게 통지한다. 상기 호출은 인터페이스(24)의 일부이다. 이것은 목표 구동기(22)가 작업, 명령 또는 기능 졸요가 어떻게 알려지는가를 지정하도록 한다. 상기 호출에 대한 목표 구동기(22)의 응답은 제3 내지 4도의 흐름도이며 상술된 것이다.
목표 구동기 인터럽트 기능의 호출에 따라서 호스트 어댑터(10)는 단계(1009) 내지 BFH 기능을 호출하며, 단계(1010)에서, 단계(1000)에서 호출된 포인트로 리턴한다.
제15도는 타이머에 응답하여, 타이머가 제14도의 단계(1003)에서 정지되기 전에 타임아웃되고, 제13도의 단계(910)에서 시작된 호스트 어댑터(10)의 작동을 나타낸다.
단계(1300)에서, 타임아웃 표시를 수신하면, 호스트 어댑터(10)는 작업이나 즉각 명령이 작업 또는 명령을 어보트(abort)하기 위해 단계(1301)에서 포함하는 장치(18)의 목표 제어기(17)에 어보트 신호를 보낸다. 그 다음에 호스트 어댑터(10)는 제14도의 단계(1006)을 위해 기술된 방식으로 단계(1302)에서, 호스트어댑터 구동기(23)로 일을 리턴한다. 호스트 어댑터(10)는 제14도의 단계(1007)을 위해 기술된 방식으로, 단계(1303)에서 일을 포함하는 장치(18)의 상태를 갱신한다. 또한, 호스트 어댑터(10)는 호출이 어보트의 목표 구동기(22)에 통지하는 단계(1304)에서 일 SB에 의해 지정된 목표 구동기 인터럽트 기능을 호스트 어댑터 구동기(23)가 호출하도록 호스트 어댑터 구동기(23)에 인터럽트를 발생한다. 마지막으로, 단계(1305)에서, 호스트 어댑터(10)는 단계(1300)에서 인터럽트되는 포인트로 리턴한다.
물론, 상기 기술된 실시예에 대해 여러 변화와 변형이 본 기술에 숙련자에게는 명백한 것을 이해해야 한다. 상기 변화 및 변형은 본 발명의 원리나 범주에 벗어남없어야 된다. 그러므로, 상기 모든 변화와 변형은 다음의 청구범위에서 커버하고 있다.
제1도는 본 발명의 실시예를 포함하는 컴퓨터 시스템의 블록 다이아그램.
제2도는 커널(kernel)요구에 응답하여 제1도의 목표 구동기의 작동의 흐름도.
제3 내지 4도는 인터럽트에 응답하여 제1도의 목표 구동기의 작동의 흐름도.
제5도는 "요구감지" 업무로부터 인터럽트에 응답하여 제1도의 목표구동기의 작동의 흐름도.
제6도는 데이타 구조를 할당하도록 호출에 응답하여 제1도의 호스트 어댑터 구동기의 작동의 흐름도.
제7도는 어드레스 번역정보를 제공하도록 호출에 응답하여 제1도의 호스트 어댑터 구동기 작동의 흐름도.
제8도는 실행을 위해 업무를 보내도록 호출에 응답하여 제1도의 호스트 어댑터 구동기 작동의 흐름도.
제9도는 직접 명령 또는 기능을 보내도록 제1도의 호스트 어댑터 구동기 작동의 흐름도.
제10도는 데이타 구조를 비할당하도록 제1도의 호스트 어댑터 구동기 작동의 흐름도.
제11도는 업무 및 직접 명령을 위한 데이타 구조의 블록다이아그램.
제12도는 기능을 위한 데이타 구조의 블록 다이아그램.
제13도는 제1도의 호스트 어댑터의 관련 작동의 흐름도.
제14도는 제9도의 "반송업무" 기능의 흐름도.
제15도는 제1도의 호스트 어댑터의 종료기능의 흐름도.

Claims (11)

  1. 주변장치(18)와 주변장치를 제어하기 위한 구동기(22), 및 구동기를 주변장치에 인터페이스하기 위한장치(10,17,23)을 포함하는 시스템에서 주변장치 작업을 수행하는 방법에 있어서, 상기 구동기가 제1호출(202)를 인터페이스 장치에 제공하는 단계, 상기 제1호출의 수신에 응답하여, 인터페이스 장치가 데이타구조(1100)를 구동기에 할당하는 목표, 상기 할당에 응답하여, 구동기가 주변장치를 제한하는 제1정보 데이타 구조와 작업의 실행의 종료되면 만들어지도록 호출을 지정하는 제2정보 데이타 구조내에 저장하는 단계, 구동기가 제2호출(208)를 인터페이스 장치에 제공하는 단계, 제2호출의 수신에 응답하여, 인터페이스 장치가 주변장치와 제l정보에 의해 제한된 작업과 협력하여 실행하는 단계, 작업의 실행 종료되면, 인터페이스 장치가 제2정보(1008)에 의해 지정된 호출을 구동기에 제공하는 단계, 인터페이스 장치로부터 호출수신에 따라, 구동기가 제3호출(제3도)을 인터페이스 장치에 제공하는 목표, 및 제3호출수신에 응답하여, 인터페이스 장치가 구동기로부터 데이타 구조를 비할당 (제10도)하는 단계를 구비하는 것을 특징으로 하는 통신 인터페이스 프로토콜 방법.
  2. 제1항에 있어서, 상기 제1 및 제2정보 데이타 구조내에 저장하는 단계는, 구동기가 어드레스 정보를 포함하는 제1정보를 데이타 구조내에 저장하고 제2정보를 데이타 구조내에 저장하는 단계, 구동기가 제4호출을 인터페이스 장치에 제공하는 단계, 및 상기 제4호출의 수신에 응답하여, 인터페이스 장치가 어드레스 정보를 중계하기 위해 데이타 구조 정보내에 저장하는 단계를 구비하는 것을 특징으로 하는 통신 인터페이스 프로토콜 방법.
  3. 제1항에 있어서, 작업을 실행하는 목표는 제2호출의 수신에 응답하여 다른 실행안된 작업을 가진 대기행렬내에 있게하는 단계, 주변장치와 협력하여, 대기행렬내에 있는 순서로 대기행렬내에 있는 작업을 실행(제13도 및 14도)하는 단계, 및 인터페이스 장치가 작업실행의 성공에 관해 제3정보를 데이타 구조내에 저장하는 목표를 구비하고, 제3호출을 인터페이스 장치에 제공하는 목표는 인터페이스 장치로부터 호출의 수신에 따라서, 작업실행이 성공적인지를 결정하도록 구동기가 제3정보를 조사하는 단계, 작업실행이 비성공적인지 결정에 응답하여, 구동기가 제4호출(306 내지 309)을 인터페이스 장치에 제공하는 단계, 및 제4호출수신에 응답하여, 인터페이스 장치가 소정의 대기행렬내에 있는 작업을 실행하기 전에 구동기에 의해 데이타 구조내에 저장된 정보에 의해 제한된 대기행렬내에 있지 않은 작업을 실행하는 단계를 구비하는 것을 특징으로 하는 통신 인터페이스 프로토콜 방법.
  4. 제3항에 있어서, 제4호출수신에 응답하여 작업을 실행하는 단계는 주변장치와 협력하여, 소정의 대기행렬내에 있는 작업을 실행하기 이전에, 제1정보에 의해 제한된 성공못한 실행된 작업을 재실행하는 단계를 구비하는 것을 특징으로 하는 통신 인터페이스 프로토콜 방법.
  5. 제3항에 있어서, 제4호출을 제공하는 단계는 작업실행이 성공못한 것의 결정에 응답하여 구동기가 제2작업을 제한하는 제4정보를 데이타 구조내에 저장하는 단계를 구비하고, 제4호출의 수신에 응답하여 작업을 실행하는 목표는 소정의 대기행렬내에 있는 작업을 실행하기 이전에 제4정보에 의해 제한된 작업을 실행하는 목표를 구비하는 것을 특징으로 하는 통신 인터페이스 프로토콜 방법.
  6. 주변장치 작업을 수행하고, 주변장치(18)와, 주변 장치를 제어하는 구동기(22) 및 구동기를 주변장치에 인터페이스하기 위한 장치(10,17,23)를 포함하는 장치에 있어서, 상기 구동기는 데이타 구조 할당을 위해 인터페이스 장치에 제1호출(202)를 제공하기 위한 수단, 데이타 구조의 할당에 응답하여 주변장치 작업을 제한하는 제1정보와 작업실행이 종료되면 만들어지도록 호출을 지정하는 제2정보를 데이타 구조내에 저장하기 위한 수단, 작업실행을 위해 인터페이스 장치에 제2호출(208)을 제공하기 위한 수단, 및 제2정보에 의해 지정된 호출의 인터페이스 장치로부터 수신에 응답하여, 데이타 구조 비할당을 위해 인터페이스 장치에 호출(제3도)를 제공하기 위한 수단을 구비하고, 상기 인터페이스 장치는, 제1호출에 응답하여, 작업을 위해 구동기에 데이타구조(1100)을 할당(제6도)하기 위한 수단, 제2호출에 응답하여, 장치와 협력으로 제1정보에 의해 제한된 주변장치 작업을 실행하기 위한 수단, 작업실행이 종료되면, 세2정보(1008)에 의해 지정된 호출을 구동기에 제공하기 위한 수단 및, 제3호출에 응답하여, 구동기 및 작업으로부터 데이타 구조를 비할당하기 위한 수단을 구비하는 것을 특징으로 하는 통신 인터페이스 프로토콜 장치.
  7. 제6항에 있어서, 데이타 구조내에 정보를 저장하기 위한 상기 수단은 어드레스 정보를 포함하는 제1정보를 데이타 구조내에 저장하기 위한 수단, 제2호출 이전에, 인터페이스 장치에 제4호출(205)를 제공하기 위한 수단을 구비하고, 상기 인터페이스 장치는 제4호출의 수신에 응답하여, 어드레스 정보를 전환하기 위해 정보를 데이타 구조내에 저장하기 위한 수단을 더 구비하는 것을 특징으로 하는 통신 인터페이스 프로토콜 장치.
  8. 제6항에 있어서, 상기 작업실행을 위한 수단은 제2호출의 수신에 응답하여, 다른 실행안된 작업을 가진 데이타 구조내에 저장된 정보에 의해 제한된 작업을 대기행렬(제8도)내에 있기 위한 수단, 장치와 협력으로, 대기행렬내에 있는 순서로 대기 행렬내에 있는 작업을 실행(게13 및 14도)하기 위한 수단, 작업실행에 관한 정보를 데이타 구조내에 저장(911,9l5,1002)하기 위한 수단, 및 구동기로부터 제4호출의 수신에 응답하여, 소정의 대기행렬내에 있는 작업의 실행 이전에, 구동기에 의해 데이타 구조내에 저장된 정보에 의해 제한된 대기행렬내에 있지 않는 작업을 실행하는 수단을 구비하고, 비할당을 위해 호출을 제공하는 수단은 제2정에 의해 지정된 호출의 인터페이스 장치로 부터 수신에 응답하여, 실행의 성공을 결정하도록 작업의 실행에 관한 정보를 조사하기 위한 수단과 작업실행이 성공하지 못한 결정수단에 의한 결정에 응답하여, 제4호출(306 내지 309)을 인터페이스 장치에 제공하는 수단을 구비하는 것을 특징으로 하는 통신 인터페이스 프로토콜 장치.
  9. 주변장치 작업을 수행하고, 주변장치(18)와 주변 장치를 제어하는 장치 구동기 및 장치를 장치 구동기에 결합하기 위한 인터페이스 장치를 구비하는 시스템에서 장치 구동기(22)와 인터페이스 장치(10,17,23)사이에 사용하기 위한 통신 인터페이스에 있어서, 데이타 구조(제11도), 데이타 구조를 구동기에 할당하기 위해 장치 구동기에 의해 인터페이스 장치에 제공된 예정된 제1기능호출(400,500), 구동기에 의해 데이타 구조내에 저장된 정보에 의해 제한되는 주변장치 작업의 장치와 협력하여 실행을 위해 장치 구동기에 의해 인터페이스 장치에 제공된 예정된 제2기능 호출(600,700), 작업의 실행이 종료되면, 인터페이스 장치에 의해 구동기에 의해 데이타 구조내에 저장된 정보로 지정된 기능의 장치 구동기에 제공된 제3기능 호출(300), 및 구동기로부터 데이타 구조를 비할당하기 위해 장치 구동기에 의해 인터페이스 장치에 제공된 예정된 제4기능호출(800)을 구비하는 것을 특징으로 하는 통신 인터페이스.
  10. 제9항에 있어서, 상기 제1기능호출은 구동기에 의해 데이타 구조내에 저장되고, 작업을 제한하는 어드레스 정보를 선환하기 위한 정보를 데이타 구조내에 저장하기 위한 기능 호출(500)를 포함하는 것을 특징으로 하는 통신 인터페이스.
  11. 제9항에 있어서, 상기 제2기능 호출은 작업이 대기행렬내에 있는 순서로 실행을 위해 다른 실행안된 작업을 가진 작업을 대기행렬내에 있게 하기 위한 호출(600)이나, 소정의 대기행렬내에 있는 작업의 실행 이전에, 구동기에 의해 데이타 구조내에 저장된 청보에 의해 제한된 대기행렬내에 있지 않는 작업의 실행을 위한 호출(700)을 구비하는 것을 특징으로 하는 통신 인터페이스.
KR1019880700564A 1986-09-22 1987-06-17 통신 인터페이스 프로토콜 방법 및 장치 KR950002714B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US909.687 1986-09-22
US06/909,687 US4975829A (en) 1986-09-22 1986-09-22 Communication interface protocol
PCT/US1987/001428 WO1988002151A1 (en) 1986-09-22 1987-06-17 Communication interface protocol

Publications (2)

Publication Number Publication Date
KR880701916A KR880701916A (ko) 1988-11-07
KR950002714B1 true KR950002714B1 (ko) 1995-03-24

Family

ID=25427664

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019880700564A KR950002714B1 (ko) 1986-09-22 1987-06-17 통신 인터페이스 프로토콜 방법 및 장치

Country Status (7)

Country Link
US (1) US4975829A (ko)
EP (1) EP0324737B1 (ko)
JP (1) JPH0619753B2 (ko)
KR (1) KR950002714B1 (ko)
CA (1) CA1294711C (ko)
SG (1) SG59793G (ko)
WO (1) WO1988002151A1 (ko)

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5475836A (en) * 1987-04-01 1995-12-12 Lotus Development Corporation Interface for providing access to external data sources/sinks
US5155838A (en) * 1988-04-28 1992-10-13 Kabushiki Kaisha Toshiba Computer system with emulation mechanism
US5261075A (en) * 1988-08-16 1993-11-09 Kabushiki Kaisha Csk Optical recording medium access system
US5257393A (en) * 1989-04-19 1993-10-26 Jrm Consultants, Inc. Serially controlled programmable test network
US5226160A (en) * 1989-07-18 1993-07-06 Visage Method of and system for interactive video-audio-computer open architecture operation
US5363487A (en) * 1989-08-29 1994-11-08 Microsoft Corporation Method and system for dynamic volume tracking in an installable file system
EP0419064A3 (en) * 1989-09-22 1992-08-05 International Business Machines Corporation Computer system having apparatus for providing pointing device independent support in an operating environment
CA2010591C (en) * 1989-10-20 1999-01-26 Phillip M. Adams Kernels, description tables and device drivers
US5249279A (en) * 1989-11-03 1993-09-28 Compaq Computer Corporation Method for controlling disk array operations by receiving logical disk requests and translating the requests to multiple physical disk specific commands
JPH03214225A (ja) * 1990-01-19 1991-09-19 Tokico Ltd 磁気ディスク装置
US5179666A (en) * 1990-06-07 1993-01-12 Unisys Corporation Block oriented peripheral device interface
KR920001351A (ko) * 1990-06-30 1992-01-30 이헌조 Id 처리전용 scsi 버스 인터페이스 로직
CA2047459A1 (en) * 1990-07-20 1992-01-21 Randy J. Longsdorf Apparatus for communicating between systems having different communications standards
US5446877A (en) * 1990-11-13 1995-08-29 Nakamichi Peripherals Corporation Method and apparatus for operation of a data archival apparatus allowing for coupling of the data archival device with an ide interface
US5655147A (en) * 1991-02-28 1997-08-05 Adaptec, Inc. SCSI host adapter integrated circuit utilizing a sequencer circuit to control at least one non-data SCSI phase without use of any processor
IL100127A0 (en) * 1991-03-11 1992-08-18 Future Domain Corp Scsi controller
US5265239A (en) * 1991-04-08 1993-11-23 Ardolino Anthony A Method for remotely accessing service programs of a local processing system supporting multiple protocol stacks and multiple device drivers
KR940003319B1 (ko) * 1991-10-09 1994-04-20 주식회사 금성사 피씨/씨디-롬 드라이브의 인터페이스 방법 및 그 시스템
US5517636A (en) * 1992-01-07 1996-05-14 Unisys Corporation Platform independent data communication system and method
US5402072A (en) * 1992-02-28 1995-03-28 International Business Machines Corporation System and method for testing and fault isolation of high density passive boards and substrates
US5508821A (en) * 1992-04-09 1996-04-16 Matsushita Electric Industrial Co., Ltd. Image scanner and image forming apparatus with an interface for connection with an external computer
US5657471A (en) * 1992-04-16 1997-08-12 Digital Equipment Corporation Dual addressing arrangement for a communications interface architecture
US5386514A (en) * 1992-04-16 1995-01-31 Digital Equipment Corporation Queue apparatus and mechanics for a communications interface architecture
US5386524A (en) * 1992-04-16 1995-01-31 Digital Equipment Corporation System for accessing information in a data processing system
CA2092631C (en) * 1992-06-19 1997-04-08 Don Steven Keener Physical partitioning of logically continuous bus
US5659690A (en) * 1992-10-15 1997-08-19 Adaptec, Inc. Programmably configurable host adapter integrated circuit including a RISC processor
US5734924A (en) * 1993-08-27 1998-03-31 Advanced System Products, Inc. System for host accessing local memory by asserting address signal corresponding to host adapter and data signal indicating address of location in local memory
US5781798A (en) * 1993-12-30 1998-07-14 International Business Machines Corporation Method and apparatus for providing hot swapping capability in a computer system with static peripheral driver software
US5590313A (en) * 1994-06-30 1996-12-31 International Business Machines Corporation Multiple protocol device interface subsystem and method
US5625800A (en) * 1994-06-30 1997-04-29 Adaptec, Inc. SCB array external to a host adapter integrated circuit
US5564023A (en) * 1994-06-30 1996-10-08 Adaptec, Inc. Method for accessing a sequencer control block by a host adapter integrated circuit
US5729719A (en) * 1994-09-07 1998-03-17 Adaptec, Inc. Synchronization circuit for clocked signals of similar frequencies
US5548788A (en) * 1994-10-27 1996-08-20 Emc Corporation Disk controller having host processor controls the time for transferring data to disk drive by modifying contents of the memory to indicate data is stored in the memory
US6480903B1 (en) * 1995-08-24 2002-11-12 Compaq Information Technologies Group, L.P. Hardware component interface for desktop computer management systems
US5923876A (en) * 1995-08-24 1999-07-13 Compaq Computer Corp. Disk fault prediction system
US5781615A (en) * 1995-08-30 1998-07-14 Lucent Technologies Inc. Fully distributed message storage facilities in a distributed switching system
US5623538A (en) * 1995-08-30 1997-04-22 Lucent Technologies Inc. Shared distribution of internal message storage facilities by a plurality of communication terminals
US5752032A (en) * 1995-11-21 1998-05-12 Diamond Multimedia Systems, Inc. Adaptive device driver using controller hardware sub-element identifier
US6289396B1 (en) 1995-11-21 2001-09-11 Diamond Multimedia Systems, Inc. Dynamic programmable mode switching device driver architecture
US6393495B1 (en) * 1995-11-21 2002-05-21 Diamond Multimedia Systems, Inc. Modular virtualizing device driver architecture
US6009476A (en) * 1995-11-21 1999-12-28 Diamond Multimedia Systems, Inc. Device driver architecture supporting emulation environment
US6452927B1 (en) 1995-12-29 2002-09-17 Cypress Semiconductor Corporation Method and apparatus for providing a serial interface between an asynchronous transfer mode (ATM) layer and a physical (PHY) layer
US5764891A (en) * 1996-02-15 1998-06-09 Rosemount Inc. Process I/O to fieldbus interface circuit
US5848272A (en) * 1996-06-04 1998-12-08 Lucent Technologies Inc. Object-oriented intra-process messaging arrangement for windows environments
US6148346A (en) * 1996-06-20 2000-11-14 Peerless Systems Imaging Products, Inc. Dynamic device driver
US6651104B1 (en) * 1996-11-12 2003-11-18 Ericsson Inc. Multi-layered interface for interconnecting application programs to system bus lines for electronic devices
US6006292A (en) * 1997-03-13 1999-12-21 Adaptec, Inc. Method of managing hardware control blocks utilizing endless queue maintained to never be empty and containing tail pointer only accessible by process executing on system processor
US5938747A (en) * 1997-03-13 1999-08-17 Adapter, Inc. Hardware command block delivery queue for host adapters and other devices with onboard processors
US6012107A (en) * 1997-05-22 2000-01-04 Adaptec, Inc. Hardware control block delivery queues for host adapters and other devices with onboard processors
US6304910B1 (en) * 1997-09-24 2001-10-16 Emulex Corporation Communication processor having buffer list modifier control bits
US6343320B1 (en) 1998-06-09 2002-01-29 Compaq Information Technologies Group, L.P. Automatic state consolidation for network participating devices
US6167448A (en) * 1998-06-11 2000-12-26 Compaq Computer Corporation Management event notification system using event notification messages written using a markup language
US6526442B1 (en) 1998-07-07 2003-02-25 Compaq Information Technologies Group, L.P. Programmable operational system for managing devices participating in a network
US6131118A (en) * 1998-07-07 2000-10-10 Compaq Computer Corporation Flexible display of management data in a programmable event driven processing system
US6202112B1 (en) * 1998-12-03 2001-03-13 Intel Corporation Arbitration methods to avoid deadlock and livelock when performing transactions across a bridge
US6704824B1 (en) * 1999-07-27 2004-03-09 Inline Connection Corporation Universal serial bus adapter with automatic installation
US6832379B1 (en) * 1999-08-17 2004-12-14 Emc Corporation Computer architecture utilizing layered device drivers
US6421742B1 (en) * 1999-10-29 2002-07-16 Intel Corporation Method and apparatus for emulating an input/output unit when transferring data over a network
US6990528B1 (en) 2000-10-19 2006-01-24 International Business Machines Corporation System area network of end-to-end context via reliable datagram domains
US7099955B1 (en) 2000-10-19 2006-08-29 International Business Machines Corporation End node partitioning using LMC for a system area network
US6941350B1 (en) 2000-10-19 2005-09-06 International Business Machines Corporation Method and apparatus for reliably choosing a master network manager during initialization of a network computing system
US6766467B1 (en) * 2000-10-19 2004-07-20 International Business Machines Corporation Method and apparatus for pausing a send queue without causing sympathy errors
US7113995B1 (en) 2000-10-19 2006-09-26 International Business Machines Corporation Method and apparatus for reporting unauthorized attempts to access nodes in a network computing system
US7636772B1 (en) 2000-10-19 2009-12-22 International Business Machines Corporation Method and apparatus for dynamic retention of system area network management information in non-volatile store
US6978300B1 (en) 2000-10-19 2005-12-20 International Business Machines Corporation Method and apparatus to perform fabric management
US20020073257A1 (en) * 2000-12-07 2002-06-13 Ibm Corporation Transferring foreign protocols across a system area network
US20020184379A1 (en) * 2001-06-04 2002-12-05 Geping Chen Forwarding data packets
US20020188433A1 (en) * 2001-06-06 2002-12-12 Honeywell International Inc. Generic device simulator for process control
US7366799B2 (en) * 2002-03-06 2008-04-29 Pharos Systems International, Inc. Document processing system including multi-device compatible interface and related methods
US6904476B2 (en) 2003-04-04 2005-06-07 Rosemount Inc. Transmitter with dual protocol interface
US20050154800A1 (en) * 2004-01-13 2005-07-14 Ofir Zohar Command serialization
DE102004007994B4 (de) * 2004-02-18 2007-07-12 Infineon Technologies Ag Verfahren zum Zuweisen von Zugriffsrechten an ein Peripheriegerät
US7506214B2 (en) * 2004-04-22 2009-03-17 International Business Machines Corporation Application for diagnosing and reporting status of an adapter
US7281208B2 (en) * 2004-11-18 2007-10-09 Microsoft Corporation Image stitching methods and systems
US7966428B2 (en) * 2006-10-31 2011-06-21 Apple Inc. Control of electronic devices based on capability descriptions

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4315310A (en) * 1979-09-28 1982-02-09 Intel Corporation Input/output data processing system
US4410962A (en) * 1981-02-17 1983-10-18 Pitney Bowes Inc. Mailing system interface interconnecting incompatible communication systems
US4449182A (en) * 1981-10-05 1984-05-15 Digital Equipment Corporation Interface between a pair of processors, such as host and peripheral-controlling processors in data processing systems
US4475156A (en) * 1982-09-21 1984-10-02 Xerox Corporation Virtual machine control
US4542457A (en) * 1983-01-11 1985-09-17 Burroughs Corporation Burst mode data block transfer system
US4589063A (en) * 1983-08-04 1986-05-13 Fortune Systems Corporation Data processing system having automatic configuration
US4587628A (en) * 1983-12-05 1986-05-06 International Business Machines Corporation Method and apparatus for dynamic invocation of utilities
US4701848A (en) * 1984-11-19 1987-10-20 Clyde, Inc. System for effectively paralleling computer terminal devices
US4649479A (en) * 1985-02-28 1987-03-10 International Business Machines Corp. Device driver and adapter binding technique
US4754395A (en) * 1985-05-06 1988-06-28 Computer X, Inc. Network interface module with minimized data paths
US4747040A (en) * 1985-10-09 1988-05-24 American Telephone & Telegraph Company Dual operating system computer
US4748656A (en) * 1986-03-21 1988-05-31 American Telephone And Telegraph Company Personal computer--as an interface between a telephone station set and a business communication system
US4736321A (en) * 1986-05-05 1988-04-05 International Business Machines Corporation Communication method between an interactive language processor workspace and external processes
US4768150A (en) * 1986-09-17 1988-08-30 International Business Machines Corporation Application program interface to networking functions

Also Published As

Publication number Publication date
US4975829A (en) 1990-12-04
JPH02500059A (ja) 1990-01-11
CA1294711C (en) 1992-01-21
EP0324737A1 (en) 1989-07-26
EP0324737B1 (en) 1992-08-26
SG59793G (en) 1993-07-09
KR880701916A (ko) 1988-11-07
JPH0619753B2 (ja) 1994-03-16
WO1988002151A1 (en) 1988-03-24

Similar Documents

Publication Publication Date Title
KR950002714B1 (ko) 통신 인터페이스 프로토콜 방법 및 장치
US5600805A (en) Pass-through for I/O channel subsystem call instructions for accessing shared resources in a computer system having a plurality of operating systems
CA2059921C (en) Scsi device drivers for multitasking operating system
US5452455A (en) Asynchronous command support for shared channels for a computer complex having multiple operating systems
US5432924A (en) Method and system for selectively applying an appropriate object ownership model
US6237024B1 (en) Method and apparatus for the suspension and continuation of remote processes
JP2675955B2 (ja) データ処理システム
US6202095B1 (en) Defining characteristics between processing systems
JP2566727B2 (ja) 複数のシステムより成る多重処理環境における予約保持システムの捜出方法
CA2310099A1 (en) Computer system transparent data migration
JPH0535898B2 (ko)
WO1996035993A2 (en) Method and apparatus for consolidated buffer handling for computer device input/output
JPH076115A (ja) データ処理システムのソフトウェアユーザによるハードウェアデータ移動機能の制御方法、プロセッサ間の操作の同期化方法、及び複数の装置制御ブロックの付与方法
KR20010041297A (ko) 원격 프로세스의 중단과 연속 방법 및 장치
JPH0754471B2 (ja) デ−タ処理装置
US5664219A (en) Method and system for controlling servicability of adapters connected by an I/O channel interface to a computer system
US5754887A (en) System for limiting access of plurality of requests to peripheral bus by halting transmission to particular peripheral devices and resuming transmission after second predetermined time period expiration
US4855899A (en) Multiple I/O bus virtual broadcast of programmed I/O instructions
EP0614140B1 (en) System and method for avoiding deadlock in computer
US8151028B2 (en) Information processing apparatus and control method thereof
US6263421B1 (en) Virtual memory system that is portable between different CPU types
US5652914A (en) Method and system for superimposing, creating and altering I/O applications and controls within an I/O subsystem by using an I/O subchannel intercept field
US20030187906A1 (en) Allocation of potentially needed resources prior to complete transaction receipt
EP0948769A1 (en) Real time services in backwardly compatible operating systems
JP3176472B2 (ja) データ転送方式

Legal Events

Date Code Title Description
A201 Request for examination
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: 20021226

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee