KR20190037534A - 디스플레이장치 및 그 제어방법 - Google Patents

디스플레이장치 및 그 제어방법 Download PDF

Info

Publication number
KR20190037534A
KR20190037534A KR1020170126986A KR20170126986A KR20190037534A KR 20190037534 A KR20190037534 A KR 20190037534A KR 1020170126986 A KR1020170126986 A KR 1020170126986A KR 20170126986 A KR20170126986 A KR 20170126986A KR 20190037534 A KR20190037534 A KR 20190037534A
Authority
KR
South Korea
Prior art keywords
memory
instruction
instructions
program
processor
Prior art date
Application number
KR1020170126986A
Other languages
English (en)
Inventor
권진만
우충기
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020170126986A priority Critical patent/KR20190037534A/ko
Priority to PCT/KR2018/005589 priority patent/WO2019066182A1/ko
Priority to US16/646,321 priority patent/US11188333B2/en
Publication of KR20190037534A publication Critical patent/KR20190037534A/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/006Electronic inspection or testing of displays and display drivers, e.g. of LED or LCD displays

Abstract

상기 목적은, 본 발명에 따라, 디스플레이장치에 있어서, 프로그램을 실행하기 위한 복수의 인스트럭션을 저장하는 제1메모리와; 제2메모리와; 프로그램의 실행에 대응하여, 제1메모리에 저장된 복수의 인스트럭션을 제2메모리에 로드하여, 제2메모리에 로드된 복수의 인스트럭션을 순차적으로 인출(fetch)하여 해석(decode)하고, 복수의 인스트럭션 중 제1인스트럭션이 해석 불가 상태로 판단되면, 제1메모리에 저장된 제1인스트럭션을 제2메모리에 재로드하여, 재로드된 제1인스트럭션을 인출하여 해석하는 프로세서를 포함한다.

Description

디스플레이장치 및 그 제어방법 {DISPLAY APPARATUS AND CONTROL METHOD THEREOF}
본 발명은 디스플레이장치 및 그 제어방법에 관한 것으로서, 보다 상세하게는 프로그램을 실행하기 위한 인스트럭션의 해석(decode) 과정에서 발생되는 예외사항(exception)을 처리하기 위한 디스플레이장치 및 그 제어방법에 관한 것이다.
디스플레이장치에 탑재되는 운영체제(OS)는 컴퓨터처럼 디스크에서 읽어들이는 것이 아니라 칩(chip)에 담아 내장된 형태로 제공되는 임베디드(embedded) 시스템으로 구현된다.
임베디드 시스템은 CPU가 인스트럭션(instruction)을 처리함에 있어, 파이프라인 방식으로 인스트럭션을 인출(fetch), 해석(decode) 및 실행(execute)하는 과정으로 거친다. 이 과정에서 인스트럭션이 해석 가능한 것인지 유효성(validation) 여부를 검토하게 되고, 여러 가지 예외사항(exception)이 발생할 수 있다.
인스트럭션의 해석(decode) 과정에서 예외사항이 발생되면, 예외사항의 여러 타입 중 해당 타입에 대해 미리 설정해 놓은 예외처리 동작을 수행한 뒤 다시 원래의 코드로 돌아오도록 한다.
그러나, 예외사항의 타입이 '정의되지 않은 인스트럭션(undefined instruction)'인 경우, 프로그램의 문제가 아닌 비트 플립(bit flip)과 같은 메모리 변형(memory corruption)에 의해 발생되는 경우가 대부분이다. 이 경우 일반적으로 예외처리 후 시스템의 실행을 중지(system crash)시키게 되는데, 이로 인해 사용자는 시스템 재부팅을 해야하는 등 불편함을 느낄 수 있다.
또한, 정의되지 않은 인스트럭션이 자주 발생되는 경우 시스템의 안정성 측면에서 문제가 될 수 있다.
따라서, 본 발명의 목적은, 메모리 변형 등으로 인스트럭션이 해석 불가한 경우, 시스템의 실행이 중단되는 것을 막기 위한 디스플레이장치 및 그 제어방법을 제공하는 것이다.
또한, 본 발명의 또 다른 목적은, 메모리 변형 등으로 인스트럭션이 해석 불가한 경우, 의도하고자 한 원래의 인스트럭션으로 복원하기 위한 디스플레이장치 및 그 제어방법을 제공하는 것이다.
상기 목적은, 본 발명에 따라, 디스플레이장치에 있어서, 프로그램을 실행하기 위한 복수의 인스트럭션을 저장하는 제1메모리와; 제2메모리와; 프로그램의 실행에 대응하여, 제1메모리에 저장된 복수의 인스트럭션을 제2메모리에 로드하여, 제2메모리에 로드된 복수의 인스트럭션을 순차적으로 인출(fetch)하여 해석(decode)하고, 복수의 인스트럭션 중 제1인스트럭션이 해석 불가 상태로 판단되면, 제1메모리에 저장된 제1인스트럭션을 제2메모리에 재로드하여, 재로드된 제1인스트럭션을 인출하여 해석하는 프로세서를 포함하는 디스플레이장치에 의해 달성될 수 있다.
이와 같은 본 발명의 실시예에 따라, 메모리 변형 등으로 인스트럭션이 해석 불가한 경우, 시스템의 실행이 갑자기 중단되는 것을 막을 수 있다. 또한, 의도하고자 한 원래의 인스트럭션으로 복원하여 프로그램을 정상적으로 실행시킬 수 있다.
상기 프로세서는, 상기 제1인스트럭션이 해석 불가 상태로 판단되면, 상기 제1메모리 중 제1인스트럭션에 해당하는 라인 부분을 상기 제2메모리에 재로드할 수 있다. 이에 따라, 메모리 변형 등으로 인스트럭션이 해석 불가한 경우, 캐쉬메모리 상에서 해당 인스트럭션이 포함된 라인만을 복원하여 프로그램을 정상 실행시킬 수 있다.
상기 프로세서는, 상기 제1인스트럭션이 해석 불가 상태로 판단되면, 상기 제2메모리에 로드된 복수의 인스트럭션과 동일한 클론을 생성하고, 상기 클론과 상기 제2메모리에 로드된 복수의 인스트럭션 간 매칭 여부를 판단하고, 매칭되지 않는 경우, 상기 제1메모리에 저장된 복수의 인스트럭션을 상기 제2메모리에 재로드할 수 있다. 이에 따라, 메모리 변형 등으로 인스트럭션이 해석 불가한 경우, 캐쉬메모리 상에서 해당 인스트럭션이 포함된 라인뿐만 아니라 전체 인스트럭션을 모두 검토하여 새롭게 발생될 수 있는 메모리 변형 가능성을 방지할 수 있다.
상기 프로세서는, 상기 클론과 상기 제2메모리에 로드된 복수의 인스트럭션이 매칭되는 경우, 상기 프로그램의 실행을 중지시킬 수 있다. 이에 따라, 메모리 변형의 이유로 인스트럭션이 해석 불가한 경우가 아니라면, 프로그램 상의 문제로 보고 시스템의 실행을 중단시킬 수 있다.
상기 프로세서는, 상기 제1인스트럭션이 해석 불가 상태로 판단되면, 상기 저장된 제1인스트럭션을 상기 제2메모리에 재로드하는 동작을 포함하는 복수의 예외처리 동작을 순차적으로 수행할 수 있다. 이에 따라, 메모리 변형의 이유로 인스트럭션이 해석 불가한 경우, 인스트럭션의 복원 처리와 함께 미리 설정해놓은 예외처리 동작을 수행하여, 시스템을 안정적으로 실행하도록 할 수 있다.
상기 프로세서는, 상기 제1인스트럭션이 해석 불가 상태로 판단되면, 상기 프로그램의 실행을 중지시킬 수 있다. 이에 따라, 인스트럭션이 해석 불가한 경우, 경우에 따라 곧바로 시스템의 실행을 중단시키고 개발자에게 디버깅 정보를 제공할 수도 있다.
상기 디스플레이장치는, 사용자입력을 수신하는 입력수신부를 더 포함할 수 있고, 상기 프로세서는, 상기 수신되는 사용자입력에 따라 복수의 인스트럭션 검사 모드 중 하나의 모드로 설정하고, 상기 제1인스트럭션이 해석 불가 상태로 판단되면 상기 설정된 모드에 따라 상기 제2메모리에 로드된 제1인스트럭션을 상기 제1메모리에 저장된 제1인스트럭션과 비교하는 방법을 결정할 수 있다. 이에 따라, 해석 불가한 인스트럭션에 대해 제품 개발자가 설정한 검사 방법을 적용하여 보다 신뢰성 있는 검사가 이루어지도록 할 수 있다.
상기 프로세서는, 사용자입력에 따라, 상기 제2메모리에 로드된 복수의 인스트럭션 중 상기 클론과 비교할 범위를 설정할 수 있다. 이에 따라, 제품 개발 초기 단계에서, 해석 불가한 인스트럭션에 대해 개발자가 원하는 검사 범위를 설정하여 신뢰성 있는 검사가 이루어지도록 할 수 있다.
상기 목적은, 본 발명에 따라, 컴퓨터프로그램제품에 있어서, 복수의 프로그램명령이 저장된 메모리와; 프로세서를 포함하고, 프로그램명령은, 프로세서에 의해 실행되면, 디스플레이장치의 프로그램의 실행에 대응하여, 디스플레이장치의 제1메모리에 저장된 복수의 인스트럭션을 디스플레이장치의 제2메모리에 로드하여, 제2메모리에 로드된 복수의 인스트럭션을 순차적으로 인출하여 해석하고, 복수의 인스트럭션 중 제1인스트럭션이 해석 불가 상태로 판단되면, 제1메모리에 저장된 제1인스트럭션을 제2메모리에 재로드하여, 재로드된 제1인스트럭션을 인출하여 해석하는 것을 포함하는 컴퓨터프로그램제품에 의해서도 달성될 수 있다.
이와 같은 본 발명의 실시예에 따라, 메모리 변형 등으로 인스트럭션이 해석 불가한 경우, 시스템의 실행이 갑자기 중단되는 것을 막을 수 있다. 또한, 의도하고자 한 원래의 인스트럭션으로 복원하여 프로그램을 정상적으로 실행시킬 수 있다.
상기 프로그램명령은, 상기 제1인스트럭션이 해석 불가 상태로 판단되면, 상기 제2메모리에 로드된 복수의 인스트럭션과 동일한 클론을 생성하고, 상기 클론과 상기 제2메모리에 로드된 복수의 인스트럭션 간 매칭 여부를 판단하고, 매칭되지 않는 경우, 상기 제1메모리에 저장된 복수의 인스트럭션을 상기 제2메모리에 재로드하는 것을 포함할 수 있다. 이에 따라, 메모리 변형 등으로 인스트럭션이 해석 불가한 경우, 캐쉬메모리 상에서 해당 인스트럭션이 포함된 라인뿐만 아니라 전체 인스트럭션을 모두 검토하여 새롭게 발생될 수 있는 메모리 변형 가능성을 방지할 수 있다.
상기 목적은, 본 발명에 따라, 프로그램을 실행하기 위한 복수의 인스트럭션을 저장하는 제1메모리와, 제2메모리를 포함하는 디스플레이장치의 제어방법에 있어서, 프로그램의 실행에 대응하여, 제1메모리에 저장된 복수의 인스트럭션을 제2메모리에 로드하는 단계와; 제2메모리에 로드된 복수의 인스트럭션을 순차적으로 인출하여 해석하는 단계와; 복수의 인스트럭션 중 제1인스트럭션이 해석 불가 상태로 판단되면, 제1메모리에 저장된 제1인스트럭션을 제2메모리에 재로드하는 단계와; 재로드된 제1인스트럭션을 인출하여 해석하는 단계를 포함하는 디스플레이장치의 제어방법에 의해서도 달성될 수 있다.
이와 같은 본 발명의 실시예에 따라, 메모리 변형 등으로 인스트럭션이 해석 불가한 경우, 시스템의 실행이 갑자기 중단되는 것을 막을 수 있다. 또한, 의도하고자 한 원래의 인스트럭션으로 복원하여 프로그램을 정상적으로 실행시킬 수 있다.
상기 제1인스트럭션이 해석 불가 상태로 판단되면, 상기 제1메모리 중 제1인스트럭션에 해당하는 라인 부분을 상기 제2메모리에 재로드하는 단계를 포함할 수 있다. 이에 따라, 메모리 변형 등으로 인스트럭션이 해석 불가한 경우, 캐쉬메모리 상에서 해당 인스트럭션이 포함된 라인만을 복원하여 프로그램을 정상 실행시킬 수 있다.
상기 제1인스트럭션이 해석 불가 상태로 판단되면, 상기 제2메모리에 로드된 복수의 인스트럭션과 동일한 클론을 생성하는 단계와; 상기 클론과 상기 제2메모리에 로드된 복수의 인스트럭션 간 매칭 여부를 판단하는 단계와; 상기 판단 결과 매칭되지 않는 경우, 상기 제1메모리에 저장된 복수의 인스트럭션을 상기 제2메모리에 재로드하는 단계를 포함할 수 있다. 이에 따라, 메모리 변형 등으로 인스트럭션이 해석 불가한 경우, 캐쉬메모리 상에서 해당 인스트럭션이 포함된 라인뿐만 아니라 전체 인스트럭션을 모두 검토하여 새롭게 발생될 수 있는 메모리 변형 가능성을 방지할 수 있다.
상기 클론과 상기 제2메모리에 로드된 복수의 인스트럭션이 매칭되는 경우, 상기 프로그램의 실행을 중지시키는 단계를 포함할 수 있다. 이에 따라, 메모리 변형의 이유로 인스트럭션이 해석 불가한 경우가 아니라면, 프로그램 상의 문제로 보고 시스템의 실행을 중단시킬 수 있다.
상기 제1인스트럭션이 해석 불가 상태로 판단되면, 상기 저장된 제1인스트럭션을 상기 제2메모리에 재로드하는 동작을 포함하는 복수의 예외처리 동작을 순차적으로 수행하는 단계를 포함할 수 있다. 이에 따라, 메모리 변형의 이유로 인스트럭션이 해석 불가한 경우, 인스트럭션의 복원 처리와 함께 미리 설정해놓은 예외처리 동작을 수행하여, 시스템을 안정적으로 실행하도록 할 수 있다.
상기 제1인스트럭션이 해석 불가 상태로 판단되면, 상기 프로그램의 실행을 중지시키는 단계를 포함할 수 있다. 이에 따라, 인스트럭션이 해석 불가한 경우, 경우에 따라 곧바로 시스템의 실행을 중단시키고 개발자에게 디버깅 정보를 제공할 수도 있다.
사용자입력을 수신하는 단계와; 상기 수신되는 사용자입력에 따라 복수의 인스트럭션 검사 모드 중 하나의 모드로 설정하는 단계와; 상기 제1인스트럭션이 해석 불가 상태로 판단되면 상기 설정된 모드에 따라 상기 제2메모리에 로드된 제1인스트럭션과 상기 제1메모리에 저장된 제1인스트럭션 간 매칭 방법을 결정하는 단계를 포함할 수 있다. 이에 따라, 해석 불가한 인스트럭션에 대해 제품 개발자가 설정한 검사 방법을 적용하여 보다 신뢰성 있는 검사가 이루어지도록 할 수 있다.
사용자입력에 따라, 상기 제2메모리에 로드된 복수의 인스트럭션 중 상기 클론과 비교할 범위를 설정하는 단계를 포함할 수 있다. 이에 따라, 제품 개발 초기 단계에서, 해석 불가한 인스트럭션에 대해 개발자가 원하는 검사 범위를 설정하여 신뢰성 있는 검사가 이루어지도록 할 수 있다.
상기한 바와 같이, 본 발명에 의하면, 메모리 변형 등으로 인스트럭션이 해석 불가한 경우, 시스템의 실행이 갑자기 중단되는 것을 방지하여 안정적인 시스템을 구현하는 효과가 있다.
또한, 본 발명에 의하면, 메모리 변형 등으로 인스트럭션이 해석 불가한 경우, 의도하고자 한 원래의 인스트럭션으로 복원하도록 하여 프로그램을 정상 동작시킬 수 있다.
도 1은 본 발명의 일실시예에 따른 디스플레이장치의 구성을 도시한 블록도이다.
도 2는 본 발명의 일실시예에 따른 해석 불가한 인스트럭션을 표준처리모드에 따라 처리하는 예를 도시한 흐름도이다.
도 3은 본 발명의 일실시예에 따른 표준처리모드에서 인스트럭션을 처리하기 위한 각 구성 간 인터페이스를 도시한 예이다.
도 4는 본 발명의 일실시예에 따른 복수의 인스트럭션을 프로세서가 처리하는 과정을 도시한 예이다.
도 5는 본 발명의 일실시예에 따른 인스트럭션의 해석 과정에서 발생되는 여러 타입의 예외사항을 나타낸 표이다.
도 6은 본 발명의 일실시예에 따른 인스트럭션이 해석 불가한 경우 예외처리 동작을 수행하는 예이다.
도 7은 본 발명의 일실시예에 따른 해석 불가한 인스트럭션을 신뢰처리모드에 따라 처리하는 예를 도시한 흐름도이다.
도 8은 본 발명의 일실시예에 따른 신뢰처리모드에서 인스트럭션을 처리하기 위한 각 구성 간 인터페이스를 도시한 예이다.
도 9는 본 발명의 일실시예에 따른 해석 불가한 인스트럭션을 빠른처리모드에 따라 처리하는 예를 도시한 흐름도이다.
도 10은 본 발명의 일실시예에 따른 해석 불가한 인스트럭션을 설정된 검사 모드에 따라 처리하는 예를 도시한 흐름도이다.
도 11 은 본 발명의 일실시예에 따른 해석 불가한 인스트럭션의 검사모드를 설정하기 위한 UI(User Interface)를 도시한 예이다.
이하, 첨부도면을 참조하여 본 발명의 실시예들에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예들에 한정되지 않는다.
도 1은 본 발명의 일실시예에 따른 디스플레이장치의 구성을 도시한 블록도이다. 도 1에 도시된 바와 같이, 본 발명의 디스플레이장치(10)는 신호수신부(11), 신호처리부(12), 디스플레이부(13), 제1메모리(14), 제2메모리(15), 프로세서(16)의 구성을 포함하고, 입력수신부(17)를 더 포함할 수 있다. 디스플레이장치(10)는 예컨대, TV, 모바일 기기, 태블릿, PC 등으로 구현된다. 디스플레이장치(10)에 포함되는 구성은 본 발명의 일실시예에 의해 한정되지 않고, 일부 구성을 제외하여 구성되거나, 추가적인 다른 구성들을 포함하여 구현될 수 있다.
디스플레이장치(10)는 구현 가능한 복수의 기능을 제공하기 위해, 각각의 기능에 대응하는 프로그램을 실행하게 된다. 이 때, 디스플레이장치(10)는 프로그램을 실행하기 위한 인스트럭션을 처리해야 하는데, 이를 처리하는 과정에서 예외사항(exception)이 발생될 수 있다.
본 발명에 의한 디스플레이장치(10)는 상기와 같은 구성을 이용하여, 인스트럭션을 처리하는 과정에서 발생될 수 있는 예외사항 중 '정의되지 않은 인스트럭션(undefined instruction)'에 대해, 시스템의 실행이 중단되지 않도록 처리할 수 있다.
신호수신부(11)는 외부로부터 입력되는 영상신호 또는 방송신호를 수신한다. 영상신호는 예컨대, 비디오 또는 그래픽 신호를 포함할 수 있다. 신호수신부(11)는 수신되는 영상신호의 규격 및 디스플레이장치(10)의 구현 형태에 따라 다양한 형식으로 마련될 수 있다. 예를 들어, 신호수신부(11)는 방송국으로부터 송출되는 RF(Radio Frequency) 방송신호나 위성신호를 수신하는 튜너로 구현될 수 있다. 다른 예로서, 신호수신부(11)는 DVD 플레이어, 게임기, PC 등의 HDMI(High Definition Multimedia Interface) 장치로부터 영상신호를 수신할 수도 있다.
신호처리부(12)는 신호수신부(11)에서 수신된 영상신호 또는 방송신호에 대해 기 설정된 신호처리 프로세스를 수행한다. 신호처리부(12)에서 수행하는 신호처리의 예로서, 디멀티플렉싱(demultiplexing), 디코딩(decoding), 디인터레이싱 (de-interlacing), 스케일링(scaling), 노이즈 감소(noise reduction), 디테일 인핸스먼트(detail enhancement) 등이 있으며, 그 종류는 한정되지 않는다. 신호처리부(12)는 이러한 여러 기능을 통합시킨 SOC(System-On-Chip) 또는 각 프로세스를 독자적으로 수행할 수 있는 개별 구성들이 장착된 영상처리보드로 구현될 수 있다.
디스플레이부(13)는 신호처리부(12)에서 처리된 영상신호에 기초하여 영상을 표시한다. 디스플레이부(13)의 구현 방식은 한정되지 않는 바, 디스플레이부(13)는 PDP(Plasma Display Panel), LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes), 플렉시블 디스플레이(flexible display) 등 다양한 형태로 구현될 수 있다.
제1메모리(14)는 디스플레이장치(10)의 시스템 전원의 제공 유무와 무관하게 데이터를 보존할 수 있도록 플래시메모리(flash-memory)와 같은 비휘발성 메모리로 구현된다.
제1메모리(14)는 프로그램을 실행하기 위한 복수의 인스트럭션(instruction)을 저장한다. 제1메모리(14)는 저장된 복수의 인스트럭션 각각에 대해 독취(read), 기록(write), 수정(edit), 삭제(delete), 갱신(update) 등이 수행되도록 한다.
제2메모리(15)는 제1메모리(14)와 프로세서(16) 사이에 마련되는 고속 버퍼 메모리로서, 캐시메모리(cache memory) 또는 로컬메모리(local memory)라고 한다. 제2메모리(15)는 플래시메모리에 비해 고속이며 프로세서(16)에 의해 직접 액세스 가능하다. 제2메모리(15)는 프로세서(16)에 의해 자주 액세스되는 데이터나 프로그램 명령을 반복적으로 검색하지 않고 즉각 사용할 수 있도록 저장해두는 영역으로서, 예컨대 RAM으로 구현될 수 있다. 본 실시예에서의 제2메모리(15)는 별도의 구성으로 구현되는 것을 예시하나, 이는 본 발명의 일례에 불과하며, 다른 실시예로서 제2메모리(15)는, 예컨대, 프로세서(16)의 내부에 일체로 마련될 수도 있다.
입력수신부(17)는 디스플레이장치(10)의 적어도 하나의 기능을 제어하기 위한 사용자입력을 수신한다. 예로서, 입력수신부(17)는 디스플레이부(13)에 표시되는 사용자 인터페이스(User Interface)의 일부를 선택하기 위한 사용자입력을 수신할 수 있다. 입력수신부(17)는 디스플레이장치(10)의 외측에 구비된 입력패널의 형태로 구현되거나 디스플레이장치(10)와 적외선 방식으로 통신하는 리모트 컨트롤러로 구현될 수 있다. 또한, 입력수신부(17)는 디스플레이장치(10)와 연결되는 키보드, 마우스 등으로 구현될 수 있고, 디스플레이장치(10)에 마련되는 터치스크린으로 구현될 수도 있다.
프로세서(16)는 디스플레이장치(10)가 수행 가능한 복수의 기능을 제어하기 위한 제어 프로세스를 수행한다. 프로세서(16)는 CPU(Central Processing Unit)로 구현될 수 있고, 제어, 연산, 레지스터의 세 영역을 포함한다. 제어영역은 프로그램 명령어를 해석하고, 해석된 명령의 의미에 따라 디스플레이장치(10)의 각 구성으로 동작을 지시한다. 연산영역은 산술 연산 및 논리 연산을 수행하고, 제어영역의 지시에 따라 디스플레이장치(10)의 각 구성이 동작하기 위해 필요한 연산을 수행한다. 레지스터는 CPU에서 명령어를 실행하는 동안 필요한 정보들을 저장하는 기억 장소로, 디스플레이장치(10)의 각 구성에 대한 명령어 및 데이터들을 저장하고, 연산된 결과를 저장한다.
프로세서(16)는 디스플레이장치(10)의 어느 하나의 기능을 수행하기 위한 프로그램이 실행되면, 제1메모리(14)에 저장되어 있는 복수의 인스트럭션을 제2메모리(15)에 로드한다.
프로세서(16)는 제2메모리(15)에 로드된 복수의 인스트럭션을 순차적으로 인출(fetch)하여 해석(decode)하는 과정을 거친다. 이러한 해석 과정에서 복수의 인스트럭션에 문제가 없는 경우, 각각의 인스트럭션을 실행(execute)하여 프로그램이 정상적으로 진행되도록 한다.
복수의 인스트럭션을 각각 해석하는 과정에서 인스트럭션에 대해 예외사항(exception)이 발생하는 경우, 프로세서(16)는 예외사항의 각 타입에 대해 미리 설정해 놓은 예외처리 동작을 수행하도록 한다.
예외사항의 타입이 '정의되지 않은 인스트럭션(undefined instruction)'인 경우는, 예컨대, 비트 플립(bit flip)과 같은 메모리 변형(memory corruption)으로 인스트럭션을 해석할 수 없을 때 발생된다. 만일, 이 경우, 본 발명의 일 실시예에 의한 동작을 수행하지 않는다면, 예외처리 동작을 수행한 후 원래 인스트럭션으로 돌아가지 못하고, 시스템이 중단(system crash)되는 상황이 초래될 수 있다.
이러한 경우를 방지하기 위해, 프로세서(16)는 복수의 인스트럭션의 해석(decode) 과정에서 제1인스트럭션이 '정의되지 않은 인스트럭션'으로 판단된 경우, 제1메모리(14)에 저장되어 있는 제1인스트럭션을 제2메모리(15)로 재로드(reload)한다.
디스플레이장치(10)는 시스템 소프트웨어인 OS(Operating System)를 구비하고, OS는 예컨대, 제1메모리(14)에 저장되어 그 실행 시 제2메모리(15)로 로드될 수 있다. 프로세서(16)는 OS를 실행하고, OS에 의해 지원되는 프로그램의 복수의 인스트럭션 각각을 인출, 해석 및 실행하는 동작을 수행할 수 있다.
프로세서(16)는 인스트럭션을 해석(decode)하는 과정에서 인스트럭션에 대해 예외사항(exception)이 발생하는 경우, 예컨대 예외사항 핸들러(exception handler)를 실행하여 예외처리 동작을 수행하도록 할 수 있다.
예외사항 핸들러는 예외사항(exception)의 발생시 예외처리를 위한 소프트웨어로서, 프로세서(16)에 포함된 형태로 구현되거나, 프로세서(16)와는 별도로 구현될 수 있다.
예외사항 핸들러는, 인스트럭션을 해석하는 과정에서 발생되는 여러 타입의 예외사항 각각에 대해, 미리 설정해 놓은 복수의 예외처리 동작을 수행한다.
그러나, 인스트럭션을 해석하는 과정에서 ‘undefined instruction’와 같은 타입의 예외사항(exception)이 발생되는 경우, 예외사항 핸들러는 이에 대한 예외처리 동작이 설정되어 있지 않아, 직접 처리하지 못하고 시스템의 실행이 중단되는 경우가 발생하게 된다.
상기와 같은 경우를 방지하기 위해, 예외사항 핸들러는 직접 처리할 수 없는 ‘undefined instruction’과 같은 예외사항의 발생시, OS로 이를 통보하여, OS가 해당 예외사항에 대한 처리를 수행하도록 한다.
OS는 예외사항에 대한 처리를 수행한 후 다시 프로세서(16)의 예외사항 핸들러로 그 결과를 피드백하고, 프로세서(16)가 그 후속 동작을 수행하도록 한다.
상기와 같이, 프로세서(16)의 예외사항 핸들러에 의해 예외사항이 처리되지 못하는 경우에도, OS를 이용하여 원래의 인스트럭션을 복구시키는 방법으로 시스템의 실행이 중단되는 것을 막을 수 있다.
이하, 본 발명의 실시예에 의한 OS를 이용한 예외사항 처리에 관하여 구체적으로 설명한다. 설명의 편의를 위하여, OS 혹은 예외사항 핸들러를 실행하여 수행하는 프로세서(16)의 동작에 대하여, 경우에 따라 OS 혹은 예외사항 핸들러의 언급을 생략하고 간략하게 프로세서(16)의 동작으로 설명할 수 있다.
구체적으로, 프로세서(16)는 '정의되지 않은 인스트럭션'에 대해, 도 2에 도시된 예와 같이 표준처리모드(normal processing mode)에 따라 처리할 수 있다.
먼저 동작 S21에서, 제1메모리(14)에 저장된 프로그램을 실행하라는 명령이 있으면, 동작 S22에서, 제1메모리(14)에 저장된 복수의 인스트럭션이 제2메모리(15)로 로드된다. 제1메모리(14)로부터 제2메모리(15)로의 인스트럭션의 로드는, 프로세서(16)가 직접 이를 제어할 수도 있고, 혹은, 디스플레이장치(10)에 추가로 구비될 수 있는 별도의 메모리제어부에 의해 제어될 수도 있다.
다음으로, 동작 S23에서, 프로세서(16)는 제2메모리(15)로부터 복수의 인스트럭션을 순차적으로 인출(fetch)하고, 인출된 각각의 인스트럭션을 해석(decode)한다.
동작 S24에서, 프로세서(16)는 해석(decode) 과정에서 복수의 인스트럭션 중 제1인스트럭션이 해석 불가 상태인지 판단한다.
이 때, 동작 S25에서, 제1인스트럭션이 해석 불가 상태이면, 프로세서(16)는 제1메모리(14)로 제1인스트럭션의 재로드를 요청하고, 동작 S26에서, 제1메모리(14)에 저장되어 있는 제1인스트럭션이 제2메모리(15)로 재로드된다.
다음으로, 동작 S27에서, 프로세서(16)는 제2메모리(15)에 재로드된 제1인스트럭션을 인출하고, 동작 S28에서, 인출된 제1인스트럭션에 대해 다시 해석(decode)하는 과정을 거치게 된다. 이에 따라, 해석 과정에서 재로드된 제1인스트럭션에 문제가 없는 경우, 제1인스트럭션을 정상적으로 실행하게 된다.
상기와 같이, 본 발명의 실시예에 의하면, 메모리 변형 등으로 인스트럭션이 해석 불가한 경우, 의도하고자 한 원래의 인스트럭션으로 복원하여 프로그램을 정상적으로 실행시킬 수 있다.
도 3은 본 발명의 일실시예에 따른 표준처리모드에서 인스트럭션을 처리하기 위한 각 구성 간 인터페이스를 도시한 예이다. 도 3에 도시된 바와 같이, 본 발명의 디스플레이장치(10)에 있어, 어느 하나의 기능을 제공하기 위한 프로그램이 실행되면, 제1메모리(14)에 해당 프로그램을 실행할 수 있도록 저장되어 있는 복수의 인스트럭션을 제2메모리(15)로 로드한다.
이 때, 프로세서(16)는 제2메모리(15)로 로드된 복수의 인스트럭션(151), 즉 제1인스트럭션(instruction 1), 제2인스트럭션(instruction 2), 제3인스트럭션(instruction 3) 등을 순차적으로 인출(fetch)한다.
일실시예로서, 프로세서(16)는 제1인스트럭션을 인출(fetch)하고, 인출된 제1인스트럭션을 해석(decode)하는 과정을 거친 후 실행(execute)하도록 한다. 이 때, 제1인스트럭션을 해석하는 과정에서 '정의되지 않은 인스트럭션'과 같은 예외사항이 발생하는 경우, 미리 설정해놓은 예외사항에 대한 처리를 수행하도록 한다.
이 때, 프로세서(16)는 예외사항에 대한 처리를 수행함에 있어, 원래의 제1인스트럭션을 복원하는 과정을 포함한다. 이를 위해, 프로세서(16)는 제1메모리(14)로부터 저장되어 있는 원래의 제1인스트럭션을 제2메모리(15)로 재로드한다. 예로서, 프로세서(16)는 제1메모리(14) 중 제1인스트럭션에 해당하는 라인 부분만을 제2메모리(15)에 재로드할 수 있다.
이에 따라, 프로세서(16)는 제2메모리(15)에 재로드된 제1인스트럭션을 다시 인출하여 해석하고, 해석 과정에서 예외사항이 발생되지 않는 경우 제1인스트럭션을 실행하도록 한다.
이하 도 4 내지 6에서는, 본 발명의 디스플레이장치(10)에서 인스트럭션에 대해 예외사항이 발생되는 경우의 처리 방법을 설명하도록 한다.
도 4에 도시된 예에서, 프로세서(16)는 제1메모리(14)로부터 제2메모리(15)로 로드된 복수의 인스트럭션 중 가장 먼저 제1인스트럭션(41)을 제2메모리(15)로부터 인출(fetch)하여, 해석(decode) 및 실행(execute)한다. 이 때, 제1인스트럭션(41)을 해석하는 동안 제2인스트럭션(42)을 인출하고, 제1인스트럭션(41)이 실행되는 동안 제2인스트럭션(42)을 해석한다.
마찬가지로 제3인스트럭션(43), 제4인스트럭션(45) 및 제5인스트럭션(45)에 대해서도 소정 시간 간격을 두고 인출, 해석 및 실행의 과정을 순차적으로 수행하도록 한다.
이와 같이, 프로그램을 실행하기 위한 복수의 인스트럭션을 파이프라인(pipeline) 방식으로 순차적으로 처리함에 의해, 복수의 인스트럭션을 동시에 처리하는 경우에 비해 처리 효율을 높일 수 있다.
도 5는 본 발명의 일실시예에 따른 인스트럭션의 해석 과정에서 발생되는 여러 타입의 예외사항을 나타낸 표이다. 본 발명에 있어, 프로세서(16)는 제2메모리(15)로부터 복수의 인스트럭션 각각을 순차적으로 인출하여 해석하는 과정에서, 예외사항(exception)(51)이 발생하는 경우 예외사항의 각 타입(type) 별로 미리 설정해놓은 예외처리 동작을 수행하도록 한다.
일실시예로서, 프로세서(16)가 예컨대 ARM으로 구현된 경우, 도시된 표와 같이, 'Reset', 'Data Abort', 'FIQ', 'IRQ', 'SWI', 'Undefined Instruction'과 같은 여러 타입의 예외사항(51)이 발생될 수 있다
예로서, 'Reset'은 전원이 온되거나 리셋되었을 때 발생되고, 'Data Abort'는 액세스하려는 주소가 액세스할 수 없는 주소이거나, 인스트럭션을 인출하지 못한 경우에 발생된다. 또한, 'FIQ'는 빠른 인터럽트(Fast Inerrupt) 요청에 의해, 'IRQ'는 하드웨어적인 인터럽트 요청에 의해 발생된다. 'Undefined Instruction'은 인스트럭션을 해석(decode)하는 과정에서 해석이 불가한 경우 발생되는데, 보통 메모리 변형(memory corruption)이 일어났을 때 발생되고, 다른 경우에 있어 사용하지 않는 코드를 일부러 삽입하여 디버깅이 가능하도록 한 경우에 발생된다.
상기와 같이 예외사항(51)이 발생하면, 프로세서(16)는 동작을 멈추고 해당되는 타입에 설정되어 있는 어드레스((52)로 점프(Jump)시켜, 예외처리 동작을 수행하도록 한다.
도 6은 본 발명의 일실시예에 따른 인스트럭션이 해석 불가한 경우 예외처리 동작을 수행하는 예이다. 도 6에 도시된 바와 같이, 프로세서(16)는 제2메모리(15)로부터 인출(fetch)한 제1인스트럭션을 해석하는 과정에서 'Undefined Instruction'에 해당하는 예외사항(exception)(61)이 발생한 경우, 복수의 예외처리 동작(62)을 순차적으로 수행한다.
도시된 예에서는, 프로세서(16)가 ARM 으로 구현된 경우 'Undefined Instruction'에 대한 복수의 예외처리 동작(62)을 보여준다. 예로서, 복수의 예외처리 동작은(62)은 CPSR(Current Program Status Register) 백업, Exception 타입에 따른 모드 변경, 메모리 변형(memory corruption) 가능성 검토, 인스트럭션을 캐쉬에 재로드, Arm state 변경, 인터럽트 비활성화, LR(link Register)에 PC(Program counter)값 백업, Exception vector로 이동, exception handler 수행, 백업한 PC값 복원, 및 CPSR 복원을 포함하고, 순차적으로 처리된다.
상기와 같은 예외처리 동작은 프로세서(16)의 구현 형태에 따라 달라질 수 있으며, 일부 동작을 추가하거나 제외하여 구현될 수 있다.
도 7은 본 발명의 일실시예에 따른 해석 불가한 인스트럭션을 신뢰처리모드에 따라 처리하는 예를 도시한 흐름도이다. 도 7에 도시된 바와 같이, 본 발명의 프로세서(16)는 인스트럭션의 해석(decode) 과정에서 발생되는 예외사항(exception)인 '정의되지 않은 인스트럭션(undefined instruction)'에 대해, 신뢰처리모드(reliability processing mode)에 따라 처리할 수 있다.
먼저 동작 S71에서, 프로세서(16)는 제1메모리(14)로 프로그램의 실행을 명령하면, 동작 S72에서, 제1메모리(14)에 저장된 복수의 인스트럭션이 제2메모리(15)로 로드된다.
다음으로, 동작 S73에서, 프로세서(16)는 제2메모리(15)로부터 복수의 인스트럭션을 순차적으로 인출(fetch)하고, 인출된 각각의 인스트럭션을 해석(decode)한다.
동작 S74에서, 프로세서(16)는 해석(decode) 과정에서 복수의 인스트럭션 중 제1인스트럭션이 해석 불가 상태인지 판단한다.
이 때, 동작 S75에서, 제1인스트럭션이 해석 불가 상태이면, 프로세서(16)는 제2메모리(15)에 로드된 복수의 인스트럭션(도 8의 부호 '151' 참조)과 동일한 클론(clone)(도 8의 부호 '152' 참조)을 생성한다. 여기서, 클론(152)은 제1인스트럭션에 대해 발생한 예외사항이 메모리의 변형(memory corruption)에 의한 것인지 판단하기 위해, 제2메모리(15)에 로드된 복수의 인스트럭션(151)을 동일하게 생성한 것이다.
다음으로, 동작 S76에서, 프로세서(16)는 클론(152)과 제2메모리(15)에 로드된 복수의 인스트럭션(151) 간 매칭 여부를 판단한다. 동작 S77에서, 매칭되지 않는 경우, 프로세서(16)는 제1메모리(14)로 복수의 인스트럭션의 재로드를 요청한다.
이에 따라, 동작 S78에서, 제1메모리(14)에 저장되어 있는 복수의 인스트럭션이 제2메모리(15)로 재로드된다.
다음으로, 동작 S79에서, 프로세서(16)는 제2메모리(15)에 재로드된 복수의 인스트럭션 중 제1인스트럭션을 인출하고, 인출된 제1인스트럭션에 대해 다시 해석(decode)하는 과정을 거치게 된다. 이에 따라, 해석 과정에서 재로드된 제1인스트럭션에 문제가 없는 경우, 제1인스트럭션을 정상적으로 실행하게 된다.
상기와 같이, 본 발명의 실시예에 의하면, 메모리 변형 등으로 인스트럭션이 해석 불가한 경우, 해당 인스트럭션 뿐만 아니라 전체 인스트럭션을 모두 검토하여 신뢰성을 높이고, 새롭게 발생될 수 있는 메모리 변형 가능성을 방지할 수 있다.
도 8은 본 발명의 일실시예에 따른 신뢰처리모드에서 인스트럭션을 처리하기 위한 각 구성 간 인터페이스를 도시한 예이다. 도 8에 도시된 바와 같이, 본 발명의 디스플레이장치(10)에 있어, 어느 하나의 기능을 제공하기 위한 프로그램이 실행되면, 제1메모리(14)에 해당 프로그램을 실행할 수 있도록 저장되어 있는 복수의 인스트럭션을 제2메모리(15)로 로드한다.
이 때, 프로세서(16)는 제2메모리(15)로 로드된 복수의 인스트럭션(151), 즉 제1인스트럭션(instruction 1), 제2인스트럭션(instruction 2), 제3인스트럭션(instruction 3) 등을 순차적으로 인출(fetch)한다.
일실시예로서, 프로세서(16)는 제1인스트럭션을 인출(fetch)하고, 인출된 제1인스트럭션을 해석(decode)하는 과정을 거친 후 실행(execute)하도록 한다. 이 때, 제1인스트럭션을 해석하는 과정에서 '정의되지 않은 인스트럭션(undefined instruction)'과 같은 예외사항이 발생하는 경우, 미리 설정해놓은 예외사항에 대한 처리를 수행하도록 한다.
이 때, 프로세서(16)는 예외사항에 대한 처리를 수행함에 있어, 원래의 제1인스트럭션을 복원하는 과정을 포함한다. 이를 위해, 프로세서(16)는 제2메모리(15)에 로드된 복수의 인스트럭션(151)과 동일한 클론(152)을 생성한다.
프로세서(16)는 예외사항이 발생된 제1인스트럭션 뿐만 아니라, 복수의 인스트럭션 전체에 문제가 없는지를 추가적으로 검토하기 하기 위해, 제2메모리(15)로 로드된 복수의 인스트럭션(151)과 새로 생성된 클론(152)을 비교한다.
비교 결과, 복수의 인스트럭션(151)과 클론(152)이 동일하지 않은 경우, 즉, 어느 하나의 인스트럭션이라도 일치하지 않는 경우, 프로세서(16)는 제1메모리(14)에 저장되어 있는 복수의 인스트럭션 전체를 제2메모리(15)에 재로드한다. 이 경우, 제1인스트럭션에 대해 발생된 예외사항이 메모리의 변형으로 인한 것으로 판단할 수 있고, 제1인스트럭션 외에 다른 인스트럭션에서도 메모리 변형 문제가 발생할 수 있는지 미리 판단하여 조치를 취할 수 있다.
그러나, 비교 결과, 복수의 인스트럭션(151)과 클론(152)이 동일한 경우, 즉, 전체 인스트럭션이 모두 일치하는 경우, 프로세서(16)는 프로그램의 실행을 중단시킨다. 이러한 경우는 제1인스트럭션에 대해 발생된 예외사항이 메모리의 변형으로 인한 것이 아니라, 프로그램 자체의 오류 등 다른 원인에 의한 것으로 볼 수 있다.
이에 따라, 프로세서(16)는 제2메모리(15)에 재로드된 복수의 인스트럭션 중 제1인스트럭션을 다시 인출하여 해석하고, 해석 과정에서 예외사항이 발생되지 않는 경우 제1인스트럭션을 실행하도록 한다.
도 9는 본 발명의 일실시예에 따른 해석 불가한 인스트럭션을 빠른처리모드에 따라 처리하는 예를 도시한 흐름도이다. 도 9에 도시된 바와 같이, 프로세서(16)는 '정의되지 않은 인스트럭션'에 대해, 빠른처리모드(fast processing mode)에 따라 처리할 수 있다.
먼저 동작 S91에서, 프로세서(16)는 제1메모리(14)로 프로그램의 실행을 명령하면, 동작 S92에서, 제1메모리(14)에 저장된 복수의 인스트럭션이 제2메모리(15)로 로드된다.
다음으로, 동작 S93에서, 프로세서(16)는 제2메모리(15)로부터 복수의 인스트럭션을 순차적으로 인출(fetch)하고, 인출된 각각의 인스트럭션을 해석(decode)한다.
동작 S94에서, 프로세서(16)는 해석(decode) 과정에서 복수의 인스트럭션 중 제1인스트럭션이 해석 불가 상태인지 판단하고, 동작 S95에서, 제1인스트럭션이 해석 불가 상태이면, 프로세서(16)는 프로그램의 실행을 중지시킨다.
상기와 같이, 본 발명의 실시예에 의하면, 인스트럭션이 해석 불가한 경우, 경우에 따라 곧바로 프로그램의 실행을 중지시키고, 개발자에게 디버깅 정보를 제공해줄 수 있다.
도 10은 본 발명의 일실시예에 따른 해석 불가한 인스트럭션을 설정된 검사 모드에 따라 처리하는 예를 도시한 흐름도이다. 먼저 동작 S101에서, 제1메모리(14)의 변형(memory corruption)에 의해 예외사항(exception)이 발생되면, 예외처리 모드로 진입한다. 이 때, 예외사항의 타입별로 설정된 복수의 예외처리 동작을 수행하게 된다.
동작 S102에서, 프로세서(16)는 제2메모리(15)에 로드된 복수의 인스트럭션 각각을 인출하여 해석하는 과정에서, 제1인스트럭션이 해석 가능한지 판단한다. 판단결과, 제1인스트럭션이 해석 가능하면, 동작 S108에서, 제1인스트럭션을 실행한다.
그러나, 판단 결과, 제1인스트럭션이 해석 불가한 상태이면, 동작 S103에서, 인스트럭션 검사모드를 실행한다. 여기서, 인스트럭션 검사모드는 사용자에 의해 기 설정되거나, 예외사항(exception) 발생시 화면에 표시되는 사용자 인터페이스(User Interface)를 통해 설정될 수 있다.
상기와 같이 설정된 인스트럭션 검사모드에 따라, 동작 S1042에서 표준처리모드(도 2 및 도 3 참조)를 수행하거나, 동작 S1043에서, 신뢰처리모드(도 7 및 도 8 참조)를 수행할 수 있다. 또는, 동작 S1041에서 빠른처리모드(도 9 참조)를 수행할 수도 있다.
다음으로, 인스트럭션 검사모드의 실행이 완료되면, 동작 S105에서, 제1인스트럭션이 해석 가능한지 다시 판단한다. 이 때, 제1인스트럭션이 해석 가능한 상태이면, 동작 S108에서, 제1인스트럭션을 실행한다.
그러나, 인스트럭션 검사모드의 실행에도 불구하고, 제1인스트럭션이 또 다시 해석 불가한 상태이면, 동작 S106에서, 강제종료 신호를 전송한다. 이에 따라, 동작 S107에서, 프로그램의 실행이 중지되도록 한다.
도 11 은 본 발명의 일실시예에 따른 해석 불가한 인스트럭션의 검사모드를 설정하기 위한 UI(User Interface)를 도시한 예이다. 도 11에 도시된 바와 같이, 본 발명의 디스플레이장치(10)는 메모리 변형에 의해 예외사항이 발생되어 해석 불가한 인스트럭션에 대해, 사용자가 직접 인스트럭션의 검사모드를 설정할 수 있다.
예로서, 디스플레이장치(10)는 디스플레이부(13)에 '정의되지 않은 인스트럭션(undefined instruction)'에 대한 검사모드 설정 UI(User Interface)(110)를 표시할 수 있다. 사용자는 검사모드 설정 UI(10)를 통해 세 가지 검사모드, 즉, 빠른처리모드(111), 표준처리모드(112) 및 신뢰처리모드(113) 중 하나를 체크하여 선택할 수 있다.
이 때, 사용자가 표준처리모드(112)를 선택하여 설정한 경우, 제1인스트럭션에 대해 예외사항으로서 'undefined instruction'이 발생되면, 기 설정된 표준처리모드(112)에 따라 제1메모리(14)에 저장되어 있는 제1인스트럭션을 재로드한다. 이에 따라, 원래의 제1인스트럭션을 복원하고, 프로그램을 정상 동작시킬 수 있다.
또한, 사용자가 신뢰처리모드(113)를 선택하여 설정한 경우에는, 제1인스트럭션에 대해 예외사항으로서 'undefined instruction'이 발생되면, 기 설정된 신뢰처리모드(113)에 따라 제2메모리(15)에 로드된 복수의 인스트럭션(151)과 동일한 클론(152)을 생성하고, 상호 간 매칭되지 않는 경우 제1메모리(14)에 저장되어 있는 복수의 인스트럭션을 모두 재로드한다. 이에 따라, 원래의 제1 인스트럭션을 복원할 뿐만 아니라, 다른 인스트럭션에 대해서도 예외사항이 발생될 가능성을 줄일 수 있다.
사용자가 빠른처리모드(111)를 선택하여 설정한 경우에는, 제1인스트럭션에 대해 예외사항으로서 'undefined instruction'이 발생되면, 곧바로 프로그램의 실행을 중지시키고 사용자에게 디버깅 정보를 제공할 수도 있다.
일실시예로서, 디스플레이장치(10)는 화면에 표시되는 추가적인 UI(미도시)에 대한 사용자 입력에 따라, 제2메모리(15)에 로드된 복수의 인스트럭션 중 제1메모리(14)에 저장된 복수의 인스트럭션과 비교할 범위를 설정할 수도 있다.
예로서, 제2메모리에 로드된 복수의 인스트럭션(151)과 클론(152)를 비교함에 있어, 복수의 인스트럭션 각각을 모두 비교할 것인지, 예외사항이 발생한 제1인스트럭션과 그 주변의 소정 개수의 인스트럭션만을 비교할 것인지를 사용자가 UI(미도시)를 통해 설정할 수 있다.
상기와 같이, 본 발명의 실시예에 의하면, 해석 불가한 인스트럭션에 대해 제품 개발자가 설정한 검사 방법 및 검사 범위를 적용하여 보다 신뢰성 있는 검사가 이루어지도록 할 수 있다.
이상, 바람직한 실시예를 통하여 본 발명에 관하여 상세히 설명하였으나, 본 발명은 이에 한정되는 것은 아니며, 특허청구범위 내에서 다양하게 실시될 수 있다.
10: 디스플레이장치
11: 신호수신부
12: 신호처리부
13: 디스플레이부
14: 제1메모리
15: 제2메모리
16: 프로세서
17: 입력수신부

Claims (18)

  1. 디스플레이장치에 있어서,
    프로그램을 실행하기 위한 복수의 인스트럭션을 저장하는 제1메모리와;
    제2메모리와;
    상기 프로그램의 실행에 대응하여, 상기 제1메모리에 저장된 상기 복수의 인스트럭션을 상기 제2메모리에 로드하여,
    상기 제2메모리에 로드된 복수의 인스트럭션을 순차적으로 인출(fetch)하여 해석(decode)하고,
    상기 복수의 인스트럭션 중 제1인스트럭션이 해석 불가 상태로 판단되면, 상기 제1메모리에 저장된 제1인스트럭션을 상기 제2메모리에 재로드하여, 상기 재로드된 제1인스트럭션을 인출하여 해석하는 프로세서를 포함하는 디스플레이장치.
  2. 제1항에 있어서,
    상기 프로세서는, 상기 제1인스트럭션이 해석 불가 상태로 판단되면, 상기 제1메모리 중 제1인스트럭션에 해당하는 라인 부분을 상기 제2메모리에 재로드하는 디스플레이장치.
  3. 제1항에 있어서,
    상기 프로세서는, 상기 제1인스트럭션이 해석 불가 상태로 판단되면, 상기 제2메모리에 로드된 복수의 인스트럭션과 동일한 클론을 생성하고, 상기 클론과 상기 제2메모리에 로드된 복수의 인스트럭션 간 매칭 여부를 판단하고, 매칭되지 않는 경우, 상기 제1메모리에 저장된 복수의 인스트럭션을 상기 제2메모리에 재로드하는 디스플레이장치.
  4. 제3항에 있어서,
    상기 프로세서는, 상기 클론과 상기 제2메모리에 로드된 복수의 인스트럭션이 매칭되는 경우, 상기 프로그램의 실행을 중지시키는 디스플레이장치.
  5. 제1항에 있어서,
    상기 프로세서는, 상기 제1인스트럭션이 해석 불가 상태로 판단되면, 상기 저장된 제1인스트럭션을 상기 제2메모리에 재로드하는 동작을 포함하는 복수의 예외처리 동작을 순차적으로 수행하는 디스플레이장치.
  6. 제1항에 있어서,
    상기 프로세서는, 상기 제1인스트럭션이 해석 불가 상태로 판단되면, 상기 프로그램의 실행을 중지시키는 디스플레이장치.
  7. 제1항에 있어서,
    사용자입력을 수신하는 입력수신부를 더 포함하고,
    상기 프로세서는, 상기 수신되는 사용자입력에 따라 복수의 인스트럭션 검사 모드 중 하나의 모드로 설정하고, 상기 제1인스트럭션이 해석 불가 상태로 판단되면 상기 설정된 모드에 따라 상기 제2메모리에 로드된 제1인스트럭션을 상기 제1메모리에 저장된 제1인스트럭션과 비교하는 방법을 결정하는 디스플레이장치.
  8. 제3항에 있어서,
    상기 프로세서는, 사용자입력에 따라, 상기 제2메모리에 로드된 복수의 인스트럭션 중 상기 클론과 비교할 범위를 설정하는 디스플레이장치.
  9. 컴퓨터프로그램제품에 있어서,
    복수의 프로그램명령이 저장된 메모리와;
    프로세서를 포함하고,
    상기 프로그램명령은, 상기 프로세서에 의해 실행되면, 디스플레이장치의 프로그램의 실행에 대응하여, 상기 디스플레이장치의 제1메모리에 저장된 복수의 인스트럭션을 상기 디스플레이장치의 제2메모리에 로드하여, 상기 제2메모리에 로드된 복수의 인스트럭션을 순차적으로 인출(fetch)하여 해석(decode)하고, 상기 복수의 인스트럭션 중 제1인스트럭션이 해석 불가 상태로 판단되면, 상기 제1메모리에 저장된 제1인스트럭션을 상기 제2메모리에 재로드하여, 상기 재로드된 제1인스트럭션을 인출하여 해석하는 것을 포함하는 컴퓨터프로그램제품.
  10. 제 9항에 있어서,
    상기 프로그램명령은, 상기 제1인스트럭션이 해석 불가 상태로 판단되면, 상기 제2메모리에 로드된 복수의 인스트럭션과 동일한 클론을 생성하고, 상기 클론과 상기 제2메모리에 로드된 복수의 인스트럭션 간 매칭 여부를 판단하고, 매칭되지 않는 경우, 상기 제1메모리에 저장된 복수의 인스트럭션을 상기 제2메모리에 재로드하는 것을 포함하는 컴퓨터프로그램제품.
  11. 프로그램을 실행하기 위한 복수의 인스트럭션을 저장하는 제1메모리와, 제2메모리를 포함하는 디스플레이장치의 제어방법에 있어서,
    상기 프로그램의 실행에 대응하여, 상기 제1메모리에 저장된 상기 복수의 인스트럭션을 상기 제2메모리에 로드하는 단계와;
    상기 제2메모리에 로드된 복수의 인스트럭션을 순차적으로 인출(fetch)하여 해석(decode)하는 단계와;
    상기 복수의 인스트럭션 중 제1인스트럭션이 해석 불가 상태로 판단되면, 상기 제1메모리에 저장된 제1인스트럭션을 상기 제2메모리에 재로드하는 단계와;
    상기 재로드된 제1인스트럭션을 인출하여 해석하는 단계를 포함하는 디스플레이장치의 제어방법.
  12. 제11항에 있어서,
    상기 제1인스트럭션이 해석 불가 상태로 판단되면, 상기 제1메모리 중 제1인스트럭션에 해당하는 라인 부분을 상기 제2메모리에 재로드하는 단계를 포함하는 디스플레이장치의 제어방법.
  13. 제11항에 있어서,
    상기 제1인스트럭션이 해석 불가 상태로 판단되면, 상기 제2메모리에 로드된 복수의 인스트럭션과 동일한 클론을 생성하는 단계와;
    상기 클론과 상기 제2메모리에 로드된 복수의 인스트럭션 간 매칭 여부를 판단하는 단계와;
    상기 판단 결과 매칭되지 않는 경우, 상기 제1메모리에 저장된 복수의 인스트럭션을 상기 제2메모리에 재로드하는 단계를 포함하는 디플레이장치의 제어방법.
  14. 제13항에 있어서,
    상기 클론과 상기 제2메모리에 로드된 복수의 인스트럭션이 매칭되는 경우, 상기 프로그램의 실행을 중지시키는 단계를 포함하는 디스플레이장치의 제어방법.
  15. 제11항에 있어서,
    상기 제1인스트럭션이 해석 불가 상태로 판단되면, 상기 저장된 제1인스트럭션을 상기 제2메모리에 재로드하는 동작을 포함하는 복수의 예외처리 동작을 순차적으로 수행하는 단계를 포함하는 디스플레이장치의 제어방법.
  16. 제11항에 있어서,
    상기 제1인스트럭션이 해석 불가 상태로 판단되면, 상기 프로그램의 실행을 중지시키는 단계를 포함하는 디스플레이장치의 제어방법.
  17. 제11항에 있어서,
    사용자입력을 수신하는 단계와;
    상기 수신되는 사용자입력에 따라 복수의 인스트럭션 검사 모드 중 하나의 모드로 설정하는 단계와;
    상기 제1인스트럭션이 해석 불가 상태로 판단되면 상기 설정된 모드에 따라 상기 제2메모리에 로드된 제1인스트럭션과 상기 제1메모리에 저장된 제1인스트럭션 간 매칭 방법을 결정하는 단계를 포함하는 디스플레이장치의 제어방법.
  18. 제13항에 있어서,
    사용자입력에 따라, 상기 제2메모리에 로드된 복수의 인스트럭션 중 상기 클론과 비교할 범위를 설정하는 단계를 포함하는 디스플레이장치의 제어방법.
KR1020170126986A 2017-09-29 2017-09-29 디스플레이장치 및 그 제어방법 KR20190037534A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170126986A KR20190037534A (ko) 2017-09-29 2017-09-29 디스플레이장치 및 그 제어방법
PCT/KR2018/005589 WO2019066182A1 (ko) 2017-09-29 2018-05-16 디스플레이장치 및 그 제어방법
US16/646,321 US11188333B2 (en) 2017-09-29 2018-05-16 Display device and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170126986A KR20190037534A (ko) 2017-09-29 2017-09-29 디스플레이장치 및 그 제어방법

Publications (1)

Publication Number Publication Date
KR20190037534A true KR20190037534A (ko) 2019-04-08

Family

ID=65901694

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170126986A KR20190037534A (ko) 2017-09-29 2017-09-29 디스플레이장치 및 그 제어방법

Country Status (3)

Country Link
US (1) US11188333B2 (ko)
KR (1) KR20190037534A (ko)
WO (1) WO2019066182A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11645961B2 (en) * 2021-04-05 2023-05-09 Samsung Electronics Co., Ltd. Method for controlling scaling of display, and circuit and electronic device supporting the same

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4745605A (en) * 1986-08-19 1988-05-17 Amadahl Corporation Control word error detection and classification
JP3566469B2 (ja) * 1996-08-16 2004-09-15 独立行政法人 科学技術振興機構 プログラムによって命令をフェッチするコンピュータ方式
US5889975A (en) * 1996-11-07 1999-03-30 Intel Corporation Method and apparatus permitting the use of a pipe stage having an unknown depth with a single microprocessor core
US7539878B2 (en) * 2001-09-19 2009-05-26 Freescale Semiconductor, Inc. CPU powerdown method and apparatus therefor
US20060200654A1 (en) 2005-03-04 2006-09-07 Dieffenderfer James N Stop waiting for source operand when conditional instruction will not execute
KR20070050288A (ko) * 2005-11-10 2007-05-15 삼성전자주식회사 디스플레이장치
US7925867B2 (en) * 2008-01-23 2011-04-12 Arm Limited Pre-decode checking for pre-decoded instructions that cross cache line boundaries
KR101539778B1 (ko) * 2009-06-17 2015-07-27 엘지전자 주식회사 부팅 중에 사용자에게 정보를 제공할 수 있는 디스플레이 장치 및 그 구동 방법
JP2011053263A (ja) * 2009-08-31 2011-03-17 Seiko Epson Corp 画像処理装置、画像処理方法、画像出力システム、プログラム及び記録媒体
KR101854671B1 (ko) 2011-11-15 2018-05-08 삼성전자주식회사 소프트웨어 파이프라인이 적용된 루프의 프롤로그와 에필로그에서 루프 외부의 명령어를 실행시키는 장치 및 방법
KR20160108754A (ko) * 2015-03-06 2016-09-20 주식회사 에이디칩스 파이프라인 구조의 프로세서에서의 무조건 분기 명령어 처리 방법
KR20170067986A (ko) * 2015-12-09 2017-06-19 삼성전자주식회사 프로세서, 이를 포함하는 컴퓨팅 시스템 및 프로세서의 구동 방법

Also Published As

Publication number Publication date
WO2019066182A1 (ko) 2019-04-04
US11188333B2 (en) 2021-11-30
US20200285475A1 (en) 2020-09-10

Similar Documents

Publication Publication Date Title
US9213625B1 (en) Method and apparatus for performing automated user-interface layout testing
US7401210B2 (en) Selecting subroutine return mechanisms
US8863088B2 (en) Simulating a line of source code in a debugging tool
US7739553B2 (en) System crash analysis using path tracing technologies
US10776129B2 (en) Method and apparatus for controlling a startup bootstrap program of an intelligent TV set
US20130283100A1 (en) Testing device
US20120331449A1 (en) Device, method and computer program product for evaluating a debugger script
US20080282229A1 (en) Apparatus and method of detecting errors in embedded software
US20040073780A1 (en) Single-step processing and selecting debugging modes
US7945900B2 (en) Debugging tool for debugging multi-threaded programs
US9038185B2 (en) Execution of multiple execution paths
US20100153786A1 (en) Processor, multiprocessor, and debugging method
US20080229141A1 (en) Debugging method
US8387012B2 (en) Determining deltas in a spatial locality of a function call graph in a source controlled system
US20080307397A1 (en) Program Analysis by Partial Emulation
KR20190032861A (ko) 전자 장치 및 그의 제어 방법
US20140082582A1 (en) Resource Tracker
US6532499B1 (en) Method for switching a plurality of key functions allocated to a special key
KR20190037534A (ko) 디스플레이장치 및 그 제어방법
US8930905B2 (en) System and method for providing a guideline for optimizing platform
US9256651B1 (en) Inheritance of properties files with locale chain support
US20100088544A1 (en) Arithmetic device for concurrently processing a plurality of threads
US9588741B2 (en) Methods, apparatuses and computer program products for improving productivity for building applications
KR20080030319A (ko) 컴퓨터시스템 및 그 제어방법
KR20090016286A (ko) 컴퓨터 시스템 및 그 부팅제어방법