Exploring the limits
Mar. 2nd, 2009 01:33 amРешил посчитать, какое пиковое быстродействие могут дать существующие технологии процессоров и памяти.
С памятью ситуация следующая: наиболее быстрая технология чтения/записи из существующих MRAM STT (Spin-Torque-Transfer) обеспечивает задержку чуть меньше 1 наносекунды. Экспериментальный чип на 256 мегабит (= 32 мегабайта) такой памяти у меня будет в ближайшем будущем возможность лицезреть. Однако, MRAM последние лет 10-12 ждут примерно как прихода мессии (это энергонезависимая недеградирующая память, пригодная для замены Flash-накопителей и жестких дисков), так что вполне возможно, что мы и ещё лет 10 прождём, а потом появится какая-нибудь неожиданная технология ещё круче. Ладно, запомним, 1 ns.
Что у нас с процессорами?
Для спектра задач от ноутбука/десктопа до сервера среднего класса, практический предел распараллеливания наступает при конфигурации 4-8 cores × 2-3 pipes & 4-8 ALUs. На ядро может приходиться 32KB кеша первого уровня, доступ к которому занимает стандартные три такта. При таком количестве ядер и пайплайнов, переключение контекстов будет явлением не очень частым, и определяющим для быстродействия будет именно активный memory footprint тредов. Предел нынешней CMOS-технологии — 16nm-процесс. Это значит, что при разумных для ноутбуков энергозатратах тактовая частота упрётся в 8-10GHz. Это значит, что если использовать MRAM, кеш второго уровня не требуется:
Если же количество сожженных Ватт не беспокоит, то во-первых, можно перейти на 11nm технологический процесс (он нынче считается возможным, однако нужно тратить существенное количество энергии на компенсацию квантового туннелирования), а во вторых просто не скромничать (и охлаждать жидким азотом). Интел утверждает, что на этом пути можно будет достигнуть около 20GHz. Тогда кеш второго уровня (общий для всех ядер) нужен и сделать его можно будет этак мегабайт 8-16-32, оставаясь в рамках десяти тактов на доступ. Тогда будет иметься следующий расклад:
Эти соображения и соотношения, похоже, стоит держать в голове уже сейчас, если разрабатывается софт, который должен выйти через годик-два и будет работать не менее 5-7 лет после выхода.
С памятью ситуация следующая: наиболее быстрая технология чтения/записи из существующих MRAM STT (Spin-Torque-Transfer) обеспечивает задержку чуть меньше 1 наносекунды. Экспериментальный чип на 256 мегабит (= 32 мегабайта) такой памяти у меня будет в ближайшем будущем возможность лицезреть. Однако, MRAM последние лет 10-12 ждут примерно как прихода мессии (это энергонезависимая недеградирующая память, пригодная для замены Flash-накопителей и жестких дисков), так что вполне возможно, что мы и ещё лет 10 прождём, а потом появится какая-нибудь неожиданная технология ещё круче. Ладно, запомним, 1 ns.
Что у нас с процессорами?
Для спектра задач от ноутбука/десктопа до сервера среднего класса, практический предел распараллеливания наступает при конфигурации 4-8 cores × 2-3 pipes & 4-8 ALUs. На ядро может приходиться 32KB кеша первого уровня, доступ к которому занимает стандартные три такта. При таком количестве ядер и пайплайнов, переключение контекстов будет явлением не очень частым, и определяющим для быстродействия будет именно активный memory footprint тредов. Предел нынешней CMOS-технологии — 16nm-процесс. Это значит, что при разумных для ноутбуков энергозатратах тактовая частота упрётся в 8-10GHz. Это значит, что если использовать MRAM, кеш второго уровня не требуется:
Стоимость доступа к памяти в циклах | |
---|---|
μ₁ = 3ν | # L1-cache (individual, порядок размера 32KB) |
μ ≈ 10ν | # В SoC-системе с STT MRAM |
Если же количество сожженных Ватт не беспокоит, то во-первых, можно перейти на 11nm технологический процесс (он нынче считается возможным, однако нужно тратить существенное количество энергии на компенсацию квантового туннелирования), а во вторых просто не скромничать (и охлаждать жидким азотом). Интел утверждает, что на этом пути можно будет достигнуть около 20GHz. Тогда кеш второго уровня (общий для всех ядер) нужен и сделать его можно будет этак мегабайт 8-16-32, оставаясь в рамках десяти тактов на доступ. Тогда будет иметься следующий расклад:
Стоимость доступа к памяти в циклах | |
---|---|
μ₁ = 3ν | # L1-cache (individual, порядок размера 32KB) |
μ₂ = 10ν | # L2-cache (shared, порядок размера 8MB) |
μ ≈ 20ν | # В SoC-системе с STT MRAM |
Эти соображения и соотношения, похоже, стоит держать в голове уже сейчас, если разрабатывается софт, который должен выйти через годик-два и будет работать не менее 5-7 лет после выхода.