KR100605903B1 - 데이터 전송 제어장치 및 방법 - Google Patents

데이터 전송 제어장치 및 방법 Download PDF

Info

Publication number
KR100605903B1
KR100605903B1 KR1019990014885A KR19990014885A KR100605903B1 KR 100605903 B1 KR100605903 B1 KR 100605903B1 KR 1019990014885 A KR1019990014885 A KR 1019990014885A KR 19990014885 A KR19990014885 A KR 19990014885A KR 100605903 B1 KR100605903 B1 KR 100605903B1
Authority
KR
South Korea
Prior art keywords
data
serial bus
buffer
packet
data transmission
Prior art date
Application number
KR1019990014885A
Other languages
English (en)
Other versions
KR20000067248A (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 KR1019990014885A priority Critical patent/KR100605903B1/ko
Publication of KR20000067248A publication Critical patent/KR20000067248A/ko
Application granted granted Critical
Publication of KR100605903B1 publication Critical patent/KR100605903B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40071Packet processing; Packet format

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)

Abstract

가. 청구범위에 기재된 발명이 속한 기술분야:IEEE 1394망에서의 데이터 전송 제어에 관한 것이다.
나. 발명이 해결하고자 하는 기술적 과제:IEEE 1394 시리얼 버스의 데이터 전송 처리량을 극대화시킬 수 있는 데이터 전송 제어장치 및 그 방법을 제공함에 있다.
다. 발명의 해결방법의 요지:1394 시리얼 버스와 스토리지 시스템 사이에 송수신되는 데이터를 일시 저장하기 버퍼를 2중 구조로 구획한다. 이후 상기 1394 시리얼 버스를 통해 상대 노드로 데이터 전송시 상기 시스템으로부터 독출된 소정 단위의 데이터를 패치하여 상기 버퍼의 빈 영역에 저장하고, 저장 완료시 나머지 영역으로 상기 시스템으로부터 독출된 데이터를 패치하면서 저장 완료 데이터를 상기 1394 시리얼 버스로 전송하며, 상대 노드로부터 데이터 수신시 상기 상대 노드로 데이터 전송을 요구하는 리드 요구 패킷을 전송하고 리드 응답 패킷 수신시 이를 상기 버퍼중 비어 있는 영역에 저장하면서 새로운 리드 요구 패킷을 전송하고, 데이터가 충만되어 있는 영역의 데이터를 상기 스토리지 시스템으로 패치하는 방식으로 데이터 전송을 제어함을 특징으로 한다.
라. 발명의 중요한 용도:IEEE 1394 망의 데이터 전송 제어에 사용한다.
버퍼, 시리얼 버스

Description

데이터 전송 제어장치 및 방법{APPARATUS AND METHOD FOR CONTROLLING DATA TRANSMISSION}
도 1은 아이 트리플 이(IEEE) 1394 시리얼 버스에 스토리지 시스템이 접속되어 있는 시스템 구성 예시도.
도 2는 시리얼 버스를 통해 목적지 노드로 전송되는 데이터 패킷과 그에 따른 데이터 전송 완료신호(ack_complete)의 발생타임을 시간축상에 나타낸 도면.
도 3은 본 발명의 실시예에 따른 스토리지 시스템 구성도.
도 4는 도 3중 ADFC(Automatic Data Fetch Controller)(332)의 주변 블럭도.
도 5는 도 4중 ADFC(342)의 상세 구성도.
도 6은 본 발명의 실시예에 따른 데이터 전송 모드에서의 ADFC(332) 동작 흐름도.
도 7은 본 발명의 실시예에 따른 데이터 수신 모드에서의 ADFC(332) 동작 흐름도.
도 8은 본 발명의 실시예에 따른 데이터 전송모드에서 ADFC(342)의 내부 버퍼(430,435)와 시리얼 버스 사이의 데이터 전송상태 예시도.
도 9는 본 발명의 실시예에 따른 데이터 수신모드에서의 시리얼 버스와 내부 버퍼A,B(430,435) 사이의 데이터 전송상태 예시도.
본 발명은 IEEE 1394 망(network)에서의 데이터 전송에 관한 것으로, 특히 1394 시리얼 버스의 데이터 전송 처리량을 극대화시키기 위한 데이터 전송 제어장치 및 그 방법에 관한 것이다.
IEEE 1394란 IEEE가 제정한 사양에 의해 각종 멀티미디어 기기간의 정보교환을 가능케 하는 차세대 멀티미디어 인터페이스장치로써, 특히 퍼스널컴퓨터와 그 주변기기(마우스, 프린터, 스캐너 등)간의 접속만 허용되던 기존의 인터페이스장치와는 달리, 차세대 멀티미디어 기기간의 음성 및 화상데이터 송수신이 가능한 시리얼 버스 표준이다. IEEE 1394는 시리얼 버스 표준으로서 데이터의 전송을 위해 간단한 프로토콜로 구성되어 있다. 따라서 IEEE 1394는 데이터 전송수단을 제공할 뿐이며 망을 연결할 미디어로 사용하려면 다양한 망 기능들이 IEEE 1394의 상위계층에 존재하여야 한다.
도 1은 아이 트리플 이(IEEE) 1394 시리얼 버스와 스토리지 시스템 사이에 위치하는 데이터 전송 제어장치의 접속상태 예시도를 도시한 것이며, 도 2는 시리얼 버스를 통해 목적지 노드로 전송되는 데이터 패킷(헤더 포함)과, 그에 따른 데이터 전송 완료신호(ack_complete)의 발생타임을 시간축상에 나타낸 도면이다.
도 1을 참조하여 목적지 노드(node)로 데이터를 전송하고, 목적지 노드로부터 데이터를 수신하는 경우의 데이터 전송경로를 설명하면, 우선 데이터 전송시 스토리지 시스템(100)의 기록매체에서 리드된 데이터는 시스템 버퍼(102)에 저장된후 데이터 전송 제어 로직(110)내의 버퍼(112)로 1패킷 분량의 데이터가 전송 저장된다. 그리고 데이터 전송 제어 로직(110)내의 버퍼(112)에 저장된 데이터는 목적지 노드로부터 데이터 전송의 완료를 지시하는 신호(ack_complete)가 입력될때까지 유지되며, 이때 시스템 버퍼(102)에서는 더 이상의 데이터를 패치(fetch)할 수 없는 상태가 된다. 만약 목적지 노드로부터 데이터 전송의 완료를 지시하는 신호(ack_complete)가 입력되면 데이터 전송 제어 로직(110)내의 버퍼(112)에는 1패킷분의 데이터가 패치되며, 상기 버퍼(112)에 저장된 1패킷분의 데이터는 다시 링크 계층 컨트롤러(120)와 물리 계층 컨트롤러(130)를 통해 1394 시리얼 버스를 통해 목적지 노드로 전송된다. 그리고 다시 상술한 과정을 반복하여 일련의 패킷 데이터를 목적지 노드로 전송한다.
한편 타 노드로부터 데이터가 수신되는 과정을 설명하면, 우선 데이터 전송 제어 로직(110)은 목적지 노드로 데이터 리드를 요구하는 패킷(이하 리드 요구 패킷:Read Request Packet)을 전송하고, 그에 응답하여 수신되는 패킷(이하 리드 응답 패킷:Read Response Packet)을 버퍼(112)에 저장한후 이를 시스템 버퍼(102)로 전송한다. 그리고 상술한 과정을 반복하여 일련의 패킷 데이터들을 목적지 노드로부터 수신받는다.
이하 도 2를 참조하여 상술한 일반적인 데이터 전송 제어 로직(110)에서의 문제점을 살펴보면, 우선 도 2에서 1st 패킷과 2nd 패킷은 시리얼 버스를 통해 목적지 노드로 전송되는 데이터 패킷(헤더 포함)을 나타낸 것이며, 1st ack(acknowledge_complete)와 2nd ack는 상기 목적지 노드로부터 전송되어 오는 데이터 전송 완료신호(ack_complete)를 나타낸 것이다. 도 2를 참조하여 볼때, 일반적인 데이터 전송 제어 로직에서는 상기 데이터 전송 완료신호(ack_complete)가 입력되기 전까지 버퍼에 저장된 데이터를 유지하여야 하기 때문에 B 타임후 바로 2nd 패킷을 전송하지 못한다.
따라서 일반적인 데이터 전송 제어장치에서는 시리얼 버스 사용권한이 부여되었음에도 불구하고, 하나의 패킷 전송후 또 다른 패킷 전송시까지 일정시간을 대기하여야 하기 때문에 대기상태 만큼 데이터 전송 성능이 저하될 수 밖에 없다.
따라서 본 발명의 목적은 IEEE 1394 시리얼 버스의 데이터 전송 처리량을 극대화시킬 수 있는 데이터 전송 제어장치 및 그 방법을 제공함에 있다.
본 발명의 또 다른 목적은 IEEE 1394망에서의 타 노드와의 데이터 전송 혹은 데이터 수신시에 인접 패킷들 사이의 전송 지연타임을 최소화할 수 있는 데이터 전송 제어장치 및 그 방법을 제공함에 있다.
본 발명의 또 다른 목적은 IEEE 1394 시리얼 버스에 접속되어 있는 스토리지 시스템들의 데이터 전송능력을 극대화시킬 수 있는 데이터 전송 제어장치 및 그 방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 발명은 다수의 노드(node)들이 시리얼 버스를 통해 접속되어 있는 망(network)에서의 데이터 전송 제어장치에 있어서,
스토리지 시스템과 상기 시리얼 버스 사이에 송수신되는 데이터를 저장하기 위한 다수의 버퍼들과,
상기 스토리지 시스템과 다수의 버퍼들 사이에 접속되어 송수신 데이터를 각각 다중화 및 역다중화하는 제 1 멀티플렉서 및 디멀티플렉서와,
상기 다수의 버퍼들과 시리얼 버스 사이에 접속되어 송수신 데이터를 각각 다중화 및 역다중화하는 제 2 멀티플렉서 및 디멀티플렉서와,
상기 다수의 노드들중 임의의 상대 노드와 데이터를 송수신하기 위해 필요한 헤더정보 및 데이터 전송완료신호를 발생하고, 상기 다수의 버퍼들과 멀티플렉서 및 디멀티플렉서를 제어하기 위한 제어신호들을 발생하는 제어부와,
발생된 상기 헤더정보와 송신데이터를 패킷화하여 상기 시리얼 버스로 전송하는 패킷타이저와,
상기 시리얼 버스를 통해 수신된 패킷 데이터를 헤더정보와 리드 응답 패킷으로 분리하는 디패킷타이저로 구성함을 특징으로 한다.
이하 첨부한 도면을 참조하여 본 발명의 실시예에 따른 동작을 상세히 설명하기로 한다. 하기 설명 및 첨부 도면에서 스토리지 시스템의 일예인 하드 디스크 드라이브와 데이터 전송 및 수신 처리 흐름등과 같은 많은 특정 상세들이 본 발명 의 보다 전반적인 이해를 제공하기 위해 나타나 있다. 이들 특정 상세들없이 본 발명이 실시될 수 있다는 것은 이 기술분야에서 통상의 지식을 가진자에게 자명할 것이다. 그리고 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략하기로 하며, 하기 설명에서 두 노드간은 SBP-2 프로토콜을 지원하는 노드인 것으로 가정한다.
도 3은 본 발명의 실시에에 따른 스토리지 시스템 구성도를 도시한 것이다.도 3을 참조하면, 본 발명의 실시예에 따른 스토리지 시스템은 기록매체(310)에 데이터를 기록하거나 기록된 데이터를 독출하여 출력하는 데이터 저장 드라이브(300)와, 상기 드라이브(300)와 1394 시리얼 버스 사이에 접속되어 데이터 전송을 제어하는 데이터 전송 컨트롤러(340)로 구성된다. 상기 기록매체(310)는 하드 디스크(Hard Disk), 컴팩트 디스크(CD), 디지털 다기능 디스크(DVD), 자기 테이프 등으로 설정할 수 있으며, 상기 드라이브(300) 역시 상기 기록매체(310)에 따라 하드 디스크 드라이브, CD-롬 드라이브, DVD-롬 드라이브와 같이 변경될 수 있다. 하기 설명에서는 하드 디스크 드라이브를 일예로 설명하기로 한다. 리드/라이트 컨트롤러(320)는 상기 기록매체(310)로부터 독축된 리드신호로부터 데이터 펄스를 검출하고 이를 디코딩하여 DMA 컨트롤러를 통해 데이터 전송 컨트롤러(340)로 전송한다. 또한 상기 리드/라이트 컨트롤러(320)는 상기 DMA 컨트롤러를 통해 데이터 전송 컨트롤러(340)로부터 인가되는 라이트 데이터를 인코딩하여 전치증폭기(도시하지 않았음)로 인가함으로써, 헤드(도시하지 않았음)를 통해 데이터가 기록매체(310)에 기록되도록 한다. 상기 드라이브(300)내의 버퍼(330)에는 기록매 체(310)와 데이터 전송 컨트롤러(340) 사이에 송수신되는 데이터가 일시 저장된다.
데이터 전송 컨트롤러(340)내의 ADFC(342)는 1394 시리얼 버스와 데이터 저장 드라이브(300) 사이에 전송되는 데이터의 송수신을 제어한다. 이를 간단히 설명하면, ADFC(342)는 구비된 DMA 인터페이스를 통해 상기 드라이브(300)내의 버퍼(330)와 1패킷 단위의 데이터 패치가 이루어지며 1394 링크/물리계층 컨트롤러(344)와는 1394 트랜잭션(라이트 요구↔라이트 승인, 리드 요구↔리드 승인)이 이루어진다. 한편 ADFC(342)의 동작은 SBP-2프로토콜상의 데이터 전송 상태(즉, 커맨드나 다른 제어 데이터가 아닌 순수 데이터 전송에만 이용됨)에서만 이루어지며, ADFC(342)내의 버퍼는 이중(dual)구조로 되어 있어 1394 패킷 데이터 전송 및 수신중에도 상기 드라이브(300)내의 버퍼(330)와 데이터 패치동작이 동시에 이루어질 수 있도록 하였다. 이러한 내부 버퍼의 구조에 따라 시리얼 버스상의 대기상태를 줄여 데이터 전송 처리량을 향상시킬 수 있다. 1394 링크/물리 계층 컨트롤러(344)는 1394 패킷 데이터의 송수신을 위한 오류검출과 오류정정이 이루어지며 1394 시리얼 버스와 물리적으로 접속된다.
상술한 바와 같은 구성에 의해 목적지 노드의 PC로부터 데이터 저장 드라이브(300)로의 데이터 전송경로는 1394 시리얼 버스→1394 링크/물리 계층 컨트롤러(344)→ADFC(342)→버퍼(330)→기록매체(310)의 순으로 형성되고, 드라이브(300)로부터 목적지 노드의 PC로 데이터가 전송되어야 하는 경우에는 상술한 데이터 전송경로의 역순으로 데이터 전송경로가 형성된다.
한편, 도 4는 도 3중 ADFC(Automatic Data Fetch Controller)(332)의 주변 블럭도를 도시한 것이며, 도 5는 도 4중 ADFC(342)의 상세 구성도를 도시한 것이다. 도 4를 참조하면 본 발명의 실시예에 따른 데이터 전송 제어장치인 ADFC(342)는 호스트 컴퓨터(350)와 드라이브(300)내의 DMA 컨트롤러(311)와 각종 데이터 및 데이터 요구/승인신호, 인터럽트(INT)신호등을 인터페이스하며 링크 계층 컨트롤러(335)와는 패킷 데이터를 송수신한다. 이와 같이 다수의 주변 블럭들과 다수의 신호 및 데이터를 인터페이싱하는 ADFC(342)의 상세 구성을 이하 도 5를 참조하여 설명하기로 한다.
우선 도 5에서 제어부(410)는 호스트 컴퓨터로부터 수신되는 데이터 전송명령 혹은 데이터 수신명령에 응답하여 데이터 저장 드라이브(300)와 목적지 노드의 PC 사이에 송수신되는 데이터를 제어하기 위한 각종 신호들을 발생한다. 이를 좀 더 구체적으로 설명하면, 제어부(410)는 목적지 노드의 PC로 데이터를 전송하는 경우에 라이트 요구 패킷의 헤더(Header)를 발생하는 한편, 상기 PC로부터 데이터를 수신하는 경우에 리드 요구 패킷(Read Request Packet)의 헤더를 발생한다. 그리고 상기 리드 요구 패킷 전송에 따른 리드 응답 패킷의 수신이 완료되면 데이터 전송 완료신호(ack_complete)를 상기 목적지 PC로 전송하며, 데이터 전송완료 및 데이터 수신완료시에 각각 인터럽트신호(INT)를 발생하여 호스트 컴퓨터로 데이터 전송 및 수신완료를 통보한다. 또한 상기 제어부(410)는 리드 응답 패킷의 헤더 수신시 수신된 패킷 데이터의 저장위치를 제어하고 라이트 요구에 응답하여 수신되는 데이터 전송 완료신호에 응답하여 전송데이터의 저장위치를 제어하기 위한 일련의 동작을 수행한다. 상기에서 언급된 라이트(write)는 목적지 PC로 데이터를 전송하는 경우 를 가정한 것이며, 리드(read)는 특정 노드의 PC로부터 데이터를 수신하는 경우를 가정한 것이다.
한편, MUX & DEMUX(420,450)는 상기 제어부(410)에 의해 제어되며 내부 버퍼A,B(430,435)로의 데이터 전송경로를 스위칭해 준다. ADFC(342) 내부에 구비된 이중 구조의 버퍼 A,B(430,435)는 상기 제어부(410)의 제어하에 전송할 데이터 혹은 수신된 데이터를 일시 저장한다. 패킷타이저(packetizer)(460)는 데이터 라이트(즉, 데이터 전송)시에 상기 제어부(410)로부터 발생된 헤더와 MUX & DEMUX(450)로부터 출력되는 데이터를 패킷화하여 시리얼 버스를 통해 전송한다. 그리고 디패킷타이저(depacketizer)(470)는 데이터 리드(즉, 데이터 수신)시에 입력되는 리드 응답 패킷(Rx 패킷)을 헤더와 데이터로 분리하여 준다. 이때 분리된 데이터는 MUX & DEMUX(450)로 인가되고 헤더는 상기 제어부(410)로 인가된다. 한편, DMA I/F(405)는 드라이브(300)에 구비된 DMA 컨트롤러(321)와 ADFC(342) 사이에 데이터 전송을 위해 필요한 각종 신호들(D_WR_STRobe, D_RD_STR, D_ACK,D_RQ)과 데이터(D_DATA)를 인터페이싱한다.
이하 상술한 구성을 갖는 ADFC(342)의 동작을 첨부 도면 도 6 내지 도 9를 참조하여 설명하면 다음과 같다.
도 6은 본 발명의 실시예에 따른 데이터 전송 모드에서의 ADFC(332) 동작 흐름도를 도시한 것이며, 도 8은 본 발명의 실시예에 따른 데이터 전송모드에서 ADFC(342)의 내부 버퍼(430,435)와 시리얼 버스 사이의 데이터 전송상태 예시도를 도시한 것이다.
우선 도 6을 참조하면, 제어부(410)는 610단계에서 호스트 컴퓨터로부터 데이터 길이와 함께 데이터 전송명령이 수신되면 612단계로 진행하여 구비된 내부 버퍼 A,B(430,435)를 초기화한다. 하기 설명에서는 드라이브(300)내의 버퍼(300)가 도 8의 (a)에 도시된 바와 같이 호스트 컴퓨터의 데이터 리드명령에 응답하여 이미 데이터가 충만되어 있다고 가정하기로 한다. 이러한 경우 612단계가 수행되면 드라이브(300)내의 버퍼 A,B(430,435)는 빈(empty)상태가 될 것이며, 시리얼 버스에는 서브액션(subaction)이 없는 대기상태가 유지될 것이다. 한편 612단계를 수행한 제어부(410)는 614단계에서 MUX & DEMUX(420)를 제어하여 버퍼 A(430)로 데이터를 패치(fetch)한다. 첫번째 데이터 패치시의 데이터 전송상태를 예시하면 도 8의 (b)와 같다. 그리고 내부 버퍼 A(430)에 도 8의 (c)와 같이 호스트 컴퓨터로부터 지정된 데이터 길이(1 패킷)만큼의 데이터가 패치되어 저장되면, 제어부(410)는 616단계로 진행하여 데이터 패치가 인에이블상태인가를 검사한다. 상기 데이터 패치가 인에이블상태라함은 드라이브(300)내의 버퍼(330)에 데이터가 남아 있는 상태를 의미하는 것으로 제어부(410)는 618단계로 진행하여 버퍼 B(435)로 데이터를 패치하고 이와 병행하여 620단계를 수행한다. 620단계에서는 버퍼 A(430)에 패치된 데이터를 전송하는 것으로, 제어부(410)는 라이트 요구 패킷의 헤더를 발생시키는 동시에 버퍼 A(430)에 패치된 데이터가 패킷타이저(460)로 출력되도록 MUX & DEMUX(450)를 제어한다. 상기 618단계 및 620단계의 병행수행 결과 얻어지는 데이터 전송상태를 예시하면 도 8의 (d)와 같다. 도 8의 (d)는 버퍼 A(430)에 패치된 데이터의 전송이 시작되며 아울러 버퍼 B(435)로의 데이터 패치가 이루어지는 것을 나타낸 것이다.
한편 상술한 바와 같이 하나의 내부 버퍼에 이미 패치되어 있는 데이터를 시리얼 버스를 통해 전송함과 아울러, 드라이브(300)에서 독출된 데이터를 나머지 내부 버퍼로 패치 제어하는 제어부(410)는 1패킷분의 데이터가 전송 완료되면 622단계로 진행하여 데이터 전송완료를 지시하는 데이터 전송 완료신호 ack_complete(①)가 목적지 노드로부터 수신되는가를 검사한다. 검사결과 1패킷분의 데이터가 전송완료되었으면 도 8의 (e)와 같이 버퍼 A(430)에 저장된 데이터를 지워버리고 제어부(410)는 624단계로 진행하여 데이터 패치 인에이블상태인가를 검사하고, 검사결과 데이터 패치 인에이블상태이면 626단계로 진행하여 도 8의 (f)에 도시된 바와 같이 다시 내부 버퍼 A(430)에 데이터를 패치하고, 아울러 628단계에서 버퍼 B(435)에 패치되어 있는 데이터를 라이트 요구 패킷화하여 전송한다. 그리고 상술한 바와 같이 데이터 전송완료 여부, 데이터 패치 인에이블상태 여부를 630단계 및 632단계에서 순차적으로 검사하고, 검사결과에 따라 패치된 데이터의 전송과 나머지 버퍼로의 데이터 패치를 동시 수행함으로써 도 8의 (g)와 같은 데이터 전송상태를 얻는다. 만약 데이터 패치가 디스에이블되면 더 이상 패치할 데이터가 드라이브(300)내의 버퍼(330)에 남아 있지 않다는 뜻으로 데이터 패치 동작을 멈추고 636단계와 638단계를 통해 현재 버퍼중에 패치되어 있는 데이터만을 전송한후 본 발명의 실시예에 따른 데이터 전송모드 동작을 종료한다. 이러한 경우 제어부(410)는 인터럽트(INT)를 걸어 데이터 전송이 끝났음을 호스트 컴퓨터로 알린다.
따라서 본 발명의 실시예에 따른 ADFC(342)는 데이터 전송모드에서 내부 버 퍼중 제1버퍼에 우선 데이터를 패치한후 나머지 제2버퍼에 데이터를 패치하면서 상기 제1버퍼에 패치된 데이터를 목적지 노드로 전송하는 방식으로 드라이브(300)로부터 독출된 데이터를 모두 전송하기 때문에, 1394 시리얼 버스상에서의 데이터 처리량을 향상시킬 수 있게 되는 것이다.
이하 도 7과 도 9를 참조하여 데이터 수신모드에서의 ADFC(342) 동작을 설명하면, 우선 도 7은 본 발명의 실시예에 따른 데이터 수신 모드에서의 ADFC(332) 동작 흐름도를 도시한 것이고, 도 9는 본 발명의 실시예에 따른 데이터 수신모드에서의 시리얼 버스와 내부 버퍼 A,B(430,435) 사이의 데이터 전송상태를 예시한 것이다.
우선 도 7를 참조하면, 제어부(410)는 710단계에서 호스트 컴퓨터로부터 데이터 길이와 함께 데이터 수신명령이 수신되면 712단계로 진행하여 구비된 내부 버퍼 A,B(430,435)를 초기화한다. 이러한 경우 드라이브(300)내의 버퍼(300)와 ADFC(342)내의 버퍼 A,B(430,435)는 도 9의 (a)와 같이 빈(empty)상태가 되며, 리드 요구 패킷(Read ReQuest Packet:RRQP)은 준비되어 있고 시리얼 버스에는 서브액션(subaction)이 없는 대기상태가 된다. 내부 버퍼 A,B(430,435)를 초기화한 제어부(410)는 이후 714단계에서 상대 노드에게 데이터 전송을 요구하는 리드 요구 패킷 RRQP를 전송한다. 이러한 경우 데이터 전송상태를 나타내면 도 9의 (b)와 같다. 이와 같이 리드 요구 패킷 RRQP를 전송한 제어부(410)는 디패킷타이저(470)를 통해 ack_pending(⑤)신호의 수신여부를 체크하여 ack_pending신호가 수신되면 716단계로 진행하여 리드 응답 패킷(Read Response Packet)이 수신되는가를 검사한다. 검 사결과 리드 응답 패킷의 헤더가 디패킷타이저(470)를 통해 수신되면 제어부(410)는 수신된 리드 응답 패킷이 도 9의 (c)에 도시한 바와 같이 버퍼 A(430)에 저장될 수 있도록 MUX & DEMUX(450)를 제어한다. 그리고 수신된 리드 응답 패킷 데이터가 도 9의 (d)와 같이 상기 버퍼 A(430)에 충만되면 제어부(410)는 718단계로 진행하여 데이터 전송 완료신호를 상대노드로 전송하여 패킷 수신의 완료를 통보하고 다음 리드 요구 패킷 RRQP를 준비한다. 이후 제어부(410)는 720단계로 진행하여 리드할 데이터가 존재하면 데이터 패치를 인에이블시켜 722단계에서 내부 버퍼 A(430)에 저장된 데이터가 드라이브(300)내의 버퍼(330)로 패치되도록 하고, 이와 병행하여 724단계에서는 리드 요구 패킷 RRQP를 전송한다. 이러한 경우의 데이터 전송상태를 예시하면 도 9의 (e)와 같은 상태가 된다. 도 9의 (e)에서는 두번째 리드 요구 패킷이 시리얼 버스를 통해 상대노드로 이미 전송되어 있음을 나타내고 있으며, 상대노드로부터 ack_pending신호를 이미 수신한 상태이며 내부 버퍼 A(430)에 저장된 데이터의 일부가 드라이브(300)내의 버퍼(330)로 패치된 상태를 도시하고 있다.
한편 두번째 리드 요구 패킷 RRQP 전송에 응답하여 리드 응답 패킷이 수신되었음이 726단계에서 검색되었으면, 제어부(410)는 수신된 두번째 리드 응답 패킷이 도 9의 (f)에 도시한 바와 같이 버퍼 B(435)에 저장될 수 있도록 MUX & DEMUX(450)를 제어한다. 이러한 경우 두번째 리드 응답 패킷은 버퍼 B(435)에 저장되는 중이며, 상기 버퍼 A(430)에 저장된 데이터는 드라이브(300)내의 버퍼(330)로 패치되는 중이다. 만약 수신된 리드 응답 패킷 데이터가 도 9의 (g)와 같이 상기 버퍼 B(435)에 충만되면 제어부(410)는 728단계로 진행하여 데이터 전송 완료신호를 상 대 노드로 전송하여 패킷 수신의 완료를 통보하고 다음 리드 요구 패킷 RRQP를 준비한다. 그리고 리드할 데이터가 계속 존재하면 732단계로 진행하여 도 9의 (h)에 도시된 바와 같이 외부 버퍼(330)로 버퍼 B(435)에 저장된 데이터를 패치하고, 이와 병행하여 734단계에서 새로운 리드 요구 패킷을 전송한후 716단계로 되돌아가 리드할 데이터가 존재하지 않을 때 까지 상술한 716단계 내지 734단계를 반복 수행한다. 이에 따라 도 9의 (i), (j)에 도시한 바와 같이 버퍼 B(435)에 저장된 데이터가 드라이브(300)내의 버퍼(330)로 패치되면서 나머지 버퍼 A(430)에는 새로 수신된 리드 응답 패킷 데이터가 저장되게 되는 것이다. 만약 더 이상 리드할 데이터가 존재하지 않으면, 제어부(410)는 736단계로 진행하여 풀(full)상태인 버퍼의 데이터를 드라이브(300)내의 버퍼(330)로 패치하고 본 발명의 실시예에 따른 데이터 수신모드의 동작을 종료한다. 이러한 경우 제어부(410)는 인터럽트(INT)를 걸어 데이터 수신이 끝났음을 호스트 컴퓨터로 알린다.
따라서 본 발명의 실시예에 따른 ADFC(342)는 데이터 수신모드에서 내부 버퍼중 제1버퍼에 우선적으로 데이터를 수신하여 저장하고, 저장된 데이터를 드라이브(300) 내부로 패치하면서 나머지 제2버퍼에 수신된 데이터를 저장하는 방식으로 데이터를 수신하기 때문에, 1394 시리얼 버스상에서의 데이터 처리량을 향상시킬 수 있게 되는 것이다.
상술한 바와 같이 본 발명은 IEEE 1394 시리얼 버스와 각 노드의 스토리지 시스템 사이에서 데이터 전송을 제어하는 장치의 버퍼 메모리 구조를 이중 구조로 구성함으로써, 1394 시리얼 버스의 데이터 전송 처리량을 극대화시킬 수 있는 장점이 있으며, 1394망에서 타 노드와의 데이터 전송 혹은 수신시에 인접 패킷들 사이의 전송 지연타임을 단축시킬 수 있는 장점이 있다.

Claims (13)

  1. 다수의 노드(node)들이 시리얼 버스를 통해 접속되어 있는 망(network)에서의 데이터 전송 제어장치에 있어서,
    스토리지 시스템과 상기 시리얼 버스 사이에 송수신되는 데이터를 저장하기 위한 다수의 버퍼들과,
    상기 스토리지 시스템과 다수의 버퍼들 사이에 접속되어 송수신 데이터를 각각 다중화 및 역다중화하는 제 1 멀티플렉서 및 디멀티플렉서와,
    상기 다수의 버퍼들과 시리얼 버스 사이에 접속되어 송수신 데이터를 각각 다중화 및 역다중화하는 제 2 멀티플렉서 및 디멀티플렉서와,
    상기 다수의 노드들중 임의의 상대 노드와 데이터를 송수신하기 위해 필요한 헤더정보 및 데이터 전송완료신호를 발생하고, 상기 다수의 버퍼들과 멀티플렉서 및 디멀티플렉서를 제어하기 위한 제어신호들을 발생하는 제어부와,
    발생된 상기 헤더정보와 송신데이터를 패킷화하여 상기 시리얼 버스로 전송하는 패킷타이저와,
    상기 시리얼 버스를 통해 수신된 패킷 데이터를 헤더정보와 리드 응답 패킷으로 분리하는 디패킷타이저로 구성함을 특징으로 하는 데이터 전송 제어장치.
  2. 제1항에 있어서, 상기 제어부는 데이터 전송완료 및 수신완료시에 인터럽트 신호를 발생시켜 호스트 컴퓨터로 보고함을 특징으로 하는 데이터 전송 제어장치.
  3. 제1항에 있어서, 상기 다수의 버퍼들은 2개의 버퍼로 구성됨을 특징으로 하는 데이터 전송 제어장치.
  4. 제3항에 있어서, 상기 제어부는 상기 2개의 버퍼중 제1버퍼에 송신 혹은 수신데이터를 패치하여 저장하고, 제2버퍼에 송신 혹은 수신데이터를 패치하면서 상기 제1버퍼에 저장된 데이터가 출력되도록 제어함을 특징으로 하는 데이터 전송 제어장치.
  5. 제1항 내지 제4항중 어느 한 항에 있어서, 상기 시리얼 버스는 1394 시리얼 버스임을 특징으로 하는 데이터 전송 제어장치.
  6. 시리얼 버스와 데이터 저장 시스템 사이에 송수신되는 데이터를 제어하기 위한 데이터 전송 제어방법에 있어서,
    상기 데이터 저장 시스템으로부터 상기 시리얼 버스로 전송되는 데이터를 일시 저장하기 위한 버퍼를 복수 영역으로 구획하는 제1과정과,
    구획된 상기 버퍼의 제1영역에 상기 데이터 저장 시스템으로부터 독출된 데이터를 미리 설정된 개수의 패킷 단위까지 패치하여 저장하고, 저장완료시 상기 버퍼의 제2영역으로 상기 독출된 데이터를 미리 설정된 개수의 패킷 단위까지 패치하면서 상기 제1영역에 저장된 데이터를 출력하는 방식으로 상기 데이터 저장 시스템으로부터 독출된 데이터 모두를 버퍼링하는 제2과정과,
    상기 버퍼로부터 출력되는 데이터에 헤더정보를 부가하여 미리 설정된 개수의 패킷 단위의 패킷 데이터를 상기 시리얼 버스로 전송하는 제3과정으로 이루어짐을 특징으로 하는 데이터 전송 제어방법.
  7. 제6항에 있어서, 상기 데이터 저장 시스템으로부터 독출된 데이터가 전송완료된 경우 호스트로 데이터 전송완료를 통보하는 제4과정을 더 포함함을 특징으로 하는 데이터 전송 제어방법.
  8. 시리얼 버스를 통해 수신되는 데이터를 데이터 저장 시스템으로 전송하기 위한 데이터 전송 제어방법에 있어서,
    상기 시리얼 버스로부터 수신되는 데이터를 일시 저장하기 위한 버퍼를 복수 영역으로 구획하는 제1과정과,
    상기 시리얼 버스상의 상대 노드로 데이터 전송을 요구하는 리드 요구 패킷을 전송하고 리드 응답 패킷 수신시 이를 상기 버퍼중 비어 있는 영역에 저장하면서 새로운 리드 요구 패킷을 전송하는 제2과정과,
    데이터가 충만되어 있는 영역의 데이터를 상기 데이터 저장 시스템으로 패치하는 제3과정으로 이루어짐을 특징으로 하는 데이터 전송 제어방법.
  9. 제8항에 있어서, 상기 상대 노드로부터 데이터 수신이 완료된 경우 이를 호스트로 통보하는 제4과정을 더 포함함을 특징으로 하는 데이터 전송 제어방법.
  10. 아이 트리플 이(IEEE)1394 시리얼 버스와 스토리지 시스템 사이에 송수신되는 데이터를 제어하기 위한 데이터 전송 제어방법에 있어서,
    상기 스토리지 시스템과 시리얼 버스 사이에 송수신되는 데이터를 일시 저장하기 버퍼를 2중 구조로 구획하는 버퍼구획과정과,
    상기 1394 시리얼 버스를 통해 상대 노드로 데이터 전송시 상기 시스템으로부터 독출된 미리 설정된 개수의 패킷 단위의 데이터를 패치하여 상기 버퍼의 빈 영역에 저장하고, 저장 완료시 나머지 영역으로 상기 시스템으로부터 독출된 데이터를 패치하면서 저장 완료 데이터를 상기 1394 시리얼 버스로 전송하는 데이터 패치 및 전송과정과,
    상대 노드로부터 데이터 수신시 상기 상대 노드로 데이터 전송을 요구하는 리드 요구 패킷을 전송하고 리드 응답 패킷 수신시 이를 상기 버퍼중 비어 있는 영역에 저장하면서 새로운 리드 요구 패킷을 전송하고, 데이터가 충만되어 있는 영역의 데이터를 상기 스토리지 시스템으로 패치하는 데이터 수신 및 패치과정으로 이루어짐을 특징으로 하는 데이터 전송 제어방법.
  11. 제10항에 있어서, 상대 노드로 데이터 전송 및 데이터 수신 완료시에 각각 호스로 데이터 전송 및 수신 완료를 통보하는 과정을 더 포함함을 특징으로 하는 데이터 전송 제어방법.
  12. 제6항에 있어서,
    상기 미리 설정된 개수의 패킷 단위는 1 패킷 단위임을 특징으로 하는 데이터 전송 제어방법.
  13. 제10항에 있어서,
    상기 미리 설정된 개수의 패킷 단위는 1 패킷 단위임을 특징으로 하는 데이터 전송 제어방법.
KR1019990014885A 1999-04-26 1999-04-26 데이터 전송 제어장치 및 방법 KR100605903B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990014885A KR100605903B1 (ko) 1999-04-26 1999-04-26 데이터 전송 제어장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990014885A KR100605903B1 (ko) 1999-04-26 1999-04-26 데이터 전송 제어장치 및 방법

Publications (2)

Publication Number Publication Date
KR20000067248A KR20000067248A (ko) 2000-11-15
KR100605903B1 true KR100605903B1 (ko) 2006-08-02

Family

ID=19582232

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990014885A KR100605903B1 (ko) 1999-04-26 1999-04-26 데이터 전송 제어장치 및 방법

Country Status (1)

Country Link
KR (1) KR100605903B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100635014B1 (ko) * 1999-08-25 2006-10-16 삼성전자주식회사 복수의 입력스트림을 처리하는 디지털방송수신기

Also Published As

Publication number Publication date
KR20000067248A (ko) 2000-11-15

Similar Documents

Publication Publication Date Title
KR100381646B1 (ko) 데이터 전송 제어 장치 및 전자 기기
US8170035B2 (en) Data frame processing
US7411950B2 (en) Communication method and communication apparatus
US7145921B2 (en) Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure
JP6995052B2 (ja) モジュールバスとaxiバスの間のリクエストを変換するためのバスブリッジ
KR100934227B1 (ko) 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤장치, 그의 동작 방법 및 이에 적용되는 데이터 저장 장치
JPH1074175A (ja) 受信データパケットへのチャンネル番号割当て方法ならびにdmaチャンネル受信パケット比較器回路
JPH1040211A (ja) パケット化されたデータ通信インタフェース機器内での直接メモリアクセス優先順位を割り当てるための方法ならびにdmaチャンネル回路
US20050174877A1 (en) Bus arrangement and method thereof
JP3608441B2 (ja) データ転送制御装置及び電子機器
US6580711B1 (en) Serial interface circuit and signal processing method of the same
US7711787B2 (en) On-chip network interfacing apparatus and method
US6445718B1 (en) Serial interface circuit
EP1253520B1 (en) Apparatus for issuing command for high-speed serial interface
US20040120333A1 (en) Method and apparatus for controlling information flow through a protocol bridge
KR100605903B1 (ko) 데이터 전송 제어장치 및 방법
JP4184458B2 (ja) 通信インタフェースで受信されたパケットデータからの制御情報の抽出方法ならびにビデオデータパケット制御回路
JPH10285196A (ja) データ送信装置,データ受信装置,データ伝送方法,およびデータ伝送システム
JP3967792B2 (ja) パケット化されたデータ通信インタフェース機器のpciシリアルバスインタフェース機器回路を自律的に動作させるための方法ならびに自律ブート回路
JP3610982B2 (ja) データ転送制御装置及び電子機器
JPH1069456A (ja) パケットデータ通信システム内のdma機械を制御するためのパケット制御リストを形成するための方法ならびにそのフォーマット
WO2002003689A1 (en) Method of and apparatus for recording time sensitive data within a storage device and resynchronizing the data when transmitting recorded data from the storage device in order to regain time synchrony after a lapse in synchrony or error condition
JP3941096B2 (ja) バス・インタフェースにおけるデータ転送方法およびバス・インタフェース
JP2002135270A (ja) データの非同期転送方式
JP2009070249A (ja) データ転送装置

Legal Events

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

Payment date: 20130627

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140627

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170120

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170720

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee