KR101566004B1 - 엔드 포인트를 복수개로 분할 가능한 반도체 장치 - Google Patents

엔드 포인트를 복수개로 분할 가능한 반도체 장치 Download PDF

Info

Publication number
KR101566004B1
KR101566004B1 KR1020090018847A KR20090018847A KR101566004B1 KR 101566004 B1 KR101566004 B1 KR 101566004B1 KR 1020090018847 A KR1020090018847 A KR 1020090018847A KR 20090018847 A KR20090018847 A KR 20090018847A KR 101566004 B1 KR101566004 B1 KR 101566004B1
Authority
KR
South Korea
Prior art keywords
end point
sub
packet
endpoint
host
Prior art date
Application number
KR1020090018847A
Other languages
English (en)
Other versions
KR20100100136A (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 삼성전자주식회사
Priority to KR1020090018847A priority Critical patent/KR101566004B1/ko
Priority to US12/718,138 priority patent/US8700810B2/en
Publication of KR20100100136A publication Critical patent/KR20100100136A/ko
Application granted granted Critical
Publication of KR101566004B1 publication Critical patent/KR101566004B1/ko

Links

Images

Classifications

    • 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/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • G06F13/426Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using an embedded synchronisation, e.g. Firewire bus, Fibre Channel bus, SSA bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips

Abstract

엔드 포인트를 복수개로 분할 가능한 반도체 장치가 개시된다. 상기 반도체 장치는, 호스트와의 통신을 수행하는 적어도 하나의 엔드 포인트; 및 상기 적어도 하나의 엔드 포인트를 각각을 복수개로 분할하고 분할된 서브 엔드 포인트들 각각에 대한 넘버링을 수행하는 엔드 포인트 컨트롤러를 포함하며, 상기 엔드 포인트 컨트롤러는, 상기 호스트로부터 발생된 패킷을 서브 엔드 포인트들 중에서 어느 하나의 서브 엔드 포인트에 전송할 수 있다.
USB, 엔드 포인트

Description

엔드 포인트를 복수개로 분할 가능한 반도체 장치{Semiconductor device capable of dividing a end point into majority}
본 발명은 반도체 장치에 관한 것으로, 보다 상세하게는 엔드 포인트를 복수개로 분할 가능한 반도체 장치 및 그 방법에 관한 것이다.
USB(Universal Serial Bus)는 호스트에 주변기기(예컨대, 키보드, 마우스, 모니터, 웹 카메라, 조이스틱, 스토리지 등)를 연결하는 대표적인 산업 규격으로서, 상기 주변 기기에 대해 플러그 앤 플레이(plug & play) 기능을 제공하고 고속으로 데이터를 전송할 수 있다.
USB 환경에서 호스트에는 복수개의 USB 디바이스들이 접속될 수 있고, 각각의 USB 디바이스는 다수의 엔드 포인트들(endpoints)를 포함할 수 있다. 상기 다수의 엔드 포인트들 각각은 독립적인 채널인 파이프(pipe)를 통하여 호스트와 통신할 수 있다.
최근의 USB 디바이스는 다양한 어플리케이션(application, 예컨대, 대용량 저장장치, CCID(Chip/Smart Card Interface Devices))으로 구현되어, 다수의 엔드 포인트를 요구한다. 그러나, 칩 사이즈 문제로 인해 상기 USB 디바이스에 구현될 수 있는 엔드포인트 개수는 제한적일 수 밖에 없어 이에 대한 방안이 필요한 실정이다.
따라서, 본 발명이 이루고자 하는 기술적 과제는 엔드 포인트를 복수개로 분할 가능한 반도체 장치 및 그 방법을 제공하는 것이다.
상기 기술적 과제를 해결하기 위한 반도체 장치는, 호스트와의 통신을 수행하는 적어도 하나의 엔드 포인트; 및 상기 적어도 하나의 엔드 포인트를 각각을 복수개로 분할하고 분할된 서브 엔드 포인트들 각각에 대한 넘버링을 수행하는 엔드 포인트 컨트롤러를 포함하며, 상기 엔드 포인트 컨트롤러는, 상기 호스트로부터 발생된 패킷을 서브 엔드 포인트들 중에서 어느 하나의 서브 엔드 포인트에 전송할 수 있다.
상기 엔드 포인트 컨트롤러는, 상기 서브 엔드 포인트가 상기 패킷을 수신할 수 없는 경우 NAK 핸드 쉐이크를 발생할 수 있다.
상기 엔드 포인트 컨트롤러는, 상기 적어도 하나의 엔드포인트중에서 상기 호스트가 패킷 전송을 원하는 엔드 포인트 넘버를 수신하고, 수신된 엔드 포인트 넘버에 대응되는 서브 엔드 포인트들 중에서 상기 어느 하나의 서브 엔드 포인트에 상기 패킷을 전송할 수 있다.
상기 엔드 포인트 컨트롤러는, 상기 적어도 하나의 엔드 포인트를 제1 및 제2 서브 엔드포인트로 분할하고, 상기 호스트로부터 상기 적어도 하나의 엔드 포인트에 대한 패킷을 수신하는 경우, 상기 패킷의 수신지를 상기 제1 서브 엔드포인 트 또는 상기 제2 서브 엔드포인트가 되도록 제어할 수 있다.
상기 엔드 포인트 컨트롤러는, 상기 제1 서브 엔드포인트 또는 상기 제2 서브 엔드포인트가 상기 패킷의 수신을 완료한 경우 ACK 핸드 쉐이크를 발생할 수 있다.
상기 엔드 포인트 컨트롤러는, 상기 제1 서브 엔드포인트가 상기 호스트로부터 수신된 제1 패킷의 수신을 완료한 경우, 상기 적어도 하나의 엔드 포인트에 대한 제2 패킷의 수신지가 상기 제2 서브 엔드포인트가 되도록 제어할 수 있다.
상기 엔드 포인트 컨트롤러는, 상기 제1 서브 엔드포인트가 상기 제1 패킷의 수신을 완료 전후에 상기 제2 패킷을 전송받는 경우 NAK 핸드 쉐이크를 발생할 수 있다.
상기 반도체 장치는, 상기 엔드포인트가 상기 호스트로부터 전송된 제1 패킷을 수신하는 제1 모드, 상기 엔드포인트가 상기 호스트로 제2 패킷을 전송하는 제2 모드로 구동되며, 상기 엔드 포인트 컨트롤러는, 상기 제1 모드의 동작이 완료후 상기 제1 패킷을 수신한 제1 서브 엔드포인트를 상기 제2 모드로 변경하고, 상기 제2 모드의 완료후 상기 제2 패킷을 전송한 제2 서브 엔드포인트를 상기 제1 모드로 변경할 수 있다.
상기 엔드 포인트 컨트롤러는, 상기 제1 서브 엔드포인트가 상기 제1 모드에서 상기 제2 모드로 변경되기 전에 상기 호스트로부터 상기 제2 모드 변경요청이 발생하는 경우 NAK 핸드 쉐이크를 발생할 수 있다.
상기 엔드 포인트 컨트롤러는, 상기 적어도 하나의 엔드 포인트를 각각을 복 수개로 분할하고 분할된 상기 서브 엔드 포인트들 각각에 대한 넘버링을 수행하는 넘버링 부; 및 상기 넘버링 부에 의해서 넘버링된 서브 엔드 포인트가 상기 호스트로부터 발생된 패킷을 수신할 수 없는 경우 NAK 핸드 쉐이크를 발생하는 NAK 전송부를 포함할 수 있다.
상기 반도체 장치는, USB(Universal Serial Bus, 범용 직렬 버스) 디바이스일 수 있다.
본 발명에 따른 반도체 장치는 하나의 엔드 포인트를 복수개로 분할함으로써 제한된 칩 사이즈 내에서 구현될 수 있는 엔드 포인트의 개수를 최대화시킬 수 있는 효과가 있다.
또한, 본 발명에 따른 반도체 장치는 분할된 서브 엔드포인트가 패킷을 수신할 수 없는 상태인 경우 NAK 핸드쉐이크를 발생하여 패킷 전송의 안전성을 높일 수 있는 효과가 있다.
특정한 구조 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니된다.
본 발명의 개념에 따른 실시예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시예들은 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시 형태에 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 한정되지는 않는다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소들로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소는 제1 구성 요소로도 명명될 수 있다.
어떠한 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떠한 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 또는 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하기 위한 다른 표현들, 즉 '∼사이에'와 '바로 ∼사이에' 또는 '∼에 이웃하는'과 '∼에 직접 이웃하는' 등의 표현도 마찬가지로 해석되어야 한다.
본 명세서에서 사용하는 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서 '포함하다' 또는 '가지다' 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이 들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전의 정의 되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명하도록 한다.
도 1은 본 발명의 실시 예에 따른 반도체 장치(10)의 블록도를 나타내고, 도 2는 도 1의 엔드 포인트 컨트롤러(16)가 적어도 하나의 엔트포인트를 분할하는 방법을 설명하기 위한 도면이다. 도 3은 도 1의 반도체 장치(10)와 호스트(12) 사이에 송수신되는 패킷의 프레임을 나타낸다.
도 1 내지 도 3을 참조하면, 반도체 장치(10)는 직렬 인터페이스 엔진(Serial Interface Engine, SIE, 14), 엔드 포인트 컨트롤러(16), 적어도 하나의 엔드 포인트(EP1 내지 EPn), 및 CPU(22)를 포함할 수 있다.
반도체 장치(10)는 USB(Universal Serial Bus, 범용 직렬 버스) 디바이스일 수 있으며, 상기 반도체 장치(10)의 논리적 구성은 엔드포인트들(EP1 내지 EPn)의 집합체로 볼 수 있다.
직렬 인터페이스 엔진(14)은 반도체 장치(10)를 USB 프로토콜에 따라 허브나 호스트(12)에 연결할 수 있으며, 상기 반도체 장치(10)와 호스트(12) 간의 물리적인 신호 연결을 할 수 있다.
엔드 포인트 컨트롤러(16)는 적어도 하나의 엔드 포인트(EP1 내지 EPn) 각각을 복수개로 분할하고 분할된 서브 엔드 포인트들(EP1-1 내지 EP1-k, EP2-1 내지 EP2-x, 및 EPn-1 내지 EPn-y) 각각에 대한 넘버링(numbering, 즉, 번호 부여)을 수행할 수 있다. 즉, 엔드 포인트 컨트롤러(16)는 하나의 물리적 엔드 포인트(예컨대, EP1)에 복수개의 논리번호(Logical number)를 부여 할 수 있다.
이때, 상기 엔드 포인트 컨트롤러(16)는 분할된 서브 엔트포인트들(EP1-1 내지 EP1-k, EP2-1 내지 EP2-x, 및 EPn-1 내지 EPn-y) 각각에 대한 넘버링 결과를 저장할 수 있다.
예컨대, 엔드 포인트 컨트롤러(16)는 도 2와 같이 제1 엔드 포인트(EP1)를 제1 내지 제k 서브 엔드포인트(EP1-1 내지 EP1-k)로 분할하고, 분할된 서브 엔트포인트들(EP-1 내지 EP-k) 각각에 대한 넘버링을 수행할 수 있다.
즉, 반도체 장치(10)가 대용량 저장장치로 구현되는 경우, 적어도 두개의 엔드 포인트가 필요한데, 엔드 포인트 컨트롤러(16)가 하나의 엔드 포인트(예컨대, 제1 엔드 포인트(EP1))를 제1 내지 제k 서브 엔드포인트(EP1-1 내지 EP1-k)로 분할함으로써 상기 대용량 저장장치를 하나의 물리적인 엔드포인트로 구현 가능한다.
또한, 엔드 포인트 컨트롤러(16)는 제2 엔드 포인트(EP2)를 제1 내지 제x 서 브 엔드포인트(EP2-1 내지 EP2-x)로 분할하고, 분할된 서브 엔트포인트들(EP2-1 내지 EP2-x) 각각에 대한 넘버링을 수행할 수 있고, 제n 엔드 포인트(EPn)를 제1 내지 제y 서브 엔드포인트(EPn-1 내지 EPn-y)로 분할하고, 분할된 서브 엔트포인트들(EPn-1 내지 EPn-y) 각각에 대한 넘버링을 수행할 수 있다.
여기서, 복수개의 서브 엔드포인트들(EP1-1 내지 EP1-k, EP2-1 내지 EP2-x, 및 EPn-1 내지 EPn-y) 각각은 버퍼(미도시)로 구현될 수 있으며, 상기 버퍼는 선입선출(FIFO) 메모리일 수 있다.
이때, 복수개의 서브 엔드포인트들(EP1-1 내지 EP1-k, EP2-1 내지 EP2-x, 및 EPn-1 내지 EPn-y) 각각은 버스 억세스 주파수, 대역폭, 엔드 포인트 번호, 에러처리 절차, 엔드 포인트가 보내거나 수신할 수 있는 최대 패킷 사이즈, 엔드 포인트의 전송 형태, 또는 데이터 전송 방향 등에 의해 그 특성이 정의될 수 있다.
또한, 엔드 포인트 컨트롤러(16)는 호스트(12)로부터 발생된 패킷을 복수개의 서브 엔드포인트들(EP1-1 내지 EP1-k, EP2-1 내지 EP2-x, 및 EPn-1 내지 EPn-y) 중에서 대응되는 서브 엔드포인트에 전송 또는 할당할 수 있다.
보다 상세하게는, 엔드 포인트 컨트롤러(16)는 호스트(12)로부터 제1 엔드 포인트(EP1)를 타겟(target)으로 하는 패킷을 수신하는 경우, 이를 제1 엔드 포인트(EP1)를 구성하는 제1 내지 제k 서브 엔드포인트(EP1-1 내지 EP1-k) 중에서 어느 하나의 서브 엔드포인트(예컨대, 제1 서브 엔드포인트(EP1-1))에 상기 패킷이 전송되도록 제어할 수 있다.
예컨대, 엔드 포인트 컨트롤러(16)는 호스트(12)로부터 제1 엔드 포인 트(EP1)에 대한 기입 또는 독출요구가 발생되면, 상기 제1 엔드 포인트(EP1)를 구성하는 제1 내지 제k 서브 엔드포인트(EP1-1 내지 EP1-k) 중에서 어느 하나의 서브 엔드포인트(예컨대, 제1 서브 엔드포인트(EP1-1))가 상기 기입 또는 독출 동작을 수행하도록 제어할 수 있다.
이때, 엔드 포인트 컨트롤러(16)는 서브 엔드포인트(EP1-1)에 패킷의 전송이 완료된 경우 긍정응답(또는, ACK 핸드 쉐이크)를 발생할 수 있고, 서브 엔드포인트(EP1-1)에 패킷 전송이 불가한 경우 부정응답(또는, NAK 응답)을 발생할 수 있다.
도 3은 도 1의 반도체 장치(10)와 호스트(12) 사이에 송수신되는 패킷의 프레임을 나타내는 도면으로, 호스트(12)로부터 반도체 장치(10)로 전송되는 제1 패킷(31)은 도 3의 (a)와 같은 프레임으로 구성될 수 있다. 보다 상세하게는, 제1 패킷(31)은 제1 토큰부(31-1), 제1 데이터부(31-2), 및 제1 핸드쉐이크부(handshake, 31-3)를 포함할 수 있다.
제1 토큰부(31-1)는 제1 패킷(31)의 전송방향(즉, 호스트(12)에서 반도체 장치(10)로 전송 방향)에 대한 정보를 포함할 수 있고, 제1 데이터부(31-2)는 호스트(12)가 전송하는 데이터를 포함할 수 있다.
또한, 제1 핸드쉐이크부(31-3)는 반도체 장치(10)의 제1 패킷(31) 수신에 대한 수신응답을 포함할 수 있으며, 이때, 상기 수신응답은 에러없이 상기 제1 패킷(31)을 수신하였다는 긍정응답(또는, ACK 응답) 또는 에러발생에 대한 수신응답인 부정응답(또는, NAK 응답)일 수 있다.
또한, 반도체 장치(10)로부터 호스트(12)로 전송되는 제2 패킷(33)은 도 3의 (b)와 같은 프레임으로 구성될 수 있다. 보다 상세하게는, 제2 패킷(33)은 제2 토큰부(33-1), 제2 데이터부(33-2), 및 제2 핸드쉐이크부(33-3)를 포함할 수 있다.
제2 토큰부(33-1)는 제2 패킷(33)의 전송방향(즉, 반도체 장치(10)에서 호스트(12)로의 전송 방향)에 대한 정보를 포함할 수 있고, 제2 데이터부(33-2)는 상기 반도체 장치(10)가 전송하는 데이터를 포함할 수 있다.
또한, 제2 핸드쉐이크부(33-3)는 호스트(12)의 제2 패킷(33) 수신에 대한 수신응답을 포함할 수 있으며, 이때, 상기 수신응답은 에러없이 상기 제2 패킷(33)을 수신하였다는 ACK 응답 또는 에러발생에 대한 수신응답인 NAK 응답일 수 있다.
한편, 엔드 포인트 컨트롤러(16)는 복수개의 서브 엔드포인트들(EP1-1 내지 EP1-k, EP2-1 내지 EP2-x, 및 EPn-1 내지 EPn-y) 중에서 대응되는 서브 엔드포인트(예컨대, 제1 서브 엔드포인트(EP1-1))가 호스트(12)로부터 발생된 패킷을 수신할 수 없는 경우 NAK 핸드 쉐이크를 발생할 수 있다.
따라서, 본 발명의 실시 예에 따른 반도체 장치(10)의 엔드 포인트 컨트롤러(16)는 분할된 서브 엔드포인트(예컨대, 제1 서브 엔드포인트(EP1-1))가 패킷을 수신할 수 없는 상태인 경우 NAK 핸드쉐이크를 발생하여 패킷 전송의 안전성을 높일 수 있는 효과가 있다.
한편, 엔드포인트(예컨대, EP1)가 호스트(12)로부터 전송되는 제1 패킷(31)을 수신하는 제1 모드(또는, OUT 모드) 및 상기 호스트(12)로 제2 패킷(33)을 전송하는 제2 모드(또는, IN 모드)로 구동되는 경우, 엔드 포인트 컨트롤러(16)는 상기 제1 모드의 동작 완료후 상기 제1 패킷(31)을 수신한 제1 서브 엔드포인트(EP1-1)를 상기 제2 모드로 변경할 수 있다.
또한, 엔드 포인트 컨트롤러(16)는 엔드포인트(예컨대, EP1)의 제2 모드 동작 완료후 제2 패킷(33)을 전송한 제1 서브 엔드포인트(EP1-2)를 제1 모드로 변경할 수 있다.
이때, 엔드 포인트 컨트롤러(16)는 제1 서브 엔드포인트(EP1-1)가 제1 모드의 동작후, 제2 모드로 변경되기 전에 호스트(12)로부터 제2 모드 변경요청(즉, 패킷 전송요청)이 발생하는 경우 NAK 핸드 쉐이크를 발생할 수 있다.
또한, 엔드 포인트 컨트롤러(16)는 제1 서브 엔드포인트(EP1-1)가 호스트(12)로부터 수신된 제1 패킷(31)의 수신을 완료한 경우, 상기 적어도 하나의 엔드 포인트(EP1 내지 EPn)에 대한 제2 패킷(33)의 수신지가 제2 서브 엔드포인트(EP1-2)가 되도록 제어할 수 있다.
엔드 포인트 컨트롤러(16)는 넘버링부(numbering unit, 18) 및 NAK 전송부(20)를 포함할 수 있다. 상기 넘버링부(18)는 적어도 하나의 엔드 포인트(EP1 내지 EPn)를 각각을 복수개로 분할하고 분할된 상기 서브 엔드포인트들(EP1-1 내지 EP1-k, EP2-1 내지 EP2-x, 및 EPn-1 내지 EPn-y) 각각에 대한 넘버링을 수행할 수 있다. 상기 넘버링부(18)가 상기 서브 엔드포인트들 각각에 대한 넘버링을 수행하는 과정은 상술한 바와 같다.
NAK 전송부(20)는 넘버링부(18)에 의해서 넘버링된 서브 엔드 포인트(예컨대, 제1 서브 엔드포인트(EP1-1))가 상기 호스트(12)로부터 발생된 패킷을 수신할 수 없는 경우, 이미 상술한 바와 같이 NAK 핸드 쉐이크를 발생할 수 있다.
적어도 하나의 엔드 포인트(EP1 내지 EPn) 각각은 물리적으로 하나의 번호를 갖는 엔드 포인트들로서 상기 적어도 하나의 엔드 포인트(EP1 내지 EPn) 각각은 엔드 포인트 컨트롤러(16)에 의해 복수개의 서브 엔드 포인트들(EP1-1 내지 EP1-k, EP2-1 내지 EP2-x, 및 EPn-1 내지 EPn-y)로 분할되어 넘버링(numbering) 될 수 있다.
또한, 적어도 하나의 엔드 포인트(EP1 내지 EPn) 각각은 개별적인 식별 번호를 가지며, 디바이스 어드레스(device address)와의 조합에 의해 식별될 수 있다.
또한, 엔드포인트의 특성에 따라 호스트(12)와 반도체 장치(10) 간의 전송 형태가 결정될 수 있으며, 상기 엔드포인트의 특성은 디스크립터(descriptor)에 기술된다. 디스크립터에 는 버스 액세스(bus access)의 주파수, 레이턴시(latency), 대역폭(bandwidth), 엔드포인트 번호 및 패킷의 최대 크기 등이 기술될 수 있다.
CPU(22)는 호스트로(12)부터 적어도 하나의 엔드 포인트(EP1 내지 EPn)를 통하여 수신되는 패킷에 기초하여 반도체 장치(10)가 제공하는 고유의 기능(function, 예컨대, 키보드, 마우스, 모니터, 웹 카메라, 조이스틱, 스토리지 기능 등)을 수행할 수 있다.
도 4는 도 1의 반도체 장치(10)를 구비하는 전자 시스템의 기능 블록도를 나타내고, 도 5a 내지 도 5j는 도 4의 전자 시스템을 포함하는 전자기기를 나타낸다. 도 1 및 도 4 내지 도 5j를 참조하면, 도 1의 반도체 장치(10)는 메모리 카드(200)에 구현될 수 있으며, 상기 메모리 카드(200)는 스마트 카드, USB 디바이스, 컴팩 트 플래시, 메모리 스틱, 메모리 스틱 듀오, 멀티미디어 카드(MMC), 축소형 MMC, 시큐어 디지털 카드(SD), 미니SD 카드, 마이크로SD 카드(트랜스플래시), 스마트 카드, 및 XD-픽쳐 카드 등이 될 수 있다.
메모리 카드(200)는 메모리 슬롯(도 4의 410)에 전기적으로 접속되어 호스트(400)에 구현된 카드 인터페이스(420)를 통하여 전자 회로부(105)로부터 출력된 데이터(예컨대, 영상 데이터 또는 오디오 데이터)를 저장하거나, 저장된 데이터를 상기 전자 회로부(105)로 전송할 수 있다.
예컨대, 호스트(400)가 비디오 카메라(도 5의 (a))인 경우, 상기 전자 회로부(430)는 CIS(cmos image sensor), 이미지 프로세서, 및 디지털 신호처리부를 구비할 수 있으며, 카드 인터페이스(420)를 통하여 전자 회로부(430)에서 생성된 데이터(예컨대, 영상 데이터 또는 오디오 데이터)를 상기 메모리 카드(200)로 전송할 수 있다.
또한, 반도체 장치(10)를 포함하는 메모리 카드(200)는 텔레비젼(도 5의 (b)), MP3(도 5의 (c)), 게임기(도 5의 (d)), 전자 악기(도 5의 (e)), 휴대용 단말기(도 5의 (f)), PC (personal computer, 도 5의 (g)), PDA(personal digital assistant, 도 5의 (h)), 보이스 레코더(voice recorder, 도 5의 (i)), 또는 PC 카드(도 5의 (j)) 등에 장착되도록 구현될 수 있다.
도 6은 도 1의 반도체 장치(10)가 패킷을 수신하는 과정을 설명하기 위한 도면이다. 도 1, 도 2, 및 도 6을 참조하면, 엔드 포인트 컨트롤러(16)는 적어도 하나의 엔드 포인트(EP1 내지 EPn)를 각각을 복수개로 분할하고 분할된 서브 엔드 포 인트들(EP1-1 내지 EP1-k, EP2-1 내지 EP2-x, 및 EPn-1 내지 EPn-y) 각각에 대한 넘버링을 수행한다(S10).
엔드 포인트 컨트롤러(16)는 호스트(12)로부터 상기 적어도 하나의 엔드포인트(EP1 내지 EPn)를 타겟으로 하는 어느 하나의 패킷을 수신하고(S12), 상기 적어도 하나의 엔드포인트(EP1 내지 EPn)에 대응되는 서브 엔드포인트(예컨대, 제1 서브 엔드포인트(EP1-1))가 상기 패킷을 수신할 수 있는 상태인지 판단한다(S14).
엔드 포인트 컨트롤러(16)는 서브 엔드포인트(예컨대, 제1 서브 엔드포인트(EP1-1))가 상기 패킷을 수신할 수 있는 상태가 아닌 경우, NAK 핸드 쉐이크를 발생하고(S16), S14 단계를 다시 수행할 수 있다.
또는, 엔드 포인트 컨트롤러(16)는 서브 엔드포인트가 상기 패킷을 수신할 수 있는 상태인 경우, 서브 엔드포인트에 패킷을 전송하고, 서브 엔드포인트(예컨대, 제1 서브 엔드포인트(EP1-1))에 상기 패킷의 수신이 완료된 경우 ACK 핸드 쉐이크를 발생할 수 있다.(S18).
엔드 포인트 컨트롤러(16)는 서브 엔드 포인트들(EP1-1 내지 EP1-k, EP2-1 내지 EP2-x, 및 EPn-1 내지 EPn-y) 중에서 제1 서브 엔드포인트(EP1-1)가 상기 호스트(12)로부터 수신된 패킷의 수신을 완료한 경우, 상기 적어도 하나의 엔드 포인트(EP1 내지 EPn)를 타겟으로하는 다른 하나의 패킷의 수신지가 제2 서브 엔드포인트(EP1-2)가 되도록 설정할 수 있다(S20).
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스 템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 본 발명에 따른 온라인 광고 방법을 수행하기 위한 프로그램 코드는 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 전송될 수도 있다.
또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인 (functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 반도체 장치의 블록도를 나타낸다.
도 2는 도 1의 엔드 포인트 컨트롤러가 적어도 하나의 엔트 포인트를 분할하는 방법을 설명하기 위한 도면이다.
도 3은 도 1의 반도체 장치와 호스트 사이에 송수신되는 패킷의 프레임을 나타낸다.
도 4는 도 1의 반도체 장치를 구비하는 전자 시스템의 기능 블록도를 나타낸다.
도 5a 내지 도 5j는 도 4의 전자 시스템을 포함하는 전자기기를 나타낸다.
도 6은 도 1의 반도체 장치가 패킷을 수신하는 과정을 설명하기 위한 도면이다.

Claims (11)

  1. 호스트와의 통신을 수행하는 적어도 하나의 엔드 포인트; 및
    상기 적어도 하나의 엔드 포인트를 각각을 복수개로 분할하고 분할된 서브 엔드 포인트들 각각에 대한 넘버링을 수행하는 엔드 포인트 컨트롤러를 포함하며,
    상기 엔드 포인트 컨트롤러는, 상기 호스트로부터 발생된 패킷을 서브 엔드 포인트들 중에서 어느 하나의 서브 엔드 포인트에 전송하고, 상기 서브 엔드 포인트가 상기 패킷을 수신할 수 없는 경우 NAK 핸드 쉐이크를 발생하며,
    상기 엔드 포인트 컨트롤러는, 상기 적어도 하나의 엔드포인트중에서 상기 호스트가 패킷 전송을 원하는 엔드 포인트 넘버를 수신하고, 수신된 엔드 포인트 넘버에 대응되는 서브 엔드 포인트들 중에서 상기 어느 하나의 서브 엔드 포인트에 상기 패킷을 전송하며,
    상기 엔드 포인트 컨트롤러는, 상기 적어도 하나의 엔드 포인트를 제1 및 제2 서브 엔드포인트로 분할하고, 상기 호스트로부터 상기 적어도 하나의 엔드 포인트에 대한 패킷을 수신하는 경우, 상기 패킷의 수신지를 상기 제1 서브 엔드포인트 또는 상기 제2 서브 엔드포인트가 되도록 제어하는 반도체 장치.
  2. 제1항에 있어서, 상기 반도체 장치는,
    USB(Universal Serial Bus, 범용 직렬 버스) 디바이스인 반도체 장치.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서, 상기 엔드 포인트 컨트롤러는,
    상기 제1 서브 엔드포인트 또는 상기 제2 서브 엔드포인트가 상기 패킷의 수신을 완료한 경우 ACK 핸드 쉐이크를 발생하는 반도체 장치.
  6. 제5항에 있어서, 상기 엔드 포인트 컨트롤러는,
    상기 제1 서브 엔드포인트가 상기 호스트로부터 수신된 제1 패킷의 수신을 완료한 경우, 상기 적어도 하나의 엔드 포인트에 대한 제2 패킷의 수신지가 상기 제2 서브 엔드포인트가 되도록 제어하는 반도체 장치.
  7. 제6항에 있어서, 상기 엔드 포인트 컨트롤러는,
    상기 제1 서브 엔드포인트가 상기 제1 패킷의 수신을 완료 전후에 상기 제2 패킷을 전송받는 경우 NAK 핸드 쉐이크를 발생하는 반도체 장치.
  8. 제1항에 있어서, 상기 반도체 장치는,
    상기 엔드포인트가 상기 호스트로부터 전송된 제1 패킷을 수신하는 제1 모드, 상기 엔드포인트가 상기 호스트로 제2 패킷을 전송하는 제2 모드로 구동되며, 상기 엔드 포인트 컨트롤러는,
    상기 제1 모드의 동작이 완료후 상기 제1 패킷을 수신한 제1 서브 엔드포인트를 상기 제2 모드로 변경하고, 상기 제2 모드의 완료후 상기 제2 패킷을 전송한 제2 서브 엔드포인트를 상기 제1 모드로 변경하는 반도체 장치.
  9. 제8항에 있어서, 상기 엔드 포인트 컨트롤러는,
    상기 제1 서브 엔드포인트가 상기 제1 모드에서 상기 제2 모드로 변경되기 전에 상기 호스트로부터 상기 제2 모드 변경요청이 발생하는 경우 NAK 핸드 쉐이크를 발생하는 반도체 장치.
  10. 제1항에 있어서, 상기 엔드 포인트 컨트롤러는,
    상기 적어도 하나의 엔드 포인트를 각각을 복수개로 분할하고 분할된 상기 서브 엔드 포인트들 각각에 대한 넘버링을 수행하는 넘버링 부; 및
    상기 넘버링 부에 의해서 넘버링된 서브 엔드 포인트가 상기 호스트로부터 발생된 패킷을 수신할 수 없는 경우 NAK 핸드 쉐이크를 발생하는 NAK 전송부를 포함하는 반도체 장치.
  11. 삭제
KR1020090018847A 2009-03-05 2009-03-05 엔드 포인트를 복수개로 분할 가능한 반도체 장치 KR101566004B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090018847A KR101566004B1 (ko) 2009-03-05 2009-03-05 엔드 포인트를 복수개로 분할 가능한 반도체 장치
US12/718,138 US8700810B2 (en) 2009-03-05 2010-03-05 Semiconductor devices capable of dividing endpoint into majority of sub-endpoints

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090018847A KR101566004B1 (ko) 2009-03-05 2009-03-05 엔드 포인트를 복수개로 분할 가능한 반도체 장치

Publications (2)

Publication Number Publication Date
KR20100100136A KR20100100136A (ko) 2010-09-15
KR101566004B1 true KR101566004B1 (ko) 2015-11-06

Family

ID=42679226

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090018847A KR101566004B1 (ko) 2009-03-05 2009-03-05 엔드 포인트를 복수개로 분할 가능한 반도체 장치

Country Status (2)

Country Link
US (1) US8700810B2 (ko)
KR (1) KR101566004B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5501052B2 (ja) * 2010-03-24 2014-05-21 キヤノン株式会社 通信装置、通信装置の制御方法、プログラム
TWI486775B (zh) * 2013-09-18 2015-06-01 Dexin Corp 輸入裝置及其資料傳輸方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040133708A1 (en) * 2003-01-06 2004-07-08 Netchip Technology, Inc. Virtual endpoint for USB devices
KR100557215B1 (ko) 2003-08-19 2006-03-10 삼성전자주식회사 유에스비 디바이스의 엔드포인트 제어 장치 및 그 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5841471A (en) * 1996-09-12 1998-11-24 Eastman Kodak Company Timing control for a digitally interfaced camera using variable line readout intervals
US5818948A (en) * 1996-10-23 1998-10-06 Advanced Micro Devices, Inc. Architecture for a universal serial bus-based PC speaker controller
US6122676A (en) * 1998-01-07 2000-09-19 National Semiconductor Corporation Apparatus and method for transmitting and receiving data into and out of a universal serial bus device
US6148354A (en) * 1999-04-05 2000-11-14 M-Systems Flash Disk Pioneers Ltd. Architecture for a universal serial bus-based PC flash disk
US6795872B2 (en) * 2002-05-09 2004-09-21 Renesas Technology America, Inc. Maintaining at least partial functionality of a device as defined by a hardware configuration at a USB bus enumeration while the device memory is programmed
JP2004054437A (ja) 2002-07-17 2004-02-19 Ricoh Co Ltd データ通信システム
US7069373B2 (en) * 2002-11-07 2006-06-27 Nec Electronics America, Inc. USB endpoint controller flexible memory management
US7529860B2 (en) * 2006-12-19 2009-05-05 International Business Machines Corporation System and method for configuring an endpoint based on specified valid combinations of functions
US7957307B2 (en) * 2007-03-14 2011-06-07 Microsoft Corporation Reducing effects of packet loss in video transmissions
WO2008113081A1 (en) * 2007-03-15 2008-09-18 Wionics Research Virtual pipe for wire adapter communications
US8131890B1 (en) * 2007-03-23 2012-03-06 Cypress Semiconductor Corporation Circuit and method for increasing universal serial bus (USB) device endpoints
US8140719B2 (en) * 2007-06-21 2012-03-20 Sea Micro, Inc. Dis-aggregated and distributed data-center architecture using a direct interconnect fabric
US7925802B2 (en) * 2007-06-21 2011-04-12 Seamicro Corp. Hardware-based virtualization of BIOS, disks, network-interfaces, and consoles using a direct interconnect fabric
TW200903262A (en) * 2007-07-05 2009-01-16 Weltrend Semiconductor Inc Method and related integrated circuit for dynamically configuring USB endpoint resource
US8090894B1 (en) * 2007-09-21 2012-01-03 Cypress Semiconductor Corporation Architectures for supporting communication and access between multiple host devices and one or more common functions

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040133708A1 (en) * 2003-01-06 2004-07-08 Netchip Technology, Inc. Virtual endpoint for USB devices
KR100557215B1 (ko) 2003-08-19 2006-03-10 삼성전자주식회사 유에스비 디바이스의 엔드포인트 제어 장치 및 그 방법

Also Published As

Publication number Publication date
KR20100100136A (ko) 2010-09-15
US8700810B2 (en) 2014-04-15
US20100228896A1 (en) 2010-09-09

Similar Documents

Publication Publication Date Title
US11122151B2 (en) Multi-protocol gateway for connecting sensor devices to cloud
EP2238529B1 (en) Control bus for connection of electronic devices
KR101672067B1 (ko) 패턴 인식 프로세서의 버스
CN101594306B (zh) 为分组报头提供前缀
US7418524B2 (en) Universal serial bus (USB) extension
KR100460650B1 (ko) 데이터 전송 제어 장치, 전자 기기 및 데이터 전송 제어방법
US20060206636A1 (en) Method and apparatus for improving the performance of USB mass storage devices in the presence of long transmission delays
US20120072634A1 (en) Fully integrated, low area universal serial bus device transceiver
US20170344510A1 (en) Storage system, method, and apparatus for fast io on pcie devices
KR101566004B1 (ko) 엔드 포인트를 복수개로 분할 가능한 반도체 장치
US8135895B2 (en) Virtual SATA port multiplier, virtual SATA device, SATA system and data transfer method in a SATA system
CN112241277A (zh) Ic固件更新方法
KR20160147373A (ko) 광 신호를 이용한 sata 호스트 버스 어댑터 및 sata 저장소 연결 방법
KR101028618B1 (ko) 메인 보드와 확장 보드간 spi 통신 시스템 및 방법
KR100922812B1 (ko) 주변장치 제어 방법 및 그 시스템
CN213024170U (zh) 计算设备
EP3207459B1 (en) Side channel access through usb streams
CN217428141U (zh) 网卡、通信设备及网络安全系统
JP7006175B2 (ja) サーバ装置、端末装置、通信システム、通信方法、及びプログラム
CN116048893B (en) Method for testing optical fiber bus interface and related equipment
CN114443400B (zh) 信号测试方法、装置、片上系统、电子设备及存储介质
KR101502147B1 (ko) 네트워크 상에서 usb 호스트와 usb 디바이스 간의 통신 방법, 장치 및 기록매체
CN110505038B (zh) 一种数据传输方法及相关装置
US20230315672A1 (en) Interface device and computing system including the same
US20230315591A1 (en) PCIe DEVICE AND COMPUTING SYSTEM INCLUDING THE SAME

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
FPAY Annual fee payment

Payment date: 20180927

Year of fee payment: 4