KR20190110306A - Memory system and data processing system including the same - Google Patents

Memory system and data processing system including the same Download PDF

Info

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
Application number
KR1020180032111A
Other languages
Korean (ko)
Other versions
KR102545226B1 (en
Inventor
남지훈
임의철
Original Assignee
에스케이하이닉스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이하이닉스 주식회사 filed Critical 에스케이하이닉스 주식회사
Priority to KR1020180032111A priority Critical patent/KR102545226B1/en
Priority to US16/210,418 priority patent/US11169953B2/en
Priority to CN202310066589.4A priority patent/CN115994105A/en
Priority to CN201811509646.7A priority patent/CN110209608B/en
Publication of KR20190110306A publication Critical patent/KR20190110306A/en
Priority to US17/510,921 priority patent/US20220058157A1/en
Application granted granted Critical
Publication of KR102545226B1 publication Critical patent/KR102545226B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller

Abstract

The present invention relates to a memory system and a data processing system including the same to enable host and peripheral processors to access a shared memory without a collision. According to the present invention, the data processing system comprises: the shared memory; the host processor possessing an ownership for the shared memory and accessing the shared memory to process a first task; a processor possessing the ownership transferred from the host processor and accessing the shared memory to process a second task; and a memory controller connected among the host processor, the processor and the shared memory, and allowing access to the shared memory, the host processor or the processor in accordance with the ownership. The memory controller includes a mailbox and the host processor accesses the mailbox to transfer or collect the ownership.

Description

메모리 시스템 및 그것을 포함하는 데이터 처리 시스템{MEMORY SYSTEM AND DATA PROCESSING SYSTEM INCLUDING THE SAME}MEMORY SYSTEM AND DATA PROCESSING SYSTEM INCLUDING THE SAME}

본 발명은 데이터 처리 시스템에 관한 것으로, 더욱 상세하게는 공유 메모리를 포함하는 데이터 처리 시스템에 관한 것이다.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 data processing system 100 according to an embodiment of the present invention.

도1을 참조하면, 데이터 처리 시스템(100)은 호스트 프로세서(110), 프로세서(120), 공유 메모리(130) 및 메모리 컨트롤러(140)를 포함할 수 있다.Referring to FIG. 1, the data processing system 100 may include a host processor 110, a processor 120, a shared memory 130, and a memory controller 140.

호스트 프로세서(110)는 데이터 처리 시스템(100)을 전반적으로 제어할 수 있다. 호스트 프로세서(110)는 공유 메모리(130)에 대한 오너쉽을 소유하고 공유 메모리(130)를 액세스함으로써 작업을 처리할 수 있다. 또한, 호스트 프로세서(110)는 프로세서(120)에게 작업의 처리를 지시하면서 오너쉽을 프로세서(120)에게 이전할 수 있다.The host processor 110 may control the data processing system 100 as a whole. The host processor 110 may own the ownership of the shared memory 130 and process work by accessing the shared memory 130. In addition, the host processor 110 may transfer ownership to the processor 120 while instructing the processor 120 to process a job.

프로세서(120)는 호스트 프로세서(110)에 의해 지시된 작업을 처리할 수 있다. 프로세서(120)는 호스트 프로세서(110)로부터 오너쉽을 이전받아 오너쉽을 소유하고 공유 메모리(130)를 액세스함으로써 작업을 처리할 수 있다. 즉, 본 발명에서 오너쉽은 호스트 프로세서(110)와 프로세서(120)가 서로 충돌 없이 공유 메모리(130)를 독점적으로 액세스할 수 있는 권한일 수 있다. 호스트 프로세서(110)와 프로세서(120)는 메모리 컨트롤러(140)를 통해 공유 메모리(130)를 액세스할 수 있다.The processor 120 may process a task indicated by the host processor 110. The processor 120 may transfer the ownership from the host processor 110 to process the job by owning the ownership and accessing the shared memory 130. That is, in the present invention, ownership may be a right for the host processor 110 and the processor 120 to exclusively access the shared memory 130 without conflict with each other. The host processor 110 and the processor 120 may access the shared memory 130 through the memory controller 140.

한편, 호스트 프로세서(110)는 오너쉽을 프로세서(120)에게 이전한 후, 메모리 컨트롤러(140)로부터 프로세서(120)의 상태 정보를 확인할 수 있다. 호스트 프로세서(110)는 프로세서(120)가 작업을 종료한 것으로 판단될 때, 오너쉽을 프로세서(120)로부터 회수하여 다시 소유할 수 있다. 호스트 프로세서(110)는 오너쉽을 소유한 뒤, 공유 메모리(130)로부터 프로세서(120)의 작업 결과 데이터를 리드할 수 있다.The host processor 110 may transfer ownership to the processor 120 and then check the state information of the processor 120 from the memory controller 140. When it is determined that the processor 120 has finished the work, the host processor 110 may recover ownership from the processor 120 and own it again. The host processor 110 may own the ownership and read the operation result data of the processor 120 from the shared memory 130.

상술한 바와 같이, 오너쉽이 호스트 프로세서(110) 및 프로세서(120) 중 누구에게 있는지에 따라 공유 메모리(130)의 액세스는 제한될 수 있다. 이것은 메모리 컨트롤러(130)가 오너쉽을 호스트 프로세서(110) 및 프로세서(120) 중 어느 하나에게 귀속시킴으로써 가능하다. 메모리 컨트롤러(130)는 호스트 프로세서(110)의 제어에 따라 오너쉽을 호스트 프로세서(110) 및 프로세서(120) 중 어느 하나에게 귀속시키면서 공유 메모리(130)에 대한 패스를 변경할 수 있다. 호스트 프로세서(110)는 오너쉽의 귀속을 변경하기 위해, 즉, 오너쉽을 프로세서(120)에게 이전하거나 프로세서(120)로부터 회수하기 위해, 소정 커맨드를 메모리 컨트롤러(140)로 전송할 수 있다.As described above, access to the shared memory 130 may be limited depending on who owns ownership of the host processor 110 and the processor 120. This is possible by the memory controller 130 attributing ownership to either the host processor 110 or the processor 120. The memory controller 130 may change the path to the shared memory 130 while attributing ownership to either the host processor 110 or the processor 120 under the control of the host processor 110. The host processor 110 may transmit a predetermined command to the memory controller 140 to change the ownership of the ownership, that is, transfer the ownership to the processor 120 or withdraw the ownership from the processor 120.

호스트 프로세서(110) 및 프로세서(120)는 중앙 처리 장치, 그래픽 처리 장치, 마이크로 프로세서, 애플리케이션 프로세서, 가속 처리 장치(Accelerated Processing Unit) 및 운영 체제 등을 포함할 수 있다.The host processor 110 and the processor 120 may include a central processing unit, a graphics processing unit, a microprocessor, an application processor, an accelerated processing unit, an operating system, and the like.

공유 메모리(130)는 호스트 프로세서(110)와 프로세서(120)에 의해 공유될 수 있다. 공유 메모리(130)는 호스트 프로세서(110)와 프로세서(120) 중 오너쉽을 소유하는 어느 하나에 의해 메모리 컨트롤러(140)를 통해 액세스될 수 있다. The shared memory 130 may be shared by the host processor 110 and the processor 120. The shared memory 130 may be accessed through the memory controller 140 by one of ownership of the host processor 110 and the processor 120.

메모리 컨트롤러(140)는 호스트 프로세서(110), 프로세서(120) 및 공유 메모리(130) 사이에 연결될 수 있다. 메모리 컨트롤러(140)는 호스트 프로세서(110)의 제어에 따라 오너쉽을 호스트 프로세서(110)와 프로세서(120) 중 어느 하나에게 귀속시킴으로써, 호스트 프로세서(110)의 공유 메모리(130) 액세스 또는 프로세서(120)의 공유 메모리(130) 액세스를 허용할 수 있다. 오너쉽을 호스트 프로세서(110)와 프로세서(120) 중 어느 하나에게 귀속시키는 것은 결국, 메모리 컨트롤러(140)가 호스트 프로세서(110), 프로세서(120) 및 공유 메모리(130) 사이에서 데이터 패스 및 커맨드 패스를 선택적으로 활성화시키는 것으로 구현될 수 있다. 메모리 컨트롤러(140)는 호스트 프로세서(110)로부터 전송된 소정 커맨드에 응답하여 호스트 프로세서(110)와 프로세서(120) 간에 오너쉽의 귀속을 변경할 수 있다.The memory controller 140 may be connected between the host processor 110, the processor 120, and the shared memory 130. The memory controller 140 assigns ownership to either the host processor 110 or the processor 120 under the control of the host processor 110, thereby accessing the shared memory 130 of the host processor 110 or the processor 120. ) May allow access to the shared memory 130. Attributing ownership to either the host processor 110 or the processor 120 eventually results in the memory controller 140 having a data path and command path between the host processor 110, the processor 120, and the shared memory 130. It can be implemented by selectively activating. The memory controller 140 may change the ownership of ownership between the host processor 110 and the processor 120 in response to a predetermined command transmitted from the host processor 110.

메모리 컨트롤러(140)는 메일 박스(145)를 포함할 수 있다. 호스트 프로세서(110)는 메일 박스(145)를 액세스함으로써 오너쉽을 프로세서(120)에게 이전하고 프로세서로부터 회수할 수 있다. 호스트 프로세서(110)는 메일 박스(145)에 프로세서(120)가 확인해야 할 작업 정보를 저장할 수 있다. 호스트 프로세서(110)는 메일 박스(145)로부터 프로세서(120)의 상태 정보를 리드할 수 있다.The memory controller 140 may include a mail box 145. The host processor 110 can transfer ownership to and retrieve ownership from the processor 120 by accessing the mailbox 145. The host processor 110 may store job information to be checked by the processor 120 in the mailbox 145. The host processor 110 may read state information of the processor 120 from the mailbox 145.

또한, 프로세서(120)는 메일 박스(145)로부터 작업 정보를 리드하고 확인함으로써 호스트 프로세서(110)가 지시한 작업을 처리할 수 있다.In addition, the processor 120 may process a job instructed by the host processor 110 by reading and confirming job information from the mailbox 145.

메일 박스(145)는 SRAM 또는 레지스터 등 다양한 메모리 소자로 구현될 수 있다.The mail box 145 may be implemented with various memory elements such as SRAM or registers.

정리하면, 메모리 컨트롤러(140)는 호스트 프로세서(110)의 제어에 따라 오너쉽을 호스트 프로세서(110)와 프로세서(120) 중 어느 하나에게 귀속시키고 오너쉽을 가진 어느 한쪽만의 공유 메모리(130)에 대한 액세스를 허용하기 때문에, 호스트 프로세서(110)와 프로세서(120)는 충돌 없이 공유 메모리(130)를 사용하여 작업을 처리할 수 있다. 또한, 공유 메모리(130)의 인터페이스는 기존의 프로토콜이나 핀 배치에 따라 그대로 적용될 수 있다.In summary, the memory controller 140 assigns ownership to one of the host processor 110 and the processor 120 according to the control of the host processor 110, and controls the ownership of the shared memory 130 having only one ownership. Because of allowing access, the host processor 110 and the processor 120 can process the task using the shared memory 130 without conflict. In addition, the interface of the shared memory 130 may be applied as it is according to the existing protocol or pin arrangement.

도2는 본 발명의 실시 예에 따라, 호스트 프로세서(110) 또는 프로세서(120)가 공유 메모리(130)에 대한 오너쉽을 교대로 소유하는 상황을 도시하는 도면이다.2 is a diagram illustrating a situation in which the host processor 110 or the processor 120 alternately owns ownership of the shared memory 130 according to an embodiment of the present invention.

도2를 참조하면, 최초에 호스트 프로세서(110)가 오너쉽을 소유한 상태일 수 있다. 따라서, 시간(T1) 동안, 호스트 프로세서(110)가 오너쉽을 소유하고 공유 메모리(130)를 액세스하여 작업을 처리할 수 있다. 시간(T1) 동안, 프로세서(120)는 공유 메모리(130)를 액세스할 수 없다.Referring to FIG. 2, the host processor 110 may initially own ownership. Thus, during time T1, host processor 110 may own ownership and access shared memory 130 to process the job. During time T1, processor 120 may not access shared memory 130.

시점(P1)에서 호스트 프로세서(110)가 오너쉽을 프로세서(120)에게 이전할 수 있다. 따라서, 시간(T2) 동안, 프로세서(120)가 오너쉽을 소유하고 공유 메모리(130)를 액세스하여 작업을 처리할 수 있다. 시간(T2) 동안, 호스트 프로세서(110)는 공유 메모리(130)를 액세스할 수 없다.At the point in time P1, the host processor 110 may transfer ownership to the processor 120. Thus, during time T2, processor 120 may own ownership and access shared memory 130 to process work. During time T2, the host processor 110 may not be able to access the shared memory 130.

시점(P2)에서 호스트 프로세서(110)가 오너쉽을 프로세서(120)로부터 회수할 수 있다. 따라서, 시간(T3) 동안, 호스트 프로세서(110)가 오너쉽을 소유하고 공유 메모리(130)를 액세스하여 작업을 처리할 수 있다. 시간(T3) 동안, 프로세서(120)는 공유 메모리(130)를 액세스할 수 없다.At the point in time P2, the host processor 110 may take ownership from the processor 120. Thus, during time T3, host processor 110 may own ownership and access shared memory 130 to process the job. During time T3, processor 120 may not access shared memory 130.

실시 예에 따라, 시간(T1)에서 처리된 호스트 프로세서(110)의 작업은, 프로세서(120)에게 처리를 지시할 작업 데이터를 공유 메모리(130)에 저장하는 것을 포함할 수 있다. 시간(T2)에서 처리된 프로세서(120)의 작업은, 호스트 프로세서(110)의 지시에 따라 공유 메모리(130)에 저장된 작업 데이터를 처리하는 것을 포함할 수 있다. 시간(T3)에서 처리된 호스트 프로세서(110)의 작업은, 프로세서(120)가 처리한 작업 결과 데이터를 공유 메모리(130)로부터 리드하는 것을 포함할 수 있다. 해당 절차에 대한 설명은 이어서 도3을 참조하여 상세하게 설명될 것이다.According to an embodiment, the operation of the host processor 110 processed at the time T1 may include storing, in the shared memory 130, job data to instruct the processor 120 to process. The task of the processor 120 processed at time T2 may include processing the task data stored in the shared memory 130 according to the instruction of the host processor 110. The operation of the host processor 110 processed at time T3 may include reading the operation result data processed by the processor 120 from the shared memory 130. The description of the procedure will then be described in detail with reference to FIG.

도3은 본 발명의 실시 예에 따라 호스트 프로세서(110) 및 프로세서(120)의 동작 절차를 간략하게 도시하는 도면이다. 도3에서 절차가 시작될 때 오너쉽은 호스트 프로세서(110)가 소유한 상태일 수 있다.3 is a diagram schematically illustrating an operation procedure of the host processor 110 and the processor 120 according to an exemplary embodiment of the present invention. Ownership may be in a state owned by the host processor 110 when the procedure begins in FIG.

도3을 참조하면, 단계(S11)에서, 호스트 프로세서(110)는 프로세서(120)가 처리해야 할 작업 데이터를 공유 메모리(130)에 저장할 수 있다. 호스트 프로세서(110)는 오너쉽을 소유하므로 공유 메모리(130)를 액세스할 수 있다. 한편, 호스트 프로세서(110)는 공유 메모리(130)를 직접적으로 액세스하지는 않고, 실질적으로는 메모리 컨트롤러(140)를 통해 액세스할 것이다. 단계(S11)에서 호스트 프로세서(110)로부터 공유 메모리(130)로 연결된 화살표는 호스트 프로세서(110)가 오너쉽을 가지고 공유 메모리(130)를 사용한다는 의미이다.Referring to FIG. 3, in step S11, the host processor 110 may store work data to be processed by the processor 120 in the shared memory 130. Since the host processor 110 owns ownership, the host processor 110 can access the shared memory 130. The host processor 110, on the other hand, does not access the shared memory 130 directly, but rather may access it through the memory controller 140. An arrow connected from the host processor 110 to the shared memory 130 in step S11 means that the host processor 110 uses the shared memory 130 with ownership.

단계(S12)에서, 호스트 프로세서(110)는 오너쉽을 프로세서(120)에게 이전하기 위해 메모리 컨트롤러(140)로 소정 커맨드를 전송할 수 있다.In operation S12, the host processor 110 may transmit a predetermined command to the memory controller 140 to transfer ownership to the processor 120.

단계(S13)에서, 메모리 컨트롤러(140)는 호스트 프로세서(110)로부터 전송된 커맨드에 응답하여 프로세서(120)에게 오너쉽을 귀속시킬 수 있다. 따라서, 이후 메모리 컨트롤러(140)는 공유 메모리(130)에 대해 오직 프로세서(120)의 액세스만을 허용할 수 있다.In operation S13, the memory controller 140 may assign ownership to the processor 120 in response to a command transmitted from the host processor 110. Thus, the memory controller 140 may then only allow access of the processor 120 to the shared memory 130.

단계(S14)에서, 호스트 프로세서(110)는 메모리 컨트롤러(140)의 메일 박스(145)에 작업 정보를 저장할 수 있다. 작업 정보는 프로세서(120)가 처리해야 할 작업에 대한 정보를 포함할 수 있다. 예를 들어, 작업 정보는 공유 메모리(130)에서 작업 데이터가 저장된 영역의 시작 어드레스 및 마지막 어드레스를 포함할 수 있다. 작업 정보는 공유 메모리(130)에서 작업 결과 데이터가 저장되어야 할 영역의 시작 어드레스와 마지막 어드레스를 포함할 수 있다.In operation S14, the host processor 110 may store job information in the mailbox 145 of the memory controller 140. The job information may include information about a job to be processed by the processor 120. For example, the job information may include a start address and a last address of an area in which job data is stored in the shared memory 130. The job information may include a start address and a last address of an area in which the job result data is to be stored in the shared memory 130.

단계(S15)에서, 프로세서(120)는 메일 박스(145)에 저장된 작업 정보를 리드할 수 있다.In operation S15, the processor 120 may read job information stored in the mailbox 145.

단계(S16)에서, 프로세서(120)는 공유 메모리(130)에 저장된 작업 데이터를 처리할 수 있다. 프로세서(120)는 공유 메모리(130)로부터 작업 데이터를 리드하여 처리하고, 처리된 데이터를 작업 결과 데이터로서 공유 메모리(130)에 저장할 수 있다. 프로세서(120)는 오너쉽을 소유하므로 공유 메모리(130)를 액세스할 수 있다. 한편, 프로세서(120)는 공유 메모리(130)를 직접적으로 액세스하지는 않고, 실질적으로 메모리 컨트롤러(140)를 통해 액세스할 것이다. 단계(S16)에서 프로세서(120)로부터 공유 메모리(130)로 연결된 화살표는 프로세서(120)가 오너쉽을 가지고 공유 메모리(130)를 사용한다는 의미이다.In operation S16, the processor 120 may process work data stored in the shared memory 130. The processor 120 may read and process work data from the shared memory 130, and store the processed data in the shared memory 130 as work result data. The processor 120 owns ownership and can access the shared memory 130. In the meantime, the processor 120 does not directly access the shared memory 130, but may substantially access it through the memory controller 140. An arrow connected from the processor 120 to the shared memory 130 in step S16 means that the processor 120 has ownership and uses the shared memory 130.

단계(S17)에서, 호스트 프로세서(110)는 메모리 컨트롤러(140)의 메일 박스(145)를 통해 프로세서(120)의 상태 정보를 반복적으로 리드할 수 있다. 상태 정보는 프로세서(120)가 작업을 종료하였는지 여부를 포함할 수 있다. 상태 정보는 프로세서(120)가 처리중인 동작의 잔여 처리량을 포함할 수 있다. 단계(S17)는 단계(S16)와 병렬적으로 수행될 수 있다. 후술될 바와 같이, 프로세서(120)가 오너쉽을 소유할 때, 호스트 프로세서(110)는 메일 박스(145)에 대한 액세스가 가능해 진다.In operation S17, the host processor 110 may repeatedly read the state information of the processor 120 through the mailbox 145 of the memory controller 140. The status information may include whether the processor 120 has finished the task. The state information may include the remaining throughput of the operation being processed by the processor 120. Step S17 may be performed in parallel with step S16. As will be described below, when the processor 120 owns ownership, the host processor 110 becomes able to access the mailbox 145.

단계(S18)에서, 호스트 프로세서(110)는 프로세서(120)가 작업을 종료한 것으로 판단될 때, 오너쉽을 프로세서(120)로부터 회수하기 위해 메모리 컨트롤러(140)로 소정 커맨드를 전송할 수 있다.In operation S18, when it is determined that the processor 120 has finished the operation, the host processor 110 may transmit a predetermined command to the memory controller 140 to recover ownership from the processor 120.

단계(S19)에서, 메모리 컨트롤러(140)는 호스트 프로세서(110)로부터 전송된 커맨드에 응답하여 호스트 프로세서(110)에게 오너쉽을 귀속시킬 수 있다. 따라서, 이후 메모리 컨트롤러(140)는 공유 메모리(130)에 대해 오직 호스트 프로세서(110)의 액세스만을 허용할 수 있다.In operation S19, the memory controller 140 may assign ownership to the host processor 110 in response to a command transmitted from the host processor 110. Thus, the memory controller 140 can then only allow access of the host processor 110 to the shared memory 130.

단계(S20)에서, 호스트 프로세서(110)는 프로세서(120)의 작업 결과 데이터를 공유 메모리(130)로부터 리드할 수 있다. 호스트 프로세서(110)는 오너쉽을 소유하므로 공유 메모리(130)를 액세스할 수 있다. 한편, 호스트 프로세서(110)는 공유 메모리(130)를 직접적으로 액세스하지는 않고, 실질적으로는 메모리 컨트롤러(140)를 통해 액세스할 것이다. 단계(S11)에서 호스트 프로세서(110)로부터 공유 메모리(130)로 연결된 화살표는 호스트 프로세서(110)가 오너쉽을 가지고 공유 메모리(130)를 사용한다는 의미이다.In operation S20, the host processor 110 may read the operation result data of the processor 120 from the shared memory 130. Since the host processor 110 owns ownership, the host processor 110 can access the shared memory 130. The host processor 110, on the other hand, does not access the shared memory 130 directly, but rather may access it through the memory controller 140. An arrow connected from the host processor 110 to the shared memory 130 in step S11 means that the host processor 110 uses the shared memory 130 with ownership.

도4는 본 발명의 실시 예에 따라, 메일 박스(145)의 구성을 설명하기 위한 도면이다. 도4에 도시된 어드레스는 이후 설명되는 동작 방법에서도 그대로 사용될 것이다. 또한, 도4에서 메일 박스(145)를 사용하여 오너쉽을 이전하고 회수하는 방법도 함께 설명될 것이다.4 is a view for explaining the configuration of a mail box 145 according to an embodiment of the present invention. The address shown in Fig. 4 will be used as it is in the operation method described later. In addition, a method of transferring and retrieving ownership using the mailbox 145 in FIG. 4 will also be described.

도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 host processor 110 are illustrated. The host processor 110 may allocate some ranges ADa to ADi of the address ranges ADa to ADz to the shared memory 130. The host processor 110 may assign a partial range ADj to ADn of the address ranges ADa to ADz to the mailbox 145. Some ranges ADo to ADz of the address ranges ADa to ADz may be reserved without being used.

따라서, 메모리 컨트롤러(140)는 호스트 프로세서(110)로부터 전송된 어떤 액세스 커맨드의 어드레스가 공유 메모리(130)의 어드레스 범위(ADa~ADi)와 메일 박스(145)의 어드레스 범위(ADj~ADn) 중 어디에 포함되는 지를 판단하여, 판단 결과에 따라 액세스 커맨드를 처리할 수 있다.Therefore, the memory controller 140 has an address of an access command transmitted from the host processor 110 in the address range ADa to ADi of the shared memory 130 and the address range ADj to ADn of the mailbox 145. It is determined where it is included, and the access command can be processed according to the determination result.

메일 박스(145)는 오너쉽 이전 영역(401), 오너쉽 회수 영역(402), 작업 정보 영역(403), 상태 정보 영역(404), 및 작업 결과 데이터 영역(405)을 포함할 수 있다. 오너쉽 이전 영역(401), 오너쉽 회수 영역(402), 작업 정보 영역(403), 상태 정보 영역(404), 및 작업 결과 데이터 영역(405)은 각각 어드레스 범위(ADj~ADn)에 포함되는 어드레스들에 대응할 수 있다.The mailbox 145 may include an ownership ownership area 401, an ownership recovery area 402, a job information area 403, a status information area 404, and a job result data area 405. The ownership ownership area 401, ownership recovery area 402, job information area 403, status information area 404, and job result data area 405 are the addresses included in the address range ADj to ADn, respectively. It can correspond to.

오너쉽 이전 영역(401)은 호스트 프로세서(110)가 오너쉽을 프로세서(120)에게 이전하기 위해 리드 액세스하는 영역일 수 있다. 호스트 프로세서(110)는 오너쉽을 프로세서(120)에게 이전하기 위해 리드 커맨드와 오너쉽 이전 영역(401)의 어드레스(AD-TR)를 메모리 컨트롤러(140)로 전송할 수 있다. 메모리 컨트롤러(140)는 호스트 프로세서(110)로부터 전송된 리드 커맨드와 오너쉽 이전 영역(401)의 어드레스(AD-TR)를 확인하여 오너쉽을 프로세서(120)에게 귀속시킬 수 있다. 메모리 컨트롤러(140)는 오너쉽 이전 영역(401)에 대한 리드 커맨드에 응답하여, 오너쉽 이전 영역(401)에 저장된 이전 확인 데이터를 호스트 프로세서(110)로 전송할 수 있다. 이전 확인 데이터는 오너쉽 이전이 완료되었음을 의미하는 것으로서 호스트 프로세서(110)와 사전에 약속된 데이터일 수 있다. The ownership transfer area 401 may be an area where the host processor 110 leads access to transfer ownership to the processor 120. The host processor 110 may transmit a read command and an address AD-TR of the ownership transfer region 401 to the memory controller 140 to transfer ownership to the processor 120. The memory controller 140 may check ownership of the read command transmitted from the host processor 110 and the address AD-TR of the region before the ownership 401 and assign the ownership to the processor 120. The memory controller 140 may transmit the previous confirmation data stored in the ownership previous area 401 to the host processor 110 in response to the read command for the previous ownership area 401. The transfer confirmation data indicates that ownership transfer has been completed and may be data previously promised with the host processor 110.

오너쉽 회수 영역(402)은 호스트 프로세서(110)가 오너쉽을 프로세서(120)로부터 회수하기 위해 리드 액세스하는 영역일 수 있다. 호스트 프로세서(110)는 오너쉽을 프로세서(120)로부터 회수하기 위해 리드 커맨드와 오너쉽 회수 영역(402)의 어드레스(AD-RS)를 메모리 컨트롤러(140)로 전송할 수 있다. 메모리 컨트롤러(140)는 호스트 프로세서(110)로부터 전송된 리드 커맨드와 오너쉽 회수 영역(402)의 어드레스(AD-RS)를 확인하여 오너쉽을 호스트 프로세서(110)에게 귀속시킬 수 있다. 메모리 컨트롤러(140)는 오너쉽 회수 영역(402)에 대한 리드 커맨드에 응답하여, 오너쉽 회수 영역(402)에 저장된 회수 확인 데이터를 호스트 프로세서(110)로 전송할 수 있다. 회수 확인 데이터는 오너쉽 회수를 처리할 것임을 의미하는 것으로서 호스트 프로세서와 사전에 약속된 데이터일 수 있다. The ownership retrieval area 402 may be an area where the host processor 110 reads access to reclaim ownership from the processor 120. The host processor 110 may transmit the read command and the address AD-RS of the ownership recovery area 402 to the memory controller 140 to recover ownership from the processor 120. The memory controller 140 may check ownership of the read command transmitted from the host processor 110 and the address AD-RS of the ownership retrieval area 402, and assign ownership to the host processor 110. The memory controller 140 may transmit the collection confirmation data stored in the ownership recovery area 402 to the host processor 110 in response to the read command for the ownership recovery area 402. The revocation confirmation data means that the ownership retrieval will be processed and may be data previously agreed with the host processor.

작업 정보 영역(403)은 프로세서(120)가 확인할 작업 정보가 저장되는 영역일 수 있다. 호스트 프로세서(110)는 작업 정보 영역(403)에 작업 정보를 저장할 수 있다. 프로세서(120)는 작업 정보 영역(403)으로부터 작업 정보를 리드하고 확인할 수 있다. 작업 정보 영역(403)은 어드레스(AD-WI)를 사용하여 액세스될 수 있다.The job information area 403 may be an area in which job information to be checked by the processor 120 is stored. The host processor 110 may store job information in the job information area 403. The processor 120 reads and confirms job information from the job information area 403. The job information area 403 can be accessed using the address AD-WI.

상태 정보 영역(404)은 프로세서(120)의 상태 정보가 저장되는 영역일 수 있다. 상태 정보는 메모리 컨트롤러(140)에 의해 저장될 수 있다. 예를 들어, 메모리 컨트롤러(140)는 후술될 바와 같이, 프로세서(120)의 작업 결과 데이터가 공유 메모리(130)에 저장되는 위치를 알 수 있으므로, 그에 기반하여 동작의 잔여 처리량 또는 상태 정보를 업데이트할 수 있다. 실시 예에 따라, 상태 정보는 프로세서(120)에 의해 저장될 수도 있다. 호스트 프로세서(110)는 상태 정보 영역(404)으로부터 상태 정보를 리드하고 확인할 수 있다. 상태 정보 영역(404)은 어드레스(AD-ST)를 사용하여 액세스될 수 있다.The state information area 404 may be an area where state information of the processor 120 is stored. The state information may be stored by the memory controller 140. For example, as will be described later, the memory controller 140 may know a location where the work result data of the processor 120 is stored in the shared memory 130, and accordingly, update the remaining throughput or state information of the operation. can do. According to an embodiment, the state information may be stored by the processor 120. The host processor 110 may read and check state information from the state information area 404. The status information area 404 can be accessed using the address AD-ST.

작업 결과 데이터 영역(405)은 프로세서(120)가 처리한 작업의 작업 결과 데이터가 저장되는 영역일 수 있다. 프로세서(120)는 작업 결과 데이터 영역(405)에 작업 결과 데이터를 저장할 수 있다. 호스트 프로세서(110)는 작업 결과 데이터 영역(405)으로부터 작업 결과 데이터를 리드할 수 있다. 즉, 호스트 프로세서(110)는 도3을 참조하여 설명한 바와 같이 작업 결과 데이터를 공유 메모리(130)로부터 리드할 수 있고, 실시 예에 따라, 작업 결과 데이터 영역(405)으로부터 리드할 수도 있다. 작업 결과 데이터 영역(405)은 어드레스(AD-RD)를 사용하여 액세스될 수 있다.The job result data area 405 may be an area in which job result data of a job processed by the processor 120 is stored. The processor 120 may store the operation result data in the operation result data area 405. The host processor 110 may read the operation result data from the operation result data area 405. That is, the host processor 110 may read the operation result data from the shared memory 130 as described with reference to FIG. 3, or may read from the operation result data area 405 according to an embodiment. The job result data area 405 can be accessed using the address AD-RD.

실시 예에 따라, 호스트 프로세서(110)는 오너쉽 귀속을 상술한 바와 같이 메일 박스(145)를 액세스함으로써 변경하지 않고, 별도 지정된 커맨드들을 통해 변경할 수 있다. 별도 지정된 커맨드들은 메모리 컨트롤러(140)에 포함된 별도 레지스터(미도시), 예를 들어, MPR(Multi Purpose Register)에 현재 오너쉽의 귀속을 저장하기 위한 것일 수 있다. 메모리 컨트롤러(140)는 호스트 프로세서(110)로부터 별도 지정된 커맨드들을 수신하면, 별도 레지스터에 오너쉽이 누구에게 귀속되었는지를 저장하고, 그에 따라 공유 메모리(130)에 대한 패스를 형성할 수 있다.According to an embodiment of the present disclosure, the host processor 110 may change ownership ownership by accessing the mailbox 145 as described above, but through separate designated commands. Separately designated commands may be for storing attribution of the current ownership in a separate register (eg, multi purpose register) included in the memory controller 140. When the memory controller 140 receives the separately designated commands from the host processor 110, the memory controller 140 may store who owns the ownership in a separate register, thereby forming a path to the shared memory 130.

도5는 본 발명의 실시 예에 따른 메모리 컨트롤러(140)를 상세하게 도시하는 블록도이다.FIG. 5 is a detailed block diagram illustrating a memory controller 140 according to an exemplary embodiment of the inventive concept.

도5를 참조하면, 메모리 컨트롤러(140)는 제어부(210) 및 인터페이스부(220)를 포함할 수 있다.Referring to FIG. 5, the memory controller 140 may include a controller 210 and an interface unit 220.

제어부(210)는 호스트 커맨드 패스(HC)를 통해 호스트 프로세서(110)와 연결될 수 있다. 제어부(210)는 제2 호스트 데이터 패스(HD2) 및 제2 메모리 데이터 패스(MD2)를 통해 데이터 드라이버(211)와 연결될 수 있다. 제어부(210)는 프로세서 커맨드 패스(PC)를 통해 커맨드 먹스(212)와 연결될 수 있다. 각 패스의 사용은 아래에서 구체적으로 설명될 것이다. 또한, 제어부(210)는 메일 박스(145)를 포함할 수 있다. 제어부(210)는 메일 박스(145)를 제어할 수 있다. The controller 210 may be connected to the host processor 110 through a host command path HC. The controller 210 may be connected to the data driver 211 through the second host data path HD2 and the second memory data path MD2. The controller 210 may be connected to the command mux 212 through a processor command path PC. The use of each pass will be described in detail below. In addition, the controller 210 may include a mailbox 145. The controller 210 may control the mailbox 145.

제어부(210)는 호스트 프로세서(110)의 제어에 따라, 오너쉽을 프로세서(120)에게 귀속시킬 수 있다. 구체적으로, 호스트 프로세서(110)는 리드 커맨드와 메일 박스(145)의 오너쉽 이전 영역(401)의 어드레스(AD-TR)를 호스트 커맨드 패스(HC)를 통해 전송할 수 있다. 제어부(210)는 호스트 커맨드 패스(HC)를 통해 호스트 프로세서(110)와 항상 연결되어 있으므로, 오너쉽이 누구에게 귀속되어 있는지에 무관하게 호스트 프로세서(110)의 리드 커맨드를 수신할 수 있다. 제어부(210)는 호스트 커맨드 패스(HC)를 통해 리드 커맨드와 오너쉽 이전 영역(401)의 어드레스(AD-TR)를 수신하고, 오너쉽을 프로세서(120)에게 귀속시킬 수 있다. 제어부(210)는 후술될 바와 같이 인터페이스부(220)의 데이터 패스 및 커맨드 패스를 변경시킴으로써 오너쉽을 프로세서(120)에게 귀속시킬 수 있다. The controller 210 may assign ownership to the processor 120 under the control of the host processor 110. In detail, the host processor 110 may transmit the read command and the address AD-TR of the previous ownership area 401 of the mailbox 145 through the host command path HC. Since the controller 210 is always connected to the host processor 110 through the host command path HC, the controller 210 may receive a read command of the host processor 110 regardless of who owns the ownership. The controller 210 may receive the read command and the address AD-TR of the previous ownership area 401 through the host command path HC, and assign the ownership to the processor 120. The controller 210 may assign ownership to the processor 120 by changing the data path and the command path of the interface unit 220, as will be described later.

제어부(210)는 오너쉽을 프로세서(120)에게 귀속시킨 뒤, 리드 커맨드의 응답으로서 오너쉽 이전 영역(401)에 저장된 이전 확인 데이터를 호스트 프로세서(110)에게 전송할 수 있다. 한편, 오너쉽이 프로세서(120)에게 귀속될 때, 후술될 바와 같이 제2 호스트 데이터 패스(HD2)는 제1 호스트 데이터 패스(HD1)와 연결되므로, 제어부(210)는 이전 확인 데이터를 제2 호스트 데이터 패스(HD2) 및 제1 호스트 데이터 패스(HD1)를 통해 호스트 프로세서(110)로 전송할 수 있다.The controller 210 may assign ownership to the processor 120, and then transmit the previous confirmation data stored in the previous ownership area 401 to the host processor 110 in response to the read command. Meanwhile, when ownership is attributed to the processor 120, the second host data path HD2 is connected to the first host data path HD1 as will be described later, so that the controller 210 may transfer the previous confirmation data to the second host. The data path HD2 and the first host data path HD1 may be transmitted to the host processor 110.

또한, 제어부(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 controller 210 may assign ownership to the host processor 110 under the control of the host processor 110. In detail, the host processor 110 may transmit the read command and the address AD-RS of the ownership recovery area 402 of the mailbox 145 through the host command path HC. Since the controller 210 is always connected to the host processor 110 through the host command path HC, the controller 210 may receive a read command of the host processor 110 while the ownership is attributed to the processor 120. The controller 210 may receive the read command and the address AD-RS of the ownership recovery area 402, and assign ownership to the host processor 110. The controller 210 may assign ownership to the host processor 110 by changing a data path and a command path of the interface unit 220, as will be described later.

제어부(210)는 오너쉽을 호스트 프로세서(110)에게 귀속시키기 전에, 즉, 인터페이스부(220)의 데이터 패스 및 커맨드 패스를 변경시키기 전에 리드 커맨드의 응답으로서 오너쉽 회수 영역(402)에 저장된 회수 확인 데이터를 호스트 프로세서(110)에게 전송할 수 있다. 한편, 오너쉽이 호스트 프로세서(110)에게 귀속되기 전에, 제2 호스트 데이터 패스(HD2)는 제1 호스트 데이터 패스(HD1)와 연결되어 있으므로, 제어부(210)는 회수 확인 데이터를 제2 호스트 데이터 패스(HD2) 및 제1 호스트 데이터 패스(HD1)를 통해 호스트 프로세서(110)로 전송할 수 있다.The control unit 210 stores the number of confirmation data stored in the ownership collection area 402 as a response to the read command before assigning the ownership to the host processor 110, that is, before changing the data path and the command path of the interface unit 220. To the host processor 110. On the other hand, before the ownership is attributed to the host processor 110, since the second host data path HD2 is connected to the first host data path HD1, the control unit 210 returns the recovery confirmation data to the second host data path. The data may be transmitted to the host processor 110 through the HD2 and the first host data path HD1.

그리고, 제어부(210)는 호스트 프로세서(110)와 프로세서(120)의 메일 박스(145)로의 다양한 액세스들을 처리할 수 있다.In addition, the controller 210 may process various accesses of the host processor 110 and the processor 120 to the mailbox 145.

우선, 제어부(210)는 호스트 프로세서(110)의 제어에 따라 작업 정보를 메일 박스(145)의 작업 정보 영역(403)에 저장할 수 있다. First, the controller 210 may store job information in the job information area 403 of the mailbox 145 under the control of the host processor 110.

제어부(210)는 프로세서(120)의 제어에 따라 메일 박스(145)의 작업 정보 영역(403)에 저장된 작업 정보를 프로세서(120)에게 전송할 수 있다.The controller 210 may transmit the job information stored in the job information area 403 of the mailbox 145 to the processor 120 under the control of the processor 120.

제어부(210)는 프로세서(120)의 제어에 따라 프로세서(120)의 상태 정보를 메일 박스(145)의 상태 정보 영역(404)에 저장할 수 있다. 실시 예에 따라, 제어부(210)는 프로세서(120)의 제어에 따라 공유 메모리(130)를 직접적으로 액세스하므로, 프로세서(120)의 작업의 잔여 처리량을 알 수 있고, 따라서, 제어부(210)는 상태 정보 영역(404)에 프로세서(120)의 상태 정보를 프로세서(120)의 제어와 무관하게 저장할 수 있다.The controller 210 may store state information of the processor 120 in the state information area 404 of the mailbox 145 under the control of the processor 120. According to an embodiment, since the controller 210 directly accesses the shared memory 130 under the control of the processor 120, the controller 210 may know the remaining throughput of the task of the processor 120, and therefore, the controller 210 may The state information of the processor 120 may be stored in the state information area 404 regardless of the control of the processor 120.

제어부(210)는 호스트 프로세서(110)의 제어에 따라 메일 박스(145)의 상태 정보 영역(404)에 저장된 상태 정보를 호스트 프로세서(110)에게 전송할 있다.The controller 210 may transmit the state information stored in the state information area 404 of the mailbox 145 to the host processor 110 under the control of the host processor 110.

제어부(210)는 프로세서(120)의 제어에 따라 프로세서(120)가 처리한 작업 결과 데이터를 메일 박스(145)의 작업 결과 데이터 영역(405)에 저장할 수 있다.The controller 210 may store the job result data processed by the processor 120 in the job result data area 405 of the mailbox 145 under the control of the processor 120.

제어부(210)는 호스트 프로세서(110)의 제어에 따라 메일 박스(145)의 작업 결과 데이터 영역(405)에 저장된 작업 결과 데이터를 호스트 프로세서(110)에게 전송할 수 있다.The controller 210 may transmit the job result data stored in the job result data area 405 of the mailbox 145 to the host processor 110 under the control of the host processor 110.

한편, 제어부(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 controller 210 may interface between the processor 120 and the shared memory when ownership is attributed to the processor 120. For example, when the processor 120 is a hardware accelerator, the controller 210 does not generate a command according to the interface protocol of the shared memory 130, but instead generates the command according to the instruction of the processor 120. The shared memory 130 may be transferred. According to an embodiment, the processor 120 may generate a command according to the interface protocol of the shared memory 130, and in this case, the controller 210 may transfer the command generated by the processor 120 to the shared memory 130. Can be. In summary, when ownership is attributed to the processor 120, the processor 120 may access the shared memory 130 through the controller 210. Accordingly, when ownership is attributed to the processor 120 as described below, the controller 210 may control the interface unit 220 to activate a path between the controller 210 and the shared memory 130.

제어부(210)는 오너쉽이 호스트 프로세서(110)와 프로세서(120) 중 누구에게 귀속되어 있는지에 따라, 호스트 프로세서(110), 제어부(210), 및 공유 메모리(130) 사이에서 패스를 활성화하도록 인터페이스부(220)를 제어할 수 있다.The controller 210 interfaces to activate a path between the host processor 110, the controller 210, and the shared memory 130, depending on which ownership belongs to the host processor 110 or the processor 120. The unit 220 may be controlled.

구체적으로, 오너쉽이 호스트 프로세서(110)에게 귀속될 때, 제어부(210)는 호스트 프로세서(110)와 공유 메모리(130) 사이의 패스를 활성화시키도록 인터페이스부(220)를 제어할 수 있다. In detail, when ownership is attributed to the host processor 110, the controller 210 may control the interface unit 220 to activate a path between the host processor 110 and the shared memory 130.

오너쉽이 프로세서(120)에게 귀속될 때, 제어부(210)는 호스트 프로세서(110)와 공유 메모리(130) 사이의 패스를 비활성화시키고, 제어부(210)와 공유 메모리(130) 사이의 패스를 활성화시키도록 인터페이스부(220)를 제어할 수 있다. 프로세서(120)는 오너쉽을 소유할 때, 제어부(210)를 통해 공유 메모리(130)를 액세스할 수 있다.When ownership is attributed to the processor 120, the controller 210 deactivates a path between the host processor 110 and the shared memory 130, and activates a path between the controller 210 and the shared memory 130. The interface unit 220 may be controlled so that When the processor 120 owns the ownership, the processor 120 may access the shared memory 130 through the controller 210.

또한, 오너쉽이 프로세서(120)에게 귀속될 때, 제어부(210)는, 호스트 프로세서(110)와 제어부(210) 사이의 패스를 활성화시키도록 인터페이스부(220)를 제어할 수 있다. 따라서, 오너쉽이 프로세서(120)에게 귀속된 동안 호스트 프로세서(110)는 제어부(210)의 메일 박스(145)에 작업 정보를 저장하고, 메일 박스(145)로부터 상태 정보 및 작업 결과 데이터를 리드하는 것이 가능할 수 있다.In addition, when ownership is attributed to the processor 120, the controller 210 may control the interface unit 220 to activate a path between the host processor 110 and the controller 210. Accordingly, while ownership is attributed to the processor 120, the host processor 110 stores the job information in the mailbox 145 of the controller 210 and reads the status information and the job result data from the mailbox 145. It may be possible.

인터페이스부(220)는 제어부(210)의 제어에 따라 호스트 프로세서(110), 제어부(210) 및 공유 메모리(130) 사이에서 패스를 형성하여 데이터 및 커맨드를 전송할 수 있다. 구체적으로, 호스트 프로세서(110)가 오너쉽을 소유할 때, 인터페이스부(220)는 제어부(210)의 제어에 따라 호스트 프로세서(110)와 공유 메모리(130) 사이의 패스를 활성화시킬 수 있다. 프로세서(120)가 오너쉽을 소유할 때, 인터페이스부(220)는 제어부(210)의 제어에 따라 호스트 프로세서(110)와 공유 메모리(130) 사이의 패스를 비활성화시키고, 제어부(210)와 공유 메모리(130) 사이의 패스를 활성화시키고 제어부(210)와 호스트 프로세서(110) 사이의 패스를 활성화시킬 수 있다.The interface unit 220 may form a path between the host processor 110, the controller 210, and the shared memory 130 under the control of the controller 210 to transmit data and commands. In detail, when the host processor 110 owns the ownership, the interface unit 220 may activate a path between the host processor 110 and the shared memory 130 under the control of the controller 210. When the processor 120 owns the ownership, the interface unit 220 deactivates a path between the host processor 110 and the shared memory 130 under the control of the controller 210, and controls the controller 210 and the shared memory. The path between 130 may be activated and the path between the controller 210 and the host processor 110 may be activated.

인터페이스부(220)는 데이터 드라이버(211) 및 커맨드 먹스(212)를 포함할 수 있다. The interface unit 220 may include a data driver 211 and a command mux 212.

데이터 드라이버(211)는 호스트 프로세서(110)와 제1 호스트 데이터 패스(HD1)를 통해 연결될 수 있다. 데이터 드라이버(211)는 공유 메모리(130)와 제1 메모리 데이터 패스(MD1)를 통해 연결될 수 있다. 데이터 드라이버(211)는 제어부(210)와 제2 호스트 데이터 패스(HD2) 및 제2 메모리 데이터 패스(MD2)를 통해 연결될 수 있다.The data driver 211 may be connected to the host processor 110 through the first host data path HD1. The data driver 211 may be connected to the shared memory 130 through the first memory data path MD1. The data driver 211 may be connected to the controller 210 through the second host data path HD2 and the second memory data path MD2.

오너쉽이 호스트 프로세서(110)에게 귀속될 때, 데이터 드라이버(211)는 제어부(210)의 제어에 따라 호스트 프로세서(110)와 공유 메모리(130) 사이의 데이터 패스를 활성화시킬 수 있다. 구체적으로, 데이터 드라이버(211)는 제1 호스트 데이터 패스(HD1)와 제1 메모리 데이터 패스(MD1)를 연결함으로써 호스트 프로세서(110)와 공유 메모리(130) 사이의 데이터 패스를 활성화시킬 수 있다.When ownership is attributed to the host processor 110, the data driver 211 may activate a data path between the host processor 110 and the shared memory 130 under the control of the controller 210. In detail, the data driver 211 may activate the data path between the host processor 110 and the shared memory 130 by connecting the first host data path HD1 and the first memory data path MD1.

또한, 오너쉽이 프로세서(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 processor 120, the data driver 211 deactivates the data path between the host processor 110 and the shared memory 130 under the control of the controller 210, and the host processor 110. ) And a data path between the controller 210 and the controller 210, and a data path between the shared memory 130 and the controller 210. In detail, the data driver 211 may activate the data path between the host processor 110 and the controller 210 by connecting the first host data path HD1 and the second host data path HD2. The data driver 211 may activate the data path between the shared memory 130 and the controller 210 by connecting the first memory data path MD1 and the second memory data path MD2.

커맨드 먹스(212)는 호스트 프로세서(110)와 호스트 커맨드 패스(HC)를 통해 연결될 수 있다. 커맨드 먹스(212)는 제어부(210)와 프로세서 커맨드 패스(PC)를 통해 연결될 수 있다. 커맨드 먹스(212)는 공유 메모리(130)와 메모리 커맨드 패스(MC)를 통해 연결될 수 있다.The command mux 212 may be connected to the host processor 110 through a host command path HC. The command mux 212 may be connected to the controller 210 through a processor command path PC. The command mux 212 may be connected to the shared memory 130 through the memory command path MC.

오너쉽이 호스트 프로세서(110)에게 귀속될 때, 커맨드 먹스(212)는 제어부(210)의 제어에 따라 호스트 프로세서(110)와 공유 메모리(130) 사이의 커맨드 패스를 활성화시킬 수 있다. 구체적으로, 커맨드 먹스(212)는 호스트 커맨드 패스(HC)와 메모리 커맨드 패스(MC)를 연결함으로써 호스트 프로세서(110)와 공유 메모리(130) 사이의 커맨드 패스를 활성화시킬 수 있다.When ownership is attributed to the host processor 110, the command mux 212 may activate a command path between the host processor 110 and the shared memory 130 under the control of the controller 210. In detail, the command mux 212 may activate the command path between the host processor 110 and the shared memory 130 by connecting the host command path HC and the memory command path MC.

또한, 오너쉽이 프로세서(120)에게 귀속될 때, 커맨드 먹스(212)는 제어부(210)의 제어에 따라 호스트 프로세서(110)와 공유 메모리(130) 사이의 커맨드 패스를 비활성화시키고, 제어부(210)와 공유 메모리(130) 사이의 커맨드 패스를 활성화시킬 수 있다. 구체적으로, 커맨드 먹스(212)는 프로세서 커맨드 패스(PC)와 메모리 커맨드 패스(MC)를 연결함으로써 제어부(210)와 공유 메모리(130) 사이의 커맨드 패스를 활성화시킬 수 수 있다.In addition, when ownership is attributed to the processor 120, the command mux 212 deactivates a command path between the host processor 110 and the shared memory 130 under the control of the controller 210, and the controller 210. And a command path between the shared memory 130 and the shared memory 130. In detail, the command mux 212 may activate a command path between the controller 210 and the shared memory 130 by connecting the processor command path PC and the memory command path MC.

결국, 호스트 프로세서(110)와 프로세서(120) 사이에서 오너쉽이 이전되고 회수될 때마다, 호스트 프로세서(110), 제어부(210) 및 공유 메모리(130) 사이에서 데이터 패스 및 커맨드 패스가 변경될 수 있다.As a result, whenever the ownership is transferred and recovered between the host processor 110 and the processor 120, the data path and the command path may be changed between the host processor 110, the controller 210, and the shared memory 130. have.

도6 내지 도13은 본 발명의 실시 예에 따라 메모리 컨트롤러(140)가 호스트 프로세서(110), 프로세서(120), 및 공유 메모리(130) 사이에서 인터페이싱하는 방법을 설명하기 위한 도면들이다.6 to 13 are diagrams for describing a method in which the memory controller 140 interfaces between the host processor 110, the processor 120, and the shared memory 130 according to an embodiment of the present invention.

우선 도6은 본 발명의 실시 예에 따라 호스트 프로세서(110)가 공유 메모리(130)에 작업 데이터를 저장하는 방법을 도시하는 도면이다.6 is a diagram illustrating a method in which the host processor 110 stores working data in the shared memory 130 according to an embodiment of the present invention.

도6을 참조하면, 호스트 프로세서(110)가 오너쉽을 소유한 상태일 수 있다. Referring to FIG. 6, the host processor 110 may have ownership.

호스트 프로세서(110)가 오너쉽을 소유할 때, 데이터 드라이버(211)는 제어부(210)의 제어에 따라 제1 호스트 데이터 패스(HD1)와 제1 메모리 데이터 패스(MD1)를 연결함으로써 호스트 프로세서(110)와 공유 메모리(130) 사이의 데이터 패스를 활성화시킬 수 있다. When the host processor 110 owns the ownership, the data driver 211 connects the first host data path HD1 and the first memory data path MD1 under the control of the controller 210 to control the host processor 110. ) And the shared memory 130 may be activated.

호스트 프로세서(110)가 오너쉽을 소유할 때, 커맨드 먹스(212)는 제어부(210)의 제어에 따라 호스트 커맨드 패스(HC)와 메모리 커맨드 패스(MC)를 연결함으로써 호스트 프로세서(110)와 공유 메모리(130) 사이의 커맨드 패스를 활성화시킬 수 있다. 도6에서 호스트 프로세서(110)와 공유 메모리(130) 사이를 연결하며 활성화된 패스는 회색으로 채워져 있다.When the host processor 110 owns the ownership, the command mux 212 connects the host command path HC and the memory command path MC under the control of the controller 210 to share the memory with the host processor 110. Command paths between 130 may be activated. In FIG. 6, an active path connecting between the host processor 110 and the shared memory 130 is filled in gray.

따라서, 호스트 프로세서(110)는 인터페이스부(220)를 통해 공유 메모리(130)와 연결되므로 공유 메모리(130)를 액세스하여 작업을 처리할 수 있다. 예를 들어, 호스트 프로세서(110)는 프로세서(120)에게 지시할 작업의 작업 데이터를 공유 메모리(130)에 저장하기 위해, 라이트 커맨드를 호스트 커맨드 패스(HC)로 전송하고 작업 데이터를 제1 호스트 데이터 패스(HD1)로 전송할 수 있다.Therefore, since the host processor 110 is connected to the shared memory 130 through the interface unit 220, the host processor 110 may access the shared memory 130 to process a job. For example, the host processor 110 transmits a write command to the host command path HC and transmits the job data to the first host to store the job data of the job to be instructed by the processor 120 in the shared memory 130. The data path HD1 can be transmitted.

도7은 본 발명의 실시 예에 따라 호스트 프로세서(110)가 오너쉽을 프로세서(120)에게 이전하는 방법을 도시하는 도면이다.7 is a diagram illustrating a method for transferring ownership to the processor 120 by the host processor 110 according to an exemplary embodiment of the present invention.

도7을 참조하면, 호스트 프로세서(110)는 오너쉽을 프로세서(120)에게 이전하기 위해, 리드 커맨드와 메일 박스(145)의 오너쉽 이전 영역(401)의 어드레스(AD-TR)를 호스트 커맨드 패스(HC)를 통해 제어부(210)로 전송할 수 있다. Referring to FIG. 7, the host processor 110 transfers the read command and the address AD-TR of the ownership transfer area 401 of the mailbox 145 to the host 120 in order to transfer ownership to the processor 120. HC) may be transmitted to the controller 210.

도8은 본 발명의 실시 예에 따라 제어부(210)가 오너쉽을 프로세서(120)에게 귀속시키는 방법을 도시하는 도면이다.8 is a diagram illustrating a method in which the controller 210 assigns ownership to the processor 120 according to an embodiment of the present invention.

도8을 참조하면, 제어부(210)는 호스트 커맨드 패스(HC)를 통해 전송된 리드 커맨드와 메일 박스(145)의 오너쉽 이전 영역(401)의 어드레스(AD-TR)에 응답하여, 프로세서(120)에게 오너쉽을 귀속시킬 수 있다. 그리고, 제어부(210)는 오너쉽 귀속의 변경에 따라 인터페이스부(220)가 데이터 패스 및 커맨드 패스를 변경하도록 제어할 수 있다.Referring to FIG. 8, the controller 210 responds to the read command transmitted through the host command path HC and the address AD-TR of the previous ownership area 401 of the mailbox 145. Ownership can be attributed to). The controller 210 may control the interface unit 220 to change the data path and the command path according to the change of ownership.

구체적으로, 프로세서(120)가 오너쉽을 소유할 때, 데이터 드라이버(211)는 제어부(210)의 제어에 따라 제1 메모리 데이터 패스(MD1)와 제2 메모리 데이터 패스(MD2)를 연결함으로써 공유 메모리(130)와 제어부(210) 사이의 데이터 패스를 활성화시킬 수 있다.Specifically, when the processor 120 owns the ownership, the data driver 211 connects the first memory data path MD1 and the second memory data path MD2 under the control of the controller 210 to share the memory. The data path between the 130 and the controller 210 may be activated.

그리고, 데이터 드라이버(211)는 제어부(210)의 제어에 따라 제1 호스트 데이터 패스(HD1)와 제2 호스트 데이터 패스(HD2)를 연결함으로써 호스트 프로세서(110)와 제어부(210) 사이의 데이터 패스를 활성화시킬 수 있다. The data driver 211 connects the first host data path HD1 and the second host data path HD2 under the control of the control unit 210 to control the data path between the host processor 110 and the control unit 210. Can be activated.

그리고, 커맨드 먹스(212)는 제어부(210)의 제어에 따라 프로세서 커맨드 패스(PC)와 메모리 커맨드 패스(MC)를 연결함으로써 제어부(210)와 공유 메모리(130) 사이의 커맨드 패스를 활성화시킬 수 있다.The command mux 212 may activate the command path between the controller 210 and the shared memory 130 by connecting the processor command path PC and the memory command path MC under the control of the controller 210. have.

결과적으로, 도8에서 호스트 프로세서(110)와 제어부(210) 사이를 연결하며 활성화된 패스는 회색으로 채워져 있고, 공유 메모리(130)와 제어부(210) 사이를 연결하며 활성화된 패스는 빗금으로 채워져 있다.As a result, in FIG. 8, the active path between the host processor 110 and the controller 210 is filled in gray, and the active path between the shared memory 130 and the controller 210 is filled with hatched lines. have.

한편, 제어부(210)는 호스트 프로세서(110)와 데이터 패스가 연결되었으므로, 오너쉽 이전을 위한 리드 커맨드에 응답하여 오너쉽 이전 영역(401)에 저장된 이전 확인 데이터를 호스트 프로세서(110)로 전송할 수 있다.Meanwhile, since the data path is connected to the host processor 110, the controller 210 may transmit the previous confirmation data stored in the ownership ownership area 401 to the host processor 110 in response to a read command for ownership transfer.

도9는 본 발명의 실시 예에 따라 호스트 프로세서(110)가 메일 박스(145)에 작업 정보를 저장하는 방법을 도시하는 도면이다.9 is a diagram illustrating a method of storing, by the host processor 110, job information in a mailbox 145 according to an embodiment of the present invention.

도9를 참조하면, 호스트 프로세서(110)는 프로세서(120)에게 작업을 지시하기 위해, 라이트 커맨드와 메일 박스(145)의 작업 정보 영역(403)의 어드레스(AD-WI)를 호스트 커맨드 패스(HC)를 통해 제어부(210)로 전송하고, 작업 정보를 제1 호스트 데이터 패스(HD1)와 제2 호스트 데이터 패스(HD2)를 통해 제어부(210)로 전송할 수 있다.Referring to FIG. 9, the host processor 110 sends a write command and an address AD-WI in the job information area 403 of the mailbox 145 to instruct a job to the processor 120. The control unit 210 may transmit the information to the control unit 210 through the HC, and transmit the job information to the control unit 210 through the first host data path HD1 and the second host data path HD2.

제어부(210)는 호스트 커맨드 패스(HC)를 통해 전송된 라이트 커맨드에 응답하여, 메일 박스(145)의 작업 정보 영역(403)에 작업 정보를 저장할 수 있다. 미도시되었지만, 제어부(210)는 프로세서(120)에게 작업 정보 영역(403)에 작업 정보가 저장되었음을 알려줄 수 있다. The controller 210 may store job information in the job information area 403 of the mailbox 145 in response to the write command transmitted through the host command path HC. Although not shown, the controller 210 may inform the processor 120 that job information is stored in the job information area 403.

도10은 본 발명의 실시 예에 따라 프로세서(120)가 메일 박스(145)로부터 작업 정보를 리드하는 방법을 도시하는 도면이다.10 is a diagram illustrating a method in which the processor 120 reads job information from the mailbox 145 according to an embodiment of the present invention.

도10을 참조하면, 프로세서(120)는 메일 박스(145)의 작업 정보 영역(403)에 저장된 작업 정보를 리드할 수 있다. 프로세서(120)는 리드된 작업 정보를 통해 공유 메모리(130)에서 처리할 데이터가 저장된 위치를 확인할 수 있다.Referring to FIG. 10, the processor 120 may read job information stored in the job information area 403 of the mailbox 145. The processor 120 may identify a location where data to be processed in the shared memory 130 is stored through read job information.

도11은 본 발명의 실시 예에 따라 프로세서(120)가 작업 데이터를 처리하는 방법을 도시하는 도면이다.11 is a diagram illustrating a method in which the processor 120 processes job data according to an exemplary embodiment of the present invention.

도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 processor 120 is connected to the shared memory 130 through the controller 210 and the interface unit 220, the processor 120 may access the shared memory 130 to process work data. The processor 120 may read and process work data from the shared memory 130 and store the work result data in the shared memory 130. The processor 120 may exchange work data and work result data with the shared memory 130 through the controller 210, the first memory data path MD1, and the second memory data path MD2. To this end, the controller 210 may generate a read command and a write command under the control of the processor 120 and transmit the read command and the write command to the shared memory 130 through the processor command path PC and the memory command path MC.

프로세서(120)가 작업을 처리하는 동안 호스트 프로세서(110)는 프로세서(120)의 상태 정보를 확인하기 위해, 리드 커맨드와 메일 박스(145)의 상태 정보 영역(404)의 어드레스(AD-ST)를 호스트 커맨드 패스(HC)를 통해 제어부(210)로 전송할 수 있다.While the processor 120 is processing the job, the host processor 110 checks the status information of the processor 120, and reads the address (AD-ST) of the status information area 404 of the mailbox 145. May be transmitted to the controller 210 through the host command path HC.

제어부(210)는 상태 정보 리드를 위한 리드 커맨드에 응답하여 상태 정보를 호스트 프로세서(110)로 전송할 수 있다. 호스트 프로세서(110)는 상태 정보를 확인하여 프로세서(120)의 작업이 완료되었음을 확인할 수 있다.The controller 210 may transmit the status information to the host processor 110 in response to a read command for reading the status information. The host processor 110 may check the state information to confirm that the operation of the processor 120 is completed.

도12는 본 발명의 실시 예에 따라 호스트 프로세서(110)가 프로세서(120)로부터 오너쉽을 회수하는 방법을 도시하는 도면이다. 12 is a diagram illustrating a method in which the host processor 110 recovers ownership from the processor 120 according to an embodiment of the present invention.

도12를 참조하면, 호스트 프로세서(110)는 상태 정보를 확인하여 프로세서(120)의 작업이 완료되었음을 확인한 뒤, 오너쉽을 프로세서(120)로부터 회수하기 위해, 리드 커맨드와 메일 박스(145)의 오너쉽 회수 영역(402)의 어드레스(AD-RS)를 호스트 커맨드 패스(HC)를 통해 제어부(210)로 전송할 수 있다.Referring to FIG. 12, the host processor 110 checks the status information to confirm that the work of the processor 120 is completed, and then, in order to recover the ownership from the processor 120, the ownership of the read command and the mail box 145. The address AD-RS of the recovery area 402 may be transmitted to the controller 210 through the host command path HC.

제어부(210)는 오너쉽 확인을 위한 리드 커맨드에 응답하여 오너쉽 회수 영역(402)에 저장된 회수 확인 데이터를 호스트 프로세서(110)로 전송할 수 있다.The controller 210 may transmit the collection confirmation data stored in the ownership collection area 402 to the host processor 110 in response to the read command for confirming the ownership.

도13은 본 발명의 실시 예에 따라 호스트 프로세서(110)가 공유 메모리(130)로부터 작업 결과 데이터를 리드하는 방법을 도시하는 도면이다.FIG. 13 is a diagram illustrating a method in which the host processor 110 reads operation result data from the shared memory 130 according to an embodiment of the present disclosure.

도13을 참조하면, 제어부(210)는 호스트 커맨드 패스(HC)를 통해 전송된 리드 커맨드와 메일 박스(145)의 오너쉽 회수 영역(402)의 어드레스(AD-RS)에 응답하여, 호스트 프로세서(110)에게 오너쉽을 귀속시킬 수 있다. 그리고, 제어부(210)는 오너쉽 귀속의 변경에 따라 인터페이스부(220)가 데이터 패스 및 커맨드 패스를 변경하도록 제어할 수 있다. 결과적으로, 인터페이스부(220)는 도6에 도시된 바와 같이 데이터 패스 및 커맨드 패스를 변경할 수 있다.Referring to FIG. 13, the controller 210 responds to a read command transmitted through the host command path HC and an address AD-RS of the ownership recovery area 402 of the mailbox 145. Ownership can be attributed to 110). The controller 210 may control the interface unit 220 to change the data path and the command path according to the change of ownership. As a result, the interface unit 220 may change the data path and the command path as shown in FIG. 6.

따라서, 호스트 프로세서(110)는 인터페이스부(220)를 통해 공유 메모리(130)와 연결되므로 공유 메모리(130)로부터 프로세서(120)의 작업 결과 데이터를 리드할 수 있다. 호스트 프로세서(110)는 작업 결과 데이터를 리드하기 위해, 리드 커맨드를 호스트 커맨드 패스(HC)로 전송하고 작업 결과 데이터를 제1 메모리 데이터 패스(MD1) 및 제1 호스트 데이터 패스(HD1)를 통해 공유 메모리(130)로부터 전송받을 수 있다.Therefore, since the host processor 110 is connected to the shared memory 130 through the interface unit 220, the host processor 110 may read the operation result data of the processor 120 from the shared memory 130. The host processor 110 transmits a read command to the host command path HC and shares the operation result data through the first memory data path MD1 and the first host data path HD1 to read the operation result data. The memory 130 may be transmitted.

도14는 본 발명의 실시 예에 따라 호스트 프로세서(110)가 메일 박스(145)로부터 작업 결과 데이터를 리드하는 방법을 도시하는 도면이다.14 is a diagram illustrating a method in which the host processor 110 reads job result data from the mailbox 145 according to an embodiment of the present invention.

도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 result data area 405 of the mailbox 145, the host processor 110 sends the job result data to the mailbox 145. Can be read from That is, in the situation of FIG. 11, if it is confirmed that the operation of the processor 120 is completed based on the state information, the host processor 110 may read the operation result data from the mailbox 145 without recovering ownership. The host processor 110 controls the read command and the address AD-RD of the work result data area 405 of the mailbox 145 through the host command path HC to read the work result data. Can be sent to.

도 15는 본 발명의 실시 예에 따른 데이터 처리 시스템(1000)을 예시적으로 도시하는 도면이다. 도 15를 참조하면, 데이터 처리 시스템(1000)은 호스트 장치(1100)와 메모리 시스템(1200)을 포함할 수 있다.15 is a diagram illustrating a data processing system 1000 according to an embodiment of the present invention. Referring to FIG. 15, the data processing system 1000 may include a host device 1100 and a memory system 1200.

호스트 장치(1100)는 인쇄 회로 기판(printed circuit board)과 같은 기판(board) 형태로 구성될 수 있다. 호스트 장치(1100)는 호스트 프로세서(1110) 및 접속 터미널(1120)을 포함할 수 있다. The host device 1100 may be configured in the form of a board such as a printed circuit board. The host device 1100 may include a host processor 1110 and an access terminal 1120.

호스트 프로세서(1110)는 도1의 호스트 프로세서(110)에 대응할 수 있다. The host processor 1110 may correspond to the host processor 110 of FIG. 1.

접속 터미널(1120)은 소켓(socket), 슬롯(slot) 또는 커넥터(connector)를 포함할 수 있고, 메모리 시스템(1200)은 접속 터미널(1120)에 마운트(mount)될 수 있다.The connection terminal 1120 may include a socket, a slot, or a connector, and the memory system 1200 may be mounted to the connection terminal 1120.

메모리 시스템(1200)은 인쇄 회로 기판과 같은 기판 형태로 구성될 수 있다. 메모리 시스템(1200)은 메모리 모듈 또는 메모리 카드로 불릴 수 있다. 메모리 시스템(2200)은 프로세서(1210), 메모리 장치(1220), 메모리 컨트롤러(1230), 및 접속 터미널(1240)을 포함할 수 있다.The memory system 1200 may be configured in the form of a substrate such as a printed circuit board. The memory system 1200 may be called a memory module or a memory card. The memory system 2200 may include a processor 1210, a memory device 1220, a memory controller 1230, and a connection terminal 1240.

프로세서(1210)는 도1의 프로세서(120)에 대응할 수 있다. 메모리 장치(1220)는 도1의 공유 메모리(130)에 대응할 수 있다. 메모리 컨트롤러(1230)는 도1의 메모리 컨트롤러(140)에 대응할 수 있다. The processor 1210 may correspond to the processor 120 of FIG. 1. The memory device 1220 may correspond to the shared memory 130 of FIG. 1. The memory controller 1230 may correspond to the memory controller 140 of FIG. 1.

접속 터미널(1240)은 호스트 장치(1100)의 접속 터미널(1120)에 연결될 수 있다. 접속 터미널(1240)을 통해서, 호스트 장치(1100)와 메모리 시스템(1200) 간에 커맨드, 어드레스, 데이터 등과 같은 신호와, 전원이 전달될 수 있다. 접속 터미널(1240)은 호스트 장치(1100)와 메모리 시스템(1200)의 인터페이스 방식에 따라 다양한 형태로 구성될 수 있다. 접속 터미널(1240)은 메모리 시스템(1200)의 어느 한 변에 배치될 수 있다.The connection terminal 1240 may be connected to the connection terminal 1120 of the host device 1100. Signals such as commands, addresses, data, and the like may be transferred between the host device 1100 and the memory system 1200 through the access terminal 1240. The access terminal 1240 may be configured in various forms according to the interface method between the host device 1100 and the memory system 1200. The connection terminal 1240 may be disposed on one side of the memory system 1200.

도 16은 본 발명의 실시 예에 따른 데이터 처리 시스템(2000)을 예시적으로 도시하는 도면이다. 도 16을 참조하면, 데이터 처리 시스템(2000)은 호스트 장치(2100)와 메모리 시스템(2200)을 포함할 수 있다.16 is a diagram illustrating a data processing system 2000 according to an embodiment of the present invention. Referring to FIG. 16, the data processing system 2000 may include a host device 2100 and a memory system 2200.

호스트 장치(2100)는 인쇄 회로 기판(printed circuit board)과 같은 기판(board) 형태로 구성될 수 있다. 호스트 장치(2100)는 호스트 프로세서(2110)를 포함할 수 있다. 호스트 프로세서(2110)는 도1의 호스트 프로세서(110)에 대응할 수 있다.The host device 2100 may be configured in the form of a board such as a printed circuit board. The host device 2100 may include a host processor 2110. The host processor 2110 may correspond to the host processor 110 of FIG. 1.

메모리 시스템(2200)은 표면 실장형 패키지 형태로 구성될 수 있다. 메모리 시스템(2200)은 솔더 볼(solder ball)(2250)을 통해서 호스트 장치(2100)에 마운트될 수 있다. The memory system 2200 may be configured in the form of a surface mount package. The memory system 2200 may be mounted to the host device 2100 through solder balls 2250.

메모리 시스템(2200)은 프로세서(2210), 메모리 장치(2220) 및 메모리 컨트롤러(2230)를 포함할 수 있다. 프로세서(2210)는 도1의 프로세서(120)에 대응할 수 있다. 메모리 장치(2220)는 도1의 공유 메모리(130)에 대응할 수 있다. 메모리 컨트롤러(2230)는 도1의 메모리 컨트롤러(140)에 대응할 수 있다.The memory system 2200 may include a processor 2210, a memory device 2220, and a memory controller 2230. The processor 2210 may correspond to the processor 120 of FIG. 1. The memory device 2220 may correspond to the shared memory 130 of FIG. 1. The memory controller 2230 may correspond to the memory controller 140 of FIG. 1.

도 17은 본 발명의 실시 예에 따른 데이터 처리 시스템(3000)을 예시적으로 도시하는 도면이다. 도 17을 참조하면, 데이터 처리 시스템(3000)은 호스트 프로세서(3100), 메모리 시스템(3200), 인터포저(3300) 및 반도체 기판(3400)을 포함할 수 있다.17 is a diagram illustrating a data processing system 3000 according to an exemplary embodiment of the present invention. Referring to FIG. 17, the data processing system 3000 may include a host processor 3100, a memory system 3200, an interposer 3300, and a semiconductor substrate 3400.

호스트 프로세서(3100)와 메모리 시스템(3200)은 인터포저(3300)의 일면에 배치될 수 있다.The host processor 3100 and the memory system 3200 may be disposed on one surface of the interposer 3300.

인터포저(3300)는 호스트 프로세서(3100)와 메모리 시스템(3200)을 전기적으로 연결할 수 있다. 인터포저(3300)를 통해서, 호스트 프로세서(3100)와 메모리 시스템(3200) 간에 커맨드, 어드레스, 데이터 등과 같은 신호와, 전원이 전달될 수 있다. 인터포저(3300)는 반도체 기판(3400) 상에 장착될 수 있다.The interposer 3300 may electrically connect the host processor 3100 and the memory system 3200. Signals such as commands, addresses, data, and the like may be transferred between the host processor 3100 and the memory system 3200 through the interposer 3300. The interposer 3300 may be mounted on the semiconductor substrate 3400.

호스트 프로세서(3100)는 도1의 호스트 프로세서(110)에 대응할 수 있다.The host processor 3100 may correspond to the host processor 110 of FIG. 1.

메모리 시스템(3200)은 스택된 로직 반도체 장치(3210)와 메모리 장치(3220)를 포함할 수 있다. 로직 반도체 장치(3210)는 메모리 시스템(3200)의 동작을 제어할 수 있다. 로직 반도체 장치(3210)는 프로세서(3211)와 메모리 컨트롤러(3212)를 포함할 수 있다. 프로세서(3211)는 도1의 프로세서(120)에 대응할 수 있다. 메모리 컨트롤러(3212)는 도1의 메모리 컨트롤러(140)에 대응할 수 있다. The memory system 3200 may include a stacked logic semiconductor device 3210 and a memory device 3220. The logic semiconductor device 3210 may control an operation of the memory system 3200. The logic semiconductor device 3210 may include a processor 3211 and a memory controller 3212. The processor 3211 may correspond to the processor 120 of FIG. 1. The memory controller 3212 may correspond to the memory controller 140 of FIG. 1.

메모리 장치(3220)는 도1의 공유 메모리(130)에 대응할 수 있다.The memory device 3220 may correspond to the shared memory 130 of FIG. 1.

메모리 시스템(3200)은, 예를 들어, HBM(High Bandwidth Memory)를 포함할 수 있다.The memory system 3200 may include, for example, a high bandwidth memory (HBM).

도 18은 본 발명의 실시 예에 따른 데이터 처리 시스템(4150)을 포함하는 네트워크 시스템(4000)을 예시적으로 도시하는 도면이다. 도 18을 참조하면, 네트워크 시스템(4000)은 네트워크(4500)를 통해서 연결된 서버 시스템(4100) 및 복수의 클라이언트 시스템들(4410~4430)을 포함할 수 있다.18 is a diagram illustrating a network system 4000 including a data processing system 4150 according to an embodiment of the present invention. Referring to FIG. 18, the network system 4000 may include a server system 4100 and a plurality of client systems 4410 ˜ 4430 connected through the network 4500.

서버 시스템(4100)은 복수의 클라이언트 시스템들(4410~4430)의 요청에 응답하여 데이터를 서비스할 수 있다. 예를 들면, 서버 시스템(4100)은 복수의 클라이언트 시스템들(4410~4430)로부터 제공된 데이터를 저장할 수 있다. 다른 예로서, 서버 시스템(4100)은 복수의 클라이언트 시스템들(4410~4430)로 데이터를 제공할 수 있다.The server system 4100 may service data in response to a request of the plurality of client systems 4410 to 4430. For example, the server system 4100 may store data provided from the plurality of client systems 4410-4430. As another example, the server system 4100 may provide data to the plurality of client systems 4410-4430.

서버 시스템(4100)은 데이터 처리 시스템(4150)을 포함할 수 있다. 데이터 처리 시스템(4150)은 도 1의 데이터 처리 시스템(100), 도 15의 데이터 처리 시스템(1000), 도 16의 데이터 처리 시스템(2000), 및 도17의 데이터 처리 시스템(3000)으로 구성될 수 있다.Server system 4100 may include a data processing system 4150. The data processing system 4150 may include the data processing system 100 of FIG. 1, the data processing system 1000 of FIG. 15, the data processing system 2000 of FIG. 16, and the data processing system 3000 of FIG. 17. Can be.

본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.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.
제1항에 있어서,
상기 메모리 컨트롤러는,
상기 호스트 프로세서의 상기 메일 박스로의 액세스에 응답하여 상기 오너쉽을 상기 호스트 프로세서 또는 프로세서에게 귀속시키도록 구성된 제어부; 및
상기 제어부의 제어에 따라 상기 호스트 프로세서, 상기 공유 메모리 및 상기 제어부 사이에서 패스를 형성하도록 구성된 인터페이스부를 포함하고,
상기 제어부는 상기 오너쉽 귀속의 변경에 따라 상기 패스를 변경하도록 상기 인터페이스부를 제어하는 데이터 처리 시스템.
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.
제2항에 있어서,
상기 프로세서는 상기 제어부와 연결되고, 상기 오너쉽을 소유할 때 상기 제어부를 통해 상기 공유 메모리를 액세스하는 데이터 처리 시스템.
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.
제2항에 있어서,
상기 제어부는 상기 호스트 프로세서의 상기 메일 박스로의 제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.
제4항에 있어서,
상기 제어부는 상기 제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.
제4항에 있어서
상기 제어부는 상기 호스트 프로세서의 상기 메일 박스로의 제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.
제6항에 있어서
상기 제어부는 상기 제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.
제4항에 있어서,
상기 호스트 프로세서는 상기 오너쉽을 상기 프로세서에게 이전한 뒤, 상기 제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.
제8항에 있어서,
상기 프로세서는 상기 메일 박스로부터 상기 작업 정보를 리드하여 확인하고 상기 제2 작업을 처리하는 데이터 처리 시스템.
The method of claim 8,
And the processor reads and confirms the job information from the mailbox and processes the second job.
제4항에 있어서,
상기 프로세서는 상기 메일 박스에 상기 제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.
제2항에 있어서
상기 호스트 프로세서는 상기 인터페이스부 및 상기 제어부와 호스트 커맨드 패스를 통해 동시에 연결되고, 상기 호스트 커맨드 패스로 상기 공유 메모리 또는 상기 메일 박스에 대한 액세스 커맨드를 전송하는 데이터 처리 시스템.
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.
제11항에 있어서,
상기 호스트 프로세서는 상기 공유 메모리에 할당한 제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.
제1항에 있어서,
상기 메일 박스는 오너쉽 이전 영역을 포함하고,
상기 호스트 프로세서는 상기 오너쉽을 상기 프로세서에게 이전하기 위해 상기 오너쉽 이전 영역에 대한 리드 커맨드를 상기 메모리 컨트롤러로 전송하는 데이터 처리 시스템.
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.
제13항에 있어서
상기 메일 박스는 오너쉽 회수 영역을 더 포함하고,
상기 호스트 프로세서는 상기 오너쉽을 상기 프로세서로부터 회수하기 위해 상기 오너쉽 회수 영역에 대한 리드 커맨드를 상기 메모리 컨트롤러로 전송하는 데이터 처리 시스템.
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.
제1항에 있어서,
상기 메모리 컨트롤러는 상기 메일 박스에 상기 프로세서의 상태 정보를 저장하고,
상기 호스트 프로세서는, 상기 오너쉽을 상기 프로세서에게 이전한 뒤 상기 메일 박스로부터 상기 상태 정보를 리드하여 상기 프로세서가 상기 제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.
제15항에 있어서,
상기 호스트 프로세서는 상기 오너쉽을 회수한 뒤, 상기 메모리 컨트롤러를 통해 상기 공유 메모리로부터 상기 제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.
제17항에 있어서,
상기 메모리 컨트롤러는,
상기 호스트 프로세서의 상기 메일 박스로의 액세스에 응답하여 상기 오너쉽을 상기 호스트 프로세서 또는 프로세서에게 귀속시키도록 구성된 제어부; 및
상기 제어부의 제어에 따라 상기 호스트 프로세서, 상기 공유 메모리 및 상기 제어부 사이에서 패스를 형성하도록 구성된 인터페이스부를 포함하고,
상기 제어부는 상기 오너쉽 귀속의 변경에 따라 상기 패스를 변경하도록 상기 인터페이스부를 제어하는 데이터 처리 시스템.
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.
제18항에 있어서,
상기 프로세서는 상기 제어부와 연결되고, 상기 오너쉽을 소유할 때 상기 제어부를 통해 상기 공유 메모리를 액세스하는 데이터 처리 시스템.
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.
제18항에 있어서,
상기 제어부는 상기 호스트 프로세서의 상기 메일 박스로의 제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.
제20항에 있어서,
상기 제어부는 상기 제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.
제20항에 있어서
상기 제어부는 상기 호스트 프로세서의 상기 메일 박스로의 제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.
제22항에 있어서
상기 제어부는 상기 제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.
제20항에 있어서,
상기 제어부는 상기 오너쉽이 상기 프로세서에게 이전된 뒤, 상기 호스트 프로세서로부터 상기 제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.
제24항에 있어서,
상기 프로세서는 상기 메일 박스로부터 상기 작업 정보를 리드하여 확인하고 상기 제2 작업을 처리하는 데이터 처리 시스템.
The method of claim 24,
And the processor reads and confirms the job information from the mailbox and processes the second job.
제20항에 있어서,
상기 프로세서는 상기 호스트 프로세서가 상기 제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.
제18항에 있어서
상기 인터페이스부와 상기 제어부는 상기 호스트 프로세서와 호스트 커맨드 패스를 통해 동시에 연결되고, 상기 호스트 커맨드 패스로 상기 공유 메모리 또는 상기 메일 박스에 대한 액세스 커맨드를 수신하는 데이터 처리 시스템.
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.
제27항에 있어서,
상기 메일 박스는 상기 공유 메모리에 할당한 제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.
제17항에 있어서,
상기 메일 박스는 오너쉽 이전 영역을 포함하고,
상기 메모리 컨트롤러는 상기 호스트 프로세서로부터 상기 오너쉽 이전 영역에 대한 리드 커맨드를 수신할 때, 상기 오너쉽을 상기 프로세서에게 귀속시키는 데이터 처리 시스템.
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.
제29항에 있어서
상기 메일 박스는 오너쉽 회수 영역을 더 포함하고,
상기 메모리 컨트롤러는 상기 호스트 프로세서로부터 상기 오너쉽 회수 영역에 대한 리드 커맨드를 수신할 때, 상기 오너쉽을 상기 호스트 프로세서에게 귀속시키는 데이터 처리 시스템.
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.
제17항에 있어서,
상기 메모리 컨트롤러는 상기 호스트 프로세서가 리드할 수 있도록 상기 메일 박스에 상기 프로세서의 상태 정보를 저장하는 데이터 처리 시스템.
The method of claim 17,
And the memory controller stores state information of the processor in the mailbox for the host processor to read.
KR1020180032111A 2018-02-28 2018-03-20 Memory system and data processing system including the same KR102545226B1 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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