KR20010075135A - 데이터 전송 제어 장치 및 전자 기기 - Google Patents
데이터 전송 제어 장치 및 전자 기기 Download PDFInfo
- Publication number
- KR20010075135A KR20010075135A KR1020017003367A KR20017003367A KR20010075135A KR 20010075135 A KR20010075135 A KR 20010075135A KR 1020017003367 A KR1020017003367 A KR 1020017003367A KR 20017003367 A KR20017003367 A KR 20017003367A KR 20010075135 A KR20010075135 A KR 20010075135A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- area
- packet
- data transmission
- address
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2801—Broadband local area networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40071—Packet processing; Packet format
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9042—Separate storage for different parts of the packet, e.g. header and payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/323—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the physical layer [OSI layer 1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Systems (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
펌웨어의 처리의 오버헤드를 경감하고, 고속의 데이터 전송을 실현할 수 있는 데이터 전송 제어 장치 및 전자 기기를 제공하는 것이 목적이다. IEEE1394 규격의 데이터 전송 제어 장치에 있어서, 패킷의 헤더를 헤더 영역에, 패킷의 0RB(SBP-2용 데이터)를 0RB 영역에, 패킷의 스트림(애플리케이션층용 데이터)을 스트림 영역에 기입한다. 스트림 영역에서는, 풀신호, 엠티신호에 의해 하드웨어로 영역 관리를 행한다. 요구 패킷의 트랜잭션 라벨(tl)에 지시 정보를 포함시켜서, 응답 패킷의 수신 시에, tl이 포함하는 지시 정보에 의해 지시되는 영역에 패킷의 헤더, ORB, 스트림을 기입한다. 스트림 영역에 송신 영역을 확보하기 위한 어드레스(TS, TE)를 기억하는 레지스터(TSR, TER)나, 수신 영역을 확보하기 위한 어드레스(RS, RE)를 기억하는 레지스터(RSR, RER)를 설치한다.
Description
최근, IEEE1394라고 불리는 인터페이스 규격이 각광을 받고 있다. 이 IEEE1394는, 차세대의 멀티미디어에도 대응 가능한 고속 시리얼 버스 인터페이스를 규격화한 것이다. 이 IEEE1394에 의하면, 동화상 등의 리얼 타임성이 요구되는 데이터도 취급할 수 있다. 또한, IEEE1394의 버스에는, 프린터, 스캐너, CD-RW 드라이브, 하드디스크 드라이브 등의 컴퓨터의 주변기기 뿐만 아니라, 비디오 카메라, VTR, TV 등의 가정용 전화 제품도 접속할 수 있다. 이 때문에, 전자 기기의 디지털화를 비약적으로 촉진할 수 있는 것으로 기대되고 있다.
그러나, 이 IEEE1394에 준거한 데이터 전송 제어 장치에는 다음과 같은 과제가 있는 것이 판명되었다.
즉, 현재의 IEEE1394 규격에 의하면 최대로 400Mbps의 전송 속도가 실현 가능해지고 있다. 그러나, 현실에는, 처리의 오버헤드의 존재에 기인하여, 시스템 전체의 실제 전송 속도보다도 상당히 낮아지고 있다. 요컨대, CPU상에서 동작하는 펌웨어(firmware)나 애플리케이션 소프트웨어가, 송신데이터를 준비하거나, 수신데이터를 받아들이거나 하는 등의 처리에 많은 시간을 요하여, 버스상에서의 전송 속도가 빨라도, 결국, 고속의 데이터 전송을 실현할 수 없다.
특히, 주변기기에 내장되는 CPU는, 퍼스널 컴퓨터 등의 호스트 시스템에 내장되는 CPU와 비교하여 처리 능력이 낮다. 이 때문에, 펌웨어 등의 처리의 오버헤드의 문제는, 대단히 심각해진다. 따라서, 이러한 오버헤드의 문제를 효과적으로 해소할 수 있는 기술이 요구되고 있다.
본 발명은, 데이터 전송 제어 장치 및 이것을 포함하는 전자 기기에 관한 것으로, 특히, 버스에 접속되는 복수의 노드 사이에서 IEEE1394 등의 규격에 준한 데이터 전송을 행하는 데이터 전송 제어 장치 및 이것을 포함하는 전자 기기에 관한 것이다.
도 1은 IEEE1394의 층 구조에 대해서 도시하는 도면.
도 2a 및 도 2b는 트랜잭션층이나 링크층이 제공하는 각종의 서비스에 대해서 설명하기 위한 도면.
도 3은 SBP-2에 대해서 설명하기 위한 도면.
도 4는 본 실시예의 데이터 전송 제어 장치의 구성예를 도시하는 도면.
도 5는 RAM(패킷 기억수단)의 분리(분할)수법에 대해서 설명하기 위한 도면.
도 6은 비교예의 구성에 대해서 도시하는 도면.
도 7은 도 6의 구성에 의한 데이터 전송의 수법에 대해서 설명하기 위한 도면.
도 8은 본 실시예의 데이터 전송의 수법에 대해서 설명하기 위한 도면.
도 9는 데이터 영역을 ORB 영역과 스트림 영역으로 분리하지 않는 수법에 대해서 설명하기 위한 도면.
도 10은 데이터 영역을 ORB 영역과 스트림 영역으로 분리하는 수법에 대해서 설명하기 위한 도면.
도 11은 다른 노드와 애플리케이션층의 디바이스 사이의 스트림 전송의 모양을 도시하는 도면.
도 12는 엠티신호와 풀신호를 이용한 스트림 영역의 관리수법에 대해서 설명하기 위한 도면.
도 13a 및 도 13b는 트랜잭션 라벨에 대해서 설명하기 위한 도면.
도 14는 트랜잭션 라벨을 이용하여, RAM의 각 영역에 패킷의 헤더, 데이터를기입하는 수법에 대해서 설명하기 위한 도면.
도 15는 트랜잭션 라벨을 이용하여, RAM의 각 영역에 패킷의 헤더, 데이터 를 기입하는 처리를 상세하게 설명하기 위한 도면.
도 16은 송신 스트림 영역을 확보하기 위한 어드레스(TS, TE), 수신 스트림 영역을 확보하기 위한 어드레스(RS, RE)를 기억하는 레지스터(TSR, TER, RSR, RER)를 설치하는 수법에 대해서 설명하기 위한 도면.
도 17a 내지 도 17d는 영역 확보의 여러가지의 모드에 대해서 설명하기 위한 도면.
도 18은 비교예의 영역 확보의 수법에 대해서 설명하기 위한 도면.
도 19는 수신측의 상세한 구성에 대해서 도시하는 도면.
도 20a는 IEEE1394 규격의, 비동기로 블록 데이터를 갖는 패킷의 포맷이고,
도 20b는 RAM에 저장되는, 비동기 수신으로 블록 데이터를 갖는 패킷의 헤더부분의 포맷.
도 21은 TAG에 대해서 설명하기 위한 도면.
도 22는 DMAC, 레지스터, RAM 영역 관리 회로의 상세한 구성에 대해서 도시하는 도면.
도 23은 각종의 포인터 레지스터에 대해서 설명하기 위한 도면.
도 24a 내지 도 24c는 여러가지의 전자 기기의 내부 블록도의 예.
도 25a 내지 도 25c는 여러가지의 전자 기기의 외관도의 예.
본 발명은, 이상과 같은 기술적 과제에 비추어 이루어진 것이며, 그 목적으로 하는 바는, 펌웨어 등의 처리의 오버헤드를 경감하고, 소규모의 하드웨어로 고속의 데이터 전송을 실현할 수 있는 데이터 전송 제어 장치 및 이것이 사용되는 전자 기기를 제공하는 것에 있다.
상기 과제를 해결하기 위해서 본 발명은, 버스에 접속되는 복수의 노드 사이에서의 데이터 전송을 위한 데이터 전송 제어 장치로, 노드 사이에서의 패킷 전송을 위한 서비스를 제공하는 링크수단과, 상기 링크수단을 통해서 수신한 패킷을, 랜덤 액세스 가능한 패킷 기억수단에 기입하는 기입수단과, 패킷의 제어 정보를 상기 패킷 기억수단의 제어 정보 영역에 기입하고, 패킷의 제 1 층(예를 들면 트랜잭션층)용의 제 1 데이터를, 상기 패킷 기억수단의 제 1 데이터 영역에 기입하며, 패킷의 상기 제 1 층의 상층인 제 2 층(예를 들면 애플리케이션층)용의 제 2 데이터를 상기 패킷 기억수단의 제 2 데이터 영역에 기입하는 패킷 분리수단을 포함하는 것을 특징으로 한다.
본 발명에 의하면, 패킷의 제어 정보(예를 들면 헤더, 푸터)는 제어 정보 영역에 기입되고, 패킷의 제 1 데이터(예를 들면 트랜잭션층용의 데이터)는 제 1 데이터 영역에 기입되며, 패킷의 제 2 데이터(예를 들면 애플리케이션층용의 데이터)는 제 2 데이터 영역에 기입된다. 이와 같이 하면, 제 2 데이터 영역으로부터 제 2 데이터를 연속하여 판독하여, 제 2 층으로 전송할 수 있게 된다. 이에 의해, 데이터 전송을 비약적으로 고속화할 수 있다.
또한 본 발명에서는, 상기 제 1 데이터가 상기 제 1 층의 프로토콜에서 사용되는 커맨드 데이터이고, 상기 제 2 데이터가 애플리케이션층에서 사용되는 데이터인 것이 바람직하다.
또한 본 발명은, 상기 제 2 데이터 영역이 풀(full)인 경우에는, 상기 기입수단에 의한 상기 제 2 데이터 영역으로의 상기 제 2 데이터의 기입을 금지하기 위해서 풀신호를 액티브하게 하고, 상기 제 2 데이터 영역이 엠티(empty)인 경우에는, 상기 제 2 층에 의한 상기 제 2 데이터 영역으로부터의 상기 제 2 데이터의 판독을 금지하기 위해서 엠티신호를 액티브하게 하는 영역 관리수단을 포함하는 것을 특징으로 한다. 이와 같이 하면, 영역 관리수단에 의한 관리만으로, 제 2 데이터 영역으로의 제 2 데이터의 기입 처리나, 제 2 데이터로부터의 제 2 데이터의 판독 처리를 제어할 수 있게 되어, 데이터 전송의 자동화, 더욱이 고속화를 도모할 수있다.
또한 본 발명은, 트랜잭션을 개시시키는 요구 패킷을 응답 노드에 대하여 송신할 때에, 상기 요구 패킷에 포함되는 트랜잭션 식별정보 중에, 응답 노드로부터 응답 패킷을 수신하였을 때에 행하는 처리를 지시하기 위한 지시정보를 포함시키고, 응답 노드로부터 응답 패킷을 수신한 경우에, 응답 패킷의 트랜잭션 식별정보가 포함하는 상기 지시정보에 의해서 지시되는 영역에, 응답 패킷의 상기 제어 정보, 상기 제 1, 제 2 데이터를 기입하는 것을 특징으로 한다. 이와 같이 하면, 응답 노드로부터 응답 패킷이 회신되어 왔을 때에, 펌웨어 등이 관여하지 않고, 지시정보에 의해 지시되는 영역에 응답 패킷의 제어 정보, 제 1, 제 2 데이터가 자동적으로 기입되게 된다. 따라서, 펌웨어 등의 처리 부담을 각별히 경감할 수 있다.
또한 본 발명은, 버스에 접속되는 복수의 노드 사이에서의 데이터 전송을 위한 데이터 전송 제어 장치이며, 트랜잭션을 개시시키는 요구 패킷을 응답 노드에 대하여 송신할 때에, 상기 요구 패킷에 포함되는 트랜잭션 식별정보 중에, 응답 노드로부터 응답 패킷을 수신하였을 때에 행하는 처리를 지시하기 위한 지시정보를 포함시키는 수단과, 응답 노드로부터 응답 패킷을 수신한 경우에, 응답 패킷의 트랜잭션 식별정보가 포함하는 상기 지시정보에 의해 지시되는 처리를 행하는 수단을 포함하는 것을 특징으로 한다.
본 발명에 의하면, 응답 노드로부터 응답 패킷이 회신되어 왔을 때에, 트랜잭션 식별정보(예를 들면 트랜잭션 라벨)에 포함시킨 지시정보에 따른 처리가 행하여지게 된다. 따라서, 응답 패킷의 회신시에 행하여지는 처리를 자동화할 수 있게되어, 펌웨어 등의 처리 부담을 경감할 수 있는 동시에, 데이터 전송의 고속화를 도모할 수 있다.
또한 본 발명은, 응답 노드로부터 응답 패킷을 수신한 경우에, 응답 패킷의 트랜잭션 식별정보가 포함하는 상기 지시정보에 의해 지시되는 영역에, 상기 응답 패킷의 제어 정보, 데이터를 기입하는 것을 특징으로 한다. 또한, 응답 패킷이 회신되어 왔을 때에 행하는 처리는, 이러한 지시 영역으로의 기입 처리에 한정되지 않는다.
또한 본 발명은, 상기 트랜잭션 식별정보가 주어진 비트가, 상기 지시정보를 나타내는 비트로서 미리 예약되는 것을 특징으로 한다. 이와 같이 하면, 요구 패킷의 트랜잭션 식별정보에 지시정보를 포함시키는 처리나, 응답 패킷의 트랜잭션 식별정보에 근거하여 지시정보를 판별하는 처리를 간단하고 부하가 낮은 처리로 하는 것이 가능해진다.
또한, 상기 트랜잭션 식별정보는, IEEE1394의 규격에 있어서의 트랜잭션 라벨인 것이 바람직하다.
또한 본 발명은, 버스에 접속되는 복수의 노드 사이에서의 데이터 전송을 위한 데이터 전송 제어 장치이며, 노드 사이에서의 패킷 전송을 위한 서비스를 제공하는 링크수단과, 패킷을 저장하기 위한 랜덤 액세스 가능한 패킷 기억수단과, 상기 링크수단을 통해서 각 노드로부터 전송되어 오는 패킷을 상기 패킷 기억수단에 기입하는 기입수단과, 상기 패킷 기억수단에 기입된 패킷을 판독하여, 상기 링크수단에 건네 주는 판독수단을 포함하고, 상기 패킷 기억수단이, 패킷의 제어 정보가저장되는 제어 정보 영역과, 패킷의 데이터가 저장되는 데이터 영역으로 분리되고, 상기 데이터 영역이, 제 1 층용의 제 1 데이터가 저장되는 제 1의 데이터 영역과, 상기 제 1 층의 상층인 제 2 층용의 제 2 데이터가 저장되는 제 2 데이터 영역으로 분리되어 있는 것을 특징으로 한다.
본 발명에 의하면, 패킷 기억수단이, 제어 정보 영역, 제 1 데이터 영역, 제 2 데이터 영역으로 분리되기 때문에, 제 2 데이터 영역으로부터 제 2 데이터를 연속하여 판독하거나, 제 2 데이터 영역에 제 2 데이터를 연속하여 기입할 수 있게 된다. 이에 의해, 데이터 전송을 비약적으로 고속화할 수 있다.
또한 본 발명은, 상기 제 2 데이터 영역에 송신 영역을 확보하기 위한 송신 영역 어드레스를 기억하는 제 1 어드레스 기억수단과, 상기 제 2 데이터 영역에 송신 영역을 확보하기 위한 송신 영역 엔드(end) 어드레스를 기억하는 제 2 어드레스 기억수단과, 상기 제 2 데이터 영역에 수신 영역을 확보하기 위한 수신 영역 스타트 어드레스를 기억하는 제 3 어드레스 기억수단과, 상기 제 2 데이터 영역에 수신 영역을 확보하기 위한 수신 영역 엔드 어드레스를 기억하는 제 4 어드레스 기억수단을 포함하는 것을 특징으로 한다. 이와 같이 하면, 제 2 층(예를 들면 애플리케이션층)의 디바이스의 특성에 따라서, 제 2 데이터 영역을, 예를 들면, 송신 전용 영역으로서 이용하거나, 수신 전용 영역으로서 이용하거나, 송신 및 수신의 공용 영역으로서 이용하거나 할 수 있게 된다.
또한 본 발명은, 상기 송신 영역 스타트 어드레스 및 상기 수신 영역 스타트 어드레스가, 상기 제 2 데이터 영역의 스타트 어드레스에 설정되고, 상기 송신 영역 엔드 어드레스 및 상기 수신 영역 엔드 어드레스가, 상기 제 2 데이터 영역의 엔드 어드레스에 설정되는 것을 특징으로 한다. 이와 같이 하면, 제 2 데이터 영역을 송신 및 수신의 공용 영역으로서 이용할 수 있게 된다. 따라서, 다른 노드로부터 자노드로의 방향 및 자노드로부터 다른 노드로의 방향의 쌍방향으로 데이터가 전송되는 제 2 층의 디바이스에, 최적의 데이터 전송 제어 장치를 제공할 수 있다. 더욱이, 송신시에 있어서도, 수신시에 있어서도, 제 2 데이터 영역의 기억 용량을 최대한으로 이용할 수 있게 되어, 많은 데이터를 제 2 데이터 영역에 기억시키는 것이 가능해진다.
또한 본 발명은, 상기 송신 영역 스타트 어드레스 및 상기 송신 영역 엔드 어드레스의 쌍방이, 상기 제 2 데이터 영역의 스타트 어드레스 또는 엔드 어드레스의 어느 한 쪽에 설정되고, 상기 수신 영역 스타트 어드레스가 상기 제 2 데이터 영역의 스타트 어드레스에 설정되며, 상기 수신 영역 엔드 어드레스가 상기 제 2 데이터 영역의 엔드 어드레스에 설정되는 것을 특징으로 한다. 이와 같이 하면, 제 2 데이터 영역을 수신 전용 영역으로서 이용할 수 있게 된다. 이에 의해, 다른 노드로부터 자노드로의 방향으로밖에 큰 데이터가 흐르지 않는 제 2 층의 디바이스에, 최적의 데이터 전송 제어 장치를 제공할 수 있다.
또한 본 발명은, 상기 수신 영역 스타트 어드레스 및 상기 수신 영역 엔드 어드레스의 쌍방이, 상기 제 2 데이터 영역의 스타트 어드레스 또는 엔드 어드레스의 어느 한 쪽에 설정되고, 상기 송신 영역 스타트 어드레스가 상기 제 2 데이터 영역의 스타트 어드레스에 설정되며, 상기 송신 영역 엔드 어드레스가 상기 제 2데이터 영역의 엔드 어드레스에 설정되는 것을 특징으로 한다. 이와 같이 하면, 제 2 데이터 영역을 송신 전용 영역으로서 이용할 수 있게 된다. 이에 의해, 자노드로부터 다른 노드로의 방향으로밖에 큰 데이터가 흐르지 않는 제 2 층의 디바이스에, 최적의 데이터 전송 제어 장치를 제공할 수 있다.
또한, 본 발명에서는, IEEE1394의 규격에 준거한 데이터 전송을 행하는 것이 바람직하다.
또한 본 발명에 따른 전자 기기는, 상기의 어느 하나의 데이터 전송 제어 장치와, 상기 데이터 전송 제어 장치 및 버스를 통해서 다른 노드로부터 수신한 데이터에 주어진 처리를 실시하는 장치와, 처리가 실시된 데이터를 출력 또는 기억하기 위한 장치를 포함하는 것을 특징으로 한다. 또한 본 발명에 따른 전자 기기는, 상기의 어느 하나의 데이터 전송 제어 장치와, 상기 데이터 전송 제어 장치 및 버스를 통해서 다른 노드로 송신하는 데이터에 주어진 처리를 실시하는 장치와, 처리가 실시되는 데이터를 받아들이기 위한 장치를 포함하는 것을 특징으로 한다.
본 발명에 의하면, 다른 노드로부터 전송된 데이터를 전자 기기에 있어서 출력하거나 기억하거나 하는 처리, 전자 기기에 있어서 받아들인 데이터를 다른 노드로 전송하거나 하는 처리를 고속화하는 것이 가능해진다. 또한, 본 발명에 의하면, 데이터 전송 제어 장치를 소규모화 할 수 있는 동시에, 데이터 전송을 제어하는 펌웨어 등의 처리 부담을 경감할 수 있기 때문에, 전자 기기의 저 비용화, 소규모화 등을 도모하는 것도 가능해진다.
이하, 본 발명의 적합한 실시예에 대해서 도면을 이용하여 상세하게 설명한다.
1. IEEE1394
우선, IEEE1394에 대해서 간단하게 설명한다.
1.1 개요
IEEE1394(IEEE1394-1995, P1394.a)에서는 100 내지 400Mbps의 고속의 데이터 전송이 가능해지고 있다(P1394.b에서는 800 내지 3200Mbps). 또한, 전송 속도가 다른 노드를 버스에 접속하는 것도 허락된다.
각 노드는 트리(tree)형으로 접속되어 있어, 하나의 버스에 최대로 63개의 노드가 접속 가능하게 되어 있다. 또한, 버스 브리지를 이용하면 약 64000개의 노드를 접속하는 것도 가능하다.
IEEE1394에서는, 패킷의 전송방식으로서 비동기 전송과 아이소크로너스 전송이 준비되어 있다. 여기서 비동기 전송은, 신뢰성이 요구되는 데이터의 전송에 적합한 전송방식이고, 아이소크로너스 전송은, 리얼 타임성이 요구되는 동화상이나 음성 등의 데이터의 전송에 적합한 전송방식이다.
1.2 층 구조
IEEE1394의 층 구조(프로토콜 구성)를 도 1에 도시한다.
IEEE1394의 프로토콜, 트랜잭션층, 링크층, 물리층에 의해 구성된다. 또한, 시리얼 버스 매니지먼트는, 트랜잭션층, 링크, 물리층을 모니터하거나 제어하거나 하는 것이며, 노드의 제어나 버스의 리소스 관리를 위한 여러가지의 기능을 제공한다.
트랜잭션층은, 상위층에 트랜잭션 단위의 인터페이스(서비스)를 제공하고, 하층의 링크층이 제공하는 인터페이스를 통해서, 판독 트랜잭션, 기입 트랜잭션, 로크 트랜잭션 등의 트랜잭션을 실시한다.
여기서, 판독 트랜잭션에서는, 응답 노드로부터 요구 노드로 데이터가 전송된다. 한편, 기입 트랜잭션에서는, 요구 노드로부터 응답 노드로 데이터가 전송된다. 또한 로크 트랜잭션에서는, 요구 노드로부터 응답 노드로 데이터가 전송되고, 응답 노드가 그 데이터에 처리를 실시하여 요구 노드에 회신한다.
트랜잭션층의 서비스는, 도 2a에 도시한 바와 같이 요구, 표시, 응답, 확인이라는 4개의 서비스에 의해 구성된다.
여기서, 트랜잭션 요구는, 요구측이 트랜잭션을 개시시키는 서비스이고, 트랜잭션 표시는, 요구가 도달한 것을 응답측에 통지하는 서비스이다. 또한, 트랜잭션 응답은, 응답측의 상태나 데이터를 요구측으로 돌려 보내는 서비스이고, 트랜잭션 확인은, 응답측으로부터의 응답이 온 것을 요구측에 통지하는 서비스이다.
링크층은, 어드레싱, 데이터 체크, 패킷 송수신을 위한 데이터 플레이밍, 아이소크로너스 전송을 위한 사이클 제어 등을 제공한다.
링크층의 서비스는, 트랜잭션층과 마찬가지로, 도 2b에 도시한 바와 같이 요구, 표시, 응답, 확인의 4개의 서비스에 의해 구성된다.
여기서, 링크 요구는, 패킷을 응답측으로 전송하는 서비스이고, 링크 표시는, 응답측에 의한 패킷의 수신 서비스이다. 또한, 링크 응답은, 응답측에 의한애크놀리지먼트의 전송 서비스이고, 링크 확인은, 요구측에 의한 애크놀리지먼트의 수신 서비스이다.
물리층은, 링크층에 의해 사용되는 로지컬 심벌의 전기 신호로의 변환이나, 버스의 조정이나, 버스의 물리적 인터페이스를 제공한다.
물리층 및 링크층은, 통상 데이터 전송 제어 장치(인터페이스 칩) 등의 하드웨어에 의해 실현된다. 또한, 트랜잭션층은, CPU 상에서 동작하는 펌웨어(처리수단)나, 하드웨어에 의해 실현된다.
또한, 도 3에 도시한 바와 같이, IEEE1394의 트랜잭션층의 일부의 기능을 포함하는 상위의 프로토콜로서, SBP2(시리얼 버스 프로토콜-2)라고 불리는 프로토콜이 제안되고 있다.
여기서 SBP-2는, SCSI의 커맨드 세트를 IEEE1394의 프로토콜상에서 이용 가능하게 하기 위해서 제안된 것이다. 이 SBP-2를 사용하면, 기존의 SCSI 규격의 전자 기기에서 사용되고 있던 SCSI의 커맨드 세트에 최소한의 변경을 가하여, IEEE1394 규격의 전자 기기에 사용할 수 있게 된다. 따라서, 전자 기기의 설계나 개발을 용이화할 수 있다. 또한, SCSI의 커맨드 뿐만 아니라, 디바이스 고유의 커맨드도 캡슐화하여 이용할 수 있기 때문에, 대단히 범용성이 높다.
이 SBP-2에서는, 우선, 이니시에이터(퍼스널 컴퓨터 등)가 로그인이나 페치·에이전트의 초기화를 위한 ORB(0peration Request Block)를 작성하여, 타겟(프린터, CD-RW 드라이브 등)에 보낸다. 다음에, 이니시에이터는 커맨드(판독 커맨드, 기입 커맨드)를 포함하는 ORB(커맨드 블록 ORB)를 작성하고, 그 작성한 ORB의 어드레스를 타겟에 알린다. 그리고, 타겟은, 그 어드레스를 페치함으로써, 이니시에이터가 작성한 ORB를 취득한다. ORB에 포함되는 커맨드가 판독 커맨드인 경우에는, 타겟은, 블록 라이트 트랜잭션을 발행하여, 이니시에이터의 데이터 버퍼(메모리)에 타겟의 데이터를 송신한다. 한편, ORB에 포함되는 커맨드가 기입 커맨드인 경우에는, 타겟은, 블록 판독 트랜잭션을 발행하여, 이니시에이터의 데이터 버퍼로부터 데이터를 수신한다.
이 SBP-2에 의하면, 타겟은, 자신의 형편이 좋을 때에 트랜잭션을 발행하여, 데이터를 송수신할 수 있다. 따라서, 이니시에이터와 타겟이 동기하여 동작할 필요가 없어지기 때문에, 데이터 전송 효율을 높일 수 있다.
또한, IEEE1394의 상위 프로토콜로서는, SBP-2 이외에도, FCP(Function Control Protocol)라고 불리는 프로토콜 등도 제안되고 있다.
2. 전체 구성
다음에, 본 실시예의 데이터 전송 제어 장치의 전체 구성의 예에 대해서 도 4를 이용하여 설명한다.
도 4에 있어서, PHY 인터페이스(10)는, PHY 디바이스(물리층의 디바이스)와의 인터페이스를 행하는 회로이다.
링크 코어(20; 링크수단)는, 링크층의 프로토콜이나 트랜잭션층의 프로토콜의 일부를 하드웨어에 의해 실현하는 회로이며, 노드 사이에서의 패킷 전송을 위한 각종 서비스를 제공한다. 레지스터(22)는, 이들의 프로토콜을 실현한 링크 코어(20)를 제어하기 위한 레지스터이다.
FIF0(30; ATF), FIF0(32; ITF), FIF0(34; RF)는, 각각, 비동기 송신용, 아이소크로너스 송신용, 수신용의 FIF0로, 예를 들면 레지스터나 반도체 메모리 등의 하드웨어에 의해 구성된다. 본 실시예에서는, 이들의 FIF0(30, 32, 34)의 단수(段數)는 대단히 적다. 예를 들면 하나의 FIF0의 단수는, 바람직하게는 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비트의 데이터 전송이 가능하게 되어 있다.
FIF0(PF; 52)는, 애플리케이션층의 디바이스와의 사이에서의 데이터 전송을 위한 FIF0이고, DMAC(54)는, PF용의 DMA 컨트롤러이다. 레지스터(56)는, 포트 인터페이스(50)나 DMAC(54)를 제어하는 레지스터이다.
SBP-2 코어(84)는, SBP-2의 프로토콜의 일부를 하드웨어에 의해 실현하는 회로이다. 레지스터(88)는, SBP-2 코어(84)를 제어하기 위한 레지스터이다. DMAC(86; SBP-2용)는, 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의 판독·기입데이터, 스캐너에 의한 취입 화상데이터 등)이다.
또한, AR(1), AR(2), AR(3)에 도시하는 HW(하드웨어)용 페이지 테이블 영역, HW용 수신 헤더 영역, HW용 송신 헤더 영역은, 도 4에 도시하는 SBP-2 코어(84; SBP-2를 하드웨어에 의해 실현하는 회로)가, 페이지 테이블이나 수신 헤더나 송신 헤더를 기입하거나 판독하거나 하기 위한 영역이다.
또한, 도 5에 있어서 AR(4), AR(5), AR(8), AR(9)에 도시하는 영역은, 이른바 링 버퍼 구조로 되어 있다.
그런데, 도 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, 100)와, 이들의 버스를 RAM(80)의 버스(110)에 접속하기 위한 조정 회로(74)를 설치한 점에 있다.
예를 들면 도 6에, 본 실시예와 구성이 다른 데이터 전송 제어 장치의 예를 도시한다. 이 데이터 전송 제어 장치에서는, 링크 코어(902)는, PHY 인터페이스(900), 버스(922)를 통해서 PHY 디바이스와 접속된다. 또한, 링크 코어(902)는, FIF0(904, 906, 908), CPU 인터페이스(910), 버스(920)를 통해서 CPU(912)에 접속된다. 그리고, CPU(912)는, 버스(24)를 통해서, 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)의 데이터에 헤더를 부가함으로써 IEEE1394에 준거한 패킷을 생성한다. 그리고 생성된 패킷은, 데이터 전송 제어 장치(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 데이터 영역의 분리(ORB 영역과 스트림 영역으로의 분리)
본 실시예의 제 1 특징은, 도 4의 RAM(80)을, 도 5에 도시하는 바와 같이 헤더 영역(AR2, AR3, AR4, AR6)과 데이터 영역(AR5, AR7, AR8, AR9)으로 분리하는 동시에, 데이터 영역을, ORB 영역(AR5, AR7)과 스트림 영역(AR8, AR9)으로 분리하고 있는 점에 있다.
즉, RAM을 헤더 영역과 데이터 영역으로 분리함으로써, 펌웨어는, 헤더 영역으로부터 헤더를 연속하여 판독하거나, 헤더 영역에 헤더를 연속하여 기입할 수 있게 된다. 따라서, 펌웨어의 처리 부담을 어느 정도 경감할 수 있다는 이점이 있다. 그러나, 데이터 전송의 거듭되는 고속화라는 관점에서는, 헤더 영역과 데이터 영역의 분리만으로는 불충분한 것이 판명되었다.
예를 들면 도 9에서는, 수신 패킷이 헤더와 데이터로 분리되어, 헤더(1, 2, 3)가 헤더 영역에 기입되고, 데이터(1, 2, 3)가 데이터 영역에 기입되어 있다.
여기서, 데이터에는, 상술한 바와 같이, SBP-2(제 1 층)용의 0RB(제 1 데이터)와, 상층인 애플리케이션층(제 2 층)용의 스트림이 있다. 따라서, RAM을 헤더 영역과 데이터 영역으로 분리한 것 만으로는, 도 9의 D1, D2, D3에 도시하는 바와같이, 데이터 영역에서 ORB와 스트림이 혼재되게 된다.
이 때문에, 예를 들면, RAM으로부터 애플리케이션층의 디바이스에 스트림을 전송하는 경우에는, 다음과 같은 처리가 필요하게 된다. 즉, 우선, 판독 어드레스(데이터 포인터)를 D4의 위치에 설정하여 스트림(11, 12, 13)을 판독하고, 다음에, 판독 어드레스를 D5의 위치에 설정하여 스트림(21, 22, 23)을 판독한다. 그 후, 판독 어드레스를 D6의 위치에 설정하여 스트림(31, 32, 33)을 판독한다.
이와 같이, RAM을 단지 헤더 영역과 데이터 영역으로 분리한 것만으로는, 애플리케이션층의 디바이스로 스트림을 전송할 때에, 펌웨어에 의한 판독 어드레스의 제어 등이 필요하게 되어서, 펌웨어의 처리 부담을 그다지 경감할 수 없다. 또한, 데이터 영역으로부터 연속하여 스트림을 판독할 수 없기 때문에, 데이터 전송 제어 장치의 실제 전송 속도를 그다지 향상할 수 없다.
한편, 도 10에서는, 데이터 영역을 ORB 영역과 스트림 영역으로 분리하고 있다. 이와 같이 하면, 펌웨어(트랜잭션층)는, ORB 영역으로부터 ORB(1, 2, 3)를 연속하여 판독할 수 있다. 또한, 펌웨어를 개재시키지 않고, 스트림(11 내지 33)을 RAM의 스트림 영역으로부터 연속하여 판독하고, 애플리케이션층의 디바이스로 전송할 수 있게 된다. 즉, 도 11에 도시하는 바와 같이, 다른 노드(123; 예를 들면 퍼스널 컴퓨터)와 애플리케이션층의 디바이스(예를 들면 프린터의 인자 처리를 행하는 디바이스) 사이에서, 펌웨어(CPU; 66)의 개재 없이, 스트림(예를 들면 인자데이터)을 고속으로 전송할 수 있게 된다. 이 결과, 도 9와 비교하여, 펌웨어의 처리 부담을 각별히 경감할 수 있는 동시에, 데이터 전송을 비약적으로 고속화할 수 있게 된다.
또한, 도 10에서는, 본 실시예의 데이터 전송 제어 장치(120)가 스트림을 수신하는 경우(방향 DR(1)로 도시한 바와 같이 다른 노드(123)로부터 애플리케이션층의 디바이스(124)에 스트림을 전송하는 경우)에 대해서 도시하고 있다. 그러나, 데이터 전송 제어 장치(120)가 스트림을 송신하는 경우 방향 DR(2)로 도시한 바와 같이 애플리케이션층의 디바이스(124)로부터 다른 노드(123)로 스트림을 전송하는 경우)에 있어서도, 데이터 영역을 송신 ORB 영역(도 5의 AR7)과 송신 스트림 영역(AR8)으로 분리함으로써, 데이터 전송의 고속화를 도모할 수 있다.
그런데, 데이터 영역을 ORB 영역과 스트림 영역으로 분리하면, 다음과 같은 효과도 얻을 수 있다.
예를 들면 도 12에서는, RAM 영역 관리 회로(300)가 스트림 영역의 관리를 행하고 있다. 보다 구체적으로는, 스트림 영역에 많은 스트림이 기입되어서, 스트림 영역이 풀이 되면, RAM 영역 관리 회로(300)는, 신호 STRMFULL을 액티브하게 한다. 그렇게 하면, 이 STRMFULL을 받은 DMAC(44; 기입수단)는, RAM으로의 기입 요구(WREQ)를 액티브하게 하지 않도록 한다. 이에 의해, 스트림 영역에 스트림이 기입되지 않게 된다.
한편, 스트림 영역으로부터 많은 스트림이 판독되어서, 스트림 영역이 엠티가되면, RAM 영역 관리 회로(300)는, 신호 STRMEMPTY를 액티브하게 한다. 이렇게 하면, 이 STRMEMPTY를 받은 DMAC(54; 판독수단)는, RAM으로의 판독 요구(RREQ)를 액티브하지 않도록 한다. 이에 의해, 스트림 영역으로부터 스트림이 판독되지 않게 된다(애플리케이션층의 디바이스에 스트림이 전송되지 않게 된다).
이상과 같이, 데이터 영역을 ORB 영역과 스트림 영역으로 분리하면, 스트림 영역이 풀이 되면 스트림 영역으로의 기입을 금지하고, 엠티이면 판독을 금지하는 간단한 제어를 행하는 것만으로 완료되게 된다. 따라서, 펌웨어를 개재시키지 않고서 데이터 전송을 제어할 수 있게 된다. 이 결과, 펌웨어의 처리 부담을 경감할 수 있다. 또한, 처리 능력이 낮은 펌웨어가 관여하지 않고, 하드웨어에 의해 데이터 전송이 제어되기 때문에, 데이터 전송을 각별히 고속화할 수 있게 된다.
3.2 트랜잭션 라벨을 이용한 기입 영역의 전환
IEEE1394에 있어서는, 각 트랜잭션을 식별하기 위한 정보로서, 트랜잭션 라벨(tl)이라고 불리는 것이 사용된다.
즉, 트랜잭션의 요구 노드는, 요구 패킷 중에 트랜잭션 라벨(tl)을 포함시켜서, 응답 노드로 송신한다. 그리고, 이 요구 패킷을 수신한 응답 노드는, 응답 패킷 중에, 상기와 동일한 tl을 포함시켜서, 요구 노드로 회신한다. 요구 노드는, 회신된 응답 패킷에 포함되는 tl을 조사함으로써, 그 응답 패킷이, 자신이 요구한 트랜잭션에 대응하는 응답인 것을 확인할 수 있게 된다.
트랜잭션 라벨(tl)은, 응답 노드와의 관계에 있어서 유니크하면 충분하다. 보다 구체적으로는, 예를 들면 요구 노드(L)가 응답 노드(M)에 대하여 tl=N의 트랜잭션을 발행한 경우에는, 그 트랜잭션이 미 완료인 동안은, 요구 노드(L)는 응답 노드(M)에 대하여, tl=N이 붙여진 다른 트랜잭션을 발행할 수 없다. 즉, 각 트랜잭션은, 트랜잭션 라벨(tl)과 소스 ID와 디스티네이션 ID에 의해 유니크하게 특정되게 된다. 반대로 말하면, 트랜잭션 라벨(tl)은, 상기의 제약이 지켜지고 있는 한, 어떠한 값을 사용할 수도 있어, 다른 노드는, 어떠한 tl이나 받아 들이지 않으면 안된다.
그런데, 요구 노드가 요구 패킷을 송신하고, 응답 패킷의 회신을 기다리는 경우, 응답 패킷이 회신되어 왔을 때에 행하는 처리가, 이미 결정되어 있는 경우가 있다. 그래서, 본 실시예는, 상기와 같은 트랜잭션 라벨(tl)의 성질에 착안하여, 다음과 같은 수법을 채용하고 있다.
즉, 도 13a에 도시한 바와 같이, 트랜잭션을 개시시키는 요구 패킷을 응답 노드에 대하여 송신할 때에, 요구 패킷에 포함되는 트랜잭션 라벨(tl; 광의로는 트랜잭션 식별정보) 중에, 응답 패킷의 회신시에 행해야 하는 처리를 지시하는 지시 정보를 포함시킨다. 그리고, 응답 노드로부터 응답 패킷을 수신하였을 때에, tl에 포함되는 지시정보에 따른 처리를 실행하도록 한다.
이와 같이 하면, 응답 패킷이 반송되어 왔을 때에, 펌웨어가 관여하지 않고 tl에 포함되는 지시정보에 따른 처리를 하드웨어에 의해 실행할 수 있게 된다. 이에 의해, 펌웨어의 처리 부담을 경감할 수 있는 동시에, 데이터 전송의 고속화를 도모할 수 있게 된다.
보다 구체적으로는, 본 실시예에서는, 응답 노드로부터 응답 패킷을 수신한 경우에, tl에 포함되는 지시정보에 의해 지시되는 영역에, 그 응답 패킷을 저장하도록 하고 있다.
즉 도 13b에 도시한 바와 같이, 트랜잭션 라벨(tl)의 비트(5, 4)를, 지시 정보를 나타내는 비트로서 미리 예약하여 둔다.
그리고, 회신되어 온 응답 패킷을 HW(하드웨어)용 영역에 기입하는 경우에는, 요구 패킷의 tl의 비트(5)를 1로 세트하여, 응답 노드로 송신한다. 한편, 회신되어 온 응답 패킷을 FW(펌웨어)용 영역에 기입하는 경우에는, 요구 패킷의 tl의 비트(5)를 0으로 세트하여, 응답 노드로 송신한다.
또한, 회신되어 온 응답 패킷을 스트림 영역에 기입하는 경우에는, 요구 패킷의 tl의 비트(4)를 1로 세트하여, 응답 노드로 송신한다. 한편, 회신되어 온 응답 패킷을 ORB 영역에 기입하는 경우에는, 요구 패킷의 tl의 비트(4)를 0으로 세트하여, 응답 노드로 송신한다.
이와 같이 하면, 응답 패킷이 회신되어 왔을 때에, 도 14에 도시한 바와 같이 응답 패킷의 헤더, 데이터가 RAM의 각 영역에 기입되게 된다.
즉, tl=1×××××(×는, 돈트·케어라는 의미)인 경우에는, 응답 패킷의 헤더는, HW용 수신 헤더 영역에 기입되고, tl=0×××××인 경우에는, FW용 수신 헤더 영역에 기입된다.
또한, tl=11××××인 경우에는, 응답 패킷의 데이터는, HW용 수신 스트림 영역에 기입되고, tl=10××××인 경우에는, HW용 수신 ORB 영역에 기입된다. 또한 tl=01××××인 경우에는, 응답 패킷의 데이터는, FW용 수신 스트림 영역에 기입되고, tl=00××××인 경우에는, FW용 수신 ORB 영역에 기입된다.
이와 같이 함으로써, 펌웨어를 개재시키지 않고, 응답 패킷의 헤더, 데이터를, 하드웨어(회로)에 의해 RAM의 각 영역에 자동적으로 기입할 수 있게 된다. 그리고, RAM에 응답 패킷을 기입하는 처리를 행하는 하드웨어의 구성도 간소화할 수 있어, 데이터 전송 제어 장치의 소규모화를 도모할 수 있다.
또한, 도면 10에서 설명한 바와 같이, 패킷의 헤더를 헤더 영역에, ORB를 ORB 영역에, 스트림을 스트림 영역에 기입할 수 있게 되기 때문에, 펌웨어의 처리 부담의 경감화, 데이터 전송의 고속화도 도모할 수 있게 된다.
도 15에, tl에 근거하여 RAM의 각 영역에 패킷의 헤더, 데이터를 기입하는 처리의 상세한 예를 도시한다.
우선, 수신 패킷의 최초의 쿼드렛에 포함되는 디스티네이션 ID가, 자노드의 ID와 일치하는지의 여부를 판단한다(스텝S1). 그리고, 자노드 앞으로의 패킷이 없는 경우에는, 그 패킷은 파기한다(스텝S2).
다음에, 수신 패킷의 최초의 쿼드렛에 포함되는 트랜잭션 코드(tcode)를 조사하여, 수신 패킷이 블록·리드·리스폰스의 패킷인지의 여부를 판단한다(스텝S3). 그리고, 블록·리드·리스폰스의 패킷이 아닌 경우에는, 스텝(S10)으로 이행한다.
다음에, 수신 패킷의 최초의 쿼드렛에 포함되는 트랜잭션 라벨(tl)의 비트(5, 4)를 스텝(S4, S5, S6)에서 판단하여, 비트(5,4)가 (1,1)인 경우에는 스텝(S7)으로, (1,0)인 경우에는 스텝(S8)으로, (0,1)인 경우에는 스텝(S9)으로, (0,0)인 경우에는 스텝(S10)으로 이행한다.
그리고, 스텝(S7)으로 이행한 경우에는 HW용 수신 스트림 영역에, 스텝(S8)으로 이행한 경우에는 HW용 수신 ORB 영역에, 스텝(S9)으로 이행한 경우에는 FW용수신 스트림 영역에, 스텝(S10)으로 이행한 경우에는 FW용 수신 ORB 영역에, 수신 패킷의 데이터를 전송한다. 그리고, tl의 비트(5)가 1인 경우에는, 수신 패킷의 헤더를 HW용 수신 헤더 영역으로 전송하고(스텝S11), tl의 비트(5)가 0인 경우에는, 수신 패킷의 헤더를 FW용 수신 헤더 영역으로 전송한다(스텝S12).
또한, 도 15의 스텝(S3)에서는, 수신 패킷이 블록·리드·리스폰스의 패킷이 아닌 경우에 스텝(S10)으로 이행하고 있다. 이것은, 블록·리드·리스폰스 이외의 수신 패킷의 대부분은, 커맨드를 포함하는 패킷이라고 생각되고, 커맨드를 포함하는 패킷은, FW용 수신 ORB 영역, FW용 수신 헤더 영역에 저장하여, 펌웨어로 처리시키는 것이 타당하다고 생각되기 때문이다.
3.3 수신 스트림 영역, 송신 스트림 영역의 구분
본 실시예에서는 도 16에 도시하는 바와 같이, 스트림 영역(제 2 데이터 영역)에 송신 스트림 영역을 확보하기 위한 송신 영역 스타트 어드레스(TS), 송신 영역 엔드 어드레스(TE)를 기억하는 레지스터(TSR; 제 1 어드레스 기억수단), TER(제 2 어드레스 기억수단)을 설치하고 있다. 또한, 스트림 영역에 수신 스트림 영역을 확보하기 위한 수신 영역 스타트 어드레스(RS), 수신 영역 엔드 어드레스(RE)를 기억하는 레지스터(RSR; 제 3 어드레스 기억수단), RER(제 4 어드레스 기억수단)을 설치하고 있다.
또한, 본 실시예에서는, 레지스터(TSR, TER, RSR, RER)는, 펌웨어(CPU)에 의해 고쳐 쓰기 가능한 레지스터로 되어 있다. 단, 도 16에 있어서 레지스터(TSR, RER)의 적어도 한 쪽에 대해서는, 고정치를 기억하도록 하여, 펌웨어를 고쳐 쓸 수없도록 하여도 좋다.
또한, 도 16에서는, 수신 스트림 영역의 위에 송신 스트림 영역이 위치하고 있지만, 수신 스트림 영역의 밑에 송신 스트림 영역이 위치하도록 하여도 좋다. 그리고, 이 경우에는, 레지스터(RSR, TER)의 적어도 한 쪽을, 고정치를 기억하도록 하여, 펌웨어를 다시 쓸 수 없도록 하여도 좋다.
도 16에 도시하는 바와 같은 레지스터(TSR, TER, RSR, RER)를 설치함으로써, 도 17a, 도 17b, 도 17c, 도 17d에 도시하는 바와 같은, 여러가지의 모드에서의 영역 확보가 가능해진다.
예를 들면, 도 17a의 제 1 모드에서는, 레지스터(TSR)가 기억하는 송신 영역 스타트 어드레스(TS), 레지스터(RSR)가 기억하는 수신 영역 스타트 어드레스(RS)가, 스트림 영역의 스타트 어드레스(S)에 설정되어 있다. 또한, 레지스터(TER)가 기억하는 송신 영역 엔드 어드레스(TE), 레지스터(RER)가 기억하는 수신 영역 엔드 어드레스(RE)가, 스트림 영역의 엔드 어드레스(E)에 설정되어 있다.
이 제 1 모드에 의하면, 스트림 영역의 모든 영역을, 송신용 및 수신용의 양쪽에 공용할 수 있게 된다.
또한, 도 17b의 제 2 모드에서는, 송신 영역 스타트 어드레스(TS), 송신 영역 엔드 어드레스(TE), 수신 영역 스타트 어드레스(RS)가, 스트림 영역의 스타트 어드레스(S)에 설정되고, 수신 영역 엔드 어드레스(RE)가 스트림 영역의 엔드 어드레스(E)에 설정되어 있다(TS 및 TE를 E에 설정하여도 좋다).
이 제 2 모드에 의하면, 스트림 영역의 모든 영역을 수신 스트림 영역으로서사용할 수 있게 된다.
또한, 도 17c의 제 3 모드에서는, 송신 영역 스타트 어드레스(TS)가 스트림 영역의 스타트 어드레스(S)에 설정되고, 수신 영역 스타트 어드레스(RS), 수신 영역 엔드 어드레스(RE), 송신 영역 엔드 어드레스(TE)가 스트림 영역의 엔드 어드레스(E)에 설정되어 있다(RS 및 RE를 S에 설정하여도 좋다).
이 제 3 모드에 의하면, 스트림 영역의 모든 영역을 송신 스트림 영역으로서 사용할 수 있게 된다.
또한, 도 17d의 제 4 모드에서는, 송신 영역 스타트 어드레스(TS)가 스트림 영역의 스타트 어드레스(S)에 설정되고, 송신 영역 엔드 어드레스(TE) 및 수신 영역 스타트 어드레스(RS)가, 스트림 영역의 경계 어드레스(B)에 설정되며, 수신 영역 엔드 어드레스(RE)가 스트림 영역의 엔드 어드레스(E)에 설정되어 있다.
이 제 4 모드에 의하면, 스트림 영역의 일부의 영역을 송신 스트림 영역에 사용하고, 다른 영역을 수신 스트림 영역에 사용할 수 있게 된다.
예를 들면, CD-RW 드라이브, 하드디스크 드라이브 등의 전자 기기에서는, 도 11의 DR(1), DR(2)의 쌍방향으로 스트림이 전송된다. 그리고, 통상, DR(1) 방향의 스트림 전송과 DR(2) 방향의 스트림 전송이 같은 시간에 행하여지지는 않는다. 따라서, 이 경우에는, 도 17a에 도시하는 제 1 모드에서 영역을 확보하는 것이 바람직하다. 이와 같이 하면, 스트림 영역의 기억 용량이 예를 들면 4K바이트인 경우에는, 송신시에 있어서도 수신시에 있어서도, 4K바이트의 기억 용량을 확보할 수 있게 되어, RAM을 효율적으로 사용할 수 있게 된다.
또한, 도 18의 비교예에서는, 스트림 영역에 송신 스트림 영역과 수신 스트림 영역을 확보하기 위해서, 스트림 영역의 스타트 어드레스(S)를 기억하는 레지스터(SR), 스트림 영역의 경계 어드레스(B)를 기억하는 레지스터(BR), 스트림 영역의 엔드 어드레스(E)를 기억하는 레지스터(ER)를 설치하고 있다.
그러나, 이 도 18의 비교예에서는, 도 17b, 도 17c, 도 17d에 도시하는 제 2, 제 3, 제 4 모드의 설정은 할 수 있지만, 도 17a에 도시하는 제 1 모드의 설정은 할 수 없다. 따라서, CD-RW 드라이브, 하드디스크 드라이브에 데이터 전송 제어 장치를 내장한 경우에는, 도 17d의 제 4 모드와 같이 영역을 확보하지 않으면 안되고, 도 17a의 제 1 모드와 비교하여, RAM을 효율적으로 사용할 수 없다는 결점이 있다.
그런데, 프린터 등의 전자 기기에서는, 도 11의 편방향 DR(1)로 스트림이 전송된다(데이터 전송 제어 장치가 스트림을 수신한다). 따라서, 이 경우에는, 도 17b의 제 2 모드에서 영역을 확보하여, 모든 영역을 수신 스트림 영역에 설정하는 것이 바람직하다. 이와 같이 하면, 스트림 영역의 모든 영역을 유효하게 이용하여 스트림을 전송할 수 있게 된다.
또한, 스캐너나 CD-R0M 등의 전자 기기에서는, 도 11의 편방향 DR(2)로 스트림이 전송된다(데이터 전송 제어 장치가 스트림을 송신한다). 따라서, 이 경우에는, 도 17c의 제 3 모드로 영역을 확보하여, 모든 영역을 송신 스트림 영역에 설정하는 것이 바람직하다. 이와 같이 하면, 스트림 영역의 모든 영역을 유효하게 이용하여 스트림을 전송할 수 있게 된다.
또한, 스트림 영역을 캐시 메모리와 같이 사용하는 전자 기기에서는, 도 17d에 도시하는 바와 같은 제 4 모드에서 영역을 확보하는 것이 바람직하다.
4. 상세한 예
4.1 수신측의 상세한 구성
다음에 수신측의 상세한 구성에 대해서 설명한다. 도 19에, 링크 코어(20; 링크수단), FIF0(34), DMAC(44; 기입수단)의 상세한 구성의 일례를 도시한다.
링크 코어(20)는, 버스 감시 회로(130), 직렬·병렬 변환 회로(132), 패킷 정형 회로(160)를 포함한다.
여기서, 버스 감시 회로(130)는, PHY 인터페이스(10)를 통해서 PHY 디바이스에 접속되는 8비트 폭의 데이터 버스(D), 2비트 폭의 컨트롤 버스(CTL)를 감시하는 회로이다.
직렬·병렬 변환 회로(132)는, 데이터 버스(D)의 데이터를 32비트의 데이터 로 변환하는 회로이다.
패킷 정형 회로(160)는, 각 노드로부터 전송되어 온 패킷을 상층이 사용할 수 있도록 정형하는 회로이다. 예를 들면 도 20a에, IEEE1394 규격의, 비동기로 블록 데이터를 갖는 패킷의 포맷을 도시한다. 한편, 도 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)에 의해 선택하기 위한 것이다.
FIF0(34)는, 링 코어(20)로부터의 출력 데이터인 RD의 위상과, RAM(80)으로의 기입 데이터인 WDATA의 위상을 조정하기 위한 버퍼로서 기능하는 것이며, FIF0 상태 판단 회로(35)를 포함한다. FIF0 상태 판단 회로(35)는, FIF0(34)가 비게 되면, 신호 엠티를 액티브하게 하고, FIF0(34)가 풀이 되면, 신호 FULL을 액티브하게 한다.
DMAC(44)는, 패킷 분리 회로(180), 액세스 요구 실행 회로(190), 액세스 요구 발생 회로(192)를 포함한다.
여기서 패킷 분리 회로(180)는, 패킷 정형 회로(160)에 의해 정형된 패킷을 TAG(DTAG)에 근거하여 데이터, 헤더 등으로 분리하여, RAM의 각 영역(도 5 참조)에기입하는 처리를 행한다.
액세스 요구 실행 회로(190)는, 링크 코어(20)로부터의 액세스 요구를 실행하기 위한 회로이다. 액세스 요구 실행 회로(190)는, FIF0 상태 판단 회로(35)로부터의 FULL이 액티브하게 되면, FFULL을 액티브하게 한다. 패킷 정형 회로(160) 내의 시퀀서(167)는, FFULL이 액티브가 아닌 것을 조건으로, RD(RxData)의 스토로브 신호인 RDS를 액티브하게 한다.
또한 RFAIL은, 수신에 있어서의 실패를, 시퀀서(167)가 액세스 요구 실행 회로(190)에 대하여 알리기 위한 신호이다.
액세스 요구 발생 회로(192)는, RAM(80)으로의 액세스 요구를 발생하기 위한 회로이다. 액세스 요구 발생 회로(192)는, 버퍼 매니저(70)로부터의 기입 애크놀리지먼트인 WACK나 FIF0 상태 판단 회로(35)로부터의 EMPTY 등을 받아, 기입 요구인 WREQ를 버퍼 매니저(70)로 출력한다.
4.2 패킷의 분리 및 RAM의 각 영역으로의 기입
TAG 생성 회로(162)는, 도 21에 도시하는 바와 같은 4비트의 TAG를 생성하고 있다. 그리고, 링크 코어(20)는, 패킷(도 20b 참조)의 스타트(최초의 1쿼드렛), 헤더, 데이터(ORB, 스트림)를 RD로서 FIF0(34)로 출력할 때에, 이 생성된 4비트의 TAG도 동시에 FIF0(34)로 출력한다. 그리고, 본 실시예에서는, 이 TAG를 이용함으로써, 패킷을 분리하여, RAM의 각 영역에 기입하고 있다(도 5, 도 10 참조).
보다 구체적으로는, 도 19의 TAG 판별 회로(182)가, FIF0(34)로부터 출력되는 DTAG(=TAG)를 판별하여, FIF0(34)의 출력 WDATA의 기입 영역을 정한다. 그리고, 어드레스 발생 회로(188)가 포함하는 포인터 갱신 회로(184)가, 이 정해진 영역에 있어서, 포인터(데이터 포인터, 헤더 포인터)를 순차 갱신(인크리먼트, 디크리먼트)한다. 그리고, 어드레스 발생 회로(188)는, 이 순차 갱신되는 포인터가 가리키는 어드레스를 발생하여, WADR로서 버퍼 매니저(70)로 출력한다. 이와 같이 함으로써, 패킷의 헤더, ORB, 스트림이, 도 5에 도시하는 것 같은 RAM의 각 영역에 기입되게 된다.
또한, 어드레스 발생 회로(188)는, 데이터 포인터(DP; 수신 ORB 영역의 데이터 포인터, 수신 스트림 영역의 데이터 포인터 등)를 패킷 정형 회로(160)로 출력하고 있고, 패킷 정형 회로(160)는, 이 데이터 포인터를 패킷의 헤더에 매입하고 있다(도 20b의 C30 참조). 이에 의해, 헤더 영역에 저장되는 헤더와 데이터 영역에 저장되는 데이터를 대응시키는 것이 가능해진다.
그런데, TAG 생성 회로(162)는, 도 13a, 도 13b에서 설명한 트랜잭션 라벨(tl)을 사용하여 도 21의 TAG를 생성하여, FIF0(34)로 출력한다. 예를 들면, 링크 코어(20)의 출력(RD)이 헤더이고, 트랜잭션 라벨(tl)이 1×××××(×는, 돈트·케어라는 의미)인 경우에는, TAG 생성 회로(162)는 (1001) 또는 (1010)의 TAG를 생성한다. 이에 의해, 도 14에 도시하는 바와 같이, 수신 패킷의 헤더가 HW(하드웨어)용 수신 헤더 영역에 기입되게 된다. 또한, 여기서 HW(하드웨어)용은, 도 4의 SBP-2 코어(84)용이라는 의미이다.
또한, 링크 코어(20)의 출력(RD)이 헤더이고, tl이 0×××××인 경우에는, TAG 생성 회로(162)는 (0001) 또는 (0010)의 TAG를 생성한다. 이에 의해, 도 14에도시하는 바와 같이, 수신 패킷의 헤더가 FW용 수신 헤더 영역에 기입되게 된다.
또한, RD가 데이터이고 tl이 11××××인 경우에는, (1101)의 TAG를 생성한다. 이에 의해, 수신 패킷의 데이터(스트림)가 HW용 수신 스트림 영역에 기입되게 된다.
또한, RD가 데이터이고 tl이 10××××인 경우에는, (1100)의 TAG를 생성한다. 이에 의해, 수신 패킷의 데이터 ORB가 HW용 수신 ORB 영역에 기입되게 된다.
또한, RD가 데이터이고 tl이 01××××인 경우에는, (0101)의 TAG를 생성한다. 이에 의해, 수신 패킷의 데이터(스트림)가 FW용 수신 스트림 영역에 기입되게 된다.
또한, RD가 데이터이고 tl이 00××××인 경우에는, (0100)의 TAG를 생성한다. 이에 의해, 수신 패킷의 데이터 ORB가 FW용 수신 0RB 영역에 기입되게 된다.
본 실시예에서는 이상과 같이 트랜잭션 라벨(tl)을 이용함으로써, 패킷의 분리 및 RAM의 각 영역으로의 기입을 실현하고 있다.
4.3 스트림 영역의 관리 및 스타트·엔드 어드레스의 설정
도 22에, DMAC(44, 54), 레지스터(46, 56), RAM 영역 관리 회로(300)의 상세한 구성예를 도시한다.
우선, 도 22에 도시하는 각종의 포인터 레지스터(310, 312, 314, 316, 318, 320, 322, 324)에 대해서 설명한다. 본 실시예에서는 RAM의 각 영역의 관리를 위해서, 도 23에 도시하는 바와 같은 각종의 포인터 레지스터를 설치하고 있다. 펌웨어(CPU)는 도 4의 CPU 인터페이스(60)를 통해서, 이들의 포인터 레지스터에 기억되는 포인터의 어드레스를 수시 판독할 수 있다.
여기서 처리 완료 헤더 포인터 레지스터(UHPR)는, 처리 완료(사용 완료)의 헤더와 미처리의 헤더의 경계(RB21)를 가리키는 포인터(UHP)를 기억한다. 수신 완료 헤더 포인터 레지스터(PHPR)는, 수신 완료의 최신(post)의 헤더와 미수신의 헤더의 경계(RB31)를 가리키는 포인터(PHP)를 기억한다.
또한, 처리 완료 ORB 포인터 레지스터(U0PR)는, 처리 완료의 ORB와 미 처리의 ORB의 경계(RB22)를 가리키는 포인터(U0P)를 기억한다. 수신 완료 ORB 포인터 레지스터(P0PR)는, 수신 완료의 최신의 ORB와 미수신의 ORB의 경계(RB32)를 가리키는 포인터(P0P)를 기억한다.
또한, 버스 리셋 헤더 포인터 레지스터(BHPR)는, 버스 리셋 발생 전에 수신한 패킷의 헤더와, 버스 리셋 발생 후에 수신한 패킷의 헤더의 경계(RB11)를 가리키는 포인터 BHP를 기억하는 레지스터이다. 또한, 버스 리셋 ORB 포인터 레지스터(B0PR)는, 버스 리셋 발생 전에 수신한 패킷의 ORB와, 버스 리셋 발생 후에 수신한 패킷의 ORB의 경계(RB12)를 가리키는 포인터(B0P)를 기억하는 레지스터이다. 이들의 레지스터(BHPR, B0PR)를 설치함으로써, 펌웨어가 버스 리셋의 발생장소를 용이하게 검출할 수 있게 된다. 이에 의해, 버스 리셋 발생 후에 행하여지는 펌웨어의 처리 부담을 대폭 경감할 수 있다.
도 22의 설명으로 되돌아간다. 도 22의 레지스터(310, 314, 318)는, 각각, 수신 완료 헤더 포인터, 수신 완료 ORB 포인터, 수신 완료 스트림 포인터를 기억하는 레지스터이다. 이들의 레지스터(310, 314, 318)는, 어드레스 발생 회로(188)로부터, 각각, WHADR(헤더 영역에서의 어드레스), W0ADR(ORB 영역에서의 어드레스), WSADR(스트림 영역에서의 어드레스)을 받는다. 또한, 레지스터(310, 314, 318)는, 링크 코어(20)로부터의 신호 RXC0MP(수신이 완료하였을 때에 액티브해지는 신호)를 받는다. 그리고, 레지스터(310, 314, 318)는, 이 RXC0MP가 액티브하게 되는 타이밍으로, 어드레스 발생 회로(188)로부터의 WHADR, W0ADR, WSADR을 받아들여, 기억한다. 이와 같이 함으로써, 도 23의 경계(RB31, RB32) 등의 어드레스를 기억할 수 있게 된다.
또한, 레지스터(312, 316)는, 각각, 버스 리셋 헤더 포인터, 버스 리셋 ORB 포인터를 기억하는 레지스터이다. 이들의 레지스터(312, 316)는, 링크 코어(20)로부터의 신호(BRIP; 버스 리셋 중에 액티브해지는 신호)를 받는다. 그리고, 레지스터(312, 316)는, 이 BRIP가 액티브해지는 타이밍에서, 레지스터(310, 314)에 기억되어 있는 어드레스를 받아들여서, 기억한다. 이와 같이 함으로써, 도 23의 경계(RB11, RB12)의 어드레스를 기억할 수 있게 된다.
또한, 레지스터(320, 322, 324)는, 각각, 처리 완료 헤더 포인터, 처리 완료 ORB 포인터, 처리 완료 스트림 포인터를 기억하는 레지스터이다.
또한, 스타트·엔드 어드레스 레지스터(326)는, 도 5에 도시하는 각 영역의 스타트 어드레스, 엔드 어드레스를 기억한다. 보다 구체적으로는, 도 16에서 설명한 송신 영역 스타트 어드레스(TS), 송신 영역 엔드 어드레스(TE), 수신 영역 스타트 어드레스(RS), 수신 영역 엔드 어드레스(RE)를 기억하는 레지스터(송신 영역 스타트 어드레스 레지스터(TSR), 송신 영역 엔드 어드레스 레지스터 TER, 수신 영역스타트 어드레스 레지스터(RSR), 수신 영역 엔드 어드레스 레지스터(RER))에 의해 구성된다. 그리고, 어드레스 발생 회로(188, 332)는, 레지스터(326)로부터의 스타트 어드레스, 엔드 어드레스에 근거하여 어드레스의 발생을 제어한다. 보다 구체적으로는, 스타트 어드레스를 개시점으로서 순차 포인터를 갱신한다. 그리고, 포인터가 엔드 어드레스에 도달한 경우에, 포인터를 스타트 어드레스로 되돌리는 등의 제어를 행한다(링 버퍼 구조인 경우).
RAM 영역 관리 회로(300)는, 수신 헤더 영역 관리 회로(302), 수신 ORB 영역 관리 회로(304), 수신 스트림 영역 관리 회로(306)를 포함한다.
그리고, 수신 헤더 영역 관리 회로(302)는, 레지스터(310)로부터의 수신 완료 헤더 포인터나 레지스터(320)로부터의 처리 완료 헤더 포인터를 받아, 수신 헤더 영역이 풀인 것을 알리는 신호(HDRFULL)를 액세스 요구 발생 회로(192)로 출력한다.
또한, 수신 ORB 영역 관리 회로(304)는, 레지스터(314)로부터의 수신 완료 ORB 포인터나 레지스터(322)로부터의 처리 완료 ORB 포인터를 받아, 수신 ORB 영역이 풀인 것을 알리는 신호(ORBFULL)를 액세스 요구 발생 회로(192)로 출력한다.
또한, 수신 스트림 영역 관리 회로(306)는, 레지스터(318)로부터의 수신 완료 스트림 포인터나 레지스터(324)로부터의 처리 완료 스트림 포인터를 받아, 수신 스트림 영역이 풀인 것을 알리는 신호(STRMFULL)를 액세스 요구 발생 회로(192)로 출력한다. 또한, 수신 스트림 영역이 엠티인 것을 알리는 신호(STRMEMPTY)를 액세스 요구 발생 회로(334)로 출력한다.
액세스 요구 발생 회로(192, 334)는, 이들의 풀신호, 엠티신호를 받아, 기입 요구(WREQ), 판독 요구(RREQ)를 버퍼 매니저(70)로 출력하는지의 여부를 결정하게 된다.
이와 같이, 본 실시예에서는, 수신 스트림 영역의 관리는, 수신 스트림 영역 관리 회로(306)라는 하드웨어가 행하고, 펌웨어가 관여하지 않는다. 따라서, 도 12에 있어서 설명한 바와 같이, 펌웨어의 처리 부담을 경감할 수 있는 동시에, 데이터 전송을 각별히 고속화 할 수 있게 된다.
5. 전자 기기
다음으로, 본 실시예의 데이터 전송 제어 장치를 포함하는 전자 기기의 예에 대해서 설명한다.
예를 들면 도 24a에 전자 기기의 하나인 프린터의 내부 블록도를 도시하고, 도 25a에 그 외관도를 도시한다. CPU(510; 마이크로 컴퓨터)는 시스템 전체의 제어 등을 행한다. 조작부(511)는 프린터를 사용자가 조작하기 위한 것이다. R0M(516)에는, 제어 프로그램, 폰트 등이 저장되고, RAM(518)은 CPU(510)의 워크 영역으로서 기능한다. 표시 패널(519)은 프린터의 동작 상태를 사용자에게 알리기 위한 것이다.
PHY 디바이스(502), 데이터 전송 제어 장치(500)를 통해서, 퍼스널 컴퓨터 등의 다른 노드로부터 보내여져 온 인자 데이터는, 버스(504)를 통해서 인자 처리부(512)에 직접 보내여진다. 그리고, 인자 데이터는, 인자 처리부(512)로부터 주어진 처리가 실시되어, 프린터 헤더 등으로 이루어지는 인자부(514; 데이터를 출력하기 위한 장치)에 의해 종이에 인자되어 출력된다.
도 24b에 전자 기기의 하나인 스캐너의 내부 블록도를 도시하고, 도 25b에 그 외관도를 도시한다. CPU(520)는 시스템 전체의 제어 등을 행한다. 조작부(521)는 스캐너를 사용자가 조작하기 위한 것이다. R0M(526)에는 제어 프로그램 등이 저장되고, RAM(528)은 CPU(520)의 워크 영역으로서 기능한다.
광원, 광전 변환기 등으로 이루어지는 화상 판독부(522; 데이터를 받아들이기 위한 장치)에 의해 원고의 화상이 판독되고, 판독된 화상의 데이터는 화상 처리부(524)에 의해 처리된다. 그리고, 처리 후의 화상 데이터가 버스(505)를 통해서 데이터 전송 제어 장치(500)에 직접 보내여진다. 데이터 전송 제어 장치(500)는, 이 화상데이터에 헤더 등을 부가함으로써 패킷을 생성하여, PHY 디바이스(502)를 통해서 퍼스널 컴퓨터 등의 다른 노드로 송신한다.
도 24c에 전자 기기의 하나인 CD-RW 드라이브의 내부 블록도를 도시하고, 도 25c에 그 외관도를 도시한다. CPU(530)는 시스템 전체의 제어 등을 행한다. 조작부(531)는 CD-RW를 사용자가 조작하기 위한 것이다. R0M(536)에는 제어 프로그램 등이 저장되고, RAM(538)은 CPU(530)의 워크 영역으로서 기능한다.
레이저, 모터, 광학계 등으로 이루어지는 판독 & 기입부(533; 데이터를 받아들기 위한 장치 또는 데이터를 기억하기 위한 장치)에 의해 CD-RW(532)로부터 판독된 데이터는, 신호 처리부(534)에 입력되어, 에러 정정 처리 등의 주어진 신호 처리가 실시된다. 그리고, 신호 처리가 실시된 데이터가, 버스(506)를 통해서 데이터 전송 제어 장치(500)에 직접 보내여진다. 데이터 전송 제어 장치(500)는, 이데이터에 헤더 등을 부가함으로써 패킷을 생성하여, PHY 디바이스(502)를 통해서 퍼스널 컴퓨터 등의 다른 노드로 송신한다.
한편, PHY 디바이스(502), 데이터 전송 제어 장치(500)를 통해서, 다른 노드로부터 보내여져 온 데이터는, 버스(506)를 통해서 신호 처리부(534)에 직접 보내여진다. 그리고, 신호 처리부(534)에 의해 이 데이터에 주어진 신호 처리가 실시되어, 판독 & 기입부(533)에 의해 CD-RW(532)에 기억된다.
또한, 도 24a, 도 24b, 도 24c에 있어서, CPU(510, 520, 530) 외에, 데이터 전송 제어 장치(500)에서의 데이터 전송 제어를 위한 CPU를 별도로 설치하도록 하여도 좋다.
또한, 도 24a, 도 24b, 도 24c에서는 RAM(501; 도 4의 RAM(80)에 상당)이 데이터 전송 제어 장치(500)의 외부에 설치되어 있지만, RAM(501)을 데이터 전송 제어 장치(500)에 내장시켜도 좋다.
본 실시예의 데이터 전송 제어 장치를 전자 기기에 사용함으로써, 고속의 데이터 전송이 가능해진다. 따라서, 사용자가 퍼스널 컴퓨터 등에 의해 프린트 아웃의 지시를 행한 경우에, 적은 타임래그(time rag)로 인자가 완료하게 된다. 또한, 스캐너로의 화상 취입의 지시의 후에, 적은 타임래그로 판독 화상을 사용자는 볼 수 있게 된다. 또한, CD-RW에서의 데이터의 판독이나, CD-RW으로의 데이터의 기입을 고속으로 행할 수 있게 된다. 더욱이, 예를 들면 하나의 호스트 시스템에 복수의 전자 기기를 접속하여 이용하거나, 복수의 호스트 시스템에 복수의 전자 기기를 접속하여 이용하거나 하는 것도 용이해진다.
또한 본 실시예의 데이터 전송 제어 장치를 전자 기기에 사용함으로써, CPU 상에서 동작하는 펌웨어의 처리 부담이 경감되고, 저가의 CPU나 저속의 버스를 사용하는 것이 가능해진다. 더욱이, 데이터 전송 제어 장치의 저 비용화, 소규모화를 도모할 수 있기 때문에, 전자 기기의 저 비용화, 소규모화도 도모할 수 있게 된다.
또한 본 실시예의 데이터 전송 제어 장치를 적용할 수 있는 전자 기기로서는, 상기 이외에도 예를 들면, 여러가지의 광디스크 드라이브(CD-R0M, DVD), 광자기 디스크 드라이브(M0), 하드디스크 드라이브, TV, VTR, 비디오 카메라, 오디오기기, 전화기, 프로젝터, 퍼스널 컴퓨터, 전자수첩, 워드 프로세서 등 여러가지의 것을 생각할 수 있다.
또한, 본 발명은 본 실시예에 한정되지 않고, 본 발명의 요지의 범위 내에서 여러가지의 변형실시가 가능하다.
예를 들면, 본 발명의 데이터 전송 제어 장치의 구성은, 도 4에 도시하는 구성이 특히 바람직하지만, 이에 한정되는 것은 아니다.
또한, 패킷의 분리수법, 패킷 기억수단의 각 영역으로의 패킷의 기입수법, 판독 수법도, 도 5, 도 10에 설명한 수법에 한정되는 것은 아니다.
또한, 제 1 데이터는 트랜잭션층용의 데이터, 제 2 데이터는 애플리케이션층용의 데이터인 것이 특히 바람직하지만, 본 발명의 제 1, 제 2 데이터는 이에 한정되는 것은 아니다.
또한, 응답 패킷의 트랜잭션 식별정보가 포함하는 지시정보에 근거하여 행하는 처리는, 도 14에서 설명한 바와 같은, 지시정보에 의해 지시되는 영역으로의 응답 패킷(헤더, 데이터)의 기입 처리인 것이 특히 바람직하지만, 이에 한정되는 것은 아니다.
또한, 본 발명은, IEEE1394 규격에서의 데이터 전송에 적용되는 것이 특히 바람직하지만, 이에 한정되는 것이 아니다. 예를 들면 IEEE1394와 같은 사상에 근거하는 규격이나 IEEE1394를 발전시킨 규격에 있어서의 데이터 전송에도 본 발명은 적용할 수 있다.
Claims (22)
- 버스에 접속되는 복수의 노드 사이에서의 데이터 전송을 위한 데이터 전송 제어 장치에 있어서,노드 사이에서의 패킷 전송을 위한 서비스를 제공하는 링크수단과,상기 링크수단을 통해서 수신한 패킷을, 랜덤 액세스 가능한 패킷 기억수단에 기입하는 기입수단과,패킷의 제어 정보를 상기 패킷 기억수단의 제어 정보 영역에 기입하고, 패킷의 제 1 층용의 제 1 데이터를 상기 패킷 기억수단의 제 1 데이터 영역에 기입하며, 패킷의 상기 제 1 층의 상층인 제 2 층용의 제 2 데이터를 상기 패킷 기억수단의 제 2 데이터 영역에 기입하는 패킷 분리수단을 포함하는 것을 특징으로 하는 데이터 전송 제어 장치.
- 제 1 항에 있어서,상기 제 1 데이터가 상기 제 1 층의 프로토콜에서 사용되는 커맨드 데이터이고, 상기 제 2 데이터가 애플리케이션층에서 사용되는 데이터인 것을 특징으로 하는 데이터 전송 제어 장치.
- 제 1 항에 있어서,상기 제 2 데이터 영역이 풀(full)인 경우에는, 상기 기입수단에 의한 상기제 2 데이터 영역으로의 상기 제 2 데이터의 기입을 금지하기 위해서 풀신호를 액티브하게 하고, 상기 제 2 데이터 영역이 엠티(empty)인 경우에는, 상기 제 2 층에 의한 상기 제 2 데이터 영역으로부터의 상기 제 2 데이터의 판독을 금지하기 위해서 엠티신호를 액티브하게 하는 영역 관리수단을 포함하는 것을 특징으로 하는 데이터 전송 제어 장치.
- 제 1 항에 있어서,트랜잭션을 개시시키는 요구 패킷을 응답 노드에 대하여 송신할 때에, 상기 요구 패킷에 포함되는 트랜잭션 식별정보 중에, 응답 노드로부터 응답 패킷을 수신하였을 때에 행하는 처리를 지시하기 위한 지시정보를 포함시키고,응답 노드로부터 응답 패킷을 수신한 경우에, 응답 패킷의 트랜잭션 식별정보가 포함하는 상기 지시정보에 의해 지시되는 영역에, 응답 패킷의 상기 제어 정보, 상기 제 1, 제 2 데이터를 기입하는 것을 특징으로 하는 데이터 전송 제어 장치.
- 버스에 접속되는 복수의 노드 사이에서의 데이터 전송을 위한 데이터 전송 제어 장치에 있어서,트랜잭션을 개시시키는 요구 패킷을 응답 노드에 대하여 송신할 때에, 상기 요구 패킷에 포함되는 트랜잭션 식별정보 중에 응답 노드로부터 응답 패킷을 수신하였을 때에 행하는 처리를 지시하기 위한 지시정보를 포함시키는 수단과,응답 노드로부터 응답 패킷을 수신한 경우에, 응답 패킷의 트랜잭션 식별정보가 포함하는 상기 지시정보에 의해 지시되는 처리를 행하는 수단을 포함하는 것을 특징으로 하는 데이터 전송 제어 장치.
- 제 5 항에 있어서,응답 노드로부터 응답 패킷을 수신한 경우에, 응답 패킷의 트랜잭션 식별정보가 포함하는 상기 지시정보에 의해 지시되는 영역에, 상기 응답 패킷의 제어 정보, 데이터를 기입하는 것을 특징으로 하는 데이터 전송 제어 장치.
- 제 5 항에 있어서,상기 트랜잭션 식별정보가 주어진 비트가, 상기 지시정보를 나타내는 비트로서 미리 예약되는 것을 특징으로 하는 데이터 전송 제어 장치.
- 제 5 항에 있어서,상기 트랜잭션 식별정보가, IEEE1394의 규격에 있어서의 트랜잭션 라벨인 것을 특징으로 하는 데이터 전송 제어 장치.
- 버스에 접속되는 복수의 노드 사이에서의 데이터 전송을 위한 데이터 전송 제어 장치에 있어서,노드 사이에서의 패킷 전송을 위한 서비스를 제공하는 링크수단과,패킷을 저장하기 위한 랜덤 액세스 가능한 패킷 기억수단과,상기 링크수단을 통해서 각 노드로부터 전송되어 오는 패킷을 상기 패킷 기억수단에 기입하는 기입수단과,상기 패킷 기억수단에 기입된 패킷을 판독하여, 상기 링크수단에 건네 주는 판독수단을 포함하고,상기 패킷 기억수단이, 패킷의 제어 정보가 저장되는 제어 정보 영역과, 패킷의 데이터가 저장되는 데이터 영역으로 분리되고, 상기 데이터 영역이, 제 1 층용의 제 1 데이터가 저장되는 제 1 데이터 영역과, 상기 제 1 층의 상층인 제 2 층용의 제 2 데이터가 저장되는 제 2 데이터 영역으로 분리되어 있는 것을 특징으로 하는 데이터 전송 제어 장치.
- 제 9 항에 있어서,상기 제 2 데이터 영역에 송신 영역을 확보하기 위한 송신 영역 스타트 어드레스를 기억하는 제 1 어드레스 기억수단과,상기 제 2 데이터 영역에 송신 영역을 확보하기 위한 송신 영역 엔드 어드레스를 기억하는 제 2 어드레스 기억수단과,상기 제 2 데이터 영역에 수신 영역을 확보하기 위한 수신 영역 스타트 어드레스를 기억하는 제 3 어드레스 기억수단과,상기 제 2 데이터 영역에 수신 영역을 확보하기 위한 수신 영역 엔드 어드레스를 기억하는 제 4 어드레스 기억수단을 포함하는 것을 특징으로 하는 데이터 전송 제어 장치.
- 제 10 항에 있어서,상기 송신 영역 스타트 어드레스 및 상기 수신 영역 스타트 어드레스가 상기 제 2 데이터 영역의 스타트 어드레스에 설정되고, 상기 송신 영역 엔드 어드레스 및 상기 수신 영역 엔드 어드레스가 상기 제 2 데이터 영역의 엔드 어드레스에 설정되는 것을 특징으로 하는 데이터 전송 제어 장치.
- 제 10 항에 있어서,상기 송신 영역 스타트 어드레스 및 상기 송신 영역 엔드 어드레스의 쌍방이 상기 제 2 데이터 영역의 스타트 어드레스 또는 엔드 어드레스의 어느 한 쪽에 설정되고, 상기 수신 영역 스타트 어드레스가 상기 제 2 데이터 영역의 스타트 어드레스에 설정되며, 상기 수신 영역 엔드 어드레스가 상기 제 2 데이터 영역의 엔드 어드레스에 설정되는 것을 특징으로 하는 데이터 전송 제어 장치.
- 제 10 항에 있어서,상기 수신 영역 스타트 어드레스 및 상기 수신 영역 엔드 어드레스의 쌍방이 상기 제 2 데이터 영역의 스타트 어드레스 또는 엔드 어드레스의 어느 한 쪽에 설정되고, 상기 송신 영역 스타트 어드레스가 상기 제 2 데이터 영역의 스타트 어드레스에 설정되며, 상기 송신 영역 엔드 어드레스가 상기 제 2 데이터 영역의 엔드어드레스에 설정되는 것을 특징으로 하는 데이터 전송 제어 장치.
- 제 1 항에 있어서,IEEE1394 규격에 준거한 데이터 전송을 행하는 것을 특징으로 하는 데이터 전송 제어 장치.
- 제 5 항에 있어서,IEEE1394 규격에 준거한 데이터 전송을 행하는 것을 특징으로 하는 데이터 전송 제어 장치.
- 제 9 항에 있어서,IEEE1394 규격에 준거한 데이터 전송을 행하는 것을 특징으로 하는 데이터 전송 제어 장치.
- 제 1 항, 제 2 항, 제 3 항, 제 4 항, 제 14 항 중 어느 한 항의 데이터 전송 제어 장치와,상기 데이터 전송 제어 장치 및 버스를 통해서 다른 노드로부터 수신한 데이터에 주어진 처리를 실시하는 장치와,처리가 실시된 데이터를 출력 또는 기억하기 위한 장치를 포함하는 것을 특징으로 하는 전자 기기.
- 제 5 항, 제 6 항, 제 7 항, 제 8 항, 제 15 항 중 어느 한 항의 데이터 전송 제어 장치와,상기 데이터 전송 제어 장치 및 버스를 통해서 다른 노드로부터 수신한 데이터에 주어진 처리를 실시하는 장치와,처리가 실시된 데이터를 출력 또는 기억하기 위한 장치를 포함하는 것을 특징으로 하는 전자 기기.
- 제 9 항, 제 10 항, 제 11 항, 제 12 항, 제 13 항, 제 16 항 중 어느 한 항의 데이터 전송 제어 장치와,상기 데이터 전송 제어 장치 및 버스를 통해서 다른 노드로부터 수신한 데이터에 주어진 처리를 실시하는 장치와,처리가 실시된 데이터를 출력 또는 기억하기 위한 장치를 포함하는 것을 특징으로 하는 전자 기기.
- 제 1 항, 제 2 항, 제 3 항, 제 4 항, 제 14 항 중 어느 한 항의 데이터 전송 제어 장치와,상기 데이터 전송 제어 장치 및 버스를 통해서 다른 노드로 송신하는 데이터에 주어진 처리를 실시하는 장치와,처리가 실시된 데이터를 받아들이기 위한 장치를 포함하는 것을 특징으로하는 전자 기기.
- 제 5 항, 제 6 항, 제 7 항, 제 8 항, 제 15 항 중 어느 한 항의 데이터 전송 제어 장치와,상기 데이터 전송 제어 장치 및 버스를 통해서 다른 노드로 송신하는 데이터에 주어진 처리를 실시하는 장치와,처리가 실시되는 데이터를 받아들이기 위한 장치를 포함하는 것을 특징으로 하는 전자 기기.
- 제 9 항, 제 10 항, 제 11 항, 제 12 항, 제 13 항, 제 16 항 중 어느 한 항의 데이터 전송 제어 장치와,상기 데이터 전송 제어 장치 및 버스를 통해서 다른 노드로 송신하는 데이터에 주어진 처리를 실시하는 장치와,처리가 실시되는 데이터를 받아들이기 위한 장치를 포함하는 것을 특징으로 하는 전자 기기.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20125099A JP3608441B2 (ja) | 1999-07-15 | 1999-07-15 | データ転送制御装置及び電子機器 |
JP99-201250 | 1999-07-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20010075135A true KR20010075135A (ko) | 2001-08-09 |
KR100405250B1 KR100405250B1 (ko) | 2003-11-12 |
Family
ID=16437835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2001-7003367A KR100405250B1 (ko) | 1999-07-15 | 2000-07-12 | 데이터 전송 제어 장치 및 전자 기기 |
Country Status (7)
Country | Link |
---|---|
US (2) | US6857028B1 (ko) |
EP (1) | EP1120940A4 (ko) |
JP (1) | JP3608441B2 (ko) |
KR (1) | KR100405250B1 (ko) |
CN (1) | CN1188998C (ko) |
TW (1) | TW498207B (ko) |
WO (1) | WO2001006722A1 (ko) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3539287B2 (ja) | 1999-07-15 | 2004-07-07 | セイコーエプソン株式会社 | データ転送制御装置及び電子機器 |
JP3680763B2 (ja) | 2001-05-14 | 2005-08-10 | セイコーエプソン株式会社 | データ転送制御装置及び電子機器 |
JP3680762B2 (ja) | 2001-05-14 | 2005-08-10 | セイコーエプソン株式会社 | データ転送制御装置及び電子機器 |
JP3775318B2 (ja) | 2002-03-20 | 2006-05-17 | セイコーエプソン株式会社 | データ転送制御装置及び電子機器 |
JPWO2006018895A1 (ja) * | 2004-08-20 | 2008-05-01 | 富士通株式会社 | 通信装置、通信システムおよび通信方法 |
US7694061B2 (en) * | 2004-09-08 | 2010-04-06 | Fisher-Rosemount Systems, Inc. | Discarding a partially received message from a data queue |
US7664898B2 (en) * | 2006-02-01 | 2010-02-16 | Broadcom | Method and system for efficient framing on addressed buses |
WO2007099659A1 (ja) * | 2006-03-01 | 2007-09-07 | Matsushita Electric Industrial Co., Ltd. | データ転送装置及びデータ転送方法 |
US7439014B2 (en) * | 2006-04-18 | 2008-10-21 | Advanced Liquid Logic, Inc. | Droplet-based surface modification and washing |
JP4277873B2 (ja) * | 2006-05-23 | 2009-06-10 | 日本電気株式会社 | トランザクション処理装置、トランザクション処理方法 |
US7904614B1 (en) * | 2006-06-27 | 2011-03-08 | Marvell International Ltd. | Direct memory access controller with multiple transaction functionality |
JP5867206B2 (ja) * | 2012-03-16 | 2016-02-24 | 富士通株式会社 | 移動制御装置,プログラム及びストレージ装置 |
JP6041630B2 (ja) * | 2012-11-09 | 2016-12-14 | キヤノン株式会社 | 画像処理装置 |
TWI582599B (zh) * | 2012-12-22 | 2017-05-11 | 群聯電子股份有限公司 | 資料傳輸方法、記憶體控制器、資料傳輸系統 |
JP6171881B2 (ja) * | 2013-11-19 | 2017-08-02 | 株式会社デンソー | 電子制御装置 |
CN105338009B (zh) * | 2014-06-19 | 2020-02-18 | 腾讯科技(深圳)有限公司 | 一种电子设备的控制方法及相关设备、系统 |
CN113132262B (zh) * | 2020-01-15 | 2024-05-03 | 阿里巴巴集团控股有限公司 | 一种数据流处理及分类方法、装置和系统 |
JP2021157604A (ja) * | 2020-03-27 | 2021-10-07 | 株式会社村田製作所 | データ通信装置、データ通信モジュール |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58101544A (ja) * | 1981-12-14 | 1983-06-16 | Toshiba Corp | 入出力装置の伝送テスト回路 |
JPH0669913A (ja) * | 1992-06-18 | 1994-03-11 | Fujitsu Ltd | クロック乗換回路 |
US5787255A (en) * | 1996-04-12 | 1998-07-28 | Cisco Systems, Inc. | Internetworking device with enhanced protocol translation circuit |
JPH10222440A (ja) | 1997-02-10 | 1998-08-21 | Fujitsu Ltd | データ送受信装置 |
JPH10229410A (ja) * | 1997-02-14 | 1998-08-25 | Canon Inc | データ処理装置、電子機器および通信システム |
JPH1117773A (ja) | 1997-06-20 | 1999-01-22 | Sony Corp | シリアルインタフェース回路 |
US6115770A (en) * | 1998-03-25 | 2000-09-05 | Lsi Logic Corporation | System and method for coordinating competing register accesses by multiple buses |
JP3494040B2 (ja) * | 1998-10-27 | 2004-02-03 | セイコーエプソン株式会社 | データ転送制御装置及び電子機器 |
JP3494041B2 (ja) | 1998-10-27 | 2004-02-03 | セイコーエプソン株式会社 | データ転送制御装置及び電子機器 |
JP3543648B2 (ja) | 1998-10-27 | 2004-07-14 | セイコーエプソン株式会社 | データ転送制御装置及び電子機器 |
JP3494042B2 (ja) | 1998-10-27 | 2004-02-03 | セイコーエプソン株式会社 | データ転送制御装置及び電子機器 |
JP3543647B2 (ja) | 1998-10-27 | 2004-07-14 | セイコーエプソン株式会社 | データ転送制御装置及び電子機器 |
JP3543649B2 (ja) | 1998-10-27 | 2004-07-14 | セイコーエプソン株式会社 | データ転送制御装置及び電子機器 |
US6510156B1 (en) * | 1998-12-07 | 2003-01-21 | Cisco Technology, Inc. | Method and apparatus for data stream optimization |
US6363428B1 (en) * | 1999-02-01 | 2002-03-26 | Sony Corporation | Apparatus for and method of separating header information from data in an IEEE 1394-1995 serial bus network |
US6385113B1 (en) * | 1999-04-30 | 2002-05-07 | Madrone Solutions, Inc | Method for operating an integrated circuit having a sleep mode |
US6351783B1 (en) * | 1999-05-20 | 2002-02-26 | Intel Corporation | Method and apparatus for isochronous data transport over an asynchronous bus |
-
1999
- 1999-07-15 JP JP20125099A patent/JP3608441B2/ja not_active Expired - Fee Related
-
2000
- 2000-07-12 WO PCT/JP2000/004639 patent/WO2001006722A1/ja active IP Right Grant
- 2000-07-12 CN CNB008014183A patent/CN1188998C/zh not_active Expired - Fee Related
- 2000-07-12 US US09/787,218 patent/US6857028B1/en not_active Expired - Fee Related
- 2000-07-12 EP EP00944405A patent/EP1120940A4/en not_active Withdrawn
- 2000-07-12 KR KR10-2001-7003367A patent/KR100405250B1/ko not_active IP Right Cessation
- 2000-07-14 TW TW89114139A patent/TW498207B/zh not_active IP Right Cessation
-
2004
- 2004-12-22 US US11/017,858 patent/US7430618B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7430618B2 (en) | 2008-09-30 |
JP2001036588A (ja) | 2001-02-09 |
US6857028B1 (en) | 2005-02-15 |
WO2001006722A1 (fr) | 2001-01-25 |
EP1120940A1 (en) | 2001-08-01 |
TW498207B (en) | 2002-08-11 |
CN1188998C (zh) | 2005-02-09 |
JP3608441B2 (ja) | 2005-01-12 |
US20050105549A1 (en) | 2005-05-19 |
EP1120940A4 (en) | 2003-03-19 |
CN1318242A (zh) | 2001-10-17 |
KR100405250B1 (ko) | 2003-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100405250B1 (ko) | 데이터 전송 제어 장치 및 전자 기기 | |
JP3843667B2 (ja) | データ転送制御装置及び電子機器 | |
US6519268B1 (en) | Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure | |
US6839347B1 (en) | Data transfer controller and electronic device | |
JPH1074175A (ja) | 受信データパケットへのチャンネル番号割当て方法ならびにdmaチャンネル受信パケット比較器回路 | |
JPH1040211A (ja) | パケット化されたデータ通信インタフェース機器内での直接メモリアクセス優先順位を割り当てるための方法ならびにdmaチャンネル回路 | |
JP3584789B2 (ja) | データ転送制御装置及び電子機器 | |
JP3780776B2 (ja) | データ転送制御装置及び電子機器 | |
KR100397404B1 (ko) | 데이터 전송 제어 장치 및 전자기기 | |
US6834316B1 (en) | Data transfer controller and electronic device | |
EP2111003A1 (en) | Data transfer control device and electronic equipment | |
JPH10117349A (ja) | 通信インタフェースで受信されたパケットデータからの制御情報の抽出方法ならびにビデオデータパケット制御回路 | |
JP3610982B2 (ja) | データ転送制御装置及び電子機器 | |
JPH1069456A (ja) | パケットデータ通信システム内のdma機械を制御するためのパケット制御リストを形成するための方法ならびにそのフォーマット | |
JP2004118704A (ja) | インターフェイス装置およびインターフェイス装置の制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20110920 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20121002 Year of fee payment: 10 |
|
LAPS | Lapse due to unpaid annual fee |