KR20220135048A - 버스를 통해 자원을 공유하기 위한 장치 및 방법 - Google Patents

버스를 통해 자원을 공유하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR20220135048A
KR20220135048A KR1020210040543A KR20210040543A KR20220135048A KR 20220135048 A KR20220135048 A KR 20220135048A KR 1020210040543 A KR1020210040543 A KR 1020210040543A KR 20210040543 A KR20210040543 A KR 20210040543A KR 20220135048 A KR20220135048 A KR 20220135048A
Authority
KR
South Korea
Prior art keywords
master
semaphore
timer
controller
value
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.)
Pending
Application number
KR1020210040543A
Other languages
English (en)
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 KR1020210040543A priority Critical patent/KR20220135048A/ko
Priority to CN202210035731.4A priority patent/CN115145851A/zh
Priority to US17/579,882 priority patent/US11914536B2/en
Publication of KR20220135048A publication Critical patent/KR20220135048A/ko
Priority to US18/425,977 priority patent/US12468646B2/en
Priority to US19/348,939 priority patent/US20260030189A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14—Handling requests for interconnection or transfer
    • G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements 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/46—Multiprogramming arrangements
    • G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38—Information transfer, e.g. on bus
    • G06F13/40—Bus structure
    • G06F13/4063—Device-to-bus coupling
    • G06F13/4068—Electrical coupling
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14—Time supervision arrangements, e.g. real time clock
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements 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/46—Multiprogramming arrangements
    • G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements 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/46—Multiprogramming arrangements
    • G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022—Mechanisms to release resources
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00—Data switching networks
    • H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40—Bus networks
    • H04L12/40143—Bus networks involving priority mechanisms
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00—Data switching networks
    • H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40—Bus networks
    • H04L12/40169—Flexible bus arrangements
    • H04L12/40176—Flexible bus arrangements involving redundancy
    • H04L12/40202—Flexible bus arrangements involving redundancy by using a plurality of master stations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Small-Scale Networks (AREA)

Abstract

복수의 마스터 장치들 및 슬레이브 장치 사이 인터페이스를 제공하는 장치는, 버스를 통해 제1 마스터 장치로부터 제1 액세스 요청이 수신되는 경우 개시되고, 상기 제1 마스터 장치에 세마포어(semaphore)가 할당되는 경우 리셋되도록 구성된 제1 타이머, 상기 버스를 통해 제2 마스터 장치로부터 제2 액세스 요청이 수신되는 경우 개시되고, 상기 제2 마스터 장치에 세마포어가 할당되는 경우 리셋되도록 구성된 제2 타이머, 및 상기 제1 타이머에 의해서 제1 만료(expiration) 구간이 측정되는 경우, 상기 버스를 통해 상기 제1 마스터 장치에 제1 메시지를 제공하고, 상기 제2 타이머에 의해서 제2 만료 구간이 측정되는 경우, 상기 버스를 통해 상기 제2 마스터 장치에 상기 제1 메시지를 제공하는 컨트롤러를 포함할 수 있다.

Description

버스를 통해 자원을 공유하기 위한 장치 및 방법{DEVICE AND METHOD FOR SHARING RESOURCE VIA BUS}
본 개시의 기술적 사상은 버스에 관한 것으로서, 구체적으로는 버스를 통해 자원을 공유하기 위한 장치 및 방법에 관한 것이다.
다양한 기능들 및 높은 성능을 제공하기 위하여, 시스템은 다수의 기능 블록들을 포함할 수 있다. 시스템에서 기능 블록들 각각은, 설계된 그리고/또는 프로그램된 동작을 수행할 수 있고, 다른 기능 블록과 통신할 수 있다. 시스템에서 2이상의 기능 블록들이 하나의 자원, 즉 하나의 기능 블록을 동시에 사용하고자 하는 경우, 2이상의 기능 블록들 중 하나의 기능 블록이 선택될 수 있고, 선택되지 아니한 기능 블록은 선택된 기능 블록이 해당 자원의 사용을 완료할 때까지 대기할 수 있다. 그러나, 선택되지 아니한 기능 블록의 대기 시간이 길어지는 경우, 해당 기능 블록의 동작에 지연이나 오류가 발생할 수 있고, 시스템의 성능에 영향을 미칠 수 있다.
본 개시의 기술적 사상은, 시스템에서 자원을 안전하고 효율적으로 공유하기 위한 장치 및 방법을 제공한다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일 측면에 따라 복수의 마스터 장치들 및 슬레이브 장치 사이 인터페이스를 제공하는 장치는, 버스를 통해 제1 마스터 장치로부터 제1 액세스 요청이 수신되는 경우 개시되고, 상기 제1 마스터 장치에 세마포어(semaphore)가 할당되는 경우 리셋되는 제1 타이머, 상기 버스를 통해 제2 마스터 장치로부터 제2 액세스 요청이 수신되는 경우 개시되고, 상기 제2 마스터 장치에 세마포어가 할당되는 경우 리셋되는 제2 타이머, 및 상기 제1 타이머에 의해서 제1 만료(expiration) 구간이 측정되는 경우, 상기 버스를 통해 상기 제1 마스터 장치에 제1 메시지를 제공하고, 상기 제2 타이머에 의해서 제2 만료 구간이 측정되는 경우, 상기 버스를 통해 상기 제2 마스터 장치에 상기 제1 메시지를 제공하는 컨트롤러를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따라, 복수의 마스터 장치들 및 슬레이브 장치 사이 인터페이스를 제공하는 방법은, 버스를 통해 제1 마스터 장치로부터 액세스 요청이 수신되는 경우, 상기 복수의 마스터 장치들에 각각 대응하는 복수의 타이머들 중 상기 제1 마스터 장치에 대응하는 제1 타이머를 개시하는 단계, 상기 제1 마스터 장치에 세마포어가 할당되는 경우, 상기 제1 타이머를 리셋하는 단계, 및 상기 복수의 마스터 장치들에 각각 대응하는 복수의 만료(expiration) 구간들 중 상기 제1 마스터 장치에 대응하는 제1 만료 구간이 상기 제1 타이머에 의해서 측정되는 경우, 상기 버스를 통해서 상기 제1 마스터 장치에 제1 메시지를 제공하는 단계를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따라, 복수의 마스터 장치들 및 슬레이브 장치 사이 인터페이스를 제공하는 장치는, 상기 복수의 마스터 장치들에 각각 대응하는 복수의 타이머들, 및 상기 복수의 마스터 장치들에 세마포어를 할당하는 컨트롤러를 포함할 수 있고, 상기 복수의 타이머들 각각은, 자신에 대응하는 마스터 장치로부터 버스를 통해 액세스 요청이 수신되는 경우 개시되고, 상기 마스터 장치에 세마포어가 할당되는 경우 리셋될 수 있고, 상기 컨트롤러는, 상기 복수의 마스터 장치들에 각각 대응하는 복수의 만료 구간들에 기초하여, 만료 구간이 측정된 타이머에 대응하는 마스터 장치에 상기 버스를 통해 제1 메시지를 제공할 수 있다.
본 개시의 예시적 실시예에 따른 장치 및 방법에 의하면, 자원 공유시 지연 및 오류가 방지될 수 있고, 이에 따라 시스템의 성능 및 신뢰도가 향상될 수 있다.
또한, 본 개시의 예시적 실시예에 따른 장치 및 방법에 의하면, 단순한 프로토콜에 기인하여 시스템에서 자원 공유의 효율성이 향상될 수 있다.
본 개시의 예시적 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 기재로부터 본 개시의 예시적 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 개시의 예시적 실시예들을 실시함에 따른 의도하지 아니한 효과들 역시 본 개시의 예시적 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 시스템을 나타내는 블록도이다.
도 2는 본 개시의 예시적 실시예에 따른 마스터의 스로틀(throttle) 구간 및 만료(expiration) 구간의 예시들을 나타내는 도면이다.
도 3은 본 개시의 예시적 실시예에 따라 자원을 공유하기 위한 방법을 나타내는 메시지도이다.
도 4는 본 개시의 예시적 실시예에 따라 자원을 공유하기 위한 동작의 예시를 나타내는 도면이다.
도 5는 본 개시의 예시적 실시예에 따라 자원을 공유하기 위한 방법을 나타내는 순서도이다.
도 6은 본 개시의 예시적 실시예에 따라 자원을 공유하기 우한 방법을 나타내는 순서도이다.
도 7a 및 도 7b는 본 개시의 예시적 실시예들에 따라 자원을 공유하기 위한 동작의 예시들을 나타내는 도면들이다.
도 8a 및 도 8b는 본 개시의 예시적 실시예들에 따라 자원을 공유하기 위한 방법을 나타내는 메시지도들이다.
도 9는 본 개시의 예시적 실시예에 따라 자원 공유를 위한 방법을 나타내는 메시지도이다.
도 10은 본 개시의 예시적 실시예에 따른 시스템-온-칩을 나타내는 블록도이다.
도 1은 본 개시의 예시적 실시예에 따른 시스템(100)을 나타내는 블록도이다. 본 명세서에 첨부된 도면들에 도시된 블록은 임의의 방식으로 구현될 수 있다. 예를 들면, 블록은, CPU(central processing unit), GPU(graphic processing unit), NPU(neural processing unit) 등과 같이 프로그램가능한(programmable) 장치, 고정된 기능을 수행하도록 설계된 IP(intellectual property) 코어 및 FPGA(field programmable gate array)와 같은 재구성가능한(reconfigurable) 장치 중 적어도 하나를 포함할 수 있다. 또한, 블록은, 프로그램가능한 장치에서 실행되고 일련의 명령어들을 포함하는, 소프트웨어 모듈일 수도 있다.
시스템(100)은 원하는 동작을 수행하도록 설계된 임의의 대상을 지칭할 수 있다. 예를 들면, 시스템(100)은, 서버, 퍼스널 컴퓨터, 스마트 폰, 웨어러블(wearable) 기기, 태블릿 PC 등과 같은 컴퓨팅 시스템일 수도 있고, 비행기, 자동차, 선박, 전동 킥보드(motorized scooter), 드론(drone) 등과 같은 이동체(vehicle)일 수도 있고, TV, 냉장고, 세탁기 등과 같은 가전(home appliance)일 수도 있으며, 전술된 것들에 포함되는 부품일 수도 있다. 일부 실시예들에서, 시스템(100)은 반도체 공정을 통해서 제조되는 적어도 하나의 칩을 포함할 수 있다. 예를 들면, 시스템(100)은, 도 1에 도시된 구성요소들이 하나의 칩에 포함되는 시스템-온-칩(system-on-chip; SoC)일 수도 있고, 또는 기판(board)에 실장된(mounted) 2이상의 칩들을 포함할 수도 있다. 도 1에 도시된 바와 같이, 시스템(100)은 제1 내지 제n 마스터(120_1 내지 120_n), 자원 공유 인터페이스(140), 슬레이브(160) 및 버스(180)를 포함할 수 있다(n은 1보다 큰 정수).
버스(180)는 제1 내지 제n 마스터(120_1 내지 120_n) 및 자원 공유 인터페이스(160)에 연결될 수 있고, 제1 내지 제n 마스터(120_1 내지 120_n) 및 자원 공유 인터페이스(160)는 버스(180)를 통해서 상호 통신할 수 있다. 버스(180)는 시스템 버스, 버스 매트릭스 등으로 지칭될 수 있고, 임의의 구조를 가질 수 있다. 예를 들면, 버스(180)는, AXI(advanced extensible interface), AHB(advanced high-performance bus), APB(advanced peripheral bus) 등과 같은 AMBA(advanced microcontroller bus architecture)에 기초한 버스, ATA(advanced technology attachment), IDE(integrated drive electronics) 등과 같은 병렬 버스, PCIe(peripheral component interconnect express), I2C(inter-integrated circuit), SMBus(system management bus), CAN(controller area network) 버스, USB(universal serial bus), SATA(serial advanced technology attachment) 등과 같은 직렬 버스 등을 포함할 수 있다.
제1 내지 제n 마스터(120_1 내지 120_n) 각각은 버스(180)에 연결될 수 있고, 버스를 통해서 트랜잭션(transaction)을 개시할 수 있다. 예를 들면, 제1 내지 제n 마스터(120_1 내지 120_n) 각각은, CPU, DMA(direct memory access) 컨트롤러 등일 수 있다. 제1 내지 제n 마스터(120_1 내지 120_n) 각각은 버스(180) 및 자원 공유 인터페이스(140)를 통해서 슬레이브(160)에 액세스할 수 있다. 예를 들면, 제1 내지 제n 마스터(120_1 내지 120_n) 각각은 버스(180)를 통해서 슬레이브(160)에 대한 액세스 요청, 예컨대 기입(write) 요청 또는 독출(read) 요청을 자원 공유 인터페이스(140)에 제공할 수 있다. 일부 실시예들에서, 제1 내지 제n 마스터(120_1 내지 120_n) 중 적어도 하나는, 펌웨어(firmware), 운영체제(operating system), 어플리케이션(application) 등과 같은 소프트웨어를 실행할 수 있다. 본 명세서에서, 제1 내지 제n 마스터(120_1 내지 120_n) 각각은 버스 마스터, 마스터 장치로 지칭될 수 있다. 일부 실시예들에서, 시스템(100)은, 버스(180)에 연결되나 슬레이브(160)를 액세스하지 아니하는 적어도 하나의 마스터를 더 포함할 수 있다.
슬레이브(160)는 설계된 그리고/또는 프로그램된 동작을 수행할 수 있다. 예를 들면, 슬레이브(160)는, WiFi, Bluetooth, I2C(inter-integrated circuit), I2S(integrated interchip sound) 등과 같이, 다른 시스템에 대한 접속을 제공하는 장치일 수 있다. 슬레이브(160)는, 제1 내지 제n 마스터(120_1 내지 120_n) 각각의 요청에 응답할 수 있다. 예를 들면, 슬레이브(160)는, 자원 공유 인터페이스(140)를 통해서 제1 내지 제n 마스터(120_1 내지 120_n) 각각으로부터 제공된 액세스 요청에 기초하여 응답을 생성할 수 있고, 응답을 자원 공유 인터페이스(140)를 통해서 제1 내지 제n 마스터(120_1 내지 120_n) 각각에 제공할 수 있다. 본 명세서에서, 슬레이브(160)는 버스 슬레이브, 슬레이브 장치로 지칭될 수 있다. 일부 실시예들에서, 시스템(100)은, 2이상의 마스터들에 의해서 공유되는 슬레이브를 더 포함할 수도 있다.
자원 공유 인터페이스(140)는 버스(180)에 연결될 수 있고, 제1 내지 제n 마스터(120_1 내지 120_n) 및 슬레이브(160) 사이 인터페이스를 제공할 수 있다. 예를 들면, 자원 공유 인터페이스(140)는 제1 내지 제n 마스터(120_1 내지 120_n)로부터 슬레이브(160)에 대한 액세스 요청을 수신할 수 있고, 슬레이브(160)로부터 수신된 응답을 제1 내지 제n 마스터(120_1 내지 120_n)에 제공할 수 있다. 본 명세서에서, 자원 공유 인터페이스(140)는 인터페이스 장치, 인터페이스, 또는 단순하게 장치로 지칭될 수 있다. 도 1에 도시된 바와 같이, 자원 공유 인터페이스(140)는 제1 내지 제n 슬레이브 인터페이스(142_1 내지 142_n), 제1 내지 제n 타이머(144_1 내지 144_n), 컨트롤러(146) 및 마스터 인터페이스(148)를 포함할 수 있다.
제1 내지 제n 슬레이브 인터페이스(142_1 내지 142_n)는 버스(180)를 통해서 제1 내지 제n 마스터(120_1 내지 120_n)와 각각 통신할 수 있다. 예를 들면, 제1 내지 제n 슬레이브 인터페이스(142_1 내지 142_n) 각각은 적어도 하나의 레지스터를 포함할 수 있고, 자신에 대응하는 마스터의 요청에 따라, 레지스터에 값을 기입하거나 레지스터에 저장된 값을 마스터에 제공할 수 있다. 유사하게, 마스터 인터페이스(148)는 슬레이브(160)와 통신할 수 있고, 적어도 하나의 레지스터를 포함할 수 있다. 일부 실시예들에서, 마스터 인터페이스(148) 및 슬레이브(160)는, 버스(180)와 동일한 프로토콜에 기초하여 상호 통신할 수 있다. 자원 공유 인터페이스(140)에 포함된 슬레이브 인터페이스들의 수(즉, n)는, 시스템(100)에 포함된 마스터들 중 슬레이브(160)에 액세스가능한, 즉 슬레이브(160)를 공유하는 마스터들의 수와 동일할 수 있다.
제1 내지 제n 타이머(144_1 내지 144_n)는 제1 내지 제n 마스터(120_1 내지 120_n)에 각각 대응할 수 있고, 제1 내지 제n 타이머(144_1 내지 144_n) 각각은 자신에 대응하는 마스터로부터 액세스 요청이 수신된 시점으로부터 도과된 시간을 측정할 수 있다. 일부 실시예들에서, 제1 내지 제n 타이머(144_1 내지 144_n)는 클락 신호를 공통으로 수신하는 카운터들을 각각 포함할 수 있다. 자원 공유 인터페이스(140)에 포함된 슬레이브 타이머들의 수(즉, n)는, 시스템(100)에 포함된 마스터들 중 슬레이브(160)에 액세스가능한, 즉 슬레이브(160)를 공유하는 마스터들의 수와 동일할 수 있다.
컨트롤러(146)는 슬레이브(160)에 대한 액세스를 스케줄링할 수 있다. 예를 들면, 도 1에 도시된 바와 같이, 슬레이브(160)가 제1 내지 제n 마스터(120_1 내지 120_n)에 의해서 공유되는 경우, 컨트롤러(146)는 슬레이브(160)를 액세스하고자 하는 마스터들 중 하나의 마스터를 선택할 수 있고, 선택된 마스터가 슬레이브(160)에 액세스하는 동안, 슬레이브(160)에 대한 다른 마스터의 액세스를 차단할 수 있다. 컨트롤러(146)에 의해서 슬레이브(160)에 대한 액세스가 허용된 마스터는, 세마포어(semaphore)를 획득한 마스터로 지칭될 수 있고, 세마포어를 획득한 마스터는 슬레이브(160)에 대한 액세스를 종료한 후, 세마포어를 해제(release)할 수 있다. 즉, 컨트롤러(146)는 제1 내지 제n 마스터(120_1 내지 120_n) 중 하나의 마스터에 세마포어를 할당할 수 있다. 일부 실시예들에서, 세마포어는 액세스 토큰(access token)으로 지칭될 수 있다.
도 1에 도시된 바와 같이, 컨트롤러(146)는 제1 내지 제n 타이머(144_1 내지 144_n)와 통신할 수 있고, 제1 내지 제n 타이머(144_1 내지 144_n)를 사용하여 세마포어를 획득하지 못한 마스터에 기인하는 지연 및/또는 오류가 방지되도록 슬레이브(160)에 대한 액세스를 스케줄링할 수 있다. 예를 들면, 제1 마스터(120_1)가 세마포어를 획득한 경우, 제2 마스터(120_2)는 제1 마스터(120_1)가 세마포어를 해제할 때까지 대기할 수 있다. 제1 마스터(120_1)에 의한 세마포어의 해제가 지연됨에도 불구하고, 제2 마스터(120_2)가 계속 대기하는 경우, 제2 마스터(120_2)에 의한 동작에 지연 및/또는 오류가 발생할 수 있다. 예를 들면, 제2 마스터(120_2)를 운영하는 소프트웨어는 슬레이브(160)에 대한 액세스가 미리 정의된 시간 이상 지연되는 경우, 버스(180)를 통한 통신에서 오류를 처리하기 위한 모드(예컨대, 디버깅 모드)로 진입할 수 있다. 컨트롤러(146)는, 제1 내지 제n 타이머(144_1 내지 144_n)를 사용하여 세마포어를 획득하지 못한 마스터의 대기 시간이 일정 시간(예컨대, 만료 구간)을 초과하는 것을 식별할 수 있고, 마스터가 액세스 요청에 대한 처리의 종료를 식별할 수 있도록 마스터에 메시지를 제공할 수 있다. 메시지는 액세스 요청에 대한 응답일 수 있고, 세마포어의 획득이 실패하였음을 나타내는 정보를 포함할 수 있다. 이에 따라, 마스터는 디버그 모드에 진입하지 아니할 수 있고, 자원 공유 인터페이스(140)로부터 제공된 메시지에 기초하여, 다른 동작을 수행하거나 슬레이브(160)에 대한 액세스 요청을 다시 자원 공유 인터페이스(140)에 제공할 수 있다.
일부 실시예들에서, 컨트롤러(146)는 제1 내지 제n 타이머(144_1 내지 144_n)를 사용하여, 세마포어를 할당할 마스터를 선택할 수 있다. 예를 들면, 컨트롤러(146)는, 세마포어가 해제된 경우, 세마포어에 대한 대기 시간이 상대적으로 긴 상태를 가지는 마스터에 우선권을 부여할 수 있다. 이에 따라, 시스템(100)에서 제1 내지 제n 마스터(120_1 내지 120_n)에 의한 자원(즉, 슬레이브(160)) 공유시 지연 및/또는 오류가 방지될 수 있고, 시스템(100)의 성능 및 신뢰도가 향상될 수 있다. 또한, 세마포어를 획득하기 위한 단순한 프로토콜에 기인하여 시스템(100)에서 자원 공유의 효율성이 향상될 수 있다.
도 2는 본 개시의 예시적 실시예에 따른 마스터의 스로틀(throttle) 구간 및 만료(expiration) 구간의 예시들을 나타내는 도면이다. 구체적으로, 도 2는 제1 내지 제n 마스터에 각각 대응하는, 제1 내지 제n 스로틀 구간(T1 내지 Tn) 및 제1 내지 제n 만료 구간(E1 내지 En)을 나타낸다. 이하에서, 도 2의 제1 내지 제n 마스터는 도 1의 제1 내지 제n 마스터(120_1 내지 120_n)인 것으로 가정되고, 도 2는 도 1을 참조하여 설명될 것이다.
일부 실시예들에서, 마스터는 고유한 만료 구간을 가질 수 있다. 만료 구간은 마스터에 대응하는 타이머에 의해서 측정되는 구간일 수 있고, 만료 구간 동안 세마포어가 획득되지 아니하는 경우, 컨트롤러(146)는 액세스 요청에 대한 처리의 종료를 나타내는 메시지를 마스터에 제공할 수 있다. 예를 들면, 제1 마스터(120_1)에 대응하는 제1 타이머(144_1)는, 제1 만료 구간(E1)을 측정하도록 설정될 수 있고, 제1 만료 구간(E1)에서 제1 마스터(120_1)에 세마포어가 할당되는 경우 리셋될 수 있다. 도 2에 도시된 바와 같이, 제1 내지 제n 마스터(120_1 내지 120_n)에 각각 대응하는 제1 내지 제n 만료 구간(E1 내지 En)은 동일하거나 상이할 수 있다. 예를 들면, 제1 마스터(120_1)는 제1 만료 구간(E1)을 가질 수 있고, 제2 마스터(120_2)는 제1 만료 구간(E1)보다 긴 제2 만료 구간(E2)을 가질 수 있다.
일부 실시예들에서, 마스터는 고유한 스로틀 구간을 가질 수 있다. 스로틀 구간은 마스터에 대응하는 타이머에 의해서 측정되는 구간일 수 있고, 만료 구간보다 짧을 수 있다. 컨트롤러(146)는 스로틀 구간 동안 세마포어가 획득되지 안하는 경우, 마스터에 세마포어를 우선적으로 할당할 수 있다. 예를 들면, 제1 마스터(120_1)로부터 액세스 요청이 수신된 시점으로부터 제1 스로틀 구간(T1)이 도과된 경우, 컨트롤러(146)는 제1 마스터(120_1)에 우선적으로 해제된 세마포어를 우선적으로 할당할 수 있다. 일부 실시예들에서, 컨트롤러(146)는 타이머에 의해서 스로틀 구간이 측정되는 경우, 스로틀 구간의 도과를 알리기 위한 메시지를 마스터에 제공할 수 있다.
일부 실시예들에서, 제1 내지 제n 만료 구간(E1 내지 En) 및 제1 내지 제n 스로틀 구간(T1 내지 Tn)에 대한 정보를 저장하는 비휘발성(non-volatile) 메모리가, 자원 공유 인터페이스(140)에 포함되거나 자원 공유 인터페이스(140)에 의해서 액세스될 수 있고, 제1 내지 제n 타이머(144_1 내지 144_n)는 비휘발성 메모리에 저장된 정보 또는 부팅시 비휘발성 메모리로부터 정보가 로딩된 휘발성(volatile) 메모리에 저장된 정보에 기초하여, 예컨대 시스템(100)의 설정될 수 있다.
도 3은 본 개시의 예시적 실시예에 따라 자원을 공유하기 위한 방법을 나타내는 메시지도이다. 구체적으로, 도 3의 메시지도는, 제1 및 제2 마스터(310, 320) 및 자원 공유 인터페이스(330) 사이 동작들을 시간의 흐름에 따라 나타낸다. 이하에서, 도 3의 자원 공유 인터페이스(330)는 도 1의 자원 공유 인터페이스(140)에 포함된 구성요소들을 포함하는 것으로 가정된다.
도 3을 참조하면, 단계 S31에서 제1 마스터(310)는 제1 액세스 요청을 자원 공유 인터페이스(330)에 제공할 수 있다. 예를 들면, 제1 마스터(310)는 슬레이브(예컨대, 도 1의 160)에 액세스하기 위한 세마포어를 획득하기 위하여 제1 액세스 요청을 자원 공유 인터페이스(330)에 제공할 수 있다. 도 1을 참조하여 전술된 바와 같이, 제1 액세스 요청은 버스를 통해서 자원 공유 인터페이스(330)에 제공될 수 있고, 자원 공유 인터페이스(330)에 포함되고 제1 마스터(310)에 대응하는 제1 슬레이브 인터페이스(142_1)가 제1 액세스 요청을 수신할 수 있다.
단계 S32에서, 자원 공유 인터페이스(330)는 제1 마스터(310)에 세마포어를 할당할 수 있다. 예를 들면, 자원 공유 인터페이스(330)에 포함된 컨트롤러(146)는 제1 액세스 요청에 응답하여 세마포어가 할당가능한지 여부(또는 세마포어가 해제되었는지 여부)를 판정할 수 있다. 컨트롤러(146)는 세마포어가 할당가능한 경우, 제1 마스터(310)에 세마포어를 할당할 수 있고, 세마포어를 획득한 제1 마스터(310)는 자원 공유 인터페이스(330)를 통해서 슬레이브에 액세스할 수 있다.
단계 S33에서, 제2 마스터(320)가 제2 액세스 요청을 자원 공유 인터페이스(330)에 제공할 수 있다. 예를 들면, 제2 마스터(320)는 슬레이브에 액세스하기 위한 세마포어를 획득하기 위하여 제2 액세스 요청을 자원 공유 인터페이스(330)에 제공할 수 있다. 도 1을 참조하여 전술된 바와 같이, 제2 액세스 요청은 버스를 통해서 자원 고유 인터페이스(330)에 제공될 수 있고, 자원 공유 인터페이스(330)에 포함되고 제2 마스터(320)에 대응하는 제2 슬레이브 인터페이스(142_2)가 제2 액세스 요청을 수신할 수 있다. 제1 마스터(310)에 할당된 세마포어에 기인하여, 자원 공유 인터페이스(330)에 포함된 컨트롤러(146)는 제2 마스터(320)에 세마포어를 할당하지 아니할 수 있고, 제2 마스터(320)에 대응하는 제2 타이머(144_2)가 개시될 수 있다.
단계 S34에서, 자원 공유 인터페이스(330)는 제2 메시지를 제2 마스터(320)에 제공할 수 있다. 예를 들면, 자원 공유 인터페이스(330)에 포함된 컨트롤러(146)는 제2 슬레이브 인터페이스(142_2)를 통해서 제2 메시지를 제2 마스터(320)에 제공할 수 있다. 도 3에 도시된 바와 같이, 제2 마스터(320)로부터 제2 액세스 요청이 수신된 시점으로부터 제2 스로틀 구간(T2)이 도과된 시점에서, 컨트롤러(146)는 제2 메시지를 제2 마스터(320)에 제공할 수 있다. 제2 마스터(320)는 자원 공유 인터페이스(330)로부터 수신된 제2 메시지에 기초하여, 세마포어의 획득을 대기중이며 스로틀 구간이 도과된 것을 식별할 수 있다. 일부 실시예들에서, 제2 메시지는 제2 마스터(320)를 운영하는 소프트웨어에 인터럽트를 유발할 수 있다.
단계 S35에서, 자원 공유 인터페이스(330)는 제1 메시지를 제2 마스터(320)에 제공할 수 있다. 예를 들면, 자원 공유 인터페이스(330)에 포함된 컨트롤러(146)는 제2 슬레이브 인터페이스(142_2)를 통해서 제1 메시지를 제2 마스터(320)에 제공할 수 있다. 도 3에 도시된 바와 같이, 제2 마스터(320)로부터 제2 액세스 요청이 수신된 시점으로부터 제2 만료 구간(E2)이 도과된 시점에서, 컨트롤러(146)는 제1 메시지를 제2 마스터(320)에 제공할 수 있다. 컨트롤러(146)는 단계 S33에서 수신된 제2 액세스 요청에 대한 처리를 종료할 수 있고, 제2 마스터(320)는 제1 메시지에 기초하여 제2 액세스 요청에 대한 처리의 종료를 식별할 수 있다. 또한, 제2 마스터(320)는 제1 메시지에 포함된 정보에 기초하여 세마포어의 획득이 실패한 것을 식별할 수 있다. 이에 따라, 제1 마스터(310)가 세마포어를 해제할 때까지 제2 마스터(320)가 세마포어의 획득을 대기하는 것이 방지될 수 있고, 제2 마스터(320)에서 동작의 지연 및/또는 오류가 방지될 수 있다.
단계 S36에서, 제1 마스터(310)는 제3 액세스 요청을 자원 공유 인터페이스(330)에 제공할 수 있다. 예를 들면, 제1 마스터(310)는 슬레이브에 대한 액세스를 완료한 경우, 세마포어의 해제를 위하여 제3 액세스 요청을 자원 공유 인터페이스(330)에 제공할 수 있다. 제3 액세스 요청은, 전술된 제1 액세스 요청 및 제2 액세스 요청과 같은 포맷을 가질 수 있고, 이에 따라 세마포어의 해제를 위한 추가적인 프로토콜이 생략될 수 있고, 자원을 공유하기 위한 단순한 프로토콜에 기인하여 자원 공유의 효율성이 향상될 수 있다. 세마포어의 해제를 위한 제3 액세스 요청의 예시가 도 9를 참조하여 후술될 것이다.
단계 S37에서, 자원 공유 인터페이스(330)는 세마포어의 해제를 식별할 수 있다. 예를 들면, 컨트롤러(146)는 제1 슬레이브 인터페이스(142_1)를 통해서 제3 액세스 요청을 식별할 수 있고, 제3 액세스 요청에 기초하여 제1 마스터(310)에 의한 세마포어의 해제를 식별할 수 있다. 일부 실시예들에서, 제1 슬레이브 인터페이스(142_1)가 제3 액세스 요청을 식별할 수 있고, 컨트롤러(146)에 세마포어의 해제를 나타내는 신호를 제공할 수도 있다.
도 4는 본 개시의 예시적 실시예에 따라 자원을 공유하기 위한 동작의 예시를 나타내는 도면이다. 구체적으로, 도 4의 상부는 세마포어가 할당된 마스터를 나타내는 타이밍도이고, 도 4의 하부는 도 1의 제1 타이머(144_1)의 값들(410) 및 도 1의 제2 타이머(144_2)의 값들(420)을 나타내는 그래프이다. 이하에서, 도 4는 도 1을 참조하여 설명될 것이다.
일부 실시예들에서, 자원 공유 인터페이스(140)에 포함된 제1 내지 제n 타이머(144_1 내지 144_n) 각각은 다운-카운터를 포함할 수 있다. 예를 들면, 도 4에 도시된 바와 같이, 제1 타이머(144_1)의 값은 제1 초기값(INI1)으로부터 감소할 수 있고, 제2 타이머(144_2)의 값은 제2 초기값(INT2)으로부터 감소할 수 있다. 일부 실시예들에서, 도 4에 도시된 바와 상이하게, 제1 내지 제n 타이머(144_1 내지 144_n) 각각은 업-카운터를 포함할 수 있고, 제1 내지 제n 타이머(144_1 내지 144_n) 각각의 값은 초기값으로부터 증가할 수 있다.
도 2를 참조하여 전술된 바와 같이, 제1 타이머(144_1)는 제1 스로틀 구간(T1) 및 제1 만료 구간(E1)을 측정하는데 사용될 수 있고, 제2 타이머(144_2)는 제2 스로틀 구간(T2) 및 제2 만료 구간(E2)을 측정하는데 사용될 수 있다. 예를 들면, 제1 타이머(144_1)의 값이 제1 초기값(INI1)으로부터 제1 문턱값(THR1)까지 감소하는 경우, 제1 스로틀 구간(T1)이 측정될 수 있고, 제1 타이머(144_1)의 값이 제1 초기값(INI1)으로부터 만료값(EXP)까지 감소하는 경우, 제1 만료 구간(E1)이 측정될 수 있다. 또한, 제2 타이머(144_2)의 값이 제2 초기값(INI2)으로부터 제2 문턱값(THR2)까지 감소하는 경우, 제2 스로틀 구간(T2)이 측정될 수 있고, 제2 타이머(144_2)의 값이 제2 초기값(INT2)으로부터 만료값(EXP)까지 감소하는 경우, 제2 만료 구간(E2)이 측정될 수 있다.
도 4를 참조하면, 시간 t41에서 제1 타이머(144_1)는 제1 초기값(INI1)으로 설정될 수 있다. 예를 들면, 도 4에 도시된 바와 같이, 세마포어가 제n 마스터(120_n)에 할당된 상태에서 제1 마스터(120_1)로부터 세마포어 획득을 위한 액세스 요청이 수신되는 경우, 제1 타이머(144_1)는 제1 스로틀 구간(T1) 및 제1 만료 구간(E1)을 측정하기 위하여 제1 초기값(INI1)으로 설정될 수 있고, 제1 타이머(144_1)의 값은 제1 초기값(INI1)으로부터 감소하기 시작할 수 있다.
시간 t42에서, 제1 타이머(144_1)는 리셋될 수 있다. 예를 들면, 시간 t42에서 제n 마스터(120_n)가 세마포어를 해제할 수 있고, 컨트롤러(146)는 해제된 세마포어를 제1 마스터(120_1)에 할당할 수 있다. 또한, 컨트롤러(146)는 제1 타이머(144_1)를 리셋할 수 있고, 도 4에 도시된 바와 같이, 제1 타이머(144_1)의 값은 리셋값(RST)을 가질 수 있다. 일부 실시예들에서, 만료값(EXP) 및 리셋값(RST)은, 동일할 수 있고, 예컨대 영(zero)일 수 있다. 일부 실시예들에서, 도 4에 도시된 바와 상이하게, 제1 타이머(144_1)는 제1 초기값(INI1)을 가지도록 리셋될 수도 있고, 이에 따라 시간 t41 이전 및 시간 t42 이후에서 리셋값(RST) 대신 제1 초기값(INI1)을 가질 수도 있다. 일부 실시예들에서, 도 4에 도시된 바와 상이하게, 제1 타이머(144_1)는 리셋되는 대신 디스에이블될 수 있고, 이에 따라 기존의 값을 일정하게 유지할 수도 있다.
시간 t43에서, 제2 타이머(144_2)는 제2 초기값(INI2)으로 설정될 수 있다. 예를 들면, 도 4에 도시된 바와 같이, 세마포어가 제1 마스터(120_1)에 할당된 상태에서 제2 마스터(120_2)로부터 세마포어 획득을 위한 액세스 요청이 수신되는 경우, 제2 타이머(144_2)는 제2 스로틀 구간(T2) 및 제2 만료 구간(E2)을 측정하기 위하여 제2 초기값(INI2)으로 설정될 수 있고, 제2 타이머(144_2)의 값은 제2 초기값(INI2)으로부터 감소하기 시작할 수 있다.
시간 t44에서, 제2 스로틀 구간(T2)이 측정될 수 있다. 예를 들면, 도 4에 도시된 바와 같이, 제2 타이머(144_2)의 값이 제2 문턱값(THR2)에 도달할 수 있고, 이에 따라 컨트롤러(146)는 제2 스로틀 구간(T2)이 측정된 것을 식별할 수 있다. 일부 실시예들에서, 도 3을 참조하여 전술된 바와 같이, 컨트롤러(146)는 제2 슬레이브 인터페이스(142_2)를 통해서 메시지를 제2 마스터(120_2)에 제공할 수 있고, 제2 마스터(120_2)는 제2 스로틀 구간(T2)의 도과를 식별할 수 있다. 일부 실시예들에서, 도 5를 참조하여 후술되는 바와 같이, 컨트롤러(146)는 제2 스로틀 구간(T2) 동안 대기한 제2 마스터(120_2)에 대하여 해제된 세마포어 할당시 우선권을 부여할 수 있다.
시간 t45에서, 제2 만료 구간(E2)이 측정될 수 있다. 예를 들면, 도 4에 도시된 바와 같이, 제2 타이머(144_2)의 값이 만료값(EXP)에 도달할 수 있고, 이에 따라 컨트롤러(146)는 제2 만료 구간(E2)이 측정된 것을 식별할 수 있다. 일부 실시예들에서, 도 3을 참조하여 전술된 바와 같이, 컨트롤러(146)는 시간 t43에서 제2 마스터(120_2)로부터 수신된 액세스 요청의 처리를 종료할 수 있고, 처리의 종료를 나타내는 메시지를 제2 슬레이브 인터페이스(142_2)를 통해서 제2 마스터(120_2)에 제공할 수 있다. 이에 따라, 제2 마스터(120_2)는 자원 공유 인터페이스(140)로부터 제공되 메시지에 기초하여, 시간 t43에서 제공한 액세스 요청에 대한 처리의 종료를 식별할 수 있고, 세마포어의 대기를 종료할 수 있다. 컨트롤러(146)는 제2 타이머(144_2)를 리셋할 수 있고, 제2 타이머(144_2)의 값은 리셋값(RST)을 가질 수 있다. 일부 실시예들에서, 도 4에 도시된 바와 상이하게, 제2 타이머(144_2)는 제2 초기값(INI2)을 가지도록 리셋될 수도 있고, 이에 따라 시간 t43 이전 및 시간 t45 이후에서 리셋값(RST) 대신 제2 초기값(INI2)을 가질 수도 있다. 일부 실시예들에서, 도 4에 도시된 바와 상이하게, 제2 타이머(144_2)는 리셋되는 대신 디스에이블될 수 있고, 이에 따라 기존의 값을 유지할 수도 있다.
도 5는 본 개시의 예시적 실시예에 따라 자원을 공유하기 위한 방법을 나타내는 순서도이다. 도 5에 도시된 바와 같이, 자원을 공유하기 위한 방법은 복수의 단계들(S51 내지 S59)을 포함할 수 있다. 일부 실시예들에서, 도 5의 방법은 도 1의 자원 공유 인터페이스(140)에 포함된 컨트롤러(146)에 의해서 수행될 수 있고, 이하에서 도 5는 도 1 및 도 4를 참조하여 설명될 것이다.
도 5를 참조하면, 단계 S51에서 액세스 요청의 수신 여부가 판정될 수 있다. 예를 들면, 컨트롤러(146)는 제1 슬레이브 인터페이스(142_1)를 통해서 제1 마스터(120_1)로부터 세마포어 획득을 위한 액세스 요청이 수신되는 것을 식별할 수 있다. 도 5에 도시된 바와 같이, 제1 마스터(120_1)로부터 액세스 요청이 수신되는 경우, 단계 S52가 후속하여 수행될 수 있다.
단계 S52에서, 타이머가 개시될 수 있다. 예를 들면, 제1 마스터(120_1)로부터 제1 슬레이브 인터페이스(142_1)에 액세스 요청이 수신되는 경우, 제1 타이머(144_1)는 개시될 수 있다. 일부 실시예들에서, 도 4를 참조하여 전술된 바와 같이, 제1 타이머(144_1)는 다운-카운터를 포함할 수 있고, 제1 타이머(144_1)의 값은 제1 초기값(INI1)으로부터 감소하기 시작할 수 있다. 일부 실시예들에서, 도 5에 도시된 바와 상이하게, 제1 타이머(144_1)는 제1 마스터(120_1)에 세마포어의 할당이 불가능한 경우, 개시될 수도 있다.
단계 S53에서, 세마포어의 할당 가능 여부가 판정될 수 있다. 예를 들면, 컨트롤러(146)는 제2 내지 제n 마스터(120_2 내지 120_n)에 세마포어가 할당되지 아니한 경우, 제1 마스터(120_1)에 세마포어를 할당가능한 것으로 판정할 수 있다. 도 5에 도시된 바와 같이, 제1 마스터(120_1)에 세마포어의 할당이 가능한 경우, 단계 S54이 후속하여 수행될 수 있는 한편, 제1 마스터(120_1)에 세마포어의 할당이 불가능한 경우, 단계 S55가 후속하여 수행될 수 있다.
단계 S54에서, 마스터에 세마포어가 할당될 수 있다. 예를 들면, 컨트롤러(146)는 제1 마스터(120_1)에 세마포어를 할당할 수 있고, 이에 따라 제1 마스터(120_1)는 자원 공유 인터페이스(140)를 통해서 슬레이브(160)에 액세스할 수 있다. 도 5에 도시된 바와 같이, 단계 S54에 후속하여, 후술되는 단계 S59가 수행될 수 있다.
세마포어의 할당이 불가능한 경우, 단계 S55에서 스로틀 구간의 도과 여부가 판정될 수 있다. 예를 들면, 제1 타이머(144_1)의 값이 제1 문턱값(THR1)에 도달하는 경우, 컨트롤러(146)는 제1 스로틀 구간(T1)이 측정된 것을 식별할 수 있다. 도 5에 도시된 바와 같이, 스로틀 구간이 도과되지 아니한 경우, 단계 S53이 다시 수행될 수 있는 한편, 스로틀 구간이 도과된 경우, 단계 S56이 후속하여 수행될 수 있다.
단계 S56에서, 마스터에 우선권이 부여될 수 있다. 예를 들면, 제1 스로틀 구간(T1)이 도과된 경우, 컨트롤러(146)는 세마포어를 대기 중인 다른 적어도 하나의 마스터보다 제1 마스터(120_1)에 우선적으로 세마포어를 할당할 수 있다. 이에 따라, 제1 내지 제n 마스터(120_1 내지 120_n)에 각각 대응하는 제1 내지 제n 스로틀 구간(T1 내지 Tn)(또는 제1 내지 제n 문턱값(THR1 내지 THRn))은, 제1 내지 제n 마스터(120_1 내지 120_n)에 의해서 각각 수행되는 동작들의 중요도에 기초하여 설정될 수 있다. 예를 들면, 제2 마스터(120_2)가 슬레이브(160)를 액세스함으로써 수행하는 동작이 제1 마스터(120_1)가 슬레이브(160)를 액세스함으로써 수행하는 동작보다 중요한 경우, 도 2에 도시된 바와 같이, 제2 스로틀 구간(T2)이 제1 스로틀 구간(T1)보다 짧을 수 있다.
단계 S57에서, 만료 구간의 도과 여부가 판정될 수 있다. 예를 들면, 제1 타이머(144_1)의 값이 만료값(EXP)에 도달하는 경우, 컨트롤러(146)는 제1 만료 구간(E1)이 측정된 것을 식별할 수 있다. 도 5에 도시된 바와 같이, 만료 구간이 도과되지 아니한 경우(즉, 스로틀 구간 및 만료 구간 사이인 경우), 단계 S53이 다시 수행될 수 있는 한편, 만료 구간이 도과된 경우, 단계 S58이 후속하여 수행될 수 있다.
단계 S58에서, 마스터에 메시지가 제공될 수 있다. 예를 들면, 컨트롤러(146)는 단계 S51에서 제1 마스터(120_1)로부터 수신된 액세스 요청에 대한 처리를 종료할 수 있고, 처리의 종료를 나타내는 메시지를 제1 마스터(120_1)에 제공할 수 있다.
단계 S59에서, 타이머가 리셋될 수 있다. 예를 들면, 컨트롤러(146)는 단계 S52에서 개시된 제1 타이머(144_1)를 리셋할 수 있고, 이에 따라 제1 타이머(144_1)는 리셋값(RST)(또는 제1 초기값(INI1))을 가질 수 있다.
도 6은 본 개시의 예시적 실시예에 따라 자원을 공유하기 우한 방법을 나타내는 순서도이다. 구체적으로, 도 6의 순서도는 마스터에 세마포어를 할당하는 방법, 즉 세마포어 스케줄링의 예시를 나타낸다. 일부 실시예들에서, 도 6의 방법은 도 5의 단계 S53의 예시일 수 있다. 도 6에 도시된 바와 같이, 마스터에 세마포어를 할당하는 방법은 복수의 단계들(S62, S64, S66)을 포함할 수 있다. 일부 실시예들에서, 도 6의 방법은 도 1의 컨트롤러(146)에 의해서 수행될 수 있고, 이하에서 도 6은 도 1을 참조하여 설명될 것이다.
도 6을 참조하면, 단계 S62에서 해제된 세마포어의 존재 여부가 판정될 수 있다. 예를 들면, 컨트롤러(146)는 제1 내지 제n 마스터(120_1 내지 120_n) 중 하나의 마스터가 세마포어를 획득한 상태인 경우, 해당 마스터에 의해서 세마포어가 해제될때까지 단계 S62를 수행할 수 있다. 도 6에 도시된 바와 같이, 마스터에 의해서 세마포어가 해제된 경우, 단계 S64가 후속하여 수행될 수 있다.
단계 S64에서, 타이머들로부터 값들이 획득될 수 있다. 예를 들면, 컨트롤러(146)는, 제1 내지 제n 타이머(144_1 내지 144_2) 중 동작 중인 타이머들, 즉 제1 내지 제n 마스터(120_1 내지 120_n) 중 슬레이브(160)에 대한 액세스 요청을 제공한 마스터들에 대응하는 타이머들로부터 값들을 수신할 수 있다. 하나의 마스터가 슬레이브(160)에 대한 액세스 요청을 제공한 상태에서 세마포어가 해제된 경우, 세마포어는 해당 마스터에 할당될 수 있다. 다른 한편으로, 2이상의 마스터들이 슬레이브(160)에 대한 액세스 요청들을 제공한 상태에서 세마포어가 해제된 경우, 컨트롤러(146)는 2이상의 마스터들 중 세마포어를 할당할 마스터를 선택할 수 있고, 이를 위해 2이상의 타이머들로부터 수신된 값들을 사용할 수 있다. 컨트롤러(146)는, 타이머들로부터 획득된 값들 각각 및 초기값에 기초하여, 액세스 요청이 수신된 시점으로부터 도과된 시간을 식별할 수 있다.
단계 S66에서, 문턱값들 및 타이머들로부터 수신된 값들에 기초하여 마스터를 선택할 수 있다. 예를 들면, 컨트롤러(146)는 단계 S64에서 타이머들로부터 수신된 값들 및 타이들에 각각 대응하는 문턱값들에 기초하여 세마포어를 할당할 마스터를 선택할 수 있다. 도 5를 참조하여 전술된 바와 같이, 도과된 스로틀 구간에 대응하는 마스터가 하나만 존재하는 경우, 컨트롤러(146)는 해당 액세스 요청을 제공한 마스터에 세마포어를 할당할 수 있다. 다른 한편으로, 도 7a를 참조하여 후술되는 바와 같이 도과된 스로틀 구간에 대응하는 2이상의 마스터들이 있거나, 도 7b를 참조하여 후술되는 바와 같이 도과된 스로틀 구간에 대응하는 마스터들이 없는 경우, 컨트롤러(146)는 문턱값들 및 타이머들로 수신된 값들에 기초하여 마스터를 선택할 수 있다. 단계 S66의 예시들이 도 7a 및 도 7b를 참조하여 후술될 것이다.
도 7a 및 도 7b는 본 개시의 예시적 실시예들에 따라 자원을 공유하기 위한 동작의 예시들을 나타내는 도면들이다. 구체적으로, 도 7a 및 도 7b의 상부는 세마포어가 할당된 마스터를 나타내는 타이밍도들이고, 도 7a 및 도 7b의 하부는 도 1의 제1 타이머(144_1)의 값들(710) 및 도 1의 제2 타이머(144_2)의 값들(720)을 시간의 흐름에 따라 나타내는 그래프들이다. 비록 도 7a 및 도 7b는 2개의 마스터들, 즉 제1 및 제2 마스터(120_1, 120_2) 중 하나의 마스터를 선택하는 동작을 나타내나, 본 개시의 예시적 실시예들이 3개 이상의 마스터들 중 하나의 마스터를 선택하는 동작에서도 적용될 수 있는 점은 이해될 것이다. 이하에서, 도 7a 및 도 7b에 대한 설명 중 도 4를 참조하여 전술된 바와 중복되는 내용은 생략될 것이다.
도 7a를 참조하면, 시간 t70에서 제1 타이머(144_1)는 제1 초기값(INI1)으로 설정될 수 있다. 예를 들면, 도 7a에 도시된 바와 같이, 세마포어가 제n 마스터(120_n)에 할당된 상태에서, 제1 마스터(120_1)로부터 세마포어 획득을 위한 액세스 요청이 수신되는 경우, 제1 타이머(144_1)는 제1 초기값(INI1)으로 설정될 수 있고, 제1 타이머(144_1)의 값은 제1 초기값(INI1)으로부터 감소하기 시작할 수 있다.
시간 t71에서, 제2 타이머(144_2)는 제2 초기값(INI2)으로 설정될 수 있다. 예를 들면, 도 7a에 도시된 바와 같이, 세마포어가 제n 마스터(120_n)에 할당된 상태에서, 제2 마스터(120_2)로부터 세마포어 획득을 위한 액세스 요청이 수신되는 경우, 제2 타이머(144_2)는 제2 초기값(INI2)으로 설정될 수 있고, 제2 타이머(144_2)의 값은 제2 초기값(INI2)으로부터 감소하기 시작할 수 있다.
시간 t72에서, 제2 스로틀 구간(T2)이 측정될 수 있다. 예를 들면, 도 7a에 도시된 바와 같이, 제2 타이머(144_2)의 값이 제2 문턱값(THR2)에 도달할 수 있고, 이에 따라 컨트롤러(146)는 제2 스로틀 구간(T2)이 측정된 것을 식별할 수 있다.
시간 t73에서, 제1 스로틀 구간(T1)이 측정될 수 있다. 예를 들면, 도 7a에 도시된 바와 같이, 제1 타이머(144_1)의 값이 제1 문턱값(THR1)에 도달할 수 있고, 이에 따라 컨트롤러(146)는 제1 스로틀 구간(T1)이 측정된 것을 식별할 수 있다.
시간 t74에서, 제2 타이머(144_2)가 리셋될 수 있다. 예를 들면, 시간 t74에서 제n 마스터(120_n)가 세마포어를 해제할 수 있고, 컨트롤러(146)는 해제된 세마포어를 제1 및 제2 마스터(120_1, 120_2) 중 제2 마스터(120_2)에 할당할 수 있다. 일부 실시예들에서, 컨트롤러(146)는 스로틀 구간이 먼저 도과된 마스터에 세마포어를 할당할 수 있다. 예를 들면, 도 7a에 도시된 바와 같이, 컨트롤러(146)는 시간 t74에서 제1 및 제2 타이머(144_1, 144_2)로부터 값들을 수신할 수 있고, 제1 및 제2 초기값(INI1, INI2)에 기초하여 구간 X 및 구간 Y를 식별할 수 있다. 도 7a에 도시된 바와 같이, 제2 마스터(120_2)에 대응하는 구간 X가 제1 마스터(120_1)에 대응하는 구간 Y보다 길 수 있고, 이에 따라 제2 마스터(120_2)에 세마포어가 할당될 수 있다. 컨트롤러(146)는 제2 타이머(144_2)를 리셋할 수 있다.
시간 t75에서, 제1 만료 구간(E1)이 측정될 수 있다. 예를 들면, 도 7a에 도시된 바와 같이, 제1 타이머(144_1)의 값이 만료값(EXP)에 도달할 수 잇고, 이에 따라 컨트롤러(146)는 제1 만료 구간(E1)이 측정된 것을 식별할 수 있다. 컨트롤러(146)는 제1 타이머(144_1)를 리셋할 수 있다.
도 7b를 참조하면, 시간 t76에서 제1 타이머(144_1)는 제1 초기값(INI1)으로 설정될 수 있다. 예를 들면, 도 7a에 도시된 바와 같이, 세마포어가 제n 마스터(120_n)에 할당된 상태에서, 제1 마스터(120_1)로부터 세마포어 획득을 위한 액세스 요청이 수신되는 경우, 제1 타이머(144_1)는 제1 초기값(INI1)으로 설정될 수 있고, 제1 타이머(144_1)의 값은 제1 초기값(INI1)으로부터 감소하기 시작할 수 있다.
시간 t77에서, 제2 타이머(144_2)는 제2 초기값(INI2)으로 설정될 수 있다. 예를 들면, 도 7a에 도시된 바와 같이, 세마포어가 제n 마스터(120_n)에 할당된 상태에서, 제2 마스터(120_2)로부터 세마포어 획득을 위한 액세스 요청이 수신되는 경우, 제2 타이머(144_2)는 제2 초기값(INI2)으로 설정될 수 있고, 제2 타이머(1442_2)의 값은 제2 초기값(INI2)으로부터 감소하기 시작할 수 있다.
시간 t78에서, 제1 타이머(144_1)가 리셋될 수 있다. 예를 들면, 시간 t78에서 제n 마스터(120_n)가 세마포어를 해제할 수 있고, 컨트롤러(146)는 해제된 세마포어를 제1 및 제2 마스터(120_1, 120_2) 중 제1 마스터(120_1)에 할당할 수 있다. 일부 실시예들에서, 컨트롤러(146)는 스로틀 구간에 먼저 도달할 마스터에 세마포어를 할당할 수 있다. 예를 들면, 도 7b에 도시된 바와 같이, 컨트롤러(146)는 시간 t78에서 제1 및 제2 타이머(144_1, 144_2)로부터 값들을 수신할 수 있고, 수신된 값들 및 제1 및 제2 문턱값(THR1, THR2)사이 차이 Z 및 차이 W를 식별할 수 있다. 도 7b에 도시된 바와 같이, 제1 마스터(120_1)에 대응하는 차이 Z가 제2 마스터(120_2)에 대응하는 차이 W보다 작을 수 있고, 이에 따라 제1 마스터(120_1)에 세마포어가 할당될 수 있다. 컨트롤러(146)는 제1 타이머(144_1)를 리셋할 수 있다.
시간 t79에서, 제2 스로틀 구간(T2)이 측정될 수 있다. 예를 들면, 도 7b에 도시된 바와 같이, 제2 타이머(144_2)의 값이 제2 문턱값(THR2)에 도달할 수 있고, 이에 따라 컨트롤러(146)는 제2 스로틀 구간(T2)이 측정된 것을 식별할 수 있다.
도 8a 및 도 8b는 본 개시의 예시적 실시예들에 따라 자원을 공유하기 위한 방법을 나타내는 메시지도들이다. 구체적으로, 도 8a 및 도 8b의 메시지도들은 세마포어 획득을 위한 액세스 요청의 예시들을 나타낸다. 이하에서, 도 8a 및 도 8b에 대한 설명 중 중복되는 내용은 생략될 것이다.
일부 실시예들에서, 마스터는 세마포어를 획득하기 위하여 독출 요청을 자원 공유 인터페이스에 제공할 수 있다. 기입 요청에 대한 응답은 기입의 완료를 나타낼 수 있고, 독출 요청에 대한 응답은 독출된 값(또는 데이터)을 포함할 수 있다. 세마포어를 획득하기 위하여 기입 요청이 사용되고 만료 구간 동안 세마포어가 획득되지 아니한 경우, 자원 공유 인터페이스가 마스터에 기입 요청에 대한 처리의 완료를 전달하기 위한 추가적인 프로토콜이 요구될 수 있다. 다른 한편으로, 세마포어를 획득하기 위하여 독출 요청이 사용되고 만료 구간 동안 세마포어가 획득되지 아니한 경우, 자원 공유 인터페이스는 정상적으로 독출된 값과 상이한 값을 포함하는 메시지를 마스터에 제공할 수 있고, 이에 따라 추가적인 프로토콜이 생략될 수 있다.
도 8a를 참조하면, 단계 S81a에서 제1 마스터(810a)는 제1 독출 요청을 자원 공유 인터페이스(820a)에 제공할 수 있다. 예를 들면, 제1 마스터(810a)는 슬레이브를 액세스하기 위한 세마포어를 획득하기 위하여, 제1 독출 요청을 자원 공유 인터페이스(820a)에 제공할 수 있다. 일부 실시예들에서, 제1 독출 요청은 제1 마스터(810a)가 슬레이브에 액세스함으로써 최초로 수행하고자 하는 독출 동작에 대응할 수 있다. 일부 실시예들에서, 제1 독출 요청은 제1 마스터(810a)가 슬레이브에 최초로 수행하고자 하는 기입 동작에 앞서 자원 공유 인터페이스(820a)에 제공될 수 있다.
단계 S83a에서, 자원 공유 인터페이스(820a)는 제1 마스터(810a)에 세마포어를 할당할 수 있다. 그 다음에 단계 S85a에서, 자원 공유 인터페이스(820a)는 독출된 값을 제1 마스터(810a)에 제공할 수 있다. 이에 따라, 제1 마스터(810a)는 단계 S81a에서 제공한 제1 독출 요청에 대응하는 값(또는 데이터)을 수신할 수 있고, 제1 마스터(810a)에 세마포어가 할당된 것을 식별할 수 있다. 세마포어를 획득한 제1 마스터(810a)는 필요한 동작에 따라 독출 요청 및/또는 기입 요청을 자원 공유 인터페이스(820a)에 제공할 수 있다.
단계 S87a에서, 제1 마스터(810a)는 제2 독출 요청을 자원 공유 인터페이스(820a)에 제공할 수 있다. 예를 들면, 제1 마스터(810a)는 슬레이브를 액세스하기 위한 세마포어를 획득하기 위하여, 제2 독출 요청을 자원 공유 인터페이스(820a)에 제공할 수 있다.
단계 S89a에서, 자원 공유 인터페이스(820a)는 세마포어의 할당 실패를 나타내는 값을 제공할 수 있다. 도 8a에 도시된 바와 같이, 단계 S87a에서 제2 독출 요청이 수신된 시점으로부터 제1 만료 구간(E1) 동안 제1 마스터(810a)에 세마포어가 할당되지 아니하는 경우, 자원 공유 인터페이스(820a)는 제2 독출 요청에 대한 처리를 종료할 수 있다. 자원 공유 인터페이스(820a)는 제2 독출 요청에 대한 처리의 종료를 제1 마스터(810a)에 알리기 위하여, 제2 독출 요청에 응답하여 정상적으로 독출될 수 없는 값을 제1 마스터(810a)에 제공할 수 있다. 예를 들면, 단계 S87a의 제2 독출 요청은 레지스터의 값을 독출하기 위한 것일 수 있고, 자원 공유 인터페이스(820a)는 해당 레지스터의 값으로 정의되지 아니한 값을 제1 마스터(810a)에 제공할 수 있다. 이에 따라, 제1 마스터(810a)는 자원 공유 인터페이스(820a)로부터 수신된 값에 기초하여 세마포어 획득의 실패를 식별할 수 있다.
도 8b를 참조하면, 단계 S81b에서 제1 마스터(810b)는 제3 독출 요청을 자원 공유 인터페이스(820b)에 제공할 수 있다. 예를 들면, 제1 마스터(810b)는 슬레이브를 액세스하기 위한 세마포어를 획득하기 위하여 제3 독출 요청을 자원 공유 인터페이스(820b)에 제공할 수 있다. 일부 실시예들에서, 제3 독출 요청은 세마포어를 획득하기 위한 전용의 액세스 요청일 수 있고, 제1 마스터(810b)는 슬레이브에 액세스함으로써 최초로 수행하고자하는 동작(예컨대, 독출 동작 또는 기입 동작)에 앞서 제3 독출 요청을 자원 공유 인터페이스(820b)에 제공할 수 있다.
단계 S83b에서, 자원 공유 인터페이스(820b)는 제1 마스터(810b)에 세마포어를 할당할 수 있다. 그 다음에 단계 S85b에서, 자원 공유 인터페이스(820b)는 세마포어의 할당을 나타내는 값을 제1 마스터(810b)에 제공할 수 있다. 전술된 바와 같이, 세마포어의 획득을 위한 전용의 제3 독출 요청이 정의될 수 있고, 제3 독출 요청에 응답하여 제1 마스터(810b)에 제공되는, 세마포어의 할당을 나타내는 값 및 세마포어의 할당 실패를 나타내는 값이 미리 정의될 수 있다. 이에 따라, 제1 마스터(810b)는 제1 마스터(810b)에 세마포어가 할당된 것을 식별할 수 있고, 세마포어를 획득한 제1 마스터(810b)는 필요한 동작에 따라 독출 요청 및/또는 기입 요청을 자원 공유 인터페이스(820b)에 제공할 수 있다.
단계 S87b에서, 제1 마스터(810b)는 제4 독출 요청을 자원 공유 인터페이스(820b)에 제공할 수 있다. 예를 들면, 제1 마스터(810b)는 슬레이브를 액세스하기 위한 세마포어를 획득하기 위하여 제4 독출 요청을 자원 공유 인터페이스(820b)에 제공할 수 있다.
단계 S89b에서, 자원 공유 인터페이스(820b) 세마포어의 할당 실패를 나타내는 값을 제공할 수 있다. 도 8a에 도시된 바와 같이, 단계 S87b에서 제4 독출 요청이 수신된 시점으로부터 제1 만료 구간(E1) 동안 제1 마스터(810b)에 세마포어가 할당되지 아니하는 경우, 자원 공유 인터페이스(820b)는 제4 독출 요청에 대한 처리를 종료할 수 있다. 자원 공유 인터페이스(820b)는 제4 독출 요청에 대한 처리의 종료를 제1 마스터(810b)에 알리기 위하여, 미리 정의된 값을 제1 마스터(810a)에 제공할 수 있다. 이에 따라, 제1 마스터(810b)는 자원 공유 인터페이스(820b)로부터 수신된 값에 기초하여 세마포어 획득의 실패를 식별할 수 있다.
도 9는 본 개시의 예시적 실시예에 따라 자원 공유를 위한 방법을 나타내는 메시지도이다. 구체적으로, 도 9의 메시지도는 세마포어를 해제하는 동작의 예시를 나타낸다. 이하에서, 도 9를 참조하여 설명되는 바와 같이, 세마포어는 일반적인 액세스 요청에 의해서 해제될 수 있고, 이에 따라 세마포어의 해제를 위한 추가적인 프로토콜이 생략될 수 있다.
도 9를 참조하면, 단계 S91에서 제1 마스터(910)는 제1 액세스 요청을 자원 공유 인터페이스(920)에 제공할 수 있다. 예를 들면, 제1 마스터(910)는 슬레이브를 액세스하기 위한 세마포어를 획득하기 위하여 제1 액세스 요청을 자원 공유 인터페이스(920)에 제공할 수 있다. 그 다음에, 단계 S93에서 자원 공유 인터페이스(920)는 제1 마스터(910)에 세마포어를 할당할 수 있다.
단계 S95에서, 제1 마스터(910)는 제2 액세스 요청을 자원 공유 인터페이스(920)에 제공할 수 있다. 예를 들면, 제1 마스터(910)는 세마포어를 해제하기 위하여 제2 액세스 요청을 자원 공유 인터페이스(920)에 제공할 수 있다. 일부 실시예들에서, 제1 마스터(910)는 특정 주소를 액세스하는 액세스 요청을 세마포어의 해제를 위하여 사용할 수 있다. 예를 들면, 제2 액세스 요청은, 미리 정의된 주소를 포함하는 독출 요청 또는 기입 요청일 수 있다.
단계 S97에서, 자원 공유 인터페이스(920)는 제2 액세스 요청에 포함된 어드레스(ADR)가 미리 정의된 값(REL)과 일치하는지 여부를 판정할 수 있다. 도 9에 도시된 바와 같이, 어드레스(ADR)가 미리 정의된 값(REL)과 일치하는 경우, 자원 공유 인터페이스(920)는 세마포어의 해제를 식별할 수 있다.
도 10은 본 개시의 예시적 실시예에 따른 시스템-온-칩(10)을 나타내는 블록도이다. 일부 실시예들에서, 시스템-온-칩(10)은 반도체 공정을 통해서 제조될 수 있고, 다양한 제품들에 부품으로서 포함될 수 있다. 도 10에 도시된 바와 같이, 시스템-온-칩(10)은 제1 내지 제n 프로세서(11_1 내지 11_n), DMA(direct memory access) 컨트롤러(13), 자원 공유 인터페이스(15), 커넥티비티 장치(17) 및 버스(19)를 포함할 수 있다(n은 1보다 큰 정수).
제1 내지 제n 프로세서(11_1 내지 11_n) 및 DMA 컨트롤러(13)는 마스터들일 수 있고, 슬레이브인 커넥티비티 장치(17)를 공유할 수 있다. 예를 들면, 커넥티비티 장치(17)는, WiFi, Bluetooth, I2C, I2S 등과 같이 시스템-온-칩(10) 외부의 대상과 통신 채널을 제공할 수 있고, 제1 내지 제n 프로세서(11_1 내지 11_n) 및 DMA 컨트롤러(13)는 커넥티비티 장치(17)에 액세스함으로써 시스템-온-칩(10)의 외부로부터 수신된 데이터를 사용하거나, 시스템-온-칩(10)의 외부로 데이터를 제공할 수 있다.
자원 공유 인터페이스(15)는 커넥티비티 장치(17)가 효율적으로 공유되도록, 커넥티비티 장치(17) 및 마스터들, 즉 제1 내지 제n 프로세서(11_1 내지 11_n) 및 DMA 컨트롤러(13) 사이에서 인터페이스를 제공할 수 있다. 예를 들면, 도면들을 참조하여 전술된 바와 같이, 자원 공유 인터페이스(15)는 마스터가 커넥티비티 장치(17)를 액세스하기 위한 세마포어의 획득을 스로틀 시간 동안 대기한 경우, 해당 마스터에 스로틀 시간의 도과를 나타내는 메시지를 제공할 수 있다. 또한, 자원 공유 인터페이스(15)는 마스터가 커넥티비티 장치(17)를 액세스하기 위한 세마포어의 획득을 만료 시간 동안 대기한 경우, 해당 마스터에 액세스 요청에 대한 처리의 완료를 나타내는 메시지를 제공할 수 있다. 스로틀 시간 및 만료 시간은 자원 공유 인터페이스(15)에서 마스터들 상호간에 독립적으로 정의되고 측정될 수 있고, 자원 공유 인터페이스(15)는 마스터들에 각각 대응하는 타이머들을 포함할 수 있다. 세마포어의 획득 또는 해제를 위하여 마스터가 자원 공유 인터페이스(15)에 제공하는 메시지는 일반적인 액세스 요청일 수 있고, 이에 따라 세마포어의 획득 또는 해제를 위한 추가적인 프로토콜이 생략될 수 있다.
본 개시는 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.

Claims (10)

  1. 복수의 마스터 장치들 및 슬레이브 장치 사이 인터페이스를 제공하도록 구성된 장치로서,
    버스를 통해 제1 마스터 장치로부터 제1 액세스 요청이 수신되는 경우 개시되고, 상기 제1 마스터 장치에 세마포어(semaphore)가 할당되는 경우 리셋되도록 구성된 제1 타이머;
    상기 버스를 통해 제2 마스터 장치로부터 제2 액세스 요청이 수신되는 경우 개시되고, 상기 제2 마스터 장치에 세마포어가 할당되는 경우 리셋되도록 구성된 제2 타이머; 및
    상기 제1 타이머에 의해서 제1 만료(expiration) 구간이 측정되는 경우, 상기 버스를 통해 상기 제1 마스터 장치에 제1 메시지를 제공하고, 상기 제2 타이머에 의해서 제2 만료 구간이 측정되는 경우, 상기 버스를 통해 상기 제2 마스터 장치에 상기 제1 메시지를 제공하도록 구성된 컨트롤러를 포함하는 장치.
  2. 청구항 1에 있어서,
    상기 제1 만료 구간 및 상기 제2 만료 구간은, 상이한 것을 특징으로 하는 장치.
  3. 청구항 1에 있어서,
    상기 제1 타이머는, 상기 제1 만료 구간이 측정되는 경우 리셋되거나 중지되도록 구성되고,
    상기 제2 타이머는, 상기 제2 만료 구간이 측정되는 경우 리셋되거나 중지되도록 구성된 것을 특징으로 하는 장치.
  4. 청구항 1에 있어서,
    상기 컨트롤러는,
    상기 제1 타이머에 의해서 상기 제1 만료 구간 보다 짧은 제1 스로틀(throttle) 구간이 측정되는 경우, 상기 버스를 통해 상기 제1 마스터 장치에 제2 메시지를 제공하고,
    상기 제2 타이머에 의해서 상기 제2 만료 구간 보다 짧은 제2 스로틀 구간이 측정되는 경우, 상기 버스를 통해 상기 제2 마스터 장치에 상기 제2 메시지를 제공하도록 구성된 것을 특징으로 하는 장치.
  5. 청구항 4에 있어서,
    상기 제1 스로틀 구간 및 상기 제2 스로틀 구간은, 상이한 것을 특징으로 하는 장치.
  6. 청구항 4에 있어서,
    상기 컨트롤러는, 상기 제1 스로틀 구간이 측정되고 상기 제2 스로틀 구간이 측정되지 아니한 경우, 상기 제1 마스터 장치에 세마포어를 할당하도록 구성된 것을 특징으로 하는 장치.
  7. 청구항 4에 있어서,
    상기 컨트롤러는,
    상기 제1 타이머로부터 제1 값을 수신하고,
    상기 제2 타이머로부터 제2 값을 수신하고,
    상기 제1 값과 상기 제1 스로틀 구간에 대응하는 제3 값 사이 차이 및 상기 제2 값과 상기 제2 스로틀 구간에 대응하는 제4 값 사이 차이에 기초하여, 상기 제1 마스터 장치 및 상기 제2 마스터 장치 중 하나에 세마포어를 할당하도록 구성된 것을 특징으로 하는 장치.
  8. 청구항 1에 있어서,
    상기 제1 액세스 요청 및 상기 제2 액세스 요청 각각은, 상기 슬레이브 장치에 대한 독출(read) 요청이고,
    상기 제1 메시지는, 세마포어의 할당 실패를 나타내는 값을 포함하는 것을 특징으로 하는 장치.
  9. 청구항 8에 있어서,
    상기 컨트롤러는,
    상기 제1 마스터 장치에 세마포어가 할당되는 경우 세마포어의 할당을 나타내는 값을 포함하는 제3 메시지를 상기 버스를 통해 상기 제1 마스터 장치에 제공하고,
    상기 제2 마스터 장치에 세마포어가 할당되는 경우 세마포어의 할당을 나타내는 값을 포함하는 상기 제3 메시지를 상기 버스를 통해 상기 제2 마스터 장치에 제공하도록 구성된 것을 특징으로 하는 장치.
  10. 청구항 1에 있어서,
    상기 컨트롤러는, 세마포어가 할당된 상기 제1 마스터 장치 또는 상기 제2 마스터 장치로부터 제1 어드레스를 포함하는 액세스 요청이 수신되는 경우, 세마포어의 해제를 식별하도록 구성된 것을 특징으로 하는 장치.
KR1020210040543A 2021-03-29 2021-03-29 버스를 통해 자원을 공유하기 위한 장치 및 방법 Pending KR20220135048A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020210040543A KR20220135048A (ko) 2021-03-29 2021-03-29 버스를 통해 자원을 공유하기 위한 장치 및 방법
CN202210035731.4A CN115145851A (zh) 2021-03-29 2022-01-13 经由总线共享资源的装置和方法
US17/579,882 US11914536B2 (en) 2021-03-29 2022-01-20 Device and method for sharing resource via bus
US18/425,977 US12468646B2 (en) 2021-03-29 2024-01-29 Device and method for sharing resource via bus
US19/348,939 US20260030189A1 (en) 2021-03-29 2025-10-03 Device and method for sharing resource via bus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210040543A KR20220135048A (ko) 2021-03-29 2021-03-29 버스를 통해 자원을 공유하기 위한 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20220135048A true KR20220135048A (ko) 2022-10-06

Family

ID=83363366

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210040543A Pending KR20220135048A (ko) 2021-03-29 2021-03-29 버스를 통해 자원을 공유하기 위한 장치 및 방법

Country Status (3)

Country Link
US (3) US11914536B2 (ko)
KR (1) KR20220135048A (ko)
CN (1) CN115145851A (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220135048A (ko) 2021-03-29 2022-10-06 삼성전자주식회사 버스를 통해 자원을 공유하기 위한 장치 및 방법
CN115685776B (zh) * 2022-10-10 2025-04-25 合肥美的电冰箱有限公司 总线通信控制方法、装置、设备及存储介质
CN116599791A (zh) * 2023-06-08 2023-08-15 长沙市英威腾电气技术有限公司 一种多主站点访问从站点的通讯方法、装置以及介质

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3999170A (en) * 1975-01-08 1976-12-21 Hewlett-Packard Company Multiple access interconnect system
CA1321842C (en) * 1988-05-11 1993-08-31 Digital Equipment Corporation Double unequal bus timeout
US4987529A (en) * 1988-08-11 1991-01-22 Ast Research, Inc. Shared memory bus system for arbitrating access control among contending memory refresh circuits, peripheral controllers, and bus masters
US5179669A (en) * 1988-08-22 1993-01-12 At&T Bell Laboratories Multiprocessor interconnection and access arbitration arrangement
JP2637788B2 (ja) * 1988-09-02 1997-08-06 株式会社日立製作所 ディスクキャッシュ制御方式および情報処理システム
US5287486A (en) * 1989-10-05 1994-02-15 Mitsubishi Denki Kabushiki Kaisha DMA controller using a programmable timer, a transfer counter and an or logic gate to control data transfer interrupts
EP0426413B1 (en) * 1989-11-03 1997-05-07 Compaq Computer Corporation Multiprocessor arbitration in single processor arbitration schemes
CA2051029C (en) * 1990-11-30 1996-11-05 Pradeep S. Sindhu Arbitration of packet switched busses, including busses for shared memory multiprocessors
US5838894A (en) * 1992-12-17 1998-11-17 Tandem Computers Incorporated Logical, fail-functional, dual central processor units formed from three processor units
JP2972491B2 (ja) 1993-07-09 1999-11-08 株式会社日立製作所 バス制御機構及び計算機システム
US6178475B1 (en) * 1994-12-19 2001-01-23 Advanced Micro Devices Inc. Multimedia system employing timers to properly allocate bus access
US6212589B1 (en) * 1995-01-27 2001-04-03 Intel Corporation System resource arbitration mechanism for a host bridge
US5572686A (en) * 1995-06-05 1996-11-05 Apple Computer, Inc. Bus arbitration scheme with priority switching and timer
US5754887A (en) * 1995-06-07 1998-05-19 International Business Machines Corporation System for limiting access of plurality of requests to peripheral bus by halting transmission to particular peripheral devices and resuming transmission after second predetermined time period expiration
US6108735A (en) * 1995-09-29 2000-08-22 Intel Corporation Method and apparatus for responding to unclaimed bus transactions
US5943483A (en) * 1995-12-11 1999-08-24 Lsi Logic Corporation Method and apparatus for controlling access to a bus in a data processing system
US5956493A (en) * 1996-03-08 1999-09-21 Advanced Micro Devices, Inc. Bus arbiter including programmable request latency counters for varying arbitration priority
US5764931A (en) 1996-05-31 1998-06-09 Sun Microsystems, Inc. Method and apparatus for passing bus mastership between processors using predefined bus mastership states
US5907688A (en) * 1996-06-28 1999-05-25 Intel Corporation Smart arbitration for non-symmetric data streams
US6115799A (en) * 1996-07-19 2000-09-05 Canon Kabushiki Kaisha Information processing apparatus and associated method for managing a memory using a next fit and for reducing a memory fragmentation problem
US5894562A (en) * 1996-10-28 1999-04-13 Motorola, Inc. Method and apparatus for controlling bus arbitration in a data processing system
GB9719047D0 (en) * 1997-09-08 1997-11-12 Sgs Thomson Microelectronics Arbitration system
US6105094A (en) * 1998-01-26 2000-08-15 Adaptec, Inc. Method and apparatus for allocating exclusive shared resource requests in a computer system
US6098117A (en) * 1998-04-20 2000-08-01 National Instruments Corporation System and method for controlling access to memory configured within an I/O module in a distributed I/O system
US6157978A (en) * 1998-09-16 2000-12-05 Neomagic Corp. Multimedia round-robin arbitration with phantom slots for super-priority real-time agent
US6708240B1 (en) * 2000-03-31 2004-03-16 Intel Corporation Managing resources in a bus bridge
US6807623B2 (en) * 2000-07-27 2004-10-19 Matsushita Electric Industrial Co., Ltd. Data processing control system, controller, data processing control method, program, and medium
GB2370131C (en) * 2000-12-12 2006-09-06 Advanced Risc Mach Ltd Exclusive access control to a processing resource
US7124224B2 (en) * 2000-12-22 2006-10-17 Intel Corporation Method and apparatus for shared resource management in a multiprocessing system
US20020133530A1 (en) * 2001-03-15 2002-09-19 Maarten Koning Method for resource control including resource stealing
US7454753B2 (en) * 2001-06-27 2008-11-18 International Business Machines Corporation Semaphore management subsystem for use with multi-thread processor systems
US7159220B2 (en) * 2001-09-28 2007-01-02 Intel Corporation Flexible acceleration of java thread synchronization on multiprocessor computers
JP4022719B2 (ja) 2001-12-18 2007-12-19 株式会社日立製作所 優先順位制御システム
US7174552B2 (en) * 2002-01-12 2007-02-06 Intel Corporation Method of accessing a resource by a process based on a semaphore of another process
US6880028B2 (en) * 2002-03-18 2005-04-12 Sun Microsystems, Inc Dynamic request priority arbitration
TWI258081B (en) * 2002-04-04 2006-07-11 Via Tech Inc Arbitrating method and arbiter for bus grant
US7149227B2 (en) * 2002-05-31 2006-12-12 Mellanox Technologies Ltd. Round-robin arbiter with low jitter
US7379738B2 (en) * 2002-08-05 2008-05-27 Telefonaktiebolaget Lm Ericsson (Publ) Information service broadcast control in a wireless communication network
US6920627B2 (en) * 2002-12-13 2005-07-19 Xilinx, Inc. Reconfiguration of a programmable logic device using internal control
US7062582B1 (en) * 2003-03-14 2006-06-13 Marvell International Ltd. Method and apparatus for bus arbitration dynamic priority based on waiting period
US7080217B2 (en) * 2003-03-31 2006-07-18 Intel Corporation Cycle type based throttling
WO2005117482A1 (ja) * 2004-05-27 2005-12-08 Matsushita Electric Industrial Co., Ltd. 通信装置及び通信方法
KR100784385B1 (ko) * 2005-08-10 2007-12-11 삼성전자주식회사 공유 자원에 대한 접근 요청을 중재하는 시스템 및 방법
US20080089361A1 (en) * 2005-10-06 2008-04-17 Metcalf Thomas D System and method for transferring data
US7366810B2 (en) * 2005-11-16 2008-04-29 Via Technologies, Inc. Method and system for multi-processor arbitration
US7774779B2 (en) * 2005-11-18 2010-08-10 At&T Intellectual Property I, L.P. Generating a timeout in a computer software application
JP2008287558A (ja) * 2007-05-18 2008-11-27 Renesas Technology Corp 半導体装置及びマイクロコンピュータ
US20090172675A1 (en) * 2007-12-31 2009-07-02 Advanced Micro Devices, Inc. Re-Entrant Atomic Signaling
JP2011065359A (ja) 2009-09-16 2011-03-31 Canon Inc メモリシステム
JP2011113415A (ja) * 2009-11-27 2011-06-09 Hitachi Ltd 制御システム及びcpuユニット
US8751715B1 (en) * 2010-03-31 2014-06-10 Enc Corporation System and method for controlling device access
US8307031B1 (en) * 2010-04-28 2012-11-06 Google Inc. Processing data requests using multiple request timers
WO2012093475A1 (ja) * 2011-01-05 2012-07-12 富士通株式会社 情報転送装置および情報転送装置の情報転送方法
US8745369B2 (en) * 2011-06-24 2014-06-03 SanDisk Technologies, Inc. Method and memory system for managing power based on semaphores and timers
US9372500B2 (en) * 2014-02-27 2016-06-21 Applied Micro Circuits Corporation Generating a timeout signal based on a clock counter associated with a data request
KR102285749B1 (ko) 2014-11-10 2021-08-05 삼성전자주식회사 세마포어 기능을 갖는 시스템 온 칩 및 그것의 세마포어 구현 방법
US9830331B2 (en) * 2015-05-04 2017-11-28 Netapp, Inc. Cluster scale synchronization of producer consumer file access via multi-protocol nodes
KR102360214B1 (ko) 2015-08-26 2022-02-08 삼성전자주식회사 실시간 공유 인터페이스를 포함하는 시스템 온 칩의 스케쥴링 방법
KR102560229B1 (ko) * 2016-06-29 2023-07-27 삼성전자주식회사 전자 시스템 및 이의 동작 방법
CN111666594B (zh) 2019-03-07 2025-04-15 恩智浦美国有限公司 基于时间的安全访问控制系统
KR20220085741A (ko) * 2020-12-15 2022-06-22 삼성전자주식회사 Sl 통신을 위한 활성 시간을 처리하는 방법
US11886938B2 (en) * 2021-03-11 2024-01-30 Microsoft Technology Licensing, Llc Message communication between integrated computing devices
KR20220135048A (ko) 2021-03-29 2022-10-06 삼성전자주식회사 버스를 통해 자원을 공유하기 위한 장치 및 방법

Also Published As

Publication number Publication date
US20260030189A1 (en) 2026-01-29
US11914536B2 (en) 2024-02-27
US20240168900A1 (en) 2024-05-23
CN115145851A (zh) 2022-10-04
US20220309015A1 (en) 2022-09-29
US12468646B2 (en) 2025-11-11

Similar Documents

Publication Publication Date Title
US12468646B2 (en) Device and method for sharing resource via bus
TWI673955B (zh) 具有信號標功能的系統晶片以及信號標指派方法
US10169256B2 (en) Arbitrating direct memory access channel requests
US10078568B1 (en) Debugging a computing device
US9798686B2 (en) Slave side bus arbitration
KR101380364B1 (ko) 적어도 하나의 dma 주변장치 및 직각위상 클록으로 동작하는 cpu 사이의 싱글 포트 sram의 대역폭 공유
CN106326130A (zh) 寄存器地址空间的控制方法、控制器及片上系统
CN116893930A (zh) 处理系统、相关集成电路以及设备和方法
JP6201591B2 (ja) 情報処理装置および情報処理装置の制御方法
US10983937B2 (en) Method for managing access to a shared bus and corresponding electronic device
CN117707426A (zh) 一种芯粒、io资源共享方法、片上系统及电子设备
JP7233932B2 (ja) 仮想割り込みサービスプロバイダのためのサービス要求割り込みルータ
US20080195782A1 (en) Bus system and control method thereof
CN109597651B (zh) 一种基于mpc7410处理器的串口和网口模块开发方法
JPH08263312A (ja) バス仲裁方法及びその装置
CN102945214B (zh) 基于io延迟时间分布优化中断处理任务的方法
CN110825671A (zh) 一种多晶片系统
US9323702B2 (en) Increasing coverage of delays through arbitration logic
US8176304B2 (en) Mechanism for performing function level reset in an I/O device
US8135878B1 (en) Method and apparatus for improving throughput on a common bus
WO2018107394A1 (en) I/o emulation abortion in virtualized environments
JP2010092101A (ja) 情報処理装置
US10698779B2 (en) Clustered disk error recovery
TWI922656B (zh) PCIe功能、計算系統及其操作方法
JP2002342266A (ja) データプロセッサ

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D21 Rejection of application intended

Free format text: ST27 STATUS EVENT CODE: A-1-2-D10-D21-EXM-PE0902 (AS PROVIDED BY THE NATIONAL OFFICE)

PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902