KR19980024116A - 에스씨에스아이 메시지를 타겟으로서 처리하기 위한 방법 - Google Patents

에스씨에스아이 메시지를 타겟으로서 처리하기 위한 방법 Download PDF

Info

Publication number
KR19980024116A
KR19980024116A KR1019970036157A KR19970036157A KR19980024116A KR 19980024116 A KR19980024116 A KR 19980024116A KR 1019970036157 A KR1019970036157 A KR 1019970036157A KR 19970036157 A KR19970036157 A KR 19970036157A KR 19980024116 A KR19980024116 A KR 19980024116A
Authority
KR
South Korea
Prior art keywords
message
scsi
bus
register file
bytes
Prior art date
Application number
KR1019970036157A
Other languages
English (en)
Other versions
KR100255846B1 (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 KR19980024116A publication Critical patent/KR19980024116A/ko
Application granted granted Critical
Publication of KR100255846B1 publication Critical patent/KR100255846B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Bus Control (AREA)

Abstract

SCSI 콘트롤러에서, 비예측 메시지는 이 메시지를 구성하는 모든 바이트를 수신하고 콘트롤러내의 복수의 레지스터 파일로 부터 선택된 이용가능한 레지스터 파일내에 이들 바이트를 기억시킴으로써 어텐션 신호에 응답하여 자동으로 수신된다. 전체 메시지가 수신되고 기억된 후, 적합한 응답의 결정이 개시된다. 레지스터 파일은 또한 버스-개시 선택(bus-initiated selection) 동안 선택 정보를 유지하기 위해 사용되며, 이로써 추가의 기억장치가 요구되지 않는다.

Description

에스씨에스아이 메시지를 타겟으로서 처리하기 위한 방법
본 발명은 향상된 데이타 처리 시스템에 관한 것으로, 특히 데이타 처리 시스템내의 공유 버스를 실행시키기 위한 향상된 방법 및 장치에 관한 것이다. 더욱 구체적으로는 메시지를 데이타 처리 시스템내의 공유 버스상의 타겟 장치로서 처리하기 위한 향상된 방법 및 장치에 관한 것이다.
개인용 컴퓨터는 더욱 강력해져 마침내 미니컴퓨터 및 메인프레임 컴퓨터까지도 대체할 수 있는 수준에 이르게 되었다. 그러나, 다운사이징 과정에서 개인용 컴퓨터들간의 연결성 및/또는 개인용 컴퓨터와 주변장치간의 연결성이 중요한 사항으로서 부각되었다. 그러므로, 여러 개인용 컴퓨터간에 하드 드라이브, 프린터, 스캐너 또는 CD-ROM 교환기와 같은 주변장치를 공유할 수 있어야 한다는 점이 더욱 중요하게 되었다.
이러한 연결성을 달성하기 위한 한가지 중요한 수단은 소형 컴퓨터 시스템 인터페이스(SCSI 혹은 SCSI 버스 로 지칭됨)를 사용하는 것이다. SCSI 버스는 널리 사용되는 장치 독립형 병렬 버스(device independent parallel bus)이다. SCSI-1, SCSI-2 및 SCSI-3 를 포함하는 여러 버전의 SCSI 표준이 제안되었고, 그 후 인증되어 채택되고 있다. 본 명세서에 사용된 바와 같이, 발명을 설명하기 위한 예로서 SCSI-3 표준이 선택되기는 하지만, 약어 SCSI 는 이러한 표준들의 어떠한 표준을 지칭할 수도 있다. 이러한 표준에 대한 사양은 미국 뉴욕주의 뉴욕시에 소재한 미국립표준국(ANSI)의 문서번호 X3.131-1986(SCSI-1), X3.131-1994(SCSI-2) 및 X3.253-1995(SCSI-3 로 인증됨)로 부터 알 수 있으며, 이들 문서는 본 명세서에서 참조된다.
SCSI 표준은 버스 전도체의 물리적인 특징에 대한 정의, 이 전도체가 운반하는 신호의 전기적인 특징에 대한 정의 및 이들 신호의 의미(예를들어 제어 신호인지 데이타 신호인지)에 대한 정의를 포함한 버스의 기계적, 전기적 및 기능적 특징에 대한 사양을 제공한다.
SCSI 버스에 의해 상호접속된 장치들은 공통 50-전도체 케이블(common 50-conductor cable)을 사용하여 서로 데이지 체인(daisy chain:SCSI 버스에 접속된 장치에 다른 장치가 접속되는 형태)으로 연결된다. 케이블은 9개의 데이타 전도체(데이타용 8개와 패리티용 1개), 9개의 제어 전도체 및 나머지 개수의 전원 및 접지 전도체로 이루어진다. 16 비트의 더 넓은 정보 전송(데이타에 국한)이 가능하도록 68-전도체 케이블이 선택적으로 사용될 수도 있다. 통상적으로 각각의 전도체는 비활성 상태의 전압에 저항성으로 접속된다. 전도체를 통해 신호를 전송하기 위해, 장치는 전도체의 저항성 접속에 대항하여 전도체를 활성 상태의 전압으로 만들어야만 한다. 그렇지 못한 경우, 전도체는 비활성 상태로 복귀할 것이다.
동일 버스에 의해 6개 까지의 장치가 상호접속될 수 있기는 하지만, SCSI 버스를 통한 통신은 소정 시각에 2개의 장치 사이에서만 허용된다. 2개의 장치가 버스를 통해 통신할때, 한 장치는 이니시에이터(initiator)로서 동작하고 나머지 한 장치는 타겟(target)으로서 동작한다. 이니시에이터 장치는 버스를 통해 타겟 장치로 하여금 명령을 수행하도록 하는 반면 타겟 장치는 이니시에이터를 위해 명령을 수행한다. SCSI 버스상에 다수의 이니시에이터 및 다수의 타겟이 존재할 수 있다. 이니시에이터는 연산을 발생시키고(즉, I/O 처리가 수행되도록 요청함), 타겟은 이 연산을 수행한다. SCSI 버스상의 기억매체로 부터의 전송은 통상 동기식으로 이루어지며(비동기식 옵션이 정의되어 있기는 함), 타겟으로 부터의 요청 신호와 이니시에이터로 부터의 인식 신호의 교환을 수반하는 핸드세이킹(handshaking) 프로토콜을 따른다. 이러한 교환은 핸드세이킹 태스크를 위해 전용으로 사용되는 버스의 전도체를 통해 발생하며, SCSI 버스를 통한 각각의 개개 정보 전송 연산과 관련하여 수행된다.
더 높은 논리 레벨에서, SCSI 표준은 버스를 통한 데이타 전송을 관리하기 위한 프로토콜을 정의한다. 프로토콜은 SCSI 버스가 동작하지 않는 버스 정지 단계(bus free phase) 로 시작되는 여러 단계를 포함한다. 데이타 전송 처리를 개시하기 위해, 이니시에이터는 버스를 중재 버스 단계(arbitration bus phase) 로 진입시킨다. 중재 버스 단계 동안, 각각의 이니시에이터는 특정 이니시에이터에 고유한 SCSI 식별자(SCSI ID)와 대응하는 적절한 SCSI 버스 전도체를 단정함으로써 다른 이니시에이터와 버스를 중재한다. 각각의 SCSI ID 는 할당된 우선순위를 갖기 때문에 최우선순위를 갖는 이니시에이터가 버스의 제어에 승리할 것이다. 중재를 통해 버스 제어에 승리한 후, 최우선순위를 갖는 이니시에이터는 선택 버스 단계(selection bus phase) 의 대상이 되는 타겟 장치를 선택한다. 버스를 제어하는 이니시에이터는 SCSI 버스의 전도체상의 타겟의 SCSI ID 뿐만 아니라 자신의 SCSI ID 를 단정한다. 타겟은 버스 전도체를 통해 자신의 SCSI ID 를 검출하고 응답한다. 후속하는 명령 버스 단계(command bus phase) 에서, 타겟은 버스의 제어시에 이니시에이터로 부터 SCSI 명령을 요청한다.
더 높은 논리 레벨에서, SCSI 표준은 명령 및 상태 구조를 정의한다. 명령은 타겟으로 하여금 특정 연산을 수행하도록 요청하기 위해 이니시에이터에 의해 사용된다. SCSI 명령 해독기 블록(CDB:command descriptor block)으로 지칭되는 각각의 SCSI 명령은 6, 10, 12 또는 16 바이트중의 하나인 복수의 바이트로 구성된다. 명령은 수행될 연산의 유형을 나타내주는 SCSI 연산 코드를 포함하는 정보를 갖고 있다. 명령의 완료시 또는 여러 이유로 인해 명령이 타겟에 의해 완료될 수 없는 경우, 타겟은 자신의 상황을 이니시에이터에게 알려주기 위해 이니시에이터에게 상태 바이트(status byte)를 전송한다.
SCSI 표준의 사양들은 다중 프로토콜 레벨을 갖는 인터페이스를 정의하도록 조합한다. 정의된 인터페이스는 SCSI 부류의 장치에 한해서 컴퓨터 시스템에 장치 독립을 제공한다. 예를들어, 각종의 대량 기억장치(디스크 드라이브, 테이프 드라이브, 광드라이브 및 메모리 케시 등), 프린터, 마이크로프로세서 및 기타 장치들은 시스템 하드웨어 또는 소프트웨어를 변경시킬 필요없이 컴퓨터 시스템에 부가될 수 있다. 또한, 개개 장치의 특수한 특징 및 기능은 명령 구조내의 장치-종속 필드 및 코드의 사용을 통해 처리될 수 있다.
SCSI 버스에 부착된 하드 디스크 드라이브에서, 디스크 콘트롤러 호스트 인터페이스는 이니시에이터 장치로 부터 비예측 SCSI 메시지(unexpected SCSI message)를 수신하도록 요구된다. SCSI 메지지를 수신하기 위한 가장 공통적인 방법은 어텐션 상황(attention condition:유입 메시지를 나타내 줌)이 발생할때 호스트 인터페이스의 펌웨어에 인터럽트를 전송하는 것이다. 그리고나서, 펌웨어는 한번에 1바이트씩 메시지를 받아들이고, 메시지에 포함된 전체 바이트수를 판정하기 위해 바이트가 수신될때 바이트를 디코딩한다. 이로써 예외상황 처리(exception handling)가 더 늦어지게 되고, 최악의 경우에는 메시지 바이트당 한번의 인터럽트가 발생할 수도 있다.
유입 메시지를 나타내는 제 1 인터럽트(즉, 어텐션 상황)에 응답하여 전체 비예측 메시지를 수신할 수 있는 것이 바람직할 것이다. 또한 메시지의 길이를 판정하기 위해 메시지가 수신될때 마이크로프로세서에 의해 메시지를 디코딩하여야 하는 필요성을 제거하는 것이 바람직할 것이다. 또한, 메시지를 수신하기 위한 펌웨어에 의한 다중 명령의 필요성과 유입 메시지를 나타내는 어텐션 상황 후의 인터럽트를 방지하는 것이 유용할 것이다. 더우기, 비예측 메시지에 대한 이러한 자동 수신을 위한 추가의 전용 기억장치를 필요로 하지 않는 것이 바람직할 것이다.
도 1은 본 발명의 바람직한 실시예가 실행될 수 있는 데이타 처리 시스템을 도시하는 도면.
도 2는 본 발명의 바람직한 실시예가 실행될 수 있는 다른 실시예의 데이타 처리 시스템의 블록도.
도 3은 본 발명의 바람직한 실시예가 실행될 수 있는 데이타 처리 시스템을 위한 한가지 가능한 버스 구성을 도시하는 도면.
도 4는 본 발명의 바람직한 실시예에 따른 버스 콘트롤러의 일부분의 블록도.
도 5는 본 발명의 바람직한 실시예에 따라 SCSI 타겟에서의 비예측 메시지의 자동 수신을 펌웨어가 제어하는 프로세스에 대한 하이 레벨 흐름도.
* 도면의 주요부분에 대한 부호의 간단한 설명 *
310,320 : 이니시에이터 장치 330,340 : 타겟 장치
350 : SCSI 버스 360 : SCSI 콘트롤러
361 : SCSI 인터페이스부 362 : DMA 엔진
363 : 버퍼 매니저 364 : 디스크 콘트롤러
370 : 버퍼 메모리 380 : 마이크로프로세서
상기한 바와 같은 본 발명의 장점 및 특징뿐만 아니라 그 밖의 장점 및 특징은 다음의 상세한 설명을 통해 더욱 명백히 이해될 수 있을 것이다.
본 발명의 두드러진 신규의 특징은 첨부된 특허청구의 범위에 명시되어 있다. 그러나, 바람직한 사용 모드뿐만 아니라 본 발명 자체 및 그 이상의 목적과 장점은 도면과 관련하여 예시 실시예에 대한 다음의 상세한 설명을 참조함으로써 가장 명확하게 이해될 것이다.
도면을 참조하면, 도 1에는 본 발명의 바람직한 실시예가 실행될 수 있는 데이타 처리 시스템이 도시되어 있다. 데이타 처리 시스템(100)은 서브시스템(106,108,110)에 접속된 컴퓨터 시스템(102,104)을 포함한다. 이러한 서브시스템은 도시된 예에서는 디스크 드라이브 서브시스템이다. 컴퓨터 시스템(102,104)은 버스(112)에 의해 서브시스템(106,08,110)에 접속되어 있다. 본 발명에 의하면, 버스(112)는 SCSI 버스 또는 광섬유 채널 버스와 같은 다수의 상이한 버스 아키텍쳐를 이용하여 실시될 것이다.
도 2에는 본 발명의 바람직한 실시예가 실행될 수 있는 다른 실시예의 데이타 처리 시스템이 도시되어 있다. 데이타 처리 시스템(200)은 마이크로프로세서(212), 메모리(214), 키보드(216), 마우스(218) 등의 지정 장치, 어댑터 슬롯(219) 및 도시되지 않은 기타 시스템 구성장치를 접속시키는 시스템 버스(210)를 포함한다. 어댑터 슬롯(219)은 데이타 처리 시스템(200)을 도 1에 도시된 바와 같은 주변장치 및/또는 여러 컴퓨터 시스템을 링크시키는 외부 SCSI 버스로 접속시키는데 선택적으로 사용될 수 있다.
다시 도 2를 참조하면, SCSI 버스(230)는 또한 SCSI 어댑터(220)를 통해 시스템 버스(210)에 접속되어 있다. 그 결과, SCSI 버스(230)는 하드 디스크(231), 백업 테이프 드라이브(232), 프린터(233), 스캐너(234) 및 다른 입출력 주변장치와 같은 15개 까지의 추가 주변장치에 제거가능하게 접속될 수 있다. 당업자라면 SCSI 버스를 이용하는 데이타 처리 시스템의 어떠한 구성도 가능하다는 것을 알 수 있을 것이다.
도 3에는 본 발명의 바람직한 실시예가 실행될 수 있는 데이타 처리 시스템에 대한 한가지 가능한 버스 구성을 나타내고 있는 간략화된 블록도가 도시되어 있다. SCSI 버스 구성(300)은 SCSI 버스(350)에 접속된 타겟 장치(330,340) 및 이니시에이터 장치(310,320) 모두를 포함한다. 타겟 장치(340)는 도시된 예에서는 콘트롤러(360), 버퍼 메모리(370), 마이크로프로세서(380), 하드 디스크(391) 및 하드 디스크 서보(392)를 포함하는 하드 디스크 컴퓨터 주변장치이다. 콘트롤러(360)는 SCSI 인터페이스부(361), DMA 엔진(362), 버퍼 매니저(363) 및 디스크 콘트롤러(364)와 같은 기능 블록을 포함한다. 이러한 기능 블록들은 도시되지 않은 다른 블록과 마찬가지로 특정 어플리케이션에 따라 여러가지의 상이한 방식으로 실행될 수 있다. 콘트롤러(360)는 버퍼 메모리(370), 마이크로프로세서(380), 하드 디스크(391)로의 판독/기입 인터페이스 및 디스크 서보(392)에 대한 인터페이스들을 포함한다. 마이크로프로세서 인터페이스(382)는 SCSI 인터페이스(361), DMA 엔진(362), 버퍼 매니저(363) 및 디스크 콘트롤러(364)로서 도시되어 있는 기능 블록들에 접속되어 이들을 제어한다.
도 4에는 본 발명의 바람직한 실시예에 따른 SCSI 콘트롤러의 일부분에 대한 블록도가 도시되어 있다. SCSI 콘트롤러(400)의 일부분에는 공통 채널(420)에 접속된 SCSI 프로토콜 엔진(410)을 포함하며, 공통 채널(420)은 버퍼(430)를 경유하여 SCSI 버스에 접속되어 있다. 프로토콜 엔진(410)은 SCSI 단계의 순차적인 수행 및 메시지 바이트 전송/수신의 제어를 위한 필요 자동 논리를 제공하는 마스터 상태 장치(master state machine)이다. 레지스터 파일(440,450) 또한 공통 채널(420)에 접속되며, 각각의 레지스터 파일은 20 바이트까지를 유지한다. 이들 레지스터는 버스 개시 선택 동안의 선택 정보, 자동 메시지 수신 동안의 비예측 메시지, 및 프로토콜 엔진(410)에 대한 펌웨어 지휘 명령을 위한 기타 데이타를 유지하기 위해 사용된다. 각각의 레지스터 파일(440,450)은 관련 레지스터 파일 포인터(441,451)를 가지며, 이 레지스터 파일 포인터(441,451)는 레지스터 파일(440,450)을 색인하기 위해 사용된 카운터이다. 레지스터 파일(440,450) 및 프로토콜 엔진(410)은 레지스터 파일 보유 유닛(460)에 접속되며, 이 레지스터 파일 보유 유닛(460)은 레지스터 파일(440,450)이 공유 자원으로서 취급되고 사용을 위해 중재되며 사용전에 보유되도록 한다. 프로토콜 엔진(410)과 공통 채널(420)에 접속된 I/O 바이트 유닛(470)은 한번에 1바이트를 수신하는 종래의 콘트롤러 메시지 모드로도 펌웨어가 동작할 수 있도록 해준다.
도 4에 도시된 구성은 펌웨어로 하여금 SCSI 콘트롤러 연산의 세부사항을 제어할 수 있도록 해준다. 펌웨어는 바이트를 기본으로 하지 않고 메시지를 기본으로 할 것이므로, 항상 전체 메시지를 한번에 처리한다. 이니시에이터가 명령 단계 및 데이타 단계 동안 또는 모든 예측 메시지가 수신된 후의 선택 동안과 같은 비예측 어텐션 상황을 단정하는 경우, 콘트롤러는 마이크로프로세서를 인터럽트하기 전에 메시지를 수신하도록 자동적으로 시도할 것이다.
도 5에는 본 발명의 바람직한 실시예에 따라 SCSI 타겟에서의 비예측 메시지의 자동 수신을 펌웨어가 제어하는 프로세스에 대한 상위 레벨 흐름도가 도시되어 있다. 프로세스의 개시시에는 SCSI 타겟이 선택 또는 재선택에 응답하여 이니시에이터 장치에 접속된다(단계 510). SCSI 타겟은 이러한 상황에서 비예측 유입 메시지를 나타내는 어텐션 신호를 수신한다(단계 512). SCSI 버스상에서 비예측 어텐션 상황이 발생할때, 하드웨어는 레지스터 파일을 자동적으로 중재하여 레지스터 파일이 이용가능한지의 여부를 판정한다(단계 520).
레지스터 파일이 이용가능한 경우, 하드웨어는 이 레지스터 파일을 보유하며(단계 530), 하나의 전체 메시지를 자동적으로 수신한다(단계 532). 프로토콜 엔진은 메시지의 길이를 판정하기 위해 제 1 바이트에서 부터 메시지를 디코딩한다. 메시지를 전송하는 이니시에이터와의 핸드세이킹 신호는 메시지 바이트의 잔여분을 자동적으로 수신하기 위해 사용된다.
SCSI 프로토콜이 20바이트 이상의 표준 메시지를 포함하고 있지 않으므로, 전체 메시지가 수신되고 보유된 레지스터 파일에 기억될 수 있다. 전체 메시지가 수신될때, 하드웨어는 비예측 메시지에 대한 적절한 응답의 결정을 위해 마이크로프로세서를 인터럽트한다(단계 534).
단계 520 에서, 어텐션 상황이 수신되었을때 이용가능한 레지스터 파일이 없는 경우, 하드웨어는 마이크로프로세서를 즉각적으로 인터럽트한다(단계 540). 이 경우, 마이크로프로세서는 I/O 바이트 레지스터를 이용하여 한번에 1바이트씩 메시지를 판독하도록 진행하거나, 또는 2개의 레지스터 파일중의 한 레지스터 파일의 보유를 소거하고 그 레지스터 파일내로 메시지를 수신하기 위해 다중 바이트 메시지를 수신 명령을 발행하도록 진행할 것이다.
하드웨어는 한번에 오직 하나의 비예측 메시지만을 수신하도록 제한된다. 그러나, SCSI 프로토콜이 대부분의 메시지로 하여금 이전 메시지를 즉각적으로 후속하도록 하지는 못하므로, 한번에 오직 하나의 메시지만이 자동적으로 수신될 필요가 있다. 이로써 메시지가 수신될때 이 메지지의 각각의 개별적인 유형이 인식되어야 한다는 요건이 제거된다. 이점은 또한 자동적으로 수신될 메시지의 길이를 디코딩하기 위한 두번째 동기이며, 이로써 오직 하나의 메시지가 수신된다.
비예측 메시지를 수신하기 위해 사용된 동일 자원은 메시지를 전송하기 위해서도 사용된다. 그러므로, 단계 510 에서, 타겟이 이니시에이터에 접속되지 않은 경우, 펌웨어는 하나의 메시지(20바이트까지의)를 전송 또는 수신하기 위해 명령을 발행한다(단계 512). 펌웨어는 레지스터 파일을 중재하고(단계 520), 이용가능한 레지스터 파일이 존재하는 경우 이 이용가능한 레지스터 파일을 보유하며(단계 530), 하나의 메시지를 전송 또는 수신한다(단계 532). CDB 를 수신 및/또는 기억하기 위해 동일 자원이 사용될 수도 있다.
단계 530 을 참조하면, 레지스터 파일이 선택 메시지를 전송 또는 수신하기 위해 보유되고 비예측 메시지가 CDB 이전에 도달하는 경우(SCSI 프로토콜에서 공통 발생), 하드웨어는 비예측 메시지를 수신하도록 선택 메시지를 위해 이미 보유된 동일 레지스터 파일을 재선택한다. 그러므로, 비예측 메시지가 자동적으로 수신되는 동안 다른 레지스터 파일은 이전의 선택을 위해 보유된 채로 유지될 것이다.
메시지/CDB 의 버스 개시 수신과 비예측 메시지의 자동 수신간에 레지스터 파일을 공유함으로써, 메시지 처리를 위한 추가의 아키텍쳐 비용이 소요되지 않는다. 자원은 SCSI 콘트롤러 연산에 공통적인 다른 시퀀스와 공유된다.
본 발명의 바람직한 실시예에 대한 설명은 예시 및 설명을 위한 것이므로 본 발명을 개시된 형태로만 제한하려는 의도로 받아들여 져서는 안된다. 당업자라면 본 발명에 대한 각종 수정 및 변형이 가능할 것이며, 본 명세서에 개시된 실시예는 당업자가 특수한 사용에 적합한 각종 실시를 위해 본 발명을 이해할 수 있도록 발명의 원리와 실질적인 응용을 가장 명확히 설명하기 위해 선택 및 개시된 것이다.
SCSI 콘트롤러에서, 비예측 메시지는 이 메시지를 구성하는 모든 바이트를 수신하고 콘트롤러내의 복수의 레지스터 파일로 부터 선택된 이용가능한 레지스터 파일내에 이들 바이트를 기억시킴으로써 어텐션 신호에 응답하여 자동으로 수신된다. 전체 메시지가 수신되고 기억된 후, 적합한 응답의 결정이 개시된다. 레지스터 파일은 또한 버스-개시 선택(bus-initiated selection) 동안 선택 정보를 유지하기 위해 사용되며, 이로써 추가의 기억장치가 요구되지 않는다.

Claims (9)

  1. SCSI 콘트롤러에서 메시지를 자동적으로 수신하는 방법에 있어서,
    비예측 메시지의 전송을 나타내는 신호의 수신에 응답하여 전체 메시지를 구성하는 복수의 메시지 바이트를 자동적으로 수신하는 단계와;
    상기 전체 메시지의 길이를 디코딩하는 단계와;
    상기 콘트롤러내의 레지스터 파일에 상기 복수의 메시지 바이트를 기억시키는 단계를 포함하는 것을 특징으로 하는 메시지 수신 방법.
  2. 제 1 항에 있어서,
    상기 복수의 바이트는 제 1 바이트를 포함하며, 상기 전체 메시지의 길이는 상기 제 1 바이트에서 부터 디코딩되는 것을 특징으로 하는 메시지 수신 방법.
  3. 제 1 항에 있어서,
    상기 제 1 바이트를 제외한 상기 복수의 바이트의 잔여분은 자동적으로 수신되고 상기 레지스터 파일에 기억되는 것을 특징으로 하는 메시지 수신 방법.
  4. 제 1 항에 있어서,
    상기 레지스터 파일은 상기 콘트롤러내의 복수의 레지스터 파일로 부터 선택되는 것을 특징으로 하는 메시지 수신 방법.
  5. 제 4 항에 있어서,
    상기 복수의 레지스터 파일중의 레지스터 파일이 이용가능한지의 여부를 판정하는 단계를 추가로 포함하는 것을 특징으로 하는 메시지 수신 방법.
  6. 제 5 항에 있어서,
    상기 복수의 레지스터 파일중의 레지스터 파일이 이용가능하다는 판정에 응답하여 상기 이용가능한 레지스터 파일을 선택하는 단계와;
    상기 복수의 레지스터 파일중에서 이용가능한 레지스터 파일이 존재하지 않는다는 판정에 응답하여, 상기 복수의 레지스터 파일중의 레지스터 파일이 이용가능하게 될 수 있는지의 여부에 대한 판정을 개시하기 위해 마이크로프로세서에 신호를 전송하는 단계를 추가로 포함하는 것을 특징으로 하는 메시지 수신 방법.
  7. 제 4 항에 있어서,
    버스 개시 메시지를 전송 또는 수신하기 위해 상기 복수의 레지스터 파일을 사용하는 단계를 추가로 포함하는 것을 특징으로 하는 메시지 수신 방법.
  8. 제 4 항에 있어서,
    명령 해독기 블록을 수신하기 위해 상기 복수의 레지스터 파일을 사용하는 단계를 추가로 포함하는 것을 특징으로 하는 메시지 수신 방법.
  9. 제 1 항에 있어서,
    상기 복수의 메시지 바이트를 수신 및 기억한 후, 적합한 응답의 결정을 개시하기 위해 마이크로프로세서에 신호를 전송하는 단계를 추가로 포함하는 것을 특징으로 하는 메시지 수신 방법.
KR1019970036157A 1996-09-30 1997-07-30 에스씨에스아이 메시지를 타겟으로서 처리하기 위한 방법 KR100255846B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8/724,523 1996-09-30
US08/724,523 US5954806A (en) 1996-09-30 1996-09-30 Method to handle SCSI messages as a target

Publications (2)

Publication Number Publication Date
KR19980024116A true KR19980024116A (ko) 1998-07-06
KR100255846B1 KR100255846B1 (ko) 2000-05-01

Family

ID=24910756

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970036157A KR100255846B1 (ko) 1996-09-30 1997-07-30 에스씨에스아이 메시지를 타겟으로서 처리하기 위한 방법

Country Status (2)

Country Link
US (1) US5954806A (ko)
KR (1) KR100255846B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7164689B2 (en) * 2000-12-05 2007-01-16 Matsushita Electric Industrial Co., Ltd. Multi-initiator control unit and method
JP2004094478A (ja) * 2002-08-30 2004-03-25 Toshiba Corp ディスクドライブ及びデータ転送方法
US8281084B2 (en) * 2003-01-13 2012-10-02 Emlilex Design & Manufacturing Corp. Method and interface for access to memory within a first electronic device by a second electronic device
US7565471B2 (en) * 2005-09-16 2009-07-21 Emulex Design & Manufacturing Corporation Message signaled interrupt extended (MSI-X) auto clear and failsafe lock

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3701111A (en) * 1971-02-08 1972-10-24 Ibm Method of and apparatus for decoding variable-length codes having length-indicating prefixes
US4979055A (en) * 1987-06-02 1990-12-18 Conner Peripherals, Inc. Disk drive system controller architecture utilizing embedded real-time diagnostic monitor
US4864532A (en) * 1987-09-21 1989-09-05 Unisys Corporation Small computer systems interface--data link processor
US4965801A (en) * 1987-09-28 1990-10-23 Ncr Corporation Architectural arrangement for a SCSI disk controller integrated circuit
US5237660A (en) * 1988-12-27 1993-08-17 Ncr Corporation Control method and apparatus for controlling the data flow rate in a FIFO memory, for synchronous SCSI data transfers
US5204951A (en) * 1989-10-02 1993-04-20 International Business Machines Corporation Apparatus and method for improving the communication efficiency between a host processor and peripheral devices connected by an scsi bus
US5168571A (en) * 1990-01-24 1992-12-01 International Business Machines Corporation System for aligning bytes of variable multi-bytes length operand based on alu byte length and a number of unprocessed byte data
US5129062A (en) * 1990-03-01 1992-07-07 Loral Aerospace Corp. VMEbus-UCDP interface module
US5233692A (en) * 1990-04-06 1993-08-03 Micro Technology, Inc. Enhanced interface permitting multiple-byte parallel transfers of control information and data on a small computer system interface (SCSI) communication bus and a mass storage system incorporating the enhanced interface
US5293624A (en) * 1990-08-27 1994-03-08 Apple Computer, Inc Data chaining mechanism for SCSI devices
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
US5347638A (en) * 1991-04-15 1994-09-13 Seagate Technology, Inc. Method and apparatus for reloading microinstruction code to a SCSI sequencer
KR960001750B1 (en) * 1991-07-30 1996-02-05 Hitachi Ltd Scsi controller and the method for use on an information
CN1064776C (zh) * 1993-12-24 2001-04-18 索尼公司 信息数据记录重现装置及信息数据处理系统
US5504868A (en) * 1994-03-01 1996-04-02 Adaptec, Incorporated SCSI command descriptor block parsing state machine
US5758116A (en) * 1994-09-30 1998-05-26 Intel Corporation Instruction length decoder for generating output length indicia to identity boundaries between variable length instructions

Also Published As

Publication number Publication date
US5954806A (en) 1999-09-21
KR100255846B1 (ko) 2000-05-01

Similar Documents

Publication Publication Date Title
KR100263523B1 (ko) 선택적인 스킵을 사용한 자동동작화된 기록데이터 전송
US5802398A (en) Method and apparatus for allowing communication between a host computer and at least two storage devices over a single interface
US5499378A (en) Small computer system emulator for non-local SCSI devices
US6813688B2 (en) System and method for efficient data mirroring in a pair of storage devices
US5613163A (en) Method and system for predefined suspension and resumption control over I/O programs
EP0017670B1 (en) A data processing system arranged for controlling the transfer of data between a central processing unit and a storage device thereof
US6697885B1 (en) Automated DMA engine for ATA control
US5548788A (en) 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
US6477165B1 (en) Broadcast command packet protocol for SCSI interface
US5504868A (en) SCSI command descriptor block parsing state machine
EP0071782B1 (en) Multi subchannel adapter with a single status/address register
US6148366A (en) Storage system which transfers a command and data corresponding to said command subsequent to said command
US6105107A (en) ATAPI state machine controlled by a microcontroller for interfacing a DVD controller with an ATA host bus
KR100255846B1 (ko) 에스씨에스아이 메시지를 타겟으로서 처리하기 위한 방법
US5613076A (en) System and method for providing uniform access to a SCSI bus by altering the arbitration phase associated with the SCSI bus
EP0017666B1 (en) Methods of operating direct access storage means
US6112278A (en) Method to store initiator information for SCSI data transfer
JP2003288317A (ja) 端数ブロックデータ転送を検出し補償するシステムおよび方法
US7080198B1 (en) Method for snooping RAID 1 write transactions by a storage device
US20040044864A1 (en) Data storage
EP1625505B1 (en) Method, apparatus and program storage device for providing status from a host bus adapter
US6446150B1 (en) Method of and system for managing reselection on a SCSI bus
EP0929860B1 (en) Method and apparatus for reading data from a storage device
US6988166B1 (en) Method for snooping raid 1 read transactions by a storage device
EP1077400B1 (en) Transparent status interface

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20050124

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee