This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Atomicity in the ARM architecture

各位专家:

     请教一下在ARMv8包括ARMv7-A架构中,Single-copy atomicity和multicopy atomicity具体指的什么?有什么作用,如何理解?谢谢!

Parents
  • 这是一个关于ARM架构中原子访问的概念,所谓single-copy atomicity访问是指这笔读写访问是不会被中断的即单次完成,也就是说一个读/写访问是single-copy atomicity则

    1. 在对一个存储单元的一系列写操作后,该存储单元的值为这些写操作中其中之一的值,不可能发生在写操作之后的某一时刻该存储单元的值的一部分是一次写操作的值,另一部分是另一个写操作的值
    2. 当一次读操作和一次写操作对同一存储单元进行操作,读操作所得到的值要么是写操作之前的值要么是写操作之后的值,不可能发生读的值的一部分是写操作之前的值另一部分是写操作之后的值

    ARMv7中,single-copy atomic的处理器访问有以下几种(ARMv8中扩展了一部分):

    1. all byte accesses,如ldrb,strb
    2. all halfword accesses to halfword-aligned locations,如ldrb,ldrsh,strb等
    3. all word accesses to word-aligned locations,如str,ldr等指令
    4. memory accesses caused by LDREXD and STREXD instructions to doubleword-aligned locations.

    ARM中LDM, LDC, LDC2, LDRD, STM, STC, STC2, STRD, PUSH, POP, RFE, SRS, VLDM, VLDR, VSTM, VSTM, and VSTR指令的执行都是按一系列按字对齐的word访问序列。每个32-bitword访问都被保证是single-copy atomic,但架构不保证该序列中的两个或更多的word访问的子序列是single-copy atomic的。

    multi-copy atomicity是在多核系统中的存储访问的原子性的概念,这里面涉及到一致性的概念,当对存储单元的写操作同时满足以下条件时称为multi-copy atomic:

    1. 所有对同一存储单元的写是串行的,意味着被所有观察者观察的顺序是相同的
    2. 对一个存储单元的读不会返回之前写的值直到所有的观察者观察到了那笔写,这里的观察着指的是系统中所有可以进行对该存储单元进行存储访问的master,可以是processor可以是GPU可以是DMA也可以是其它的IP.

    通常对Normal memory的写不是multi-copy atomic.

Reply
  • 这是一个关于ARM架构中原子访问的概念,所谓single-copy atomicity访问是指这笔读写访问是不会被中断的即单次完成,也就是说一个读/写访问是single-copy atomicity则

    1. 在对一个存储单元的一系列写操作后,该存储单元的值为这些写操作中其中之一的值,不可能发生在写操作之后的某一时刻该存储单元的值的一部分是一次写操作的值,另一部分是另一个写操作的值
    2. 当一次读操作和一次写操作对同一存储单元进行操作,读操作所得到的值要么是写操作之前的值要么是写操作之后的值,不可能发生读的值的一部分是写操作之前的值另一部分是写操作之后的值

    ARMv7中,single-copy atomic的处理器访问有以下几种(ARMv8中扩展了一部分):

    1. all byte accesses,如ldrb,strb
    2. all halfword accesses to halfword-aligned locations,如ldrb,ldrsh,strb等
    3. all word accesses to word-aligned locations,如str,ldr等指令
    4. memory accesses caused by LDREXD and STREXD instructions to doubleword-aligned locations.

    ARM中LDM, LDC, LDC2, LDRD, STM, STC, STC2, STRD, PUSH, POP, RFE, SRS, VLDM, VLDR, VSTM, VSTM, and VSTR指令的执行都是按一系列按字对齐的word访问序列。每个32-bitword访问都被保证是single-copy atomic,但架构不保证该序列中的两个或更多的word访问的子序列是single-copy atomic的。

    multi-copy atomicity是在多核系统中的存储访问的原子性的概念,这里面涉及到一致性的概念,当对存储单元的写操作同时满足以下条件时称为multi-copy atomic:

    1. 所有对同一存储单元的写是串行的,意味着被所有观察者观察的顺序是相同的
    2. 对一个存储单元的读不会返回之前写的值直到所有的观察者观察到了那笔写,这里的观察着指的是系统中所有可以进行对该存储单元进行存储访问的master,可以是processor可以是GPU可以是DMA也可以是其它的IP.

    通常对Normal memory的写不是multi-copy atomic.

Children
No data