KR20160046223A - 멀티 쓰레딩 기반 멀티 코어 에뮬레이션 장치 및 방법 - Google Patents

멀티 쓰레딩 기반 멀티 코어 에뮬레이션 장치 및 방법 Download PDF

Info

Publication number
KR20160046223A
KR20160046223A KR1020140142016A KR20140142016A KR20160046223A KR 20160046223 A KR20160046223 A KR 20160046223A KR 1020140142016 A KR1020140142016 A KR 1020140142016A KR 20140142016 A KR20140142016 A KR 20140142016A KR 20160046223 A KR20160046223 A KR 20160046223A
Authority
KR
South Korea
Prior art keywords
cores
emulation
core
shared resource
resource
Prior art date
Application number
KR1020140142016A
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 KR1020140142016A priority Critical patent/KR20160046223A/ko
Priority to US14/793,259 priority patent/US20160110209A1/en
Publication of KR20160046223A publication Critical patent/KR20160046223A/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 멀티 코어 에뮬레이션(multi-core emulation)에 관한 것으로서, 구체적으로는 컴퓨터의 멀티 쓰레딩(multi-threading) 기능을 이용하여 멀티 코어 에뮬레이션의 고속화를 실현하기 위한 방법 및 장치에 관한 것이다.
본 발명에 따른 멀티 쓰레딩 기반 멀티 코어 에뮬레이션 장치는, 복수의 코어들 각각에 대한 에뮬레이션 함수를 별개의 쓰레드로 생성함으로써 상기 복수의 코어들을 동시에 에뮬레이션하는 에뮬레이션 관리자; 및 상기 복수의 코어들중 적어도 2개의 코어들이 동시에 공유 자원에 접근하는 경우에 상기 코어들간에 경합 상태(race condition)이 발생하지 않도록 상기 공유 자원의 이용 순서를 조정하는 자원 스케쥴러를 포함한다.

Description

멀티 쓰레딩 기반 멀티 코어 에뮬레이션 장치 및 방법{Apparatus and Method for performing multi-core emulation based on multi-threading}
본 발명은 멀티 코어 에뮬레이션(multi-core emulation)에 관한 것으로서, 구체적으로는 컴퓨터의 멀티 쓰레딩(multi-threading) 기능을 이용하여 멀티 코어 에뮬레이션의 고속화를 실현하기 위한 방법 및 장치에 관한 것이다.
현재 스마트기기에 사용되는 프로세서는 싱글 코어에서 쿼드 코어로 진화하고 있는 상황이며, 프로세서의 발달과 소형화 추세에 비추어 볼 때 옥타 코어 이상의 멀티 코어로 형태로 발전할 전망이다. 또한, 차세대 모바일 단말에서는 수십에서 수백 개의 프로세서가 집적된 멀티 코어 프로세서를 사용하여 생체인식 및 증강 현실을 가능하게 할 것이다.
멀티 코어 프로세서 기반 최적 SoC 구조 개발을 위해서는 상위 수준에서 SoC의 기능 및 성능을 조기 분석하기 위한 버츄얼 프로토타입 기반 시스템 수준 설계 방법론이 요구된다. 버츄얼 프로토타입 기반 시스템 설계시 고려할 가장 중요한 핵심 요소는 멀티 코어의 기능을 기능 수준(function-accurate) 으로 모델링한 고속 에뮬레이터를 설계하는 것이다.
매니 코어로 진화하게 될 멀티 코어 에뮬레이터 개발 시 고려할 사항은 쉽게 확장이 가능해야 한다는 확장성(scalability)과 속도(speed) 이다.
현재 사용되고 있는 멀티 코어 에뮬레이터는 어떠한 병렬화(parallelization) 기법도 사용하지 않고 에뮬레이션 관리자(manager)가 단순히 싱글 코어를 에뮬레이션 하는 기법을 기반으로 각 코어를 순차적으로 에뮬레이션하므로 코어의 개수가 증가할수록 에뮬레이션 속도가 현저히 감소한다.
따라서, 본 발명의 예시적인 실시예들은 호스트 컴퓨터의 멀티 쓰레딩 기능을 이용하여 코어 개수 증가에 유연하게 대처할 수 있는 확장성을 가지며 기존의 에뮬레이터 보다 에뮬레이션 속도가 빠른 멀티 코어 에뮬레이션 방법 및 장치를 제안한다.
전술한 목적을 달성하기 위해, 본 발명의 일실시예에 따른 멀티 쓰레딩 기반 멀티 코어 에뮬레이션 장치는 복수의 코어들 각각에 대한 에뮬레이션 함수를 별개의 쓰레드로 생성함으로써 상기 복수의 코어들을 동시에 에뮬레이션하는 에뮬레이션 관리자; 및 상기 복수의 코어들중 적어도 2개의 코어들이 동시에 공유 자원에 접근하는 경우에 상기 코어들간에 경합 상태(race condition)가 발생하지 않도록 상기 공유 자원의 이용 순서를 조정하는 자원 스케쥴러를 포함할 수 있다.
본 발명의 일실시예에 따른 멀티 쓰레딩 기반 멀티 코어 에뮬레이션 방법은, 복수의 코어들 각각에 대한 에뮬레이션 함수를 별개의 쓰레드로 생성함으로써 상기 복수의 코어들을 동시에 에뮬레이션하는 단계; 및 상기 복수의 코어들중 적어도 2개의 코어들이 동시에 공유 자원에 접근하는 경우에 상기 코어들간에 경합 상태가 발생하지 않도록 상기 공유 자원의 이용 순서를 조정하는 단계를 포함할 수 있다.
본 발명의 예시적인 실시예들에 따르면, 멀티 쓰레딩 기반 멀티 코어 수행 중에 각 코어를 하나의 쓰레드에 동적 할당하고 복수의 쓰레드에서 동시에 에뮬레이션함으로써 쓰레드 수준 병렬화를 통한 멀티 코어 에뮬레이션 고속화를 실현할 수 있다.
또한, 매니 코어와 같이 코어 개수가 늘어나는 경우에 쓰레드 개수를 증가시킴으로써 매니 코어 에뮬레이션을 실현할 수 있으므로 높은 확장성을 가진다.
본 발명은 멀티 코어 프로세서 기반 최적 SoC 및 소프트웨어 개발을 위한 다양한 응용에 사용될 수 있다.
도 1은 다양한 유형의 프로세서 코어 에뮬레이션 기법들을 예시한 도면이다.
도 2는 동적 코드 변환을 통한 고속 에뮬레이션 기법을 좀더 자세히 도시한 도면이다.
도 3은 종래의 멀티 코어 에뮬레이션 방식을 개념적으로 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 멀티 코어 에뮬레이션 장치를 도시한 블록도이다.
도 5는 본 발명의 일실시예에 따른 자원 스케쥴러를 세부 구성을 도시한 것이다.
도 6은 본 발명의 일실시예에 따른 멀티 코어 에뮬레이션 방법을 도시한 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
또한, 본 명세서 및 청구항에서 사용되는 단수 표현은, 달리 언급하지 않는 한 일반적으로 "하나 이상"을 의미하는 것으로 해석되어야 한다.
우선, 본 발명의 이해를 돕기 위고자 프로세서 코어 에뮬레이션의 다양한 기법들을 살펴보도록 한다.
도 1은 다양한 유형의 프로세서 코어 에뮬레이션 기법들을 예시한 도면이다.
도시된 바와 같이, 프로세서 코어 에뮬레이션 기법은 인터프리티브 ISS(interpretive Instruction Set Simulation) 기법(110), 컴파일 ISS(Compiled ISS) 기법, 동적 코드 변환 (DCT: Dynamic Code Translation) 기법(130)이 있다.
인터프리티브 ISS 기법(110)은 프로세서 코어의 파이프라인을 모델링하여 에뮬레이션하는 방식이다. 상용화된 ISS 시뮬레이터로서 ARMulator 등이 있다.
컴파일 ISS 기법(120)은 인터프리티브 ISS 기법(110)에 비교하여 약 10~100배의 에뮬레이션 속도 향상이 있다.
동적 코드 변환 기법(130)은 타겟 코드를 호스트 머신 코드로 변환하여 에뮬레이션하는 기법으로서, 인터프리티브 ISS 기법(110)에 비교하여 약 1000배 빠른 속도로 프로세서 코어를 에뮬레이션 할 수 있다.
가상 플랫폼 에뮬레이터 상에서 드라이버, 펌웨어 및 응용어플리케이션을 개발하기 위해서는 10~100MIPS의 속도를 가지는 프로세서 코어의 고속 에뮬레이션 기술이 요구되며, 현재 동적 코드 변환을 기반으로 하는 프로세서 코어 에뮬레이션 기법이 널리 사용되고 있다.
도 2는 동적 코드 변환을 통한 고속 에뮬레이션 기법을 좀더 자세히 도시한 도면이다. 도 2에 도시된 바와 같이, 바이너리 이미지로부터 명령어를 판독하여 TB(Translation Block)을 검색한다(210). TB 캐시 내에 해당 TB가 없으면 디스어셈블(disassemble) 과정을 거친다(220). 디스어셈블 과정에서, 명령어 프로파일을 이용하여 명령어의 기능을 파악하고 이를 호스트 머신(x86) 명령어 셋으로 변환한다. TB는 TB 캐시에 저장되며, 그 후 TB는 호스트 머신의 함수로서 이용될 수 있다. 추후에 동일한 명령어를 수행해야 할 경우에 TB 캐시에 이미 저장된 TB를 검색하여 이용할 수 있으므로 많은 시간이 소모되는 디스어셈블 과정(220)이 생략되어 약 10배 정도 에뮬레이션 속도가 향상될 수 있다.
도 3은 종래의 멀티 코어 에뮬레이션 방식을 개념적으로 도시한 도면이다. 도시된 바와 같이, 종래의 멀티 코어 에뮬레이션 방식은 어떠한 병렬화 기법도 사용하지 않고 멀티 코어 에뮬레이션 관리자(310)가 순차적인 방식(예를 들어, 라운드 로빈 방식)으로 다수개의 코어(예, 코어 0 내지 코어 3)에 대해 콘텍스트 스위칭(context switching)을 수행하며 에뮬레이션한다. 이 방식은 단순히 단일 코어를 에뮬레이션하는 프로그램에서 각 코어에 해당하는 함수를 단순 복사(duplication)하고 각 코어 함수를 에뮬레이션 관리자가 순차적으로 실행시키는 것이므로, 코어의 개수가 증가할수록 에뮬레이션 속도는 현저히 떨어지게 된다.
이러한 문제점을 해결하고자, 본 발명은 호스트 컴퓨터의 멀티 쓰레딩 기능을 이용하여 코어 개수 증가에 유연하게 대처할 수 있는 확장성을 가지며 기존의 에뮬레이션 방식보다 속도가 빠른 멀티 코어 에뮬레이션 방법 및 장치를 제안하고자 한다. 이하, 도 4 내지 도 5를 참조하여, 본 발명에 따른 예시적인 실시예들을 자세히 설명한다.
도 4는 본 발명의 일실시예에 따른 멀티 코어 에뮬레이션 장치를 도시한 블록도이다.
도시된 바와 같이, 멀티 코어 에뮬레이션 장치(400)는, 에뮬레이션 관리자(410), 복수의 코어(420 내지 450), 자원 스케쥴러(460) 및 공유 자원(470)을 포함할 수 있다.
일실시예에서, 에뮬레이션 관리자(410)는 복수의 코어들 각각에 대한 에뮬레이션 함수를 별개의 쓰레드(420 내지 450)로 생성함으로써 상기 복수의 코어들을 동시에 에뮬레이션할 수 있다. 에뮬레이션 관리자(410)는 코어를 하나의 태스크로 인식하고, 각 코어의 에뮬레이션 함수를 쓰레드로 생성하여 여러 개의 쓰레드를 동시에 에뮬레이션함으로써 쓰레드 수준 병렬화를 통한 멀티 코어 에뮬레이션 기능을 수행할 수 있다. 코어간에 서로 독립적인 데이터는 각 코어에서 사용하는 레지스터 파일 등이며, 독립적인 데이터에 대해 작업을 수행하는 기능 유닛(functional unit)을 기본 단위로 멀티 코어 에뮬레이션을 수행한다.
한편, 프로그램을 복수개의 쓰레드들로 분할하면, 서로 독립적인 데이터에 대해서는 쓰레드간 접근 제약이 존재하지 않지만, UART(471), 오디오(472), 디스플레이(473) 등과 같은 공유 자원(470)에 대한 접근에 대해서는 경합 상태(race condition)가 발생하지 않도록 할 접근을 제어할 필요가 있다.
자원 스케쥴러(460)는 이러한 요구를 해결하기 위한 것으로서, 복수의 코어들중 적어도 2개의 코어들이 동시에 공유 자원(470)에 접근하는 경우에 코어들간에 경합 상태가 발생하지 않도록 상기 공유 자원의 이용 순서를 조정하는 역할을 수행할 수 있다.
일실시예에서, 자원 스케쥴러(460)는 각 코어가 동시에 공유 자원에 접근할 경우에 코어들간 우선 순위를 정해 우선 순위가 높은 코어가 먼저 자원을 이용하도록 한다.
일실시예에서, 식별자값이 낮은 코어가 높은 우선순위를 갖도록 하여, 식별자값이 낮은 코어가 자원을 먼저 이용할 수 있도록 한다.
도 5는 본 발명의 일실시예에 따른 자원 스케쥴러의 세부 구성을 도시한 것이다. 도 5에 도시된 바와 같이, 자원 스케쥴러(500)는 공유 자원 각각에 연관된 대기큐(510 내지 5430)을 구비한다. 코어가 공유 자원에 접근할 때 해당 자원이 이미 다른 코어에 의해 사용되고 있는 경우에, 자원 스케쥴러(500)는 해당 코어의 자원 요청을 해당 자원에 연관된 대기큐(510, 520, 530 또는 540)에 저장하고, 현재 자원을 사용하고 있는 코어의 수행이 끝난 후에 상기 대기큐에 저장된 요청이 순차적으로 처리되도록 한다. 상기 도면에서, 대기큐는 4개만 도시되어 있으나, 이는 설명의 편의상 그러한 것이고 대기큐의 개수 및 사이즈는 코어 개수, 공유 자원 개수 등에 따라 달라질 수 있다.
도 6은 본 발명의 일실시예에 따른 멀티 코어 에뮬레이션 방법을 도시한 흐름도이다.
단계(S610)에서, 복수의 코어들 각각에 대한 에뮬레이션 함수를 별개의 쓰레드로 생성함으로써 상기 복수의 코어들을 동시에 에뮬레이션한다.
단계(S620)에서, 복수의 코어들중 적어도 2개의 코어들이 동시에 공유 자원에 접근하는 경우에 상기 코어들간에 경합 상태가 발생하지 않도록 상기 공유 자원의 이용 순서를 조정한다.
일실시예에서, 동시에 공유 자원에 접근하는 코어들중에서 식별자값이 작은 코어가 상기 공유 자원을 먼저 이용할 수 있도록 조정할 수 있다.
본 발명에서 제안하는 멀티 코어 에뮬레이션 기법은 기능 수준(Function-Accurate) 의 에뮬레이션이므로 명령어 수준(Instruction-Accurate)의 멀티 코어 에뮬레이션에서 발생할 수 있는 코어간 동기화 문제가 발생하지 않으며, 공유 메모리를 사용해 코어간 데이터의 통신 및 필요 시 동기화 기능을 실현 할 수 있다.
본 발명의 실시예에 따른 장치 및 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 또한 상술한 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이제까지 본 발명에 대하여 그 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (5)

  1. 복수의 코어들 각각에 대한 에뮬레이션 함수를 별개의 쓰레드로 생성함으로써 상기 복수의 코어들을 동시에 에뮬레이션하는 에뮬레이션 관리자; 및
    상기 복수의 코어들중 적어도 2개의 코어들이 동시에 공유 자원에 접근하는 경우에 상기 코어들간에 경합 상태(race condition)가 발생하지 않도록 상기 공유 자원의 이용 순서를 조정하는 자원 스케쥴러
    를 포함하는 멀티 쓰레딩 기반 멀티 코어 에뮬레이션 장치.
  2. 제1항에 있어서, 상기 자원 스케쥴러는 동시에 공유 자원에 접근하는 코어들중에서 식별자값이 작은 코어가 상기 공유 자원을 먼저 이용할 수 있도록 조정하는 멀티 쓰레딩 기반 멀티 코어 에뮬레이션 장치.
  3. 제1항에 있어서, 상기 자원 스케쥴러는 상기 공유 자원에 대한 대기 큐를 포함하는 멀티 쓰레딩 기반 멀티 코어 에뮬레이션 장치.
  4. 멀티 쓰레딩 기반 멀티 코어 에뮬레이션 방법으로서,
    복수의 코어들 각각에 대한 에뮬레이션 함수를 별개의 쓰레드로 생성함으로써 상기 복수의 코어들을 동시에 에뮬레이션하는 단계; 및
    상기 복수의 코어들중 적어도 2개의 코어들이 동시에 공유 자원에 접근하는 경우에 상기 코어들간에 경합 상태가 발생하지 않도록 상기 공유 자원의 이용 순서를 조정하는 단계
    를 포함하는 멀티 쓰레딩 기반 멀티 코어 에뮬레이션 방법.
  5. 제4항에 있어서, 상기 공유 자원의 이용 순서를 조정하는 단계는, 동시에 공유 자원에 접근하는 코어들중에서 식별자값이 작은 코어가 상기 공유 자원을 먼저 이용할 수 있도록 조정하는 것인 멀티 쓰레딩 기반 멀티 코어 에뮬레이션 방법.
KR1020140142016A 2014-10-20 2014-10-20 멀티 쓰레딩 기반 멀티 코어 에뮬레이션 장치 및 방법 KR20160046223A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140142016A KR20160046223A (ko) 2014-10-20 2014-10-20 멀티 쓰레딩 기반 멀티 코어 에뮬레이션 장치 및 방법
US14/793,259 US20160110209A1 (en) 2014-10-20 2015-07-07 Apparatus and method for performing multi-core emulation based on multi-threading

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140142016A KR20160046223A (ko) 2014-10-20 2014-10-20 멀티 쓰레딩 기반 멀티 코어 에뮬레이션 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20160046223A true KR20160046223A (ko) 2016-04-28

Family

ID=55749152

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140142016A KR20160046223A (ko) 2014-10-20 2014-10-20 멀티 쓰레딩 기반 멀티 코어 에뮬레이션 장치 및 방법

Country Status (2)

Country Link
US (1) US20160110209A1 (ko)
KR (1) KR20160046223A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210021849A (ko) * 2019-08-19 2021-03-02 성균관대학교산학협력단 멀티코어 프로세서 시스템에서 메모리 할당 방법 및 장치, 이를 위한 기록매체
US11640321B2 (en) 2019-08-19 2023-05-02 Research & Business Foundation Sungkyunkwan University Method and apparatus for memory allocation in a multi-core processor system, and recording medium therefor

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102457183B1 (ko) * 2016-01-05 2022-10-21 한국전자통신연구원 공유 번역 블록 캐시 기반의 멀티-코어 시뮬레이션 시스템 및 방법
US11392495B2 (en) 2019-02-08 2022-07-19 Hewlett Packard Enterprise Development Lp Flat cache simulation
WO2020220225A1 (zh) * 2019-04-29 2020-11-05 华为技术有限公司 资源获取方法、相关装置及计算机存储介质
CN111597035B (zh) * 2020-04-15 2024-03-19 北京仿真中心 基于多线程的仿真引擎时间推进方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210021849A (ko) * 2019-08-19 2021-03-02 성균관대학교산학협력단 멀티코어 프로세서 시스템에서 메모리 할당 방법 및 장치, 이를 위한 기록매체
US11640321B2 (en) 2019-08-19 2023-05-02 Research & Business Foundation Sungkyunkwan University Method and apparatus for memory allocation in a multi-core processor system, and recording medium therefor

Also Published As

Publication number Publication date
US20160110209A1 (en) 2016-04-21

Similar Documents

Publication Publication Date Title
US11163610B2 (en) Method, device, and computer program product for assigning tasks to dedicated processing resources
US10942716B1 (en) Dynamic computational acceleration using a heterogeneous hardware infrastructure
US8572614B2 (en) Processing workloads using a processor hierarchy system
KR101855311B1 (ko) 그래픽 처리 유닛을 위한 작업 부하 일괄 제출 메커니즘
JP6437579B2 (ja) 仮想化環境におけるインテリジェントgpuスケジューリング
KR20160046223A (ko) 멀티 쓰레딩 기반 멀티 코어 에뮬레이션 장치 및 방법
US10977076B2 (en) Method and apparatus for processing a heterogeneous cluster-oriented task
US8413158B2 (en) Processor thread load balancing manager
US11003429B1 (en) Compile-time scheduling
US10761822B1 (en) Synchronization of computation engines with non-blocking instructions
KR20140117578A (ko) 다중스레드 컴퓨팅
US20210158131A1 (en) Hierarchical partitioning of operators
US20150046684A1 (en) Technique for grouping instructions into independent strands
US11467946B1 (en) Breakpoints in neural network accelerator
CN112219192A (zh) 用于使用元数据在神经网络中进行机会性负载平衡的方法和系统
US10922146B1 (en) Synchronization of concurrent computation engines
Lázaro-Muñoz et al. A tasks reordering model to reduce transfers overhead on GPUs
US20230244942A1 (en) Tensor modification based on processing resources
US20230305845A1 (en) Techniques to selectively store data
US20230229588A1 (en) Operations on matrix operands irrespective of where operands are stored in memory
US20230086989A1 (en) Parallel processing of thread groups
US11119787B1 (en) Non-intrusive hardware profiling
KR102033434B1 (ko) 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치 및 방법
US11061654B1 (en) Synchronization of concurrent computation engines
Wang et al. pvFPGA: paravirtualising an FPGA-based hardware accelerator towards general purpose computing

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination