1 |
1
시스템에 있어서,데이터를 저장하도록 구성되는 이종 메모리 시스템, 상기 이종 메모리 시스템은 메모리 모듈 및 메모리-내-처리(Processing-In-Memory: PIM) 회로를 포함하는 고대역 메모리(HBM)를 포함하고;상기 시스템의 연산 작업들을 실행하도록 구성되는 호스트 프로세서, 상기 호스트 프로세서는 상기 연산 작업들 중 일부가 상기 PIM 회로에서 실행되도록 할당하고; 및상기 호스트 프로세서에 의해 오프로드된 커널에 따른 연산 작업이 상기 HBM의 상기 PIM 회로에서 실행될 때, 상기 연산 작업에 요구되는 데이터 어레이가 존재하는 메모리를 판단하는 기준이 되는 보더 인덱스 값을 이용하여 상기 데이터 어레이를 상기 메모리 모듈 또는 상기 HBM으로부터 검색하는 메모리 콘트롤러를 포함하는 시스템
|
2 |
2
제1항에 있어서,상기 보더 인덱스 값은 상기 데이터 어레이의 활용 빈도 비율 또는 상기 메모리 모듈과 상기 HBM의 대역폭 비율에 기초하여 설정되는 시스템
|
3 |
3
제1항에 있어서,상기 메모리 콘트롤러는, 상기 호스트 프로세서로부터 상기 오프로드된 커널에 대한 정보를 수신하고,상기 오프로드된 커널에 대한 정보는 상기 데이터 어레이의 식별 번호와 상기 식별 번호에 해당하는 상기 데이터 어레이에 대한 베이스 어드레스, 인덱스 값 및 데이터 사이즈를 포함하고, 상기 인덱스 값은 상기 베이스 어드레스와의 오프셋을 나타내는 시스템
|
4 |
4
제3항에 있어서,상기 메모리 콘트롤러는 상기 인덱스 값과 상기 보더 인덱스 값을 비교하여 상기 인덱스 값이 상기 보더 인덱스 값 보다 작으면 상기 데이터 어레이가 상기 HBM에 존재하는 것으로 판단하는 시스템
|
5 |
5
제4항에 있어서,상기 메모리 콘트롤러는 HBM 맵핑 테이블을 포함하고, 상기 데이터 어레이에 대한 상기 베이스 어드레스에 대응하는 상기 HBM의 베이스 어드레스를 상기 HBM 맵핑 테이블에서 읽는 시스템
|
6 |
6
제5항에 있어서,상기 메모리 콘트롤러는 상기 HBM의 상기 베이스 어드레스로부터 상기 인덱스 값 만큼 떨어진 위치에 대응하는 제1 어드레스를 계산하고, 상기 제1 어드레스로부터 상기 데이터 사이즈를 곱한 값에 대응하는 제2 어드레스를 계산하고, 상기 HBM의 상기 제1 어드레스로부터 상기 제2 어드레스까지의 물리 주소 공간에 상기 데이터 어레이가 저장되어 있는 것으로 판단하는 시스템
|
7 |
7
제6항에 있어서,상기 메모리 콘트롤러는 상기 HBM에 저장된 상기 데이터 어레이를 이용하여 상기 HBM의 상기 PIM 회로에서 실행되는 연산 처리에 의해 생성되는 중간 결과 값을 저장하는 레지스터를 할당하는 시스템
|
8 |
8
제7항에 있어서,상기 메모리 콘트롤러는 상기 HBM의 상기 PIM 회로에서 상기 연산 처리를 실행하도록 지시하는 HBM 명령어 세트를 생성하고,상기 HBM 명령어 세트는 오피코드 파라미터, 벡터 사이즈 파라미터, 소스 파라미터, 및 목적지 파라미터를 포함하고,상기 오피코드 파라미터는 상기 오프로드된 커널의 명령어과 동일하게 표기되고, 상기 벡터 사이즈 파라미터는 상기 호스트 프로세서와 결합되는 DRAM 캐시 라인의 데이터 입출력 수와 상기 데이터 어레이의 데이터 입출력 수와의 상관 관계를 표시하고, 상기 소스 파라미터는 상기 데이터 어레이에 대응하는 상기 HBM의 어드레스로 표기되고, 상기 목적지 파라미터는 상기 할당된 레지스터의 식별 번호를 표기하는 시스템
|
9 |
9
제3항에 있어서,상기 메모리 콘트롤러는 상기 인덱스 값과 상기 보더 인덱스 값을 비교하여 상기 인덱스 값이 상기 보더 인덱스 값 보다 크면 상기 데이터 어레이가 상기 메모리 모듈에 존재하는 것으로 판단하는 시스템
|
10 |
10
메모리 모듈 및 메모리-내-처리(Processing-In-Memory: PIM) 회로를 포함하는 고대역 메모리(HBM)를 포함하는 이종 메모리 시스템을 포함하는 시스템에서 구현되는 방법으로서,호스트 프로세서에 의해 커널을 메모리 콘트롤러에 오프로드하는 단계;상기 오프로드된 커널의 작업 코드의 실행에 따라 처리될 데이터 어레이가 존재하는 메모리를 판단하는 기준이 되는 보더 인덱스 값을, 상기 메모리 콘트롤러에 의해, 저장하는 단계;상기 오프로드된 커널에 대한 정보를, 상기 메모리 콘트롤러에 의해, 수신하는 단계, 상기 오프로드된 커널에 대한 정보는 상기 데이터 어레이의 식별 번호와 상기 식별 번호에 해당하는 상기 데이터 어레이에 대한 베이스 어드레스, 인덱스 값 및 데이터 사이즈를 포함하고, 상기 인덱스 값은 상기 베이스 어드레스와의 오프셋을 나타내고;상기 데이터 어레이의 상기 인덱스 값과 상기 보더 인덱스 값을, 상기 메모리 콘트롤러에 의해, 비교하는 단계;비교 결과, 상기 인덱스 값이 상기 보더 인덱스 값 보다 작으면 상기 데이터 어레이가 상기 HBM에 존재하는 것으로 판단하고, 상기 인덱스 값이 상기 보더 인덱스 값 보다 크면 상기 데이터 어레이가 상기 메모리 모듈에 존재하는 것으로, 상기 메모리 콘트롤러에 의해, 판단하는 단계;상기 메모리 모듈에 저장된 상기 데이터 어레이를 이용하여 상기 HBM의 상기 PIM 회로에서 연산 작업을 실행하도록 지시하는 메모리 모듈 명령어 세트를, 상기 메모리 콘트롤러에 의해, 생성하는 단계; 및상기 HBM에 저장된 상기 데이터 어레이를 이용하여 상기 HBM의 상기 PIM 회로에서 상기 연산 작업을 실행하도록 지시하는 HBM 명령어 세트를, 상기 메모리 콘트롤러에 의해, 생성하는 단계를 포함하고,상기 보더 인덱스 값은 상기 데이터 어레이의 활용 빈도 비율 또는 상기 메모리 모듈과 상기 HBM의 대역폭 비율에 기초하여 설정되는 방법
|