Практическая подготовка играет важную роль в процессе изучения вычислительной техники. Самостоятельная разработка обучающимися простейших вычислительных устройств (ВУ) с последующим построением и экспериментальным исследованием их программных моделей способствует более глубокому усвоению изучаемого материала. Для создания моделей могут использоваться различные программные системы и среды [1–3]. Примером обоснования выбора инструментальной программы может служить проведенный анализ и отбор свободно распространяемых эмуляторов цифровых схем, которые целесообразно использовать в качестве учебных программных средств на лабораторных занятиях по изучению цифровых автоматов [4].
Цель исследования: развитие технологии построения и использования действующих функциональных моделей вычислительных устройств в учебном процессе, основанной на применении табличного процессора Microsoft Excel, позволяющего создавать модели без разработки программного кода по принципу «программирование без программирования».
Под ВУ понимается устройство, способное выполнять алгоритмы, представленные в виде микропрограмм. ВУ состоит из вычислительного блока (ВБ) и блока управления (БУ). Рабочий цикл ВУ сводится к выполнению одной микрокоманды. В процессе выполнения микрокоманды в БУ вырабатываются управляющие сигналы, под действием которых в ВБ выполняются микрооперации и формируются для БУ осведомительные сигналы логических условий.
При функциональном моделировании ВУ в технологии построения функциональных моделей узлов и блоков ЭВМ [5] появляются дополнительные этапы: выбор алгоритма выполнения операции; определение состава микроопераций и логических условий, необходимых для реализации алгоритма; разработка операционной схемы ВБ и микропрограммы выполнения операции; разработка БУ по микропрограмме выполнения операции. Кроме того, модифицируется содержание основных этапов применительно к ВБ и БУ.
Возможности моделирования ВУ в Microsoft Excel. При функциональном моделировании последовательностных схем с помощью Microsoft Excel используются формулы с циклическими ссылками. В современных версиях Microsoft Excel большое внимание уделяется выявлению в формулах циклических ссылок, которые в большинстве случаев свидетельствуют об ошибках в формулах. Исключить диагностические сообщения о наличии в формулах циклических ссылок позволяет введение итеративных вычислений путем изменения параметров Microsoft Excel, связанных с вычислением формул (Файл/Параметры/Формулы/Параметры вычислений/Включить итеративные вычисления/Предельное число итераций (рис. 1)). При этом предельное число итераций устанавливается равным единице. Поскольку функциональная модель ВУ строится на основе логических функций Microsoft Excel, значение в поле «Относительная погрешность» не влияет на результат.
Рис. 1. Изменение параметров Microsoft Excel, связанных с вычислением формул
Режим вычислений формул «вручную» с итеративными вычислениями и предельным числом итераций, равным единице, дает возможность моделировать работу ВУ в потактовом режиме (для пересчета формул необходимо нажимать клавишу F9, выполняющую функцию клавиши «Такт»). Такой режим позволяет выполнять микропрограмму реализуемой операции по шагам, наблюдая изменение состояний внутренних регистров после выполнения каждой микрокоманды, однако автоматическое выполнение микропрограммы при этом невозможно.
Между тем организовать работу функциональной модели ВУ в автоматическом режиме возможно, если использовать итеративные вычисления и задавать предельное число итераций не меньше, чем число тактов работы устройства, необходимых для выполнения микропрограммы операции.
Использование итеративных вычислений для реализации автоматического режима работы ВУ предполагает, что на каждой итерации выполняется одна микрокоманда (моделируется один такт работы ВУ). После завершения выполнения микропрограммы БУ должен остановиться и последующие итерации вплоть до достижения заданного предельного числа не должны изменять состояние ВУ. Достижение заданного предельного числа итераций можно рассматривать как прекращение подачи тактовых сигналов в моделируемое устройство.
Моделирование вычислительного блока. Моделирование ВБ рассмотрим на примере операции деления нацело 8-разрядного двоичного числа X на 8-разрядное двоичное число Y, использующей следующий алгоритм. Если число Y = 0 (специальный признак z = 1), то деление не выполняется. В противном случае из делимого X вычитается делитель Y, и если знак разности s = 0 (разность положительное число), то частное Z увеличивается на единицу, а разность выступает в качестве нового уменьшаемого на следующем шаге. Процесс вычитания продолжается до тех пор, пока не будет получена отрицательная разность (s = 1). В этом случае Z будет представлять собой искомое частное от деления X на Y нацело [5].
Пример схемы 8-разрядного ВБ, моделируемого на листе Microsoft Excel, приведен на рис. 2. ВБ включает: регистр делимого RX, регистр делителя RY, сумматор (вычитатель) SM, счетчик частного RZ и логический элемент ИЛИ-НЕ (для формирования признака z равенства нулю содержимого регистра RY). В ВБ реализовано семь микроопераций, для выполнения которых используется следующее множество сигналов V = {v1, v2, v3, v4, v5, v6, v7}: v1 – занесение в регистр RX делимого: RX: = X; v2 – занесение в регистр RY делителя: RY: = Y; v3 – пересылка в регистр RX содержимого сумматора: RX: = SM; v4 – установка всех разрядов сумматора (включая разряд s) в нулевые состояния: SM: = 0; v5 – формирование в сумматоре результата вычитания из содержимого регистра RX содержимого регистра RY: SM: = RX-RY, при этом формируется признак знака разности s, который равен единице, если результат отрицательный, и нулю в противном случае; v6 – установка в нулевое состояние счетчика RZ: RZ: = 0; v7 – увеличение на единицу содержимого счетчика RZ: RZ: = RZ + 1.
Рис. 2. Экранная форма функциональной модели 8-разрядного ВУ
В ВБ формируются значения двух логических условий: z – признака равенства нулю содержимого регистра делителя RY и s – признака знака результата, полученного в сумматоре (вычитателе). Значение признака z формируется при занесении числа Y в регистр RY. Значение признака s формируется при изменении содержимого регистров RX и RY.
Описание работы узлов ВБ с помощью логических функций и представление их в виде логических функций табличного процессора Microsoft Excel приведено в работе [5]. Далее логическая функция Microsoft Excel будет указываться в квадратных скобках после соответствующей логической функции узла. Например, логическая функция, используемая для формирования значения признака нуля z для регистра RY, содержащего двоичный код Y = y7y6y5y4y3y2y1y0, может быть представлена в следующем виде: z = ù(y7Úy6Úy5Úy4Úy3Úy2Úy1Úy0) [AC17: = ЕСЛИ(ИЛИ(U13:AB13);0;1)] (рис. 2).
Моделирование блока управления. Моделирование блока управления рассмотрим на примере реализации блока в виде управляющего автомата с «жесткой» логикой.
Граф-схема микропрограммы приведена на рис. 3. При моделировании ВУ условные переходы в микропрограмме реализуются следующим образом. В текущем такте в ВБ формируется значение признака, а в следующем такте осуществляется переход БУ в состояние, соответствующее сформированному в ВБ значению признака.
Рис. 3. Граф-схема микропрограммы
Рис. 4. Граф автомата Мура
По граф-схеме микропрограммы можно построить граф переходов автомата (рис. 4), который имеет 4 вершины, соответствующие состояниям автомата a0, a1, a2, a3.
Состояния a1, a2, a3 с выходными сигналами y0, y1, y2 определяют подмножества управляющих сигналов (y0: v1, v2, v4, v6; y1: v5; y2: v3, v7), а дуги графа отмечены входными сигналами, действующими на данном переходе. Символ «–» у состояния автомата a0 означает отсутствие управляющих сигналов для ВБ, вырабатываемых в данном состоянии.
Ориентируясь на реализацию автомата на основе двух D-триггеров: D1 и D2, закодируем состояния автомата: a0 – 00; a1 – 01; a2 – 11; a3 – 10. Логические выражения, определяющие состояние автомата на основе состояний триггеров, будут иметь следующий вид:
a0 = ùD1ùD2 [L5: = ЕСЛИ(И(НЕ($G5);НЕ($H5)) = ИСТИНА;1;0)];
a1 = ùD1D2 [M5: = ЕСЛИ(И(НЕ($G5);$H5) = ИСТИНА;1;0)];
a2 = D1D2 [N5: = ЕСЛИ(И($G5;$H5) = ИСТИНА;1;0)];
a3 = D1ùD2 [O5: = ЕСЛИ(И(G5;НЕ($H5)) = ИСТИНА;1;0)].
Составим структурную таблицу переходов-выходов автомата (табл. 1), где am – состояние, из которого осуществляется выход, as – состояние, в которое осуществляется переход; y – выходной, а x – входной сигнал автомата; D – функция возбуждения триггера.
Таблица 1
Структурная таблица переходов и выходов автомата
am |
Код am |
y |
x |
as |
Код as |
D |
a0 |
00 |
– |
1 |
a1 |
01 |
D2 |
a1 |
01 |
y0 |
p |
a0 |
00 |
– |
ùp |
a2 |
11 |
D1D2 |
|||
a2 |
11 |
y1 |
1 |
a3 |
10 |
D1 |
a3 |
10 |
y2 |
s |
a0 |
00 |
– |
ùs |
a2 |
11 |
D1D2 |
Логические выражения для каждой функции возбуждения получаются по таблице как конъюнкция соответствующих исходных состояний am и входных сигналов, которые объединяются знаками дизъюнкции для всех строк, содержащих данную функцию возбуждения: D1 = a1ùpÚa2Úa3ùs = a1ùsùzÚa3ùsÚa2; D2 = a0Úa1ùsùzÚa3ùs. Кроме того, при моделировании работы БУ в автоматическом режиме используется специальный сигнал l (ячейка F5), который запрещает функционирование управляющего автомата при l = 1. Разрешение функционирования управляющего автомата реализуется путем конъюнктивного умножения инверсии переменной l на функции возбуждения: ùlD1 [G5: = ЕСЛИ($F5 = 0;ЕСЛИ(ИЛИ(И(M5;НЕ(H20);НЕ(AC17)); И(O5;НЕ(H20));N5) = ИСТИНА;1;0);0)]; ùlD2 [H5: = ЕСЛИ($F5 = 0;ЕСЛИ(ИЛИ(И (M5;НЕ(H20);НЕ(AC17));И(O5;НЕ(H20)); L5) = ИСТИНА;1;0);0)].
Выражения для функций выходов имеют следующий вид: y0 = a1 [U5: = M5]; y1 = a2, [V5: = N5]; y2 = a3 [W5: = O5]. На ос- новании выходных сигналов автомата в соответствии с микропрограммой формируются сигналы микроопераций: v1 = = y0 [P13: = U5]; v2, = y0 [AD12: = U5]; v3 = = y2 [P15: = W5]; v4 = y0 [S19: = U5]; v5 = = y1 [S21: = V5] v6 = y0 [AD21: = U5]; v7 = = y2 [AD23: = W5]. Для удобства отладки микропрограммы, формируемые управляющим автоматом микрооперации, дублируются на экранной форме ВУ в правой части БУ в виде семиразрядного двоичного кода, каждый разряд которого соответствует микрооперации с одноименным номером (рис. 2).
Работа БУ моделируется в двух режимах: «Такт» и «Автомат». Для задания режима работы используется специальный переключатель Т/А, имеющий два состояния: «0» («Такт») и «1» («Автомат»). Переключатель представляется переменной А, моделируемой ячейкой (E5) Microsoft Excel, в которую для задания режима работы БУ должно быть занесено необходимое значение (0 или 1). При нажатии клавиши F9 в режиме «Такт» ВУ выполняет одну микрокоманду, а БУ переходит в следующее состояние. При нажатии клавиши F9 в режиме «Автомат» ВУ выполняет всю микропрограмму, а БУ возвращается в начальное состояние, из которого может быть выведен в режиме «Такт».
Предполагается, что при достижении БУ конечного состояния (возвращении в начальное состояние) формируется и сохраняется осведомительный сигнал l = 1 завершения выполнения микропрограммы, который при выполнении первой микрокоманды принимает нулевое значение. Если БУ работает в автоматическом режиме, то после формирования сигнала l = 1 БУ прекращает выработку управляющих сигналов. В этом случае значение l = 1 используется для сохранения конечного состояния БУ в процессе достижения заданного предельного числа итераций в Microsoft Excel при моделировании работы ВУ в автоматическом режиме.
Значение l = 1 устанавливается, когда при выполнении микропрограммы формируется единичное значение признака переполнения (признака z = 1 – нуля в регистре делителя) или отрицательного результата (признака s = 1 – знакового разряда разности содержимого регистра делимого и содержимого регистра делителя).
Функция переходов элемента памяти l(t+1) = F(l(t),А,s,z), описывающая формирование сигнала окончания микропрограммы, может быть представлена в виде следующей формулы: l(t+1) = l(t)АÚùl(t)(sÚz) [F5: = ЕСЛИ(ИЛИ(И(F5;E5);И(НЕ(F5);H20);И(НЕ(F5);AC17));1;0)].
Моделирование ВУ. Первоначальный запуск функциональной модели ВУ осуществляется в режиме «Такт». Моделированию ВУ в режиме «Такт» предшествует изменение параметров Microsoft Excel, связанных с вычислением формул: выбираются вычисления в книге «вручную» и включаются итеративные вычисления с предельным числом итераций, равным единице. Кроме того, в ячейку А [E5], моделирующую переключатель режима работы ВУ, заносится 0 («Такт»).
В процессе экспериментальных исследований функциональной модели ВУ в режиме «Такт» осуществляется проверка правильности выполнения микропрограммы для всех сочетаний значений логических условий. В табл. 2 приведен пример выполнения микропрограммы по тактам для случая, когда делимое X = 00001111, а делитель Y = 000000111. Символ «х» используется для обозначения неопределенного значения признака и разряда данного. Содержимое регистра RY в процессе деления чисел не меняется, поэтому в таблице не представлено.
Таблица 2
Выполнение микропрограммы деления чисел нацело в режиме «Такт»
T |
l |
МК |
D1D2 |
a0a1a2a3 |
y0y1y2 |
v1v2v3v4v5v6v7 |
z |
s |
RX |
SM |
RZ |
– |
1 |
– |
00 |
1000 |
000 |
0000000 |
х |
х |
хххххххх |
хххххххх |
хххххххх |
1 |
0 |
1 |
01 |
0100 |
100 |
1101010 |
0 |
0 |
00001111 |
00000000 |
00000000 |
2 |
0 |
2 |
11 |
0010 |
010 |
0000100 |
0 |
0 |
00001111 |
00001000 |
00000000 |
3 |
0 |
3 |
10 |
0001 |
001 |
0010001 |
0 |
0 |
00001000 |
00001000 |
00000001 |
4 |
0 |
2 |
11 |
0010 |
010 |
0000100 |
0 |
0 |
00001000 |
00000001 |
00000001 |
5 |
0 |
3 |
10 |
0001 |
001 |
0010001 |
0 |
1 |
00000001 |
00000001 |
00000010 |
6 |
1 |
– |
00 |
1000 |
000 |
0000000 |
0 |
1 |
00000001 |
00000001 |
00000010 |
В примере в процессе деления чисел нацело в первом такте (Т = 1) выполняется МК 1 и производится загрузка делимого X = 00001111 в регистр RX, а делителя Y = 00000111 – в регистр RY, установка в нулевое состояние накапливающего сумматора SM = 00000000 и регистра счетчика частного RZ = 00000000, а также формируются значения признака z = 0 и s = 0. Во втором такте осуществляется переход к МК 2, которая фиксирует в сумматоре положительную разность SM: = RX-RY = 00001000. В третьем такте выполняется МК 3, которая обеспечивает передачу содержимого сумматора в регистр RX и увеличение на единицу содержимого регистра RZ = 00000001, а также формирование нового значения признака s = 0. В четвертом такте осуществляется переход к МК 2, которая фиксирует в сумматоре положительную разность SM: = = RX-RY = 00000001. В пятом такте выполняется МК 3, которая обеспечивает передачу содержимого сумматора в регистр RX и увеличение на единицу содержимого регистра RZ = 00000010, а также формирование значения признака s = 1. В шестом такте состояние регистров ВБ не изменяется, а БУ переходит в начальное состояние, и формируется осведомительный сигнал l = 1 завершения выполнения микропрограммы.
Запуск функциональной модели ВУ в режиме «Автомат» осуществляется следующим образом.
1. Производится запуск функциональной модели ВУ в режиме «Такт».
2. Заносятся исходные данные в регистры ввода, и нажимается клавиша «Такт» (F9) для переноса введенных данных в регистры ВУ (табл. 3, такт 1).
3. Вносятся изменения в настройку параметров Microsoft Excel, связанных с вычислением формул: в итеративных вычислениях задается предельное число итераций не менее числа тактов, необходимых для выполнения микропрограммы операции.
4. Заносится единица («Автомат») в ячейку А [E5], моделирующую переключатель режима работы ВУ, и нажимается клавиша «Такт» (F9) для запуска ВУ в автоматическом режиме (табл. 3, такт 2).
Таблица 3
Выполнение микропрограммы деления чисел нацело в режиме «Автомат»
T |
А |
l |
МК |
D1D2 |
a0a1a2a3 |
y0y1y2 |
v1v2v3v4v5v6v7 |
z |
s |
RX |
RY |
RZ |
– |
0 |
1 |
– |
00 |
1000 |
000 |
0000000 |
х |
х |
хххххххх |
хххххххх |
хххххххх |
1 |
0 |
0 |
1 |
01 |
0100 |
100 |
1101010 |
0 |
0 |
00001111 |
00000111 |
00000000 |
2 |
1 |
0 |
2 |
11 |
0010 |
010 |
0000100 |
0 |
0 |
00001111 |
00000111 |
00000000 |
… |
||||||||||||
6 |
1 |
1 |
– |
00 |
1000 |
000 |
0000000 |
0 |
1 |
00000001 |
00000111 |
00000010 |
5. Выполняются вычисления в ВУ в автоматическом режиме, которые прекращаются, как только будет установлен признак окончания вычислений l = 1. При этом продолжающийся до достижения предельного числа итераций пересчет формул на листе Microsoft Excel не будет изменять полученный в ВУ результат.
После выполнения микропрограммы в автоматическом режиме осуществляется возврат к работе функциональной модели ВУ в режиме «Такт». Для этого вносятся изменения в настройку параметров Microsoft Excel, связанных с вычислением формул: в итеративных вычислениях задается предельное число итераций, равное единице. Кроме того, в ячейку А [E5], моделирующую переключатель режима работы ВУ, записывается ноль.
Заключение
Создание обучающимися действующих моделей ВУ и исследование их работы в потактовом и автоматическом режимах позволяет более глубоко изучить основы построения вычислительной техники и повышает интерес к учебному процессу. Множество различных ВУ облегчает преподавателю создание вариантов индивидуальных заданий обучающимся, а использование Microsoft Excel упрощает организацию и проведение практикума.
Разработка и построение функциональной модели ВУ может оказаться достаточно сложной учебной задачей. Значительное время в некоторых случаях требуется для ввода и отладки программной модели. В этих условиях целесообразно задачу разработки ВУ разделить на три подзадачи: разработку ВБ, разработку БУ, объединение построенных моделей ВБ и БУ в модель ВУ с последующей комплексной отладкой.