Вы находитесь на странице: 1из 5

Êîìïîíåíòû è òåõíîëîãèè, ¹ 1’2004 Êîìïîíåíòû

Продолжение. Начало в № 9'2003

Ñòåêîâûå ïðîöåññîðû,
èëè Íîâîå — ýòî õîðîøî çàáûòîå íîâîå

Èîñèô Êàðøåíáîéì Ïðèìåíåíèå ñòåêîâûõ ïðîöåññîðîâ рост, так как из сектора ПК в потребительский сек-
тор перемещаются такие приложения, которые тре-
iosifk@narod.ru Очень часто в телеконференциях задается один буют большой производительности (например,
и тот же вопрос: «Надо бы что-то сделать на микро- трехмерные игры). В случае использования ПК
процессоре, какой посоветуете взять?» Причем по- только для игр они оказываются слишком дороги-
ловина отвечающих предлагает PIC от Microchip, ми и слишком «трудными» в использовании, чтобы
а другая половина советует применить AVR получить широкое применение.
от Atmel. И очень редко бывает, что кто-то задает Кроме игровых приставок появились и другие
вопрос: «А для решения какой именно задачи вы домашние приложения, например, интернет-сер-
хотите применить микропроцессор и какие крите- финг и цифровое телевидение. Идеальный вариант
рии выбора для вас будут определяющими?» состоит в том, чтобы иметь отдельный специаль-
Есть много критериев для выбора пути решения ный блок для каждого применения:
проекта, и трудно предложить какое-либо одно- • игровой пульт, чтобы запускать трехмерные иг-
значное решение. Все зависит от того, что и как ры;
нужно сделать, а главное, какую именно задачу бу- • блок для доступа в Интернет;
дет выполнять данное устройство. Причем, если • блок для цифрового телевидения;
речь идет не о разовой разработке-поделке, а о се- • блок, который выдает запрос на цифровой ви-
рийном изделии, то разработчику хочется зало- деомагнитофон;
жить в свое изделие наиболее новые технические • DVD-проигрыватель.
решения, что позволит устройству быть конкурен- Все эти блоки имеют одну общую черту: они тре-
тоспособным как можно дольше. Таким образом, буют большую мощность центрального процессо-
разработчики встроенных систем сталкиваются ра для того, чтобы декодировать потоки MPEG или
с такими проблемами, с которыми неоднократно отрисовывать трехмерную графику. Все эти функ-
сталкивались разработчики вычислительных сис- циональные возможности могут быть объединены
тем: они нуждаются в микропроцессоре или микро- в одном блоке, и для всех этих задач такой блок мо-
контроллере, показывающем хорошую производи- жет и не быть собственно ПК, потому что ни одно
тельность на тех задачах, для решения которых он из этих приложений не требует доступа к жесткому
будет оптимален, имеет высокую плотность кодов диску, но в то же время игры, цифровой видеомаг-
команд и при этом потребляет малую мощность. нитофон и DVD-плейер должны быть способны
Архитектуры компьютера со сложным набором ко- читать (и писать) DVD-диск.
манд достигают высокой эффективности по ис- Есть также и другой аспект, почему ПК не ис-
пользованию памяти, и они просты для програм- пользуется вместо этих блоков: вы не можете иметь
мирования, но им иногда не хватает производи- дома только один такой блок. Представьте себе си-
тельности. Чипы RISC просты и мощны, но, часто туацию, когда дети хотят включить видеоигры,
они слишком «громоздки» для маленьких встроен- а папа хочет посмотреть спортивные состязания
ных приложений. Что же кроме RISC можно при- по TV, которые мама не выносит...
менить для повышения эффективности встроен- Таким образом, к блоку, а соответственно, и к про-
ной системы? Возможно, что стековые процессо- цессору, могут быть предъявлены следующие требо-
ры — ключ к решению проблемы. вания:
1) низкая цена;
2) высокая эффективность обработки данных, осо-
Ìèêðîïðîöåññîðû
бенно цифровая обработка сигналов и трехмер-
â áëèæàéøåì áóäóùåì
ная графика;
Как-то автор провел исследование у себя дома 3) блок связи с Интернетом должен выполнять про-
и выяснил, что он использует по крайней мере граммы на Java;
9 микропроцессоров: в аэрогриле, СВЧ-печи, сти- 4) малые объемы памяти (иначе блоки не будут до-
ральной машине, телевизоре, видеомагнитофоне, статочно дешевыми).
телефоне, радиоле и еще пару штук в ПК. Те же требования предъявляются и к электрон-
Это исследование отражает «вчерашнее» предло- ной начинке современного автомобиля.
жение на потребительском секторе рынка. А «завт- Число микроконтроллеров, используемых в быту,
ра» в этом секторе рынка ожидается устойчивый увеличивается. А это значит, что так же, как и в про-

102 www.finestreet.ru
Êîìïîíåíòû è òåõíîëîãèè, ¹ 1’2004 Êîìïîíåíòû
мышленности, наступает пора объединения мическую радиообсерваторию (NRAO) и пе- RTX 2000 (Harris Semiconductor, 1987–89)
бытовых приборов в сети. Добавление функ- ренес Форт на Honeywell 316. Язык довольно RTX 2000 — Real Time eXpress (экспресс
ций любому микроконтроллеру увеличивает быстро развился. NRAO не оценил значение реального времени) 2-микронный кристалл
объем кодов программ и усложняет отладку. Форта и после некоторого предварительного 16-разрядного микроконтроллера был заду-
Именно поэтому для работы и отладки такие исследования его патентоспособности пере- ман как развитие NC 4016. На кристалле по-
микроконтроллеры потребуют программной дал все права на язык Муру. В 1973 Мур, Эли- явились два стека по 256 вложений, умножи-
поддержки в виде языка высокого уровня, забет Ратэр (второй Форт-программист) тель, канал ввода-вывода. RTX 2000 выпус-
да еще не просто языка высокого уровня, и еще несколько человек сформировали кался серийно и активно применялся
а языка, ориентированного на сетевые прило- FORTH Inc., чтобы продавать Форт как ком- во встраиваемых системах для управления
жения. Аналогичный процесс происходит мерческое изделие, первоначально названное и обработки сигналов.
и в промышленности. Если внимательно miniFORTH, а позднее — polyFORTH. Вскоре Форт в СССР и России
приглядеться, то можно увидеть, что увели- Форт был установлен на ряд процессоров,
чивается потребность в устройствах, напоми- из которых наиболее важным был PDP-11
нающих по функциям ПК, но имеющих зна- от фирмы DEC. Процессор PDP-11, извест-
чительно меньшую цену. Это PDA, торговые ный у нас как «Электроника-60», оставался
терминалы и системы, работающие через Ин- основной машиной FORTH Inc. для пользо-
тернет, а также «пластиковые деньги». А это, вателя на долгое время.
в свою очередь, приведет к увеличению по- В течение следующих пяти лет понятие
требности в микропроцессорах, оптимизиро- «язык Форт» и «Форт», как продукт, постав-
ванных для выполнения команд языка Java. ляемый фирмой FORTH Inc., были тождест- В СССР велись работы по созданию языка
венны. Не было других коммерческих про- программирования для стековых машин.
давцов Форт-систем, и фактически само на- Были разработаны и сами машины типа
Ñ è Ôîðò
звание — Forth было торговой маркой. «Эльбрус». Но если переместиться «ближе
Все началось с того, что с распространени- Хочется напомнить один эпизод из исто- к микропроцессорам», то можно начать
ем вычислительных машин начались интен- рии развития языка Форт. В 1978 году ма- со следующего исторического периода.
сивные поиски путей разработки языков вы- ленькая группа энтузиастов сформировала Начало перестройки запомнилось первыми
сокого уровня для того, чтобы сделать труд Forth Interest Group (FIG). Была собрана разноцветными автобусами с броскими рек-
программиста более производительным. группа программистов, которая за девять ме- ламными надписями. Первые кооперативы,
Немного о С сяцев разработала простую и переносимую продающие продукты отечественного, заметь-
Хотя Forth и C были задуманы почти в од- на различные процессоры версию языка те, производства — джинсы-варенки и ва-
но и то же время, их происхождение значи- Форт. Это версия языка, называемая FIG- фельные трубочки. Кто теперь помнит хотя
тельно отличалось. C, с его братом-близне- Forth, и была распространена во всем мире бы их названия и кто из них уцелел? Но вот
цом UNIX, был рожден в одном из оплотов в течение нескольких месяцев. Затем Форт- один из первых отечественных кооперативов,
«академии информатики» — Bell Labs, и его системы были установлены на Intel 8080, кооператив «Форт-Инфо», организованный
автор, Деннис Ричи, в последующие годы DEC PDP-11, TI 9900, 6502, PACE и Motorola в 1988 году и преобразованный в 1991 году
был поднят почти к состоянию святости. 6800. Впоследствии Форт-системы были ус- в инновационно-техническую фирму «Тех-
В течение долгого времени качественные тановлены на Intel 8086, Nova, RCA 1802, нофорт» (w
ww
.technoforth.
ru) — произво-
C-компиляторы было доступны только в сре- Motorola 68000 и 6809, VAX и на многих дру- дитель программного обеспечения и новей-
де UNIX, в то время как UNIX был слишком гих процессорах. Остальную часть описания ших разработок в области вычислительной
дорог для коммерческих пользователей. Ком- исторического развития языка Форт прихо- техники и изделий электронной техники —
пания AT фактически отдала С университе- дится опустить, поскольку рамки журналь- жив и до сих пор и успешно продолжает свою
там. Таким образом, многие поколения сту- ной статьи не позволяют привести всю исто- деятельность.
дентов были воспитаны на UNIX и C, и язык рию целиком. Просто хочется подчеркнуть, Фирма «Технофорт» является высокотехно-
С сделался для них «истинной верой». что FIG действовала по своей собственной логической компанией, работающей в области
О рождении Форта инициативе, не ждала указания правительст- программирования и производства микро-
В отличие от С, Форт — это язык, кото- ва и не искала богатого спонсора. Когда автор процессоров, микропроцессорных устройств
рый, выражаясь фигурально, развивался данной статьи предложил в телеконферен- и систем. По сегодняшней терминологии
от «уровня травы». Он пробивал себе дорогу ции отечественным разработчикам микро- «Технофорт» можно также назвать фаблесс-
в мир, опираясь только на свои собственные процессорных устройств высказаться по по- фирмой, выпускающей полупроводниковые
достоинства. Язык Форт был изобретен воду создания микропроцессора, наиболее микросхемы. Один из первых проектов фир-
Чарльзом Муром, внештатным программис- удовлетворяющего их потребностям, то чего мы в этой области — разработка Форт-микро-
том, который писал программы для обработ- только не пришлось прочитать в ответ. Види- процессора. В результате трехлетней работы
ки данных на фабрике по производству ков- мо, нет еще у нас в стране курортов, подоб- в 1991 г. был создан самый быстрый в СССР
ров в Stanford Linear Accelerator Center. Мур ных калифорнийским, где можно без помех микропроцессор — 16-разрядный Форт-про-
был знаком со многими языками програм- собраться и обсудить назревшие проблемы. цессор Дофин-1610. Предназначенный для си-
мирования, включая ассемблер, ФОРТРАН, Далее необходимо отметить некоторые за- стем реального времени, он превосходил про-
КОБОЛ, PL/1, APL, но чувствовал, что все хватывающие события, которые произошли изводимые в то время в СССР микропроцес-
они не вполне отвечали его потребностям. на «аппаратном фронте». Было разработано соры по быстродействию в 50 раз и выпускал-
Он экспериментировал с различными транс- несколько центральных процессоров с систе- ся опытными партиями в минском НПО «Ин-
ляторами, и в начале 1960-х он пришел мами команд языка Форт, включая Novix NC теграл». Основными заказчиками фирмы
к идее использовать стек, чтобы передавать 4016 Чарльза Мура, MF1600 Алана Винфилда до 1995 года были предприятия Санкт-Петер-
параметры и результаты между интерпрети- и WISC CPU/32 Фила Купмана (Writable бурга, в первую очередь ВПК, стремившиеся
руемыми командами. Instruction Set Computer — компьютер с пе- применить новые отечественные устройства
Мур считает, что его первый интерпрета- резаписываемой системой команд). Проект на базе Дофин-1610 в своих разработках и си-
тор, в котором уже можно было узнать Форт, чипа Novix был в конечном счете продан стемах автоматизации. Была спроектирована
был написан на Фортране для IBM 1130, фирме Harris Semiconductor, где он был пере- новая, усовершенствованная архитектура про-
во время его работы на фабрике по производ- проектирован в RTX 2000 (Фотографии мик- цессора — Дофин-1620 (совместно с минской
ству ковров (Mohasco Industries) в 1968 году. ропроцессоров RTX 2000, Дофин 1610, 1620 фирмой НКТ, организованной в 1992 г. ИТФ
Несколько позже Мур поменял место рабо- и 1630 любезно предоставлены Алексеем Че- «Технофорт» совместно с минскими коллега-
ты — он поступил Национальную астроно- пыженко, alex@
radiopage.by). ми). «Технофорт» выполнил ряд НИРовских

www.finestreet.ru 103
Êîìïîíåíòû è òåõíîëîãèè, ¹ 1’2004 Êîìïîíåíòû
работ, на основании которых было подготов- Необходимо отметить, что во все, даже на- Чтобы определить виртуальную машину
лено решение о постановке Форт-процессора иболее сложные периоды своей деятельнос- Форта и поведение интерпретатора (компи-
на серийное производство в Зеленограде. ти, коллектив ИТФ «Технофорт» продолжал лятора) по существующим стандартам Фор-
К сожалению, экономический кризис и фак- и продолжает проводить научно-исследова- та, определяют менее чем 200 названий
тический упадок ВПК привели к свертыва- тельские работы. Наиболее крупная и действий. Коммерческие системы разра-
нию этих работ. из них — разработка нового процессора. ботки программ на Форте намного сложнее,
Дофин-1610 (1990) Программное моделирование было заверше- они имеют не менее 500 резидентных слов.
но еще в 1997 г. Появление технологии Фактически, 500–600 элементов языка —
ПЛИС позволило без больших затрат полу- почти то же самое, что и общее число опера-
чить конечный продукт — семейство высо- торов, ключевых слов и функций библиоте-
копроизводительных однокристальных мик- ки Microsoft C или Borland C++.
роконтроллеров на ядре Форт-процессора Есть два аспекта Форта, которые часто кри-
TF16 собственной разработки. Отметим, что тикуются — его загадочные названия и его
ядро TF16 и комплект периферии к нему, так постфиксный синтаксис. В те времена, когда
же разработанный фирмой «Технофорт», были разработаны определения фундамен-
позволили получить такое конкурентоспо- тальных команд Форта, телетайпы на 10 сим-
собное изделие, как кассовый регистратор. волов в секунду были так же обычны, как
О конструктивных особенностях Форт-про- и миникомпьютерные системы с 8 или
Советский вариант NC 4016. Разработчики цессора TF16 будет рассказано в следующих 16 кбайт оперативной памяти. Следователь-
повторили известный микропроцессор фир- разделах данной статьи. но, короткие названия были очень желатель-
мы Novix, пользуясь при этом лишь специ- Форт — язык, среда разработки, опера- ны для того, чтобы сохранить память и сэко-
фикацией на архитектуру и систему команд. ционная система и философия програм- номить нажатия клавиш, поэтому в языке
В результате получился совместимый крис- мирования применяются символы типа @ для выборки
талл, показавший хорошие параметры быст- Как сложить 2 и 3, или Сначала было «сло- из памяти или ! для записи в память и т. д.
родействия для своего времени. Характерной во» Инфиксная нотация, например, в С выгля-
особенностью Дофин-1610 стало использо- Каждый элемент языка Форт, который мо- дит так:
вание дополнительной шины для подключе- жет использоваться в интерактивном режиме
ния памяти стеков параметров и возвратов. или в пределах программы, называют словом. 2+3
Дофин-1620 (октябрь 1994) Исходный текст для специфического слова
называют его определением. Некоторые слова В системах постфиксным синтаксисом ар-
являются примитивами, они закодированы гументы предшествуют оператору и, напри-
на родном машинном языке центрального мер, чтобы сложить числа 2 и 3, в Форте нуж-
процессора, остальные слова — вторичные но писать так:
определения или определения высокого
уровня, закодированные непосредственно 23+
в Форте. Формально соответствующее опре-
деление выглядит следующим образом: Почему Форту «нужно» именно так, будет
показано далее, но для предварительного оз-
: имя тело ; накомления можно посмотреть диаграмму
работы стековой машины, в верхней части
Во втором процессоре были добавлены • «имя» как раз и есть новое придуманное рис. 6 на зеленом поле (см. начало статьи
внутренние стеки и урезаны шины для под- слово; в «КиТ» № 9'2003). Для того чтобы обрабо-
ключения внешних стеков. Кроме того, в не- • «тело» представляет собой перечень через тать две переменные — Var-1 (в нашем слу-
го введена развитая система прерываний пробелы уже имеющихся в Форт-системе чае это число — 2) и Var-2 (в нашем случае
и аппаратный умножитель 16`16. В резуль- слов, совокупность их функций образует это число — 3) выполняются следующие
тате получился процессор, очень близкий те действия, которые будут выполнены действия: сначала одна, затем вторая пере-
по архитектуре с RTX 2000. Кристалл выпол- при исполнении данного слова; менные заносятся на вершину стека, после
нен по КМОП-технологии 2,2 микрона и за- • наличие слова «;» (точка с запятой) обяза- чего над ними выполняется требуемая опера-
ключен в 100-выводной корпус PQFP. тельно, оно завершает определение. ция, результат которой заносится в опреде-
Дофин-1630 (май 1997) Ключевое различие между Фортом и други- ленное место памяти. То есть машина произ-
ми структурными языками — то, что компи- водит именно эти действия и именно в этом
лятор Форта является расширяемым. Форт порядке. Поэтому такое написание позволи-
позволяет программисту объявлять новые ти- ло сократить затраты на интерпретаторы
пы данных и определять новые ключевые сло- и компиляторы для Форта.
ва компилятора, а затем использовать их. Haпpимep, тeкcт
Но Форт — не просто набор ключевых слов
и правил синтаксиса, это — описание вирту- : S2 DUP * SWAP DUP * + ;
альной машины. Самый важный аспект вирту-
альной машины — то, что она имеет два стека: oпpeдeляeт cлoвo «S2», вычиcляющee cyммy
стек параметров (или стек данных) и стек воз- квaдpaтoв двyx чисел из cтeкa
вратов. Почти все слова Форта используют стек
Совершенно оригинальная разработка. параметров и для аргументов, и для результа- a b --> a*a+b*b
Главной целью была поддержка DSP и языка С. тов; стек возвратов используется для потока уп-
Для этого была использована мультистеко- равления в пределах программы и (иногда) для Скомпилированные cлoвa cpaзy жe мoгyт
вая архитектура. К фортовским стекам доба- временной памяти рабочих значений. Именно иcпoльзоваться и в вычиcлeнияx, и в oпpe-
вились второй стек данных и стек адресов. из-за такой архитектуры на основе стека Форт дeлeнии дpyгиx cлoв. Haпpимер, сумму че-
Введены дополнительные методы адресации является языком естественно рекурсивных ал- тырех квадpaтoв мoжнo oпpeдeлить тaк:
через стек адресов и стек возвратов. К сожа- горитмов. В программировании на «классиче-
лению, поддержка Форта (по сравнению ском Форте» глобальные переменные не жела- : S4 S2 -ROT S2 + ;
a b c d --> a*a+b*b+c*c+d*d
с Дофин-1620) пострадала. тельны и редко используются.

104 www.finestreet.ru
Êîìïîíåíòû è òåõíîëîãèè, ¹ 1’2004 Êîìïîíåíòû
Можно отменить yжe oпpeдeлeннoe cлoвo писаны непосредственно на Форте и всегда точно много ПО, он был повторен во многих
(«зaбыть» eгo), нo пpи этом зaбывaютcя сохраняются резидентно. Исходный текст последующих разработках. Novix NC4016,
тaкжe и вce cлoвa, oпpeдeлeнныe пoзжe него. для этих инструментальных средств обычно первоначально называвшийся NC4000, явля-
Для этого используется cлoво «FORGET». сохраняется интерактивно, так, чтобы про- ется 16-разрядным стековым микропроцес-
Например, действие граммист мог настроить его по своему лич- сором, разработанным для выполнения при-
ному вкусу. Хотя Форт может быть выпол- митивов языка программирования Форт.
FORGET S2 нен многими способами, «классическое» вы- Он предназначен для выполнения программ
полнение представляет собой объединенный управления объектами в режиме реального
«забудет» S2 и все определенные позже слова. транслятор и возрастающий компилятор. времени и для высокоскоростного выполне-
Итак, на возражения о постфиксном син- Во встроенных приложениях Форт, конеч- ния языка Форт для универсального про-
таксисе можно сказать следующее: легко чи- но, продолжает использоваться в его «родном» граммирования. Поскольку уровень техноло-
таемые и удобные в сопровождении про- воплощении, чтобы уменьшить аппаратные гии производства микросхем того времени
граммы могут быть написаны на любом язы- требования до минимума. Специальный тип не позволял разместить все требуемые ресур-
ке, так же, как могут быть написаны и не- компилятора Форт, названный целевым ком- сы для архитектуры микропроцессора на од-
удобные в сопровождении программы. Тай- пилятором, выполняется на абсолютной сис- ном кристалле, то часть ресурсов пришлось
на получения качественного программного теме развития и создает автономное выполни- разместить на дополнительных микросхемах.
продукта — это хороший проект, дисципли- мое приложение (которое может быть поме- У более поздних клонов Novix этот недостаток
на и документация, а не использование спе- щено в ROM). Это приложение может быть был устранен, и сейчас Novix-подобные ядра
цифического языка. загружено в целевую систему любыми удоб- представляют собой «монолитную» структу-
Форт — это среда разработки и опера- ными средствами, например из ROM, EPROM ру, пригодную для размещения даже в FPGA.
ционная система либо по последовательному каналу связи. Блок-схема и описание архитектуры
Фopт-cиcтeмa в ocнoвнoм нaпиcaнa Философия Форта Novix
нa caмoм языкe Форт. Она зaнимaeт oт 8 Можно сказать, что основная идея, реали- К сожалению, г-н Купман не дал разреше-
дo 16 кбaйт в зaвиcимocти oт предоставляе- зованная в Форте, — это малые требования ния на использование блок-схемы микропро-
мых возмoжнocтeй (тaкиx, кaк вcтpoeнный к ресурсам, простота и скорость. Программи- цессора NC4016 в нашей статье. Поэтому чи-
ассемблер, экранный редактор, взaимo- сты, работающие на Форте, традиционно татели, желающие увидеть эту блок-схему,
дeйcтвиe c фaйлoвoй cиcтeмoй). презирают роскошные интерфейсы пользо- смогут найти ее в книге «Stack Computers» [1].
Пpoгpaммы на языке Фopт peeнтepa- вателя и сложную обработку ошибок. Этот Целью проекта при реализации микропро-
бeльны, допускают рекурсию. Фopт являeтcя стиль работы имеет свои определенные выго- цессора было немедленное выполнение боль-
oдним из caмыx быcтpыx и эффeктивныx ды — так, например, вся интерактивная сис- шинства примитивов языка Форт в единст-
языков пpoгpaммиpoвaния и шиpoкo тема Форт, включая редактор, ассемблер и до- венном машинном цикле без внутренней ми-
иcпoльзyeтcя в cиcтeмax реального времeни полнительные средства многозадачности мо- кропрограммы. NC4016 был разработан и ре-
и cпeциaлизиpoвaнныx пpилoжeнияx. Taкиe жет поместиться в программируемое ПЗУ ализован по 3-микронной технологии вен-
программы обычно пишyтcя нa «выcoкo- объемом всего 8 кбайт. Но это также имеет тильных матриц HCMOS, и в нем было ис-
ypoвнeвoм» Фopтe. Oднaкo можно значитель- и свои недостатки, поскольку проверка оши- пользовано менее 4000 вентилей. Тактовая
но ускорить их выполнение, переписав ин- бок во время выполнения в Форт-системе частота — до 8 МГц. Эта технология не поз-
тенсивно используемые слова в машинных фактически отсутствует. Частые полные сис- воляла размещать на кристалле блоки памяти
кодах. Пpoгpaммиcт мoжeт нaпиcaть пpoг- темные сбои во время разработки программы стека. Поэтому чип NC4016 выпускался
paммy в мaшинныx кoмандах на встроeннoм на Форте считаются само собой разумеющи- в 121 корпусе pin-grid и минимальная систе-
в Фopт-cиcтeмy acceмблepe и в дaльнeйшeм мися, поскольку они ожидаются. И еще одна ма для NC4016 состояла из трех 16-разрядных
использовать ее как oбычнyю пoдпpoг- особенность философии Форта — это про- блоков памяти: один для программ и данных,
paммy. Вследствие этого Форт можно приме- стой доступ к аппаратным средствам. один для стека данных и один для стека воз-
нять для создания программ нeпocpeд- При разработке проекта на языке Форт врата. Для связи с внешними микросхемами
cтвeннoгo yпpaвления aппapaтypoй. Новое обычно производится «восходящее» програм- памяти и периферии используются шины,
определение создается по форме мирование. В начале разработки проекта опре- которые могут быть сгруппированы в пять
деляется большинство аппаратно-зависимых различных функциональных групп:
CODE <имя-слова> <ассемблерная программа> END-CODE слов, затем определяются слова более высоко- • адресная шина и данные из оперативной
го уровня, оперирующие аппаратно-зависи- памяти;
Ассемблерная программа представляет со- мыми словами, и затем определяются слова • адресная шина и данные, расположенные
бой запись операторов машинного кода в об- верхнего уровня, которыми описывается зада- в стеке данных;
ратной польской записи. Определенное та- ча пользователя. Таким образом, если слова • адресная шина и данные, расположенные
ким образом слово вызывается и выполняет- всех нижних уровней определены, а они, как в стеке возвратов;
ся подобно Форт-слову. Оно может работать правило, редко требуют любого существенно- • порты ввода-вывода;
со значениями из стека, что позволяет пере- го изменения, то проектирование определе- • синхронизация и управление.
давать аргументы так же, как в Форт-словах. ний верхнего уровня позволяет легко изме- Внутренняя структура NC4016 разработана
Основное отличие состоит в том, что слово нять проект до тех пор, пока не будут получе- для выполнения команды процессора в од-
«CODE» устанавливает контекст словаря ас- ны определенные функциональные возмож- ном тактовом цикле. Все примитивные опера-
семблерных мнемоник «ASSEMBLER». ности и требуемый интерфейс пользователя. ции, кроме выборки данных из памяти, запи-
В этом же словаре имеются ассемблерные си в память и выборки длинного литерала,
версии структур управления (условных опе- выполняются в единственном тактовом цик-
Novix
раторов и циклов). Преимуществом Форт- ле. За один цикл также выполняются команды
ассемблера является его расширяемость Приступая к рассмотрению принципов ра- IF, ELSE и LOOP. Это требует, чтобы на крис-
и «встроенность в Форт». Внутри ассемблер- боты микропроцессора Novix, я не буду пи- талле находилось несколько больше линий
ного определения можно воспользоваться сать о том, что Novix «и теперь живее всех связи, чем должно быть в канонической сте-
определением через «:» как макрокомандой; живых». Но посмотрим на его старшего бра- ковой машине, но такая архитектура обеспе-
можно обратиться к переменной. та MCS-51 — он живет и здравствует именно чивает намного лучшую производительность.
Форт, как говорилось выше, является ин- потому, что оказался первым и к тому же Для достижения высокой эффективности
терпретирующей, диалоговой, объединен- идеи, заложенные в него, не устарели и до сих по передаче данных NC4016 может использо-
ной средой. В типичных системах редактор, пор. То же можно сказать и о Novix. Он был вать четыре отдельные 16-разрядные шины
ассемблер и различные утилиты отладки на- первым, под его архитектуру написано доста- для передачи данных на каждом тактовом

www.finestreet.ru 105
Êîìïîíåíòû è òåõíîëîãèè, ¹ 1’2004 Êîìïîíåíòû
цикле (память программы, стек данных, стек писать в стек данных параллельно с другими
возврата и шины ввода-вывода). Микропро- операциями. Два верхних элемента стека дан-
цессор может производить одновременный ных буферизированы регистрами T и N в АЛУ.
доступ к стеку возврата, стеку данных, опера- Стек возвратов представляет собой отдель-
тивной памяти и портам ввода-вывода, па- ную память, которая очень похожа на стек
раллельно с операцией арифметико-логичес- данных, за исключением того, что только
кого устройства и сдвигающего устройства. верхний элемент стека возвратов буферизи-
NC4016 позволяет объединять несколько рован на кристалле в индексном регистре.
неконфликтующих последовательных опе- Так как Форт сохраняет значение данных
раций в одну команду. Более подробно о та- счетчиков циклов так же, как адреса возврата
ком режиме работы стековой машины будет подпрограммы в стеке возвратов, то индекс-
рассказано далее на примере работы микро- ный регистр может быть декрементирован
процессора TF16 в разделе описания команд. для того, чтобы эффективно осуществлять
Другое новшество NC4016 — механизм, циклы счета в обратном направлении.
позволяющий обратиться к первым 32 адре- На кристалле микропроцессора нет аппа-
сам памяти программ как к глобальным ратной защиты стека от переполнения или
«пользовательским» переменным. Этот меха- опустошения. Так как большинство микро-
низм позволяет избежать проблем, связанных схем памяти имеет емкость более 256 байт,
с работой языков высокого уровня, позволяя то можно использовать линии X-порта для
сохранять ключевую информацию для задачи того, чтобы переключать блоки стеков стра-
в быстродоступной переменной, например нично. Можно сделать переключатель стра-
указатель на вспомогательный стек в опера- ниц стека в виде отдельного регистра, находя-
тивной памяти. Это также обеспечивает до- щегося вне кристалла, и он может управлять-
статочную производительность при исполь- ся как порт ввода-вывода. Это очень полезно
зовании компиляторов языка высокого уров- при поддержке многозадачной системы, в ко-
ня, которые, возможно, были первоначально торой каждая задача имеет свои собственные
разработаны не для стековых машин, а для данные и стеки возврата. Это также является
машин с регистрами, позволяя использовать аппаратной защитой данных разных задач —
32 переменные с быстрым доступом для того, данные не будут записаны поверх стека дру-
чтобы смоделировать набор регистров. гой задачи. Переключение задач в этой среде
Блок арифметико-логического устройства чрезвычайно быстро, так как эксплуатацион-
(АЛУ) содержит буфер с 2 элементами для ные режимы каждой задачи полностью со-
главных элементов стека данных (T для верх- храняются в их индивидуальном месте стека
него элемента стека данных и N для второго и это так же до минимума уменьшает пере-
от верха элемента стека данных). Он также качку данных при переключении контекста.
содержит специальный регистр MD для под- NC4016 имеет два порта ввода-вывода:
держки умножения и деления, а также ре- B-порт на 16 бит и X-порт на 5 бит. Эти два
гистр SR для быстрого вычисления целочис- порта полностью программируются пользо-
ленных квадратных корней. АЛУ может вы- вателем через 4 внутренних регистра для
полнить операции на регистре T и любом каждого порта: регистр направления, опреде-
из регистров N, MD или SR. ляющий направление передачи данных каж-
NC4016 связывается с оперативной памя- дым битом, регистр маски, регистр перевода
тью через 16 линий адреса, 16 линий данных, бита в третье состояние и регистр данных
используя сигнал разрешения записи WED. считывания данных со входов или записи
Таким образом, непосредственно адресуемая данных на выходы. Оба порта могут делать
память составляет 64 Кслова или 128 кбайт. операции ввода-вывода в единственном ма-
Пространство памяти может быть расшире- шинном цикле.
но, если 5 строк X-порта ввода-вывода (порт Система команд Novix
расширения) используются как дополни- Описание системы команд микропроцессо-
тельные линии адреса, чтобы управлять опе- ра NC4016 представляет собой довольно объ-
ративной памятью. Учитывая использование емный материал и здесь приводиться не бу-
порта расширения адреса (X-порт) странич- дет. Желающие ознакомиться с этими мате-
но-адресуемая память может быть расширена риалами могут обратиться к книге Ф. Купма-
до 2 Mслов или 4 Mбайт. Адресация непо- на [1]. Пример системы команд стекового
средственно одного байта не поддерживается. процессора будет приведен далее при описа-
Механизмы работы стековой машины тре- нии процессора TF16.
буют не менее двух стеков, один — для того, NC4016 был предназначен для примене-
чтобы хранить адреса возвратов из подпро- ния во встроенных устройствах управления.
грамм, другой — чтобы хранить параметры Он имел очень высокую эффективность при
для обмена данными между подпрограммами. разумно маленьких аппаратных затратах.
В NC4016 каждый стек использует 16 строк NC4016 был первоначально разработан как
данных, 8 строк адреса и сигнал разрешения за- прототип, поэтому он имеет некоторые не-
писи. Так как шины адреса имеют разрядность дочеты, которые были исключены в последу-
8 бит, то глубина стеков ограничена 256 слова- ющих проектах стековых машин.
ми во внешней памяти стека. Стек данных — Окончание следует
память, расположенная вне кристалла. Указа-
тель вершины стека данных расположен на чи-
Ëèòåðàòóðà
пе и обеспечивает адрес стека для памяти, нахо-
дящейся вне кристалла. Отдельная 16-разряд- 1. Купман Ф. Stack Computers. ht
tp://
ная шина данных стека позволяет читать или w
ww
.ece.cmu.edu/~koopman/stack.ht
ml.

106 www.finestreet.ru