KR102021795B1 - 적응적 서비스 제어기, 시스템 온 칩 및 시스템 온 칩의 제어 방법 - Google Patents

적응적 서비스 제어기, 시스템 온 칩 및 시스템 온 칩의 제어 방법 Download PDF

Info

Publication number
KR102021795B1
KR102021795B1 KR1020130019646A KR20130019646A KR102021795B1 KR 102021795 B1 KR102021795 B1 KR 102021795B1 KR 1020130019646 A KR1020130019646 A KR 1020130019646A KR 20130019646 A KR20130019646 A KR 20130019646A KR 102021795 B1 KR102021795 B1 KR 102021795B1
Authority
KR
South Korea
Prior art keywords
signal
intelligent
service
value
master
Prior art date
Application number
KR1020130019646A
Other languages
English (en)
Other versions
KR20140095399A (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 US13/799,785 priority Critical patent/US9684633B2/en
Priority to DE102013213300.6A priority patent/DE102013213300A1/de
Priority to JP2013162213A priority patent/JP6219091B2/ja
Priority to CN201310346570.1A priority patent/CN103970710B/zh
Publication of KR20140095399A publication Critical patent/KR20140095399A/ko
Application granted granted Critical
Publication of KR102021795B1 publication Critical patent/KR102021795B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/82Architectures of general purpose stored program computers data or demand driven
    • G06F15/825Dataflow computers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

시스템 온 칩은 적어도 하나의 슬레이브 지능 소자, 복수의 마스터 지능 소자들, 상호접속 장치 및 복수의 서비스 제어기들을 포함한다. 마스터 지능 소자들은 슬레이브 지능 소자에게 서비스를 요구하기 위한 리퀘스트들을 각각 발생한다. 상호접속 장치는 각각의 채널들을 통하여 상기 슬레이브 지능 소자 및 상기 마스터 지능 소자들에 연결되고, 상기 리퀘스트들의 중재 동작을 수행한다. 서비스 제어기들은 시스템 온 칩의 동작 환경의 변화에 따라 적응적으로 상기 마스터 지능 소자들의 리퀘스트 플로우들을 제어한다.

Description

적응적 서비스 제어기, 시스템 온 칩 및 시스템 온 칩의 제어 방법{Adaptive service controller, system on chip and method of controlling the same}
본 발명은 반도체 집적 회로에 관한 것으로서, 더욱 상세하게는 복수의 마스터 지능 소자들의 서비스 품질 향상을 위한 적응적 서비스 제어기, 시스템 온 칩 및 시스템 온 칩의 제어 방법에 관한 것이다.
시스템 온 칩(SOC: system on chip)은 여러 가지 반도체 부품들이 하나로 집적되는 하나의 칩 또는 그 칩에 집적된 시스템을 말한다. 최근의 시장 동향은 기존의 주문형 반도체(ASIC: application specific integrated circuit)와 특정용도 표준제품(ASSP: application specific standard product)의 수요가 점차 시스템 온 칩으로 전환되어 가고 있는 추세이다. 또한 전자 기기의 경박단소화 및 고기능화 추세도 시스템 온 칩 산업을 촉진시키는 요인이 되고 있다.
시스템 온 칩의 집적도 향상에 따라서 더 많은 부품들이 하나의 칩에 집적되고 있으나, 시스템 온 칩의 동작 속도는 충분히 증가하지 못하고 있다. 제한된 동작 속도로 인하여 다양한 마스터 지능 소자들의 서비스 요구 수준을 충족시키는 데 어려움이 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 일 목적은, 동작 환경의 변화에 따라 적응적으로 리퀘스트 플로우를 제어할 수 있는 서비스 제어기 및 이를 포함하는 시스템 온 칩을 제공하는 것이다.
본 발명의 일 목적은, 동작 환경의 변화에 따라 적응적으로 리퀘스트 플로우를 제어할 수 있는 시스템 온 칩의 제어 방법을 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 시스템 온 칩은 적어도 하나의 슬레이브 지능 소자, 상기 슬레이브 지능 소자에게 서비스를 요구하기 위한 리퀘스트들을 각각 발생하는 복수의 마스터 지능 소자들, 각각의 채널들을 통하여 상기 슬레이브 지능 소자 및 상기 마스터 지능 소자들에 연결되고, 상기 리퀘스트들의 중재 동작을 수행하는 상호접속 장치, 및 시스템 온 칩의 동작 환경의 변화에 따라 적응적으로 상기 마스터 지능 소자들의 리퀘스트 플로우들을 제어하는 복수의 서비스 제어기들을 포함한다.
상기 시스템 온 칩은 적어도 하나의 상태 신호에 기초하여 상기 동작 환경의 변화를 나타내는 글로벌 제어 신호를 발생하는 글로벌 제어기를 더 포함할 수 있다. 상기 서비스 제어기들은 상기 글로벌 제어 신호에 기초하여 각각의 리퀘스트 플로우들을 제어할 수 있다.
상기 슬레이브 지능 소자는 메모리 콘트롤러를 포함하고, 상기 마스터 지능 소자들은 모뎀 및 디스플레이 콘트롤러를 포함할 수 있다. 상기 상태 신호는, 상기 메모리 콘트롤러의 동작 온도가 기준 온도보다 클 때 활성화되는 제1 상태 신호, 상기 모뎀이 기준 시간 이상 상기 슬레이브 지능 소자로부터 서비스를 제공받지 못했을 때 활성화되는 제2 상태 신호, 상기 디스플레이 콘트롤러의 데이터 버퍼에 저장된 데이터의 저장율이 기준율보다 작을 때 활성화되는 제3 상태 신호 중에서 적어도 하나를 포함할 수 있다.
상기 서비스 제어기들의 각각은, 상기 상응하는 마스터 지능 소자의 서비스 요구수준을 실시간으로 검출하여 상기 서비스 요구 수준을 나타내는 크레디트 값을 출력하는 모니터; 및 상기 동작 환경의 변화에 기초하여 상기 모니터를 제어하기 위한 로컬 제어 신호를 발생하고, 상기 크레디트 값에 기초하여 상기 상응하는 마스터 지능 소자로부터의 리퀘스트에 대한 우선순위 정보를 발생하는 제어 블록을 포함할 수 있다.
상기 로컬 제어 신호는 상기 동작 환경의 변화에 따라서 결정되는 오버플로우 값, 단위 증가 값 및 단위 감소 값을 포함할 수 있다. 상기 모니터는, 상기 오버플로우 값에 상응하는 주기로 활성화되는 제1 이벤트 신호를 발생하는 제1 카운터, 상기 상응하는 마스터 지능 소자와 상기 상호접속 장치 사이의 채널 신호에 기초하여 상기 상응하는 마스터 지능 소자로 서비스가 제공될 때마다 활성화되는 제2 이벤트 신호를 발생하는 서비스 검출기, 및 상기 제1 이벤트 신호가 활성화될 때마다 상기 단위 증가 값만큼 상기 크레디트 값을 증가하고, 상기 제2 이벤트 신호가 활성화될 때마다 상기 단위 감소 값만큼 상기 크레디트 값을 감소하는 제2 카운터를 포함할 수 있다.
상기 제어 블록은, 상기 동작 환경의 변화에 기초하여 상기 오버플로우 값, 상기 단위 증가 값 및 상기 단위 감소 값 중 적어도 하나를 변화시킴으로써 상기 상응하는 마스터 지능 소자의 리퀘스트 플로우를 제어할 수 있다.
상기 제어 블록은, 상기 오버플로우 값을 감소하거나 상기 단위 증가 값을 증가하거나 상기 단위 감소 값을 감소함으로써 상기 상응하는 마스터 지능 소자의 리퀘스트 플로우를 촉진하고, 상기 오버플로우 값을 증가하거나 상기 단위 증가 값을 감소하거나 상기 단위 감소 값을 증가함으로써 상기 상응하는 마스터 지능 소자의 리퀘스트 플로우를 억제할 수 있다.
상기 로컬 제어 신호는 상기 동작 환경이 변화하는 경우 제공되는 스틸 값을 더 포함할 수 있다. 상기 제2 카운터는 상기 스틸 값만큼 상기 크레디트 값을 감소할 수 있다.
상기 서비스 제어기들의 적어도 하나는, 상기 제어 블록으로부터의 제한 신호에 응답하여 상기 상응하는 마스터 지능 소자와 상기 상호접속 장치 사이의 리퀘스트 플로우를 차단하는 제한기를 더 포함할 수 있다.
상기 제어 블록은, 상기 크레디트 값이 승인 값보다 작을 때 상기 제한 신호를 활성화하고, 상기 동작 환경의 변화에 기초하여 상기 승인 값을 변화시킴으로써 상기 상응하는 마스터 지능 소자의 리퀘스트 플로우를 제어할 수 있다.
상기 제한기는, 상기 제한 신호에 응답하여 동기 제한 신호를 발생하는 동기화기, 상기 동기 제한 신호 및 상기 상응하는 마스터 지능 소자로부터의 밸리드 신호를 논리 연산하여 마스크 밸리드 신호를 출력하는 제1 논리 게이트, 및 상기 동기 제한 신호 및 상기 상호접속 장치로부터의 레디 신호를 논리 연산하여 마스크 레디 신호를 출력하는 제2 논리 게이트를 포함할 수 있다.
상기 제어 블록은, 상기 크레디트 값의 범위를 분할하여 복수의 동작 모드들을 설정하고, 상기 동작 모드들에 따라서 상기 로컬 제어 신호의 값들을 서로 다르게 설정하여 상기 상응하는 마스터 지능 소자의 리퀘스트 플로우를 제어할 수 있다. 상기 동작 모드들은,
상기 크레디트 값이 상위 경계 값보다 큰 프로모션 모드, 상기 크레디트 값이 상기 상위 경계 값보다 작고 하위 경계 값보다 큰 디폴트 모드, 및 상기 크레디트 값이 상기 하위 경계 값보다 작은 디모션 모드를 포함할 수 있다.
상기 제어 블록은, 상기 상응하는 마스터 지능 소자에 대하여 상기 디폴트 모드보다 상기 프로모션 모드에서 더 큰 대역폭이 허용되고 상기 디모션 모드보다 상기 디폴트 모드에서 더 큰 대역폭이 허용되도록 상기 동작 모드들에 기초하여 상기 로컬 제어 신호의 값들을 설정할 수 있다.
상기 슬레이브 지능 소자는, 상기 상호접속 장치를 경유하여 상기 마스터 지능 소자들로부터 전달된 복수의 리퀘스트들을 저장하는 리퀘스트 큐, 및 상기 저장된 리퀘스트들의 각각의 우선순위들에 기초하여 상기 저장된 리퀘스트들에 대한 서비스 순서를 결정하는 스케쥴러를 포함할 수 있다.
상기 마스터 지능 소자들은 적어도 하나의 리얼타임 지능 소자를 포함하고, 상기 리얼타임 지능 소자에 상응하는 상기 서비스 제어기는 긴급한 서비스가 요구됨을 나타내는 긴급 신호를 발생할 수 있다.
상기 슬레이브 지능 소자의 스케쥴러는 상기 긴급 신호에 응답하여 상기 리퀘스트 큐에 저장된 리퀘스트들 중에서 상기 리얼타임 지능 소자로부터 발생된 리퀘스트들의 우선순위를 증가시킬 수 있다.
상기 시스템 온 칩은 상기 리얼타임 지능 소자에 상응하는 상기 서비스 제어기와 상기 슬레이브 지능 소자 사이에 점대점(point-to-point)으로 연결된 전송 라인을 더 포함할 수 있다. 상기 긴급 신호는 상기 전송 라인을 통하여 상기 리얼타임 지능 소자에 상응하는 상기 서비스 제어기로부터 상기 슬레이브 지능 소자로 직접 전송될 수 있다.
상기 마스터 지능 소자들은 적어도 하나의 베스트 에포트 지능 소자를 포함하고, 상기 슬레이브 지능 소자는 상기 동작 환경의 변화에 기초하여 외부 제한 신호를 발생하고, 상기 베스트 에포트 지능 소자에 상응하는 상기 서비스 제어기는 상기 외부 제한 신호에 응답하여 상기 베스트 에포트 지능 소자와 상기 상호접속 장치 사이의 리퀘스트 플로우를 차단할 수 있다.
상기 슬레이브 지능 소자는 기준 개수보다 많은 리퀘스트들이 상기 리퀘스트 큐에 저장되어 서비스 대기 중인 경우 상기 외부 제한 신호를 활성화할 수 있다.
상기 마스터 지능 소자들은 적어도 하나의 리얼타임 지능 소자를 더 포함하고, 상기 슬레이브 지능 소자는 상기 리얼타임 지능 소자에 대하여 긴급한 서비스가 요구됨을 나타내는 긴급 신호에 응답하여 상기 외부 제한 신호를 활성화할 수 있다.
상기 리얼타임 지능 소자는 디스플레이 콘트롤러를 포함하고, 상기 베스트 에포트 지능 소자는 프로세서를 포함할 수 있다.
상기 시스템 온 칩은 상기 베스트 에포트 지능 소자에 상응하는 상기 서비스 제어기와 상기 슬레이브 지능 소자 사이에 점대점으로 연결된 전송 라인을 더 포함할 수 있다. 상기 외부 제한 신호는 상기 전송 라인을 통하여 상기 슬레이브 지능 소자로부터 상기 베스트 에포트 지능 소자에 상응하는 상기 서비스 제어기로 직접 전송될 수 있다.
상기 일 목적을 달성하기 위해 본 발명의 실시예들에 따라서 적어도 하나의 슬레이브 지능 소자 및 상기 슬레이브 지능 소자에게 서비스를 요구하기 위한 리퀘스트들을 각각 발생하는 복수의 마스터 지능 소자들이 상호접속 장치에 연결된 시스템 온 칩의 제어 방법이 제공된다. 상기 방법은 상기 슬레이브 지능 소자 및 상기 마스터 지능 소자들 중 적어도 하나의 상태를 나타내는 적어도 하나의 상태 신호를 발생하는 단계, 상기 상태 신호에 기초하여 상기 시스템 온 칩의 동작 환경의 변화를 나타내는 글로벌 제어 신호를 발생하는 단계, 및 상기 글로벌 제어 신호에 기초하여 적응적으로 상기 마스터 지능 소자들의 리퀘스트 플로우들을 제어하는 단계를 포함한다.
상기 일 목적을 달성하기 위해 본 발명의 실시예들에 따라서 슬레이브 지능 소자에게 서비스를 요구하기 위한 리퀘스트를 발생하는 마스터 지능 소자의 리퀘스트 플로우를 제어하기 위한 서비스 제어기가 제공된다.
상기 서비스 제어기는 상기 마스터 지능 소자의 서비스 요구수준을 실시간으로 검출하여 상기 서비스 요구 수준을 나타내는 크레디트 값을 출력하는 모니터, 및 동작 환경의 변화에 기초하여 상기 모니터를 제어하기 위한 로컬 제어 신호를 발생하고, 상기 크레디트 값에 기초하여 상기 마스터 지능 소자로부터의 리퀘스트에 대한 우선순위 정보를 발생하는 제어 블록을 포함한다.
본 발명의 실시예들에 따른 시스템 온 칩 및 시스템 온 칩의 제어 방법은 동작 환경의 변화에 따라서 적응적으로 마스터 지능 소자들의 리퀘스트 플로우들을 제어함으로써 서비스 품질(QOS: quality of service)을 향상시킬 수 있다.
본 발명의 실시예들에 따른 시스템 온 칩 및 시스템 온 칩의 제어 방법은 각각의 마스터 지능 소자들에게 할당된 복수의 서비스 제어기들을 이용하여 리퀘스트 플로우들의 제어 조건을 마스터 지능 소자마다 독립적으로 설정할 수 있으므로 동작 환경의 변화에 따른 복잡한 시나리오를 용이하게 구현할 수 있다.
도 1은 본 발명의 실시예들에 따른 시스템을 나타내는 블록도이다.
도 2는 본 발명의 실시예들에 따른 시스템의 제어 방법을 나타내는 순서도이다.
도 3은 본 발명의 실시예들에 따른 서비스 제어기를 나타내는 블록도이다.
도 4는 마스터 지능 소자의 서비스 요구 수준의 검출 방법의 일 예를 설명하기 위한 도면이다.
도 5는 도 3의 서비스 제어기에 포함되는 모니터의 일 실시예를 나타내는 블록도이다.
도 6은 본 발명의 일 실시예에 따른 크레디트 값에 기초한 리퀘스트 플로우의 제어 방법을 설명하기 위한 도면이다.
도 7은 도 5의 모니터의 동작의 일 예를 설명하기 위한 도면이다.
도 8은 본 발명의 실시예들에 따른 시스템에 의해 수행되는 트랜잭션의 일 예를 나타내는 도면이다.
도 9는 도 3의 서비스 콘트롤러에 포함되는 제한기를 나타내는 블록도이다.
도 10은 도 3의 서비스 콘트롤러에 포함되는 제한기의 일 예를 나타내는 회로도이다.
도 11은 도 10의 제한기의 동작을 나타내는 타이밍도이다.
도 12는 도 3의 서비스 콘트롤러에 포함되는 제한기의 다른 예를 나타내는 회로도이다.
도 13은 도 12의 제한기의 동작을 나타내는 타이밍도이다.
도 14는 본 발명의 일 실시예에 따른 시스템 온 칩의 제어 방법을 나타내는 도면이다.
도 15는 본 발명의 일 실시예에 따른 크레디트 값에 기초한 리퀘스트 플로우의 제어 방법을 설명하기 위한 도면이다.
도 16은 도 15의 방법에 따른 도 5의 모니터의 동작의 일 예를 설명하기 위한 도면이다.
도 17은 본 발명의 실시예들에 따른 시스템을 나타내는 블록도이다.
도 18은 도 17의 시스템에 포함된 서비스 제어기의 일 예를 나타내는 블록도이다.
도 19는 본 발명의 일 실시예에 따른 크레디트 값에 기초한 리퀘스트 플로우의 제어 방법을 설명하기 위한 도면이다.
도 20은 본 발명의 일 실시예에 따른 긴급 신호의 발생 방법을 나타내는 도면이다.
도 21은 도 17의 시스템에 포함된 서비스 제어기의 일 예를 나타내는 블록도이다.
도 22는 도 17의 시스템에 포함된 슬레이브 지능 소자의 일 예를 나타내는 도면이다.
도 23은 도 22의 슬레이브 지능 소자 내에 저장되는 리퀘스트의 구조 및 긴급 신호의 일 예를 나타내는 도면이다.
도 24는 본 발명의 실시예들에 따른 시스템 온 칩을 전자 기기에 응용한 예를 나타내는 블록도이다.
도 25는 도 24의 전자 기기에서 사용되는 인터페이스의 일 예를 나타내는 블록도이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 시스템을 나타내는 블록도이다. 이하 언급되는 시스템은 여러 가지 반도체 부품들이 하나의 칩에 집적된 시스템 온 칩(SOC)을 포함할 수 있다.
도 1을 참조하면, 시스템(1000)은 슬레이브(slave) 지능 소자(IP, intellectual property)들(SLV1, SLV2)(301, 302), 마스터(master) 지능 소자들(MST1, MST2, MST3)(101, 102, 103), 서비스 제어기(service controller)들(QC1, QC2, QC3)(501, 502, 503) 및 상호접속 장치(interconnect device)(10)를 포함한다. 실시예에 따라서, 시스템(1000)은 글로벌 제어기(global controller)(30)를 더 포함할 수 있다.
마스터 지능 소자들(101, 102, 103) 및 슬레이브 지능 소자들(301, 302)은 각각 장치(device)라고 지칭될 수도 있고, IP 코어 또는 IP 블록이라 지칭될 수 있다. 실시예에 따라서, 마스터 지능 소자들(101, 102, 103) 및 슬레이브 지능 소자들(301, 302)의 각각은 로직 단위, 셀 또는 칩의 일부일 수 있다.
복수의 마스터 지능 소자들(101, 102, 103)은 적어도 하나의 슬레이브 지능 소자(301, 302)에게 서비스를 요구하기 위한 리퀘스트들을 각각 발생한다. 적어도 하나의 지능 소자(301, 302)는 복수의 마스터 지능 소자들(101, 102, 103)의 공유 자원(common resource)으로서 이용될 수 있다.
상호접속 장치(10)는 각각의 채널들을 통하여 슬레이브 지능 소자(301, 302) 및 마스터 지능 소자들(101, 102, 103)에 연결된다. 하나의 지능 소자와 상호접속 장치(10) 사이에는 하나의 채널이 구현될 수도 있고, 복수의 채널들이 구현될 수도 있다. 예를 들어, 슬레이브 지능 소자들(301, 302)이 메모리 콘트롤러를 포함하는 경우에는, 하나의 지능 소자와 상호접속 장치(10) 사이에는 리드 채널과 라이트 채널이 각각 구현될 수 있다. 상호접속 장치(10)는 마스터 지능 소자들(101, 102, 103)로부터의 리퀘스트들의 중재 동작을 수행한다. 상호접속 장치(10)는 상기 중재 동작을 위하여 적어도 하나의 중재기(arbiter)를 포함할 수 있다.
복수의 서비스 제어기들(501, 502, 503)은 시스템(1000)의 동작 환경의 변화에 따라 적응적으로 마스터 지능 소자들(101, 102, 103)의 리퀘스트 플로우들을 제어한다.
상기 동작 환경의 변화는 하나 이상의 상태 신호들(ST1, ST2, ST3)을 이용하여 제공될 수 있다. 예를 들어, 제2 슬레이브 지능 소자(302)는 메모리 콘트롤러일 수 있고, 제2 마스터 지능 소자(102)는 모뎀이고, 제3 마스터 지능 소자(103)는 디스플레이 콘트롤러일 수 있다.
메모리 콘트롤러(302)는 동작 온도가 기준 온도보다 클 때 활성화되는 제1 상태 신호(ST1)를 발생할 수 있다. 메모리 콘트롤러(302)는 동작 온도의 검출을 위한 온도 센서를 포함할 수 있다. 일반적으로 메모리 콘트롤러(302)는 동작 온도가 일정 수준 이상 높아지는 경우에는 동작의 신뢰성을 보장하기 위하여 동작 속도를 감소하도록 설계된다. 메모리 콘트롤러(302)의 동작 속도가 감소되는 경우에는 메모리 콘트롤러(302)를 공유 자원으로 이용하는 마스터 지능 소자들의 리퀘스트 플로우들을 전체적으로 억제(demote)하면서 리얼타임 지능 소자의 대역폭을 보장할 수 있는 시나리오가 요구된다.
모뎀(102)은 기준 시간 이상 슬레이브 지능 소자(102)로부터 서비스를 제공받지 못했을 때 활성화되는 제2 상태 신호(ST2)를 발생할 수 있다. 일반적으로 모뎀(102)은 외부 장치와의 통신 규약의 제한으로 인하여 일정한 시간 이내에 서비스를 제공받지 못하면 이미 발행된 리퀘스트가 무효화된다. 동작 환경이 변화하여 모뎀(102)에 대한 서비스가 심각하게 지연되는 경우 모뎀(102)이 일정한 레이턴시를 보장받을 수 있도록 다른 마스터 지능 소자의 리퀘스트 플로우를 억제하는 시나리오가 요구된다.
디스플레이 콘트롤러(103)는 내부의 데이터 버퍼에 저장된 데이터의 저장율이 기준율보다 작을 때 활성화되는 제3 상태 신호(ST3)를 발생할 수 있다. 디스플레이 콘트롤러(103)는 디스플레이 데이터를 규칙적으로 요구하는 리얼타임 지능 소자에 해당한다. 디스플레이 데이터가 적절하게(in time) 서비스되지 못하면 사용자는 이를 제품의 성능 미달로 직접적으로 인식하게 된다. 이 경우 디스플레이 콘트롤러(103)가 일정한 대역폭을 보장받을 수 있도록 다른 마스터 지능 소자의 리퀘스트 플로우를 억제하는 시나리오가 요구된다.
위에서 언급한 시나리오들은 시스템(1000)의 동작 특성, 사용자의 선택 등에 따라서 다양하게 결정될 수 있다. 본 발명의 실시예들에 따른 동작 환경의 변환에 기초한 시나리오의 예들은 도 14를 참조하여 후술한다.
일 실시예에서, 도 1에 도시된 바와 같이, 시스템(1000)은 하나 이상의 상태 신호들(ST1, ST2, ST3)에 기초하여 상기 동작 환경의 변화를 나타내는 글로벌 제어 신호(GCON)를 발생하는 글로벌 제어기(30)를 더 포함할 수 있다. 이 경우, 서비스 제어기들(501, 502, 503)은 글로벌 제어 신호(GCON)에 기초하여 각각의 리퀘스트 플로우들을 제어할 수 있다.
다른 실시예에서, 글로벌 제어기(30)는 생략될 수 있고 상태 신호들(ST1, ST2, ST3)은 서비스 제어기들(501, 502, 503)로 직접 제공될 수 있다. 이 경우 서비스 제어기들(501, 502, 503)은 각각의 상태 신호들(ST1, ST2, ST3) 또는 그 조합에 기초하여 각각의 리퀘스트 플로우들을 제어할 수 있다.
도 1에 도시된 마스터 지능 소자들 및 슬레이브 지능 소자들의 개수는 다양하게 변경될 수 있다. 마스터 지능 소자의 동작 특성에 따라서, 서비스 제어기들은 서로 다른 구성을 가질 수 있으며, 일부 서비스 제어기는 생략될 수도 있다.
도 2는 본 발명의 실시예들에 따른 시스템 제어 방법을 나타내는 순서도이다.
도 2에는 적어도 하나의 슬레이브 지능 소자 및 상기 슬레이브 지능 소자에게 서비스를 요구하기 위한 리퀘스트들을 각각 발생하는 복수의 마스터 지능 소자들이 상호접속 장치에 연결된 시스템의 제어 방법이 도시되어 있다.
도 1 및 2를 참조하면, 슬레이브 지능 소자들(301, 302) 및 마스터 지능 소자들(101, 102, 103) 중 적어도 하나는 자신의 상태를 나타내는 하나 이상의 상태 신호들(ST1, ST2, ST3)을 발생한다(단계 S100). 글로벌 제어기(30)는 상태 신호들(ST1, ST2, ST3)에 기초하여 시스템(1000)의 동작 환경의 변화를 나타내는 글로벌 제어 신호(GCON)를 발생한다(단계 S300). 서비스 제어기들(501, 502, 503)은 글로벌 제어 신호(GCON)에 기초하여 적응적으로 마스터 지능 소자들(101, 102, 103)의 리퀘스트 플로우들을 제어한다(단계 S500).
이하, 도 3 내지 도 23을 참조하여 도 1의 시스템 및 도 2의 시스템의 제어 방법의 다양한 실시예들을 설명한다. 도 3 내지 도 23에서 실시예들의 설명에 필요한 구성요소들만이 도시될 수 있고 중복되는 설명은 생략될 수 있다.
도 3은 본 발명의 실시예들에 따른 서비스 제어기를 나타내는 블록도이다.
도 3에는 하나의 마스터 지능 소자(100)에 상응하는 하나의 서비스 제어기(500a)가 도시되어 있다. 도 1의 복수의 서비스 제어기들(501, 502, 503)은 각각 도 3과 같은 구성을 가질 수 있다. 도 3에 도시된 바와 같이 서비스 제어기(500a)는 상응하는 마스터 지능 소자(100)와 상호접속 장치(10) 사이의 채널에 결합될 수 있다. 다른 실시예에서, 서비스 제어기(500a)는 마스터 지능 소자(100)의 일부로서 마스터 지능 소자(100)의 내부에 포함될 수도 있다.
도 3을 참조하면, 서비스 제어기(500a)는 제한기(510), 모니터(520) 및 제어 블록(530)을 포함하여 구현될 수 있다.
모니터(520)는 상응하는 마스터 지능 소자(100)의 서비스 요구수준(service requirement level)을 실시간으로 검출하여 상기 서비스 요구 수준을 나타내는 크레디트 값(CRD)을 출력한다.
상기 서비스 요구 수준은 대역폭, 아웃스탠딩 카운트 값, 및/또는 평균 레이턴시로 검출될 수 있다. 대역폭은 일정한 시간에 전송되거나 서비스되는 데이터의 양을 나타낸다. 후술하는 바와 같이, 크레디트 값(CRD)은 대역폭에 상응한다. 아웃스탠딩 카운트 값은 마스터 지능 소자로부터 이미 발행되었으나(issued) 아직 완료되지 않은 리퀘스트들의 개수이다. 레이턴시는 마스터 지능 소자가 슬레이브 지능 소자에 대하여 서비스를 요청한 시점부터 상기 요청한 서비스가 완료되는 시점까지의 시간 간격을 나타낸다. 도 3의 모니터는 크레디트 값(CRD)뿐만 아니라 대역폭, 아웃스탠딩 카운트 값 및 평균 레이턴시 중 적어도 하나를 더 제공하도록 구현될 수 있다.
제어 블록(530)은 시스템의 동작 환경의 변화에 기초하여 모니터(520)를 제어하기 위한 로컬 제어 신호(LCON)를 발생한다. 상기 동작 환경의 변화는 도 1을 참조하여 설명한 바와 같이 글로벌 제어 신호(GCON)로서 제공될 수도 있고, 상태 신호들(ST1, ST2, ST3)로서 제공될 수도 있다. 또한 제어 블록(530)은 크레디트 값(CRD)에 기초하여 상응하는 마스터 지능 소자(100)로부터의 리퀘스트에 대한 우선순위 정보(PRT)를 발생할 수 있다. 우선순위 정보(PRT)는 상호접속 장치(10)로 제공되어 중재 동작의 기초로 이용될 수 있다. 제어 블록(530)의 적어도 일부는 저장된 값들 및 입력되는 값들에 응답하여 미리 정해진 프로세스 시퀀스를 수행하는 구성을 갖는 특수 기능 레지스터(special function register)로 구현될 수 있다.
제한기(510)는 제어 블록(530)으로부터의 제한 신호(LMT)에 응답하여 상응하는 마스터 지능 소자(100)와 상호접속 장치(10) 사이의 리퀘스트 플로우를 차단한다. 제한기(510)는 상응하는 마스터 지능 소자(100)의 동작 특성에 따라서 생략될 수 있다.
도 4는 마스터 지능 소자의 서비스 요구 수준의 검출 방법의 일 예를 설명하기 위한 도면이다.
마스터 지능 소자의 동작 특성에 따라서 마스터 지능 소자의 서비스 요구수준(requirement level)은 대역폭(bandwidth)으로 표현될 수 있다. 대역폭은 일정한 시간에 전송되거나 서비스되는 데이터의 양을 나타낸다. 예를 들어, 디스플레이 콘트롤러와 같은 마스터 지능 소자는 상호접속 장치를 통하여 연결된 메모리 콘트롤러와 같은 슬레이브 지능 소자로부터 데이터를 서비스 받아서 데이터 버퍼(data buffer)에 저장하고 저장된 데이터를 소비하면서 고유의 기능을 수행할 수 있다.
도 4에는 상기 마스터 지능 소자에 포함되는 라인 버퍼의 데이터 점유 상태가 빗금으로 도시되어 있다. 데이터의 점유 상태는 라인 버퍼 포인터(LBP)로 표현될 수 있다. 슬레이브 지능 소자로부터 데이터가 서비스되면(DATA IN) 라인 버퍼 포인터(LBP)가 풀(FULL) 방향으로 증가하고 마스터 지능 소자가 데이터를 소비하면(DATA OUT) 라인 버퍼 포인터(LBP)가 엠프티(EMPTY) 방향으로 감소한다.
라인 버퍼 포인터(LBP)가 증가할수록 낮은 우선순위(low priority)가 부여되고 라인 버퍼 포인터(LBP)가 감소할수록 높은 우선순위(high priority)가 부여될 수 있다. 즉 높은 우선순위일수록 높은 대역폭이 요구됨을 나타낸다. 시스템의 전체적인 시나리오(scenario)에 따라서 라인 버퍼 포인터(LBP)와 우선순위의 관계가 설정될 수 있다. 예를 들어, 라인 버퍼 포인터(LBP)의 범위인 풀(FULL)과 엠프티(EMPTY) 사이의 영역을 복수의 영역들로 분할하여 각 영역마다 순차적으로 운선순위를 지정할 수 있다.
도 5는 도 3의 서비스 제어기에 포함되는 모니터의 일 실시예를 나타내는 블록도이다.
도 5를 참조하면, 모니터(520a)는 제1 카운터(CNT1)(521), 제2 카운터(CNT2)(523) 및 서비스 검출기(SDET)(525)를 포함하여 구현될 수 있다.
제1 카운터(521)는 오버플로우 값(OV)에 상응하는 주기로 활성화되는 제1 이벤트 신호(CEV)를 발생한다. 예를 들어, 제1 카운터(521)는 클록 신호(CLK)의 사이클을 카운팅하고, 제1 이벤트 신호(CEV)는 상기 카운팅된 값이 오버플로우 값(OV)에 도달할 때마다 활성화되는 펄스 신호일 수 있다. 클록 신호(CLK)는 상응하는 마스터 지능 소자(100)의 동작 클록 신호일 수 있다.
서비스 검출기(525)는 상응하는 마스터 지능 소자(100)와 상호접속 장치(10) 사이의 채널 신호(CHN)에 기초하여 상응하는 마스터 지능 소자(100)로 서비스가 제공될 때마다 활성화되는 제2 이벤트 신호(SEV)를 발생한다.
제2 카운터(523)는 제1 이벤트 신호(CEV)가 활성화될 때마다 단위 증가 값(INC)만큼 크레디트 값(CRD)을 증가하고, 제2 이벤트 신호(SEV)가 활성화될 때마다 단위 감소 값(DEC)만큼 크레디트 값(CRD)을 감소한다. 또한 제2 카운터(523)는 제어 블록(530)으로부터 제공되는 스틸 값(STL)만큼 크레디트 값(CRD)을 감소할 수 있다. 제어 블록(530)은 동작 환경의 변화가 발생하는 경우에만 스틸 값(STL)을 제공하여 크레디트 값(CRD)을 일회적으로 감소시킬 수 있다.
이와 같이, 상응하는 마스터 지능 소자(100)의 현재의 대역폭 요구 수준이 크레디트 값(CRD)으로 표현될 수 있다. 크레디트 값(CRD)이 증가할수록 상대적으로 큰 대역폭이 요구되고 크레디트 값(CRD)이 감소할수록 상대적으로 작은 대역폭이 요구됨을 나타낼 수 있다.
오버플로우 값(OV), 단위 증가 값(INC), 단위 감소 값(DEC) 및 스틸 값(STL)은 제어 블록(530)으로부터의 로컬 제어 신호(LCON)에 포함될 수 있다. 시스템의 전체적인 시나리오에 따라서 오버플로우 값(OV), 단위 증가 값(INC), 단위 감소 값(DEC) 및 스틸 값(STL)이 결정될 수 있다. 제어 블록(530)은 동작 환경의 변화에 따라서 오버플로우 값(OV), 단위 증가 값(INC), 단위 감소 값(DEC) 및 스틸 값(STL)을 변화시킬 수 있다. 예를 들어, 동작 환경의 변화에 따른 오버플로우 값(OV), 단위 증가 값(INC), 단위 감소 값(DEC) 및 스틸 값(STL)은 시스템(1000)의 초기화 과정에서 제공되어 제어 블록(530)에 저장될 수 있다. 마스터 지능 소자들(101, 102, 103)의 동작 특성들을 고려하여 사용자가 값들을 각각의 마스터 지능 소자에 대하여 결정할 수 있다. 이러한 마스터 지능 소자 별로 분산된 제어 방식을 통하여 시스템(1000)의 복잡한 시나리오를 용이하게 그리고 효율적으로 구현할 수 있다.
도 6은 본 발명의 일 실시예에 따른 크레디트 값에 기초한 리퀘스트 플로우의 제어 방법을 설명하기 위한 도면이고, 도 7은 도 5의 모니터의 동작의 일 예를 설명하기 위한 도면이다.
도 6 및 7을 참조하면, 제1 이벤트 신호(CEV)가 활성화될 때마다 크레디트 값(CRD)이 최대 값(MAX) 방향으로 증가하고 제2 이벤트 신호(SEV)가 활성화될 때마다 크레디트 값(CRD)이 최소 값(MIN) 방향으로 감소한다. 제1 이벤트 신호(CEV)의 활성화 주기는 목표 대역폭에 상응하고 제2 이벤트 신호(SEV)의 평균 활성화 주기는 현재 서비스되는 실시간 대역폭에 상응한다. 도 7에 도시된 바와 같이, 실시간 대역폭이 목표 대역폭보다 작으면 크레디트 값(CRD)이 점차 증가하고 실시간 대역폭이 목표 대역폭보다 크면 크레디트 값(CRD)이 점차 감소한다.
도 3에 도시된 제어 블록(530)은 크레디트 값(CRD)이 클수록 높은 우선순위를 부여하고 크레디트 값(CRD)이 작을수록 낮은 우선순위를 부여할 수 있다. 일반적으로 상호접속 장치(10)는 높은 우선순위를 갖는 마스터 지능 소자일수록 리퀘스트 플로우를 촉진하고(promote) 낮은 우선순위를 갖는 마스터 지능 소자일수록 리퀘스트 플로우를 억제하도록(demote) 설계된다.
제어 블록(530)은 시스템(1000)의 동작 환경의 변화에 기초하여 오버플로우 값(OV), 단위 증가 값(INC) 및 단위 감소 값(DEC) 중 적어도 하나를 변화시킴으로써 상응하는 마스터 지능 소자(100)의 리퀘스트 플로우를 제어할 수 있다. 예를 들어, 제어 블록(530)은, 오버플로우 값(OV)을 감소하거나 단위 증가 값(INC)을 증가하거나 단위 감소 값(DEC)을 감소함으로써 상응하는 마스터 지능 소자(100)의 리퀘스트 플로우를 촉진(promote)할 수 있다. 또한 제어 블록(530)은 오버플로우 값(OV)을 증가하거나 단위 증가 값(INC)을 감소하거나 단위 감소 값(DEC)을 증가함으로써 상응하는 마스터 지능 소자(100)의 리퀘스트 플로우를 억제(demote)할 수 있다.
도 3을 참조하여 전술한 바와 같이, 적어도 하나의 서비스 제어기(500a)는 제어 블록(530)으로부터의 제한 신호(LMT)에 응답하여 상응하는 마스터 지능 소자(100)와 상호접속 장치(10) 사이의 리퀘스트 플로우를 차단하는 제한기(510)를 더 포함할 수 있다. 제한기(510)의 실시예들은 도 9 내지 13을 참조하여 후술한다.
서비스 제어기(500a)가 제한기(510)를 포함하는 경우, 제어 블록(530)은 크레디트 값(CRD)이 승인 값(GRN)보다 작을 때 활성화되는 제한 신호(LMT)를 발생할 수 있다. 제어 블록(530)은 시스템의 동작 환경의 변화에 기초하여 승인 값(GRN)을 변화시킴으로써 상응하는 마스터 지능 소자(100)의 리퀘스트 플로우를 제어할 수 있다. 즉 승인 값(GRN)을 크게 설정할수록 상응하는 마스터 지능 소자(100)의 리퀘스트 플로우를 더 억제하고, 승인 값(GRN)을 작게 설정할수록 상응하는 마스터 지능 소자(100)의 리퀘스트 플로우를 더 촉진할 수 있다.
도 8은 본 발명의 실시예들에 따른 시스템에 의해 수행되는 트랜잭션의 일 예를 나타내는 도면이다.
도 8에는 설명의 편의를 위하여 AXI(advanced extensible interface) 프로토콜에 따른 독출 트랜잭션의 예가 도시되어 있다. AXI 프로토콜은 밸리드 신호(ARVALID, RVALID) 및 레디 신호(ARREADY, RREADY)를 이용하는 핸드쉐이크 방식(handshake mechanism)을 채택하고 있다.
핸드쉐이크 방식에 따르면, 마스터 인터페이스 및 슬레이브 인터페이스의 일측에서는 신호 전송시 밸리드 신호를 활성화하고 타측에서는 수신 준비가 되었을 때 레디 신호를 활성화한다. 마스터 인터페이스 및 슬레이브 인터페이스의 양자 모두에서 글로벌 클록 신호(ACLK)의 상승 에지에 동기하여 전송 신호의 샘플링이 수행된다. 따라서 밸리드 신호 및 상응하는 레디 신호가 글로벌 클록 신호(ACLK)의 상승 에지에서 모두 활성화될 때만 유효한 신호 전송이 이루어진다.
도 8에 도시된 바와 같이, 마스터 인터페이스에 상응하는 마스터 지능 소자(100)는 신호 전송시 리퀘스트 밸리드 신호(ARVALID)를 활성화하고 슬레이브 인터페이스에 상응하는 상호접속 장치(10)는 수신 준비가 되었을 때 리퀘스트 레디 신호(ARREADY)를 활성화한다. 마찬가지로 상호접속 장치(10)는 신호 전송시 서비스 밸리드 신호(RVALID)를 활성화하고 마스터 지능 소자(100)는 수신 준비가 되었을 때 서비스 레디 신호(RREADY)를 활성화한다.
도 8에는 글로벌 클록 신호(ACLK)의 상승 에지를 나타내는 시점들이 T0~T13 으로 표시되어 있다. 마스터 인터페이스, 예를 들어, 마스터 지능 소자(100)는 독출 리퀘스트 신호(ARADDR)를 슬레이브 인터페이스, 예를 들어, 상호접속 장치(10)로 전송하는 것과 함께 리퀘스트 요청 신호에 상응하는 독출 밸리드 신호(ARVALID)를 활성화한다. 시간 T2에서 밸리드 신호(ARVALID) 및 레디 신호(RREADY)가 모두 활성화되어 독출 리퀘스트 신호(ARADDR)의 전송이 실제로 수행된다. 그러나 마스터 인터페이스의 관점에서는 슬레이브 인터페이스의 레디 신호(RREADY)의 활성화 여부에 관계없이, 즉 실제 신호 전송의 성공 여부와 관계없이 시간 T1을 서비스 요청 시점으로 결정할 수 있다.
상기 독출 리퀘스트에 대한 응신으로서 데이터(D(A0), D(A1), D(A2), D(A3))가 버스트 전송 방식에 의해 상호접속 장치(10)로부터 마스터 지능 소자(100)로 전송된다. 상호접속 장치(10)는 마지막 데이터(D(A3))의 전송과 함께 서비스 완료 신호에 상응하는 RLAST 신호를 활성화하고, 시간 T13이 서비스 완료 시점으로 결정된다.
이와 같이, 도 3의 서비스 제어기(500a)는 마스터 지능 소자(100)와 상호접속 장치(10) 사이의 채널 신호(CHN) 중에서 마스터 지능 소자(100)와 상호접속 장치(10) 사이의 리퀘스트 신호들(ARVALID, ARREADY)에 기초하여 서비스 요청 시점, 즉 리퀘스트의 발행 시점 및 서비스 신호들(RVALID, RREADY, RLAST)에 기초하여 서비스 완료 시점을 결정할 수 있다.
레이턴시(LAT)는 마스터 지능 소자가 슬레이브 지능 소자에 대하여 서비스를 요청한 시점부터 상기 요청한 서비스가 완료되는 시점까지의 시간 간격을 나타내며, 예를 들어, 레이턴시(LAT)는 클록 신호의 사이클 횟수 등으로 표현될 수 있다.
도 9는 도 3의 서비스 콘트롤러에 포함되는 제한기를 나타내는 블록도이다.
도 9를 참조하면, 제한기(limiter)(510)는 동기화기(synchronizer) (SYNC)(512) 및 마스크부(mask unit)(MASK)(515)를 포함할 수 있다.
동기화기(512)는 제어 블록(530)으로부터의 제한 신호(LMT)에 기초하여 동기 제한 신호(synchronized limit signal)(SMSK)를 발생한다. 마스크부(515)는 동기 제한 신호(SMSK)에 응답하여 상응하는 마스터 지능 소자(100)로부터의 리퀘스트를 차단한다.
동기화기(512)는 마스터 지능 소자(100)와 상호접속 장치(10) 사이의 핸드쉐이크 방식의 신호 전송의 오류를 방지하기 위하여 제한 신호(LMT)의 천이 시점을 제어하는 역할을 수행한다.
도 10은 도 3의 서비스 콘트롤러에 포함되는 제한기의 일 예를 나타내는 회로도이다.
도 10을 참조하면, 제한기(510a)는 동기화기에 해당하는 플립플롭(FF)(512a) 및 마스크부(515a)를 포함할 수 있다.
플립플롭(512a)은 제어 블록(530)으로부터의 제한 신호(LMT) 및 반전 글로벌 클록 신호(ACLKb)에 기초하여 동기 제한 신호(SMSK)를 발생한다. 플립플롭(512a)은 반전 글로벌 클록 신호(ACLKb)의 상승 에지에 응답하여 제한 신호(LMT)를 샘플링하여 동기 제한 신호(SMSK)를 발생한다. 반전 글로벌 클록 신호(ACLKb)의 상승 에지는 글로벌 클록 신호(ACLK)의 하강 에지에 해당하며, 결과적으로 동기 제한 신호(SMSK)의 천이 시점은 글로벌 클록 신호(ACLK)의 하강 에지에 동기화된다.
마스크부(515a)는 동기 제한 신호(SMSK)에 응답하여 상응하는 마스터 지능 소자(10)로부터의 리퀘스트를 차단한다. 마스크부(515a)는 제1 논리 게이트(516) 및 제2 논리 게이트(517)를 포함할 수 있다. 제1 논리 게이트(516)는 동기 제한 신호(SMSK) 및 상응하는 마스터 지능 소자(100)로부터의 밸리드 신호(VALID)를 논리 연산하여 마스크 밸리드 신호(masked valid)(MVALID)를 출력한다. 제2 논리 게이트(517)는 동기 제한 신호(SMSK) 및 상호접속 장치(10)로부터의 레디 신호(READY)를 논리 연산하여 마스크 레디 신호(masked ready signal)(MREADY)를 출력한다.
예를 들어, 동기 제한 신호(SMSK)가 논리 로우 레벨로 비활성화된 경우에는 마스크부(515a)는 밸리드 신호(VALID) 및 레디 신호(READY)와 각각 동일한 논리 레벨의 마스크 밸리드 신호(MVALID) 및 마스크 레디 신호(MREADY)를 출력한다. 동기 제한 신호(SMSK)가 논리 하이 레벨로 활성화된 경우에는 마스크부(515a)는 밸리드 신호(VALID) 및 레디 신호(READY)의 논리 레벨에 관계없이 논리 로우 레벨로 비활성화된 마스크 밸리드 신호(MVALID) 및 마스크 레디 신호(MREADY)를 출력한다.
도 11은 도 10의 제한기의 동작을 나타내는 타이밍도이다.
도 8을 참조하여 설명한 바와 같이, 마스터 지능 소자(100)는 리퀘스트 신호의 전송시 밸리드 신호(VALID)를 활성화하고 슬레이브에 상응하는 상호접속 장치(10)는 수신 준비가 되었을 때 레디 신호(READ)를 활성화한다. 도 10의 마스크부(515a)에 의해 상호접속 장치(10)는 마스크 밸리드 신호(MVALID)를 수신하고 마스터 지능 소자(100)는 마스크 레디 신호(MREADY)를 수신한다. 다시 말해, 마스터 지능 소자(100)는 밸리드 신호(VALID) 및 마스크 레디 신호(MREADY)가 글로벌 클록 신호(ACLK)의 상승 에지에서 모두 활성화되었을 때 유효한 신호 전송이 이루어진 것으로 판단하고, 상호접속 장치(10)는 마스크 밸리드 신호(MVALID) 및 레디 신호(READY)가 글로벌 클록 신호(ACLK)의 상승 에지에서 모두 활성화되었을 때 유효한 신호 전송이 이루어진 것으로 판단한다.
이러한 판단 기준의 불일치로 인하여 실제로 유효한 신호 전송이 이루어지지 않았음에도, 마스터 지능 소자(100) 및 상호접속 장치(10) 중 하나만이 유효한 신호 전송이 이루어진 것으로 판단하여 인터페이싱 오류가 발생할 수 있다.
이러한 오류를 방지하기 위하여 도 10의 제한기(510a)는 마스크 구간(masked interval)(tMSK)의 시작 시점과 종료 시점을 글로벌 클록 신호(ACLK)의 하강 에지에 동기화시키는 기능을 수행한다. 즉 제한 신호(LMT)의 천이 시점에 관계없이 동기 제한 신호(SMSK)의 천이 시점을 글로벌 클록 신호(ACLK)의 하강 에지에 동기화시킨다. 따라서 마스킹의 시작 및 종료 시점이 마스터 지능 소자(100)와 상호접속 장치(10)의 샘플링 시점, 즉 글로벌 클록 신호(ACLK)의 상승 에지와 명확히 분리될 수 있다.
마스크 구간에 속하지 않은 샘플링 시점들(SP1, SP3)에서는 마스크 밸리드 신호(MVALID) 및 마스크 레디 신호(MREADY)는 각각 밸리드 신호(VALID) 및 레디 신호(READY)와 동일한 논리 레벨을 가지므로 일반적인 핸드쉐이크가 수행되고, 샘플링 시점들(SP1, SP3)에서 유효한 신호 전송이 이루어진다. 반면에 마스크 구간에 속하는 샘플링 시점(SP2)에서는 밸리드 신호(VALID) 및 레디 신호(READY)가 모두 활성화되었음에도 불구하고 마스터 지능 소자(100)와 상호접속 장치(10)는 각각 비활성화된 마스크 레디 신호(MREADY) 및 마스크 밸리드 신호(MVALID)에 기초하여 유효한 신호 전송이 이루어지지 않은 것으로 판단한다.
도 12는 도 3의 서비스 콘트롤러에 포함되는 제한기의 다른 예를 나타내는 회로도이다.
도 12를 참조하면, 제한기(510b)는 동기화기(512b) 및 마스크부(515b)를 포함할 수 있다.
동기화기(512b)는 제어 블록(530)으로부터의 제한 신호(LMT), 글로벌 클록 신호(ACLK), 밸리드 신호(VALID) 및 마스크 레디 신호(MREADY)에 기초하여 동기 제한 신호(SMSKb)를 발생한다. 도 10의 실시예와는 반대로 동기 제한 신호(SMSKb)는 논리 로우 레벨이 활성화 레벨에 해당할 수 있다. 동기화기(512b)의 동작은 도 13을 참조하여 후술한다.
마스크부(515b)는 동기 제한 신호(SMSKb)에 응답하여 상응하는 마스터 지능 소자(100)로부터의 리퀘스트를 차단한다. 마스크부(515b)는 제1 논리 게이트(518) 및 제2 논리 게이트(519)를 포함할 수 있다. 제1 논리 게이트(518)는 동기 제한 신호(SMSKb) 및 상응하는 마스터 지능 소자(100)로부터의 밸리드 신호(VALID)를 논리 연산하여 마스크 밸리드 신호(masked valid)(MVALID)를 출력한다. 제2 논리 게이트(519)는 동기 제한 신호(SMSKb) 및 상호접속 장치(10)로부터의 레디 신호(READY)를 논리 연산하여 마스크 레디 신호(masked ready signal)(MREADY)를 출력한다.
예를 들어, 동기 제한 신호(SMSKb)가 논리 하이 레벨로 비활성화된 경우에는 마스크부(515b)는 밸리드 신호(VALID) 및 레디 신호(READY)와 각각 동일한 논리 레벨의 마스크 밸리드 신호(MVALID) 및 마스크 레디 신호(MREADY)를 출력한다. 동기 제한 신호(SMSKb)가 논리 로우 레벨로 활성화된 경우에는 마스크부(515b)는 밸리드 신호(VALID) 및 레디 신호(READY)의 논리 레벨에 관계없이 논리 로우 레벨로 비활성화된 마스크 밸리드 신호(MVALID) 및 마스크 레디 신호(MREADY)를 출력한다.
도 13은 도 12의 제한기의 동작을 나타내는 타이밍도이다.
도 8을 참조하여 설명한 바와 같이, 마스터 지능 소자(100)는 리퀘스트 신호의 전송시 밸리드 신호(VALID)를 활성화하고 슬레이브에 상응하는 상호접속 장치(10)는 수신 준비가 되었을 때 레디 신호(READ)를 활성화한다. 도 12의 마스크부(515b)에 의해 상호접속 장치(10)는 마스크 밸리드 신호(MVALID)를 수신하고 마스터 지능 소자(100)는 마스크 레디 신호(MREADY)를 수신한다. 다시 말해, 마스터 지능 소자(100)는 밸리드 신호(VALID) 및 마스크 레디 신호(MREADY)가 글로벌 클록 신호(ACLK)의 상승 에지에서 모두 활성화되었을 때 유효한 신호 전송이 이루어진 것으로 판단하고, 상호접속 장치(10)는 마스크 밸리드 신호(MVALID) 및 레디 신호(READY)가 글로벌 클록 신호(ACLK)의 상승 에지에서 모두 활성화되었을 때 유효한 신호 전송이 이루어진 것으로 판단한다.
이러한 판단 기준의 불일치로 인하여 실제로 유효한 신호 전송이 이루어지지 않았음에도, 마스터 지능 소자(100) 및 상호접속 장치(10) 중 하나만이 유효한 신호 전송이 이루어진 것으로 판단하여 인터페이싱 오류가 발생할 수 있다.
이러한 오류를 방지하기 위하여 도 12의 동기화기(512b)는 마스크 구간(masked interval)(tMSK)의 시작 시점을 하나의 유효한 전송이 이루어진 직후로 동기화시키는 기능을 수행한다. 즉 제한 신호(LMT)가 활성화 되고 유효한 전송이 이루어진 샘플링 시점(SP1)의 직후에 동기 제한 신호(SMSKb)를 논리 로우 레벨로 활성화한다. 한편 동기화기(512b)는 마스크 구간(tMSK)의 종료 시점을 제한 신호(LMT)의 비활성화 타이밍에 동기화시킨다.
마스크 구간에 속하지 않은 샘플링 시점(SP1, SP5)에서는 마스크 밸리드 신호(MVALID) 및 마스크 레디 신호(MREADY)는 각각 밸리드 신호(VALID) 및 레디 신호(READY)와 동일한 논리 레벨을 가지므로 일반적인 핸드쉐이크가 수행되고, 샘플링 시점(SP1, SP5)에서 유효한 신호 전송이 이루어진다. 반면에 마스크 구간에 속하는 샘플링 시점(SP2, SP3, SP4)에서는 밸리드 신호(VALID) 및 레디 신호(READY)가 모두 활성화되었음에도 불구하고 마스터 지능 소자(100)와 상호접속 장치(10)는 각각 비활성화된 마스크 레디 신호(MREADY) 및 마스크 밸리드 신호(MVALID)에 기초하여 유효한 신호 전송이 이루어지지 않은 것으로 판단한다.
도 14는 본 발명의 일 실시예에 따른 시스템 온 칩의 제어 방법을 나타내는 도면이다.
도 14에는 예시적인 경우들에 대하여 시스템의 리퀘스트 플로우를 제어하기 위한 시나리오들이 예시되어 있다. 상기 시스템은 적어도 프로세서, 모뎀 및 디스플레이 콘트롤러를 마스터 지능 소자들로서 포함하고, 상기 마스터 지능 소자들은 공유 자원(common resource)의 슬레이브 지능 소자에 해당하는 메모리 콘트롤러에게 각각 서비스를 요구하는 리퀘스트들을 발행할 수 있다.
마스터 지능 소자는 그 유형(type)에 따라서 하드 리얼타임 지능 소자(hard realtime IP), 소프트 리얼타임 지능 소자(soft realtime IP), 베스트 에포트 지능 소자(best effort IP) 등으로 구분될 수 있다.
하드 리얼타임 지능소자는 디스플레이 지능 소자와 같이 일정한 대역폭의 데이터를 꾸준히 사용하고 필요한 대역폭을 보장 받지 못하면, 데이터 버퍼의 언더런(underrun)이 발생하는 지능 소자이다. 이러한 지능 소자는 일정한 대역폭을 보장해주면 데이터 버퍼가 충분히 채워지고, 데이터를 소비하는 만큼만 리퀘스트를 발생시키면서 리퀘스트 플로우를 자체적으로 제어할 수 있다.
한편, 시스템의 제조비용을 줄이기 위해, 외부 모뎀 칩(external modem chip)이 시스템 온 칩의 메모리를 공유하는 방식을 사용될 수 있다. 이러한 외부 모뎀 칩은 평균 레이턴시 요구수준(average latency requirement)을 만족하지 못하면 오류가 생기는 특성을 가진다. 모뎀 칩의 경우에는 통신이 일어날 때에만 리퀘스트가 시스템 온 칩으로 들어오고, 모뎀 칩 종류도 다양하므로 모뎀 칩의 대역폭 요구수준을 파악하기는 곤란하다.
소프트 리얼타임 지능 소자는 비디오 코덱(CODEC)과 같이 프레임율(frame rate, 예를 들어, 30, 60 per sec)이 정해져 있고 프레임의 특성에 따라서 대역폭 요구량이 조금씩 다르면서 여러 개의 프레임 버퍼를 가지고 있어서 평균 디코드/인코드 시간을 보장 받아야 하는 지능 소자이다. 이러한 지능 소자는 리퀘스트 플로우를 제어해주지 않으면 되도록 빠른 시간에 디코드/인코드를 다음 프레임으로 넘어가려는 특성을 가지고 있지만 데이터 간에 의존성(dependency)이 있어서 한꺼번에 많은 리퀘스트를 내지 못하는 특성을 가지고 있다. 그래서 일정한 대역폭 및/또는 레이턴시를 보장받는 동안에는 동작 속도가 프레임율을 만족하지만 레이턴시가 임계치를 넘어가면 급격히 디코드/인코드 시간이 증가하여 동작 속도가 감소하는 특성을 가진다.
베스트 에포트 지능 소자는 2D, 3D 그래픽 엔진 (two-dimensional and/or three dimensional graphics engine) 또는 DMAC(direct memory access controller)와 같이 리퀘스트 플로우를 제어해주지 않으면 끊임없이 리퀘스트를 발생하는 지능 소자이다. 이러한 지능 소자는 플로우 제어를 반드시 해주어야만 한다. 높은 우선순위(high priority)의 지능 소자들이 긴급한 상황이 아니라면 되도록 리퀘스트 플로우를 제한하지 않고 메모리 콘트롤러와 같은 슬레이브 지능 소자가 감당 할 수 있는 만큼 최대한 서비스 해주는 것이 바람직하다. 그러나, 높은 우선순위의 지능 소자에서 긴급한 상황이 발생하면 슬레이브 지능 소자에 여유를 만들어 주는 수준까지 베스트 에포트 지능 소자의 리퀘스트를 제한해 주어야 높은 우선순위의 지능 소자가 긴급 상황에서 빠져 나올 수 있다.
한편, CPU와 같은 레이턴시 지향 지능 소자(latency oriented IP)는 요구하는 대역폭이 있는 것이 아니고 상황에 따라 대역폭 요구량은 많이 변하지만 평균 레이턴시에 따라서 성능에 직접적인 영향을 받는다. 이러한 지능 소자는 대역폭 요구량을 규정하기 힘들기 때문에 평균 레이턴시에 따라서 시스템의 서비스 우선권을 받아야 한다.
도 14의 제1 경우(CASE1)는 시스템이 노말 상태에서 동작하는 디폴트 경우를 나타낸다. 프로세서는 전형적인 베스트 에포트 지능 소자에 해당하고 디스플레이 콘트롤러는 전형적인 리얼타임 지능 소자에 해당한다. 마스터 지능 소자들의 동작 특성에 따라서 전술한 오버플로우 값(OV), 승인 값(GRN), 단위 감소 값(DEC)이 적합하게 설정될 수 있다. 전술한 단위 증가 값(INC)은 모든 경우와 모든 마스터 지능 소자에 대하여 1의 값으로 설정될 수 있다. 실시예에 따라서 단위 증가 값(INC)도 시나리오와 마스터 지능 소자의 동작 특성에 따라서 서로 다른 값으로 설정될 수도 있다. 오버플로우 값(OV)은 동작 클록의 사이클 횟수에 해당할 수 있고, 예를 들어 동작 클록의 사이클 주기는 1 ns(nano second)일 수 있다. 도 1의 제1 경우(CASE1)는 디스플레이 콘트롤러가 640 MB/sec 로 동작하고 프로세서가 2560 MB/sec 로 동작하는 경우에 해당할 수 있다.
제2 경우(CASE2)는 도 1을 참조하여 설명한 제3 상태 신호(ST3)가 활성화된 경우에 해당할 수 있다. 즉, 제2 경우(CASE2)는 디스플레이 콘트롤러의 데이터 버퍼에 저장된 데이터의 저장율이 기준율보다 작아져서 디스플레이 콘트롤러에 대한 긴급한 서비스가 요구되는 경우일 수 있다. 이 경우 프로세서의 오버플로우 값을 디폴트 경우보다 크게 설정하여 프로세서의 리퀘스트 플로우를 억제하고 디스플레이 콘트롤러의 오버플로우 값을 디폴트 경우보다 작게 설정하여 디스플레이 콘트롤러의 리퀘스트 플로우를 촉진할 수 있다. 또한, 제1 경우(CASE1)에서 제2 경우(CASE2)로 동작 환경이 변화하는 경우에, 일회적으로 프로세서의 크레디트 값을 감소시킴으로써(STEAL) 프로세서의 리퀘스트 플로우를 신속하게 억제할 수 있다. 제2 경우(CASE2)는 디스플레이 콘트롤러가 1280MB/sec 로 동작하고 프로세서가 1920MB/sec 로 동작하는 경우에 해당할 수 있다.
제3 경우(CASE3)는 도 1을 참조하여 설명한 제1 상태 신호(ST1)가 활성화된 경우에 해당할 수 있다. 즉, 제3 경우(CASE3)는 메모리 콘트롤러의 동작 온도가 기준 온도보다 커져서 메모리 콘트롤러의 동작 속도가 감소되는 경우일 수 있다. 이 경우 베스트 에포트 지능 소자에 해당하는 프로세서의 오버플로우 값을 디폴트 경우보다 크게 설정하여 프로세서의 리퀘스트 플로우를 억제하고, 리얼타임 지능 소자에 해당하는 디스플레이 콘트롤러의 오버플로우 값을 디폴트 경우보다 작게 설정하여 디스플레이 콘트롤러의 대역폭을 유지할 수 있다. 한편 모든 마스터 지능 소자들에 대하여 단위 감소 값(DEC)을 디폴트 경우보다 크게 설정하여 리퀘스트 플로우를 전체적으로 억제할 수 있다. 또한, 제1 경우(CASE1)에서 제3 경우(CASE3)로 동작 환경이 변화하는 경우에, 일회적으로 프로세서의 크레디트 값을 감소시킴으로써 프로세서의 리퀘스트 플로우를 신속하게 억제할 수 있다. 제3 경우(CASE3)는 디스플레이 콘트롤러가 640MB/sec 로 동작하고 프로세서가 960MB/sec 로 동작하는 경우에 해당할 수 있다.
제4 경우(CASE4)는 도 1을 참조하여 설명한 제1 상태 신호(ST1) 및 제3 상태 신호(ST3)가 함께 활성화된 경우에 해당할 수 있다. 즉, 제4 경우(CASE4)는 디스플레이 콘트롤러의 데이터 버퍼에 저장된 데이터의 저장율이 기준율보다 작아져서 디스플레이 콘트롤러에 대한 긴급한 서비스가 요구될 뿐만 아니라 메모리 콘트롤러의 동작 온도가 기준 온도보다 커져서 메모리 콘트롤러의 동작 속도가 감소되는 경우일 수 있다. 이 경우 베스트 에포트 지능 소자에 해당하는 프로세서의 오버플로우 값을 디폴트 경우보다 크게 설정하여 프로세서의 리퀘스트 플로우를 억제하고, 리얼타임 지능 소자에 해당하는 디스플레이 콘트롤러의 오버플로우 값을 디폴트 경우보다 작게 설정하여 디스플레이 콘트롤러의 대역폭을 유지할 수 있다. 한편 프로세서 및 모뎀에 대하여 단위 감소 값(DEC)을 디폴트 경우보다 크게 설정하여 리퀘스트 플로우를 억제하여 디스플레이 콘트롤러의 대역폭을 보장할 수 있다. 또한, 제1 경우(CASE1), 제2 경우(CASE2) 또는 제3 경우(CASE3)에서 제4 경우(CASE4)로 동작 환경이 변화하는 경우에, 일회적으로 프로세서의 크레디트 값을 감소시킴으로써 프로세서의 리퀘스트 플로우를 신속하게 억제할 수 있다. 제4 경우(CASE4)는 디스플레이 콘트롤러가 1280MB/sec 로 동작하고 프로세서가 320MB/sec 로 동작하는 경우에 해당할 수 있다.
제5 경우(CASE5)는 도 1을 참조하여 설명한 제2 상태 신호(ST2)가 활성화된 경우에 해당할 수 있다. 즉, 제5 경우(CASE5)는 모뎀이 기준 시간 이상 메모리 콘트롤러로부터 서비스를 제공받지 못하는 경우일 수 있다. 이 경우 베스트 에포트 지능 소자에 해당하는 프로세서의 오버플로우 값을 무한대로 설정하여 프로세서의 리퀘스트 플로우를 차단할 수 있다. 프로세서의 오버플로우 값을 무한대로 설정한다는 것은 전술한 크레디트 값(CRD)에 관계없이 제한 신호(LMT)를 활성화하는 것일 수 있다. 제5 경우(CASE5)를 나타내는 글로벌 제어 신호(GCON)에 응답하여 제한 신호(LMT)를 활성화함으로써 프로세서와 상호접속 장치 사이의 리퀘스트 플로우를 차단할 수 있다. 또한, 제1 경우(CASE1)에서 제5 경우(CASE5)로 동작 환경이 변화하는 경우에, 일회적으로 프로세서의 크레디트 값을 감소시킬 수 있다.
이와 같이, 본 발명의 실시예들에 따른 시스템 온 칩 및 시스템 온 칩의 제어 방법은 동작 환경의 변화에 따라서 적응적으로 마스터 지능 소자들의 리퀘스트 플로우들을 제어함으로써 서비스 품질을 향상시킬 수 있다. 또한 각각의 마스터 지능 소자들에게 할당된 복수의 서비스 제어기들을 이용하여 리퀘스트 플로우들의 제어 조건을 마스터 지능 소자마다 독립적으로 설정할 수 있으므로 동작 환경의 변화에 따른 복잡한 시나리오를 용이하게 구현할 수 있다.
도 15는 본 발명의 일 실시예에 따른 크레디트 값에 기초한 리퀘스트 플로우의 제어 방법을 설명하기 위한 도면이고, 도 16은 도 15의 방법에 따른 도 5의 모니터의 동작의 일 예를 설명하기 위한 도면이다.
전술한 바와 같이, 제1 이벤트 신호(CEV)가 활성화될 때마다 크레디트 값(CRD)이 최대 값(MAX) 방향으로 증가하고 제2 이벤트 신호(SEV)가 활성화될 때마다 크레디트 값(CRD)이 최소 값(MIN) 방향으로 감소한다. 제어 블록(530)은 크레디트 값(CRD)이 클수록 높은 우선순위를 부여하고 크레디트 값(CRD)이 작을수록 낮은 우선순위를 부여할 수 있다.
도 15 및 16을 참조하면, 제어 블록(530)은 크레디트 값(CRD)의 범위을 분할하여 복수의 동작 모드들을 설정하고, 상기 동작 모드들에 따라서 상기 로컬 제어 신호(LCON)의 값들(OV, INC, DEC)을 서로 다르게 설정하여 상응하는 마스터 지능 소자의 리퀘스트 플로우를 제어할 수 있다.
예를 들어, 상기 동작 모드들은, 포로모션 모드, 디폴트 모드 및 디모션 모드를 포함할 수 있다. 프로모션 모드는 크레디트 값(CRD)이 상위 경계 값(UPBN)보다 큰 경우에 해당하고, 디폴트 모드는 크레디트 값(CRD)이 상위 경계 값(UPBN)보다 작고 하위 경계 값(LWBN)보다 큰 경우에 해당하고, 디모션 모드는 크레디트 값(CRD)이 하위 경계 값(LWBN)보다 작은 경우에 해당한다.
제어 블록(530)은, 상응하는 마스터 지능 소자에 대하여 디폴트 모드보다 프로모션 모드에서 더 큰 대역폭이 허용되고, 디모션 모드보다 상기 디폴트 모드에서 더 큰 대역폭이 허용되도록 로컬 제어 신호(LCON)의 값들(OV, INC, DEC)을 설정할 수 있다. 예를 들어, 제어 블록(530)은 디폴트 모드에서의 오버플로우 값(OV2)을 디모션 모드에서의 오버플로우 값(OV1)보다 작게 설정하고, 프로모션 모드에서의 오버플로우 값(OV3)을 디폴트 모드에서의 오버플로우 값(OV2)보다 작게 설정할 수 있다. 또한 제어 블록(530)은 디폴트 모드에서의 단위 증가 값(INC)을 디모션 모드에서의 단위 증가 값(INC)보다 크게 설정하고, 프로모션 모드에서의 단위 증가 값(INC)을 디폴트 모드에서의 단위 증가 값(INC)보다 크게 설정할 수 있다. 도 16에는 동작 모드에 관계없이 단위 감소 값(DEC)이 일정한 경우가 도시되어 있으나, 동작 모드에 따라서 단위 감소 값(DEC)을 다르게 설정할 수 있다. 즉 단위 감소 값(DEC)을 감소함으로써 리퀘스트 플로우를 촉진할 수 있고 단위 감소 값(DEC)을 증가함으로써 리퀘스트 플로우를 억제할 수 있다.
도 17은 본 발명의 실시예들에 따른 시스템을 나타내는 블록도이다. 도 17에 도시된 시스템(1000a)은 도 1에 도시된 시스템(1000)과 유사하므로, 중복되는 설명은 생략될 수 있다.
도 17을 참조하면, 시스템(1000a)은 슬레이브(slave) 지능 소자(IP, intellectual property)들(SLV1, SLV2)(301, 302), 마스터(master) 지능 소자들(MST1, MST2, MST3)(101, 102, 103), 서비스 제어기(service controller)들(QC1, QC2, QC3)(501, 502, 503) 및 상호접속 장치(interconnect device)(10)를 포함한다. 실시예에 따라서, 시스템(1000a)은 글로벌 제어기(global controller)(30)를 더 포함할 수 있다.
복수의 마스터 지능 소자들(101, 102, 103)은 적어도 하나의 슬레이브 지능 소자(301, 302)에게 서비스를 요구하기 위한 리퀘스트들을 각각 발생한다. 상호접속 장치(10)는 각각의 채널들을 통하여 슬레이브 지능 소자(301, 302) 및 마스터 지능 소자들(101, 102, 103)에 연결된다. 상호접속 장치(10)는 마스터 지능 소자들(101, 102, 103)로부터의 리퀘스트들의 중재 동작을 수행한다. 상호접속 장치(10)는 상기 중재 동작을 위하여 적어도 하나의 중재기(arbiter)를 포함할 수 있다. 복수의 서비스 제어기들(501, 502, 503)은 시스템(1000)의 동작 환경의 변화에 따라 적응적으로 마스터 지능 소자들(101, 102, 103)의 리퀘스트 플로우들을 제어한다.
마스터 지능 소자들(101, 102, 103)은 적어도 하나의 리얼타임 지능 소자를 포함할 수 있다. 예를 들어, 제3 마스터 지능 소자(103)는 디스플레이 콘트롤러와 같은 리얼타임 지능 소자일 수 있다. 또한 제2 슬레이브 지능 소자(102)는 마스터 지능 소자들(101, 102, 103)에게 공통으로 서비스를 제공하는 메모리 콘트롤러일 수 있다. 이 경우, 리얼타임 지능 소자(103)에 상응하는 서비스 제어기(503)는 긴급한 서비스가 요구됨을 나타내는 긴급 신호(UGNT)를 발생할 수 있다.
시스템(1000a)은 리얼타임 지능 소자(103)에 상응하는 서비스 제어기(503)와 슬레이브 지능 소자(302) 사이에 점대점(point-to-point)으로 연결된 전송 라인(TL2)을 더 포함할 수 있다. 긴급 신호(UGNT)는 전송 라인(TL2)을 통하여 리얼타임 지능 소자(103)에 상응하는 서비스 제어기(503)로부터 슬레이브 지능 소자(302)로 직접 전송될 수 있다. 긴급 신호(UGNT)는 상호접속 장치(10)에도 제공될 수 있으며, 상호접속 장치(10)는 긴급 신호(UGNT)에 기초하여 중재 동작에서의 우선순위를 조정할 수 있다.
마스터 지능 소자들(101, 102, 103)은 적어도 하나의 베스트 에포트 지능 소자를 포함할 수 있다. 예를 들어, 제1 마스터 지능 소자(101)는 프로세서와 같은 베스트 에포트 지능 소자일 수 있다. 이 경우, 슬레이브 지능 소자(302)는 시스템의 동작 환경의 변화에 기초하여 외부 제한 신호(ELMT)를 발생하고, 베스트 에포트 지능 소자(101)에 상응하는 서비스 제어기(501)는 외부 제한 신호(ELMT)에 응답하여 베스트 에포트 지능 소자(101)와 상호접속 장치(10) 사이의 리퀘스트 플로우를 차단할 수 있다.
시스템(1000a)은 베스트 에포트 지능 소자(101)에 상응하는 서비스 제어기(501)와 슬레이브 지능 소자(302) 사이에 점대점으로 연결된 전송 라인(TL1)을 더 포함할 수 있다. 외부 제한 신호(ELMT)는 전송 라인(TL1)을 통하여 슬레이브 지능 소자(302)로부터 베스트 에포트 지능 소자(101)에 상응하는 서비스 제어기(501)로 직접 전송될 수 있다.
도 18은 도 17의 시스템에 포함된 서비스 제어기의 일 예를 나타내는 블록도이다.
도 18에 도시된 서비스 제어기(503)는 디스플레이 콘트롤러와 같은 리얼타임 지능 소자(103)의 리퀘스트 플로우를 제어하기 위한 서비스 제어기일 수 있다. 도 18의 서비스 제어기(503)는 제어 블록의 동작을 제외하고는 도 3의 서비스 제어기(500a)와 유사하므로 중복되는 설명은 생략될 수 있다.
제어 블록(540)은 시스템의 동작 환경의 변화에 기초하여 모니터(520)를 제어하기 위한 로컬 제어 신호(LCON)를 발생한다. 상기 동작 환경의 변화는 도 1을 참조하여 설명한 바와 같이 글로벌 제어 신호(GCON)로서 제공될 수도 있고, 상태 신호들(ST1, ST2, ST3)로서 제공될 수도 있다. 또한 제어 블록(540)은 크레디트 값(CRD)에 기초하여 상응하는 마스터 지능 소자(103)로부터의 리퀘스트에 대한 우선순위 정보(PRT)를 발생할 수 있다. 우선순위 정보(PRT)는 상호접속 장치(10)로 제공되어 중재 동작의 기초로 이용될 수 있다.
제어 블록(540)은 우선순위 정보(PRT)와 더불어 리얼타임 지능 소자(103)에 대하여 긴급한 서비스가 요구됨을 나타내는 긴급 신호(UGNT)를 발생할 수 있다. 전술한 바와 같이, 긴급 신호(UGNT)는 슬레이브 지능 소자(302)에게 실시간으로 제공되어 리얼타임 지능 소자(103)의 리퀘스트에 대한 서비스를 촉진하거나 다른 마스터 지능 소자의 리퀘스트 플로우를 억제하는 데 이용될 수 있다.
제어 블록(540)의 적어도 일부는 저장된 값들 및 입력되는 값들에 응답하여 미리 정해진 프로세스 시퀀스를 수행하는 구성을 갖는 특수 기능 레지스터(special function register)로 구현될 수 있다.
도 19는 본 발명의 일 실시예에 따른 크레디트 값에 기초한 리퀘스트 플로우의 제어 방법을 설명하기 위한 도면이다.
도 19를 참조하면, 도 18에 도시된 제어 블록(540)은 크레디트 값(CRD)의 범위를 분할하여 복수의 동작 모드들을 설정하고, 상기 동작 모드들에 따라서 상기 로컬 제어 신호(LCON)의 값들(OV, INC, DEC)을 서로 다르게 설정하여 상응하는 마스터 지능 소자의 리퀘스트 플로우를 제어할 수 있다.
예를 들어, 상기 동작 모드들은, 긴급 모드, 포로모션 모드, 디폴트 모드 및 디모션 모드를 포함할 수 있다. 긴급 모드는 크레디트 값(CRD)이 긴급 레벨(UGL)보다 큰 경우에 해당하고, 프로모션 모드는 크레디트 값(CRD)이 상위 경계 값(UPBN)보다 큰 경우에 해당한다. 긴급 레벨(UGL)은 상위 경계 값(UPBN)과 같도록 설정될 수도 있고, 상위 경계 값(UPBN)보다 크도록 설정될 수도 있다. 디폴트 모드는 크레디트 값(CRD)이 상위 경계 값(UPBN)보다 작고 하위 경계 값(LWBN)보다 큰 경우에 해당하고, 디모션 모드는 크레디트 값(CRD)이 하위 경계 값(LWBN)보다 작은 경우에 해당한다.
제어 블록(540)은, 상응하는 마스터 지능 소자에 대하여 디폴트 모드보다 프로모션 모드에서 더 큰 대역폭이 허용되고, 디모션 모드보다 상기 디폴트 모드에서 더 큰 대역폭이 허용되도록 로컬 제어 신호(LCON)의 값들(OV, INC, DEC)을 설정할 수 있다.
또한 제어 블록(540)은, 크레디트 값(CRD)이 긴급 레벨(UGL)보다 큰 경우 긴급 신호(UGNT)를 활성화할 수 있다. 이와 같이 리얼타임 지능 소자(103)에 대하여 매우 긴급한 서비스가 요구되는 경우 긴급 신호(UGNT)를 활성화하고, 긴급 신호(UGNT)를 이용하여 리얼타임 지능 소자(103)의 리퀘스트에 대한 서비스를 촉진하거나 다른 마스터 지능 소자의 리퀘스트 플로우를 억제할 수 있다.
도 20은 본 발명의 일 실시예에 따른 긴급 신호의 발생 방법을 나타내는 도면이다.
도 20을 참조하면, 긴급 신호(UGNT)의 활성화 조건과 비활성화 조건을 서로 다르게 설정하여, 히스테레시스(hysteresis) 방식으로 긴급 신호(UGNT)를 발생될 수 있다. 도 18의 제어 블록(540)은 크레디트 값(CRD)이 상승 긴급 레벨(UGLR) 보다 커지는 시점(t1)에서 긴급 신호(UGNT)를 활성화하고 크레디트 값(CRD)이 하강 긴급 레벨(UGLF) 보다 작아지는 시점(t3)에서 긴급 신호(UGNT)를 비활성화할 수 있다. 하강 긴급 레벨(UGLF)은 상승 긴급 레벨(UGLR)보다 작게 설정될 수 있다.
이 경우 크레디트 값(CRD)이 상승 긴급 레벨(UGLR)보다 작아지는 시점(t2)에서는 긴급 신호(UGNT)의 활성화 상태를 그대로 유지하고 크레디트 값(CRD) 더 낮은 하강 긴급 레벨(UGLF)까지 감소하는 시점(t3)에서 긴급 신호(UGNT)를 비활성화한다. 이와 같은 히스테레시스 방식으로 긴급 신호(UGNT)를 발생함으로써, 빈번한 동작 모드의 변경을 방지하고 리얼타임 지능 소자가 긴급 상태를 안정적으로 해소하도록 제어할 수 있다.
도 21은 도 17의 시스템에 포함된 서비스 제어기의 일 예를 나타내는 블록도이다.
도 21에 도시된 서비스 제어기(501)는 프로세서와 같은 베스트 에포트 지능 소자(101)의 리퀘스트 플로우를 제어하기 위한 서비스 제어기일 수 있다. 도 21의 서비스 제어기(503)는 제한기(510)의 동작 조건을 제외하고는 도 3의 서비스 제어기(500a)와 유사하므로 중복되는 설명은 생략될 수 있다.
도 21의 제한기(510)는 제어 블록(530)으로부터의 제한 신호(LMT) 뿐만 아니라 외부 제한 신호(ELMT)에 응답하여 인에이블될 수 있다. 이를 위하여 서비스 제어기(501)는 논리합 게이트(550)를 더 포함할 수 있다. 논리합 게이트(550)는 제한 신호(LMT) 및 외부 제한 신호(ELMT)를 논리합 연산하여 출력하고 제한기(510)는 논리합 게이트(550)의 출력 신호에 응답하여 인에이블될 수 있다.
제한 신호(LMT)는 상응하는 베스트 에포트 지능 소자(101)가 충분히 서비스를 받고 있는 경우에 활성화되고 외부 제한 신호(ELMT)는 다른 마스터 지능 소자 및/또는 슬레이브 지능 소자가 긴급 상태인 경우에 활성화될 수 있다. 결과적으로 베스트 에포트 지능 소자(101)에 상응하는 서비스 제어기(501)는 내부 상태 및 외부 상태의 변화에 따라서 베스트 에포트 지능 소자(101)의 리퀘스트 플로우를 차단할 수 있다.
도 22는 도 17의 시스템에 포함된 슬레이브 지능 소자의 일 예를 나타내는 도면이다.
도 22를 참조하면, 슬레이브 지능 소자(302)는 도 17의 시스템(1000a)의 리퀘스트 플로우를 제어하기 위하여 리퀘스트 큐(310) 및 스케쥴러(320)를 포함할 수 있다.
리퀘스트 큐(310)는 상호접속 장치(10)를 경유하여 마스터 장치들(101, 102, 103)로부터 전달된 복수의 리퀘스트들을 저장한다. 다중 아웃스탠딩 트랜잭션(multiple outstanding transactions) 또는 다중 아웃스탠딩 리퀘스트(multiple outstanding requests)를 지원하는 프로토콜이 채용되는 경우, 슬레이브 지능 소자는 적어도 하나의 리퀘스트 큐(310)를 포함할 수 있다. 리퀘스트 큐(310)는 마스터 지능 소자들로부터 이미 발행되었으나(issued) 아직 완료되지 않은 복수의 리퀘스트들을 저장한다.
스케쥴러(320)는 리퀘스트 큐(310)에 저장된 리퀘스트들의 각각의 우선순위들에 기초하여 상기 저장된 리퀘스트들에 대한 서비스 순서를 결정할 수 있다. 결정된 서비스 순서에 따라서 리퀘스트들이 순차적으로 내부 회로(340)에 전달된다.
스케쥴러(320)는 리얼타임 지능 소자(103)에 상응하는 서비스 제어기(503)로부터 제공되는 긴급 신호(UGNT)에 응답하여 리퀘스트 큐(310)에 저장된 리퀘스트들 중에서 리얼타임 지능 소자(103)로부터 발생된 리퀘스트들의 우선순위를 증가시킬 수 있다. 우선순위를 증가시킴으로써 리얼타임 지능 소자(103)에 대한 서비스를 촉진하여 리얼타임 지능 소자(103)의 긴급 상태를 해소할 수 있다.
스케쥴러(320)는 기준 개수보다 많은 리퀘스트들이 리퀘스트 큐(310)에 저장되어 서비스 대기 중인 경우 큐풀 신호(QF)를 활성화할 수 있다. 논리합 게이트(330)는 긴급 신호(UGNT) 및 큐풀 신호(QF)를 논리합 연산하여 외부 제한 신호(ELMT)를 발생할 수 있다. 전술한 바와 같이, 긴급 신호(UGNT)는 리얼타임 지능 소자에 대하여 긴급한 서비스가 요구됨을 나타낼 수 있고, 외부 제한 신호(ELMT)는 베스트 에포트 지능 소자의 리퀘스트 플로우를 차단하는데 이용될 수 있다.
이와 같이, 긴급 신호(UGNT) 및 외부 제한 신호(ELMT)를 이용하여 동작 환경의 변화에 따라서 리얼타임 지능 소자의 리퀘스트 플로우를 촉진하고 베스트 에포트 지능 소자의 리퀘스트 플로우를 억제할 수 있다.
도 23은 도 22의 슬레이브 지능 소자 내에 저장되는 리퀘스트의 구조 및 긴급 신호의 일 예를 나타내는 도면이다.
도 23을 참조하면, 리퀘스트 큐(310)에 저장되는 리퀘스트들(REQ)은 리퀘스트(REQ)를 발생한 마스터 지능 소자를 나타내는 마스터 식별자(MID), 복수의 리퀘스트들을 구별하기 위한 리퀘스트 식별자(AxID), 리퀘스트(REQ)의 내용을 나타내는 어드레스-코맨드(ADD-COM) 및 리퀘스트(REQ)의 우선순위(AxQ)를 포함할 수 있다.
긴급 신호(UGNT)는 마스터 지능 소자의 긴급 상태를 나타내는 플래그값(FLG) 및 긴급 신호(UGNT)를 발생한 마스터 지능 소자를 나타내는 마스터 식별자(MID)를 포함할 수 있다. 실시예에 따라서, 긴급 신호(UGNT)는 플래그 값(FLG) 만을 포함하고, 긴급 신호(UGNT)를 발생한 마스터 지능 소자를 나타내는 마스터 식별자(MID)는 별개의 신호로서 제공될 수도 있다.
도 22의 스케쥴러(320)는 플래그(FLG) 값이 긴급 상태를 나타내는 경우 긴급 신호(UGNT)와 리퀘스트 큐(310)에 저장된 리퀘스트들의 마스터 식별자(MID)를 비교하여 긴급 상태에 있는 마스터 지능 소자로부터 발행된 리퀘스트의 우선순위를 증가시킬 수 있다. 우선순위가 증가된 리퀘스트에 대한 서비스가 촉진되고 상기 마스터 지능 소자의 긴급 상태가 해소될 수 있다.
도 24는 본 발명의 실시예들에 따른 시스템 온 칩을 전자 기기에 응용한 예를 나타내는 블록도이다.
도 24를 참조하면, 전자 기기(2000)는 시스템 온 칩(1010), 메모리 장치(1020), 저장 장치(1030), 입출력 장치(1040), 파워 서플라이(1050) 및 이미지 센서(1060)를 포함할 수 있다. 한편, 도 24에는 도시되지 않았지만, 전자 기기(2000)는 비디오 카드, 사운드 카드, 메모리 카드, USB 장치 등과 통신하거나, 또는 다른 전자 기기들과 통신할 수 있는 포트(port)들을 더 포함할 수 있다.
시스템 온 칩(1010)은 도 1 내지 도 23을 참조하여 설명한 본 발명의 실시예들에 따른 애플리케이션 프로세서 시스템 온 칩(AP SOC)으로서 상호접속 장치(INT)와 이에 연결된 복수의 지능 소자들(또는 기능 블록들)을 포함할 수 있다. 예를 들어, 상기 지능 소자들은 메모리 콘트롤러(memory controller)(MC), 중앙 처리부(central processing unit), 디스플레이 콘트롤러(display controller)(DIS), 파일 시스템 블록(file system block)(FSYS), 그래픽 처리부(graphic processing unit)(GPU), 이미지 신호 프로세서(image signal processor)(ISP), 멀티 포맷 코덱 블록(multi-format codec block)(MFC) 등을 포함할 수 있다. 메모리 콘트롤러(MC)는 전술한 슬레이브 지능 소자들 중 하나에 해당하고 다른 지능 소자들 중 복수의 지능 소자들은 메모리 콘트롤러(MC)를 공통 자원으로 이용하는 마스터 지능 소자들에 해당한다. 도 23에 도시하지는 않았으나, 전술한 바와 같이 시스템 온 칩(1010)은 시스템 온 칩의 동작 환경의 변화에 따라 적응적으로 상기 마스터 지능 소자들의 리퀘스트 플로우들을 제어하는 서비스 제어기들을 포함한다.
시스템 온 칩(1010)은 어드레스 버스(address bus), 제어 버스(control bus) 및 데이터 버스(data bus)를 통하여 메모리 장치(1020), 저장 장치(1030), 입출력 장치(1040) 및 이미지 센서(2060)와 통신을 수행할 수 있다. 실시예에 따라, 시스템 온 칩(1010)은 주변 구성요소 상호연결(Peripheral Component Interconnect; PCI) 버스와 같은 확장 버스에도 연결될 수 있다.
메모리 장치(1020)는 전자 기기(2000)의 동작에 필요한 데이터 및 프로그램 코드를 저장할 수 있다. 예를 들어, 메모리 장치(1020)는 디램(DRAM), 모바일 디램, 에스램(SRAM), 피램(PRAM), 에프램(FRAM), 알램(RRAM) 및/또는 엠램(MRAM)으로 구현될 수 있다. 저장 장치(1030)는 솔리드 스테이트 드라이브(solid state drive), 하드 디스크 드라이브(hard disk drive), 씨디롬(CD-ROM) 등을 포함할 수 있다. 입출력 장치(1040)는 키보드, 키패드, 마우스 등과 같은 입력 수단 및 프린터, 디스플레이 등과 같은 출력 수단을 포함할 수 있다. 파워 서플라이(1050)는 전자 기기(2000)의 동작에 필요한 동작 전압을 공급할 수 있다.
이미지 센서(1060)는 상기 버스들 또는 다른 통신 링크를 통해서 시스템 온 칩(1010)과 연결되어 통신을 수행할 수 있다. 이미지 센서(1060)는 시스템 온 칩(1010)과 함께 하나의 칩에 집적될 수도 있고, 서로 다른 칩에 각각 집적될 수도 있다.
도 24에 도시된 전자 기기(2000)의 구성 요소들의 적어도 일부는 다양한 형태들의 패키지로 구현될 수 있다. 예를 들어, 적어도 일부의 구성들은 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등과 같은 패키지들을 이용하여 실장될 수 있다.
한편, 전자 기기(2000)는 적어도 하나의 시스템 온 칩을 포함하는 모든 장치 및 시스템으로 해석되어야 할 것이다. 예를 들어, 전자 기기(2000)는 디지털 카메라, 이동 전화기, 피디에이(Personal Digital Assistants; PDA), 피엠피(Portable Multimedia Player; PMP), 스마트폰 등을 포함할 수 있다.
도 25는 도 24의 전자 기기에서 사용되는 인터페이스의 일 예를 나타내는 블록도이다.
도 25를 참조하면, 전자 기기(1100)는 MIPI 인터페이스를 사용 또는 지원할 수 있는 데이터 처리 장치로 구현될 수 있고, 애플리케이션 프로세서 칩 형태의 시스템 온 칩(AP SOC)(1110), 이미지 센서(1140) 및 디스플레이(1150) 등을 포함할 수 있다.
시스템 온 칩(1110)의 CSI 호스트(1112)는 카메라 시리얼 인터페이스(Camera Serial Interface; CSI)를 통하여 이미지 센서(1140)의 CSI 장치(1141)와 시리얼 통신을 수행할 수 있다. 일 실시예에서, CSI 호스트(1112)는 디시리얼라이저(DES)를 포함할 수 있고, CSI 장치(1141)는 시리얼라이저(SER)를 포함할 수 있다. 시스템 온 칩(1110)의 DSI 호스트(1111)는 디스플레이 시리얼 인터페이스(Display Serial Interface; DSI)를 통하여 디스플레이(1150)의 DSI 장치(1151)와 시리얼 통신을 수행할 수 있다.
일 실시예에서, DSI 호스트(1111)는 시리얼라이저(SER)를 포함할 수 있고, DSI 장치(1151)는 디시리얼라이저(DES)를 포함할 수 있다. 나아가, 전자 기기(1100)는 시스템 온 칩(1110)과 통신을 수행할 수 있는 알에프(Radio Frequency; RF) 칩(1160)을 더 포함할 수 있다. 전자 기기(1100)의 PHY(1113)와 RF 칩(1160)의 PHY(1161)는 MIPI(Mobile Industry Processor Interface) DigRF에 따라 데이터 송수신을 수행할 수 있다. 또한, 시스템 온 칩(1110)은 PHY(1161)의 MIPI DigRF에 따른 데이터 송수신을 제어하는 DigRF MASTER(1114)를 더 포함할 수 있다.
한편, 전자 기기(1100)는 지피에스(Global Positioning System; GPS)(1120), 스토리지(1170), 마이크(1180), 디램(Dynamic Random Access Memory; DRAM)(1185) 및 스피커(1190)를 포함할 수 있다. 또한, 전자 기기(1100)는 초광대역(Ultra WideBand; UWB)(1210), 무선 랜(Wireless Local Area Network; WLAN)(1220) 및 와이맥스(Worldwide Interoperability for Microwave Access; WIMAX)(1230) 등을 이용하여 통신을 수행할 수 있다. 도 25에 도시된 전자 기기(1100)의 구조 및 인터페이스는 하나의 예시로서 이에 한정되는 것이 아니다.
본 발명의 실시예들에 따른 시스템 및 시스템 제어 방법은 복수의 마스터 지능 소자들과 상기 마스터 지능 소자들에 의해 공통으로 액세스되는 적어도 하나의 슬레이브 소자를 포함하는 임의의 장치 및 시스템에 유용하게 이용될 수 있다. 특히 본 발명은 여러 가지 반도체 부품들이 하나의 칩에 집적되는 시스템 온 칩에 유용하게 이용될 수 있으며, 소형화, 고성능 및 고속의 동작이 요구되는 디지털 카메라, 이동 전화기, 피디에이(PDA), 피엠피(PMP), 스마트폰 등의 휴대 기기에 더욱 유용하게 이용될 수 있다.
상기에서는 본 발명이 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.
100, 101, 102, 103: 마스터 지능 소자
10: 상호 접속 장치
301, 302: 슬레이브 지능 소자
500, 501, 502: 서비스 제어기
PRT: 우선순위 정보
UGNT: 긴급 신호
LMT: 제한 신호
ELMT: 외부 제한 신호

Claims (20)

  1. 적어도 하나의 슬레이브 지능 소자;
    상기 슬레이브 지능 소자에게 서비스를 요구하기 위한 리퀘스트들을 각각 발생하는 복수의 마스터 지능 소자들;
    각각의 채널들을 통하여 상기 슬레이브 지능 소자 및 상기 마스터 지능 소자들에 연결되고, 상기 리퀘스트들의 중재 동작을 수행하는 상호접속 장치; 및
    시스템 온 칩의 동작 환경의 변화에 따라 적응적으로 상기 마스터 지능 소자들의 리퀘스트 플로우들을 제어하는 복수의 서비스 제어기들을 포함하고,
    상기 서비스 제어기들의 각각은,
    상기 상응하는 마스터 지능 소자의 서비스 요구수준을 실시간으로 검출하여 상기 서비스 요구 수준을 나타내는 크레디트 값을 출력하는 모니터; 및
    상기 동작 환경의 변화에 기초하여 상기 모니터를 제어하기 위한 로컬 제어 신호를 발생하고, 상기 크레디트 값에 기초하여 상기 상응하는 마스터 지능 소자로부터의 리퀘스트에 대한 우선순위 정보를 발생하는 제어 블록을 포함하는 시스템 온 칩.
  2. 제1 항에 있어서,
    적어도 하나의 상태 신호에 기초하여 상기 동작 환경의 변화를 나타내는 글로벌 제어 신호를 발생하는 글로벌 제어기를 더 포함하고,
    상기 서비스 제어기들은 상기 글로벌 제어 신호에 기초하여 각각의 리퀘스트 플로우들을 제어하는 것을 특징으로 하는 시스템 온 칩.
  3. 제2 항에 있어서,
    상기 슬레이브 지능 소자는 메모리 콘트롤러를 포함하고,
    상기 마스터 지능 소자들은 모뎀 및 디스플레이 콘트롤러를 포함하고,
    상기 상태 신호는,
    상기 메모리 콘트롤러의 동작 온도가 기준 온도보다 클 때 활성화되는 제1 상태 신호;
    상기 모뎀이 기준 시간 이상 상기 슬레이브 지능 소자로부터 서비스를 제공받지 못했을 때 활성화되는 제2 상태 신호; 및
    상기 디스플레이 콘트롤러의 데이터 버퍼에 저장된 데이터의 저장율이 기준율보다 작을 때 활성화되는 제3 상태 신호 중에서 적어도 하나를 포함하는 것을 특징으로 하는 시스템 온 칩.
  4. 삭제
  5. 제1 항에 있어서,
    상기 로컬 제어 신호는 상기 동작 환경의 변화에 따라서 결정되는 오버플로우 값, 단위 증가 값 및 단위 감소 값을 포함하고,
    상기 모니터는,
    상기 오버플로우 값에 상응하는 주기로 활성화되는 제1 이벤트 신호를 발생하는 제1 카운터;
    상기 상응하는 마스터 지능 소자와 상기 상호접속 장치 사이의 채널 신호에 기초하여 상기 상응하는 마스터 지능 소자로 서비스가 제공될 때마다 활성화되는 제2 이벤트 신호를 발생하는 서비스 검출기; 및
    상기 제1 이벤트 신호가 활성화될 때마다 상기 단위 증가 값만큼 상기 크레디트 값을 증가하고, 상기 제2 이벤트 신호가 활성화될 때마다 상기 단위 감소 값만큼 상기 크레디트 값을 감소하는 제2 카운터를 포함하는 것을 특징으로 하는 시스템 온 칩.
  6. 제5 항에 있어서, 상기 제어 블록은,
    상기 동작 환경의 변화에 기초하여 상기 오버플로우 값, 상기 단위 증가 값 및 상기 단위 감소 값 중 적어도 하나를 변화시킴으로써 상기 상응하는 마스터 지능 소자의 리퀘스트 플로우를 제어하는 것을 특징으로 하는 시스템 온 칩.
  7. 제5 항에 있어서,
    상기 로컬 제어 신호는 상기 동작 환경이 변화하는 경우 제공되는 스틸 값을 더 포함하고,
    상기 제2 카운터는 상기 스틸 값만큼 상기 크레디트 값을 감소하는 것을 특징으로 하는 시스템 온 칩.
  8. 제1 항에 있어서, 상기 서비스 제어기들의 적어도 하나는,
    상기 제어 블록으로부터의 제한 신호에 응답하여 상기 상응하는 마스터 지능 소자와 상기 상호접속 장치 사이의 리퀘스트 플로우를 차단하는 제한기를 더 포함하는 것을 특징으로 하는 시스템 온 칩.
  9. 제8 항에 있어서, 상기 제어 블록은,
    상기 크레디트 값이 승인 값보다 작을 때 상기 제한 신호를 활성화하고, 상기 동작 환경의 변화에 기초하여 상기 승인 값을 변화시킴으로써 상기 상응하는 마스터 지능 소자의 리퀘스트 플로우를 제어하는 것을 특징으로 하는 시스템 온 칩.
  10. 제8 항에 있어서, 상기 제한기는,
    상기 제한 신호에 응답하여 동기 제한 신호를 발생하는 동기화기;
    상기 동기 제한 신호 및 상기 상응하는 마스터 지능 소자로부터의 밸리드 신호를 논리 연산하여 마스크 밸리드 신호를 출력하는 제1 논리 게이트; 및
    상기 동기 제한 신호 및 상기 상호접속 장치로부터의 레디 신호를 논리 연산하여 마스크 레디 신호를 출력하는 제2 논리 게이트를 포함하는 것을 특징으로 하는 시스템 온 칩.
  11. 제1 항에 있어서, 상기 제어 블록은,
    상기 크레디트 값의 범위를 분할하여 복수의 동작 모드들을 설정하고, 상기 동작 모드들에 따라서 상기 로컬 제어 신호의 값들을 서로 다르게 설정하여 상기 상응하는 마스터 지능 소자의 리퀘스트 플로우를 제어하는 것을 특징으로 하는 시스템 온 칩.
  12. 제1 항에 있어서, 상기 슬레이브 지능 소자는,
    상기 상호접속 장치를 경유하여 상기 마스터 지능 소자들로부터 전달된 복수의 리퀘스트들을 저장하는 리퀘스트 큐; 및
    상기 저장된 리퀘스트들의 각각의 우선순위들에 기초하여 상기 저장된 리퀘스트들에 대한 서비스 순서를 결정하는 스케쥴러를 포함하는 것을 특징으로 하는 시스템 온 칩.
  13. 제12 항에 있어서,
    상기 마스터 지능 소자들은 적어도 하나의 리얼타임 지능 소자를 포함하고,
    상기 리얼타임 지능 소자에 상응하는 상기 서비스 제어기는 긴급한 서비스가 요구됨을 나타내는 긴급 신호를 발생하는 것을 특징으로 하는 시스템 온 칩.
  14. 제13 항에 있어서,
    상기 슬레이브 지능 소자의 스케쥴러는 상기 긴급 신호에 응답하여 상기 리퀘스트 큐에 저장된 리퀘스트들 중에서 상기 리얼타임 지능 소자로부터 발생된 리퀘스트들의 우선순위를 증가시키는 것을 특징으로 하는 시스템 온 칩.
  15. 제12 항에 있어서,
    상기 마스터 지능 소자들은 적어도 하나의 베스트 에포트 지능 소자를 포함하고,
    상기 슬레이브 지능 소자는 상기 동작 환경의 변화에 기초하여 외부 제한 신호를 발생하고,
    상기 베스트 에포트 지능 소자에 상응하는 상기 서비스 제어기는 상기 외부 제한 신호에 응답하여 상기 베스트 에포트 지능 소자와 상기 상호접속 장치 사이의 리퀘스트 플로우를 차단하는 것을 특징으로 하는 시스템 온 칩.
  16. 제15 항에 있어서,
    상기 슬레이브 지능 소자는 기준 개수보다 많은 리퀘스트들이 상기 리퀘스트 큐에 저장되어 서비스 대기 중인 경우 상기 외부 제한 신호를 활성화하는 것을 특징으로 하는 시스템 온 칩.
  17. 제15 항에 있어서,
    상기 마스터 지능 소자들은 적어도 하나의 리얼타임 지능 소자를 더 포함하고,
    상기 슬레이브 지능 소자는 상기 리얼타임 지능 소자에 대하여 긴급한 서비스가 요구됨을 나타내는 긴급 신호에 응답하여 상기 외부 제한 신호를 활성화하는 것을 특징으로 하는 시스템 온 칩.
  18. 제17 항에 있어서,
    상기 리얼타임 지능 소자는 디스플레이 콘트롤러를 포함하고,
    상기 베스트 에포트 지능 소자는 프로세서를 포함하는 것을 특징으로 하는 시스템 온 칩.
  19. 적어도 하나의 슬레이브 지능 소자 및 상기 슬레이브 지능 소자에게 서비스를 요구하기 위한 리퀘스트들을 각각 발생하는 복수의 마스터 지능 소자들이 상호접속 장치에 연결된 시스템 온 칩의 제어 방법으로서,
    상기 슬레이브 지능 소자 및 상기 마스터 지능 소자들 중 적어도 하나의 상태를 나타내는 적어도 하나의 상태 신호를 발생하는 단계;
    상기 상태 신호에 기초하여 상기 시스템 온 칩의 동작 환경의 변화를 나타내는 글로벌 제어 신호를 발생하는 단계; 및
    상기 글로벌 제어 신호에 기초하여 적응적으로 상기 마스터 지능 소자들의 리퀘스트 플로우들을 제어하는 단계를 포함하고,
    상기 마스터 지능 소자들의 리퀘스트 플로우들을 제어하는 단계는,
    상기 상응하는 마스터 지능 소자의 서비스 요구수준을 실시간으로 검출하여 상기 서비스 요구 수준을 나타내는 크레디트 값을 출력하는 단계; 및
    상기 동작 환경의 변화에 기초하여 상기 모니터를 제어하기 위한 로컬 제어 신호를 발생하고, 상기 크레디트 값에 기초하여 상기 상응하는 마스터 지능 소자로부터의 리퀘스트에 대한 우선순위 정보를 발생하는 단계를 포함하는 시스템 온 칩의 제어 방법.
  20. 슬레이브 지능 소자에게 서비스를 요구하기 위한 리퀘스트를 발생하는 마스터 지능 소자의 리퀘스트 플로우를 제어하기 위한 서비스 제어기로서,
    상기 마스터 지능 소자의 서비스 요구수준을 실시간으로 검출하여 상기 서비스 요구 수준을 나타내는 크레디트 값을 출력하는 모니터; 및
    동작 환경의 변화에 기초하여 상기 모니터를 제어하기 위한 로컬 제어 신호를 발생하고, 상기 크레디트 값에 기초하여 상기 마스터 지능 소자로부터의 리퀘스트에 대한 우선순위 정보를 발생하는 제어 블록을 포함하는 서비스 제어기.
KR1020130019646A 2013-01-24 2013-02-25 적응적 서비스 제어기, 시스템 온 칩 및 시스템 온 칩의 제어 방법 KR102021795B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US13/799,785 US9684633B2 (en) 2013-01-24 2013-03-13 Adaptive service controller, system on chip and method of controlling the same
DE102013213300.6A DE102013213300A1 (de) 2013-01-24 2013-07-08 Adaptiver Dienstcontroller, System-on-Chip und Verfahren zum Steuern desselben
JP2013162213A JP6219091B2 (ja) 2013-01-24 2013-08-05 適応的サービス制御器、システムオンチップ及びシステムオンチップの制御方法
CN201310346570.1A CN103970710B (zh) 2013-01-24 2013-08-09 自适应服务控制器、片上***和控制其的方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361756217P 2013-01-24 2013-01-24
US61/756,217 2013-01-24

Publications (2)

Publication Number Publication Date
KR20140095399A KR20140095399A (ko) 2014-08-01
KR102021795B1 true KR102021795B1 (ko) 2019-09-17

Family

ID=51743858

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130019646A KR102021795B1 (ko) 2013-01-24 2013-02-25 적응적 서비스 제어기, 시스템 온 칩 및 시스템 온 칩의 제어 방법

Country Status (1)

Country Link
KR (1) KR102021795B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102466160B1 (ko) * 2016-01-08 2022-11-14 삼성전자주식회사 데이터의 루프백을 수행하는 시스템 온 칩과 집적 회로, 및 이들을 포함하는 모바일 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030177296A1 (en) * 2002-03-18 2003-09-18 Hugh Kurth Dynamic request priority arbitration
US20080209093A1 (en) * 2007-02-28 2008-08-28 National Chiao Tung University Fine-grained bandwidth control arbiter and the method thereof

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761516A (en) * 1996-05-03 1998-06-02 Lsi Logic Corporation Single chip multiprocessor architecture with internal task switching synchronization bus

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030177296A1 (en) * 2002-03-18 2003-09-18 Hugh Kurth Dynamic request priority arbitration
US20080209093A1 (en) * 2007-02-28 2008-08-28 National Chiao Tung University Fine-grained bandwidth control arbiter and the method thereof

Also Published As

Publication number Publication date
KR20140095399A (ko) 2014-08-01

Similar Documents

Publication Publication Date Title
JP6219091B2 (ja) 適応的サービス制御器、システムオンチップ及びシステムオンチップの制御方法
KR101949382B1 (ko) 서비스 품질의 향상을 위한 시스템 온 칩 및 시스템 온 칩의 제어 방법
JP4222251B2 (ja) バス調停装置およびバス調停方法
US8943249B2 (en) System on chip improving data traffic and operating method thereof
US7752373B2 (en) System and method for controlling memory operations
US9270610B2 (en) Apparatus and method for controlling transaction flow in integrated circuits
US11748284B2 (en) Systems and methods for arbitrating traffic in a bus
US10423558B1 (en) Systems and methods for controlling data on a bus using latency
WO2006072844A2 (en) Streaming memory controller
US20140122790A1 (en) Dynamic priority management of memory access
US20110197038A1 (en) Servicing low-latency requests ahead of best-effort requests
US11055243B1 (en) Hierarchical bandwidth allocation bus arbiter
US10649922B2 (en) Systems and methods for scheduling different types of memory requests with varying data sizes
US20240143530A1 (en) DMA Control Circuit with Quality of Service Indications
WO2006134550A2 (en) Memory controller
US9891840B2 (en) Method and arrangement for controlling requests to a shared electronic resource
KR102021795B1 (ko) 적응적 서비스 제어기, 시스템 온 칩 및 시스템 온 칩의 제어 방법
KR101420290B1 (ko) 트랜잭션들을 그룹화하는 버스 중재기, 이를 포함하는 버스장치 및 시스템
JP2005316609A (ja) バス調停装置およびバス調停方法
US9910812B2 (en) Initiating multiple data transactions on a system bus
US7114019B2 (en) System and method for data transmission
US11418361B2 (en) Master device, system and method of controlling the same
US20080270668A1 (en) Method to Hide or Reduce Access Latency of a Slow Peripheral in a Pipelined Direct Memory Access System
JP5623150B2 (ja) 電子機器及びその制御方法
US20180181506A1 (en) Bus traffic control apparatus and bus system having the same

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