Comments 48
1) специальная библиотека логических элементов. Код на верилоге при этом пишется абсолютно обычный, но когда он транслируется в нетлист (и потом в топологию) вместо обычных инверторов, ИНе, триггеров и т.д. ставятся специальные, защищённые от радиации. В таких эленметнтах может быть другая схемотехника (больше транзисторов для достижения внутреннего резервирования или компенсации каких-то эффектов) и другая топология (специальная форма затворов транзисторов, охранные кольца из легированных слоев). На уровне элементов обычно делается защита от полной поглощенной дозы и от тиристорного эффекта. Кроме того, рискну предположить, что в категорию «элементы» для простоты картинки могли быть засунуты, например, кэши со специальными радстойкими ячейками или даже с ECC.
2) У чипа более устойчивый к полной дозе радиации корпус. Это достигается за счёт тонких танталовых (не обязательно, но обычно это тантал) пластин вокруг чипа, которые задерживают излучение (это такой ответ на вопрос «а почему бы не сделать у спутника свинцовые стенки?» Но при этом такой корпус делает хуже стойкость к одиночным сбоям.
Существует также много других методов повышения стойкости к различным воздействующим факторам космической радиации, озвученный набор говорит о том, что разработчики чипа не очень переживали насчет одиночных сбоев и были больше озабочены полной дозой и тиристорным эффектом.
UPD из комментария ниже: судя по всему, процессор изготовлен по технологии «кремний на изоляторе». В ней все транзисторы изолированы друг от друга диэлектриком, что исключает возникновение катастрофического тиристорного эффекта, добавляя при этом хлопот с полной дозой и одиночными сбоями. Тем не менее, такая мера часто оправдана, потому что случайные отказы сложно парировать по-другому, тогда как для борьбы с негативными последствиями использования КНИ существует множество методов (которые, скорее всего, использованы в библиотеке элементов).
Необходимо, правда, заметить, что фраза «space processors are built on SOI» является мнением конкретного японского разработчика и не является универсальной истиной. На объемной технологии тоже можно сделать все, что нужно, и иногда это даже проще чем на КНИ, зависит от требований задачи и от специфики техпроцессов.
Вот тут намекают, что еще и технология SOI:
https://www.spaceflightinsider.com/missions/solar-system/mips-space-inside-jaxas-hayabusa-2-mission-asteroid-rendezvous/
Думаю, там смесь экономических соображений и легкости интеграции пластин (или напыления) с керамикой, а не только вопрос плотности металла. Плюс наверное стоит посмотреть, как различаются вероятности ядерных реакций с протонами для разных материалов и какие получаются продукты этих реакций.
И тантал, и вольфрам, и, например, платина — популярные материалы для мишеней в ускорителях заряженных частиц, а значит, при ядерном взаимодействии пуска протонов с ними получается много продуктов, то есть, в нашем случае, много одиночных сбоев.
Спасибо.
Осмий (22,62 г/см3),
Иридий (22,53 г/см3),
Платина (21,44 г/см3),
Рений (21,01 г/см3),
Нептуний (20,48 г/см3),
Плутоний (19,85 г/см3),
Золото (19,85 г/см3)
Вольфрам (19,21 г/см3),
Уран (18,92 г/см3),
Тантал (16,64 г/см3).
Нептуний, уран и плутоний отсекаем по понятным причинам, а дальше начинаются частности в виде цены, технологичности, влияния на одиночные сбои и т.д.
Принципиально: чем больше плотность — тем лучше.
Это в космосе-то?
habr.com/ru/post/156049
Из-за всех этих проблем радиационную защиту из тяжелых элементов, как на земле — в космосе не используют. Используют защиту большей частью состоящую из алюминия, водорода (из различных полиэтиленов и проч), т.к. его разбить можно только на субатомные частицы — а это намного сложнее, и такая защита генерирует меньше вторичной радиации.
Но в любом случае, от ТЗЧ защиты нет, более того — чем больше защиты — тем больше вторичной радиации от высокоэнергетических частиц, оптимальная толщина получается порядка 2-3мм Алюминия. Самое сложное что есть — это комбинация защиты из водорода, и чуть более тяжелых элементов (т.н. Graded-Z) — но это не сильно лучше чисто «водородной» защиты. В целом, космическую радиацию можно ослабить примерно в 10 раз, и на этом все.
Мне для космоса и нужна защита компонентов изделия. Потому и спросит, зачем тантал? Может, он уникальный в чём-то в качестве защиты.
В приведенной вами цитате первый абзац полностью неверен, а второй говорит не про дозу, а про ТЗЧ. Про ТЗЧ я то же самое сказал выше: от танталового корпуса или любого другого экрана из плотного материала, уменьшающего дозу, ситуация по ТЗЧ становится хуже (причем намного).
В приведенной вами цитате первый абзац полностью неверен,
А, ну-ну. Анекдот про филина и мышей помните? Стратегия мне не интересна. Мне реальное решение интересно. А реальное решение именно такое, как и описано в той статье. И проблемы те же, что там и описаны. Запустить десять метров свинца на стенке спутника мы не можем — ЦСКБ «Прогресс» не позволяет. С чего бы это, как думаете? :)
При использовании электронного устройства на орбите МЕО, где преобладающими частицами являются протоны, корпуса с интегрированной радиационной защитой (ИРЗ) позволяют усилить защиту кристалла от жесткого космического излучения до 4х раз.
Так же использование корпусов с РЗЭ позволяет обеспечить защиту от рентгеновского излучения в пределах 1,3÷1,5 раз.
Применение комбинаций технических решений с использованием радиационно-защищающих корпусов позволяет разработчикам интегральных микросхем с большей долей вероятности достичь необходимых результатов. Объединение в одной гетерогенной структуре веществ с малым и большим Z создает условия для многократного отражения частиц и – γ-квантов от поверхностей контакта слоев этих веществ и возвращение фотонов в слои, заполненные высокопоглащающим веществом, не выходя за внешние пределы структуры. Благодаря своему специфичному строению, такая структура является своеобразной ловушкой для фотонов.
Применить то же самое в большом масштабе, сделав свинцовый или вольфрамовый корпус целому блоку или всему спутнику, нельзя, потому что получится слишком тяжело, чтобы это куда-то долетело, но локально такие экраны для снижения дозовой нагрузки вполне себе используются — там, где прямо очень нужно поставить что-то, не укладывающееся в требования по дозе и при этом не боящееся ТЗЧ.
Вполне реальное решение:
Всё это мне известно.
но локально такие экраны для снижения дозовой нагрузки вполне себе используются
Проблема в том, что обычно, электроника боится и того и другого.
Проблема в том, что обычно, электроника боится и того и другого.А никто и не говорил, что такой экран — это универсальное решение. И даже что это хорошее решение. Я как разработчик радстойких микросхем вообще за то, чтобы мне заказывали побольше новых дизайнов вместо того, чтобы вот такими костылями повышать стойкость плохо подходящих для космоса микросхем.
Но такое решение может быть подходящим в некоторых случаях. Допустим (сферически в вакууме), что у вас есть микросхема на КНИ, но с плохой дозовой стойкостью.
Возможно еще используются специальные IP ядра, проверяющие конфигурационную память на SEE. У Ксайлинксов есть неплохое описание в ихнем контроллере.
https://www.xilinx.com/products/intellectual-property/sem.html
Вручную реально сделать или небольшие по размерам, но критичные для производительности блоки (например, делитель и умножитель), или блоки из повторяющихся элементов (регистровый файл и кэш-память).
Код на верилоге превращается в топологию с помощью логического синтеза и последующего place & route + дополнительные шаги (static timing analysis, power grid synthesis, clock routing). Вы можете пролистать вот эту презентацию или пройти онлайн-курс с обзором RTL2GDSII.
Какие перспективы трудоустройства у школьников, которые заинтересуются проектированием процессоров и поступят на соответствующие факультеты, с учётом того, что с появлением 5G грядёт массовый переход на тонкие клиенты и облачные вычисления, а значит большинство современных семейств мобильных и десктопных процессоров исчезнут и на рынке останутся только топовые процессоры от производителей уровня IBM?
www.mips.com/press/new-mips-i7200-processor-core-delivers-unmatched-performance-and-efficiency-for-advanced-lte5g-communications-and-networking-ic-designs
New MIPS I7200 Processor Core Delivers Unmatched Performance and Efficiency For Advanced LTE/5G Communications And Networking IC Designs
Santa Clara, Calif. – May 1st, 2018 – MIPS, provider of the widely used MIPS processor architecture and IP cores for licensing, today announced the I7200 multi-threaded multi-core processor, a new high performance licensable IP core in their midrange 32-bit product lineup. Class-leading efficiency is essential to power sensitive applications such as the high bandwidth modem subsystems in Advanced LTE Pro and upcoming 5G smartphone SoCs, as well as networking ICs, and other applications. The I7200 delivers 50% higher performance in less than 20% area increase than the previous generation from MIPS.
с появлением 5G грядёт массовый переход на тонкие клиенты и облачные вычисления
С 90-х это слышу.
А ось, интересно, этот вот µITRON, умеет в виртуальную память?
Например, The New Horizons передавал фотографии Плутона, сделанные во время пролета (который занял несколько часов), в течение нескольких месяцев — и это были уже обработанные и сжатые фотографии.
В целом ощущение, что японцы как купили на волне хайпа эту корку, так и пихают её без разбора везде уже почти 20 лет :)
Еще некоторая оптимизация при load-store операциях из регистров общего назначения в память (через кэш или некэшируемым образом). Целый восьмибайтный кусок за один раз. Хотя на 32-битном процессоре это можно делать как load или store пары 32-битных регистров, но тем не менее.
ну 64-битность даёт только чуть более лёгкую работу с int64_t, и ВСЁи добавляет работы с виртуальной памятью, которая даже в mips32 сделана хм… неудобно
Я знаю только одно существенное — это двойной TLB entry, с двумя трансляциями для смежных страниц. У этого неудобства исторические причины, оно практически случайно просочилось в стандарт MIPS32 из-за некоей хохмы начала 1990-х, в которую были замешаны Silicon Graphics и Микрософт, которые портировали Windows NT на MIPS.
Другие нетривиальные вещи — например прерывание по ненахождению трансляции в TLB и подгрузка его из таблицы в памяти, а также более хитрый случай с подгрузкой трансляции по второму разу из таблицы в виртуальной памяти — это не bug, а feature, для эффективности процессора.
Кроме этого, в более новых MIPS, например в MIPS P5600 внутри российского процессора Байкал BE T1000, есть Hardware Page Table Walker, который автоматизирует этот механизм.
-двойной вызов TLB Refill после промаха по таблицам страниц;
-сегменты памяти — тут у нас кэш, тут не кэш, здесь через MMU, а тут сразу физика. Зачем?
-2 регистра Context и EntryHi — в обоих лежат адреса исключения TLB. Есть еще BadVaddr примерно с тем же содержимым. Это просто странно, зачем плодить столько сущностей.
Может есть какие-то трюки, что это все не вызывало такое отторжение, но мне они неизвестны.
off/ из трех процов, что у меня есть(комдив64\mips42kc\cortex-a8) — проще всего было отладить arm
Это исторический инциндент. Трюк с двойными записями родился для экономии на компараторах. Согласно Майку Гупте, одного из дизайнеров MIPS R4000 (1991):
* Процессор с 64 одинарными записями TLB не влазил в floorplan
* Влез дизайн с 24 двойными записями (48 трансляций)
* Решение стало стандартным в начале 1990-х по требованию Микрософта
* Микрософт и MIPS были членами комитета Advanced Computing Environment (ACE)
* Микрософт портировал на MIPS Windows NT
* В 1999 году трюк с двойными записями просочился в стандарт MIPS32
www.panchul.com/dropbox/2013_11_23/imgtec_mips_microchip_masters_russia_2013.pdf
*** -двойной вызов TLB Refill после промаха по таблицам страниц; ***
Это имеет некую логику, описанную в See MIPS Run Linux.
*** -сегменты памяти — тут у нас кэш, тут не кэш, здесь через MMU, а тут сразу физика. Зачем? ***
А разве у ARM нет регионов памяти с разными атрибутами кэширования итд?
*** -2 регистра Context и EntryHi — в обоих лежат адреса исключения TLB. Есть еще BadVaddr примерно с тем же содержимым. Это просто странно, зачем плодить столько сущностей. ***
Логику этого я забыл, надо вспомнить по своим старым презентациям. Это есть в See MIPS Run Linux.
Но вообще спасибо за feedback.
А разве у ARM нет регионов памяти с разными атрибутами кэширования итд?
Насколько я знаю, у «больших» армов с MMU, типа armv7-a (cortex-a*) — нет, и все атрибуты задаются именно MMU. А вот у тех что без, «для контроллеров» — есть, например armv7-m (cortex-m*).
Это исторический инциндент.Оправдалась ли экономия? Может быть стоило чуть ужаться в другом месте и сделать MMU на 64 entry?
А разве у ARM нет регионов памяти с разными атрибутами кэширования итд?Есть, они прописаны в атрибутах страниц\секций. Как собственно и у MIPS в регистре EntryLo в поле С. Тут я про сегменты KSEG0\1\2.
See MIPS Run Linux.Книга хорошая, подсматриваю туда.
Собственно, я не джедай по mips, и наверное просто не умею его готовить.
Экономия конечно же не оправдалась, это было принятое в последний момент решение для одного чипа, чтобы его подогнать под бюджет площади, но изменение этого потом не делалось, так как меняло софтверную совместимость. Впрочем, возможно это и стоит сделать (у нас в MIPS сделали довольно сильные изменения при переходе от Revision 5 к Revision 6.
Как устроен компьютер внутри Хаябусы-2, которая сбросила бомбу на Рюгу. И фотографии его разработчиков