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

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

Info

Publication number
KR100381645B1
KR100381645B1 KR10-2000-0060299A KR20000060299A KR100381645B1 KR 100381645 B1 KR100381645 B1 KR 100381645B1 KR 20000060299 A KR20000060299 A KR 20000060299A KR 100381645 B1 KR100381645 B1 KR 100381645B1
Authority
KR
South Korea
Prior art keywords
data
command
bus
reset
data transmission
Prior art date
Application number
KR10-2000-0060299A
Other languages
English (en)
Other versions
KR20010051020A (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 KR20010051020A publication Critical patent/KR20010051020A/ko
Application granted granted Critical
Publication of KR100381645B1 publication Critical patent/KR100381645B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40078Bus configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI 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/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40117Interconnection of audio or video/imaging devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0012High speed serial bus, e.g. IEEE P1394

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)
  • Communication Control (AREA)

Abstract

노드의 토폴로지 정보를 클리어하는 리셋이 발생한 경우에도, 안정된 동작이 보증되는 데이터 전송 제어 장치, 전자기기를 제공하는 것이 목적이다. IEEE 1394 규격의 데이터 전송 제어 장치에 있어서, 버스 리셋 기간 중에 CPU(펌 웨어)가 데이터 전송의 스타트(리쥼) 커맨드를 발행한 경우에, 그 커맨드 실행을 취소한다. 그리고, 커맨드가 취소된 것을 인터럽트를 사용하여 CPU에 알린다. 커맨드 발행 시에 액티브되는 신호를 버스 리셋 기간 중에 액티브되는 신호로 마스크함으로써 커맨드를 취소한다. 포즈 커맨드가 발행되면, 미리 정해진 포즈 장소에서 전송 처리가 포즈된다. 전송 데이터는 하드웨어에 의해 일련의 패킷으로 자동적으로 분할되어 연속 전송된다. CPU가 데이터 전송의 리쥼 커맨드와 포즈 커맨드를 동시에 발행한 경우에, 전송 처리를 스텝 실행한 후에 전송 처리를 포즈하도록 한다.

Description

데이터 전송 제어 장치 및 전자기기{Data transfer control device and electronic equipment}
발명의 분야
본 발명은 데이터 전송 제어 장치 및 이것을 포함하는 전자기기에 관한 것으로, 특히, 버스에 접속되는 복수의 노드 사이에서 IEEE 1394 등의 규격에 준한 데이터 전송을 행하는 데이터 전송 제어 장치 및 이것을 포함하는 전자기기에 관한다.
관련 기술의 설명
최근, IEEE 1394라 불리는 인터페이스 규격이 각광을 받고 있다. 이 IEEE 1394는 차세대 멀티미디어에도 대응 가능한 고속 시리얼 버스 인터페이스를 규격화한 것이다. 이 IEEE 1394에 의하면, 동화상 등의 리얼 타임성이 요구되는 데이터도 취급할 수 있다. 또, IEEE 1394 버스에는 프린터, 스캐너, CD-RW 드라이브, 하드 디스크 드라이브 등의 컴퓨터 주변기기 뿐만 아니라, 비디오 카메라, VTR, TV 등의 가정용 전기 제품도 접속할 수 있다. 이 때문에, 전자기기의 디지털화를 비약적으로 촉진할 수 있는 것으로서 기대받고 있다.
그런데, 이 IEEE 1394에 있어서는, 버스에 전자기기가 새롭게 접속되거나, 버스로부터 전자기기가 제외되거나 하여, 버스에 접속되는 노드가 증감하면, 소위 버스 리셋이 발생한다. 그리고, 버스 리셋이 발생하면 노드의 토폴로지 정보가 클리어되며, 그 후, 토폴로지 정보가 자동적으로 재설정된다. 즉, 버스 리셋 발생 후, 트리 식별(루트 노드 결정), 자기 식별이 행해지며, 그 후, 등시(isochronous) 리소스 매니저 등의 관리 노드가 결정된다. 그리고, 통상의 패킷 전송이 개시된다.
이렇게 IEEE 1394에서는, 버스 리셋 후에 토폴로지 정보가 자동적으로 재설정되기 때문에, 소위 핫 상태에서의 케이블 작동이(핫 플러그) 가능해진다. 이 때문에, 일반 사용자는 VTR 등의 통상의 가정용 전기 제품과 동일하게, 전자기기로의 케이블 작동을 자유롭게 할 수 있게 되어, 소위 홈 네트워크 시스템 보급에 도움이 될 수 있다.
그렇지만, 이 버스 리셋 발생에 의해, 이하와 같은 문제가 생기는 것이 판명되었다.
즉, 버스 리셋은 케이블 작동 등이 원인으로 발생하기 때문에, CPU 상에서 동작하는 펌 웨어(처리 수단)는 버스 리셋의 발생 시기를 미리 예기할 수 없다. 따라서, 버스 리셋 발생 후(혹은 버스 리셋의 발생과 거의 동시)에, 펌 웨어가 데이터 전송의 스타트 커맨드를 발행해버리는 사태가 생긴다. 그리고, 이러한 사태가 생기면, 본래는 버스 리셋에 의해 무효로 되어야 할 패킷 전송이 개시되어버리는 등의 부적합함이 생길 가능성이 있다.
본 발명은 이상과 같은 기술적 과제에 비추어 이루어진 것으로, 그 목적으로 하는 것은, 노드의 토폴로지 정보를 클리어하는 리셋이 발생한 경우에도 안정된 동작이 보증되는 데이터 전송 제어 장치 및 이것이 사용되는 전자기기를 제공함에 있다.
발명의 요약
상기 과제를 해결하기 위해 본 발명은, 버스에 접속되는 복수의 노드 사이에서의 데이터 전송을 위한 데이터 전송 제어 장치로서, 처리 수단이 데이터 전송의 스타트 커맨드 또는 리쥼 커맨드를 발행한 경우에, 전송 처리를 스타트 또는 리쥼하는 수단과, 노드의 토폴로지 정보를 클리어하는 버스 리셋이 발생하여, 그 버스 리셋 기간 중에 처리 수단이 스타트 커맨드 또는 리쥼 커맨드를 발행한 경우에는, 해당 커맨드의 실행을 취소하는 수단과, 리셋 발생에 의해 커맨드의 실행이 취소된 것을 처리 수단에 알리는 수단을 포함하는 것을 특징으로 한다.
본 발명에 의하면, 리셋(예를 들면 IEEE 1394의 버스 리셋) 기간 중에, 처리 수단이 스타트(리쥼) 커맨드를 발행하면, 그 커맨드 실행이 취소된다. 따라서, 본래라면 무효가 될 패킷이 전송되어버리거나, 다른 회로 블록의 오동작을 초래하거나, 처리 수단 처리를 혼란시켜버리는 등의 사태를 방지할 수 있다. 이로써, 노드의 토폴로지 정보를 클리어하는 리셋이 발생한 경우에도 안정된 동작을 보증할 수 있게 된다. 그리고, 본 발명에 의하면, 커맨드 실행이 취소된 것이 처리 수단에 알려지기 때문에, 처리 수단은 취소된 커맨드를 재발행하는 등의 처리를 행할 수 있게 된다.
또, 본 발명은 리셋 발생에 의해 데이터 전송의 스타트 커맨드 또는 리쥼 커맨드 실행이 취소된 경우에, 처리 수단에 대해 인터럽트를 발생하는 수단과, 상기 인터럽트 요인을 처리 수단에 알리기 위한 요인 기억 수단을 포함하는 것을 특징으로 한다. 이렇게 하면, 커맨드가 취소된 것을 처리 수단에 확실하게 효율 좋게 알릴 수 있다.
또, 본 발명은 상기 취소 수단이 처리 수단이 스타트 커맨드 또는 리쥼 커맨드를 발행한 경우에 액티브되는 신호를 리셋 기간 중에 액티브되는 신호로 마스크함으로써, 커맨드를 취소하는 것을 특징으로 한다. 이렇게 하면, 처리 수단이 발행한 스타트(리쥼) 커맨드가 데이터 전송 제어 장치의 다른 회로 블록에 전해지는 것을 효과적으로 방지할 수 있다.
또, 본 발명은 처리 수단이 데이터 전송의 포즈 커맨드를 발행한 경우 또는 전송 에러가 발생한 경우에, 미리 정해진 포즈 장소에서 전송 처리를 포즈하는 수단을 포함하는 것을 특징으로 한다. 이렇게 함으로써, 스타트(리쥼) 커맨드가 발행된 후에, 노드의 토폴로지 정보를 클리어하는 리셋이 발생한 경우에도, 전송 처리를 한번 포즈하여, 적절한 처리를 행한 후에 전송 처리를 리쥼할 수 있게 된다.
또, 본 발명은 처리 수단이 데이터 전송의 스타트 커맨드를 발행한 경우에, 전송 데이터를 일련의 패킷으로 분할하여, 분할된 일련의 패킷을 연속 전송하는 처리를 실행하는 전송 실행 수단을 포함하는 것을 특징으로 한다. 이러한 전송 실행 수단을 포함할 경우에는, 리셋 기간 중에 스타트 커맨드가 한번 발행되면, 처리 수단이 전송 처리를 정지하지 않는 한, 일련의 패킷이 차례 차례로 전송되어버려, 심각한 부적합함이 생길 가능성이 있다. 그렇지만, 본 발명에 의하면, 리셋 기간 중에 발행된 스타트 커맨드는 즉석 취소되기 때문에, 이러한 부적합함이 생기는 것을 방지할 수 있다.
또한, 본 발명에서는, 상기 리셋이 IEEE 1394 규격에 있어서 정의되는 버스 리셋인 것이 바람직하다.
또, 본 발명은 버스에 접속되는 복수의 노드 사이에서의 데이터 전송을 위한 데이터 전송 제어 장치로서, 처리 수단이 데이터 전송의 스타트 커맨드를 발행한경우에, 전송 데이터를 일련의 패킷으로 분할하고, 분할된 일련의 패킷을 연속 전송하는 처리를 실행하는 전송 실행 수단과, 처리 수단이 데이터 전송의 리쥼 커맨드와 포즈 커맨드를 동시에 발행한 경우에, 전송 처리를 스텝 실행한 후에 전송 처리를 포즈하는 수단을 포함하는 것을 특징으로 한다.
본 발명에 의하면, 처리 수단이 데이터 전송의 리쥼 커맨드와 포즈 커맨드를 동시에 발행한 경우에는, 전송 처리가 스텝 실행된다. 이로써, 예를 들면, 패킷을 1개씩 전송하는 등의 처리가 가능해져, 데이터 전송 제어 장치의 디버그 등에 유효한 수단을 제공할 수 있게 된다.
또, 본 발명은 상기 포즈 수단이 상기 리쥼 커맨드가 발행된 경우에 액티브되는 리쥼 신호와, 상기 리쥼 커맨드와 상기 포즈 커맨드가 동시에 발행된 경우에, 상기 리쥼 신호가 액티브되고 나서 소정 기간만큼 지연되어 액티브되는 지연 포즈 신호에 근거하여, 전송 처리의 스텝 실행 및 포즈를 행하는 것을 특징으로 한다. 이렇게 하면, 지연 포즈 신호를 생성하기 위한 지연 수단을 설치하는 등의 간소한 수법으로, 전송 처리의 스텝 실행을 실현할 수 있게 된다.
또, 본 발명에서는, IEEE 1394 규격에 준거한 데이터 전송을 행하는 것이 바람직하다.
또, 본 발명에 관련되는 전자기기는 상기 어느 한 데이터 전송 제어 장치와, 상기 데이터 전송 제어 장치 및 버스를 통해 다른 노드로부터 수신한 데이터에 대하여, 데이터를 출력 또는 기억하기 위한 신호 처리를 실시하는 장치와, 신호 처리가 실시된 데이터를 출력 또는 기억하기 위한 장치를 포함하는 것을 특징으로 한다. 또, 본 발명에 관련되는 전자기기는 상기 어느 한 데이터 전송 제어 장치와, 상기 데이터 전송 제어 장치 및 버스를 통해 다른 노드에 전송하는 데이터에 대하여, 데이터 취입 후의 신호 처리를 실시하는 장치와, 신호 처리가 실시되는 데이터를 취입하기 위한 장치를 포함하는 것을 특징으로 한다.
본 발명에 의하면, 데이터 전송을 제어하는 펌 웨어 등의 처리 부담을 경감할 수 있기 때문에, 전자기기의 저 코스트화, 처리의 고속화 등을 도모할 수 있다. 또, 토폴로지 정보를 클리어하는 리셋 발생에 의해 시스템에 부적합함이 생기는 사태를 방지할 수 있기 때문에, 전자기기의 신뢰성을 높일 수 있다.
도 1은 IEEE 1394의 층 구조에 대해서 도시하는 도면.
도 2는 SBP-2(Serial Bus Protocol-2)에 대해서 설명하기 위한 도면.
도 3은 SBP-2의 데이터 전송 처리의 개략에 대해서 설명하기 위한 도면.
도 4는 데이터(스트림)를 타깃으로부터 이니시에이터에 전송할 경우의 커맨드 처리에 대해서 설명하기 위한 도면.
도 5는 데이터(스트림)를 이니시에이터로부터 타깃에 전송할 경우의 커맨드 처리에 대해서 설명하기 위한 도면.
도 6a, 도 6b, 도 6c는 페이지 테이블에 대해서 설명하기 위한 도면.
도 7은 본 실시예의 데이터 전송 제어 장치의 구성예를 도시하는 도면.
도 8은 RAM(패킷 기억 수단)의 분리(분할) 수법에 대해서 설명하기 위한 도면.
도 9는 본 실시예의 데이터 전송 수법에 대해서 설명하기 위한 도면.
도 10은 SBP-2 코어(전송 실행 회로)의 구성예를 도시하는 도면.
도 11은 메인 제어 회로의 동작을 설명하기 위한 흐름도.
도 12는 페이지 테이블의 생성 수법에 대해서 설명하기 위한 도면.
도 13은 패킷의 페이로드 분할 수법에 대해서 설명하기 위한 도면.
도 14는 전송 실행 제어 회로 동작을 설명하기 위한 흐름도.
도 15는 페이로드 분할 회로의 동작을 설명하기 위한 흐름도.
도 16은 송신 헤더 생성 회로, 트랜잭션 제어 회로 동작에 대해서 설명하기 위한 흐름도.
도 17은 메인 제어 회로의 구성예를 도시하는 도면.
도 18은 스타트 제어 회로의 동작을 설명하기 위한 상태 천이도.
도 19는 포즈 제어 회로의 동작을 설명하기 위한 상태 천이도.
도 20은 버스 리셋 기간에 발행된 커맨드를 취소하는 수법에 대해서 설명하기 위한 타이밍 파형도.
도 21은 전송 처리의 스텝 실행에 대해서 설명하기 위한 타이밍 파형도.
도 22는 전송 처리의 스텝 실행에 대해서 설명하기 위한 타이밍 파형도.
도 23a, 도 23b, 도 23c는 각종 전자기기의 내부 블록도의 예.
도 24a, 도 24b, 도 24c는 각종 전자기기의 외관도의 예.
* 도면의 주요 부분에 대한 부호의 설명 *
20 : 링크 코어 22 : 레지스터
66 : CPU 70 : 버퍼 매니저
84 : SBP-2 코어 90 : 버스
(실시예)
이하, 본 발명의 적합한 실시예에 대해서 도면을 사용하여 상세하게 설명한다.
1. IEEE 1394
우선, IEEE 1394에 대해서 간단히 설명한다.
1.1 개요
IEEE 1394(IEEE 1394-1995, P1394. a)에서는 10O 내지 400Mbps의 고속 데이터 전송이 가능하게 되어 있다(P1394. b에서는 800 내지 3200Mbps). 또, 전송 속도가 다른 노드를 버스에 접속하는 것도 허락된다.
각 노드는 트리 형상으로 접속되어 있으며, 1개의 버스에 최대 63개의 노드가 접속 가능하게 되어 있다. 또한, 버스 브리지를 이용하면 약 64000개의 노드를 접속하는 것도 가능하다.
IEEE 1394에서는, 패킷의 전송 방식으로서 비동기 전송과 등시 전송이 준비되어 있다. 여기서 비동기 전송은 신뢰성이 요구되는 데이터 전송에 적합한 전송 방식이고, 등시 전송은 리얼 타임성이 요구되는 동화상이나 음성 등의 데이터 전송에 적합한 전송 방식이다.
1.2 층 구조
IEEE 1394의 층 구조(프로토콜 구성)를 도 1에 도시한다.
IEEE 1394의 프로토콜은 트랜잭션층, 링크층, 물리층에 의해 구성된다. 또, 시리얼 버스 매니지먼트는 트랜잭션층, 링크층, 물리층을 모니터하거나 제어하거나 하는 것으로, 노드 제어나 버스의 리소스 관리를 위한 각종 기능을 제공한다.
트랜잭션층은 상위층에 트랜잭션 단위의 인터페이스(서비스)를 제공하고, 하층의 링크층이 제공하는 인터페이스를 통해, 리드 트랜잭션, 라이트 트랜잭션, 록 트랜잭션 등의 트랜잭션을 실시한다.
여기서, 리드 트랜잭션에서는, 응답 노드로부터 요구 노드에 데이터가 전송된다. 한편, 라이트 트랜잭션에서는, 요구 노드로부터 응답 노드에 데이터가 전송된다. 또, 록 트랜잭션에서는 요구 노드로부터 응답 노드에 데이터가 전송되며, 응답 노드가 그 데이터에 처리를 실시하여 요구 노드에 회신한다.
링크층은 어드레싱, 데이터 체크, 패킷 송수신을 위한 데이터 플레밍, 등시 전송을 위한 사이클 제어 등을 제공한다.
물리층은 링크층에 의해 사용되는 로지컬 심볼의 전기 신호로의 변환이나 버스 조정이나 버스의 물리적 인터페이스를 제공한다.
1.3 SBP-2
그런데, 도 2에 도시하는 바와 같이, IEEE 1394의 트랜잭션층의 일부 기능을 포함하는 상위 프로토콜로서, SBP-2(Serial Bus Protocol-2)라 불리는 프로토콜이 제안되어 있다.
여기서 SBP-2는 SCSI의 커맨드 셋을 IEEE 1394의 프로토콜 상에서 이용 가능하게 하기 위해 제안된 것이다. 이 SBP-2를 사용하면, 기존의 SCSI 규격의 전자기기에서 사용되었던 SCSI의 커맨드 셋에 최소한의 변경을 가하여, IEEE 1394 규격의 전자기기에 사용할 수 있게 된다. 따라서, 전자기기의 설계나 개발을 용이화할 수 있다. 또, SCSI의 커맨드뿐만 아니라, 디바이스 고유의 커맨드도 캡슐화하여 이용할 수 있기 때문에, 대단히 범용성이 높다.
도 3에 도시하는 바와 같이 SBP-2에서는, 우선, 이니시에이터(예를 들면 퍼스널 컴퓨터)에 의해 작성된 로그 인 ORB(0peration Request Block)를 사용하여 로그 인 처리가 행해진다(스텝(T1)). 다음으로, 더미 ORB를 사용하여 패치 에이전트의 초기화가 행해진다(스텝(T2)). 그리고, 노멀 커맨드 ORB를 사용하여 커맨드 처리가 행해지며(스텝(T3)), 마지막으로, 로그 아웃 ORB를 사용하여 로그 아웃 처리가 행해진다(스텝(T4)).
스텝(T3)의 커맨드 처리에 있어서는, 도 4의 A1에 도시하는 바와 같이, 이니시에이터가 라이트 요구 패킷을 전송하여(라이트 요구 트랜잭션을 발행하여), 타깃의 도어 벨 레지스터를 링한다. 그렇게 하면, A2에 도시하는 바와 같이, 타깃이 리드 요구 패킷을 전송하여, 이니시에이터가 대응하는 리드 응답 패킷을 돌려 준다. 이로써, 이니시에이터가 작성한 ORB(노멀 커맨드 ORB)가 타깃의 데이터 버퍼에 패치된다. 그리고, 타깃은 패치된 ORB에 포함되는 커맨드를 해석한다.
그리고, ORB에 포함되는 커맨드가 SCSI의 리드 커맨드인 경우에는, A3에 도시하는 바와 같이, 타깃은 일련의 라이트 요구 패킷을 이니시에이터에 전송한다. 이로써, 예를 들면 타깃의 미디어(CD-RW)로부터 판독된 데이터(스트림)가 이니시에이터의 데이터 버퍼에 전송되게 된다.
한편, ORB에 포함되는 커맨드가 SCSI의 라이트 커맨드인 경우에는, 도 5의 B1에 도시하는 바와 같이, 타깃이 리드 요구 패킷을 이니시에이터에 전송하여, 이니시에이터가 대응하는 리드 응답 패킷을 돌려 준다. 이로써, 이니시에이터의 데이터 버퍼에 격납되어 있는 데이터(스트림)가 타깃에 전송되며, 타깃의 미디어에 기록되게 된다(타깃이 프린터인 경우에는 인쇄된다).
이 SBP-2에 의하면, 타깃은 자신이 상태가 좋을 때에 요구 패킷을 전송하여(트랜잭션을 발행하여), 데이터를 송수신할 수 있다. 따라서, 이니시에이터와 타깃이 동기하여 움직일 필요가 없어지기 때문에, 데이터 전송 효율을 높일 수 있다.
또한, IEEE 1394의 상위 프로토콜로서는, SBP-2 이외에도, FCP(Function Control Protocol)라 불리는 프로토콜 등도 제안되고 있다.
그런데, 타깃, 이니시에이터 사이에서 데이터 전송을 행할 경우, 도 6a와 같이 이니시에이터(상대 노드)의 데이터 버퍼(기억 수단)에 페이지 테이블이 존재할 경우와, 존재하지 않을 경우가 있다.
그리고, 페이지 테이블이 존재할 경우에는, 도 6b에 도시하는 바와 같이, 이니시에이터가 작성한 ORB 중에는, 그 페이지 테이블의 어드레스나 엘리먼트 수가 포함된다. 그리고, 전송 데이터의 어드레스(판독 어드레스, 기록 어드레스)는 이 페이지 테이블을 사용하여 간접 어드레스 지정된다.
한편, 페이지 테이블이 존재하지 않을 경우에는, 도 6c에 도시하는 바와 같이, ORB 중에는 어드레스와 데이터 길이가 포함되며, 전송 데이터의 어드레스가 직접 어드레스 지정된다.
1.4 버스 리셋
IEEE 1394에서는, 전원이 투입되거나, 도중에서 디바이스 작동이 발생하면, 버스 리셋이 발생한다. 즉, 각 노드는 포트의 전압 변화를 감시하고 있다. 그리고, 버스에 새로운 노드가 접속되는 등 포트 전압에 변화가 생기면, 이 변화를 검지한 노드는 버스 상의 다른 노드에 대해, 버스 리셋이 발생한 것을 알린다. 또, 각 노드의 물리층은 버스 리셋이 발생한 것을 링크층에 전한다.
그리고, 이렇게 버스 리셋이 발생하면, 노드 ID 등의 토폴로지 정보가 클리어된다. 그리고, 그 후, 토폴로지 정보가 자동적으로 재설정된다. 즉, 버스 리셋 후, 트리 식별, 자기 식별이 행해진다. 그 후, 등시 리소스 매니저, 사이클 마스터, 버스 매니저 등의 관리 노드가 결정된다. 그리고, 통상의 패킷 전송이 개시된다.
이렇게 IEEE 1394에서는, 버스 리셋 후에 토폴로지 정보가 자동적으로 재설정되기 때문에, 전자기기의 케이블을 자유롭게 동작할 수 있게 되어, 소위 핫 플러그를 실현할 수 있다.
또한, 트랜잭션 도중에 버스 리셋이 발생한 경우에는, 그 트랜잭션은 중지된다. 그리고, 중지된 트랜잭션을 발행한 요구 노드는 토폴로지 정보가 재설정된 후에, 요구 패킷을 재전송한다. 또, 응답 노드는 버스 리셋에 의해 중지된 트랜잭션의 응답 패킷을 요구 노드에 반송해서는 안된다.
2. 전체 구성
다음으로, 본 실시예의 데이터 전송 제어 장치의 전체 구성 예에 대해서 도 7을 사용하여 설명한다.
도 7에 있어서, PHY 인터페이스(10)는 PHY 디바이스(물리층의 디바이스)와의 인터페이스를 행하는 회로이다.
링크 코어(20)(링크 수단)는 링크층의 프로토콜이나 트랜잭션층의 프로토콜의 일부를 하드웨어에 의해 실현하는 회로이고, 노드 사이에서의 패킷 전송을 위한 각종 서비스를 제공한다. 레지스터(22)는 링크 코어(2O)를 제어하기 위한 레지스터이다.
FIFO(Asynchronous Transmission Fifo)(30), FIFO(Isochronous Transmission Fifo)(32), FIFO(Reception Fifo)(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)는 어플리케이션층의 디바이스(예를 들면 프린터의 인자 처리를 행하는 디바이스)와의 인터페이스를 행하는 회로이다.
FIFO(PF)(52)는 어플리케이션층의 디바이스와의 사이에서의 데이터 전송을 위한 FIFO이고, DMAC(54)는 PF용 DMA 컨트롤러이다. 레지스터(56)는 포트 인터페이스(50)나 DMAC(54)를 제어하는 레지스터이다.
SBP-2 코어(84)(전송 실행 회로)는 SBP-2의 프로토콜 일부나 트랜잭션층의 일부를 하드웨어에 의해 실현하는 회로이다. 이 SBP-2 코어(84)의 기능에 의해, 전송 데이터를 일련의 패킷으로 분할하여, 분할된 일련의 패킷을 연속 전송하는 처리가 가능해진다. 또한, 레지스터(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(CPU(66)의 동작 클록)가 입력된다.
버퍼 매니저(70)는 RAM(80)과의 인터페이스를 관리하는 회로이다. 버퍼 매니저(70)는 버퍼 매니저 제어를 위한 레지스터(72), RAM(80)으로의 버스 접속을 조정하는 조정 회로(74), 각종 제어 신호를 생성하는 시퀀서(76)를 포함한다.
RAM(80)은 랜덤 액세스 가능한 패킷 기억 수단으로서 기능하는 것으로, 그 기능은 예를 들면 SRAM, SDRAM, DRAM 등에 의해 실현된다.
또한, RAM(80)은 본 실시예의 데이터 전송 제어 장치에 내장시키는 것이 특히 바람직하지만, 그 일부 또는 전부를 외부 부착으로 하는 것도 가능하다.
도 8에 RAM(80)의 메모리 맵의 일례를 도시한다. 도 8에 도시하는 바와 같이 본 실시예에서는, RAM(80)이 헤더 영역(AR2, AR3, AR4, AR6)과 데이터 영역(AR5, AR7, AR8, AR9)으로 분리되어 있다. 그리고, 패킷의 헤더(광의로는 제어 정보)는 헤더 영역에 격납되며, 패킷의 데이터(ORB, 스트림)는 데이터 영역에 격납된다.
또, 본 실시예에서는, 도 8에 도시하는 바와 같이, RAM(80)의 데이터 영역(AR5, AR7, AR8, AR9)이 ORB 영역(AR5, AR7)과 스트림 영역(AR8, AR9)으로 분리되어 있다.
더욱이 본 실시예에서는, RAM(8O)이 수신 영역(AR2, AR4, AR5, AR9)과 송신 영역(AR3, AR6, AR7, AR8)으로 분리되어 있다.
또한, ORB(제 1 층용 제 1 데이터)는 상술한 바와 같이 SBP-2용 데이터(커맨드)이다. 한편, 스트림(제 1 층보다 상층인 제 2 층용 제 2 데이터)은 애플리케이션층용 데이터(프린터의 인자 데이터, CD-RW의 판독·기록 데이터, 스캐너에 의한 취입 화상 데이터 등)이다.
또, AR1, AR2, AR3에 도시하는 HW(하드웨어)용 페이지 테이블 영역, HW용 수신 헤더 영역, HW용 송신 헤더 영역은 도 7에 도시하는 SBP-2 코어(84)가 페이지 테이블이나 수신 헤더나 송신 헤더를 기록하거나 판독하거나 하기 위한 영역이다.
또한, 도 8에 있어서 AR4, AR5, AR8, AR9에 도시하는 영역은 소위 링 버퍼 구조로 되어 있다.
그런데, 도 7의 버스(90)(혹은 버스(92, 94))는 애플리케이션에 접속되는 것이다(제 1 버스). 또, 버스(95)(혹은 버스(96))는 데이터 전송 제어 장치를 컨트롤하고, 혹은 데이터를 리드·라이트하기 위한 것으로, 데이터 전송 제어 장치를 컨트롤하는 디바이스(예를 들면 CPU)에 전기적으로 접속된다(제 2 버스). 또, 버스(100)(혹은 버스(102, 1O4, 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)로부터의 버스 액세스 요구 조정을 행한다. 그리고, 이 조정 결과에근거하여, 각각 버스(1O5, 107, 109, 96, 99, 94) 중 어느 하나와, RAM(80)의 버스(110) 사이에 데이터 경로가 확립된다(제 1, 제 2, 제 3, 제 5 버스 중 어느 하나와 제 4 버스 사이에 데이터 경로가 확립된다).
본 실시예의 한 특징은 랜덤 액세스가 가능하고 패킷을 격납하는 RAM(8O)을 설치함과 동시에, 서로 분리되는 버스(90, 95, 99, 100)와, 이들 버스를 RAM(80)의 버스(110)에 접속하기 위한 조정 회로(74)를 설치한 점에 있다.
이렇게 함으로써 도 9에 도시하는 바와 같이, 데이터 전송 제어 장치(120), 애플리케이션층의 디바이스(124) 사이의 버스(90)와, CPU 버스(96)와, 데이터 전송 제어 장치(120), RAM(8O) 사이의 버스(110)를 분리할 수 있다. 따라서, CPU 버스(96)를 데이터 전송 제어에만 사용할 수 있게 된다. 또, 버스(90)를 점유하여, 데이터 전송 제어 장치(120), 애플리케이션층의 디바이스(124) 사이에서 데이터 전송을 행할 수 있게 된다. 예를 들면, 데이터 전송 제어 장치(120)가 설치되는 전자기기가 프린터인 경우에는, 버스(90)를 점유하여 인자 데이터를 전송할 수 있게 된다. 이 결과, CPU(66)의 처리 부담을 경감할 수 있어, 시스템 전체의 실전송 속도를 높일 수 있다. 또, CPU(66)로서 염가인 것을 채용할 수 있음과 동시에, CPU 버스(96)로서 고속 버스를 사용할 필요성이 없어진다. 이 때문에, 전자기기의 저 코스트화, 소규모화를 도모하게 된다.
3. SBP-2 코어(전송 실행 회로)의 구성
도 10에 도 7의 SBP-2 코어(84)의 구성예를 도시한다. SBP-2 코어(84)는 전송 데이터를 일련의 패킷으로 자동적으로 분할하여, 분할된 일련의 패킷을 연속 전송하기 위한 회로이고, 주로 도 4의 A3, 도 5의 B1에 도시하는 패킷 전송을 하드웨어에 의해 실행한다.
메인 제어 회로(20O)는 SBP-2 코어(84) 전체를 제어하기 위한 회로이고, 레지스터(202, 2O4, 206, 2O8)를 포함한다.
여기서, 레지스터(2O2, 204, 2O6)는 각각 데이터 전송(하드웨어 SBP-2 처리)의 스타트 커맨드, 포즈 커맨드, 리쥼 커맨드를 펌 웨어(CPU)가 발행하기 위한 레지스터이다. 즉, 펌 웨어가 레지스터(202)에 1을 기록하면, 전송 데이터를 일련의 패킷으로 분할하여 연속 전송하는 처리가 개시한다. 그리고, 이 전송 처리 중에, 펌 웨어가 레지스터(2O4)에 1을 기록하면, 데이터 전송 처리가 포즈되며, 레지스터(206)에 1을 기록하면, 포즈되어 있던 데이터 전송 처리가 재개된다.
레지스터(2O8)는 페이지 테이블의 존재, 부존재를 설정하기 위한 레지스터이다. 즉, 펌 웨어는 이니시에이터로부터의 ORB를 해석하여, 이니시에이터의 데이터 버퍼에 페이지 테이블이 존재하지 않는다고 판단한 경우에는, 레지스터(208)에 1을 기록한다. 한편, 존재한다고 판단한 경우(도 6a의 경우)에는, 레지스터(208)에 O을 기록한다.
페이지 테이블 패치 회로(210)는 이니시에이터(상대 노드)의 데이터 버퍼(기억 수단)에 페이지 테이블이 존재할 경우에, 그 페이지 테이블을 이니시에이터로부터 패치하기 위한 처리를 행하는 회로이다. 보다 구체적으로는, 페이지 테이블 패치 회로(210)는 송신 헤더 생성 회로(260)에 페이지 테이블의 패치를 지시하여, 패치가 완료되면, 페이지 테이블 어드레스나 페이지 테이블 사이즈 갱신을 페이지 테이블 생성 회로(220)에 지시한다.
페이지 테이블 생성 회로(220)는 이니시에이터의 데이터 버퍼에 페이지 테이블이 존재하지 않을 경우에, 가상적인 페이지 테이블을 생성하는 회로이다. 보다 구체적으로는, 메인 제어 회로(2OO)로부터 페이지 테이블 생성이 지시되면, 소정 알고리즘에 따라서 페이지 테이블을 생성한다. 그리고, 생성된 페이지 테이블을 엘리먼트 보존 회로(230)나 버퍼 인터네셔널 페이스(29O)를 통해 RAM의 HW용 페이지 테이블 영역에 기록하기 위한 처리를 행한다.
또한, 페이지 테이블이 존재하는지의 여부는 상술한 바와 같이, 레지스터(208)의 설정치에 근거하여 판단된다. 또, 페이지 테이블 패치 회로(210), 페이지 테이블 생성 회로(22O)에 의해 패치 또는 생성된 페이지 테이블은 RAM의 HW용 페이지 테이블 영역(도 8의 AR1)에 격납된다.
페이지 테이블 생성 회로(220)가 포함하는 레지스터(222)에는, 이니시에이터로부터의 ORB에 의해 지정된 페이지 경계 사이즈가 설정된다. 또, 레지스터(224, 226)에는 페이지 테이블이 존재할 경우에는, ORB에 의해 지정된 페이지 테이블 어드레스, 페이지 테이블 사이즈(엘리먼트 수)가 설정된다(도 6b 참조). 한편, 페이지 테이블이 존재하지 않을 경우에는, 전송 데이터의 선두 어드레스와 데이터 길이가 설정된다(도 6c 참조). 또, 엘리먼트 카운트(228)는 페이지 테이블 생성 시에, 페이지 테이블의 엘리먼트 수(엘리먼트 포인터)를 카운트하는 처리를 행한다.
엘리먼트 보존 회로(230)는 SBP-2 코어의 처리 대상이 되는 페이지 테이블 엘리먼트 정보를 보존하는 회로로, 페이지 테이블 엘리먼트의 세그먼트 길이를 보존하는 레지스터(232)와, 세그먼트 오프셋 어드레스를 보존하는 레지스터(234)를 포함한다.
전송 실행 제어 회로(240)는 SBP-2 코어에 의한 데이터 전송(스트림 전송) 실행을 제어하는 회로로, 레지스터(242, 244)를 포함한다. 그리고, 레지스터(242)는 현재 처리 중인 페이지 테이블 엘리먼트 번호를 표시한다. 또, 레지스터(244)에는, 데이터 전송을 개시하는 페이지 테이블 엘리먼트 번호가 펌 웨어에 의해 설정된다. 이로써, 펌 웨어는 임의의 페이지 테이블 엘리먼트로부터의 데이터 전송을 개시할 수 있게 된다.
페이로드 분할 회로(250)는 전송 데이터를 페이로드 사이즈의 패킷으로 분할하는 처리를 행한다. 페이로드 분할 회로(250)가 포함하는 레지스터(252)에는 ORB에 의해 지정된 최대 페이로드 사이즈가 설정된다. 또, 레지스터(254)는 실제의 페이로드 사이즈를 표시한다. 페이로드 분할 회로(250)는 RAM의 HW 페이지 테이블 영역(도 8의 AR1)으로부터 판독되어 레지스터(232)에 보존되는 페이지 테이블 엘리먼트의 세그먼트 길이와, 레지스터(252)에 설정된 최대 페이로드 사이즈에 근거하여, 페이로드 분할 처리를 행하게 된다.
송신 헤더 생성 회로(260)는 펌 웨어에 의해 설정된 스피드 코드나 데스티네이션 ID 등에 근거하여, 도 4의 A3, 도 5의 B1의 각 요구 패킷의 헤더를 생성하는 처리를 행한다. 그리고, 생성된 헤더는 RAM의 HW용 송신 헤더 영역(도 8의 AR3)에 격납된다. 이렇게 본 실시예에서는 연속 전송되는 일련의 요구 패킷 헤더가 하드웨어에 의해 자동 생성되기 때문에, 펌 웨어의 처리 부담을 대폭 경감할 수 있다.
트랜잭션 제어 회로(270)는 링크 코어 등의 외부 회로 블록으로부터의 에러 정보나 스테이터스 정보를 받아, 트랜잭션 실행을 위한 각종 처리를 행한다. 그리고, 트랜잭션 실행이 완료하면, 트랜잭션 완료 신호(TComp)를 액티브로 하여 페이지 테이블 패치 회로(210)나 페이로드 분할 회로(250)에 알린다. 이렇게 본 실시예의 SBP-2 코어는 패킷 단위가 아니라, 트랜잭션 단위로 데이터 전송 처리를 관리하고 있다.
스플릿 타이머(280)는 트랜잭션 개시 시에 스플릿 타임을 로드하여, 카운트 다운을 개시한다. 그리고, 카운트치가 0이 되었으면, 타임 아웃이 된 것을 트랜잭션 제어 회로(270)에 전한다.
버퍼 인터페이스(290)는 도 7의 버퍼 매니저(70)와의 인터페이스로서 기능하는 회로이다. SBP-2 코어(84)의 각 블록은 이 버퍼 인터페이스(290)를 통해, 버퍼 매니저(70)에 대해 RAM(80)으로의 액세스를 요구하게 된다.
3.1 메인 제어 회로
다음으로, 메인 제어 회로(200)의 동작에 대해서 도 11의 흐름도를 사용하여 설명한다.
우선, HW용 페이지 테이블 영역에 이미 격납되어 있는 페이지 테이블을 사용할지의 여부를 판단하여(스텝(S1)), 사용할 경우에는 스텝(S5)으로, 사용하지 않을 경우에는 스텝(S2)으로 이행한다. 이미 HW용 페이지 테이블 영역에 격납되어 있는 페이지 테이블을 사용할지의 여부 설정은 펌 웨어가 소정 레지스터에 소정 설정치를 기록함으로써 실현된다.
다음으로, 도 10의 레지스터(2O8)의 설정치에 근거하여, 이니시에이터의 데이터 버퍼에 페이지 테이블이 존재하는지의 여부를 판단한다(스텝(S2)). 그리고, 존재할 경우에는, 페이지 테이블 패치 회로(21O)에 대해, 페이지 테이블의 패치 처리 개시를 지시한다(스텝(S3)). 한편, 존재하지 않을 경우에는, 페이지 테이블 생성 회로(220)에 대해, 페이지 테이블의 생성 처리 개시를 지시한다(스텝(S4)).
그리고, 페이지 테이블의 패치 또는 생성 처리가 완료하면, 전송 실행 제어 회로(240)에 대해, 전송 실행 처리(스트림 데이터 태스크) 개시를 지시한다(스텝(S5)).
또한, 본 실시예의 페이지 테이블 생성 회로(220)는 이하에 설명하는 바와 같은 수법으로 페이지 테이블을 생성한다.
예를 들면, 도 12에 도시하는 바와 같이, 전송 데이터의 선두 어드레스(SA)가 페이지 경계(PB0, PB1) 사이에 있고, 종료 어드레스(EA)가 페이지 경계(PB4, PB5) 사이에 있다고 하자. 이 경우에, 페이지 테이블 생성 회로(220)는 페이지 경계(PB1, PB4) 사이(제 K, 제 L 페이지 경계 사이)의 페이지 테이블의 엘리먼트 수가 1(광의로는 소정 수)이 되는 가상적인 페이지 테이블을 생성한다.
보다 구체적으로는, 선두 어드레스(SA)와 페이지 경계(PB1) 사이가 X종의 페이지 테이블 엘리먼트(제 1 페이지 테이블 엘리먼트)가 되고, 페이지 경계(PB1, PB4) 사이가 Y종의 페이지 테이블 엘리먼트(제 2 페이지 테이블 엘리먼트)가 되며, 페이지 경계(PB4)와 종료 어드레스(EA) 사이가 Z종의 페이지 테이블 엘리먼트(제 3 페이지 테이블 엘리먼트)가 되는 3페이지의 페이지 테이블을 생성한다.
단, 전송 데이터의 선두 어드레스(SA)가 페이지 경계(PB1)(제 K 페이지 경계 계) 상에 있을 경우에는, X종의 페이지 테이블 엘리먼트는 생성되지 않고, 2페이지의 페이지 테이블이 된다. 또, 전송 데이터의 종료 어드레스(EA)가 페이지 경계(PB4)(제 L 페이지 경계) 상에 있을 경우에는, Z종의 페이지 테이블 엘리먼트는 생성되지 않으며, 2페이지의 페이지 테이블이 된다. 더욱이, 전송 데이터의 선두 어드레스(SA)가 페이지 경계(PBO, PB1) 사이에 있으며, 종료 어드레스(EA)가 페이지 경계(PB0, PB1) 사이 또는 PB1 상에 있을 경우에는, SA, EA 사이가 X종의 페이지 테이블 엘리먼트가 되는 1페이지의 페이지 테이블이 생성된다.
또, 본 실시예에서는, 도 10의 페이로드 분할 회로(250)가 최대 페이로드 사이즈가 페이지 경계 사이즈의 약수가 되는 페이로드 사이즈의 패킷에 전송 데이터를 분할하고 있다. 즉, 도 13에 있어서, 최대 페이로드 사이즈(MaxPLS)가 페이지 경계 사이즈(PBS)의 약수가 되는 패킷 분할이 행해진다.
이렇게, 최대 페이로드 사이즈(MaxPLS)를 페이지 경계 사이즈(PBS)의 약수로 하면, 예를 들면 도 13의 C1이나 C2에 도시하는 바와 같이, 페이지 경계(PB2 나 PB3)에 있어서 패킷의 페이로드가 페이지 경계를 걸치지 않게 된다. 따라서, 본 실시예와 같이 PB1, PB4 사이의 페이지 테이블 엘리먼트 수가 1이 되는 페이지 테이블을 생성한 경우에도, 페이지 경계를 넘지 않는다는 제약을 준수하면서 데이터 전송을 행할 수 있게 된다.
3.2 전송 실행(스트림 태스크) 제어 회로
다음으로, 전송 실행 제어 회로(240)의 동작에 대해서 도 14의 흐름도를 사용하여 설명한다.
우선, 도 10의 커런트 엘리먼트 번호의 레지스터(242)에 레지스터(244)의 스타트 엘리먼트 번호를 로드한다(스텝(S40)). 그리고, 커런트 엘리먼트 번호의 페이지 테이블 엘리먼트를 RAM의 HW용 페이지 테이블 영역으로부터 판독하는 처리를 행한다(스텝(S41)). 보다 구체적으로는, 전송 실행 제어 회로(240)는 처리 대상이 되는 페이지 테이블 엘리먼트 판독을 버퍼 인터페이스(290)에 지시한다. 그렇게 하면, 버퍼 인터페이스(290)는 처리 대상이 되는 페이지 테이블 엘리먼트를 RAM의 HW용 페이지 테이블 영역으로부터 판독, 페이지 테이블 엘리먼트의 세그먼트 길이를 레지스터(232)에, 세그먼트 오프셋 어드레스를 레지스터(234)에 기록한다.
다음으로, 페이로드 회로(250)에 대해 페이로드 처리 개시를 지시한다(스텝(S42)).
다음으로, 현재의 페이지 테이블 엘리먼트 처리를 종료했는지의 여부를 판단하여(스텝(S43)), 종료하고 있지 않을 경우에는 스텝(S42)으로 돌아간다. 한편, 종료한 경우에는, 모든 페이지 테이블 엘리먼트 처리를 종료했는지의 여부를 판단하여(스텝(S44)), 종료하고 있지 않을 경우에는, 커런트 엘리먼트 번호를 +1하여(스텝(S45)), 스텝(S41)으로 돌아간다.
또한, 모든 페이지 테이블 엘리먼트 처리를 종료했는지의 여부는 레지스터(226)의 페이지 테이블 사이즈를 8로 제산함으로써 얻어지는 엘리먼트 수와, 커런트 엘리먼트 번호를 비교함으로써 판단한다.
3.3 페이로드 분할 회로
다음으로, 페이로드 분할 회로(250)의 동작에 대해서 도 15의 흐름도를 사용하여 설명한다. 페이로드 분할 회로(250)는 도 13에 도시하는 바와 같이 페이로드 사이즈의 패킷에 전송 데이터를 분할하는 처리를 행하는 것이다.
우선, 도 10의 레지스터(232)에 격납되는 페이지 테이블 엘리먼트의 세그먼트 길이의 나머지 바이트 수가 최대 페이로드 사이즈 이상이 되어 있는지의 여부를 판단한다(스텝(S51)). 그리고, 나머지 바이트 수가 최대 페이로드 사이즈 이상이 되어 있을 경우에는, 패킷의 페이로드 사이즈를 최대 페이로드 사이즈로 설정한다(스텝(S52)). 한편, 도 13의 C3이나 C4에 도시하는 바와 같이, 나머지 바이트 수가 최대 페이로드 사이즈보다도 작게 되어 있을 경우에는, 패킷의 페이로드 사이즈를 나머지 바이트 수로 설정한다(스텝(S53)).
페이로드 사이즈 설정 후, 트랜잭션의 실행 처리 개시(송신 헤더 생성)를 송신 헤더 생성 회로(260)에 지시한다(스텝(S54)). 그리고, 트랜잭션 제어 회로(270)로부터의 신호(TComp)에 의해 트랜잭션 완료가 알려지면, 엘리먼트 보존 회로(230)에 대해, 레지스터(232, 234)에 격납되어 있는 페이지 테이블 엘리먼트의 세그먼트 길이(나머지 바이트 수), 세그먼트 오프셋 어드레스(선두 어드레스) 갱신을 지시한다(스텝(S55)).
다음으로, 메인 제어 회로(2O0)로부터의 신호 Pause에 근거하여, 처리를 포즈할지의 여부를 판단한다(스텝(S56)). 즉, 신호 Pause가 액티브된 경우에는 처리를 포즈한다. 그리고, 포즈된 경우에는, 신호 Pause가 비 액티브된 것을 조건으로 처리를 리쥼한다(스텝(S57)).
3.4 송신 헤더 생성 회로, 트랜잭션 제어 회로
다음으로, 송신 헤더 생성 회로(260), 트랜잭션 제어 회로(270)의 동작에 대해서 도 16의 흐름도를 사용하여 설명한다.
우선, 요구 패킷의 헤더를 생성하여, HW용 송신 헤더 영역(도 8의 AR3)에 기록한다(스텝(S61)). 보다 구체적으로는, 도 4의 A3과 같이 이니시에이터에 데이터를 송신할 경우에는, 라이트 요구(블록 라이드 요구) 패킷의 헤더를 HW용 송신 헤더 영역에 기록한다. 한편, 도 5의 B1과 같이 이니시에이터로부터 데이터를 수신할 경우나, 베이스 테이블을 패치할 경우에는, 리드 요구 패킷의 헤더를 HW용 송신 헤더 영역에 기록한다.
다음으로, 전송의 스타트 신호(HWStart)를 액티브로 하여 전송 개시를 지시한다(스텝(S62)), 이니시에이터로부터의 ACK 수신을 기다린다(스텝(S63)).
다음으로, 송신 패킷이 리드 요구 패킷인 경우에는, ACK 펜딩인지의 여부를 판단하여(스텝(S65)), ACK 펜딩이 아닐 경우에는 스텝(S72)으로 이행하여 에러 포즈 상태로 한다. 한편, ACK 펜딩일 경우에는, 스플릿 타이머 기동을 지시하여(스텝(S66)), 응답 패킷 수신을 기다린다(스텝(S67)).
다음으로, 응답 패킷 수신이 퍼팩트한지의 여부를 판단하고(스텝(S68)), DCE의 경우에는 다시 응답 패킷이 수신되는 것을 기다려, 퍼팩트인 경우에는 스텝(S69)으로 이행하고, 그 밖의 경우에는 스텝(S72)으로 이행하여 에러 포즈 상태로 한다. 그리고, 스텝(S69)으로 이행한 경우에는 스플릿 타이머 정지를 지시하여, 신호(TComp)를 액티브로 하고 전송 데이터의 포인터를 갱신한다(스텝(S70)).
한편, 송신 패킷이 라이트 요구 패킷인 경우에는, 우선, ACK 펜딩인지의 여부를 판단한다(스텝(S71)). 그리고, ACK 펜딩인 경우에는 스텝(S66)으로 이행하고, ACK 컴플리트인 경우에는 스텝(S7O)으로 이행하며, 그 이외의 경우에는 스텝(S72)으로 이행하여 에러 포즈 상태로 한다.
또한, 스텝(S72)으로 이행하여 처리가 에러 포즈가 된 경우에는, 처리가 리쥼된 것을 조건으로, 스텝(S62)으로 이행한다(스텝(S73)). 즉, 이 경우에는, HW용 송신 헤더 영역에 이미 기록하고 있는 송신 헤더를 사용하여, 전송을 재개하게 된다.
4. 데이터 전송의 스타트(리쥼) 커맨드의 취소
이상과 같이 본 실시예에 의하면, 도 4의 A3이나 도 5의 B1에 도시하는 전송 처리가 하드웨어에 의해 자동 실행된다. 즉, 펌 웨어가 패킷의 연속 전송의 스타트를 지시하면(도 10의 레지스터(202)에 1을 기록하면), SBP-2 코어(84)가 페이지 테이블의 패치 또는 생성 처리, 페이로드 분할 처리, 송신 헤더의 생성 처리, 각 패킷의 전송 스타트 처리, 에러 처리 등을 하드웨어에 의해 자동 실행하여, 일련의 패킷을 자동 전송한다. 이로써, 펌 웨어의 처리 부담을 각별히 경감할 수 있게 되어, 데이터 전송 제어 장치의 실전송 속도를 대폭 향상할 수 있다.
그렇지만, IEEE 1394에 있어서는 케이블 작동이 행해지면, 버스 리셋(광의로는 노드의 토폴로지 정보를 클리어하는 리셋)이 발생한다. 그리고, 이 케이블 작동은 임의의 타이밍으로 행해지기 때문에, CPU 상에서 동작하는 펌 웨어(처리 수단)는 버스 리셋의 발생 시기를 미리 예기할 수 없다. 따라서, 버스 리셋 발생 후의 버스 리셋 기간에 있어서, 펌 웨어가 패킷을 연속 전송시키는 스타트 커맨드를 발행해버리는 사태가 생긴다. 그리고, 이러한 상태가 생기면, 본래는 버스 리셋에 의해 무효가 되는 다수의 패킷 전송이 개시되는 등의 부적합함이 생긴다.
특히, 이 종류의 데이터 전송 제어 장치가 설치되는 전자기기에서는, 염가이고 저속인 CPU가 사용되는 경우가 많다. 따라서, 인터럽트 등을 사용하여 버스 리셋 발생을 펌 웨어에 알려도, 데이터 전송이 개시하고나서 펌 웨어가 데이터 전송 정지를 지시하기까지의 사이에 장시간의 타임 래그가 생겨버려, 상기 부적합함이 더욱 심각한 것이 된다.
그래서, 본 실시예에서는, 버스 리셋 기간 중에 펌 웨어가 데이터 전송의 스타트 커맨드(혹은 리쥼 커맨드)를 발행한 경우에는, 그 커맨드 실행을 취소함과 동시에, 버스 리셋 발생에 의해 커맨드 실행이 취소된 것을 펌 웨어에 알리도록 하고 있다. 이하, 데이터 전송의 스타트 커맨드나 리쥼 커맨드의 취소 수법에 대해서 구체적으로 설명한다.
도 17에, 도 1O의 메인 제어 회로(20O)의 구성예를 도시한다. 또한, 도 17에서는, 본 발명과 무관계한 회로 부분에 대해서는 그 기재를 생략하고 있다.
DFF1, DFF6, DFF10(D 플립 플롭)은 각각 도 10의 레지스터(204, 206, 202)에 상당한다.
예를 들면 CPU가 데이터 버스 신호(DIN)의 비트(K)를 1로 하여, 라이트 이네이블 신호(WR)를 1(액티브)로 하면, CPU의 동작 클록인 HCLK의 상승으로 DFF1(포즈의 레지스터(204))에 1이 기록된다. 그리고, 데이터 전송 제어 장치의 시스템 록인 SCLK에 의해 동작하는 DFF2, DFF3, DFF4, DFF5나 AND2에 의해, 1클록(SCLK) 폭의 신호인 DelayedPause가 생성된다.
또, DIN의 비트(L)를 1로 하고 WR을 1로 하면, DFF6(리쥼의 레지스터(206))에 1이 기록되고, DFF7, DFF8, DFF9, AND5에 의해, 1클록 폭의 신호 Resume가 생성된다.
또, DIN의 비트(M)를 1로 하고 WR를 1로 하면, DFF10(스타트의 레지스터(202))에 1이 기록되고, DFF11, DFF12, DFF13, AND8에 의해, 1클록 폭의 신호 Start가 생성된다.
취소 회로(3O0)는 AND4, AND5, AND7, AND8을 포함한다.
여기서 AND4, AND5에는 모두 DFF7의 출력(Q7)의 반전 신호와 DFF8의 출력(Q8)이 입력된다. 단, AND4에는 버스 리셋 기간 신호(BPeriod)가 그대로 입력되는 데 대해, AND5에는 BRPeriod의 반전 신호가 입력된다. 이렇게 BRPeriod의 반전 신호를 AND5에 입력함으로써, 버스 리셋 기간 중에 CPU(펌 웨어)가 리쥼 커맨드를 발행한 경우에, 그 커맨드 실행을 취소할 수 있다.
또, AND7, AND8에는 모두 DFF11의 출력(Q11)의 반전 신호와 DFF12의 출력(Q12)이 입력된다. 단, AND7에는 BRPeriod가 그대로 입력되는 데 대해 AND8에는 BRPeriod의 반전 신호가 입력된다. 이렇게 BRPeriod의 반전 신호를 AND8에 입력함으로써, 버스 리셋 기간 중에 CPU가 스타트 커맨드를 발행한 경우에, 그 커맨드 실행을 취소할 수 있다.
AND4, AND7의 출력인 Cancel1, Cancel2는 OR1에 입력된다. 그리고, OR1의출력인 INTBRC는 도 7의 CPU 인터페이스(60)가 포함하는 인터럽트 컨트롤러(64)에 입력된다.
BRPeriod=1이 되는 버스 리셋 기간 중에, CPU가 리쥼 커맨드 또는 스타트 커맨드를 발행하면, Cancel1 또는 Cancel2가 1이 된다. 이로써, INTBRC가 1이 되어, 인터럽트 컨트롤러(64)를 통해 CPU에 대해 인터럽트가 발생한다. 그렇게 하면 CPU가 요인 레지스터(65)를 판독해, 인터럽트 요인을 해석한다. 이로써, 버스 리셋 발생에 의해 커맨드가 취소된 것이 CPU(펌 웨어)에 알리게 된다.
스타트 제어 회로(31O)는 데이터 전송 스타트를 제어하는 회로이고, 신호 Start, FromSteam, FetchDone, MakeDone, StreamDone이 입력된다. 또, 신호 StartFetch, StartMake, StartSteam을 출력한다.
여기서, Start는 상술한 바와 같이, CPU(펌 웨어)가 데이터 전송의 스타트 커맨드를 액티브로 한 경우에 1이 되는 신호이다.
또, FromStream은 페이지 테이블의 패치나 생성을 행하지 않고서 스트림 전송(도 4의 A3, 도 5의 B1에 도시하는 전송)으로부터 처리를 스타트할 경우에 1이 되는 신호이다.
또, StartFetch, StartMake, StartStream은 각각, 도 1O의 페이지 테이블 패치 회로(210), 페이지 테이블 생성 회로(22O), 전송 실행 제어 회로(24O)에 대해, 페이지 테이블의 패치, 페이지 테이블의 생성, 스트림의 전송 개시를 지시할 경우에 1이 되는 신호이다.
또, FetchDone, MakeDone, SteamDone은 각각, 페이지 테이블의 패치, 페이지테이블의 생성, 스트림 전송이 완료한 경우에 1이 되는 신호이다.
또, Exec는 데이터 전송 실행 중에 1이 되는 신호이다.
포즈 제어 회로(320)는 데이터 전송 포즈를 제어하는 회로이고, 신호 DelayedPause, Resume, Exec, Err이 입력되어, 신호 Pause를 출력한다.
여기서, DelayedPasue, Resume는 상술한 바와 같이, CPU가 데이터 전송의 포즈 커맨드, 리쥼 커맨드를 발행한 경우에 1이 되는 신호이다. 단, DelayedPause는 Resume보다도 1클록(SCLK)분만큼 지연한 신호로 되어 있다.
또, Err은 데이터 전송에 에러가 생긴 경우 등에 1이 되는 신호이다.
또, Pause는 도 15의 스텝(S56)에서 설명한 바와 같이, 데이터 전송을 포즈할 경우에 1이 되는 신호이다.
다음으로, 스타트 제어 회로(310)의 동작에 대해서 도 18의 상태 천이도를 사용하여 설명한다.
우선, 상태(SO0)에서는 Comp(완료 신호)=0, Exec=0으로 되어 있다. 그리고, Start=1 또한 FromStream=0이 되면, 다음 클록에서 상태(S01)로 이행한다. 그리고, 상태(S01)에서는 Exec=1로 한다. 또, 페이지 테이블이 존재할 경우는 StartFetch=1로 하여, 페이지 테이블이 존재하지 않을 경우는 StartMake=1로 한다. 이로써, 페이지 테이블의 패치 또는 생성이 개시한다. 그리고, 다음 클록에서 상태(SD02)로 이행하여, StartFetch=0, StartMake=0으로 돌아간다.
또한, 상태(SOO)에 있어서, Start=1 또한 FromStream=1이 되면, 다음 클록에서 상태(SO4)로 이행하여, 페이지 테이블의 패치나 생성 처리가 생략된다.
상태(SO2)에서는, FetchDone=1 또한 MakeDone=1이 되면, 다음 클록에서 상태(SO3)로 이행한다. 그리고, Pause=1이면 상태(S3)에 머문다. 이렇게 본 실시예에서는 Pause=1이 되면, 페이지 테이블의 패치 또는 생성 완료 후에 전송 처리가 포즈된다.
한편, Pause=0이 되면 상태(S04)로 이행하며, StartStream=1이 되어, 스트림 전송이 스타트한다. 그리고, 다음 클록에서 StartStream=0으로 돌아간다(상태(S05)). 그리고, 스트림 전송이 완료하여 StreamDone=1이 되면, 완료 신호 Comp=1로 한다(상태(S06)).
다음으로 포즈 제어 회로(320)의 동작에 대해서 도 19의 상태 천이도를 사용하여 설명한다.
상태(S10)에서는 Pause=0으로 되어 있다. 그리고, DelayedPause=1 또한 Exec=1이 되면, 다음 클록에서 상태(S11)로 이행하여, Pause=1이 된다. 이로써 전송 처리가 포즈된다. 그리고, Resume=1 또한 Err=0(혹은 Exec=0)이 되면, Pause=0으로 돌아간다. 이로써, 포즈되어 있던 전송 처리가 리쥼되게 된다.
도 20에, 도 17의 메인 제어 회로의 동작을 설명하기 위한 타이밍 파형도를 도시한다.
도 20에 있어서, BRDetect는 버스 리셋을 검출한 경우에 1이 되는 신호이다. 또, SelfIDEnd는 버스 리셋 발생 후에 행해지는 자기 식별 처리가 종료한 경우에 1이 되는 신호이다. 그리고, 버스 리셋 기간 신호(BRPeriod)는 BRDetect의 하강으로 1이 되며, SelfIDEnd의 하강으로 0이 된다. 따라서, BRPeriod=1이 되는 기간이버스 리셋 기간이 된다.
예를 들면, 도 20의 E1에서는, BRPeriod=0으로 되어 있으며, 버스 리셋 기간으로 되어 있지 않다. 그리고, 이 경우에는, CPU가 스타트(리쥼) 커맨드를 발행하여, E2에 도시하는 바와 같이 DIN의 비트 M(L)과 WR가 1이 되면, E3에 도시하는 바와 같이 신호 Start(Resume)가 1이 된다. 이로써, 데이터 전송이 스타트(리쥼)한다.
한편, 도 20의 E4에서는, BRPeriod=1로 되어 있으며, 버스 리셋 기간으로 되어 있다. 그리고, 이 경우에는, CPU가 스타트(리쥼) 커맨드를 발행하여, E5에 도시하는 바와 같이 DIN의 비트 M(L)과 WR이 1이 되어도, E6에 도시하는 바와 같이 신호 Start(Resume)는 0인 채가 된다. 따라서, CPU가 발행한 스타트(리쥼) 커맨드는 취소된다. 즉, 도 17의 AND5, AND8에 BRPeriod의 반전 신호(=0)가 입력됨으로써, Q8, Q12의 신호 펄스가 마스크되어, AND5, AND8의 출력 Q8', Q12'이 0으로 고정된다. 이로써, 신호 Start(Resume)도 O으로 고정되어, 데이터 전송 스타트(리쥼)가 취소된다.
또, 이 때, AND4, AND7에는 반전 신호가 아니라 BRPeriod 그 자체가 입력되어 있다. 따라서, 스타트(리쥼) 커맨드가 발행되어 Q8, Q12에 신호 펄스가 발생하면, Cancel1, Cancel2가 1이 되며, 도 20의 E7에 도시하는 바와 같이 INTBRC가 1이 된다. 이로써, 스타트(리쥼) 커맨드가 취소된 것이 회로(64)를 통해 CPU에 알려지게 된다.
이상과 같이 본 실시예에 의하면, 버스 리셋 기간에 스타트(리쥼) 커맨드가발행되어도, 그 커맨드가 취소된다. 따라서, CPU는 스타트 커맨드를 발행했다고 생각해도, 실제의 데이터 전송은 행해지지 않게 된다.
즉, 버스 리셋의 발생 후에 전송 개시가 지시된 패킷은 본래 무효가 되는 패킷이다. 그렇지만, 본 실시예의 데이터 전송 제어 장치에서는, 스타트 커맨드가 발행되면, 도 4의 A3, 도 5의 B1에 도시하는 일련의 패킷이 하드웨어에 의해 자동적으로 연속 전송되어 버린다. 그리고, 이 패킷 전송은 CPU가 전송을 정지하지 않는 한 계속되게 된다. 따라서, 무효인 다수의 패킷이 전송되어 버리거나, 링크 코어 등의 다른 회로 블록의 오동작을 초래하거나, CPU 처리를 혼란시키거나 하는 등의 부적합함이 생길 가능성이 있다. 본 실시예에 의하면, CPU가 발행한 스타트 커맨드는 즉석 취소되기 때문에, 이러한 부적합함을 해소할 수 있다.
예를 들면, 본 실시예와 다른 수법으로서 이하와 같은 수법도 생각할 수 있다. 즉, 버스 리셋 기간 중에 스타트 커맨드가 발행되어도, 그 커맨드를 취소하지 않고서, 인터럽트만을 발생시킨다. 그리고, 이 인터럽트에 의해 버스 리셋 발생이 알려진 CPU가 예를 들면 도 10의 레지스터(204)에 1을 기록하고, 패킷 전송을 포즈한다.
그렇지만, 이 수법에서는, 스타트 커맨드 발행 후, CPU가 레지스터(204)에 1을 기록하고, 전송 처리를 포즈하기까지의 사이에, 대단히 다수의 패킷이 전송되어 버리는 부적합함이 생긴다. 특히, 이 종류의 데이터 전송 제어 장치가 설치되는 전자기기에는, 염가이고 저속인 CPU가 사용되는 경우가 많다. 그리고, 이러한 저속 CPU가 사용되면, 스타트 커맨드 발행 후, 전송 처리를 포즈하기까지의 기간이 장시간이 되어버려, 상기 부적합함이 더욱 심각한 것이 된다.
본 실시예에 의하면, 버스 리셋 기간 중에 CPU가 발행한 스타트 커맨드는 즉석 취소되어, 데이터 전송은 개시되지 않기 때문에, 결국, 패킷은 1개도 전송되지 않게 된다. 그리고, 취소 후에 사후 승인적으로, 커맨드를 취소한 것이 인터럽트를 사용하여 CPU에 알려진다. 따라서, CPU의 속도에 의존하지 않고, 상기와 같은 불량을 확실하게 방지할 수 있게 된다.
또한, 버스 리셋의 발생 시기는 임의이기 때문에, CPU가 스타트 커맨드를 발행한 후에 버스 리셋이 발생하는 경우도 있다. 그리고, 버스 리셋 발행 후의 패킷(트랜잭션)은 무효가 되기 때문에, 스타트 커맨드 발행 후에 버스 리셋이 발생한 경우에는, 전송 처리를 일시 중단할 필요가 있다.
이러한 경우에 본 실시예에서는, CPU가 도 10의 레지스터(204)(도 17의 DFF1)에 1을 기록함으로써, 전송 처리를 포즈할 수 있다는 특징이 있다. 그리고, 무효 패킷(버스 리셋 발생 후의 패킷)과 무효가 아닌 패킷(버스 리셋 발생 전의 패킷)을 구별하는 처리 등을 행한 후에, 도 10의 레지스터(206)(도 17의 DFF6)에 1을 기록함으로써, 전송 처리를 리쥼할 수도 있다.
또한, 이 경우에 본 실시예에서는, 전송 처리를 포즈하는 장소가 미리 정해져 있다(예를 들면 도 15의 스텝(S56), 도 16의 스텝(S72), 도 18의 상태(S03)). 예를 들면 임의의 장소에서 포즈할 수 있도록 하면, 회로 구성이 복잡화하는 등의 문제가 생기지만, 포즈 장소를 미리 정해 두면, 회로 구성을 간소화할 수 있다. 그리고, 정보를 갱신한 후(도 15의 스텝(S56))나, 데이터 전송 개시 전(도 16의 스텝(S72))이나, 페이지 테이블의 페치나 생성 완료 후(도 18의 상태(S03)) 등과 같이, 단락이 좋은 장소에서 전송 처리를 포즈하도록 하면, 동작의 안정화, 버그 발생 방지 등을 도모할 수 있게 된다.
5. 스텝 실행
그런데, 도 17의 회로에서는, 전송 처리의 스텝 실행도 가능하게 되어 있다. 즉, CPU가 리쥼 커맨드와 포즈 커맨드를 동시에 발행하면, 전송 처리가 스텝 실행된다.
예를 들면 도 21의 F1에서는, 데이터 버스 신호(DIN)의 비트(K)와 WR이 1로 되어 있다. 그리고, 이 경우에는, F2에 도시하는 바와 같이, DelayedPause만이 1이 되어, 전송 처리가 포즈한다.
한편, 도 21의 F3에서는, DIN의 비트(K 및 L)의 쌍방과 WR이 1로 되어 있다. 그리고, 이 경우에는, F4에 도시하는 바와 같이 Resume가 1이 되고, 그 후에 1클록만큼 지연하여 DelayedPause가 1이 된다. 그리고, 이들 신호 Resume, DelayedPause가 포즈 제어 회로(320)에 입력됨으로써, 전송 처리의 스텝 실행이 실현된다.
예를 들면 도 22에서는, CPU가 스타트 커맨드를 발행하면, G1에 도시하는 바와 같이 Start가 1이 된다. 이로써 G2에 도시하는 바와 같이 Exec=1이 되어(도 18의 상태(S01)), 전송 처리가 스타트한다.
다음으로, CPU가 포즈 커맨드를 발행하여, G3에 도시하는 바와 같이 DelayedPause가 1(액티브)이 되면, G4에 도시하는 바와 같이 Pause=15가 된다(도19의 상태(S11)). 이로써, 미리 정해진 포즈 장소(예를 들면 도 15의 스텝(S56), 도 18의 상태(S03))로 전송 처리가 포즈한다.
다음으로, CPU가 리쥼 커맨드를 발행하여, G5에 도시하는 바와 같이 Resume가 1(액티브)이 되면, G6에 도시하는 바와 같이 Pause=0이 되어(도 19의 상태(S10)), 전송 처리가 리쥼한다. 그리고, CPU가 포즈 커맨드를 발행하여, G7에 도시하는 바와 같이 DelayedPause가 1이 되면, 전송 처리가 다시 포즈한다.
다음으로, CPU가 포즈 커맨드와 리쥼 커맨드 양쪽을 동시에 발행하여, 상술한 도 21의 F3과 같이 DIN의 비트(K 및 L) 쌍방과 WR이 1이 되면, 도 22의 G8에 도시하는 바와 같이 Resume가 1이 된 후에 1클록만큼 지연하여 DelayedPause가 1이 된다. 이로써 Pause는 G10에 도시하는 바와 같이 1에서 0으로 변화하여, 1클록 기간만큼 0이 된 후에, G11에 도시하는 바와 같이 1로 돌아간다. 따라서, 1클록 기간만큼 전송 처리가 실행된 후에, 다음에 포즈할 수 있는 장소에서 전송 처리가 포즈한다. 즉, 전송 처리의 스텝 실행이 실현된다.
이상과 같은 스텝 실행이 가능해지면, 패킷을 1개씩 전송하는 처리가 가능해진다. 즉, 도 15의 페이로드 분할 시에 CPU가 포즈 커맨드와 리쥼 커맨드를 동시에 발행하면, 우선, 신호 Pause=0이 됨으로써, 스텝(S57)에서 전송 처리가 리쥼된다. 그리고, 그 후, Pause=1이 되면, 도 14의 스텝(S43), 도 15의 스텝(S51 내지 S55) 처리가 행해져 페이로드 사이즈 중 1개 패킷이 전송되며, 그 후에 전송 처리가 포즈된다(스텝(S56)). 그리고, 다시 CPU가 포즈 커맨드와 리쥼 커맨드를 동시에 발행하면, 다음 패킷이 전송되어, 그 후에 전송 처리가 포즈된다. 이렇게 패킷을 1개씩 전송하는 스텝 실행이 가능해짐으로써, SBP-2 코어의 회로나 펌 웨어의 디버그 등이 가능해진다.
예를 들면, 본 실시예와 다른 수법으로서, 우선, CPU가 리쥼 커맨드를 발행하여 패킷을 전송하고, 다음의 라이트 사이클로 CPU가 포즈 커맨드를 발행하여, 패킷 전송을 포즈하는 수법도 생각할 수 있다. 그렇지만, 도 21로부터 분명한 바와 같이, CPU의 동작 속도는 일반적으로 느리고, CPU의 라이트 사이클은 길다. 따라서, 상기 수법에서는, CPU가 리쥼 커맨드를 발행한 후, 포즈 커맨드를 발행하기까지의 사이에 복수의 패킷이 전송되어 버리게 된다. 즉, 패킷을 1개씩 전송하는 스텝 실행을 실현할 수 없다.
이에 대해 본 실시예에서는, 간단히 도 17의 DFF5를 1개 추가하여 DelayedPause를 Resume보다도 1클록 기간만큼 지연시킨다는 간단한 수법으로, 패킷을 1개씩 전송하는 스텝 실행 실현에 성공하고 있다.
6. 전자기기
다음으로, 본 실시예의 데이터 전송 제어 장치를 포함하는 전자기기 예에 대해서 설명한다.
예를 들면 도 23a에 전자기기의 하나인 프린터의 내부 블록도를 도시하며, 도 24a에 그 외관도를 도시한다. CPU(마이크로 컴퓨터)(510)는 시스템 전체 제어 등을 행한다. 조작부(511)는 프린터를 사용자가 조작하기 위한 것이다. ROM(516)에는 제어 프로그램, 폰트 등이 격납되며, RAM(518)은 CPU(510)의 워크 영역으로서 기능한다. 표시 패널(519)은 프린터의 동작 상태를 사용자에게 알리기 위한 것이다.
PHY 디바이스(5O2), 데이터 전송 제어 장치(500)를 통해, 퍼스널 컴퓨터 등의 다른 노드로부터 보내져 온 인자 데이터는 버스(504)를 통해 인자 처리부(512)에 직접 보내진다. 그리고, 인자 데이터는 인자 처리부(512)에서 소정 처리가 실시되며, 프린트 헤더 등으로 이루어지는 인자부(데이터를 출력하기 위한 장치)(514)에 의해 종이에 인자되어 출력된다.
도 23b에 전자기기의 하나인 스캐너의 내부 블록도를 도시하며, 도 24b에 그 외관도를 도시한다. CPU(520)는 시스템 전체 제어 등을 행한다. 조작부(521)는 스캐너를 사용자가 조작하기 위한 것이다. ROM(526)에는 제어 프로그램 등이 격납되며, RAM(528)은 CPU(520)의 워크 영역으로서 기능한다.
광원, 광전 변환기 등으로 이루어지는 화상 판독부(데이터를 취입하기 위한 장치)(522)에 의해 원고 화상이 판독되고, 판독된 화상 데이터는 화상 처리부(524)에 의해 처리된다. 그리고, 처리 후의 화상 데이터가 버스(505)를 통해 데이터 전송 제어 장치(500)에 직접 보내진다. 데이터 전송 제어 장치(500)는 이 화상 데이터에 헤더 등을 부가함으로써 패킷을 생성하여, PHY 디바이스(502)를 통해 퍼스널 컴퓨터 등의 다른 노드에 송신한다.
도 23c에 전자기기의 하나인 CD-RW 드라이브의 내부 블록도를 도시하며, 도 24c에 그 외관도를 도시한다. CPU(530)는 시스템 전체 제어 등을 행한다. 조작부(531)는 CD-RW를 사용자가 조작하기 위한 것이다. ROM(536)에는 제어 프로그램 등이 격납되며, RAM(538)은 CPU(530)의 워크 영역으로서 기능한다.
레이저, 모터, 광학계 등으로 이루어지는 판독 및 기록부(데이터를 취입하기 위한 장치 또는 데이터를 기억하기 위한 장치)(533)에 의해 CD-RW(532)로부터 판독된 데이터는 신호 처리부(534)에 입력되며, 에러 정정 처리 등의 소정 신호 처리가 실시된다. 그리고, 신호 처리가 실시된 데이터가 버스(506)를 통해 데이터 전송 제어 장치(500)에 직접 보내진다. 데이터 전송 제어 장치(5O0)는 이 데이터에 헤더 등을 부가함으로써 패킷을 생성하여, PHY 디바이스(502)를 통해 퍼스널 컴퓨터 등의 다른 노드에 송신한다.
한편, PHY 디바이스(5O2), 데이터 전송 제어 장치(5OO)를 통해, 다른 노드로부터 보내져 온 데이터는 버스(506)를 통해 신호 처리부(534)에 직접 보내진다. 그리고, 신호 처리부(534)에 의해 이 데이터에 소정 신호 처리가 실시되며, 판독기록부(533)에 의해 CD-RW(532)에 기억된다.
또한, 도 23a, 도 23b, 도 23c에 있어서, CPU(510, 520, 530) 외에, 데이터 전송 제어 장치(500)에서의 데이터 전송 제어를 위한 CPU를 별도로 설치하도록 해도 된다.
또, 도 23a, 도 23b, 도 23c에서는 RAM(5O1)(도 7의 RAM(8O)에 상당)이 데이터 전송 제어 장치(50O)의 외부에 설치되어 있지만, RAM(5O1)을 데이터 전송 제어 장치(500)에 내장시켜도 된다.
본 실시예의 데이터 전송 제어 장치를 전자기기에 사용함으로써, 고속 데이터 전송이 가능해진다. 따라서, 사용자가 퍼스널 컴퓨터 등에 의해 프린트 아웃 지시를 행한 경우에, 적은 타임 래그로 인자가 완료하게 된다. 또, 스캐너로의 화상 입력 지시 후에, 적은 타임 래그로 판독 화상을 사용자는 볼 수 있게 된다. 또, CD-RW로부터의 데이터 판독이나, CD-RW로의 데이터 기록을 고속으로 행할 수 있게 된다. 더욱이, 예를 들면 1개의 호스트 시스템에 복수의 전자기기를 접속하여 이용하거나, 복수의 호스트 시스템에 복수의 전자기기를 접속하여 이용하거나 하는 것도 용이해진다.
또, 본 실시예의 데이터 전송 제어 장치를 전자기기에 사용함으로써, CPU 상에서 동작하는 펌 웨어의 처리 부담이 경감되어, 염가인 CPU나 저속 버스를 사용하는 것이 가능해진다. 더욱이, 데이터 전송 제어 장치의 저 코스트화, 소규모화를 도모할 수 있기 때문에, 전자기기의 저 코스트화, 소규모화도 도모할 수 있게 된다.
또, 버스에 새로운 전자기기가 접속되어, 버스 리셋이 발생한 경우에도, 버스 리셋을 원인으로 하는 불량 발생이 방지되어, 전자기기가 안정된 동작을 보증할 수 있게 된다.
또한, 본 실시예의 데이터 전송 제어 장치를 적용할 수 있는 전자기기로서는, 상기 이외에도 예를 들면, 각종 광 디스크 드라이브(CD-ROM, DVD), 광 자기 디스크 드라이브(MO), 하드 디스크 드라이브, TV, VTR, 비디오 카메라, 오디오 기기, 전화기, 프로젝터, 퍼스널 컴퓨터, 전자 수첩, 워드 프로세서 등 각종의 것을 생각할 수 있다.
또한, 본 발명은 본 실시예에 한정되지 않고, 본 발명의 요지의 범위 내에서 각종 변형 실시가 가능하다.
예를 들면, 본 발명의 데이터 전송 제어 장치 구성은 도 7에 도시하는 구성이 특히 바람직하지만, 이에 한정되는 것은 아니다.
또, 전송 실행 회로(SBP-2 코어) 구성도 도 10에 도시하는 구성이 특히 바람직하지만, 이에 한정되는 것은 아니다.
또, 전송 처리의 스타트, 포즈, 리쥼 수법도 본 실시예에서 설명한 수법에 한정되지 않는다.
또, 스타트 수단, 포즈 수단, 리쥼 수단, 취소 수단 구성도 도 17에서 예시한 것이 특히 바람직하지만, 이에 한정되는 것은 아니다.
또, 커맨드 실행이 취소된 것을 처리 수단에 알리는 수법은 도 17과 같이 인터럽트를 사용하는 것이 특히 바람직하지만, 이에 한정되는 것은 아니다.
또, 본 발명은 IEEE 1394에 있어서의 버스 리셋에 특히 유용하지만, 이 이외에도, 적어도 노드의 토폴로지 정보를 클리어하는 리셋이면 적용할 수 있다.
또, 본 발명은 IEEE 1394 규격에서의 데이터 전송에 적용되는 것이 특히 바람직하지만, 이에 한정되는 것은 아니다. 예를 들면 IEEE 1394와 동일 사상에 근거하는 규격이나 IEEE 1394를 발전시킨 규격에 있어서의 데이터 전송에도 본 발명은 적용할 수 있다.
본 발명은 노드의 토폴로지 정보를 클리어하는 리셋이 발생한 경우에도 안정된 동작이 보증되는 데이터 전송 제어 장치 및 이것이 사용되는 전자기기를 제공할 수 있도록 한다.

Claims (14)

  1. 버스에 접속되는 복수의 노드 사이에서의 데이터 전송을 위한 데이터 전송 제어 장치에 있어서,
    처리 수단이 데이터 전송의 스타트 커맨드 또는 리쥼 커맨드를 발행한 경우에, 전송 처리를 스타트 또는 리쥼하는 수단과,
    노드의 토폴로지 정보를 클리어하는 버스 리셋이 발생하여, 그 버스 리셋 기간 중에 처리 수단이 스타트 커맨드 또는 리쥼 커맨드를 발행한 경우에는, 해당 커맨드의 실행을 취소하는 수단과,
    리셋 발생에 의해 커맨드의 실행이 취소된 것을 처리 수단에 알리는 수단을 포함하는 것을 특징으로 하는 데이터 전송 제어 장치.
  2. 제 1 항에 있어서,
    리셋 발생에 의해 데이터 전송의 스타트 커맨드 또는 리쥼 커맨드 실행이 취소된 경우에, 처리 수단에 대해 인터럽트를 발생하는 수단과,
    상기 인터럽트 요인을 처리 수단에 알리기 위한 요인 기억 수단을 포함하는 것을 특징으로 하는 데이터 전송 제어 장치.
  3. 제 1 항에 있어서,
    상기 취소 수단이,
    처리 수단이 스타트 커맨드 또는 리쥼 커맨드를 발행한 경우에 액티브되는 신호를 버스 리셋 기간 중에 액티브되는 신호로 마스크함으로써, 커맨드를 취소하는 것을 특징으로 하는 데이터 전송 제어 장치.
  4. 제 1 항에 있어서,
    처리 수단이 데이터 전송의 포즈 커맨드를 발행한 경우 또는 전송 에러가 발생한 경우에, 미리 정해진 포즈 장소에서 전송 처리를 포즈하는 수단을 포함하는 것을 특징으로 하는 데이터 전송 제어 장치.
  5. 제 1 항에 있어서,
    처리 수단이 데이터 전송의 스타트 커맨드를 발행한 경우에, 전송 데이터를 일련의 패킷으로 분할하고, 분할된 일련의 패킷을 연속 전송하는 처리를 실행하는 전송 실행 수단을 포함하는 것을 특징으로 하는 데이터 전송 제어 장치.
  6. 제 1 항에 있어서,
    상기 리셋이 IEEE 1394 규격에서 정의된 버스 리셋인 것을 특징으로 하는 데이터 전송 제어 장치.
  7. 버스에 접속되는 복수의 노드 사이에서의 데이터 전송을 위한 데이터 전송 제어 장치에 있어서,
    처리 수단이 데이터 전송의 스타트 커맨드를 발행한 경우에, 전송 데이터를 일련의 패킷으로 분할하고, 분할된 일련의 패킷을 연속 전송하는 처리를 실행하는 전송 실행 수단과,
    처리 수단이 데이터 전송의 리쥼 커맨드와 포즈 커맨드를 동시에 발행한 경우에, 전송 처리를 스텝 실행한 후에 전송 처리를 포즈하는 수단을 포함하는 것을 특징으로 하는 데이터 전송 제어 장치.
  8. 제 7 항에 있어서,
    상기 포즈 수단이,
    상기 리쥼 커맨드가 발행된 경우에 액티브되는 리쥼 신호와, 상기 리쥼 커맨드와 상기 포즈 커맨드가 동시에 발행된 경우에, 상기 리쥼 신호가 액티브되고 나서 소정의 기간만큼 지연되어 액티브되는 지연 포즈 신호에 근거하여, 전송 처리의 스텝 실행 및 포즈를 행하는 것을 특징으로 하는 데이터 전송 제어 장치.
  9. 제 1 항에 있어서,
    IEEE 1394 규격에 준거한 데이터 전송을 행하는 것을 특징으로 하는 데이터 전송 제어 장치.
  10. 제 7 항에 있어서,
    IEEE 1394 규격에 준거한 데이터 전송을 행하는 것을 특징으로 하는 데이터전송 제어 장치.
  11. 제 1 항 내지 제 6 항 또는 제 9 항 중 어느 한 항의 데이터 전송 제어 장치와,
    상기 데이터 전송 제어 장치 및 버스를 통해 다른 노드로부터 수신한 데이터에 대하여, 데이터를 출력 또는 기억하기 위한 신호 처리를 실시하는 장치와,
    신호 처리가 실시된 데이터를 출력 또는 기억하기 위한 장치를 포함하는 것을 특징으로 하는 전자기기.
  12. 제 7 항 또는 제 8 항 또는 제 10 항 중 어느 한 항의 데이터 전송 제어 장치와,
    상기 데이터 전송 제어 장치 및 버스를 통해 다른 노드로부터 수신한 데이터에 대하여, 데이터를 출력 또는 기억하기 위한 신호 처리를 실시하는 장치와,
    신호 처리가 실시된 데이터를 출력 또는 기억하기 위한 장치를 포함하는 것을 특징으로 하는 전자기기.
  13. 제 1 항 내지 제 6 항 또는 제 9 항 중 어느 한 항의 데이터 전송 제어 장치와,
    상기 데이터 전송 제어 장치 및 버스를 통해 다른 노드에 전송하는 데이터에 대하여, 데이터 취입 후의 신호 처리를 실시하는 장치와,
    신호 처리가 실시되는 데이터를 취입하기 위한 장치를 포함하는 것을 특징으로 하는 전자기기.
  14. 제 7 항 또는 제 8 항 또는 제 1O 항 중 어느 한 항의 데이터 전송 제어 장치와,
    상기 데이터 전송 제어 장치 및 버스를 통해 다른 노드에 전송하는 데이터에 대하여, 데이터 취입 후의 신호 처리를 실시하는 장치와,
    신호 처리가 실시되는 데이터를 취입하기 위한 장치를 포함하는 것을 특징으로 하는 전자기기.
KR10-2000-0060299A 1999-10-15 2000-10-13 데이터 전송 제어 장치 및 전자기기 KR100381645B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP29358999A JP3606133B2 (ja) 1999-10-15 1999-10-15 データ転送制御装置及び電子機器
JP99-293589 1999-10-15

Publications (2)

Publication Number Publication Date
KR20010051020A KR20010051020A (ko) 2001-06-25
KR100381645B1 true KR100381645B1 (ko) 2003-04-26

Family

ID=17796688

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0060299A KR100381645B1 (ko) 1999-10-15 2000-10-13 데이터 전송 제어 장치 및 전자기기

Country Status (8)

Country Link
US (1) US7085855B1 (ko)
EP (3) EP1351459B1 (ko)
JP (1) JP3606133B2 (ko)
KR (1) KR100381645B1 (ko)
CN (2) CN1516406A (ko)
AT (1) ATE366015T1 (ko)
DE (1) DE60035374D1 (ko)
TW (1) TW511351B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020077481A (ko) * 2000-12-20 2002-10-11 코닌클리케 필립스 일렉트로닉스 엔.브이. 모듈러 하드 디스크 유닛 및 이 모듈러 하드 디스크유닛을 시동 및 정지시키는 수단을 갖는 비디오 레코더
US8185664B1 (en) * 2009-06-17 2012-05-22 Qlogic, Corporation System and method to restore maximum payload size in a network adapter
JP5867206B2 (ja) * 2012-03-16 2016-02-24 富士通株式会社 移動制御装置,プログラム及びストレージ装置
CN103513733B (zh) * 2013-10-12 2018-05-29 丁贤根 一种用于pcie电源可靠复位的方法
WO2016018262A1 (en) * 2014-07-29 2016-02-04 Hewlett-Packard Development Company, L.P. Storage transactions
JP7270387B2 (ja) * 2019-01-15 2023-05-10 キヤノン株式会社 画像処理装置、画像処理装置の制御方法、およびプログラム
JP7407046B2 (ja) * 2020-03-26 2023-12-28 本田技研工業株式会社 音声出力の制御方法および音声出力制御装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10178438A (ja) * 1996-12-18 1998-06-30 Sony Corp データ通信システム、データ通信装置および方法
JPH11224220A (ja) * 1998-02-09 1999-08-17 Hitachi Ltd メモリ管理方式

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2829091B2 (ja) * 1990-04-19 1998-11-25 株式会社東芝 データ処理システム
US5412803A (en) * 1992-02-20 1995-05-02 International Business Machines Corporation Communications system having plurality of originator and corresponding recipient buffers with each buffer having three different logical areas for transmitting messages in single transfer
US5457694A (en) * 1993-06-25 1995-10-10 Smith; Dale J. Method and apparatus for analyzing the ATA (IDE) interface
JP3241911B2 (ja) * 1993-12-13 2001-12-25 富士通株式会社 ライブラリ装置を共用するデータ処理装置
EP1085700B1 (en) * 1994-03-09 2003-06-04 Matsushita Electric Industrial Co., Ltd. Data transmission system and method
JP3348331B2 (ja) 1995-04-21 2002-11-20 ソニー株式会社 電子機器及びその動作モード制御方法
JP3271493B2 (ja) * 1995-09-26 2002-04-02 ヤマハ株式会社 ネットワークおよびデータ伝送方法
US5764930A (en) * 1996-04-01 1998-06-09 Apple Computer, Inc. Method and apparatus for providing reset transparency on a reconfigurable bus
SG63746A1 (en) * 1996-09-20 1999-03-30 Texas Instruments Inc Method and system for testing memory
US6332159B1 (en) * 1996-12-04 2001-12-18 Canon Kabushiki Kaisha Data communication system, apparatus and controlling method thereof
US5923673A (en) * 1997-02-13 1999-07-13 Sony Corporation IEEE 1394 data/protocol analyzer
US6219736B1 (en) * 1997-04-24 2001-04-17 Edwin E. Klingman Universal serial bus (USB) RAM architecture for use with microcomputers via an interface optimized for integrated services device network (ISDN)
DE19835668A1 (de) * 1997-08-07 1999-02-25 Matsushita Electric Ind Co Ltd Übertragungsmedienverbindungsvorrichtung, steuernde Vorrichtung, gesteuerte Vorrichtung und Speichermedium
US6298406B1 (en) * 1997-10-24 2001-10-02 Sony Corporation Method of and apparatus for detecting direction of reception of bus packets and controlling direction of transmission of bus packets within an IEEE 1394 serial bus node
JP3277874B2 (ja) * 1998-01-29 2002-04-22 日本電気株式会社 Ieee1394ブリッジ
US6360053B1 (en) * 1998-08-07 2002-03-19 Replaytv, Inc. Method and apparatus for fast forwarding and rewinding in a video recording device
US20020057893A1 (en) * 1998-08-11 2002-05-16 Anthony Wood Digital recording and playback
US6343260B1 (en) * 1999-01-19 2002-01-29 Sun Microsystems, Inc. Universal serial bus test system
JP3780776B2 (ja) * 1999-10-15 2006-05-31 セイコーエプソン株式会社 データ転送制御装置及び電子機器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10178438A (ja) * 1996-12-18 1998-06-30 Sony Corp データ通信システム、データ通信装置および方法
JPH11224220A (ja) * 1998-02-09 1999-08-17 Hitachi Ltd メモリ管理方式

Also Published As

Publication number Publication date
US7085855B1 (en) 2006-08-01
EP2111003A1 (en) 2009-10-21
KR20010051020A (ko) 2001-06-25
CN1293411A (zh) 2001-05-02
ATE366015T1 (de) 2007-07-15
JP2001119404A (ja) 2001-04-27
CN1516406A (zh) 2004-07-28
EP1351459B1 (en) 2007-06-27
EP1096734A3 (en) 2002-11-27
JP3606133B2 (ja) 2005-01-05
EP1096734A2 (en) 2001-05-02
TW511351B (en) 2002-11-21
DE60035374D1 (de) 2007-08-09
CN1137444C (zh) 2004-02-04
EP1351459A1 (en) 2003-10-08

Similar Documents

Publication Publication Date Title
KR100381646B1 (ko) 데이터 전송 제어 장치 및 전자 기기
KR100381647B1 (ko) 데이터 전송 제어 장치 및 전자 기기
KR100405250B1 (ko) 데이터 전송 제어 장치 및 전자 기기
KR100381645B1 (ko) 데이터 전송 제어 장치 및 전자기기
KR19990072916A (ko) 데이터통신시스템,데이터통신방법및데이터통신장치
US7826492B2 (en) Communication system, cycle master node and communication method
JP3599053B2 (ja) データ転送制御システム、電子機器、及びデータ転送制御方法
JP4428750B2 (ja) データ通信システム
US6438633B1 (en) System for providing deterministic performance from a non-deterministic device
JP3606145B2 (ja) データ転送制御装置及び電子機器
JP3598922B2 (ja) データ転送制御装置、情報記憶媒体及び電子機器
JP3610982B2 (ja) データ転送制御装置及び電子機器
JP2000032010A (ja) デ―タ通信システム、デ―タ通信方法、デ―タ通信装置、デジタルインタフェ―ス及び記憶媒体
JP2001177544A (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: 20120322

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee