Архітектура load-store
Архітектура load–store («завантажити—зберегти») — архітектура системи команд центрального процесора, у якій існує чіткий поділ інструкцій на дві категорії: команди доступу до оперативної пам'яті (такі як «зберегти значення з регістра за даною адресою», або «завантажити слово з даної адреси пам'яті у регістр»), і операції арифметико-логічного пристрою (які дозволяються лише між регістрами).[1]
Архітектури RISC-процесорів, таких як PowerPC, SPARC, RISC-V, ARM і MIPS є типовими представниками load–store архітектур.[1]
Архітектура load-store є більш «чистою» у розмежуванні інструкцій, яким дозволено доступ до пам'яті, у порівнянні, наприклад, з архітектурами типу «регістр+пам'ять», типових для CISC-процесорів. У останніх команди, де бере участь АЛП, дозволені на операндах, що є регістрами або адресами комірок пам'яті.
Найбільш раннім прикладом реалізації архітектури load-store є комп'ютер CDC 6600.[1]:54–56 Майже всі векторні процесори (включно з багатьма графічними процесорами) також побудовані навколо принципу load-store.[2][3]
Приклад: RISC-V
Наступний фрагмент програми ілюструє роботу інструкцій LW
і SW
у архітектурі RISC-V. Він зчитує 32-розрядне слово з адреси 0x40000001, додає до нього 4, і записує за адресою 0x50000005.
/*
* Асемблювання: riscv64-linux-gnu-as example.S
*/
.equ MMIO1BASE, 0x40000000
.equ MMIO2BASE, 0x50000000
_start:
li a0, MMIO1BASE # Базова адреса пристрою 1
lw s0, 1(a0) # Зчитування комірки 1 пристрою 1 до регістру s0
addi s0, s0, 4 # Арифметико-логічні операції дозволені лише з регістрами
li a1, MMIO2BASE # Базова адреса іншого пристрою
sw s0, 5(a1) # Запис комірки 5 пристрою 2
wfi # Зупинка
Див. також
- Архітектура «регістр+пам'ять»
Джерела
- Michael J. Flynn (1995). Computer architecture: pipelined and parallel processor design. с. 9-12. ISBN 0867202041.
- AMD GCN reference.
- Harvey G. Cragon (1996). Memory systems and pipelined processors. с. 512–513. ISBN 0867204745.