상기 목적들을 달성하기 위하여, 본 발명의 일 측면에 따르면 공유 메모리를 이용한 디스플레이 정보 송수신 방법을 수행하는 디지털 처리 장치가 제공된다.
본 발명의 바람직한 일 실시예에 따른 디지털 처리 장치는 표시부; 둘 이상의 억세스 포트를 구비한 공유 메모리; MP(Main Processor)-SM(Shared Memory) 버스를 통해 상기 공유 메모리에 결합되는 메인 프로세서; 및 AP(Application Processor)-SM 버스를 통해 상기 공유 메모리에 결합되고, 상기 메인 프로세서와 직렬 인터페이스(Serial Interface)를 통해 결합되며, 상기 표시부와 병렬 인터페이스(Parallel Interface)를 통해 결합되는 어플리케이션 프로세서를 포함할 수 있다.
상기 공유 메모리는 n(자연수)개의 저장 영역으로 분할되고, 상기 n 개의 저장 영역은 상기 메인 프로세서만이 억세스할 수 있는 영역 A, 상기 어플리케이션 프로세서만이 억세스할 수 있는 영역 B, 상기 메인 프로세서 및 상기 어플리케이션 프로세서가 중복되지 않도록 공통으로 억세스할 수 있는 공통 영역을 포함할 수 있다. 상기 공유 메모리는 상기 영역 A, 상기 영역 B 및 상기 공통 영역 중 하나 이상에 포함되어 상응하는 저장 영역의 크기를 증가시키는 가변 영역을 더 포함할 수 있다.
상기 어플리케이션 프로세서는, 상기 직렬 인터페이스를 통해 상기 메인 프 로세서로부터 제어 신호를 수신하는 제1 인터페이스부; 상기 메인 프로세서가 상기 공유 메모리에 저장한 디스플레이 데이터를 상기 표시부에 전달하는 제2 인터페이스부; 및 상기 제어 신호에 상응하도록 상기 제2 인터페이스부를 제어하는 컨트롤러부를 포함할 수 있다.
또는, 상기 어플리케이션 프로세서는 상기 메인 프로세서가 상기 공유 메모리에 저장한 디스플레이 데이터를 상기 표시부에 전달하는 인터페이스부; 및 미리 할당된 레지스터에 미리 지정된 값이 기록되면 상기 기록된 값에 상응하는 동작이 수행되도록 상기 인터페이스부를 제어하는 컨트롤러부를 포함할 수 있다. 여기서, 상기 메인 프로세서가 상기 직렬 인터페이스를 통해 상기 레지스터에 미리 지정된 값을 기록할 수 있다.
상기 레지스터는 상기 메인 프로세서로부터 지시된 정보를 표시하기 위하여 할당된 레지스터이고, 상기 레지스터에 미리 지정된 값이 기록되면 상기 어플리케이션 프로세서는 상기 공유 메모리에 기록된 디스플레이 데이터를 상기 표시부로 전달하는 기능을 수행할 수 있다.
상기 공유 메모리는 n(자연수)개의 저장 영역으로 분할되고, 상기 n 개의 저장 영역은 하나 이상의 공통 영역을 포함하고, 상기 디스플레이 데이터가 저장되는 상기 공통 영역은 상기 메인 프로세서 및 상기 어플리케이션 프로세서가 중복되지 않도록 공통으로 억세스할 수 있는 저장 영역일 수 있다.
상기 메인 프로세서, 상기 어플리케이션 프로세서 및 상기 메모리는 동일한 칩 내에 구현될 수 있다.
상기 목적들을 달성하기 위하여, 본 발명의 다른 측면에 따르면 공유 메모리를 이용한 디스플레이 제어 방법 및/또는 그 방법을 수행하기 위한 프로그램이 기록된 기록매체가 제공된다.
본 발명의 바람직한 일 실시예에 따른 공유 메모리를 이용한 디스플레이 제어 방법은, 상기 공유 메모리에 디스플레이 데이터를 저장한 메인 프로세서가 어플리케이션 프로세서로 직렬 인터페이스(serial interface)를 통해 표시 제어 신호를 전송하는 단계; 및 상기 어플리케이션 프로세서가 상기 디스플레이 데이터를 독출하여 병렬 인터페이스(Parallel interface)를 통해 표시부로 전달하는 단계를 포함할 수 있다. 여기서, 상기 메인 프로세서는 MP-SM 버스를 통해 상기 공유 메모리에 결합되고, 상기 직렬 인터페이스를 통해 상기 어플리케이션 프로세서와 결합되며, 상기 어플리케이션 프로세서는 AP-SM 버스를 통해 상기 공유 메모리에 결합되고, 상기 직렬 인터페이스를 통해 상기 부가 프로세서와 결합되며, 상기 병렬 인터페이스를 통해 상기 표시부에 결합될 수 있다.
상기 표시 제어 신호를 전송하는 단계는, 상기 메인 프로세서가 상기 어플리케이션 프로세서 내의 미리 할당된 레지스터에 미리 지정된 값을 기록하는 단계일 수 있다.
상기 공유 메모리는 n(자연수)개의 저장 영역으로 분할되고, 상기 n 개의 저장 영역은 상기 메인 프로세서만이 억세스할 수 있는 영역 A, 상기 어플리케이션 프로세서만이 억세스할 수 있는 영역 B, 상기 메인 프로세서 및 상기 어플리케이션 프로세서가 중복되지 않도록 공통으로 억세스할 수 있는 공통 영역을 포함할 수 있다. 여기서, 상기 디스플레이 데이터는 상기 공통 영역에 저장될 수 있다.
상기 공유 메모리는 상기 영역 A, 상기 영역 B 및 상기 공통 영역 중 하나 이상에 포함되어 상응하는 저장 영역의 크기를 증가시키는 가변 영역을 더 포함할 수 있다.
이하, 본 발명의 바람직한 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다. 본 명세서에서 이용되는 서수(ordinal number, 예를 들어, 제1, 제2, A, B 등)는 동일 또는 유사한 개체가 표시된 순서대로 단지 구별을 위해 순차적으로 구분하기 위한 식별 기호에 불과하다. 따라서, 서수가 부가된 구성 요소의 명칭은 그 전체로서 특정되는 것은 아니며, 또한 이로 인해 본 발명의 권리범위가 제한되지 않음은 자명하다.
또한, 본 발명에 따른 공유 메모리를 이용한 디스플레이 제어 방법은 메인 프로세서가 디스플레이될 데이터를 어플리케이션 프로세서를 경유하여 표시부로 전달할 필요가 있는 모든 형태의 디지털 처리 장치 또는 시스템(예를 들어, 이동 통신 단말기, PDA, PMP(Portable Multimedia Player), MP3 플레이어, 디지털 카메라, 디지털 텔레비전, 음향 기기 등과 같이 휴대형 단말기 및/또는 가정 내에 구비되는 가정용 디지털 기기 등)에 동일하게 적용할 수 있음은 자명하다. 다만, 이하에서는 설명 및 이해의 편의를 위해 휴대형 단말기를 중심으로 설명하기로 한다. 또한, 하기의 설명을 통해 본 발명이 적용될 수 있는 휴대형 단말기가 특정 유형의 단말기 에 제한되지 않고 복수의 프로세서 또는 구성 요소들에 의해 공유되는 메모리를 포함하여 구성된 단말기인 경우라면 동일하게 적용될 수 있음을 쉽게 이해할 수 있을 것이다.
도 3은 본 발명의 바람직한 일 실시예에 따른 각 프로세서의 연결 구조를 간략히 나타낸 도면이고, 도 4는 본 발명의 바람직한 일 실시예에 따른 공유 메모리의 분할 형태를 예시한 도면이다.
관련 도면을 참조하여 설명함에 있어, 어플리케이션 프로세서(310)는 이미지 센서(530 - 도 3 참조)를 제어하고 이미지 센서(530)로부터 입력되는 멀티미디어 데이터(예를 들어, 이미지 데이터 및 음성 데이터 등)의 처리를 위한 멀티미디어 프로세서인 경우를 가정하여 설명한다. 또한, 어플리케이션 프로세서(310)와 결합된 공유 메모리(320)는 메인 프로세서(210)와 공유될 뿐 아니라 어플리케이션 프로세서(310) 내에 포함된 각 구성 요소들에 의해 공유될 수 있을 것이다.
도 3에 도시된 바와 같이, 메인 프로세서(210)는 호스트 인터페이스(Host I/F)를 통해 어플리케이션 프로세서(310)와 결합되고, MP(Main Processor)-SM(Shared Memory) 버스를 통해 공유 메모리(320)에 결합된다. 본 발명에서의 호스트 인터페이스는 직렬 방식으로 구현된다.
메인 프로세서(210)는 휴대형 단말기에 포함된 각 구성 요소를 제어할 수 있다. 예를 들어, 휴대형 단말기에 복수의 어플리케이션 프로세서들이 구비된 경우 메인 프로세서는 호스트 인터페이스를 통해 각 어플리케이션 프로세서들의 기능을 제어할 수 있다.
어플리케이션 프로세서(310)는 호스트 인터페이스를 통해 메인 프로세서(210)와 결합되고, AP(Application Processor)-SM 버스를 통해 공유 메모리(320)와 결합되며, 표시부 인터페이스(LCD I/F)를 통해 표시부(145)에 결합된다. 본 발명에서의 표시부 인터페이스는 병렬 방식으로 구현된다.
어플리케이션 프로세서(310)가 멀티미디어 프로세서인 경우, 이미지 센서(530)로부터 입력된 멀티미디어 데이터를 처리하여 공유 메모리(320)에 저장(즉, 기록)하고, 부가 메모리(320)에 저장된 멀티미디어 데이터를 처리하여 표시부(145)를 통해 디스플레이할 수 있다.
공유 메모리(320)는 2개의 억세스 포트(Access Port)를 구비하여, 각각 메인 프로세서(210)와 어플리케이션 프로세서(310)에 결합된다. 공유 메모리(320)가 구비하는 포트의 수는 접속되는 프로세서의 수에 따라 증감될 수 있을 것이다.
공유 메모리(320)는 도 4에 도시된 바와 같이, 하나의 내부 제어부(Internal controller, 410)를 구비하며, 2개의 억세스 포트를 통해 각 프로세서(210, 310)가 각 저장 영역에 접속할 수 있도록 구성된다.
공유 메모리(320)의 저장 영역은 메인 프로세서(210)만이 전용적으로 접속하여 데이터 기록(write) 및 독출(read)이 가능한 영역 A(420), 어플리케이션 프로세서(310)만이 전용적으로 접속하여 데이터 기록(write) 및 독출(read)이 가능한 영역 B(440), 메인 프로세서(210)와 어플리케이션 프로세서(310)가 모두 접속하여 데이터 기록 또는 독출할 수 있는 공통 영역(430) 및 타 영역의 확장을 위해 이용될 수 있는 가변 영역(450, 460)으로 구분될 수 있다. 도 4에 도시된 저장 영역의 분할 개수는 편의에 따라 증감될 수 있을 것이다. 공통 영역(430)은 메인 프로세서(210) 및 어플리케이션 프로세서(310)에 의해 억세스될 수 있는 영역이지만, 동시에 억세스될 수는 없으며 어느 하나의 프로세서가 공통 영역(430)에 접속한 경우 해당 정보가 타 프로세서에 의해 인식될 수 있어야 한다.
도 4에는 가변 영역(450, 460)이 복수로 분할되어 있으나 하나로 통합될 수도 있음은 자명하다. 가변 영역(450, 460)은 타 영역(예를 들어, 공통 영역)에 전체적으로 포함되어 해당 영역의 크기를 확장하거나, 복수의 영역(예를 들어, 영역 A와 영역 B)에 일부분씩 포함되도록 하여 해당 영역들의 크기를 확장할 수도 있다. 가변 영역(450, 460)은 각 영역에 고정적으로 포함되도록 제한되지는 않으며, 필요에 따라 가변적으로 특정 영역에 포함되도록 설정될 수 있다. 예를 들어, 가변 영역(450, 460)이 어떤 영역에 포함되도록 할 것인지 여부를 메인 프로세서(210)가 제어하는 경우, 메인 프로세서(210)는 부팅(booting) 과정에서 가변 영역(450, 460)이 특정 영역에 포함되도록 한 후, 데이터를 공유 메모리의 특정 영역(예를 들어, 영역 A 또는 공통 영역)에 기록하는 도중 해당 영역의 저장 공간이 부족한 경우, 타 영역에 포함된 가변 영역이 해당 영역으로 이전되도록 제어할 수 있다. 가변 영역(450, 460)의 재설정 정보는 호스트 인터페이스를 통해 타 프로세서로 전달되어 인식되도록 함이 바람직할 것이다. 마찬가지로, 가변 영역의 재설정은 어플리케이션 프로세서(310)에 의해 수행되어 메인 프로세서(210)로 해당 정보가 전송되거나 메인 프로세서(210)로 재설정을 요청하여 가변 영역(450, 460)이 재설정되도 록 할 수도 있을 것이다.
메인 프로세서(210) 및/또는 어플리케이션 프로세서(310)의 특정 구성 요소는 임의의 영역(예를 들어, 전용의 저장 영역 또는 공통 영역)에 데이터를 기록하고자 하는 경우 데이터의 기록을 위한 기록 명령(즉, 주소 정보(Addr_A : 저장 영역 A의 Address Signal), 기록하고자 하는 데이터(Data_A), 제어 신호들(예를 들어, 저장 영역 A로의 데이터 기록을 지시하기 위한 WE_A(Write Enable), 저장 영역 A에 대한 칩 선택 신호(CS_A : Chip Select _ A), 클럭(CLK_A) 등))을 공유 메모리(320)로 전송한다. 마찬가지로, 메인 프로세서(210) 및/또는 어플리케이션 프로세서(310)의 특정 구성 요소는 임의의 저장 영역에 기록된 데이터를 독출하고자 하는 경우 데이터의 독출을 위한 독출 명령(즉, 주소 정보(Addr_B : 저장 영역 B의 Address Signal), 기록하고자 하는 데이터(Data_B), 제어 신호들(예를 들어, 저장 영역 B에서의 데이터 독출을 지시하기 위한 OE_A(Output Enable), 저장 영역 B에 대한 칩 선택 신호(CS_B : Chip Select_B), 클럭(CLK_B) 등))을 부가 메모리(325)로 전송한다.
본 발명에 따른 공유 메모리를 이용한 디스플레이 제어 방법에 의할 때, 메인 프로세서(210)는 표시부(145)에 디스플레이할 데이터를 호스트 인터페이스를 통해 어플리케이션 프로세서(310)로 전달할 필요가 없다. 이는, 메인 프로세서(210)가 표시부(145)에 디스플레이할 데이터를 공통 영역(430)에 기록한 후, 어플리케이션 프로세서(310)가 공통 영역(430)에 억세스하여 기록된 데이터를 독출하여 표시부(145)로 전송하면 충분하기 때문이다. 이에 대해서는 이후 관련 도면을 참조하여 구체적으로 설명한다.
도 5는 본 발명의 바람직한 일 실시예에 따른 어플리케이션 프로세서의 구성을 간략히 나타낸 도면이고, 도 6은 본 발명의 바람직한 일 실시예에 따른 공유 메모리를 이용한 디스플레이 제어 방법을 나타낸 순서도이다.
도 5에 도시된 바와 같이, 어플리케이션 프로세서(310)는 직렬 방식의 호스트 인터페이스를 통해 메인 프로세서(210)와 결합되고, 2개의 포트를 구비한 공유 메모리(320)에 AP-SM 버스를 통해 결합된다. 또한, 어플리케이션 프로세서(310)는 이미지 센서(530)로부터 입력된 데이터를 처리하여 공유 메모리(320)에 저장할 수 있고, 처리된 데이터를 표시부(145)를 통해 디스플레이할 수 있다.
어플리케이션 프로세서(310)는 제1 인터페이스부(510), 컨트롤러부(515), 멀티미디어 처리부(520), 이미지 스케일러(525), 메모리 제어부(535), 제2 인터페이스부(540)를 포함한다.
제1 인터페이스부(510)는 어플리케이션 프로세서(310)와 결합된 메인 프로세서(210)간에 정보 송수신을 수행한다. 어플리케이션 프로세서(310)는 제1 인터페이스부(510)를 통해 메인 프로세서(210)로부터 제어 신호가 수신되면 상응하는 처리 동작을 수행한다. 메인 프로세서(210)는 공유 메모리(320)의 공통 영역(430)에 접속하고자 하는 경우, 이를 어플리케이션 프로세서(310)로 통지하여야 한다. 어플리케이션 프로세서(310) 내부에 접속 레지스터를 구비하는 경우, 메인 프로세서(210)는 호스트 인터페이스를 통해 어플리케이션 프로세서(310)에 접속한 후 접속 레지 스터를 미리 지정된 값으로 갱신함으로써 메인 프로세서(210)가 공통 영역(430)에 접속할 것임을 통지할 수 있다. 예를 들어, 접속 레지스터 값이 제1값(예를 들어, 1)인 상태가 임의의 프로세서가 공통 영역(430)에 접속 중임을 나타낸다고 가정할 때, 메인 프로세서(210)는 호스트 인터페이스를 통해 어플리케이션 프로세서(310)에 접속하여 제2값(예를 들어, 0)인 접속 레지스터 값을 제1값으로 갱신할 것이다.
컨트롤러부(515)는 어플리케이션 프로세서(310)의 구동을 위해 내장된 프로그램에 의해 어플리케이션 프로세서(310)의 동작을 제어한다. 즉, 컨트롤러부(515)는 어플리케이션 프로세서(310)의 동작을 제어하고, 프로그램의 수행 또는 어플리케이션 프로세서(310)의 동작을 위해 필요한 데이터는 공유 메모리(320)로부터 독출하며, 처리된 프로그래밍 결과를 표시부(145)를 통해 디스플레이하거나 공유 메모리(320)에 저장한다. 컨트롤러부(515)는 시스템 버스, 메모리 제어부(535)를 통해 공유 메모리(320)의 특정 분할 영역(예를 들어, 공통 영역(430) 또는 영역 B)에 억세스할 수 있다. 일반적으로 컨트롤러부(515)는 메인 프로세서(210)로부터 수신된 제어 신호(예를 들어, 레지스터 값의 갱신 상태 등)에 상응하여 어플리케이션 프로세서(310)의 동작을 제어한다. 접속 레지스터(즉, 공통 영역(430)으로의 접속 여부를 나타내기 위한 레지스터) 및 표시 레지스터(공통 영역(430)에 저장된 데이터를 표시부(145)로 전달하도록 지시하기 위한 레지스터)는 컨트롤러부(515)에 의해 관리될 수 있다. 컨트롤러부(515)는 예를 들어 MCU(Microcontroller Unit)일 수 있다.
멀티미디어 처리부(520)는 메모리 제어부(535)를 통해 공유 메모리(320)의 특정 분할 영역에 저장된 데이터를 독출하거나 컨트롤러부(515)에 의해 독출된 데이터를 미리 지정된 포맷(예를 들어 JPEG, MPEG4)으로 압축하거나 필요한 효과를 주는 등의 역할을 수행한다. 멀티미디어 처리부(520)는 처리한 데이터를 공유 메모리(320) 내의 임의의 저장 영역(예를 들어, 공통 영역 또는 영역 B)에 저장할 수 있다. 또한 멀티미디어 처리부(520)는 메인 프로세서(210)로부터 수신되어 공유 메모리(320)에 저장된 압축 파일을 독출하여 디코딩한 후 표시부(145)에 디스플레이할 수도 있다.
이미지 스케일러(525)는 이미지 센서(530)로부터 입력되는 데이터를 컨트롤러부(515)의 제어에 의해 가공하여 미리 지정된 데이터로 변환한다. 이미지 스케일러(525)는 예를 들어 이미지의 크기 조정, 색상 변경, 필터링(filtering)에 의한 부드러운 이미지 생성 등을 수행한다. 이미지 스케일러(525)에 의해 처리된 데이터는 메모리 제어부(535)에 의해 AP-SM 버스를 통해 공유 메모리(320)의 특정 분할 영역에 저장된다.
본 발명의 이미지 스케일러(525)는 이미지 센서(530)로부터 입력된 데이터를 처리하여 공유 메모리(320)에 저장되도록 하기 위한 구성 요소의 일 실시예에 불과하다. 따라서, 본 발명은 공유 메모리(320)로 멀티미디어 데이터(예를 들어, 이미지 데이터 및/또는 음성 데이터 등)를 실시간 저장할 필요가 있는 모든 멀티미디어 데이터 입력부에 범용적으로 적용될 수 있음은 자명하다.
또한 마찬가지로 도 5에 도시된 멀티미디어 처리부(520) 등은 공유 메모리(320)에 저장된 멀티미디어 데이터를 처리하는 구성 요소의 일 실시예에 불과하며, 본 발명은 공유 메모리(320)에 저장된 멀티미디어 데이터를 처리하여 공유 메모리(320)에 다시 저장하거나, 표시부(145)를 통해 디스플레이하거나, 또는 메인 프로세서(210)로 전송하는 모든 멀티미디어 데이터 처리부에 범용적으로 적용될 수 있음은 자명하다.
메모리 제어부(535)는 어플리케이션 프로세서(310)의 임의의 구성 요소가 공유 메모리(320)에 접속하고자 할 때 AP-SM 버스를 통해 억세스할 수 있도록 처리한다. 메모리 제어부(535)는 복수의 구성 요소가 동시에 접속을 시도한 경우 미리 설정된 우선 순위에 따라 공유 메모리(320)에 억세스되도록 제어할 수도 있다. 또한, 메모리 제어부(535)는 임의의 구성 요소에 의해 처리된 데이터가 공유 메모리(320)의 특정 분할 영역에 저장되도록 처리할 수도 있다.
제2 인터페이스부(540)는 메인 프로세서(210)가 표시부(145)를 통해 디스플레이하기 위해 공유 메모리(320)의 공통 영역(430)에 저장한 데이터를 표시부(145)로 전달한다. 제2 인터페이스부(540)와 표시부(145)는 병렬 방식의 인터페이스 구조를 가지므로, 제2 인터페이스부(540)는 해당 데이터를 병렬 인터페이스 구조에 의해 표시부(145)로 전달한다. 표시부(145)로 전달될 데이터는 컨트롤러부(515)에 의해 독출되어 제2 인터페이스부(540)로 전달되거나, 제2 인터페이스부(540)가 메모리 제어부(535)를 통해 공유 메모리(320)로부터 해당 데이터를 독출할 수도 있다.
이하, 도 6에 도시된 순서도를 이용하여 본 발명에 따른 공유 메모리를 이용한 디스플레이 제어 방법을 상세히 설명한다. 도 6을 참조하여 본 발명에 따른 공 유 메모리를 이용한 디스플레이 제어 방법을 설명함에 있어 설명 및 이해의 편의를 도모하기 위해 메인 프로세서(210) 및 어플리케이션 프로세서(310)간에 수행되는 것으로 통칭하여 설명한다.
도 6을 참조하면, 단계 610에서 메인 프로세서(210)는 어플리케이션 프로세서(310)로 호스트 인터페이스를 통해 접속하여 접속 레지스터 값을 제1값(예를 들어, 1)으로 갱신한다. 본 발명은 표시부(145)를 통해 표시될 데이터를 메인 프로세서(210)가 호스트 인터페이스를 통해 어플리케이션 프로세서(310)로 전달할 필요가 없으므로, 핀 수를 최소화하기 위해 직렬 인터페이스(serial interface)를 이용한다.
호스트 인터페이스를 위해 필요한 핀들을 정의하면 아래 표와 같다.
신호명 |
내용 |
S_data_out |
MP(Main Processor) data out to AP(Application Processor) |
S_data_in |
AP(Application Processor) data out to MP(Main Processor) |
S_CLK |
Serial data synchronous clock |
S-Enable |
Define enable period |
Interrupt |
AP(Application Processor) output to MP(Main Processor) to get something |
메인 프로세서(210)는 어플리케이션 프로세서(310)로 제어 명령(예를 들어, 임의의 제어 신호, 처리 지시 등)을 제공하기 위하여 신호 S_data_out을 이용할 수 있고, 어플리케이션 프로세서(310)는 메인 프로세서(210)로 응답 신호(예를 들어, Ack, 처리 완료 응답 등)를 제공하거나 메인 프로세서(210)/어플리케이션 프로세서(220)의 동작 상태/설정 상태를 확인하기 위해 신호 S_data_in을 이용할 수 있다. 신호 S_CLK는 시리얼 통신을 위해 시리얼 데이터와의 동기화를 위한 클럭으로 이용될 수 있고, S_enable은 통신을 위해 유효 데이터들의 송수신의 구간을 나타내기 위해 이용될 수 있다. 신호 Interrupt는 어플리케이션 프로세서(310)가 공통 영역(430)에 접속하고자 하거나 메인 프로세서(210)로부터 지시된 동작이 완료된 시점 등에서 메인 프로세서(210)에 통지하기 위해 이용될 수 있다.
상술한 바와 같이, 어플리케이션 프로세서(310)가 신호 Interrupt를 이용하여 메인 프로세서(210)로 공통 영역(430)에 억세스할 것임을 미리 통지하였다면 메인 프로세서(210)는 어플리케이션 프로세서(310)로부터 공통 영역(430)에 대한 억세스 종료 신호가 수신될 때까지 단계 610을 유보할 것이다.
또한, 단계 610에 의해 접속 레지스터 값이 제1값으로 갱신되었다면 다시 제2값(예를 들어, 0)으로 갱신될 때까지 어플리케이션 프로세서(310)는 공통 영역(430)으로의 억세스를 유보할 것이다.
이는 하나의 영역에 복수의 프로세서가 동시에 억세스되지 않도록 미리 설정되기 때문이다.
단계 615에서 메인 프로세서(210)는 MP-SM 버스를 통해 공유 메모리(320)에 억세스한 후, 표시부(145)를 통해 표시할 데이터(이하, '디스플레이 데이터'라 칭함)를 공유 메모리(320)의 공통 영역(430)에 저장한다.
단계 620에서 메인 프로세서(210)는 어플리케이션 프로세서(310)가 공통 영역(430)에 저장된 디스플레이 데이터를 표시부(145)로 전달하도록 하기 위해 제어 신호를 호스트 인터페이스를 통해 어플리케이션 프로세서(310)로 전달한다. 제어 신호는 어플리케이션 프로세서(310)에 구비된 표시 레지스터 값을 제1값(예를 들어, 1)으로 갱신하는 방법 등으로 구현될 수 있다.
표시 레지스터 값의 갱신은 단계 610에서 함께 수행될 수 있다. 이는 어플리케이션 프로세서(310)가 메인 프로세서(210)에 의해 접속 레지스터 값 및 표시 레지스터 값이 각각 갱신되었을지라도 메인 프로세서(210)가 공통 영역(430)에 대한 억세스를 종료할 때(즉, 접속 레지스터 값을 제2값으로 환원할 때)까지 공통 영역(430)에 억세스할 수 없어 디스플레이 데이터를 독출할 수 없기 때문이다.
또한, 표시 레지스터 값의 갱신(즉, 단계 620)은 메인 프로세서(210)가 디스플레이 데이터의 기록을 완료하여 공통 영역(430)에 대한 억세스를 종료(즉, 접속 레지스터 값을 제2값으로 환원)하는 시점에서 함께 수행되거나, 공통 영역(430)에 대한 억세스를 종료하기 직전 또는 직후에 수행될 수도 있음은 자명하다.
이외에도, 단계 620에 의해 표시 레지스터 값의 갱신 외에 디스플레이 데이터가 기록된 주소 정보가 더 제공될 수도 있을 것이다.
접속 레지스터 값이 제2값으로 환원되고, 표시 레지스터 값이 갱신되었음을 감지한 어플리케이션 프로세서(310)는 메인 프로세서(210)에 의해 지시된 동작(즉, 공통 영역(430)에 기록된 데이터를 표시부(145)로 전달)을 수행하기 위한 일련의 절차를 수행한다. 이를 위한 과정도 다양한 순서로서 구현될 수 있음은 자명하다. 예를 들어, 어플리케이션 프로세서(310)의 감지 동작은 메인 프로세서(210)가 공통 영역(430)에 데이터를 기록하는 과정에서 이루어지거나, 데이터의 기록이 완료된 직후에 동시에/순차적으로 수행될 수도 있음은 자명하다. 다만, 이하에서는 도 6에 도시된 바와 같이, 메인 프로세서(210)가 모든 동작을 완료한 후, 어플리케이션 프로세서(310)가 각 레지스터에 기록된 값을 순차적으로 확인하여 상응하는 동작을 수행하는 과정만을 설명한다.
단계 625에서 어플리케이션 프로세서(310)는 메인 프로세서(210)에 의해 접속 레지스터 값이 제2 값(예를 들어, 0)으로 환원되었는지 여부를 판단한다.
만일 접속 레지스터 값이 제1값이면 단계 625에서 대기하고, 접속 레지스터 값이 제2값이면 단계 630으로 진행한다. 이는 접속 레지스터 값이 제1값으로 유지되고 있다면 이는 메인 프로세서(210)가 아직 공통 영역(430)에 억세스 중이기 때문이다.
단계 630에서 어플리케이션 프로세서(310)는 메인 프로세서(210)에 의해 표시 레지스터 값이 제1 값(예를 들어, 1)으로 갱신되었는지 여부를 판단한다.
만일 표시 레지스터 값이 제1값이면 단계 630으로 진행하고, 표시 레지스터 값이 제2값(예를 들어, 0)이면 단계를 종료한다. 이는 표시 레지스터 값이 제1값인 경우에는 어플리케이션 프로세서(310)가 공통 영역(430)에 저장된 디스플레이 데이터를 독출하여 표시부(145)로 전달하도록 미리 설정되었기 때문이다. 그러나, 표시 레지스터 값이 제1값이 아닌 경우에는 공통 영역(430)에 대한 데이터에 대해 임의의 처리가 수행되도록 메인 프로세서(210)에 의해 지시되었을 것이고, 어플리케이션 프로세서(310)는 이에 상응하는 처리를 수행할 것이나, 이는 본 발명과는 관련성이 없는 내용이다. 따라서, 이에 대한 별도의 설명은 생략하고 단지 단계를 종료하는 것으로만 설명한다.
단계 635에서 어플리케이션 프로세서(310)는 AP-SM 버스를 통해 공유 메모리(320)에 억세스한 후, 공통 영역(430)에 저장된 디스플레이 데이터를 독출한다. 이 때, 단계 620을 통해 디스플레이 데이터의 주소 정보가 함께 수신된 경우, 당해 주소 정보가 이용될 수도 있다.
단계 640에서 어플리케이션 프로세서(310)는 독출한 디스플레이 데이터를 병렬 방식의 인터페이스 구조인 표시부 인터페이스(LCD I/F)를 통해 표시부(145)로 전달한다. 어플리케이션 프로세서(310)는 일반적으로 공통 영역(430)에 저장된 디스플레이 데이터를 독출할 때 병렬 방식의 인터페이스 구조에 적합하도록 독출하기 때문에 표시부(145)로 디스플레이 데이터를 전달할 때 별도의 처리가 필요없을 수 있다. 물론, 어플리케이션 프로세서(310)가 디스플레이 데이터를 직렬 방식의 인터페이스 구조에 적합하도록 독출하는 경우에는 독출된 데이터를 병렬 방식의 인터페이스 구조에 적합하도록 변환하여 전달하여야 할 것이다.
어플리케이션 프로세서(310)는 공통 영역(430)에 기록된 디스플레이 데이터의 전송이 완료되면 이를 메인 프로세서(210)로 통지한다. 이 경우, 어플리케이션 프로세서(310)는 표시 레지스터 값을 제2값(예를 들어, 0)으로 환원할 수 있다. 물론, 표시 레지스터 값은 통지를 수신한 메인 프로세서(210)에 의해 갱신될 수도 있을 것이다.
이제까지 메인 프로세서(210)가 어플리케이션 프로세서(310)의 처리를 위해 레지스터 값을 갱신하는 방법을 중심으로 설명하였으나, 레지스터 값 갱신 이외에 메인 프로세서(210)가 부가 프로세서(310, 또는 컨트롤러부(515))로 미리 지정된 형식의 제어 신호(예를 들어, 공통 영역 억세스 제한을 위한 제어 신호, 디스플레이 데이터의 전송을 지시하는 제어 신호 등)를 전송할 수도 있음은 자명하다.
상술한 바와 같이, 본 발명은 메인 프로세서(210)와 어플리케이션 프로세서(310)간의 인터페이스를 직렬 인터페이스 구조화함으로써 프로세서들간의 인터페이스 신호선들의 수를 최소화할 수 있고, 공유 메모리(320)를 이용한 데이터 전송 구조를 가짐으로써 데이터 전달이 신속하게 수행될 수 있다.