KR102533147B1 - 데이터 처리 시스템 및 그것의 동작 방법 - Google Patents

데이터 처리 시스템 및 그것의 동작 방법 Download PDF

Info

Publication number
KR102533147B1
KR102533147B1 KR1020180024836A KR20180024836A KR102533147B1 KR 102533147 B1 KR102533147 B1 KR 102533147B1 KR 1020180024836 A KR1020180024836 A KR 1020180024836A KR 20180024836 A KR20180024836 A KR 20180024836A KR 102533147 B1 KR102533147 B1 KR 102533147B1
Authority
KR
South Korea
Prior art keywords
processor
throughput
check
host
ownership
Prior art date
Application number
KR1020180024836A
Other languages
English (en)
Other versions
KR20190103880A (ko
Inventor
남지훈
Original Assignee
에스케이하이닉스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이하이닉스 주식회사 filed Critical 에스케이하이닉스 주식회사
Priority to KR1020180024836A priority Critical patent/KR102533147B1/ko
Priority to US16/210,418 priority patent/US11169953B2/en
Priority to CN202310066589.4A priority patent/CN115994105A/zh
Priority to CN201811509646.7A priority patent/CN110209608B/zh
Publication of KR20190103880A publication Critical patent/KR20190103880A/ko
Priority to US17/510,921 priority patent/US20220058157A1/en
Application granted granted Critical
Publication of KR102533147B1 publication Critical patent/KR102533147B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

데이터 처리 시스템은 작업의 잔여 처리량을 저장하도록 구성된 상태 저장부; 체크 주기에 따른 체크 타이밍마다 상기 상태 저장부로부터 상기 잔여 처리량을 리드하도록 구성된 제1 프로세서; 및 상기 작업을 처리하도록 구성된 제2 프로세서를 포함하되, 상기 제1 프로세서는, 현재 체크 타이밍의 현재 잔여 처리량과 이전 체크 타이밍의 이전 잔여 처리량에 근거하여 체크 주기 처리량을 계산하고, 상기 현재 잔여 처리량과 상기 체크 주기 처리량에 근거하여 상기 체크 주기를 조정한다.

Description

데이터 처리 시스템 및 그것의 동작 방법{DATA PROCESSING SYSTEM AND OPERATING METHOD THEREOF}
본 발명은 데이터 처리 시스템에 관한 것으로, 더욱 상세하게는 공유 메모리를 포함하는 데이터 처리 시스템에 관한 것이다.
데이터 처리 시스템은 데이터를 처리할 수 있는 전자 시스템으로서, 퍼스널 컴퓨터, 랩탑 컴퓨터, 스마트폰, 태블릿 컴퓨터, 디지털 카메라, 게임 콘솔, 네비게이션, 가상현실 장치 및 웨어러블 장치 등을 포함할 수 있다.
데이터 처리 시스템은 메모리 시스템을 포함할 수 있다. 메모리 시스템은 데이터 처리 시스템에서 처리되는 데이터를 저장하도록 구성될 수 있다. 메모리 시스템은 데이터 처리 시스템에 내장되어 동작하거나, 분리 가능한 형태로 제작되어 데이터 처리 시스템에 연결됨으로써 동작할 수 있다. 메모리 시스템은 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) 등으로 구성될 수 있다.
본 발명의 실시 예는 호스트 프로세서와 주변 프로세서가 서로 충돌함이 없이 공유 메모리를 액세스할 수 있는 데이터 처리 시스템을 제공하는 데 있다.
본 발명의 실시 예는 처리중인 작업이 완료되는 타이밍을 보다 적은 파워를 소비하면서 체크하여 후속 작업을 지연없이 진행할 수 있는 데이터 처리 시스템 및 그것의 동작 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 데이터 처리 시스템은 작업의 잔여 처리량을 저장하도록 구성된 상태 저장부; 체크 주기에 따른 체크 타이밍마다 상기 상태 저장부로부터 상기 잔여 처리량을 리드하도록 구성된 제1 프로세서; 및 상기 작업을 처리하도록 구성된 제2 프로세서를 포함하되, 상기 제1 프로세서는, 현재 체크 타이밍의 현재 잔여 처리량과 이전 체크 타이밍의 이전 잔여 처리량에 근거하여 체크 주기 처리량을 계산하고, 상기 현재 잔여 처리량과 상기 체크 주기 처리량에 근거하여 상기 체크 주기를 조정할 수 있다.
본 발명의 실시 예에 따른 데이터 처리 시스템의 동작 방법은 제1 프로세서에 의해, 체크 주기에 따른 체크 타이밍마다 상태 저장부로부터 작업의 잔여 처리량을 리드하는 단계; 제1 프로세서에 의해, 현재 체크 타이밍의 현재 잔여 처리량과 이전 체크 타이밍의 이전 잔여 처리량에 근거하여 체크 주기 처리량을 계산하는 단계; 및 제1 프로세서에 의해, 상기 현재 잔여 처리량과 상기 체크 주기 처리량에 근거하여 상기 체크 주기를 조정하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 처리 시스템은 호스트 프로세서와 주변 프로세서가 서로 충돌함이 없이 공유 메모리를 액세스할 수 있다.
본 발명의 실시 예에 따른 데이터 처리 시스템 및 그것의 동작 방법은 처리중인 작업이 완료되는 타이밍을 보다 적은 파워를 소비하면서 체크하여 후속 작업을 지연없이 진행할 수 있다.
도1은 본 발명의 실시 예에 따른 데이터 처리 시스템을 도시하는 블록도,
도2는 본 발명의 실시 예에 따라, 호스트 프로세서 또는 프로세서가 공유 메모리에 대한 오너쉽을 교대로 독점하는 상황을 도시하는 도면,
도3은 본 발명의 실시 예에 따라 호스트 프로세서 및 프로세서의 동작 절차를 간략하게 도시하는 도면,
도4는 본 발명의 실시 예에 따라, 메일 박스의 구성을 설명하기 위한 도면,
도5는 본 발명의 실시 예에 따른 메모리 컨트롤러를 상세하게 도시하는 블록도,
도6은 본 발명의 실시 예에 따라 호스트 프로세서가 공유 메모리에 작업 데이터를 저장하는 방법을 도시하는 도면,
도7은 본 발명의 실시 예에 따라 호스트 프로세서가 오너쉽을 프로세서에게 이전하는 방법을 도시하는 도면,
도8은 본 발명의 실시 예에 따라 제어부가 오너쉽을 프로세서에게 귀속시키는 방법을 도시하는 도면,
도9는 본 발명의 실시 예에 따라 호스트 프로세서가 메일 박스에 작업 정보를 저장하는 방법을 도시하는 도면,
도10은 본 발명의 실시 예에 따라 프로세서가 메일 박스로부터 작업 정보를 리드하는 방법을 도시하는 도면,
도11은 본 발명의 실시 예에 따라 프로세서가 작업 데이터를 처리하는 방법을 도시하는 도면,
도12는 본 발명의 실시 예에 따라 호스트 프로세서가 프로세서로부터 오너쉽을 회복하는 방법을 도시하는 도면,
도13은 본 발명의 실시 예에 따라 호스트 프로세서가 공유 메모리로부터 작업 결과 데이터를 리드하는 방법을 도시하는 도면,
도14는 본 발명의 실시 예에 따라 호스트 프로세서가 메일 박스로부터 작업 결과 데이터를 리드하는 방법을 도시하는 도면,
도15는 본 발명의 실시 예에 따른 데이터 처리 시스템을 도시하는 블록도,
도16은 본 발명의 실시 예에 따라 제2 프로세서가 처리중인 작업의 잔여 처리량을 예시적으로 설명하기 위한 도면,
도17은 본 발명의 실시 예에 따라 도8의 제1 프로세서가 잔여 처리량의 체크 주기를 조정하는 방법을 도시하는 도면,
도18은 본 발명의 실시 예에 따른 데이터 처리 시스템의 동작 방법을 예시적으로 도시하는 순서도,
도19는 본 발명의 실시 예에 따른 제1 프로세서가 체크 주기를 조정하는 방법을 예시적으로 도시하는 순서도,
도20은 본 발명의 실시 예에 따른 데이터 처리 시스템을 예시적으로 도시하는 도면,
도21은 본 발명의 실시 예에 따른 데이터 처리 시스템을 예시적으로 도시하는 도면,
도22는 본 발명의 실시 예에 따른 데이터 처리 시스템을 예시적으로 도시하는 도면,
도23은 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 네트워크 시스템을 예시적으로 도시하는 도면이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 본 명세서에서 특정한 용어들이 사용되었으나. 이는 본 발명을 설명하기 위한 목적에서 사용된 것이며, 의미 한정이나 특허 청구 범위에 기재된 본 발명의 권리 범위를 제한하기 위하여 사용된 것은 아니다.
본 명세서에서 '및/또는'이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, '연결되는/결합되는'이란 표현은 다른 구성 요소와 직접적으로 연결되거나 다른 구성 요소를 통해서 간접적으로 연결되는 것을 포함하는 의미로 사용된다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 '포함한다' 또는 '포함하는'으로 언급된 구성 요소, 단계, 동작 및 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및 소자의 존재 또는 추가를 의미한다.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.
도1은 본 발명의 실시 예에 따른 데이터 처리 시스템(100)을 도시하는 블록도이다.
도1을 참조하면, 데이터 처리 시스템(100)은 호스트 프로세서(110), 프로세서(120), 공유 메모리(130) 및 메모리 컨트롤러(140)를 포함할 수 있다.
호스트 프로세서(110)는 데이터 처리 시스템(100)을 전반적으로 제어할 수 있다. 호스트 프로세서(110)는 공유 메모리(130)에 대한 오너쉽을 독점하고 공유 메모리(130)를 액세스함으로써 작업을 처리할 수 있다. 또한, 호스트 프로세서(110)는 프로세서(120)에게 작업의 처리를 지시하면서 오너쉽을 프로세서(120)에게 이전할 수 있다.
프로세서(120)는 호스트 프로세서(110)에 의해 지시된 작업을 처리할 수 있다. 프로세서(120)는 호스트 프로세서(110)로부터 오너쉽을 이전받아 오너쉽을 독점하고 공유 메모리(130)를 액세스함으로써 작업을 처리할 수 있다. 즉, 본 발명에서 오너쉽은 호스트 프로세서(110)와 프로세서(120)가 서로 충돌 없이 공유 메모리(130)를 독점적으로 액세스할 수 있는 권한일 수 있다. 호스트 프로세서(110)와 프로세서(120)는 메모리 컨트롤러(140)를 통해 공유 메모리(130)를 액세스할 수 있다.
한편, 호스트 프로세서(110)는 오너쉽을 프로세서(120)에게 이전한 후, 메모리 컨트롤러(140)로부터 프로세서(120)의 상태 정보를 확인할 수 있다. 호스트 프로세서(110)는 프로세서(120)가 작업을 종료한 것으로 판단될 때, 오너쉽을 프로세서(120)로부터 회복하여 다시 독점할 수 있다. 호스트 프로세서(110)는 오너쉽을 독점한 뒤, 공유 메모리(130)로부터 프로세서(120)의 작업 결과 데이터를 리드할 수 있다.
상술한 바와 같이, 오너쉽이 호스트 프로세서(110) 및 프로세서(120) 중 누구에게 있는지에 따라 공유 메모리(130)의 액세스는 제한될 수 있다. 이것은 메모리 컨트롤러(130)가 오너쉽을 호스트 프로세서(110) 및 프로세서(120) 중 어느 하나에게 귀속시킴으로써 가능하다. 메모리 컨트롤러(130)는 호스트 프로세서(110)의 제어에 따라 오너쉽을 호스트 프로세서(110) 및 프로세서(120) 중 어느 하나에게 귀속시키면서 공유 메모리(130)에 대한 패스를 변경할 수 있다. 호스트 프로세서(110)는 오너쉽의 귀속을 변경하기 위해, 즉, 오너쉽을 프로세서(120)에게 이전하거나 프로세서(120)로부터 회복하기 위해, 소정 커맨드를 메모리 컨트롤러(140)로 전송할 수 있다.
호스트 프로세서(110) 및 프로세서(120)는 중앙 처리 장치, 그래픽 처리 장치, 마이크로 프로세서, 애플리케이션 프로세서, 가속 처리 장치(Accelerated Processing Unit) 및 운영 체제 등을 포함할 수 있다.
공유 메모리(130)는 호스트 프로세서(110)와 프로세서(120)에 의해 공유될 수 있다. 공유 메모리(130)는 호스트 프로세서(110)와 프로세서(120) 중 오너쉽을 독점하는 어느 하나에 의해 메모리 컨트롤러(140)를 통해 액세스될 수 있다.
메모리 컨트롤러(140)는 호스트 프로세서(110), 프로세서(120) 및 공유 메모리(130) 사이에 연결될 수 있다. 메모리 컨트롤러(140)는 호스트 프로세서(110)의 제어에 따라 오너쉽을 호스트 프로세서(110)와 프로세서(120) 중 어느 하나에게 귀속시킴으로써, 호스트 프로세서(110)의 공유 메모리(130) 액세스 또는 프로세서(120)의 공유 메모리(130) 액세스를 허용할 수 있다. 오너쉽을 호스트 프로세서(110)와 프로세서(120) 중 어느 하나에게 귀속시키는 것은 결국, 메모리 컨트롤러(140)가 호스트 프로세서(110), 프로세서(120) 및 공유 메모리(130) 사이에서 데이터 패스 및 커맨드 패스를 선택적으로 활성화시키는 것으로 구현될 수 있다. 메모리 컨트롤러(140)는 호스트 프로세서(110)로부터 전송된 소정 커맨드에 응답하여 호스트 프로세서(110)와 프로세서(120) 간에 오너쉽의 귀속을 변경할 수 있다.
메모리 컨트롤러(140)는 메일 박스(145)를 포함할 수 있다. 호스트 프로세서(110)는 메일 박스(145)를 액세스함으로써 오너쉽을 프로세서(120)에게 이전하고 프로세서로부터 회복할 수 있다. 호스트 프로세서(110)는 메일 박스(145)에 프로세서(120)가 확인해야 할 작업 정보를 저장할 수 있다. 호스트 프로세서(110)는 메일 박스(145)로부터 프로세서(120)의 상태 정보를 리드할 수 있다.
또한, 프로세서(120)는 메일 박스(145)로부터 작업 정보를 리드하고 확인함으로써 호스트 프로세서(110)가 지시한 작업을 처리할 수 있다.
메일 박스(145)는 SRAM 또는 레지스터 등 다양한 메모리 소자로 구현될 수 있다.
정리하면, 메모리 컨트롤러(140)는 호스트 프로세서(110)의 제어에 따라 오너쉽을 호스트 프로세서(110)와 프로세서(120) 중 어느 하나에게 귀속시키고 오너쉽을 가진 어느 한쪽만의 공유 메모리(130)에 대한 액세스를 허용하기 때문에, 호스트 프로세서(110)와 프로세서(120)는 충돌 없이 공유 메모리(130)를 사용하여 작업을 처리할 수 있다. 또한, 공유 메모리(130)의 인터페이스는 기존의 프로토콜이나 핀 배치에 따라 그대로 적용될 수 있다.
도2는 본 발명의 실시 예에 따라, 호스트 프로세서(110) 또는 프로세서(120)가 공유 메모리(130)에 대한 오너쉽을 교대로 독점하는 상황을 도시하는 도면이다.
도2를 참조하면, 최초에 호스트 프로세서(110)가 오너쉽을 독점한 상태일 수 있다. 따라서, 시간(T1) 동안, 호스트 프로세서(110)가 오너쉽을 독점하고 공유 메모리(130)를 액세스하여 작업을 처리할 수 있다. 시간(T1) 동안, 프로세서(120)는 공유 메모리(130)를 액세스할 수 없다.
시점(P1)에서 호스트 프로세서(110)가 오너쉽을 프로세서(120)에게 이전할 수 있다. 따라서, 시간(T2) 동안, 프로세서(120)가 오너쉽을 독점하고 공유 메모리(130)를 액세스하여 작업을 처리할 수 있다. 시간(T2) 동안, 호스트 프로세서(110)는 공유 메모리(130)를 액세스할 수 없다.
시점(P2)에서 호스트 프로세서(110)가 오너쉽을 프로세서(120)로부터 회복할 수 있다. 따라서, 시간(T3) 동안, 호스트 프로세서(110)가 오너쉽을 독점하고 공유 메모리(130)를 액세스하여 작업을 처리할 수 있다. 시간(T3) 동안, 프로세서(120)는 공유 메모리(130)를 액세스할 수 없다.
실시 예에 따라, 시간(T1)에서 처리된 호스트 프로세서(110)의 작업은, 프로세서(120)에게 처리를 지시할 작업 데이터를 공유 메모리(130)에 저장하는 것을 포함할 수 있다. 시간(T2)에서 처리된 프로세서(120)의 작업은, 호스트 프로세서(110)의 지시에 따라 공유 메모리(130)에 저장된 작업 데이터를 처리하는 것을 포함할 수 있다. 시간(T3)에서 처리된 호스트 프로세서(110)의 작업은, 프로세서(120)가 처리한 작업 결과 데이터를 공유 메모리(130)로부터 리드하는 것을 포함할 수 있다. 해당 절차에 대한 설명은 이어서 도3을 참조하여 상세하게 설명될 것이다.
도3은 본 발명의 실시 예에 따라 호스트 프로세서(110) 및 프로세서(120)의 동작 절차를 간략하게 도시하는 도면이다. 도3에서 절차가 시작될 때 오너쉽은 호스트 프로세서(110)가 독점한 상태일 수 있다.
도3을 참조하면, 단계(S11)에서, 호스트 프로세서(110)는 프로세서(120)가 처리해야 할 작업 데이터를 공유 메모리(130)에 저장할 수 있다. 호스트 프로세서(110)는 오너쉽을 독점하므로 공유 메모리(130)를 액세스할 수 있다. 한편, 호스트 프로세서(110)는 공유 메모리(130)를 직접적으로 액세스하지는 않고, 실질적으로는 메모리 컨트롤러(140)를 통해 액세스할 것이다. 단계(S11)에서 호스트 프로세서(110)로부터 공유 메모리(130)로 연결된 화살표는 호스트 프로세서(110)가 오너쉽을 가지고 공유 메모리(130)를 사용한다는 의미이다.
단계(S12)에서, 호스트 프로세서(110)는 오너쉽을 프로세서(120)에게 이전하기 위해 메모리 컨트롤러(140)로 소정 커맨드를 전송할 수 있다.
단계(S13)에서, 메모리 컨트롤러(140)는 호스트 프로세서(110)로부터 전송된 커맨드에 응답하여 프로세서(120)에게 오너쉽을 귀속시킬 수 있다. 따라서, 이후 메모리 컨트롤러(140)는 공유 메모리(130)에 대해 오직 프로세서(120)의 액세스만을 허용할 수 있다.
단계(S14)에서, 호스트 프로세서(110)는 메모리 컨트롤러(140)의 메일 박스(145)에 작업 정보를 저장할 수 있다. 작업 정보는 프로세서(120)가 처리해야 할 작업에 대한 정보를 포함할 수 있다. 예를 들어, 작업 정보는 공유 메모리(130)에서 작업 데이터가 저장된 영역의 시작 어드레스 및 마지막 어드레스를 포함할 수 있다. 작업 정보는 공유 메모리(130)에서 작업 결과 데이터가 저장되어야 할 영역의 시작 어드레스와 마지막 어드레스를 포함할 수 있다.
단계(S15)에서, 프로세서(120)는 메일 박스(145)에 저장된 작업 정보를 리드할 수 있다.
단계(S16)에서, 프로세서(120)는 공유 메모리(130)에 저장된 작업 데이터를 처리할 수 있다. 프로세서(120)는 공유 메모리(130)로부터 작업 데이터를 리드하여 처리하고, 처리된 데이터를 작업 결과 데이터로서 공유 메모리(130)에 저장할 수 있다. 프로세서(120)는 오너쉽을 독점하므로 공유 메모리(130)를 액세스할 수 있다. 한편, 프로세서(120)는 공유 메모리(130)를 직접적으로 액세스하지는 않고, 실질적으로 메모리 컨트롤러(140)를 통해 액세스할 것이다. 단계(S16)에서 프로세서(120)로부터 공유 메모리(130)로 연결된 화살표는 프로세서(120)가 오너쉽을 가지고 공유 메모리(130)를 사용한다는 의미이다.
단계(S17)에서, 호스트 프로세서(110)는 메모리 컨트롤러(140)의 메일 박스(145)를 통해 프로세서(120)의 상태 정보를 반복적으로 리드할 수 있다. 상태 정보는 프로세서(120)가 작업을 종료하였는지 여부를 포함할 수 있다. 상태 정보는 프로세서(120)가 처리중인 동작의 잔여 처리량을 포함할 수 있다. 단계(S17)는 단계(S16)와 병렬적으로 수행될 수 있다. 후술될 바와 같이, 프로세서(120)가 오너쉽을 독점할 때, 호스트 프로세서(110)는 메일 박스(145)에 대한 액세스가 가능해 진다.
단계(S18)에서, 호스트 프로세서(110)는 프로세서(120)가 작업을 종료한 것으로 판단될 때, 오너쉽을 프로세서(120)로부터 회복하기 위해 메모리 컨트롤러(140)로 소정 커맨드를 전송할 수 있다.
단계(S19)에서, 메모리 컨트롤러(140)는 호스트 프로세서(110)로부터 전송된 커맨드에 응답하여 호스트 프로세서(110)에게 오너쉽을 귀속시킬 수 있다. 따라서, 이후 메모리 컨트롤러(140)는 공유 메모리(130)에 대해 오직 호스트 프로세서(110)의 액세스만을 허용할 수 있다.
단계(S20)에서, 호스트 프로세서(110)는 프로세서(120)의 작업 결과 데이터를 공유 메모리(130)로부터 리드할 수 있다. 호스트 프로세서(110)는 오너쉽을 독점하므로 공유 메모리(130)를 액세스할 수 있다. 한편, 호스트 프로세서(110)는 공유 메모리(130)를 직접적으로 액세스하지는 않고, 실질적으로는 메모리 컨트롤러(140)를 통해 액세스할 것이다. 단계(S11)에서 호스트 프로세서(110)로부터 공유 메모리(130)로 연결된 화살표는 호스트 프로세서(110)가 오너쉽을 가지고 공유 메모리(130)를 사용한다는 의미이다.
도4는 본 발명의 실시 예에 따라, 메일 박스(145)의 구성을 설명하기 위한 도면이다. 도4에 도시된 어드레스는 이후 설명되는 동작 방법에서도 그대로 사용될 것이다. 또한, 도4에서 메일 박스(145)를 사용하여 오너쉽을 이전하고 회복하는 방법도 함께 설명될 것이다.
도4를 참조하면, 호스트 프로세서(110)가 사용하는 어드레스 범위(ADa~ADz)가 도시된다. 호스트 프로세서(110)는 공유 메모리(130)에 어드레스 범위(ADa~ADz) 중 일부 범위(ADa~ADi)를 할당할 수 있다. 호스트 프로세서(110)는 메일 박스(145)에 어드레스 범위(ADa~ADz) 중 일부 범위(ADj~ADn)를 할당할 수 있다. 어드레스 범위(ADa~ADz) 중 일부 범위(ADo~ADz)는 사용되지 않고 유보될 수 있다.
따라서, 메모리 컨트롤러(140)는 호스트 프로세서(110)로부터 전송된 어떤 액세스 커맨드의 어드레스가 공유 메모리(130)의 어드레스 범위(ADa~ADi)와 메일 박스(145)의 어드레스 범위(ADj~ADn) 중 어디에 포함되는 지를 판단하여, 판단 결과에 따라 액세스 커맨드를 처리할 수 있다.
메일 박스(145)는 오너쉽 이전 영역(401), 오너쉽 회복 영역(402), 작업 정보 영역(403), 상태 정보 영역(404), 및 작업 결과 데이터 영역(405)을 포함할 수 있다. 오너쉽 이전 영역(401), 오너쉽 회복 영역(402), 작업 정보 영역(403), 상태 정보 영역(404), 및 작업 결과 데이터 영역(405)은 각각 어드레스 범위(ADj~ADn)에 포함되는 어드레스들에 대응할 수 있다.
오너쉽 이전 영역(401)은 호스트 프로세서(110)가 오너쉽을 프로세서(120)에게 이전하기 위해 리드 액세스하는 영역일 수 있다. 호스트 프로세서(110)는 오너쉽을 프로세서(120)에게 이전하기 위해 리드 커맨드와 오너쉽 이전 영역(401)의 어드레스(AD-TR)를 메모리 컨트롤러(140)로 전송할 수 있다. 메모리 컨트롤러(140)는 호스트 프로세서(110)로부터 전송된 리드 커맨드와 오너쉽 이전 영역(401)의 어드레스(AD-TR)를 확인하여 오너쉽을 프로세서(120)에게 귀속시킬 수 있다. 메모리 컨트롤러(140)는 오너쉽 이전 영역(401)에 대한 리드 커맨드에 응답하여, 오너쉽 이전 영역(401)에 저장된 이전 확인 데이터를 호스트 프로세서(110)로 전송할 수 있다. 이전 확인 데이터는 오너쉽 이전이 완료되었음을 의미하는 것으로서 호스트 프로세서(110)와 사전에 약속된 데이터일 수 있다.
오너쉽 회복 영역(402)은 호스트 프로세서(110)가 오너쉽을 프로세서(120)로부터 회복하기 위해 리드 액세스하는 영역일 수 있다. 호스트 프로세서(110)는 오너쉽을 프로세서(120)로부터 회복하기 위해 리드 커맨드와 오너쉽 회복 영역(402)의 어드레스(AD-RS)를 메모리 컨트롤러(140)로 전송할 수 있다. 메모리 컨트롤러(140)는 호스트 프로세서(110)로부터 전송된 리드 커맨드와 오너쉽 회복 영역(402)의 어드레스(AD-RS)를 확인하여 오너쉽을 호스트 프로세서(110)에게 귀속시킬 수 있다. 메모리 컨트롤러(140)는 오너쉽 회복 영역(402)에 대한 리드 커맨드에 응답하여, 오너쉽 회복 영역(402)에 저장된 회복 확인 데이터를 호스트 프로세서(110)로 전송할 수 있다. 회복 확인 데이터는 오너쉽 회복을 처리할 것임을 의미하는 것으로서 호스트 프로세서와 사전에 약속된 데이터일 수 있다.
작업 정보 영역(403)은 프로세서(120)가 확인할 작업 정보가 저장되는 영역일 수 있다. 호스트 프로세서(110)는 작업 정보 영역(403)에 작업 정보를 저장할 수 있다. 프로세서(120)는 작업 정보 영역(403)으로부터 작업 정보를 리드하고 확인할 수 있다. 작업 정보 영역(403)은 어드레스(AD-WI)를 사용하여 액세스될 수 있다.
상태 정보 영역(404)은 프로세서(120)의 상태 정보가 저장되는 영역일 수 있다. 상태 정보는 메모리 컨트롤러(140)에 의해 저장될 수 있다. 예를 들어, 메모리 컨트롤러(140)는 후술될 바와 같이, 프로세서(120)의 작업 결과 데이터가 공유 메모리(130)에 저장되는 위치를 알 수 있으므로, 그에 기반하여 동작의 잔여 처리량 또는 상태 정보를 업데이트할 수 있다. 실시 예에 따라, 상태 정보는 프로세서(120)에 의해 저장될 수도 있다. 호스트 프로세서(110)는 상태 정보 영역(404)으로부터 상태 정보를 리드하고 확인할 수 있다. 상태 정보 영역(404)은 어드레스(AD-ST)를 사용하여 액세스될 수 있다.
작업 결과 데이터 영역(405)은 프로세서(120)가 처리한 작업의 작업 결과 데이터가 저장되는 영역일 수 있다. 프로세서(120)는 작업 결과 데이터 영역(405)에 작업 결과 데이터를 저장할 수 있다. 호스트 프로세서(110)는 작업 결과 데이터 영역(405)으로부터 작업 결과 데이터를 리드할 수 있다. 즉, 호스트 프로세서(110)는 도3을 참조하여 설명한 바와 같이 작업 결과 데이터를 공유 메모리(130)로부터 리드할 수 있고, 실시 예에 따라, 작업 결과 데이터 영역(405)으로부터 리드할 수도 있다. 작업 결과 데이터 영역(405)은 어드레스(AD-RD)를 사용하여 액세스될 수 있다.
실시 예에 따라, 호스트 프로세서(110)는 오너쉽 귀속을 상술한 바와 같이 메일 박스(145)를 액세스함으로써 변경하지 않고, 별도 지정된 커맨드들을 통해 변경할 수 있다. 별도 지정된 커맨드들은 메모리 컨트롤러(140)에 포함된 별도 레지스터(미도시), 예를 들어, MPR(Multi Purpose Register)에 현재 오너쉽의 귀속을 저장하기 위한 것일 수 있다. 메모리 컨트롤러(140)는 호스트 프로세서(110)로부터 별도 지정된 커맨드들을 수신하면, 별도 레지스터에 오너쉽이 누구에게 귀속되었는지를 저장하고, 그에 따라 공유 메모리(130)에 대한 패스를 형성할 수 있다.
도5는 본 발명의 실시 예에 따른 메모리 컨트롤러(140)를 상세하게 도시하는 블록도이다.
도5를 참조하면, 메모리 컨트롤러(140)는 제어부(210) 및 인터페이스부(220)를 포함할 수 있다.
제어부(210)는 호스트 커맨드 패스(HC)를 통해 호스트 프로세서(110)와 연결될 수 있다. 제어부(210)는 제2 호스트 데이터 패스(HD2) 및 제2 메모리 데이터 패스(MD2)를 통해 데이터 드라이버(211)와 연결될 수 있다. 제어부(210)는 프로세서 커맨드 패스(PC)를 통해 커맨드 먹스(212)와 연결될 수 있다. 각 패스의 사용은 아래에서 구체적으로 설명될 것이다. 또한, 제어부(210)는 메일 박스(145)를 포함할 수 있다. 제어부(210)는 메일 박스(145)를 제어할 수 있다.
제어부(210)는 호스트 프로세서(110)의 제어에 따라, 오너쉽을 프로세서(120)에게 귀속시킬 수 있다. 구체적으로, 호스트 프로세서(110)는 리드 커맨드와 메일 박스(145)의 오너쉽 이전 영역(401)의 어드레스(AD-TR)를 호스트 커맨드 패스(HC)를 통해 전송할 수 있다. 제어부(210)는 호스트 커맨드 패스(HC)를 통해 호스트 프로세서(110)와 항상 연결되어 있으므로, 오너쉽이 누구에게 귀속되어 있는지에 무관하게 호스트 프로세서(110)의 리드 커맨드를 수신할 수 있다. 제어부(210)는 호스트 커맨드 패스(HC)를 통해 리드 커맨드와 오너쉽 이전 영역(401)의 어드레스(AD-TR)를 수신하고, 오너쉽을 프로세서(120)에게 귀속시킬 수 있다. 제어부(210)는 후술될 바와 같이 인터페이스부(220)의 데이터 패스 및 커맨드 패스를 변경시킴으로써 오너쉽을 프로세서(120)에게 귀속시킬 수 있다.
제어부(210)는 오너쉽을 프로세서(120)에게 귀속시킨 뒤, 리드 커맨드의 응답으로서 오너쉽 이전 영역(401)에 저장된 이전 확인 데이터를 호스트 프로세서(110)에게 전송할 수 있다. 한편, 오너쉽이 프로세서(120)에게 귀속될 때, 후술될 바와 같이 제2 호스트 데이터 패스(HD2)는 제1 호스트 데이터 패스(HD1)와 연결되므로, 제어부(210)는 이전 확인 데이터를 제2 호스트 데이터 패스(HD2) 및 제1 호스트 데이터 패스(HD1)를 통해 호스트 프로세서(110)로 전송할 수 있다.
또한, 제어부(210)는 호스트 프로세서(110)의 제어에 따라 오너쉽을 호스트 프로세서(110)에게 귀속시킬 수 있다. 구체적으로, 호스트 프로세서(110)는 리드 커맨드와 메일 박스(145)의 오너쉽 회복 영역(402)의 어드레스(AD-RS)를 호스트 커맨드 패스(HC)를 통해 전송할 수 있다. 제어부(210)는 호스트 커맨드 패스(HC)를 통해 호스트 프로세서(110)와 항상 연결되어 있으므로, 오너쉽이 프로세서(120)에게 귀속된 상태에서 호스트 프로세서(110)의 리드 커맨드를 수신할 수 있다. 제어부(210)는 리드 커맨드와 오너쉽 회복 영역(402)의 어드레스(AD-RS)를 수신하고, 오너쉽을 호스트 프로세서(110)에게 귀속시킬 수 있다. 제어부(210)는 후술될 바와 같이 인터페이스부(220)의 데이터 패스 및 커맨드 패스를 변경시킴으로써 오너쉽을 호스트 프로세서(110)에게 귀속시킬 수 있다.
제어부(210)는 오너쉽을 호스트 프로세서(110)에게 귀속시키기 전에, 즉, 인터페이스부(220)의 데이터 패스 및 커맨드 패스를 변경시키기 전에 리드 커맨드의 응답으로서 오너쉽 회복 영역(402)에 저장된 회복 확인 데이터를 호스트 프로세서(110)에게 전송할 수 있다. 한편, 오너쉽이 호스트 프로세서(110)에게 귀속되기 전에, 제2 호스트 데이터 패스(HD2)는 제1 호스트 데이터 패스(HD1)와 연결되어 있으므로, 제어부(210)는 회복 확인 데이터를 제2 호스트 데이터 패스(HD2) 및 제1 호스트 데이터 패스(HD1)를 통해 호스트 프로세서(110)로 전송할 수 있다.
그리고, 제어부(210)는 호스트 프로세서(110)와 프로세서(120)의 메일 박스(145)로의 다양한 액세스들을 처리할 수 있다.
우선, 제어부(210)는 호스트 프로세서(110)의 제어에 따라 작업 정보를 메일 박스(145)의 작업 정보 영역(403)에 저장할 수 있다.
제어부(210)는 프로세서(120)의 제어에 따라 메일 박스(145)의 작업 정보 영역(403)에 저장된 작업 정보를 프로세서(120)에게 전송할 수 있다.
제어부(210)는 프로세서(120)의 제어에 따라 프로세서(120)의 상태 정보를 메일 박스(145)의 상태 정보 영역(404)에 저장할 수 있다. 실시 예에 따라, 제어부(210)는 프로세서(120)의 제어에 따라 공유 메모리(130)를 직접적으로 액세스하므로, 프로세서(120)의 작업의 잔여 처리량을 알 수 있고, 따라서, 제어부(210)는 상태 정보 영역(404)에 프로세서(120)의 상태 정보를 프로세서(120)의 제어와 무관하게 저장할 수 있다.
제어부(210)는 호스트 프로세서(110)의 제어에 따라 메일 박스(145)의 상태 정보 영역(404)에 저장된 상태 정보를 호스트 프로세서(110)에게 전송할 있다.
제어부(210)는 프로세서(120)의 제어에 따라 프로세서(120)가 처리한 작업 결과 데이터를 메일 박스(145)의 작업 결과 데이터 영역(405)에 저장할 수 있다.
제어부(210)는 호스트 프로세서(110)의 제어에 따라 메일 박스(145)의 작업 결과 데이터 영역(405)에 저장된 작업 결과 데이터를 호스트 프로세서(110)에게 전송할 수 있다.
한편, 제어부(210)는 오너쉽이 프로세서(120)에게 귀속될 때, 프로세서(120)와 공유 메모리 사이를 인터페이싱할 수 있다. 예를 들어, 프로세서(120)가 하드웨어 가속기일 때, 공유 메모리(130)의 인터페이스 프로토콜에 따른 커맨드를 프로세서(120)가 생성하지 않고 제어부(210)가 프로세서(120)의 지시에 따라 대신 생성하여 공유 메모리(130)로 전송할 수 있다. 실시 예에 따라 프로세서(120)는 공유 메모리(130)의 인터페이스 프로토콜에 따른 커맨드를 생성할 수도 있고, 이러한 경우 제어부(210)는 프로세서(120)에 의해 생성된 커맨드를 공유 메모리(130)로 전달할 수 있다. 정리하면, 오너쉽이 프로세서(120)에게 귀속될 때, 프로세서(120)는 제어부(210)를 통해 공유 메모리(130)를 액세스할 수 있다. 따라서, 후술될 바와 같이 오너쉽이 프로세서(120)에게 귀속될 때, 제어부(210)는, 제어부(210)와 공유 메모리(130) 사이의 패스를 활성화하도록 인터페이스부(220)를 제어할 수 있다.
제어부(210)는 오너쉽이 호스트 프로세서(110)와 프로세서(120) 중 누구에게 귀속되어 있는지에 따라, 호스트 프로세서(110), 제어부(210), 및 공유 메모리(130) 사이에서 패스를 활성화하도록 인터페이스부(220)를 제어할 수 있다.
구체적으로, 오너쉽이 호스트 프로세서(110)에게 귀속될 때, 제어부(210)는 호스트 프로세서(110)와 공유 메모리(130) 사이의 패스를 활성화시키도록 인터페이스부(220)를 제어할 수 있다.
오너쉽이 프로세서(120)에게 귀속될 때, 제어부(210)는 호스트 프로세서(110)와 공유 메모리(130) 사이의 패스를 비활성화시키고, 제어부(210)와 공유 메모리(130) 사이의 패스를 활성화시키도록 인터페이스부(220)를 제어할 수 있다. 프로세서(120)는 오너쉽을 독점할 때, 제어부(210)를 통해 공유 메모리(130)를 액세스할 수 있다.
또한, 오너쉽이 프로세서(120)에게 귀속될 때, 제어부(210)는, 호스트 프로세서(110)와 제어부(210) 사이의 패스를 활성화시키도록 인터페이스부(220)를 제어할 수 있다. 따라서, 오너쉽이 프로세서(120)에게 귀속된 동안 호스트 프로세서(110)는 제어부(210)의 메일 박스(145)에 작업 정보를 저장하고, 메일 박스(145)로부터 상태 정보 및 작업 결과 데이터를 리드하는 것이 가능할 수 있다.
인터페이스부(220)는 제어부(210)의 제어에 따라 호스트 프로세서(110), 제어부(210) 및 공유 메모리(130) 사이에서 패스를 형성하여 데이터 및 커맨드를 전송할 수 있다. 구체적으로, 호스트 프로세서(110)가 오너쉽을 독점할 때, 인터페이스부(220)는 제어부(210)의 제어에 따라 호스트 프로세서(110)와 공유 메모리(130) 사이의 패스를 활성화시킬 수 있다. 프로세서(120)가 오너쉽을 독점할 때, 인터페이스부(220)는 제어부(210)의 제어에 따라 호스트 프로세서(110)와 공유 메모리(130) 사이의 패스를 비활성화시키고, 제어부(210)와 공유 메모리(130) 사이의 패스를 활성화시키고 제어부(210)와 호스트 프로세서(110) 사이의 패스를 활성화시킬 수 있다.
인터페이스부(220)는 데이터 드라이버(211) 및 커맨드 먹스(212)를 포함할 수 있다.
데이터 드라이버(211)는 호스트 프로세서(110)와 제1 호스트 데이터 패스(HD1)를 통해 연결될 수 있다. 데이터 드라이버(211)는 공유 메모리(130)와 제1 메모리 데이터 패스(MD1)를 통해 연결될 수 있다. 데이터 드라이버(211)는 제어부(210)와 제2 호스트 데이터 패스(HD2) 및 제2 메모리 데이터 패스(MD2)를 통해 연결될 수 있다.
오너쉽이 호스트 프로세서(110)에게 귀속될 때, 데이터 드라이버(211)는 제어부(210)의 제어에 따라 호스트 프로세서(110)와 공유 메모리(130) 사이의 데이터 패스를 활성화시킬 수 있다. 구체적으로, 데이터 드라이버(211)는 제1 호스트 데이터 패스(HD1)와 제1 메모리 데이터 패스(MD1)를 연결함으로써 호스트 프로세서(110)와 공유 메모리(130) 사이의 데이터 패스를 활성화시킬 수 있다.
또한, 오너쉽이 프로세서(120)에게 귀속될 때, 데이터 드라이버(211)는 제어부(210)의 제어에 따라 호스트 프로세서(110)와 공유 메모리(130) 사이의 데이터 패스를 비활성화시키고, 호스트 프로세서(110)와 제어부(210) 사이의 데이터 패스를 활성화시키고, 공유 메모리(130)와 제어부(210) 사이의 데이터 패스를 활성화시킬 수 있다. 구체적으로, 데이터 드라이버(211)는 제1 호스트 데이터 패스(HD1)와 제2 호스트 데이터 패스(HD2)를 연결함으로써 호스트 프로세서(110)와 제어부(210) 사이의 데이터 패스를 활성화시킬 수 있다. 그리고, 데이터 드라이버(211)는 제1 메모리 데이터 패스(MD1)와 제2 메모리 데이터 패스(MD2)를 연결함으로써 공유 메모리(130)와 제어부(210) 사이의 데이터 패스를 활성화시킬 수 있다.
커맨드 먹스(212)는 호스트 프로세서(110)와 호스트 커맨드 패스(HC)를 통해 연결될 수 있다. 커맨드 먹스(212)는 제어부(210)와 프로세서 커맨드 패스(PC)를 통해 연결될 수 있다. 커맨드 먹스(212)는 공유 메모리(130)와 메모리 커맨드 패스(MC)를 통해 연결될 수 있다.
오너쉽이 호스트 프로세서(110)에게 귀속될 때, 커맨드 먹스(212)는 제어부(210)의 제어에 따라 호스트 프로세서(110)와 공유 메모리(130) 사이의 커맨드 패스를 활성화시킬 수 있다. 구체적으로, 커맨드 먹스(212)는 호스트 커맨드 패스(HC)와 메모리 커맨드 패스(MC)를 연결함으로써 호스트 프로세서(110)와 공유 메모리(130) 사이의 커맨드 패스를 활성화시킬 수 있다.
또한, 오너쉽이 프로세서(120)에게 귀속될 때, 커맨드 먹스(212)는 제어부(210)의 제어에 따라 호스트 프로세서(110)와 공유 메모리(130) 사이의 커맨드 패스를 비활성화시키고, 제어부(210)와 공유 메모리(130) 사이의 커맨드 패스를 활성화시킬 수 있다. 구체적으로, 커맨드 먹스(212)는 프로세서 커맨드 패스(PC)와 메모리 커맨드 패스(MC)를 연결함으로써 제어부(210)와 공유 메모리(130) 사이의 커맨드 패스를 활성화시킬 수 수 있다.
결국, 호스트 프로세서(110)와 프로세서(120) 사이에서 오너쉽이 이전되고 회복될 때마다, 호스트 프로세서(110), 제어부(210) 및 공유 메모리(130) 사이에서 데이터 패스 및 커맨드 패스가 변경될 수 있다.
도6 내지 도13은 본 발명의 실시 예에 따라 메모리 컨트롤러(140)가 호스트 프로세서(110), 프로세서(120), 및 공유 메모리(130) 사이에서 인터페이싱하는 방법을 설명하기 위한 도면들이다.
우선 도6은 본 발명의 실시 예에 따라 호스트 프로세서(110)가 공유 메모리(130)에 작업 데이터를 저장하는 방법을 도시하는 도면이다.
도6을 참조하면, 호스트 프로세서(110)가 오너쉽을 독점한 상태일 수 있다.
호스트 프로세서(110)가 오너쉽을 독점할 때, 데이터 드라이버(211)는 제어부(210)의 제어에 따라 제1 호스트 데이터 패스(HD1)와 제1 메모리 데이터 패스(MD1)를 연결함으로써 호스트 프로세서(110)와 공유 메모리(130) 사이의 데이터 패스를 활성화시킬 수 있다.
호스트 프로세서(110)가 오너쉽을 독점할 때, 커맨드 먹스(212)는 제어부(210)의 제어에 따라 호스트 커맨드 패스(HC)와 메모리 커맨드 패스(MC)를 연결함으로써 호스트 프로세서(110)와 공유 메모리(130) 사이의 커맨드 패스를 활성화시킬 수 있다. 도6에서 호스트 프로세서(110)와 공유 메모리(130) 사이를 연결하며 활성화된 패스는 회색으로 채워져 있다.
따라서, 호스트 프로세서(110)는 인터페이스부(220)를 통해 공유 메모리(130)와 연결되므로 공유 메모리(130)를 액세스하여 작업을 처리할 수 있다. 예를 들어, 호스트 프로세서(110)는 프로세서(120)에게 지시할 작업의 작업 데이터를 공유 메모리(130)에 저장하기 위해, 라이트 커맨드를 호스트 커맨드 패스(HC)로 전송하고 작업 데이터를 제1 호스트 데이터 패스(HD1)로 전송할 수 있다.
도7은 본 발명의 실시 예에 따라 호스트 프로세서(110)가 오너쉽을 프로세서(120)에게 이전하는 방법을 도시하는 도면이다.
도7을 참조하면, 호스트 프로세서(110)는 오너쉽을 프로세서(120)에게 이전하기 위해, 리드 커맨드와 메일 박스(145)의 오너쉽 이전 영역(401)의 어드레스(AD-TR)를 호스트 커맨드 패스(HC)를 통해 제어부(210)로 전송할 수 있다.
도8은 본 발명의 실시 예에 따라 제어부(210)가 오너쉽을 프로세서(120)에게 귀속시키는 방법을 도시하는 도면이다.
도8을 참조하면, 제어부(210)는 호스트 커맨드 패스(HC)를 통해 전송된 리드 커맨드와 메일 박스(145)의 오너쉽 이전 영역(401)의 어드레스(AD-TR)에 응답하여, 프로세서(120)에게 오너쉽을 귀속시킬 수 있다. 그리고, 제어부(210)는 오너쉽 귀속의 변경에 따라 인터페이스부(220)가 데이터 패스 및 커맨드 패스를 변경하도록 제어할 수 있다.
구체적으로, 프로세서(120)가 오너쉽을 독점할 때, 데이터 드라이버(211)는 제어부(210)의 제어에 따라 제1 메모리 데이터 패스(MD1)와 제2 메모리 데이터 패스(MD2)를 연결함으로써 공유 메모리(130)와 제어부(210) 사이의 데이터 패스를 활성화시킬 수 있다.
그리고, 데이터 드라이버(211)는 제어부(210)의 제어에 따라 제1 호스트 데이터 패스(HD1)와 제2 호스트 데이터 패스(HD2)를 연결함으로써 호스트 프로세서(110)와 제어부(210) 사이의 데이터 패스를 활성화시킬 수 있다.
그리고, 커맨드 먹스(212)는 제어부(210)의 제어에 따라 프로세서 커맨드 패스(PC)와 메모리 커맨드 패스(MC)를 연결함으로써 제어부(210)와 공유 메모리(130) 사이의 커맨드 패스를 활성화시킬 수 있다.
결과적으로, 도8에서 호스트 프로세서(110)와 제어부(210) 사이를 연결하며 활성화된 패스는 회색으로 채워져 있고, 공유 메모리(130)와 제어부(210) 사이를 연결하며 활성화된 패스는 빗금으로 채워져 있다.
한편, 제어부(210)는 호스트 프로세서(110)와 데이터 패스가 연결되었으므로, 오너쉽 이전을 위한 리드 커맨드에 응답하여 오너쉽 이전 영역(401)에 저장된 이전 확인 데이터를 호스트 프로세서(110)로 전송할 수 있다.
도9는 본 발명의 실시 예에 따라 호스트 프로세서(110)가 메일 박스(145)에 작업 정보를 저장하는 방법을 도시하는 도면이다.
도9를 참조하면, 호스트 프로세서(110)는 프로세서(120)에게 작업을 지시하기 위해, 라이트 커맨드와 메일 박스(145)의 작업 정보 영역(403)의 어드레스(AD-WI)를 호스트 커맨드 패스(HC)를 통해 제어부(210)로 전송하고, 작업 정보를 제1 호스트 데이터 패스(HD1)와 제2 호스트 데이터 패스(HD2)를 통해 제어부(210)로 전송할 수 있다.
제어부(210)는 호스트 커맨드 패스(HC)를 통해 전송된 라이트 커맨드에 응답하여, 메일 박스(145)의 작업 정보 영역(403)에 작업 정보를 저장할 수 있다. 미도시되었지만, 제어부(210)는 프로세서(120)에게 작업 정보 영역(403)에 작업 정보가 저장되었음을 알려줄 수 있다.
도10은 본 발명의 실시 예에 따라 프로세서(120)가 메일 박스(145)로부터 작업 정보를 리드하는 방법을 도시하는 도면이다.
도10을 참조하면, 프로세서(120)는 메일 박스(145)의 작업 정보 영역(403)에 저장된 작업 정보를 리드할 수 있다. 프로세서(120)는 리드된 작업 정보를 통해 공유 메모리(130)에서 처리할 데이터가 저장된 위치를 확인할 수 있다.
도11은 본 발명의 실시 예에 따라 프로세서(120)가 작업 데이터를 처리하는 방법을 도시하는 도면이다.
도11을 참조하면, 프로세서(120)는 제어부(210) 및 인터페이스부(220)를 통해 공유 메모리(130)와 연결되므로 공유 메모리(130)를 액세스하여 작업 데이터를 처리할 수 있다. 프로세서(120)는 공유 메모리(130)로부터 작업 데이터를 리드하여 처리하고 작업 결과 데이터를 공유 메모리(130)에 저장할 수 있다. 프로세서(120)는 작업 데이터 및 작업 결과 데이터를 제어부(210) 및 제1 메모리 데이터 패스(MD1)와 제2 메모리 데이터 패스(MD2) 통해 공유 메모리(130)와 주고받을 수 있다. 이를 위해, 제어부(210)는 프로세서(120)의 제어에 따라 리드 커맨드 및 라이트 커맨드를 생성하여 프로세서 커맨드 패스(PC) 및 메모리 커맨드 패스(MC)를 통해 공유 메모리(130)로 전송할 수 있다.
프로세서(120)가 작업을 처리하는 동안 호스트 프로세서(110)는 프로세서(120)의 상태 정보를 확인하기 위해, 리드 커맨드와 메일 박스(145)의 상태 정보 영역(404)의 어드레스(AD-ST)를 호스트 커맨드 패스(HC)를 통해 제어부(210)로 전송할 수 있다.
제어부(210)는 상태 정보 리드를 위한 리드 커맨드에 응답하여 상태 정보를 호스트 프로세서(110)로 전송할 수 있다. 호스트 프로세서(110)는 상태 정보를 확인하여 프로세서(120)의 작업이 완료되었음을 확인할 수 있다.
도12는 본 발명의 실시 예에 따라 호스트 프로세서(110)가 프로세서(120)로부터 오너쉽을 회복하는 방법을 도시하는 도면이다.
도12를 참조하면, 호스트 프로세서(110)는 상태 정보를 확인하여 프로세서(120)의 작업이 완료되었음을 확인한 뒤, 오너쉽을 프로세서(120)로부터 회복하기 위해, 리드 커맨드와 메일 박스(145)의 오너쉽 회복 영역(402)의 어드레스(AD-RS)를 호스트 커맨드 패스(HC)를 통해 제어부(210)로 전송할 수 있다.
제어부(210)는 오너쉽 확인을 위한 리드 커맨드에 응답하여 오너쉽 회복 영역(402)에 저장된 회복 확인 데이터를 호스트 프로세서(110)로 전송할 수 있다.
도13은 본 발명의 실시 예에 따라 호스트 프로세서(110)가 공유 메모리(130)로부터 작업 결과 데이터를 리드하는 방법을 도시하는 도면이다.
도13을 참조하면, 제어부(210)는 호스트 커맨드 패스(HC)를 통해 전송된 리드 커맨드와 메일 박스(145)의 오너쉽 회복 영역(402)의 어드레스(AD-RS)에 응답하여, 호스트 프로세서(110)에게 오너쉽을 귀속시킬 수 있다. 그리고, 제어부(210)는 오너쉽 귀속의 변경에 따라 인터페이스부(220)가 데이터 패스 및 커맨드 패스를 변경하도록 제어할 수 있다. 결과적으로, 인터페이스부(220)는 도6에 도시된 바와 같이 데이터 패스 및 커맨드 패스를 변경할 수 있다.
따라서, 호스트 프로세서(110)는 인터페이스부(220)를 통해 공유 메모리(130)와 연결되므로 공유 메모리(130)로부터 프로세서(120)의 작업 결과 데이터를 리드할 수 있다. 호스트 프로세서(110)는 작업 결과 데이터를 리드하기 위해, 리드 커맨드를 호스트 커맨드 패스(HC)로 전송하고 작업 결과 데이터를 제1 메모리 데이터 패스(MD1) 및 제1 호스트 데이터 패스(HD1)를 통해 공유 메모리(130)로부터 전송받을 수 있다.
도14는 본 발명의 실시 예에 따라 호스트 프로세서(110)가 메일 박스(145)로부터 작업 결과 데이터를 리드하는 방법을 도시하는 도면이다.
도14를 참조하면, 도13에서 설명된 바와 달리, 작업 결과 데이터가 메일 박스(145)의 작업 결과 데이터 영역(405)에 저장되었을 때 호스트 프로세서(110)는 작업 결과 데이터를 메일 박스(145)로부터 리드할 수 있다. 즉, 도11의 상황에서 상태 정보에 근거하여 프로세서(120)의 작업이 완료되었음을 확인하면, 호스트 프로세서(110)는 오너쉽을 회복하지 않고 메일 박스(145)로부터 작업 결과 데이터를 리드할 수 있다. 호스트 프로세서(110)는 작업 결과 데이터를 리드하기 위해, 리드 커맨드와 메일 박스(145)의 작업 결과 데이터 영역(405)의 어드레스(AD-RD)를 호스트 커맨드 패스(HC)를 통해 제어부(210)로 전송할 수 있다.
도15는 본 발명의 실시 예에 따른 데이터 처리 시스템(400)을 도시하는 블록도이다.
도15를 참조하면, 데이터 처리 시스템(400)은 제1 프로세서(410), 제2 프로세서(420), 상태 저장부(430), 및 메모리 영역(440)을 포함할 수 있다.
제1 프로세서(410)는 제2 프로세서(420)에게 메모리 영역(440)을 사용하여 작업을 처리할 것을 지시할 수 있다. 제1 프로세서(410)는 체크 주기에 따른 체크 타이밍마다, 상태 저장부(430)로부터 제2 프로세서(420)에 의해 처리중인 작업의 잔여 처리량(RT)을 반복적으로 리드할 수 있다. 후술될 바와 같이, 잔여 처리량(RT)은 제2 프로세서(420)가 작업을 처리하는 동안 상태 저장부(430)에 업데이트된 것일 수 있다. 제1 프로세서(410)는 잔여 처리량(RT)에 근거하여 제2 프로세서(420)가 작업을 종료한 것으로 판단되면, 후속 작업을 진행할 수 있다.
이때, 잔여 처리량(RT)의 체크 주기가 너무 빠를 때, 불필요한 파워가 소비될 수 있다. 반면에 체크 주기가 너무 느릴 때는, 제2 프로세서(420)가 작업을 종료했음을 늦게 확인하여 후속 작업의 진행이 지연될 수 있다. 따라서, 제2 프로세서(420)가 작업을 종료하는 타이밍을 놓치지 않으면서 적은 횟수로 잔여 처리량(RT)을 체크하는 것이 필요하고, 이를 위해 제1 프로세서(410)는 잔여 처리량(RT)에 따라 체크 주기를 적절하게 조정해야 한다.
구체적으로, 제1 프로세서(410)는 현재 체크 타이밍의 현재 잔여 처리량(RT)과 이전 체크 타이밍의 이전 잔여 처리량(RT)에 근거하여 체크 주기 처리량을 계산하고, 현재 잔여 처리량(RT)과 체크 주기 처리량에 근거하여 체크 주기를 조정할 수 있다.
제1 프로세서(410)는 이전 잔여 처리량(RT)과 현재 잔여 처리량(RT)의 차이를 체크 주기 처리량으로 결정할 수 있다.
그리고, 제1 프로세서(410)는, 현재 잔여 처리량(RT)이 체크 주기 처리량에 소정 증가율을 적용한 값을 초과할 때, 체크 주기를 해당 증가율만큼 증가시킬 수 있다. 제1 프로세서(410)는, 현재 잔여 처리량(RT)이 체크 주기 처리량에 소정 증가율을 적용한 값 이하이고 체크 주기 처리량을 초과할 때, 현재의 체크 주기를 조정없이 유지할 수 있다. 제1 프로세서(410)는, 현재 잔여 처리량(RT)이 체크 주기 처리량 이하일 때, 체크 주기를 소정 감소율만큼 감소시킬 수 있다.
실시 예에 따라, 증가율과 감소율은 일정하지 않고 체크 타이밍마다 가변될 수 있다.
한편, 제1 프로세서(410)는 소정 초기 값의 체크 주기로 잔여 처리량(RT)을 적어도 2회 리드함으로써 체크 주기 처리량을 계산한 뒤, 체크 주기를 조절할 수 있다. 예를 들어, 제1 프로세서(410)는 제2 프로세서(420)의 동작이 시작된 뒤, 일단 상태 저장부(430)로부터 잔여 처리량(RT)을 리드하는 것을 시작할 수 있다. 제1 프로세서(410)는 잔여 처리량(RT)이 남아있을 때, 예를 들어, "0"이 아닌 경우, 체크 주기를 초기 값으로 설정하고, 체크 주기에 따른 체크 타이밍에 상태 저장부(430)로부터 잔여 처리량(RT)을 리드할 수 있다.
잔여 처리량(RT)은 제2 프로세서(420)의 작업 결과가 저장될 메모리 영역(440)의 소정 어드레스 범위에서 현재까지 액세스된 어드레스에 근거하여 결정될 수 있다.
도16은 본 발명의 실시 예에 따라 제2 프로세서(420)가 처리중인 작업의 잔여 처리량(RT)을 예시적으로 설명하기 위한 도면이다.
도16을 참조하면, 제2 프로세서(420)가 처리하는 작업 결과는 메모리 영역(440)에서 시작 어드레스부터 마지막 어드레스까지의 어드레스 범위에 순차적으로 저장될 수 있다. 해당 어드레스 범위는 제1 프로세서(410)가 제2 프로세서(420)에게 작업을 지시할 때 할당될 수 있다.
따라서, 제2 프로세서(420)의 잔여 처리량(RT)은 마지막 어드레스와 현재 액세스되는 어드레스에 근거하여 잔여 처리량(RT)을 결정될 수 있다. 예를 들어, 잔여 처리량(RT)은 마지막 어드레스와 현재 액세스되는 어드레스의 차이일 수 있다. 다른 예로서, 잔여 처리량(RT)은 현재 액세스되는 어드레스부터 마지막 어드레스까지의 어드레스 범위에 대응하는 데이터 크기일 수 있다.
다시 도15를 참조하면, 상태 저장부(430)는 제2 프로세서(420)가 처리중인 작업의 잔여 처리량(RT)을 저장할 수 있다. 잔여 처리량(RT)은 제2 프로세서(420)에 의해 직접 업데이트될 수 있다. 실시 예에 따라, 메모리 영역(440)의 액세스를 제어하는 미도시된 메모리 컨트롤러가 별도로 존재할 때, 잔여 처리량(RT)은 메모리 컨트롤러에 의해 저장될 수 있다. 상태 저장부(430)는 잔여 처리량(RT)을 제1 프로세서(410)의 제어에 따라 제1 프로세서(410)로 출력할 수 있다.
상태 저장부(430)는 레지스터, 래치 및 플립플롭 등 데이터를 저장할 수 있는 다양한 소자들로 구현될 수 있다. 또한, 상태 저장부(430)는 제2 프로세서(420)와 구분되는 블록으로 도시되지만, 실시 예에 따라 제2 프로세서(420) 내부에 포함될 수도 있다.
메모리 영역(440)은 제2 프로세서(420)가 처리하는 작업의 결과를 저장할 수 있다. 제1 프로세서(410)는 제2 프로세서(420)의 작업이 완료되면 메모리 영역(440)으로부터 작업 결과를 리드할 수 있다.
실시 예에 따라, 제1 프로세서(410)는 도1의 호스트 프로세서(110)에 대응할 수 있다. 상태 저장부(430)는 도1의 메일 박스(145)에 대응할 수 있다. 즉, 도1의 호스트 프로세서(110)는 제1 프로세서(410)가 잔여 처리량(RT)의 체크 주기를 조정하는 방법에 따라 도1의 메일 박스(145)에 저장된 상태 정보의 체크 주기를 조정할 수 있다.
도17은 본 발명의 실시 예에 따라 도15의 제1 프로세서(410)가 잔여 처리량(RT)의 체크 주기를 조정하는 방법을 도시하는 도면이다. 도17에서 체크 주기의 증가율은 2이고, 감소율은 1/2인 것으로 가정할 것이다.
도17을 참조하면, 제2 프로세서(420)가 작업을 처리하는 동안 잔여 처리량(RT)이 상태 저장부(430)에 업데이트되고, 제1 프로세서(410)는 체크 주기를 조정하면서 체크 타이밍에 상태 저장부(430)로부터 잔여 처리량(RT)을 리드하여 제2 프로세서(420)의 작업이 종료하였는지 여부를 체크할 수 있다.
구체적으로, 체크 타이밍(CT0)에서 제1 프로세서(410)는 잔여 처리량(RT) "14"를 리드할 수 있다. 잔여 처리량(RT)이 "0"이 아니므로 제1 프로세서(410)는 체크 주기를 초기 값(IC)으로 설정할 수 있다.
이어서, 체크 주기(IC)가 경과한 후, 체크 타이밍(CT1)에서, 제1 프로세서(410)는 잔여 처리량(RT) "13"을 리드하고, 이전 잔여 처리량(RT) "14"와 현재 잔여 처리량(RT) "13"의 차이 "1"을 체크 주기 처리량(CPT)으로 계산할 수 있다. 그리고, 제1 프로세서(410)는 현재 잔여 처리량(RT) "13"이 체크 주기 처리량(CPT) "1"의 2배를 초과하는 것으로 결정할 수 있다. 이때, 체크 주기 처리량(CPT)의 2배가 현재 잔여 처리량(RT)과 비교되는 이유는, 체크 주기의 증가율이 2이기 때문이다. 결론적으로, 제1 프로세서(410)는 체크 주기(IC)를 체크 주기(2ㆍIC)로 2배만큼 증가시킬 수 있다.
이어서, 조정된 체크 주기(2ㆍIC)가 경과한 후, 체크 타이밍(CT2)에서, 제1 프로세서(410)는 잔여 처리량(RT) "11"을 리드하고, 이전 잔여 처리량(RT) "13"과 현재 잔여 처리량(RT) "11"의 차이 "2"을 체크 주기 처리량(CPT)으로 계산할 수 있다. 그리고, 제1 프로세서(410)는 현재 잔여 처리량(RT) "11"이 체크 주기 처리량(CPT) "2"의 2배를 초과하는 것으로 결정하고, 체크 주기(2ㆍIC)를 체크 주기(4ㆍIC)로 2배만큼 증가시킬 수 있다.
이어서, 조정된 체크 주기(4ㆍIC)가 경과한 후, 체크 타이밍(CT3)에서, 제1 프로세서(410)는 잔여 처리량(RT) "7"을 리드하고, 이전 잔여 처리량(RT) "11"과 현재 잔여 처리량(RT) "7"의 차이 "4"를 체크 주기 처리량(CPT)으로 계산할 수 있다. 그리고, 제1 프로세서(410)는 현재 잔여 처리량(RT) "7"이 체크 주기 처리량(CPT) "4"의 2배 이하이고, 체크 주기 처리량(CPT) "4"를 초과하는 것으로 결정하고, 체크 주기(4ㆍIC)를 유지할 수 있다.
이어서, 유지된 체크 주기(4ㆍIC)가 경과한 후, 체크 타이밍(CT4)에서, 제1 프로세서(410)는 잔여 처리량(RT) "3"을 리드하고, 이전 잔여 처리량(RT) "7"과 현재 잔여 처리량(RT) "3"의 차이 "4"를 체크 주기 처리량(CPT)으로 계산할 수 있다. 그리고, 제1 프로세서(410)는 현재 잔여 처리량(RT) "3"이 체크 주기 처리량(CPT) "4" 이하인 것으로 결정하고, 체크 주기(4ㆍIC)를 체크 주기(2ㆍIC)로 1/2배만큼 감소시킬 수 있다.
이어서, 감소된 체크 주기(2ㆍIC)가 경과한 후, 체크 타이밍(CT5)에서, 제1 프로세서(410)는 잔여 처리량(RT) "1"을 리드하고, 이전 잔여 처리량(RT) "3"과 현재 잔여 처리량(RT) "1"의 차이 "2"를 체크 주기 처리량(CPT)으로 계산할 수 있다. 그리고, 제1 프로세서(410)는 현재 잔여 처리량(RT) "1"이 체크 주기 처리량(CPT) "2" 이하인 것으로 결정하고, 체크 주기(2ㆍIC)를 체크 주기(IC)로 1/2배만큼 감소시킬 수 있다.
이어서, 감소된 체크 주기(IC)가 경과한 후, 체크 타이밍(CT6)에서, 제1 프로세서(410)는 잔여 처리량(RT) "0"을 리드하고, 제2 프로세서(420)의 작업이 종료한 것으로 결정할 수 있다.
따라서, 본 발명은 동작 초반에는 체크 주기를 늦춤으로써 파워 소비를 감소시키고, 동작 후반에는 체크 주기를 앞당겨 동작이 완료되는 타이밍을 포착하여 그 다음 작업을 지연없이 진행하도록 할 수 있다.
도18은 본 발명의 실시 예에 따른 데이터 처리 시스템(400)의 동작 방법을 예시적으로 도시하는 순서도이다. 도18은 제2 프로세서(420)가 작업을 시작한 뒤, 제1 프로세서(410)가 상태 저장부(430)에 업데이트되는 제2 프로세서(420)의 잔여 처리량(RT)을 리드함으로서 제2 프로세서(420)의 작업의 종료를 체크하는 방법을 도시한다.
도18을 참조하면, 단계(S110)에서, 제1 프로세서(410)는 제2 프로세서(420)의 작업이 시작된 뒤, 상태 저장부(430)로부터 잔여 처리량(RT)을 리드할 수 있다.
단계(S120)에서, 제1 프로세서(410)는 잔여 처리량(RT)이 "0"인지 판단할 수 있다. 잔여 처리량(RT)이 "0"일 때, 절차는 종료할 수 있다. 그러나, 잔여 처리량(RT)이 "0"이 아닐 때, 절차는 단계(S130)로 진행될 수 있다.
단계(S130)에서, 제1 프로세서(410)는 체크 주기를 초기 값으로 설정할 수 있다.
단계(S140)에서, 제1 프로세서(410)는 체크 주기에 따른 체크 타이밍에 상태 저장부(430)로부터 잔여 처리량을 리드할 수 있다.
단계(S150)에서, 제1 프로세서(410)는 잔여 처리량(RT)이 "0"인지 판단할 수 있다. 잔여 처리량(RT)이 "0"일 때, 절차는 종료할 수 있다. 그러나, 잔여 처리량(RT)이 "0"이 아닐 때, 절차는 단계(S160)로 진행될 수 있다.
단계(S160)에서, 제1 프로세서(410)는 현재 체크 타이밍의 현재 잔여 처리량과 이전 체크 타이밍의 이전 잔여 처리량에 근거하여 체크 주기 처리량을 계산할 수 있다. 구체적으로, 제1 프로세서(410)는 이전 잔여 처리량(RT)과 현재 잔여 처리량(RT)의 차이를 체크 주기 처리량으로 결정할 수 있다.
단계(S170)에서, 제1 프로세서(410)는 현재 잔여 처리량과 체크 주기 처리량에 근거하여 체크 주기를 조정할 수 있다. 그리고, 절차는 단계(S140)로 진행될 수 있다. 즉, 제1 프로세서(410)는 조정된 체크 주기에 따라 잔여 처리량을 반복적으로 리드할 수 있다.
도19는 본 발명의 실시 예에 따른 제1 프로세서(410)가 체크 주기를 조정하는 방법을 예시적으로 도시하는 순서도이다. 도19는 도18에 도시된 단계(S170)의 구체적인 실시 예일 수 있다.
단계(S171)에서, 제1 프로세서(410)는 현재 잔여 처리량(RT)이 체크 주기 처리량에 소정 증가율을 적용한 값을 초과하는지 여부를 판단할 수 있다. 현재 잔여 처리량(RT)이 체크 주기 처리량에 소정 증가율을 적용한 값을 초과하는 것으로 판단될 때, 절차는 단계(S172)로 진행될 수 있다. 그러나, 현재 잔여 처리량(RT)이 체크 주기 처리량에 소정 증가율을 적용한 값 이하로 판단될 때, 절차는 단계(S173)로 진행될 수 있다.
단계(S172)에서, 제1 프로세서(410)는 체크 주기를 해당 증가율만큼 증가시킬 수 있다.
단계(S173)에서, 제1 프로세서(410)는 현재 잔여 처리량(RT)이 체크 주기 처리량을 초과하는지 여부를 판단할 수 있다. 현재 잔여 처리량(RT)이 체크 주기 처리량을 초과하는 것으로 판단될 때, 절차는 단계(S174)로 진행될 수 있다. 그러나, 현재 잔여 처리량(RT)이 체크 주기 처리량 이하인 것으로 판단될 때, 절차는 단계(S175)로 진행될 수 있다.
단계(S174)에서, 제1 프로세서(410)는 체크 주기를 조정없이 유지할 수 있다.
단계(S175)에서, 제1 프로세서(410)는 체크 주기를 소정 감소율만큼 감소시킬 수 있다.
도 20은 본 발명의 실시 예에 따른 데이터 처리 시스템(1000)을 예시적으로 도시하는 도면이다. 도 20을 참조하면, 데이터 처리 시스템(1000)은 호스트 장치(1100)와 메모리 시스템(1200)을 포함할 수 있다.
호스트 장치(1100)는 인쇄 회로 기판(printed circuit board)과 같은 기판(board) 형태로 구성될 수 있다. 호스트 장치(1100)는 호스트 프로세서(1110) 및 접속 터미널(1120)을 포함할 수 있다.
호스트 프로세서(1110)는 도1의 호스트 프로세서(110)에 대응할 수 있다.
접속 터미널(1120)은 소켓(socket), 슬롯(slot) 또는 커넥터(connector)를 포함할 수 있고, 메모리 시스템(1200)은 접속 터미널(1120)에 마운트(mount)될 수 있다.
메모리 시스템(1200)은 인쇄 회로 기판과 같은 기판 형태로 구성될 수 있다. 메모리 시스템(1200)은 메모리 모듈 또는 메모리 카드로 불릴 수 있다. 메모리 시스템(2200)은 프로세서(1210), 메모리 장치(1220), 메모리 컨트롤러(1230), 및 접속 터미널(1240)을 포함할 수 있다.
프로세서(1210)는 도1의 프로세서(120)에 대응할 수 있다. 메모리 장치(1220)는 도1의 공유 메모리(130)에 대응할 수 있다. 메모리 컨트롤러(1230)는 도1의 메모리 컨트롤러(140)에 대응할 수 있다.
접속 터미널(1240)은 호스트 장치(1100)의 접속 터미널(1120)에 연결될 수 있다. 접속 터미널(1240)을 통해서, 호스트 장치(1100)와 메모리 시스템(1200) 간에 커맨드, 어드레스, 데이터 등과 같은 신호와, 전원이 전달될 수 있다. 접속 터미널(1240)은 호스트 장치(1100)와 메모리 시스템(1200)의 인터페이스 방식에 따라 다양한 형태로 구성될 수 있다. 접속 터미널(1240)은 메모리 시스템(1200)의 어느 한 변에 배치될 수 있다.
도 21은 본 발명의 실시 예에 따른 데이터 처리 시스템(2000)을 예시적으로 도시하는 도면이다. 도 21을 참조하면, 데이터 처리 시스템(2000)은 호스트 장치(2100)와 메모리 시스템(2200)을 포함할 수 있다.
호스트 장치(2100)는 인쇄 회로 기판(printed circuit board)과 같은 기판(board) 형태로 구성될 수 있다. 호스트 장치(2100)는 호스트 프로세서(2110)를 포함할 수 있다. 호스트 프로세서(2110)는 도1의 호스트 프로세서(110)에 대응할 수 있다.
메모리 시스템(2200)은 표면 실장형 패키지 형태로 구성될 수 있다. 메모리 시스템(2200)은 솔더 볼(solder ball)(2250)을 통해서 호스트 장치(2100)에 마운트될 수 있다.
메모리 시스템(2200)은 프로세서(2210), 메모리 장치(2220) 및 메모리 컨트롤러(2230)를 포함할 수 있다. 프로세서(2210)는 도1의 프로세서(120)에 대응할 수 있다. 메모리 장치(2220)는 도1의 공유 메모리(130)에 대응할 수 있다. 메모리 컨트롤러(2230)는 도1의 메모리 컨트롤러(140)에 대응할 수 있다.
도 22는 본 발명의 실시 예에 따른 데이터 처리 시스템(3000)을 예시적으로 도시하는 도면이다. 도 22를 참조하면, 데이터 처리 시스템(3000)은 호스트 프로세서(3100), 메모리 시스템(3200), 인터포저(3300) 및 반도체 기판(3400)을 포함할 수 있다.
호스트 프로세서(3100)와 메모리 시스템(3200)은 인터포저(3300)의 일면에 배치될 수 있다.
인터포저(3300)는 호스트 프로세서(3100)와 메모리 시스템(3200)을 전기적으로 연결할 수 있다. 인터포저(3300)를 통해서, 호스트 프로세서(3100)와 메모리 시스템(3200) 간에 커맨드, 어드레스, 데이터 등과 같은 신호와, 전원이 전달될 수 있다. 인터포저(3300)는 반도체 기판(3400) 상에 장착될 수 있다.
호스트 프로세서(3100)는 도1의 호스트 프로세서(110)에 대응할 수 있다.
메모리 시스템(3200)은 스택된 로직 반도체 장치(3210)와 메모리 장치(3220)를 포함할 수 있다. 로직 반도체 장치(3210)는 메모리 시스템(3200)의 동작을 제어할 수 있다. 로직 반도체 장치(3210)는 프로세서(3211)와 메모리 컨트롤러(3212)를 포함할 수 있다. 프로세서(3211)는 도1의 프로세서(120)에 대응할 수 있다. 메모리 컨트롤러(3212)는 도1의 메모리 컨트롤러(140)에 대응할 수 있다.
메모리 장치(3220)는 도1의 공유 메모리(130)에 대응할 수 있다.
메모리 시스템(3200)은, 예를 들어, HBM(High Bandwidth Memory)를 포함할 수 있다.
도 23은 본 발명의 실시 예에 따른 데이터 처리 시스템(4150)을 포함하는 네트워크 시스템(4000)을 예시적으로 도시하는 도면이다. 도 23을 참조하면, 네트워크 시스템(4000)은 네트워크(4500)를 통해서 연결된 서버 시스템(4100) 및 복수의 클라이언트 시스템들(4410~4430)을 포함할 수 있다.
서버 시스템(4100)은 복수의 클라이언트 시스템들(4410~4430)의 요청에 응답하여 데이터를 서비스할 수 있다. 예를 들면, 서버 시스템(4100)은 복수의 클라이언트 시스템들(4410~4430)로부터 제공된 데이터를 저장할 수 있다. 다른 예로서, 서버 시스템(4100)은 복수의 클라이언트 시스템들(4410~4430)로 데이터를 제공할 수 있다.
서버 시스템(4100)은 데이터 처리 시스템(4150)을 포함할 수 있다. 데이터 처리 시스템(4150)은 도 1의 데이터 처리 시스템(100), 도 15의 데이터 처리 시스템(400), 도 20의 데이터 처리 시스템(1000), 도 21의 데이터 처리 시스템(2000), 및 도22의 데이터 처리 시스템(3000)으로 구성될 수 있다.
본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 데이터 처리 시스템
110: 호스트 프로세서
120: 프로세서
130: 공유 메모리
140: 메모리 컨트롤러
145: 메일 박스

Claims (13)

  1. 작업의 결과가 소정 어드레스 범위에서 저장되는 메모리 영역;
    상기 작업의 잔여 처리량을 저장하는 상태 저장부;
    체크 주기에 따른 체크 타이밍마다 상기 상태 저장부로부터 상기 잔여 처리량을 리드하도록 구성된 제1 프로세서; 및
    상기 작업을 처리하도록 구성된 제2 프로세서를 포함하되,
    상기 제1 프로세서는, 현재 체크 타이밍의 현재 잔여 처리량과 이전 체크 타이밍의 이전 잔여 처리량에 근거하여 체크 주기 처리량을 계산하고, 상기 현재 잔여 처리량과 상기 체크 주기 처리량에 근거하여 상기 체크 주기를 조정하고,
    상기 잔여 처리량은 상기 어드레스 범위에서 현재까지 액세스된 어드레스에 근거하여 결정되는 데이터 처리 시스템.
  2. ◈청구항 2은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    상기 제1 프로세서는, 상기 이전 잔여 처리량과 상기 현재 잔여 처리량의 차이를 상기 체크 주기 처리량으로 결정하는 데이터 처리 시스템.
  3. ◈청구항 3은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    상기 제1 프로세서는, 상기 현재 잔여 처리량이 상기 체크 주기 처리량에 소정 증가율을 적용한 값을 초과할 때, 상기 체크 주기를 상기 증가율만큼 증가시키는 데이터 처리 시스템.
  4. ◈청구항 4은(는) 설정등록료 납부시 포기되었습니다.◈
    제3항에 있어서,
    상기 제1 프로세서는, 상기 현재 잔여 처리량이 상기 체크 주기 처리량에 상기 증가율을 적용한 값 이하이고 상기 체크 주기 처리량을 초과할 때, 상기 체크 주기를 조정없이 유지하는 데이터 처리 시스템.
  5. ◈청구항 5은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    상기 제1 프로세서는, 상기 현재 잔여 처리량이 상기 체크 주기 처리량 이하일 때, 상기 체크 주기를 소정 감소율만큼 감소시키는 데이터 처리 시스템.
  6. ◈청구항 6은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    상기 제1 프로세서는, 상기 작업이 시작된 뒤, 상기 체크 주기를 초기 값으로 설정함으로써 상기 잔여 처리량의 리드를 시작하는 데이터 처리 시스템.
  7. 삭제
  8. 제2 프로세서가 작업의 결과를 메모리 영역의 소정 어드레스 범위에 저장하고, 상기 어드레스 범위에서 현재까지 액세스된 어드레스에 근거하여 결정된 상기 작업의 잔여 처리량을 상태 저장부에 저장하는 단계;
    제1 프로세서가 체크 주기에 따른 체크 타이밍마다 상기 상태 저장부로부터 상기 잔여 처리량을 리드하는 단계;
    상기 제1 프로세서가 현재 체크 타이밍의 현재 잔여 처리량과 이전 체크 타이밍의 이전 잔여 처리량에 근거하여 체크 주기 처리량을 계산하는 단계; 및
    상기 제1 프로세서가 상기 현재 잔여 처리량과 상기 체크 주기 처리량에 근거하여 상기 체크 주기를 조정하는 단계를 포함하는 데이터 처리 시스템의 동작 방법.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
KR1020180024836A 2018-02-28 2018-02-28 데이터 처리 시스템 및 그것의 동작 방법 KR102533147B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020180024836A KR102533147B1 (ko) 2018-02-28 2018-02-28 데이터 처리 시스템 및 그것의 동작 방법
US16/210,418 US11169953B2 (en) 2018-02-28 2018-12-05 Data processing system accessing shared memory by using mailbox
CN202310066589.4A CN115994105A (zh) 2018-02-28 2018-12-11 存储系统和包括存储系统的数据处理系统
CN201811509646.7A CN110209608B (zh) 2018-02-28 2018-12-11 存储系统和包括存储系统的数据处理系统
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
KR1020180024836A KR102533147B1 (ko) 2018-02-28 2018-02-28 데이터 처리 시스템 및 그것의 동작 방법

Publications (2)

Publication Number Publication Date
KR20190103880A KR20190103880A (ko) 2019-09-05
KR102533147B1 true KR102533147B1 (ko) 2023-05-17

Family

ID=67949824

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180024836A KR102533147B1 (ko) 2018-02-28 2018-02-28 데이터 처리 시스템 및 그것의 동작 방법

Country Status (1)

Country Link
KR (1) KR102533147B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009087127A (ja) 2007-10-01 2009-04-23 Konica Minolta Business Technologies Inc 画像処理システム、ジョブ処理方法及びプログラム
JP2011065225A (ja) * 2009-09-15 2011-03-31 Nec Corp 新着メール確認制御装置、新着メール確認制御システム、新着メール確認制御方法、及び新着メール確認制御プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100855587B1 (ko) * 2007-01-17 2008-09-01 삼성전자주식회사 메일박스 영역을 가지는 멀티 패스 액세스블 반도체 메모리장치 및 그에 따른 메일박스 액세스 제어방법
KR20090128605A (ko) * 2008-06-11 2009-12-16 삼성전자주식회사 버스트 전송이 가능한 프로세서간 통신 장치, 프로세서간통신 장치를 포함하는 시스템 및 프로세서간 통신 장치를구동하기 위한 디바이스 드라이버
KR20110068386A (ko) * 2009-12-16 2011-06-22 삼성전자주식회사 반도체 시스템과 그 동작 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009087127A (ja) 2007-10-01 2009-04-23 Konica Minolta Business Technologies Inc 画像処理システム、ジョブ処理方法及びプログラム
JP2011065225A (ja) * 2009-09-15 2011-03-31 Nec Corp 新着メール確認制御装置、新着メール確認制御システム、新着メール確認制御方法、及び新着メール確認制御プログラム

Also Published As

Publication number Publication date
KR20190103880A (ko) 2019-09-05

Similar Documents

Publication Publication Date Title
KR102500802B1 (ko) 플래쉬 집적 고 대역폭 메모리 장치
US10394723B2 (en) Data accessing method and PCIe storage device
CN107871524B (zh) 对存储装置进行复位的电子装置和操作该电子装置的方法
US11194743B2 (en) Method of accessing a dual line SSD device through PCIe EP and network interface simultaneously
JP2003526863A (ja) スマートカードとホストステーションとの間の通信の方法
US7469309B1 (en) Peer-to-peer data transfer method and apparatus with request limits
US20220058157A1 (en) Memory system and data processing system including the memory system
TW201732612A (zh) 使用同步化和非同步化記憶體裝置之適應性機制的混合記憶體、其方法及其儲存節點
US11068283B2 (en) Semiconductor apparatus, operation method thereof, and stacked memory apparatus having the same
WO2018076882A1 (zh) 存储设备的操作方法及物理服务器
CN110990116B (zh) 在智能网卡和虚拟机之间传输数据的方法、装置和系统
CN117591450B (zh) 一种数据处理系统、方法、设备及介质
KR102533147B1 (ko) 데이터 처리 시스템 및 그것의 동작 방법
CN111666224A (zh) 电子装置和用于利用电子装置的存储器空间的方法
KR102545226B1 (ko) 메모리 시스템 및 그것을 포함하는 데이터 처리 시스템
CN106325377B (zh) 外部设备扩展卡及输入输出外部设备的数据处理方法
WO2005114437A1 (en) Integrated circuit having processor and switch capabilities
US7596652B2 (en) Integrated circuit having processor and bridging capabilities
JP7117674B2 (ja) データ転送システム、及びシステムホスト
CN116743587B (zh) 一种基于异构计算加速卡的虚拟网络接口实现方法及装置
US8443145B2 (en) Distributed memory usage for a system having multiple integrated circuits each including processors
US10529396B2 (en) Preinstall of partial store cache lines
CN118035143A (zh) 一种dma地址的分配方法、设备及存储介质
US9921995B2 (en) Managing data in USB communication
CN115174484A (zh) 基于rdma的数据传输方法、装置、设备及存储介质

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right