KR102552666B1 - 전자 장치 및 그것의 동작 방법 - Google Patents

전자 장치 및 그것의 동작 방법 Download PDF

Info

Publication number
KR102552666B1
KR102552666B1 KR1020180138097A KR20180138097A KR102552666B1 KR 102552666 B1 KR102552666 B1 KR 102552666B1 KR 1020180138097 A KR1020180138097 A KR 1020180138097A KR 20180138097 A KR20180138097 A KR 20180138097A KR 102552666 B1 KR102552666 B1 KR 102552666B1
Authority
KR
South Korea
Prior art keywords
state
value
information
register
functional blocks
Prior art date
Application number
KR1020180138097A
Other languages
English (en)
Other versions
KR20200055193A (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 KR1020180138097A priority Critical patent/KR102552666B1/ko
Priority to US16/439,159 priority patent/US10983584B2/en
Priority to CN201910705813.3A priority patent/CN111176550B/zh
Publication of KR20200055193A publication Critical patent/KR20200055193A/ko
Application granted granted Critical
Publication of KR102552666B1 publication Critical patent/KR102552666B1/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
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3246Power saving characterised by the action undertaken by software initiated power-off
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/25Testing of logic operation, e.g. by logic analysers
    • 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명의 실시 예에 따른 코어를 포함하는 전자 장치의 동작 방법은 코어와 독립적으로 구동되는 제1 기능 블록의 제1 상태 레지스터로부터 제1 상태 정보를 읽는 단계, 코어와 독립적으로 구동되는 제2 기능 블록의 제2 상태 레지스터로부터 제2 상태 정보를 읽는 단계, 제1 기능 블록의 제1 플래그 레지스터로부터 제2 변경 정보를 읽는 단계, 제2 기능 블록의 제2 플래그 레지스터로부터 제2 변경 정보를 읽는 단계, 읽은 제1 및 제2 상태 정보 및 읽은 제1 및 제2 변경 정보를 기반으로 전자 장치의 동작 상태가 유휴 상태 및 비지 상태 중 어느 하나의 상태인지를 결정하는 단계, 및 결정된 동작 상태를 기반으로 대응하는 동작 모드로 동작하는 단계를 포함한다.

Description

전자 장치 및 그것의 동작 방법{ELECTRONIC DEVICE AND OPERATION METHOD THEREOF}
본 발명은 전자 장치에 관한 것으로, 더욱 상세하게는 전자 장치 및 그것의 동작 방법에 관한 것이다.
일반적으로, 스마트 폰, 컴퓨터, 노트북, 디지털 카메라, 태블릿 등과 같은 컴퓨팅 시스템들 또는 그것에 포함된 다양한 전자 장치들은 동작 환경에 따라 다양한 동작 모드로 동작한다.
일 예로서, 대용량 저장 매체로 널리 사용되는 SSD(Solid State Drive)는 복수의 플래시 메모리들, 버퍼 메모리, 컨트롤러 등과 같은 다양한 전자 장치들을 포함한다. 이러한 전자 장치들의 상태에 따라 SSD는 다양한 동작 모드들로 동작할 수 있다. SSD가 의도한 동작 모드로 동작하기 위해서는 다양한 전자 장치들의 상태를 정확하게 판별하는 것이 중요하다. 그러나, 전자 장치들의 기능이 다양화됨에 따라, 특정한 시점에서 전자 장치의 상태를 정확하게 판별하는 것이 어렵게 되고, 이에 따라 SSD와 같은 장치들이 정확한 동작 모드로 동작할 수 없는 문제점이 발생한다.
본 발명의 목적은 독립적으로 구동하는 복수의 기능 블록들의 상태를 정확하게 판별함으로써, 향상된 신뢰성을 갖는 전자 장치를 제공하는데 있다.
본 발명의 실시 예에 따른 코어를 포함하는 전자 장치의 동작 방법은 상기 코어와 독립적으로 구동되는 제1 기능 블록의 제1 상태 레지스터로부터 제1 상태 정보를 읽는 단계, 상기 코어와 독립적으로 구동되는 제2 기능 블록의 제2 상태 레지스터로부터 제2 상태 정보를 읽는 단계, 상기 제1 기능 블록의 상기 제1 플래그 레지스터로부터 제2 변경 정보를 읽는 단계, 상기 제2 기능 블록의 상기 제2 플래그 레지스터로부터 제2 변경 정보를 읽는 단계, 상기 읽은 제1 및 제2 상태 정보 및 상기 읽은 제1 및 제2 변경 정보를 기반으로 상기 전자 장치의 동작 상태가 유휴 상태 및 비지 상태 중 어느 하나의 상태인지를 결정하는 단계, 및 상기 결정된 동작 상태를 기반으로 대응하는 동작 모드로 동작하는 단계를 포함한다.
본 발명의 실시 예에 따른 전자 장치는 코어, 및 상기 코어와 독립적으로 동작하도록 구성된 복수의 기능 블록들을 포함하고, 상기 복수의 기능 블록들 각각은 미리 정해진 기능을 수행하도록 구성된 논리 회로, 상기 논리 회로의 동작 상태를 검출하도록 구성된 상태 머신, 상기 논리 회로의 상기 동작 상태에 대응하는 상태 정보를 저장하도록 구성된 상태 레지스터, 및 상기 논리 회로의 상기 동작 상태의 변경에 대응하는 변경 정보를 저장하도록 구성된 플래그 레지스터를 포함하고, 상기 코어는 상기 복수의 기능 블록들 각각의 상기 상태 레지스터 및 상기 플래그 레지스터의 상기 상태 정보 및 상기 변경 정보를 기반으로 상기 복수의 기능 블록들 각각에 대한 상태 체크 동작을 수행하고, 상기 상태 체크 동작을 수행한 이후에, 상기 복수의 기능 블록들 각각의 상기 플래그 레지스터의 상기 변경 정보를 기반으로 상기 복수의 기능 블록들 각각에 대한 상태 변경 체크 동작을 수행하고, 상기 상태 체크 동작 및 상기 상태 변경 체크 동작의 결과들을 기반으로 상기 복수의 기능 블록들의 동작 상태를 판별하고, 상기 판별된 동작 상태을 기반으로 복수의 동작 모드들 중 대응하는 동작 모드로 동작하도록 구성된다.
본 발명의 실시 예에 따른 코어 및 상기 코어와 독립적으로 구동하도록 구성된 복수의 기능 블록들을 포함하는 전자 장치의 동작 방법은 상기 복수의 기능 블록들 각각에 대한 상태 체크 동작을 수행하는 단계, 상기 상태 체크 동작의 결과가 상기 복수의 기능 블록들이 모두 유휴 상태임을 가리키는 경우, 상기 복수의 기능 블록들 각각에 대한 상태 변경 체크 동작을 수행하는 단계, 및 상기 상태 변경 체크 동작의 결과가 상기 복수의 기능 블록들이 모두 동작 상태가 변경되지 않았음을 가리키는 경우, 상기 전자 장치의 동작 상태를 유휴 상태인 것으로 판별하고, 대응하는 동작 모드로 동작하는 단계를 포함한다.
본 발명의 실시 예들에 따르면, 전자 장치에 포함된 상태 판별기는 독립적으로 구동하는 복수의 기능 블록들 모두가 특정 시간 동안 유휴 상태를 유지하는지 판단할 수 있다. 따라서, 전자 장치의 전체적인 상태가 정확하게 검출될 수 있으며, 이에 따라 향상된 신뢰성을 갖는 전자 장치 및 그것의 동작 방법이 제공된다.
도 1은 본 발명의 실시 예에 따른 저장 장치를 보여주는 블록도이다.
도 2는 도 1의 컨트롤러를 예시적으로 보여주는 블록도이다.
도 3은 도 2의 컨트롤러의 동작을 보여주는 순서도이다.
도 4a는 종래의 코어 및 기능 블록 사이의 동작을 설명하기 위한 도면이다.
도 4b는 본 발명의 실시 예에 따른 기능 블록들의 동작 및 상태 판별기의 동작을 설명하기 위한 도면이다.
도 5는 도 4b의 제1 기능 블록을 예시적으로 보여주는 블록도이다.
도 6은 도 5의 제1 기능 블록의 동작을 보여주는 순서도이다.
도 7a 및 도 7b는 도 2의 상태 판별기의 동작을 보여주는 순서도들이다.
도 8a 내지 도 10b는 본 발명의 실시 예들을 좀 더 상세하게 설명하기 위한 도면들이다.
도 11은 도 2의 상태 판별기의 동작을 보여주는 순서도이다.
도 12a 내지 도 12d는 도 11의 S260 단계의 동작을 설명하기 위한 도면들이다.
도 13은 도 2의 상태 판별기의 동작을 보여주는 순서도이다.
도 14는 본 발명의 실시 예에 따른 전자 장치를 예시적으로 보여주는 블록도이다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 발명의 실시 예에 따른 저장 장치를 보여주는 블록도이다. 이하에서, 본 발명의 실시 예들을 용이하게 설명하기 위하여, 저장 장치(100)를 기준으로 본 발명의 실시 예들이 설명되나, 본 발명의 범위가 이에 한정되는 것은 아니다. 본 발명의 실시 예에 따른 소프트웨어, 하드웨어, 또는 그것들의 조합은 저장 장치, 컴퓨터, 스마트폰, 디지털 카메라 등과 같은 다양한 전자 시스템 또는 컴퓨팅 시스템 또는 전자 장치에 적용될 수 있다.
도 1을 참조하면, 저장 장치(100)는 컨트롤러(110) 및 메모리 장치(120)를 포함할 수 있다. 컨트롤러(110)는 메모리 장치(120)를 제어하도록 구성될 수 있다. 예를 들어, 컨트롤러(110)는 메모리 장치(120)에 데이터를 저장하거나 또는 메모리 장치(120)에 저장된 데이터를 읽을 수 있다.
메모리 장치(120)는 컨트롤러(110)의 제어에 따라 데이터를 저장하거나 또는 저장된 데이터를 출력할 수 있다. 예시적인 실시 예에서, 메모리 장치(120)는 SRAM, DRAM 등과 같은 휘발성 메모리 또는 플래시 메모리, PRAM, MRAM, RRAM, FRAM 불휘발성 메모리를 포함할 수 있다.
본 발명의 실시 예에 따른 컨트롤러(110)는 메모리 장치(120)를 제어하기 위한 다양한 기능들(예를 들어, 맵핑 테이블 관리 기능, 에러 정정 기능, 랜더마이징 기능, 또는 프로세서에 의해 실행되는 다양한 연산 동작 등)을 제공할 수 있다. 상술된 다양한 기능들은 컨트롤러(110)에서 제공되는 소프트웨어, 하드웨어, 또는 그것들의 조합에 기반된 기능 블록(Functional Block)에 의해 수행될 수 있다.
컨트롤러(110)는 기능 블록들의 상태를 기반으로 다양한 동작 모드들로 동작할 수 있다. 예를 들어, 기능 블록들 각각은 비지 상태(busy status) 및 유휴 상태(idle status) 중 어느 하나의 상태를 가질 수 있다. 비지 상태(busy status)는 기능 블록이 특정 기능을 수행하거나 또는 다른 기능 블록과 통신 중인 상태를 가리킬 수 있다. 유휴 상태(idle status)는 기능 블록이 동작 또는 통신을 수행하지 않는 상태를 가리킬 수 있다. 컨트롤러(110)는 기능 블록들의 상태를 판별(즉, 기능 블록이 비지 상태인지 또는 유휴 상태인지를 판별)함으로써, 파워 오프 모드, 파워 세이빙 모드, 리셋 모드, 유휴 모드 등과 같은 동작 모드로 동작할 수 있다.
본 발명의 실시 예에 따른 컨트롤러(110)는 상태 판별기(111)를 포함할 수 있다. 상태 판별기(111)는 컨트롤러(110)에서 제공되는 다양한 기능 블록들의 상태를 판별하도록 구성될 수 있다. 예시적인 실시 예에서, 상태 판별기(111)는 컨트롤러(110)의 메인 코어(main core)에서 구동되는 소프트웨어 형태로 제공되거나 또는 별도로 구비된 하드웨어 형태로 제공될 수 있다. 본 발명의 실시 예에 따른 상태 판별기(111)의 구성은 이하의 도면들을 참조하여 상세하게 설명된다.
도 2는 도 1의 컨트롤러를 예시적으로 보여주는 블록도이다. 도 2를 참조하면, 컨트롤러(110)는 상태 판별기(111), 프로세서(112), SRAM(113), ECC 엔진(114), DMA 엔진(115), 호스트 인터페이스(116), 및 메모리 인터페이스(117)를 포함할 수 있다.
코어(112)는 컨트롤러(110)의 제반 동작을 제어하도록 구성될 수 있다. 예시적인 실시 예에서, 코어(112)에서 수행될 다양한 기능들(예를 들어, 데이터 연산, 검색, 추가 등) 중 일부 기능들은 별도의 하드웨어 형태로 구비된 기능 블록(FB)에 의해 수행될 수 있다. 즉, 코어(112)에서 수행될 일부 기능들이 별도의 하드웨어로 구성된 기능 블록들(FB)에 의해 수행됨으로써, 코어(112)의 연산 부담이 감소되고, 컨트롤러(110)의 전반적인 성능이 향상될 수 있다.
예시적인 실시 예에서, 기능 블록들(FB)은 코어(112)로부터의 요청에 의해 특정 기능을 수행하거나 또는 코어(112)로부터의 요청 없이 독립적으로 특정 기능을 수행할 수 있다. 기능 블록들(FB)이 코어(112)로부터의 요청 없이 독립적으로 특정 기능을 수행하는 경우, 코어(112)는 기능 블록들의 상태(즉, 비지 상태 또는 유휴 상태)를 인지하지 못할 수 있다.
상태 판별기(111)는 상술된 기능 블록들(FB)의 상태를 판별하도록 구성될 수 있다. 예를 들어, 상태 판별기(111)는 특정 시점에서 기능 블록들(FB)이 모두 유휴 상태인지를 판별할 수 있다. 상태 판별기(111)의 상태 판별 동작은 이하의 도면들을 참조하여 더욱 상세하게 설명된다.
SRAM(113)은 컨트롤러(110)의 버퍼 메모리, 동작 메모리, 또는 메인 메모리로서 사용될 수 있다. 예시적인 실시 예에서, 상태 판별기(111)는 소프트웨어, 하드웨어, 또는 그것들의 조합의 형태로 구현될 수 있다. 소프트웨어 형태로 구현된 상태 판별기(111)에 대한 프로그램 코드 또는 명령어는 SRAM(113)에 저장되고, SRAM(113)에 저장된 정보는 코어(112)에 의해 실행될 수 있다.
ECC 엔진(114)은 메모리 장치(120)로부터 읽어진 데이터의 에러를 검출하고 정정하는 에러 검출 및 정정 동작을 수행하도록 구성될 수 있다. DMA 엔진(115)은 특정 구성들(예를 들어, 컨트롤러(110)에 포함된 구성 요소들, 메모리 장치(120), 또는 외부 장치(호스트 등)) 사이의 직접 메모리 접근(DMA; Direct Memory Access) 동작을 수행하도록 구성될 수 있다.
컨트롤러(110)는 호스트 인터페이스(116)를 통해 외부 장치와 통신하도록 구성될 수 있다. 컨트롤러(110)는 메모리 인터페이스(117)를 통해 메모리 장치(120)와 통신할 수 있다.
이하에서, 설명의 편의를 위하여, 상태 판별기(111)가 코어(112)의 요청 없이 독립적으로 동작하는 기능 블록들(FB)의 상태를 판별하는 실시 예들이 설명되나, 본 발명의 범위가 이에 한정되는 것은 아니다. 예를 들어, 상태 판별기(111)는 코어(112)의 요청 또는 개입없이 특정 동작을 수행하도록 구성된 구성 요소들 구성 요소들(예를 들어, SRAM(113), ECC 엔진(114), DMA 엔진(115), 호스트 인터페이스(116), 또는 메모리 인터페이스(117))의 상태를 판별하도록 구성될 수 있다.
도 3은 도 2의 컨트롤러의 동작을 보여주는 순서도이다. 도 4a는 종래의 코어 및 기능 블록 사이의 동작을 설명하기 위한 도면이다. 도 4b는 본 발명의 실시 예에 따른 기능 블록들의 동작 및 상태 판별기의 동작을 설명하기 위한 도면이다.
먼저, 도 2 및 도 3을 참조하면, S11 단계에서, 컨트롤러(110)는 기능 블록들의 상태를 체크할 수 있다. 예를 들어, 상태 판별기(110)는 컨트롤러(110)에 포함된 기능 블록들(FB) 각각의 상태를 체크할 수 있다.
S12 단계에서, 컨트롤러(110)는 체크 결과를 기반으로, 특정 동작 모드로 진입할 수 있다. 예를 들어, 기능 블록들(FB)의 상태가 특정 시점에서 모두 유휴 상태인 경우, 컨트롤러(110)는 파워 오프 모드, 파워 세이빙 모드, 리셋 모드, 유휴 모드 등과 같은 특정 동작 모드로 진입할 수 있다.
이 경우, 기능 블록들(FB)이 특정 시점(즉, 동 시점)에 모두 유휴 상태임을 검출하는 것이 중요하다. 도 4a에 도시된 바와 같이, 종래의 구성에서, 제1 내지 제4 기능 블록들(FBa~FBd)은 코어(C)의 일부 기능들을 각각 수행하도록 구성될 수 있다. 이 때, 코어(C)는 제1 내지 제4 기능 블록들(FBa~FBd)의 동작을 직접적으로 제어할 수 있다. 즉, 코어(C)는 제1 내지 제4 기능 블록들(FBa~FBd)의 현재 상태(즉, 비지 상태인지 유휴 상태인지)를 인지할 수 있다.
그러나, 도 4b에 도시된 바와 같이, 본 발명의 실시 예에 따른 제1 내지 제4 기능 블록들(FB1~FB4)은 코어(112)의 요청 또는 개입 없이 독립적으로 특정 기능을 수행하거나 또는 독립적으로 서로 통신을 수행하도록 구성될 수 있다. 이 경우, 코어(112)가 특정 시점에서의 제1 내지 제4 기능 블록들(FB1~FB4)의 상태를 검출하지 못할 수 있다. 예를 들어, 코어(112)는 제1 내지 제4 기능 블록들(FB1~FB4)의 상태를 검출하기 위하여, 제1 내지 제4 기능 블록들(FB1~FB4) 각각에 대하여 순차적으로 상태 검출 동작을 수행할 수 있다. 제1 기능 블록(FB1)의 상태가 유휴 상태인 것으로 검출되고, 이후에 제2 기능 블록(FB1)에 대한 상태를 검출하기 위한 동작을 수행하는 도중에, 제1 기능 블록(FB1)의 상태가 비지 상태로 바뀔 수 있다. 즉, 순차적인 상태 검출 동작 도중에 제1 내지 제4 기능 블록들(FB1~FB4) 각각의 상태가 변경될 수 있기 때문에, 코어(112)는 특정 시점(즉, 동 시점)에서의 제1 내지 제4 기능 블록들(FB1~FB4)의 상태를 검출하지 못할 수 있다.
본 발명에 따른 상태 판별기(111)는 특정 시점에서 제1 내지 제4 기능 블록들(FB1~FB4)이 모두 유휴 상태임을 확인할 수 있는 상태 검출 동작을 수행할 수 있다. 이하의 도면들을 참조하여 본 발명의 실시 예에 따른 상태 판별기(111)의 동작이 좀 더 상세하게 설명된다.
도 5는 도 4b의 제1 기능 블록을 예시적으로 보여주는 블록도이다. 도 6은 도 5의 제1 기능 블록의 동작을 보여주는 순서도이다. 도 5 및 도 6을 참조하여 제1 기능 블록(FB1)이 예시적으로 설명되나, 다른 기능 블록들 또한 유사한 구조를 갖거나 유사한 방법을 기반으로 동작할 수 있다.
도 2, 도 5, 및 도 6을 참조하면, 제1 기능 블록(FB1)은 로직 회로(L/C), 상태 머신(S/M), 상태 레지스터(STR), 및 플래그 레지스터(FLR)를 포함할 수 있다. 로직 회로(L/C)는 코어(112)에서 수행될 다양한 기능들 중 특정 기능을 수행하도록 구성된 하드웨어 구성일 수 있다.
상태 머신(S/M)은 로직 회로(L/C)가 특정 기능을 수행 중인지를 판별할 수 있다. 로직 회로(L/C)가 특정 기능을 수행 중인 경우, 상태 머신(S/M)은 제1 기능 블록(FB1)이 비지 상태(Busy Status)인 것으로 판단하고, 로직 회로(L/C)가 특정 기능을 수행하지 않는 경우, 상태 머신(S/M)은 제1 기능 블록(FB1)이 유휴 상태(Idle Status)인 것으로 판단할 수 있다.
상태 머신(S/M)은 판단된 상태(즉, 비지 상태 또는 유휴 상태)를 기반으로 상태 레지스터(STR) 또는 플래그 레지스터(FLR)의 값을 설정할 수 있다. 예를 들어, 도 6에 도시된 바와 같이, S101 단계에서, 제1 기능 블록(FB1)의 상태 머신(S/M)은 상태가 변경되었는지 판별할 수 있다.
제1 기능 블록(FB1)의 상태가 변경된 경우(즉, 유휴 상태에서 비지 상태로 변경 또는 비지 상태에서 유휴 상태로 변경), S102 단계에서, 상태 머신(S/M)은 플래그 레지스터(FLR)를 "셋(SET)"시킬 수 있다. 즉, 플래그 레지스터(FLR)의 값이 "셋(SET)"인 것은 제1 기능 블록(FB1)의 상태가 변경되었음(즉, 유휴 상태에서 비지 상태로, 또는 비지 상태에서 유휴 상태로 변경)을 가리킬 수 있다.
S103 단계에서, 상태 머신(S/M)은 제1 기능 블록(FB1)의 상태를 판별할 수 있다. 판단된 상태가 비지 상태인 경우, S104 단계에서, 상태 머신(S/M)은 상태 레지스터(STR)를 "셋(SET)"시킬 수 있다. 판단된 상태가 유휴 상태인 경우, S105 단계에서, 상태 머신(S/M)은 상태 레지스터(STR)를 "클리어(CLEAR)"시킬 수 있다. 즉, 상태 레지스터(STR)의 값이 "셋(SET)"인 것은 제1 기능 블록(FB1)이 유휴 상태임을 가리키고, 상태 레지스터(STR)의 값이 "클리어(CLEAR)"인 것은 제1 기능 블록(FB1)이 비지 상태임을 가리킬 수 있다.
상술된 바와 같이, 제1 기능 블록(FB1)은 상태가 변경되었는지 여부 및 현재 상태를 기반으로 플래그 레지스터(FLR) 및 상태 레지스터(STR)의 값을 조정할 수 있다.
도 7a 및 도 7b는 도 2의 상태 판별기의 동작을 보여주는 순서도들이다. 설명의 편의를 위하여, 본 발명의 실시 예들을 설명하는데 불필요한 구성 요소들은 생략된다. 이하에서, 본 발명의 실시 예들은 상태 판별기(111)의 동작을 기반으로 설명되나, 본 발명의 범위가 이에 한정되는 것은 아니며, 본 발명의 실시 예들은 별도의 하드웨어 구성 또는 상태 판별기(111)를 구동하도록 구성된 코어(예를 들어, 도 2의 코어(112))에 의해 구현될 수 있다.
이하에서, 설명의 편의를 위하여, 상태 판별기(111)가 복수의 기능 블록들 각각에 포함된 상태 레지스터(STR) 및 플래그 레지스터(FLR)를 직접 제어(즉, 상태 레지스터(STR) 및 플래그 레지스터(FLR)를 직접 읽거나, 직접 클리어하는 동작)하는 것으로 설명되나, 본 발명의 범위가 이에 한정되는 것은 아니다. 예를 들어, 상태 판별기(111)는 상태 레지스터(STR) 및 플래그 레지스터(FLR)를 제어하기 위한 특정 명령을 복수의 기능 블록들 각각으로 제공할 수 있고, 복수의 기능 블록들 각각에 포함된 상태 머신(M/C)은 수신된 특정 명령에 응답하여 상태 레지스터(STR) 및 플래그 레지스터(FLR)를 제어할 수 있다.
이하에서, 설명의 편의를 위하여, 상태 레지스터(STR) 및 플래그 레지스터(FLR)는 설정된 상태에 따라 "비트 0"(간략하게 "0"으로 표기함.) 및 "비트 1"(간략하게 "1"로 표기함.) 중 어느 하나의 값을 갖는 것으로 가정한다. 예를 들어, 상태 레지스터(STR) 및 플래그 레지스터(FLR)가 "셋(SET)"된 경우, 각각은 "1"의 값을 갖고, 상태 레지스터(STR) 및 플래그 레지스터(FLR)가 "클리어(CLEAR)된 경우, 각각은 "0"의 값을 갖는 것으로 가정한다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니며, 상태 레지스터(STR) 및 플래그 레지스터(FLR)는 설정된 상태에 따라 다양한 비트 값을 갖거나 또는 다양한 비트 코드를 가질 수 있다.
도 2, 도 5, 도 7a, 및 도 7b를 참조하면, S110 단계에서, 변수(k)가 "1"로 설정될 수 있다. 상세한 설명에서 사용되는 변수(k)는 단순히 본 발명의 실시 예에 따른 반복 동작을 설명하기 위한 구성으로서, 본 발명의 범위를 제한하는 의미로 해석되지 않는다.
S115 단계에서, 상태 판별기(111)는 제k 기능 블록의 상태를 체크할 수 있다. 예를 들어, 도 7b에 도시된 바와 같이, 상태 판별기(111)는 S115a 내지 S115d 단계의 동작들을 수행하여, 제k 기능 블록의 상태를 체크할 수 있다.
S115a 단계에서, 상태 판별기(111)는 제k 기능 블록의 상태 레지스터(STR) 및 플래그 레지스터(FLR)를 "락(Lock)"시킬 수 있다. 이후에, S115b 단계에서, 상태 레지스터(STR)는 제k 기능 블록의 상태 레지스터(STR)의 값을 읽을 수 있다. 이후에, S115d 단계에서, 상태 판별기(111)는 플래그 레지스터(FLR)의 값을 "클리어(CLEAR)"시킬 수 있다. 이후에, S115d 단계에서, 상태 판별기(111)는 제k 기능 블록의 상태 레지스터(STR) 및 플래그 레지스터(FLR)를 "언락(Unlock)"시킬 수 있다.
예시적인 실시 예에서, 상태 레지스터(STR) 및 플래그 레지스터(FLR)를 "락(Lock)"시키고, "언락(Unlock)"시키는 것은 상태 판별기(111)가 제k 기능 블록의 상태를 체크하는 동안, 다른 구성들(예를 들어, 상태 머신(S/M)에 의해 상태 레지스터(STR)의 값 또는 플래그 레지스터(FLR)의 값이 변경되는 것을 방지하기 위함이다. 즉, 상태 판별기(111)의 S115 단계의 동작이 아토믹하게(atomically) 수행됨을 보장하기 위함이다. 아토믹하게 동작하는 것 또는 아토믹 동작(atomic operation)은 특정 동작들이 연속적 그리고 순차적으로 수행되는 것이 보장되며, 특정 동작들 사이에 다른 동작이 수행되지 않는 것을 의미한다.
예를 들어, 제k 기능 블록의 상태를 체크하는 동안, 제k 기능 블록의 상태가 변경(예를 들어, 유휴 상태에서 비지 상태로 변경)될 수 있다. 이 경우, 상태 레지스터(STR) 및 플래그 레지스터(FLR)를 "락(Lock)"/"언락(Unlock)"하지 않는다면, 상태 머신(S/M)에 의한 상태 레지스터(STR) 또는 플래그 레지스터(FLR)의 셋 동작과 상태 판별기(111)에 의한 상태 레지스터(STR) 읽기 동작 및 플래그 레지스터(FLR) 클리어 동작이 충돌할 수 있다. 이러한 동작 충돌을 방지하기 위하여, 상태 판별기(111)는 상태 레지스터(STR) 및 플래그 레지스터(FLR)를 "락(Lock)"/"언락(Unlock)"할 수 있다.
예시적인 실시 예에서, 상태 판별기(111)에 의해 수행되는 제k 기능 블록의 상태 체크 동작 도중에 제k 기능 블록의 상태가 변경된 경우, 제k 기능 블록은 상태 판별기(111)에 의한 상태 체크 동작이 종료된 이후에(즉, S115 단계 이후에, 또는 S115d 단계 이후에) 상태 레지스터(STR) 및 플래그 레지스터(FLR)를 대응하는 값으로 설정할 수 있다.
S120 단계에서, 상태 판별기(111)는 읽은 상태 레지스터(STR)의 값이 "0"인지 판별할 수 있다. 상태 레지스터(STR)의 값이 "0"이 아닌 것(즉, "1"인 경우)은 제k 기능 블록의 상태가 비지 상태(busy status)임을 가리킬 것이다. 이 경우, S125 단계에서, 상태 판별기(111)는 장치(예를 들어, 컨트롤러(110))가 비지 상태인 것으로 판단한다.
상태 레지스터(STR)의 값이 "0"인 것은 제k 기능 블록의 상태가 유휴 상태(Idle status)임을 가리킬 것이다. 이 경우, S130 단계에서, 상태 판별기(111)는 변수(k)가 최대치인지 판별할 수 있다. 즉, 상태 판별기(111)는 모든 기능 블록에 대한 상태 체크 동작이 수행되었는지 판별할 수 있다.
변수(k)가 최대치가 아닌 경우(즉, 상태 체크 동작이 수행되지 않은 기능 블록이 존재하는 경우), S135 단계에서, 변수(k)가 1만큼 증가하고, 상태 판별기(111)는 S115 단계의 동작을 수행한다.
상술된 바와 같이, 상태 판별기(111)는 S115 단계 내지 S135 단계의 동작들을 수행함으로써, 모든 기능 블록들이 유휴 상태임을 체크할 수 있다.
이후에, S145 단계에서, 변수(k)가 1로 설정된다. S150 단계에서, 상태 판별기(111)는 제k 기능 블록의 플래그 레지스터(FLR)를 읽을 수 있다.
S155 단계에서, 상태 판별기(111)는 읽은 플래그 레지스터(FLR)의 값이 "0"인지 판별할 수 있다. S115 단계의 상태 체크 동작에서, 플래그 레지스터(FLR)가 "클리어"되었기 때문에, S150 단계에서 읽은 플래그 레지스터(FLR)의 값이 "0"이 아닌 것(즉, "1"인 경우)은 제k 기능 블록의 상태가 변경되었음을 가리킬 것이다. 다시 말해서, S150 단계에서 읽은 플래그 레지스터(FLR)의 값이 "0"이 아닌 것(즉, "1"인 경우)은, 상태 판별기(111)의 상태 체크 동작 이후에, 제k 기능 블록의 상태가 유휴 상태에서 비지 상태로 변경되었음을 가리킬 수 있다. 이 경우, S125 단계에서, 상태 판별기(111)는 장치가 비지 상태인 것으로 판단할 수 있다.
S150 단계에서 읽은 플래그 레지스터(FLR)의 값이 "0"인 것은 상태 판별기(111)의 상태 체크 동작 이후에, 제k 기능 블록의 상태가 변경되지 않았음을 가리킬 것이다. 즉, 플래그 레지스터(FLR)의 값이 "0"인 것은 상태 판별기(111)의 상태 체크 동작 이후에, 제k 기능 블록은 유휴 상태를 유지하고 있음을 가리킨다. 이 경우, S160 단계에서, 변수(k)가 최대치인지 판별되고, 변수(k)가 최대치가 아닌 경우, S170 단계에서, 변수(k) 1만큼 증가한 이후에, S150 단계의 동작이 수행된다. 상태 판별기(111)는 S150 단계 내지 S170 단계의 동작들을 수행함으로써, 모든 기능 블록들에 대한 상태 변경 체크 동작을 수행할 수 있다.
변수(k)가 최대치인 경우, S175 단계에서, 상태 판별기(111)는 장치가 유휴 상태인 것으로 판단할 수 있다. 예를 들어, 상태 판별기(111)는 S115 단계 내지 S135 단계의 동작들(즉, 상태 체크 동작)을 수행함으로써, 모든 기능 블록들의 상태가 유휴 상태임을 판단할 수 있다. 이후에, 상태 판별기(111)는 S150 단계 내지 S170 단계의 동작들(즉, 상태 변경 체크 동작)을 수행함으로써, 모든 기능 블록들이 상태 체크 동작 이후에, 상태가 변경된 이력이 없음을 판단할 수 있다.
다시 말해서, 상태 판별기(111)는 모든 기능 블록들에 대한 상태 체크 동작 및 상태 변경 체크 동작을 각각 수행함으로써, 특정 시점에서 모든 기능 블록들이 유휴 상태임을 확인할 수 있다.
도 8a 내지 도 10b는 본 발명의 실시 예들을 좀 더 상세하게 설명하기 위한 도면들이다. 설명의 편의를 위하여, 제1 내지 제4 기능 블록들(FB1~FB4)에 대한 상태 판별 동작을 기준으로 본 발명의 실시 예들이 설명된다. 제1 내지 제4 기능 블록들(FB1~FB4)은 각각 제1 내지 제4 상태 레지스터들(STR1~STR4) 및 제1 내지 제4 플래그 레지스터들(FLR1~FLR4)을 포함할 수 있다.
도 8a 및 도 8b를 참조하여, 제3 기능 블록(FB3)이 비지 상태인 경우의 실시 예가 설명되고, 도 9a 내지 도 9c를 참조하여, 제1 내지 제4 기능 블록들(FB1~FB4)이 유휴 상태인 경우의 실시 예가 설명되고, 도 10a 및 도 10b를 참조하여 제2 기능 블록(FB2)의 상태가 변경된 경우(즉, 유휴 상태에서 비지 상태로 변경된 경우)의 실시 예가 설명된다.
먼저, 도 8a에 도시된 바와 같이, 제1, 제2, 및 제4 기능 블록들(FB1, FB2, FB4)은 유휴 상태(Idle)이고, 제3 기능 블록(FB3)은 비지 상태(Busy)일 수 있다. 이 경우, 도 8b에 도시된 바와 같이, 제1, 제2, 및 제4 기능 블록들(FB1, FB2, FB4)의 제1, 제2, 및 제4 상태 레지스터들(STR1, STR2, STR4)은 "0"의 값(즉, 클리어 상태)을 가질 수 있고, 제3 기능 블록(FB3)의 제3 상태 레지스터(STR3)는 "1"의 값(즉, 셋 상태)을 가질 수 있다.
상태 판별기(111)는 도 7의 순서도에 따른 방법을 기반으로 제1 내지 제4 기능 블록들(FB1~FB4)의 상태를 판별할 수 있다. 먼저, 제1 시점(t1)에서, 상태 판별기(111)는 제1 기능 블록(FB1)에 대한 상태 체크 동작을 수행할 수 있다. 예를 들어, 상태 판별기(111)는 제1 기능 블록(FB1)의 제1 상태 레지스터(STR1)의 값을 읽고, 제1 플래그 레지스터(FLR1)의 값을 "클리어(Clear)"할 수 있다. 상태 판별기(111)는 제1 상태 레지스터(STR1)의 값이 "0"임을 기반으로 제1 기능 블록(FB1)이 유휴 상태임을 확인할 수 있다.
이후에, 상태 판별기(111)는 제2 시점(t2)에서 제2 기능 블록(FB2)에 대한 상태 체크 동작을 수행하고, 제3 시점(t3)에서 제3 기능 블록(FB3)에 대한 상태 체크 동작을 수행할 수 있다. 제2 및 제3 기능 블록들(FB2, FB3)에 대한 상태 체크 동작들은 제1 기능 블록(FB1)에 대한 상태 체크 동작과 유사하므로, 이에 대한 상세한 설명은 생략된다.
앞서 설명된 바와 같이, 제3 기능 블록(FB3)은 비지 상태이며, 제3 상태 레지스터(STR3)의 값은 "1"일 수 있다. 상태 판별기(111)는 제3 상태 레지스터(STR3)의 값이 "1"임을 확인함으로써, 제3 기능 블록(FB3)이 비지 상태임을 판단할 수 있다. 이에 따라, 상태 판별기(111)는 장치(예를 들어, 도 1의 컨트롤러(110) 또는 저장 장치(100))가 비지 상태인 것으로 판단할 수 있다.
다음으로, 도 9a 내지 도 9c를 참조하면, 제1 내지 제4 기능 블록들(FB1~FB4)은 모두 유휴 상태(Idle)일 수 있다. 이 경우, 제1 내지 제4 기능 블록들(FB1~FB4)의 제1 내지 제4 상태 레지스터들(STR1~STR4)은 모두 "0"의 값을 가질 것이다.
도 9b에 도시된 바와 같이, 상태 판별기(111)는 제1, 제2, 제3, 및 제4 시점들(t1, t2, t3, t4)에서, 제1, 제2, 제3, 및 제4 기능 블록들(FB1, FB2, FB3, FB4)에 대한 상태 체크 동작을 각각 수행할 수 있다. 제1, 제2, 제3, 및 제4 기능 블록들(FB1, FB2, FB3, FB4)에 대한 상태 체크 동작은 앞서 설명되었으므로, 이에 대한 상세한 설명은 생략된다.
이후에, 도 9c에 도시된 바와 같이, 상태 판별기(111)는 제5, 제6, 제7, 및 제8 시점들(t5, t6, t7, t8)에서, 제1, 제2, 제3, 및 제4 기능 블록들(FB1, FB2, FB3, FB4)에 대한 상태 변경 체크 동작을 각각 수행할 수 있다. 예를 들어, 제5 시점(t5)에서, 상태 판별기(111)는 제1 기능 블록(FB1)의 제1 플래그 레지스터(FLR1)의 값을 읽을 수 있다. 제1 기능 블록(FB1)은 유휴 상태(Idle)를 유지하고 있기 때문에, 제1 플래그 레지스터(FLR1)의 값은 "0"을 유지할 것이다. 상태 판별기(111)는 제1 플래그 레지스터(FLR1)의 값이 "0"인 것을 확인함으로써, 제1 기능 블록(FB1)이 특정 시간 동안 유휴 상태를 유지하고 있음을 인지할 수 있다. 마찬가지로, 상태 판별기(111)는 제6, 제7, 및 제8 시점들(t6, t7, t8)에서, 제2, 제3, 및 제4 플래그 레지스터들(FLR2, FLR3, FLR4)의 값들을 각각 읽을 수 있고, 제2, 제3, 및 제4 플래그 레지스터들(FLR2, FLR3, FLR4)의 값들이 "0"임을 확인함으로써, 제2, 제3, 및 제4 기능 블록들(FB2, FB3, FB4)이 특정 시간 동안 유휴 상태를 유지하고 있음을 인지할 수 있다.
예를 들어, 도 9b 및 도 9b에 도시된 동작을 통해, 상태 판별기(111)는 제1 기능 블록(FB1)이 제1 시점(t1)으로부터 제5 시점(t5)까지의 시간 동안 유휴 상태를 유지하고, 제2 기능 블록(FB2)이 제2 시점(t2)으로부터 제6 시점(t6)까지의 시간 동안 유휴 상태를 유지하고, 제3 기능 블록(FB3)이 제3 시점(t3)으로부터 제7 시점(t7)까지의 시간 동안 유휴 상태를 유지하고, 제4 기능 블록(FB4)이 제4 시점(t4)으로부터 제8 시점(t8)까지의 시간 동안 유휴 상태를 유지하고 있음을 인지할 수 있다. 이 경우, 적어도 제4 시점(t4)으로부터 제5 시점(t5)까지의 시간 동안 제1 내지 제4 기능 블록들(FB1~FB4) 전체가 유휴 상태임이 보장될 수 있다.
상태 판별기(111)는 도 9b 및 도 9c의 동작들을 통해, 모든 기능 블록들이 특정 시간 구간 동안 유휴 상태임을 확인함으로써, 장치가 유휴 상태인 것으로 판단할 수 있다.
다음으로, 도 10a 및 도 10b를 참조하면, 도 10a에 도시된 바와 같이, 제1 내지 4 기능 블록들(FB1~FB4)은 유휴 상태(Idle)이나, 제2 기능 블록(FB2)은 제2 시점(t2)에서, 유휴 상태(Idle)에서 비지 상태(Busy)로 변경될 수 있다.
상태 판별기(111)는 제1, 제2, 제3, 및 제4 시점들(t1, t2, t3, t4)에서, 제1, 제2, 제3, 및 제4 기능 블록들(FB1, FB2, FB3, FB4)에 대한 상태 체크 동작을 각각 수행할 수 있다. 제1, 제2, 제3, 및 제4 기능 블록들(FB1, FB2, FB3, FB4)에 대한 상태 체크 동작은 도 9b를 참조하여 설명된 바와 유사하므로, 이에 대한 상세한 설명은 생략된다.
예시적인 실시 예에서, 도 10a에 도시된 바와 같이, 제2 시점(t2)에서 제2 기능 블록(FB2)의 상태가 유휴 상태에서 비지 상태로 변경될 수 있다. 이 경우, 제2 기능 블록(FB2)은 제2 상태 레지스터(STR2)의 값 및 제2 플래그 레지스터(FLR2)의 값을 "1"로 변경(즉, "셋(SET)")할 수 있다. 예시적인 실시 예에서, 제2 시점(t2)에서 상태 판별기(111)에 의해 제2 기능 블록(FB2)에 대한 상태 체크 동작이 수행되는 경우, 상술된 제2 플래그 레지스터(FLR2)의 값을 변경하는 동작은 제2 기능 블록(FB2)에 대한 상태 체크 동작이 완료된 이후에 수행될 것이다. 이는 도 7b를 참조하여 설명되었으므로, 이에 대한 상세한 설명은 생략된다.
도 10b에 도시된 바와 같이, 상태 판별기(111)는 제5 시점(t5)에서, 제1 기능 블록(FB1)에 대한 상태 변경 체크 동작을 수행하고, 제6 시점(t6)에서 제2 기능 블록(FB2)에 대한 상태 변경 체크 동작을 수행할 수 있다. 앞서 설명된 바와 같이, 제2 기능 블록(FB2)의 상태 변경에 따라, 제2 플래그 레지스터(FLR2)의 값이 "1"로 변경될 것이다. 상태 판별기(111)는 제2 플래그 레지스터(FLR2)의 값이 "1"임을 확인함으로써, 제2 기능 블록(FB2)의 상태가 변경되었음을 인지할 수 있다. 다시 말해서, 상태 판별기(111)는 제2 플래그 레지스터(FLR2)의 값이 "1"임을 확인함으로써, 제2 기능 블록(FB2)의 상태가 유휴 상태로부터 비지 상태로 변경되었음을 인지할 수 있다. 이에 따라, 상태 판별기(111)는 장치의 상태가 비지 상태인 것으로 판단할 수 있다.
상술된 바와 같이, 본 발명의 실시 예에 따른 상태 판별기는 복수의 기능 블록들 각각에 대하여 상태 체크 동작 및 상태 변경 체크 동작을 수행함으로써, 특정 시간 동안 모든 기능 블록들이 유휴 상태인지를 판단할 수 있다. 따라서, 복수의 기능 블록들이 다른 제어기 또는 코어의 개입 없이 독립적으로 동작하는 환경에서, 복수의 기능 블록들의 상태를 정확하게 판단할 수 있다. 따라서, 향상된 성능 및 향상된 신뢰성을 갖는 전자 장치가 제공될 수 있다.
도 11은 도 2의 상태 판별기의 동작을 보여주는 순서도이다. 도 2, 도 5, 및 도 11을 참조하면, 상태 판별기(111)는 S210 단계 및 S215 단계의 동작들을 수행할 수 있다. S210 단계 및 S215 단계의 동작들은 도 7a의 S110 단계 및 S115 단계의 동작과 유사하므로, 이에 대한 상세한 설명은 생략된다.
S220 단계에서, 상태 판별기(111)는 읽은 상태 레지스터의 값을 저장할 수 있다. 이후에, 상태 판별기(111)는 S225 단계 및 S230 단계의 동작들을 수행한다. 상태 판별기(111)는 S215 단계 내지 S230 단계의 동작들을 반복 수행하여 모든 기능 블록들에 대한 상태 레지스터들의 값들을 저장할 수 있다.
예를 들어, 도 7a 및 도 7b를 참조하여 설명된 실시 예에서, 상태 판별기(111)는 읽은 상태 레지스터(STR)의 값이 "1"인 경우, 나머지 기능 블록들에 대한 상태 체크 동작을 수행하지 않고, 장치의 상태가 비지 상태인 것으로 판단한다. 그러나, 도 11에 따른 실시 예에서, 상태 판별기(111)는 읽은 상태 레지스터(STR)의 값과 무관하게, 모든 기능 블록들에 대하여 상태 체크 동작을 수행하고, 읽은 상태 레지스터(STR)의 값을 저장할 수 있다.
이후에, 상태 판별기(111)는 S235 단계 내지 S255 단계의 동작들을 수행할 수 있다. S235 단계, S240 단계, S250 단계, 및 S255 단계의 동작들은 도 7a의 S145 단계, S150 단계, S160 단계, 및 S170 단계의 동작들과 유사하므로 이에 대한 상세한 설명은 생략된다.
상태 판별기(111)는 S235 단계 내지 S255 단계의 동작들을 수행하여, 복수의 기능 블록들 각각에 대한 플래그 레지스터들(FLR)의 값을 읽고, 읽은 플래그 레지스터들(FLR)의 값을 저장할 수 있다. 예를 들어, 도 7a를 참조하여 설명된 상태 변경 체크 동작에서, 상태 판별기(111)는 플래그 레지스터(FLR)의 값이 "1"인 경우(즉, 기능 블록의 상태가 변경된 경우), 나머지 기능 블록들에 대한 상태 변경 체크 동작을 수행하지 않고, 장치가 비지 상태인 것으로 판단한다. 반면에, 도 11의 순서도에 따르면, 플래그 레지스터(FLR)의 값과 무관하게, 상태 판별기(111)는 모든 기능 블록들에 대한 플래그 레지스터들(FLR)의 값을 저장하여 관리할 수 있다.
이후에, S260 단계에서, 상태 판별기(111)는 저장된 값들을 기반으로 장치의 상태를 최종적으로 판별할 수 있다. 예를 들어, 복수의 기능 블록들에 대한 상태 체크 동작에서, 복수의 기능 블록들이 모두 유휴 상태인 것으로 체크되고, 복수의 기능 블록들에 대한 상태 변경 체크 동작에서, 복수의 기능 블록들의 상태들이 모두 변경되지 않은 것으로 판단된 경우, 상태 판별기(111)는 장치가 유휴 상태인 것으로 판단할 수 있다.
또는, 복수의 기능 블록들에 대한 상태 체크 동작에서, 복수의 기능 블록들이 모두 유휴 상태인 것으로 체크되고, 복수의 기능 블록들에 대한 상태 변경 체크 동작에서, 일부 기능 블록들의 상태들이 변경된 것으로 판단된 경우, 상태 판별기(111)는 장치가 비지 상태인 것으로 판단할 수 있다.
또는, 복수의 기능 블록들에 대한 상태 체크 동작에서, 복수의 기능 블록들 중 일부 기능 블록들이 유휴 상태인 것으로 체크되고, 나머지 기능 블록들이 비지 상태인 것으로 체크되고, 복수의 기능 블록들에 대한 상태 변경 체크 동작에서, 상기 일부 기능 블록들의 상태들이 변경되지 않고, 상기 나머지 기능 블록들의 상태들이 변경된 것으로 체크된 경우, 상태 판별기(111)는 장치가 유휴 상태인 것으로 판단할 수 있다.
또는 복수의 기능 블록들에 대한 상태 체크 동작에서, 복수의 기능 블록들 중 일부 기능 블록들이 유휴 상태인 것으로 체크되고, 나머지 기능 블록들이 비지 상태인 것으로 체크되고, 복수의 기능 블록들에 대한 상태 변경 체크 동작에서, 상기 일부 기능 블록들의 상태들이 변경되거나 또는 상기 나머지 기능 블록들의 상태들이 변경되지 않은 경우, 상태 판별기(111)는 장치가 비지 상태인 것으로 판단할 수 있다.
도 12a 내지 도 12d는 도 11의 S260 단계의 동작을 설명하기 위한 도면들이다. 도 12a를 참조하여 제1 내지 제4 기능 블록들(FB1~FB4)의 상태들이 모두 유휴 상태를 유지하는 경우의 실시 예가 설명되고, 도 12b를 참조하여 제3 기능 블록(FB3)의 상태가 비지 상태로 유지되는 경우의 실시 예가 설명되고, 도 12c를 참조하여 제3 기능 블록(FB3)의 상태가 비지 상태에서 유휴 상태로 변경되는 경우의 실시 예가 설명되고, 도 12d를 참조하여, 제3 기능 블록(FB3)의 상태가 유휴 상태에서 비지 상태로 변경되는 실시 예가 설명된다.
도 2 및 도 12a 내지 도 12d를 참조하면, 상태 판별기(111)는 제1, 제2, 제3, 및 제4 시점들(t1, t2, t3, t4)에서 제1, 제2, 제3, 및 제4 기능 블록들(FB1, FB, FB3, FB4)에 대한 상태 체크 동작을 각각 수행하고, 상태 체크 동작에 따라 읽어진 상태 레지스터(STR)의 값을 저장할 수 있다. 이후에, 상태 판별기(111)는 제5, 제6, 제7, 및 제8 시점들(t5, t6, t7, t8)에서, 제1, 제2, 제3, 및 제4 기능 블록들(FB1, FB, FB3, FB4)에 대한 상태 변경 체크 동작을 각각 수행하고, 상태 변경 체크 동작에 따라 읽어진 플래그 레지스터(FLR)의 값을 저장할 수 있다.
도 12a에 도시된 바와 같이, 제1 내지 제4 기능 블록들(FB1~FB4)이 모두 유휴 상태를 유지하는 경우, 상태 체크 동작에 의해 읽어진 상태 레지스터(STR)의 값 및 상태 변경 체크 동작에 의해 플래그 레지스터(FLR)의 값은 모두 "0"일 것이다. 이 경우, 상태 레지스터(STR)의 값 및 플래그 레지스터(FLR)의 값의 연산(예를 들어, 배타적 논리합(XOR) 연산)의 결과 값은 모두 "0"일 것이다. 이 경우, 상태 판별기(111)는 장치의 상태를 유휴 상태인 것으로 판단할 것이다.
도 12b에 도시된 바와 같이, 제1, 제2, 및 제4 기능 블록들(FB1, FB2, FB4)이 유휴 상태를 유지하고, 제3 기능 블록(FB3)이 비지 상태를 유지하는 경우, 제1, 제2, 및 제4 기능 블록들(FB1, FB2, FB4)에 대한 상태 체크 동작에서 읽어진 상태 레지스터들(STR)의 값들은 "0"이고, 제3 기능 블록(FB3)에 대한 상태 체크 동작에서 읽어진 상태 레지스터(STR)의 값은 "1"일 것이다. 제1 내지 제4 기능 블록들(FB1~FB4)은 각각의 상태(유휴 상태 또는 비지 상태)를 유지하고 있기 때문에, 제1 내지 제4 기능 블록들(FB1~FB4)에 대한 상태 변경 체크 동작에서 읽어진 플래그 레지스터(FLR)의 값들은 "0"일 것이다. 이 경우, 상태 레지스터(STR)의 값과 플래그 레지스터(FLR)의 값들의 연산(예를 들어, XOR)의 결과는 모두 "0"이 아닐 수 있다. 이에 따라 상태 판별기(111)는 장치의 상태가 비지 상태인 것으로 판단할 것이다.
도 12c에 도시된 바와 같이, 제1, 제2, 및 제4 기능 블록들(FB1, FB2, FB4)이 유휴 상태를 유지하고, 제3 기능 블록(FB3)은 비지 상태에서 유휴 상태로 변경된 경우, 제1, 제2, 및 제4 기능 블록들(FB1, FB2, FB4)에 대한 상태 체크 동작에서 읽어진 상태 레지스터들(STR)의 값들은 "0"이고, 제3 기능 블록(FB3)에 대한 상태 체크 동작에서 읽어진 상태 레지스터(STR)의 값은 "1"일 것이다. 제1, 제2, 및 제4 기능 블록들(FB1, FB2, FB4)의 상태들은 유휴 상태를 유지하고, 제3 기능 블록(FB3)이 비지 상태에서 유휴 상태로 변경되었으므로, 제1, 제2, 및 제4 기능 블록들(FB1, FB2, FB4)에 대한 상태 변경 체크 동작에서 읽어진 플래그 레지스터(FLR)의 값은 "0"이고, 제3 기능 블록(FB3)에 대한 상태 변경 체크 동작에서 읽어진 플래그 레지스터(FLR)의 값은 "1"일 것이다. 이 경우, 상태 레지스터(STR)의 값과 플래그 레지스터(FLR)의 값들의 연산(예를 들어, XOR)의 결과는 모두 "0"일 수 있다. 이에 따라 상태 판별기(111)는 장치의 상태가 유휴 상태인 것으로 판단할 것이다.
도 12d에 도시된 바와 같이, 제1, 제2, 및 제4 기능 블록들(FB1, FB2, FB4)이 유휴 상태를 유지하고, 제3 기능 블록(FB3)은 유휴 상태에서 비지 상태로 변경된 경우, 제1 내지 제4 기능 블록들(FB1~FB4)에 대한 상태 체크 동작에서 읽어진 상태 레지스터들(STR)의 값들은 "0"일 것이다. 제1, 제2, 및 제4 기능 블록들(FB1, FB2, FB4)의 상태들은 유휴 상태를 유지하고, 제3 기능 블록(FB3)이 유휴 상태에서 비지 상태로 변경되었으므로, 제1, 제2, 및 제4 기능 블록들(FB1, FB2, FB4)에 대한 상태 변경 체크 동작에서 읽어진 플래그 레지스터(FLR)의 값은 "0"이고, 제3 기능 블록(FB3)에 대한 상태 변경 체크 동작에서 읽어진 플래그 레지스터(FLR)의 값은 "1"일 것이다. 이 경우, 상태 레지스터(STR)의 값과 플래그 레지스터(FLR)의 값들의 연산(예를 들어, XOR)의 결과는 모두 "0"이 아닐 수 있다. 이에 따라 상태 판별기(111)는 장치의 상태가 비지 상태인 것으로 판단할 것이다.
상술된 바와 같이, 본 발명의 실시 예에 따른 상태 판별기(111)는 복수의 기능 블록들에 대한 상태 체크 동작 및 상태 변경 체크 동작을 수행하고, 동작의 결과들을 기반으로 복수의 기능 블록들이 특정 시간 동안 유휴 상태인지를 판별할 수 있다. 따라서, 복수의 기능 블록들이 독립적으로 동작하는 환경에서, 복수의 기능 블록들에 대한 상태를 체크할 수 있기 때문에, 장치의 신뢰성이 향상될 수 있다.
도 13은 도 2의 상태 판별기의 동작을 보여주는 순서도이다. 도 2 및 도 13을 참조하면, 상태 판별기(111)는 S310 단계 내지 S340 단계의 동작들을 수행할 수 있다. S310 단계, S315 단계, S320 단계, S335 단계, 및 S340 단계의 동작들은 도 11의 S210 단계 내지 S230 단계의 동작들과 유사하므로, 이에 대한 상세한 설명은 생략된다.
도 13의 순서도에 따르면, 상태 판별기(111)는 상태 레지스터(STR)의 값을 저장한 이후에, S325 단계에서, 비지 상태의 개수가 기준 값보다 큰지 판별할 수 있다. 예를 들어, 상태 판별기(111)가 제1 내지 제k 의 기능 블록들에 대한 상태 체크 동작을 수행한 경우, 상태 판별기(111)는 제1 내지 제k 의 기능 블록들의 상태를 인지할 수 있다. 이 때, 제1 내지 제k 기능 블록들 중 비지 상태인 기능 블록들의 개수가 기준 값보다 큰 경우, S330 단계에서, 상태 판별기(111)는 나머지 기능 블록들에 대한 상태 체크 동작을 수행하지 않고, 장치의 상태를 비지 상태인 것으로 판단한다. 제1 내지 제k 기능 블록들 중 비지 상태인 기능 블록들의 개수가 기준 값보다 작거나 같은 경우, 상태 판별기(111)는 S335 단계의 동작을 수행하여, 나머지 기능 블록들에 대한 상태 체크 동작을 수행한다.
복수의 기능 블록들에 대한 상태 체크 동작이 모두 완료된 이후에, 상태 판별기(111)는 S345 내지 S370 단계의 동작들을 수행할 수 있다. S345 단계, S350 단계, S355 단계, S365 단계, 및 S370 단계의 동작들은 도 11의 S235 단계 내지 S255 단계의 동작들과 유사하므로 이에 대한 상세한 설명은 생략된다.
상태 판별기(111)는 플래그 레지스터(FLR)의 값을 저장한 이후에(즉, S355 단계 이후에), S360 단계에서, 비지 상태가 존재하는지 판별할 수 있다. 예를 들어, 상태 판별기(111)는 복수의 기능 블록들에 대한 상태 체크 동작을 수행하여 복수의 기능 블록들 각각에 대한 상태를 인지할 수 있고, 복수의 기능 블록에 대한 상태 변경 체크 동작을 수행하여, 복수의 기능 블록들 각각에 대한 상태 변경 유무를 인지할 수 있다. 상태 체크 동작에서 유휴 상태로 인지되고, 상태 변경 체크 동작에서 상태가 변경되지 않은 것으로 인지된 기능 블록은 최종적으로 유휴 상태인 것으로 판단될 수 있다. 또는 상태 체크 동작에서 유휴 상태로 인지되고, 상태 변경 체크 동작에서 상태가 변경된 것으로 인지되거나; 또는 상태 체크 동작에서 비지 상태로 인지되고, 상태 변경 체크 동작에서 상태가 변경되지 않은 것으로 인지된 기능 블록은 최종적으로 비지 상태인 것으로 판단된다. 즉, 상태 판별기(111)는 상태 변경 체크 동작 도중에, 최종적으로 비지 상태로 판단된 기능 블록이 존재하는지 판별할 수 있다.
최종적으로 비지 상태로 판단된 기능 블록이 존재하는 경우, S330 단계에서, 상태 판별기(111)는 나머지 기능 블록들에 대한 상태 변경 체크 동작을 수행하지 않고, 장치가 비지 상태인 것으로 판단한다.
최종적으로 비지 상태로 판단된 기능 블록이 존재하지 않는 경우(즉, 상태 변경 체크 동작의 대상이 된 기능 블록들이 모두 유휴 상태인 경우), 상태 판별기(111)는 S365 단계의 동작을 수행하여 나머지 기능 블록들에 대한 상태 변경 체크 동작을 수행할 수 있다.
모든 기능 블록들에 대한 상태 변경 체크 동작이 완료된 경우(또는 모든 기능 블록들이 유휴 상태인 것으로 판단된 경우), S375 단계에서, 상태 판별기(111)는 장치가 유휴 상태인 것으로 판단할 수 있다.
도 14는 본 발명의 실시 예에 따른 전자 장치를 예시적으로 보여주는 블록도이다. 도 14를 참조하면, 전자 장치(1000)는 메인 코어(1100), 제1 내지 제4 코어들(1210~1240), 및 복수의 기능 블록들(FB)을 포함할 수 있다. 복수의 기능 블록들(FB)은 제1 내지 제4 코어들(1210~1240) 중 대응하는 코어에서 수행될 일부 기능을 독립적으로 수행하도록 구성될 수 있다.
제1 내지 제4 코어들(1210~1240) 각각은 복수의 기능 블록들(FB) 중 대응하는 기능 블록에 대한 상태 검출 동작(또는 유휴 체크 동작)을 수행할 수 있다. 예시적인 실시 예에서, 제1 내지 제4 코어들(1210~1240) 각각은 도 1 내지 도 13을 참조하여 설명된 방법을 기반으로 대응하는 기능 블록들(FB)에 대하여 상태 체크 동작 및 상태 변경 체크 동작을 수행함으로써, 대응하는 기능 블록들이 특정 시간 동안 유휴 상태를 유지하는지 판별할 수 있다.
예시적인 실시 예에서, 제1 내지 제4 코어들(1210~1240)은 메인 코어(1100)와 독립적으로 동작할 수 있다. 즉, 메인 코어(1100)는 제1 내지 제4 코어들(1210~1240)의 상태를 확인하기 위한 별도의 수단을 필요로 할 수 있다. 예시적인 실시 예에서, 메인 코어(1100)는 도 1 내지 도 13을 참조하여 설명된 방법을 기반으로 제1 내지 제4 코어들(1210~1240) 각각에 대한 상태 체크 동작 및 상태 변경 체크 동작을 수행함으로써, 제1 내지 제4 코어들(1210~1240) 각각이 특정 시간 동안 유휴 상태를 유지하는지 판별할 수 있다.
예시적인 실시 예에서, 제1 내지 제4 코어들(1210~1240) 각각은, 대응하는 기능 블록들(FB)의 상태를 판별하기 위하여, 도 1 내지 도 13을 참조하여 설명된 상태 판별기(111)를 포함할 수 있다. 또는 메인 코어(1100)는 제1 내지 제4 코어들(1210~1240)의 상태를 판별하기 위하여, 도 1 내지 도 13을 참조하여 설명된 상태 판별기(111)를 포함할 수 있다. 이 경우, 제1 내지 제4 코어들(1210~1240) 각각은 각 코어의 상태를 가리키는 상태 레지스터(STR) 및 상태 변경 유무를 가리키는 플래그 레지스터(FLR)를 포함할 수 있다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.

Claims (10)

  1. 코어를 포함하는 전자 장치의 동작 방법에 있어서,
    상기 코어와 독립적으로 구동되는 제1 기능 블록의 제1 상태 레지스터로부터 제1 상태 정보를 읽는 단계;
    상기 코어와 독립적으로 구동되는 제2 기능 블록의 제2 상태 레지스터로부터 제2 상태 정보를 읽는 단계;
    상기 제1 기능 블록의 제1 플래그 레지스터로부터 제1 변경 정보를 읽는 단계;
    상기 제2 기능 블록의 제2 플래그 레지스터로부터 제2 변경 정보를 읽는 단계;
    상기 읽은 제1 및 제2 상태 정보 및 상기 읽은 제1 및 제2 변경 정보를 기반으로 상기 전자 장치의 동작 상태가 유휴 상태 및 비지 상태 중 어느 하나의 상태인지를 결정하는 단계; 및
    상기 결정된 동작 상태를 기반으로 대응하는 동작 모드로 동작하는 단계를 포함하는 동작 방법.
  2. 제 1 항에 있어서,
    상기 제1 상태 정보를 읽은 직후에, 상기 제1 플래그 레지스터에 저장된 상기 제1 변경 정보를 제1 값으로 설정하는 단계; 및
    상기 제2 상태 정보를 읽은 직후에, 상기 제2 플래그 레지스터에 저장된 상기 제2 변경 정보를 상기 제1 값으로 설정하는 단계를 더 포함하는 동작 방법.
  3. 제 2 항에 있어서,
    상기 제1 상태 정보를 읽는 단계 및 상기 제1 변경 정보를 상기 제1 값으로 설정하는 단계는 아토믹하게(atomically) 수행되고,
    상기 제2 상태 정보를 읽는 단계 및 상기 제2 변경 정보를 상기 제1 값으로 설정하는 단계는 아토믹하게(atomically) 수행되는 동작 방법.
  4. 제 2 항에 있어서,
    상기 제1 상태 정보를 읽기 직전에 상기 제1 상태 레지스터 및 상기 제1 플래그 레지스터를 락(lock)시키는 단계;
    상기 제1 변경 정보를 상기 제1 값으로 설정한 직후에, 상기 락된 제1 상태 레지스터 및 상기 락된 제1 플래그 레지스터를 언-락(unlock)시키는 단계;
    상기 제2 상태 정보를 읽기 직전에 상기 제2 상태 레지스터 및 상기 제2 플래그 레지스터를 락(lock)시키는 단계; 및
    상기 제2 변경 정보를 상기 제1 값으로 설정한 직후에, 상기 제2 상태 레지스터 및 상기 제2 플래그 레지스터를 언-락(unlock)시키는 단계를 더 포함하는 동작 방법.
  5. 제 2 항에 있어서,
    상기 제1 기능 블록이 구동 중인 경우 상기 제1 상태 레지스터의 상기 제1 상태 정보를 제2 값으로 설정하고, 상기 제1 기능 블록이 구동하지 않는 경우 상기 제1 상태 레지스터의 상기 제1 상태 정보를 상기 제1 값으로 설정하고,
    상기 제2 기능 블록이 구동 중인 경우 상기 제2 상태 레지스터의 상기 제2 상태 정보를 상기 제2 값으로 설정하고, 상기 제2 기능 블록이 구동하지 않는 경우, 상기 제2 상태 레지스터의 상기 제2 상태 정보를 상기 제1 값으로 설정하는 동작 방법.
  6. 제 5 항에 있어서,
    상기 제1 기능 블록의 동작 상태가 변경된 경우, 상기 제1 플래그 레지스터의 상기 제1 변경 정보를 상기 제2 값으로 설정하고,
    상기 제2 기능 블록의 동작 상태가 변경된 경우, 상기 제2 플래그 레지스터의 상기 제2 변경 정보를 상기 제2 값으로 설정하는 동작 방법.
  7. 제 6 항에 있어서,
    상기 읽은 제1 및 제2 상태 정보 및 상기 읽은 제1 및 제2 변경 정보가 모두 상기 제1 값인 경우, 상기 전자 장치의 상기 동작 상태가 상기 유휴 상태인 것으로 결정되는 동작 방법.
  8. 제 6 항에 있어서,
    상기 읽은 제1 및 제2 상태 정보가 모두 상기 제1 값이고, 상기 읽은 제1 및 제2 변경 정보 중 적어도 하나가 상기 제2 값인 경우, 상기 전자 장치의 상기 동작 상태가 상기 비지 상태인 것으로 결정되는 동작 방법.
  9. 제 6 항에 있어서,
    상기 읽은 제1 및 제2 상태 정보 중 적어도 하나가 상기 제2 값인 경우, 상기 제1 변경 정보를 읽은 단계 및 상기 제2 변경 정보를 읽는 단계가 생략되고,
    상기 전자 장치의 상기 동작 상태가 상기 비지 상태인 것으로 결정되는 동작 방법.
  10. 코어; 및
    상기 코어와 독립적으로 동작하도록 구성된 복수의 기능 블록들을 포함하고,
    상기 복수의 기능 블록들 각각은:
    미리 정해진 기능을 수행하도록 구성된 논리 회로;
    상기 논리 회로의 동작 상태를 검출하도록 구성된 상태 머신;
    상기 논리 회로의 상기 동작 상태에 대응하는 상태 정보를 저장하도록 구성된 상태 레지스터; 및
    상기 논리 회로의 상기 동작 상태의 변경에 대응하는 변경 정보를 저장하도록 구성된 플래그 레지스터를 포함하고,
    상기 코어는 상기 복수의 기능 블록들 각각의 상기 상태 레지스터 및 상기 플래그 레지스터의 상기 상태 정보 및 상기 변경 정보를 기반으로 상기 복수의 기능 블록들 각각에 대한 상태 체크 동작을 수행하고, 상기 상태 체크 동작을 수행한 이후에, 상기 복수의 기능 블록들 각각의 상기 플래그 레지스터의 상기 변경 정보를 기반으로 상기 복수의 기능 블록들 각각에 대한 상태 변경 체크 동작을 수행하고, 상기 상태 체크 동작 및 상기 상태 변경 체크 동작의 결과들을 기반으로 상기 복수의 기능 블록들의 동작 상태를 판별하고, 상기 판별된 동작 상태를 기반으로 복수의 동작 모드들 중 대응하는 동작 모드로 동작하도록 구성된 전자 장치.

KR1020180138097A 2018-11-12 2018-11-12 전자 장치 및 그것의 동작 방법 KR102552666B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180138097A KR102552666B1 (ko) 2018-11-12 2018-11-12 전자 장치 및 그것의 동작 방법
US16/439,159 US10983584B2 (en) 2018-11-12 2019-06-12 Electronic device and operation method thereof
CN201910705813.3A CN111176550B (zh) 2018-11-12 2019-08-01 电子装置及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180138097A KR102552666B1 (ko) 2018-11-12 2018-11-12 전자 장치 및 그것의 동작 방법

Publications (2)

Publication Number Publication Date
KR20200055193A KR20200055193A (ko) 2020-05-21
KR102552666B1 true KR102552666B1 (ko) 2023-07-10

Family

ID=70550142

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180138097A KR102552666B1 (ko) 2018-11-12 2018-11-12 전자 장치 및 그것의 동작 방법

Country Status (3)

Country Link
US (1) US10983584B2 (ko)
KR (1) KR102552666B1 (ko)
CN (1) CN111176550B (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782293B1 (en) 2013-06-14 2014-07-15 Texas Instruments Incorporated Intra-processor operation control

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5202964A (en) * 1990-10-26 1993-04-13 Rolm Systems Interface controller including messaging scanner accessing state action table
JP3181307B2 (ja) * 1991-04-25 2001-07-03 株式会社東芝 命令処理装置
JPH05298237A (ja) * 1992-04-20 1993-11-12 Hitachi Ltd アクセス制御装置
JP4230122B2 (ja) * 2001-03-30 2009-02-25 株式会社ルネサステクノロジ マイクロコンピュータ、書込み方法及び消去方法
JP4162863B2 (ja) * 2001-03-30 2008-10-08 株式会社ルネサステクノロジ マイクロコンピュータ
KR100462177B1 (ko) * 2002-08-26 2004-12-17 삼성전자주식회사 주변 장치의 동작 상태를 실시간으로 백업할 수 있는엠베디드 컨트롤러
US7337334B2 (en) 2003-02-14 2008-02-26 International Business Machines Corporation Network processor power management
JP4209219B2 (ja) * 2003-02-21 2009-01-14 株式会社ルネサステクノロジ 不揮発性半導体記憶装置および記憶装置並びに不良記憶素子検出修復方法
US8327158B2 (en) 2006-11-01 2012-12-04 Texas Instruments Incorporated Hardware voting mechanism for arbitrating scaling of shared voltage domain, integrated circuits, processes and systems
KR100833189B1 (ko) * 2006-11-03 2008-05-28 삼성전자주식회사 불휘발성 메모리 장치 및 불휘발성 메모리 장치의환경설정정보 설정 방법
KR100863749B1 (ko) * 2006-12-04 2008-10-16 한국전자통신연구원 디지털신호처리프로세서의 소비전력 관리 제어장치 및 그를이용한 소비전력 관리 시스템과 그 방법
EP2075696A3 (en) 2007-05-10 2010-01-27 Texas Instruments Incorporated Interrupt- related circuits, systems and processes
EP2058725A3 (en) 2007-06-11 2015-07-22 Mediatek Inc. Method of and apparatus for reducing power consumption within an integrated circuit
US8601288B2 (en) 2010-08-31 2013-12-03 Sonics, Inc. Intelligent power controller
BR112013022758A2 (pt) 2011-03-07 2016-12-06 Intel Corp método implementado por computador, dispositivo de máquina para máquina, sistema de computador e sistema de máquina para máquina
DE112011105590T5 (de) 2011-09-06 2014-07-03 Intel Corp. Energieeffiziente Prozessorarchitektur
US11399344B2 (en) * 2015-01-26 2022-07-26 Apple Inc. System and method for SoC idle power state control based on I/O operation characterization
US9760145B2 (en) * 2015-05-19 2017-09-12 Advanced Micro Devices, Inc. Saving the architectural state of a computing device using sectors
US9904563B2 (en) 2015-12-18 2018-02-27 Htc Corporation Processor management
KR102576707B1 (ko) * 2016-12-26 2023-09-08 삼성전자주식회사 전자 시스템 및 그 동작 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782293B1 (en) 2013-06-14 2014-07-15 Texas Instruments Incorporated Intra-processor operation control

Also Published As

Publication number Publication date
CN111176550B (zh) 2024-02-13
CN111176550A (zh) 2020-05-19
US20200150743A1 (en) 2020-05-14
US10983584B2 (en) 2021-04-20
KR20200055193A (ko) 2020-05-21

Similar Documents

Publication Publication Date Title
US8856614B2 (en) Semiconductor memory device detecting error
CN110442473B (zh) 一种非易失性数据存储方法、装置、电子设备及介质
CN108958643B (zh) 数据存储装置及其操作方法
US20180101303A1 (en) Data Storage Device and Data Writing Method Thereof
CN112199240B (zh) 一种节点故障时进行节点切换的方法及相关设备
US9529536B2 (en) Semiconductor memory device, memory system including the same, and operating method thereof
KR102552666B1 (ko) 전자 장치 및 그것의 동작 방법
CN103890713A (zh) 用于管理处理系统内的寄存器信息的装置及方法
JP6919156B2 (ja) 電子機器、データ退避方法、及びプログラム
CN116361153A (zh) 固件代码的测试方法、装置、电子设备、存储介质
CN107153580B (zh) 获取队列精确状态的装置及其方法
CN110990052B (zh) 一种配置保存方法及装置
CN114328080A (zh) 一种固件状态检测的方法及装置、电子设备
US20220164272A1 (en) Application program management method and apparatus, and storage medium
TWI716909B (zh) 記憶體控制系統及操作記憶體控制系統的方法
CN106611619B (zh) 数据储存装置以及快闪存储器的检测方法
CN112673364A (zh) 数据传输方法、数据传输装置、电子设备和存储介质
JP2016151922A (ja) メモリ制御装置及びメモリ制御方法
CN112508449B (zh) 任务执行方法、装置、电子设备及计算机可读存储介质
CN111817895B (zh) 一种主控节点切换方法、装置、设备及存储介质
KR101779118B1 (ko) 메모리의 스택 관리 방법
US20170322893A1 (en) Computing node to initiate an interrupt for a write request received over a memory fabric channel
CN101887395B (zh) 存储器存取方法与应用其的存储器存取装置及中央处理器
CN117851234A (zh) 在软件测试中用于确定初始报错版本的方法及相关产品
JP6485337B2 (ja) メモリ制御システム及びメモリ制御方法

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