Введение
8-битный микропроцессор впервые поступил в продажу в 1975 году.
Fairchild F8 – 8-битная микропроцессорная система от Fairchild Semiconductor, анонсированная в 1974 году и поступившая в продажу в 1975 году. Оригинальное семейство процессоров включало четыре основных интегральных схемы (ИС) с 40 выводами: процессор 3850, являвшийся арифметико-логическим устройством, блок хранения программ 3851, содержащий 1 программу ПЗУ и осуществлявший декодирование инструкций, а также опциональные интерфейсы динамической памяти 3852 (DMI) или статической памяти 3853 (SMI) для управления дополнительной оперативной памятью или ПЗУ, хранящими пользовательские программы или данные. 3854 DMA представляла собой еще одну опциональную систему, добавлявшую прямой доступ к памяти в оперативную память, управляемую 3852. Минимальная система, содержащая 3850 и 3851, также включала четыре 8-битных порта данных, 64 байта оперативной памяти и пользовательскую программу на ПЗУ. Это позволяло создавать приложения для микроконтроллеров, используя всего два чипа. Для достижения того же результата на более традиционных решениях, таких как Intel 8080 или Motorola 6800, обычно требовалось семь. Кроме того, любое приложение, не соответствующее простым требованиям, как правило, нуждалось как минимум в трех 40-выводных микросхемах: процессоре, блоке хранения программ и либо 3852, либо 3853, вместе с дополнительными микросхемами памяти. В результате этих компромиссов серия F8 получила широкое распространение на рынке микроконтроллеров, но реже использовалась в качестве процессора в компьютерах общего назначения. Сегодня она относительно малоизвестна, поскольку области ее применения во встроенных системах редко демонстрируют наличие F8 внутри. В 1977 году Mostek выпустила значительно улучшенную одночиповую реализацию – Mostek 3870. Она объединила 3850 и 3851 и уменьшила количество напряжений питания. Что более важно, Mostek переорганизовала производственную линию таким образом, что пользовательский код в ПЗУ добавлялся на последнем этапе, что значительно снизило стоимость настройки конструкции для использования в контроллерах. 3870 заменила оригинальные версии Fairchild и производилась несколькими компаниями в США и Европе. В Европе STMicroelectronics продолжала производить варианты этой разработки вплоть до середины 1990-х годов.
Разработка
История F8 начинается с проекта разработки микропроцессора на предприятии Olympia Werke, дочерней компании AEG. Компания Olympia, наиболее известная как производитель пишущих машинок, также имела богатую историю в производстве механических калькуляторов, рынок которых стремительно переходил на электронные аналоги. Olympia разрабатывала процессорную систему CP3 F, лицензию на которую приобрела компания General Instrument (GI). В рамках лицензионного соглашения GI направила Дэвида Чанга, руководителя отдела процессоров GI, в Olympia для взаимодействия с их конструкторской командой. Вскоре после возвращения в США Чунг покинул GI и перешел в Fairchild, где стал ведущим разработчиком F8 и был указан в качестве основного изобретателя в патенте. Компания Fairchild представила F8 в сентябре 1974 года, что почти немедленно привело к иску со стороны GI о неправомерном использовании коммерческой тайны. По мере затягивания судебного процесса, в феврале 1976 года Fairchild объявила о соглашении о перекрестном лицензировании с Olympia на F8, что дало им законный доступ к оригинальной конструкции CP3F, а иск GI потерял свою силу, по крайней мере, в технических аспектах. Информации о CP3F доступно очень мало, однако многие отраслевые эксперты полагают, что CP3F является основой для разработки F8. Судебное разбирательство продолжалось в 1980-е годы, но поскольку существенных технических вопросов не возникало, оно не повлияло на продажи F8.
Производство
Первые инженерные образцы F8 были отправлены в апреле 1975 года, а массовые поставки начались осенью того же года. В то время электронная промышленность требовала наличия второго источника поставок в качестве гарантии того, что разработка не будет прекращена в случае банкротства компании-разработчика или потери ею интереса к проекту. В июне 1975 года Fairchild объявила о таком соглашении с Mostek. Соглашение позволяло обеим компаниям продолжать независимую разработку. F8 был представлен по цене за штуку в , что делало его дешевле, чем современные разработки, такие как Intel 8080 или Motorola 6800, которые стоили как минимум вдвое дороже. Кроме того, минимальная система включала четыре 8-битных порта ввода/вывода, небольшой объем оперативной памяти и 1 КБ ПЗУ. Вместе они позволяли создавать простые приложения, используя всего две интегральные схемы. В отличие от них, для реализации тех же функций в конструкциях, таких как 8080 и 6800, требовались отдельные специализированные микросхемы – обычно семь, поэтому систему на базе F8 можно было реализовать значительно дешевле. Однако это частично компенсировалось тем, что программа ПЗУ в блоке питания (PSU) записывалась на чипы на ранней стадии производства, что требовало отдельных производственных линий для каждого заказчика. В результате стоимость подготовки производства составляла порядка p=$. Хотя F8 позиционировался как микропроцессор общего назначения, исторически он является первым 8-битным микроконтроллером, специально разработанным для этой цели – конструкцией, реализующей полноценную компьютерную систему на небольшом количестве интегральных схем. Его выпуск оказал значительное влияние на рынок и привел к появлению специализированных микроконтроллеров от большинства других производителей, в том числе Intel MCS 48, Motorola MC6801 и MOS 6510, которые объединяли различные системы, ранее требовавшие реализации схемотехническим инженером на печатной плате. Однако эти примеры пошли еще дальше и реализовали целую систему на одной интегральной схеме. Благодаря неуклонному прогрессу, описанному законом Мура, вскоре 3850 и 3851 также удалось реализовать в одной микросхеме, которая была выпущена под названием 3859. Линейка также была обновлена с добавлением 3856 – версии 3851 с 2 КБ ПЗУ, и 3857 – версии 3856 с дополнительными адресными линиями для доступа к внешней ПЗУ в дополнение к 2 КБ внутренней памяти, что во многих случаях устраняло необходимость в отдельном 3853.
3870 - - - - - -
Примерно в то же время, когда был выпущен 3859, Mostek представила свою собственную версию одночипового F8, Mostek 3870. В то время как 3859 по сути являлся просто одночиповым 3850/3851, 3870 был значительным шагом вперёд; он работал на частоте до 4 МГц, что вдвое превышало частоту 3859, и требовал только одного источника питания +5 В вместо +5 и +12 В. Гораздо более важным изменением было то, что код пользовательской ПЗУ теперь маскировался на кристалле как последний этап производства, поэтому все процессоры были идентичны до конца производственной линии. В результате стоимость изготовления маски составляла порядка , что значительно удешевило реализацию. 3870 был настолько продвинутым по сравнению с оригинальным 3859, что Fairchild прекратила его производство и лицензировала 3870 для собственных продаж. Со временем 3870 подвергся множеству модификаций. Одной из наиболее важных была добавка разъёма на корпусе чипа, позволяющего подключать ПЗУ (EPROM) без необходимости в дополнительной вспомогательной схеме. Это устранило необходимость во встроенной ПЗУ и позволило клиентам производить собственные ПЗУ, избежав затрат на маскировку. Вариации также включали версии с большим объёмом ПЗУ или ОЗУ, а также другие незначительные изменения. Параллельно, лицензионное соглашение с Olympia привело к организации производства в Германии компанией Telefunken, ещё одним из многочисленных брендов AEG. В 1979 году Mostek объединилась с United Technologies, которая довела компанию до банкротства и впоследствии продала её Thomson Semiconducteurs в 1985 году. В 1987 году Thomson объединилась с SGS, образовав современную STMicroelectronics, которая продолжала производить 3870 вплоть до 1990-х годов. Fairchild также продолжала выпускать версии 3870 в 1980-х годах, пока не была приобретена National Semiconductor. Хотя сегодня он малоизвестен, "в 1977 году F8 был ведущим микропроцессором в мире по объёму продаж". Конструкция остаётся в некоторой степени малоизученной, поскольку большинство применений были в качестве встроенных микроконтроллеров, где чип внутри устройства редко идентифицируется, в отличие от продуктов, таких как домашние компьютеры, где процессор внутри более известен. Среди наиболее известных применений — Fairchild Channel F в 1976 году и компьютерная система VideoBrain в 1977 году. Оба были вытеснены с рынка появлением Atari 2600 в 1977 году. Fairchild также выпустила ряд инженерных и любительских плат на базе F8. Kit 1 представлял собой одну печатную плату с процессором 3850, блоком питания 3851 и SMI 3853. Блок питания содержал программу под названием "Fairbug", к которой можно было получить доступ через терминал, подключённый к процессору через 8-битный порт ввода-вывода. Производство F8 было прекращено в середине 1980-х годов, последняя закупка была осуществлена компанией Innovative Data Technology из Сан-Диего, Калифорния, для использования в их флагманском 1/2" 9-трековом ленточном накопителе серии TD1050, предназначенном для обмена данными по счетам операторами связи.
Семейство чипов
Типичная компьютерная система обычно требует центрального процессора (ЦП), некоторой формы ввода-вывода для связи с внешним миром и памяти, хранящей программный код и пользовательские данные. Как правило, ввод-вывод обрабатывался специализированными микросхемами, а доступ к памяти осуществлялся через адресную шину, выбирающую ячейки во внешней памяти, а затем возвращающую эти данные в ЦП через шину данных. В зависимости от конструкции, ввод-вывод мог взаимодействовать с процессором через выделенную шину, либо, альтернативно, путем размещения данных в памяти и последующего чтения их ЦП. Перемещение данных между всеми этими различными блоками требовало дополнительной связующей схемы. F8 был разработан для разделения этих функций, чтобы обеспечить возможность минималистичной реализации. Теоретически, все эти функции можно было бы разместить на одной микросхеме, но в эпоху 40-выводных микросхем просто не хватало выводов для подключения всех этих функций. В частности, реализация 8-битной шины данных, 16-битной адресной шины и еще одной 8-битной шины ввода-вывода оставляла бы всего 8 дополнительных выводов для всех остальных функций, от питания и заземления до различных сигналов тактирования и линий управления. Другие конструкции иногда мультиплексировали адресные и шины данных, чтобы одни и те же выводы можно было использовать для нескольких функций, но это требовало большего количества циклов для завершения операции. F8 решил эту проблему, интернализировав некоторые функции, например, добавив небольшой объем оперативной памяти к ядру ЦП, а другие – вынеся за пределы ЦП. Лучшим примером этого является минимальная система, состоящая из ЦП 3850 и блока питания (БП) 3851. В этом случае адресная шина не требуется; оперативная память содержится в 3850, а программная ПЗУ – в 3851. БП отвечает за отслеживание счетчика программ, извлечение инструкций из внутренней ПЗУ и передачу их в 3850 для обработки через выделенную 5-выводную инструкционную шину вместе с любыми связанными данными через отдельную 8-битную шину данных. Это освободило 11 выводов, которые в противном случае были бы использованы для дополнительных адресных линий, что, наряду с другими упрощениями и разделением обязанностей, позволило ЦП иметь две полноценные шины ввода-вывода. 3851 добавил еще два порта ввода-вывода, так что минимальная система имела в общей сложности четыре порта. С 1 КБ ПЗУ и 64 байтами оперативной памяти можно управлять только небольшими программами, но для многих систем, таких как кассовые аппараты, бензоколонки и аналогичные устройства, этого более чем достаточно. Если системе требуются большие ресурсы, можно использовать 3852 или 3853. Они взаимодействуют с БП и содержат дополнительную логику для управления связанной с ними памятью; например, 3852 имел полноценную адресную шину, способную получить доступ к 64 КБ оперативной памяти, и схемы, необходимые для обновления данных. В этих системах БП все еще требуется, а счетчик программ и другие указатели поддерживаются отдельно во всех этих микросхемах путем чтения одних и тех же линий управления. Основное различие между 3852 и 3853 заключалось в том, что первая включала схему динамического обновления оперативной памяти и 3-выводное соединение с контроллером прямого доступа к памяти (DMA) 3854, в то время как 3853 удалил их и добавил новый обработчик прерываний и таймер. Контроллер DMA 3854 был напрямую связан с контроллером оперативной памяти 3852 и не использовал 5-выводную управляющую шину, присутствующую на других микросхемах семейства. Он поддерживал свой собственный регистр адреса и отдельный счетчик байтов, которые вместе указывали на блок памяти, который нужно прочитать или записать.
FAIR-BUG
Fairchild предоставил комплекты разработки и оценки для F8, в состав которых входил PSU 3851A (блок питания/хранения программ), содержащий монитор в маске ROM, с вектором начала работы по адресу 0x8080. При включении питания управление передавалось в ROM. ROM-монитор в документации Fairchild назывался FAIR BUG. Основные команды FAIR BUG – это отдельные символы ASCII из набора {A, B, C, D, E, F, G, I, L, M, N, P, R, S, W}. Параметры команд, такие как номера регистров и адреса памяти, вводились сразу после идентификатора команды. Например, команда приводит к выводу содержимого 16 байтов памяти на телетайп. Команды FAIR BUG позволяют обращаться ко всем ячейкам памяти и всем регистрам. Программист может просматривать и изменять эти ячейки. FAIR BUG содержит пять подпрограмм, используемых для обработки команд: ввод 2 байтов ASCII; вывод 1 байта ASCII; вывод строки CR, LF, Null; вывод 1 байта ASCII; ввод 1 байта ASCII с параллельного устройства ввода. По сути, FAIR BUG – это подпрограмма управления с произвольным доступом ко всей памяти, как RAM, так и ROM, и ко всем регистрам, включая счетчик программ, счетчик данных и буфер. Программист может записывать в ячейки памяти любые из более чем 70 машинных инструкций или операндов. Затем программист может использовать команду G для загрузки определенного адреса в счетчик программ и выполнения программы по этому адресу. Целью разработки FAIR BUG в 1975 году было помочь инженерам ускорить процесс создания приложений для интегральных схем F8.