Латентность опер. памяти - что это?

Тема в разделе "WASM.A&O", создана пользователем locki, 18 июл 2006.

  1. locki

    locki New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2005
    Сообщения:
    83
    Адрес:
    Russia
    Народ, у меня назрел вопрос как измеряется латентность памяти, если результат в наносекундах? Что это? Кол-во наносекунд на инструкцию чтения из памяти, на байт чтения или что то еще?
    Это не праздный вопрос - суть понятно, но как измерить, напишите КОД (с пояснениями) ...
    Заранее Спасибо...
     
  2. ECk

    ECk Member

    Публикаций:
    0
    Регистрация:
    9 апр 2004
    Сообщения:
    454
    Адрес:
    Russia
    Если ты имеешь в виду Latency - это задержка
     
  3. locki

    locki New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2005
    Сообщения:
    83
    Адрес:
    Russia
    ECk
    Вах, Ты не шутишь? Серьезно?
    Я же сказал - суть ясна, что это такое я знаю...
    Вопрос как програмным путем ее измерить.
     
  4. ECk

    ECk Member

    Публикаций:
    0
    Регистрация:
    9 апр 2004
    Сообщения:
    454
    Адрес:
    Russia
    What is Memory Latency?

    When we see what a RAM’s CAS latency is, it is 4 numbers, such as 2-2-2-5, which correspond with CAS – tRCD – tRP – tRAS. You should be able to change the CAS Latency in your BIOS. In most BIOSes, it can be found under the “advanced chipset” menu, though it can be found in different areas in different BIOSes.

    CAS stands for Column Address Strobe. This is the number of memory cycles that pass between the time a column is requested from the active page and the time the data is ready to send across the bus. This number is usually 2, 2.5, and 3, on DDR memory. This is actually the last part to come into effect.

    RAS to CAS Delay is referred to as tRCD. This is the delay in memory cycles between the time a row is activated and when data within the row can be requested. This only happens when data is not on the active row.

    tRP is the time for RAS Precharge. This is the time in memory cycles that is required to clear out the active row out of the cache, before a new row can be requested. In other words, it’s the time it takes for the memory to stop accessing one row and start accessing another. Once again this only takes place it the data is not in the active row.

    tRAS refers to the minimum time that a row must remain active before a new row can be activated in each memory bank. A new row can not be opened until the minimum amount of time has passed. If there is more than one bank on memory, this will help the performance of the tRAS. If there is only one active bank, then the need to change rows is guaranteed, and if there is more than one bank with memory, then there is only half the chance that there will be a need to change rows. In turn, the tRAS will only come into effect half the time. The tRP and tRAS together are often referred to as the Row Cycle time, because they happen together.

    Let's compare this to a library. Let's say you want a book about Florida. Let's say the librarly is putting books away, and you ask for the book on Florida. The librarian would have to get off the ladder, move the ladder to the travel section, and then get back up on the ladder. This would compare with the tRP. The tRCD would be the time the librarian is at the right shelf and right row of the bookcase. The tRAS would be the time when the librarian finds the books about Florida, and when he finds the specific book you want. The CAS latency in this case would be the time from when he takes the book off the shelf, and the time it takes him to walk back to you. If he walks fast, it might be 2; if he walks slower, the number would be larger.

    Let's say the library is putting books on Florida back; then the time required would be a lot less. All of the moving of the ladder would not be needed. This could happen in the memory if the data needed is on the active row. I hope this helps you understand how memory latency works.
     
  5. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    locki
    Ее не мерят. Она записанна в SPD блоке на планке памяте такая маленькая микруха. Еще есть реальная, так каторая выставленна на материнке, ее можно узнать на северном мосту.
    Для того чтобы узнать, какие задержки в виндоусе можно воспользоваться WMI.
     
  6. locki

    locki New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2005
    Сообщения:
    83
    Адрес:
    Russia
    Pavia Ух ты ж ! Еще один!
    А что же тогда делает программа Райтмарк Мэмори Анализер? В Эвересте 2.8 в закладке тесты памяти и т. д.
     
  7. locki

    locki New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2005
    Сообщения:
    83
    Адрес:
    Russia
    ECk
    Не, ну русским же языком сказал, что я знаю, что существуют задержки поиска строки и столбца и т. д., но вот напр. Everest (Бывшая Aida32) говорит что у меня к примеру латентность памяти 80ns Воппрос как она это измерила.
     
  8. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    locki
    Наверное используется benchmark на доступ. Здесь где-то есть тема по измерению скорости чтения/копирования памяти. Из исходников можно слепить тест, что будет замерять полное время доступа и только. Всякие промежуточные значения, с его помощью получить не удастся.
     
  9. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    locki
    Видимо, она просто читает данные в разброс (чтоб кеш не помогал), замеряет общее время и делит на кол-во данных.
     
  10. locki

    locki New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2005
    Сообщения:
    83
    Адрес:
    Russia
    Quantum
    ВРОДЕ, ТИПА ДА, используется случайное чтение промежутка 0-32мв, Но как именно
    Кол-во наносекунд на инструкцию чтения из памяти, на байт чтения или что то еще? Кто знает точно "скока вешать граммов"?
     
  11. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    locki
    Проще на dword, но этот dword должен иметь адрес, кратный 4м. Иначе на его чтение уйдёт 2 цикла обращения к памяти.
     
  12. locki

    locki New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2005
    Сообщения:
    83
    Адрес:
    Russia
    не понял, напиши код и ехе-шник, посмотрю и замеряю...-)
     
  13. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    locki
    У меня Эверест 2,0 там нет тестов и все данные она читала через WMI. Еще раз повторяюсь те 80нс взела из SPD блока. Если это был тест цифра не была бы круглой.
    Вот Райтмарк Мэмори Анализер - она тестирует четая в разброс. Но почему то я этой проги больше всего не доверяю.
     
  14. locki

    locki New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2005
    Сообщения:
    83
    Адрес:
    Russia
    Она и не круглая и зависит от частоты проца 80,82, 86 ( 3,6Ghz;3,2Ghz;3Ghz) и опер памяти тоже, скачай с
    http://www.lavalys.com/downloads/everestultimate301.exe
     
  15. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Quantum
    Проще да, но насколько это правельнео? Я считаю что правельно считать 128бит за раз.
     
  16. locki

    locki New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2005
    Сообщения:
    83
    Адрес:
    Russia
    Pavia
    эт почему 128? Объясни. Я напр считаю 64.
     
  17. locki

    locki New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2005
    Сообщения:
    83
    Адрес:
    Russia
    и не бита а байта... По длине строки кэша...
     
  18. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    locki
    Частота FSB завязанна с частотой процессора, у них один генератор частоты. Поэтому при разгоне проца FSB тоже будет расти, а задержки уменьшаться.
    Канал памяти имеет 64Бита. В двух кональном 128 бита. Там есть буфер размером в 16Байт(128бит). Поэтому и считаю что нужно читать через XMM регистр 128бит. Ну и разумеется учесть сопряжение команд по этому подряд 2 команды.
     
  19. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    locki
    Читать всю строку смысла нет - процессор сам ее загрузит при чтении даже одного байта. Поэтому достаточно читать по одному дворду из линейки, имея ввиду, что при этом грузится линейка целиком (32, 64, 128 байт в завис-ти от проца)
    А вообще лучше погуглить на эту тему, в частности на ixbt были статьи по тестированию памяти
     
  20. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    2locki
    А не проще посмотреть изнутри, как она выполняет измерения?