1 |
1
유저 어플리케이션의 소스 코드인 커널 프로그램을 바이너리 형태로 컴파일하여, 컴파일된 커널 프로그램을 이종 시스템 구조 디바이스에 전달하는 호스트; 호스트로부터 전달된 커널 프로그램을 둘 이상의 상이한 종류의 프로세싱 요소들에 의해 병렬 연산 처리하는 이종 시스템 구조 디바이스; 및 호스트 및 이종 시스템 구조 디바이스가 공유하는 단일화 가상 메모리를 포함하는, 단일화 가상 메모리 기반 이기종 시스템
|
2 |
2
제1 항에 있어서, 둘 이상의 상이한 종류의 프로세싱 요소들 각각은,커널 프로그램을 실행하는 복수의 프로세서 코어들을 포함하고, 복수의 프로세서 코어들 각각은,프로세서 코어에 의해 커널 프로그램에 포함된 명령어 수행을 위한 범용 레지스터; 및 프로세서 코어에 의해 발생된 데이터가 저장되는 제어 상태 레지스터를 내장하여, 제어 상태 레지스터 읽기 명령어를 이용하여 제어 상태 레지스터에 저장된 데이터를 읽어서 범용 레지스터에 저장하고, 제어 상태 레지스터 쓰기 명령어를 이용하여 범용 레지스터의 데이터를 제어 상태 레지스터에 저장하는, 단일화 가상 메모리 기반 이기종 시스템
|
3 |
3
제2 항에 있어서, 제어 상태 레지스터 읽기 명령어는,읽기 대상 데이터가 저장된 제어 상태 레지스터 어드레스; 데이터가 저장될 범용 레지스터에 해당하는 목적지; 및 제어 상태 레지스터 쓰기임이 표기된 코드를 포함하고, 제어 상태 레지스터 쓰기 명령어는,데이터가 저장될 제어 상태 레지스터 어드레스; 쓰기 대상 데이터가 저장된 범용 레지스터에 해당하는 소스; 및 제어 상태 레지스터 읽기임이 표기된 코드를 포함하는, 단일화 가상 메모리 기반 이기종 시스템
|
4 |
4
제1 항에 있어서, 둘 이상의 상이한 종류의 프로세싱 요소들 각각은,커널 프로그램을 실행하는 복수의 프로세서 코어들; 및복수의 프로세서 코어들 각각이 커널 프로그램을 실행함에 따라 발생된 메모리 주소 영역 중 제1 시작 주소에서 소정 바이트 크기 만큼의 영역을 단일화 가상 메모리의 가상 어드레스 영역 중 제2 시작 주소에서 소정 바이트 크기 만큼의 영역으로 매핑하는 적어도 하나의 어드레스 매핑 캐시를 포함하는, 단일화 가상 메모리 기반 이기종 시스템
|
5 |
5
제4 항에 있어서, 호스트는, 적어도 하나의 어드레스 매핑 캐시 각각에서 사용하는 제1 주소, 제2 주소 및 바이트 크기를 포함하는 어드레스 매핑 설정값을 결정하여 이종 시스템 구조 디바이스에 전달하고, 이종 시스템 구조 디바이스는, 호스트로부터 전달된 어드레스 매핑 설정값으로 상응하는 어드레스 매핑 캐시를 설정하는 구성 설정부를 더 포함하는, 단일화 가상 메모리 기반 이기종 시스템
|
6 |
6
제4 항에 있어서, 적어도 하나의 어드레스 매핑 캐시는, 복수의 프로세서 코어들 각각에 의해 독점적으로 사용되는 프라이빗 메모리 캐시들; 이종 시스템 구조 디바이스에 포함된 모든 프로세서 코어들이 수행하는 인스트럭션이 포함된 명령어 메모리 영역으로 매핑되어 동작하는 인스트럭션 메모리 캐시;하나의 프로세싱 요소에 포함된 모든 프로세서 코어들에 의한 공유 메모리 영역으로 할당되어 읽기 동작시 사용되는 로컬 메모리 캐시; 및모든 프로세싱 요소들이 공유하는 글로벌 메모리 영역으로 할당되어 동작하는 글로벌 메모리 캐시 중 적어도 하나를 포함하는, 단일화 가상 메모리 기반 이기종 시스템
|
7 |
7
제6 항에 있어서, 호스트는,글로벌 메모리 캐시에서 사용하는 제1 주소 및 바이트 크기를 결정하는 유저 어플리케이션;커널 프로그램을 컴파일하되, 인스트럭션 메모리 캐시, 프라이빗 메모리 캐시, 로컬 메모리 캐시 및 글로벌 메모리 캐시 각각에서 사용하는 제2 주소 및 바이트 크기를 결정하는 커널 컴파일러; 유저 어플리케이션 및 커널 컴파일러에 의해 결정된 값을 디바이스 드라이버에 전달하는 런타임; 및 인스트럭션 메모리 캐시, 프라이빗 메모리 캐시, 로컬 메모리 캐시 및 글로벌 메모리 캐시 각각에서 사용하는 제2 주소들을 결정하고, 런타임으로부터 전달되는 값들과 자신이 결정한 값들을 포함하는 어드레스 매핑 설정값으로 이종 시스템 구조 디바이스의 구성을 설정하는 디바이스 드라이버를 포함하는, 단일화 가상 메모리 기반 이기종 시스템
|
8 |
8
제7 항에 있어서, 커널 컴파일러는, 결정된 제2 주소 및 바이트 크기를 포함하는 메모리 주소 구조에 시작 코드 및 컴파일된 커널 프로그램을 배치하되, 시작 코드는, 디바이스 드라이버가 생성하는 프로세서 코어들 각각을 위한 프로세서 구성 데이터를 제어 상태 레지스터로 로딩하는 명령어를 포함하고, 프로세서 코어는, 커널 프로그램을 실행하는 중에 프로세서 구성 데이터가 필요할 경우, 제어 상태 레지스터로 로딩하는 명령어를 사용하여 구성 데이터를 획득하여 커널 프로그램을 수행하는, 단일화 가상 메모리 기반 이기종 시스템
|
9 |
9
유저 어플리케이션의 소스 코드인 커널 프로그램을 바이너리 형태로 컴파일하는 커널 컴파일러; 및컴파일된 커널 프로그램을 둘 이상의 상이한 종류의 프로세싱 요소들에 의해 병렬 연산 처리하는 이종 시스템 구조 디바이스에 전달하는 런 타임을 포함하되, 이종 시스템 구조 디바이스와 단일화 가상 메모리를 공유하는, 호스트 장치
|
10 |
10
제9 항에 있어서, 둘 이상의 상이한 종류의 프로세싱 요소들 각각은,커널 프로그램을 실행하는 복수의 프로세서 코어들; 및복수의 프로세서 코어들 각각이 커널 프로그램을 실행함에 따라 발생된 메모리 주소 영역 중 제1 시작 주소에서 소정 바이트 크기 만큼의 영역을 단일화 가상 메모리의 가상 어드레스 영역 중 제2 시작 주소에서 소정 바이트 크기 만큼의 영역으로 매핑하는 적어도 하나의 어드레스 매핑 캐시를 포함하되, 호스트는, 적어도 하나의 어드레스 매핑 캐시 각각에서 사용하는 제1 주소, 제2 주소 및 바이트 크기를 포함하는 어드레스 매핑 설정값을 결정하여 이종 시스템 구조 디바이스에 전달하고, 이종 시스템 구조 디바이스는, 호스트로부터 전달된 어드레스 매핑 설정값으로 상응하는 어드레스 매핑 캐시를 설정하는, 호스트 장치
|
11 |
11
제10 항에 있어서, 적어도 하나의 어드레스 매핑 캐시는, 복수의 프로세서 코어들 각각에 의해 독점적으로 사용되는 프라이빗 메모리 캐시들; 이종 시스템 구조 디바이스에 포함된 모든 프로세서 코어들이 수행하는 인스트럭션이 포함된 명령어 메모리 영역으로 매핑되어 동작하는 인스트럭션 메모리 캐시;하나의 프로세싱 요소에 포함된 모든 프로세서 코어들에 의한 공유 메모리 영역으로 할당되어 읽기 동작시 사용되는 로컬 메모리 캐시; 및모든 프로세싱 요소들이 공유하는 글로벌 메모리 영역으로 할당되어 동작하는 글로벌 메모리 캐시 중 적어도 하나를 포함하되, 호스트는,글로벌 메모리 캐시에서 사용하는 제1 주소 및 바이트 크기를 결정하는 유저 어플리케이션;커널 프로그램을 컴파일하되, 인스트럭션 메모리 캐시, 프라이빗 메모리 캐시, 로컬 메모리 캐시 및 글로벌 메모리 캐시 각각에서 사용하는 제2 주소 및 바이트 크기를 결정하는 커널 컴파일러; 유저 어플리케이션 및 커널 컴파일러에 의해 결정된 값을 디바이스 드라이버에 전달하는 런타임; 및 인스트럭션 메모리 캐시, 프라이빗 메모리 캐시, 로컬 메모리 캐시 및 글로벌 메모리 캐시 각각에서 사용하는 제2 주소들을 결정하고, 런타임으로부터 전달되는 값들과 자신이 결정한 값들을 포함하는 어드레스 매핑 설정값으로 이종 시스템 구조 디바이스의 구성을 설정하는 디바이스 드라이버를 포함하는, 호스트 장치
|
12 |
12
제11 항에 있어서, 커널 컴파일러는, 결정된 제2 주소 및 바이트 크기를 포함하는 메모리 주소 구조에 시작 코드 및 컴파일된 커널 프로그램을 배치하되, 시작 코드는, 디바이스 드라이버가 생성하는 프로세서 코어들 각각을 위한 프로세서 구성 데이터를 제어 상태 레지스터로 로딩하는 명령어를 포함하는, 호스트 장치
|
13 |
13
호스트로부터 전달된 커널 프로그램을 둘 이상의 상이한 종류의 프로세싱 요소들에 의해 병렬 연산 처리하되, 둘 이상의 상이한 종류의 프로세싱 요소들 각각은,커널 프로그램을 실행하는 복수의 프로세서 코어들을 포함하고, 호스트와 단일화 가상 메모리를 공유하는, 이종 시스템 구조 디바이스
|
14 |
14
제13 항에 있어서,복수의 프로세서 코어들 각각은,프로세서 코어에 의해 커널 프로그램에 포함된 명령어 수행을 위한 범용 레지스터; 및 프로세서 코어에 의해 발생된 데이터가 저장되는 제어 상태 레지스터를 내장하여, 제어 상태 레지스터 읽기 명령어를 이용하여 제어 상태 레지스터에 저장된 데이터를 읽어서 범용 레지스터에 저장하고, 제어 상태 레지스터 쓰기 명령어를 이용하여 범용 레지스터의 데이터를 제어 상태 레지스터에 저장하는, 이종 시스템 구조 디바이스
|
15 |
15
제14 항에 있어서, 제어 상태 레지스터 읽기 명령어는,읽기 대상 데이터가 저장된 제어 상태 레지스터 어드레스; 데이터가 저장될 범용 레지스터에 해당하는 목적지; 및 제어 상태 레지스터 쓰기임이 표기된 코드를 포함하고, 제어 상태 레지스터 쓰기 명령어는,데이터가 저장될 제어 상태 레지스터 어드레스; 쓰기 대상 데이터가 저장된 범용 레지스터에 해당하는 소스; 및 제어 상태 레지스터 읽기임이 표기된 코드를 포함하는, 이종 시스템 구조 디바이스
|
16 |
16
제13 항에 있어서, 둘 이상의 상이한 종류의 프로세싱 요소들 각각은,커널 프로그램을 실행하는 복수의 프로세서 코어들; 및복수의 프로세서 코어들 각각이 커널 프로그램을 실행함에 따라 발생된 메모리 주소 영역 중 제1 시작 주소에서 소정 바이트 크기 만큼의 영역을 단일화 가상 메모리의 가상 어드레스 영역 중 제2 시작 주소에서 소정 바이트 크기 만큼의 영역으로 매핑하는 적어도 하나의 어드레스 매핑 캐시를 포함하는, 이종 시스템 구조 디바이스
|
17 |
17
제16 항에 있어서, 호스트는, 적어도 하나의 어드레스 매핑 캐시 각각에서 사용하는 제1 주소, 제2 주소 및 바이트 크기를 포함하는 어드레스 매핑 설정값을 결정하여 이종 시스템 구조 디바이스에 전달하고, 이종 시스템 구조 디바이스는, 호스트로부터 전달된 어드레스 매핑 설정값으로 상응하는 어드레스 매핑 캐시를 설정하는 구성 설정부를 더 포함하는, 이종 시스템 구조 디바이스
|
18 |
18
제17 항에 있어서, 적어도 하나의 어드레스 매핑 캐시는, 복수의 프로세서 코어들 각각에 의해 독점적으로 사용되는 프라이빗 메모리 캐시들; 이종 시스템 구조 디바이스에 포함된 모든 프로세서 코어들이 수행하는 인스트럭션이 포함된 명령어 메모리 영역으로 매핑되어 동작하는 인스트럭션 메모리 캐시;하나의 프로세싱 요소에 포함된 모든 프로세서 코어들에 의한 공유 메모리 영역으로 할당되어 읽기 동작시 사용되는 로컬 메모리 캐시; 및모든 프로세싱 요소들이 공유하는 글로벌 메모리 영역으로 할당되어 동작하는 글로벌 메모리 캐시 중 적어도 하나를 포함하는, 이종 시스템 구조 디바이스
|