Выборка ….. Цикл 4
• Инкрементируется счетчик команд, чтобы указать на 4-ю команду.
• Одновременно код 3-й команды перемешается по конвейеру (из регистра IR1 в регистр IR2).
• Содержимое счетчика команд (h’003’) выставляется на шину адреса памяти программ.
• После этого на шине данных памяти программ появляется код 4-й команды, который загружается в регистр IR1.
Исполнение ….. Цикл 4
• Адрес операнда h’26’ (т. е. NUM_2) заносится в регистр адреса FAR и выставляется на шину адреса памяти данных.
• АЛУ переключается в режим пропуска, в котором содержимое рабочего регистра без изменений копируется в регистр FDR и выставляется на шину данных памяти данных.
• Содержимое регистра FDR заносится в память данных по адресу, выставленному на шину адреса, т. е. в регистр NUM_2.
* * *
Обратите внимание на автоматическое изменение счетчика команд на этапе выборки каждого цикла. Такой последовательный характер изменения его содержимого будет сохраняться до тех пор, пока не встретится команда, напрямую модифицирующая этот счетчик, например команда goto h’200’. При выполнении этой команды адрес h’200’ помещается в счетчик команд, нарушая обычный процесс инкрементирования, в результате чего ЦПУ перейдет к команде, расположенной по адресу h’200’. Далее изменение счетчика команд снова примет линейный характер.
Хотя наша программа делает, прямо скажем, немного, на выполнение каждой команды затрачивается всего около 1 мкс. Миллион простейших операций в секунду — это сила! По существу, все компьютеры, какими бы «умными» они ни казались, просто выполняют с очень большой скоростью множество относительно простых операций. Поэтому основной задачей программиста является принятие решения о том, в какой последовательности необходимо расположить команды и структуры данных для выполнения соответствующей задачи.
* * *
До настоящего момента мы рассматривали одни компьютероподобные структуры. Для логического завершения главы нам осталось только провести связь между предметом обсуждения и собственно микроконтроллерами.
Так что же это такое — микроконтроллер? Кратко говоря,
Одним из неосновных направлений деятельности компании была разработка интегральных микросхем большой степени интеграции (БИС) по спецификациям заказчика. В 1970 году к Intel обратились представители японской корпорации Busicom с предложением изготовить подходящий набор микросхем (так называемый чипсет) для линейки калькуляторов. В то время рынок калькуляторов развивался очень динамично, поэтому любые микросхемы пришлось бы менять каждые несколько лет. Естественно, при этом снижалась рентабельность производства БИС и увеличивалась их стоимость. И вот инженеру Тэду Хоффу[54] пришла в голову революционная идея: а почему бы не создать простой ЦПУ на кристалле? Его можно было бы запрограммировать на реализацию функций калькулятора, а для расширения функциональности устройства по мере появления новых требований достаточно будет просто усовершенствовать его программное обеспечение. Все это значительно увеличивало срок жизни такой микросхемы и ее рентабельность. Кроме того, не следует забывать, что основной сферой деятельности компании Intel было производство микросхем памяти, а компьютероподобные архитектуры требуют ее очень много! Это была поистине блестящая мысль. Разумеется, в конце 1969 года японские заказчики одобрили предложение компании Intel, поскольку оно было простым и гораздо более гибким, нежели традиционные решения.