KR100346873B1 - Scsi 버스상의 재선택을 관리하기 위한 방법 및 시스템 - Google Patents

Scsi 버스상의 재선택을 관리하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR100346873B1
KR100346873B1 KR1020000070301A KR20000070301A KR100346873B1 KR 100346873 B1 KR100346873 B1 KR 100346873B1 KR 1020000070301 A KR1020000070301 A KR 1020000070301A KR 20000070301 A KR20000070301 A KR 20000070301A KR 100346873 B1 KR100346873 B1 KR 100346873B1
Authority
KR
South Korea
Prior art keywords
reselection
cycle
target
starter
scsi bus
Prior art date
Application number
KR1020000070301A
Other languages
English (en)
Other versions
KR20010061949A (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 KR20010061949A publication Critical patent/KR20010061949A/ko
Application granted granted Critical
Publication of KR100346873B1 publication Critical patent/KR100346873B1/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
    • 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
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • G06F13/4226Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with asynchronous protocol

Landscapes

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

Abstract

SCSI 버스상의 타겟에 의한 시동기의 재선택을 관리하기 위한 방법 및 시스템에 있어서, 타겟은 시동기를 재선택하기 위한 제1 재선택 사이클 동안 버스의 제어를 확보하려고 시도한다. 제1 재선택 사이클 동안 타겟이 버스의 제어를 확보하지 못하고, 타겟이 선택 사이클 동안 시동기에 의해 선택되면, 타겟은 선택 사이클을 프로세스한다. 그러나, 선택 사이클을 프로세싱함과 동시에, 버스가 프리로 된 실질적인 직후와 타겟이 선택 사이클 프로세싱을 완료하기 전에, 타겟은 시동기를 재선택하기 위한 제2 재선택 사이클 동안 버스의 제어의 확보를 시도한다.

Description

SCSI 버스상의 재선택을 관리하기 위한 방법 및 시스템{METHOD OF AND SYSTEM FOR MANAGING RESELECTION ON A SCSI BUS}
본 발명은 대략적으로 스몰 컴퓨터 시스템 인터페이스(Small Computer System Interface, SCSI) 분야에 관한 것이고, 더 구체적으로는 SCSI 버스상의 타겟에 의한 시동기(initiator)의 재선택을 관리하기 위한 방법 및 시스템에 관한 것이다.
스몰 컴퓨터 시스템 인터페이스(Small Computer System Interface, SCSI) 장치들을 구현함에 있어서, SCSI 버스에서의 정보 전송은 주어진 시간에 두 장치들 간에서 허용된다. 시동 장치(initiator device) (일반적으로 호스트 어댑터)는 입력/출력(I/O) 프로세스를 시작하고, 타겟 장치 (예를 들면, 디스크 드라이브)는 시동기에 의해 시작된 I/O 프로세스를 수행한다. SCSI 버스는 I/O 프로세스를 완료하기 위해 시동기와 타겟을 함께 링크하는 공통 자원이다. 버스상의 SCSI 장치들은 시동기들과 타겟들이 적어도 각각 하나씩 있다면, 시동기들과 타겟들의 임의의 조합일 수 있다. 버스에 물리적으로 접속될 수 있는 SCSI 장치들의 최대 개수는 구현된 데이터 패스(path)의 폭에 의해 결정된다.
정보는 선택 사이클 또는 재선택 사이클에서 전송될 수 있다. 시동기 선택 사이클은 시동기와 선택된 타겟 간의 I/O 프로세스를 시작하기 위해 시동기에 의해 시작된다. 가끔, I/O 프로세스는 선택 사이클 동안 완료되지 않을 수 있다. 예를 들어, 기록 동작 동안, 타겟의 입력 데이터 버퍼는 풀(full)이 될 수 있다. 이 경우, 타겟이 그의 버퍼 내의 정보를 프로세싱하는 동안 타겟은 다른 전송을 위해 SCSI 버스를 접속 분리하여 자유롭게 한다. 또 다른 예를 들면, 판독 동작 동안, 타겟은 정보를 구하기 위해 찾는 데에 특정 시간량보다 많이 필요할 수 있다. 다시, 타겟이 디스크상의 특정 위치를 찾는 동안, 타겟은 SCSI 버스를 접속 분리하여 자유롭게 할 수 있다. 어떠한 경우에도, 타겟이 I/O 프로세스를 재개할 준비가 되는 경우, 재선택 사이클을 시작하여 그렇게 한다.
선택과 재선택 사이클들은 둘 다 페이즈들(phases)을 통해 진행한다. 중재 페이즈는 선택 사이클 또는 재선택 사이클 중 어느 하나 동안 SCSI 장치가 SCSI 버스의 제어를 확보하기 위해 사용하는 메커니즘이다. 중재 페이즈는 버스 프리 페이즈로부터 진입된다. SCSI 장치 각각에는 SCSI ID가 할당된다. 전형적으로, 호스트 어댑터에는 최상위 SCSI ID가 할당된다. 더 낮은 우선 순위를 갖는 장치들에는 더 낮은 순위의 SCSI ID들이 할당된다. 중재 페이즈 동안, 버스의 제어를 확보하기를 원하는 장치 각각은 버스에 그의 SCSI ID를 주장한다. 중재 페이즈의 종료 때, 버스를 위해 중재하고 있는 장치 각각은 데이터 버스를 검사하여 그의 ID가 최상위인지를 판정한다. 어떤 장치가 중재에서 진다면, 장치는 모든 신호들을 해제하고 다음번 버스 프리 페이즈를 기다린다.
중재에서 이긴 장치는 계속해서 다음 페이즈로 들어가서, 버스 프리 페이즈로 모든 신호들을 방출할 때까지 SCSI 버스를 제어한다. 시동기가 중재에서 이긴다면, 시동기는 계속해서 선택 페이즈로 들어가서 I/O 프로세스를 보내고 싶은 타겟 장치를 선택한다. 타겟이 중재에서 이긴다면, 타겟은 계속해서 재선택 페이즈로 들어가서 발행된 I/O 프로세스를 갖는 시동기를 재선택한다.
태그형 큐잉 프로토콜(tagged queuing protocol)은 시동기가 다수의 I/O 프로세스들을 타겟에 보내도록 해주고, 타겟이 각 I/O 프로세스를 완료할 때까지 관리하도록 해준다. 타겟에 보내진 각 I/O 프로세스는 하나의 선택 사이클을 점유한다. 태그형 큐잉 선택 사이클 동안, 타겟은 I/O 명령을 자신의 명령 큐에 넣고 분리된다. 시동기는 타겟의 명령 큐가 풀이 될 때까지 계속해서 타겟에 I/O 프로세스들을 보낼 수 있다. 타겟이 그의 명령 큐 내의 명령에 의해 지정된 I/O 프로세스를 수행할 준비가 된 경우, 타겟은 재선택 사이클을 시작하기를 시도한다. 완료한 각 I/O 프로세스는 하나 이상의 재선택 사이클들을 점유한다.
태그형 큐잉이 활성화되어 많은 I/O 프로세스들이 타겟에 보내지는 경우, 또는 다수의 시동기들과 타겟들이 SCSI 버스에 접속된 경우에, 버스 쟁탈이 발생한다. 시동기와 타겟이 둘다 SCSI 버스의 제어를 확보하기 위해 중재하는 경우, 중재에서 진 장치는 그가 다시 중재할 수 있기 전에 다음번 버스 프리 페이즈까지 기다려야만 한다. 현재는, 만일 특정 타겟이 중재에서 지고 이 특정 타겟이 시동기에 의해 선택된 장치라면, 타겟은 그가 재선택을 위한 재중재를 할 수 있기 전에시동기로부터 수신한 I/O 프로세스를 그의 명령 큐에 넣는 것을 완료해야만 한다. I/O 프로세스를 큐잉하고 재선택을 위한 재중재 프로세스를 시작하는 데에는 상당한 시간이 소비된다. 이 지연량은 버스 활용도와 I/O 쓰루풋(throughput)을 감소시킨다.
도 1은 SCSI 버스에 접속된 호스트 어댑터 및 복수개의 장치들을 도시한 블록도.
도 2는 SCSI 인터페이스의 블록도.
도 3은 전형적인 SCSI 선택 사이클의 페이즈들을 도시한 도면.
도 4는 전형적인 SCSI 재선택 사이클의 페이즈들을 도시한 도면.
도 5는 본 발명에 따른 인터페이스 프로세서 마이크로코드에 의한 시작 재선택 프로세싱의 플로우챠트.
도 6은 본 발명에 따른 인터페이스 프로세서 마이크로코드 인터럽트 프로세싱의 플로우챠트.
도 7은 본 발명에 따른 프로그래머블 시퀀서의 프로그래밍의 플로우챠트.
<도면의 주요 부분에 대한 부호의 설명>
11: 호스트 어댑터
12: 저장 장치
13: SCSI 버스
14: SCSI 인터페이스 제어기
15: 선택 상태 머신
16: 재선택 상태 머신
17: 제어 레지스터들
18: 프로그래머블 시퀀서
본 발명은 SCSI 버스상의 타겟에 의해 시동기의 재선택을 관리하는 방법 및 시스템을 제공한다. 본 발명에 따르면, 타겟은 시동기를 재선택하기 위한 제1 재선택 사이클 동안 버스의 제어를 확보하기 위해 시도한다. 타겟이 제1 재선택 사이클 동안 버스의 제어를 확보하지 못하고 타겟이 선택 사이클 동안 시동기에 의해 선택되면, 타겟은 선택 사이클을 먼저 프로세싱한다. 그러나, 선택 사이클을 프로세싱함과 함께, 버스가 프리로 된 실질적인 직후와 타겟이 선택 사이클의 프로세싱을 완료하기 전에, 타겟은 시동기를 재선택하기 위한 제2 재선택 사이클 동안 상기 버스의 제어를 확보하기 위해 시도한다.
타겟이 제2 재선택 사이클 동안 SCSI 버스의 제어를 확보하면, 타겟은 선택 사이클을 적어도 부분적으로 프로세싱할 때까지 제2 재선택 사이클을 중지한다. 바람직하게, 타겟은 인터럽트 스테이터스 레지스터들을 저장함으로써 선택 사이클을 적어도 부분적으로 프로세싱한다. 타겟이 선택 사이클을 적어도 부분적으로 프로세싱한 후, 타겟은 선택 사이클을 프로세싱하면서 제2 재선택 사이클을 완료한다.
본 발명의 타겟은 인터페이스 제어기, 프로그래머블 시퀀서 및 인터페이스프로세서를 포함한다. SCSI 버스에 물리적으로 접속된 인터페이스 제어기는 재선택 상태 머신을 포함한다. 프로그래머블 시퀀서는 인터페이스 제어기에 작용적으로 접속된다. 프로그래머블 시퀀서는, 타겟이 시동기에 의해 선택되고 재선택 시작 지시자가 세트되면, 버스가 프리로 된 실질적인 직후에 재선택 상태 머신을 시작하도록 프로그램된다. 인터페이스 프로세서는 프로그래머블 시퀀서 및 인터페이스 제어기에 작용적으로 접속된다. 인터페이스 프로세서는 시동기를 재선택하기 위한 재선택 사이클의 시작 시에 재선택 시작 지시자를 세트하도록 프로그램된다.
프로그래머블 시퀀서는, 타겟이 버스를 확보하고 재선택 시작 지시자가 세트되면, 재선택 사이클을 중지하도록 프로그램된다. 인터페이스 프로세서는, 재선택 시작 플래그가 세트되면, 시동기의 선택 사이클을 적어도 부분적으로 프로세싱한 후 재선택 진행 지시자를 세트하도록 프로그램된다. 프로그래머블 시퀀서는, 인터페이스 프로세서가 재선택 진행 지시자를 세트하는 경우, 재선택 사이클을 완료하도록 프로그램된다.
이제 도면들을 참조하면, 먼저 도 1을 참조하면, 호스트 어댑터(11)와 복수개의 장치들(12)이 SCSI 버스(13)에 접속된다. 장치들(12)은 하드 디스크, 테이프 백업, 광학 드라이브, 프린터 및 스캐너와 같은 I/O 장치들을 포함한다.
각각의 장치(12)는 시동기 또는 타겟으로서 동작할 수 있다. 그러나, 장치들(12)은 전형적으로 타겟들로서 동작하고, 호스트 어댑터(11)는 전형적으로 시동기로서 동작한다. 호스트 어댑터(11)와 각각의 장치(12)는 자신의 고유 SCSI ID를 갖는다. 호스트 어댑터(11)는 전형적으로 최상위 SCSI ID를 갖고, 장치들(12)은그들의 우선 순위에 따른, 보다 하위의 SCSI ID들을 갖는다. 호스트 어댑터(11)와 장치들(12)은 그들 각각의 SCSI ID들에 의거해서 중재 동안 SCSI 버스의 제어를 확보한다.
이제 도 2를 참조하면, SCSI 장치의 인터페이스 컴포넌트들이 도시되어 있는데, 도 2에서 SCSI 장치는 저장 장치이다. 당해 분야의 기술자들은 저장 장치가 다른 컴포넌트들을 포함한다는 것을 알 것이다. 인터페이스 제어기(14)는 SCSI 버스(13)에 물리적으로 접속된다. 인터페이스 제어기(14)는 선택 사이클과 재선택 사이클 동안 각각 SCSI 프로토콜을 제어하는 선택 상태 머신(15)과 재선택 상태 머신(16)을 포함한다. 인터페이스 제어기(14)는 또한 제어 레지스터들(17)을 포함한다. 프로그래머블 시퀀서(18)는 인터페이스 제어기(14)에 접속되는 것이 가능하다. 프로그래머블 시퀀서(18)는 선택 상태 머신(15)과 재선택 상태 머신(16)에 접속된다. 프로그래머블 시퀀서(18)는 또한 제어 레지스터들(17)을 액세스한다. 프로그래머블 시퀀서(18)는 SRAM/DRAM(19)에 내장되고, 무엇보다도, 유효한 선택 또는 재선택을 위해 SCSI 버스(13)를 감시하도록 프로그램된다. 프로그래머블 시퀀서(18)는 작용적으로 인터페이스 프로세서(20)에 접속된다. 인터페이스 프로세서(20)는 제어 레지스터들(17)을 액세스하고, 프로그래머블 시퀀서(18)가 주어진 I/O 프로세스에 대해 언제 선택 또는 재선택 사이클이 발생할 지를 감시하도록 해준다. 프로그래머블 시퀀서(18)는 인터페이스 제어기(14)와 인터페이스 프로세서(20)를 둘 다 액세스한다. 프로그래머블 시퀀서(18)는 선택 또는 재선택 사이클 또는 페이즈가 완료하는 경우 인터페이스 프로세서(20)를 인터럽트한다. 프로그래머블 시퀀서(18)는 인터페이스 프로세서(20)의 마이크로코드에 의해 제어 레지스터들(17) 내에 세팅된 지시자들에 의거하여 인터페이스 제어기(14)의 상태 머신들(15, 16)을 작동시킬 수 있다.
이제 도 3을 참조하면, 본 발명에 따른 전형적인 선택 사이클이 도시되어 있다. 선택 사이클은 중재 페이즈(23)로부터 시작한다. 중재 페이즈(23) 동안 버스의 제어를 확보하고 싶은 각각의 장치나 호스트 어댑터는 데이터 버스에 그의 SCSI ID를 주장한다. 중재 페이즈(23)의 결정 때, 가장 최상위 ID를 갖는 장치가 이기고, 다른 모든 장치들은 모든 신호들을 방출한다. 이긴 장치가 시동기라면, 선택 사이클은 선택 페이즈(25)로 진행한다. 이긴 장치가 타겟이라면, 시스템은 재선택 사이클을 실행하는데, 재선택 사이클은 도 4를 참조하여 논의될 것이다.
도 3을 다시 참조하면, 선택 페이즈(25)에서 시동기는 I/O 프로세스를 위한 타겟을 선택한다. 그 다음, 선택 사이클은 메시지 아웃 페이즈(27)로 진행한다. 관례상, "인(in)"과 "아웃(out)"이란 전치사들은 시동기에 관한 것이다. 따라서, 메시지 아웃 페이즈(27) 동안, 메시지들은 시동기로부터 타겟에게 보내진다. 본 발명에 따른 태그형 큐잉에서, 메시지 또는 메시지들은 특정 큐잉된 I/O 프로세스를 식별하는 식별자, 큐 타입, 및 큐 태그를 포함한다. 그런 다음, 선택 사이클은 명령 페이즈(29)에 들어가는데, 명령 페이즈(29)에서 타겟은 명령 바이트들이 송신되도록 요청한다. 타겟이 명령 바이트들을 수신한 후, 선택 사이클은 메시지 인 페이즈(31)에 들어가는데, 이 페이즈에서 타겟은 접속 분리 메시지를 송신한다. 접속 분리 메시지 후에, 타겟은 버스를 해제시키고, 버스는 버스 프리 페이즈(33)에 들어간다. 버스 프리 페이즈(33)에서, I/O 프로세스들을 갖는 타겟들과 시동기들은 각각 재선택 또는 선택 사이클의 중재 페이즈에 들어갈 수 있다.
이제 도 4를 참조하면, 본 발명에 따른 전형적인 재선택 사이클이 도시되어 있다. 다시, 재선택 사이클은 중재 페이즈(35)로부터 시작한다. 중재에서 이긴 장치가 타겟이라면, 시스템은 재선택 페이즈(37)에 들어감으로써 재선택 사이클을 실행하는데, 재선택 페이즈(37)에서 타겟은 발행된 I/O 프로세스를 위한 시동기를 재선택한다. 그 다음, 재선택 사이클은 메시지 인 페이즈(39)로 진행한다. 메시지 인 페이즈(39) 동안, 타겟은 메시지 또는 메시지들을 재선택된 시동기에 보내는데, 상기 메시지 또는 메시지들은 특정 큐잉된 I/O 프로세스를 식별하는, 식별자, 큐 타입, 및 큐 태그를 포함한다. 그런 다음, 재선택 사이클은 데이터 페이즈(41)에 진입하고, 데이터 페이즈(41)에서 I/O 데이터는 타겟과 시동기 간에 전달된다. 데이터 페이즈(41)의 종료 때, 재선택 사이클은 스테이터스 페이즈(43)에 진입하고, 스테이터스 페이즈(43)에서 스테이터스 정보는 타겟과 시동기 사이에 교환된다. 그런 다음, 재선택 사이클은 메시지 인 페이즈(45)에 진입하고, 메시지 인 페이즈(45)에서 타겟은 명령 완료 메시지를 보낸다. 명령 완료 메시지 이후, 타겟은 버스를 해제하고, 버스는 버스 프리 페이즈(47)에 들어간다.
이제 도 5를 참조하면, 재선택 사이클의 시작 시의 인터페이스 프로세서 마이크로코드 프로세싱의 플로우챠트가 도시되어 있다. 블록 (49)에 도시한 바와 같이, 타겟이 재선택할 준비가 되면, 인터페이스 프로세서 마이크로코드는 블록 (51)에 나타낸 바와 같이 RESEL_START 지시자를 세트하고, 프로그래머블 시퀀서, 및 인터페이스 하드웨어 내의 선택 및 재선택 상태 머신을 시작하게 하고, 프로그래머블 시퀀서로부터의 인터럽트를 기다린다. 상세히 설명될 바와 같이, RESEL_START 지시자는 본 발명에 따른 프로그래머블 시퀀서와 인터페이스 프로세서 마이크로코드에 의해 사용된다.
이제 도 6을 참조하면, 본 발명에 따른 인터페이스 프로세서 마이크로코드 인터럽트 프로세싱의 플로우챠트가 도시되어 있다. 인터페이스 프로세서가 프로그래머블 시퀀서로부터 인터럽트를 수신하는 경우, 블록 (52)에서, 인터페이스 프로세서는 인터럽트 스테이터스 레지스터들을 저장한다. 그런 다음, 판정 블록 (53)에서 인터페이스 제어기는 인터럽트가 명령 수신 인터럽트인지를 판정한다. 명령 수신 인터럽트가 아니라면, 판정 블록 (55)에서 인터페이스 프로세서 마이크로코드는 인터럽트가 명령 완료 인터럽트인지를 검사한다. 명령 완료 인터럽트가 아니라면, 블록 (57)에서 인터페이스 프로세서는 예외 프로세싱을 수행하고, 블록 (59)에서 선택 대기용 시퀀서를 시작하게 한다. 판정 블록 (55)에서, 인터럽트가 명령 완료 인터럽트라면, 블록 (61)에서 인터페이스 프로세서는 명령 완료 인터럽트를 처리하고, 계속해서 프로세싱은 블록 (59)로 진행한다.
판정 블록 (53)을 다시 참조하면, 인터럽트가 명령 수신 인터럽트이면, 인터페이스 프로세서는, 판정 블록 (63)에서 RESEL_START 지시자가 세트되어 있는지를 판정한다. 만일 세트되어 있다면, 타겟은 재선택을 시도하고 있었던 시동기에 의해 선택되었던 것이고, 블록 (65)에서 인터페이스 프로세서는 GO_RESEL 지시자(재선택 진행 지시자)를 세트한다. 도 7을 참조하여 설명되는 바와 같이, 프로그래머블 시퀀서는 재선택 프로세스를 완료하는 것과 연관하여 GO_RESEL 지시자를 사용한다. 블록 (65)에서, GO_RESEL 지시자를 세팅 후, 인터페이스 프로세서는 블록 (67)에서 새로운 명령을 처리한다. 새로운 명령을 처리한 후, 인터페이스 프로세서는 판정 블록 (69)에서 RESEL_START 지시자가 세트되어 있는지를 검사한다. 세트되어 있다면, 프로세싱은 종료하고, 인터페이스 프로세서는 블록 (70)에서 명령 완료 인터럽트를 기다린다. RESEL_START 지시자가 세트되어 있지 않다면, 인터페이스 프로세서는 블록 (59)에서 선택 대기용 시퀀서를 시작하게 하고, 도 6의 프로세싱은 종료한다.
이제 도 7을 참조하면, 프로그래머블 시퀀서의 동작의 플로우챠트가 도시되어 있다. 프로그래머블 시퀀서는 블록 (71)에서 인터페이스 제어기 내의 선택 및 재선택 상태 머신들을 시작하게 한다. 그런 다음, 판정 블록 (73)에서, 프로그래머블 시퀀서는 타겟이 중재에서 이겼는지를 검사한다. 중재에서 이겼다면, 블록 (91)에서 프로그래머블 시퀀서는 RESEL_START 지시자를 클리어하고, 블록 (93)에서 재선택 사이클을 완료하고 명령 완료 인터럽트를 발생하고, 프로세싱은 종료한다. 블록 (73)에서, 타겟이 중재에서 졌다면, 프로그래머블 시퀀서는 판정 블록 (77)에서 타겟이 선택되었는지를 검사한다. 타겟이 선택되지 않았다면, 프로그래머블 시퀀서 프로세싱은 블록 (71)로 돌아가서 선택 및 재선택 상태 머신들을 시작하게 한다. 타겟이 선택되었다면, 블록 (79)에서, 프로그래머블 시퀀서는 선택 사이클이 완료되고 버스가 프리(free)로 되는 것을 기다린다. 버스가 프리로 되면, 프로그래머블 시퀀서는 블록 (81)에서 명령 수신 인터럽트를 인터페이스 프로세서에게 발생하고, 판정 블록 (83)에서 RESEL_START 지시자가 세트되었는지를 검사한다. 세트되어 있지 않다면, 프로그래머블 시퀀서 프로세싱은 종료한다. RESEL_START 지시자가 세트되어 있다면, 블록 (85)에서 프로그래머블 시퀀서는 인터페이스 하드웨어 내의 선택 및 재선택 상태 머신을 시작하게 한다. 판정 블록 (87)에서, 타겟이 중재에서 졌다면, 프로그래머블 시퀀서는 판정 블록 (77)로 돌아간다. 그러나, 타겟이 중재에서 이겼다면, 블록 (89)에 나타낸 바와 같이 프로그래머블 시퀀서는 재선택 사이클을 중지하고, 인터페이스 프로세서가 GO_RESEL 지시자를 세트하기를 기다린다. 프로그래머블 시퀀서를 중지하는 것은 도 6을 참조하여 논의했던 바와 같이 인터페이스 프로세서가 스테이터스 레지스터들을 저장하도록 해준다. 인터페이스 프로세서가 GO_RESEL 지시자를 세트하면, 프로그래머블 시퀀서는 블록 (91)에서 RESEL_START 지시자를 클리어한다. 그런 다음, 블록 (93)에서 프로그래머블 시퀀서는 재선택 사이크를 완료하고, 명령 완료 인터럽트를 인터페이스 프로세서에게 발생한다.
상술한 바로부터, 본 발명에 따르면, 시동기를 재선택하려고 시도하는 타겟이 시동기에 의해 선택되는 경우, 프로그래머블 시퀀서와 인터페이스 프로세서는 선택 사이클이 완전히 처리되기 전에 재선택 사이클을 시작하도록 연동한다. 본 발명은 이러한 선택 후, 재선택을 시작하기 위한 시간량을 상당히 감소시킨다. 본 발명은 SCSI 버스 동작율이 높은 동안 전체 버스 활용율을 향상시켜, 결과적으로 시스템 쓰루풋을 증가시킨다.

Claims (20)

  1. SCSI 버스상의 타겟에 의해 시동기(initiator)의 재선택을 관리하는 방법에 있어서,
    상기 시동기를 재선택하기 위한 제1 재선택 사이클의 중재 페이즈를 시작하는 단계;
    상기 타겟이 상기 제1 재선택 사이클의 상기 첫번째 중재 페이즈에서 지고 상기 타겟이 상기 시동기에 의해 선택될 때마다,
    선택 사이클이 완료되고 상기 SCSI 버스가 프리(free)로 되기를 기다리는 단계;
    상기 SCSI 버스가 프리로 된 실질적인 직후에, 상기 시동기를 재선택하기 위한 제2 재선택 사이클의 중재 페이즈를 시작하는 단계;
    상기 타겟이 상기 제2 재선택 사이클의 상기 중재 페이즈에서 이긴다면, 상기 타겟이 상기 선택 사이클을 적어도 부분적으로 처리할 때까지 상기 제2 재선택 사이클을 중지한 다음 상기 제2 재선택 사이클을 완료하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 타겟이 상기 선택 사이클을 적어도 부분적으로 처리할 때까지 상기 제2 재선택 사이클을 중지하는 상기 단계는,
    인터럽트 레지스터 스테이터스를 저장하는 단계; 및
    상기 제2 재선택 사이클을 완료하기 전에 상기 인터럽트 레지스터 스테이터스가 저장될 때까지 기다리는 단계
    를 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 타겟이 상기 선택 사이클을 적어도 부분적으로 처리할 때까지 상기 제2 재선택 사이클을 중지하는 상기 단계는,
    상기 인터럽트 스테이터스가 저장되는 경우, 재선택 진행 지시자를 세팅하는 단계; 및
    상기 재선택 진행 지시자가 세팅되면, 상기 제2 재선택 사이클을 완료하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 제1 재선택 사이클의 상기 중재 페이즈를 실질적으로 시작할 때 재선택 시작 식별자를 세팅하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  5. SCSI 버스상의 타겟에 의해 시동기의 재선택을 관리하는 방법에 있어서,
    상기 시동기를 재선택하기 위한 제1 재선택 사이클 동안 상기 SCSI 버스의 제어를 확보하기 위해 시도하는 단계;
    상기 타겟이 상기 제1 재선택 사이클 동안 상기 SCSI 버스의 제어를 확보하지 못하고 상기 타겟이 선택 사이클 동안 상기 시동기에 의해 선택되면, 상기 선택 사이클의 완료 시에 상기 SCSI 버스가 프리로 된 실질적인 직후에, 상기 타겟이 상기 선택 사이클의 프로세싱을 완료하면서 상기 시동기를 재선택하기 위한 제2 재선택 사이클 동안 상기 버스의 제어를 확보하기 위해 시도하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서,
    상기 타겟이 상기 제2 재선택 사이클 동안 상기 SCSI 버스의 제어를 확보하면, 상기 타겟이 상기 선택 사이클의 프로세싱을 적어도 부분적으로 완료할 때까지 상기 제2 재선택 사이클을 중지하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제6항에 있어서,
    상기 타겟이 상기 선택 사이클을 적어도 부분적으로 프로세싱하는 것을 완료한 후 상기 제2 재선택 사이클을 완료하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제6항에 있어서,
    상기 선택 사이클을 적어도 부분적으로 프로세싱하는 상기 단계는 인터럽트 스테이터스 레지스터들을 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. SCSI 버스상의 타겟에 의해 시동기의 재선택을 관리하는 방법에 있어서,
    상기 시동기를 재선택하기 위한 제1 재선택 사이클 동안 상기 SCSI 버스의 제어를 확보하기 위해 시도하는 단계;
    상기 타겟이 상기 제1 재선택 사이클 동안 상기 SCSI 버스의 제어를 확보하지 못하고 상기 타겟이 선택 사이클 동안 상기 시동기에 의해 선택된다면, 상기 선택 사이클을 프로세싱하는 단계; 및
    상기 선택 사이클의 완료시에 상기 SCSI 버스가 프리로 된 실질적인 직후와 상기 타겟이 상기 선택 사이클을 프로세싱을 완료하기 전에, 상기 시동기를 재선택하기 위한 제2 재선택 사이클 동안 상기 SCSI 버스의 제어를 확보하기 위해 시도하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서,
    상기 타겟이 상기 제2 재선택 사이클 동안 상기 SCSI 버스의 제어를 확보하면, 상기 타겟이 상기 선택 사이클의 프로세싱을 적어도 부분적으로 완료할 때까지 상기 제2 재선택 사이클을 중지하는 단계를 포함하는 것을 특징으로 하는 방법.
  11. 제10항에 있어서,
    상기 타겟이 상기 선택 사이클의 프로세싱을 적어도 부분적으로 완료한 후 상기 제2 재선택 사이클을 완료하는 단계를 포함하는 것을 특징으로 하는 방법.
  12. 제10항에 있어서,
    상기 선택 사이클의 프로세싱은 인터럽트 스테이터스 레지스터들을 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
  13. SCSI 버스상의 시동기의 재선택을 관리하는 타겟 시스템에 있어서,
    상기 SCSI 버스에 접속되고 재선택 상태 머신을 포함하는 인터페이스 제어기;
    상기 인터페이스 제어기에 작용적으로 접속되고, 상기 타겟이 상기 시동기에 의해 선택되고 재선택 시작 지시자가 세트되면, 상기 프로그래머블 시퀀서는 상기 SCSI 버스가 프리로 된 실질적인 직후에 상기 재선택 상태 머신을 시작하도록 프로그램된 프로그래머블 시퀀서; 및
    상기 프로그래머블 시퀀서에 작용적으로 접속되고, 상기 시동기를 재선택하기 위한 재선택 사이클의 시작시에 상기 재선택 시작 지시자를 세트하도록 프로그램된 인터페이스 프로세서
    를 포함하는 것을 특징으로 하는 타겟 시스템.
  14. 제13항에 있어서,
    상기 인터페이스 프로세서는 상기 타겟이 상기 시동기에 의해 선택되는 경우 선택 사이클을 프로세스하도록 프로그램된 것을 특징으로 하는 타겟 시스템.
  15. 제14항에 있어서,
    상기 인터페이스 프로세서는 상기 인터페이스 프로세서가 상기 선택 사이클의 프로세싱을 완료하는 경우 재선택 진행 지시자를 세트하도록 프로그램된 것을 특징으로 하는 타겟 시스템.
  16. 제15항에 있어서,
    상기 프로그래머블 시퀀서는, 상기 타겟이 상기 시동기에 의해 선택되고 상기 재선택 시작 지시자가 세트된 후 상기 타겟이 중재 페이즈에서 이긴다면, 재선택 사이클을 중지하도록 프로그램된 것을 특징으로 하는 타겟 시스템.
  17. 제16항에 있어서,
    상기 프로그래머블 시퀀서는, 상기 인터페이스 프로세서가 상기 재선택 진행 지시자를 세트하는 경우 상기 재선택 사이클을 완료하도록 프로그램된 것을 특징으로 하는 타겟 시스템.
  18. 제13항에 있어서,
    상기 프로그래머블 시퀀서는 상기 타겟이 선택된 선택 사이클의 완료시에 명령 수신 인터럽트를 발생하도록 프로그램된 것을 특징으로 하는 타겟 시스템.
  19. 제18항에 있어서,
    상기 재선택 시작 지시자가 세트되면, 상기 인터페이스 프로세서는 상기 명령 수신 인터럽트에 응답하여 인터럽트 스테이터스 레지스터들을 저장하고, 재선택 진행 지시자를 세트하도록 프로그램된 것을 특징으로 하는 타겟 시스템.
  20. 제19항에 있어서,
    상기 프로그래머블 시퀀서는, 상기 타겟이 상기 시동기에 의해 선택되고 상기 재선택 시작 지시자가 세트된 후 중재 페이즈에서 이긴다면, 상기 재선택 진행 지시자가 세트될 때까지 재선택 사이클을 중지하도록 프로그램된 것을 특징으로 하는 타겟 시스템.
KR1020000070301A 1999-12-02 2000-11-24 Scsi 버스상의 재선택을 관리하기 위한 방법 및 시스템 KR100346873B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/452,689 1999-12-02
US09/452,689 US6446150B1 (en) 1999-12-02 1999-12-02 Method of and system for managing reselection on a SCSI bus

Publications (2)

Publication Number Publication Date
KR20010061949A KR20010061949A (ko) 2001-07-07
KR100346873B1 true KR100346873B1 (ko) 2002-08-03

Family

ID=23797511

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000070301A KR100346873B1 (ko) 1999-12-02 2000-11-24 Scsi 버스상의 재선택을 관리하기 위한 방법 및 시스템

Country Status (8)

Country Link
US (1) US6446150B1 (ko)
EP (1) EP1118942B1 (ko)
JP (1) JP2001188750A (ko)
KR (1) KR100346873B1 (ko)
CN (1) CN1155895C (ko)
AT (1) ATE321303T1 (ko)
DE (1) DE60026802T2 (ko)
MY (1) MY118665A (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003034243A1 (en) * 2001-10-16 2003-04-24 Koninklijke Philips Electronics N.V. A computer system with a communication bus
US6973526B2 (en) * 2002-06-28 2005-12-06 Intel Corporation Method and apparatus to permit external access to internal configuration registers
US6990342B2 (en) * 2002-08-29 2006-01-24 Motorola, Inx. Method and apparatus for cell reselection within a communications system
CN101679212B (zh) 2007-05-14 2014-10-22 味之素株式会社 使谷氨酸的α型晶体析出的方法
US20090198876A1 (en) * 2008-01-31 2009-08-06 Jimmy Kwok Lap Lai Programmable Command Sequencer
DE102014204050A1 (de) * 2014-03-05 2015-09-10 Robert Bosch Gmbh Teilnehmerstation für ein Bussystem und Verfahren zur Verbesserung der Sendequalität in einem Bussystem

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4227346C2 (de) 1991-08-19 1999-09-09 Sequent Computer Systems Inc Gerät zur Datenübertragung zwischen mehreren, mit einem SCSI-Bus verbundenen Einheiten
US5613076A (en) 1994-11-30 1997-03-18 Unisys Corporation System and method for providing uniform access to a SCSI bus by altering the arbitration phase associated with the SCSI bus
US6065087A (en) * 1998-05-21 2000-05-16 Hewlett-Packard Company Architecture for a high-performance network/bus multiplexer interconnecting a network and a bus that transport data using multiple protocols

Also Published As

Publication number Publication date
US6446150B1 (en) 2002-09-03
EP1118942A3 (en) 2002-02-27
JP2001188750A (ja) 2001-07-10
DE60026802D1 (de) 2006-05-11
CN1155895C (zh) 2004-06-30
KR20010061949A (ko) 2001-07-07
DE60026802T2 (de) 2006-11-02
CN1298152A (zh) 2001-06-06
EP1118942A2 (en) 2001-07-25
EP1118942B1 (en) 2006-03-22
MY118665A (en) 2004-12-31
ATE321303T1 (de) 2006-04-15

Similar Documents

Publication Publication Date Title
US6311256B2 (en) Command insertion and reordering at the same storage controller
JP3140939B2 (ja) 入力/出力装置に対する複数チャネル・パスを有する入力/出力制御システム
EP0421614B1 (en) Computersystem having apparatus for improving the communication efficiency between a host processor and pheripheral devices connected by an SCSI bus
EP0071782B1 (en) Multi subchannel adapter with a single status/address register
US5129072A (en) System for minimizing initiator processor interrupts by protocol controller in a computer bus system
KR100346873B1 (ko) Scsi 버스상의 재선택을 관리하기 위한 방법 및 시스템
TW434491B (en) Increasing I/O performance through storage of packetized operational information in local memory
JP7417544B2 (ja) 割込みコントローラ
GB2291317A (en) Data transfer in SCSI computer
JP2950467B2 (ja) データ処理システム及び関連する方法
JPH04251323A (ja) 共有ディスク制御方式
US6934770B1 (en) Method for aborting data transfer commands
JP2621315B2 (ja) 情報処理装置
JPH02503124A (ja) 周辺装置コントローラ
JP3235207B2 (ja) 回線制御装置
JPH02282855A (ja) Dma転送制御方法
JPH06274440A (ja) Scsiバス制御におけるsave data point処理方法
JPH06250964A (ja) 制御装置
JPH0746334B2 (ja) インターフェース制御回路
JPH0424733B2 (ko)
JPH0375849A (ja) 記憶アクセス制御方式
JP2001265600A (ja) 処理装置のブート方法及びデータ処理システム
JPH0635847A (ja) Scsiプロトコルlsiにおけるコマンド受付方式
JP2003067319A (ja) データ転送装置
JPH02112050A (ja) Scsiバス制御方法

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

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee