KR20120085864A - 반도체 시스템, 반도체 디바이스 및 전자 디바이스 초기화 방법 - Google Patents

반도체 시스템, 반도체 디바이스 및 전자 디바이스 초기화 방법 Download PDF

Info

Publication number
KR20120085864A
KR20120085864A KR1020127013477A KR20127013477A KR20120085864A KR 20120085864 A KR20120085864 A KR 20120085864A KR 1020127013477 A KR1020127013477 A KR 1020127013477A KR 20127013477 A KR20127013477 A KR 20127013477A KR 20120085864 A KR20120085864 A KR 20120085864A
Authority
KR
South Korea
Prior art keywords
electronic device
packet
initialization
host device
electronic
Prior art date
Application number
KR1020127013477A
Other languages
English (en)
Other versions
KR101442934B1 (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 KR20120085864A publication Critical patent/KR20120085864A/ko
Application granted granted Critical
Publication of KR101442934B1 publication Critical patent/KR101442934B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/266Arrangements to supply power to external peripherals either directly from the computer or under computer control, e.g. supply of power through the communication port, computer controlled power-strips
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

본 발명의 일 실시 형태에 따르면, 반도체 시스템이 개시되어 있다. 일 실시 형태에 따른 반도체 시스템은 예를 들면, 복수의 전자 디바이스와 호스트 기기를 포함할 수 있다. 호스트 기기는 복수의 전자 디바이스를 그룹 단위로 동시에 초기화할 수 있다.

Description

반도체 시스템, 반도체 디바이스 및 전자 디바이스 초기화 방법{SEMICONDUCT0R SYSTEM, SEMICONDUCT0R DEVICE, AND ELECTRONIC DEVICE INITIALIZING METHOD}
본 출원은 2009년 12월 17일에 출원된 일본 특허 출원 공보 제2009-286791호 및 2010년 2월 2일에 출원된 일본 특허 출원 공보 제2010-021569호의 우선권에 기초하여 그 우선권을 주장하며, 둘의 전체 내용은 참조로서 본원에 원용된다.
본원에 설명된 실시 형태는 전체적으로 반도체 시스템, 반도체 디바이스 및 전자 디바이스 초기화 방법에 관한 것이다.예를 들면, 본 실시 형태는 복수의 전자 디바이스를 포함하는 반도체 시스템에 관한 것이다.
NAND형 플래시 메모리를 이용한 메모리 시스템으로서, SDTM카드가 알려져 있다. SD카드와 호스트 기기 사이의 인터페이스로서는, SD 인터페이스가 알려져 있다. SD 인터페이스에서는, 복수의 디바이스가 1개의 버스에 접속될 수 있다. 전술된 구성은, 예를 들면 U.S. 특허 제6,820,148호에 개시되어 있다.
그러나, 상기 종래의 방법에서는, 1개의 호스트 기기에 의해 보다 많은 디바이스를 제어하는 경우, 디바이스의 초기화에 시간이 오래 걸린다.
도 1은 제1 실시 형태에 따른 반도체 시스템의 블록도이다.
도 2는 제1 실시 형태의 반도체 시스템의 동작을 나타내는 플로우차트이다.
도 3 및 도 4는 제1 실시 형태의 심볼 및 신호의 타이밍차트이다.
도 5는 제1 실시 형태의 반도체 시스템의 블록도이다.
도 6은 제1 실시 형태의 전자 디바이스의 블록도이다.
도 7 및 도 8은 제1 실시 형태의 프레임 포맷의 개념도이다.
도 9 및 도 10은 제1 실시 형태의 호스트 기기 및 전자 디바이스의 동작을 나타내는 플로우차트이다.
도 11은 제1 실시 형태의 반도체 시스템의 블록도이다.
도 12는 제1 실시 형태의 프레임 포맷의 개념도이다.
도 13 및 도 14는 제1 실시 형태의 전자 디바이스를 나타내는 플로우차트이다.
도 15 내지 도 18은 제1 실시 형태의 반도체 시스템의 블록도이다.
도 19는 제1 실시 형태의 전자 디바이스의 성능(capability)을 나타내는 다이어그램이다.
도 20은 제1 실시 형태의 프레임 포맷의 개념도이다.
도 21은 제2 실시 형태에 따른 프레임 포맷의 개념도이다.
도 22 및 도 23은 제2 실시 형태의 전자 디바이스 및 호스트 기기의 동작을 나타내는 플로우차트이다.
도 24 내지 도 30은 제2 실시 형태의 반도체 시스템의 블록도이다.
도 31은 제2 실시 형태의 프레임 포맷의 개념도이다.
도 32는 제3 실시 형태에 따른 반도체 시스템의 블록도이다.
도 33은 제3 실시 형태의 플래그 및 호스트 기기의 동작을 나타내는 다이어그램이다.
도 34 및 도 35는 본 발명의 제4 실시 형태에 따른 반도체 시스템의 블록도이다.
도 36은 본 발명의 제5 실시 형태에 따른 반도체 시스템의 블록도이다.
도 37은 본 발명의 제6 실시 형태에 따른 반도체 시스템의 블록도이다.
도 38은 제6 실시 형태에 따른 전자 디바이스의 신호 핀에 대한 신호의 할당을 나타내는 다이어그램이다.
일반적으로, 일 실시 형태에 따르면, 반도체 시스템은 복수의 전자 디바이스와 호스트 기기를 포함한다. 호스트 기기는 복수의 전자 디바이스를 그룹 단위로 초기화한다.
[제1 실시 형태]
이하, 제1 실시 형태에 따른 반도체 시스템 및 전자 디바이스 초기화 방법에 대해서 설명한다. 도 1은 제1 실시 형태에 따른 반도체 시스템의 일례를 나타내는 블록도이다.
<반도체 시스템의 구성>
도 1을 참조하면, 반도체 시스템(1)은 호스트 기기(2)와 반도체 디바이스(3)를 포함한다.
호스트 기기(2)는 적어도 하나의 입력 포트와 적어도 하나의 출력 포트를 포함한다. 호스트 기기(2)는 포트를 통해서 반도체 디바이스(3)의 동작을 제어하여 반도체 시스템(1)의 동작을 관리한다. 예를 들면, 각 포트는 LVDS(low voltage differential Signaling) 방식 등에 따른 차동 쌍으로서 구성된다. 이하에서는, 호스트 기기(2)의 출력 포트로부터 출력되는 신호를 신호 D0이라 하고, 신호 D0의 차동 신호를 신호 D0+ 및 D0-라 한다. 호스트 기기(2)의 출력 포트에 입력되는 신호를 신호 D1라 하고, 신호 D1의 차동 신호를 D1+ 및 D1- 라 한다. 호스트 기기(2)는 커맨드 및 데이터를 포함하는 패킷을 취합하고, 그 패킷을 호스트 기기(2)가 반도체 디바이스(3)에 전송하여 반도체 디바이스(3)의 동작을 제어한다. 호스트 기기(2)는 반도체 디바이스(3)로부터 전송된 패킷을 수신하여, 수신한 패킷에 따라서 동작을 행한다.
반도체 디바이스(3)는 N개(N은 1보다 큰 자연수)의 전자 디바이스(4)를 포함한다. 이하에서, N개의 전자 디바이스(4)를 서로 구별할 경우에는 각각 전자 디바이스(4-i)(i는 1 내지 N)라 한다.
제1 실시 형태에서, 각각의 전자 디바이스(4)는 입력 신호 핀(5), 출력 신호 핀(6), 패킷 디코더(7), 처리 유닛(8), 레지스터(9) 및 패킷 갱신 회로(10)를 포함한다. 마찬가지로, 전자 디바이스(4-i)를 서로 구별할 경우에는 각 유닛을 입력 신호 핀(5-i), 출력 신호 핀(6-i), 패킷 디코더(7-i), 처리 유닛(8-i), 레지스터(9-i) 및 패킷 갱신 회로(10-i)라 한다.
복수의 신호를 포함하는 입력 신호 핀(5)은 적어도 1개의 입력 포트로서 기능하여 외부로부터 제공되는 패킷을 수신한다. 입력 신호 핀(5)은 수신한 패킷을 패킷 디코더(7)에 전송한다.
패킷 디코더(7)는 입력 신호 핀(5)으로부터 전송된 패킷을 해석할 수 있도록 구성되어 있다. 패킷 디코더(7)는 패킷 헤더 내의 커맨드 식별자를 이용하여 패킷의 종류를 식별한다. 패킷 디코더(7)는 패킷의 종류에 따라 필요한 연산을 행하도록 처리 유닛(8)에 명령한다. 패킷 디코더(7)는, 필요하면, 수신한 패킷을 갱신하도록 패킷 갱신 회로(10)에 명령한다.
처리 유닛(8)은 패킷 디코더(7)로부터의 명령에 따라 필요한 처리를 실행할 수 있도록 구성되어 있다. 처리 내용의 일례는 디바이스의 초기화 및 디바이스 ID의 산출을 포함한다. 디바이스 ID를 산출하면, 처리 유닛(8)은 레지스터(9)로 하여금 디바이스 ID를 유지하게 한다. 디바이스 ID는 각 전자 디바이스(4) 고유의 번호이며, 호스트 기기는 디바이스 ID를 이용하여 각 전자 디바이스(4)를 식별할 수 있다. 수신한 패킷이 브로드캐스팅이 아닐 경우(예를 들면, 유니캐스트 또는 멀티캐스트), 패킷 디코더(7)가 패킷 내에 어드레스 정보로서 포함되는 디바이스 ID와 레지스터(9) 내의 디바이스 ID를 비교함으로써, 패킷 디코더(7)는 패킷이 반도체 디바이스(3)로 향하는 것인지 여부를 판단할 수 있게 된다.
패킷 갱신 회로(10)는 수신한 패킷의 페이로드의 내용을 갱신하고, 패킷 갱신 회로(10)는 복수의 신호를 포함하여 적어도 1개의 출력 포트로서 기능하는 출력 신호 핀(6)으로부터 외부로 패킷을 출력한다. 예를 들면, 패킷 갱신 회로(10)는 처리 유닛(8)의 연산 결과에 따라 페이로드의 내용을 갱신한다. 패킷이 출력 신호 핀(6)으로부터 출력되는 타이밍은 2종류가 있는데, 수신한 패킷에 대한 디바이스의 처리 상태와 관계없이 가능한 빨리 수신한 패킷을 전송하는 경우와, 수신한 패킷에 대한 디바이스의 처리가 행해진 후에 수신한 패킷을 전송하는 경우이다. 패킷의 커맨드 식별자와 디바이스의 상태에 따라서 결정된다.
상기 구성을 갖는 N개의 전자 디바이스 (4-1) 내지 (4-N)는 도 1에 도시한 바와 같이 호스트 기기(2)에 대하여 링 접속(또는 체인 접속이라 함)되어 있다. 즉, 호스트 기기(2)로부터 전송된 패킷은, 전자 디바이스(4-1)에 의해 수신되고, 전자 디바이스(4-1)로부터 전자 디바이스(4-2)에 전송되고, 전자 디바이스(4-2)로부터 전자 디바이스(4-3)에 전송된다. 그 후, 마찬가지 스텝이 반복된다. 그리고, 전자 디바이스(4-N)의 출력 신호 핀(6-N)으로부터 출력되는 패킷이 호스트 기기(2)에 반송된다. 도 1의 반도체 디바이스(3)는 디바이스(3)가 전자 디바이스(4-1 내지 4-N) 및 허브를 포함하는 구성(제4 실시 형태 참조)을 포함한다. 링 접속을 이용해서 행해지는 통신의 대다수는 호스트와 전자 디바이스 사이의 통신이지만, 전자 디바이스들 사이의 통신에도 이용되는 경우도 있다. 예를 들면, 전자 디바이스(4-2)가 전자 디바이스(4-1)로부터 전자 디바이스(4-2)에 전송된 데이터를 노이즈에 의해 올바르게 수신하지 못한 경우, 전자 디바이스(4-2)는 데이터의 재전송 요구를 할 수 있다. 이 경우, 전자 디바이스(4-2)에 의한 재전송 요구는 전자 디바이스(4-3 내지 4-N) 및 호스트 기기(2)를 통해 전자 디바이스(4-1)에 통지됨으로써, 전자 디바이스(4-1)가 데이터를 재전송하게 한다.
<반도체 시스템(1)의 동작>
상기 구성을 갖는 반도체 시스템(1)에서의 호스트 기기(2)에 반도체 디바이스(3)가 접속되는 때의 동작에 대해서 도 2를 참조하여 설명한다. 도 2는 반도체 시스템의 동작을 나타내는 플로우차트이다. 우선, 전체의 흐름을 대략적으로 설명한다.
도 2에 도시한 바와 같이, 인터페이스 선택(interface selection)이 실행된다(스텝 S10). 스텝 S10에서, 인터페이스가 반도체 디바이스(3)에 접속되어 있는지 여부, 즉 반도체 디바이스(3)가 접속되어 있는지의 여부를 호스트 기기(2)가 판단한다. 인터페이스가 이용가능하면, 즉 반도체 디바이스(3)가 접속되어 있으면(스텝 S11, 예), 전자 디바이스(4) 중 하나가 부트 코드(boot code)를 호스트 기기(2)에 전송한다(스텝 S12). 부트 코드를 수신한 호스트 기기(2)는 부트 코드를 실행하고, 전자 디바이스(4)의 넘버링(numbering)을 행한다(enumeration)(스텝 S13). 즉, 상기 설명된 디바이스 ID를 각 전자 디바이스(4)에 할당한다.
디바이스 ID의 할당 후, 호스트 기기(2)의 명령에 따라서, 각 전자 디바이스(4)가 초기화된다(스텝 S14). 초기화에 의해 각 전자 디바이스(4)는 준비 상태(ready state)가 된다. 초기화에 필요한 시간을 단축하기 위해서 초기화는 복수의 전자 디바이스(4) 단위로 행해진다. 단, 호스트 기기(2)가 전자 디바이스(4)에 공급될 수 있는 전원 전류에 제약을 갖는 경우에는, 동시에 초기화될 수 있는 디바이스수가 제한되므로, 개별적으로 초기화가 행해진다.
그 후, 호스트 기기(2)는 각 전자 디바이스(4)에 대한 정보를 얻는다(스텝 S15). 스텝 S15 후에, 호스트 기기(2) 및 전자 디바이스(4)의 성능에 기초하여, 호스트 기기(2)는 전자 디바이스(4)에 공통 동작 조건을 결정하고, 호스트 기기(2)는 동작 조건을 호스트 기기(2) 및 전자 디바이스(4)에 대하여 통합적으로 설정한다(스텝 S16). 이 스텝에서 설정되는 성능은 전체 시스템에서 공통인 항목이다. 그 후, 호스트 기기(2)는 전자 디바이스(4)의 개개의 동작 조건을 결정하고, 호스트 기기(2)는 전자 디바이스(4)의 개개의 동작 조건을 개별적으로 설정한다(스텝 S17).
UHS-II 카드는 계층 구조를 갖는다. 따라서, 반도체 디바이스(3)가 UHS-II 카드이면, 스텝 S14에서 초기화는 물리적 계층에 대하여 행해진다. 예를 들면, 스텝 S16 및 스텝 S17B에서는 물리 계층보다 상위 계층에 대하여 초기화가 행해진다.
순차적으로 각 스텝을 상세히 설명한다.
<스텝 S10>
우선 스텝 S10에 대해서, 도 3 및 도 4를 참조하여 설명한다. 도 3은 반도체 디바이스(3)를 호스트 기기(2)에 접속한 직후에, 호스트 기기(2)로부터 반도체 디바이스(3)에 전송되는 클럭 및 심볼, 및 반도체 디바이스(3)로부터 호스트 기기(2)에 전송되는 심볼(심볼 내 클럭이 동기화되어 있는 상태로 통신되고, 심볼은 복수 비트를 포함하며, 8b/10b 코딩에 의해 인코딩되어 있음)을 나타내는 타이밍 차트이다. 도 4는 반도체 디바이스(3)를 호스트 기기(2)에 접속한 직후의 신호 D0 및 D1의 타이밍차트이다.
도 3 및 도 4에 도시한 바와 같이, 시각 t1 이전에, 반도체 시스템(1)은 파워-다운 상태에 있다. 파워-다운 상태에서 호스트 기기(2)는 클럭을 생성하지 않고, 호스트 기기(2)는 심볼을 반도체 디바이스(3)에 전송하지 않는다. 반도체 디바이스(3)는 심볼을 반도체 디바이스(3)에 전송하지 않는다. 따라서, 시각 t1 이전에는, D0+=D0-=D1+=D1-="H"의 레벨 또는 D0+=D0-=D1+=D1-="L"의 레벨을 취할 수 있다. 도 4에서는, D0+=D0-=D1+=D1-="L"의 레벨일 경우를 나타낸다.
그 후, 시각 t1에서, 호스트 기기(2)는 인터페이스의 이용 가능성을 판단하기 위해서, 반도체 디바이스(3)에 대하여 차동 신호의 "H" 레벨 또는 "L" 레벨 중 하나를 이용하여 STB을 전송한다. 여기에서는, "H" 레벨을 STB로 상정한다. 이에 따라, 데이터 링크 상태는 wakeup 상태로 이행한다. 호스트 기기(2)는 반도체 디바이스(3)에 클럭 RCLK을 출력한다. 클럭 RCLK은 각각의 전자 디바이스(4-0 내지 4-n)에 공급된다. 이후, 전자 디바이스(4)는 클럭 RCLK에 동기화되어 동작을 행한다. 레벨 STB는 전자 디바이스(4-0 내지 4-N))에 순차적으로 전송된다. 레벨 STB을 수신한 전자 디바이스(4)는, 시각 t2에서, 호스트 기기(2)에 레벨 STB을 반송한다. 레벨 STB은 호스트 기기(2)와 전자 디바이스(4)가 서로의 동기화되기 전의 스탠바이 상태(standby state)인 것을 나타내는 신호이다.
호스트 기기(2)가 레벨 STB을 전송함으로써, D0-은 "L"레벨로부터 "H"레벨로 변화하고, 신호 D0가 차동 레벨로 변화한다. 반도체 디바이스(3)는 레벨 STB을 전송함으로써, D1-은 "L" 레벨로부터 "H" 레벨로 되고, 신호 D0가 차동 레벨로 변화한다. 따라서, 신호 D0 및 D1이 차동 레벨로 변화하는 것을 검출하는 것에 의해, 호스트 기기(2)는 인터페이스가 이용 가능하다는 것을 인식한다.
그 후, 호스트 기기(2)와 반도체 디바이스(3)가 서로 동기화되기 위한 처리가 행해진다. 즉, 호스트 기기(2)는 반도체 디바이스(3)에 대하여 심볼 SYN을 전송하고, 반도체 디바이스(3)는 PLL이 로크될 때(locked) 심볼 SYN을 호스트 기기(2)에 반송한다. 모든 반도체 디바이스(3)의 PLL이 로크되면, 호스트 기기(2)는 심볼 SYN을 수신한다. 호스트 기기(2)의 수신 클럭은 전송 클럭 RCLK과 위상이 다르므로, 수신을 위한 별도의 PLL의 로크가 필요하다. 심볼 SYN은 동기화를 위한 심볼이다. 심볼 SYN을 복수회 수신하는 동안 PLL을 로크함으로써, 호스트 기기(2)와 반도체 디바이스(3) 사이에서 동기 통신이 행해지는 것이 가능해진다.
도 5는 호스트 기기(2)와, 임의의 하나의 전자 디바이스(4)의 블록도이며, 특히 데이터 링크에 관한 구성을 나타낸다. 도 5에 도시한 바와 같이, 호스트 기기(2)는 신호 D0+ 및 D0-를 전송하는 전송 I/Os 20-1 및 20-2, 차동 신호 D1+ 및 D1-을 수신하는 수신 I/Os 21-1 및 21-2 및 전압 레벨 검출 회로(22)를 포함한다. 전압 레벨 검출 회로(22)는 차동 신호 D1+ 및 D1-의 신호 레벨의 변화를 검출한다. 전압 레벨 검출 회로(22)에서 신호 레벨의 변화가 검출되면, 전자 디바이스(4)와의 인터페이스가 이용 가능하다고 판단할 수 있다.
전자 디바이스(4)는 차동 신호 D1+ 및 D1-을 전송하는 전송 I/Os 23-1 및 23-2, 차동 신호 D0+ 및 D0-를 수신하는 수신 I/O 24-1 및 24-2, 및 전압 레벨 검출 회로(25)를 포함한다. 전압 레벨 검출 회로(25)는 차동 신호 D0+ 및 D0-의 신호 레벨의 변화를 검출한다. 예를 들면, 전자 디바이스(4)로부터 호스트 기기(2)를 기동(start-up)하는 경우에는, 전압 레벨 검출 회로(25)가 신호 레벨의 변화를 검출함으로써, 호스트를 기동시킬 수 있다.
<스텝 S12>
이하, 도 2의 스텝 S12에 대해서 설명한다. 반도체 디바이스(3)에서, 임의의 하나의 전자 디바이스(4)는 부트 코드를 유지하는 메모리 디바이스이다. 여기에서, 단지 일례로서, 전자 디바이스(4-N)가 부트 코드를 유지하는 메모리 디바이스라고 상정한다. 부트 코드는 호스트 기기(2)에서 시스템을 기동시키기 위해서 필요한 프로그램 코드를 의미한다. 부트 코드는 호스트 기기(2)의 시스템 메모리에 전송되고, 부트 코드는 호스트 기기(2)에 의해 실행된다. 부트 코드에 포함되는 부트 로더에 의해, 디바이스 드라이버 및 OS(Operating System)이 시스템 메모리 상에 로드된다.
전자 디바이스(4-N)는 호스트 기기(2)로부터 심볼 STB을 수신하고, 호스트 기기(2)에 심볼 STB을 반송한다. 그리고, 전자 디바이스(4-N)는 호스트 기기(2)로부터의 명령을 수신하지 않고 자발적으로 부트 코드를 판독하고, 전자 디바이스(4-N)는 부트 코드를 호스트 기기(2)에 전송한다.
도 6은 전자 디바이스(4-N)의 블록도이며, 도 6은 전자 디바이스(4-N)의 구성을 도 1보다 상세하게 나타낸다. 도 6에 도시한 바와 같이, 전자 디바이스(4-N)는 메모리 컨트롤러(30)과 NAND형 플래시 메모리(31)를 포함한다. 메모리 컨트롤러(30)는 패킷 디코더(7-N), 처리 유닛(8-N), 레지스터(9-N) 및 패킷 갱신 회로(10-N)를 포함한다. NAND형 플래시 메모리(31)는 부트 코드(32)를 유지한다. 처리 유닛(8-N)은 심볼 STB을 호스트 기기(2)에 전송한 후, NAND형 플래시 메모리(31)로부터 부트 코드(32)를 판독한다. 처리 유닛(8-N)은 부트 코드(32)를 패킷으로서 취합하고, 패킷을 출력 신호 핀(6)으로부터 호스트 기기(2)에 전송한다.
도 7은 패킷의 구성을 나타내는 모식도이다. 도 7에 도시한 바와 같이, 패킷(33)은 패킷 헤더(34)와 페이로드(35)를 포함한다. 페이로드(35)는 NAND형 플래시 메모리(31)로부터 판독된 부트 코드(32)를 포함한다. 패킷 헤더(34)는 패킷의 수신처(destination)를 포함한다. 수신처는 ID로서 나타내져, 호스트 기기(2)가 수신처가 될 때는 "ID=0"이 저장된다. 넘버링을 행하기 전에 부트 코드를 전송하는 경우에 부트 디바이스의 디바이스 ID가 아직 결정되지 않았더라도, 예를 들면 잠정적으로 전송 소스의 디바이스 ID=1을 부트 디바이스의 디바이스 ID로 할당할 수 있다. 부트 코드의 크기는 호스트와 부트 디바이스에 프리셋 값으로서 설정하거나, 패킷 헤더 또는 부트 코드의 특정 부분에 부트 코드의 크기를 나타내는 영역을 확보할 수 있다.
부트 코드를 포함하는 전자 디바이스는, 전자 디바이스(4-N) 이외의 전자 디바이스여도 좋다. 예를 들면, 전자 디바이스(4-(N-1))를 부트 코드를 포함하는 전자 디바이스로서 이용해도 좋다. 이 경우, 전자 디바이스(4-(N-1))는 우선 패킷(33)을 전자 디바이스(4-N)에 전송한다. 전자 디바이스(4-N)는 패킷(33)의 수신처가 호스트 기기(2)이므로, 패킷(33)을 변경하지 않고 호스트 기기(2)에 전송한다.
<스텝 S13>
이하, 도 2의 스텝 S13에 대해서 설명한다. 스텝 S13에서, 호스트 기기(2)는 반도체 디바이스(3)에 포함되는 전자 디바이스(4-0 내지 4-N)에 대하여, 디바이스 ID를 부여한다. 스텝 S13은, 예를 들면 일본 특허 공개 제2009-221468호 공보에 기재된 방법을 채택할 수 있다. 도 8은 스텝 S13을 실행할 때에 호스트 기기(2)가 발행한 패킷의 모식도이다.
도 8에 도시한 바와 같이, 패킷(40)의 패킷 헤더는 적어도 필드(41-1 및 41-2)를 포함한다. 필드(41-1)에는 패킷(40)의 수신처를 나타내는 디바이스 ID가 저장된다. 필드(41-2)에는 디바이스 ID를 부여하기 위한 커맨드에 대응하는 커맨드 식별자가 저장된다. 페이로드는 적어도 필드(42-1 및 42-2)를 포함한다. 필드(42-1)는 개시 디바이스 ID(개시 디바이스 번호)를 나타내고, 필드(42-1)의 값은 호스트 기기(2)로부터 패킷(40)을 최초로 수신한 전자 디바이스(4-1)에 의해 결정된다. 필드(42-2)에는 디바이스 ID의 설정이 완료된 전자 디바이스(4)의 수를 저장한다. 패킷이 전자 디바이스(4) 중에서 전송되는 과정에서 필드(42-1)의 값이 증분됨으로써, 호스트 기기(2)는 전자 디바이스(4)의 총수를 인식할 수 있다. 호스트 기기(2)는 필드(42-1 및 42-2)의 값으로부터 각 전자 디바이스(4)의 디바이스 ID를 특정할 수 있다. 최종 디바이스 번호와 최초의 디바이스 번호를 알면 디바이스수는 뺄셈으로 계산할 수 있으므로, 필드(42-2)에 디바이스 ID의 설정이 완료된 전자 디바이스(4)의 수 대신에, 최종 디바이스 ID(최종 디바이스 번호)를 표시해도 된다.
도 9는 디바이스 ID 부여 시에 호스트 기기(2)의 동작을 나타내는 플로우차트이다. 도 9에 도시한 바와 같이 호스트 기기(2)는 우선 디바이스 ID를 특정하기 위한 패킷을 취합한다(스텝 S20). 즉, 디바이스 ID를 특정하기 위한 커맨드(이하, ID 부여 커맨드라 함)에 대응하는 커맨드 식별자(필드(41-2))를 패키지 헤더에 설정하고, 페이로드의 개시 디바이스 ID(필드(42-1)) 및 디바이스수(필드(42-2))의 값으로서 초기값(본 실시 형태에서는, 0)을 설정한다.
호스트 기기(2)는 스텝 S20에서 취합된 패킷을 반도체 디바이스(3)에 전송한다(스텝 S21). 패킷이 브로드캐스팅(멀티캐스팅)의 형태로 전송되는지 유니캐스트의 형태로 전송되는지는 커맨드마다 미리 정해져 있다. ID 부여 커맨드는 브로드캐스트 커맨드이다. 따라서, 패킷 헤더의 필드(41-1)에서의 수신처는 무시되어, 도 1의 접속 관계의 경우에는, 패킷은 링 접속의 최초의 전자 디바이스(4-1)에 전송된다.
그 후, 호스트 기기(2)는 링 접속의 최후의 전자 디바이스(4-N)로부터 패킷을 수신한다(스텝 S22). 따라서, 호스트 기기(2)는 수신한 패킷 내의 최초의 디바이스 ID( 필드(42-1))와 디바이스수(필드(42-2))를 판독한다(스텝 S23). 필드(42-1)의 값은 링 접속의 최초의 전자 디바이스(4-1)의 디바이스 ID이며, 필드(42-2)의 값은 링 접속된 전자 디바이스(4-1 내지 4-N)의 총수 N이다.
호스트 기기(2)는 필드(42-1 및 42-2)의 값을 이용하여 미리 결정된 연산을 행하여, 각 전자 디바이스(4-2 내지 4-N)의 디바이스 ID와 모든 디바이스수를 파악한다(스텝 S24). 식별 가능한 디바이스수는 디바이스 ID 필드의 비트수로 결정된다. 미리 결정된 연산은 전자 디바이스(4-2 내지 4-N)이 개시 디바이스 ID에 대하여 자신의 ID를 산출하는 룰을 의미한다. 예를 들면, 미리 결정된 연산은 디바이스수에 의해 증분을 행하는 것을 의미한다. 따라서, 예를 들면, 전자 디바이스(4-N)로부터 수신한 패킷에서의 개시 디바이스 ID의 값이 "n(n은 자연수)"이면, 전자 디바이스(4-1)는 디바이스 ID "n"을 갖고, 전자 디바이스(4-2)는 디바이스 ID "n+1"을 갖고, 전자 디바이스(4-N)는 디바이스 ID "n+N"을 갖는다.
호스트 기기(2)는 스텝 S24에서 얻어진 디바이스 ID를 이용하여 전자 디바이스(4-1 내지 4-3)을 관리한다.
이하, 전자 디바이스(4)의 동작에 대해서 도 10을 이용하여 설명한다. 도 10은 ID 부여 커맨드를 포함하는 패킷을 수신했을 때의 전자 디바이스(4)의 동작을 나타내는 플로우차트이고, 도 10의 플로우차트는 전자 디바이스(4-1 내지 4-N)에 공통된다.
도 10에 도시한 바와 같이, 전자 디바이스(4)는 입력 신호 핀(5)에서 패킷을 수신한다(스텝 S30). 패킷 디코더(7)는 수신한 패킷이 그 패킷의 필드(41-2)의 커맨드 번호로부터 ID 부여 커맨드를 포함한다는 것을 인식하면, 처리 유닛(8)에 대하여 자신의 디바이스 ID의 산출을 명령한다.
명령에 따라, 처리 유닛(8)은 수신한 패킷의 필드(42-1)의 값(개시 디바이스 ID)이 호스트 기기(2)에 의해 설정된 미리 결정된 값(본 실시 형태에서, 0)인지 여부를 확인한다(스텝 S31). 필드(42-1)의 값이 0이면(스텝 S32, 예), 처리 유닛(8)은 0 이외의 임의인 번호를 자신의 디바이스 ID로 결정하고, 처리 유닛(8)은 필드(42-1)의 값(개시 디바이스 ID)을 결정한 디바이스 ID에 갱신하도록 패킷 갱신 회로(10)에 명령한다. 이에 의해, 패킷 갱신 회로(10)는 필드(42-1)를 갱신한다. 0 이외의 번호를 이용하는 이유는 0은 호스트 기기(2)의 디바이스 ID로서 이미 할당되어 있기 때문이다.
한편, 필드(42-1)의 값이 호스트 기기(2)에 의해 설정된 미리 결정된 값이 아니면(스텝 S32, 아니오), 필드(42-1)의 값을 유지한다(스텝 S34). 즉, 처리 유닛(8)은 패킷 갱신 회로(10)에 대하여 필드(42-1)의 값의 갱신을 명령하지 않는다. 처리 유닛(8)은 필드(42-1)를 이용하여 미리 결정된 연산을 행하여 자신의 디바이스 ID를 산출한다(스텝 S35). 스텝 S35에서의 연산은, 도 9의 스텝 S24에서의 연산과 동일하다. 예를 들면, 스텝 S35에서의 연산은 필드(42-1)(개시 디바이스 ID)를 필드(42-2)(디바이스수)에 따른 횟수만큼 증분하는 것을 의미한다.
그 후, 처리 유닛(8)은 스텝 S33 또는 S35에서 결정된 자신의 디바이스 ID를 레지스터(9)에 저장한다(스텝 S36).
패킷 디코더(7) 또는 처리 유닛(8)의 명령에 따라, 패킷 갱신 회로(10)는 수신한 패킷의 필드(42-2)의 값을 갱신(증분)한다. 패킷 갱신 회로(10)는 필드(42-2) 또는 필드(42-1 및 42-2)의 양쪽이 갱신된 패킷을 출력한다.
상기 설명한 스텝 S13의 구체예에 대해서 도 11을 참조하여 설명한다. 도 11은 반도체 시스템(1)의 블록도이며, 일례로서 반도체 디바이스(3) 내의 전자 디바이스(4)의 수가 15개(N=15)일 경우에 대해서 나타낸다. 도 11에서, 디바이스 사이의 화살표의 측면에 부가되어 있는 사각형은 패킷의 페이로드의 내용을 나타내고, 사각형의 좌측은 필드(42-1)(개시 디바이스 ID)이며, 우측은 필드(42-2)(디바이스수)이다.
도 11에 도시한 바와 같이, 우선 호스트 기기(2)로부터 ID 부여 커맨드를 포함하는 패킷이 브로드캐스팅된다. 이 때, 패킷의 필드(42-1 및 42-2)의 값은 호스트 기기(2)에 의해 설정된 미리 결정된 값(0)이다(도 9의 스텝 S20 및 S21). 패킷은 우선 전자 디바이스(4-1)에 의해 수신된다.
전자 디바이스(4-1)에서는, 필드(42-1)의 값이 "0"이므로(도 10의 스텝 S32, 예), 임의의 번호를 자신의 디바이스 ID로서 결정한다. 도 11에 나타낸 예에서는 디바이스 ID는 "1"이다. 필드(42-1)를 "0"으로부터 "1"로 갱신하고(도 10의 스텝 S33), 필드(42-2)의 값을 증분하여 "0"으로부터 "1"로 갱신하고(도 10의 스텝 S37), 갱신한 필드(42-2)의 값을 디바이스(4-1)에 의해 출력한다.
전자 디바이스(4-1)로부터 출력된 패킷은 전자 디바이스(4-2)에 의해 수신된다. 전자 디바이스(4-2)에서는, 필드(42-1)의 값이 "0"이 아니므로 (도 10의 스텝 S32, 아니오), 미리 결정된 연산 방법에 의해 디바이스(4-2)의 디바이스 ID를 산출한다(도 10의 스텝 S35). 즉, 필드(42-1)의 값을 필드(42-2)의 값에 의해 증분함으로써, 디바이스(4-2)의 디바이스 ID를 "1"+"1"="2"로 결정한다. 필드(42-1)의 값은 유지하는 반면에(도 10의 스텝 S34), 필드(42-2)의 값을 증분하여 "1"로부터 "2"로 갱신하고(도 10이 스텝 S37), 갱신한 필드(42-2)의 값을 디바이스(4-2)에 의해 출력한다.
마찬가지로, 전자 디바이스(4)에 디바이스 ID를 할당할 수 있다. 즉, 디바이스(4-3 내지 4-15)에는 디바이스 ID "3" 내지 "15"가 할당된다.
전자 디바이스(4-15)로부터 출력된 패킷은 호스트 기기(2)에 의해 수신된다. 패킷에서, 필드(42-1)는 값 "1"을 갖고, 필드(42-2)는 값이 "15"를 갖는다. 따라서, 호스트 기기는 전자 디바이스(4-1)가 디바이스 ID "1"을 가지며, 전자 디바이스(4)의 총수가 "15"인 것을 파악할 수 있다(도 9의 스텝 S23). 이에 의해, 호스트 기기(2)는 전자 디바이스(4-1 내지 4-15)의 디바이스 ID가 각각 "1" 내지 "15"인 것을 파악한다.
<스텝 S14>
이하, 도 2의 스텝 S14에 대해서 설명한다. 스텝 S14에서, 호스트 기기(2)는 반도체 디바이스(3)에 포함되는 전자 디바이스(4-0 내지 4-N)를 초기화한다. 도 12는 초기화를 행할 때에 호스트 기기(2)가 발행하는 패킷의 모식도이다.
도 12에 도시한 바와 같이, 패킷(50)의 패킷 헤더(51)에는 초기화 커맨드를 나타내는 커맨드 식별자가 포함되고, 페이로드(52)에는 호스트 기기(2)가 한번에 초기화시킬 수 있는 최대 전자 디바이스수 M이 포함된다. 초기화 커맨드는 브로드캐스트 커맨드로서 발행된다. 브로드캐스트 커맨드인지 여부는 커맨드 식별자에 의해 결정될 수 있다. 대안으로서, 전송 소스 ID = 전송 수신처 ID= "0"으로 설정함으로써 브로드캐스트 커맨드를 정의해도 된다. 이것은 호스트 기기(2)가 패킷을 전송하고, 마지막에 호스트 기기(2)가 이 패킷을 수신하는 것을 의미한다.
도 13은 초기화 커맨드를 포함하는 패킷을 수신했을 때의 전자 디바이스(4)의 동작을 나타내는 플로우차트이고, 도 13의 플로우차트는 전자 디바이스(4-1 내지 4-N)에 공통된다.
도 13에 도시한 바와 같이, 전자 디바이스(4)는 입력 신호 핀(5)에서 패킷을 수신한다(스텝 S40). 패킷 디코더(7)는 수신한 패킷의 패킷 헤더(51)의 커맨드 식별자로부터, 수신한 패킷이 초기화 커맨드를 포함한다는 것을 인식하면, 패킷 내에 포함된 초기화 커맨드와 페이로드(52)의 전자 디바이스수 M을 처리 유닛(8)에 통지한다. 처리 유닛(8)은 전자 디바이스(4)가 현재 초기화를 실행 중인지 여부를 판단한다. 전자 디바이스(4)가 현재 초기화를 실행 중이면(스텝 S41, 예), 처리 유닛(8)은 초기화 완료까지 대기한다(스텝 S42). 초기화 완료 후에, 처리 유닛(8)은 다시 초기화를 행하지 않고(스텝 S43), 처리 유닛(8)은 패킷 갱신 회로(10)로 하여금 수신한 패킷을 변경하지 않고 다음 전자 디바이스(4)에(전자 디바이스(4-N)의 경우에는 호스트 기기(2)에) 전송하게 한다(스텝 S44).
전자 디바이스(4)가 현재 초기화 중이 아니면, 처리 유닛(8)은 전자 디바이스(4)가 이미 초기화되었는지의 여부를 판단한다. 전자 디바이스(4)가 이미 초기화되었다면(스텝 S45, 예), 처리 유닛(8)은 초기화를 다시 행하지 않는다(스텝 S43). 처리 유닛(8)은 패킷 갱신 회로(10)에 대하여,수신한 패킷을 변경하지 않고 다음 전자 디바이스(4)에(전자 디바이스((4-N)의 경우에는 호스트 기기(2)에) 전송한다(스텝 S44).
한편, 전자 디바이스(4)가 현재 초기화 중이 아니면(스텝 S45, 아니오), 처리 유닛(8)은 페이로드(52)의 전자 디바이스수 M이 "0"인지 여부를 확인한다(스텝 S46). 전자 디바이스수 M이 "0"이면(스텝 S46, 예), 처리 유닛(8)은 스텝 S43으로 진행하고, 처리 유닛(8)은 초기화를 행하지 않고 스텝 S44으로 진행한다.
전자 디바이스수 M이 "0"이 아니면(스텝 S46, 아니오), 처리 유닛(8)은 초기화를 실행한다(스텝 S47). 처리 유닛(8)은 페이로드(52)의 전자 디바이스수를 감분하도록 패킷 갱신 회로(10)에 명령한다(스텝 S48). 즉, 전자 디바이스수 M은 M-1으로 갱신된다. 패킷 갱신 회로(10)는 페이로드(52)의 전자 디바이스수 M이 갱신되어 있는 패킷을 출력한다(스텝 S44). 이 때, 패킷 갱신 회로(10)는 전자 디바이스(4)의 초기화의 완료를 대기하지 않고, 스텝 S47에서의 초기화의 개시에 따라, 스텝 S44의 처리를 실행한다.
호스트 기기(2)는 호스트 기기(2)가 전자 디바이스수 M이 "0"이 아닌 패킷(50)을 수신할 때까지, 반복해서 초기화 패킷(50)을 발행한다. 초기화 패킷(50)을 발행 할 때는 동시에 초기화 가능한 디바이스수를 재설정한다. 즉, M≠"0"인 패킷(50)을 수신함으로써, 호스트 기기(2)는 모든 전자 디바이스(4-1 내지 4-N)의 초기화가 완료되었음을 확인할 수 있다.
모든 전자 디바이스(4)의 초기화가 완료되었는지 여부는 초기화 완료 확인 커맨드를 전송함으로써 행할 수 있다. 초기화 완료 확인 커맨드를 수신했을 때의 전자 디바이스(4)의 동작에 대해서 도 14를 참조하여 설명한다. 도 14는 초기화 완료 확인 커맨드를 포함하는 패킷을 수신했을 때의 전자 디바이스(4)의 동작을 나타내는 플로우차트이며, 도 14의 플로우차트는 전자 디바이스(4-1 내지 4-N)에 공통된다.
도 14에 도시한 바와 같이, 전자 디바이스(4)는 입력 신호 핀(5)에서 패킷을 수신한다(스텝 S50). 패킷 디코더(7)는 수신한 패킷의 패킷 헤더의 커맨드로부터, 수신한 패킷이 초기화 완료 확인 커맨드를 포함한다고 인식하면, 패킷이 초기화 완료 확인 커맨드를 포함한다는 것을 처리 유닛(8)에 통지한다. 처리 유닛(8)은 전자 디바이스(4)가 현재 초기화 중인지 여부를 판단한다. 전자 디바이스(4)가 현재 초기화 중이면(스텝 S51, 예), 처리 유닛(8)은 초기화 완료까지 대기한다(스텝 S52). 초기화 완료 후에, 처리 유닛(8)은 패킷 갱신 회로(10)로 하여금 수신한 패킷을 변경하지 않고 다음 전자 디바이스(4)에(전자 디바이스(4-N)의 경우에는 호스트 기기(2)에) 전송하게 한다(스텝 S54).
전자 디바이스(4)가 현재 초기화 중이 아니면, 처리 유닛(8)은 전자 디바이스(4)가 이미 초기화되었는지의 여부를 판단한다. 전자 디바이스(4)가 이미 초기화되었다면(스텝 S53, 예), 처리 유닛(8)은 수신한 패킷을 변경하지 않고 다음 전자 디바이스(4)에 (전자 디바이스(4-N)의 경우에는 호스트 기기(2)에)전송하도록 패킷 갱신회로(10)에 명령한다(스텝 S54). 따라서, 패킷은 다음 전자 디바이스(4)에 전송된다. 한편, 전자 디바이스(4)가 아직 초기화되지 않았다면(스텝 S53, 아니오), 처리 유닛(8)은 다음 전자 디바이스(4)에 패킷을 전송하지 않는다. 즉, 패킷은 전자 디바이스(4) 내에 머무른다.
따라서, 초기화는 M개의 전자 디바이스마다 행해진다. 즉, N개의 전자 디바이스는, L=(N/M)개의 그룹으로 나뉘어져, 각 그룹에 속하는 전자 디바이스에 대하여 통합적으로 초기화가 실행된다(도 2의 스텝 S14-1 내지 S14-L).
스텝 S14의 구체예에 대해서, 도 15 내지 도 18을 참조하여 설명한다. 도 15 내지 도 18은 반도체 시스템(1)의 블록도이며, 도 15 내지 도 18은 도 11의 경우과 마찬가지로 반도체 시스템(1)이 15개(N=15)의 전자 디바이스(4)를 포함할 경우에 대해서 나타낸다. 도 15 내지 도 18에서, 디바이스 사이의 화살표의 측면에 부가되어 있는 사각형은 패킷(50)의 페이로드, 즉 전자 디바이스수 M을 나타낸다. 각 전자 디바이스(4)에는, 도 11의 경우와 마찬가지로, 디바이스 ID가 부여되어 있다고 상정한다.
도 15는 전자 디바이스(4)의 모두에 대하여 아직 초기화가 행해지지 않은 상태에서 초기화 커맨드가 발행된 때를 나타낸다. 도 15에 도시한 바와 같이, 호스트 기기(2)는 전자 디바이스수를 M= "4"으로 설정하여 패킷을 발행했다고 상정한다. 즉, 호스트 기기(2)가 한번에 초기화 가능한 전자 디바이스수는 4개이다.
도 15에 도시한 바와 같이, 초기화 커맨드를 포함하는 패킷(M= "4")은 우선 전자 디바이스(4-1)에 의해 수신된다. 전자 디바이스(4-1)는 아직 초기화되어 있지 않고(스텝 S45, 아니오), 전자 디바이스수 M은 "4"이다(스텝 S46, 아니오). 따라서, 처리 유닛(8)은 초기화를 실행하고(스텝 S47), 처리 유닛(8)은 전자 디바이스수 M을 M-1="3"으로 갱신하고(스텝 S48), 처리 유닛(8)은 패킷을 다음 전자 디바이스(4-2)에 전송한다. 도 15에서, 전자 디바이스(4) 중에 부가되어 있는 "-1"은, 전자 디바이스수 M을 디크리먼트하고 있는 것을 나타낸다.
전자 디바이스(4-1)와 마찬가지로, 초기화 커맨드를 포함하는 패킷(M="3")을 수신한 전자 디바이스(4-2)는 초기화를 행하고, 전자 디바이스(4-2)는 전자 디바이스수 M을 디크리먼트해서 "3"으로부터 "2"로 갱신하고, 패킷을 전자 디바이스(4-3)에 전송한다. 전자 디바이스(4-3 및 4-4)도 마찬가지 동작을 실행한다.
전자 디바이스(4-4)에서 전자 디바이스수 M을 디크리먼트한 결과, 전자 디바이스수 M은 "0"이 된다. 따라서, 전자 디바이스(4-5 내지 4-15)는 초기화를 행하지 않고, 각각 다음 전자 디바이스(4-6 내지 4-16)에 패킷을 전송한다. 링 접속의 최후의 전자 디바이스(4-16)는 M="0"인 패킷을 호스트 기기(2)에 전송한다.
호스트 기기(2)는 호스트 기기(2)가 M="0" 이외의 값을 수신할 때까지 반복적으로 초기화 커맨드를 발행한다. 대안으로서, 호스트 기기(2)는 특정한 횟수 초기화 커맨드를 발행한 후, 임의의 타이밍에서 초기화 완료 확인 커맨드를 발행하여, 초기화 완료 확인 커맨드를 포함하는 패킷을 반도체 디바이스(3)에 전송한다. 도 16은 도 15의 상태 후에 초기화 완료 확인 커맨드가 발행되는 상태를 나타낸다.
초기화 완료 확인 커맨드를 포함하는 패킷은 우선 전자 디바이스(4-1)에 의해 수신된다(스텝 S50). 전자 디바이스(4-1)가 이미 초기화되어 있으므로(스텝 S53, 예), 전자 디바이스(4-1)는 패킷을 다음 전자 디바이스(4-2)에 전송한다(스텝 S54). 이 시점에서, 전자 디바이스(4-1 내지 4-4)의 초기화되어 있으므로, 패킷은 전자 디바이스(4-5)까지 도달한다. 그러나, 전자 디바이스(4-5)는 아직 초기화되어 있지 않으므로, 패킷은 전자 디바이스(4-5)에 머무르고, 호스트 기기(2)에 반송되지 않는다. 따라서, 호스트 기기(2)는 초기화가 완료되지 않은 전자 디바이스(4)의 존재를 인식할 수 있다.
따라서, 호스트 기기(2)는 초기화 커맨드를 포함하는 패킷을 다시 발행하여, 패킷을 반도체 디바이스(3)에 전송한다. 이러한 상태를 나타내는 것이 도 17이다. 도 17에 도시한 바와 같이, 전자 디바이스(4-1 내지 4-4)는 이미 초기화되어 있으므로(스텝 S41, 예), 패킷은 변경되지 않고 전자 디바이스(4-5)까지 도달한다. 도 15와 마찬가지 방식으로, 전자 디바이스(4-5 내지 4-8)가 초기화된다. 초기화 완료 확인 커맨드를 포함하는 패킷은 전자 디바이스(4-9)까지 도달한다.
그 후, 호스트 기기(2)는 초기화 커맨드를 포함하는 패킷을 2회 발행함으로써, 모든 전자 디바이스(4)가 초기화된다. 이러한 상태를 도 18에 나타낸다. 모든 전자 디바이스(4)가 초기화되면, 초기화 완료 확인 커맨드를 포함하는 패킷이 전자 디바이스(4-16)로부터 호스트 기기(2)에 전송된다(도 18에서의 굵은선 화살표가 초기화 완료 확인 커맨드를 포함하는 패킷의 흐름을 나타냄). 이에 의해, 호스트 기기(2)는 모든 전자 디바이스(4-1 내지 4-16)의 초기화되었음을 인식한다. 물론, 초기화 완료 확인 커맨드를 발행되지 않은 경우라도, 도 18의 시점에서 호스트 기기(2)가 전자 디바이스(4-15)로부터 M="1"(M≠"0")의 패킷(50)을 수신함으로써, 호스트 기기(2)는 모든 전자 디바이스(4)가 초기화된 것을 인식할 수 있다.
상기의 초기화 방법은 복수의 전자 디바이스에 대한 초기화 시간을 단축하고, 호스트가 지원 가능한 전원 전류 이내에서 초기화를 가능하게 하기 위해서 그룹핑(grouping)에 의해 초기화한다. 이러한 방법은 각 전자 디바이스에 필요한 초기화 전류의 상한값을 정의하는 것에 의해 구현해도 된다. 그러나, 전자 디바이스에 따라 초기화에 필요한 전류값이 다른 경우도 고려할 수 있다. 예를 들면, 초기화에 필요한 전류를 두배로 하여, 절반의 시간으로 초기화가 가능한 경우도 고려할 수 있다. 임베디드 시스템 환경에서는, 전자 디바이스마다 최적의 초기화 그룹을 사전에 지정함으로써 초기화 시간을 더욱 단축하는 경우도 있다. 초기화 시간을 더욱 단축하는 것은 각 전자 디바이스에 그룹 번호를 설정함으로써 실현할 수 있다. 그룹 번호는 몇회 째의 초기화 커맨드에서 전자 디바이스에 초기화를 행할지를 나타낸다. 그룹 번호가 설정되어 있는 경우, 초기화 커맨드 내의 초기화 가능한 디바이스수는 무시하고, 각 디바이스는 수신한 초기화 커맨드의 수를 세고, 수신한 초기화 커맨드 수가 그룹 번호와 일치할 경우 각 디바이스는 초기화를 개시한다. 현재 초기화 중인 경우에, 전자 디바이스는 초기화 완료까지 대기하고, 초기화 커맨드를 출력한다. 전자 디바이스의 특징에 따른 호스트 시스템은 최적의 초기화 절차를 선택할 수 있다. 이 점에 대해서는 제2 실시 형태에서 상세하게 설명한다.
<스텝 S15>
이하, 도 2의 스텝 S15에 대해서 설명한다. 모든 전자 디바이스가 동작 가능한 조건을 설정하기 위해서, 호스트 기기(2)는 브로드캐스팅에 의한 설정값을 판독하는 커맨드를 발행한다. 최대 클록 주파수 레인지, 타임 아웃 값 및 각종 심볼 길이 등의 파라미터를 커맨드의 인수로서 나타내고, 각 전자 디바이스는 대응 가능한 인수는 갱신하지 않고, 전자 디바이스는 대응할 수 없는 인수는 대응 가능한 파라미터 값으로 갱신한다. 호스트 기기(2)가 수신한 파라미터는 모든 디바이스가 동작 가능한 조건을 포함한다.
<스텝 S16>
이하, 도 2의 스텝 S16에 대해서 설명한다. 스텝 S15에서 호스트 기기(2)는 전자 디바이스(4)에 공통 동작 조건을 결정했으므로, 브로드캐스팅에 의한 설정값을 기입하는 커맨드에 의해 모든 전자 디바이스(4)에 동일한 값이 설정된다(값은 각 전자 디바이스(4)의 레지스터(9)에 설정됨).
이 점에 대해서 구체예를 들어서 설명한다. 도 19는 스텝 S15에서 판독된 정보를 나타내는 표이며, 도 19는 일례로서 15개의 전자 디바이스의 경우에, 최대 동작 주파수 및 동작 타이밍을 나타낸다.
도 19에 도시한 바와 같이, 전자 디바이스(4-1 내지 4-15)의 각각의 최대 동작 주파수가 f0 내지 f15이며, 호스트 기기(2)의 최대 동작 주파수가 f0이라고 상정한다. 최저 주파수가 전자 디바이스(4-3)의 최대 동작 주파수 f3이라고 상정한다. 도 19의 정보로부터, 호스트 기기(2)는 모든 전자 디바이스(4-1 내지 4-15) 및 호스트 기기(2)가 주파수 f3에서 동작 가능하다는 것을 인식할 수 있다.
전자 디바이스(4-1 내지 4-15)의 각각의 동작 타이밍이 T1 내지 T15이며, 호스트 기기(2)의 동작 타이밍이 T0이라고 상정한다. 가장 불량한 타이밍이 전자 디바이스(4-1)의 동작 타이밍 T1이라고 상정한다. 도 19의 정보로부터, 호스트 기기(2)는 모든 전자 디바이스(4-1 내지 4-15) 및 호스트 기기(2)가 동작 타이밍 T1에서 동작 가능하다는 것을 인식할 수 있다.
이상의 성능을 참조한 결과, 호스트 기기(2)는 전자 디바이스(4-1 내지 4-15)의 동작 주파수를 동작 주파수 f3로 결정하고, 전자 디바이스(4-1 내지 4-15)의 동작 타이밍을 동작 타이밍 T1으로 결정한다. 호스트 기기(2)는 각 전자 디바이스(4)의 레지스터(9)에 동작 조건으로서 동작 주파수 f3 및 동작 타이밍 T1을 기입한다. 이 때, 호스트 기기(2)가 발행하는 패킷(60)을 도 20에 나타낸다.
도 20에 도시한 바와 같이, 패킷(60)에서, 패킷 헤더(61)에는 레지스터 기입 커맨드에 따른 커맨드 식별자가 저장되고, 페이로드(62)에는 동작 주파수 f3 및 동작 타이밍 T1이 저장된다. 패킷(60)을 전송함으로써, 각 전자 디바이스(4)의 레지스터에는 순차적으로 동작 주파수 f3 및 동작 타이밍 T1이 기입된다(스텝 S16-1 내지 S16-N). 패킷(60)은 브로드캐스트, 유니캐스트 또는 멀티캐스트에 의해 전송되어도 된다.
스텝 S16에서 설정된 구성은 최대 동작 주파수 및 동작 타이밍외에도, 특정 심볼의 길이, 지원되는 패킷의 종류, 파워 컨트롤 모드 및 재시도 횟수를 포함할 수 있다.
<스텝 S17>
이하, 도 2의 스텝 S17에 대해서 설명한다. 스텝 S15 및 스텝 S16의 시퀀스에서 모든 전자 디바이스(4)의 공통 동작 조건이 결정된다. 전송 블록 사이즈 등은 개개의 I/O 디바이스에 따라 다른 경우가 있다. 따라서, 호스트 기기(2)는 전자 디바이스(4)가 개별적으로 설정되어야 하는 파라미터를 갖는 경우에는 유니캐스트 커맨드를 이용하여 전자 디바이스(4)의 성능을 판독하고(도 2의 스텝 S17A-1, S17A-1, …, S17A-N), 호스트 기기(2)는 호스트 기기(2)의 성능과 전자 디바이스(4)의 성능 양쪽을 만족시키는 최적의 값을 결정하고, 호스트 기기(2)는 유니캐스트 커맨드를 이용하여 전자 디바이스(4)에 최적의 값을 설정한다(도 2의 스텝 S17B-1, S17B-1, …, S17B-N).
파라미터의 예시는 데이터 전송에 이용되는 버퍼 사이즈 및 데이터 전송 타이밍을 포함한다.
<효과>
이상과 같이, 본 발명의 제1 실시 형태의 반도체 디바이스에서는, 초기화 동작의 속도를 향상시킬 수 있다.
(1) 제1 실시 형태의 구성에서, 호스트 기기(2)는 전압 레벨의 검출에 의해 전자 디바이스(4)와 접속 가능한 버스 인터페이스가 이용 가능한지를 판정한다(도 2의 스텝 S10). 즉, 호스트 기기(2)는 전자 디바이스(4)에 대하여 레벨 STB을 전송하고, 전자 디바이스(4)로부터 레벨 STB이 반송되면, 호스트 기기(2)는 버스 인터페이스가 이용 가능하다고 판단한다. 즉, 호스트 기기(2)는 신호 D0가 동상(in-phase) 레벨로부터 차동 레벨로 변화한 후, 신호 D1이 동상 레벨로부터 차동 레벨로 변화했음을 검출함으로써 버스 인터페이스가 이용 가능하다고 판단한다.
이는 전자 디바이스(4)에서도 마찬가지이다. 호스트 기기(2)가 레벨 STB을 전자 디바이스(4)에 전송하면, 전자 디바이스(4)는 신호 D0가 동상 레벨로부터 차동 레벨로 변화했음을 검출하고, 전자 디바이스(4)는 버스 인터페이스가 이용 가능하다고 판단한다.
따라서, 신호 D0 및 D1의 전압 레벨을 검출함으로써, 버스 인터페이스의 이용 가능성을 고속으로 판단할 수 있다. 버스 인터페이스를 이용할 수 있으면, 호스트 기기(2)가 심볼 SYN을 전송하는 것에 의해, 각 전자 디바이스(4)는 입력 심볼 SYN을 이용하여 내부 클럭을 동기화한다. 전자 디바이스(4)는 내부 PLL에 의한 클럭 동기화 중에 레벨 STB을 계속해서 출력하고, 클럭 동기화가 완료되면 전자 디바이스(4) 클럭에 동기화된 심볼 SYN을 출력한다. 호스트 기기(2)가 심볼 SYN을 수신하면, 호스트 기기(2)는 모든 전자 디바이스(4)에 대한 동기화가 완료되었다고 인식한다.
호스트 기기(2)는 심볼 SYN의 수신 후, 심볼 ID1E을 전송한다(도 3의 시각 t4). 심볼 ID1E은 호스트 기기(2)가 아이들 상태라는 것을 나타내는 심볼이다.
(2) 제1 실시 형태의 구성에서, 부트 코드를 유지하는 전자 디바이스(4)는, 호스트 기기(2)로부터의 커맨드를 대기하지 않고, 심볼 ID1E을 수신하면, 자발적으로 부트 코드를 호스트 기기(2)에 전송한다(도 2의 스텝 S12).
호스트 기기(2)가 커맨드를 발행하는 때는, 복수의 커맨드 절차가 필요하다. 따라서, 부트 코드의 판독에는 비교적 시간이 걸린다. 부트 디바이스를 포함하지 않는 시스템에서는, 시스템을 기동하기 위한 프로그램을 메모리 디바이스로부터 판독하기 위한 전용의 부트 ROM이 구현되어 있어야 한다.
그러나, 제1 실시 형태에서는, 부트 디바이스로부터의 부트 코드를 호스트 컨트롤러가 직접 시스템 메모리에 로딩하기 때문에, 호스트 기기(2)가 커맨드를 생성할 필요가 없고, 부트 ROM도 생략할 수 있어, 비용을 저감할 수 있다. 이에 따라, 호스트 기기(2)에서는, 시스템이 신속하게 기동되고, 전자 디바이스(4)에서 초기화의 속도도 향상시킬 수 있다.
(3) 제1 실시 형태의 구성에서, 디바이스 ID를 할당하는 동안, 호스트 기기(2)는 각 전자 디바이스(4)의 디바이스 ID를 요구하는 패킷을 브로드캐스팅한다(도 2의 스텝 S13). 패킷은 각 전자 디바이스(4)에서 디바이스 ID가 발행되면서, 접속 순서에 따라 전자 디바이스(4) 간에 전송된다. 패킷 내의 디바이스 ID는 전자 디바이스(4)를 통과할 때마다 갱신되고, 갱신된 값이 각 전자 디바이스(4)의 디바이스 ID가 된다. 따라서, 디바이스 ID가 서로 중복되지 않는다. 따라서, 호스트 기기(2)는 디바이스 ID 간의 중복의 유무를 확인할 필요가 없어, 초기화 동작을 간소화할 수 있다.
(4) 제1 실시 형태의 구성에서, 디바이스 ID를 할당하는 것과 마찬가지로, 브로드캐스트 커맨드를 이용하여 초기화를 행한다(스텝 S14). 따라서, 초기화의 속도를 향상시킬 수 있다.
일반적으로, 초기화 시간은 최대 1초 정도 걸린다. 따라서, 복수의 전자 디바이스가 포함되는 시스템에서, 각 전자 디바이스에 커맨드를 발행하는 방법에서, 유저는 초기화 완료에 대하여 긴 대기 시간을 가질 수 있다.
그러나, 브로드캐스트 커맨드를 이용하는 것으로, 호스트 기기(2)가 발행하는 커맨드수를 저감할 수 있어, 초기화 시퀀스를 간소화할 수 있다. 1개의 커맨드로 복수의 전자 디바이스를 동시에 초기화함으로써, 초기화 시간을 단축할 수 있다.
동시에 초기화하는 전자 디바이스(4)의 수는 호스트 기기(2)에 의해 결정된다. 일반적으로, 1개의 전자 디바이스(4)를 초기화하기 위해서는 최대 100mA의 전류가 필요하다. 그러나, 호스트 기기에는 전류 공급 성능에 제한이 있다. 따라서, 호스트 기기(2)는 초기화 커맨드를 포함하는 패킷 내에 초기화 가능한 전자 디바이스수를 저장하고, 호스트 기기(2)는 패킷 내에 저장되어 있는 수만큼의 전자 디바이스를 동시에 초기화한다. 몇개 단위로 전자 디바이스(4)를 순차적으로 초기화함으로써, 호스트 기기(2)의 전류 공급 성능의 범위 내에서 단시간에서 초기화를 행할 수 있다.
초기화 속도를 보다 향상하기 위해서 그룹 번호를 이용하는 방법을 채택할 수 있다. 상기 방법에서는, 초기화 전류가 100mA로 제한되어 있지만, 더 큰 전류를 흘리면 초기화 시간을 짧게 할 수 있는 경우가 있다. 이 경우에는, 초기화하려는 전자 디바이스를 호스트 시스템에 의해 전류 공급 가능한 그룹으로 나누고, 그룹 번호를 사전에 디바이스에 기입해 두고, 초기화 커맨드의 발행수를 카운트하여, 카운트 값이 그룹 번호와 일치했을 경우에 전자 디바이스가 초기화를 개시하도록 한다. 이에 따라, 호스트 시스템은 초기화를 보다 효율적으로 커스터마이즈할 수 있다.
(5) 제1 실시 형태의 구성에서, 호스트 기기(2)와 전자 디바이스(4)의 성능에 기초하여, 호스트 기기(2)와 전자 디바이스(4)의 양쪽을 만족시키는 공통 동작 조건을 결정한다(도 2의 스텝 S15 및 S16).
예를 들면, 종래의 시스템에서는, 버스의 사양에 의해 최대 동작 주파수가 결정된다. 버스의 주파수가 매우 높아지면, 전자 디바이스측이나 호스트 기기측에서 버스 주파수를 지원하는 것이 곤란해진다. 메모리 디바이스의 경우에 버스의 속도 향상은 큰 의미가 없고, 메모리 디바이스의 기입이나 판독 성능에 따라 데이터의 전송 속도가 결정된다. 예를 들면, 메모리 디바이스의 성능은 메모리 성능에 의해 제한되기 때문에, 버스의 동작 주파수를 높게 하여 버스 인터페이스 속도를 향상시켜도, 소비 전력이 증가한다는 단점이 있다.
한편, 제1 실시 형태에서는, 호스트 기기(2)와 전자 디바이스(4)의 성능을 참조하여, 호스트 기기(2)와 전자 디바이스(4)의 양쪽을 만족시킬 수 있는 공통 동작 조건을 결정한다. 따라서, 동작 성능의 적어도 일부로 최적의 동작 조건을 설정할 수 있고, 반도체 시스템(1)의 동작 성능을 향상시킬 수 있다. 각 전자 디바이스(4)에 대해서 동작 조건을 결정하는 경우에 비해, 브로드캐스트 커맨드를 이용하여 복수의 전자 디바이스(4)에 대하여 동작 조건을 전송함으로써, 초기화의 속도를 향상시킬 수 있다.
(6) 제1 실시 형태의 구성에서, 전자 디바이스(4)의 동작 조건을 개별적으로 결정한다(도 2의 스텝 S17). 따라서, 전자 디바이스(4)는 동작 성능을 충분히 발휘할 수 있다. 즉, 공통으로 해야만 하는 동작 조건에 대해서는 스텝 S15 및 S16에 의해 결정되지만, 공통으로 할 필요가 없는 점에 대해서는 스텝 S17에서 결정된다. 개별적으로 동작 조건을 결정함에 의해, 다른 전자 디바이스(4)의 성능과 관계없이, 각 전자 디바이스(4)가 우수한 동작 특성을 발휘할 수 있다.
[제2 실시 형태]
이하, 제2 실시 형태에 따른 반도체 시스템 및 전자 디바이스 초기화 방법에 대해서 설명한다. 제2 실시 형태에서는, 제1 실시 형태에서 설명한 스텝 S14의 처리를 다른 방법으로 실행한다. 제2 실시 형태의 다른 구성은 제1 실시 형태의 구성과 마찬가지이므로, 그 설명은 생략한다.
<제1 예>
우선, 스텝 S14의 다른 방법으로서 제1 예에 대해서 설명한다. 제1 예의 호스트 기기(2)에서, 전자 디바이스(4-1 내지 4-N)를 미리 그룹으로 나눈다. 각 그룹에 대하여 그룹 번호를 부여하고, 그룹 번호를 전자 디바이스(4)의 레지스터(9)에 기입한다. 이 동작은, 예를 들면 스텝 S14이나 스텝 S13에서 행해도 좋고, 또는 동장을 제조 시에 미리 행해도 좋다.
한번에 초기화 가능한 최대 전자 디바이스수 M 대신에, 전자 디바이스(4)의 초기화를 위해서 호스트 기기(2)가 이용 가능한 파워 유닛(파워 유닛 )의 수 M을 이용한다. 파워 유닛수 M은 초기화를 위해 이용 가능한 파워(전력)을 임의의 단위로 나타낸 값이며, 각 전자 디바이스(4)를 초기화할 때에 호스트 기기(2)는 미리 결정된 수의 파워 유닛을 소비한다.
그룹 및 파워 유닛수 M 이외에, 초기화 완료 플래그 CF(Completion Flag)도 이용할 수 있다. 모든 전자 디바이스(4)의 초기화가 완료되었으면 초기화 완료 플래그 CF가“1"로 설정되고, 그렇지 않으면, 초기화 완료 플래그 CF가 "1" 이외의 값(예를 들면 "0")으로 설정된다.
(초기화 커맨드를 포함하는 패킷)
스텝 S14에서, 호스트 기기(2)는 도 21에 나타내는 패킷(70)을 생성하여, 패킷(70)을 반도체 디바이스(3)에 전송한다. 도 21에 도시한 바와 같이, 패킷(70)의 패킷 헤더(71)에는 초기화 커맨드를 나타내는 커맨드 식별자가 포함되고, 페이로드에는 인수로서 그룹 번호 CC, 파워 유닛수 M 및 초기화 완료 플래그 CF가 포함된다. 패킷(70)은 브로드캐스트 커맨드로서 발행된다.
(전자 디바이스(4)의 동작)
도 22는 패킷(70)을 수신했을 때의 전자 디바이스(4)의 동작을 나타내는 플로우차트이며, 도 22의 플로우 차트는 전자 디바이스(4-1 내지 4-N)에 공통된다. 도 22에 도시한 바와 같이 전자 디바이스(4)는 입력 신호 핀(5)에서 패킷(70)을 수신한다(스텝 S50). 또한, 패킷 디코더(7)는 수신한 패킷(70)의 패킷 헤더(71)의 커맨드 식별자로부터 패킷이 초기화 커맨드를 포함한다는 것을 인식하면, 패킷이 초기화 커맨드를 포함한다는 것과 페이로드 내의 그룹 번호 CC, 파워 유닛수 M 및 초기화 완료 플래그 CF를 처리 유닛(8)에 통지한다. 처리 유닛(8)은 전자 디바이스(4)가 현재 초기화 중인지 여부를 판단한다(스텝 S51). 전자 디바이스(4)가 현재 초기화 중이면(스텝 S51, 예), 처리 유닛(8)은 초기화의 완료까지 대기한다(스텝 S52). 처리 유닛(8)은 초기화를 행하지 않고(스텝 S53), 처리 유닛(8)은 패킷(70)을 다음 전자 디바이스(4)에(전자 디바이스(4-N)의 경우에는 호스트 기기(2)에) 전송한다(스텝 S60). 이 때, 패킷 갱신 회로(10)는 패킷(70) 내의 파워 유닛수 M 및 초기화 완료 플래그 CF를 갱신하지 않는다.
전자 디바이스(4)가 현재 초기화 중이 아니고(스텝 S51, 아니오), 전자 디바이스(4)가 이미 초기화되었으면(스텝 S54, 예), 스텝 S53 및 S60로 진행한다. 이 때, 패킷(70) 내의 파워 유닛수 M 및 초기화 완료 플래그 CF를 갱신되지 않는다.
전자 디바이스(4)가 현재 초기화 중이 아니고(스텝 S51, 아니오), 전자 디바이스(4)가 이미 초기화되지 않았으면(스텝 S54, 아니오), 처리 유닛(8)은 페이로드 내의 초기화 완료 플래그 CF를 "0"으로 클리어(clear)하도록 패킷 갱신 회로(10)에 명령한다(스텝 S55). 초기화 완료 플래그 CF가 "0"으로 클리어되면, 호스트 기기(2)는 초기화 커맨드의 발행이 계속적으로 필요하다고 인식한다(이 점은 후술함). 또한, 처리 유닛(8)은 페이로드 내의 그룹 번호 CC를 확인한다(스텝 S56). 처리 유닛(8)은 그룹 번호 CC가 레지스터(9)에 저장되어 있는 자신의 그룹 번호 GN과 일치하는지 여부를 판단한다.
그룹 번호 CC가 그룹 번호 GN과 일치하면(스텝 S56, 예), 처리 유닛(8)은 페이로드 내의 파워 유닛수 M과, 전자 디바이스(4)를 초기화할 때에 소비하는 파워 유닛수 P를 비교한다(스텝 S57). 각 전자 디바이스(4)에 관한 파워 유닛수 P는, 예를 들면 각 전자 디바이스(4)의 레지스터(9)에 기입되어 있어도 좋다. 이 경우, 처리 유닛(8)은, 레지스터(9) 내의 파워 유닛수 P와, 수신한 패킷의 페이로드 내의 파워 유닛수 M을 비교한다. 파워 유닛수 P의 레지스터(9)로의 기입은, 예를 들면 스텝 S14나 스텝 S13에서 행해도 좋고, 또는 그 처리를 미리 제조 시에 행해도 좋다.
처리 유닛(8)은 (M-P)가 0이상인지의 여부, 즉 파워 유닛수 M이 파워 유닛수 P이상인지 여부를 판단한다. (M-P)가 0이상이면, 즉 파워 유닛수 M이 파워 유닛수 P이상이면(스텝 S57, 예), 처리 유닛(8)은 페이로드 내의 파워 유닛수 M을 (M-P)으로 갱신하도록 패킷 갱신 회로(10)에 명령한다(스텝 S58). (M-P)의 값은 호스트 기기(2)가 공급 가능한 전력으로부터 전자 디바이스(4)가 소비하는 전력을 뺀 차분을 나타내고, (M-P)의 값은 또한 다른 전자 디바이스가 동시에 초기화되는데 필요한 파워 유닛수를 나타낸다. 처리 유닛(8)은 초기화를 개시한다(스텝 S59). 초기화 개시 후, 처리 유닛(8)은 초기화 완료를 대기하지 않고, 패킷 갱신 회로(10)로 하여금 파워 유닛수 M 및 완료 플래그를 갱신한 패킷(70)을, 다음 전자 디바이스(4)에(전자 디바이스(4-N)의 경우에는 호스트 기기(2)에) 전송하게 한다(스텝 S60).
그룹 번호 CC과 GN이 서로 일치하지 않으면(스텝 S56, 아니오), 처리 유닛(8)은 초기화를 실행하지 않고(스텝 S53), 스텝 S60으로 진행한다. 즉, 파워 유닛수 M이 갱신되지 않고, 패킷(70)이 전송된다. 또한, (M-P)이 0보다 작은 경우, 즉 M이 P보다 작은 경우도(스텝 S57, 아니오), 처리 유닛(8)은 초기화를 실행하지 않고(스텝 S53), 스텝 S60으로 진행한다.
전자 디바이스(4)에 복수의 파워 유닛수 P가 구현되어 있을 수 있다. 예를 들면, 구현 가능한 복수의 파워 유닛수 P가 미리 레지스터(9)에 기입되고, 파워 유닛수 P를 이용하여 스텝 S57 내지 S58의 처리의 과정들 및 초기화를 행할 수 있다. 대안으로서, 초기화 커맨드에 나타나는 파워 유닛 M에 대하여, 전자 디바이스(4)가 최적의 파워 유닛수 P를 선택할 수 있다.
(호스트 기기(2)의 동작)
이하, 스텝 S14 처리를 행할 시의 호스트 기기(2)의 동작에 대해서 도 23을 참조하여 설명한다. 도 23은 호스트 기기(2)의 동작을 나타내는 플로우차트이다.
도 23에 도시한 바와 같이, 호스트 기기(2)는 그룹 번호 초기값 CC을 0으로 설정하고, 초기화 완료 플래그 CF를 1로 설정한다(스텝 S70). 호스트 기기(2)는 그룹수 CC, 초기화 완료 플래그 CF 및 파워 유닛수 M를 인수로서 설정하여 패킷(70)을 취합하고, 호스트 기기(2)는 패킷(70)을 브로드캐스트 커맨드에 의해 전송한다(스텝 S71).
그 후, 호스트 기기(2)는 모든 전자 디바이스(4)를 통과한 패킷(70)을 수신한다(스텝 S72). 호스트 기기(2)는 수신한 패킷(70) 내의 초기화 완료 플래그 CF가 1 인지 여부를 확인한다(스텝 S73). 초기화 완료 플래그 CF가 1이면(스텝 S73, 예), 호스트 기기(2)는 모든 전자 디바이스(4)의 초기화가 완료된 것이라 판단하고, 초기화를 종료한다.
한편, 초기화 완료 플래그 CF가 1이 아니면(스텝 S73, 아니오), 호스트 기기(2)는 파워 유닛수 M이 변화했는지 여부를 확인한다(스텝 S74). 즉, 호스트 기기(2)는 수신한 패킷(70)에 포함되는 파워 유닛수 M이 패킷(70)의 전송 시의 값과 상이한지 여부를 판단한다.
파워 유닛수 M이 변화하지 않았으면(스텝 S74, 아니오), 호스트 기기(2)는 그룹 번호 CC에 속하는 모든 전자 디바이스(4)가 이미 초기화를 개시했거나, 또는 모든 전자 디바이스(4)에 대하여 초기화가 완료되었다고 판단하고, 호스트 기기(2)는 그룹 번호 CC를 증분하고(스텝 S75), 호스트 기기(2)는 초기화 완료 플래그 CF를 1로 설정하고, 호스트 기기(2)는 스텝 S71으로 진행하여, 다시 초기화 커맨드를 발행한다.
파워 유닛수 M이 변화하였다면(스텝 S74, 예), 호스트 기기(2)는 그룹 번호에 속하는 전자 디바이스(4) 중 아직 초기화를 개시하지 않은 것이 있을 가능성이 있다고 판단하고, 호스트 기기(2)는 그룹 번호 CC은 그대로 두고, 초기화 완료 플래그CF를 1로 설정하고(스텝 S76), 호스트 기기(2)는 스텝 S71으로 진행하여, 다시 초기화 커맨드를 발행한다.
따라서, 호스트 기기(2)는 수신한 패킷(70)의 초기화 완료 플래그 CF를 체크함으로써, 전자 디바이스(4)의 모든 초기화가 완료하였는지의 여부를 확인할 수 있다. 바꿔 말하자면, 제1 예에서는, 전자 디바이스(4)를 초기화하기 위한 초기화 커맨드와 모든 전자 디바이스(4)의 초기화를 완료했는지를 확인하는 초기화 완료 확인 커맨드가 하나로 통합되어 있다고 할 수 있다.
그러나, 제1 실시 형태와 마찬가지로, 전자 디바이스(4)의 초기화 완료를 확인하기 위한 커맨드는 별도로 발행할 수도 있다. 예를 들면, 도 21에 도시된 패킷은 그룹 번호 CC를 미리 정해진 값으로 설정함으로써 초기화 완료 확인 커맨드로서사용된다. 이 경우, 해당 커맨드를 전자 디바이스가 수신하면, 현재 초기화중이 아닌 전자 디바이스는 커맨드를 출력하지만, 현재 초기화중인 전자 디바이스는 초기화 완료를 대기하고나서 커맨드를 출력한다. 호스트 기기(2)는 해당 커맨드를 수신하면, 하나의 그룹의 초기화가 완료되었다는 것을 인식한다. 호스트 기기(2)는 모든 전자 디바이스(4)가 초기화될 때까지, 그룹 번호 CC를 변경하면서, 초기화 커맨드를 포함하는 패킷(70)의 송신을 반복한다.
초기화 커맨드는 전자 디바이스(4)에 디바이스 ID가 할당되기 전에 발행될 수도 있다.
(제1 구체예)
제1 예의 스텝 S14에서의 처리에 대한 구체예는 도 24 및 도 25를 참조하여 설명될 것이다. 도 24 및 도 25는 반도체 시스템(1)의 블록도이며, 도 24 및 도 25는 도 11과 마찬가지로, 반도체 시스템(1)이 15(N=15)개의 전자 디바이스(4)를 포함하는 것을 나타내고 있다. 도 24 및 도 25에서, 전자 디바이스들 간에 화살표의 사이드에 부가된 사각 마크들은 패킷(70)의 페이로드(72), 즉 좌측으로부터 순차적으로 그룹 번호 CC, 파워 유닛수 M, 및 초기화 완료 플래그 CF를 나타내고 있다. 도 23에서, 각 전자 디바이스(4) 내부에 기재된 GN=i(i=0 내지 3)은, 각 전자 디바이스(4)에 할당된 그룹 번호 GN을 나타낸다.
도 23에 도시한 바와 같이, 전자 디바이스(4-1) 내지 (4-4)은 제0 그룹(GN=0)에 할당되고, 전자 디바이스(4-5) 내지 (4-8)은 제1 그룹(GN=1)에 할당되고, 전자 디바이스(4-9) 내지 (4-12)은 제2 그룹(GN=2)에 할당되고, 전자 디바이스(4-13) 내지 (4-15)은 제3 그룹(GN=3)에 할당되어 있다. 각 전자 디바이스의 초기화에 필요한 파워 유닛수 P는 1라고 가정한다.
도 24에 도시한 바와 같이, 호스트 기기(2)는 전자 디바이스(4) 모두가 아직 초기화되어 있지 않은 상태에서 패킷(70)을 송신한다. 도 24에 도시한 바와 같이, 호스트 기기(2)는 그룹 번호 CC를 0으로 설정하는 반면, 초기화 완료 플래그 CF를 1로 설정하고, 호스트 기기(2)는 패킷(70)을 발행한다. 파워 유닛수 M은 4라고 가정한다.
패킷(70)은 전자 디바이스(4-1)에 의해 수신된다. 전자 디바이스(4-1)에 할당된 그룹 번호 GN(=0)은 패킷(70)의 페이로드내의 그룹 번호 CC(=0)와 일치한다(스텝 S56에서의 예). 따라서, 전자 디바이스(4-1)의 처리 유닛(8)은 초기화를 실행한다(스텝 S59). 처리 유닛(8)은 패킷(70)을 다음 전자 디바이스(4-2)에 송신한다. 이때, 전자 디바이스(4-1)의 패킷 갱신 회로(10)는 파워 유닛수 M을 (M-P)=(4-3)=3으로 갱신하는 반면 초기화 완료 플래그 CF는 0으로 갱신한다.
패킷(70)을 수신한 전자 디바이스(4-2)가 제0 그룹(GN=0)에 할당되기 때문에, 전자 디바이스(4-1)와 마찬가지로, 전자 디바이스(4-2)는 초기화를 행하고, 패킷(70)을 전자 디바이스(4-3)에 송신한다. 파워 유닛수 M은 (M-P)=(3-1)=2로 갱신된다. 전자 디바이스(4-3) 및 (4-4)도 유사한 처리를 실행한다.
전자 디바이스(4-5)는 전자 디바이스(4-4)로부터 패킷(70)을 수신한다. 전자 디바이스(4-5)는 제1 그룹(GN=1)에 할당된다(스텝 S56에서의 아니오). 따라서 전자 디바이스(4-5)는 초기화를 행하지 않고, 패킷(70)을 다음 전자 디바이스(4-6)로 송신한다(스텝 S53). 유사하게, 전자 디바이스(4-6) 내지 (4-15)는 초기화를 행하지 않는다. 패킷(70)은 전자 디바이스(4-15)로부터 호스트 기기(2)로 반송된다.
전자 디바이스(4-15)로부터 패킷(70)을 수신한 호스트 기기(2)는 수신한 패킷(70)의 파워 유닛수 M이 송신시의 4로부터 0으로 변화한 것을 인식하고(스텝 S74에서의 예), 호스트 기기(2)는 CC=0, CF=1을 갖는 패킷(70)을 재송신한다(스텝 S71). 전자 디바이스(4-1)는 초기화가 완료한 후, 패킷(70)을 인수를 변경하지 않고 다음 전자 디바이스(4-2)에 송신한다. 전자 디바이스(4-2) 내지 (4-4)도 유사한 처리를 행한다.
전자 디바이스(4-4)로부터 패킷(70)을 수신한 전자 디바이스(4-5)는 초기화 완료 플래그 CF를 0으로 갱신하지만(스텝 S55), CC≠GN이므로(스텝 S56에서의 아니오), 전자 디바이스(4-5)는 초기화를 행하지 않고(스텝 S53), 파워 유닛수 M을 갱신하지 않고 패킷(70)을 다음 전자 디바이스(4-6)에 송신한다. 전자 디바이스(4-6) 내지 (4-15)도 유사한 처리를 행한다. 패킷(70)은 전자 디바이스(4-15)로부터 호스트 기기(2)로 반송된다.
전자 디바이스(4-15)로부터 패킷(70)을 수신한 호스트 기기(2)는 수신한 패킷(70)의 파워 유닛수 M이 송신시의 4로부터 변화되지 않았다는 것을 인식하고(스텝 S74에서의 아니오), CC=CC+1=1(스텝 S75)와 CF=1을 갖는 패킷(70)을 재송신한다(스텝 S71). 도 25는 이러한 상황을 나타낸다.
도 25에 도시한 바와 같이, 전자 디바이스(4-1) 내지 (4-4)는 초기화가 이미 완료되었기 때문에, 초기화 완료 플래그 CF 및 파워 유닛수 M을 갱신하지 않고, 패킷(70)을 전송한다. 따라서, 전자 디바이스(4-5)는 CC=1, M=4 및 CF=1을 갖는 패킷(70)을 수신한다. 따라서, 전자 디바이스(4-5)는 초기화를 개시하고, 초기화 완료 플래그 CF를 0으로 갱신하고, 파워 유닛수 M을 4로부터 3으로 갱신하고, 패킷(70)을 전송한다. 유사하게, 전자 디바이스(4-6) 내지 (4-8)도 초기화를 개시한다.
다음으로, 호스트 기기(2)는 CC=1을 갖는 패킷(70)을 재송신한다. 호스트 기기(2)는, 전자 디바이스(4-5) 내지 (4-8)의 초기화를 완료한 후, 송신시와 동일한 값 M을 갖는 패킷(70)을 수신한다. 따라서, 호스트 기기(2)는 그룹 번호 CC가 갱신된 패킷(70)을 송신한다. 다음으로, 전자 디바이스(4-9) 내지 (4-12)와 전자 디바이스(4-13) 내지 (4-15)의 초기화가 유사하게 행해진다.
전자 디바이스(4-15)의 초기화가 완료하면, 호스트 기기(2)는 CF=1을 갖는 패킷(70)를 수신하기 때문에, 전자 디바이스(4-1) 내지 (4-15)의 모든 초기화가 완료한 것을 인식하고, 초기화 동작을 완료한다.
(제2 구체예)
다른 구체예에 대해서는 도 26 내지 도 30을 참조하여 설명할 것이다. 도 26 내지 도 30은 반도체 시스템(1)의 블록도이며, 도 26 및 도 30은 반도체 시스템(1)이 4(N=4)개의 전자 디바이스(4)를 포함하는 경우를 나타내고 있다. 도 26 및 도 30에서, 전자 디바이스들간의 화살표에 부가된 사각 마크는 패킷(70)의 페이로드, 즉 좌측으로부터 순차적으로 그룹 번호 CC, 파워 유닛수 M 및 초기화 완료 플래그 CF를 나타내고 있다. 각 전자 디바이스(4)의 파워 유닛수 P 및 그룹 번호 GN은 도 26에 도시되어 있다.
도 26에 도시한 바와 같이, 호스트 기기(2)는 전자 디바이스(4) 모두가 아직 초기화되어 있지 않은 상태에서 패킷(70)을 송신한다. 도 26에 도시한 바와 같이, 호스트 기기(2)는 그룹 번호 CC를 0으로 설정하는 반면, 초기화 완료 플래그 CF를 1로 설정하고, 호스트 기기(2)는 패킷(70)을 발행한다. 파워 유닛수 M는 3이라고 가정한다.
최초로 패킷을 수신한 전자 디바이스(4-1)는 패킷(70)의 초기화 완료 플래그 CF를 1에서 0으로 갱신한다(스텝 S55). CC≠GN이기 때문에(스텝 S56에서의 아니오), 전자 디바이스(4-1)는 M의 값을 갱신하지 않고, 패킷(70)을 전자 디바이스(4-2)에 송신한다. 전자 디바이스(4-2)도 유사한 처리를 행한다. 전자 디바이스(4-3)에서, CC=GN이 구해진다(스텝 S56에서의 예). 따라서, 전자 디바이스(4-3)는 초기화를 개시하면서, M의 값을 (M-P)=(3-2)=1로 갱신하고, 전자 디바이스(4-3)는 패킷(70)을 송신한다. 전자 디바이스(4-4)에서는 CC≠GN이기 때문에(스텝 S56에서의 아니오), 전자 디바이스(4-4)는 초기화를 행하지 않고 패킷(70)을 호스트 기기(2)로 반송시킨다.
도 27에 도시한 바와 같이, 도 26에서 호스트 기기(2)에 의해 수신된 패킷의 M의 값이 송신시의 3에서 1로 변화하기 때문에(스텝 S74에서의 예), 호스트 기기(2)는 CC=0을 갖는 패킷(70)을 재송신한다.
최초로 패킷(70)을 수신한 전자 디바이스(4-1)는 패킷(70)의 초기화 완료 플래그 CF를 1에서 0으로 갱신한다(스텝 S55). CC≠GN이기 때문에(스텝 S56에서의 아니오), 전자 디바이스(4-1)는 M의 값을 갱신하지 않고, 패킷(70)을 전자 디바이스(4-2)로 송신한다. 전자 디바이스(4-2)도 유사한 처리를 행한다. 전자 디바이스(4-3)는, 초기화가 종료된 후(스텝 S52), M의 값을 갱신하지 않고, 패킷(70)을 송신한다. 전자 디바이스(4-4)에서는 CC≠GN이기 때문에(스텝 S56에서의 아니오), 전자 디바이스(4-4)는 초기화를 행하지 않고, 패킷(70)을 호스트 기기(2)로 반송시킨다.
도 28에 도시한 바와 같이, 도 27에서의 호스트 기기(2)에 의해 수신된 패킷의 M의 값이 3으로부터 변화하지 않았기 때문에(스텝 S74에서의 아니오), 호스트 기기(2)는 CC=CC+1=(0+1)=1을 갖는 패킷(70)을 송신한다.
최초로 패킷(70)을 수신한 전자 디바이스(4-1)는 패킷(70)의 초기화 완료 플래그 CF를 1에서 0으로 갱신한다(스텝 S55). 전자 디바이스(4-1)에서 CC=GN이기 때문에(스텝 S56에서의 예), 전자 디바이스(4-1)는 초기화를 개시함과 동시에, M의 값을 (M-P)=(3-3)=0으로 갱신하고, 전자 디바이스(4-1)는 패킷(70)을 송신한다. 전자 디바이스(4-2)에서 CC=GN이 구해졌지만(스텝 S56에서의 예), M<P이기 때문에(스텝 S57에서의 아니오), 전자 디바이스(4-1)는 초기화를 행하지 않고, 패킷(70)을 전송한다. 전자 디바이스(4-3) 및 (4-4)에서도 초기화는 행하지 않는다.
도 29에 도시한 바와 같이, 도 28에서 호스트 기기(2)에 의해 수신된 패킷의 M의 값이 3에서 0으로 변화하였기 때문에(스텝 S74에서의 예), 호스트 기기(2)는 CC=1을 갖는 패킷(70)을 재송신한다.
최초로 패킷(70)을 수신한 전자 디바이스(4-1)는, 초기화가 완료된 후(스텝 S52), M 및 CF의 값을 갱신하지 않고, 패킷(70)을 전자 디바이스(4-2)에 전송한다. 전자 디바이스(4-2)에서는 CC=GN이기 때문에(스텝 S56에서의 예), 전자 디바이스(4-2)는 초기화를 개시하면서, CF의 값을 0으로 갱신하고, 전자 디바이스(4-2)는 M의 값을 (M-P)=(3-1)=2로 갱신하여 패킷(70)을 송신한다. 전자 디바이스(4-3)는 수신한 패킷(70)을 그대로 전자 디바이스(4-4)에 전송한다. 전자 디바이스(4-4)에서는 CC=GN이기 때문에(스텝 S56에서의 예), 전자 디바이스(4-4)는 초기화를 개시하면서, M의 값을 (M-P)=(2-1)=1로 갱신하고, 전자 디바이스(4-4)는 패킷(70)을 전송한다.
도 30에 도시한 바와 같이, 도 29에서의 호스트 기기(2)에 의해 수신된 패킷의 M의 값이 3에서 1로 변화되었기 때문에(스텝 S74에서의 예), 호스트 기기(2)는 C=1을 갖는 패킷(70)을 재송신한다.
최초로 패킷(70)을 수신한 전자 디바이스(4-1)는 패킷(70)을 그대로 전자 디바이스(4-2)에 전송한다(스텝 S54에서의 예). 전자 디바이스(4-2)는, 초기화가 완료되면(스텝 S52), 패킷(70)을 그대로 전자 디바이스(4-3)에 전송한다. 전자 디바이스(4-3)도, 패킷(70)을 그대로 전자 디바이스(4-4)에 전송한다(스텝 S54 에서의 예). 전자 디바이스(4-4)는, 초기화가 완료되면(스텝 S52), 패킷(70)을 그대로 호스트 기기(2)에 전송한다.
그 결과, 호스트 기기(2)는 전자 디바이스(4-4)로부터 CF=1를 갖는 패킷(70)을 수신한다. 따라서, 호스트 기기(2)는 초기화 동작을 완료한다.
<제2 예>
이하, 제2 예에 대해서 설명한다. 제2 예에서는, 제1 예의 그룹 번호 CC가 패킷(70)으로부터 제거되어 있다. 즉, 제1 실시 형태와 마찬가지로, 호스트 기기(2)에 가까운 전자 디바이스(4)로부터 순차적으로 초기화를 행할 수도 있다. 이 경우, 전자 디바이스(4)의 동작은, 도 22에서의 스텝 S56의 처리를 배제한 것이며, 호스트 기기(2)의 동작은 도 23에서의 그룹 번호 CC에 관련된 동작을 배제한 것이다.
예를 들면, 도 26에서, 전자 디바이스(4-1)에서 M=P이기 때문에, 전자 디바이스(4-1)는 초기화를 개시한다. 전자 디바이스(4-1)는 초기화 완료 플래그 CF를 0으로 갱신하는 반면, M의 값을 (M-P)=0으로 갱신한다. M=0이기 때문에, 전자 디바이스(4-2) 내지 (4-4)는 초기화를 개시하지 않는다.
호스트 기기(2)가 CF=0을 갖는 패킷(70)을 전자 디바이스(4-4)로부터 수신하기 때문에, 호스트 기기(2)는 패킷(70)을 재송신한다. 따라서, 전자 디바이스(4-2)는, 전자 디바이스(4-2)에서 M>P이기 때문에, 초기화를 개시한다. 전자 디바이스(4-2)는 CF의 값을 0으로 갱신하는 반면, M의 값을 (M-P)=2로 갱신한다. 갱신된 패킷을 수신하는 전자 디바이스(4-3)에서 M>P이기 때문에, 전자 디바이스(4-3)는 초기화를 개시한다. 전자 디바이스(4-3)는 M의 값을 (M-P)=0으로 갱신한다. 전자 디바이스(4-4)에서 M<P이기 때문에, 초기화는 행해지지 않는다.
다음으로, 호스트 기기(2)가 패킷(70)을 발행할 때, 전자 디바이스(4-4)에서 M>P이기 때문에, 전자 디바이스(4-4)는 초기화를 개시한다. 전자 디바이스(4-4)는 CF의 값을 0으로 갱신하는 반면, M의 값을 (M-P)=2으로 갱신한다.
다음으로, 호스트 기기(2)가 패킷(70)을 발행하면, 호스트 기기(2)는 모든 전자 디바이스(4)에 대해 초기화를 완료한 후에, 송신시와 동일한 값의 M과 CF=1을 갖는 패킷(70)을 수신한다. 따라서, 호스트 기기(2)는 초기화 동작을 완료한다.
따라서, 전자 디바이스(4-1) 내지 (4-4)를 순서대로 초기화하는 예에서, 패킷(70)에는 초기화 완료 플래그 CF가 포함되어 있기 때문에, 호스트 기기(2)는 초기화를 완료했는지를 패킷(70)에 의해 인식할 수 있다. 물론, 초기화 커맨드와는 무관하게 초기화 완료 확인 커맨드를 이용할 수도 있다.
<제3 예>
이하, 제3 예에 대해서 설명한다. 제3 예에서는, 도 31에 나타낸 패킷(90)이 제1 예에서 이용된다. 제3 예에서, 호스트 기기(2)는 초기화를 행할 때와, 초기화 완료를 확인할 때의 양측에서, 도 31에 나타내는 패킷(90)을 이용한다.
패킷(90)은 커맨드 식별자(91), S/C 식별자(92) 및 그룹 번호(93)를 포함한다. 커맨드 식별자(91)는 초기화 커맨드와 초기화 완료 확인 커맨드에 의해 공유된다. S/C 식별자(92)는 "0" 또는 "1"의 값을 갖는다. S/C 식별자(92)는 "0"의 값을 가질 경우에는 초기화를 표시하고, "1"의 값을 가질 경우에는 초기화 완료 확인을 표시한다. 즉, 패킷(90)을 수신한 전자 디바이스(4)는 S/C 식별자(92)의 값에 의해, 패킷(90)이 초기화 커맨드인지 초기화 완료 확인 커맨드인지를 판단할 수 있다.
또한, 패킷(90)은 제2 예에도 적용될 수 있다. 이 경우, 그룹 번호 CC는 불필요하다.
<제4 예>
이하, 제4 예에 대해서 설명한다. 제4 예에서, 각각의 전자 디바이스(4)에 그룹 번호 GN을 할당하는 것 대신에, 전자 디바이스(4)는 초기화 커맨드를 포함하는 패킷이 수신되는 횟수에 의해 그룹들로 분류된다.
예를 들면, 도 23에서, 전자 디바이스(4-1) 내지 (4-4)는 첫번째로 초기화 커맨드를 포함하는 패킷을 수신시 초기화를 행하도록 구성되고, 전자 디바이스(4-5) 내지 (4-8)은 두번째로 패킷을 수신시 초기화를 행하도록 구성되고, 전자 디바이스(4-9) 내지 (4-12)는 세번째로 패킷을 수신시 초기화를 행하도록 구성되고, 전자 디바이스(4-13) 내지 (4-16)는 4번째로 패킷을 수신시 초기화를 행하도록 구성된다. 이 정보는, 예를 들면, 레지스터(9)에 저장된다. 예를 들면, 레지스터(9)에 정보가 저장되는 타이밍은 스텝 S14 또는 스텝 S13일 수도 있거나, 이 타이밍은 제조동안 존재할 수도 있다.
초기화 커맨드를 포함하는 패킷을 수신하는 전자 디바이스(4)는 수신 횟수를 증분하여 수신 횟수를 레지스터(9)에 보유한다. 처리 유닛(8)은 증분된 수신 횟수가 레지스터(9)에 저장된 수신 횟수와 일치하는지를 판정한다. 증분된 수신 횟수와 레지스터(9)에 저장된 수신 횟수가 일치하는 경우, 처리 유닛(8)은 초기화를 행하고, 해당 패킷을 다음 전자 디바이스(4)에 송신한다. 증분된 수신 횟수와 레지스터(9)에 저장된 수신 횟수가 일치하지 않는 경우, 처리 유닛(8)은 초기화를 행하는 일없이 다음 전자 디바이스(4)에 해당 패킷을 송신한다.
도 23에서의 그룹 번호 CC에 관련된 동작은 호스트 기기(2)의 동작에서 배제한다.
도 24 및 도 25에 도시된 예에서, 전자 디바이스(4-1) 내지 (4-4)는, 초기화 커맨드를 포함하는 패킷을 호스트 기기(2)가 처음에 송신할 때에 초기화된다. 호스트 기기(2)가 두번째로 패킷을 송신할 때, 전자 디바이스(4-5) 내지 (4-8)가 초기화된다. 호스트 기기(2)가 세번째로 패킷을 송신할 때, 전자 디바이스(4-9) 내지 (4-12)가 초기화된다. 호스트 기기(2)가 네번째로 송신할 때, 전자 디바이스(4-13) 내지 (4-15)가 초기화된다. 이 경우, 초기화 완료 확인 커맨드는 불필요하다. 그러나, 초기화 완료 확인 커맨드가 사용될 수도 있다. 이 경우, 전자 디바이스(4)의 동작은 도 14에서의 동작과 유사하다.
본 방법에 따르면, 초기화 커맨드 및 초기화 완료 확인 커맨드를 포함하는 패킷에 그룹 번호를 포함시킬 필요는 없다.
도 26 내지 도 29에 도시된 예에서, 초기화 커맨드를 포함하는 패킷을 호스트 기기(2)가 처음에 송신할 때에 전자 디바이스(4-3)가 초기화된다. 호스트 기기(2)가 두번째로 패킷을 송신할 때, 전자 디바이스(4-1)가 초기화된다. 호스트 기기(2)가 세번째로 송신할 때, 전자 디바이스(4-2) 및 (4-4)가 초기화된다(전자 디바이스(4-2) 및 (4-4)는 수신 횟수(바꿔 말하면, GN)가 2인 그룹에 할당된다).
제4 예에서, 각각의 전자 디바이스(4)에서의 수신 횟수는 전자 디바이스(4)가 초기화 커맨드를 수신할 때마다 증분된다. 따라서, 호스트 시스템은, 그룹들에 포함되는 전자 디바이스(4) 모두가 하나의 초기화 커맨드에 응답하여 초기화를 개시할 수 있도록 그룹을 전자 디바이스(4)에 할당할 필요가 있다. 즉, 전자 디바이스(4)를 초기화하는데 필요한 파워 유닛수 P을 고려하여 그룹화할 필요가 있다. 보다 구체적으로는, 하나의 그룹(수신 횟수)에 속하는 전자 디바이스(4)의 수는 해당 그룹에 속하는 모든 전자 디바이스(4)를 초기화하는데 필요한 총 파워 유닛수 ∑P가 호스트 기기(2)에 의해 이용될 수 있는 파워 유닛수 M을 초과하지 않도록 선택된다.
<효과>
제1 실시 형태의 스텝 S14에서의 처리는 상술한 방법에 의해 실행될 수 있다. 제1 실시 형태와 마찬가지의 효과가 제2 실시 형태에서 얻어진다.
[제3 실시 형태]
이하, 제3 실시 형태에 따른 반도체 시스템 및 전자 디바이스 초기화 방법에 대해서 설명한다. 제3 실시 형태는 제1 및 제2 실시 형태에서의 재초기화를 행할 때의 동작에 관한 것이다. 그밖의 구성 및 동작은 제1 및 제2 실시 형태와 유사하기 때문에, 설명은 생략한다.
도 32는 호스트 기기(2)와, 전자 디바이스(4)들 중 하나의 블록도이며, 특히 전원 공급선에 관한 구성을 나타낸 것이다. 도 32에 도시된 바와 같이, 호스트 기기(2)는 전압 발생 회로(26-1) 및 (26-2)를 포함한다. 전압 발생 회로(26-1)는 전압 VDD1를 생성하고, 전압 발생 회로(26-2)는 전압 VDD2를 생성한다. VDD1>VDD2(또는 VDD1과 VDD2는 실질적으로 서로 동일하거나, VDD1=VDD2일 수도 있다). 전압 VDD1 및 VDD2가 전자 디바이스(4)에 전원 전압으로서 공급된다.
전자 디바이스(4)는 전압 VDD1 및 VDD2에 기초하여 동작된다. 전자 디바이스(4)는 대략적으로는 컨트롤러(27), 디바이스 유닛(28) 및 레귤레이터(regulator)(29)를 포함한다. 디바이스 유닛(28)은 전자 디바이스(4)의 메인 기능(예를 들면, 메모리 기능 및 무선 LAN 기능)을 실행한다. 컨트롤러(27)는 호스트 기기(2)와의 인터페이스 처리를 실행하는 기능과 디바이스 유닛(28)을 제어 기능을 갖는다. 예를 들면, 컨트롤러(27)는 제1 실시 형태의 도 6에서 도시된 컨트롤러(30)에 대응하고, 디바이스 유닛(28)은 도 6에 도시된 NAND형 플래시 메모리(31)에 대응한다. 레귤레이터(29)는 전압 VDD1 및/또는 VDD2를 조절하여 전압 VDD1 및 VDD2보다 낮은 전압 VDD3(예를 들면, 1.2V)를 생성한다.
디바이스 유닛(4)은 전압 VDD1을 전원전압으로서 이용하여 동작한다. 컨트롤러(27)은 레귤레이터(29)에 의해 생성된 전압 VDD3를 전원으로서 이용해서 동작한다. 특히, 컨트롤러(27)에서, 호스트 기기(2)와의 인터페이스 처리를 행하는 회로 블록은 전압 VDD3를 전원전압으로서 이용하여 동작하고, 전압 VDD3는 또한 레지스터(9)에 전원전압으로서 제공된다.
레지스터(9)는 초기화 플래그를 포함한다. 초기화 플래그는 플래그 VDD2ON 및 플래그 DIDA를 포함한다. 초기화 플래그에 대해서는 도 33을 참조하여 상세히 설명할 것이다. 도 33은 초기화 플래그와 이 초기화 플래그에 따른 호스트 기기(2)의 동작을 나타내고 있다.
플래그 VDD2ON은 전압 VDD2의 상태를 나타낸다. 플래그 VDD2ON="0"은 전압 VDD2가 공급된 직후의 상태와 전자 디바이스(4)의 초기화가 완료되지 않은 상태를 나타낸다. 플래그 VDD2ON="1"은 전압 VDD2가 공급되어 전자 디바이스(4)의 초기화가 완료된 후에도 유지되고 있는 상태를 나타낸다. 바꿔 말하자면, 플래그 VDD2ON은 전자 디바이스(4)에 대해 최종 초기화후에 전압 VDD2의 공급 정지가 발생하였는지를 나타내는 정보이다.
플래그 DIDA는 디바이스 ID의 할당이 필요한 상태 인지의 여부를 나타낸다. 플래그 DIDA="0"는 디바이스 ID의 할당이 필요하다는 것을 나타낸다. 예를 들면, 플래그 DIDA="0"의 예는 도 2의 스텝 S10 내지 S12에서의 상태 및 새로운 전자 디바이스(4)의 추가를 포함한다. 플래그 DIDA="1"은 디바이스 ID의 할당이 필요하지 않다는 것을 나타낸다. 예를 들면, 플래그 DIDA="1"은 도 2의 스텝 S13이하에서의 처리시 새로운 전자 디바이스(4)가 추가되지 않는 상태에 상당한다.
상술한 바와 같이, 레지스터(9)의 전원 전압은 전압 VDD2를 조절함으로써 구해지는 전압 VDD3이다. 따라서, 레지스터(9)내의 정보는 전압 VDD1의 공급이 정지되어도, 전압 VDD2가 공급되고 있는 한, 소거되지 않는다. 특히, 각각의 전자 디바이스(4)내의 디바이스 ID, 성능 정보, 도 2의 스텝 S16 및 S17에서 설정된 동작 조건 및 초기화 플래그는 전압 VDD2의 공급이 정지되지 않는 한, 유지된다.
재초기화에는 2종류가 있다. 즉, 제1 재초기화는 파워 다운 모드로부터의 복귀이고, 제2 재초기화는 하나의 전자 디바이스에 대해서만 수행된 초기화이다. 제1 초기화 및 제2 초기화는 도 2를 참조하여 상세히 설명할 것이다.
<제1 재초기화>
파워 다운 모드(동작 중단 상태)로부터 복귀는 초기화와 유사한 절차로 수행된다. 그러나, 플래그 VDD2ON을 체크하여 VDD2ON="1"이면, 도 2에서의 스텝 S10의 처리만을 실행된다. 다른 스텝 S12 내지 S17의 처리는 실행되지 않는다.
<제2 재초기화>
제3 실시 형태의 반도체 시스템(1)에서는, 하나의 전자 디바이스만을 재초기화하는 수순을 지원한다. 이 경우, 브로드캐스트 커맨드뿐만 아니라 유니캐스트 커맨드도 이용된다. 리셋 커맨드에 의해 특정 전자 디바이스가 리셋되면, 전자 디바이스는 스텝 S13에서 디바이스 ID의 할당이 완료되어 있는 상태로 되돌아간다(도 2의 스텝 S18). 유니캐스트 초기화 커맨드에 의해, 특정 전자 디바이스(4)만이 초기화된다. VDD2ON="0"인 경우, 스텝 S14 내지 S17에서의 처리가 필요하지만, VDD2ON="1"인 경우, 레지스터 설정값이 유지되고 있기 때문에, 스텝 S14 내지 S17에서의 처리는 생략될 수도 있다.
<효과>
재3 실시 형태에 따른 구성에서도, 제1 실시 형태와 유사한 효과가 얻어진다. 부가적으로, 제3 실시 형태에서는, 재초기화 동작의 고속화를 도모할 수 있다.
제3 실시 형태에서, 호스트 기기(2)는 2종류의 전원 전압 VDD1 및 VDD2를 전자 디바이스(4)에 공급한다. 저전압 전압 VDD2을 공급하는 이유는 반도체 시스템이 동작의 고속화에 부합되도록 하기 위한 것이다. 고전원 전압 VDD1은 전자 디바이스(4)에서의 디바이스 유닛(28)에 이용되고, 저전원 전압 VDD2(전원 전압 VDD2를 조절함으로써 생성된 전원 전압 VDD3)는 컨트롤러(27)와 호스트 기기(2)간의 통신에 이용된다. 레지스터(9)내의 정보는 저전원 전압 VDD2이 공급되고 있는 한 소거되지 않는다. 따라서, 전자 디바이스(4)를 사용하고 있지 않은 기간에는, 고전원 전압 VDD1의 공급을 정지시킬 수 있어 소비 전력을 줄일 수 있다.
재초기화시, 저전원 전압 VDD2의 공급이 정지되지 않고 있으면, 레지스터(9)내의 정보를 이용할 수 있다. 따라서, 도 2의 스텝 S12 내지 S17의 처리를 생략할 수 있다. 즉, 재초기화 절차를 수행할 필요없이 전자 디바이스(4)는 사용가능 상태로 복귀될 수 있다. 따라서, 전자 디바이스(4)는 파워 다운 상태로부터 고속으로 복귀할 수 있다.
<제3 실시 형태의 변형>
제3 실시 형태에서, 호스트 기기(2)는 일례로서 플래그 DIDA와 플래그 VDD2ON을 참조한다. 그러나, 플래그 DIDA와 플래그 VDD2ON을 항상 제공할 필요는 없다.
이는 제2 전원 전압 VDD2가 최종 초기화 이후에 차단되었는지의 여부는 호스트 기기(2)에 대해 공지의 정보이기 때문이다. 따라서, 호스트 기기(2)가 초기화 이후 제2 전원 전압 VDD2를 차단하는 경우에 호스트 기기(2)는 도 2의 초기화 절차를 수행하고, 호스트 기기(2)가 제2 전원 전압 VDD2를 차단하지 않은 경우에는 호스트 기기(2)는 도 2의 초기화 절차를 생략한다.
대안적으로, 호스트 기기(2)는 제1 전원 전압 VDD1으로 복귀된 후 초기 커맨드를 발행할 수도 있고 응답 타임-아웃을 검출할 수도 있다. 응답 타임-아웃은 전자 디바이스(4)가 아직 사용될 수 없는, 즉 호스트 기기(2)가 제2 전원 전압 VDD2가 이전에 차단되었는지를 판정할 수 있는 상태를 의미한다. 이 시점에서, 호스트 기기(2)는 재초기화를 행하기 위한 전원 사이클을 행한다.
전원 조건 이외에, 리셋 커맨드와 관련된 재초기화 처리가 있다. 리셋 커맨드는 대략 2가지로 분류된다.
첫번째로, SD 인터페이스에 따른 커맨드(CMD0)가 설명될 것이다. 커맨드(CMD0)는 SD 커맨드를 처리하는 상부층만을 리셋한다. 예를 들면, UHS-II 카드의 경우, 층은 대략 물리층, 링크층 및 트랜잭션층(transaction layer)으로 분류된다. 물리층은 LVDS 기술에 기초하는 I/O 셀 유닛이다. 물리층은 LVDS 신호의 직병렬 변환을 행하여 LSI에서 동작될 수 있는 주파수를 구한다. 이 시점에서, 예를 들면, 8B10B 코딩이 이용된다. 링크층은 심볼 단위로 처리한다(예를 들면, 1심볼은 2바이트임). 즉, 예를 들면, 링크층은 심볼의 인코딩 및 디코딩 및 심볼 동기화에 관련되어 있다. 트랜잭션층은 패킷 기반 전송을 행하며, 트랜잭션층은 패킷에 기술된 커맨드 응답, 패킷화된 데이터의 전송 및 프로토콜 기반 관리에 의한 통신에 관련되어 있다. SOP(Start of Packet)과 EOP(End of Packet)간의 간격은 패킷이다.
커맨드 CMD0가 발행되면, 트랜잭션층만이 초기화되고, 물리층과 이 물리층보다 낮은 링크층은 초기화되지 않는다.
다른 커맨드는 Full_Reset이다. 커맨드 Full_Reset에 따르면, 모든 층들은 파워-온 직후 전자 디바이스(4)를 임의 상태로 놓여지도록 초기화된다. 이 경우, 따라서, 초기화 절차가 요구된다. 커맨드 CMD0는 초기화하는 동안 발행될 수도 있다.
커맨드 CMD0만이 발행되면, 레지스터를 설정할 필요가 없다(도 2의 스텝 S16 및 S17B)(레지스터내의 정보는 소실되지 않는다). 한편, 커맨드 Full_Reset(커맨드 CMD0를 포함)이 발행되면, 레지스터를 리셋할 필요가 있다.
[제4 실시 형태]
이하, 제4 실시 형태에 따른 반도체 시스템 및 전자 디바이스 초기화 방법에 대해서 설명한다. 제4 실시 형태는 제1 내지 제3 실시 형태에서의 전자 디바이스(4)의 다양한 접속 방법에 관한 것이다. 이하, 제1 내지 제3 실시 형태와 같은 점에 관한 설명은 생략한다.
<제1 접속 예>
제1 실시 형태에서, 도 1에 도시한 바와 같이, 전자 디바이스(4)는 일례로서, 링 접속되어 있다. 한편, 제4 실시 형태의 제1 접속예에서 도시된 바와 같이 허브가 사용될 수 있다. 도 34는 제4 실시 형태의 제1 접속 예에 따른 반도체 시스템(1)의 일례를 나타내는 블록도이다.
도 34에 도시한 바와 같이, 반도체 시스템(1)은 호스트 기기(2), 전자 디바이스(4-1) 내지 (4-3) 및 허브(100)를 포함한다. 예를 들면, 허브(100)는 4개의 포트 P1 내지 P4를 포함하고, 패킷은 포트 P1에서 포트 P4의 순으로 전송된다. 허브(100)의 포트 P1에는 호스트 기기(2)가 접속되고, 포트 P2 내지 P4에는 전자 디바이스(4-1) 내지 (4-3)가 각각 접속되어 있다. 호스트 기기(2) 및 전자 디바이스(4)의 구성 및 동작은 제1 내지 제4 실시 형태에서 설명하였다. 도 34의 사각 마크는, 도 11의 제1 실시 형태와 유사하게, 페이로드의 필드(42-1)(개시 디바이스 ID)과 필드(42-2)(디바이스수)를 가리키며, 이는 패킷의 흐름을 참고하기 위한 것이다. 물론, 도 34에 도시된 패킷 흐름은 스텝 S14의 처리에 유사하게 적용된다.
이하, 호스트 기기(2)에 의해 송신된 패킷의 흐름이 설명될 것이다. 패킷은 허브(100)에 송신되고, 허브(100)는 패킷을 전자 디바이스(4-1)에 전송한다. 전자 디바이스(4-1)는 필요한 처리를 수행한 후, 패킷을 허브(100)로 반송시킨다. 다음으로, 허브(100)는 전자 디바이스(4-1)로부터 수신한 패킷을 전자 디바이스(4-2)에 전송한다. 전자 디바이스(4-2)는 필요한 처리를 행한 후, 패킷을 허브(100)로 반송시킨다. 다음으로, 허브(100)는 전자 디바이스(4-2)로부터 수신한 패킷을 전자 디바이스(4-3)에 전송한다. 전자 디바이스(4-3)는 필요한 처리를 행한 후, 패킷을 허브(100)로 반송시킨다. 마지막으로, 허브(100)는 전자 디바이스(4-3)로부터 수신한 패킷을 호스트 기기(2)에 반송시킨다.
<제2 접속예>
이하, 제2 접속예에 대해서 도 35를 참조하여 설명한다. 도 35는 제4 실시 형태의 제2 접속예에 따른 반도체 시스템(1)의 블록도이다. 제2 접속예는 2단 허브 접속에 관한 것이다.
도 35에 도시한 바와 같이, 반도체 시스템(1)은 호스트 기기(2), 전자 디바이스(4-1) 내지 (4-5), 및 허브(100-1) 및 (100-2)를 포함한다. 예를 들면, 허브(100-1) 및 (100-2) 각각은 4개의 포트 P1 내지 P4를 포함하고, 포트 P1로부터 포트 P4의 순으로 패킷을 전송한다. 허브(100-1)의 포트 P1에는 호스트 기기(2)가 접속되고, 포트 P2 및 P4에는 각각 전자 디바이스(4-1) 및 (4-5)가 접속되며, 포트 P3에는 허브(100-2)의 포트 P1이 접속된다. 허브(100-2)의 포트 P2 내지 P4에는 각각 전자 디바이스(4-2) 내지 (4-4)가 접속된다. 호스트 기기(2) 및 전자 디바이스(4)의 구성 및 동작은 제1 내지 제3 실시 형태에서 설명한 바와 같다. 도 35의 사각 마크는 도 11의 제1 실시 형태와 유사하게, 페이로드의 필드(42-1)(디바이스 ID의 초기값)과 필드(42-2)(디바이스수)를 가리키며, 이는 패킷의 흐름을 참고하기 위한 것이다. 도 35에 도시된 패킷 흐름은 스텝 S14의 처리에 유사하게 적용된다.
호스트 기기(2)에 의해 송신된 패킷의 흐름은 다음과 같다. 허브(100-1)는 호스트 기기(2)로부터 패킷을 수신하고, 허브(100-1)는 패킷을 전자 디바이스(4-1)에 전송한다. 전자 디바이스(4-1)는 패킷을 허브(100-1)에 반송시킨다. 허브(100-1)는 전자 디바이스(4-1)로부터 수신한 패킷을 허브(100-2)에 송신한다. 허브(100-2)는 허브(100-1)로부터 수신한 패킷을 전자 디바이스(4-2)에 송신한다. 전자 디바이스(4-2)는 패킷을 허브(100-2)로 반송시킨다. 허브(100-2)는 전자 디바이스(4-2)로부터 수신한 패킷을 전자 디바이스(4-3)에 송신한다. 전자 디바이스(4-3)는 패킷을 허브(100-2)로 반송시킨다. 다음으로, 허브(100-2)는 전자 디바이스(4-3)로부터 수신한 패킷을 전자 디바이스(4-4)에 송신한다. 전자 디바이스(4-4)는 패킷을 허브(100-2)에 반송시킨다. 허브(100-2)는 전자 디바이스(4-4)로부터 수신한 패킷을 허브(100-1)로 반송시킨다. 허브(100-1)는 허브(100-2)로부터 수신한 패킷을 전자 디바이스(4-5)에 송신하고, 전자 디바이스(4-5)는 패킷을 허브(100-1)로 반송시킨다. 마지막으로 허브(100-1)는 전자 디바이스(4-5)로부터 수신한 패킷을 호스트 기기(2)로 반송시킨다.
<효과>
상술한 바와 같이, 제1 내지 제3 실시 형태의 구성은 링 접속뿐만 아니라, 허브 접속에도 적용될 수 있고, 제1 내지 제3 실시 형태와 마찬가지의 효과가 제4 실시 형태에서 얻어진다. 패킷이 호스트 기기(2)로부터 브로드캐스팅되었을 때에, 패킷을 전자 디바이스(4)에 전송하는 기능은, 허브(100)가 원래 가지고 있는 기능이다. 따라서, 호스트 기기(2)는 복수의 전자 디바이스(4) 간의 접속 관계를 파악할 필요가 없다.
[제5 실시 형태]
이하, 제5 실시 형태에 따른 반도체 시스템 및 전자 디바이스 초기화 방법에 대해서 설명한다. 제5 실시 형태는 제1 내지 제4 실시 형태의 구체예에 관한 것이다. 이하에서는, 제1 내지 제3 실시 형태와 동일한 부분의 설명은 생략한다.
도 36은 제5 실시 형태에 따른 메모리 시스템의 일례를 나타내는 블록도이다. 도 36에 도시한 바와 같이, 메모리 시스템(110)은 호스트 컨트롤러(111), 카드 슬롯(112), CPU(central processing unit)(113), 시스템 메모리(114), 전자 디바이스(4-1) 내지 (4-4) 및 허브(100)를 포함한다.
CPU(113)는 메모리 시스템(110)의 동작 전체를 제어하고, CPU(113)는 ROM(Read Only Memory, 미도시됨)에 저장되어 있는 프로그램에 따라 동작한다. 시스템 메모리(114)는 CPU(113)가 시스템 메모리(114)에 각종 데이터를 일시적으로 저장하기 위해 사용되고, 시스템 메모리(114)는 실행가능한 프로그램을 실행하기 위해 이용된다.
호스트 컨트롤러(111)는 제1 내지 제4 실시 형태의 호스트 기기(2)에 대응한다. 호스트 컨트롤러(111)는 호스트 컨트롤러(111)에 접속될 수 있는 디바이스(요소)와 통신하는데 필요한 다양한 하드웨어 및 소프트웨어와 다양한 프로토콜 등을 포함하고 있다. 구체적으로, 호스트 컨트롤러(111)는 전자 디바이스(4)와 복수의 신호선을 통해 통신할 수 있도록 구성되어 있다. 신호선의 예로서, 패킷을 전송하는 신호선, 클럭을 전송하는 신호선 및 전원선(상술한 VDD1 및 VDD2)이 포함된다. 호스트 컨트롤러(111)의 일부 기능은 신호선 상의 신호를 미리 설정된 규정에 따라 출력하고 취득한다. 보다 구체적으로는, 호스트 컨트롤러(111)는 신호선을 통해 공급된 신호를 해석하여, 이 신호로부터 미리 설정된 비트 패턴을 인식하고, 호스트 컨트롤러(111)는 신호로부터 커맨드를 취득한다. 유사하게, 호스트 컨트롤러(111)는 선정된 비트 패턴을 인식하여 신호로부터 데이터를 취득한다. 호스트 컨트롤러(111)에서 정의되어 있는 커맨드에는 다양한 것이 준비되어 있다. 예를 들면, 호스트 컨트롤러(111)는 소프트웨어의 제어하에서 실행되는 CPU의 기능의 일부, 또는 그러한 기능이 실현될 수 있는 반도체 칩에 의해 구현될 수 있다.
보다 구체적으로, 호스트 컨트롤러(111)는 패킷을 전송하는 신호선 D0 및 D1과 클럭 RCLK를 전송하는 신호선을 지원하고 있다. 즉, 호스트 컨트롤러(111)는 이들 신호를 이용하여 데이터를 전송하도록 구성되어 있다. 보다 구체적으로는, 호스트 컨트롤러(111)는 예를 들면, SD 인터페이스를 제어할 수 있도록 구성되어 있다.
전자 디바이스(4-1) 내지 (4-4)는 메모리 시스템(110)에 결합되어 있다. 전자 디바이스(4-1) 내지 (4-4)로서, 호스트 컨트롤러(111)를 통해서 CPU(113)과 통신할 수 있도록 구성되어 있는 임의의 타입의 디바이스를 이용할 수 있다. 이러한 디바이스의 예로서, 메모리 디바이스 및 무선 LAN(Local Area Network) 디바이스가 해당한다. 전자 디바이스(4-1) 내지 (4-4)로서 이용될 수 있는 디바이스의 주요 부분은 각각의 전자 디바이스(4-1) 내지 (4-4)의 기능에 따라 공지의 기술에 의해 실현될 수 있다. 전자 디바이스(4-1) 내지 (4-4)는 SD 카드와 같은 포터블 디바이스내에 밀봉되어 있는 반도체 칩을 이용해서 실현될 수 있다.
전자 디바이스(4-1) 내지 (4-4)는 각각 전자 디바이스(4-1) 내지 (4-4)의 주요 기능(예를 들면, 메모리 기능, 무선 LAN 기능)을 실행하기 위해 디바이스 유닛(28-1) 내지 (28-4)를 포함한다. 전자 디바이스(4-1) 내지 (4-4)는 또한 각각 컨트롤러(디바이스 컨트롤러)(27-1) 내지 (27-4)를 포함한다. 각각의 컨트롤러(27-1) 내지 (27-4)는 CPU(113)과 호스트 컨트롤러(111)를 통해, 인터페이스를 이용해서 통신할 수 있도록 구성되어 있다. 즉, 각각의 컨트롤러(27-1) 내지 (27-4)는 이러한 인터페이스를 지원하기 위해 하드웨어 및 소프트웨어 구성을 포함하고 있다.
호스트 컨트롤러(111)가 SD 인터페이스를 지원하고 있을 경우, 컨트롤러(27-1) 내지 (27-4)도 SD 인터페이스를 지원하도록 구성된다. 컨트롤러(27-1) 내지 (27-4)는 디바이스 유닛(28-1) 내지 (28-4)와는 독립적인 CPU 및/또는 반도체 칩으로서 구현될 수도 있다. 대안적으로, 컨트롤러(27-1) 내지 (27-4)와 디바이스 유닛(28-1) 내지 (28-4)가 집적되어 있는 반도체 칩으로 구현될 수도 있다.
각각의 컨트롤러(27-1) 내지 (27-4)는 제1 내지 제4 실시 형태와 유사하게, 입력 신호핀(5), 출력 신호핀(6), 패킷 디코더(7), 처리 유닛(8), 레지스터(9) 및 패킷 갱신 회로(10)를 포함한다.
전자 디바이스(4-1) 및 (4-2)는 메모리 디바이스이다. 이 전자 디바이스(4-1) 및 (4-2)는 디바이스 유닛(28-1) 및 (28-2)로서 NAND형 플래시 메모리를 포함하고 있다. NAND형 플래시 메모리는 기억 영역으로서 복수의 페이지를 포함한다. 각각의 페이지는 직렬로 접속된 복수의 메모리 셀 트랜지스터를 포함하고 있다. 각각의 메모리 셀 트랜지스터는 소위 스택 게이트 구조형 MOS 트랜지스터에 의해 형성된다. 스택 게이트 구조형 MOS 트랜지스터는 게이트 전극 및 소스/드레인 확산층을 포함한다. 터널 절연막, 전하 축적층(예를 들면, 부유 게이트 전극), 전극간 절연막 및 제어 게이트 전극은 게이트 전극내에서 순차적으로 적층되어 있다. 각각의 메모리 셀 트랜지스터에서, 전하 축적층에 축적된 전자의 수에 따라 임계 전압이 변하고, 이 임계 전압의 차이에 따라 정보가 기억된다. 제어 회로는 메모리 센스 앰프 및 전위 발생 회로를 포함한다. 제어 회로는 메모리 셀 트랜지스터에 멀티-비트 데이터를 기입하고 메모리 셀 트랜지스터로부터 멀티-비트 데이터를 판독할 수 있는 구성을 갖는다. 데이터 기입 및 판독은 페이지 단위로 행해진다. 데이터의 소거는 각각이 복수의 페이지를 포함하는 블록 단위로 행해진다.
예를 들면, 전자 디바이스(4-3) 및 (4-4)는 SD IO 디바이스이며, 전자 디바이스(4-3) 및 (4-4)는 디바이스 유닛(28-3) 및 (28-4)로서 무선 LAN 기능을 갖는다.
리무버블 카드형 전자 디바이스(4-5)(이하, 카드 디바이스(4-5)로서 참조됨)는 카드 슬롯(112)에 삽입 및 인출될 수 있다. 카드 디바이스(4-5)는 카드 슬롯(112)에 의해 지원되는 메모리 시스템 및 다른 기기를 포함한다.
카드 슬롯(112)은 카드 디바이스(4-5)에 접속되는 단자를 포함하고, 인터페이스내의 라인들은 대응하는 단자에 접속된다. 호스트 컨트롤러(21)가 SD 인터페이스를 지원하는 경우, SD 인터페이스에 필요한 단자는 카드 슬롯(112)에 제공된다.
카드 디바이스(4-5)는 SD 메모리 카드 및 SD IO 카드와 같은 SD 인터페이스를 통해서 호스트 컨트롤러(111)와 통신할 수 있는 모든 카드 디바이스를 포함한다. 도 36의 예에서, 카드 디바이스(4-5)는 SD 메모리 카드이다. 카드 디바이스(4-5)는 전자 디바이스(4-1) 내지 (4-4)와 유사하게, 컨트롤러(27-5) 및 디바이스 유닛(28-5)을 포함한다.
컨트롤러(27-5)는 제1 내지 제4 실시 형태와 유사하게, 입력 신호핀(5), 출력 신호핀(6), 패킷 디코더(7), 처리 유닛(8), 레지스터(9) 및 패킷 갱신 회로(10)를 포함한다. 디바이스 유닛(28-5)은 NAND형 플래시 메모리를 포함한다. 디바이스 유닛(28-5)의 구성은 디바이스 유닛(28-1) 및 (28-2)와 유사하다.
상술한 구성의 반도체 시스템(110)에서, 전자 디바이스(4-1)는 호스트 컨트롤러(111)로부터 송신된 패킷을 수신하고, 전자 디바이스(4-1)는 패킷을 전자 디바이스(4-2)에 전송하고, 전자 디바이스(4-2)는 패킷을 전자 디바이스(4-3)에 전송하고, 전자 디바이스(4-3)는 패킷을 전자 디바이스(4-4)에 전송하고, 전자 디바이스(4-4)는 패킷을 허브(100)에 전송한다.
허브(100)는 전자 디바이스(4-4)로부터 전송된 패킷을 필요할 경우 카드 슬롯(112)에 전송하고, 이로써 패킷이 카드 슬롯(112)에 삽입된 카드 디바이스(4-5)에 제공된다. 카드 디바이스(4-5)의 출력 신호핀(6)으로부터 출력되는 패킷 및/또는 전자 디바이스(4-4)의 출력 신호핀(6)으로부터 출력되는 패킷은 허브(100)를 통해 호스트 컨트롤러(111)에 반송된다.
제1 내지 제4 실시 형태는 제5 실시 형태의 구성에 적용될 수 있다.
[제6 실시 형태]
이하, 제6 실시 형태에 따른 반도체 시스템 및 전자 디바이스 초기화 방법에 대해서 설명한다. 제6 실시 형태에서, 제1 내지 제5 실시 형태는 단일 전자 디바이스를 포함하는 반도체 시스템에 적용된다.
도 37은 제6 실시 형태에 따른 반도체 시스템(1)의 블록도이다. 도 37에 도시한 바와 같이, 반도체 시스템(1)은 1개의 전자 디바이스(4)를 포함한다. 전자 디바이스(4)는 SD 메모리 카드이다.
메모리 카드(4)와 호스트 기기(2)간에 버스 인터페이스(120)를 통해서 정보를 송수신한다. 메모리 카드(4)는 NAND 플래시 메모리 칩(종종 간단히 NAND 플래시 메모리 또는 플래시 메모리라고 칭함)(28), NAND 플래시 메모리 칩(28)을 제어하는 메모리 컨트롤러(27), 및 복수의 신호 핀(제1 핀 내지 제17 핀)(29)을 포함한다.
복수의 신호 핀(29)은 메모리 컨트롤러(27)에 전기적으로 접속되어 있다. 도 38은 복수의 신호 핀(29)에서의 제1 핀 내지 제17 핀에 대한 신호의 할당 예를 나타낸다. 도 38은 제1 핀 내지 제17 핀과 제1 핀 내지 제17 핀에 할당된 신호를 나타낸 표이다.
제7 핀, 제8 핀, 제9 핀 및 제1 핀에는, 데이터 0 내지 데이터 3이 각각 할당된다. 제1 핀은 카드 검출 신호에도 할당된다. 제2 핀은 커맨드 CMD에 할당되고, 제3 핀 및 제6 핀은 접지 전위 GND에 할당되고, 제4 핀은 상술한 전원 전압 VDD1에 할당되며, 제5 핀은 클럭 신호 RCLK에 할당된다.
제10 핀, 제13 핀, 제14 핀 및 제17 핀은 상술한 전원 전압 VDD2 또는 접지 전위 GND에 할당된다. 제11 핀, 제12 핀, 제15 핀 및 제16 핀에는 데이터(D1+), 데이터(D1-), 데이터(D0-) 및 데이터(D0+)가 할당된다. 데이터(D1+) 및 데이터(D1-)와 데이터(D0-) 및 데이터(D0+)는 각각 상술한 차동 신호의 쌍이다. 상술한 바와 같이, 신호 쌍 D0+ 및 D0-는 호스트 기기(2)로부터 전자 디바이스(4)로의 신호 전송에 이용된다. 신호 쌍 D1+ 및 D1-는 전자 디바이스(4)로부터 호스트 기기(2)로의 신호 전송에 이용된다.
전자 디바이스(4)는 호스트 기기(2)에 제공된 슬롯에 대하여 삽입 및 인출할 수 있도록 형성되어 있다. 호스트 기기(2)에 제공된 호스트 컨트롤러(미도시됨)는 제1 핀 내지 제17 핀을 통해서 전자 디바이스(4)내의 메모리 컨트롤러(27)와 각종 신호 및 데이터를 송수신한다. 예를 들면, 메모리 카드(4)에 데이터가 기입될 때에는, 호스트 컨트롤러는 기입 커맨드를, 제11 핀 및 제12 핀을 통해서 메모리 컨트롤러(27)에 직렬 신호로서 전송한다. 이 때, 메모리 컨트롤러(27)는 제7 핀 및 제8 핀에 공급된 클럭 RCLK에 응답하여 제11 핀 및 제12 핀에 공급되는 기입 커맨드를 취득한다.
기입 커맨드는 제11 핀 및 제12 핀만을 이용하여 메모리 컨트롤러(27)에 직렬로 입력된다. 커맨드 입력에 할당된 제11 핀 및 제12 핀은 도 38에 도시된 바와 같이 배치된다. 복수의 신호 핀(29)과 이 핀(29)에 관련된 버스 인터페이스(120)는 호스트 기기(2)내의 호스트 컨트롤러와 메모리 카드(4)가 서로 통신하도록 사용된다.
한편, NAND형 플래시 메모리(28)와 메모리 컨트롤러(27)간의 통신은 NAND 플래시 메모리 인터페이스에 의해 행해진다. 따라서, 여기에 도시하지는 않았지만, NAND형 플래시 메모리(28)와 메모리 컨트롤러(27)는 예를 들면, 8비트 입출력(I/O)선에 의해 접속된다.
상술한 구성에서, 메모리 컨트롤러(27)는 제1 내지 제5 실시 형태의 컨트롤러(27, 30)에 대응하고, NAND형 플래시 메모리(28)는 제1 내지 제5 실시 형태의 디바이스 유닛(28, 31)에 대응한다. 제1 내지 제3 실시 형태의 동작은 제6 실시 형태의 구성에 의해 수행될 수 있다. 제6 실시 형태는 도 2에서의 L=1, N=1일 경우에 대응한다.
<변형>
상술한 바와 같이, 제1 내지 제6 실시 형태의 반도체 시스템(1) 및 전자 디바이스(4)를 초기화하기 위한 방법에 따르면, 복수의 전자 디바이스(4)와 전자 디바이스(4)를 그룹 단위로 동시에 초기화하는 호스트 기기(2)가 포함된다. 따라서, 전자 디바이스(4)의 초기화를 고속화할 수 있다. 단어 "동시에"는 항상 시간 용어인 "동시에"를 의미하는 것이 아니라, 용어 "동시에"는 예를 들면, 복수의 전자 디바이스(4)가 호스트 기기에 의해 발행된 패킷에 의해 초기화된다는 것의 의미한다는 것에 유의하라. 예를 들면, 도 15에서, 전자 디바이스(4-1) 내지 (4-4)는 한번의 패킷(52)의 발행으로 통합적으로 초기화된다. 그러나, 명확하게, 일시적으로 동시 초기화가 포함될 수도 있다.
즉, 전자 디바이스(4)는 트리거로서 패킷의 수신과 함께 초기화를 시작한다. 이때, 패킷을 수신하여 초기화를 시작하는 전자 디바이스(4)는 초기화 완료를 대기하지 않고 다음 전자 디바이스(4)에 패킷을 전송한다.
따라서, 초기화 시작 타이밍시, 전자 디바이스(4)간에 지연이 생긴다고 할지라도, 복수의 전자 디바이스(4)가 초기화를 동시에 수행하는 기간은 초기화에 필요한 시간이 패킷 전송 시간보다 길어질 때 존재한다.
상술한 바와 같이, 초기화동안 패킷을 수신하는 경우, 전자 디바이스(4)는 초기화 완료를 대기하고, 전자 디바이스(4)는 완료후 다음 전자 디바이스에 패킷을 전송한다. 따라서, 호스트 기기는 호스트 기기로 패킷이 반송될 때까지 한정된 기간동안 패킷을 대기할 필요가 있다. 그러나, 초기화는 최종 패킷에 의해 이미 개시되었으며, 복수의 전자 디바이스(4)는 동시에 초기화를 수행하고, 각각의 전자 디바이스(4)의 초기화에 필요한 시간에 대한 제한(최대 시간)이 있다. 따라서, 전자 디바이스(4)의 수가 증가하더라도, 호스트 기기는 장시간 동안 패킷을 대기시키지 않는다. 호스트 기기가 패킷을 수신할 때, 전자 디바이스(4) 모두에 대한 초기화가 완료된다.
반도체 시스템(1)은 복수의 전자 디바이스(4)와 호스트 디바이스(2)를 포함한다. 호스트 디바이스(2)는 전자 디바이스(4)에 제1 전원 전압 VDD1과 이 제1 전원 전압 VDD1보다 낮은 제2 전원 전압 VDD2를 공급하고, 호스트 디바이스(2)는 전자 디바이스(4)를 초기화할 수 있다. 각각의 전자 디바이스(4)는 디바이스 유닛(28)과 컨트롤러부(27)를 포함한다. 디바이스 유닛(28)은 제1 전원 전압 VDD1을 이용하여 동작한다. 컨트롤러부(27)는 제2 전원 전압 VDD2를 이용하여 동작하고, 컨트롤러부(27)는 호스트 기기(2)와의 인터페이스 처리를 실행한다. 컨트롤러부(27)는 호스트 기기(2)와 전자 디바이스(4)간의 동작 조건 정보를 보유하는 레지스터(9)를 포함한다. 레지스터(9)내의 동작 조건 정보는 제1 전원 전압 VDD1의 공급이 정지된 경우에도, 제2 전원 전압 VDD2이 공급되고 있는 기간은 유지된다.
제1 실시 형태에서, 반도체 시스템(1)이 동작 중단 상태에 있을 때, 신호 D0+ 및 D0-는 "L" 레벨을 갖는다. 대안적으로, 신호 D0+ 및 D0-는 "H" 레벨을 가질 수도 있다. 이 경우에도, 신호 D0+ 및 D0-는 심볼 STB의 송신에 의해, "L" 레벨로 변경될 수도 있으며, 이로써 신호 D0는 차동 레벨로 변경된다. 신호 D1에 대해서도 마찬가지이다.
본 실시 형태는, SD 메모리 카드 외에, 고속으로 데이터를 전송하는 UHS(Ultra High Speed)-II 카드와 같은 디바이스에 적용될 수 있다. 전자 디바이스(4)가 메모리 디바이스일 경우, 전자 디바이스(4)의 메모리 구조는 NAND형 플래시 메모리에 국한되지 않고, NOR형 플래시 메모리 및 이러한 플래시 메모리 이외의 반도체 메모리가 전자 디바이스(4)의 메모리 구조로서 사용될 수도 있다.
본 실시 형태에서, 다양한 플로우차트를 참조하여 동작을 설명했다. 그러나, 각각의 플로우차트는 단지 일례로서 설명한 것이다. 가능한 한, 스텝들은 교체 가능하고, 복수의 스텝이 동시에 수행될 수도 있으며, 경우에 따라서는 몇개의 스텝이 생략될 수도 있다.
예를 들면, 도 2에서, 부트 코드의 전송(스텝 S12)과 디바이스 ID의 할당(스텝 S13)은 교체될 수 있다. 예를 들면, 호스트 기기(2)가 반도체 디바이스(3)에 전원을 공급한 직후에 부트 코드가 전송되는 경우, 도 2에 도시한 바와 같이 스텝 S12에서의 처리는 스텝 S13에서의 처리 전에 수행될 수 있다. 다른 방법으로서, 전자 디바이스(4)는 리드 커맨드의 발행을 호스트 기기(2)에 요구하도록 할 수도 있다. 즉, 부트 코드를 보유하고 있는 전자 디바이스(4)는 전원 투입 직후에 부트 코드의 판독을 호스트 기기(2)에 요구한다. 이러한 요구에 응답하여 호스트 기기(2)는 전자 디바이스(4)로부터 부트 코드를 판독한다. 따라서, 전자 디바이스(4)측으로부터 리드 커맨드를 발행하는 경우에는, 스텝 S13에서의 처리는 스텝 S12에서의 처리 전에 수행된다.
플로우차트는 하드웨어, 소프트웨어 또는 이들의 조합에 의해 실행될 수 있다. 플로우챠트가 소프트웨어에 의해 실행될 때에는, 플로우차트에 대응하는 프로그램은 ROM내에 저장되고, CPU와 같은 프로세서는 프로그램을 실행하여 플로우차트에 기술된 동작이 수행되게 한다.
임의의 실시 형태에 대해 기술하였지만, 이들 실시 형태는 단지 일례로서 제공된 것이며 발명의 범위를 제한하려는 것은 아니다. 실제로, 본 명세서에서 기술된 신규한 실시 형태는 다양한 형태로 구현될 수도 있으며; 게다가 본 명세서에서 기술된 실시 형태로의 다양한 생략, 치환 및 변경은 본 발명의 사상으로부터 동떨어짐없이 이루어질 수 있다. 첨부된 청구범위 및 그 등가물은 본 발명의 범위 및 사상내에 부합되는 한 그러한 형태 또는 변형을 커버한다.

Claims (16)

  1. 반도체 시스템으로서,
    복수의 전자 디바이스; 및
    상기 복수의 전자 디바이스를 그룹 단위로 동시에 초기화하는 호스트 기기를 포함하고,
    상기 호스트 기기는 상기 전자 디바이스를 초기화하기 위한 패킷 -상기 패킷은 제1 그룹 번호와 초기화에 사용가능한 제1 파워 유닛수를 포함함- 을 브로드캐스팅하고,
    상기 패킷은 상기 복수의 전자 디바이스 간에 순차적으로 전송되고,
    상기 전자 디바이스 각각에 제2 그룹 번호가 미리 설정되고,
    제2 파워 유닛수는 상기 전자 디바이스 각각의 초기화동안 필요한 파워 유닛이고,
    상기 제1 그룹 번호가 상기 제2 그룹 번호와 일치하고, 상기 제1 파워 유닛수가 상기 제2 파워 유닛수 이상일 경우, 초기화되어 있지 않은 전자 디바이스는 초기화를 행하고, 상기 제1 파워 유닛수를 상기 제1 파워 유닛수로부터 상기 제2 파워 유닛수를 감산할 때 구해지는 차분값으로 갱신하며, 상기 패킷을 다음 전자 디바이스로 전송하고,
    이미 초기화되어 있는 전자 디바이스는 초기화를 행하지 않고 상기 패킷을 상기 다음 전자 디바이스로 전송하는, 반도체 시스템.
  2. 제1항에 있어서,
    현재 초기화 중인 상기 전자 디바이스는 초기화 완료를 대기한 후 상기 패킷을 상기 다음 전자 디바이스로 전송하는, 반도체 시스템.
  3. 제1항에 있어서,
    상기 패킷은 초기화 완료 플래그를 더 포함하고,
    초기화되어 있지 않거나 현재 초기화중이 아닌 상기 전자 디바이스는, 상기 초기화 완료 플래그를, 초기화가 아직 완료되지 않았다는 것을 나타내는 정보로 갱신하여, 상기 패킷을 상기 다음 전자 디바이스에 전송하는, 반도체 시스템.
  4. 제3항에 있어서,
    상기 호스트 기기는 상기 초기화 완료 플래그를 초기값으로서 설정하고 상기 패킷을 상기 전자 디바이스에 전송하고,
    상기 초기화 완료 플래그가 초기화가 완료되었다는 것을 나타내는 패킷을 반송(return)시킬 때, 상기 호스트 기기는 모든 상기 전자 디바이스에 대해 초기화가 완료되었다고 판정하고,
    상기 초기화 완료 플래그가 초기화가 완료되지 않았다는 것을 나타내는 패킷을 반송시킬 때, 상기 호스트 기기는 초기화가 완료되지 않은 적어도 하나의 전자 디바이스가 있다고 판정하는, 반도체 시스템.
  5. 제1항에 있어서,
    상기 초기화 완료 플래그가 초기화가 완료되지 않았다는 것을 나타내는 경우,
    상기 호스트 기기는 전송시와는 상이한 제1 파워 유닛수를 갖는 패킷을 상기 전자 디바이스로부터 수신할 때, 상기 제1 그룹 번호를 갱신하지 않고 상기 패킷을 재전송하고,
    상기 호스트 기기는 전송시와 동일한 제1 파워 유닛수를 갖는 패킷을 상기 전자 디바이스로부터 수신할 때, 제1 그룹 번호를 갱신하여 상기 패킷을 재전송하는, 반도체 시스템.
  6. 반도체 시스템으로서,
    복수의 전자 디바이스; 및
    상기 복수의 전자 디바이스를 그룹 단위로 동시에 초기화하는 호스트 기기를 포함하고,
    상기 호스트 기기는 동작 성능을 나타내는 인수를 포함하는 커맨드를 상기 전자 디바이스에 전송하여 상기 전자 디바이스의 상기 동작 성능을 판독하고,
    상기 전자 디바이스가 상기 인수에 표시된 동작 성능을 지원할 수 있을 때, 상기 전자 디바이스는 상기 동작 성능에 대한 인수를 변경하지 않고, 상기 커맨드를 전송하고,
    상기 전자 디바이스가 상기 인수에 표시된 상기 동작 성능을 지원할 수 없을 때, 상기 전자 디바이스는 상기 동작 성능에 대한 인수를 상기 전자 디바이스에 의해 지원되는 값으로 변경하여, 상기 커맨드를 전송하고,
    상기 호스트 기기는 상기 커맨드에 기초하여 상기 호스트 기기 및 상기 전자 디바이스를 충족하는 공통 동작 성능을 결정하고, 브로드캐스트 커맨드에 의해 상기 공통 동작 성능을 상기 전자 디바이스에 설정하는, 반도체 시스템.
  7. 제6항에 있어서,
    상기 동작 성능은 상기 호스트 기기 및 상기 전자 디바이스의 동작 주파수, 심볼의 길이, 일종의 지원 패킷, 파워 제어 모드 및 재시도 횟수 중 적어도 하나와 관련되는, 반도체 시스템.
  8. 반도체 시스템으로서,
    복수의 전자 디바이스; 및
    상기 복수의 전자 디바이스를 그룹 단위로 동시에 초기화하는 호스트 기기를 포함하고,
    상기 호스트 기기는 상기 전자 디바이스로부터 동작 성능을 판독하고,
    상기 호스트 기기는 상기 전자 디바이스의 동작 성능을 개별적으로 결정하고,
    상기 호스트 기기는 상기 전자 디바이스에 상기 동작 성능을 개별적으로 설정하는, 반도체 시스템.
  9. 제8항에 있어서,
    상기 동작 성능은 데이터 전송시 사용되는 버퍼 사이즈 및 데이터 전송 타이밍 중 적어도 하나와 관련되는, 반도체 시스템.
  10. 반도체 시스템으로서,
    복수의 전자 디바이스; 및
    상기 전자 디바이스를 초기화하고 상기 전자 디바이스에 제1 전원 전압, 및 상기 제1 전원 전압과 동일하거나 그보다 낮은 제2 전원 전압을 공급할 수 있는 호스트 기기를 포함하고,
    상기 전자 디바이스 각각은 상기 제1 전원 전압을 사용하여 동작하는 디바이스 유닛; 및 상기 제2 전원 전압을 사용하여 동작하여 상기 호스트 기기와 인터페이스 처리를 수행하는 컨트롤러부를 포함하고,
    상기 컨트롤러부는 상기 호스트 기기와 상기 전자 디바이스간의 동작 조건 정보를 보유하는 레지스터를 포함하고,
    상기 레지스터내의 상기 동작 조건 정보는 상기 제1 전원 전압이 차단되어도, 상기 전자 디바이스가 특정 상태에 있을 때와 상기 제2 전원 전압이 공급되는 동안에는 유지되는, 반도체 시스템.
  11. 제10항에 있어서,
    상기 호스트 기기는 상기 제1 전원 전압이 차단된 후 상기 제1 전원 전압이 재차 인가되는 경우, 상기 제2 전원 전압이 차단되지 않는 한 상기 전자 디바이스를 초기화하지 않는, 반도체 시스템.
  12. 제10항에 있어서,
    상기 호스트 기기는 상기 제1 전원 전압 및 상기 제2 전원 전압이 공급되는 동안 상기 전자 디바이스를 재초기화할 수 있고,
    상기 호스트 기기는 상기 전자 디바이스의 최종 초기화 이후 상기 제2 전원 전압이 차단되는지의 여부에 기초하여 상기 재초기화가 필요한지를 판정하는, 반도체 시스템.
  13. 반도체 디바이스로서,
    호스트 기기로부터 브로드캐스팅된 패킷 -상기 패킷은 제1 그룹 번호와 초기화에 사용가능한 제1 파워 유닛수를 포함함- 을 수신하는 제1 전자 디바이스; 및
    상기 제1 전자 디바이스로부터 상기 패킷을 수신하는 제2 전자 디바이스를 포함하고,
    상기 패킷은 상기 제1 전자 디바이스 또는 상기 제2 전자 디바이스를 초기화하는데 사용되고,
    상기 제1 및 제2 전자 디바이스 각각에 제2 그룹 번호가 설정되고,
    초기화되어 있지 않은 상기 제1 전자 디바이스가 상기 패킷을 수신하는 경우에,
    상기 제1 그룹 번호가 상기 제2 그룹 번호와 일치하고, 상기 제1 파워 유닛수가 상기 제1 전자 디바이스의 초기화에 필요한 상기 제2 파워 유닛수 이상일 경우, 제1 전자 디바이스는 초기화를 행하고, 제1 파워 유닛수를 제1 파워 유닛수로부터 제2 파워 유닛수를 감산할 때 구해지는 차분값으로 갱신하며, 상기 패킷을 상기 제2 전자 디바이스로 전송하고,
    초기화중인 상기 제1 전자 디바이스가 상기 패킷을 수신하는 경우에,
    상기 제1 전자 디바이스는 초기화의 종료를 대기한 후, 초기화를 행하지 않고 패킷을 상기 제2 전자 디바이스에 전송하고,
    이미 초기화되어 있는 상기 제1 전자 디바이스가 상기 패킷을 수신하는 경우에,
    상기 제1 전자 디바이스는 초기화를 행하지 않고 상기 패킷을 상기 제2 전자 디바이스에 즉시 전송하는, 반도체 디바이스.
  14. 제13항에 있어서,
    상기 제1 전자 디바이스는 초기화동안 상기 패킷을 수신하면 초기화 완료후 상기 패킷을 전송하는, 반도체 디바이스.
  15. 전자 디바이스를 초기화하기 위한 방법으로서,
    상기 전자 디바이스에 의해, 호스트 기기로부터 브로드캐스팅된 패킷 -상기 패킷은 제1 그룹 번호와 초기화에 사용가능한 제1 파워 유닛수를 포함함- 을 수신하는 단계;
    복수의 전자 디바이스간에 패킷을 순차적으로 전송하는 단계 -각각의 상기 전자 디바이스에 제2 그룹 번호가 설정되고, 각각의 상기 전자 디바이스의 초기화에 제2 파워 유닛수가 필요함- ;
    상기 제1 그룹 번호가 상기 전자 디바이스의 제2 그룹 번호와 일치하고, 상기 제1 파워 유닛수가 상기 전자 디바이스용 상기 제2 파워 유닛수 이상일 경우, 초기화되어 있지 않은 상기 전자 디바이스에 의해, 초기화를 행하고, 상기 제1 파워 유닛수를 상기 제1 파워 유닛수로부터 상기 제2 파워 유닛수를 감산할 때 구해지는 차분값으로 갱신하며, 상기 패킷을 다음 전자 디바이스로 전송하는 단계;
    초기화 완료를 대기하고, 초기화중인 상기 전자 디바이스에 의한 초기화를 행하지 않고 상기 패킷을 상기 다음 전자 디바이스에 전송하는 단계; 및
    이미 초기화되어 있는 상기 전자 디바이스에 의한 초기화를 행하지 않고 상기 패킷을 상기 다음 전자 디바이스에 바로 전송하는 단계를 포함하는, 전자 디바이스의 초기화 방법.
  16. 제15항에 있어서,
    현재 초기화중인 상기 전자 디바이스는 초기화 완료를 대기한 후 상기 패킷을 상기 다음 전자 디바이스에 전송하는, 전자 디바이스의 초기화 방법.
KR1020127013477A 2009-12-17 2010-12-17 반도체 시스템, 반도체 디바이스 및 전자 디바이스 초기화 방법 KR101442934B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2009286791 2009-12-17
JPJP-P-2009-286791 2009-12-17
JPJP-P-2010-021569 2010-02-02
JP2010021569 2010-02-02
PCT/JP2010/073469 WO2011074708A1 (en) 2009-12-17 2010-12-17 Semiconductor system, semiconductor device, and electronic device initializing method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020147001980A Division KR101476112B1 (ko) 2009-12-17 2010-12-17 호스트 컨트롤러 및 반도체 디바이스

Publications (2)

Publication Number Publication Date
KR20120085864A true KR20120085864A (ko) 2012-08-01
KR101442934B1 KR101442934B1 (ko) 2014-09-22

Family

ID=44167454

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020147001980A KR101476112B1 (ko) 2009-12-17 2010-12-17 호스트 컨트롤러 및 반도체 디바이스
KR1020127013477A KR101442934B1 (ko) 2009-12-17 2010-12-17 반도체 시스템, 반도체 디바이스 및 전자 디바이스 초기화 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020147001980A KR101476112B1 (ko) 2009-12-17 2010-12-17 호스트 컨트롤러 및 반도체 디바이스

Country Status (7)

Country Link
US (4) USRE48495E1 (ko)
EP (2) EP3285141B1 (ko)
JP (2) JP5390709B2 (ko)
KR (2) KR101476112B1 (ko)
CN (2) CN102640075B (ko)
TW (4) TWI582572B (ko)
WO (1) WO2011074708A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8680900B2 (en) * 2012-08-10 2014-03-25 Arm Limited Self-initializing on-chip data processing apparatus and method of self-initializing an on-chip data processing apparatus
JP5920169B2 (ja) * 2012-10-22 2016-05-18 富士通株式会社 不正コネクション検出方法、ネットワーク監視装置及びプログラム
TWI520751B (zh) * 2013-02-22 2016-02-11 吳羽股份有限公司 經口投予用吸附劑及腎疾病治療劑及肝疾病治療劑
KR101996822B1 (ko) * 2013-03-15 2019-07-08 삼성전자 주식회사 링 토폴로지 저장 네트워크의 멀티캐스트 명령 패킷 처리 방법 및 시스템
JP5815661B2 (ja) * 2013-12-25 2015-11-17 ファナック株式会社 複数のcpuと通信するioユニットを用いた安全通信システム
JP2016029556A (ja) 2014-07-15 2016-03-03 株式会社東芝 ホスト機器および拡張性デバイス
KR102319392B1 (ko) 2015-06-09 2021-11-01 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
JP2017097825A (ja) 2015-11-16 2017-06-01 株式会社東芝 ホスト機器および拡張デバイス
TWI567561B (zh) * 2015-11-26 2017-01-21 新唐科技股份有限公司 匯流排系統
JP6640696B2 (ja) 2016-10-20 2020-02-05 キオクシア株式会社 インターフェースシステム
KR20180101760A (ko) 2017-03-06 2018-09-14 에스케이하이닉스 주식회사 저장 장치, 데이터 처리 시스템 및 이의 동작 방법
SG11202003803XA (en) * 2017-10-31 2020-05-28 Mitsubishi Heavy Industries Machinery Systems Ltd Information processing system, information processing method, and program
CN111758227A (zh) * 2018-02-26 2020-10-09 三菱电机株式会社 信号检测电路、光接收器、主站装置及信号检测方法
JP7423367B2 (ja) 2020-03-23 2024-01-29 キオクシア株式会社 通信システム、デバイス、及び通信方法
US11200001B2 (en) * 2020-05-15 2021-12-14 Micron Technology, Inc. Management of power during memory device reset and initialization
JP2022049599A (ja) * 2020-09-16 2022-03-29 キオクシア株式会社 通信システム、デバイス及び通信方法
TWI736434B (zh) * 2020-09-29 2021-08-11 瑞昱半導體股份有限公司 資料傳輸系統的前晶片
CN113157211B (zh) * 2021-04-20 2022-11-18 武汉卓目科技有限公司 一种嵌入式系统信息记录的存储方法

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5135281B2 (ko) * 1972-06-15 1976-10-01
US4792269A (en) 1985-09-16 1988-12-20 General Signal Corporation Container securing device
WO1995031777A1 (en) 1994-05-18 1995-11-23 Intel Corporation Method and apparatus for configuring multiple agents in a computer system
JPH0863408A (ja) 1994-08-24 1996-03-08 Fujitsu Ltd 計算機システム
JP3402953B2 (ja) * 1996-09-13 2003-05-06 株式会社東芝 通信方法、通信システムおよび通信装置
JPH10333783A (ja) 1997-05-29 1998-12-18 Nec Miyagi Ltd 汎用lsiの制御方式および制御方法
JP3005536B1 (ja) 1998-08-28 2000-01-31 三洋電機株式会社 映像記録システム
US6226729B1 (en) 1998-11-03 2001-05-01 Intel Corporation Method and apparatus for configuring and initializing a memory device and a memory channel
US6233625B1 (en) 1998-11-18 2001-05-15 Compaq Computer Corporation System and method for applying initialization power to SCSI devices
WO2001038983A2 (en) 1999-11-22 2001-05-31 Utstarcom, Inc. Distributed cache synchronization protocol
US6820148B1 (en) 2000-08-17 2004-11-16 Sandisk Corporation Multiple removable non-volatile memory cards serially communicating with a host
US7080134B2 (en) 2001-06-29 2006-07-18 Intel Corporation Systems and methods for software distribution and management
CA2363411A1 (en) 2001-11-21 2003-05-21 Platespin Canada Inc. System and method for provisioning software
JP2003158526A (ja) 2001-11-22 2003-05-30 Hitachi Ltd プロトコル制御装置ならびにディスクアレイシステム
TW541452B (en) 2002-02-26 2003-07-11 Via Tech Inc Remote boot-up system and method for multiple terminal equipments
US7089459B2 (en) 2002-09-30 2006-08-08 Intel Corporation Limit interface for performance management
CN1331365C (zh) 2002-12-31 2007-08-08 北京信威通信技术股份有限公司 无线通信系统终端软件自动升级的方法及系统
JP3761544B2 (ja) * 2003-06-25 2006-03-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 設定装置、情報処理装置、設定方法、プログラム、及び記録媒体
CN1301632C (zh) 2003-07-08 2007-02-21 精红实业股份有限公司 同步控制电路
JP2005157883A (ja) 2003-11-27 2005-06-16 Oki Electric Ind Co Ltd リセット回路
JP4317065B2 (ja) 2004-03-29 2009-08-19 株式会社山武 設備管理システム、設定情報管理装置、コントローラ、およびプログラム
JP2005316594A (ja) 2004-04-27 2005-11-10 Denso Corp マイクロコンピュータ,マイクロコンピュータシステム及び半導体装置
JP4543780B2 (ja) * 2004-06-25 2010-09-15 日本電気株式会社 電力管理システム、電力管理方法及びプログラム
WO2006057049A1 (ja) 2004-11-26 2006-06-01 Kabushiki Kaisha Toshiba カードおよびホスト機器
JP4817836B2 (ja) 2004-12-27 2011-11-16 株式会社東芝 カードおよびホスト機器
EP1703347B1 (en) 2005-03-15 2018-10-17 Omron Corporation Programmable logic controller device and programmable logic controller system
US7376823B2 (en) * 2005-04-28 2008-05-20 International Business Machines Corporation Method and system for automatic detection, inventory, and operating system deployment on network boot capable computers
JP4764696B2 (ja) 2005-10-07 2011-09-07 ルネサスエレクトロニクス株式会社 半導体集積回路装置
JP2007148828A (ja) 2005-11-28 2007-06-14 Canon Inc 情報処理装置及びその制御方法
WO2007076214A2 (en) 2005-12-08 2007-07-05 Sandisk Corporation Media card with command pass through mechanism
JP2007200220A (ja) 2006-01-30 2007-08-09 Toshiba Corp インターフェース制御装置およびインターフェース設定方法
JP2007299227A (ja) 2006-04-28 2007-11-15 Toshiba Corp 情報処理装置及び情報処理装置のブート方法
EP2487794A3 (en) 2006-08-22 2013-02-13 Mosaid Technologies Incorporated Modular command structure for memory and memory system
TWI457944B (zh) 2006-12-06 2014-10-21 Mosaid Technologies Inc 與串聯互連之半導體裝置通訊的設備、方法與系統
CN101617371B (zh) 2007-02-16 2014-03-26 莫塞德技术公司 具有多个外部电源的非易失性半导体存储器
US7818592B2 (en) 2007-04-18 2010-10-19 Globalfoundries Inc. Token based power control mechanism
JP2009026296A (ja) * 2007-06-21 2009-02-05 Toshiba Corp 電子デバイス、メモリデバイス、ホスト装置
US7755121B2 (en) 2007-08-23 2010-07-13 Aptina Imaging Corp. Imagers, apparatuses and systems utilizing pixels with improved optical resolution and methods of operating the same
JP2009059122A (ja) 2007-08-31 2009-03-19 Renesas Technology Corp データ処理システム
JP4960813B2 (ja) 2007-09-14 2012-06-27 株式会社リコー 電力制御システム
JP2009123141A (ja) 2007-11-19 2009-06-04 Panasonic Corp I/oデバイス、ホストコントローラおよびコンピュータシステム
US8594110B2 (en) * 2008-01-11 2013-11-26 Mosaid Technologies Incorporated Ring-of-clusters network topologies
US8131913B2 (en) * 2008-02-04 2012-03-06 Mosaid Technologies Incorporated Selective broadcasting of data in series connected devices
WO2009104782A1 (en) 2008-02-20 2009-08-27 Sumitomo Chemical Company, Limited Ethylene homopolymer
JP5150591B2 (ja) 2009-09-24 2013-02-20 株式会社東芝 半導体装置及びホスト機器
WO2011149481A1 (en) 2010-05-28 2011-12-01 Hewlett-Packard Development Company, L.P. Initializing a memory subsystem of a management controller

Also Published As

Publication number Publication date
TW201719327A (zh) 2017-06-01
EP3285141B1 (en) 2019-11-20
EP3285141A1 (en) 2018-02-21
US20120254600A1 (en) 2012-10-04
JP5390709B2 (ja) 2014-01-15
TW201514670A (zh) 2015-04-16
TWI625619B (zh) 2018-06-01
KR101442934B1 (ko) 2014-09-22
JP2014059883A (ja) 2014-04-03
CN102640075B (zh) 2015-03-11
USRE49682E1 (en) 2023-10-03
WO2011074708A1 (en) 2011-06-23
US9141398B2 (en) 2015-09-22
KR20140025602A (ko) 2014-03-04
JP5717819B2 (ja) 2015-05-13
TWI510904B (zh) 2015-12-01
USRE48495E1 (en) 2021-03-30
TW201142580A (en) 2011-12-01
EP2513743A1 (en) 2012-10-24
TW201614411A (en) 2016-04-16
CN104657132A (zh) 2015-05-27
TWI582572B (zh) 2017-05-11
USRE47598E1 (en) 2019-09-10
EP2513743B1 (en) 2017-11-15
EP2513743A4 (en) 2016-07-20
KR101476112B1 (ko) 2014-12-23
CN102640075A (zh) 2012-08-15
JP2013513836A (ja) 2013-04-22
CN104657132B (zh) 2018-08-03
TWI464566B (zh) 2014-12-11

Similar Documents

Publication Publication Date Title
KR101442934B1 (ko) 반도체 시스템, 반도체 디바이스 및 전자 디바이스 초기화 방법
US10592460B2 (en) Apparatus for virtual channel allocation via a high speed bus interface
KR102300933B1 (ko) 듀얼 모드 변조를 지원하는 메모리 시스템
KR101343646B1 (ko) 반도체 장치 및 호스트 기기
KR20210132729A (ko) 메모리 디바이스의 단일 핀에서 별개 신호 멀티플렉싱
CN116529720A (zh) 菊花链网络中的节点发现和配置
CN109257260A (zh) 通信系统中多个电源的适应性应用
US7346714B2 (en) Notification of completion of communication with a plurality of data storage areas
CN110199499A (zh) 统一的集中式网络堆栈
KR20180099312A (ko) 프레임 전송 방법 및 이를 수행하는 통신 장치 및 사용자 단말
JP2004179899A (ja) 画像処理装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
A107 Divisional application of patent
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170818

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180816

Year of fee payment: 5