KR20200076556A - 복수의 클라이언트들을 포함하는 통신 장치 - Google Patents

복수의 클라이언트들을 포함하는 통신 장치 Download PDF

Info

Publication number
KR20200076556A
KR20200076556A KR1020190040292A KR20190040292A KR20200076556A KR 20200076556 A KR20200076556 A KR 20200076556A KR 1020190040292 A KR1020190040292 A KR 1020190040292A KR 20190040292 A KR20190040292 A KR 20190040292A KR 20200076556 A KR20200076556 A KR 20200076556A
Authority
KR
South Korea
Prior art keywords
data
burst
client
clients
hub
Prior art date
Application number
KR1020190040292A
Other languages
English (en)
Other versions
KR102656702B1 (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 US16/718,401 priority Critical patent/US11683270B2/en
Publication of KR20200076556A publication Critical patent/KR20200076556A/ko
Application granted granted Critical
Publication of KR102656702B1 publication Critical patent/KR102656702B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9078Intermediate storage in different physical parts of a node or terminal using an external memory or storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Systems (AREA)

Abstract

통신 장치가 개시된다. 본 개시에 따른 통신 장치는, 제1 영역에 포함되는 클라이언트들을 포함하는 제1 클라이언트 그룹, 상기 제1 영역과 상이한 제2 영역에 포함되는 클라이언트들을 포함하는 제2 클라이언트 그룹, 상기 제1 클라이언트 그룹으로부터 수신한 데이터에 기반하여 제1 버스트 데이터 및 제1 컨트롤 패킷을 생성하는 제1 데이터 허브, 상기 제2 클라이언트 그룹으로부터 수신한 데이터에 기반하여 제2 버스트 데이터 및 제2 컨트롤 패킷을 생성하는 제2 데이터 허브, 및 상기 제1 데이터 허브 및 상기 제2 데이터 허브와 각각 연결되고, 버스트 데이터의 목적지 어드레스 정보를 포함하는 각각의 컨트롤 패킷에 기반하여, 각각의 버스트 데이터를 타겟 메모리에 저장하는 데이터 전달부를 포함할 수 있다.

Description

복수의 클라이언트들을 포함하는 통신 장치{COMMUNICATION APPARATUS COMPRISING PLURALITY OF CLIENTS}
본 개시의 기술적 사상은 통신 장치에 관한 것으로, 더욱 상세하게는 복수의 클라이언트들을 포함하는 통신 장치에 관한 것이다.
반도체 메모리 장치(semiconductor memory device)는 실리콘(Si, silicon), 게르마늄(Ge, Germanium), 비화 갈륨(GaAs, gallium arsenide), 인화 인듐(InP, indium phosphide)과 같은 반도체를 이용하여 구현되는 기억 장치이다. 반도체 메모리 장치는 크게 휘발성 메모리 장치(Volatile Memory Device) 및 비휘발성 메모리 장치(Nonvolatile Memory Device)로 구분될 수 있다.
한편, 통신을 수행하는 장치에 포함되는 메모리의 경우, 통신 시스템에 적용된 다수의 클라이언트 데이터를 처리하는 저장 장치 구조에서 클라이언트의 개수가 증가하고 있다. 통신 시스템이 규모가 커지고 기능이 확장됨에 따라 클라이언트의 개수가 늘어나게 되어 다단 메모리 구조의 제어부가 비대해지고, 복수의 클라이언트들과 다단 메모리간에 전기적 연결이 증가하여 칩의 면적 효율이 열화될 수 있다. 따라서, 칩의 면적 효율성을 증대시키면서 복잡화된 다수의 클라이언트 데이터를 처리할 수 있는 방안이 요구된다.
본 개시의 기술적 사상이 해결하고자 하는 과제는, 물리적인 위치에 따라 하드웨어 클라이언트들을 그룹화하고, 그룹화된 클라이언트들의 데이터를 처리하는 데이터 허브를 포함하는 통신 장치를 제공하는데 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 통신 장치는, 제1 영역에 포함되는 클라이언트들을 포함하는 제1 클라이언트 그룹, 상기 제1 영역과 상이한 제2 영역에 포함되는 클라이언트들을 포함하는 제2 클라이언트 그룹, 상기 제1 클라이언트 그룹으로부터 수신한 데이터에 기반하여 제1 버스트 데이터 및 제1 컨트롤 패킷을 생성하는 제1 데이터 허브, 상기 제2 클라이언트 그룹으로부터 수신한 데이터에 기반하여 제2 버스트 데이터 및 제2 컨트롤 패킷을 생성하는 제2 데이터 허브, 및 상기 제1 데이터 허브 및 상기 제2 데이터 허브와 각각 연결되고, 버스트 데이터의 목적지 어드레스 정보를 포함하는 각각의 컨트롤 패킷에 기반하여, 각각의 버스트 데이터를 타겟 메모리에 저장하는 데이터 전달부를 포함할 수 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 통신 장치는, 제1 전원, 제2 전원, 상기 제1 전원과 연결된 제1 클라이언트들, 상기 제2 전원과 연결된 제2 클라이언트들, 상기 제1 클라이언트로부터 클라이언트 데이터를 수신하는 제1 데이터 허브, 상기 제2 클라이언트로부터 클라이언트 데이터를 수신하는 제2 데이터 허브, 상기 제1 데이터 허브 및 상기 제2 데이터 허브 각각으로부터 컨트롤 패킷 및 버스트 데이터를 수신하는 데이터 전달부, 및 상기 데이터 전달부와 연결되는 타겟 메모리를 포함할 수 있다.
본 개시의 기술적 사상에 따른 통신 장치는, 물리적인 위치에 기반하여 복수의 클라이언트들을 그룹화함으로써, 클라이언트의 인터페이스 연결 개수를 감소시켜 칩의 면적 효율성을 증대시킬 수 있다.
본 개시의 기술적 사상에 따른 통신 장치는, 데이터 허브에서 그룹화된 클라이언트들의 데이터를 처리하고, 데이터 전달부와 독립적인 제어 프로토콜을 통해 데이터를 송신함으로써 데이터 전달부의 구조를 간단화(simplification)하여 칩의 면적 효율성을 증대시킬 수 있다.
도 1은 다단 메모리 구조의 일 예를 도시한다.
도 2는 본 개시의 예시적 실시예에 따른 다단 메모리 구조의 일 예를 도시한다.
도 3은 본 개시의 예시적 실시예에 따른 데이터 허브의 일 예를 도시한다.
도 4는 본 개시의 예시적 실시예에 따른 데이터 전달부의 일 예를 도시한다.
도 5는 본 개시의 예시적 실시예에 따른 컨트롤 패킷의 일 예를 도시한다.
도 6은 본 개시의 예시적 실시예에 따른 데이터 허브와 데이터 전달부 간에 제어 프로토콜의 일 예를 도시한다.
도 7a는 다단 메모리의 회로 배치를, 도 7b는 본 개시의 예시적 실시예에 따른 다단 메모리의 회로 배치의 비교 예를 도시한다.
도 8은 본 개시의 일 실시 예에 따른 다단 메모리를 포함하는 통신 기기들의 예를 도시한다.
도 1은 다단 메모리 구조의 일 예를 도시한다.
도 1을 참조하면, 다단 메모리(100)는 복수의 클라이언트들(110-1 내지 110-N), 컨트롤러(120) 및 타겟 메모리(150)를 포함할 수 있다.
다양한 실시예들에 따라, 복수의 클라이언트들(110-1 내지 110-N)은 하드웨어 블록들에 상응할 수 있다. 복수의 클라이언트들(110-1 내지 110-N)은 제1 클라이언트(110-1) 내지 제N 클라이언트(110-N)를 포함할 수 있다. 복수의 클라이언트들(110-1 내지 110-N) 각각은 신호 처리(signal processing)를 수행하기 위한 하드웨어 블록들에 상응할 수 있다. 일 예로, 제1 클라이언트(110-1)는 샘플링(sampling) 블록일 수 있다. 상기 샘플링 블록은 RF(radio-frequency) 신호를 수신하고, 수신한 RF 신호를 양자화(quantization)할 수 있다. 다른 예로, 제2 클라이언트(110-2)는 아날로그-디지털 변환 블록일 수 있다. 상기 아날로그-디지털 변환 블록은 양자화된 RF 아날로그 신호를 디지털 신호로 변환할 수 있다. 또 다른 예로, 제N 클라이언트(110-N)는 변조(modulation) 블록일 수 있다. 변조 블록은 송신 신호에 대한 주파수 변조 또는 진폭 변조를 수행할 수 있다.
다양한 실시예들에 따라, 컨트롤러(120)는 복수의 클라이언트들(110-1 내지 110-N)로부터 클라이언트 데이터를 수신하여 타겟 메모리(150)에 전달할 수 있다. 예를 들어, 컨트롤러(120)는 1단 메모리(130), 2단 메모리(140)의 다단(multi-layer) 구조를 형성할 수 있다.
다양한 실시예들에 따라, 1단 메모리(130)는 클라이언트 데이터를 임시로(temporarily) 저장할 수 있다. 1단 메모리(130)는 복수의 버퍼 메모리들(130-1 내지 130-N)을 포함할 수 있다. 복수의 버퍼 메모리들(130-1 내지 130-N) 각각은 복수의 클라이언트들(110-1 내지 110-N) 각각에 상응할 수 있다. 예를 들어, 제1 버퍼 메모리(130-1)는 제1 클라이언트(110-1)에 의해 생성된 클라이언트 데이터(W1)를 임시로 저장할 수 있다. 다른 예를 들어, 제2 버퍼 메모리(130-2)는 제2 클라이언트(110-2)에 의해 생성된 클라이언트 데이터(W2)를 임시로 저장할 수 있다.
일 실시예에 따라, 복수의 버퍼 메모리들(130-1 내지 130-N)은 FIFO(first in first out) 방식에 따라 클라이언트 데이터를 저장 및 출력할 수 있다. 복수의 버퍼 메모리(130-1 내지 130-N)들은 각각의 버퍼 메모리에 저장된 순서대로 2단 메모리(140)에게 데이터를 출력할 수 있다.
다양한 실시예들에 따라, 2단 메모리(140)는 입력 크로스바(142), 제1 뱅크(144-1) 내지 제N 뱅크(144-N)를 포함하는 뱅크 메모리(144), 출력 다중화기(multiplexer)(146)를 포함할 수 있다.
일 실시예에 따라, 입력 크로스바(142)는 1단 메모리(130)로부터 데이터를 수신하고, 뱅크 메모리(144)에게 스위칭할 수 있다. 예를 들어, 입력 크로스바(142)는 제1 버퍼 메모리(130-1) 내지 제N 버퍼 메모리(130-N)로부터 N개의 입력(W1 내지 Wn)을 수신하고, 제1 뱅크(144-1) 내지 제N 뱅크(144-N)에게 데이터를 출력할 수 있다. 출력 다중화기(146)는 복수의 뱅크들(144-1 내지 144-N)에 저장된 데이터 중 하나의 데이터를 출력할 수 있다.
다양한 실시예들에 따라, 타겟 메모리(150)는 2단 메모리(140)로부터 출력된 데이터를 저장할 수 있다. 타겟 메모리(150)는 다단 메모리(100)의 메모리들 중에서 3단 메모리로 이해될 수 있다. 미 도시되었지만, 프로세서는 타겟 메모리(150)에 저장된 데이터를 리드하여 데이터 처리(data processing)를 수행할 수 있다.
즉, 다단 메모리(100) 구조에서 프로세서는 데이터 처리를 위해 클라이언트 데이터를 필요로 하는 경우, 복수의 클라이언트들(110-1 내지 110-N)과 연결되지 않더라도, 타겟 메모리(150)에만 연결함으로써 전기적 연결의 개수를 줄이고, 칩의 면적 효율성을 향상시킬 수 있었다. 또한, 다단 메모리(100) 구조에서 프로세서는 복수의 클라이언트들(110-1 내지 110-N) 중 상기 클라이언트 데이터에 상응하는 클라이언트에게 직접 요청하지 않고, 타겟 메모리(150)에만 액세스하면 되므로, 데이터 처리 효율 또한 향상될 수 있었다.
다만, 통신 시스템의 발전에 따라 신호 처리에 필요한 클라이언트들의 개수가 급격하게 증가함에 따라, 복수의 클라이언트들(110-1 내지 110-N)과 컨트롤러(120)간에 전기적 연결의 개수가 급격하게 증가되었다. 또한, 클라이언트 개수만큼의 뱅크를 포함해야 하는 뱅크 메모리의 특성상, 뱅크 메모리를 제어하기 위한 논리 회로의 복잡도가 증가하였고, 컨트롤러(120)의 크기 또한 증가되었다. 이에 따라, 칩의 면적 효율성은 급격하게 감소되었다. 이하, 칩의 면적 효율성을 증가시키기 위한 다단 메모리 구조는 도 2 내지 도 4에서 후술될 것이다.
도 2는 본 개시의 예시적 실시예에 따른 다단 메모리 구조의 일 예를 도시한다. 도 1과 중복되는 내용은 생략한다.
도 2를 참조하면, 본 개시의 예시적 실시예에 따른 다단 메모리(200)는 복수의 전원들(210-1 내지 210-M), 복수의 그룹 클라이언트(215-1 내지 215-M), 복수의 데이터 허브들(220-1 내지 220-M), 데이터 전달부(230) 및 타겟 메모리(230)를 포함할 수 있다.
다양한 실시예들에 따라, 복수의 전원들(210-1 내지 210-M) 각각은 복수의 클라이언트들과 전기적으로 연결되고, 복수의 클라이언트들에게 전력을 공급할 수 있다. 예를 들어, 제1 전원(210-1)은 제1 클라이언트(110-1) 내지 제N 클라이언트(110-N)에게 전력을 공급할 수 있다.
다양한 실시예들에 따라, 복수의 그룹 클라이언트(210-1 내지 210-M) 각각은 동일한 전력에 연결되는 클라이언트들의 집합일 수 있다. 예를 들어, 제1 그룹 클라이언트(215-1)는 제1 전력(210-1)과 연결되어 전력을 공급받는 제1 클라이언트(110-1) 내지 제N 클라이언트(110-N)를 포함할 수 있다. 다른 예를 들어, 제2 그룹 클라이언트(215-2)는 제2 전력(210-2)과 전기적으로 연결될 수 있다.
일 실시예에 따라, 하나의 그룹 클라이언트(예를 들어, 제1 그룹 클라이언트(215-1) 내지 제M 그룹 클라이언트(215-M) 중 하나)는 물리적으로 인접하는 복수의 클라이언트들을 포함할 수 있다. 예를 들어, 제1 그룹 클라이언트에 포함되는 제1 클라이언트(110-1) 내지 제N 클라이언트(110-N)는 물리적으로 인접하도록 배치될 수 있다. 물리적으로 인접하는 클라이언트들끼리 전력원(power source)을 공유함으로써, 제한된 영역의 칩 내에서 전기적 연결을 위한 배선의 길이가 감소될 수 있다. 즉, 도 1의 다단 메모리(100)의 경우, 복수의 클라이언트들(도 1의 제1 클라이언트(110-1) 내지 제N 클라이언트(110-N))은 각각 도 1의 컨트롤러(120)과의 전기적 연결을 위한 배선이 필요할 수 있다. 반면, 도 2의 다단 메모리(200)는 모든 클라이언트들이 데이터 전달부(230)에 연결되지 않고, 물리적으로 인접한 데이터 허브들(220-1 내지 220-M)에 연결되면 되므로, 칩의 면적 효율이 증가할 수 있다.
다른 실시예에 따라, 하나의 그룹 클라이언트(예를 들어, 제1 그룹 클라이언트(215-1) 내지 제M 그룹 클라이언트(215-M) 중 하나)는 기능적으로(functionally) 유사한 복수의 클라이언트들을 포함할 수 있다. 즉, 복수의 클라이언트들은 하드웨어 블록의 기능에 기반하여 그룹핑(grouping)될 수 있다. 예를 들어, 하나의 그룹 클라이언트는 변조를 수행하는 클라이언트와 복조(demodulation)를 수행하는 클라이언트를 포함할 수 있다. 다양한 실시예들에서, 기능적으로 유사한 복수의 클라이언트들이 전력원을 공유하는 경우, 프로세서는 기능적으로 유사한 그룹 클라이언트가 동작하지 않아도 될 때, 적응적으로 상기 전력원을 파워 오프(off)함으로써 불필요한 전력 소모를 방지할 수도 있다.
다양한 실시예들에 따라, 복수의 데이터 허브들(220-1 내지 220-M)은 복수의 그룹 클라이언트들과 상응할 수 있다. 예를 들어, 제1 데이터 허브(220-1)는 제1 그룹 클라이언트와 연결되고, 제2 데이터 허브(220-2)는 제2 그룹 클라이언트와 연결될 수 있다. 복수의 데이터 허브들(220-1 내지 220-M) 각각은, 상응하는 그룹 클라이언트로부터 클라이언트 데이터를 수신 및 처리(processing)할 수 있다. 복수의 데이터 허브들(220-1 내지 220-M)은 데이터 전달부(230)에게 처리된 클라이언트 데이터를 송신할 수 있다. 이하, 도 3에서 데이터 허브에 포함되는 구체적인 구성에 대하여 후술할 것이다.
다양한 실시예들에 따라, 데이터 전달부(230)는 복수의 데이터 허브들(220-1 내지 220-M)과 연결될 수 있다. 데이터 전달부(230)는 복수의 데이터 허브들(220-1 내지 220-M)로부터 처리된 클라이언트 데이터 및 컨트롤 패킷을 수신할 수 있다. 데이터 전달부(230)와 복수의 데이터 허브들(220-1 내지 220-M)은 독립적인 제어 프로토콜에 따라 서로 통신할 수 있다. 이하, 도 4에서 데이터 전달부에 포함되는 구체적인 구성에 대하여, 도 5에서 상기 컨트롤 패킷에 대하여, 도 6에서 상기 제어 프로토콜에 대하여 후술할 것이다.
도 3은 본 개시의 예시적 실시예에 따른 데이터 허브의 일 예를 도시한다.
다양한 실시예들에 따라, 도 3의 데이터 허브는 도 2의 제1 데이터 허브(220-1)에 상응할 수 있고, 이는 나머지 복수의 데이터 허브들(220-2 내지 220-M) 각각에 마찬가지로 적용될 수 있다.
도 3을 참조하면, 제1 데이터 허브(220-1)는 1단 메모리(310), 패킹부(320), 2단 메모리(330), 버스트 생성기(340)를 포함할 수 있다.
1단 메모리(310)는 복수의 버퍼 메모리들(310-1 내지 310 내지 N)을 포함할 수 있다. 도 3에 도시된 1단 메모리(310)는 도 1에 도시된 1단 메모리(130)에 상응할 수 있다.
패킹부(320)는 2단 메모리(330)에게 송신하는 데이터의 비트 수를 조정할 수 있다. 클라이언트 데이터는, 생성된 클라이언트에 따라 크기가 다양할 수 있다. 예를 들어, 도 1을 참조하면, 제1 클라이언트(110-1)의 샘플링 블록에서 출력하는 클라이언트 데이터와 제2 클라이언트(110-2)의 아날로그-디지털 변환 블록에서 출력하는 데이터의 크기는 상이할 수 있다. 따라서, 패킹부(320)는 상이한 크기를 가지는 각각의 클라이언트 데이터를 규격화된 크기를 가지도록 비트 수를 조정할 수 있다. 상기 규격화된 크기는 미리 정의될 수 있다. 예를 들어, 상기 규격화된 크기는 128비트일 수 있다. 일 실시예에 따라, 제1 패킹 블록(320-1)은 제1 버퍼 메모리(310-1)로부터 출력된 32 비트의 클라이언트 데이터를 수신할 수 있다. 제2 패킹 블록(320-2)은 제2 버퍼 메모리(310-1)로부터 출력된 256 비트의 클라이언트 데이터를 수신할 수 있다. 이 경우, 제1 패킹 블록(320-1)은 128 비트를 출력하기 위하여, 상기 수신된 32 비트의 클라이언트 데이터에 96 비트의 더미 데이터를 추가할 수 있다. 제2 패킹 블록(320-2)은 128비트를 출력하기 위하여, 256 비트 중 일부 비트를 제거할 수 있다. 따라서, 동일한 비트 수(예를 들어, 128 비트)를 가지는 클라이언트 데이터들이 병렬적으로 2단 메모리(330)에게 전송될 수 있다.
다양한 실시예들에 따라, 2단 메모리(330)는 입력 크로스바(332) 및 뱅크 메모리(334)를 포함할 수 있다. 도 3에 도시된 입력 크로스바(332) 및 뱅크 메모리(334)는 도 1에 도시된 입력 크로스바(332) 및 뱅크 메모리(334)에 상응할 수 있다. 일 실시예에 따라, 상기 뱅크 메모리(334)는 제1 뱅크(334-1) 내지 제N+1 뱅크(미도시)를 포함할 수 있다. 즉, 제1 데이터 허브(220-1)와 연결된 클라이언트들의 개수가 N인 경우, 뱅크 메모리(334)는 N+1 개수의 뱅크들을 포함할 수 있다. 뱅크 메모리(334)의 인터리빙(interleaving) 특성 상, 버스트 생성기(340)로 데이터를 출력하기 위한 뱅크를 하나 더 포함할 수 있다. 예를 들어, 제1 뱅크(334-1) 내지 제N 뱅크(334-N)는 각각 미리 정의된 타이밍(timing)에서, 1단 메모리(310), 패킹부(320), 및 입력 크로스바(332)를 통해 클라이언트 데이터를 수신할 수 있다. 제N+1 뱅크는 미리 정의된 타이밍에서 버스트 생성기(340)에게 제1 그룹 클라이언트의 클라이언트 데이터들 중 하나의 클라이언트 데이터를 전송할 수 있다.
다양한 실시예들에서, 뱅크 메모리(334)에 포함되는 뱅크들의 개수는 칩 설계 시 적절한 개수로 설정될 수 있다. 상기 N이 너무 큰 값인 경우, 뱅크 메모리(334)를 제어하기 위한 논리 회로(logic circuit)의 크기가 비대해지므로 칩의 면적 효율을 감소시킬 수 있기 때문이다.
다양한 실시예들에 따라, 버스트 생성기(340)는 버스트 데이터를 생성할 수 있다. 상기 버스트 데이터는, 도 2의 다단 메모리(200)와 연결된 프로세서(미도시)가 처리(processing)할 수 있는 유효한(valid) 최소 단위의 데이터를 지칭할 수 있다. 일 실시예에서, 버스트 생성기(340)는 제1 그룹 클라이언트에 포함되는 복수의 클라이언트들(예를 들어, 제1 클라이언트(110-1) 내지 제N 클라이언트(110-N))에 의해 생성된 복수의 클라이언트 데이터들 중 하나의 클라이언트 데이터에 기반하여 버스트 데이터를 생성할 수 있다. 즉, 버스트 생성기(340)는 뱅크 메모리(334)의 제1 뱅크(334-1) 내지 제N 뱅크(334-N) 중 하나에 저장된 데이터에 기반하여 버스트 데이터를 생성할 수 있다. 버스트 생성기(340)는 미리 정의된 우선 순위(priority)에 기반하여 상기 하나의 클라이언트 데이터를 선택할 수 있다. 버스트 생성기(340)는 데이터 전달부(230)에게 상기 생성된 버스트 데이터를 송신할 수 있다.
도 4는 본 개시의 예시적 실시예에 따른 데이터 전달부의 일 예를 도시한다.
도 4를 참조하면, 3단 메모리(410), 출력 선택기(420), DMA(direct memory access) 컨트롤러(430) 및 인터럽트 생성부(440)를 포함할 수 있다.
다양한 실시예들에 따라, 3단 메모리(410)는 복수의 버퍼 메모리들(410-1 내지 410-M)을 포함할 수 있다. 복수의 메모리들(410-1 내지 410-M)은 복수의 데이터 허브들(220-1 내지 220-M)에 상응할 수 있다. 예를 들어, 3단 메모리(410) 중 제1 버퍼 메모리(410-1)는 제1 데이터 허브(220-1)로부터 제1 버스트 데이터를 수신할 수 있다. 상기 제1 버스트 데이터는 제1 그룹 클라이언트의 클라이언트 데이터에 기반하여 생성될 수 있다. 다른 예를 들어, 3단 메모리(410) 중 제2 버퍼 메모리(410-2)는 제2 데이터 허브(220-2)로부터 제2 버스트 데이터를 수신할 수 있다. 상기 제2 버스트 데이터는 제2 그룹 클라이언트의 클라이언트 데이터에 기반하여 생성될 수 있다.
다양한 실시예들에 따라, 출력 선택기(420)는 DMA 컨트롤러(430)에게 복수의 버스트 데이터들 중 하나의 버스트 데이터를 전송할 수 있다. 출력 선택기(420)는 3단 메모리(410)의 복수의 버퍼 메모리들(410-1 내지 410-M)에 임시로 저장된 버스트 데이터들 중 하나의 버스트 데이터를 출력할 수 있다. 일 실시예에 따라, 출력 선택기(420)는 선택된 하나의 버스트 데이터의 출력만 수행하면 되므로, 복잡도가 높은 논리 회로를 필요로 하지 않을 수 있다. 또한, 도 3의 데이터 허브(예를 들어, 제1 데이터 허브(220-1))와 비교하면, 추가적인(additional) 제어를 위한 회로 또는 뱅크 메모리를 구비하지 않을 수 있다.
다양한 실시예들에 따라, DMA 컨트롤러(430)는 타겟 메모리(150)의 목적지 어드레스(destination address)로 데이터를 저장할 수 있다. 예를 들어, DMA 컨트롤러(430)는 출력 선택기(420)로부터 출력된 버스트 데이터가 저장되어야 하는 목적지 어드레스를 식별하고, 상기 목적지 어드레스로 출력된 버스트 데이터를 저장할 수 있다. 일 실시예에 따라, DMA 컨트롤러(430)는 타겟 메모리(150)로의 데이터 전송의 초기 설정 시, 프로세서(미도시)의 제어를 수신하고, 상기 프로세서(미도시)의 제어 없이 데이터 전송을 완료할 수 있다. DMA 컨트롤러(430)는 데이터 전송이 완료된 경우, 상기 프로세서(미도시)에게 인터럽트를 전송하여 데이터 전송의 완료를 지시할 수 있다.
도 5는 본 개시의 예시적 실시예에 따른 컨트롤 패킷의 일 예를 도시한다.
도 5를 참조하면, 컨트롤 패킷(500)은 제1 비트(510), 제2 비트(520), 제3 비트(530) 및 제4 비트(540)를 포함할 수 있다.
다양한 실시예들에 따라, 제1 비트(510)는 클라이언트 ID 비트를 포함할 수 있다. 상기 클라이언트 ID 비트는 클라이언트를 지시하는 비트에 상응할 수 있다. 즉, 제1 비트(510)는 도 2의 복수의 클라이언트들 중 하나의 클라이언트를 지시하는 비트를 포함할 수 있다. 일 예로, 제1 비트(510)는 그룹 클라이언트를 지시하는 비트 및 상기 그룹 클라이언트 중 하나의 클라이언트를 지시하는 비트를 포함할 수 있다.
다양한 실시예들에 따라, 제2 비트(520)는 버스트 ID 비트들을 포함할 수 있다. 상기 버스트 ID 비트는 버스트 데이터의 유형(type)을 지시하기 위한 비트에 상응할 수 있다. 예를 들어, DMA 컨트롤러(430)는 상기 제2 비트(520)를 복호함으로써, 수신한 버스트 데이터의 유형을 식별하고, 버스트 데이터를 처리하기 위하여 요구되는 인터럽트를 결정할 수 있다. DMA 컨트롤러(430)는 인터럽트 생성기(440)를 이용하여 상기 결정된 인터럽트를 생성하여 프로세서에게 전송할 수 있다.
다양한 실시예들에 따라, 제3 비트(530)는 리저브드(reserved) 비트를 포함할 수 있다. 상기 리저브드 비트는 다양한 컨트롤 정보를 포함하기 위한 예비적 비트에 상응할 수 있다. 예를 들어, 클라이언트 데이터 또는 버스트 데이터의 암호화(encryption)를 위한 기능 블록이 추가되는 경우, 상기 리저브드 비트는 상기 암호화된 클라이언트 데이터 또는 버스트 데이터의 복호를 위한 정보(예를 들어, 패리티(parity) 비트)를 포함할 수 있다.
다양한 실시예들에 따라, 제4 비트(540)는 버스트 오프셋(offset) 비트를 포함할 수 있다. 상기 버스트 오프셋 비트는, 버스트 데이터가 저장되는 타겟 메모리(150)의 목적지 어드레스를 지시할 수 있다. DMA 컨트롤러(430)는 제4 비트(540)를 복호하여 상기 목적지 어드레스를 식별하고, 타겟 메모리(150)에게 상기 목적지 어드레스를 지시하는 정보와 버스트 데이터를 전송할 수 있다.
도 6은 본 개시의 예시적 실시예에 따른 데이터 허브와 데이터 전달부 간에 제어 프로토콜의 일 예를 도시한다.
도 3, 도 4 및 도 6을 참조하면, 데이터 허브(220-1) 및 데이터 전달부(230)간에 제어 프로토콜은 레디 신호, 인터럽트 신호, 데이터 신호, 컨트롤 신호를 포함할 수 있다.
다양한 실시예들에 따라, 레디 신호는 데이터 전달부(230)의 3단 메모리(410)의 저장 상태를 지시할 수 있다. 레디 신호는 3단 메모리(410)가 가득 찼는지 또는 저장 공간의 여유가 있는지 여부를 지시할 수 있다. 레디 신호는, 1비트의 신호일 수 있다. 3단 메모리(410)에 포함되는 복수의 버퍼 메모리들(410-1 내지 410-M)은 FIFO 방식에 따라 데이터를 저장하기 때문에, 출력 선택기(420)를 통해 저장된 데이터를 출력하지 않는 이상, 버퍼 메모리에 저장 공간이 부족할 수도 있다. 예를 들어, 제1 버퍼 메모리(410-1)가 데이터로 가득 찬 경우, 데이터 전달부(230)는 제1 버퍼 메모리(410-1)에 상응하는 제1 데이터 허브(220-1)에게 로직 로우(logic low) 또는 "0"의 레디 신호를 송신할 수 있다. 제1 데이터 허브(220-1)는 로직 로우의 레디 신호를 수신한 경우, 데이터 전달부(230) 내에 제1 그룹 클라이언트의 데이터를 저장할 공간이 없음을 식별하고, 데이터 전송을 지연할 수 있다. 다른 예를 들어, 제1 버퍼 메모리(410-1)에 저장 공간의 여유가 있는 경우, 데이터 전달부(230)는 제1 데이터 허브(220-1)에게 로직 하이(logic high) 또는 "1"의 레디 신호를 송신할 수 있다. 제1 데이터 허브(220-1)는 로직 하이의 레디 신호를 수신한 경우, 제1 그룹 클라이언트로부터 수신한 데이터에 기반하여 생성된 버스트 데이터를 전송할 수 있다. 즉, 레디 신호는 데이터 전달부(230) 내에 버퍼 메모리의 저장 상태를 지시함으로써 데이터 허브와 데이터 전달부 간에 클라이언트 데이터의 손실을 방지할 수 있다.
다양한 실시예들에 따라, 컨트롤 신호는 데이터 허브(220-1)에서 데이터 전달부(230)로 전송되는 데이터의 유형을 지시할 수 있다. 상기 컨트롤 신호는, 2비트를 포함할 수 있다. 예를 들어, 컨트롤 신호가 "1"인 경우, 도 5에 도시된 컨트롤 패킷을 데이터 전달부(230)에게 전송할 수 있다. 다른 예를 들어, 컨트롤 신호가 "2"인 경우, 데이터 허브(220-1)는 데이터 전달부(230)에게 버스트 데이터를 전송할 수 있다. 데이터 허브(220-1)는 버스트 데이터를 처음 전송하는 시점에 컨트롤 신호를 "1"로 설정하고, 데이터 전달부(230)에게 컨트롤 패킷을 전송함으로써 다음 타이밍부터 전송될 버스트 데이터와 관련된 정보(예를 들어, 버스트 데이터의 유형, 인터럽트의 유형, 전송하는 클라이언트 ID, 타겟 메모리(150)의 목적지 어드레스)를 미리(in advance) 전송할 수 있다.
다양한 실시예들에 따라, 데이터 신호는, 데이터 허브(220-1)로부터 데이터 전달부(230)에게 전송되는 데이터를 포함할 수 있다. 상기 컨트롤 신호가 "1"인 경우, 데이터 신호는 컨트롤 패킷을 포함할 수 있다. 상기 컨트롤 신호가 "2"인 경우, 데이터 신호는, 버스트 데이터를 포함할 수 있다. 예를 들어, 데이터 허브(220-1)는 내부 클락(internal clock)에 따라 버스트 데이터(도 6의 d0, d1, d2, d3)를 송신할 수 있다. 다양한 실시예들에 따라, 데이터 신호는, 레디 신호에 종속적일 수 있다. 예를 들어, 레디 신호가 로직 하이 또는 "1"인 경우, 데이터 전달부(230)의 버퍼 메모리가 가득 찬 상황이 아니므로, 상기 버스트 데이터 또는 상기 컨트롤 패킷을 데이터 전달부(230)에게 송신할 수 있다. 반면, 레디 신호가 로직 로우 또는 "0"인 경우, 데이터 전달부(230)의 버퍼 메모리가 가득 찬 상황이므로, 상기 버스트 데이터 또는 상기 컨트롤 패킷을 송신할 수 없다.
다양한 실시예들에 따라, 인터럽트 신호는, 버스트 데이터의 전송이 완료되었음을 지시할 수 있다. 상기 인터럽트 신호는, 1비트의 신호에 상응할 수 있다. 인터럽트 신호가 로직 하이 또는 "1"인 경우, 데이터 전달부(230)는 버스트 데이터의 전송이 완료되었음을 식별할 수 있다. 예를 들어, 도 6을 참조하면, 데이터 전달부(230)는 컨트롤 신호가 "1"인 시점에 컨트롤 패킷을 수신한 이후, 상기 인터럽트 신호가 "1"이 되는 시점까지 수신한 데이터(예를 들어, d0 내지 d3, e0 내지 e3, f0 내지 f3, Q4, 및 Q5)를 버스트 데이터로 결정할 수 있다.
도 7a는 다단 메모리의 회로 배치를, 도 7b는 본 개시의 예시적 실시예에 따른 다단 메모리의 회로 배치의 비교 예를 도시한다.
도 7a를 참조하면, 전술한 바와 같이 다단 메모리(100)은 3단의 메모리 구조를 포함할 수 있다. 복수의 클라이언트들은 칩 영역 전체에 걸쳐 배치될 수 있다. 복수의 클라이언트들 각각은 모두 컨트롤러(120)에게 연결될 수 있다. 따라서, 복수의 클라이언트들 중 컨트롤러(120)와 소정의 거리 이내에 가깝게 위치하는 일부 클라이언트를 제외하고, 복수의 클라이언트들 중 소정의 거리 이상으로 배치되어, 컨트롤러(120)와 멀리 위치하는 클라이언트들과의 연결을 위한 전기적 배선이 요구될 수 있다. 원거리에 위치하는 컨트롤러(120)와 클라이언트의 전기적 배선의 개수가 증가함에 따라, 칩 영역 전체의 공간 효율성이 감소할 수 있다. 또한, 미 도시되었지만, 통신 시스템의 발전에 따라 각각의 클라이언트가 처리하여 생성하는 클라이언트 데이터들의 크기 또한 증가할 수 있다. 클라이언트 데이터의 크기가 증가되는 경우, 상기 클라이언트 데이터를 전송하기 위한 전기적 배선의 물리적 크기 또한 증가되어, 칩 전체의 공간 효율성을 저해할 수 있다. 또한, 컨트롤러(120)는 모든 클라이언트로부터 데이터를 수신 및 처리하여 타겟 메모리(150)에 저장해야 하므로, 클라이언트 개수가 증가할수록 컨트롤러(120)의 제어를 위한 논리 회로의 복잡도 또한 기하급수적으로 증가하여, 컨트롤러(120) 자체의 크기 증가를 야기할 수 있다.
도 7b를 참조하면, 전술한 바와 같이, 복수의 클라이언트들은 복수의 데이터 허브들(220-1 내지 220-4)에 연결될 수 있다. 데이터 전달부(230)는 복수의 데이터 허브들(220-1 내지 220-4)로부터 각각 버스트 데이터를 수신하여, 타겟 메모리(150)에 전달할 수 있다.
다양한 실시예들에 따라, 데이터 허브는 물리적으로 소정의 거리 이내에 배치되는 클라이언트들과 연결될 수 있다. 예를 들어, 제1 데이터 허브(220-1)는 제1 영역에 포함되는 복수의 클라이언트들과 연결될 수 있고, 제2 데이터 허브(220-2)는 제2 영역에 포함되는 복수의 클라이언트들과 연결될 수 있다. 상기 제1 영역은 상기 제2 영역과 구별될 수 있다. 예를 들어, 상기 제1 영역은 도 7b의 다단 메모리(200)의 칩 전체 영역 중에서 왼쪽 상단의 영역을 지칭할 수 있고, 상기 제2 영역은 오른쪽 상단의 영역을 지칭할 수 있다. 즉, 데이터 허브들은 각각의 데이터 허브와 물리적으로 인접한 클라이언트들과 연결되어, 클라이언트 데이터를 처리하도록 구성될 수 있다. 따라서, 도 7a에서 하나의 컨트롤러(120)가 모든 클라이언트들에 각각 연결될 필요 없이, 데이터 허브 각각은 인접한 클라이언트들과 전기적 연결을 포함할 수 있다. 따라서, 원거리에 위치하는 컨트롤러(120)와 클라이언트의 연결을 생략함으로써 공간 효율성이 증대될 수 있다.
다양한 실시예들에 따라, 도 7a의 컨트롤러(120)는 다수의 클라이언트들(예를 들어, 100개)의 데이터를 처리하고, 도 7b의 데이터 허브들 각각은 10개의 클라이언트들의 데이터를 처리한다고 가정할 수 있다. 컨트롤러 또는 데이터 허브의 데이터 처리를 위한 논리 회로의 복잡도는 연결된 클라이언트 개수에 제곱에 비례할 수 있다. 즉, 도 7a의 컨트롤러(120)는 100개의 클라이언트들로부터 수신된 데이터를 처리하기 위하여 10000의 복잡도를 가지는 논리 회로를 필요로 할 수 있다. 반면, 도 7b에서 하나의 데이터 허브(예를 들어, 데이터 허브(220-1))는 100의 복잡도를 가지는 논리 회로를 필요로 할 수 있다. 논리 회로의 복잡도가 증가할수록 상기 논리 회로를 구현하기 위한 면적 또한 비례하여 증가한다고 가정할 수 있다. 따라서, 도 7b의 하나의 데이터 허브는 100의 복잡도를 가지는 논리 회로를 필요로 할 수 있다. 전술한 바와 같이, 하나의 데이터 허브가 10개의 클라이언트와 연결되는 경우, 상기 하나의 데이터 허브는 100의 복잡도를 가지며, 100개의 클라이언트와 연결되는 데이터 허브는 10개이므로, 칩 전체의 복잡도는 1000에 상응할 수 있다. 따라서, 컨트롤러(120)의 처리량을 다수의 데이터 허브로 분산함으로써 클라이언트 데이터를 처리하는 회로의 면적을 1/10으로 감소시킬 수 있다.
다양한 실시예들에 따라, 데이터 전달부(230)는 복수의 데이터 허브들과 연결될 수 있다. 복수의 데이터 허브들(220-1 내지 220-4)과 데이터 전달부(230)가 연결되는 개수는, 도 7a에서 컨트롤러(120)가 복수의 클라이언트들과 멀리 떨어져 연결되는 개수에 비하여 크게 작아지므로, 칩 전체 영역에 걸쳐 공간 효율성을 증대시킬 수 있다.
다양한 실시예들에 따라, 데이터 전달부(230)는 복수의 데이터 허브들에 의해 처리된 데이터인 버스트 데이터를 수신할 수 있다. 따라서, 데이터 전달부(230)는 단순히 FIFO 방식의 버퍼 메모리들 및 출력 선택기, 및 DMA 컨트롤러만으로 구현될 수 있다. 반면, 도 7a의 컨트롤러(120)에 포함되는 뱅크 메모리 및 출력 다중화기는 데이터 전달부(230)와 비교하여 복잡도가 크고, 면적 또한 크게 차지할 수 있다. 도 7a의 컨트롤러에 포함되는 뱅크 메모리는 모든 클라이언트에 상응하는 개수의 뱅크들을 포함해야 하고, 또한 모든 클라이언트 데이터들 중에서 하나의 데이터를 출력하기 위한 다중화기의 복잡도 또한 클 수 있기 때문이다.
다양한 실시예들에 따라, 도 7b의 데이터 허브(예를 들어, 제1 데이터 허브(220-1))와 데이터 전달부(230)간에 연결은 도 7a의 클라이언트와 컨트롤러(120)의 연결보다 간단할 수 있다. 예를 들어, 도 7a의 컨트롤러(120)는 클라이언트로부터 직접 클라이언트 데이터를 수신할 수 있고, 상기 클라이언트 데이터의 크기는 통신 시스템의 발전에 따라 증가할 수 있다. 즉, 도 7a의 컨트롤러(120)는 상기 증가된 크기의 클라이언트 데이터(예를 들어, 256 비트)를 전송하기 위한 전기적 배선을 필요로 하는 반면, 도 7b의 데이터 전달부(230)는 데이터 허브(220-1)로부터 규격화된 비트 수를 가지는 버스트 데이터를 수신할 수 있다. 예를 들어, 데이터 전달부(230)는 클라이언트 데이터의 크기가 증가하는 것과 관계 없이, 항상 128 비트의 버스트 데이터를 데이터 허브(220-1)로부터 수신할 수 있다. 따라서, 클라이언트 데이터 자체를 전송하기 위한 전기적 배선과 비교하면, 데이터 허브(220-1)와 데이터 전달부(230)간에 전기적 배선의 물리적 크기가 더 작을 수 있다.
도 8은 본 개시의 일 실시 예에 따른 다단 메모리를 포함하는 통신 기기들의 예를 도시한다.
도 8을 참조하면, AP(Access Point)(800), 가정용 기기(810), 가전(820), 및 엔터테인먼트 기기(830)는 본 개시의 실시 예들에 따른 다단 메모리(200)를 포함할 수 있다. 일부 실시예들에서, AP(Access Point)(800), 가정용 기기(810), 가전(820), 및 엔터테인먼트 기기(830)는 IoT(Internet of Things) 네트워크 시스템을 구성할 수 있다.
미 도시되었지만, 도 8에 도시된 통신 기기들은 예시일 뿐이며, 도 8에 도시되지 아니하였지만, 통신을 수행하기 위한 다른 기기들에도 본 개시의 예시적 실시예에 따른 통신 장치가 포함될 수 있는 점은 이해될 것이다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 제1 영역에 포함되는 클라이언트들을 포함하는 제1 클라이언트 그룹;
    상기 제1 영역과 상이한 제2 영역에 포함되는 클라이언트들을 포함하는 제2 클라이언트 그룹;
    상기 제1 클라이언트 그룹으로부터 수신한 데이터에 기반하여 제1 버스트 데이터 및 제1 컨트롤 패킷을 생성하는 제1 데이터 허브;
    상기 제2 클라이언트 그룹으로부터 수신한 데이터에 기반하여 제2 버스트 데이터 및 제2 컨트롤 패킷을 생성하는 제2 데이터 허브; 및
    상기 제1 데이터 허브 및 상기 제2 데이터 허브와 제어 프로토콜을 통해 연결되고, 버스트 데이터의 목적지 어드레스 정보를 포함하는 각각의 컨트롤 패킷에 기반하여, 각각의 버스트 데이터를 타겟 메모리에 저장하는 데이터 전달부를 포함하는 통신 장치.
  2. 제1항에 있어서,
    상기 제1 클라이언트 그룹에 포함되는 클라이언트들은, 제1 전원에 연결되고,
    상기 제2 클라이언트 그룹에 포함되는 클라이언트들은, 제2 전원에 연결되는 것을 특징으로 하는 통신 장치.
  3. 제1항에 있어서,
    상기 제1 클라이언트 그룹에 포함되는 클라이언트들 및 상기 제2 클라이언트 그룹에 포함되는 클라이언트들 각각은, 소정의 물리적 거리 이내에 위치하는 클라이언트들에 상응하는 것을 특징으로 하는 통신 장치.
  4. 제1항에 있어서,
    상기 제1 데이터 허브 및 상기 제2 데이터 허브 각각은,
    연결된 클라이언트들 각각으로부터 클라이언트 데이터를 수신하고, 임시로 저장하기 위한 버퍼 메모리들;
    상기 버퍼 메모리들 각각에 저장된 상기 클라이언트 데이터를 동일한 비트 수로 변환하기 위한 패킹부;
    상기 패킹부로부터 출력되는 데이터를 저장하는 뱅크 메모리; 및
    상기 뱅크 메모리 중 하나의 뱅크에 저장된 데이터에 기반하여 상기 버스트 데이터를 생성하는 버스트 생성기를 포함하는 것을 특징으로 하는 통신 장치.
  5. 제4항에 있어서,
    상기 데이터 전달부는,
    상기 제1 데이터 허브 및 상기 제2 데이터 허브에 상응하는 버퍼 메모리들;
    상기 버퍼 메모리들에 저장된 데이터들 중 하나의 데이터를 출력하기 위한 선택기; 및
    DMA(direct memory access) 컨트롤러를 포함하는 것을 특징으로 하는 통신 장치.
  6. 제1항에 있어서,
    상기 컨트롤 패킷은,
    하나의 클라이언트를 지시하는 클라이언트 ID(identification) 비트;
    상기 버스트 데이터가 저장될 상기 타겟 메모리 목적지 어드레스를 지시하는 버스트 오프셋 비트;
    상기 버스트 데이터에 상응하여 생성되는 인터럽트를 지시하는 버스트 ID 비트; 및
    리저브드(reserved) 비트를 포함하는 것을 특징으로 하는 통신 장치.
  7. 제1항에 있어서,
    상기 제어 프로토콜은,
    제어 신호, 데이터 신호, 인터럽트 신호 및 레디 신호를 포함하는 것을 특징으로 하는 통신 장치.
  8. 제7항에 있어서,
    상기 제어 신호는, 데이터 허브로부터 상기 데이터 전달부에게 전송되는 데이터의 유형을 지시하고,
    상기 데이터 신호는, 상기 데이터 허브로부터 상기 데이터 전달부에게 전송되는 상기 컨트롤 패킷 또는 상기 버스트 데이터를 포함하고,
    상기 인터럽트 신호는, 버스트 데이터의 전송의 종료를 지시하고,
    상기 레디 신호는, 데이터 전달부가 데이터를 수신 가능한지 여부를 지시하는 것을 특징으로 하는 통신 장치.
  9. 제8항에 있어서,
    상기 컨트롤 패킷은, 상기 레디 신호가 활성화되고, 및 상기 제어 신호가 제1 값을 지시하는 경우, 상기 데이터 허브로부터 상기 데이터 전달부에게 전송되고,
    상기 버스트 데이터는, 상기 레디 신호가 활성화되고, 상기 제어 신호가 제2 값을 지시하는 경우, 상기 데이터 허브로부터 상기 데이터 전달부에게 전송되는 것을 특징으로 하는 통신 장치.
  10. 제9항에 있어서,
    상기 버스트 데이터는,
    상기 컨트롤 패킷이 전송된 시점부터, 상기 인터럽트 신호가 활성화된 시점까지, 상기 데이터 허브로부터 상기 데이터 전달부에게 전송된 데이터들의 집합인 것을 특징으로 하는 통신 장치.
KR1020190040292A 2018-12-19 2019-04-05 복수의 클라이언트들을 포함하는 통신 장치 KR102656702B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/718,401 US11683270B2 (en) 2018-12-19 2019-12-18 Communication device including plurality of clients

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180165474 2018-12-19
KR20180165474 2018-12-19

Publications (2)

Publication Number Publication Date
KR20200076556A true KR20200076556A (ko) 2020-06-29
KR102656702B1 KR102656702B1 (ko) 2024-04-12

Family

ID=71401094

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190040292A KR102656702B1 (ko) 2018-12-19 2019-04-05 복수의 클라이언트들을 포함하는 통신 장치

Country Status (1)

Country Link
KR (1) KR102656702B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150083741A (ko) * 2014-01-10 2015-07-20 삼성전자주식회사 임베디드 멀티미디어 카드 및 이의 동작 방법
KR20160109733A (ko) * 2015-03-12 2016-09-21 삼성전자주식회사 다수의 클라이언트 데이터를 처리하는 저장 장치 및 방법
KR20180023543A (ko) * 2016-08-26 2018-03-07 삼성전자주식회사 시리얼 통신으로 메모리를 제공하기 위한 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150083741A (ko) * 2014-01-10 2015-07-20 삼성전자주식회사 임베디드 멀티미디어 카드 및 이의 동작 방법
KR20160109733A (ko) * 2015-03-12 2016-09-21 삼성전자주식회사 다수의 클라이언트 데이터를 처리하는 저장 장치 및 방법
KR20180023543A (ko) * 2016-08-26 2018-03-07 삼성전자주식회사 시리얼 통신으로 메모리를 제공하기 위한 장치 및 방법

Also Published As

Publication number Publication date
KR102656702B1 (ko) 2024-04-12

Similar Documents

Publication Publication Date Title
US11973697B2 (en) Composing diverse remote cores and FPGAs
US11966355B2 (en) Network adapter with a common queue for both networking and data manipulation work requests
JP4024875B2 (ja) 異なるデータ・レートで動作するネットワーク・ポートに関して、共用メモリへのアクセスを調停する方法および装置
CN113849452A (zh) 堆叠管芯网络接口控制器电路
US9124644B2 (en) Script-controlled egress packet modifier
CN108958644B (zh) 存储模块和包括其的存储系统
US8848726B1 (en) I/O data interface for packet processors
CN112543925A (zh) 用于使用专用低延迟链路的多个硬件加速器的统一地址空间
CN113612801B (zh) Epa网关设备和epa跨网通信的方法
US7130301B2 (en) Self-route expandable multi-memory packet switch with distributed scheduling means
Ferozpuri et al. Hardware api for post-quantum public key cryptosystems
KR102656702B1 (ko) 복수의 클라이언트들을 포함하는 통신 장치
US20120044941A1 (en) Data transmission system, data transmission method, and data transmission device
CN105871656B (zh) 一种测试装置
JP2017027373A (ja) 記憶制御装置、情報処理装置、および制御方法
US20020146034A1 (en) Self-route multi-memory expandable packet switch with overflow processing means
US20040091122A1 (en) Communications system
CN106550397B (zh) 用于传输无线数据的方法、装置及系统
US11683270B2 (en) Communication device including plurality of clients
US20020089981A1 (en) Expandable self-route multi-memory packet switch with a configurable multicast mechanism
US20140337456A1 (en) Systems and methods for enabling rdma between diverse endpoints
KR100966925B1 (ko) 패킷 신호 프로세싱 아키텍쳐
CN217770112U (zh) Epa网关设备和epa跨网通信系统
US20200218671A1 (en) Semiconductor device, semiconductor system, and system
WO2018217378A1 (en) Communication between field programmable gate arrays

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