가중치 매트릭스를 이용한 메모리 연산 처리 장치 및 방법
APPARATUS AND METHOD OF PROCESSING MEMORY COMPUTING BY USING WEIGHT MATRIX
특허 요약
본 발명은 가중치 매트릭스를 이용한 메모리 연산 처리 장치 및 방법에 관한 것으로, 본 발명의 일실시예에 따르면 메모리 연산 대상인 가중치 매트릭스와 밀집 벡터(dense vector)들에 대한 입력을 처리하는 입력 처리부, 상기 입력된 가중치 매트릭스를 구성하는 로우(row)들에서 상기 로우들 각각을 구성하는 포지티브(positive) 값과 네거티브(negative) 값 중 상기 네거티브 값의 수를 고려하여 적어도 하나의 로우를 선택하고, 상기 선택된 적어도 하나의 로우에서 상기 네거티브 값의 위치를 상기 선택된 적어도 하나의 로우와 다른 로우의 포지티브 값으로 치환하여 순열 가중치 매트릭스로 처리하는 순열 처리부, 상기 순열 가중치 매트릭스에서 로우들에 포함된 네거티브 값의 수를 기준으로 어느 하나의 로우를 탐색하고, 상기 탐색된 어느 하나의 로우에 일측에서 네거티브 값의 존재 여부에 따라 상기 순열 가중치 매트릭스의 컬럼(column)들의 위치를 상기 일측부터 정렬하여 정렬 가중치 매트릭스로 처리하는 정렬 처리부 및 상기 메모리의 뱅크들에 상기 뱅크들 각각의 크기를 고려하여 상기 정렬 가중치 매트릭스를 구성하는 연산 구성 요소들과 상기 밀집 벡터들을 분할하여 매핑하고, 상기 뱅크들에 매핑된 상기 구성 요소들과 상기 밀집 벡터들의 연산을 처리하는 매트릭스 연산 처리부를 포함할 수 있다.
청구항
번호청구항
1

메모리 연산 대상인 가중치 매트릭스와 밀집 벡터(dense vector)들에 대한 입력을 처리하는 입력 처리부;상기 입력된 가중치 매트릭스를 구성하는 로우(row)들에서 상기 로우들 각각을 구성하는 포지티브(positive) 값과 네거티브(negative) 값 중 상기 네거티브 값의 수를 고려하여 적어도 하나의 로우를 선택하고, 상기 선택된 적어도 하나의 로우에서 상기 네거티브 값의 위치를 상기 선택된 적어도 하나의 로우와 다른 로우의 포지티브 값으로 치환하여 순열 가중치 매트릭스로 처리하는 순열 처리부;상기 순열 가중치 매트릭스에서 로우들에 포함된 네거티브 값의 수를 기준으로 어느 하나의 로우를 탐색하고, 상기 탐색된 어느 하나의 로우에 일측에서 네거티브 값의 존재 여부에 따라 상기 순열 가중치 매트릭스의 컬럼(column)들의 위치를 상기 일측부터 정렬하여 정렬 가중치 매트릭스로 처리하는 정렬 처리부; 및상기 메모리의 뱅크들에 상기 뱅크들 각각의 크기를 고려하여 상기 정렬 가중치 매트릭스를 구성하는 연산 구성 요소들과 상기 밀집 벡터들을 분할하여 매핑하고, 상기 뱅크들에 매핑된 상기 구성 요소들과 상기 밀집 벡터들의 연산을 처리하는 매트릭스 연산 처리부를 포함하는 것을 특징으로 하는 메모리 연산 처리 장치.

2

제1항에 있어서,상기 순열 처리부는 상기 로우들 중 네거티브 값을 포함하는 적어도 둘의 로우를 선택하고, 상기 선택된 적어도 둘의 로우를 각각 구성하는 네거티브 값의 수를 탐색하고, 상기 탐색된 네거티브 값의 수에 기반하여 매칭 스코어를 산출하고, 상기 매칭 스코어가 가장 큰 로우를 순열 대상 로우로 결정하며, 상기 결정된 순열 대상 로우에 대하여 상기 매칭 스코어가 가장 작은 로우에서의 포지티브 값과 치환하여 상기 순열 가중치 매트릭스로 처리하는 것을 특징으로 하는 메모리 연산 처리 장치.

3

제2항에 있어서,상기 순열 처리부는 상기 선택된 적어도 둘의 로우에 대하여 상기 탐색된 네거티브 값의 수가 증가하면 상기 매칭 스코어를 증가시키고, 상기 탐색된 네거티브 값의 수가 감소하면 상기 매칭 스코어를 감소시키며, 상기 결정된 순열 대상 로우에 대하여 상기 매칭 스코어가 "0"이 되도록 상기 포지티브 값과의 치환을 수행하는 것을 특징으로 하는 메모리 연산 처리 장치.

4

제3항에 있어서,상기 순열 처리부는 상기 선택된 적어도 둘의 로우에서 상기 매칭 스코어가 "0"이 되도록 상기 포지티브 값과의 치환을 반복적으로 수행하는 것을 특징으로 하는 메모리 연산 처리 장치.

5

제1항에 있어서,상기 정렬 처리부는 상기 탐색된 어느 하나의 로우에서 상기 일측에서부터 포지티브 값의 위치를 탐색하고, 상기 탐색된 포지티브 값의 위치부터 상기 일측에 위치하는 네거티브 값의 위치를 탐색하며, 상기 탐색된 네거티브 값의 위치에 해당하는 컬럼과 상기 탐색된 포지티브 값의 위치에 해당하는 컬럼을 서로 변경함에 따라 상기 일측부터 네거티브 값을 포함하는 컬럼이 순차적으로 위치하다가 포지티브 값을 포함하는 컬럼이 위치하도록 상기 정렬 가중치 매트릭스로 처리하는 것을 특징으로 하는메모리 연산 처리 장치.

6

제5항에 있어서,상기 정렬 처리부는 상기 정렬 가중치 매트릭스의 컬럼 위치 변경에 따라 컬럼 순서가 변경되고, 상기 변경된 컬럼 순서에 따라 컬럼 순서에 대응되었던 상기 밀집 벡터의 순서도 변경하는 것을 특징으로 하는 메모리 연산 처리 장치.

7

제1항에 있어서,상기 매트릭스 연산 처리부는 상기 정렬 가중치 매트릭스의 일측의 컬럼에 포지티브 값이 존재하는 경우에 상기 컬럼에서 상기 포지티브 값이 존재하는 로우에 대한 매트릭스 연산을 생략(skip)하여 유효 비트폭을 감소하되, 상기 매트릭스 연산이 생략된 로우에 대한 비트를 주변 영역으로 로드함에 따라 상기 매트릭스 연산을 지연하면서 상기 생략된 로우에 대한 매트릭스 연산을 보완하는 것을 특징으로 하는 메모리 연산 처리 장치.

8

입력 처리부에서, 메모리 연산 대상인 가중치 매트릭스와 밀집 벡터(dense vector)들에 대한 입력을 처리하는 단계;순열 처리부에서, 상기 입력된 가중치 매트릭스를 구성하는 로우(row)들에서 상기 로우들 각각을 구성하는 포지티브(positive) 값과 네거티브(negative) 값 중 상기 네거티브 값의 수를 고려하여 적어도 하나의 로우를 선택하고, 상기 선택된 적어도 하나의 로우에서 상기 네거티브 값의 위치를 상기 선택된 적어도 하나의 로우와 다른 로우의 포지티브 값으로 치환하여 순열 가중치 매트릭스로 처리하는 단계;정렬 처리부에서, 상기 순열 가중치 매트릭스에서 로우들에 포함된 네거티브 값의 수를 기준으로 어느 하나의 로우를 탐색하고, 상기 탐색된 어느 하나의 로우에 일측에서 네거티브 값의 존재 여부에 따라 상기 순열 가중치 매트릭스의 컬럼(column)들의 위치를 상기 일측부터 정렬하여 정렬 가중치 매트릭스로 처리하는 단계; 및매트릭스 연산 처리부에서, 상기 메모리의 뱅크들에 상기 뱅크들 각각의 크기를 고려하여 상기 정렬 가중치 매트릭스를 구성하는 연산 구성 요소들과 상기 밀집 벡터들을 분할하여 매핑하고, 상기 뱅크들에 매핑된 상기 구성 요소들과 상기 밀집 벡터들의 연산을 처리하는 단계를 포함하는 것을 특징으로 하는 메모리 연산 처리 방법.

9

제8항에 있어서,상기 순열 가중치 매트릭스로 처리하는 단계는, 상기 로우들 중 네거티브 값을 포함하는 적어도 둘의 로우를 선택하고, 상기 선택된 적어도 둘의 로우를 각각 구성하는 네거티브 값의 수를 탐색하고, 상기 탐색된 네거티브 값의 수에 기반하여 매칭 스코어를 산출하고, 상기 매칭 스코어가 가장 큰 로우를 순열 대상 로우로 결정하며, 상기 결정된 순열 대상 로우에 대하여 상기 매칭 스코어가 가장 작은 로우에서의 포지티브 값과 치환하여 상기 순열 가중치 매트릭스로 처리하는 단계를 포함하는 것을 특징으로 하는 메모리 연산 처리 방법.

10

제8항에 있어서,상기 정렬 가중치 매트릭스로 처리하는 단계는, 상기 탐색된 어느 하나의 로우에서 상기 일측에서부터 포지티브 값의 위치를 탐색하고, 상기 탐색된 포지티브 값의 위치부터 상기 일측에 위치하는 네거티브 값의 위치를 탐색하며, 상기 탐색된 네거티브 값의 위치에 해당하는 컬럼과 상기 탐색된 포지티브 값의 위치에 해당하는 컬럼을 서로 변경함에 따라 상기 일측부터 네거티브 값을 포함하는 컬럼이 순차적으로 위치하다가 포지티브 값을 포함하는 컬럼이 위치하도록 상기 정렬 가중치 매트릭스로 처리하는 단계를 포함하는 것을 특징으로 하는메모리 연산 처리 방법.