[go: up one dir, main page]

KR101861768B1 - 시스템 온칩, 이를 포함하는 전자 시스템, 및 그 동작 방법 - Google Patents

시스템 온칩, 이를 포함하는 전자 시스템, 및 그 동작 방법 Download PDF

Info

Publication number
KR101861768B1
KR101861768B1 KR1020110093653A KR20110093653A KR101861768B1 KR 101861768 B1 KR101861768 B1 KR 101861768B1 KR 1020110093653 A KR1020110093653 A KR 1020110093653A KR 20110093653 A KR20110093653 A KR 20110093653A KR 101861768 B1 KR101861768 B1 KR 101861768B1
Authority
KR
South Korea
Prior art keywords
block
quality
master
service
bus
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
KR1020110093653A
Other languages
English (en)
Other versions
KR20130030108A (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 KR1020110093653A priority Critical patent/KR101861768B1/ko
Priority to US13/604,516 priority patent/US8793420B2/en
Priority to TW101132528A priority patent/TWI563392B/zh
Priority to CN201210345514.1A priority patent/CN103218322B/zh
Publication of KR20130030108A publication Critical patent/KR20130030108A/ko
Application granted granted Critical
Publication of KR101861768B1 publication Critical patent/KR101861768B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • 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
    • 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/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

시스템 온 칩(SoC), 이를 포함하는 전자 시스템, 및 그 동작 방법이 개시된다. 상기 방법은 마스터 블록의 실시간 정보 레지스터에 상기 마스터 블록이 실시간성 블록인지 아닌지를 나타내기 위한 실시간성 정보가 설정되는 단계; 상기 마스터 블록의 가중치 레지스터에 가중치가 설정되는 단계; 상기 마스터 블록의 버퍼 정보를 체크하는 단계; 상기 버퍼 정보와 가중치를 이용하여 서비스 품질(QoS) 신호를 생성하는 단계; 및 상기 서비스 품질 신호를 이용하여 상기 마스터 블록의 상기 버스 사용에 대한 우선권을 결정하는 단계를 포함한다.

Description

시스템 온칩, 이를 포함하는 전자 시스템, 및 그 동작 방법{System on-chip, Electronic system including the same, and Method there-of}
본 발명의 개념에 따른 실시 예는 시스템 온칩(SoC: System on-Chip)에 관한 것으로, 특히 QoS(Quality of Service)에 따라 버스 혹은 슬레이브 블록의 엑세스 우선권을 결정할 수 있는 SoC, 이를 포함하는 전자 시스템과 그 방법에 관한 것이다.
온-칩 버스 시스템(On-Chip Bus system)의 진화로 인하여 마스터 블록의 QoS(Quality of Service) 정보가 버스 및 메모리 컨트롤러의 스케쥴링 정보로 사용되어 중재(arbitration)가 가능한 버스 시스템이 제공되고 있다. 이에 따라 각 마스터 블록에서의 QoS 정보를 어떻게 버스 시스템에 전달 하느냐는 성능에 영향을 주는 중요한 요소이다.
멀티 미디어 데이터를 처리하기 위한 시스템 온 칩(System on Chip, 이하 SoC)은 다양한 마스터 블록과 슬레이브 블록을 내장하고 있다. 이러한 SoC는 다양하게 응용되고 있는데, 예로서 하나의 SoC가 비디오 캠코더(Video Camcoder), 핸드폰(Handphone), 또는 태블릿(Tablet) PC등의 제품에 사용될 수 있다. 또한 각 제품의 경우 여러 가지 동작 모드를 두고 있다. 예로써 비디오 캠코더는 동영상 촬영, 동영상 디스플레이, 정지영상 디스플레이 등의 동작 모드가 있다. 따라서, SoC 내부의 각 마스터 블록, 버스, 메모리 시스템 등은 이러한 다양한 동작 모드에서 잘 동작하도록 설계되어야 한다. 이러한 시스템을 구축하는데 중요한 인터-칩 버스/메모리 시스템에서는 네트워크 시스템의 QoS (Quaily of Service, 서비스 품질) 개념을 도입하여, 시스템의 대역폭, 레이턴시, 및 실시간 등에 대한 성능 요구 수준을 맞추기 위한 시도들이 도입되고 있다.
특히, 실시간성이 요구되는 동작의 경우, 규정 조건을 만족하지 못하면, QoS가 낮아진다. 예컨대, LCD 디스플레이 장치를 컨트롤하는 LCD 컨트롤러는 실시간 제약이 있는 마스터 블록으로서, LCD 디스플레이 장치에 디스플레이 되어야 하는 규정 조건을 만족시키지 못하면 화질 열화가 발생할 수 있다.
본 발명이 이루고자 하는 기술적인 과제는 실시간 요구에 대한 서비스 품질(QoS)를 증가시키고 시스템의 안정성을 향상시킬 수 있는 시스템 온칩(SoC), 이를 포함하는 전자 시스템 및 그 동작 방법을 제공하는 것이다.
본 발명의 일 실시 예에 따른 시스템 온칩(SoC)의 동작 방법은 마스터 블록(master block), 슬레이브 블록(slave block), 및 버스(bus)를 포함하는 SoC의 동작 방법에 관한 것으로, 상기 마스터 블록의 실시간 정보 레지스터에 상기 마스터 블록이 실시간성 블록인지 아닌지를 나타내기 위한 실시간성 정보가 설정되는 단계; 상기 마스터 블록의 가중치 레지스터에 가중치가 설정되는 단계; 상기 마스터 블록의 버퍼 정보를 체크하는 단계; 상기 버퍼 정보와 가중치를 이용하여 서비스 품질(QoS) 신호를 생성하는 단계; 및 상기 서비스 품질 신호를 이용하여 상기 마스터 블록의 상기 버스 사용에 대한 우선권을 결정하는 단계를 포함한다.
본 발명의 다른 일 실시 예에 따른 SoC의 동작 방법은 마스터 블록(master block), 슬레이브 블록(slave block), 및 버스(bus)를 포함하는 SoC의 동작 방법에 관한 것으로, 상기 마스터 블록에 버퍼 정보 대 서비스 품질(QoS) 룩업 테이블이 저장되는 단계; 상기 마스터 블록의 버퍼 정보를 체크하는 단계; 상기 룩업 테이블로부터 상기 체크된 버퍼 정보에 상응하는 서비스 품질(QoS) 신호를 생성하는 단계; 및 상기 서비스 품질 신호를 이용하여 상기 마스터 블록의 상기 버스 사용에 대한 우선권을 결정하는 단계를 포함한다.
상기 동작 방법은, 상기 서비스 품질 신호를 이용하여 상기 마스터 블록의 상기 슬레이브 블록에 대한 억세스 우선권을 결정하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 버스 사용에 대한 우선권을 결정하는 단계는, 상기 마스터 블록이 상기 서비스 품질 신호를 포함하는 버스 사용 요구 신호를 버스 중재기로 전송하는 단계; 및 둘 이상의 버스 사용 요구 신호가 수신된 경우, 상기 버스 중재기는 상기 서비스 품질 신호에 따라 더 높은 우선권을 갖는 마스터 블록에게 상기 버스 사용을 허용하는 단계를 포함할 수 있다.
다른 일 실시예에서, 상기 슬레이브 블록에 대한 억세스 우선권을 결정하는 단계는, 상기 마스터 블록이 상기 서비스 품질 신호를 포함하는 슬레이브 억세스 요구 신호를 상기 슬레이브 블록으로 전송하는 단계; 및 둘 이상의 슬레이브 억세스 요구 신호가 수신된 경우, 상기 슬레이브 블록은 상기 서비스 품질 신호에 따라 더 높은 우선권을 갖는 마스터 블록에게 억세스를 허용하는 단계를 포함할 수 있다.
상기 슬레이브 블록은 메모리 장치에 대한 억세스 순서를 스케쥴링하는 메모리 스케쥴러를 포함할 수 있다.
상기 SoC의 동작 방법은 컴퓨터 프로그램으로 작성되어 컴퓨터로 읽을 수 있는 기록 매체에 저장될 수 있다.
본 발명의 일 실시 예에 따른 SoC는 복수의 마스터 블록(master block)들; 슬레이브 블록(slave block); 및 상기 복수의 마스터 블록들과 상기 슬레이브 블록을 연결하는 버스(bus)를 포함한다.
상기 복수의 마스터 블록들 각각은 해당 마스터 블록이 실시간성 블록인지 아닌지를 나타내기 위한 실시간성 정보를 저장하는 실시간성 정보 레지스터; 해당 마스터 블록의 가중치를 저장하는 가중치 레지스터; 상기 버스를 통해 전송할 데이터를 저장하기 위한 버퍼; 및 상기 버퍼의 정보를 체크하여, 상기 버퍼 정보와 상기 가중치를 이용하여 서비스 품질(QoS) 신호를 생성하는 서비스 품질 신호 생성기를 포함한다.
상기 버스는 상기 서비스 품질 신호를 이용하여 상기 마스터 블록들의 상기 버스 사용에 대한 우선권을 결정하는 버스 중재기를 포함한다.
상기 슬레이브 블록은 상기 서비스 품질 신호를 이용하여 상기 마스터 블록들의 상기 슬레이브 블록에 대한 억세스 우선권을 결정할 수 있다.
상기 슬레이브 블록은 메모리 장치에 대한 억세스를 스케쥴링하는 메모리 스케쥴러를 포함할 수 있다.
본 발명의 실시 예에 따르면, 마스터 블록이 QoS 정보 중 실시간 요구에 따른 동작상의 긴급성 정보를 메모리 스케쥴러나 버스 중재기에 전달할 수 있다. 이에 따라 마스터 블록의 실시간(realtime)에 대한 긴급성이 스케쥴링에 사용됨으로써, QoS 수준이 개선되는 효과가 있다.
또한 본 발명의 실시예에 따르면, 적용되는 제품이나 동작 모드에 따라, 각 마스터의 QoS를 달리 발생할 수 있도록 함으로써, QoS 수준을 일정 수준 이상으로 관리하거나 개선할 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 SoC를 포함하는 전자 시스템의 블록도를 나타낸다.
도 2a는 본 발명의 일 실시예에 따른 SoC의 동작 방법을 설명하기 위한 개념도이다.
도 2b는 도 2a에 도시된 QoS 생성기의 일 구현예를 나타내는 블록도이다.
도 3은 본 발명의 다른 일 실시예에 따른 SoC의 동작 방법을 설명하기 위한 개념도이다.
도 4는 본 발명의 일 실시예에 따른 QoS 정보 생성 방법을 설명하기 위한 표이다.
도 5는 본 발명의 일 실시예에 따른 버퍼 정보, 가중치 및 QoS 신호간의 관계를 설명하기 위한 그래프이다.
도 6은 본 발명의 일 실시예에 따른 FIFO 레벨 대 QoS 매핑 관계를 나타내는 그래프이다.
도 7은 도 6의 그래프에 상응하는 LUT(Look-up table)을 나타내는 도면이다.
도 8은 본 발명의 일 실시예에 따른 SoC의 동작 방법을 나타내는 플로우챠트이다.
도 9는 본 발명의 다른 일 실시예에 따른 SoC의 동작 방법을 나타내는 플로우챠트이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 전자 시스템(10)의 블록도를 나타낸다.
도 1을 참조하면, 전자 시스템(10)은 이동 전화기, 스마트폰, 태블릿 컴퓨터(tablet computer), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 손으로 들고 다닐 수 있는 게임 콘솔(handheld game console), 또는 e-북(e-book)과 같이 손으로 들고 다닐 수 있는 장치(handheld device)로 구현될 수 있다.
전자 시스템(10)은 SoC(100), 디스플레이 디바이스(190), 및 외부 메모리 장치(195)를 포함한다. SoC(100)는 CPU(central processing unit; 110), ROM(read only memory; 120), RAM(random access memory; 130), 메모리 스케쥴러(140), 메모리 컨트롤러(150), 가속기(160), LCD 컨트롤러(170), 및 버스(180)를 포함할 수 있다. SoC(100)는 도시된 구성요소 외에도 다른 구성요소, 예컨대, 전원 관리 유닛(power management unit), TV 프로세서 등을 더 포함할 수 있다.
프로세서(processor)라고도 불릴 수 있는 CPU(110)는 메모리(120, 130 또는 195)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 예컨대, CPU(110)는 클락 신호 발생기(미 도시)로부터 출력된 클락 신호에 응답하여 상기 프로그램들 및/또는 상기 데이터를 처리 또는 실행할 수 있다.
CPU(110)는 멀티-코어 프로세서(multi-core processor)로 구현될 수 있다. 상기 멀티-코어 프로세서는 두 개 또는 그 이상의 독립적인 실질적인 프로세서들('코어들(cores)'이라고 불림)을 갖는 하나의 컴퓨팅 컴포넌트(computing component)이고, 상기 프로세서들 각각은 프로그램 명령들(program instructions)을 읽고 실행할 수 있다. 상기 멀티-코어 프로세서는 다수의 가속기를 동시에 구동할 수 있으므로, 상기 멀티-코어 프로세서를 포함하는 데이터 처리 시스템은 멀티-가속(multi-acceleration)을 수행할 수 있다.
메모리(120, 130 또는 195)에 저장된 프로그램들 및/또는 데이터는 필요에 따라 CPU(110)의 메모리에 로드(load)될 수 있다.
ROM(120)은 영구적인 프로그램들 및/또는 데이터를 저장할 수 있다. ROM(120)은 EPROM(erasable programmable read-only memory) 또는 EEPROM(electrically erasable programmable read-only memory)으로 구현될 수 있다.
RAM(130)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대, 메모리(120 또는 195)에 저장된 프로그램들 및/또는 데이터는 CPU(110)의 제어 또는 ROM(120)에 저장된 부팅 코드(booting code)에 따라 RAM(130)에 일시적으로 저장될 수 있다. RAM(130)은 DRAM(dynamic RAM) 또는 SRAM(static RAM)으로 구현될 수 있다.
가속기(160)는 멀티미디어 또는 멀티미디어 데이터, 예컨대 텍스트 (text), 오디오(audio), 정지 영상들(still images), 애니메이션(animation), 비디오(video), 2차원 데이터, 또는 3차원 데이터의 처리 성능을 향상시키기 위한 하드웨어 장치 또는 코-프로세서(co-processor)를 의미할 수 있다.
도 1에서는 설명의 편의를 위하여 하나의 가속기(160)만을 도시하나, 실시 예에 따라 SoC(100)은 하나 또는 그 이상의 가속기들을 포함할 수 있다. 예컨대, 적어도 하나의 애플리케이션 프로그램은 하나의 가속기를 실행시킬 수 있다.
메모리 컨트롤러(150)는 외부 메모리 장치(195)와 인터페이스하기 위한 블록이다. 메모리 컨트롤러(150)는 메모리 장치(195)의 동작을 전반적으로 제어하며, 또한 호스트와 메모리 장치(195)간의 제반 데이터 교환을 제어한다. 예컨대, 메모리 컨트롤러(150)는 호스트의 요청에 따라 메모리 컨트롤러(150)를 제어하여 데이터를 쓰거나 데이터를 독출한다.
여기서, 호스트는 CPU(110), 가속기(160), LCD 컨트롤러(170)와 같은 마스터 장치일 수 있다.
메모리 장치(195)는 데이터를 저장하기 위한 저장 장소로서, OS(Operating System), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다. 메모리 장치(195)는 DRAM 일수 있으나, 이에 한정되는 것은 아니다. 예컨대, 메모리 장치(195)는 비휘발성 메모리 장치(플래시 메모리, PRAM, MRAM, ReRAM, 또는 FeRAM 장치)일 수도 있다. 본 발명의 다른 실시예에서는 메모리 장치(195)는 SoC(100) 내부에 구비되는 내장 메모리일 수 있다.
메모리 스케쥴러(140)는 메모리 장치(195)에 대한 억세스 순서를 스케쥴링할수 있다. 예컨대, 메모리 스케쥴러(140)는 메모리 장치(195)에 대한 억세스 요구 신호가 복수의 마스터 블록(예컨대, CPU(110), 가속기(160), LCD 컨트롤러(170) 등)로부터 수신된 경우, 어느 마스터 블록에게 상기 메모리 장치(195)에 대한 억세스 우선권을 줄지 결정하여 억세스 우선권 순서대로 메모리 장치(195)에 억세스하도록 스케쥴링할 수 있다. 이를 위하여 메모리 스케쥴러(140)는 리오더 버퍼(도 2의 141)를 포함할 수 있다.
각 구성 요소(110, 120, 130, 140, 160, 및 170)는 시스템 버스(180)를 통하여 서로 통신할 수 있다.
디스플레이 디바이스(190)는 CPU(110)에 로드된 소프트웨어 가속기 또는 가속기(160)에 의하여 가속된 또는 처리된 멀티미디어를 디스플레이할 수 있다. 본 실시예에서 디스플레이 디바이스(190)는 LCD 디바이스이지만, 본 발명의 실시예가 이에 한정되는 것은 아니다. 예컨대, 디스플레이 디바이스는 LED, OLED 디바이스, 혹은 다른 종류의 디바이스일 수 있다.
디바이스 컨트롤러(170)는 디스플레이 디바이스(190)의 동작을 제어한다.
SoC(100)는 시스템 온칩(SOC: System On chip)으로 구현될 수 있다.
도 2a는 본 발명의 일 실시예에 따른 SoC의 동작 방법을 설명하기 위한 개념도이다. 도 2b는 도 2a에 도시된 QoS 생성기의 일 구현예를 나타내는 블록도이다. 도 1, 도 2a 및 도 2b를 참조하면, 버스(180)는 및 멀티플렉서(182)를 포함할 수 있다. 버스(180)에는 다수의 블록들(210, 220, 230)이 접속된다. 블록((210, 220, 230)은 아이피(IP: intellectual property)라고도 하며, 다른 블록의 요청을 받기만 하는 슬레이브(slave) 블록과 스스로 다른 슬레이브 블록에 데이터 통신을 요구할 수 있는 마스터(master) 블록으로 구분된다. 경우에 따라서는 하나의 블록이 슬레이브와 마스터 기능을 겸할 수도 있다.
도 2a에서는 세 개의 마스터 블록들(210, 220, 230)과 하나의 슬레이브 블록(140)가 도시되나, 본 발명의 실시예가 이에 한정되는 것은 아니다. 마스터 블록은 도 1에 도시된 CPU(110), 가속기(160), LCD 컨트롤러(170)일 수 있으며, 도시되지는 않았지만, TV 프로세서, 카메라 인터페이스부 등이 될 수 있다.
슬레이브 블록은 도 1에 도시된 메모리 스케쥴러(140)일 수 있다.
본 발명의 일 실시예에서, 마스터 블록들(210, 220, 230) 각각은 QoS 생성기(211, 221, 231), 및 버퍼(215, 225, 235)를 포함할 수 있다.
버퍼(215, 225, 235) 각각은 선입선출(First In First Out; FIFO)방식을 채용한 버퍼로서 구현될 수 있다. 예컨대, 상기 버퍼(215, 225, 235)는 마스터 블록의 입력 포트로부터 전송 데이터를 입력 받아 그 입력 순서에 따라 데이터를 정렬, 관리하고 먼저 저장된 데이터부터 순차적으로 리드하여 마스터 블록의 출력 포트로 데이터를 전송할 수 있다. 또는 버퍼(215, 225, 235) 각각은 큐(queue)로 구현될 수 있다. 또한, 버퍼(215, 225, 235) 각각은 메모리, 레지스터 또는 플립플롭 등으로 구현될 수 있다.
버퍼(215, 225, 235) 각각은 슬레이브 블록으로 전송할 데이터를 저장하기 위한 쓰기용 버퍼와 슬레이브 블록으로부터 수신한 데이터를 저장하기 위한 읽기용 버퍼를 포함할 수 있다.
QoS 생성기(211, 221, 231)는 버퍼 정보를 사용하여 QoS 정보를 생성할 수 있다. 버퍼 정보는 각 마스터 블록 내의 버퍼의 점유 정도-즉, 버퍼에 데이터가 얼마나 차있는지 또는 비어있는지-를 나타내는 정보이다. 예컨대, 쓰기 버퍼의 경우에, 버퍼 정보는 해당 버퍼에 데이터가 얼마나 차있는지를 나타내는 정보일 수 있고, 읽기 버퍼의 경우에, 버퍼 정보는 해당 버퍼에 데이터가 얼마나 비어 있는지를 나타내는 정보일 수 있다.
도 2b를 참조하면, QoS 생성기(211)는 복수의 QoS 정보 엔트리들(LUT_0[3:0] ~ LUT_15[3:0])을 포함하는 룩업 테이블(251) 및 선택기(252)를 포함할 수 있다.
QoS 생성기(211)는 룩업 테이블(251)에 저장된 복수의 QoS 정보들(LUT_0[3:0] ~ LUT_15[3:0]) 중 입력되는 버퍼 정보(Fifo_level)에 상응하는 하나의 선택하여 QoS 정보(QR1[3:0])로서 출력할 수 있다.
도 2b의 실시예에서는, LUT(251)는 16개의 QoS 정보들(LUT_0[3:0] ~ LUT_15[3:0])을 포함하고, 각 QoS 정보는 4비트 데이터로 구성되나, 본 발명의 실시예가 이에 한정되는 것은 아니다. 또한, 도 2b에는 하나의 QoS 생성기(211)만이 대표적으로 도시되나, 다른 QoS 생성기(221, 231) 역시 동일하게 구성될 수 있다.
룩업테이블은 마스터 블록의 특성에 따라 미리 설정되어 출시될 수 있다. 여기서 마스터 블록의 특성이란, 실시간성 실시간성 블록인지 아닌지를 의미할 수 있다. 또는 각 QoS 생성기(211, 221, 231)는 마스터의 블록의 동작 모드에 따라 룩업테이블이 변경 설정될 수 있도록 프로그램될 수 있다. 예컨대, 각 QoS 생성기(211, 221, 231)는 미리 설정된 복수의 룩업 테이블들을 구비하고 동작 모드에 따라 어느 하나의 룩업 테이블을 선택할 수도 있고, 또는 동작 모드에 따라 룩업 테이블을 생성하여 저장할 수도 있다.
동작 모드는 SoC(100)가 적용된 제품의 여러 가지 기능에 따라 결정될 수 있다. 예컨대, SoC(100)가 비디오 캠코더에 적용된 경우, 동영상 촬영, 동영상 디스플레이, 정지영상 디스플레이 등의 동작 모드가 있을 수 있다. SoC(100)가 휴대폰에 적용된 경우, 통화 모드, 카메라 모드, MP3 모드, 등의 동작 모드가 있을 수 있다. 동작 모드는 SoC(100)가 적용된 제품의 사용자 인터페이스(미도시)를 통해 설정되거나 변경될 수 있다. 예컨대, SoC가 적용된 제품이 휴대폰인 경우, 사용자는 사용자 인터페이스의 메뉴를 통해, 사진 촬영 모드, 동영상 촬영 모드 등을 선택할 수 있고, 이에 따라 SoC(100)의 동작 모드가 변경될 수 있다. 이와 같이 사용자 인터페이스(미도시)를 통해 동작 모드가 변경되는 경우, CPU(110)는 다른 마스터 블록들에 변경된 동작 모드를 알려줄 수 있다.
제1 마스터 블록(210)의 QoS 생성기(211)는 제1 마스터 블록(210)의 버퍼 정보를 이용하여 제1 마스터 블록(210)의 특성 또는 동작 모드에 따라 설정된 룩업 테이블을 사용하여 제1 QoS 정보(QR1)를 생성한다. 제2 및 제3 마스터 블록(220, 230)의 QoS 생성기(221, 231) 역시 제1 마스터 블록(210)의 QoS 생성기(211)와 마찬가지로 각각 제2 및 제3 QoS 정보(QR2 및 QR3)를 생성한다.
룩업 테이블에 대해서는 도 6 및 7을 참조하여, 상세히 후술한다.
제1 내지 제3 QoS 정보(QR1, QR2, QR3)는 버스 중재기(181) 및 메모리 스케쥴러(140)로 제공된다. 버스 중재기(181)는 제1 내지 제3 QoS 정보(QR1, QR2, QR3)에 따라 버스 사용 우선권을 결정한다.
각 마스터 블록(210, 220, 230)는 버스(180)를 통해 데이터를 전송하기 위해 버스 중재기(181)로 버스 사용을 요청하는 요구 신호를 출력할 수 있다. 상기 제1 내지 제3 QoS 정보(QR1, QR2, QR3)는 각각 상기 요구 신호에 포함되어 버스 중재기(181)로 전달될 수 있다.
버스 중재기(181)는 마스터 블록의 QoS 정보에 따라 버스 사용 우선권을 결정한다, 예컨대, QoS 정보의 수치가 클수록 버스 사용 우선권이 높은 것으로 결정할 수 있다.
버스 중재기(181)는 둘 이상의 마스터 블록의 버스 사용 요구 신호가 액티브되는 경우, 상술한 바와 같이 두 마스터 블록의 QoS 정보에 따라 더 높은 우선권 갖는 마스터 블록을 결정하고 그 마스터 블록에게 버스 사용을 허용한다. 만약, 우선권이 동일한 마스터 블록이 복수 개 있다면, 버스 중재기(181)는 라운드 로빈 방식으로 마스터 블록들에게 버스 사용 권한을 허용할 수 있다.
상기 버스 중재기(181)는 각 마스터 블록의 우선권 정보가 저장된 우선 순위 레지스터를 포함할 수 있다.
멀티플렉서(182)는 버스 중재기(181)의 출력 신호에 응답하여 각 마스터 블록으로부터 전송되는 데이터를 멀티플렉싱함으로써, 마스터 블록들이 우선권이 높은 순서대로 버스(180)를 사용할 수 있도록 한다.
메모리 스케쥴러(140) 역시 버스 중재기(181)와 마찬가지로, 제1 내지 제3 마스터 블록(210, 220, 230)의 QoS 정보(QR1, QR2, QR3)를 이용하여 메모리 액세스 권한의 우선권을 결정할 수 있다.
예컨대, 각 마스터 블록(210, 220, 230)는 각자의 QoS 정보(QR1, QR2, QR3)를 포함하는 메모리 억세스 요구 신호를 메모리 스케쥴러(140)로 전송할 수 있다. 메모리 스케쥴러(140)는 둘 이상의 메모리 억세스 요구 신호가 수신된 경우, QoS 정보(QR1, QR2, QR3)에 따라 더 높은 우선권을 갖는 마스터 블록에게 억세스를 허용할 수 있다.
도 3은 본 발명의 다른 일 실시예에 따른 SoC의 동작 방법을 설명하기 위한 개념도이다. 도 3에 도시된 실시예는 도 2에 도시된 실시예와 그 구성이나 동작에서 유사하다, 따라서 설명의 중복을 피하기 위하여 차이점을 위주로 기술한다.
도 3의 실시예에서, 마스터 블록들(210, 220, 230) 각각은 QoS 생성기(211', 221', 231'), 레지스터들(212, 213, 222, 223, 232, 233), 및 버퍼(215, 225, 235)를 포함할 수 있다. 레지스터들(212, 213, 222, 223, 232, 233)은 실시간성 정보 레지스터(212, 222, 232), 및 가중치 레지스터(213, 223, 233)를 포함할 수 있다.
실시간성 정보 레지스터(212, 222, 232)는 마스터 블록(210, 220, 230)가 실시간 마스터인지 비실시간 마스터인지를 나타내는 정보를 저장한다.
가중치 레지스터(213, 223, 233)는 해당 마스터 블록(210, 220, 230)의 가중치를 저장한다. 이 때, 가중치는 실시간 정보에 따라 결정될 수 있다. 그러나, 본 발명의 실시예가 이에 한정되는 것은 아니다. 예컨대, 본 발명의 다른 실시예에서는, 가중치는 시스템의 대역폭, 또는 레이턴시에 따라 결정될 수 있다. 각 마스터 블록(210, 220, 230)의 실시간성 정보와 가중치는 해당 마스터 블록(210, 220, 230)의 특성 또는 동작 모드에 의해 사전에 정의될 수 있다. 또한, 실시간성 정보와 가중치는 제조업체 또는 사용자에 의해 설정될 수 있다. 여기서, 제조업체는 SoC의 제조업체일 수 있고, 사용자는 제품에 SoC를 적용하는 제품 업체일 수 있다.
QoS 생성기(211, 221, 231)는 가중치와 버퍼 정보를 사용하여 QoS 정보를 생성한다. 버퍼 정보는 각 마스터 블록 내의 버퍼의 점유 정도-즉, 버퍼에 데이터가 얼마나 차있는지 또는 비어있는지-를 나타내는 정보이다.
예컨대, 제1 마스터 블록(210)의 QoS 생성기(211)는 제1 마스터 블록(210)의 가중치와 버퍼 정보를 이용하여 제1 마스터 블록(210)의 동작 특성에 의해 미리 프로그램된 수식(equation)을 사용하여 제1 QoS 정보(QR1)를 생성할 수 있다. 제2 및 제3 마스터 블록(220, 230)의 QoS 생성기(221, 231) 역시 제1 마스터 블록(210)의 QoS 생성기(211)와 마찬가지로 각각 제2 및 제3 QoS 정보(QR2, QR3)를 생성한다.
제1 내지 제3 QoS 정보(QR1, QR12, QR3)는 버스 중재기(181) 및 메모리 스케쥴러(140)로 제공된다. 상술한 바와 같이, 버스 중재기(181)는 제1 내지 제3 QoS 정보(QR1, QR12, QR3)에 따라 버스 사용 우선권을 결정할 수 있으며, 메모리 스케쥴러(140) 역시 제1 내지 제3 마스터 블록(210, 220, 230)의 QoS 정보(QR1, QR2, QR3)를 이용하여 메모리 액세스 권한의 우선권을 결정할 수 있다.
도 4는 본 발명의 일 실시예에 따른 QoS 정보 생성 방법을 설명하기 위한 표이다. 이를 참조하면, 각 마스터 블록에는 가중치가 미리 설정된다. 예컨대, 제 1 내지 제 3 마스터(M1, M2, M3)의 가중치는 각각 백분율로 60, 10, 30일 수 있다. 백분율 60, 10, 30은 각각 정규화된 수치 0.6, 0.1, 0.3으로 표현될 수 있다. 가중치가 높을수록 긴급도가 높을 수 있다. 각 버퍼의 버퍼 정보는 주기적으로 혹은 비주기적으로 체크될 수 있다. 제 1 내지 제 3 마스터(M1, M2, M3)의 버퍼 정보를 각각 M1_FL, M3_FL, M3_FL 이라 한다.
제 1 내지 제 3 마스터(M1, M2, M3)의 QoS 생성기(211, 221, 231)는 각각 해당 가중치(60, 10, 30)와 버퍼 정보(M1_FL, M3_FL, M3_FL)를 곱하여 QoS 신호(QRx, x=1, 2, 3)를 생성할 수 있다. 예컨대, 생성된 제1 내지 제3 QoS 신호는 각각 0.6* M1_FL, 0.1* M2_FL, 0.3*M3_FL일 수 있다.
도 5는 본 발명의 일 실시예에 따른 버퍼 정보, 가중치 및 QoS 신호간의 관계를 설명하기 위한 그래프이다. 도 5에 도시된 바와 같이, QoS 신호는 버퍼 정보(Fifo level)에 비례하는 값일 수 있다. 그 비례 정도는 가중치에 의해 결정될 수 있다. 가중치는 도 5의 W1, W2와 같이 선형 커브 특성을 가지거나 또는 W3과 같이 단편적 선형 커브 특성을 가질 수 있다. 그러나, 본 발명의 실시예가 이에 한정되는 것은 아니며, 가중치는 비선형 커브 특성을 가질 수도 있다.
이러한, 버퍼 정보, 가중치 및 QoS 신호간의 관계는 미리 수식으로 정해져 있거나, 테이블로 구현되어 저장될 수 있다.
도 6은 본 발명의 일 실시예에 따른 버퍼 정보 대 QoS 정보의 매핑 관계를 나타내는 그래프이다. 도 7은 도 6의 그래프에 상응하는 LUT(Look-up table)을 나타내는 도면이다. 본 실시예에서, 버퍼 정보는 FIFO 레벨이다.
도 6을 참조하면, (a)는 FIFO 레벨 대 QoS 관계가 선형 매핑관계를 갖는 경우이고, (b)는 FIFO 레벨의 초반 및 중반(예컨대, 약 12까지)에는 QoS가 급격히 상승하다가 그 이후로는 일정해지는 민감도가 높은 경우이며, (c)는 FIFO 레벨의 초반 및 중반(예컨대, 약 12까지)에는 QoS가 서서히 상승하다가 그 이후로는 급격히 상승하는 민감도가 낮은 경우이다.
도 7을 참조하면, 도 6의 그래프에 상응하여 LUT 테이블이 미리 구비될 수 있다. 도 7에서 LUT 인덱스는 FIFO 레벨을, LUT 값(value)는 QoS를 나타낸다.
도 8은 본 발명의 일 실시예에 따른 SoC의 동작 방법을 나타내는 플로우챠트이다. 이를 참조하면, SoC의 하나 이상의 마스터 블록의 실시간성 정보 레지스터에 해당 마스터 블록이 실시간 마스터 블록인지 비실시간 마스터 블록인지를 나타내는 실시간성 정보가 설정된다(S110).
마스터 블록의 실시간성 여부는 해당 마스터 블록의 특성 또는 동작 모드에 따라 사용자에 의해 설정될 수 있다. 물론, 실시간성 정보 레지스터는 특정값(예컨대, 디폴트 값)으로 미리 설정되어 출시될 수 있고, 출시 후 사용자에 의해 변경되어 설정될 수 있다.
다음으로, 가중치 레지스터가 설정된다(S120). 가중치 역시 실시간성 정보와 마찬가지로, 마스터 블록의 해당 마스터 블록의 특성 또는 동작 모드에 따라 사용자에 의해 설정될 수 있고, 또한 특정값(예컨대, 디폴트 값)으로 미리 설정되어 출시될 수 있고, 출시 후 사용자게 의해 변경되어 설정될 수 있다. 또한, 가중치는 실시간성 정보에 의해 결정될 수 있다.
마스터 블록은 버퍼 정보를 체크한다(S130).
마스터 블록의 QoS 생성기는 버퍼 정보와 가중치를 이용하여 QoS 신호를 생성하여(S140), 버스 중재기(181) 및 메모리 스케쥴러(140)로 전달한다.
버스 중재기(181)는 생성된 QoS를 이용하여 버스 사용을 중재하고, 메모리 스케쥴러(140)는 생성된 QoS 를 이용하여 메모리 스케쥴링을 수행할 수 있다.
도 9는 본 발명의 다른 일 실시예에 따른 SoC의 동작 방법을 나타내는 플로우챠트이다. 이를 참조하면, 마스터 블록은 동작 모드를 확인하여 동작 모드가 변경되었는지 여부를 체크한다(S210, S220)
동작 모드가 변경된 경우에는, 마스터 블록의 QoS 생성기는 룩업 테이블을 변경한다(S230). 룩업 테이블의 변경은 변경된 동작 모드에 따라, 미리 설정된 복수의 룩업 테이블들 중 다른 룩업 테이블을 선택함으로써 이루어질 수도 있고, 또는 동작 모드에 따라 룩업 테이블을 새롭게 생성하여 저장함으써 이루어 질 수도 있다.
마스터 블록은 버퍼 정보를 체크한다(S240).
마스터 블록의 QoS 생성기는 룩업 테이블로부터 버퍼 정보에 상응하는 QoS 신호를 추출하여(S250), 버스 중재기(181) 및 메모리 스케쥴러(140)로 전달한다.
버스 중재기(181)는 마스터 블록으로부터 수신된 QoS를 이용하여 버스 사용을 중재하고, 메모리 스케쥴러(140)는 QoS를 이용하여 메모리 스케쥴링을 수행할 수 있다(S260).
상술한 본 발명의 실시예는 '실시간' 요구에 대한 QoS (Quaily of Service, 서비스 품질)를 증가시키기 위한 실시예를 중심으로 기술되었으나, 본 발명이 이에 한정되는 것은 아니다. 예컨대, 본 발명의 다른 실시예에서는, 시스템의 대역폭, 또는 레이턴시에 대한 QoS를 증가시키기 위해 시스템의 대역폭, 또는 레이턴시에 따라 QoS를 발생하고, 이에 따라 버스 사용에 대한 우선권 또는 슬레이브 블록에 대한 억세스 우선권을 결정할 수도 있다.
본 발명의 실시예는 하드웨어, 소트웨어 또는 하드웨어 및 소트웨어의 결합에 의해 구현 가능하다. 본 발명의 실시예는 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있다.
또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 전자 시스템
100: SoC
110: CPU(central processing unit)
120: ROM(read only memory)
130: RAM(random access memory)
140: 메모리 스케쥴러
150: 메모리 컨트롤러
160: 가속기
170: LCD 컨트롤러
180: 버스
180: 버스 중재기
210, 220, 230: 마스터 블록
211, 221, 231: QoS 신호 발생기
212, 213, 221, 222, 231, 232: 레지스터

Claims (22)

  1. 버스(bus)를 통해 통신하는 마스터 블록(master block), 및 슬레이브 블록(slave block)를 포함하는 시스템 온칩(SoC)의 동작 방법에 있어서,
    상기 마스터 블록의 실시간 정보 레지스터에 상기 마스터 블록이 실시간성 블록인지 아닌지를 나타내기 위한 실시간성 정보가 설정되는 단계;
    상기 실시간성 정보에 따라 상기 마스터 블록의 가중치 레지스터에 가중치가 설정되는 단계;
    상기 마스터 블록의 버퍼 정보를 체크하는 단계;
    상기 버퍼 정보와 가중치를 이용하여 서비스 품질(QoS) 신호를 생성하는 단계; 및
    상기 서비스 품질 신호를 이용하여 상기 마스터 블록의 상기 버스 사용에 대한 우선권을 결정하는 단계를 포함하는 SoC의 동작 방법.
  2. 제1항에 있어서, 상기 동작 방법은
    상기 서비스 품질 신호를 이용하여 상기 마스터 블록의 상기 슬레이브 블록에 대한 억세스 우선권을 결정하는 단계를 더 포함하는 SoC의 동작 방법.
  3. 제2항에 있어서, 상기 버스 사용에 대한 우선권을 결정하는 단계는
    상기 마스터 블록이 상기 서비스 품질 신호를 포함하는 버스 사용 요구 신호를 버스 중재기로 전송하는 단계; 및
    둘 이상의 버스 사용 요구 신호가 수신된 경우, 상기 버스 중재기는 상기 서비스 품질 신호에 따라 더 높은 우선권을 갖는 마스터 블록에게 상기 버스 사용을 허용하는 단계를 포함하는 SoC의 동작 방법.
  4. 제2항에 있어서, 상기 슬레이브 블록에 대한 억세스 우선권을 결정하는 단계는
    상기 마스터 블록이 상기 서비스 품질 신호를 포함하는 슬레이브 억세스 요구 신호를 상기 슬레이브 블록으로 전송하는 단계; 및
    둘 이상의 슬레이브 억세스 요구 신호가 수신된 경우, 상기 슬레이브 블록은 상기 서비스 품질 신호에 따라 더 높은 우선권을 갖는 마스터 블록에게 억세스를 허용하는 단계를 포함하는 SoC의 동작 방법.
  5. 제4항에 있어서, 상기 슬레이브 블록은
    메모리 장치에 대한 억세스를 스케쥴링하는 메모리 스케쥴러를 포함하는 SoC의 동작 방법.
  6. 제1항에 있어서, 상기 QoS 는
    상기 버퍼 정보와 선형(linear), 비선형(non-linear), 또는 단편적 선형(piece linear) 관계를 가지는 것을 특징으로 하는 SoC의 동작 방법.
  7. 버스(bus)를 통해 통신하는 마스터 블록(master block), 및 슬레이브 블록(slave block)를 포함하는 SoC의 동작 방법에 있어서,
    상기 마스터 블록에 다수의 서비스 품질(QoS) 신호들을 포함하는 룩업 테이블이 저장되는 단계;
    상기 마스터 블록의 버퍼 정보를 체크하는 단계;
    상기 룩업 테이블로부터 상기 체크된 버퍼 정보에 상응하는 서비스 품질(QoS) 신호를 추출하는 단계; 및
    상기 서비스 품질 신호를 이용하여 상기 마스터 블록의 상기 버스 사용에 대한 우선권을 결정하는 단계를 포함하는 SoC의 동작 방법.
  8. 제7항에 있어서, 상기 룩업 테이블은
    해당 마스터 블록의 동작 모드에 따라 변경될 수 있는 SoC의 동작 방법.
  9. 제8항에 있어서,
    상기 룩업 테이블은 복수개 구비되고,
    상기 동작 방법은
    상기 마스터 블록의 동작 모드에 따라 상기 복수개의 룩업 테이블 중 하나를 선택하는 단계를 더 포함하는 SoC의 동작 방법.
  10. 제8항에 있어서, 상기 동작 방법은
    상기 마스터 블록의 동작 모드에 따라 상기 룩업 테이블을 내부적으로 생성하여 설정하는 단계를 더 포함하는 SoC의 동작 방법.
  11. 제7항에 있어서, 상기 동작 방법은
    상기 서비스 품질 신호를 이용하여 상기 마스터 블록의 상기 슬레이브 블록에 대한 억세스 우선권을 결정하는 단계를 더 포함하는 SoC의 동작 방법.
  12. 제11항에 있어서, 상기 버스 사용에 대한 우선권을 결정하는 단계는
    상기 마스터 블록이 상기 서비스 품질 신호를 포함하는 버스 사용 요구 신호를 버스 중재기로 전송하는 단계; 및
    둘 이상의 버스 사용 요구 신호가 수신된 경우, 상기 버스 중재기는 상기 서비스 품질 신호에 따라 더 높은 우선권을 갖는 마스터 블록에게 버스 사용을 허용하는 단계를 포함하는 SoC의 동작 방법.
  13. 제11항에 있어서, 상기 슬레이브 블록에 대한 억세스 우선권을 결정하는 단계는
    상기 마스터 블록이 상기 서비스 품질 신호를 포함하는 슬레이브 억세스 요구 신호를 상기 슬레이브 블록으로 전송하는 단계; 및
    둘 이상의 슬레이브 억세스 요구 신호가 수신된 경우, 상기 슬레이브 블록은 상기 서비스 품질 신호에 따라 더 높은 우선권을 갖는 마스터 블록에게 억세스를 허용하는 단계를 포함하는 SoC의 동작 방법.
  14. 제13항에 있어서, 상기 슬레이브 블록은
    메모리 장치에 대한 억세스 순서를 스케쥴링하는 메모리 스케쥴러를 포함하는 SoC의 동작 방법.
  15. 복수의 마스터 블록(master block)들;
    슬레이브 블록(slave block); 및
    상기 복수의 마스터 블록들과 상기 슬레이브 블록을 연결하는 버스(bus)를 포함하고,
    상기 복수의 마스터 블록들 각각은
    상기 버스를 통해 전송할 또는 전송받을 데이터를 저장하기 위한 버퍼; 및
    상기 버퍼의 정보를 체크하고 상기 버퍼 정보를 이용하여 서비스 품질(QoS) 신호를 생성하는 서비스 품질 신호 생성기를 포함하고,
    상기 버스는
    상기 서비스 품질 신호를 이용하여 상기 마스터 블록들의 상기 버스 사용에 대한 우선권을 결정하는 버스 중재기를 포함하며,
    상기 서비스 품질 신호는 해당 마스터 블록의 동작 모드에 따라 다른 값을 가지는 SoC.
  16. 제15항에 있어서, 상기 복수의 마스터 블록들 각각은
    해당 마스터 블록이 실시간성 블록인지 아닌지를 나타내기 위한 실시간성 정보를 저장하는 실시간성 정보 레지스터; 및
    상기 실시간성 정보에 따라 해당 마스터 블록의 가중치를 저장하는 가중치 레지스터를 더 포함하며,
    상기 서비스 품질 신호 생성기는
    상기 버퍼 정보와 상기 가중치를 이용하여 상기 서비스 품질(QoS) 신호를 생성하는 SoC.
  17. 제15항에 있어서, 상기 서비스 품질 신호 생성기는
    각각이 복수의 서비스 품질(QoS) 엔트리들을 포함하는 복수의 룩업 테이블을 포함하고,
    상기 마스터 블록의 동작 모드에 따라 상기 복수개의 룩업 테이블 중 하나를 선택하여, 선택된 룩업 테이블로부터 상기 버퍼 정보에 상응하는 서비스 품질 정보를 추출하는 SoC.
  18. 제15항에 있어서, 상기 서비스 품질 신호 생성기는
    상기 마스터 블록의 동작 모드에 따라 룩업 테이블을 생성하여 저장하고, 상기 룩업 테이블로부터 상기 버퍼 정보에 상응하는 서비스 품질 정보를 추출하는 SoC.
  19. 제15항에 있어서, 상기 슬레이브 블록은
    상기 서비스 품질 신호를 이용하여 상기 마스터 블록들의 상기 슬레이브 블록에 대한 억세스 우선권을 결정하는 SoC.
  20. 제19항에 있어서, 상기 슬레이브 블록은
    메모리 장치에 대한 억세스를 스케쥴링하는 메모리 스케쥴러를 포함하는 SoC.
  21. 삭제
  22. 삭제
KR1020110093653A 2011-09-16 2011-09-16 시스템 온칩, 이를 포함하는 전자 시스템, 및 그 동작 방법 Active KR101861768B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020110093653A KR101861768B1 (ko) 2011-09-16 2011-09-16 시스템 온칩, 이를 포함하는 전자 시스템, 및 그 동작 방법
US13/604,516 US8793420B2 (en) 2011-09-16 2012-09-05 System on chip, electronic system including the same, and method of operating the same
TW101132528A TWI563392B (en) 2011-09-16 2012-09-06 System on chip, electronic system including the same, and method of operating the same
CN201210345514.1A CN103218322B (zh) 2011-09-16 2012-09-17 片上系统、电子系统以及操作其的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110093653A KR101861768B1 (ko) 2011-09-16 2011-09-16 시스템 온칩, 이를 포함하는 전자 시스템, 및 그 동작 방법

Publications (2)

Publication Number Publication Date
KR20130030108A KR20130030108A (ko) 2013-03-26
KR101861768B1 true KR101861768B1 (ko) 2018-05-28

Family

ID=47881733

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110093653A Active KR101861768B1 (ko) 2011-09-16 2011-09-16 시스템 온칩, 이를 포함하는 전자 시스템, 및 그 동작 방법

Country Status (4)

Country Link
US (1) US8793420B2 (ko)
KR (1) KR101861768B1 (ko)
CN (1) CN103218322B (ko)
TW (1) TWI563392B (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10353747B2 (en) 2015-07-13 2019-07-16 Futurewei Technologies, Inc. Shared memory controller and method of using same
KR102360214B1 (ko) * 2015-08-26 2022-02-08 삼성전자주식회사 실시간 공유 인터페이스를 포함하는 시스템 온 칩의 스케쥴링 방법
EP3358468B1 (en) * 2015-10-01 2020-12-09 Renesas Electronics Corporation Semiconductor device
CN105630716B (zh) * 2015-12-21 2018-06-12 北京航天测控技术有限公司 一种多卡校准方法
KR20180074197A (ko) 2016-12-23 2018-07-03 삼성전자주식회사 버스 트래픽 컨트롤 장치 및 이를 갖는 버스 시스템
CN110391960B (zh) * 2018-04-18 2021-10-15 珠海全志科技股份有限公司 总线传输控制装置及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802330A (en) 1996-05-01 1998-09-01 Advanced Micro Devices, Inc. Computer system including a plurality of real time peripheral devices having arbitration control feedback mechanisms
US6898649B2 (en) 2000-12-29 2005-05-24 Zarlink Semiconductor Limited Arbiter for queue management system for allocating bus mastership as a percentage of total bus time
US20070233923A1 (en) 2006-02-28 2007-10-04 Samsung Electronics Co., Ltd. Bus arbitration system and method thereof

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR940002905B1 (en) * 1989-12-15 1994-04-07 Ibm Apparatus for conditioning priority arbitration in buffered direct memory addressing
US5761452A (en) 1996-03-18 1998-06-02 Advanced Micro Devices, Inc. Bus arbiter method and system
US5805840A (en) 1996-03-26 1998-09-08 Advanced Micro Devices, Inc. Bus arbiter employing a transaction grading mechanism to dynamically vary arbitration priority
KR100455396B1 (ko) * 2002-10-14 2004-11-06 삼성전자주식회사 마스터 블록들의 우선 순위를 결정하는 파라미터 발생회로 및 파라미터 발생 방법.
KR100784385B1 (ko) * 2005-08-10 2007-12-11 삼성전자주식회사 공유 자원에 대한 접근 요청을 중재하는 시스템 및 방법
CN101894045A (zh) * 2010-06-18 2010-11-24 阳坚 一种实时Linux操作系统
CN101873272B (zh) * 2010-06-30 2013-01-30 天津市视讯软件开发有限公司 满足互通性和公平性的以太无源光网络动态带宽分配方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802330A (en) 1996-05-01 1998-09-01 Advanced Micro Devices, Inc. Computer system including a plurality of real time peripheral devices having arbitration control feedback mechanisms
US6898649B2 (en) 2000-12-29 2005-05-24 Zarlink Semiconductor Limited Arbiter for queue management system for allocating bus mastership as a percentage of total bus time
US20070233923A1 (en) 2006-02-28 2007-10-04 Samsung Electronics Co., Ltd. Bus arbitration system and method thereof

Also Published As

Publication number Publication date
CN103218322B (zh) 2017-10-24
TWI563392B (en) 2016-12-21
CN103218322A (zh) 2013-07-24
TW201329728A (zh) 2013-07-16
US8793420B2 (en) 2014-07-29
KR20130030108A (ko) 2013-03-26
US20130073762A1 (en) 2013-03-21

Similar Documents

Publication Publication Date Title
US11755527B2 (en) Techniques for command validation for access to a storage device by a remote client
KR101861768B1 (ko) 시스템 온칩, 이를 포함하는 전자 시스템, 및 그 동작 방법
US10235047B2 (en) Memory management method, apparatus, and system
WO2015165298A1 (zh) 计算机,控制设备和数据处理方法
US8677074B2 (en) Shared memory access techniques
CN101218567A (zh) 访问控制装置、访问控制集成电路以及访问控制方法
US11886365B2 (en) DMA control circuit with quality of service indications
CN102541661B (zh) 实现等待地址同步接口的方法和设备
US10037225B2 (en) Method and system for scheduling computing
CN111177025A (zh) 数据存储方法、装置及终端设备
US20160188499A1 (en) Tightly-coupled distributed uncore coherent fabric
CN114116231A (zh) 一种数据加载方法、装置、计算机设备及存储介质
US20220300421A1 (en) Memory Sharing
CN105373496A (zh) 微型计算机
US20100312924A1 (en) Network processor, reception controller and data reception processing method performing direct memory access transfer
TWI539273B (zh) 用於減少電力消耗之並行網路應用程式排程技術
US20140204100A1 (en) Modified Quality of Service (QoS) Thresholds
KR102396309B1 (ko) 데이터 요청을 제어하기 위한 장치 및 방법
US9618988B2 (en) Method and apparatus for managing a thermal budget of at least a part of a processing system
US9354812B1 (en) Dynamic memory utilization in a system on a chip
US10832132B2 (en) Data transmission method and calculation apparatus for neural network, electronic apparatus, computer-readable storage medium and computer program product
CN112948084A (zh) 任务调度方法及系统
KR20230013828A (ko) 시스템 온 칩 및 시스템 온 칩의 동작 방법
CN118740760B (zh) 数据传输方法、设备、介质及计算机程序产品
TW202507504A (zh) 高效堆疊相關處理器指令

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20110916

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

Patent event code: PA02012R01D

Patent event date: 20160816

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20110916

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: 20180308

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20180521

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20180523

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20210428

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20220420

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20230426

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20240424

Start annual number: 7

End annual number: 7