KR100397404B1 - 데이터 전송 제어 장치 및 전자기기 - Google Patents

데이터 전송 제어 장치 및 전자기기 Download PDF

Info

Publication number
KR100397404B1
KR100397404B1 KR10-2001-7003275A KR20017003275A KR100397404B1 KR 100397404 B1 KR100397404 B1 KR 100397404B1 KR 20017003275 A KR20017003275 A KR 20017003275A KR 100397404 B1 KR100397404 B1 KR 100397404B1
Authority
KR
South Korea
Prior art keywords
packet
data
reset
bus
received
Prior art date
Application number
KR10-2001-7003275A
Other languages
English (en)
Other versions
KR20010075099A (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 세이코 엡슨 가부시키가이샤
Publication of KR20010075099A publication Critical patent/KR20010075099A/ko
Application granted granted Critical
Publication of KR100397404B1 publication Critical patent/KR100397404B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • 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
    • 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/2801Broadband local area networks
    • 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
    • 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/407Bus networks with decentralised control

Abstract

버스 리셋 발생 시의 펌웨어의 처리 부담을 경감할 수 있는 데이터 전송 제어 장치 및 이것이 사용되는 전자기기를 제공하는 것이 목적이다. IEEE 1394 규격의 데이터 전송 제어 장치에 있어서, 수신 패킷과 다음 수신 패킷이 다른 버스 리셋 간격으로 수신한 패킷인 경우에 토글하는 비트(BT)를 생성하여, 이 BT를 RAM에 기억되는 각 패킷의 각 헤더에 포함시킨다. RAM 상에서의 버스 리셋의 경계를 가리키는 버스 리셋 포인터(버스 리셋 헤더 포인터, 버스 리셋 ORB 포인터)를 준비하여, 버스 리셋 발생 전의 수신 패킷과 발생 후의 수신 패킷을 용이하게 구별할 수 있게 한다. 버스 리셋 발생에 의해 송신이 중지된 경우에, 버스 리셋 송신 중지 상태를 레지스터를 통해 펌웨어에 전달한다.

Description

데이터 전송 제어 장치 및 전자기기{Data transfer control device and electronic apparatus}
최근, IEEE 1394라 불리는 인터페이스 규격이 각광을 받고 있다. 이 IEEE 1394는 차세대의 멀티미디어에도 대응 가능한 고속 시리얼 버스 인터페이스를 규격화한 것이다. 이 IEEE 1394에 의하면, 동화상 등의 실시간이 요구되는 데이터도 취급할 수 있다. 또한, IEEE 1394의 버스에는 프린터, 스캐너, CD-RW 드라이브, 하드 디스크 드라이브 등의 컴퓨터 주변 기기뿐만 아니라, 비디오 카메라, VTR, TV 등의 가정용 전화 제품도 접속할 수 있다. 이 때문에, 전자기기의 디지털화를 비약적으로 촉진할 수 있는 것으로서 기대받고 있다.
그런데, 이 IEEE 1394에서는 버스에 전자기기가 새롭게 접속되거나 버스로부터 전자기기가 분리되어 버스에 접속되는 노드가 증감하면, 이른바 버스 리셋이 발생한다. 그리고, 버스 리셋이 발생하면 노드의 토폴로지 정보가 클리어되며, 그 후, 토폴로지 정보가 자동적으로 재설정된다. 즉, 버스 리셋 발생 후, 트리 식별(루트 노드 결정), 자기 식별이 행해지며, 그 후, 아이소크로너스 리소스 매니저 등의 관리 노드가 결정된다. 그리고 통상의 패킷 전송이 개시된다.
이와 같이, IEEE 1394에서는 버스 리셋 후에 토폴로지 정보가 자동적으로 재설정되기 때문에, 이른바 핫 상태에서의 케이블을 꽂고 빼는 것(핫 플러그)이 가능해진다. 이 때문에, 일반 사용자는 VTR 등의 통상의 가정용 전화 제품과 마찬가지로, 전자기기로의 케이블을 자유롭게 꽂고 뺄 수 있게 되어, 이른바 홈 네트워크 시스템 보급에 도움이 될 수 있다.
하지만, 이러한 버스 리셋에는 이하와 같은 문제가 있는 것으로 판명되었다.
(1) 버스 리셋 발생에 의해 노드 ID 등의 토폴로지 정보가 클리어되기 때문에, 트랜잭션 도중에서 버스 리셋이 발생한 경우에는 트랜잭션을 다시 고칠 필요가 있다. 따라서, 각 노드는 버스 리셋 발생 시에 어느 트랜잭션이 미완료였는지를 판단할 필요가 있다.
하지만, 패킷을 처리하는 펌웨어(CPU)의 처리 능력은 일반적으로 낮고, 수신 패킷에 대한 처리는 그 패킷 수신 후, 소정의 시간이 경과하고나서 행해진다. 이 때문에, 많은 미처리 패킷이 항상 존재하고 있으며, 이들 많은 미처리 패킷이 버스 리셋 전후 중 어느 하나에 수신한 패킷인지를 구별하는 처리가 필요해진다. 그런데, 이러한 처리는 펌 웨어에서 큰 부담이 된다. 특히, 버스 리셋 후에는 노드 사이에서 매우 많은 패킷이 송수신되기 때문에, 버스 리셋 후에 수신하는 패킷 수가 매우 많아 펌웨어의 처리 부담 증가 문제는 더욱 심각해진다.
(2) 펌웨어가 패킷의 송신 개시 커맨드를 발행한 후에 버스 리셋이 발생한 경우, 그 송신은 중지된다. 그런데, 예컨대 송신 개시 커맨드 발행과 버스 리셋이 거의 동시에 일어난 경우에는 버스 리셋 발생에 의해 송신이 중지했는지의 여부를 펌웨어는 알 수 없다. 이 때문에, 펌웨어는 송신 완료의 상태가 보내져 올 때까지 대기하게 되어, 펌웨어 처리가 스톨될 우려가 있다.
본 발명은 데이터 전송 제어 장치 및 이를 포함하는 전자기기에 관한 것으로, 특히, 버스에 접속되는 복수의 노드 사이에서 IEEE 1394 등의 규격에 준한 데이터 전송을 행하는 데이터 전송 제어 장치 및 이를 포함하는 전자기기에 관한 것이다.
도 1은 IEEE 1394의 층 구조에 대해 도시한 도면.
도 2a, 도 2b는 트랜잭션층이나 링크층이 제공하는 각종 서비스에 대해 설명하기 위한 도면.
도 3은 SBP-2에 대해 설명하기 위한 도면.
도 4는 본 실시예의 데이터 전송 제어 장치의 구성예를 도시한 도면.
도 5는 RAM(패킷 기억 수단)의 분리(분할) 수법에 대해 설명하기 위한 도면.
도 6은 비교예의 구성에 대해 도시한 도면.
도 7은 도 6의 구성에 의한 데이터 전송 수법에 대해 설명하기 위한 도면.
도 8은 본 실시예의 데이터 전송 수법에 대해 설명하기 위한 도면.
도 9a,b는 버스 리셋 발생에 의한 트랜잭션 중지에 대해 설명하기 위한 도면.
도 10은 토글 비트(BT)에 대해 설명하기 위한 도면.
도 11은 토글 비트(BT)를 헤더에 포함시키는 수법에 대해 설명하기 위한 도면.
도 12는 버스 리셋 포인터에 대해 설명하기 위한 도면.
도 13a,b,c는 버스 리셋 패킷을 사용할 경우와 버스 리셋 포인터를 사용할 경우의 펌웨어 처리에 대해 설명하기 위한 도면.
도 14는 버스 리셋 ORB 포인터에 대해 설명하기 위한 도면.
도 15a,b는 버스 리셋 헤더 포인터만을 사용할 경우와 버스 리셋 ORB 포인터를 사용할 경우의 펌웨어 처리에 대해 설명하기 위한 플로우챠트.
도 16은 버스 리셋 후의 수신 패킷을 우선적으로 처리하는 수법에 대해 설명하기 위한 플로우챠트.
도 17a,b,c,d는 버스 리셋 송신 중지 상태에 대해 설명하기 위한 도면.
도 18a,b는 버스 리셋 송신 중지 상태를 사용할 경우와 사용하지 않을 경우의 펌웨어 처리에 대해 설명하기 위한 플로우챠트.
도 19는 수신 측의 상세한 구성에 대해 도시한 도면.
도 20a는 IEEE 1394 규격의 비동기로 블록 데이터를 가진 패킷의 포맷.
도 20b는 RAM에 격납되는 비동기 수신으로 블록 데이터를 가진 패킷의 헤더 부분의 포맷.
도 21은 TAG에 대해 설명하기 위한 도면.
도 22a,b는 BT 생성 회로의 상태 천이도.
도 23은 BT 생성 회로의 동작에 대해 설명하기 위한 타이밍 파형도.
도 24는 각종 포인터 레지스터의 상세함에 대해 설명하기 위한 도면.
도 25는 버스 리셋 송신 중지 상태의 상세함에 대해 설명하기 위한 도면.
도 26은 버스 리셋 송신 중지 상태의 상세함에 대해 설명하기 위한 타이밍 파형도.
도 27a,b,c는 각종 전자기기의 내부 블록도의 예.
도 28a,b,c는 각종 전자기기의 외관도의 예.
본 발명은 이상과 같은 기술적 과제를 감안하여 이루어진 것으로, 그 목적은 노드의 토폴로지 정보를 클리어하는 리셋 발생 시의 펌웨어의 처리 부담을 경감할 수 있고, 리셋 발생에 의한 펌웨어 처리의 스톨 등을 방지할 수 있는 데이터 전송 제어 장치 및 이것이 사용되는 전자기기를 제공함에 있다.
상기 과제를 해결하기 위해, 본 발명은 버스에 접속되는 복수의 노드 사이에서의 데이터 전송을 위한 데이터 전송 제어 장치로서, 노드의 토폴로지 정보를 클리어하는 리셋에서부터 다음 리셋까지의 사이를 리셋 간격이라고 정의한 경우에, 수신한 패킷과 다음에 수신한 패킷이 다른 리셋 간격으로 수신한 패킷인지의 여부를 구별하기 위한 구별 정보를 생성하는 수단과, 수신한 각 패킷과 생성된 각 구별 정보를 각 패킷에 각 구별 정보를 관련지어, 패킷 기억 수단에 기록하는 기록 수단을 포함하는 것을 특징으로 한다.
본 발명에 의하면, 예컨대, 수신한 제 N 패킷에 관련된 제 N 구별 정보와, 다음에 수신한 제 N+1 패킷에 관련된 제 N+1 구별 정보에 의해 제 N, N+1 패킷이 다른 리셋 간격으로 수신되었는지의 여부를 구별할 수 있게 된다. 즉, 제 N, N+1 패킷이 동일한 제 M 리셋 간격으로 수신된 경우에는 제 N, 제 N+1 구별 정보는 예컨대 동일한 값이 되며, 제 N, N+1 패킷이 다른 제 M, 제 L 리셋 간격으로 수신된 경우에는 제 N, 제 N+1 구별 정보는 예컨대 다른 값이 된다. 따라서, 제 N, 제 N+1 구별 정보의 변화를 조사함으로써, 제 N, 제 N+1 패킷이 다른 리셋 간격으로 수신되었는지의 여부, 즉 제 N, 제 N+1 패킷의 수신 사이에 리셋이 발생했는지의 여부를 판별할 수 있게 된다. 따라서, 펌웨어 등은 리셋 발생 장소를 용이하게 알 수 있게 되어, 리셋 발생 시의 처리 부담을 경감할 수 있게 된다.
또한, 본 발명은 상기 구별 정보가 수신한 패킷과 다음에 수신한 패킷이 다른 리셋 간격으로 수신한 패킷일 경우에, 0에서 1로 또는 1에서 0으로 토글하는 토글 비트인 것을 특징으로 한다. 이와 같이 하면, 토글 비트의 변화를 조사하는 것 만으로, 리셋의 발생 장소를 용이하게 알 수 있게 되어, 리셋 발생 시의 펌웨어 등의 처리 부담을 더욱 경감할 수 있게 된다.
또한, 본 발명은 상기 패킷 기억 수단이 랜덤 액세스 가능한 기억 수단으로, 상기 패킷 기억 수단이 패킷의 제어 정보가 격납되는 제어 정보 영역과 패킷의 데이터가 격납되는 데이터 영역으로 분리되어 있을 경우에 있어서, 상기 구별 정보를 상기 제어 정보 영역에 기록되는 상기 제어 정보 속에 포함시키는 것을 특징으로 한다. 이와 같이, 패킷 기억 수단을 제어 정보 영역과 데이터 영역으로 분리함으로써, 펌웨어 등의 처리 부담을 경감할 수 있어, 시스템 전체의 실전송 속도를 향상할 수 있다. 그리고, 구별 정보를 제어 정보 영역에 기록되는 제어 정보 속에 포함시킴으로써, 펌웨어 등은 적은 처리 부담으로 구별 정보를 용이하게 판독할 수 있게 된다.
또한, 본 발명은 버스에 접속되는 복수의 노드 사이에서의 데이터 전송을 위한 데이터 전송 제어 장치로서, 각 노드로부터 수신한 패킷을 패킷 기억 수단에 기록하는 기록 수단과, 노드의 토폴로지 정보를 클리어하는 리셋 발생 전의 수신 패킷 영역과 리셋 발생 후의 수신 패킷 영역과의 상기 패킷 기억 수단에서의 경계를 특정하는 제 1 포인터 정보를 기억하는 제 1 포인터 기억 수단을 포함하는 것을 특징으로 한다.
본 발명에 의하면, 펌웨어 등은 제 1 포인터 기억 수단으로부터 제 1 포인터 정보를 판독하는 것 만으로, 리셋 발생 전에 수신한 패킷과 리셋 발생 후에 수신한 패킷을 용이하게 구별할 수 있게 된다. 그리고, 리셋 발생 전에 수신한 패킷에 대해서는 파기하는 등의 처리를 행하며, 리셋 발생 후에 수신한 패킷에 대해서는 통상의 처리를 행하는 것 등이 가능해진다.
또한, 본 발명은 리셋 발생 직전에 수신한 패킷의 다음 패킷의 선두 어드레스가 상기 제 1 포인터 정보로서 상기 제 1 포인터 기억 수단에 기억되는 것을 특징으로 한다. 이와 같이 하면, 제 1 포인터 기억 수단으로부터 제 1 포인터 정보를 판독하는 것 만으로, 리셋 발생 직전에 수신한 패킷의 다음 패킷에 대한 처리를 개시할 수 있게 되어, 펌웨어 등의 처리 부담을 경감할 수 있다.
또한, 본 발명은 처리 완료 패킷 영역과 미처리 패킷 영역과의 상기 패킷 기억 수단에서의 경계를 특정하는 제 2 포인터 정보를 기억하는 제 2 포인터 기억 수단과, 수신 완료 패킷 영역과 패킷을 미수신 영역과의 상기 패킷 기억 수단에서의 경계를 특정하는 제 3 포인터 정보를 기억하는 제 3 포인터 기억 수단을 포함하는 것을 특징으로 한다. 이와 같이 하면, 제 2, 제 3 포인터 기억 수단으로부터 제 2, 제 3 포인터 정보를 판독하는 것 만으로, 미처리 패킷이나 최신에 수신한 패킷 등을 용이하게 판별할 수 있게 된다.
또한, 본 발명은 상기 제 1 포인터 기억 수단에 기억되는 상기 제 1 포인터 정보에 기초하여 리셋 발생 후의 수신 패킷을 특정하여, 해당 패킷을 우선적으로 처리하는 처리 수단을 포함하는 것을 특징으로 한다. 이와 같이 하면, 리셋 발생 후의 수신 패킷이 우선적으로 처리되게 되어, 펌웨어 처리가 스톨하는 등의 사태가 생기는 것을 방지할 수 있게 된다
또한, 본 발명은 상기 패킷 기억 수단이 랜덤 액세스 가능한 기억 수단으로, 상기 패킷 기억 수단이 패킷의 제어 정보가 격납되는 제어 정보 영역과 패킷의 데이터가 격납되는 데이터 영역으로 분리되어 있을 경우에 있어서, 상기 제 1 포인터 기억 수단이 노드의 토폴로지 정보를 클리어하는 리셋 발생 전의 수신 패킷의 제어 정보와 리셋 발생 후의 수신 패킷의 제어 정보와의 상기 제어 정보 영역에서의 경계를 특정하는 제 4 포인터 정보를 기억하는 제 4 포인터 기억 수단과, 노드의 토폴로지 정보를 클리어하는 리셋 발생 전의 수신 패킷의 데이터와 리셋 발생 후의 수신 패킷의 데이터와의 상기 데이터 영역에서의 경계를 특정하는 제 5 포인터 정보를 기억하는 제 5 포인터 기억 수단을 포함하는 것을 특징으로 한다. 이와 같이 하면, 제 5 포인터 기억 수단으로부터 제 5 포인터 정보를 판독하는 것 만으로, 리셋 발생 전후 수신 패킷의 데이터 영역에서의 경계를 알 수 있게 되어, 펌웨어 등의 처리 부담을 더욱 경감할 수 있다.
또한, 본 발명은 상기 데이터 영역이 제 1 층용 제 1 데이터가 격납되는 제 1 데이터 영역과, 제 2 층용 제 2 데이터가 격납되는 제 2 데이터 영역으로 분리되어 있을 경우에 있어서, 상기 제 5 포인터 정보가 노드의 토폴로지 정보를 클리어하는 리셋 발생 전 수신 패킷의 제 1 데이터와 리셋 발생 후 수신 패킷의 제 1 데이터와의 상기 제 1 데이터 영역에서의 경계를 특정하는 포인터 정보인 것을 특징으로 한다. 이와 같이 하면, 제 1 층(예컨대 펌웨어)은 제 1 데이터 영역에 격납되는 제 1 데이터(예컨대 ORB)를 리셋 발생 전후를 구별하여 판독할 수 있게 되어, 제 1 층의 처리 부담을 경감할 수 있다. 또한, 제 2 층(예컨대 어플리케이션)은 제 2 데이터 영역에 격납되는 제 2 데이터(예컨대 스트림)를 연속하여 판독할 수 있게 되어, 데이터 전송 제어 장치의 실전송 속도를 향상할 수 있게 된다.
또한, 본 발명은 버스에 접속되는 복수의 노드 사이에서의 데이터 전송을 위한 데이터 전송 제어 장치로서, 송신 개시 커맨드가 발행된 경우에, 패킷 기억 수단으로부터 패킷을 판독하는 판독 수단과, 판독된 패킷을 각 노드에 송신하기 위한 서비스를 제공하는 링크 수단과, 노드의 토폴로지 정보를 클리어하는 리셋 발생에 의해 패킷 송신이 중지된 경우에, 리셋 발생에 의해 패킷 송신이 중지된 것을 알리는 상태 정보를 기억하는 상태 기억 수단을 포함하는 것을 특징으로 한다.
본 발명에 의하면, 펌웨어 등은 상태 기억 수단으로부터 상태 정보를 판독함으로써, 리셋 발생에 의해 패킷 송신이 중지된 것을 알 수 있게 된다. 이 결과, 예컨대, 송신 개시 커맨드 발행 조금 전에 리셋이 발생한 경우 등에 있어서도, 펌웨어 등의 처리가 스톨해버리는 사태를 방지할 수 있게 된다.
또한, 본 발명은 상기 송신 개시 커맨드를 발행하는 처리 수단을 포함하며, 상기 처리 수단이 리셋 발생에 의해 패킷 송신이 중지된 것으로 상기 상태 정보에 기초하여 판단한 경우에는, 송신이 완료했는지의 여부를 판단하지 않고, 개시한 송신 처리를 취소하는 것을 특징으로 한다. 이와 같이 하면, 펌웨어 등은 송신 완료 상태가 전송되는 것을 기다릴 필요가 없어져, 펌웨어 등의 처리가 스톨하는 사태를 방지할 수 있다.
또한, 본 발명에서는 상기 리셋이 IEEE 1394 규격에서 정의된 버스 리셋인 것이 바람직하다.
또한, 본 발명에서는 IEEE 1394 규격에 준거한 데이터 전송을 행하는 것이 바람직하다.
또한, 본 발명에 따른 전자기기는 상기 어느 한 데이터 전송 제어 장치와, 상기 데이터 전송 제어 장치 및 버스를 통해 다른 노드로부터 수신한 데이터에 소정의 처리를 실시하는 장치와, 처리가 실시된 데이터를 출력 또는 기억하기 위한 장치를 포함하는 것을 특징으로 한다. 또한, 본 발명에 관련되는 전자기기는 상기 어느 하나의 데이터 전송 제어 장치와, 상기 데이터 전송 제어 장치 및 버스를 통해 다른 노드에 송신하는 데이터에 소정의 처리를 실시하는 장치와, 처리가 실시되는 데이터를 입력하기 위한 장치를 포함하는 것을 특징으로 한다.
본 발명에 의하면, 데이터 전송을 제어하는 펌웨어 등의 처리 부담을 경감할 수 있기 때문에, 전자기기의 저코스트화, 처리의 고속화 등을 도모할 수 있다. 또한, 토폴로지 정보를 클리어하는 리셋의 발생에 의해 시스템이 스톨해버리는 등의 사태를 방지할 수 있기 때문에, 전자기기의 신뢰성을 높일 수 있다.
이하, 본 발명의 적합한 실시예에 대해 도면을 사용하여 상세하게 설명한다.
1. IEEE 1394
먼저, IEEE 1394에 대해 간단하게 설명한다.
1.1 개요
IEEE 1394(IEEE 1394-1995, P1394.a)에서는 100 내지 400Mbps의 고속 데이터 전송이 가능하게 되어 있다(P1394.b에서는 800 내지 3200Mbps). 또한, 전송 속도가 다른 노드를 버스에 접속하는 것도 허락된다.
각 노드는 트리 형상으로 접속되어 있으며, 1개의 버스에 최대 63개의 노드가 접속 가능하게 되어 있다. 또한, 버스 브리지를 이용하면 약 64000개의 노드를 접속하는 것도 가능하다.
IEEE 1394에서는 패킷 전송 방식으로서 비동기 전송과 아이소크로너스 전송이 준비되어 있다. 여기서, 비동기 전송은 신뢰성이 요구되는 데이터 전송에 적합한 전송 방식이며, 아이소크로너스 전송은 실시간이 요구되는 동화상이나 음성 등의 데이터 전송에 적합한 전송 방식이다.
1.2 층 구조
IEEE 1394의 층 구조(프로토콜 구성)을 도 1에 도시한다.
IEEE 1394의 프로토콜은 트랜잭션층, 링크층, 물리층에 의해 구성된다. 또한, 시리얼 버스 매니지먼트는 트랜잭션층, 링크층, 물리층을 모니터하거나 제어하거나 하는 것으로, 노드 제어나 버스의 리소스 관리를 위한 각종 기능을 제공한다.
트랜잭션층은 상위층에 트랜잭션 단위의 인터페이스(서비스)를 제공하며, 하층의 링크층이 제공하는 인터페이스를 통해, 판독 트랜잭션, 기록 트랜잭션, 록 트랜잭션 등의 트랜잭션을 실시한다.
여기서, 판독 트랜잭션에서는 응답 노드로부터 요구 노드에 데이터가 전송된다. 한편, 기록 트랜잭션에서는 요구 노드로부터 응답 노드에 데이터가 전송된다. 또한, 록 트랜잭션에서는 요구 노드로부터 응답 노드에 데이터가 전송되어, 응답 노드가 그 데이터에 처리를 실시하여고 요구 노드에 회신한다.
트랜잭션층의 서비스는 도 2a에 도시한 바와 같이 요구, 표시, 응답, 확인이라는 4개의 서비스에 의해 구성된다.
여기서, 트랜잭션 요구는 요구 측이 트랜잭션을 개시시키는 서비스이며, 트랜잭션 표시는 요구가 도착한 것을 응답 측에 통지하는 서비스이다. 또한, 트랜잭션 응답은 응답 측 상태나 데이터를 요구 측에 돌려주는 서비스이며, 트랜잭션 확인은 응답 측으로부터의 응답이 온 것을 요구 측에 통지하는 서비스이다.
링크층은 어드레싱, 데이터 체크, 패킷 송수신을 위한 데이터 플레이밍, 아이소크로너스 전송을 위한 사이클 제어 등을 제공한다.
링크층 서비스는 트랜잭션층과 마찬가지로 도 2b에 도시한 바와 같이 요구, 표시, 응답, 확인이라는 4개 서비스에 의해 구성된다.
여기서, 링크 요구는 패킷을 응답 측에 전송하는 서비스이며, 링크 표시는 응답 측에 의한 패킷의 수신 서비스이다. 또한, 링크 응답은 응답 측에 의한 확인의 전송 서비스이며, 링크 확인은 요구 측에 의한 확인의 수신 서비스이다.
물리층은 링크층에 의해 사용되는 로지컬 심볼의 전기 신호로의 변환이나 버스 조정이나 버스의 물리적 인터페이스를 제공한다.
물리층 및 링크층은 통상, 데이터 전송 제어 장치(인터페이스 칩) 등의 하드웨어에 의해 실현된다. 또한, 트랜잭션층은 CPU 상에서 동작하는 펌웨어(처리 수단)나 하드웨어에 의해 실현된다.
또한, 도 3에 도시한 바와 같이, IEEE 1394의 트랜잭션층의 일부 기능을 포함하는 상위의 프로토콜로서, SBP-2(Serial Bus Protocol-2)로 불리는 프로토콜이 제안되고 있다.
여기서, SBP-2는 SCSI의 커맨드 셋을 IEEE 1394의 프로토콜 상에서 이용 가능하게 하기 위해 제안된 것이다. 이 SBP-2를 사용하면, 기존의 SCSI 규격의 전자기기로 사용되었던 SCSI의 커맨드 셋에 최소한의 변경을 가하여, IEEE 1394 규격의 전자기기에 사용할 수 있게 된다. 따라서, 전자기기 설계나 개발을 용이화할 수 있다. 또한, SCSI의 커맨드뿐 아니라, 디바이스 고유의 커맨드도 캡슐화하여 이용할 수 있기 때문에, 매우 범용성이 높다.
이 SBP-2에서는 먼저, 초기화기(퍼스널 컴퓨터 등)가 로그 인이나 패치·에이전트의 초기화를 위한 ORB(0peration Request Block)를 작성하여, 타겟(프린터, CD-RW 드라이브 등)에 보낸다. 다음에, 초기화기는 커맨드(판독 커맨드, 기록 커맨드)를 포함하는 ORB(커맨드 블록 ORB)를 작성하여, 그 작성한 ORB의 어드레스를 타겟에 알린다. 그리고, 타겟은 그 어드레스를 패치함으로써, 초기화기가 작성한 ORB를 취득한다. ORB에 포함되는 커맨드가 판독 커맨드인 경우에는 타겟은 블록 기록 트랜잭션을 발행하여, 초기화기의 데이터 버퍼(메모리)에 타겟 데이터를 송신한다. 한편, ORB에 포함되는 커맨드가 기록 커맨드인 경우에는 타겟은 블록 판독 트랜잭션을 발행하여, 초기화기의 데이터 버퍼로부터 데이터를 수신한다.
이 SBP-2에 의하면, 타겟은 자신이 형편이 좋을 때 트랜잭션을 발행하여, 데이터를 송수신할 수 있다. 따라서, 초기화기와 타겟이 동기하여 움직일 필요가 없어지기 때문에, 데이터 전송 효율을 높일 수 있다.
또한, IEEE 1394의 상위 프로토콜로서는 SBP-2 이외에도, FCP(Function Control Protocol)라 불리는 프로토콜 등도 제안되고 있다.
1.3 버스 리셋
IEEE 1394에서는 전원이 투입되거나, 도중에서 디바이스를 꽂고 빼는 일이 발생하면, 버스 리셋이 발생한다. 즉, 각 노드는 포트의 전압 변화를 감시하고 있다. 그리고, 버스에 새로운 노드가 접속되어 포트의 전압에 변화가 생기면, 이 변화를 검지한 노드는 버스 상의 다른 노드에 대해, 버스 리셋이 발생한 것을 알린다. 또한, 각 노드의 물리층은 버스 리셋이 발생한 것을 링크층에 전달한다.
그리고, 이와 같이 버스 리셋이 발생하면, 노드 ID 등의 토폴로지 정보가 클리어된다. 그리고, 그 후, 토폴로지 정보가 자동적으로 재설정된다. 즉, 버스 리셋 후, 트리 식별, 자기 식별이 행해진다. 그 후, 아이소크로너스 리소스 매니저, 사이클 마스터, 버스 매니저 등의 관리 노드가 결정된다. 그리고, 통상의 패킷 전송이 개시된다.
이와 같이 IEEE 1394에서는 버스 리셋 후에 토폴로지 정보가 자동적으로 재설정되기 때문에, 전자기기의 케이블을 자유롭게 꽂고 뺄 수 있게 되어, 이른바 핫 플러그를 실현할 수 있다.
또한, 트랜잭션 도중에서 버스 리셋이 발생한 경우에는 그 트랜잭션은 중지된다. 그리고, 중지된 트랜잭션을 발행한 요구 노드는 토폴로지 정보를 재설정된 후에, 요구 패킷을 다시 전송한다. 또한, 응답 노드는 버스 리셋에 의해 중지된 트랜잭션의 응답 패킷을 요구 노드에 반송해서는 안된다.
2. 전체 구성
다음에, 본 실시예의 데이터 전송 제어 장치 전체 구성의 예에 대해 도 4를 사용하여 설명한다.
도 4에 있어서, PHY 인터페이스(10)는 PHY 디바이스(물리층의 디바이스)와의 인터페이스를 행하는 회로이다.
링크 코어(20)(링크 수단)는 링크층의 프로토콜이나 트랜잭션층의 프로토콜 일부를 하드웨어에 의해 실현하는 회로이며, 노드 사이에서의 패킷 전송을 위한 각종 서비스를 제공한다. 레지스터(22)는 이들 프로토콜을 실현한 링크 코어(20)를제어하기 위한 레지스터이다.
FIFO(ATF)(30), FIFO(ITF)(32), FIFO(RF)(34)는 각각 비동기 송신용, 아이소크로너스 송신용, 수신용 FIFO로서, 예컨대 레지스터나 반도체 메모리 등의 하드웨어에 의해 구성된다. 본 실시예에서는 이들 FIFO(30, 32, 34)의 단수는 매우 적다. 예컨대 1개의 FIFO 단수는 바람직하게는 3단 이하이며, 더욱 바람직하게는 2단 이하가 된다.
DMAC(40)(판독 수단), DMAC(42)(판독 수단), DMAC(44)(기록 수단)는 각각 ATF용, ITF용, RF용 DMA 제어기이다. 이들 DMAC(40, 42, 44)를 사용함으로써, CPU(66)에 개입되지 않고 RAM(80)과 링크 코어(20) 사이에서의 데이터 전송이 가능해진다. 또한, 레지스터(46)는 DMAC(40, 42, 44) 등을 제어하는 레지스터이다.
포트 인터페이스(50)는 어플리케이션층의 디바이스(예컨대 프린터의 인자 처리를 행하는 디바이스)와의 인터페이스를 행하는 회로이다. 본 실시예에서는 이 포트 인터페이스(50)를 사용하여, 예컨대 8비트의 데이터 전송이 가능하게 되어 있다.
FIFO(PF)(52)는 어플리케이션층의 디바이스와의 사이에서의 데이터 전송을 위한 FIFO이며, DMAC(54)는 PF용 DMA 제어기이다. 레지스터(56)는 포트 인터페이스(50)나 DMAC(54)를 제어하는 레지스터이다.
SBP-2 코어(84)는 SBP-2의 프로토콜 일부를 하드웨어에 의해 실현하는 회로이다. 레지스터(88)는 SBP-2 코어(84)를 제어하기 위한 레지스터이다. DMAC(SBP-2용)(86)는 SBP-2 코어(84)용 DMA 제어기이다.
RAM 영역 관리 회로(300)는 RAM(80)의 각 영역을 관리하기 위한 회로이다. RAM 영역 관리 회로(300)는 RAM(80)의 각 영역이 풀이 되거나, 엠티가 된 경우에, 각종 풀 신호, 엠티 신호를 사용하여 DMAC(40, 42, 44, 54, 86)를 제어한다.
CPU 인터페이스(60)는 데이터 전송 제어 장치를 컨트롤하는 CPU(66)와의 인터페이스를 행하는 회로이다. CPU 인터페이스(60)는 어드레스 디코더(62), 데이터 동기화 회로(63), 인터럽트 제어기(64)를 포함한다. 클록 제어 회로(68)는 본 실시예에서 사용되는 클록을 제어하는 것으로, PHY 디바이스(PHY 칩)로부터 전송되는 SCLK나 마스터 클록인 HCLK가 입력된다.
버퍼 매니저(70)는 RAM(80)과의 인터페이스를 관리하는 회로이다. 버퍼 매니저(70)는 버퍼 매니저 제어를 위한 레지스터(72), RAM(80)으로의 버스 접속을 조정하는 조정 회로(74), 각종 제어 신호를 생성하는 시퀀서(76)를 포함한다.
RAM(80)은 랜덤 액세스 가능한 패킷 기억 수단으로서 기능하는 것으로, 그 기능은 예컨대 SRAM, SDRAM, DRAM 등에 의해 실현된다.
또한, RAM(80)은 본 실시예의 데이터 전송 제어 장치에 내장시키는 것이 특히 바람직하지만, 그 일부 또는 전부를 외부 부착으로 하는 것도 가능하다.
도 5에, RAM(80)의 메모리 맵 일예를 도시한다. 도 5에 도시한 바와 같이 본 실시예에서는 RAM(80)이 헤더 영역(AR2, AR3, AR4, AR6)과 데이터 영역(AR5, AR7, AR8, AR9)으로 분리되어 있다. 그리고, 패킷 헤더(광의로는 제어 정보)는 헤더 영역에 격납되며, 패킷의 데이터(ORB, 스트림)는 데이터 영역에 격납된다.
또한, 본 실시예에서는 도 5에 도시한 바와 같이, RAM(80)의 데이터영역(AR5, AR7, AR8, AR9)이 ORB 영역(AR5, AR7)과 스트림 영역(AR8, AR9)으로 분리되어 있다.
더욱이, 본 실시예에서는 RAM(80)이 수신 영역(AR2, AR4, AR5, AR9)과 송신 영역(AR3, AR6, AR7, AR8)으로 분리되어 있다.
또한, ORB(제 1 층용 제 1 데이터)는 상술한 바와 같이 SBP-2용 데이터(커맨드)이다. 한편, 스트림(제 1 층보다 상층인 제 2 층용 제 2 데이터)은 어플리케이션층용 데이터(프린터의 인자 데이터, CD-RW의 판독·기록 데이터, 스캐너에 의한 화상 데이터 등)이다.
또한, AR1, AR2, AR3에 나타낸 HW(하드웨어)용 페이지 테이블 영역, HW용 수신 헤더 영역, HW용 송신 헤더 영역은 도 4에 도시한 SBP-2 코어(84)(SBP-2를 하드웨어에 의해 실현하는 회로)가 페이지 테이블이나 수신 헤더나 송신 헤더를 기록하거나 판독하기 위한 영역이다.
또한, 도 5에 있어서 AR4, AR5, AR8, AR9에 나타낸 영역은 이른바 링 버퍼 구조로 되어 있다.
그런데, 도 4의 버스(90)(또는 버스(92, 94))는 어플리케이션에 접속되는 것이다(제 1 버스). 또한, 버스(95)(또는 버스(96))는 데이터 전송 제어 장치를 컨트롤하며, 또는 데이터를 판독·기록하기 위한 것으로, 데이터 전송 제어 장치를 컨트롤하는 디바이스(예컨대 CPU)에 전기적으로 접속된다(제 2 버스). 또한, 버스(100)(또는 버스(102, 104, 105, 106, 107, 108, 109))는 물리층의 디바이스(PHY 디바이스)에 전기적으로 접속된다(제 3 버스). 또한, 버스(110)는랜덤 액세스 가능한 기억 수단인 RAM(80)에 전기적으로 접속된다(제 4 버스). 또한, 버스(99)는 SBP-2 코어(84)가 하드웨어에 의해 SBP-2를 실현하기 위한 헤더 정보나 페이지 테이블 정보를 판독·기록하기 위한 것이다(제 5 버스).
버퍼 매니저(70)의 조정 회로(74)는 DMAC(40, 42, 44), CPU 인터페이스(60), DMAC(86, 54)로부터의 버스 액세스 요구 조정을 행한다. 그리고, 이 조정 결과에 기초하여, 각각 버스(105, 107, 109, 96, 99, 94) 중 어느 하나와, RAM(80)의 버스(110) 사이에 데이터 경로가 확립된다(제 1, 제 2, 제 3, 제 5 버스 중 어느 하나와 제 4 버스 사이에 데이터 경로가 확립된다).
본 실시예의 하나의 특징은 랜덤 액세스가 가능하며 패킷을 격납하는 RAM(80)을 설치함과 함께 서로 분리되는 버스(90, 95, 99, 10O)와, 이들 버스를 RAM(80)의 버스(110)에 접속하기 위한 조정 회로(74)를 설치한 점에 있다.
예컨대, 도 6에 본 실시예와 구성이 다른 데이터 전송 제어 장치 예를 도시한다. 이 데이터 전송 제어 장치에서는 링크 코어(902)는 PHY 인터페이스(900), 버스(922)를 통해 PHY 디바이스와 접속된다. 또한, 링크 코어(902)는 FIFO(904, 906, 908), CPU 인터페이스(910), 버스(920)를 통해 CPU(912)에 접속된다. 그리고, CPU(912)는 버스(924)를 통해, CPU에 로컬 메모리인 RAM(914)에 접속된다.
도 6의 구성의 데이터 전송 제어 장치를 사용한 경우의 데이터 전송 수법에 대해 도 7을 사용하여 설명한다. PHY 디바이스(930)를 통해 다른 노드로부터 전송된 수신 패킷은 버스(922), 데이터 전송 제어 장치(932), 버스(920)를 통해 CPU(912)가 수신한다. 그리고, CPU(912)는 받아들인 수신 패킷을 버스(924)를 통해 RAM(914)에 일단 기록한다. 그리고, CPU(912)는 RAM(914)에 기록된 수신 패킷을 버스(924)를 통해 판독, 어플리케이션층을 사용할 수 있도록 가공하고, 버스(926)를 통해 어플리케이션층의 디바이스(934)에 전송한다.
한편, 어플리케이션층의 디바이스(934)로부터의 데이터를 전송할 경우에는 CPU(912)는 이 데이터를 RAM(914)에 기록한다. 그리고, RAM(914)의 데이터에 헤더를 부가함으로써 IEEE 1394에 준거한 패킷을 생성한다. 그리고 생성된 패킷은 데이터 전송 제어 장치(932), PHY 디바이스(930) 등을 통해 다른 노드에 송신된다.
하지만, 이러한 도 7의 데이터 전송 수법에 의하면, CPU(912)의 큰 처리 부담이 된다. 따라서, 노드 사이를 접속하는 시리얼 버스의 전송 속도가 고속으로 되어도, CPU(912) 처리의 오버 헤드 등에 기인하여, 시스템 전체의 실전송 속도는 낮아져, 결국, 고속 데이터 전송을 실현할 수 없다.
이에 대해, 본 실시예에서는 도 8에 도시한 바와 같이, 데이터 전송 제어 장치(120), 어플리케이션층의 디바이스(124) 사이의 버스(90)와, CPU 버스(96)와, 데이터 전송 제어 장치(120), RAM(80) 사이의 버스(110)가 서로 분리되어 있다. 따라서, CPU 버스(96)를 데이터 전송 제어만에 사용할 수 있게 된다. 또한, 버스(90)를 점유하여, 데이터 전송 제어 장치(120), 어플리케이션층의 디바이스(124) 사이에서 데이터 전송을 행할 수 있게 된다. 예컨대, 데이터 전송 제어 장치(120)가 설치되는 전자기기가 프린터인 경우에는 버스(90)를 점유하여 인자 데이터를 전송할 수 있게 된다. 이 결과, CPU(66)의 처리 부담을 경감할 수 있어, 시스템 전체의 실전송 속도를 높일 수 있다. 또한, CPU(66)로서 염가인 것을채용할 수 있음과 함께 CPU 버스(96)로서 고속 버스를 사용할 필요성이 없어진다. 이 때문에, 전자기기의 저코스트화, 소규모화를 도모할 수 있게 된다.
3. 본 실시예의 특징
3.1 버스 리셋에 의해 토글하는 비트
도 9a에 도시한 바와 같이, IEEE 1394의 트랜잭션은 요구 노드가 응답 노드에 요구 패킷을 송신하여, 응답 노드로부터의 응답 패킷을 요구 노드가 수신함으로써 완료한다. 그리고, 이러한 트랜잭션 완료 후에 버스 리셋이 발생해도 문제는 없다.
한편, 트랜잭션 도중에서 버스 리셋이 발생하면, 도 9b의 C1에 나타낸 바와 같이 트랜잭션은 중지된다. 그리고, 이 경우에 응답 노드는 중지된 트랜잭션에 대한 응답 패킷을 요구 노드에 대해 반송해서는 안된다. 또한, 트랜잭션을 완료시키기 위해서는 요구 노드는 C2에 나타낸 바와 같이 요구 패킷을 응답 노드에 다시 송신할 필요가 있다.
하지만, 프린터나 CD-RW 등의 주변 기기에 본 실시예의 데이터 전송 제어 장치를 설치한 경우, 제품 코스트 제약으로부터 도 4의 CPU(66)로서는 염가이고 처리 능력이 낮은 CPU가 사용되는 것이 일반적이다. 따라서, CPU(66) 상에서 동작하는 펌웨어의 처리 능력도 낮다. 이 때문에, 패킷을 수신해도 수신한 패킷을 바로는 처리할 수 없으며, 많은 미처리 수신 패킷이 RAM(80)에 존재하게 된다. 따라서, 버스 리셋이 발생한 경우에는 이들 미처리 패킷이 버스 리셋 전후 중 어느 하나에 수신한 패킷인 것인지를 구별하는 처리가 필요해진다. 즉, 버스 리셋 발생 장소를검출하는 처리가 필요해진다. 그리고, 상술한 바와 같이 펌웨어의 처리 능력은 일반적으로 낮다고 생각되기 때문에, 버스 리셋 발생 장소를 검출하는 처리는 부하가 낮은 것이 바람직하다.
그래서, 본 실시예에서는 도 10에 도시한 바와 같은 수법을 채용하고 있다.
즉, 1개의 버스 리셋(노드의 토폴로지 정보를 클리어하는 리셋)으로부터 다음 버스 리셋까지의 사이를 버스 리셋 간격이라고 정의했다고 하자. 예컨대, 도 10에서는 버스 리셋 M에서 M+1까지의 사이는 버스 리셋 간격 M이 되며, 버스 리셋 M+1에서 M+2까지의 사이는 버스 리셋 간격 M+1이 된다.
이 경우에, 본 실시예에서는 수신한 패킷과 다음에 수신한 패킷이 다른 리셋 간격으로 수신한 패킷인지의 여부를 구별하기 위한 토글 비트(BT)(광의로는 구별 정보)를 생성한다. 그리고, 이 토글 비트(BT)를 각 패킷에 관련지어, 도 10의 C11에 나타낸 바와 같이 RAM(패킷 기억 수단)에 기록하도록 하고 있다.
즉, 도 10에 있어서, 패킷 N과 N+1은 동일 버스 리셋 간격 M에 수신되어 있기 때문에, 이들 BT는 모두 0이 된다. 한편, 패킷 N+1과 N+2는 다른 버스 리셋 간격 M과 M+1에 수신되어 있기 때문에, 패킷 N+1의 BT는 0이 되며, 패킷 N+2의 BT는 1이 된다. 즉, BT가 0에서 1로 토글한다. 마찬가지로, 패킷 N+4와 N+5도 다른 버스 리셋 간격 M+1과 M+2에 수신되어 있기 때문에, BT가 1에서 0으로 토글한다. 또한, 패킷 N+5와 N+6도 다른 버스 리셋 간격 M+2와 M+4에 수신되어 있기 때문에, BT가 0에서 1로 토글한다.
따라서, 도 10의 C12, C13, C14로부터 분명한 바와 같이, BT가 토글한 장소가 버스 리셋 발생 장소(RAM 상에서의 경계)에 대응하게 된다. 이 때문에, 펌웨어(처리 수단)는 BT가 토글한 장소를 조사하는 것 만으로, 버스 리셋 발생 장소를 용이하게 알 수 있게 된다. 이 결과, 펌웨어는 마지막 버스 리셋 후에 수신한 패킷 N+6, N+7, N+8에 대해서는 예컨대 통상의 처리를 행하며, 마지막의 버스 리셋 전에 수신한 패킷 N 내지 N+5에 대해서는 파기하는 등의 처리를 행할 수 있게 된다.
그리고, 본 실시예에 있어서 특히 특징적인 것은 도 10의 C15에 있어서 BT가 변화하지 않는 점이다. 즉, 예컨대, 버스 리셋이 발생할 때마다 BT가 토글하게 하면, C15에서는 버스 리셋 M+4가 발생하고 있기 때문에, BT가 1에서 0으로 토글하게 된다. 그와 같이 하면, 패킷 N+5와 N+6은 다른 버스 리셋 간격으로 수신한 패킷인 것임에도 불구하고, 도 10의 C14에서 BT가 0에서 1로 변화하지 않게 된다. 이 결과, 패킷 N+5와 N+6의 수신 사이에 버스 리셋이 발생한 것을 펌웨어가 검출할 수 없게 되는 문제가 생긴다.
본 실시예에서는 연속하여 수신한 패킷이 다른 리셋 간격으로 수신한 패킷인 것을 조건으로, BT가 0에서 1로 또는 1에서 0으로 토글하게 되기 때문에, 상기한 바와 같은 문제는 생기지 않는다.
또한, 본 실시예에서는 도 5에서 설명한 바와 같이 RAM을 헤더 영역과 데이터(ORB, 스트림) 영역으로 분리한다. 또한, 헤더 영역에 격납되는 각 헤더와, 데이터 영역에 격납되는 각 데이터를 헤더에 포함시킨 데이터 포인터에 의해 대응시키고 있다. 그리고, 본 실시예에서는 도 11에 도시한 바와 같이, 상기 토글비트(BT)(구별 정보)를 헤더 영역에 기록되는 헤더 속에 포함시키고 있다. 이와 같이 하면, 펌웨어는 헤더 영역의 헤더를 정리하여 판독, 이들 헤더에 포함되는 BT를 조사하는 것 만으로, 버스 리셋 발생 장소를 용이하게 검출할 수 있게 된다. 이 결과, 펌웨어의 처리 부담을 더욱 경감할 수 있게 된다.
또한, 도 10에서는 구별 정보가 1비트의 데이터인 경우에 대해 설명했지만, 구별 정보를 2비트 이상의 데이터로 해도 된다. 예컨대, 도 10의 C12, C13, C14에 있어서, 0에서 1, 1에서 0, 0에서 1과 같이 변화시키는 대신 1, 2, 3과 같이 그 값을 인크리먼트시키도록 해도 된다.
3.2 버스 리셋 포인터
그런데, 본 실시예에서는 버스 리셋 발생 장소를 효율적으로 검출하기 위해, 도 12에 도시한 바와 같은 버스 리셋 포인터 레지스터(제 1 포인터 기억 수단)(BPR)를 설치하고 있다.
여기서, 버스 리셋 포인터 레지스터(BPR)에 기억되는 버스 리셋 포인터(BP)는 버스 리셋 발생 전의 수신 패킷 N 내지 N+2와 버스 리셋 발생 후의 수신 패킷 N+3 내지 N+6과의 RAM에서의 경계(RB1)를 특정하는 포인터이다. 보다 구체적으로는 포인터(BP)는 버스 리셋 발생 직전에 수신한 패킷 N+2의 다음 패킷 N+3의 선두 어드레스를 가리키고 있다.
더욱이, 본 실시예에서는 도 12에 도시한 바와 같이, 처리 완료 포인터 레지스터(UPR)(제 2 포인터 기억 수단)나 수신 완료 포인터 레지스터(PPR)(제 3 포인터 기억 수단)도 설치하고 있다.
여기서, 레지스터(UPR)에 기억되는 처리 완료 포인터(UP)는 처리 완료(사용 완료) 패킷 N-1과 미처리(미사용) 패킷 N과의 RAM에서의 경계(RBP2)를 특정하는 포인터이다. 보다 구체적으로는, 포인터(UP)는 처리 완료 패킷 N-1의 다음 패킷 N의 선두 어드레스를 가리키고 있다.
또한, 레지스터(PPR)에 기억되는 수신 완료 포인터(PP)는 최신(post)의 수신 완료 패킷 N+6과, 미수신 패킷 N+7(다음에 수신할 패킷)과의 RAM에서의 경계(RBP3)를 특정하는 포인터이다. 보다 구체적으로는 포인터(PP)는 최신 수신 완료 패킷 N+6 다음에 와야 할 미수신 패킷 N+7의 선두 어드레스를 가리키고 있다.
상기 레지스터(BPR)를 설치함으로써, 펌웨어는 버스 리셋 전의 수신 패킷과 버스 리셋 후의 수신 패킷을 용이하게 구별할 수 있게 된다. 또한, 레지스터 UPR나 PPR를 설치함으로써, 펌웨어는 어느 패킷이 미처리 패킷인지를 용이하게 판단할 수 있게 된다(도 12에서는 패킷 N 내지 N+6이 미처리가 된다).
특히, 포인터(BP)는 버스 리셋 직후의 수신 패킷 N+3의 선두 어드레스를 가리키고 있다. 따라서, 펌웨어는 레지스터(BPR)로부터 포인터(BP)를 판독하는 것 만으로, 버스 리셋 후의 패킷에 대한 처리를 개시할 수 있게 된다. 또한, 포인터 UP는 미처리 패킷 N의 선두 어드레스를 가리키고 있다. 따라서, 펌웨어는 레지스터 UPR로부터 포인터 UP를 판독하는 것 만으로, 미처리 패킷에 대한 처리를 개시할 수 있게 된다.
그런데, 버스 리셋 전의 수신 패킷과 버스 리셋 후의 수신 패킷을 구별하는 수법으로서, 이른바 버스 리셋 패킷을 이용하는 수법을 생각할 수 있다. 이러한버스 리셋 패킷을 사용하면, 도 13a에 도시한 바와 같이, 버스 리셋 패킷 전에 격납되어 있는 패킷 N 내지 N+2는 버스 리셋 전의 수신 패킷이라고 판단할 수 있으며, 버스 리셋 패킷 후에 격납되어 있는 패킷 N+3 내지 N+6은 버스 리셋 후의 수신 패킷이라고 판단할 수 있다.
하지만, 이 수법에서는 도 13b의 플로우챠트의 스텝(S1, S2)에 도시한 바와 같이, 펌웨어는 버스 리셋 패킷이 판독될 때까지 미처리 수신 패킷을 RAM으로부터 순차 판독해야 한다. 따라서, 펌웨어의 처리 부담이 커진다는 문제가 있으며, 특히, RAM에 많은 미처리 패킷이 쌓인 경우에는 상기 문제는 더욱 심각해진다.
이에 대해, 버스 리셋 포인터(BP)를 사용하는 본 실시예에서는 도 13c의 플로우챠트의 스텝(S3)에 도시한 바와 같이, 펌웨어는 레지스터(BPR)로부터 포인터(BP)를 판독하는 것 만으로 된다. 따라서, 도 13b에 비해 펌웨어의 처리 부담을 각별하게 경감할 수 있다.
그런데, 본 실시예에서는 도 5에 도시한 바와 같이 RAM을 헤더 영역과 데이터 영역으로 분리하고 있다. 이 때문에, 도 12의 버스 리셋 포인터 레지스터(BR)로서, 도 14에 도시한 바와 같이 버스 리셋 헤더 포인터 레지스터(BHPR)(제 4 포인터 기억 수단)와 버스 리셋 ORB 포인터 레지스터(BOPR)(제 5 포인터 기억 수단)를 설치하고 있다.
또한, 처리 완료 포인터 레지스터(UPR)로서, 처리 완료 헤더 포인터 레지스터(UHPR)와 처리 완료 ORB 포인터 레지스터(UOPR)를 설치하고 있다. 또한, 수신 완료 포인터 레지스터(PPR)로서, 수신 완료 헤더 포인터 레지스터(PHPR)와 수신 완료 ORB 포인터 레지스터(POPR)를 설치하고 있다.
여기서, 레지스터(BHPR, UHPR, PHPR)가 기억하는 포인터(BHP)(제 4 포인터 정보), UHP, PHP는 각각 RAM의 헤더 영역에서의 경계(RB11, RB21, RB31)를 특정하기 위한 포인터이다.
또한, 레지스터(BOPR, UOPR, POPR)가 기억하는 포인터(BOP)(제 5 포인터 정보), UOP, POP는 각각 RAM의 ORB(제 1 데이터) 영역에서의 경계(RB12, RB22, RB32)를 특정하기 위한 포인터이다.
그런데, 도 14에 도시한 바와 같이, ORB 영역에서의 버스 리셋의 경계(RB12)를 가리키는 포인터(BOP)를 사용함으로써, 다음과 같은 이점을 얻을 수 있다.
즉, 헤더 영역에서의 경계(RB11)를 가리키는 포인터(BHP)만을 사용하는 수법에서는 ORB 영역에서의 경계(RB12)를 특정하기 위해, 펌웨어는 도 15a의 플로우챠트에 도시한 바와 같은 처리를 행할 필요가 있다.
먼저, 포인터(UOP)의 어드레스를 기억한다(스텝(S10)). 다음에, 포인터(BHP) 전에 헤더가 있는지의 여부를 판단하여(스텝(S11)), 어느 경우에는 그 헤더를 판독한다(스텝(S12)). 예컨대 도 14에서는 헤더 N이 판독된다.
다음에, 판독된 헤더가 ORB 영역에 데이터를 가진 패킷(ORB 패킷)의 헤더인지의 여부를 판단한다(스텝(S13)). 도 14에서는 헤더 N, N+1은 ORB 패킷의 헤더는 아니기 때문에, 스텝(S14)으로는 이행하지 않으며, 스텝(S11, S12)으로 돌아간다. 한편, 헤더 N+2, N+3는 ORB 포인터이기 때문에, 스텝(S14)으로 이행하며, 헤더에 포함되는 데이터 포인터 및 데이터 길이에 기초하여, ORB 포인터의어드레스(경계(RB02, RB12))를 산출하여 기억한다. 그리고, 다음 헤더 N+4는 ORB 포인터가 아니기 때문에, 스텝(S11)으로 돌아간다. 그와 같이 하면, 스텝(S11)에서 포인터(BHP) 전에 헤더가 없다고 판단되기 때문에, 스텝(S15)으로 이행하며, 직전에 기억한 ORB 포인터의 어드레스(RB12)를 버스 리셋에 의한 ORB 영역의 경계라고 판단한다.
이상과 같이 포인터(BHP)만을 사용하는 수법에서는 펌웨어는 도 15a에 도시한 바와 같이 부하가 큰 처리를 행해야만 한다. 특히, 펌웨어의 처리 능력이 낮아, RAM에 많은 헤더가 쌓여 있는 상황에서는 사태는 더욱 심각해진다.
이에 대해, 포인터(BOP)를 사용하면, 도 15b의 플로우챠트에 도시한 바와 같이, 펌웨어는 레지스터(BOPR)로부터 포인터(BOP)를 판독하는 것 만으로 경계(RB12)를 특정할 수 있다. 따라서, 포인터(BHP) 밖에 사용하지 않는 수법에 비해, 펌웨어의 처리 부담을 각별하게 경감할 수 있다.
그런데, SBP-2에 있어서는 각 노드(초기화기, 타겟)는 통상의 16비트의 노드 ID 외에 64비트의 EUI-64라 불리는 ID를 갖고 있다. 그리고, 노드 ID는 버스 리셋에 의해 리셋되며, 버스 리셋 후에는 전혀 다른 ID가 되어버릴 가능성이 항상 있는 것에 대해, EUI64는 각 노드에 특유한 ID로, 버스 리셋 후도 변화하지 않는다. 따라서, 버스 리셋 후에, EUI-64와 새로운 노드 ID를 대응짓는 처리가 필요해져, 각 노드 사이에서는 이 대응 짓는 처리를 위한 다수의 패킷이 송수신된다. 이 때문에, 버스 리셋 후에는 단시간에 많은 패킷이 RAM에 쌍이게 된다. 그리고, 이들 쌓이는 패킷 수는 버스에 접속되는 노드가 증가함에 따라 많아진다.
이 경우에, 각 노드의 펌웨어(트랜잭션층)가 버스 리셋 전의 수신 패킷에 대한 처리를 우선적으로 행하면, 그 노드 처리가 스톨해버릴 가능성이 있는 것을 판명했다. 그리고, 1개의 노드 처리가 스톨해버리면, 그 영향은 다른 노드에도 미친다.
그래서, 본 실시예에서는 버스 리셋이 발생한 경우에, 펌웨어(처리 수단)가 버스 리셋 후의 수신 패킷을 우선적으로 처리하도록 하고 있다.
즉, 도 16의 플로우챠트에 도시한 바와 같이, 버스 리셋이 발생했다고 판단되면(스텝(S20)), 펌웨어는 레지스터(BHPR, BOPR)로부터 포인터(BHP, BOP)를 판독한다(스텝(S21)). 그리고, 버스 리셋 후의 수신 패킷(노드 ID와 EUI-64와의 대응 짓기 위해 패킷)을 우선적으로 처리한다(스텝(S22)). 즉, 본 실시예에서는 상술한 바와 같이, 포인터(BHP, BOP)가 준비되기 때문에, 이들 포인터를 레지스터 BHPR, BOPR로부터 판독한다는 간단한 처리로, 버스 리셋 후의 수신 패킷을 특정할 수 있다. 따라서, 이와 같이 버스 리셋 후의 수신 패킷을 우선적으로 처리하도록 해도 펌웨어의 처리 부담은 그만큼 증가하지 않는다.
다음에, 펌웨어는 레지스터(UHPR, UOPR)로부터 포인터(UHP, UOP)를 판독(스텝(S23)), 버스 리셋 전의 수신 패킷 처리를 행한다(스텝(S24)). 즉, 패킷을 파기하거나, 버스 리셋에 의해 중지된 트랜잭션이 있는지의 여부를 판단하는 등의 처리를 행한다.
3.3 버스 리셋 송신 중지 상태
도 17a에 도시한 바와 같이, 통상의 송신 처리는 펌웨어가 송신 개시 커맨드를 발행함으로써(도 4의 레지스터(46)에 송신 개시 커맨드를 기록함으로써) 개시된다. 그리고, 송신 개시 커맨드가 발행되면, 버스의 어비트레이션이 행해지며, 어비트레이션을 이기면, 버스 상에서의 실제 패킷 전송이 개시한다. 그리고, 상대 노드로부터 ACK(확인)가 돌아오면, 송신 완료 상태가 펌웨어에 전해진다.
그리고, 도 17b에 도시한 바와 같이, 송신 개시 커맨드 발행 전에 버스 리셋이 발생하고 있는 경우에는 도 17a와 마찬가지로 통상의 송신 처리가 행해진다. 한편, 도 17c에 도시한 바와 같이, 송신 개시 커맨드 발행 후에 버스 리셋이 발생하면, 송신은 중지되며, 상대 노드로부터의 ACK는 돌아오지 않아 송신 완료 상태는 펌웨어에는 전해지지 않는다.
그런데, 펌웨어에 의한 송신 개시 커맨드 발행(레지스터로의 기록) 바로 전에 버스 리셋이 일어난 경우에는 도 17b, 도 17c 중 어느 경우가 된 것인지를 펌웨어가 판단할 수 없게 된다.
즉, 도 18a에 도시한 바와 같이 펌웨어는 송신 개시 커맨드를 발행한 후(스텝(S30)), 버스 리셋이 발생했는지의 여부를 판단한다(스텝(S31)). 그리고, 버스 리셋이 발생하고 있지 않을 경우에는 송신 완료가 돌아오는 것을 기다리게 된다(스텝(S32)). 이것은 도 17b의 경우이다. 한편, 버스 리셋이 발생한 경우에는 송신 완료를 기다리지 않고 송신을 취소한다(스텝(S33)). 이것은 도 17c의 경우이다.
그리고, 도 18a의 C20에 나타낸 바와 같이, 송신 개시 커맨드 발행보다도 조금 전에 버스 리셋이 발생한 경우에는 펌웨어 처리가 스텝(S31, S32)에서 루프해버려 처리가 스톨해버린다. 즉, 버스 리셋 발생을 검출할 수 없기 때문에, 송신은취소되지 않으며(스텝(S33)으로 이행하지 않는다), 송신 완료도 돌아오지 않기 때문에, 스텝(S31, S2)에서 처리가 루프한다.
그래서 본 실시예에서는 도 17d에 도시한 바와 같이, 버스 리셋에 의해 송신이 중지된 것을 도시한 상태를 펌웨어에 전하도록 하고 있다. 보다 구체적으로는, 버스 리셋이 발생하여, 데이터 전송 제어 장치의 하드웨어가 송신을 중지하는 처리를 행한 경우에, 버스 리셋 송신 중지 상태가 도 4의 레지스터(46)에 기록된다. 이와 같이 하면 펌웨어는 도 18b의 스텝(S41)에 도시한 바와 같이, 버스 리셋에 의해 송신이 중지되었는지의 여부를 판단할 수 있다. 그리고, 버스 리셋에 의해 송신이 중지된 것이라고 판단한 경우에는 송신 완료를 기다리지 않고 송신을 취소하도록 한다(스텝(S44)). 이로써, 펌웨어 처리가 스톨해버리는 사태를 회피할 수 있게 된다.
4. 상세예
4.1 수신 측의 상세한 구성
다음에 수신 측의 상세한 구성에 대해 설명한다. 도 19에 링크 코어(20)(링크 수단), FIFO(34), DMAC(44)(기록 수단)의 상세한 구성의 일예를 도시한다.
링크 코어(20)는 버스 감시 회로(130), 직렬·병렬 변환 회로(132), 패킷 정형 회로(160)를 포함한다.
여기서, 버스 감시 회로(130)는 PHY 인터페이스(10)를 통해 PHY 디바이스에 접속된 8비트 폭의 데이터 버스(D), 2비트 폭의 컨트롤 버스(CTL)를 감시하는 회로이다.
직렬·병렬 변환 회로(132)는 데이터 버스(D)의 데이터를 32비트 데이터로 변환하는 회로이다.
패킷 정형 회로(160)는 각 노드로부터 전송되어 온 패킷을 상층이 사용할 수 있도록 정형하는 회로이다. 예컨대, 도 20a에 IEEE 1394 규격의 비동기로 블록 데이터를 가진 패킷의 포맷을 도시한다. 한편, 도 20b에 RAM(80)의 헤더 영역에 격납되는 비동기 수신으로 블록 데이터를 가진 패킷의 헤더 부분의 포맷을 도시한다. 이와 같이 본 실시예에서는, 도 20a에 도시한 포맷의 패킷을 펌웨어 등의 상층이 사용할 수 있도록 도 20b에 도시한 포맷의 패킷으로 정형화하고 있다.
패킷 정형 회로(160)는 패킷 진단 회로(142), 시퀀서(167), 버퍼(168), 선택기(170)를 포함하며, 패킷 진단 회로(142)는 TAG 생성 회로(162), 상태 생성 회로(164), 에러 체크 회로(166)를 포함한다.
여기서, 패킷 진단 회로(142)는 패킷 진단을 행하는 회로이다. TAG 생성 회로(162)는 패킷을 기록하는 영역을 구별하기 위한 정보인 TAG를 생성하는 회로이며, 상태 생성 회로(164)는 패킷에 부가하는 각종 상태를 생성하는 회로이다. 또한, 에러 체크 회로(166)는 패킷에 포함되는 패리티나 CRC 등의 에러 체크 정보를 체크하여 에러를 검출하는 회로이다.
시퀀서(167)는 각종 제어 신호를 생성한다. 버퍼(168), 선택기(170)는 직렬·병렬 변환 회로(132)로부터의 DI, 패킷 진단 회로(142)로부터의 상태, DMAC(44)로부터의 데이터 포인터(DP) 중 어느 하나를 패킷 진단 회로(142)로부터의 신호(SEL)에 의해 선택하기 위한 것이다.
FIFO(34)는 링크 코어(20)로부터의 출력 데이터인 RD의 위상과, RAM(80)으로의 기록 데이터인 WDATA의 위상을 조정하기 위한 버퍼로서 기능하는 것이며, FIFO 상태 판단 회로(35)를 포함한다. FIFO 상태 판단 회로(35)는 FIFO(34)가 0이 되면, 신호 EMPTY를 액티브로 하며, FIFO(34)가 풀이 되면, 신호 FULL을 액티브로 한다.
DMAC(44)는 패킷 분리 회로(180), 액세스 요구 실행 회로(190), 액세스 요구 발생 회로(192)를 포함한다.
여기서, 패킷 분리 회로(180)는 패킷 정형 회로(160)에 의해 정형된 패킷을 TAG(DTAG)에 기초하여 데이터, 헤더 등으로 분리하여 RAM의 각 영역(도 5 참조)에 기록하는 처리를 행한다.
액세스 요구 실행 회로(190)는 링크 코어(20)로부터의 액세스 요구를 실행하기 위한 회로이다. 액세스 요구 실행 회로(190)는 FIFO 상태 판단 회로(35)로부터의 FULL이 액티브되면, FFULL을 액티브로 한다. 패킷 정형 회로(160) 내의 시퀀서(167)는 FFULL이 액티브가 아닌 것을 조건으로, RD(RxData)의 스트로브 신호인 RDS를 액티브로 한다.
또한, RFAIL은 수신에 있어서의 실패를 시퀀서(167)가 액세스 요구 실행 회로(190)에 대해 알리기 위한 신호이다.
액세스 요구 발생 회로(192)는 RAM(80)으로의 액세스 요구를 발생하기 위한 회로이다. 액세스 요구 발생 회로(192)는 버퍼 매니저(70)로부터의 기록 확인인 WACK나 FIFO 상태 판단 회로(35)로부터의 EMPTY 등을 받아, 기록 요구인 WREQ를 버퍼 매니저(70)에 출력한다.
그런데, 도 19에 도시한 바와 같이, 패킷 분리 회로(180)는 TAG 판별 회로(182), 어드레스 발생 회로(188)를 포함하며, 어드레스 발생 회로(188)는 포인터 갱신 회로(184)를 포함한다.
여기서, TAG 판별 회로(182)는 TAG 생성 회로(162)에 의해 생성된 TAG(DTAG)를 판별하여, FIFO(34)의 출력 WDATA의 기록 영역을 정한다.
그리고, 어드레스 발생 회로(188)가 포함하는 포인터 갱신 회로(184)가 이 정해진 영역에 있어서, 포인터(데이터 포인터, 헤더 포인터)를 순차 갱신(인크리먼트, 디크리먼트)한다. 그리고, 어드레스 발생 회로(188)는 이 순차 갱신되는 포인터가 가리키는 어드레스를 발생하여, WADR로서 버퍼 매니저(70)에 출력한다. 또한, 어드레스 발생 회로(188)는 데이터 포인터(DP)(수신 ORB 영역의 데이터 포인터, 수신 스트림 영역의 데이터 포인터 등)를 패킷 정형 회로(160)에 출력한다. 패킷 정형 회로(160)는 이 데이터 포인터를 패킷의 헤더에 매입한다(도 20b의 C30 참조). 이와 같이 함으로써, 헤더 영역에 격납되는 헤더와 데이터 영역에 격납되는 데이터를 대응짓는 것이 가능해진다(도 11 참조).
도 21에 본 실시예에서 사용되는 TAG(DTAG)의 예를 도시한다. 도 21에 있어서, 예컨대 TAG가 (0001), (0010)인 경우에는 수신 패킷의 헤더(FIFO(34)의 출력 WDATA)가 도 5의 수신 헤더 영역으로 기록된다. 또한, TAG가 (0100)인 경우에는 수신 패킷의 데이터가 수신 ORB 영역에 기록되며, TAG가 (0101)인 경우에는 수신 패킷의 데이터가 수신 스트림 영역에 기록되게 된다.
또한, TAG가 (1001), (1010)인 경우에는 수신 패킷으로 헤더가 HW(하드웨어)용 수신 헤더 영역에 기록된다. 또한, TAG가 (1100)인 경우에는 수신 패킷의 데이터가 HW용 수신 ORB 영역에 기록되며, TAG가 (1101)인 경우에는 수신 패킷의 데이터가 HW용 수신 스트림 영역에 기록되게 된다. 또한, 여기서 HW(하드웨어)용이란 도 4의 SBP-2 코어(84)용이라는 의미이다.
4.2 BT 생성 회로
상태 생성 회로(164)는 BT 생성 회로(165)를 포함한다. 이 BT 생성 회로(165)는 도 1O에서 설명한 토글 비트(BT)를 생성한다. 생성된 BT는 도 20b의 C31에 나타낸 바와 같이, 정형 후의 패킷의 헤더에 매입된다.
도 22a, 도 22b에 BT 생성 회로(165)의 상태 천이도를 도시한다.
도 22a에 있어서, RECEIVED는 BT 생성 회로(165)의 내부 신호이며, BRIP는 버스 리셋 중인 것을 나타낸 신호이다. 이 BRIP는 도 19에 도시한 바와 같이 버스 감시 회로(130)가 생성한다. 즉 버스 감시 회로(130)는 데이터 버스(D)를 통해 PHY 디바이스로부터의 상태 정보를 수취, 이 상태 정보에 기초하여, 버스 리셋이 이루어졌는지의 여부를 판단한다. 그리고, 버스 감시 회로(130)는 버스 리셋이 이루어진 것이라고 판단하면, BRIP을 H레벨로 하고, 그 후, L레벨로 돌아간다.
도 22a의 상태 천이도에 도시한 바와 같이, RECEIVED는 패킷을 수신한 것을 조건으로 L레벨에서 H레벨로 변화하며, BRIP가 H레벨이 된 것을 조건으로 H레벨에서 L레벨로 변화한다. 또한, 도 22b의 상태 천이도에 도시한 바와 같이, 토글 비트(BT)는 BRIP 및 RECEIVED가 H레벨이 된 것을 조건으로 L레벨에서 H레벨로 또는 H레벨에서 L레벨로 토글한다.
도 23에 상술한 각 신호의 타이밍 챠트를 도시한다. 도 23의 C40, C41, C42에서는 패킷을 수신했기 때문에, RECEIVED가 L레벨에서 H레벨로 변화하고 있다. 또한, C43, C44, C45에서는 BRIP(버스 리셋 중 신호)가 H레벨이 되었기 때문에, RECEIVED가 H레벨에서 L레벨로 변화하고 있다.
C46, C47, C48에서는 BRIP 및 RECEIVED가 H레벨이 되었기 때문에, BT가 L레벨에서 H레벨로 또는 H레벨에서 L레벨로 토글하고 있다. 한편, C49에서는 RECEIVED가 H레벨이 아니기 때문에, BT는 변화하지 않는다. 즉, 버스 리셋 간격 M+2에서는 패킷을 수신하고 있지 않기 때문에, 버스 리셋이 생겨도(BRIP가 H레벨로 되어도) BT는 변화하지 않는다. 이와 같이 함으로써, 도 10에서 설명한 바와 같이, 연속하여 수신한 패킷이 다른 버스 리셋 간격의 패킷인 경우로 변화하는 토글 비트(BT)를 생성할 수 있게 된다.
4.3 포인터 레지스터
다음에, 도 24를 사용하여 도 14의 각종 포인터 레지스터의 상세함에 대해 설명한다.
레지스터(310, 314, 318)는 각각 수신 완료 헤더 포인터, 수신 완료 ORB 포인터, 수신 완료 스트림 포인터를 기억하는 레지스터이다(도 14 참조). 이들 레지스터(310, 314, 318)는 어드레스 발생 회로(188)로부터 각각 WHADR(헤더 영역에서의 어드레스), WOADR(ORB 영역에서의 어드레스), WSADR(스트림 영역에서의 어드레스)을 받는다. 또한, 레지스터(310, 314, 318)는 링크 코어(20)로부터의 수신 완료 신호(RXCOMP)를 받는다. 그리고, 레지스터(310, 314, 318)는 이 RXCOMP가 액티브되는 타이밍으로, 어드레스 발생 회로(188)로부터의 WHADR, WOADR, WSADR를 입력, 기억한다. 이와 같이 함으로써, 도 14의 경계(RB31, RB32) 등의 어드레스를 기억할 수 있게 된다.
또한, 레지스터(312, 316)는 각각 버스 리셋 헤더 포인터, 버스 리셋 ORB 포인터를 기억하는 레지스터이다(도 14 참조). 이들 레지스터(312, 316)는 링크 코어(20)로부터의 버스 리셋 중 신호(BRIP)를 받는다. 그리고, 레지스터(312, 316)는 이 BRIP가 액티브되는 타이밍으로, 레지스터(31O, 314)에 기억되어 있는 어드레스를 입력, 기억한다. 이와 같이 함으로써, 도 14의 경계(RB11, RB12)의 어드레스를 기억할 수 있게 된다.
레지스터(320, 322, 324)는 각각 처리 완료 헤더 포인터, 처리 완료 ORB 포인터, 처리 완료 스트림 포인터를 기억하는 레지스터이다(도 14 참조).
시작·끝 어드레스 레지스터(326)는 도 5에 도시한 각 영역의 시작 어드레스나 끝 어드레스를 기억한다. 그리고, 어드레스 발생 회로(188, 332)는 레지스터(326)로부터의 시작 어드레스, 끝 어드레스에 기초하여 어드레스 발생을 제어한다. 보다 구체적으로는 시작 어드레스를 개시점으로 하여 순차 포인터를 갱신한다. 그리고, 포인터가 끝 어드레스에 도달한 경우에, 포인터를 시작 어드레스로 돌아가는 등의 제어를 행한다(링 버퍼 구조의 경우).
RAM 영역 관리 회로(300)는 수신 헤더 영역 관리 회로(3O2), 수신 ORB 영역 관리 회로(304), 수신 스트림 영역 관리 회로(306)를 포함한다.
그리고, 수신 헤더 영역 관리 회로(302)는 레지스터(310)로부터의 수신 완료 헤더 포인터나 레지스터(320)로부터의 처리 완료 헤더 포인터를 받아, 수신 헤더 영역이 풀인 것을 알리는 신호(HDRFULL)를 액세스 요구 발생 회로(192)에 출력한다.
또한, 수신 ORB 영역 관리 회로(304)는 레지스터(314)로부터의 수신 완료 ORB 포인터나 레지스터(322)로부터의 처리 완료 ORB 포인터를 받아, 수신 ORB 영역이 FULL인 것을 알리는 신호 ORBFULL을 액세스 요구 발생 회로(192)에 출력한다.
또한, 수신 스트림 영역 관리 회로(306)는 레지스터(318)로부터의 수신 완료 스트림 포인터나 레지스터(324)로부터의 처리 완료 스트림 포인터를 받아, 수신 스트림 영역이 풀인 것을 알리는 신호(STRMFULL)을 액세스 요구 발생 회로(192)에 출력한다. 또한, 수신 스트림 영역이 엠티인 것을 알리는 신호(STRMEMPTY)를 액세스 요구 발생 회로(334)에 출력한다.
액세스 요구 발생 회로(192, 334)는 이들 풀 신호, 엠티 신호를 받아, 기록 요구(WREQ), 판독 요구(RREQ)를 버퍼 매니저(70)에 출력할지의 여부를 정하게 된다.
4.4 버스 리셋 송신 중지 상태
다음에, 도 25, 도 26을 사용하여 버스 리셋 송신 중지 상태의 상세함에 대해 설명한다.
도 25에 있어서, 펌웨어는 송신 개시 커맨드를 송신 개시 설정 레지스터(340)에 기록한다. 그와 같이 하면 시작 생성 회로(342)가 도 26의 C60에도시한 바와 같이 신호 시작를 액티브로 한다. 그와 같이 하면 DMAC(40)가 버퍼 매니저(70)에 대해 판독 요구를 출력하여, 송신이 개시된다.
또한, 신호(START)를 받은 TXPRD 생성 회로(346)는 C61에 나타낸 바와 같이, 송신중인 것을 나타내는 신호(TXPRD)를 액티브로 한다. 그리고, 패킷 전송이 무사히 종료하여, C62에 나타내는 바와 같이 링크 코어(20)가 송신 완료 신호(TXCOMP)를 액티브로 하면, 신호(TXPRD)는 비액티브해진다.
그런데, 송신중(TXPRD가 액티브 시)에 C63에 나타낸 바와 같이 신호(BRIP)가 액티브되면(버스 리셋이 발생하면), C64에 나타낸 바와 같이, 도 25의 TXBRABORT 생성 회로(348)가 신호(TXBRABORT)를 액티브로 한다. 그리고, 버스 리셋에 의해 송신이 중지된 것을 나타내는 상태가 송신 중지 상태 레지스터(350)를 통해 펌웨어에 전해지게 된다.
한편, 도 26의 C65에서는 송신중이 아니기 때문에(TXPRD가 비액티브), 버스 리셋이 발생하여 BRIP가 액티브로 되어도, TXBRABOT는 액티브되지 않는다.
이와 같이 본 실시예에서는 송신 중에 버스 리셋이 발생하여 송신이 중지가 되었을 때만 버스 리셋 송신 중지 상태가 펌웨어에 전해지게 된다.
5. 전자기기
다음에, 본 실시예의 데이터 전송 제어 장치를 포함하는 전자기기의 예에 대해 설명한다.
예컨대 도 27a에 전자기기의 하나인 프린터의 내부 블록도를 도시하며, 도 28a에 그 외관도를 도시한다. CPU(마이크로 컴퓨터)(510)는 시스템 전체 제어 등을 행한다. 조작부(511)는 프린터를 사용자가 조작하기 위한 것이다. ROM(516)에는 제어 프로그램, 폰트 등이 격납되며, RAM(518)은 CPU(51O)의 워크 영역으로서 기능한다. 표시 패널(519)은 프린터의 동작 상태를 사용자에게 알리기 위한 것이다.
PHY 디바이스(502), 데이터 전송 제어 장치(500)를 통해 퍼스널 컴퓨터 등의 다른 노드로부터 전송된 인자 데이터는 버스(504)를 통해 인자 처리부(512)에 직접 보내진다. 그리고, 인자 데이터는 인자 처리부(512)에서 소정의 처리가 실시되며, 프린트 헤더 등으로 이루어지는 인자부(데이터를 출력하기 위한 장치)(514)에 의해 종이에 인자되어 출력된다.
도 27b에 전자기기의 하나인 스캐너의 내부 블록도를 도시하며, 도 28b에 그 외관도를 도시한다. CPU(520)는 시스템 전체 제어 등을 행한다. 조작부(521)는 스캐너를 사용자가 조작하기 위한 것이다. ROM(526)에는 제어 프로그램 등이 격납되며, RAM(528)는 CPU(520)의 워크 영역으로서 기능한다.
광원, 광전 변환기 등으로 이루어지는 화상 판독부(데이터를 입력하기 위한 장치)(522)에 의해 원고 화상이 판독되며, 판독된 화상의 데이터는 화상 처리부(524)에 의해 처리된다. 그리고, 처리 후의 화상 데이터가 버스(505)를 통해 데이터 전송 제어 장치(500)에 직접 보내진다. 데이터 전송 제어 장치(500)는 이 화상 데이터에 헤더 등을 부가함으로써 패킷을 생성하며, PHY 디바이스(502)를 통해 퍼스널 컴퓨터 등의 다른 노드에 송신한다.
도 27c에 전자기기의 하나인 CD-RW 드라이브의 내부 블록도를 도시하며, 도28c에 그 외관도를 도시한다. CPU(530)는 시스템 전체 제어 등을 행한다. 조작부(531)는 CD-RW를 사용자가 조작하기 위한 것이다. R0M(536)에는 제어 프로그램 등이 격납되며, RAM(538)은 CPU(53O)의 워크 영역으로서 기능한다.
레이저, 모터, 광학계 등으로 이루어지는 판독 기록부(데이터를 입력하기 위한 장치 또는 데이터를 기억하기 위한 장치)(533)에 의해 CD-RW(532)로부터 판독된 데이터는 신호 처리부(534)에 입력되며, 에러 정정 처리 등의 소정의 신호 처리가 실시된다. 그리고, 신호 처리가 실시된 데이터가 버스(506)를 통해 데이터 전송 제어 장치(500)에 직접 보내진다. 데이터 전송 제어 장치(500)는 이 데이터에 헤더 등을 부가함으로써 패킷을 생성하며, PHY 디바이스(502)를 통해 퍼스널 컴퓨터 등의 다른 노드에 송신한다.
한편, PHY 디바이스(502), 데이터 전송 제어 장치(500)를 통해 다른 노드로부터 전송된 데이터는 버스(506)를 통해 신호 처리부(534)에 직접 보내진다. 그리고, 신호 처리부(534)에 의해 이 데이터에 소정의 신호 처리가 실시되며, 판독 기록부(533)에 의해 CD-RW(532)에 기억된다.
또한, 도 27a, 도 27b, 도 27c에 있어서, CPU(510, 520, 530) 외에 데이터 전송 제어 장치(5O0)에서의 데이터 전송 제어를 위한 CPU를 별도로 설치하도록 해도 된다.
또한, 도 27a, 도 27b, 도 27c에서는 RAM(501)(도 4의 RAM(80)에 상당)이 데이터 전송 제어 장치(500) 외부에 설치되어 있지만, RAM(501)을 데이터 전송 제어 장치(500)에 내장시켜도 된다.
본 실시예의 데이터 전송 제어 장치를 전자기기에 사용함으로써, 고속 데이터 전송이 가능해진다. 따라서, 사용자가 퍼스널 컴퓨터 등에 의해 프린트 아웃 지시를 행한 경우에, 적은 타임 래그로 인자가 완료하게 된다. 또한, 스케너로의 화상 입력 지시 후에, 적은 타임 래그로 판독 화상을 사용자는 볼 수 있게 된다. 또한, CD-RW로부터의 데이터 판독이나 CD-RW로의 데이터 기록을 고속으로 행할 수 있게 된다. 더욱이, 예컨대 하나의 호스트 시스템에 복수의 전자기기를 접속하여 이용하거나 복수의 호스트 시스템에 복수의 전자기기를 접속하여 이용하거나 하는 것도 용이해진다.
또한, 본 실시예의 데이터 전송 제어 장치를 전자기기에 사용함으로써, CPU 상에서 동작하는 펌웨어의 처리 부담이 경감되며, 염가인 CPU나 저속의 버스를 사용하는 것이 가능해진다. 더욱이, 데이터 전송 제어 장치의 저코스트화, 소규모화를 도모할 수 있기 때문에, 전자기기의 저코스트화, 소규모화도 도모할 수 있게 된다.
또한, 버스에 새로운 전자기기가 접속되어 버스 리셋이 발생한 경우에도, 전자기기 사이에서의 통상의 데이터 전송이 장시간 기다려지는 사태를 방지할 수 있게 된다.
또한, 본 실시예의 데이터 전송 제어 장치를 적용할 수 있는 전자기기로서는 상기 이외에도 예컨대, 각종 광 디스크 드라이브(CD-ROM, DVD), 광 자기 디스크 드라이브(MO), 하드 디스크 드라이브, TV, VTR, 비디오 카메라, 오디오 기기, 전화기, 프로젝터, 퍼스널 컴퓨터, 전자 수첩, 워드 프로세서 등 각종의 것을 생각할수 있다.
또한, 본 발명은 본 실시예에 한정되지 않으며, 본 발명의 요지의 범위 내에서 각종 변형 실시가 가능하다.
예컨대, 본 발명의 데이터 전송 제어 장치 구성은 도 4에 도시한 구성이 특히 바람직하지만, 이에 한정되는 것은 아니다.
또한, 본 발명은 IEEE 1394에 있어서의 버스 리셋에 특히 유용하지만, 이 이외에도 적어도 노드의 토폴로지 정보를 클리어하는 리셋이면 적용할 수 있다.
또한, 본 발명의 포인터 정보는 패킷 기억 수단의 각 경계를 적어도 특정할 수 있는 것이면 되며, 패킷의 선두 어드레스로는 한정되지 않는다.
또한, 패킷 기억 수단의 분리(분할) 수법도 도 5에서 설명한 것에 한정되는 것은 아니다.
또한, 본 발명은 IEEE 1394 규격에서의 데이터 전송에 적용되는 것이 특히 바람직하지만, 이에 한정되는 것은 아니다. 예컨대 IEEE 1394와 동일한 사상에 기초하는 규격이나 IEEE 1394를 발전시킨 규격에 있어서의 데이터 전송에도 본 발명은 적용할 수 있다.

Claims (23)

  1. 버스에 접속된 복수의 노드 사이에서의 데이터 전송을 위한 데이터 전송 제어 장치에 있어서,
    노드의 토폴로지 정보를 클리어하는 리셋에서부터 다음 리셋까지의 사이를 리셋 간격이라고 정의한 경우에, 수신한 패킷과 다음에 수신한 패킷이 다른 리셋 간격으로 수신한 패킷인지의 여부를 구별하기 위한 구별 정보를 생성하는 수단과,
    수신한 각 패킷과 생성된 각 구별 정보를, 각 패킷에 각 구별 정보를 관련지어, 패킷 기억 수단에 기록하는 기록 수단을 포함하는 것을 특징으로 하는 데이터 전송 제어 장치.
  2. 제 1 항에 있어서,
    상기 구별 정보가,
    수신한 패킷과 다음에 수신한 패킷이 다른 리셋 간격으로 수신한 패킷일 경우에, 0으로부터 1로 또는 1로부터 0으로 토글하는 토글 비트인 것을 특징으로 하는 데이터 전송 제어 장치.
  3. 제 1 항에 있어서,
    상기 패킷 기억 수단은 랜덤 액세스 가능한 기억 수단이고,
    상기 패킷 기억 수단이 패킷의 제어 정보가 격납되는 제어 정보 영역과 패킷의 데이터가 격납되는 데이터 영역으로 분리되어 있는 경우에,
    상기 구별 정보를 상기 제어 정보 영역에 기록된 상기 제어 정보 내에 포함시키는 것을 특징으로 하는 데이터 전송 제어 장치.
  4. 버스에 접속된 복수의 노드 사이에서의 데이터 전송을 위한 데이터 전송 제어 장치에 있어서,
    각 노드로부터 수신한 패킷을 패킷 기억 수단에 기록하는 기록 수단과,
    노드의 토폴로지 정보를 클리어하는 리셋의 발생 전의 수신 패킷의 영역과 리셋의 발생 후의 수신 패킷의 영역의, 상기 패킷 기억 수단에서의 경계를 특정하는 제 1 포인터 정보를 기억하는 제 1 포인터 기억 수단을 포함하는 것을 특징으로 하는 데이터 전송 제어 장치.
  5. 제 4 항에 있어서,
    리셋의 발생 직전에 수신한 패킷의 다음 패킷의 선두 어드레스가, 상기 제 1 포인터 정보로서 상기 제 1 포인터 기억 수단에 기억되는 것을 특징으로 하는 데이터 전송 제어 장치.
  6. 제 4 항에 있어서,
    처리 완료 패킷 영역과 미처리 패킷 영역과의, 상기 패킷 기억 수단에서의 경계를 특정하는 제 2 포인터 정보를 기억하는 제 2 포인터 기억 수단과,
    수신 완료 패킷 영역과 패킷 미수신 영역과의, 상기 패킷 기억 수단에서의 경계를 특정하는 제 3 포인터 정보를 기억하는 제 3 포인터 기억 수단을 포함하는 것을 특징으로 하는 데이터 전송 제어 장치.
  7. 제 4 항에 있어서,
    상기 제 1 포인터 기억 수단에 기억된 상기 제 1 포인터 정보에 기초하여 리셋 발생 후의 수신 패킷을 특정하고, 상기 패킷을 우선적으로 처리하는 처리 수단을 포함하는 것을 특징으로 하는 데이터 전송 제어 장치.
  8. 제 4 항에 있어서,
    상기 패킷 기억 수단은 랜덤 액세스 가능한 기억 수단이고,
    상기 패킷 기억 수단이 패킷의 제어 정보가 격납되는 제어 정보 영역과 패킷의 데이터가 격납되는 데이터 영역으로 분리되어 있는 경우에,
    상기 제 1 포인터 기억 수단이,
    노드의 토폴로지 정보를 클리어하는 리셋의 발생 전의 수신 패킷의 제어 정보와 리셋 발생 후의 수신 패킷의 제어 정보의, 상기 제어 정보 영역에서의 경계를 특정하는 제 4 포인터 정보를 기억하는 제 4 포인터 기억 수단과,
    노드의 토폴로지 정보를 클리어하는 리셋의 발생 전의 수신 패킷의 데이터와 리셋 발생 후의 수신 패킷의 데이터의, 상기 데이터 영역에서의 경계를 특정하는 제 5 포인터 정보를 기억하는 제 5 포인터 기억 수단을 포함하는 것을 특징으로 하는 데이터 전송 제어 장치.
  9. 제 8 항에 있어서,
    상기 데이터 영역이, 제 1 층용의 제 1 데이터가 격납되는 제 1 데이터 영역과, 제 2 층용의 제 2 데이터가 격납되는 제 2 데이터 영역으로 분리되어 있는 경우에,
    상기 제 5 포인터 정보가,
    노드의 토폴로지 정보를 클리어하는 리셋의 발생 전의 수신 패킷의 제 1 데이터와 리셋 발생 후의 수신 패킷의 제 1 데이터의, 상기 제 1 데이터 영역에서의 경계를 특정하는 포인터 정보인 것을 특징으로 하는 데이터 전송 제어 장치.
  10. 버스에 접속된 복수의 노드 사이에서의 데이터 전송을 위한 데이터 전송 제어 장치에 있어서,
    송신 개시 커맨드가 발행된 경우에, 패킷 기억 수단으로부터 패킷을 판독하는 판독 수단과,
    판독된 패킷을 각 노드에 송신하기 위한 서비스를 제공하는 링크 수단과,
    노드의 토폴로지 정보를 클리어하는 리셋의 발생에 의해 패킷의 송신이 중지된 경우에, 리셋의 발생에 의해 패킷 송신이 중지된 것을 알리는 상태 정보를 기억하는 상태 기억 수단을 포함하는 것을 특징으로 하는 데이터 전송 제어 장치.
  11. 제 10 항에 있어서,
    상기 송신 개시 커맨드를 발행하는 처리 수단을 포함하며,
    상기 처리 수단이,
    리셋의 발생에 의해 패킷의 송신이 중지된 것으로 상기 상태 정보에 기초하여 판단한 경우에는, 송신이 완료했는지의 여부를 판단하지 않고, 개시한 송신 처리를 취소하는 것을 특징으로 하는 데이터 전송 제어 장치.
  12. 제 1 항에 있어서,
    상기 리셋이 IEEE 1394 규격에서 정의된 버스 리셋인 것을 특징으로 하는 데이터 전송 제어 장치.
  13. 제 4 항에 있어서,
    상기 리셋이 IEEE 1394 규격에서 정의된 버스 리셋인 것을 특징으로 하는 데이터 전송 제어 장치.
  14. 제 10 항에 있어서,
    상기 리셋이 IEEE 1394 규격에서 정의된 버스 리셋인 것을 특징으로 하는 데이터 전송 제어 장치.
  15. 제 1 항에 있어서,
    IEEE 1394 규격에 준거한 데이터 전송을 행하는 것을 특징으로 하는 데이터 전송 제어 장치.
  16. 제 4 항에 있어서,
    IEEE 1394 규격에 준거한 데이터 전송을 행하는 것을 특징으로 하는 데이터 전송 제어 장치.
  17. 제 10 항에 있어서,
    IEEE 1394 규격에 준거한 데이터 전송을 행하는 것을 특징으로 하는 데이터 전송 제어 장치.
  18. 제 1 항 내지 제 3 항, 제 12 항 및 제 15 항 중 어느 한 항의 데이터 전송 제어 장치와,
    상기 데이터 전송 제어 장치 및 버스를 통해 다른 노드로부터 수신한 데이터에 소정의 처리를 실시하는 장치와,
    처리가 실시된 데이터를 출력 또는 기억하기 위한 장치를 포함하는 것을 특징으로 하는 전자기기.
  19. 제 4 항 내지 제 9 항, 제 13 항 및 제 16 항 중 어느 한 항의 데이터 전송 제어 장치와,
    상기 데이터 전송 제어 장치 및 버스를 통해 다른 노드로부터 수신한 데이터에 소정의 처리를 실시하는 장치와,
    처리가 실시된 데이터를 출력 또는 기억하기 위한 장치를 포함하는 것을 특징으로 하는 전자기기.
  20. 제 10 항, 제 11 항, 제 14 항 및 제 17 항 중 어느 한 항의 데이터 전송 제어 장치와,
    상기 데이터 전송 제어 장치 및 버스를 통해 다른 노드로부터 수신한 데이터에 소정의 처리를 실시하는 장치와,
    처리가 실시된 데이터를 출력 또는 기억하기 위한 장치를 포함하는 것을 특징으로 하는 전자기기.
  21. 제 1 항 내지 제 3 항, 제 12 항 및 제 15 항 중 어느 한 항의 데이터 전송 제어 장치와,
    상기 데이터 전송 제어 장치 및 버스를 통해 다른 노드에 송신하는 데이터에 소정의 처리를 실시하는 장치와,
    처리가 실시되는 데이터를 입력하기 위한 장치를 포함하는 것을 특징으로 하는 전자기기.
  22. 제 4 항 내지 제 9 항, 제 13 항 및 제 16 항 중 어느 한 항의 데이터 전송제어 장치와,
    상기 데이터 전송 제어 장치 및 버스를 통해 다른 노드에 송신하는 데이터에 소정의 처리를 실시하는 장치와,
    처리가 실시되는 데이터를 입력하기 위한 장치를 포함하는 것을 특징으로 하는 전자기기.
  23. 제 10 항, 제 11 항, 제 14 항 및 제 17 항 중 어느 한 항의 데이터 전송 제어 장치와,
    상기 데이터 전송 제어 장치 및 버스를 통해 다른 노드에 송신하는 데이터에 소정의 처리를 실시하는 장치와,
    처리가 실시되는 데이터를 입력하기 위한 장치를 포함하는 것을 특징으로 하는 전자기기.
KR10-2001-7003275A 1999-07-15 2000-07-12 데이터 전송 제어 장치 및 전자기기 KR100397404B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP20124899A JP3539287B2 (ja) 1999-07-15 1999-07-15 データ転送制御装置及び電子機器
JP99-201248 1999-07-15

Publications (2)

Publication Number Publication Date
KR20010075099A KR20010075099A (ko) 2001-08-09
KR100397404B1 true KR100397404B1 (ko) 2003-09-13

Family

ID=16437803

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-7003275A KR100397404B1 (ko) 1999-07-15 2000-07-12 데이터 전송 제어 장치 및 전자기기

Country Status (9)

Country Link
US (1) US6978327B1 (ko)
EP (1) EP1120936B1 (ko)
JP (1) JP3539287B2 (ko)
KR (1) KR100397404B1 (ko)
CN (2) CN100484056C (ko)
AT (1) ATE389990T1 (ko)
DE (1) DE60038359T2 (ko)
TW (1) TW507440B (ko)
WO (1) WO2001006708A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60324149D1 (de) * 2002-07-31 2008-11-27 Thomson Licensing Paketverarbeitungsarchitektur
DE10302363A1 (de) * 2003-01-22 2004-08-05 Deutsche Thomson-Brandt Gmbh Verfahren zum Betreiben eines Netzwerks von Schnittstellenknoten und Schnittstelleneinrichtung
DE10335572A1 (de) * 2003-07-31 2005-03-17 Deutsche Thomson-Brandt Gmbh Netzwerkteilnehmerstation für ein Netzwerk verteilter Stationen und Verfahren zum Betreiben einer Netzwerkteilnehmerstation
DE102005001286A1 (de) * 2005-01-11 2006-07-20 Siemens Ag Verfahren und Vorrichtung zur Übertragung von skalierbaren Daten
JP4577093B2 (ja) * 2005-05-31 2010-11-10 日本ビクター株式会社 被制御装置及び制御装置
US8223796B2 (en) * 2008-06-18 2012-07-17 Ati Technologies Ulc Graphics multi-media IC and method of its operation
US20150100711A1 (en) * 2013-10-07 2015-04-09 Qualcomm Incorporated Low power camera control interface bus and devices
CN110366040B (zh) * 2019-07-26 2023-01-20 Tcl王牌电器(惠州)有限公司 电视出厂复位方法、装置、计算机可读存储介质及系统

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2091093C (en) * 1992-03-06 1999-07-06 Peter C. Di Giulio Event driven communication network
US5457683A (en) * 1993-05-07 1995-10-10 Apple Computer, Inc. Link and discovery protocols for a ring interconnect architecture
US5724517A (en) * 1994-09-27 1998-03-03 International Business Machines Corporation Method for generating a topology map for a serial bus
US5559801A (en) * 1995-01-20 1996-09-24 Advanced Micro Devices Inc. Programmable packet sampling for network management
US5764930A (en) * 1996-04-01 1998-06-09 Apple Computer, Inc. Method and apparatus for providing reset transparency on a reconfigurable bus
JPH09282263A (ja) * 1996-04-12 1997-10-31 Sony Corp 電子機器及びその識別情報構成方法
EP0841776A1 (en) * 1996-11-12 1998-05-13 Sony Corporation Communication methods and electronic apparatus thereof
JP3726417B2 (ja) * 1997-04-15 2005-12-14 ソニー株式会社 電子機器及び電子機器間の通信速度情報作成方法並びに記録媒体
US6219697B1 (en) * 1997-05-02 2001-04-17 3Com Corporation Method and apparatus for operating the internet protocol over a high-speed serial bus
US6347097B1 (en) * 1997-12-05 2002-02-12 Texas Instruments Incorporated Method and apparatus for buffering received data from a serial bus
US6038625A (en) * 1998-01-06 2000-03-14 Sony Corporation Of Japan Method and system for providing a device identification mechanism within a consumer audio/video network
US6895003B1 (en) * 1998-02-24 2005-05-17 Canon Kabushiki Kaisha Communication system, apparatus, and method in which data transmission is interrupted for a bus reset
JP4428750B2 (ja) 1998-03-12 2010-03-10 キヤノン株式会社 データ通信システム
JP4026979B2 (ja) 1998-03-30 2007-12-26 キヤノン株式会社 データ通信システム
JP2000078156A (ja) * 1998-09-01 2000-03-14 Canon Inc システム構成表示装置及びシステム構成表示方法、記録媒体
US6304553B1 (en) * 1998-09-18 2001-10-16 Lsi Logic Corporation Method and apparatus for processing data packets
US6366964B1 (en) * 1998-10-22 2002-04-02 Sony Corporation Method of and apparatus for dynamically enumerating objects representing devices within an IEEE 1394 serial bus networking
JP3543647B2 (ja) 1998-10-27 2004-07-14 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP4109770B2 (ja) 1998-12-02 2008-07-02 キヤノン株式会社 通信制御方法及び機器
US6628607B1 (en) * 1999-07-09 2003-09-30 Apple Computer, Inc. Method and apparatus for loop breaking on a serial bus
JP3608441B2 (ja) 1999-07-15 2005-01-12 セイコーエプソン株式会社 データ転送制御装置及び電子機器

Also Published As

Publication number Publication date
JP3539287B2 (ja) 2004-07-07
US6978327B1 (en) 2005-12-20
EP1120936A1 (en) 2001-08-01
DE60038359D1 (de) 2008-04-30
CN1601981A (zh) 2005-03-30
KR20010075099A (ko) 2001-08-09
JP2001036531A (ja) 2001-02-09
WO2001006708A1 (fr) 2001-01-25
EP1120936B1 (en) 2008-03-19
DE60038359T2 (de) 2009-04-30
CN100484056C (zh) 2009-04-29
ATE389990T1 (de) 2008-04-15
CN1316144A (zh) 2001-10-03
CN1146191C (zh) 2004-04-14
EP1120936A4 (en) 2003-04-02
TW507440B (en) 2002-10-21

Similar Documents

Publication Publication Date Title
KR100294960B1 (ko) 데이타 통신 시스템, 데이타 통신 방법, 및 데이타 통신 장치
US6690648B2 (en) Data communication apparatus, method, and system utilizing reception capability information of a destination node
KR100405250B1 (ko) 데이터 전송 제어 장치 및 전자 기기
KR100381646B1 (ko) 데이터 전송 제어 장치 및 전자 기기
US6519268B1 (en) Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure
JPH1074175A (ja) 受信データパケットへのチャンネル番号割当て方法ならびにdmaチャンネル受信パケット比較器回路
KR100464468B1 (ko) 데이터 전송 제어장치 및 전자기기
JPH1040211A (ja) パケット化されたデータ通信インタフェース機器内での直接メモリアクセス優先順位を割り当てるための方法ならびにdmaチャンネル回路
JP3584789B2 (ja) データ転送制御装置及び電子機器
KR100397404B1 (ko) 데이터 전송 제어 장치 및 전자기기
US6272114B1 (en) Data processing apparatus/method and electronic apparatus with such apparatus/method
US7826492B2 (en) Communication system, cycle master node and communication method
KR100311707B1 (ko) 데이타 통신 시스템, 데이타 통신 방법, 데이타 통신 장치 및 디지탈 인터페이스
JP3494040B2 (ja) データ転送制御装置及び電子機器
JPH10117349A (ja) 通信インタフェースで受信されたパケットデータからの制御情報の抽出方法ならびにビデオデータパケット制御回路
JP3610982B2 (ja) データ転送制御装置及び電子機器
JP3606145B2 (ja) データ転送制御装置及び電子機器
JP3967792B2 (ja) パケット化されたデータ通信インタフェース機器のpciシリアルバスインタフェース機器回路を自律的に動作させるための方法ならびに自律ブート回路
JPH1069456A (ja) パケットデータ通信システム内のdma機械を制御するためのパケット制御リストを形成するための方法ならびにそのフォーマット
JP2004229301A (ja) インターフェースノードのネットワークの動作方法、およびインターフェース装置

Legal Events

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

Payment date: 20110720

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20120802

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee