Вторая часть статьи, посвящённой созданию первого процессора с миллионом транзисторов. Ссылка на первую часть.   Даже при автоматизированной компоновке одна часть логики управления — контроллер шины, — начала отставать от графика. Чтобы контроллер не стал узким местом для всей конструкции, команда попробовала несколько новых методов. Процессоры RISC обычно предназначены для взаимодействия с быстрой системой SRAM, которая работает как внешний кэш и, в свою очередь, взаимодействует с основной памятью DRAM. Однако здесь планировалось предоставить пользователям возможность обойти SRAM и подключить процессор непосредственно к DRAM, что позволило бы использовать чип в недорогих системах, а также помогло бы в работе с большими структурами данных. С этой целью шина может конвейеризировать до трёх циклов, прежде чем получит первые данные обратно из DRAM, так что у данных есть время пройти через медленную память DRAM, не задерживая процессор. Шина также должна использовать режим статического столбца (static column), особенность новейших DRAM, которая позволяет последовательным адресам обращаться к одной и той же странице в памяти, сообщая системе через отдельный пин, что бит расположен на той же странице, что и предыдущий бит.  Обе эти особенности привели к неожиданным конструктивным сложностям, первая из которых заключалась в том, что логика управления должна была отслеживать различные комбинации невыполненных циклов шины. В то время как остальная часть чипа была уже сформирована, разработчики шины все ещё боролись с логической симуляцией. Не было времени даже на ручное проектирование схемы, за которым следовала автоматическая компоновка, а затем проверка схемы по компоновке. Один из проектировщиков услышал от друга из отдела САПР Intel об инструменте, который использует проект на уровне логического моделирования, оптимизирует схему и создаёт улучшенную компоновку. Инструмент сокращал время, которое было бы затрачено на создание схемы, а также на проверку ошибок в ней. Однако этот инструмент все ещё находился в стадии разработки, и хотя он тогда тестировался и отлаживался командой 486 (у которой до крайнего срока было на несколько месяцев больше, чем у команды N10), по-прежнему считалось, что он не готов к использованию. Дизайнер N10 получил доступ к мейнфрейму отдела САПР и скопировал программу. Это помогло, и узкое место в управлении шиной было устранено. Обычно такой подход не одобряется, но в данном случае это посчитали целесообразным. Разработчики N10 с самого начала были озабочены тем, как протестировать чип с миллионом транзисторов. Чтобы обеспечить адекватное тестирование чипа, в начале 1987 года, примерно на полпути к завершению проекта, в команду N10 перевели инженера по продукту Бет Шульц. Сначала она вместе с другими просто работала над схемами, знакомясь с функциями чипа. Позже она написала диагностические программы, а затем, вернувшись в отдел разработки продуктов, сопровождала внедрение i860 в производственный цикл Intel. Первая же попытка протестировать чип показала важность раннего участия тестировщика в проекте. В обычной ситуации в конструкторском отделе схемы нового чипа тестирует логический анализатор с интерфейсом персонального компьютера. Это происходит задолго до того, как в дело вступают более серьёзные тестировщики из отдела разработки продуктов. Тестировщик отдела дизайна, в свою очередь, отлаживает тестовые программы, выполняемые разработчиками продукта. На этот раз, поскольку инженер по продукту уже был хорошо знаком с чипом, тестировщики её отдела работали раньше тех, кто находился в конструкторском отделе. Присутствие инженера по продукту в команде также привлекло внимание других разработчиков к проблеме тестируемости, и вот как это отразилось на i860. Когда разработчики логики устанавливали число тактов шины, то консультировались с инженером по продукту, чтобы убедиться, что оно не превысит возможности тестера. Инженеры-технологи постоянно напоминали команде N10 о необходимости ограничить количество сигнальных контактов до 128: даже один сверх этого значения потребует миллионы долларов на новые тестирования. (У i860 120 сигнальных контактов, а также 48 контактов для питания и заземления.) Логика управления чипа была сформирована с помощью LSSD. Методика тестирования, впервые разработанная IBM Corp., посылает сигналы через специальные контакты для тестирования отдельных схем, а не последовательности команд. Однако LSSD не использовался для схемы канала данных, поскольку разработчики решили, что он будет занимать слишком много места, а также замедлять работу чипа. Вместо этого небольшое количество дополнительной логики позволяет двум 32-битным сегментам кэша инструкций тестировать друг друга. Функция граничного сканирования позволяет системным разработчикам проверять входные и выходные соединения микросхемы без выполнения инструкций. Подготовка к запуску i860 потребовала долгих переговоров между командой разработчиков и инженерами, отвечающими за надёжность. i860 использовал 64-битные инструкции, а инженеры по надёжности хотели как можно меньше соединений и считали, что 64 — слишком много. В итоге разработчики пошли на компромисс с 8-битным режимом, который должен был использоваться только для записи, но с этой функцией пользователи i860 могут загружать систему с 8-битного стираемого программируемого ПЗУ. Дизайнеры также тесно сотрудничали с группой, разработавшей производственный процесс 1 мкм, впервые использованный в компактной микросхеме 80386, появившейся в начале 1988 года.  Уильям Сиу, менеджер по разработке процессов на заводе Intel в Хиллсборо, рассказывал: «Этот процесс рассчитан на низкую паразитную ёмкость, что позволяет создавать схемы с высокой производительностью и меньшим энергопотреблением. Нам пришлось работать с дизайнерами, чтобы показать им наши ограничения». Наибольшее влияние на встроенные кэши оказали инженеры-технологи. Изначально инженеры думали, что не смогут разместить такой большой кэш, но их заверили, что всё получится. Пожалуй, самой уникальной архитектурной особенностью i860 является встроенный параллелизм. Два 32-разрядных сегмента кэша инструкций выдают две одновременные 32-разрядные инструкции: одну в ядро ​​RISC, другую в раздел с плавающей запятой. Ещё один шаг вперёд: некоторые инструкции с плавающей запятой одновременно вызывают сумматор и умножитель. В результате за один такт выполняются три операции. Архитектура увеличивает скорость чипа, но поскольку она усложняет синхронизацию, её реализация создаёт проблемы. Например, если две или три параллельные операции запрашивают одни и те же данные, они должны обслуживаться последовательно. В итоге с данной синхронизацией связаны многие ошибки, обнаруженные в конструкции чипа. Одну из самых больших проблем с синхронизацией создаёт логика, которая замораживает модуль, когда необходимые данные в текущий момент недоступны Первоначально разработчики думали, что такая ситуация будет редкой, но встроенный параллелизм вызывал её чаще, чем ожидалось. Логика заморозки росла и росла, пока не стала настолько неуклюжей, что разработчики решили полностью переделать её. Это было сложное решение — разработка чипа была наполовину завершена, и на одну доработку у четырёх инженеров ушло больше месяца. Когда количество транзисторов приблизилось к отметке в 1 миллион, инструменты САПР, которые так помогали, начали выходить из строя. Intel разработала свои собственные инструменты САПР, полагая, что они будут теснее связаны с ее технологическими процессами и технологиями проектирования и, следовательно, будут более эффективными. Но N10 шагнул далеко вперёд по сравнению с 80386, на тот момент самым большим микропроцессором Intel, и системы САПР никогда не применялись к столь серьёзным проектам. Параллелизм i860 привёл к огромному количеству возможных комбинаций (были протестированы десятки миллионов), его сложность действительно ошеломляет. Даже при работе на большом мейнфрейме схема симуляций тормозила. Инженеры запускали процесс на выходные и обнаруживали его незавершённым, когда приходили в понедельник. Ждать было слишком долго, поэтому они воспользовались своими инструментами САПР, чтобы изменить программу моделирования. Один инструмент, который проходит через схему для локализации коротких замыканий, работал несколько дней, а затем сдался.  Пришлось изменить алгоритм этой программы. Сначала команда планировала начертить всю компоновку чипа, чтобы облегчить отладку, но обнаружила, что на круглосуточную работу плоттеров уйдёт больше недели. Они сдались и вместо этого исследовали на рабочих станциях отдельные участки чипа. Но теперь мейнфрейм, на котором работали все эти инструменты, начал давать сбои. Инженеры настраивали свои будильники так, чтобы они звонили несколько раз в течение ночи, и входили в систему через свои домашние терминалы, чтобы перезапустить компьютер, который вышел из строя. Перед тем, как чип будет передан в производство, компьютер выполняет полную проверку чипа, сравнивая схемы с компоновкой. Для этого ему нужен список цепей, промежуточная версия схемы в виде буквенно-цифровых символов. Список цепей чаще всего создаётся всего за несколько дней до печати, когда дизайн является окончательным. Но зная, что команда 486 идёт по пятам и вскоре потребует ресурсы производственного отдела, команда N10 провела полную проверку микросхемы на два месяца раньше с незавершённым дизайном. Программное обеспечение списка соединений полностью провалилось; схема была слишком большой. Это казалось катастрофой, но за три дня один из инженеров нашёл способ обойти и эту проблему. После середины августа, когда чип был передан в отдел разработки продуктов для подготовки к производству, все, что могла сделать команда разработчиков, — это ждать, волноваться и корректировать свои тестовые программы в надежде, что первый выпуск в кремнии окажется работоспособным. А шесть недель спустя, когда прибыла первая партия, она была достаточной для тестирования, но недостаточной для упаковки. Обычно группы дизайнеров и разработчиков продукции ждут, пока пластины не пройдут производственный процесс, прежде чем тестировать их, но не в этот раз. Раджив Бхарадвадж, инженер-конструктор, прилетел в Орегон в понедельник, чтобы забрать первую партию, только что сошедшую с конвейера. К 9:30 вечера он вернулся в Санта-Клару, где вся команда разработчиков, а также инженеры по продуктам и специалисты по маркетингу ждали, пока будут запущены первые тесты. Они показали не более 10 МГц, что намного ниже целевого значения 33 МГц.  Казалось, это катастрофа, но после того, как инженеры потратили 20 минут в поисках узкого места в чипах, было замечено, что пин источника питания не подключен — чип питался только от тактового сигнала и систем ввода/вывода. Как только пин подключили, чип легко заработал на частоте 40 МГц. К 3 часам ночи через чип было пропущено около 8000 тестовых векторов — векторов, над созданием которых инженер по продукту работал шесть месяцев. Этого было достаточно, чтобы команда уверенно произнесла: «Работает!» Обозначение i860 было выбрано, чтобы показать, что новый чип имеет некоторое сходство с 80486 — поскольку чипы структурируют свои данные с одинаковым порядком байтов и имеют совместимые системы управления памятью, они могут работать вместе в системе и обмениваться данными. Intel ожидал, что процессор будет доступен по цене 750 долларов за версию с частотой 33 МГц и 1037 долларов за версию с частотой 40 МГц к четвертому кварталу года, и уже отправил образцы клиентам. Поскольку i860 имел ту же структуру хранения данных, что и 386, операционные системы для 386 можно легко адаптировать к новому производству. Intel объявила о совместных усилиях по разработке многопроцессорной версии Unix для i860 с AT&T Co. (Unix Software Operation, Морристаун, Нью-Джерси), Olivetti Research Center (Менло-Парк, Калифорния), Prime Computer (Commercial Systems Group, Natick, Массачусетс) и Convergent Technologies (Сан-Хосе, Калифорния, подразделение Unisys Corp.). Tektronix NC и Kontron Elektronik GmbH планировали производить отладчики (логические анализаторы) для чипа. Для разработчиков программного обеспечения Intel создала базовый набор инструментов (ассемблеры, симуляторы, отладчики и т.п.) и компиляторы Fortran и C. Кроме того, у Intel был Fortran vectorizer, инструмент, который автоматически реструктурирует стандартный код Fortran в векторные процессы с помощью технологии, ранее доступной только для суперкомпьютеров. IBM планировал сделать i860 доступным в качестве ускорителя для серии персональных компьютеров PS/2, что повысило бы их производительность почти до уровня суперкомпьютера. Kontron, SPEA Software AG и Number Nine Computer Corp. могли использовать i860 в графических платах для персональных компьютеров.  Intel считал, что её чип перешагнул через поколение 32-разрядных микропроцессоров. Также инженеры видели у i860 ещё одно преимущество: в то время как чипы с плавающей запятой, графические чипы и кэш-память должны быть добавлены к другим микропроцессорам для создания законченной системы, i860 полностью интегрирован и, следовательно, устранял накладные расходы на связь. Однако некоторые критики считали это недостатком, поскольку оно ограничивало возможности выбора для проектировщиков систем.  Первая статья Intel с описанием i860, написанная Лесли Коном и СайВай Фу — «Микропроцессор на 1 000 000 транзисторов» — была опубликована в 1989 г. в Сборнике технических статей Международной конференции по твердотельным схемам, февраль 1989 г., стр. 54-55. Преимущества вычислений с сокращённым набором команд (RISC) обсуждаются в книге Пола Уоллича «К более простым и быстрым компьютерам » (IEEE Spectrum, август 1985 г., стр. 38–45). На деле микропроцессор i860 (N10) не смог штурмовать рынок. Хотя он обрабатывал графику с впечатляющей скоростью и нашёл свою нишу в качестве графического ускорителя, его производительность в приложениях общего назначения разочаровывала. Intel прекратила выпуск чипа в середине 1990-х годов. Спасибо за внимание! Что ещё интересного есть в блоге Cloud4Y → Как открыть сейф с помощью ручки → Сделайте Linux похожим на Windows 95 → Как распечатать цветной механический телевизор на 3D-принтере → WD-40: средство, которое может почти всё → Взлёт и падение игрового чипа 6502 Подписывайтесь на наш Telegram-канал, чтобы не пропустить очередную статью. Пишем только по делу. А ещё напоминаем про второй сезон нашего сериала ITить-колотить. Его можно посмотреть на YouTube и ВКонтакте.   Корпоративный облачный провайдер