1 |
1
명령어 캐시를 포함하는 메모리;제1 연산 동작을 수행하도록 구성된 제1 실행부;제2 연산 동작을 수행하도록 구성된 제2 실행부;상기 명령어 캐시에 저장된 명령어를 페치하도록 구성된 명령어 페치부;상기 명령어를 디코딩하도록 구성된 디코딩부; 및상기 제2 실행부의 동작 상태에 따라, 상기 명령어의 경로를 제어하도록 구성된 상태 제어부를 포함하고,상기 디코딩부는:상기 명령어가 제1 타입인 경우, 상기 명령어를 상기 제1 실행부로 제공하고;상기 명령어가 제2 타입인 경우, 상기 명령어를 상기 상태 제어부로 제공하고,상기 상태 제어부는:상기 제2 실행부의 동작 상태에 따라, 상기 제2 타입의 상기 명령어를 상기 제2 실행부로 제공하거나 또는 상기 메모리에 레지스터 파일로서 저장하는 범용 연산 가속기
|
2 |
2
제 1 항에 있어서, 상기 제1 실행부는:산술 연산 또는 로직 연산을 수행하도록 구성된 적어도 하나의 산술 로직부; 및부동 소수점 연산을 수행하도록 구성된 적어도 하나의 부동 소수점 연산부를 포함하는 범용 연산 가속기
|
3 |
3
제 1 항에 있어서,상기 제2 실행부는:행렬 연산을 수행하도록 구성된 복수의 부동 소수점 연산기들을 포함하는 다중-정밀도 산술 로직부; 및외부 메모리로부터 행렬 데이터를 상기 메모리의 확장 캐시로 이동시키도록 구성된 확장 캐시 직접 메모리 접근부를 포함하는 범용 연산 가속기
|
4 |
4
제 3 항에 있어서,상기 확장 캐시 직접 메모리 접근부에 의해 상기 행렬 데이터가 상기 메모리에 저장되고, 상기 다중-정밀도 산술 로직부가 동작 가능한 경우, 상기 상태 제어부는 상기 제2 타입의 상기 명령어를 상기 다중-정밀도 산술 로직부로 제공하고,상기 다중-정밀도 산술 로직부는, 상기 제2 타입의 상기 명령어에 응답하여, 상기 행렬 데이터에 대한 행렬 연산을 수행하는 범용 연산 가속기
|
5 |
5
제 3 항에 있어서,상기 확장 캐시 직접 메모리 접근부에 의해 상기 행렬 데이터가 상기 메모리에 저장되고, 상기 다중-정밀도 산술 로직부가 동작 중인 경우, 상기 상태 제어기는 상기 제2 타입의 상기 명령어를 상기 메모리에 상기 레지스터 파일로서 저장하는 범용 연산 가속기
|
6 |
6
제 3 항에 있어서,상기 확장 캐시 직접 메모리 접근부에 의해 상기 행렬 데이터가 상기 메모리에 아직 저장되지 않은 경우, 상기 상태 제어기는 상기 제2 타입의 상기 명령어를 상기 확장 캐시 직접 메모리 접근부로 제공하고,상기 확장 캐시 메모리 직접 접근부는 상기 제2 타입의 상기 명령어에 응답하여, 상기 외부 메모리로부터 행렬 데이터를 상기 메모리의 확장 캐시로 이동시키고, 상기 제2 타입의 상기 명령어를 상기 메모리에 상기 레지스터 파일로 기입하도록 구성된 범용 연산 가속기
|
7 |
7
제 6 항에 있어서,상기 명령어 페치부는 프로그램 카운트를 기반으로 상기 명령어 캐시로부터 상기 명령어를 페치하는 범용 연산 가속기
|
8 |
8
제 7 항에 있어서,상기 제2 타입의 상기 명령어가 상기 메모리에 상기 레지스터 파일로서 저장된 이후에:상기 상태 제어기의 제어에 따라, 상기 명령어 페치부는 상기 메모리의 상기 레지스터 파일로부터 상기 제2 타입의 상기 명령어를 페치하고,상기 디코딩부는 상기 제2 타입의 상기 명령어를 디코딩하고,상기 디코딩된 상기 제2 타입의 상기 명령어는 상기 제2 실행부에 의해 실행되는 범용 연산 가속기
|
9 |
9
제 8 항에 있어서,상기 상태 제어부는:상기 제2 실행부의 동작 상태를 기반으로 제1 준비 신호 및 제2 준비 신호를 생성하도록 구성된 판별기;상기 제1 준비 신호에 응답하여, 상기 명령어 캐시에 저장된 명령어 및 상기 레지스터 파일에 저장된 명령어 중 하나를 상기 명령어 페치부로 제공하도록 구성된 제1 선택기; 및상기 제2 준비 신호에 응답하여, 상기 제2 타입의 상기 명령어를 상기 제2 실행부 및 상기 메모리 중 하나로 제공하도록 구성된 제2 선택기를 포함하는 범용 연산 가속기
|
10 |
10
제 1 항에 있어서,상기 제1 실행부의 상기 제1 연산 동작의 결과는 상기 메모리에 저장되고,상기 제2 실행부의 상기 제2 연산 동작의 결과는 상기 메모리에 저장되는 범용 연산 가속기
|
11 |
11
제 1 항에 있어서,상기 범용 연산 가속기는 단일 코어로 구현되는 범용 연산 가속기
|
12 |
12
제1 연산 동작을 수행하도록 구성된 제1 실행부 및 제2 연산 동작을 수행하도록 구성된 제2 실행부를 포함하는 범용 연산 가속기의 동작 방법에 있어서,프로그램 카운트를 기반으로, 상기 범용 연산 가속기의 메모리로부터 명령어를 페치하는 단계;상기 명령어가 제1 타입인 경우, 상기 제1 실행부를 통해 상기 제1 타입의 명령어를 실행하는 단계;상기 명령어가 제2 타입인 경우, 상기 제2 실행부의 동작 상태를 기반으로 상기 제2 실행부를 통해 상기 제2 타입의 상기 명령어를 실행하거나 또는 상기 제2 타입의 상기 명령어를 상기 메모리에 레지스터 파일로서 저장하는 단계를 포함하고,상기 제1 연산 동작은 산술 논리 연산 또는 부동 소수점 연산을 포함하고,상기 제2 연산 동작은 행렬 연산을 포함하는 동작 방법
|
13 |
13
제 12 항에 있어서,상기 명령어가 제2 타입인 경우, 상기 제2 실행부의 동작 상태를 기반으로 상기 제2 실행부를 통해 상기 제2 타입의 상기 명령어를 실행하거나 또는 상기 제2 타입의 상기 명령어를 상기 메모리에 레지스터 파일로서 저장하는 단계는:상기 제2 타입의 명령어에 대응하는 행렬 데이터가 상기 메모리에 준비되지 않은 경우, 외부 메모리로부터 상기 행렬 데이터를 상기 메모리로 이동시키고, 상기 제2 타입의 상기 명령어를 상기 메모리에 상기 레지스터 파일로서 저장하는 단계;상기 제2 타입의 명령어에 대응하는 행렬 데이터가 상기 메모리에 준비되고, 상기 제2 실행부가 동작 가능하지 않은 경우, 상기 제2 타입의 상기 명령어를 상기 메모리에 상기 레지스터 파일로서 저장하는 단계; 및상기 제2 타입의 명령어에 대응하는 행렬 데이터가 상기 메모리에 준비되고, 상기 제2 실행부가 동작 가능한 경우, 상기 제2 실행부를 통해 상기 제2 타입의 상기 명령어를 실행하는 단계를 포함하는 동작 방법
|
14 |
14
제 12 항에 있어서,상기 제2 타입의 상기 명령어가 상기 메모리에 상기 레지스터 파일로서 저장된 이후에:상기 메모리의 상기 레지스터 파일로부터 상기 제2 타입의 상기 명령어를 페치하는 단계; 및상기 제2 타입의 상기 명령어를 상기 제2 실행부를 통해 실행하는 단계를 더 포함하는 동작 방법
|
15 |
15
제 12 항에 있어서,상기 제1 실행부의 상기 제1 연산 동작의 결과 및 상기 제2 실행부의 상기 제2 연산 동작의 결과는 상기 메모리에 저장되는 동작 방법
|