Чтение подряд в одну ячейку

Тема в разделе "WASM.A&O", создана пользователем asmprogrammer, 25 сен 2009.

  1. asmprogrammer

    asmprogrammer New Member

    Публикаций:
    0
    Регистрация:
    25 июл 2009
    Сообщения:
    15
    Чтение подряд в одну ячейку как нибудь особым образом обрабатывается процессором?А запись?
    Наример
    mov eax, [1]
    mov ebx, [1]
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    ты не читаешь подряд в одну ячейку. Только из одной.
    Да, конечно обрабатывается, кэш называется.
     
  3. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    n0name

    Ну запись-то наверно все-таки сквозная?
     
  4. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    _DEN_
    Только инструкциями минующими кэш, иначе в него.
     
  5. asmprogrammer

    asmprogrammer New Member

    Публикаций:
    0
    Регистрация:
    25 июл 2009
    Сообщения:
    15
    Кэш это одно, в случае если ячейка есть в кэше, приходится делать два обращения, а не одно
    например
    mov eax,[1]
    mov ebx,eax
    одно обращение к кэшу.

    mov eax,[1]
    mov ebx,[1]
    два обращения.
    Меня интересует, будет ли процессор делать только одно обращение вместо двух.
     
  6. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Будет делать два
     
  7. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Ни то, ни другое.
    Особым образом обрабатывается только чтение после записи (STLF - store to load forwarding). Но делается это не ради какого-то ускорения, а по необходимости, т.к. данные не сразу записываются в кэш, а только после восстановления порядка и отставки инструкции записи
     
  8. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    asmprogrammer

    В общем случае нет гарантии что [1] не поменяется после первой операции.
     
  9. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    _DEN_
    Смар кэш может проверить.

    Такое оптимизируется компилятором так что вносить в процессор нет смысла.
    Хотя как побочное явление других оптимизаций могло и попасть.