Сколько банков памяти у Opportunity?

Судя по комментариям к этому ответу , сколько банков памяти имеет Opportunity? Меня особенно интересует флэш-память, но любая другая информация также приветствуется.

Согласно этому пресс-релизу JPL , исправление банка памяти 7 оставило Opportunity с 6 пригодными для использования банками.

20 марта команда получила подтверждение от Mars об успешном завершении переформатирования. Ранее в этом месяце марсоход перешел на обновленное программное обеспечение , которое позволит избежать использования одного из семи банков встроенной флэш-памяти. Некоторые из проблем с флэш-памятью, которые побудили команду перейти на режим работы без флэш-памяти в конце 2014 года, были прослежены до банка 7. Оставшиеся шесть банков обеспечивают больший объем энергонезависимой памяти, чем марсоход использовал все, кроме нескольких дней с тех пор. приземление на Марсе в январе 2004 года .

Но любому специалисту по информатике это кажется немного подозрительным:

  1. Компьютерщики начинают отсчет с 0, поэтому банк 7 фактически будет 8-м банком в диапазоне, оставляя по крайней мере еще 7 банков доступными.
  2. Компьютеры любят степени двойки и не любят простые числа. 7 слишком близко к 8, чтобы игнорировать.
  3. По данным НАСА , у марсохода 256 МБ. Это не делится на 7.
  4. Для тех, кто не привык считать от 0, банк 7 действительно будет 7-м банком, оставив 6 перед ним.

Вполне может быть, что они пропустили банк 0 по техническим причинам или что он ограничен каким-то конкретным использованием, поэтому они обычно не могут на него рассчитывать, но все это указывает на то, что кто-то из PR совершает понятную ошибку.

согласен - очень похоже на ошибку в отчете
Но также можно обеспечить декодирование максимум восьми банков памяти и установить только семь банков и оставить восьмой банк свободным. 256 МБ будет максимальной устанавливаемой флэш-памятью и 224 МБ установленной памяти. Если седьмой банк неисправен, останется шесть банков.
@Uwe: НАСА говорит, что у него установлено 256 МБ. Я внес большое обновление в свой ответ, прочитав обе ссылки в вопросе и поняв, что это все еще настоящая загадка.
@ Уве и Диего: обновил мой ответ материалами из ссылок, которые я нашел во время исследования, на случай, если кто-то заинтересован в более широкой картине аппаратного / программного обеспечения Opportunity.

Ответы (3)

Как показано на рисунке ниже, имеется 8 банков флэш-памяти, из которых 7 используются для хранения данных, а банк 0 используется для полетного программного обеспечения (FSW) и входа, спуска и посадки (EDL).

Файловая система флэш-памяти марсохода Opportunity

Источник: Р. Сосланд, М. Зайберт, Э. Фергюсон, Р. Стил и К. Зиттл, «Возвращение в путь: переформатирование флэш-памяти на борту марсохода Opportunity», Аэрокосмическая конференция IEEE, 2015 г., Big Sky, МТ, 2015. С. 1-12. doi: 10.1109/AERO.2015.7119257

Таким образом, все 8 банков представляют собой флэш-память, но банк 0 используется для редко меняющегося программного обеспечения, а банки с 1 по 7 используются для хранения часто меняющихся данных. Риск износа памяти для банка 0 близок к нулю. Аппаратное обеспечение для всех банков может быть одинаковым.

Гленн Ривз рассказывает об устранении неполадок с флэш-памятью и особо упоминает файловую систему флэш-памяти размером 224 МБ. При 7x32 МБ это действительно выглядит как 7 банков.

В более научной статье он подтверждает выделенные под файловую систему 224 МБ.

Я могу себе представить, что 8-й банк флешки содержит прошивку Spirit, а не файловую систему. В Spirit более 30 МБ кода, и его нужно где-то хранить. Альтернативным объяснением может быть то, что последние 32 МБ используются для выравнивания износа.

Ваша гипотеза выравнивания износа заключается в том, что каждый банк может иметь свой собственный уровень преобразования флэш-памяти, открывающий 32 МБ логических байтов из 32 + 4 МБ физических байтов? Если бы выравнивание производилось на уровне всего банка, можно было бы ожидать, что переназначение банка решило бы проблему проще, просто не отображая неисправный банк.
Но приятная находка, 7x32 МБ флэш-памяти, используемой для файловой системы + отдельные 32 МБ, используемые для прошивки, все прекрасно объясняет. Я догадался, что это будет менее вероятная конфигурация, потому что это сделает этот регион размером 32 МБ особенным и не сможет быть заменен все еще работающим банком. (Мы знаем, что есть 3 МБ EEPROM, поэтому код режима восстановления для обработки случая сбоя флэш-памяти программ может быть туда. Мой ответ предполагал, что вся прошивка, вероятно, поместится в эти 3 МБ, поэтому неудивительно, что я остался с загадками: П)
@PeterCordes: На самом деле предположение, я не могу найти информацию о фактическом отображении.
обновил свой ответ материалами из ссылок, которые я нашел во время исследования, на случай, если кто-то заинтересован в более широкой картине аппаратного / программного обеспечения Opportunity.

Это более широкий взгляд на компьютерное оборудование Opportunity и на то, как оно работает , поскольку я нашел кучу этих источников до того, как @wooooooooosh опубликовал правильный ответ. Жалко не выложить куда-нибудь.


В более ранней статье ( https://www.jpl.nasa.gov/news/news.php?feature=4406 ) также говорится 7:

Случаи, когда флэш-память Opportunity не принимала данные для хранения, произошли только в одном из семи банков микросхем флэш-памяти на борту .

Это согласуется с фразой « один из семи банков встроенной флэш-памяти » в цитируемой статье. К сожалению, оказывается, что это искажение фактов . Первый банк (банк 0) не является частью файловой системы 7x32 МБ, используемой для хранения научных данных, но он существует, и это также флэш-память NAND.

Вероятно, они думают об этом отдельно, потому что он содержит прошивку (~ 30 МБ): программный код, который работает на ЦП, и необходимые ему данные. Если оставить банк 0 доступным только для чтения (за исключением обновлений прошивки), это означает, что износ этих микросхем флэш-памяти из-за слишком большого количества циклов записи очень маловероятен. Плохие биты или другие сбои в банке 0 по другим причинам могут быть устранены путем загрузки из другого банка, если система может загружаться достаточно далеко, чтобы ее можно было перепрограммировать удаленно и обновить загрузчик.

Флэш-память NAND может считываться только большими блоками (например, 512 или 4096 байт). Я не знаю размер страницы флэш-памяти, используемой в Spirit/Opportunity, но, согласно одному источнику, они используют флэш-чипы производства AMD.

HW Spirit похож, но не идентичен Opportunity. Мне удалось откопать эти подробности об их аппаратном обеспечении, большая часть из которых непротиворечива :

  • EETimes: Неразбериха с флэш-памятью наносит вред марсоходу Spirit, заявляет НАСА :

    Два марсохода состоят из одноплатного компьютера под названием RAD6000, который, как сообщается, построен компанией BAE Systems в Манассасе, штат Вирджиния. Микропроцессор в системе является старым, 25-МГц процессором, основанным на семействе PowerPC корпорации IBM. Это радиационно-стойкое устройство.

    RAD6000 не использует жесткий диск для хранения. Вместо этого данные хранятся в 128-мегабайтной оперативной памяти, хотя неясно, какой поставщик поставляет эти части. Компьютер работает под управлением операционной системы реального времени от Wind River Systems Inc.

    [... также специализированный кремний Intersil и Xilinx FPGA в контроллерах двигателей и т. д.]

  • ExtremeTech: идеальный удаленный администратор: НАСА переформатирует изворотливую флэш-память Opportunity с расстояния 125 миллионов миль

    И Opportunity, и Spirit оснащены радиационно-стойким компьютером BAE RAD6000 с тактовой частотой 20 МГц, 128 МБ ОЗУ, 3 МБ EEPROM (прошивка) и 256 МБ флэш-памяти NAND . Операционная система (VxWorks) и важные подпрограммы хранятся в энергонезависимой EEPROM , в то время как флэш-память используется для хранения менее важных данных — в основном захваченных изображений и других научных данных — пока они ожидают загрузки в штаб-квартиру НАСА через Mars Global. Орбитальный аппарат Surveyor или наземная сеть дальнего космоса. Между прочим, Curiosity имеет практически идентичную настройку, но использует более быстрый процессор (132 МГц) и гораздо больше оперативной памяти и флэш-памяти. Curiosity также имеет идентичный резервный отказоустойчивый компьютер, который можно включить в случае возникновения неисправности — у более ранних марсоходов был только один компьютер.

    Подтверждает наличие NAND-flash. И что ОС — это VxWorks от Wind River .

    (Другой источник сообщил, что у Spirit нет EEPROM.) В статье есть изображение одноплатного компьютера BAE, похожего на тот, что есть в Opportunity.

  • Tom's IT Pro: NASA переформатировало SSD... на Марсе!

    ...и виновником, скорее всего, являются мертвые ячейки флэш-памяти NAND ...

    Еще одно подтверждение использования всей флэш-памяти NAND, в отличие от флэш-памяти NOR с байтовой адресацией, которая позволяет выполнять из флэш-памяти. Итак, мы знаем, что он должен копировать код из NAND в RAM при загрузке.

    Opportunity содержит 8 банков памяти по 4 модуля в каждом банке и по 4 флэш-чипа в каждом модуле, всего 256 МБ памяти производства AMD . Ровер также содержит 128 МБ ОЗУ, 3 МБ EEPROM и работает на процессоре с частотой 20 МГц.

  • ITworld: день, когда программная ошибка чуть не убила марсоход Spirit

    Spirit запускал какое-то взломанное программное обеспечение, которое отражало файловую систему DOS (я полагаю, FAT16?) в ОЗУ, которое давало сбой, когда FS заполнялась до размера, превышающего объем ОЗУ.

    недостаток дизайна библиотеки DOS, ошибка в некоторых сторонних программах и несколько ошибок конфигурации

    Ой. Предположительно, Opportunity также использует FAT16 в качестве файловой системы флэш-памяти.


Процессор:

Процессоры RAD6000 имеют 8 КБ унифицированного кэша L1. PowerPC 601, на котором он основан, также использует унифицированный кэш, а не разделенный кэш инструкций/данных, как большинство конструкций ЦП.


Некоторые предыдущие догадки были бы маловероятными или невозможными конструкциями :

Теперь мы знаем, что банк 0 особенный.

Прежде чем мы узнали об этом, было предположение, что он использовался в качестве паритета для других 7 банков. Это был бы маловероятный дизайн: он получил бы в 7 раз больше операций записи, чем другие банки. (Распределенная четность в стиле RAID-5 теоретически возможна для распределения этого износа, но с учетом того, что блоки стирания флэш-памяти намного больше, чем блоки записи, на самом деле это не так. Например, блок стирания 256 КБ против блока записи 4 КБ. И, кроме того, это было бы одни и те же ячейки каждый раз получают дополнительные записи в каждой полосе.)

Я предположил, что, возможно, 8-й банк был оперативной памятью, и он находился на той же шине, что и флэш-память. Но это неправдоподобно для NAND-flash. Это не байтовая адресация; читается только целыми страницами через микросхему контроллера флэш-памяти, которая обрабатывает коды исправления ошибок с точностью до страницы. Подключать его к тем же адресным линиям, что и системную оперативную память, не имеет смысла.

Выполнение из флэш-памяти, также известное как выполнение на месте , выполняется только с флэш-памятью NOR, а не с NAND . Таким образом, ровер должен копировать копию + данные, которые ему нужны для любой задачи, которую он выполняет (например, вывод на орбиту, вход или перемещение по земле) из банка флэш-памяти 0 в ОЗУ. Предположительно, «режим без флэш-памяти» просто означал отсутствие записи данных во флэш-память, а не избегание чтения банка 0.

Флэш-память NAND может быть стерта только большими блоками , например, 256 КБ, и может быть записана только страницами (например, 4 КБ за один раз).

Сама ОС (VxWorks, встроенная операционная система реального времени), вероятно, запускается непосредственно из 3-мегабайтной EEPROM даже при нормальной работе. Это считается частью прошивки, даже если она хранится отдельно от кода и данных в банке флэш-памяти 0. Код может запускаться непосредственно из EEPROM; это байтовая адресация, как RAM. Вероятно, это включает в себя функции времени загрузки, которые загружают флэш-память в ОЗУ.

Я не знаю, изменяли ли когда-либо обновления с Земли содержимое EEPROM, но это правдоподобно, потому что EEPROM = электрически стираемое программируемое ПЗУ . Но это рискованно: любой сбой или повреждение могут вывести ровер из строя, точно так же, как обновление BIOS на материнской плате предупреждает вас не выключать питание и убедиться, что питание стабильно. Тем не менее, загрузка нового изображения в оперативную память марсохода, а затем его контрольная сумма сделают обновление довольно безопасным и не зависящим ни от чего внешнего после его запуска. Они, вероятно, будут делать это только в случае необходимости решить проблему, которую они не могут решить другим способом.

По-видимому, у Spirit нет отдельной EEPROM, она есть только у Opportunity. Итак, IDK, как загружается Spirit. Должно быть что- то , что позволит Spirit загрузиться, если только контроллер NAND-памяти автоматически не копирует часть флэш-памяти в ОЗУ или не поддерживает чтение из флэш-памяти с отображением памяти.


Больше ссылок

  • Информационная страница марсохода НАСА об их авионике , связанная с вопросом, гласит:

Встроенная память включает 128 мегабайт оперативной памяти, дополненной 256 мегабайтами флэш-памяти и меньшими объемами другой энергонезависимой памяти, что позволяет системе сохранять данные даже без питания.

Цитата из Википедии : «128 МБ DRAM, 3 МБ EEPROM и 256 МБ флэш-памяти». DRAM больше, чем 1/8 от 256 МБ, это 4/8.
Несколько вещей, которые следует иметь в виду: этот маленький парень был выпущен в 2003 году, не позднее, чем в конце 90-го технического уровня. Кроме того, флэш-память специально используется для хранения; он может выполнять все свои обязанности с отключенной вспышкой (как это было в течение нескольких месяцев), он просто должен немедленно передавать данные на землю.
Просто предположение, но они, возможно, достигли некоторого предела своей исходной конфигурации (например, пространства, мощности), что заставило их использовать меньшее количество установленных чипов и/или размер некоторых отдельных чипов. Или, может быть, все чипы от разных производителей из соображений избыточности, и некоторые производители не предложили ту емкость, которую они хотели.
@Rikki-Tikki-Tavi: ничто из этого не объясняет 256 МБ флэш-памяти против 32 МБ на банк. 7 банков по 32 МБ было бы легко объяснить, как и первая половина моего ответа.
@DiegoSánchez: Мы точно знаем, что вся встроенная флэш-память была отключена? Мы знаем, что 7 банков флэш-памяти для хранения данных были отключены, но возможно ли, что недостающие 32 МБ флэш-памяти подключены каким-то другим способом? Не уверен, почему вы упоминаете технический уровень конца 90-х; Я не думаю, что что-то в этом ответе несовместимо с этим. (Я упомянул вспышку с тремя ячейками, но я не предполагал, что это правдоподобно; я думаю, вы избегали бы ее даже в 2018 году, когда она существует, из-за предположительно более низкой устойчивости к радиации и другим источникам шума.)
ЦП RAD6000 является производным от PowerPC 601. Этот ЦП имеет архитектуру фон Неймана и 32-битный адрес физической памяти для до 4 ГБ памяти. Нет проблем с адресацией 128 МБ DRAM, 3 МБ EEPROM и 256 МБ флэш-памяти. Все это адресуется с 29 бит до 512 МБ. 3 из 32-битной адресной шины остаются неиспользованными.
@PeterCordes Технический уровень был упомянут просто как нечто, о чем следует помнить, поскольку теперь мы твердо находимся в лагере спекуляций.
Статья о восьми банках памяти, а также об оставшихся шести после выявления неисправности в банке 7 .
Может быть, число 0 для четности? Опять домыслы.
@Rikki-Tikki-Tavi: Я думаю, что с ответом MSalters, подтверждающим, что флэш-память FS имеет размер 7x32 МБ, мы можем предположить, что банк 0 - это ОЗУ или что он содержит прошивку.