KR20180023543A - Apparatus and method for providing memory via serial communication - Google Patents

Apparatus and method for providing memory via serial communication Download PDF

Info

Publication number
KR20180023543A
KR20180023543A KR1020160109076A KR20160109076A KR20180023543A KR 20180023543 A KR20180023543 A KR 20180023543A KR 1020160109076 A KR1020160109076 A KR 1020160109076A KR 20160109076 A KR20160109076 A KR 20160109076A KR 20180023543 A KR20180023543 A KR 20180023543A
Authority
KR
South Korea
Prior art keywords
serial
cpu
memory
signal
memory module
Prior art date
Application number
KR1020160109076A
Other languages
Korean (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 KR1020160109076A priority Critical patent/KR20180023543A/en
Publication of KR20180023543A publication Critical patent/KR20180023543A/en

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

Abstract

An electronic device according to various embodiments of the present invention includes a central processing unit (CPU), a plurality of memory modules, and a serial hub connected to at least one line for performing serial communication with the CPU and each of the plurality of memory modules. The CPU is configured to send a signal to the serial hub. The serial hub can be configured to determine a first memory module for the CPU among the plurality of memory modules based on the signal.

Description

시리얼 통신으로 메모리를 제공하기 위한 장치 및 방법{APPARATUS AND METHOD FOR PROVIDING MEMORY VIA SERIAL COMMUNICATION}[0001] APPARATUS AND METHOD FOR PROVIDING MEMORY VIA SERIAL COMMUNICATION [0002]

본 개시(disclosure)는 일반적으로 데이터 통신에 관한 것으로, 보다 구체적으로, 시리얼 통신(serial communication)을 통하여, CPU(central processing unit)에게 메모리(memory)를 제공하기 위한 장치 및 방법에 관한 것이다. This disclosure relates generally to data communication, and more specifically, to an apparatus and method for providing memory to a central processing unit (CPU) through serial communication.

종래의 CPU(central processing unit)와 메모리 모듈(memory module)간의 인터페이스는 병렬 버스 인터페이스(bus interface)이다. 이러한 병렬 버스 인터페이스 구조에서, CPU와 메모리 모듈 사이에서 전송되는 데이터의 속도는 CPU와 메모리 모듈 간의 물리적인 거리에 따라 결정된다. 따라서, 병렬 버스 인터페이스에서 고속의 데이터 전송을 수행하는 경우, CPU의 위치와 메모리 모듈의 위치는 설계 상의 한계를 가진다.Conventionally, the interface between a central processing unit (CPU) and a memory module is a parallel bus interface. In such a parallel bus interface structure, the speed of data transferred between the CPU and the memory module is determined by the physical distance between the CPU and the memory module. Therefore, when performing a high-speed data transfer in the parallel bus interface, the CPU position and the memory module position have design limitations.

한편, 전자 장치에 메모리 모듈을 추가하려는 경우, 추가되는 메모리 모듈은 기존의 메모리 모듈보다 CPU와의 거리가 증가한다. 즉, 추가되는 메모리 모듈은 기대되는 성능을 제대로 발휘하지 못한다. On the other hand, when a memory module is added to an electronic device, the added memory module increases the distance to the CPU from the existing memory module. That is, the added memory module does not perform as expected.

한편, 고속의 데이터 전송을 수행하는 경우, CPU와 메모리 모듈은 전자 장치 내의 다른 디바이스보다 많은 열을 발생시킨다. 고속으로 데이터를 전송하기 위해서는 CPU와 메모리 모듈 사이의 거리가 상대적으로 짧아야 하므로, 상대적으로 좁은 공간에서 발열이 집중될 수 있다. 이러한 발열은 전자 장치 내에서 CPU 및 메모리 모듈에 대한 소비 전력을 증가시킬 수 있다. On the other hand, when performing high-speed data transfer, the CPU and the memory module generate more heat than other devices in the electronic device. In order to transfer data at high speed, the distance between the CPU and the memory module must be relatively short, so that heat can be concentrated in a relatively narrow space. This heat can increase the power consumption of the CPU and the memory module in the electronic device.

상술한 바와 같은 논의를 바탕으로, 본 개시(disclosure)는 효율적으로 제공하는 장치 및 방법을 제공한다.Based on the above discussion, the disclosure provides an apparatus and method for efficiently providing.

또한, 본 개시는 CPU(central processing unit) 및 메모리 모듈(memory module)과 시리얼 링크(serial link)로 연결되는 장치 및 방법을 제공한다.The present disclosure also provides an apparatus and method for connecting to a central processing unit (CPU) and a memory module via a serial link.

본 개시의 다양한 실시 예들에 따르면, 전자 장치는 CPU(central processing unit), 복수의 메모리 모듈들(memory modules), 및 상기 CPU 및 상기 복수의 메모리 모듈들 각각과 시리얼 통신을 수행하기 위한 적어도 하나의 라인으로 연결되는 시리얼 허브(serial hub)를 포함할 수 있다. 상기 CPU는 신호를 상기 시리얼 허브에게 송신하도록 구성되고, 상기 시리얼 허브는, 상기 신호에 기반하여 상기 복수의 메모리 모듈들 중에서 상기 CPU를 위한 제1 메모리 모듈을 결정하도록 구성될 수 있다.According to various embodiments of the present disclosure, an electronic device includes a central processing unit (CPU), a plurality of memory modules, and at least one memory module for performing serial communication with the CPU and each of the plurality of memory modules And a serial hub connected to the line. The CPU is configured to send a signal to the serial hub and the serial hub can be configured to determine a first memory module for the CPU from among the plurality of memory modules based on the signal.

본 개시의 다양한 실시 예들에 따르면, 전자 장치의 동작 방법은, 상기 전자 장치의 시리얼 허브가 상기 전자 장치의 CPU로부터 신호를 수신하는 동작과, 상기 시리얼 허브가 상기 신호에 기반하여, 상기 전자 장치의 복수의 메모리 모듈들 중에서, 상기 CPU를 위한 제1 메모리 모듈을 결정하는 동작을 포함할 수 있다. 상기 시리얼 허브는, 상기 CPU 및 상기 복수의 메모리 모듈들 각각과 시리얼 통신을 수행하기 위한 적어도 하나의 라인으로 연결될 수 있다.According to various embodiments of the present disclosure, a method of operating an electronic device includes the steps of: receiving a signal from a CPU of the electronic device, the serial hub of the electronic device; Determining a first memory module for the CPU from among the plurality of memory modules. The serial hub may be connected to at least one line for performing serial communication with the CPU and each of the plurality of memory modules.

본 개시의 다양한 실시 예들에 따르면, 전자 장치는 CPU를 포함하는 제1 보드(board)와, 제1 메모리 모듈, 제2 메모리 모듈, 및 시리얼 릴레이(serial relay)를 포함하는 제2 보드를 포함할 수 있다. 상기 CPU는 상기 시리얼 릴레이에게 신호를 송신하도록 구성될 수 있다. 상기 시리얼 릴레이는 상기 신호를 증폭시키고, 상기 증폭된 신호를 상기 제1 메모리 모듈에게 전송하도록 구성될 수 있다. 상기 제1 메모리 모듈은 상기 증폭된 신호를 상기 제2 메모리 모듈에게 전송하도록 구성될 수 있다. 상기 시리얼 릴레이는 시리얼 통신을 수행하기 위한 적어도 하나의 라인으로, 상기 CPU 및 상기 제1 메모리 모듈과 연결되고, 상기 제2 메모리 모듈은 시리얼 통신을 수행하기 위한 적어도 하나의 라인으로, 상기 제1 메모리 모듈과 연결될 수 있다. According to various embodiments of the present disclosure, an electronic device includes a first board including a CPU, a second board including a first memory module, a second memory module, and a serial relay . The CPU may be configured to send a signal to the serial relay. The serial relay may be configured to amplify the signal and to transmit the amplified signal to the first memory module. The first memory module may be configured to transmit the amplified signal to the second memory module. Wherein the serial relay is connected to the CPU and the first memory module as at least one line for performing serial communication and the second memory module is at least one line for performing serial communication, Module.

본 개시의 다양한 실시 예들에 따른 장치 및 방법은, CPU(central processing unit) 및 메모리 모듈(memory module)을 시리얼 링크로 연결시킴으로써, 설계 상의 제약을 해소하고, 전자 장치에 추가되는 CPU 및 메모리 모듈이 효율적으로 동작하도록 할 수 있다.The apparatus and method according to various embodiments of the present disclosure may be implemented by connecting a central processing unit (CPU) and a memory module via a serial link, thereby eliminating design constraints, It is possible to operate efficiently.

본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다. The effects obtainable from the present disclosure are not limited to the effects mentioned above, and other effects not mentioned can be clearly understood by those skilled in the art from the description below will be.

도 1은 본 개시의 다양한 실시 예들에 따른 전자 장치의 블록도를 도시한다.
도 2는 본 개시의 다양한 실시 예들에 따른 2개의 CPU(central processing unit)를 포함하는 전자 장치의 블록도를 도시한다.
도 3은 본 개시의 다양한 실시 예들에 따른 전자 장치의 메모리 쉐어링(memory sharing)의 예를 도시한다.
도 4는 본 개시의 다양한 실시 예들에 따른 전자 장치의 메모리/이더넷 스위칭(memory/ethernet switching)의 예를 도시한다.
도 5는 본 개시의 다양한 실시 예들에 따른 시리얼 허브(serial hub)와 메모리 모듈의 신호 교환의 예를 도시한다.
도 6은 본 개시의 다양한 실시 예들에 따른 시리얼 허브의 기능적 구성의 예를 도시한다.
도 7은 본 개시의 다양한 실시 예들에 따른 전자 장치의 읽기 동작 또는 쓰기 동작의 예를 도시한다.
도 8은 메모리/이더넷 스위칭을 위한 계층 구조의 예를 도시한다.
도 9는 본 개시의 다양한 실시 예들에 따른 전자 장치의 흐름을 도시한다.
도 10은 본 개시의 다양한 실시 예들에 따른 전자 장치의 메모리 쉐어링의 흐름을 도시한다.
도 11은 본 개시의 다양한 실시 예들에 따른 전자 장치의 이더넷 통신의 흐름을 도시한다.
도 12는 시리얼 릴레이(serial relay)와 타겟 장치(target device)의 연결의 예를 도시한다.
도 13은 시리얼 릴레이와 복수의 타겟 장치들의 연결의 예를 도시한다.
도 14는 본 개시의 다양한 실시 예들에 따른 시리얼 릴레이의 실시 예들을 도시한다.
Figure 1 shows a block diagram of an electronic device according to various embodiments of the present disclosure.
Figure 2 shows a block diagram of an electronic device comprising two central processing units (CPUs) in accordance with various embodiments of the present disclosure.
FIG. 3 illustrates an example of memory sharing of an electronic device according to various embodiments of the present disclosure.
Figure 4 illustrates an example of memory / ethernet switching of an electronic device according to various embodiments of the present disclosure.
5 illustrates an example of signal exchange between a memory module and a serial hub in accordance with various embodiments of the present disclosure.
Figure 6 illustrates an example of the functional configuration of a serial hub in accordance with various embodiments of the present disclosure.
FIG. 7 illustrates an example of a read operation or a write operation of an electronic device according to various embodiments of the present disclosure.
Figure 8 shows an example of a hierarchical structure for memory / Ethernet switching.
9 shows a flow of an electronic device according to various embodiments of the present disclosure.
10 illustrates a flow of memory sharing of an electronic device in accordance with various embodiments of the present disclosure.
11 illustrates the flow of Ethernet communication of an electronic device according to various embodiments of the present disclosure.
12 shows an example of a connection between a serial relay and a target device.
13 shows an example of the connection of a serial relay and a plurality of target devices.
14 illustrates embodiments of a serial relay in accordance with various embodiments of the present disclosure.

본 개시에서 사용되는 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 개시에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 개시에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 개시에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 개시에서 정의된 용어일지라도 본 개시의 실시 예들을 배제하도록 해석될 수 없다. The terms used in this disclosure are used only to describe certain embodiments and may not be intended to limit the scope of other embodiments. The singular expressions may include plural expressions unless the context clearly dictates otherwise. Terms used herein, including technical or scientific terms, may have the same meaning as commonly understood by one of ordinary skill in the art. The general predefined terms used in this disclosure may be interpreted as having the same or similar meaning as the contextual meanings of the related art and, unless explicitly defined in the present disclosure, include ideally or in an excessively formal sense . In some cases, the terms defined in this disclosure can not be construed to exclude embodiments of the present disclosure.

이하에서 설명되는 본 개시의 다양한 실시 예들에서는 하드웨어적인 접근 방법을 예시로서 설명한다. 하지만, 본 개시의 다양한 실시 예들에서는 하드웨어와 소프트웨어를 모두 사용하는 기술을 포함하고 있으므로, 본 개시의 다양한 실시 예들이 소프트웨어 기반의 접근 방법을 제외하는 것은 아니다.In the various embodiments of the present disclosure described below, a hardware approach is illustrated by way of example. However, the various embodiments of the present disclosure do not exclude a software-based approach, since various embodiments of the present disclosure include techniques that use both hardware and software.

이하, 본 문서의 다양한 실시 예들이 첨부된 도면을 참조하여 기재된다. 실시 예 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. Hereinafter, various embodiments of the present document will be described with reference to the accompanying drawings. It is to be understood that the embodiments and terminologies used herein are not intended to limit the invention to the particular embodiments described, but to include various modifications, equivalents, and / or alternatives of the embodiments. In connection with the description of the drawings, like reference numerals may be used for similar components. The singular expressions may include plural expressions unless the context clearly dictates otherwise.

본 문서에서, "A 또는 B" 또는 "A 및/또는 B 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1," "제 2," "첫째," 또는 "둘째,"등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다.In this document, the expressions "A or B" or "at least one of A and / or B" and the like may include all possible combinations of the items listed together. Expressions such as " first, "" second," " first, "or" second, " But is not limited to those components. When it is mentioned that some (e.g., first) component is "(functionally or communicatively) connected" or "connected" to another (second) component, May be connected directly to the component, or may be connected through another component (e.g., a third component).

본 문서에서, "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, 하드웨어적 또는 소프트웨어적으로 "~에 적합한," "~하는 능력을 가지는," "~하도록 변경된," "~하도록 만들어진," "~를 할 수 있는," 또는 "~하도록 설계된"과 상호 호환적으로(interchangeably) 사용될 수 있다. 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(예: CPU(central processing unit) 또는 application processor)를 의미할 수 있다. In this document, the term " configured to (or configured) to "as used herein is intended to encompass all types of hardware, software, , "" Made to "," can do ", or" designed to ". In some situations, the expression "a device configured to" may mean that the device can "do " with other devices or components. For example, a processor configured (or configured) to perform the phrases "A, B, and C" may be implemented by executing one or more software programs stored in a memory device or a dedicated processor (e.g., an embedded processor) , A general purpose processor (e.g., a central processing unit (CPU) or an application processor) capable of performing the corresponding operations.

본 문서의 다양한 실시 예들에 따른 전자 장치는 CPU와 메모리를 포함하는 장치일 수 있다. 예를 들면, 스마트폰, 태블릿 PC, 이동 전화기, 영상 전화기, 전자책 리더기, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 워크스테이션, 서버, PDA, PMP(portable multimedia player), MP3 플레이어, 의료기기, 카메라, 기지국(base station), LTE(long term evolution)를 지원하는 기지국(eNodeB, eNB) 또는 웨어러블 장치 중 적어도 하나를 포함할 수 있다. 웨어러블 장치는 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형(예: 전자 의복), 신체 부착형(예: 스킨 패드 또는 문신), 또는 생체 이식형 회로 중 적어도 하나를 포함할 수 있다. 어떤 실시 예들에서, 전자 장치는, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스(set-top box), 홈 오토매이션 컨트롤 패널, 보안 컨트롤 패널, 미디어 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 게임 콘솔(예: XboxTM, PlayStationTM), 전자 사전, 전자 키, 캠코더, 또는 전자 액자 중 적어도 하나를 포함할 수 있다.An electronic device according to various embodiments of the present document may be an apparatus including a CPU and a memory. Portable multimedia player (PMP), MP3 player, medical device, camera, mobile phone, mobile phone, video phone, electronic book reader, desktop PC, laptop PC, netbook computer, workstation, server, PDA , A base station (BS), a base station (eNodeB, eNB) supporting long term evolution (LTE), or a wearable device. Wearable devices may be of the type of accessories (eg, watches, rings, bracelets, braces, necklaces, glasses, contact lenses or head-mounted-devices (HMD) (E.g., a skin-pads or tattoo), or a bio-implantable circuit. In some embodiments, the electronic device may be, for example, a television, a digital video disk (Such as Samsung HomeSync TM , Apple TV TM , and Samsung Electronics), refrigerator, air conditioner, vacuum cleaner, oven, microwave oven, washing machine, air cleaner, set- top box, home automation control panel, Or Google TV ), a game console (eg, Xbox , PlayStation ), an electronic dictionary, an electronic key, a camcorder, or an electronic frame.

다른 실시 예에서, 전자 장치는, 각종 의료기기(예: 각종 휴대용 의료측정기기(혈당 측정기, 심박 측정기, 혈압 측정기, 또는 체온 측정기 등), MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 또는 초음파기 등), 네비게이션 장치, 위성 항법 시스템(GNSS(global navigation satellite system)), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트 장치, 선박용 전자 장비(예: 선박용 항법 장치, 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛(head unit), 산업용 또는 가정용 로봇, 드론(drone), 금융 기관의 ATM, 상점의 POS(point of sales), 또는 사물 인터넷 장치 (예: 전구, 각종 센서, 스프링클러 장치, 화재 경보기, 온도조절기, 가로등, 토스터, 운동기구, 온수탱크, 히터, 보일러 등) 중 적어도 하나를 포함할 수 있다. 어떤 실시 예에 따르면, 전자 장치는 가구, 건물/구조물 또는 자동차의 일부, 전자 보드(electronic board), 전자 사인 수신 장치(electronic signature receiving device), 프로젝터, 또는 각종 계측 기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 다양한 실시 예에서, 전자 장치는 플렉서블하거나, 또는 전술한 다양한 장치들 중 둘 이상의 조합일 수 있다. 본 문서의 실시 예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다. 본 문서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다. In an alternative embodiment, the electronic device may be any of a variety of medical devices (e.g., various portable medical measurement devices such as a blood glucose meter, a heart rate meter, a blood pressure meter, or a body temperature meter), magnetic resonance angiography (MRA) A navigation system, a global navigation satellite system (GNSS), an event data recorder (EDR), a flight data recorder (FDR), an automobile infotainment device, a marine electronic equipment (For example, marine navigation systems, gyro compasses, etc.), avionics, security devices, head units for vehicles, industrial or domestic robots, drones, ATMs at financial institutions, of at least one of the following types of devices: a light bulb, a fire detector, a fire alarm, a thermostat, a streetlight, a toaster, a fitness device, a hot water tank, a heater, a boiler, . According to some embodiments, the electronic device may be a piece of furniture, a building / structure or part of an automobile, an electronic board, an electronic signature receiving device, a projector, or various measuring devices (e.g., Gas, or radio wave measuring instruments, etc.). In various embodiments, the electronic device is flexible or may be a combination of two or more of the various devices described above. The electronic device according to the embodiment of the present document is not limited to the above-described devices. In this document, the term user may refer to a person using an electronic device or a device using an electronic device (e.g., an artificial intelligence electronic device).

본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있으며, 예를 들면, 어떤 동작들을 수행하는, 알려졌거나 앞으로 개발될, ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays), 또는 프로그램 가능 논리 장치를 포함할 수 있다. 다양한 실시 예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는 프로그램 모듈의 형태로 컴퓨터로 판독 가능한 저장 매체(예: 메모리)에 저장된 명령어로 구현될 수 있다. 상기 명령어가 CPU에 의해 실행될 경우, 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체(예: 자기테이프), 광기록 매체(예: CD-ROM, DVD, 자기-광 매체 (예: 플롭티컬 디스크), 내장 메모리 등을 포함할 수 있다. 명령어는 컴파일러에 의해 만들어지는 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 다양한 실시 예에 따른 모듈 또는 프로그램 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 다른 구성요소를 더 포함할 수 있다. 다양한 실시 예에 따른, 모듈, 프로그램 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다. As used herein, the term "module " includes units comprised of hardware, software, or firmware and may be used interchangeably with terms such as, for example, logic, logic blocks, components, or circuits. A "module" may be an integrally constructed component or a minimum unit or part thereof that performs one or more functions. "Module" may be implemented either mechanically or electronically, for example, by application-specific integrated circuit (ASIC) chips, field-programmable gate arrays (FPGAs) And may include programmable logic devices. At least some of the devices (e.g., modules or functions thereof) or methods (e.g., operations) according to various embodiments may be implemented with instructions stored in a computer-readable storage medium (e.g., memory) . When the instruction is executed by the CPU, the processor may perform a function corresponding to the instruction. The computer-readable recording medium may be a hard disk, a floppy disk, a magnetic medium such as a magnetic tape, an optical recording medium such as a CD-ROM, a DVD, a magnetic-optical medium such as a floppy disk, The instructions may include code that is generated by the compiler or code that may be executed by the interpreter. Modules or program modules according to various embodiments may include at least one or more of the components described above Operations that are performed by modules, program modules, or other components, in accordance with various embodiments, may be performed in a sequential, parallel, iterative, or heuristic manner, or at least in part Some operations may be executed in a different order, omitted, or other operations may be added.

도 1은 본 개시의 다양한 실시 예들에 따른 전자 장치의 블록도를 도시한다. 전자 장치는 전자 장치 100일 수 있다. 이하 사용되는 '...부', '...기' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어, 또는, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.Figure 1 shows a block diagram of an electronic device according to various embodiments of the present disclosure. The electronic device may be electronic device 100. Hereinafter, terms such as "part" and "group" refer to a unit for processing at least one function or operation, which may be implemented by hardware, software, or a combination of hardware and software have.

이하 도 1에서는 다양한 실시 예들을 설명하기 위하여 필요한 용어들에 대하여 정의한다. 이하 설명에서 사용되는 제어 정보를 지칭하는 용어, 상태 변화를 지칭하는 용어(예: 설정(configuration), 동작(operation)), 신호를 지칭하는 용어(예: 요청(request), 호출(call)), 망 객체(network entity)들을 지칭하는 용어, 메시지들을 지칭하는 용어(예: 명령, 패킷, 신호), 장치의 구성 요소(예: 모듈, ~부)를 지칭하는 용어 등은 설명의 편의를 위해 예시된 것이다. 따라서, 본 발명이 후술되는 용어들에 한정되는 것은 아니며, 동등한 기술적 의미를 가지는 다른 용어가 사용될 수 있다.FIG. 1 defines terms necessary to describe various embodiments. (E.g., a configuration, an operation), a term (e.g., a request, a call) that refers to a signal, a term that refers to control information used in the following description, , Terms referring to network entities, terms referring to messages (e.g., commands, packets, signals), and terms referring to components (e.g., modules, . Accordingly, the present invention is not limited to the following terms, and other terms having equivalent technical meanings can be used.

다양한 실시 예들에 따른 상기 전자 장치 100은, CPU(central processing unit)와 메모리(memory)를 포함하는 장치일 수 있다. 예를 들면, 상기 전자 장치 100은 데스크탑(desktop) 컴퓨터(computer)일 수 있다. 다른 예를 들면, 상기 전자 장치 100은 서버(server)일 수 있다. 또 다른 예를 들면, 상기 전자 장치 100은 랩탑(laptop) 컴퓨터일 수 있다. 또 다른 예를 들면, 상기 전자 장치 100은 셋톱 박스일 수도 있다. 또 다른 예를 들면, 상기 전자 장치 100은 휴대용 장치(portable device)(예: 스마트 폰, 웨어러블 장치)일 수 있다.The electronic device 100 according to various embodiments may be a device including a central processing unit (CPU) and a memory. For example, the electronic device 100 may be a desktop computer. As another example, the electronic device 100 may be a server. As another example, the electronic device 100 may be a laptop computer. As another example, the electronic device 100 may be a set-top box. As another example, the electronic device 100 may be a portable device (e.g., a smart phone, a wearable device).

도 1을 참고하면, 다양한 실시 예들에 따른 상기 전자 장치 100은 CPU 110, 시리얼 허브(serial hub) 120, 및 메모리 모듈(memory module) 130, 메모리 모듈140, 및 모듈 150을 포함할 수 있다. 상기 시리얼 허브 120은 인가되는 설정 신호(configuration signal)에 따라 다양한 조합들의 경로를 제공할 수 있는 구조를 가질 수 있다. 상기 시리얼 허브 120은 설정 가능한 시리얼 허브(configurable serial hub)로 지칭될 수 있다. 상기 CPU 110, 상기 메모리 모듈 130, 상기 메모리 모듈 140, 및 모듈 150은 상기 시리얼 허브 120과 동작적으로 결합될 수 있다. Referring to FIG. 1, the electronic device 100 according to various embodiments may include a CPU 110, a serial hub 120, and a memory module 130, a memory module 140, and a module 150. The serial hub 120 may have a structure capable of providing various combinations of paths according to an applied configuration signal. The serial hub 120 may be referred to as a configurable serial hub. The CPU 110, the memory module 130, the memory module 140, and the module 150 may be operatively coupled to the serial hub 120.

상기 CPU 110은 다양한 용어로 지칭될 수 있다. 예를 들면, 상기 CPU 110은 중앙 처리 장치로 지칭될 수 있다. 다른 예를 들면, 상기 CPU 110은 프로세서(processor)로 지칭될 수 있다. 또 다른 예를 들면, 상기 CPU 110은 마이크로프로세서(micro processor unit, MPU)로 지칭될 수도 있다. The CPU 110 may be referred to in various terms. For example, the CPU 110 may be referred to as a central processing unit. As another example, the CPU 110 may be referred to as a processor. As another example, the CPU 110 may be referred to as a micro processor unit (MPU).

상기 CPU 110은 적어도 하나의 코어(core)를 포함할 수 있다. 상기 CPU 110이 하나의 코어를 포함하는 경우, 상기 CPU 110은 싱클코어로 지칭될 수 있다. 상기 CPU 110이 2개, 4개, 또는 8개의 코어를 포함하는 경우, 각각 듀얼코어, 쿼드코어, 또는 옥타코어로 지칭될 수 있다. 상기 적어도 하나의 코어는 상기 CPU 110안에서 다양한 연산을 수행할 수 있다. The CPU 110 may include at least one core. When the CPU 110 includes one core, the CPU 110 may be referred to as a sink core. If the CPU 110 comprises two, four, or eight cores, it may be referred to as a dual core, a quad core, or an octa core, respectively. The at least one core may perform various operations in the CPU 110.

상기 CPU 110은 레지스터(register), 산술논리연산부(arithmetic logic unit), 제어부(control unit), CPU 내부 버스를 포함할 수 있다. 상기 레지스터는 상기 CPU 110에서 처리할 명령어를 저장할 수 있다. 상기 산술논리연산부는 비교, 판단, 연산을 수행할 수 있다. 상기 제어부는 상기 CPU 110에서의 명령어의 해석과 올바른 실행을 위하여 내부적으로 제어할 수 있다. 상기 CPU 내부버스는 상기 레지스터, 산술논리연산부, 제어부를 연결할 수 있다.The CPU 110 may include a register, an arithmetic logic unit, a control unit, and a CPU internal bus. The register may store a command to be processed by the CPU 110. The arithmetic logic unit may perform comparison, judgment, and calculation. The control unit can internally control the CPU 110 in order to interpret and properly execute commands. The CPU internal bus can connect the register, the arithmetic logic operation unit, and the control unit.

상기 CPU 110은 메모리 컨트롤러(memory controller)를 포함할 수 있다. 상기 메모리 컨트롤러는 메모리 모듈에서의 데이터를 관리하는 역할을 수행할 수 있다. 예를 들면, 상기 메모리 컨트롤러는 메모리 모듈의 동작(예: 프로그램(program) 실행, 읽기(read) 동작, 쓰기(write) 동작, 삭제(erase) 동작)을 제어하기 위한 명령을 생성할 수 있다. 다른 예를 들면, 상기 메모리 컨트롤러는 상기 메모리 모듈의 동작을 제어하기 위한 명령을 상기 메모리 모듈에게 출력할 수 있다. 상기 메모리 컨트롤러와 상기 메모리 모듈은 메모리 인터페이스(memory interface)를 통하여 데이터를 송수신할 수 있다. 상기 메모리 인터페이스는 상기 메모리 컨트롤러와 상기 메모리 모듈 사이에서 데이터의 교환을 제공할 수 있다. 이하의 설명에서는, 상기 CPU 110이 메모리 컨트롤러를 포함하는 것으로 서술하였으나, 다양한 실시 예들은 이러한 기재에 한정되지 않는다. 즉, 메모리 컨트롤러는 상기 CPU 110와 별도의 하드웨어로 구성될 수도 있다.The CPU 110 may include a memory controller. The memory controller may perform a function of managing data in the memory module. For example, the memory controller may generate instructions to control operations of the memory module (e.g., program execution, read operation, write operation, erase operation). As another example, the memory controller may output a command to the memory module to control the operation of the memory module. The memory controller and the memory module may transmit and receive data through a memory interface. The memory interface may provide for the exchange of data between the memory controller and the memory module. In the following description, the CPU 110 is described as including a memory controller, but various embodiments are not limited to these descriptions. That is, the memory controller may be formed of hardware separate from the CPU 110.

메모리 모듈 130은 메모리를 제공하는 하드웨어일 수 있다. 상기 메모리 모듈 130은 전자 장치에서 구동되는 어플리케이션(application)에 할당하기 위한 메모리를 제공하는 하드웨어일 수 있다. 메모리 모듈 130은 다양한 용어로 지칭될 수 있다. 예를 들면, 메모리 모듈 130은 메모리 장치(memory device)로 지칭될 수 있다. 다른 예를 들면, 상기 메모리 모듈 130은 휘발성 메모리(volatile memory)로 지칭될 수 있다. 또 다른 예를 들면, 상기 메모리 모듈 130은 램(random access memory, RAM)으로 지칭될 수 있다. 상기 램은 DRAM(dynamic RAM), SRAM(static RAM), SDRAM(synchronous DRAM)을 포함하는 용어일 수 있다. 이하의 설명에서는 상기 메모리 모듈 130이 비휘발성 메모리(non-volatile memory)인 것으로 서술하였으나, 이러한 기재에 한정되지 않는다. 메모리 모듈 130은 비휘발성 메모리(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable PROM), EEPROM(electrically erasable PROM), mask ROM, flash ROM, 플래시 메모리, 하드 드라이브, 또는 솔리드 스테이트 드라이브 (solid state drive, SSD)) 또는 외장 메모리(예: 플래시 드라이브(flash drive), 예를 들면, CF(compact flash), SD(secure digital), Micro-SD, Mini-SD, xD(extreme digital), MMC(multi-media card) 또는 메모리 스틱 등) 일 수도 있다.The memory module 130 may be hardware that provides memory. The memory module 130 may be hardware that provides a memory for allocating to an application running on an electronic device. Memory module 130 may be referred to in various terms. For example, memory module 130 may be referred to as a memory device. In another example, the memory module 130 may be referred to as a volatile memory. As another example, the memory module 130 may be referred to as a random access memory (RAM). The RAM may be a term including a dynamic RAM (DRAM), a static RAM (SRAM), and a synchronous DRAM (SDRAM). In the following description, the memory module 130 is described as being a non-volatile memory, but the invention is not limited to this description. The memory module 130 may be implemented as a non-volatile memory (e.g., one time programmable ROM (OTPROM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), mask ROM, flash ROM, Such as a solid state drive (SSD)) or an external memory (e.g., a flash drive such as CF (compact flash), secure digital (SD), Micro-SD, Mini- extreme digital, multi-media card (MMC), memory stick, etc.).

상기 메모리 모듈 130은 전자 장치 100의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 예를 들면, 상기 메모리 모듈 130은 상기 CPU 110에서 실행하기 위한 명령어, 상기 CPU 110에서 요청하는 데이터를, 상기 CPU 110으로부터 전달받은 데이터를 저장할 수 있다. 상기 메모리 모듈 130은 상기 메모리 컨트롤러가 관리하는 데이터를 저장할 수 있다. The memory module 130 may store instructions or data related to at least one other component of the electronic device 100. [ For example, the memory module 130 may store data received from the CPU 110 on a command to be executed by the CPU 110 and data requested by the CPU 110. The memory module 130 may store data managed by the memory controller.

시리얼 허브 120은 메모리 모듈 130과 연결될 수 있다. 상기 시리얼 허브 120은 상기 메모리 모듈 130과 적어도 하나의 시리얼 라인(serial line) 160으로 연결될 수 있다. 상기 시리얼 허브 120은 상기 적어도 하나의 시리얼 라인 160을 통하여 상기 메모리 모듈 130과 시리얼 통신(serial communication)을 수행할 수 있다. 상기 시리얼 통신에 대한 링크는 시리얼 링크(serial link)로 지칭될 수 있다. 상기 시리얼 허브 120은, 상기 시리얼 통신을 위하여, 시리얼 프로토콜(serial protocol)로 구현되는 메모리 인터페이스로 구성될 수 있다.The serial hub 120 may be connected to the memory module 130. The serial hub 120 may be connected to the memory module 130 via at least one serial line 160. The serial hub 120 may perform serial communication with the memory module 130 through the at least one serial line 160. The link to the serial communication may be referred to as a serial link. The serial hub 120 may be a memory interface implemented as a serial protocol for the serial communication.

일부 실시 예들에서, 상기 적어도 하나의 시리얼 라인 160은 송신 시리얼 라인(transmit serial line) 161, 수신 시리얼 라인(receive serial line) 163, 접지 시리얼 라인(ground serial line) 165를 포함할 수 있다. 상기 송신 시리얼 라인 161은 상기 시리얼 허브 120에서 상기 메모리 모듈 130으로 신호가 송신되기 위한 라인일 수 있다. 상기 수신 시리얼 라인 163은 상기 메모리 모듈 130에서 상기 시리얼 허브 120에게 데이터가 전송되기 위한 라인일 수 있다. 상기 접지 시리얼 라인 165는 상기 시리얼 허브 120 및 상기 메모리 모듈 130의 전압 레벨의 기준을 일치시키기 위한 라인일 수 있다. In some embodiments, the at least one serial line 160 may include a transmit serial line 161, a receive serial line 163, and a ground serial line 165. The transmission serial line 161 may be a line for transmitting a signal from the serial hub 120 to the memory module 130. The reception serial line 163 may be a line through which data is transmitted from the memory module 130 to the serial hub 120. The grounding serial line 165 may be a line for matching the reference of the voltage level of the serial hub 120 and the memory module 130.

상기 시리얼 통신은 다수의 비트들을 다수의 라인(line)들을 통하여 동시에 전송하는 병렬(parallel) 방식과 달리, 하나의 라인을 통하여 다수의 비트들을 하나씩, 순차적으로 전송하는 방식이다. 상기 하나의 라인은 시리얼 라인으로 지칭될 수 있다. 상기 전자 장치 100은 상기 CPU 110 및 상기 메모리 모듈 130를 연결하는 상기 적어도 하나의 시리얼 라인 130을 통하여, 라인들 간의 누화(crosstalk)의 발생을 감소시킬 수 있다. 또한, 상기 전자 장치 100은, 상기 시리얼 통신을 통하여 비트들의 동기(synchronization)에 대한 문제를 해소할 수 있다.The serial communication is a method of sequentially transmitting a plurality of bits through one line, unlike a parallel method of simultaneously transmitting a plurality of bits through a plurality of lines. The one line may be referred to as a serial line. The electronic device 100 may reduce the occurrence of crosstalk between lines through the at least one serial line 130 connecting the CPU 110 and the memory module 130. [ Also, the electronic device 100 can solve the problem of synchronization of bits through the serial communication.

상기 시리얼 허브 120은 상기 메모리 모듈 140과 연결될 수도 있다. 상기 메모리 모듈 140은 상기 메모리 모듈 130과 동일한 기능을 수행하는 메모리 모듈일 수 있다. 상기 시리얼 허브 120 및 상기 메모리 모듈 140은 적어도 하나의 시리얼 라인을 통해 연결될 수 있다. 상기 시리얼 허브 120은 병렬 버스(parallel bus) 방식이 아닌, 시리얼 통신 방식을 이용함으로써, 상기 메모리 모듈 130과 독립적으로(independently) 상기 메모리 모듈 140과 시리얼 통신을 수행할 수 있다. The serial hub 120 may be connected to the memory module 140. The memory module 140 may be a memory module that performs the same function as the memory module 130. The serial hub 120 and the memory module 140 may be connected through at least one serial line. The serial hub 120 can perform serial communication with the memory module 140 independently of the memory module 130 by using a serial communication method instead of a parallel bus method.

상기 시리얼 허브 120은 모듈 150과 추가적으로 연결될 수 있다. 상기 모듈 150은 추가적으로 장착 가능한 모듈일 수 있다. 일부 실시 예들에서, 상기 모듈 150은 상기 메모리 모듈 130과 동일한 기능을 제공하는 메모리 모듈일 수 있다. 다른 일부 실시 예들에서, 상기 모듈 150은 이더넷 모듈(ethernet module)일 수 있다. 상기 이더넷 모듈은 다른 전자 장치와 통신을 수행하기 위한 모듈일 수 있다. The serial hub 120 may additionally be coupled to the module 150. The module 150 may be an additional mountable module. In some embodiments, the module 150 may be a memory module that provides the same functionality as the memory module 130. In some other embodiments, the module 150 may be an Ethernet module. The Ethernet module may be a module for performing communication with another electronic device.

상기 시리얼 허브 120은 병렬 버스 인터페이스 대신, 시리얼 통신 인터페이스를 통해 CPU 110 및 메모리 모듈들 130, 140과 연결됨으로써, CPU 110과 메모리 모듈들 130, 140 간의 물리적인 거리에 따른 제한의 문제를 해소할 수 있다. 또한, 상기 시리얼 허브 120은 CPU 110의 메모리 컨트롤러 및 메모리 모듈들 130 및 140 간 단일 인터페이스를 제공할 수 있다. 모듈(예: 메모리 모듈, 메모리 컨트롤러, 이더넷 모듈)의 추가 또는 변경 시, 새로운 인터페이스의 구축 없이, 상기 시리얼 허브 120은 확장성을 제공할 수 있다.The serial hub 120 may be connected to the CPU 110 and the memory modules 130 and 140 through a serial communication interface instead of the parallel bus interface so as to solve the problem of limitation due to the physical distance between the CPU 110 and the memory modules 130 and 140 have. In addition, the serial hub 120 may provide a single interface between the memory controller and the memory modules 130 and 140 of the CPU 110. When adding or changing a module (e.g., a memory module, a memory controller, an Ethernet module), the serial hub 120 can provide scalability without building a new interface.

도 1에 도시되지는 않았으나, 추가적인 모듈들이 상기 시리얼 허브 120에 연결될 수 있다. 도 1에는 시리얼 라인을 통해서만 모듈들과 연결되는 것으로 도시하였으나, 다양한 실시 예들은 한정되지 않는다. 상기 시리얼 허브 120은, 추가 메모리 모듈과 기존의 병렬 버스 방식(예: 64bits bus type, 32bits bus type)으로 연결될 수도 있다.Although not shown in FIG. 1, additional modules may be coupled to the serial hub 120. Although FIG. 1 shows connection with modules only through a serial line, various embodiments are not limited. The serial hub 120 may be connected to an additional memory module in a conventional parallel bus mode (for example, a 64-bit bus type, a 32-bit bus type).

도 2는 본 개시의 다양한 실시 예들에 따른 2개의 CPU를 포함하는 전자 장치의 블록도를 도시한다. 상기 전자 장치는 상기 도 1의 전자 장치 100일 수 있다. Figure 2 shows a block diagram of an electronic device including two CPUs in accordance with various embodiments of the present disclosure. The electronic device may be the electronic device 100 of FIG.

도 2를 참고하면, 상기 전자 장치 100은 상기 도 1의 CPU 110, CPU 210, 상기 도 1의 시리얼 허브 120, 및 메모리 모듈들 221, 222, 223, 224, 225, 226을 포함할 수 있다. 상기 CPU 210은 상기 CPU 110과 동일한 기능을 제공하는 CPU일 수 있다. 상기 메모리 모듈들 221, 222, 223, 224, 225, 226 각각은 상기 도 1의 메모리 모듈 130과 동일한 기능을 제공하는 메모리 모듈일 수 있다. 2, the electronic device 100 may include the CPU 110, the CPU 210, the serial hub 120, and the memory modules 221, 222, 223, 224, 225, and 226 of FIG. The CPU 210 may be a CPU that provides the same functions as the CPU 110. Each of the memory modules 221, 222, 223, 224, 225, and 226 may be a memory module that provides the same functions as the memory module 130 of FIG.

상기 전자 장치 100은 멀티 CPU(Multi-CPU) 시스템을 지원하는 전자 장치일 수 있다. 이에 따라, 상기 멀티 CPU 시스템을 지원하는 전자 장치 100은 상기 CPU 110 및 상기 CPU 210을 포함할 수 있다. 도 2 및 이하 설명은 2개의 CPU들을 기준으로 설명되나, 다양한 실시 예들은 이러한 기재에 한정되지 않는다. The electronic device 100 may be an electronic device supporting a multi-CPU (multi-CPU) system. Accordingly, the electronic device 100 supporting the multi-CPU system may include the CPU 110 and the CPU 210. [ 2 and the following description are based on two CPUs, but the various embodiments are not limited to these descriptions.

상기 시리얼 허브 120은 상기 CPU 110 및 상기 CPU 210과 각각 시리얼 라인을 통하여 연결될 수 있다. 상기 CPU 110과 상기 시리얼 허브 120을 연결하는 시리얼 라인을 제1 시리얼 라인으로 지칭할 수 있다. 상기 CPU 110은 제1 시리얼 라인을 통하여 상기 시리얼 허브 120에게 제1 신호를 송신할 수 있다. 상기 CPU 210과 상기 시리얼 허브 120을 연결하는 시리얼 라인을 제2 시리얼 라인으로 지칭할 수 있다. 상기 CPU 210은 제2 시리얼 라인을 통하여 상기 시리얼 허브 120에게 제2 신호를 송신할 수 있다. The serial hub 120 may be connected to the CPU 110 and the CPU 210 through a serial line, respectively. The serial line connecting the CPU 110 and the serial hub 120 may be referred to as a first serial line. The CPU 110 can transmit the first signal to the serial hub 120 through the first serial line. The serial line connecting the CPU 210 and the serial hub 120 may be referred to as a second serial line. The CPU 210 can transmit the second signal to the serial hub 120 through the second serial line.

상기 시리얼 허브 120은 상기 제1 시리얼 라인 또는 상기 제2 시리얼 라인을 통하여, 상기 CPU 110 및 상기 CPU 210 간의 신호 교환을 수행할 수 있다. 상기 신호 교환을 통하여, 상기 CPU 110 및 상기 CPU 210 간의 중재(arbitration), 협상(negotiation) 동작이 수행되거나, CPU 간의 마스터-슬레이브(master-slave) 관계가 설정될 수 있다. The serial hub 120 can exchange signals between the CPU 110 and the CPU 210 through the first serial line or the second serial line. Through the signal exchange, arbitration and negotiation between the CPU 110 and the CPU 210 may be performed or a master-slave relationship between the CPUs may be established.

일부 실시 예들에서, CPU 110과 CPU 210 간의 통신을 통하여, 상기 CPU 110이 마스터 CPU로 설정되고, 상기 CPU 210이 슬레이브 CPU로 결정될 수 있다. 상기 CPU 110은 마스터 CPU로서, 메모리 범위(memory range)를 설정(configure)할 수 있다. 여기서, 상기 메모리 범위는 할당되는 메모리 영역에 대한 범위일 수 있다. 상기 CPU 110은 설정된 메모리 범위에 대한 정보를 상기 시리얼 허브 120에게 전송할 수 있다. 상기 시리얼 허브 120은 상기 메모리 범위에 대한 정보에 기반하여 상기 CPU 110 또는 상기 CPU 210에게 제공될 메모리의 영역을 결정할 수 있다. 다시 말해, 상기 시리얼 허브 120은 상기 메모리 범위에 따라 CPU들 110 및 210과 메모리 모듈들 221, 222, 223, 224, 225, 226 간 경로들을 설정할 수 있다.In some embodiments, the CPU 110 may be set as a master CPU through communication between the CPU 110 and the CPU 210, and the CPU 210 may be determined as a slave CPU. The CPU 110, as a master CPU, can configure a memory range. Here, the memory range may be a range for a memory area to be allocated. The CPU 110 may transmit information on the set memory range to the serial hub 120. [ The serial hub 120 may determine an area of memory to be provided to the CPU 110 or the CPU 210 based on the information on the memory range. In other words, the serial hub 120 can set paths between the CPUs 110 and 210 and the memory modules 221, 222, 223, 224, 225, and 226 according to the memory range.

상기 시리얼 허브 120은, 상기 CPU 110 및 상기 CPU 210 간 이중화 동작(redundancy operation)을 수행할 수 있다. 상기 시리얼 허브 120은, 상기 이중화 동작을 위하여, 상기 CPU 110 또는 상기 CPU 210으로부터 이중화 프로토콜(protocol)의 설정을 위한 제어 신호를 수신할 수 있다. 이에 따라, 상기 시리얼 허브 120은, 상기 제어 신호에 기반하여 상기 CPU 110 및 상기 CPU 210에 대한 이중화 프로토콜을 설정할 수 있다. 상기 이중화 프로토콜에 기반하여, 상기 CPU 110에서 상기 CPU 210으로의 테이크 오버(takeover)가 발생할 수 있다. 구체적으로, 상기 시리얼 허브 120으로부터 제공받은 상기 메모리 모듈 226의 메모리를 통하여, 상기 CPU 110은 연산을 수행할 수 있다. 상기 연산을 수행하는 도중, 상기 CPU 110은 연산을 중단할 수 있다. 예를 들어, 상기 CPU 110이 비정상 상태에 진입하거나, 알고리즘 상 연산 주체의 변경이 요구되거나, CPU들의 능력(capability)에 따라 CPU의 변경이 요구되는 경우가 발생할 수 있다. 상기 CPU 10의 연산이 중단된 경우, 상기 시리얼 허브 120은 상기 CPU 210이 상기 연산을 이어서 수행하게 할 수 있다. 상기 시리얼 허브 120은 상기 연산의 수행을 위하여, 상기 CPU 210에게 상기 메모리 모듈 226의 메모리를 제공할 수 있다. 상기 시리얼 허브 120을 통하여, CPU 110의 처리 동작에 할당된 메모리를 CPU 210의 동작에 할당될 메모리에게 복사하는 과정이 생략될 수 있다. 즉, 상기 시리얼 허브 120은, 다른 메모리 모듈의 추가적인 사용 없이, 이중화 동작을 수행할 수 있다. The serial hub 120 may perform a redundancy operation between the CPU 110 and the CPU 210. The serial hub 120 may receive a control signal for setting a duplication protocol from the CPU 110 or the CPU 210 for the duplication operation. Accordingly, the serial hub 120 can set a redundancy protocol for the CPU 110 and the CPU 210 based on the control signal. Based on the redundancy protocol, a takeover from the CPU 110 to the CPU 210 may occur. Specifically, the CPU 110 can perform operations through the memory of the memory module 226 provided from the serial hub 120. During the execution of the operation, the CPU 110 may stop the operation. For example, it may happen that the CPU 110 enters an abnormal state, a change in the algorithm subject is requested, or a CPU change is required depending on the capabilities of the CPUs. If the operation of the CPU 10 is interrupted, the serial hub 120 may cause the CPU 210 to perform the operation subsequently. The serial hub 120 may provide the memory of the memory module 226 to the CPU 210 for performing the operation. The process of copying the memory allocated to the processing operation of the CPU 110 to the memory to be allocated to the operation of the CPU 210 through the serial hub 120 may be omitted. That is, the serial hub 120 can perform a redundancy operation without further use of another memory module.

상기 이중화 동작을 위해, 상기 시리얼 허브 120은 상기 CPU 110에서 상기 CPU 210으로의 테이크 오버를 수행하도록 설정될 수 있다. 여기서, 상기 테이크 오버는 '연산'을 관리하는 대상이 변경되는 동작을 의미할 수 있다. 상술한 바와 같은 메모리 모듈(예: 메모리 모듈 226)의 재할당을 통해, 불필요한 복사과정 없이, 상기 CPU 110에서 상기 CPU 210로의 테이크 오버가 수행될 수 있다. 상기 시리얼 허브 120은, 상기 CPU 110에서 상기 CPU 210으로의 테이크오버가 단축된 시간 내에 수행되도록 할 수 있다. For the duplication operation, the serial hub 120 may be configured to perform a takeover from the CPU 110 to the CPU 210. Here, the takeover may mean an operation in which an object managing 'operation' is changed. Through the reallocation of a memory module (e.g., memory module 226) as described above, a takeover from the CPU 110 to the CPU 210 can be performed without unnecessary copying. The serial hub 120 may be configured to perform the takeover from the CPU 110 to the CPU 210 within a shortened time.

도 2는 2개의 CPU들(CPU 110, CPU 210)을 도시하였으나, 추가적으로 다른 CPU가 상기 시리얼 허브 120에 연결될 수 있다. 상기 시리얼 허브 120은 CPU와 시리얼 방식으로 연결되기 위한 구조를 가지는 바, 상기 시리얼 허브 120은 CPU의 확장이 가능할 수 있다. Although FIG. 2 shows two CPUs (CPU 110 and CPU 210), a further CPU may be connected to the serial hub 120. The serial hub 120 has a structure for being connected with a CPU in a serial manner, and the serial hub 120 can expand the CPU.

도 3은 본 개시의 다양한 실시 예들에 따른 전자 장치의 메모리 쉐어링(memory sharing)의 예를 도시한다. 상기 전자 장치는 상기 도 1의 전자 장치 100일 수 있다. 상기 전자 장치 100의 시리얼 허브 120은 메모리 쉐어링을 수행할 수 있다. 상기 메모리 쉐어링은, 다수의 CPU들이 메모리 모듈을 공유하거나, 메모리 모듈 내 메모리 자원을 공유하는 것을 의미한다. 상기 시리얼 허브 120은 CPU 110 및 상기 CPU 210 간의 메모리 쉐어링을 수행할 수 있다. FIG. 3 illustrates an example of memory sharing of an electronic device according to various embodiments of the present disclosure. The electronic device may be the electronic device 100 of FIG. The serial hub 120 of the electronic device 100 may perform memory sharing. The memory sharing means that a plurality of CPUs share a memory module or share memory resources in a memory module. The serial hub 120 may perform memory sharing between the CPU 110 and the CPU 210.

이하 설명에서는, 상기 CPU 110의 어플리케이션에는 메모리 모듈들 221, 222, 223에 대한 메모리가 할당되어 있고, 상기 CPU 210의 어플리케이션에는 메모리 모듈들 224, 225, 226에 대한 메모리가 할당되어 있는 상황에서, 메모리 할당의 대상이 변경되는 상황을 설명한다. 상기 시리얼 허브 120과 상기 메모리 모듈들 221, 222, 223, 224, 225, 226 간의 메모리 인터페이스가 시리얼 인터페이스(serial interface)로 구현됨으로써, 상기 CPU 110은 메모리 모듈들 224, 225, 226과도 동작적으로 결합될 수 있다. 마찬가지로, 상기 CPU 210은 메모리 모듈들 221, 222, 223과도 동작적으로 결합될 수 있다. In the following description, a memory for the memory modules 221, 222, and 223 is allocated to the application of the CPU 110, and a memory for the memory modules 224, 225, and 226 is allocated to the application of the CPU 210, Describes a situation in which the object of memory allocation is changed. The memory interface between the serial hub 120 and the memory modules 221, 222, 223, 224, 225 and 226 is implemented as a serial interface so that the CPU 110 can operate Can be combined. Similarly, the CPU 210 may be operatively coupled to memory modules 221, 222, and 223.

도 3을 참고하면, 상기 시리얼 허브 120은 메모리 범위에 대한 정보를 상기 CPU 110 또는 상기 CPU 210으로부터 수신할 수 있다. 상기 메모리 범위에 대한 정보는 CPU에 구동중인 어플리케이션에 할당하기 위한 메모리 영역을 가리키는 정보일 수 있다. 상기 시리얼 허브 120은 상기 메모리 범위에 대한 정보에 기반하여 상기 CPU 110 및 상기 CPU 210에게 각각 제공할 메모리의 영역을 결정할 수 있다.Referring to FIG. 3, the serial hub 120 may receive information on a memory range from the CPU 110 or the CPU 210. The information on the memory range may be information indicating a memory area to be allocated to an application running on the CPU. The serial hub 120 may determine an area of a memory to be provided to the CPU 110 and the CPU 210, respectively, based on information on the memory range.

상기 시리얼 허브 120은, 상기 CPU 110의 사용량 및 상기 CPU 210의 사용량에 기반하여 상기 CPU 110에 제공될 제1 메모리 및 상기 CPU 210에 제공될 제2 메모리를 결정할 수 있다. 예를 들어, 상기 CPU 110의 사용량과 상기 CPU 210의 사용량의 비율이 7:3인 경우, 상기 시리얼 허브 120은 상기 CPU 110에서의 동작(operation)에 상기 CPU 210에서의 동작보다 더 많은 메모리를 할당할 것을 결정할 수 있다. 상기 시리얼 허브 120은 전체 동작에 할당할 메모리 중 10분의 7에 상응하는 메모리를 상기 CPU 110에게 제공할 수 있다. 상기 시리얼 허브 120은 할당할 메모리 중 10분의 3에 상응하는 메모리를 상기 CPU 210에게 제공할 수 있다. 즉, 상기 시리얼 허브 120은 일부 메모리 모듈의 메모리의 할당 대상을 변경하도록 요구될 수 있다.The serial hub 120 may determine a first memory to be provided to the CPU 110 and a second memory to be provided to the CPU 210 based on the usage amount of the CPU 110 and the usage amount of the CPU 210. [ For example, when the ratio of the usage amount of the CPU 110 to the usage amount of the CPU 210 is 7: 3, the serial hub 120 can store more memory in operation of the CPU 110 than the operation in the CPU 210 You can decide to allocate. The serial hub 120 may provide the CPU 110 with a memory corresponding to seven tenths of the memory to be allocated to the entire operation. The serial hub 120 may provide the CPU 210 with a memory corresponding to three tenths of the memory to be allocated. That is, the serial hub 120 may be required to change the allocation target of the memory of some memory modules.

상기 시리얼 허브 120은, 메모리 쉐어링을 위하여, 메모리 모듈들의 제공 대상을 변경할 수 있다. 일부 실시 예들에서, 상기 CPU 110 및 상기 CPU 210은, 상기 시리얼 허브 120의 설정에 따라, 동일한 메모리 모듈을 공유할 수 있다. 예를 들면, 상기 CPU 110 및 상기 CPU 210은 메모리 모듈 223을 공유할 수 있다. 상기 시리얼 허브 120은 메모리 모듈 223의 메모리 중 일부분을 상기 CPU 210에서의 처리(processing)를 위하여 제공할 수 있다. 즉, 상기 시리얼 허브 120은, 상기 일부분을 상기 CPU 210의 어플리케이션에 할당하도록 설정을 변경할 수 있다. 상기 시리얼 허브 120은, 상기 메모리 중 나머지 부분에 대한 할당은 유지할 수 있다. 상기 CPU 110 및 상기 CPU 210은 상기 메모리 모듈 223을 동시에 공유할 수 있다.The serial hub 120 may change the provision target of memory modules for memory sharing. In some embodiments, the CPU 110 and the CPU 210 may share the same memory module according to the setting of the serial hub 120. [ For example, the CPU 110 and the CPU 210 may share the memory module 223. The serial hub 120 may provide a portion of the memory of the memory module 223 for processing in the CPU 210. That is, the serial hub 120 may change the setting so as to allocate the part to the application of the CPU 210. The serial hub 120 may maintain allocation for the rest of the memory. The CPU 110 and the CPU 210 may share the memory module 223 at the same time.

다른 일부 실시 예들에서, 상기 CPU 110 및 상기 CPU 210은 메모리 모듈 226을 공유할 수 있다. 상기 시리얼 허브 120은 메모리 모듈 226의 메모리 전부를 상기 CPU 110에서의 처리를 위하여 제공할 수 있다. 즉 상기 시리얼 허브 120은 상기 메모리를 어느 하나의 시점에 상기 CPU 110의 어플리케이션에 할당하도록, 다른 하나의 시점에 상기 CPU 210의 어플리케이션에 할당하도록 설정을 변경할 수 있다. 상기 CPU 110 및 상기 CPU 210은 다른 시점에, 상기 메모리 모듈 226을 공유할 수 있다. 다시 말해, 상기 CPU 110 및 상기 CPU 210은 서로 다른 시간 구간 동안 상기 메모리 모듈 226을 사용할 수 있다.In some other embodiments, the CPU 110 and the CPU 210 may share a memory module 226. The serial hub 120 may provide all of the memory of the memory module 226 for processing by the CPU 110. [ That is, the serial hub 120 may change the setting so that the memory is allocated to the application of the CPU 210 at another point in time so that the memory is allocated to the application of the CPU 110 at any one point in time. The CPU 110 and the CPU 210 may share the memory module 226 at another point in time. In other words, the CPU 110 and the CPU 210 can use the memory module 226 for different time intervals.

시리얼 허브 120은 메모리 모듈들 각각의 특성에 기반하여 CPU에게 제공할 메모리 모듈을 결정할 수 있다. 상기 특성은 메모리 모듈들의 종류, 용량, 동작 속도를 포함할 수 있다. 상기 메모리 모듈의 종류는 SDR(signal date rate) SDRAM, DDR(double data rate) SDRAM, DDR2 SDRAM, DDR3 SDRAM, DDR4 SDRAM, DDR5 SDRAM를 포함할 수 있다. 상기 메모리 모듈의 용량은 메모리 모듈 하나에서 저장 가능한 데이터 용량을 의미한다. 예를 들면, 상기 메모리 모듈 221의 용량은 2GB(gigabyte)일 수 있다. 상기 메모리 모듈 223의 용량은 6GB 일 수 있다. 상기 메모리 모듈의 동작 속도는 동작 클럭(clock)으로 지칭될 수 있다. 상기 동작 속도는 상기 메모리 모듈이 데이터를 출력하는 속도일 수 있다. 예를 들어, 상기 메모리 모듈 222의 동작 속도는 12800MB/s(megabyte/second)일 수 있다. The serial hub 120 may determine the memory module to provide to the CPU based on the characteristics of each of the memory modules. The characteristics may include the type, capacity, and operating speed of the memory modules. The memory module may include an SDR (signal date rate) SDRAM, a double data rate (DDR) SDRAM, a DDR2 SDRAM, a DDR3 SDRAM, a DDR4 SDRAM, and a DDR5 SDRAM. The capacity of the memory module means a capacity of data that can be stored in one memory module. For example, the capacity of the memory module 221 may be 2 gigabytes (gigabytes). The capacity of the memory module 223 may be 6 GB. The operating speed of the memory module may be referred to as an operating clock. The operating speed may be a rate at which the memory module outputs data. For example, the operation speed of the memory module 222 may be 12800 MB / s (megabyte / second).

도 3을 참고하여 설명한 실시 예에서, CPU들 110 및 210에 대한 메모리 모듈 또는 메모리의 할당은 상기 시리얼 허브 120에 의해 수행되는 것으로 설명되었다. 그러나, 다른 실시 예에서, 메모리 모듈 또는 메모리의 할당에 대한 판단, 즉, CPU들 110 및 210의 동작에 할당되는 메모리의 양 및 할당되는 메모리 모듈의 인덱스에 대한 결정은 CPU들 110 및 210 중 어느 하나에 의해 수행되고, 할당 결과에 따른 경로 설정은 상기 시리얼 허브 120에 의해 수행될 수 있다. 다시 말해, 메모리 모듈 또는 메모리의 할당 과정에 CPU들 110 및 210 중 적어도 하나가 개입될 수 있다.In the embodiment described with reference to FIG. 3, the allocation of memory modules or memory for CPUs 110 and 210 has been described as being performed by the serial hub 120. However, in other embodiments, the determination of the memory module or memory allocation, i. E., The amount of memory allocated to the operation of the CPUs 110 and 210, and the index of the allocated memory module, And routing according to the allocation result can be performed by the serial hub 120. [ In other words, at least one of the CPUs 110 and 210 may be involved in the memory module or memory allocation process.

도 4는 본 개시의 다양한 실시 예들에 따른 전자 장치의 메모리/이더넷 스위칭(memory/ethernet switching)의 예를 도시한다. 상기 전자 장치는 상기 도 1의 전자 장치 100일 수 있다. 상기 전자 장치 100의 시리얼 허브 120은 상기 메모리/이더넷 스위칭을 수행할 수 있다. Figure 4 illustrates an example of memory / ethernet switching of an electronic device according to various embodiments of the present disclosure. The electronic device may be the electronic device 100 of FIG. The serial hub 120 of the electronic device 100 may perform the memory / Ethernet switching.

도 4를 참고하면, 상기 시리얼 허브 120은 이더넷 모듈들 421, 422와 연결될 수 있다. 상기 시리얼 허브 120 및 상기 이더넷 모듈 421은, 시리얼 라인을 통하여 연결될 수 있다. 상기 이더넷 모듈 421은 이더넷(ethernet) 통신을 위한 이더넷 모듈일 수 있다. 상기 이더넷 모듈은 전자 장치들 간의 연결을 위한 인터페이스일 수 있다. 상기 이더넷 모듈 421은 LAN(local area network)에서 사용될 수 있다. Referring to FIG. 4, the serial hub 120 may be connected to the Ethernet modules 421 and 422. The serial hub 120 and the Ethernet module 421 may be connected through a serial line. The Ethernet module 421 may be an Ethernet module for ethernet communication. The Ethernet module may be an interface for connection between electronic devices. The Ethernet module 421 may be used in a local area network (LAN).

상기 전자 장치 100은 상기 이더넷 모듈 421을 통하여 다른 전자 장치와 연결될 수 있다. 상기 전자 장치 100은 상기 이더넷 모듈 421을 통하여, 상기 다른 전자 장치로부터 데이터를 수신할 수 있다. 또는 상기 전자 장치 100은 상기 이더넷 모듈 421을 통하여, 상기 다른 전자 장치에게 데이터를 송신할 수도 있다.The electronic device 100 may be connected to another electronic device through the Ethernet module 421. The electronic device 100 can receive data from the other electronic device through the Ethernet module 421. [ Alternatively, the electronic device 100 may transmit data to the other electronic device through the Ethernet module 421. [

상기 다른 전자 장치와 통신하기 위하여, 상기 전자 장치 100은 이더넷 인터페이스가 요구될 수 있다. 상기 이더넷 인터페이스는 시리얼 프로토콜을 지원하는 인터페이스일 수 있다. 상기 도 1에서 설명한 바와 같이, 상기 시리얼 허브 120은 시리얼 프로토콜을 지원하는 메모리 인터페이스를 제공할 수 있다. 따라서, 상기 전자 장치 100은, 상기 시리얼 허브 120을 통하여, 메모리 모듈을 위한 메모리 인터페이스 외에 상기 이더넷 인터페이스도 제공할 수 있다. 상기 전자 장치 100은, 상기 시리얼 허브 120을 통하여, 메모리 모듈을 통한 데이터 통신에서 이더넷 모듈을 통한 데이터 통신의 스위칭(switching)을 적응적으로 할 수 있다.In order to communicate with the other electronic device, the electronic device 100 may be required to have an Ethernet interface. The Ethernet interface may be an interface supporting a serial protocol. As described above with reference to FIG. 1, the serial hub 120 may provide a memory interface supporting a serial protocol. Accordingly, the electronic device 100 can provide the Ethernet interface in addition to the memory interface for the memory module through the serial hub 120. [ The electronic device 100 may adaptively switch data communication through the Ethernet module in the data communication through the memory module through the serial hub 120.

예를 들어, CPU 110은 구동 중인 어플리케이션 상에서 데이터를 다른 장치에게 송신하는 동작을 처리할 수 있다. 상기 어플리케이션에는 메모리 모듈 223의 메모리가 할당되어 있는 상태일 수 있다. CPU 110이 데이터를 전송하기 위하여, CPU 110은 이더넷 인터페이스가 요구될 수 있다. 상기 CPU 110은 별도의 인터페이스를 위한 별도의 경로 설정없이, 상기 시리얼 허브 120 및 상기 시리얼 허브 120과 시리얼 라인으로 연결되는 이더넷 모듈 421을 통하여 전자 장치에게 데이터를 송신할 수 있다. For example, the CPU 110 can handle the operation of transmitting data to another device on the application being driven. The memory of the memory module 223 may be allocated to the application. In order for the CPU 110 to transfer data, the CPU 110 may be required to have an Ethernet interface. The CPU 110 can transmit data to the electronic device via the Ethernet module 421 connected to the serial hub 120 and the serial hub via the serial line without setting a separate path for a separate interface.

상기 시리얼 허브 120은, 상기 이더넷 모듈 421을 위한 프로토콜을 설정할 수 있다. 상기 이더넷 모듈 421을 위한 프로토콜은 물리 계층(physical layer)을 가리키는 제1 계층(layer 1) 또는 링크 계층(link layer)을 가리키는 제2 계층(layer 2)에 대한 프로토콜과 동일할 수 있다. 상기 이더넷 모듈 421을 위한 프로토콜은 메모리 모듈 223을 위한 프로토콜일 수 있다. 즉, 상기 프로토콜은 제1 계층 및 제2 계층에서, 상기 메모리 모듈 223 및 상기 이더넷 모듈 421 모두에 적용되는 프로토콜일 수 있다. 따라서, 상기 프로토콜은 하이브리드 시리얼 프로토콜(hybrid serial protocol)로 지칭될 수 있다. 상기 하이브리드 시리얼 프로토콜의 설정을 통하여, 상기 시리얼 허브 120은 상기 메모리 모듈 223 및 상기 이더넷 모듈 421을 구분 없이 연결할 수 있는 스위치 구조를 제공할 수 있다. The serial hub 120 may set a protocol for the Ethernet module 421. The protocol for the Ethernet module 421 may be the same as the protocol for the first layer (layer 1) indicating a physical layer or the layer 2 indicating a link layer. The protocol for the Ethernet module 421 may be a protocol for the memory module 223. That is, the protocol may be a protocol applied to both the memory module 223 and the Ethernet module 421 in the first layer and the second layer. Thus, the protocol may be referred to as a hybrid serial protocol. Through the setting of the hybrid serial protocol, the serial hub 120 can provide a switch structure capable of connecting the memory module 223 and the Ethernet module 421 without discrimination.

상기 시리얼 허브 120은 DMA(direct memory access) 기능을 수행할 수 있다. DMA 기능은 CPU의 직접적인 개입 없이 메모리에 접근하는 기능이다. 상기 DMA 기능 수행을 위하여, 상기 CPU 110은 상기 시리얼 허브 120에게 제어 신호를 송신할 수 있다. 상기 제어 신호는 상기 시리얼 허브 120이 DMA 기능을 수행하도록 설정하기 위한 신호로서, 데이터를 읽기 위한 메모리 모듈 및 데이터를 쓰기 위한 메모리 모듈을 지시할 수 있다. 이에 따라, 상기 시리얼 허브 120은, 상기 설정에 기반하여, 특정 데이터 수신 시 임의의 메모리 모듈에 상기 데이터를 바로 저장할 수 있다.The serial hub 120 may perform a direct memory access (DMA) function. The DMA function is a function that accesses the memory without direct intervention of the CPU. In order to perform the DMA function, the CPU 110 may transmit a control signal to the serial hub 120. The control signal is a signal for setting the serial hub 120 to perform a DMA function, and may designate a memory module for reading data and a memory module for writing data. Accordingly, the serial hub 120 can directly store the data in an arbitrary memory module upon receiving specific data based on the setting.

예를 들면, 플로우 450을 참고하면, 전자 장치 100은 이더넷 모듈 421로부터 데이터를 수신하는 경우, CPU 110의 직접적인 개입없이, 메모리 모듈 223에 상기 데이터를 바로 저장할 수 있다. 구체적으로, 전자 장치 100의 상기 시리얼 허브 120은 상기 이더넷 모듈 421을 통하여, 다른 장치로부터 데이터를 수신할 수 있다. 상기 시리얼 허브 120은 상기 데이터를 버퍼(buffer)에 저장할 수 있다. 상기 시리얼 허브 120은 상기 데이터를 상기 CPU 110에게 전달하지 않을 수 있다. 상기 시리얼 허브 120은 상기 데이터를 메모리 모듈 224에 저장할 수 있다. 즉, 상기 데이터는 상기 CPU 110에게 전송되지 않고, 메모리 모듈 224에 저장될 수 있다. 상기 시리얼 허브 120은 상기 데이터를 전송하지 않고, 상기 데이터에 대한 일부 정보만을 송신할 수 있다. 예를 들면, 상기 시리얼 허브 120은 상기 데이터를 저장한 주소(address)에 대한 정보를 상기 CPU 110에게 전송할 수 있다. 다른 예를 들면, 상기 시리얼 허브 120은 상기 데이터의 이동이 완료되었음을 가리키는 정보를 상기 CPU 110에게 전송할 수도 있다. 상기 전자 장치 100은 시리얼 허브 120을 통하여 CPU의 동작을 줄임으로써, 이더넷 모듈 이용 시 CPU의 활용 범위를 넓힐 수 있다.For example, referring to the flow 450, when the electronic device 100 receives data from the Ethernet module 421, it can directly store the data in the memory module 223 without direct intervention of the CPU 110. Specifically, the serial hub 120 of the electronic device 100 can receive data from another device via the Ethernet module 421. [ The serial hub 120 may store the data in a buffer. The serial hub 120 may not transmit the data to the CPU 110. The serial hub 120 may store the data in the memory module 224. That is, the data may not be transmitted to the CPU 110 but may be stored in the memory module 224. The serial hub 120 may transmit only a part of the data without transmitting the data. For example, the serial hub 120 may transmit information about an address storing the data to the CPU 110. [ Alternatively, the serial hub 120 may transmit to the CPU 110 information indicating that the movement of the data is completed. The electronic device 100 can reduce the operation of the CPU through the serial hub 120, thereby widening the utilization range of the CPU when using the Ethernet module.

도 5는 본 개시의 다양한 실시 예들에 따른 시리얼 허브와 메모리 모듈의 신호 교환의 예를 도시한다. 상기 시리얼 허브는 상기 도 1의 시리얼 허브 120일 수 있다. 상기 메모리 모듈은 상기 도 2의 메모리 모듈 225일 수 있다.5 illustrates an example of signal exchange between a serial hub and a memory module in accordance with various embodiments of the present disclosure. The serial hub may be the serial hub 120 of FIG. The memory module may be the memory module 225 of FIG.

도 5를 참고하면, 상기 시리얼 허브 120은 진입 포트(ingress port) 510과 출구 포트(egress port) 520을 포함할 수 있다. 상기 진입 포트 510 및 상기 출구 포트 520은 데이터 경로(data path) 및 제어 경로(control path)와 동작적으로 연결(operatively connected)될 수 있다. Referring to FIG. 5, the serial hub 120 may include an ingress port 510 and an egress port 520. The entry port 510 and the exit port 520 may be operatively connected to a data path and a control path.

진입 포트 510은 패킷(packet)의 처리를 위한 진입 포트일 수 있다. 예를 들어, 상기 진입 포트는 상기 패킷의 메모리 주소(memory address)의 처리를 위한 진입 포트일 수 있다. 상기 진입 포트 510은 상기 시리얼 허브 120의 맵핑부(mapping unit)(미도시)에서 지정된 메모리 범위(memory range)에 패킷이 입력되는지 여부를 확인할 수 있다. 상기 메모리 범위는 상기 패킷의 메모리 주소에 대한 범위를 가리킬 수 있다. 상기 진입 포트 510은 상기 메모리 범위를 포트에 연결이 되도록 태그(tag)를 상기 패킷에 추가할 수 있다. 상기 진입 포트 510은 상기 패킷의 포맷(format)을 확인할 수도 있다. 상기 진입 포트 510은 상기 데이터의 오류 여부를 검사할 수 있다. 상기 진입 포트 510은 상기 입력되는 패킷을 상기 맵핑부에게 전달할 수 있다. The ingress port 510 may be an ingress port for processing a packet. For example, the ingress port may be an ingress port for processing a memory address of the packet. The entry port 510 can check whether a packet is input in a memory range specified in a mapping unit (not shown) of the serial hub 120. The memory range may indicate a range for the memory address of the packet. The entry port 510 may add a tag to the packet so that the memory range is connected to the port. The entry port 510 may check the format of the packet. The entry port 510 may check whether the data is erroneous. The entry port 510 may forward the input packet to the mapping unit.

출구 포트 520은 상기 메모리 주소의 처리를 위한 출구 포트일 수 있다. 상기 출구 포트 520은 상기 맵핑부로부터 패킷을 수신할 수 있다. 상기 출구 포트 520은, 상기 패킷의 태그를 확인한 후 입출력 포트 540의 상태에 따라 패킷의 전송 여부를 결정할 수 있다. 상기 태그는 내부에서 재전송시 사용되는 식별자(identifier)일 수 있다. 상기 태그는 상기 맵핑부에 의하여 결정될 수 있다.The exit port 520 may be an exit port for processing the memory address. The egress port 520 may receive packets from the mapping unit. The exit port 520 can determine whether to transmit a packet according to the status of the input / output port 540 after confirming the tag of the packet. The tag may be an identifier used for retransmission in the inside. The tag may be determined by the mapping unit.

상기 시리얼 허브 120은 I2C(inter-integrated circuit) 530을 포함할 수 있다. 상기 시리얼 허브 120는 I2C 530을 이용하여 상기 제어 경로를 관리할 수 있다. 상기 제어 경로는 상기 데이터 경로의 데이터를 제어하기 위한 라인일 수 있다. 상기 I2C 530은 2개의 시리얼 라인을 포함할 수 있다. 상기 2개의 시리얼 라인은 SDA(serial data) 라인과 SCL(serial clock) 라인일 수 있다. 상기 SDA 라인은 데이터 경로에서 전송되는 데이터의 비트 정보를 표현하는 라인일 수 있다. 상기 SDA 라인은 데이터를 읽는 동작(reading)인지, 쓰는 동작(writing)인지 여부에 따라 방향을 달리하는 양방향 라인일 수 있다. 상기 SCL 라인은 상기 데이터를 전송하기 위한 클럭(clock)을 전달하는 라인일 수 있다. 상기 SCL라인은 상기 시리얼 허브 120에서 상기 메모리 모듈 225로 전송되는 단방향 라인일 수 있다. The serial hub 120 may include an inter-integrated circuit (I 2 C) 530. The serial hub 120 can manage the control path using I 2 C 530. The control path may be a line for controlling data in the data path. The I 2 C 530 may include two serial lines. The two serial lines may be SDA (serial data) lines and SCL (serial clock) lines. The SDA line may be a line representing bit information of data transmitted in the data path. The SDA line may be a bidirectional line whose direction is different depending on whether it is a data reading operation or a writing operation. The SCL line may be a line for transmitting a clock for transmitting the data. The SCL line may be a unidirectional line transmitted from the serial hub 120 to the memory module 225.

일부 실시 예들에서, 상기 시리얼 허브 120은 상기 I2C 530을 통하여, 상기 시리얼 허브 120과 연결되는 모듈을 제어할 수 있다. 상기 시리얼 허브 120은 상기 I2C 530을 통하여, 상기 연결되는 모듈의 설정에 대한 정보(configuration information)를 획득할 수 있다. 상기 시리얼 허브 120은 상기 정보에 기반하여, 상기 맵핑부를 설정(configure)할 수 있다. 상기 연결되는 모듈은 메모리 모듈 225일 수 있다.In some embodiments, the serial hub 120 may control a module coupled to the serial hub 120 via the I 2 C 530. The serial hub 120 may obtain configuration information of the connected module through the I 2 C 530. The serial hub 120 may configure the mapping unit based on the information. The connected module may be a memory module 225.

상기 시리얼 허브 120은 입출력 포트 540을 포함할 수 있다. 상기 입출력 포트 540은 상기 데이터 경로의 데이터들을 전달하기 위한 하드웨어일 수 있다. 상기 입출력 포트 540은 다수의 핀(pin)들을 포함할 수 있다. 상기 다수의 핀들은 상기 데이터의 전달을 위한 물리적 라인들과 연결될 수 있다. 상기 입출력 포트 540은 상기 다수의 핀들을 통하여, 시리얼 라인들과 연결될 수 있다. 상기 입출력 포트 540은 상기 메모리 모듈 225의 입출력 포트 550과 시리얼 라인들로 연결될 수 있다. 상기 입출력 포트 540은 상기 시리얼 라인들을 통하여 데이터를 메모리 모듈 225의 입출력 포트 550에게 송신 또는 상기 입출력 포트 550으로부터 수신할 수 있다. 상기 입출력 포트 540은 상기 맵핑부에 의하여 결정되는 규칙에 기반하여 상기 데이터를 송신 또는 수신할 수 있다.The serial hub 120 may include an input / output port 540. The input / output port 540 may be hardware for transferring data of the data path. The input / output port 540 may include a plurality of pins. The plurality of pins may be coupled to physical lines for transferring the data. The input / output port 540 may be connected to the serial lines through the plurality of pins. The input / output port 540 may be connected to the input / output port 550 of the memory module 225 through serial lines. The input / output port 540 can transmit / receive data to / from the input / output port 550 of the memory module 225 through the serial lines. The input / output port 540 may transmit or receive the data based on a rule determined by the mapping unit.

도 5는 상기 시리얼 허브 120과 메모리 모듈 간의 연결 관계를 도시하였으나, 이에 한정되지 않는다. 예를 들면, 상기 시리얼 허브 120은 메모리 모듈 외에 다른 모듈과 연결될 수 있다. 다른 예를 들면, 상기 제어 경로는 I2C 530외에 다른 방식으로 구성될 수 있다. 상기 시리얼 허브 120은 이더넷 모듈과 연결시, 상기 시리얼 허브 120은 MII(media independent interface)를 통하여 제어 경로를 관리할 수 있다. 5 illustrates the connection relationship between the serial hub 120 and the memory module, but the present invention is not limited thereto. For example, the serial hub 120 may be connected to a module other than the memory module. As another example, the control path may be configured in a manner other than I 2 C 530. When the serial hub 120 is connected to an Ethernet module, the serial hub 120 can manage a control path through a media independent interface (MII).

도 6은 본 개시의 다양한 실시 예들에 따른 시리얼 허브의 기능적 구성의 예를 도시한다. 상기 시리얼 허브는 상기 도 1의 시리얼 허브 120일 수 있다. Figure 6 illustrates an example of the functional configuration of a serial hub in accordance with various embodiments of the present disclosure. The serial hub may be the serial hub 120 of FIG.

도 6을 참고하면, 상기 시리얼 허브 120은 포트들 540-1 내지 540-6, 맵핑부(mapping unit) 610, 버퍼(buffer) 620, 제어부(controller) 630을 포함할 수 있다. 상기 맵핑부 610, 상기 버퍼 620, 상기 제어부 630은 각각 포트들 540-1 내지 540-6과 동작적으로 결합될 수 있다. 이하, 상기 시리얼 허브 120과 상기 도 5의 메모리 모듈 225가 시리얼 라인들로 연결되어 있는 상황을 설명한다.6, the serial hub 120 may include ports 540-1 through 540-6, a mapping unit 610, a buffer 620, and a controller 630. [ The mapping unit 610, the buffer 620, and the controller 630 may be operatively coupled to the ports 540-1 through 540-6, respectively. Hereinafter, a case where the serial hub 120 and the memory module 225 of FIG. 5 are connected by serial lines will be described.

상기 포트들 540-1 내지 540-6은 시리얼 허브 120을 다른 모듈(예: 메모리 모듈, 이더넷 모듈 등) 및 CPU와 물리적으로 연결시키는 구성요소 일 수 있다. 포트들 540-1 내지 540-6 각각은 적어도 하나의 핀으로 구성되며, 데이터 입출력 상태에 따라 진입 포트 또는 출구 포트로 가능할 수 있다. 상기 포트들 540-1 내지 540-6은 시리얼 인터페이스를 지원하며, 예를 들어, SERDES(serialize-deseriallize)를 지원할 수 있다.The ports 540-1 through 540-6 may be components that physically couple the serial hub 120 to other modules (e.g., a memory module, an Ethernet module, etc.) and a CPU. Each of the ports 540-1 to 540-6 is composed of at least one pin, and may be an entry port or an exit port depending on the data input / output state. The ports 540-1 through 540-6 support a serial interface, and may support SERDES (serialize-deserialize), for example.

상기 맵핑부 610은 상기 포트들 540-1 내지 540-6 사이의 맵핑 규칙(mapping rule)을 사용하여 CPU와 모듈들을 연결할 수 있다. 즉, 상기 맵핑부 610은 매핑 규칙에 따라 상기 540-1 내지 540-6 간의 경로를 설정한다. 상기 매핑 규칙은 상기 포트들 540-1 내지 5406- 중 하나의 포트로 입력된 데이터가 상기 포트들 540-1 내지 540-6 중 어느 포트로 출력되어야 하는지, 다시 말해, 상기 포트들 540-1 내지 540-6 각각이 진입 포트일 때, 대응하는 출구 포트가 무엇인지를 지시한다. 상기 맵핑부 610은 다양한 용어로 지칭될 수 있다. 예를 들면, 상기 맵핑부 610은 MMU(memory management unit)으로 지칭될 수 있다. 다른 예를 들면, 상기 맵핑부 610은 맵퍼(mapper)로 지칭될 수 있다.The mapping unit 610 may connect the CPU and the modules using a mapping rule between the ports 540-1 to 540-6. That is, the mapping unit 610 sets the paths between 540-1 and 540-6 according to the mapping rule. The mapping rule determines whether data input to one of the ports 540-1 through 5406- should be output to which of the ports 540-1 through 540-6, in other words, 540-6 indicate what the corresponding outlet port is when each is an entry port. The mapping unit 610 may be referred to as various terms. For example, the mapping unit 610 may be referred to as an MMU (memory management unit). As another example, the mapping unit 610 may be referred to as a mapper.

또한, 상기 맵핑부 610은 데이터의 가상 주소(virtual address)를 물리 주소(physical address)로 변환할 수 있다. 상기 가상 주소는 상기 데이터의 가상 메모리(virtual memory)를 식별하기 위한 주소일 수 있다. 상기 가상 주소는 논리 주소(logical address)로 지칭될 수 있다. 상기 물리 주소는 상기 데이터가 실제 저장되는 물리적 메모리(physical memory)를 식별하기 위한 주소일 수 있다. 상기 실제 메모리는 메모리 모듈 225가 제공하는 메모리를 의미한다. 상기 물리 주소는 실주소(real address)로 지칭될 수 있다. 상기 맵핑부 610은 주소 변환 동작을 통하여, CPU와 모듈 간의 논리적 연결을 수행할 수 있다. Also, the mapping unit 610 may convert a virtual address of data into a physical address. The virtual address may be an address for identifying a virtual memory of the data. The virtual address may be referred to as a logical address. The physical address may be an address for identifying a physical memory in which the data is actually stored. The physical memory means a memory provided by the memory module 225. [ The physical address may be referred to as a real address. The mapping unit 610 can perform a logical connection between the CPU and the module through an address conversion operation.

버퍼 620은 상기 포트들 540-1 내지 540-6 중 적어도 하나를 통해 수신되는 패킷을 임시로 저장할 수 있다. 상기 임시로 저장되는 패킷은 상기 제어부 630의 제어에 따라 상기 출구 포트 520으로 출력될 수 있다. 상기 임시로 저장되는 데이터는, 상기 맵핑부 610에서 정한 규칙에 따라 상기 출구 포트 520으로 출력될 수 있다. 상기 버퍼 620은 변환 참조 버퍼(translation lookaside buffer, TLB)를 포함할 수도 있다. 상기 변환 참조 버퍼는 최근에 맵핑되는 페이지 테이블을 저장하는 공간(space)일 수 있다. 상기 맵핑부 610은 상기 변환 참조 버퍼를 이용하여, 상기 가상 주소를 상기 물리 주소로 변환할 수 있다. The buffer 620 may temporarily store packets received through at least one of the ports 540-1 through 540-6. The temporarily stored packet may be output to the egress port 520 under the control of the controller 630. The temporarily stored data may be output to the egress port 520 according to a rule set by the mapping unit 610. The buffer 620 may include a translation lookaside buffer (TLB). The conversion reference buffer may be a space for storing a page table that is mapped recently. The mapping unit 610 may convert the virtual address into the physical address using the conversion reference buffer.

일부 실시 예들에서, 상기 버퍼 620은 상기 메모리 모듈 225로부터 수신되는 데이터를 저장할 수 있다. 예를 들면, 상기 메모리 모듈 225로부터 수신되는 데이터는 CPU 110이 처리하기 위한 데이터일 수 있다. 다른 예를 들면, 상기 메모리 모듈 225로부터 수신되는 데이터는 전자 장치 100이 다른 메모리 모듈에 저장하기 위한 데이터일 수 있다. 다른 일부 실시 예들에서, 상기 버퍼 620은 상기 이더넷 모듈 421로부터 수신되는 데이터를 저장할 수 있다. 상기 이더넷 모듈 421로부터 수신되는 데이터는 다른 전자 장치로부터 수신되는 데이터일 수 있다. In some embodiments, the buffer 620 may store data received from the memory module 225. For example, the data received from the memory module 225 may be data for the CPU 110 to process. As another example, data received from the memory module 225 may be data for the electronic device 100 to store in another memory module. In some other embodiments, the buffer 620 may store data received from the Ethernet module 421. The data received from the Ethernet module 421 may be data received from another electronic device.

제어부 630은 시리얼 허브 120을 제어하기 위한 구성일 수 있다. 상기 제어부 630은 상기 시리얼 허브 120의 맵핑부 610 또는 버퍼 620을 제어할 수 있다. 상기 제어부 630은 상기 시리얼 허브 120의 내부 설정을 제어할 수 있다. 일부 실시 예들에서, 상기 제어부 630은, 상기 CPU 110으로부터 설정 신호를 수신할 수 있다. 상기 제어부 630은 상기 설정 신호에 기반하여 상기 시리얼 허브 120의 설정을 제어할 수 있다. 상기 설정 신호는 상기 시리얼 허브 120의 내부 설정을 위한 신호일 수 있다. The controller 630 may be configured to control the serial hub 120. The controller 630 may control the mapping unit 610 or the buffer 620 of the serial hub 120. The controller 630 may control the internal settings of the serial hub 120. In some embodiments, the controller 630 may receive a setup signal from the CPU 110. [ The controller 630 may control the setting of the serial hub 120 based on the setting signal. The setting signal may be a signal for internal setting of the serial hub 120.

상기 제어부 630에게 접근(access)하기 위하여, CPU 110은 제어 신호를 상기 시리얼 허브 120에게 전송할 수 있다. 일부 실시 예들에서, 상기 CPU 110은 상기 제어 신호를 상기 포트들 540-1 내지 540-6을 통해 전송할 수 있다. 이 경우, 상기 제어 신호는 진입 포트에서 제어 정보로서 해석되는, 특정 패킷의 형태를 가질 수 있다. 다른 일부 실시 예들에서, 상기 CPU 100은 상기 제어 신호를 별도의 제어 경로를 통하여 전송할 수 있다. 예를 들면, 상기 CPU 110은 I2C를 통하여 상기 제어 신호를 전송할 수 있다. 다른 예를 들면, 상기 CPU 110은 MII를 통하여 상기 제어 신호를 송신할 수도 있다.In order to access the control unit 630, the CPU 110 may transmit a control signal to the serial hub 120. [ In some embodiments, the CPU 110 may transmit the control signal through the ports 540-1 through 540-6. In this case, the control signal may have the form of a specific packet that is interpreted as control information at the ingress port. In some other embodiments, the CPU 100 may transmit the control signal through a separate control path. For example, the CPU 110 may transmit the control signal through I 2 C. As another example, the CPU 110 may transmit the control signal through the MII.

상기 제어부 630은, 다수의 메모리 모듈 중 CPU 110에게 제공할 적어도 하나의 메모리 모듈을 결정할 수 있다. 또한, 상기 제어부 630은 메모리 자원의 분배(distribution)를 결정할 수 있다. 상기 제어부 630은 CPU 110의 동작에 따른 제1 신호 및 CPU 210의 동작에 따른 제2 신호에 기반하여, 할당할 제1 메모리 및 제2 메모리를 각각 결정할 수 있다. 상기 제1 메모리는 상기 CPU 110의 동작을 위하여 할당되는 메모리다. 상기 제2 메모리는 상기 CPU 210의 동작을 위하여 할당되는 메모리다. 일부 실시 예들에서, 상기 CPU 110의 동작 및 상기 CPU 210의 동작 각각의 성질, 종류, 처리 크기에 기반하여, 상기 제어부 630은 상기 제1 메모리 및 상기 제2 메모리를 결정할 수 있다.The controller 630 may determine at least one memory module to be provided to the CPU 110 among the plurality of memory modules. Also, the controller 630 may determine distribution of memory resources. The controller 630 may determine a first memory and a second memory to be allocated based on a first signal according to the operation of the CPU 110 and a second signal according to the operation of the CPU 210, respectively. The first memory is a memory allocated for the operation of the CPU 110. The second memory is a memory allocated for the operation of the CPU 210. In some embodiments, the controller 630 may determine the first memory and the second memory based on the nature, type, and processing size of each of the operations of the CPU 110 and the operation of the CPU 210.

상기 제어부 630은 메모리 쉐어링을 수행할 수 있다. 일부 실시 예들에서, 상기 제어부 630은 동일한 메모리 모듈의 제1 메모리 영역을 상기 CPU 110에게 제공하고, 제2 메모리 영역을 상기 CPU 210에게 제공할 수 있다. 다른 일부 실시 예들에서, 상기 제어부 630은, 동일한 메모리 모듈의 메모리를 상기 CPU 110에게 제공한 뒤, 상기 CPU 210에게 제공할 수 있다. 따라서, 전자 장치 100은 공간적인 측면에서 다수의 메모리 모듈을 효율적으로 활용할 수 있다.The controller 630 may perform memory sharing. In some embodiments, the controller 630 may provide a first memory region of the same memory module to the CPU 110 and a second memory region to the CPU 210. In some other embodiments, the controller 630 may provide the memory of the same memory module to the CPU 110, and then provide the memory to the CPU 210. Accordingly, the electronic device 100 can efficiently utilize a plurality of memory modules in terms of space.

상기 제어부 630은, 메모리 모듈에 저장되는 데이터를 읽는 동작 및 메모리 모듈에 데이터를 저장하는 동작을 동시에 수행할 수 있다. 즉, 상기 제어부 630은, 시리얼 라인들을 통하여 읽기 동작(reading operation)과 쓰기 동작(writing operation)을 수행할 수 있다. 상기 전자 장치 100은, 읽기 동작 및 쓰기 동작을 동시에 수행함으로써, 메모리 자원 및 CPU를 효율적으로 사용할 수 있다.The controller 630 can simultaneously perform an operation of reading data stored in the memory module and an operation of storing data in the memory module. That is, the controller 630 can perform a reading operation and a writing operation through the serial lines. The electronic device 100 can simultaneously use the memory resources and the CPU by performing the read operation and the write operation at the same time.

상기 제어부 630은, 이더넷 모듈 및 메모리 모듈 간의 스위칭을 제어할 수 있다. 상기 이더넷 모듈은 이더넷 모듈 421일 수 있다. 상기 메모리 모듈은 상기 메모리 모듈 225일 수 있다. 상기 제어부 630은, CPU의 요청에 따라, 상기 메모리 모듈 225 또는 이더넷 모듈 421과 시리얼 라인을 통하여 통신을 수행할 수 있다. 상기 제어부 630은 메모리 할당을 위한 메모리 인터페이스 및 이더넷 통신을 위한 이더넷 인터페이스를 모두 갖춘 인터페이스에서 동작할 수 있다. 상기 인터페이스는 시리얼 인터페이스일 수 있다. 상기 인터페이스는 SERDES(serialize-deserialize)을 지원할 수 있다. 상기 제어부 630은, 상기 이더넷 모듈 421 및 상기 메모리 모듈 225 각각과 시리얼 라인으로 연결될 수 있다. 상기 제어부 630은, 상기 시리얼 라인 및 상기 시리얼 인터페이스를 통하여 상기 이더넷 모듈 421 또는 상기 메모리 모듈 225와 시리얼 통신을 수행할 수 있다. The controller 630 may control the switching between the Ethernet module and the memory module. The Ethernet module may be an Ethernet module 421. The memory module may be the memory module 225. The controller 630 can communicate with the memory module 225 or the Ethernet module 421 through a serial line at the request of the CPU. The controller 630 may operate on an interface having both a memory interface for memory allocation and an Ethernet interface for Ethernet communication. The interface may be a serial interface. The interface may support SERDES (serialize-deserialize). The controller 630 may be connected to each of the Ethernet module 421 and the memory module 225 by a serial line. The controller 630 can perform serial communication with the Ethernet module 421 or the memory module 225 through the serial line and the serial interface.

상기 제어부 630은 상기 메모리 인터페이스와 상기 이더넷 인터페이스 모두와 호환되는 프로토콜에 따라 동작할 수 있다. 예를 들어, 상기 프로토콜은 시리얼 라인 인터넷 프로토콜(serial line internet protocol, SLIP)일 수 있다. 상기 프로토콜은 하이브리드 시리얼 프로토콜로 지칭될 수 있다. 상기 하이브리드 시리얼 프로토콜은 제1 계층 또는 제2 계층에 적용되는 프로토콜 일 수 있다. 예를 들어, 상기 제1 계층에 적용되는 프로토콜은 10GBASE-KR 이더넷 프로토콜일 수 있다. 상기 제어부 630은, CPU 110으로부터 수신되는 제어 신호에 따라, 상기 하이브리드 시리얼 프로토콜을 설정할 수 있다.The controller 630 may operate according to a protocol compatible with both the memory interface and the Ethernet interface. For example, the protocol may be a serial line internet protocol (SLIP). The protocol may be referred to as a hybrid serial protocol. The hybrid serial protocol may be a protocol applied to the first layer or the second layer. For example, the protocol applied to the first layer may be a 10GBASE-KR Ethernet protocol. The controller 630 may set the hybrid serial protocol according to a control signal received from the CPU 110. [

상기 제어부 630은, DMA 기능을 수행할 수 있다. 상기 제어부 630은 상기 이더넷 모듈 421로부터 수신되는 데이터를 CPU 110 또는 CPU 210에게 전달하지 않고 메모리 모듈에 저장할 수 있다. 상기 전자 장치 100은, 상기 DMA 기능을 통하여 CPU의 동작을 감소시킬 수 있다. 상기 전자 장치 100은, 상기 CPU 동작을 감소시킴으로써 CPU의 활용을 증가시킬 수 있다.The controller 630 may perform a DMA function. The controller 630 can store the data received from the Ethernet module 421 in the memory module without transmitting the data to the CPU 110 or the CPU 210. [ The electronic device 100 can reduce the operation of the CPU through the DMA function. The electronic device 100 can increase the utilization of the CPU by reducing the CPU operation.

도 6은 상기 시리얼 허브 120이 상기 맵핑부 610을 포함하는 것으로 도시하였으나, 이에 한정되지 않는다. 일부 실시 예들에서, 상기 시리얼 허브 120은 상기 맵핑부 610을 포함하지 않을 수 있다. 예를 들어, 상기 맵핑부 610의 기능은 상기 CPU 110에 의하여 수행될 수도 있다. 상기 시리얼 허브 120은 상기 변환된 주소에 대한 정보를 수신하고, 상기 시리얼 허브 120의 상기 제어부 630은 상기 수신된 정보를 이용하여, 데이터를 저장할 메모리 모듈을 결정할 수 있다. 다른 예를 들어, 상기 맵핑부 610은 별도의 하드웨어로 구성될 수도 있다.6, the serial hub 120 includes the mapping unit 610, but the present invention is not limited thereto. In some embodiments, the serial hub 120 may not include the mapping unit 610. For example, the function of the mapping unit 610 may be performed by the CPU 110. The serial hub 120 receives information on the converted address, and the controller 630 of the serial hub 120 can use the received information to determine a memory module to store data. In another example, the mapping unit 610 may be configured as separate hardware.

도 7은 본 개시의 다양한 실시 예들에 따른 전자 장치의 읽기 동작 또는 쓰기 동작의 예를 도시한다. 상기 전자 장치는 상기 도 1의 전자 장치 100일 수 있다. 상기 전자 장치 100은 CPU 110, 시리얼 허브 120, 메모리 모듈 221, 메모리 모듈 222를 포함할 수 있다. FIG. 7 illustrates an example of a read operation or a write operation of an electronic device according to various embodiments of the present disclosure. The electronic device may be the electronic device 100 of FIG. The electronic device 100 may include a CPU 110, a serial hub 120, a memory module 221, and a memory module 222.

상기 CPU 110은 상기 시리얼 허브 120을 설정할 수 있다. 상기 CPU 110은 구간 710동안 상기 시리얼 허브 120을 설정할 수 있다. 예를 들면, 상기 CPU 110은 상기 구간 710 동안 상기 도 6의 맵핑부 610를 설정할 수 있다. 다른 예를 들면, 상기 CPU 110은 상기 구간 710 동안 상기 도 6의 제어부 630의 프로토콜을 설정할 수 있다. 또 다른 예를 들면, 상기 CPU 110은 상기 구간 710 동안 상기 도 5의 입출력 포트 540를 설정할 수도 있다.The CPU 110 may configure the serial hub 120. The CPU 110 may configure the serial hub 120 during a period 710. For example, the CPU 110 may set the mapping unit 610 of FIG. 6 during the interval 710. For example, the CPU 110 may set the protocol of the controller 630 of FIG. 6 during the interval 710. For example, the CPU 110 may set the input / output port 540 of FIG. 5 during the interval 710.

상기 CPU 110은 쓰기 동작을 수행할 수 있다. 상기 CPU 110은 구간 720 동안 상기 쓰기 동작을 수행할 수 있다. 상기 쓰기 동작은, 상기 CPU 110이 제1 데이터를 메모리 모듈 221에게 저장하는 동작일 수 있다.The CPU 110 can perform a write operation. The CPU 110 may perform the write operation during the interval 720. The writing operation may be an operation in which the CPU 110 stores the first data in the memory module 221.

구체적으로, 721 동작에서 상기 CPU 110은 상기 제1 데이터를 상기 시리얼 허브 120에게 송신할 수 있다. 상기 CPU 110은 상기 쓰기 동작을 위한 제어 신호를 상기 시리얼 허브 120에게 추가적으로 송신할 수 있다. 일부 실시 예들에서, 상기 CPU 110은 상기 시리얼 허브 120에게 DMA 기능을 위한 제어 신호만을 송신할 수도 있다. Specifically, in operation 721, the CPU 110 may transmit the first data to the serial hub 120. The CPU 110 may additionally transmit a control signal for the write operation to the serial hub 120. [ In some embodiments, the CPU 110 may transmit only a control signal for the DMA function to the serial hub 120. [

722 동작에서, 상기 시리얼 허브 120은 상기 제1 데이터를 버퍼에 저장할 수 있다. 상기 버퍼는 상기 도 6의 버퍼 620일 수 있다. 일부 실시 예들에서, 상기 시리얼 허브 120가 DMA 기능을 위한 제어 신호를 수신한 경우, 상기 시리얼 허브 120은 다른 모듈로부터 상기 제1 데이터를 수신할 수도 있다. 예를 들면, 상기 시리얼 허브 120은 상기 도 2의 메모리 모듈 223으로부터 상기 제1 데이터를 수신할 수 있다. 다른 예를 들면, 상기 시리얼 허브 120은 상기 도 4의 이더넷 모듈 421로부터 상기 제1 데이터를 수신할 수도 있다. 상기 제1 데이터는 상기 다른 전자 장치로부터 수신되는 데이터일 수 있다.In operation 722, the serial hub 120 may store the first data in a buffer. The buffer may be the buffer 620 of FIG. In some embodiments, when the serial hub 120 receives a control signal for a DMA function, the serial hub 120 may receive the first data from another module. For example, the serial hub 120 may receive the first data from the memory module 223 of FIG. In another example, the serial hub 120 may receive the first data from the Ethernet module 421 of FIG. The first data may be data received from the other electronic device.

723 동작에서, 상기 시리얼 허브 120은 상기 제1 데이터를 메모리 모듈 221에게 송신할 수 있다. 상기 시리얼 허브 120은, 상기 CPU 110에서 설정한 바에 따라, 상기 제1 데이터를 저장할 메모리 모듈의 주소를 결정할 수 있다. 상기 주소는 물리 주소일 수 있다. 상기 시리얼 허브 120은 상기 결정된 물리 주소에 기반하여 상기 메모리 모듈 221에게 상기 제1 데이터를 송신할 수 있다. In operation 723, the serial hub 120 may transmit the first data to the memory module 221. The serial hub 120 may determine the address of the memory module in which the first data is to be stored, as set by the CPU 110. The address may be a physical address. The serial hub 120 may transmit the first data to the memory module 221 based on the determined physical address.

상기 시리얼 허브 120은 상기 제1 데이터를 시리얼화(serialize)할 수 있다. 상기 시리얼 허브 120은 상기 제1 데이터를 시리얼 라인을 통하여 상기 메모리 모듈 221에게 송신할 수 있다. 상기 시리얼 허브 120은 상기 시리얼 라인 중 송신 시리얼 라인을 통하여 상기 메모리 모듈 221에게 송신할 수 있다. 상기 시리얼 허브 120은 상기 시리얼 라인을 통하여, 메모리 모듈 222의 동작 여부와 상관없이, 상기 메모리 모듈 221에게 상기 제1 데이터를 송신할 수 있다. The serial hub 120 may serialize the first data. The serial hub 120 may transmit the first data to the memory module 221 through a serial line. The serial hub 120 can transmit the data to the memory module 221 through a transmission serial line in the serial line. The serial hub 120 can transmit the first data to the memory module 221 through the serial line regardless of whether the memory module 222 is operated or not.

724 동작에서, 상기 메모리 모듈 221은 상기 제1 데이터를 수신할 수 있다. 상기 메모리 모듈 221은 상기 수신한 제1 데이터를 디시리얼화(deserialize)할 수 있다. 상기 메모리 모듈 221은 상기 디시리얼화된 제1 데이터를 상기 메모리 모듈 221의 메모리에 저장(store)할 수 있다. 상기 메모리 모듈 221의 메모리에 상기 제1 데이터가 저장된 경우, 상기 CPU 110의 쓰기 동작은 종료될 수 있다. 일부 실시 예들에서, 상기 메모리 모듈 221은 상기 쓰기 동작이 성공적으로 종료되었음을 알리는 ACK(acknowledge) 신호를 상기 CPU 110에게 송신할 수 있다.In operation 724, the memory module 221 may receive the first data. The memory module 221 may deserialize the received first data. The memory module 221 may store the desalinated first data in the memory of the memory module 221. If the first data is stored in the memory of the memory module 221, the writing operation of the CPU 110 may be terminated. In some embodiments, the memory module 221 may send an ACK (acknowledge) signal to the CPU 110 indicating that the write operation has been successfully terminated.

상기 CPU 110은 읽기 동작을 수행할 수 있다. 상기 CPU 110은 구간 730동안 상기 읽기 동작을 수행할 수 있다. 상기 읽기 동작은, 상기 CPU 110이 제2 데이터를 메모리 모듈 222로부터 수신하는 동작일 수 있다.The CPU 110 may perform a read operation. The CPU 110 may perform the read operation during the interval 730. The read operation may be an operation in which the CPU 110 receives the second data from the memory module 222.

구체적으로, 731 동작에서 상기 CPU 110은 요청 신호를 상기 시리얼 허브 120에게 송신할 수 있다. 상기 요청 신호는 상기 읽기 동작을 위한 제어 신호일 수 있다. 상기 제어 신호는 데이터 전송 요청(data transmission request)으로 지칭될 수 있다. Specifically, in operation 731, the CPU 110 may send a request signal to the serial hub 120. [ The request signal may be a control signal for the read operation. The control signal may be referred to as a data transmission request.

732 동작에서, 상기 시리얼 허브 120은 상기 제어 신호를 버퍼에 저장할 수 있다. 상기 버퍼는 상기 도 6의 버퍼 620일 수 있다.In operation 732, the serial hub 120 may store the control signal in a buffer. The buffer may be the buffer 620 of FIG.

733 동작에서, 상기 시리얼 허브 120은 상기 제어 신호를 메모리 모듈 222에게 송신할 수 있다. 상기 제어 신호는 제2 데이터에 대한 가상 주소를 가리키는 정보를 포함할 수 있다. 상기 시리얼 허브 120은 상기 제2 데이터에 대한 가상 주소를 가리키는 정보에 기반하여 상기 제2 데이터에 대한 물리 주소를 가리키는 정보를 생성할 수 있다. 상기 시리얼 허브 120은 상기 물리 주소에 대한 메모리 모듈을 결정할 수 있다. 상기 메모리 모듈은 상기 메모리 모듈 222일 수 있다. 즉, 상기 시리얼 허브 120은 상기 결정된 물리 주소에 기반하여 상기 메모리 모듈 222에게 상기 제어 신호를 송신할 수 있다.In operation 733, the serial hub 120 may send the control signal to the memory module 222. The control signal may include information indicating a virtual address for the second data. The serial hub 120 may generate information indicating a physical address of the second data based on information indicating a virtual address of the second data. The serial hub 120 may determine a memory module for the physical address. The memory module may be the memory module 222. That is, the serial hub 120 may transmit the control signal to the memory module 222 based on the determined physical address.

734 동작에서, 상기 메모리 모듈 222는 상기 제어 신호를 수신할 수 있다. 상기 메모리 모듈 222는 상기 수신한 제어 신호에 기반하여 제2 데이터를 결정할 수 있다. 상기 메모리 모듈 222는, 상기 메모리 모듈 222에 포함되는 복수의 메모리 셀들 중에서 상기 제2 데이터를 검색할 수 있다. 상기 메모리 모듈 222는 상기 제2 데이터를 검색한 경우, 상기 제2 데이터를 시리얼화 할 수 있다. In operation 734, the memory module 222 may receive the control signal. The memory module 222 may determine the second data based on the received control signal. The memory module 222 may search for the second data among a plurality of memory cells included in the memory module 222. When the memory module 222 retrieves the second data, the memory module 222 may serialize the second data.

735 동작에서, 상기 메모리 모듈 222는 상기 시리얼화된 제2 데이터를 상기 시리얼 허브 120에게 송신할 수 있다. In operation 735, the memory module 222 may transmit the serialized second data to the serial hub 120. [

736 동작에서, 상기 시리얼 허브 120은 상기 제2 데이터를 상기 버퍼 620에 저장할 수 있다. In operation 736, the serial hub 120 may store the second data in the buffer 620.

737 동작에서, 상기 시리얼 허브 120은 상기 제2 데이터를 상기 CPU 110에게 송신할 수 있다. 상기 CPU 110이 상기 제2 데이터를 수신한 경우, 읽기 동작은 종료될 수 있다. In operation 737, the serial hub 120 may transmit the second data to the CPU 110. When the CPU 110 receives the second data, the read operation can be terminated.

상기 CPU 110은 상기 구간 740 동안 쓰기 동작 및 읽기 동작을 동시에 수행할 수 있다. 상기 CPU 110은 상기 시리얼 허브 120을 통하여, 메모리 모듈들 각각과 독립적으로 데이터 통신을 수행할 수 있다. 상기 시리얼 허브 120은 병렬 버스 방식이 아닌, 시리얼 라인들로 상기 메모리 모듈들 각각과 연결됨으로써, 독립적인 데이터 통신을 가능하게 할 수 있다. 즉, 상기 전자 장치 100은 메모리 모듈 221 및 메모리 모듈 222의 메모리 자원을 동시에 사용할 수 있다. 전자 장치 100은 상기 시리얼 허브 120을 통하여 상기 메모리 자원을 효율적으로 활용할 수 있다.The CPU 110 may simultaneously perform a write operation and a read operation during the interval 740. The CPU 110 can independently perform data communication with each of the memory modules through the serial hub 120. The serial hub 120 is connected to each of the memory modules through serial lines instead of the parallel bus, thereby enabling independent data communication. That is, the electronic device 100 can use the memory resources of the memory module 221 and the memory module 222 at the same time. The electronic device 100 can utilize the memory resources efficiently through the serial hub 120. [

도 8은 메모리/이더넷 스위칭을 위한 계층 구조의 예를 도시한다.Figure 8 shows an example of a hierarchical structure for memory / Ethernet switching.

도 8을 참고하면, 제1 계층은 물리 계층을 나타낸다. 제2 계층은 링크 계층을 나타낸다. 제 3 계층은 어플리케이션 계층(application layer)을 나타낸다. 전자 장치는 메모리 모듈 및 이더넷 모듈을 모두 사용하는 어플리케이션을 사용할 수 있다. 예를 들어, 상기 전자 장치는 다른 전자 장치로부터 수신하는 데이터를 메모리 모듈에 저장하기 위한 어플리케이션 850을 사용할 수 있다.Referring to FIG. 8, the first layer indicates a physical layer. The second layer represents the link layer. The third layer represents an application layer. The electronic device can use an application that uses both a memory module and an Ethernet module. For example, the electronic device may use an application 850 for storing data received from another electronic device in a memory module.

계층 구조 810은 종래의 이더넷 인터페이스의 계층 구조를 나타낸다. 계층 구조 820은 종래의 메모리 인터페이스의 계층 구조를 나타낸다. 전자 장치가 상기 어플리케이션 850을 사용하는 경우, 상기 전자 장치는 상기 다른 전자 장치에게 데이터를 요청할 수 있다. 상기 전자 장치는 상기 이더넷 인터페이스를 통하여 데이터를 수신하고, 상기 수신한 데이터를 메모리에 저장할 수 있다. 이 때, 상기 전자 장치는 상기 데이터를 상기 메모리에 저장하기 위하여 별도의 인터페이스로 접근하도록 요구될 수 있다. 예를 들어, 상기 전자 장치는 상기 이더넷 인터페이스 외에 다른 인터페이스인 메모리 인터페이스를 이용하여 메모리에 접근할 수 있다. 다시 말해, 상기 전자 장치에 포함된 CPU는 별도의 경로(another path)를 통하여, 상기 메모리 인터페이스에 접근할 수 있다. 상기 CPU는 상기 메모리 인터페이스를 통하여, 메모리 모듈에 접근한 뒤, 상기 데이터를 저장할 수 있다. The hierarchy 810 represents a hierarchical structure of a conventional Ethernet interface. The hierarchy 820 represents a hierarchical structure of a conventional memory interface. When the electronic device uses the application 850, the electronic device can request data from the other electronic device. The electronic device can receive data via the Ethernet interface and store the received data in a memory. At this time, the electronic device may be required to access a separate interface for storing the data in the memory. For example, the electronic device can access the memory using a memory interface which is an interface other than the Ethernet interface. In other words, the CPU included in the electronic device can access the memory interface through another path. The CPU can access the memory module via the memory interface and then store the data.

계층 구조 830은 다양한 실시 예들에 따른, 시리얼 허브 120의 인터페이스의 계층 구조를 나타낸다. 상기 시리얼 허브 120의 인터페이스는 메모리/인터넷 인터페이스일 수 있다. 여기서, 상기 메모리/이더넷 인터페이스는 하이브리드 시리얼 인터페이스로 지칭될 수 있다. 계층 구조 830에 따르면, 메모리 모듈 및 이더넷 모듈의 어플리케이션 계층 850은 분리되지만, 링크 계층 및 물리 계층의 프로토콜은 공통된다. 즉, 메모리 모듈 및 이더넷 모듈은 동일한 링크 계층 및 물리 계층의 프로토콜을 사용한다. 예를 들면, 상기 하이브리드 시리얼 프로토콜은 물리 계층에서의 시리얼 라인 인터페이스(예: 10GKR-BASE)로 구현될 수 있다. 물리 계층의 프로토콜이 공통됨으로 인해, 다양한 실시 예에 따른 시리얼 허브 120에, 메모리 모듈 및 이더넷 모듈은 구분 없이 연결될 수 있다. 또한, 물리 계층의 프로토콜이 공통됨으로 인해, 메모리 모듈 및 이더넷 모듈 간 스위치 및 릴레이 구성이 가능하다. 링크 계층의 프로토콜은 메모리 모듈 및 이더넷 모듈을 수용할 수 있도록 설계된다. 이러한 링크 계층의 프로토콜은 커널(kernel)이하의 드라이버 수정만으로 구성될 수 있다. The hierarchy 830 represents a hierarchical structure of interfaces of the serial hub 120, according to various embodiments. The interface of the serial hub 120 may be a memory / internet interface. Here, the memory / Ethernet interface may be referred to as a hybrid serial interface. According to the hierarchy 830, the application layer 850 of the memory module and the Ethernet module are separated, but the protocols of the link layer and the physical layer are common. That is, the memory module and the Ethernet module use the same link layer and physical layer protocol. For example, the hybrid serial protocol can be implemented as a serial line interface (e.g., 10GKR-BASE) in the physical layer. Since the protocol of the physical layer is common, the memory module and the Ethernet module can be connected to the serial hub 120 according to various embodiments without any distinction. Further, since the protocol of the physical layer is common, a switch and a relay configuration between the memory module and the Ethernet module are possible. The link layer protocol is designed to accommodate memory modules and Ethernet modules. These link layer protocols can be configured only with driver modifications below the kernel.

다양한 실시 예들에 따른, 전자 장치 100은 메모리 모듈 및 이더넷 모듈을 모두 사용하는 어플리케이션을 사용할 수 있다. 상기 메모리 모듈은 데이터 저장을 위하여 사용될 수 있다. 상기 이더넷 모듈은 다른 장치와의 데이터 통신을 위하여 사용될 수 있다. 상기 어플리케이션은 상기 어플리케이션 850일 수 있다.According to various embodiments, the electronic device 100 may use an application that uses both a memory module and an Ethernet module. The memory module may be used for data storage. The Ethernet module may be used for data communication with other devices. The application may be the application 850.

상기 전자 장치 100은 다른 전자 장치와 통신을 수행하기 위하여, 이더넷 인터페이스를 사용할 수 있다. 상기 전자 장치 100은 이더넷 모듈을 통하여 데이터를 수신할 수 있다. 상기 이더넷 모듈은 상기 도 4의 이더넷 모듈 421일 수 있다. 상기 데이터를 메모리 모듈 223에게 저장하기 위하여, 상기 시리얼 허브 120은 메모리 인터페이스가 요구될 수 있다. 상기 시리얼 허브 120은, 상기 메모리 인터페이스를 통하여, 상기 메모리 모듈 223에 상기 데이터를 저장할 수 있다.The electronic device 100 may use an Ethernet interface to perform communications with other electronic devices. The electronic device 100 can receive data through the Ethernet module. The Ethernet module may be the Ethernet module 421 of FIG. To store the data in the memory module 223, the serial hub 120 may require a memory interface. The serial hub 120 may store the data in the memory module 223 through the memory interface.

상기 시리얼 허브 120은, 메모리 할당을 위한 프로토콜 및 이더넷 통신을 위한 프로토콜을 설정할 수 있다. 상기 프로토콜은 상기 도 4의 하이브리드 시리얼 프로토콜로 지칭될 수 있다. 상기 하이브리드 시리얼 프로토콜은 제1 계층 및 제2 계층에 대한 프로토콜일 수 있다. The serial hub 120 may set a protocol for memory allocation and a protocol for Ethernet communication. The protocol may be referred to as the hybrid serial protocol of FIG. The hybrid serial protocol may be a protocol for the first layer and the second layer.

상기 전자 장치 100은 이종 인터페이스를 위한 별도의 경로를 사용하지 않고 데이터를 저장할 수 있다. 상기 전자 장치 100은 시리얼 허브 120의 인터페이스 상에서 상기 데이터를 다른 장치로부터 수신하고, 메모리에 저장할 수 있다. 상기 전자 장치 100은 시리얼 허브 120을 통하여 하나의 인터페이스를 구성할 수 있다. 상기 시리얼 허브 120은 상기 이더넷 모듈 421 및 상기 메모리 모듈 223과 모두 시리얼 라인으로 연결될 수 있다. 상기 시리얼 허브 120은 시리얼 라인과 연결되기 위한 시리얼 인터페이스를 구성할 수 있다. The electronic device 100 can store data without using a separate path for the heterogeneous interface. The electronic device 100 may receive the data from another device on the interface of the serial hub 120 and store the data in memory. The electronic device 100 may configure one interface through the serial hub 120. The serial hub 120 may be connected to both the Ethernet module 421 and the memory module 223 through a serial line. The serial hub 120 may configure a serial interface to be connected to the serial line.

도 9는 본 개시의 다양한 실시 예들에 따른 전자 장치의 흐름을 도시한다. 상기 전자 장치는 상기 도 1의 전자 장치 100일 수 있다. 상기 전자 장치 100은 상기 도 1의 CPU 110, 시리얼 허브 120, 메모리 모듈 130, 및 메모리 모듈 140을 포함할 수 있다. 상기 시리얼 허브 120은 상기 CPU 110 및 상기 메모리 모듈 130, 메모리 모듈 140과 각각 시리얼 라인으로 연결될 수 있다. 9 shows a flow of an electronic device according to various embodiments of the present disclosure. The electronic device may be the electronic device 100 of FIG. The electronic device 100 may include the CPU 110, the serial hub 120, the memory module 130, and the memory module 140 of FIG. The serial hub 120 may be connected to the CPU 110, the memory module 130, and the memory module 140 through a serial line, respectively.

도 9를 참고하면, 910 동작에서, 상기 시리얼 허브 120은 상기 CPU 110으로부터 신호를 수신할 수 있다. 상기 시리얼 허브 120은 시리얼 통신 방식으로 상기 신호를 수신할 수 있다. 일부 실시 예들에서, 상기 신호는 데이터의 저장을 요청하는 신호일 수 있다. 다른 일부 실시 예들에서, 상기 신호는 메모리 모듈에 저장되어 있는 데이터를 요청하는 신호일 수 있다. 다른 일부 실시 예들에서, 상기 신호는 상기 시리얼 허브 120을 설정(configuration)하기 위한 신호일 수 있다. 상기 시리얼 허브 120은 상기 신호에 기반하여 특정 프로토콜을 설정할 수 있다. 예를 들면, 상기 시리얼 허브 120은, 상기 신호에 기반하여, 메모리 인터페이스를 위한 프로토콜을 설정할 수 있다. 다른 예를 들면, 상기 시리얼 허브 120은, 상기 신호에 기반하여, 이더넷 인터페이스를 위한 프로토콜을 설정할 수도 있다. 또 다른 예를 들면, 상기 시리얼 허브 120은, 상기 신호에 기반하여, DMA 기능을 수행하도록 설정될 수 있다. 상기 시리얼 허브 120은, 특정 데이터를 수신 시, 상기 특정 데이터를 상기 CPU 110에게 전송하지 않고 바로 메모리 모듈 140에 저장하도록 구성될 수 있다. 9, in operation 910, the serial hub 120 may receive a signal from the CPU 110. In operation, The serial hub 120 can receive the signal in a serial communication manner. In some embodiments, the signal may be a signal requesting storage of data. In some other embodiments, the signal may be a signal requesting data stored in a memory module. In some other embodiments, the signal may be a signal for configuring the serial hub 120. The serial hub 120 may set a specific protocol based on the signal. For example, the serial hub 120 may establish a protocol for a memory interface based on the signal. As another example, the serial hub 120 may set a protocol for the Ethernet interface based on the signal. As another example, the serial hub 120 may be configured to perform a DMA function based on the signal. The serial hub 120 may be configured to store the specific data in the memory module 140 without transmitting the specific data to the CPU 110 upon receipt of the specific data.

920 동작에서, 상기 시리얼 허브 120은 상기 신호에 기반하여, 복수의 메모리 모듈들 중 CPU 110을 위한 메모리 모듈을 결정할 수 있다. In operation 920, the serial hub 120 may determine a memory module for the CPU 110 among a plurality of memory modules based on the signal.

일부 실시 예들에서, 상기 시리얼 허브 120은, 상기 신호에 기반하여 쓰기 동작을 위한 메모리 모듈을 결정할 수 있다. 상기 신호는 데이터의 저장을 요청하는 신호일 수 있다. 상기 시리얼 허브 120은 복수의 메모리 모듈들 중에서 상기 쓰기 동작을 위한 메모리 모듈을 결정할 수 있다. 상기 복수의 메모리 모듈들은 상기 메모리 모듈 130 및 상기 메모리 모듈 140을 포함할 수 있다. 상기 시리얼 허브 120은 상기 데이터를 상기 메모리 모듈 130에 저장할 수 있다. 상기 시리얼 허브 120은 시리얼 통신 방식을 통하여, 상기 데이터를 상기 메모리 모듈 130에 저장할 수 있다. 상기 시리얼 허브 120은 송신 시리얼 라인을 통하여 상기 데이터를 상기 메모리 모듈 130에 저장할 수 있다. In some embodiments, the serial hub 120 may determine a memory module for a write operation based on the signal. The signal may be a signal requesting storage of data. The serial hub 120 may determine a memory module for the write operation among a plurality of memory modules. The plurality of memory modules may include the memory module 130 and the memory module 140. The serial hub 120 may store the data in the memory module 130. The serial hub 120 may store the data in the memory module 130 through a serial communication method. The serial hub 120 may store the data in the memory module 130 via a transmission serial line.

다른 일부 실시 예들에서, 상기 시리얼 허브 120은, 상기 신호에 기반하여 읽기 동작을 위한 상기 메모리 모듈을 결정할 수 있다. 상기 신호는 데이터의 호출을 요청하는 신호일 수 있다. 상기 시리얼 허브 120은 상기 복수의 메모리 모듈들 중에서 상기 데이터가 저장되어 있는 메모리 모듈 140을 검색할 수 있다. 상기 시리얼 허브 120은 시리얼 통신 방식을 통하여, 상기 데이터를 요청하는 신호를 상기 메모리 모듈 140에 송신할 수 있다. 상기 시리얼 허브 120은, 상기 데이터를 요청하는 신호에 기반하여, 상기 데이터를 상기 메모리 모듈 140으로부터 수신할 수 있다. 상기 시리얼 허브 120은 시리얼 통신 방식을 통하여, 상기 데이터를 상기 메모리 모듈 140으로부터 수신할 수 있다. 상기 시리얼 허브 120은 수신 시리얼 라인을 통하여 상기 데이터를 상기 메모리 모듈 130로부터 수신할 수 있다.In some other embodiments, the serial hub 120 may determine the memory module for a read operation based on the signal. The signal may be a signal requesting a call of data. The serial hub 120 may search the memory module 140 in which the data is stored among the plurality of memory modules. The serial hub 120 can transmit a signal requesting the data to the memory module 140 through a serial communication method. The serial hub 120 may receive the data from the memory module 140 based on a signal requesting the data. The serial hub 120 can receive the data from the memory module 140 through a serial communication method. The serial hub 120 may receive the data from the memory module 130 via a receive serial line.

도 10은 본 개시의 다양한 실시 예들에 따른 전자 장치의 메모리 쉐어링의 흐름을 도시한다. 상기 전자 장치는 상기 도 3의 전자 장치 100일 수 있다. 상기 전자 장치 100은 상기 도 3의 CPU 110, CPU 210, 시리얼 허브 120, 메모리 모듈들 221, 222, 223, 224, 225, 226을 포함할 수 있다. 상기 시리얼 허브 120은 상기 CPU 110, 상기 CPU 210 및 상기 복수의 메모리 모듈들(상기 메모리 모듈들 221, 222, 223, 224, 225, 226) 각각과 시리얼 라인으로 연결될 수 있다. 상기 시리얼 허브 120은 상기 시리얼 라인을 통하여 상기 복수의 메모리 모듈들 각각과 독립적으로 데이터 통신을 수행할 수 있다.10 illustrates a flow of memory sharing of an electronic device in accordance with various embodiments of the present disclosure. The electronic device may be the electronic device 100 of FIG. The electronic device 100 may include the CPU 110, the CPU 210, the serial hub 120, and the memory modules 221, 222, 223, 224, 225, and 226 shown in FIG. The serial hub 120 may be connected to the CPU 110, the CPU 210, and the plurality of memory modules (the memory modules 221, 222, 223, 224, 225, and 226, respectively) by a serial line. The serial hub 120 can independently perform data communication with each of the plurality of memory modules via the serial line.

도 10을 참고하면, 1010 단계에서, 상기 시리얼 허브 120은 제1 CPU로부터 제1 신호를 수신할 수 있다. 상기 제1 CPU는 상기 CPU 110일 수 있다. 일부 실시 예들에서, 상기 제1 신호는 데이터의 저장을 요청하는 신호일 수 있다. 다른 일부 실시 예들에서, 상기 제1 신호는 저장된 데이터의 호출을 요청하는 신호일 수 있다. Referring to FIG. 10, in step 1010, the serial hub 120 may receive a first signal from a first CPU. The first CPU may be the CPU 110. In some embodiments, the first signal may be a signal requesting storage of data. In some other embodiments, the first signal may be a signal requesting a call of stored data.

1020 단계에서, 상기 시리얼 허브 120은 제2 CPU로부터 제2 신호를 수신할 수 있다. 상기 제2 CPU는 상기 CPU 210일 수 있다. 일부 실시 예들에서, 상기 제2 신호는 데이터의 저장을 요청하는 신호일 수 있다. 다른 일부 실시 예들에서, 상기 제2 신호는 저장된 데이터의 호출을 요청하는 신호일 수 있다.In step 1020, the serial hub 120 may receive a second signal from the second CPU. The second CPU may be the CPU 210. In some embodiments, the second signal may be a signal requesting storage of data. In some other embodiments, the second signal may be a signal requesting a call of stored data.

1030 단계에서, 상기 시리얼 허브 120은 상기 제1 신호 및 상기 제2 신호에 기반하여 상기 복수의 메모리 모듈들 중에서, 상기 CPU 110을 위한 제1 메모리 모듈 및 상기 CPU 210를 위한 제2 메모리 모듈을 결정할 수 있다. 상기 제1 메모리 모듈은 메모리 모듈 221일 수 있다. 상기 제2 메모리 모듈은 메모리 모듈 222일 수 있다.In step 1030, the serial hub 120 determines a first memory module for the CPU 110 and a second memory module for the CPU 210 among the plurality of memory modules based on the first signal and the second signal . The first memory module may be a memory module 221. The second memory module may be a memory module 222.

일부 실시 예들에서, 상기 시리얼 허브 120은 상기 제1 신호에 대한 제1 데이터의 크기 및 상기 제2 신호에 대한 제2 데이터의 크기에 기반하여, 상기 메모리 모듈 221 및 상기 메모리 모듈 222를 각각 결정할 수 있다. 예를 들어, 상기 제1 데이터의 크기와 상기 제2 데이터의 크기보다 큰 경우, 상기 시리얼 허브 120은 상기 제1 데이터의 처리에 할당하는 메모리의 용량이 상기 제2 데이터의 처리에 할당하는 메모리의 용량보다 크도록 상기 메모리 모듈 221 및 상기 메모리 모듈 22를 각각 결정할 수 있다. In some embodiments, the serial hub 120 may determine the memory module 221 and the memory module 222, respectively, based on the magnitude of the first data for the first signal and the magnitude of the second data for the second signal have. For example, if the size of the first data is larger than the size of the second data, the serial hub 120 may allocate the capacity of the memory allocated to the processing of the first data to the memory allocated to the processing of the second data The memory module 221 and the memory module 22 can be respectively determined.

다른 일부 실시 예들에서, 상기 시리얼 허브 120은 상기 제1 데이터의 종류 및 상기 제2 데이터의 종류에 기반하여 상기 메모리 모듈 221 및 상기 메모리 모듈 222를 결정할 수도 있다. 상기 시리얼 허브 120은 복수의 메모리 모듈들 각각의 메모리 용량, 동작 속도, 종류 중 적어도 하나에 기반하여 상기 메모리 모듈 221 및 상기 메모리 모듈 222를 결정할 수 있다. 예를 들어, 상기 시리얼 허브 120은 상기 제1 데이터가 상기 제2 데이터보다 신속한 처리를 요하는 서비스에 관한 데이터인 경우, 메모리 모듈 222보다 동작 속도가 더 빠른 메모리 모듈 221의 메모리를 제1 데이터의 처리 동작에 할당할 수 있다.In some other embodiments, the serial hub 120 may determine the memory module 221 and the memory module 222 based on the type of the first data and the type of the second data. The serial hub 120 may determine the memory module 221 and the memory module 222 based on at least one of memory capacity, operation speed, and type of each of the plurality of memory modules. For example, when the first data is data related to a service requiring faster processing than the second data, the memory of the memory module 221, which has a higher operation speed than the memory module 222, Can be assigned to the processing operation.

도 11은 본 개시의 다양한 실시 예들에 따른 전자 장치의 이더넷 통신의 흐름을 도시한다. 상기 전자 장치는 상기 도 4의 전자 장치 100일 수 있다. 상기 전자 장치 100은 상기 도 4의 CPU 110, 상기 도 4의 CPU 210, 상기 도 4의 시리얼 허브 120, 상기 도 4의 이더넷 모듈들 421, 422, 메모리 모듈들 223, 224, 225, 226을 포함할 수 있다. 상기 시리얼 허브 120은 상기 CPU 110, 상기 CPU 210 및 상기 복수의 모듈들(상기 이더넷 모듈들 421, 422 및 상기 메모리 모듈들 223, 224, 225, 226) 각각과 시리얼 라인으로 연결될 수 있다. 상기 시리얼 허브 120은 상기 시리얼 라인을 통하여 상기 복수의 메모리 모듈들 및 상기 이더넷 모듈들 각각과 독립적으로 데이터를 송수신할 수 있다.11 illustrates the flow of Ethernet communication of an electronic device according to various embodiments of the present disclosure. The electronic device may be the electronic device 100 of FIG. The electronic device 100 includes the CPU 110 of FIG. 4, the CPU 210 of FIG. 4, the serial hub 120 of FIG. 4, the Ethernet modules 421 and 422 of FIG. 4, and the memory modules 223, 224, 225 and 226 can do. The serial hub 120 may be connected to the CPU 110, the CPU 210 and the plurality of modules (the Ethernet modules 421 and 422 and the memory modules 223, 224, 225 and 226, respectively) by a serial line. The serial hub 120 can independently transmit and receive data to and from the plurality of memory modules and the Ethernet modules through the serial line.

1110 단계에서, 상기 시리얼 허브 120은 상기 CPU 110으로부터 이더넷 신호를 수신할 수 있다. 상기 이더넷 신호는 다른 전자 장치와 연결되기 위한 신호일 수 있다. 일부 실시 예들에서, 상기 이더넷 신호는 상기 다른 전자 장치에게 데이터를 송신하기 위한 신호일 수 있다. 다른 일부 실시 예들에서, 상기 이더넷 신호는 상기 다른 전자 장치에게 데이터를 요청하기 위한 신호일 수 있다.In step 1110, the serial hub 120 may receive an Ethernet signal from the CPU 110. The Ethernet signal may be a signal to be coupled to another electronic device. In some embodiments, the Ethernet signal may be a signal for transmitting data to the other electronic device. In some other embodiments, the Ethernet signal may be a signal for requesting data from the other electronic device.

1120 단계에서, 상기 시리얼 허브 120은 상기 이더넷 신호에 기반하여, 이더넷 모듈 421을 통하여 데이터를 다른 전자 장치에게 송신 또는 다른 전자 장치로부터 수신할 수 있다. 즉, 상기 시리얼 허브 120은 상기 이더넷 모듈 421을 통하여 다른 전자 장치와 통신을 수행할 수 있다. 상기 시리얼 허브 120은 이더넷 인터페이스를 포함할 수 있다. In step 1120, the serial hub 120 may transmit data to or receive data from another electronic device through the Ethernet module 421 based on the Ethernet signal. That is, the serial hub 120 can communicate with other electronic devices through the Ethernet module 421. The serial hub 120 may include an Ethernet interface.

상기 시리얼 허브 120은, 시리얼 통신을 위한 적어도 하나의 라인으로, 상기 이더넷 모듈들 421, 422와 연결될 수 있다. 있다. 상기 시리얼 허브 120은, 시리얼 통신을 위한 적어도 하나의 라인으로, 메모리 모듈들 223, 224, 225, 226과 연결될 수 있다. 즉, 상기 시리얼 허브 120은, 메모리 인터페이스도 포함할 수 있다. 상기 시리얼 허브 120은 상기 적어도 하나의 라인을 통하여, 상기 메모리 모듈들 223, 224, 225, 226 각각과 독립적으로 상기 이더넷 모듈들 421, 422 각각과 연결될 수 있다. 상기 시리얼 허브 120은, 이더넷 모듈 및 메모리 모듈을 위한 하나의 인터페이스를 포함할 수 있다. The serial hub 120 may be connected to the Ethernet modules 421 and 422 through at least one line for serial communication. have. The serial hub 120 may be connected to the memory modules 223, 224, 225, and 226 in at least one line for serial communication. That is, the serial hub 120 may also include a memory interface. The serial hub 120 may be connected to each of the Ethernet modules 421 and 422 independently of the memory modules 223, 224, 225, and 226 through the at least one line. The serial hub 120 may include one interface for an Ethernet module and a memory module.

도 12는 시리얼 릴레이(serial relay)와 타겟 장치의 연결의 예를 도시한다. 시리얼 릴레이는 시리얼 릴레이 1210일 수 있다. 상기 시리얼 릴레이 1210은 인가되는 설정 신호에 따라 다양한 인터페이스를 제공할 수 있는 구조를 가질 수 있다. 상기 시리얼 릴레이 1210은 설정 가능한 시리얼 릴레이(configurable serial relay)로 지칭될 수 있다. 12 shows an example of a connection between a serial relay and a target device. The serial relay may be a serial relay 1210. The serial relay 1210 may have a structure capable of providing various interfaces according to an applied setting signal. The serial relay 1210 may be referred to as a configurable serial relay.

도 12를 참고하면, 상기 시리얼 릴레이 1210은 상기 타겟 장치 1220과 연결될 수 있다. 상기 타겟 장치(target device) 1220은 보드(board) 또는 카드(card)로 구현되는 디바이스(device)일 수 있다. 예를 들어, 상기 타겟 장치는 메모리 모듈을 포함하는 카드일 수 있다. 다른 예를 들어, 상기 타겟 장치는 이더넷 모듈을 포함하는 보드일 수 있다. 또 다른 예를 들어, 상기 타겟 장치는 CPU가 포함되는 보드일 수도 있다. 또 다른 예를 들어, 상기 타겟 장치는 GPU(graphic processor unit)가 포함되는 카드일 수도 있다. 또 다른 예를 들어, 상기 타겟 장치는 메모리 모듈 및 이더넷 모듈 모두를 포함하는 보드일 수도 있다.Referring to FIG. 12, the serial relay 1210 may be connected to the target device 1220. The target device 1220 may be a device implemented as a board or a card. For example, the target device may be a card including a memory module. As another example, the target device may be a board including an Ethernet module. As another example, the target device may be a board including a CPU. As another example, the target device may be a card including a graphics processor unit (GPU). As another example, the target device may be a board including both a memory module and an Ethernet module.

상기 시리얼 릴레이 1210은 입출력 포트를 통해, 타겟 장치 1220과 연결될 수 있다. 상기 시리얼 릴레이 1210은 적어도 하나의 입출력 포트를 포함할 수 있다. 상기 적어도 하나의 입출력 포트는 적어도 하나의 시리얼 라인과 연결되기 위한 입출력 포트일 수 있다. 상기 시리얼 릴레이 1210은 상기 적어도 하나의 입출력 포트 및 상기 적어도 하나의 시리얼 라인을 통하여 상기 타겟 장치 1220과 연결될 수 있다. 일부 실시 예들에서, 상기 적어도 하나의 입출력 포트는 적어도 하나의 채널을 포함할 수 있다. 예를 들면, 상기 적어도 하나의 채널은 4개의 채널일 수 있다. 다른 예를 들면, 상기 적어도 하나의 채널은 8개의 채널일 수 있다. 또 다른 예를 들면, 상기 적어도 하나의 채널은 32개의 채널일 수 있다. 상기 채널의 개수는 데이터 전송을 위한 대역폭(bandwidth)을 나타낼 수 있다. 상기 시리얼 릴레이 1210은 필요에 따라, 모듈마다 적응적으로 채널을 분배할 수 있다. 상기 채널은 래인(lane)으로 지칭될 수 있다. 또는 상기 채널은 핀으로 지칭될 수도 있다.The serial relay 1210 may be connected to the target device 1220 through an input / output port. The serial relay 1210 may include at least one input / output port. The at least one input / output port may be an input / output port connected to at least one serial line. The serial relay 1210 may be connected to the target device 1220 through the at least one input / output port and the at least one serial line. In some embodiments, the at least one input / output port may include at least one channel. For example, the at least one channel may be four channels. As another example, the at least one channel may be eight channels. As another example, the at least one channel may be 32 channels. The number of channels may represent a bandwidth for data transmission. The serial relay 1210 can adaptively distribute channels for each module as needed. The channel may be referred to as a lane. Or the channel may be referred to as a pin.

상기 시리얼 릴레이 1210은 시리얼 통신을 수행할 수 있다. 상기 시리얼 릴레이 1210은 상기 타겟 장치 1220과 상기 적어도 하나의 시리얼 라인으로 연결될 수 있다. 상기 시리얼 릴레이 1210은 상기 시리얼 라인을 통하여, 상기 타겟 장치 1220과 시리얼 통신을 수행할 수 있다. 상기 시리얼 릴레이 1210은 상기 시리얼 통신을 통하여 데이터를 전송할 수 있다. 이 경우, 상기 시리얼 릴레이 1210은 상기 데이터의 전송을 위하여, 상기 데이터를 임시로 저장하는 버퍼의 기능을 수행할 수 있다. The serial relay 1210 can perform serial communication. The serial relay 1210 may be connected to the target device 1220 via the at least one serial line. The serial relay 1210 can perform serial communication with the target device 1220 through the serial line. The serial relay 1210 can transmit data through the serial communication. In this case, the serial relay 1210 may function as a buffer for temporarily storing the data for transmission of the data.

상기 시리얼 릴레이 1210은 타겟 장치 1220과 시리얼 방식으로 연결됨으로써, 다른 연결과 독립적으로 동작할 수 있다. 즉, 상기 시리얼 릴레이 1210은, 다른 메모리 모듈 또는 다른 이더넷 모듈의 동작 여부와 관계 없이, 상기 타겟 장치 1220과의 동작 여부를 결정할 수 있다. The serial relay 1210 is connected to the target device 1220 in a serial manner, so that the serial relay 1210 can operate independently of other connections. That is, the serial relay 1210 can determine whether to operate with the target device 1220 regardless of whether the other memory module or another Ethernet module is operating.

일부 실시 예들에서, 상기 시리얼 릴레이 1210은 보드(board)/카드(card) 간의 연결 및 모듈의 확장을 위한 릴레이(relay)일 수 있다. 상기 시리얼 릴레이 1210은 모듈의 추가적인 연결을 지원할 수 있다. 예를 들어, 상기 시리얼 릴레이 1210은 CPU가 포함되는 보드와 제1 메모리 모듈을 포함하는 보드를 연결할 수 있다. 상기 시리얼 릴레이 1210은 추가적으로 제2 메모리 모듈을 연결할 수 있다. 상기 시리얼 릴레이 1210은 상기 CPU가 포함되는 보드, 상기 제1 메모리 모듈, 및 상기 제2 메모리 모듈과 모두 시리얼 라인으로 연결될 수 있다. In some embodiments, the serial relay 1210 may be a relay for connection between boards / cards and expansion of the module. The serial relay 1210 may support an additional connection of the module. For example, the serial relay 1210 may connect a board including a CPU and a board including a first memory module. The serial relay 1210 may additionally connect a second memory module. The serial relay 1210 may be connected to the board including the CPU, the first memory module, and the second memory module by a serial line.

상기 시리얼 릴레이 1210은 리피터(repeater)의 역할을 수행할 수 있다. 상기 시리얼 릴레이 1210은 시리얼 연결로 확장되는 모듈들 간의 통신을 지원하기 위하여 상기 리피터의 기능을 수행할 수 있다. 상기 시리얼 릴레이 1210은 상대적으로 먼 거리로 연결되어 있는 모듈과의 통신을 위해, 데이터의 전송 신호를 증폭시킬 수 있다. The serial relay 1210 may serve as a repeater. The serial relay 1210 may perform the function of the repeater to support communication between the modules extended by the serial connection. The serial relay 1210 can amplify a data transmission signal for communication with a module connected at a relatively long distance.

다른 일부 실시 예들에서, 상기 시리얼 릴레이 1210은 메모리 인터페이스에서 이더넷 인터페이스의 확장을 위한 릴레이(relay)일 수 있다. 상기 시리얼 릴레이 1210은 메모리 할당을 위한 인터페이스 및 이더넷 연결을 위한 인터페이스 모두를 제공할 수 있다. 예를 들어, 상기 시리얼 릴레이 1210은 CPU를 포함하는 보드와 이더넷 모듈을 포함하는 보드를 연결할 수 있다. In some other embodiments, the serial relay 1210 may be a relay for expansion of the Ethernet interface at the memory interface. The serial relay 1210 may provide both an interface for memory allocation and an interface for Ethernet connection. For example, the serial relay 1210 can connect a board including a CPU and a board including an Ethernet module.

도 13은 시리얼 릴레이와 복수의 타겟 장치들의 연결의 예를 도시한다. 상기 시리얼 릴레이는 상기 도 12의 시리얼 릴레이 1210일 수 있다. 상기 복수의 타겟 장치는 상기 도 12의 타겟 장치 1220 및 타겟 장치 1320을 포함할 수 있다.13 shows an example of the connection of a serial relay and a plurality of target devices. The serial relay may be the serial relay 1210 of FIG. The plurality of target devices may include the target device 1220 and the target device 1320 of FIG.

도 13을 참고하면, 블록도 1300은 상기 릴레이 1210과 상기 타겟 장치 1220 및 상기 타겟 장치 1320 간의 연결을 도시한다. 상기 릴레이 1210은 입출력 포트 1215를 포함할 수 있다. 상기 입출력 포트 1215는 2개의 채널을 가질 수 있다. 상기 2개의 채널은 시리얼 통신을 수행하기 위한 채널일 수 있다. 상기 타겟 장치 1220은 입출력 포트 1225를 포함할 수 있다. 상기 입출력 포트 1225는 4개의 채널을 가질 수 있다. 상기 입출력 포트 1225는 2개의 채널에 해당하는 입출력 포트 1225a와 다른 2개의 채널에 해당하는 입출력 포트 1225b로 구성될 수 있다. 상기 타겟 장치 1320은 입출력 포트 1325를 포함할 수 있다. 상기 입출력 포트 1325는 4개의 채널을 가질 수 있다.Referring to FIG. 13, a block diagram 1300 illustrates the connection between the relay 1210 and the target device 1220 and the target device 1320. The relay 1210 may include an input / output port 1215. The input / output port 1215 may have two channels. The two channels may be channels for performing serial communication. The target device 1220 may include an input / output port 1225. The input / output port 1225 may have four channels. The input / output port 1225 may include an input / output port 1225a corresponding to two channels and an input / output port 1225b corresponding to two channels. The target device 1320 may include an input / output port 1325. The input / output port 1325 may have four channels.

상기 릴레이 1210은 상기 타겟 장치 1220과 시리얼 통신을 수행할 수 있다. 상기 릴레이 1210은 상기 입출력 포트 1215를 통하여 상기 타겟 장치 1220과 시리얼 통신을 수행할 수 있다. 상기 릴레이 1210은 2개의 채널로 상기 타겟 장치 1220과 시리얼 통신을 수행할 수 있다. 상기 타겟 장치 1220은 상기 입출력 포트 1225a를 통하여 상기 릴레이 1210과 시리얼 통신을 수행할 수 있다. The relay 1210 may perform serial communication with the target device 1220. The relay 1210 can perform serial communication with the target device 1220 through the input / output port 1215. The relay 1210 can perform serial communication with the target device 1220 through two channels. The target device 1220 can perform serial communication with the relay 1210 through the input / output port 1225a.

상기 타겟 장치 1220은 상기 타겟 장치 1320과 시리얼 통신을 수행할 수 있다. 상기 타겟 장치 1220은 상기 입출력 포트 1225b를 통하여 상기 타겟 장치 1320과 시리얼 통신을 수행할 수 있다. 상기 입출력 포트 1225b는 릴레이 기능을 위한 입출력 포트일 수 있다. 상기 타겟 장치 1220은 2개의 입력 채널로 시리얼 통신을 수행할 수 있다. 상기 타겟 장치 1320은 상기 입출력 포트 1325를 통하여 상기 타겟 장치 1220과 시리얼 통신을 수행할 수 있다. The target device 1220 may perform serial communication with the target device 1320. The target device 1220 can perform serial communication with the target device 1320 through the input / output port 1225b. The input / output port 1225b may be an input / output port for a relay function. The target device 1220 can perform serial communication with two input channels. The target device 1320 may perform serial communication with the target device 1220 through the input / output port 1325.

예를 들면, 상기 릴레이 1210은 신호를 상기 타겟 장치 1220에게 전송할 수 있다. 상기 타겟 장치 1220은 상기 릴레이 1210으로부터 수신한 신호를 상기 타겟 장치 1320에게 송신할 수 있다. 상기 타겟 장치 1220은 2개의 채널을 통하여 상기 신호를 상기 타겟 장치 1320에게 송신할 수 있다. 상기 타겟 장치 1330은 상기 타겟 장치 1220으로부터 상기 신호를 수신할 수 있다. For example, the relay 1210 may send a signal to the target device 1220. The target device 1220 may send a signal received from the relay 1210 to the target device 1320. The target device 1220 may transmit the signal to the target device 1320 via two channels. The target device 1330 may receive the signal from the target device 1220.

일부 실시 예들에서, 상기 타겟 장치 1320은 상기 입출력 포트 1325의 4개의 채널을 모두 사용할 수 있다. 상기 타겟 장치 1220은 2개의 채널을 사용하나, 상기 타겟 장치 1320은 4개의 채널을 사용하여 시리얼 통신을 수행할 수 있다. 상기 시리얼 통신은 동기식 시리얼 통신일 수 있다.In some embodiments, the target device 1320 may use all four channels of the input / output port 1325. The target device 1220 uses two channels, but the target device 1320 can perform serial communication using four channels. The serial communication may be a synchronous serial communication.

다른 일부 실시 예들에서, 상기 타겟 장치 1320은 상기 입출력 포트 1325의 4개의 채널들 중 2개의 채널만을 사용할 수 있다. 상기 타겟 장치 1220, 상기 타겟 장치 1320 모두 2개의 채널만을 이용하여 시리얼 통신을 수행할 수 있다. 상기 시리얼 통신은 비동기식(asynchronous) 시리얼 통신일 수 있다. In some other embodiments, the target device 1320 may use only two of the four channels of the input / output port 1325. The target device 1220 and the target device 1320 can perform serial communication using only two channels. The serial communication may be an asynchronous serial communication.

추가적으로, 상기 타겟 장치 1320은 상기 입출력 포트 1325의 4개의 채널들 중 2개의 채널은 신호의 수신, 다른 2개의 채널은 상기 신호의 전달을 위하여 사용할 수 있다. 도 13에는 도시되지 않았으나, 상기 타겟 장치 1330은 입출력 포트 1325 중 다른 2개의 채널에 해당하는 입출력 포트로 다른 타겟 장치에게 신호를 전달할 수 있다. 이러한 방식으로, 상기 릴레이 1210은 복수의 타겟 장치들의 연속적인 추가가 가능할 수 있다. 상기 복수의 타겟 장치들의 연결은 종속 연결(cascade connection)으로 지칭될 수 있다. 상기 릴레이 1210은 상기 종속 연결로 인하여, 상대적으로 먼 거리에 있는 타겟 장치에게 신호를 전달하기 위하여, 상기 신호를 증폭시킬 수 있다. 즉, 상기 릴레이 1210은 리피터의 역할을 수행할 수 있다.In addition, the target device 1320 may use two of the four channels of the input / output port 1325 for signal reception and the other two channels for transmission of the signal. Although not shown in FIG. 13, the target device 1330 may transmit signals to other target devices through input / output ports corresponding to the other two channels of the input / output port 1325. In this manner, the relay 1210 may be capable of continuous addition of a plurality of target devices. The connection of the plurality of target devices may be referred to as a cascade connection. The relay 1210 may amplify the signal to deliver a signal to a target device at a relatively long distance due to the cascade connection. That is, the relay 1210 may serve as a repeater.

블록도 1350은 상기 릴레이 1210과 상기 타겟 장치 1220 및 상기 타겟 장치 1320 간의 논리적 연결을 도시한다. 상기 릴레이 1210은 상기 타겟 장치 1220 및 상기 타겟 장치 1320과 동작적으로 결합될 수 있다. 상기 전자 장치 100은, 상기 릴레이 1210을 통하여, 타겟 장치들을 필요에 따라 시리얼 통신 방식으로 확장할 수 있다. Block diagram 1350 illustrates the logical connection between the relay 1210 and the target device 1220 and the target device 1320. The relay 1210 may be operatively coupled to the target device 1220 and the target device 1320. The electronic device 100 may extend the target devices through the relay 1210 in a serial communication manner as needed.

도 14는 본 개시의 다양한 실시 예들에 따른 시리얼 릴레이의 실시 예들을 도시한다. 상기 시리얼 릴레이는 상기 도 12의 시리얼 릴레이 1210일 수 있다. 도 14a, 도 14b, 도 14c, 도 14d는 각각 상기 시리얼 릴레이 1210의 설정(configuration)에 따른 실시 예들을 도시한다.14 illustrates embodiments of a serial relay in accordance with various embodiments of the present disclosure. The serial relay may be the serial relay 1210 of FIG. 14A, 14B, 14C, and 14D show embodiments according to the configuration of the serial relay 1210, respectively.

도 14a는 하나의 인터페이스를 지원하는 시리얼 릴레이 1210의 일 실시 예를 도시한다. 14A illustrates one embodiment of a serial relay 1210 that supports one interface.

도 14a를 참고하면, 상기 시리얼 릴레이 1210은 CPU를 포함하는 보드 1410과 시리얼 라인으로 연결될 수 있다. 예를 들면, 상기 시리얼 릴레이 1210은 상기 CPU와 연결시 각 보드의 에지(edge)부분을 통하여, 시리얼 라인으로 연결될 수 있다. 다른 예를 들면, 상기 시리얼 릴레이 1210은 상기 CPU와 보드의 외부에 있는(external) 시리얼 라인으로 연결될 수도 있다. 상기 CPU는 메모리 컨트롤러를 포함할 수 있다. 상기 시리얼 릴레이 1210은 메모리 모듈을 포함하는 보드 1420과 시리얼 라인으로 연결될 수 있다. 상기 시리얼 릴레이 1210은 시리얼 인터페이스로 구성되는 메모리 인터페이스를 지원할 수 있다.Referring to FIG. 14A, the serial relay 1210 may be connected to a board 1410 including a CPU by a serial line. For example, when the serial relay 1210 is connected to the CPU, the serial relay 1210 may be connected to the serial line through an edge portion of each board. As another example, the serial relay 1210 may be connected to an external serial line of the CPU and the board. The CPU may include a memory controller. The serial relay 1210 may be connected to a board 1420 including a memory module by a serial line. The serial relay 1210 may support a memory interface configured with a serial interface.

상기 시리얼 릴레이 1210은 CPU를 포함하는 보드 1410과 시리얼 라인으로 연결될 수도 있다. 상기 CPU는 이더넷 컨트롤러가 내장된 CPU일 수 있다. 상기 시리얼 릴레이 1210은 이더넷 모듈을 포함하는 보드 1425와 시리얼 라인으로 연결될 수도 있다. 상기 이더넷 모듈은 이더넷 파이(ethernet phy)로 지칭될 수 있다. 상기 시리얼 릴레이 1210은 시리얼 인터페이스로 구성되는 이더넷 인터페이스를 지원할 수 있다.The serial relay 1210 may be connected to a board 1410 including a CPU by a serial line. The CPU may be a CPU having an Ethernet controller incorporated therein. The serial relay 1210 may be connected to the board 1425 including the Ethernet module by a serial line. The Ethernet module may be referred to as an ethernet phy. The serial relay 1210 may support an Ethernet interface configured with a serial interface.

상기 시리얼 릴레이 1210은 시리얼 인터페이스를 지원할 수 있다. 예를 들어,물리 계층에서, 상기 시리얼 인터페이스는 10G-KR 또는 40G-KR일 수 있다. 상기 시리얼 릴레이 1210은 상기 시리얼 인터페이스를 지원하기 위한 프로토콜을 연결되는 모듈에 맞게 설정 가능(configurable)하다. 일부 실시 예들에서, 상기 시리얼 릴레이 1210이 보 드 1420과 연결되는 경우, 상기 릴레이 1210은 메모리 인터페이스로 설정될 수 있다. 다른 일부 실시 예들에서, 상기 시리얼 릴레이 1210이 보드 1425와 연결되는 경우, 상기 릴레이 1210은 이더넷 인터페이스로 설정될 수 있다. 상기 릴레이 1210은 상기 CPU로부터 수신되는 제어 신호에 기반하여 특정 인퍼테이스로 설정될 수 있다.The serial relay 1210 may support a serial interface. For example, in the physical layer, the serial interface may be 10G-KR or 40G-KR. The serial relay 1210 is configurable in accordance with a module for supporting the serial interface. In some embodiments, when the serial relay 1210 is coupled to the board 1420, the relay 1210 may be configured as a memory interface. In some other embodiments, when the serial relay 1210 is connected to the board 1425, the relay 1210 may be set to an Ethernet interface. The relay 1210 may be set to a specific impression based on a control signal received from the CPU.

도 14b는 다수의 인터페이스를 지원하는 시리얼 릴레이 1210의 일 실시 예를 도시한다.14B illustrates an embodiment of a serial relay 1210 that supports multiple interfaces.

상기 시리얼 릴레이 1210은 CPU를 포함하는 보드 1430과 시리얼 라인으로 연결될 수 있다. 상기 CPU는 메모리 컨트롤러 및 이더넷 컨트롤러 모두를 포함하는 CPU일 수 있다. 상기 시리얼 릴레이 1210은 보드 1440과 시리얼 라인으로 연결될 수도 있다. 상기 보드 1440은 메모리 모듈 1443 및 이더넷 모듈 1445를 모두 포함하는 보드일 수 있다. The serial relay 1210 may be connected to a board 1430 including a CPU by a serial line. The CPU may be a CPU including both a memory controller and an Ethernet controller. The serial relay 1210 may be connected to the board 1440 through a serial line. The board 1440 may be a board including both a memory module 1443 and an Ethernet module 1445.

상기 시리얼 릴레이 1210은 메모리 인터페이스 및 이더넷 인터페이스 모두를 지원하는 프로토콜이 구현되도록 설정될 수 있다. 상기 프로토콜은 물리 계층 및 데이터 링크 계층 중 적어도 하나에 대한 프로토콜일 수 있다. 일부 실시 예들에서, 상기 시리얼 릴레이 1210은 메모리 인터페이스에 대한 프로토콜을 구현하도록 설정될 수 있다. 다른 일부 실시 예들에서, 상기 시리얼 릴레이 1210은 이더넷 인터페이스에 대한 프로토콜을 구현하도록 설정될 수도 있다. 또 다른 일부 실시 예들에서, 상기 시리얼 릴레이 1210은 메모리 인터페이스 및 이더넷 인터페이스를 모두 지원하는 프로토콜을 구현하도록 설정될 수도 있다. 상기 시리얼 릴레이 1210은 동시에 상기 메모리 모듈 1443 및 상기 이더넷 모듈 1445와 데이터 통신을 수행할 수 있다. 상기 시리얼 릴레이 1210은 설정에 따라, 적응적으로 프로토콜을 구현할 수 있다. The serial relay 1210 may be configured to implement a protocol that supports both a memory interface and an Ethernet interface. The protocol may be a protocol for at least one of a physical layer and a data link layer. In some embodiments, the serial relay 1210 may be configured to implement a protocol for a memory interface. In some other embodiments, the serial relay 1210 may be configured to implement a protocol for an Ethernet interface. In some other embodiments, the serial relay 1210 may be configured to implement a protocol that supports both a memory interface and an Ethernet interface. The serial relay 1210 can simultaneously perform data communication with the memory module 1443 and the Ethernet module 1445. The serial relay 1210 can implement a protocol adaptively according to the setting.

상기 CPU는 상기 릴레이를 설정하기 위한 제어 신호를 송신할 수 있다.The CPU can transmit a control signal for setting the relay.

도 14c는 시리얼 릴레이 1210의 종속 연결의 예를 도시한다.14C shows an example of a cascade connection of the serial relay 1210. Fig.

상기 시리얼 릴레이 1210은 CPU를 포함하는 보드 1450과 시리얼 라인으로 연결될 수 있다. 상기 CPU는 메모리 컨트롤러를 포함하는 CPU일 수 있다. 상기 시리얼 릴레이 1210은 보드 1460과 시리얼 라인으로 연결될 수도 있다. 상기 보드 1460은 메모리 모듈 1461, 메모리 모듈 1463, 메모리 모듈 1465을 포함하는 보드일 수 있다. The serial relay 1210 may be connected to a board 1450 including a CPU by a serial line. The CPU may be a CPU including a memory controller. The serial relay 1210 may be connected to the board 1460 through a serial line. The board 1460 may be a board including a memory module 1461, a memory module 1463, and a memory module 1465.

상기 메모리 모듈 1461, 상기 메모리 모듈 1463, 상기 메모리 모듈 1465는 상기 시리얼 릴레이 1210과 종속적으로 연결될 수 있다. 구체적으로, 릴레이 모듈 1210은 상기 메모리 모듈 1461과 시리얼 라인으로 연결될 수 있다. 상기 메모리 모듈 1461은 상기 메모리 모듈 1463과 시리얼 라인으로 연결될 수 있다. 상기 메모리 모듈 1463은 상기 메모리 모듈 1465와 시리얼 라인으로 연결될 수 있다.The memory module 1461, the memory module 1463, and the memory module 1465 may be connected to the serial relay 1210 in a dependent manner. Specifically, the relay module 1210 may be connected to the memory module 1461 by a serial line. The memory module 1461 may be connected to the memory module 1463 by a serial line. The memory module 1463 may be connected to the memory module 1465 through a serial line.

상기 릴레이 1210은 신호를 상기 메모리 모듈 1465에게 전달하는 경우, 상기 메모리 모듈 1461, 상기 메모리 모듈 1463을 거쳐 상기 메모리 1465에게 전송될 수 있다. 일부 실시 예들에서, 상기 릴레이 1210은 상대적으로 거리가 먼 상기 메모리 모듈 1465에게 신호를 송신하기 위하여, 상기 신호의 출력을 증폭시킬 수 있다. The relay 1210 may be transmitted to the memory 1465 via the memory module 1461 and the memory module 1463 when a signal is transmitted to the memory module 1465. In some embodiments, the relay 1210 may amplify the output of the signal to transmit a signal to the memory module 1465 that is relatively far away.

상기 릴레이 1210은 상기 CPU로부터 데이터에 대한 신호를 수신할 수 있다. 상기 데이터에 대한 신호는 데이터를 요청하기 위한 신호일 수 있다. 상기 릴레이 1210은 상기 데이터에 대한 신호를 순차적으로 상기 메모리 모듈 1461, 상기 메모리 모듈 1463, 상기 메모리 모듈 1465에게 전송할 수 있다. The relay 1210 may receive a signal for data from the CPU. The signal for the data may be a signal for requesting data. The relay 1210 can sequentially transmit signals for the data to the memory module 1461, the memory module 1463, and the memory module 1465.

일부 실시 예들에서, 상기 릴레이 1210은 상기 데이터에 대한 메모리 자원의 할당량을 결정할 수 있다. 예를 들어, 상기 데이터에 대한 신호는 상기 메모리 모듈 1461에는 3만큼의 데이터를, 상기 메모리 모듈 1463에는 5만큼의 데이터를, 상기 메모리 모듈 1465에는 2만큼의 데이터를 저장하기 위한 신호일 수 있다. 상기 메모리 모듈 1461은 상기 신호 수신 시, 상기 3만큼의 데이터를 저장할 수 있다. 이후, 상기 메모리 모듈 1461은 상기 신호를 그대로 상기 메모리 모듈 1463에게 전송할 수 있다. 상기 메모리 모듈 1463은 상기 5만큼의 데이터를 저장한 뒤, 상기 신호를 그대로 상기 메모리 모듈 1465에게 전송할 수 있다. 상기 메모리 모듈 1465는 상기 2만큼의 데이터를 저장할 수 있다.In some embodiments, the relay 1210 may determine an amount of memory resource allocation for the data. For example, the signal for the data may be a signal for storing 3 data in the memory module 1461, 5 data in the memory module 1463, and 2 data in the memory module 1465. The memory module 1461 may store the 3 pieces of data when the signal is received. Then, the memory module 1461 can transmit the signal to the memory module 1463 as it is. The memory module 1463 may store the data of 5 and then transmit the signal to the memory module 1465 as it is. The memory module 1465 may store the data of the two.

다른 일부 실시 예들에서, 상기 릴레이 1210은 CPU로부터 상기 메모리 모듈들 각각에 대한 데이터의 할당량을 가리키는 지시 신호를 수신할 수도 있다. 이후 동작은, 상기 데이터에 대한 신호를 수신하는 경우에서의 동작과 동일할 수 있다.In some other embodiments, the relay 1210 may receive an indication signal from the CPU indicating an amount of allocation of data for each of the memory modules. The subsequent operation may be the same as the operation in the case of receiving the signal for the data.

도 14d는 다수의 인터페이스를 지원하는 시리얼 릴레이 1210의 종속 연결의 예를 도시한다.14D shows an example of a cascade connection of a serial relay 1210 supporting multiple interfaces.

상기 시리얼 릴레이 1210은 CPU를 포함하는 보드 1470과 시리얼 라인으로 연결될 수 있다. 상기 CPU는 메모리 컨트롤러 및 이더넷 컨트롤러를 포함하는 CPU일 수 있다. 상기 시리얼 릴레이 1210은 보드 1480과 시리얼 라인으로 연결될 수도 있다. 상기 보드 1460은 메모리 모듈 1481, 이더넷 모듈 1483, 메모리 모듈 1485를 포함하는 보드일 수 있다. The serial relay 1210 may be connected to a board 1470 including a CPU by a serial line. The CPU may be a CPU including a memory controller and an Ethernet controller. The serial relay 1210 may be connected to the board 1480 through a serial line. The board 1460 may be a board including a memory module 1481, an Ethernet module 1483, and a memory module 1485.

상기 메모리 모듈 1481, 상기 이더넷 모듈 1483, 상기 메모리 모듈 1485는 상기 시리얼 릴레이 1210과 종속적으로 연결될 수 있다. 구체적으로, 릴레이 모듈 1210은 상기 메모리 모듈 1481과 시리얼 라인으로 연결될 수 있다. 상기 메모리 모듈 1481은 상기 메모리 모듈 1483과 시리얼 라인으로 연결될 수 있다. 상기 메모리 모듈 1483은 상기 메모리 모듈 1485와 시리얼 라인으로 연결될 수 있다.The memory module 1481, the Ethernet module 1483, and the memory module 1485 may be connected to the serial relay 1210 in a dependent manner. Specifically, the relay module 1210 may be connected to the memory module 1481 via a serial line. The memory module 1481 may be connected to the memory module 1483 by a serial line. The memory module 1483 may be connected to the memory module 1485 by a serial line.

상기 릴레이 1210은 신호를 상기 메모리 모듈 1485에게 전달하는 경우, 상기 메모리 모듈 1481, 상기 이더넷 모듈 1483을 거쳐 상기 메모리 1485에게 전송될 수 있다. 일부 실시 예들에서, 상기 릴레이 1210은 상대적으로 거리가 먼 상기 메모리 모듈 1485에게 신호를 송신하기 위하여, 상기 신호의 출력을 증폭시킬 수 있다. The relay 1210 may be transmitted to the memory 1485 via the memory module 1481 and the Ethernet module 1483 when a signal is transmitted to the memory module 1485. In some embodiments, the relay 1210 may amplify the output of the signal to transmit a signal to the memory module 1485 that is relatively far away.

상기 릴레이 1210은 상기 CPU로부터 데이터에 대한 이더넷 신호를 수신할 수 있다. 상기 이더넷 신호는 다른 전자 장치에게 상기 데이터를 요청하기 위한 신호일 수 있다. 상기 릴레이 1210은 상기 데이터에 대한 신호를 순차적으로 상기 메모리 모듈 1481, 상기 이더넷 모듈 1483, 상기 메모리 모듈 1485에게 전송할 수 있다. 상기 메모리 모듈 1481은 상기 이더넷 신호 수신 시, 상기 신호를 그대로 상기 이더넷 모듈 1483에게 전송할 수 있다. 상기 이더넷 모듈 1483은 상기 신호에 기반하여, 상기 다른 전자 장치와 연결될 수 있다. 상기 이더넷 모듈 1483은 다른 전자 장치와 연결되는 것과 독립적으로, 상기 이더넷 신호를 그대로 상기 메모리 모듈 1485에게 전송할 수 있다. 이 때, 상기 시리얼 릴레이 1210은 메모리 인터페이스 및 이더넷 인터페이스를 모두 지원하는 프로토콜을 구현하도록 설정될 수 있다.The relay 1210 may receive an Ethernet signal for data from the CPU. The Ethernet signal may be a signal for requesting the data to another electronic device. The relay 1210 can sequentially transmit a signal for the data to the memory module 1481, the Ethernet module 1483, and the memory module 1485. When receiving the Ethernet signal, the memory module 1481 can transmit the signal to the Ethernet module 1483 as it is. The Ethernet module 1483 may be coupled to the other electronic device based on the signal. The Ethernet module 1483 can transmit the Ethernet signal to the memory module 1485 independently of being connected to other electronic devices. In this case, the serial relay 1210 may be configured to implement a protocol supporting both a memory interface and an Ethernet interface.

도 14에서는 보드를 기준으로 설명하였으나 이에 한정되지 않는다. 즉, 보드 대신 카드에도 상기 릴레이 1210의 동작은 동일하게 적용될 수 있다.Although the board has been described with reference to Fig. 14, the present invention is not limited thereto. That is, the operation of the relay 1210 may be applied to the card instead of the board.

한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.While the invention has been described in connection with what is presently considered to be the most practical and preferred embodiment, it is to be understood that the invention is not limited to the disclosed embodiments. Therefore, the scope of the present disclosure should not be limited to the embodiments described, but should be determined by the scope of the appended claims, as well as the appended claims.

그리고 본 명세서와 도면에 개시된 실시 예들은 본 발명의 내용을 쉽게 설명하고, 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 범위는 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.It is to be understood that both the foregoing general description and the following detailed description of the present invention are exemplary and explanatory and are intended to provide further explanation of the invention as claimed. Accordingly, the scope of the present invention should be construed as being included in the scope of the present invention, all changes or modifications derived from the technical idea of the present invention.

Claims (20)

전자 장치(electronic device)에 있어서,
CPU(central processing unit)와,
복수의 메모리 모듈들(memory modules)과,
상기 CPU 및 상기 복수의 메모리 모듈들 각각과, 시리얼 통신을 수행하기 위한 적어도 하나의 라인으로 연결되는 시리얼 허브(serial hub)를 포함하고,
상기 CPU는, 신호를 상기 시리얼 허브에게 송신하도록 구성되고,
상기 시리얼 허브는, 상기 신호에 기반하여, 상기 복수의 메모리 모듈들 중에서 상기 CPU를 위한 제1 메모리 모듈을 결정하도록 구성되는 전자 장치
In an electronic device,
A central processing unit (CPU)
A plurality of memory modules,
And a serial hub connected to each of the CPU, the plurality of memory modules, and at least one line for performing serial communication,
The CPU is configured to transmit a signal to the serial hub,
Wherein the serial hub is configured to determine, based on the signal, a first memory module for the CPU among the plurality of memory modules,
청구항 1에 있어서,
시리얼 통신을 수행하기 위한 적어도 하나의 라인으로 상기 시리얼 허브와 연결되는 다른 CPU를 더 포함하고,
상기 다른 CPU는 다른 신호를 상기 시리얼 허브에게 송신하도록 구성되고,
상기 시리얼 허브는, 상기 신호 및 상기 다른 신호에 기반하여, 상기 복수의 메모리 모듈들 중에서, 상기 제1 메모리 모듈 및 상기 다른 CPU를 위한 제2 메모리 모듈을 결정하도록 추가적으로 구성되는 전자 장치.
The method according to claim 1,
Further comprising another CPU connected to the serial hub as at least one line for performing serial communication,
The other CPU is configured to transmit another signal to the serial hub,
Wherein the serial hub is further configured to determine a first memory module and a second memory module for the other CPU among the plurality of memory modules based on the signal and the other signal.
청구항 1에 있어서,
시리얼 통신을 수행하기 위한 적어도 하나의 라인으로 상기 시리얼 허브와 연결되는 다른 CPU를 더 포함하고,
상기 다른 CPU는 다른 신호를 상기 시리얼 허브에게 송신하도록 구성되고,
상기 시리얼 허브는, 상기 신호 및 상기 다른 신호에 기반하여, 상기 제1 메모리 모듈의 메모리 영역 중에서, 상기 CPU에게 제공될 제1 메모리 영역 및 상기 다른 CPU에게 제공될 제2 메모리 영역을 결정하도록 추가적으로 구성되는 전자 장치.
The method according to claim 1,
Further comprising another CPU connected to the serial hub as at least one line for performing serial communication,
The other CPU is configured to transmit another signal to the serial hub,
Wherein the serial hub is further configured to determine, based on the signal and the other signal, a first memory area to be provided to the CPU and a second memory area to be provided to the other CPU from among the memory areas of the first memory module Lt; / RTI >
청구항 1에 있어서,
시리얼 통신을 수행하기 위한 적어도 하나의 라인으로 상기 시리얼 허브와 연결되는 다른 CPU를 더 포함하고,
상기 CPU는 제어 신호를 상기 시리얼 허브에게 송신하도록 추가적으로 구성되고,
상기 시리얼 허브는 상기 제어 신호에 기반하여, 상기 제1 메모리 모듈의 메모리를 상기 다른 CPU에게 제공하도록 추가적으로 구성되는 전자 장치.
The method according to claim 1,
Further comprising another CPU connected to the serial hub as at least one line for performing serial communication,
The CPU is further configured to transmit a control signal to the serial hub,
Wherein the serial hub is further configured to provide a memory of the first memory module to the other CPU based on the control signal.
청구항 1에 있어서,
시리얼 통신을 수행하기 위한 적어도 하나의 라인으로 상기 시리얼 허브와 연결되는 이더넷(ethernet) 모듈을 더 포함하고,
상기 CPU는, 다른 전자 장치와 통신하기 위한 이더넷 신호를 상기 시리얼 허브에게 송신하도록 추가적으로 구성되고,
상기 시리얼 허브는, 상기 이더넷 신호에 기반하여, 상기 이더넷 모듈을 통하여 데이터를 상기 다른 전자 장치에게 송신 또는 상기 다른 전자 장치로부터 수신하도록 추가적으로 구성되는 전자 장치.
The method according to claim 1,
Further comprising an ethernet module connected to the serial hub as at least one line for performing serial communication,
Wherein the CPU is further configured to transmit an Ethernet signal to the serial hub for communicating with another electronic device,
Wherein the serial hub is further configured to send data to or receive data from the other electronic device via the Ethernet module based on the Ethernet signal.
청구항 5에 있어서,
상기 시리얼 허브는,
상기 수신되는 데이터를 상기 CPU에게 전송하지 않고, 복수의 메모리 모듈들 중 제3 메모리 모듈에 전송하도록 추가적으로 구성되는 전자 장치.
The method of claim 5,
The serial hub includes:
And to transmit the received data to a third one of the plurality of memory modules without transmitting the received data to the CPU.
청구항 1에 있어서,
상기 시리얼 허브는,
상기 적어도 하나의 라인을 통하여, 상기 신호가 가리키는 데이터를 상기 결정된 제1 메모리 모듈에 저장하도록 추가적으로 구성되는 전자 장치.
The method according to claim 1,
The serial hub includes:
And store, via the at least one line, the data indicated by the signal in the determined first memory module.
청구항 1에 있어서,
상기 시리얼 허브는,
상기 결정된 제1 메모리 모듈로부터 상기 적어도 하나의 라인을 통하여 데이터를 수신하고, 상기 수신한 데이터를 상기 CPU에게 전송하도록 추가적으로 구성되는 전자 장치.
The method according to claim 1,
The serial hub includes:
And to receive data from the determined first memory module via the at least one line and to transmit the received data to the CPU.
청구항 1에 있어서,
상기 시리얼 통신을 수행하기 위한 상기 적어도 하나의 라인은,
상기 시리얼 허브에서 상기 복수의 메모리 모듈들 각각으로 신호가 전송되는 송신 시리얼 라인(transmit serial line)과,
상기 복수의 메모리 모듈들 각각에서 상기 시리얼 허브로 신호가 전송되는 수신 시리얼 라인(receive serial line)과,
상기 시리얼 허브 및 상기 복수의 메모리 모듈들 각각의 전압 레벨을 일치시키기 위한 접지 시리얼 라인(ground serial line)을 포함하는 전자 장치.
The method according to claim 1,
Wherein the at least one line for performing the serial communication comprises:
A transmit serial line through which signals are transmitted from the serial hub to each of the plurality of memory modules,
A receive serial line through which signals are transmitted from the plurality of memory modules to the serial hub,
And a ground serial line for matching the voltage levels of the serial hub and the plurality of memory modules, respectively.
청구항 1에 있어서,
상기 시리얼 허브는 상기 신호에 대한 가상 주소를 물리 주소로 변환하도록 구성되는 MMU(memory management unit)를 포함하는 전자 장치.
The method according to claim 1,
Wherein the serial hub comprises a memory management unit (MMU) configured to convert a virtual address for the signal to a physical address.
전자 장치(electronic device)의 동작 방법에 있어서,
상기 전자 장치의 시리얼 허브(serial hub)가, 상기 전자 장치의 CPU(central processing unit)로부터 신호를 수신하는 동작과,
상기 시리얼 허브가, 상기 신호에 기반하여, 상기 전자 장치의 복수의 메모리 모듈들(memory modules) 중에서, 상기 CPU를 위한 제1 메모리 모듈을 결정하는 동작을 포함하고,
상기 시리얼 허브는, 상기 CPU 및 상기 복수의 메모리 모듈들 각각과 시리얼 통신을 수행하기 위한 적어도 하나의 라인으로 연결되는 방법.
A method of operating an electronic device,
Wherein the serial hub of the electronic device receives a signal from a central processing unit (CPU) of the electronic device,
Wherein the serial hub comprises: determining, based on the signal, a first memory module for the CPU among a plurality of memory modules of the electronic device,
Wherein the serial hub is connected to at least one line for performing serial communication with the CPU and each of the plurality of memory modules.
청구항 11에 있어서,
상기 전자 장치의 다른 CPU로부터 다른 신호를 수신하는 동작과,
상기 신호 및 상기 다른 신호에 기반하여, 상기 복수의 메모리 모듈들 중에서, 상기 제1 메모리 모듈 및 상기 다른 CPU를 위한 제2 메모리 모듈을 결정하는 동작을 더 포함하고,
상기 다른 CPU는 시리얼 통신을 수행하기 위한 적어도 하나의 라인으로 상기 시리얼 허브와 연결되는 방법.
The method of claim 11,
Receiving another signal from another CPU of the electronic device;
Further comprising determining, based on the signal and the other signal, a first memory module and a second memory module for the other CPU among the plurality of memory modules,
And the other CPU is connected to the serial hub by at least one line for performing serial communication.
청구항 11에 있어서,
상기 전자 장치의 다른 CPU로부터 다른 신호를 수신하는 동작과,
상기 신호 및 상기 다른 신호에 기반하여, 상기 제1 메모리 모듈의 메모리 중에서, 상기 CPU에게 제공될 제1 메모리 영역 및 상기 다른 CPU에게 제공될 제2 메모리 영역을 결정하는 동작을 더 포함하고,
상기 다른 CPU는 시리얼 통신을 수행하기 위한 적어도 하나의 라인으로 상기 시리얼 허브와 연결되는 방법.
The method of claim 11,
Receiving another signal from another CPU of the electronic device;
Further comprising determining, based on the signal and the other signal, a first memory area to be provided to the CPU and a second memory area to be provided to the other CPU, among the memories of the first memory module,
And the other CPU is connected to the serial hub by at least one line for performing serial communication.
청구항 11에 있어서,
상기 전자 장치의 다른 CPU로부터 제어 신호를 수신하는 동작과,
상기 제어 신호에 기반하여 상기 제1 메모리 모듈의 메모리를 상기 다른 CPU에게 제공하는 동작을 더 포함하고,
상기 다른 CPU는 시리얼 통신을 수행하기 위한 적어도 하나의 라인으로 상기 시리얼 허브와 연결되는 방법.
The method of claim 11,
Receiving a control signal from another CPU of the electronic device,
Further comprising providing the memory of the first memory module to the other CPU based on the control signal,
And the other CPU is connected to the serial hub by at least one line for performing serial communication.
청구항 11에 있어서,
상기 CPU로부터 다른 전자 장치와 통신하기 위한 이더넷(ethernet) 신호를 수신하는 동작과,
상기 이더넷 신호에 기반하여, 상기 전자 장치의 이더넷 모듈을 통하여 데이터를 상기 다른 전자 장치에게 송신 또는 상기 다른 전자 장치로부터 수신하는 동작을 더 포함하고,
상기 이더넷 모듈은 시리얼 통신을 수행하기 위한 적어도 하나의 라인으로 상기 시리얼 허브와 연결되는 방법.
The method of claim 11,
Receiving an ethernet signal from the CPU to communicate with another electronic device;
Further comprising transmitting, based on the Ethernet signal, data to or from the other electronic device via an Ethernet module of the electronic device,
Wherein the Ethernet module is connected to the serial hub by at least one line for performing serial communication.
청구항 15에 있어서,
상기 수신되는 데이터를 상기 CPU에 전송하지 않고, 상기 복수의 메모리 모듈들 중 제3 메모리 모듈에게 전송하는 동작을 더 포함하는 방법.
16. The method of claim 15,
Further comprising transmitting the received data to a third one of the plurality of memory modules without transferring the received data to the CPU.
청구항 11에 있어서,
상기 신호에 대한 가상 주소를 물리 주소로 변환하는 동작을 더 포함하는 방법.
The method of claim 11,
Further comprising converting a virtual address for the signal to a physical address.
전자 장치(electronic device)에 있어서,
CPU(central processing unit)를 포함하는 제1 보드(board)와,
제1 메모리 모듈, 제2 메모리 모듈, 및 시리얼 릴레이(serial relay)를 포함하는 제2 보드를 포함하고,
상기 CPU는 상기 시리얼 릴레이에게 신호를 송신하도록 구성되고,
상기 시리얼 릴레이는, 상기 신호를 증폭시키고, 상기 증폭된 신호를 상기 제1 메모리 모듈에게 전송하도록 구성되고,
상기 제1 메모리 모듈은 상기 증폭된 신호를 상기 제2 메모리 모듈에게 전송하도록 구성되고,
상기 시리얼 릴레이는, 시리얼 통신을 수행하기 위한 적어도 하나의 라인으로, 상기 CPU 및 상기 제1 메모리 모듈과 연결되고,
상기 제2 메모리 모듈은, 시리얼 통신을 수행하기 위한 적어도 하나의 라인으로, 상기 제1 메모리 모듈과 연결되는 장치.
In an electronic device,
A first board including a central processing unit (CPU)
And a second board including a first memory module, a second memory module, and a serial relay,
The CPU being configured to send a signal to the serial relay,
Wherein the serial relay is configured to amplify the signal and to transmit the amplified signal to the first memory module,
Wherein the first memory module is configured to transmit the amplified signal to the second memory module,
Wherein the serial relay is connected to the CPU and the first memory module as at least one line for performing serial communication,
Wherein the second memory module is connected to the first memory module with at least one line for performing serial communication.
청구항 18에 있어서,
상기 시리얼 릴레이는, 상기 제1 메모리 모듈에 저장할 제1 데이터 및 상기 제2 메모리 모듈에 저장할 제2 데이터를 결정하도록 추가적으로 구성되고,
상기 신호는 상기 제1 데이터 및 상기 제2 데이터의 저장을 요청하는 신호인 장치.
19. The method of claim 18,
Wherein the serial relay is further configured to determine first data to be stored in the first memory module and second data to be stored in the second memory module,
Wherein the signal is a signal requesting storage of the first data and the second data.
청구항 18에 있어서,
상기 제2 보드는 다른 전자 장치와 통신을 수행하기 위한 이더넷(ethernet) 모듈을 더 포함하고,
상기 CPU는 상기 시리얼 릴레이에게 이더넷 신호를 송신하도록 구성되고,
상기 시리얼 릴레이는, 상기 이더넷 신호를 증폭시키고, 상기 증폭된 이더넷 신호를 상기 제1 메모리 모듈에게 전송하도록 구성되고,
상기 제1 메모리 모듈은 상기 증폭된 이더넷 신호를 상기 이더넷 모듈에게 전송하도록 구성되고,
상기 이더넷 모듈은 상기 증폭된 이더넷 신호에 기반하여 상기 다른 전자 장치와 통신을 수행하도록 구성되고,
상기 이더넷 모듈은, 시리얼 통신을 수행하기 위한 적어도 하나의 라인으로, 상기 제1 메모리 모듈과 연결되는 장치.
19. The method of claim 18,
The second board further comprises an Ethernet module for performing communication with another electronic device,
The CPU is configured to transmit an Ethernet signal to the serial relay,
Wherein the serial relay is configured to amplify the Ethernet signal and to transmit the amplified Ethernet signal to the first memory module,
Wherein the first memory module is configured to transmit the amplified Ethernet signal to the Ethernet module,
Wherein the Ethernet module is configured to communicate with the other electronic device based on the amplified Ethernet signal,
Wherein the Ethernet module is connected to the first memory module via at least one line for performing serial communication.
KR1020160109076A 2016-08-26 2016-08-26 Apparatus and method for providing memory via serial communication KR20180023543A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160109076A KR20180023543A (en) 2016-08-26 2016-08-26 Apparatus and method for providing memory via serial communication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160109076A KR20180023543A (en) 2016-08-26 2016-08-26 Apparatus and method for providing memory via serial communication

Publications (1)

Publication Number Publication Date
KR20180023543A true KR20180023543A (en) 2018-03-07

Family

ID=61688787

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160109076A KR20180023543A (en) 2016-08-26 2016-08-26 Apparatus and method for providing memory via serial communication

Country Status (1)

Country Link
KR (1) KR20180023543A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11836106B2 (en) 2021-04-08 2023-12-05 Electronics And Telecommunications Research Institute Serial communication device and system for memory access

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11836106B2 (en) 2021-04-08 2023-12-05 Electronics And Telecommunications Research Institute Serial communication device and system for memory access

Similar Documents

Publication Publication Date Title
US11385795B2 (en) Method and apparatus to enable individual non volatile memory express (NVMe) input/output (IO) queues on differing network addresses of an NVMe controller
US20230325335A1 (en) Pooled memory address translation
US10002085B2 (en) Peripheral component interconnect (PCI) device and system including the PCI
JP7411633B2 (en) Logical transport over fixed PCIe physical transport network
CN104767838B (en) Micro server, method of assigning MAC address, and computer-readable recording medium
US20070263642A1 (en) Mechanism to flexibly support multiple device numbers on point-to-point interconnect upstream ports
US10540306B2 (en) Data copying method, direct memory access controller, and computer system
US9952644B2 (en) Device power management state transition latency advertisement for faster boot time
WO2017181853A1 (en) Method, device, and system for dynamically allocating memory
WO2014004021A2 (en) Tunneling platform management messages through inter-processor interconnects
US20140115209A1 (en) Flow Control for a Serial Peripheral Interface Bus
KR102365312B1 (en) Storage controller, computational storage device, and operation method of computational storage device
US9021169B2 (en) Bus system including ID converter and converting method thereof
US10169257B2 (en) Module based data transfer
US20220327080A1 (en) PCIe DEVICE AND OPERATING METHOD THEREOF
CN107209725A (en) Method, processor and the computer of processing write requests
KR20190112626A (en) Mechanism to autonomously manage ssds in an array
US11928070B2 (en) PCIe device
US11741039B2 (en) Peripheral component interconnect express device and method of operating the same
CN115203101A (en) PCIe device and operating method thereof
US10853255B2 (en) Apparatus and method of optimizing memory transactions to persistent memory using an architectural data mover
US20140310430A1 (en) Tunneling Transaction Packets
US10585842B2 (en) Computer system for virtualizing I/O device and method of operating the same and hub device
US20220342835A1 (en) Method and apparatus for disaggregation of computing resources
KR20180023543A (en) Apparatus and method for providing memory via serial communication

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal