Архітектура 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                   # Зупинка

Див. також

  • Архітектура «регістр+пам'ять»

Джерела

  1. Michael J. Flynn (1995). Computer architecture: pipelined and parallel processor design. с. 9-12. ISBN 0867202041.
  2. AMD GCN reference.
  3. Harvey G. Cragon (1996). Memory systems and pipelined processors. с. 512–513. ISBN 0867204745.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.