KR101476075B1 - Facilitating transport mode input/output operations between a channel subsystem and input/output devices - Google Patents

Facilitating transport mode input/output operations between a channel subsystem and input/output devices Download PDF

Info

Publication number
KR101476075B1
KR101476075B1 KR1020137013505A KR20137013505A KR101476075B1 KR 101476075 B1 KR101476075 B1 KR 101476075B1 KR 1020137013505 A KR1020137013505 A KR 1020137013505A KR 20137013505 A KR20137013505 A KR 20137013505A KR 101476075 B1 KR101476075 B1 KR 101476075B1
Authority
KR
South Korea
Prior art keywords
control unit
data
transport
tccb
field
Prior art date
Application number
KR1020137013505A
Other languages
Korean (ko)
Other versions
KR20130095780A (en
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
Priority claimed from US13/173,772 external-priority patent/US8312176B1/en
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20130095780A publication Critical patent/KR20130095780A/en
Application granted granted Critical
Publication of KR101476075B1 publication Critical patent/KR101476075B1/en

Links

Images

Abstract

채널 서브시스템이 양방향 데이터 전송을 지원하는지를 표시하는 프로세스 로그인(PRLI) 요청 메시지를 컨트롤 유닛에, 상기 채널 서브시스템에 의해서, 송신하는 단계(sending); 상기 컨트롤 유닛이 양방향 데이터 전송을 지원하는지를 표시하는 PRLI 응답 메시지를 상기 컨트롤 유닛으로부터 수신하는 단계; 적어도 하나는 입력 데이터 전송을 명시하고 적어도 하나는 출력 데이터 전송을 명시하는, 복수의 커맨드들을 수집하는 단계(gathering); 상기 컨트롤 유닛에 전송될 출력 데이터를 포함하는 적어도 하나의 출력 데이터 메시지를 상기 컨트롤 유닛에 송신하는 단계 - 상기 복수의 커맨드들 중 적어도 하나와 관련된 상기 출력 데이터 메시지는 출력 데이터 전송을 명시함 -; 그리고 상기 호스트 컴퓨터 시스템의 메인 스토리지에 저장될 입력 데이터를 포함하는 적어도 하나의 입력 데이터 메시지를 상기 컨트롤 유닛으로부터 수신하는 단계를 수행하기 위한 컴퓨터 프로그램 제품이 제공된다.Sending, by the channel subsystem, a process login (PRLI) request message to the control unit indicating whether the channel subsystem supports bidirectional data transmission; Receiving from the control unit a PRLI response message indicating whether the control unit supports bi-directional data transmission; Collecting a plurality of commands, at least one of which specifies an input data transfer and at least one specifies an output data transfer; Transmitting to the control unit at least one output data message including output data to be transmitted to the control unit, the output data message associated with at least one of the plurality of commands specifying output data transmission; And receiving at least one input data message including input data to be stored in the main storage of the host computer system from the control unit.

Description

채널 서브시스템과 입력/출력 디바이스들 사이에 트랜스포트 모드 입력/출력 동작들을 용이하게 하는 방법, 장치 및 컴퓨터 프로그램 제품{FACILITATING TRANSPORT MODE INPUT/OUTPUT OPERATIONS BETWEEN A CHANNEL SUBSYSTEM AND INPUT/OUTPUT DEVICES}FIELD OF THE INVENTION [0001] The present invention relates to a method, apparatus, and computer program product for facilitating transport mode input / output operations between a channel subsystem and input / output devices.

본 발명은 일반적으로 입력/출력(I/O) 처리에 관한 것이며, 특히 트랜스포트 I/O 모드 동작들(transport mode I/O operations)을 용이하게 하기 위한 특징들을 제공하는 것에 관한 것이다.The present invention relates generally to input / output (I / O) processing and, more particularly, to providing features for facilitating transport mode I / O operations.

입력/출력(I/O) 동작들은 메모리와 I/O 처리 시스템의 I/O 디바이스들 사이에 데이터를 전송하기 위해 사용된다. 더 구체적으로 이야기하면, I/O 동작들을 실행함으로써, 데이터는 메모리로부터 하나 혹은 그 이상의 I/O 디바이스들에 라이트 되고(written), 데이터는 하나 혹은 그 이상의 I/O 디바이스들로부터 메모리로 리드된다(read).
Input / output (I / O) operations are used to transfer data between the memory and the I / O devices of the I / O processing system. More specifically, by executing I / O operations, data is written to one or more I / O devices from memory and data is read from memory into one or more I / O devices (read).

I/O 동작들의 처리를 용이하게 하기 위해서, I/O 처리 시스템의 I/O 서브시스템이 채용된다. I/O 서브시스템은 메인 메모리 및 I/O 처리 시스템의 I/O 디바이스들에 결합되어 메모리와 I/O 디바이스들 사이에 정보의 흐름을 지시한다. I/O 서브시스템의 한 예가 채널 서브시스템(a channel subsystem)이다. 채널 서브시스템은 통신 매체로서 채널 경로들(channel paths)을 사용한다. 각각의 채널 경로는 컨트롤 유닛(a control unit)에 결합된 채널을 포함하며, 컨트롤 유닛은 또한 하나 혹은 그 이상의 I/O 디바이스들에 더 결합된다.
To facilitate processing of I / O operations, the I / O subsystem of the I / O processing system is employed. The I / O subsystem is coupled to the I / O devices of the main memory and the I / O processing system to direct the flow of information between the memory and the I / O devices. One example of an I / O subsystem is a channel subsystem. The channel subsystem uses channel paths as a communication medium. Each channel path includes a channel coupled to a control unit, which is further coupled to one or more I / O devices.

채널 서브시스템 및 I/O 디바이스는 I/O 디바이스들과 메모리 사이에 데이터를 전송하기 위해 하나 혹은 그 이상의 커맨드 컨트롤 블록들(command control blocks)의 전송(transfer)을 지원하는 트랜스포트 모드(a transport mode)에서 동작할 수 있다. 트랜스포트 컨트롤 워드(a transport control word: TCW)는 실행될 하나 혹은 그 이상의 I/O 커맨드들을 명시한다(specify). 특정 I/O 동작들을 개시하는 커맨드들을 위해, TCW는 그 동작과 관련된 메모리 영역들, 메모리 영역으로부터 혹은 메모리 영역으로 전송이 완료될 때마다 취해야 할 액션(action), 및 기타 선택들(options)을 지정한다.
A channel subsystem and an I / O device are coupled to a transport mode (a transport) that supports the transfer of one or more command control blocks to transfer data between I / mode. The transport control word (TCW) specifies one or more I / O commands to be executed. For commands that initiate certain I / O operations, the TCW may include memory areas associated with the operation, actions to take each time a transfer is completed from the memory area or memory area, and other options Specify.

그러한 I/O 동작 시스템은 통상적으로 입력 데이터 동작들(예를 들어, 리드 동작들) 또는 출력 데이터 동작들(예를 들어 라이트 동작들)로서 개별 동작들의 처리와 관련되어 있다. 이들 시스템들은 통상적으로 양방향 동작들(bi-directional operations)을 지원하지 않으며, 특히 양방향 지원의 표시들을 생성하거나 혹은 전송하는 능력을 포함하지 않는다.
Such an I / O operation system typically involves the handling of individual operations as input data operations (e.g., read operations) or output data operations (e.g., write operations). These systems do not typically support bi-directional operations, and in particular do not include the ability to generate or transmit indications of bi-directional support.

한 실시 예는 컨트롤 유닛과 통신을 위해 구성된 호스트 컴퓨터 시스템에서 입력/출력(I/O) 동작 명령에 의해서 개시된 I/O 동작을 수행하기 위한 컴퓨터 프로그램 제품을 포함한다. 상기 컴퓨터 프로그램 제품은 아래의 단계를 포함하는 방법을 처리하기 위해 처리 회로(a processing circuit)에 의하여 리드 가능하고 상기 처리 회로에 의한 실행을 위한 명령들(instructions)을 저장하는 유형의 스토리지 매체(a tangible storage medium)를 포함하고, 상기 방법은: 상기 호스트 컴퓨터 시스템 내의 채널 서브시스템과 상기 컨트롤 유닛 사이에 링크(a link)를 초기화 하기 위해 프로세스 로그인(PRLI) 요청 메시지를 상기 컨트롤 유닛에, 상기 채널 서브시스템에 의해서, 송신하는 단계(sending) - 상기 PRLI 요청 메시지는 하나의 필드를 포함하고, 상기 필드는 상기 채널 서브시스템이 양방향 데이터 전송을 지원하는지를 표시하는 값을 가짐 -; 상기 컨트롤 유닛으로부터 PRLI 응답 메시지를 수신하는 단계 - 상기 PRLI 응답 메시지는 하나의 필드를 포함하고, 상기 필드는 상기 컨트롤 유닛이 양방향 데이터 전송을 지원하는지를 표시하는 값을 가짐 -; 양방향 데이터 전송이 지원된다는 표시를 호스트 운영체제(a host operating system)에 제공하는 단계: 및 상기 호스트 컴퓨터 시스템으로부터 수신된 상기 I/O 동작 명령을 실행하는 것에 응답하여, 하나의 방법을 수행하는 단계를 포함한다. 상기 방법은: 상기 호스트 컴퓨터 시스템으로부터 수신된 상기 I/O 동작 명령과 관련된 복수의 커맨드들을 수집하는 단계(gathering) - 상기 복수의 커맨드들 중 적어도 하나는 입력 데이터 전송을 명시하고 상기 복수의 커맨드들 중 적어도 하나는 출력 데이터 전송을 명시함 -; 상기 복수의 커맨드들을 상기 컨트롤 유닛으로 전송하는 단계(transferring); 상기 컨트롤 유닛에 전송될 출력 데이터를 포함하는 적어도 하나의 출력 데이터 메시지를 상기 컨트롤 유닛에 송신하는 단계 - 상기 복수의 커맨드들 중 적어도 하나와 관련된 상기 출력 데이터 메시지는 출력 데이터 전송을 명시함 -; 및 상기 호스트 컴퓨터 시스템의 메인 스토리지에 저장될 입력 데이터를 포함하는 적어도 하나의 입력 데이터 메시지를 상기 컨트롤 유닛으로부터 수신하는 단계 - 상기 복수의 커맨드들 중 적어도 하나와 관련된 상기 입력 데이터 메시지는 입력 데이터 전송을 명시함 - 를 포함한다.
One embodiment includes a computer program product for performing I / O operations initiated by input / output (I / O) operation instructions in a host computer system configured for communication with a control unit. The computer program product comprising a storage medium of the type readable by a processing circuit and for storing instructions for execution by the processing circuit for processing a method comprising the steps of: tangible storage medium, the method comprising: sending a process login (PRLI) request message to the control unit to initialize a link between the channel subsystem in the host computer system and the control unit, Sending by the subsystem, the PRLI request message comprising one field, the field having a value indicating whether the channel subsystem supports bi-directional data transmission; Receiving a PRLI response message from the control unit, the PRLI response message comprising a field, the field having a value indicating whether the control unit supports bidirectional data transmission; Providing an indication to the host operating system that bi-directional data transfer is supported; and in response to executing the I / O operation command received from the host computer system, performing one method . The method includes gathering a plurality of commands associated with the I / O operation command received from the host computer system, the at least one of the plurality of commands specifying input data transmission and the plurality of commands At least one of which specifies output data transmission; Transferring the plurality of commands to the control unit; Transmitting to the control unit at least one output data message including output data to be transmitted to the control unit, the output data message associated with at least one of the plurality of commands specifying output data transmission; And receiving from the control unit at least one input data message comprising input data to be stored in the main storage of the host computer system, wherein the input data message associated with at least one of the plurality of commands comprises: Explicitly stated.

다른 실시 예는 컨트롤 유닛과 통신을 위해 구성된 호스트 컴퓨터 시스템에서 입력/출력(I/O)동작 명령에 의해서 개시된 I/O 동작을 수행하기 위한 장치를 포함한다. 상기 호스트 컴퓨터 시스템은: 상기 호스트 컴퓨터 시스템 내의 채널 서브시스템과 상기 컨트롤 유닛 사이에 링크(a link)를 초기화하기 위해 프로세스 로그인(PRLI) 요청 메시지를 상기 컨트롤 유닛에, 상기 채널 서브시스템에 의해서, 송신하는 단계(sending) - 상기 PRLI 요청 메시지는 하나의 필드를 포함하고, 상기 필드는 상기 채널 서브시스템이 양방향 데이터 전송을 지원하는지를 표시하는 값을 가짐 -; 상기 컨트롤 유닛으로부터 PRLI 응답 메시지를 수신하는 단계 - 상기 PRLI 응답 메시지는 하나의 필드를 포함하고, 상기 필드는 상기 컨트롤 유닛이 양방향 데이터 전송을 지원하는지를 표시하는 값을 가짐 -; 양방향 데이터 전송이 지원된다는 표시를 호스트 운영체제(a host operating system)에 제공하는 단계: 및 상기 호스트 컴퓨터 시스템으로부터 수신된 상기 I/O 동작 명령을 실행하는 것에 응답하여, 하나의 방법을 수행하는 단계를 수행하도록 구성되고, 상기 방법은: 상기 호스트 컴퓨터 시스템으로부터 수신된 상기 I/O 동작 명령과 관련된 복수의 커맨드들을 수집하는 단계(gathering) - 상기 복수의 커맨드들 중 적어도 하나는 입력 데이터 전송을 명시하고 상기 복수의 커맨드들 중 적어도 하나는 출력 데이터 전송을 명시함-; 상기 복수의 커맨드들을 상기 컨트롤 유닛으로 전송하는 단계(transferring); 상기 컨트롤 유닛에 전송될 출력 데이터를 포함하는 적어도 하나의 출력 데이터 메시지를 상기 컨트롤 유닛에 송신하는 단계 - 상기 복수의 커맨드들 중 적어도 하나와 관련된 상기 출력 데이터 메시지는 출력 데이터 전송을 명시함 -; 및 상기 호스트 컴퓨터 시스템의 메인 스토리지에 저장될 입력 데이터를 포함하는 적어도 하나의 입력 데이터 메시지를 상기 컨트롤 유닛으로부터 수신하는 단계 - 상기 복수의 커맨드들 중 적어도 하나와 관련된 상기 입력 데이터 메시지는 입력 데이터 전송을 명시함 - 를 포함한다.
Another embodiment includes an apparatus for performing an I / O operation initiated by an input / output (I / O) operation command in a host computer system configured for communication with a control unit. Wherein the host computer system is configured to: send a process login (PRLI) request message to the control unit to initiate a link between the channel subsystem in the host computer system and the control unit, The PRLI request message comprising one field, the field having a value indicating whether the channel subsystem supports bi-directional data transmission; Receiving a PRLI response message from the control unit, the PRLI response message comprising a field, the field having a value indicating whether the control unit supports bidirectional data transmission; Providing an indication to the host operating system that bi-directional data transfer is supported; and in response to executing the I / O operation command received from the host computer system, performing one method The method comprising: collecting a plurality of commands associated with the I / O operation command received from the host computer system, the at least one of the plurality of commands specifying an input data transfer Wherein at least one of the plurality of commands specifies output data transmission; Transferring the plurality of commands to the control unit; Transmitting to the control unit at least one output data message including output data to be transmitted to the control unit, the output data message associated with at least one of the plurality of commands specifying output data transmission; And receiving from the control unit at least one input data message comprising input data to be stored in the main storage of the host computer system, wherein the input data message associated with at least one of the plurality of commands comprises: Explicitly stated.

또 다른 실시 예는 컨트롤 유닛과 통신을 위해 구성된 호스트 컴퓨터 시스템에서 입력/출력(I/O)동작 명령에 의해서 개시된 I/O 동작을 수행하는 방법을 포함한다. 상기 방법은: 상기 호스트 컴퓨터 시스템 내의 채널 서브시스템과 상기 컨트롤 유닛 사이에 링크(a link)를 초기화하기 위해 프로세스 로그인(PRLI) 요청 메시지를 상기 컨트롤 유닛에, 상기 채널 서브시스템에 의해서, 송신하는 단계(sending) - 상기 PRLI 요청 메시지는 하나의 필드를 포함하고, 상기 필드는 상기 채널 서브시스템이 양방향 데이터 전송을 지원하는지를 표시하는 값을 가짐 -; 상기 컨트롤 유닛으로부터 PRLI 응답 메시지를 수신하는 단계 - 상기 PRLI 응답 메시지는 하나의 필드를 포함하고, 상기 필드는 상기 컨트롤 유닛이 양방향 데이터 전송을 지원하는지를 표시하는 값을 가짐 -; 양방향 데이터 전송이 지원된다는 표시를 호스트 운영체제(a host operating system)에 제공하는 단계: 및 상기 호스트 컴퓨터 시스템으로부터 수신된 상기 I/O 동작 명령을 실행하는 것에 응답하여, 하나의 방법을 수행하는 단계를 포함하되, 상기 방법은: 상기 호스트 컴퓨터 시스템으로부터 수신된 상기 I/O 동작 명령과 관련된 복수의 커맨드들을 수집하는 단계(gathering) - 상기 복수의 커맨드들 중 적어도 하나는 입력 데이터 전송을 명시하고 상기 복수의 커맨드들 중 적어도 하나는 출력 데이터 전송을 명시함 -; 상기 복수의 커맨드들을 상기 컨트롤 유닛으로 전송하는 단계(transferring); 상기 컨트롤 유닛에 전송될 출력 데이터를 포함하는 적어도 하나의 출력 데이터 메시지를 상기 컨트롤 유닛에 송신하는 단계 - 상기 복수의 커맨드들 중 적어도 하나와 관련된 상기 출력 데이터 메시지는 출력 데이터 전송을 명시함 -; 및 상기 호스트 컴퓨터 시스템의 메인 스토리지에 저장될 입력 데이터를 포함하는 적어도 하나의 입력 데이터 메시지를 상기 컨트롤 유닛으로부터 수신하는 단계 - 상기 복수의 커맨드들 중 적어도 하나와 관련된 상기 입력 데이터 메시지는 입력 데이터 전송을 명시함 -를 포함한다.
Another embodiment includes a method of performing an I / O operation initiated by an input / output (I / O) operation command in a host computer system configured for communication with a control unit. The method comprising the steps of: transmitting, by the channel subsystem, a process login (PRLI) request message to the control unit to initiate a link between the channel subsystem in the host computer system and the control unit, sending the PRLI request message comprises a field, the field having a value indicating whether the channel subsystem supports bidirectional data transmission; Receiving a PRLI response message from the control unit, the PRLI response message comprising a field, the field having a value indicating whether the control unit supports bidirectional data transmission; Providing an indication to the host operating system that bi-directional data transfer is supported; and in response to executing the I / O operation command received from the host computer system, performing one method The method comprising: collecting a plurality of commands associated with the I / O operation command received from the host computer system, at least one of the plurality of commands specifying input data transfer and the plurality At least one of the commands specifying the output data transmission; Transferring the plurality of commands to the control unit; Transmitting to the control unit at least one output data message including output data to be transmitted to the control unit, the output data message associated with at least one of the plurality of commands specifying output data transmission; And receiving from the control unit at least one input data message comprising input data to be stored in the main storage of the host computer system, wherein the input data message associated with at least one of the plurality of commands comprises: Explicitly stated.

추가적인 특징들 및 장점들은 본 발명의 실시 예의 기술들을 통해서 실현된다. 다른 실시 예들은 및 특징들은 여기서 설명되고 청구된 발명의 일부로 고려된다. 상기 장점들 및 특징들을 갖는 본 발명을 더 잘 이해하기 위해서, 아래의 상세한 설명과 도면들을 참조한다.Additional features and advantages are realized through the techniques of the embodiments of the present invention. Other embodiments and features are considered to be part of the claimed and claimed invention herein. For a better understanding of the present invention with the advantages and features, reference is made to the following detailed description and drawings.

본 발명으로 간주되는 주제는 본 명세서의 결론 부분에 청구항들로 구체적으로 명확하게 기재되고 청구된다. 본 발명의 전술한 그리고 기타의 목적들, 특징들, 및 장점들은 첨부된 도면들을 참조하여 작성된 아래의 상세한 설명으로부터 명백하다.
도 1은 본 발명의 하나 혹은 그 이상의 실시 예들을 결합하고 사용하는 I/O처리 시스템의 한 실시 예를 도시한다;
도 2는 트랜스포트 컨트롤 워드(TCW)의 한 실시 예를 도시한다;
도 3은 트랜스포트 커맨드 컨트롤 블록(TCCB)의 한 실시 예를 도시한다;
도 4는 도 3의 TCCB를 포함하는 트랜스포트 커맨드 정보 유닛(IU)의 한 실시 예를 도시한다;
도 5는 도 4의 트랜스포트 커맨드 IU의 트랜스포트 커맨드 헤더의 한 실시 예를 도시한다;
도 6은 도 4의 TCCB의 트랜스포트 커맨드 영역 헤더(TCAH)의 한 실시 예를 도시한다;
도 7은 도 4의 TCCB의 트랜스포트 커맨드 영역(TCA)의 한 실시 예를 도시한다;
도 8은 일방향 데이터 전송 동작들을 위한 다양한 데이터 카운트들의 예시적 결정들을 기술하는 테이블이다;
도 9는 양방향 데이터 전송 동작들을 위한 다양한 데이터 카운트들의 예시적 결정들을 기술하는 테이블이다;
도 10은 디바이스 커맨드 워드(DCW)의 한 실시 예를 도시한다;
도 11은 도 10의 DCW의 컨트롤 플래그들 필드(a control flags field)의 한 실시 예를 도시한다;
도 12는 트랜스포트 커맨드 영역 확장(a transport command area extension : TCAX)의 한 실시 예를 도시한다;
도 13은 CBC-오프셋 블록의 한 실시 예를 도시한다;
도 14는 트랜스포트 모드 I/O동작을 수행하는 방법의 한 실시 예를 예시하는 흐름도이다;
도 15는 채널과 컨트롤 유닛 및/또는 I/O 디바이스 사이에 입력 및 출력 데이터를 트랜스포트하기 위해 사용되는 트랜스포트-데이터 IU들의 실시 예들을 도시한다;
도 16은 트랜스포트 응답 IU(a transport response IU)의 한 실시 예를 도시한다;
도 17은 도 16의 트랜스포트 응답 IU의 상태 영역(a status area )한 실시 예를 도시한다;
도 18은 예시적 프로세스 로그인(PRLI) 요청의 컴포넌트들을 도시한다;
도 19는 예시적 PRLI 응답의 컴포넌트들을 도시한다;
도 20은 채널 서브시스템으로부터 호스트 컴퓨터 시스템 OS에 제공된 예시적 채널 경로 기술 블록(channel path description block )을 도시한다.
도 21은, 채널 서브시스템 능력 데이터(channel subsystem capability data)를 포함하는, 도 20의 기술 블록의 예시적 채널 기술 데이터(channel description data)을 도시한다.
The subject matter regarded as the invention is particularly pointed out and particularly pointed out in the claims at the conclusion of the specification. The foregoing and other objects, features, and advantages of the present invention will be apparent from the following detailed description, taken in conjunction with the accompanying drawings.
Figure 1 illustrates one embodiment of an I / O processing system that combines and uses one or more embodiments of the present invention;
Figure 2 shows one embodiment of a transport control word (TCW);
Figure 3 shows an embodiment of a transport command control block (TCCB);
Fig. 4 shows an embodiment of a transport command information unit (IU) including the TCCB of Fig. 3;
Figure 5 shows an embodiment of the transport command header of the transport command IU of Figure 4;
Figure 6 shows an embodiment of the Transport Command Area Header (TCAH) of the TCCB of Figure 4;
Figure 7 shows an embodiment of the Transport Command Area (TCA) of the TCCB of Figure 4;
8 is a table describing exemplary decisions of various data counts for one-way data transfer operations;
Figure 9 is a table describing exemplary decisions of various data counts for bidirectional data transfer operations;
Figure 10 shows an embodiment of a device command word (DCW);
Figure 11 illustrates one embodiment of a control flags field of the DCW of Figure 10;
Figure 12 illustrates one embodiment of a transport command area extension (TCAX);
Figure 13 illustrates one embodiment of a CBC-offset block;
14 is a flow chart illustrating one embodiment of a method of performing a transport mode I / O operation;
Figure 15 illustrates embodiments of transport-data IUs used to transport input and output data between a channel and a control unit and / or an I / O device;
Figure 16 shows an embodiment of a transport response IU;
Figure 17 shows an embodiment of a status area of the transport response IU of Figure 16;
Figure 18 shows the components of an exemplary process login (PRLI) request;
Figure 19 shows the components of an exemplary PRLI response;
20 shows an exemplary channel path description block provided from the channel subsystem to the host computer system OS.
FIG. 21 shows exemplary channel description data of the description block of FIG. 20, including channel subsystem capability data.

본 발명의 실시 예들은 컴퓨터 시스템에서 입력/출력(I/O) 처리를 용이하게 한다. 한 실시 예에서, 트랜스포트 커맨드들(transport commands)이 I/O 동작과 채널 경로를 통한 데이터의 전송을 관리하기 위해 제공된다. 트랜스포트 커맨드들은 데이터 전송 체킹 및 추가의 DCW들의 전송을 관리하기 위해 사용되는 트랜스포트 커맨드 메타-정보(transport command meta-information: TCMI)를 전송한다(transfer). TCMI는 I/O 동작에서 전송될 데이터에 관한 정보를 정의하고(defining), 명시하며(specifying) 그리고 검증하기(verifying) 위해 하나 혹은 그 이상의 데이터 트랜스포트 정보 유닛들(IU들) 내에 정의된다. 트랜스포트 커맨드들은 질의 커맨드(an interrogate command), 전송-CBC-오프셋 블록(TCOB) 커맨드, 및 전송-TCA-확장(TTE) 커맨드를 포함할 수 있다.
Embodiments of the present invention facilitate input / output (I / O) processing in a computer system. In one embodiment, transport commands are provided for managing I / O operations and the transfer of data over a channel path. The transport commands transfer transport command meta-information (TCMI), which is used to manage data transfer checking and transmission of additional DCWs. A TCMI is defined in one or more data transport information units (IUs) for defining, specifying and verifying information about data to be transmitted in an I / O operation. The transport commands may include an interrogate command, a transport -CBC-offset block (TCOB) command, and a transport-TCA-extension (TTE) command.

한 실시 예에서, I/O 처리는 I/O 동작을 위해 디바이스에 송신될 수 있는 커맨드들의 수를 증가시키도록 호스트 컴퓨터를 인에이블(enable) 함으로써 용이하게 된다. 예를 들어, I/O 동작과 관련될 수 있는 커맨드들의 수를 증가시키기 위해서 트랜스포트 커맨드 영역 확장(a Transport Command Area Extension: TCAX) 형식의 TCMI가 호스트로부터 디바이스에 송신될 수 있다. 한 실시 예에서, TCAX는, 전송 TCA 확장(Transfer TCA Extension: TTE) 일컬어지는, 디바이스 커맨드 워드(a device command word: DCW)를 통해서 송신되고, DCW는 트랜스포트 커맨드 영역(a Transport Command Area: TCA) 내에 송신된 커맨드들뿐만 아니라 수행될 커맨드들을 포함한다.
In one embodiment, the I / O processing is facilitated by enabling the host computer to increase the number of commands that can be sent to the device for I / O operations. For example, a TCMI in the form of a Transport Command Area Extension (TCAX) may be sent from the host to the device to increase the number of commands that may be associated with I / O operations. In one embodiment, the TCAX is transmitted via a device command word (DCW), also referred to as a Transfer TCA Extension (TTE), and the DCW includes a Transport Command Area As well as commands to be executed.

I/O 처리는 또한 부정확한 길이 레코드(an incorrect length record)를 만났을 때 I/O 디바이스가 I/O 동작을 계속할 수 있도록 하는 수단을 제공함으로써 용이하게 될 수 있다. 예를 들어, DCW-부정확한-길이 퍼실리티(a DCW- incorrect-length facility)를 호스트 시스템 및 컨트롤 유닛 혹은 디바이스 내에 설치할 수 있다. 이 퍼실리티는 컨트롤 유닛에 의해서 수행될 수 있는 부정확한 길이(IL) 체킹을 위해 제공된다. 서프레스-부정확한-길이 혹은 서프레스 길이 표시(SLI) 필드(a suppress-incorrect-length or Suppress Length Indication (SLI) field)가 디바이스에 송신된 DCW에 추가될 수 있다. 이 비트가 활성화 되면 (activated), 부정확한 길이 조건이 컨트롤 유닛에 의해서 검출되었을 때 DCW체이닝(DCW chaining)은 계속하도록 허용된다.
I / O processing may also be facilitated by providing a means for the I / O device to continue I / O operation when encountering an incorrect length record. For example, a DCW-incorrect-length facility can be installed in a host system and a control unit or device. This facility is provided for inaccurate length (IL) checking that can be performed by the control unit. A press-incorrect-length or SLI field (a suppress-incorrect-length or SLI field) may be added to the DCW sent to the device. When this bit is activated, DCW chaining is allowed to continue when an incorrect length condition is detected by the control unit.

I/O 처리는 또한 단일의 I/O 동작으로 디바이스에 리드 및 라이트 커맨드들 모두를 송신하는 수단을 제공함으로써 용이하게 될 수 있다. 종래 기술의 TCW 채널 프로그램들은 모든 라이트 커맨드들 혹은 모든 리드 커맨드들을 명시한다. 양방향 동작은 커맨드 IU의 트랜스포트 커맨드 헤더(TCH) 내에 하나 혹은 그 이상의 플래그들을 세트 함으로써, 예를 들어, 리드 및 라이트 플래그들을 모두 1(one)로 세트하고 리드 및 라이트 데이터 카운트 모두를 제공함으로써, 명시될 수 있다. 또한, 프로세스 로그인(a Process Login: PRLI) 요청 메시지와 같은 개시 혹은 로그인 메시지(an initiation or login message) 내의 플래그는 채널 서브시스템이 양방향 데이터 전송을 지원함을 표시하기 위해 세트 될 수 있다. PRLI 수용 메시지(PRLI accept message)와 같은 응답 메시지는 디바이스가 양방향 데이터 전송을 지원하는지를 표시하기 위해 세트 될 수 있는 플래그를 포함할 수 있다. 만일 양방향 데이터 전송이 호스트 및 컨트롤 유닛 모두에 의해서 지원된다면, 리드 및 라이트 플래그들 모두 커맨드 IU 에서 세트 되어 있더라도 디바이스는 에러를 보고하지 않는다. 이 능력은, 양방향 데이터 전송 동작들을 지원하지 않는, 종래 기술의 파이버 채널 프로토콜들(Fibre Channel protocols) 보다 개선된 것이다. 여기서 설명하는 바와 같이, "양방향 데이터 전송들"은 단일의 TCW I/O 동작 내에서 수행되는 모든 입력 및 출력 데이터의 전송들, 예를 들어 단일의 TCW I/O 동작 내의 리드 및 라이트 커맨드들을 모두를 송신하고 실행하는 것이다.
The I / O processing may also be facilitated by providing a means to transmit both the read and write commands to the device in a single I / O operation. Prior art TCW channel programs specify all write commands or all read commands. The bidirectional operation may be accomplished by setting one or more flags in the command IU's transport command header (TCH), for example, by setting both the read and write flags all to one and providing both the read and write data counts, Can be specified. Also, flags in an initiation or login message, such as a Process Login (PRLI) request message, may be set to indicate that the channel subsystem supports bidirectional data transmission. A response message, such as a PRLI accept message, may include a flag that may be set to indicate whether the device supports bidirectional data transmission. If bidirectional data transfer is supported by both the host and the control unit, the device does not report an error even if both the read and write flags are set in the command IU. This capability is an improvement over the prior art Fiber Channel protocols, which do not support bidirectional data transfer operations. As described herein, "bidirectional data transmissions" refers to transmissions of all input and output data performed within a single TCW I / O operation, for example, both read and write commands within a single TCW I / O operation And executes it.

도 1은 인터내셔널 비즈니스 머신즈 코포레이션(IBM®)에 의해서 제조된 z시리즈 메인프레임 컴퓨터(a zSeries® mainframe computer)와 같은 데이터 스토리지 및/또는 처리 시스템을 포함하는 호스트 컴퓨터 시스템(102)를 포함하는 I/O 처리 시스템(100)의 예시적 실시 예를 도시한다. IBM은 미국, 뉴욕주, 아몬크에 소재하는 인터내셔널 비지네스 머신즈 코포레이션 등록 상표이다. 여기서 사용되는 기타 제품명들도 인터내셔널 비즈네스 머신즈 코포레이션 혹은 다른 회사들의 등록 상표들, 상표들 혹은 제품명들일 수 있다. 호스트 컴퓨터 시스템(102)는 다양한 처리, 스토리지 및 통신 엘리먼트들을 포함한다. 한 실시 예에서, 호스트 컴퓨터 시스템(102)는 하나 혹은 그 이상의 중앙 처리 유닛들(CPU들)(104), 메인 스토리지 혹은 메모리(106)과 같은, 메모리 컴포넌트들, 확장된 스토리지 혹은 메모리(108), 하나 혹은 그 이상의 CPU들(104)에 의해서 실행되는 하나 혹은 그 이상의 운영체제들(OS들)(110)을 포함한다. 예를 들어, 하나의 CPU(104)는 다른 가상 머신 인스턴스들(different virtual machine instances)로서 리눅스 운영체제(a Linux® operating system) (110) 및/또는 z/OS® 운영체제(110)을 실행할 수 있다. CPU(104)는 I/O 처리 시스템(100)의 컨트롤링 센터이다. CPU(104)는 명령 실행, 인터럽션 액션, 타이밍 펑션들, 초기 프로그램 로딩, 및 기타 머신-관련 펑션들을 위한 시퀀싱 및 처리 퍼실리티들(sequencing and processing facilities)을 포함한다. CPU(104)는, 양방향 혹은 일방향 버스와 같은, 연결(113)을 통해서 메인 메모리(106) 및/또는 확장된 메모리(108)에 결합된다.
1 is a block diagram of an I / O system including a host computer system 102 including a data storage and / or processing system such as a zSeries® mainframe computer manufactured by International Business Machines Corporation (IBM®). O processing system 100 of the present invention. IBM is a registered trademark of International Business Machines Corporation, A-mone, New York, USA. Other product names used herein may also be registered trademarks, trademarks or product names of International Business Machines Corporation or other companies. The host computer system 102 includes various processing, storage, and communication elements. In one embodiment, the host computer system 102 includes memory components, such as one or more central processing units (CPUs) 104, main storage or memory 106, an extended storage or memory 108, And one or more operating systems (OSs) 110 executed by one or more CPUs 104. For example, one CPU 104 may run a Linux® operating system 110 and / or z / OS® operating system 110 as other virtual machine instances . The CPU 104 is the control center of the I / O processing system 100. CPU 104 includes sequencing and processing facilities for instruction execution, interruption actions, timing functions, initial program loading, and other machine-related functions. The CPU 104 is coupled to the main memory 106 and / or the expanded memory 108 via a connection 113, such as a bi-directional or one-way bus.

호스트 컴퓨터 시스템(102)는 또한 호스트 시스템(101)과, 하나 혹은 그 이상의 컨트롤 유닛들(118)에 의해서 컨트롤 될 수 있는, 다양한 I/O 디바이스들 (116) 사이에 통신 인터페이스를 제공하는 채널 서브시스템(114)를 포함한다. I/O 디바이스들은 프린터들, 자기-테이프 유닛들, 직접 액세스-스토리지 디바이스들, 디스플레이들, 키보드들, 통신 컨트롤러들, 텔레프로세싱 디바이스들, 및 센서-기반 장비와 같은 장비를 포함한다. 이 상세한 설명에서, "컨트롤 유닛"과 "디바이스"라는 용어들은 서로 교환 가능하게 사용될 수 있거나, 혹은 컨트롤 유닛은 하나 혹은 그 이상의 디바이스들을 포함하는 것으로 고려될 수 있다. 채널 서브시스템(114)는 I/O 디바이스들(116)과 호스트 컴퓨터 시스템(102) 사이에 정보의 흐름을 지시한다. 그것은 CPU(104)가 I/O 디바이스들과 직접적으로 통신하는 부담을 덜어주고 데이터 처리가 I/O 처리와 동시에(concurrently) 진행되도록 해준다. 채널 서브시스템(114)는, 버스와 같은 연결(120)을 통해서, CPU들(104), 메인 메모리(106) 및/또는 확장된 메모리(108)에 결합된다.
The host computer system 102 also includes a host system 101 and a plurality of I / O devices 116, which may be controlled by one or more control units 118, System 114. < / RTI > I / O devices include devices such as printers, self-tape units, direct access-storage devices, displays, keyboards, communication controllers, teleprocessing devices, and sensor-based equipment. In this detailed description, the terms "control unit" and "device" may be used interchangeably, or the control unit may be considered to include one or more devices. The channel subsystem 114 directs the flow of information between the I / O devices 116 and the host computer system 102. It relieves the CPU 104 of the burden of directly communicating with the I / O devices and allows the data processing to proceed concurrently with the I / O processing. The channel subsystem 114 is coupled to the CPUs 104, main memory 106, and / or the expanded memory 108 via a connection 120 such as a bus.

한 실시 예에서, 채널 서브시스템(114)는 직렬 혹은 병렬 링크와 같은 연결(124)를 통해서 채널 서브시스템(114)를 각각의 컨트롤 유닛(118)에 연결하는 각각의 "채널 경로"(122)를 통해 각각의 I/O 디바이스(116)에 연결된다. 컨트롤 유닛들(118)은 하나 이상의 채널 경로(122)를 통해서 채널 서브시스템(114)에 접속될(attached) 수 있고, 그리고 I/O 디바이스(116)은 하나 이상의 컨트롤 유닛(118) 및/또는 I/O 디바이스(116)에 접속될 수 있다. 모든 경우에, 하나의 개별 I/O 디바이스(116)은 다수의 채널 경로들에 의해서 액세스 가능하게 될 수 있다. 채널 경로는 다양한 종류의 연결들, 예를 들면, 병렬 인터페이스, 직렬-I/O 인터페이스 및 FICON I/O 인터페이스를 사용할 수 있다. 예를 들어, 직렬 채널 경로는, 예를 들어, 파이버 채널 패브릭(a Fibre channel fabric) 내 동적 스위치(126)를 통해서 컨트롤 유닛(118)에 연결되는 하나 혹은 그 이상의 광 파이버들을 포함할 수 있고, 병렬 인터페이스는 다수의 전기적 혹은 광 파이버 도체들(a number of electrical or fiberoptic conductors)을 포함할 수 있다.
In one embodiment, the channel subsystem 114 includes a respective "channel path" 122 that connects the channel subsystem 114 to each control unit 118 via a connection 124, such as a serial or parallel link, 0.0 > I / O < / RTI > The control units 118 may be connected to the channel subsystem 114 via one or more channel paths 122 and the I / O device 116 may include one or more control units 118 and / And may be connected to the I / O device 116. In all cases, one individual I / O device 116 may be made accessible by multiple channel paths. The channel path may use various types of connections, for example, a parallel interface, a serial-I / O interface, and a FICON I / O interface. For example, the serial channel path may include one or more optical fibers coupled to the control unit 118 through a dynamic switch 126 in, for example, a fiber channel fabric, The parallel interface may include a plurality of electrical or optical fiber conductors.

한 실시 예에서, 채널 서브시스템(114)는 하나 혹은 그 이상의 개별 채널들(128)을 포함하고 이들 각각은 하나 혹은 그 이상의 채널 경로들(122)를 통해서 하나 혹은 그 이상의 컨트롤 유닛들(118) 및/또는 I/O 디바이스들(116)에 연결된다. 각각의 채널(128)은 로컬 채널 마이크로프로세서(130) 및 이 로컬 채널 마이크로프로세서(130)에 연결되고 이에 의해서 액세스 가능한 로컬 채널 메모리(132)와 같은 처리 일렉트로닉스(processing electronics)를 포함한다. 로컬 채널 메모리(132)는 채널-프로그램 지정(a channel-program designation), 채널-경로 식별자(a channel-path identifier), 디바이스 번호(a device number), 디바이스 카운트(a device count), 상태 표시들(status indications)과 같은 정보를 포함할 수 있을 뿐만 아니라, 경로 가용성(path availability) 및 펜딩 혹은 수행될 펑션들(functions pending or being performed)에 관한 정보도 포함할 수 있다.
In one embodiment, the channel subsystem 114 includes one or more individual channels 128, each of which may be coupled to one or more of the control units 118 via one or more channel paths 122, 0.0 > and / or < / RTI > I / O devices 116. Each channel 128 includes processing electronics such as a local channel microprocessor 130 and a local channel memory 132 that is coupled to and accessible by the local channel microprocessor 130. The local channel memory 132 includes a channel-program designation, a channel-path identifier, a device number, a device count, such as status indications, as well as information about path availability and functions pending or being performed.

하나 혹은 그 이상의 서브채널들도 또한 각 채널(128) 내에 위치한다. 각 서브채널은 관련된 I/O 디바이스(116) 및 채널 서브시스템(114)에 대한 그의 접속(attatchment)에 관한 정보를 제공하는 채널 메모리(132) 내에 위치하는 데이터 구조이다. 상기 서브채널은 또한 I/O 동작들 및 관련된 I/O 디바이스(116)을 개입시키는 기타 펑션들에 관한 정보도 제공한다. 상기 서브채널은 채널 서브시스템(114)가 관련된 I/O 디바이스(116)에 관한 정보를 CPU들(104)에 제공하는 수단이다. 한 실시 예에서, 채널 서브시스템에 의해서 제공되는 서브채널들의 수는 관련된 I/O 디바이스들(116)에 대한 채널 경로들(122)의 수에 무관하다. 예를 들어, 대체(alternate) 채널 경로들(122)를 통해서 액세스 가능한 디바이스(116)은 여전히 단일의 서브채널에 의해서 표시된다.
One or more sub-channels are also located within each channel 128. Each subchannel is a data structure located in channel memory 132 that provides information about its associated I / O device 116 and its attachement to the channel subsystem 114. The subchannel also provides information about I / O operations and other functions involving the associated I / O device 116. [ The subchannel is a means by which the channel subsystem 114 provides information about the associated I / O devices 116 to the CPUs 104. [ In one embodiment, the number of sub-channels provided by the channel subsystem is independent of the number of channel paths 122 for the associated I / O devices 116. For example, a device 116 that is accessible via alternate channel paths 122 is still represented by a single sub-channel.

각각의 컨트롤 유닛(118)은 하나 혹은 그 이상의 I/O 디바이스들(116)을 동작시키고 컨트롤하기 위한 로직(logic)을 제공하고, 공동 퍼실리티들(common facilities)의 사용을 통해서, 각각의 I/O 디바이스(116)의 특성들을 채널(128)에 의해서 제공된 링크 인터페이스에 적응시킨다(adapt). 상기 공동 퍼실리티들은 I/O 동작들의 실행, I/O 디바이스들(116) 및 컨트롤 유닛(118)의 상태에 관한 표시들(indications), 채널 경로(122)를 통한 데이터 전송들의 타이밍의 컨트롤 및 I/O 디바이스 컨트롤의 특정 레벨들을 위해 제공된다(provide for). 컨트롤 유닛(118)은 별도로 설치될 수도 있고 혹은 I/O 디바이스에, 채널 서브시스템에 혹은 CPU에 물리적으로 그리고 논리적으로 통합될 수도 있다.
Each control unit 118 provides logic for operating and controlling one or more of the I / O devices 116, and through the use of common facilities, each I / O device 116 to the link interface provided by the channel 128. < RTI ID = 0.0 > The common facilities include indications of the execution of I / O operations, the status of the I / O devices 116 and the control unit 118, the control of the timing of data transfers through the channel path 122, / O Provides for specific levels of device control. The control unit 118 may be installed separately or may be physically and logically integrated into the I / O device, the channel subsystem, or the CPU.

I/O 처리 시스템(100)의 하나 혹은 그 이상의 상기 컴포넌트들은 2010년 8월 발간된 공보 번호 SA22-7832-08, 9판, "IBM® z/아키텍처 동작의 원리들(z/Architecture Principles of Operation)"에 더 자세히 설명되어 있다.
One or more of the components of the I / O processing system 100 are described in detail in the publication number " z / Architecture Principles of Operation ", published in August 2010, Publication No. SA22-7832-08, ). ≪ / RTI >

I/O 동작들은 호스트 컴퓨터 시스템(102)와 I/O 디바이스들(116) 사이의 데이터 전송과 관련된 모든 동작으로서 설명된다. 여기서 설명하는 바와 같이, I/O 동작은 채널 서브시스템(114)와 디바이스(116) 사이(한 실시 예에서, 컨트롤 유닛 (118)을 통해서)의 통신을 포함하는데, 이 통신으로 단일 커맨드(예를 들어, 채널 커맨드 워드 혹은 CCW), 다수 커맨드들을 포함하는 단일 커맨드 메시지(예를 들어, 트랜스포트 커맨드 정보 유닛 혹은 트랜스포트 커맨드 컨트롤 블록(TCCB)), 혹은 다수의 체인된 커맨드들(예를 들어, 다수의 CCW들)이 채널 서브시스템(114)로부터 디바이스로 송신된다. I/O 동작은 또한, 커맨드 혹은 체인된 커맨드들의 수신 및/또는 실행에 응답하여, 디바이스(116) 혹은 관련 컨트롤 유닛(118)에 의해서 생성되는 하나 혹은 그 이상의 응답 메시지들을 포함할 수 있다.
I / O operations are described as all operations related to data transfer between the host computer system 102 and the I / O devices 116. As described herein, I / O operations include communication between the channel subsystem 114 and the device 116 (in one embodiment, through the control unit 118) (E.g., a channel command word or CCW), a single command message (e.g., a transport command information unit or a transport command control block (TCCB)) containing multiple commands, or multiple chained commands , Multiple CCWs) are transmitted from the channel subsystem 114 to the device. The I / O operations may also include one or more response messages generated by the device 116 or the associated control unit 118 in response to receiving and / or executing commands or chained commands.

한 실시 예에서, I/O 동작들은 디바이스(116)과 관련된 서브채널을 지정하는 OS(110)에 의해서 생성된 I/O 명령들의 실행에 의해서 디바이스(116)에서 개시된다. 채널 서브시스템(114)가 I/O 동작의 다양한 펑션들을 수행할 것을 요청하기 위해 그러한 명령들은 CPU(104)에 의해서 호스트 시스템에서 실행되는데, 채널(128) 혹은 서브채널에 파라미터들을 송신함으로써 실행된다.
In one embodiment, the I / O operations are initiated at the device 116 by execution of I / O commands generated by the OS 110 specifying a subchannel associated with the device 116. To request the channel subsystem 114 to perform various functions of the I / O operation, such instructions are executed by the CPU 104 in the host system, which is executed by sending parameters to the channel 128 or subchannel .

예를 들어, 채널 서브시스템(114)가 서브채널과 관련된 I/O 디바이스(116)에 스타트 펑션(a start function)을 수행해 줄 것을 요청하는 타겟 서브채널에 파라미터들을 전송함으로써 CPU(104)는 "START SUBCHANNEL" 명령을 실행한다. 채널 서브시스템(114)는, 디바이스(116)으로의 채널 경로를 찾기 위해서 그리고 채널 경로가 일단 선택되면 I/O동작을 실행하기 위해서, 스타트 펑션(the start function)을 수행 하는데, START SUBCHANNEL 명령의 실행 동안 전송된 정보를 포함하여, 서브채널에서의 정보를 사용하여서 수행 한다.
For example, by sending parameters to the target subchannel, which requires the channel subsystem 114 to perform a start function on the I / O device 116 associated with the subchannel, START SUBCHANNEL "command. The channel subsystem 114 performs a start function to locate the channel path to the device 116 and to perform an I / O operation once the channel path is selected, including the START SUBCHANNEL command Including information transmitted during execution, using information in the subchannel.

START SUBCHANNEL 명령과 같은 명령이 CPU(104)에 의해서 실행될 때, 채널(128)은 I/O동작 수행을 시작한다. 한 실시 예에서, 채널 서브시스템 (114)와 디바이스들(116) 및/또는 컨트롤 유닛들(118) 사이의 통신을 위한 고성능(High Performance) FICON(HPF) 프로토콜(a High Performance FICON (HPF) protocol) 하에서 채널 서브시스템(114)는 동작한다. FICON 및 HPF에 관해서는 2009년 9월 22일 발표된 "파이버 채널: 단일-바이트 커맨드 코드 세트 매핑 프로토콜-4(FC-SB-4) (Fibre Channel: Single-Byte Command Code Sets Mapping Protocol - 4 (FC-SB-4))", T11 프로젝트 2122-D, 개정 3.00에 자세히 설명되어 있다.
When a command such as a START SUBCHANNEL command is executed by the CPU 104, the channel 128 starts performing an I / O operation. In one embodiment, a High Performance FICON (HPF) protocol for communication between the channel subsystem 114 and the devices 116 and / or the control units 118, The channel subsystem 114 operates. FICON and HPF are described in detail in "Fiber Channel: Single-Byte Command Code Sets Mapping Protocol-4 (FC-SB-4) FC-SB-4)) ", T11 Project 2122-D, Rev. 3.00.

한 실시 예에서, START SUBCHANNEL 명령의 실행은 동작 요청 블록(ORB)의 컨텐츠(the contents of an operation request block (ORB))를 채널 서브시스템(114)에 전송한다. 상기 ORB는 하나 혹은 그 이상의 커맨드 워드들(예를 들어, 채널 커맨드 워드 혹은 트랜스포트 커맨드 워드이며 이에 관해서는 아래에 더 설명한다)의 주소를 포함하는 채널 프로그램을 명시한다. 서브채널 동작은 두 개의 모드들이 있다. 한 실시 예에서, 호스트 컴퓨터 시스템(102)는 커맨드 모드(a command mode)에서 동작하고 커맨드 워드(들)을 채널 커맨드 워드(CCW) 형식으로 명시한다. 다른 실시 예에서, 호스트 컴퓨터 시스템은 트랜스포트 모드(a transport mode)에서 동작하고 커맨드 워드(들)을 트랜스포트 커맨드 워드(TCW) 형식으로 명시한다.
In one embodiment, execution of the START SUBCHANNEL command sends the contents of the operation request block (ORB) to the channel subsystem 114. The ORB specifies a channel program that contains the addresses of one or more command words (e.g., channel command words or transport command words, which are discussed further below). There are two modes of subchannel operation. In one embodiment, the host computer system 102 operates in a command mode and specifies the command word (s) in the form of a channel command word (CCW). In another embodiment, the host computer system operates in a transport mode and specifies the command word (s) in the form of a transport command word (TCW).

FCX(파이버 채널 확장들) 퍼실리티(facility)가 설치되고 스타트 펑션이 TCW 채널 프로그램을 명시하는 START SUBCHANNEL 명령의 실행의 결과로서 서브채널에 세트 될 때 서브채널은 트랜스포트 모드에 진입할 수 있다. 상기 서브채널은 스타트 펑션이 상기 서브채널에서 리세트 될 때까지 트랜스포트 모드에 남아있는다. 그 외의 모든 경우에는, 서브채널은 커맨드 모드에 있게 된다.
The subchannel can enter the transport mode when the FCX (Fiber Channel extensions) facility is installed and the start function is set to the subchannel as a result of the execution of the START SUBCHANNEL command specifying the TCW channel program. The subchannels remain in the transport mode until the start function is reset in the subchannel. In all other cases, the subchannel is in command mode.

커맨드 모드에서, 채널은 단일 채널-커맨드 워드 혹은 순차적으로 실행되는 채널-커맨드 워드들의 시퀀스를 포함하고 채널 동작들의 특정 시퀀스를 컨트롤하는 CCW 채널 프로그램을 실행한다. 컨트롤 유닛은 CCW I/O 동작을 실행하는데, I/O 디바이스에 의해 CCW 커맨드들을 디코드하고, 수용하고, 그리고 실행함으로써 그렇게 한다. 순차적 실행을 위해 구성된(arranged) 하나 혹은 그 이상의 CCW들은 CCW 채널 프로그램을 형성하고, 하나 혹은 그 이상의 I/O 동작들로서, 각각, 실행된다.
In command mode, the channel executes a CCW channel program that contains a single channel-command word or a sequence of sequentially-executed channel-command words and controls a specific sequence of channel operations. The control unit performs the CCW I / O operation by doing so by decoding, accepting, and executing the CCW commands by the I / O device. The one or more CCWs configured for sequential execution form a CCW channel program and are each executed as one or more I / O operations.

파이버-채널 확장들(FCX) 퍼실리티는 선택적 퍼실리티이고, 이는 트랜스포트-커맨드-컨트롤 블록(TCCB) 및 트랜스포트-상태 블록(TSB)을 지정하는 트랜스포트 컨트롤 워드(TCW)로 구성되는 트랜스포트 모드 채널 프로그램의 형성을 위해 제공된다. TCCB는 트랜스포트-커맨드 영역(TCA)을 포함하는데, 이는 디바이스-커맨드 워드들(DCW들)의 형식으로 된 하나 혹은 그 이상의(예를 들어 30까지) I/O 커맨드들의 목록을 보유한다. TCW와 그의 TCCB는 리드 혹은 라이트 동작을 명시할 수 있다. 한 실시 예에서, FCX-양방향-데이터-전송 퍼실리티는 트랜스포트 모드 동작들을 지원하는 시스템에 설치될 수 있는데, 이는 만일 연결된 디바이스(116) 및 컨트롤 유닛(118)이 양방향-데이터 전송을 지원한다면 호스트 컴퓨터 시스템(102)가 단일 트랜스포트 모드 I/O 동작 내에 입력 및 출력 데이터 모두의 전송을 명시할 수 있도록 한다. 컨트롤 유닛(118)이 양방향 데이터 전송들을 인지할 때, TCW 및 그의 TCCB는, 디바이스에 따라서, 리드 및 라이트 데이터 전송들 모두를 명시할 수 있다.
The Fiber-Channel Extensions (FCX) facility is an optional facility, which is a transport mode consisting of a transport-command-control block (TCCB) and a transport-control word (TCW) And is provided for the formation of channel programs. The TCCB includes a Transport-Command Area (TCA), which holds a list of one or more (for example up to 30) I / O commands in the form of device-command words (DCWs). The TCW and its TCCB can specify a read or write operation. In one embodiment, the FCX-bidirectional-data-transmission facility can be installed in a system that supports transport mode operations, which means that if the connected device 116 and the control unit 118 support bidirectional- Allowing computer system 102 to specify transmission of both input and output data within a single transport mode I / O operation. When the control unit 118 recognizes bi-directional data transmissions, the TCW and its TCCB may specify both read and write data transfers, depending on the device.

트랜스포트 모드에서, 단일 트랜스포트 커맨드 워드(TCW)는 TCCB의 메모리 내 위치(또한 하나 혹은 그 이상의 데이터 영역들의 메모리(106) 혹은(108) 내의 위치)를 명시하는데, 이는 커맨드 모드의 별도의 개별 CCW들 대신 단일 메시지로 송신된다. 컨트롤 유닛(118)은 트랜스포트 모드 I/O동작을 실행하는데, TCCB와 그 안에 포함된 개별 DCW들을 디코드 하고, 수용하고, 그리고 실행함으로써 그렇게 한다. 만일 ORB가 TCW 채널 프로그램을 명시하면, 채널 서브시스템(114)는 TCCB를 컨트롤 유닛(118)에 전송하기 위해서 지정된 TCW 내의 정보를 사용한다. TCCB가 컨트롤 유닛(118)에 전송되고 컨트롤 유닛(118) 및 관련된 I/O 디바이스(116)에 대하여 의미(meaning)를 가진 후에만 TCCB의 컨텐츠는 채널 서브시스템(114)에 의해서 무시된다.
In the transport mode, a single transport command word (TCW) specifies the in-memory location of the TCCB (and also the location in memory 106 or 108 of one or more data areas) It is sent as a single message instead of CCWs. The control unit 118 performs the transport mode I / O operation by doing so by decoding, receiving, and executing the TCCB and the individual DCWs contained therein. If the ORB specifies a TCW channel program, the channel subsystem 114 uses the information in the TCW designated to transmit the TCCB to the control unit 118. The contents of the TCCB are ignored by the channel subsystem 114 only after the TCCB is transferred to the control unit 118 and has meaning to the control unit 118 and the associated I /

한 예시적 실시 예에서, 컨트롤 유닛(118)은 채널 프로그램을 실행하는 것에 응답하여 응답 메시지를 생성한다. 컨트롤 유닛(118)은 또한, 제한된 수의 통신 시나리오 하에서 채널 프로그램을 실행하지 않고도 응답 메시지를 생성할 수 있는데, 예를 들어 채널 서브시스템(114)에 채널 프로그램이 실행되지 않을 것을 통지하기 위해서 그렇게 할 수 있다. 컨트롤 유닛(118)은 I/O 통신 어댑터와 I/O 디바이스들 사이의 통신을 지원하기 위해, 또한 채널 프로그램 실행을 지원하기 위해 다수의 엘리먼트들을 포함할 수 있다. 예를 들어, 컨트롤 유닛(118)은, 통신과 상태 모니터링을 용이하게 하기 위해 하나 혹은 그 이상의 큐들(queues), 타이머들(timers), 및 레지스터들(registers)뿐만 아니라, 메시지들을 분석하고(parse) 처리하기 위해 컨트롤 로직을 포함할 수 있다.
In one exemplary embodiment, the control unit 118 generates a response message in response to executing the channel program. The control unit 118 may also generate a response message without executing the channel program under a limited number of communication scenarios, for example, in order to notify the channel subsystem 114 that the channel program is not to be executed . The control unit 118 may include a number of elements to support communication between the I / O communication adapter and the I / O devices, as well as to support channel program execution. For example, the control unit 118 may analyze (parse) messages as well as one or more queues, timers, and registers to facilitate communication and status monitoring, ) Processing logic.

도 2는 트랜스포트-컨트롤 워드(TCW)의 실시 예를 도시하며, 이 TCW는 호스트 시스템(예를 들어, 메인 메모리(106))에 저장되고 채널(128)로부터 컨트롤 유닛(118)에 전송될 적어도 하나의 컨트롤 블록을 명시한다. 한 실시 예에서, 상기 컨트롤 블록은 트랜스포트-커맨드-컨트롤 블록(TCCB)이며, 이 TCCB의 컨텐츠는 처리를 위해서 컨트롤 유닛(118) 및 I/O 디바이스(116)으로 트랜스포트 된다(transported). TCW(140)이 TCCB를 명시할 때, TCCB는 TCA를 포함하며, 이는 하나 혹은 그 이상의 디바이스-커맨드 워드들(DCW들) 및 관련 선택들을 명시한다. 데이터 전송(TCCB 내에 보유된 컨트롤 데이터는 제외하고)을 개시하는 커맨드를 명시하는 DCW를 위해서, TCW(140)은 데이터가 위치할 하나 혹은 그 이상의 스토리지 영역을 지정한다.
2 illustrates an embodiment of a transport-control word (TCW), which is stored in a host system (e.g., main memory 106) and transmitted from a channel 128 to a control unit 118 At least one control block is specified. In one embodiment, the control block is a transport-command-control block (TCCB), and the contents of the TCCB are transported to the control unit 118 and the I / O device 116 for processing. When the TCW 140 specifies a TCCB, the TCCB includes a TCA, which specifies one or more device-command words (DCWs) and associated choices. For DCW that specifies a command to initiate data transfer (other than control data held within the TCCB), the TCW 140 specifies one or more storage areas where the data is to be located.

한 실시 예에서, 상기 TCA는 전송 TCA 확장(TTE) 커맨드를 포함하는데, 이는 TCCB 내에 수용될 수 있는 것들에 더하여 추가의 DCW들 및/또는 컨트롤 데이터를 전송하기 위해 제공된다. 상기 TTE는 TCA확장(TCAX)을 (적어도 하나의 DCW를 포함하는) 컨트롤 유닛에 전송하고, 예를 들어, TCCB의 최종(last) DCW를 TTE의 제1 DCW에 체이닝함으로써, 그것이 관련되는 TCA의 논리적 확장으로 간주된다.
In one embodiment, the TCA includes a transmit TCA extension (TTE) command, which is provided to transmit additional DCWs and / or control data in addition to those that can be accommodated in the TCCB. The TTE may send a TCA extension (TCAX) to the control unit (which includes at least one DCW), for example, by chaining the last DCW of the TCCB to the first DCW of the TTE, It is considered to be a logical extension.

도 2를 다시 참조하면, TCW(140)의 실시 예는 64-바이트 범위(boundary)에서 지정되는 64-바이트 컨트롤 블록이다. 상기 TCW는 아래에서 설명하는 바와 같이 다양한 필드들을 포함한다.
Referring again to FIG. 2, the embodiment of TCW 140 is a 64-byte control block designated at a 64-byte boundary. The TCW includes various fields as described below.

예를 들어, 다수의 플래그 필드들(142)는 입력 데이터, 출력 데이터 혹은 TCCB를 찾기 위해 직접 혹은 간접 데이터 어드레싱이 사용되는지를 표시한다. 출력 트랜스포트-간접-데이터 어드레싱(TIDA)필드는 출력 데이터가 직접적으로 혹은 간접적으로 어드레스되는지를 표시한다. 예를 들어, TCW(140)의, 워드 0, 비트 7은 0(zero)이고 출력 데이터가 명시될 때, 출력-데이터-주소 필드(144)는 절대 스토리지(absolute storage) 내의 출력 데이터 위치를 지정한다. 비트 7이 1(one)일 때, 출력-데이터-주소 필드(144)는 출력 스토리지 위치 혹은 위치들을, 각각, 지정하는 TIDAW들의 목록(TIDAL) 내 TIDA 워드(TIDAW) 혹은 제1 TIDAW의 절대 주소를 지정한다. 입력 TIDA 필드는 입력 데이터가 직접적으로 혹은 간접적으로 어드레스되는지를 표시한다. 예를 들어, 워드 0, 비트 5가 0(zero)이고 입력 데이터가 명시될 때, 입력-데이터-주소 필드(146)은 입력 스토리지 위치, 즉 입력 데이터가 저장될 위치의 절대 주소를 지정한다. 비트 5가 1(one)일 때, 입력-데이터-주소 필드(146)은 입력 스토리지 위치 혹은 위치들을 지정하는 TIDAL 내 TIDAW 혹은 제1 TIDAW의 절대 주소(absolute address)를 지정한다. 트랜스포트-커맨드-컨트롤-블록 TIDA(TCCB-TIDA)필드는 TCCB가 직접적으로 혹은 간접적으로 어드레스되는지를 표시한다. 예를 들어, 워드 0, 비트 6이 0(zero)일 때, TCCB-주소 필드(148)은 TCW를 위해 TCCB의 절대 주소를 지정하고, 비트 6이 1(one)일 때, TCCB-주소 필드(148)은 TCCB의 위치 혹은 위치들을 지정하는 TIDAW 혹은 TIDAL의 절대 주소를 지정한다.
For example, a number of flag fields 142 indicate whether direct or indirect data addressing is used to look for input data, output data, or TCCB. The output transport-indirect-data addressing (TIDA) field indicates whether the output data is directly or indirectly addressed. For example, when word 0, bit 7 of TCW 140 is zero and output data is specified, output-data-address field 144 specifies the location of the output data in absolute storage do. When bit 7 is one, the output-data-address field 144 stores the output storage location or locations as the TIDA word (TIDAW) in the list of TIDAWs (TIDAL) or the absolute address of the first TIDAW . The input TIDA field indicates whether the input data is directly or indirectly addressed. For example, when word 0, bit 5 is zero and the input data is specified, the input-data-address field 146 specifies the input storage location, i.e., the absolute address of the location where the input data is to be stored. When bit 5 is one, the input-data-address field 146 specifies the absolute address of the TIDAW or first TIDAW in the TIDAL designating the input storage location or locations. The Transport-Command-Control-Block TIDA (TCCB-TIDA) field indicates whether the TCCB is addressed directly or indirectly. For example, when word 0, bit 6 is zero, the TCCB-address field 148 specifies the absolute address of the TCCB for the TCW, and when bit 6 is one, the TCCB- (148) specifies the absolute address of the TIDAW or TIDAL specifying the location or locations of the TCCB.

TCW(140)은 또한 TCCB의 바이트들 내의 길이를 명시하는 트랜스포트-커맨드-컨트롤-블록 길이(TCCBL) 필드(150)을 포함한다. 예를 들어, TCCBL 필드는 부호 없는 정수(unsigned integer)를 포함하는데, 이 값은 (예를 들어, 일방향 데이터 전송들을 위해서는 20에 더해졌을 때 혹은 양방향 데이터 전송을 위해서는 24에 더해졌을 때) TCCB의 길이를 바이트로 명시한다.
TCW 140 also includes a Transport-Command-Control-Block Length (TCCBL) field 150 that specifies the length within the bytes of the TCCB. For example, the TCCBL field contains an unsigned integer that can be used to determine the number of TCCBs (for example, when added to 20 for one-way data transmissions or to 24 for two-way data transmission) Specifies the length in bytes.

메인 메모리(106)으로 전송될 바이트들의 수를 표시할 때 리드 동작들 (R) 필드(152)는 0이 아니다(non-zero)(예를 들어, 워드 1의 비트 14는 1(one)이다). 메인 스토리지로부터 전송될 바이트들의 수를 표시할 때 라이트 동작들 (W) 필드(154)는 0이 아니다(non-zero)(예를 들어, 워드 1의 비트 15는 1(one)이다). 만일 R-필드(152) 및 W-필드(154) 모두가 1(one)이면, 타겟 디바이스(116) 및 컨트롤 유닛(118)이 양방향 데이터 전송을 지원하지 않는 한, 프로그램-체크 조건이 인지된다(recognized). 만일 W-비트가 1이고 TCW가 질의(interrogate) TCW이면, 프로그램-체크 조건이 인지된다.
When displaying the number of bytes to be transferred to the main memory 106, the read operations R field 152 is non-zero (e.g., bit 14 of word 1 is one ). Write operations (W) field 154 is non-zero (e.g., bit 15 of word 1 is one) when indicating the number of bytes to be transferred from main storage. If both R-field 152 and W-field 154 are 1, a program-check condition is acknowledged, unless target device 116 and control unit 118 support bi-directional data transmission (recognized). If the W-bit is 1 and the TCW is interrogated TCW, then the program-check condition is acknowledged.

출력-데이터 주소 필드(144)는 디바이스로 송신될 모든 출력 데이터의 스토리지 내 위치를 표시한다. 예를 들어, 워드 1의 비트 15(W-필드 비트 154) 가 1이고 플래그들 필드(142)(출력-TIDA 플래그)의 비트 7이 0일 때, 워드들 2-3은 절대 스토리지 내 64-비트 출력 위치를 지정한다. W-비트가 1이고 출력-TIDA 플래그가 1일 때, 워드들 2-3은 출력 스토리지의 위치 혹은 위치들을 지정하는 TIDAW 혹은 TIDAW들의 리스트의 절대 스토리지 내 64-비트 위치를 지정한다. 입력-데이터 주소 필드(146)은 디바이스로부터 수신되었을 때 입력 데이터가 저장될 위치를 표시한다. 예를 들어, 워드 1의 비트 14 (R-필드 비트 152)가 1이고 플래그들 필드(142)의 비트 5 (입력-TIDA 플래그)가 0일 때, 워드들 4-5는 절대 스토리지 내 64-비트 입력 위치를 지정한다. R-비트가 1이고 입력-TIDA플래그가 1일 때, 워드들 4-5는 입력 스토리지 위치(들)을 지정하는 TIDAW 혹은 TIDAW들의 목록의 절대 스토리지 내 위치를 지정한다.
The output-to-data address field 144 indicates the location in the storage of all output data to be sent to the device. For example, when bit 15 (W-field bit 154) of word 1 is 1 and bit 7 of flags field 142 (output-TIDA flag) is 0, words 2-3 are stored in 64- Specifies the bit output position. When the W-bit is 1 and the output-TIDA flag is 1, words 2-3 specify the 64-bit position in the absolute storage of the list of TIDAWs or TIDAWs that specify the location or locations of the output storage. The input-data address field 146 indicates the location where the input data will be stored when received from the device. For example, when bit 14 (R-field bit 152) of word 1 is 1 and bit 5 (input-TIA flag) of flags field 142 is 0, words 4-5 are stored in 64- Specifies the bit input position. When the R-bit is 1 and the input-TIDA flag is 1, words 4-5 specify the absolute storage location of the list of TIDAWs or TIDAWs that specify the input storage location (s).

트랜스포트-상태-블록 주소(156)은 TCW를 위한 트랜스포트-상태 블록의 스토리지 내의 위치를 명시한다. 예를 들어, 워드들 6-7은 TCW를 위한 트랜스포트-상태 블록의 절대 스토리지 내의 64-비트 위치를 지정한다.
The transport-state-block address 156 specifies the location in the storage of the transport-state block for the TCW. For example, words 6-7 specify the 64-bit location in the absolute storage of the transport-state block for the TCW.

트랜스포트-커맨드-컨트롤-블록 주소 필드(148)은 TCCB의 하나 혹은 그 이상의(직접 혹은 간접) 주소들을 명시한다. 예를 들어, 만일 TCCB-TIDA 비트(플래그들 필드의 비트 6)가 0이면, 워드들 8-9는 TCCB의 절대 스토리지 내의 64-비트 위치를 지정한다. TCCB-TIDA가 0일 때, TCCB는 스토리지의 인접 영역(a contiguous area) 내에 상주하기 위해 명시된다. 만일 트랜스포트-커맨드-컨트롤-블록-TIDA 비트가 1이면, 워드들 8-9는 TCCB의 절대 스토리지 내의 위치를 지정하는 TIDAW 혹은 TIDAW들의 목록의 절대 스토리지 내 64-비트 위치를 지정한다. TCCB-TIDA 비트가 1일 때, TCCB는 스토리지의 비인접 영역들(noncontiguous areas) 내에 상주하기 위해 명시된다.
The Transport-Command-Control-Block Address field 148 specifies one or more (direct or indirect) addresses of the TCCB. For example, if the TCCB-TIDA bit (bit 6 of the flags field) is 0, then words 8-9 specify the 64-bit location in the absolute storage of the TCCB. When TCCB-TIDA is zero, the TCCB is specified to reside in a contiguous area of the storage. If the Transport-Command-Control-Block-TIDA bit is 1, words 8-9 specify the 64-bit location in the absolute storage of the list of TIDAWs or TIDAWs that specify the location in the absolute storage of the TCCB. When the TCCB-TIDA bit is 1, the TCCB is specified to reside in noncontiguous areas of the storage.

출력 카운트 필드(158)은 TCW의 출력 바이트들의 수를 명시한다. 예를 들어, 워드 1의 비트 15 (W-비트)가 1일 때, 워드 10은 TCW 출력 바이트들의 부호 없는 정수 총 카운트(the unsigned integer total count)를 보유한다. 입력-카운트 필드(160)은 TCW의 입력 바이트들의 수를 명시한다. 예를 들어, 워드 1의 비트 14(R-비트)가 1일 때, 워드 11은 TCW의 입력 바이트들의 부호 없는 정수 총 카운트(the unsigned integer total count)를 보유한다.
The output count field 158 specifies the number of output bytes of the TCW. For example, when bit 15 (W-bit) of word 1 is 1, word 10 holds the unsigned integer total count of TCW output bytes. The input-count field 160 specifies the number of input bytes of the TCW. For example, when bit 14 (R-bit) of word 1 is 1, word 11 holds the unsigned integer total count of the input bytes of the TCW.

만일 TCW가 질의 동작(an interrogation operation)을 명시한다면, 질의-TCW 주소 필드(162)는 질의 TCW의 스토리지 내 위치를 표시한다. 예를 들어, START SUBCHANNEL 명령이 TCW를 지정할 때, TCW의 워드 15는 체크되지 않는다. 그러나, CANCEL SUBCHANNEL명령이 TCW채널 프로그램을 위해 스타트 펜딩(start pending)이고 상태 펜딩(status pending)이 아닌 서브채널을 지정할 때, START SUBCHANNEL에 의해서 지정된 TCW의 워드 15의 비트들 1-31은 상기 서브채널을 위한 질의 동작을 개시하기 위해 사용되는 질의-TCW의 절대 스토리지 내 31-비트 위치를 지정한다. 만일 CANCEL SUBCHANNEL이 발행될(issued) 때 워드 15가 0들을 보유한다면, 질의 동작은 개시되지 않는다. CANCEL SUBCHANNEL이 발행될 때, 워드 15의 비트 0은 0이 되어야 하고, 그렇지 않으면, 프로그램-체크 조건은 질의-실패한 상태가 표시된 것(interrogate-failed status indicated)으로 인지된다. CANCEL SUBCHANNEL이 발행되고 워드 15의 비트들 1-31이 0들을 보유하지 않을 때는, 워드 15의 비트들 1-31은 64-바이트 범위에서 스토리지 위치를 지정해야 한다, 그렇지 않으면, 프로그램-체크 조건은 질의-실패한 상태가 표시된 것(interrogate-failed status indicated)으로 인지된다. 워드 14는 상기 질의-TCW-주소 필드를 64 비트로 확장하기 위해 유보될 수 있다.
If the TCW specifies an interrogation operation, the query-TCW address field 162 indicates the location in the storage of the query TCW. For example, when the START SUBCHANNEL command specifies TCW, word 15 of the TCW is not checked. However, when the CANCEL SUBCHANNEL command is a start pending and not a status pending subchannel for the TCW channel program, bits 1-31 of word 15 of the TCW designated by START SUBCHANNEL are set to the sub- Specifies the 31-bit position in absolute storage of the query-TCW used to initiate the query operation for the channel. If word 15 holds 0s when CANCEL SUBCHANNEL is issued, the query operation is not started. When CANCEL SUBCHANNEL is issued, bit 0 of word 15 must be 0; otherwise, the program-check condition is recognized as an interrogate-failed status indicated. When CANCEL SUBCHANNEL is issued and bits 1-31 of word 15 do not hold zeros, bits 1-31 of word 15 must specify the storage location in the 64-byte range, otherwise the program- It is recognized as an interrogate-failed status indicated. Word 14 may be reserved to extend the query-TCW-address field to 64 bits.

도 3 및 4를 참조하면, 트랜스포트-커맨드-컨트롤 블록(TCCB)(170)은 하나 혹은 그 이상의 개별 커맨드들을 TCW I/O 동작의 일부로서 포함하고, 채널 경로를 통해서 채널(128)에 의해 컨트롤 유닛(118) 및/또는 디바이스(116)에 송신된다. TCCB(170)은 채널이 다수의 메시지들(multiple messages) 혹은 정보 유닛들을 송신해야 하는 일을 덜어주고(relieve), 또한 그 동작을 실행할 책임을 컨트롤 유닛으로 넘기며(transfer) 그리고 컨트롤 유닛(118)이 각각의 커맨드를 위해 응답을 송신할 필요를 제거한다. 대신에, 컨트롤 유닛(118)은 모든 커맨드들을 실행할 수 있고 그 동작이 완료되면 응답을 송신할 수 있다.
3 and 4, the transport-command-control block (TCCB) 170 includes one or more separate commands as part of the TCW I / O operation, To the control unit 118 and / or the device 116. The TCCB 170 relieves the channel from having to transmit multiple messages or information units and also transfers the responsibility for performing the operation to the control unit and then transmits the control unit 118 Eliminates the need to send a response for each command. Instead, the control unit 118 can execute all commands and send a response when the operation is complete.

TCCB(170)은 길이가 가변이고(variable), 헤더(header)와 트레일러 (trailer) 정보를 보유할 수 있으며, 하나 혹은 그 이상의(예를 들어, 1에서 30) 커맨드들을 논리적으로 링크된(즉, 체인된) 디바이스-커맨드 워드들(DCW들)로서 보유할 수 있는데, 이는 그들이 순차 방식으로(in a sequential manner) 컨트롤 유닛(118)에 의해서 실행되도록 하기 위함이다. TCCB(170)은 인접 스토리지의 단일 블록으로서 상주하거나 혹은 인접하지 않는 스토리지의 다수 블록들로서 상주할 수 있다. 예를 들어, 전술한 TCW(140) 내 TCCB-TIDA플래그는 TCCB가 인접 스토리지 내에 상주하는지를 명시하기 위해 사용된다.
The TCCB 170 may be variable in length, may hold header and trailer information, and may include one or more (e.g., 1 to 30) , Chained) device-command words (DCWs), so that they can be executed by the control unit 118 in an a sequential manner. The TCCB 170 may reside as a plurality of blocks of storage resident or non-contiguous as a single block of contiguous storage. For example, the TCCB-TIDA flag in TCW 140 described above is used to specify whether the TCCB resides in contiguous storage.

TCCB의 예들이 도 3 및 4에 도시된다. 도 4에서 도시한 바와 같이, TCCB(170)은 I/O 동작을 개시하기 위해 컨트롤 유닛(118)로 송신되는 트랜스포트 커맨드 정보 유닛(IU)(172)의 일부로서 채널(128)로부터 컨트롤 유닛(118)로 송신될 수 있다. 한 실시 예에서, 트랜스포트 커맨드 IU(172)는 8-바이트 SB-4 헤더(174), 그 다음의 4-바이트 트랜스포트 커맨드 헤더(TCH) (176), 그리고 TCCB(170)으로 구성된다. TCCB(170)은 16-바이트 트랜스포트-커맨드-영역 헤더(TCAH) (178), 가변 길이 트랜스포트-커맨드 영역(TCA) (180), 및 트랜스포트 커맨드 영역 트레일러(TCAT) (182)를 포함한다. TCAT(182)는 4-바이트 LRC필드(184), 4-바이트 데이터 전송 길이(DL) 필드(186)를 더 포함할 수 있고, 양방향 동작들을 위해, 4-바이트 양방향 리드 데이터-전송 길이(BRDL) 필드(188)을 더 포함할 수 있다. 이들 필드들에 관해 아래에서 더 설명을 할 것이다.
Examples of TCCB are shown in Figures 3 and 4. As shown in Figure 4, the TCCB 170 is a part of a transport command information unit (IU) 172 that is transmitted to the control unit 118 to initiate an I / (118). In one embodiment, the transport command IU 172 comprises an 8-byte SB-4 header 174, a next 4-byte transport command header (TCH) 176, and a TCCB 170. The TCCB 170 includes a 16-byte transport-command-area header (TCAH) 178, a variable length transport-command area (TCA) 180, and a transport command area trailer (TCAT) do. Byte bi-directional read data-transfer length (BRDL) field 184 for bi-directional operations, and the 4-byte LRC field 184, Field 188. < / RTI > These fields will be further described below.

도 4를 참조하면, SB-4 헤더(174)는 데이터 전송을 위한 논리적 경로 및 디바이스(116)을 식별하기 위해서 FC-4 어드레싱 정보를 제공한다. SB-4 헤더(174)는, 디바이스 ID뿐만 아니라, 채널(128)과 컨트롤 유닛(118) 사이의 논리적 경로를 위한 채널 이미지 ID 및 컨트롤 유닛 ID를 포함하는 정보를 제공한다.
Referring to FIG. 4, the SB-4 header 174 provides FC-4 addressing information to identify the logical path and device 116 for data transmission. The SB-4 header 174 provides information including the channel ID and the control unit ID for the logical path between the channel 128 and the control unit 118 as well as the device ID.

도 5를 참조하면, TCH(176)은 TCCB(170) 및 관련된 디바이스 동작들에 관한 정보를 포함한다. 한 실시 예에서, TCH(176)은 4 바이트를 보유하며 트랜스포트 커맨드 IU(172) 내에서 SB-4 헤더(174) 바로 다음에 위치한다. TCH(176)은 길이 필드("L1")(190), 리드 필드("R")(192), 및 라이트 필드("W")(194)와 같은 필드들을 포함한다. 상기 L1 필드(예를 들어, 비트 24-29에 위치함)는 TCA(180) 플러스 TCA(180) 바로 다음에 위치하는 1-워드 LRC 필드(184)의 길이를, 워드로(in words), 명시한다. 예를 들어, 컨트롤 유닛들(118)이 양방향 동작들을 지원하지 않는 경우, 트랜스포트 커맨드 IU(172) 내에 전송된 데이터의 총량(total amount)은 L1 필드 플러스 8(즉, L1 필드 플러스 2-워드 SB-4 헤더, 1-워드 TCH, 4-워드 TCAH 및 1-워드 DL)과 같으며(equal); 그렇지 않으면, 컨트롤 유닛은 데이터 카운트 에러 때문에 트랜스포트-커맨드 IU 무결성 에러(integrity error)를 인지한다. 컨트롤 유닛들이 양방향 동작들을 지원하는 경우, 트랜스포트-커맨드 IU(172) 내에 전송되는 데이터의 총량은 L1 필드 플러스 8(즉, L1 필드 플러스 2-워드 SB-4 헤더, 1-워드 TCH, 4-워드 TCAH 및 1-워드 DL) 혹은 L1 필드 플러스 9(즉, L1 필드 플러스 2-워드 SB-4 헤더, 1-워드 TCH, 4-워드 TCAH, 1-워드 DL 및 양방향 동작을 위한 1-워드 BRDL)와 같으며; 그렇지 않은 경우, 컨트롤 유닛은 데이터 카운트 에러 때문에 트랜스포트-커맨드 IU 무결성 에러를 인지할 것이다. 만일 트랜스포트-커맨드 IU 무결성 에러가 인지되지 않는다면, TCCB 내의 LRC 위치는 L1 필드에 기초하여 정해지고 그리고 LRC 체크는 수행될 수 있다.
5, the TCH 176 includes information regarding the TCCB 170 and related device operations. In one embodiment, the TCH 176 holds 4 bytes and is located immediately after the SB-4 header 174 in the transport command IU 172. The TCH 176 includes fields such as a length field ("L1") 190, a lead field ("R") 192, and a light field ("W" The Ll field (e.g., located in bits 24-29) is used to indicate the length of the 1-word LRC field 184 immediately following TCA 180 plus TCA 180 in words, Specify. For example, if the control units 118 do not support bidirectional operations, then the total amount of data transferred in the transport command IU 172 is the L1 field plus 8 (i.e., L1 field plus two-word SB-4 header, 1-word TCH, 4-word TCAH and 1-word DL); Otherwise, the control unit recognizes the transport-command IU integrity error due to the data count error. When the control units support bidirectional operations, the total amount of data to be transferred in the transport-command IU 172 is L1 field plus 8 (i.e. L1 field plus two-word SB-4 header, one-word TCH, Word TCBL and 1-word DL for bidirectional operation) or L1 field plus 9 (i.e. L1 field plus 2-word SB-4 header, 1-word TCH, 4-word TCAH, ); Otherwise, the control unit will recognize the transport-command IU integrity error due to the data count error. If the transport-command IU integrity error is not acknowledged, the LRC location in the TCCB may be determined based on the LI field and an LRC check may be performed.

리드(R) 필드(192)는 TCA(190)이 하나 혹은 그 이상의 리드 혹은 입력 커맨드들을 포함한다는 것을 명시한다. 도 5의 한 실시 예에서, R 필드(192)는 R 비트, 비트 30이며, 이것이 1로 세트 되었을 때, TCA(180)이 리드 데이터(read data)를 전송하는 하나 혹은 그 이상의 커맨드들을 보유한다는 것을 나타낸다. R 비트가 0으로 세트 되었을 때, TCA(180)은 리드 데이터를 전송하는 어떠한 커맨드들도 보유하지 않는다. R 비트가 1이고 W 비트(예를 들어, 비트 31)가 0일 때, 동작은 리드 동작이라 한다(referred). R 비트와 W 비트가 모두 0으로 세트 되었을 때, TCA(180)은 리드 혹은 라이트(write) 데이터를 전송하는 어떠한 커맨드들도 보유하지 않으며, 이는 I/O동작이 데이터 전송을 수행하지 않음을 나타낸다. R 비트와 W 비트가 모두 1로 세트 되었을 때, TCA(180)은 리드 및 라이트 데이터 모두를 전송하는 커맨드들을 보유할 수 있으며, 이때 동작은 양방향 동작이라 한다. 만일 양방향 동작이 명시되었는데 컨트롤 유닛(118)이 양방향 동작들을 지원하지 않는다거나 혹은 컨트롤 유닛(118)은 양방향 동작들을 지원하지만 트랜스포트-커맨드 IU(172)가 BRDL 필드(188)을 보유하지 않는다면 디바이스(116) 혹은 컨트롤 유닛(118)은 리드-라이트 충돌(read-write conflict) 때문에 TCH 컨텐트 에러를 인지한다. R 비트가 0이고 컨트롤 유닛(118) 혹은 디바이스(116)이 리드 데이트를 전송하려고 시도하는 TCA(180) 내의 커맨드를 만났을(encounter) 때, 무효의 리드 시도 때문에 TCCB 컨텐트 에러가 인지된다.
The Read (R) field 192 specifies that the TCA 190 includes one or more leads or input commands. 5, the R field 192 is an R bit, bit 30, which, when set to 1, indicates that the TCA 180 holds one or more commands to transmit read data . When the R bit is set to 0, the TCA 180 does not hold any commands to transmit the read data. When the R bit is 1 and the W bit (for example, bit 31) is 0, the operation is referred to as a read operation. When both the R and W bits are set to zero, the TCA 180 does not hold any commands to transmit read or write data, indicating that the I / O operation is not performing data transfer . When both the R and W bits are set, the TCA 180 may hold commands to transmit both read and write data, where the operation is referred to as bidirectional operation. If the bidirectional operation is specified but the control unit 118 does not support bidirectional operations or if the control unit 118 supports bidirectional operations but the transport-command IU 172 does not have the BRDL field 188, The control unit 116 or the control unit 118 recognizes a TCH content error due to a read-write conflict. When the R bit is 0 and the control unit 118 or the device 116 encounters a command in the TCA 180 that is attempting to transmit the leaddata, the TCCB content error is recognized due to an invalid lead attempt.

라이트(W) 필드(194)는 TCA(180)이 하나 혹은 그 이상의 라이트 혹은 출력 커맨드들을 포함한다는 것을 명시한다. 도 5의 한 실시 예에서, W 필드는 W 비트, 비트 31이며, 이것이 1로 세트 되었을 때, TCA(180)이 라이트 데이터(write data)를 전송하는 하나 혹은 그 이상의 커맨드들을 보유한다는 것을 표시한다. 이 비트가 0으로 세트 되었을 때, TCA(180)은 라이트 데이터를 전송하는 어떠한 커맨드들도 보유하지 않는다. W 비트가 1이고 R 비트(즉, 비트 30)가 0일 때, 이때 동작은 라이트 동작이라 한다(referred). W 비트가 0이고 컨트롤 유닛(118) 혹은 디바이스(116)이 라이트 커맨드를 명시하는 TCA 내의 커맨드를 만났을 때, 무효의 라이트 조건 때문에 TCCB 컨텐트 에러가 인지된다.
The Write (W) field 194 specifies that the TCA 180 includes one or more write or output commands. In one embodiment of FIG. 5, the W field is a W bit, bit 31, indicating that when TCA 180 is set to 1, it holds one or more commands to transmit write data . When this bit is set to zero, the TCA 180 does not hold any commands to transmit the write data. When the W bit is 1 and the R bit (i.e., bit 30) is 0, the operation is referred to as a write operation. When the W bit is 0 and the control unit 118 or device 116 encounters a command in the TCA specifying a write command, a TCCB content error is recognized due to an invalid write condition.

도 6을 참조하면, TCA 헤더(TCAH) (178)의 한 실시 예는, TCA 길이 및 디바이스 표시들(device indications)과 같은, TCA(180) 및 그 안에 기술된 동작들에 관한 정보를 포함한다. 이 실시 예에서, 워드 1의 바이트 3은 "L2" 길이 필드(196)이고, 이는 TCA(180) 플러스 TCA 헤더의 워드들 2 및 3, 플러스 4-바이트 LRC 필드(184)(TCA(180) 바로 다음에 오는)의 길이를, 바이트로, 명시하는 부호 없는 2진 정수(an unsigned binary integer)를 보유한다. 서비스-액션 코드 필드(198)(예를 들어, 워드 2의 바이트들 0-1)은 TCCB에 의해서 명시되는 동작의 종류를 명시하는 부호 없는 정수 값을 포함한다. 예를 들어, 헥사 값(a Hex value) '1FFE'는 SB-4 디바이스 I/O 동작을 표시하고, 헥사 값 '1FFF'는 SB-4 디바이스 지원 펑션들(Dvice support functions)을 표시한다. 우선 번호 필드(200)(즉, 워드 2의 바이트 3)은 컨트롤 유닛 I/O 우선 번호(priority number)를 포함한다.
6, one embodiment of the TCA header (TCAH) 178 includes information about the TCA 180 and the operations described therein, such as TCA length and device indications . In this embodiment, byte 3 of word 1 is the "L2" length field 196, which includes TCA 180 plus the words 2 and 3 of the TCA header plus a 4-byte LRC field 184 (TCA 180) Followed by an unsigned binary integer that specifies, in bytes, the length of the length of the next byte. The service-action code field 198 (e.g., bytes 0-1 of word 2) contains an unsigned integer value specifying the type of operation specified by the TCCB. For example, a hex value '1FFE' indicates the SB-4 device I / O operation and a hex value '1FFF' indicates the SB-4 device support functions. The priority number field 200 (i.e., byte 3 of word 2) contains a control unit I / O priority number.

[0056]도 7을 참조하면, 트랜스포트-커맨드 영역(TCA) (180)은 가변 길이 영역이고, 이는 하나 혹은 그 이상의(예를 들어, 1에서 30까지) 커맨드들을 디바이스-커맨드 워드들(DCW들) (202)로서 보유한다. TCA(180)의 길이는, 한 실시 예에서, 4-바이트 워드들의 진정 수(integral number)이다. 디바이스 컨트롤 데이터를 명시하는 DCW들(202)을 위해, TCA(180)도 또한 각각의 DCW(202)와 관련된 컨트롤 데이터를 보유한다. 컨트롤 데이터를 명시하는 각각의 DCW(202)는 최대 DCW 용량(capacity)을 하나 혹은 그 이상의 DCW들에 의해서 감소시키는데, 커맨드-관련 데이터의 크기에 따라서, 그렇게 한다. 입력 또는 출력 데이터를 명시하는 DCW들(202)을 위해, TCW(140)은 관련 스토리지 영역 혹은 영역들을 지정하고 DCW는 전송할 바이트들의 카운트를 지정한다. 한 실시 예에서, TCA의 최대 크기는 240 바이트이다. 도 7의 실시 예에서 도시한 바와 같이, 전체 DCW(202)를 위해 TCA(180) 내에 충분한 공간이 존재할 때, DCW(202)는 이전의 DCW(202) 혹은 이전의 DCW(202)와 관련된 컨트롤 데이터 다음에 오는 워드 범위에서(on the word boundary) 시작한다. TCA(180) 내 마지막DCW(202)가 워드들의 진정 수가 아닌 컨트롤 데이터를 명시할 때, 후속 LRC 필드(184)는 컨트롤 데이터 다음에 오는 워드 범위에서 시작한다.
Referring to FIG. 7, the transport-command area (TCA) 180 is a variable length area, which is used to transmit one or more (eg, 1 to 30) commands to device- Quot;) < / RTI > The length of TCA 180 is, in one embodiment, the integral number of 4-byte words. For DCWs 202 that specify device control data, TCA 180 also holds control data associated with each DCW 202. Each DCW 202 that specifies control data reduces the maximum DCW capacity by one or more DCWs, depending on the size of the command-related data. For DCWs 202 specifying input or output data, the TCW 140 specifies the associated storage area or areas and the DCW specifies a count of bytes to transfer. In one embodiment, the maximum size of the TCA is 240 bytes. 7, when there is sufficient space in the TCA 180 for the entire DCW 202, the DCW 202 may control the previous DCW 202 or the control associated with the previous DCW 202, It starts on the word boundary after the data. When the last DCW 202 in the TCA 180 specifies control data that is not the true number of words, the subsequent LRC field 184 begins at the word range that comes after the control data.

일부 디바이스들을 위해, DCW들(202)의 목록은 TCA(180)에 적합한(fit in) 범위를 넘어서 확장될 수 있다. 그러한 경우들에서, 추가의 DCW들을 포함하는 TCA 확장(TCAX) 필드가 명시되고 마치 TCAX가 출력 데이터인 것처럼 전송될 수 있다 (예를 들어, 출력 트랜스포트-데이터 IU의 일부로서 전송될 수 있다). 그러나, TCAX는 전송 데이터로서 보다는 TCA(180)의 논리적 계속(a logical continuation)으로서 취급된다. TCAX는 전송-TCA-확장(TTE) DCW에 의해서 TCA(180) 내에 명시된다. TCAX 및 TTE DCW는 아래에서 더 자세히 설명될 것이고, TCAX의 실시 예가 도 12 및 13에 도시되어 있다.
For some devices, the list of DCWs 202 may extend beyond the fit in range of the TCA 180. [ In such cases, a TCA extension (TCAX) field containing additional DCWs may be specified and transmitted as if TCAX is the output data (e.g., may be sent as part of an output transport-data IU) . However, TCAX is treated as a logical continuation of TCA 180 rather than as transmission data. TCAX is specified in TCA 180 by a transport-TCA-extension (TTE) DCW. TCAX and TTE DCW will be described in more detail below, and an embodiment of TCAX is shown in Figures 12 and 13.

도 3 및 4에서 도시한 바와 같이, TCCB는 트랜스포트-커맨드-영역 트레일러(TCAT) (182)를 포함할 수 있는데, 이는, 다양한 카운트 정보를 포함하여, TCCB에 관한 추가의 정보를 제공한다. 한 실시 예에서, 일방향 데이터 전송이 명시되거나(R 비트 혹은 W 비트가 1로 세트 됨) 혹은 아무런 데이터 전송이 명시되지 않을 때(TCW 내 R 비트 및 W 비트 모두가 0으로 세트 됨), TCAT(182)는 길이로 두 개의 워드이다(two words in length). 양방향 데이터 전송이 명시될 때(TCW 내 R 비트 및 W 비트 모두 1로 세트 됨), TCAT(182)는 길이로 세 개의 워드이다(three words in length).
As shown in FIGS. 3 and 4, the TCCB may include a transport-command-area trailer (TCAT) 182, which provides additional information about the TCCB, including various count information. In one embodiment, when one-way data transmission is specified (R bit or W bit set to 1) or no data transmission is specified (both R and W bits in TCW are set to 0), TCAT 182) are two words in length. When bidirectional data transmission is specified (both the R and W bits in the TCW are set to 1), the TCAT 182 is three words in length.

예를 들어, 일방향 데이터 전송이 명시될 때, 트랜스포트 카운트 혹은 데이터 길이(DL) 필드(186)은 전송될 총 데이터의 32-비트 부호 없는 정수 카운트("트랜스포트 카운트 값")를 명시한다. 리드 동작이 명시될 때(TCW R-비트가 1), TCAT 내 트랜스포트-카운트 필드의 값은 각각이 리드-타입 커맨드를 명시하는 DCW들(202) 내의 카운트 필드 값들을 합함으로써 결정될 수 있다. 그 합계는 4의 가장 가까운 배수로 반올림 되고(rounded upwards), 그 반올림 된 합계는 트랜스포트 카운트 값에 도달하기 위해 4 만큼 증가된다. 리드 동작이 명시될 때, 상기 트랜스포트 카운트 값은 TCW 입력-카운트 필드(160) 내의 값과 같아야 하며, 4의 다음 배수로 반올림, 플러스 4가 된다.
For example, when one-way data transfer is specified, the transport count or data length (DL) field 186 specifies a 32-bit unsigned integer count (the "transport count value") of the total data to be transferred. When the read operation is specified (TCW R-bit is 1), the value of the transport-count field in TCAT can be determined by summing the count field values in the DCWs 202, each of which specifies a read-type command. The sum is rounded up to the nearest multiple of 4 and the rounded sum is increased by 4 to reach the transport count value. When the read operation is specified, the transport count value should be the same as the value in the TCW input-count field 160, rounded to the next multiple of 4, plus 4.

라이트 동작이 명시될 때(TCW 내의 W 비트는 1), 라이트 커맨드를 명시하는 DCW들(202) 내의 카운트 필드 값들은 합해진다(summed). 또한, 트랜스포트 커맨드-메타 정보의 전송을 명시하는 모든 트랜스포트-커맨드 DCW들(아래에서 더 상세히 설명한다) 내의 카운트 필드 값들, 플러스 TCMI 내의 유보된 필드들의 크기가 상기 합계에 더해진다. (TCMI 유보된 필드의 크기는 0일 수 있음을 주목할 것). 모든 TIDAW-명시된 컨트롤 블록 체크(CBC) 혹은 순환 리던던시 체크(CRC) 바이트들 및 패딩 바이트들(padding bytes)의 카운트들의 총계가 상기 합계에 더해진다. 상기 합계는 4의 가장 가까운 배수로 반올림 되고, 그 반올림 된 합계는 4 만큼 증가되어 트랜스포트-카운트 값이 된다. 라이트 동작이 명시될 때, 상기 트랜스포트 카운트 값은 TCW 출력-카운트 필드(158) 내의 값과 같아야 하며, 4의 다음 배수로 반올림, 플러스 4가 된다. 리드 혹은 라이트 동작 어느 쪽도 명시되지 않을 때(TCW 내의 W 비트 및 R 비트 모두가 0), 상기 트랜스포트 카운트 값은 0이어야 한다.
When the write operation is specified (the W bit in the TCW is 1), the count field values in the DCWs 202 specifying the write command are summed. In addition, the count field values in all the transport-command DCWs (described in more detail below) that specify the transmission of the transport command-meta information, plus the size of the reserved fields in the plus TCMI, are added to the sum. (Note that the size of the TCMI Reserved field may be zero). The sum of counts of all TIDAW-specified control block checks (CBC) or cyclic redundancy check (CRC) bytes and padding bytes is added to the sum. The sum is rounded to the nearest multiple of 4, and the rounded sum is increased by 4 to a transport-count value. When a write operation is specified, the transport count value should be equal to the value in the TCW output-count field 158, rounded to the next multiple of 4, plus 4. When neither the read nor write operation is specified (both the W and R bits in TCW are 0), the transport count value must be zero.

양방향 데이터 전송이 명시될 때, DL 필드(186)은 라이트 카운트(write count)이고 전송될 총 출력 데이터의 32-비트 부호 없는 정수 카운트를 명시한다. TCAT(182) 내의 DL 필드(라이트-카운트 필드)의 트랜스포트 카운트 값은 전술한 바와 같이 라이트 동작을 위해 결정된다. 양방향 리드 데이터 길이(BRDL) 필드(188)은 전송될 총 입력 데이터의 32-비트 부호 없는 정수 카운트를 명시한다. BRDL 필드(188)을 위한 트랜스포트 카운트 값은 전술한 바와 같이 리드 동작을 위해 결정된다.
When bidirectional data transmission is specified, the DL field 186 is a write count and specifies a 32-bit unsigned integer count of the total output data to be transmitted. The transport count value of the DL field (write-count field) in the TCAT 182 is determined for the write operation as described above. The bi-directional read data length (BRDL) field 188 specifies a 32-bit unsigned integer count of the total input data to be transmitted. The transport count value for the BRDL field 188 is determined for the read operation as described above.

한 실시 예에서, 라이트 동작 혹은 양방향 동작을 위해, DL 필드는 4-바이트 부호 없는 2진 정수를 보유하는데, 이는 그 동작을 위해 컨트롤 유닛에 채널에 의해서 전송될 바이트들의 수를 명시하고 그리고 모든 중간 및 최종 패드와 CRC 바이트들을 포함하며, 그리고 만일 COB가 라이트 동작의 제1 트랜스포트-데이터 IU 내에 포함된다면, 그것은 또한 COB, 모든 COB 패드 바이트들 및 COB CRC 바이트들을 포함한다. 만일 TTE DCW가 TCA 내에 존재하면, DL 필드는 또한 TCAX, 모든 TCAX 패드 바이트들 및 TCAX CRC 바이트들을 포함한다.
In one embodiment, for a write operation or a bidirectional operation, the DL field holds a 4-byte unsigned binary integer, which specifies the number of bytes to be sent by the channel to the control unit for its operation, And last pad and CRC bytes, and if the COB is included in the first transport-data IU of the write operation, it also includes the COB, all COB pad bytes and COB CRC bytes. If the TTE DCW is present in the TCA, the DL field also contains TCAX, all TCAX pad bytes and TCAX CRC bytes.

도 8 및 9는, 각각, 일방향 및 양방향 전송들을 위한TCW 입력-카운트, 출력-카운트, 및 TCAT 트랜스포트 카운트 값들의 결정을 요약하는 테이블들이다.
Figures 8 and 9 are tables summarizing the determination of TCW input-count, output-count, and TCAT transport count values for one-way and two-way transmissions, respectively.

양방향 동작을 위해, 양방향-리드-데이터-길이(BRDL) 필드는 4-바이트 부호 없는 2진 정수를 포함하는데, 이는 그 동작을 위해 채널로 컨트롤 유닛에 의해서 전송될 바이트들의 수를 명시하고 그리고 만일 CRC를 위해 이미 워드 범위 플러스 4 바이트에 있지 않다면 워드 범위까지 반올림하기 위해서 요구된 모든 패드 바이트들을 포함한다. 양방향 동작들이 아닌 동작들을 위해, 만일 트랜스포트-커맨드 IU가 BRDL 필드를 보유한다면 리드-라이트 충돌 때문에, 디바이스는 TCH 컨텐트 에러를 인지할 것이다.
For bidirectional operation, the Bidirectional-Read-Data-Length (BRDL) field contains a 4-byte unsigned binary integer that specifies the number of bytes to be sent by the control unit to the channel for its operation, Contains all pad bytes required to round to the word range, if not already in the word range plus 4 bytes for CRC. For operations other than bidirectional operations, the device will recognize the TCH content error due to a read-write conflict if the transport-command IU has a BRDL field.

도 10을 참조하면, 디바이스-커맨드 워드(DCW)(202)는 실행될 커맨드를 명시한다. 특정 I/O동작들을 개시하는 커맨드들을 위해, 그것은 동작이 수행되는 바이트들의 카운트, 스토리지로 또는 스토리지로부터 전송이 완료될 때마다 취해야 할 액션, 및 기타 선택들을 지정한다. DCW 데이터-전송 동작과 관련된 스토리지 영역 혹은 영역들은, 커맨드에 의해서 명시되는 동작에 따라서, DCW(202)를 포함하는 TCCB(170)을 지정하는 TCW(140)의 입력-데이터-주소 필드(146) 혹은 출력-데이터-주소 필드(144)에 의해서 지정된다. 입력-데이터-주소 필드(146) 혹은 출력-데이터-주소 필드(144)가 스토리지를 직접적으로 혹은 간접적으로 지정하는지는 TCW(140) 내의 입력-TIDA 및 출력-TIDA 플래그들에 의해서 명시된다.
Referring to FIG. 10, a device-command word (DCW) 202 specifies a command to be executed. For commands that initiate certain I / O operations, it specifies a count of the bytes on which the operation is performed, an action to take each time the transfer is completed from storage or from storage, and other selections. The storage area or areas associated with the DCW data-transfer operation may be stored in the input-data-address field 146 of the TCW 140 that specifies the TCCB 170 including the DCW 202, according to the operation specified by the command. Or by an output-data-address field 144. Whether the input-data-address field 146 or the output-data-address field 144 specifies storage directly or indirectly is specified by the input-TIDA and output-TIDA flags in the TCW 140.

한 실시 예에서, DCW(202)는 TCW(140) 내 한 워드 범위로(on a word boundary) 지정되는 8-바이트 컨트롤 블록이다. DCW(202)는 커맨드 코드 필드(204), 컨트롤 플래그들 필드(206), 컨트롤 데이터 카운트(208) 및 DCW 데이터 카운트(210)과 같은 필드들을 포함한다.
In one embodiment, DCW 202 is an 8-byte control block designated on a word boundary in TCW 140. The DCW 202 includes fields such as a command code field 204, control flags field 206, a control data count 208 and a DCW data count 210.

커맨드 코드 필드(204) (예를 들어, 워드 0의 비트들 0-7)는 수행될 동작을 명시한다. 커맨드가 유효한지는 디바이스에 달려있고 그리고 TCAH(178) 내의 서비스-액션 코드 필드(198)의 값에 달려있다. 기본 커맨드들은 리드, 라이트, 컨트롤, 감지(sense) 및 트랜스포트를 포함한다. 채널 서브시스템(114)는 다음 동작들을 구별한다: 컨트롤(control), 출력 포워드(output forward (write)), 입력 포워드(input forward (read, sense, sense ID)), 입력 백워드(input backward (read backward)), 브랜칭(branching (transfer in channel)) 및 트랜스포트 (transport). 일부 커맨드들은, 실행될 때, 데이터의 전송은 일으키지는 않지만 커맨드 체이닝을 위한 모든 조건들이 만족될 때 디바이스가 다음 커맨드의 실행을 체인(chain)하고 스타트(start)하도록 한다. 기본 동작들의 각각에 관해서는 아래에서 기술될 것이다.
The command code field 204 (e.g., bits 0-7 of word 0) specifies the operation to be performed. Whether the command is valid depends on the device and on the value of the service-action code field 198 in the TCAH 178. The basic commands include read, write, control, sense and transport. The channel subsystem 114 distinguishes between the following operations: control, output forward (write), input forward (read, sense, sense ID), input backward read backward), branching (transfer in channel), and transport. Some commands, when executed, cause the device to chain and start execution of the next command, but not all of the conditions for command chaining are met, although this does not result in the transfer of data. Each of the basic operations will be described below.

리드 커맨드는 디바이스-투(to)-채널 데이터 전송을 수행하는 디바이스 동작의 실행을 개시한다. 라이트 커맨드는 채널-투-디바이스 데이터 전송을 수행하는 디바이스 동작의 실행을 개시한다. 컨트롤 커맨드는 DCW 내에 제공된 컨트롤 데이터를 이용하는 디바이스 동작의 실행을 개시한다. 감지 커맨드(sense command), 데이터가 리코드 소스(a record source)로부터가 아니라 감지 인디케이터들(sense indicators)로부터 획득된다는 것을 제외하고는, 리드 커맨드와 유사하다. 컨트롤 커맨드들 및 관련 컨트롤 데이터는 I/O 커맨드의 실행 동안 특정 I/O 디바이스의 관리 및 그 디바이스의 컨트롤을 위해 제공된다. 트랜스포트 커맨드는 I/O 동작 및 채널 경로를 통한 데이터의 전송을 관리하기 위해 제공되고, 디바이스 특정(device specific)은 아니다. 그러한 커맨드들은 순환 리던던시 체크(CRC) 데이터와 같은 컨트롤 블록 체킹 데이터의 트랜스포트와 트랜스포트-데이터 IU들 내 추가의 DCW들의 트랜스포트를 관리한다.
The read command initiates the execution of a device operation to perform device-to-channel data transfer. The write command initiates execution of a device operation to perform channel-to-device data transfer. The control command starts execution of the device operation using the control data provided in the DCW. A sense command is similar to a read command except that the data is obtained from sense indicators rather than from a record source. Control commands and associated control data are provided for management of specific I / O devices and control of the device during execution of I / O commands. The transport command is provided to manage the transmission of data through the I / O operation and channel path, and is not device specific. Such commands manage the transport of control block checking data, such as cyclic redundancy check (CRC) data, and the transport of additional DCWs in transport-data IUs.

컨트롤-데이터(CD) 카운트 필드(208)은 DCW(202)와 관련된 컨트롤 데이터 바이트들의 수를 명시한다. 예를 들어, 워드 0의 바이트 3은 컨트롤 데이터의 길이를, 바이트로, 명시한다. 만일 커맨드 코드가 컨트롤 데이터를 요구하는 커맨드를 명시하고 그리고 워드 0의 바이트 3이 그 커맨드를 위해 요구된 것보다 더 적은 컨트롤-데이터 카운트를 명시한다면, 유닛-체크 조건 혹은 TCCB 컨텐트 에러가 인지된다. 만일 커맨드 코드가 컨트롤 데이터를 요구하는 커맨드를 명시하고 워드 0의 바이트 3이 0을 보유하거나 혹은 TCA의 끝(end)을 지나는(past)(혹은 명시된 TCAX의 끝을 지나는) 데이터를 명시하는 값을 보유한다면, 디바이스-검출된-프로그램 체크 조건 혹은 TCCB 컨텐트 에러가 인지된다.
The control-data (CD) count field 208 specifies the number of control data bytes associated with the DCW 202. For example, byte 3 of word 0 specifies the length of the control data, in bytes. If the command code specifies a command that requires control data, and if byte 0 of word 0 specifies fewer control-data counts than required for that command, a unit-check condition or TCCB content error is acknowledged. If the command code specifies a command that requires control data and byte 3 of word 0 holds 0 or past the end of the TCA (past the end of the specified TCAX) If so, a device-detected-program check condition or TCCB content error is acknowledged.

DCW 데이터 카운트 필드(210)은 현재 DCW(202)를 위해 TCW에 의해서 지정된 데이터(예를 들어, 리드 혹은 라이트 동작을 위해 전송될 데이터, 즉 커스터머 데이터)의 바이트 카운트를 명시한다. 예를 들어, DCW 데이터 카운트는 도 10의 DCW(202)의 워드 1에 포함되고, 이 DCW를 위해 TCW에 의해서 지정된 스토리지 영역 내의 바이트들의 32-비트 부호 없는 정수 카운트를 명시한다. DCW 데이터 카운트 필드(210)은 DCW의 실행 동안 채널과 컨트롤 유닛 사이에서 전송될 바이트들의 수를 표시하며, 이에는 어떠한 패드 혹은 CRC 바이트들을 포함하지 않는다.
The DCW data count field 210 specifies a byte count of data (e.g., data to be transferred for a read or write operation, i.e., customer data) designated by the TCW for the current DCW 202. For example, the DCW data count is included in word 1 of DCW 202 of FIG. 10 and specifies a 32-bit unsigned integer count of the bytes in the storage area designated by TCW for this DCW. The DCW data count field 210 indicates the number of bytes to be transferred between the channel and the control unit during the execution of the DCW, which does not include any pads or CRC bytes.

도 11을 참조하면, 한 실시 예에서, DCW(202)는 다양한 컨트롤 플래그들(206)을 포함한다. 체인-커맨드(CC) 플래그(212)는 커맨드들의 체이닝을 수행할 의도를 명시한다. 현재 디바이스 동작이 정상적으로 완료되고 그 디바이스에서 디바이스의 끝(end)을 인지하고 난 후, 커맨드들의 체이닝은 TCA(180) 내의 다음 DCW(202)가 실행되도록 한다. CC 플래그(212)는 TCA 내의 최종 DCW에서 0으로 세트 된다. 도 10의 실시 예에서, 워드 0의 비트 9 (CC 비트)는, 1일 때, 커맨드들의 체이닝을 명시한다. 1일 때, 그 비트는 현재 DCW의 정상적인 완료 후에 다음 DCW에 의해서 명시된 동작이 개시되도록 한다. 컨트롤-데이터 카운트가 0일 때, 다음 DCW는 TCA 내의 혹은 TCAX 내의 DCW 바로 다음에 온다. 컨트롤-데이터 카운트가 0이 아닐 때, 다음 DCW는 그 DCW를 위해 명시된, 한 워드 범위로 반올림된(rounded to a word boundary), 컨트롤-데이터 바로 다음에 온다. 체인-커맨드 플래그가 1일 때, 한 실시 예에서, TCA 내 혹은 TCAX 내의 다음 DCW 위치는 현재 DCW의 위치에 8과 CD 카운트 필드 내의 값을 더하고 그것을 가장 가까운 워드 범위로 반올림(rounding upwards)함으로써 결정된다. 만일 체인-커맨드 플래그가 TCA 내의 DCW에서 1이고, 다음 DCW 위치가 TCA의 끝(end)을 지났고(past), TCAX가 명시되었다면, 다음 DCW는 명시된 TCAX의 시작에 위치한다.
Referring to FIG. 11, in one embodiment, the DCW 202 includes various control flags 206. The chain-command (CC) flag 212 specifies the intention to perform chaining of commands. Chaining of commands causes the next DCW 202 in the TCA 180 to execute after the current device operation is normally completed and the device is aware of the end of the device. The CC flag 212 is set to zero in the final DCW in the TCA. In the embodiment of FIG. 10, bit 9 (CC bit) of word 0 specifies chaining of the commands when it is one. 1, that bit causes the operation specified by the next DCW to be initiated after the normal completion of the current DCW. When the control-data count is zero, the next DCW comes immediately after the DCW in the TCA or within TCAX. When the control-data count is non-zero, the next DCW comes immediately after the control-data, rounded to a word boundary, specified for that DCW. When the chain-command flag is 1, in one embodiment, the next DCW position in the TCA or TCAX is determined by adding 8 to the current DCW position and the value in the CD count field and rounding it up to the nearest word range do. If the chain-command flag is 1 in the DCW in the TCA, the next DCW position passes the end of the TCA (past), and TCAX is specified, the next DCW is placed at the beginning of the specified TCAX.

컨트롤 플래그들 필드는, 한 실시 예에서, 서프레스 길이 표시(SLI) 필드(214)를 포함한다. DCW-부정확한-길이 퍼실리티가 채널(128) 및 컨트롤 유닛(118)에 의해서 지원될 때, 하나의 비트(예를 들어, 비트 2)가 SLI 플래그 필드(214)에 제공되는데, 이는 커맨드 체이닝이 부정확한-길이 조건에서 일어날 것인지 그리고 부정확한-길이 조건이 컨트롤 유닛(118)에 의해서 검출될 때 부정확한-길이가 컨트롤 유닛에 의해서 트랜스포트-응답 IU 내에 표시될 것인지를 컨트롤한다. 만일 DCW 데이터 카운트가 라이트 DCW를 위해 디바이스에 의해서 요구된 데이터의 양에 매치하지 않는다면 혹은 만일 DCW 데이터 카운트가 리드 DCW를 위해 디바이스에서 이용 가능한 데이터의 양에 매치하지 않는다면 부정확한-길이 조건이 컨트롤 유닛에 의해서 검출된다. DCW-부정확한-길이 퍼실리티가 채널(128) 및 컨트롤 유닛(118)에 의해서 지원되지 않을 때, 비트 2는 유보되고 채널에 의해서 0으로 세트되며 그리고 컨트롤 유닛에 의해서 무시된다. SLI 플래그(214)가 1이고 부정확한-길이 조건이 현재 DCW에 대해 존재할 때, 커맨드 체이닝은, 만일 표시된다면, 허용될 것이고 컨트롤 유닛은 다음에 오는 DCW의 실행을 계속할 것이다. 만일 SLI 플래그가 0이고 부정확한-길이 조건이 DCW에 대해 존재하면, 커맨드 체이닝은, 만일 표시된다 하더라도, 허용되지 않으며 컨트롤 유닛(118)은 I/O 동작을 중지한다(abort). DCW(202)에 대해 부정확한-길이 조건이 존재하고 DCW 내의 SLI 플래그(214)가 1로 세트 될 때, 데이터 전송이 아래에서 설명하는 바와 같이 수행되고, 그렇지 않으면 그 동작은 종료되고 비정상적 종료 상황이 그 동작에 대해 보고될 것이다.
The control flags field, in one embodiment, includes a press length indicator (SLI) field 214. When a DCW-incorrect-length facility is supported by the channel 128 and the control unit 118, a bit (e.g., bit 2) is provided in the SLI flag field 214, Length-to-length condition and an incorrect-length condition is detected by the control unit 118-controls whether the length is to be displayed in the transport-response IU by the control unit. If the DCW data count does not match the amount of data requested by the device for the write DCW or if the DCW data count does not match the amount of data available in the device for the read DCW, . When DCW-incorrect-length facility is not supported by channel 128 and control unit 118, bit 2 is reserved and set to 0 by the channel and ignored by the control unit. When the SLI flag 214 is 1 and an incorrect-length condition exists for the current DCW, command chaining, if indicated, will be allowed and the control unit will continue to execute the next DCW. If the SLI flag is 0 and an incorrect-length condition exists for the DCW, the command chaining is not allowed, even if it is displayed, and the control unit 118 aborts the I / O operation. When an incorrect-length condition exists for the DCW 202 and the SLI flag 214 in the DCW is set to 1, the data transfer is performed as described below, otherwise the operation is terminated and an abnormal termination condition Will be reported for its operation.

리드 DCW(202)에 대해서는, 만일 DCW 데이터 카운트가 그 커맨드를 위해 디바이스(116)에서 이용 가능한 데이터의 양보다 크다면, 다음이 적용된다. 만일 CC 플래그(212)가 1이면(체이닝이 표시되었다면), 디바이스(116)에서 이용 가능한 데이터는 채널(128)에 전송되고 패드 바이트들(0으로 세트 된다)도 전송되어서 DCW(202)를 위해 전송된 데이터의 양이 DCW 데이터 카운트와 같게 된다. 패드 바이트들을 포함하여, 전송된 모든 데이터는 그 동작을 위해 요구된 CRC의 모든 계산에 포함된다. 만일 CC 플래그(212)가 0이면(체이닝이 표시되지 않았다면), 디바이스에서 이용 가능한 데이터는 채널에 전송되고 추가의 데이터는 전송되지 않거나 혹은 패드 바이트들(0으로 세트 됨)이 전송되어서 DCW(202)를 위해 전송된 데이터의 양은 DCW 데이터 카운트와 같게 된다. 전송된 데이터 플러스 모든 패드 바이트들이 동작을 위해 요구된 CRC 계산에 포함될 것이다. 이 경우를 위해 패드 바이트들이 전송될 것인지는 모델에 따라 결정될 것이다. 만일 DCW 데이터 카운트가 커맨드를 위해 디바이스에서 이용 가능한 데이터 양보다 적다면, 오직 DCW 데이터 카운트와 같은(equal) 데이터 양만 DCW(202)를 위해 채널(128)에 전송된다. 오직 전송된 데이터만이 동작을 위해 요구된 CRC의 계산에 포함될 것이다.
For the lead DCW 202, if the DCW data count is greater than the amount of data available at the device 116 for that command, the following applies. If CC flag 212 is 1 (chaining is indicated), the data available at device 116 is sent to channel 128 and pad bytes (set to 0) are also sent to DCW 202 The amount of transmitted data becomes equal to the DCW data count. All transmitted data, including pad bytes, are included in all calculations of the CRC required for its operation. If the CC flag 212 is 0 (no chaining has been indicated), the data available at the device is sent to the channel and no further data is transmitted or pad bytes (set to 0) are sent to the DCW 202 ) Is equal to the DCW data count. All pad bytes plus transmitted data will be included in the CRC calculation required for operation. Whether the pad bytes will be transmitted for this case will be determined by the model. If the DCW data count is less than the amount of data available on the device for the command, only an equal amount of data, such as the DCW data count, is sent to the channel 128 for the DCW 202. Only the transmitted data will be included in the calculation of the CRC required for operation.

라이트 DCW(202)에 대해서는, 만일 DCW 데이터 카운트가 커맨드 위해 디바이스에 의해서 요구된 데이터 양보다 크다면, 다음이 적용된다. 만일 CC 플래그(212)가 1이면(체이닝이 표시됨), DCW 데이터 카운트에 의해서 명시된 데이터 양이 컨트롤 유닛(118)에 전송될 것이다. 전송된 데이터는 동작을 위해 요구된 모든 CRC의 계산에 사용될 것이고, 디바이스(116)에 의해서 요구되지 않는 데이터는 폐기된다(discarded). 만일 CC 플래그가 0이면(체이닝이 표시되지 않음), 디바이스(116)에 의해 요구된 데이터의 양이 컨트롤 유닛(118)에 전송된다. 추가의 데이터가 다음 중간 CRC 워드까지 혹은 DCW를 위한 데이터 카운트가 소진될 때까지 전송된다. 모든 전송된 데이터는 동작을 위해 요구된 모든 CRC의 계산에 사용된다. 만일 DCW 데이터 카운트가 커맨드를 위해 디바이스(116)에 의해서 요구된 데이터의 양보다 적으면, DCW 데이터 카운터에 의해서 명시된 데이터의 양이 컨트롤 유닛(118)에 전송된다. 전송된 데이터는 동작을 위해 요구된 모든 CRC의 계산에 사용된다.
For the write DCW 202, if the DCW data count is greater than the amount of data requested by the device for the command, the following applies. If the CC flag 212 is 1 (chaining is indicated), the amount of data specified by the DCW data count will be transferred to the control unit 118. The transmitted data will be used to calculate all the CRCs required for operation, and data not required by the device 116 is discarded. If the CC flag is 0 (chaining is not indicated), the amount of data requested by the device 116 is transferred to the control unit 118. Additional data is transmitted until the next intermediate CRC word or until the data count for DCW is exhausted. All transmitted data is used in the calculation of all CRCs required for operation. If the DCW data count is less than the amount of data requested by the device 116 for the command, the amount of data specified by the DCW data counter is transferred to the control unit 118. The transmitted data is used in the calculation of all CRCs required for operation.

트랜스포트-커맨드 DCW는 특정 데이터 전송 커맨드 (즉, 호스트 컴퓨터 커맨드에 의해서 전송되도록 요청되는 커스터머 데이터)을 명시하지 않지만, 트랜스포트-모드 I/O 동작과 관련된 지원 펑션을 수행하는 트랜스포트 커맨드를 명시하는 타입의 DCW이다. 트랜스포트-커맨드 DCW는 컨트롤 데이터를 명시할 수 있고 또한 트랜스포트-커맨드-메타 정보(TCMI)의 전송을 명시할 수 있다. TCMI는, 디바이스에서의 I/O 동작의 상태(status)와 같은, I/O 동작에서 전송 펑션들, 현재의 TCCB에 적합하지 않거나 혹은 TCCB에 의해서 수용될 수 있는 추가의 DCW들에 관한 정보, 그리고 순환 리던던시 체크(CRC) 데이터와 같은 컨트롤 블록 체킹(CBC) 정보를 컨트롤하기 위해 이용되는 데이터를 포함한다.
The transport-command DCW does not specify a specific data transfer command (i.e., the customer data requested to be transmitted by the host computer command), but explicitly specifies a transport command to perform the support function associated with the transport-mode I / O operation Is a type of DCW. The transport-command DCW can specify the control data and also specify the transport of the transport-command-meta information (TCMI). The TCMI includes information about the transfer functions in I / O operations, such as the status of I / O operations at the device, additional DCWs that are not suitable for or can be accommodated by the TCCB, And data used to control control block checking (CBC) information, such as cyclic redundancy check (CRC) data.

트랜스포트-커맨드 DCW가 TCMI의 전송을 디바이스에 명시할 때, TCMI는 출력 데이터로서(즉, 트랜스포트-데이터IU로) 전송된다. TCMI의 크기는 커맨드에 따라 다르며, 예를 들어, 4의 배수이다. TCMI의 크기가 4의 짝수 배수(even multiple)일 때 TCMI는 4개의 유보된 바이트들에 의해서 확장될 수 있고, TIDAW들은 출력 스토리지 영역들을 명시하기 위해 사용되며, 삽입-CBC 플래그는 TCMI를 보유하는 스토리지를 명시하기 위해 사용된 최종 TIDAW 내에서 1이고, 체인-커맨드 비트가 TCMI를 명시하는 트랜스포트 커맨드 DCW에서 1이며, 그리고 후속의 DCW는 TCMI 혹은 출력 데이터의 전송을 명시한다. 트랜스포트 커맨드가 TCMI의 디바이스에 대한 전송을 명시하고 위의 모든 조건들이 충족되어서 TCMI가 4개의 유보된 바이트들에 의해서 확장되었을 때, 4개의 유보된 바이트들은 트랜스포트 커맨드 DCW 내의 데이터-카운트에는 포함되지 않지만, 다음 즉, TCMI를 보유하는 스토리지를 명시하기 위해 사용된 최종 TIDAW 내의 카운트 값, TCW 내의 출력-카운트 값 그리고 (일방향 데이터 전송들을 위한) 관련 TCCB 내의 트랜스포트-카운트 값 혹은 (양방향 전송을 위한) 관련 TCCB 내의 라이트-카운트 값에는 포함됨을 주목한다.
When the transport-command DCW specifies the transmission of the TCMI to the device, the TCMI is transmitted as output data (ie, to the transport-data IU). The size of the TCMI depends on the command, for example, a multiple of four. When the size of the TCMI is an even multiple of 4, the TCMI can be extended by four reserved bytes, the TIDAWs are used to specify the output storage areas, and the Insert-CBC flag holds the TCMI Is 1 in the last TIDAW used to specify the storage, the chain-command bit is 1 in the transport command DCW specifying TCMI, and the subsequent DCW specifies the transmission of TCMI or output data. When the transport command specifies a transmission to the TCMI device and all of the above conditions are met and the TCMI is extended by four reserved bytes, the four reserved bytes are included in the data-count in the transport command DCW Count value in the last TIDAW used to specify the storage that holds the TCMI, the output-count value in the TCW, and the transport-count value in the associated TCCB (for one-way data transfers) Note that this is included in the light-count value within the associated TCCB.

한 실시 예에서, TCMI는 질의 정보(질의 DCW를 통해서), CBC-오프셋 블록(전송-CBC-오프셋 블록 DCW를 통해서) 그리고 TCA 확장(전송-TCA 확장 DCW를 통해서)을 포함한다.
In one embodiment, the TCMI includes query information (via query DCW), CBC-offset block (via transmit-CBBC offset block DCW), and TCA extension (via transmit-TCA extended DCW).

도 12는, TCCB(170)의 TCA(180)에 포함되고 컨트롤 유닛(118)에 전송될 TCA확장(TCAX)(220)을 명시하는, 전송 TCA 확장(TTE) 커맨드라 하는, 트랜스포트-커맨드 DCW의 한 종류에 의해서 명시된 데이터의 한 실시 예를 도시한다. TCAX는 TCA(180)의 논리적 확장으로 간주된다. 일부 디바이스들 (116)을 위해, I/O 동작과 관련된 DCW들(202)의 목록은 TCA(180)에서 수용될 수 있는 DCW들의 수를 초과한다. 그러한 경우에, TTE DCW는 출력 데이터로서 (예를 들어, 데이터-트랜스포트 IU로) 전송되는 TCAX(220)을 명시하는, TCW(140)의 끝에 포함될 수 있다. TTE DCW의 컨텐트는 전송-TCA 확장 커맨드(예를 들어, 50 hex의 값)을 포함하는 커맨드 코드를 포함할 수 있다.
Figure 12 shows a transport-command (TTA) command, called a transport TCA extension (TTE) command, specifying the TCA extension (TCAX) 220 contained in the TCA 180 of the TCCB 170 and to be transmitted to the control unit 118 RTI ID = 0.0 > DCW < / RTI > TCAX is considered to be a logical extension of TCA 180. For some devices 116, the list of DCWs 202 associated with the I / O operation exceeds the number of DCWs that can be accommodated in the TCA 180. In such a case, the TTE DCW may be included at the end of the TCW 140, specifying the TCAX 220 to be transmitted as output data (e.g., to the data-to-transport IU). The content of the TTE DCW may include a command code that includes a transmit-TCA extension command (e.g., a value of 50 hex).

예를 들어, TCA(180)은 길이가 가변이며 최대 크기는 240이고, DCW는 8 바이트이다. 따라서, 이 예에서, 최대 30의 DCW들이 TCCB(170)에서 전송될 수 있다. 그러나, 컨트롤 데이터를 필요로 하는 컨트롤 커맨드들을 명시하는 DCW들(202)를 위해, 컨트롤 데이터가 TCCB 내의 각 DCW(202) 바로 다음에 온다. 따라서, 그러한 커맨드들을 보유하는 TCCB들(170)은 30개의 DCW들보다 더 적게 제한된다. TTE DCW는 TCA(180)에 적합하지 않은 I/O 동작을 위해 요구된 추가의 DCW들을 명시하기 위해 사용될 수 있다.
For example, the TCA 180 is variable in length, the maximum size is 240, and the DCW is 8 bytes. Thus, in this example, a maximum of 30 DCWs may be transmitted in the TCCB 170. [ However, for DCWs 202 specifying control commands that require control data, the control data immediately follows each DCW 202 in the TCCB. Thus, the TCCBs 170 holding such commands are limited to less than 30 DCWs. The TTE DCW may be used to specify additional DCWs required for I / O operations not conforming to the TCA 180.

도 12에 도시한 바와 같이, TCA 확장(TCAX)는 가변-길이 영역이고, 이는 다른 트랜스포트-커맨드 IU 혹은 TCCB 내 TCA(180)의 논리적 연속이며, DCW들의 목록과 관련 컨트롤 데이터를 포함한다. TCAX는 (초기 TCCB 내의 전송된 것들에 더하여) 하나 혹은 그 이상의 추가의 DCW들과 TCW I/O 동작을 위한 관련 컨트롤 데이터를 보유하고, I/O 동작을 위해 요구된 DCW들의 목록을 확장하기 위해 다른 TCCB 혹은 트랜스포트-데이터 IU 내에 송신될 수 있다. 한 실시 예에서, TCAX의 길이는 4의 진정 배수(integral multiple)이다.
As shown in FIG. 12, the TCA extension (TCAX) is a variable-length area, which is a logical continuation of the other transport-command IU or TCA 180 in the TCCB and contains a list of DCWs and associated control data. TCAX maintains one or more additional DCWs (in addition to those sent in the initial TCCB) and associated control data for TCW I / O operations, and to extend the list of DCWs required for I / O operation May be transmitted in another TCCB or transport-data IU. In one embodiment, the length of the TCAX is an integral multiple of four.

도 12에 도시한 바와 같이, 한 실시 예에서, TCAX(220)은 DCW(202) 및/또는 이전의 DCW(202)를 위한 컨트롤 데이터를 포함한다. TCAX(220) 내의 최종 정보가 DCW(202)일 때, 그 DCW(202)의 끝은 TCAX(220) 내의 의미 있는 정보의 끝을 정의한다. TCAX(220) 내의 최종 정보가 컨트롤 데이터이고 그 컨트롤 데이터가 4-바이트 범위에서 끝(end)날 때, 그 컨트롤 데이터의 끝은 TCAX(220) 내의 의미 있는 정보의 끝을 정의한다. TCAX(220) 내의 최종 정보가 컨트롤 데이터이고 컨트롤 데이터가 4-바이트 범위에서 끝나지 않을 때, 4-바이트 범위에 도달하기 위해 패딩 바이트들이 컨트롤 데이터에 추가되며 그 패딩 바이트들의 끝은 TCAX(220) 내의 의미 있는 정보의 끝을 정의한다. 4에 의해서 나누어지는 TCAX(220) 내의 의미 있는 정보의 크기가 홀수(an odd number)일 때, 유보된 바이트들은 없으며; 그렇지 않은 경우, TCAX(220) 내의 의미 있는 정보의 바로 다음에 오는 4 바이트들은 유보되고 0들을 보유한다. TCA(180) 내의 최종 DCW(202)를 위한 컨트롤 데이터가 TCAX(220) 내에 보유될 때, 그 컨트롤 데이터는 TCAX(220) 내의 제1 데이터이다. TCAX(220) 내의 추가의 DCW들 및 컨트롤 데이터는 TCA(180)에 대해 정의된 대로 처리된다.
As shown in FIG. 12, in one embodiment, TCAX 220 includes control data for DCW 202 and / or previous DCW 202. When the last information in TCAX 220 is DCW 202, the end of DCW 202 defines the end of meaningful information in TCAX 220. The end of the control data defines the end of meaningful information in TCAX 220 when the final information in TCAX 220 is control data and the control data ends in a 4-byte range. When the final information in the TCAX 220 is control data and the control data does not end in the 4-byte range, padding bytes are added to the control data to reach the 4-byte range and the end of the padding bytes is stored in the TCAX (220) Defines the end of meaningful information. When the size of the meaningful information in the TCAX 220 divided by 4 is an odd number, there are no reserved bytes; Otherwise, the four bytes immediately following the meaningful information in TCAX 220 are reserved and hold zeros. When the control data for the final DCW 202 in the TCA 180 is held in the TCAX 220, the control data is the first data in the TCAX 220. Additional DCWs and control data within the TCAX 220 are processed as defined for the TCA 180.

한 실시 예에서, TCOB DCW(아래에서 상세히 설명)이 TCA(180) 내에 존재하지 않을 때, TTE DCW는 TCA(180) 내의 제1 DCW(202)이다. TCOB DCW가 TCA(180) 내에 존재할 때, TTE DCW는 TCA(180) 내의 제2 DCW(202)이다. TTE DCW 데이터 카운트는 TCAX(220)의 길이를 명시하고 4 바이트의 진정 배수가 될 수 있다. TTE DCW 컨트롤-데이터 카운트는 0이고 TTE DCW 내의 체인 커맨드 플래그는 1로 세트 된다. TTE DCW 데이터는 TCAX CRC 혹은 TCAX 패드 바이트들을 포함하지 않는다.
In one embodiment, when the TCOB DCW (described in detail below) is not present in the TCA 180, the TTE DCW is the first DCW 202 in the TCA 180. When the TCOB DCW is present in the TCA 180, the TTE DCW is the second DCW 202 in the TCA 180. The TTE DCW data count specifies the length of TCAX (220) and can be a quadruple of 4 bytes. TTE DCW control - The data count is 0 and the chain command flag in the TTE DCW is set to 1. TTE DCW data does not include TCAX CRC or TCAX pad bytes.

TTE 커맨드(TTE DCW)는 TTE 커맨드에 대한 지원을 표시하는 디바이스에 송신되어야 하고 그리고 TCA 길이가 특정의 최대 값(예를 들어, 60 워드)을 갖고 TCA 내의 최종 DCW를 위한 컨트롤 데이터가 TCA 내의 최종 바이트를 넘어서 확장될 때, 또는 TCA 길이가, 예를 들어, 58 워드보다 크고 하나 혹은 그 이상의 추가의 DCW들이 I/O 동작을 위해 요구될 때, 송신된다. COB가 라이트 트랜스포트-데이터 IU 내에 제공될 때, TCAX는 COB CRC 다음에 온다. COB가 제공되지 않을 때, TCAX는 I/O 동작의 제1 라이트 트랜스포트-데이터 IU에 송신될 것이다.
The TTE command (TTE DCW) must be sent to the device indicating the support for the TTE command and the control data for the final DCW in the TCA should be sent to the device that has the TCA length of a certain maximum (e.g., 60 words) Bytes, or when the TCA length is greater than, for example, 58 words and one or more additional DCWs are required for I / O operation. When the COB is provided in the light transport-data IU, TCAX comes after the COB CRC. When COB is not provided, TCAX will be sent to the first write transport-data IU of I / O operation.

DCW의 다른 종류는 전송 CBC-오프셋 블록(TCOB) DCW이고, 이는 CBC 오프셋 블록(COB)을 컨트롤 유닛으로 전송하는 커맨드이다. CBC 데이터는 컨트롤 블록 체킹 데이터라 하는데, 이는 정확한 양의 입력 혹은 출력 데이터가 I/O 동작에서 전송되고 있음을 검증하기 위해 사용된다. 한 실시 예에서, CBC는 순환 리던던시 체크(CRC) 데이터이고, COB는 CRC 오프셋 블록이며, TCOB DCW는 전송 CRC-오프셋 블록 DCW이다. 일반적으로, 순환 리던던시 체크(CRC)는 에러-검출 코드로서, 이는 채널(128)과 컨트롤 유닛(118) 사이에 송신되는 원 데이터(raw data)에 대한 우발적 변경들(accidental changes)을 검출하도록 구성된다. CRC-인에이블된 디바이스(예를 들어, 채널(128))는 송신되거나 저장될 데이터의 각 블록에 대해서 짧은, 고정된-길이의 2진수 시퀀스를 계산하고 이를 데이터에 덧붙여(append), 코드워드 혹은 "CRC 워드"를 형성한다. 예를 들어, CRC 생성이 제공될 때, 채널(128)은 송신된 데이터 상에 CRC를 생성하고 최종 데이터 바이트의 끝에 계산된 값을 삽입한다. CRC 워드가 수신되거나 혹은 리드될 때, 수신 디바이스(예를 들어, 컨트롤 유닛(118))는 자신의 체크 값을 그 데이터 블록으로부터 새롭게(freshly) 계산된 값과 비교하거나, 혹은 전체 코드워드에 관하여 CRC를 수행하고 그 결과 만들어진 체크 값(the resulting check value)을 예상되는 나머지 상수(an expected residue constant)와 비교한다. 만일 체크 값들이 매치(match)하지 않으면, 그 블록은 전송된 데이터 내에 에러를 보유한다. CBC 데이터가 여기 실시 예들에서 기술되었다고 해서, 그것이 그렇게 제한되는 것은 아니다.
Another type of DCW is the transmit CBC-offset block (TCOB) DCW, which is the command to send the CBC offset block (COB) to the control unit. CBC data is called control block checking data, which is used to verify that the correct amount of input or output data is being transferred in I / O operation. In one embodiment, the CBC is cyclic redundancy check (CRC) data, the COB is a CRC offset block, and the TCOB DCW is a transmit CRC-offset block DCW. Generally, the cyclic redundancy check (CRC) is an error-detection code, which is configured to detect accidental changes to raw data transmitted between the channel 128 and the control unit 118 do. A CRC-enabled device (e.g., channel 128) computes and appends a short, fixed-length binary sequence to each block of data to be transmitted or stored, Or "CRC word ". For example, when CRC generation is provided, channel 128 generates a CRC on the transmitted data and inserts the calculated value at the end of the last data byte. When a CRC word is received or read, the receiving device (e.g., control unit 118) may compare its check value with a freshly calculated value from that data block, Perform a CRC and compare the resulting check value with an expected residue constant. If the check values do not match, the block holds an error in the transmitted data. Even if CBC data is described in the embodiments herein, it is not so limited.

도 13에서 도시한 바와 같이, COB(222)는 리드 혹은 라이트 데이터 전송을 위한 트랜스포트 데이터 내의(예를 들어, 트랜스포트-데이터 IU 내의) 중간 CRC 워드들의 위치를 명시한다. 한 실시 예에서, COB는 TCA(180) 내의 제1 DCW(202)가 TCOB 커맨드를 보유할 때, 즉 TCOB DCW일 때, 제공된다. 중간 CRC 오프셋들은 데이터 전송 IU내의 데이터 사이에 위치하고 상기 IU의 끝 전에 위치하는 CRC 워드들이다. COB(222)는, CRC 오프셋들(224)라고 하는, 1-워드 값들의 목록을 보유하고, 이들 각각은 트랜스포트 데이터 내의 각 중간 CRC 워드의 바이트 오프셋을 식별한다. 예를 들어, COB는 가변-길이 컨트롤 블록이고, 이는 4-바이트 엔트리들의 목록을 포함하며, 이들 각각은 출력 데이터 내에 삽입될 TIDAW에 의해서 명시되는 CRC의 오프셋을 식별한다.
As shown in FIG. 13, the COB 222 specifies the location of the intermediate CRC words (e.g., in the transport-data IU) within the transport data for read or write data transmission. In one embodiment, the COB is provided when the first DCW 202 in the TCA 180 holds the TCOB command, i.e., when it is the TCOB DCW. The intermediate CRC offsets are CRC words located between data in the data transmission IU and before the end of the IU. The COB 222 holds a list of 1-word values, referred to as CRC offsets 224, each of which identifies the byte offset of each intermediate CRC word in the transport data. For example, the COB is a variable-length control block, which contains a list of 4-byte entries, each of which identifies the offset of the CRC specified by the TIDAW to be inserted in the output data.

도 13에 도시한 실시 예에서, COB(222)는 중간-CRC 오프셋들의 1에서 N+1까지의 워드들(1 to N+1 words)(CRC 오프셋 워드들(224))을 포함한다. 만일 COB(222)가 트랜스포트-데이터 IU에 제공된다면, COB는 또한 패드 바이트들의 0 혹은 1 워드들과 CRC의 1 워드를 포함할 수 있다. 패드 바이트들은 CRC를 보유하는 워드가 더블워드 범위가 아닌 한 워드 범위에 있도록 제공될 수 있다. COB의 최종 워드는, 0에서 N까지의 중간 CRC오프셋들과, 만일 존재한다면, 패드 워드들을 커버하는 CRC를 보유할 것이다. 만일 COB가 TCOB DCW를 위한 컨트롤 데이터로서 제공된다면, COB 패딩 혹은 CRC는 없을 것이며 컨트롤-데이터 카운트는 COB 내의 중간-CRC-오프셋 필드들의 수의 4배와 같을 것이다.
In the embodiment shown in FIG. 13, the COB 222 includes 1 to N + 1 words (1 to N + 1 words) (CRC offset words 224) of the intermediate-CRC offsets. If a COB 222 is provided in the transport-data IU, the COB may also include 0 words or 1 word of pad bytes and 1 word of CRC. The pad bytes may be provided such that the word holding the CRC is in the word range as long as it is not a double word range. The final word of the COB will hold the intermediate CRC offsets from 0 to N and, if present, a CRC covering the pad words. If the COB is provided as control data for the TCOB DCW, there will be no COB padding or CRC and the control-data count will be equal to four times the number of intermediate-CRC-offset fields in the COB.

라이트 동작들을 위해, TCOB DCW는 COB가 디바이스(116)에 트랜스포트됨을 명시한다. TCOB DCW 커맨드 코드는, 예를 들어, 60 hex의 값인 TCOB 커맨드를 포함한다. COB의 위치는 컨트롤-데이터 카운트에 의해서 결정되고 I/O 동작의 제1 라이트 트랜스포트-데이터 IU에 혹은 I/O 동작의 TCOB DCW 다음에 오는 컨트롤 데이터로서 제공될 수 있다. 예를 들어, TCOB DCW의 CD 카운트가 0이 아닐 때, COB(222)는 TCA(180) 내의 TCOB DCW 바로 다음에 오고 CD 카운트는 4에 의해서 곱해진 COB 내의 CRC 오프셋들의 수를 명시한다. CD 카운트가 0일 때, COB(222)는 출력 데이터와 함께 전송되는 TCMI로서 명시되고, COB의 위치는 TCW(140) 내의 출력-데이터-주소 필드(144)에 의해서 명시된다.
For write operations, the TCOB DCW specifies that the COB is transported to the device 116. The TCOB DCW command code includes, for example, a TCOB command which is a value of 60 hex. The position of the COB may be determined by the control-data count and provided as control data to the first write transport-data IU of the I / O operation or to the TCOB DCW of the I / O operation. For example, when the CD count of the TCOB DCW is not zero, the COB 222 immediately follows the TCOB DCW in the TCA 180 and the CD count specifies the number of CRC offsets in the COB multiplied by four. When the CD count is zero, the COB 222 is specified as the TCMI sent with the output data, and the location of the COB is specified by the output-data-address field 144 in the TCW 140.

COB(222) 내의 각 중간-CRC 오프셋은 트랜스포트-데이터 IU 내 데이터의 제1 바이트로부터 상대적인 오프셋(relative offset)을, 바이트로, 표시한다. 만일 COB(222)가 트랜스포트-데이터 IU에 제공된다면, 라이트 전송을 위한 데이터의 제1 바이트는 TCAX(220)이 제공되지 않는 경우 COB CRC 다음에 오는 제1 바이트이거나 혹은 TCAX가 제공되는 경우 TCAX CRC 다음에 오는 제1 바이트이다. 만일 COB가 DCW컨트롤 데이터로서 TCA(180)에 제공된다면, 라이트 전송을 위한 데이터의 제1 바이트는 TCAX(220)이 제공되지 않을 경우 트랜스포트-데이터 IU 내의 제1 바이트이거나 혹은 TCAX(220)이 제공될 경우 TCAX CRC 다음에 오는 제1 바이트이다. 트랜스포트-데이터 IU에 제공될 때, COB는 I/O 동작의 제1 라이트 트랜스포트-데이터 IU에 제공된다.
Each intermediate-CRC offset in the COB 222 indicates a relative offset, in bytes, from the first byte of data in the transport-data IU. If the COB 222 is provided in the transport-data IU, then the first byte of data for the write transmission is the first byte following the COB CRC if TCAX 220 is not provided, or TCAX if TCAX is provided It is the first byte following the CRC. If the COB is provided to the TCA 180 as DCW control data, the first byte of data for the write transmission is either the first byte in the transport-data IU or the TCAX 220 if the TCAX 220 is not provided It is the first byte following the TCAX CRC, if provided. When provided to the transport-data IU, the COB is provided to the first write transport-data IU of the I / O operation.

트랜스포트-커맨드 DCW의 또 다른 종류는 질의(interrogate) DCW이고, 이는 디바이스(116)에서 TCW I/O 동작의 상태를 결정하기 위해 사용된다. 질의 커맨드은 디바이스(116)에서 동작을 개시하지도 않고, 디바이스(116)의 상태에도 영향을 주지 않으며, 디바이스(116)과 관련된 전속상태들(allegiances) 및 관련 논리적 경로를 리세트 하지도 않는다. 예시적 질의 DCW는 질의 커맨드 코드(예를 들어, 40 hex의 값을 보유한다)를 포함한다. 커맨드 코드의 예외들이 있으면, SLI 플래그, 카운트 및 CD-카운트 필드들, DCW 내의 모든 다른 필드들은 0을 보유하며, 그렇지 않은 경우, 디바이스-검출된 프로그램-체크 조건을 보유한다. 만일 질의 DCW의 CD 카운트가 0보다 크면, 질의 데이터는 명시된다.
Another type of transport-command DCW is an interrogated DCW, which is used to determine the state of the TCW I / O operation at the device 116. [ The query command does not initiate operation at device 116 nor does it affect the state of device 116 nor reset the associated allegiances and associated logical paths associated with device 116. The example query DCW contains a query command code (e.g., holds a value of 40 hex). If there are exceptions in the command code, the SLI flag, count and CD-count fields, all other fields in the DCW hold 0, otherwise holds the device-detected program-check condition. If the CD count of the query DCW is greater than zero, the query data is specified.

디바이스(116)에서 동작의 상태에 관한 정보를 획득하기 위해서 진행중인 TCW I/O 동작을 갖는 논리적 경로와 디바이스(116)에 관해 질의 동작이 수행된다. 한 실시 예에서, 질의 동작을 위한 TCCB(170)은 질의 디바이스 커맨드 코드(예를 들어, X'40)을 갖는 단일의 DCW를 포함한다. 질의 동작을 위한 TCAH(178)은 그 동작을 위한 리드 데이터 전송을 명시하기 위해 1로 세트 된 R 비트를 보유할 수 있다. 질의 동작은 컨트롤 유닛(118)이 질의 커맨드를 명시하는 트랜스포트-커맨드 IU를 수용할 때 컨트롤 유닛(118)에서 인지된다. 질의 동작이 컨트롤 유닛(118)에서 인지되고 컨트롤 유닛(118)이 성공적으로 질의 커맨드를 수행할 수 있을 때, 컨트롤 유닛(118)은 트랜스포트-응답 IU 내에 상태를 제공할 수 있는데, 이는 논리적 경로의 상태를 기술하는 질의 확장된 상태(interrogate extended status)와 질의 트랜스포트-커맨드 IU에 의해서 명시되는 디바이스 주소를 포함한다.
A query operation is performed on the device 116 with the logical path having the TCW I / O operation in progress to obtain information about the state of operation at the device 116. [ In one embodiment, TCCB 170 for query operation includes a single DCW with query device command code (e.g., X'40). The TCAH 178 for the query operation may hold R bits set to 1 to specify the read data transfer for that operation. The query operation is recognized in the control unit 118 when the control unit 118 receives the transport-command IU specifying the query command. When the query operation is recognized in the control unit 118 and the control unit 118 can successfully execute the query command, the control unit 118 can provide the status in the transport-response IU, An interrogate extended status describing the state of the query, and a device address specified by the query transport-command IU.

도 14를 참조하면, 트랜스포트 모드 I/O 동작(300)을 수행하는 방법이 도시된다. 상기 방법은 하나 혹은 그 이상의 단계들(301-305)를 포함한다. 한 실시 예에서, 상기 방법은 기술된 순서로 단계들(301-305)을 실행하는 것을 포함한다. 그러나, 특정 단계들은 생략되거나, 단계들이 추가되거나, 혹은 단계들의 순서가 변경될 수 있다.
Referring to FIG. 14, a method of performing a transport mode I / O operation 300 is illustrated. The method includes one or more steps 301-305. In one embodiment, the method includes executing steps 301-305 in the order described. However, certain steps may be omitted, steps added, or the order of the steps changed.

단계(301)에서, 호스트 컴퓨터(예를 들어, OS(110))은 하나의 명령(예를 들어, START SUBCHANNEL)을 실행하면, 이는, TCW(140)을 명시하는, 채널 서브시스템(114)에 ORB가 전송되도록 한다. 한 실시 예에서, TCCB(170)을 I/O 디바이스(116)에 트랜스포트할 것인지를 결정하기 위해서 상태(status)를 캡처하는 것 및 명시된 TCCB (170)을 트랜스포트 하는 것에 특정된(specific) TCW 필드들의 유효성과 관련된 프로그램-체크 조건들이 채널 서브시스템(114)에 의해서 체크 된다. 만일 그러한 프로그램-체크 조건이 존재하면, TCCB(170)은 트랜스포트 되지 않고 그 프로그램-체크 조건이 인지된다. 예를 들어, TCCB-주소 필드(148)는 그것이 이용 가능한 스토리지 위치를 지정하고 있는지 체크 된다. 만일 TCCB 플래그가 1이면, TCCB-주소 필드(148)는 또한 그것이 쿼드워드(quadword) 범위의 주소를 지정하는지 체크 된다. 추가의 프로그램 체크 조건들은 아래에서 더 상세히 기술된다.
If the host computer (e.g., OS 110) executes an instruction (e.g., a START SUBCHANNEL) at step 301, it indicates that the channel subsystem 114, specifying the TCW 140, So that the ORB is transmitted. In one embodiment, capturing the status to determine whether to transport the TCCB 170 to the I / O device 116 and transferring the specified TCCB 170 to the I / Program-check conditions associated with the validity of the TCW fields are checked by the channel subsystem 114. If such a program-check condition exists, the TCCB 170 is not transported and its program-check condition is recognized. For example, the TCCB-address field 148 is checked to see if it specifies an available storage location. If the TCCB flag is 1, then the TCCB-address field 148 is also checked to determine whether it specifies an address in the quadword range. Additional program check conditions are described in further detail below.

단계(302)에서, 채널(128)이, 트랜스포트-커맨드-컨트롤 블록(TCCB)(170)과 같은, 컨트롤 블록과 TCW(140)을 위한 관련 컨트롤 정보를 포함하는 트랜스포트-커맨드 IU를 선택된 디바이스(116)에 전송할 때 TCW I/O 동작이 I/O 디바이스에 개시된다(예를 들어, 컨트롤 유닛(118)을 통해서). 한 실시 예에서, I/O 동작의 실행 및 디바이스 동작과 관련된 정보(예를 들어, 커맨드들, 입력 데이터 및 출력 데이터)는 채널(128)과 컨트롤 유닛(118) 사이에서 정보 유닛들(IU들)로서 전송된다. 한 실시 예에서, 상기 IU들은 SB-4 정보 유닛들(IU들)의 형식으로 되어 있다.
At step 302, the channel 128 selects a transport-command IU containing control blocks and associated control information for the TCW 140, such as a transport-command-control block (TCCB) TCW I / O operation is initiated (e.g., via control unit 118) to the I / O device when transmitting to device 116. [ Information (e.g., commands, input data, and output data) associated with the execution of I / O operations and device operations may be transferred between the information units IUs . In one embodiment, the IUs are in the form of SB-4 information units (IUs).

한 실시 예에서, IU들 혹은 다른 메시지들은 하나 혹은 그 이상의 교환들(exchanges)를 통해서 채널과 컨트롤 유닛 사이에 송신된다. 두 개의 일방향 교환들로 구성되는 교환 쌍은, 채널(128)에 의해서 IU들을 송신하기 위해 하나가 사용되고, 컨트롤 유닛(118)에 의해서 IU들을 송신하기 위해 다른 하나가 사용되며, 이 쌍은 모든 SB-4 링크-컨트롤 펑션들을 위해서 그리고 커맨드 모드에서 실행되는 모든 SB-4 디바이스-레벨 펑션들을 위해서 요구된다. 단일의 양방향 교환은, 트랜스포트 교환이라 하며, 트랜스포트 모드에서 실행되는 디바이스-레벨 펑션들을 위해 사용된다. SB-4 링크-컨트롤 펑션을 실행하는 동안 혹은 커맨드 모드에서 SB-4 디바이스-레벨 펑션을 실행하는 동안 채널(128)이 송신하는 IU들은 한 교환에 한정되고(restricted), 그 동작 동안 채널이 수신하는 IU들은 다른 교환에 한정된다. 채널(128)이 IU들을 송신하는 교환은 아웃바운드 교환(outbound exchange)이라 하고, 채널(128)이 IU들을 수신하는 교환은 인바운드 교환(inbound exchange)이라 한다. 동일 링크-레벨 혹은 디바이스-레벨 펑션의 실행을 위해 아웃바운드 교환과 인바운드 교환이 모두 동시에 채널(128)과 컨트롤 유닛(118) 사이에 존재할 때, 교환 쌍이 존재한다고 하고, 컨트롤 유닛(118)이 채널(128)에 연결되었다고 한다. 단일 연결에서 실행되는 채널 프로그램은 오직 하나의 교환 쌍만을 사용한다. 만일 채널 프로그램 동안 교환들의 클로징(closing)에 의해서 상기 연결이 제거된다면, 그 채널 프로그램을 완료하기 위해 새로운 교환 쌍이 생성된다. 채널(128)은 새로운 교환을 오픈(open)하는 IU(혹은 개시 IU)를 자발적 커맨드(uncolicited command) 혹은 자발적 컨트롤 정보 카테고리(category)로서 송신함으로써 교환 쌍을 개시할 수 있다. 컨트롤 유닛(118)은 개시(initiation) IU를 자발적 컨트롤 혹은 자발적 데이터 정보 카테고리로서 송신함으로써 교환 쌍을 개시할 수 있다.
In one embodiment, IUs or other messages are transmitted between the channel and the control unit via one or more exchanges. An exchange pair consisting of two one-way exchanges is used to transmit the IUs by the channel 128 and the other is used by the control unit 118 to transmit the IUs, -4 Link - Required for all SB-4 device-level functions to be executed for control functions and in command mode. A single bidirectional exchange is called a transport exchange and is used for device-level functions that are performed in transport mode. IUs transmitted by channel 128 during the execution of the SB-4 link-control function or while executing the SB-4 device-level function in command mode are restricted to one exchange and during that operation, IUs are limited to other exchanges. The exchange in which the channel 128 transmits IUs is called an outbound exchange and the exchange in which the channel 128 receives IUs is called an inbound exchange. When both the outbound exchange and the inbound exchange for the execution of the same link-level or device-level function exist between the channel 128 and the control unit 118 at the same time, (128). A channel program running on a single connection uses only one exchange pair. If the connection is removed by closing exchanges during the channel program, a new exchange pair is created to complete the channel program. The channel 128 may initiate the exchange pair by sending the IU (or Initiation IU) that opens the new exchange as an uncolicited command or as a voluntary control information category. The control unit 118 may initiate the exchange pair by sending an initiation IU as a voluntary control or spontaneous data information category.

트랜스포트 모드에서 수행되는 I/O 동작의 실행 동안 채널과 컨트롤 유닛이 송신하는, IU들은 트랜스포트 교환이라 하는 단일의, 양방형 교환으로 한정된다. 채널(128)은 트랜스포트-커맨드IU를 자발적 커맨드 카테고리(개시 IU)로서 송신함으로써 트랜스포트 교환을 오픈 할 수 있다. 채널(128)은 다수의 트랜스포트 교환들을 오픈 할 수 있는데, 이들 각각은 다른 디바이스(116)을 위해서 혹은 다른 논리적 경로들 상의 동일 디바이스(116)을 위해서 그렇게 할 수 있다. 새로운 트랜스포트 교환이 논리적 경로 상의 특정 디바이스를 위해 오픈 될 수 있는데, 질의 동작을 수행하기 위해서 그 디바이스와 논리적 경로를 위한 트랜스포트 교환이 이미 존재할 때 그렇게 될 수 있다; 만일 그렇지 않으면 그 논리적 경로 상의 디바이스를 위한 새로운 트랜스포트 교환을 개시하기 전에 채널(128)은 기존의 트랜스포트 교환 혹은 교환 쌍이 클로즈 되기를 기다린다.
IUs transmitted by the channel and the control unit during the execution of I / O operations performed in transport mode are limited to single, duplex exchanges, called transport exchanges. Channel 128 can open the transport exchange by sending the transport-command IU as a voluntary command category (initiating IU). The channel 128 may open multiple transport exchanges, each of which may do so for the other device 116 or for the same device 116 on other logical paths. A new transport exchange can be opened for a specific device on a logical path, which can be done when there is already a transport exchange for the device and the logical path to perform the query operation; If not, the channel 128 waits for the existing transport exchange or exchange pair to be closed before initiating a new transport exchange for the device on the logical path.

단계(303)에서, 컨트롤 유닛(118)은 TCCB(170) 및 트랜스포트-커맨드 IU(172)를 수신하고(receive), 만일 특정 조건들이 충족되면 TCCB(170)을 수용할 수 있다(accept). 트랜스포트-커맨드 IU(172)가 수용되었을 때, 컨트롤 유닛(118)에서 TCCB(170)의 실행이 완료되었다고 간주될 때까지 TCCB(170)은 컨트롤 유닛(118)에서 진행중(current)으로 간주된다. 만일 에러 조건 때문에 트랜스포트-커맨드 IU(172)가 수용되지 않는다면, 트랜스포트-응답 IU는 채널(128)로 복귀되고(returned) 초기 상태 플래그(an initial status flag)는 1로 세트되어 디바이스(116)에서 TCCB(170)의 실행을 개시하기 전에 에러가 발생하였음을 표시한다. 컨트롤 유닛(118)은 에러 정보를 트랜스포트-응답 IU(아래에서 설명한다) 내의 상태 필드 및 I/O 확장된 상태 필드들에 제공할 수 있는데, 이는 트랜스포트-커맨드 IU 에러를 식별하기 위해서이다. 한 실시 예에서, 트랜스포트-커맨드 IU(172)가 컨트롤 유닛(118)에서 수용되도록 하기 위해서 아래에 설명하는 예시적 조건들이 만족되어야 한다: At step 303 the control unit 118 receives the TCCB 170 and the transport-command IU 172 and accepts the TCCB 170 if certain conditions are met. . When the transport-command IU 172 is received, the TCCB 170 is considered current in the control unit 118 until the execution of the TCCB 170 in the control unit 118 is deemed complete . If the transport-command IU 172 is not accepted because of an error condition, the transport-response IU is returned to the channel 128 and an initial status flag is set to 1, ) Indicates that an error has occurred before starting execution of TCCB 170. [ The control unit 118 may provide error information to the status field and the I / O extended status fields in the transport-response IU (described below), which is to identify the transport-command IU error . In one embodiment, the exemplary conditions described below must be satisfied in order for the transport-command IU 172 to be accepted at the control unit 118:

1) 트랜스포트-커맨드 IU는 다음의 무결성 체크들(integrity checks)을 충족한다;1) the transport-command IU meets the following integrity checks;

a) 양방향 동작들을 지원하지 않는 컨트롤 유닛들을 위해, TCH 내의 L1 필드 플러스 8은 트랜스포트-커맨드 IU를 위해 컨트롤 유닛에 의해서 수신된 데이터의 양과 같은 데이터의 양을 명시해야 한다, 그렇지 않으면, 데이터 카운터 에러 때문에 트랜스포트-커맨드 IU 무결성 에러가 인지될 것이다;a) For control units that do not support bidirectional operations, the L1 field plus 8 in the TCH shall specify the amount of data, such as the amount of data received by the control unit for the transport-command IU, Because of the error, a transport-command IU integrity error will be acknowledged;

b) 양방향 동작들을 지원하는 컨트롤 유닛들을 위해, TCH 내의 L1 필드 플러스 8 혹은 9는 트랜스포트-커맨드 IU를 위해 컨트롤 유닛에 의해서 수신된 데이터의 양과 같은 데이터의 양을 명시해야 한다, 그렇지 않으면, 데이터 카운터 에러 때문에 트랜스포트-커맨드 IU 무결성 에러가 인지될 것이다; 그리고b) For control units that support bidirectional operations, the L1 field plus 8 or 9 in the TCH must specify the amount of data, such as the amount of data received by the control unit for the transport-command IU, Because of the counter error, the transport-command IU integrity error will be recognized; And

c) TCCB에서 LRC 필드는 유효할 것이다, 그렇지 않으면 무효의 LRC 에러 때문에 트랜스포트-커맨드 IU 무결성 에러가 인지될 것이다c) The LRC field in the TCCB will be valid, otherwise a transport-command IU integrity error will be acknowledged due to an invalid LRC error

2) 명시된 논리적 경로가 설정될 것이다, 그렇지 않으면, 논리적-경로가-설정되지-않았다는 에러(a logical-path-not-established error)가 인지될 것이다;2) The specified logical path will be set, otherwise a logical-path-not-established error will be recognized;

3) 디바이스가 설치되고 준비될 것을 요구하는 커맨드들을 위해, 디바이스 주소가 설치되고 준비된 디바이스를 명시할 것이다, 그렇지 않으면, 주소-예외 조건이 인지될 것이다;3) For commands that require the device to be installed and ready, the device address will be set to the installed and ready device, otherwise an address-exception condition will be recognized;

4) 만일 양방향 데이터 전송이 컨트롤 유닛에 의해서 지원되지 않거나 혹은 트랜스포트-커맨드 IU가 BRDL 필드를 보유하지 않는다면 R 및 W 비트들은 TCH 내에서 모두 1로 세트 되지는 않을 것이다; 그렇지 않으면 TCH 컨텐트 에러가 인지될 것이다;4) If the bidirectional data transmission is not supported by the control unit or if the transport-command IU does not have a BRDL field, then the R and W bits will not all be set to 1 within the TCH; Otherwise a TCH content error will be recognized;

5) 트랜스포트-커맨드 IU 내의 TCCB는 아래의 모든 조건들을 충족할 것이다, 그렇지 않으면, TCCB 컨텐트 에러가 인지될 것이다:5) The TCCB in the Transport-Command IU will meet all of the following conditions, otherwise a TCCB content error will be recognized:

a) L2 필드는 L1 필드보다 큰 정확히 8 바이트인 길이를 명시하고 그리고 적어도 20 바이트이며 252 바이트는 넘지 않는 값을 보유할 것이다; a) The L2 field shall specify a length that is exactly 8 bytes greater than the L1 field, and shall hold a value of at least 20 bytes and not exceeding 252 bytes;

b) TCAH의 워드 0의 바이트 1은 0이 될 것이다;b) byte 1 of word 0 of TCAH will be 0;

c) TCAH 내의 포맷 컨트롤 필드는 hex'7F'와 같을 것이다;c) The format control field in TCAH will be the same as hex'7F ';

d) TCAH 내의 서비스-액션 코드는 유효한 값을 보유할 것이다d) The service-action code in the TCAH will hold a valid value

e) 만일 R 및 W 비트들이 모두 0으로 세트 되었다면, 데이터-길이(DL) 필드는 0이 될 것이다; 그리고e) If the R and W bits are all set to zero, the data-length (DL) field will be zero; And

6) 만일 다른 TCW I/O 동작이 트랜스포트-커맨드 IU에 명시된 논리적 경로 및 디바이스 주소를 위해 진행 중이면, 서비스-액션 코드는 hex'IFFF'를 명시하고 TCA의 제1 DCW 내의 커맨드 코드는 질의 커맨드 코드를 명시할 것이다, 그렇지 않으면 비-질의-제2-동작 에러(a non-interrogate-second-operation error)가 인지될 것이다.
6) If another TCW I / O operation is in progress for the logical path and device address specified in the transport-command IU, then the service-action code specifies hex'IFFF 'and the command code in the first DCW of the TCA queries Will specify the command code, otherwise a non-interrogate-second-operation error will be recognized.

한 실시 예에서, 채널(128)은 트랜스포트-커맨드 IU(172)가 송신될 때 연결이 존재하는 것으로 간주하고, 컨트롤 유닛(118)은 트랜스포트-커맨드 IU(172)가 수용될 때 연결이 존재하는 것으로 간주한다. 따라서, I/O 동작이 컨트롤 유닛(118)에 의해서 트랜스포트-응답 IU로 종료될 때까지 채널(128)은 컨트롤 유닛(118)이 TCCB(170)을 수용했는지에 관하여 혹은 디바이스(116)에서 I/O 동작의 진전에 관하여 알지 못한다. 한 실시 예에서, 채널(128)은 컨트롤 유닛으로부터 응답을 수신하기 위해 타임 윈도(a time window)를 세트 할 수 있고, 그렇게 해서 만일 채널이 그 윈도 내에 트랜스포트-응답 IU을 수신하지 않으면, 채널은 트랜스포트 커맨드 타임아웃(a transport command timeout)을 인지한다
In one embodiment, the channel 128 assumes that a connection exists when the transport-command IU 172 is transmitted and the control unit 118 determines that the connection is established when the transport-command IU 172 is received It is considered to exist. Thus, channel 128 can be used to determine whether control unit 118 has accepted TCCB 170, or until device 116 has received the TCCB 170, until the I / O operation is terminated by the control unit 118 to the transport- I do not know about the progress of I / O operation. In one embodiment, the channel 128 may set a time window to receive a response from the control unit so that if the channel does not receive a transport-response IU in its window, Recognizes a transport command timeout

단계(304)에서, TCCB(170)이 수용되었을때, 컨트롤 유닛(118)은 TCA(180)을 처리하고 각각의 DCW(202)를 실행한다. DCW(202)가 트랜스포트 모드 프로그램의 제1 DCW(즉, TCCB 내의 제1 DCW)이고 실행을 위해 I/O 디바이스(116)에 의해서 선택되었을 때 혹은, 커맨드 체이닝 동안, 후속 DCW(202)가 I/O 동작의 컨트롤을 접수(take over)했을 때 DCW(202)는 진행중(current)이 된다. 실행될 제1 DCW는 TCCB(170) 내의 TCA(180)의 오프셋 0에 위치한다고 간주될 수 있다. 채널 프로그램 내 각각의 추가의 DCW는 TCA(180) 내에(혹은 TCAX(220) 내에) 위치하고 DCW가 I/O 디바이스(116)에 의해서 필요할 때 사용된다.
At step 304, when the TCCB 170 is received, the control unit 118 processes the TCA 180 and executes each DCW 202. When the DCW 202 is selected by the I / O device 116 for execution and the first DCW of the transport mode program (i.e., the first DCW in the TCCB) or during command chaining, the subsequent DCW 202 When the control of the I / O operation is taken over, the DCW 202 is in the current state. The first DCW to be implemented may be considered to be located at offset 0 of the TCA 180 in the TCCB 170. [ Each additional DCW in the channel program is located within the TCA 180 (or within the TCAX 220) and is used when the DCW is needed by the I / O device 116.

커맨드 체이닝은 DCW 내의 DCW 체인 커맨드(CC) 플래그에 의해서 컨트롤 된다. 이 플래그는 현재 DCW의 소진(exhaustion)에 따라 취해질 액션을 명시한다. 체이닝(chaining)은 TCA 내의 연속(successive) DCW들 사이에서 일어난다. TCAX가 명시되었을 때, 체이닝은 또한 TCA 내의 최종 DCW와 TCAX 내의 제 1DCW 사이에서, 그리고 TCAX 내의 연속 DCW들 사이에서 일어난다. 현재 DCW가 커맨드 체이닝을 명시하고 동작 동안 비정상적 조건들이 검출되지 않았을 때, 현재 DCW의 완료는 다음 DCW를 현재 DCW가 되게 하고 디바이스에 의해 실행되게 한다. 만일 TCAX가 명시되고 다음 DCW의 오프셋이 TCA의 끝을 지나면(past), 체이닝은 TCAX의 제1 DCW에서 계속되고 TCAX 오프셋은 TCA 길이를 상기 계산된 오프셋으로부터 차감함으로써 결정된다. 따라서, 커맨드 체이닝은 TCA 오프셋들의 오름순(ascending order)으로, 그리고 그 다음 TCAX가 명시되었을 때, TCAX 오프셋들의 오름순으로 진행된다. 만일 어텐션(attention), 유닛 체크, 유닛 예외 혹은 부정확한 길이와 같은, 조건이 발생하였다면(DCW 내의 SLI 필드(214)가 활성화되지 않는 한), 동작들의 순서는 완료되고, 현재 동작과 관련된 상태는 인터럽션 조건이 생성되게 한다. 이 경우에 새로운 DCW는 실행되지 않는다.
The command chaining is controlled by the DCW chain command (CC) flag in the DCW. This flag specifies the action to be taken in response to the exhaustion of the current DCW. Chaining occurs between successive DCWs in the TCA. When TCAX is specified, chaining also occurs between the final DCW in TCA and the first DCW in TCAX, and between successive DCWs in TCAX. When the current DCW specifies command chaining and no abnormal conditions are detected during operation, the completion of the current DCW causes the next DCW to be the current DCW and to be executed by the device. If TCAX is specified and the offset of the next DCW passes past the end of the TCA, the chaining continues at the first DCW of TCAX and the TCAX offset is determined by subtracting the TCA length from the calculated offset. Thus, command chaining proceeds in ascending order of TCA offsets, and then TCAX offsets in ascending order when TCAX is specified. If a condition occurs (such as an attention, unit check, unit exception, or incorrect length) (unless the SLI field 214 in the DCW is activated), the order of operations is complete and the state associated with the current operation is Causing an interruption condition to be generated. In this case, the new DCW is not executed.

I/O 동작을 통해서 전송되도록 요청된 데이터는 TCCB(170) 내 DCW들(202)의 처리 동안 하나 혹은 그 이상의 트랜스포트-데이터 IU들을 통해서 채널(128)과 컨트롤(118) 사이에 송신된다. 리드 동작은 오직 리드 데이터 전송만을 수행하고, 라이트 동작은 오직 라이트 데이터 전송만을 수행하며, 양방향 동작은 리드 및 라이트 데이터 전송 모두를 수행할 수 있다.
The data requested to be transmitted via the I / O operation is transmitted between the channel 128 and the control 118 via one or more transport-data IUs during the processing of the DCWs 202 in the TCCB 170. [ The read operation performs only the read data transfer, the write operation performs only the write data transfer, and the bidirectional operation can perform both the read and write data transfer.

도 15를 참조하면, 라이트 혹은 양방향 동작을 위해서, 채널(128)은 하나 혹은 그 이상의 트랜스포트-데이터 IU들(310)을 컨트롤 유닛(118)로 송신하는데, 이는 그 동작을 위한 라이트 데이터(312)를 전송하기 위함이다. 리드 혹은 양방향 동작을 위해서, 컨트롤 유닛(118)은 적어도 하나의 트랜스포트-데이터 IU(314)를 채널(128)로 송신하는데, 이는 그 동작을 위해 명시된 리드 데이터(316)를 전송하기 위함이다. 패드 바이트들(318)은 CRC가 계산되는 데이터 영역의 최종 워드 내에 포함되고 커버될 데이터 영역이 데이터 워드들의 진정 수(integral number)가 아닌 때 다음 워드 범위로 데이터 영역을 패드하기 위해 사용된다. 이것은 COB, 중간 및 최종 CRC에 의해서 커버될 데이터 영역들에 대해 적용한다. 패드 바이트를 위해 사용된 값은 모델에 따라 다르다.
15, channel 128 transmits one or more transport-data IUs 310 to control unit 118 for write or bidirectional operation, which may include write data 312 for that operation ). For read or bidirectional operation, the control unit 118 transmits at least one transport-data IU 314 on channel 128 for transmitting the specified lead data 316 for its operation. Pad bytes 318 are used to pad the data area into the next word range when the CRC is included in the last word of the data area for which the CRC is calculated and the data area to be covered is not an integral number of data words. This applies to data areas to be covered by COB, intermediate and final CRC. The value used for the pad byte depends on the model.

최종 CRC 필드(320)은 트랜스포트-데이터 IU(310,314)가 TCW I/O 동작을 위해 채널(128) 혹은 컨트롤 유닛(118)에 의해서 송신된 최종 트랜스포트-데이터 IU일 때 그 트랜스포트-데이터 IU(310, 314) 내에 포함된다. 한 실시 예에서, 최종-CRC 필드(320)은 워드-정렬된(word-aligned) 32-비트 리던던시-체크 코드를 포함한다. 리드 혹은 라이트 동작들을 위해, TCCB(170) 내 DL 필드는 동작 동안 전송될 데이터의 양을 명시하는데, 이에는 모든 요구된 패드 및 CRC 바이트들이 포함될 수 있다. 양방향 동작들을 위해서, TCCB(170) 내 DL 필드는 그 동작의 라이트 데이터 전송 부분을 위해 전송될 데이터의 양을 명시하고 BRDL 필드는 그 동작의 리드 데이터 전송 부분을 위해 전송될 데이터의 양을 명시한다. 이들 양들은 모든 요구된 패드 및 CRC 바이트들을 포함할 수 있다.
The final CRC field 320 indicates that the transport-data IU 310, 314 is the last transport-data IU transmitted by the channel 128 or control unit 118 for TCW I / IUs 310 and 314, respectively. In one embodiment, the last-CRC field 320 includes a word-aligned 32-bit redundancy-check code. For read or write operations, the DL field in the TCCB 170 specifies the amount of data to be transmitted during operation, which may include all required pads and CRC bytes. For bidirectional operations, the DL field in TCCB 170 specifies the amount of data to be transferred for the write data transfer portion of its operation and the BRDL field specifies the amount of data to be transferred for the lead data transfer portion of that operation . These quantities may contain all requested pads and CRC bytes.

라이트 혹은 양방향 데이터 전송 동안, 출력 데이터는 하나 혹은 그 이상의 트랜스포트-데이터 IU들(310)에서 TCW I/O 동작과 관련된 트랜스포트 교환 상에서 컨트롤 유닛(118)로 전송된다. 한 실시 예에서, 동작의 제1 라이트 트랜스포트-데이터 IU(310)을 제외하고, 제1-전송-준비의 디스에이블이 되었을 때 채널(128)은 각 트랜스포트-데이터 IU(310)을 송신하기 전에 컨트롤 유닛(118)로부터 전송-준비된 IU(a transfer-ready IU)를 요구한다. 컨트롤 유닛(118)은 라이트 동작을 위해 TCCB(170)의 DL 필드(186)에 의해서 명시된 모든 데이터를 요청하는 것이 완료될 때까지 추가의 전송-준비된 IU들을 송신함으로써 추가의 데이터를 요청할 수 있다. 라이트 동작을 위해, TCCB(170) 내의 DL 필드(186)에 의해서 명시된 데이터 전송의 완료 다음에 컨트롤 유닛(118)에 의해서 송신된 다음 IU는 트랜스포트-응답 IU이다. 양방향 동작을 위해, TCCB 내의 DL 필드(186)에 의해서 명시된 데이터 전송의 완료 다음에 컨트롤 유닛(118)에 의해서 송신된 다음 IU는 트랜스포트-데이터 IU 혹은 트랜스포트-응답 IU일 수 있다.
During a write or bidirectional data transfer, the output data is transferred to the control unit 118 on a transport exchange associated with the TCW I / O operation at one or more transport-data IUs 310. In one embodiment, except for the first write transport-data IU 310 of operation, when the first transfer-ready is disabled, the channel 128 transmits each transport-data IU 310 Request a transfer-ready IU from the control unit 118 before it is ready. The control unit 118 may request additional data by sending additional transfer-ready IUs until completing requesting all data specified by the DL field 186 of the TCCB 170 for a write operation. For a write operation, the next IU transmitted by the control unit 118 after completion of the data transfer specified by the DL field 186 in the TCCB 170 is a transport-response IU. For bi-directional operation, the next IU transmitted by the control unit 118 following completion of the data transmission specified by the DL field 186 in the TCCB may be a transport-data IU or a transport-response IU.

리드 데이터 전송 동안, 데이터는 하나 혹은 그 이상의 트랜스포트-데이터 IU들(310)에서 TCW I/O 동작과 관련된 트랜스포트 교환 상에서 채널(128)로 전송된다. 각 트랜스포트-데이터 IU 내 송신된 데이터의 양은 컨트롤 유닛(118)에 의해서 결정되고 그리고 그 동작을 위해 모든 트랜스포트-데이터 IU들 내 전송된 데이터의 총량이 DL 필드(186) 내의 값을 혹은, 양방향 동작들을 위해, BRDL 필드(188) 내의 값을 초과하지 않는 한 어떠한 값으로 든지 세트 될 수 있다. 리드 동작들을 위해, 만일 컨트롤 유닛에 의해서 송신된 데이터의 양이 TCCB 내의 DL 필드보다 적다면, 트랜스포트-응답 IU에서 DL 나머지 카운트(DL residual count)는 CU에 의해서 송신된 데이터 양과 TCCB 내의 DL 필드 사이의 차(difference)가 될 것이다. 만일 트랜스포트-응답 IU에 컨트롤 유닛에 의해서 제공된 나머지 카운트가 DL과 채널에 의해서 실제로 수신된 바이트들의 수 사이의 차와 매치하지 않는다면 채널은 디바이스-레벨 프로토콜 에러를 인지한다.
During the read data transfer, the data is transferred to the channel 128 on the transport exchange associated with the TCW I / O operation at one or more transport-data IUs 310. The amount of data transmitted in each transport-data IU is determined by the control unit 118 and the total amount of data transferred in all the transport-data IUs for that operation is stored in the DL field 186, For bidirectional operations, any value may be set as long as the value in the BRDL field 188 is not exceeded. For read operations, if the amount of data transmitted by the control unit is less than the DL field in the TCCB, the DL residual count in the transport-response IU is the DL residual count, the amount of data transmitted by the CU, The difference between the two. If the remaining count provided by the control unit to the transport-response IU does not match the difference between the DL and the number of bytes actually received by the channel, the channel acknowledges the device-level protocol error.

라이트 및 양방향 동작들을 위해, 트랜스포트-응답 IU 내의 DL 나머지 카운트는 채널에 의해서 송신된 데이터의 양과 TCCB 내의 DL 필드 사이의 차가 될 것이다. 만일 트랜스포트-응답 IU에 컨트롤 유닛에 의해서 제공된 DL 나머지 카운트가 DL과 채널로 실제로 송신된 바이트들의 수 사이의 차와 매치하지 않는다면 채널은 디바이스-레벨 프로토콜 에러를 인지한다. 양방향 동작들을 위해, 만일 컨트롤 유닛에 의해서 송신된 데이터의 양이 TCCB 내의 BRDL 필드보다 적다면, 트랜스포트-응답 IU 내의 BRDL-나머지 카운트는 CU에 의해서 송신된 데이터의 양과 TCCB 내의 BRDL 필드 사이의 차가 될 것이다. 만일 트랜스포트-응답 IU에 컨트롤 유닛에 의해서 제공된 나머지 카운트가 BRDL과 채널에 의해서 실제로 수신된 바이트들의 수 사이의 차와 매치하지 않는다면 채널은 디바이스-레벨 프로토콜 에러를 인지한다.
For write and bidirectional operations, the DL remaining count in the transport-response IU will be the difference between the amount of data sent by the channel and the DL field in the TCCB. If the DL remainder count provided by the control unit in the transport-response IU does not match the difference between the DL and the number of bytes actually transmitted in the channel, the channel recognizes the device-level protocol error. For bi-directional operations, if the amount of data transmitted by the control unit is less than the BRDL field in the TCCB, the BRDL-remaining count in the transport-response IU is the difference between the amount of data transmitted by the CU and the BRDL field in the TCCB Will be. If the remaining counts provided by the control unit in the transport-response IU do not match the difference between the number of bytes actually received by the BRDL and the channel, the channel acknowledges the device-level protocol error.

라이트 혹은 양방향 동작을 위해, 제1-전송-준비(first-transfer-ready)의 디스에이블이 되었을 때, 채널은 트랜스포트-커맨드 IU 바로 다음의 트랜스포트-데이터를 송신한다. 제1 트랜스포트-데이터 IU 이후 채널로부터의 모든 트랜스포트-데이터 IU들을 위해 그리고 제1-전송-준비의 디스에이블이 되지 않았을 때 채널로부터의 모든 트랜스포트-데이터 IU들을 위해, 전송-준비 IU를 수신한 후에만 채널은 라이트 트랜스포트-데이터-IU를 송신할 것이다. 채널은 각각의 전송-준비 IU를 수신한 후 TCCB에 의해서 명시된 모든 라이트 데이터가 전송될 때까지 혹은 트랜스포트-응답 IU가 수신될 때까지 트랜스포트-데이터 IU를 송신할 것이다.
For a write or bi-directional operation, when the first-transfer-ready is disabled, the channel transmits the transport-data immediately following the transport-command IU. For all transport-data IUs from the channel after the first transport-data IU and for all transport-data IUs from the channel when the first-transfer-ready is not disabled, Only after receiving will the channel send a light transport-data-IU. The channel will transmit the transport-data IU until all write data specified by the TCCB is transmitted after receiving each transmit-ready IU or until a transport-response IU is received.

리드 혹은 양방향 동작을 위해, 그 동작을 위해 명시된 리드 데이터를 전송하기 위해서 컨트롤 유닛은 적어도 하나의 트랜스포트-데이터 IU를 채널에 송신한다.
For read or bidirectional operation, the control unit sends at least one transport-data IU to the channel to transmit the specified lead data for its operation.

양방향 동작들을 위해, 제1-전송-준비의 디스에이블(first-transfer-ready disabled)이 발효 중이 아닐 때 컨트롤 유닛은 제1 트랜스포트-데이터 IU를 선택하여 전송되도록 한다. 컨트롤 유닛은 트랜스포트-데이터 IU를 요청하기 위해 채널로 전송-준비 IU를 송신하거나 혹은 채널로 트랜스포트-데이터 IU를 송신한다. 만일 제1-전송-준비의 디스에이블이 그 동작을 위해 발효 중이라면, 채널은 트랜스포트-커맨드 IU 다음의 트랜스포트-데이터 IU를 송신한다.
For bidirectional operations, the control unit selects and transmits the first transport-data IU when the first-transfer-ready disabled is not in effect. The control unit sends to the channel to request the transport-data IU - either the ready IU or the transport-data IU to the channel. If the disable of the first-transfer-preparation is in effect for its operation, the channel transmits the transport-data IU following the transport-command IU.

양방향 동작들을 위해, 라이트 및 리드 데이터 전송 모두가 수행될 수 있다. 라이트 데이터 전송 및 리드 데이터 전송은 전술한 바와 같이 수행될 수 있다. 제1 트랜스포트-데이터 IU를 제외하고 제1-전송-준비의 디스에이블이 발효 중일 때, 라이트 트랜스포트-데이터 IU를 요청하기 위해 채널과 컨트롤 유닛 사이의 데이터 전송은 컨트롤 유닛에 의해서 컨트롤 되는데, 리드 트랜스포트-데이터 IU를 송신함으로써 혹은 전송-준비 IU를 송신함으로써 컨트롤된다.
For bidirectional operations, both write and read data transfer can be performed. The write data transfer and the read data transfer can be performed as described above. Data transmission between the channel and the control unit to request a write transport-data IU is controlled by the control unit when the disable of the first-transfer-preparation is in effect except for the first transport-data IU, Lead transport - controlled by sending a data IU or by sending a transmit-ready IU.

데이터가 호스트 스토리지로부터 페치되어 트랜스포트-데이터 IU에 송신되는 순서와 비교하여 트랜스포트-데이터 IU에 수신된 데이터가 호스트 스토리지에 저장되는 순서는 양방향 동작에 대해 예측 가능하지 않을 수 있다.
The order in which data received in the transport-data IU is stored in the host storage as compared to the order in which the data is fetched from the host storage and transmitted to the transport-data IU may not be predictable for bidirectional operation.

채널이 제1 트랜스포트-데이터 IU를 전송할 때 제1-전송-준비의 디스에이블이 발효 중일 때 혹은 컨트롤 유닛이 전송-준비 IU를 송신함으로써 채널로부터 트랜스포트-데이터 IU를 요청할 때, 채널에 의해서 트랜스포트-데이터 IU에 송신된 데이터는 TCA 내의 리드 DCW들의 실행에 후속하여 실행되는 라이트 DCW들을 위한 것일 수 있다.
When the channel is transmitting the first Transport-Data IU, or when the control unit is requesting the Transport-Data IU from the channel by sending a Transmit-Ready IU, The data sent to the transport-data IU may be for write DCWs that are executed subsequent to the execution of the read DCWs in the TCA.

도 15에서 도시한 바와 같이, 하나 혹은 그 이상의 중간 CRC 워드들(320)은 채널(128)에 의해서 송신된 트랜스포트-데이터 IU 내에 존재할 수 있다. 중간 CRC 워드들(320)은 TCA(180)에 의해서 명시된 전체 데이터 영역의 전송 전에 데이터 영역들의 CRC 체킹을 제공한다. COB CRC 워드(322)는 COB(222)가 트랜스포트-데이터 IU(310)에 전송될 때 트랜스포트-데이터 IU(310) 내에 존재할 수 있다.
As shown in FIG. 15, one or more intermediate CRC words 320 may be present in the transport-data IU transmitted by the channel 128. The intermediate CRC words 320 provide CRC checking of the data areas before transmission of the entire data area specified by the TCA 180. [ The COB CRC word 322 may be present in the transport-data IU 310 when the COB 222 is transmitted to the transport-data IU 310.

도 14를 다시 참조하면, 단계(305)에서, TCW I/O 동작은 채널(128) 혹은 컨트롤 유닛(118)에 의해서 종료된다. 채널(128)은 비정상적(abnormal) 조건의 결과로서 혹은 프로그램-개시된 종료로서 TCW I/O 동작의 종료를 개시할 수 있다. 컨트롤 유닛(118)은 동작 실행 완료의 결과로서 혹은 커맨드 실행 동안 검출된 비정상 조건의 결과로서 그 동작의 종료를 개시할 수 있다. 컨트롤 유닛(118)은 트랜스포트-응답 IU을 송신함으로써 혹은, 특정 에러들의 경우에, 그 교환을 폐기함으로써 TCW I/O 동작의 종료를 개시할 수 있다. 한 실시 예에서, 컨트롤 유닛(118)은 다음의 환경들 중 어느 것이라도 그러한 환경 하에서는 TCW I/O 동작의 종료를 개시할 수 있다: TCA(180)(그리고 명시되었다면 TCAX) 내의 모든 DCW들(202)가 실행되었을 것; DCW-부정확한 길이 퍼실리티가 지원되고 SLI 플래그(214)가 0으로 세트 되었을 때 부정확한-길이 조건이 DCW에 대해 검출 되었을 것; 유닛 체크 조건이 검출되었을 것; 트랜스포트 에러와 같은 비정상 조건이 있을 것; 혹은 교환을 폐기하도록 요구하는 다른 에러가 인지되었을 것.
Referring again to FIG. 14, in step 305, the TCW I / O operation is terminated by channel 128 or control unit 118. Channel 128 may initiate the termination of the TCW I / O operation as a result of an abnormal condition or as a program-initiated termination. The control unit 118 may initiate the end of the operation as a result of the completion of the operation or as a result of the abnormal condition detected during the execution of the command. The control unit 118 may initiate the termination of the TCW I / O operation by sending a transport-response IU, or, in the case of certain errors, discarding the exchange. In one embodiment, the control unit 118 may initiate the termination of a TCW I / O operation under any of the following circumstances: all DCWs in the TCA 180 (and TCAX if specified) 202) has been executed; DCW-Incorrect-Length condition detected for DCW when incorrect length facility is supported and SLI flag 214 is set to zero; Unit check condition should be detected; There must be an abnormal condition such as a transport error; Or other error requiring discarding the exchange.

도 16-18은 컨트롤 유닛(118)에 의해서 송신될 수 있는 예시적 트랜스포트 응답 IU(330)을 도시한다. 트랜스포트 응답 IU(330)은 TCW I/O 동작을 위한 상태를 제공하는데, 이는 정상 종료 상태(normal ending status)를 포함하거나 또는, 비정상 조건(abnormal condition)이 검출되었을 때, 그 동작의 비정상 종료에 대한 원인을 표시하는 종료 상태(termination status)를 포함할 수 있다. 트랜스포트 응답 IU(330)은 또한 확장된 상태 필드를 포함할 수 있는데, 이는 동작 위한 상태를 더 제공한다. 트랜스포트 응답 IU는 트랜스포트 교환을 클로즈(close) 할 수도 하지 않을 수도 있다. 한 실시 예에서, 트랜스포트 응답 IU에 의해서 트랜스포트 교환이 클로즈 되었는지 아닌지는 FC-FS-3 헤더 내에 표시된다. 만일 트랜스포트 교환이 트랜스포트 응답 IU에 의해서 클로즈 되지 않았다면, 채널은 트랜스포트-확인 IU를 송신할 수 있는데, 이는 트랜스포트 응답 IU를 수신한 후 트랜스포트 교환을 클로즈 한다.
16-18 illustrate an exemplary transport response IU 330 that may be transmitted by the control unit 118. As shown in FIG. The transport response IU 330 provides a state for TCW I / O operation, which includes a normal ending status or, when an abnormal condition is detected, And a termination status indicating the cause of the failure. The transport response IU 330 may also include an extended status field, which further provides a status for operation. The transport response IU may or may not close the transport exchange. In one embodiment, whether or not the transport exchange is closed by the transport response IU is indicated in the FC-FS-3 header. If the transport exchange is not closed by the transport response IU, the channel can send the transport-acknowledgment IU, which closes the transport exchange after receiving the transport response IU.

한 실시 예에서, 트랜스포트-응답 IU(330)은 SB-4 헤더(332)와 그 다음에 오는 상태 필드(334), 상태 LRC(344), 및, 예를 들어 32 바이트에서부터 64 바이트까지 보유하는 선택적 확장된-상태 필드(346)를 포함한다. 확장된 상태(extended status: ES) 가 제공되면, 4-바이트 확장된-상태 LRC 필드(340)이 트랜스포트-응답 IU(330)의 최종 워드로서 제공될 수 있다. 만일 확장된-상태 바이트들의 수가 한 워드 범위에 있지 않으면 패드 바이트들이 다음 워드 범위로 반올림(round) 하기 위해 확장된-상태에 추가된다. SB-4 헤더(332)는 트랜스포트 커맨드 IU의 포맷과 유사한 포맷을 가지고 있고 이 교환을 위해 트랜스포트 커맨드 IU 내 SB-4 헤더와 같게 세트 된다.
In one embodiment, the transport-response IU 330 includes an SB-4 header 332 followed by a status field 334, a status LRC 344, and, for example, 32 bytes to 64 bytes And an optional extended-state field 346 for selecting the extended state. A 4-byte extended-state LRC field 340 may be provided as the last word of the transport-response IU 330 if an extended status (ES) is provided. If the number of extended-status bytes is not in one word range, pad bytes are added to the extended-state to round to the next word range. The SB-4 header 332 has a format similar to the format of the transport command IU and is set equal to the SB-4 header in the transport command IU for this exchange.

도 17을 참조하면, 상태 영역(334)의 한 실시 예는, 예를 들어 20 바이트이고 TCW I/O 동작에 관한 정보를 보유한다. "상태 플래그들 1" 필드(336)은 하나 혹은 그 이상의 예외 코드들을 포함하고, 이들은 TCW I/O 동작 동안 검출된 비정상 조건을 보고하기 위해 컨트롤 유닛(118)에 의해서 세트된다. 예시적 코드들은 다음을 포함한다: 17, one embodiment of the status area 334 is, for example, 20 bytes and holds information regarding the TCW I / O operation. The "Status Flags 1" field 336 contains one or more exception codes, which are set by the control unit 118 to report abnormal conditions detected during TCW I / O operation. Exemplary codes include the following:

0 - 주소-예외 조건으로 인한 디바이스-레벨 예외(Device-level exception)0 - Address - Device-level exception due to exception condition (Device-level exception)

2 - 논리적-경로가-설정되지-않은 조건으로 인한 링크-레벨 거절(Link-level reject)2 - Link-level reject due to logical-path not-established condition

3 - 리세팅 이벤트 통지(Resetting event notification) - 리세팅 이벤트는 논리적 경로 및 트랜스포트-커맨드 IU와 관련된 디바이스 상에서 발생한다. 이 코드가 트랜스포트-응답 IU 내에서 세트 될 때, 컨트롤 유닛은 그 상태를 위한 상태 확인(status confirmation)을 요청한다. 만일 상태 확인이 수신되면, 리세팅 이벤트 조건은 그 논리적 경로를 위해 디바이스에서 리세트되고; 그렇지 않으면, 리세팅-이벤트 조건은 펜딩으로 남는다;3 - Resetting event notification - A reset event occurs on the device associated with the logical path and the transport-command IU. When this code is set in the transport-response IU, the control unit requests a status confirmation for that state. If a status check is received, the reset event condition is reset at the device for that logical path; Otherwise, the reset-event condition remains pending;

4 - 디바이스-검출된 프로그램 체크/IFCC - 컨트롤 유닛은 프로그램 체크 혹은 IFCC를 일으켜 보고될 수 있는 조건을 검출한다. 이 카테고리에 해당하는 에러들은 오염된 상태(a corrupted state) (예를 들어, TCCB 무결성 에러)에 도달한 트랜스포트-커맨드 IU, 라이트 데이터를 위해 검출된 무효의 CRC, 및 질의 동작이 아닌 논리적 경로와 디바이스 주소를 위한 제2 I/O 동작의 수신을 표시하는 에러들을 포함한다.4 - DEVICE - Detected Program Check / IFCC - The control unit detects a condition that can be reported by program check or IFCC. Errors corresponding to this category include a transport-command IU that has reached a corrupted state (e.g., TCCB integrity error), an invalid CRC detected for write data, and a logical path And a second I / O operation for the device address.

5 - 디바이스-검출된 프로그램 체크 - 컨트롤 유닛은 TCH의 컨텐트 내의 에러를 검출한다
5 - DEVICE - Detected program check - The control unit detects an error in the content of the TCH

한 실시 예에서, 상태 플래그들 1(336)은 부정확한 길이(IL) 플래그(338)을 포함한다. DCW-부정확한-길이 퍼실리티가 채널 및 컨트롤 유닛에 의해서 지원될 때, 비트 0은 IL 플래그이고 그리고, 1로 세트 될 때, TCW I/O 동작이 DCW 오프셋에 의해서 표시된 DCW를 위한 부정확한-길이 조건 때문에 종료되었음을 표시한다. 만일 DCW 데이터 카운트가 라이트 DCW를 위해 디바이스에 의해서 요구된 데이터의 양과 매치하지 않는다면 혹은 만일 DCW 데이터 카운트가 리드 DCW를 위해 디바이스에서 이용 가능한 데이터의 양과 매치하지 않는다면 부정확한 길이가 컨트롤 유닛(118)에 의해서 검출된다.
In one embodiment, state flags 1 336 include an incorrect length (IL) flag 338. [ When DCW-inaccurate-length facility is supported by the channel and control unit, bit 0 is the IL flag, and when set to 1, the TCW I / O operation has an incorrect-length for the DCW indicated by the DCW offset Indicates termination due to condition. If the DCW data count does not match the amount of data requested by the device for the write DCW, or if the DCW data count does not match the amount of data available in the device for the read DCW, an incorrect length is sent to the control unit 118 .

한 실시 예에서, 만일 DCW(202)가 SLI 플래그(214)를 포함한다면, SLI 플래그(214)가 0이고 디바이스 상태가 유닛-체크 상태 없이 채널-종료 상태를 포함할 때만 IL 플래그(338)은 1로 세트된다. IL 플래그(338)이 트랜스포트-응답 IU 내에서 1로 세트 될 때, DCW 오프셋은 부정확한-길이 조건을 보유하는 DCW를 식별하고 DCW 나머지 카운트는, 만일 있다면, 부정확한-길이 DCW를 위해 전송된 데이터 전송의 양을 표시한다. TCA 내 부정확한-길이 DCW를 앞선 DCW들을 위한 데이터 전송은, 만일 있다면, 아래에서 기술한 대로 수행되었을 것이다.
In one embodiment, if the DCW 202 includes an SLI flag 214, the IL flag 338 is only available if the SLI flag 214 is 0 and the device state includes a channel-terminated state without a unit- 1. When the IL flag 338 is set to 1 in the transport-response IU, the DCW offset identifies the DCW holding the incorrect-length condition and the DCW remaining count, if any, is sent for an incorrect-length DCW Lt; RTI ID = 0.0 > data transmission. Data transmission for DCWs that precede inaccurate-length DCW in the TCA, if any, would have been performed as described below.

부정확한-길이 조건을 보유하는 DCW가 리드 DCW일 때, 채널에 송신된 최종 트랜스포트-데이터 IU는 TCW I/O 동작 동안 채널에 전송된 모든 리드 데이터를 위한 CRC를 포함한다. 만일 라이트 DCW들이 TCA 내의 부정확한-길이 리드 DCW를 앞섰다면(preceded), 그 라이트 DCW들을 위한 데이터는 컨트롤 유닛에 의해서 수신되었을 것이고 CRC 체킹이 그 데이터에 관해 수행되었을 것이다. 부정확한-길이 리드 DCW 다음에 오는 TCA 내의 라이트 DCW들을 위한 데이터는 라이트 데이터를 위한 CRC를 획득하고 CRC 체킹을 수행하기 위해 필요하다면 컨트롤 유닛에 전송될 것이다.
When the DCW holding the incorrect-length condition is the lead DCW, the last transport-data IU sent to the channel contains the CRC for all the read data sent to the channel during the TCW I / O operation. If the write DCW precedes the incorrect-length lead DCW in the TCA, the data for the write DCWs would have been received by the control unit and the CRC checking would have been performed on the data. The data for the write DCWs in the TCA following the incorrect-length lead DCW will be transferred to the control unit if necessary to obtain the CRC for the write data and perform CRC checking.

부정확한-길이 퍼실리티가 채널 및 컨트롤 유닛에 의해서 지원되는지에 상관없이 부정확한-길이 조건은 질의 커맨드, 전송-CRC-오프셋 커맨드 혹은 TTE커맨드에 의해서 인지되지 않는다.
Incorrect-length conditions are not recognized by the query command, the transmit-CRC-offset command, or the TTE command, regardless of whether the facility is supported by the channel and the control unit.

트랜스포트 응답 IU(330)도 또한 데이터 길이 나머지 카운트(a Data Length Residual Count: DLRC) 필드(340)을 포함할 수 있다. 라이트 및 양방향 동작들을 위해, DL-나머지 카운트(DL-residual count)는 32-비트의, 부호 없는 2진 정수이며, 이는 트랜스포트-커맨드 IU 내의 DL 필드와 채널로부터 실제로 수신된 바이트들의 수 사이의 차(difference)를 명시한다. 리드 동작들을 위해, DL-나머지 카운트는 32-비트의, 부호 없는 2진 정수이며, 이는 트랜스포트-커맨드 IU 내의 DL 필드와 채널에 실제로 송신된 바이트들의 수 사이의 차를 명시한다.
The transport response IU 330 may also include a Data Length Residual Count (DLRC) field 340. For write and bidirectional operations, the DL-residual count is a 32-bit, unsigned binary integer that indicates the number of bytes actually received from the DL field and channel in the transport- Specify the difference. For read operations, the DL-remaining count is a 32-bit, unsigned binary integer, which specifies the difference between the DL field in the transport-command IU and the number of bytes actually transmitted in the channel.

양방향 동작들을 위해, BRDL 나머지 카운트 필드(a BRDL residual count field) (342)도 또한 트랜스포트-응답 IU(330)에 포함될 수 있다. 양방향 동작들을 위해, BRDL 나머지 카운트는 32-비트의, 부호 없는 2진 정수이며, 이는 트랜스포트-커맨드 IU 내의 BRDL 필드와 채널에 실제로 송신된 바이트들의 수 사이의 차를 명시한다.
For bidirectional operations, a BRDL residual count field 342 may also be included in the transport-response IU 330. For bidirectional operations, the BRDL remainder count is a 32-bit, unsigned binary integer, which specifies the difference between the BRDL field in the transport-command IU and the number of bytes actually transmitted in the channel.

상태 플래그들 3 필드(Status Flags 3 field) (344)는 관련된 트랜스포트-모드 동작에 관한 추가의 정보를 제공하기 위해 컨트롤 유닛(118)에 의해서 사용될 수 있다. 이 필드는, 가능한 감지 데이터(possible sense data)를 포함하는, 확장된 상태가 트랜스포트-응답 IU에 송신되었음을 표시하기 위해서 확장된 상태 송신된(ESS) 비트(an Extended Status Sent (ESS) bit)를 포함할 수 있다. 확장된 상태는 확장된 상태(ES) 플래그들(extended status (ES) Flags)을 포함하는데, 이는 ES 타입 코드 필드(an ES Type Code field)같은 필드들을 포함한다. 타입 코드들은 I/O 상태(확장된-상태 영역은 트랜스포트-모드 I/O 동작을 위한 유효한 종료 상태(valid ending status)를 보유한다), I/O 예외(확장된-상태 영역은 예외 조건으로 인한 트랜스포트-모드 I/O 동작의 종료에 관한 정보를 보유한다), 및 질의 상태(확장된-상태 영역은 질의 동작을 위한 상태를 보유한다)를 포함한다.
The Status Flags 3 field 344 may be used by the control unit 118 to provide additional information regarding the associated transport-mode operation. This field contains an Extended Status Sent (ESS) bit to indicate that an extended state has been sent to the transport-response IU, including possible sense data. . ≪ / RTI > The extended state includes extended status (ES) flags, which include fields such as an ES Type Code field. I / O exceptions (the extended-state area is an exceptional condition), the I / O state (the extended-state area holds the valid ending status for the transport-mode I / O operation) , And the query state (the extended-state region holds the state for the query operation), and the query state (holds the state for the query operation).

ES 플래그들 내의 ES-타입 코드가 I/O 예외 일 때, 그 ES는 이유 코드들(reason codes: RC)을 포함한다. 예시적 이유 코드들은 다음을 포함한다:When the ES-type code in the ES flags is an I / O exception, the ES includes reason codes (RC). Exemplary reason codes include the following:

1 - TCCB 무결성 에러: 컨트롤 유닛은 TCCB가 오염된 상태로 도달했음을 결정했다(단 예외 코드 4가 상태 플래그들 1 필드 내에 표시되었을 때);1 - TCCB Integrity error: The control unit has determined that the TCCB has arrived in a polluted state (except when exception code 4 is displayed in the status flags field 1);

2 - 무효의 CRC 검출됨: 무효의 CRC가 수신된 데이터 상에서 검출되었다(단 예외 코드 4가 상태 플래그들 1 필드 내에 표시되었을 때);2 - Invalid CRC detected: An invalid CRC was detected on the received data (except when exception code 4 is displayed in one of the status flags);

3 - 부정확한 TCCB 길이 명시(specification) (단 예외 코드 5가 상태 플래그들 1 필드 내에 표시되었을 때);3 - Incorrect TCCB length specification (when exception code 5 is displayed in one of the status flags);

4 - TCAH 명시 에러(TCAH specification error)(단 예외 코드 5가 상태 플래그들 1 필드 내에 표시되었을 때);4 - TCAH specification error (when exception code 5 is displayed in one of the status flags);

5 - DCW 명시 에러: 확장된 상태 내의 DCW-오프셋에 의해서 지정된 DCW에 에러가 존재한다(단 예외 코드 5가 상태 플래그들 1 필드 내에 표시되었을 때);5 - DCW explicit error: There is an error in the DCW specified by the DCW-offset in the extended state (except when exception code 5 is displayed in the status flags 1 field);

6 - 전송-방향 명시 에러: 확장된 상태 내의 DCW-오프셋 필드에 의해서 지정된 DCW에 의해서 명시된 커맨드는 TCH 내에 명시된 전송 방향과 일치하지 않는 데이터 전송의 방향을 명시하거나 혹은 R 및 W 비트들이 모두 TCH 내에 1로 세트 되고 양방향 데이터 전송은 컨트롤 유닛에 의해서 지원되지 않는다(단 예외 코드 5가 상태 플래그들 1 필드 내에 표시되었을 때);6 - Transmission - Directional Clear Error: The command specified by the DCW specified by the DCW - Offset field in the extended state specifies the direction of data transmission that does not match the transmission direction specified in the TCH, or both the R and W bits are in the TCH 1 and bidirectional data transmission is not supported by the control unit (except when exception code 5 is displayed in one of the status flags field);

7 - 트랜스포트-카운트 명시 에러(단 예외 코드 5가 상태 플래그들 1 필드 내에 표시되었을 때);7 - Transport-count clear error (except when exception code 5 is displayed in the status flags field 1);

8 - 두 개의 I/O 동작들이 활성임(active): I/O 동작이 디바이스에서 활성인 동안 제2 비-질의 TCCB는 실행을 위해 디바이스에 트랜스포트 되었다. RCQ 필드는 의미를 갖지 않는다. 이 이유 코드는 예외 코드 4가 상태 플래그들 1 필드 내에 표시되었을 때 제공된다; 그리고8 - Two I / O operations are active: The second non-query TCCB has been transported to the device for execution while the I / O operation is active on the device. The RCQ field has no meaning. This reason code is provided when exception code 4 is displayed in the state flags 1 field; And

9 - CRC-오프셋 블록 내의 하나 혹은 그 이상의 엔트리들은 중간 CRC가 디바이스 및/또는 실행될 커맨드 위해 적절한 위치에 존재하지 않음을 표시한다. 단, 예외 코드 4가 상태 플래그들 1 필드 내에 표시되었을 때.
One or more entries in the 9-CRC-offset block indicate that the intermediate CRC is not at the proper location for the device and / or the command to be executed. However, when exception code 4 is displayed in one of the status flags field.

확장된 상태는 또한 이유 코드 한정자(a Reason Code Qualifier: RCQ)를 제공할 수 있는데, 이는 I/O 예외를 위한 이유(들)에 관한 추가의 정보를 제공한다. 다른 이유 코드 한정자 타입들이 TCCB 무결성 에러들, 출력 데이터 CRC 에러들, 부정확한 TCCB 길이 명시들, TCAH 명시 에러들 및 DCW 명시 에러들과 같은 여러 타입들의 에러들을 위해 사용될 수 있다. TCCB 무결성 에러를 위한 예시적 RCQ들은 다음을 포함한다:The extended state may also provide a Reason Code Qualifier (RCQ), which provides additional information about the reason (s) for the I / O exception. Other reason code qualifier types may be used for various types of errors, such as TCCB integrity errors, output data CRC errors, incorrect TCCB length indications, TCAH explicit errors, and DCW explicit errors. Exemplary RCQs for TCCB integrity errors include:

0 - 추가의 정보가 없음;0 - no additional information;

1 - 데이터 카운트 에러 - 트랜스포트 커맨드 IU를 위해 전송된 데이터의 양은 양방향 동작들을 지원하지 않는 컨트롤 유닛들을 위한 TCH 내의 L1 필드 플러스8에 의해서 명시된 데이터의 양과 같지(equivalent) 않거나 혹은 양방향 동작들을 지원하는 컨트롤 유닛들을 위한 TCH 내의 L1 필드 플러스 8 혹은 9에 의해서 명시된 데이터의 양과 같지 않다; 그리고1 - Data Count Error - The amount of data transferred for the Transport Command IU is not equivalent to the amount of data specified by the L1 field plus 8 in the TCH for control units that do not support bidirectional operations, Is not equal to the amount of data specified by the L1 field plus 8 or 9 in the TCH for the control units; And

2 - LRC 에러 - 트랜스포트-커맨드 IU 상의 LRC는 무효이다.
2 - LRC error - LRC on transport-command IU is invalid.

DCW 명시 에러를 위한 예시적 RCQ들은 다음을 포함한다:Exemplary RCQs for DCW explicit error include:

1 - 유보된(Reserved)-필드 명시 에러: 0들을 보유하도록 요구된 DCW 내의 유보된 필드가 0이 아닌 값을 보유한다;1 - Reserved-field clear error: reserved field in DCW required to hold 0 holds non-zero value;

2 - 플래그들-필드 커맨드-체이닝 명시 에러: 커맨드-체이닝 비트는 1이고 다음 DCW의 오프셋은 다음 DCW의 전부 혹은 일부가 TCA의 끝을 지나 확장되거나, 또는 커맨드-체이닝 비트가 0이고 3 이상의 사용되지 않은 바이트들은 TCA 내에 남아있도록 한다. 2 - flags - field command - chaining explicit error: command - chaining bit is 1 and the next DCW offset is the sum of all DCWs, some or all of which extend beyond the end of the TCA, or the command - chaining bit is 0, The remaining bytes remain in the TCA.

3 - 컨트롤-데이터 카운트 명시 에러: CD 카운트는 TCA의 끝을 지나는 컨트롤 데이터를 명시한다.3 - Control - Data Count Specification Error: The CD count specifies the control data over the end of the TCA.

4 - TCOB DCW 위치 에러: 제1 TCOB DCW는 TCA 내의 제1 DCW가 아니다;4 - TCOB DCW position error: the first TCOB DCW is not the first DCW in the TCA;

5 - TCOB DCW 중복(duplication) 에러: 하나 이상의 TCOB DCW가 TCA 내에 명시된다;5 - TCOB DCW duplication error: one or more TCOB DCWs are specified within the TCA;

6 - TCOB DCW 다수-카운트(multiple-count) 명시 에러: CD 카운트 및 DCW 카운트는 모두 0이거나 혹은 0이 아니다;6 - TCOB DCW multiple-count explicit error: CD count and DCW count are both zero or not zero;

7 - TCOB DCW 방향 에러: TCOB DCW는 TCA 내에 명시되고 TCH 내의 W 비트는 0이다;7 - TCOB DCW direction error: TCOB DCW is specified in the TCA and the W bit in the TCH is 0;

8 - TCOB DCW 체이닝 에러: TCOB DCW 내의 체인-커맨드 비트는 0이다;8 - TCOB DCW chaining error: The chain-command bit in the TCOB DCW is 0;

9 - TCOB 카운트-명시 에러: TCOB DCW는 0이 아닌 CD 카운트 혹은 4의 배수가 아닌 데이터 카운터를 갖는다;9 - TCOB count - explicit error: TCOB DCW has a non-zero CD count or a data counter that is not a multiple of four;

10 - TTE DCW 위치 에러: TCOB DCW는 명시되지 않았고 TCA 에서 제1 DCW가 아닌 TTE DCW를 만났거나 또는 TCOB DCW는 명시되었고 만났던 제1 TTE DCW는 TCA 내의 제2 DCW가 아니었다;10 - TTE DCW position error: TCOB DCW was not specified and TCA met a TTE DCW other than the first DCW, or TCOB DCW was specified and the first TTE DCW was not the second DCW in the TCA;

11 - TTE DCW 중복 에러: 하나 이상의 TTE DCW를 TCA에서 만났다;11 - TTE DCW Duplicate Error: One or more TTE DCWs encountered in the TCA;

12 - TTE DCW CD-카운트 명시 에러: TTE DCW 내의 컨트롤-데이터 카운트는 0이 아닌 값을 명시한다;12 - TTE DCW CD-count specification error: Control - data count in TTE DCW specifies a non-zero value;

13 - TTE DCW 데이터-카운트 명시 에러: TTE DCW 내의 데이터 카운트는 8보다 적은 값 또는 4의 배수가 아닌 값을 명시한다;13 - TTE DCW data - count specification error: The data count in the TTE DCW specifies a value less than 8 or a value that is not a multiple of 4;

14 - TTE DCW 방향 에러: TTE DCW는 명시되고 TCH 내의 W 비트는 0이다;14 - TTE DCW direction error: TTE DCW is specified and the W bit in TCH is 0;

15 - TTE DCW 체이닝 에러: TTE DCW 내의 체인-커맨드 비트는 0이다; 그리고15 - TTE DCW chaining error: The chain-command bit in the TTE DCW is 0; And

16 - TCAX 명시 에러: TTE DCW 명시되고 다음 중 어느 하나는 참(true)이다:16 - TCAX Explicit error: TTE DCW is specified and one of the following is true:

TCA의 길이는 58 워드 혹은 그 이하이거나, 또는The length of TCA is 58 words or less, or

TCA의 길이는 59 워드이고, TCA 내의 최종 DCW는 컨트롤 데이터를 명시하며, 그리고 컨트롤 데이터의 길이는 59 워드를 넘어서 확장하거나, 또는The length of the TCA is 59 words, the final DCW in the TCA specifies the control data, and the length of the control data extends beyond 59 words, or

TCA의 길이는 60 워드의 최대 길이이고 TCA 내의 최종 워드는 DCW의 제1 워드를 보유한다.
The length of the TCA is the maximum length of 60 words and the last word in the TCA holds the first word of the DCW.

전송- 방향 명시 에러를 위한 예시적 RCQ들은 다음을 포함한다:Exemplary RCQs for transmission-directional clear error include:

1 - 리드-방향 명시 에러: DCW는 입력 동작을 명시하고 TCH 내의 R 비트는 0이다;1 - Lead-direction clear error: DCW specifies the input action and the R bit in TCH is 0;

2 - 라이트-방향 명시 에러: DCW는 출력 동작을 명시하고 TCH 내의 W 비트는 0이다. 주목할 점 - DCW의 명시는 TCOB 혹은 TTE DCW가 명시되고 TCH 내의 W 비트가 0일 때 인지된다;2 - Write-direction clear error: DCW specifies the output operation and the W bit in the TCH is zero. NOTE - The DCW specification is acknowledged when the TCOB or TTE DCW is specified and the W bit in the TCH is zero;

3 - 리드-라이트 충돌(conflict): TCH 내의 R 및 W 비트들 모두 1이고 컨트롤 유닛은 양방향 동작들을 지원하지 않거나 또는 컨트롤 유닛은 양방향을 지원하지만 트랜스포트-커맨드 IU는 BRDL 필드를 보유하지 않거나 또는 R 및 W 비트들 모두가 1이 아니고 트랜스포트-커맨드 IU는 BRDL 필드를 보유한다;
3 - Lead-write conflict: both R and W bits in the TCH are 1 and the control unit does not support bidirectional operations or the control unit supports bidirectional, but the transport-command IU does not have a BRDL field or Both the R and W bits are not one and the transport-command IU holds the BRDL field;

트랜스포트-카운트 명시 에러를 위한 예시적 RCQ들은 다음을 포함한다:Exemplary RCQs for transport-count explicit error include:

1 - 리드-카운트 명시 에러: 리드 동작들을 위해, TCCB 내의 DL 필드는 TCA 내의 DCW들 플러스 패드 바이트들 및 CRC에 의해서 명시된 데이터 바이트들의 총 카운트와 같지 않은 값을 명시한다; 양방향 동작들을 위해, TCCB 내의 BRDL 필드는 TCA 내의 리드 DCW들 플러스 패드 바이트들 및 CRC 에 의해서 명시된 데이터 바이트들의 총 카운트와 같지 않은 값을 명시한다;1 - Lead-count clear error: For read operations, the DL field in the TCCB specifies a value that is not equal to the DCWs plus pad bytes in the TCA and the total count of data bytes specified by the CRC; For bidirectional operations, the BRDL field in the TCCB specifies a value that is not equal to the total count of data bytes specified by the Lead DCWs plus pad bytes in the TCA and the CRC;

2 - 라이트-카운트 명시 에러: TCCB 내의 DL 필드는 TCA 내의 라이트 DCW들 플러스 중간 패드 바이트들, 중간 CRC, 최종 패드 바이트들 및 최종 CRC 바이트들에 의해서 명시된 데이터 바이트들의 총 카운트와 같지 않은 값을 명시하고; 만일 COB가 라이트 데이터 전송의 제1 트랜스포트-데이터 IU 내에 포함된다면, 카운트는 COB, 모든 COB 패드 바이트들 및 COB CRC 바이트들을 포함한다. 만일 TTE DCW가 TCA 내에 존재하면, 카운트는 또한 TCAX 및 TCAX CRC 바이트들을 포함한다.
2 - Write-count explicit error: The DL field in TCCB specifies a value that is not equal to the total count of data bytes specified by the write DCWs plus mid-pad bytes, the intermediate CRC, the final pad bytes, and the final CRC bytes in the TCA and; If the COB is included in the first transport-data IU of the write data transmission, the count includes the COB, all COB pad bytes and COB CRC bytes. If the TTE DCW is present in the TCA, the count also includes TCAX and TCAX CRC bytes.

프로그램 체크는 채널 서브시스템에 의해서 프로그래밍 에러들이 검출될 때 일어난다. 트랜스포트 모드 동작을 위해, 프로그래밍 에러들도 또한 I/O 디바이스(116)에 의해서 검출될 수 있고 프로그램 체크들로서 보고된다. 프로그램 체크 조건은 다음 이유들 중 어느 것 때문일 수 있다:The program check occurs when programming errors are detected by the channel subsystem. For the transport mode operation, programming errors can also be detected by the I / O device 116 and reported as program checks. The program check condition can be due to any of the following reasons:

무효의 TCW 명시(Invalid TCW Specification): 다음 조건들 중 어느 하나가 검출될 때, 무효의 TCW 명시가 인지된다:Invalid TCW Specification: When one of the following conditions is detected, an invalid TCW specification is recognized:

1. TCW 내에서 0들을 위해 체크되는 유보된 필드는 0들을 보유하지 않는다.1. Reserved fields checked for zeros in the TCW do not hold zeros.

2. 0이 아닌 값이 TCW 포맷 필드 내에 명시된다.2. A nonzero value is specified in the TCW format field.

3. TCW 내의 리드 및 라이트 비트들은 모두 1이고, TCW 플래그들 필드의 비트 10은 0이며, FCX-양방향-데이터-전송 퍼실리티는 설치되지 않았거나 혹은 명시된 디바이스는 양방향 데이터 전송들을 지원하지 않는다.3. The read and write bits in the TCW are all 1, the bit 10 of the TCW flags field is 0, the FCX-bidirectional-data-transfer facility is not installed, or the specified device does not support bidirectional data transfers.

4. TCW 플래그들 필드의 비트 10은 0이고 TCW 내의 TCCB-길이 필드는 12보다 적거나 혹은 244보다 큰 길이를 명시한다.4. Bit 10 of the TCW Flags field is 0 and the TCCB-Length field in the TCW specifies a length less than 12 or greater than 244.

5. TCW 플래그들 필드의 비트 10은 1이고 TCW 의 라이트 동작들(W) 비트는 0이거나, TCW의 리드 동작들(R) 비트는 0이거나 혹은 둘 모두 0이다.5. Bit 10 of the TCW flags field is 1 and the write operations (W) bit of the TCW is 0, or the read operations (R) bit of the TCW is 0 or both.

6. TCW 플래그들 필드의 비트 10은 1이고 지정된 서브채널은 트랜스포트 파이버-채널-서비스 요청들에 대해 구성되었던 컨트롤 유닛과 관련이 없다.
6. Bit 10 of the TCW flags field is one and the designated subchannel is not associated with the control unit that was configured for transport fiber-channel-service requests.

TTE DCW가 사용될 때, 디바이스-검출된 프로그램 체크는 다음 조건들 중 어느 하나가 존재할 때 인지된다:When the TTE DCW is used, the device-detected program check is recognized when any of the following conditions exist:

1. TCOB DCW가 명시되지 않았을 때, TTE DCW는 TCA에서 제1 DCW가 아니다. TCOB DCW가 명시되었을 때, TTE DCW는 TCA에서 제2 DCW가 아니다.1. When the TCOB DCW is not specified, the TTE DCW is not the first DCW in the TCA. When the TCOB DCW is specified, the TTE DCW is not the second DCW in the TCA.

2. TTE DCW가 명시되고 라이트 동작은 명시되지 않는다(즉, TCW 내의 W 비트는 0이다)2. TTE DCW is specified and write operation is not specified (ie, the W bit in TCW is zero)

3. TTE DCW 내의 체인-커맨드 플래그는 0이다.3. The chain-command flag in the TTE DCW is zero.

4. 1 이상의 TTE DCW가 명시된다.4. One or more TTE DCWs are specified.

5. TTE DCW 내의 컨트롤-데이터-카운트 필드는 0을 보유하지 않는다.5. The control-data-count field in the TTE DCW does not hold zero.

6. 카운트 필드는 8 이하 혹은 4의 배수가 아닌 값을 보유한다.6. The count field holds a value that is not less than 8 or a multiple of four.

7. 아래의 것 중 어느 하나는 TCA를 위해 참(true)이다:7. One of the following is true for TCA:

TCA는 트랜스포트-커맨드 DCW가 아닌 DCW는 적어도 하나조차 보유하지 않는다. The TCA does not have at least one DCW other than the transport-command DCW.

TCA는 트랜스포트-커맨드 DCW들이 아닌 하나 혹은 그 이상의 DCW들을 보유하고 TCA의 최종 DCW 내의 체인-커맨드 플래그는 0이다.
The TCA holds one or more DCWs that are not transport-command DCWs and the chain-command flag in the final DCW of the TCA is zero.

TTE DCW가 사용되고 추가의 TCMI 및/또는 출력 데이터가 TCAX 다음에 올 때, 다음은 참이 되어야 한다; 그렇지 않으면, 디바이스-검출된 프로그램 체크가 인지될 수 있다:When TTE DCW is used and additional TCMI and / or output data come after TCAX, the following should be true; Otherwise, the device-detected program check can be recognized:

TCW 내의 출력-TIDA 플래그(플래그들 비트 7)는 1이어야 한다; 또는 The output-TIDA flag (flags bit 7) in the TCW shall be one; or

TIDW들이 TCAX의 전송을 위해서 그리고 데이터의 전송을 위해서 사용되었을 때, 삽입-CBC컨트롤은 TCAX를 전송하기 위해 사용된 최종의 혹은 유일한 TIDAW 내에서 1로 세트 되어야 한다. TIDW들이 유일한 TCAX의 전송을 위해서 사용되었을 때, 삽입-CBC컨트롤이 최종의 혹은 유일한 TIDAW 내에서 반드시 세트될 필요는 없다.
When TIDWs are used for transmission of TCAX and for transmission of data, the embedded -CBC control shall be set to 1 in the last or only TIDAW used to transmit the TCAX. When TIDWs are used for the transmission of a unique TCAX, the embedded -CBC control does not necessarily have to be set in the final or unique TIDAW.

TCA의 처리 동안, 다음 조건들 중 어느 하나가 검출되었을 때 TCCB 컨텐트 에러가 인지될 수 있다:During the processing of the TCA, a TCCB content error may be detected when any of the following conditions are detected:

1. 만난 제1 TCOB DCW는 TCA 내의 제1 DCW가 아니다;1. The first TCOB DCW met is not the first DCW in the TCA;

2. 제2 TCOB DCW를 TCA에서 만나게 된다.2. The second TCOB DCW will meet at the TCA.

3. TCAH 내의 W 비트가 0일 때 TCOB DCW를 TCA에서 만나게 된다.3. When the W bit in TCAH is 0, the TCOB DCW is encountered at the TCA.

4. TCOB DCW는 체이닝 플래그 세트를 갖지 않는다;4. The TCOB DCW does not have a chaining flag set;

5. CD카운트와 데이터 카운트는 모두 0이면 TCOB DCW를 만나게 된다;5. If the CD count and data count are all 0, the TCOB DCW is encountered;

6. CD카운트와 데이터 카운트는 모두 0이 아니면 TCOB DCW를 만나게 된다;6. If neither the CD count nor the data count is equal to zero, the TCOB DCW is encountered;

7. CD카운트가 0이고 데이터 카운트가 4의 배수가 아니면 TCOB DCW를 만나게 된다;7. If the CD count is 0 and the data count is not a multiple of 4, then the TCOB DCW is encountered;

8. 데이터 카운트가 0이고 CD 카운트가 4의 배수가 아니면 TCOB DCW를 만나게 된다;8. If the data count is 0 and the CD count is not a multiple of 4, then the TCOB DCW is encountered;

9. TCOB DCW는 명시되지 않았고 TTE DCW는 TCA에서 제1 DCW가 아니거나 또는 TCOB DCW는 명시되었고 TTE DCW는 TCA에서 제2 DCW가 아니다;9. The TCOB DCW is not specified and the TTE DCW is not the first DCW in the TCA or the TCOB DCW is specified and the TTE DCW is not the second DCW in the TCA;

10. TCAH 내의 W 비트가 0일 때 TTE DCW를 TCA에서 만나게 된다;10. When the W bit in TCAH is zero, the TTE DCW is encountered at the TCA;

11. TTE DCW는 체이닝 플래그 세트를 갖고 있지 않다;11. TTE DCW does not have a set of chaining flags;

12. 제2 TTE DCW를 TCA에서 만나게 된다; 12. The second TTE DCW is encountered at the TCA;

13. CD 카운트가 0이 아닐 때 TTE DCW를 만나게 된다;13. When the CD count is not zero, the TTE DCW is encountered;

14. 데이터 카운트가 0이거나 혹은 4의 배수가 아닌 때 TTE DCW를 만나게 된다;14. When the data count is zero or not a multiple of four, the TTE DCW is encountered;

15. TTE DCW는 명시되면 다음 중 어느 하나는 참이다: TCA의 길이는 58 워드 혹은 그보다 적다; TCA의 길이는 59 워드이고, TCA 내의 최종 DCW는 컨트롤 데이터를 명시하며 그리고 컨트롤 데이터의 길이는 59 워드를 초과하여 확장된다; 또는 TCA의 길이는 최대 길이가 60 워드이고 그리고 TCA 내의 최종 워드는 DCW의 제1 워드를 보유한다; 15. TTE DCW specifies that either of the following is true: the length of the TCA is 58 words or less; The length of the TCA is 59 words, the final DCW in the TCA specifies the control data, and the length of the control data extends beyond 59 words; Or TCA has a maximum length of 60 words and the last word in the TCA holds the first word of the DCW;

16. DCW는 컨트롤 데이터를 요구하는 커맨드를 보유하고 CD 카운트 필드는 0이거나 혹은 TCA의 끝을 지나는 데이터를 명시하는 값을 보유한다;16. The DCW has a command that requests control data and the CD count field has a value of 0 or a value that specifies the data that passes the end of the TCA;

17. DCW는 0이 아닌 CD 카운트 필드를 보유하고 커맨드는 컨트롤 데이터가 제공되지 않도록 한다;17. DCW has a non-zero CD count field and the command prevents control data from being provided;

18. 라이트 동작 동안, 디바이스는 리드 데이터 전송을 수행하도록 시도한 TCA 내의 커맨드를 만났다.18. During a write operation, the device encountered a command in the TCA that attempted to perform a read data transfer.

19. 리드 동작 동안, 디바이스는 라이트 데이터 전송을 수행하도록 시도한 TCA 내의 커맨드를 만났다;19. During a read operation, the device encountered a command in the TCA that attempted to perform a write data transfer;

20. CC 비트는 DCW에서 0이고 3 이상의 사용되지 않은 바이트들이 TCA에 남는다;20. The CC bit is 0 in the DCW and 3 or more unused bytes remain in the TCA;

21. CC 비트는 DCW에서 1이고 다음 DCW 위치는 TCA 표시의 끝으로부터 8 바이트보다 적게 되도록 결정되며 그리고 TCAX는 제공되지 않았다. 또는 TCAX는 제공 되었고; 다음 DCW 위치는 TCA 표시의 끝으로부터 8 바이트보다 적게 되도록 결정된다; 21. The CC bit is set to 1 in DCW and the next DCW position is determined to be less than 8 bytes from the end of the TCA indication, and TCAX is not provided. Or TCAX has been provided; The next DCW position is determined to be less than 8 bytes from the end of the TCA indication;

22. 리드 혹은 양방향 동작을 위해, TCA 내의 리드 DCW가 진행 중(current)일 때, 모든 이전의 리드 DCW들 및 현재의 DCW 플러스 모든 패드와 CRC 바이트들을 위한 데이터 카운트들의 합계는 TCCB 내의 DL 필드를 초과하거나 혹은, 양방향 동작들을 위해, TCCB 내의 BRDL 필드를 초과한다;22. For read or bidirectional operation, when the lead DCW in the TCA is current, the sum of all previous read DCWs and data counts for the current DCW plus all pads and CRC bytes is the DL field in the TCCB Exceeds or exceeds the BRDL field in the TCCB for bi-directional operations;

23. 리드 혹은 양방향 동작을 위해, TCA 내의 최종 DCW가 진행 중(current)일 때, 모든 리드 DCW들 플러스 모든 패드와 CRC 바이트들을 위한 데이터 카운트들의 합계는 TCCB 내의 DL 필드와 같지 않거나 혹은, 양방향 동작들을 위해, TCCB 내의 BRDL 필드와 같지 않다;23. For read or bidirectional operation, when the final DCW in the TCA is current, the sum of all lead DCWs plus data counts for all pads and CRC bytes is not equal to the DL field in the TCCB, , It is not the same as the BRDL field in the TCCB;

24. 라이트 혹은 양방향 동작을 위해, TCA 내의 DCW가 진행 중(current)일 때, 모든 라이트 DCW들 플러스 모든 패드와 CRC 바이트들(모든 중간 패드와 CRC 바이트들을 포함하는), 그리고 만일 COB가 트랜스포트-데이터 IU에 포함된다면, COB, COB패드 및 COB CRC바이트들, 그리고 만일 TCAX가 존재한다면, TCAX, TCAX 패드 및 TCAX CRC 바이트를 위한 데이터 카운트들의 합계는 TCCB 내의 DL 필드를 초과한다; 또는 24. For write or bidirectional operation, when the DCW in the TCA is current, all write DCWs plus all pad and CRC bytes (including all intermediate pads and CRC bytes), and if the COB is a transport The sum of the data counts for the COB, COB pad and COB CRC bytes, and if TCAX is present, for the TCAX, TCAX pad and TCAX CRC bytes, if included in the data IU, exceeds the DL field in the TCCB; or

25. 라이트 혹은 양방향 동작을 위해, TCA 내의 DCW가 진행 중(current)일 때, 모든 라이트 DCW들 플러스 모든 패드와 CRC 바이트들(모든 중간 패드와 CRC 바이트들을 포함하는), 그리고 만일 COB가 트랜스포트-데이터 IU에 포함된다면, COB, COB패드 및 COB CRC 바이트들, 그리고 만일 TCAX가 존재한다면, TCAX, TCAX 패드 및 TCAX CRC 바이트들을 위한 데이터 카운트들의 합계는 TCCB 내의 DL 필드와 같지 않다.
25. For write or bidirectional operation, when the DCW in the TCA is current, all write DCWs plus all pad and CRC bytes (including all intermediate pads and CRC bytes), and if the COB is a transport If included in the data IU, the sum of the data counts for the COB, COB pad and COB CRC bytes, and if TCAX is present, for the TCAX, TCAX pad and TCAX CRC bytes is not the same as the DL field in the TCCB.

한 실시 예에서, 커맨드 모드 혹은 트랜스포트 모드 동작을 수행하기 전에, 채널 서브시스템(114)와 컨트롤 유닛들(118) 및/또는 디바이스들(116) 사이에 링크들이 설정된다. 하나 혹은 그 이상의 컨트롤 유닛들과 물리적 연결을 갖는 I/O 시스템 내의 각 채널(128)은 고유의 식별자(a "N_Port ID")를 갖는 "N_포트"라 할 수 있다. 마찬가지로, 각각의 컨트롤 유닛(118)도 또한 관련된 N_포트_ID를 갖는 N_포트라 할 수 있다. 채널 (128)과 컨트롤 유닛(118) 모두는, 각각, 다수의 채널 이미지들(channel images) 혹은 컨트롤 유닛 이미지들을 포함할 수 있다. 각각의 N_포트는 초기화와 로그인 절차의 수행 동안 할당되는 주소 식별자를 포함한다. 명시적 N_포트 로그인(Explicit N_Port login)이 초기화 프로세스 동안 N_포트 로그인(PLOGI) 확장된 링크 서비스에 의해서 수행될 수 있다. N_포트가 다른 N_포트와 함께 N_포트 로그인을 수행했을 때, 그 N_포트는 다른 N_포트와 함께 로그인 된다고 한다.
In one embodiment, links are established between the channel subsystem 114 and the control units 118 and / or devices 116 prior to performing the command mode or the transport mode operation. Each channel 128 in an I / O system having physical connections with one or more control units may be referred to as an "N_Port" having a unique identifier (a "N_Port ID"). Likewise, each control unit 118 may also be an N_Port with associated N_Port_ID. Both the channel 128 and the control unit 118 may include a plurality of channel images or control unit images, respectively. Each N_Port contains an address identifier assigned during initialization and execution of the login procedure. Explicit N_Port login may be performed by the N_Port Login (PLOGI) extended link service during the initialization process. When an N_Port performs an N_Port login with another N_Port, the N_Port is said to be logged in with another N_Port.

한 실시 예에서, 채널 서브시스템과 컨트롤 유닛들 사이의 링크 초기화가 프로세스 로그인(PRLI) 확장된 링크 서비스(ELS) 프로토콜을 사용하여 수행된다. PRLI ELS 요청 및 응답의 포맷을 포함하는, PRLI ELS의 일반적인 실시 예들은 2008년 6월 26일 발표된, T11 프로젝트 2103-D, 리비전 2.00의, "파이버 채널: 링크 서비스들(FC-LS-2)"에 주어져 있으며, 이 문헌은 아래 섹션들에서 정의된 FC-SB-4를 위한 특정 세팅들(specific settings)과 함께, 전체로서 여기에 참조로 포함된다.
In one embodiment, link initialization between the channel subsystem and the control units is performed using a process login (PRLI) extended link service (ELS) protocol. Common embodiments of PRLI ELS, including the format of the PRLI ELS request and response, are described in "Fiber Channel: Link Services (FC-LS-2) " of T11 project 2103-D, Rev. 2.00, ), Which is incorporated herein by reference in its entirety, together with specific settings for FC-SB-4 as defined in the following sections.

PRLI 절차 동안, PRLI를 지원하는 채널(128)은 한 요청을 프로세스 로그인 ELS를 또한 지원하는 자신의 구성 내에 있는 각각의 컨트롤 유닛(118)에 송신하는데, 이는 컨트롤 유닛(118)이 트랜스포트-모드 동작들을 지원하는지를 결정하기 위함이다. 한 실시 예에서, PRLI 요청이 논리적 경로들이 설정되기 전 채널 초기화 동안 송신되고 또한 프로세스 로그아웃(PRLO)의 결과로서 송신될 수도 있다. PRLI ELS는 채널(128)과 컨트롤 유닛(118) 사이에 프로세스 로그인 서비스 파라미터들을 교환하기 위해 사용된다. 논리적 경로들이 컨트롤 유닛에 설정되어 있을 때 PRLI ELS 요청은 채널에 의해서 컨트롤 유닛에 송신될 수 있고 모든 설정된 논리적 경로들에 적용된다. 파라미터들은 채널과 컨트롤 유닛 사이에서 PRLI 요청과 PRLI 응답을 통해서 교환될 수 있다.
During the PRLI procedure, the channel 128 supporting PRLI sends a request to each control unit 118 in its configuration that also supports the process login ELS, To determine if it supports these operations. In one embodiment, a PRLI request may be sent during channel initialization before the logical paths are established and also as a result of a process logout (PRLO). The PRLI ELS is used to exchange process login service parameters between the channel 128 and the control unit 118. When logical paths are set in the control unit, a PRLI ELS request can be sent to the control unit by the channel and applied to all set logical paths. Parameters can be exchanged between the PRLI request and the PRLI response between the channel and the control unit.

한 실시 예에서, 만일 컨트롤 유닛이 채널에서 이미 발효 중인 프로세스 로그인을 위한 서비스 파리미터들을 수정하려는 PRLI ELS 요청을 수신한다면, 컨트롤 유닛은 링크 서비스 리젝트(a link service reject: LS_RJT)로 PRLI ELS 요청에 응답한다. 이 LS_RJT 응답은 "이 시기에 커맨드 요청을 수행하는 것은 불가능"이라는, 이유 코드 hex'09'로 송신된다. 컨트롤 유닛이 LS_RJT를 송신한 후, 컨트롤 유닛은 프로세스 로그아웃(PRLO) ELS 요청을 채널에 송신하여 채널로부터의 PRLI ELS 요청의 재시도(retry)가 성공적으로 수행되도록 할 것이다.
In one embodiment, if the control unit receives a PRLI ELS request to modify service parameters for a process login already in effect on the channel, the control unit sends a PRLI ELS request with a link service reject (LS_RJT) Reply. This LS_RJT response is sent with reason code hex'09 ', which means "it is not possible to make a command request at this time". After the control unit sends an LS_RJT, the control unit will send a process logout (PRLO) ELS request to the channel to cause a retry of the PRLI ELS request from the channel to be performed successfully.

도 18을 참조하면, PRLI 요청은 서비스 파리미터 페이지를 포함하는데, 이는 서비스 파리미터들을 설정하기 위해 사용되는 다양한 필드들을 포함한다. 예를 들어, 서비스 파라미터 페이지(400)은 타입 코드 필드(402)를 포함할 수 있으며, 이 필드는 트랜스포트 모드 혹은 FC-4 프로토콜을 식별한다(예를 들어, SB-4 프로토콜을 표시하기 위해 hex'1B'로 세트된다). 타입코드 확장 필드(404)(예를 들어, 워드 0의 바이트 1)은 0으로 세트 된다. FC-LS-2 플래그들 필드(406)(예를 들어, 워드 0의 비트들 16-19)은 채널에 의해서 다음과 같이 세트 될 수 있다: Referring to FIG. 18, a PRLI request includes a service parameter page, which includes various fields used to set service parameters. For example, the service parameter page 400 may include a type code field 402, which identifies the transport mode or FC-4 protocol (e.g., to indicate the SB-4 protocol) lt; 1 > B '). The type code extension field 404 (e.g., byte 1 of word 0) is set to zero. The FC-LS-2 flags field 406 (e.g., bits 16-19 of word 0) may be set by the channel as follows:

비트 16 - 오리지네이터 프로세스 관련자 유효성(Originator Process Associator Validity): 이 비트는 채널에 의해서 0으로 세트 되고 컨트롤 유닛에 의해서 무시된다;Bit 16 - Originator Process Associator Validity: This bit is set to 0 by the channel and ignored by the control unit;

비트 17 - 리스폰더 프로세스 관련자 유효성(Responder Process Associator Validity): 이 비트는 채널에 의해서 0으로 세트 되고 컨트롤 유닛에 의해서 무시된다;Bit 17 - Responder Process Associator Validity: This bit is set to 0 by the channel and ignored by the control unit;

비트 18 - 설정 이미지 쌍(Establish Image Pair): 이 비트는 채널에 의해서 0으로 세트 되고 컨트롤 유닛에 의해서 무시된다; 그리고Bit 18 - Established Image Pair: This bit is set to 0 by the channel and ignored by the control unit; And

비트 19 - 유보됨: 이 비트는 채널에 의해서 0으로 세트 되고 컨트롤 유닛에 의해서 무시된다.
Bit 19 - Reserved: This bit is set to 0 by the channel and ignored by the control unit.

서비스 파라미터 페이지는 채널에 의해서 0으로 세트되는 오리지네이터 프로세스 관련자 필드(408)(예를 들어, 워드 1)와 리스폰더 프로세스 관련자 필드(410)(예를 들어, 워드 2)와 같은 추가의 필드들을 포함할 수 있다. 최대 개시 지연 타임 필드(Maximum Initiation Delay Time field)(412) (예를 들어, 워드 3의 바이트 0)는 컨트롤 유닛이 프로세스 로그아웃(PRLO) 요청에서 개시-지연 타임(the initiation-delay time)으로서 세트 할 수 있는 최대 값을 초 단위로(in units of seconds) 명시하는 2진 정수(a binary integer)를 보유한다. PRLO 요청은 채널 또는 컨트롤 유닛에 의해서 사용되어 채널과 컨트롤 유닛 사이의 트랜스포트 모드 동작을 종료시킨다. 최대 개시지연 타임 값은 일반적으로 채널이 호스트 시스템을 방해하지 않고 새로운 I/O 동작들을 개시하는 것을 지연시킬 수 있는 타임의 양에 기초한다.
The service parameter page may include additional fields such as the originator process stakeholder field 408 (e.g., word 1) and the responder process stakeholder field 410 (e.g., word 2) that are set to zero by the channel Lt; / RTI > The Maximum Initiation Delay Time field 412 (e.g., byte 0 of word 3) is set by the control unit as the initiation-delay time in a process logout (PRLO) request It holds a binary integer that specifies the maximum value that can be set in units of seconds. The PRLO request is used by the channel or control unit to terminate the transport mode operation between the channel and the control unit. The maximum start delay time value is typically based on the amount of time that the channel is able to delay starting the new I / O operations without interfering with the host system.

FC-SB-4 플래그들 필드(414)(예를 들어, PRLI 요청 페이지의 워드 3의 바이트 3)은 아래에서 기술되는 하나 혹은 그 이상의 플래그들을 포함한다:The FC-SB-4 flags field 414 (e.g., byte 3 of word 3 of the PRLI request page) contains one or more flags described below:

0 - 트랜스포트 모드 지원됨. 비트 0이 0으로 세트 될 때, 채널은 트랜스포트-모드 동작들을 지원하지 않는다. 비트 0이 1로 세트 될 때, 채널은 트랜스포트-모드 동작들을 지원한다. 0 - Transport mode supported. When bit 0 is set to zero, the channel does not support transport-mode operations. When bit 0 is set to 1, the channel supports transport-mode operations.

1- 유보됨.1 - Reserved.

2 - DCW 부정확한 길이(IL) 퍼실리티 지원됨. 예를 들어, IL 플래그가 활성(active) 일 때(예를 들어, 비트 2가 1로 세트 될 때), DCW IL 퍼실리티는 채널(128)에 의해서 지원된다. 비트 2가 0으로 세트 될 때, DCW IL 퍼실리티는 채널(128)에 의해서 지원되지 않는다. DCW IL 퍼실리티는 서프레스-길이 표시자(SLI) 플래그(214) 및 부정확한-길이 플래그(338)을 위한 지원을 포함한다. 트랜스포트 모드-지원된 비트(비트 0)이 0일 때, 비트 2는 0으로 세트 될 것이다.2 - DCW Incorrect Length (IL) Facility Supported. For example, when the IL flag is active (e.g., when bit 2 is set to one), the DCW IL facility is supported by channel 128. When bit 2 is set to zero, the DCW IL facility is not supported by channel 128. The DCW IL facility includes support for the servo-length indicator (SLI) flag 214 and the incorrect-length flag 338. Transport mode - When the supported bit (bit 0) is 0, bit 2 will be set to 0.

5 - 양방향 데이터 전송 지원됨. 양방향 전송 표시가 활성일 때(예를 들어, 비트 5가 1로 세트 될 때), 양방향 데이터 전송이 채널(128)에 의해서 지원된다. 비트 5가 0으로 세트 될 때, 양방향 데이터 전송이 채널에 의해서 지원되지 않는다. 이 비트는 트랜스포트 모드-지원된 비트가 1일 때만 오직 의미를 갖는다.5 - Two-way data transmission supported. When the bi-directional transmission indication is active (e.g., when bit 5 is set to 1), bidirectional data transmission is supported by channel 128. When bit 5 is set to zero, bidirectional data transmission is not supported by the channel. This bit has only meaning when it is in transport mode - the supported bit is one.

7 - 제1 전송 준비 디스에이블 지원됨(First Transfer Ready Disabled Supported). 비트 7이 1로 세트 될 때, 제1-전송-준비-디스에이블 동작이 채널에 의해서 지원된다. 비트 7이 0으로 세트 될 때, 제1-전송-준비-디스에이블 동작이 채널에 의해서 지원되지 않는다. 트랜스포트-모드-지원된 비트(비트 0)가 0일 때 비트 7은 0으로 세트 될 것이다.
7 - First Transfer Ready Disabled Supported. When bit 7 is set to 1, a first-transfer-ready-disable operation is supported by the channel. When bit 7 is set to zero, the first-transfer-ready-disable operation is not supported by the channel. Transport-Mode - Bit 7 will be set to 0 when the supported bit (bit 0) is zero.

채널 및 컨트롤 유닛 모두가 제1-전송-준비의 디스에이블(first-transfer-ready disabled)을 위한 지원을 표시할 때, 채널이 제1 트랜스포트-데이터 IU를 컨트롤 유닛으로부터 전송-준비 IU를 대기할 필요 없이 컨트롤 유닛에 송신할 수 있도록, 트랜스포트-모드에서 라이트 데이터 전송은 제1-전송-준비의 디스에이블이 발효 중일 때 수행된다. 만일 채널 혹은 컨트롤 유닛이 제1-전송 준비의 디스에이블을 지원하지 않는다면, 제1-전송-준비의 디스에이블은 트랜스포트 모드 동작들을 위해 발효 중에 있지 않다.
When both the channel and the control unit indicate support for first-transfer-ready disabled, the channel transmits the first transport-data IU from the control unit. In the transport mode, the write data transfer is performed when the disablement of the first-transfer-preparation is in effect so that it can be transmitted to the control unit without having to do so. If the channel or control unit does not support disabling of the first transmission preparation, the disable of the first transmission-preparation is not in effect for the transport mode operations.

도 19를 참조하면, 한 실시 예에서, PRLI 응답은 PRLI 수용 서비스 파라미터 페이지(Accept Service Parameter Page)(420)을 포함하는데, 이 수용 서비스 파리미터 페이지는 트랜스포트 모드 혹은 FC-4 프로토콜을 식별하는(예를 들어, SB-4 프로토콜을 표시하기 위해 hex'1B'로 세트 된다) 타입 코드 필드(402)와 0으로 세트 되는 타입코드 확장 필드(404)(예를 들어, 워드 0의 바이트 1) 같은 필드들 포함할 수 있다. FC-LS-2 플래그들 필드(406)(예를 들어, 워드 0의 비트 16-19)은 채널에 의해서 다음과 같이 세트 될 수 있다: Referring to FIG. 19, in one embodiment, the PRLI response includes a PRLI Accept Service Parameter Page 420 that identifies the transport mode or FC-4 protocol (For example, set to hex'1B 'to indicate the SB-4 protocol) type code field 402 and a type code extension field 404 (e.g., byte 0 of word 0) that is set to zero Fields. The FC-LS-2 flags field 406 (e.g., bits 16-19 of word 0) may be set by the channel as follows:

비트 16 - 오리지네이터 프로세스 관련자 유효성(Originator Process Associator Validity): 이 비트는 컨트롤 유닛에 의해서 0으로 세트 되고 채널에 의해서 무시된다;Bit 16 - Originator Process Associator Validity: This bit is set to 0 by the control unit and ignored by the channel;

비트 17 - 리스폰더 프로세스 관련자 유효성(Responder Process Associator Validity): 이 비트는 컨트롤 유닛에 의해서 0으로 세트 되고 채널에 의해서 무시된다;Bit 17 - Responder Process Associator Validity: This bit is set to 0 by the control unit and ignored by the channel;

비트 18 - 설정 이미지 쌍(Establish Image Pair): 이 비트는 컨트롤 유닛에 의해서 0으로 세트 되고 채널에 의해서 무시된다; 그리고Bit 18 - Established Image Pair: This bit is set to 0 by the control unit and ignored by the channel; And

비트 19 - 유보됨: 이 비트는 컨트롤 유닛에 의해서 0으로 세트 되고 채널에 의해서 무시된다.
Bit 19 - Reserved: This bit is set to 0 by the control unit and ignored by the channel.

응답 코드 필드(422)(예를 들어, 워드 0의 비트 20-23)는 PRLI 요청의 결과를 표시하는 2진 정수(a binary integer)를 보유한다. 응답 코드 값들의 의미들은 FC-LS-2에 의해서 정의된다. 제1 버스트 사이즈 필드(First Burst Size field)(424)(예를 들어, 워드 3의 바이트 0-1)는 제1-전송-준비의 디스에이블이 채널 및 컨트롤 유닛 모두에 의해서 지원될 때 라이트 데이터 전송을 위해 제1 트랜스포트-데이터 IU에 송신되도록 허락된 데이터의 최대 양(예를 들어, 4k 바이트의 단위로)을 명시하는 2진 정수를 보유한다. 0의 값은 제1 버스트 사이즈 한계(first burst size limit)가 없음을 표시한다. 제1-버스트 사이즈 필드(424)는 제1-전송-준비의 디스에이블을 지원하는 모든 컨트롤 유닛들에 의해서 구현될 수 있다.
The response code field 422 (e.g., bits 20-23 of word 0) holds a binary integer indicating the result of the PRLI request. Meanings of response code values are defined by FC-LS-2. A first Burst Size field 424 (e.g., bytes 0-1 of word 3) indicates that the disable of the first-transfer-preparation is supported by both the channel and the control unit, Holds a binary integer specifying the maximum amount of data allowed to be transmitted to the first Transport-Data IU for transmission (e.g., in units of 4k bytes). A value of 0 indicates that there is no first burst size limit. The first-burst size field 424 may be implemented by all control units that support disabling of the first-transfer-preparation.

PRLI 수용 서비스 파라미터 페이지(PRLI Accept Service Parameter Page)(420)은 또한 FC-SB-4 플래그들 필드(414)(예를 들어, 워드 3의 바이트 3)를 포함할 수 있는데, 이 필드는 아래에서 기술되는 정의된 하나 혹은 그 이상의 플래그들을 포함한다:The PRLI Accept Service Parameter Page 420 may also include an FC-SB-4 flags field 414 (e.g., byte 3 of word 3) Includes one or more defined flags as described:

0 - 트랜스포트 모드 지원됨. 비트 0이 0으로 세트 될 때, 컨트롤 유닛(118)은 트랜스포트-모드 동작들을 지원하지 않는다. 비트 0이 1로 세트 될 때, 컨트롤 유닛(118)은 트랜스포트-모드 동작들을 지원한다. 0 - Transport mode supported. When bit 0 is set to zero, control unit 118 does not support transport-mode operations. When bit 0 is set to 1, control unit 118 supports transport-mode operations.

2 - DCW 부정확한 길이(IL) 퍼실리티 지원됨. 비트 2가 1로 세트 될 때, DCW-부정확한-길이(IL) 퍼실리티는 컨트롤 유닛(118))에 의해서 지원된다. 비트 2가 0으로 세트 될 때, DCW IL 퍼실리티는 컨트롤 유닛(118)에 의해서 지원되지 않는다. DCW-부정확한-길이 퍼실리티는 SLI 플래그(214) 및 부정확한-길이 플래그(338)을 위한 지원을 포함한다. 트랜스포트 모드-지원된 비트(비트 0)이 0일 때, 비트 2는 0으로 세트 될 것이다.2 - DCW Incorrect Length (IL) Facility Supported. When bit 2 is set to one, the DCW-incorrect-length (IL) facility is supported by the control unit 118). When bit 2 is set to zero, the DCW IL facility is not supported by the control unit 118. The DCW-incorrect-length facility includes support for the SLI flag 214 and the incorrect-length flag 338. Transport mode - When the supported bit (bit 0) is 0, bit 2 will be set to 0.

5 - 양방향 데이터 전송 지원됨. 양방향 데이터 전송 표시가 활성일 때(예를 들어, 비트 5가 1로 세트 될 때), 양방향 데이터 전송이 컨트롤 유닛(118)에 의해서 지원된다. 비트 5가 0으로 세트 될 때, 양방향 데이터 전송이 컨트롤 유닛(118)에 의해서 지원되지 않는다. 이 비트는 트랜스포트 모드-지원된 비트가 1일 때만 오직 의미를 갖는다.5 - Two-way data transmission supported. When bidirectional data transfer indication is active (e.g., when bit 5 is set to 1), bi-directional data transfer is supported by control unit 118. When bit 5 is set to 0, bidirectional data transmission is not supported by the control unit 118. This bit has only meaning when it is in transport mode - the supported bit is one.

7 - 제1 전송 준비 디스에이블 지원됨(First Transfer Ready Disabled Supported). 비트 7이 1로 세트 될 때, 제1-전송-준비-디스에이블이 컨트롤 유닛에 의해서 지원된다. 비트 7이 0으로 세트 될 때, 제1-전송-준비-디스에이블 되는 동작이 컨트롤 유닛에 의해서 지원되지 않는다. 트랜스포트-모드-지원된 비트(비트 0)가 0일 때 비트 7은 0으로 세트 될 것이다.
7 - First Transfer Ready Disabled Supported. When bit 7 is set to 1, the 1-transfer-ready-disable is supported by the control unit. When bit 7 is set to zero, the first-transfer-ready-disabled operation is not supported by the control unit. Transport-Mode - Bit 7 will be set to 0 when the supported bit (bit 0) is zero.

따라서, 채널 서브시스템 및 컨트롤 유닛은 양방향 데이터 전송들을 위한 그들 각각의 지원에 관하여 서로에게 표시들을 제공하기 위해 PRLI 메시지와 같은 로그인 메시지들을 사용할 수 있다. 채널 서브시스템 및/또는 컨트롤 유닛은 또한 호스트 시스템(예를 들어, OS (110))에도 표시들을 제공할 수 있다. 예를 들어, 컨트롤 유닛이 양방향 데이터 전송들을 지원한다는 표시가 컨트롤 유닛으로부터 OS에 제공될 수 있다. 한 실시 예에서, 채널 서브시스템은, 양방향 데이터 전송들을 지원하는 능력을 포함하여, 채널 서브시스템 및/또는 컨트롤 유닛 능력들의 표시를 제공한다. 예를 들어, 채널 서브시스템은 OS로부터의 명령에 응답하여 능력 정보를 제공할 수 있다.
Thus, the channel subsystem and control unit can use login messages such as PRLI messages to provide indications to each other about their respective support for bi-directional data transmissions. The channel subsystem and / or control unit may also provide indications to the host system (e.g., OS 110). For example, an indication may be provided from the control unit to the OS that the control unit supports bidirectional data transmissions. In one embodiment, the channel subsystem provides an indication of channel subsystem and / or control unit capabilities, including the ability to support bidirectional data transmissions. For example, the channel subsystem may provide capability information in response to commands from the OS.

능력 표시의 예는 도 20 및 21에 도시된다. 도 20에서 도시한 바와 같이, 채널 서브시스템은 채널 경로 설명 블록(a channel path description block) (500)을 OS 명령(예를 들어, STORE CHANNEL PATH DESCRIPTION 명령)에 응답하여 OS에 송신할 수 있다. 채널 경로 설명 블록(500)은 채널 경로 식별자(CHPID) 필드(502), 디스크립터(descriptor) (504) 및 채널 설명 특정 데이터(channel description specific data: CDSD) 필드(506)과 같은 필드들을 포함한다. 도 21을 참조하면, 예시적 CDSD 필드(506)은 채널 경로 설명 블록(500)의 한 워드이고, 최대 데이터 길이(예를 들어, TCW/TCCB를 위해 지원되는 최대 데이터 길이) 필드(508)을 포함한다. 예를 들어, (00 O1h)에 세트되는 CDSD 필드(506)의 비트 0-15는 TCW/TCCB 당 최대 바이트들이 64k임을 의미한다. 확장 지원 필드 (510) (예를 들어, 비트 31)은 FCX 프로토콜과 같은 프로토콜 혹은 프로토콜 확장을 위한 지원을 표시한다. 추가 필드(512)(예를 들어, 비트들 16-30)는 채널 서브시스템 능력들에 관한 정보를 포함할 수 있다. 예를 들어, 필드(512)의 BIDI 비트(예를 들어, 비트 28)는 양방향 데이터 전송들을 위한 채널 서브시스템 지원을 표시한다.
Examples of capability indications are shown in Figures 20 and 21. As shown in FIG. 20, the channel subsystem may transmit a channel path description block 500 to the OS in response to an OS command (for example, a STORE CHANNEL PATH DESCRIPTION command). The channel path description block 500 includes fields such as a channel path identifier (CHPID) field 502, a descriptor 504, and a channel description specific data (CDSD) field 506. 21, the exemplary CDSD field 506 is a word in the channel path description block 500 and indicates the maximum data length (e.g., the maximum data length supported for TCW / TCCB) field 508 . For example, bits 0-15 of the CDSD field 506 set to (00O1h) means that the maximum bytes per TCW / TCCB are 64k. The extended support field 510 (e.g., bit 31) indicates support for protocol or protocol extensions, such as the FCX protocol. Additional fields 512 (e.g., bits 16-30) may include information regarding channel subsystem capabilities. For example, the BIDI bit (e.g., bit 28) of field 512 indicates channel subsystem support for bi-directional data transmissions.

더 상세한 설명은 2008년 2월 14일 미국 특허 출원 번호 12/030,912로 출원되어, 미국 특허 공개 번호 2009/0210557로서 공개된, "채널 경로의 확장된 능력의 결정(Determining Extended Capability of a Channel Path)"에 제공되어 있다.
A more detailed description is given in US patent application Ser. No. 12 / 030,912 filed February 14, 2008, entitled "Determining Extended Capability of a Channel Path ", published as US Patent Publication No. 2009/0210557, "

예시적 실시 예들의 기술적 효과들 및 장점들은, TCCB에 위치하는 I/O 커맨드들 및 지원 데이터에 더하여, 추가의 커맨드들뿐만 아니라 트랜스포트 지원 데이터를 컨트롤 유닛에 전송하는 능력을 포함한다. 기술적 효과들은 또한, 부정확한 길이 조건의 검출에도 불구하고, DCW들의 처리를 계속하는 능력을 포함하는데, 이는 컨트롤 유닛이 I/O 동작을 종료시킬 필요 없이 I/O 커맨드들을 계속 처리할 수 있게 해 준다. 다른 기술적 효과들은 단일의 I/O 동작 동안 채널과 컨트롤 유닛 사이에서 입력 및 출력 데이터 모드를 트랜스포트 할 능력을 포함한다.
Technical advantages and advantages of the exemplary embodiments include, in addition to I / O commands and assistance data located in the TCCB, additional commands as well as the ability to transmit transport assistance data to the control unit. The technical effects also include the ability to continue processing DCWs despite detection of an incorrect length condition, which allows the control unit to continue processing I / O commands without having to terminate I / O operations give. Other technical effects include the ability to transport the input and output data modes between the channel and the control unit during a single I / O operation.

여기서 사용된 용어는 특정 실시 예들을 기술할 목적으로만 사용된 것이며 발명의 범위를 제한하려 의도된 것이 아니다. 여기사 사용된 바와 같이, 단수 형식들은, 달리 문맥상 명백하게 표시하지 않는 한, 복수의 형식들도 또한 포함하도록 의도되었다. "포함하다" 및/또는 "포함하는" 이라는 용어들은, 이 명세서에서 사용되었을 때, 진술된 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 및/또는 컴포넌트들의 존재를 명시하지만, 하나 혹은 그 이상의 다른 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 컴포넌트들 및/또는 그들의 그룹들의 존재 혹은 추가를 배제하는 것이 아님을 이해하여야 한다.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the scope of the invention. As used herein, singular forms, unless the context clearly dictates otherwise, are intended to also include the plural forms. The terms "comprises" and / or "including", when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and / or components, Steps, operations, elements, components, and / or groups thereof, whether or not explicitly described in connection with the accompanying drawings.

아래 청구항들 내의 대응 구조들, 재료들, 동작들, 및 모든 수단들 혹은 단계 플러스 펑션 엘리먼트들의 균등물들은 명시적으로 청구된 다른 엘리먼트들과 조합하여 펑션을 수행하기 위한 모든 구조, 재료, 혹은 동작을 포함하도록 의도된다. 본 발명의 상세한 설명은 예시와 설명의 목적으로 제공되었지만, 개시된 형식 내의 발명이 전부라거나 혹은 한정되도록 의도되지 않았다. 본 발명의 범위와 정신을 벗어남이 없이 많은 수정들과 변경들이 당업자들에게 명백하다. 실시 예는 본 발명의 원리들과 실용적 응용을 최선으로 설명하기 위해서, 그리고 당업자들이 고려된 특정 사용에 적합한 다양한 수정들을 갖는 다양한 실시 예들에 대해 본 발명을 이해할 수 있도록 하기 위해서 선택되고 기술되었다.
The equivalents, materials, operations, and equivalents of all means or step plus function elements in the claims below shall be construed to include all structures, materials, or operations for performing a function in combination with other elements explicitly claimed . Although the description of the present invention has been presented for purposes of illustration and description, it is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations will become apparent to those skilled in the art without departing from the scope and spirit of the invention. The embodiments have been chosen and described in order to best explain the principles of the invention and its practical application and to enable those skilled in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.

당업자들이 이해할 수 있듯이, 본 발명은 시스템, 방법 혹은 컴퓨터 프로그램 제품으로 구현될 수 있다. 따라서, 본 발명의 실시 예들은 전적으로 하드웨어 실시 예, 전적으로 소프트웨어 실시 예(펌웨어, 상주 소프트웨어, 마이크로 코드, 등을 포함하는), 혹은 일반적으로 여기서 "회로", "모듈" 또는 "시스템"으로 불릴 수 있는 소프트웨어 및 하드웨어 형태들을 조합하는 실시 예의 형식을 취할 수 있다. 더 나아가서, 본 발명의 실시 예들은 그 안에 컴퓨터 리드 가능 프로그램 코드를 갖는 하나 혹은 그 이상의 컴퓨터 리드 가능 매체(들) 내에 구현된 컴퓨터 프로그램 제품의 형식을 취할 수도 있다.
As those skilled in the art will appreciate, the present invention may be implemented as a system, method, or computer program product. Thus, embodiments of the present invention may be referred to solely as a hardware embodiment, entirely a software embodiment (including firmware, resident software, microcode, etc.), or generally a "circuit ",≪ RTI ID = 0.0 > hardware / software < / RTI > Further, embodiments of the present invention may take the form of a computer program product embodied in one or more computer readable medium (s) having computer readable program code therein.

하나 혹은 그 이상의 컴퓨터 리드 가능 매체(들)의 모든 조합이 이용될 수 있다. 컴퓨터 리드 가능 매체는 컴퓨터 리드 가능 신호 매체 혹은 컴퓨터 리드 가능 스토리지 매체일 수 있다. 컴퓨터 리드 가능 스토리지 매체는, 예를 들어, 전자, 자기, 광, 전자기, 적외선, 혹은 반도체 시스템, 장치, 혹은 디바이스, 혹은 모든 이들의 적절한 조합이 될 수 있으며, 이에 한정되지 않는다. 컴퓨터 리드 가능 스토리지 매체의 더 구체적인 예들은 다음을 포함할 수 있다: 하나 혹은 그 이상의 배선들을 갖는 전기적 연결, 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 리드-전용 메모리(ROM), 지울 수 있고 프로그램 가능한 리드-전용 메모리(EPROM 혹은 플래시 메모리), 광 파이버, 휴대용 콤팩트 디스크 리드-전용 메모리(CD-ROM), 광 스토리지 디바이스, 자기 스토리지 디바이스, 혹은 이들의 모든 적합한 조합. 이 명세서에서, 컴퓨터 리드 가능 스토리지 매체는 명령 실행 시스템, 장치 혹은 디바이스와 결합하여 혹은 의하여 사용되는 프로그램을 보유 혹은 저장할 수 있는 모든 유형의 매체일 수 있다.
Any combination of one or more computer readable media (s) may be used. The computer readable medium can be a computer readable signal medium or a computer readable storage medium. The computer-readable storage medium can be, for example, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device, or any suitable combination thereof. More specific examples of computer readable storage media may include: an electrical connection with one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM) (EPROM or flash memory), an optical fiber, a portable compact disc lead-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination thereof. In this specification, a computer readable storage medium can be any type of medium that can hold or store a program used in conjunction with or in connection with an instruction execution system, device, or device.

컴퓨터 리드 가능 신호 매체는, 예를 들어, 베이스 밴드 내 혹은 반송파의 일부로서, 그 안에 구현된 컴퓨터 리드 가능 프로그램 코드를 갖는 전파된 데이터 신호를 포함할 수 있다. 그러한 전파된 신호는 전자-자기, 광, 혹은 그들의 모든 적절한 조합을 포함하는, 하지만 이것에 한정하지 않은, 모든 다양한 형태를 취할 수 있다. 컴퓨터 리드 가능 신호 매체는 컴퓨터 리드 가능 스토리지 매체가 아니고 명령 실행 시스템, 장치 혹은 디바이스와 결합하여 혹은 의하여 사용되는 프로그램을 통신하고, 전파하고, 혹은 전송할 수 있는 모든 컴퓨터 리드 가능 매체일 수 있다.
The computer readable signal medium may include a propagated data signal having computer readable program code embodied therein, for example, as part of a baseband or as part of a carrier wave. Such propagated signals may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. The computer readable signal medium may not be a computer readable storage medium but may be any computer readable medium that can communicate, propagate, or transfer a program used in conjunction with or by an instruction execution system, device, or device.

컴퓨터 리드 가능 매체 상에 구현된 프로그램 코드는, 무선, 유선, 광 파이버 케이블, RF 등, 혹은 이들의 모든 적절한 조합을 포함하는, 그러나 이에 한정되지는 않는, 모든 적절한 매체를 사용하여 전송될 수 있다.
The program code embodied on the computer readable medium may be transmitted using any suitable medium including, but not limited to, wireless, wired, optical fiber cable, RF, etc., or any suitable combination thereof .

본 발명의 실시 예들의 동작을 수행하는 컴퓨터 프로그램 코드는 하나 혹은 그 이상의 프로그래밍 언어들의 모든 조합으로 작성될 수 있으며, 이들 언어들은 Java, Smalltalk, C++ 혹은 이와 유사한 것과 같은 객체지향 프로그래밍 언어와, "C" 프로그래밍 언어 혹은 유사한 프로그래밍 언어들과 같은 종래의 절차적 프로그래밍 언어들을 포함한다. 프로그램 코드는 전적으로 유저의 컴퓨터 상에서, 부분적으로 유저의 컴퓨터 상에서, 독립형 소프트웨어 패키지로서, 실행될 수 있고, 부분적으로 유저의 컴퓨터 상에서 그리고 부분적으로 원격 컴퓨터 상에서 또는 전적으로 원격 컴퓨터 혹은 서버 상에서 실행될 수 있다. 후자의 시나리오에서, 원격 컴퓨터는 유저의 컴퓨터와 연결될 수 있는데, 이는 모든 종류의 네트웍을 통해서 할 수 있으며, 이들 네트웍은 근거리 네트웍(LAN) 혹은 광역 네트웍(WAN)을 포함한다. 또는 연결은, 예를 들어 인터넷 서비스 제공자를 사용하는 인터넷을 통해서, 외부 컴퓨터로 이루어질 수 있다.
The computer program code for performing the operations of the embodiments of the present invention may be written in any combination of one or more programming languages and these languages may include object oriented programming languages such as Java, Smalltalk, C ++, Quot; programming language or similar programming languages. The program code may be executed entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partially on the user's computer and partly on the remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer can be connected to the user's computer, which can be through any kind of network, including a local area network (LAN) or a wide area network (WAN). Or the connection may be made by an external computer, for example via the Internet using an Internet service provider.

본 발명의 여러 측면들이 본 발명의 실시 예들에 따른 방법들, 장치(시스템들) 및 컴퓨터 프로그램 제품들의 아래 플로차트 예시들 및/또는 블록 다이어그램들을 참조하여 기술되었다. 플로차트 예시들 및/또는 블록 다이어그램들의 각 블록 및, 플로차트 예시들 및/또는 블록 다이어그램들 내의 블록들의 조합들은 컴퓨터 프로그램 명령들에 의해서 구현될 수 있음을 이해하여야 한다. 이들 컴퓨터 프로그램 명령들은 범용 컴퓨터, 특별 컴퓨터, 혹은 프로그램 가능 데이터 처리 장치의 프로세서에 제공되어, 컴퓨터 혹은 기타 프로그램 가능 데이터 처리 장치의 프로세서를 통해서 실행하는, 명령들이 플로차트 및/또는 블록 다이어그램 블록 또는 블록들 내에 명시된 펑션들/동작들을 구현하는 수단들을 생성하도록 머신을 생산할 수 있다.
Various aspects of the invention have been described with reference to the following flow chart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products in accordance with embodiments of the present invention. It should be understood that each block of flowchart illustrations and / or block diagrams and combinations of blocks in the flowchart illustrations and / or block diagrams may be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or programmable data processing apparatus to cause instructions to be executed by a computer or other programmable data processing apparatus through a processor and / To produce means for implementing the specified functions / operations within the machine.

이들 컴퓨터 프로그램 명령들은 또한, 컴퓨터 리드 가능 매체 내에 저장된 명령들이 플로차트 및/또는 블록 다이어그램 블록 또는 블록들 내에 명시된 펑션/동작을 구현하는 명령들을 포함하는 제품을 생산하도록, 컴퓨터, 기타 프로그램 가능 데이터 처리 장치, 혹은 기타 디바이스들을 특정 방식으로 기능을 수행하도록 지시할 수 있는 컴퓨터 리드가능 매체 내에 저장될 수 있다.
These computer program instructions may also be stored in a computer readable medium such as a computer or other programmable data processing device to produce a product including instructions that implement the functions / , ≪ / RTI > or other devices may be stored in a computer readable medium that can direct them to perform functions in a particular manner.

컴퓨터 프로그램 명령들은 또한 컴퓨터, 기타 프로그램 가능 데이터 처리 장치, 혹은 기타 디바이스들에 로드되어 컴퓨터, 기타 프로그램 가능 데이터 처리 장치, 혹은 기타 디바이스들 상에서 실행하는 명령들이 플로차트 및/또는 블록 다이어그램 블록 또는 블록들 내에 명시된 펑션들/동작들을 구현하는 프로세스들을 제공하도록 컴퓨터 구현 프로세스를 생산하기 위해서 컴퓨터, 기타 프로그램 가능 데이터 처리 장치, 혹은 기타 디바이스들 상에서 일련의 동작 단계들이 수행되게 할 수 있다.
The computer program instructions may also be loaded into a computer, other programmable data processing apparatus, or other devices so that instructions that execute on a computer, other programmable data processing apparatus, or other devices may be stored in the flowchart and / The computer may cause a series of operating steps to be performed on a computer, other programmable data processing apparatus, or other devices to produce a computer implemented process to provide processes implementing the specified functions / operations.

여기서 도시된 플로 다이어그램들은 단지 하나의 예이다. 본 발명의 범위를 벗어남이 없이 여기서 기술된 다이어그램 혹은 단계들(혹은 동작들)에 대하여 많은 변경들이 가능하다. 예를 들어, 단계들은 다른 순서로 수행될 수 있고 또는 단계들은 추가되거나, 삭제되거나 혹은 수정될 수 있다. 모든 이들 변경들이 청구된 발명의 일부로 간주된다.
The flow diagrams shown here are just one example. Many modifications may be made to the diagrams or steps (or operations) described herein without departing from the scope of the invention. For example, the steps may be performed in a different order, or the steps may be added, deleted or modified. All of these modifications are considered part of the claimed invention.

본 발명에 대한 바람직한 실시 예가 기술되었지만, 현재 및 미래의, 당업자들은 다음에 오는 청구항들의 범위 내에 포함되는 다양한 개선들 및 향상들을 만들 수 있음을 이해하여야 한다. 이들 청구항들은 처음 기술된 본 발명에 대한 정당한 보호를 유지하도록 해석되어야 한다.Although preferred embodiments of the present invention have been described, it should be understood that various modifications and improvements can be made by those skilled in the art to which the present invention is directed, within the scope of the following claims. These claims should be construed to maintain reasonable protection for the invention as originally described.

Claims (25)

컴퓨터 판독가능 매체에 있어서,
상기 컴퓨터 판독가능 매체는, 컨트롤 유닛과 통신을 위해 구성된 호스트 컴퓨터 시스템에서 입력/출력(I/O)동작 명령에 의해서 개시된 I/O 동작을 수행하기 위한 실행가능한 명령들을 포함하고,
상기 컴퓨터 판독가능 매체는:
상기 호스트 컴퓨터 시스템 내의 채널 서브시스템과 컨트롤 유닛 사이에 링크(a link)를 초기화 하기 위해 프로세스 로그인(PRLI) 요청 메시지를 상기 컨트롤 유닛에, 상기 채널 서브시스템에 의해서, 송신하는 단계(sending) - 상기 PRLI 요청 메시지는 하나의 필드를 포함하고, 상기 필드는 상기 채널 서브시스템이 양방향 데이터 전송을 지원하는지를 표시하는 값을 가짐 -;
상기 컨트롤 유닛으로부터 PRLI 응답 메시지를 수신하는 단계 - 상기 PRLI 응답 메시지는 하나의 필드를 포함하고, 상기 필드는 상기 컨트롤 유닛이 양방향 데이터 전송을 지원하는지를 표시하는 값을 가짐 -;
양방향 데이터 전송이 지원된다는 표시를 호스트 운영체제(a host operating system)에 제공하는 단계: 및
상기 호스트 컴퓨터 시스템으로부터 수신된 상기 I/O 동작 명령을 실행하는 것에 응답하여,
상기 호스트 컴퓨터 시스템으로부터 수신된 상기 I/O 동작 명령과 관련된 복수의 커맨드들을 수집하는 단계(gathering) - 상기 복수의 커맨드들 중 적어도 하나는 입력 데이터 전송을 명시하고 상기 복수의 커맨드들 중 적어도 하나는 출력 데이터 전송을 명시함 -;
상기 복수의 커맨드들을 상기 컨트롤 유닛으로 전송하는 단계(transferring);
상기 컨트롤 유닛에 전송될 출력 데이터를 포함하는 적어도 하나의 출력 데이터 메시지를 상기 컨트롤 유닛에 송신하는 단계 - 상기 복수의 커맨드들 중 적어도 하나와 관련된 상기 출력 데이터 메시지는 출력 데이터 전송을 명시함 -; 및
상기 호스트 컴퓨터 시스템의 메인 스토리지에 저장될 입력 데이터를 포함하는 적어도 하나의 입력 데이터 메시지를 상기 컨트롤 유닛으로부터 수신하는 단계 - 상기 복수의 커맨드들 중 적어도 하나와 관련된 상기 입력 데이터 메시지는 입력 데이터 전송을 명시함 -;를 포함하는 방법을 수행하기 위해 처리 회로(a processing circuit)에 의하여 판독 가능한,
컴퓨터 판독가능 매체.
A computer-readable medium comprising:
The computer readable medium comprising executable instructions for performing an I / O operation initiated by an input / output (I / O) operation instruction in a host computer system configured for communication with a control unit,
The computer readable medium comprising:
Sending a process login (PRLI) request message to the control unit, by the channel subsystem, to initiate a link between the channel subsystem and the control unit in the host computer system; The PRLI request message comprising one field, the field having a value indicating whether the channel subsystem supports bidirectional data transmission;
Receiving a PRLI response message from the control unit, the PRLI response message comprising a field, the field having a value indicating whether the control unit supports bidirectional data transmission;
Providing an indication to the host operating system that bi-directional data transfer is supported; and
In response to executing the I / O operation command received from the host computer system,
Collecting a plurality of commands associated with the I / O operation command received from the host computer system, wherein at least one of the plurality of commands specifies input data transfer and at least one of the plurality of commands Specify output data transfer -;
Transferring the plurality of commands to the control unit;
Transmitting to the control unit at least one output data message including output data to be transmitted to the control unit, the output data message associated with at least one of the plurality of commands specifying output data transmission; And
Receiving from the control unit at least one input data message comprising input data to be stored in main storage of the host computer system, the input data message relating to at least one of the plurality of commands specifying an input data transmission Readable by a processing circuit for performing the method comprising:
Computer readable medium.
제 1항에 있어서, 상기 복수의 커맨드들은 각각이 하나의 I/O 커맨드와 관련된 복수의 디바이스 커맨드 워드들(DCW)이고, 상기 수집하는 단계는 상기 I/O 동작을 위해 상기 호스트 컴퓨터 시스템 내의 채널 서브시스템에서 트랜스포트 커맨드 워드(TCW)를 획득하는 단계를 포함하며, 상기 TCW는 트랜스포트 커맨드 컨트롤 블록(TCCB) 주소 필드를 포함하고 TCCB 주소 필드는 상기 호스트 컴퓨터 시스템의 메인 스토리지 내 TCCB의 주소를 포함하며, 상기 TCCB는 복수의 DCW들을 포함하고, 상기 DCW들 중 적어도 하나는 입력 데이터 전송을 명시하며 그리고 상기 DCW들 중 적어도 하나는 출력 데이터 전송을 명시하는
컴퓨터 판독가능 매체.
2. The method of claim 1, wherein the plurality of commands is a plurality of device command words (DCW), each associated with one I / O command, Wherein the TCW includes a Transport Command Control Block (TCCB) address field and the TCCB address field is an address of a TCCB in the main storage of the host computer system Wherein the TCCB comprises a plurality of DCWs, at least one of the DCWs specifying an input data transmission and at least one of the DCWs specifying an output data transmission
Computer readable medium.
제 2항에 있어서, 상기 복수의 커맨드들을 전송하는 단계는 상기 복수의 DCW들을 포함하는 상기 TCCB를 상기 컨트롤 유닛에 전송하는 단계를 포함하는
컴퓨터 판독가능 매체.
3. The method of claim 2, wherein transmitting the plurality of commands comprises transmitting the TCCB comprising the plurality of DCWs to the control unit
Computer readable medium.
제 3항에 있어서, 상기 표시는 제1-전송-준비-디스에이블 조건(a first-transfer-ready disabled condition)이 발효 중(in effect)인지를 명시하도록 구성되고, 상기 방법은:
상기 제1-전송-준비-디스에이블 조건이 발효 중인 것에 응답하여, 상기 TCCB의 전송 다음에 그리고 상기 컨트롤 유닛으로부터 적어도 하나의 메시지를 수신하기 전에 상기 적어도 하나의 출력 데이터 메시지를 상기 컨트롤 유닛에 송신하는 단계; 및
상기 제1-전송-준비-디스에이블 조건이 발효 중이 아닌 것에 응답하여, 상기 적어도 하나의 출력 데이터 메시지를 송신하기 전에 상기 컨트롤 유닛으로부터 상기 적어도 하나의 메시지를 수신하는 단계를 더 포함하는
컴퓨터 판독가능 매체.
4. The method of claim 3, wherein the indication is configured to specify whether a first-transfer-ready disabled condition is in effect, the method comprising:
Sending the at least one output data message to the control unit after transmission of the TCCB and prior to receiving at least one message from the control unit in response to the first transfer-ready condition being in effect; ; And
Further comprising receiving the at least one message from the control unit prior to transmitting the at least one output data message in response to the first-transfer-ready-disable condition not being effected
Computer readable medium.
제 4항에 있어서, 컨트롤 유닛으로부터의 상기 메시지는 상기 채널 서브시스템이 출력 데이터를 송신할 것을 요청하는 전송-준비 메시지(a transfer-ready message)와 상기 입력 데이터 메시지 중 하나를 포함하는
컴퓨터 판독가능 매체.
5. The method of claim 4, wherein the message from the control unit comprises one of a transfer-ready message requesting the channel subsystem to transmit the output data and the input data message
Computer readable medium.
제 2항에 있어서, 상기 TCCB는 상기 컨트롤 유닛에 송신된 트랜스포트 커맨드 정보 유닛(IU) 내에 포함되고, 상기 트랜스포트 커맨드 IU는 트랜스포트 커맨드 헤더(TCH)를 포함하며, 상기 TCH는 하나의 필드를 포함하는데, 상기 필드는 상기 채널 서브시스템이 양방향 데이터 전송을 요청하고 있는지를 표시하는
컴퓨터 판독가능 매체.
3. The method of claim 2, wherein the TCCB is included in a transport command information unit (IU) transmitted to the control unit, the transport command IU includes a transport command header (TCH) Wherein the field indicates whether the channel subsystem is requesting bi-directional data transmission
Computer readable medium.
제 6항에 있어서, 상기 TCCB는 전송될 출력 데이터의 양을 명시하는 라이트 데이터 길이(DL) 필드와 전송될 입력 데이터의 양을 명시하는 양방향 리드 데이터 길이(BRDL) 필드를 포함하는
컴퓨터 판독가능 매체.
7. The method of claim 6, wherein the TCCB includes a write data length (DL) field that specifies an amount of output data to be transmitted and a bidirectional lead data length (BRDL) field that specifies an amount of input data to be transmitted
Computer readable medium.
제 7항에 있어서, 상기 방법은, 상기 컨트롤 유닛이 양방향 데이터 동작들을 지원하지 않는 것에 응답하여, 상기 I/O 동작이 종료되었다는 것을 표시하는 트랜스포트 응답 메시지를 상기 컨트롤 유닛으로부터 수신하는 단계를 더 포함하고, 상기 트랜스포트 응답 메시지는 조건들 - TCH 내의 리드 (R )비트 및 라이트(W)비트가 모두 1로 세트 되고 상기 TCCB는 상기 BRDL을 포함하지 않음을 상기 컨트롤 유닛이 검출하는 것; 및 상기 R 비트 및 상기 W 비트가 모두 1로 세트 됨을 상기 컨트롤 유닛이 검출하고 상기 컨트롤 유닛이 양방향 데이터 전송을 지원하지 않는 것 - 중 적어도 하나에 응답하여 TCH 컨텐트 에러 표시를 포함하는
컴퓨터 판독가능 매체.
8. The method of claim 7, further comprising the step of receiving, from the control unit, a transport response message indicating that the I / O operation is terminated, in response to the control unit not supporting bidirectional data operations Wherein the transport response message indicates that the control unit detects that both the R (R) and W (W) bits in the conditions TCH are set to 1 and the TCCB does not include the BRDL; And wherein the control unit detects that the R bit and the W bit are both set to one and the control unit does not support bi-directional data transmission.
Computer readable medium.
제 7항에 있어서, 상기 방법은 상기 I/O 동작이 종료되었다는 트랜스포트 응답 메시지를 상기 컨트롤 유닛으로부터 수신하는 단계를 더 포함하고, 상기 트랜스포트 응답 메시지는:
TCCB 내의 DL 필드 값과 상기 컨트롤 유닛에 의해서 수신된 출력 데이터의 양 사이의 차(difference)를 명시하는 데이터 길이 나머지 카운트(DLRC) 필드(a Data Length Residual Count (DLRC) field); 및
TCCB 내의 BRDL 필드 값과 상기 컨트롤 유닛에 의해서 송신된 입력 데이터의 양 사이의 차(difference)를 명시하는 BRDL-나머지 카운트를 포함하는
컴퓨터 판독가능 매체.
8. The method of claim 7, further comprising the step of receiving from the control unit a transport response message indicating that the I / O operation has ended, the transport response message comprising:
A Data Length Residual Count (DLRC) field that specifies a difference between a DL field value in the TCCB and an amount of output data received by the control unit; And
And a BRDL-remaining count specifying a difference between the BRDL field value in the TCCB and the amount of input data transmitted by the control unit
Computer readable medium.
제 9항에 있어서, 상기 채널 서브시스템은:
DLRC 값이 상기 TCCB 내의 DL 필드 값과 상기 컨트롤 유닛에 송신된 출력 데이터의 양 사이의 차(difference)와 매칭하지 않는 것; 및
BRDL-나머지 카운트 값(a BRDL-residual count value)이 상기 BRDL 필드 값과 상기 컨트롤 유닛으로부터 수신된 입력 데이터의 양 사이의 차(difference)와 매칭하지 않는 것 중 적어도 하나에 응답하여 에러를 검출하는
컴퓨터 판독가능 매체.
10. The system of claim 9, wherein the channel subsystem comprises:
The DLRC value does not match the difference between the DL field value in the TCCB and the amount of output data sent to the control unit; And
Detecting an error in response to at least one of a BRDL residual count value not matching a difference between the BRDL field value and an amount of input data received from the control unit
Computer readable medium.
제 2항에 있어서, 상기 PRLI 요청 메시지는 상기 컨트롤 유닛이 트랜스포트 모드 프로토콜(a transport mode protocol)을 지원하는지를 표시하기 위한 요청을 상기 컨트롤 유닛에 표시하고 - 상기 트랜스포트 모드 프로토콜은 상기 TCW 및 상기 TCCB의 사용을 지원함 -;
그리고 상기 PRLI 요청 메시지는 상기 컨트롤 유닛이 상기 트랜스포트 모드 프로토콜을 지원하는지를 표시하는 필드를 포함하는
컴퓨터 판독가능 매체.
3. The method of claim 2, wherein the PRLI request message indicates to the control unit a request to indicate whether the control unit supports a transport mode protocol, Supports the use of TCCB;
And the PRLI request message includes a field indicating whether the control unit supports the transport mode protocol
Computer readable medium.
컨트롤 유닛과 통신을 위해 구성된 호스트 컴퓨터 시스템에서 입력/출력(I/O) 동작 명령에 의해서 개시된 I/O 동작을 수행하기 위한 장치에 있어서, 상기 호스트 컴퓨터 시스템은:
상기 호스트 컴퓨터 시스템 내의 채널 서브시스템과 상기 컨트롤 유닛 사이에 링크(a link)를 초기화하기 위해 프로세스 로그인(PRLI) 요청 메시지를 상기 컨트롤 유닛에, 상기 채널 서브시스템에 의해서, 송신하는 단계(sending) - 상기 PRLI 요청 메시지는 하나의 필드를 포함하고, 상기 필드는 상기 채널 서브시스템이 양방향 데이터 전송을 지원하는지를 표시하는 값을 가짐 -;
상기 컨트롤 유닛으로부터 PRLI 응답 메시지를 수신하는 단계 - 상기 PRLI 응답 메시지는 하나의 필드를 포함하고, 상기 필드는 상기 컨트롤 유닛이 양방향 데이터 전송을 지원하는지를 표시하는 값을 가짐 -;
양방향 데이터 전송이 지원된다는 표시를 호스트 운영체제(a host operating system)에 제공하는 단계; 및
상기 호스트 컴퓨터 시스템으로부터 수신된 상기 I/O 동작 명령을 실행하는 것에 응답하여, 하나의 방법을 수행하는 단계를 수행하도록 구성되고, 상기 방법은:
상기 호스트 컴퓨터로부터 수신된 상기 I/O 동작 명령과 관련된 복수의 커맨드들을 수집하는 단계(gathering) - 상기 복수의 커맨드들 중 적어도 하나는 입력 데이터 전송을 명시하고 상기 복수의 커맨드들 중 적어도 하나는 출력 데이터 전송을 명시함 -;
상기 복수의 커맨드들을 상기 컨트롤 유닛으로 전송하는 단계(transferring);
상기 컨트롤 유닛에 전송될 출력 데이터를 포함하는 적어도 하나의 출력 데이터 메시지를 상기 컨트롤 유닛에 송신하는 단계 - 상기 복수의 커맨드들 중 적어도 하나와 관련된 상기 출력 데이터 메시지는 출력 데이터 전송을 명시함 -; 및
상기 호스트 컴퓨터 시스템의 메인 스토리지에 저장될 입력 데이터를 포함하는 적어도 하나의 입력 데이터 메시지를 상기 컨트롤 유닛으로부터 수신하는 단계 - 상기 복수의 커맨드들 중 적어도 하나와 관련된 상기 입력 데이터 메시지는 입력 데이터 전송을 명시함 - 을 포함하는
장치.
An apparatus for performing an I / O operation initiated by an input / output (I / O) operation command in a host computer system configured for communication with a control unit, the apparatus comprising:
Sending a process login (PRLI) request message to the control unit, by the channel subsystem, to initialize a link between the channel subsystem and the control unit in the host computer system, The PRLI request message comprising one field, the field having a value indicating whether the channel subsystem supports bidirectional data transmission;
Receiving a PRLI response message from the control unit, the PRLI response message comprising a field, the field having a value indicating whether the control unit supports bidirectional data transmission;
Providing an indication to the host operating system that bi-directional data transfer is supported; And
In response to executing the I / O operation command received from the host computer system, performing a method comprising:
Collecting a plurality of commands associated with the I / O operation command received from the host computer, wherein at least one of the plurality of commands specifies an input data transfer and at least one of the plurality of commands is an output Specify data transfer -;
Transferring the plurality of commands to the control unit;
Transmitting to the control unit at least one output data message including output data to be transmitted to the control unit, the output data message associated with at least one of the plurality of commands specifying output data transmission; And
Receiving from the control unit at least one input data message comprising input data to be stored in main storage of the host computer system, the input data message relating to at least one of the plurality of commands specifying an input data transmission Containing
Device.
제 12항에 있어서, 상기 복수의 커맨드들은 각각이 하나의 I/O 커맨드와 관련된 복수의 디바이스 커맨드 워드들(DCW)이고, 상기 수집하는 단계는 상기 I/O 동작을 위해 상기 호스트 컴퓨터 시스템 내의 채널 서브시스템에서 트랜스포트 커맨드 워드(TCW)를 획득하는 단계를 포함하며, 상기 TCW는 트랜스포트 커맨드 컨트롤 블록(TCCB) 주소 필드를 포함하고 TCCB 주소 필드는 상기 호스트 컴퓨터 시스템의 메인 스토리지 내 TCCB의 주소를 포함하며, 상기 TCCB는 복수의 DCW들을 포함하고, 상기 DCW들 중 적어도 하나는 입력 데이터 전송을 명시하며 그리고 상기 DCW들 중 적어도 하나는 출력 데이터 전송을 명시하는
장치.
13. The method of claim 12, wherein the plurality of commands is a plurality of device command words (DCW), each associated with one I / O command, Wherein the TCW includes a Transport Command Control Block (TCCB) address field and the TCCB address field is an address of a TCCB in the main storage of the host computer system Wherein the TCCB includes a plurality of DCWs, at least one of the DCWs specifying an input data transmission and at least one of the DCWs specifying an output data transmission
Device.
제 13항에 있어서, 상기 표시는 제1-전송-준비-디스에이블 조건(a first-transfer-ready disabled condition)이 발효 중(in effect)인지를 명시하도록 구성되고, 상기 호스트 컴퓨터 시스템은:
상기 제1-전송-준비-디스에이블 조건이 발효 중인 것에 응답하여, 상기 TCCB의 전송 다음에 그리고 상기 컨트롤 유닛으로부터 적어도 하나의 메시지를 수신하기 전에 상기 적어도 하나의 출력 데이터 메시지를 상기 컨트롤 유닛에 송신하는 단계; 및
상기 제1-전송-준비-디스에이블 조건이 발효 중이 아닌 것에 응답하여, 상기 적어도 하나의 출력 데이터 메시지를 송신하기 전에 상기 컨트롤 유닛으로부터 상기 적어도 하나의 메시지를 수신하는 단계를 더 수행하도록 구성되는
장치.
14. The system of claim 13, wherein the indication is configured to specify whether a first-transfer-ready disabled condition is in effect, the host computer system comprising:
Sending the at least one output data message to the control unit after transmission of the TCCB and prior to receiving at least one message from the control unit in response to the first transfer-ready condition being in effect; ; And
Receiving the at least one message from the control unit prior to transmitting the at least one output data message in response to the first-transfer-ready-disable condition not being in effect
Device.
제 13항에 있어서, 상기 TCCB는 상기 컨트롤 유닛에 송신된 트랜스포트 커맨드 정보 유닛(IU) 내에 포함되고, 상기 트랜스포트 커맨드 IU는 트랜스포트 커맨드 헤더(TCH)를 포함하며, 상기 TCH는 하나의 필드를 포함하는데, 상기 필드는 상기 채널 서브시스템이 양방향 데이터 전송을 요청하고 있는지를 표시하는
장치.
14. The method of claim 13, wherein the TCCB is included in a transport command information unit (IU) transmitted to the control unit, the transport command IU includes a transport command header (TCH) Wherein the field indicates whether the channel subsystem is requesting bi-directional data transmission
Device.
제 15항에 있어서, 상기 TCCB는 전송될 출력 데이터의 양을 명시하는 라이트 데이터 길이(DL) 필드와 전송될 입력 데이터의 양을 명시하는 양방향 리드 데이터 길이(BRDL) 필드를 포함하는
장치.
16. The method of claim 15, wherein the TCCB includes a write data length (DL) field that specifies an amount of output data to be transmitted and a bidirectional lead data length (BRDL) field that specifies an amount of input data to be transmitted
Device.
제 16항에 있어서, 상기 호스트 컴퓨터 시스템은, 상기 컨트롤 유닛이 양방향 데이터 동작들을 지원하지 않는 것에 응답하여, 상기 I/O 동작이 종료되었다는 것을 표시하는 트랜스포트 응답 메시지를 상기 컨트롤 유닛으로부터 수신하는 단계를 더 수행하도록 구성되고, 상기 트랜스포트 응답 메시지는 조건들 - TCH 내의 리드 (R )비트 및 라이트 (W)비트가 모두 1로 세트 되고 상기 TCCB는 상기 BRDL을 포함하지 않음을 상기 컨트롤 유닛이 검출하는 것; 및 상기 R 비트 및 상기 W 비트가 모두 1로 세트 됨을 상기 컨트롤 유닛이 검출하고 상기 컨트롤 유닛이 양방향 데이터 전송을 지원하지 않는 것 - 중 적어도 하나에 응답하여 TCH 컨텐트 에러 표시를 포함하는
장치.
17. The method of claim 16, wherein the host computer system is further configured to: receive, from the control unit, a transport response message indicating that the I / O operation is terminated, in response to the control unit not supporting bidirectional data operations Wherein the transport response message is configured such that the control unit determines that the R-bit and the W-bit in the conditions TCH are both set to 1 and the TCCB does not include the BRDL To do; And wherein the control unit detects that the R bit and the W bit are both set to one and the control unit does not support bi-directional data transmission.
Device.
제 16항에 있어서, 상기 방법은 상기 I/O 동작이 종료되었다는 것을 표시하는 트랜스포트 응답 메시지를 상기 컨트롤 유닛으로부터 수신하는 단계를 더 포함하고, 상기 트랜스포트 응답 메시지는 TCCB 내의 DL 필드 값과 상기 컨트롤 유닛에 의해서 수신된 출력 데이터의 양 사이의 차(difference)를 명시하는 데이터 길이 나머지 카운트(DLRC) 필드(a Data Length Residual Count (DLRC) field) 및 TCCB 내의 BRDL 필드 값과 상기 컨트롤 유닛에 의해서 송신된 입력 데이터의 양 사이의 차(difference)를 명시하는 BRDL-나머지 카운트(a BRDL-residual count)를 포함하며, 상기 채널 서브시스템은:
DLRC 값이 상기 TCCB 내의 DL 필드 값과 상기 컨트롤 유닛에 송신된 출력 데이터의 양 사이의 차(difference)와 매칭하지 않는 것; 및
BRDL-나머지 카운트 값(a BRDL-residual count value)이 상기 BRDL 필드 값과 상기 컨트롤 유닛으로부터 수신된 입력 데이터의 양 사이의 차(difference)와 매칭하지 않는 것 중 적어도 하나에 응답하여 에러를 인지하는(recognize)
장치.
17. The method of claim 16, further comprising the step of receiving from the control unit a transport response message indicating that the I / O operation is complete, wherein the transport response message includes a DL field value in the TCCB, A Data Length Remaining Count (DLRC) field specifying a difference between the amount of output data received by the control unit and a BRDL field value in the TCCB and the control unit And a BRDL-residual count specifying a difference between the amount of transmitted input data, the channel subsystem comprising:
The DLRC value does not match the difference between the DL field value in the TCCB and the amount of output data sent to the control unit; And
Determining an error in response to at least one of a BRDL-remaining count value not matching a difference between the BRDL field value and an amount of input data received from the control unit (recognize)
Device.
컨트롤 유닛과 통신을 위해 구성된 호스트 컴퓨터 시스템에서 입력/출력(I/O) 동작 명령에 의해서 개시된 I/O 동작을 수행하는 방법에 있어서, 상기 방법은:
상기 호스트 컴퓨터 시스템 내의 채널 서브시스템과 상기 컨트롤 유닛 사이에 링크(a link)를 초기화하기 위해 프로세스 로그인(PRLI) 요청 메시지를 상기 컨트롤 유닛에, 상기 채널 서브시스템에 의해서, 송신하는 단계(sending) - 상기 PRLI 요청 메시지는 하나의 필드를 포함하고, 상기 필드는 상기 채널 서브시스템이 양방향 데이터 전송을 지원하는지를 표시하는 값을 가짐 -;
상기 컨트롤 유닛으로부터 PRLI 응답 메시지를 수신하는 단계 - 상기 PRLI 응답 메시지는 하나의 필드를 포함하고, 상기 필드는 상기 컨트롤 유닛이 양방향 데이터 전송을 지원하는지를 표시하는 값을 가짐 -;
양방향 데이터 전송이 지원된다는 표시를 호스트 운영체제(a host operating system)에 제공하는 단계: 및
상기 호스트 컴퓨터 시스템으로부터 수신된 상기 I/O 동작 명령을 실행하는 것에 응답하여, 하나의 방법을 수행하는 단계를 포함하고, 상기 방법은:
상기 호스트 컴퓨터 시스템으로부터 수신된 상기 I/O 동작 명령과 관련된 복수의 커맨드들을 수집하는 단계(gathering) - 상기 복수의 커맨드들 중 적어도 하나는 입력 데이터 전송을 명시하고 상기 복수의 커맨드들 중 적어도 하나는 출력 데이터 전송을 명시함 -;
상기 복수의 커맨드들을 상기 컨트롤 유닛으로 전송하는 단계(transferring);
상기 컨트롤 유닛에 전송될 출력 데이터를 포함하는 적어도 하나의 출력 데이터 메시지를 상기 컨트롤 유닛에 송신하는 단계 - 상기 복수의 커맨드들 중 적어도 하나와 관련된 상기 출력 데이터 메시지는 출력 데이터 전송을 명시함 -; 및
상기 호스트 컴퓨터 시스템의 메인 스토리지에 저장될 입력 데이터를 포함하는 적어도 하나의 입력 데이터 메시지를 상기 컨트롤 유닛으로부터 수신하는 단계 - 상기 복수의 커맨드들 중 적어도 하나와 관련된 상기 입력 데이터 메시지는 입력 데이터 전송을 명시함 - 를 포함하는
방법.
A method for performing an I / O operation initiated by an input / output (I / O) operation command in a host computer system configured for communication with a control unit, the method comprising:
Sending a process login (PRLI) request message to the control unit, by the channel subsystem, to initialize a link between the channel subsystem and the control unit in the host computer system, The PRLI request message comprising one field, the field having a value indicating whether the channel subsystem supports bidirectional data transmission;
Receiving a PRLI response message from the control unit, the PRLI response message comprising a field, the field having a value indicating whether the control unit supports bidirectional data transmission;
Providing an indication to the host operating system that bi-directional data transfer is supported; and
Performing one method in response to executing the I / O operation command received from the host computer system, the method comprising:
Collecting a plurality of commands associated with the I / O operation command received from the host computer system, wherein at least one of the plurality of commands specifies input data transfer and at least one of the plurality of commands Specify output data transfer -;
Transferring the plurality of commands to the control unit;
Transmitting to the control unit at least one output data message including output data to be transmitted to the control unit, the output data message associated with at least one of the plurality of commands specifying output data transmission; And
Receiving from the control unit at least one input data message comprising input data to be stored in main storage of the host computer system, the input data message relating to at least one of the plurality of commands specifying an input data transmission Containing
Way.
제 19항에 있어서, 상기 복수의 커맨드들은 각각이 하나의 I/O 커맨드와 관련된 복수의 디바이스 커맨드 워드들(DCW)이고, 상기 수집하는 단계는 상기 I/O 동작을 위해 상기 호스트 컴퓨터 시스템 내의 채널 서브시스템에서 트랜스포트 커맨드 워드(TCW)를 획득하는 단계를 포함하며, 상기 TCW는 트랜스포트 커맨드 컨트롤 블록(TCCB) 주소 필드를 포함하고 TCCB 주소 필드는 상기 호스트 컴퓨터 시스템의 메인 스토리지 내 TCCB의 주소를 포함하며, 상기 TCCB는 복수의 DCW들을 포함하고, 상기 DCW들 중 적어도 하나는 입력 데이터 전송을 명시하며 그리고 상기 DCW들 중 적어도 하나는 출력 데이터 전송을 명시하는
방법.
20. The system of claim 19, wherein the plurality of commands is a plurality of device command words (DCW) each associated with one I / O command, Wherein the TCW includes a Transport Command Control Block (TCCB) address field and the TCCB address field is an address of a TCCB in the main storage of the host computer system Wherein the TCCB includes a plurality of DCWs, at least one of the DCWs specifying an input data transmission and at least one of the DCWs specifying an output data transmission
Way.
제 20항에 있어서, 상기 표시는 제1-전송-준비-디스에이블 조건(a first-transfer-ready disabled condition)이 발효 중(in effect)인지를 명시하도록 구성되고, 상기 방법은:
상기 제1-전송-준비-디스에이블 조건이 발효 중인 것에 응답하여, 상기 TCCB의 전송 다음에 그리고 상기 컨트롤 유닛으로부터 적어도 하나의 메시지를 수신하기 전에 상기 적어도 하나의 출력 데이터 메시지를 상기 컨트롤 유닛에 송신하는 단계; 및
상기 제1-전송-준비-디스에이블 조건이 발효 중이 아닌 것에 응답하여, 상기 적어도 하나의 출력 데이터 메시지를 송신하기 전에 상기 컨트롤 유닛으로부터 상기 적어도 하나의 메시지를 수신하는 단계를 더 포함하는
방법.
21. The method of claim 20, wherein the indication is configured to specify whether a first-transfer-ready disabled condition is in effect, the method comprising:
Sending the at least one output data message to the control unit after transmission of the TCCB and prior to receiving at least one message from the control unit in response to the first transfer-ready condition being in effect; ; And
Further comprising receiving the at least one message from the control unit prior to transmitting the at least one output data message in response to the first-transfer-ready-disable condition not being effected
Way.
제 20항에 있어서, 상기 TCCB는 상기 컨트롤 유닛에 송신된 트랜스포트 커맨드 정보 유닛(IU) 내에 포함되고, 상기 트랜스포트 커맨드 IU는 트랜스포트 커맨드 헤더(TCH)를 포함하며, 상기 TCH는 하나의 필드를 포함하는데, 상기 필드는 상기 채널 서브시스템이 양방향 데이터 전송을 요청하고 있는지를 표시하는
방법.
21. The method of claim 20, wherein the TCCB is included in a transport command information unit (IU) transmitted to the control unit, the transport command IU includes a transport command header (TCH) Wherein the field indicates whether the channel subsystem is requesting bi-directional data transmission
Way.
제 22항에 있어서, 상기 TCCB는 전송될 출력 데이터의 양을 명시하는 라이트 데이터 길이(DL) 필드와 전송될 입력 데이터의 양을 명시하는 양방향 리드 데이터 길이(BRDL) 필드를 포함하는
방법.
23. The method of claim 22, wherein the TCCB comprises a write data length (DL) field that specifies an amount of output data to be transmitted and a bidirectional lead data length (BRDL) field that specifies an amount of input data to be transmitted
Way.
제 23항에 있어서, 상기 방법은, 상기 컨트롤 유닛이 양방향 데이터 동작들을 지원하지 않는 것에 응답하여, 상기 I/O 동작이 종료되었다는 것을 표시하는 트랜스포트 응답 메시지를 상기 컨트롤 유닛으로부터 수신하는 단계를 더 포함하고, 상기 트랜스포트 응답 메시지는 조건들 - TCH 내의 리드 (R )비트 및 라이트(W)비트가 모두 1로 세트 되고 상기 TCCB는 상기 BRDL을 포함하지 않음을 상기 컨트롤 유닛이 검출하는 것; 및 상기 R 비트 및 상기 W 비트가 모두 1로 세트 됨을 상기 컨트롤 유닛이 검출하고 상기 컨트롤 유닛이 양방향 데이터 전송을 지원하지 않는 것 - 중 적어도 하나에 응답하여 TCH 컨텐트 에러 표시를 포함하는
방법.
24. The method of claim 23, further comprising the step of receiving from the control unit a transport response message indicating that the I / O operation is terminated, in response to the control unit not supporting bidirectional data operations Wherein the transport response message indicates that the control unit detects that both the R (R) and W (W) bits in the conditions TCH are set to 1 and the TCCB does not include the BRDL; And wherein the control unit detects that the R bit and the W bit are both set to one and the control unit does not support bi-directional data transmission.
Way.
제 22항에 있어서, 상기 방법은 상기 I/O 동작이 종료되었음을 표시하는 트랜스포트 응답 메시지를 상기 컨트롤 유닛으로부터 수신하는 단계를 더 포함하고, 상기 트랜스포트 응답 메시지는 TCCB 내의 DL 필드 값과 상기 컨트롤 유닛에 의해서 수신된 출력 데이터의 양 사이의 차(difference)를 명시하는 데이터 길이 나머지 카운트(DLRC) 필드(a Data Length Residual Count (DLRC) field) 및 TCCB 내의 BRDL 필드 값과 상기 컨트롤 유닛에 의해서 송신된 입력 데이터의 양 사이의 차(difference)를 명시하는 BRDL-나머지 카운트를 포함하며. 상기 채널 서브시스템은:
DLRC 값이 상기 TCCB 내의 DL 필드 값과 상기 컨트롤 유닛에 송신된 출력 데이터의 양 사이의 차(difference)와 매칭하지 않는 것; 및
BRDL-나머지 카운트 값(a BRDL-residual count value)이 상기 BRDL 필드 값과 상기 컨트롤 유닛으로부터 수신된 입력 데이터의 양 사이의 차(difference)와 매칭하지 않는 것 중 적어도 하나에 응답하여 에러를 인지하는(recognize)
방법.
23. The method of claim 22, further comprising the step of receiving from the control unit a transport response message indicating that the I / O operation is completed, wherein the transport response message includes a DL field value in the TCCB and a & A Data Length Remaining Count (DLRC) field specifying a difference between the amount of output data received by the unit and a BRDL field value in the TCCB, And a BRDL-remaining count that specifies the difference between the amount of input data that has been input. The channel subsystem comprising:
The DLRC value does not match the difference between the DL field value in the TCCB and the amount of output data sent to the control unit; And
Determining an error in response to at least one of a BRDL-remaining count value not matching a difference between the BRDL field value and an amount of input data received from the control unit (recognize)
Way.
KR1020137013505A 2011-06-30 2012-04-11 Facilitating transport mode input/output operations between a channel subsystem and input/output devices KR101476075B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/173,772 2011-06-30
US13/173,772 US8312176B1 (en) 2011-06-30 2011-06-30 Facilitating transport mode input/output operations between a channel subsystem and input/output devices
PCT/EP2012/056534 WO2013000596A1 (en) 2011-06-30 2012-04-11 Facilitating transport mode input/output operations between a channel subsystem and input/output devices

Publications (2)

Publication Number Publication Date
KR20130095780A KR20130095780A (en) 2013-08-28
KR101476075B1 true KR101476075B1 (en) 2014-12-23

Family

ID=

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090210884A1 (en) 2008-02-14 2009-08-20 International Business Machines Corporation Processing of data to determine compatability in an input/output processing system
US7743172B2 (en) 2005-02-03 2010-06-22 Texas Instruments Incorporated Die-to-die interconnect interface and protocol for stacked semiconductor dies

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7743172B2 (en) 2005-02-03 2010-06-22 Texas Instruments Incorporated Die-to-die interconnect interface and protocol for stacked semiconductor dies
US20090210884A1 (en) 2008-02-14 2009-08-20 International Business Machines Corporation Processing of data to determine compatability in an input/output processing system

Similar Documents

Publication Publication Date Title
US8549185B2 (en) Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US20120311390A1 (en) Fibre channel input/output data routing system and method
US8631175B2 (en) Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8918542B2 (en) Facilitating transport mode data transfer between a channel subsystem and input/output devices
KR101476075B1 (en) Facilitating transport mode input/output operations between a channel subsystem and input/output devices
CA2819159C (en) Facilitating transport mode input/output operations between a channel subsystem and input/output devices
WO2012164428A1 (en) Fibre channel input/output data routing system and method
GB2491439A (en) Ordering of requests using offset fields in a fibre channel input/output data routing system and method.
KR101476073B1 (en) Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8346978B1 (en) Facilitating transport mode input/output operations between a channel subsystem and input/output devices