KR102033434B1 - 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치 및 방법 - Google Patents

동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치 및 방법 Download PDF

Info

Publication number
KR102033434B1
KR102033434B1 KR1020140010560A KR20140010560A KR102033434B1 KR 102033434 B1 KR102033434 B1 KR 102033434B1 KR 1020140010560 A KR1020140010560 A KR 1020140010560A KR 20140010560 A KR20140010560 A KR 20140010560A KR 102033434 B1 KR102033434 B1 KR 102033434B1
Authority
KR
South Korea
Prior art keywords
core
emulation
context switching
multicore
dynamic
Prior art date
Application number
KR1020140010560A
Other languages
English (en)
Other versions
KR20150089661A (ko
Inventor
이재진
권영수
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020140010560A priority Critical patent/KR102033434B1/ko
Priority to US14/602,857 priority patent/US9501311B2/en
Publication of KR20150089661A publication Critical patent/KR20150089661A/ko
Application granted granted Critical
Publication of KR102033434B1 publication Critical patent/KR102033434B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • 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

Abstract

본 발명은 동적 컨텍스트 스위칭을 기반으로 동작하는 멀티코어 에뮬레이션 장치 및 방법에 관한 것이다.
본 발명의 일면에 따른 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치는 복수의 코어 중 에뮬레이션 수행 코어의 결정을 요청하는 신호를 송신하는 멀티코어 에뮬레이션 관리부 및 멀티코어 에뮬레이션 관리부로부터 에뮬레이션 수행 코어의 결정을 요청하는 신호를 수신하고, 수신한 신호에 따라 에뮬레이션을 수행할 코어의 ID를 결정하고, 결정된 코어 ID에 해당하는 코어의 에뮬레이션을 실행하는 컨텍스트 스위칭 관리부를 포함한다.

Description

동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치 및 방법{APPARATUS AND METHOD FOR MULTI CORE EMULATION BASED ON DYNAMIC CONTEXT SWITCHING}
본 발명은 동적 컨텍스트 스위칭을 기반으로 동작하는 멀티코어 에뮬레이션 장치 및 방법에 관한 것이다.
최근 다양한 차세대 스마트폰, 휴대형 디바이스, 스마트 TV등의 등장에 따라 실감형 2D/3D의 다양한 그래픽 처리를 지원하기 위하여 멀티코어 프로세서와 그래픽 가속기를 통합한 퓨전 프로세서 개발과 관련된 기술이 제안되고 있다.
현재 스마트폰에 사용되는 프로세서는 종래의 싱글 코어에서 현재 듀얼 코어로 진화하고 있고, 프로세서의 발달과 기기의 소형화 추세에 비추어 볼 때 쿼드 코어 이상의 멀티코어의 형태로 발전할 전망이다.
또한 차세대 모바일 단말에서는 수십 내지 수백 개의 프로세서가 집적된 멀티코어 프로세서를 사용하여 생체 인식 및 증강 현실을 가능하게 할 전망이다.
종래의 프로세서는 클럭 속도를 빠르게 하여 성능을 개선하였으나, 속도가 빨라지면 전력 소모가 커지고 발열이 많아져 더 이상 속도를 높이기가 어려운 문제점이 있었다.
이러한 문제점을 해결하기 위하여 제안된 멀티코어 프로세서는 여러 개의 코어를 탑재하기 때문에 개별 코어가 보다 낮은 주파수에서 동작할 수 있고, 싱글 코어에서 소모되는 전력을 여러 코어에 분산시키게 된다.
멀티코어 프로세서의 탑재는 중앙 처리 장치가 두 개 이상 탑재된 것과 같으므로, 멀티코어 프로세서를 지원하는 프로그램으로 작업하는 경우, 싱글 코어 프로세서에 비하여 빠른 작업을 수행할 수 있고, 멀티미디어 처리를 기본으로 하는 차세대 모바일 단말에서 동영상의 압축 및 복원, 고사양의 게임 실행, 증강 현실 구현 등과 같은 작업에서 싱글 코어 프로세서에 비하여 높은 성능을 확보한다.
멀티코어 프로세서 기반의 최적 SoC 구조의 개발을 위해서는 상위 수준에서 SoC의 기능 및 성능을 조기 분석하기 위한 가상 플랫폼 기반 시스템 수준의 설계 방법론이 요구되며, 가상 플랫폼 설계 시 가장 중요한 핵심 요소는 멀티코어의 기능을 function-accurate 수준으로 모델링한 에뮬레이터를 설계하는 것이다.
현재 사용되고 있는 멀티코어 에뮬레이터는 실제 칩 상에서 동일한 주파수로 동작하는 멀티코어 프로세서의 에뮬레이션만을 지원하고, 서로 다른 동작 주파수를 가지고 동작하는 멀티코어의 기능을 에뮬레이션 하는 기능을 제공하지 못하는 문제점이 있다.
도 1은 종래 기술에 따른 프로세서 코어 에뮬레이션 기법을 나타내는 개념도로서, 프로세서 코어 에뮬레이션 기법은 도 1에 도시된 바와 같이 프로세서 코어의 파이프라인을 모델링하여 에뮬레이션 하는 방식인 interpretive ISS(Instruction Set Simulation) 기법, Compile ISS 기법, 타겟 코드를 호스트 머신 코드로 변환하여 수행하는 동적 코드 변환(DCT, Dynamic Code Translation) 기법이 있다.
Interpretive ISS는 상용 ISS 시뮬레이터로서 axd, rvdebuger 등의 ARMulator이고, Compile ISS는 interpretive ISS 대비 약 1000배 빠른 속도로 프로세서 코어를 에뮬레이션 하는 기법이다.
가상 플랫폼 에뮬레이터 상에서 드라이버, 펌웨어 및 응용 어플리케이션을 개발하기 위해서는 10 내지 100MIPS의 속도를 가지는 프로세서 코어의 고속 에뮬레이션 기술이 요구되며, 종래 기술에 따르면 동적 코드 변환을 기반으로 타겟 코드를 수행하지 않고 호스트 코드를 직접 호스트 머신에서 수행하는(Host Code Execution) 프로세서 코어 에뮬레이션 기법이 사용되고 있다.
도 2는 종래 기술에 따른 동적 코드 변환을 통한 고속 에뮬레이션 기법을 나타내는 개념도로서, 바이너리 이미지로부터 명령어를 읽어 들여서 TB(Translation Block)을 찾고, 캐시(Cache) 내에 해당 TB가 존재하지 않는 경우 disassemble 과정을 거치며, disassemble 과정에서는 인스트럭션의 기능을 파악하고, 이를 호스트 머신(x86) 명령어 셋으로 변환한다.
TB는 TB 캐시에 저장되며, 저장된 직후 TB를 호스트 머신의 함수로서 수행할 수 있다.
추후 같은 인스트럭션을 수행해야 하는 경우 TB 캐시에서 이미 캐싱(caching)된 TB를 찾음으로써, 많은 시간이 소모되는 disassemble 과정을 생략할 수 있으므로, 매번 disassemble하는 경우보다 약 10배 정도 에뮬레이션 속도를 향상 시킬 수 있다.
도 3은 종래 기술에 따른 멀티코어 컨텍스트 스위칭 기법을 도시하는 개념도로서, 도 3에 도시된 바에 따르면 동적 코드 변환 기법에 기반한 4개의 멀티코어 프로세서의 에뮬레이션 기법은 각 코어들 사이의 컨텍스트 스위칭(context switching)을 담당하는 멀티코어 에뮬레이션 매니저(Multi-Core Emulation Manager)를 사용하여 실현되며, 멀티코어 에뮬레이션 매니저는 순차적 방식(라운드로빈 방식)으로 4개의 코어에 컨텍스트 스위칭을 수행하며 각각의 코어를 에뮬레이션 한다.
이러한 경우 각 코어(코어 0 내지 코어 4)에 대한 워크로드(workload)의 할당 비율은 1:1:1:1로서, 동일한 주파수로 동작하는 멀티코어 프로세서의 에뮬레이션만을 지원하게 된다.
즉, 도 3에 도시된 종래 기술에 따른 멀티코어 컨텍스트 스위칭 기법은 실제 칩 상에서 서로 다른 동작 주파수를 가지고 동작하는 멀티코어의 기능을 에뮬레이션하지 못하는 문제점이 있다.
본 발명의 목적은 멀티코어 에뮬레이션 수행 중에 동적으로 프로세서 코어 각각에 상이한 워크로드를 할당하여, 실제 칩 상에서 서로 다른 동작 주파수로 동작하는 멀티코어의 기능을 에뮬레이션하는 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치 및 방법을 제공하는 데 목적이 있다.
본 발명의 일면에 따른 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치는 복수의 코어 중 에뮬레이션 수행 코어의 결정을 요청하는 신호를 송신하는 멀티코어 에뮬레이션 관리부 및 멀티코어 에뮬레이션 관리부로부터 에뮬레이션 수행 코어의 결정을 요청하는 신호를 수신하고, 수신한 신호에 따라 에뮬레이션을 수행할 코어의 ID를 결정하고, 결정된 코어 ID에 해당하는 코어의 에뮬레이션을 실행하는 컨텍스트 스위칭 관리부를 포함하는 것을 특징으로 한다.
본 발명의 다른 면에 따른 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 방법은 에뮬레이션 수행 코어의 결정을 요청하는 신호를 수신하는 단계와, 수신한 에뮬레이션 수행 코어의 결정 요청 신호에 따라 에뮬레이션을 수행할 코어의 ID를 검색하는 단계 및 코어의 ID 검색 결과에 따라 코어의 ID에 해당하는 코어 에뮬레이션을 실행하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 또 다른 면에 따른 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치는 컨텍스트 스위칭 카운트 값을 수신하고, 수신한 컨텍스트 스위칭 카운트 값에 따라 상이한 동작 주파수에서 동작하는 복수의 코어에 대하여 해당 코어 ID를 검색하고, 코어 ID에 해당하는 코어가 존재하는 경우 해당 코어의 에뮬레이션을 수행하는 컨텍스트 스위칭 매니저를 포함하는 것을 특징으로 한다.
본 발명에 따른 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치 및 방법은 동적으로 프로세서 코어 각각에 서로 다른 워크로드를 할당하여, 실제 칩 상에서 서로 다른 동작 주파수로 동작하는 멀티코어의 에뮬레이션을 지원하는 효과가 있다.
아울러 본 발명은 멀티코어 프로세서 기반 최적 SoC 구조의 개발을 위한 상위 수준 가상 플랫폼 상에서 통합 에뮬레이션 및 멀티코어 기반 고성능 SoC 에뮬레이션 등 다양한 응용에 적용될 수 있는 효과가 있다.
멀티코어 프로세서 기반 최적 SoC 구조 개발을 위하여 상위 수준에서 SoC의 기능 및 성능을 조기분석하기 위한 가상 플랫폼 기반 시스템 수준의 설계에 있어서, 멀티코어의 기능을 function-accurate 수준으로 모델링하는 에뮬레이터를 설계하는 효과가 있다.
본 발명의 효과는 이상에서 언급한 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 종래 기술에 따른 프로세서 코어 에뮬레이션 기법을 나타내는 개념도.
도 2는 종래 기술에 따른 동적 코드 변환을 통한 고속 에뮬레이션 기법을 나타내는 개념도.
도 3은 종래 기술에 따른 멀티코어 컨텍스트 스위칭 기법을 도시하는 개념도.
도 4는 본 발명의 일면에 따른 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치를 나타내는 블록도.
도 5는 본 발명의 일면에 따른 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치의 일 실시예를 나타내는 개념도.
도 6은 본 발명의 다른 면에 따른 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 방법을 나타내는 순서도.
이하에서는 도면을 참조하면서, 본 발명의 바람직한 실시예들을 구체적으로 설명한다.
도 4는 본 발명의 일면에 따른 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치를 나타내는 블록도이다.
도 4에 도시된 바와 같이, 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치는 복수의 코어 중 에뮬레이션을 수행할 코어의 결정을 요청하는 신호를 송신하는 멀티코어 에뮬레이션 관리부(100) 및 에뮬레이션을 수행할 코어의 결정을 요청하는 신호를 수신하고, 수신한 신호에 따라 에뮬레이션을 수행할 코어의 ID를 결정하고, 결정된 코어 ID에 해당하는 코어의 에뮬레이션을 실행하는 컨텍스트 스위칭 관리부(200)를 포함한다.
멀티코어 에뮬레이션 관리부(100)는 컨텍스트 스위칭 카운트(context switching count) 값을 송신하며 복수의 코어(300) 중 에뮬레이션을 수행할 코어의 결정을 요청하는 신호를 컨텍스트 스위칭 관리부(200)로 송신한다.
컨텍스트 스위칭 관리부(200)는 멀티코어 에뮬레이션 관리부(100)가 송신한 컨텍스트 스위칭 카운트 값을 수신하고, 수신한 컨텍스트 스위칭 카운트 값을 이용하여 컨텍스트 스위칭 테이블 내에서 코어 ID를 검색한다.
컨텍스트 스위칭 테이블은 복수의 코어(300) 별로 컨텍스트 스위칭 카운트 값에 따라 실행되는 코어의 ID를 저장한 테이블로서, 컨텍스트 스위칭 관리부(200)는 멀티코어 에뮬레이션 관리부(100)로부터 수신한 컨텍스트 스위칭 카운트 값을 이용하여 컨텍스트 스위칭 테이블 내 해당 코어 ID가 존재하는지 검색한다.
컨텍스트 스위칭 테이블은 복수의 코어(300)에 대한 동작 주파수의 비율에 따라 할당된 각 코어 별 워크로드를 기준으로 각 코어(300)의 수행 비율을 결정하여 기저장된 컨텍스트 스위칭 카운트 값 별로 실행되는 코어 ID를 포함하는 테이블로 구성된다.
컨텍스트 스위칭 관리부(200)는 컨텍스트 스위칭 카운트 값에 따른 컨텍스트 스위칭 테이블의 검색 결과, 테이블 내에 해당 코어 ID가 존재하지 않는 경우 코어 ID를 초기값(0)으로 설정한다.
컨텍스트 스위칭 관리부(200)는 결정된 코어 ID에 해당하는 코어가 존재하는 경우, 해당 코어에 대한 에뮬레이션을 수행하고, 해당 코어에 대한 에뮬레이션이 종료되면 에뮬레이션 종료 정보를 멀티코어 에뮬레이션 관리부(100)로 전송하고, 수신한 컨텍스트 스위칭 카운트 값을 1만큼 증가시킨다.
도 5는 본 발명의 일면에 따른 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치의 일 실시예를 나타내는 개념도이다.
도 5에 도시된 바와 같이, 멀티코어 에뮬레이션 관리부(100)는 컨텍스트 스위칭 카운트 값을 컨텍스트 스위칭 관리부(200)로 송신한다.
일례로, 실제 칩상에서 동작하는 코어 0(300a) 내지 코어 4(300d)의 동작 주파수가 각각 400MHz, 300MHz, 200MHz, 100MH인 경우, 컨텍스트 스위칭 테이블은 컨텍스트 스위칭 카운트 값을 10으로 나눈 나머지 값인 0 내지 9에 대하여 각 코어에 할당되는 워크로드를 4:3:2:1의 비율로 할당한다.
즉, 코어 0은 컨텍스트 스위칭 카운트 값을 10으로 나눈 나머지 값이 0, 1, 2, 3인 경우 실행되는 코어 ID이고, 코어 1은 컨텍스트 스위칭 카운트 값을 10으로 나눈 나머지 값이 4, 5, 6인 경우 실행되는 코어 ID이고, 코어 2는 컨텍스트 스위칭 카운트 값을 10으로 나눈 나머지 값이 7, 8인 경우 실행되는 코어 ID이고, 코어 3은 컨텍스트 스위칭 카운트 값을 10으로 나눈 나머지 값이 9인 경우 실행되는 코어 ID이다. 즉, 코어 0과 코어 3의 수행 비율은 4:1이 며, 이러한 컨텍스트 스위칭 테이블의 실행 코어 ID값은 에뮬레이션의 수행 전 또는 수행 중 재구성될 수 있다.
본 발명의 일 실시예에 따르면, 동작 주파수가 상이한 코어 별로 상이한 워크로드를 할당함으로써, 복수의 코어에 대한 수행 비율을 설정함으로써, 실제 칩 상에서 서로 다른 동작 주파수로 동작하는 멀티코어 시스템을 구현할 수 있다.
도 6은 본 발명의 다른 면에 따른 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 방법을 나타내는 순서도이다.
도 6에 도시된 바와 같이, 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 방법은 에뮬레이션 수행 코어의 결정을 요청하는 신호를 수신하는 단계(S100)와, 수신한 에뮬레이션 수행 코어의 결정 요청 신호에 따라 에뮬레이션을 수행할 코어의 ID를 검색하는 단계(S200) 및 코어의 ID 검색 결과에 따라 코어의 ID에 해당하는 코어 에뮬레이션을 실행하는 단계(S500)를 포함한다.
에뮬레이션 수행 코어의 결정을 요청하는 신호를 수신하는 단계(S100)는 멀티코어 에뮬레이션 관리부(100)로부터 컨텍스트 스위칭 카운트 값을 수신하여 에뮬레이션 수행 코어의 결정을 요청하는 신호를 수신하고, 수신한 컨텍스트 스위칭 값에 따라 실행되는 복수의 코어 별 코어 ID를 저장하는 컨텍스트 스위칭 테이블을 이용하여 코어의 ID를 검색한다.
동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 방법은 컨텍스트 스위칭 테이블을 이용한 코어 ID의 검색 결과, 해당 코어가 존재하지 않는 경우 코어 ID를 초기값(0)으로 설정하는 단계(S400)를 더 포함한다.
코어의 ID를 검색하는 단계(S200)는 복수의 코어의 동작 주파수 비율(도 5의 일례에 따르면 코어 0 내지 코어 3의 동작 주파수 비율은 4:3:2:1)에 따라 복수의 코어 각각에 대한 워크로드(도 5의 일례에 따르면 코어 0 내지 코어 3에 할당되는 워크로드는 4:3:2:1)가 할당되는 컨텍스트 스위칭 테이블을 이용하여 코어의 ID를 검색한다.
동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 방법은 코어의 ID에 해당하는 코어의 에뮬레이션 실행이 완료되는 경우, 멀티코어 에뮬레이션 매니저로 에뮬레이션 실행 완료 정보를 전송하는 단계(S600)를 더 포함한다.
에뮬레이션 실행 완료 정보를 전송하는 단계(S600)는 에뮬레이션 실행 완료 정보의 전송에 따라 수신한 컨텍스트 스위칭 카운트 값을 1 증가시킨다.
본 발명의 또 다른 면에 따른 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치는 컨텍스트 스위칭 카운트 값을 수신하고, 수신한 컨텍스트 스위칭 카운트 값에 따라 상이한 동작 주파수에서 동작하는 복수의 코어에 대하여 해당 코어 ID를 검색하고, 코어 ID에 해당하는 코어가 존재하는 경우 해당 코어의 에뮬레이션을 수행하는 컨텍스트 스위칭 매니저를 포함한다.
컨텍스트 스위칭 매니저는 해당 코어의 에뮬레이션 수행이 완료되는 경우, 에뮬레이션 수행의 완료 정보를 멀티코어 에뮬레이션 매니저로 전송하고, 수신한 컨텍스트 스위칭 카운트 값을 증가시킨다.
컨텍스트 스위칭 매니저는 복수의 코어의 상이한 동작 주파수의 비율에 따라 워크로드가 기 할당된 컨텍스트 스위칭 테이블을 이용하여 해당 코어 ID를 검색하고, 해당 코어 ID의 검색 결과 컨텍스트 스위칭 카운트 값에 대응하는 해당 코어 ID가 존재하지 않는 경우, 코어 ID를 초기값으로 설정한다.
본 발명의 또 다른 면에 따른 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치는 에뮬레이션의 수행 전 또는 수행 중에 상기 동작 주파수 및 워크로드 할당에 따라 컨텍스트 스위칭 테이블을 재구성하는 컨텍스트 스위칭 테이블 재구성부를 더 포함한다.
이제까지 본 발명의 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
100: 멀티코어 에뮬레이션 관리부 200: 컨텍스트 스위칭 관리부
300: 코어

Claims (20)

  1. 컨텍스트 스위칭 카운트 값을 송신하여 복수의 코어 중 에뮬레이션 수행 코어의 결정을 요청하는 신호를 송신하는 멀티코어 에뮬레이션 관리부; 및
    상기 멀티코어 에뮬레이션 관리부로부터 에뮬레이션 수행 코어의 결정을 요청하는 신호를 수신하고, 상기 수신한 신호에 따라 에뮬레이션을 수행할 코어의 ID를 결정하고, 상기 결정된 코어 ID에 해당하는 코어의 에뮬레이션을 실행하는 컨텍스트 스위칭 관리부
    를 포함하는 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치.
  2. 삭제
  3. 제1항에 있어서, 상기 컨텍스트 스위칭 관리부는
    상기 멀티코어 에뮬레이션 관리부가 송신한 컨텍스트 스위칭 카운트 값을 수신하고, 상기 수신한 컨텍스트 스위칭 카운트 값을 이용하여 컨텍스트 스위칭 테이블 내의 코어 ID를 검색하는 것
    인 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치.
  4. 제3항에 있어서, 상기 컨텍스트 스위칭 관리부는
    상기 컨텍스트 스위칭 카운트 값에 따라 실행되는 상기 복수의 코어 별 코어 ID를 기저장하는 컨텍스트 스위칭 테이블을 이용하여 상기 코어 ID를 검색하는 것
    인 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치.
  5. 제4항에 있어서, 상기 컨텍스트 스위칭 관리부는
    상기 복수의 코어에 대한 동작 주파수 비율에 따라 상기 복수의 코어 각각에 대한 워크로드가 할당된 컨텍스트 스위칭 테이블을 이용하여 상기 코어 ID를 검색하는 것
    인 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치.
  6. 제4항에 있어서, 상기 컨텍스트 스위칭 관리부는
    상기 컨텍스트 스위칭 카운트 값에 따른 검색 결과, 상기 컨텍스트 스위칭 테이블 내에 해당 코어가 존재하지 않는 경우 코어 ID를 초기값으로 설정하는 것
    인 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치.
  7. 제1항에 있어서, 상기 컨텍스트 스위칭 관리부는
    상기 결정된 코어 ID에 해당하는 코어의 에뮬레이션이 종료되는 경우, 에뮬레이션 종료 정보를 상기 멀티코어 에뮬레이션 관리부로 전송하고, 상기 컨텍스트 스위칭 카운트 값을 증가시키는 것
    인 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치.
  8. 컨텍스트 스위칭 관리부가, 컨텍스트 스위칭 카운트 값을 수신하여 에뮬레이션 수행 코어의 결정을 요청하는 신호를 수신하는 단계;
    상기 수신한 에뮬레이션 수행 코어의 결정 요청 신호에 따라 에뮬레이션을 수행할 코어의 ID를 검색하는 단계; 및
    상기 코어의 ID 검색 결과에 따라 상기 코어의 ID에 해당하는 코어 에뮬레이션을 실행하는 단계
    를 포함하는 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 방법.
  9. 삭제
  10. 제8항에 있어서,
    상기 코어의 ID 검색 결과, 해당 코어가 존재하지 않는 경우 코어 ID를 초기값으로 설정하는 단계
    를 더 포함하는 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 방법.
  11. 제8항에 있어서, 상기 코어의 ID를 검색하는 단계는
    상기 수신한 컨텍스트 스위칭 값에 따라 실행되는 복수의 코어 별 코어 ID를 기저장하는 컨텍스트 스위칭 테이블을 이용하여 상기 코어의 ID를 검색하는 것
    인 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 방법.
  12. 제11항에 있어서, 상기 코어의 ID를 검색하는 단계는
    상기 복수의 코어의 동작 주파수 비율에 따라 상기 복수의 코어 각각에 대한 워크로드가 할당되는 컨텍스트 스위칭 테이블을 이용하여 상기 코어의 ID를 검색하는 것
    인 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 방법.
  13. 제11항에 있어서,
    상기 코어의 ID 검색 결과에 따라 결정된 코어의 ID에 해당하는 코어 에뮬레이션 실행이 완료되는 경우, 에뮬레이션 실행 완료 정보를 전송하는 단계
    를 더 포함하는 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 방법.
  14. 제13항에 있어서, 상기 에뮬레이션 실행 완료 정보를 전송하는 단계는
    상기 에뮬레이션 실행 완료 정보 전송에 따라 상기 수신한 컨텍스트 스위칭 카운트 값을 증가시키는 것
    인 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 방법.
  15. 컨텍스트 스위칭 카운트 값을 수신하고, 상기 수신한 컨텍스트 스위칭 카운트 값에 따라 상이한 동작 주파수에서 동작하는 복수의 코어에 대하여 해당 코어 ID를 검색하고, 상기 코어 ID에 해당하는 코어가 존재하는 경우 상기 해당 코어의 에뮬레이션을 수행하는 컨텍스트 스위칭 매니저
    를 포함하는 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치.
  16. 제15항에 있어서, 상기 컨텍스트 스위칭 매니저는
    상기 해당 코어의 에뮬레이션 수행이 완료되는 경우, 상기 에뮬레이션 수행의 완료 정보를 멀티코어 에뮬레이션 매니저로 전송하는 것
    인 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치.
  17. 제16항에 있어서, 상기 컨텍스트 스위칭 매니저는
    상기 해당 코어의 에뮬레이션 수행이 완료되는 경우, 상기 컨텍스트 스위칭 카운트 값을 증가시키는 것
    인 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치.
  18. 제15항에 있어서, 상기 컨텍스트 스위칭 매니저는
    상이한 동작 주파수의 비율에 따라 워크로드가 기 할당된 상기 복수의 코어에 대한 컨텍스트 스위칭 테이블을 이용하여 상기 해당 코어 ID를 검색하는 것
    인 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치
  19. 제18항에 있어서, 상기 컨텍스트 스위칭 매니저는
    상기 해당 코어 ID의 검색 결과 상기 컨텍스트 스위칭 카운트 값에 대응하는 해당 코어 ID가 존재하지 않는 경우, 코어 ID를 초기값으로 설정하는 것
    인 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치.
  20. 제18항에 있어서,
    상기 에뮬레이션의 수행 전 또는 수행 중에 상기 동작 주파수 및 워크로드 할당에 따라 상기 컨텍스트 스위칭 테이블을 재구성하는 컨텍스트 스위칭 테이블 재구성부
    를 더 포함하는 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치.
KR1020140010560A 2014-01-28 2014-01-28 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치 및 방법 KR102033434B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140010560A KR102033434B1 (ko) 2014-01-28 2014-01-28 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치 및 방법
US14/602,857 US9501311B2 (en) 2014-01-28 2015-01-22 Apparatus and method for multicore emulation based on dynamic context switching

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140010560A KR102033434B1 (ko) 2014-01-28 2014-01-28 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20150089661A KR20150089661A (ko) 2015-08-05
KR102033434B1 true KR102033434B1 (ko) 2019-10-17

Family

ID=53679137

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140010560A KR102033434B1 (ko) 2014-01-28 2014-01-28 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치 및 방법

Country Status (2)

Country Link
US (1) US9501311B2 (ko)
KR (1) KR102033434B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102457183B1 (ko) * 2016-01-05 2022-10-21 한국전자통신연구원 공유 번역 블록 캐시 기반의 멀티-코어 시뮬레이션 시스템 및 방법
US10318356B2 (en) * 2016-03-31 2019-06-11 International Business Machines Corporation Operation of a multi-slice processor implementing a hardware level transfer of an execution thread

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120317568A1 (en) * 2011-06-08 2012-12-13 Microsoft Corporation Operating system decoupled heterogeneous computing

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060212677A1 (en) * 2005-03-15 2006-09-21 Intel Corporation Multicore processor having active and inactive execution cores
JP2008152594A (ja) * 2006-12-19 2008-07-03 Hitachi Ltd マルチコアプロセッサ計算機の高信頼化方法
KR100982666B1 (ko) 2008-09-10 2010-09-17 한국전자통신연구원 컨텍스트 기반 적응적 가변길이 코딩의 디코딩 장치 및 디코딩을 위한 테이블 탐색 방법
US8561073B2 (en) * 2008-09-19 2013-10-15 Microsoft Corporation Managing thread affinity on multi-core processors
JP5093509B2 (ja) 2008-10-28 2012-12-12 日本電気株式会社 Cpuエミュレーションシステム、cpuエミュレーション方法及びcpuエミュレーションプログラム
KR101155202B1 (ko) * 2009-12-24 2012-06-13 포항공과대학교 산학협력단 멀티 코어 프로세서의 전력 관리 방법, 멀티 코어 프로세서의 전력 관리 방법이 기록된 기록매체 및 이를 실행하는 멀티 코어 프로세서 시스템
KR101330609B1 (ko) 2012-04-03 2013-11-18 주식회사 알투소프트 모바일 멀티코어 가상화 시스템에서 실시간 처리를 보장하기 위한 스케쥴링 방법
US10185566B2 (en) * 2012-04-27 2019-01-22 Intel Corporation Migrating tasks between asymmetric computing elements of a multi-core processor
KR102005765B1 (ko) * 2012-12-17 2019-07-31 삼성전자주식회사 시스템-온 칩과, 이의 동작 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120317568A1 (en) * 2011-06-08 2012-12-13 Microsoft Corporation Operating system decoupled heterogeneous computing

Also Published As

Publication number Publication date
KR20150089661A (ko) 2015-08-05
US9501311B2 (en) 2016-11-22
US20150212849A1 (en) 2015-07-30

Similar Documents

Publication Publication Date Title
US10942716B1 (en) Dynamic computational acceleration using a heterogeneous hardware infrastructure
US20180074843A1 (en) System, method, and computer program product for linking devices for coordinated operation
US10241766B2 (en) Application binary interface cross compilation
US11003429B1 (en) Compile-time scheduling
CN103198042A (zh) Pci航空串行总线板卡及实现动态加载数据处理方法
CN102799465B (zh) 分布式虚拟化系统的虚拟中断管理方法及装置
US20160110209A1 (en) Apparatus and method for performing multi-core emulation based on multi-threading
US20210158131A1 (en) Hierarchical partitioning of operators
CN116320469B (zh) 一种虚拟化视频编解码系统及方法、电子设备和存储介质
CN116582438B (zh) 一种虚拟化视频编解码系统及方法、电子设备和存储介质
CN114168255A (zh) 容器云平台中异构指令集容器的运行方法和装置
JP6974510B2 (ja) データを処理するための方法、装置、デバイス及び媒体
KR102033434B1 (ko) 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치 및 방법
CN113657069A (zh) 片上系统soc仿真验证方法、装置、验证服务器及存储介质
CN113886018A (zh) 虚拟机资源分配方法、装置、介质及设备
CN113326093A (zh) 数据处理方法、装置、电子设备及计算机可读介质
KR101620896B1 (ko) 이기종 프로세싱 타입을 고려한 맵리듀스 프로그램 모델의 수행 성능 향상 방법, 수행 성능 향상 장치 및 수행 성능 향상 시스템
CN114253656A (zh) 用于微服务工作负载的覆盖式容器存储驱动器
US20160026567A1 (en) Direct memory access method, system and host module for virtual machine
US9836401B2 (en) Multi-core simulation system and method based on shared translation block cache
CN114416249B (zh) 程序处理方法、装置、设备及存储介质
EP4109255A1 (en) Scheduling in a container orchestration system utilizing hardware topology hints
CN117176963B (zh) 一种虚拟化视频编解码系统及方法、电子设备和存储介质
US11182314B1 (en) Low latency neural network model loading
US20240103813A1 (en) Compute engine with transpose circuitry

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right