Перелом. Часть 3 - [46]
Причем то, что этот компьютер был собран на рассыпухе, давало и свои плюсы. Так, исследователи добавили блок аппаратного умножения-деления - до этого эти операции выполнялись подпрограммами, а сам процессор был настолько "старым", что даже не имел проверки опкодов, поэтому любые подпрограммы, что исследователи брали из уже напрограммированных библиотек, требовалось проверять на наличие операций умножения и деления и заменять их на вызовы подпрограмм. В новых-то процессорах, даже если какая-то операция не была реализована аппаратно, выдавалось прерывание, так что компьютер мог сэмулировать ее программным путем - собственно, подобным образом мы в дальнейшем и обеспечивали совместимость сверху-вниз - с выпуском новых команд в новых процессорах для старых процессоров писались подпрограммы эмуляции этих команд. Да, работало медленнее, но работало. Хотя такое требовалось и нечасто - как правило библиотеки и программы компилировались под конкретные процессоры и программная эмуляция выстреливала только в случаях, когда что-то упустят при конфигурировании библиотек конкретной машины.
Тем более что в первые годы типов машин было немного, и поддерживать старые процессоры можно было сравнительно легко, к тому же с появлением специализированных вычислителей компиляция все-равно шла под конкретные конфигурации аппаратуры - в первые годы у нас практически не было кода, позволявшего автоматически определить набор вычислителей и раскидать по ним куски вычислений - эта работа выполнялась программистом. Скажем, написана программа моделирования тепловых потоков конкретного двигателя. В ней есть циклы интенсивных вычислений. И в программе они написаны из расчета работы на обычном процессоре. А тут - получат новую ЭВМ с двумя конвейерными вычислителями - и программисты меняют код - вместо циклов вставляют куски пересылки данных в векторные регистры каждого из вычислителей, затем - заполнение их регистров и запуск вычислений конкретного куска. А после - вставляют команды опроса регистров статуса этих вычислителей - отлавливают окончание работы, и затем - отправку новых кусков данных. Позднее перешли на прерывания, чтобы не тратить время основного процессора - а это снова перепрограммирование, причем уже на асинхронку, что всегда сложнее, так как требует разрисовки и отслеживания графа состояний и переходов.
Но в любом случае переход на вычислители означает, что из цикла расчета по каждому элементу делают цикл расчета по группе элементов - в данном случае - по двум группам. Причем если количество элементов в массиве не кратно размеру векторных регистров вычислителя, то добавляют обработку и такой ситуации - либо неполным заполнением регистров, когда в них отправляется меньше элементов, либо дополнением массива данных до размера, кратного размеру векторов. А если вычислителей будет, скажем, три, то этот же цикл будет переписан - он будет разбивать массивы на тройные куски и отправлять их в те три вычислителя, которые имеются в наличии - снова перепрограммирование циклов. Присутствует некоторая морока, но зато оборудование используется наиболее полно и "прямо сейчас", а не "когда все будет идеально".
В дальнейшем у нас так и шло - при появлении новых видов оборудования программирование под него сначала шло в таком ручном режиме, но постепенно выявляли закономерности, которые и перекладывались в код, все больше автоматизирующий перепрограммирование одних и тех же программ. А через некоторое время появились вычислители, способные брать данные сразу из памяти и туда же их возвращать - и снова было перепрограммирование - теперь основной код задавал в регистрах только начальные адреса векторов - с данными и с маской условий, количество элементов, а также адрес, куда надо помещать результат - и вычислитель сам все забирал, вычислял, помещал в память и выдавал прерывание "все готово". Причем адреса надо было указывать физические, а не виртуальные - первые вычислители не работали с виртуальной памятью, соответственно, и операционке надо было следить, чтобы ненароком не отсвопить эти блоки из памяти на жесткий диск - а это снова дополнительное программирование - на этот раз - закрепление участков памяти. Но это было делом будущего.
Так вот - разработчикам надоело проверять библиотеки на наличие операций умножения-деления и они добавили новый блок на отдельной плате, врезались проводами в схему, а плата первый месяц вообще лежала сверху на бумажке - для изоляции от металлического каркаса корпуса. Потом привели в более приличный вид - просверлили отверстия, прикрутили плату внутри корпуса и наконец закрыли его крышкой.
А месяц держали потому, что дорабатывали счетчик команд. В этом процессоре наращивание счетчика до следующей команды, а также обработка переходов выполнялись на том же сумматоре, что и обычные вычисления. То есть если в опкоде первый бит был нулем - это означало короткую команду длиной два байта - значит, после ее выполнения надо будет нарастить счетчик команд на два, а если один-ноль - это была длинная команда, и наращивать требовалось на три байта. Само значение инкремента - два или три - определялось логической схемкой на три элемента - тут никакой сложности не было, но затем, после того как выполнится сама команда, схема управления переключала входные шины сумматора с блока регистров общего назначения на блок системных регистров, выдавала на шину значение из регистра счетчика команд и вычисленную константу, складывала их и результат помещала обратно в регистр счетчика команд.
Большинство нормальных попаданцев, оказавшись в сорок первом, стараются попасть к Сталину и помочь переломить ход войны. Вот только как к нему попасть? И надо ли вообще это делать…?
Большинство нормальных попаданцев, оказавшись в сорок первом, стараются попасть к Сталину и помочь переломить ход войны. Вот только как к нему попасть? И надо ли вообще это делать…?
Природа всегда сильнее человека, потому что легко обойдется без него. Чего не скажешь о людях, которые не способны и дня прожить без того, что дает природа. Но что будет, когда силам планеты, настоящим силам, а не нашим придумкам вроде денег и славы, надоест человеческая цивилизация? Смогут ли выжить те, кто искренне считал себя венцом творения? Где пройдет грань между человеком — частью этого мира и человеком — разрушителем? Рассказ «Восставшая природа» дает ответы на эти вопросы. А еще дает надежду на то, что природа все же мудра и милосердна.
Влад раз за разом попадает в свои прошлые воплощения, и находит связи, тянущиеся из прошлого в настоящее; пронзительную историю любви к одной и той же душе, меняющей тела по пути в будущее; параллельно контактирует со своим Наставником, приобщаясь к сакральным знаниям.
…Европа, 1936 год. «Над всей Испанией безоблачное небо», иностранные войска вступают на испанскую землю, эхо близкой войны докатывается даже до маленького французского города Авалан. Вот-вот разверзнется небо… Американский журналист Крис Грант по прозвищу Кейдж ищет тему для репортажа на земле Грааля и, сам того не ожидая, переступает границу, за которой — нелегкий выбор. Гауптштурмфюрер СС Харальд Пейпер свой выбор давно уже сделал и теперь по заданию Гиммлера становится подпольщиком. Пылает Рейхсканцелярия, фиолетовым огнем горит планета Аргентина, негромко звучит прощальное танго…
Они думали, что смогут противостоять американскому флоту хотя бы 1945 года… Хрена с два! Попытавшись изменить историю, соединение российского тихоокеанского флота, попавшее в 1945 год, огребло по полной программе, и даже ядерное оружие ему не помогло. Фрегат «Адмирал Головко» всемогущие американцы потопили, вообще стреляя наугад, а после применения ядерной боеголовки крейсер «Киров» куда-то оперативно пропал, бросив эсминец «Орлан» на съедение американской палубной авиации. У которой есть целая одна первая в мире управляемая бомба.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Настал День Испытаний. День, который наступает без предупреждения. День, когда все младшие и старшие школьники Академии Пил подвергаются интенсивным физическим и психологическим испытаниям, чтобы выявить, готовы ли они выпуститься и стать тайными агентами правительства. Аманда и ее бойфренд Эйб — лучшие ученики, и только что они выдержали тридцать шесть часов испытаний. Но они младшие школьники и не ждут выпуска. Это должно произойти в следующем году — они планируют вместе присоединиться к ЦРУ.Но когда объявляют выпускников, результаты шокируют.