Что такое ссылка, когда там написано «Ссылка на кэш L1» или «Ссылка на основную память» - PullRequest
1 голос
/ 06 апреля 2020

Поэтому я пытаюсь узнать показатели производительности различных компонентов компьютера, таких как кэш L1, кэш L2, основная память, ethe rnet, диск et c, как показано ниже:

Latency Comparison Numbers
--------------------------
L1 cache **reference**                       0.5 ns
Branch mispredict                            5   ns
L2 cache **reference**                       7   ns                      14x L1 cache
Mutex lock/unlock                           25   ns
Main memory **reference**                  100   ns                      20x L2 cache, 200x L1 cache
Compress 1K bytes with Zippy            10,000   ns       10 us
Send 1 KB bytes over 1 Gbps network     10,000   ns       10 us
Read 4 KB randomly from SSD*           150,000   ns      150 us          ~1GB/sec SSD
Read 1 MB sequentially from memory     250,000   ns      250 us
Round trip within same datacenter      500,000   ns      500 us
Read 1 MB sequentially from SSD*     1,000,000   ns    1,000 us    1 ms  ~1GB/sec SSD, 4X memory
Disk seek                           10,000,000   ns   10,000 us   10 ms  20x datacenter roundtrip
Read 1 MB sequentially from 1 Gbps  10,000,000   ns   10,000 us   10 ms  40x memory, 10X SSD
Read 1 MB sequentially from disk    30,000,000   ns   30,000 us   30 ms 120x memory, 30X SSD
Send packet CA->Netherlands->CA    150,000,000   ns  150,000 us  150 ms

Надеюсь Не думаю, что упомянутая выше ссылка относится к тому, сколько данных читается в битах или байтах. Но на самом деле речь идет о доступе к одному адресу в кеше или памяти. Может кто-нибудь объяснить, пожалуйста, что это за ссылка происходит в 0,5 н / с?

1 Ответ

3 голосов
/ 13 апреля 2020
  • В этой таблице перечислены типичные числа для некоторой репрезентативной системы, поскольку фактические значения для реальной примерной системы вряд ли будут такими "сглаженными числами", но сложными суммами для некоторых нечетных кратных ЦП и / или автобусные часы. Мы могли бы найти такую ​​таблицу в учебнике для учебного использования. Этот, по-видимому, нашел свое отражение в общем введении в проектирование системы 1 из некоторых презентаций на конференции. Лидер Google AI, Джефф Дин , проведенный в 2009 году 3,4 .

  • В двух презентационных PDF-файлах 3,4 не дается явного определения того, что именно подразумевалось под «ссылкой» в этих таблицах. Вместо этого представлены таблицы, указывающие на то, что способность к «расчетам за пределами конверта» имеет решающее значение для успешного проектирования системы.

  • Термин " ссылка"вероятно означает получение части информации из соответствующего уровня памяти, если запрошенное значение сохраняется там, так что его не нужно перезагружать из более медленного источника:

    кэш L1 <- L2 кэш <- основная память (RAM) <- диск (например, подкачка) </p>

    Источники верхнего уровня (RAM, диск) можно рассматривать как очень грубый набросок, потому что здесь вы найдете много уровни и варианты (тип массового устройства, внутренний кэш на чипсете диска, шины / мосты и т. д. c. и т. c.). Представленные цифры, по-видимому, являются заключением опыта в дата-центре Google. Поэтому предположим, что они основаны на некотором высокопроизводительном оборудовании класса, которое было актуально в 2009 году (или ранее). Сегодня (2020 г.) цифры должны приниматься не буквально, а для демонстрации порядков величин в контексте соответствующих значений для других уровней передачи данных.

  • Метка "ветвление неверно предсказана" «означает все случаи, когда необходима операция выборки со следующего уровня, потому что ошибочно предсказанное решение о ветвлении является наиболее важной причиной для случаев, когда такая операция выборки имеет критическое значение по сравнению с задержками. В других случаях, инфраструктура предсказания ветвлений предполагается данных триггерных операций извлечения во времени, так что все латентные за пределами значения «эталонного» низкого скрыты за эксплуатации трубопроводов.


1 URL-адрес, который вы дали нам в обсуждении комментариев

"Число задержек, которое должен знать каждый программист" * в: "Учебник по проектированию системы"

ссылается на следующие источники:

2 Джефф Дин : "Числа задержки, которые должен знать каждый программист" , 31 мая 2012 года.

"Изначально Питер Норвиг (" Научитесь программировать за десять лет ") с некоторыми обновлениями от Брендана", 1 июня 2012 г.

3 Джефф Дин: «Проекты, уроки и советы по созданию больших распределенных систем», 13 октября 2009 г. , стр. 24.

4 Джефф Дин: «Советы по разработке программного обеспечения при создании крупномасштабных распределенных систем», 17 марта 2009 г. , pag е 13.

...