Le M1 représente le début d'un changement de paradigme qui profitera aux microprocesseurs RISC-V, mais pas comme vous le pensez.
Il est maintenant devenu évident que la création de la puce Apple M1 est un événement remarquable. Les implications pour l'ensemble de l'industrie deviennent peu à peu claires. Dans cet article, je veux parler de la communication avec les microprocesseurs RISC-V.
, M1. (. out-of-order execution, OoOE).
. Apple , :
GPU (Graphical Processing Unit, ) ( ).
Neural Engine. .
.
.
, , Apple , “”.
. 1985 Amiga 1000 . GPU . Google (Google Tensor Processing Unit, Google TPU) — , .
TPU Google — (Application Specific Integrated Circuits, ASIC). .
?
CPU, . , . — , .
Intel 8087 (FPU). Intel 8086 , . ?
Intel 8087. , , .
(integers): 43, -5, 92, 4
. .
. , , 4,25, 84,7
3,1415
. . , . .
, . , . . . , 3 × 4
— 4 + 4 + 4
.
, CPU , ( ).
loadi r3, 0 ; Load 0 into register r3
multiply:
add r3, r1 ; r3 ← r3 + r1
dec r2 ; r2 ← r2 - 1
bgt r2, multiply ; goto multiply if r2 > 0
, , : ?
, .
. CPU , . . CPU .
, , (CPU) , , .
. . / , , .
. , CPU ( ). (Input / Output) . . . , , , , .
, . , .
, . . . :
LSU (Load Store Unit), .
, . ( ). , , , Input/Output .
. , .
, .
, , , , GPU, FPU, Neural Engine , / . , . , , , , , DMA ( ) .
, , .
? 84, x . 85 y. , - :
load r1, 84 ; get x-coordinate
loar r2, 85 ; get y-coordinate
DMA 110, 111 113, . , DMA:
loadi r1, 1024 ; set register r to source address
loadi r2, 50 ; bytes to copy
loadi r3, 2048 ; destination address
store r1, 110 ; tell DMA controller start address
store r2, 111 ; tell DMA to copy 50 bytes
store r3, 113 ; tell DMA where to copy 50 bytes to
. . . C / C ++ DOS, . C, , , .
char *video_buffer = 0xB8000; // set pointer to CGA video buffer
video_buffer[3] = 42; // change color of 4th pixel
. Neural Engine, GPU, Secure Enclave . . , . , .
, CPU Neural Engine GPU, , . Neural Engine GPU , -.
, , , . . - .
?
, , , . - , CPU. , CPU , , .
, , , .
, . , .
, . , . .
? . , .
. , CPU . , . CPU GPU, . GPU , CPU , .
M1 Neural Engine, -. , Neural Engine , CPU.
RISC-V
2010 . , , CPU . — .
, . , . 3–5 . , .
. . , . , , , . (Out-of-Order Execution, OoOE), : Apple M1 ?
: CPU ?
, 128 , Ampere Altra Max ARM. ? . , 128 . 8 . , , , 32 , , .
, , CPU, ?
: . , , 20 000 , , CPU 15 000 . 80-. CPU 100 . , 1000 . , 100 000 . .
, . , , .
. . , , , . CPU , . , - .
CPU . , — , CPU, . , Neural Engine TPU (Tensor Processing Unit), , ( ).
RISC-V
RISC-V. , 40–50 , . , , , x86 1500 .
, , RISC-V . . , RISC-V , , .
, , . Apple M1 , . RISC-V.
? ? , , Apple . , , ARM. . - , , .
RISC-V ?
. , , .
ARM. , .
, — . RISC-V , . , .
ARM? ARM CPU , . RISC-V ARM 2019 .
, . ARM ARM. CPU Mac iPhone.
. , .
Nvidia RISC-V
? RISC-V Nvidia . GPU - CPU , . , , , , . .
RISC-V RISC-V , ARM.
RISC-V , , ARM. Nvidia , , RISC-V, , - . .
, , . GPU, , , , .
RISC-V Machine Learning Accelerator (ET-SOC-1)
Esperanto Technologies — , RISC-V. SoC ET-SOC-1, , SoC M1. 23,8 16 M1.
Firestorm , RISC-V ET-Maxion. , Linux. 1000 ET-Minion. RISC-V, RISC-V. ? , .
, . ET-SOC-1 , M1? , Firestorm , . , , , . . ET-Minion, , , , , , , .
ET-SOC-1 , RISC-V. ET-Maxion ET-Minion Esperanto Technologies. , Apple ( - ) ET-Minion M1, .
ARM x86
, , ARM. , , RISC-V . , , System-on-a-Chip, (SoC) RISC-V, ARM.
: RISC-V: Apple ?
, , RISC-V. , ARM RISC-V. , , ARM RISC-V.
ARM RISC-V
ARM RISC-V, : , , , , .
, RISC-V .
RISC-V , , , , ARM, RISC-V.
- Raspberry Pi. ARM. RISC-V , . . . — . , . Linux , , .
RISC-V , RISC-V .
Nvidia Jetson Nano, . Raspberry Pi , , .
NVIDIA Jetson Nano.
RISC-V CPU?
: ARM RISC-V? , , RISC-V « » , , ARM x86.
RISC-V . . ARM, -, RISC-V. , , : RISC-V .
, . RISC 90-, x86 .
Intel RISC- 90-: Is It Game Over x86 ISA Intel?
, , CPU RISC-V, . MacOS Windows ARM. , , Microsoft Apple .
OTUS . . OTUS.