KR100449807B1 - 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜제어 시스템 - Google Patents

호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜제어 시스템 Download PDF

Info

Publication number
KR100449807B1
KR100449807B1 KR10-2002-0081819A KR20020081819A KR100449807B1 KR 100449807 B1 KR100449807 B1 KR 100449807B1 KR 20020081819 A KR20020081819 A KR 20020081819A KR 100449807 B1 KR100449807 B1 KR 100449807B1
Authority
KR
South Korea
Prior art keywords
data
transmission
dma
buffer
command
Prior art date
Application number
KR10-2002-0081819A
Other languages
English (en)
Other versions
KR20040055194A (ko
Inventor
한종석
최용석
모상만
김명준
임기욱
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR10-2002-0081819A priority Critical patent/KR100449807B1/ko
Priority to US10/418,127 priority patent/US6871237B2/en
Publication of KR20040055194A publication Critical patent/KR20040055194A/ko
Application granted granted Critical
Publication of KR100449807B1 publication Critical patent/KR100449807B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Abstract

본 발명은 송수신 Command DMA, 송신전용 Data DMA, 및 수신전용 Data DMA로 구성하고 각 DMA의 특성과 사용 빈도, 동시 처리 기능 등을 고려하여 호스트 버스와의 데이터 전송 프로토콜을 제어함으로써, 호스트 인터페이스 버스의 효율적인 사용과 버스 사용률의 적절한 분배를 통해 최적의 데이터 전송을 지원하고 결과적으로 전체적인 데이터 전송을 원활하게 하는 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜 제어 시스템에 관한 것으로서, 본 발명은 호스트 메모리의 Command 메시지에 대한 읽기 또는 쓰기 수행명령을 내리는 송수신 Command DMA부와, 호스트 메모리의 데이터 메시지에 대해 읽기 수행명령을 내리는 송신전용 Data DMA부와, 수신된 데이터 메시지에 대해 호스트 메모리로 쓰기 수행명령을 내리는 수신전용 Data DMA부와, 상기 각 DMA부의 요청명령을 그 읽기 정보 또는 쓰기 정보 및 메시지 데이터를 호스트 버스에 구동하여 전달하고, 호스트 버스로부터의 전송 응답신호와 읽기 수행 시의 메시지 데이터를 수신하여 해당 DMA부의 응답 버퍼를 통해 전달하는 데이터 전송 프로토콜 제어장치로 구성된다.

Description

호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜 제어 시스템{System for controlling Data Transfer Protocol with a Host Bus Interface}
본 발명은 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜 제어 시스템에 관한 것이며, 보다 상세히는 단일 서버 시스템(single server system)이나 클러스터 시스템(cluster system)에서 데이터 전송을 담당하는 인피니밴드 호스트 채널 어댑터를 구현함에 있어 호스트 프로세서와의 데이터 전송을 위해 사용하는 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜 제어 시스템에 관한 것이다.
일반적으로, 인피니밴드(InfiniBand) 연결망(interconnect network)은 호스트 채널 어댑터(host channel adapter), 타겟 채널 어댑터(target channel adapter), 그리고 인피니밴드 스위치(InfiniBand switch)로 구성된다.
호스트 채널 어댑터는 호스트 프로세서쪽에 위치하여 원격지의 호스트 채널 어댑터(remote host channel adapter) 또는 타켓 채널 어댑터(target channel adapter)와 데이터를 상호 전송하는 기능을 수행하고, 인피니밴드 스위치는 호스트 채널 어댑터와 원격지의 호스트 채널 어댑터 또는 타켓 채널 어댑터의 중간에 위치하여 인피니밴드 연결망을 확장하거나 경로를 제어하는데 사용된다.
호스트 채널 어댑터의 경우 이러한 기능을 수행하기 위하여 한 쪽으로는 인피니밴드 인터페이스를 가지며, 다른 한 쪽으로는 호스트 프로세서와의 인터페이스를 위해 호스트 프로세서 인터페이스를 가진다.
한편, 현재까지 PCI/PCI-X 호스트 버스 인터페이스를 갖는 다수의 호스트 채널 어댑터들이 개발되었으나 각각 독자적인 구성 및 구현 방법을 갖기 때문에 그 구현 결과가 서로 다르다.
예컨대, Yatin R. Acharya는 특허 USP 6,456,698호(발명의 명칭: Supporting Mapping of Layer 3 Priorities in an InfiniBand Network)에서 기존 IP (Internet Protocol) 패킷 헤더에 포함되어 있는 TOS 정보와 인피니밴드 패킷에서 지원되는 SL (service level)의 설정 값이 다르기 때문에 이를 재 설정하여 인피니밴드 연결망에서 서비스 레벨에 따라 원하는 서비스를 받을 수 있도록 하고, IP-to-InfiniBand 라우터내에 DS to SL 맵핑 테이블을 사용하여 맵핑을 수행하는 방법을 고안하였다.
또한, Aamer Latif 등은 특허 USP 6,400,730호(발명의 명칭: Method and Apparatus for Transferring Data between IP network devices and SCSI and Fibre Channel devices over an IP network)에서 IP network devices간에, SCSI devices간에, 그리고 Fibre Channel devices간에도 서로 데이터 패킷을 교환할 수 있도록 하고, 기존 동일한 프로토콜에서만 지원되던 데이터 패킷 교환 방법을 확장하여 서로 다른 프로토콜 간에도 쉽게 데이터 패킷을 교환해 줄 수 있는 방법을 제시하였다.
또한, Raul A. Aguilar 등은 특허 USP 6,199,137호(발명의 명칭: Method and Device for controlling Data flow through an IO controller)에서 하나의 디바이스에 리스트 프로세서, 시스템 버스 인터페이스, 그리고 포트 라우터를 내장하여 처리함으로써 언제든지 가상 입출력 포트에 대한 구성을 바꾸거나 가상 입출력 포트를 삽입하거나 가상 입출력 포트를 삭제 가능하도록 유연한 구조의 입출력 포트 구성 방법을 제안하였다.
하지만, 상기 제시된 종래의 호스트 채널 어댑터 장치 및 방법들은 호스트 인터페이스 버스의 효율적인 데이터 전송 프로토콜을 지원하지 않을 뿐만 아니라 버스의 사용률을 적절히 분배하여 최적의 전송 흐름을 지원하지 않기 때문에, 이와 같은 기능을 수행할 수 있는 호스트 채널 어댑터 장치가 고안될 필요가 있다.
따라서, 본 발명은 상술한 필요성을 해결하기 위한 것으로서, 본 발명의 목적은 송수신 Command DMA, 송신전용 Data DMA, 및 수신전용 Data DMA로 구성하고 각 DMA의 특성과 사용 빈도, 동시 처리 기능 등을 고려하여 호스트 버스와의 데이터 전송 프로토콜을 제어함으로써, 호스트 인터페이스 버스의 효율적인 사용과 버스 사용률의 적절한 분배를 통해 최적의 데이터 전송을 지원하고 결과적으로 전체적인 데이터 전송을 원활하게 하는 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜 제어 시스템을 제공하는데 있다.
상기 본 발명의 목적을 달성하기 위한 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜 제어 시스템은, 데이터 전송 프로토콜 제어장치와의 인터페이스를 위해 Command DMA 요청 버퍼와 Command DMA 응답 버퍼를 구비하여, Command 메시지의 읽기 동작수행 시 상기 Command DMA 요청 버퍼에 읽기 수행명령을 내리고 해당 호스트 메모리의 주소 정보를 제공하고, Command 메시지 쓰기 동작수행 시는 상기 Command DMA 요청 버퍼에 쓰기 수행명령을 내리고 해당 호스트 메모리의 주소 정보 및 Command 메시지 데이터를 제공하는 송수신 Command DMA부; 데이터 전송 프로토콜 제어장치와의 인터페이스를 위해 송신 Data DMA 요청 버퍼와 송신 Data DMA 응답 버퍼(152)와 송신전용 데이터 버퍼를 구비하여, 상기 송신 Data DMA 요청 버퍼에 읽기 수행명령을 내리고 해당 호스트 메모리의 주소와 송신전용 데이터 버퍼의 저장위치 주소를 제공하는 송신전용 Data DMA부; 데이터 전송 프로토콜 제어장치와의 인터페이스를 위해 수신 Data DMA 요청 버퍼와 수신 Data DMA 응답 버퍼와 수신전용 데이터 버퍼를 구비하여, 상기 수신 Data DMA 요청 버퍼에 쓰기 수행 명령을 내리고 해당 호스트 메모리 주소와 수신전용 데이터 버퍼의 저장위치 주소 정보를 제공하는 수신전용 Data DMA부; 및 상기 Command DMA 요청 버퍼의 수행 명령이 읽기 명령일 경우, 그 읽기 정보를 호스트 버스에 구동하여 전달한 후 호스트 메모리로부터의 Command 메시지 데이터와 그 읽기동작의 완료여부에 대한 전송 응답신호를 수신하여 이를 상기 Command DMA 응답 버퍼에 저장하고, 상기 Command DMA 요청 버퍼의 수행 명령이 쓰기 명령일 경우, 그 쓰기 정보와 Command 메시지 데이터를 호스트 버스에 구동하여 전달한 후 그 쓰기동작의 완료여부에 대한 전송 응답신호를 수신하여 상기 Command DMA 응답 버퍼에 저장하며, 상기 송신 Data DMA 요청 버퍼의 명령내용을 확인하고, 그 확인된 정보를 호스트 버스에 구동하여 전달한 후 그에 따른 호스트 메모리로부터의 데이터 메시지를 상기 송신전용 데이터 버퍼의 저장 위치 주소에 정렬하고 그 읽기동작의 완료여부에 대한 전송응답 신호를 수신하여 상기 송신 Data DMA 응답 버퍼(152)에 저장하며, 상기 수신 Data DMA 요청 버퍼의 명령내용을 확인하고, 그 확인된 정보와 상기 수신전용 데이터 버퍼에 저장된 데이터 메시지를 호스트 버스에 구동하여 전달한 후 그 쓰기동작의 완료여부에 대한 전송응답 신호를 수신하여 상기 수신 Data DMA 응답 버퍼에 저장하는 데이터 전송 프로토콜 제어 장치;로 구성된다.
도 1은 본 발명에 따른 데이터 전송 프로토콜 제어 시스템에 대한 블록 구성도.
도 2a는 본 발명에 따른 읽기 요청을 수행하는 Command DMA 버퍼의 구성 및 패킷을 보여주는 도면.
도 2b는 본 발명에 따른 쓰기 요청을 수행하는 Command DMA 버퍼의 구성 및 패킷을 보여주는 도면.
도 3은 본 발명에 따른 읽기 요청을 수행하는 송신전용 Data DMA 버퍼의 구성 및 패킷을 보여주는 도면.
도 4는 본 발명에 따른 쓰기 요청을 수행하는 수신전용 Data DMA 버퍼의 구성 및 패킷을 보여주는 도면.
도 5는 본 발명에 따른 데이터 전송 프로토콜 제어 과정에 대한 흐름도로서,
도 5a는 Command DMA의 전송 요청에 대한 흐름도.
도 5b는 송신전용 Data DMA의 전송 요청에 대한 흐름도.
도 5c는 수신전용 Data DMA의 전송 요청에 대한 흐름도.
<도면의 주요부분에 대한 부호의 설명>
110: 호스트 버스 120: 호스트 버스 인터페이스
130: 데이터 전송 프로토콜 제어장치
131: 프로토콜 처리 마스터
140: 송수신 Command DMA 141: Command DMA 요청 버퍼
142: Command DMA 응답 버퍼 150: 송신전용 Data DMA
151: 송신 Data DMA 요청 버퍼 152: 송신 Data DMA 응답 버퍼
153: 송신전용 데이터 버퍼 160: 수신전용 Data DMA
161: 수신 Data DMA 요청 버퍼 162: 수신 Data DMA 응답 버퍼
163: 수신전용 데이터 버퍼
이하, 본 발명에 따른 실시예를 첨부한 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명에 따른 데이터 전송 프로토콜 제어 시스템에 대한 블록 구성도이다.
도 1에 도시된 바와 같이, 본 발명의 시스템은 데이터 전송 프로토콜 제어장치(130)와, 송수신 Command DMA(140)와, 송신전용 Data DMA(150)와, 수신전용 Data DMA(160)를 포함하여 이루어진다.
상기 데이터 전송 프로토콜 제어장치(130)는 PCI/PCI-X 호스트 버스(110)의 PCI/PCI-X 호스트 버스 인터페이스(120)를 호스트 프로세서 인터페이스로서 갖는 호스트 채널 어댑터에서 데이터 전송 프로토콜을 제어하는 장치이며, 내부적으로 프로토콜 처리 마스터(131)와, 인터럽트 제어기(132)와, 프로토콜 처리 타켓(133)을 구비한다.
또한, 상기 데이터 전송 프로토콜 제어장치(130)와 상기 각 DMA와의 인터페이스를 위해 버퍼장치들을 구비한다.
즉, 상기 송수신 Command DMA(140)와의 인터페이스를 위해 Command DMA 요청 버퍼(141)와 Command DMA 응답 버퍼(142)를 구비하며, 상기 송신전용 Data DMA(150)와의 인터페이스를 위해 송신 Data DMA 요청 버퍼(151)와 송신 Data DMA 응답 버퍼(152)와 송신전용 데이터 버퍼(153)를 구비하고, 수신전용 Data DMA(160)와의 인터페이스를 위해 수신 Data DMA 요청 버퍼(161)와 수신 Data DMA 응답 버퍼(162)와 수신전용 데이터 버퍼(163)를 구비한다.
이하에서는 수행 동작(읽기, 쓰기 등)에 따른 상기 각 구성요소들의 역할 및 수행 기능에 대해 살펴보기로 한다.
먼저, 상기 송수신 Command DMA(140)를 통해 호스트로부터 소정의 메시지를읽어오고자 할 경우, 상기 송수신 Command DMA(140)는 Command DMA 요청 버퍼(141)의 패킷 헤더에 읽기 수행명령을 내리고 해당 호스트 메모리의 주소를 제공한다.
이에 따라 상기 데이터 전송 프로토콜 제어장치(130)는 Command DMA 요청 버퍼(141)에 저장된 패키 헤더의 명령을 확인하고 그에 따라 읽기 동작을 수행한다.
이러한 읽기 동작을 수행하기 위하여, 상기 데이터 전송 프로토콜 제어장치(130)는 PCI/PCI-X 버스 프로토콜에 따라 상기 확인된 정보를 PCI/PCI-X 호스트 버스 인터페이스(120)에게 제공하고, 이에 따라 PCI/PCI-X 호스트 버스 인터페이스(120)는 PCI/PCI-X 버스(110)를 구동시킨다.
이때, 응답으로 PCI/PCI-X 호스트 버스(110)에 해당 주소의 메시지가 실리면, PCI/PCI-X 호스트 버스 인터페이스(120)는 이 메시지를 데이터 전송 프로토콜 제어장치(130)에게 제공하고, 상기 데이터 전송 프로토콜 제어장치(130)는 패킷 포맷에 맞추어 Command DMA 응답 버퍼(142)에 이 메시지를 저장함으로써 읽기 동작을 수행하게 된다.
한편, 상기 송수신 Command DMA(140)를 통해 호스트 메모리로 소정의 command 메시지를 쓰고자 할 경우, 상기 송수신 Command DMA(140)는 Command DMA 요청 버퍼(141)의 패킷 헤더에 쓰기 수행 명령을 내리고 해당 호스트 메모리 주소 및 Command 메시지를 제공한다.
또한, 상기 데이터 전송 프로토콜 제어장치(130)는 Command DMA 요청 버퍼(141)에 저장된 패킷 헤더의 명령 내용을 확인하고 그에 따라 쓰기 동작을 수행한다.
즉, 상기 데이터 전송 프로토콜 제어장치(130)는 PCI/PCI-X 버스 프로토콜에 따라 상기 확인된 정보(호스트 메모리 주소 및 메시지)를 PCI/PCI-X 호스트 버스 인터페이스(120)에게 제공하고, PCI/PCI-X 호스트 버스 인터페이스(120)는 해당 신호를 PCI/PCI-X 버스(110)에 구동한다.
이때, PCI/PCI-X 호스트 버스(110)에 해당 주소 및 메시지가 실리고 호스트 메모리로 전송이 완료되면, PCI/PCI-X 호스트 버스(110)에 전송 종료 신호가 구동되고 PCI/PCI-X 호스트 버스 인터페이스(120)는 이 신호를 감지하여 데이터 전송 프로토콜 제어장치(130)에게 전송이 완료되었음을 알린다.
그리고, 상기 데이터 전송 프로토콜 제어장치(130)는 패킷 헤더에 전송 완료 정보를 실어 Command DMA 응답 버퍼(142)에 응답 패킷을 저장한다.
한편, 호스트 메모리로부터 데이터 메시지를 가져오고자 할 경우, 상기 송신전용 Data DMA(150)는 송신 Data DMA 요청 버퍼(151)의 패킷 헤더에 읽기 수행명령을 내리고 해당 호스트 메모리의 주소와 송신전용 데이터 버퍼(153)의 저장위치 주소를 제공한다.
그리고, 상기 데이터 전송 프로토콜 제어장치(130)는 송신 Data DMA 요청 버퍼(151)에 저장된 패킷 헤더의 명령내용을 확인한 후, PCI/PCI-X 버스 프로토콜에 따라 상기 확인된 정보를 PCI/PCI-X 호스트 버스 인터페이스(120)에게 제공함으로써 읽기 동작을 수행한다.
이에 따라 상기 PCI/PCI-X 호스트 버스 인터페이스(120)는 해당 신호를 PCI/PCI-X 호스트 버스(110)에 구동시키고, 그 응답으로서 PCI/PCI-X 버스에 호스트 메모리로부터의 데이터 메시지가 실리면, 이 메시지를 데이터 전송 프로토콜 제어장치(130)에게 전달한다.
상기 데이터 전송 프로토콜 제어장치(130)는 이 데이터 메시지를 상기 확인된 송신전용 데이터 버퍼(153)의 저장 위치 주소에 정렬하고, 패킷 헤더에 송신데이터 저장완료 정보를 실어 상기 송신 Data DMA 응답 버퍼(152)에 응답 패킷을 저장한다.
한편, 호스트 메모리로 소정의 데이터 메시지를 쓰고자 할 경우, 상기 수신전용 Data DMA(160)는 수신 Data DMA 요청 버퍼(161)의 패킷 헤더에 쓰기 수행 명령을 내리고 해당 호스트 메모리 주소와 수신전용 데이터 버퍼(163)의 저장 위치 주소 정보를 제공한다.
이에 따라, 상기 데이터 전송 프로토콜 제어장치(130)는 상기 수신 Data DMA 요청 버퍼(161)에 저장된 패킷 헤더의 명령내용을 확인하고 PCI/PCI-X 버스 프로토콜에 따라 필요한 정보(호스트 메모리 주소 및 수신전용 데이터 버퍼(163)에 저장된 데이터 메시지)를 읽어 PCI/PCI-X 호스트 버스 인터페이스(120)에게 제공한다.
상기 PCI/PCI-X 호스트 버스 인터페이스(120)는 해당 신호를 PCI/PCI-X 호스트 버스(110)에 구동한다.
이때, PCI/PCI-X 호스트 버스(110)에 해당 주소 및 메시지가 실리고 호스트 메모리로 전송이 완료되면, PCI/PCI-X 버스에는 전송종료 신호가 구동되고 PCI/PCI-X 호스트 버스 인터페이스(120)는 이 신호를 감지하여 상기 데이터 전송 프로토콜 제어장치(130)에게 전송이 완료되었음을 알린다.
이에 따라, 상기 데이터 전송 프로토콜 제어장치(130)는 패킷 헤더에 수신 데이터 쓰기 완료 정보를 실어 수신 Data DMA 응답 버퍼(162)에 응답 패킷을 저장한다.
이하에서는 도 2a내지 도 4를 참조하여 각 DMA에 대한 버퍼 구성 및 데이터 패킷에 대해 살펴보기로 한다.
도 2a는 본 발명에 따른 읽기 요청을 수행하는 Command DMA 버퍼의 구성 및 패킷을 보여주는 도면이다.
도 2a에 도시된 바와 같이, Command DMA 버퍼는 Command DMA 요청 버퍼(141)와 Command DMA 응답 버퍼(142)로 구성된다.
상기 Command DMA 요청 버퍼(141)에는 최대 8개의 패킷을 저장할 수 있으며, 각 패킷은 요청 패킷 헤더(211)와 호스트 메모리 주소부(212)를 포함한다.
상기 요청 패킷 헤더(211)는 4비트의 명령 필드와, 8비트의 바이트 유효(byte enable) 필드와, 4비트의 DMA 아이디 필드와, 3비트의 트랜잭션 아이디 필드와, 12비트의 메시지 크기 필드로 이루어진다.
상기 호스트 메모리 주소부(212)는 64비트로 표현되며 32비트 크기의 2개 필드로 분할되어 저장된다.
또한, 상기 Command DMA 응답 버퍼(142)도 동일하게 최대 8개의 패킷을 저장할 수 있는데, 각 패킷은 응답 패킷 헤더(213)와 호스트 메모리 주소부(214)를 포함한다.
상기 응답 패킷 헤더(213)는 상기 요청 패킷 헤더(211)에 비해 2비트의 상태필드가 추가된 형태이며 나머지 부분에 대해서는 동일하다.
이와 같은 버퍼의 구조를 이용하여 상기 송수신 Command DMA(140)는 호스트 메모리에 대해 메시지 읽기를 요청하고 그 응답을 확인하게 된다.
즉, 상기 송수신 Command DMA(140)는 호스트 메모리에서 메시지를 가져오기 위하여 상기 요청 패킷 헤더(211)의 명령 필드에 읽기 수행명령 비트를 설정하고, 메시지 크기에 맞추어 바이트 유효 필드에 해당 값을 정해준다.
DMA 아이디 필드와 트랜잭션 아이디 필드에 분별 가능한 DMA 아이디 값 및 Command DMA 요청 버퍼(141)의 패킷임을 나타내는 트랜잭션 아이디 값을 설정하고, 해당 요청 메시지의 크기정보를 메시지 크기 필드에 실어준다.
또한, 상기 호스트 메모리 주소부(212)에는 읽어올 메모리 주소를 실어 줌으로써 하나의 요청 패킷을 완성하게 된다.
상기 데이터 전송 프로토콜 제어장치(130)는 이러한 요청 패킷을 확인하여 호스트 메모리에 대해 읽기 동작을 수행하게 되는데, 해당 메시지의 읽기 과정에서 오류가 발생하면 상기 응답 패킷 헤더(213)의 상태 필드에 오류 정보를 설정하여 읽기 전송 오류임을 알리고, 정상적으로 읽기 전송이 완료된 경우 완료 정보를 설정하여 읽기 전송이 무사히 종료되었음을 알린다.
이때, 읽기가 완료된 응답 패킷은 응답 패킷 헤더(213)와, 호스트 메모리 주소부(214)와, 읽기 메시지 데이터(215)로 구성되며, 읽기 메시지 데이터(215)는 상기 설정된 요청 메시지 크기만큼 저장된다.
이로써, 상기 송수신 Command DMA(140)는 상기 저장된 읽기 메시지 데이터를그 필요에 따라 활용하게 된다.
도 2b는 본 발명에 따른 쓰기 요청을 수행하는 Command DMA 버퍼의 구성 및 패킷을 보여주는 도면이다.
도 2b에 도시된 바와 같이, Command DMA 버퍼는 Command DMA 요청 버퍼(141)와 Command DMA 응답 버퍼(142)를 가지고 읽기와 쓰기를 모두 처리할 수 있기 때문에 읽기와 쓰기에 대한 각각의 버퍼를 두지 않고 공유하여 사용한다.
Command DMA 쓰기 동작의 경우, 요청 패킷은 패킷 헤더(221)와, 호스트 메모리 주소부(222)와, 쓰기 메시지 데이터(223)로 이루어지며, 쓰기 요청 패킷 헤더(221)는 상기 읽기 요청시의 요청 패킷 헤더(211)와 동일한 데이터 구조로 이루어진다.
또한, 상기 데이터 전송 프로토콜 제어장치(130)는 응답 패킷 헤더(226)의 상태 필드를 통해 메시지 쓰기 동작에 오류가 발생하였는지 정상적으로 완료되었는지 여부를 상기 송수신 Command DMA(140)에 알린다.
이때, 쓰기가 완료된 응답 패킷의 경우 응답 패킷 헤더(226)와 호스트 메모리 주소(225)만으로 이루어진다.
도 3은 본 발명에 따른 읽기 요청을 수행하는 송신전용 Data DMA 버퍼의 구성 및 패킷을 보여주는 도면이다.
도 3에 도시된 바와 같이, 송신전용 Data DMA 버퍼는 송신 Data DMA 요청 버퍼(151)와, 송신 Data DMA 응답 버퍼(152)와, 송신전용 데이터 버퍼(153)로 구성된다.
상기 송신 Data DMA 요청 버퍼(151)는 최대 16개의 패킷을 저장할 수 있으며, 각 패킷은 요청 패킷 헤더(311)와 호스트 메모리 주소부(312)를 포함한다.
상기 요청 패킷 헤더(311)는 4비트의 명령 필드와, 8비트의 바이트 유효(byte enable) 필드와, 11비트의 송신전용 데이터 버퍼 주소와, 2비트의 패킷 연결 필드와, 4비트의 DMA 아이디 필드와, 3비트의 트랜잭션 아이디 필드와, 2비트의 서브트랜잭션 아이디 필드와, 12비트의 메시지 크기 필드로 구성된다.
상기 호스트 메모리 주소부(312)는 64비트로 표현되며 32비트 크기의 2개 필드로 분할되어 저장된다.
또한, 상기 송신 Data DMA 응답 버퍼(152)는 상기 송신 Data DMA 요청 버퍼(151)와 마찬가지로 최대 16개의 패킷을 저장할 수 있으며, 각 패킷은 하나의 응답 패킷 헤더(313)만으로 구성된다.
상기 응답 패킷 헤더(313)는 상기 요청 패킷 헤더(311)에 비해 2비트의 상태 필드가 추가된 형태이며 나머지 부분은 동일하다.
또한, 상기 송신전용 데이터 버퍼(153)는 순수 메시지 데이터로 구성되며, 상기 송신 Data DMA 요청 버퍼(151)의 요청에 따른 결과 메시지가 저장되는 공간이다.
이와 같은 버퍼 구조를 통해 상기 송신전용 Data DMA(150)가 호스트 메모리로부터 소정의 메시지를 읽어오는 동작은 다음과 같이 이루어진다.
즉, 상기 송신전용 Data DMA(150)는 상기 요청 패킷 헤더(311)의 명령 필드에 읽기 수행 명령비트를 설정하고, 메시지 크기에 맞추어 바이트 유효 필드에 해당 값을 정해주며, 읽은 메시지가 저장될 송신전용 데이터 버퍼(153)의 주소값을 설정한다.
이때, 송신전용 Data DMA(150)의 경우 메시지의 크기가 크기 때문에송수신 Command DMA(140)와는 달리 하나의 메시지를 여러 개로 분할하여 데이터를 요청할 수 있다.
즉, 독립된 하나의 메시지를 요청할 경우는 상기 패킷 연결 필드에 "00" 값을 설정한다. 또한, 데이터를 분할 요청할 경우, 분할된 메시지의 첫 데이터 요청에 대해서는 상기 패킷 연결 필드에 "01"값을 설정하고, 분할된 메시지의 연속된 중간 데이터 요청에 대해서는 "10"값을, 그리고 분할된 메시지의 마지막 데이터 요청에 대해서는 "11"값을 각각 설정하여 요청한다.
또한, 상기 DMA 아이디 필드와 트랜잭션 아이디 필드에는 송신 Data DMA 요청 버퍼(151)의 패킷임을 나타낼 수 있는 분별 가능한 DMA 아이디값과 트랜잭션 아이디값을 각각 설정하며, 추가로 더 세분화해서 메시지를 요청할 필요가 있을 경우는 상기 서브트랜잭션 아이디 필드에 값을 설정하여 사용한다.
또한, 상기 메시지 크기 필드에 해당 요청 메시지의 크기를 실어주고, 호스트 메모리 주소부(312)에는 읽어올 호스트 메모리 주소를 실어 줌으로써 하나의 요청 패킷을 완성하여 데이터 전송 프로토콜 제어장치(130)에게 데이터 메시지 읽기 전송을 요청한다.
상기 데이터 전송 프로토콜 제어장치(130)는 해당 메시지 읽기 전송 요청을 수행하여 그 응답으로서 받은 메시지를 송신전용 데이터 버퍼(153)의 상기 설정된주소에 저장한다.
또한, 데이터 전송 프로토콜 제어장치(130)는 응답 패킷 헤더(313)의 상태 필드에 오류 발생 또는 정상 동작 여부에 대한 정보를 설정하고 이 응답 패킷을 송신 Data DMA 응답 버퍼(152)에 저장한다.
도4는 본 발명에 따른 쓰기 요청을 수행하는 수신전용 Data DMA 버퍼의 구성 및 패킷을 보여주는 도면이다.
도 4에 도시된 바와 같이, 상기 수신전용 Data DMA 버퍼는 수신 Data DMA 요청 버퍼(161)와, 수신 Data DMA 응답 버퍼(163)와, 수신전용 데이터 버퍼(163)로 구성된다.
상기 수신 Data DMA 요청 버퍼(161)는 최대 16개의 패킷을 저장할 수 있으며 각 패킷은 요청 패킷 헤더(411)와 호스트 메모리 주소부(412)를 포함한다.
상기 요청 패킷 헤더(411)는 4비트의 명령 필드와, 8비트의 바이트 유효 필드와, 11비트의 수신전용 데이터 버퍼 주소와, 2비트의 패킷 연결 필드와, 4비트의 DMA 아이디 필드와, 3비트의 트랜잭션 아이디 필드와, 2비트의 서브트랜잭션 아이디 필드와, 12비트의 메시지 크기 필드로 이루어진다.
상기 호스트 메모리 주소부(412)는 64비트로 표현되며 32비트 크기의 2개 필드로 분할되어 저장된다.
또한, 상기 수신 Data DMA 응답 버퍼(162)는 상기 수신 Data DMA 요청 버퍼(161)와 마찬가지로 최대 16개의 패킷을 저장할 수 있으며 각 패킷은 하나의 응답 패킷 헤더(413)로만 이루어진다.
상기 응답 패킷 헤더(413)는 상기 요청 패킷 헤더(411)에 비해 2비트의 상태 필드만이 추가된 형태이며 나머지 부분은 동일하다.
또한, 상기 수신전용 데이터 버퍼(163)는 순수 메시지 데이터로 구성되며, 수신전용 Data DMA(160)의 쓰기 동작 과정에서 호스트 메모리로 전달할 메시지 데이터를 임시 보관하는 공간이다.
상기 수신전용 Data DMA(160)는 상기 수신전용 데이터 버퍼(163)에 저장된 메시지 데이터를 호스트 메모리에 쓰기 위하여, 상기 수신 Data DMA 요청 버퍼(161)의 패킷 헤더에 각 필드값을 설정하게 되는데, 그 설정 내용은 송신 Data DMA 요청 버퍼(151)에 대해 상기 설명된 바와 유사하다.
상기 데이터 전송 프로토콜 제어장치(130)는 상기 요청 패킷 헤더(411)의 각 필드 내용과 호스트 메모리 주소를 확인하고 상기 수신전용 데이터 버퍼(163)에서 해당 크기만큼 메시지 데이터를 읽은 다음 이에 따라 호스트 메모리로 메시지 쓰기 전송을 수행하게 된다.
그리고, 상기 데이터 전송 프로토콜 제어장치(130)는 상기 PCI/PCI-X 호스트 버스 인터페이스(120)를 통해 그 쓰기 전송에 대한 오류 발생 또는 정상 완료 여부를 확인하고 이에 대한 정보를 상기 응답 패킷 헤더(413)의 상태 필드에 설정하고, 이 응답 패킷을 상기 수신 Data DMA 응답 버퍼(163)에 저장한다.
한편, 도 5a내지 도 5c는 본 발명에 따른 상기 데이터 전송 프로토콜 제어장치(130)(특히 프로토콜 처리 마스터(131))의 동작 과정에 대한 흐름도이다.
상기 데이터 전송 프로토콜 제어장치(130)의 프로토콜 처리 마스터(131)는준비 상태로 대기하고 있다가 전송 요청이 감지되면,(S501) 내부 DMA로부터의 전송 요청인지 아니면 PCI/PCI-X 버스 상에서 구동한 버스 요청인지를 파악한다.(S502)
이때, 내부 DMA로부터의 전송 요청일 경우, 그 요청이 Command DMA 전송 요청인지, 송신전용 Data DMA 요청인지, 또는 수신전용 Data DMA 요청인지를 판단하여 각각에 대한 동작을 수행한다.(S503)
송수신 Command DMA(140)의 전송 요청일 경우, 도 5a에 도시된 바와 같이, 상기 프로토콜 처리 마스터(131)는 먼저 PCI/PCI-X 호스트 버스 인터페이스(120)의 준비 상태를 확인하고,(S504) Command DMA 요청 버퍼(141)의 요청 패킷 헤더(211)를 읽어 읽기 전송 요청인지 쓰기 전송 요청인지를 파악한다.(S505)
이때, 상기 PCI/PCI-X 호스트 버스 인터페이스(120)가 전송 가능한 상태이고 읽기 요청일 경우, PCI/PCI-X 호스트 버스 인터페이스(120)로 해당 읽기 정보를 전달하고 호스트 버스(110)로 신호가 구동된 후,(S506) 호스트 버스의 전송 응답 신호를 기다린다.(S507)
호스트 버스(110)로부터 전송 응답 신호가 전달되면, 이를 분석하여 오류가 발생하였는지 정상적으로 완료되었는지를 확인한다.(S508)
읽기 전송이 정상적으로 이루어졌을 경우, 상기 프로토콜 처리 마스터(131)는 PCI/PCI-X 호스트 버스 인터페이스(120)를 통해 수신된 메시지를 응답 패킷 형태로 가공하여 Command DMA 응답 버퍼(142)에 저장하고 응답 패킷 헤더(213)의 상태 필드에 전송 완료 비트를 설정한 후 다시 준비 상태로 천이한다.(S509)
버스 전송 응답 신호가 전송 에러를 나타낼 경우, 상기 데이터 전송 프로토콜 제어장치(130)는 응답 패킷 헤더(213)의 상태 필드에 오류 비트를 설정한 후 Command DMA 응답 버퍼(142)에 저장하고 준비 상태로 천이한다.(S510)
또한, 버스 전송 응답 신호가 분리 응답일 경우, 나중에 메시지를 응답해 주겠다는 의미이므로 현재 상태의 요청 패킷에 대한 메타 데이터를 내부 테이블에 저장하고 준비 상태로 천이한다. 추후 응답 메시지가 도착하게 되면 상기 S509 과정을 통해 최종 전송을 마무리하게 된다.(S511)
한편, PCI/PCI-X 호스트 버스 인터페이스(120)가 전송 가능한 상태이고 쓰기 요청일 경우, 상기 데이터 전송 프로토콜 제어장치(130)는 PCI/PCI-X 호스트 버스 인터페이스(120)로 해당 쓰기 정보를 전달하고 호스트 버스(110)로 신호가 구동된 후,(S512) 메시지 크기 만큼 메시지 데이터를 연속하여 PCI/PCI-X 호스트 버스 인터페이스(120)로 전달하여 호스트 버스(110)에 구동시킨다.(S513, S514)
메시지 데이터 전부를 호스트 버스(110)에 구동시킨 후 버스 전송 응답 신호를 기다린 다음 전달된 버스 전송 응답 신호를 해석하여 메시지 전송의 정상 동작 여부를 판단한다.(S515)
이때, 쓰기 전송이 정상적으로 완료되었을 경우 응답 패킷 헤더(226)의 상태 필드에 전송 완료 비트를 설정하고 다시 준비 상태로 천이하고,(S516) 버스 전송 응답 신호가 전송 에러를 나타낼 경우는 응답 패킷 헤더(226)에 오류 비트를 설정하고 준비 상태로 천이한다.(S517)
한편, 송신전용 Data DMA(150)의 전송 요청일 경우, 도 5b에 도시된 바와 같이, 상기 데이터 전송 프로토콜 제어장치(130)는 먼저 PCI/PCI-X 호스트 버스 인터페이스(120)의 준비 상태를 확인하고,(S521) 송신 Data DMA 요청 버퍼(151)에 저장된 패킷의 헤더(311)를 읽어 PCI/PCI-X 호스트 버스 인터페이스(120)로 해당 읽기 정보를 전달하여 호스트 버스(110)로 신호를 구동한다.(S522)
그리고, 호스트 버스(110)의 전송 응답 신호를 기다린 후,(S523) PCI/PCI-X 호스트 버스 인터페이스(120)를 통해 버스 전송 응답 신호가 전달되면 이를 분석하여 에러 발생, 정상 전송, 분리 전송 등을 확인한다.(S524)
이때, 정상적인 전송이 이루어졌을 경우, 상기 패킷 연결 필드를 확인하여, 단일 메시지 또는 마지막 메시지의 전송인지 아니면 처음 메시지의 전송 또는 중간 연속 메시지의 전송인지를 확인한다.(S525)
단일 메시지의 전송이거나 메시지의 마지막 전송일 경우는 수신된 메시지 데이터를 송신전용 데이터 버퍼(153)에 저장한 후 송신전용 데이터 버퍼(153)를 닫는다. 또한, 응답 패킷 헤더(313)에 전송 완료 비트를 설정한 후 이 응답 패킷을 송신 Data DMA 응답 버퍼(152)에 저장하고 준비 상태로 천이한다.(S526)
메시지의 처음 전송이거나 중간의 연속 전송일 경우는 수신된 메시지를 송신전용 데이터 버퍼(153)에 저장하고, 응답 패킷 헤더(313)에 전송 완료 비트를 설정하여 이 응답 패킷을 송신 Data DMA 응답 버퍼(152)에 저장한 후 준비 상태로 천이한다.(S527) 이때, 송신전용 데이터 버퍼(153)는 닫지 않고 다음 메시지가 연속된 주소 공간에 쓰여 질 수 있도록 한다.
상기 버스 전송 응답 신호의 분석을 통해 전송 에러가 확인되면, 상기 데이터 전송 프로토콜 제어장치(130)는 응답 패킷 헤더(313)에 오류 비트를 설정하고이 응답 패킷을 송신 Data DMA 응답 버퍼(152)에 저장한 후 준비 상태로 천이한다.(S528)
또한, 상기 버스 전송 응답 신호가 분리 응답일 경우, 나중에 메시지를 응답해 주겠다는 의미이므로 현재 상태의 요청 패킷에 대한 메타 데이터를 내부 테이블에 저장하고 준비 상태로 천이한다.(S529) 추후에 그 응답 메시지가 도착되면 상기 S525내지 S527과정을 거쳐 최종 전송을 마무리하게 된다.
한편, 수신전용 Data DMA(160)의 전송 요청일 경우, 상기 도 5c에 도시된 바와 같이, 상기 데이터 전송 프로토콜 제어장치(130)는 먼저 PCI/PCI-X 호스트 버스 인터페이스(120)의 준비 상태를 확인하고,(S531) 수신 Data DMA 요청 버퍼(161)에 저장된 패킷의 헤더(411)를 읽어 PCI/PCI-X 호스트 버스 인터페이스(120)로 해당 쓰기 정보를 전달하여 호스트 버스(110)로 신호를 구동한다.(S532)
또한, 상기 수신전용 데이터 버퍼(163)에 저장된 메시지를 읽어 그 메시지 크기만큼 연속하여 PCI/PCI-X 호스트 버스 인터페이스(120)로 전달하여 호스트 버스(110)에 구동시킨다.(S533, S534)
수신 메시지의 모든 데이터를 전달하여 버스에 구동시키게 되면, 호스트로부터의 버스 전송 응답신호를 기다리고 이 버스 전송 응답신호가 전달되면 이를 해석하여 오류 발생 또는 정상 전송 여부를 확인한다.(S535)
이때, 오류 없이 쓰기 전송이 완료되었을 경우 상기 패킷 연결 필드를 확인하여 그 전송이 단일 메시지의 전송 또는 메시지의 마지막 전송인지 아니면 메시지의 처음 전송 또는 중간 연속 전송인지를 판단한다.(S536)
단일 메시지 전송이거나 메시지의 마지막 전송일 경우, 상기 데이터 전송 프로토콜 제어장치(130)는 수신전용 데이터 버퍼(163) 내용을 비우고, 응답 패킷 헤더(413)에 전송 완료 비트를 설정한 후 이 응답 패킷을 수신 Data DMA 응답 버퍼(162)에 저장하고 준비 상태로 천이한다.(S537)
메시지의 처음 전송이거나 중간의 연속 전송일 경우, 응답 패킷 헤더(413)에 전송 완료 비트를 설정하고 이 응답 패킷을 수신 Data DMA 응답 버퍼(162)에 저장한 후 준비 상태로 천이한다.(S538) 이때, 수신전용 데이터 버퍼(162)의 내용은 최종 전송이 마무리되지 않았기 때문에 비우지 않는다.
또한, 상기 버스 전송 응답 신호가 전송 에러를 나타낼 경우, 상기 데이터 전송 프로토콜 제어장치(130)는 응답 패킷 헤더(413)에 오류 비트를 설정하고 이 응답 패킷을 수신 Data DMA 응답 버퍼(162)에 저장한 후 준비 상태로 천이한다.(S539)
한편, 상기 S502과정에서 전송 요청이 PCI/PCI-X 버스 상에서 구동된 분리 응답에 대한 버스 요청인 것으로 파악되면, 상기 데이터 전송 프로토콜 제어장치(130)는 내부 테이블에 저장된 메타 데이터를 비교하여 Command DMA 읽기 요청에 대한 분리 응답인지 송신전용 Data DMA(150) 읽기 요청에 대한 분리 응답인지를 판단한다.(S518)
이때, Command DMA 읽기 요청에 대한 분리 응답일 경우는 상기 S509 과정으로 천이하고, 송신전용 Data DMA(150) 읽기 요청에 대한 분리 응답일 경우는 상기 S525 과정으로 천이하여 그 이후는 상기 설명된 바와 같이 남은 동작을 마무리하게된다.
상술한 바와 같이 본 발명에 따른 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜 제어 시스템은, Command DMA 및 Data DMA의 특성과 사용 빈도, 동시 처리 기능 등을 고려하여 송수신 Command DMA, 송신전용 Data DMA, 및 수신전용 Data DMA로 시스템을 구성하고 각 DMA의 버퍼 구조 및 패킷 구조를 개선시킴으로써, 호스트 인터페이스 버스의 효율적인 사용과 버스 사용률의 적절한 분배를 통해 최적으로 전송 흐름을 지원하고 전체적인 시스템 성능을 향상시킬 수 있다.
이상에서 설명한 것은 본 발명에 따른 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜 제어 시스템 및 방법을 실시하기 위한 하나의 실시예에 불과한 것으로서, 본 발명은 상기한 실시예에 한정되지 않고, 이하의 특허청구의 범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 정신이 있다고 할 것이다.

Claims (12)

  1. 데이터 전송 프로토콜 제어장치와의 인터페이스를 위해 Command DMA 요청 버퍼와 Command DMA 응답 버퍼를 구비하여, Command 메시지의 읽기 동작수행 시 상기 Command DMA 요청 버퍼에 읽기 수행명령을 내리고 해당 호스트 메모리의 주소 정보를 제공하고, Command 메시지 쓰기 동작수행 시는 상기 Command DMA 요청 버퍼에 쓰기 수행명령을 내리고 해당 호스트 메모리의 주소 정보 및 Command 메시지 데이터를 제공하는 송수신 Command DMA부;
    데이터 전송 프로토콜 제어장치와의 인터페이스를 위해 송신 Data DMA 요청 버퍼와 송신 Data DMA 응답 버퍼와 송신전용 데이터 버퍼를 구비하여, 상기 송신 Data DMA 요청 버퍼에 읽기 수행명령을 내리고 해당 호스트 메모리의 주소와 송신전용 데이터 버퍼의 저장위치 주소를 제공하는 송신전용 Data DMA부;
    데이터 전송 프로토콜 제어장치와의 인터페이스를 위해 수신 Data DMA 요청 버퍼와 수신 Data DMA 응답 버퍼와 수신전용 데이터 버퍼를 구비하여, 상기 수신 Data DMA 요청 버퍼에 쓰기 수행 명령을 내리고 해당 호스트 메모리 주소와 수신전용 데이터 버퍼의 저장위치 주소 정보를 제공하는 수신전용 Data DMA부; 및
    상기 Command DMA 요청 버퍼의 수행 명령이 읽기 명령일 경우, 그 읽기 정보를 호스트 버스에 구동하여 전달한 후 호스트 메모리로부터의 Command 메시지 데이터와 그 읽기동작의 완료여부에 대한 전송 응답신호를 수신하여 이를 상기 Command DMA 응답 버퍼에 저장하고,
    상기 Command DMA 요청 버퍼의 수행 명령이 쓰기 명령일 경우, 그 쓰기 정보와 Command 메시지 데이터를 호스트 버스에 구동하여 전달한 후 그 쓰기동작의 완료여부에 대한 전송 응답신호를 수신하여 상기 Command DMA 응답 버퍼에 저장하며,
    상기 송신 Data DMA 요청 버퍼의 명령내용을 확인하고, 그 확인된 정보를 호스트 버스에 구동하여 전달한 후 그에 따른 호스트 메모리로부터의 데이터 메시지를 상기 송신전용 데이터 버퍼의 저장 위치 주소에 정렬하고 그 읽기동작의 완료여부에 대한 전송응답 신호를 수신하여 상기 송신 Data DMA 응답 버퍼에 저장하며,
    상기 수신 Data DMA 요청 버퍼의 명령내용을 확인하고, 그 확인된 정보와 상기 수신전용 데이터 버퍼에 저장된 데이터 메시지를 호스트 버스에 구동하여 전달한 후 그 쓰기동작의 완료여부에 대한 전송응답 신호를 수신하여 상기 수신 Data DMA 응답 버퍼에 저장하는 데이터 전송 프로토콜 제어 장치;로 구성되는 것을 특징으로 하는 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜 제어 시스템.
  2. 제 1항에 있어서, 상기 Command DMA 요청 버퍼는 최대 8개의 패킷이 저장 가능하며, 각 요청 패킷은 읽기 요청 시는 요청 패킷 헤더와 호스트 메모리 주소부로, 쓰기 요청 시는 요청 패킷 헤더와 호스트 메모리 주소부와 쓰기 메시지 데이터부로 이루어지며,
    상기 Command DMA 응답 버퍼는 최대 8개의 패킷이 저장 가능하며, 각 응답 패킷은 읽기 응답 시는 응답 패킷 헤더와 호스트 메모리 주소부와 읽기 메시지 데이터부로, 쓰기 응답 시는 응답 패킷 헤더와 호스트 메모리 주소부로 이루어지는 것을 특징으로 하는 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜 제어 시스템.
  3. 제 2항에 있어서, 상기 요청 패킷 헤더는 명령 필드와, 바이트 유효 필드와, DMA 아이디 필드와, 트랜잭션 아이디 필드와, 메시지 크기 필드로 이루어지고, 상기 호스트 메모리 주소부는 64비트로 표현되며 32비트 크기의 2개 필드로 분할되어 호스트 메모리 주소 데이터가 저장되는 것을 특징으로 하는 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜 제어 시스템.
  4. 제 2항에 있어서, 상기 응답 패킷 헤더는 상기 요청 패킷 헤더에 비해 정상적인 전송동작 완료여부에 대한 전송응답신호가 저장되는 2비트의 상태 필드가 추가된 형태로 이루어지는 것을 특징으로 하는 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜 제어 시스템.
  5. 제 1항에 있어서, 상기 송신 Data DMA 응답 버퍼는 최대 16개의 패킷을 저장할 수 있으며, 각 패킷은 요청 패킷 헤더와 호스트 메모리 주소부로 이루어지고,
    상기 송신 Data DMA 응답 버퍼는 최대 16개의 패킷을 저장할 수 있으며, 각 패킷은 하나의 응답 패킷 헤더만으로 이루어지는 것을 특징으로 하는 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜 제어 시스템.
  6. 제 1항에 있어서, 상기 송신 Data DMA 요청 버퍼 또는 상기 수신 Data DMA 요청 버퍼의 요청 패킷 헤더는 명령 필드와, 바이트 유효 필드와, 송신전용 데이터 버퍼 주소 필드와, 패킷 연결 필드와, DMA 아이디 필드와, 트랜잭션 아이디 필드와, 서브트랜잭션 아이디 필드와, 메시지 크기 필드로 구성되는 것을 특징으로 하는 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜 제어 시스템.
  7. 제 6항에 있어서, 상기 송신전용 Data DMA 또는 상기 수신전용 Data DMA는, 호스트 메모리로부터의 데이터 메시지를 요청함에 있어, 독립된 하나의 메시지를 요청할 경우는 상기 패킷 연결 필드에 "00" 값을 설정하고, 데이터를 분할 요청할 경우 분할된 처음 메시지 데이터 요청은 상기 패킷 연결 필드에 "01"값을, 분할된 중간 메시지 데이터의 요청은 "10"값을, 그리고 분할된 마지막 메시지 데이터의 요청은 "11"값을 각각 설정하여 요청하는 것을 특징으로 하는 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜 제어 시스템.
  8. 제 6항에 있어서, 상기 송신전용 Data DMA 또는 상기 수신전용 Data DMA는, 그 요청 패킷 헤더의 DMA 아이디 필드와 트랜잭션 아이디 필드에 송신전용 Data DMA 요청 버퍼의 패킷임을 나타낼 수 있는 분별 가능한 DMA 아이디값과 트랜잭션 아이디값을 각각 설정하며, 추가로 더 세분화해서 메시지를 요청할 필요가 있을 경우는 서브트랜잭션 아이디 필드에 값을 설정하여 사용하는 것을 특징으로 하는 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜 제어 시스템.
  9. 제 1항에 있어서, 상기 데이터 전송 프로토콜 제어장치는, 상기 송수신 Command DMA의 읽기 명령 수행 시, 읽기 정보를 호스트 버스에 구동시킨 후 호스트 버스로부터의 전송 응답신호를 분석하여, 그 전송 응답신호가 정상 전송임을 나타내면 상기 Command DMA 응답 버퍼의 응답 패킷 헤더의 상태필드에 전송 완료 비트를 설정하고, 전송 에러를 나타낼 경우는 응답 패킷 헤더의 상태 필드에 오류 비트를 설정하며, 분리 응답을 나타낼 경우는 현재 상태의 요청 패킷에 대한 메타 데이터를 내부 테이블에 저장한 후 추후 응답 메시지가 도착하게 되면 최종 전송을 마무리하는 것을 특징으로 하는 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜 제어 시스템.
  10. 제 1항에 있어서, 상기 데이터 전송 프로토콜 제어장치는, 상기 송수신 Command DMA의 쓰기 명령 수행 시, 쓰기 정보를 호스트 버스에 구동시킨 후 호스트 버스로부터의 전송 응답신호를 분석하여, 그 전송 응답신호가 정상 전송임을 나타내면 상기 Command DMA 응답 버퍼의 응답 패킷 헤더의 상태필드에 전송 완료 비트를 설정하고, 전송 에러를 나타낼 경우는 응답 패킷 헤더의 상태 필드에 오류 비트를 설정하는 것을 특징으로 하는 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜 제어 시스템.
  11. 제 1항에 있어서, 상기 데이터 전송 프로토콜 제어장치는, 상기 송신전용 Data DMA의 읽기 명령 수행 시, 읽기 정보를 호스트 버스에 구동시킨 후 호스트 버스로부터의 전송 응답신호를 분석하고,
    그 전송 응답신호가 정상 전송임을 나타내면, 패킷 연결 필드를 통해 단일 메시지 또는 마지막 메시지의 전송인지 아니면 처음 메시지의 전송 또는 중간 연속 메시지의 전송인지를 확인하여, 단일 메시지의 전송이거나 메시지의 마지막 전송일 경우는 수신된 메시지 데이터를 송신전용 데이터 버퍼에 저장한 후 송신전용 데이터 버퍼를 닫고 응답 패킷 헤더에 전송 완료 비트를 설정하며, 메시지의 처음 전송이거나 중간의 연속 전송일 경우는 수신된 메시지를 송신전용 데이터 버퍼에 저장한 후 송신전용 데이터 버퍼는 닫지 않고 응답 패킷 헤더에 전송 완료 비트를 설정하고,
    그 전송 응답신호가 전송 에러를 나타내면, 응답 패킷 헤더에 오류 비트를 설정하며,
    그 전송 응답신호가 분리 응답을 나타내면, 현재 상태의 요청 패킷에 대한 메타 데이터를 내부 테이블에 저장한 후 추후에 그 응답 메시지가 도착되면 최종 전송을 마무리하는 것을 특징으로 하는 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜 제어 시스템.
  12. 제 1항에 있어서, 상기 데이터 전송 프로토콜 제어장치는, 상기 수신전용 Data DMA의 쓰기 명령 수행 시, 쓰기 정보를 호스트 버스에 구동시킨 후 호스트 버스로부터의 전송 응답신호를 분석하고,
    그 전송 응답신호가 정상 전송임을 나타내면, 패킷 연결 필드를 통해 단일 메시지 또는 마지막 메시지의 전송인지 아니면 처음 메시지의 전송 또는 중간 연속 메시지의 전송인지를 확인한 후, 단일 메시지 전송이거나 메시지의 마지막 전송일 경우는 상기 수신전용 데이터 버퍼의 내용을 비우고 응답 패킷 헤더에 전송 완료 비트를 설정하며, 메시지의 처음 전송이거나 중간의 연속 전송일 경우는 상기 수신전용 데이터 버퍼의 내용을 비우지 않고 응답 패킷 헤더에 전송 완료 비트를 설정하며,
    그 전송 응답신호가 전송 에러를 나타내면, 응답 패킷 헤더에 오류 비트를 설정하는 것을 특징으로 하는 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜 제어 시스템.
KR10-2002-0081819A 2002-12-20 2002-12-20 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜제어 시스템 KR100449807B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2002-0081819A KR100449807B1 (ko) 2002-12-20 2002-12-20 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜제어 시스템
US10/418,127 US6871237B2 (en) 2002-12-20 2003-04-18 System for controlling data transfer protocol with a host bus interface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0081819A KR100449807B1 (ko) 2002-12-20 2002-12-20 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜제어 시스템

Publications (2)

Publication Number Publication Date
KR20040055194A KR20040055194A (ko) 2004-06-26
KR100449807B1 true KR100449807B1 (ko) 2004-09-22

Family

ID=32588850

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0081819A KR100449807B1 (ko) 2002-12-20 2002-12-20 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜제어 시스템

Country Status (2)

Country Link
US (1) US6871237B2 (ko)
KR (1) KR100449807B1 (ko)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7133972B2 (en) * 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US7117316B2 (en) * 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US6820181B2 (en) 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US7120727B2 (en) 2003-06-19 2006-10-10 Micron Technology, Inc. Reconfigurable memory module and method
US7107415B2 (en) * 2003-06-20 2006-09-12 Micron Technology, Inc. Posted write buffers and methods of posting write requests in memory modules
US7260685B2 (en) * 2003-06-20 2007-08-21 Micron Technology, Inc. Memory hub and access method having internal prefetch buffers
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7330992B2 (en) * 2003-12-29 2008-02-12 Micron Technology, Inc. System and method for read synchronization of memory modules
US7188219B2 (en) 2004-01-30 2007-03-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
US7231501B2 (en) * 2004-03-30 2007-06-12 Ibm Corporation Method for avoiding aliased tokens during abnormal communications
US7162567B2 (en) * 2004-05-14 2007-01-09 Micron Technology, Inc. Memory hub and method for memory sequencing
US7519788B2 (en) 2004-06-04 2009-04-14 Micron Technology, Inc. System and method for an asynchronous data buffer having buffer write and read pointers
CN100354842C (zh) * 2005-02-23 2007-12-12 华为技术有限公司 一种直接存储器存取装置及单通道双向数据交互实现方法
KR100736928B1 (ko) * 2005-12-05 2007-07-10 삼성전자주식회사 호스트 디바이스 간의 데이터 통신이 가능한 복합기기 및호스트 디바이스 간의 데이터 통신방법
US7673199B2 (en) * 2006-02-03 2010-03-02 Teradyne, Inc. Multi-stream interface for parallel test processing
TW200820746A (en) * 2006-10-26 2008-05-01 Young Optics Inc Procedure control method for simplex system
US20090043776A1 (en) * 2006-12-23 2009-02-12 Simpletech, Inc. System and method for direct file transfer in a computer network
US20080155050A1 (en) * 2006-12-23 2008-06-26 Simpletech, Inc. Direct file transfer host processor
US20080155051A1 (en) * 2006-12-23 2008-06-26 Simpletech, Inc. Direct file transfer system and method for a computer network
US8281049B2 (en) * 2008-12-19 2012-10-02 Cisco Technology, Inc. Host-daughtercard configuration with double data rate bus
US8225052B2 (en) * 2009-06-03 2012-07-17 Micron Technology, Inc. Methods for controlling host memory access with memory devices and systems
US9342352B2 (en) 2010-06-23 2016-05-17 International Business Machines Corporation Guest access to address spaces of adapter
US8621112B2 (en) 2010-06-23 2013-12-31 International Business Machines Corporation Discovery by operating system of information relating to adapter functions accessible to the operating system
US9213661B2 (en) 2010-06-23 2015-12-15 International Business Machines Corporation Enable/disable adapters of a computing environment
US9195623B2 (en) * 2010-06-23 2015-11-24 International Business Machines Corporation Multiple address spaces per adapter with address translation
US8635430B2 (en) 2010-06-23 2014-01-21 International Business Machines Corporation Translation of input/output addresses to memory addresses
US8626970B2 (en) 2010-06-23 2014-01-07 International Business Machines Corporation Controlling access by a configuration to an adapter function
US8615645B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Controlling the selectively setting of operational parameters for an adapter
JP5784299B2 (ja) 2010-11-01 2015-09-24 オリンパス株式会社 データ処理装置および画像処理装置
JP5675278B2 (ja) * 2010-11-01 2015-02-25 オリンパス株式会社 データ処理装置および画像処理装置
CN106257434B (zh) * 2015-06-16 2019-04-30 深圳市中兴微电子技术有限公司 一种基于增强型外设互连协议总线的数据传输方法及装置
US10380060B2 (en) * 2016-06-17 2019-08-13 Etron Technology, Inc. Low-pincount high-bandwidth memory and memory bus
KR102395190B1 (ko) 2017-07-31 2022-05-06 삼성전자주식회사 호스트와 인터페이스를 수행하는 스토리지 장치, 호스트 및 스토리지 장치의 동작방법
KR102541897B1 (ko) * 2018-08-27 2023-06-12 에스케이하이닉스 주식회사 메모리 시스템
US10628355B2 (en) * 2018-09-19 2020-04-21 Arm Limited Apparatus and method for processing burst read transactions
KR20200049051A (ko) 2018-10-31 2020-05-08 삼성전자주식회사 스토리지 장치의 구동 방법, 이를 수행하는 스토리지 장치 및 이를 이용한 스토리지 시스템의 구동 방법
CN114928377B (zh) * 2022-05-11 2023-04-21 威创集团股份有限公司 降低usb数据透传带宽的输出传输方法、装置及设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5828901A (en) * 1995-12-21 1998-10-27 Cirrus Logic, Inc. Method and apparatus for placing multiple frames of data in a buffer in a direct memory access transfer
US6049842A (en) * 1997-05-01 2000-04-11 International Business Machines Corporation Efficient data transfer mechanism for input/output devices
US6425021B1 (en) * 1998-11-16 2002-07-23 Lsi Logic Corporation System for transferring data packets of different context utilizing single interface and concurrently processing data packets of different contexts
US6199137B1 (en) * 1999-01-05 2001-03-06 Lucent Technolgies, Inc. Method and device for controlling data flow through an IO controller
US6400730B1 (en) * 1999-03-10 2002-06-04 Nishan Systems, Inc. Method and apparatus for transferring data between IP network devices and SCSI and fibre channel devices over an IP network
US6459698B1 (en) * 2001-06-18 2002-10-01 Advanced Micro Devices, Inc. Supporting mapping of layer 3 priorities in an infiniband ™ network

Also Published As

Publication number Publication date
US20040122988A1 (en) 2004-06-24
US6871237B2 (en) 2005-03-22
KR20040055194A (ko) 2004-06-26

Similar Documents

Publication Publication Date Title
KR100449807B1 (ko) 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜제어 시스템
US6006289A (en) System for transferring data specified in a transaction request as a plurality of move transactions responsive to receipt of a target availability signal
EP0674276B1 (en) A computer system
US6185607B1 (en) Method for managing network data transfers with minimal host processor involvement
US5317692A (en) Method and apparatus for buffer chaining in a communications controller
EP1622324A1 (en) Fault tolerant data transfer in multi-node system via internodal crossbar switch
US5155857A (en) Communication processing system in which communication by terminals is controlled according to a terminal management table
US6388989B1 (en) Method and apparatus for preventing memory overrun in a data transmission system
CN101227388B (zh) 操作计算机系统的方法和具有网络接口重发的计算机系统
JP2001024733A (ja) データ伝送装置
US7117283B2 (en) Multi-master extended I2C protocol
TWI226547B (en) Bus system and bus interface for connection to a bus
WO2003034206B1 (en) Host network interface device and drive network interface device
US20080263171A1 (en) Peripheral device that DMAS the same data to different locations in a computer
JPS63501755A (ja) パケット交換方式
JPH10308791A (ja) データ通信方法、データ通信装置、およびデータ通信プログラム記録媒体
JP3791742B2 (ja) Pciバス制御システム
JP4098910B2 (ja) パケット転送制御装置及びパケット転送方法
JP2000224260A (ja) 通信制御装置
CN115203102A (zh) 预测usb扩展环境中的空闲缓冲区空间
CN104346310A (zh) 一种高性能i2c从机数据交换电路及方法
CN111666237A (zh) 具有高速缓存管理功能的dma控制器
US5559972A (en) Method and apparatus for supporting byte-mode devices and non-byte-mode devices on a bus
JP3670372B2 (ja) データ転送装置
JP2004147243A (ja) パケット通信システム

Legal Events

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

Payment date: 20100901

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee