KR20170062835A - 공유 자원을 효율적으로 관리하는 데이터 처리 시스템 - Google Patents

공유 자원을 효율적으로 관리하는 데이터 처리 시스템 Download PDF

Info

Publication number
KR20170062835A
KR20170062835A KR1020150168510A KR20150168510A KR20170062835A KR 20170062835 A KR20170062835 A KR 20170062835A KR 1020150168510 A KR1020150168510 A KR 1020150168510A KR 20150168510 A KR20150168510 A KR 20150168510A KR 20170062835 A KR20170062835 A KR 20170062835A
Authority
KR
South Korea
Prior art keywords
data processing
resource
processing apparatus
signal
register
Prior art date
Application number
KR1020150168510A
Other languages
English (en)
Other versions
KR102416465B1 (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 KR1020150168510A priority Critical patent/KR102416465B1/ko
Priority to US15/354,000 priority patent/US10346209B2/en
Publication of KR20170062835A publication Critical patent/KR20170062835A/ko
Application granted granted Critical
Publication of KR102416465B1 publication Critical patent/KR102416465B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/4424Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used
    • 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/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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]
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)

Abstract

본 발명의 실시 예에 따른 데이터 처리 시스템은, 공유 자원, 상기 공유 자원에 대한 제1 자원 요청 신호를 출력하는 제1 데이터 처리 장치, 상기 공유 자원에 대한 제2 요청 신호를 출력하는 제2 데이터 처리 장치, 및 상기 공유 자원의 상태를 확인하고, 상기 제1 및 제2 요청 신호 중 먼저 요청된 신호를 확인하며, 상기 제1 자원 요청 신호가 상기 제2 요청 신호 보다 빠른 경우, 상기 제1 데이터 처리 장치로 승인 신호를 출력하고, 상기 제2 데이터 처리 장치로 거절 신호를 출력하는 자원 관리 마스터를 포함한다.

Description

공유 자원을 효율적으로 관리하는 데이터 처리 시스템{Data Processing System of Effectively Managing Shared Resource}
본 발명의 개념에 따른 실시 예는 공유 자원 관리 방법 및 그 장치에 관한 것으로, 특히, 반도체 집적 회로의 사이즈를 줄이고 공유 자원을 효율적으로 관리하는 데이터 처리 시스템 및 이를 포함하는 반도체 집적회로 장치에 관한 것이다.
일반적으로 데이터 처리 시스템은 이미지 데이터를 처리하는 데 필요한 여러 하드웨어 자원들을 포함한다. 이러한 하드웨어 자원들은 모듈, IP(Intellectual Property), 프로세서(processor) 또는 칩(chip) 등의 다양한 이름으로 불릴 수 있다.
한편, 스마트 폰 및 태블릿 PC와 같은 모바일 기기에 중추적인 역할을 하는 어플리케이션 프로세서(AP: Application Processor)의 멀티미디어 사양은 점차 높아지고 있기 때문에, 성능을 높이면서 파워 소모와 면적을 줄일 수 있는 요구가 지속되고 있다. 최근에는 성능이 포화(saturation)되어 가는 상황이어서, 오히려 전력 및 면적에 대한 최적화가 좀 더 높은 우선순위를 가지는 상황이 되었다. 제한된 면적으로 목표 사양(target specification)을 맞추기 위해 자원 공유는 선택이 아닌 필수가 되고 있다.
본 발명이 이루고자 하는 기술적인 과제는 데이터를 처리하는 데이터 처리 장치에서 면적을 줄일 수 있도록 효율적으로 공유 자원을 관리하는 데이터 처리 시스템을 제공함에 있다.
본 발명의 실시 예에 따른 데이터 처리 시스템은, 공유 자원; 상기 공유 자원이 필요한지를 판단하고, 상기 판단 결과에 따라 상기 공유 자원에 대한 제1 자원 요청 신호를 발생하는 제1 자원 관리 슬래이브를 포함하는 제1 데이터 처리 장치; 상기 공유 자원이 필요한지를 판단하고, 상기 판단 결과에 따라 상기 공유 자원에 대한 제2 자원 요청 신호를 발생하는 제2 자원 관리 슬래이브를 포함하는 제2 데이터 처리 장치; 및 상기 공유 자원의 상태를 확인하고, 상기 제1 자원 관리 슬래이브로부터 출력된 상기 제1 자원 요청 신호 및 상기 제2 자원 관리 슬래이브로부터 출력된 상기 제2 자원 요청 신호 중 먼저 요청된 신호를 확인하며, 상기 제1 자원 요청 신호가 상기 제2 요청 신호 보다 빠른 경우, 상기 제1 데이터 처리 장치로 승인 신호를 출력하고, 상기 제2 데이터 처리 장치로 거절 신호를 출력하는 자원 관리 마스터를 포함한다.
상기 제1 데이터 처리 장치는 상기 승인 신호에 응답하여, 상기 공유 자원을 사용하여 데이터를 처리한다.
상기 제1 데이터 처리 장치는 상기 승인 신호에 응답하여, 상기 공유 자원을 통해 이미지 데이터를 프레임 단위로 수신하고, 상기 수신한 이미지 데이터를 처리할 수 있다.
상기 제1 데이터 처리 장치는 임의의 시점에 업데이트될 수 있는 구성 레지스터; 및 상기 승인 신호에 응답하여, 상기 구성 레지스터에 기초하여 업데이트되는 사용 레지스터를 포함하며, 상기 제1 데이터 처리 장치는 상기 사용 레지스터의 정보에 따라 동작할 수 있다.
상기 제1 자원 관리 슬래이브는 상기 구성 레지스터의 업데이트가 완료되면, 상기 구성 레지스터의 구성 정보를 해석하여 상기 공유 자원이 필요한지를 판단하고, 상기 판단 결과에 따라 상기 제1 자원 요청 신호를 발생할 수 있다.
상기 제1 데이터 처리 장치는 하나의 프레임과 다음 프레임 사이의 구간인 프레임 블랭크 구간 동안에 상기 사용 레지스터의 정보가 상기 구성 레지스터의 구성 정보에 기초하여 업데이트되도록 제어하는 제1 컨트롤러를 더 포함할 수 있다.
상기 제1 자원 관리 슬래이브는 상기 자원 관리 마스터)로부터 상기 제1 승인 신호를 수신하고, 상기 제1 승인 신호에 응답하여, 상기 제1 컨트롤러로 업데이트 요청 신호를 출력할 수 있다.
상기 제1 컨트롤러는 상기 업데이트 요청 신호에 응답하여, 상기 사용 레지스터의 정보가 상기 구성 레지스터의 구성 정보에 기초하여 업데이트되도록 제어할 수 있다.
상기 제2 데이터 처리 장치는 상기 제2 요청 신호를 출력하기 전에 업데이트되는 제2 구성 레지스터; 및 제2 사용 레지스터를 포함하고, 상기 제2 데이터 처리 장치는 상기 제1 거절 신호에 응답하여, 업데이트되지 않은 상기 제2 사용 레지스터에 따라 동작할 수 있다.
상기 자원 관리 마스터는 상기 공유 자원의 상태가 아이들 상태가 되면, 상기 제2 데이터 처리 장치로 제2 승인 신호를 출력하고, 상기 제2 데이터 처리 장치는 상기 제2 승인 신호에 응답하여 상기 공유 자원을 사용하여 데이터를 처리할 수 있다.
상기 제2 데이터 처리 장치는 상기 제2 승인 신호에 응답하여, 프레임과 다음 프레임 사이의 구간인 프레임 블랭크 구간 동안에 상기 제2 사용 레지스터를 기 업데이트된 상기 구성 레지스터에 기초하여 업데이트할 수 있다.
상기 데이터 처리 시스템은 상기 공유 자원에 대한 제3 요청 신호를 출력하는 제3 데이터 처리 장치를 더 포함할 수 있다.
상기 자원 관리 마스터는 상기 제2 요청 신호가 제3 요청 신호 보다 빠른 경우에, 상기 공유 자원이 아이들 상태가 되면, 상기 제2 데이터 처리 장치로 제2 승인 신호를 출력하고, 상기 제3 데이터 처리 장치로 거절 신호를 출력하며, 상기 제2 데이터 처리 장치는 상기 제2 승인 신호에 응답하여, 상기 공유 자원을 사용하여 데이터를 처리할 수 있다.
상기 자원 관리 마스터는 상기 제2 요청 신호와 상기 제3 요청 신호의 요청 시점이 실질적으로 동일한 경우, 상기 공유 자원이 아이들 상태가 되면, 상기 제2 데이터 처리 장치와 상기 제3 데이터 처리 장치의 우선 순위에 따라, 상기 제2 데이터 처리 장치 또는 상기 제3 데이터 처리 장치로 제2 승인 신호를 출력할 수 있다.
본 발명의 실시예에 다른 복수(2 이상)의 데이터 처리 장치에 의하여 공유되는 공유 자원을 관리하는 데이터 처리 시스템은 제1 구성 정보를 기 저장하고 있는 제1 레지스터를 포함하고, 상기 제1 레지스터에 새롭게 설정된 제2 구성 정보를 해석하여, 상기 공유 자원에 대한 자원 요청 신호를 출력하는 제1 데이터 처리 장치; 및 상기 자원 요청 신호에 응답하여 상기 제1 데이터 처리 장치로 승인 신호 또는 거절 신호를 출력하는 자원 관리 마스터를 포함한다.
상기 제1 구성 정보는 제1 프레임 데이터를 처리하는 데 적용하기 위한 정보이고, 상기 제2 구성 정보는 제2 프레임 데이터를 처리하는 데 적용하기 위한 정보이며, 상기 제1 데이터 처리 장치는 상기 승인 신호에 응답하여 상기 제2 정보에 따라 상기 제2 프레임 데이터를 처리하고, 상기 거절 신호에 응답하여, 상기 제1 정보에 따라 상기 제2 프레임 데이터를 처리한다.
상기 제1 데이터 처리 장치는 상기 승인 신호에 응답하여 상기 제1 레지스터에 기초하여 업데이트되는 제2 레지스터를 더 포함하며, 상기 제1 데이터 처리 장치는 상기 제2 레지스터의 정보에 기초하여, 상기 제1 및 제2 프레임 데이터를 처리할 수 있다.
본 발명의 실시 예에 따르면, 공유 자원을 공통적으로 사용하는 복수(2 이상)의 데이터 처리 장치로부터의 자원 요청에 대하여 자원 관리 마스터에서 승인 여부를 판단하여, 승인 또는 거절함으로써, 동일한 공유 자원에 대하여 복수(2 이상)의 데이터 처리 장치간 충돌이 발생하지 않도록 관리된다.
따라서, 본 발명의 실시예에 따르면, 공유 자원이 효율적으로 관리될 수 있다. 이에 따라, 데이터 처리 시스템은 전용 자원 보다는 공유 자원을 더 많이 구비함으로써 면적을 줄일 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 실시예에 따른 데이터 처리 시스템의 구성 블록도이다.
도 2는 본 발명의 실시예에 따른 데이터 처리 시스템을 보다 상세히 나타내는 구성 블록도이다.
도 3은 도 2에 도시된 제1 데이터 처리 장치의 구성의 일부를 나타내는 도면이다.
도 4는 도 2에 도시된 자원 관리 마스터의 일 실시예를 나타내는 도면이다.
도 5는 도 4의 자원 관리 마스터의 동작을 설명하기 위한 개략적인 신호 타이밍도이다.
도 6은 본 발명의 일 실시예에 따른 데이터 처리 시스템에서 제1 데이터 처리 장치의 자원 요청이 승인된 경우의 동작을 설명하기 위한 도면이다.
도 7을 본 발명의 일 실시예에 따른 데이터 처리 시스템에서 제1 데이터 처리 장치의 자원 요청이 거절된 경우의 동작을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 데이터 처리 시스템의 동작 방법을 나타내는 플로우차트이다.
도 9는 본 발명의 일 실시예에 따른 데이터 처리 시스템을 포함하는 전자 시스템의 구성 블록도이다.
도 10은 도 9에 도시된 디스플레이 컨트롤러의 일 실시예를 나타내는 구성 블록도이다.
도 11은 본 발명의 다른 실시 예에 따른 전자 시스템의 구성 블록도이다.
도 12는 본 발명의 실시예에 따른 전자 시스템 및 인터페이스를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
본 발명의 실시예에 따른 데이터 처리 시스템은 전용 자원(Dedicated resource)과 공유 자원(shared resource)을 포함할 수 있다. 공유 자원이란 둘 이상의 데이터 처리 장치(모듈, 칩, 프로세서 등으로 칭해질 수도 있음)가 공통적으로 사용할 수 있는 자원을 의미한다. 둘 이상의 데이터 처리 장치는 공유 자원을 할당받은 경우에만 공유 자원을 사용함으로써, 둘 이상의 데이터 처리 장치간의 충돌(conflict)은 방지될 수 있다. 전용 자원이란, 정해진 하나의 데이터 처리 장치만이 전용으로 사용하고, 다른 데이터 처리 장치는 사용할 수 없는 자원을 의미한다.
도 1은 본 발명의 실시예에 따른 데이터 처리 시스템(100)의 구성 블록도이다. 이를 참조하면, 본 발명의 실시예에 따른 데이터 처리 시스템(100)은 제1 내지 제M(M은 1이상의 정수) 공유 자원들(110-1~110-M), 제1 내지 제M 스위치들(120-1~120-M), 제1 내지 제N(N은 2 이상의 정수) 데이터 처리 장치(130-1~130-N) 및 자원 관리 마스터(180)를 포함한다.
제1 내지 제M 공유 자원들(110-1~110-M) 각각은 제1 내지 제N 데이터 처리 장치(130-1~130-N) 중 하나에 연결되어 데이터를 제공할 수 있다. 실시예에 따라, 상기 데이터는 프레임(frame) 단위의 이미지 데이터일 수 있으나, 이에 한정되는 것은 아니다. 예컨대, 데이터 처리 시스템(100)은 프레임 단위로 이미지 데이터를 수신하여 처리할 수 있다.
예컨대, 제1 내지 제M 공유 자원들(110-1~110-M) 각각은 대응하는 스위치(120-1~120-M)를 통해 연결된 데이터 처리 장치(130-1~130-N)로 데이터를 제공할 수 있다.
제1 내지 제N 데이터 처리 장치(130-1~130-N) 각각은 제1 내지 제M(2이상의 정수) 공유 자원들(110-1~110-M) 중 하나 이상을 공유할 수 있다.
제1 내지 제N 데이터 처리 장치(130-1~130-N) 각각은 제1 내지 제M 공유 자원들(110-1~110-M) 중 하나 이상의 공유 자원을 할당받고, 할당받은 공유 자원으로부터 데이터를 수신하여 처리할 수 있다.
이를 위하여, 제1 내지 제N 데이터 처리 장치(130-1~130-N) 각각은 필요한 공유 자원에 대한 할당을 자원 관리 마스터(180)에게 요청할 수 있다.
제1 내지 제M 스위치들(120-1~120-M)은 제1 내지 제M 공유 자원들(110-1~110-M)과 일대일로 대응하여 구비될 수 있다. 제1 내지 제M 스위치들(120-1~120-M) 각각은 자원 관리 마스터(180)의 스위치 제어 신호(CS1~CSM)에 응답하여 해당 공유 자원을 제1 내지 제N 데이터 처리 장치(130-1~130-N) 중 어느 하나의 데이터 처리 장치에 연결한다.
예컨대, 제1 스위치(120-1)는 자원 관리 마스터(180)의 제1 스위치 제어 신호(CS1)에 응답하여 제1 공유 자원(110-1)을 제1 내지 제N 데이터 처리 장치(130-1~130-N) 중 어느 하나와 연결하고, 제2 스위치(120-2)는 자원 관리 마스터(180)의 제2 스위치 제어 신호(CS2)에 응답하여 제2 공유 자원(110-2)을 제1 내지 제N 데이터 처리 장치(130-1~130-N) 중 어느 하나와 연결할 수 있다.
자원 관리 마스터(180)는 제1 내지 제N 데이터 처리 장치(130-1~130-N)로부터 자원 할당 요청에 따라, 해당 자원을 요청한 데이터 처리 장치에 할당하기 위해 제1 내지 제M 스위치들(120-1~120-M)을 제어할 수 있다.
도 2는 본 발명의 실시예에 따른 데이터 처리 시스템을 보다 상세히 나타내는 구성 블록도이다. 도 2에는 도 1의 제1 내지 제N 데이터 처리 장치(130-1~130-N)의 일 실시예가 도시된다.
도 1 및 도 2를 참조하면, 제1 내지 제N 데이터 처리 장치(130-1~130-N) 각각은 기능 모듈(140-1~140-N), 레지스터(150-1~150-N), 자원 관리 슬래이브(160-1~160-N), 및 컨트롤러(170-1~170-N)를 포함할 수 있다.
기능 모듈(140-1~140-N)은 할당된 공유 자원을 이용하여 데이터를 처리한다. 예컨대, 기능 모듈(140-1~140-N)은 공유 자원을 통하여 이미지 데이터를 프레임 단위로 수신하여 처리한다. 예컨대, 기능 모듈(140-1~140-N)은 이미지 데이터를 강화(enhancement)하거나 하나 이상의 이미지 데이터를 합성하는 등의 데이터 처리(data processing)를 수행할 수 있다.
이 때, 기능 모듈(140-1~140-N)은 레지스터(150-1~150-N)에 설정된 정보에 따라, 이미지 데이터를 처리한다.
레지스터(150-1~150-N)는 기능 모듈(140-1~140-N)의 동작을 특정하기 위한 정보들을 저장한다. 예컨대, 시스템의 메인 프로세서(예컨대, 어플리케이션 프로세서)가 기능 모듈(140-1~140-N)의 동작을 특정하기 위하여 레지스터(150-1~150-N)를 설정할 수 있다.
레지스터(150-1~150-N)는, 기능 모듈(140-1~140-N)이 데이터를 읽어와서 처리하는 데 필요한 정보들, 예를 들어, 데이터의 주소 정보, 데이터 크기, 보정 여부, 보정 계수, 투명도 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
자원 관리 슬래이브(160-1~160-N)는 레지스터(150-1~150-N)에 설정된 구성 정보를 해석하여 새로운 공유 자원의 할당이 필요한지를 판단한다. 상기 판단 결과, 새로운 공유 자원(예컨대, 제1 공유 자원(110-1))이 필요하면, 자원 관리 슬래이브(160-1~160-N)는 새로운 공유 자원(예컨대, 제1 공유 자원(110-1))의 할당(혹은 사용)을 요청하는 자원 요청 신호를 자원 관리 마스터(180)로 출력한다.
자원 관리 마스터(180)는 복수의 공유 자원들(110-1~110-M)을 관리하며, 공유 자원 관리 슬래이브(160-1~160-N)와 연동하여 복수의 공유 자원들(110-1~110-M) 각각을 할당한다.
자원 관리 마스터(180)는 제1 내지 제N 데이터 처리 장치(130-1~130-N)로부터 자원 할당을 요청하는 자원 요청 신호를 수신하고 상기 자원 요청 신호에 대한 응답 신호를 해당 데이터 처리 장치로 전송한다. 응답 신호는 해당 공유 자원의 할당(혹은 사용)을 허용하는 승인 신호 또는 해당 공유 자원을 할당(혹은 사용)을 거절하는 거절 신호를 포함할 수 있다.
자원 관리 마스터(180)는 제1 내지 제M 공유 자원들(110-1~110-M)의 상태(예컨대, 아이들(idle) 상태 인지 혹은 비지(busy) 상태인지)를 확인하고, 복수의 자원 요청 신호들의 선후를 판단할 수 있다.
예컨대, 자원 관리 마스터(180)는 동일한 공유 자원에 대한 둘 이상의 데이터 처리 장치로부터 자원 요청 신호가 있는 경우, 가장 먼저 요청한 데이터 처리 장치로 승인 신호를 출력하고, 다른 데이터 처리 장치로는 거절 신호를 출력할 수 있다. 즉, 자원 관리 마스터(180)는 동일한 공유 자원에 대한 둘 이상의 데이터 처리 장치로부터 자원 요청 신호가 있는 경우, 먼저 요청한 순서대로 순차적으로, 해당 데이터 처리 장치로 승인 신호를 출력할 수 있다.
예컨대, 자원 관리 마스터(180)는 동일한 공유 자원에 대한 둘 이상의 데이터 처리 장치로부터 자원 요청 신호가 실질적으로 동시에 있는 경우, 둘 이상의 데이터 처리 장치 간의 우선 순위에 따라 우선 순위가 높은 데이터 처리 장치로 승인 신호를 출력하고, 다른 데이터 처리 장치로는 거절 신호를 출력할 수 있다. 그러나, 본 발명의 실시예가 이에 한정되는 것은 아니다.
실시예에 따라, 자원 관리 마스터(180)는 동일한 공유 자원에 대한 둘 이상의 데이터 처리 장치로부터 자원 요청 신호가 실질적으로 동시에 있는 경우, 임의로 선택한 하나의 데이터 처리 장치로 승인 신호를 출력하고, 다른 데이터 처리 장치로는 거절 신호를 출력할 수도 있다.
자원 관리 마스터(180)로부터 승인 신호를 수신한 데이터 처리 장치는 해당 공유 자원을 사용하여 데이터를 처리할 수 있다. 한편, 자원 관리 마스터(180)로부터 거절 신호를 수신한 데이터 처리 장치는, 자원 관리 마스터(180)로부터 승인 신호를 수신할 때까지 해당 공유 자원을 사용할 수 없다.
실시예에 따라, 자원 관리 마스터(180)로부터 거절 신호를 수신한 데이터 처리 장치는 자원 관리 마스터(180)로부터 승인 신호를 수신할 때까지 기존 공유 자원을 이용하여 데이터를 처리할 수 있다.
컨트롤러(170-1~170-N)는 레지스터(150-1~150-N)에 설정된 정보에 따라 기능 모듈(140-1~140-N)의 동작을 제어한다.
실시예에 따라, 레지스터(150-1~150-N)는 시스템의 메인 프로세서(예컨대, AP) 또는 상기 시스템에서 구동되는 소프트웨어(예컨대, OS 또는 어플리케이션 프로그램)에서 설정할 수 있는 제1 레지스터(이하, '구성 레지스터'라 함)과 기능 모듈(140-1~140-N)이 사용하는 제2 레지스터(이하, '사용 레지스터'라 함)를 포함할 수 있다.
이와 같이, AP 등에 의해 임의의 시점에 설정될 수 있는 구성 레지스터와 기능 모듈(140-1~140-N)이 실제 사용하는 사용 레지스터를 별도로 구비함으로써, 제1 레지스터(150-1)는 시스템이나 소프트웨어의 레이턴시(latency)에 관계없이, 프레임 단위로 제어가 가능하다. 이에 대해서는 도 3을 참조하여 상세히 후술한다.
도 3은 도 2에 도시된 제1 데이터 처리 장치(130-1)의 구성의 일부를 나타내는 도면이다. 도 2 내지 도 3을 참조하여, 제1 데이터 처리 장치(130-1)의 동작을 설명한다.
이하에서는, 대표적으로 제1 데이터 처리 장치(130-1)의 구성 및 동작에 대하여 설명하나 나머지 데이터 처리 장치(130-2~130-N)의 구성 및 동작 역시 제1 데이터 처리 장치(130-1)의 구성 및 동작과 동일할 수 있다.
제1 레지스터(150-1)는 시스템의 메인 프로세서(예컨대, AP) 또는 상기 시스템에서 구동되는 소프트웨어(예컨대, OS 또는 어플리케이션 프로그램)에서 설정할 수 있는 구성 레지스터(151)와 제1 기능 모듈(140-1)이 사용하는 사용 레지스터(152)를 포함할 수 있다. 예컨대, 구성 레지스터(151)와 사용 레지스터(152)는 동일한 구조의 레지스터일 수 있다.
AP는 임의의 시점에 다음 프레임 데이터(K-th Frame)의 처리를 위하여 제1 레지스터(150-1)의 구성 레지스터(151)를 설정할 수 있다. AP가 구성 레지스터(151)의 설정을 완료하면, 업데이트 요청 신호(SFR_UPREQ)를 설정하여, 제1 자원 관리 슬래이브(160-1)에게 구성 레지스터(151)의 설정이 완료되었음을 알려줄 수 있다.
제1 자원 관리 슬래이브(160-1)는 구성 레지스터(151)의 업데이트 요청 신호(SFR1_UPREQ)가 설정되면, 구성 레지스터(151)에 설정된 구성 정보(SFR1_CFG)를 읽고, 구성 정보를 해석하여 새로운 공유 자원이 필요한지를 판단한다.
예컨대, 제1 자원 관리 슬래이브(160-1)는 구성 레지스터(151)에 설정된 구성 정보에 따라, 복수의 공유 자원들 중 어떤 공유 자원을 요청할지를 판단한다.
새로운 공유 자원이 필요한 경우, 제1 자원 관리 슬래이브(160-1)는 자원 관리 마스터(180)로 해당 공유 자원을 요청하는 자원 요청 신호(R1_REQ_S1~ RM_REQ_S1)를 보낸다.
예컨대, 제1 자원 관리 슬래이브(160-1)는 제1 내지 제M 공유 자원 각각에 대한 요청 여부를 나타내는 제1 내지 제 M 자원 요청 신호(R1_REQ_S1~ RM_REQ_S1)를 출력할 수 있다. 예컨대, 제1 자원 관리 슬래이브(160-1)는 제1 공유 자원(110-1)에 대한 새로운 할당이 필요한 경우, 제1 자원 요청 신호(R1_REQ_S1)를 제1 로직 레벨(예컨대, '하이레벨' 또는 '1')로 인에이블할 수 있다. 본 실시예에서 사용되는 신호들 각각의 로직 레벨은 하나의 예시일 뿐 달라질 수 있다.
제1 자원 관리 슬래이브(160-1)는 제1 내지 제 M 자원 요청 신호(R1_REQ_S1~ RM_REQ_S1)에 대한 응답 신호를 자원 관리 마스터(180)로부터 수신할 수 있다.
자원 관리 마스터(180)는 제1 내지 제M 공유 자원(110-1~110-M) 각각에 대한 사용 여부를 나타내는 제1 내지 제 M 자원 사용 신호(R1_USE_S1~ RM_USE_S1) 및 제1 내지 제M 공유 자원 각각에 대한 충돌 여부를 나타내는 제1 내지 제 M 자원 충돌 신호(R1_CFT_S1~ RM_CFT_S1)를 출력할 수 있다.
예컨대, 제1 자원 관리 슬래이브(160-1)가 제1 내지 제M 공유 자원(110-1)에 대한 요청을 한 경우, 자원 관리 마스터(180)는 제1 공유 자원(110-1)을 제1 데이터 처리 장치(130-1)에 할당하는 경우, 제1 로직 레벨로 인에이블된 제1 자원 사용 신호(R1_USE_S1) 및 제2 로직 레벨(예컨대, '로우레벨' 또는 '0')으로 디스에이블된 제1 자원 충돌 신호(R1_CFT_S1)를 제1 자원 관리 슬래이브(160-1)로 출력할 수 있다. 여기서, 제1 로직 레벨로 인에이블된 제1 자원 사용 신호(R1_USE_S1)는 제1 공유 자원(110-1)의 사용 승인을 의미할 수 있고, 제2 로직 레벨로 디스에이블된 제1 자원 충돌 신호(R1_CFT_S1)는 제1 공유 자원(110-1)에 대한 사용 충돌이 없음을 나타낼 수 있다.
제1 자원 사용 신호(R1_USE_S1) 및 제1 자원 충돌 신호(R1_CFT_S1) 중 적어도 하나는 상술한 승인 신호 또는 거절 신호에 해당될 수 있다.
예컨대, 제1 자원 사용 신호(R1_USE_S1)가 인에이블되고, 제1 자원 충돌 신호(R1_CFT_S1)가 디스에이블되면, 상술한 승인 신호에 해당될 수 있고, 제1 자원 사용 신호(R1_USE_S1)가 디스에이블되고, 제1 자원 충돌 신호(R1_CFT_S1)가 인에이블되면 상술한 거절 신호에 해당될 수 있다.
그러나, 본 발명의 실시예가 이에 한정되는 것은 아니다. 예컨대, 제1 자원 사용 신호(R1_USE_S1) 및 제1 자원 충돌 신호(R1_CFT_S1) 중 어느 하나만 사용될 수도 있다.
제1 자원 관리 슬래이브(160-1)는 자원 관리 마스터(180)의 제1 내지 제 M 자원 사용 신호(R1_USE_S1~ RM_USE_S1) 및 제1 내지 제 M 자원 충돌 신호(R1_CFT_S1~ RM_CFT_S1)에 따라, 제1 내지 제M 공유 자원(110-1~110-M) 중 하나 이상의 공유 자원에 대한 사용권한을 획득할 수 있다.
요청한 공유 자원에 대한 사용권한을 획득하면, 제1 자원 관리 슬래이브(160-1)는 업데이트 요청 신호(SFR_UPREQ)를 제1 컨트롤러(170-1)로 전달한다.
예컨대, 요청한 공유 자원(110-1)에 대한 사용권한을 획득하면, 제1 자원 관리 슬래이브(160-1)의 업데이트 제어기(161-1)는 제1 연결 스위치(SW1)를 온(ON)하여, 업데이트 요청 신호(SFR_UPREQ)가 제1 컨트롤러(170-1)로 전달되도록 제어할 수 있다.
제1 컨트롤러(170-1)는, 업데이트 요청 신호(SFR_UPREQ)에 응답하여, 특정 구간(예컨대, 프레임 블랭크 구간)에서 사용 레지스터(152)의 정보가 구성 레지스터(151)의 구성 정보에 기초하여 업데이트되도록 제어한다. 즉, 특정 구간(예컨대, 프레임 블랭크 구간) 동안 사용 레지스터(152)의 정보가 구성 레지스터(151)에 설정된 정보와 동일하게 업데이트될 수 있다. 프레임 블랭크 구간은 이미지 데이터가 프레임 단위로 처리될 때, 하나의 프레임(예컨대, 현재 프레임)과 다음 프레임 사이의 구간일 수 있다.
예컨대, 제1 컨트롤러(170-1)는 업데이트 요청 신호(SFR_UPREQ)에 응답하여, 프레임 블랭크 구간에 업데이트 인에이블 신호(SFR1_UPEN)를 설정할 수 있다.
업데이트 인에이블 신호(SFR1_UPEN)가 설정되면, 제1 레지스터(150-1)는 구성 레지스터(151)에 설정된 구성 정보를 사용 레지스터(152)에도 동일하게 설정할 수 있다.
프레임 블랭크 구간 후의 다음 프레임 구간에서는 기능 모듈(140-1)은 업데이트된 사용 레지스터(152)의 정보에 따라 데이터를 처리한다.
도 4는 도 2에 도시된 자원 관리 마스터(180)의 일 실시예를 나타내는 도면이다. 도 5는 도 4의 자원 관리 마스터(180)의 동작을 설명하기 위한 개략적인 신호 타이밍도이다.
도 2 및 도 4 내지 도 5를 참조하여, 자원 관리 마스터(180)의 동작을 설명한다.
자원 관리 마스터(180)는 제1 내지 제M 공유 자원(110-1~110-M) 각각의 상태를 확인하고 관리하는 제1 내지 제M 자원 관리기(181_1~181_M)을 포함할 수 있다.
제1 자원 관리기(181_1)는 제1 내지 제N 데이터 처리 장치(130-1~130-N)로부터 제1 공유 자원(110-1)에 대한 자원 요청 신호(R1_REQ_S1~R1_REQ_SN)를 수신하고 상기 자원 요청 신호(R1_REQ_S1~R1_REQ_SN)에 대한 응답 신호(R1_USE_S1~R1_USE_SN 및 R1_CFT_S1~R1_CFT_SN)를 제1 내지 제N 데이터 처리 장치(130-1~130-N)로 전송할 수 있다.
제M 자원 관리기(181_M)는 제1 자원 관리기(181_1)와 마찬가지로, 제1 내지 제N 데이터 처리 장치(130-1~130-N)로부터 제M 공유 자원(110-M)에 대한 자원 요청 신호(RM_REQ_S1~RM_REQ_SN)를 수신하고 상기 자원 요청 신호에 대한 응답 신호(RM_USE_S1~RM_USE_SN 및 RM_CFT_S1~RM_CFT_SN)를 제1 내지 제N 데이터 처리 장치(130-1~130-N)로 전송할 수 있다.
다른 자원 관리기(181_2~181_M-1) 각각의 동작 역시 제1 자원 관리기(181_1)와 마찬가지이므로, 이에 대한 상세한 설명은 생략한다.
상기 응답 신호는 제1 내지 제M 공유 자원(110-1~110-M) 각각에 대한 사용 여부를 나타내는 제1 내지 제 M 자원 사용 신호(R1_USE_S1~ RM_USE_S1) 및 제1 내지 제M 공유 자원(110-1~110-M) 각각에 대한 충돌 여부를 나타내는 제1 내지 제 M 자원 충돌 신호(R1_CFT_S1~ RM_CFT_S1)를 포함할 수 있다.
예컨대, 제1 내지 제 M 자원 사용 신호(R1_USE_S1~ RM_USE_S1)가 인에이블되면, 해당 자원에 대한 사용 승인을 의미할 수 있고, 제1 내지 제 M 자원 충돌 신호(R1_CFT_S1~ RM_CFT_S1)가 인에이블되면, 해당 자원에 대한 사용 충돌이 있음을 의미할 수 있다.
도 5의 실시예에서는, T1 시점에 제1 자원 관리 슬래이브(160-1)가 제1 공유 자원(110-1)에 대한 자원 요청 신호(R1_REQ_S1)를 인에이블한다. 자원 관리 마스터(180)는 제1 공유 자원(110-1)에 대한 요청 신호(R1_REQ_S1)에 응답하여 제1 공유 자원(110-1)의 상태(예컨대, 아이들(idle) 상태 인지 혹은 비지(busy) 상태인지)를 확인하여, 아이들(idle) 상태이고, 선 요청이 없으면, T3 시점에 제1 공유 자원(110-1)에 대한 사용 신호(R1_USE_S1)를 인에이블한다. 자원 관리 마스터(180)는 또한, 제1 공유 자원(110-1)이 아이들(idle) 상태이므로, 제1 자원 충돌 신호(R1_CFT_S1)는 로우레벨로 유지하여 충돌이 없음을 나타낼 수 있다.
이에 따라, 제1 데이터 처리 장치(130-1)는 제1 공유 자원(110-1)에 대한 사용 권한을 얻게 되고, 제1 공유 자원(110-1)을 이용하여 데이터 처리를 할 수 있다.
일 실시예에서, 제1 공유 자원(110-1)이 아이들(idle) 상태라는 것은 제1 공유 자원(110-1)이 어느 데이터 처리 장치에도 할당되지 않은 상태이거나 할당이 종료된 것을 의미하고, 비지(busy) 상태라는 것은 제1 공유 자원(110-1)이 하나 이상의 데이터 처리 장치에 할당되어 있는 상태를 의미할 수 있다.
한편, T2 시점에, 제2 자원 관리 슬래이브(160-2)가 제1 공유 자원(110-1)에 대한 자원 요청 신호(R1_REQ_S2)를 인에이블하고, 또한 제3 자원 관리 슬래이브(160-2)가 제1 공유 자원(110-1)에 대한 자원 요청 신호(R1_REQ_S3)를 인에이블할 수 있다.
자원 관리 마스터(180)는 제1 공유 자원(110-1)의 상태를 확인한다. 제2 자원 관리 슬래이브(160-2) 및 제3 자원 관리 슬래이브(160-3)의 제1 공유 자원(110-1)에 대한 요청 전에, 제1 자원 관리 슬래이브(160-1)로부터 제1 공유 자원(110-1)에 대한 요청이 먼저 있었으므로, 자원 관리 마스터(180)는 T3 시점에 제1 자원 충돌 신호(R1_CFT_S2, R1_CFT_S3)를 하이레벨로 인에이블하여 제2 및 제3 자원 관리 슬래이브(160-2, 160-3)로 출력한다. 또한, 자원 관리 마스터(180)는 제2 및 제3 데이터 처리 장치(130-2, 130-3)로 출력하는 제1 자원 사용 신호(R1_USE_S2, R1_USE_S3)는 로우레벨로 유지한다.
따라서, 제2 및 제3 자원 관리 슬래이브(160-2, 160-3)는 제1 자원 충돌 신호(R1_CFT_S2, R1_CFT_S3)을 수신하게 되고, 이에 따라, 제1 공유 자원(110-1)을 할당받을 수 없다. 즉, 제2 및 제3 데이터 처리 장치(130-2, 130-3)는 제1 공유 자원(110-1)에 대한 사용 거절을 받게 되어, 제1 공유 자원(110-1)에 대한 사용 승인을 받을 때까지 제1 공유 자원(110-1)을 사용할 수 없게 된다.
이 경우, 제2 컨트롤러(170-2)는 제2 레지스터(150-2)의 구성 레지스터에 설정된 정보를 사용 레지스터로 업데이트하지 않는다. 따라서, 제2 기능 모듈(140-2)은 이전에 설정된 사용 레지스터의 정보에 따라 동작한다.
자원 관리 마스터(180)의 제1 공유 자원 관리자(181-1)는 제1 공유 자원(110-1)의 상태를 확인하여, 제1 공유 자원(110-1)이 아이들 상태가 되는 시점(T4)에 제1 데이터 처리 장치(130-1)의 제1 공유 자원(110-1)에 대한 사용 신호(R1_USE_S1)를 디스에이블할 수 있다.
제2 자원 관리 슬래이브(160-2)가 제1 공유 자원(110-1)에 대한 요청 신호(R1_REQ_S2)를 인에이블한 시점(T2)와 제3 자원 관리 슬래이브(160-3)가 제1 공유 자원(110-1)에 대한 요청 신호(R1_REQ_S3)를 인에이블한 시점(T2)은 실질적으로 동일할 수 있다.
실시예에 따라, 자원 관리 마스터(180)는 둘 이상의 자원 관리 슬래이브로부터 동시에 동일한 공유 자원에 대한 요청이 있는 경우, 데이터 처리 장치의 우선 순위에 따라, 공유 자원을 할당할 수 있고, 또는 임의의 순서로 공유 자원을 할당할 수 있다.
예컨대, 자원 관리 마스터(180)는 제1 내지 제N 데이터 처리 장치(130-1~130-N) 각각의 우선 순위에 따라 우선 순위가 높은 데이터 처리 장치로 먼저 자원을 할당할 수 있다.
도 5의 실시예에서는, 자원 관리 마스터(180)는 T4시점(예컨대, 제1 데이터 처리 장치(130-1)의 제1 공유 자원(110-1)에 대한 사용이 종료된 시점)에 제2 데이터 처리 장치(130-2)로 제1 공유 자원(110-1)에 대한 사용 신호(R1_USE_S1)를 인에이블한다. 이와 동시에, 제2 데이터 처리 장치(130-2)로 출력되는 제1 자원 충돌 신호(R1_CFT_S2)를 디스에이블한다.
이에 따라, 제2 데이터 처리 장치(130-2)는 제1 공유 자원(110-1)에 대한 사용 권한을 얻게 되고, 제1 공유 자원(110-1)을 이용하여 데이터 처리를 할 수 있다.
한편, 자원 관리 마스터(180)는 제3 데이터 처리 장치(130-3)로 출력하는 제1 자원 사용 신호(R1_USE_S3)를 계속하여 로우레벨로 유지하고, 제1 자원 충돌 신호(R1_CFT_S3)를 계속하여 하이레벨로 유지한다.
따라서, 제3 데이터 처리 장치(130-3)의 제1 공유 자원(110-1)에 대한 사용 거절은 유지되며, 제3 데이터 처리 장치(130-3)는 제1 공유 자원(110-1)에 대한 사용 승인 신호를 자원 관리 마스터(180)로부터 받을 때까지 제1 공유 자원(110-1)을 사용할 수 없게 된다.
이 경우, 제3 컨트롤러(170-3)는 제3 레지스터(150-3)의 구성 레지스터에 설정된 정보를 사용 레지스터로 업데이트하지 않는다. 따라서, 제3 기능 모듈(140-3)은 구성 레지스터에 설정된 업데이트된 정보가 아니라, 이전에 설정된 사용 레지스터의 정보에 따라 동작할 수 있다.
도 6은 본 발명의 일 실시예에 따른 데이터 처리 시스템에서 제1 데이터 처리 장치(130-1)의 자원 요청이 승인된 경우의 동작을 설명하기 위한 도면이다. 도 7을 본 발명의 일 실시예에 따른 데이터 처리 시스템에서 제1 데이터 처리 장치(130-1)의 자원 요청이 거절된 경우의 동작을 설명하기 위한 도면이다.
먼저, 도 3 및 도 6을 참조하면, 제1 데이터 처리 장치(130-1)가 현재 프레임 데이터((K-1)-th Frame)를 처리하는 도중의 임의의 시점에 다음 프레임 데이터(K-th Frame)의 처리를 위하여 제1 레지스터(150-1)의 구성 레지스터(151)에 새로운 구성 정보, 즉 업데이트된 구성 정보가 설정될 수 있다(P11). 구성 레지스터(151)의 설정이 완료되면, 업데이트 요청 신호(SFR_UPREQ)가 인에이블된다.
업데이트 요청 신호(SFR1_UPREQ)가 인에이블되면, 제1 자원 관리 슬래이브(160-1)는 구성 레지스터(151)에 설정된 구성 정보(SFR1_CFG)를 구성 정보를 해석하여 필요한 공유 자원을 할당받는 과정을 수행한다(P12)
예컨대, 제1 자원 관리 슬래이브(160-1)는 새로운 공유 자원이 필요한 경우, 자원 관리 마스터(180)로 해당 공유 자원을 요청하는 자원 요청 신호를 보낸다(P12).
자원 관리 마스터(180)는 제1 자원 관리 슬래이브(160-1)로부터 요청된 공유 자원에 대하여 다른 데이터 처리 장치와의 충돌이 없는지 확인하고 충돌이 없으면(P13), 상술한 바와 같이, 제1 데이터 처리 장치(130-1)의 요청을 승인한다.
자원 관리 마스터(180)로부터 승인 신호를 수신하면, 제1 자원 관리 슬래이브(160-1)는 업데이트 요청 신호(SFR_UPREQ')를 제1 컨트롤러(170-1)로 전달한다.
제1 컨트롤러(170-1)는, 업데이트 요청 신호(SFR_UPREQ')에 응답하여 프레임 블랭크 구간 내의 일부 구간(P14)에서, 사용 레지스터(152)의 정보가 구성 레지스터(151)의 구성 정보와 동일하게 업데이트되도록 제어할 수 있다. 실시예에 따라, 사용 레지스터(152)의 업데이트 구간은 프레임 블랭크 구간 내의 짧은 구간(P15)일 수 있다.
이에 따라, 제1 데이터 처리 장치(130-1)는 다음 프레임 데이터(K-th Frame)부터는 업데이트된 사용 레지스터(152)의 정보를 이용하여 처리할 수 있다(P16).
다음으로, 도 3 및 도 7을 참조하면, 제1 데이터 처리 장치(130-1)가 현재 프레임 데이터((K-1)-th Frame)를 처리하는 도중의 임의의 시점에 다음 프레임 데이터(K-th Frame)의 처리를 위하여 제1 레지스터(150-1)의 구성 레지스터(151)에 새로운 구성 정보, 즉 업데이트된 구성 정보가 설정될 수 있다(P21). 구성 레지스터(151)의 설정이 완료되면, 업데이트 요청 신호(SFR_UPREQ)가 인에이블된다.
업데이트 요청 신호(SFR1_UPREQ)가 인에이블되면, 제1 자원 관리 슬래이브(160-1)는 구성 레지스터(151)에 설정된 구성 정보(SFR1_CFG)를 구성 정보를 해석하여 필요한 공유 자원을 할당받는 과정을 수행한다(P22)
예컨대, 제1 자원 관리 슬래이브(160-1)는 새로운 공유 자원이 필요한 경우, 자원 관리 마스터(180)로 해당 공유 자원을 요청하는 자원 요청 신호를 보낸다(P22).
자원 관리 마스터(180)는 제1 자원 관리 슬래이브(160-1)로부터 요청된 공유 자원에 대하여 다른 데이터 처리 장치와의 충돌이 있는지 확인하고 충돌이 있으면(P23), 상술한 바와 같이, 제1 데이터 처리 장치(130-1)의 요청을 거절한다.
자원 관리 마스터(180)로부터 거절 신호를 수신하면, 제1 자원 관리 슬래이브(160-1)는 업데이트 요청 신호(SFR_UPREQ)를 제1 컨트롤러(170-1)로 전달하지 않는다. 즉, 제1 컨트롤러(170-1)로 입력되는 업데이트 요청 신호(SFR_UPREQ')는 인에이블되지 않는다.
따라서, 프레임 블랭크 구간 내의 일부 구간(P24, 또는 P25)에서도, 사용 레지스터(152)는 업데이트되지 않는다.
이에 따라, 제1 데이터 처리 장치(130-1)는 다음 프레임 데이터(K-th Frame)에서도 업데이트되지 않은 사용 레지스터(152)의 정보를 이용하여 처리할 수 있다(P26).
도 8은 본 발명의 일 실시예에 따른 데이터 처리 시스템의 동작 방법을 나타내는 플로우차트이다. 도 8의 방법은 도 1 또는 도 2에 도시된 데이터 처리 시스템에 의하여 실행될 수 있다.
이를 참조하면, 제1 데이터 처리 장치(130-1)의 구성 레지스터는 임의의 시점에 AP(어플리케이션 프로세서, 190)에 의해 설정될 수 있다(S110).
구성 레지스터의 설정이 완료되면, 제1 데이터 처리 장치(130-1)는 구성 레지스터에 설정된 구성 정보를 해석하여 새로운 공유 자원의 할당이 필요한지를 판단한다(S115). 상기 판단 결과, 새로운 공유 자원(예컨대, 제1 공유 자원(110-1))이 필요하면, 제1 데이터 처리 장치(130-1)는 새로운 공유 자원(예컨대, 제1 공유 자원(110-1))의 할당(혹은 사용)을 요청하는 자원 요청 신호를 자원 관리 마스터(180)로 출력한다(S120)
자원 관리 마스터(180)는 해당 공유 자원의 상태를 확인한다(S125). 예컨대, 자원 관리 마스터(180)는 해당 공유 자원의 상태가 아이들(idle) 상태 인지 혹은 비지(busy) 상태인지를 확인할 수 있다(S125).
해당 공유 자원의 상태가 아이들(idle) 상태인 경우, 자원 관리 마스터(180)는 해당 공유 자원에 대한 요청 신호가 둘 이상인지, 둘 이상이면 해당 공유 자원을 가장 먼저 요청한 데이터 처리 장치는 어느 것인지 판단할 수 있다(S130). 예컨대, 자원 관리 마스터(180)는 제1 데이터 처리 장치(130-1)의 요청이 가장 빠른지를 확인할 수 있다(S130)
S130 단계에서의 판단 결과, 해당 공유 자원(예컨대, 제1 공유 자원(110-1))에 대한 복수의 요청 중 제1 데이터 처리 장치(130-1)의 요청이 가장 빠른 경우에는, 제1 데이터 처리 장치(130-1)로 해당 공유 자원의 사용을 승인하는 승인 신호를 출력한다.
제1 데이터 처리 장치(130-1)는 승인 신호에 응답하여 상기 공유 자원을 사용할 수 있다(S140, S145).
구체적으로는, 제1 데이터 처리 장치(130-1)는 승인 신호에 응답하여 사용 레지스터를 구성 레지스터에 설정된 구성 정보와 동일하게 업데이트할 수 있다(S140). 사용 레지스터의 업데이트는 상술한 바와 같이, 특정 구간(예컨대, 프레임 블랭크 구간)에서 수행될 수 있다.
사용 레지스터가 업데이트되면, 제1 데이터 처리 장치(130-1)는 업데이트된 사용 레지스터의 정보에 따라 데이터를 처리할 수 있다(S145).
실시예에 따라, 자원 관리 마스터(180)는 제1 데이터 처리 장치(130-1)가 해당 공유 자원(예컨대, 제1 공유 자원(110-1))을 사용할 수 있도록 제1 스위치(120-1)을 턴온하여(S150), 해당 공유 자원(예컨대, 제1 공유 자원(110-1))이 제1 데이터 처리 장치(130-1)에 연결되도록 제어할 수 있다(S155).
상술한 바와 같이, 본 발명의 실시예에 따르면, 공유 자원을 공통적으로 사용하는 복수(2 이상)의 데이터 처리 장치로부터의 자원 요청에 대하여 자원 관리 마스터에서 승인 여부를 판단하여, 승인 또는 거절함으로써, 동일한 공유 자원에 대하여 복수(2 이상)의 데이터 처리 장치간 충돌이 발생하지 않도록 관리된다.
따라서, 본 발명의 실시예에 따르면, 공유 자원이 효율적으로 관리되고, 복수(2 이상)의 데이터 처리 장치 간의 충돌없이 사용될 수 있다.
또한, 본 발명의 실시예에 따르면, 데이터 처리 장치는, 요청한 공유 자원에 대하여 자원 관리 마스터로부터 승인을 받지 못한 경우에는, 기 설정된 구성 정보에 따라 데이터를 처리함으로써, 동작상의 오류나 동작 불가 상황(예컨대, 시스템 행업(Hang-up)을 방지할 수 있다.
따라서, 본 발명의 실시예에 따른 데이터 처리 시스템은 전용 자원 보다는 공유 자원을 더 많이 구비하여 데이터 처리 시스템 또는 데이터 처리 시스템을 포함하는 칩이나 장치의 면적을 줄일 수 있다. 또한 공유 자원의 스위칭을 하드웨어가 관장하여 소프트웨어 구현에 따른 복잡성도 감소될 수 있다.
도 9는 본 발명의 일 실시예에 따른 데이터 처리 시스템을 포함하는 전자 시스템의 구성 블록도이다. 도 10은 도 9에 도시된 디스플레이 컨트롤러의 일 실시예를 나타내는 구성 블록도이다.
도 9를 참조하면, 전자 시스템(1)은 휴대용 전자 장치로 구현될 수 있다. 상기 휴대용 전자 장치는 랩탑 컴퓨터(laptop computer), 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, PDA(personal digital assistant), EDA (enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), 모바일 인터넷 장치(mobile internet device(MID), 웨어러블 컴퓨터, 사물 인터넷 (internet of things(IoT)) 장치, 또는 만물 인터넷(internet of everything(IoE)) 장치로 구현될 수 있다.
전자 시스템(1)은 반도체 집적회로 장치(10), 디스플레이 장치(20) 및 외부 메모리(30)를 포함한다. 각 요소(10, 20 및 30)는 별개의 칩으로 구현될 수 있으나, 이에 한정되는 것은 아니다. 실시예에 따라 시스템은 다른 구성 요소(예컨대, 카메라 모듈)를 더 포함할 수 있다. 반도체 집적회로 장치(10)는 시스템-온-칩(SoC)으로 구현될 수 있다.
전자 시스템(1)은 정지 영상 신호(또는 정지 영상) 또는 동영상 신호(또는 동영상)를 디스플레이 장치(20)에서 디스플레이할 수 있는 이동 전화기(mobile phone), 스마트폰(smartphone), 태블릿 PC(tablet personal computer), PDA(personal digital assistant), 또는 PMP(portable multimedia player) MP3 플레이어, 또는 차량용 네비게이션 시스템(automotive navigation system) 등과 같은 이동 장치(mobile device), 소형 기기(handheld device) 또는 소형 컴퓨터(handheld computer)일 수 있다.
외부 메모리(30)는 SoC(10)에서 실행되는 프로그램 명령들(program instructions)을 저장한다. 또한, 외부 메모리(30)는 디스플레이 장치(20)에 스틸 이미지들(still images) 또는 무빙 이미지(moving image)를 디스플레이하기 위한 이미지 데이터를 저장할 수 있다. 상기 무빙 이미지는 짧은 시간에 나타나는(presented) 일련의 서로 다른 스틸 이미지들이다.
외부 메모리(30)는 휘발성 메모리 또는 불휘발성 메모리일 수 있다. 상기 휘발성 메모리는 DRAM(dynamic random access memory), SRAM(static random access memory), T-RAM(thyristor RAM), Z-RAM(zero capacitor RAM), 또는 TTRAM(Twin Transistor RAM)일 수 있다. 상기 불휘발성 메모리는 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시(flash) 메모리, MRAM(Magnetic RAM), PRAM(Phase change RAM), 저항 메모리일 수 있다.
SoC(10)는 외부 메모리(30) 및/또는 디스플레이 장치(20)를 제어한다. 실시 예에 따라 SoC(10)는 집적 회로(integrated circuit(IC)), 프로세서(processor), 어플리케이션 프로세서(application processor), 멀티 미디어 프로세서(multimedia processor), 또는 집적된 멀티 미디어 프로세서(integrated multimedia processor)라고 호칭될 수 있다.
SoC(10)는 중앙처리장치(central processing unit(CPU); 200), ROM(read only memory; 210), RAM(random access memory; 220), 이미지 처리 프로세서(ISP: image signal processor)(230), 디스플레이 컨트롤러(240), 그래픽 프로세싱 유닛(graphics processing unit(GPU); 250), 메모리 컨트롤러(260), 포스트 프로세서(270), 및 시스템 버스(280)를 포함할 수 있다. SoC(10)는 도시된 구성 요소 이외에 다른 구성 요소들을 더 포함할 수 있다.
프로세서(processor)라고도 불릴 수 있는 CPU(200)는 외부 메모리(30)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 예컨대, CPU(200)는 클럭 신호 모듈(미도시)로부터 출력된 동작 클락 신호에 응답하여 상기 프로그램들 및/또는 상기 데이터를 처리 또는 실행할 수 있다.
CPU(200)는 멀티-코어 프로세서(multi-core processor)로 구현될 수 있다. 상기 멀티-코어 프로세서는 두 개 또는 그 이상의 독립적인 실질적인 프로세서들('코어들(cores)'이라고 불림)을 갖는 하나의 컴퓨팅 컴포넌트(computing component)이고, 상기 프로세서들 각각은 프로그램 명령들(program instructions)을 읽고 실행할 수 있다.
CPU(200)는 운영체제(OS; operating system)을 실행한다. 운영체제(OS)는 전자 시스템(1)의 자원(예를 들어, 메모리, 디스플레이 등)을 관리할 수 있다. 운영체제(OS)는 전자 시스템(1)에서 실행되는 어플리케이션들에 자원을 배분할 수 있다.
ROM(210), RAM(220), 및/또는 외부 메모리(30)에 저장된 프로그램들 및/또는 데이터는 필요에 따라 CPU(200)의 메모리(미도시)에 로드(load)될 수 있다.
ROM(210)은 영구적인 프로그램들 및/또는 데이터를 저장할 수 있다.
ROM(210)은 EPROM(erasable programmable read-only memory) 또는 EEPROM (electrically erasable programmable read-only memory)으로 구현될 수 있다.
RAM(220)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대, 메모리(210 또는 30)에 저장된 프로그램들 및/또는 데이터는 CPU(200)의 제어에 따라 또는 ROM(210)에 저장된 부팅 코드(booting code)에 따라 RAM(220)에 일시적으로 저장될 수 있다. RAM(220)은 DRAM(dynamic RAM) 또는 SRAM(static RAM)으로 구현될 수 있다.
ISP(230)는 이미지 신호에 대한 각종 처리(processing)를 수행할 수 있다.
ISP(230)는 이미지 센서(미도시)로부터 입력된 이미지 데이터를 처리할 수 있다. 예컨대, ISP(230)는 이미지 센서로부터 입력된 이미지 데이터의 떨림 보정을 하고, 화이트 밸런스를 맞출 수 있다.
또한, ISP(230)는 명도·대비 등의 색 보정, 색조화, 양자화, 다른 색 공간으로의 색 변환 등을 수행할 수 있다. ISP(230)는 영상 처리한 이미지 데이터를 주기적으로 버스(180)를 통해 메모리(30)에 저장할 수 있다.
ISP(230)는 본 발명의 일 실시예에 따른 데이터 처리 시스템(100a)을 구비할 수 있다. 데이터 처리 시스템(100a)는 도 1 내지 도 8을 참조하여 상술한 데이터 처리 시스템(100)에 상응한다.
GPU(250)는 그래픽 처리와 관련된 프로그램 명령들을 읽고 수행할 수 있다. 예컨대, GPU(250)는 그래픽 관련 도형 처리 등을 고속으로 수행할 수 있다.
또한, GPU(250)는 메모리 컨트롤러(260)에 의해 외부 메모리(30)로부터 리드 (read)된 데이터를 디스플레이 디바이스(20)에 적합한 신호로 변환할 수 있다.
그래픽 처리를 위해, GPU(250) 외에도 그래픽 엔진(미도시) 또는 그래픽 액셀레이터(Accelerator) 등이 사용될 수 있다.
GPU(250)는 본 발명의 일 실시예에 따른 데이터 처리 시스템(100c)을 구비할 수 있다. 데이터 처리 시스템(100c)는 도 1 내지 도 8을 참조하여 상술한 데이터 처리 시스템(100)에 상응한다.
포스트 프로세서(post processor, 270)는 이미지나 영상 신호를 출력 장치(예컨대, 디스플레이 장치(20))에 적합한 후처리(post processing)를 수행한다. 포스트 프로세서(270)는, 디스플레이 장치(20)로 출력하기에 적합하도록 이미지의 크기를 확대하거나 축소하거나 또는 이미지를 회전시키는 기능을 수행할 수도 있다.
포스트 프로세서(270)는 후처리한 이미지 데이터를 버스(280)를 통해 메모리(30)에 저장하거나, 또는 온-더-플라이(on-the-fly) 방식으로 버스(280)를 통해 직접 디스플레이 컨트롤러(240)로 출력할 수 있다.
포스트 프로세서(270)는 본 발명의 일 실시예에 따른 데이터 처리 시스템(100d)을 구비할 수 있다. 데이터 처리 시스템(100d)는 도 1 내지 도 8을 참조하여 상술한 데이터 처리 시스템(100)에 상응한다.
메모리 컨트롤러(260)는 외부 메모리(30)와 인터페이스한다. 메모리 컨트롤러(260)는 외부 메모리(30)의 동작을 전반적으로 제어하며, 호스트와 외부 메모리(30) 사이의 데이터 교환을 제어한다. 예컨대, 메모리 컨트롤러(260)는 호스트의 요청에 따라 외부 메모리(30)에 데이터를 쓰거나 외부 메모리(30)로부터 데이터를 읽을 수 있다. 여기서, 호스트는 CPU(200), ISP(230), GPU(250), 또는 디스플레이 컨트롤러(240)와 같은 마스터(master) 장치일 수 있다.
실시예에 따라, 메모리 컨트롤러(260)는 디스플레이 컨트롤러(240)로부터의 이미지 데이터 요청에 따라, 외부 메모리(30)로부터 이미지 데이터를 독출하여 메모리 컨트롤러(260)로 제공할 수 있다.디스플레이 컨트롤러(240)는 디스플레이 장치(20)의 동작을 제어한다.
디스플레이 컨트롤러(240)는 본 발명의 일 실시예에 따른 데이터 처리 시스템(100b)을 구비할 수 있다. 데이터 처리 시스템(100b)는 도 1 내지 도 8을 참조하여 상술한 데이터 처리 시스템(100)에 상응한다.
본 발명의 일 실시예에 따른 데이터 처리 시스템이 적용된 디스플레이 컨트롤러(240)의 일 실시예가 도 10에 도시된다.
도 10을 참조하면, 본 발명의 실시예에 따른 디스플레이 컨트롤러(240a)는 스위칭 모듈(120a), 제1 내지 제3 디스플레이 경로 회로(130-1a, 130-1b, 130-1c), 자원 관리 마스터(180a), 및 DSI 호스트(185)를 포함할 수 있다.
스위칭 모듈(120a)은 도 1 또는 도 2의 제1 내지 제M 스위치들(120-1~120-M)에 상응하고, 스위치 제어 신호(CSa)는 도 1 또는 도 2의 스위치 제어 신호(CS1~CSM)에 상응하는 구성 및 기능을 가질 수 있다. 또한, 제1 내지 제3 디스플레이 경로 회로(130-1a, 130-1b, 130-1c)는 도 1 또는 도 2의 제1 내지 제3 데이터 처리 장치(130-1, 130-2, 130-3)에 상응하고, 자원 관리 마스터(180a)는 1 또는 도 2의 자원 관리 마스터(180)에 상응하는 구성 및 기능을 가질 수 있다.
스위칭 모듈(120a)은 자원 관리 마스터(180a)의 스위치 제어 신호(CSa)에 응답하여 공유 자원을 제1 내지 제3 디스플레이 경로 회로(130-1a, 130-1b, 130-1c) 중 어느 하나에 연결한다.
따라서, 스위칭 모듈(120a)은 스위치 제어 신호(CSa)에 응답하여 제1 내지 제7 DMA 데이터(IDMA0~IDMA6) 중 하나 이상의 DMA 데이터를 제1 내지 제3 디스플레이 경로 회로(130-1a, 130-1b, 130-1c) 중 해당 회로로 제공할 수 있다.
실시예에 따라, 제1 내지 제7 DMA 데이터(IDMA0~IDMA6) 각각은 DMA를 통해 메모리(예컨대, 도 9의 30)로부터 읽어 온 이미지 데이터일 수 있다.
본 실시예에서 공유 자원은 DMA(direct memory access)이고, DMA의 개수는 7이며, 디스플레이 경로 회로의 개수는 3인 것으로 가정하나, 이는 설명의 편의를 위한 예시적인 것일 뿐, 본 발명의 실시예가 이에 한정되는 것은 아니다.
제1 내지 제3 디스플레이 경로 회로(130-1a, 130-1b, 130-1c) 각각은 복수의 DMA 중 필요한 DMA에 대한 할당을 자원 관리 마스터(180a)에게 요청할 수 있다.
자원 관리 마스터(180a)는 제1 내지 제3 디스플레이 경로 회로(130-1a, 130-1b, 130-1c)로부터 자원 할당 요청에 따라, 해당 자원을 요청한 디스플레이 경로 회로(130-1a, 130-1b, 130-1c)에 할당하기 위해 스위칭 모듈(120a)을 제어할 수 있다.
제1 내지 제3 디스플레이 경로 회로(130-1a, 130-1b, 130-1c) 각각은 할당 받은 DMA로부터 입력되는 하나 이상의 DMA 데이터를 처리하여, 디스플레이 장치(20a)로 출력할 수 있다.
예컨대, 제1 내지 제3 디스플레이 경로 회로(130-1a, 130-1b, 130-1c) 각각은 할당받은 DMA를 통해 이미지 데이터를 프레임 단위로 수신하여 처리할 수 있다. 제1 내지 제3 디스플레이 경로 회로(130-1a, 130-1b, 130-1c) 각각은 수신한 이미지 데이터를 강화(enhancement)하거나 하나 이상의 이미지 데이터를 합성하는 등의 데이터 처리(data processing)를 수행할 수 있다.
상술한 바와 같이, 본 발명의 디스플레이 컨트롤러(240a)에 따르면, 제1 내지 제3 디스플레이 경로 회로(130-1a, 130-1b, 130-1c) 각각에 대하여 전용의 DMA를 구비하지 않고, 복수의 DMA를 공유한다.
만약, 제1 내지 제3 디스플레이 경로 회로(130-1a, 130-1b, 130-1c) 각각이 복수(예컨대, 7개)의 DMA를 전용으로 구비한다면, 면적 및 전력 소모가 증가하게 된다. 이에 반해. 본 발명의 실시예에 따르면, 전용의 자원 대신 공유 자원을 사용함으로써, 면적 및 전력 소모가 감소한다.
디스플레이 컨트롤러(240a)와 디스플레이 장치(20a) 간의 인터페이스는 디스플레이 시리얼 인터페이스(display serial interface(DSI))(195)일 수 있다.
DSI(195)를 통한 시리얼 통신을 위하여, 디스플레이 컨트롤러(240a)는 DSI 호스트(185)를 포함하고, 디스플레이 장치(20a)는 DSI 장치(21)를 포함할 수 있다.
DSI 호스트(185)는 제1 내지 제3 디스플레이 경로 회로(130-1a, 130-1b, 130-1c) 각각으로부터 출력되는 디스플레이 데이터(DOUT1~DOUT3)를 DSI 데이터로 시리얼라이즈(serialize)하여 디스플레이 장치(20a)로 전송한다.
디스플레이 장치(20)는 DSI 장치(21), 디스플레이 드라이버(23)와 디스플레이 패널(25)을 포함할 수 있다. DSI 장치(21)는 DSI 데이터로 변환된 디스플레이 데이터(DOUT1~DOUT3)를 수신하여 디시리얼라이즈(de-serialize)하여 디스플레이 드라이버(23)에 제공할 수 있다.
실시 예에 따라, SoC(10)와 디스플레이 드라이버(23)는 하나의 모듈(module), 하나의 시스템 온 칩(system on chip), 또는 하나의 패키지, 예컨대 멀티-칩 패키지(multi-chip package)로 구현될 수 있다. 다른 실시예에 따라, 디스플레이 드라이버(23)와 디스플레이 패널(25)은 하나의 모듈로 구현될 수 있다.
디스플레이 드라이버(23)는 DSI 장치(21)에서 변환된 데이터에 따라 디스플레이 패널(25)의 동작을 제어한다. 디스플레이 패널(25)은 디스플레이 드라이버(23)로부터 출력된 출력 영상 신호를 디스플레이 할 수 있다. 예컨대, 디스플레이 패널(25)은 LCD(liquid crystal display), LED(light emitting diode) 디스플레이, OLED(Organic LED) 디스플레이, 또는 AMOLED(active-matrix OLED) 디스플레이로 구현될 수 있다.다시 도 9를 참조하면, 각 구성 요소(200, 210, 220, 230, 240, 250, 260, 및 270)는 시스템 버스(280)를 통하여 서로 통신할 수 있다. 즉, 시스템 버스(280)는 SoC(10)의 각 구성요소를 연결하여 각 구성요소간 데이터 송수신의 통로 역할을 한다. 또한, 시스템 버스(280)는 각 구성요소간 제어 신호의 전송 통로 역할을 할 수 있다.
실시예에 따라, 시스템 버스(280)는 데이터를 전송하는 데이터 버스(미도시), 어드레스 신호를 전송하는 어드레스 버스(미도시) 및 제어 신호를 전송하는 제어 버스(미도시)를 포함할 수 있다.
실시예에 따라 시스템 버스(280)는 소정의 구성요소들 간의 데이터 통신을 위한 소규모의 버스, 즉, 인터커넥터(interconnector)를 포함할 수 있다.
실시예에 따라, 시스템 버스(280)는 AXI(Advanced eXtensible Interface) 버스로 구현될 수 있으나, 이에 한정되는 것은 아니다.
도 9에 도시된 바와 같이, 본 발명의 일 실시예에 따른 데이터 처리 시스템(100)은 데이터를 처리하는 임의의 모듈 또는 칩에 적용될 수 있다.
도 11은 본 발명의 다른 실시 예에 따른 전자 시스템의 구성 블록도이다.
이를 참조하면, 전자 시스템(400)은 PC(personal computer) 또는 데이터 서버, 랩탑(laptop) 컴퓨터 또는 휴대용 장치로 구현될 수 있다. 휴대용 장치는 이동 전화기, 스마트 폰(smart phone), 태블릿 (tablet) PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라 (digital still camera), 디지털 비디오 카메라 (digital video camera), PMP(portable multimedia player), PDN(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 또는 e-북(e-book)으로 구현될 수 있다.
전자 시스템(400)은 SoC(10), 파워 소스(410), 저장 장치(420), 메모리(430), 입출력 포트들(440), 확장 카드(450), 네트워크 장치(460), 및 디스플레이(470)를 포함한다. 실시 예에 따라. 전자 시스템(400)은 카메라 모듈(480)을 더 포함할 수 있다.
SoC(10)는 구성 요소들(elements; 410~480) 중에서 적어도 하나의 동작을 제어할 수 있다. SoC(10)는 도 1 및 도 2에 도시된 SoC(10)에 해당한다..
파워 소스(410)는 구성 요소들(405 및 420~480) 중에서 적어도 하나로 동작 전압을 공급할 수 있다.
저장 장치(420)는 하드디스크 드라이브(hard disk drive) 또는 SSD(solid state drive)로 구현될 수 있다.
메모리(430)는 휘발성 메모리 또는 불휘발성 메모리로 구현될 수 있다. 실시 예에 따라, 메모리(430)에 대한 데이터 액세스 동작, 예컨대, 리드 동작, 라이트 동작(또는 프로그램 동작), 또는 이레이즈 동작을 제어할 수 있는 메모리 컨트롤러는 SoC(10)에 집적 또는 내장될 수 있다. 다른 실시 예에 따라, 상기 메모리 컨트롤러는 SoC(10)와 메모리(430) 사이에 구현될 수 있다.
입출력 포트들(440)은 전자 시스템(400)으로 데이터를 전송하거나 또는 전자 시스템(400)으로부터 출력된 데이터를 외부 장치로 전송할 수 있는 포트들을 의미한다. 예컨대, 입출력 포트들(440)은 컴퓨터 마우스와 같은 포인팅 장치(pointing device)를 접속하기 위한 포트, 프린터를 접속하기 위한 포트, 또는 USB 드라이브를 접속하기 위한 포트일 수 있다.
확장 카드(450)는 SD(secure digital) 카드 또는 MMC(multimedia card)로 구현될 수 있다. 실시 예에 따라, 확장 카드(450)는 SIM(Subscriber Identification Module) 카드 또는 USIM(Universal Subscriber Identity Module) 카드일 수 있다.
네트워크 장치(460)는 전자 시스템(400)을 유선 네트워크 또는 무선 네트워크에 접속시킬 수 있는 장치를 의미한다.
디스플레이(470)는 저장 장치(420), 메모리(430), 입출력 포트들(440), 확장 카드(450), 또는 네트워크 장치(460)로부터 출력된 데이터를 디스플레이할 수 있다.
카메라 모듈(480)은 광학 이미지를 전기적인 이미지로 변환할 수 있는 모듈을 의미한다. 따라서, 카메라 모듈(480)로부터 출력된 전기적인 이미지는 저장 장치(420), 메모리(430), 또는 확장 카드(450)에 저장될 수 있다. 또한, 카메라 모듈 (480)로부터 출력된 전기적인 이미지는 디스플레이(420)를 통하여 디스플레이될 수 있다.
도 12는 본 발명의 실시예에 따른 전자 시스템 및 인터페이스를 나타낸다. 도 12를 참조하면, 전자 시스템(1000)은 MIPI 인터페이스를 사용 또는 지원할 수 있는 전자 기기, 예컨대 이동 전화기, PDA, PMP, IPTV 또는 스마트 폰으로 구현될 수 있다.
전자 시스템(1000)은 어플리케이션 프로세서(1010), 이미지 센서(1040), 및 디스플레이(1050)를 포함한다.
어플리케이션 프로세서(1010)에 구현된 CSI 호스트(1012)는 카메라 시리얼 인터페이스(camera serial interface(CSI))를 통하여 이미지 센서(1040)의 CSI 장치(1041)와 시리얼 통신할 수 있다. 예컨대, CSI 호스트(1012)에는 광 디시리얼라이저가 구현될 수 있고, CSI 장치(1041)에는 광 시리얼라이저가 구현될 수 있다.
어플리케이션 프로세서(1010)에 구현된 DSI 호스트(1011)는 디스플레이 시리얼 인터페이스(display serial interface(DSI))를 통하여 디스플레이 장치(1050)의 DSI 장치(1051)와 시리얼 통신할 수 있다. 예컨대, DSI 호스트(1011)에는 광 시리얼라이저가 구현될 수 있고, DSI 장치(1051)에는 광 디시리얼라이저가 구현될 수 있다. DSI 호스트(1011)는 도 10의 DSI 호스트(185)에 해당하고, DSI 장치(1051)는 도 10의 DSI 장치(21)에 해당한다.
전자 시스템(1000)은 어플리케이션 프로세서(1010)와 통신할 수 있는 RF 칩(1060)을 더 포함할 수 있다. 전자 시스템(1000)의 PHY(1013)와 RF 칩(1060)의 PHY(1061)는 MIPI DigRF에 따라 데이터를 주고받을 수 있다.
전자 시스템(1000)은 GPS(1020), 스토리지(1070), 마이크(1080), DRAM(1085) 및 스피커(1090)를 더 포함할 수 있으며, 전자 시스템(1000)은 Wimax(1030), WLAN(1100) 및 UWB(1110) 등을 이용하여 통신할 수 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
1, 400, 1000: 전자 시스템
10: SoC
20: 디스플레이 장치
30: 외부 메모리
100, 100a, 100b, 100c, 100d: 데이터 처리 시스템
110-1~110-M: 공유 자원
120-1~120-M: 스위치
130-1~130-N: 데이터 처리 장치
140-1~140-N: 기능모듈
150-1~150-N: 레지스터
160-1~160-N: 자원 관리 슬래이브
170-1~170-N: 컨트롤러
200: 중앙처리장치(central processing unit(CPU)
210: ROM(read only memory; 110)
220: RAM(random access memory)
230: 이미지 처리 프로세서(ISP: image signal processor)
240: 디스플레이 컨트롤러
250: 그래픽 프로세싱 유닛(graphics processing unit(GPU)
260: 메모리 컨트롤러
270: 포스트 프로세서
280: 시스템 버스

Claims (10)

  1. 공유 자원;
    상기 공유 자원이 필요한지를 판단하고, 상기 판단 결과에 따라 상기 공유 자원에 대한 제1 자원 요청 신호를 발생하는 제1 자원 관리 슬래이브를 포함하는 제1 데이터 처리 장치;
    상기 공유 자원이 필요한지를 판단하고, 상기 판단 결과에 따라 상기 공유 자원에 대한 제2 자원 요청 신호를 발생하는 제2 자원 관리 슬래이브를 포함하는 제2 데이터 처리 장치;
    상기 공유 자원의 상태를 확인하고, 상기 제1 자원 관리 슬래이브로부터 출력된 상기 제1 자원 요청 신호 및 상기 제2 자원 관리 슬래이브로부터 출력된 상기 제2 자원 요청 신호 중 먼저 요청된 신호를 확인하며, 상기 제1 자원 요청 신호가 상기 제2 요청 신호보다 빠른 경우, 상기 제1 데이터 처리 장치로 승인 신호를 출력하고, 상기 제2 데이터 처리 장치로 거절 신호를 출력하는 자원 관리 마스터를 포함하며,
    상기 제1 데이터 처리 장치는 상기 승인 신호에 응답하여, 상기 공유 자원을 사용하여 데이터를 처리하는 데이터 처리 시스템.
  2. 제1항에 있어서, 상기 제1 데이터 처리 장치는
    상기 승인 신호에 응답하여, 상기 공유 자원을 통해 이미지 데이터를 프레임 단위로 수신하고, 상기 수신한 이미지 데이터를 처리하는 데이터 처리 시스템.
  3. 제2항에 있어서, 상기 제1 데이터 처리 장치는
    임의의 시점에 업데이트될 수 있는 구성 레지스터; 및
    상기 승인 신호에 응답하여, 상기 구성 레지스터에 기초하여 업데이트되는 사용 레지스터를 포함하며,
    상기 제1 데이터 처리 장치는 상기 사용 레지스터의 정보에 따라 동작하는 데이터 처리 시스템.
  4. 제3항에 있어서, 상기 제1 자원 관리 슬래이브는
    상기 구성 레지스터의 업데이트가 완료되면, 상기 구성 레지스터의 구성 정보를 해석하여 상기 공유 자원이 필요한지를 판단하고, 상기 판단 결과에 따라 상기 제1 자원 요청 신호를 발생하고,
    상기 제1 데이터 처리 장치
    프레임과 다음 프레임 사이의 구간인 프레임 블랭크 구간 동안에 상기 사용 레지스터의 정보가 상기 구성 레지스터의 구성 정보에 기초하여 업데이트되도록 제어하는 제1 컨트롤러를 더 포함하는 데이터 처리 시스템.
  5. 제4항에 있어서,
    상기 제1 자원 관리 슬래이브는
    상기 자원 관리 마스터로부터 상기 제1 승인 신호를 수신하고, 상기 제1 승인 신호에 응답하여, 상기 제1 컨트롤러로 업데이트 요청 신호를 출력하며,
    상기 제1 컨트롤러는
    상기 업데이트 요청 신호에 응답하여, 상기 사용 레지스터의 정보가 상기 구성 레지스터의 구성 정보에 기초하여 업데이트되도록 제어하는 데이터 처리 시스템.
  6. 제1항에 있어서, 상기 제2 데이터 처리 장치는
    상기 제2 요청 신호를 출력하기 전에 업데이트되는 제2 구성 레지스터; 및
    제2 사용 레지스터를 더 포함하고,
    상기 제2 데이터 처리 장치는 상기 제1 거절 신호에 응답하여, 업데이트되지 않은 상기 제2 사용 레지스터에 따라 동작하는 데이터 처리 시스템.
  7. 제6항에 있어서, 상기 자원 관리 마스터는
    상기 공유 자원의 상태가 아이들 상태가 되면, 상기 제2 데이터 처리 장치로 제2 승인 신호를 출력하고,
    상기 제2 데이터 처리 장치는 상기 제2 승인 신호에 응답하여 상기 공유 자원을 사용하여 데이터를 처리하는 데이터 처리 시스템.
  8. 제7항에 있어서, 상기 제2 데이터 처리 장치는
    상기 제2 승인 신호에 응답하여, 프레임과 다음 프레임 사이의 구간인 프레임 블랭크 구간 동안에 상기 제2 사용 레지스터를 기 업데이트된 상기 구성 레지스터에 기초하여 업데이트하는 데이터 처리 시스템.
  9. 복수(2 이상)의 데이터 처리 장치에 의하여 공유되는 공유 자원을 관리하는 데이터 처리 시스템에 있어서,
    제1 구성 정보를 기 저장하고 있는 제1 레지스터를 포함하고, 상기 제1 레지스터에 새롭게 설정된 제2 구성 정보를 해석하여, 상기 공유 자원에 대한 자원 요청 신호를 출력하는 제1 데이터 처리 장치;
    상기 자원 요청 신호에 응답하여 상기 제1 데이터 처리 장치로 승인 신호 또는 거절 신호를 출력하는 자원 관리 마스터를 포함하며,
    상기 제1 구성 정보는 제1 프레임 데이터를 처리하는 데 적용하기 위한 정보이고,
    상기 제2 구성 정보는 제2 프레임 데이터를 처리하는 데 적용하기 위한 정보이며,
    상기 제1 데이터 처리 장치는
    상기 승인 신호에 응답하여 상기 제2 정보에 따라 상기 제2 프레임 데이터를 처리하고,
    상기 거절 신호에 응답하여, 상기 제1 정보에 따라 상기 제2 프레임 데이터를 처리하는 데이터 처리 시스템.
  10. 제9항에 있어서, 상기 제1 데이터 처리 장치는
    상기 승인 신호에 응답하여 상기 제1 레지스터에 기초하여 업데이트되는 제2 레지스터를 더 포함하며,
    상기 제1 데이터 처리 장치는 상기 제2 레지스터의 정보에 기초하여, 상기 제1 및 제2 프레임 데이터를 처리하는 데이터 처리 시스템.
KR1020150168510A 2015-11-30 2015-11-30 공유 자원을 효율적으로 관리하는 데이터 처리 시스템 KR102416465B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150168510A KR102416465B1 (ko) 2015-11-30 2015-11-30 공유 자원을 효율적으로 관리하는 데이터 처리 시스템
US15/354,000 US10346209B2 (en) 2015-11-30 2016-11-17 Data processing system for effectively managing shared resources

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150168510A KR102416465B1 (ko) 2015-11-30 2015-11-30 공유 자원을 효율적으로 관리하는 데이터 처리 시스템

Publications (2)

Publication Number Publication Date
KR20170062835A true KR20170062835A (ko) 2017-06-08
KR102416465B1 KR102416465B1 (ko) 2022-07-04

Family

ID=58777968

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150168510A KR102416465B1 (ko) 2015-11-30 2015-11-30 공유 자원을 효율적으로 관리하는 데이터 처리 시스템

Country Status (2)

Country Link
US (1) US10346209B2 (ko)
KR (1) KR102416465B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10091132B2 (en) * 2016-01-29 2018-10-02 Raytheon Company Systems and methods for resource contention resolution
US10409739B2 (en) * 2017-10-24 2019-09-10 Micron Technology, Inc. Command selection policy
US11487683B2 (en) * 2020-04-15 2022-11-01 AyDeeKay LLC Seamlessly integrated microcontroller chip

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080301342A1 (en) * 2007-06-01 2008-12-04 Richard Gerard Hofmann Device Directed Memory Barriers
US7617498B1 (en) * 2004-09-15 2009-11-10 Nortel Networks Limited Resource conflict management using predefined XML schemas

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7571303B2 (en) 2002-10-16 2009-08-04 Akya (Holdings) Limited Reconfigurable integrated circuit
JP2006195714A (ja) 2005-01-13 2006-07-27 Matsushita Electric Ind Co Ltd リソース管理装置
KR100722428B1 (ko) 2005-02-07 2007-05-29 재단법인서울대학교산학협력재단 리소스 공유 및 파이프 라이닝 구성을 갖는 재구성가능배열구조
JP4485574B2 (ja) * 2005-07-06 2010-06-23 パナソニック株式会社 アクセス制御装置、アクセス制御集積回路、及びアクセス制御方法
KR100784385B1 (ko) 2005-08-10 2007-12-11 삼성전자주식회사 공유 자원에 대한 접근 요청을 중재하는 시스템 및 방법
US8146090B2 (en) * 2005-09-29 2012-03-27 Rockstar Bidco, LP Time-value curves to provide dynamic QoS for time sensitive file transfer
JP2007102509A (ja) 2005-10-05 2007-04-19 Kyocera Mita Corp 調停装置
JP2007207024A (ja) 2006-02-02 2007-08-16 Matsushita Electric Ind Co Ltd リソース管理装置
WO2007132424A2 (en) 2006-05-17 2007-11-22 Nxp B.V. Multi-processing system and a method of executing a plurality of data processing tasks
JP4874165B2 (ja) 2006-07-07 2012-02-15 ルネサスエレクトロニクス株式会社 マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス権設定方法
GB2473505B (en) * 2009-09-15 2016-09-14 Advanced Risc Mach Ltd A data processing apparatus and a method for setting priority levels for transactions
CN102137014B (zh) 2011-03-11 2013-12-04 华为技术有限公司 资源管理方法、系统和资源管理器
CN102346460B (zh) * 2011-05-27 2013-11-13 运软网络科技(上海)有限公司 一种基于事务的服务控制系统及其控制方法
US10250520B2 (en) 2011-08-30 2019-04-02 Samsung Electronics Co., Ltd. Customer engagement platform and portal having multi-media capabilities
US9367498B2 (en) * 2011-09-14 2016-06-14 Panasonic Intellectual Property Management Co., Ltd. Resource request arbitration device, resource request arbitration system, resource request arbitration method, integrated circuit, and program
US8984195B2 (en) 2011-12-02 2015-03-17 Atmel Corporation Microcontroller including alternative links between peripherals for resource sharing
EP2782038A1 (en) 2013-03-19 2014-09-24 STMicroelectronics (Grenoble 2) SAS Resource management in a processor for trusted and untrusted applications

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7617498B1 (en) * 2004-09-15 2009-11-10 Nortel Networks Limited Resource conflict management using predefined XML schemas
US20080301342A1 (en) * 2007-06-01 2008-12-04 Richard Gerard Hofmann Device Directed Memory Barriers

Also Published As

Publication number Publication date
US10346209B2 (en) 2019-07-09
US20170153923A1 (en) 2017-06-01
KR102416465B1 (ko) 2022-07-04

Similar Documents

Publication Publication Date Title
CA2933712C (en) Resource processing method, operating system, and device
KR102299574B1 (ko) 디스플레이 잡음을 개선하는 디스플레이 컨트롤러, 이를 포함하는 반도체 집적회로 장치 및 상기 디스플레이 컨트롤러의 동작 방법
US9563579B2 (en) Method, apparatus, system for representing, specifying and using deadlines
US11526440B2 (en) Providing multiple memory modes for a processor including internal memory
US20190172516A1 (en) Electronic device performing training on memory device by rank unit and training method thereof
JP7053713B2 (ja) 低電力コンピュータイメージング
US9098640B2 (en) Controller, electronic equipment unit, and USB device control method
CN101876911B (zh) 基于PCI/PCIe总线多CPU系统启动方法及模块
CN109977037B (zh) 一种dma数据传输方法及系统
US10176132B2 (en) Configuration arbiter for multiple controllers sharing a link interface
JP5445669B2 (ja) マルチコアシステムおよび起動方法
KR102416465B1 (ko) 공유 자원을 효율적으로 관리하는 데이터 처리 시스템
KR102247742B1 (ko) 애플리케이션 프로세서와 시스템 온 칩
KR20140018813A (ko) 동적 메모리 재할당 관리 방법과 상기 방법을 수행할 수 있는 장치
KR20160128751A (ko) 애플리케이션 프로세서, 시스템 온 칩, 및 이를 포함하는 컴퓨팅 장치
US10255890B2 (en) Display controller for reducing display noise and system including the same
US20190050240A1 (en) Bios startup method and apparatus
CN115775199A (zh) 数据处理方法和装置、电子设备和计算机可读存储介质
JP5641128B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム
CN102662886A (zh) SoC地址映像的优化方法
KR101946455B1 (ko) 시스템 온-칩 및 이의 동작 방법
KR20060112349A (ko) 에스오씨 버스 시스템 및 버스 데이터 처리방법
US20180336147A1 (en) Application processor including command controller and integrated circuit including the same
CN116431557A (zh) 用于控制互联装置的方法、装置、芯片、设备和存储介质
KR20220135134A (ko) 태스크 스케줄링 방법, 이를 이용하는 연산 장치 및 애플리케이션 프로세서

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant