KR102548581B1 - 데이터 처리 속도를 높이는 터치 스크린 컨트롤러, 및 이를 포함하는 터치 시스템 - Google Patents

데이터 처리 속도를 높이는 터치 스크린 컨트롤러, 및 이를 포함하는 터치 시스템 Download PDF

Info

Publication number
KR102548581B1
KR102548581B1 KR1020160069664A KR20160069664A KR102548581B1 KR 102548581 B1 KR102548581 B1 KR 102548581B1 KR 1020160069664 A KR1020160069664 A KR 1020160069664A KR 20160069664 A KR20160069664 A KR 20160069664A KR 102548581 B1 KR102548581 B1 KR 102548581B1
Authority
KR
South Korea
Prior art keywords
data
buffer
source
memory
stored
Prior art date
Application number
KR1020160069664A
Other languages
English (en)
Other versions
KR20170089384A (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 US15/393,501 priority Critical patent/US10141972B2/en
Publication of KR20170089384A publication Critical patent/KR20170089384A/ko
Priority to US16/180,871 priority patent/US10355737B2/en
Application granted granted Critical
Publication of KR102548581B1 publication Critical patent/KR102548581B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/044Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/041Indexing scheme relating to G06F3/041 - G06F3/045
    • G06F2203/04104Multi-touch detection in digitiser, i.e. details about the simultaneous detection of a plurality of touching locations, e.g. multiple fingers or pen and finger

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Position Input By Displaying (AREA)

Abstract

본 발명의 터치 스크린 컨트롤러는 터치 패널(Touch Panel)로 제어 신호(control signal)를 제공하고, 상기 터치 패널로부터 터치 신호를 수신하는 프런트 엔드 회로, 상기 터치 신호에 기초하여 생성된 소스 데이터를 미리 정해진 알고리즘에 따라 처리하는 알고리즘 처리 회로, 상기 소스 데이터 및 알고리즘 처리 회로에서 처리된 결과 데이터를 저장하는 메모리, 및 상기 프런트 엔드 회로, 상기 알고리즘 처리 회로 및 상기 메모리 간의 데이터를 전송하는 버스를 포함하며, 상기 알고리즘 처리 회로는, 상기 소스 데이터 또는 상기 결과 데이터를 일시적으로 저장하며, 둘 이상의 회로에 의하여 공유될 수 있는 버퍼; 및 상기 알고리즘 처리 회로의 동작에 필요한 설정값을 저장하는 특수 기능 레지스터(SFR)를 포함한다.

Description

데이터 처리 속도를 높이는 터치 스크린 컨트롤러, 및 이를 포함하는 터치 시스템{Touch Screen Controller For Enhancing Data Processing Time, And System Including The Same}
본 발명의 개념에 따른 실시예는 터치 스크린 컨트롤러(Touch Screen Controller), 이를 포함하는 시스템 및 그 동작 방법에 관한 것이다.
터치 스크린에서 손으로 글씨를 쓸 때 부드럽게 써지도록 하기 위해서는 통상적으로 터치 스크린 컨트롤러(TSC: Touch Screen Controller)에서 약 120Hz 의 스캔 속도가 필요하다. 터치 패널(Touch panel)에서 TSC로 들어오는 신호는 터치 신호(touch signal) 이외에 여러 가지 잡음(noise)(형광등, 정전기, 충전기, 전자파, 디스플레이 등)를 포함하고 있다. 그래서 TSC에서는 잡음이 섞인 신호에서 잡음을 제거하고 순수한 손가락 터치 신호(touch signal)을 분리하기 위해 여러 가지 아날로그 필터(analog filter)와 디지털 필터(digital filter), 소프트웨어 알고리즘(S/W algorithm)을 사용한다. 많은 필터와 알고리즘을 사용할수록 터치 신호에 대한 처리속도는 늦어져서 반응속도에 대한 성능의 저하를 가져온다. 특히 소프트웨어 알고리즘의 경우, 하드웨어 필터에 비해 처리 속도가 현저하게 낮아서 성능 저하의 주원인이 되고 있다.
본 발명이 이루고자 하는 기술적 과제는 데이터 처리 속도를 개선하여 성능을 향상시킬 수 있는 터치 스크린 컨트롤러 및 이를 포함하는 시스템을 제공하는 것이다.
본 발명의 실시예에 따르면, 터치 패널(Touch Panel)로 제어 신호(control signal)를 제공하고, 상기 터치 패널로부터 터치 신호를 수신하는 프런트 엔드 회로; 상기 터치 신호에 기초하여 생성된 소스 데이터를 미리 정해진 알고리즘에 따라 처리하는 알고리즘 처리 회로; 상기 소스 데이터 및 알고리즘 처리 회로에서 처리된 결과 데이터를 저장하는 메모리; 및 상기 프런트 엔드 회로, 상기 알고리즘 처리 회로 및 상기 메모리 간의 데이터를 전송하는 버스를 포함하는 터치 스크린 컨트롤러(TSC)가 제공된다.
상기 알고리즘 처리 회로는, 상기 소스 데이터 또는 상기 결과 데이터를 일시적으로 저장하며, 리소스의 효율적인 사용을 위해 상기 알고리즘 처리 회로들에 의하여 공유되는 공용버퍼; 및 상기 알고리즘 처리 회로의 동작에 필요한 설정값을 저장하는 특수 기능 레지스터(SFR)를 포함한다.
실시예에 따라, 상기 버스는 R-비트 버스 대역폭을 가지고, 상기 버퍼는 상기 소스 데이터를 저장하는 소스 버퍼; 및 상기 결과 데이터를 저장하는 데스티네이션 버퍼를 포함한다.
실시예에 따라, 상기 알고리즘 처리 회로는 버스트 모드 혹은 연속된 싱글 모드로 상기 메모리로부터 소스 데이터를 동작 클락의 복수의 싸이클에 걸쳐 연속적으로 읽어 와서 상기 소스 버퍼에 저장한다.
실시예에 따라, 상기 알고리즘 처리 회로는 상기 동작 클락의 한 싸이클 동안 하나 이상의 소스 데이터를 상기 메모리로부터 읽어 온다.
실시예에 따라, 상기 데스티네이션 버퍼는 상기 소스 버퍼와 동일하며, 상기 결과 데이터는 상시 소스 버퍼에 업데이트된다.
실시예에 따라, 상기 터치 패널의 한 프레임 데이터에 대한 오프셋 값이 상기 메모리에 저장되고, 상기 알고리즘 처리 회로는 상기 메모리로부터 버스트 모드 혹은 연속된 싱글 모드로 소스 데이터를 순차적으로 읽어 와서 상기 소스 버퍼에 저장하고, 상기 메모리로부터 상기 버스트 모드 혹은 연속된 싱글 모드로 오프셋 값을 순차적으로 읽어 와서 오프셋 버퍼에 저장하며, 상기 소스 버퍼의 소스 데이터에서 상기 오프셋 버퍼의 해당 오프셋 값을 빼서, 오프셋이 제거된 출력 데이터를 상기 결과 데이터로서 상기 데스티네이션 버퍼에 저장하는 앰비언트 리무버를 포함한다.
실시예에 따라, 상기 알고리즘 처리 회로는 상기 메모리로부터 k(2이상)의 프레임 데이터를 읽어와서 상기 소스 버퍼에 저장하는 시간적 스무딩 회로를 포함한다.
실시예에 따라, 상기 시간적 스무딩 회로는 상기 k 프레임에 걸친 같은 위치의 픽셀 데이터의 평균값을 산출하여 출력하는 평균값 산출기 및 상기 상기 k 프레임에 걸친 같은 위치의 픽셀 데이터 중 중간값을 선택하는 메디안 필터 중 적어도 하나를 포함한다.
실시예에 따라, 상기 알고리즘 처리 회로는 상기 소스 데이터를 로우 채널별 및 칼럼 채널별로 합산하고, 상기 소스 데이터에서 최대값을 갖는 피크 신호와 상기 피크 신호의 위치를 검출하는 에너지 산출기를 포함한다.
실시예에 따라, 상기 에너지 산출기는 로우 누산 버퍼, 및 칼럼 누산 버퍼를 포함하고, 상기 에너지 산출기는 상기 메모리로부터 상기 소스 데이터를 로우 채널별로 읽어와서 소스 버퍼에 저장하고, 상기 메모리로부터 상기 칼럼별 누산 데이터를 읽어와서 상기 칼럼 누산 버퍼에 저장하고, 상기 소스 버퍼에 저장된 상기 소스 데이터를 P(자연수) 단위로 합산하여 상기 로우 누산 버퍼에 저장하며, 상기 소스 버퍼에 저장된 상기 소스 데이터와 상기 칼럼 누산 버퍼에 저장된 상기 칼럼별 누산 데이터를 칼럼별로 합산하여 상기 칼럼 누산 버퍼에 업데이트하며, 상기 업데이트된 상기 칼럼별 누산 데이터를 상기 메모리에 저장한다.
실시예에 따라, 상기 에너지 산출기는 상기 소스 버퍼에 저장된 소스 데이터를 피크값과 비교하여 상기 소스 데이터가 상기 피크값 보다 클 때마다, 상기 피크값을 상기 소스 데이터로 갱신함으로써, 상기 피크 신호를 검출하고, 상기 피크 신호의 위치를 검출한다.
실시예에 따라, 상기 에너지 산출기는 상기 소스 버퍼에 저장된 소스 데이터를 순차적으로 에너지 임계치과 비교하여 상기 에너지 임계치 보다 큰 터치 범위를 검출한다.
실시예에 따라, 상기 알고리즘 처리 회로는 상기 소스 데이터를 월시 코드를 이용하여 디코딩하는 월시 디코더를 포함한다.
상기 월시 디코더는 상기 메모리에 저장된 월시 코드를 읽어와서 코드 레지스터에 저장하고, 상기 메모리에 저장된 소스 데이터를 칼럼 채널별로 읽어와서 상기 소스 버퍼에 저장하며, 매트릭스 연산기를 이용하여, 상기 월시 코드로 구성된 제1 매트릭스와 상기 소스 데이터로 구성된 제2 매트릭스를 연산하여 제3 매트릭스를 산출한다.
실시예에 따라, 상기 메모리에 저장된 월시 코드는 싸인 비트 없이 '1'과 '0'의 값으로 저장되고, 상기 매트릭스 연산기를 이용한 연산시, 상기 월시 코드의 '0'은 '-1'로 환원된다.
실시예에 따라, 상기 알고리즘 처리 회로는 로우 채널별 공통의 디스플레이 잡음(display noise)을 제거하는 디스플레이 잡음 제거 필터를 더 포함한다.
상기 디스플레이 잡음 제거 필터는 로우 채널의 소스 데이터로부터 라인 오프셋을 산출하는 라인 오프셋 산출기; 및 상기 산출된 라인 오프셋이 미리 정해진 조건을 만족하는 경우, 해당 로우 채널의 각 픽셀 데이터로부터 상기 라인 오프셋을 빼서 라인 오프셋이 제거된 소스 데이터를 출력하는 라인 오프셋 제거기를 포함한다.
본 발명의 실시예에 따르면, 터치 패널(touch panel)로 제어 신호(control signal)를 공급하고 터치 패널로부터 터치 신호를 수신하고, 수신된 신호를 처리하는 터치 스크린 컨트롤러(TSC); 및 상기 터치 스크린 컨트롤러로부터 처리 결과 신호를 제공받는 어플리케이션 프로세서를 포함하는 터치 시스템이 제공된다.
상기 TSC는 상기 터치 신호에 기초하여 생성된 소스 데이터를 미리 정해진 알고리즘에 따라 처리하는 알고리즘 처리 회로; 상기 소스 데이터 및 알고리즘 처리 회로에서 처리된 결과 데이터를 저장하는 메모리; 및 상기 알고리즘 처리 회로 및 상기 메모리 간의 데이터를 전송하는 버스를 포함하며, 하나의 픽셀에 상응하는 소스 데이터의 길이(bit width)는 상기 버스의 대역폭보다 작고, 상기 알고리즘 처리 회로는 상기 버스의 대역폭에 맞추어 상기 메모리로부터 둘 이상의 소스 데이터를 동시에 읽어 온다.
본 발명의 실시예에 따르면, 터치 스크린 컨트롤러의 데이터 처리 속도가 높아진다. 즉, 터치 스크린 컨트롤러의 데이터 처리시간이 현저하게 줄어들어 반응속도를 빠르게 할 수 있으며, 그에 따른 소모 전류의 감소효과도 얻을 수 있다.
도 1은 본 발명의 실시예에 따른 터치 시스템(이하, Touch System)의 구성 블록도이다.
도 2는 본 발명의 실시예에 따른 TSC의 구성 블록도이다.
도 3은 본 발명의 실시예에 따른 HDMA의 구성 블록도이다.
도 4는 도 3에 도시된 앰비언트 리무버의 구성 블록도이다.
도 5는 도 4에 도시된 앰비언트 리무버의 일 구성예와 그 동작을 설명하기 위한 도면이다.
도 6a는 도 5에 도시된 앰비언트 리무버의 동작을 설명하기 위한 개략적인 타이밍도이다.
도 6b는 앰비언트 리무버가 싱글 모드로 동작하는 경우, 개략적인 타이밍도이다.
도 7은 도 3에 도시된 시간적 스무딩 회로의 구성 블록도이다.
도 8은 도 7의 메디안 필터가 5개의 프레임 데이터를 이용하여 메디안 필터링된 데이터를 산출하는 방법을 설명하기 위한 도면이다.
도 9는 도 7에 도시된 시간적 스무딩 회로의 일 구성예와 그 동작을 설명하기 위한 도면이다.
도 10a는 본 발명의 일 실시예에 따른 스무딩 회로의 개략적인 동작 타이밍도이다.
도 10b는 메디안 필터(median filter) 두 개를 사용해서 한 번에 두 픽셀 데이터를 처리하는 타이밍도이다.
도 11은 본 발명의 일 실시예 따른 에너지 산출기의 구성 블록도이다.
도 12는 도 11의 에너지 산출기의 동작을 설명하기 위한 도면이다.
도 13은 도 11에 도시된 에너지 산출기의 일 구성예를 나타내는 도면이다.
도 14a는 본 발명의 일 실시예에 따른 에너지 산출기의 동작 타이밍도이다.
도 14b 및 도 14c 각각은 본 발명의 실시예에 따른 에너지 산출기의 동작 타이밍도이다.
도 15는 본 발명의 일 실시예 따른 월시 디코더의 구성 블록도이다.
도 16은 도 16의 월시 디코더의 동작을 설명하기 위한 도면이다.
도 17은 도 15에 도시된 월시 디코더의 일 구성예를 나타내는 도면이다.
도 18은 본 발명의 일 실시예에 따른 월시 디코더의 동작을 나타내는 타이밍도이다.
도 19는 본 발명의 일 실시예에 따른 정규화 회로의 구성 블록도이다.
도 20은 도 19의 정규화 회로의 동작을 설명하기 위한 도면이다.
도 21은 본 발명의 실시예에 따른 디스플레이 잡음 필터의 구성 블록도이다.
도 22는 본 발명의 실시예에 따른 디스플레이 잡음 필터의 구성 블록도이다.
도 23은 칼럼 채널 수가 8일 때, 본 발명의 실시예에 따른 디스플레이 잡음 필터가 한 라인의 디스플레이 잡음(display noise) 를 구하는 과정을 설명하기 위한 도면이다.
도 24는 본 발명의 실시예에 따른 TSC의 구성 블록도이다.
도 25는 본 발명의 일 실시예에 따른 메모리 컨트롤러의 동작을 설명하기 위한 도면이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
터치 스크린 컨트롤러(Touch Screen Controller, 이하 TSC)의 성능을 측정하는 중요한 항목 중 하나가 터치(touch)에 대한 반응속도(Response Time)이다. TSC에 적용된 알고리즘이 복잡해질수록 반응속도는 늦어질 수밖에 없는데 이 한계점을 극복하기 위해서 S/W 알고리즘을 H/W로 구현할 필요가 있다. S/W를 H/W로 바꾸어 적용하면, H/W의 면적(area) 증가에 따른 비용이 발생하고 수정이 어렵게 되는 단점이 있으나 알고리즘 처리시간(즉, 데이터 처리 시간)이 현저하게 줄어들어 반응속도를 빠르게 할 수 있으며, 그에 따른 소모 전류의 감소효과도 얻을 수 있다. 
<터치 시스템의 구성>
도 1은 본 발명의 실시예에 따른 터치 시스템(이하, Touch System)의 구성 블록도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 터치 시스템(Touch System)(10)은 터치 패널(Touch Panel)(20), TSC(Touch Screen Controller)(30), 및 어플리케이션 프로세서(AP: application processor)(40)를 포함한다.
TSC(30)는 터치 패널(20)로 제어 신호(control signal)(CS)를 공급하고 터치 데이터(TDAT)를 수신한다. 즉, TSC(30)는 터치 패널(20)과 제어 신호(CS) 및 데이터(TDAT)를 주고 받는다. TSC(30)는 터치 패널(20)에서 받은 터치 데이터(TDAT) 중에서 잡음을 제거하고 데이터 처리를 통해 터치 좌표와 현재 상태 등을 도출해낸다.
TSC(30)는 I2C(Inter-Integrated Circuit)와 같은 직렬(serial) 통신을 이용하여 알고리즘을 통해 도출한 결과 값(터치 위치, 상태, 이동속도 등)을 AP(40)에 전달한다.
TSC(30)는 터치 패널(20)로부터 수신한 터치 데이터(TDAT)를 처리하여 처리 결과 신호(예컨대, 에너지 피크값, 에너지 피크값의 위치(터치 위치), 터치 범위 등)를 산출하여, AP(40)에 제공할 수 있다.
<TSC의 구성>
도 2는 본 발명의 실시예에 따른 TSC(30)의 구성 블록도이다.
본 발명의 실시예에 따른 TSC(30)는 알고리즘 처리 회로(HDMA)(100), CPU(110), 아날로그 프론트 엔드(AFE: analog front end) 회로(120), 및 버스 매트릭스(Bus matrix, 130) 및 메모리(140)를 포함한다. 또한 TSC(30)는 브릿지(AHB to APB Bridge)(150) 및 I2C(Inter-Integrated Circuit)(160)를 더 포함할 수 있다.
CPU(110)는 TSC(30)의 전반적인 동작을 제어한다. 예컨대, CPU(110)는 AFE(120) 및 HDMA(100)의 동작을 제어할 수 있다. CPU(110)는 코어(core)라고도 칭해지며, 'Cortex-M3'로 구현될 수 있으나 이에 한정되는 것은 아니다.
AFE(120)은 터치 패널(20)에 제어 신호(CS: control signal)을 송신하고 터치 패널(20)에서 생성된 데이터 신호(TDAT)을 수신하는 역할을 하며, 프레임 버퍼(frame buffer)를 두어 터치 패널(20)로부터 수신한 데이터를 저장한다.
AFE(120)은 도시되지는 않았지만, 아날로그 필터(Analog filter), 파워 회로(Power circuit), 및 아날로그-디지털 변환기(ADC:analog-to-digital converter)를 포함할 수 있다. 예컨대, AFE(120)는 터치 패널(20)에서 수신한 아날로그 신호의 잡음을 제거하기 위하여 필터링하고, 필터링된 신호를 ADC를 통해 디지털 신호(digital signal)로 변환할 수 있다. 디지털 신호에 대해서도 잡음 제거를 위하여 디지털 필터링이 수행될 수 있다. 예컨대, 디지털 신호를 FIR(finite impulse response) 필터 혹은 IIR(infinite impulse response) 필터를 이용하여 필터링할 수 있다. 디지털 필터는 아날로그 필터(analog filter)만으로 잡음 제거가 충분치 않을 때 사용될 수 있다.
디지털 필터는 AFE(120)의 뒷단에 구현될 수도 있고, TSC(30) 내의 별도의 회로(모듈 혹은 유닛)로 구현될 수 있다.
AFE(120)는 또한, 잡음 제거를 위하여, 터치 패널(20)로부터 수신한 데이터에 월시 코드(Walsh Code)를 곱하여, 즉 월시 인코딩을 수행하여, 잡음 성분을 제거하고 증폭된 소스 데이터를 얻을 수 있다. 월시 인코딩 및 월시 디코딩에 대해서는 후술한다.
AFE(120)는 AHB 슬레이브 아이피(Slave IP)일 수 있으나, 이에 한정되는 것은 아니다.
실시예에 따라, AFE(120)는 아날로그 파트와 디지털 파트로 나누어 구현될 수 있고, AFE(120)의 디지털 파트는 TSC(30) 내에 구현되고, 아날로그 파트는 TSC(30)와 터치 패널(20) 사이에 구현될 수 잇다.
HDMA(100)는 터치 패널(20)에서 생성된 데이터를 미리 정해진 알고리즘에 따라 처리하는 회로이다. 예컨대, HDMA(100)에는 여러 가지 알고리즘(algorithm)들이 하드웨어로 구현될 수 있다. HDMA(100)는 AFE(120)에서 생성된 데이터나 메모리(140)에 저장된 데이터를 처리한다.
메모리(140)는 HDMA(100)에서 생성된 혹은 처리된 데이터가 저장되는 공간이다. 메모리(140)는 SRAM으로 구현될 수 있으나, 이에 한정되는 것은 아니며, DRAM, 플래시 메모리 등과 같이 다른 종류의 메모리로 구현될 수 있다. 메모리(140)는 AHB 슬레이브 아이피(Slave IP)일 수 있다.
I2C(160)는 AP(40)와 터치에 관련된 데이터를 주고 받기 위한 회로이다.
TSC(30) 내의 각 구성요소는, 버스 매트릭스(이하, '버스'라고 약칭함)(130)를 통하여 제어 신호, 어드레스 및/또는 데이터를 주고 받을 수 있다. 예컨대, HDMA(100), CPU(110), AFE(120), 메모리(140), 및 I2C(160)는 버스(130)를 통하여 통신할 수 있다.
버스(130)는 R(2이상의 자연수)-비트 버스 대역폭을 가질 수 있다. 예컨대, 버스(130)의 대역폭은 32비트일 수 있으나, 이에 한정되는 것은 아니다.
버스(130)는 AHB 라이트 버스 매트릭스(AHB Lite Bus Matrix)일 수 있으나, 이에 한정되는 것은 아니다.
브릿지(150)는 버스(130)와 I2C(160) 간을 연결한다. 브릿지(150)는 AHB-to- APB 브릿지 일 수 있으나, 이에 한정되는 것은 아니다.
실시예에 따라, TSC(30)는 4~6인치 크기의 휴대폰에 사용될 수 있으나, 이에 한정되는 것은 아니다.
TSC(30)의 시간적인 제약을 설명하기 위하여, 4~6인치 크기의 휴대폰에 적용되는 TSC를 예를 들어 설명한다. 터치 패널(20)이 멀티 터치(Multi touch)가 가능한 상호 정전용량(mutual capacitance) 방식의 터치 패널(touch panel)인 경우, 일반적인 채널(channel) 수는 가로(row) 채널과 세로(column) 채널을 합쳐서 30~60 채널이다. 가로 25 채널, 세로 33 채널을 예를 들어 설명하면, 25 곱하기 33(25*33)은 825이므로 한 프레임(frame)에 가로 채널수 * 세로 채널 수에 해당하는 픽셀 데이터, 예컨대, 825 (25*33) 픽셀의 터치 데이터(touch data)가 생성된다. 한 픽셀의 터치 데이터('픽셀 데이터'라 칭하기도 함)는 10~16 비트의 크기를 가질 수 있다. 설명의 편의를 위하여, 본 발명의 실시예에서는 터치 데이터 각각이 16비트를 가지는 것으로 가정한다. 그러므로 1 프레임 버퍼(frame buffer)의 크기(size)는 1,650byte(825point * 16bit = 13,200bit)일 수 있다.
상기 가정 하에서는, TSC(30)는 한 프레임의 대하여 1,650byte의 데이터를 여러 번의 데이터 처리 과정을 거쳐 최종적으로 터치 위치(좌표)와 상태, 피크값 등을 계산해야 한다. 만약 터치 패널(20)이 120Hz의 프레임 레이트(frame rate)을 가진다면 1 프레임 당 약 8.3 밀리세컨드(millisecond)가 소모된다. 다르게 말하면 한 프레임의 터치 데이터를 8.3 ms 안에 처리해야 된다는 의미이다.
만약, TSC(30)가 S/W 알고리즘으로 터치 데이터를 모두 처리하고자 한다면, 상기 시간적인 제약을 만족하기 어렵거나, S/W알고리즘을 빠르게 처리할 수 있는 아주 고성능의 프로세서가 필요하여 비용이 올라갈 수 있다.
본 발명의 실시예에 따르면, TSC(30)는 새롭게 설계된 HDMA(100)를 이용하여 터치 데이터를 주로 하드웨어적으로 처리함으로써, 터치 데이터를 빠르게 처리할 수 있다.
도 3은 본 발명의 실시예에 따른 HDMA(100)의 구성 블록도이다. 이를 참조하면, HDMA(100)는 앰비언트 리무버(Ambient Remover)(200), 시간적 스무딩 회로(Temporal smoothing circuit)(300), 에너지 산출기(Energy Calculator)(400), 월시 디코더(Walsh decoder)(500), 정규화 회로(Normalization circuit)(600) 및 디스플레이 잡음 필터(700)를 포함한다.
또한, HDMA(100)는 특수 기능 레지스터(SFR: Special Function Register)(180) 및 공용 버퍼(190)를 더 포함할 수 있다.
SFR(180)은 HDMA(100)의 동작을 위한 설정값을 저장한다. SFR(180)의 설정값은 AP(40) 혹은 AP(40)에 의해 실행되는 소프트웨어에 의해 설정될 수 있다. 공용 버퍼(190)는 HDMA(100)에서 처리하기 위하여 메모리(140)로부터 읽어온 데이터를 임시 저장하거나, 혹은 HDMA(100)에서 처리된 데이터를 저장한다.
공용 버퍼(190)는 리소스의 효율적인 사용을 위해 HDMA(100) 내의 알고리즘 처리 회로들에 의하여 공유될 수 있다.
예컨대, SFR(180) 및 공용 버퍼(190)는 HDMA(100)의 둘 이상의 회로(200, 300, 400, 500, 600, 내지 700)에 의해 공용으로 사용될 수 있다. 앰비언트 리무버(200)는 터치 패널(20) 전체에 골고루 퍼져있어서 신호 레벨(signal level)을 상승시킨 오프셋(offset) 성분을 제거한다. 예컨대, 앰비언트 리무버(200)는 터치 패널(20) 전체에 인가되어 있는 오프셋 성분을 하나의 프레임 버퍼에 저장해두고 1 프레임의 터치 데이터과 화소별(pixel by pixel)로 계산할 수 있다. 1프레임의 오프셋 값을 저장하는 버퍼와 1 프레임의 터치 데이터를 저장하는 버퍼는 메모리(140) 또는 별도의 버퍼에 구현될 수 있다.
본 발명의 비교예에 따르면, 메모리(140)에서 픽셀 단위로 오프셋 값과 터치 데이터를 하나씩 읽어서 계산한 후, 계산 결과를 메모리(140)에 기록할 수 있다. 이와 같이, 픽셀 단위로 오프셋 값과 터치 데이터를 읽어 계산한 후 계산된 데이터를 메모리(140)에 저장하는 경우, 실제 데이터(data)를 읽고 쓰는데 걸리는 시간보다 명령(command)을 읽고 디코딩(decoding)해서 버스(130)를 통해 AHB 신호를 보낼 준비를 하는 시간이 훨씬 많이 든다. 이에 따라, 1픽셀에 대하여, 오프셋 값이 제거된 픽셀 데이터를 얻기 위하여, 20~30 싸이클(cycles)이 소모될 수 있다. 만약 한 픽셀의 터치 데이터의 크기(bit width)가 16비트이고, 버스(130)dml 대역폭(bandwidth)가 32비트라고 가정하면, 버스 사용 효율이 떨어진다. 즉, 버스(130)는 한 번에 32비트 데이터를 전송할 수 있음에도, 한 번에 16비트의 데이터를 읽어옴으로써, 버스의 대역폭의 절반만 사용하게 되어, 시간적인 효율을 떨어뜨리게 되는 요인일 수 있다.
<Ambient Offset Removal>
도 4는 도 3에 도시된 앰비언트 리무버(200)의 구성 블록도이다.
도 3 및 도 4를 참조하면 본 발명의 일 실시예에 따른 앰비언트 리무버(200)는 소스 버퍼(210), 앰비언트 오프셋 버퍼(220), 감산기(Subtraction circuit)(230) 및 데스티네이션 버퍼(240)를 포함한다.
소스 버퍼(210), 앰비언트 오프셋 버퍼(220) 및 데스티네이션 버퍼(240)는 레지스터로 구현될 수 있다. 실시예에 따라, 소스 버퍼(210), 앰비언트 오프셋 버퍼(220) 및 데스티네이션 버퍼(240)는 도 3에 도시된 공용 버퍼(190)로 구현될 수 있다.
소스 버퍼(210)는 소스 데이터(SDA)를 저장하는 버퍼(touch data buffer)이고, 앰비언트 오프셋 버퍼(220)는 앰비언트 오프셋 값(ADA)을 저장하는 버퍼(buffer)이다. 소스 버퍼(210)에 저장되는 소스 데이터(SDA)는 AFE(120)에서 처리되어 메모리(140)에 저장된 터치 데이터일 수 있고, 또는 HDMA(100) 내의 적어도 하나의 회로에서 처리되어 메모리(140)에 저장된 터치 데이터일 수 있다.
앰비언트 오프셋 값(ADA)은 터치 패널(20)의 각 화소(pixel)에 인가되어 있는 오프셋 성분을 수치화한 값이다. 터치 패널(20)에 대한 테스트 및 시뮬레이션 등을 통하여 하나의 프레임에 해당하는 앰비언트 오프셋 값(ADA)이 결정될 수 있다.
감산기(230)는 소스 버퍼(210)의 소스 데이터(SDA)에서 앰비언트 오프셋 버퍼(220)의 해당 오프셋 값(ADA)을 빼서, 오프셋이 제거된 출력 데이터(DDA)를 출력할 수 있다. 감산기(230)의 출력 데이터(DDA)는 데스티네이션 버퍼(240)에 저장될 수 있다.
실시예에 따라, 앰비언트 오프셋 버퍼(220)는 데스티네이션 버퍼(240)로 사용될 수 있다. 앰비언트 오프셋 버퍼(220)와 데스티네이션 버퍼(240)는 동일한 레지스터로 구현될 수 있다. 이 경우, 출력 데이터(DDA)가 앰비언트 오프셋 버퍼(220)에 오버라이트될 수 있다.
감산기(230)는 h(1이상) 픽셀 단위로 소스 데이터(SDAT)와 앰비언트 오프셋 값을 처리할 수 있다. H가 2인 경우, 감산기(230)는 제1 소스 데이터에서 제1 오프셋 값을 빼는 동작과, 제2 소스 데이터에서 제2 오프셋 값을 빼는 동작을 병렬적으로(혹은 동시에) 수행할 수 있다. 이를 위하여, 감산기(230)는 h개의 단위 감산기를 포함할 수 있다.
도 5는 도 4에 도시된 앰비언트 리무버의 일 구성예(200a)와 그 동작을 설명하기 위한 도면이다. 도 6a는 도 5에 도시된 앰비언트 리무버(200a)의 동작을 설명하기 위한 개략적인 타이밍도이다.
도 5 및 도 6a를 참조하면, 공용 레지스터(190)는 복수의 L-비트 레지스터를 포함할 수 있다. 여기서, L은 하나의 픽셀 데이터의 비트수(예컨대, 16)와 동일할 수 있으나, 이에 한정되는 것은 아니다.
복수의 L-비트 레지스터의 일부는 소스 버퍼(210)로, 복수의 L-비트 레지스터의 다른 일부는 앰비언트 오프셋 버퍼(220)과 데스티네이션 버퍼(240)로 사용될 수 있다.
설명의 편의상, 본 발명의 일 실시예는 공용 레지스터(190)는 32개의 L-비트 레지스터로 구현되고, 소스 버퍼(210)는 공용 레지스터(190) 중 8개의 L-비트 레지스터, 앰비언트 오프셋 버퍼(220) 역시 공용 레지스터(190) 중 8개의 L-비트 레지스터로 구현되는 예시를 도시하나, 본 발명의 실시예가 이에 한정되는 것은 아니다.
도 5 및 도 6a의 실시예에서는, 한 프레임의 소스 데이터(즉, 픽셀 데이터)와 앰비언트 데이터(즉, 오프셋 데이터)는 메모리(140a)에 저장되어 있고, 앰비언트 리무버(200)는 32비트 워드 단위의 버스트 모드(burst mode) 혹은 연속된 싱글 모드로 동작한다.
도 6a, 도 6b, 도 10a, 도 10b, 도 14a 내지 도 14c, 도 18 및 도 20의 타이밍도에서, 'HCLK'는 HDMA(100)의 동작 클락 신호를, HADDR은 데이터를 읽어올 또는 저장할 메모리(140)의 위치를 지정하기 위한 어드레스 신호를 HRDATA는 메모리(140)로부터 독출된 데이터를, HWDATA는 메모리(140)로 저장할 데이터를 나타내며, HTRANS는 버스(130)가 아이들(idle) 상태인지 아닌지를 나타내는 신호이며, HSIZE는 한 번에 트랜스퍼되는 데이터의 사이즈를 나타낸다.
앰비언트 리무버(200)는 32비트 버스(130)를 활용해서 한번에 두 개의 픽셀 데이터를 읽고 쓸 수 있다. 예컨대, 앰비언트 리무버(200)는 32비트 워드 단위(즉, 2개의 픽셀 데이터 단위)로 연속된 싱글 모드 혹은 4 버스트 모드로 동작할 수 있으나, 이에 한정되는 것은 아니다.
도 5 및 도 6a의 실시예에서는, 앰비언트 리무버(200)는 먼저, 8개의 픽셀 데이터(HRDATA: S00~S07)를 4번에 걸쳐 순차적으로 메모리(140)로부터 읽어와서 소스 버퍼(210), 즉 8개의 L-비트 레지스터(210)에 순차적으로 저장할 수 있다. 이를 위하여, 앰비언트 리무버(200)는 스타트 신호(START)에 맞추어, 픽셀 데이터(S00~S07)를 읽기 위한 어드레스들(HADDR: S00~S07)을 버스(130)로 출력하고, 상기 어드레스들(HADDR: S00~S07)에 해당하는 픽셀 데이터(HRDATA: S00~S07)를 버스(130)를 통해 수신할 수 있다.
다음으로, 앰비언트 리무버(200)는 8개의 오프셋 데이터(HRDATA: A00~S07)를 4번째 걸쳐 순차적으로 메모리(140)로부터 읽어와서 앰비언트 오프셋 버퍼(220), 즉 8개의 L-비트 레지스터(220)에 순차적으로 저장할 수 있다.
앰비언트 오프셋 버퍼(220)에 오프셋 값이 저장되면, 앰비언트 리무버(200)는 소스 버퍼(210)의 픽셀 데이터와 앰비언트 오프셋 버퍼(220)의 오프셋 데이터를 픽셀 단위로 감산(substraction)하여, 감산 결과인 출력 데이터(D0~D7)를 L-비트 레지스터(220)에 순차적으로 저장할 수 있다.
앰비언트 리무버(200)는 L-비트 레지스터(220)에 저장된 출력 데이터(D0~D7)가 저장될 메모리(140a)의 위치를 지정하기 위하여 어드레스(HADDR: D0~D7)를 발생하고, 또한, 라이트 신호(HWRITE)를 활성화[인에이블]한다. 이에 따라, 어드레스(HADDR: D0~D7)에 상응하는 메모리에 출력 데이터(HWDATA: D0~D7)가 저장된다.
트랜스퍼 신호(HTRANS)는 버스(130)가 아이들(idle) 상태인지 아닌지를 나타내는 신호이다. 즉, 버스(130)가 동작(예컨대, 트랜스퍼 동작)을 하지 않을 때는 트랜스퍼 신호(HTRANS)는 IDLE 상태를 나타낸다. 따라서, 트랜스퍼 신호(HTRANS)가 아이들 상태로 있는 횟수가 적거나 없으면 버스 효율이 높다. 트랜스퍼 신호(HTRANS)에서 'NONSEQ'는 싱글 모드(비(NON)-아이들 상태)를 나타내고, 'IDLE'은 아이들 상태를 나타낸다.
따라서 본 발명의 실시예에 따르면 버스트 모드 혹은 연속된 싱글 모드로 동작하고, 한번에 h픽셀 단위로 데이터를 트랜스퍼함으로써, 버스 효율을 높일 수 있다. 또한 HDMA 내의 공용 레지스터를 사용하여, 앰비언트 오프셋 버퍼(220)를 데스티네이션 버퍼(230)로 활용함으로써, 적은 면적으로 빠른 처리속도를 낼 수 있다. 따라서, 1 픽셀 데이터 처리에 1.5 사이클(cycle)로도 충분하다.
본 발명의 다른 실시예에 따르면, 소스 버퍼(210) 및 앰비언트 오프셋 버퍼(220)는 라인 버퍼로 구현될 수 있다. 라인 버퍼는 하나의 라인에 해당하는 픽셀 데이터를 저장하기 위한 버퍼이다. 예를 들어, 터치 패널(20)의 로우 채널의 수가 33이고, 칼럼 채널의 수가 25인 경우, 즉 33x25 채널의 경우, 라인 버퍼는 25개의 레지스터로 구현될 수 있다.
따라서, 소스 버퍼(210) 및 앰비언트 오프셋 버퍼(220)는 각각 하나의 라인 버퍼, 예컨대, 25개의 레지스터로 구현될 수 있다.
그러나, 소스 버퍼(210) 및 앰비언트 오프셋 버퍼(220)는 한 라인의 길이(즉, 한 라인에 해당하는 픽셀 수) 변화를 감안해서 가장 긴 라인에 맞추어 구현될 필요가 있다. 따라서 실제 사용되는 것보다 더 많은 면적을 사용해야 할 수 있고, 칩 또는 제품마다 채널 수가 바뀌면 그에 맞게 구현해야 한다.
도 6a의 실시예에 따르면, HDMA(100)는 버스트 모드 혹은 연속된 싱글 모드로 동작하나, 본 발명의 다른 실시예에 따르면 HDMA(100)는 싱글 모드로 동작할 수 있다.
도 6b는 앰비언트 리무버(200)가 싱글 모드로 동작하는 경우, 개략적인 타이밍도이다. 싱글 모드로 동작하는 앰비언트 리무버(200)는, 하나의 픽셀 데이터(S_00) 및 하나의 오프셋 데이터(A_00)를 순차적으로 메모리(140)로부터 읽어 온 다음, 픽셀 데이터(S_00)에서 오프셋 데이터(S_10)를 뺀 출력 데이터(D_0)를 산출하여 메모리 저장한다. 이와 같이, 싱글 모드로 동작하는 경우, 트랜스퍼 신호(HTRANS)는 아이들 모드(IDLE)로 진입하는 1 싸이클을 확인할 수 있고, 약 4 싸이클만에 1 픽셀 데이터를 처리함을 알 수 있다.
표 1은 앰비언트 리무버(200)가 각각 싱글 모드 및 연속된 버스트 모드(혹은 연속된 싱글 모드)로 구현되는 경우와 라인 버퍼를 이용하여 구현되는 경우의 소스 버퍼(210)와 앰비언트 오프셋 버퍼(220)의 면적와 픽셀 당 소모되는 싸이클 수를 비교하여 나타낸 표이다.
여기서는, 1-비트 레지스터 구현에 필요한 게이트 수(gate count)는 8인 것으로 가정한다.
Single Mode Burst Mode Line buffer
소스 버퍼 16bit * 1EA * 8 gate 16bit * 8EA * 8gate 16bit * 25EA * 8gate
앰비언트 오프셋 버퍼 16bit * 1EA * 8 gate 16bit * 8EA * 8gate 16bit * 25EA * 8gate
Total Area 128 gate count 2,048 gate count 6,400 gate count
Cycle/Pixel 4 1.5 1.5
< Temporal smoothing >
도 7은 도 3에 도시된 시간적 스무딩 회로(300)의 구성 블록도이다.
시간적 스무딩 회로(300)는 k(2이상)의 프레임 데이터를 수신하여 짧은 시간 동안만 나타나는 잡음을 제거하기 위한 회로이다. 예컨대, 시간적 스무딩 회로(300)는 복수(예컨대, k=3) 프레임에 걸친 같은 위치의 픽셀 데이터의 평균값을 산출하거나 혹은 중간값을 선택하여 피크(peak) 잡음을 제거한 출력 데이터를 산출할 수 있다.
시간적 스무딩 회로(300)는 소스 버퍼(310), 메디안 필터(320), 평균값 산출 회로(330), 선택기(340) 및 데스티네이션 버퍼(350)를 포함할 수 있다.
실시예에 따라, 소스 버퍼(310) 및 데스티네이션 버퍼(350)는 공용 버퍼(도 3의 190)를 이용하여 구현될 수 있다.
메디안 필터(320)는 소스 버퍼(310)로부터 복수(예컨대, k=3)의 프레임 데이터의 동일 위치의 픽셀 데이터(SDS1~SDSk)로부터 중간값을 선택하여, 메디안 필터링된 데이터(MOD)로서 출력할 수 있다.
평균값 산출 회로(330)는 복수(예컨대, k=3)의 프레임 데이터의 동일 위치의 픽셀 데이터(SDS1~SDSk)를 평균하여, 그 평균값(AOD)을 출력할 수 있다.
선택기(340)는 선택 신호(SEL)에 응답하여 메디안 필터링된 데이터(MOD)와 평균값(AOD) 중 어느 하나를 선택하여, 출력 데이터(DDS)로 출력할 수 있다. 선택 신호(SEL)는 AP에 의하여 SFR(360)에 설정될 수 있다. SFR(360)은 도 3의 SFR(180)의 일부일 수 있다.
도 8은 도 7의 메디안 필터(320)가 5개의 프레임 데이터를 이용하여 메디안 필터링된 데이터(MOD)를 산출하는 방법을 설명하기 위한 도면이다.
메디안 필터(320)는 5개의 프레임 데이터의 동일 위치의 픽셀 데이터(300, 360, 950, 350, 380)로부터 중간값(median value)인 360을 선택하여, 메디안 필터링된 데이터(MOD)로서 출력할 수 있다.
도 9는 도 7에 도시된 시간적 스무딩 회로의 일 구성예(300a)와 그 동작을 설명하기 위한 도면이다. 도 10a는 본 발명의 일 실시예에 따른 스무딩 회로(300a)의 개략적인 동작 타이밍도이다. 도 9 및 10a의 실시예에서는, 스무딩 회로(300a)는 3개의 프레임 데이터를 이용해서 시간상 스무딩(temporal smoothing)을 수행한다.
도 9 및 10a을 참조하면, 소스 버퍼(310)는 제1 내지 제3 소스 버퍼(311, 313, 315)를 포함할 수 있다. 제1 내지 제3 소스 버퍼(311, 313, 315) 및 데스티네이션 버퍼(350)는 공용 버퍼(190)의 일부를 사용할 수 있다.
메모리(140a)에는 3개의 프레임 데이터가 저장되어 있다. 설명의 편의상, 3개의 프레임 데이터를 제1 소스 데이터(Source Data 0), 제2 소스 데이터(Source Data 1), 제3 소스 데이터(Source Data 2)라 칭한다.
스무딩 회로(300)는 먼저, 메모리(140)로부터 제1 소스 데이터 중 4개의 픽셀 데이터(S_00~S_03)를 연속으로 읽어와서 소스 버퍼(310)의 4개의 L-비트 레지스터(311)에 순차적으로 저장할 수 있다. 다음으로, 스무딩 회로(300)는 메모리(140)로부터 제2 소스 데이터 중 4개의 픽셀 데이터(S_10~S_13)를 연속으로 읽어와서 소스 버퍼(310)의 다음 4개의 L-비트 레지스터(313)에 순차적으로 저장할 수 있고, 메모리(140)로부터 제3 소스 데이터 중 4개의 픽셀 데이터(S_20~S_23)를 연속으로 읽어와서 소스 버퍼(310)의 그 다음 4개의 L-비트 레지스터(315)에 순차적으로 저장할 수 있다.
메디안 필터(320)는 제1 소스 데이터, 제2 소스 데이터, 및 제3 소스 데이터의 동일한 위치의 픽셀 데이터를 수신하여 중간값을 선택하여 순차적으로 출력할 수 있다. 이를 위하여, 메디안 필터(320)는 하나 이상의 비교기(321)를 포함할 수 있다.
평균값 산출 회로(330)는 제1 소스 데이터, 제2 소스 데이터, 및 제3 소스 데이터의 동일한 위치의 픽셀 데이터를 더하여 픽셀 데이터의 수(예컨대, k=3)으로 나누는 연산기(331)를 포함할 수 있다.
선택기(340)는 선택 신호(SEL)에 응답하여 메디안 필터(320)의 출력 데이터와 평균값 산출 회로(330)의 출력 데이터 중 하나를 선택하여 출력하는 멀티플렉서로 구현될 수 있다.
실시예에 따라, 병렬 처리를 위하여 메디안 필터(320), 평균값 산출 회로(330) 및 선택기(340)는 h(예컨대, 2)개씩 구비될 수 있다.
출력 데이터(D_0~D_3)는 데스티네이션 버퍼(350)에 저장된다.
시간적 스무딩 회로(300a)는 데스티네이션 버퍼(350)에 저장된 출력 데이터(D_0~D_3)를 버스(130)를 통하여 메모리(140a)에 저장한다.
도 10a의 실시예에서는, 한번에 한 개의 픽셀 데이터를 읽어오며, 1 픽셀당 4 싸이클의 처리 시간이 소모된다. 따라서, 4 픽셀 데이터를 처리하기 위해서는 4*4 싸이클이 필요하다.
도 10b는 메디안 필터(median filter) 두 개를 사용해서 한 번에 두 픽셀 데이터를 처리하는 타이밍도이다. 도 10b의 실시예에 따르면, 시간적 스무딩 회로(300a)는, 한 번에 2개의 픽셀 데이터를 메모리(140a)로부터 읽어오고, 또한, 메디안 필터(median filter) 두 개를 사용해서 한 번에 두 픽셀 데이터를 병렬 처리한다.
이에 따라, 1픽셀당 소요되는 클락 싸이클이 도 10a의 실시예에 비하여 절반인 2 싸이클로 줄어들었음을 알 수 있다. 또한, 도 10a 및 10b의 실시예서 트랜스퍼 신호(HTRANS)가 아이들 상태(IDLE)로 들어가지 않아, 버스(130)가 최대의 효율로 사용되고 있음을 알 수 있다.
본 발명의 실시예에 따르면, HDMA(100)의 각 회로(200, 300, 400, 500, 600, 700)는 순차적으로 동작할 수 있다. 이에 따라, HDMA(100)의 각 회로는 공용 버퍼(190)를 사용하여 픽셀 데이터를 처리할 수 있다. 이와 같이, 각 회로가 사용하는 버퍼를 공용으로 구현하여, 회로 면적을 획기적으로 줄일 수 있다.
<Energy Calculation>
도 11은 본 발명의 일 실시예 따른 에너지 산출기(400)의 구성 블록도이고, 도 12는 도 11의 에너지 산출기(400)의 동작을 설명하기 위한 도면이다.
도 11 및 도 12를 참조하면, 에너지 산출기(400)는 소스 버퍼(410), 칼럼 누산 버퍼(420), 에너지 누산기(430), 로우 누산 버퍼(450) 및 에너지 피크 검출기(460)를 포함할 수 있다.
에너지 누산기(430)는 로우 채널 누산회로(435) 및 칼럼 채널 누산 회로(440)를 포함하고, 에너지 피크 검출기(460)는 둘 이상의 비교 회로(465, 470) 및 SFR(481, 483)을 포함할 수 있다.
에너지 산출기(400)는 터치 패널(20)의 각 채널에 나타난 신호를 모두 더해서 현재 패널의 어느 위치에 가장 큰 터치 신호가 있는지를 검출한다.
로우 채널 누산회로(435)는 한 프레임 데이터에 대하여 로우 채널별 픽셀 데이터를 합산하고, 칼럼 채널 누산회로(440)는 칼럼 채널별 픽셀 데이터를 합산한다.
한 프레임 데이터를 2차원 배열 값으로 표현하고, 좌측 상단을 P(0,0), 우측 하단을 P(m, n)으로 나타낸다면, n번째 칼럼의 픽셀 데이터를 합산한 데이터 RXn은 수학식 1과 같이 표현될 수 있다. m번째 로우의 픽셀 데이터를 합산한 데이터 TXm은 수학식 2와 같이 표현될 수 있다.
Figure 112016053978216-pat00001
Figure 112016053978216-pat00002
도 10에서, TX0 내지 TXm 은 각각의 해당 로우의 픽셀 데이터를 합산한 데이터를 나타내고, RX0 내지 RXn은 각각 해당 칼럼의 픽셀 데이터를 합산한 데이터를 나타낸다.
예컨대, 로우 채널 누산회로(435)는 소스 버퍼(410)로부터 둘 이상의 픽셀 데이터(TSD)를 수신하여 합산하고, 합산된 결과인 로우 누산 데이터(TSUM)을 데스티네이션 버퍼(450)에 저장할 수 있다.
칼럼 채널 누산회로(440)는 소스 버퍼(410)로부터 픽셀 데이터(TSD)와 칼럼 누산 버퍼(420)로부터 칼럼 누산 데이터(RSD)를 수신하여 합산하고, 합산된 결과인 칼럼 누선 데이터(RSUM)을 칼럼 누산 버퍼(420)에 업데이트할 수 있다.
에너지 산출기(400)의 에너지 피크 검출기(460)는 프레임 데이터로부터 피크값 값의 위치와 개수, 터치된 면적의 크기와 유효한 데이터가 분포되어 있는 위치 등을 검출할 수 있다.
에너지 피크 검출기(460)는 소스 버퍼(410)로부터 픽셀 데이터(TSD)를 수신하고, 픽셀 데이터(TSD)를 피크값 레지스터(481)의 피크값(PEAK_V)과 비교하여 한 프레임 데이터 내에서 가장 큰 피크값을 검출하고, 피크값에 해당하는 픽셀 데이터의 위치(PEAK_RX, PEAK_TX)를 산출할 수 있다.
또한, 에너지 피크 검출기(460)는 소스 버퍼(410)로부터 픽셀 데이터(TSD)를 수신하고, 픽셀 데이터(TSD)를 에너지 임계치 레지스터(483)의 에너지 임계치(ENERGY_TH)과 비교하여 한 프레임 데이터 내에서 에너지 임계치(ENERGY_TH)보다 큰 픽셀 데이터의 범위를 터치 범위(VALID_RNG)로서 검출할 수 있다. 터치 범위(VALID_RNG)는 도 11에 도시된 칼럼 최소값(MIN_RX) 및 칼럼 최대값(MAX_RX)와, 로우 최소값(MIN_TX) 및 로우 최대값(MAX_TX)를 포함할 수 있다.
도 13은 도 11에 도시된 에너지 산출기의 일 구성예(400a)를 나타내는 도면이다. 도 14a는 본 발명의 일 실시예에 따른 에너지 산출기(300a)의 동작 타이밍도이다.
도 11 내지 도 14a를 참조하면, 소스 버퍼(410)는 공용 버퍼(도 3의 190)의 일부를 사용할 수 있고, 로우 누산 버퍼(450) 및 칼럼 누산 버퍼(420)는 각각 하나 이상의 플립 플롭으로 구현될 수 있으나, 이에 한정되는 것은 아니다.
에너지 산출기(400a)는 메모리(140a)로부터 소스 데이터를 읽어와서 소스 버퍼(410)에 저장한다. 예컨대, 하나의 로우에 속하는 픽셀 데이터(S_00~S_03)가 P(자연수)개 단위로 읽혀져 소스 버퍼(410)의 P개의 L-비트 레지스터에 저장될 수 있다. 본 실시예에서는, P가 4인 것으로 가정하나, 이에 한정되는 것은 아니다.
로우 채널 누산회로(435)는 소스 버퍼에 저장된 픽셀 데이터(S_00~S_03)를 합산하여, 로우 누산 버퍼(350)에 저장할 수 있다.
소스 버퍼(410)에 제1 로우의 4개의 픽셀 데이터(S_00~S_03)가 저장되면, 로우 채널 누산회로(435)는 제1 로우의 4개의 픽셀 데이터(S_00~S_03)를 합산하여 로우 누산 버퍼(450)에 저장할 수 있다. 다음으로, 소스 버퍼에 제1 로우의 다음 4개의 픽셀 데이터(S_04~S_07)가 저장되면, 로우 채널 누산회로(435)는 제1 로우의 다음 4개의 픽셀 데이터(S_04~S_07)를 합산하고, 로우 누산 버퍼(450)에 기 저장된 로우 누산 데이터(TSUM)와 누산하여, 로우 누산 버퍼(450)에 업데이트할 수 있다. 이와 같은 방식으로, 하나의 제1 로우 픽셀 데이터의 합산이 완료되면, 로우 누산 버퍼(450)에 저장된 제1 로우 픽셀 데이터의 합산 데이터(TSUM)는 메모리(140a)에 저장될 수 있다.
칼럼 채널 누산회로(440)는 소스 버퍼(410)에 저장된 픽셀 데이터와 칼럼 누산 버퍼(420)에 저장된 칼럼별 누산 데이터를 칼럼별로 합산하여, 칼럼 누산 버퍼(420)에 업데이트할 수 있다.
칼럼 누산 버퍼(420)의 초기값은 0일 수 있다. 이에 따라, 소스 버퍼(410)에 제1 로우의 픽셀 데이터(S_00~S_03)가 저장된 경우, 칼럼 채널 누산 회로(440)는 제1 로우 픽셀 데이터와 초기값을 칼럼별로 합산하여, 칼럼 누산 버퍼(420)에 저장할 수 있다. 칼럼 누산 버퍼(420)에 저장된 데이터는 4개 단위로 메모리(140a)로 저장될 수 있다. 제1 로우 픽셀 데이터에 대한 칼럼별 합산이 수행되고, 칼럼별 누산 데이터가 메모리에 저장되면, 제2 로우 픽셀 데이터가 메모리로부터 독출되어 소스 버퍼(410)에 저장된다. 또한, 칼럼별 누산 데이터(RX_00~RX_3)가 메모리로부터 독출되어 칼럼 누산 버퍼(420)에 저장된다.
그러면, 칼럼 채널 누산회로(440)는 소스 버퍼(410)에 저장된 제2 로우 픽셀 데이터와 칼럼 누산 버퍼(420)에 저장된 칼럼별 누산 데이터(즉, 제1 로우 픽셀 데이터)를 칼럼별로 합산하여, 칼럼 누산 버퍼(420)에 저장할 수 있다.
이와 같은 방식으로, 한 프레임 데이터의 모든 로우의 픽셀 데이터가 칼럼별로 합산될 수 있다.
도 12의 라인(L11)은 로우별로 픽셀 데이터를 합산한 결과를 나타내고, 라인(L12)은 칼럼별로 픽셀 데이터를 합산한 결과를 나타낸다.
도 12의 (a)에 도시된 바와 같이, 칼럼별 합산 데이터 값을 저장하는 RX0부터 RXn 버퍼 및 로우별 합산 데이터를 저장하는 TX0부터 TXm 버퍼는 메모리(140a)의 특정 어드레스로 설정한다. 즉, 본 발명의 실시예에 따르면, 로우 라인 버퍼 및 칼럼 라인 버퍼가 면적이 큰 플립플롭(flip-flop)을 사용하지 않고 메모리(SRAM)에 구현될 수 있다.
에너지 피크 검출기(460)는 소스 버퍼(410)에 저장된 픽셀 데이터를 순차적으로 수신하고, 수신된 픽셀 데이터를 미리 정해진 피크값(PEAK_V)과 비교하여 픽셀 데이터가 피크값(PEAK_V)보다 크면 해당 로우 및 칼럼의 위치(예컨대, 채널 번호)를 피크 로우 레지스터(미도시) 및 피크 칼럼 레지스터(미도시)에 저장하고, 피크값(PEAK_V)을 해당 픽셀 데이터로 업데이트한다.
피크값(PEAK_V)은 피크값 레지스터(381)에 저장될 수 있으며, 특정 초기값(예컨대, 0)으로 초기화될 수 있다.
따라서, 픽셀 데이터가 피크값(PEAK_V)보다 클 때마다, 피크값(PEAK_V)및 해당 로우 및 칼럼의 위치가 업데이트된다. 이에 따라, 에너지 피크 검출기는 한 프레임 데이터에서 가장 큰 픽셀 데이터를 피크값(PEAK_V)으로 검출하고, 그 픽셀 데이터의 위치(즉, 로우 및 칼럼)(PAEK_TX, PEAK_RX)을 피크 로우 레지스터 및 피크 칼럼 레지스터에 저장할 수 있다.
실시예에 따라, 상술한 방법으로, 에너지 피크 검출기(460)는 하나의 프레임 데이터 내에서 둘 이상의 피크값(예컨대, 가장 큰 픽셀 데이터 및 두 번째로 큰 픽셀 데이터)을 검출할 수 있다.
에너지 피크 검출기(460)는 비교 회로(465, 470) 및 복수의 레지스터(481, 483)을 포함할 수 있다. 복수의 레지스터(481, 483)는 도 3에 도시된 SFR(180)의 일부로서 구현될 수 있다.
소스 버퍼(410)에 저장된 픽셀 데이터를 순차적으로 수신하고, 수신된 픽셀 데이터를 미리 정해진 에너지 임계치(ENERGY_TH)과 비교하여 터치 범위를 검출할 수 있다. 에너지 임계치(ENERGY_TH)는 에너지 임계치 레지스터(483)에 저장될 수 있고, 시나리오에 따라, 혹은 잡음 환경에 따라 AP에 의해 설정될 수 있다.
에너지 피크 검출기(460)는 픽셀 데이터를 미리 정해진 에너지 임계치(ENERGY_TH)과 비교하여, 픽셀 데이터가 임계치(ENERGY_TH)보다 크면, 해당 로우 번호를 로우 최소값(MIN_TX) 및 로우 최대값(MAX_TX)과 각각 비교하고, 해당 칼럼 번호를 칼럼 최소값(MIN_RX) 및 칼럼 최대값(MAX_RX)과 각각 비교할 수 있다.
비교 결과, 해당 로우 번호가 로우 최소값(MIN_TX) 보다 작으면, 로우 최소값(MIN_TX)을 해당 로우 번호로 업데이트하고, 해당 로우 번호가 로우 최대값(MAX_TX)보다 크면, 로우 최대값(MAX_TX)을 해당 로우 번호로 업데이트할 수 있다.
또한, 해당 칼럼 번호가 칼럼 최소값(MIN_RX)보다 작으면, 칼럼 최소값(MIN_RX)을 해당 칼럼 번호로 업데이트하고, 해당 칼럼 번호가 칼럼 최대값(MAX_RX)보다 크면, 칼럼 최대값(MAX_RX)을 해당 칼럼 번호로 업데이트할 수 있다.
이와 같은 방법으로, 에너지 피크 검출기(460)는 미리 정해진 에너지 임계치(ENERGY_TH)보다 큰 픽셀 데이터가 속한 범위(영역)를 검출하고, 검출된 범위(영역)을 터치 영역으로 검출할 수 있다.
도 12에 도시된 바와 같이, 에너지 피크 검출기(460)에서 검출된 피크값의 위치(PEAK_RX, PEAK_TX)는 검출된 터치 범위(MIN_RX, MAX_RX, MIN_TX, MAX_TX) 내에 속할 수 있다.
위에서 말했듯이, RX0부터 RXn까지의 데이터와 TX0부터 TXm까지의 데이터는 메모리(140a)에 저장되어 있다. 메모리(140a)로부터 1번부터 4번까지의 소스 데티어(S_00~S_03)를 읽어서 소스 버퍼(410)에 저장하고 칼럼 채널의 누산 데이터(RX_00~RX_03)를 읽어 칼럼 누산 버퍼(420)에 저장하고 각 채널마다 더해준다. 그런 다음 더해진 결과 값을 다시 칼럼 채널 별로 저장한다. 본 발명의 실시예에 따르면, 칼럼 채널의 누적된 값을 더하는 싸이클이 별도로 존재하지 않는다.
도 14a의 실시예에서는 한 사이클에 하나의 픽셀 데이터를 메모리로부터 읽거나 쓴다.
도 14b 및 도 14c 각각은 본 발명의 실시예에 따른 에너지 산출기(300a)의 동작 타이밍도이다. 도 14b 및 도 14c의 실시예에서는 한 사이클에 두 개의 픽셀 데이터(예컨대, 32비트 워드)를 메모리로부터 읽거나 쓴다.
버스(130)의 효율을 높이기 위하여, 메모리(140a)로부터 한 싸이클에 두 개의 소스 데이터(S_00~S_01)를 읽어 소스 버퍼(410)에 저장하고, 다음 싸이클에 두 개의 소스 데이터(S_02~S_03)를 읽어 소스 버퍼(410)에 저장한다. 마찬가지로, 칼럼 채널의 누산 데이터(RX_00~RX_03)를 두 싸이클에 걸쳐 읽어 칼럼 누산 버퍼(420)에 저장하고 각 채널마다 더해준다. 그런 다음 더해진 결과 값을 다시 칼럼 채널 별로 저장한다.
도 14c를 참조하면, 마지막 칼럼까지 칼럼 누산 데이터가 산출된 후, 칼럼 누산 버퍼(420)의 칼럼 누산 데이터(RX_00~RX_03)가 메모리(140a)에 저장되면, 로우 누산 버퍼(450)의 로우 누산 데이터(TX_00)를 메모리(140a)에 저장한다.
예컨대, 하나의 로우에 대하여, 마지막 칼럼까지 칼럼 누산 데이터가 산출되어 해당 칼럼 누산 데이터(RX_00~RX_03)가 메모리(140a)에 저장된 후, 다음 싸이클(도 14c 11번째 싸이클)에서 해당 로우의 로우 누산 데이터(TX_00)가 메모리(140a)에 저장될 수 있다.
상술한 바와 같이, 본 발명의 실시예에 따르면, SFR을 제외하고, 데이터를 저장하는데 필요한 레지스터의 수는 소스 데이터를 읽는 데 필요한 P개(예컨대, 4개) L-비트(16bit)레지스터(410)와 칼럼 채널별로 누적된 값을 임시로 저장해 줄 P개의 32비트 레지스터(420), 및 로우 채널의 누적된 값을 임시로 저장할 1개의 32비트 레지스터(450)만 필요하다. 이에 따라 라인 버퍼나 많은 레지스터 없이도, 칼럼 별 누산 데이터, 및 로우별 누산 데이터를 산출할 수 있다. 따라서, 회로 면적을 줄일 수 있다.
<월시 디코더(Walsh Decoder)>
도 15는 본 발명의 일 실시예 따른 월시 디코더(500)의 구성 블록도이고, 도 16은 도 16의 월시 디코더(500)의 동작을 설명하기 위한 도면이다.
TSC(30)에서 터치 패널(20)로 신호를 전송할 때 월시 코드(walsh code)를 실어서 보낸다. 그리고 TSC(30)의 AFE(120)는 터치 패널로부터 수신한 데이터에 월시 코드를 곱하여 잡음 성분을 제거하고 증폭된 소스 데이터를 얻는다. AFE(120)는 월시 인코딩을 수행할 수 있다. 월시 코딩은 직교 신호(Orthogonal signal)를 곱하면 상쇄되고 동일 위상 신호(in-phase signal)를 곱하면 증폭된다는 성질을 이용한 코딩으로서, 잡음 제거에 탁월한 효과가 있다.
도 15 및 도 16을 참조하면, 월시 디코더(500)는 소스 버퍼(510), 월시 코드 레지스터(520), 매트릭스 연산기(530), 데스티네이션 버퍼(540)를 포함한다.
월시 디코더(500)는 도 16에 도시된 바와 같이, 월시 코드(walsh code)와 소스 데이터에 대해 매트릭스 연산을 수행한다.
원래 월시 코드는 '1'과 '-1'로 이루어져 있지만 본 발명의 실시예에서는, '-1'을 '0'으로 대체하여 저장한다. '1'과 '-1'을 저장하기 위해서는 월시 코드의 각 엘리먼트(element)는 싸인 비트(sign bit)을 포함한 2비트로 구현되어야 하지만, 본 발명의 실시예에 따르면, '1'과 '0'으로 대체하여 저장함으로써 월시코드의 각 엘리먼트는 1비트로 구성될 수 있다. 실제 매트릭스 연산을 행할 때는 '0'을 '-1'로 환원하여 계산된다.
위의 방법으로 월시 코드 저장 공간을 절반으로 줄일 수 있다.
월시 디코더(500)는 '로우 채널수(TX) * m' 매트릭스의 월시 코드와 'm* 칼럼 채널 수(RX)' 매트릭스의 소스 데이터(raw data)를 매트릭스 연산하여 '로우 채널수(TX) * 칼럼 채널 수(TX)'매트릭스의 디코딩 데이터(frame data)를 산출할 수 있다.
도 17은 도 15에 도시된 월시 디코더의 일 구성예(500a)를 나타내는 도면이다. 도 18은 본 발명의 일 실시예에 따른 월시 디코더(500a)의 동작을 나타내는 타이밍도이다.
도 17 및 도 18을 참조하면, 소스 버퍼(510)는 공용 버퍼(도 3의 190)의 일부를 사용할 수 있다. 월시 코드 레지스터(520)는 32-비트 레지스터로 구현될 수 있으나, 이에 한정되는 것은 아니다.
매트릭스 연산기(530)는 4*4의 제1 매트릭스와 4*4의 제2 매트릭스를 연산하여 4*4의 제3 매트릭스를 산출할 수 있다. 4*4의 제1 매트릭스는 월시 코드를 로우 단위로 읽은 값들이고, 4*4의 제2 매트릭스는 소스 데이터를 칼럼 단위로 읽은 값들이다.
이를 위하여, 매트릭스 연산기(530)는 복수(2이상)의 MAC(Multiplier Accumulator), 예컨대, 제1 및 제2 MAC을 포함한다.
월시 코드 레지스터(520)는 제1 매트릭스의 로우에 해당하는 월시 코드(coeff00)를 저장한다.
소스 버퍼(510)는 제2 매트릭스의 칼럼에 해당하는 소스 데이터(S_0~S_31)를 저장한다.
제1 MAC은 제1 매트릭스의 해당 로우와, 제2 매트릭스의 홀수 번 째 칼럼을 해당 데이터별로 곱하고 합산하여 제3 매트릭스의 해당 로우 및 홀수번째 칼럼에 속하는 값을 산출하고, 제2 MAC은 제1 매트릭스의 해당 로우와, 제2 매트릭스의 짝수 번 째 칼럼을 해당 데이터별로 곱하고 합산하여 제3 매트릭스의 해당 로우 및 짝수번째 칼럼에 속하는 값을 산출할 수 있다
제1 MAC 및 제2 MAC은 병렬로 동작할 수 있다.
본 실시예에서 MAC은 2개 구비되나, 실시예에 따라 MAC의 개수는 달라질 수 있다.
예컨대, 제1 MAC은 월시 코드 레지스터(520)의 해당 코드와, 소스 버퍼(510)의 해당 데이터를 곱하고 누적하여 누적된 연산 결과(D_0)를 제1 데스티네이션 버퍼(541)에 저장한다.
제2 MAC은 월시 코드 레지스터(520)의 해당 코드와, 소스 버퍼(510)의 해당 데이터를 곱하고 누적하여 누적된 연산 결과(D_1)를 제2 데스티네이션 버퍼(542)에 저장한다.
이에 따라, 제1 MAC은 제3 매트릭스의 홀수 번째 칼럼의 엘리먼트들을 산출하고, 제2 MAC은 제3 매트릭스의 짝수 번째 엘리먼트들을 산출할 수 있다.
버스(130)의 대역폭(bandwidth)이 32비트인 경우, 제1 및 제2 MAC을 동시에 사용하면, 32비트 버스의 효율을 극대화할 수 있다.
도 17 및 도 18의 실시예는 제1 및 제2 MAC을 이용하여 매트릭스의 두 개의 엘리먼트를 동시에 산출함으로써, 버스(130)의 효율을 극대화한 경우이다.
<Normalization>
도 19는 본 발명의 일 실시예에 따른 정규화 회로의 구성 블록도이고, 도 20은 도 19의 정규화 회로(600a)의 동작을 설명하기 위한 도면이다.
도 19 및 도 20을 참조하면, 정규화 회로(600a)는 각 채널마다의 고유 편차를 보정한다. 예컨대, 정규화 회로(600a)는 같은 강도의 도전봉을 접촉했을 때 각 픽셀 마다 값이 다르게 나오는데 이를 같은 값이 균일하게 나오도록 보정한다.
정규화 회로(600a)는 곱셈기(631, 632) 및 쉬프터(633, 634)를 포함할 수 있다. 정규화 회로(600a)는 또한, 정규화 버퍼(620), 소스 버퍼(610), 및 데스티네이션 버퍼(640)를 포함할 수 있다 또한, 정규화 버퍼(620), 소스 버퍼(610), 및 데스티네이션 버퍼(640)는 공용 버퍼(도 3의 190)의 일부를 사용할 수 있다.
정규화 버퍼(620)는 메모리(140a)에 저장된 정규화 테이블 데이터(norm table)를 수신하여 저장한다. 소스 버퍼(610)는 메모리에 저장된 소스 데이터(S_0~S_3)를 저장한다. 정규화 테이블 데이터(norm table)는 한 프레임에 대한 데이터로서 픽셀당 8비트 데이터일 수 있으나, 이에 한정되는 것은 아니다.
곱셈기(631, 632)는 정규화 테이블 데이터(norm table)와 소스 데이터(S_0~S_3)를 픽셀 단위로 곱하여 출력한다.
쉬프터(633, 634)는 곱셈기(631, 632)의 출력 데이터를 미리 정해진 쉬프트 레벨만큼 쉬프트하여 결과 데이터(D_0~D_3)를 산출한다. 쉬프트 레벨이란, 몇 비트를 쉬프트할 것인지 나타내는 정보로서, 예컨대, '2'인 경우, 쉬프터(633, 634)는 곱셈기의 출력 데이터를 오른쪽으로 2번 쉬프트하여 출력한다.
쉬프트 레벨은 SFR(예컨대, 도 3의 180)에 미리 설정될 수 있다.
도 20을 참조하면, 정규화 회로(600a)는 메모리(140a)에 저장된 1 프레임의 정규화 테이블 데이터 중에서 1세트의 데이터(norm table)를 해당 어드레스(HADDR)로부터 읽어와 정규화 버퍼(620)에 저장하고, 메모리(140a)에 저장된 1 프레임의 소스 데이터 중에서 4개의 픽셀 데이터(S_0&1, S_2&3)를 순차적으로 읽어와 소스 버퍼(610)에 저장한다.
1세트의 데이터(norm table)는 32-비트 데이터일 수 있다.
제1 및 제2 곱셈기(631, 632)는 병렬로 동작하여 정규화 데이터(norm table)의 8비트씩과 하나의 픽셀 데이터(S_0&1, S_2&3)를 곱하고, 곱해진 데이터는 쉬프트 레벨만큼 쉬프트하여 결과 데이터(D_0&1, D_2&3)를 출력할 수 있다.
도 17a의 실시예에서는, 4개의 픽셀 데이터(S_0&1, S_2&3)를 처리하는 약 4*1.5 싸이클이 소요된다.
< 디스플레이 잡음 필터(display noise filter)>
도 21은 본 발명의 실시예에 따른 디스플레이 잡음 필터(700)의 구성 블록도이다.
디스플레이 잡음 필터(display noise filter)(700)는 각 라인(예컨대, 로우)별 공통의 디스플레이 잡음(display noise)의 경향치를 구해 제거한다.
디스플레이 잡음 필터(700)는 소스 버퍼(710), 데스티네이션 버퍼(750), 라인 오프셋 산출기(720) 및 라인 오프셋 제거기(740)를 포함한다.
소스 버퍼(710)는 메모리(140)로부터 라인(예컨대, 로우)별로 픽셀 데이터를 수신하여 저장한다.
라인 오프셋 산출기(720)는 해당 라인의 픽셀 데이터로부터 라인 오프셋(혹은 '잡음 평균값'이라고도 함)(Loffset)을 산출한다.
라인 오프셋 제거기(740)는 해당 라인의 각 픽셀 데이터로부터 라인 오프셋 (Loffset)을 제거할 수 있다. 예컨대, 라인 오프셋 제거기(740)는 산출된 라인 오프셋(Loffset)이 미리 정해진 조건을 만족하는 경우, 해당 라인의 각 픽셀 데이터로부터 라인 오프셋(Loffset)을 빼서 라인 오프셋이 제거된 픽셀 데이터를 결과 데이터로서 출력할 수 있다. 결과 데이터는 데스티네이션 버퍼(750)에 저장된 후, 메모리(140)에 저장될 수 있다.
데스티네이션 버퍼(750)는 소스 버퍼(710)와 같은 버퍼일 수 있다.
이 경우, 라인 오프셋이 제거된 픽셀 데이터는 소스 버퍼(710)에 업데이트될 수 있다.
소스 버퍼(710)는 공용 버퍼(도 3의 190)일 수 있다.
도 22는 본 발명의 실시예에 따른 디스플레이 잡음 필터(700a)의 구성 블록도이다.
도 22를 참조하면, 디스플레이 잡음 필터(700a)는 소스 버퍼(710), 데스티네이션 버퍼(750), 복수의 레지스터들, 비교기들(721, 723, 727, 737), 절대값 산출기(722), 카운터, 잡음 평균값 산출기(730), 및 평균값 제거기(740)를 포함한다.
복수의 레지스터들은 폭(WIDTH) 레지스터, 카운트(CNT) 레지스터, 한계치(LIMIT_RANGE) 레지스터를 포함할 수 있다.
디스플레이 잡음 필터(700a)는 하나의 로우 라인에 해당하는 픽셀 데이터를 소스 데이터로서 독출하여 소스 버퍼(710)에 저장할 수 있다. 하나의 로우 라인에 해당하는 픽셀 데이터의 수는 칼럼 채널의 수(RX)와 동일할 수 있다.
절대값 산출기(722)는 로우 라인의 픽셀 데이터 중 터치 임계치(TOUCH_TH)를 초과하는 픽셀 데이터에 대하여 다른 픽셀 데이터와의 차이값을 산출하고, 차이값의 절대값을 산출한다.
하나의 로우 라인에 해당하는 픽셀 데이터를 제1 내지 제m 픽셀 데이터라 가정한다.
제1 픽셀 데이터가 터치 임계치(TOUCH_TH)를 초과하는 경우, 절대값 산출기(722)는 제1 픽셀 데이터와 제2 내지 제m 픽셀 데이터 각각과의 차이값을 절대값을 순차적으로 산출할 수 있다.
비교기(727)는 절대값 산출기(722)로부터 출력되는 절대값을 설정 폭(WIDTH)와 비교하여 설정 폭(WIDTH) 보다 적을 때마다 히스토리 카운트(725)를 증가시킨다.
히스토리 카운트가 설정 카운트(CNT)보다 크면 해당 픽셀 데이터를 누적시켜 누적값 레지스터(729)에 저장하고, 누적 카운트(733)를 1 증가시킨다.
이와 같은 방식으로 제m 픽셀 데이터까지 터치 임계치를 초과하는 픽셀 데이터에 대하여 다른 픽셀 데이터와의 차이의 절대값이 설정 폭(WIDTH) 이내인 개수를 나타내는 히스토리 카운트를 구하고, 히스토리 카운트가 설정 카운트(CNT)보다 큰 경우에, 해당 픽셀 데이터를 계속 누적시킨다.
잡음 평균값 산출기(730)는 누적값(731)을 누적 카운트(733)로 나누어, 노이즈 평균값을 산출한다.
평균값 제거기(740)는 노이즈 평균값이 한계치(LIMIT_RANGE) 보다 크면, 픽셀 데이터 각각을 해당 픽셀 데이터에서 노이즈 평균값을 뺀 값으로 업데이트한다.
평균값 제거기(740)는 노이즈 평균값이 한계치(LIMIT_RANGE) 보다 작으면, 해당 라인의 픽셀 데이터에 대해서는 그대로 유지한다.
평균값 제거기(740)에 의해 노이즈 평균값이 제거된 픽셀 데이터는 데스티네이션 버퍼(750)에 저장된 다음, 메모리(140a)에 저장된다.
도 23은 칼럼 채널(#0~#7) 수가 8일 때, 본 발명의 실시예에 따른 디스플레이 잡음 필터(700a)가 한 라인의 디스플레이 잡음(display noise) 를 구하는 과정을 설명하기 위한 도면이다.
도 22 및 도 23을 참조하면, 각 칼럼 채널(#0~#7)별 소스 데이터를 해당 라인의 픽셀 데이터 각각과 빼서 유효한 범위의 결과값을 카운트한다. 이 값이 상술한 히스토리 카운트(H_CNT)에 해당한다. 그리고 이 히스토리 카운트(H_CNT) 값이 설정 카운트(CNT)보다 클 경우에 해당 채널의 소스 데이터를 누적한다.
도 23에서, 각 칼럼 채널(#0~#7)별 히스토리 카운트(H_CNT)는 4,4,5,5,4,1,1,2이다. 설정 카운트(CNT)가 3이라고 가정하면, 히스토리 카운트(H_CNT)가 3보다 큰 경우에 해당 픽셀 데이터가 누적된다. 이에 따라, #0, #1, #2, #3, #4에 해당하는 픽셀 데이터(60, 62, 68, 74, 80)가 누적됨으로써, 누적 값(AC_DAT)은 344이고, 누적 카운트(AC_CNT)는 5이다.
누적 값(AC_DAT) 344를 누적 카운트(AC_CNT) 5로 나누어, 노이즈 평균값인 라인 오프셋(Loffset)이 산출된다.
즉, 디스플레이 잡음(display noise)으로 볼 수 있는 라인 오프셋(Loffset)을 구하게 된다. 이 라인 오프셋(Loffset)을 제거하면 디스플레이 잡음(display noise)가 제거된 픽셀 데이터를 얻게 된다.
도 24는 본 발명의 실시예에 따른 TSC(30B)의 구성 블록도이다.
도 24에 도시된 TSC(30B)의 구성 및 동작은 도 2는 본 발명의 실시예에 따른 TSC(30)와 유사하므로, 설명의 중복을 피하기 위하여 차이점 위주로 설명한다.
도 24에 도시된 실시예에 따르면, TSC(30B)의 AFE(analog front end)는 아날로그 파트(170)와 디지털 파트(120')로 나누어 구현될 수 있다.
아날로그 파트(170)는 아날로그-디지털 변환기(ADC:analog-to-digital converter)(171)를 포함할 수 있다.ADC(171)는 Q-비트 ADC일 수 있다. Q는 2이상이고 L보다 작은 정수일 수 있다. 디지털 파트(120')는 ADC(171)의 출력 데이터, 즉 디지털 데이터를 저장하는 내부 메모리를 포함할 수 있다. 예컨대, 디지털 파트(120')는 도 25에 도시된 메모리 컨트롤러(800)를 포함할 수 있다.
본 실시예에서는 설명의 편의를 위하여, Q는 11이고, 버스(130)의 버스 대역폭(bus width)는 32비트인 것으로 가정하나, 이에 한정되는 것은 아니다.
디지털 파트(120')는 ADC(171)로부터 출력되는 11비트의 디지털 데이터를 수신하여 내부 메모리에 저장할 수 있다. 디지털 파트(120')의 내부 메모리에 저장된 디지털 데이터는 32비트 대역폭을 가지는 버스(840)를 통해 메모리(140)로 전송되거나, HDMA(100)내의 회로로 전송될 수 있다.
32비트 대역폭을 가지는 메모리(140)에 저장하기 위해서는 11비트의 디지털 데이터를 16비트 데이터로 확장해서 저장하는 것이 데이터 처리의 편의성을 높일 수 있다. 즉 HDMA(100)의 각 회로에서 알고리즘 처리를 위해서 데이터를 읽고 쓸 때 추가 처리할 필요 없이 메모리에 저장된 데이터를 그대로 사용할 수 있다.
11비트 데이터에 대해 음수로 저장할 필요가 있다면 싸인 비트(sign bit) 하나를 MSB에 붙여서 12비트 데이터로 변환하고, 상위 4비트는 MSB를 복사해서 저장함으로써, 16비트 데이터로 만들 수 있다.
이와 같이, ADC(171)로부터 출력되는 데이터의 비트수를 늘려 내부 메모리에 저장하면, 데이터 처리의 편의성은 향상되지만 내부 메모리의 저장 공간의 낭비가 발생한다. 이러한 경우에 물리적인 메모리의 크기를 줄이기 위한 방법을 도 25를 참조하여 설명한다.
도 25는 본 발명의 일 실시예에 따른 메모리 컨트롤러(800)의 동작을 설명하기 위한 도면이다.
메모리 컨트롤러(800)는 메모리 코어(810, 820) 및 싸인 확장 회로(830)를 포함할 수 있다. 메모리 컨트롤러(800)는 ADC(171)로부터 출력되는 디지털 데이터(811, 821)에 싸인 비트(sign bit)(812, 822) 하나를 MSB에 붙여서 12비트 데이터로 변환하여 메모리 코어에 저장할 수 있다.
메모리 컨트롤러(800)는 메모리 코어로부터 데이터를 독출하여 출력할 때는 싸인 확장 회로(830)에 의하여, 12 비트 데이터(811, 812, 821, 822)에 상위 4비트를 추가하여 버스(840)로 출력할 수 있다. 예컨대, 싸인 확장 회로(830)는 싸인 비트를 상위 4비트로 복사함으로써, 12비트 데이터를 16비트 데이터로 만들 수 있다.
메모리 컨트롤러(800)는 또한, 메모리 코어에 데이터를 저장할 때는 싸인 확장 회로(830)에 의하여, 상위 4비트를 제거한 데이터(811, 812, 821, 822)를 저장할 수 있다. 이에 따라, 본 발명의 실시예에 따르면, 상위 4비트에 대한 저장공간(813, 823)은 불필요하므로, 물리적인 메모리의 크기를 줄일 수 있다.
본 발명의 실시예는, 아날로그 블록(analog block) 혹은 디지털 블록(digital block)에서 처리된 데이터를 메모리에 저장할 때 데이터의 길이(bit width)가 버스 대역폭(bus bandwidth)(예컨대, 32비트)보다 작거나 버스 대역폭의 자연수(예컨대, 2, 3, 3 등)로 나눈 비트수(예컨대, 16비트) 보다 작은 경우에 사용될 수 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 터치 시스템(Touch System)
20: 터치 패널(Touch Panel)
30: TSC(Touch Screen Controller)
40: 어플리케이션 프로세서
100: 알고리즘 처리 회로(HDMA)
110: CPU
120, 120': 아날로그 프론트 엔드(AFE: analog front end) 회로
130: 버스 매트릭스
140: 메모리
150: 브릿지(Bridge)
160: I2C(Inter-Integrated Circuit)
180: 특수 기능 레지스터(SFR: Special Function Register)
190: 공용 버퍼
200: 앰비언트 리무버(Ambient Remover)
300: 시간적 스무딩 회로(Temporal smoothing circuit)
400: 에너지 산출기(Energy Calculator)
500: 월시 디코더(Walsh decoder)
600: 정규화 회로(Normalization circuit)
700: 디스플레이 잡음 필터

Claims (10)

  1. 터치 패널(Touch Panel)로 제어 신호(control signal)를 제공하고, 상기 터치 패널로부터 터치 신호를 수신하는 프런트 엔드 회로;
    상기 터치 신호에 기초하여 생성된 소스 데이터를 미리 정해진 알고리즘에 따라 처리하는 알고리즘 처리 회로;
    상기 소스 데이터 및 알고리즘 처리 회로에서 처리된 결과 데이터를 저장하는 메모리; 및
    상기 프런트 엔드 회로, 상기 알고리즘 처리 회로 및 상기 메모리 간의 데이터를 전송하는 버스를 포함하며,
    상기 알고리즘 처리 회로는
    상기 소스 데이터 또는 상기 결과 데이터를 일시적으로 저장하며, 둘 이상의 회로에 의하여 공유될 수 있는 버퍼; 및
    상기 알고리즘 처리 회로의 동작에 필요한 설정값을 저장하는 특수 기능 레지스터(SFR)를 포함하고,
    상기 버퍼는 소스 데이터를 저장하는 소스 버퍼를 포함하고,
    상기 알고리즘 처리 회로는
    버스트 모드 혹은 연속된 싱글 모드로 상기 메모리로부터 소스 데이터를 동작 클락의 복수의 싸이클에 걸쳐 연속적으로 읽어 와서 상기 소스 버퍼에 저장하는 터치 스크린 컨트롤러(TSC).
  2. 제1항에 있어서,
    상기 버스는 R-비트 버스 대역폭을 가지고,
    상기 버퍼는
    상기 결과 데이터를 저장하는 데스티네이션 버퍼를 더 포함하는 터치 스크린 컨트롤러(TSC).
  3. 제2항에 있어서, 상기 알고리즘 처리 회로는
    상기 동작 클락의 한 싸이클 동안 하나 이상의 소스 데이터를 상기 메모리로부터 읽어 오는 터치 스크린 컨트롤러(TSC).
  4. 제2항에 있어서, 상기 데스티네이션 버퍼는
    상기 소스 버퍼와 동일하며,
    상기 결과 데이터는 상시 소스 버퍼에 업데이트되는 터치 스크린 컨트롤러(TSC).
  5. 제2항에 있어서,
    상기 터치 패널의 한 프레임 데이터에 대한 오프셋 값이 상기 메모리에 저장되고,
    상기 알고리즘 처리 회로는
    상기 메모리로부터 버스트 모드 혹은 연속된 싱글 모드로 소스 데이터를 순차적으로 읽어 와서 상기 소스 버퍼에 저장하고,
    상기 메모리로부터 상기 버스트 모드 혹은 연속된 싱글 모드로 오프셋 값을 순차적으로 읽어 와서 오프셋 버퍼에 저장하며,
    상기 소스 버퍼의 소스 데이터에서 상기 오프셋 버퍼의 해당 오프셋 값을 빼서, 오프셋이 제거된 출력 데이터를 상기 결과 데이터로서 상기 데스티네이션 버퍼에 저장하는 앰비언트 리무버를 포함하는 터치 스크린 컨트롤러(TSC).
  6. 제2항에 있어서, 상기 알고리즘 처리 회로는
    상기 메모리로부터 k(2이상)의 프레임 데이터를 읽어와서 상기 소스 버퍼에 저장하는 시간적 스무딩 회로를 포함하고,
    상기 시간적 스무딩 회로는
    상기 k 프레임에 걸친 같은 위치의 픽셀 데이터의 평균값을 산출하여 출력하는 평균값 산출기; 및
    상기 k 프레임에 걸친 같은 위치의 픽셀 데이터 중 중간값을 선택하는 메디안 필터 중 적어도 하나를 포함하는 터치 스크린 컨트롤러(TSC).
  7. 제2항에 있어서, 상기 알고리즘 처리 회로는
    상기 소스 데이터를 로우 채널별 및 칼럼 채널별로 합산하고, 상기 소스 데이터에서 최대값을 갖는 피크 신호와 상기 피크 신호의 위치를 검출하는 에너지 산출기를 포함하는 터치 스크린 컨트롤러(TSC).
  8. 제7항에 있어서, 상기 에너지 산출기는
    로우 누산 버퍼, 및 칼럼 누산 버퍼를 포함하고
    상기 에너지 산출기는
    상기 메모리로부터 상기 소스 데이터를 로우 채널별로 읽어와서 소스 버퍼에 저장하고,
    상기 메모리로부터 칼럼별 누산 데이터를 읽어와서 상기 칼럼 누산 버퍼에 저장하고,
    상기 소스 버퍼에 저장된 상기 소스 데이터를 P(자연수) 단위로 합산하여 로우 누산 버퍼에 저장하며,
    상기 소스 버퍼에 저장된 상기 소스 데이터와 상기 칼럼 누산 버퍼에 저장된 상기 칼럼별 누산 데이터를 칼럼별로 합산하여 상기 칼럼 누산 버퍼에 업데이트하며, 상기 업데이트된 상기 칼럼별 누산 데이터를 상기 메모리에 저장하는 터치 스크린 컨트롤러(TSC).
  9. 제2항에 있어서, 상기 알고리즘 처리 회로는
    상기 소스 데이터를 월시 코드를 이용하여 디코딩하는 월시 디코더를 포함하고,
    상기 월시 디코더는
    상기 메모리에 저장된 월시 코드를 읽어와서 코드 레지스터에 저장하고,
    상기 메모리에 저장된 소스 데이터를 칼럼 채널별로 읽어와서 상기 소스 버퍼에 저장하고,
    매트릭스 연산기를 이용하여, 상기 월시 코드로 구성된 제1 매트릭스와 상기 소스 데이터로 구성된 제2 매트릭스를 연산하여 제3 매트릭스를 산출하는 터치 스크린 컨트롤러(TSC).
  10. 터치 패널(touch panel)로 제어 신호(control signal)를 공급하고 터치 패널로부터 터치 신호를 수신하고, 수신된 신호를 처리하는 터치 스크린 컨트롤러(TSC); 및
    상기 터치 스크린 컨트롤러로부터 처리 결과 신호를 제공받는 어플리케이션 프로세서를 포함하며,
    상기 TSC는
    상기 터치 신호에 기초하여 생성된 소스 데이터를 미리 정해진 알고리즘에 따라 처리하는 알고리즘 처리 회로;
    상기 소스 데이터 및 알고리즘 처리 회로에서 처리된 결과 데이터를 저장하는 메모리; 및
    상기 알고리즘 처리 회로 및 상기 메모리 간의 데이터를 전송하는 버스를 포함하며,
    하나의 픽셀에 상응하는 소스 데이터의 길이(bit width)는 상기 버스의 대역폭보다 작고,
    상기 알고리즘 처리 회로는 상기 버스의 대역폭에 맞추어 상기 메모리로부터 둘 이상의 소스 데이터를 동시에 읽어 오는 터치 시스템.
KR1020160069664A 2016-01-26 2016-06-03 데이터 처리 속도를 높이는 터치 스크린 컨트롤러, 및 이를 포함하는 터치 시스템 KR102548581B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/393,501 US10141972B2 (en) 2016-01-26 2016-12-29 Touch screen controller for increasing data processing speed and touch system including the same
US16/180,871 US10355737B2 (en) 2016-01-26 2018-11-05 Touch screen controller for increasing data processing speed and touch system including the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20160009673 2016-01-26
KR1020160009673 2016-01-26

Publications (2)

Publication Number Publication Date
KR20170089384A KR20170089384A (ko) 2017-08-03
KR102548581B1 true KR102548581B1 (ko) 2023-06-29

Family

ID=59655498

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160069664A KR102548581B1 (ko) 2016-01-26 2016-06-03 데이터 처리 속도를 높이는 터치 스크린 컨트롤러, 및 이를 포함하는 터치 시스템

Country Status (1)

Country Link
KR (1) KR102548581B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140310721A1 (en) * 2012-01-06 2014-10-16 Intel Corporation Reducing the number of read/write operations performed by a cpu to duplicate source data to enable parallel processing on the source data
US20150130613A1 (en) * 2011-07-12 2015-05-14 Aliphcom Selectively available information storage and communications system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150130613A1 (en) * 2011-07-12 2015-05-14 Aliphcom Selectively available information storage and communications system
US20140310721A1 (en) * 2012-01-06 2014-10-16 Intel Corporation Reducing the number of read/write operations performed by a cpu to duplicate source data to enable parallel processing on the source data

Also Published As

Publication number Publication date
KR20170089384A (ko) 2017-08-03

Similar Documents

Publication Publication Date Title
US9983850B2 (en) Shared hardware integer/floating point divider and square root logic unit and associated methods
WO2019057093A1 (zh) 乘法电路、片上系统及电子设备
CN110519603B (zh) 一种实时视频缩放的硬件电路及其缩放方法
EP0905890A2 (en) Filter structure and method
CN103827818A (zh) Fifo加载指令
US20220350569A1 (en) Computing apparatus and method for neural network operation, integrated circuit, and device
US10355737B2 (en) Touch screen controller for increasing data processing speed and touch system including the same
KR102548581B1 (ko) 데이터 처리 속도를 높이는 터치 스크린 컨트롤러, 및 이를 포함하는 터치 시스템
WO2020135209A1 (zh) 减少存储体冲突的方法
CN111381808B (zh) 乘法器、数据处理方法、芯片及电子设备
WO2021120851A1 (zh) 一种浮点处理装置和数据处理方法
CN111782563B (zh) 一种用于risc-v微控制器的dvp控制器系统
US8495275B2 (en) List structure control circuit
CN111258541A (zh) 乘法器、数据处理方法、芯片及电子设备
US20230076931A1 (en) Multiplier for floating-point operation, method, integrated circuit chip, and calculation device
CN210109863U (zh) 乘法器、装置、神经网络芯片及电子设备
US9679222B2 (en) Apparatus and method for detecting a feature in an image
CN209895329U (zh) 乘法器
CN209879493U (zh) 乘法器
Mehendale et al. DA-based circuits for inner-product computation
KR20210027878A (ko) 연산 회로, 이를 포함하는 뉴럴 프로세싱 유닛 및 전자 기기
CN109741286B (zh) 中值滤波方法、装置、存储介质和电子设备
KR100732426B1 (ko) 고속 컨텍스트 전환을 갖는 컴퓨터
JP2007140858A (ja) メモリアクセス方法及びメモリアクセス装置
CN214409954U (zh) 一种ssd主控芯片中乘法运算电路

Legal Events

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