1 |
1
컨볼루션 회로의 동작 방법에 있어서:입력 피쳐 맵들을 수신하는 단계;커널 단위로 병렬 처리하는 컨볼루션 연산들을 통하여 상기 입력 피쳐 맵들의 각각에 대응하는 출력 피쳐 맵들을 생성하는 단계; 및상기 출력 피쳐 맵들을 외부 메모리로 출력하는 단계를 포함하는 방법
|
2 |
2
제 1 항에 있어서,상기 커널 단위는 K × K (K는 자연수)인 방법
|
3 |
3
제 2 항에 있어서,상기 입력 피쳐 맵들의 각각의 대응하는 커널에 K 개의 라인에 대응하는 칩의 내부 메모리에 메모리에 저장하는 단계를 더 포함하는 방법
|
4 |
4
제 2 항에 있어서,상기 출력 피쳐 맵들을 생성하는 단계는,상기 출력 피쳐 맵들을 생성하는데 필요한 커널들을 상기 외부 메모리에 저장하는 단계를 포함하는 방법
|
5 |
5
제 1 항에 있어서,상기 컨볼루션 연산의 부분합을 상기 외부 메모리로부터 로드 및 누적, 혹은 상기 외부 메모리에 스토어를 반복하는 단계를 더 포함하는 방법
|
6 |
6
제 1 항에 있어서,상기 병렬 처리하는 컨볼루션들 중 적어도 하나는 물리적으로 서로 다른 메모리를 사용하는 방법
|
7 |
7
제 1 항에 있어서,상기 병렬 처리하는 컨볼루션들의 각각의 결과 값들이 상기 외부 메모리에 사전에 결정된 순서로 저장되는 방법
|
8 |
8
제 1 항에 있어서,상기 출력 피쳐 맵들 중 적어도 하나를 외부 메모리로 출력하면서, 상기 컨볼루션 연산들 중 적어도 하나가 수행되는 방법
|
9 |
9
제 1 항에 있어서,상기 외부 메모리로부터 복수의 피쳐맵 데이터를 수신하면서 동시에 복수의 피쳐맵 데이터가 출력되는 방법
|
10 |
10
외부 메모리로부터 데이터를 읽거나, 상기 외부 메모리로 데이터를 출력하는 DMA(direct memory access) 처리부;처리 중인 입력 피쳐맵과 N (N은 2 이상의 자연수)개의 출력 피쳐맵을 연결시켜 주는 커널 처리 데이터를 저장하는 커널 버퍼;입력 피쳐맵에 대응하는 복수의 입력 데이터를 저장하는 바톰 버퍼;DMA 처리부의 상기 N개의 커널 처리 데이터를 상기 커널 버퍼로 전송하는 입력 데이터 로드부;상기 바톰 버퍼의 P(P는 2 이상의 자연수)개의 입력 데이터 및 상기 커널 버퍼의 P개의 커널 처리 데이터를 출력하는 커널/데이터 공급부;상기 P개의 커널 처리 데이터와 대응하는 K개의 커널 웨이트 값들을 이용하여 컨볼루션 연산을 수행하는 파이프라인 병렬 커널 처리부;상기 파이프라인 병렬 커널 처리부의 결과 값을 수신하는 결과 수신부;상기 중간 결과 값들을 저장하는 파셜 탑 버퍼; 및상기 DMA 제어부, 상기 커널 버퍼, 상기 바톰 버퍼, 상기 입력 데이터 로드부, 상기 커널/데이터 공급부, 상기 파이프라인 병렬 커널 처리부, 상기 결과 수신부, 및 상기 파셜 탑 버퍼를 제어하는 제어부를 포함하는 컨볼루션 회로
|
11 |
11
제 10 항에 있어서,상기 DMA 처리부는,상기 외부 메모리로부터 복수의 커널 처리될 입력 피쳐맵 데이터 및 커널 처리 데이터를 저장하는 읽기 FIFO(first-in, first-out) 메모리; 및상기 외부 메모리에 쓰여질 복수의 커널 처리된 데이터를 저장하는 쓰기 FIFO 메모리를 포함하는 컨볼루션 회로
|
12 |
12
제 10 항에 있어서,상기 커널 버퍼는, 상기 N 개의 커널 처리 데이터를 저장하면서, 동시에 병렬 처리를 위한 상기 P개의 커널 처리 데이터를 출력하는 DPRAM(dual port random access memory)로 구현되는 컨볼루션 회로
|
13 |
13
제 11 항에 있어서,상기 커널 버퍼는 입력 피쳐맵의 순서로 커널 처리 데이터를 상기 외부 메모리로부터 로드하고, 상기 입력 피쳐맵을 처리할 때 출력 피쳐맵들을 처리하기 위한 순서대로 커널 처리 데이터를 메모리에 로드하고, 각 커널 처리 데이터의 저장 순서는 로우 단위를 먼저 저장하고, 각 로우 안에서 컬럼 단위로 저장되는 컨볼루션 회로
|
14 |
14
제 13 항에 있어서,상기 커널 버퍼는 커널의 각 로우 별로 서로 다른 물리 메모리를 배치하는 컨볼루션 회로
|
15 |
15
제 11 항에 있어서,커널 버퍼는 상기 읽기 FIFO 메모리로부터 상기 K개의 웨이트 값들을 모으고, 대응하는 메모리에 저장시키는 컨볼루션 회로
|
16 |
16
제 11 항에 있어서,상기 바톰 버퍼는 상기 입력 피쳐맵에서 입력 데이터에 대한 커널 윈도우가 움직일 때 상기 커널 윈도우 안의 모든 데이터를 동시에 출력하는 컨볼루션 회로
|
17 |
17
제 16 항에 있어서,상기 커널/데이터 공급부는 출력 피쳐맵의 로우 및 컬럼 인덱스에 따라 상기 바톰 버퍼에서 상기 커널 윈도우에 대응하는 입력 데이터를 읽고, 상기 커널 버퍼에서 상기 읽혀진 데이터를 처리하기 위한 상기 P개의 커널 처리 데이터를 읽는 컨볼루션 회로
|
18 |
18
제 17 항에 있어서,상기 파이프라인 병렬 커널 처리부는 상기 커널/데이터 공급부로부터 출력된 상기 입력 데이터 및 대응하는 커널 웨이트 값들에 대하여 곱셈 연산 및 덧셈 연산을 수행함으로써 상기 P개의 결과 값들을 출력하는 컨볼루션 회로
|
19 |
19
제 11 항에 있어서,상기 파셜 탑 버퍼로부터 중간 결과 값들을 읽고 상기 읽혀진 중간 결과 값들을 상기 DMA 처리부의 상기 쓰기 FIFO 메모리에 전송하는 출력 데이터 저장부를 더 포함하는 컨볼루션 회로
|
20 |
20
어플리케이션 프로세서의 동작 방법에 있어서:특징을 추출하기 위하여 입력 피쳐맵들의 각각에 대한 병렬 컨볼루션 연산들을 수행하는 단계; 및상기 추출된 특징을 분류하기 위하여 상기 병렬 컨볼루션 연산들의 결과 값들의 각각에 대한 서브샘플링 연산들을 수행하는 단계를 포함하고,상기 병렬 컨볼루션 연산들을 수행하는 단계는,외부 메모리로부터 입력 데이터를 수신하면서 동시에 중간 결과 값들을 상기 외부 메모리로 출력하는 단계를 포함하는 방법
|