Ступень была уже летавшая. В последних запусках SpaceX перестала из спасать. Предыдущую разбомбили ВВС. Интересно как скоро ракетчикам начнут выписывать экологические штрафы за загрязнение мирового океана?
Всего-то два года прошло, но некоторые уже забыли, что ракеты запускают не ради красивых посадок первых ступеней. Тесла это вишенка на торте. План полёта во многом определялся требованиями Национального управления военно-космической разведки. И вторая ступень успешно их выполнила — несколько раз пересекла внутренний радиационный пояс, после чего запустила двигатель до полного расхода топлива. Проверены работа бортовой электроники и систем связи, способность ДУ к запуску после нескольких часов полёта, потери жидкого кислорода, защита от перегрева вращением ступени. FH доказал, что способен заменить Delta IV Heavy и Ariane 5 в запусках на ГСО. Это было главной задачей.
В Falcon User’s Guid указана максимальная нагрузка для стандартного адаптера 10,886 кг или 24,000 фунтов. Большая скорее всего потребует укрепления ступеней. Если верить SpaceeX Stats максимум на НОО был 9,600 кг и 6,761 ГПО. При таких весах им не зачем делать серийную ракету на 23 тонны нагрузки.
Spectre и без TLB прекрасно обходится. Вот рабочий пример. Как уже отмечали, 4Кб на байт выбрано, чтобы предвыборка не переходила границу страницы. В примере обходятся 512 байтами на каждый байт, а для обмана предвыборки кеш тестируют в псевдослучайном порядке
/* Time reads. Order is lightly mixed up to prevent stride prediction */
for (i = 0; i < 256; i++)
{
mix_i = ((i * 167) + 13) & 255;
addr = &array2[mix_i * 512];
time1 = __rdtscp(&junk); /* READ TIMER */
junk = *addr; /* MEMORY ACCESS TO TIME */
time2 = __rdtscp(&junk) - time1; /* READ TIMER & COMPUTE ELAPSED TIME */
if (time2 <= CACHE_HIT_THRESHOLD && mix_i != array1[tries % array1_size])
results[mix_i]++; /* cache hit - add +1 to score for this value */
}
В любом случае, нет оправдания почему не сделана хотя бы предварительная проверка прав в момент доступа к памяти и прекращение спекулятивного исполнения, если проверка не пройдена.
В некоторых случаях данные могут использоваться позже и есть смысл их загрузить заранее. Например запись в copy-on-write страницу вызовет исключение и последующее копирование в обработчике страничных ошибок. Я думаю, что Intel обнаружил небольшое увеличение производительности при таком спекулятивном кешировании.
Нет там никакой проблемы. malloc() давно портирован и не один раз. Многопоточность в Колибри похожа на Windows, все потоки одного процесса разделяют общее адресное пространство.
В ближайшие пару лет планируется 13 запусков. Контракты будут распределяться на конкурсной основе между ULA и Spacex. Два контракта на запуск спутников GPS Spacex уже получила.
Семь сотрудников, используя оборудование и ресурсы НАСА? Просто так, из личного интереса и без согласования с руководством? Это работа не на один день, вряд ли они занимались этим в выходные.
— Полет нормальный, давление в камерах сгорания устойчивое
— Алё, Кириллов! — голос генерал-полковника В.Л. Иванова…
Уже полминуты, как по небу летят обломки:
— Восемдесят. Полет нормальный.
— Кончай ты! Аварийный пуск!
— Девяносто. Траектория близка к расчетной.
— Алё! Пуск аварийный, кончайте отчет!
Остался вопрос — зачем буфер в 2 мегабайта, если 256 страниц по 4Кб занимают один мегабайт?