| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | BIT | 0 | 64 bit | ||||||||||||||||||||
2 | Flags | ||||||||||||||||||||||
3 | BRAM REGISTER [B] | L1 cache [A] | Find Emax and Align | ||||||||||||||||||||
4 | Scale | REG [B] [1] | REG [B] [1] | weight | systolic top [A] [1] | Calculation result is both result & accumulated result | |||||||||||||||||
5 | weight | VdotM top [A] [1] | result * (Weight's scale) | ||||||||||||||||||||
6 | L2 cache REGISTER [C] | VdotM top [A] [2] | |||||||||||||||||||||
7 | addr len 17bit | bit | Mega bit | VdotM top [A] [3] | |||||||||||||||||||
8 | 14,680,064 | 14.68... | VdotM top [A] [4] | ||||||||||||||||||||
9 | |||||||||||||||||||||||
10 | |||||||||||||||||||||||
11 | GEMV | BIT | 4 | 17 | 17 | 6 | 6 | 6 | 5 | 3 | 0 | ||||||||||||
12 | opcode | Dest Address (17bit) | src Address (17bit) | Flags | size (pointer)address | constant (pointer)address | parallel Lane | ||||||||||||||||
13 | GEMV | L2 cache address | L2 cache address | Find Emax Align | size of weight RAM's address (pointer) | 0 ~ 512 | 0x0040 | | shape RAM's address (pointer) | 0 ~ 64 | 0x0040 | | v dot m{0, 1, 2, 3} | ||||||||||||||||
14 | ACCM | ||||||||||||||||||||||
15 | w * scale | ||||||||||||||||||||||
16 | fmap size update | ||||||||||||||||||||||
17 | |||||||||||||||||||||||
18 | GEMV API | GEMV | GEMV | 0 ~ 0x1FFFF | 0 ~ 0x1FFFF | Find Emax Align | 0 ~ 0x0040 | 0 ~ 0x0040 | 0 1 2 3 | ||||||||||||||
19 | ACCM | ||||||||||||||||||||||
20 | w * scale | ||||||||||||||||||||||
21 | fmap size update | ||||||||||||||||||||||
22 | |||||||||||||||||||||||
23 | |||||||||||||||||||||||
24 | |||||||||||||||||||||||
25 | |||||||||||||||||||||||
26 | GEMM | BIT | 4 | 17 | 17 | 6 | 6 | 6 | 5 | 3 | 0 | ||||||||||||
27 | opcode | Dest Address (17bit) | src Address (17bit) | Flags | size (pointer)address | shape (pointer)address | parallel Lane | reserved | |||||||||||||||
28 | GEMM | L2 cache address | L2 cache address | Find Emax Align | size of weight RAM's address (pointer) | 0 ~ 512 | 0x0040 | | shape RAM's address (pointer) | 0 ~ 64 | 0x0040 | | v dot m{0, 1, 2, 3} | ||||||||||||||||
29 | ACCM | ||||||||||||||||||||||
30 | w * scale | ||||||||||||||||||||||
31 | fmap size update | ||||||||||||||||||||||
32 | |||||||||||||||||||||||
33 | GEMM API | GEMM | GEMM | 0 ~ 0x1FFFF | 0 ~ 0x1FFFF | Find Emax Align | 0 ~ 0x0040 | 0 ~ 0x0040 | 0 1 2 3 | ||||||||||||||
34 | ACCM | ||||||||||||||||||||||
35 | w * scale | ||||||||||||||||||||||
36 | fmap size update | ||||||||||||||||||||||
37 | |||||||||||||||||||||||
38 | |||||||||||||||||||||||
39 | |||||||||||||||||||||||
40 | |||||||||||||||||||||||
41 | memcpy | BIT | 4 | 1 | 1 | 17 | 17 | 17 | 6 | 1 | 0 | ||||||||||||
42 | Opcode | From device | To devide | Dest Address (17bit) | src Address (17bit) | Address (17bit) | shape (pointer)address | async | |||||||||||||||
43 | memcpy | From NPU L2 | To NPU (L2) | L2 cache address | L2 cache address | L2 cache address | shape RAM's address (pointer) | 0 ~ 64 | 0x0040 | | 1/0 | |||||||||||||||
44 | To CPU | ||||||||||||||||||||||
45 | |||||||||||||||||||||||
46 | memcpy API | memcpy_div_2_div | memcpy | 1 | 1/0 | 0 ~ 0x1FFFF | 0 ~ 0x1FFFF | 0 ~ 0x1FFFF | 0 ~ 0x0040 | 1 | |||||||||||||
47 | |||||||||||||||||||||||
48 | memcpy_div_2_host | ||||||||||||||||||||||
49 | |||||||||||||||||||||||
50 | memcpy_host_2_div | ||||||||||||||||||||||
51 | |||||||||||||||||||||||
52 | memcpy_div_2_div_async | ||||||||||||||||||||||
53 | |||||||||||||||||||||||
54 | memcpy_div_2_host_async | ||||||||||||||||||||||
55 | |||||||||||||||||||||||
56 | memcpy_host_2_div_async | ||||||||||||||||||||||
57 | |||||||||||||||||||||||
58 | memcpy_2D | ||||||||||||||||||||||
59 | |||||||||||||||||||||||
60 | memcpy_2D_async | ||||||||||||||||||||||
61 | |||||||||||||||||||||||
62 | memcpy_3D | ||||||||||||||||||||||
63 | |||||||||||||||||||||||
64 | memcpy_3D_async | ||||||||||||||||||||||
65 | |||||||||||||||||||||||
66 | |||||||||||||||||||||||
67 | |||||||||||||||||||||||
68 | |||||||||||||||||||||||
69 | memset | BIT | 4 | 2 | 6 | 17 | 17 | 17 | 1 | 0 | |||||||||||||
70 | Opcode | select cache | A address | A value | A value | A value | reserved | ||||||||||||||||
71 | memset | shape cache | size of weight cache's address (pointer) | 0 ~ 64 | 0x0040 | | size of weight RAM's | size of weight RAM's | size of weight RAM's | |||||||||||||||||
72 | |||||||||||||||||||||||
73 | weight cache | 6 | 17 | 17 | 17 | 1 | 0 | ||||||||||||||||
74 | A address | A value | A value | A value | reserved | ||||||||||||||||||
75 | shape cache's address (pointer) | 0 ~ 64 | 0x0040 | | size of weight RAM's | size of weight RAM's | size of weight RAM's | |||||||||||||||||||
76 | |||||||||||||||||||||||
77 | memset | ||||||||||||||||||||||
78 | memset | memset | |||||||||||||||||||||
79 | |||||||||||||||||||||||
80 | mem_all_clear | shape/weight RAM | ---------------------------------------------------------------------------------------------- | ||||||||||||||||||||
81 | |||||||||||||||||||||||
82 | memset_weight | weight RAM | 0 ~ 0x0040 | 0 ~ 0x0040 | 0 ~ 0x0040 | 0 ~ 0x0040 | |||||||||||||||||
83 | |||||||||||||||||||||||
84 | memset_shape | weight RAM | |||||||||||||||||||||