KR20230013828A - 시스템 온 칩 및 시스템 온 칩의 동작 방법 - Google Patents

시스템 온 칩 및 시스템 온 칩의 동작 방법 Download PDF

Info

Publication number
KR20230013828A
KR20230013828A KR1020210094772A KR20210094772A KR20230013828A KR 20230013828 A KR20230013828 A KR 20230013828A KR 1020210094772 A KR1020210094772 A KR 1020210094772A KR 20210094772 A KR20210094772 A KR 20210094772A KR 20230013828 A KR20230013828 A KR 20230013828A
Authority
KR
South Korea
Prior art keywords
data
traffic
controller
real
queues
Prior art date
Application number
KR1020210094772A
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 KR1020210094772A priority Critical patent/KR20230013828A/ko
Priority to US17/699,451 priority patent/US20230021873A1/en
Priority to CN202210850288.6A priority patent/CN115640255A/zh
Publication of KR20230013828A publication Critical patent/KR20230013828A/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7814Specially adapted for real time processing, e.g. comprising hardware timers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/781On-chip cache; Off-chip memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

시스템 온 칩이 제공된다. 상기 시스템 온 칩은 실시간(Real time) 방식으로 데이터를 처리하는 제1 기능 블록(IP; Intellectual Property)을 포함하는 복수의 기능 블록, 제1 기능 블록에서 출력되는 제1 데이터의 트래픽에 대해 제1 모니터링을 수행하고, 제1 모니터링을 기초로 제1 데이터의 트래픽에 대한 제1 트래픽 데이터를 생성하는 제1 트래픽 컨트롤러 및 복수의 큐를 포함하는 버퍼 및 제1 트래픽 데이터를 기초로 복수의 큐의 적어도 일부를 제1 데이터의 전송을 위한 제1 전용 구역으로 예약(reserve)하는 버퍼 제어부를 포함하는 컨트롤러를 포함한다.

Description

시스템 온 칩 및 시스템 온 칩의 동작 방법{A SYSTEM ON CHIP AND A OPERATING METHOD OF THE SEMICONDUCTOR PACKAGE}
본 발명은 시스템 온 칩 및 시스템 온 칩의 동작 방법에 관한 것이다.
모바일 환경에서, 스마트폰이나 태블릿 기기 등의 모바일 기기에 애플리케이션 프로세서(AP: Application Processor)가 널리 사용되고 있다. 애플리케이션 프로세서는 시스템 온 칩(system on chip, SoC) 형태로 구현될 수 있다. 시스템 온 칩은 하나의 집적회로에 집적된 컴퓨터나 전자 시스템 부품을 의미하며, 일반적으로 임베디드 시스템 영역에 주로 사용된다.
모바일 기기의 고성능화, 기능의 다양화, 크기의 축소화에 대한 경쟁이 치열해지고 있다. 이러한 추세 속에, 애플리케이션 프로세서에 수많은 기능 블록(IP, Intellectual Property)들이 포함되게 되었다.
기능 블록의 종류와 개수의 증가에 따라 애플리케이션 프로세서의 동작에 대한 시나리오 또한 복잡해지고, 각각의 기능 블록에 대한 시나리오 별 예상 출력치가 고정적으로 높게 잡히면서, 실시간(Real time) 데이터 처리를 요하는 기능 블록들의 데이터 처리 안정성이 문제되고 애플리케이션 프로세서의 전체적인 데이터 트래픽(traffic)에서의 성능 감소가 발생하고 있다.
본 발명이 해결하고자 하는 기술적 과제는, 실시간 마스터 기능 블록의 트래픽을 동적(Dynamic)으로 반영하여, 버퍼에 실시간 마스터 기능 블록에 대한 전용 구역을 예약하여 데이터 처리의 안정성을 높인 시스템 온 칩을 제공하는 것이다.
본 발명이 해결하고자 하는 기술적 과제는, 버퍼 내 잔여 큐 파악을 통해 비실시간 마스터 기능 블록의 데이터 트래픽을 제어하여, 전체적인 데이터 트래픽에서의 성능을 향상시킨 시스템 온 칩을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 해당 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 몇몇 실시 예에 따른 시스템 온 칩은 실시간(Real time) 방식으로 데이터를 처리하는 제1 기능 블록(IP; Intellectual Property)을 포함하는 복수의 기능 블록, 제1 기능 블록에서 출력되는 제1 데이터의 트래픽에 대해 제1 모니터링을 수행하고, 제1 모니터링을 기초로 제1 데이터의 트래픽에 대한 제1 트래픽 데이터를 생성하는 제1 트래픽 컨트롤러 및 복수의 큐를 포함하는 버퍼 및 제1 트래픽 데이터를 기초로 복수의 큐의 적어도 일부를 제1 데이터의 전송을 위한 제1 전용 구역으로 예약(reserve)하는 버퍼 제어부를 포함하는 컨트롤러를 포함한다.
상기 기술적 과제를 달성하기 위한 몇몇 실시 예에 따른 시스템 온 칩은 제1 및 제2 기능 블록(IP; Intellectual Property)을 포함하는 복수의 기능 블록, 제1 기능 블록에서 출력되는 제1 데이터의 트래픽을 모니터링하고, 제1 데이터의 트래픽에 대한 제1 트래픽 데이터를 생성하는 제1 트래픽 컨트롤러, 제2 기능 블록에서 출력되는 제2 데이터의 트래픽을 모니터링하고, 제2 데이터의 트래픽을 제어하는 제2 트래픽 컨트롤러 및 복수의 큐를 포함하는 버퍼 및 복수의 큐 중 동작 대기 중인 잔여 큐가 부존재하는 경우 제2 트래픽 컨트롤러에 블록 신호를 제공하여 제2 기능 블록에 대한 트래픽을 차단하는 버퍼 제어부를 포함하는 컨트롤러를 포함하되, 버퍼 제어부는 블록 신호를 제1 트래픽 컨트롤러에 미제공한다.
상기 기술적 과제를 달성하기 위한 몇몇 실시 예에 따른 시스템 온 칩의 동작 방법은 실시간(Real time) 방식으로 데이터를 처리하는 제1 기능 블록(IP; Intellectual Property)에서 출력되는 제1 데이터의 트래픽에 대해 제1 모니터링을 수행하고, 제1 모니터링을 기초로 제1 데이터의 트래픽에 대한 제1 트래픽 데이터를 생성하고, 제1 트래픽 데이터를 기초로 버퍼 내 복수의 큐의 적어도 일부를 제1 데이터의 전송을 위한 제1 전용 구역으로 예약(reserve)하는 것을 포함한다.
도 1은 본 발명의 몇몇 실시예들에 따른 시스템 온 칩을 포함하는 전자 장치를 설명하기 위한 블록도이다.
도 2는 본 발명의 몇몇 실시예들에 따른 메모리 컨트롤러를 설명하기 위한 도면이다.
도 3 및 도 4는 본 발명의 몇몇 실시예들에 따른 트래픽 컨트롤러를 설명하기 위한 도면들이다.
도 5는 본 발명의 몇몇 실시예들에 따른 시스템 온 칩의 동작 방법을 설명하기 위한 순서도이다.
도 6 내지 도 11은 본 발명의 몇몇 실시예들에 따른 시스템 온 칩의 동작 방법을 설명하기 위한 도면들이다.
도 12는 본 발명의 몇몇 실시예들에 따른 시스템 온 칩의 동작 방법을 설명하기 위한 순서도이다.
도 13 내지 도 14는 본 발명의 몇몇 실시예들에 따른 시스템 온 칩의 동작 방법을 설명하기 위한 도면들이다.
도 15는 본 발명의 몇몇 실시예들에 따른 시스템 온 칩의 효과를 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 기술적 사상에 따른 실시예들에 대해 설명한다. 도 1 내지 도 15의 설명에서 실질적으로 동일한 구성 요소에 대해서는 동일한 도면 부호 사용하며, 해당 구성요소에 대한 중복된 설명은 생략하기로 한다. 또한 본 발명의 여러 도면에 걸쳐서, 유사한 구성요소에 대해서는 유사한 참조부호가 사용된다.
도 1은 본 발명의 몇몇 실시예들에 따른 시스템 온 칩을 포함하는 전자 장치를 설명하기 위한 블록도이다. 도 2는 본 발명의 몇몇 실시예들에 따른 메모리 컨트롤러를 설명하기 위한 도면이다. 도 3 및 도 4는 본 발명의 몇몇 실시예들에 따른 트래픽 컨트롤러를 설명하기 위한 도면들이다.
도 1 내지 도 4를 참조하면, 전자 장치(1)는 시스템 온 칩(10), 메모리(30), 저장 장치(40)을 포함한다. 도면에 도시되지 않았지만, 전자 장치(1)는 액정 표시 장치, 터치 패널, 보안 블록 등을 포함할 수 있고, 전자 장치(1)의 구성 요소들은 도시된 구성 요소들에만 국한되지 않음은 잘 이해될 것이다.
전자 장치(1)는 이동국, 고정 또는 이동 가입자국, 페이저, 셀룰러 전화, 개인 휴대 단말기(PDA), 스마트폰, 랩탑, 넷북, 퍼스널 컴퓨터 또는 무선 센서등을 포함할 수 있다.
시스템 온 칩(10)은 하나의 칩으로 제조될 수 있고, 실시예에 따라 애플리케이션 프로세서로 동작할 수 있다. 사용자의 요청에 따라 다양한 애플리케이션(Application)을 실행할 수 있다. 시스템 온 칩(10)은 애플리케이션을 수행하기 위해, 메모리(30)에 애플리케이션을 로드(Load)하고 실행한다. 시스템 온 칩(10)은 운영 체제(OS)를 구동할 수 있고, 운영 체제 상에서 다양한 애플리케이션들을 실행할 수 있다. 이러한 동작을 위해 시스템 온 칩(10)은 메모리(30)에 데이터를 쓰거나 또는 메모리(30)에 저장된 데이터를 읽을 수 있다.
시스템 온 칩(10)은 실시간(Real time) 마스터 기능 블록(100), 제1 트래픽 컨트롤러(110), 비실시간(Non-Real time) 마스터 기능 블록(200), 제2 트래픽 컨트롤러(210), 메모리 컨트롤러(300), 스토리지 인터페이스(400), 프로세서(500) 및 버스(600)을 포함한다.
실시간 마스터 기능 블록(100)은 입력 또는 생성된 데이터에 대하여 특정 시간 내에 실시간 데이터(RT_DATA)로 처리 및/또는 전송한다. 실시간 데이터(RT_DATA)는 실시간 마스터 기능 블록(100)에 의해 처리된 임의의 디지털 또는 아날로그 정보를 지칭한다. 데이터가 입력/생성된 순간으로부터 데이터가 처리 및/또는 전송될 때까지의 경과된 시간은 지연시간(latency)로 알려져 있다.
실시간 마스터 기능 블록(100)에서 허용 가능한 최대 지연시간은 시스템 온 칩(10)가 실행하는 애플리케이션-의존적일 수 있다. 상기 지연시간이 엄격한 필요조건인 애플리케이션들은 "경성(hard)" 실시간 애플리케이션들로서 지칭될 수 있으며, 반면 최대 지연시간이 엄격한 필요조건이 아닌 애플리케이션들은 "연성(soft)" 실시간 애플리케이션들로 지칭될 수 있다. 연성 실시간 어플리케이션들은 단지 애플리케이션-의존적이고, 보통 주관적인, "충분히 빠른(fast enough)" 정도를 만족시키는 것만을 요구한다.
따라서, 실시간 마스터 기능 블록(100)은 지연시간(latency) 제약 조건 준수를 요구하는 디스플레이 IP일 수 있으며, 본원 발명의 기술적 사상은 상기 예시에 제한되지 않는다. 또한 실시간 마스터 기능 블록(100)은 단수로 도시되었지만, 이는 설명의 편의를 위한 것으로 복수일 수 있다. 각각의 실시간 마스터 기능 블록(100)은 독립 개별적으로 동작할 수 있다.
실시간 마스터 기능 블록(100)은 제1 트래픽 컨트롤러(110)와 버스(600)을 통해 실시간 데이터(RT_DATA)를 메모리 컨트롤러(300)에 제공한다.
제1 트래픽 컨트롤러(110)은 실시간 마스터 기능 블록(100)와 버스(600)를 이어주는 중개 역할을 수행하며, 보다 구체적으로 실시간 데이터(RT_DATA)는, 버스 프로토콜을 포함하는 인터페이스(IF)를 통해, 제1 트래픽 컨트롤러(110)와 버스(600)로 전달된다.
제1 트래픽 컨트롤러(110)은 메모리(30)로 전달되는 실시간 데이터(RT_DATA)의 트래픽을 모니터링하고, 실시간 데이터(RT_DATA)의 트래픽에 대한 제1 트래픽 데이터(TD1)를 출력한다. 제1 트래픽 데이터(TD1)는 실시간 데이터(RT_DATA)에 대한 밴드위스(Bandwidth) 정보를 포함하나, 이에 제한되는 것은 아니다.
비실시간 마스터 기능 블록(200)은, 지연시간(latency) 제약 없이, 입력 또는 생성된 데이터에 대하여 비실시간 데이터(NRT_DATA)로 처리 및/또는 전송한다. 비실시간 데이터(NRT_DATA)는 비실시간 마스터 기능 블록(200)에 의해 처리된 임의의 디지털 또는 아날로그 정보를 지칭한다. 일반적으로 비실시간 마스터 기능 블록(200)은, 실시간 마스터 기능 블록(100)에 비해, 큰 출력 밴드위스를 갖는다.
따라서, 비실시간 마스터 기능 블록(200)은 지연시간(latency) 제약 조건 준수를 불요하는 GPU(Graphi Processor Unit), 입출력 인터페이스일 수 있으며, 본원 발명의 기술적 사상은 상기 예시에 제한되지 않는다. 또한 비실시간 마스터 기능 블록(200)은 단수로 도시되었지만, 이는 설명의 편의를 위한 것으로 복수일 수 있다. 각각의 비실시간 마스터 기능 블록(200)은 독립 개별적으로 동작할 수 있다.
비실시간 마스터 기능 블록(200)은 제2 트래픽 컨트롤러(210)와 버스(600)을 통해 비실시간 데이터(NRT_DATA)를 메모리 컨트롤러(300)에 제공한다.
제2 트래픽 컨트롤러(210)은 비실시간 마스터 기능 블록(200)와 버스(600)를 이어주는 중개 역할을 수행하며, 보다 구체적으로 비실시간 데이터(NRT_DATA)는, 버스 프로토콜을 포함하는 인터페이스(IF)를 통해, 제2 트래픽 컨트롤러(210)와 버스(600)로 전달된다.
제2 트래픽 컨트롤러(210)은 메모리(30)로 전달되는 비실시간 데이터(NRT_DATA)의 트래픽을 모니터링하고, 비실시간 데이터(NRT_DATA)의 트래픽에 대한 제2 트래픽 데이터(TD2)를 출력한다. 제2 트래픽 데이터(TD2)는 비실시간 데이터(NRT_DATA)에 대한 밴드위스(Bandwidth) 정보를 포함하나, 이에 제한되는 것은 아니다.
이외에도, 제2 트래픽 컨트롤러(210)는 후술할 버퍼 제어부(320)에서 블록 신호(BS)를 제공받고 블록 신호(BS)에 기초하여 비실시간 데이터(NRT_DATA)의 트래픽을 차단할 수 있다.
메모리 컨트롤러(300)는 메모리(30)와 시스템 온 칩(10) 사이에서 인터페이싱을 제공한다. 메모리 컨트롤러(300)는 프로세서(500)나 다른 기능 블록들의 요청에 따라 메모리(30)를 액세스할 것이다. 예를 들면, 메모리 컨트롤러(300)는 프로세서(500)의 쓰기 요청에 따라 액세스 데이터(DATA_AC)를 메모리(30)에 기입할 수 있다. 또는, 메모리 컨트롤러(300)는 프로세서(500)의 읽기 요청에 따라 메모리(30)로부터 액세스 데이터(DATA_AC)를 읽어내어 버스(600)를 통해서 데이터(DATA)를 프로세서(110)나 스토리지 인터페이스(400)에 전달할 수 있다.
메모리 컨트롤러(300)는 버퍼(310)과 버퍼 제어부(320)를 포함할 수 있다. 버퍼(310)는 데이터(DATA)를 저장하며 일정한 큐 사이즈(Q)를 갖는 복수의 큐(Q_1-Q_N)를 포함하는 저장 영역(SR)을 포함한다. 상기 일정한 큐 사이즈(Q)는 사용자에 의해 미리 정해질 수 있다.
복수의 큐(Q_1-Q_N)의 적어도 일부는 후술할 예약 유닛(322)에 의해 실시간 데이터(RT_DATA)에 대한 전용 영역으로 예약된다.
버퍼 제어부(320)는 큐 계산기(321), 예약 유닛(322), 블록 유닛(324)를 포함한다. 큐 계산기(321)는 제1 트래픽 데이터(TD1)을 기초로 예약 큐 번호(N_RT)를 출력한다. 큐 계산기(321)는 입력되는 제1 트래픽 데이터(TD1)가 변경되면 변경된 예약 큐 번호(N_RT)를 출력한다.
예약 유닛(322)은 예약 큐 번호(N_RT)와 저장된 예약 테이블(323)을 기초로 복수의 큐(Q_1-Q_N)의 적어도 일부를 실시간 데이터(RT_DATA)의 액세스를 위한 전용 영역으로 예약한다. 따라서, 실시간 데이터(RT_DATA)는 상기 전용 영역을 통해 메모리(30)로 제공될 수 있다. 비실시간 데이터(NRT_DATA)는, 상기 전용 영역을 제외한 저장 영역(SR)을 통해 메모리(30)로 제공될 수 있다.
블록 유닛(320)는 버퍼(310) 내에서, 상기 전용 영역에 포함되는 큐 및 동작 중인 큐 외에, 동작 대기 중인 잔여 큐에 대한 잔여 큐 데이터(RD)를 제공받는다. 상기 잔여 큐 데이터(RD)가 동작 대기 중인 잔여 큐가 없음을 의미하는 경우, 블록 유닛(320)은 블록 신호(BS)를 제2 트래픽 컨트롤러(210)에 제공하고, 블록 신호(BS)를 제1 트래픽 컨트롤러(110)에 미제공한다. 따라서, 본 발명의 몇몇 실시예에 의하면, 블록 신호(BS)를 통해 비실시간 데이터(NRT_DATA)의 트래픽이 차단된다.
메모리(30)에는 부팅시에 애플리케이션이나 운영 체제가 로드될 것이다. 예를 들면, 전자 장치(1)의 부팅시에 저장 장치(40)에 저장된 OS 이미지가 부팅 시퀀스에 의거하여 메모리(30)로 로드된다. 운영 체제(OS)에 의해서 전자 장치(1)의 제반 입출력 동작들이 지원될 수 있다. 마찬가지로, 사용자의 의하여 선택되거나 기본적인 서비스 제공을 위해서 애플리케이션이 메모리(30)에 로드될 수 있다. 메모리(30)는 이뿐 아니라, 카메라와 같은 이미지 센서로부터 제공되는 영상 데이터를 저장하는 버퍼 메모리로 사용될 수도 있을 것이다. 메모리(30)는 SRAM(Static Random Access Memory)이나 DRAM(Dynamic Random Access Memory)과 같은 휘발성 메모리이거나, PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등의 비휘발성 메모리일 수 있다.
스토리지 인터페이스(400)는 프로세서(500)의 요청에 따라 저장 장치(40)를 액세스한다. 즉, 스토리지 인터페이스(400)는 시스템 온 칩(10)과 저장 장치(170) 사이의 인터페이스를 제공한다. 예를 들면, 프로세서(500)에 의해서 처리된 데이터가 스토리지 인터페이스(400)를 통해 저장 장치(40)에 저장된다. 다른 예로써, 저장 장치(40)에 저장된 데이터는 스토리지 인터페이스(400)를 통해 프로세서(500)에 제공될 수 있다.
저장 장치(40)는 전자 장치(1)의 저장 매체(Storage Medium)로서 제공된다. 저장 장치(40)는 사용자 데이터나 애플리케이션, OS 이미지 등을 저장할 수 있다. 저장 장치(40)는 메모리 카드(MMC, eMMC, SD, MicroSD 등)로 제공될 수도 있다. 저장 장치(40)는 대용량의 저장 능력을 가지는 낸드 플래시 메모리(NAND-type Flash memory)를 포함할 수 있다. 또는, 저장 장치(40)는 PRAM, MRAM, ReRAM, FRAM 등의 차세대 불휘발성 메모리나 NOR 플래시 메모리를 포함할 수도 있다. 본 발명의 다른 실시 예에서는 저장 장치(40)는 시스템 온 칩(10)의 내부에 구비되는 내장 메모리일 수 있다.
프로세서(500)는 전자 장치(1)에서 수행될 소프트웨어(애플리케이션, 운영 체제, 장치 드라이버들)를 실행한다. 프로세서(50)는 메모리(30)에 로드되는 운영 체제(OS)를 실행할 것이다. 프로세서(500)는 운영 체제(OS) 기반에서 구동될 다양한 애플리케이션(Application Program)을 실행할 것이다. 프로세서(500)는 멀티-코어 프로세서로, 동종 멀티-코어 프로세서(Homogeneous Multi-Core Processor) 또는 이종 멀티-코어 프로세서(Heterogeneous Multi-Core Processor)로 제공될 수 있다.
버스(600)는 시스템 온 칩(10)의 내부에서 온칩 네트워크를 제공하기 위한 시스템 버스(System Bus)이다. 버스(600)는 예를 들면, 데이터 버스(Data bus), 어드레스 버스(Address bus) 및 컨트롤 버스(Control bus)를 포함할 것이다. 데이터 버스(Data bus)는 데이터가 이동하는 경로이다. 주로, 메모리(30)이나 저장 장치(40)로의 메모리 접근 경로를 제공될 것이다. 어드레스 버스(Address bus)는 기능 블록들(IPs) 간의 어드레스 교환 경로를 제공한다. 컨트롤 버스(Control bus)는 기능 블록들(IPs) 간의 제어 신호를 전달하는 경로를 제공한다. 하지만, 버스(600)의 구성은 상술한 설명에는 트래픽 컨트롤러와 분리되어 도시되었지만, 본원 발명의 또 다른 실시예의 버스(600)는 트래픽 컨트롤러를 포함할 수 있다.
도 5는 본 발명의 몇몇 실시예들에 따른 시스템 온 칩의 동작 방법을 설명하기 위한 순서도이다. 도 6 내지 도 11은 본 발명의 몇몇 실시예들에 따른 시스템 온 칩의 동작 방법을 설명하기 위한 도면들이다.
도 5를 참조하면, 제1 트래픽 컨트롤러(110)는 실시간 마스터 기능 블록(100)로부터 출력되는 실시간 데이터(RT_DATA)의 트래픽을 모니터링한다(S110).
제1 트래픽 컨트롤러(110)는 모니터링을 기초로 실시간 데이터(RT_DATA)에 대한 제1 트래픽 데이터(TD1)을 생성한다(S120).
도 6은, 예시적으로 실시간 마스터 기능 블록(100)가 디스플레이 IP인 것을 전제로 제1 트래픽 컨트롤러(110)의 모니터링과 제1 트래픽 데이터(TD1)의 생성을 설명하기 위한 도면이다.
도 6을 추가적으로 참조하면, 실시간 데이터(RT_DATA)는, 제1 시간(t1)을 기준으로 제1 주기(p) 간격으로 순서대로 출력되는 제1 내지 제3 프레임 데이터(RT_DATA1-RT_DATA3)을 포함한다. 따라서, 각각의 제1 내지 제3 프레임 데이터(RT_DATA1-RT_DATA3)은 제1 포치(po) 만큼 일정한 간격으로 출력된다.
제1 프레임 데이터(RT_DATA1)는 제1 시간(t1)부터 프레임 구간(fr) 동안 제1 대역폭 크기(A)로 일정하게 출력되면서 등시성을 갖는다.
실시간 마스터 기능 블록(100)은 상기와 같은 실시간 데이터(RT_DATA)를 모니터링하고, 아래의 수학식 1과 같이 실시간 밴드위스(RT_BW)를 출력한다.
Figure pat00001
... 수학식 (1)
상기
Figure pat00002
는 실시간 데이터(RT_DATA)의 실시간 밴드위스(RT_BW)이고,
Figure pat00003
는 제1 내지 제3 프레임 데이터(RT_DATA1-RT_DATA3) 중 하나의 프레임 데이터이고,
Figure pat00004
는 제1 주기(p)의 시간 간격이고,
Figure pat00005
는 제1 포치(po)의 시간 간격이다.
도 6의 실시간 데이터(RT_DATA)의 경우, 실시간 밴드위스(RT_BW)는 제1 대역폭 크기(A)와 같을 수 있다.
이후, 실시간 마스터 기능 블록(100)은 실시간 밴드위스(RT_BW) 정보를 포함하는 제1 트래픽 데이터(TD1)를 생성하고 버퍼 제어부(310)로 제공된다.
도 7을 추가적으로 참조하면, 큐 계산기(321)는 제1 트래픽 데이터(TD1)을 기초로 예약 큐 넘버(N_RT)를 계산한다(S130).
큐 계산기(321)는 실시간 데이터(RT_DATA)에 대한 액세스 데이터(DATA_AC)의 쓰루풋(Throughput)과 지연시간(latency)을 기초로 아래의 수학식 2, 3의 조건을 충족하는 예약 큐 넘버(N_RT)를 계산한다.
Figure pat00006
... 수학식 (2)
Figure pat00007
... 수학식 (3)
상기
Figure pat00008
는 실시간 데이터(RT_DATA)의 실시간 밴드위스(RT_BW)이고,
Figure pat00009
은 복수의 큐(Q_1-Q_N)의 개수이고,
Figure pat00010
는 복수의 큐(Q_1-Q_N) 중 하나의 큐이고,
Figure pat00011
는 실시간 데이터(RT_DATA)에 대한 액세스 데이터(DATA_AC)이다. 도시되지 않았지만, 상기 지연시간(latency)에 대한 정보는, 지연시간 최소값과 버퍼(310)의 구동 주파수를 통해 획득될 수 있다.
상기 수학식 2, 3에 따르면, 실시간 데이터(RT_DATA)의 실시간 밴드위스(RT_BW)가 증가하면 예약 큐 넘버(N_RT)는 증가하고, 실시간 데이터(RT_DATA)의 실시간 밴드위스(RT_BW)가 감소하면 예약 큐 넘버(N_RT)는 감소될 수 있다.
도 8을 추가적으로 참조하면, 예약 유닛(322)은 예약 큐 넘버(N_RT)와 예약 테이블(324)을 기초로 버퍼(310) 내 복수의 큐(Q_1-Q_N)의 적어도 일부를 실시간 데이터(RT_DATA)의 액세스를 위한 전용 영역으로 예약한다.
예약 테이블(324)은, 복수의 큐(Q_1-Q_N)의 개수(N)에 대응하여 복수의 인덱스(Index) 정보를 포함한다.
인덱스(Index)가 1인 경우, 예약 테이블(324)은 예약 큐 넘버(N_RT)가 1인 것에 대응하여 제N 큐(Q_N)의 정보를 함께 저장한다. 인덱스(Index)가 2인 경우, 예약 테이블(324)은 예약 큐 넘버(N_RT)가 2인 것에 대응하여 제N-1 내지 제N 큐(Q_N-1-Q_N)의 정보를 함께 저장한다. 인덱스(Index)가 N인 경우, 예약 테이블(324)은 예약 큐 넘버(N_RT)가 N인 것에 대응하여 제1 내지 제N 큐(Q_1-Q_N)의 정보를 함께 저장한다.
나머지 인덱스(Index)와 관련하여, 예약 테이블(324)이, 예약 큐 넘버(N_RT)가 특정 인덱스(Index)인 것에 대응하여, 특정 인덱스(Index)의 값에 대응하는 큐의 정보를 함께 저장하는 것은 자명하다.
도 9 및 도 10을 추가적으로 참조하면, 버퍼(310) 내에 예약 큐 외에 동작 대기 중인 잔여 큐가 존재하지 않는 경우(S150, N), 버퍼 제어부(320)는 제2 트래픽 컨트롤러(210)에 블록 신호(BS)를 제공한다(S160).
도 9 및 도 10은, 예약 큐 넘버(N_RT)가 2이고 잔여 큐가 부존재하다는 전제로, 버퍼 제어부(320)와 제2 트래픽 컨트롤러(210)의 동작을 설명하기 위한 도면들이다.
예약 큐 넘버(N_RT)가 2이고 잔여 큐가 부존재한 경우, 제N-1 내지 제N 큐는 전용 영역(DA)로 예약되고, 나머지 제1 내지 제N-2 큐(Q_1-Q_N-2)는 사용 영역(UA)으로 이미 비실시간 데이터의 처리를 위해 동작 중이다.
따라서, 버퍼(310)은 잔여 큐가 부존재하다는 정보를 포함하는 제1 잔여 큐 데이터(RD1)를 블록 유닛(210)에 제공하고, 이에 기초하여 블록 유닛(210)은 블록 신호(BS)를 제2 트래픽 컨트롤러(210)에만 제공하고, 제1 트래픽 컨트롤러(110)에 미제공한다. 따라서, 비실시간 데이터(NRT_DATA)의 트래픽은 제2 트래픽 컨트롤러(210)에 의해 차단되고, 비실시간 데이터(NRT_DATA)는 메모리 컨트롤러(300)로 비입력된다.
도 11을 추가적으로 참조하면, 버퍼(310) 내에 예약 큐 외에 동작 대기 중인 잔여 큐가 존재하는 경우(S150, Y), 버퍼 제어부(320)는 제2 트래픽 컨트롤러(210)에 블록 신호(BS)를 제공한다(S170)
도 9 및 도 10은, 예약 큐 넘버(N_RT)가 2이고 잔여 큐가 제3 내지 제N-2 큐(Q_3-Q_N-2)이다는 전제로, 버퍼 제어부(320)와 제2 트래픽 컨트롤러(210)의 동작을 설명하기 위한 도면들이다.
예약 큐 넘버(N_RT)가 2이고 잔여 큐가 제3 내지 제N-2 큐(Q_3-Q_N-2)인 경우, 제N-1 내지 제N 큐는 전용 영역(DA)로 예약되고, 나머지 제1 내지 제2 큐(Q_1-Q_2)는 사용 영역(UA)으로 비실시간 데이터의 처리를 위해 동작 중이다. 따라서, 버퍼(310)는 잔여 큐가 제3 내지 제N-2 큐(Q_3-Q_N-2)인 정보를 포함하는 제2 잔여 큐 데이터(RD2)를 블록 유닛(210)에 제공한다.
따라서, 비실시간 데이터(NRT_DATA)의 트래픽은 제2 트래픽 컨트롤러(210)에 의해 제공되고, 비실시간 데이터(NRT_DATA)는 실시간 데이터(RT_DATA)와 함께 메모리 컨트롤러(300)로 입력된다. 입력되는 비실시간 데이터(NRT_DATA)은 잔여 큐인 제3 내지 제N-2 큐(Q_3-Q_N-2)릍 통해 메모리(30)로 액세스된다.
시스템 온 칩(10)은, 상기와 같은 동작 방법을 통해, 실시간 마스터 기능 블록(100)에 대한 트래픽을 반영하여, 버퍼(310)에 실시간 마스터 기능 블록(100)에 대한 전용 구역(DA)을 예약하고, 상기 예약을 통해 지연 시간 제약 조건 준수를 요하는 실시간 데이터(RT_DATA) 처리의 안정성을 개선시킬 수 있다.
또한, 시스템 온 칩(10)은, 상기와 같은 동작 방법을 통해, 버퍼(310) 내 잔여 큐 파악을 통해 비실시간 마스터 기능 블록(200)의 트래픽을 제어하여, 시스템 온 칩(10)의 전체적인 데이터 트래픽에서의 성능을 향상시킨다.
도 12는 본 발명의 몇몇 실시예들에 따른 시스템 온 칩의 동작 방법을 설명하기 위한 순서도이다. 도 13 내지 도 14는 본 발명의 몇몇 실시예들에 따른 시스템 온 칩의 동작 방법을 설명하기 위한 도면들이다.
도 12를 참조하면, 도 5의 단계 110 내지 160(S110-S170) 이후, 제1 트래픽 컨트롤러(110)는 실시간 마스터 기능 블록(100)로부터 출력되는 실시간 데이터(RT_DATA)의 변경된 트래픽을 모니터링한다(S210).
제1 트래픽 컨트롤러(110)는 단계 210(S210)에서의 모니터링을 기초로 실시간 데이터(RT_DATA)에 대한 제1 변경 트래픽 데이터(TD1')을 생성한다(S220).
도 13은, 예시적으로 실시간 마스터 기능 블록(100)가 디스플레이 IP인 것을 전제로 도 5의 단계 110 내지 160(S110-S170) 이후 제1 트래픽 컨트롤러(110)의 모니터링과 제1 변경 트래픽 데이터(TD1')의 생성을 설명하기 위한 도면이다.
도 13을 추가적으로 참조하면, 변경 실시간 데이터(RT_DATA')는, 제2 시간(t2)을 기준으로 변경 주기(p') 간격으로 순서대로 출력되는 제1 내지 제3 변경 프레임 데이터(RT_DATA1'-RT_DATA3')을 포함한다. 따라서, 각각의 제1 내지 제3 변경 프레임 데이터(RT_DATA1'-RT_DATA3')은 변경 포치(po) 만큼 일정한 간격으로 출력된다.
제1 변경 프레임 데이터(RT_DATA1')는 제2 시간(t2)부터 변경 프레임 구간(fr) 동안 변경 대역폭 크기(A')로 일정하게 출력되면서 등시성을 갖는다.
실시간 마스터 기능 블록(100)은 상기와 같은 변경 실시간 데이터(RT_DATA')를 모니터링하고, 아래의 수학식 4와 같이 변경 실시간 밴드위스(RT_BW)를 출력한다.
Figure pat00012
... 수학식 (4)
상기
Figure pat00013
는 변경 실시간 데이터(RT_DATA')의 변경 실시간 밴드위스(RT_BW')이고,
Figure pat00014
는 제1 내지 제3 변경 프레임 데이터(RT_DATA1'-RT_DATA3') 중 하나의 프레임 데이터이고,
Figure pat00015
는 변경 주기(p')의 시간 간격이고,
Figure pat00016
는 변경 포치(po')의 시간 간격이다.
도 13의 변경 실시간 데이터(RT_DATA')의 경우, 변경 실시간 밴드위스(RT_BW)는 변경 대역폭 크기(A')와 같을 수 있다.
이후, 실시간 마스터 기능 블록(100)은 변경 실시간 밴드위스(RT_BW') 정보를 포함하는 제1 변경 트래픽 데이터(TD1')를 생성하고 버퍼 제어부(310)로 제공된다.
큐 계산기(321)는 제1 트래픽 데이터(TD1)을 기초로 변경 예약 큐 넘버(N_RT')를 계산한다(S230). 단계 230(S230)의 동작은, 앞선 단계 130(S130)의 동작에 대한 설명으로 대체될 수 있다.
도 8 및 도 14을 추가적으로 참조하면, 예약 유닛(322)은 변경 예약 큐 넘버(N_RT')와 예약 테이블(324)을 기초로 버퍼(310) 내 복수의 큐(Q_1-Q_N)의 적어도 일부를 실시간 데이터(RT_DATA)의 액세스를 위한 전용 영역으로 재예약한다(S240). 도 14는 변경 예약 큐 넘버(N_RT')를 N-2라고 전제로 상기 재예약을 설명하기 위한 도면이다.
변경 예약 큐 넘버(N_RT')이 N-2인 경우, 예약 유닛(322)은 제3 내지 제N 큐(Q_3-Q_N)에 대하여 변경 실시간 데이터(RT_DATA')를 처리하기 위한 전용 영역(DA)로 재예약된다.
이후, 단계 150 내지 170(S150-S170)와 같은 동작이 수행될 수 있다.
시스템 온 칩(10)은, 상기와 같은 동작 방법을 통해, 실시간 마스터 기능 블록(100)에 대한 트래픽을 동적(Dynamic)으로 반영하여 전용 구역(DA)을 재예약하고, 상기 재예약을 통해 지연 시간 제약 조건 준수를 요하는 실시간 데이터(RT_DATA) 처리의 안정성 및 시스템 온 칩(10)의 전체적인 트래픽 성능을 개선시킬 수 있다.
도 15는 본 발명의 몇몇 실시예들에 따른 시스템 온 칩의 효과를 설명하기 위한 도면이다.
기능 블록에 대한 예상 출력치를 고정적으로 설정하는 시스템 온 칩(FIXED MO)에서 실시간 데이터에 대한 밴드위스(RT_Traffic)는 미리 정해진 예상값(RT_MO)를 넘지 못하나, 본원 발명의 시스템 온 칩(10)에서는 실시간 데이터의 트래픽을 반영하여 버퍼 내 복수 큐의 적어도 일부에 대해 동적으로 예약하기 때문에, 실시간 데이터에 대한 밴드위스(RT_Traffic)는 미리 정해진 예상값(RT_MO)을 도과할 수 있다.
이에 따라 기능 블록에 대한 예상 출력치를 고정적으로 설정하는 시스템 온 칩(FIXED MO)에서 전체 데이터에 대한 밴드위스(Total_Traffic)은 제1 임계값(M1)을 넘지 못하나, 본원 발명의 시스템 온 칩(10)에서는 상기 동적 예약 특성으로 인해, 필요에 따라 전체 데이터에 대한 밴드위스(Total_Traffic)가 제1 임계값(M1)보다 큰 제2 임계값(M2)를 도과할 수 있다.
본 발명의 시스템 온 칩은, 상기 도 5 내지 도 14의 동작 방법을 통해, 실시간 마스터 기능 블록(100)에 대한 트래픽을 동적(Dynamic)으로 반영하여 전용 구역(DA)을 예약/재예약하고, 상기 예약/재예약을 통해 지연 시간 제약 조건 준수를 요하는 실시간 데이터(RT_DATA) 처리의 안정성 및 시스템 온 칩(10)의 전체적인 트래픽 성능을 개선시킬 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
30: 메모리 100: 실시간 마스터 기능 블록
200: 비실시간 마스터 기능 블록300: 메모리 컨트롤러
310: 버퍼 320: 버퍼 제어부
321: 큐 계산기 322: 예약 유닛
323: 예약 테이블 324: 블록 유닛
DATA: 데이터 RT_DATA: 실시간 데이터
NRT_DATA: 비실시간 데이터 DATA_AC: 액세스 데이터
TD1: 제1 트래픽 데이터 N_RT: 예약 큐 넘버
BS: 블록 신호

Claims (10)

  1. 실시간(Real time) 방식으로 데이터를 처리하는 제1 기능 블록(IP; Intellectual Property)을 포함하는 복수의 기능 블록;
    상기 제1 기능 블록에서 출력되는 제1 데이터의 트래픽에 대해 제1 모니터링을 수행하고, 상기 제1 모니터링을 기초로 상기 제1 데이터의 트래픽에 대한 제1 트래픽 데이터를 생성하는 제1 트래픽 컨트롤러; 및
    복수의 큐를 포함하는 버퍼 및 상기 제1 트래픽 데이터를 기초로 상기 복수의 큐의 적어도 일부를 상기 제1 데이터의 전송을 위한 제1 전용 구역으로 예약(reserve)하는 버퍼 제어부를 포함하는 컨트롤러를 포함하는 시스템 온 칩(System On Chip, SOC).
  2. 제1항에 있어서,
    상기 복수의 기능 블록은 비실시간(Non-Real time) 방식으로 데이터를 처리하는 제2 기능 블록을 더 포함하는 시스템 온 칩.
  3. 제2항에 있어서,
    상기 제2 기능 블록에서 출력되는 제2 데이터의 트래픽을 모니터링하고, 상기 제2 데이터의 트래픽을 제어하는 제2 트래픽 컨트롤러를 더 포함하되,
    상기 버퍼 제어부는, 상기 복수의 큐의 적어도 일부 이외에 동작 대기 중인 잔여 큐가 부존재하는 경우, 상기 제2 트래픽 컨트롤러에 블록 신호를 제공하여 상기 제2 데이터에 대한 트래픽을 차단하고 상기 제1 트래픽 컨트롤러에 상기 블록 신호를 미제공하는 시스템 온 칩.
  4. 제1항에 있어서,
    상기 제1 데이터의 출력 이후, 상기 제1 트래픽 컨트롤러는 상기 제1 기능 블록에서 출력되는 제3 데이터의 트래픽에 대해 제2 모니터링을 수행하고, 상기 제2 모니터링을 기초로 상기 제3 데이터의 트래픽에 대한 제2 트래픽 데이터를 생성하고,
    상기 버퍼 제어부는, 상기 제2 트래픽 데이터를 기초로, 상기 복수의 큐 내에서 상기 제3 데이터의 전송을 위한 제2 전용 구역을 재예약하는 시스템 온 칩.
  5. 제4항에 있어서,
    상기 버퍼 제어부는
    상기 제1 트래픽 데이터에 대응하는 상기 제1 전용 구역의 정보와, 상기 제2 트래픽 데이터에 대응하는 상기 제2 전용 구역의 정보가 저장된 예약 테이블을 저장하는 시스템 온 칩.
  6. 제1항에 있어서,
    상기 제1 트래픽 데이터는, 상기 제1 기능 블록에서 출력되는 상기 제1 데이터에 대한 밴드위스(Bandwidth) 정보를 포함하는 시스템 온 칩.
  7. 제1 및 제2 기능 블록(IP; Intellectual Property)을 포함하는 복수의 기능 블록;
    상기 제1 기능 블록에서 출력되는 제1 데이터의 트래픽을 모니터링하고, 상기 제1 데이터의 트래픽에 대한 제1 트래픽 데이터를 생성하는 제1 트래픽 컨트롤러;
    상기 제2 기능 블록에서 출력되는 제2 데이터의 트래픽을 모니터링하고, 상기 제2 데이터의 트래픽을 제어하는 제2 트래픽 컨트롤러; 및
    복수의 큐를 포함하는 버퍼 및 상기 복수의 큐 중 동작 대기 중인 잔여 큐가 부존재하는 경우 상기 제2 트래픽 컨트롤러에 블록 신호를 제공하여 상기 제2 기능 블록에 대한 트래픽을 차단하는 버퍼 제어부를 포함하는 컨트롤러를 포함하되,
    상기 버퍼 제어부는 상기 블록 신호를 상기 제1 트래픽 컨트롤러에 미제공하는 시스템 온 칩(System On Chip, SOC).
  8. 제7항에 있어서,
    상기 제1 기능 블록은 상기 제1 데이터를 실시간(Real time) 방식으로 처리하고,
    상기 제2 기능 블록은 상기 제2 데이터를 비실시간(Non-Real time) 방식으로 처리하는 시스템 온 칩.
  9. 제8항에 있어서,
    상기 버퍼 제어부는, 상기 제1 트래픽 데이터를 기초로 상기 복수의 큐의 적어도 일부를 상기 제1 데이터의 전송을 위한 제1 전용 구역으로 예약(reserve)하는 시스템 온 칩.
  10. 실시간(Real time) 방식으로 데이터를 처리하는 제1 기능 블록(IP; Intellectual Property)에서 출력되는 제1 데이터의 트래픽에 대해 제1 모니터링을 수행하고,
    상기 제1 모니터링을 기초로 상기 제1 데이터의 트래픽에 대한 제1 트래픽 데이터를 생성하고,
    상기 제1 트래픽 데이터를 기초로 버퍼 내 복수의 큐의 적어도 일부를 상기 제1 데이터의 전송을 위한 제1 전용 구역으로 예약(reserve)하는 것을 포함하는 시스템 온 칩의 동작 방법.
KR1020210094772A 2021-07-20 2021-07-20 시스템 온 칩 및 시스템 온 칩의 동작 방법 KR20230013828A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210094772A KR20230013828A (ko) 2021-07-20 2021-07-20 시스템 온 칩 및 시스템 온 칩의 동작 방법
US17/699,451 US20230021873A1 (en) 2021-07-20 2022-03-21 System on chip and method for operating system on chip
CN202210850288.6A CN115640255A (zh) 2021-07-20 2022-07-19 片上系统和用于操作该片上系统的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210094772A KR20230013828A (ko) 2021-07-20 2021-07-20 시스템 온 칩 및 시스템 온 칩의 동작 방법

Publications (1)

Publication Number Publication Date
KR20230013828A true KR20230013828A (ko) 2023-01-27

Family

ID=84940415

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210094772A KR20230013828A (ko) 2021-07-20 2021-07-20 시스템 온 칩 및 시스템 온 칩의 동작 방법

Country Status (3)

Country Link
US (1) US20230021873A1 (ko)
KR (1) KR20230013828A (ko)
CN (1) CN115640255A (ko)

Also Published As

Publication number Publication date
US20230021873A1 (en) 2023-01-26
CN115640255A (zh) 2023-01-24

Similar Documents

Publication Publication Date Title
CN107690622B (zh) 实现硬件加速处理的方法、设备和系统
JP6509895B2 (ja) デバイス固有又はユーザー固有のリソース使用プロファイルに基づくリソース管理
KR102447493B1 (ko) 랭크 단위로 메모리 장치를 트레이닝하는 전자 장치 및 그것의 메모리 트레이닝 방법
KR101682980B1 (ko) 시스템 온 칩에서의 대역폭 할당의 제어
JP2017514209A (ja) マルチプロセス・アプリケーションのための動的リソース管理
US20130151747A1 (en) Co-processing acceleration method, apparatus, and system
US20140244960A1 (en) Computing device, memory management method, and program
US8677074B2 (en) Shared memory access techniques
US20170004101A1 (en) Data copying method, direct memory access controller, and computer system
CN109977037B (zh) 一种dma数据传输方法及系统
JP2007026094A (ja) 実行装置およびアプリケーションプログラム
KR102106541B1 (ko) 공유 리소스 액세스 중재 방법 및 이를 수행하기 위한 공유 리소스 액세스 중재 장치 및 공유 리소스 액세스 중재 시스템
KR20150044370A (ko) 이종 메모리들을 관리하는 시스템들
CN107562645A (zh) 一种内存页管理方法及计算设备
KR101861768B1 (ko) 시스템 온칩, 이를 포함하는 전자 시스템, 및 그 동작 방법
CN115794682A (zh) 缓存替换方法及装置、电子设备、存储介质
WO2020186455A1 (zh) 数据存储方法及存储芯片
US12056382B2 (en) Inference in memory
US10990444B2 (en) Device and method for controlling data request
US20230281129A1 (en) Information processing apparatus and memory access control method
KR20230013828A (ko) 시스템 온 칩 및 시스템 온 칩의 동작 방법
CN112463028B (zh) 一种i/o处理方法、系统、设备及计算机可读存储介质
JP2006268753A (ja) Dma回路及びコンピュータシステム
US10592420B1 (en) Dynamically redistribute cache space with min-max technique
CN114610660A (zh) 控制接口数据的方法、装置及系统