KR102360214B1 - 실시간 공유 인터페이스를 포함하는 시스템 온 칩의 스케쥴링 방법 - Google Patents

실시간 공유 인터페이스를 포함하는 시스템 온 칩의 스케쥴링 방법 Download PDF

Info

Publication number
KR102360214B1
KR102360214B1 KR1020150120438A KR20150120438A KR102360214B1 KR 102360214 B1 KR102360214 B1 KR 102360214B1 KR 1020150120438 A KR1020150120438 A KR 1020150120438A KR 20150120438 A KR20150120438 A KR 20150120438A KR 102360214 B1 KR102360214 B1 KR 102360214B1
Authority
KR
South Korea
Prior art keywords
time limit
scheduler
controller
access requests
access request
Prior art date
Application number
KR1020150120438A
Other languages
English (en)
Other versions
KR20170024876A (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 KR1020150120438A priority Critical patent/KR102360214B1/ko
Priority to US15/247,366 priority patent/US10339085B2/en
Publication of KR20170024876A publication Critical patent/KR20170024876A/ko
Priority to US16/421,269 priority patent/US10521382B2/en
Application granted granted Critical
Publication of KR102360214B1 publication Critical patent/KR102360214B1/ko

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
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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/468Specific access rights for resources, e.g. using capability register

Abstract

본 발명의 실시 예에 따른 시스템 온 칩의 스케줄링 방법은, 복수의 마스터들과 슬래이브 사이에 위치한 스케줄러의 스케줄링 방법은 상기 복수의 마스터들로부터 복수의 접근요청들을 수신하는 단계, 상기 복수의 접근요청들을 복수의 레지스터들에 세팅하는 단계, 및 상기 복수의 접근요청들을 기초로 상기 복수의 접근요청들을 스케줄링하는 단계를 포함한다.

Description

실시간 공유 인터페이스를 포함하는 시스템 온 칩의 스케쥴링 방법{SCHEDULING METHOD OF SYSTEM ON CHIP INCLUDING REAL-TIME SHARED INTERFACE}
본 발명은 반도체 장치에 관한 것으로, 좀 더 상세하게는 실시간 공유 인터페이스를 포함하는 시스템 온 칩의 스케쥴링 방법에 관한 것이다.
최근들어, 모바일 장치의 멀티미디어의 구동 및 데이터의 처리량이 증가하게 됨에 따라, 고속 프로세서 및 대용량 매체의 채용이 확대되고 있고, 다양한 응용 프로그램(Application program)들이 모바일 장치에의해 구동될 수 있다.
모바일 장치가 다양한 응용 프로그램들을 구동하기 위하여, 모바일 장치에는 전력 관리 IC(Power Management IC; 이하 PMIC), 그리고 응용 프로세서(Application Processor: 이하, AP)와 같은 반도체 장치들이 사용될 수 있다.
응용 프로세서(AP)의 내부에는 복수개의 중앙처리장치(Central Processing Unit; 이하, CPU)들이 구현 될 수 있고, 이 경우, 응용 복수의 CPU 들이 하나의 슬래이브(예컨대, PMIC)를 공유할 수 있다.
하지만, 하나의 리얼 타임(Real Time; 이하, 실시간) 공유 인터페이스를 통해서 슬래이브를 제어하는 경우, 각 마스터는 크리티컬 시간 바운더리(Critical Time Boundary; 이하, CTB)를 가지게 되고, 각각의 CTB에 대한 보장을 해주어야 시스템의 운영이 가능하게 된다.
CTB에 대한 보장을 통해 시스템의 실시간 운영을 가능하게 할 수 있다.
종래 소프트웨어를 이용하여 스케줄링을 하는 경우, 시스템에 많은 소프트웨어 자원이 요구되고, 시스템의 복잡도도 증가하게 되었다.
본 발명은 상술한 기술적 문제점을 해결하기 위해 제안된 것으로, 본 발명의 목적은 소프트웨어의 개입없이 실시간 공유 인터페이스를 포함하는 시스템 온 칩의 스케줄링 방법을 제공하는 데 있다.
본 발명의 실시 예들에 따른, 복수의 마스터들과 슬래이브 사이에 위치한 스케줄러의 스케줄링 방법은 상기 복수의 마스터들로부터 복수의 접근요청들을 수신하는 단계, 상기 복수의 접근요청들을 복수의 레지스터들에 세팅하는 단계, 및 상기 복수의 접근요청들을 기초로 상기 복수의 접근요청들을 스케줄링하는 단계를 포함할 수 있다.
상기 스케줄링 하는 단계는 상기 복수의 접근요청들에 기초하여 복수의 시간한계 값들을 설정하는 단계, 상기 복수의 시간한계 값들을 기초로 시스템이 운영전제조건을 만족하는지 여부를 판단하는 단계, 상기 복수의 시간한계 값들이 운영전제조건을 만족하는 경우, 상기 복수의 시간한계 값들 중 0보다 큰 최소 시간한계 값에 해당하는 접근요청을 선택하는 단계, 상기 선택된 접근요청에 포함된 세팅 데이터를 인터페이스로 전송하는 단계, 및 상기 복수의 시간한계 값들을 변경하는 단계를 포함할 수 있다.
상기 인터페이스는 상기 복수의 마스터들에 의해 공유될 수 있다.
상기 스케줄러의 스케줄링 방법은 상기 복수의 시간한계 값들이 상기 운영전제조건을 만족하지 않는 경우, 스케줄 제어 불능 메시지를 상기 복수의 마스터들로 전송하는 단계를 더 포함할 수 있다.
상기 복수의 시간한계 값을 설정하는 단계는 상기 복수의 접근요청들 각각의 복수의 크리티컬 시간 바운더리를 단위 동작 시간으로 나누어 결과 값을 계산하는 단계, 및 상기 결과 값보다 작지 않은 정수를 시간한계 값으로 설정하는 단계를 포함할 수 있다.
상기 운영전제조건을 만족하는지 판단하는 단계는 상기 복수의 시간한계 값들 중 0보다 큰 값들을 역수 값(1/N)으로 변환하고 합산하는 단계, 및 상기 합산 값이 1보다 작거나 같은지 판단하는 단계를 포함할 수 있다.
상기 접근요청을 선택하는 단계는 상기 복수의 시간한계 값들을 서로 비교하는 단계, 상기 0보다 큰 최소 시간한계 값에 해당하는 상기 접근요청의 개수가 둘 이상인 경우, 상기 복수의 접근요청들 각각의 우선순위 값을 설정하는 단계, 및 상기 0보다 큰 최소 시간한계 값에 해당하는 상기 접근요청들 중 최소 우선순위 값에 해당하는 접근요청을 선택하는 단계를 포함할 수 있다.
상기 접근요청을 선택하는 단계는 상기 0보다 큰 최소 시간한계 값에 해당하는 상기 접근요청의 개수가 하나인 경우, 상기 0보다 큰 최소 시간한계 값에 해당하는 상기 접근요청을 선택하는 단계를 더 포함할 수 있다.
상기 복수의 시간한계 값들을 변경하는 단계는 상기 선택된 접근요청의 시간한계 값을 0으로 변경하는 단계, 및 상기 복수의 접근요청들 중 선택되지 않은 접근요청들의 시간한계 값들을 1씩 낮추는 단계를 포함할 수 있다.
상기 인터페이스는 I2C 인터페이스(Inter-Integrated Circuit Interface), UART(Universal Asynchronous Receiver Transmitter), SPI(Serial Peripheral Interface), HSIC(High-Speed Inter-Chip) 중 적어도 하나의 프로토콜에 대응하고,
상기 복수의 레지스터들의 수는 상기 복수의 마스터들의 수에 상응할 수 있다.
상기 스케줄링 하는 단계는 모든 상기 복수의 시간한계 값들이 0인지 판단하는 단계를 더 포함하고, 모든 상기 복수의 시간한계 값들이 0인 경우가 아닌 경우, 상기 운영전제조건에 만족하는 여부를 판단하는 단계로 이어질 수 있다.
상기 접근요청을 선택하는 단계는 상기 복수의 시간한계 값들을 서로 비교하는 단계, 상기 0보다 큰 최소 시간한계 값에 해당하는 상기 접근요청의 개수가 둘 이상인 경우, 상기 0보다 큰 최소 시간한계 값에 해당하는 상기 접근요청들 중 임의로 하나를 선택하는 단계를 포함할 수 있다.
본 발명의 실시예들에 따른, 복수의 마스터들, 인터페이스, 슬래이브, 및 스케줄러를 포함하는 시스템 온 칩의 스케줄링 방법은 상기 복수의 마스터들이 상기 슬래이브로 전달될 복수의 접근요청들을 상기 스케줄러으로 전송하는 단계, 상기 스케줄러가 상기 복수의 마스터들로부터 복수의 접근요청들을 수신하는 단계, 상기 스케줄러가 상기 복수의 접근요청들을 레지스터 세팅하는 단계, 상기 스케줄러가 상기 복수의 접근요청들을 기초로 상기 복수의 접근요청들을 스케줄링하는 단계, 및 상기 복수의 마스터들 중 어느 하나가 상기 슬래이브로부터 전송된 인터럽트를 수신하는 단계를 포함할 수 있다.
상기 스케줄러은 제1 레지스터, 제2 레지스터, 제1 다운카운터, 제2 다운카운터, 비교기, 및 컨트롤러을 포함하고 상기 스케줄링하는 단계는 상기 컨트롤러가 상기 복수의 접근요청들로부터 복수의 시간한계 값들을 각각 설정하고 상기 제1 다운카운터와 제2 다운카운터에 각각 저장하는 단계, 및 상기 컨트롤러가 상기 복수의 시간한계 값들을 기초로 시스템이 운영전제조건을 만족하는지 판단하는 단계, 상기 시스템이 상기 운영전제조건을 만족하는 경우, 상기 컨트롤러가 상기 복수의 시간한계 값들 중 0보다 큰 최소의 시간한계 값에 해당하는 접근요청을 선택하는 단계, 상기 컨트롤러가 상기 선택된 접근요청에 포함된 세팅 데이터를 상기 인터페이스로 전송하는 단계, 상기 인터페이스가 상기 세팅 데이터를 상기 슬래이브로 전송하고, 상기 슬래이브로부터 수신한 인터럽트를 상기 스케줄러로 전송하는 단계, 상기 컨트롤러가 상기 인터페이스로부터 수신한 상기 인터럽트를 상기 선택된 접근요청에 해당하는 마스터로 전달하는 단계, 상기 컨트롤러가 상기 복수의 시간한계 값들을 변경하는 단계, 및 상기 컨트롤러가 모든 상기 복수의 시간한계 값들이 0인지 판단하는 단계를 포함하고,
상기 컨트롤러가 모든 상기 복수의 시간한계 값들이 0인 경우가 아닌 경우, 상기 운영전제조건을 판단하는 단계부터 반복해서 수행할 수 있다.
상기 컨트롤러가 접근요청을 선택하는 단계는, 상기 컨트롤러가 비교신호를 상기 제1 다운카운터와 제2 다운카운터로 전송하는 단계, 상기 제1 다운카운터와 제2 다운카운터는 저장된 상기 복수의 시간한계 값들을 상기 비교기으로 전송하는 단계, 비교기는 입력받은 상기 복수의 시간한계 값들을 비교하고, 0보다 큰 최소 시간한계값을 상기 컨트롤러으로 전송하는 단계, 상기 컨트롤러는 상기 0보다 큰 최소 시간한계 값에 해당하는 상기 접근요청을 선택하는 단계를 포함할 수 있다.
상기 컨트롤러가 상기 복수의 시간한계 값들을 변경하는 단계는 상기 컨트롤러가 상기 선택된 접근요청의 시간한계 값을 저장하는 상기 제1 다운카운터로 리셋신호를 전송하고, 상기 선택된 접근요청의 시간한계 값을 저장하지 않는 상기 제2 다운카운터로 카운팅 펄스를 전송하는 단계, 상기 리셋신호를 수신한 상기 제1 다운카운터는 저장된 상기 시간한계 값을 0으로 변경하는 단계, 및 상기 카운팅 펄스를 수신한 상기 제2 다운카운터는 저장된 상기 시간한계 값을 1만큼 감소하는 단계를 포함할 수 있다.
본 발명의 실시예드렝 따르면, 독립적인 둘 이상의 마스터들이 실시간 공유 인터페이스에 의해 운영될 때, 각 마스터의 크리티컬 시간 바운더리(CTB)를 만족하게 함으로써 효율적인 시스템 운영이 가능하도록 할 수 있다.
도 1은 본 발명의 실시 예들에 따른 시스템 온 칩(100)을 나타내는 블록도이다.
도 2는 도 1에 도시된 스케줄러(140)의 일 실시예를 나타내는 블록도이다.
도 3A는 본 발명의 비교예들에 따른 스케줄링 방법을 나타내는 타이밍도이다.
도 3B는 본 발명의 실시예들에 따른 스케줄링 방법을 나타내는 타이밍도이다.
도 4은 본 발명의 실시예들에 따른 스케줄링 기능을 구비하는 시스템 온 칩(100)에 포함되는 마스터(110 또는 120)의 동작 방법을 나타내는 순서도이다.
도 5는 본 발명의 실시예들에 따른 도 1에 도시된 스케줄러(140)의 동작 방법을 나타내는 순서도이다.
도 6은 본 발명의 실시 예들에 따른 스케줄러(140)의 시간한계 값을 설정하는 동작 방법을 상세하게 나타내는 순서도이다.
도 7은 본 발명의 실시 예들에 따른 스케줄러(140)의 운영전제조건에 만족 여부를 판단하는 동작 방법을 상세하게 나타내는 순서도이다.
도 8은 본 발명의 실시 예들에 따른 스케줄러(140)의 접근요청을 선택하는 동작 방법을 상세하게 나타내는 순서도이다.
도 9은 본 발명의 실시 예들에 따른 스케줄러(140)의 시간한계 값을 변경하는 동작 방법을 상세하게 나타내는 순서도이다.
도 10은 본 발명의 실시 예들에 따른 스케줄링 방법을 설명하기 위한 도면이다.
도 11은 본 발명의 실시예들에 따른 시스템 온 칩(400)을 나타내는 블록도이다.
도 12A 및 12B는 본 발명의 실시 예들에 따른 복수의 마스터들이 스케줄링 방법에 따라 동작하는 과정을 나타내는 도면이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명의 실시 예들에 따른 시스템 온 칩(100)을 나타내는 블록도이다.
시스템 온 칩(100)은 복수의 마스터가 하나의 슬래이브를 공유하기 위한 인터페이스로 I2C(Inter-Integrated Circuit)를 포함할 수 있다. 인터페이스로 I2C 인터페이스뿐 아니라, UART(Universal Asynchronous Receiver Transmitter), SPI(Serial Peripheral Interface), HSIC(High-Speed Inter-Chip) 등과 같은 다양한 칩들간 인터페이스에 대해서도 동일하게 적용될 수 있다.
도 1을 참조하면, 시스템 온 칩(100)은 제1 마스터(110), 제2 마스터(120), 버스 매트릭스(130), 스케줄러(140), 및 인터페이스(150)를 포함할 수 있다.
복수의 마스터들(110, 120)은 AP내부의 복수의 CPU들 일 수 있다. 복수의 마스터들(110, 120)은 버스 매트릭스(130)을 통해 스케줄러(140)에 접근요청들을 전송할 수 있고, 버스 매트릭스(130)을 통해 스케줄러(140)로부터 인터럽트를 입력받을 수 있다.
버스 매트릭스(130)는 시스템 온 칩(100, SoC)에 네트워크를 제공하기 위한 시스템 버스(System Bus)일 수 있으며, 본 발명은 이에 한정되지 않는다..
스케줄러(140)는 버스 매트릭스(130)를 통해 입력받은 복수의 접근 요청들 중 어느 하나을 인터페이스(150)를 통해 슬래이브(160)로 전달할 수 있고, 인터페이스(150)을 통해 입력받은 인터럽트를 버스 매트릭스(130)을 통해 복수의 마스터들(110, 120)으로 전달할 수 있다.
스케줄러(140)는 복수의 마스터들(110, 120)의 크리티컬 시간 바운더리(CTB)를 만족함으로써, 복수의 마스터들(110, 120)이 인터페이스(150)를 실시간으로 공유하게 할 수 있다.
실시간 이라 함은, 복수의 마스터들(110, 120)의 크리티컬 시간 바운더리(CTB)를 만족하면서, 복수의 마스터들(110, 120)의 동작을 보장하는 것을 의미할 수 있다.
스케줄러(140)는 복수의 마스터들(110, 120) 중 어느 하나의 접근요청에 따른 슬래이브(160)의 동작(이하, 단위 동작) 별로 스케줄링할수 있다.
스케줄러(140)의 구체적인 동작은 도 4에 대한 설명 부분에서 상세하게 설명될 것이다.
인터페이스(150)는 스케줄러(140)로부터 입력받은 접근요청을 슬래이브(160)으로 전달할 수 있다. 또한, 인터페이스(150)은 슬래이브(160)로부터 입력받은 인터럽트를 스케줄러(140)로 전달할 수있다.
인터페이스(150)는 복수의 마스터들(110, 120)이 적어도 하나의 슬래이브(160)를 공유할 수 있는 실시간 공유 인터페이스일 수 있다.
예컨대, 인터페이스(150)는 시스템 온 칩(100)과 슬래이브(160) 사이에 인터페이싱을 제공하기 위한 I2C 인터페이스(Inter-Integrated Circuit Interface)로 구현될 수 있다.
I2C 인터페이스는 직렬 데이터 라인(SDA) 1개와 직렬 클록 라인(SCL) 1개를 구비하며 양방향 통신이 가능한 버스 인터페이스일 수 있다.
하지만, 인터페이스(150)는 I2C 인터페이스뿐 아니라 UART(Universal Asynchronous Receiver Transmitter), SPI(Serial Peripheral Interface), HSIC(High-Speed Inter-Chip)등 일 수 있으며, 이에 한정되지 않는다.
슬래이브(160)는 시스템 온 칩(100)의 외부에 연결되는 반도체 장치일 수 있다. 하지만, 슬래이브(160)는 시스템 온 칩(100)의 내부에 형성되는 기능 블록(Intellectual Property, 이하 IP)일 수 있으며, 이에 한정되는 것은 아니다.
슬래이브(160)는 인터페이스(150)로부터 입력받은 접근요청에 따라 단위 동작을 수행하고, 인터럽트를 인터페이스(150)를 통해 스케줄러(140)으로 전송할 수 있다.
슬래이브(160)는 시스템 온 칩(100)의 내부의 인터페이스(150)를 통해서 시스템 온 칩(100)과 통신을 수행할 수 있다.
도 2는 도 1에 도시된 스케줄러(140)의 일 실시예를 나타내는 블록도이다.
도 2를 참조하면, 스케줄러(140)는 제1 레지스터(141-1), 제2 레지스터(142-1), 제1 다운카운터(141-2), 제2 다운카운터(142-2), 비교기(143) 및 컨트롤러(144)를 포함할 수 있다.
복수의 레지스터들(141-1, 142-1)과 복수의 다운카운터들(141-2, 142-2)의 수는 복수의 마스터들(110, 120)의 수에 대응할 수 있다.
복수의 레지스터들(141-1, 142-1)은 복수의 마스터들(110, 120)로부터 수신한 접근요청들이 세팅되는 저장장치 또는 버퍼(Buffer)일 수 있다.
예컨대, 제1 레지스터(141-1)에는 제1 마스터(110)로부터 수신한 접근요청이 세팅될 수 있고, 제2 레지스터(142-1)에는 제2 마스터(120)로부터 수신한 접근요청이 세팅될 수 있다.
이하, 입력받은 접근요청이 레지스터에 저장되는 동작을 레지스터 세팅이라한다.
접근요청은 스타트 비트, 세팅 데이터 및 크리티컬 시간 바운더리(CTB)를 포함할 수 있으며, 레지스터는 스타트 비트, 세팅 데이터 및 크리티컬 시간 바운더리(CTB)에 상응하는 데이터를 저장할 수 있다.
스타트 비트는 접근요청의 레지스터 세팅 여부를 나타내는 1 비트의 정보로서, 예컨대 1 또는 0일 수 있다. 따라서, 스타트 비트가 1인 경우에 레지스터 세팅이 수행 될 수 있다.
세팅 데이터는 복수의 마스터들(110, 120) 중 어느하나가 요청한 슬래이브(160)의 동작에 대한 내용을 포함하는 데이터 일 수 있다. 예컨대, 슬래이브(160)가 PMIC일 경우, 세팅 데이터에는 요청한 마스터에 대한 정보, 요청된 전원 공급에 대한 정보 등이 포함될수 있다.
크리티컬 시간 바운더리(CTB)는 복수의 마스터들(110, 120)이 요청한 슬래이브(160)의 동작이 수행되기 까지의 최대 대기 시간에 대한 데이터 일 수 있다. 예컨대, 제1 마스터(110)가 PMIC에 전력 공급을 요청하고, 전력 공급을 받을 때까지 40μs의 시간을 기다릴 수 있다고 할 때, 제1 마스터(110)가 전송한 접근요청에 포함된 크리티컬 시간 바운더리(CTB)는 40μs에 상응하는 정보를 포함할 수 있다.
다만, 본 발명은 이에 한정되는 것은 아니며, 크리티컬 시간 바운더리(CTB)는 레지스터에 이미 저장된 데이터일 수 있다.
컨트롤러(144)는 복수의 레지스터들(141-1, 142-1)로부터 크리티컬 시간 바운더리(CTB)를 수신하여 복수의 시간한계 값들을 설정할 수 있다.
복수의 시간한계 값들 각각은 복수의 마스터들(110, 120)의 크리티컬 시간 바운더리(CTB)들 각각에 상응하는 값일 수 있다.
상술한 바와 같이 복수의 마스터들(110, 120) 중 어느 하나의 접근요청에 따른 슬래이브의 동작을 단위 동작이라고 하고, 단위 동작이 수행되는 시간을 단위 동작 시간이라 할 수 있다. 예컨대, 접근요청에 따른 PMIC의 동작에 걸리는 시간이 20μs인 경우, 단위 동작 시간은 20μs일 수 있다.
단위 동작 시간은 시스템 설계시 기 설정된 값이거나, 컨트롤러(144)에 의해 설정된 값일 수 있으며, 본 발명은 이에 한정되지 않는다.
컨트롤러(144)는 복수의 시간한계 값들을 설정하기 위해, 먼저, 복수의 레지스터들(141-1, 142-1)로부터 입력받은 복수의 크리티컬 시간 바운더리(CTB)를 단위 동작 시간으로 나눌 수 있다. 예컨대, 제1 레지스터(141-1)에 저장된 CTB가 40μs이고, 제2 레지스터(142-1)에 저장된 CTB가 110μs이면, 단위 동작 시간인 20μs로 나누어서, 각각 2, 5.5를 계산해낼 수 있다.
그 다음, 컨트롤러(144)는 결과 값(2, 5.5)보다 작지 않은 최소의 정수를 시간 한계 값으로 설정 할 수 있다. 예컨대, 2보다 작지 않은 최소의 정수인 2를, 5.5보다 작지 않은 최소의 정수는 6을 각각 시간한계 값으로 설정 할 수 있다.
컨트롤러(144)는 설정된 시간한계 값들에 기초하여 시스템이 운영전제조건에 만족하는지 여부를 판단할 수 있다. 이때 운영전제조건이란, 주기적 특성을 갖는 복수의 마스터들(110, 120)이 해당 주기를 가지고 복수회에 걸쳐 슬래이브(160)으로 통신을 수행할 때, 복수의 마스터들(110, 120)의 동작이 시간적으로 겹치지 않도록 하기 위한 전제 조건일 수 있다.
컨트롤러(144)는 0보다 큰 시간한계값들의 역수를 합산하여 1과 비교함으로써 시스템이 운영전제조건을 만족하는지 여부를 판단할 수 있다.
컨트롤러(144)가 복수의 시간한계 값들을 기초로 시스템이 운영전재조건을 만족하는지 여부를 판단하는 동작에 대한 내용은 도 7에 대한 설명에서 상세하게 설명될 것이다.
컨트롤러(144)는, 시스템이 운영전재조건을 만족하지 못하는 경우, 스케줄 제어 불능 메시지(예컨대, 에러 메시지)를 복수의 마스터들(110, 120)으로 전송할 수 있다.
시스템이 운영전재조건을 만족하는 경우, 컨트롤러(144)는 복수의 다운카운터들(141-2, 142-2)로 복수의 시간한계 값들을 전송할 수 있다.
컨트롤러(144)는 비교기(143)로부터 입력받은 0보다 큰 최소 시간한계 값을 입력받고, 0보다 큰 최소 시간한계 값에 해당하는 접근요청을 선택할 수 있다. 예컨대, 비교기(144)로부터 입력받은 최소 시간한계 값이 2인 경우, 시간한계 값이 2인 접근요청을 선택 할 수 있다.
0보다 큰 최소 시간한계 값이 하나일 경우, 컨트롤러(144)는 0보다 큰 최소 한계값에 해당하는 접근요청을 바로 선택할 수 있다.
반면, 0보다 큰 최소 시간한계 값이 둘 이상일 경우, 임의로 어느 하나를 선택하는 방법 또는 우선순위 값을 설정하여 선택하는 방법 등의 방법으로 하나를 선택할 수 있다.
컨트롤러(144)가 최소 시간한계 값에 해당하는 접근요청을 선택하는 동작에 대한 내용은 도 8에 대한 설명에서 상세하게 설명될 것이다.
컨트롤러(144)는 컨트롤러(144)가 선택한 접근요청이 저장된 레지스터로부터 세팅 데이터를 입력받아, 인터페이스(150)을 통해 슬래이브(160)으로 전달할 수 있다.
또한, 컨트롤러(144)는 복수의 다운카운터들(141-2, 142-2)에 저장된 시간한계 값들을 변경하기 위하여, 제어신호들을 복수의 다운카운터들(141-2, 142-2)로 출력할 수 있다.
제어신호들은 리셋신호(Rst), 카운팅 펄스(Counting Pulse) 및 비교신호(C_sig)를 포함할 수 있다.
컨트롤러(144)는 선택된 접근요청에 상응하는 시간한계 값을 저장하는 다운카운터로 리셋신호(Rst)를 출력할 수 있다. 동시에, 컨트롤러(144)는 상기 리셋신호(Rst)를 출력하지 않은 하나 이상의 다운카운터들로 카운팅 펄스(Counting Pulse)를 출력할 수 있다.
제1 다운카운터(141-2) 및 제2 다운카운터(142-2)는 n 비트(n은 1이상의 정수)의 비트의 카운터일수 있다. 예컨대, 제1 다운카운터(141-2) 및 제2 다운카운터(142-2)는 3비트의 카운터 일 수 있다.
제1 다운카운터(141-2) 및 제2 다운카운터(142-2)는 컨트롤러(144)로부터 수신한 시간한계 값들을 저장할 수 있다. 예컨대, 제1 다운카운터(141-2)가 2인 시간한계 값을 수신한 경우, 2진수인 "010"을 저장할 수 있고, 제2 다운카운터(142-2)가 6인 시간한계 값을 수신한 경우, 2진수인 "110"을 저장할 수 있다.
제1 다운카운터(141-2) 및 제2 다운카운터(142-2)는 카운팅 펄스(Counting Pulse)가 입력될 때마다 저장된 비트에 상응하는 숫자를 1씩 감소하도록 저장된 시간한계 값을 변경함으로써 다운 카운팅할 수 있다. 예컨대, "010"을 저장한 제1 다운카운터(141-2)가 카운팅 펄스(Counting Pulse)를 입력받으면, 1을 나타내는 "001"로 다운카운팅 할 수 있다.
제1 다운카운터(141-2) 및 제2 다운카운터(142-2)는 리셋신호(Rst)를 수신하면 저장된 시간한계 값을 리셋값으로 변경할 수 있다. 예컨대, 제1 다운카운터(141-2)는 리셋신호(Rst)를 수신하면 저장된 시간한계 값을 리셋값인 "000"으로 변경할 수 있다.
제1 다운카운터(141-2) 및 제2 다운카운터(142-2)는 컨트롤러(144)로부터 비교신호(C_sig)를 수신하는 경우, 저장된 시간한계 값을 비교기(143)으로 출력할 수 있다.
비교기(143)은 제1 다운카운터(141-2) 및 제2 다운카운터(142-2)로부터 입력받은 0보다 큰 시간한계 값들을 비교하여, 0보다 큰 최소 시간한계 값을 컨트롤러(144)으로 출력할 수 있다.
도 3A는 본 발명의 비교예에 따른 스케줄링 방법을 나타내는 타이밍도이다. 도 3B는 본 발명의 실시예들에 따른 스케줄링 방법을 나타내는 타이밍도이다.
도 3A를 참조하면, 본 발명의 비교예에 따른 공유 인터페이스의 스케줄링 방법은 조정(Arbitration)단계, 레지스터 세팅(Register Setting)단계, 동작(Operation)단계, ISB(Instruction Synchroniztion Barrier)단계로 포함할 수 있다.
조정(Arbitration)단계는 상대적으로 짧은 기간동안, 복수개의 마스터들로부터 복수개의 접근요청들을 수신하고, 복수개의 접근요청들 중 어떤 접근요청에 따른 동작을 수행할지 선택하는 단계이다. 예컨대, 가장 먼저 수신한 접근요청이 선택되어 그에 따른 동작시 수행될 수 있다.
레지스터 세팅(Register Setting)단계는 조정단계에서 선택된 접근요청에 포함된 데이터들을 레지스터에 저장하는 단계이다.
동작(Operation)단계는 접근요청에 따라 슬래이브가 동작을 수행하는 단계이다. 예컨대, 슬래이브는 동작을 완료하고 인터럽트(Interrupt)를 인터페이스를 통해 마스터로 전달할 수 있다.
ISB(Instruction Synchroniztion Barrier)단계는 슬래이브(160)의 동작이 수행되고 난뒤에 레지스터에 저장된 데이터를 제거하고, 다음 접근요청에 따른 데이터를 저장할 준비를 하는 단계이다.
도시된 바에 따르면, 첫번째 마스터의 접근요청에 따라 단위 동작이 수행되는 동안, 두번째 마스터의 접근요청에 따른 단위 동작은 대기될 수 있다.
도 3A에 도시된 본 발명의 비교예에 따르면, 접근요청이 세팅되는 레지스터가 한 개이므로 한 개의 레지스터에 데이터가 저장되었다가 삭제되는 과정이 반복되어 대기시간이 길어지게된다.
두번째 마스터의 대기시간이 길어지게 되면, 마스터들의 크리티컬 타임 바운더리를 만족시키기 어려워지게 되고, 따라서, 실시간 공유 인터페이스의 구현이 어려워진다.
도 3B를 참조하면, 본 발명의 실시예에 따른 실시간 공유 인터페이스의 스케줄링 방법은 레지스터 세팅(Register Setting)단계, 동작(Operation)단계, ISB(Instruction Synchroniztion Barrier)단계를 포함할 수 있다.
접근요청이 세팅되는 레지스터들의 수가 복수개의 마스터들의 수와 상응할 수 있다. 예컨대, 레지스터 각각은 복수의 마스터들 각각에 일대일로 대응될 수 있다. 이에 따라,복수의 레지스터 세팅 단계가 동시에 또는 병렬로 이뤄지게 됨으로써 두번째 마스터의 대기시간이 짧아지게된다.
두번째 마스터의 대기시간이 짧아지게 되면, 마스터들의 크리티컬 타임 바운더리를 만족시키기 쉽다. 또한, 복수 개의 레지스터들에 세팅된 접근요청을 시간 한계값에 따라 순차적으로 스케줄링함으로써 마스터들의 크리티컬 타임 바운더리를 만족시킬 수 있다. 따라서, 실시간 공유 인터페이스의 구현이 가능해진다.
도 4은 본 발명의 실시예들에 따른 스케줄링 기능을 구비하는 시스템 온 칩(100)에 포함되는 마스터(110 또는 120)의 동작 방법을 나타내는 순서도이다.
도 4을 참조하면, 복수의 마스터들(110, 120)은 슬래이브(160)에 접근하기 위한 접근요청들을 스케줄러(140)으로 전달할 수 있다.
여기서, 설명의 편의를 위해서 제1 마스터(110)의 동작이 설명될 것이다. 하지만, 제2 마스터(120)도 아래의 설명과 동일하게 동작할 수 있다.
S110 단계에서, 제1 마스터(110)는 슬래이브(160)를 접근하기 위한 접근요청을 버스 매트릭스(130)을 통해 스케줄러(140)로 전송할 수 있다.
S120 단계에서, 제1 마스터(110)는 슬래이브(160)가 스케줄러(140)을 통해 전송한 인터럽트(Interrupt)의 수신 여부를 체크한다.
제1 마스터(110)의 접근요청에 따른 단위 동작이 완료되면, 슬래이브(160)는 제 1 마스터(110)로 인터럽트(Interrupt)를 전송할 수 있다.
제 1 마스터(110)는 이때 전송된 인터럽트(Interrupt)를 모니터링하고 검출할 수 있다.
S130 단계에서, 제 1 마스터(110)는 슬래이브(160)로부터의 인터럽트의 수신 여부에 따라 동작 분기를 실시한다.
제 1 마스터(110)가 슬래이브(160)로부터의 인터럽트(Interrupt)를 수신한 경우, 절차는 S120 단계로 복귀한다.
반면, 제 1 마스터(110)에 의해서 슬래이브(160)로부터의 인터럽트가 수신되는 경우, 절차는 S140 단계로 이동할 수 있다.
S140 단계에서, 제 1 마스터(110)는 추가적인 접근요청이 존재하는지 검출할 수 있다.
추가적인 접근요청이 존재하는 경우, 절차는 S110 단계로 이동할 수 있다.
반면, 추가적인 접근요청이 존재하지 않는 경우, 절차는 종료될 수 있다.
상술한 바와 같이, 복수의 마스터들(110, 120)은, 스케줄링에 대한 고려없이, 스케줄러(140)에 접근요청을 전달하기만 하면 된다.
따라서, 실시간 인터페이스(150)를 공유하는 복수의 마스터들(110, 120)은 소프트웨어 레벨에서 스케줄링을 고려할 필요가 없다,
도 5는 본 발명의 실시예들에 따른 도 1에 도시된 스케줄러(140)의 동작 방법을 나타내는 순서도이다.
이하에서, 도 1에 도시된 바와 같이 복수의 마스터들(110, 120)은 2개인 것으로 가정하고 설명하나, 발명의 실시예가 이에 한정되는 것은 아니다.
도 5를 참조하면, S210 단계에서 스케줄러(140)는 복수의 마스터들(110, 120)의 복수의 접근요청들을 수신할 수 있다.
S220 단계에서, 스케줄러(140)가 수신한 복수의 접근요청들은 복수의 레지스터들(141, 142)에 각각 세팅될 수 있다.
S230 단계에서, 복수의 마스터들(110, 120)의 시간 한계 값들 이 복수의 레지스터들(141, 142)에 저장된 크리티컬 시간 바운더리(CTB)를 기초로 설정될 수 있다.
또한, 상술한바와 같이 설정된 시간한계 값들은 복수개의 다운카운터들(141-2, 141-2)에 저장될 수 있다.
시간한계 값들은, 복수의 마스터들이 공유하는 실시간 인터페이스가 운영되는 경우 각각의 마스터들의 동작이 수행되기 까지 허용 가능한 최대 대기시간, 즉 크리티컬 시간 바운더리(CTB)에 상응하는 값을 의미할 수 있다.
크리티컬 시간 바운더리(CTB)는 마스터의 특성에 따라 설계당시에 결정될 수 있다.
마스터의 크리티컬 시간 바운더리(CTB)를 단위 동작 시간으로 나눠줌으로써, 0보다 큰 시간한계 값이 설정될 수 있다.
S240 단계에서, 시스템이 운영전제조건에 만족하는지 여부가 설정된 시간한계 값들을 기초로 판단될 수 있다.
스케줄러(140)에 구현된 컨트롤러(144)는 시스템이 운영전제조건에 만족하는지 여부에 따라, 동작 분기를 실시한다.
시스템이 운영전제조건에 만족하지 않는 경우, 절차는 S255 단계로 이동하고, 컨트롤러(144)는 복수의 마스터들(110, 120)로 스케줄 제어 불능 메시지(예컨대, 에러 메시지)를 전송할 수 있다.
반면, 시스템이 운영전제조건에 만족하는 경우, 절차는 S260 단계로 이동한다.
S260 단계에서, 스케줄러(140)에 구현된 컨트롤러(144)는 0보다 큰 최소 시간한계 값에 해당하는 접근요청을 선택할 수 있다.
0보다 큰 최소 시간한계 값이 하나일 경우, 0보다 큰 최소 한계값에 해당하는 접근요청을 바로 선택할 수 있다.
하지만, 0보다 큰 최소 시간한계 값이 둘 이상일 경우, 임의로 어느 하나를 선택하는 방법 또는 우선순위 값을 설정하여 선택하는 방법 등의 방법으로 하나를 선택할 수 있다.
S270 단계에서, 스케줄러(140)에 구현된 컨트롤러(144)는 선택된 접근요청이 세팅된 레지스터로부터 세팅 데이터를 인터페이스(150)으로 전달할 수 있다.
S280 단계에서, 시간한계 값들은 변경될 수 있다. 상술한 바와 같이 복수의 다운카운터(141-2, 142-2)에 저장된 시간한계 값들은 컨트롤러(144)로부터 출력되는 제어신호들(예컨대, 리셋신호(Rst), 카운팅 펄스(Counting Pulse))에 따라 변경할 수 있다.
예컨대, 제1 레지스터(141)에 세팅된 접근요청이 선택된 경우, 스케줄러(140)에 구현된 컨트롤러(144)는 제1 다운카운터(141-2)로 리셋신호(Rst)를 출력할 수 있다. 이에 따라, 제1 다운카운터(141-2)에 저장된 시간한계 값은 0으로 변경된다.
또한, 컨트롤러(144)는 선택되지 않은 접근요청들(예컨대, 제2 레지스터(142)에 세팅된 접근요청)의 시간한계 값을 1만큼 감소시키기 위하여, 제2 다운카운터(142-2)에 카운팅 펄스(Counting Pulse)를 출력할 수 있다. 이에 따라, 제2 다운카운터(142-2)에 저장된 시간한계 값은 1만큼 감소된다.
S290 단계에서, 스케줄러(140)에 구현된 컨트롤러(144)는 모든 변경된 시간한계 값들이 0인지 여부를 판단할 수 있다.
모든 변경된 시간한계 값들이 0인 경우, 즉, 복수의 마스터들(110, 120)의 접근요청에 따른 단위 동작이 모두 수행된 경우, 절차는 종료된다.
반면에 모든 변경된 시간 한계값들이 0인 경우가 아닌 경우, 즉, 더 수행될 단위 동작이 있는 경우, 절차는 S240으로 이동한다. 이 경우, 복수의 마스터들(110, 120)의 접근요청에 따른 단위 동작이 모두 수행될 때까지 절차들(S240 내지 S290)이 반복될 수 있다.
도 6은 본 발명의 실시 예들에 따른 스케줄러(140)의 시간한계 값을 설정하는 동작 방법을 상세하게 나타내는 순서도이다.
복수의 마스터들(110, 120) 중 어느 하나의 접근요청에 따른 슬래이브의 동작을 단위 동작이라고 하고, 단위 동작이 수행되는 시간을 단위 동작 시간이라 할 수 있다. 예컨대, 접근요청에 따른 PMIC의 동작에 걸리는 시간이 20μs인 경우, 단위 동작 시간은 20μs일 수 있다.
단위 동작 시간은 시스템 설계시 기 설정된 값이거나, 컨트롤러(144)에 의해 설정된 값일 수 있으며, 본 발명은 이에 한정되지 않는다.
도 6을 참조하면, S310 단계에서, 스케줄러(140)에 구현된 컨트롤러(144)는 복수의 시간한계 값들을 설정하기 위해, 먼저, 복수의 레지스터들(141-1, 142-1)로부터 입력받은 복수의 크리티컬 시간 바운더리(CTB)를 단위 동작 시간으로 나눌 수 있다. 예컨대, 제1 레지스터(141-1)에 저장된 CTB가 40μs이고, 제2 레지스터(142-1)에 저장된 CTB가 110μs이면, 단위 동작 시간인 20μs로 나누어서, 각각 2, 5.5를 계산해낼 수 있다.
S320 단계에서, 컨트롤러(144)는 결과 값(2, 5.5)보다 작지 않은 최소의 정수를 시간 한계 값으로 설정 할 수 있다. 예컨대, 2보다 작지 않은 최소의 정수인 2를, 5.5보다 작지 않은 최소의 정수는 6을 각각 시간한계 값으로 설정 할 수 있다.
도 7은 본 발명의 실시 예들에 따른 스케줄러(140)의 운영전제조건에 만족 여부를 판단하는 동작 방법을 상세하게 나타내는 순서도이다.
스케줄러(140)에 구현된 컨트롤러(144)는 시스템이 운영전제조건에 만족하는지 여부를 판단할 수 있다.
도 7을 참조하면, S410 단계에서, 컨트롤러(144)는 복수의 다운카운터들(141-2, 142-2)에 저장된 0보다 큰 시간한계 값들을 역수로 변환하고 합산할 수 있다. 예컨대, 제1 다운카운터(141-2)에 저장된 접근요청의 시간한계 값이 3이고, 제2 다운카운터(142-2)에 세팅된 접근요청의 시간한계 값이 5인 경우, 컨트롤러(144)는 각 시간한계 값을 역수로 변환하고(1/3, 1/5), 이를 합산할 수 있다.(1/3+1/5=8/15=0.5333…)
S420 단계에서, 컨트롤러(144)는 합산값이 1보다 작거나 같은지 여부를 판단할 수 있다. 예컨대, 합산값이 0.5333…인경우, 스케줄러(140)는 1보다 작거나 같다고 판단할수 있고, 합산값이 1.3333…인경우, 스케줄러(140)는 1보다 크다고 판단할 수 있다.
도 8은 본 발명의 실시 예들에 따른 스케줄러(140)의 접근요청을 선택하는 동작 방법을 상세하게 나타내는 순서도이다.
도 8을 참조하면, S510 단계에서, 스케줄러(140)에 구현된 비교기(143)는 복수의 다운카운터들(141-2, 142-2)로부터 수신한 시간한계값들을 비교하여 0보다 큰 최소 시간한계 값을 컨트롤러(144)로 전송할 수 있다.
S520 단계에서, 스케줄러(140)에 구현된 컨트롤러(144)는 0보다 큰 최소 시간한계 값에 해당하는 접근요청이 둘 이상인지 여부를 판단할 수 있다.
만약, 0보다 큰 최소 시간한계 값에 해당하는 접근요청이 둘 이상인 경우, 절차는 S530 단계로 이동한다.
S530 단계에서, 컨트롤러(144)는 복수의 접근요청들 각각에 상응하는 우선순위 값들을 설정할 수 있다. 우선순위 값들은 복수의 레지스터들(141-1, 142-1) 또는 별도의 레지스터(미도시)에 저장될 수 있다. 우선순위 값들은 기 설정된 값일 수 있으며 본 발명은 이에 한정되지 아니한다.
S540 단계에서, 컨트롤러(144)는 0보다 큰 최소 시간한계 값에 해당하는 접근요청들 중에서 최소 우선순위 값에 해당하는 접근요청을 선택할 수 있다.
반면에, 0보다 큰 최소 시간한계 값에 해당하는 접근요청이 하나인 경우, 절차는 S550 단계로 이동한다.
S550 단계에서, 컨트롤러(144)는 0보다 큰 최소 시간한계 값에 해당하는 접근요청을 선택할 수 있다.
예컨대, 제1 마스터(110)의 접근요청의 시간한계 값이 3이고, 제2 마스터(120)에 세팅된 접근요청의 시간한계 값이 3인 경우, 컨트롤러(144)는 제1 레지스터(141-1)에 저장된 접근요청에 0인 우선순위 값을 설정하고, 제2 레지스터(142-1)에 저장된 접근요청에 1인 우선순위 값을 설정하여, 최소 우선순위 값에 해당하는 제1 레지스터(141-1)에 저장된 접근요청을 선택할 수 있다.
반면에, 제1 마스터(110)의 접근요청의 시간한계 값이 2이고, 제2 마스터(120)에 세팅된 접근요청의 시간한계 값이 3인 경우, 컨트롤러(144)는 최소 시간한계 값에 해당하는 제1 레지스터(141-1)에 저장된 접근요청을 선택할 수 있다.
본 발명의 스케줄러(140)이 접근요청을 선택하는 동작은 상술한 설명에 의해 제한되지 않으며 다양한 방법으로 동작될 수 있다. 예컨대, 컨트롤러(144)는 하나 이상의 0이아닌 최소 시간한계 값에 해당하는 접근요청들 중 하나를 임의로 선택 할 수 있다.
도 9은 본 발명의 실시 예들에 따른 스케줄러(140)의 시간한계 값을 변경하는 동작 방법을 상세하게 나타내는 순서도이다.
구체적으로, 스케줄러(140)에 구현된 컨트롤러(144)는 복수의 다운카운터들(141-2, 142-2)로 시간한계 값들을 변경하기 위하여 제어신호들(예컨대, 리셋신호(Rst), 카운팅 펄스(Counting Pulse))을 전송할 수 있다.
복수의 다운카운터(141-2, 142-2)에 저장된 시간한계 값들은 컨트롤러(144)로부터 출력되는 제어신호들(예컨대, 리셋신호(Rst), 카운팅 펄스(Counting Pulse))에 따라 변경할 수 있다.
도 9를 참조하면, S610 단계에서, 스케줄러(140)에 구현된 컨트롤러(144)는 선택된 접근요청의 시간한계 값을 저장하는 다운카운터로 리셋신호(Rst)를 출력할 수 있다. 이에 따라, 리셋신호(Rst)를 수신한 다운카운터에 저장된 시간한계 값은 0으로 변경될 수 있다. 예컨대, 제1 레지스터(141)에 세팅된 접근요청이 선택된 경우, 스케줄러(140)에 구현된 컨트롤러(144)는 제1 다운카운터(141-2)로 리셋신호(Rst)를 출력할 수 있고, 제1 다운카운터(141-2)에 저장된 시간한계 값은 0으로 변경될 수 있다.
S620 단계에서, 컨트롤러(144)는 선택되지 않은 접근요청들(예컨대, 제2 레지스터(142)에 세팅된 접근요청)의 시간한계 값을 1만큼 감소시키기 위하여, 제2 다운카운터(142-2)에 카운팅 펄스(Counting Pulse)를 출력할 수 있다. 이에 따라, 카운팅 펄스(Counting Pulse)를 수신한 다운카운터에 저장된 시간한계 값은 1만큼 감소될 수 있다. 예컨대, 제1 레지스터(141)에 세팅된 접근요청이 선택된 경우, 스케줄러(140)에 구현된 컨트롤러(144)는 제2 다운카운터(142-2)로 리셋신호(Rst)를 출력할 수 있고, 제2 다운카운터(142-2)에 저장된 시간한계 값은 1만큼 감소될 수 있다.
본 발명의 실시예에 따라, 도 6에 도시된 순서도에서는 S610 단계, S620 단계 순서로 도시되었으나, 본 발명은 이제 제한되지 않으며, 스케줄러(140)는 S610 단계 보다, S620 단계를 먼저 수행할수 있고, 또는 동시에 수행할 수 있다.
도 10은 본 발명의 실시 예들에 따른 스케줄링 방법을 설명하기 위한 도면이다.
여기서, 설명의 편의를 위해서 제1 마스터(110)의 동작이 설명될 것이다. 하지만, 제2 마스터(120)도 아래의 설명과 동일하게 동작할 수 있다.
도 10을 참조하면, 제1 마스터(110), 스케줄러(140), 인터페이스(150, I/F), 그리고 슬래이브(160) 간의 상호 동작이 순차적으로 도시되어 있다.
제 1 마스터(110)는 슬래이브(160)의 특정 동작을 지시하기 위해 버스 매트릭스를 통해 스케줄러(140)로 접근요청을 전송할 수 있다.
스케줄러(140)에 전송된 접근요청은 레지스터들에 저장(레지스터 세팅)될 수 있다.
스케줄러(140)는 레지스터에 저장된 크리티컬 시간 바운더리(CTB)를 기초로 시간한계 값들을 설정할 수 있다.
스케줄러(140)는 설정된 시간한계 값들을 기초로 시스템이 운영전제조건을 만족하는지 여부를 판단할 수 있다.
시스템이 운영전제조건을 만족하지 못하는 경우, 제1 마스터(110)으로 스케줄 제어 불능 메시지를 전송할 수 있다. 본 도면에는 제1 마스터(110)으로만 전송하는 것으로 도시되어 있으나, 도시되지 않은 복수의 마스터들(예컨대, 제2 마스터(120))으로 스케줄 제어 불능 메시지를 전송할 수 있다.
시스템이 운영전제조건을 만족하는 경우, 스케줄러(140)는 0보다 큰 최소 시간한계 값을 갖는 접근요청을 선택할 수 있다.
스케줄러(140)는 선택한 접근요청의 세팅 데이터를 레지스터로부터 인터페이스(150)로 전달할수 있다.
인터페이스(150)은 전달받은 세팅 데이터를 슬래이브(160)으로 전송하고, 인터럽트를 수신할 수 있다.
인터페이스(150)는 수신한 인터럽트를 스케줄러(140)을 경유하여 제1 마스터(110)으로 전송할 수 있다.
스케줄러(140)는 시간한계 값들을 변경할 수 있다.
스케줄러(140)는 모든 시간한계 값이 0인지 판단하고, 모든 시간한계 값이 0인 경우가 아닌 경우, 다시 시스템이 운영전제조건을 만족하는지 여부를 판단하는 단계로 돌아갈 수 있다. 이 과정은 모든 접근요청들이 수행될 때까지 계속될 수 있다.
도 11은 본 발명의 실시예들에 따른 시스템 온 칩(400)을 나타내는 블록도이다.
도 11을 참조하면, 본 발명의 시스템 온 칩(400)은 복수의 마스터들에 대응하는 복수의 프로세서들(410, 415, 420), 버스 매트릭스(430), 복수의 프로세서들(410, 415, 420) 의 접근요청들을 스케줄링하는 스케줄러(440), 인터페이스(450) 및 그리고 복수의 프로세서들(410, 415, 420)을 마스터로 하는 슬래이브(460)을 포함 할 수 있다.
복수의 프로세서들(410, 415, 420)은 스케줄링에 대한 고려없이 슬래이브(460)로의 접근요청을 버스 매트릭스(430)를 통하여 스케줄러(440)로 전송할 수 있다.
스케줄러(440)는 복수의 프로세서들(410, 415, 420) 각각의 접근요청들이 저장되는 레지스터들(441, 442, 443)을 포함할 수 있다.
도시되지 않았지만, 스케줄러(440)는 도 2에 도시된 바와 같이 컨트롤러, 복수의 다운카운터들, 비교기를 포함할 수 있다.
복수의 레지스터들(441, 442, 443) 각각은 대응하는 복수의 프로세서들(410, 420, 430) 각각의 접근요청을 스케줄러(440)의 제어에 따라 인터페이스(450)에 전달한다.
인터페이스(450)는 복수의 접근요청들이 슬래이브(460)로 전달되는 경로가 될 수 있다.
스케줄러(440)은 복수의 프로세서들(410, 415, 420)의 접근요청에 따른 슬래이브(460)의 동작, 즉, 단위 동작을 단위로 하여 스케줄링 할 수 있다..
도 12A 및 12B는 본 발명의 실시 예들에 따른 복수의 마스터들이 스케줄링 방법에 따라 동작하는 과정을 나타내는 도면이다.
아래에서, 도 11에 도시된 시스템 온 칩(400)이 5개의 마스터들을 포함하는 것으로 가정하여 구체적으로 설명한다.
도 12A 및 12B를 참조하면, 5개의 마스터들이 1개의 실시간 인터페이스를 공유하는 경우, 복수의 마스터들의 단위 동작들이 스케줄링 되는 과정을 알 수 있다.
먼저, 5개의 마스터들(마스터 0 - 4)이 스케줄러(440)로 접근요청들을 전송하면, 스케줄러(440)는 5개의 마스터들에 상응하는 5개의 레지스터들 각각에 저장하고(레지스터 세팅), 전송요청에 포함된 크리티컬 시간 바운더리(CTB)에 기초하여 시간한계 값들을 설정할 수 있다.
설정된 시간한계 값들은 5개의 마스터들에 상응하는 5개의 다운카운터들에 저장될 수 있다.
도시된 표의 첫번째 열은 동작중인 마스터를 나타내고, 두번째 열은 동작 순서를 나타낸다. 세번째 열부터 일곱번째 열은 각 마스터들에 상응하는 다운카운터에 저장된 시간한계 값들이 동작순서에 따라 변화는 과정을 나타낸다.
도시된 바와같이, 본 발명의 실시예들에 따라, 동작 순서 0에서, 5개의 다운카운터들은 접근요청이 없으므로 저장된 값 0일 수 있다.
동작순서 1에서, 마스터 0은 10, 마스터 1은 20, 마스터 2는 3, 마스터 3은 3, 마스터 4는 6으로 각각 시간한계값들이 설정될 수 있다.
먼저, 스케줄러(440)는 설정된 시간한계 값들을 기초로 시스템이 운영전제조건에 만족하는지 여부를 판단할 수 있다. 도시된 바와 같이, 시간한계 값들의 역수의 합은 1/10 + 1/20 + 1/3 + 1/3 + 1/6 = 0.984…으로 계산되며, 스케줄러(140)는 이 값은 1보다 작은 값이므로 시스템이 운영전제조건을 만족한다고 판단할 수 있다.
스케줄러(440)는 최소 시간한계 값에 해당하는 접근요청을 선택할 수 있다. 도시된 바와 같이, 스케줄러(440)는 0보다 큰 최소 시간한계 값이 3이고 2개 이상이기 때문에, 우선순위 값을 설정할 수 있다.
도 12B에 도시된 바와 같이, 본 발명의 실시 예들에 따라, 마스터 0은 4, 마스터 1은 2, 마스터 2는 0, 마스터 3은 1, 마스터 4는 3으로 각각 우선순위 값들이 설정될 수 있다.
스케줄러(440)는 0보다 큰 최소 시간한계 값의 접근요청들 가운데 우선순위 값이 제일 낮은 마스터 2의 접근요청을 선택할 수 있다.
따라서, 마스터 2의 접근요청에 포함된 세팅 데이터가 인터페이스(450)을 통해 슬래이브(460)으로 전송될 수 있다. 즉, 동작순서 1에서, 마스터 2의 접근요청에 따라 슬래이브(460)가 단위 동작할 수 있다.
스케줄러(440)는 모든 시간한계 값들을 변경할 수 있다. 스케줄러(440)는 선택된 접근요청의 시간한계값은 0으로, 선택되지 않은 접근요청들의 시간한계 값은 1씩 감소시킬 수 있다. 도시된 바와 같이, 선택된 접근요청인 마스터 2의 시간한계 값은 0으로, 마스터 0의 시간한계 값은 9로, 마스터 1의 시간한계 값은 19로, 마스터 3의 시간한계 값은 2로, 마스터 4의 시간한계 값은 5로 변결될 수 있다.
스케줄러(440)는 모든 시간한계값이 0인지 여부를 판단할 수 있다. 도시된 바와 같이, 마스터 2를 제외한 마스터들의 접근요청의 시간한계 값이 0이 아니므로, 스케줄러(440)는 0이 시간한계 값들(9, 19, 2, 5)을 기초로 시스템이 운영전제조건을 만족하는지 여부를 판단할 수 있다.
이후에는 상기 설명된 과정을 반복하며 복수의 마스터들의 접근요청에 따른 단위 동작들을 수행할 수 있다.
상술한 스케줄링 방법에 따르면, 도시된 바와 같이 슬래이브(460)의 단위 동작은 마스터 2, 3, 4, 2, 3, 0, 2, 3, 4, 2, 3, 1, 2, 3, 4, 2, 3, 0, 2, 3, 4, 2,… 의 순서로 수행될 수 있다.
100: 시스템 온 칩
110: 제1 마스터
120: 제2 마스터
130: 버스 매트릭스
140: 스케줄러
150: 인터페이스
160: 슬래이브
141-1: 제1 레지스터
141-2: 제1 다운카운터
142-1: 제2 레지스터
142-2: 제2 다운카운터
143: 비교기
144: 컨트롤러

Claims (10)

  1. 복수의 마스터들과 슬래이브 사이에 위치한 스케줄러의 스케줄링 방법에 있어서,
    상기 복수의 마스터들로부터 복수의 접근요청들을 수신하는 단계;
    상기 복수의 접근요청들을 복수의 레지스터들에 세팅하는 단계; 및
    상기 복수의 접근요청들을 기초로 상기 복수의 접근요청들을 스케줄링하는 단계를 포함하고,
    상기 복수의 접근요청들을 스케줄링하는 단계는,
    상기 복수의 접근요청들에 기초하여, 복수의 시간한계 값들을 설정하는 단계;
    상기 복수의 시간한계 값들이 운영전제조건을 만족하는지 판단한 결과에 따라, 스케줄 제어 불능 메시지를 상기 복수의 마스터들로 전송하는 단계를 포함하는 것을 특징으로 하는 스케줄러의 스케줄링 방법.
  2. 제1항에 있어서, 상기 스케줄링 하는 단계는
    상기 복수의 시간한계 값들이 운영전제조건을 만족하는 경우, 상기 복수의 시간한계 값들 중 0보다 큰 최소 시간한계 값에 해당하는 접근요청을 선택하는 단계;
    상기 선택된 접근요청에 포함된 세팅 데이터를 인터페이스로 전송하는 단계; 및
    상기 복수의 시간한계 값들을 변경하는 단계를 더 포함하며,
    상기 인터페이스는 상기 복수의 마스터들에 의해 공유되는 스케줄러의 스케줄링 방법.
  3. 제1항에 있어서,
    상기 스케줄 제어 불능 메시지를 전송하는 단계는,
    상기 복수의 시간한계 값들이 상기 운영전제조건을 만족하지 않는 경우, 스케줄 제어 불능 메시지를 상기 복수의 마스터들로 전송하는 단계를 더 포함하는 스케줄러의 스케줄링 방법.
  4. 제1항에 있어서, 상기 복수의 시간한계 값을 설정하는 단계는
    상기 복수의 접근요청들 각각의 복수의 크리티컬 시간 바운더리를 단위 동작 시간으로 나누어 결과 값을 계산하는 단계; 및
    상기 결과 값보다 작지 않은 정수를 시간한계 값으로 설정하는 단계를 포함하는 스케줄러의 스케줄링 방법.
  5. 제1항에 있어서,
    상기 복수의 시간한계 값들 중 0보다 큰 값들을 역수 값으로 변환하고 합산하고, 상기 합산한 값이 1보다 작거나 같은지 판단함으로써, 상기 운영전제조건을 만족하는지 판단하는 것을 특징으로 하는 스케줄러의 스케줄링 방법.
  6. 제2항에 있어서, 상기 접근요청을 선택하는 단계는
    상기 복수의 시간한계 값들을 서로 비교하는 단계;
    상기 0보다 큰 최소 시간한계 값에 해당하는 상기 접근요청의 개수가 둘 이상인 경우, 상기 복수의 접근요청들 각각의 우선순위 값을 설정하는 단계; 및
    상기 0보다 큰 최소 시간한계 값에 해당하는 상기 접근요청들 중 최소 우선순위 값에 해당하는 접근요청을 선택하는 단계를 포함하는 스케줄러의 스케줄링 방법.
  7. 제6항에 있어서, 상기 접근요청을 선택하는 단계는
    상기 0보다 큰 최소 시간한계 값에 해당하는 상기 접근요청의 개수가 하나인 경우, 상기 0보다 큰 최소 시간한계 값에 해당하는 상기 접근요청을 선택하는 단계를 더 포함하는 스케줄러의 스케줄링 방법.
  8. 제2항에 있어서, 상기 복수의 시간한계 값들을 변경하는 단계는
    상기 선택된 접근요청의 시간한계 값을 0으로 변경하는 단계; 및
    상기 복수의 접근요청들 중 선택되지 않은 접근요청들의 시간한계 값들을 1씩 낮추는 단계를 포함하는 스케줄러의 스케줄링 방법.
  9. 복수의 마스터들, 인터페이스, 슬래이브, 및 스케줄러를 포함하는 시스템 온 칩의 스케줄링 방법에 있어서,
    상기 복수의 마스터들이 상기 슬래이브로 전달될 복수의 접근요청들을 상기 스케줄러으로 전송하는 단계;
    상기 스케줄러가 상기 복수의 마스터들로부터 복수의 접근요청들을 수신하는 단계;
    상기 스케줄러가 상기 복수의 접근요청들을 레지스터 세팅하는 단계;
    상기 스케줄러가 상기 복수의 접근요청들을 기초로 상기 복수의 접근요청들을 스케줄링하는 단계; 및
    상기 복수의 마스터들 중 어느 하나가 상기 슬래이브로부터 전송된 인터럽트를 수신하는 단계를 포함하고,
    상기 스케줄러는 제1 레지스터, 제2 레지스터, 제1 다운카운터, 제2 다운카운터, 비교기, 및 컨트롤러을 포함하고
    상기 스케줄링하는 단계는,
    상기 컨트롤러가 상기 복수의 접근요청들로부터 복수의 시간한계 값들을 각각 설정하고 상기 제1 다운카운터와 제2 다운카운터에 각각 저장하는 단계; 및
    상기 컨트롤러가 상기 복수의 시간한계 값들을 기초로 시스템이 운영전제조건을 만족하는지 판단하는 단계;
    상기 시스템이 상기 운영전제조건을 만족하는 경우, 상기 컨트롤러가 상기 복수의 시간한계 값들 중 0보다 큰 최소의 시간한계 값에 해당하는 접근요청을 선택하는 단계;
    상기 컨트롤러가 상기 선택된 접근요청에 포함된 세팅 데이터를 상기 인터페이스로 전송하는 단계;
    상기 인터페이스가 상기 세팅 데이터를 상기 슬래이브로 전송하고, 상기 슬래이브로부터 수신한 인터럽트를 상기 스케줄러로 전송하는 단계;
    상기 컨트롤러가 상기 인터페이스로부터 수신한 상기 인터럽트를 상기 선택된 접근요청에 해당하는 마스터로 전달하는 단계;
    상기 컨트롤러가 상기 복수의 시간한계 값들을 변경하는 단계; 및
    상기 컨트롤러가 모든 상기 복수의 시간한계 값들이 0인지 판단하는 단계를 포함하고,
    상기 컨트롤러가 모든 상기 복수의 시간한계 값들이 0인 경우가 아닌 경우, 상기 운영전제조건을 판단하는 단계부터 반복해서 수행하는 시스템 온 칩의 스케줄링 방법.
  10. 제9항에 있어서,
    상기 접근 요청을 선택하는 단계는,
    상기 컨트롤러가 비교신호를 상기 제1 다운카운터 및 상기 제2 다운카운터로 전송하는 단계;
    상기 제1 다운카운터 및 상기 제2 다운카운터가 저장된 복수의 시간제한 값들을 상기 비교기로 전송하는 단계;
    상기 비교기는 입력받은 상기 복수의 시간한계 값들을 서로 비교하여, '0'보다 큰 최소 시간한계 값을 상기 컨트롤러로 전송하는 단계; 및
    상기 컨트롤러는 상기 0보다 큰 최소 시간한계 값에 해당하는 상기 접근요청을 선택하는 단계를 포함하는 것을 특징으로 하는 시스템 온 칩의 스케줄링 방법.
KR1020150120438A 2015-08-26 2015-08-26 실시간 공유 인터페이스를 포함하는 시스템 온 칩의 스케쥴링 방법 KR102360214B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150120438A KR102360214B1 (ko) 2015-08-26 2015-08-26 실시간 공유 인터페이스를 포함하는 시스템 온 칩의 스케쥴링 방법
US15/247,366 US10339085B2 (en) 2015-08-26 2016-08-25 Method of scheduling system-on-chip including real-time shared interface
US16/421,269 US10521382B2 (en) 2015-08-26 2019-05-23 Method of scheduling system-on-chip including real-time shared interface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150120438A KR102360214B1 (ko) 2015-08-26 2015-08-26 실시간 공유 인터페이스를 포함하는 시스템 온 칩의 스케쥴링 방법

Publications (2)

Publication Number Publication Date
KR20170024876A KR20170024876A (ko) 2017-03-08
KR102360214B1 true KR102360214B1 (ko) 2022-02-08

Family

ID=58095805

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150120438A KR102360214B1 (ko) 2015-08-26 2015-08-26 실시간 공유 인터페이스를 포함하는 시스템 온 칩의 스케쥴링 방법

Country Status (2)

Country Link
US (2) US10339085B2 (ko)
KR (1) KR102360214B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102285749B1 (ko) * 2014-11-10 2021-08-05 삼성전자주식회사 세마포어 기능을 갖는 시스템 온 칩 및 그것의 세마포어 구현 방법
CN111191179B (zh) * 2019-12-30 2023-11-14 合肥工大高科信息科技股份有限公司 一种ajax异步访问数据调度方法及系统
KR20220135048A (ko) 2021-03-29 2022-10-06 삼성전자주식회사 버스를 통해 자원을 공유하기 위한 장치 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090083741A1 (en) 2007-09-21 2009-03-26 Advanced Micro Devices, Inc. Techniques for Accessing a Resource in a Processor System
KR101426461B1 (ko) 2010-04-14 2014-08-05 퀄컴 인코포레이티드 액세스 레이턴시를 감소시키기 위한 버스 중재 기술들
US20150006226A1 (en) 2013-06-28 2015-01-01 Verizon Patent And Licensing Inc. Method and apparatus for scheduling media processing jobs on multiple processors to maximize processor utilization

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5428754A (en) * 1988-03-23 1995-06-27 3Dlabs Ltd Computer system with clock shared between processors executing separate instruction streams
EP0340901A3 (en) * 1988-03-23 1992-12-30 Du Pont Pixel Systems Limited Access system for dual port memory
AU647086B2 (en) * 1990-01-30 1994-03-17 Johnson Service Company Networked facilities management system
US6912637B1 (en) * 1998-07-08 2005-06-28 Broadcom Corporation Apparatus and method for managing memory in a network switch
US6691208B2 (en) * 1999-03-12 2004-02-10 Diva Systems Corp. Queuing architecture including a plurality of queues and associated method for controlling admission for disk access requests for video content
KR100423498B1 (ko) 2001-08-25 2004-03-18 삼성전자주식회사 일대다 무선통신에서 통신 간섭 및 끊김 현상을 방지할 수있는 무선통신방법
KR20080074545A (ko) * 2007-02-09 2008-08-13 삼성전자주식회사 버스 시스템 및 그 제어 방법
US8424007B1 (en) 2008-09-30 2013-04-16 Symantec Corporation Prioritizing tasks from virtual machines
US9842068B2 (en) 2010-04-14 2017-12-12 Qualcomm Incorporated Methods of bus arbitration for low power memory access
US8924976B2 (en) * 2011-08-26 2014-12-30 Knu-Industry Cooperation Foundation Task scheduling method and apparatus
KR101861768B1 (ko) * 2011-09-16 2018-05-28 삼성전자주식회사 시스템 온칩, 이를 포함하는 전자 시스템, 및 그 동작 방법
KR20130115574A (ko) 2012-04-12 2013-10-22 삼성전자주식회사 단말기에서 태스크 스케줄링을 수행하는 방법 및 장치
US10073626B2 (en) * 2013-03-15 2018-09-11 Virident Systems, Llc Managing the write performance of an asymmetric memory system
JP2014225137A (ja) 2013-05-16 2014-12-04 株式会社デンソー タスクスケジューラ,マイクロプロセッサ及びタスクスケジューリング方法
US20150046207A1 (en) 2013-08-08 2015-02-12 Hurd Hollis T System, Method, and Computer Program Product for Automatically Scheduling a Plurality of Tasks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090083741A1 (en) 2007-09-21 2009-03-26 Advanced Micro Devices, Inc. Techniques for Accessing a Resource in a Processor System
KR101426461B1 (ko) 2010-04-14 2014-08-05 퀄컴 인코포레이티드 액세스 레이턴시를 감소시키기 위한 버스 중재 기술들
US20150006226A1 (en) 2013-06-28 2015-01-01 Verizon Patent And Licensing Inc. Method and apparatus for scheduling media processing jobs on multiple processors to maximize processor utilization

Also Published As

Publication number Publication date
US20190278729A1 (en) 2019-09-12
US10521382B2 (en) 2019-12-31
US10339085B2 (en) 2019-07-02
US20170060796A1 (en) 2017-03-02
KR20170024876A (ko) 2017-03-08

Similar Documents

Publication Publication Date Title
US7305510B2 (en) Multiple master buses and slave buses transmitting simultaneously
US10353837B2 (en) Method and apparatus to enable multiple masters to operate in a single master bus architecture
CN1327370C (zh) 资源管理装置
CN101263465B (zh) 用于总线仲裁的方法和系统
US8719476B2 (en) Communication system, master device and slave device, and communication method, configured to handle plural concurrent requests
KR20160147842A (ko) 센서 글로벌 버스
JP2000259557A (ja) 多数の機能モジュールを接続するためのポート管理コントローラ
US7213084B2 (en) System and method for allocating memory allocation bandwidth by assigning fixed priority of access to DMA machines and programmable priority to processing unit
US9798686B2 (en) Slave side bus arbitration
KR20170110610A (ko) 시리얼 버스를 위한 수신 클록 캘리브레이션
US8521930B1 (en) Method and apparatus for scheduling transactions in a host-controlled packet-based bus environment
KR102285749B1 (ko) 세마포어 기능을 갖는 시스템 온 칩 및 그것의 세마포어 구현 방법
US10417172B2 (en) Sensors global bus
EP2423824B1 (en) Data transfer device, method of transferring data, and image forming apparatus
US20190213165A1 (en) Priority scheme for fast arbitration procedures
KR102360214B1 (ko) 실시간 공유 인터페이스를 포함하는 시스템 온 칩의 스케쥴링 방법
EP3036647B1 (en) Method to minimize the number of irq lines from peripherals to one wire
CN113297122A (zh) 基于串行总线聚合io连接管理来影响处理器调节
KR20080074545A (ko) 버스 시스템 및 그 제어 방법
US9910812B2 (en) Initiating multiple data transactions on a system bus
US11520729B2 (en) I2C bus architecture using shared clock and dedicated data lines
JP2006259842A (ja) データ転送処理装置
JP2002288115A (ja) Usbコントローラ
KR100243868B1 (ko) 주 전산기에서의 중재로직 방법
CN116010308A (zh) 一种dma数据流仲裁器设计

Legal Events

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