Изучение вычислительной техники, как правило, включает экспериментальное исследование функционирования устройств, входящих в состав ЭВМ. При этом наряду с действующими макетами изучаемых устройств широко применяются их программные модели. В качестве средств программного моделирования устройств используются универсальные среды (например, Delphi и C++) [1, 2] и специальные системы (например, среда функционально-логического моделирования MatLab/Simulink и САПР Quartus II компании Altera) [3, 4]. К числу многофункциональных запоминающих устройств, при изучении которых целесообразно применять программную модель, относятся ассоциативные запоминающие устройства (АЗУ). При разработке программной модели АЗУ возможно создание многоуровневых моделей [3]. В то же время если построение узлов и блоков АЗУ уже известно обучающимся, то достаточно ограничиться моделированием функционирования АЗУ на уровне узлов и блоков, не отражая их реализацию на уровне логических элементов.
Цель работы: развитие технологии построения и экспериментального исследования функциональных моделей устройств вычислительных машин для применения в учебном процессе, использующей в качестве средства моделирования табличный процессор Microsoft Excel и основанной на представлении узла (блока) моделируемого устройства одной ячейкой, в которой с помощью стандартных функций моделируется его функционирование.
Развиваемый подход предполагает переход от поразрядного к пословному моделированию основных узлов и блоков ЭВМ с помощью стандартных функций Excel, когда в ячейках могут находиться многоразрядные двоичные коды, а вычисления производятся в десятичной системе счисления. При этом сохраняется представление состояний входов и выходов узлов и блоков на экранных формах в двоичной системе счисления [5]. Подход рассматривается на примере разработки функциональной модели АЗУ.
Структура и алгоритм работы моделируемого АЗУ
АЗУ основаны на ассоциативном обращении, в процессе которого выполняется поиск информации, хранящейся в АЗУ, по некоторому образцу (признаку). При этом производится сравнение заданного признака с информацией в АЗУ и устанавливается их соответствие или несоответствие друг другу. Признак, по которому производится поиск информации, называется ассоциативным признаком. Ассоциативный признак может быть частью искомой информации или дополнительно придаваться ей. В последнем случае его принято называть тегом.
Структура АЗУ приведена на рисунке 1, где РП – регистр признака (S); РЗД – регистр записи данных (DI); РМ – регистр маски (М); А – адрес для обычного (адресного) обращения; БУ – блок управления со входами для сигналов: ассоциативного чтения (АЧТ) и записи (АЗП), обычного (адресного) чтения (ЧТ) и записи (ЗП) а также значений логических условий p; НАЗУ – накопитель ассоциативного ЗУ, содержащий N ячеек памяти (ЯП); Р0, Р1, … РN-1 – значения логических условий (индикаторов), формируемых в ячейках АЗУ; РИ – регистр индикаторов; РЧД – регистр чтения данных (DO).
В отличие от адресных ЗУ в АЗУ, ячейка для чтения или записи данных выбирается не по адресу, а по содержимому этой ячейки. В процессе ассоциативного обращения признак S из регистра признаков РП сравнивается с содержимым Di (i=0,1,..,N-1) всех ячеек АЗУ. При этом в каждой ячейке формируется значение логического условия Pi (i=0,1,..,N-1), которое равно единице, если имеет место совпадение S и Di , и – нулю в противном случае.
Рис. 1. Структура АЗУ
Рис. 2. Обобщенный алгоритм ассоциативного чтения (записи)
Значение логического условия фиксируется в соответствующем ячейке разряде регистра индикаторов РИ. Сравнение может производиться с учетом маски M, позволяющей исключить из сравнения S и Di отдельные разряды. Из сравниваемых S и Di исключаются (считаются замаскированными) разряды, для которых в одноименных разрядах маски M находятся единицы. Использование маски обеспечивает различные варианты выбора ячеек в АЗУ: от ячеек, содержимое которых полностью совпадает с кодом в РП, до выбора всех ячеек.
Сравнение содержимого ячейки АЗУ Di=di1,di2,…,dij,…,diJ с содержимым РП S=s1,s2,…,sj,…,sJ с учетом содержимого РМ M=m1,m2,…,mj,…,mJ реализуется с помощью входящей в состав ячейки комбинационной схемы. Работа такой схемы может быть описана логической функцией в виде следующей формулы:
(1)
Основными операциями, выполняемыми АЗУ, являются ассоциативное чтение и ассоциативная запись. Кроме того, в АЗУ обычно возможны адресное чтение и запись. Обобщенный алгоритм ассоциативного чтения (записи) приведен на рисунке 2, где РИ<i> – i-й разряд регистра индикаторов, М[РСА] – ячейка АЗУ с адресом, указанным в РСА.
Реализация функций АЗУ с помощью функций Microsoft Excel
В процессе разработки функциональной модели АЗУ использовались следующие основные функции Microsoft Excel.
ДЕС(текст;основание). Преобразует текстовое представление числа с указанным основанием в десятичное число. Пример: =ДЕС(1100;2); =12.
ОСНОВАНИЕ(число;основание;[минимальная_длина]). Преобразует число в текстовое представление с указанным основанием системы счисления. Пример: =ОСНОВАНИЕ(12;2;8); =00001100.
ВПР(искомое_значение, таблица, номер_столбца, [интервальный_просмотр]). Функция позволяет моделировать чтение из адресной памяти. Память представляется в виде таблицы, состоящей из двух столбцов. Первый столбец таблицы (столбец адресов) используется для указания последовательности адресов ЯП, а второй (столбец ячеек) состоит из соответствующих этим адресам ЯП. Первый аргумент функции ВПР задает адрес ЯП, из которой необходимо произвести чтение (поиск заданного адреса будет производиться в первом столбце таблицы). Второй аргумент функции ВПР определяет диапазон ячеек таблицы, включающий столбец адресов и столбец ЯП. Третий аргумент указывает номер столбца (столбца ячеек), содержащего «читаемую» ЯП, адрес которой совпадает с заданным.
Таблица 1
Выполнение микроопераций над двоичными кодами c помощью функций Microsoft Excel
Микрооперация |
Формула Microsoft Excel |
W=X⊕Y, wj=xj&yj, j=0,…,7 |
D1: =ОСНОВАНИЕ(БИТ.И(ДВ.В.ДЕС(A1);ДВ.В.ДЕС(B1));2;8) |
W=X⊕Y, wj=xj⊕yj, j=0,…,7 |
D1: =ОСНОВАНИЕ(БИТ.ИСКЛИЛИ(ДВ.В.ДЕС(A1);ДВ.В.ДЕС(B1));2;8) |
W = Y, wj = yj, j=0,…,7 |
D1: = ОСНОВАНИЕ(БИТ.ИСКЛИЛИ(ДВ.В.ДЕС(B1);255);2;8) |
R=N+1 |
F1: =ОСНОВАНИЕ(ДЕС(E1;2)+1;2;4) |
|
G1: =ЕСЛИ(И(ОСНОВАНИЕ(БИТ.И(БИТ.ИСКЛИЛИ(ДЕС(A1;2); ДЕС(B1;2));БИТ.ИСКЛИЛИ(ДЕС(C1;2);255));2;8)=»00000000»);1;0) |
Четвертый аргумент функции ВПР не используется. Пример: =ВПР(E8;H14:K29;2). Функция выполняет считывание из памяти по адресу, двоичный код которого находится в РСА (E8), таблица памяти занимает диапазон H14:K29. При вычислении функции ВПР в столбце адресов производится поиск двоичного кода, совпадающего с кодом, заданным в РСА. Результатом вычисления функции ВПР является содержимое ЯП из столбца ячеек (имеющего номер 2), адрес которой совпал с заданным.
Микрооперации над двоичными кодами X=x7x6x5x4x3x2x1x0, Y=y7y6y5y4y3y2y1y0, Z=z7z6z5z4z3z2z1z0, W=w7w6w5w4w3w2w1w0, N=n3n2n1n0, R=r3r2r1r0, необходимые для моделирования АЗУ, выполняются с использованием вычислений в десятичной системе счисления (табл. 1), предполагается, что код X находится в ячейке A1, Y – B1, Z – C1, W – D1, N – E1, R – F1, p – G1).
В последней строке таблицы 1 приведена формула для выполнения микрооперации сравнения содержимого ячейки АЗУ X=x7x6x5x4x3x2x1x0, с содержимым РП Y=y7y6y5y4y3y2y1y0, с учетом содержимого РМ Z=z7z6z5z4z3z2z1z0, полученная на основании формулы (2):
(2)
Необходимость преобразования формулы (1) в эквивалентную формулу (2) обусловлена использованием функций MS Excel (БИТ.И, БИТ.ИСКЛИЛ), выполняющих логические операции над разрядами двоичных кодов, представленных в виде чисел в десятичной системе счисления.
Разработка функциональной модели АЗУ
Разрабатывается функциональная модель учебного варианта рассмотренного ранее АЗУ, накопитель которого состоит из 16 8-разрядных ячеек памяти. Кроме того, для удобства проведения экспериментальных исследований в функциональную модель АЗУ включены дополнительные блоки, поля ввода и входы управляющих сигналов.
Функциональная модель АЗУ содержит следующие дополнительные блоки: счетчик данных (СД), буфер читаемых данных (БЧД), пультовый дублер ячеек (ПДЯ), а также блок пуска-останова (БПО). Структура АЗУ при проведении экспериментальных исследований отображается на экранной форме, приведенной на рисунке 3.
СД осуществляет подсчет числа считанных (записанных) данных в процессе ассоциативного чтения (записи). При ассоциативном чтении данные по мере считывания последовательно заносятся в БЧД, начиная с нижнего регистра. ПДЯ позволяет вводить с клавиатуры данные в поля, соответствующие ячейкам АЗУ, и переписывать их (при установленном в единичное состояние управляющем сигнале v) в ячейки. БПО обеспечивает поступление управляющих сигналов в блоки в процессе подачи тактовых сигналов и останов АЗУ при завершении выполнения заданной операции.
Экранная форма для исследования АЗУ содержит два дополнительных поля ввода: адреса (A) и данных (DI). Поле А используется для ввода адреса в РСА, а поле DI – данных в РЗД. Двоичные коды в поля A и DI заносятся с клавиатуры, а затем при подаче соответствующего управляющего сигнала переписываются в регистры. Ввод признака S в РП и маски M в РМ осуществляется непосредственно с клавиатуры.
Два дополнительных управляющих сигнала: начальной установки (НУ) и инкремента (с) – обеспечивают выполнение следующих функций. При единичном значении сигнала НУ производятся занесение информации в РСА и РЗД из полей ввода, установка РЧД и СД в нулевое состояние, запись в разряды РИ нулей (при обычном чтении или записи) и значений условий pi, формируемых по результатам сравнения признака S и содержимого ячеек памяти Di (i=0,1,…,15) с учетом маски M (в случае ассоциативного чтении или записи).
Рис. 3. Экранная форма для экспериментального исследования АЗУ
Таблица 2
Изменение состояний регистров и ЯП АЗУ в зависимости от управляющих сигналов
Регистр / ЯП |
Состояние регистра /ЯП АЗУ в следующем такте |
||||
НУ |
АЧТ |
АЗП |
ЧТ |
ЗП |
|
РСА |
=А |
=РСА+1 |
=РСА+1 |
=РСА |
=РСА |
РЗД |
=DI |
=РЗД |
=РЗП+c |
=РЗД |
=РЗД |
ЯП<i> |
=ПДЯ<i>, если v=1, иначе ЯП<i> |
=ПДЯ<i>, если v=1, иначе ЯП<i> |
=ПДЯ<i> если v=1, иначе РЗД |
=ПДЯ<i>, если v=1, иначе ЯП<i> |
=ПДЯ<i>, если v=1, иначе РЗД |
РИ<i> |
=0, если АЧТ=АЗП=0, иначе Pi |
=РИ<i> |
=РИ<i> |
=РИ<i> |
=РИ<i> |
РЧД |
=00000000 |
=М[РСА], если РИ<i>=1, иначе РЧД |
=РЧД |
=М[РСА] |
=РЧД |
СД |
=0000 |
=СД+1, если РИ<i>=1, иначе СД |
=СД+1, если РИ<i>=1, иначе СД |
=СД |
=СД |
Таблица 3
Функциональное моделирование основных блоков и ЯП с помощью формул MS Excel
N |
Блок / ЯП АЗУ |
Формула MS Excel |
1 |
РСА[E8] |
=ЕСЛИ(НЕ(F3);E6;ЕСЛИ(И(НЕ(G3);ИЛИ(C10;C11));ПСТР(ОСНОВАНИЕ(ДЕС(E8;2)+1;2;5);2;5);E8)) |
2 |
РЗД[I8] |
=ЕСЛИ(ИЛИ(И(НЕ(F3);ИЛИ(C11;C13));НЕ(K7));I6;ЕСЛИ(И(НЕ(G3);C11);ЕСЛИ(I8=»00001111»;»00000000»;ОСНОВАНИЕ(ДЕС(I8;2)+1;2;8));I8)) |
3 |
ЯП<7>[I21] |
=ЕСЛИ(R21;P21;ЕСЛИ(И(F4;C$13;E$8=H21);I8;ЕСЛИ(И(C$11;K21;E$8=H21);I$8;I21))) |
4 |
РИ<7>[K21] |
ЕСЛИ(И($C$14=1;$C$10=0;$C$11=0);0;ЕСЛИ(И(F$3=0;F$4=0;ИЛИ(C$10;C$11));ЕСЛИ(И(ОСНОВАНИЕ(БИТ.И(БИТ.ИСКЛИЛИ(ДЕС($F$10;2);ДЕС($I21;2));БИТ.ИСКЛИЛИ(ДЕС($J$10;2);255));2;8)=»00000000»);1;0);K21)) |
5 |
РЧД[I31] |
=ЕСЛИ(C14;»00000000»;ЕСЛИ(C12;ВПР(E8;H14:K29;2);ЕСЛИ(И(G3;C10;ВПР(E8;H14:K29;4)=1);ВПР(E8;H14:K29;2);I31))) |
6 |
СД[K31] |
=ЕСЛИ(C14;»0000»;ЕСЛИ(G3;ЕСЛИ(ВПР(E8;H14:K29;4)=1;ОСНОВАНИЕ(ДЕС(K31;2)+1;2;4);K31);K31)) |
7 |
БЧД<7>[N21] |
=ЕСЛИ(C$14;» «;ЕСЛИ(И(C$10;G$3;ВПР(E$8;$H$14:$K$29;4)=1;K$31=H22);ВПР(E$8;$H$14:$K$29;2);N21)) |
8 |
БСО-Ост[F4] |
=ЕСЛИ(C14;0;ЕСЛИ(ИЛИ(E8=»1111»;C12;C13);1;F4)) |
9 |
БСО-u[F3] |
=ЕСЛИ(ИЛИ(C14;F4);0;1) |
10 |
БСО-T[G3] |
=ЕСЛИ(И(F3;НЕ(G3));1;0) |
При единичном значении сигнала c в каждом такте содержимое РЗД увеличивается на единицу, обеспечивая автоматическую генерацию последовательности записываемых данных. Изменения состояний регистров и ячеек памяти АЗУ в зависимости от поступающих управляющих сигналов приведены в таблице 2. При отсутствии управляющих сигналов АЗУ находится в режиме хранения.
Функциональное моделирование блоков и ячеек АЗУ осуществляется с помощью формул MS Excel (табл. 3). Каждому регистру и каждой ЯП выделяется соответствующая ячейка MS Excel, номер которой указывается в квадратных скобках следом за обозначением регистра или ЯП. При моделировании БСО используется три ячейки MS Excel для формирования сигналов: «Останов» – Ост[F4], «Управление генератором» – u[F3], «Tакт» – T[G3].
Формулу, используемую для моделирования РСА (табл. 3, строка 1), можно пояснить следующим образом (пояснения приведены в угловых скобках):
РСА[E8]: =ЕСЛИ(НЕ(F3);E6 <Если сигнал «Управление генератором» u[F3]=0, то РСА[E8]:=A[E6]; иначе>;
ЕСЛИ(И(НЕ(G3);ИЛИ(C10;C11));ПСТР(ОСНОВАНИЕ(ДЕС(E8;2)+1;2;5);2;5) <Если сигнал «Такт» T[F3]=0 и есть сигнал ассоциативного чтения АЧТ[C10]=1 или записи АЗП[C11]=1, то содержимое РСА[E8] преобразуется из четырехразрядного двоичного кода в двухразрядный десятичный, затем увеличивается на единицу и преобразуется в пятиразрядный двоичный код, младшие четыре разряда которого отображаются в РСА[E8]; иначе>;
E8))<содержимое РСА[E8] сохраняется без изменений>
Формирование значения сигнала «Ост» в блоке БСО (табл. 3, строка 8) можно пояснить следующим образом:
БСО-Ост[F4]: =ЕСЛИ(C14;0<если есть сигнал начальной установки НУ[C14]=1, то БСО-Ост[F4]:=0; иначе>;
ЕСЛИ(ИЛИ(E8=»1111»;C12;C13);1<если содержимое РСА[E8]=«1111» или есть сигнал чтения ЧТ[C12]=1 или записи ЗП[C13]=1, то БСО-Ост[F4]:=1; иначе>;
F4))<состояние БСО-Ост[F4] сохраняется без изменений>
При БСО-Ост[F4]=1 формируется сигнал БСО-u[F3]=0, что приводит к прекращению выработки тактовых сигналов (БСО-T[G3]) и завершению выполнения заданной операции.
Экспериментальные исследования
Функциональная модель АЗУ работает в двух основных режимах: «Такт» и «Автомат». В режиме «Такт» заданная операция выполняется по тактам, путем последовательных нажатий клавиши F9. В режиме «Автомат» выполнение заданной операции производится при однократном нажатии клавиши F9. В обоих режимах АЗУ выполнение заданной операции завершается установкой сигнала БСО-u[F3]=0, после которой АЗУ перестает реагировать на нажатие клавиши F9. Установка необходимого режима работы АЗУ осуществляется путем изменения параметров Microsoft Excel, связанных с вычислением формул. Выбираются вычисления в книге «вручную» и включаются итеративные вычисления с числом итераций, равным единице для задания режима «Такт», и числом не менее максимального числа микрокоманд, которые необходимо выполнить после нажатия клавиши F9, – для задания режима «Автомат». Максимальное число микрокоманд, которые необходимы для выполнения ассоциативных обращений в АЗУ, можно определить экспериментально, выполняя эти операции в режиме «Такт».
Независимо от режима работы АЗУ выполнение операции начинается с подготовительного такта, в котором производится начальная установка счетчиков и регистров, а при необходимости и ячеек памяти АЗУ в соответствии новыми состояниями, указанными в столбце «НУ» таблицы 2. Перед начальной установкой задается операция, подлежащая выполнению АЗУ, путем записи «1» в одну из ячеек MS Excel (С10–С13) соответствующей выбранной операции. Для начальной установки в ячейку НУ[C14] вводится «1» и нажимается клавиша F9. После начальной установки в ячейку НУ[C14] вводится «0». Дальнейшее нажатие клавиши F9 будет обеспечивать выполнение заданной операции.
Одним из примеров, иллюстрирующих возможное применение АЗУ, является решение задачи чтения последовательности чисел, укладывающихся в заданный диапазон. Например, требуется считать из АЗУ последовательность чисел Q, удовлетворяющих следующему условию: 8≥Dk≥11 (Dk∈Q). Для выполнения такого чтения необходимо задать определенные значения признака S и маски M, а также начальный адрес массива A чисел в АЗУ. В примере это должны быть: S=00001000 и M=00000011, A=0000. На рисунке 2 приведена экранная форма, в которой представлен результат выполнения ассоциативного чтения для определенных в примере значений признака и маски. Количество считанных чисел, удовлетворяющих заданному условию, зафиксировано в счетчике данных СД, а числа помещены в буфер читаемых данных БЧД.
Заключение
При разработке функциональной модели АЗУ использовано «крупнозернистое» моделирование, когда регистр, счетчик и другой многоразрядный узел представляются одной ячейкой MS Excel, в которой с помощью стандартных функций моделируется его функционирование. В этом случае внутренняя структура узла в модели не отражается, в отличие от модели узла на уровне логических элементов, когда каждому логическому элементу может отводиться отельная ячейка MS Excel. Использование «крупнозернистого» моделирования позволяет значительно сократить число необходимых ячеек и функций MS Excel и упростить разработку функциональной модели АЗУ. Включение в состав модели АЗУ и отображение на экранной форме дополнительных блоков: счетчика данных, буфера читаемых данных, пультового дублера ячеек, блока пуска-останова – упрощает и ускоряет проведение экспериментальных исследований. Рассмотренный подход к моделированию АЗУ может быть использован и при разработке функциональных моделей других устройств, когда не требуется раскрывать внутреннюю структуру входящих в состав устройства узлов и блоков.
Библиографическая ссылка
Страбыкин Д.А. РАЗРАБОТКА И ЭКСПЕРИМЕНТАЛЬНОЕ ИССЛЕДОВАНИЕ ФУНКЦИОНАЛЬНОЙ МОДЕЛИ АССОЦИАТИВНОГО ЗАПОМИНАЮЩЕГО УСТРОЙСТВА В MICROSOFT EXCEL // Современные наукоемкие технологии. – 2023. – № 7. – С. 97-103;URL: https://top-technologies.ru/ru/article/view?id=39701 (дата обращения: 16.08.2024).