KR20010018958A - apparatus and method for controlling bus in digital interface - Google Patents

apparatus and method for controlling bus in digital interface Download PDF

Info

Publication number
KR20010018958A
KR20010018958A KR1019990035131A KR19990035131A KR20010018958A KR 20010018958 A KR20010018958 A KR 20010018958A KR 1019990035131 A KR1019990035131 A KR 1019990035131A KR 19990035131 A KR19990035131 A KR 19990035131A KR 20010018958 A KR20010018958 A KR 20010018958A
Authority
KR
South Korea
Prior art keywords
value
channel
node
lock
register
Prior art date
Application number
KR1019990035131A
Other languages
Korean (ko)
Other versions
KR100628177B1 (en
Inventor
이진혁
Original Assignee
구자홍
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구자홍, 엘지전자 주식회사 filed Critical 구자홍
Priority to KR1019990035131A priority Critical patent/KR100628177B1/en
Publication of KR20010018958A publication Critical patent/KR20010018958A/en
Application granted granted Critical
Publication of KR100628177B1 publication Critical patent/KR100628177B1/en

Links

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/40058Isochronous transmission
    • 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/40006Architecture of a communication node
    • H04L12/40032Details regarding a bus interface enhancer
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Information Transfer Systems (AREA)

Abstract

PURPOSE: The method and device for controlling a bus of a digital interface are provided to reduce a retry generated when mutually different channels are simultaneously allocated by using a lock transaction in more than two isochronous capable nodes on an IEEE(Institute of Electrical and Electronics Engineers) 1394 serial bus. In a new transaction, a channel allocation function is used at a channel allocation request, and a channel deallocation function is used at a channel deallocation request. CONSTITUTION: When performing lock transaction to an isochronous resource manager, new lock transaction is set up to an extended code of a lock request packet and a lock response packet. If lock transaction performed by other nodes does not changes a value of a channel for which allocation and deallocation is requested by a self node when performing the set lock transaction, channel allocation and deallocation are always performed from the isochronous resource manager. The new transaction uses a channel allocation function when requesting channel allocation and a channel deallocation function when requesting channel deallocation.

Description

디지털 인터페이스의 버스 제어장치 및 방법{apparatus and method for controlling bus in digital interface}Apparatus and method for controlling bus in digital interface}

본 발명은 디지털 인터페이스에 관한 것으로, 특히 디지털 인터페이스의 버스 제어장치 및 방법에 관한 것이다.The present invention relates to a digital interface, and more particularly, to a bus control apparatus and method for a digital interface.

IEEE 1394 시리얼 버스는 버스 초기화중에 자동적으로 컨피거레이션(Configuration)이 이루어지며, 노드들은 다수의 케이블 포트(cable port)를 가질 수 있으며, 하나의 로지컬 버스(logical bus)를 만들기 위해서 서로 신호 리피터(repeater)로서 동작한다.The IEEE 1394 serial bus is automatically configured during bus initialization, and nodes can have multiple cable ports, and signal repeaters can be used to create a logical bus. repeater).

그리고, IEEE 1394 시리얼 버스에서는 컨트롤(control)과 커맨드(command)에 관련된 데이터는 어싱크로너스 패킷 데이터(Asynchronous Packet data) 구조로 전송하고, 리얼 타임 데이터(Real Time data)는 아이소크로너스 패킷 데이터(Isochronous Packet data) 구조로 전송을 하며, 도 1 은 IEEE 1394 시리얼 버스로 연결된 노드들 사이의 물리적인 연결을 나타낸다.In the IEEE 1394 serial bus, data related to control and commands are transmitted in an Asynchronous Packet data structure, and real time data isochronous packet data. Packet data) structure, and FIG. 1 shows a physical connection between nodes connected by an IEEE 1394 serial bus.

또한, IEEE 1394 시리얼 버스의 아이소크로너스 리소스 매니저(Isochronous Resource manager)는 다음과 같은 3종류의 레지스터를 제공하고 있는데, 아이소크로너스 데이터 전송에 사용하는 밴드위스(bandwidth)의 할당을 나타내는 32비트의 밴드위스 어베이러블 레지스터(Bandwidth Available Register:BAR)와, 아이소크로너스 데이터 전송에 사용하는 채널의 할당상태를 가리키는 64비트의 채널 어베이러블 레지스터(Channel Available Register:CAR)와, 버스 매니저(Bus Manager)를 결정하는데 이용되는 32비트의 버스 매니저 아이디 레지스터(Bus Manager ID Register:BMR)가 있다.In addition, the Isochronous Resource Manager of the IEEE 1394 serial bus provides three types of registers, which are 32-bit bits representing the bandwidth allocation used for isochronous data transmission. Bandwidth Available Register (BAR), 64-bit Channel Available Register (CAR) indicating the allocation status of the channel used for isochronous data transfer, and Bus Manager (Bus). There is a 32-bit Bus Manager ID Register (BMR) used to determine the Manager.

이러한 레지스터들의 값을 변경하기 위해서는 쿼드렛 리드 트랜잭션(Quadlet Read Transaction )과 컴페어 스왑 락 트랜잭션(Compare Swap Lock Transaction)이 이용된다.To change the values of these registers, a quadlet read transaction and a compare swap lock transaction are used.

이하, 종래 기술에 따른 디지털 인터페이스의 버스 제어장치 및 방법에 대하여 첨부한 도면을 참조하여 설명하면 다음과 같다.Hereinafter, a bus control apparatus and method for a digital interface according to the prior art will be described with reference to the accompanying drawings.

도 1 은 IEEE 1394 시리얼 버스로 연결된 노드의 토폴로지(topology)의 일예를 나타낸 도면으로, 노드 H(Node_H)는 루트(Root)이면서 사이클 마스터(Cycle Master)이고 버스 매니저(Bus Manager)이면서 아이소크로너스 리소스 매니저(Isochronous Resource Manager)이며, 노드 A와 노드 B는 아이소크로너스 캐퍼블 노드(Isochronous capable node)로서 아이소크너스 데이터를 전송하기 위하여 상기 아이소크로너스 리소스 매니저(Isochronous Resource Manager)인 노드 H(Node_H)로부터 채널을 할당받게 된다.1 is a diagram illustrating an example of topology of a node connected to an IEEE 1394 serial bus, in which node H (Node_H) is a root, a cycle master, a bus manager, and an isochronus. Is an isochronous resource manager, and node A and node B are isochronous capable nodes, and node H (isochronous resource manager) for transmitting isochronous data. Channel is allocated from Node_H).

도 2a 내지 도 2d 는 종래 기술에 따른 디지털 인터페이스의 버스 제어방법에 따라 아이소크로너스 캐퍼블 노드(isochronous capable node)가 채널 할당 및 양도를 위해 사용하는 내부 레지스터들을 나타낸 도면이다.2A to 2D are diagrams illustrating internal registers used by an isochronous capable node for channel allocation and assignment according to a bus control method of a digital interface according to the prior art.

이와 같은 이루어진 종래 기술에 따른 디지털 인터페이스의 버스 제어장치 및 방법에 대하여 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다.Referring to the accompanying drawings, a bus control apparatus and method for a digital interface according to the related art made as described above are described in detail as follows.

먼저, 도 1 에 도시된 바와 같이 IEEE 1394 시리얼 버스상의 아이소크로너스 캐퍼블 노드 A(Isochronous capable Node_A)(또는 아이소크로너스 캐퍼블 노드 B(Node_B))는 아이소크로너스 데이터(Isochronous data)를 전송하려고 할 경우 전송에 필요한 채널이 이용 가능한지를 확인하기 위하여 노드 E(Node_E)(또는 노드 C(Node_C)와 노드 F(Node_F))를 통해 도 2a 에 도시된 바와 같은 IRM인 노드 H(Node_H)의 CAR(Channel Avail Register)로 쿼드렛 리드 리스펀스 서브액션(Quadlet Read Response subaction)을 수행한다.First, as shown in FIG. 1, isochronous Capable Node A (or isochronous Capable Node B (Node_B)) on an IEEE 1394 serial bus transmits isochronous data. In order to check whether a channel required for transmission is available, the node H (Node_H), which is an IRM as shown in FIG. 2A, is shown through node E (Node_E) (or node C (Node_C) and node F (Node_F)). A quadlet read response subaction is performed with a channel avail register (CAR).

그러면 상기 Quadlet Read Response subaction을 수신한 노드 H는 이에 대한 응답으로 쿼드렛 리드 리퀘스트 서브액션(Quadlet Read Request subaction)을 수행하여 CAR의 현재 상태를 알려준다.Then, in response to the Quadlet Read Response subaction, the Node H notifies the current state of the CAR by performing a Quadlet Read Request subaction.

이에 따라 상기 Quadlet Read Request subaction을 수신한 노드 A(또는 노드 B(Node_B))는 상기 Quadlet Read Request subaction의 리퀘스트 패킷(Request packet)내의 쿼드렛 데이터 필드(quadlet_data field)의 arg_value 필드값을 도 2b 에 도시된 바와 같은 자신의 arg_register에 저장한 후 아이소크로너스 데이터를 전송하기 위한 채널이 사용 가능한지를 검색한다.Accordingly, Node A (or Node B (Node_B)) receiving the Quadlet Read Request subaction shows the arg_value field value of the quadlet data field in the request packet of the Quadlet Read Request subaction in FIG. 2B. After storing in its arg_register as shown, it searches whether a channel for transmitting isochronous data is available.

즉, 처음 아이소크로너스 데이터를 전송하려는 노드(들)는 미사용 채널이 있는지를, 버스 리셋(Bus Reset) 발생전에 아이소크로너스 데이터를 전송하고 있던 노드(들)는 리셋 발생전에 자신이 할당받아 사용하던 채널이 사용 가능한지를 검색한다.In other words, the first node (s) to transmit isochronous data is used for whether there is an unused channel, and the node (s) that were transmitting isochronous data before the bus reset occurred are assigned and used before the reset occurs. Search for available channels.

상기 검색결과 채널이 사용 가능하다면 노드 A(또는 노드 B(Node_B))는 사용하고자 하는 채널의 해당 비트를 "0"으로 설정하여 도 2c 에 도시된 바와 같은 data_register에 저장한 후 락 리퀘스트 패킷(lock request packet)의 data_value 필드값에 기록한 후, arg_register의 arg_value 필드값을 기록한 arg_value 필드와 함께 컴페어-스왑 락 리퀘스트 서브액션(Compare-swap Lock Request Subaction)을 이용하여 상기 노드 H로 채널 할당을 요구한다.If the search result channel is available, Node A (or Node B) sets the corresponding bit of the channel to use to "0" and stores it in data_register as shown in FIG. After recording in the data_value field value of the request packet), a channel allocation is requested to the node H using a compar-swap lock request subaction together with the arg_value field in which the arg_value field value of the arg_register is recorded.

그러면 상기 Lock Request packet을 수신한 노드 H는 자신의 현재 CAR의 값(old_value)을 도 2d 에 도시된 바와 같은 old_register에 저장한 후 Response packet의 old_value 필드에 기록하여 Lock Response Subaction을 수행한다.Then, the node H receiving the lock request packet stores its current CAR value (old_value) in old_register as shown in FIG. 2D and writes it in the old_value field of the response packet to perform a lock response subaction.

즉 노드 H는 상기 Lock Request packet의 arg_value 필드값과 현재 CAR의 값을 비교한 후 같으면 Request packet의 data_value 필드값으로 CAR의 값을 변경(new_value)하고, 같지 않으면 CAR의 값을 변경하지 않은 후 Lock Response Subaction을 수행한다.That is, the node H compares the arg_value field value of the lock request packet with the current CAR value and if it is the same, changes the value of the CAR to the data_value field value of the request packet (new_value). Otherwise, the node H does not change the CAR value. Execute Response Subaction.

이에 따라 채널 할당을 요구한 노드 A(또는 노드 B(Node_B))는 상기 노드 H로부터 수신된 Lock Response Subaction내 Lock Response packet의 rcode(response code)의 값이 resp_complete로 Lock Transaction이 성공적으로 수행되었을 경우, Response packet의 old_value 필드값을 자신의 arg_register의 값과 비교한다.Accordingly, when a node A (or node B (Node_B)) requesting channel allocation has successfully performed a lock transaction with a resp_complete value of a rcode (response code) of a lock response packet in the lock response subaction received from the node H, The value of the old_value field of the response packet is compared with the value of its arg_register.

상기 비교결과 같으면 노드 A(또는 노드 B(Node_B))는 채널 할당에 성공한 것으로, 같지 않으면 자신이 채널을 할당받기 전에 다른 노드(들)가 먼저 Compare-swap Lock Transaction을 통하여 상기 노드 H의 CAR의 값을 변경시켜 채널을 할당받았다는 것으로 판단한 후 상기 Compare-swap Lock Request subaction을 디트라이(retry)하여 다시 채널을 할당을 요구한다.If the comparison result is equal, Node A (or Node B (Node_B)) has succeeded in channel allocation. If not, other node (s) first performs a Compare-swap Lock Transaction of the CAR of the node H before the channel is allocated. After changing the value to determine that the channel has been allocated, the Compare-swap Lock Request subaction is retryed to request channel allocation again.

이때 노드 A(또는 노드 B(Node_B))는 상기 Lock Response packet의 old_value 필드값이 현재 CAR의 값을 나타내므로, 상기 Quadlet read request subaction을 재차 수행할 필요는 없다.In this case, Node A (or Node B (Node_B)) does not need to perform the Quadlet read request subaction again because the old_value field value of the Lock Response packet indicates the current CAR value.

한편, 노드 A와 노드 B에서 아이소크로너스 데이터를 전송하기 위하여 각각 노드 E(Node E), 노드 C와 노드 F를 통해 아이소크로너스 리소스 매니저이면서 루트 노드인 노드 H로 채널 할당을 요구하기 위한 Quadlet Read Transaction의 Quadlet Read Response subaction을 동시에 수행하였을 경우 노드 H는 노드 A가 노드 B보다 루트 노드에 가깝기 때문에 우선 순위가 높으므로 상기 노드 A의 Quadlet Read Response subaction에 상응하는 Quadlet Read Request subaction을 수행한다.Meanwhile, a quadlet for requesting channel allocation to node H, which is an isochronous resource manager and a root node, through node E, node C, and node F to transmit isochronous data from node A and node B, respectively. When the Quadlet Read Response subaction of the Read Transaction is performed at the same time, Node H has a higher priority because Node A is closer to the root node than Node B. Therefore, Node H performs the Quadlet Read Request subaction corresponding to the Quadlet Read Response subaction of Node A.

즉 상기 노드 A로부터 Quadlet Read Response subaction을 수신한 노드 H는 이에 대한 응답으로 Quadlet Read Request subaction을 수행하여 현재 자신의 CAR 상태를 상기 노드 A로 알려준다.That is, Node H, which receives the Quadlet Read Response subaction from Node A, performs a Quadlet Read Request subaction in response to this and informs Node A of its current CAR status.

이후 상기 노드 B로부터 Quadlet Read Response subaction을 수신한 노드 H는 Quadlet Read Response subaction에 상응하는 Quadlet Read Request subaction을 수행하여 상기 노드 A로 알려준 CAR 상태와 동일한 CAR 상태를 노드 B로 알려준다.After receiving the Quadlet Read Response subaction from the Node B, Node H performs a Quadlet Read Request subaction corresponding to the Quadlet Read Response subaction and informs Node B of the same CAR status as the CAR status informed to Node A.

이에 따라 상기 Quadlet Read Request subaction을 수신한 노드 A는 상기와 같은 과정을 통해 Compare-swap Lock Request Subaction을 이용하여 상기 노드 H로 채널 할당을 요구한다.Accordingly, Node A receiving the Quadlet Read Request subaction requests channel assignment to Node H using the Compare-swap Lock Request Subaction through the above process.

그러면 상기 Compare-swap Lock Request Subaction을 수신한 노드 H는 상기한 과정을 통해 상기 Lock Request packet의 arg_value 필드값과 현재 CAR의 값을 비교한 후 같으면 Request packet의 data_value 필드값으로 CAR의 값을 변경(new_value)하고, 같지 않으면 CAR의 값을 변경하지 않은 후 Lock Response Subaction을 수행한다.Then, the node H receiving the Compare-swap Lock Request Subaction compares the arg_value field value of the lock request packet with the current CAR value through the above-described procedure, and if so, changes the value of the CAR to the data_value field value of the request packet. new_value) and if it is not the same, the Lock Response Subaction is executed after the CAR value is not changed.

이에 따라 채널 할당을 요구한 노드 A는 상기 노드 H로부터 수신된 Lock Response Subaction내 Lock Response packet의 rcode(response code)의 값이 resp_complete로 Lock Transaction이 성공적으로 수행되었을 경우, Response packet의 old_value 필드값을 자신의 arg_register의 값과 비교한다.Accordingly, the node A, which has requested channel allocation, returns the old_value field value of the response packet when the lock transaction is successfully performed with the resp_complete value of the rcode (response code) of the lock response packet received from the node H. Compare with your arg_register value.

상기 비교결과 같으면 노드 A는 채널 할당에 성공한 것으로, 같지 않으면 자신이 채널을 할당받기 전에 다른 노드(들)가 먼저 Compare-swap Lock Transaction을 통하여 상기 노드 H의 CAR의 값을 변경시켜 채널을 할당받았다는 것으로 판단한 후 상기 Compare-swap Lock Request subaction을 디트라이(retry)하여 다시 채널을 할당을 요구한다.If the comparison result is equal, node A succeeds in channel allocation. If not, node A is allocated channel by changing the value of CAR of node H through Compare-swap Lock Transaction. After the determination, the compare-swap lock request subaction is retryed to request channel allocation again.

이때 노드 A는 상기 Lock Response packet의 old_value 필드값이 현재 CAR의 값을 나타내므로, 상기 Quadlet read request subaction을 재차 수행할 필요는 없다.In this case, node A does not need to perform the quadlet read request subaction again because the old_value field value of the lock response packet indicates the current CAR value.

이후, 상기 노드 A가 Lock Transaction을 성공적으로 수행하였을 경우, 상기 Quadlet Read Request subaction을 수신한 노드 B는 상기와 같은 과정을 통해 아이소크로너스 데이터를 전송하기 위한 채널이 사용 가능한지를 검색한다.Subsequently, when the node A successfully performs the lock transaction, the node B receiving the quadlet read request subaction searches whether the channel for transmitting isochronous data is available through the above process.

상기 검색결과 사용 가능하면 노드 B는 사용하고자 하는 채널의 해당 비트를 "0"으로 설정한 후 lock request packet의 data_value 필드에 기록하고, arg_register의 arg_value 필드값을 기록한 arg_value 필드와 함께 Compare-swap Lock Request Subaction을 이용하여 상기 노드 H로 채널 할당을 요구한다.If the search result is available, Node B sets the corresponding bit of the channel to be used as "0" and writes it in the data_value field of the lock request packet, and compare-swap lock request with the arg_value field which records the arg_value field value of arg_register. A channel assignment is requested to the node H using Subaction.

그러면 Lock Request packet을 수신한 노드 H는 자신의 현재 CAR의 값(new_value)을 Response packet의 old_value 필드에 기록한 후 Lock Response Subaction을 수행한다.Then, the node H receiving the lock request packet records its current CAR value (new_value) in the old_value field of the response packet and then performs a lock response subaction.

즉 노드 H는 상기 Lock Request packet의 arg_value 필드값과 현재 CAR의 값(new_value)을 비교한 후 같지 않으면 CAR의 값을 변경하지 않은 후 자신의 현재 CAR의 값(new_value)을 Response packet의 old_value 필드에 기록한 후 Lock Response Subaction을 수행한다.That is, the node H compares the arg_value field value of the lock request packet with the current CAR value (new_value), and if it is not equal, does not change the value of the CAR and then changes the current CAR value (new_value) to the old_value field of the response packet. After recording, perform Lock Response Subaction.

이에 따라 채널 할당을 요구한 노드 A는 상기 노드 H로부터 수신된 Lock Transaction의 old_value 필드값을 자신의 arg_register의 값과 비교한다.Accordingly, the node A requesting channel allocation compares the old_value field value of the Lock Transaction received from the node H with its arg_register value.

상기 비교결과 같지 않으므로 자신이 채널을 할당받기 전에 다른 노드(들)가 먼저 Compare-swap Lock Transaction을 통하여 상기 노드 H의 CAR의 값을 변경시켜 채널을 할당받았다는 것으로 판단한 후 Compare-swap Lock Request subaction을 디트라이(retry)하여 다시 채널을 할당을 요구한다.Since the comparison result is not the same, before the node is allocated with the channel, the other node (s) first determines that the channel is allocated by changing the CAR value of the node H through the compare-swap lock transaction, and then executes the compare-swap lock request subaction. Retry and request channel allocation again.

이때 노드 B는 상기 Lock Response packet의 old_value 필드값이 현재 CAR의 값을 나타내므로, Quadlet read request subaction을 재차 수행할 필요는 없다.In this case, Node B does not need to perform the Quadlet read request subaction again because the old_value field value of the Lock Response packet indicates the current CAR value.

그러나 종래 기술에 따른 디지털 인터페이스의 버스 제어장치 및 방법은 다음과 같은 문제점이 있다.However, the bus control apparatus and method of the digital interface according to the prior art have the following problems.

첫째, 아이소크로너스 캐퍼블 노드 2개 이상이 동시에 서로 다른 채널 할당을 요구하였을 경우 요구된 채널이 미사용 중일지라도 우선 순위에 따라 아이소크로너스 리소스 매니저인 노드의 CAR값이 변경되기 때문에 채널을 할당받지 못한 노드(들)는 채널을 할당받기 위한 락 트랜잭션(Lock Transaction)을 리트라이(retry)해야 함으로 불필요한 Lock Transaction이 발생하게 된다.First, if two or more isochronous capacitive nodes simultaneously request different channel assignments, even if the requested channel is not in use, the channel is not allocated because the CAR value of the node, which is the isochronous resource manager, is changed according to the priority. Unsuccessful node (s) need to retry a lock transaction to receive a channel, causing unnecessary lock transactions.

둘째, 아이소크로너스 데이터 전송을 마친 후 할당받은 채널을 양도(Deallocation)하기 위한 컴페어 스왑 락 트랜잭션(Compare-swap Lock Transaction)의 경우에도 채널을 할당받은 노드만이 해당 채널을 양도하는 것임에도 불구하고 채널을 할당받은 다른 노드(들)에 의해 아이소크로너스 리소스 매니저인 노드의 채널 어베이러블 레지스터(Channel Available Register)값이 변경되었기 때문에 채널 양도를 위한 락 트랜잭션(Lock Transaction)을 리트라이(retry)해야 함으로 불필요한 Lock Transaction이 발생하게 된다.Second, even in the case of a comparable-swap lock transaction for deallocation of an allocated channel after isochronous data transmission, only the node to which the channel is allocated transfers the channel. Retry lock transaction for channel transfer because channel available register value of node that is isochronous resource manager has been changed by other node (s) assigned to channel. Unnecessary lock transaction occurs.

셋째, 임의의 노드의 부가나 제거로 인하여 버스 리셋(Bus Reset)이 발생하여 버스 리셋 이전에 아이소크로너스 데이터를 전송하고 있던 노드들이 버스 리셋후 이이소크로너스 데이터 전송을 계속하기 위해서 적어도 1000㎳ 이내에 버스 리셋전에 할당받았던 채널을 다시 할당받아야 하는 경우에도 불필요한 락 트랜잭션(Lock Transaction)으로 인하여 정해진 시간내에 채널을 재할당받지 못하는 경우 발생하게 된다.Third, a bus reset has occurred due to the addition or removal of an arbitrary node, so that nodes that were transmitting isochronous data before the bus reset continued to transmit isochronous data after the bus reset. Even if it is necessary to reassign the channel allocated before the bus reset within a short time, it can occur when the channel cannot be reallocated within the predetermined time due to an unnecessary lock transaction.

따라서 본 발명은 상기와 같은 문제점을 해결하기 위해 안출한 것으로서, IEEE 1394 시리얼 버스상의 적어도 2개이상의 아이소크로너스 캐퍼블 노드에서 락 트랜잭션(lock transaction)을 이용하여 동시에 서로 다른 채널을 할당받으려고 할 경우 발생하는 리트라이(retry)를 감소시키기 위한 디지털 인터페이스의 버스 제어장치 및 방법을 제공하는데 그 목적이 있다.Accordingly, the present invention has been made to solve the above problems, when at least two isochronous capacitive nodes on the IEEE 1394 serial bus to try to be allocated different channels at the same time using a lock transaction (lock transaction) It is an object of the present invention to provide a bus control device and a method of a digital interface for reducing a retry generated.

도 1 은 IEEE 1394 시리얼 버스로 연결된 노드의 토폴로지(topology)의 일예를 나타낸 도면1 is a diagram illustrating an example of topology of a node connected by an IEEE 1394 serial bus

도 2a 내지 도 2d 는 종래 기술에 따른 디지털 인터페이스의 버스 제어방법에 따라 아이소크로너스 캐퍼블 노드(isochronous capable node)가 채널 할당 및 양도를 위해 사용하는 내부 레지스터들을 나타낸 도면2A to 2D are diagrams illustrating internal registers used by an isochronous capable node for channel allocation and assignment according to a bus control method of a digital interface according to the prior art;

도 3a 및 도 3b 는 본 발명에 따른 디지털 인터페이스의 버스 제어방법에 따라 IEEE 1394 시리얼 버스에 연결된 하나 또는 2개의 아이소크로너스 캐퍼블 노드(isochronous capable node)에서 채널 할당을 요구하기 위한 트랜잭션 시퀀스(transaction sequence)의 예를 나타낸 도면3A and 3B illustrate a transaction sequence for requesting channel allocation in one or two isochronous capable nodes connected to an IEEE 1394 serial bus according to a bus control method of a digital interface according to the present invention. showing an example of a sequence)

도 4a 내지 도 4f 는 본 발명에 따른 디지털 인터페이스의 버스 제어방법에 따라 아이소크로너스 캐퍼블 노드(isochronous capable node)가 채널 할당 및 양도를 위해 사용하는 내부 레지스터들을 나타낸 도면4A to 4F illustrate internal registers used by an isochronous capable node for channel allocation and assignment according to a bus control method of a digital interface according to the present invention.

도 5a 내지 도 5c 는 본 발명에 따른 디지털 인터페이스의 버스 제어방법의 플로우 챠트를 나타낸 도면5A to 5C are flowcharts illustrating a bus control method of a digital interface according to the present invention.

상기와 같은 목적을 달성하기 위한 본 발명에 따른 디지털 인터페이스의 버스 제어방법의 특징은, 아이소크로너스 리소스 매니저(Isochronous Resource Manager)로 락 트랜잭션(Lock Transaction)시 락 리퀘스트 패킷(Lock Request packet)과 락 리스펀스 패킷(Lock Response packet)의 확장코드 필드(Extended_code field)로 새로운 락 트랜잭션(Lock Transaction)을 설정하는 단계와, 상기 설정된 락 트랜잭션(Lock Transaction)의 수행시 다른 노드에 의해서 수행된 락 트랜잭션(Lock Transaction)이 자신이 할당 및 양도를 요구한 채널의 값을 변경시키지 않는 경우 상기 아이소크로너스 리소스 매니저(Isochronous Resource Manager)로부터 항상 채널을 할당받고 양도하는 단계를 포함하여 이루어지는데 있다.A bus control method of a digital interface according to the present invention for achieving the above object is a lock request packet and a lock request during a lock transaction with an isochronous resource manager. Setting a new lock transaction with an extended_code field of a lock response packet, and a lock transaction performed by another node when performing the set lock transaction; If the transaction does not change the value of the channel for which the allocation and assignment is required, the channel is always assigned and transferred from the isochronous resource manager (Isochronous Resource Manager).

상기 새로운 락 트랜잭션(Lock Transaction)은 채널 할당 요구시 채널 할당 펑션(ch_alloc function), 채널 양도 요구시 채널 양도 펑션(ch_dealloc function)을 이용하는 락 트랜잭션(Lock Transaction)임을 다른 특징으로 하는데 있다.The new lock transaction is a lock transaction using a channel allocation function (ch_alloc function) when a channel allocation request is requested, and a channel transfer function (ch_dealloc function) when a channel assignment request is requested.

상기 채널을 할당받고 양도하는 단계에서 상기 채널 할당 펑션(ch_alloc function)을 이용한 락 트랜잭션(Lock Transaction)은 상기 아이소크로너스 리소스 매니저(Isochronous Resource Manager)의 채널 어베이러블 레지스터(Channel Available Register)의 값중에서 원하는 채널의 값을 "1"로 설정하고 나머지는 "0"으로 설정하여 데이터 레지스터(data_register)에 저장한 후 채널 할당 락 리퀘스트 서브액션(Ch_alloc Lock Request subaction)을 수행하여 상기 아이소크로너스 리소스 매니저(Isochronous Resource Manager)로 전송하는 것을 특징으로 하는데 또다른 특징이 있다.In the step of allocating and transferring the channel, a lock transaction using the channel allocation function (ch_alloc function) is a value of a channel available register of the isochronous resource manager. The value of the desired channel is set to "1", the rest is set to "0", and the data is stored in the data register (data_register), and then the channel allocation lock request (Ch_alloc Lock Request subaction) is performed to the isochronous resource manager. It is characterized by sending to (Isochronous Resource Manager).

상기와 같은 목적을 달성하기 위한 본 발명에 따른 디지털 인터페이스의 버스 제어장치의 특징은, 현재 채널의 할당 상태를 나타내는 아이소크로너스 리소스 매니저(Isochronous Resource Manager:IRM)의 채널 어베이러블 레지스터(Channel Available Register:CAR)와, 리드 리스펀스 패킷(Read Response packet)의 arg_value 필드값과 락 리스펀스 패킷(Lock Response packet)의 old_value 필드값을 저장하는 arg 레지스터와, 채널 할당 요구시 상기 arg 레지스터에 기록된 arg값에 의해서 필요한 채널의 비트만을 세팅하여 락 리퀘스트 패킷(Lock Request packet)의 data_value 필드를 통해서 IRM 노드의 CAR의 값을 변경하기 위한 값을 저장하는 data 레지스터와, 상기 락 리퀘스트 패킷(Lock Request packet)을 수신한 IRM은 할당을 요구시에는 old_value 및 data_value로, 양도 요구시에는 상기 두 값을 비교하여 같은 값만을 저장하는 compare 레지스터와, 상기 락 리퀘스트 패킷(Lock Request packet)을 수신한 IRM 노드가 현재 CAR의 값과 락 리퀘스트 패킷(Lock Request packet)의 data_value 필드값에 대해서 채널 할당 요구시에는 old_value와 data_value를 Exclusive_OR한 값을, 양도시에는 OR한 값을 저장하는 new_data 레지스터를 포함하여 구성되는데 있다.A feature of the bus control apparatus of the digital interface according to the present invention for achieving the above object is a channel available register of the isochronous resource manager (IRM) indicating the current channel allocation status. An arg register that stores a Register: CAR, an arg_value field value of a Read Response packet and an old_value field value of a Lock Response packet, and an arg value recorded in the arg register when a channel allocation request is made. A data register for storing only a value for changing a value of a CAR of an IRM node through a data_value field of a lock request packet by setting only a bit of a channel required by the lock request packet, and the lock request packet. Received IRM is old_value and data_value when requesting an assignment, and when the assignment is requested The register and the register, and the old_value and data_value when the channel allocation request is made for the value of the current CAR and the value of the data_value field of the lock request packet. It consists of a new_data register that stores the value of Exclusive_OR and the value of OR in both cities.

본 발명은 채널 할당과 양도를 요구하기 위한 Lock Transaction시 Lock Request packet과 Lock Response packet의 Extended_code로 채널 할당 요구에는 ch_alloc function, 채널 양도 요구에는 ch_dealloc function과 같은 새로운 Lock Transaction을 사용함으로써, 먼저 다른 노드(들)에 의해서 수행된 Lock Transaction이 자신이 할당 및 양도할 수 있도록 함으로써, 불필요한 Lock Transation의 리트라이(retry)를 방지하여 전체 IEEE 1394 시리얼 버스의 성능을 향상시킬 수 있다.According to the present invention, a new lock transaction such as a ch_alloc function for a channel allocation request and a ch_dealloc function for a channel assignment request is used as an extended_code of a lock request packet and a lock response packet during a lock transaction for requesting channel assignment and assignment. By allowing the lock transaction performed by the user to assign and transfer the lock transaction, the performance of the entire IEEE 1394 serial bus can be improved by preventing unnecessary retry of the lock transition.

본 발명의 다른 목적, 특징 및 잇점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.Other objects, features and advantages of the present invention will become apparent from the following detailed description of embodiments taken in conjunction with the accompanying drawings.

이하, 본 발명에 따른 디지털 인터페이스의 버스 제어장치 및 방법의 바람직한 실시예에 대하여 첨부한 도면을 참조하여 설명하면 다음과 같다.Hereinafter, a preferred embodiment of a bus control apparatus and method for a digital interface according to the present invention will be described with reference to the accompanying drawings.

도 3a 및 도 3b 는 본 발명에 따른 디지털 인터페이스의 버스 제어방법에 따라 IEEE 1394 시리얼 버스에 연결된 하나 또는 2개의 아이소크로너스 캐퍼블 노드(isochronous capable node)에서 채널 할당을 요구하기 위한 트랜잭션 시퀀스(transaction sequence)의 예를 나타낸 도면이고, 도 4a 내지 도 4f 는 본 발명에 따른 디지털 인터페이스의 버스 제어방법에 따라 아이소크로너스 캐퍼블 노드(isochronous capable node)가 채널 할당 및 양도를 위해 사용하는 내부 레지스터들을 나타낸 도면이고, 도 5a 내지 도 5c 는 본 발명에 따른 디지털 인터페이스의 버스 제어방법의 플로우 챠트를 나타낸 도면이다.3A and 3B illustrate a transaction sequence for requesting channel allocation in one or two isochronous capable nodes connected to an IEEE 1394 serial bus according to a bus control method of a digital interface according to the present invention. 4A to 4F illustrate internal registers used by an isochronous capable node for channel allocation and assignment according to a bus control method of a digital interface according to the present invention. 5A to 5C are flowcharts illustrating a bus control method of a digital interface according to the present invention.

이와 같이 구성된 본 발명에 따른 디지털 인터페이스의 버스 제어장치 및 방법에 대하여 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다.The bus control apparatus and method for a digital interface according to the present invention configured as described above will be described in detail with reference to the accompanying drawings.

먼저, 도 1 에 도시된 바와 같이 IEEE 1394 시리얼 버스상의 아이소크로너스 캐퍼블 노드 A(Isochronous capable Node_A)(또는 아이소크로너스 캐퍼블 노드 B(Node_B))는 아이소크로너스 데이터(Isochronous data)를 전송하려고 할 경우 전송에 필요한 채널이 이용 가능한지를 확인하기 위하여 도 3a 에 도시된 바와 같이 노드 E(Node_E)(또는 노드 C(Node_C)와 노드 F(Node_F))를 통해 도 4a 에 도시된 바와 같은 IRM인 노드 H(Node_H)의 CAR(Channel Avail Register)로 쿼드렛 리드 리스펀스 서브액션(Quadlet Read Response subaction)을 수행하여 채널 할당 락 리퀘스트 패킷(ch_alloc Lock Request packet)을 전송한다.First, as shown in FIG. 1, isochronous Capable Node A (or isochronous Capable Node B (Node_B)) on an IEEE 1394 serial bus transmits isochronous data. In order to check whether a channel required for transmission is available, the IRM as shown in FIG. 4A through the Node E (Node_E) (or Node C (Node_C) and Node F (Node_F)) as shown in FIG. 3A. A quadlet read response subaction is performed to a channel avail register (CAR) of an in-node H (Node_H) to transmit a channel allocation lock request packet.

그러면 상기 Quadlet Read Response subaction을 수신한 노드 H는 이에 대한 응답으로 쿼드렛 리드 리퀘스트 서브액션(Quadlet Read Request subaction)을 수행하여 CAR의 현재 상태를 알려준다.Then, in response to the Quadlet Read Response subaction, the Node H notifies the current state of the CAR by performing a Quadlet Read Request subaction.

이에 따라 상기 Quadlet Read Request subaction을 수신한 노드 A(또는 노드 B(Node_B))는 상기 Quadlet Read Request subaction의 리퀘스트 패킷(Request packet)내의 쿼드렛 데이터 필드(quadlet_data field)의 arg_value 필드값을 도 4b 에 도시된 바와 같은 자신의 arg_register에 저장한 후 아이소크로너스 데이터를 전송하기 위한 채널이 사용 가능한지를 검색한다.Accordingly, Node A (or Node B) receiving the Quadlet Read Request subaction shows the arg_value field value of the quadlet data field in the request packet of the Quadlet Read Request subaction in FIG. 4B. After storing in its arg_register as shown, it searches whether a channel for transmitting isochronous data is available.

즉, 처음 아이소크로너스 데이터를 전송하려는 노드(들)는 미사용 채널이 있는지를, 버스 리셋(Bus Reset) 발생전에 아이소크로너스 데이터를 전송하고 있던 노드(들)는 리셋 발생전에 자신이 할당받아 사용하던 채널이 사용 가능한지를 검색한다.In other words, the first node (s) to transmit isochronous data is used for whether there is an unused channel, and the node (s) that were transmitting isochronous data before the bus reset occurred are assigned and used before the reset occurs. Search for available channels.

상기 검색결과 채널이 사용 가능하다면 노드 A(또는 노드 B(Node_B))는 사용하고자 하는 채널의 해당 비트만을 "1"로 설정(채널 양도시에서는 "0"으로 설정)하고, 나머지 비트들 모두를 "0"으로 설정(채널 양도시에는 "1"로 설정)하여 도 4c 에 도시된 바와 같은 data_register에 저장한 후 채널 할당 락 리퀘스트 패킷(Ch_alloc Lock Request packet)의 data_value 필드에 기록한 후 채널 할당 락 리퀘스트 서브액션(Ch_alloc Lock Request Subaction)을 이용(채널 양도시에는 채널 양도 락 리퀘스트 서브액션(Ch_dealloc Lock Request Subaction)을 이용)하여 상기 노드 H로 채널 할당을 요구한다.If the search result channel is available, Node A (or Node B (Node_B)) sets only the corresponding bit of the channel to be used as "1" ("0" in both channels) and sets all remaining bits to "." Set to 0 "(" 1 "for channel transfer), store in data_register as shown in FIG. 4C, write to data_value field of CH_alloc Lock Request packet, and then assign channel lock request subaction. The channel H is requested to the node H by using (Ch_alloc Lock Request Subaction) (in the case of channel transfer, the channel transfer lock request subaction is used).

그러면 상기 Ch_alloc Lock Request packet을 수신한 노드 H는 자신의 data_register에 기록한 후 자신의 현재 CAR의 값(old_value)과 논리곱(AND)한 값을 자신의 compare_register에 저장(채널 양도시에는 논리합(OR)한 값을 저장)하고, old_value와 data_value를 부정 논리합(Exclusive OR)한 값을 new_data_register에 저장(채널 양도시에는 상기 old_value와 data_value의 부정을 취한 값과 논리합(OR)하여 저장)한다.Then, the node H receiving the Ch_alloc Lock Request packet records the data_register in its data_register and stores the value (AND) of its current CAR in its compare_register (OR in OR). A value), and an exclusive OR of old_value and data_value are stored in new_data_register (OR is ORed with the negated value of old_value and data_value in the channel transfer).

이어 노드 H는 Ch_alloc Lock Response packet의 compare_value 필드에 자신의 compare_register의 값과 old_value 필드에 현재 자신의 CAR의 값을 기록한 후 노드 A로 전송하고, compare_register의 값이 data_register의 값과 같으므로 new_data_register의 값으로 CAR의 값을 변경하고, 같지 않을 경우는 CAR의 값을 변경하지 않는다.Next, node H records its compare_register value in the compare_value field of the Ch_alloc Lock Response packet and the value of its current CAR in the old_value field and sends it to node A. Since the value of compare_register is equal to the value of data_register, the value of new_data_register is set. The value of the CAR is changed and if it is not the same, the value of the CAR is not changed.

이에 따라 노드 A는 상기 노드 H로부터 전송된 Ch_alloc Lock Response packet의 compare_value 필드값을 자신의 compare_register에 그리고 old_value 필드값을 자신의 arg_register에 저장한 후 상기 Ch_alloc Lock Response packet의 rcode가 resp_complete인지를 검색하여 resp_complete라면 자신의 compare_register의 값과 data_register의 값을 비교하여 같으면 채널 할당에 성공했다는 것을 인식하고, 상기 resp_complete가 아니거나 compare_register의 값과 data_register의 값이 같지 않다면 arg-register에 기록된 값을 이용하여 Ch_alloc Lock Request subaction을 리트라이(retry)한다.Accordingly, node A stores the compare_value field value of the Ch_alloc Lock Response packet transmitted from the node H in its compare_register and the old_value field value in its arg_register, and then searches whether the rcode of the Ch_alloc Lock Response packet is resp_complete and resp_complete. If it compares the value of its compare_register with the value of data_register, if it is equal, it recognizes that the channel allocation is successful. If it is not resp_complete or if the value of compare_register and the value of data_register are not equal, Ch_alloc Lock is performed using the value recorded in arg-register. Retry the request subaction.

한편, 노드 A와 노드 B에서 아이소크로너스 데이터를 전송하기 위하여 각각 노드 E(Node E), 노드 C와 노드 F를 통해 아이소크로너스 리소스 매니저이면서 루트 노드인 노드 H로 채널 할당을 요구하기 위한 Quadlet Read Transaction의 Quadlet Read Response subaction을 도 3b 에 도시된 바와 같이 수행하였을 경우 노드 H는 노드 A가 노드 B보다 루트 노드에 가깝기 때문에 우선 순위가 높으므로 상기 노드 A의 Quadlet Read Response subaction에 상응하는 Quadlet Read Request subaction을 수행한다.Meanwhile, a quadlet for requesting channel allocation to node H, which is an isochronous resource manager and a root node, through node E, node C, and node F to transmit isochronous data from node A and node B, respectively. When the Quadlet Read Response subaction of the Read Transaction is performed as shown in FIG. 3B, Node H has a higher priority because Node A is closer to the root node than Node B, so the Quadlet Read corresponding to the Quadlet Read Response subaction of Node A is higher. Execute the request subaction.

즉 상기 노드 A로부터 Quadlet Read Response subaction을 수신한 노드 H는 이에 대한 응답으로 Quadlet Read Request subaction을 수행하여 현재 자신의 CAR 상태를 상기 노드 A로 알려준다.That is, Node H, which receives the Quadlet Read Response subaction from Node A, performs a Quadlet Read Request subaction in response to this and informs Node A of its current CAR status.

이후 상기 노드 B로부터 Quadlet Read Response subaction을 수신한 노드 H는 Quadlet Read Response subaction에 상응하는 Quadlet Read Request subaction을 수행하여 상기 노드 A로 알려준 CAR 상태와 동일한 CAR 상태를 노드 B로 알려준다.After receiving the Quadlet Read Response subaction from the Node B, Node H performs a Quadlet Read Request subaction corresponding to the Quadlet Read Response subaction and informs Node B of the same CAR status as the CAR status informed to Node A.

이에 따라 상기 Quadlet Read Request subaction을 수신한 노드 A는 상기 Quadlet Read Request subaction의 리퀘스트 패킷(Request packet)내의 쿼드렛 데이터 필드(quadlet_data field)의 arg_value 필드값을 도 4b 에 도시된 바와 같은 자신의 arg_register에 저장한 후 아이소크로너스 데이터를 전송하기 위한 채널이 사용 가능한지를 검색한다.Accordingly, the Node A receiving the Quadlet Read Request subaction sends the arg_value field value of the quadlet data field in the request packet of the Quadlet Read Request subaction to its arg_register as shown in FIG. 4B. After storing, it searches whether a channel for transmitting isochronous data is available.

즉, 처음 아이소크로너스 데이터를 전송하려는 노드(들)는 미사용 채널이 있는지를, 버스 리셋(Bus Reset) 발생전에 아이소크로너스 데이터를 전송하고 있던 노드(들)는 리셋 발생전에 자신이 할당받아 사용하던 채널이 사용 가능한지를 검색한다.In other words, the first node (s) to transmit isochronous data is used for whether there is an unused channel, and the node (s) that were transmitting isochronous data before the bus reset occurred are assigned and used before the reset occurs. Search for available channels.

상기 검색결과 채널이 사용 가능하다면 노드 A는 사용하고자 하는 채널의 해당 비트만을 "1"로 설정하고, 나머지 비트들 모두를 "0"으로 설정하여 도 4c 에 도시된 바와 같은 data_register에 저장한 후 채널 할당 락 리퀘스트 패킷(Ch_alloc Lock Request packet)의 data_value 필드에 기록한 후 채널 할당 락 리퀘스트 서브액션(Ch_alloc Lock Request Subaction)을 이용하여 상기 노드 H로 채널 할당을 요구한다.If the search result channel is available, node A sets only the corresponding bit of the channel to be used as "1", and sets all remaining bits to "0" and stores the data in the data_register as shown in FIG. After recording in the data_value field of the Ch_alloc Lock Request packet, the channel H is requested to the node H using a Ch_alloc Lock Request Subaction.

마찬가지로 상기 검색결과 채널이 사용 가능하다면 노드 B는 사용하고자 하는 채널의 해당 비트만을 "1"로 설정하고, 나머지 비트들 모두를 "0"으로 설정하여 도 4c 에 도시된 바와 같은 data_register에 저장한 후 채널 할당 락 리퀘스트 패킷(Ch_alloc Lock Request packet)의 data_value 필드에 기록한 후 채널 할당 락 리퀘스트 서브액션(Ch_alloc Lock Request Subaction)을 이용하여 상기 노드 H로 채널 할당을 요구한다.Similarly, if the search result channel is available, the Node B sets only the corresponding bit of the channel to be used as "1", and sets all other bits to "0" and stores it in data_register as shown in FIG. 4C. After recording in the data_value field of the Ch_alloc Lock Request packet, the channel H is requested to the node H using a Ch_alloc Lock Request Subaction.

그러면 상기 노드 A로부터 Ch_alloc Lock Request packet을 수신한 노드 H는 자신의 data_register에 기록한 후 자신의 현재 CAR의 값(old_value)과 논리곱(AND)한 값을 자신의 compare_register에 저장하고, old_value와 data_value를 부정 논리합(Exclusive OR)한 값을 new_data_register에 저장한다.Then, after receiving the Ch_alloc Lock Request packet from the node A, the node H writes to its data_register and stores the current (old_value) and AND of its current CAR in its compare_register, and stores old_value and data_value. Stores an exclusive OR in new_data_register.

이어 노드 H는 Ch_alloc Lock Response packet의 compare_value 필드에 자신의 compare_register의 값과 old_value 필드에 현재 자신의 CAR의 값을 기록한 후 노드 A로 전송하고, compare_register의 값이 data_register의 값과 같으므로 new_data_register의 값으로 CAR의 값을 변경하고, 같지 않을 경우는 CAR의 값을 변경하지 않는다.Next, node H records its compare_register value in the compare_value field of the Ch_alloc Lock Response packet and the value of its current CAR in the old_value field and sends it to node A. Since the value of compare_register is equal to the value of data_register, the value of new_data_register is set. The value of the CAR is changed and if it is not the same, the value of the CAR is not changed.

또한, 노드 H는 도 3b 에 도시된 바와 같이, 노드 A로부터 Ch_alloc Lock Request Subaction 다음에 전송되어 펜딩(Pending)된 노드 B의 Ch_alloc Lock Request Subaction에 따라서 전송된 lock Request packet의 data_value 필드값을 자신이 data_register에 기록하고, old_value(현재 CAR의 값)와 data_value를 논리곱(AND)한 값을 compare_register에 저장하고, old_value와 data_value를 부정 논리합(Exclusive OR)한 값을 new_data_register에 저장한다.In addition, as shown in FIG. 3B, the node H sends a value of the data_value field of the lock request packet transmitted according to the Ch_alloc lock request subaction of the node B, which is transmitted from the node A after the Ch_alloc lock request subaction and is pending. The data_register is stored, the old_value (current CAR value) and the data_value are ANDed and stored in compare_register. The old_value and the data_value are negatively ORed (Exclusive OR) in new_data_register.

이어 노드 H는 Ch_alloc Lock Response packet의 compare_value 필드에 자신의 compare_register의 값과 old_value 필드에 현재 자신의 CAR의 값을 기록한 후 노드 B로 전송하고, compare_register의 값이 data_register의 값과 같으므로 new_data_register의 값으로 CAR의 값을 변경하고, 같지 않을 경우는 CAR의 값을 변경하지 않는다.Node H then records its compare_register value in the compare_value field of the Ch_alloc Lock Response packet and its current CAR value in the old_value field and sends it to node B. Since the value of compare_register is equal to the value of data_register, the value of new_data_register is set. The value of the CAR is changed and if it is not the same, the value of the CAR is not changed.

이에 따라 노드 A는 상기 노드 H로부터 전송된 Ch_alloc Lock Response packet의 compare_value 필드값을 자신의 compare_register에 그리고 old_value 필드값을 자신의 arg_register에 저장한 후 상기 Ch_alloc Lock Response packet의 rcode가 resp_complete인지를 검색하여 resp_complete라면 자신의 compare_register의 값과 data_register의 값을 비교하여 같으면 채널 할당에 성공했다는 것을 인식하고, 상기 resp_complete가 아니거나 compare_register의 값과 data_register의 값이 같지 않다면 arg-register에 기록된 값을 이용하여 Ch_alloc Lock Request subaction을 리트라이(retry)한다.Accordingly, node A stores the compare_value field value of the Ch_alloc Lock Response packet transmitted from the node H in its compare_register and the old_value field value in its arg_register, and then searches whether the rcode of the Ch_alloc Lock Response packet is resp_complete and resp_complete. If it compares the value of its compare_register with the value of data_register, if it is equal, it recognizes that the channel allocation is successful. If it is not resp_complete or if the value of compare_register and the value of data_register are not equal, Ch_alloc Lock is performed using the value recorded in arg-register. Retry the request subaction.

마찬가지로 노드 B는 상기 노드 H로부터 전송된 Ch_alloc Lock Response packet의 compare_value 필드값을 자신의 compare_register에 그리고 old_value 필드값을 자신의 arg_register에 저장한 후 상기 Ch_alloc Lock Response packet의 rcode가 resp_complete인지를 검색하여 resp_complete라면 자신의 compare_register의 값과 data_register의 값을 비교하여 같으면 채널 할당에 성공했다는 것을 인식하고, 상기 resp_complete가 아니거나 compare_register의 값과 data_register의 값이 같지 않다면 arg-register에 기록된 값을 이용하여 Ch_alloc Lock Request subaction을 리트라이(retry)한다.Similarly, after the node B stores the compare_value field value of the Ch_alloc Lock Response packet transmitted from the node H in its compare_register and the old_value field value in its arg_register, the node B searches whether the rcode of the Ch_alloc lock response packet is resp_complete and resp_complete. If it compares its own value of compare_register with data_register, it recognizes that the channel allocation is successful. If it is not resp_complete or if compare_register and data_register are not equal, Ch_alloc Lock Request using the value recorded in arg-register Retry the subaction.

한편, 채널 양도(Channel Deallocation)일 경우에는 도 4a 내지 도 4f 에 도시된 레지스터들의 값을 변경하는 연산만 다르고 기본적인 Lock Transition의 개념은 동일하므로 이에 대한 설명은 생략한다.Meanwhile, in the case of channel deallocation, only the operation of changing the values of the registers shown in FIGS. 4A to 4F is different, and the basic lock transition concept is the same.

이상에서 설명한 바와 같이 본 발명에 따른 디지털 인터페이스의 버스 제어장치 및 방법은 다음과 같은 효과가 있다.As described above, the bus control apparatus and method of the digital interface according to the present invention have the following effects.

첫째, IEEE 1394 시리얼 버스상의 적어도 2개이상의 아이소크로너스 캐퍼블 노드에서 락 트랜잭션(lock transaction)을 이용하여 동시에 서로 다른 채널을 할당받으려고 할 경우 발생하는 리트라이(retry)를 감소시켜 불필요한 Lock Transaction의 발생을 방지함으로써 디지털 인터페이스의 성능을 향상시킬 수 있다.First, at least two isochronous capacitive nodes on the IEEE 1394 serial bus can reduce the retry that occurs when trying to allocate different channels at the same time by using a lock transaction. By preventing occurrences, the performance of the digital interface can be improved.

둘째, 아이소크로너스 데이터 전송을 마친 후 할당받은 채널을 양도(Deallocation)하기 위한 락 트랜잭션(Lock Transaction)의 경우에 채널을 할당받은 다른 노드(들)에 의해 아이소크로너스 리소스 매니저인 노드의 CAR값이 변경되어도 할당받은 자신의 채널만 변경되지 않았다면 채널을 양도할 수 있게 된다.Second, in the case of a lock transaction for deallocation of an allocated channel after isochronous data transmission, a CAR value of a node that is an isochronous resource manager by another node (s) allocated the channel. If this change does not change only the assigned channel, the channel can be transferred.

셋째, 임의의 노드의 부가나 제거로 인하여 버스 리셋(Bus Reset)이 발생하여 버스 리셋 이전에 아이소크로너스 데이터를 전송하고 있던 노드들이 버스 리셋후 이이소크로너스 데이터 전송을 계속하기 위해서 적어도 1000㎳ 이내에 버스 리셋전에 할당받았던 채널을 다시 할당받아야 하는 경우에도 불필요한 Lock Transaction을 줄여 정해진 시간내에 채널을 재할당받을 수 있다.Third, a bus reset has occurred due to the addition or removal of an arbitrary node, so that nodes that were transmitting isochronous data before the bus reset continued to transmit isochronous data after the bus reset. Even if it is necessary to reassign a channel that had been allocated before bus reset within a short time, unnecessary lock transaction can be reduced so that the channel can be reallocated within a predetermined time.

이상 설명한 내용을 통해 당업자라면 본 발명의 기술 사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다.Those skilled in the art will appreciate that various changes and modifications can be made without departing from the spirit of the present invention.

따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정해져야 한다.Therefore, the technical scope of the present invention should not be limited to the contents described in the embodiments, but should be defined by the claims.

Claims (4)

아이소크로너스 리소스 매니저(Isochronous Resource Manager)로 락 트랜잭션(Lock Transaction)시 락 리퀘스트 패킷(Lock Request packet)과 락 리스펀스 패킷(Lock Response packet)의 확장코드 필드(Extended_code field)로 새로운 락 트랜잭션(Lock Transaction)을 설정하는 단계와;New lock transaction (Extended_code field) of lock request packet and lock response packet during lock transaction with isochronous resource manager Setting); 상기 설정된 락 트랜잭션(Lock Transaction)의 수행시 다른 노드에 의해서 수행된 락 트랜잭션(Lock Transaction)이 자신이 할당 및 양도를 요구한 채널의 값을 변경시키지 않는 경우 상기 아이소크로너스 리소스 매니저(Isochronous Resource Manager)로부터 항상 채널을 할당받고 양도하는 단계를 포함하여 구성된 것을 특징으로 하는 디지털 인터페이스의 버스 제어방법.The isochronous resource manager when the lock transaction executed by another node does not change the value of a channel for which allocation or transfer is requested by the other node when the set lock transaction is performed. The bus control method of the digital interface, characterized in that it comprises a step of always assigning and transferring a channel from). 제 1 항에 있어서,The method of claim 1, 상기 새로운 락 트랜잭션(Lock Transaction)은 채널 할당 요구시 채널 할당 펑션(ch_alloc function), 채널 양도 요구시 채널 양도 펑션(ch_dealloc function)을 이용하는 락 트랜잭션(Lock Transaction)임을 특징으로 하는 디지털 인터페이스의 버스 제어방법.The new lock transaction is a lock transaction using a channel allocation function (ch_alloc function) when a channel allocation request is requested and a channel transfer function (ch_dealloc function) when a channel assignment request is requested. . 제 1 항에 있어서,The method of claim 1, 상기 채널을 할당받고 양도하는 단계에서 상기 채널 할당 펑션(ch_alloc function)을 이용한 락 트랜잭션(Lock Transaction)은 상기 아이소크로너스 리소스 매니저(Isochronous Resource Manager)의 채널 어베이러블 레지스터(Channel Available Register)의 값중에서 원하는 채널의 값을 "1"로 설정하고 나머지는 "0"으로 설정하여 데이터 레지스터(data_register)에 저장한 후 채널 할당 락 리퀘스트 서브액션(Ch_alloc Lock Request subaction)을 수행하여 상기 아이소크로너스 리소스 매니저(Isochronous Resource Manager)로 전송하는 것을 특징으로 하는 디지털 인터페이스의 버스 제어방법.In the step of allocating and transferring the channel, a lock transaction using the channel allocation function (ch_alloc function) is a value of a channel available register of the isochronous resource manager. The value of the desired channel is set to "1", the rest is set to "0", and the data is stored in the data register (data_register), and then the channel allocation lock request (Ch_alloc Lock Request subaction) is performed to the isochronous resource manager. Bus control method of a digital interface, characterized in that the transmission to the (Isochronous Resource Manager). 현재 채널의 할당 상태를 나타내는 아이소크로너스 리소스 매니저(Isochronous Resource Manager:IRM)의 채널 어베이러블 레지스터(Channel Available Register:CAR)와;A channel available register (CAR) of an isochronous resource manager (IRM) indicating an allocation state of a current channel; 리드 리스펀스 패킷(Read Response packet)의 arg_value 필드값과 락 리스펀스 패킷(Lock Response packet)의 old_value 필드값을 저장하는 arg 레지스터와;An arg register for storing an arg_value field value of a read response packet and an old_value field value of a lock response packet; 채널 할당 요구시 상기 arg 레지스터에 기록된 arg값에 의해서 필요한 채널의 비트만을 세팅하여 락 리퀘스트 패킷(Lock Request packet)의 data_value 필드를 통해서 IRM 노드의 CAR의 값을 변경하기 위한 값을 저장하는 data 레지스터와;A data register that stores a value for changing a CAR value of an IRM node through a data_value field of a lock request packet by setting only bits of a channel required by an arg value recorded in the arg register when a channel allocation request is made. Wow; 상기 락 리퀘스트 패킷(Lock Request packet)을 수신한 IRM은 할당을 요구시에는 old_value 및 data_value로, 양도 요구시에는 상기 두 값을 비교하여 같은 값만을 저장하는 compare 레지스터와;An IRM receiving the lock request packet includes an old register and an data_value when an allocation request is requested, and a compare register for storing only the same value by comparing the two values when the transfer request is made; 상기 락 리퀘스트 패킷(Lock Request packet)을 수신한 IRM 노드가 현재 CAR의 값과 락 리퀘스트 패킷(Lock Request packet)의 data_value 필드값에 대해서 채널 할당 요구시에는 old_value와 data_value를 Exclusive_OR한 값을, 양도시에는 OR한 값을 저장하는 new_data 레지스터를 포함하여 구성된 것을 특징으로 하는 디지털 인터페이스의 버스 제어장치.When the IRM node that receives the lock request packet has a channel allocation request for the current CAR value and the data_value field value of the lock request packet, an Exclusive_OR value of old_value and data_value is shown in both cities. A bus controller of a digital interface, comprising a new_data register for storing an ORed value.
KR1019990035131A 1999-08-24 1999-08-24 apparatus and method for controlling bus in digital interface KR100628177B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990035131A KR100628177B1 (en) 1999-08-24 1999-08-24 apparatus and method for controlling bus in digital interface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990035131A KR100628177B1 (en) 1999-08-24 1999-08-24 apparatus and method for controlling bus in digital interface

Publications (2)

Publication Number Publication Date
KR20010018958A true KR20010018958A (en) 2001-03-15
KR100628177B1 KR100628177B1 (en) 2006-09-27

Family

ID=19608432

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990035131A KR100628177B1 (en) 1999-08-24 1999-08-24 apparatus and method for controlling bus in digital interface

Country Status (1)

Country Link
KR (1) KR100628177B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100617831B1 (en) * 2005-02-18 2006-08-28 삼성전자주식회사 Channel Selection Method for Receiving Stream in IEEE 1394 Network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100617831B1 (en) * 2005-02-18 2006-08-28 삼성전자주식회사 Channel Selection Method for Receiving Stream in IEEE 1394 Network

Also Published As

Publication number Publication date
KR100628177B1 (en) 2006-09-27

Similar Documents

Publication Publication Date Title
CA2152242C (en) Communication system and electronic apparatus
US7701855B2 (en) Communication device, communication system, communication method, communication program and recording medium storing the communication program
US20040246909A1 (en) Apparatus and method for transferring USB transaction over wireless personal area network
JP3194318B2 (en) Bus management method
KR920009449B1 (en) Common bus controller an its method
KR100662484B1 (en) method for controlling bus in digital interface
KR100746900B1 (en) Electronic equipment, and method for controlling state of physical layer circuit thereof
US6950408B1 (en) Speed converter for IEEE-1394 serial bus network
US7017180B1 (en) Logged-in device and log-in device
JP3091184B2 (en) Communication system and communication device
KR100628177B1 (en) apparatus and method for controlling bus in digital interface
KR20120054142A (en) Soc-based system network protocol for qos and improvement of transfer efficiency
US7227846B2 (en) Data transmission/ reception system, connection restoring method and information transmission/ reception apparatus
US8219726B2 (en) Method for data transfer between host and device
JP2002033739A (en) Communication control system and method
KR100617831B1 (en) Channel Selection Method for Receiving Stream in IEEE 1394 Network
JP3194381B2 (en) Bus management method
KR100294671B1 (en) apparatus and method for management in serial bus
KR100677222B1 (en) Method for bidirectional asynchronous connection based on ieee 1394
JP3194380B2 (en) Electronics
JP3194382B2 (en) Bus management method
JP4129603B2 (en) Information processing apparatus and method, and providing medium
JP3221442B2 (en) Electronics
JP3219085B2 (en) Bus management method
JP3356129B2 (en) Communication equipment

Legal Events

Date Code Title Description
N231 Notification of change of applicant
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: 20090619

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee