| 번호 | 청구항 |
|---|---|
| 1 | 각 스레드에 대한 이전 상태와 마지막 상태 및 보상을 획득하여 저장하는 환경 분석 모듈; 및 이기종 멀티 코어 프로세서의 적어도 하나의 L 코어 및 적어도 하나의 S 코어에 할당되어 실행될 스레드에 대한 마지막 상태를 상기 환경 분석 모듈로부터 인가받아 상태 인덱스를 생성하고, 다수의 상태 인덱스 각각에 대해 다수의 액션과 다수의 Q 값이 맵핑되어 포함된 QV 테이블에서, 생성된 상기 상태 인덱스에 맵팽된 액션과 Q 값을 추출하고, 추출된 Q 값에 따라 액션을 선택하여 상기 스레드를 실행할 코어를 결정하며, 스레드가 결정된 코어에서 실행되어 상태가 변경되면, 변경된 상태를 기반으로 상기 QV 테이블에서 선택된 액션에 맵핑된 Q 값을 업데이트하되, Q 값이 업데이트되어야 하는 상태에 따른 상태 인덱스를 순차적으로 인가받아 저장하는 로컬 윈도우 큐 내에서 현재 상태가 변경되는 상태 인덱스와의 차이가 기준값 이하인 다른 상태 인덱스를 탐색하고, 상기 QV 테이블에서 탐색된 다른 상태 인덱스에 맵핑된 Q값을 함께 업데이트하는 에이전트 모듈을 포함하되,상기 상태 인덱스에 포함되는 다수의 상태 요소와 상기 로컬 윈도우 큐 내에 포함된 다른 상태 인덱스에 포함된 다수의 상태 요소 중 동일한 상태 요소에 대한 값의 차이가 상기 기준값 이내인 다른 상태 인덱스를 탐색하여 탐색된 상태 인덱스에 맵핑된 Q 값을 함께 업데이트하는 스케줄링 장치. |
| 2 | 삭제 |
| 3 | 제1항에 있어서, 상기 에이전트 모듈은 상기 다수의 상태 요소 중 사전 설정된 상태 요소들에 대한 값의 차이를 기반으로 다른 상태 인덱스를 탐색하는 스케줄링 장치. |
| 4 | 제1항에 있어서, 상기 에이전트 모듈은 결정된 코어에서 맵핑된 스레드가 실행되어 이전 상태가 변경된 마지막 상태와 이전 결정된 액션 및 상기 보상에 따라 상기 QV 테이블에서 결정된 액션에 맵핑된 Q 값을 업데이트하고, 상기 로컬 윈도우 큐에서 탐색된 다른 상태 인덱스에 맵핑된 Q 값을 업데이트하기 위한 오프셋을 획득하는 스케줄링 장치. |
| 5 | 제4항에 있어서, 상기 에이전트 모듈은 상기 로컬 윈도우 큐에서 탐색된 다른 상태 인덱스 중 시간적으로 이전 저장된 상태 인덱스와의 차를 포워드 오프셋으로 획득하고, 시간적으로 이후 저장된 상태 인덱스와의 차를 백워드 오프셋으로 획득하는 스케줄링 장치. |
| 6 | 제1항에 있어서, 상기 에이전트 모듈은 상기 상태 인덱스와 탐색된 다른 상태 인덱스에 맵핑된 Q 값을 벨만 최적화 등식(bellman optimality equation)을 이용하여 업데이트하는 스케줄링 장치. |
| 7 | 제1항에 있어서, 상기 에이전트 모듈은 다수의 상태 요소로 구성된 상태에서 자원 점유율에 따른 상태 요소의 값을 현재 자원 점유율에 대한 값으로 대체하여 상기 상태 인덱스를 생성하는 스케줄링 장치. |
| 8 | 제1항에 있어서, 상기 에이전트 모듈은 상기 QV 테이블로부터 상기 스레드를 상기 L 코어에 할당하는 제1 액션, 상기 S 코어에 할당하는 제3 액션, 및 스레드가 할당되지 않은 L 코어가 존재하면 L 코어에 할당하고, L 코어가 존재하지 않으면 S 코어에 할당하는 제2 액션 각각에 대한 Q 값을 추출하고, 추출된 3개의 Q 값을 서로 비교하여 3개의 액션 중 하나를 선택하는 스케줄링 장치. |
| 9 | 제8항에 있어서, 상기 에이전트 모듈은 선택 가능한 액션 개수에 대응하는 개수로 구비되어, 결정된 액션에 따른 스레드 식별자가 저장되는 결정 큐를 구비하는 스케줄링 장치. |
| 10 | 제9항에 있어서, 상기 환경 분석 모듈은 상기 제1 액션에 대응하여 구비된 결정 큐에 저장된 스레드 식별자 중 맵핑된 Q 값에 따른 우선 순위에 의해 상기 L 코어로 이슈되지 않은 스레드에 대한 스레드 식별자에 대한 상기 보상으로 패널티 부가하는 스케줄링 장치. |
| 11 | 프로세서에 의해 수행되는 방법으로서, 이기종 멀티 코어 프로세서의 적어도 하나의 L 코어 및 적어도 하나의 S 코어에 할당되어 실행될 스레드에 대한 마지막 상태로부터 상태 인덱스를 생성하고, 다수의 상태 인덱스 및 다수의 액션 각각에 맵핑된 다수의 Q 값이 포함된 QV 테이블에서 상기 상태 인덱스에서 선택 가능한 액션별 Q 값을 추출하여 상기 스레드를 실행할 코어를 결정하는 단계; 및 스레드가 결정된 코어에서 실행되어 변경된 상태를 기반으로 보상을 계산하는 단계; 및 상기 변경된 상태를 기반으로 상기 QV 테이블에서 선택된 액션에 맵핑된 Q 값을 업데이트하되, Q 값이 업데이트되어야 하는 상태에 따른 상태 인덱스를 순차적으로 인가받아 저장하는 로컬 윈도우 큐 내에서 현재 상태가 변경되는 상태 인덱스와 차이가 기준값 이하인 다른 상태 인덱스를 탐색하고, 상기 QV 테이블에서 탐색된 다른 상태 인덱스에 맵핑된 Q값을 함께 업데이트하는 단계를 포함하되,상기 업데이트하는 단계는 상기 상태 인덱스에 포함되는 다수의 상태 요소와 상기 로컬 윈도우 큐 내에 포함된 다른 상태 인덱스에 포함된 다수의 상태 요소 중 동일한 상태 요소에 대한 값의 차이가 상기 기준값 이내인 다른 상태 인덱스를 탐색하여 탐색된 다른 상태 인덱스에 맵핑된 Q값을 함께 업데이트하는 스케줄링 방법. |
| 12 | 삭제 |
| 13 | 제11항에 있어서, 상기 업데이트 하는 단계는 상기 다수의 상태 요소 중 사전 설정된 상태 요소들에 대한 값의 차이를 기반으로 다른 상태 인덱스를 탐색하는 스케줄링 방법. |
| 14 | 제11항에 있어서, 상기 업데이트 하는 단계는 결정된 코어에서 맵핑된 스레드가 실행되어 이전 상태가 변경된 마지막 상태와 이전 결정된 액션 및 상기 보상에 따라 상기 QV 테이블에서 결정된 액션에 맵핑된 Q 값을 업데이트하고, 상기 로컬 윈도우 큐에서 탐색된 다른 상태 인덱스에 맵핑된 Q 값을 업데이트하기 위한 오프셋을 획득하는 스케줄링 방법. |
| 15 | 제14항에 있어서, 상기 업데이트 하는 단계는 상기 로컬 윈도우 큐에서 탐색된 다른 상태 인덱스 중 시간적으로 이전 저장된 상태 인덱스와의 차를 포워드 오프셋으로 획득하고, 시간적으로 이후 저장된 상태 인덱스와의 차를 백워드 오프셋으로 획득하는 스케줄링 방법. |
| 16 | 제11항에 있어서, 상기 업데이트 하는 단계는 상기 상태 인덱스와 탐색된 다른 상태 인덱스에 맵핑된 Q 값을 벨만 최적화 등식을 이용하여 업데이트하는 스케줄링 방법. |
| 17 | 제11항에 있어서, 상기 코어를 결정하는 단계는 다수의 상태 요소로 구성된 상태에서 자원 점유율에 따른 상태 요소의 값을 현재 자원 점유율에 대한 값으로 대체하여 상기 상태 인덱스를 생성하는 스케줄링 방법. |
| 18 | 제11항에 있어서, 상기 코어를 결정하는 단계는 상기 QV 테이블로부터 상기 스레드를 상기 L 코어에 할당하는 제1 액션, 상기 S 코어에 할당하는 제3 액션, 및 스레드가 할당되지 않은 L 코어가 존재하면 L 코어에 할당하고, L 코어가 존재하지 않으면 S 코어에 할당하는 제2 액션 각각에 대한 Q 값을 추출하고, 추출된 3개의 Q 값을 서로 비교하여 3개의 액션 중 하나를 선택하는 스케줄링 방법. |
| 19 | 제18항에 있어서, 상기 코어를 결정하는 단계는 선택 가능한 액션 개수에 대응하는 개수로 구비된 결정 큐에 결정된 액션에 따른 스레드 식별자를 저장하는 스케줄링 방법. |
| 20 | 제19항에 있어서, 상기 보상을 계산하는 단계는 상기 제1 액션에 대응하여 구비된 결정 큐에 저장된 스레드 식별자 중 맵핑된 Q 값에 따른 우선 순위에 의해 상기 L 코어로 이슈되지 않은 스레드에 대한 스레드 식별자에 대한 상기 보상으로 패널티 부가하는 스케줄링 방법. |