KR20190110306A - Memory system and data processing system including the same - Google Patents
Memory system and data processing system including the same Download PDFInfo
- Publication number
- KR20190110306A KR20190110306A KR1020180032111A KR20180032111A KR20190110306A KR 20190110306 A KR20190110306 A KR 20190110306A KR 1020180032111 A KR1020180032111 A KR 1020180032111A KR 20180032111 A KR20180032111 A KR 20180032111A KR 20190110306 A KR20190110306 A KR 20190110306A
- Authority
- KR
- South Korea
- Prior art keywords
- processor
- ownership
- host processor
- controller
- shared memory
- Prior art date
Links
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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
Abstract
Description
본 발명은 데이터 처리 시스템에 관한 것으로, 더욱 상세하게는 공유 메모리를 포함하는 데이터 처리 시스템에 관한 것이다.The present invention relates to a data processing system, and more particularly to a data processing system comprising a shared memory.
데이터 처리 시스템은 데이터를 처리할 수 있는 전자 시스템으로서, 퍼스널 컴퓨터, 랩탑 컴퓨터, 스마트폰, 태블릿 컴퓨터, 디지털 카메라, 게임 콘솔, 네비게이션, 가상현실 장치 및 웨어러블 장치 등을 포함할 수 있다. The data processing system is an electronic system capable of processing data, and may include a personal computer, a laptop computer, a smartphone, a tablet computer, a digital camera, a game console, a navigation device, a virtual reality device, a wearable device, and the like.
데이터 처리 시스템은 메모리 시스템을 포함할 수 있다. 메모리 시스템은 데이터 처리 시스템에서 처리되는 데이터를 저장하도록 구성될 수 있다. 메모리 시스템은 데이터 처리 시스템에 내장되어 동작하거나, 분리 가능한 형태로 제작되어 데이터 처리 시스템에 연결됨으로써 동작할 수 있다. 메모리 시스템은 PCMCIA(Personal Computer Memory Card International Association) 카드, CF(Compact Flash) 카드, 스마트 미디어 카드, 메모리 스틱, 다양한 멀티 미디어 카드(MMC, eMMC, RS-MMC, MMC-micro), SD(Secure Digital) 카드(SD, Mini-SD, Micro-SD), UFS(Universal Flash Storage) 또는 SSD(Solid State Drive) 등으로 구성될 수 있다.The data processing system can include a memory system. The memory system may be configured to store data processed in the data processing system. The memory system may be operated by being embedded in a data processing system or by being manufactured in a detachable form and connected to the data processing system. Memory systems include Personal Computer Memory Card International Association (PCMCIA) cards, Compact Flash (CF) cards, smart media cards, memory sticks, various multimedia cards (MMC, eMMC, RS-MMC, MMC-micro), and Secure Digital (SD). ) Card (SD, Mini-SD, Micro-SD), UFS (Universal Flash Storage) or SSD (Solid State Drive).
본 발명의 실시 예는 호스트 프로세서와 주변 프로세서가 서로 충돌함이 없이 공유 메모리를 액세스할 수 있는 데이터 처리 시스템을 제공하는 데 있다.An embodiment of the present invention is to provide a data processing system capable of accessing a shared memory without conflict between the host processor and the peripheral processor.
본 발명의 실시 예에 따른 데이터 처리 시스템은 공유 메모리; 상기 공유 메모리에 대한 오너쉽을 소유하고 상기 공유 메모리를 액세스함으로써 제1 작업을 처리하도록 구성된 호스트 프로세서; 상기 호스트 프로세서로부터 상기 오너쉽을 이전받아 소유하고 상기 공유 메모리를 액세스함으로써 제2 작업을 처리하도록 구성된 프로세서; 및 상기 호스트 프로세서, 상기 프로세서 및 상기 공유 메모리 사이에 연결되고, 상기 오너쉽에 따라 상기 호스트 프로세서 또는 상기 프로세서의 상기 공유 메모리로의 액세스를 허용하도록 구성된 메모리 컨트롤러를 포함하되, 상기 메모리 컨트롤러는 메일 박스를 포함하고, 상기 호스트 프로세서는 상기 메일 박스를 액세스함으로써 상기 오너쉽을 이전 또는 회수할 수 있다.A data processing system according to an embodiment of the present invention includes a shared memory; A host processor configured to process a first task by owning ownership of the shared memory and accessing the shared memory; A processor configured to receive and own the ownership from the host processor and to process a second job by accessing the shared memory; And a memory controller coupled between the host processor, the processor and the shared memory, the memory controller configured to allow access to the shared memory of the host processor or the processor in accordance with the ownership. And the host processor can transfer or reclaim the ownership by accessing the mailbox.
본 발명의 실시 예에 따른 메모리 시스템은 공유 메모리; 호스트 프로세서로부터 오너쉽을 이전받아 상기 공유 메모리를 액세스함으로써 작업을 처리하도록 구성된 프로세서; 및 상기 호스트 프로세서, 상기 프로세서 및 상기 공유 메모리 사이에 연결되고, 상기 오너쉽에 따라 상기 호스트 프로세서 또는 상기 프로세서의 상기 공유 메모리로의 액세스를 허용하도록 구성된 메모리 컨트롤러를 포함하되, 상기 메모리 컨트롤러는 상기 호스트 프로세서가 상기 오너쉽을 상기 프로세서에게 이전하기 위해 액세스하는 메일 박스를 포함할 수 있다.Memory system according to an embodiment of the present invention is a shared memory; A processor configured to receive ownership from a host processor and process the job by accessing the shared memory; And a memory controller coupled between the host processor, the processor and the shared memory, the memory controller configured to allow access to the shared memory of the host processor or the processor in accordance with ownership; May include a mailbox that is accessed to transfer the ownership to the processor.
본 발명의 실시 예에 따른 데이터 처리 시스템은 호스트 프로세서와 주변 프로세서가 서로 충돌함이 없이 공유 메모리를 액세스할 수 있다.The data processing system according to an exemplary embodiment of the present invention may access a shared memory without colliding with the host processor and the peripheral processor.
도1은 본 발명의 실시 예에 따른 데이터 처리 시스템을 도시하는 블록도,
도2는 본 발명의 실시 예에 따라, 호스트 프로세서 또는 프로세서가 공유 메모리에 대한 오너쉽을 교대로 소유하는 상황을 도시하는 도면,
도3은 본 발명의 실시 예에 따라 호스트 프로세서 및 프로세서의 동작 절차를 간략하게 도시하는 도면,
도4는 본 발명의 실시 예에 따라, 메일 박스의 구성을 설명하기 위한 도면,
도5는 본 발명의 실시 예에 따른 메모리 컨트롤러를 상세하게 도시하는 블록도,
도6은 본 발명의 실시 예에 따라 호스트 프로세서가 공유 메모리에 작업 데이터를 저장하는 방법을 도시하는 도면,
도7은 본 발명의 실시 예에 따라 호스트 프로세서가 오너쉽을 프로세서에게 이전하는 방법을 도시하는 도면,
도8은 본 발명의 실시 예에 따라 제어부가 오너쉽을 프로세서에게 귀속시키는 방법을 도시하는 도면,
도9는 본 발명의 실시 예에 따라 호스트 프로세서가 메일 박스에 작업 정보를 저장하는 방법을 도시하는 도면,
도10은 본 발명의 실시 예에 따라 프로세서가 메일 박스로부터 작업 정보를 리드하는 방법을 도시하는 도면,
도11은 본 발명의 실시 예에 따라 프로세서가 작업 데이터를 처리하는 방법을 도시하는 도면,
도12는 본 발명의 실시 예에 따라 호스트 프로세서가 프로세서로부터 오너쉽을 회수하는 방법을 도시하는 도면,
도13은 본 발명의 실시 예에 따라 호스트 프로세서가 공유 메모리로부터 작업 결과 데이터를 리드하는 방법을 도시하는 도면,
도14는 본 발명의 실시 예에 따라 호스트 프로세서가 메일 박스로부터 작업 결과 데이터를 리드하는 방법을 도시하는 도면,
도15는 본 발명의 실시 예에 따른 데이터 처리 시스템을 예시적으로 도시하는 도면,
도16은 본 발명의 실시 예에 따른 데이터 처리 시스템을 예시적으로 도시하는 도면,
도17은 본 발명의 실시 예에 따른 데이터 처리 시스템을 예시적으로 도시하는 도면,
도18은 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 네트워크 시스템을 예시적으로 도시하는 도면이다.1 is a block diagram showing a data processing system according to an embodiment of the present invention;
2 is a diagram illustrating a situation in which a host processor or a processor alternately owns ownership of a shared memory according to an embodiment of the present invention;
3 is a diagram schematically illustrating an operating procedure of a host processor and a processor according to an embodiment of the present disclosure;
4 is a view for explaining the configuration of a mailbox according to an embodiment of the present invention;
5 is a block diagram illustrating in detail a memory controller in accordance with an embodiment of the present invention;
6 is a diagram illustrating a method for storing work data in a shared memory by a host processor according to an embodiment of the present invention;
7 is a diagram illustrating a method for transferring ownership to a processor by a host processor according to an embodiment of the present invention;
8 is a diagram illustrating a method in which a control unit assigns ownership to a processor according to an embodiment of the present invention;
9 is a diagram for a method of storing, by a host processor, job information in a mailbox according to an embodiment of the present invention;
10 is a diagram illustrating a method in which a processor reads job information from a mailbox according to an embodiment of the present invention;
11 is a diagram illustrating a method of processing job data by a processor according to an embodiment of the present invention;
12 is a diagram illustrating a method in which a host processor reclaims ownership from a processor according to an embodiment of the present invention;
FIG. 13 is a diagram illustrating a method in which a host processor reads operation result data from a shared memory according to an embodiment of the present disclosure; FIG.
14 is a diagram illustrating a method in which a host processor reads job result data from a mailbox according to an embodiment of the present invention;
15 is a diagram illustrating a data processing system in accordance with an embodiment of the present invention.
16 is a diagram illustrating a data processing system in accordance with an embodiment of the present invention.
17 is a diagram illustrating a data processing system in accordance with an embodiment of the present invention.
FIG. 18 is a diagram illustrating a network system including a memory system according to an embodiment of the present disclosure.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.Advantages and features of the present invention, and methods for achieving the same will be described with reference to embodiments described below in detail with the accompanying drawings. However, the present invention is not limited to the embodiments described herein and may be embodied in other forms. However, the present embodiments are provided to explain in detail enough to easily implement the technical idea of the present invention to those skilled in the art.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 본 명세서에서 특정한 용어들이 사용되었으나. 이는 본 발명을 설명하기 위한 목적에서 사용된 것이며, 의미 한정이나 특허 청구 범위에 기재된 본 발명의 권리 범위를 제한하기 위하여 사용된 것은 아니다.In the drawings, the embodiments of the present invention are not limited to the specific forms shown, but are exaggerated for clarity. Although specific terms are used herein. It is used for the purpose of illustrating the present invention and is not intended to limit the scope of the present invention as defined in the meaning limitations or claims.
본 명세서에서 '및/또는'이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, '연결되는/결합되는'이란 표현은 다른 구성 요소와 직접적으로 연결되거나 다른 구성 요소를 통해서 간접적으로 연결되는 것을 포함하는 의미로 사용된다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 '포함한다' 또는 '포함하는'으로 언급된 구성 요소, 단계, 동작 및 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및 소자의 존재 또는 추가를 의미한다.The expression 'and / or' is used herein to mean at least one of the components listed before and after. In addition, the expression 'connected / combined' is used in the sense of including directly connected to or indirectly connected to other components. In this specification, the singular forms also include the plural unless specifically stated otherwise in the phrases. Also, as used herein, components, steps, operations, and elements referred to as 'comprising' or 'comprising' refer to the presence or addition of one or more other components, steps, operations, and elements.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
도1은 본 발명의 실시 예에 따른 데이터 처리 시스템(100)을 도시하는 블록도이다.1 is a block diagram illustrating a
도1을 참조하면, 데이터 처리 시스템(100)은 호스트 프로세서(110), 프로세서(120), 공유 메모리(130) 및 메모리 컨트롤러(140)를 포함할 수 있다.Referring to FIG. 1, the
호스트 프로세서(110)는 데이터 처리 시스템(100)을 전반적으로 제어할 수 있다. 호스트 프로세서(110)는 공유 메모리(130)에 대한 오너쉽을 소유하고 공유 메모리(130)를 액세스함으로써 작업을 처리할 수 있다. 또한, 호스트 프로세서(110)는 프로세서(120)에게 작업의 처리를 지시하면서 오너쉽을 프로세서(120)에게 이전할 수 있다.The
프로세서(120)는 호스트 프로세서(110)에 의해 지시된 작업을 처리할 수 있다. 프로세서(120)는 호스트 프로세서(110)로부터 오너쉽을 이전받아 오너쉽을 소유하고 공유 메모리(130)를 액세스함으로써 작업을 처리할 수 있다. 즉, 본 발명에서 오너쉽은 호스트 프로세서(110)와 프로세서(120)가 서로 충돌 없이 공유 메모리(130)를 독점적으로 액세스할 수 있는 권한일 수 있다. 호스트 프로세서(110)와 프로세서(120)는 메모리 컨트롤러(140)를 통해 공유 메모리(130)를 액세스할 수 있다.The
한편, 호스트 프로세서(110)는 오너쉽을 프로세서(120)에게 이전한 후, 메모리 컨트롤러(140)로부터 프로세서(120)의 상태 정보를 확인할 수 있다. 호스트 프로세서(110)는 프로세서(120)가 작업을 종료한 것으로 판단될 때, 오너쉽을 프로세서(120)로부터 회수하여 다시 소유할 수 있다. 호스트 프로세서(110)는 오너쉽을 소유한 뒤, 공유 메모리(130)로부터 프로세서(120)의 작업 결과 데이터를 리드할 수 있다.The
상술한 바와 같이, 오너쉽이 호스트 프로세서(110) 및 프로세서(120) 중 누구에게 있는지에 따라 공유 메모리(130)의 액세스는 제한될 수 있다. 이것은 메모리 컨트롤러(130)가 오너쉽을 호스트 프로세서(110) 및 프로세서(120) 중 어느 하나에게 귀속시킴으로써 가능하다. 메모리 컨트롤러(130)는 호스트 프로세서(110)의 제어에 따라 오너쉽을 호스트 프로세서(110) 및 프로세서(120) 중 어느 하나에게 귀속시키면서 공유 메모리(130)에 대한 패스를 변경할 수 있다. 호스트 프로세서(110)는 오너쉽의 귀속을 변경하기 위해, 즉, 오너쉽을 프로세서(120)에게 이전하거나 프로세서(120)로부터 회수하기 위해, 소정 커맨드를 메모리 컨트롤러(140)로 전송할 수 있다.As described above, access to the shared
호스트 프로세서(110) 및 프로세서(120)는 중앙 처리 장치, 그래픽 처리 장치, 마이크로 프로세서, 애플리케이션 프로세서, 가속 처리 장치(Accelerated Processing Unit) 및 운영 체제 등을 포함할 수 있다.The
공유 메모리(130)는 호스트 프로세서(110)와 프로세서(120)에 의해 공유될 수 있다. 공유 메모리(130)는 호스트 프로세서(110)와 프로세서(120) 중 오너쉽을 소유하는 어느 하나에 의해 메모리 컨트롤러(140)를 통해 액세스될 수 있다. The shared
메모리 컨트롤러(140)는 호스트 프로세서(110), 프로세서(120) 및 공유 메모리(130) 사이에 연결될 수 있다. 메모리 컨트롤러(140)는 호스트 프로세서(110)의 제어에 따라 오너쉽을 호스트 프로세서(110)와 프로세서(120) 중 어느 하나에게 귀속시킴으로써, 호스트 프로세서(110)의 공유 메모리(130) 액세스 또는 프로세서(120)의 공유 메모리(130) 액세스를 허용할 수 있다. 오너쉽을 호스트 프로세서(110)와 프로세서(120) 중 어느 하나에게 귀속시키는 것은 결국, 메모리 컨트롤러(140)가 호스트 프로세서(110), 프로세서(120) 및 공유 메모리(130) 사이에서 데이터 패스 및 커맨드 패스를 선택적으로 활성화시키는 것으로 구현될 수 있다. 메모리 컨트롤러(140)는 호스트 프로세서(110)로부터 전송된 소정 커맨드에 응답하여 호스트 프로세서(110)와 프로세서(120) 간에 오너쉽의 귀속을 변경할 수 있다.The
메모리 컨트롤러(140)는 메일 박스(145)를 포함할 수 있다. 호스트 프로세서(110)는 메일 박스(145)를 액세스함으로써 오너쉽을 프로세서(120)에게 이전하고 프로세서로부터 회수할 수 있다. 호스트 프로세서(110)는 메일 박스(145)에 프로세서(120)가 확인해야 할 작업 정보를 저장할 수 있다. 호스트 프로세서(110)는 메일 박스(145)로부터 프로세서(120)의 상태 정보를 리드할 수 있다.The
또한, 프로세서(120)는 메일 박스(145)로부터 작업 정보를 리드하고 확인함으로써 호스트 프로세서(110)가 지시한 작업을 처리할 수 있다.In addition, the
메일 박스(145)는 SRAM 또는 레지스터 등 다양한 메모리 소자로 구현될 수 있다.The
정리하면, 메모리 컨트롤러(140)는 호스트 프로세서(110)의 제어에 따라 오너쉽을 호스트 프로세서(110)와 프로세서(120) 중 어느 하나에게 귀속시키고 오너쉽을 가진 어느 한쪽만의 공유 메모리(130)에 대한 액세스를 허용하기 때문에, 호스트 프로세서(110)와 프로세서(120)는 충돌 없이 공유 메모리(130)를 사용하여 작업을 처리할 수 있다. 또한, 공유 메모리(130)의 인터페이스는 기존의 프로토콜이나 핀 배치에 따라 그대로 적용될 수 있다.In summary, the
도2는 본 발명의 실시 예에 따라, 호스트 프로세서(110) 또는 프로세서(120)가 공유 메모리(130)에 대한 오너쉽을 교대로 소유하는 상황을 도시하는 도면이다.2 is a diagram illustrating a situation in which the
도2를 참조하면, 최초에 호스트 프로세서(110)가 오너쉽을 소유한 상태일 수 있다. 따라서, 시간(T1) 동안, 호스트 프로세서(110)가 오너쉽을 소유하고 공유 메모리(130)를 액세스하여 작업을 처리할 수 있다. 시간(T1) 동안, 프로세서(120)는 공유 메모리(130)를 액세스할 수 없다.Referring to FIG. 2, the
시점(P1)에서 호스트 프로세서(110)가 오너쉽을 프로세서(120)에게 이전할 수 있다. 따라서, 시간(T2) 동안, 프로세서(120)가 오너쉽을 소유하고 공유 메모리(130)를 액세스하여 작업을 처리할 수 있다. 시간(T2) 동안, 호스트 프로세서(110)는 공유 메모리(130)를 액세스할 수 없다.At the point in time P1, the
시점(P2)에서 호스트 프로세서(110)가 오너쉽을 프로세서(120)로부터 회수할 수 있다. 따라서, 시간(T3) 동안, 호스트 프로세서(110)가 오너쉽을 소유하고 공유 메모리(130)를 액세스하여 작업을 처리할 수 있다. 시간(T3) 동안, 프로세서(120)는 공유 메모리(130)를 액세스할 수 없다.At the point in time P2, the
실시 예에 따라, 시간(T1)에서 처리된 호스트 프로세서(110)의 작업은, 프로세서(120)에게 처리를 지시할 작업 데이터를 공유 메모리(130)에 저장하는 것을 포함할 수 있다. 시간(T2)에서 처리된 프로세서(120)의 작업은, 호스트 프로세서(110)의 지시에 따라 공유 메모리(130)에 저장된 작업 데이터를 처리하는 것을 포함할 수 있다. 시간(T3)에서 처리된 호스트 프로세서(110)의 작업은, 프로세서(120)가 처리한 작업 결과 데이터를 공유 메모리(130)로부터 리드하는 것을 포함할 수 있다. 해당 절차에 대한 설명은 이어서 도3을 참조하여 상세하게 설명될 것이다.According to an embodiment, the operation of the
도3은 본 발명의 실시 예에 따라 호스트 프로세서(110) 및 프로세서(120)의 동작 절차를 간략하게 도시하는 도면이다. 도3에서 절차가 시작될 때 오너쉽은 호스트 프로세서(110)가 소유한 상태일 수 있다.3 is a diagram schematically illustrating an operation procedure of the
도3을 참조하면, 단계(S11)에서, 호스트 프로세서(110)는 프로세서(120)가 처리해야 할 작업 데이터를 공유 메모리(130)에 저장할 수 있다. 호스트 프로세서(110)는 오너쉽을 소유하므로 공유 메모리(130)를 액세스할 수 있다. 한편, 호스트 프로세서(110)는 공유 메모리(130)를 직접적으로 액세스하지는 않고, 실질적으로는 메모리 컨트롤러(140)를 통해 액세스할 것이다. 단계(S11)에서 호스트 프로세서(110)로부터 공유 메모리(130)로 연결된 화살표는 호스트 프로세서(110)가 오너쉽을 가지고 공유 메모리(130)를 사용한다는 의미이다.Referring to FIG. 3, in step S11, the
단계(S12)에서, 호스트 프로세서(110)는 오너쉽을 프로세서(120)에게 이전하기 위해 메모리 컨트롤러(140)로 소정 커맨드를 전송할 수 있다.In operation S12, the
단계(S13)에서, 메모리 컨트롤러(140)는 호스트 프로세서(110)로부터 전송된 커맨드에 응답하여 프로세서(120)에게 오너쉽을 귀속시킬 수 있다. 따라서, 이후 메모리 컨트롤러(140)는 공유 메모리(130)에 대해 오직 프로세서(120)의 액세스만을 허용할 수 있다.In operation S13, the
단계(S14)에서, 호스트 프로세서(110)는 메모리 컨트롤러(140)의 메일 박스(145)에 작업 정보를 저장할 수 있다. 작업 정보는 프로세서(120)가 처리해야 할 작업에 대한 정보를 포함할 수 있다. 예를 들어, 작업 정보는 공유 메모리(130)에서 작업 데이터가 저장된 영역의 시작 어드레스 및 마지막 어드레스를 포함할 수 있다. 작업 정보는 공유 메모리(130)에서 작업 결과 데이터가 저장되어야 할 영역의 시작 어드레스와 마지막 어드레스를 포함할 수 있다.In operation S14, the
단계(S15)에서, 프로세서(120)는 메일 박스(145)에 저장된 작업 정보를 리드할 수 있다.In operation S15, the
단계(S16)에서, 프로세서(120)는 공유 메모리(130)에 저장된 작업 데이터를 처리할 수 있다. 프로세서(120)는 공유 메모리(130)로부터 작업 데이터를 리드하여 처리하고, 처리된 데이터를 작업 결과 데이터로서 공유 메모리(130)에 저장할 수 있다. 프로세서(120)는 오너쉽을 소유하므로 공유 메모리(130)를 액세스할 수 있다. 한편, 프로세서(120)는 공유 메모리(130)를 직접적으로 액세스하지는 않고, 실질적으로 메모리 컨트롤러(140)를 통해 액세스할 것이다. 단계(S16)에서 프로세서(120)로부터 공유 메모리(130)로 연결된 화살표는 프로세서(120)가 오너쉽을 가지고 공유 메모리(130)를 사용한다는 의미이다.In operation S16, the
단계(S17)에서, 호스트 프로세서(110)는 메모리 컨트롤러(140)의 메일 박스(145)를 통해 프로세서(120)의 상태 정보를 반복적으로 리드할 수 있다. 상태 정보는 프로세서(120)가 작업을 종료하였는지 여부를 포함할 수 있다. 상태 정보는 프로세서(120)가 처리중인 동작의 잔여 처리량을 포함할 수 있다. 단계(S17)는 단계(S16)와 병렬적으로 수행될 수 있다. 후술될 바와 같이, 프로세서(120)가 오너쉽을 소유할 때, 호스트 프로세서(110)는 메일 박스(145)에 대한 액세스가 가능해 진다.In operation S17, the
단계(S18)에서, 호스트 프로세서(110)는 프로세서(120)가 작업을 종료한 것으로 판단될 때, 오너쉽을 프로세서(120)로부터 회수하기 위해 메모리 컨트롤러(140)로 소정 커맨드를 전송할 수 있다.In operation S18, when it is determined that the
단계(S19)에서, 메모리 컨트롤러(140)는 호스트 프로세서(110)로부터 전송된 커맨드에 응답하여 호스트 프로세서(110)에게 오너쉽을 귀속시킬 수 있다. 따라서, 이후 메모리 컨트롤러(140)는 공유 메모리(130)에 대해 오직 호스트 프로세서(110)의 액세스만을 허용할 수 있다.In operation S19, the
단계(S20)에서, 호스트 프로세서(110)는 프로세서(120)의 작업 결과 데이터를 공유 메모리(130)로부터 리드할 수 있다. 호스트 프로세서(110)는 오너쉽을 소유하므로 공유 메모리(130)를 액세스할 수 있다. 한편, 호스트 프로세서(110)는 공유 메모리(130)를 직접적으로 액세스하지는 않고, 실질적으로는 메모리 컨트롤러(140)를 통해 액세스할 것이다. 단계(S11)에서 호스트 프로세서(110)로부터 공유 메모리(130)로 연결된 화살표는 호스트 프로세서(110)가 오너쉽을 가지고 공유 메모리(130)를 사용한다는 의미이다.In operation S20, the
도4는 본 발명의 실시 예에 따라, 메일 박스(145)의 구성을 설명하기 위한 도면이다. 도4에 도시된 어드레스는 이후 설명되는 동작 방법에서도 그대로 사용될 것이다. 또한, 도4에서 메일 박스(145)를 사용하여 오너쉽을 이전하고 회수하는 방법도 함께 설명될 것이다.4 is a view for explaining the configuration of a
도4를 참조하면, 호스트 프로세서(110)가 사용하는 어드레스 범위(ADa~ADz)가 도시된다. 호스트 프로세서(110)는 공유 메모리(130)에 어드레스 범위(ADa~ADz) 중 일부 범위(ADa~ADi)를 할당할 수 있다. 호스트 프로세서(110)는 메일 박스(145)에 어드레스 범위(ADa~ADz) 중 일부 범위(ADj~ADn)를 할당할 수 있다. 어드레스 범위(ADa~ADz) 중 일부 범위(ADo~ADz)는 사용되지 않고 유보될 수 있다.Referring to FIG. 4, the address ranges ADa to ADz used by the
따라서, 메모리 컨트롤러(140)는 호스트 프로세서(110)로부터 전송된 어떤 액세스 커맨드의 어드레스가 공유 메모리(130)의 어드레스 범위(ADa~ADi)와 메일 박스(145)의 어드레스 범위(ADj~ADn) 중 어디에 포함되는 지를 판단하여, 판단 결과에 따라 액세스 커맨드를 처리할 수 있다.Therefore, the
메일 박스(145)는 오너쉽 이전 영역(401), 오너쉽 회수 영역(402), 작업 정보 영역(403), 상태 정보 영역(404), 및 작업 결과 데이터 영역(405)을 포함할 수 있다. 오너쉽 이전 영역(401), 오너쉽 회수 영역(402), 작업 정보 영역(403), 상태 정보 영역(404), 및 작업 결과 데이터 영역(405)은 각각 어드레스 범위(ADj~ADn)에 포함되는 어드레스들에 대응할 수 있다.The
오너쉽 이전 영역(401)은 호스트 프로세서(110)가 오너쉽을 프로세서(120)에게 이전하기 위해 리드 액세스하는 영역일 수 있다. 호스트 프로세서(110)는 오너쉽을 프로세서(120)에게 이전하기 위해 리드 커맨드와 오너쉽 이전 영역(401)의 어드레스(AD-TR)를 메모리 컨트롤러(140)로 전송할 수 있다. 메모리 컨트롤러(140)는 호스트 프로세서(110)로부터 전송된 리드 커맨드와 오너쉽 이전 영역(401)의 어드레스(AD-TR)를 확인하여 오너쉽을 프로세서(120)에게 귀속시킬 수 있다. 메모리 컨트롤러(140)는 오너쉽 이전 영역(401)에 대한 리드 커맨드에 응답하여, 오너쉽 이전 영역(401)에 저장된 이전 확인 데이터를 호스트 프로세서(110)로 전송할 수 있다. 이전 확인 데이터는 오너쉽 이전이 완료되었음을 의미하는 것으로서 호스트 프로세서(110)와 사전에 약속된 데이터일 수 있다. The
오너쉽 회수 영역(402)은 호스트 프로세서(110)가 오너쉽을 프로세서(120)로부터 회수하기 위해 리드 액세스하는 영역일 수 있다. 호스트 프로세서(110)는 오너쉽을 프로세서(120)로부터 회수하기 위해 리드 커맨드와 오너쉽 회수 영역(402)의 어드레스(AD-RS)를 메모리 컨트롤러(140)로 전송할 수 있다. 메모리 컨트롤러(140)는 호스트 프로세서(110)로부터 전송된 리드 커맨드와 오너쉽 회수 영역(402)의 어드레스(AD-RS)를 확인하여 오너쉽을 호스트 프로세서(110)에게 귀속시킬 수 있다. 메모리 컨트롤러(140)는 오너쉽 회수 영역(402)에 대한 리드 커맨드에 응답하여, 오너쉽 회수 영역(402)에 저장된 회수 확인 데이터를 호스트 프로세서(110)로 전송할 수 있다. 회수 확인 데이터는 오너쉽 회수를 처리할 것임을 의미하는 것으로서 호스트 프로세서와 사전에 약속된 데이터일 수 있다. The
작업 정보 영역(403)은 프로세서(120)가 확인할 작업 정보가 저장되는 영역일 수 있다. 호스트 프로세서(110)는 작업 정보 영역(403)에 작업 정보를 저장할 수 있다. 프로세서(120)는 작업 정보 영역(403)으로부터 작업 정보를 리드하고 확인할 수 있다. 작업 정보 영역(403)은 어드레스(AD-WI)를 사용하여 액세스될 수 있다.The
상태 정보 영역(404)은 프로세서(120)의 상태 정보가 저장되는 영역일 수 있다. 상태 정보는 메모리 컨트롤러(140)에 의해 저장될 수 있다. 예를 들어, 메모리 컨트롤러(140)는 후술될 바와 같이, 프로세서(120)의 작업 결과 데이터가 공유 메모리(130)에 저장되는 위치를 알 수 있으므로, 그에 기반하여 동작의 잔여 처리량 또는 상태 정보를 업데이트할 수 있다. 실시 예에 따라, 상태 정보는 프로세서(120)에 의해 저장될 수도 있다. 호스트 프로세서(110)는 상태 정보 영역(404)으로부터 상태 정보를 리드하고 확인할 수 있다. 상태 정보 영역(404)은 어드레스(AD-ST)를 사용하여 액세스될 수 있다.The
작업 결과 데이터 영역(405)은 프로세서(120)가 처리한 작업의 작업 결과 데이터가 저장되는 영역일 수 있다. 프로세서(120)는 작업 결과 데이터 영역(405)에 작업 결과 데이터를 저장할 수 있다. 호스트 프로세서(110)는 작업 결과 데이터 영역(405)으로부터 작업 결과 데이터를 리드할 수 있다. 즉, 호스트 프로세서(110)는 도3을 참조하여 설명한 바와 같이 작업 결과 데이터를 공유 메모리(130)로부터 리드할 수 있고, 실시 예에 따라, 작업 결과 데이터 영역(405)으로부터 리드할 수도 있다. 작업 결과 데이터 영역(405)은 어드레스(AD-RD)를 사용하여 액세스될 수 있다.The job result
실시 예에 따라, 호스트 프로세서(110)는 오너쉽 귀속을 상술한 바와 같이 메일 박스(145)를 액세스함으로써 변경하지 않고, 별도 지정된 커맨드들을 통해 변경할 수 있다. 별도 지정된 커맨드들은 메모리 컨트롤러(140)에 포함된 별도 레지스터(미도시), 예를 들어, MPR(Multi Purpose Register)에 현재 오너쉽의 귀속을 저장하기 위한 것일 수 있다. 메모리 컨트롤러(140)는 호스트 프로세서(110)로부터 별도 지정된 커맨드들을 수신하면, 별도 레지스터에 오너쉽이 누구에게 귀속되었는지를 저장하고, 그에 따라 공유 메모리(130)에 대한 패스를 형성할 수 있다.According to an embodiment of the present disclosure, the
도5는 본 발명의 실시 예에 따른 메모리 컨트롤러(140)를 상세하게 도시하는 블록도이다.FIG. 5 is a detailed block diagram illustrating a
도5를 참조하면, 메모리 컨트롤러(140)는 제어부(210) 및 인터페이스부(220)를 포함할 수 있다.Referring to FIG. 5, the
제어부(210)는 호스트 커맨드 패스(HC)를 통해 호스트 프로세서(110)와 연결될 수 있다. 제어부(210)는 제2 호스트 데이터 패스(HD2) 및 제2 메모리 데이터 패스(MD2)를 통해 데이터 드라이버(211)와 연결될 수 있다. 제어부(210)는 프로세서 커맨드 패스(PC)를 통해 커맨드 먹스(212)와 연결될 수 있다. 각 패스의 사용은 아래에서 구체적으로 설명될 것이다. 또한, 제어부(210)는 메일 박스(145)를 포함할 수 있다. 제어부(210)는 메일 박스(145)를 제어할 수 있다. The
제어부(210)는 호스트 프로세서(110)의 제어에 따라, 오너쉽을 프로세서(120)에게 귀속시킬 수 있다. 구체적으로, 호스트 프로세서(110)는 리드 커맨드와 메일 박스(145)의 오너쉽 이전 영역(401)의 어드레스(AD-TR)를 호스트 커맨드 패스(HC)를 통해 전송할 수 있다. 제어부(210)는 호스트 커맨드 패스(HC)를 통해 호스트 프로세서(110)와 항상 연결되어 있으므로, 오너쉽이 누구에게 귀속되어 있는지에 무관하게 호스트 프로세서(110)의 리드 커맨드를 수신할 수 있다. 제어부(210)는 호스트 커맨드 패스(HC)를 통해 리드 커맨드와 오너쉽 이전 영역(401)의 어드레스(AD-TR)를 수신하고, 오너쉽을 프로세서(120)에게 귀속시킬 수 있다. 제어부(210)는 후술될 바와 같이 인터페이스부(220)의 데이터 패스 및 커맨드 패스를 변경시킴으로써 오너쉽을 프로세서(120)에게 귀속시킬 수 있다. The
제어부(210)는 오너쉽을 프로세서(120)에게 귀속시킨 뒤, 리드 커맨드의 응답으로서 오너쉽 이전 영역(401)에 저장된 이전 확인 데이터를 호스트 프로세서(110)에게 전송할 수 있다. 한편, 오너쉽이 프로세서(120)에게 귀속될 때, 후술될 바와 같이 제2 호스트 데이터 패스(HD2)는 제1 호스트 데이터 패스(HD1)와 연결되므로, 제어부(210)는 이전 확인 데이터를 제2 호스트 데이터 패스(HD2) 및 제1 호스트 데이터 패스(HD1)를 통해 호스트 프로세서(110)로 전송할 수 있다.The
또한, 제어부(210)는 호스트 프로세서(110)의 제어에 따라 오너쉽을 호스트 프로세서(110)에게 귀속시킬 수 있다. 구체적으로, 호스트 프로세서(110)는 리드 커맨드와 메일 박스(145)의 오너쉽 회수 영역(402)의 어드레스(AD-RS)를 호스트 커맨드 패스(HC)를 통해 전송할 수 있다. 제어부(210)는 호스트 커맨드 패스(HC)를 통해 호스트 프로세서(110)와 항상 연결되어 있으므로, 오너쉽이 프로세서(120)에게 귀속된 상태에서 호스트 프로세서(110)의 리드 커맨드를 수신할 수 있다. 제어부(210)는 리드 커맨드와 오너쉽 회수 영역(402)의 어드레스(AD-RS)를 수신하고, 오너쉽을 호스트 프로세서(110)에게 귀속시킬 수 있다. 제어부(210)는 후술될 바와 같이 인터페이스부(220)의 데이터 패스 및 커맨드 패스를 변경시킴으로써 오너쉽을 호스트 프로세서(110)에게 귀속시킬 수 있다. In addition, the
제어부(210)는 오너쉽을 호스트 프로세서(110)에게 귀속시키기 전에, 즉, 인터페이스부(220)의 데이터 패스 및 커맨드 패스를 변경시키기 전에 리드 커맨드의 응답으로서 오너쉽 회수 영역(402)에 저장된 회수 확인 데이터를 호스트 프로세서(110)에게 전송할 수 있다. 한편, 오너쉽이 호스트 프로세서(110)에게 귀속되기 전에, 제2 호스트 데이터 패스(HD2)는 제1 호스트 데이터 패스(HD1)와 연결되어 있으므로, 제어부(210)는 회수 확인 데이터를 제2 호스트 데이터 패스(HD2) 및 제1 호스트 데이터 패스(HD1)를 통해 호스트 프로세서(110)로 전송할 수 있다.The
그리고, 제어부(210)는 호스트 프로세서(110)와 프로세서(120)의 메일 박스(145)로의 다양한 액세스들을 처리할 수 있다.In addition, the
우선, 제어부(210)는 호스트 프로세서(110)의 제어에 따라 작업 정보를 메일 박스(145)의 작업 정보 영역(403)에 저장할 수 있다. First, the
제어부(210)는 프로세서(120)의 제어에 따라 메일 박스(145)의 작업 정보 영역(403)에 저장된 작업 정보를 프로세서(120)에게 전송할 수 있다.The
제어부(210)는 프로세서(120)의 제어에 따라 프로세서(120)의 상태 정보를 메일 박스(145)의 상태 정보 영역(404)에 저장할 수 있다. 실시 예에 따라, 제어부(210)는 프로세서(120)의 제어에 따라 공유 메모리(130)를 직접적으로 액세스하므로, 프로세서(120)의 작업의 잔여 처리량을 알 수 있고, 따라서, 제어부(210)는 상태 정보 영역(404)에 프로세서(120)의 상태 정보를 프로세서(120)의 제어와 무관하게 저장할 수 있다.The
제어부(210)는 호스트 프로세서(110)의 제어에 따라 메일 박스(145)의 상태 정보 영역(404)에 저장된 상태 정보를 호스트 프로세서(110)에게 전송할 있다.The
제어부(210)는 프로세서(120)의 제어에 따라 프로세서(120)가 처리한 작업 결과 데이터를 메일 박스(145)의 작업 결과 데이터 영역(405)에 저장할 수 있다.The
제어부(210)는 호스트 프로세서(110)의 제어에 따라 메일 박스(145)의 작업 결과 데이터 영역(405)에 저장된 작업 결과 데이터를 호스트 프로세서(110)에게 전송할 수 있다.The
한편, 제어부(210)는 오너쉽이 프로세서(120)에게 귀속될 때, 프로세서(120)와 공유 메모리 사이를 인터페이싱할 수 있다. 예를 들어, 프로세서(120)가 하드웨어 가속기일 때, 공유 메모리(130)의 인터페이스 프로토콜에 따른 커맨드를 프로세서(120)가 생성하지 않고 제어부(210)가 프로세서(120)의 지시에 따라 대신 생성하여 공유 메모리(130)로 전송할 수 있다. 실시 예에 따라 프로세서(120)는 공유 메모리(130)의 인터페이스 프로토콜에 따른 커맨드를 생성할 수도 있고, 이러한 경우 제어부(210)는 프로세서(120)에 의해 생성된 커맨드를 공유 메모리(130)로 전달할 수 있다. 정리하면, 오너쉽이 프로세서(120)에게 귀속될 때, 프로세서(120)는 제어부(210)를 통해 공유 메모리(130)를 액세스할 수 있다. 따라서, 후술될 바와 같이 오너쉽이 프로세서(120)에게 귀속될 때, 제어부(210)는, 제어부(210)와 공유 메모리(130) 사이의 패스를 활성화하도록 인터페이스부(220)를 제어할 수 있다.Meanwhile, the
제어부(210)는 오너쉽이 호스트 프로세서(110)와 프로세서(120) 중 누구에게 귀속되어 있는지에 따라, 호스트 프로세서(110), 제어부(210), 및 공유 메모리(130) 사이에서 패스를 활성화하도록 인터페이스부(220)를 제어할 수 있다.The
구체적으로, 오너쉽이 호스트 프로세서(110)에게 귀속될 때, 제어부(210)는 호스트 프로세서(110)와 공유 메모리(130) 사이의 패스를 활성화시키도록 인터페이스부(220)를 제어할 수 있다. In detail, when ownership is attributed to the
오너쉽이 프로세서(120)에게 귀속될 때, 제어부(210)는 호스트 프로세서(110)와 공유 메모리(130) 사이의 패스를 비활성화시키고, 제어부(210)와 공유 메모리(130) 사이의 패스를 활성화시키도록 인터페이스부(220)를 제어할 수 있다. 프로세서(120)는 오너쉽을 소유할 때, 제어부(210)를 통해 공유 메모리(130)를 액세스할 수 있다.When ownership is attributed to the
또한, 오너쉽이 프로세서(120)에게 귀속될 때, 제어부(210)는, 호스트 프로세서(110)와 제어부(210) 사이의 패스를 활성화시키도록 인터페이스부(220)를 제어할 수 있다. 따라서, 오너쉽이 프로세서(120)에게 귀속된 동안 호스트 프로세서(110)는 제어부(210)의 메일 박스(145)에 작업 정보를 저장하고, 메일 박스(145)로부터 상태 정보 및 작업 결과 데이터를 리드하는 것이 가능할 수 있다.In addition, when ownership is attributed to the
인터페이스부(220)는 제어부(210)의 제어에 따라 호스트 프로세서(110), 제어부(210) 및 공유 메모리(130) 사이에서 패스를 형성하여 데이터 및 커맨드를 전송할 수 있다. 구체적으로, 호스트 프로세서(110)가 오너쉽을 소유할 때, 인터페이스부(220)는 제어부(210)의 제어에 따라 호스트 프로세서(110)와 공유 메모리(130) 사이의 패스를 활성화시킬 수 있다. 프로세서(120)가 오너쉽을 소유할 때, 인터페이스부(220)는 제어부(210)의 제어에 따라 호스트 프로세서(110)와 공유 메모리(130) 사이의 패스를 비활성화시키고, 제어부(210)와 공유 메모리(130) 사이의 패스를 활성화시키고 제어부(210)와 호스트 프로세서(110) 사이의 패스를 활성화시킬 수 있다.The
인터페이스부(220)는 데이터 드라이버(211) 및 커맨드 먹스(212)를 포함할 수 있다. The
데이터 드라이버(211)는 호스트 프로세서(110)와 제1 호스트 데이터 패스(HD1)를 통해 연결될 수 있다. 데이터 드라이버(211)는 공유 메모리(130)와 제1 메모리 데이터 패스(MD1)를 통해 연결될 수 있다. 데이터 드라이버(211)는 제어부(210)와 제2 호스트 데이터 패스(HD2) 및 제2 메모리 데이터 패스(MD2)를 통해 연결될 수 있다.The
오너쉽이 호스트 프로세서(110)에게 귀속될 때, 데이터 드라이버(211)는 제어부(210)의 제어에 따라 호스트 프로세서(110)와 공유 메모리(130) 사이의 데이터 패스를 활성화시킬 수 있다. 구체적으로, 데이터 드라이버(211)는 제1 호스트 데이터 패스(HD1)와 제1 메모리 데이터 패스(MD1)를 연결함으로써 호스트 프로세서(110)와 공유 메모리(130) 사이의 데이터 패스를 활성화시킬 수 있다.When ownership is attributed to the
또한, 오너쉽이 프로세서(120)에게 귀속될 때, 데이터 드라이버(211)는 제어부(210)의 제어에 따라 호스트 프로세서(110)와 공유 메모리(130) 사이의 데이터 패스를 비활성화시키고, 호스트 프로세서(110)와 제어부(210) 사이의 데이터 패스를 활성화시키고, 공유 메모리(130)와 제어부(210) 사이의 데이터 패스를 활성화시킬 수 있다. 구체적으로, 데이터 드라이버(211)는 제1 호스트 데이터 패스(HD1)와 제2 호스트 데이터 패스(HD2)를 연결함으로써 호스트 프로세서(110)와 제어부(210) 사이의 데이터 패스를 활성화시킬 수 있다. 그리고, 데이터 드라이버(211)는 제1 메모리 데이터 패스(MD1)와 제2 메모리 데이터 패스(MD2)를 연결함으로써 공유 메모리(130)와 제어부(210) 사이의 데이터 패스를 활성화시킬 수 있다.In addition, when ownership is attributed to the
커맨드 먹스(212)는 호스트 프로세서(110)와 호스트 커맨드 패스(HC)를 통해 연결될 수 있다. 커맨드 먹스(212)는 제어부(210)와 프로세서 커맨드 패스(PC)를 통해 연결될 수 있다. 커맨드 먹스(212)는 공유 메모리(130)와 메모리 커맨드 패스(MC)를 통해 연결될 수 있다.The
오너쉽이 호스트 프로세서(110)에게 귀속될 때, 커맨드 먹스(212)는 제어부(210)의 제어에 따라 호스트 프로세서(110)와 공유 메모리(130) 사이의 커맨드 패스를 활성화시킬 수 있다. 구체적으로, 커맨드 먹스(212)는 호스트 커맨드 패스(HC)와 메모리 커맨드 패스(MC)를 연결함으로써 호스트 프로세서(110)와 공유 메모리(130) 사이의 커맨드 패스를 활성화시킬 수 있다.When ownership is attributed to the
또한, 오너쉽이 프로세서(120)에게 귀속될 때, 커맨드 먹스(212)는 제어부(210)의 제어에 따라 호스트 프로세서(110)와 공유 메모리(130) 사이의 커맨드 패스를 비활성화시키고, 제어부(210)와 공유 메모리(130) 사이의 커맨드 패스를 활성화시킬 수 있다. 구체적으로, 커맨드 먹스(212)는 프로세서 커맨드 패스(PC)와 메모리 커맨드 패스(MC)를 연결함으로써 제어부(210)와 공유 메모리(130) 사이의 커맨드 패스를 활성화시킬 수 수 있다.In addition, when ownership is attributed to the
결국, 호스트 프로세서(110)와 프로세서(120) 사이에서 오너쉽이 이전되고 회수될 때마다, 호스트 프로세서(110), 제어부(210) 및 공유 메모리(130) 사이에서 데이터 패스 및 커맨드 패스가 변경될 수 있다.As a result, whenever the ownership is transferred and recovered between the
도6 내지 도13은 본 발명의 실시 예에 따라 메모리 컨트롤러(140)가 호스트 프로세서(110), 프로세서(120), 및 공유 메모리(130) 사이에서 인터페이싱하는 방법을 설명하기 위한 도면들이다.6 to 13 are diagrams for describing a method in which the
우선 도6은 본 발명의 실시 예에 따라 호스트 프로세서(110)가 공유 메모리(130)에 작업 데이터를 저장하는 방법을 도시하는 도면이다.6 is a diagram illustrating a method in which the
도6을 참조하면, 호스트 프로세서(110)가 오너쉽을 소유한 상태일 수 있다. Referring to FIG. 6, the
호스트 프로세서(110)가 오너쉽을 소유할 때, 데이터 드라이버(211)는 제어부(210)의 제어에 따라 제1 호스트 데이터 패스(HD1)와 제1 메모리 데이터 패스(MD1)를 연결함으로써 호스트 프로세서(110)와 공유 메모리(130) 사이의 데이터 패스를 활성화시킬 수 있다. When the
호스트 프로세서(110)가 오너쉽을 소유할 때, 커맨드 먹스(212)는 제어부(210)의 제어에 따라 호스트 커맨드 패스(HC)와 메모리 커맨드 패스(MC)를 연결함으로써 호스트 프로세서(110)와 공유 메모리(130) 사이의 커맨드 패스를 활성화시킬 수 있다. 도6에서 호스트 프로세서(110)와 공유 메모리(130) 사이를 연결하며 활성화된 패스는 회색으로 채워져 있다.When the
따라서, 호스트 프로세서(110)는 인터페이스부(220)를 통해 공유 메모리(130)와 연결되므로 공유 메모리(130)를 액세스하여 작업을 처리할 수 있다. 예를 들어, 호스트 프로세서(110)는 프로세서(120)에게 지시할 작업의 작업 데이터를 공유 메모리(130)에 저장하기 위해, 라이트 커맨드를 호스트 커맨드 패스(HC)로 전송하고 작업 데이터를 제1 호스트 데이터 패스(HD1)로 전송할 수 있다.Therefore, since the
도7은 본 발명의 실시 예에 따라 호스트 프로세서(110)가 오너쉽을 프로세서(120)에게 이전하는 방법을 도시하는 도면이다.7 is a diagram illustrating a method for transferring ownership to the
도7을 참조하면, 호스트 프로세서(110)는 오너쉽을 프로세서(120)에게 이전하기 위해, 리드 커맨드와 메일 박스(145)의 오너쉽 이전 영역(401)의 어드레스(AD-TR)를 호스트 커맨드 패스(HC)를 통해 제어부(210)로 전송할 수 있다. Referring to FIG. 7, the
도8은 본 발명의 실시 예에 따라 제어부(210)가 오너쉽을 프로세서(120)에게 귀속시키는 방법을 도시하는 도면이다.8 is a diagram illustrating a method in which the
도8을 참조하면, 제어부(210)는 호스트 커맨드 패스(HC)를 통해 전송된 리드 커맨드와 메일 박스(145)의 오너쉽 이전 영역(401)의 어드레스(AD-TR)에 응답하여, 프로세서(120)에게 오너쉽을 귀속시킬 수 있다. 그리고, 제어부(210)는 오너쉽 귀속의 변경에 따라 인터페이스부(220)가 데이터 패스 및 커맨드 패스를 변경하도록 제어할 수 있다.Referring to FIG. 8, the
구체적으로, 프로세서(120)가 오너쉽을 소유할 때, 데이터 드라이버(211)는 제어부(210)의 제어에 따라 제1 메모리 데이터 패스(MD1)와 제2 메모리 데이터 패스(MD2)를 연결함으로써 공유 메모리(130)와 제어부(210) 사이의 데이터 패스를 활성화시킬 수 있다.Specifically, when the
그리고, 데이터 드라이버(211)는 제어부(210)의 제어에 따라 제1 호스트 데이터 패스(HD1)와 제2 호스트 데이터 패스(HD2)를 연결함으로써 호스트 프로세서(110)와 제어부(210) 사이의 데이터 패스를 활성화시킬 수 있다. The
그리고, 커맨드 먹스(212)는 제어부(210)의 제어에 따라 프로세서 커맨드 패스(PC)와 메모리 커맨드 패스(MC)를 연결함으로써 제어부(210)와 공유 메모리(130) 사이의 커맨드 패스를 활성화시킬 수 있다.The
결과적으로, 도8에서 호스트 프로세서(110)와 제어부(210) 사이를 연결하며 활성화된 패스는 회색으로 채워져 있고, 공유 메모리(130)와 제어부(210) 사이를 연결하며 활성화된 패스는 빗금으로 채워져 있다.As a result, in FIG. 8, the active path between the
한편, 제어부(210)는 호스트 프로세서(110)와 데이터 패스가 연결되었으므로, 오너쉽 이전을 위한 리드 커맨드에 응답하여 오너쉽 이전 영역(401)에 저장된 이전 확인 데이터를 호스트 프로세서(110)로 전송할 수 있다.Meanwhile, since the data path is connected to the
도9는 본 발명의 실시 예에 따라 호스트 프로세서(110)가 메일 박스(145)에 작업 정보를 저장하는 방법을 도시하는 도면이다.9 is a diagram illustrating a method of storing, by the
도9를 참조하면, 호스트 프로세서(110)는 프로세서(120)에게 작업을 지시하기 위해, 라이트 커맨드와 메일 박스(145)의 작업 정보 영역(403)의 어드레스(AD-WI)를 호스트 커맨드 패스(HC)를 통해 제어부(210)로 전송하고, 작업 정보를 제1 호스트 데이터 패스(HD1)와 제2 호스트 데이터 패스(HD2)를 통해 제어부(210)로 전송할 수 있다.Referring to FIG. 9, the
제어부(210)는 호스트 커맨드 패스(HC)를 통해 전송된 라이트 커맨드에 응답하여, 메일 박스(145)의 작업 정보 영역(403)에 작업 정보를 저장할 수 있다. 미도시되었지만, 제어부(210)는 프로세서(120)에게 작업 정보 영역(403)에 작업 정보가 저장되었음을 알려줄 수 있다. The
도10은 본 발명의 실시 예에 따라 프로세서(120)가 메일 박스(145)로부터 작업 정보를 리드하는 방법을 도시하는 도면이다.10 is a diagram illustrating a method in which the
도10을 참조하면, 프로세서(120)는 메일 박스(145)의 작업 정보 영역(403)에 저장된 작업 정보를 리드할 수 있다. 프로세서(120)는 리드된 작업 정보를 통해 공유 메모리(130)에서 처리할 데이터가 저장된 위치를 확인할 수 있다.Referring to FIG. 10, the
도11은 본 발명의 실시 예에 따라 프로세서(120)가 작업 데이터를 처리하는 방법을 도시하는 도면이다.11 is a diagram illustrating a method in which the
도11을 참조하면, 프로세서(120)는 제어부(210) 및 인터페이스부(220)를 통해 공유 메모리(130)와 연결되므로 공유 메모리(130)를 액세스하여 작업 데이터를 처리할 수 있다. 프로세서(120)는 공유 메모리(130)로부터 작업 데이터를 리드하여 처리하고 작업 결과 데이터를 공유 메모리(130)에 저장할 수 있다. 프로세서(120)는 작업 데이터 및 작업 결과 데이터를 제어부(210) 및 제1 메모리 데이터 패스(MD1)와 제2 메모리 데이터 패스(MD2) 통해 공유 메모리(130)와 주고받을 수 있다. 이를 위해, 제어부(210)는 프로세서(120)의 제어에 따라 리드 커맨드 및 라이트 커맨드를 생성하여 프로세서 커맨드 패스(PC) 및 메모리 커맨드 패스(MC)를 통해 공유 메모리(130)로 전송할 수 있다.Referring to FIG. 11, since the
프로세서(120)가 작업을 처리하는 동안 호스트 프로세서(110)는 프로세서(120)의 상태 정보를 확인하기 위해, 리드 커맨드와 메일 박스(145)의 상태 정보 영역(404)의 어드레스(AD-ST)를 호스트 커맨드 패스(HC)를 통해 제어부(210)로 전송할 수 있다.While the
제어부(210)는 상태 정보 리드를 위한 리드 커맨드에 응답하여 상태 정보를 호스트 프로세서(110)로 전송할 수 있다. 호스트 프로세서(110)는 상태 정보를 확인하여 프로세서(120)의 작업이 완료되었음을 확인할 수 있다.The
도12는 본 발명의 실시 예에 따라 호스트 프로세서(110)가 프로세서(120)로부터 오너쉽을 회수하는 방법을 도시하는 도면이다. 12 is a diagram illustrating a method in which the
도12를 참조하면, 호스트 프로세서(110)는 상태 정보를 확인하여 프로세서(120)의 작업이 완료되었음을 확인한 뒤, 오너쉽을 프로세서(120)로부터 회수하기 위해, 리드 커맨드와 메일 박스(145)의 오너쉽 회수 영역(402)의 어드레스(AD-RS)를 호스트 커맨드 패스(HC)를 통해 제어부(210)로 전송할 수 있다.Referring to FIG. 12, the
제어부(210)는 오너쉽 확인을 위한 리드 커맨드에 응답하여 오너쉽 회수 영역(402)에 저장된 회수 확인 데이터를 호스트 프로세서(110)로 전송할 수 있다.The
도13은 본 발명의 실시 예에 따라 호스트 프로세서(110)가 공유 메모리(130)로부터 작업 결과 데이터를 리드하는 방법을 도시하는 도면이다.FIG. 13 is a diagram illustrating a method in which the
도13을 참조하면, 제어부(210)는 호스트 커맨드 패스(HC)를 통해 전송된 리드 커맨드와 메일 박스(145)의 오너쉽 회수 영역(402)의 어드레스(AD-RS)에 응답하여, 호스트 프로세서(110)에게 오너쉽을 귀속시킬 수 있다. 그리고, 제어부(210)는 오너쉽 귀속의 변경에 따라 인터페이스부(220)가 데이터 패스 및 커맨드 패스를 변경하도록 제어할 수 있다. 결과적으로, 인터페이스부(220)는 도6에 도시된 바와 같이 데이터 패스 및 커맨드 패스를 변경할 수 있다.Referring to FIG. 13, the
따라서, 호스트 프로세서(110)는 인터페이스부(220)를 통해 공유 메모리(130)와 연결되므로 공유 메모리(130)로부터 프로세서(120)의 작업 결과 데이터를 리드할 수 있다. 호스트 프로세서(110)는 작업 결과 데이터를 리드하기 위해, 리드 커맨드를 호스트 커맨드 패스(HC)로 전송하고 작업 결과 데이터를 제1 메모리 데이터 패스(MD1) 및 제1 호스트 데이터 패스(HD1)를 통해 공유 메모리(130)로부터 전송받을 수 있다.Therefore, since the
도14는 본 발명의 실시 예에 따라 호스트 프로세서(110)가 메일 박스(145)로부터 작업 결과 데이터를 리드하는 방법을 도시하는 도면이다.14 is a diagram illustrating a method in which the
도14를 참조하면, 도13에서 설명된 바와 달리, 작업 결과 데이터가 메일 박스(145)의 작업 결과 데이터 영역(405)에 저장되었을 때 호스트 프로세서(110)는 작업 결과 데이터를 메일 박스(145)로부터 리드할 수 있다. 즉, 도11의 상황에서 상태 정보에 근거하여 프로세서(120)의 작업이 완료되었음을 확인하면, 호스트 프로세서(110)는 오너쉽을 회수하지 않고 메일 박스(145)로부터 작업 결과 데이터를 리드할 수 있다. 호스트 프로세서(110)는 작업 결과 데이터를 리드하기 위해, 리드 커맨드와 메일 박스(145)의 작업 결과 데이터 영역(405)의 어드레스(AD-RD)를 호스트 커맨드 패스(HC)를 통해 제어부(210)로 전송할 수 있다.Referring to FIG. 14, unlike the description of FIG. 13, when the job result data is stored in the job
도 15는 본 발명의 실시 예에 따른 데이터 처리 시스템(1000)을 예시적으로 도시하는 도면이다. 도 15를 참조하면, 데이터 처리 시스템(1000)은 호스트 장치(1100)와 메모리 시스템(1200)을 포함할 수 있다.15 is a diagram illustrating a
호스트 장치(1100)는 인쇄 회로 기판(printed circuit board)과 같은 기판(board) 형태로 구성될 수 있다. 호스트 장치(1100)는 호스트 프로세서(1110) 및 접속 터미널(1120)을 포함할 수 있다. The
호스트 프로세서(1110)는 도1의 호스트 프로세서(110)에 대응할 수 있다. The
접속 터미널(1120)은 소켓(socket), 슬롯(slot) 또는 커넥터(connector)를 포함할 수 있고, 메모리 시스템(1200)은 접속 터미널(1120)에 마운트(mount)될 수 있다.The
메모리 시스템(1200)은 인쇄 회로 기판과 같은 기판 형태로 구성될 수 있다. 메모리 시스템(1200)은 메모리 모듈 또는 메모리 카드로 불릴 수 있다. 메모리 시스템(2200)은 프로세서(1210), 메모리 장치(1220), 메모리 컨트롤러(1230), 및 접속 터미널(1240)을 포함할 수 있다.The
프로세서(1210)는 도1의 프로세서(120)에 대응할 수 있다. 메모리 장치(1220)는 도1의 공유 메모리(130)에 대응할 수 있다. 메모리 컨트롤러(1230)는 도1의 메모리 컨트롤러(140)에 대응할 수 있다. The
접속 터미널(1240)은 호스트 장치(1100)의 접속 터미널(1120)에 연결될 수 있다. 접속 터미널(1240)을 통해서, 호스트 장치(1100)와 메모리 시스템(1200) 간에 커맨드, 어드레스, 데이터 등과 같은 신호와, 전원이 전달될 수 있다. 접속 터미널(1240)은 호스트 장치(1100)와 메모리 시스템(1200)의 인터페이스 방식에 따라 다양한 형태로 구성될 수 있다. 접속 터미널(1240)은 메모리 시스템(1200)의 어느 한 변에 배치될 수 있다.The
도 16은 본 발명의 실시 예에 따른 데이터 처리 시스템(2000)을 예시적으로 도시하는 도면이다. 도 16을 참조하면, 데이터 처리 시스템(2000)은 호스트 장치(2100)와 메모리 시스템(2200)을 포함할 수 있다.16 is a diagram illustrating a
호스트 장치(2100)는 인쇄 회로 기판(printed circuit board)과 같은 기판(board) 형태로 구성될 수 있다. 호스트 장치(2100)는 호스트 프로세서(2110)를 포함할 수 있다. 호스트 프로세서(2110)는 도1의 호스트 프로세서(110)에 대응할 수 있다.The
메모리 시스템(2200)은 표면 실장형 패키지 형태로 구성될 수 있다. 메모리 시스템(2200)은 솔더 볼(solder ball)(2250)을 통해서 호스트 장치(2100)에 마운트될 수 있다. The
메모리 시스템(2200)은 프로세서(2210), 메모리 장치(2220) 및 메모리 컨트롤러(2230)를 포함할 수 있다. 프로세서(2210)는 도1의 프로세서(120)에 대응할 수 있다. 메모리 장치(2220)는 도1의 공유 메모리(130)에 대응할 수 있다. 메모리 컨트롤러(2230)는 도1의 메모리 컨트롤러(140)에 대응할 수 있다.The
도 17은 본 발명의 실시 예에 따른 데이터 처리 시스템(3000)을 예시적으로 도시하는 도면이다. 도 17을 참조하면, 데이터 처리 시스템(3000)은 호스트 프로세서(3100), 메모리 시스템(3200), 인터포저(3300) 및 반도체 기판(3400)을 포함할 수 있다.17 is a diagram illustrating a
호스트 프로세서(3100)와 메모리 시스템(3200)은 인터포저(3300)의 일면에 배치될 수 있다.The
인터포저(3300)는 호스트 프로세서(3100)와 메모리 시스템(3200)을 전기적으로 연결할 수 있다. 인터포저(3300)를 통해서, 호스트 프로세서(3100)와 메모리 시스템(3200) 간에 커맨드, 어드레스, 데이터 등과 같은 신호와, 전원이 전달될 수 있다. 인터포저(3300)는 반도체 기판(3400) 상에 장착될 수 있다.The
호스트 프로세서(3100)는 도1의 호스트 프로세서(110)에 대응할 수 있다.The
메모리 시스템(3200)은 스택된 로직 반도체 장치(3210)와 메모리 장치(3220)를 포함할 수 있다. 로직 반도체 장치(3210)는 메모리 시스템(3200)의 동작을 제어할 수 있다. 로직 반도체 장치(3210)는 프로세서(3211)와 메모리 컨트롤러(3212)를 포함할 수 있다. 프로세서(3211)는 도1의 프로세서(120)에 대응할 수 있다. 메모리 컨트롤러(3212)는 도1의 메모리 컨트롤러(140)에 대응할 수 있다. The
메모리 장치(3220)는 도1의 공유 메모리(130)에 대응할 수 있다.The
메모리 시스템(3200)은, 예를 들어, HBM(High Bandwidth Memory)를 포함할 수 있다.The
도 18은 본 발명의 실시 예에 따른 데이터 처리 시스템(4150)을 포함하는 네트워크 시스템(4000)을 예시적으로 도시하는 도면이다. 도 18을 참조하면, 네트워크 시스템(4000)은 네트워크(4500)를 통해서 연결된 서버 시스템(4100) 및 복수의 클라이언트 시스템들(4410~4430)을 포함할 수 있다.18 is a diagram illustrating a
서버 시스템(4100)은 복수의 클라이언트 시스템들(4410~4430)의 요청에 응답하여 데이터를 서비스할 수 있다. 예를 들면, 서버 시스템(4100)은 복수의 클라이언트 시스템들(4410~4430)로부터 제공된 데이터를 저장할 수 있다. 다른 예로서, 서버 시스템(4100)은 복수의 클라이언트 시스템들(4410~4430)로 데이터를 제공할 수 있다.The
서버 시스템(4100)은 데이터 처리 시스템(4150)을 포함할 수 있다. 데이터 처리 시스템(4150)은 도 1의 데이터 처리 시스템(100), 도 15의 데이터 처리 시스템(1000), 도 16의 데이터 처리 시스템(2000), 및 도17의 데이터 처리 시스템(3000)으로 구성될 수 있다.
본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.As those skilled in the art to which the present invention pertains may implement the present invention in other specific forms without changing the technical spirit or essential features, the embodiments described above are exemplary in all respects and are not intended to be limiting. It must be understood as. The scope of the present invention is shown by the following claims rather than the detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalents should be construed as being included in the scope of the present invention. do.
100: 데이터 처리 시스템
110: 호스트 프로세서
120: 프로세서
130: 공유 메모리
140: 메모리 컨트롤러
145: 메일 박스100: data processing system
110: host processor
120: processor
130: shared memory
140: memory controller
145: mail box
Claims (31)
상기 공유 메모리에 대한 오너쉽을 소유하고 상기 공유 메모리를 액세스함으로써 제1 작업을 처리하도록 구성된 호스트 프로세서;
상기 호스트 프로세서로부터 상기 오너쉽을 이전받아 소유하고 상기 공유 메모리를 액세스함으로써 제2 작업을 처리하도록 구성된 프로세서; 및
상기 호스트 프로세서, 상기 프로세서 및 상기 공유 메모리 사이에 연결되고, 상기 오너쉽에 따라 상기 호스트 프로세서 또는 상기 프로세서의 상기 공유 메모리로의 액세스를 허용하도록 구성된 메모리 컨트롤러를 포함하되,
상기 메모리 컨트롤러는 메일 박스를 포함하고,
상기 호스트 프로세서는 상기 메일 박스를 액세스함으로써 상기 오너쉽을 이전 또는 회수하는 데이터 처리 시스템. Shared memory;
A host processor configured to process a first task by owning ownership of the shared memory and accessing the shared memory;
A processor configured to receive and own the ownership from the host processor and to process a second job by accessing the shared memory; And
A memory controller coupled between the host processor, the processor and the shared memory, the memory controller configured to allow access to the shared memory of the host processor or the processor in accordance with ownership;
The memory controller includes a mailbox,
And the host processor transfers or reclaims the ownership by accessing the mailbox.
상기 메모리 컨트롤러는,
상기 호스트 프로세서의 상기 메일 박스로의 액세스에 응답하여 상기 오너쉽을 상기 호스트 프로세서 또는 프로세서에게 귀속시키도록 구성된 제어부; 및
상기 제어부의 제어에 따라 상기 호스트 프로세서, 상기 공유 메모리 및 상기 제어부 사이에서 패스를 형성하도록 구성된 인터페이스부를 포함하고,
상기 제어부는 상기 오너쉽 귀속의 변경에 따라 상기 패스를 변경하도록 상기 인터페이스부를 제어하는 데이터 처리 시스템.The method of claim 1,
The memory controller,
A controller configured to assign the ownership to the host processor or a processor in response to the host processor's access to the mailbox; And
An interface unit configured to form a path between the host processor, the shared memory, and the control unit under control of the control unit;
And the control unit controls the interface unit to change the path according to the change of ownership ownership.
상기 프로세서는 상기 제어부와 연결되고, 상기 오너쉽을 소유할 때 상기 제어부를 통해 상기 공유 메모리를 액세스하는 데이터 처리 시스템.The method of claim 2,
And the processor is coupled to the controller and accesses the shared memory through the controller when owning the ownership.
상기 제어부는 상기 호스트 프로세서의 상기 메일 박스로의 제1 액세스에 응답하여 상기 오너쉽을 상기 프로세서에게 귀속시키기 위해, 상기 인터페이스부가 상기 공유 메모리와 상기 제어부 사이에 제1 데이터 패스 및 제1 커맨드 패스를 형성하고 상기 호스트 프로세서와 상기 제어부 사이에 제2 데이터 패스를 형성하도록 제어하는 데이터 처리 시스템.The method of claim 2,
The control unit forms a first data path and a first command path between the shared memory and the control unit to assign the ownership to the processor in response to the first access of the host processor to the mailbox. And form a second data path between the host processor and the controller.
상기 제어부는 상기 제1 액세스에 응답하여 상기 제2 데이터 패스를 통해 이전 확인 데이터를 상기 호스트 프로세서로 전송하는 데이터 처리 시스템.The method of claim 4, wherein
And the control unit transmits previous confirmation data to the host processor through the second data path in response to the first access.
상기 제어부는 상기 호스트 프로세서의 상기 메일 박스로의 제2 액세스에 응답하여 상기 오너쉽을 상기 호스트 프로세서에게 귀속시키기 위해, 상기 인터페이스부가 상기 호스트 프로세서와 상기 공유 메모리 사이에 제3 데이터 패스 및 제2 커맨드 패스를 형성하도록 제어하는 데이터 처리 시스템.The method of claim 4
The control unit may include a third data path and a second command path between the host processor and the shared memory, so that the interface unit assigns the ownership to the host processor in response to a second access of the host processor to the mailbox. A data processing system that controls to form a.
상기 제어부는 상기 제2 액세스에 응답하여 상기 제2 데이터 패스를 통해 회수 확인 데이터를 상기 호스트 프로세서로 전송한 뒤 상기 오너쉽을 상기 호스트 프로세서에게 귀속시키는 데이터 처리 시스템.The method of claim 6
And the controller is further configured to transmit ownership confirmation data to the host processor through the second data path in response to the second access, and then assign the ownership to the host processor.
상기 호스트 프로세서는 상기 오너쉽을 상기 프로세서에게 이전한 뒤, 상기 제2 작업에 대한 작업 정보를 상기 제2 데이터 패스를 통해 상기 제어부로 전송하고,
상기 제어부는 상기 호스트 프로세서의 제어에 따라 상기 작업 정보를 상기 메일 박스에 저장하는 데이터 처리 시스템.The method of claim 4, wherein
The host processor transfers the ownership to the processor, and then transmits job information on the second job to the controller through the second data path.
The control unit stores the job information in the mailbox under the control of the host processor.
상기 프로세서는 상기 메일 박스로부터 상기 작업 정보를 리드하여 확인하고 상기 제2 작업을 처리하는 데이터 처리 시스템.The method of claim 8,
And the processor reads and confirms the job information from the mailbox and processes the second job.
상기 프로세서는 상기 메일 박스에 상기 제2 작업의 작업 결과 데이터를 저장하고,
상기 호스트 프로세서는 상기 제2 데이터 패스를 통해 상기 메일 박스로부터 상기 작업 결과 데이터를 리드하는 데이터 처리 시스템.The method of claim 4, wherein
The processor stores the operation result data of the second task in the mailbox,
And the host processor reads the operation result data from the mailbox via the second data path.
상기 호스트 프로세서는 상기 인터페이스부 및 상기 제어부와 호스트 커맨드 패스를 통해 동시에 연결되고, 상기 호스트 커맨드 패스로 상기 공유 메모리 또는 상기 메일 박스에 대한 액세스 커맨드를 전송하는 데이터 처리 시스템.The method of claim 2
And the host processor is simultaneously connected to the interface unit and the control unit through a host command path, and transmits an access command to the shared memory or the mailbox in the host command path.
상기 호스트 프로세서는 상기 공유 메모리에 할당한 제2 어드레스 범위와 겹치지 않는 제1 어드레스 범위를 상기 메일 박스에 할당하고,
상기 제어부는 상기 호스트 프로세서로부터 전송된 액세스 커맨드의 어드레스를 상기 제1 어드레스 범위 및 상기 제2 어드레스 범위와 비교하여 상기 액세스 커맨드를 처리하는 데이터 처리 시스템. The method of claim 11,
The host processor allocates a first address range to the mailbox that does not overlap with a second address range allocated to the shared memory.
And the controller is configured to process the access command by comparing an address of an access command transmitted from the host processor with the first address range and the second address range.
상기 메일 박스는 오너쉽 이전 영역을 포함하고,
상기 호스트 프로세서는 상기 오너쉽을 상기 프로세서에게 이전하기 위해 상기 오너쉽 이전 영역에 대한 리드 커맨드를 상기 메모리 컨트롤러로 전송하는 데이터 처리 시스템.The method of claim 1,
The mailbox includes an ownership transfer area,
And the host processor transmits a read command for the transfer ownership region to the memory controller to transfer the ownership to the processor.
상기 메일 박스는 오너쉽 회수 영역을 더 포함하고,
상기 호스트 프로세서는 상기 오너쉽을 상기 프로세서로부터 회수하기 위해 상기 오너쉽 회수 영역에 대한 리드 커맨드를 상기 메모리 컨트롤러로 전송하는 데이터 처리 시스템.The method of claim 13,
The mailbox further includes an ownership recovery area,
And the host processor transmits a read command for the ownership recovery area to the memory controller to recover the ownership from the processor.
상기 메모리 컨트롤러는 상기 메일 박스에 상기 프로세서의 상태 정보를 저장하고,
상기 호스트 프로세서는, 상기 오너쉽을 상기 프로세서에게 이전한 뒤 상기 메일 박스로부터 상기 상태 정보를 리드하여 상기 프로세서가 상기 제2 작업을 종료했는지 여부를 판단하고, 판단 결과에 따라 상기 오너쉽을 상기 프로세서로부터 회수하는 데이터 처리 시스템.The method of claim 1,
The memory controller stores state information of the processor in the mailbox;
The host processor transfers the ownership to the processor, reads the status information from the mailbox, determines whether the processor has finished the second task, and recovers the ownership from the processor according to a determination result. Data processing system.
상기 호스트 프로세서는 상기 오너쉽을 회수한 뒤, 상기 메모리 컨트롤러를 통해 상기 공유 메모리로부터 상기 제2 작업의 작업 결과 데이터를 리드하는 데이터 처리 시스템.The method of claim 15,
And the host processor reclaims the ownership and reads the operation result data of the second job from the shared memory through the memory controller.
호스트 프로세서로부터 오너쉽을 이전받아 상기 공유 메모리를 액세스함으로써 작업을 처리하도록 구성된 프로세서; 및
상기 호스트 프로세서, 상기 프로세서 및 상기 공유 메모리 사이에 연결되고, 상기 오너쉽에 따라 상기 호스트 프로세서 또는 상기 프로세서의 상기 공유 메모리로의 액세스를 허용하도록 구성된 메모리 컨트롤러를 포함하되,
상기 메모리 컨트롤러는 상기 호스트 프로세서가 상기 오너쉽을 상기 프로세서에게 이전하기 위해 액세스하는 메일 박스를 포함하는 데이터 처리 시스템Shared memory;
A processor configured to take over ownership from a host processor and process the job by accessing the shared memory; And
A memory controller coupled between the host processor, the processor and the shared memory, the memory controller configured to allow access to the shared memory of the host processor or the processor in accordance with ownership;
The memory controller includes a data box accessed by the host processor to transfer the ownership to the processor.
상기 메모리 컨트롤러는,
상기 호스트 프로세서의 상기 메일 박스로의 액세스에 응답하여 상기 오너쉽을 상기 호스트 프로세서 또는 프로세서에게 귀속시키도록 구성된 제어부; 및
상기 제어부의 제어에 따라 상기 호스트 프로세서, 상기 공유 메모리 및 상기 제어부 사이에서 패스를 형성하도록 구성된 인터페이스부를 포함하고,
상기 제어부는 상기 오너쉽 귀속의 변경에 따라 상기 패스를 변경하도록 상기 인터페이스부를 제어하는 데이터 처리 시스템.The method of claim 17,
The memory controller,
A controller configured to assign the ownership to the host processor or a processor in response to the host processor's access to the mailbox; And
An interface unit configured to form a path between the host processor, the shared memory, and the control unit under control of the control unit;
And the control unit controls the interface unit to change the path according to the change of ownership ownership.
상기 프로세서는 상기 제어부와 연결되고, 상기 오너쉽을 소유할 때 상기 제어부를 통해 상기 공유 메모리를 액세스하는 데이터 처리 시스템.The method of claim 18,
And the processor is coupled to the controller and accesses the shared memory through the controller when owning the ownership.
상기 제어부는 상기 호스트 프로세서의 상기 메일 박스로의 제1 액세스에 응답하여 상기 오너쉽을 상기 프로세서에게 귀속시키기 위해, 상기 인터페이스부가 상기 공유 메모리와 상기 제어부 사이에 제1 데이터 패스 및 제1 커맨드 패스를 형성하고 상기 호스트 프로세서와 상기 제어부 사이에 제2 데이터 패스를 형성하도록 제어하는 데이터 처리 시스템.The method of claim 18,
The control unit forms a first data path and a first command path between the shared memory and the control unit to assign the ownership to the processor in response to the first access of the host processor to the mailbox. And form a second data path between the host processor and the controller.
상기 제어부는 상기 제1 액세스에 응답하여 상기 제2 데이터 패스를 통해 이전 확인 데이터를 상기 호스트 프로세서로 전송하는 데이터 처리 시스템.The method of claim 20,
And the control unit transmits previous confirmation data to the host processor through the second data path in response to the first access.
상기 제어부는 상기 호스트 프로세서의 상기 메일 박스로의 제2 액세스에 응답하여 상기 오너쉽을 상기 호스트 프로세서에게 귀속시키기 위해, 상기 인터페이스부가 상기 호스트 프로세서와 상기 공유 메모리 사이에 제3 데이터 패스 및 제2 커맨드 패스를 형성하도록 제어하는 데이터 처리 시스템.The method of claim 20
The control unit may include a third data path and a second command path between the host processor and the shared memory, so that the interface unit assigns the ownership to the host processor in response to a second access of the host processor to the mailbox. A data processing system that controls to form a.
상기 제어부는 상기 제2 액세스에 응답하여 상기 제2 데이터 패스를 통해 회수 확인 데이터를 상기 호스트 프로세서로 전송한 뒤 상기 오너쉽을 상기 호스트 프로세서에게 귀속시키는 데이터 처리 시스템.The method of claim 22,
And the controller is further configured to transmit ownership confirmation data to the host processor through the second data path in response to the second access, and then assign the ownership to the host processor.
상기 제어부는 상기 오너쉽이 상기 프로세서에게 이전된 뒤, 상기 호스트 프로세서로부터 상기 제2 데이터 패스를 통해 전송된 상기 제2 작업에 대한 작업 정보를 상기 메일 박스에 저장하는 데이터 처리 시스템.The method of claim 20,
And the control unit stores, in the mailbox, job information about the second job transmitted from the host processor through the second data path after the ownership is transferred to the processor.
상기 프로세서는 상기 메일 박스로부터 상기 작업 정보를 리드하여 확인하고 상기 제2 작업을 처리하는 데이터 처리 시스템.The method of claim 24,
And the processor reads and confirms the job information from the mailbox and processes the second job.
상기 프로세서는 상기 호스트 프로세서가 상기 제2 데이터 패스를 통해 상기 제2 작업의 작업 결과 데이터를 리드하도록, 상기 메일 박스에 상기 제2 작업의 상기 작업 결과 데이터를 저장하는 데이터 처리 시스템.The method of claim 20,
And the processor stores the job result data of the second job in the mailbox such that the host processor reads the job result data of the second job via the second data path.
상기 인터페이스부와 상기 제어부는 상기 호스트 프로세서와 호스트 커맨드 패스를 통해 동시에 연결되고, 상기 호스트 커맨드 패스로 상기 공유 메모리 또는 상기 메일 박스에 대한 액세스 커맨드를 수신하는 데이터 처리 시스템.The method of claim 18
And the interface unit and the controller are simultaneously connected to the host processor through a host command path and receive an access command to the shared memory or the mailbox through the host command path.
상기 메일 박스는 상기 공유 메모리에 할당한 제2 어드레스 범위와 겹치지 않는 제1 어드레스 범위를 상기 호스트 프로세서로부터 할당받고,
상기 제어부는 상기 호스트 프로세서로부터 전송된 액세스 커맨드의 어드레스를 상기 제1 어드레스 범위 및 상기 제2 어드레스 범위와 비교하여 상기 액세스 커맨드를 처리하는 데이터 처리 시스템. The method of claim 27,
The mailbox is allocated from the host processor with a first address range that does not overlap with a second address range allocated to the shared memory,
And the controller is configured to process the access command by comparing an address of an access command transmitted from the host processor with the first address range and the second address range.
상기 메일 박스는 오너쉽 이전 영역을 포함하고,
상기 메모리 컨트롤러는 상기 호스트 프로세서로부터 상기 오너쉽 이전 영역에 대한 리드 커맨드를 수신할 때, 상기 오너쉽을 상기 프로세서에게 귀속시키는 데이터 처리 시스템.The method of claim 17,
The mailbox includes an ownership transfer area,
And when the memory controller receives a read command for the previous ownership area from the host processor, assigns the ownership to the processor.
상기 메일 박스는 오너쉽 회수 영역을 더 포함하고,
상기 메모리 컨트롤러는 상기 호스트 프로세서로부터 상기 오너쉽 회수 영역에 대한 리드 커맨드를 수신할 때, 상기 오너쉽을 상기 호스트 프로세서에게 귀속시키는 데이터 처리 시스템.The method of claim 29
The mailbox further includes an ownership recovery area,
And when the memory controller receives a read command for the ownership recovery area from the host processor, assigns the ownership to the host processor.
상기 메모리 컨트롤러는 상기 호스트 프로세서가 리드할 수 있도록 상기 메일 박스에 상기 프로세서의 상태 정보를 저장하는 데이터 처리 시스템.The method of claim 17,
And the memory controller stores state information of the processor in the mailbox for the host processor to read.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180032111A KR102545226B1 (en) | 2018-03-20 | 2018-03-20 | Memory system and data processing system including the same |
US16/210,418 US11169953B2 (en) | 2018-02-28 | 2018-12-05 | Data processing system accessing shared memory by using mailbox |
CN202310066589.4A CN115994105A (en) | 2018-02-28 | 2018-12-11 | Storage system and data processing system comprising a storage system |
CN201811509646.7A CN110209608B (en) | 2018-02-28 | 2018-12-11 | Storage system and data processing system including the same |
US17/510,921 US20220058157A1 (en) | 2018-02-28 | 2021-10-26 | Memory system and data processing system including the memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180032111A KR102545226B1 (en) | 2018-03-20 | 2018-03-20 | Memory system and data processing system including the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190110306A true KR20190110306A (en) | 2019-09-30 |
KR102545226B1 KR102545226B1 (en) | 2023-06-20 |
Family
ID=68098629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180032111A KR102545226B1 (en) | 2018-02-28 | 2018-03-20 | Memory system and data processing system including the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102545226B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080067799A (en) * | 2007-01-17 | 2008-07-22 | 삼성전자주식회사 | Multi-path accessible semiconductor memory device having mail box regions and method for mail box access control therefore |
US20090313440A1 (en) * | 2008-06-11 | 2009-12-17 | Young Lak Kim | Shared memory burst communications |
-
2018
- 2018-03-20 KR KR1020180032111A patent/KR102545226B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080067799A (en) * | 2007-01-17 | 2008-07-22 | 삼성전자주식회사 | Multi-path accessible semiconductor memory device having mail box regions and method for mail box access control therefore |
US20090313440A1 (en) * | 2008-06-11 | 2009-12-17 | Young Lak Kim | Shared memory burst communications |
Also Published As
Publication number | Publication date |
---|---|
KR102545226B1 (en) | 2023-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11947837B2 (en) | Memory system and method for controlling nonvolatile memory | |
US6330656B1 (en) | PCI slot control apparatus with dynamic configuration for partitioned systems | |
US7500059B2 (en) | Inter-processor communication method using a shared cache memory in a storage system | |
US20100138612A1 (en) | System and method for implementing cache sharing | |
US11194743B2 (en) | Method of accessing a dual line SSD device through PCIe EP and network interface simultaneously | |
US20200364145A1 (en) | Information processing apparatus and method for controlling storage device | |
KR102655094B1 (en) | Storage device including heterogeneous processors which shares memory and method of operating the same | |
JP2000010901A (en) | Disk array controller | |
CN111352873B (en) | NVMe protocol command processing method and device | |
US7543179B2 (en) | Error management topologies | |
CN116431530B (en) | CXL memory module, memory processing method and computer system | |
JP3690295B2 (en) | Disk array controller | |
US11550504B2 (en) | System including an application processor and a data storage device providing data | |
CN110209608B (en) | Storage system and data processing system including the same | |
KR100316190B1 (en) | Increasing i/o performance through storage of packetized operational information in local memory | |
KR102545226B1 (en) | Memory system and data processing system including the same | |
CN111338998B (en) | FLASH access processing method and device based on AMP system | |
KR102533147B1 (en) | Data processing system and operating method thereof | |
US7596652B2 (en) | Integrated circuit having processor and bridging capabilities | |
CN106325377A (en) | External device expansion card and input/output external device data processing method | |
JP4983133B2 (en) | INPUT / OUTPUT CONTROL DEVICE, ITS CONTROL METHOD, AND PROGRAM | |
US20060047934A1 (en) | Integrated circuit capable of memory access control | |
JP7398876B2 (en) | Computing system and data processing system equipped with the same | |
US10459842B1 (en) | Data storage system with configurable prefetch buffers | |
CN116774925A (en) | Disk storage system, method and server |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |