[go: up one dir, main page]

KR102154080B1 - 전력 관리 시스템, 이를 포함하는 시스템 온 칩 및 모바일 기기 - Google Patents

전력 관리 시스템, 이를 포함하는 시스템 온 칩 및 모바일 기기 Download PDF

Info

Publication number
KR102154080B1
KR102154080B1 KR1020140094545A KR20140094545A KR102154080B1 KR 102154080 B1 KR102154080 B1 KR 102154080B1 KR 1020140094545 A KR1020140094545 A KR 1020140094545A KR 20140094545 A KR20140094545 A KR 20140094545A KR 102154080 B1 KR102154080 B1 KR 102154080B1
Authority
KR
South Korea
Prior art keywords
nano
nanocontrollers
instruction
target
nanocontroller
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020140094545A
Other languages
English (en)
Other versions
KR20160012666A (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 KR1020140094545A priority Critical patent/KR102154080B1/ko
Priority to US14/710,624 priority patent/US9665399B2/en
Priority to TW104115767A priority patent/TWI658356B/zh
Priority to CN201510446665.XA priority patent/CN105320240B/zh
Publication of KR20160012666A publication Critical patent/KR20160012666A/ko
Application granted granted Critical
Publication of KR102154080B1 publication Critical patent/KR102154080B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

전력 관리 시스템은 프로그램 가능한 복수의 나노 컨트롤러들, 인스트럭션 메모리 및 신호 맵 메모리를 포함한다. 인스트럭션 메모리는 나노 컨트롤러들에 의해 이용되는 인스트럭션들을 저장하고, 나노 컨트롤러들에 의해 공유된다. 신호 맵 메모리는 나노 컨트롤러들에 의해 제어되는 복수의 신호들을 저장하고, 나노 컨트롤러들에 의해 공유된다. 제1 나노 컨트롤러는 중앙 시퀀서로서 프로그램되며, 제2 내지 제n(n은 2 이상의 자연수) 나노 컨트롤러들은 제1 나노 컨트롤러에 종속되는 제1 하위 시퀀서들로서 프로그램된다.

Description

전력 관리 시스템, 이를 포함하는 시스템 온 칩 및 모바일 기기{POWER MANAGEMENT SYSTEM, SYSTEM ON CHIP INCLUDING THE SAME AND MOBILE DEVICE INCLUDING THE SAME}
본 발명은 전력 관리 분야에 관한 것으로서, 더욱 상세하게는 어플리케이션 프로세서와 같은 다양한 시스템 온 칩에 포함되는 전력 관리 시스템, 상기 전력 관리 시스템을 포함하는 시스템 온 칩 및 상기 시스템 온 칩을 포함하는 모바일 기기에 관한 것이다.
시스템 온 칩(System on Chip; SoC)은 컴퓨터 시스템 또는 다른 전자 시스템을 구현하기 위해 CPU(central processing unit), 메모리, 인터페이스(interface), 디지털 신호 처리 회로, 및 아날로그 신호 처리 회로 등 다양한 기능 블록들을 하나의 반도체 집적 회로에 집적하는 기술 또는 상기 기술에 따라 집적된 하나의 집적 회로(Integrated Circuit; IC)를 나타낸다. 시스템 온 칩은 프로세서, 멀티미디어(multimedia), 그래픽(graphic), 인터페이스, 및 보안 등 다양한 기능들을 포함하는 더욱 복잡한 시스템으로 발전하고 있다. 배터리를 사용하는 모바일 기기(mobile device)에 다양한 기능이 컨버전스되면서, 모바일 기기의 성능뿐만 아니라, 모바일 기기의 전력 소모량을 최소화하는 방안에 대한 연구가 진행되고 있다.
본 발명의 일 목적은 상대적으로 간단한 구조를 가지며 전력 소모를 효과적으로 감소시킬 수 있는 전력 관리 시스템을 제공하는 것이다.
본 발명의 다른 목적은 상기 전력 관리 시스템을 포함하는 시스템 온 칩을 제공하는 것이다.
본 발명의 또 다른 목적은 상기 시스템 온 칩을 포함하는 모바일 기기를 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 시스템 온 칩(System on Chip; SoC)에 포함되는 복수의 기능 블록들의 전력을 제어하는 전력 관리 시스템은, 프로그램 가능한 복수의 나노 컨트롤러(Nano Controller)들, 인스트럭션 메모리 및 신호 맵 메모리를 포함한다. 상기 인스트럭션 메모리는 상기 복수의 나노 컨트롤러들에 의해 이용되는 복수의 인스트럭션(instruction)들을 저장하고, 상기 복수의 나노 컨트롤러들에 의해 공유된다. 상기 신호 맵 메모리는 상기 복수의 기능 블록들에 인가되고 상기 복수의 나노 컨트롤러들에 의해 제어되는 복수의 신호들을 저장하고, 상기 복수의 나노 컨트롤러들에 의해 공유된다. 상기 복수의 나노 컨트롤러들 중에서 제1 나노 컨트롤러는 중앙 시퀀서(Central Sequencer)로서 프로그램되며, 상기 복수의 나노 컨트롤러들 중에서 제2 내지 제n(n은 2 이상의 자연수) 나노 컨트롤러들은 상기 제1 나노 컨트롤러에 종속되는 제1 하위 시퀀서(Sub-Sequencer)들로서 프로그램된다.
상기 복수의 나노 컨트롤러들 각각은 인스트럭션 주소 발생부, 인스트럭션 레지스터, 인스트럭션 디코더 및 인스트럭션 실행부를 포함할 수 있다. 상기 인스트럭션 주소 발생부는 작업(job) 요청에 기초하여 목표 인스트럭션 주소를 발생할 수 있다. 상기 인스트럭션 레지스터는 상기 목표 인스트럭션 주소에 기초하여 상기 인스트럭션 메모리로부터 상기 복수의 인스트럭션들 중에서 목표 인스트럭션을 인출하여 저장할 수 있다. 상기 인스트럭션 디코더는 상기 인출된 목표 인스트럭션을 디코딩할 수 있다. 상기 인스트럭션 실행부는 상기 디코딩된 목표 인스트럭션을 실행할 수 있다.
일 실시예에서, 상기 작업 요청은 상기 목표 인스트럭션 주소를 직접 포함하여 제공될 수 있다. 상기 인스트럭션 주소 발생부는 상기 목표 인스트럭션 주소를 저장하고 출력하는 프로그램 카운터를 포함할 수 있다.
일 실시예에서, 상기 작업 요청은 작업 커맨드를 포함하여 제공될 수 있다. 상기 인스트럭션 주소 발생부는 커맨드 디코더 및 프로그램 카운터를 포함할 수 있다. 상기 커맨드 디코더는 상기 작업 커맨드를 디코딩하여 상기 목표 인스트럭션 주소를 발생할 수 있다. 상기 프로그램 카운터는 상기 목표 인스트럭션 주소를 저장하고 출력할 수 있다.
상기 커맨드 디코더는 하드웨어로 구현되거나 또는 상기 복수의 나노 컨트롤러들 각각에 의해 실행 가능한 소프트웨어로 구현될 수 있다.
상기 복수의 나노 컨트롤러들 중에서 상기 제1 나노 컨트롤러는 상기 복수의 나노 컨트롤러들의 현재 작업 상태를 나타내는 작업 할당 상태 레지스터를 더 포함할 수 있다.
일 실시예에서, 상기 제1 나노 컨트롤러는 외부에서 제공되는 제1 작업 요청을 수신하고, 상기 제1 작업 요청에 상응하는 제1 목표 작업을 상기 제1 내지 제n 나노 컨트롤러 중 하나에 할당할 수 있다.
상기 제1 나노 컨트롤러가 작업이 할당되지 않은 아이들(idle) 상태인 경우에, 상기 제1 나노 컨트롤러는 상기 제1 작업 요청에 기초하여 상기 제1 목표 작업을 직접 수행할 수 있다. 상기 제1 나노 컨트롤러에 상기 제1 목표 작업과 다른 제2 목표 작업이 할당된 경우에, 상기 제1 나노 컨트롤러는 상기 제2 내지 제n 나노 컨트롤러들 중 하나에 상기 제1 목표 작업을 하나에 할당할 수 있다.
상기 제2 내지 제n 나노 컨트롤러들 중 상기 제2 나노 컨트롤러에 상기 제1 목표 작업을 할당하고자 하는 경우에, 상기 제1 나노 컨트롤러는 상기 제2 나노 컨트롤러의 식별자(identification; ID) 및 상기 복수의 인스트럭션들 중에서 콜(call) 인스트럭션에 기초하여 상기 제2 나노 컨트롤러를 호출하고 상기 제2 나노 컨트롤러에 상기 제1 작업 요청을 전달할 수 있다. 상기 제2 나노 컨트롤러가 상기 제1 목표 작업을 완료한 경우에, 상기 제2 나노 컨트롤러는 상기 복수의 인스트럭션들 중에서 리턴(return) 인스트럭션에 기초하여 상기 제1 목표 작업이 완료되었음을 상기 제1 나노 컨트롤러에 알릴 수 있다.
일 실시예에서, 상기 제1 나노 컨트롤러는 외부에서 제공되는 복수의 작업 요청들을 수신하고, 상기 제1 내지 제n 나노 컨트롤러들은 상기 복수의 작업 요청들에 상응하는 복수의 목표 작업들을 멀티 쓰레드(multi-thread) 방식으로 수행할 수 있다.
일 실시예에서, 상기 복수의 나노 컨트롤러들 중에서 제(n+1) 내지 제m(m은 (n+1) 이상의 자연수) 나노 컨트롤러들은 상기 제2 나노 컨트롤러에 종속되는 제2 하위 시퀀서들로서 프로그램될 수 있다.
일 실시예에서, 상기 제2 내지 제n 나노 컨트롤러들은 상기 복수의 기능 블록들 중 하나의 전력을 각각 제어할 수 있다.
일 실시예에서, 상기 복수의 신호들은 리셋 신호들, 구동 전압들 및 데이터 유지 제어 신호들을 포함할 수 있다. 상기 제2 내지 제n 나노 컨트롤러들은 상기 리셋 신호들, 상기 구동 전압들, 상기 데이터 유지 제어 신호들 중에서 하나의 그룹을 각각 제어할 수 있다.
상기 복수의 나노 컨트롤러들은 상기 복수의 인스트럭션들 중에서 요청/인정(req/ack) 인스트럭션을 이용하는 비동기식(asynchronous) 인터페이스에 기초하여 동작할 수 있다.
상기 복수의 인스트럭션들은 흐름 제어(flow control) 인스트럭션, 로드/스토어(load/store) 인스트럭션, 요청/인정(req/ack) 인스트럭션, 콜/리턴(call/return) 인스트럭션, 대기(wait) 인스트럭션 및 이동(move) 인스트럭션을 포함할 수 있다.
상기 인스트럭션 메모리는 정적 랜덤 액세스 메모리(static random access memory; SRAM)를 포함하여 구현되고, 상기 신호 맵 메모리는 레지스터를 포함하여 구현될 수 있다.
상기 다른 목적을 달성하기 위해, 본 발명의 실시예들에 따른 시스템 온 칩(System on Chip; SoC)은 중앙 처리 유닛, 복수의 기능 블록들 및 전력 관리 시스템을 포함할 수 있다. 상기 복수의 기능 블록들은 상기 중앙 처리 유닛에 의해 제어된다. 상기 전력 관리 시스템은 상기 중앙 처리 유닛에 의해 제어되고 상기 복수의 기능 블록들의 전력을 제어한다. 상기 전력 관리 시스템은 프로그램 가능한 복수의 나노 컨트롤러(Nano Controller)들, 인스트럭션 메모리 및 신호 맵 메모리를 포함한다. 상기 인스트럭션 메모리는 상기 복수의 나노 컨트롤러들에 의해 이용되는 복수의 인스트럭션(instruction)들을 저장하고, 상기 복수의 나노 컨트롤러들에 의해 공유된다. 상기 신호 맵 메모리는 상기 복수의 기능 블록들에 인가되고 상기 복수의 나노 컨트롤러들에 의해 제어되는 복수의 신호들을 저장하고, 상기 복수의 나노 컨트롤러들에 의해 공유된다. 상기 복수의 나노 컨트롤러들 중에서 제1 나노 컨트롤러는 중앙 시퀀서(Central Sequencer)로서 프로그램되며, 상기 복수의 나노 컨트롤러들 중에서 제2 내지 제n(n은 2 이상의 자연수) 나노 컨트롤러들은 상기 제1 나노 컨트롤러에 종속되는 제1 하위 시퀀서(Sub-Sequencer)들로서 프로그램된다.
상기 제1 나노 컨트롤러는 상기 중앙 처리 유닛으로부터 제공되는 제1 작업 요청을 수신하고, 상기 제1 작업 요청에 상응하는 제1 목표 작업을 상기 제1 내지 제n 나노 컨트롤러 중 하나에 선택적으로 할당하여 상기 복수의 기능 블록들의 전력을 제어할 수 있다.
일 실시예에서, 상기 제2 내지 제n 나노 컨트롤러들 각각은 상기 복수의 기능 블록들 중 하나의 전력을 제어할 수 있다.
일 실시예에서, 상기 복수의 신호들은 리셋 신호들, 구동 전압들 및 데이터 유지 제어 신호들을 포함할 수 있다. 상기 제2 내지 제n 나노 컨트롤러들 각각은 상기 리셋 신호들, 상기 구동 전압들 및 상기 데이터 유지 제어 신호들 중에서 하나의 그룹을 제어할 수 있다.
상기 복수의 기능 블록들은 디스플레이 제어 블록, 파일 시스템 블록, 그래픽 처리 유닛(Graphic Processing Unit; GPU) 블록, 이미지 신호 처리 블록 및 멀티 포맷 코덱 블록을 포함할 수 있다.
상기 시스템 온 칩은 모바일 기기에 구비되는 어플리케이션 프로세서(Application Processor; AP)일 수 있다.
상기 또 다른 목적을 달성하기 위해, 본 발명의 실시예들에 따른 모바일 기기는 복수의 기능 모듈들 및 시스템 온 칩을 포함한다. 상기 시스템 온 칩은 상기 복수의 기능 모듈들을 제어한다. 상기 시스템 온 칩은 중앙 처리 유닛, 복수의 기능 블록들 및 전력 관리 시스템을 포함할 수 있다. 상기 복수의 기능 블록들은 상기 중앙 처리 유닛에 의해 제어된다. 상기 전력 관리 시스템은 상기 중앙 처리 유닛에 의해 제어되고 상기 복수의 기능 블록들의 전력을 제어한다. 상기 전력 관리 시스템은 프로그램 가능한 복수의 나노 컨트롤러(Nano Controller)들, 인스트럭션 메모리 및 신호 맵 메모리를 포함한다. 상기 인스트럭션 메모리는 상기 복수의 나노 컨트롤러들에 의해 이용되는 복수의 인스트럭션(instruction)들을 저장하고, 상기 복수의 나노 컨트롤러들에 의해 공유된다. 상기 신호 맵 메모리는 상기 복수의 기능 블록들에 인가되고 상기 복수의 나노 컨트롤러들에 의해 제어되는 복수의 신호들을 저장하고, 상기 복수의 나노 컨트롤러들에 의해 공유된다. 상기 복수의 나노 컨트롤러들 중에서 제1 나노 컨트롤러는 중앙 시퀀서(Central Sequencer)로서 프로그램되며, 상기 복수의 나노 컨트롤러들 중에서 제2 내지 제n(n은 2 이상의 자연수) 나노 컨트롤러들은 상기 제1 나노 컨트롤러에 종속되는 제1 하위 시퀀서(Sub-Sequencer)들로서 프로그램된다.
상기 복수의 기능 모듈들은 통신 모듈, 카메라 모듈, 디스플레이 모듈 및 터치 패널 모듈을 포함할 수 있다.
상기와 같은 본 발명의 실시예들에 따른 전력 관리 시스템은 복수의 나노 컨트롤러들을 포함한다. 복수의 나노 컨트롤러들은 프로그램 가능한 형태로 구현됨으로써, 시스템 온 칩의 전력을 관리하기 위한 최적의 형태로 적절하게 프로그램될 수 있다. 또한, 복수의 나노 컨트롤러들은 상대적으로 간단하고 제한적인 복수의 인스트럭션들만을 이용하며 하나의 인스트럭션 메모리 및 하나의 신호 맵 메모리를 서로 공유한다. 따라서, 복수의 나노 컨트롤러들을 포함하는 전력 관리 시스템은 상대적으로 간단한 구조를 가지며 이를 포함하는 시스템 온 칩 및 모바일 기기의 전력 소모를 효과적으로 감소시킬 수 있다.
도 1은 본 발명의 실시예들에 따른 시스템 온 칩을 나타내는 블록도이다.
도 2는 본 발명의 실시예들에 따른 전력 관리 시스템을 나타내는 블록도이다.
도 3, 4 및 5는 도 2의 전력 관리 시스템의 동작의 일 예를 설명하기 위한 도면들이다.
도 6, 7 및 8은 도 2의 전력 관리 시스템에 포함되는 제1 나노 컨트롤러의 예들을 나타내는 블록도들이다.
도 9는 도 2의 전력 관리 시스템에 포함되는 제2 나노 컨트롤러의 예를 나타내는 블록도이다.
도 10, 11 및 12는 도 2의 전력 관리 시스템의 동작을 다른 예들을 설명하기 위한 도면들이다.
도 13은 본 발명의 실시예들에 따른 전력 관리 시스템의 구동 방법을 나타내는 순서도이다.
도 14는 도 13의 제1 목표 작업을 수행하는 단계의 일 예를 나타내는 순서도이다.
도 15는 도 14의 제1 목표 작업을 할당하는 단계의 일 예를 나타내는 순서도이다.
도 16은 도 14의 제1 목표 작업을 수행하는 단계의 일 예를 나타내는 순서도이다.
도 17은 본 발명의 실시예들에 따른 전력 관리 시스템의 구동 방법을 나타내는 순서도이다.
도 18은 도 17의 복수의 목표 작업들을 수행하는 단계의 일 예를 나타내는 순서도이다.
도 19는 본 발명의 실시예들에 따른 모바일 기기를 나타내는 블록도이다.
도 20은 도 19의 모바일 기기가 스마트폰으로 구현되는 일 예를 나타내는 도면이다.
도 21은 도 19의 모바일 기기에서 사용되는 인터페이스의 일 예를 나타내는 블록도이다.
도 22는 본 발명의 실시예들에 따른 휴대용 단말기를 나타내는 블록도이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
한편, 어떤 실시예가 달리 구현 가능한 경우에 특정 블록 내에 명기된 기능 또는 동작이 순서도에 명기된 순서와 다르게 일어날 수도 있다. 예를 들어, 연속하는 두 블록이 실제로는 실질적으로 동시에 수행될 수도 있고, 관련된 기능 또는 동작에 따라서는 상기 블록들이 거꾸로 수행될 수도 있다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 시스템 온 칩을 나타내는 블록도이다.
도 1을 참조하면, 시스템 온 칩(10)은 중앙 처리 유닛(Central Processing Unit; CPU, 20), 복수의 기능 블록들(30, 40, 50) 및 전력 관리 시스템(100)을 포함한다. 도시의 편의상, 전력 관리와 직접적인 관련성이 적은 시스템 온 칩(10)의 다른 구성 요소들은 도시를 생략하였다.
중앙 처리 유닛(20)은 시스템 온 칩(10)의 전반적인 동작을 제어한다. 실시예에 따라서, 중앙 처리 유닛(20)은 하나의 프로세서 코어(Single Core)를 포함하거나 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. 예를 들어, 중앙 처리 유닛(20)은 듀얼 코어(Dual-Core), 쿼드 코어(Quad-Core), 헥사 코어(Hexa-Core) 등의 멀티 코어(Multi-Core)를 포함할 수 있다.
복수의 기능 블록들(30, 40, 50)은 중앙 처리 유닛(20)에 의해 제어된다. 복수의 기능 블록들(30, 40, 50)은 각각의 고유 기능에 의해 구분될 수 있다. 예를 들어, 복수의 기능 블록들(30, 40, 50)은 디스플레이 제어 블록, 파일 시스템 블록, 그래픽 처리 유닛(Graphic Processing Unit; GPU) 블록, 이미지 신호 처리 블록, 멀티 포맷 코덱 블록 등을 포함할 수 있다.
도 1에서는 시스템 온 칩(10)이 3개의 기능 블록들(30, 40, 50)을 포함하는 것으로 도시하였으나, 실시예에 따라서 시스템 온 칩(10)에 포함되는 기능 블록들의 개수는 다양하게 변경될 수 있다. 한편, 중앙 처리 유닛(20) 및 전력 관리 시스템(100)도 각각 하나의 기능 블록으로서 정의될 수 있다.
전력 관리 시스템(100)은 중앙 처리 유닛(20)에 의해 제어되고, 복수의 기능 블록들(30, 40, 50)의 전력을 제어한다. 전력 관리 시스템(100)은 복수의 나노 컨트롤러(Nano Controller)들(200), 인스트럭션 메모리(300) 및 신호 맵 메모리(400)를 포함한다. 전력 관리 시스템(100)은 상대적으로 간단한 구조를 가지며 시스템 온 칩(10)의 전력 소모를 효과적으로 감소시킬 수 있다. 전력 관리 시스템(100)의 구체적인 구조 및 동작에 대해서는 도 2 내지 12를 참조하여 후술하도록 한다.
일 실시예에서, 시스템 온 칩(10)은 모바일 기기에 구비되는 어플리케이션 프로세서(Application Processor; AP)일 수 있다. 다른 실시예에서, 시스템 온 칩(10)은 임의의 전자 기기에 구비되는 임의의 시스템 온 칩일 수 있다.
도 2는 본 발명의 실시예들에 따른 전력 관리 시스템을 나타내는 블록도이다.
도 2를 참조하면, 전력 관리 시스템(100)은 복수의 나노 컨트롤러들(200), 인스트럭션 메모리(300) 및 신호 맵 메모리(400)를 포함한다.
복수의 나노 컨트롤러들(200)은 제1 내지 제n(n은 2 이상의 자연수) 나노 컨트롤러들(nC1, nC2, ..., nCn)을 포함한다. 복수의 나노 컨트롤러들(200) 각각은 프로그램 가능한 컨트롤러이다. 예를 들어, 시스템 온 칩(도 1의 10)의 구조에 따라서 복수의 기능 블록들(도 1의 30, 40, 50)의 전력을 적절하게 제어할 수 있도록 복수의 나노 컨트롤러들(200) 중에서 적어도 일부가 프로그램될 수 있다. 도 3을 참조하여 후술하는 것처럼, 제1 나노 컨트롤러(nC1)는 중앙 시퀀서(Central Sequencer)로서 프로그램되며, 제2 내지 제n 나노 컨트롤러들(nC2, ..., nCn)은 제1 나노 컨트롤러(nC1)에 종속되는 제1 하위 시퀀서(Sub-Sequencer)들로서 프로그램된다. 다시 말하면, 복수의 나노 컨트롤러들(200)은 계층적 구조를 가지도록 프로그램될 수 있다.
일 실시예에서, 도 3에 도시된 것처럼, 제2 내지 제n 나노 컨트롤러들(nC2, ..., nCn)은 복수의 기능 블록들(도 1의 30, 40, 50) 중 하나의 전력을 각각 제어하도록 프로그램될 수 있다. 다른 실시예에서, 도 11에 도시된 것처럼, 제2 내지 제n 나노 컨트롤러들(nC2, ..., nCn)은 신호 맵 메모리(400)에 저장된 복수의 신호들 중에서 동일한 성격을 가지는 하나의 그룹을 각각 제어하도록 프로그램될 수 있다.
인스트럭션 메모리(300)는 복수의 나노 컨트롤러들(200)에 의해 이용되는 복수의 인스트럭션(instruction)들을 저장하고, 복수의 나노 컨트롤러들(200)에 의해 공유된다. 예를 들어, 인스트럭션 메모리(300)는 정적 랜덤 액세스 메모리(static random access memory; SRAM)를 포함하여 구현될 수 있다.
일 실시예에서, 상기 복수의 인스트럭션들은 상대적으로 간단하고(simple) 제한적으로(limited) 구현될 수 있다. 예를 들어, 상기 복수의 인스트럭션들은 8비트 인스트럭션들일 수 있다. 상기 복수의 인스트럭션들은 흐름 제어(flow control) 인스트럭션, 로드/스토어(load/store) 인스트럭션, 요청/인정(req/ack) 인스트럭션, 콜/리턴(call/return) 인스트럭션, 대기(wait) 인스트럭션 및 이동(move) 인스트럭션을 포함할 수 있다.
상기 흐름 제어 인스트럭션은 조건 분기(conditional branch) 인스트럭션, 점프(jump) 인스트럭션 등을 포함할 수 있다. 상기 로드/스토어 인스트럭션은 입력 신호를 위한 로드 인스트럭션 및 출력 신호를 위한 스토어 인스트럭션을 포함할 수 있다. 상기 요청/인정 인스트럭션은 비동기식(asynchronous) 인터페이스를 위한 인스트럭션일 수 있으며, 복수의 나노 컨트롤러들(200)은 상기 요청/인정 인스트럭션을 이용하는 상기 비동기식 인터페이스에 기초하여 동작할 수 있다. 상기 콜/리턴 인스트럭션은 목표 작업을 수행하기 위해 복수의 나노 컨트롤러들(200) 중에서 하나를 호출하는 콜 인스트럭션 및 상기 목표 작업이 완료되었음을 알리는 리턴 인스트럭션을 포함할 수 있다. 상기 대기 인스트럭션은 타이머의 만료를 대기하거나 상기 입력 신호를 대기하기 위한 인스트럭션일 수 있으며, 지연(delay) 인스트럭션으로 불릴 수도 있다. 상기 이동 인스트럭션은 특정 데이터 및/또는 특정 값을 목표 레지스터에 이동시키기 위한 인스트럭션일 수 있다.
신호 맵 메모리(400)는 복수의 기능 블록들(도 1의 30, 40, 50)에 인가되고 복수의 나노 컨트롤러들(200)에 의해 제어되는 상기 복수의 신호들을 저장하고, 복수의 나노 컨트롤러들(200)에 의해 공유된다. 예를 들어, 신호 맵 메모리(400)는 레지스터를 포함하여 구현될 수 있다.
일 실시예에서, 상기 복수의 신호들은 리셋 신호들, 구동 전압들 및 데이터 유지 제어 신호들을 포함할 수 있다. 상기 복수의 신호들은 클럭 게이팅 신호들, 구동 주파수들 등을 더 포함할 수 있다.
본 발명의 실시예들에 따른 전력 관리 시스템(100)은 복수의 나노 컨트롤러들(200)을 포함한다. 복수의 나노 컨트롤러들(200)은 유한 상태 머신(Finite State Machine; FSM)이 아닌 프로그램 가능한 형태로 구현됨으로써, 시스템 온 칩(도 1의 10)의 전력을 관리하기 위한 최적의 형태로 적절하게 프로그램될 수 있다. 또한, 복수의 나노 컨트롤러들(200)은 상대적으로 간단하고 제한적인 복수의 인스트럭션들만을 이용하며 하나의 인스트럭션 메모리(300) 및 하나의 신호 맵 메모리(400)를 서로 공유한다. 따라서, 복수의 나노 컨트롤러들(200)을 포함하는 전력 관리 시스템(100)은 상대적으로 간단한 구조를 가지며 시스템 온 칩(도 1의 10)의 전력 소모를 효과적으로 감소시킬 수 있다.
도 3, 4 및 5는 도 2의 전력 관리 시스템의 동작의 일 예를 설명하기 위한 도면들이다.
도 1, 2 및 3을 참조하면, 복수의 나노 컨트롤러들(200) 중에서 제1 나노 컨트롤러(210)는 중앙 시퀀서로서 프로그램된다. 복수의 나노 컨트롤러들(200) 중에서 제1 나노 컨트롤러(210)를 제외한 일부는 상기 중앙 시퀀서에 종속되는 제1 하위 시퀀서들로서 프로그램된다. 도 3의 예에서, 복수의 나노 컨트롤러들(200) 중에서 제2 내지 제4 나노 컨트롤러들(220, 230, 240)이 제1 나노 컨트롤러(210)에 종속되는 상기 제1 하위 시퀀서들로서 프로그램될 수 있다.
일 실시예에서, 제2 내지 제4 나노 컨트롤러들(220, 230, 240)은 복수의 기능 블록들(30, 40, 50) 중 하나의 전력을 각각 제어할 수 있다. 예를 들어, 제2 나노 컨트롤러(220)는 제1 기능 블록(30)의 전력을 제어할 수 있고, 제3 나노 컨트롤러(230)는 제2 기능 블록(40)의 전력을 제어할 수 있으며, 제4 나노 컨트롤러(240)는 제3 기능 블록(50)의 전력을 제어할 수 있다. 다시 말하면, 제2 나노 컨트롤러(220)는 제1 기능 블록(30)에 인가되는 제1 리셋 신호(RST1), 제1 데이터 유지 제어 신호(RETN1) 및 제1 구동 전압(PWR1)을 제어할 수 있고, 제3 나노 컨트롤러(230)는 제2 기능 블록(40)에 인가되는 제2 리셋 신호(RST2), 제2 데이터 유지 제어 신호(RETN2) 및 제2 구동 전압(PWR2)을 제어할 수 있으며, 제4 나노 컨트롤러(240)는 제3 기능 블록(50)에 인가되는 제3 리셋 신호(RST3), 제3 데이터 유지 제어 신호(RETN3) 및 제3 구동 전압(PWR3)을 제어할 수 있다.
도 3에서는 세 개의 나노 컨트롤러들(220, 230, 240)이 상기 중앙 시퀀서에 종속되는 상기 하위 시퀀서들로서 프로그램되어 세 개의 기능 블록들(30, 40, 50) 중 하나의 전력을 각각 제어하는 것으로 도시하였으나, 실시예에 따라서 상기 하위 시퀀서들로서 프로그램되는 나노 컨트롤러들의 개수는 다양하게 변경될 수 있다.
제1 나노 컨트롤러(210)는 외부에서 제공되는 제1 작업 요청(JREQ1)을 수신할 수 있다. 예를 들어, 제1 작업 요청(JREQ1)은 시스템 온 칩(10) 내의 중앙 처리 유닛(20)으로부터 제공될 수 있다. 제1 나노 컨트롤러(210)는 제1 작업 요청(JREQ1)에 상응하는 제1 목표 작업을 제1 내지 제4 나노 컨트롤러들(210, 220, 230, 240) 중 하나에 할당할 수 있다.
일 실시예에서, 도 4를 참조하면, 중앙 처리 유닛(20)은 제1 나노 컨트롤러(210)에 제1 작업 요청(JREQ1)을 제공할 수 있다. 예를 들어, 중앙 처리 유닛(20)은 제1 나노 컨트롤러(210)의 제1 식별자(nCID1) 및 상기 콜 인스트럭션에 기초하여 제1 나노 컨트롤러(210)를 호출할 수 있고, 호출된 제1 나노 컨트롤러(210)에 제1 작업 요청(JREQ1)을 전달할 수 있다.
제1 나노 컨트롤러(210)가 작업이 할당되지 않은 아이들(idle) 상태인 경우에, 제1 나노 컨트롤러(210)는 제1 작업 요청(JREQ1)에 기초하여 상기 제1 목표 작업을 직접 수행할 수 있다. 예를 들어, 제1 나노 컨트롤러(210)는 상기 제1 목표 작업을 단일 쓰레드(single-thread)(THD1) 방식으로 수행할 수 있다.
제1 작업 요청(JREQ1)은 제1 목표 인스트럭션 주소(IADDR1) 또는 제1 작업 커맨드(JCMD1)를 포함할 수 있다. 제1 목표 인스트럭션 주소(IADDR1)는 인스트럭션 메모리(도 2의 300)에 직접 접근 가능한 방식의 주소일 수 있고, 제1 작업 커맨드(JCMD1)는 중앙 처리 장치(도 1의 20)에 의해 사용되는 커맨드일 수 있다. 제1 나노 컨트롤러(210)는 제1 목표 인스트럭션 주소(IADDR1) 또는 제1 작업 커맨드(JCMD1)에 기초하여 상기 제1 목표 작업을 수행할 수 있다. 제1 목표 인스트럭션 주소(IADDR1) 또는 제1 작업 커맨드(JCMD1)에 기초하여 상기 제1 목표 작업을 수행하기 위한 제1 나노 컨트롤러(210)의 구체적인 구조 및 동작에 대해서는 도 6, 7 및 8을 참조하여 후술하도록 한다.
제1 나노 컨트롤러(210)가 상기 제1 목표 작업을 완료한 경우에, 제1 나노 컨트롤러(210)는 리턴 인스트럭션(RTN1)에 기초하여 상기 제1 목표 작업이 완료되었음을 중앙 처리 유닛(20)에 알릴 수 있다.
다른 실시예에서, 도 5를 참조하면, 도 4를 참조하여 상술한 것과 유사하게 중앙 처리 유닛(20)은 제1 나노 컨트롤러(210)에 제1 작업 요청(JREQ1)을 제공할 수 있다.
제1 나노 컨트롤러(210)에 상기 제1 목표 작업과 다른 제2 목표 작업이 할당된 경우에, 제1 나노 컨트롤러(210)는 상기 제1 목표 작업을 수행할 수 없으며, 따라서 제1 나노 컨트롤러(210)는 제2 내지 제4 나노 컨트롤러들(220, 230, 240) 중 하나에 상기 제1 목표 작업을 할당할 수 있다.
예를 들어, 제2 나노 컨트롤러(220)에 상기 제1 목표 작업을 할당하고자 하는 경우에, 즉 상기 제1 목표 작업이 제1 기능 블록(도 1의 30)의 전력을 제어하기 위한 작업인 경우에, 제1 나노 컨트롤러(210)는 제2 나노 컨트롤러(220)의 제2 식별자(nCID2) 및 상기 콜 인스트럭션에 기초하여 제2 나노 컨트롤러(210)를 호출할 수 있고, 호출된 제2 나노 컨트롤러(220)에 제1 작업 요청(JREQ1)을 전달할 수 있다.
제2 나노 컨트롤러(220)는 제1 작업 요청(JREQ1)에 기초하여 상기 제1 목표 작업을 수행할 수 있다. 예를 들어, 제2 나노 컨트롤러(220)는 상기 제1 목표 작업을 단일 쓰레드(THD2) 방식으로 수행할 수 있다. 제1 작업 요청(JREQ1)은 제1 목표 인스트럭션 주소(IADDR1) 또는 제1 작업 커맨드(JCMD1)를 포함할 수 있으며, 제1 목표 인스트럭션 주소(IADDR1) 또는 제1 작업 커맨드(JCMD1)에 기초하여 상기 제1 목표 작업을 수행하기 위한 제2 나노 컨트롤러(220)의 구체적인 구조 및 동작에 대해서는 도 9를 참조하여 후술하도록 한다.
제2 나노 컨트롤러(220)가 상기 제1 목표 작업을 완료한 경우에, 제2 나노 컨트롤러(220)는 리턴 인스트럭션(RTN1)에 기초하여 상기 제1 목표 작업이 완료되었음을 제1 나노 컨트롤러(210)에 알릴 수 있고, 제1 나노 컨트롤러(210)는 리턴 인스트럭션(RTN1)에 기초하여 상기 제1 목표 작업이 완료되었음을 중앙 처리 유닛(20)에 알릴 수 있다.
도 3, 4 및 5에서는 전력 관리 시스템(도 2의 100)이 하나의 작업 요청(JREQ1)을 수신하고 목표 작업을 수행하는 것을 설명하였으나, 실시예에 따라서 전력 관리 시스템(도 2의 100)은 복수의 작업 요청들을 동시에 또는 순차적으로 수신할 수 있으며, 이 경우 도 3, 4 및 5를 참조하여 상술한 방법에 기초하여 복수의 작업 요청들 각각을 복수의 나노 컨트롤러들 중 하나에 할당하고 상응하는 목표 작업들을 수행할 수 있다.
도 6, 7 및 8은 도 2의 전력 관리 시스템에 포함되는 제1 나노 컨트롤러의 예들을 나타내는 블록도들이다.
이하에서는 도 4에 도시된 것처럼 제1 식별자(nCID1)에 기초하여 제1 작업 요청(JREQ1)에 상응하는 상기 제1 목표 작업이 상기 제1 나노 컨트롤러에 할당된 경우에 기초하여 도 6, 7, 8의 예들을 설명하도록 한다.
도 6을 참조하면, 제1 나노 컨트롤러(210a)는 인스트럭션 주소 발생부(211a), 인스트럭션 레지스터(215), 인스트럭션 디코더(216) 및 인스트럭션 실행부(217)를 포함할 수 있다. 제1 나노 컨트롤러(210a)는 작업 할당 상태 레지스터(219)를 더 포함할 수 있다.
인스트럭션 주소 발생부(211a)는 제1 작업 요청(JREQ1)에 기초하여 제1 목표 인스트럭션 주소(IADDR1)를 발생할 수 있다. 예를 들어, 제1 작업 요청(JREQ1)은 제1 목표 인스트럭션 주소(IADDR1)를 직접 포함하여 제공될 수 있다. 이 경우, 인스트럭션 주소 발생부(211a)는 제1 목표 인스트럭션 주소(IADDR1)를 저장하고 출력하는 프로그램 카운터(214)를 포함하여 구현될 수 있다.
인스트럭션 레지스터(215)는 제1 목표 인스트럭션 주소(IADDR1)에 기초하여 인스트럭션 메모리(300)로부터 상기 복수의 인스트럭션들 중에서 제1 목표 인스트럭션(INST1)을 인출(fetch)하여 저장할 수 있다.
인스트럭션 디코더(216)는 상기 인출된 제1 목표 인스트럭션(INST1)을 디코딩할 수 있다.
인스트럭션 실행부(217)는 상기 디코딩된 제1 목표 인스트럭션(INST1)을 실행할 수 있다. 예를 들어, 인스트럭션 실행부(217)는 산술 논리 유닛(Arithmetic Logic Unit; ALU)을 포함하여 구현될 수 있다.
작업 할당 상태 레지스터(219)는 복수의 나노 컨트롤러들(도 2의 200)의 현재 작업 상태를 나타낼 수 있다. 예를 들어, 작업 할당 상태 레지스터(219)에 저장된 복수의 값들 중에서 제k(k는 1 이상 n 이하의 자연수) 나노 레지스터에 상응하는 제k 값은, 상기 제k 나노 레지스터에 목표 작업이 할당되지 않는 경우에 제1 논리 레벨(예를 들어, "0")을 가질 수 있고, 상기 제k 나노 레지스터에 상기 목표 작업이 할당되어 상기 제k 나노 레지스터가 상기 목표 작업을 수행하는 경우에 제2 논리 레벨(예를 들어, "1")을 가질 수 있다. 구체적으로, 작업 할당 상태 레지스터(219)에 저장된 상기 복수의 값들 중에서 제1 나노 컨트롤러(210a)에 상응하는 제1 값은, 제1 나노 컨트롤러(210a)가 상기 아이들 상태인 경우에 상기 제1 논리 레벨을 가질 수 있고, 제1 나노 컨트롤러(210a)가 상기 제1 목표 작업을 수행하는 경우에 상기 제2 논리 레벨을 가질 수 있으며, 제1 나노 컨트롤러(210a)가 상기 제1 목표 작업을 완료한 경우에 다시 상기 제1 논리 레벨을 가질 수 있다.
도 7을 참조하면, 제1 나노 컨트롤러(210b)는 인스트럭션 주소 발생부(211b), 인스트럭션 레지스터(215), 인스트럭션 디코더(216) 및 인스트럭션 실행부(217)를 포함할 수 있다. 제1 나노 컨트롤러(210b)는 작업 할당 상태 레지스터(219)를 더 포함할 수 있다.
인스트럭션 주소 발생부(211b)는 제1 작업 요청(JREQ1)에 기초하여 제1 목표 인스트럭션 주소(IADDR1)를 발생할 수 있다. 예를 들어, 제1 작업 요청(JREQ1)은 제1 작업 커맨드(JCMD1)를 포함하여 제공될 수 있다. 이 경우, 인스트럭션 주소 발생부(211b)는 커맨드 디코더(213) 및 프로그램 카운터(214)를 포함하여 구현될 수 있다. 커맨드 디코더(213)는 제1 작업 커맨드(JCMD1)를 디코딩하여 제1 목표 인스트럭션 주소(IADDR1)를 발생할 수 있다. 프로그램 카운터(214)는 제1 목표 인스트럭션 주소(IADDR1)를 저장하고 출력할 수 있다.
실시예에 따라서, 커맨드 디코더(213)는 하드웨어로 구현되거나 또는 제1 나노 컨트롤러(210b)에 의해 실행 가능한 소프트웨어로 구현될 수 있다.
도 7의 인스트럭션 레지스터(215), 인스트럭션 디코더(216), 인스트럭션 실행부(217) 및 작업 할당 상태 레지스터(219)는 도 6의 인스트럭션 레지스터(215), 인스트럭션 디코더(216), 인스트럭션 실행부(217) 및 작업 할당 상태 레지스터(219)와 각각 실질적으로 동일할 수 있다. 예를 들어, 인스트럭션 레지스터(215)는 제1 목표 인스트럭션 주소(IADDR1)에 기초하여 인스트럭션 메모리(300)로부터 제1 목표 인스트럭션(INST1)을 인출하여 저장할 수 있다. 인스트럭션 디코더(216)는 상기 인출된 제1 목표 인스트럭션(INST1)을 디코딩할 수 있다. 인스트럭션 실행부(217)는 상기 디코딩된 제1 목표 인스트럭션(INST1)을 실행할 수 있다. 작업 할당 상태 레지스터(219)는 복수의 나노 컨트롤러들(도 2의 200)의 현재 작업 상태를 나타낼 수 있다.
도 8을 참조하면, 제1 나노 컨트롤러(210c)는 인스트럭션 주소 발생부(211c), 인스트럭션 레지스터(215), 인스트럭션 디코더(216) 및 인스트럭션 실행부(217)를 포함할 수 있다. 제1 나노 컨트롤러(210c)는 작업 할당 상태 레지스터(219)를 더 포함할 수 있다.
인스트럭션 주소 발생부(211c)는 제1 작업 요청(JREQ1)에 기초하여 제1 목표 인스트럭션 주소(IADDR1)를 발생할 수 있다. 예를 들어, 제1 작업 요청(JREQ1)은 제1 목표 인스트럭션 주소(IADDR1) 또는 제1 작업 커맨드(JCMD1)를 포함하여 제공될 수 있다. 이 경우, 인스트럭션 주소 발생부(211c)는 선택부(212), 커맨드 디코더(213) 및 프로그램 카운터(214)를 포함하여 구현될 수 있다. 선택부(212)는 제1 작업 요청(JREQ1)이 제1 작업 커맨드(JCMD1)를 포함하여 제공되는 경우에 제1 작업 커맨드(JCMD1)를 커맨드 디코더(213)에 제공할 수 있고, 제1 작업 요청(JREQ1)이 제1 목표 인스트럭션 주소(IADDR1)를 포함하여 제공되는 경우에 제1 목표 인스트럭션 주소(IADDR1)를 프로그램 카운터(214)에 제공할 수 있다. 커맨드 디코더(213)는 제1 작업 커맨드(JCMD1)를 디코딩하여 제1 목표 인스트럭션 주소(IADDR1)를 발생할 수 있다. 프로그램 카운터(214)는 제1 목표 인스트럭션 주소(IADDR1)를 저장하고 출력할 수 있다.
도 8의 인스트럭션 레지스터(215), 인스트럭션 디코더(216), 인스트럭션 실행부(217) 및 작업 할당 상태 레지스터(219)는 도 6의 인스트럭션 레지스터(215), 인스트럭션 디코더(216), 인스트럭션 실행부(217) 및 작업 할당 상태 레지스터(219)와 각각 실질적으로 동일할 수 있다.
도 9는 도 2의 전력 관리 시스템에 포함되는 제2 나노 컨트롤러의 예를 나타내는 블록도이다.
이하에서는 도 5에 도시된 것처럼 제2 식별자(nCID2)에 기초하여 제1 작업 요청(JREQ1)에 상응하는 상기 제1 목표 작업이 상기 제2 나노 컨트롤러에 할당된 경우에 기초하여 도 8의 예를 설명하도록 한다.
도 9를 참조하면, 제2 나노 컨트롤러(220)는 인스트럭션 주소 발생부(221), 인스트럭션 레지스터(225), 인스트럭션 디코더(226) 및 인스트럭션 실행부(227)를 포함할 수 있다.
인스트럭션 주소 발생부(221)는 제1 작업 요청(JREQ1)에 기초하여 제1 목표 인스트럭션 주소(IADDR1)를 발생할 수 있다. 실시예에 따라서, 인스트럭션 주소 발생부(221)는 도 6에 도시된 것처럼 프로그램 카운터를 포함하여 구현될 수도 있고, 도 7에 도시된 것처럼 커맨드 디코더 및 프로그램 카운터를 포함하여 구현될 수도 있으며, 도 8에 도시된 것처럼 선택부, 커맨드 디코더 및 프로그램 카운터를 포함하여 구현될 수도 있다.
인스트럭션 레지스터(225)는 제1 목표 인스트럭션 주소(IADDR1)에 기초하여 인스트럭션 메모리(300)로부터 제1 목표 인스트럭션(INST1)을 인출하여 저장할 수 있다. 인스트럭션 디코더(226)는 상기 인출된 제1 목표 인스트럭션(INST1)을 디코딩할 수 있다. 인스트럭션 실행부(227)는 상기 디코딩된 제1 목표 인스트럭션(INST1)을 실행할 수 있다.
도 6의 제1 나노 컨트롤러(210a), 도 7의 제1 나노 컨트롤러(210b) 및 도 8의 제1 나노 컨트롤러(210c)와 다르게, 도 9의 제2 나노 컨트롤러(220)에서는 작업 할당 상태 레지스터가 생략될 수 있다. 일 실시예에서, 제2 나노 컨트롤러(220)는 상기 작업 할당 상태 레지스터를 포함하지 않을 수 있다. 다른 실시예에서, 제2 나노 컨트롤러(220)는 상기 작업 할당 상태 레지스터를 포함하지만 사용하지 않을 수 있다.
도시하지는 않았지만, 상기 제1 하위 시퀀서들로서 프로그램된 제2 내지 제n 나노 프로세서들(도 2의 nC2, ..., nCn)은 실질적으로 동일한 구조를 가질 수 있다. 예를 들어, 도 3, 4 및 5에 도시된 제3 및 제4 나노 프로세서들(230, 240)은 도 9의 제2 나노 프로세서(220)와 마찬가지로 인스트럭션 주소 발생부, 인스트럭션 레지스터, 인스트럭션 디코더 및 인스트럭션 실행부를 각각 포함할 수 있으며, 작업 할당 상태 레지스터는 생략될 수 있다.
도 10, 11 및 12는 도 2의 전력 관리 시스템의 동작을 다른 예들을 설명하기 위한 도면들이다.
도 10을 참조하면, 복수의 나노 컨트롤러들(200) 중에서 제1 나노 컨트롤러(210)는 중앙 시퀀서로서 프로그램된다. 복수의 나노 컨트롤러들(200) 중에서 제2 내지 제4 나노 컨트롤러들(220, 230, 240)은 제1 나노 컨트롤러(210)에 종속되는 제1 하위 시퀀서들로서 프로그램된다. 도 3의 예와 동일하게, 제2 내지 제4 나노 컨트롤러들(220, 230, 240)은 복수의 기능 블록들(30, 40, 50) 중 하나의 전력을 각각 제어할 수 있다.
중앙 처리 유닛(20)은 제1 나노 컨트롤러(210)에 복수의 작업 요청들(JREQA, JREQB, JREQC, JREQD)을 제공할 수 있다. 제1 나노 컨트롤러(210)는 복수의 작업 요청들(JREQA, JREQB, JREQC, JREQD)에 상응하는 복수의 목표 작업들을 제1 내지 제4 나노 컨트롤러들(210, 220, 230, 240)에 각각 할당할 수 있다. 이 때, 도 4 및 5를 참조하여 상술한 것처럼 제1 내지 제4 나노 컨트롤러들(210, 220, 230, 240)의 현재 작업 상태에 기초하여 상기 복수의 목표 작업들이 제1 내지 제4 나노 컨트롤러들(210, 220, 230, 240)에 할당될 수 있다. 예를 들어, 제1 작업 요청(JREQA)에 상응하는 제1 목표 작업이 제1 나노 컨트롤러(210)에 할당될 수 있고, 제2 작업 요청(JREQB)에 상응하는 제2 목표 작업이 제2 나노 컨트롤러(220)에 할당될 수 있고, 제3 작업 요청(JREQC)에 상응하는 제3 목표 작업이 제3 나노 컨트롤러(230)에 할당될 수 있으며, 제4 작업 요청(JREQD)에 상응하는 제4 목표 작업이 제4 나노 컨트롤러(240)에 할당될 수 있다.
제1 내지 제4 나노 컨트롤러들(210, 220, 230, 240)은 복수의 작업 요청들(JREQA, JREQB, JREQC, JREQD)에 기초하여 상기 복수의 목표 작업들을 수행할 수 있다. 예를 들어, 제1 내지 제4 나노 컨트롤러들(210, 220, 230, 240)은 상기 복수의 목표 작업들을 멀티 쓰레드(multi-thread)(THDA, THDB, THDC, THDD) 방식으로 수행할 수 있다. 다시 말하면, 상기 복수의 목표 작업들은 하나의 프로세스 내에서 실질적으로 동시에 수행될 수 있다.
제1 내지 제4 나노 컨트롤러들(210, 220, 230, 240)이 상기 복수의 목표 작업들을 완료한 경우에, 제2 내지 제4 나노 컨트롤러들(220, 230, 240)은 리턴 인스트럭션들(RTNB, RTNC, RTND)에 기초하여 상기 제2, 제3 및 제4 목표 작업들이 완료되었음을 제1 나노 컨트롤러(210)에 알릴 수 있고, 제1 나노 컨트롤러(210)는 리턴 인스트럭션들(RTNA, RTNB, RTNC, RTND)에 기초하여 상기 복수의 목표 작업들을 완료되었음을 중앙 처리 유닛(20)에 알릴 수 있다.
도 1, 2 및 11을 참조하면, 복수의 나노 컨트롤러들(200) 중에서 제1 나노 컨트롤러(210)는 중앙 시퀀서로서 프로그램된다. 복수의 나노 컨트롤러들(200) 중에서 제1 나노 컨트롤러(210)를 제외한 일부는 상기 중앙 시퀀서에 종속되는 제1 하위 시퀀서들로서 프로그램된다. 도 11의 예에서, 복수의 나노 컨트롤러들(200) 중에서 제2 내지 제4 나노 컨트롤러들(220a, 230a, 240a)이 제1 나노 컨트롤러(210)에 종속되는 상기 제1 하위 시퀀서들로서 프로그램될 수 있다.
일 실시예에서, 제2 내지 제4 나노 컨트롤러들(220a, 230a, 240a)은 신호 맵 메모리(400)에 저장된 상기 복수의 신호들에 포함되는 상기 리셋 신호들, 상기 구동 전압 제어 신호들, 상기 데이터 유지 제어 신호들 중에서 동일한 성격을 가지는 하나의 그룹을 각각 제어할 수 있다. 예를 들어, 제2 나노 컨트롤러(220a)는 상기 리셋 신호들을 제어할 수 있고, 제3 나노 컨트롤러(230a)는 상기 구동 전압들을 제어할 수 있으며, 제4 나노 컨트롤러(240a)는 상기 데이터 유지 제어 신호들을 제어할 수 있다. 다시 말하면, 제2 나노 컨트롤러(220a)는 제1 기능 블록(30)에 인가되는 제1 리셋 신호(RST1), 제2 기능 블록(40)에 인가되는 제2 리셋 신호(RST2) 및 제3 기능 블록(50)에 인가되는 제3 리셋 신호(RST3)를 제어할 수 있고, 제3 나노 컨트롤러(230a)는 제1 기능 블록(30)에 인가되는 제1 데이터 유지 제어 신호(RETN1), 제2 기능 블록(40)에 인가되는 제2 데이터 유지 제어 신호(RETN2) 및 제3 기능 블록(50)에 인가되는 제3 데이터 유지 제어 신호(RETN3)를 제어할 수 있으며, 제4 나노 컨트롤러(240a)는 제1 기능 블록(30)에 인가되는 제1 구동 전압(PWR1), 제2 기능 블록(40)에 인가되는 제2 구동 전압(PWR2) 및 제3 기능 블록(50)에 인가되는 제3 구동 전압(PWR3)을 제어할 수 있다.
도 4, 5 및 10을 참조하여 상술한 것처럼, 제1 내지 제4 나노 컨트롤러들(210, 220a, 230a, 240a)의 현재 작업 상태에 기초하여 적어도 하나의 목표 작업이 제1 내지 제4 나노 컨트롤러들(210, 220a, 230a, 240a)에 할당될 수 있으며, 제1 내지 제4 나노 컨트롤러들(210, 220a, 230a, 240a)은 단일 쓰레드 또는 멀티 쓰레드 방식으로 상기 적어도 하나의 목표 작업을 수행할 수 있다.
도 1, 2 및 12를 참조하면, 복수의 나노 컨트롤러들(200) 중에서 제1 나노 컨트롤러(210)는 중앙 시퀀서로서 프로그램된다. 복수의 나노 컨트롤러들(200) 중에서 제1 나노 컨트롤러(210)를 제외한 일부는 상기 중앙 시퀀서에 종속되는 제1 하위 시퀀서들로서 프로그램된다. 또한, 복수의 나노 컨트롤러들(200) 중에서 제1 나노 컨트롤러(210)를 제외한 다른 일부는 상기 제1 하위 시퀀서들에 종속되는 제2 하위 시퀀서들로서 프로그램된다. 도 12의 예에서, 복수의 나노 컨트롤러들(200) 중에서 제2 내지 제4 나노 컨트롤러들(220b, 230b, 240b)이 제1 나노 컨트롤러(210)에 종속되는 상기 제1 하위 시퀀서들로서 프로그램될 수 있고, 복수의 나노 컨트롤러들(200) 중에서 제5 내지 제7 나노 컨트롤러들(250b, 260b, 270b)이 제2 나노 컨트롤러(220b)에 종속되는 상기 제2 하위 시퀀서들로서 프로그램될 수 있으며, 복수의 나노 컨트롤러들(200) 중에서 제8 및 제9 나노 컨트롤러들(280b, 290b)이 제3 나노 컨트롤러(230b)에 종속되는 상기 제2 하위 시퀀서들로서 프로그램될 수 있다.
실시예에 따라서, 제2 내지 제4 나노 컨트롤러들(220b, 230b, 240b) 및/또는 제5 내지 제9 나노 컨트롤러들(250b, 260b, 270b, 280b, 290b)은 시스템 온 칩(10)에 포함되는 상기 복수의 기능 블록들 중 하나의 전력을 각각 제어할 수도 있고, 신호 맵 메모리(400)에 저장된 상기 복수의 신호들에 포함되는 상기 리셋 신호들, 상기 구동 전압 제어 신호들, 상기 데이터 유지 제어 신호들 중에서 동일한 성격을 가지는 하나의 그룹을 각각 제어할 수도 있다.
도 4, 5 및 10을 참조하여 상술한 것처럼, 제1 내지 제9 나노 컨트롤러들(210, 220b, 230b, 240b, 250b, 260b, 270b, 280b, 290b)의 현재 작업 상태에 기초하여 적어도 하나의 목표 작업이 제1 내지 제9 나노 컨트롤러들(210, 220b, 230b, 240b, 250b, 260b, 270b, 280b, 290b)에 할당될 수 있으며, 제1 내지 제9 나노 컨트롤러들(210, 220b, 230b, 240b, 250b, 260b, 270b, 280b, 290b)은 단일 쓰레드 또는 멀티 쓰레드 방식으로 상기 적어도 하나의 목표 작업을 수행할 수 있다.
도 13은 본 발명의 실시예들에 따른 전력 관리 시스템의 구동 방법을 나타내는 순서도이다.
도 1, 2 및 13을 참조하면, 프로그램 가능한 복수의 나노 컨트롤러들(200)을 포함하는 전력 관리 시스템(100)을 구동하는데 있어서, 복수의 나노 컨트롤러들(200) 중에서 제1 나노 컨트롤러(nC1)가 중앙 시퀀서로서 프로그램되고 제2 내지 제n 나노 컨트롤러들(nC2, ..., nCn)이 제1 나노 컨트롤러(nC1)에 종속되는 제1 하위 시퀀서들로서 프로그램된다(단계 S100).
예를 들어, 도 3에 도시된 것처럼, 제2 내지 제n 나노 컨트롤러들(nC2, ..., nCn)은 복수의 기능 블록들(30, 40, 50) 중 하나의 전력을 각각 제어하도록 프로그램될 수 있다. 다른 예에서, 도 11에 도시된 것처럼, 제2 내지 제n 나노 컨트롤러들(nC2, ..., nCn)은 신호 맵 메모리(400)에 저장된 상기 복수의 신호들 중에서 동일한 성격을 가지는 하나의 그룹을 각각 제어하도록 프로그램될 수 있다.
제1 내지 제n 나노 컨트롤러들(nC1, ..., nCn) 중 하나는 중앙 처리 유닛(20)으로부터 제공되는 제1 작업 요청(JREQ1)에 상응하는 제1 목표 작업을 수행한다(단계 S200).
도시하지는 않았지만, 실시예에 따라서 복수의 나노 컨트롤러들(200)은 제(n+1) 내지 제m(m은 (n+1) 이상의 자연수) 나노 컨트롤러들을 더 포함할 수 있다. 이 경우, 도 12에 도시된 것처럼, 상기 제(n+1) 내지 제m 나노 컨트롤러들은 제2 나노 컨트롤러(nC2)에 종속되는 제2 하위 시퀀서들로서 프로그램될 수 있으며, 단계 S200에서 상기 제1 내지 제m 나노 컨트롤러들 중 하나가 상기 제1 목표 작업을 수행할 수 있다.
본 발명의 실시예들에 따른 전력 관리 시스템(100)의 구동 방법에서는, 시스템 온 칩(10)의 전력을 관리하기 위한 최적의 형태로 복수의 나노 컨트롤러들(200)이 적절하게 프로그램될 수 있으며, 복수의 나노 컨트롤러들(200)은 상대적으로 간단하고 제한적인 복수의 인스트럭션들만을 이용하며 하나의 인스트럭션 메모리(300) 및 하나의 신호 맵 메모리(400)를 서로 공유할 수 있다. 따라서, 전력 관리 시스템(100)은 상대적으로 간단한 구조를 가지며 시스템 온 칩(10)의 전력 소모를 효과적으로 감소시킬 수 있다.
도 14는 도 13의 제1 목표 작업을 수행하는 단계의 일 예를 나타내는 순서도이다.
도 1, 2, 13 및 14를 참조하면, 상기 제1 목표 작업을 수행하는데 있어서, 제1 나노 컨트롤러(nC1)는 중앙 처리 유닛(20)으로부터 제공되는 제1 작업 요청(JREQ1)을 수신할 수 있다(단계 S210). 예를 들어, 도 4 및 5를 참조하여 상술한 것처럼, 중앙 처리 유닛(20)은 제1 나노 컨트롤러(210)의 제1 식별자(nCID1) 및 상기 콜 인스트럭션에 기초하여 제1 나노 컨트롤러(210)를 호출할 수 있고, 호출된 제1 나노 컨트롤러(210)에 제1 작업 요청(JREQ1)을 전달할 수 있다.
제1 나노 컨트롤러(nC1)는 제1 작업 요청(JREQ1)에 상응하는 상기 제1 목표 작업을 제1 내지 제n 나노 컨트롤러들(nC1, ..., nCn) 중 하나에 할당할 수 있다(단계 S220).
제1 내지 제n 나노 컨트롤러들(nC1, ..., nCn) 중 상기 제1 목표 작업이 할당된 나노 컨트롤러는 상기 제1 목표 작업을 수행할 수 있다(단계 S230).
상기 제1 목표 작업이 완료된 경우에 상기 제1 목표 작업이 완료되었음을 중앙 처리 유닛(20)에 알릴 수 있다(단계 S240). 예를 들어, 도 4에 도시된 것처럼 제1 나노 컨트롤러(210)에 상기 제1 목표 작업이 할당되고 제1 나노 컨트롤러(210)가 상기 제1 목표 작업을 완료한 경우에, 제1 나노 컨트롤러(210)는 리턴 인스트럭션(RTN1)에 기초하여 상기 제1 목표 작업이 완료되었음을 중앙 처리 유닛(20)에 알릴 수 있다. 다른 예에서, 도 5에 도시된 것처럼 제2 나노 컨트롤러(220)에 상기 제1 목표 작업이 할당되고 제2 나노 컨트롤러(220)가 상기 제1 목표 작업을 완료한 경우에, 제2 나노 컨트롤러(220)는 리턴 인스트럭션(RTN1)에 기초하여 상기 제1 목표 작업이 완료되었음을 제1 나노 컨트롤러(210)에 알릴 수 있고, 제1 나노 컨트롤러(210)는 리턴 인스트럭션(RTN1)에 기초하여 상기 제1 목표 작업이 완료되었음을 중앙 처리 유닛(20)에 알릴 수 있다.
도 15는 도 14의 제1 목표 작업을 할당하는 단계의 일 예를 나타내는 순서도이다.
도 1, 2, 14 및 15를 참조하면, 상기 제1 목표 작업을 할당하는데 있어서, 제1 나노 컨트롤러(nC1)의 현재 작업 상태를 판단할 수 있다(단계 S222). 예를 들어, 도 6, 7 및 8에 도시된 것처럼, 제1 나노 컨트롤러(nC1)는 작업 할당 상태 레지스터(219)를 포함할 수 있으며, 작업 할당 상태 레지스터(219)에 저장된 복수의 값들 중에서 제1 나노 컨트롤러(nC1)에 상응하는 제1 값에 기초하여 제1 나노 컨트롤러(nC1)의 현재 작업 상태가 판단될 수 있다.
제1 나노 컨트롤러(nC1)가 작업이 할당되지 않은 아이들(idle) 상태인 경우에(단계 S222: 예), 상기 제1 목표 작업이 제1 나노 컨트롤러(nC1)에 할당될 수 있다(단계 S224). 이 경우, 도 4를 참조하여 상술한 것처럼, 도 14의 단계 S230에서 제1 나노 컨트롤러(210)가 상기 제1 목표 작업을 직접 수행할 수 있다.
제1 나노 컨트롤러(nC1)가 상기 아이들 상태가 아니며 제1 나노 컨트롤러(nC1)에 상기 제1 목표 작업과 다른 제2 목표 작업이 할당된 경우에(단계 S222: 아니오), 상기 제1 목표 작업이 제2 내지 제n 나노 컨트롤러들(nC2, ..., nCn) 중 하나에 할당될 수 있다(단계 S226). 예를 들어, 도 5를 참조하여 상술한 것처럼, 제2 나노 컨트롤러(220)에 상기 제1 목표 작업이 할당될 수 있으며, 도 14의 단계 S230에서 제2 나노 컨트롤러(220)가 상기 제1 목표 작업을 직접 수행할 수 있다.
구체적으로, 작업 할당 상태 레지스터(도 6의 219)에 저장된 상기 복수의 값들에 기초하여 제2 내지 제n 나노 컨트롤러들(nC2, ..., nCn)의 현재 작업 상태가 판단될 수 있으며, 상기 판단 결과에 기초하여 상기 제1 목표 작업을 할당하고자 하는 나노 컨트롤러가 선정될 수 있다(단계 S227). 상기 선정된 나노 컨트롤러(예를 들어, 도 5의 제2 나노 컨트롤러(220))에 제1 작업 요청(JREQ1)이 전달될 수 있다(단계 S229). 예를 들어, 제1 나노 컨트롤러(210)는 제2 나노 컨트롤러(220)의 제2 식별자(nCID2) 및 상기 콜 인스트럭션에 기초하여 제2 나노 컨트롤러(210)를 호출할 수 있고, 호출된 제2 나노 컨트롤러(220)에 제1 작업 요청(JREQ1)을 전달할 수 있다.
도 16은 도 14의 제1 목표 작업을 수행하는 단계의 일 예를 나타내는 순서도이다.
도 6, 7, 8, 9, 14 및 16을 참조하면, 상기 제1 목표 작업을 할당하는데 있어서, 제1 작업 요청(JREQ1)에 기초하여 제1 목표 인스트럭션 주소(IADDR1)를 발생할 수 있다(단계 S232). 예를 들어, 제1 작업 요청(JREQ1)은 제1 목표 인스트럭션 주소(IADDR1)를 직접 포함하거나 제1 작업 커맨드(JCMD1)를 포함할 수 있다. 상기 나노 컨트롤러들 각각은 인스트럭션 주소 발생부를 포함할 수 있으며, 상기 인스트럭션 주소 발생부는 제1 목표 인스트럭션 주소(IADDR1)를 발생하기 위한 커맨드 디코더(213) 및/또는 프로그램 카운터(214)를 포함할 수 있다.
제1 목표 인스트럭션 주소(IADDR1)에 기초하여 인스트럭션 메모리(300)로부터 상기 복수의 인스트럭션들 중에서 제1 목표 인스트럭션(INST1)을 인출하여 저장할 수 있다(단계 S234). 상기 인출된 제1 목표 인스트럭션(INST1)을 디코딩할 수 있으며(단계 S236), 상기 디코딩된 제1 목표 인스트럭션(INST1)을 실행할 수 있다(단계 S238). 상기 나노 컨트롤러들 각각은 상술한 동작들을 수행하기 위한 인스트럭션 레지스터(215), 인스트럭션 디코더(216) 및 인스트럭션 실행부(217)를 포함할 수 있다.
도 17은 본 발명의 실시예들에 따른 전력 관리 시스템의 구동 방법을 나타내는 순서도이다.
도 1, 2 및 17을 참조하면, 프로그램 가능한 복수의 나노 컨트롤러들(200)을 포함하는 전력 관리 시스템(100)을 구동하는데 있어서, 복수의 나노 컨트롤러들(200) 중에서 제1 나노 컨트롤러(nC1)가 중앙 시퀀서로서 프로그램되고 제2 내지 제n 나노 컨트롤러들(nC2, ..., nCn)이 제1 나노 컨트롤러(nC1)에 종속되는 제1 하위 시퀀서들로서 프로그램된다(단계 S100). 도 17의 단계 S100은 도 13의 단계 S100과 실질적으로 동일할 수 있다.
제1 내지 제n 나노 컨트롤러들(nC1, ..., nCn)은 중앙 처리 유닛(20)으로부터 제공되는 복수의 작업 요청들(JREQA, JREQB, JREQC, JREQD)에 상응하는 복수의 목표 작업들을 수행한다(단계 S300).
도 18은 도 17의 복수의 목표 작업들을 수행하는 단계의 일 예를 나타내는 순서도이다.
도 1, 2, 17 및 18을 참조하면, 상기 복수의 목표 작업들을 수행하는데 있어서, 제1 나노 컨트롤러(nC1)는 중앙 처리 유닛(20)으로부터 제공되는 복수의 작업 요청들(JREQA, JREQB, JREQC, JREQD)을 수신할 수 있다(단계 S310). 제1 나노 컨트롤러(nC1)는 복수의 작업 요청들(JREQA, JREQB, JREQC, JREQD)에 상응하는 상기 복수의 목표 작업들을 제1 내지 제n 나노 컨트롤러들(nC1, ..., nCn)에 할당할 수 있다(단계 S320). 예를 들어, 도 10을 참조하여 상술한 것처럼, 제1 작업 요청(JREQA)에 상응하는 제1 목표 작업이 제1 나노 컨트롤러(210)에 할당될 수 있고, 제2 작업 요청(JREQB)에 상응하는 제2 목표 작업이 제2 나노 컨트롤러(220)에 할당될 수 있고, 제3 작업 요청(JREQC)에 상응하는 제3 목표 작업이 제3 나노 컨트롤러(230)에 할당될 수 있으며, 제4 작업 요청(JREQD)에 상응하는 제4 목표 작업이 제4 나노 컨트롤러(240)에 할당될 수 있다.
제1 내지 제n 나노 컨트롤러들(nC1, ..., nCn) 중 상기 복수의 목표 작업들이 할당된 나노 컨트롤러들은 상기 복수의 목표 작업들을 멀티 쓰레드 방식으로 수행할 수 있다(단계 S330). 예를 들어, 도 10을 참조하여 상술한 것처럼, 제1 내지 제4 나노 컨트롤러들(210, 220, 230, 240)은 상기 복수의 목표 작업들을 멀티 쓰레드(THDA, THDB, THDC, THDD) 방식으로 수행할 수 있으며, 상기 복수의 목표 작업들은 하나의 프로세스 내에서 실질적으로 동시에 수행될 수 있다.
상기 복수의 목표 작업들이 완료된 경우에 상기 복수의 목표 작업들이 완료되었음을 중앙 처리 유닛(20)에 알릴 수 있다(단계 S340). 예를 들어, 도 10을 참조하여 상술한 것처럼, 제1 내지 제4 나노 컨트롤러들(210, 220, 230, 240)이 상기 복수의 목표 작업들을 완료한 경우에, 제2 내지 제4 나노 컨트롤러들(220, 230, 240)은 리턴 인스트럭션들(RTNB, RTNC, RTND)에 기초하여 상기 제2, 제3 및 제4 목표 작업들이 완료되었음을 제1 나노 컨트롤러(210)에 알릴 수 있고, 제1 나노 컨트롤러(210)는 리턴 인스트럭션들(RTNA, RTNB, RTNC, RTND)에 기초하여 상기 복수의 목표 작업들을 완료되었음을 중앙 처리 유닛(20)에 알릴 수 있다.
도 19는 본 발명의 실시예들에 따른 모바일 기기를 나타내는 블록도이다. 도 20은 도 19의 모바일 기기가 스마트폰으로 구현되는 일 예를 나타내는 도면이다.
도 19 및 20을 참조하면, 모바일 기기(700)는 시스템 온 칩(710) 및 복수의 기능 모듈들(740, 750, 760, 770)을 포함한다. 모바일 기기(700)는 메모리 장치(720), 저장 장치(730) 및 전력 관리 장치(780)를 더 포함할 수 있다. 한편, 도 20에 도시된 바와 같이, 모바일 기기(700)는 스마트폰으로 구현될 수 있다.
시스템 온 칩(710)은 모바일 기기(700)의 전반적인 동작을 제어할 수 있다. 다시 말하면, 시스템 온 칩(710)은 메모리 장치(720), 저장 장치(730) 및 복수의 기능 모듈들(740, 750, 760, 770)을 제어할 수 있다. 예를 들어, 시스템 온 칩(710)은 모바일 기기(700)에 구비되는 어플리케이션 프로세서(Application Processor; AP)일 수 있다.
시스템 온 칩(710)은 도 1의 시스템 온 칩(10)일 수 있으며, 중앙 처리 유닛(712) 및 전력 관리 시스템(714)을 포함할 수 있다. 전력 관리 시스템(714)은 프로그램 가능한 복수의 나노 컨트롤러들(nC)을 포함할 수 있으며, 시스템 온 칩(710)의 전력을 관리하기 위한 최적의 형태로 복수의 나노 컨트롤러들(nC)이 적절하게 프로그램될 수 있다. 또한, 복수의 나노 컨트롤러들(nC)은 상대적으로 간단하고 제한적인 복수의 인스트럭션들만을 이용하며 하나의 인스트럭션 메모리(IM) 및 하나의 신호 맵 메모리(SM)를 서로 공유할 수 있다. 따라서, 전력 관리 시스템(714)은 상대적으로 간단한 구조를 가지며 시스템 온 칩(710) 및 이를 포함하는 모바일 기기(700)의 전력 소모를 효과적으로 감소시킬 수 있다.
메모리 장치(720) 및 저장 장치(730)는 모바일 기기(700)의 동작에 필요한 데이터들을 저장할 수 있다. 예를 들어, 메모리 장치(720)는 DRAM(dynamic random access memory) 장치, SRAM(static random access memory) 장치, 모바일 DRAM 장치 등과 같은 휘발성 메모리 장치에 상응할 수 있고, 저장 장치(730)는 EPROM(erasable programmable read-only memory) 장치, EEPROM(electrically erasable programmable read-only memory) 장치, 플래시 메모리(flash memory) 장치, PRAM(phase change random access memory) 장치, RRAM(resistance random access memory) 장치, NFGM(nano floating gate memory) 장치, PoRAM(polymer random access memory) 장치, MRAM(magnetic random access memory) 장치, FRAM(ferroelectric random access memory) 장치 등과 같은 비휘발성 메모리 장치에 상응할 수 있다. 실시예에 따라서, 저장 장치(730)는 솔리드 스테이트 드라이브(solid state drive; SSD), 하드 디스크 드라이브(hard disk drive; HDD), 씨디롬(CD-ROM) 등을 더 포함할 수도 있다.
복수의 기능 모듈들(740, 750, 760, 770)은 모바일 기기(700)의 다양한 기능들을 각각 수행할 수 있다. 예를 들어, 모바일 기기(700)는 통신 기능을 수행하기 위한 통신 모듈(740)(예를 들어, CDMA(code division multiple access) 모듈, LTE(long term evolution) 모듈, RF(radio frequency) 모듈, UWB(ultra wideband) 모듈, WLAN(wireless local area network) 모듈, WIMAX(worldwide interoperability for microwave access) 모듈 등), 카메라 기능을 수행하기 위한 카메라 모듈(750), 표시 기능을 수행하기 위한 디스플레이 모듈(760), 터치 입력 기능을 수행하기 위한 터치 패널 모듈(770) 등을 포함할 수 있다. 실시예에 따라서, 모바일 기기(700)는 GPS(global positioning system) 모듈, 마이크 모듈, 스피커 모듈, 자이로스코프(gyroscope) 모듈 등을 더 포함할 수 있다. 다만, 모바일 기기(700)에 구비되는 복수의 기능 모듈들(740, 750, 760, 770)의 종류는 그에 한정되지 않음은 자명하다.
전력 관리 장치(780)는 시스템 온 칩(710), 메모리 장치(720), 저장 장치(730) 및 복수의 기능 모듈들(740, 750, 760, 770)에 각각 구동 전압을 제공할 수 있다.
도 21은 도 19의 모바일 기기에서 사용되는 인터페이스의 일 예를 나타내는 블록도이다.
도 21을 참조하면, 모바일 기기(800)는 시스템 온 칩(802) 및 복수의 인터페이스들(811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823)을 포함한다. 실시예에 따라서, 모바일 기기(800)는 휴대폰(Mobile Phone), 스마트 폰(Smart Phone), 개인 정보 단말기(Personal Digital Assistant; PDA), 휴대형 멀티미디어 플레이어(Portable Multimedia Player; PMP), 디지털 카메라(Digital Camera), 음악 재생기(Music Player), 휴대용 게임 콘솔(Portable Game Console), 네비게이션(Navigation) 시스템 등과 같은 임의의 모바일 시스템으로 구현될 수 있다.
시스템 온 칩(802)은 모바일 기기(800)의 전반적인 동작을 제어할 수 있다. 예를 들어, 시스템 온 칩(802)은 모바일 기기(800)에 구비되는 어플리케이션 프로세서(Application Processor; AP)일 수 있다.
시스템 온 칩(802)은 복수의 인터페이스들(811~823) 각각을 통하여 다수의 주변 장치들 각각과 통신할 수 있다. 예컨대, 복수의 인터페이스들(811~823) 각각은 각 전력 영역에 구현된 다수의 IP들 중에서 상응하는 IP로부터 출력된 적어도 하나의 제어 신호를 상기 다수의 주변 장치들 각각으로 전송할 수 있다.
예를 들어, 시스템 온 칩(802)은 각 디스플레이 인터페이스(811, 812)를 통하여 각 평판 디스플레이 장치(flat panel display)의 전력 상태와 동작 상태를 제어할 수 있다. 평판 디스플레이 장치는 LCD(liquid crystal device) 디스플레이, LED(light emitting diode) 디스플레이, OLED(Organic Light Emitting Diode) 디스플레이, 또는 AMOLED(Active Matrix Organic Light-Emitting Diode) 디스플레이를 포함할 수 있다.
시스템 온 칩(802)은 캠코더 인터페이스(813)를 통하여 캠코더의 전력 상태와 동작 상태를 제어할 수 있고, TV 인터페이스(814)를 통하여 TV 모듈의 전력 상태와 동작 상태를 제어할 수 있고, 이미지 센서 인터페이스(815)를 통하여 카메라 모듈 또는 이미지 센서 모듈의 전력 상태와 동작 상태를 제어할 수 있다.
시스템 온 칩(802)은 GPS 인터페이스(816)를 통하여 GPS 모듈의 전력 상태와 동작 상태를 제어할 수 있고, UWB 인터페이스(817)를 통하여 UWB(ultra wideband) 모듈의 전력 상태와 동작 상태를 제어할 수 있고, USB 드라이브 인터페이스(818)를 통하여 USB 드라이브의 전력 상태와 동작 상태를 제어할 수 있다.
시스템 온 칩(802)은 DRAM 인터페이스(dynamic random access memory interface; 819)를 통하여 DRAM의 전력 상태와 동작 상태를 제어할 수 있고, 비휘발성 메모리 인터페이스(820), 예컨대 플래시 메모리 인터페이스를 통하여 비휘발성 메모리, 예컨대 플래시 메모리의 전력 상태와 동작 상태를 제어할 수 있고, 오디오 인터페이스(821)를 통하여 오디오 모듈의 전력 상태와 동작 상태를 제어할 수 있고, MFC 인터페이스(822)를 통하여 MFC의 전력 상태를 제어할 수 있고, MP3 플레이어 인터페이스(823)를 통하여 MP3플레이어의 전력 상태를 제어할 수 있다. 여기서 모듈(module) 또는 인터페이스는 하드웨어 또는 소프트웨어로 구현될 수 있다.
시스템 온 칩(802)은 도 1의 시스템 온 칩(10)일 수 있으며, 중앙 처리 유닛(804) 및 전력 관리 시스템(806)을 포함할 수 있다. 전력 관리 시스템(806)은 프로그램 가능한 복수의 나노 컨트롤러들(nC)을 포함할 수 있으며, 시스템 온 칩(802)의 전력을 관리하기 위한 최적의 형태로 복수의 나노 컨트롤러들(nC)이 적절하게 프로그램될 수 있다. 또한, 복수의 나노 컨트롤러들(nC)은 상대적으로 간단하고 제한적인 복수의 인스트럭션들만을 이용하며 하나의 인스트럭션 메모리(IM) 및 하나의 신호 맵 메모리(SM)를 서로 공유할 수 있다. 따라서, 전력 관리 시스템(806)은 상대적으로 간단한 구조를 가지며 시스템 온 칩(802) 및 이를 포함하는 모바일 기기(800)의 전력 소모를 효과적으로 감소시킬 수 있다.
도 22는 본 발명의 실시예들에 따른 휴대용 단말기를 나타내는 블록도이다.
도 22를 참조하면, 휴대용 단말기(1000)는 이미지 처리부(1100), 무선 송수신부(1200), 오디오 처리부(1300), 이미지 파일 생성부(1400), 메모리 장치(1500), 유저 인터페이스(1600), 어플리케이션 프로세서(1700) 및 전력 관리 장치(1800)를 포함한다.
이미지 처리부(1100)는 렌즈(1110), 이미지 센서(1120), 이미지 프로세서(1130) 및 디스플레이부(1140)를 포함한다. 무선 송수신부(1200)는 안테나(1210), 트랜시버(1220) 및 모뎀(1230)을 포함한다. 오디오 처리부(1300)는 오디오 프로세서(1310), 마이크(1320) 및 스피커(1330)를 포함한다.
휴대용 단말기(1000)에는 다양한 종류의 반도체 장치들이 포함될 수 있으며, 특히 어플리케이션 프로세서(1700)의 저전력, 고성능이 요구될 수 있다. 이러한 요구에 따라 어플리케이션 프로세서(1700)는 미세화 공정에 따라 멀티 코어 형태로 제공되기도 한다. 어플리케이션 프로세서(1700)는 도 1의 시스템 온 칩(10)일 수 있으며, 중앙 처리 유닛(1702) 및 전력 관리 시스템(1704)을 포함할 수 있다. 전력 관리 시스템(1704)은 프로그램 가능한 복수의 나노 컨트롤러들(nC)을 포함할 수 있으며, 어플리케이션 프로세서(1700)의 전력을 관리하기 위한 최적의 형태로 복수의 나노 컨트롤러들(nC)이 적절하게 프로그램될 수 있다. 또한, 복수의 나노 컨트롤러들(nC)은 상대적으로 간단하고 제한적인 복수의 인스트럭션들만을 이용하며 하나의 인스트럭션 메모리 및 하나의 신호 맵 메모리를 서로 공유할 수 있다. 따라서, 전력 관리 시스템(1704)은 상대적으로 간단한 구조를 가지며 어플리케이션 프로세서(1700) 및 이를 포함하는 휴대용 단말기(1000)의 전력 소모를 효과적으로 감소시킬 수 있다.
전력 관리 장치(780)는 이미지 처리부(1100), 무선 송수신부(1200), 오디오 처리부(1300), 이미지 파일 생성부(1400), 메모리 장치(1500), 유저 인터페이스(1600), 어플리케이션 프로세서(1700)에 각각 구동 전압을 제공할 수 있다.
본 발명은 시스템 온 칩 및 이를 포함하는 다양한 장치 및 시스템에 적용될 수 있다. 따라서, 본 발명은 스마트폰, 태블릿 컴퓨터(tablet computer), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player)와 같은 다양한 형태의 전자 기기에 확대 적용될 수 있을 것이다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (20)

  1. 시스템 온 칩(System on Chip; SoC)에 포함되는 복수의 기능 블록들의 전력을 제어하는 전력 관리 시스템으로서,
    프로그램 가능한 복수의 나노 컨트롤러(Nano Controller)들;
    상기 복수의 나노 컨트롤러들에 의해 이용되는 복수의 인스트럭션(instruction)들을 저장하고, 상기 복수의 나노 컨트롤러들에 의해 공유되는 인스트럭션 메모리; 및
    상기 복수의 기능 블록들에 인가되고 상기 복수의 나노 컨트롤러들에 의해 제어되는 복수의 신호들을 저장하고, 상기 복수의 나노 컨트롤러들에 의해 공유되는 신호 맵 메모리를 포함하며,
    상기 복수의 나노 컨트롤러들 중에서 제1 나노 컨트롤러는 중앙 시퀀서(Central Sequencer)로서 프로그램되며, 상기 복수의 나노 컨트롤러들 중에서 제2 내지 제n(n은 2 이상의 자연수) 나노 컨트롤러들은 상기 제1 나노 컨트롤러에 종속되는 제1 하위 시퀀서(Sub-Sequencer)들로서 프로그램되는 전력 관리 시스템.
  2. 제 1 항에 있어서, 상기 복수의 나노 컨트롤러들 각각은,
    작업(job) 요청에 기초하여 목표 인스트럭션 주소를 발생하는 인스트럭션 주소 발생부;
    상기 목표 인스트럭션 주소에 기초하여 상기 인스트럭션 메모리로부터 상기 복수의 인스트럭션들 중에서 목표 인스트럭션을 인출하여 저장하는 인스트럭션 레지스터;
    상기 인출된 목표 인스트럭션을 디코딩하는 인스트럭션 디코더; 및
    상기 디코딩된 목표 인스트럭션을 실행하는 인스트럭션 실행부를 포함하는 것을 특징으로 하는 전력 관리 시스템.
  3. 제 2 항에 있어서, 상기 작업 요청은 상기 목표 인스트럭션 주소를 직접 포함하여 제공되며,
    상기 인스트럭션 주소 발생부는,
    상기 목표 인스트럭션 주소를 저장하고 출력하는 프로그램 카운터를 포함하는 것을 특징으로 하는 전력 관리 시스템.
  4. 제 2 항에 있어서, 상기 작업 요청은 작업 커맨드를 포함하여 제공되며,
    상기 인스트럭션 주소 발생부는,
    상기 작업 커맨드를 디코딩하여 상기 목표 인스트럭션 주소를 발생하는 커맨드 디코더; 및
    상기 목표 인스트럭션 주소를 저장하고 출력하는 프로그램 카운터를 포함하는 것을 특징으로 하는 전력 관리 시스템.
  5. 삭제
  6. 제 2 항에 있어서, 상기 복수의 나노 컨트롤러들 중에서 상기 제1 나노 컨트롤러는,
    상기 복수의 나노 컨트롤러들의 현재 작업 상태를 나타내는 작업 할당 상태 레지스터를 더 포함하는 것을 특징으로 하는 전력 관리 시스템.
  7. 제 1 항에 있어서,
    상기 제1 나노 컨트롤러는 외부에서 제공되는 제1 작업 요청을 수신하고, 상기 제1 작업 요청에 상응하는 제1 목표 작업을 상기 제1 내지 제n 나노 컨트롤러 중 하나에 할당하는 것을 특징으로 하는 전력 관리 시스템.
  8. 제 7 항에 있어서,
    상기 제1 나노 컨트롤러가 작업이 할당되지 않은 아이들(idle) 상태인 경우에, 상기 제1 나노 컨트롤러는 상기 제1 작업 요청에 기초하여 상기 제1 목표 작업을 직접 수행하며,
    상기 제1 나노 컨트롤러에 상기 제1 목표 작업과 다른 제2 목표 작업이 할당된 경우에, 상기 제1 나노 컨트롤러는 상기 제2 내지 제n 나노 컨트롤러들 중 하나에 상기 제1 목표 작업을 할당하는 것을 특징으로 하는 전력 관리 시스템.
  9. 제 8 항에 있어서,
    상기 제2 내지 제n 나노 컨트롤러들 중 상기 제2 나노 컨트롤러에 상기 제1 목표 작업을 할당하고자 하는 경우에, 상기 제1 나노 컨트롤러는 상기 제2 나노 컨트롤러의 식별자(identification; ID) 및 상기 복수의 인스트럭션들 중에서 콜(call) 인스트럭션에 기초하여 상기 제2 나노 컨트롤러를 호출하고 상기 제2 나노 컨트롤러에 상기 제1 작업 요청을 전달하며,
    상기 제2 나노 컨트롤러가 상기 제1 목표 작업을 완료한 경우에, 상기 제2 나노 컨트롤러는 상기 복수의 인스트럭션들 중에서 리턴(return) 인스트럭션에 기초하여 상기 제1 목표 작업이 완료되었음을 상기 제1 나노 컨트롤러에 알리는 것을 특징으로 하는 전력 관리 시스템.
  10. 삭제
  11. 제 1 항에 있어서,
    상기 복수의 나노 컨트롤러들 중에서 제(n+1) 내지 제m(m은 (n+1) 이상의 자연수) 나노 컨트롤러들은 상기 제2 나노 컨트롤러에 종속되는 제2 하위 시퀀서들로서 프로그램되는 것을 특징으로 하는 전력 관리 시스템.
  12. 제 1 항에 있어서,
    상기 제2 내지 제n 나노 컨트롤러들은 상기 복수의 기능 블록들 중 하나의 전력을 각각 제어하는 것을 특징으로 하는 전력 관리 시스템.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020140094545A 2014-07-25 2014-07-25 전력 관리 시스템, 이를 포함하는 시스템 온 칩 및 모바일 기기 Active KR102154080B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020140094545A KR102154080B1 (ko) 2014-07-25 2014-07-25 전력 관리 시스템, 이를 포함하는 시스템 온 칩 및 모바일 기기
US14/710,624 US9665399B2 (en) 2014-07-25 2015-05-13 Power management system, system-on-chip including the same and mobile device including the same
TW104115767A TWI658356B (zh) 2014-07-25 2015-05-18 電力管理系統、包括其之單晶片系統與包括其之行動裝置
CN201510446665.XA CN105320240B (zh) 2014-07-25 2015-07-27 电源管理系统、功率控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140094545A KR102154080B1 (ko) 2014-07-25 2014-07-25 전력 관리 시스템, 이를 포함하는 시스템 온 칩 및 모바일 기기

Publications (2)

Publication Number Publication Date
KR20160012666A KR20160012666A (ko) 2016-02-03
KR102154080B1 true KR102154080B1 (ko) 2020-09-09

Family

ID=55166831

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140094545A Active KR102154080B1 (ko) 2014-07-25 2014-07-25 전력 관리 시스템, 이를 포함하는 시스템 온 칩 및 모바일 기기

Country Status (4)

Country Link
US (1) US9665399B2 (ko)
KR (1) KR102154080B1 (ko)
CN (1) CN105320240B (ko)
TW (1) TWI658356B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2025063368A1 (ko) * 2023-09-19 2025-03-27 주식회사 잇다반도체 전력 제어 시스템 및 이를 포함한 시스템 온 칩 장치

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102530347B1 (ko) * 2018-01-08 2023-05-08 삼성전자주식회사 반도체 장치 및 반도체 시스템
US11126245B2 (en) * 2019-06-21 2021-09-21 Intel Corporation Device, system and method to determine a power mode of a system-on-chip
US20230315588A1 (en) * 2020-09-11 2023-10-05 Google Llc Hardware-Based Save-and-Restore Controller
CN114371773B (zh) * 2021-12-30 2023-08-08 苏州浪潮智能科技有限公司 电源控制方法、电子设备及服务器
KR102643031B1 (ko) * 2023-09-07 2024-03-04 주식회사 잇다반도체 프로그램 가능 시퀀서와 이를 이용한 시스템 온 칩 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000057202A (ja) 1998-06-03 2000-02-25 Nec Corp 低電力シ―ケンス回路のためのコントロ―ラベ―ス電力管理システム

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5546591A (en) * 1991-12-20 1996-08-13 Vlsi Technology, Inc. Distributed power management system for battery operated personal computers
US5548763A (en) * 1993-07-26 1996-08-20 International Business Machines Corporation Desk top computer system having multi-level power management
US5996083A (en) * 1995-08-11 1999-11-30 Hewlett-Packard Company Microprocessor having software controllable power consumption
JPH11167439A (ja) * 1997-12-04 1999-06-22 Matsushita Electric Ind Co Ltd 多段階の電源選択状態を有する情報処理装置
DE60034346D1 (de) * 2000-11-03 2007-05-24 St Microelectronics Srl Vorrichtung und Verfahren zur selektiven Abschaltung integrierter Schaltungsblöcke
US20030120896A1 (en) 2001-06-29 2003-06-26 Jason Gosior System on chip architecture
US6834353B2 (en) * 2001-10-22 2004-12-21 International Business Machines Corporation Method and apparatus for reducing power consumption of a processing integrated circuit
EP1363179A1 (en) 2002-05-17 2003-11-19 STMicroelectronics S.A. Architecture for controlling dissipated power in a system on a chip and related system
US7581124B1 (en) * 2003-09-19 2009-08-25 Xilinx, Inc. Method and mechanism for controlling power consumption of an integrated circuit
US7197652B2 (en) 2003-12-22 2007-03-27 International Business Machines Corporation Method and system for energy management in a simultaneous multi-threaded (SMT) processing system including per-thread device usage monitoring
US8533716B2 (en) 2004-03-31 2013-09-10 Synopsys, Inc. Resource management in a multicore architecture
US7627770B2 (en) 2005-04-14 2009-12-01 Mips Technologies, Inc. Apparatus and method for automatic low power mode invocation in a multi-threaded processor
US8108863B2 (en) 2005-12-30 2012-01-31 Intel Corporation Load balancing for multi-threaded applications via asymmetric power throttling
TW200825705A (en) 2006-04-26 2008-06-16 Nxp Bv Method and system for power-state transition controllers
EP3588245B1 (en) * 2006-10-10 2021-09-08 Google LLC Updating a power supply microcontroller
US8302098B2 (en) 2007-12-06 2012-10-30 Oracle America, Inc. Hardware utilization-aware thread management in multithreaded computer systems
US8219993B2 (en) 2008-02-27 2012-07-10 Oracle America, Inc. Frequency scaling of processing unit based on aggregate thread CPI metric
US8286014B2 (en) 2008-03-25 2012-10-09 Intel Corporation Power management for a system on a chip (SoC)
KR101835615B1 (ko) * 2010-05-07 2018-03-09 삼성전자주식회사 시스템 온 칩, 이를 포함하는 장치들, 및 상기 시스템 온 칩의 전력 제어 방법
US8812825B2 (en) 2011-01-10 2014-08-19 Dell Products L.P. Methods and systems for managing performance and power utilization of a processor employing a fully multithreaded load threshold
KR101861743B1 (ko) 2011-09-19 2018-05-30 삼성전자주식회사 이종의 전력 제어와 동종의 전력 제어를 선택적으로 수행할 수 있는 시스템-온 칩과 이의 동작 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000057202A (ja) 1998-06-03 2000-02-25 Nec Corp 低電力シ―ケンス回路のためのコントロ―ラベ―ス電力管理システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2025063368A1 (ko) * 2023-09-19 2025-03-27 주식회사 잇다반도체 전력 제어 시스템 및 이를 포함한 시스템 온 칩 장치

Also Published As

Publication number Publication date
KR20160012666A (ko) 2016-02-03
CN105320240B (zh) 2019-10-11
CN105320240A (zh) 2016-02-10
US9665399B2 (en) 2017-05-30
TW201604683A (zh) 2016-02-01
US20160026498A1 (en) 2016-01-28
TWI658356B (zh) 2019-05-01

Similar Documents

Publication Publication Date Title
KR102154080B1 (ko) 전력 관리 시스템, 이를 포함하는 시스템 온 칩 및 모바일 기기
JP6430970B2 (ja) 異なる命令セットアーキテクチャを有するプロセッサ上におけるオペレーティングシステムの実行
US10789544B2 (en) Batching inputs to a machine learning model
US9891690B2 (en) Dynamic voltage and frequency scaling of a processor
US9747108B2 (en) User-level fork and join processors, methods, systems, and instructions
EP3155521B1 (en) Systems and methods of managing processor device power consumption
US9753771B2 (en) System-on-chip including multi-core processor and thread scheduling method thereof
US10242420B2 (en) Preemptive context switching of processes on an accelerated processing device (APD) based on time quanta
US20110161637A1 (en) Apparatus and method for parallel processing
US8589938B2 (en) Composite contention aware task scheduling
US20150150019A1 (en) Scheduling computing tasks for multi-processor systems
US20170132039A1 (en) Monitoring accesses of a thread to multiple memory controllers and selecting a thread processor for the thread based on the monitoring
US20170262291A1 (en) Heterogeneous computing system with a shared computing unit and separate memory controls
US20140053161A1 (en) Method for Adaptive Scheduling of Multimedia Jobs
US20180143680A1 (en) Application profiling for power-performance management
US9122522B2 (en) Software mechanisms for managing task scheduling on an accelerated processing device (APD)
US9286125B2 (en) Processing engine implementing job arbitration with ordering status
US20210109795A1 (en) Latency-Aware Thread Scheduling
US20120198458A1 (en) Methods and Systems for Synchronous Operation of a Processing Device
US20130135327A1 (en) Saving and Restoring Non-Shader State Using a Command Processor
US9329893B2 (en) Method for resuming an APD wavefront in which a subset of elements have faulted
US11093401B2 (en) Hazard prediction for a group of memory access instructions using a buffer associated with branch prediction
US20140143526A1 (en) Branch Prediction Gating
US20220308920A1 (en) Task scheduling method, and computing device and application processor using the same
CN114625537A (zh) 资源分配方法、电子设备及计算机可读存储介质

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20140725

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20190704

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20140725

Comment text: Patent Application

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20200604

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20200903

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20200904

End annual number: 3

Start annual number: 1

PG1601 Publication of registration