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 PDFInfo
- 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
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
본 발명은 일반적으로 입력/출력(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
호스트 컴퓨터 시스템(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
한 실시 예에서, 채널 서브시스템(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
한 실시 예에서, 채널 서브시스템(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
하나 혹은 그 이상의 서브채널들도 또한 각 채널(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
각각의 컨트롤 유닛(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
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 /
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
한 실시 예에서, 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
예를 들어, 채널 서브시스템(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
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
한 실시 예에서, 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
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
트랜스포트 모드에서, 단일 트랜스포트 커맨드 워드(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
한 예시적 실시 예에서, 컨트롤 유닛(118)은 채널 프로그램을 실행하는 것에 응답하여 응답 메시지를 생성한다. 컨트롤 유닛(118)은 또한, 제한된 수의 통신 시나리오 하에서 채널 프로그램을 실행하지 않고도 응답 메시지를 생성할 수 있는데, 예를 들어 채널 서브시스템(114)에 채널 프로그램이 실행되지 않을 것을 통지하기 위해서 그렇게 할 수 있다. 컨트롤 유닛(118)은 I/O 통신 어댑터와 I/O 디바이스들 사이의 통신을 지원하기 위해, 또한 채널 프로그램 실행을 지원하기 위해 다수의 엘리먼트들을 포함할 수 있다. 예를 들어, 컨트롤 유닛(118)은, 통신과 상태 모니터링을 용이하게 하기 위해 하나 혹은 그 이상의 큐들(queues), 타이머들(timers), 및 레지스터들(registers)뿐만 아니라, 메시지들을 분석하고(parse) 처리하기 위해 컨트롤 로직을 포함할 수 있다.
In one exemplary embodiment, the
도 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
한 실시 예에서, 상기 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
예를 들어, 다수의 플래그 필드들(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
TCW(140)은 또한 TCCB의 바이트들 내의 길이를 명시하는 트랜스포트-커맨드-컨트롤-블록 길이(TCCBL) 필드(150)을 포함한다. 예를 들어, TCCBL 필드는 부호 없는 정수(unsigned integer)를 포함하는데, 이 값은 (예를 들어, 일방향 데이터 전송들을 위해서는 20에 더해졌을 때 혹은 양방향 데이터 전송을 위해서는 24에 더해졌을 때) TCCB의 길이를 바이트로 명시한다.
메인 메모리(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
출력-데이터 주소 필드(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-
트랜스포트-상태-블록 주소(156)은 TCW를 위한 트랜스포트-상태 블록의 스토리지 내의 위치를 명시한다. 예를 들어, 워드들 6-7은 TCW를 위한 트랜스포트-상태 블록의 절대 스토리지 내의 64-비트 위치를 지정한다.
The transport-state-
트랜스포트-커맨드-컨트롤-블록 주소 필드(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-
출력 카운트 필드(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
만일 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-
도 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
TCCB(170)은 길이가 가변이고(variable), 헤더(header)와 트레일러 (trailer) 정보를 보유할 수 있으며, 하나 혹은 그 이상의(예를 들어, 1에서 30) 커맨드들을 논리적으로 링크된(즉, 체인된) 디바이스-커맨드 워드들(DCW들)로서 보유할 수 있는데, 이는 그들이 순차 방식으로(in a sequential manner) 컨트롤 유닛(118)에 의해서 실행되도록 하기 위함이다. TCCB(170)은 인접 스토리지의 단일 블록으로서 상주하거나 혹은 인접하지 않는 스토리지의 다수 블록들로서 상주할 수 있다. 예를 들어, 전술한 TCW(140) 내 TCCB-TIDA플래그는 TCCB가 인접 스토리지 내에 상주하는지를 명시하기 위해 사용된다.
The
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
도 4를 참조하면, SB-4 헤더(174)는 데이터 전송을 위한 논리적 경로 및 디바이스(116)을 식별하기 위해서 FC-4 어드레싱 정보를 제공한다. SB-4 헤더(174)는, 디바이스 ID뿐만 아니라, 채널(128)과 컨트롤 유닛(118) 사이의 논리적 경로를 위한 채널 이미지 ID 및 컨트롤 유닛 ID를 포함하는 정보를 제공한다.
Referring to FIG. 4, the SB-4
도 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
리드(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)
라이트(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)
도 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
[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
일부 디바이스들을 위해, 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
도 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
예를 들어, 일방향 데이터 전송이 명시될 때, 트랜스포트 카운트 혹은 데이터 길이(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)
라이트 동작이 명시될 때(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
양방향 데이터 전송이 명시될 때, DL 필드(186)은 라이트 카운트(write count)이고 전송될 총 출력 데이터의 32-비트 부호 없는 정수 카운트를 명시한다. TCAT(182) 내의 DL 필드(라이트-카운트 필드)의 트랜스포트 카운트 값은 전술한 바와 같이 라이트 동작을 위해 결정된다. 양방향 리드 데이터 길이(BRDL) 필드(188)은 전송될 총 입력 데이터의 32-비트 부호 없는 정수 카운트를 명시한다. BRDL 필드(188)을 위한 트랜스포트 카운트 값은 전술한 바와 같이 리드 동작을 위해 결정된다.
When bidirectional data transmission is specified, the
한 실시 예에서, 라이트 동작 혹은 양방향 동작을 위해, 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-
한 실시 예에서, DCW(202)는 TCW(140) 내 한 워드 범위로(on a word boundary) 지정되는 8-바이트 컨트롤 블록이다. DCW(202)는 커맨드 코드 필드(204), 컨트롤 플래그들 필드(206), 컨트롤 데이터 카운트(208) 및 DCW 데이터 카운트(210)과 같은 필드들을 포함한다.
In one embodiment,
커맨드 코드 필드(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-
리드 커맨드는 디바이스-투(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)
DCW 데이터 카운트 필드(210)은 현재 DCW(202)를 위해 TCW에 의해서 지정된 데이터(예를 들어, 리드 혹은 라이트 동작을 위해 전송될 데이터, 즉 커스터머 데이터)의 바이트 카운트를 명시한다. 예를 들어, DCW 데이터 카운트는 도 10의 DCW(202)의 워드 1에 포함되고, 이 DCW를 위해 TCW에 의해서 지정된 스토리지 영역 내의 바이트들의 32-비트 부호 없는 정수 카운트를 명시한다. DCW 데이터 카운트 필드(210)은 DCW의 실행 동안 채널과 컨트롤 유닛 사이에서 전송될 바이트들의 수를 표시하며, 이에는 어떠한 패드 혹은 CRC 바이트들을 포함하지 않는다.
The DCW data count
도 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
컨트롤 플래그들 필드는, 한 실시 예에서, 서프레스 길이 표시(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)
리드 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
라이트 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
트랜스포트-커맨드 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)은 길이가 가변이며 최대 크기는 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
도 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
도 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,
한 실시 예에서, 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
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
도 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
도 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
라이트 동작들을 위해, 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
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
트랜스포트-커맨드 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
디바이스(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
도 14를 참조하면, 트랜스포트 모드 I/O 동작(300)을 수행하는 방법이 도시된다. 상기 방법은 하나 혹은 그 이상의 단계들(301-305)를 포함한다. 한 실시 예에서, 상기 방법은 기술된 순서로 단계들(301-305)을 실행하는 것을 포함한다. 그러나, 특정 단계들은 생략되거나, 단계들이 추가되거나, 혹은 단계들의 순서가 변경될 수 있다.
Referring to FIG. 14, a method of performing a transport mode I /
단계(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
단계(302)에서, 채널(128)이, 트랜스포트-커맨드-컨트롤 블록(TCCB)(170)과 같은, 컨트롤 블록과 TCW(140)을 위한 관련 컨트롤 정보를 포함하는 트랜스포트-커맨드 IU를 선택된 디바이스(116)에 전송할 때 TCW I/O 동작이 I/O 디바이스에 개시된다(예를 들어, 컨트롤 유닛(118)을 통해서). 한 실시 예에서, I/O 동작의 실행 및 디바이스 동작과 관련된 정보(예를 들어, 커맨드들, 입력 데이터 및 출력 데이터)는 채널(128)과 컨트롤 유닛(118) 사이에서 정보 유닛들(IU들)로서 전송된다. 한 실시 예에서, 상기 IU들은 SB-4 정보 유닛들(IU들)의 형식으로 되어 있다.
At
한 실시 예에서, 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
트랜스포트 모드에서 수행되는 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.
단계(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
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)
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
단계(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
커맨드 체이닝은 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
I/O 동작을 통해서 전송되도록 요청된 데이터는 TCCB(170) 내 DCW들(202)의 처리 동안 하나 혹은 그 이상의 트랜스포트-데이터 IU들을 통해서 채널(128)과 컨트롤(118) 사이에 송신된다. 리드 동작은 오직 리드 데이터 전송만을 수행하고, 라이트 동작은 오직 라이트 데이터 전송만을 수행하며, 양방향 동작은 리드 및 라이트 데이터 전송 모두를 수행할 수 있다.
The data requested to be transmitted via the I / O operation is transmitted between the
도 15를 참조하면, 라이트 혹은 양방향 동작을 위해서, 채널(128)은 하나 혹은 그 이상의 트랜스포트-데이터 IU들(310)을 컨트롤 유닛(118)로 송신하는데, 이는 그 동작을 위한 라이트 데이터(312)를 전송하기 위함이다. 리드 혹은 양방향 동작을 위해서, 컨트롤 유닛(118)은 적어도 하나의 트랜스포트-데이터 IU(314)를 채널(128)로 송신하는데, 이는 그 동작을 위해 명시된 리드 데이터(316)를 전송하기 위함이다. 패드 바이트들(318)은 CRC가 계산되는 데이터 영역의 최종 워드 내에 포함되고 커버될 데이터 영역이 데이터 워드들의 진정 수(integral number)가 아닌 때 다음 워드 범위로 데이터 영역을 패드하기 위해 사용된다. 이것은 COB, 중간 및 최종 CRC에 의해서 커버될 데이터 영역들에 대해 적용한다. 패드 바이트를 위해 사용된 값은 모델에 따라 다르다.
15,
최종 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
라이트 혹은 양방향 데이터 전송 동안, 출력 데이터는 하나 혹은 그 이상의 트랜스포트-데이터 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
리드 데이터 전송 동안, 데이터는 하나 혹은 그 이상의 트랜스포트-데이터 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
라이트 및 양방향 동작들을 위해, 트랜스포트-응답 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
도 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
도 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
한 실시 예에서, 트랜스포트-응답 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-
도 17을 참조하면, 상태 영역(334)의 한 실시 예는, 예를 들어 20 바이트이고 TCW I/O 동작에 관한 정보를 보유한다. "상태 플래그들 1" 필드(336)은 하나 혹은 그 이상의 예외 코드들을 포함하고, 이들은 TCW I/O 동작 동안 검출된 비정상 조건을 보고하기 위해 컨트롤 유닛(118)에 의해서 세트된다. 예시적 코드들은 다음을 포함한다: 17, one embodiment of the
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,
한 실시 예에서, 만일 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가 리드 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
양방향 동작들을 위해, BRDL 나머지 카운트 필드(a BRDL residual count field) (342)도 또한 트랜스포트-응답 IU(330)에 포함될 수 있다. 양방향 동작들을 위해, BRDL 나머지 카운트는 32-비트의, 부호 없는 2진 정수이며, 이는 트랜스포트-커맨드 IU 내의 BRDL 필드와 채널에 실제로 송신된 바이트들의 수 사이의 차를 명시한다.
For bidirectional operations, a BRDL
상태 플래그들 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
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
2 - 무효의 CRC 검출됨: 무효의 CRC가 수신된 데이터 상에서 검출되었다(단 예외 코드 4가 상태 플래그들 1 필드 내에 표시되었을 때);2 - Invalid CRC detected: An invalid CRC was detected on the received data (except when
3 - 부정확한 TCCB 길이 명시(specification) (단 예외 코드 5가 상태 플래그들 1 필드 내에 표시되었을 때);3 - Incorrect TCCB length specification (when
4 - TCAH 명시 에러(TCAH specification error)(단 예외 코드 5가 상태 플래그들 1 필드 내에 표시되었을 때);4 - TCAH specification error (when
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
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
7 - 트랜스포트-카운트 명시 에러(단 예외 코드 5가 상태 플래그들 1 필드 내에 표시되었을 때);7 - Transport-count clear error (except when
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
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
확장된 상태는 또한 이유 코드 한정자(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 /
무효의 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
4. TCW 플래그들 필드의 비트 10은 0이고 TCW 내의 TCCB-길이 필드는 12보다 적거나 혹은 244보다 큰 길이를 명시한다.4.
5. TCW 플래그들 필드의 비트 10은 1이고 TCW 의 라이트 동작들(W) 비트는 0이거나, TCW의 리드 동작들(R) 비트는 0이거나 혹은 둘 모두 0이다.5.
6. TCW 플래그들 필드의 비트 10은 1이고 지정된 서브채널은 트랜스포트 파이버-채널-서비스 요청들에 대해 구성되었던 컨트롤 유닛과 관련이 없다.
6.
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
한 실시 예에서, 채널 서브시스템과 컨트롤 유닛들 사이의 링크 초기화가 프로세스 로그인(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
한 실시 예에서, 만일 컨트롤 유닛이 채널에서 이미 발효 중인 프로세스 로그인을 위한 서비스 파리미터들을 수정하려는 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
비트 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.,
FC-SB-4 플래그들 필드(414)(예를 들어, PRLI 요청 페이지의 워드 3의 바이트 3)은 아래에서 기술되는 하나 혹은 그 이상의 플래그들을 포함한다:The FC-SB-4 flags field 414 (e.g.,
0 - 트랜스포트 모드 지원됨. 비트 0이 0으로 세트 될 때, 채널은 트랜스포트-모드 동작들을 지원하지 않는다. 비트 0이 1로 세트 될 때, 채널은 트랜스포트-모드 동작들을 지원한다. 0 - Transport mode supported. When
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
5 - 양방향 데이터 전송 지원됨. 양방향 전송 표시가 활성일 때(예를 들어, 비트 5가 1로 세트 될 때), 양방향 데이터 전송이 채널(128)에 의해서 지원된다. 비트 5가 0으로 세트 될 때, 양방향 데이터 전송이 채널에 의해서 지원되지 않는다. 이 비트는 트랜스포트 모드-지원된 비트가 1일 때만 오직 의미를 갖는다.5 - Two-way data transmission supported. When the bi-directional transmission indication is active (e.g., when
7 - 제1 전송 준비 디스에이블 지원됨(First Transfer Ready Disabled Supported). 비트 7이 1로 세트 될 때, 제1-전송-준비-디스에이블 동작이 채널에 의해서 지원된다. 비트 7이 0으로 세트 될 때, 제1-전송-준비-디스에이블 동작이 채널에 의해서 지원되지 않는다. 트랜스포트-모드-지원된 비트(비트 0)가 0일 때 비트 7은 0으로 세트 될 것이다.
7 - First Transfer Ready Disabled Supported. When
채널 및 컨트롤 유닛 모두가 제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
비트 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
PRLI 수용 서비스 파라미터 페이지(PRLI Accept Service Parameter Page)(420)은 또한 FC-SB-4 플래그들 필드(414)(예를 들어, 워드 3의 바이트 3)를 포함할 수 있는데, 이 필드는 아래에서 기술되는 정의된 하나 혹은 그 이상의 플래그들을 포함한다:The PRLI Accept
0 - 트랜스포트 모드 지원됨. 비트 0이 0으로 세트 될 때, 컨트롤 유닛(118)은 트랜스포트-모드 동작들을 지원하지 않는다. 비트 0이 1로 세트 될 때, 컨트롤 유닛(118)은 트랜스포트-모드 동작들을 지원한다. 0 - Transport mode supported. When
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
5 - 양방향 데이터 전송 지원됨. 양방향 데이터 전송 표시가 활성일 때(예를 들어, 비트 5가 1로 세트 될 때), 양방향 데이터 전송이 컨트롤 유닛(118)에 의해서 지원된다. 비트 5가 0으로 세트 될 때, 양방향 데이터 전송이 컨트롤 유닛(118)에 의해서 지원되지 않는다. 이 비트는 트랜스포트 모드-지원된 비트가 1일 때만 오직 의미를 갖는다.5 - Two-way data transmission supported. When bidirectional data transfer indication is active (e.g., when
7 - 제1 전송 준비 디스에이블 지원됨(First Transfer Ready Disabled Supported). 비트 7이 1로 세트 될 때, 제1-전송-준비-디스에이블이 컨트롤 유닛에 의해서 지원된다. 비트 7이 0으로 세트 될 때, 제1-전송-준비-디스에이블 되는 동작이 컨트롤 유닛에 의해서 지원되지 않는다. 트랜스포트-모드-지원된 비트(비트 0)가 0일 때 비트 7은 0으로 세트 될 것이다.
7 - First Transfer Ready Disabled Supported. When
따라서, 채널 서브시스템 및 컨트롤 유닛은 양방향 데이터 전송들을 위한 그들 각각의 지원에 관하여 서로에게 표시들을 제공하기 위해 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
더 상세한 설명은 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.
컴퓨터 판독가능 매체. 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.
컴퓨터 판독가능 매체.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.
상기 제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.
컴퓨터 판독가능 매체.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.
컴퓨터 판독가능 매체.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.
컴퓨터 판독가능 매체.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.
컴퓨터 판독가능 매체.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.
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.
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.
그리고 상기 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.
상기 호스트 컴퓨터 시스템 내의 채널 서브시스템과 상기 컨트롤 유닛 사이에 링크(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.
장치. 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.
상기 제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.
장치.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.
장치.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.
장치.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.
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.
상기 호스트 컴퓨터 시스템 내의 채널 서브시스템과 상기 컨트롤 유닛 사이에 링크(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.
방법.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.
상기 제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.
방법.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.
방법.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.
방법.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.
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.
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)
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)
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 |