KR101920719B1 - 논리 장치, 논리 장치를 포함하는 디지털 필터 및 논리 장치를 제어하는 방법 - Google Patents

논리 장치, 논리 장치를 포함하는 디지털 필터 및 논리 장치를 제어하는 방법 Download PDF

Info

Publication number
KR101920719B1
KR101920719B1 KR1020120131110A KR20120131110A KR101920719B1 KR 101920719 B1 KR101920719 B1 KR 101920719B1 KR 1020120131110 A KR1020120131110 A KR 1020120131110A KR 20120131110 A KR20120131110 A KR 20120131110A KR 101920719 B1 KR101920719 B1 KR 101920719B1
Authority
KR
South Korea
Prior art keywords
storage element
setting
block
data
volatile storage
Prior art date
Application number
KR1020120131110A
Other languages
English (en)
Other versions
KR20140064134A (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 KR1020120131110A priority Critical patent/KR101920719B1/ko
Priority to US13/963,015 priority patent/US10051265B2/en
Priority to CN201310391990.1A priority patent/CN103824580B/zh
Priority to EP13189567.4A priority patent/EP2733851B1/en
Publication of KR20140064134A publication Critical patent/KR20140064134A/ko
Priority to US16/043,851 priority patent/US10554994B2/en
Application granted granted Critical
Publication of KR101920719B1 publication Critical patent/KR101920719B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C14/00Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
    • G11C14/0054Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a SRAM cell
    • G11C14/009Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a SRAM cell and the nonvolatile element is a resistive RAM element, i.e. programmable resistors, e.g. formed of phase change or chalcogenide material
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/17758Structural details of configuration resources for speeding up configuration or reconfiguration
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/17772Structural details of configuration resources for powering on or off
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object

Abstract

논리 장치는 복수의 동작 모드들에 대응하는 동작들이 수행가능하도록 설정가능한 하나의 기능 블록, 복수의 동작 모드들 중 어느 하나에 따른 동작이 기능 블록에서 수행가능하도록 기능 블록을 설정하는 설정 블록, 기능 블록이 복수의 동작 모드들 중 어느 하나에 따른 동작을 수행하도록 설정 블록을 제어하는 컨트롤러를 포함한다.

Description

논리 장치, 논리 장치를 포함하는 디지털 필터 및 논리 장치를 제어하는 방법{Logic device, digital filter including the same, and method to control the same}
논리 장치, 논리 장치를 포함하는 디지털 필터 및 논리 장치를 제어하는 방법이 개시된다.
사용자에 의하여 임의 설계가 용이한 논리 장치가 존재한다. 사용자가 희망하는 복수의 동작들이 수행가능하도록, 논리 장치가 설정 또는 재설정될 수 있다. 예를 들어, 논리 장치는 PLD(Programmable Logic Device)와 같은 형태로 구현될 수 있다.
효율적으로 설정될 수 있는 논리 장치, 논리 장치를 포함하는 디지털 필터 및 논리 장치를 제어하는 방법이 개시된다. 또한, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다. 해결하려는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상기 기술적 과제를 해결하기 위한 논리 장치는 복수의 동작 모드(operation mode)들에 대응하는 동작들이 수행가능하도록 설정가능한(configurable) 하나의 기능 블록(function block); 상기 복수의 동작 모드들 중 어느 하나에 따른 동작이 상기 기능 블록에서 수행가능하도록 상기 기능 블록을 설정하는 설정데이터(configurable data)를 기록(writing)하기 위한 하나 또는 복수의 비휘발성 저장 소자들을 포함하는 설정 블록(configuration block); 및 상기 기능 블록이 상기 복수의 동작 모드들 중 어느 하나에 따른 동작을 수행하도록, 상기 설정 블록을 제어하는 컨트롤러;를 포함한다.
상기 다른 기술적 과제를 해결하기 위한 디지털 필터는 필터 기능에 따른 복수의 동작 모드들에 대응하는 동작들이 수행가능하도록 설정가능한 논리 장치를 포함한다.
상기 또 다른 기술적 과제를 해결하기 위한 인코딩 작업을 수행하는 비디오 코덱은 소정의 인트라 예측 모드에 따른 복수의 연산들에 대응하는 복수의 동작 모드들 각각에 따른 동작을 수행가능하도록 설정가능한 디지털 필터를 이용하여, 예측 작업을 수행하는 인트라 예측기;를 포함하고, 상기 디지털 필터는 복수의 논리 장치들을 이용하여 상기 복수의 동작 모드들 각각에 따른 동작들이 수행가능하도록 설정가능하고, 상기 논리 장치들 각각은 상기 복수의 동작 모드들에 대응하는 동작들이 수행가능하도록 설정가능한 하나의 기능 블록; 상기 복수의 동작 모드들 중 어느 하나에 따른 동작이 상기 기능 블록에서 수행가능하도록 상기 기능 블록을 설정하는 설정데이터를 기록하기 위한 하나 또는 복수의 비휘발성 저장 소자들을 포함하는 설정 블록; 및 상기 기능 블록이 상기 복수의 동작 모드들 중 어느 하나에 따른 동작을 수행하도록, 상기 설정 블록을 제어하는 컨트롤러;를 포함한다.
상기 또 다른 기술적 과제를 해결하기 위한 복수의 동작 모드들에 따른 동작들이 수행가능하도록 설정가능한 논리 장치를 제어하는 방법은 상기 복수의 동작 모드들 중 제1 동작 모드에 따른 제1 동작을 수행하도록 상기 논리 장치를 설정하는 단계; 상기 논리 장치에서 상기 제1 동작을 수행하는 동안, 상기 논리 장치의 내부에 존재하는 비휘발성 메모리로부터 로딩된 설정데이터를 이용하여, 상기 복수의 동작 모드들 중 제2 동작 모드에 따른 제2 동작을 수행하도록 상기 논리 장치를 재설정하는 단계;를 포함한다.
상기 또 다른 기술적 과제를 해결하기 위하여 복수의 동작 모드들에 따른 동작들이 수행가능하도록 설정가능한 논리 장치를 제어하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
상기된 바에 따르면, 비휘발성 장치를 이용하여 소정의 동작을 수행하기 위하여 논리 장치를 효율적으로 설정 또는 재설정할 수 있다.
도 1은 본 실시예에 따른 논리 장치(logic device)의 일 예를 도시한 도면이다.
도 2는 도 1의 논리 장치를 포함하는 시스템의 일 예를 도시한 도면이다.
도 3은 도 1의 논리 장치의 다른 예를 도시한 구성도이다.
도 4a 내지 도 4b는 도 1의 설정 블록의 일 예인 래치의 예들을 도시한 회로도이다.
도 5a 및 도 5b는 도 4의 래치의 동작에 따른 회로의 동작을 나타내는 타이밍도들이다.
도 6은 도 1의 논리 장치가 디지털 필터에 포함되는 경우의 일 예를 나타낸 도면이다.
도 7은 도 6의 디지털 필터가 비디오 코덱에 포함되는 경우의 일 예를 나타낸 도면이다.
도 8은 도 6의 디지털 필터가 포맷 변환 필터에 포함되는 경우에 따른 다양한 변환작업들의 일 예를 나타낸 도면이다.
도 9는 논리 장치를 제어하는 방법을 나타낸 흐름도이다.
이하에서는 도면을 참조하여 실시예들을 상세히 설명한다.
도 1은 본 실시예에 따른 논리 장치(logic device)의 일 예를 도시한 도면이다. 도 1을 참조하면, 논리 장치(100)는 논리 블록(logic block)(110), 제1 비휘발성 메모리(non-volatile memory)(120), 및 컨트롤러(controller)(130)를 포함하고, 논리 블록(110)은 기능 블록(function block)(112) 및 설정 블록(configuration block)(114)을 포함한다.
도 1에 도시된 논리 장치(100)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
논리 장치(100)는 복수의 기능들 중 기정의된 기능을 수행할 수 있다. 이때, 복수의 기능들 각각은 복수의 동작 모드들에 대응하는 동작들을 포함할 수 있다. 또한, 논리 장치(100)는 기설정된 복수의 동작들 중 어느 하나를 수행하기 위하여, 설정(configuration) 또는 재설정(reconfiguration)될 수 있다. 예를 들어, 논리 장치(100)는 복수의 동작 모드(operation mode)들 중 제1 동작 모드에 따른 제1 동작이 수행가능하도록 설정될 수 있고, 또한, 논리 장치(100)는 복수의 동작 모드들 중 제2 동작 모드에 따른 제2 동작이 수행가능하도록 재설정될 수 있다. 이하에서, 설정은 재설정을 포함하는 의미로 사용될 수 있다.
이때, 복수의 기능들 및 복수의 기능들 각각에 포함되는 복수의 동작 모드들 각각은 사용자에 의하여 설정될 수 있다. 구체적으로, 사용자가 희망하는 기능에 따른 복수의 동작 모드들에 따른 동작들이 논리 장치(100)에서 수행가능하도록, 논리 장치(100)는 설정 또는 재설정될 수 있다.
또한, 본 실시예에 따른 복수의 동작 모드들은 논리 장치(100)가 사용되는 사용환경에 따라 결정될 수 있다. 예를 들어, 논리 장치(100)가 MPEG-4를 위한 포맷 변환 필터(MPEG4 format conversion filter)에 따른 기능을 수행하도록 정의된 경우, 복수의 동작 모드들은 다양한 비디오 포맷 변환(video format conversion) 모드를 포함할 수 있다. 다른 예로, 논리 장치(100)가 H.264에 따른 비디오 코덱(video codec)에 따른 기능을 수행하도록 정의된 경우, 복수의 동작 모드들은 인트라 예측(intra prediction)의 예측 모드에 따른 다양한 연산을 포함할 수 있다.
본 실시예에 따른 논리 장치(100)는 PLD(programmable logic device), FPGA(Field Programmable Gate Array), PAL(Programmable Array Logic), PLA(Programmable Logic Array) 또는 GAL(Generic Array Logic) 등이 될 수 있으나, 이에 한정되지 않는다.
논리 블록(110)은 복수의 동작 모드들에 대응하는 동작들이 수행가능한 기능 블록(112) 및 복수의 동작 모드들에 대응하여 기능 블록(112)을 설정하는 설정 블록(114)을 포함한다.
기능 블록(112)은 복수의 동작 모드들에 대응하는 동작들이 수행가능하도록 설정될 수 있다. 기능 블록(110)이 시프터(shifter)의 기능을 수행하는 경우를 예로 들면, 기능 블록(110)은 복수의 동작 모드들에 대응하는 소정의 비트 수만큼 데이터 워드(data word)를 시프팅할 수 있다.
설정 블록(114)은 복수의 동작 모드들 중 어느 하나에 따른 동작이 기능 블록(112)에서 수행가능하도록 기능 블록(112)을 설정하는 설정데이터(configurable data)를 기록(writing)하기 위한 하나 또는 복수의 비휘발성 저장 소자(미도시)들을 포함한다. 또한, 설정 블록(114)은 하나 또는 복수의 비휘발성 저장 소자들에 기록된 설정데이터를 기능 블록(112)으로 출력하는 래치(latch)를 포함할 수 있다. 예를 들면, 설정 블록(114)은 오버레이 설정(overlay configuration) 타입 또는 멀티 설정(multi configuration) 타입으로 구현될 수 있다.
이때, 오버레이 설정 타입은 설정데이터가 제1 비휘발성 메모리(120)에 저장되어 있고, 필요한 경우, 설정 블록(114)은 제1 비휘발성 메모리(120)에 저장된 데이터를 로딩하여 비휘발성 저장 소자에 기록하고, 기록된 설정데이터를 이용하여 기능 블록(112)을 설정하는 경우를 나타낸다. 또한, 멀티 설정 타입은 설정 블록(114)의 비휘발성 저장 소자에 설정데이터가 미리 기록되어 있고, 필요한 경우, 설정 블록(114)은 비휘발성 저장 소자에 미리 기록된 설정데이터를 이용하여 기능 블록(112)을 설정하는 경우를 나타낸다.
설정 블록(114)이 오버레이 설정 타입으로 구현되는 경우를 예로 들면, 설정 블록(114)은 복수의 동작 모드들 중 어느 하나에 따른 동작이 기능 블록(112)에서 수행가능하도록, 제1 비휘발성 메모리(120)에 저장된 설정데이터를 이용하여 기능 블록(112)을 설정한다. 복수의 동작 모드들이 제1 내지 제4 동작 모드들을 포함하는 경우를 예로 들면, 설정 블록(114)은 기능 블록(112)이 제1 내지 제4 동작 모드들에 따른 동작들 중 어느 하나의 동작이 수행가능하도록 기능 블록(112)을 설정한다. 이때, 기능 블록(112)을 제1 내지 제4 동작 모드들 각각에 대응하여 설정하는 설정데이터는 제1 비휘발성 메모리(120)로부터 로딩(loading)될 수 있다.
예를 들어, 설정 블록(114)은 비휘발성 메모리(120)로부터 로딩되는 설정데이터를 기록하기 위한 하나 또는 복수의 비휘발성 저장 소자들을 포함할 수 있다. 구체적으로, 설정 블록(114)은 하나 또는 복수의 비휘발성 저장 소자들을 포함하는 래치가 될 수 있으나, 이에 한정되지 않는다. 이하에서는, 설정 블록(114)이 적어도 두 개 이상의 비휘발성 저장 소자들을 포함하는 경우를 예로 들어 설명하나, 이에 한정되지 않는다. 이러한 경우, 설정 블록(114)은 기능 블록(112)을 설정하기 위하여 로딩된 설정데이터를 비휘발성 저장 소자들 중 어느 하나에 기록(writing)할 수 있다.
또한, 기능 블록(112)에서 복수의 동작 모드들 중 제1 동작 모드로 설정하기 위하여, 설정 블록(114)은 제1 비휘발성 메모리(120)로부터 로딩된 제1 동작 모드에 대응하는 제1 설정데이터를 설정 블록(114) 내에 존재하는 적어도 두 개 이상의 비휘발성 저장 소자들 중 어느 하나에 기록할 수 있다.
설정 블록(114)이 제1 비휘발성 저장 소자 및 제2 비휘발성 저장 소자를 포함하고, 제1 비휘발성 저장 소자에 제1 동작 모드에 대응하는 제1 설정데이터가 기록되어 있는 경우를 예로 들면, 설정 블록(114)은 제1 비휘발성 저장 소자에 기록된 제1 설정데이터를 독출(reading)하여, 제1 동작 모드에 따른 제1 동작이 기능 블록(112)에서 수행될 수 있도록 기능 블록(112)을 설정한다. 이에 따라, 기능 블록(112)은 제1 동작을 수행할 수 있다. 이와 동시에, 설정 블록(114)은 제2 비휘발성 저장 소자에 제2 동작 모드에 대응하는 제2 설정데이터가 기록되도록 할 수 있다. 이에 따라, 기능 블록(112)에서 제1 동작의 수행이 끝난 후, 설정 블록(114)은 기능 블록(112)에서 제2 비휘발성 저장 소자에 기록된 제2 설정데이터를 독출하여, 제2 동작 모드에 따른 제2 동작이 기능 블록(112)에서 수행될 수 있도록 기능 블록(112)을 설정한다.
이처럼, 기능 블록(112)에서 제1 동작을 수행하는 동안, 제2 설정데이터가 설정 블록(114)의 제2 비휘발성 저장 소자에 기록될 수 있다. 또는, 제1 동작이 기능 블록(112)에서 수행될 수 있도록 기능 블록(112)이 설정되는 동안, 제2 설정데이터가 설정 블록(114)의 제2 비휘발성 저장 소자에 기록될 수 있다. 이때, 기능 블록(112)의 설정은 설정 블록(114)의 비휘발성 저장 소자에 기록된 설정데이터를 독출하고, 독출된 설정데이터를 기능 블록(112)으로 출력하는 동작을 포함할 수 있다.
기능 블록(112)에서 제1 동작 및 제2 동작을 순차적으로 수행하고자 하는 경우, 설정 블록(114)의 제1 비휘발성 저장 소자로부터 독출된 제1 설정데이터를 기능 블록(112)으로 출력하는 시점부터 기능 블록(112)에서 제1 동작의 수행을 완료하는 시점 사이에, 제2 설정데이터가 설정 블록(114)의 제2 비휘발성 저장 소자에 기록될 수 있기에, 논리 장치(100)는 설정 및 재설정 작업의 속도를 향상시킬 수 있다.
또한, 기능 블록(112)은 제1 동작을 수행한 후, 빠른 속도로 제2 동작을 수행하기 위하여 재설정될 수 있다. 이에 따라, 논리 장치(100)는 런타임 재설정 로직(Runtime Reconfiguration Logic:RRL)으로 구현될 수 있다.
다만, 상기에서는, 기능 블록(112)에서 제1 동작을 수행함과 동시에 설정 블록(114)의 제2 비휘발성 저장 소자에 제2 설정데이터가 기록되는 형태로 설명하였으나, 이에 한정되지 않고, 사용 환경에 따라, 기능 블록(112)에서 제1 동작을 수행한 후 소정의 시간 이후에 설정 블록(114)의 제2 비휘발성 저장 소자에 제2 설정데이터가 기록될 수 있다. 이러한 경우, 소정의 시간은 논리 장치(100)에서 제2 동작의 수행이 시작되는 시간에 따라 결정될 수 있다.
이처럼, 설정 블록(114)은 적어도 두 개 이상의 비휘발성 저장 소자들을 이용하여, 기능 블록(112)이 복수의 동작 모드들에 대응하는 동작들을 수행가능하도록 설정할 수 있다. 설정 블록(114)이 오버레이 설정 타입으로 구현되는 경우에 관하야, 도 4a에서 예를 들어 설명한다.
설정 블록(114)이 멀티 설정 타입으로 구현되는 경우를 예로 들면, 복수의 동작 모드들 중 어느 하나에 따른 동작이 기능 블록(112)에서 수행가능하도록 기능 블록(112)을 설정하기 위하여, 설정 블록(114)은 복수의 동작 모드들 각각에 대응하는 비휘발성 저장 소자들 각각에 기록된 설정데이터를 이용하여 기능 블록(112)을 설정한다. 구체적으로, 설정 블록(114)은 복수의 동작 모드들 각각에 대응하는 설정데이터를 복수의 동작 모드들 각각에 대응하는 비휘발성 저장 소자에 기록한다.
이때, 설정 블록(114)이 오버레이 설정 타입으로 구현되는 경우와 달리, 설정 블록(114)이 멀티 설정 타입으로 구현되는 경우, 설정 블록(114)의 비휘발성 저장 소자들 각각에는 설정데이터가 미리 기록되어 있다. 이때, 미리 기록되어 있는 경우를 예로 들면, 사용장가 희망하는 기능에 따른 복수의 동작 모드들에 따른 동작들이 논리 장치(100)에서 수행 가능하도록, 논리 장치(100)를 설정 또는 재설정할 때, 설정데이터가 비휘발성 저장 소자에 기록되는 경우가 될 수 있으나, 이에 한정되지 않는다. 설정 블록(114)이 멀티 설정 타입으로 구현되는 경우에 관하여, 도 4b에서 예를 들어 설명한다.
설정 블록(114)이 오버레이 설정 타입으로 구현되는 경우를 예로 들면, 기능 블록(112)에서 소정의 동작을 수행하고자 할 때, 설정 블록(114)은 제1 비휘발성 메모리(120)에 저장된 설정데이터를 로딩하여 설정 블록(114)의 비휘발성 저장 소자에 설정데이터를 기록하고, 기록된 설정데이터를 기능 블록(112)으로 출력하여 기능 블록(112)을 설정한다.
설정 블록(114)이 멀티 설정 타입으로 구현되는 경우를 예로 들면, 기능 블록(112)에서 소정의 동작을 수행하고자 하는 시기에 무관하게, 설정 블록(114)의 비휘발성 저장 소자들에는 복수의 동작 모드들에 대응하는 설정데이터들이 기록되어 있다. 이에 따라, 설정 블록(114)은 기능 블록(112)에서 소정의 동작을 수행하고자 할 때, 설정 블록(114)의 비휘발성 저장 소자에 기록된 설정데이터를 기능 블록(112)으로 출력하여 기능 블록(112)을 설정한다.
이처럼, 설정 블록(114)이 오버레이 설정 타입으로 구현된 경우에는 적은 수의 비휘발성 저장 소자들을 이용하여 복수의 동작 모드들에 대응하는 동작들이 수행가능하도록 논리 장치(100)를 설정할 수 있다. 또한, 설정 블록(114)이 멀티 설정 타입으로 구현된 경우에는 복수의 동작 모드들에 대응하는 수만큼의 비휘발성 저장 소자들을 이용하여, 복수의 동작 모드들에 대응하는 동작들이 수행가능하도록 논리 장치(100)를 설정할 수 있다.
이러한 경우, 설정 블록(114)이 오버레이 설정 타입으로 구현된 경우, 멀티 설정 타입으로 구현된 경우와 달리 제1 비휘발성 메모리(120)가 추가로 필요하지만, 멀티 설정 타입으로 구현된 경우보다 더 적은 수의 비휘발성 저장 소자들을 이용하여 복수의 동작 모드들에 대응하는 동작들이 수행가능하도록 논리 장치(100)를 설정할 수 있다. 또한, 설정 블록(114)이 멀티 설정 타입으로 구현된 경우, 오버레이 설정 타입으로 구현된 경우와 달리 복수의 동작 모드들에 대응하는 수만큼의 비휘발성 저장 소자들이 필요하지만, 설정데이터가 설정 블록(114)의 비휘발성 저장 소자들에 이미 기록되어 있기에 오버레이 설정 타입으로 구현된 경우 보다 더 빠른 속도로 논리 장치(100)를 설정할 수 있다.제1 비휘발성 메모리(120)는 복수의 동작 모드들에 대응하는 동작들이 수행가능하도록 기능 블록(110)을 설정하기 위한 설정데이터(configurable data)를 저장한다. 복수의 동작 모드들이 제1 내지 제n 동작 모드들을 포함하는 경우를 예로 들면, 설정데이터는 제1 동작 모드에 따른 동작을 수행하기 위한 제1 설정데이터, 제2 동작 모드에 따른 동작을 수행하기 위한 제2 설정데이터, ... , 제n 동작 모드에 따른 동작을 수행하기 위한 제n 설정데이터를 포함한다.
도 1에서는 설명의 편의를 위하여 논리 장치(100)가 제1 비휘발성 메모리(120)를 포함하는 경우로 도시하고 있으나, 설정 블록(114)이 멀티 설정 타입으로 구현된 경우, 논리 장치(100)는 설정데이터를 저장하기 위한 제1 비휘발성 메모리(120)를 포함하지 않을 수 있다.
컨트롤러(130)는 논리 장치(100)의 전반적인 동작을 제어한다. 예를 들어, 컨트롤러(130)는 기능 블록(112)이 복수의 동작 모드들 중 어느 하나에 따른 동작을 수행하도록, 제1 비휘발성 메모리(120) 및/또는 설정 블록(114)을 제어한다.
더욱 구체적으로 예를 들면, 컨트롤러(130)는 기능 블록(112)에서 복수의 동작 모드들 중 제1 동작 모드에 따른 동작이 수행되도록 기능 블록(112)을 제어하면서, 복수의 동작 모드들 중 제2 동작 모드에 따른 동작이 소정의 클럭 주파수 내에 기능 블록(112)에서 수행가능하도록 설정 블록(114)을 제어한다. 이때, 클럭 주파수는 논리 장치(100)의 1 내지 2 클럭을 나타낼 수 있으나, 이에 한정되지 않는다. 이에 관하여, 이하 도 4a 내지 도 4b에서 예를 들어 설명한다.
이에 따라, 논리 장치(100)는 복수의 동작 모드들에 대응하는 동작들이 수행 가능한 하나의 기능 블록(112)을 사용하여, 복수의 동작들 각각을 수행할 수 있기에, 논리 장치(100)의 면적(area)이 감소될 수 있다.
또한, 설정 블록(114)은 기능 블록(112)을 설정하기 위하여 설정데이터를 비휘발성 저장 소자에 기록하기에, 논리 장치(100)의 전력 소모량을 감소시킬 수 있다. 구체적으로, 논리 장치(100)에 전원이 인가되지 않더라도, 비휘발성 저장 소자에 기록된 데이터는 유지될 수 있기에, 논리 장치(100)에 전원이 인가됨에 따라 논리 장치(100)의 외부에 존재하는 다른 비휘발성 메모리(미도시)로부터 데이터를 로딩하는데 소요되는 시간 및 전력의 소모를 감소시킬 수 있다.
추가적으로, 논리 장치(100)에 설정데이터를 저장하는 제1 비휘발성 메모리(120)가 포함된 경우, 논리 장치(100)에 전원이 인가되지 않더라도 제1 비휘발성 메모리(120)에 저장된 데이터도 유지될 수 있기에, 논리 장치(100)에 전원이 인가됨에 따라 논리 장치(100)의 외부에 존재하는 다른 비휘발성 메모리(미도시)로부터 데이터를 로딩하는데 소요되는 시간 및 전력의 소모를 감소시킬 수 있다.
이에 따라, 비휘발성 장치들을 사용하는 논리 장치(100)는 로직 어플리케이션의 형태로 구현되어 다양한 코덱, 데이터 처리장치 및 필터 등에 적용이 될 수 있다. 따라서, 본 실시예에 따른 논리 장치(100)를 이용하여 저전력, 저가격(low poser, low cost)의 비휘발성 재구성 필터, 코덱, 데이터 처리장치 등을 구현할 수 있다.
도 2는 도 1의 논리 장치를 포함하는 시스템의 일 예를 도시한 도면이다. 도 2를 참조하면, 시스템(200)은 논리 장치(100), 시스템 버스(210), 복수의 중앙처리장치들(220), 인터페이스(230) 및 타이머(240)를 포함하고, 논리 장치(100)는 논리 블록(110), 제1 비휘발성 메모리(120), 컨트롤러(130), 제2 비휘발성 메모리(140)를 포함하고, 논리 블록(110)은 기능 블록(112) 및 설정 블록(114)을 포함할 수 있다.
도 2에 도시된 시스템(200)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 2에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다. 또한, 도 2에 도시된 논리 장치(100)는 도 1에 도시된 논리 장치(100)의 일 실시예에 해당한다. 이에 따라, 본 실시예에 따른 논리 장치(100)는 도 2에 도시된 구성에 한정되지 않는다. 또한, 도 1과 관련하여 기재된 내용은 도 2에 도시된 논리 장치(100)에도 적용이 가능하기에 중복되는 설명은 생략한다.
본 실시예에 따른 시스템(200)은 SoC(System on Chip) 형태로 구현될 수 있고, 예를 들어, 시스템(200)은 ARM 기반의 시스템(ARM-based system)이 될 수 있으나, 이에 한정되지 않는다. 또한, 시스템(200)은 런타임 재설정 로직(RRL)의 형태로 구현될 수 있다.
논리 장치(100)는 논리 블록(110), 제1 비휘발성 메모리(120), 컨트롤러(130), 제2 비휘발성 메모리(140)를 사용하여, 복수의 기능들 중 기정의된 기능을 수행할 수 있고, 기정의된 기능은 복수의 동작 모드들에 대응하는 동작들을 포함한다.
논리 블록(110)은 복수의 동작 모드들에 대응하는 동작들이 수행가능하도록 설정가능한 하나의 기능 블록(112), 및 복수의 동작 모드들 중 어느 하나에 따른 동작이 수행가능하도록 기능 블록(112)을 설정하는 설정 블록(114)을 포함한다.
기능 블록(110)에서 제1 내지 제4 동작 모드들에 대응하는 동작들이 수행가능한 경우에 관하여 도 2를 참조하여 개념적으로 설명하면, 설정 블록(114)은 제1 내지 제4 설정 세트들 중 MUX에 의하여 선택된 어느 하나의 설정 세트에 따라 기능 블록(112)을 설정한다. 이에 따라, 기능 블록(112)은 제1 내지 제4 설정 세트들 중 설정 블록(114)에 의하여 설정된 설정 세트에 대응하는 동작 모드에 따른 동작을 수행할 수 있다.
이처럼, 논리 블록(110)은 한정적인 하드웨어 자원들(Hardware resources)이 재설정가능하도록 구현됨에 따라, 시스템(200)의 면적(area)이 감소될 수 있다.
제1 비휘발성 메모리(120)는 복수의 동작 모드들이 수행가능하도록 기능 블록(112)을 설정하기 위한 설정데이터를 저장한다.
컨트롤러(130)는 기능 블록(112)이 복수의 동작 모드들 중 어느 하나에 따른 동작을 수행하도록, 제1 비휘발성 메모리(120) 및 설정 블록(114)을 제어한다. 또한, 컨트롤러(130)는 제2 비휘발성 메모리(140)를 제어할 수 있고, 제2 비휘발성 메모리(140)는 논리 장치(100) 또는 시스템(200)의 동작 중에 발생하는 데이터를 저장할 수 있다.
컨트롤러(130)는 논리 장치(100)에서 복수의 기능들 중 기정의된 기능을 수행가능하도록 논리 장치(100)의 모드를 제어한다. 예를 들면, 논리 장치(100)의 모드는 테스트 모드, 스위칭 모드, 동작 모드 등을 포함할 수 있으나, 이에 한정되지 않는다.
테스트 모드는 프로그래밍 모드, 비트스트림 검증 모드(bitstream verification mode), 또는 메모리 상태 제어 모드(memory state control mode) 등을 포함할 수 있다.
스위칭 모드는 논리 장치(100)에서 복수의 동작 모드들에 대응하는 동작들이 수행가능하도록 런타임 설정을 스위칭하는 모드를 나타내고, 동작 모드는 논리 장치(100)의 기능 블록(112)에 설정된 소정의 동작을 수행하는 모드를 나타낸다. 예를 들어, 논리 장치(100)는 스위칭 모드 및 동작 모드가 동시에 수행될 수 있으나, 이에 한정되지 않는다.
시스템 버스(210)는 논리 장치(100)와 복수의 중앙처리장치들(220), 인터페이스(230) 및 타이머(240) 간의 데이터를 송수신한다. 본 실시예에 따른 시스템 버스(210)는 AMBA (Advanced Microcontroller Bus Architecture) 인터페이스를 포함할 수 있으나, 이에 한정되지 않는다. 예를 들어, AMBA 인터페이스는 논리 장치(100)가 시스템 버스(210)에 연결가능하도록 하고, 이에 따라, 유연한(flexible) 시스템 설정이 가능할 수 있다.
복수의 중앙처리장치들(220)은 시스템(200)의 전반적인 기능을 제어한다. 본 실시예에 따른 복수의 중앙처리장치들(220) 각각은 ARM 프로세서가 될 수 있으나, 이에 한정되지 않는다.
인터페이스(230)는 외부 장치(미도시)와 데이터 송수신을 위한 통신 인터페이스 및 사용자로부터 입력정보를 입력받거나 출력정보를 출력하는 사용자 인터페이스를 포함할 수 있다.
타이머(240)는 시스템(200)의 동작 단계를 모니터링하여 시스템(200)의 이상동작을 검출한다. 예를 들면, 타이머(240)는 워치도그 타이머(watchdog timer)가 될 수 있으나, 이에 한정되지 않는다.
이에 따라, 시스템(200)은 비휘발성 재설정가능한 시스템 온 칩의 형태로 구현될 수 있다.
도 3은 도 1의 논리 장치의 다른 예를 도시한 구성도이다.
논리 블록(110)은 비휘발성 재설정가능한 로직(NV Reconfigurable Logic) 모듈로 구현될 수 있고, 제1 비휘발성 메모리(120)는 비휘발성 설정 메모리(NV Config. Memory)로 구현될 수 있고, 컨트롤러(130)는 주제어(Main Control) 모듈로 구현될 수 있고, 제2 비휘발성 메모리(140)는 비휘발성 사용자 메모리(NV User Memory)로 구현될 수 있다.
또한, 논리 블록(110)은 복수의 레지스터들(312, 314, 316, 318)을 통하여 슬레이브(350)와 연결될 수 있고, 컨트롤러(130)에 연결된 NVRL 제어(NVRL Control) 모듈(340)에 의하여 제어될 수 있다. 이때, NVRL 제어 모듈(340)는 NVRL 제어 레지스터(NVRL Control Reg.) 모듈(320)를 통하여 슬레이브(350)와 연결될 수 있다. 또한, 논리 블록(110)은 버퍼 제어(D.Buffer Control) 모듈(135)을 통하여 컨트롤러(130)와 데이터를 송수신할 수 있다.
제1 비휘발성 메모리(120) 및 제2 비휘발성 메모리(140)는 복수의 레지스터들(324, 326, 328, 330)을 통하여 슬레이브(350)와 연결될 수 있고, 컨트롤러(130)에 연결된 NVM 제어(NVM Control) 모듈(344)에 의하여 제어될 수 있다. 이때, NVM 제어 모듈(344)은 NVM 제어 레지스터(NVM Control Reg.)(322)를 통하여 슬레이브(350)와 연결될 수 있다.
또한, 제1 비휘발성 메모리(120) 및 제2 비휘발성 메모리(140) 각각은 설정 버퍼(Config. Buffer)(125) 및 데이터 R. 버퍼(Data R. Buffer)(145)를 통하여 논리 블록(110)과 데이터를 송수신할 수 있다.
컨트롤러(130)는 주제어 레지스터(Main Control Reg.)(342)를 통하여 슬레이브(350)와 연결될 수 있고, 설정 버퍼(125), 버퍼 제어(135) 및 데이터 R. 버퍼(145)를 제어할 수 있다.
슬레이브(350)는 시스템 버스(210)와 연결될 수 있다. 본 실시예에 따른 슬레이브(350)는 135bit의 AHB(Advanced High-performance Bus) 슬레이브 또는 98bit의 APB(Advanced Peripheral Bus) 슬레이브가 될 수 있으나, 이에 한정되지 않고, ASB(Advanced System Bus) 슬레이브가 될 수도 있다.
도 4a 내지 도 4b는 도 1의 설정 블록(114)의 일 예인 래치의 예들을 도시한 회로도이다. 구체적으로, 도 4a는 설정 블록(114)이 오버레이 설정 타입으로 구현된 경우를 나타내고, 도 4b는 설정 블록(114)이 멀티 설정 타입으로 구현된 경우를 나타낸다.
도 1 및 도 4a를 참조하면, 설정 블록(114)은 오버레이(overlay) 형태의 비휘발성 래치로 구현될 수 있으나, 이에 한정되지 않는다. 또한, 도 4a는 두 개의 비휘발성 저장 소자들 RE 및 REn이 포함된 경우를 예로 들어 설명하나, 사용환경에 따라, 하나, 또는, 세 개 이상의 비휘발성 저장 소자들을 포함할 수 있고, 그에 따른 복수의 트랜지스터들을 더 포함할 수 있다.
래치는 제1 비휘발성 저장 소자 RE 및 제2 비휘발성 저장 소자 REn 각각에 기록된 데이터를 독출하는 독출작업 및 독출된 데이터를 Dout을 통하여 출력하는 출력작업을 수행하거나, 또는, 제1 비휘발성 저장 소자 RE 및 제2 비휘발성 저장 소자 REn 각각에 데이터라인 DL 및 DLn을 통하여 입력되는 데이터를 기록하는 기록작업을 수행할 수 있다.
이때, 데이터라인 DL 및 DLn 각각을 통하여 입력되는 데이터는 제1 비휘발성 메모리(120)로부터 로딩될 수 있고, 데이터라인 DL 및 DLn 각각을 통하여 입력된 데이터는 제1 내지 제4 트랜지스터들 TR1, TR2, TR3 및 TR4의 스위칭 동작에 따라 제1 비휘발성 저장 소자 RE 및 제2 비휘발성 저장 소자 REn 중 어느 하나에 기록될 수 있다. 이때, 제1 내지 제4 트랜지스터들 TR1, TR2, TR3 및 TR4 각각은 스위칭 동작을 수행하는 스위칭 소자가 될 수 있다.
또한, 제1 비휘발성 저장 소자 RE의 양단에는 제5 내지 제6 트랜지스터들 CT11 및 CT12가 연결되어 있고, 제2 비휘발성 저장 소자 REn의 양단에는 제7 내지 제8 트랜지스터들 CT21 및 CT22가 연결되어 있다.
본 실시예에 따른 제1 비휘발성 저장 소자 RE 및 제2 비휘발성 저장 소자 REn 각각은 기준 셀(Ref. Cell)과의 저항값의 비교에 따라 고저항 상태 또는 저저항 상태가 될 수 있는 가변 저항 소자를 이용하여 구현될 수 있으나, 이에 한정되지 않는다.
이하에서, 도 5a 내지 도 5b를 참조하여, 도 4a의 래치의 동작에 대하여 예를 들어 설명한다.
도 5a 및 도 5b는 도 4a의 래치의 동작에 따른 회로의 동작을 나타내는 타이밍도들이다. 구체적으로, 도 5a는 독출 모드에서의 회로 동작을 나타낸 타이밍도이고, 도 5b는 기록 모드에서의 회로 동작을 나타낸 타이밍도이다.
도 1, 도 4a 및 도 5a를 참조하면, 도 5a의 타이밍도는 제1 비휘발성 저장 소자 RE에 기록된 데이터를 독출하는 독출작업에 따른 회로 동작을 나타낸다. 제1 비휘발성 저장 소자 RE에 기록된 데이터를 독출하고자 하는 경우, 컨트롤러(130)로부터 출력되는 CF 제어신호가 비활성화 상태에서 활성화 상태로 변화하는 상승 에지(positive edge)가 발생한다. CF 제어신호에 상승 에지가 발생하면, 인에이블 바 신호 nEN가 활성화되면서, 제1 비휘발성 저장 소자 RE에 기록된 데이터가 독출되고, 독출된 데이터는 Dout을 통하여 출력될 수 있다. 이때, Dout을 통하여 출력되는 데이터는 기능 블록(112)으로 입력됨에 따라, 기능 블록(112)은 복수의 동작 모드들 중 Dout을 통하여 출력되는 데이터에 대응하는 동작 모드에 따른 동작이 수행가능하도록 설정될 수 있다.
이와 같은 독출작업이 수행되는 동안 제1 내지 제4 트랜지스터들 TR1, TR2, TR3 및 TR4의 스위칭 동작을 제어하는 제1 내지 제2 스위칭제어 신호들 WS1 및 WS2은 비활성화되고, 데이터라인 DL 및 DLn을 통하여 입력되는 신호도 존재하지 않거나 비활성된다.
도 1, 도 4a 및 도 5b를 참조하면, 도 5b의 타이밍도는 제1 비휘발성 저장 소자 RE에 데이터를 기록하는 기록작업에 따른 회로 동작을 나타낸다.
제1 비휘발성 메모리(120)로부터 데이터라인들 DL 및 DLn을 통하여 입력되는 데이터를 컨트롤러(130)에서 출력되는 제어신호에 응답하여 제1 비휘발성 저장 소자 RE 또는 제2 비휘발성 저장 소자 REn 중 어느 하나에 기록할 수 있고, 이때, 컨트롤러(130)에서 출력되는 제어신호는 데이터라인들 DL 및 DLn과 제1 비휘발성 저장 소자 RE 또는 제2 비휘발성 저장 소자 REn 각각의 양단에 연결된 스위칭 소자들 CT11, CT12, CT21, CT22 중 적어도 어느 하나를 제어하는 스위칭 제어신호 WS1 또는 WS2가 될 수 있다.
데이터라인 DL 및 DLn 각각을 통하여 입력된 데이터를 제1 비휘발성 저장 소자 RE에 기록하고자 하는 경우, 인에이블 바 신호 nEN는 비활성화된 상태를 계속 유지하면서, 제1 스위칭제어 신호 WS1이 활성화됨에 따라, 데이터라인 DL 및 DLn 각각을 통하여 입력된 데이터는 제1 비휘발성 저장 소자 RE에 기록될 수 있다.
구체적으로, 활성화된 제1 스위칭제어 신호 WS1에 따라 제1 내지 제2 트랜지스터들 TR1 및 TR2의 스위칭 동작이 제어되기에, 제1 비휘발성 저장 소자 RE에 데이터가 기록될 수 있다.
예를 들어, 데이터라인 DL 및 DLn 각각을 통하여 입력되는 데이터는 제1 비휘발성 메모리(120)에 저장된 설정데이터가 될 수 있다. 이에 따라, 앞에서 설명한 바와 같이, 데이터라인 DL 및 DLn 각각을 통하여 입력된 설정데이터가 두 개의 비휘발성 저장 소자들 RE 및 REn 중 어느 하나에 기록되고, 기록된 설정데이터가 독출되고, 독출된 설정데이터가 기능 블록(112)으로 출력됨에 따라, 기능 블록(112)은 설정데이터에 대응하는 동작 모드에 따른 동작을 수행할 수 있다.
또한, 제1 비휘발성 저장 소자 RE의 활성화 여부를 나타내는 CF 제어신호는 제1 비휘발성 저장 소자 RE의 양단에 연결된 제5 내지 제6 트랜지스터들 CT11 및 CT12의 스위칭 동작을 제어하고, 제2 비휘발성 저장 소자 REn의 활성화 여부를 나타내는 CFn 제어신호는 제2 비휘발성 저장 소자 REn의 양단에 연결된 제7 내지 제8 트랜지스터들 CT21 및 CT22의 스위칭 동작을 제어할 수 있다. 이때, 복수의 트랜지스터들 CT11, CT12, CT21, CT22 각각은 스위칭 소자로도 구현될 수 있다.
이에 따라, 제1 비휘발성 저장 소자 RE의 활성화 여부를 나타내는 CF 제어신호가 비활성화되어 있기에 도 5b의 타이밍도는 제1 비휘발성 저장 소자 RE에 데이터를 기록한다. 다만, 이에 한정되지 않고, CF 제어신호가 활성화된 경우에는, 제2 비휘발성 저장 소자 REn에 데이터를 기록할 수 있다. 이러한 경우, 인에이블 바 신호 nEN는 비활성화된 상태를 계속 유지하면서, 제2 스위칭제어 신호 WS2가 활성화됨에 따라, 데이터라인 DL 및 DLn 각각을 통하여 입력된 데이터는 제2 비휘발성 저장 소자 REn에 기록될 수 있다. 다만, 이에 한정되지 않고, 제2 비휘발성 저장 소자 REn의 할성화 여부를 나타내는 CFn 제어신호를 참조하여, 제1 비휘발성 저장 소자 RE 또는 제2 비휘발성 저장 소자 REn에 데이터를 기록하는 동작을 수행할 수도 있다.
이와 같이, 설정 블록(114)은 적어도 두 개 이상의 비휘발성 저장 소자들을 포함하는 래치를 이용하여, 기능 블록(112)에서 복수의 동작 모드들 중 어느 하나에 따른 동작이 수행가능하도록 기능 블록(112)을 설정할 수 있다.
또한, 도 5a 및 도 5b에 도시된 바와 같이, 인에이블 바 신호 nEN가 비활성화되는 구간에서는 기록작업이 수행될 수 있고, 인에이블 바 신호 nEN가 활성화되는 구간에서는 독출작업이 수행될 수 있다. 이에 따라, 두 개의 비휘발성 저장 소자들 RE 및 REn 중 어느 하나에 대한 독출작업이 완료되면, 두 개의 비휘발성 저장 소자들 RE 및 REn 중 어느 하나에 대한 기록작업이 수행될 수 있다.
따라서, 논리 장치(100)는 설정 블록(114)의 제1 비휘발성 저장 소자 RE로부터 독출된 제1 설정데이터를 기능 블록(112)으로 출력하는 시점부터 기능 블록(112)에서 제 설정데이터에 대응하는 제1 동작의 수행을 완료하는 시점 사이에, 제2 설정데이터가 제2 비휘발성 저장 소자 REn에 기록될 수 있다.
다만, 설정 블록(114)에 비휘발성 저장 소자가 하나만 마련된 경우, 또는, 설정 블록(114)에 두 개 이상의 비휘발성 저장 소자들이 마련된 경우라도, 사용 환경에 따라, 제2 설정데이터가 제1 비휘발성 저장 소자 REn이 아닌, 제1 비휘발성 저장 소자 RE에 기록될 수도 있다.
이처럼, 설정 블록(114)이 비휘발성 저장 소자들을 포함하는 래치의 형태로 구현됨에 따라, 논리 장치(100)의 설정 또는 재설정을 런타임(runtime)으로 구현할 수 있다.
도 5a 내지 도 5b와 관련하여, 활성화된 신호는 하이(high) 신호를 나타낼 수 있고, 비활성화된 신호는 로우(low) 신호를 나타낼 수 있다.
다시 도 4b를 참조하면, 설정 블록(114)은 멀티 설정 형태의 비휘발성 래치로 구현될 수 있으나, 이에 한정되지 않는다. 또한, 도 4b는 네 개의 비휘발성 저장 소자들 RE1, RE2, RE3 및 RE4가 포함된 경우를 예로 들어 설명하나, 사용환경에 따라, 복수의 동작 모드들의 수에 대응하는 개수 이상의 비휘발성 저장 소자들을 포함할 수 있고, 그에 따른 복수의 트랜지스터들을 더 포함할 수 있다.
래치는 제1 동작 모드에 대응하는 제1 설정데이터가 기록된 제1 비휘발성 저장 소자 RE1, 제2 동작 모드에 대응하는 제2 설정데이터가 기록된 제2 비휘발성 저장 소자 RE2, 제3 동작 모드에 대응하는 제3 설정데이터가 기록된 제3 비휘발성 저장 소자 RE3 및 제4 동작 모드에 대응하는 제4 설정데이터가 기록된 제4 비휘발성 저장 소자 RE4를 포함한다. 본 실시예에 따른 제1 내지 제4 비휘발성 저장 소자들 RE1, RE2, RE3 및 RE4 각각은 기준 셀(Ref. Cell)과의 저항값의 비교에 따라 고저항 상태 또는 저저항 상태가 될 수 있는 가변 저항 소자를 이용하여 구현될 수 있으나, 이에 한정되지 않는다.
래치는 제1 내지 제4 비휘발성 저장 소자들 RE1, RE2, RE3 및 RE4 각각에 기록된 데이터를 독출하는 독출작업 및 독출된 데이터를 Dout을 통하여 출력하는 출력작업을 수행할 수 있다.
또한, 제1 내지 제4 비휘발성 저장 소자들 RE1, RE2, RE3 및 RE4 각각에는 제1 내지 제4 트랜지스터들 CT1, CT2, CT3 및 CT4 각각이 연결되어 있다.
래치에서 제1 내지 제4 비휘발성 저장 소자들 RE1 내지 RE4 중 어느 하나에 기록된 데이터를 독출하는 독출 작업을 수행하는 경우를 예로 들면, 컨트롤러(130)로부터 출력되는 CF 제어신호에 따른 제1 내지 제4 트랜지스터들 CT1, CT2, CT3 및 CT4의 스위칭 동작에 따라, 제1 내지 제4 비휘발성 저장 소자들 RE1 내지 RE4 중 어느 하나에 기록된 데이터가 독출되고, 독출된 데이터는 Dout을 통하여 출력될 수 있다. 이때, Dout을 통하여 출력되는 데이터는 기능 블록(112)으로 입력됨에 따라, 기능 블록(112)은 복수의 동작 모드들 중 Dout을 통하여 출력되는 데이터에 대응하는 동작 모드에 따른 동작이 수행가능하도록 설정될 수 있다.
예를 들어, 제3 동작 모드에 따른 동작이 기능 블록(112)에서 수행가능하도록 설정하는 경우, 래치는 제3 비휘발성 저장 소자 RE3에 기록된 제3 설정데이터를 Dout을 통하여 기능 블록(112)으로 출력한다. 이때, 컨트롤러(130)는 제3 설정데이터를 기능 블록(112)으로 출력하기 위한 CF 제어신호인 CF1, CF2, CF3 및 CF4 중 적어도 어느 하나를 출력하고, 래치는 CF 제어신호에 따라 제3 비휘발성 저장 소자 RE3에 기록된 제3 설정데이터를 Dout을 통하여 기능 블록(112)으로 출력한다.
본 실시예에 따른 기술분야에서 통상의 지식을 가진 자라면 도 4a에 기재된 회로도 및 도 5a 내지 도 5b에 기재된 타이밍도와 그에 관련된 설명을 참조하여, 도 4b에 기재된 회로도의 동작을 알 수 있기에, 상세한 설명은 생략한다.
이처럼, 설정 블록(114)이 비휘발성 저장 소자들을 포함하는 멀티 설정 타입의 래치의 형태로 구현됨에 따라, 논리 장치(100)의 설정 또는 재설정을 런타임(runtime)으로 구현할 수 있다.
도 6은 도 1의 논리 장치가 디지털 필터에 포함되는 경우의 일 예를 나타낸 도면이다. 도 6을 참조하면, 디지털 필터(600)는 복수의 계수 모듈(610)들, 복수의 가산기들, 복수의 R-shifts 1, 시프터(630), 다운 샘플러(640) 및 Mux sel(650)을 포함할 수 있다. 이때, 디지털 필터(600)의 계수 모듈(610), 시프터(630), 다운샘플러(640) 및 MUX sel(650) 각각은 논리 장치(100)가 포함된 형태로 구현될 수 있다. 예를 들어, 디지털 필터(600)는 필터 기능에 따른 복수의 동작 모드들에 대응하는 동작들이 수행가능하도록 설정가능한 논리 장치(100)를 포함할 수 있다.
디지털 필터(600)는 18개의 탭(tab)들로 구성될 수 있고, 디지털 필터(600)에 포함된 논리 장치(100)에 정의된 기능에 따라, MPEG4 포맷 변환 필터, H.264 half-pel interpolation 또는 H.264 quarter-pel interpolation 중 어느 하나에 따른 복수의 동작들을 수행할 수 있다.
입력된 데이터(620)는 계수 모듈(610)을 거쳐, 복수의 가산기들 및 시프터들을 통과한 후, MUX sel(650)을 통하여 어느 하나의 출력이 선택될 수 있다. 도 6을 참조하면, 제1 출력(651)은 MPEG4 포맷 변환 필터의 출력, 제2 출력(652)은 H.264 half-pel interpolation의 출력, 제3 출력(653)은 H.264 quarter-pel interpolation의 출력이 될 수 있다.
계수 모듈(610)에 대하여 부연하면, 복수의 계수 모듈(610)들 각각은 디지털 필터(600)의 계수를 생성한다. 계수 모듈(610) 각각은 니게이션(negation)(611), 복수의 배럴 시프터(Barrel Shifter)들(612, 613), 가산기(614) 및 Mux sel(615)를 포함할 수 있다. 이때, 가산기(614)는 곱셈기로 대체될 수도 있다.
이때, 계수 모듈(610)의 니게이션(negation)(611), 복수의 배럴 시프터(Barrel Shifter)들(612, 613) 및 Mux sel(615) 각각에 본 실시예에 따른 논리 장치(100)가 포함될 수 있다.
니게이션(611)에 논리 장치(100)가 포함되어 구현된 경우를 예로 들면, 논리 장치(100)는 니게이션(611)이 니게이션을 수행하는 제1 동작 모드 및 니게이션(611)에서 니게이션을 수행하지 않는 제2 동작 모드 중 어느 하나의 동작 모드에 따른 동작을 수행하도록 설정 또는 재설정될 수 있다. 이러한 경우, 논리 장치(100)의 기능 블록(112)은 니게이션을 수행하는 제1 동작 모드에 따른 동작 및 니게이션을 수행하지 않는 제2 동작 모드에 따른 동작 각각이 수행가능하도록 설정될 수 있다.
다른 예로, 배럴 시프터들(612, 613) 각각에 논리 장치(100)가 포함되어 구현되면, 논리 장치(100)는 배럴 시프터들(612, 613) 각각이 몇 비트만큼 데이터 워드를 시프팅하는지 여부를 나타내는 복수의 동작 모드들에 따른 동작들을 수행하도록 설정 또는 재설정될 수 있다. 이러한 경우, 논리 장치(100)의 기능 블록(112)은 제1 비트 수만큼 시프팅을 수행하는 제1 동작 모드에 따른 동작, 제2 비트 수만큼 시프팅을 수행하는 제2 동작 모드에 따른 동작, ... , 제n 비트 수만큼 시프팅을 수행하는 제n 동작 모드에 따른 동작 각각이 수행가능하도록 설정될 수 있다.
또 다른 예로, Mux sel(615)에 논리 장치(100)가 포함되어 구현되면, 논리 장치(100)는 Mux sel(615)가 어떠한 출력을 선택하는지 여부를 나타내는 복수의 동작 모드들에 따른 동작들을 수행하도록 설정 또는 재설정될 수 있다. 이러한 경우, 논리 장치(100)의 기능 블록(112)은 0을 선택하는 제1 동작 모드, 입력데이터를 출력을 선택하는 제2 동작 모드, 및 가산기(614)의 출력을 선택하는 제3 동작 모드에 따른 동작 각각이 수행가능하도록 설정될 수 있다.
이에 따라, 복수의 계수 모듈(610)들 각각은 상기에서와 같은 방식으로 설정 또는 재설정될 수 있다.
이와 같은 방식으로, 시프터(630), 다운샘플러(640) 및 Mux sel(650) 각각이 설정 또는 재설정됨에 따라, 디지털 필터(600)는 복수의 필터 기능들이 통합된 유니버셜 필터(universal filter)로 구현될 수 있다.
도 7은 도 6의 디지털 필터가 비디오 코덱에 포함되는 경우의 일 예를 나타낸 도면이다. 도 7을 참조하면, 비디오 코덱(700)은 H.264에 따른 인코딩 작업을 수행할 수 있다.
도 7을 참조하면, 비디오 코덱(700)은 서브 샘플링 모듈, 프레임 메모리, 전필터, 인트라 예측 모듈, 코딩 제어 모듈, 변환 모듈, 양자화 모듈, 역양자화 모듈, 역변환 모듈, 인트로피 코딩 모듈, 비디오 멀트플렉서, 버퍼, 비트스트림 출력 모듈, 모션 보상 모듈, 모션 추정 모듈, 멀티플 프레임 저장 모듈, 디블로킹 필터, 가산기 등을 사용하여, 각각의 기능에 따른 작업들을 수행할 수 있다. 이에 따라, 비디오 코덱(700)은 비디오 소스를 비트스트림 형태로 출력할 수 있다.
비디오 코덱(700)은 다양한 연산 모드들에 의하여, 많은 하드웨어 자원들을 필요로 하게 된다. 비디오 코덱(700)에 본 실시예에 따른 런타임 재설정가능한 로직인 디지털 필터(600)가 포함되어 구현됨에 따라, 하드웨어 비용을 감소시키면서 다양한 연산 모드들이 효율적으로 수행될 수 있다.
예를 들어, 비디오 코덱(700)의 인트라 예측 모듈에 따른 작업을 수행하는 인트라 예측기(710)는 디지털 필터(600)를 포함할 수 있다. 인트라 예측기(710)는 소정의 인트라 예측 모드에 따른 복수의 연산들에 대응하는 복수의 동작 모드들 각각에 따른 동작을 수행가능하도록 설정가능한 디지털 필터(600)를 이용하여, 예측 작업을 수행할 수 있다. 또한, 디지털 필터(600)는 복수의 논리 장치(100)들을 이용하여 복수의 동작 모드들 각각에 따른 동작들이 수행가능하도록 설정가능하다.
인트라 예측기(710)는 4×4 인트라 예측 모드에 따를 경우 9개의 연산들이 수행될 수 있고, 디지털 필터(600)는 이러한 연산들을 수행하기 위한 복수의 동작 모드들에 따른 동작들을 수행가능하도록 설정 또는 재설정될 수 있다. 4×4 인트라 예측 모드에 따른 9개의 연산들에 대응하는 9개의 동작 모드들 각각은 표 1과 같이 정의될 수 있다.
Num Intra 4×4 Prediction Mode
0 Vertical
1 Horizontal
2 dc
3 diagonal_down_left
4 diagonal_down_right
5 vertical_right
6 horizontal_down
7 vertical_left
8 horizontal_up
이에 따라, 디지털 필터(600)는 인트라 예측 기능을 수행하기 위하여 정의되고, 4×4 인트라 예측 모드에 대응하는 9개의 동작 모드들 각각에 따른 동작들이 수행가능하도록 설정 또는 재설정될 수 있다.
다만, 비디오 코덱(700)의 인트라 예측기(710)이 16×16 인트라 예측 모드에 따를 경우 4개의 연산들이 수행될 수 있고, 8×8 인트라 예측 모드에 따를 경우 4개의 연산들이 수행될 수 있고, 디지털 필터(600)는 각각의 인트라 예측 모드에 대응하여 동작가능하도록 설정 또는 재설정될 수 있다.
따라서, 디지털 필터(600)를 사용함에 따라 비디오 코덱(700)에 비슷한 구조의 복수의 필터들이 존재함에 따라, 파워 소모량 및 면적이 증가하는 것을 방지할 수 있다.
도 8은 도 6의 디지털 필터가 포맷 변환 필터에 포함되는 경우에 따른 다양한 변환작업들의 일 예를 나타낸 도면이다. 이때, 포맷 변환 필터는 MPEG-4를 위한 필터가 될 수 있으나, 이에 한정되지 않는다.
포맷 변환 필터는 다양한 비디오 포맷 변환 작업을 수행할 수 있다. 이러한 포맷 변환 필터에 본 실시예에 따른 런타임 재설정가능한 로직인 디지털 필터(600)가 포함되어 구현됨에 따라, 하드웨어 비용을 감소시키면서 변환 모드들이 효율적으로 수행될 수 있다.
예를 들어, 포맷 변환 필터는 다양한 변환 작업들을 수행할 수 있고, 디지털 필터(600)는 이러한 변환 작업들을 수행하기 위한 복수의 동작 모드들에 따른 동작들을 수행가능하도록 설정 또는 재설정될 수 있다. 포맷 변환 필터에 따른 다양한 변환 작업들에 대응하는 동작 모드들 각각은 표 2와 같이 정의될 수 있다.
Factor Tap no. Filter taps Divisor
A 1/2 1 5, 11, 11, 5 32
B 1/2 1 2, 0, -4, -3, 5, 19, 26, 19, 5, -3, -4, 0, 2 64
C 1/4 1 -5, -4, 0, 5, 12, 19, 24, 26, 24, 19, 12, 5, 0, -4, -5 128


D




6/5
1 -16, 22, 116, 22, -16 128
2 -23, 40, 110, 1 128
3 -24, 63, 100, -11 128
4 -20, 84, 84, -20 128
5 -11, 100, 60, -24 128
6 1, 110, 40, -23 128

E

3/5
1 -24, -9, 88, 146, 88, -9, -24 256
2 -28, 17, 118, 137, 53, -26, -15 256
3 -15, -26, 53, 137, 118, 17, -28 256
F 1/2 1 -12, 0, 140, 256, 140, 0, -12 512
따라서, 디지털 필터(600)는 상기의 다양한 변환 작업들에 대응하는 동작 모드들 각각에 따른 동작이 수행가능하도록 설정 또는 재설정될 수 있다. 이에 따라, 디지털 필터(600)는 상기 표에 기재된 복수의 변환 작업들이 수행가능한 유니버셜 필터가 될 수 있다.
예를 들어, CCIR-601(810)에 의하여 정의된 데이터를 CIF(820)에 의하여 정의된 데이터로 변환하는 경우를 예로 들면, 제1 데이터(704×480)는 1/2 decimation (vertical) 작업에 따라 제2 데이터(704×240)로 변환되고, 제2 데이터(704×240)는 B 필터(1/2, horizontal)의 작업에 따라 제3 데이터(352×240)로 변환되고, 제3 데이터(352×240)는 D 필터(6/5, vertical)의 작업에 따라 제4 데이터(352×288)로 변환될 수 있다.
이에 따라, CCIR-601(810)에 의하여 정의된 제1 데이터는 CIF(820)에 의하여 정의된 제4 데이터로 변환될 수 있고, 상기에서와 같은 세 번의 변환 작업들은 본 실시예에 따른 디지털 필터(600)가 설정 또는 재설정됨에 따라 동작가능하게 된다.
다만, 이에 한정되지 않고, 디지털 필터(600)는 CCIR-601(810), CIF(820), SIF(830), QCIF(840) 및 SQCIF(850) 중 어느 하나에 의하여 정의된 데이터를 CCIR-601(810), CIF(820), SIF(830), QCIF(840) 및 SQCIF(850) 중 기정의되지 않은 포맷에 의하여 정의된 데이터로 변환하기 위한 작업을 수행할 수 있다.
또한, 도 1 내지 도 3에 도시된 논리 장치(100)는 디지털 필터, 비디오 코덱에 한정되지 않고, SDR(Software Defined Radio)에 따른 통신을 수행하기 위한 모듈에 포함되어 사용될 수 있다. 예를 들면, 논리 장치(100)는 SDR 기법에 따른 2G, 3G, 4G, GPS 및 wifi 등을 구현하기 위하여 설정 또는 재설정될 수도 있다.
도 9는 논리 장치(100)를 제어하는 방법을 나타낸 흐름도이다. 도 9를 참조하면, 논리 장치(100)를 제어하는 방법은 도 1 내지 도 3에 도시된 논리 장치(100)에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하에서 생략된 내용이라 하더라도 도 1 내지 도 3에 도시된 논리 장치(100)에 관하여 이상에서 기술된 내용은 도 9의 논리 장치를 제어하는 방법에도 적용됨을 알 수 있다. 예를 들어, 도 9의 논리 장치(100)를 제어하는 방법은 설정 블록(114)이 오버레이 설정 타입으로 구현된 경우에 적용이 가능할 수 있다. 이에 따라, 도 9의 흐름도에 따라, 논리 장치(100)는 복수의 동작 모드들에 따른 동작들이 수행가능하도록 설정가능하도록 구현될 수 있다.
901 단계에서 컨트롤러(130)는 복수의 동작 모드들 중 제1 동작 모드에 따른 제1 동작을 수행하도록 논리 장치(100)를 설정한다.
902 단계에서 컨트롤러(130)는 논리 장치(100)에서 제1 동작을 수행하는 동안, 논리 장치(100)의 내부에 존재하는 제1 비휘발성 메모리(120)로부터 로딩된 설정데이터를 이용하여, 복수의 동작 모드들 중 제2 동작 모드에 따른 제2 동작을 수행하도록 논리 장치(100)를 재설정한다.
예를 들어, 컨트롤러(130)는 논리 장치(100)에서 제1 동작을 수행하는 동안, 제1 비휘발성 메모리(120)로부터 로딩된 설정데이터를 논리 장치(100) 내부에 존재하는 비휘발성 저장 소자에 기록하여 논리 장치(100)를 재설정할 수 있다. 이때, 컨트롤러(130)는 비휘발성 저장 소자를 포함하는 래치를 이용하여 논리 장치(100)를 재설정할 수 있다.
이에 따라, 논리 장치(100)는 제1 동작을 수행하기 위하여 설정된 후, 제1 동작을 수행하는 동안 제2 동작을 수행하기 위하여 재설정될 수 있다. 따라서, 논리 장치(100)는 런타임 설정 및 재설정이 가능할 수 있고, 복수의 기능 블록들을 하나의 기능 블록으로 통합함에 따라 논리 장치(100)가 차지하는 면적을 감소시킬 수 있다.
또한, 논리 장치(100)는 제1 비휘발성 메모리(120) 또는 비휘발성 저장 소자를 사용하기에, 논리 장치(100)에 전원이 인가되지 않더라도 제1 비휘발성 메모리(120) 또는 비휘발성 저장 소자에 기록되어 저장된 데이터들이 유지될 수 있다. 이에 따라, 논리 장치(100)의 전력 소모량을 감소시킬 수 있다.
한편, 상술한 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 방법에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 램, USB, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등), PC 인터페이스(PC Interface)(예를 들면, PCI, PCI-express, Wifi 등)와 같은 저장매체를 포함한다.
본 실시예와 관련된 기술 분야에서 통상의 지식을 가진 자는 상기된 기재의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 방법들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
100 ... 논리 장치
110 ... 논리 블록
112 ... 기능 블록
114 ... 설정 블록
120 ... 제1 비휘발성 메모리
130 ... 컨트롤러

Claims (20)

  1. 논리 장치에 있어서,
    복수의 동작 모드(operation mode)들에 대응하는 동작들이 수행가능하도록 설정가능한(configurable) 하나의 기능 블록(function block);
    상기 복수의 동작 모드들 중 어느 하나에 따른 동작이 상기 기능 블록에서 수행가능하도록 상기 기능 블록을 설정하는 설정데이터(configurable data)를 기록(writing)하기 위한 복수의 비휘발성 저장 소자들을 포함하는 설정 블록(configuration block);
    상기 기능 블록이 상기 복수의 동작 모드들 중 어느 하나에 따른 동작을 수행하도록, 상기 설정 블록을 제어하는 컨트롤러;를 포함하고,
    상기 설정 블록은 상기 복수의 비휘발성 저장 소자들에 기록된 설정데이터를 상기 기능 블록으로 출력하는 래치(latch)를 포함하고,
    상기 래치는,
    제1 비휘발성 저장 소자 및 제2 비휘발성 저장 소자;
    공통된 제1 스위칭 신호에 의해 제어되도록 구성되고, 상기 제1 비휘발성 저장 소자를 제1 및 제2 데이터 라인들 각각에 개별적으로 연결하는 제1 및 제2 트랜지스터들;
    공통된 제2 스위칭 신호에 의해 제어되도록 구성되고, 상기 제2 비휘발성 저장 소자를 상기 제1 및 제2 데이터 라인들 각각에 개별적으로 연결하는 제3 및 제4 트랜지스터들;
    상기 제1 비휘발성 저장 소자의 양단에 연결되고, 상기 제1 비휘발성 저장 소자의 활성화 또는 비활성화와 연관된 제1 공통 제어 신호에 의해 제어되도록 구성되는 제 5 및 제6 트랜지스터들; 및
    상기 제2 비휘발성 저장 소자의 양단에 연결되고, 상기 제2 비휘발성 저장 소자의 활성화 또는 비활성화와 연관된 제2 공통 제어 신호에 의해 제어되도록 구성되는 제7 및 제8 트랜지스터들을 포함하는 논리 장치.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 설정데이터를 저장하는 제1 비휘발성 메모리;를 더 포함하고,
    상기 설정 블록은 상기 기능 블록을 상기 복수의 동작 모드들 중 제1 동작 모드로 설정하기 위하여, 상기 제1 비휘발성 메모리로부터 로딩된 제1 동작 모드에 대응하는 제1 설정데이터를 상기 설정 블록 내에 존재하는 상기 제1 비휘발성 저장 소자에 기록(writing)하는 논리 장치.
  4. 제 3 항에 있어서,
    상기 설정 블록은 상기 제1 설정데이터를 이용하여 상기 제1 동작 모드에 따른 제1 동작이 상기 기능 블록에서 수행될 수 있도록 상기 기능 블록을 설정하고, 상기 복수의 동작 모드들 중 제2 동작 모드에 대응하는 제2 설정데이터를 상기 설정 블록 내에 존재하는 상기 제2 비휘발성 저장 소자에 기록하는 논리 장치.
  5. 제 4 항에 있어서,
    상기 기능 블록에서 상기 제1 동작을 수행하는 동안, 상기 제2 설정데이터가 상기 제2 비휘발성 저장 소자에 기록되는 것을 특징으로 하는 논리 장치.
  6. 제 4 항에 있어서,
    상기 제1 동작이 상기 기능 블록에서 수행될 수 있도록 상기 기능 블록이 설정되는 동안, 상기 제2 설정데이터가 상기 제2 비휘발성 저장 소자에 기록되는 것을 특징으로 하는 논리 장치.
  7. 제 4 항에 있어서,
    상기 설정 블록의 상기 제1 비휘발성 저장 소자로부터 독출된 제1 설정데이터를 상기 기능 블록으로 출력하는 시점부터 상기 기능 블록에서 상기 제1 동작의 수행을 완료하는 시점 사이에, 상기 제2 설정데이터가 상기 제2 비휘발성 저장 소자에 기록되는 것을 특징으로 하는 논리 장치.
  8. 제 1 항에 있어서,
    상기 설정데이터를 저장하는 제1 비휘발성 메모리;를 더 포함하고,
    상기 설정 블록은 상기 제1 비휘발성 메모리로부터 데이터라인들을 통하여 입력되는 데이터를, 상기 컨트롤러에서 출력되는 제어신호에 응답하여, 상기 설정 블록 내에 존재하는 상기 제1 비휘발성 저장 소자 또는 상기 제2 비휘발성 저장 소자 중 어느 하나에 기록하고,
    상기 컨트롤러에서 출력되는 제어신호는 상기 데이터라인들과 상기 제1 비휘발성 저장 소자 또는 상기 제2 비휘발성 저장 소자 각각의 양단에 연결된 스위칭 소자들 중 적어도 어느 하나를 제어하는 스위칭 제어신호를 포함하는 논리 장치.
  9. 제 8 항에 있어서,
    상기 컨트롤러는 상기 제1 비휘발성 저장 소자 또는 상기 제2 비휘발성 저장 소자의 활성화 여부를 나타내는 제어신호를 참조하여, 상기 스위칭 제어신호를 출력하는 논리 장치.
  10. 제 9 항에 있어서,
    상기 제1 비휘발성 저장 소자 및 상기 제2 비휘발성 저장 소자 각각의 활성화 여부를 나타내는 제어신호들 각각은 상기 제1 비휘발성 저장 소자 및 상기 제2 비휘발성 저장 소자 각각의 양단에 연결된 스위칭 소자들의 스위칭 동작을 제어하는 논리 장치.
  11. 제 1 항에 있어서,
    상기 설정 블록은 상기 복수의 동작 모드들 각각에 대응하는 비휘발성 저장 소자들 각각에 기록된 설정데이터를 이용하여 상기 기능 블록을 설정하는 논리 장치.
  12. 필터 기능에 따른 복수의 동작 모드들에 대응하는 동작들이 수행가능하도록 설정가능한 제 1 항, 제 3 항 내지 제 11 항 중 어느 한 항의 논리 장치를 포함하는 디지털 필터.
  13. 제 12 항에 있어서,
    상기 디지털 필터에 포함된 복수의 시프터들 중 적어도 어느 하나는 복수의 동작 모드들 각각에 대응하는 비트 수만큼 데이터 워드(data word)를 시프팅하도록 설정가능한 논리 장치를 포함하는 디지털 필터.
  14. 제 12 항에 있어서,
    상기 디지털 필터를 이용하여 입력데이터의 포맷을 변환하는 포맷 변환 필터.
  15. 인코딩 작업을 수행하는 비디오 코덱에 있어서,
    소정의 인트라 예측 모드에 따른 복수의 연산들에 대응하는 복수의 동작 모드들 각각에 따른 동작을 수행가능하도록 설정가능한 디지털 필터를 이용하여, 예측 작업을 수행하는 인트라 예측기;를 포함하고,
    상기 디지털 필터는 복수의 논리 장치들을 이용하여 상기 복수의 동작 모드들 각각에 따른 동작들이 수행가능하도록 설정가능하고, 상기 논리 장치들 각각은
    상기 복수의 동작 모드들에 대응하는 동작들이 수행가능하도록 설정가능한 하나의 기능 블록;
    상기 복수의 동작 모드들 중 어느 하나에 따른 동작이 상기 기능 블록에서 수행가능하도록 상기 기능 블록을 설정하는 설정데이터를 기록하기 위한 복수의 비휘발성 저장 소자들을 포함하는 설정 블록; 및
    상기 기능 블록이 상기 복수의 동작 모드들 중 어느 하나에 따른 동작을 수행하도록, 상기 설정 블록을 제어하는 컨트롤러;를 포함하고,
    상기 설정 블록은 상기 복수의 비휘발성 저장 소자들에 기록된 설정데이터를 상기 기능 블록으로 출력하는 래치를 포함하고,
    상기 래치는,
    제1 비휘발성 저장 소자 및 제2 비휘발성 저장 소자;
    공통된 제1 스위칭 신호에 의해 제어되도록 구성되고, 상기 제1 비휘발성 저장 소자를 제1 및 제2 데이터 라인들 각각에 개별적으로 연결하는 제1 및 제2 트랜지스터들;
    공통된 제2 스위칭 신호에 의해 제어되도록 구성되고, 상기 제2 비휘발성 저장 소자를 상기 제1 및 제2 데이터 라인들 각각에 개별적으로 연결하는 제3 및 제4 트랜지스터들;
    상기 제1 비휘발성 저장 소자의 양단에 연결되고, 상기 제1 비휘발성 저장 소자의 활성화 또는 비활성화와 연관된 제1 공통 제어 신호에 의해 제어되도록 구성되는 제 5 및 제6 트랜지스터들; 및
    상기 제2 비휘발성 저장 소자의 양단에 연결되고, 상기 제2 비휘발성 저장 소자의 활성화 또는 비활성화와 연관된 제2 공통 제어 신호에 의해 제어되도록 구성되는 제7 및 제8 트랜지스터들을 포함하는 비디오 코덱.
  16. 제 15 항에 있어서,
    상기 논리 장치들 각각은 상기 설정데이터를 저장하는 제1 비휘발성 메모리;를 더 포함하고,
    상기 설정 블록은 상기 기능 블록을 상기 복수의 동작 모드들 중 제1 동작 모드로 설정하기 위하여, 상기 제1 비휘발성 메모리로부터 로딩된 제1 동작 모드에 대응하는 제1 설정데이터를 상기 설정 블록 내에 존재하는 상기 제1 비휘발성 저장 소자에 기록하는 비디오 코덱.
  17. 제 15 항에 있어서,
    상기 설정 블록은 상기 복수의 동작 모드들 각각에 대응하는 비휘발성 저장 소자들 각각에 기록된 설정데이터를 이용하여 상기 기능 블록을 설정하는 비디오 코덱.
  18. 설정 블록 및 기능 블록을 포함하고, 복수의 동작 모드들에 따른 동작들이 수행가능하도록 설정가능한 논리 장치를 제어하는 방법에 있어서,
    상기 복수의 동작 모드들 중 제1 동작 모드에 따른 제1 동작을 수행하도록 상기 논리 장치를 설정하는 단계; 및
    상기 논리 장치에서 상기 제1 동작을 수행하는 동안, 상기 논리 장치의 내부에 존재하는 비휘발성 메모리로부터 로딩된 설정데이터를 이용하여, 상기 복수의 동작 모드들 중 제2 동작 모드에 따른 제2 동작을 수행하도록 상기 논리 장치를 재설정하는 단계;를 포함하고,
    상기 설정하는 단계는 상기 설정 블록을 이용하여 상기 설정 블록에 포함되는 제1 비휘발성 저장 소자에 기록된 제1 설정 데이터를 상기 기능 블록으로 출력하는 단계를 포함하고,
    상기 재설정하는 단계는 상기 논리 장치에서 상기 제1 동작을 수행하는 동안, 상기 비휘발성 메모리로부터 로딩된 제2 설정데이터를 상기 설정 블록에 포함되는 제2 비휘발성 저장 소자에 기록하는 단계를 포함하며,
    상기 설정 블록은 상기 제1 설정 데이터를 상기 기능 블록으로 출력하는 래치를 포함하고,
    상기 설정하는 단계는 상기 제1 비휘발성 저장 소자의 활성화 또는 비활성화와 연관된 제1 공통 제어 신호를 이용하여 상기 제1 비휘발성 저장 소자의 양단에 연결되는 제1 및 제2 트랜지스터들을 제어함으로써 상기 제1 비휘발성 저장 소자로부터 상기 제1 설정 데이터를 독출하고, 상기 독출된 제1 설정 데이터를 상기 래치의 출력 단자를 통해 상기 기능 블록으로 출력하는 단계를 더 포함하고,
    상기 재설정하는 단계는 공통된 제1 스위칭 신호를 이용하여 상기 제2 비휘발성 소자를 제1 및 제2 데이터 라인들 각각에 개별적으로 연결하는 제3 및 제 4 트랜지스터들을 제어함으로써 상기 제1 및 제2 데이터라인들을 통해 입력된 상기 제2 설정 데이터를 상기 제2 비휘발성 저장 소자에 기록하는 단계를 더 포함하는 방법.
  19. 삭제
  20. 제 18 항의 방법을 컴퓨터에서 실행시키기 위한 컴퓨터 프로그램을 저장한 컴퓨터로 읽을 수 있는 기록매체.
KR1020120131110A 2012-11-19 2012-11-19 논리 장치, 논리 장치를 포함하는 디지털 필터 및 논리 장치를 제어하는 방법 KR101920719B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020120131110A KR101920719B1 (ko) 2012-11-19 2012-11-19 논리 장치, 논리 장치를 포함하는 디지털 필터 및 논리 장치를 제어하는 방법
US13/963,015 US10051265B2 (en) 2012-11-19 2013-08-09 Logic devices, digital filters and video codecs including logic devices, and methods of controlling logic devices
CN201310391990.1A CN103824580B (zh) 2012-11-19 2013-09-02 逻辑设备、包括逻辑设备的数字滤波器和该设备控制方法
EP13189567.4A EP2733851B1 (en) 2012-11-19 2013-10-21 Logic devices, digital filters and video codecs including logic devices, and methods of controlling logic devices
US16/043,851 US10554994B2 (en) 2012-11-19 2018-07-24 Logic devices, digital filters and video codecs including logic devices, and methods of controlling logic devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120131110A KR101920719B1 (ko) 2012-11-19 2012-11-19 논리 장치, 논리 장치를 포함하는 디지털 필터 및 논리 장치를 제어하는 방법

Publications (2)

Publication Number Publication Date
KR20140064134A KR20140064134A (ko) 2014-05-28
KR101920719B1 true KR101920719B1 (ko) 2019-02-13

Family

ID=49448003

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120131110A KR101920719B1 (ko) 2012-11-19 2012-11-19 논리 장치, 논리 장치를 포함하는 디지털 필터 및 논리 장치를 제어하는 방법

Country Status (4)

Country Link
US (2) US10051265B2 (ko)
EP (1) EP2733851B1 (ko)
KR (1) KR101920719B1 (ko)
CN (1) CN103824580B (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10523207B2 (en) * 2014-08-15 2019-12-31 Altera Corporation Programmable circuit having multiple sectors
TWI561007B (en) * 2015-07-22 2016-12-01 Nuvoton Technology Corp Function programmable circuit and operation method thereof
KR102409505B1 (ko) * 2017-12-22 2022-06-14 에스케이하이닉스 주식회사 비휘발성 메모리 소자를 포함하는 lut, lut를 포함하는 fpga 및 fpga 디자인 방법
KR102559581B1 (ko) * 2018-05-23 2023-07-25 삼성전자주식회사 재구성 가능 로직을 포함하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
CN109002884A (zh) * 2018-07-20 2018-12-14 郑州云海信息技术有限公司 一种池化处理装置及池化处理方法
US10565138B2 (en) * 2018-09-28 2020-02-18 Intel Corporation Memory device with multiple memory arrays to facilitate in-memory computation
CN110164488A (zh) * 2019-04-08 2019-08-23 苏州汇峰微电子有限公司 一种支持多元存储配置的存储器
US10782759B1 (en) 2019-04-23 2020-09-22 Arbor Company, Lllp Systems and methods for integrating batteries with stacked integrated circuit die elements
JP7064060B1 (ja) * 2019-04-23 2022-05-09 アーバー・カンパニー・エルエルエルピイ 二重機能セルアレイを再構成するためのシステムおよび方法
EP4173041A4 (en) 2020-06-29 2024-02-07 Arbor Company Lllp MOBILE IoT PERIPHERAL DEVICE USING PROCESSOR-INDEPENDENT 5G MODEM 3D CHIP STACK RECONFIGURABLE PROCESSOR MODULE

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040125660A1 (en) * 2002-12-26 2004-07-01 Renesas Technology Corp. Nonvolatile memory device efficiently changing functions of field programmable gate array at high speed
US20090031106A1 (en) * 2005-05-31 2009-01-29 Ipflex Inc. Reconfigurable device
US20100066408A1 (en) * 2007-06-12 2010-03-18 Fujitsu Limited Configuration data feeding device
US20110228595A1 (en) * 2010-03-22 2011-09-22 Qualcomm Incorporated Memory Cell That Includes Multiple Non-Volatile Memories

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5426378A (en) * 1994-04-20 1995-06-20 Xilinx, Inc. Programmable logic device which stores more than one configuration and means for switching configurations
US5646545A (en) * 1995-08-18 1997-07-08 Xilinx, Inc. Time multiplexed programmable logic device
FR2776093A1 (fr) 1998-03-10 1999-09-17 Philips Electronics Nv Circuit processeur programmable muni d'une memoire reconfigurable, pour realiser un filtre numerique
AUPP918699A0 (en) * 1999-03-12 1999-04-15 Canon Kabushiki Kaisha Encoding method and appartus
US6542000B1 (en) 1999-07-30 2003-04-01 Iowa State University Research Foundation, Inc. Nonvolatile programmable logic devices
JP3925062B2 (ja) 2000-09-19 2007-06-06 三菱電機株式会社 車載電子制御装置
US6963890B2 (en) 2001-05-31 2005-11-08 Koninklijke Philips Electronics N.V. Reconfigurable digital filter having multiple filtering modes
US6988116B2 (en) 2002-04-15 2006-01-17 Visteon Global Technologies, Inc. Method of designing polynomials for controlling the slewing of adaptive digital films
AU2003237279A1 (en) * 2002-05-29 2003-12-19 Pixonics, Inc. Classifying image areas of a video signal
US7996671B2 (en) 2003-11-17 2011-08-09 Bluerisc Inc. Security of program executables and microprocessors based on compiler-architecture interaction
US7233532B2 (en) * 2004-04-30 2007-06-19 Xilinx, Inc. Reconfiguration port for dynamic reconfiguration-system monitor interface
WO2006023490A2 (en) 2004-08-17 2006-03-02 That Corporation Configurable recursive digital filter for processing television audio signals
GB0423708D0 (en) 2004-10-26 2004-11-24 Koninkl Philips Electronics Nv Adapting filter to detected interference level
US20070046781A1 (en) 2005-08-29 2007-03-01 Honeywell International Inc. Systems and methods for processing digital video data
US20070283311A1 (en) * 2006-05-30 2007-12-06 Theodore Karoubalis Method and system for dynamic reconfiguration of field programmable gate arrays
US7864885B2 (en) 2006-11-15 2011-01-04 Samsung Electronics Co., Ltd. Multiple input multiple output (MIMO) transceiver with pooled adaptive digital filtering
WO2011043797A2 (en) 2009-10-05 2011-04-14 Thomson Licensing Methods and apparatus for adaptive filtering of prediction pixels for chroma components in video encoding and decoding
KR101611416B1 (ko) 2009-12-09 2016-04-12 삼성전자주식회사 비휘발성 논리 회로, 상기 비휘발성 논리 회로를 포함하는 집적 회로 및 상기 집적 회로의 동작 방법
KR101174546B1 (ko) 2010-02-26 2012-08-16 한양대학교 산학협력단 통과 대역의 재구성이 가능한 디지털 필터 장치
FR2964481B1 (fr) * 2010-09-08 2012-08-31 Thales Sa Dispositif ameliore pour la configuration d'un composant programmable, systeme integrant ce dispositif, et procede associe
US8793298B2 (en) 2010-11-01 2014-07-29 Blackberry Limited Reconfigurable digital signal filter processor
CN102486867B (zh) 2010-12-04 2013-08-07 中国科学院沈阳自动化研究所 一种模式可动态配置的图像高斯滤波方法及实现装置
WO2013076928A1 (ja) * 2011-11-22 2013-05-30 パナソニック株式会社 不揮発性ラッチ回路、不揮発性フリップフロップ回路および不揮発性信号処理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040125660A1 (en) * 2002-12-26 2004-07-01 Renesas Technology Corp. Nonvolatile memory device efficiently changing functions of field programmable gate array at high speed
US20090031106A1 (en) * 2005-05-31 2009-01-29 Ipflex Inc. Reconfigurable device
US20100066408A1 (en) * 2007-06-12 2010-03-18 Fujitsu Limited Configuration data feeding device
US20110228595A1 (en) * 2010-03-22 2011-09-22 Qualcomm Incorporated Memory Cell That Includes Multiple Non-Volatile Memories

Also Published As

Publication number Publication date
US10554994B2 (en) 2020-02-04
EP2733851A1 (en) 2014-05-21
US10051265B2 (en) 2018-08-14
CN103824580A (zh) 2014-05-28
CN103824580B (zh) 2018-12-14
US20140140397A1 (en) 2014-05-22
EP2733851B1 (en) 2021-09-22
US20180332297A1 (en) 2018-11-15
KR20140064134A (ko) 2014-05-28

Similar Documents

Publication Publication Date Title
KR101920719B1 (ko) 논리 장치, 논리 장치를 포함하는 디지털 필터 및 논리 장치를 제어하는 방법
US9350528B2 (en) Low power digital phase interpolator
US5834947A (en) Microcontroller accessible macrocell
US9495318B2 (en) Synchronizing transactions for a single master over multiple busses
JP2018537871A (ja) Fpgaのテストおよび構成のためのシステムおよび方法
JP6517626B2 (ja) 再構成可能な半導体装置
US20200142842A1 (en) Storage device adaptively supporting plurality of protocols
CN110495100B (zh) 存储接口、时序控制方法及存储系统
US20180260009A1 (en) Apparatus for processing data, and method for operating such an apparatus
JPS6340412A (ja) 有限状態機械回路
US8601254B1 (en) Configurable reset pin for input/output port
CN103268302B (zh) 一种接口扩展电路、接口扩展连接方法和嵌入式系统
US20100138672A1 (en) Raid controller, storage control device, and storage control method
US9923561B2 (en) Reconfigurable device
KR101773162B1 (ko) 데이터 처리 장치 및 데이터 처리 방법
US20200241770A1 (en) Retaining memory during partial reconfiguration
CN106505994A (zh) 时序电路及其操作方法
US8751693B2 (en) Apparatus for and method of processing data
EP1239594B1 (en) Method and system for efficient information exchange
US20190332136A1 (en) Apparatuses and methods for avoiding glitches when switching clock sources
JP5209738B2 (ja) ラッチ回路デバイスの条件付き制御のシステム及び方法
US10319348B2 (en) Memory subsystem consumer trigger
JP5530207B2 (ja) プログラマブルロジックデバイスおよびそれを用いた電子機器
US7996657B2 (en) Reconfigurable computing circuit
CN106201568B (zh) 电子装置、多电脑切换器及其固件更新方法

Legal Events

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