Search
Write a publication
Pull to refresh
0
0
Пентин Александр @pentin-as

Пользователь

Send message

Странная статья.

Я согласен, что есть много направлений работы: есть вопросы с выращиванием кремния, с хим. реактивами, конечно же с литографией. Везде разный уровень вопросов. Но! Автор пишет якобы надо поднимать всё с нуля. Однако чипы в России производятся! Взять карты Мир, Тройка, Подорожник, Е-карта. Можно полистать любой справочник по элементной базе. И в России производят процессоры. В России есть цифровые и аналоговые дизайн-центры. И у них есть опыт в разработке, в том числе, многоядерных out-of-order процессоров. И многослойные печатные платы мы в России тоже делаем.

И новость о собственном литографе однозначно плюс. Да, пройдёт время пока эта штука перейдёт от состояния когда можно выпускать экспериментальные чипы до серийного производства. Много времени пройдёт. Да, будет сложно вставить в имеющийся маршрут (представляю себе эту боль...). Но это вполне конкретная обозримая работа.

Всё чуть сложнее. TSMC делает подавляющее большинство чипов (в том числе, на топовых тех. процессах) в мире. ASML делает подавляющее большинство литографических установок в мире (в том числе топовые EUV). Современные EUV установки стоят столько, что чтобы оно окупилось надо производить чипа весьма крупными сериями (для мира). Соответственно, TSMC автоматически становится основным потребителем ASML. Добавим к этому, что обе компании не сами собой появились, а детище крупных американских контор, для которых в итоге производят основную часть своих продуктов и ASML и TSMC.

Я бы ещё про ассоциативность добавил.

У меня на «ПК getconf -a | grep CACHE» выводит это:
LEVEL1_ICACHE_SIZE 32768
LEVEL1_ICACHE_ASSOC 8
LEVEL1_ICACHE_LINESIZE 64
LEVEL1_DCACHE_SIZE 32768
LEVEL1_DCACHE_ASSOC 8
LEVEL1_DCACHE_LINESIZE 64
LEVEL2_CACHE_SIZE 262144
LEVEL2_CACHE_ASSOC 4
LEVEL2_CACHE_LINESIZE 64
LEVEL3_CACHE_SIZE 6291456
LEVEL3_CACHE_ASSOC 12
LEVEL3_CACHE_LINESIZE 64

Как видно, у меня L1I и L1D — 8-ассоциативные.

При обращении к какому-либо адресу, скажем 0x12345678, поиск не будет осуществляться по всем 32кб L1D, а только к тем 8-ми к которым этот адрес может относиться.

Легко вычислить, что у меня количество Set'ов будет 32768 / (8 (ассоциативность) * 64 (кол-во байт кэш-строки)) = 64.
Можно нарисовать табличку 64 x 8 и сказать, что часть адресов будет относится к 8-мью кэш-строкам из одного Set'а, другие — к 8-мью из другого.

Номер Set'а с которым будет сравнение вычисляется из адреса.
В моём случае кэш-строка — 64 байта, соответственно биты 0..5 адреса отвечают за индекс байта внутри кэш-строки.
В моём случае количество Set'ов — 64, соответственно биты 6..11 адреса отвечают за выбор Set'а.
А биты с 12-го уже образуют tag, который и будет проверятся на попадание / промах с восемью тэгами из кэша (для адреса 0x12345678 тэгом будет 0x12345).

Смысл этого. Если делать полностью ассоциативный кэш, снизится быстродействие кэша (надо много всего сравнить, больше комбинаторики, ниже частота). Если одно-ассоциативный, будет много кэш-промахов, снизится итоговая производительность. Ассоциативность 4-8 для низкоуровневых кэш — вполне оптимальные значения.

Практический смысл для программистов тот же — понимать как работает железо, при решении проблем быстродействия.
При программировании встроенных систем (если мы занимаемся назначением адресов), не стоит любить круглые адреса: 0x1000, 0x2000, 0x3000. Можно нарваться на то, что они все будут принадлежать к одному Set'у и будет использована только 1/64 кэш-памяти (ну или сколько там Set'ов), что не есть эффективно.
Но!!! Тут надо быть очень осторожными, чтобы не заточить программу под конкретный тип микропроцессора.
Ну и преждевременная оптимизация — зло. Решать надо проблемы в том месте, где они есть.
Тоже за «Совершенный код» Стива Макконнелла. Прочитал её в 2011 будучи junior developer'ом и она сделала меня как программиста. Сейчас далеко не во всем согласен с автором. Но до сих пор рекомендую.

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity