KR100539518B1 - 버스시스템에서의 어싱크로너스 패킷(AsynchronousPacket) 중재방법 - Google Patents
버스시스템에서의 어싱크로너스 패킷(AsynchronousPacket) 중재방법 Download PDFInfo
- Publication number
- KR100539518B1 KR100539518B1 KR10-1999-0004257A KR19990004257A KR100539518B1 KR 100539518 B1 KR100539518 B1 KR 100539518B1 KR 19990004257 A KR19990004257 A KR 19990004257A KR 100539518 B1 KR100539518 B1 KR 100539518B1
- Authority
- KR
- South Korea
- Prior art keywords
- arbitration
- bus
- packet
- new
- gap
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40084—Bus arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
버스시스템에서의 어싱크로너스 패킷(Asynchronous Packet) 중재방법은 새로운 뉴우_서브액션 갭(new_subaction gap)을 부가하여 버스시스템에 연결구성된 노드수가 적을 경우 어비트레이션 리셋 갭(Arbitration Reset Gap)으로 뉴우_서브액션 갭(new_subaction gap)을 사용하도록 하기 위한 것으로서, 버스시스템의 환경에서 노드들 사이에 어싱크로너스 패킷(Asynchronous Packet)을 전송하기 위한 페어 어비트레이션(Fair Arbitration)을 수행하는 버스시스템에서의 어싱크로너스 패킷(Asynchronous Packet) 중재방법에 있어서, 상기 버스시스템에 소수의 노드가 연결구성된 경우 상기 어싱크로너스 패킷(Asynchronous Packet)을 수신한 노드로부터 전송되는 액트날리지 패킷(Acknowledge Packet)의 코드를 검색하여 액트날리지 패킷(Acknowledge Packet)의 수신 여부를 판단하는 단계와, 상기 판단결과 액트날리지 패킷(Acknowledge Packet)이 수신되면 뉴우_서브액션 갭(new_subaction gap)동안 버스가 아이들(Idle)된 후 어비트레이션(Arbitration)을 수행하는 단계로 이루어지데 그 요지가 있다.
Description
본 발명은 버스시스템에 관한 것으로, 특히 버스시스템에서의 어싱크로너스 패킷(Asynchronous Packet) 중재방법에 관한 것이다.
근래에 디지털 기기에 있어서 하이-스피드 인터페이스에 대한 요구로 인하여 IEEE 1394 시리얼 버스가 많은 사람들에게 상당한 관심을 불러왔으며, 그로 인하여 여러 분야의 다양한 디지털 기기, 특히 디지털 오디오/비디오에 많이 응용되고 있다.
IEEE 1394 시리얼 버스의 특징은 최대 63개의 디지털 디바이스를 1개의 버스에 접속할 수 있고, 다양한 토폴로지(topology), 리얼타임 데이터(realtime data) 전송에 적합한 아이소크로너스 데이터(isochronous data) 통신 모드를 가지고 있는 등, 많은 특징을 가지고 있다.
IEEE 1394 시리얼 버스상에서 컨트롤 앤드 트랜잭션 셋(Control and transaction set)과 프린터 트랜스퍼 데이터(Printer transfer data), 스틸 카메라 이미지 데이터(Still camera image data) 등과 같이 전송되는 시간보다는 데이터의 전송이 보장되어야 하는 즉, 신뢰성을 보장하기 위하여 리트라이(retry) 전송이 지원되어야 하는 데이터는 어싱크로너스 패킷(Asynchronous packet) 구조로 전송된다.
그리고 전송되는 시간이 중요한 리얼타임 데이터(realtime data)는 아이소크로너트 패킷(isochronous packet) 구조로 전송되는데, 이는 전송 시간이 보장되어야 하기 때문에 늦게 전송된 데이터는 의미가 없으며, 리트라이(retry) 전송이 지원되지 않는다.
이하, 종래 기술에 따른 버스시스템에서의 아이소크로너스/어싱크로너스 패킷(Isochronous/Asynchronous Packet) 중재방법에 대하여 첨부한 도면을 참조하여 설명하면 다음과 같다.
도 1 은 종래 기술에 따른 1394 시리얼 버스 프로토콜 레이어들간의 관계를 나타낸 도면으로, 시리얼 버스 매니지먼트(Serial Bus Management;이하 SBM이라 약칭함)(11)와, 피지컬 레이어(Physical layer)(12)와, 링크 레이어(Link layer)(13)와, 오디오/비디오 칩 레이어(A/V CIP layers)(14)와, 애플리케이션 레이어(Application layer)와, 트랜잭션 레이어(Transaction layer)(16)와, 플러그 컨트롤 레지스터(Plug Control Register)(17)와, 커넥션 매니지먼트 프로토콜(Connection Management Protocol)부(18)와, 펑션 컨트롤 프로토콜(Function Control Protocol)부(19)와, 오디오/비디오 컨트롤 커맨드 앤드 트랜잭션 셋(AV/C Command and Transaction Set) 및 SBP-2(20)로 구성된다.
도 2 는 종래 기술에 따른 1394 시리얼 버스 싸이클 구조를 나타낸 도면이다.
이와 같이 구성된 종래 기술에 따른 버스시스템에서의 아이소크로너스/어싱크로너스 패킷(Isochronous/Asynchronous Packet) 중재방법의 동작을 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다.
먼저, IEEE 1394 시리얼 버스는 아이소크로너스 패킷(isochronous packet) 전송과 어싱크로너스 패킷(asynchronous packet) 전송과 같이 2가지 전송 방식을 지원하며, 버스에 패킷을 전송하기 위해서 사용하는 어비트레이션(Arbitration) 방식이 서로 다르다.
상기 아이소크로너스 패킷(isochronous packet) 전송은 아이소크로너스 어비트레이션(Isochronous Arbitration) 방법을 사용하고, 어싱크로너스 패킷(asynchronous packet) 전송은 페어(Fair)와 이미디에이트 어비트레이션(Immediate Arbitration) 방법을 사용한다.
그리고, 루트 노드가 싸이클 스타트 패킷(cycle start packet)을 전송하기 위해서는 싸이클_마스터 어비트레이션(Cycle_Master Arbitration)을 사용하여 패킷을 전송한다.
상기 아이소크로너스 패킷(Isochronous packet) 전송은 도 2 에 도시된 바와 같이, 일정간격(8㎑, 125㎲)으로 발생되는 싸이클 싱크(cycle synch)에 따라 버스상에 단하나 존재하는 싸이클 마스터(Cycle Master)에서 싸이클 스타트 패킷(cycle start packet)을 송신함으로써 이루어진다.
상기 아이소크로너스 통신의 송신측 노드는 상기 싸이클 스타트 패킷(cycle start packet)을 수신하면 아이소크로너스 갭(Isochronous Gap)만큼 버스가 아이들(Idle)된 후, 어비트레이션(Arbitration)을 개시하여 버스에 대한 소유권을 얻는다.
이어 상기 아이소크로너스 통신의 송신측 노드는 아이소크로너스 리소스 매니저(Isochronous Resource Manager:IRM)에 의해서 미리 할당받은 채널과 밴드위스(channel and bandwidth)를 이용하여 아이소크로너스 패킷(Isochronous packet) 전송을 시작하며, 상기 채널과 밴드위스(channel and bandwidth)를 할당받고 있는 동안에는 125㎲ 싸이클마다 어비트레이션을 통하여 패킷 전송을 보장받는다.
상기 패킷이 전송된 후, 버스상의 다른 모든 노드는 상기 전송된 아이소크로너스 패킷(Isochronous packet)의 헤더에 설정된 채널과 같은 채널 번호를 자신의 아이소크로너스 리시브 포트 레지스터(Isochronous receive port register)들 중 하나에 갖고 있을 경우 이를 수신한다.
만약 아이소크로너스 패킷(Isochronous packet)을 전송하려는 다른 노드가 있을 경우 상기와 같이 아이소크로너스 갭(Isochronous Gap)을 기다린 후, 어비트레이션을 개시하여 버스에 대한 소유권을 얻으면, 미리 할당받은 채널과 밴드위스(channel and bandwidth)를 사용하여 아이소크로너스 패킷을 전송한다.
이와 같은 아이소크로너스 패킷 전송에 있어서, 노미널 싸이클 타임(Nominal Cycle Time)중에서 아이소크로너스 패킷(Isochronous Packet)을 전송할 수 있는 기간은 100㎲정도이다.
상기 아이소크로너스 패킷(Isochronous Packet) 전송을 100㎲으로 제한하는 것은 어싱크로너스 패킷(Asynchronous Packet) 전송보다 아이소크로너트 패킷(Isochronous Packet) 전송이 프리아러티(Priority)가 높기 때문에 아이소크로너스 패킷(Isochronous Packet) 전송이 버스를 독점하여 어싱크로너스 패킷(Asynchronous Packet) 전송을 하지 못하게 하는 경우(Starvation)를 방지하기 위해서이다.
그리고 아이소크로너스 패킷(Isochronous Packet) 전송은 100㎲의 기간중에는 한 노드가 할당받은 밴드위스(bandwidth)에 따라서는 100㎲에 해당하는 모든 밴드위스(bandwidth)를 사용하여 아이소크로너스 패킷(Isochronous Packet) 전송할 수 있다.
아울러 싸이클 마스터(Cycle Master)가 전송하는 싸이클 스타트 패킷(Cycle Start Packet)은 어비트레이션(Arbitration)에서 가장 높은 프리아러티(Priority)를 가지므로 가장 먼저 전송되며, 이렇게 하기 위해서 항상 루트가 싸이클 마스터(Cycle Master)가 된다.
한편, 어싱크로너스 통신은 노미널 싸이클 타임(Nominal Cycle Time)중에서 아이소크로너스 통신(최대 기간 100㎲)이 모두 끝난 후, 서브액션 갭(Subaction gap)(1㎲~10㎲)동안 버스가 아이들(Idle) 상태가 된 후에 시작된다.
상기 어싱크로너스 패킷(Asynchronous Packet) 전송은 어싱크로너스 패킷 헤더(Asynchronous Packet Header)에 송신측과 수신측 노드의 어드레스를 지정하여 서브액션 갭(Subaction Gap)을 검출한 후, 어비트레이션(Arbitration)을 통하여 버스의 사용권을 얻으면 버스의 다른 모든 노드에게 송신한다.
그러면 상기 송신된 패킷 헤더에 지정된 데스티네이션 어드레스(Destination Address)를 가지는 노드만이 전송된 어싱크로너스 패킷(Asynchronous Packet)을 수신하고, 액트날리지(Acknowledge)로 그 수신결과를 전송한다.
이러한 어싱크로너스 패킷(Asynchronous Packet)을 전송하기 위해서는 페어 어비트레이션(Fair Arbitration)을 사용하는데, 이러한 어비트레이션(Arbitration)을 사용하는 이유는 어비트레이션(Arbitration) 원리상 루트에 가까운 노드가 항상 어비트레이션(Arbitration)에 이기기 때문에, 페어 인터벌(Fair Interval)이라는 구간을 설정한다.
상기 페어 인터벌(Fair Interval) 구간을 설정하는 이유는 페어 어비트레이션(Fair Arbitration) 기간동안에 여러 노드가 버스의 어비트레이션(Arbitration)에 참가하였을 경우, 한 번 버스를 획득한 노드는 상기 어비트레이션(Arbitration)에 참가한 모든 노드가 버스의 소유권을 얻은 후에 다시 어비트레이션(Arbitration)에 참가하도록 구현하여 모든 노드에게 평등하게 버스의 액세스를 보장하기 위해서이다.
여기서, 상기 페어 인터벌(Fair Interval) 구간은 노드들이 어비트레이션 리셋 갭(Arbitration Reset Gap)(최대 20㎲)을 검출하여 어비트레이션 인에이블 비트(Arbitration enable bit)를 셋(set)함으로써 시작되는데, 이때 어싱크로너스 패킷(Asynchronous Packet)을 전송하려는 노드들은 어비트레이션(Arbitration)에 참가하여 루트에 가까운 노드부터 버스의 소유권을 얻으면 어비트레이션 인에이블 비트(Arbitration enable bit)를 리셋(reset)한다.
상기 어비트레이션(Arbitration)에서 버스의 소유권을 얻지 못한 노드들은 상기 버스가 서브액션 갭(subaction gap)동안 재차 아이들(Idle) 상태가 될 경우, 어비트레이션(Arbitration)에 다시 참가한 후 상기 버스의 소유권을 얻으면 어비트레이션 인에이블 비트(Arbitration reset bit)를 리셋한다.
결과적으로 페어 인터벌(Fair interval) 구간에 버스의 소유권을 얻으려는 모든 노드가 어비트레이션(Arbitration)에 성공하면 페어 어비트레이션(Fair Arbitration)이 끝나게 된다.
그러므로, 한 번 버스의 소유권을 얻은 노드가 다시 버스의 소유권을 얻기 위해서는 어비트레이션 리셋 갭(Arbitration Reset Gap)동안 버스가 아이들(Idle)된 후, 어비트레이션 인에이블 비트(Arbitration enable bit)를 셋(set)한 후 어비트레이션(Arbitration)에 참가하여 상기 버스의 소유권을 획득함으로써 달성될 수 있다.
이러한 종래 기술에 따른 버스시스템에서의 아이소크로너스/어싱크로너스 패킷(Isochronous/Asynchronous Packet) 중재방법에 있어서는 어싱크로너스 패킷(Asynchronous Packet)을 전송하려는 노드는 항상 버스가 서브액션 갭(subaction gap)동안 아이들(Idle)된 것을 확인한 후에 어비트레이션(Arbitration)을 개시하여 버스를 획득한 후에 전송을 시작할 수 있으므로 많은 시간의 밴드위스(bandwidth)를 낭비하는 문제점이 있다.
또한, 페어 어비트레이션(Fair Arbitration)을 지원하기 위해서는 한 번 버스를 사용한 노드가 다시 버스를 사용하기 위해서는 서브액션 갭(subaction gap)보다 큰 어비트레이션 리셋 갭(Arbitration Reset Gap)동안 버스가 아이들(Idle)된 것을 확인한 후에나 어비트레이션(Arbitration)을 시작할 수 있으므로, 버스상에 연결된 노드의 수가 만지 않아서 일정 시간동안에 실제 어싱크로너스 패킷(Asynchronous Packet)을 전송하는 노드가 몇 개 되지 않는 경우 특히 한 노드만이 비트맵 데이터와 같이 밴드위스(bandwidth)가 높은 어싱크로너스 패킷(Asynchronous Packet)을 전송하는 경우에는 버스의 효율을 상당히 감소시키는 문제점도 있다.
따라서 본 발명은 상기와 같은 문제점을 해결하기 위해 안출한 것으로서, 새로운 뉴우_서브액션 갭(new_subaction gap)을 부가하여 버스시스템에 연결구성된 노드수가 적을 경우 어비트레이션 리셋 갭(Arbitration Reset Gap)으로 뉴우_서브액션 갭(new_subaction gap)을 사용하도록 한 버스시스템에서의 어싱크로너스 패킷(Asynchronous Packet) 중재방법을 제공하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 버스시스템에서의 어싱크로너스 패킷(Asynchronous Packet) 중재방법의 특징은, 버스시스템의 환경에서 노드들 사이에 어싱크로너스 패킷(Asynchronous Packet)을 전송하기 위한 페어 어비트레이션(Fair Arbitration)을 수행하는 버스시스템에서의 어싱크로너스 패킷(Asynchronous Packet) 중재방법에 있어서, 상기 버스시스템에 소수의 노드가 연결구성된 경우 상기 어싱크로너스 패킷(Asynchronous Packet)을 수신한 노드로부터 전송되는 액트날리지 패킷(Acknowledge Packet)의 코드를 검색하여 액트날리지 패킷(Acknowledge Packet)의 수신 여부를 판단하는 단계와, 상기 판단결과 액트날리지 패킷(Acknowledge Packet)이 수신되면 뉴우_서브액션 갭(new_subaction gap)동안 버스가 아이들(Idle)된 후 어비트레이션(Arbitration)을 수행하는 단계로 이루어지는데 있다.
상기 뉴우_서브액션 갭(new_subaction gap)은 노드들이 버스에 전송되고 있는 임의의 액트날리지 패킷(Acknowledge Packet)을 인식한 후부터 버스가 아이들(Idle)된 것을 확인하고 어비트레이션(Arbitration)에 참가하기까지의 버스 아이들 시간(Bus Idle Time)을 의미하는데 다른 특징이 있다.
상기 뉴우_서브액션 갭(new_subaction gap)은 어비트레이션 인에이블 비트(Arbitration enable bit)와 파이 어비트레이션 리퀘스트(PHY Arbitration Request) 확인까지의 타임인 파이 프로세스 타임(PHY Process Time)과, 큐우드 파이 어비트레이션 리퀘스트(Queued PHY Arbitration Request)의 존재를 확인하는 타임과, 버스 아이들(Bus Idle) 확인 타임으로 결정되는데 또다른 특징이 있다.
상기 뉴우_서브액션 갭(new_subaction gap)은 종래의 서브액션 갭보다 작은 값을 갖는 것을 또다른 특징으로 하는데 있다.
상기 임의의 노드는 3∼5개중 임의의 숫자를 정하여 그 이하의 노드수를 갖는 버스시스템일 경우 상기 뉴우_서브액션 갭(new_subaction gap)을 어비트레이션 리셋 갭(Arbitration Reset Gap)으로 세팅할 수 있도록 프로그램되어 있는 것을 또다른 특징으로 하는데 있다.
이하, 본 발명에 따른 버스시스템에서의 어싱크로너스 패킷(Asynchronous Packet) 중재방법의 바람직한 실시예에 대하여 첨부한 도면을 참조하여 설명하면 다음과 같다.
도 3 은 본 발명에 따른 버스시스템에서의 어싱크로너스 패킷(Asynchronous Packet) 중재방법의 페어 어비트레이션(Fair Arbitration)의 일실시예를 나타낸 도면이고, 도 4 는 본 발명에 따른 버스시스템에서의 어싱크로너스 패킷(Asynchronous Packet) 중재방법의 싸이클 구조(Cycle structure)의 일실시예를 나타낸 도면이고, 도 5 는 본 발명에 따른 버스시스템에서의 어싱크로너스 패킷(Asynchronous Packet) 중재방법의 액트날리지 패킷(Acnowledge Packet)을 이용한 뉴_서브액션 갭(new_subaction gap)을 결정하기 위한 일실시예를 나타낸 도면이고, 도 6 은 본 발명에 따른 뉴_서브액션 갭(new_subaction gap)에 의한 어싱크로너스 서브액션(Asynchronous subaction)의 일실시예를 나타낸 도면이다.
이와 같은 본 발명에 따른 버스시스템에서의 어싱크로너스 패킷(Asynchronous Packet) 중재방법에 대하여 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다.
먼저, 버스 리셋이 발생하면 도 1 에 도시된 바와 같이, 모든 노드의 파이(PHY)는 어비트레이션 인에이블 비트(Arbitration enable bit)를 셋(set)하여 노드가 어비트레이션(Arbitration)이 가능한 상태로 변경된 것을 자신의 링크 레이어(Link layer)에게 알린다.
아울러 상기 버스 리셋시 결정된 루트 노드는 1394 시리얼 버스시스템에 연결구성된 임의의 노드들 수를 검색하여 노드 수가 적을 경우(3~5개의 노드) 새로운 뉴우_서브액션 갭(new_subaction gap)의 크기를 결정한다.
상기 뉴우_서브액션 갭(new_subaction gap)은 노드들이 버스에 전송되고 있는 임의의 액트날리지 패킷(Acknowledge Packet)을 인식한 후부터 버스가 아이들(Idle)된 것을 확인하고 어비트레이션(Arbitration)에 참가하기까지의 버스 아이들 시간(Bus Idle Time)을 의미한다.
상기 뉴우_서브액션 갭(new_subaction gap)은 기존의 서브액션 갭(subaction gap)보다 작은 값을 갖는다.
이후 모든 노드들은 버스를 검색하여 어비트레이션 리셋 갭(Arbitration Reset Gap)의 검출여부를 검색한 후 상기 어비트레이션 리셋 갭(Arbitration Reset Gap)이 검출되면 페어 어비트레이션(Fair Arbitration)에 참가한다.
이어 상기 페어 어비트레이션(Fair Arbitration)에서 이겨 버스를 획득한 노드는 어싱크로너스 패킷(Asynchronous Packet)을 전송하게 되며, 상기 페어 어비트레이션(Fair Arbitration)에서 버스를 획득하지 못한 모든 노드들은 뉴우_서브액션 갭(new_subaction gap)의 검출여부를 검색한 후 검출되면 도 3 에 도시된 바와 같이, 어싱크로너스 패킷(Asynchronous packet)을 전송하기 위한 어비트레이션(Arbitration)에 참가한다.
이러한 과정을 통해 모든 노드들이 버스를 획득한 후 버스 컨피거레이션(Bus Configuration)의 마지막 단계인 셀프-아이디(Self-ID) 과정을 통하여 페어 어비트레이션(Fair Arbitration)을 지원하기 위한 어비트레이션 리셋 갭(Arbitration Reset Gap)을 버스상에 연결된 노드의 수에 따라 연결된 노드의 수가 적을 경우에는 어비트레이션 리셋 갭(Arbitration Reset Gap)의 크기를 뉴우_서브액션 갭(new_subaction gap)의 크기로 설정한다.
이에 따라 한번 버스를 획득한 노드가 다시 버스를 획득하기 위해서는 어비트레이션 리셋 갭(Arbitration Reset Gap)이나 뉴우_서브액션 갭(new_subaction gap) 동안 버스가 아이들(Idle) 상태가 되면 파이(PHY)가 어비트레이션 인에이블 비트(Arbitration enable bit)를 셋(set)하고, 파이 어비트레이션 리퀘스트(PHY Arbitration Request)가 있을 경우, 적어도 다음 싸이클에서 버스를 획득하기 위한 어비트레이션(Arbitration)에 참가한다.
또한, 모든 인액티브(Inactive) 노드들은 내부 또는 외부 이벤트가 발생할 때까지 아이들(Idle) 상태로 머무르며, 노드의 모든 포트들은 아이들 어비트레이션(Idle Arbitration) 신호(ZZ)를 전송한다.
상기 싸이클 마스터는 125㎲마다 발생하는 싸이클 싱크(Cycle Synch)에 따라서 싸이클 스타트 패킷(Cycle Start Packet)상의 버스상에 전송한다.
상기 싸이클 마스터가 싸이클 스타트 패킷(Cycle Start Packet)을 전송하기 위해서는 버스가 뉴우_서브액션 갭(new_subaction gap)동안 아이들(Idle)된 후 버스에 싸이클_마스터 어비트레이션(Cycle_Master Arbitration)을 통하여 싸이클 스타트 패킷(Cycle Start Packet)을 버스상에 전송하는데, 루트 노드가 싸이클 마스터가 되기 때문에 싸이클 스타트 패킷(Cycle Start Packet)은 항상 싸이클 싱크(Cycle Synch)가 발생한 후 가장 먼저 전송되는 것이 보장된다.
만약, 싸이클 싱크(Cycle Synch)가 발생되었을 때, 버스상에 패킷이 전송되고 있을 경우에는 도 5 에 도시된 바와 같이, 액트날리지 패킷(acknowledge packet)을 수신하고, 버스가 아이들(Idle)된 것을 확인한 후 즉 뉴우_서브액션 갭(new_subaction gap) 동안 버스가 아이들(Idle)된 이후)에 싸이클 스타트 패킷(Cycle Start Packet)을 전송한다.
여기서 뉴우_서브액션 갭(new_subaction gap)은 어비트레이션 인에이블 비트(Arbitration enable bit)와 파이 어비트레이션 리퀘스트(PHY Arbitration Request) 확인까지의 타임인 파이 프로세스 타임(PHY Process Time)과, 큐우드 파이 어비트레이션 리퀘스트(Queued PHY Arbitration Request)의 존재를 확인하는 타임과, 버스 아이들(Bus Idle) 확인 타임으로 결정된다.
상기 액트날리지 패킷(Acknowledge Packet)을 수신했을 때, 바로 전에 자신이 전송한 어싱크로너스 패킷(Asynchronous Packet)에 대한 응답으로 받은 노드 이외의 다른 모든 노드들은 액트날리지 패킷(Acknowledge Packet)의 코드를 분석하지 않는다.
즉 파이에서 액트날리지 패킷(Acknowledge Packet)을 인지만 하고 링크 레이어(Link Layer)에서는 액트날리지 패킷(Acknowledge Packet)에 대하여 분석하지 않는다.
그러므로, 단지 버스상에서 데이터_프리픽스(Data_Prefix)를 인지한 후 8비트의 고정 액트날리지 코드(Acknowledge Code) 이후에 데이터_앤드(Data_End)가 오는 것을 인지함으로써 액트날리지 패킷(Acknowledge Packet)의 수신을 인지하면 되는 것이다.
이러한 것이 가능한 이유는 액트날리지 패킷(Acknowledge Packet)의 데이터의 길이가 8비트로 고정되어 있어 다른 모든 패킷과 구별될 수 있기 때문이다.
그리고 액트날리지 패킷(Acknowledge Packet)의 전송 사이에는 액_갭(Ack_gap)(최대 50㎱)의 크기가 뉴우_서브액션 갭(new_subaction gap)보다 몇 배나 작기 때문에 다른 어싱크로너스 패킷(Asynchronous Packet) 전송이 끼어들 수 없다.
또한, 링크 레이어(Link Layer)가 어싱크로너스(Asynchronous)나 아이소크로너스 패킷(Isochronous Packet)을 전송하기 위해서는 페어 어비트레이션 리퀘스트(Fair Arbitration Request)나 아이소크로너스 어비트레이션 리퀘스트(Isochronous Arbitration Request)를 발생하면 노드는 그것을 큐잉(Queuing)한다.
그리고 노드들은 어싱크로너스 패킷(Asynchronous Packet)을 전송할 수 있는 경우는 도 3 에 도시된 바와 같이 파이의 어비트레이션 인에이블 비트(Arbitration enable bit)가 셋(set)되어 있고, 도 4 에 도시된 ??, ??, ??과 같이 싸이클 스타트 패킷(Cycle Start Packet)과 아이소크로너스 패킷(Isochronous Packet) 수신한 후 뉴우_서브액션 갭(new_subaction gap) 동안 버스가 아이들(Idle)이거나 임의의 액트날리지 패킷(Acknowledge Packet)을 수신하고 버스가 아이들(Idle)된 후{결국, 뉴우_서브액션 갭(new_subaction gap) 동안 버스가 아이들(Idle)된 후}이다.
따라서, 파이가 큐우드 파이 어비트레이션 리퀘스트(Queued PHY Arbitration Request)를 가지고 있으면서, 뉴우_서브액션 갭(new_subaction gap) 동안 버스가 아이들(Idle)이거나 임의의 액트날리지 패킷(Acknowledge Packet)의 수신을 확인하면 링크 레이어(Link Layer)에게 노티파이(Notify)하여 전송할 데이터를 보낼 수 있다.
아울러 어비트레이션 리셋 갭(Arbitration Reset Gap){연결 노드의 수가 적을 경우에는 뉴우_서브액션 갭(new_subaction gap)}동안 버스가 이이들이면 파이는 어비트레이션 인에이블 비트(Arbitration enable bit)를 셋(set)하고 링크 레이어(Link Layer)로 갭(gap)이 검출되었음을 노티파이(Notify)한다.
상기 어비트레이션(Arbitraion)에서 이긴(win) 노드는 어비트레이션 인에이블 비트(Arbitration)를 리셋(Reset)하고 다음 어비트레이션 리셋 갭(Arbitration Reset Gap){연결 노드의 수가 적을 경우에는 뉴우_서브액션 갭(new_subaction gap)}이 검출되면 다시 어비트레이션 인에이블 비트(Arbitration enable bit)를 셋(set)하여 어비트레이션(Arbitration)에 참가할 수 있는 상태로 변경된다.
상기 패킷을 전송하려던 노드가 어비트레이션(Arbitration)에서 버스를 획득하지 못하고 데이터를 수신하는 과정을 시작하면 파이는 자신의 모든 리퀘스트 플래그(Request flag)를 클리어(clear)하고, 링크 레이어(Link layer)에게 버스가 비지(busy)임을 알려주고 다시 새로운 리퀘스트(Request)를 보내도록 지시한다.
상기 어비트레이션(Arbitration)에서 이겨서 버스를 획득한 노드가 전송을 마치면 모든 신호를 ZZ(Hi-Impedance)로 구동하여 버스를 릴리즈(Release)하고 파이는 아이들(Idle) 상태로 돌아간다.
상기 패킷 수신중에 링크 레이어(Link layer)는 패킷이 싸이클 스타트 패킷(Cycle Start Packet)인지를 판단하고 만약 아이소크로너스 패킷(Isochronous Packet)을 전송할 필요가 있으면, 파이는 아이소크로너스 어비트레이션 리퀘스트(Isochronous Arbitration Request)를 실행한다.
이것은 파이가 버스가 아이들(Idle) 상태(최대 50㎱)인 것을 확인하면 즉시 전송할 수 있으므로 어싱크로너스 패킷(Asynchronous Packet)에 의해 전송이 방해되지 않는다.
또한, 상기 패킷 수신중에 링크 레이어(Link layer)가 액트날리지 패킷(Acknowledge Packet)을 전송할 필요가 있는지 판단하여 만약 있으면 파이는 버스가 아이들(Idle) 상태(최대 50㎱)가 될 때, 이미디에이트 어비트레이션 리퀘스트(Immediate Arbitration request)를 실행한다.
도 6 은 상기에서와 같이 버스상의 임임의 액트날리지 패킷(Acknowledge Packet)의 수신을 이용하여 뉴우_서브액션 갭(new_subaction gap)에 의한 어싱크로너스 패킷(Asynchronous Packet)을 전송하는 어싱크로너스 서브액션(Asynchronous subaction)들을 보여주고 있다.
이상에서 설명한 바와 같이 본 발명에 따른 버스시스템에서의 어싱크로너스 패킷(Asynchronous Packet) 중재방법에 있어서는 새로운 뉴우_서브액션 갭(new_subaction gap)을 부가하여 버스시스템에 연결구성된 노드수가 적을 경우 어비트레이션 리셋 갭(Arbitration Reset Gap)으로 뉴우_서브액션 갭(new_subaction gap)을 대치하여 125㎲상에서 데이터를 효율적으로 전송하도록 함으로써 밴드위스(bandwidth)의 낭비를 줄일 수 있는 효과가 있다.
도 1 은 종래 기술에 따른 1394 시리얼 버스 프로토콜 레이어들간의 관계를 나타낸 도면
도 2 는 종래 기술에 따른 1394 시리얼 버스 싸이클 구조를 나타낸 도면
도 3 은 본 발명에 따른 버스시스템에서의 어싱크로너스 패킷(Asynchronous Packet) 중재방법의 페어 어비트레이션(Fair Arbitration)의 일실시예를 나타낸 도면
도 4 는 본 발명에 따른 버스시스템에서의 어싱크로너스 패킷(Asynchronous Packet) 중재방법의 싸이클 구조(Cycle structure)의 일실시예를 나타낸 도면
도 5 는 본 발명에 따른 버스시스템에서의 어싱크로너스 패킷(Asynchronous Packet) 중재방법의 액트날리지 패킷(Acnowledge Packet)을 이용한 뉴_서브액션 갭(new_subaction gap)을 결정하기 위한 일실시예를 나타낸 도면
도 6 은 본 발명에 따른 뉴_서브액션 갭(new_subaction gap)에 의한 어싱크로너스 서브액션(Asynchronous subaction)의 일실시예를 나타낸 도면
Claims (5)
- 임의의 노드들 사이에 어싱크로너스 패킷(Asynchronous Packet)을 전송하기 위한 페어 어비트레이션(Fair Arbitration)을 수행하는 버스시스템에서의 어싱크로너스 패킷(Asynchronous Packet) 중재방법에 있어서,상기 어싱크로너스 패킷(Asynchronous Packet)을 전송하기 위한 중재 시작시점을 결정하기 위하여 액트날리지 패킷(Acknowledge Packet)의 수신 여부를 판단하는 단계와;상기 판단결과 액트날리지 패킷(Acknowledge Packet)이 수신되면 뉴우_서브액션 갭(new_subaction gap)동안 버스가 아이들(Idle)된 후 어비트레이션(Arbitration)을 수행하는 단계를 포함하여 이루어진 것을 특징으로 하는 버스시스템에서의 어싱크로너스 패킷(Asynchronous Packet) 중재방법.
- 제 1 항에 있어서,상기 뉴우_서브액션 갭(new_subaction gap)은 노드들이 버스에 전송되고 있는 임의의 액트날리지 패킷(Acknowledge Packet)을 인식한 후부터 버스가 아이들(Idle)된 것을 확인하고 어비트레이션(Arbitration)에 참가하기까지의 버스 아이들 시간(Bus Idle Time)을 의미함을 특징으로 하는 버스시스템에서의 어싱크로너스 패킷(Asynchronous Packet) 중재방법.
- 제 2 항에 있어서,상기 뉴우_서브액션 갭(new_subaction gap)은어비트레이션 인에이블 비트(Arbitration enable bit)와 파이 어비트레이션 리퀘스트(PHY Arbitration Request) 확인까지의 타임인 파이 프로세스 타임(PHY Process Time)과, 큐우드 파이 어비트레이션 리퀘스트(Queued PHY Arbitration Request)의 존재를 확인하는 타임과, 버스 아이들(Bus Idle) 확인 타임으로 결정됨을 특징으로 하는 버스시스템에서의 어싱크로너스 패킷(Asynchronous Packet) 중재방법.
- 제 1 항에 있어서,상기 뉴우_서브액션 갭(new_subaction gap)은 종래의 서브액션 갭보다 작은 값을 갖는 것을 특징으로 하는 버스시스템에서의 어싱크로너스 패킷(Asynchronous Packet) 중재방법.
- 제 1 항에 있어서,상기 임의의 노드수가 기준값보다 적을 경우 상기 뉴우_서브액션 갭(new_subaction gap)을 어비트레이션 리셋 갭(Arbitration Reset Gap)으로 세팅하여 어비트레이션(Arbitration)을 수행하는 단계를 더 포함하여 이루어짐을 특징으로 하는 버스시스템에서의 어싱크로너스 패킷(Asynchronous Packet) 중재방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-1999-0004257A KR100539518B1 (ko) | 1999-02-08 | 1999-02-08 | 버스시스템에서의 어싱크로너스 패킷(AsynchronousPacket) 중재방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-1999-0004257A KR100539518B1 (ko) | 1999-02-08 | 1999-02-08 | 버스시스템에서의 어싱크로너스 패킷(AsynchronousPacket) 중재방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20000055575A KR20000055575A (ko) | 2000-09-05 |
KR100539518B1 true KR100539518B1 (ko) | 2005-12-29 |
Family
ID=19573727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-1999-0004257A KR100539518B1 (ko) | 1999-02-08 | 1999-02-08 | 버스시스템에서의 어싱크로너스 패킷(AsynchronousPacket) 중재방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100539518B1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19990087053A (ko) * | 1996-12-19 | 1999-12-15 | 이데이 노부유끼 | 데이터 전송 시스템 및 데이터 전송 방법과 데이터 송신 장치및 데이터 송신 방법 |
KR20000032876A (ko) * | 1998-11-18 | 2000-06-15 | 윤종용 | 가변 등시성 데이터 전송방법 및 그 장치 |
KR20000034438A (ko) * | 1998-11-30 | 2000-06-26 | 전주범 | 고성능 직렬버스를 통한 멀티캐스트용 데이터 전송방법 |
KR20000060055A (ko) * | 1999-03-11 | 2000-10-16 | 윤종용 | 아이 트리플 이(ieee) 1394 직렬 버스를 이용한 비동기식 패킷 전송방법 |
-
1999
- 1999-02-08 KR KR10-1999-0004257A patent/KR100539518B1/ko not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19990087053A (ko) * | 1996-12-19 | 1999-12-15 | 이데이 노부유끼 | 데이터 전송 시스템 및 데이터 전송 방법과 데이터 송신 장치및 데이터 송신 방법 |
KR20000032876A (ko) * | 1998-11-18 | 2000-06-15 | 윤종용 | 가변 등시성 데이터 전송방법 및 그 장치 |
KR20000034438A (ko) * | 1998-11-30 | 2000-06-26 | 전주범 | 고성능 직렬버스를 통한 멀티캐스트용 데이터 전송방법 |
KR20000060055A (ko) * | 1999-03-11 | 2000-10-16 | 윤종용 | 아이 트리플 이(ieee) 1394 직렬 버스를 이용한 비동기식 패킷 전송방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20000055575A (ko) | 2000-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6266334B1 (en) | Method for optimizing acknowledge packet rate | |
US6445711B1 (en) | Method of and apparatus for implementing and sending an asynchronous control mechanism packet used to control bridge devices within a network of IEEE STD 1394 serial buses | |
US5935208A (en) | Incremental bus reconfiguration without bus resets | |
US5802057A (en) | Fly-by serial bus arbitration | |
US5940399A (en) | Methods of collision control in CSMA local area network | |
US6356558B1 (en) | Arbitration techniques for a high speed serial bus | |
US7317694B1 (en) | Method and apparatus for border node behavior on a full-duplex bus | |
WO2002033902A1 (en) | Method for connecting an ieee1394 remote device to a cluster of ieee1394 devices through a wireless link | |
JP2003174486A (ja) | 情報通信装置、情報通信方法および情報通信処理プログラム | |
JP3351744B2 (ja) | データ伝送システム | |
KR100539518B1 (ko) | 버스시스템에서의 어싱크로너스 패킷(AsynchronousPacket) 중재방법 | |
KR100609493B1 (ko) | 복수의 센서 데이터를 하나의 캔 메시지로 전송하는 방법 | |
US7801053B2 (en) | Method for setting consistent values for a parameter in a network of distributed stations, as well as a network subscriber station for carrying out the method | |
US7145915B1 (en) | Circuit and method for exchanging signals between network nodes | |
US7490174B2 (en) | Method and apparatus for border node behavior on a full-duplex bus | |
US6594283B1 (en) | Network communication device | |
US20110292944A1 (en) | Fly-by and ack-accelerated arbitration for broadcast packets | |
JP2002185560A (ja) | シリアル転送方式 | |
US20080037421A1 (en) | State transitions in flow control protocol | |
JP2003198555A (ja) | ネットワーク管理装置 | |
JPH053478A (ja) | 多重通信制御装置 | |
JP2004072634A (ja) | データ通信装置およびデータ通信方法 | |
JPH07202842A (ja) | データ伝送装置 | |
JPH0362755A (ja) | アドレス自動設定方式 | |
JPH08204737A (ja) | データ伝送方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |