KR20180023543A - Apparatus and method for providing memory via serial communication - Google Patents
Apparatus and method for providing memory via serial communication Download PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 508
- 238000004891 communication Methods 0.000 title claims abstract description 74
- 238000000034 method Methods 0.000 title claims description 36
- 238000012545 processing Methods 0.000 claims abstract description 25
- 238000013507 mapping Methods 0.000 description 26
- 230000006870 function Effects 0.000 description 22
- 230000005540 biological transmission Effects 0.000 description 8
- 230000014509 gene expression Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- WQZGKKKJIJFFOK-GASJEMHNSA-N Glucose Natural products OC[C@H]1OC(O)[C@H](O)[C@@H](O)[C@@H]1O WQZGKKKJIJFFOK-GASJEMHNSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000002583 angiography Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 230000036772 blood pressure Effects 0.000 description 1
- 230000036760 body temperature Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000008103 glucose Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
Abstract
Description
본 개시(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
이하 도 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
도 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
상기 CPU 110은 다양한 용어로 지칭될 수 있다. 예를 들면, 상기 CPU 110은 중앙 처리 장치로 지칭될 수 있다. 다른 예를 들면, 상기 CPU 110은 프로세서(processor)로 지칭될 수 있다. 또 다른 예를 들면, 상기 CPU 110은 마이크로프로세서(micro processor unit, MPU)로 지칭될 수도 있다. The
상기 CPU 110은 적어도 하나의 코어(core)를 포함할 수 있다. 상기 CPU 110이 하나의 코어를 포함하는 경우, 상기 CPU 110은 싱클코어로 지칭될 수 있다. 상기 CPU 110이 2개, 4개, 또는 8개의 코어를 포함하는 경우, 각각 듀얼코어, 쿼드코어, 또는 옥타코어로 지칭될 수 있다. 상기 적어도 하나의 코어는 상기 CPU 110안에서 다양한 연산을 수행할 수 있다. The
상기 CPU 110은 레지스터(register), 산술논리연산부(arithmetic logic unit), 제어부(control unit), CPU 내부 버스를 포함할 수 있다. 상기 레지스터는 상기 CPU 110에서 처리할 명령어를 저장할 수 있다. 상기 산술논리연산부는 비교, 판단, 연산을 수행할 수 있다. 상기 제어부는 상기 CPU 110에서의 명령어의 해석과 올바른 실행을 위하여 내부적으로 제어할 수 있다. 상기 CPU 내부버스는 상기 레지스터, 산술논리연산부, 제어부를 연결할 수 있다.The
상기 CPU 110은 메모리 컨트롤러(memory controller)를 포함할 수 있다. 상기 메모리 컨트롤러는 메모리 모듈에서의 데이터를 관리하는 역할을 수행할 수 있다. 예를 들면, 상기 메모리 컨트롤러는 메모리 모듈의 동작(예: 프로그램(program) 실행, 읽기(read) 동작, 쓰기(write) 동작, 삭제(erase) 동작)을 제어하기 위한 명령을 생성할 수 있다. 다른 예를 들면, 상기 메모리 컨트롤러는 상기 메모리 모듈의 동작을 제어하기 위한 명령을 상기 메모리 모듈에게 출력할 수 있다. 상기 메모리 컨트롤러와 상기 메모리 모듈은 메모리 인터페이스(memory interface)를 통하여 데이터를 송수신할 수 있다. 상기 메모리 인터페이스는 상기 메모리 컨트롤러와 상기 메모리 모듈 사이에서 데이터의 교환을 제공할 수 있다. 이하의 설명에서는, 상기 CPU 110이 메모리 컨트롤러를 포함하는 것으로 서술하였으나, 다양한 실시 예들은 이러한 기재에 한정되지 않는다. 즉, 메모리 컨트롤러는 상기 CPU 110와 별도의 하드웨어로 구성될 수도 있다.The
메모리 모듈 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
상기 메모리 모듈 130은 전자 장치 100의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 예를 들면, 상기 메모리 모듈 130은 상기 CPU 110에서 실행하기 위한 명령어, 상기 CPU 110에서 요청하는 데이터를, 상기 CPU 110으로부터 전달받은 데이터를 저장할 수 있다. 상기 메모리 모듈 130은 상기 메모리 컨트롤러가 관리하는 데이터를 저장할 수 있다. The
시리얼 허브 120은 메모리 모듈 130과 연결될 수 있다. 상기 시리얼 허브 120은 상기 메모리 모듈 130과 적어도 하나의 시리얼 라인(serial line) 160으로 연결될 수 있다. 상기 시리얼 허브 120은 상기 적어도 하나의 시리얼 라인 160을 통하여 상기 메모리 모듈 130과 시리얼 통신(serial communication)을 수행할 수 있다. 상기 시리얼 통신에 대한 링크는 시리얼 링크(serial link)로 지칭될 수 있다. 상기 시리얼 허브 120은, 상기 시리얼 통신을 위하여, 시리얼 프로토콜(serial protocol)로 구현되는 메모리 인터페이스로 구성될 수 있다.The
일부 실시 예들에서, 상기 적어도 하나의 시리얼 라인 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
상기 시리얼 통신은 다수의 비트들을 다수의 라인(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
상기 시리얼 허브 120은 상기 메모리 모듈 140과 연결될 수도 있다. 상기 메모리 모듈 140은 상기 메모리 모듈 130과 동일한 기능을 수행하는 메모리 모듈일 수 있다. 상기 시리얼 허브 120 및 상기 메모리 모듈 140은 적어도 하나의 시리얼 라인을 통해 연결될 수 있다. 상기 시리얼 허브 120은 병렬 버스(parallel bus) 방식이 아닌, 시리얼 통신 방식을 이용함으로써, 상기 메모리 모듈 130과 독립적으로(independently) 상기 메모리 모듈 140과 시리얼 통신을 수행할 수 있다. The
상기 시리얼 허브 120은 모듈 150과 추가적으로 연결될 수 있다. 상기 모듈 150은 추가적으로 장착 가능한 모듈일 수 있다. 일부 실시 예들에서, 상기 모듈 150은 상기 메모리 모듈 130과 동일한 기능을 제공하는 메모리 모듈일 수 있다. 다른 일부 실시 예들에서, 상기 모듈 150은 이더넷 모듈(ethernet module)일 수 있다. 상기 이더넷 모듈은 다른 전자 장치와 통신을 수행하기 위한 모듈일 수 있다. The
상기 시리얼 허브 120은 병렬 버스 인터페이스 대신, 시리얼 통신 인터페이스를 통해 CPU 110 및 메모리 모듈들 130, 140과 연결됨으로써, CPU 110과 메모리 모듈들 130, 140 간의 물리적인 거리에 따른 제한의 문제를 해소할 수 있다. 또한, 상기 시리얼 허브 120은 CPU 110의 메모리 컨트롤러 및 메모리 모듈들 130 및 140 간 단일 인터페이스를 제공할 수 있다. 모듈(예: 메모리 모듈, 메모리 컨트롤러, 이더넷 모듈)의 추가 또는 변경 시, 새로운 인터페이스의 구축 없이, 상기 시리얼 허브 120은 확장성을 제공할 수 있다.The
도 1에 도시되지는 않았으나, 추가적인 모듈들이 상기 시리얼 허브 120에 연결될 수 있다. 도 1에는 시리얼 라인을 통해서만 모듈들과 연결되는 것으로 도시하였으나, 다양한 실시 예들은 한정되지 않는다. 상기 시리얼 허브 120은, 추가 메모리 모듈과 기존의 병렬 버스 방식(예: 64bits bus type, 32bits bus type)으로 연결될 수도 있다.Although not shown in FIG. 1, additional modules may be coupled to the
도 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
도 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
상기 전자 장치 100은 멀티 CPU(Multi-CPU) 시스템을 지원하는 전자 장치일 수 있다. 이에 따라, 상기 멀티 CPU 시스템을 지원하는 전자 장치 100은 상기 CPU 110 및 상기 CPU 210을 포함할 수 있다. 도 2 및 이하 설명은 2개의 CPU들을 기준으로 설명되나, 다양한 실시 예들은 이러한 기재에 한정되지 않는다. The
상기 시리얼 허브 120은 상기 CPU 110 및 상기 CPU 210과 각각 시리얼 라인을 통하여 연결될 수 있다. 상기 CPU 110과 상기 시리얼 허브 120을 연결하는 시리얼 라인을 제1 시리얼 라인으로 지칭할 수 있다. 상기 CPU 110은 제1 시리얼 라인을 통하여 상기 시리얼 허브 120에게 제1 신호를 송신할 수 있다. 상기 CPU 210과 상기 시리얼 허브 120을 연결하는 시리얼 라인을 제2 시리얼 라인으로 지칭할 수 있다. 상기 CPU 210은 제2 시리얼 라인을 통하여 상기 시리얼 허브 120에게 제2 신호를 송신할 수 있다. The
상기 시리얼 허브 120은 상기 제1 시리얼 라인 또는 상기 제2 시리얼 라인을 통하여, 상기 CPU 110 및 상기 CPU 210 간의 신호 교환을 수행할 수 있다. 상기 신호 교환을 통하여, 상기 CPU 110 및 상기 CPU 210 간의 중재(arbitration), 협상(negotiation) 동작이 수행되거나, CPU 간의 마스터-슬레이브(master-slave) 관계가 설정될 수 있다. The
일부 실시 예들에서, 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
상기 시리얼 허브 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
상기 이중화 동작을 위해, 상기 시리얼 허브 120은 상기 CPU 110에서 상기 CPU 210으로의 테이크 오버를 수행하도록 설정될 수 있다. 여기서, 상기 테이크 오버는 '연산'을 관리하는 대상이 변경되는 동작을 의미할 수 있다. 상술한 바와 같은 메모리 모듈(예: 메모리 모듈 226)의 재할당을 통해, 불필요한 복사과정 없이, 상기 CPU 110에서 상기 CPU 210로의 테이크 오버가 수행될 수 있다. 상기 시리얼 허브 120은, 상기 CPU 110에서 상기 CPU 210으로의 테이크오버가 단축된 시간 내에 수행되도록 할 수 있다. For the duplication operation, the
도 2는 2개의 CPU들(CPU 110, CPU 210)을 도시하였으나, 추가적으로 다른 CPU가 상기 시리얼 허브 120에 연결될 수 있다. 상기 시리얼 허브 120은 CPU와 시리얼 방식으로 연결되기 위한 구조를 가지는 바, 상기 시리얼 허브 120은 CPU의 확장이 가능할 수 있다. Although FIG. 2 shows two CPUs (
도 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
이하 설명에서는, 상기 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
도 3을 참고하면, 상기 시리얼 허브 120은 메모리 범위에 대한 정보를 상기 CPU 110 또는 상기 CPU 210으로부터 수신할 수 있다. 상기 메모리 범위에 대한 정보는 CPU에 구동중인 어플리케이션에 할당하기 위한 메모리 영역을 가리키는 정보일 수 있다. 상기 시리얼 허브 120은 상기 메모리 범위에 대한 정보에 기반하여 상기 CPU 110 및 상기 CPU 210에게 각각 제공할 메모리의 영역을 결정할 수 있다.Referring to FIG. 3, the
상기 시리얼 허브 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
상기 시리얼 허브 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
다른 일부 실시 예들에서, 상기 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
시리얼 허브 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
도 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
도 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
도 4를 참고하면, 상기 시리얼 허브 120은 이더넷 모듈들 421, 422와 연결될 수 있다. 상기 시리얼 허브 120 및 상기 이더넷 모듈 421은, 시리얼 라인을 통하여 연결될 수 있다. 상기 이더넷 모듈 421은 이더넷(ethernet) 통신을 위한 이더넷 모듈일 수 있다. 상기 이더넷 모듈은 전자 장치들 간의 연결을 위한 인터페이스일 수 있다. 상기 이더넷 모듈 421은 LAN(local area network)에서 사용될 수 있다. Referring to FIG. 4, the
상기 전자 장치 100은 상기 이더넷 모듈 421을 통하여 다른 전자 장치와 연결될 수 있다. 상기 전자 장치 100은 상기 이더넷 모듈 421을 통하여, 상기 다른 전자 장치로부터 데이터를 수신할 수 있다. 또는 상기 전자 장치 100은 상기 이더넷 모듈 421을 통하여, 상기 다른 전자 장치에게 데이터를 송신할 수도 있다.The
상기 다른 전자 장치와 통신하기 위하여, 상기 전자 장치 100은 이더넷 인터페이스가 요구될 수 있다. 상기 이더넷 인터페이스는 시리얼 프로토콜을 지원하는 인터페이스일 수 있다. 상기 도 1에서 설명한 바와 같이, 상기 시리얼 허브 120은 시리얼 프로토콜을 지원하는 메모리 인터페이스를 제공할 수 있다. 따라서, 상기 전자 장치 100은, 상기 시리얼 허브 120을 통하여, 메모리 모듈을 위한 메모리 인터페이스 외에 상기 이더넷 인터페이스도 제공할 수 있다. 상기 전자 장치 100은, 상기 시리얼 허브 120을 통하여, 메모리 모듈을 통한 데이터 통신에서 이더넷 모듈을 통한 데이터 통신의 스위칭(switching)을 적응적으로 할 수 있다.In order to communicate with the other electronic device, the
예를 들어, CPU 110은 구동 중인 어플리케이션 상에서 데이터를 다른 장치에게 송신하는 동작을 처리할 수 있다. 상기 어플리케이션에는 메모리 모듈 223의 메모리가 할당되어 있는 상태일 수 있다. CPU 110이 데이터를 전송하기 위하여, CPU 110은 이더넷 인터페이스가 요구될 수 있다. 상기 CPU 110은 별도의 인터페이스를 위한 별도의 경로 설정없이, 상기 시리얼 허브 120 및 상기 시리얼 허브 120과 시리얼 라인으로 연결되는 이더넷 모듈 421을 통하여 전자 장치에게 데이터를 송신할 수 있다. For example, the
상기 시리얼 허브 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
상기 시리얼 허브 120은 DMA(direct memory access) 기능을 수행할 수 있다. DMA 기능은 CPU의 직접적인 개입 없이 메모리에 접근하는 기능이다. 상기 DMA 기능 수행을 위하여, 상기 CPU 110은 상기 시리얼 허브 120에게 제어 신호를 송신할 수 있다. 상기 제어 신호는 상기 시리얼 허브 120이 DMA 기능을 수행하도록 설정하기 위한 신호로서, 데이터를 읽기 위한 메모리 모듈 및 데이터를 쓰기 위한 메모리 모듈을 지시할 수 있다. 이에 따라, 상기 시리얼 허브 120은, 상기 설정에 기반하여, 특정 데이터 수신 시 임의의 메모리 모듈에 상기 데이터를 바로 저장할 수 있다.The
예를 들면, 플로우 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
도 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
도 5를 참고하면, 상기 시리얼 허브 120은 진입 포트(ingress port) 510과 출구 포트(egress port) 520을 포함할 수 있다. 상기 진입 포트 510 및 상기 출구 포트 520은 데이터 경로(data path) 및 제어 경로(control path)와 동작적으로 연결(operatively connected)될 수 있다. Referring to FIG. 5, the
진입 포트 510은 패킷(packet)의 처리를 위한 진입 포트일 수 있다. 예를 들어, 상기 진입 포트는 상기 패킷의 메모리 주소(memory address)의 처리를 위한 진입 포트일 수 있다. 상기 진입 포트 510은 상기 시리얼 허브 120의 맵핑부(mapping unit)(미도시)에서 지정된 메모리 범위(memory range)에 패킷이 입력되는지 여부를 확인할 수 있다. 상기 메모리 범위는 상기 패킷의 메모리 주소에 대한 범위를 가리킬 수 있다. 상기 진입 포트 510은 상기 메모리 범위를 포트에 연결이 되도록 태그(tag)를 상기 패킷에 추가할 수 있다. 상기 진입 포트 510은 상기 패킷의 포맷(format)을 확인할 수도 있다. 상기 진입 포트 510은 상기 데이터의 오류 여부를 검사할 수 있다. 상기 진입 포트 510은 상기 입력되는 패킷을 상기 맵핑부에게 전달할 수 있다. The
출구 포트 520은 상기 메모리 주소의 처리를 위한 출구 포트일 수 있다. 상기 출구 포트 520은 상기 맵핑부로부터 패킷을 수신할 수 있다. 상기 출구 포트 520은, 상기 패킷의 태그를 확인한 후 입출력 포트 540의 상태에 따라 패킷의 전송 여부를 결정할 수 있다. 상기 태그는 내부에서 재전송시 사용되는 식별자(identifier)일 수 있다. 상기 태그는 상기 맵핑부에 의하여 결정될 수 있다.The
상기 시리얼 허브 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
일부 실시 예들에서, 상기 시리얼 허브 120은 상기 I2C 530을 통하여, 상기 시리얼 허브 120과 연결되는 모듈을 제어할 수 있다. 상기 시리얼 허브 120은 상기 I2C 530을 통하여, 상기 연결되는 모듈의 설정에 대한 정보(configuration information)를 획득할 수 있다. 상기 시리얼 허브 120은 상기 정보에 기반하여, 상기 맵핑부를 설정(configure)할 수 있다. 상기 연결되는 모듈은 메모리 모듈 225일 수 있다.In some embodiments, the
상기 시리얼 허브 120은 입출력 포트 540을 포함할 수 있다. 상기 입출력 포트 540은 상기 데이터 경로의 데이터들을 전달하기 위한 하드웨어일 수 있다. 상기 입출력 포트 540은 다수의 핀(pin)들을 포함할 수 있다. 상기 다수의 핀들은 상기 데이터의 전달을 위한 물리적 라인들과 연결될 수 있다. 상기 입출력 포트 540은 상기 다수의 핀들을 통하여, 시리얼 라인들과 연결될 수 있다. 상기 입출력 포트 540은 상기 메모리 모듈 225의 입출력 포트 550과 시리얼 라인들로 연결될 수 있다. 상기 입출력 포트 540은 상기 시리얼 라인들을 통하여 데이터를 메모리 모듈 225의 입출력 포트 550에게 송신 또는 상기 입출력 포트 550으로부터 수신할 수 있다. 상기 입출력 포트 540은 상기 맵핑부에 의하여 결정되는 규칙에 기반하여 상기 데이터를 송신 또는 수신할 수 있다.The
도 5는 상기 시리얼 허브 120과 메모리 모듈 간의 연결 관계를 도시하였으나, 이에 한정되지 않는다. 예를 들면, 상기 시리얼 허브 120은 메모리 모듈 외에 다른 모듈과 연결될 수 있다. 다른 예를 들면, 상기 제어 경로는 I2C 530외에 다른 방식으로 구성될 수 있다. 상기 시리얼 허브 120은 이더넷 모듈과 연결시, 상기 시리얼 허브 120은 MII(media independent interface)를 통하여 제어 경로를 관리할 수 있다. 5 illustrates the connection relationship between the
도 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
도 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
상기 포트들 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
상기 맵핑부 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
버퍼 620은 상기 포트들 540-1 내지 540-6 중 적어도 하나를 통해 수신되는 패킷을 임시로 저장할 수 있다. 상기 임시로 저장되는 패킷은 상기 제어부 630의 제어에 따라 상기 출구 포트 520으로 출력될 수 있다. 상기 임시로 저장되는 데이터는, 상기 맵핑부 610에서 정한 규칙에 따라 상기 출구 포트 520으로 출력될 수 있다. 상기 버퍼 620은 변환 참조 버퍼(translation lookaside buffer, TLB)를 포함할 수도 있다. 상기 변환 참조 버퍼는 최근에 맵핑되는 페이지 테이블을 저장하는 공간(space)일 수 있다. 상기 맵핑부 610은 상기 변환 참조 버퍼를 이용하여, 상기 가상 주소를 상기 물리 주소로 변환할 수 있다. The
일부 실시 예들에서, 상기 버퍼 620은 상기 메모리 모듈 225로부터 수신되는 데이터를 저장할 수 있다. 예를 들면, 상기 메모리 모듈 225로부터 수신되는 데이터는 CPU 110이 처리하기 위한 데이터일 수 있다. 다른 예를 들면, 상기 메모리 모듈 225로부터 수신되는 데이터는 전자 장치 100이 다른 메모리 모듈에 저장하기 위한 데이터일 수 있다. 다른 일부 실시 예들에서, 상기 버퍼 620은 상기 이더넷 모듈 421로부터 수신되는 데이터를 저장할 수 있다. 상기 이더넷 모듈 421로부터 수신되는 데이터는 다른 전자 장치로부터 수신되는 데이터일 수 있다. In some embodiments, the
제어부 630은 시리얼 허브 120을 제어하기 위한 구성일 수 있다. 상기 제어부 630은 상기 시리얼 허브 120의 맵핑부 610 또는 버퍼 620을 제어할 수 있다. 상기 제어부 630은 상기 시리얼 허브 120의 내부 설정을 제어할 수 있다. 일부 실시 예들에서, 상기 제어부 630은, 상기 CPU 110으로부터 설정 신호를 수신할 수 있다. 상기 제어부 630은 상기 설정 신호에 기반하여 상기 시리얼 허브 120의 설정을 제어할 수 있다. 상기 설정 신호는 상기 시리얼 허브 120의 내부 설정을 위한 신호일 수 있다. The
상기 제어부 630에게 접근(access)하기 위하여, CPU 110은 제어 신호를 상기 시리얼 허브 120에게 전송할 수 있다. 일부 실시 예들에서, 상기 CPU 110은 상기 제어 신호를 상기 포트들 540-1 내지 540-6을 통해 전송할 수 있다. 이 경우, 상기 제어 신호는 진입 포트에서 제어 정보로서 해석되는, 특정 패킷의 형태를 가질 수 있다. 다른 일부 실시 예들에서, 상기 CPU 100은 상기 제어 신호를 별도의 제어 경로를 통하여 전송할 수 있다. 예를 들면, 상기 CPU 110은 I2C를 통하여 상기 제어 신호를 전송할 수 있다. 다른 예를 들면, 상기 CPU 110은 MII를 통하여 상기 제어 신호를 송신할 수도 있다.In order to access the
상기 제어부 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
상기 제어부 630은 메모리 쉐어링을 수행할 수 있다. 일부 실시 예들에서, 상기 제어부 630은 동일한 메모리 모듈의 제1 메모리 영역을 상기 CPU 110에게 제공하고, 제2 메모리 영역을 상기 CPU 210에게 제공할 수 있다. 다른 일부 실시 예들에서, 상기 제어부 630은, 동일한 메모리 모듈의 메모리를 상기 CPU 110에게 제공한 뒤, 상기 CPU 210에게 제공할 수 있다. 따라서, 전자 장치 100은 공간적인 측면에서 다수의 메모리 모듈을 효율적으로 활용할 수 있다.The
상기 제어부 630은, 메모리 모듈에 저장되는 데이터를 읽는 동작 및 메모리 모듈에 데이터를 저장하는 동작을 동시에 수행할 수 있다. 즉, 상기 제어부 630은, 시리얼 라인들을 통하여 읽기 동작(reading operation)과 쓰기 동작(writing operation)을 수행할 수 있다. 상기 전자 장치 100은, 읽기 동작 및 쓰기 동작을 동시에 수행함으로써, 메모리 자원 및 CPU를 효율적으로 사용할 수 있다.The
상기 제어부 630은, 이더넷 모듈 및 메모리 모듈 간의 스위칭을 제어할 수 있다. 상기 이더넷 모듈은 이더넷 모듈 421일 수 있다. 상기 메모리 모듈은 상기 메모리 모듈 225일 수 있다. 상기 제어부 630은, CPU의 요청에 따라, 상기 메모리 모듈 225 또는 이더넷 모듈 421과 시리얼 라인을 통하여 통신을 수행할 수 있다. 상기 제어부 630은 메모리 할당을 위한 메모리 인터페이스 및 이더넷 통신을 위한 이더넷 인터페이스를 모두 갖춘 인터페이스에서 동작할 수 있다. 상기 인터페이스는 시리얼 인터페이스일 수 있다. 상기 인터페이스는 SERDES(serialize-deserialize)을 지원할 수 있다. 상기 제어부 630은, 상기 이더넷 모듈 421 및 상기 메모리 모듈 225 각각과 시리얼 라인으로 연결될 수 있다. 상기 제어부 630은, 상기 시리얼 라인 및 상기 시리얼 인터페이스를 통하여 상기 이더넷 모듈 421 또는 상기 메모리 모듈 225와 시리얼 통신을 수행할 수 있다. The
상기 제어부 630은 상기 메모리 인터페이스와 상기 이더넷 인터페이스 모두와 호환되는 프로토콜에 따라 동작할 수 있다. 예를 들어, 상기 프로토콜은 시리얼 라인 인터넷 프로토콜(serial line internet protocol, SLIP)일 수 있다. 상기 프로토콜은 하이브리드 시리얼 프로토콜로 지칭될 수 있다. 상기 하이브리드 시리얼 프로토콜은 제1 계층 또는 제2 계층에 적용되는 프로토콜 일 수 있다. 예를 들어, 상기 제1 계층에 적용되는 프로토콜은 10GBASE-KR 이더넷 프로토콜일 수 있다. 상기 제어부 630은, CPU 110으로부터 수신되는 제어 신호에 따라, 상기 하이브리드 시리얼 프로토콜을 설정할 수 있다.The
상기 제어부 630은, DMA 기능을 수행할 수 있다. 상기 제어부 630은 상기 이더넷 모듈 421로부터 수신되는 데이터를 CPU 110 또는 CPU 210에게 전달하지 않고 메모리 모듈에 저장할 수 있다. 상기 전자 장치 100은, 상기 DMA 기능을 통하여 CPU의 동작을 감소시킬 수 있다. 상기 전자 장치 100은, 상기 CPU 동작을 감소시킴으로써 CPU의 활용을 증가시킬 수 있다.The
도 6은 상기 시리얼 허브 120이 상기 맵핑부 610을 포함하는 것으로 도시하였으나, 이에 한정되지 않는다. 일부 실시 예들에서, 상기 시리얼 허브 120은 상기 맵핑부 610을 포함하지 않을 수 있다. 예를 들어, 상기 맵핑부 610의 기능은 상기 CPU 110에 의하여 수행될 수도 있다. 상기 시리얼 허브 120은 상기 변환된 주소에 대한 정보를 수신하고, 상기 시리얼 허브 120의 상기 제어부 630은 상기 수신된 정보를 이용하여, 데이터를 저장할 메모리 모듈을 결정할 수 있다. 다른 예를 들어, 상기 맵핑부 610은 별도의 하드웨어로 구성될 수도 있다.6, the
도 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
상기 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은 쓰기 동작을 수행할 수 있다. 상기 CPU 110은 구간 720 동안 상기 쓰기 동작을 수행할 수 있다. 상기 쓰기 동작은, 상기 CPU 110이 제1 데이터를 메모리 모듈 221에게 저장하는 동작일 수 있다.The
구체적으로, 721 동작에서 상기 CPU 110은 상기 제1 데이터를 상기 시리얼 허브 120에게 송신할 수 있다. 상기 CPU 110은 상기 쓰기 동작을 위한 제어 신호를 상기 시리얼 허브 120에게 추가적으로 송신할 수 있다. 일부 실시 예들에서, 상기 CPU 110은 상기 시리얼 허브 120에게 DMA 기능을 위한 제어 신호만을 송신할 수도 있다. Specifically, in
722 동작에서, 상기 시리얼 허브 120은 상기 제1 데이터를 버퍼에 저장할 수 있다. 상기 버퍼는 상기 도 6의 버퍼 620일 수 있다. 일부 실시 예들에서, 상기 시리얼 허브 120가 DMA 기능을 위한 제어 신호를 수신한 경우, 상기 시리얼 허브 120은 다른 모듈로부터 상기 제1 데이터를 수신할 수도 있다. 예를 들면, 상기 시리얼 허브 120은 상기 도 2의 메모리 모듈 223으로부터 상기 제1 데이터를 수신할 수 있다. 다른 예를 들면, 상기 시리얼 허브 120은 상기 도 4의 이더넷 모듈 421로부터 상기 제1 데이터를 수신할 수도 있다. 상기 제1 데이터는 상기 다른 전자 장치로부터 수신되는 데이터일 수 있다.In
723 동작에서, 상기 시리얼 허브 120은 상기 제1 데이터를 메모리 모듈 221에게 송신할 수 있다. 상기 시리얼 허브 120은, 상기 CPU 110에서 설정한 바에 따라, 상기 제1 데이터를 저장할 메모리 모듈의 주소를 결정할 수 있다. 상기 주소는 물리 주소일 수 있다. 상기 시리얼 허브 120은 상기 결정된 물리 주소에 기반하여 상기 메모리 모듈 221에게 상기 제1 데이터를 송신할 수 있다. In
상기 시리얼 허브 120은 상기 제1 데이터를 시리얼화(serialize)할 수 있다. 상기 시리얼 허브 120은 상기 제1 데이터를 시리얼 라인을 통하여 상기 메모리 모듈 221에게 송신할 수 있다. 상기 시리얼 허브 120은 상기 시리얼 라인 중 송신 시리얼 라인을 통하여 상기 메모리 모듈 221에게 송신할 수 있다. 상기 시리얼 허브 120은 상기 시리얼 라인을 통하여, 메모리 모듈 222의 동작 여부와 상관없이, 상기 메모리 모듈 221에게 상기 제1 데이터를 송신할 수 있다. The
724 동작에서, 상기 메모리 모듈 221은 상기 제1 데이터를 수신할 수 있다. 상기 메모리 모듈 221은 상기 수신한 제1 데이터를 디시리얼화(deserialize)할 수 있다. 상기 메모리 모듈 221은 상기 디시리얼화된 제1 데이터를 상기 메모리 모듈 221의 메모리에 저장(store)할 수 있다. 상기 메모리 모듈 221의 메모리에 상기 제1 데이터가 저장된 경우, 상기 CPU 110의 쓰기 동작은 종료될 수 있다. 일부 실시 예들에서, 상기 메모리 모듈 221은 상기 쓰기 동작이 성공적으로 종료되었음을 알리는 ACK(acknowledge) 신호를 상기 CPU 110에게 송신할 수 있다.In
상기 CPU 110은 읽기 동작을 수행할 수 있다. 상기 CPU 110은 구간 730동안 상기 읽기 동작을 수행할 수 있다. 상기 읽기 동작은, 상기 CPU 110이 제2 데이터를 메모리 모듈 222로부터 수신하는 동작일 수 있다.The
구체적으로, 731 동작에서 상기 CPU 110은 요청 신호를 상기 시리얼 허브 120에게 송신할 수 있다. 상기 요청 신호는 상기 읽기 동작을 위한 제어 신호일 수 있다. 상기 제어 신호는 데이터 전송 요청(data transmission request)으로 지칭될 수 있다. Specifically, in
732 동작에서, 상기 시리얼 허브 120은 상기 제어 신호를 버퍼에 저장할 수 있다. 상기 버퍼는 상기 도 6의 버퍼 620일 수 있다.In
733 동작에서, 상기 시리얼 허브 120은 상기 제어 신호를 메모리 모듈 222에게 송신할 수 있다. 상기 제어 신호는 제2 데이터에 대한 가상 주소를 가리키는 정보를 포함할 수 있다. 상기 시리얼 허브 120은 상기 제2 데이터에 대한 가상 주소를 가리키는 정보에 기반하여 상기 제2 데이터에 대한 물리 주소를 가리키는 정보를 생성할 수 있다. 상기 시리얼 허브 120은 상기 물리 주소에 대한 메모리 모듈을 결정할 수 있다. 상기 메모리 모듈은 상기 메모리 모듈 222일 수 있다. 즉, 상기 시리얼 허브 120은 상기 결정된 물리 주소에 기반하여 상기 메모리 모듈 222에게 상기 제어 신호를 송신할 수 있다.In
734 동작에서, 상기 메모리 모듈 222는 상기 제어 신호를 수신할 수 있다. 상기 메모리 모듈 222는 상기 수신한 제어 신호에 기반하여 제2 데이터를 결정할 수 있다. 상기 메모리 모듈 222는, 상기 메모리 모듈 222에 포함되는 복수의 메모리 셀들 중에서 상기 제2 데이터를 검색할 수 있다. 상기 메모리 모듈 222는 상기 제2 데이터를 검색한 경우, 상기 제2 데이터를 시리얼화 할 수 있다. In
735 동작에서, 상기 메모리 모듈 222는 상기 시리얼화된 제2 데이터를 상기 시리얼 허브 120에게 송신할 수 있다. In
736 동작에서, 상기 시리얼 허브 120은 상기 제2 데이터를 상기 버퍼 620에 저장할 수 있다. In
737 동작에서, 상기 시리얼 허브 120은 상기 제2 데이터를 상기 CPU 110에게 송신할 수 있다. 상기 CPU 110이 상기 제2 데이터를 수신한 경우, 읽기 동작은 종료될 수 있다. In
상기 CPU 110은 상기 구간 740 동안 쓰기 동작 및 읽기 동작을 동시에 수행할 수 있다. 상기 CPU 110은 상기 시리얼 허브 120을 통하여, 메모리 모듈들 각각과 독립적으로 데이터 통신을 수행할 수 있다. 상기 시리얼 허브 120은 병렬 버스 방식이 아닌, 시리얼 라인들로 상기 메모리 모듈들 각각과 연결됨으로써, 독립적인 데이터 통신을 가능하게 할 수 있다. 즉, 상기 전자 장치 100은 메모리 모듈 221 및 메모리 모듈 222의 메모리 자원을 동시에 사용할 수 있다. 전자 장치 100은 상기 시리얼 허브 120을 통하여 상기 메모리 자원을 효율적으로 활용할 수 있다.The
도 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
계층 구조 810은 종래의 이더넷 인터페이스의 계층 구조를 나타낸다. 계층 구조 820은 종래의 메모리 인터페이스의 계층 구조를 나타낸다. 전자 장치가 상기 어플리케이션 850을 사용하는 경우, 상기 전자 장치는 상기 다른 전자 장치에게 데이터를 요청할 수 있다. 상기 전자 장치는 상기 이더넷 인터페이스를 통하여 데이터를 수신하고, 상기 수신한 데이터를 메모리에 저장할 수 있다. 이 때, 상기 전자 장치는 상기 데이터를 상기 메모리에 저장하기 위하여 별도의 인터페이스로 접근하도록 요구될 수 있다. 예를 들어, 상기 전자 장치는 상기 이더넷 인터페이스 외에 다른 인터페이스인 메모리 인터페이스를 이용하여 메모리에 접근할 수 있다. 다시 말해, 상기 전자 장치에 포함된 CPU는 별도의 경로(another path)를 통하여, 상기 메모리 인터페이스에 접근할 수 있다. 상기 CPU는 상기 메모리 인터페이스를 통하여, 메모리 모듈에 접근한 뒤, 상기 데이터를 저장할 수 있다. The
계층 구조 830은 다양한 실시 예들에 따른, 시리얼 허브 120의 인터페이스의 계층 구조를 나타낸다. 상기 시리얼 허브 120의 인터페이스는 메모리/인터넷 인터페이스일 수 있다. 여기서, 상기 메모리/이더넷 인터페이스는 하이브리드 시리얼 인터페이스로 지칭될 수 있다. 계층 구조 830에 따르면, 메모리 모듈 및 이더넷 모듈의 어플리케이션 계층 850은 분리되지만, 링크 계층 및 물리 계층의 프로토콜은 공통된다. 즉, 메모리 모듈 및 이더넷 모듈은 동일한 링크 계층 및 물리 계층의 프로토콜을 사용한다. 예를 들면, 상기 하이브리드 시리얼 프로토콜은 물리 계층에서의 시리얼 라인 인터페이스(예: 10GKR-BASE)로 구현될 수 있다. 물리 계층의 프로토콜이 공통됨으로 인해, 다양한 실시 예에 따른 시리얼 허브 120에, 메모리 모듈 및 이더넷 모듈은 구분 없이 연결될 수 있다. 또한, 물리 계층의 프로토콜이 공통됨으로 인해, 메모리 모듈 및 이더넷 모듈 간 스위치 및 릴레이 구성이 가능하다. 링크 계층의 프로토콜은 메모리 모듈 및 이더넷 모듈을 수용할 수 있도록 설계된다. 이러한 링크 계층의 프로토콜은 커널(kernel)이하의 드라이버 수정만으로 구성될 수 있다. The
다양한 실시 예들에 따른, 전자 장치 100은 메모리 모듈 및 이더넷 모듈을 모두 사용하는 어플리케이션을 사용할 수 있다. 상기 메모리 모듈은 데이터 저장을 위하여 사용될 수 있다. 상기 이더넷 모듈은 다른 장치와의 데이터 통신을 위하여 사용될 수 있다. 상기 어플리케이션은 상기 어플리케이션 850일 수 있다.According to various embodiments, the
상기 전자 장치 100은 다른 전자 장치와 통신을 수행하기 위하여, 이더넷 인터페이스를 사용할 수 있다. 상기 전자 장치 100은 이더넷 모듈을 통하여 데이터를 수신할 수 있다. 상기 이더넷 모듈은 상기 도 4의 이더넷 모듈 421일 수 있다. 상기 데이터를 메모리 모듈 223에게 저장하기 위하여, 상기 시리얼 허브 120은 메모리 인터페이스가 요구될 수 있다. 상기 시리얼 허브 120은, 상기 메모리 인터페이스를 통하여, 상기 메모리 모듈 223에 상기 데이터를 저장할 수 있다.The
상기 시리얼 허브 120은, 메모리 할당을 위한 프로토콜 및 이더넷 통신을 위한 프로토콜을 설정할 수 있다. 상기 프로토콜은 상기 도 4의 하이브리드 시리얼 프로토콜로 지칭될 수 있다. 상기 하이브리드 시리얼 프로토콜은 제1 계층 및 제2 계층에 대한 프로토콜일 수 있다. The
상기 전자 장치 100은 이종 인터페이스를 위한 별도의 경로를 사용하지 않고 데이터를 저장할 수 있다. 상기 전자 장치 100은 시리얼 허브 120의 인터페이스 상에서 상기 데이터를 다른 장치로부터 수신하고, 메모리에 저장할 수 있다. 상기 전자 장치 100은 시리얼 허브 120을 통하여 하나의 인터페이스를 구성할 수 있다. 상기 시리얼 허브 120은 상기 이더넷 모듈 421 및 상기 메모리 모듈 223과 모두 시리얼 라인으로 연결될 수 있다. 상기 시리얼 허브 120은 시리얼 라인과 연결되기 위한 시리얼 인터페이스를 구성할 수 있다. The
도 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
도 9를 참고하면, 910 동작에서, 상기 시리얼 허브 120은 상기 CPU 110으로부터 신호를 수신할 수 있다. 상기 시리얼 허브 120은 시리얼 통신 방식으로 상기 신호를 수신할 수 있다. 일부 실시 예들에서, 상기 신호는 데이터의 저장을 요청하는 신호일 수 있다. 다른 일부 실시 예들에서, 상기 신호는 메모리 모듈에 저장되어 있는 데이터를 요청하는 신호일 수 있다. 다른 일부 실시 예들에서, 상기 신호는 상기 시리얼 허브 120을 설정(configuration)하기 위한 신호일 수 있다. 상기 시리얼 허브 120은 상기 신호에 기반하여 특정 프로토콜을 설정할 수 있다. 예를 들면, 상기 시리얼 허브 120은, 상기 신호에 기반하여, 메모리 인터페이스를 위한 프로토콜을 설정할 수 있다. 다른 예를 들면, 상기 시리얼 허브 120은, 상기 신호에 기반하여, 이더넷 인터페이스를 위한 프로토콜을 설정할 수도 있다. 또 다른 예를 들면, 상기 시리얼 허브 120은, 상기 신호에 기반하여, DMA 기능을 수행하도록 설정될 수 있다. 상기 시리얼 허브 120은, 특정 데이터를 수신 시, 상기 특정 데이터를 상기 CPU 110에게 전송하지 않고 바로 메모리 모듈 140에 저장하도록 구성될 수 있다. 9, in operation 910, the
920 동작에서, 상기 시리얼 허브 120은 상기 신호에 기반하여, 복수의 메모리 모듈들 중 CPU 110을 위한 메모리 모듈을 결정할 수 있다. In
일부 실시 예들에서, 상기 시리얼 허브 120은, 상기 신호에 기반하여 쓰기 동작을 위한 메모리 모듈을 결정할 수 있다. 상기 신호는 데이터의 저장을 요청하는 신호일 수 있다. 상기 시리얼 허브 120은 복수의 메모리 모듈들 중에서 상기 쓰기 동작을 위한 메모리 모듈을 결정할 수 있다. 상기 복수의 메모리 모듈들은 상기 메모리 모듈 130 및 상기 메모리 모듈 140을 포함할 수 있다. 상기 시리얼 허브 120은 상기 데이터를 상기 메모리 모듈 130에 저장할 수 있다. 상기 시리얼 허브 120은 시리얼 통신 방식을 통하여, 상기 데이터를 상기 메모리 모듈 130에 저장할 수 있다. 상기 시리얼 허브 120은 송신 시리얼 라인을 통하여 상기 데이터를 상기 메모리 모듈 130에 저장할 수 있다. In some embodiments, the
다른 일부 실시 예들에서, 상기 시리얼 허브 120은, 상기 신호에 기반하여 읽기 동작을 위한 상기 메모리 모듈을 결정할 수 있다. 상기 신호는 데이터의 호출을 요청하는 신호일 수 있다. 상기 시리얼 허브 120은 상기 복수의 메모리 모듈들 중에서 상기 데이터가 저장되어 있는 메모리 모듈 140을 검색할 수 있다. 상기 시리얼 허브 120은 시리얼 통신 방식을 통하여, 상기 데이터를 요청하는 신호를 상기 메모리 모듈 140에 송신할 수 있다. 상기 시리얼 허브 120은, 상기 데이터를 요청하는 신호에 기반하여, 상기 데이터를 상기 메모리 모듈 140으로부터 수신할 수 있다. 상기 시리얼 허브 120은 시리얼 통신 방식을 통하여, 상기 데이터를 상기 메모리 모듈 140으로부터 수신할 수 있다. 상기 시리얼 허브 120은 수신 시리얼 라인을 통하여 상기 데이터를 상기 메모리 모듈 130로부터 수신할 수 있다.In some other embodiments, the
도 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
도 10을 참고하면, 1010 단계에서, 상기 시리얼 허브 120은 제1 CPU로부터 제1 신호를 수신할 수 있다. 상기 제1 CPU는 상기 CPU 110일 수 있다. 일부 실시 예들에서, 상기 제1 신호는 데이터의 저장을 요청하는 신호일 수 있다. 다른 일부 실시 예들에서, 상기 제1 신호는 저장된 데이터의 호출을 요청하는 신호일 수 있다. Referring to FIG. 10, in
1020 단계에서, 상기 시리얼 허브 120은 제2 CPU로부터 제2 신호를 수신할 수 있다. 상기 제2 CPU는 상기 CPU 210일 수 있다. 일부 실시 예들에서, 상기 제2 신호는 데이터의 저장을 요청하는 신호일 수 있다. 다른 일부 실시 예들에서, 상기 제2 신호는 저장된 데이터의 호출을 요청하는 신호일 수 있다.In
1030 단계에서, 상기 시리얼 허브 120은 상기 제1 신호 및 상기 제2 신호에 기반하여 상기 복수의 메모리 모듈들 중에서, 상기 CPU 110을 위한 제1 메모리 모듈 및 상기 CPU 210를 위한 제2 메모리 모듈을 결정할 수 있다. 상기 제1 메모리 모듈은 메모리 모듈 221일 수 있다. 상기 제2 메모리 모듈은 메모리 모듈 222일 수 있다.In
일부 실시 예들에서, 상기 시리얼 허브 120은 상기 제1 신호에 대한 제1 데이터의 크기 및 상기 제2 신호에 대한 제2 데이터의 크기에 기반하여, 상기 메모리 모듈 221 및 상기 메모리 모듈 222를 각각 결정할 수 있다. 예를 들어, 상기 제1 데이터의 크기와 상기 제2 데이터의 크기보다 큰 경우, 상기 시리얼 허브 120은 상기 제1 데이터의 처리에 할당하는 메모리의 용량이 상기 제2 데이터의 처리에 할당하는 메모리의 용량보다 크도록 상기 메모리 모듈 221 및 상기 메모리 모듈 22를 각각 결정할 수 있다. In some embodiments, the
다른 일부 실시 예들에서, 상기 시리얼 허브 120은 상기 제1 데이터의 종류 및 상기 제2 데이터의 종류에 기반하여 상기 메모리 모듈 221 및 상기 메모리 모듈 222를 결정할 수도 있다. 상기 시리얼 허브 120은 복수의 메모리 모듈들 각각의 메모리 용량, 동작 속도, 종류 중 적어도 하나에 기반하여 상기 메모리 모듈 221 및 상기 메모리 모듈 222를 결정할 수 있다. 예를 들어, 상기 시리얼 허브 120은 상기 제1 데이터가 상기 제2 데이터보다 신속한 처리를 요하는 서비스에 관한 데이터인 경우, 메모리 모듈 222보다 동작 속도가 더 빠른 메모리 모듈 221의 메모리를 제1 데이터의 처리 동작에 할당할 수 있다.In some other embodiments, the
도 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
1110 단계에서, 상기 시리얼 허브 120은 상기 CPU 110으로부터 이더넷 신호를 수신할 수 있다. 상기 이더넷 신호는 다른 전자 장치와 연결되기 위한 신호일 수 있다. 일부 실시 예들에서, 상기 이더넷 신호는 상기 다른 전자 장치에게 데이터를 송신하기 위한 신호일 수 있다. 다른 일부 실시 예들에서, 상기 이더넷 신호는 상기 다른 전자 장치에게 데이터를 요청하기 위한 신호일 수 있다.In
1120 단계에서, 상기 시리얼 허브 120은 상기 이더넷 신호에 기반하여, 이더넷 모듈 421을 통하여 데이터를 다른 전자 장치에게 송신 또는 다른 전자 장치로부터 수신할 수 있다. 즉, 상기 시리얼 허브 120은 상기 이더넷 모듈 421을 통하여 다른 전자 장치와 통신을 수행할 수 있다. 상기 시리얼 허브 120은 이더넷 인터페이스를 포함할 수 있다. In step 1120, the
상기 시리얼 허브 120은, 시리얼 통신을 위한 적어도 하나의 라인으로, 상기 이더넷 모듈들 421, 422와 연결될 수 있다. 있다. 상기 시리얼 허브 120은, 시리얼 통신을 위한 적어도 하나의 라인으로, 메모리 모듈들 223, 224, 225, 226과 연결될 수 있다. 즉, 상기 시리얼 허브 120은, 메모리 인터페이스도 포함할 수 있다. 상기 시리얼 허브 120은 상기 적어도 하나의 라인을 통하여, 상기 메모리 모듈들 223, 224, 225, 226 각각과 독립적으로 상기 이더넷 모듈들 421, 422 각각과 연결될 수 있다. 상기 시리얼 허브 120은, 이더넷 모듈 및 메모리 모듈을 위한 하나의 인터페이스를 포함할 수 있다. The
도 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
도 12를 참고하면, 상기 시리얼 릴레이 1210은 상기 타겟 장치 1220과 연결될 수 있다. 상기 타겟 장치(target device) 1220은 보드(board) 또는 카드(card)로 구현되는 디바이스(device)일 수 있다. 예를 들어, 상기 타겟 장치는 메모리 모듈을 포함하는 카드일 수 있다. 다른 예를 들어, 상기 타겟 장치는 이더넷 모듈을 포함하는 보드일 수 있다. 또 다른 예를 들어, 상기 타겟 장치는 CPU가 포함되는 보드일 수도 있다. 또 다른 예를 들어, 상기 타겟 장치는 GPU(graphic processor unit)가 포함되는 카드일 수도 있다. 또 다른 예를 들어, 상기 타겟 장치는 메모리 모듈 및 이더넷 모듈 모두를 포함하는 보드일 수도 있다.Referring to FIG. 12, the
상기 시리얼 릴레이 1210은 입출력 포트를 통해, 타겟 장치 1220과 연결될 수 있다. 상기 시리얼 릴레이 1210은 적어도 하나의 입출력 포트를 포함할 수 있다. 상기 적어도 하나의 입출력 포트는 적어도 하나의 시리얼 라인과 연결되기 위한 입출력 포트일 수 있다. 상기 시리얼 릴레이 1210은 상기 적어도 하나의 입출력 포트 및 상기 적어도 하나의 시리얼 라인을 통하여 상기 타겟 장치 1220과 연결될 수 있다. 일부 실시 예들에서, 상기 적어도 하나의 입출력 포트는 적어도 하나의 채널을 포함할 수 있다. 예를 들면, 상기 적어도 하나의 채널은 4개의 채널일 수 있다. 다른 예를 들면, 상기 적어도 하나의 채널은 8개의 채널일 수 있다. 또 다른 예를 들면, 상기 적어도 하나의 채널은 32개의 채널일 수 있다. 상기 채널의 개수는 데이터 전송을 위한 대역폭(bandwidth)을 나타낼 수 있다. 상기 시리얼 릴레이 1210은 필요에 따라, 모듈마다 적응적으로 채널을 분배할 수 있다. 상기 채널은 래인(lane)으로 지칭될 수 있다. 또는 상기 채널은 핀으로 지칭될 수도 있다.The
상기 시리얼 릴레이 1210은 시리얼 통신을 수행할 수 있다. 상기 시리얼 릴레이 1210은 상기 타겟 장치 1220과 상기 적어도 하나의 시리얼 라인으로 연결될 수 있다. 상기 시리얼 릴레이 1210은 상기 시리얼 라인을 통하여, 상기 타겟 장치 1220과 시리얼 통신을 수행할 수 있다. 상기 시리얼 릴레이 1210은 상기 시리얼 통신을 통하여 데이터를 전송할 수 있다. 이 경우, 상기 시리얼 릴레이 1210은 상기 데이터의 전송을 위하여, 상기 데이터를 임시로 저장하는 버퍼의 기능을 수행할 수 있다. The
상기 시리얼 릴레이 1210은 타겟 장치 1220과 시리얼 방식으로 연결됨으로써, 다른 연결과 독립적으로 동작할 수 있다. 즉, 상기 시리얼 릴레이 1210은, 다른 메모리 모듈 또는 다른 이더넷 모듈의 동작 여부와 관계 없이, 상기 타겟 장치 1220과의 동작 여부를 결정할 수 있다. The
일부 실시 예들에서, 상기 시리얼 릴레이 1210은 보드(board)/카드(card) 간의 연결 및 모듈의 확장을 위한 릴레이(relay)일 수 있다. 상기 시리얼 릴레이 1210은 모듈의 추가적인 연결을 지원할 수 있다. 예를 들어, 상기 시리얼 릴레이 1210은 CPU가 포함되는 보드와 제1 메모리 모듈을 포함하는 보드를 연결할 수 있다. 상기 시리얼 릴레이 1210은 추가적으로 제2 메모리 모듈을 연결할 수 있다. 상기 시리얼 릴레이 1210은 상기 CPU가 포함되는 보드, 상기 제1 메모리 모듈, 및 상기 제2 메모리 모듈과 모두 시리얼 라인으로 연결될 수 있다. In some embodiments, the
상기 시리얼 릴레이 1210은 리피터(repeater)의 역할을 수행할 수 있다. 상기 시리얼 릴레이 1210은 시리얼 연결로 확장되는 모듈들 간의 통신을 지원하기 위하여 상기 리피터의 기능을 수행할 수 있다. 상기 시리얼 릴레이 1210은 상대적으로 먼 거리로 연결되어 있는 모듈과의 통신을 위해, 데이터의 전송 신호를 증폭시킬 수 있다. The
다른 일부 실시 예들에서, 상기 시리얼 릴레이 1210은 메모리 인터페이스에서 이더넷 인터페이스의 확장을 위한 릴레이(relay)일 수 있다. 상기 시리얼 릴레이 1210은 메모리 할당을 위한 인터페이스 및 이더넷 연결을 위한 인터페이스 모두를 제공할 수 있다. 예를 들어, 상기 시리얼 릴레이 1210은 CPU를 포함하는 보드와 이더넷 모듈을 포함하는 보드를 연결할 수 있다. In some other embodiments, the
도 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
도 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
상기 릴레이 1210은 상기 타겟 장치 1220과 시리얼 통신을 수행할 수 있다. 상기 릴레이 1210은 상기 입출력 포트 1215를 통하여 상기 타겟 장치 1220과 시리얼 통신을 수행할 수 있다. 상기 릴레이 1210은 2개의 채널로 상기 타겟 장치 1220과 시리얼 통신을 수행할 수 있다. 상기 타겟 장치 1220은 상기 입출력 포트 1225a를 통하여 상기 릴레이 1210과 시리얼 통신을 수행할 수 있다. The
상기 타겟 장치 1220은 상기 타겟 장치 1320과 시리얼 통신을 수행할 수 있다. 상기 타겟 장치 1220은 상기 입출력 포트 1225b를 통하여 상기 타겟 장치 1320과 시리얼 통신을 수행할 수 있다. 상기 입출력 포트 1225b는 릴레이 기능을 위한 입출력 포트일 수 있다. 상기 타겟 장치 1220은 2개의 입력 채널로 시리얼 통신을 수행할 수 있다. 상기 타겟 장치 1320은 상기 입출력 포트 1325를 통하여 상기 타겟 장치 1220과 시리얼 통신을 수행할 수 있다. The
예를 들면, 상기 릴레이 1210은 신호를 상기 타겟 장치 1220에게 전송할 수 있다. 상기 타겟 장치 1220은 상기 릴레이 1210으로부터 수신한 신호를 상기 타겟 장치 1320에게 송신할 수 있다. 상기 타겟 장치 1220은 2개의 채널을 통하여 상기 신호를 상기 타겟 장치 1320에게 송신할 수 있다. 상기 타겟 장치 1330은 상기 타겟 장치 1220으로부터 상기 신호를 수신할 수 있다. For example, the
일부 실시 예들에서, 상기 타겟 장치 1320은 상기 입출력 포트 1325의 4개의 채널을 모두 사용할 수 있다. 상기 타겟 장치 1220은 2개의 채널을 사용하나, 상기 타겟 장치 1320은 4개의 채널을 사용하여 시리얼 통신을 수행할 수 있다. 상기 시리얼 통신은 동기식 시리얼 통신일 수 있다.In some embodiments, the
다른 일부 실시 예들에서, 상기 타겟 장치 1320은 상기 입출력 포트 1325의 4개의 채널들 중 2개의 채널만을 사용할 수 있다. 상기 타겟 장치 1220, 상기 타겟 장치 1320 모두 2개의 채널만을 이용하여 시리얼 통신을 수행할 수 있다. 상기 시리얼 통신은 비동기식(asynchronous) 시리얼 통신일 수 있다. In some other embodiments, the
추가적으로, 상기 타겟 장치 1320은 상기 입출력 포트 1325의 4개의 채널들 중 2개의 채널은 신호의 수신, 다른 2개의 채널은 상기 신호의 전달을 위하여 사용할 수 있다. 도 13에는 도시되지 않았으나, 상기 타겟 장치 1330은 입출력 포트 1325 중 다른 2개의 채널에 해당하는 입출력 포트로 다른 타겟 장치에게 신호를 전달할 수 있다. 이러한 방식으로, 상기 릴레이 1210은 복수의 타겟 장치들의 연속적인 추가가 가능할 수 있다. 상기 복수의 타겟 장치들의 연결은 종속 연결(cascade connection)으로 지칭될 수 있다. 상기 릴레이 1210은 상기 종속 연결로 인하여, 상대적으로 먼 거리에 있는 타겟 장치에게 신호를 전달하기 위하여, 상기 신호를 증폭시킬 수 있다. 즉, 상기 릴레이 1210은 리피터의 역할을 수행할 수 있다.In addition, the
블록도 1350은 상기 릴레이 1210과 상기 타겟 장치 1220 및 상기 타겟 장치 1320 간의 논리적 연결을 도시한다. 상기 릴레이 1210은 상기 타겟 장치 1220 및 상기 타겟 장치 1320과 동작적으로 결합될 수 있다. 상기 전자 장치 100은, 상기 릴레이 1210을 통하여, 타겟 장치들을 필요에 따라 시리얼 통신 방식으로 확장할 수 있다. Block diagram 1350 illustrates the logical connection between the
도 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
도 14a는 하나의 인터페이스를 지원하는 시리얼 릴레이 1210의 일 실시 예를 도시한다. 14A illustrates one embodiment of a
도 14a를 참고하면, 상기 시리얼 릴레이 1210은 CPU를 포함하는 보드 1410과 시리얼 라인으로 연결될 수 있다. 예를 들면, 상기 시리얼 릴레이 1210은 상기 CPU와 연결시 각 보드의 에지(edge)부분을 통하여, 시리얼 라인으로 연결될 수 있다. 다른 예를 들면, 상기 시리얼 릴레이 1210은 상기 CPU와 보드의 외부에 있는(external) 시리얼 라인으로 연결될 수도 있다. 상기 CPU는 메모리 컨트롤러를 포함할 수 있다. 상기 시리얼 릴레이 1210은 메모리 모듈을 포함하는 보드 1420과 시리얼 라인으로 연결될 수 있다. 상기 시리얼 릴레이 1210은 시리얼 인터페이스로 구성되는 메모리 인터페이스를 지원할 수 있다.Referring to FIG. 14A, the
상기 시리얼 릴레이 1210은 CPU를 포함하는 보드 1410과 시리얼 라인으로 연결될 수도 있다. 상기 CPU는 이더넷 컨트롤러가 내장된 CPU일 수 있다. 상기 시리얼 릴레이 1210은 이더넷 모듈을 포함하는 보드 1425와 시리얼 라인으로 연결될 수도 있다. 상기 이더넷 모듈은 이더넷 파이(ethernet phy)로 지칭될 수 있다. 상기 시리얼 릴레이 1210은 시리얼 인터페이스로 구성되는 이더넷 인터페이스를 지원할 수 있다.The
상기 시리얼 릴레이 1210은 시리얼 인터페이스를 지원할 수 있다. 예를 들어,물리 계층에서, 상기 시리얼 인터페이스는 10G-KR 또는 40G-KR일 수 있다. 상기 시리얼 릴레이 1210은 상기 시리얼 인터페이스를 지원하기 위한 프로토콜을 연결되는 모듈에 맞게 설정 가능(configurable)하다. 일부 실시 예들에서, 상기 시리얼 릴레이 1210이 보 드 1420과 연결되는 경우, 상기 릴레이 1210은 메모리 인터페이스로 설정될 수 있다. 다른 일부 실시 예들에서, 상기 시리얼 릴레이 1210이 보드 1425와 연결되는 경우, 상기 릴레이 1210은 이더넷 인터페이스로 설정될 수 있다. 상기 릴레이 1210은 상기 CPU로부터 수신되는 제어 신호에 기반하여 특정 인퍼테이스로 설정될 수 있다.The
도 14b는 다수의 인터페이스를 지원하는 시리얼 릴레이 1210의 일 실시 예를 도시한다.14B illustrates an embodiment of a
상기 시리얼 릴레이 1210은 CPU를 포함하는 보드 1430과 시리얼 라인으로 연결될 수 있다. 상기 CPU는 메모리 컨트롤러 및 이더넷 컨트롤러 모두를 포함하는 CPU일 수 있다. 상기 시리얼 릴레이 1210은 보드 1440과 시리얼 라인으로 연결될 수도 있다. 상기 보드 1440은 메모리 모듈 1443 및 이더넷 모듈 1445를 모두 포함하는 보드일 수 있다. The
상기 시리얼 릴레이 1210은 메모리 인터페이스 및 이더넷 인터페이스 모두를 지원하는 프로토콜이 구현되도록 설정될 수 있다. 상기 프로토콜은 물리 계층 및 데이터 링크 계층 중 적어도 하나에 대한 프로토콜일 수 있다. 일부 실시 예들에서, 상기 시리얼 릴레이 1210은 메모리 인터페이스에 대한 프로토콜을 구현하도록 설정될 수 있다. 다른 일부 실시 예들에서, 상기 시리얼 릴레이 1210은 이더넷 인터페이스에 대한 프로토콜을 구현하도록 설정될 수도 있다. 또 다른 일부 실시 예들에서, 상기 시리얼 릴레이 1210은 메모리 인터페이스 및 이더넷 인터페이스를 모두 지원하는 프로토콜을 구현하도록 설정될 수도 있다. 상기 시리얼 릴레이 1210은 동시에 상기 메모리 모듈 1443 및 상기 이더넷 모듈 1445와 데이터 통신을 수행할 수 있다. 상기 시리얼 릴레이 1210은 설정에 따라, 적응적으로 프로토콜을 구현할 수 있다. The
상기 CPU는 상기 릴레이를 설정하기 위한 제어 신호를 송신할 수 있다.The CPU can transmit a control signal for setting the relay.
도 14c는 시리얼 릴레이 1210의 종속 연결의 예를 도시한다.14C shows an example of a cascade connection of the
상기 시리얼 릴레이 1210은 CPU를 포함하는 보드 1450과 시리얼 라인으로 연결될 수 있다. 상기 CPU는 메모리 컨트롤러를 포함하는 CPU일 수 있다. 상기 시리얼 릴레이 1210은 보드 1460과 시리얼 라인으로 연결될 수도 있다. 상기 보드 1460은 메모리 모듈 1461, 메모리 모듈 1463, 메모리 모듈 1465을 포함하는 보드일 수 있다. The
상기 메모리 모듈 1461, 상기 메모리 모듈 1463, 상기 메모리 모듈 1465는 상기 시리얼 릴레이 1210과 종속적으로 연결될 수 있다. 구체적으로, 릴레이 모듈 1210은 상기 메모리 모듈 1461과 시리얼 라인으로 연결될 수 있다. 상기 메모리 모듈 1461은 상기 메모리 모듈 1463과 시리얼 라인으로 연결될 수 있다. 상기 메모리 모듈 1463은 상기 메모리 모듈 1465와 시리얼 라인으로 연결될 수 있다.The
상기 릴레이 1210은 신호를 상기 메모리 모듈 1465에게 전달하는 경우, 상기 메모리 모듈 1461, 상기 메모리 모듈 1463을 거쳐 상기 메모리 1465에게 전송될 수 있다. 일부 실시 예들에서, 상기 릴레이 1210은 상대적으로 거리가 먼 상기 메모리 모듈 1465에게 신호를 송신하기 위하여, 상기 신호의 출력을 증폭시킬 수 있다. The
상기 릴레이 1210은 상기 CPU로부터 데이터에 대한 신호를 수신할 수 있다. 상기 데이터에 대한 신호는 데이터를 요청하기 위한 신호일 수 있다. 상기 릴레이 1210은 상기 데이터에 대한 신호를 순차적으로 상기 메모리 모듈 1461, 상기 메모리 모듈 1463, 상기 메모리 모듈 1465에게 전송할 수 있다. The
일부 실시 예들에서, 상기 릴레이 1210은 상기 데이터에 대한 메모리 자원의 할당량을 결정할 수 있다. 예를 들어, 상기 데이터에 대한 신호는 상기 메모리 모듈 1461에는 3만큼의 데이터를, 상기 메모리 모듈 1463에는 5만큼의 데이터를, 상기 메모리 모듈 1465에는 2만큼의 데이터를 저장하기 위한 신호일 수 있다. 상기 메모리 모듈 1461은 상기 신호 수신 시, 상기 3만큼의 데이터를 저장할 수 있다. 이후, 상기 메모리 모듈 1461은 상기 신호를 그대로 상기 메모리 모듈 1463에게 전송할 수 있다. 상기 메모리 모듈 1463은 상기 5만큼의 데이터를 저장한 뒤, 상기 신호를 그대로 상기 메모리 모듈 1465에게 전송할 수 있다. 상기 메모리 모듈 1465는 상기 2만큼의 데이터를 저장할 수 있다.In some embodiments, the
다른 일부 실시 예들에서, 상기 릴레이 1210은 CPU로부터 상기 메모리 모듈들 각각에 대한 데이터의 할당량을 가리키는 지시 신호를 수신할 수도 있다. 이후 동작은, 상기 데이터에 대한 신호를 수신하는 경우에서의 동작과 동일할 수 있다.In some other embodiments, the
도 14d는 다수의 인터페이스를 지원하는 시리얼 릴레이 1210의 종속 연결의 예를 도시한다.14D shows an example of a cascade connection of a
상기 시리얼 릴레이 1210은 CPU를 포함하는 보드 1470과 시리얼 라인으로 연결될 수 있다. 상기 CPU는 메모리 컨트롤러 및 이더넷 컨트롤러를 포함하는 CPU일 수 있다. 상기 시리얼 릴레이 1210은 보드 1480과 시리얼 라인으로 연결될 수도 있다. 상기 보드 1460은 메모리 모듈 1481, 이더넷 모듈 1483, 메모리 모듈 1485를 포함하는 보드일 수 있다. The
상기 메모리 모듈 1481, 상기 이더넷 모듈 1483, 상기 메모리 모듈 1485는 상기 시리얼 릴레이 1210과 종속적으로 연결될 수 있다. 구체적으로, 릴레이 모듈 1210은 상기 메모리 모듈 1481과 시리얼 라인으로 연결될 수 있다. 상기 메모리 모듈 1481은 상기 메모리 모듈 1483과 시리얼 라인으로 연결될 수 있다. 상기 메모리 모듈 1483은 상기 메모리 모듈 1485와 시리얼 라인으로 연결될 수 있다.The
상기 릴레이 1210은 신호를 상기 메모리 모듈 1485에게 전달하는 경우, 상기 메모리 모듈 1481, 상기 이더넷 모듈 1483을 거쳐 상기 메모리 1485에게 전송될 수 있다. 일부 실시 예들에서, 상기 릴레이 1210은 상대적으로 거리가 먼 상기 메모리 모듈 1485에게 신호를 송신하기 위하여, 상기 신호의 출력을 증폭시킬 수 있다. The
상기 릴레이 1210은 상기 CPU로부터 데이터에 대한 이더넷 신호를 수신할 수 있다. 상기 이더넷 신호는 다른 전자 장치에게 상기 데이터를 요청하기 위한 신호일 수 있다. 상기 릴레이 1210은 상기 데이터에 대한 신호를 순차적으로 상기 메모리 모듈 1481, 상기 이더넷 모듈 1483, 상기 메모리 모듈 1485에게 전송할 수 있다. 상기 메모리 모듈 1481은 상기 이더넷 신호 수신 시, 상기 신호를 그대로 상기 이더넷 모듈 1483에게 전송할 수 있다. 상기 이더넷 모듈 1483은 상기 신호에 기반하여, 상기 다른 전자 장치와 연결될 수 있다. 상기 이더넷 모듈 1483은 다른 전자 장치와 연결되는 것과 독립적으로, 상기 이더넷 신호를 그대로 상기 메모리 모듈 1485에게 전송할 수 있다. 이 때, 상기 시리얼 릴레이 1210은 메모리 인터페이스 및 이더넷 인터페이스를 모두 지원하는 프로토콜을 구현하도록 설정될 수 있다.The
도 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
한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.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)
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,
시리얼 통신을 수행하기 위한 적어도 하나의 라인으로 상기 시리얼 허브와 연결되는 다른 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.
시리얼 통신을 수행하기 위한 적어도 하나의 라인으로 상기 시리얼 허브와 연결되는 다른 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 >
시리얼 통신을 수행하기 위한 적어도 하나의 라인으로 상기 시리얼 허브와 연결되는 다른 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.
시리얼 통신을 수행하기 위한 적어도 하나의 라인으로 상기 시리얼 허브와 연결되는 이더넷(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.
상기 시리얼 허브는,
상기 수신되는 데이터를 상기 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 메모리 모듈에 저장하도록 추가적으로 구성되는 전자 장치.
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 메모리 모듈로부터 상기 적어도 하나의 라인을 통하여 데이터를 수신하고, 상기 수신한 데이터를 상기 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.
상기 시리얼 통신을 수행하기 위한 상기 적어도 하나의 라인은,
상기 시리얼 허브에서 상기 복수의 메모리 모듈들 각각으로 신호가 전송되는 송신 시리얼 라인(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.
상기 시리얼 허브는 상기 신호에 대한 가상 주소를 물리 주소로 변환하도록 구성되는 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.
상기 전자 장치의 시리얼 허브(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.
상기 전자 장치의 다른 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.
상기 전자 장치의 다른 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.
상기 전자 장치의 다른 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.
상기 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.
상기 수신되는 데이터를 상기 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.
상기 신호에 대한 가상 주소를 물리 주소로 변환하는 동작을 더 포함하는 방법.
The method of claim 11,
Further comprising converting a virtual address for the signal to a physical address.
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.
상기 시리얼 릴레이는, 상기 제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.
상기 제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.
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)
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 |
-
2016
- 2016-08-26 KR KR1020160109076A patent/KR20180023543A/en not_active Application Discontinuation
Cited By (1)
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 |