1 |
1
뉴럴 네트워크 장치에 있어서,뉴럴 네트워크에 포함되는 제1 레이어의 입력 피처맵(input feature map)을 저장하는 온칩 버퍼 메모리(on-chip buffer memory);상기 온칩 버퍼 메모리의 단일 포트를 통해 상기 제1 레이어의 입력 피처맵을 수신하고, 상기 제1 레이어의 입력 피처맵에 대해 뉴럴 네트워크 연산을 수행함으로써 상기 제1 레이어의 입력 피처맵에 대응되는 상기 제1 레이어의 출력 피처맵(output feature map)을 출력하는 연산 회로; 및상기 제1 레이어의 출력 피처맵을 상기 단일 포트를 통해 상기 온칩 버퍼 메모리로 전송함으로써, 상기 온칩 버퍼 메모리에 상기 제1 레이어의 출력 피처맵과 상기 제1 레이어의 입력 피처맵을 함께 저장하는 제어부를 포함하고,상기 제1 레이어의 출력 피처맵은 상기 제1 레이어의 다음 레이어인 제2 레이어의 뉴럴 네트워크 연산을 위한 입력 피처맵으로서 재사용되는, 뉴럴 네트워크 장치
|
2 |
2
제 1항에 있어서,상기 연산 회로는,적어도 하나의 연산 루프들에 기초하여 상기 뉴럴 네트워크 연산을 수행하고,상기 제어부는,상기 적어도 하나의 연산 루프들 각각이 실행되는 주기마다, 상기 제1 레이어의 입력 피처맵의 적어도 일부를 구성하는 데이터를 상기 온칩 버퍼 메모리로부터 상기 단일 포트를 통해 독출하는 독출 동작을 수행하되,상기 독출 동작을 수행할 타이밍에, 상기 제1 레이어의 출력 피처맵의 적어도 일부를 구성하는 데이터를 상기 단일 포트를 통해 상기 온칩 버퍼 메모리로 기입하는 기입 동작이 요청되는 경우 상기 독출 동작보다 상기 기입 동작을 우선하여 수행하는, 뉴럴 네트워크 장치
|
3 |
3
제 1항에 있어서,상기 제어부는,상기 제1 레이어의 입력 피처맵을 저장하기 위한 상기 온칩 버퍼 메모리의 제1 메모리 어드레스 및 상기 제1 레이어의 출력 피처맵을 저장하기 위한 상기 온칩 버퍼 메모리의 제2 메모리 어드레스를 서로 다른 방향으로 할당함으로써, 상기 제1 메모리 어드레스 및 상기 제2 메모리 어드레스 간의 중첩을 최소화하는, 뉴럴 네트워크 장치
|
4 |
4
제 3항에 있어서,상기 제어부는,상기 온칩 버퍼 메모리의 저장 공간에 대응되는 메모리 어드레스의 시작 지점부터 제1 방향으로 상기 제1 메모리 어드레스를 할당하고,상기 온칩 버퍼 메모리의 저장 공간에 대응되는 메모리 어드레스의 마지막 지점부터 상기 제1 방향과 반대인 제2 방향으로 상기 제2 메모리 어드레스를 할당하는, 뉴럴 네트워크 장치
|
5 |
5
제 4항에 있어서,상기 제어부는,상기 제2 메모리 어드레스에 저장된 상기 제1 레이어의 출력 피처맵이 상기 제2 레이어의 입력 피처맵으로 재사용됨에 따라 상기 제2 레이어의 입력 피처맵에 대응되는 상기 제2 레이어의 출력 피처맵이 상기 연산 회로로부터 출력되는 경우,상기 제2 레이어의 출력 피처맵을 저장하기 위한 상기 온칩 버퍼 메모리의 제3 메모리 어드레스를 상기 시작 지점부터 상기 제1 방향으로 할당함으로써, 상기 제2 메모리 어드레스 및 상기 제3 메모리 어드레스 간의 중첩을 최소화하는, 뉴럴 네트워크 장치
|
6 |
6
제 1항에 있어서,상기 뉴럴 네트워크 연산은 컨볼루션 연산, 액티베이션(activation) 연산 및 풀링(pooling) 연산을 포함하고,상기 연산 회로는 상기 제1 레이어의 입력 피처맵에 대해 상기 컨볼루션 연산 및 상기 액티베이션 연산뿐만 아니라 상기 풀링 연산까지 수행한 결과를 상기 제1 레이어의 출력 피처맵으로 출력하는, 뉴럴 네트워크 장치
|
7 |
7
제 1항에 있어서,상기 뉴럴 네트워크 장치는,상기 제1 레이어의 입력 피처맵에 대한 상기 뉴럴 네트워크 연산에 이용되는 상기 제1 레이어의 웨이트(weight)를 저장하는 웨이트 버퍼 메모리를 더 포함하고,상기 웨이트 버퍼 메모리는, 상기 웨이트 버퍼 메모리의 단일 포트를 통해 상기 뉴럴 네트워크 장치 외부의 외부 메모리로부터 상기 제1 레이어의 웨이트를 수신하고, 상기 웨이트 버퍼 메모리의 단일 포트를 통해 상기 제1 레이어의 웨이트를 상기 연산 회로에 전송하는, 뉴럴 네트워크 장치
|
8 |
8
제 1항에 있어서,상기 온칩 버퍼 메모리, 상기 연산 회로 및 상기 제어부는 단일 칩 내에 실장되는, 뉴럴 네트워크 장치
|
9 |
9
제 1항에 있어서,상기 뉴럴 네트워크 장치는,보조 버퍼 메모리를 더 포함하고,상기 제어부는,상기 제2 레이어의 입력 피처맵에 대응되는 상기 제2 레이어의 출력 피처맵이 상기 연산 회로로부터 출력되는 경우 상기 제2 레이어의 입력 피처맵과 상기 제2 레이어의 출력 피처맵의 총합 크기가 상기 온칩 버퍼 메모리의 크기를 초과하는지 여부를 판단하고, 상기 제2 레이어의 입력 피처맵과 상기 제2 레이어의 출력 피처맵의 총합 크기가 상기 온칩 버퍼 메모리의 크기를 초과한다고 판단되는 경우, 상기 제2 레이어의 출력 피처맵을 상기 온칩 버퍼 메모리 대신 상기 보조 버퍼 메모리에 일시 저장하고,상기 보조 버퍼 메모리에 일시 저장된 상기 제2 레이어의 출력 피처맵은 기 설정된 주기에 따라 상기 뉴럴 네트워크 장치 외부의 외부 메모리로 전송되는, 뉴럴 네트워크 장치
|
10 |
10
제 9항에 있어서,상기 제어부는,상기 제2 레이어의 출력 피처맵이 상기 제2 레이어의 다음 레이어인 제3 레이어의 뉴럴 네트워크 연산을 위한 입력 피처맵으로서 재사용됨에 따라 상기 제3 레이어의 입력 피처맵에 대응되는 상기 제3 레이어의 출력 피처맵이 상기 연산 회로로부터 출력되는 경우, 상기 제3 레이어의 출력 피처맵의 크기가 상기 온칩 버퍼 메모리의 크기를 초과하는지 여부를 판단하고,상기 제3 레이어의 출력 피처맵의 크기가 상기 온칩 버퍼 메모리의 크기를 초과한다고 판단되는 경우 상기 제3 레이어의 출력 피처맵을 상기 보조 버퍼 메모리에 일시 저장하고,상기 제3 레이어의 출력 피처맵의 크기가 상기 온칩 버퍼 메모리의 크기 이하라고 판단되는 경우 상기 제3 레이어의 출력 피처맵을 상기 온칩 버퍼 메모리에 저장하는, 뉴럴 네트워크 장치
|
11 |
11
뉴럴 네트워크 장치의 동작 방법에 있어서,뉴럴 네트워크에 포함되는 제1 레이어의 입력 피처맵을 온칩 버퍼 메모리에 저장하는 단계;상기 온칩 버퍼 메모리의 단일 포트를 통해 상기 제1 레이어의 입력 피처맵을 연산 회로로 전송하는 단계;상기 연산 회로가 상기 제1 레이어의 입력 피처맵에 대해 뉴럴 네트워크 연산을 수행함으로써 상기 제1 레이어의 입력 피처맵에 대응되는 상기 제1 레이어의 출력 피처맵을 출력하는 단계; 및상기 제1 레이어의 출력 피처맵을 상기 단일 포트를 통해 상기 온칩 버퍼 메모리로 전송함으로써, 상기 온칩 버퍼 메모리에 상기 제1 레이어의 출력 피처맵과 상기 제1 레이어의 입력 피처맵을 함께 저장하는 단계를 포함하고,상기 제1 레이어의 출력 피처맵은 상기 제1 레이어의 다음 레이어인 제2 레이어의 뉴럴 네트워크 연산을 위한 입력 피처맵으로 재사용되는, 방법
|
12 |
12
제 11항에 있어서,상기 방법은,적어도 하나의 연산 루프들에 기초하여 상기 뉴럴 네트워크 연산을 수행하기 위해, 상기 적어도 하나의 연산 루프들 각각이 실행되는 주기 마다, 상기 제1 레이어의 입력 피처맵의 적어도 일부를 구성하는 데이터를 상기 온칩 버퍼 메모리로부터 상기 단일 포트를 통해 독출하는 단계; 및상기 독출 동작을 수행할 타이밍에, 상기 제1 레이어의 출력 피처맵의 적어도 일부를 구성하는 데이터를 상기 단일 포트를 통해 상기 온칩 버퍼 메모리로 기입하는 기입 동작이 요청되는 경우 상기 독출 동작보다 상기 기입 동작을 우선하여 수행하는 단계를 더 포함하는, 방법
|
13 |
13
제 11항에 있어서,상기 온칩 버퍼 메모리에 상기 제1 레이어의 출력 피처맵과 상기 제1 레이어의 입력 피처맵을 함께 저장하는 단계는,상기 제1 레이어의 입력 피처맵을 저장하기 위한 상기 온칩 버퍼 메모리의 제1 메모리 어드레스 및 상기 제1 레이어의 출력 피처맵을 저장하기 위한 상기 온칩 버퍼 메모리의 제2 메모리 어드레스를 서로 다른 방향으로 할당하는 단계를 포함하는, 방법
|
14 |
14
제 13항에 있어서,상기 할당하는 단계는,상기 온칩 버퍼 메모리의 저장 공간에 대응되는 메모리 어드레스의 시작 지점부터 제1 방향으로 상기 제1 레이어의 입력 피처맵을 저장하기 위한 상기 제1 메모리 어드레스를 할당하는 단계; 및상기 온칩 버퍼 메모리의 저장 공간에 대응되는 메모리 어드레스의 마지막 지점부터 상기 제1 방향과 반대인 제2 방향으로 상기 제1 레이어의 출력 피처맵을 저장하기 위한 상기 제2 메모리 어드레스를 할당하는 단계를 포함하는, 방법
|
15 |
15
제 14항에 있어서,상기 방법은,상기 제2 메모리 어드레스에 저장된 상기 제1 레이어의 출력 피처맵이 상기 제2 레이어의 입력 피처맵으로 재사용됨에 따라 상기 제2 레이어의 입력 피처맵에 대응되는 상기 제2 레이어의 출력 피처맵이 상기 연산 회로로부터 출력되는 경우,상기 제2 레이어의 출력 피처맵을 저장하기 위한 상기 온칩 버퍼 메모리의 제3 메모리 어드레스를 상기 시작 지점부터 상기 제1 방향으로 할당하는 단계를 더 포함하는, 방법
|
16 |
16
제 11항에 있어서,상기 뉴럴 네트워크 연산은 컨볼루션 연산, 액티베이션 연산 및 풀링 연산을 포함하고,상기 출력하는 단계는,상기 제1 레이어의 입력 피처맵에 대해 상기 컨볼루션 연산 및 상기 액티베이션 연산뿐만 아니라 상기 풀링 연산까지 수행한 결과를 상기 제1 레이어의 출력 피처맵으로 출력하는, 방법
|
17 |
17
제 11항에 있어서,상기 방법은,웨이트 버퍼 메모리의 단일 포트를 통해 상기 뉴럴 네트워크 장치 외부의 외부 메모리로부터 상기 웨이트 버퍼 메모리에 상기 제1 레이어의 웨이트가 전송되면, 상기 웨이트 버퍼 메모리에 상기 뉴럴 네트워크 연산에 이용되는 상기 제1 레이어의 웨이트를 저장하는 단계; 및상기 웨이트 버퍼 메모리의 단일 포트를 통해 상기 제1 레이어의 웨이트를 상기 웨이트 버퍼 메모리로부터 상기 연산 회로에 전송하는 단계를 더 포함하는, 방법
|
18 |
18
제 11항에 있어서,상기 방법은,상기 제2 레이어의 입력 피처맵에 대응되는 상기 제2 레이어의 출력 피처맵이 상기 연산 회로로부터 출력되는 경우 상기 제2 레이어의 입력 피처맵과 상기 제2 레이어의 출력 피처맵의 총합 크기가 상기 온칩 버퍼 메모리의 크기를 초과하는지 여부를 판단하는 단계; 및상기 제2 레이어의 입력 피처맵과 상기 제2 레이어의 출력 피처맵의 총합 크기가 상기 온칩 버퍼 메모리의 크기를 초과한다고 판단되는 경우, 상기 제2 레이어의 출력 피처맵을 상기 온칩 버퍼 메모리 대신 보조 버퍼 메모리에 일시 저장하는 단계를 더 포함하고,상기 보조 버퍼 메모리에 일시 저장된 상기 제2 레이어의 출력 피처맵은 기 설정된 주기에 따라 상기 뉴럴 네트워크 장치 외부의 외부 메모리로 전송되는, 방법
|
19 |
19
제 18항에 있어서,상기 제2 레이어의 출력 피처맵이 상기 제2 레이어의 다음 레이어인 제3 레이어의 뉴럴 네트워크 연산을 위한 입력 피처맵으로서 재사용됨에 따라 상기 제3 레이어의 입력 피처맵에 대응되는 상기 제3 레이어의 출력 피처맵이 상기 연산 회로로부터 출력되는 경우, 상기 제3 레이어의 출력 피처맵의 크기가 상기 온칩 버퍼 메모리의 크기를 초과하는지 여부를 판단하는 단계; 및상기 제3 레이어의 출력 피처맵의 크기가 상기 온칩 버퍼 메모리의 크기를 초과한다고 판단되는 경우 상기 제3 레이어의 출력 피처맵을 상기 보조 버퍼 메모리에 일시 저장하고, 상기 제3 레이어의 출력 피처맵의 크기가 상기 온칩 버퍼 메모리의 크기 이하라고 판단되는 경우 상기 제3 레이어의 출력 피처맵을 상기 온칩 버퍼 메모리에 저장하는 단계를 더 포함하는, 방법
|
20 |
20
제 11항의 방법을 컴퓨터에서 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
|