Scientific journal
Modern high technologies
ISSN 1812-7320
"Перечень" ВАК
ИФ РИНЦ = 0,940

DESIGN AND EXPERIMENTAL STUDY OF A FUNCTIONAL MODEL OF AN ASSOCIATIVE STORAGE DEVICE IN MICROSOFT EXCEL

Strabykin D.A. 1
1 Vyatka State University
The technology of construction and experimental research of a functional model of an associative storage device (ASD) for use in the educational process is considered. The Microsoft Excel spreadsheet processor is used as a modeling tool. The node (block) of the simulated device is represented by a single cell in which a formula describing its functioning is placed. The structure and algorithm of operation of the simulated ASD are given. The standard Microsoft Excel functions necessary for modeling are selected, including BITAND and BITXOR that allow you to perform logical operations on the bits of binary codes represented as numbers in the decimal system. The structure of the functional model and the screen form are being designed. On the screen form, the contents of all registers and ASD cells are displayed as binary codes. Changes in the states of the registers and cells of the ASD are determined depending on the incoming control signals (initial setup, associative reading, associative writing, reading, writing). Formulas are compiled for all Microsoft Excel cells used in the functional model. The description of experimental studies of the ASD in the «Tick» and «Automatic» mode is given on the example of solving the problem of reading a sequence of numbers that fit into a given range. The number of read numbers satisfying the specified condition is recorded in the data counter, and the numbers are placed in the buffer of read data. The inclusion of additional blocks in the ASD model and the display on the screen form: a data counter, a buffer of readable data, a remote cell doubler, a start-stop unit simplifies and accelerates experimental research. The considered approach to the modeling of the ASD can be used in the design of functional models of other devices, when it is not necessary to disclose the internal structure of the nodes and blocks that make up the device.
associative storage devices
functional models
practical studies of computers
Microsoft Excel applications

Изучение вычислительной техники, как правило, включает экспериментальное исследование функционирования устройств, входящих в состав ЭВМ. При этом наряду с действующими макетами изучаемых устройств широко применяются их программные модели. В качестве средств программного моделирования устройств используются универсальные среды (например, 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 , и – нулю в противном случае.

missing image file

Рис. 1. Структура АЗУ

missing image file

Рис. 2. Обобщенный алгоритм ассоциативного чтения (записи)

Значение логического условия фиксируется в соответствующем ячейке разряде регистра индикаторов РИ. Сравнение может производиться с учетом маски M, позволяющей исключить из сравнения S и Di отдельные разряды. Из сравниваемых S и Di исключаются (считаются замаскированными) разряды, для которых в одноименных разрядах маски M находятся единицы. Использование маски обеспечивает различные варианты выбора ячеек в АЗУ: от ячеек, содержимое которых полностью совпадает с кодом в РП, до выбора всех ячеек.

Сравнение содержимого ячейки АЗУ Di=di1,di2,…,dij,…,diJ с содержимым РП S=s1,s2,…,sj,…,sJ с учетом содержимого РМ M=m1,m2,…,mj,…,mJ реализуется с помощью входящей в состав ячейки комбинационной схемы. Работа такой схемы может быть описана логической функцией в виде следующей формулы:

missing image file (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)

missing image file

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):

missing image file (2)

Необходимость преобразования формулы (1) в эквивалентную формулу (2) обусловлена использованием функций MS Excel (БИТ.И, БИТ.ИСКЛИЛ), выполняющих логические операции над разрядами двоичных кодов, представленных в виде чисел в десятичной системе счисления.

Разработка функциональной модели АЗУ

Разрабатывается функциональная модель учебного варианта рассмотренного ранее АЗУ, накопитель которого состоит из 16 8-разрядных ячеек памяти. Кроме того, для удобства проведения экспериментальных исследований в функциональную модель АЗУ включены дополнительные блоки, поля ввода и входы управляющих сигналов.

Функциональная модель АЗУ содержит следующие дополнительные блоки: счетчик данных (СД), буфер читаемых данных (БЧД), пультовый дублер ячеек (ПДЯ), а также блок пуска-останова (БПО). Структура АЗУ при проведении экспериментальных исследований отображается на экранной форме, приведенной на рисунке 3.

СД осуществляет подсчет числа считанных (записанных) данных в процессе ассоциативного чтения (записи). При ассоциативном чтении данные по мере считывания последовательно заносятся в БЧД, начиная с нижнего регистра. ПДЯ позволяет вводить с клавиатуры данные в поля, соответствующие ячейкам АЗУ, и переписывать их (при установленном в единичное состояние управляющем сигнале v) в ячейки. БПО обеспечивает поступление управляющих сигналов в блоки в процессе подачи тактовых сигналов и останов АЗУ при завершении выполнения заданной операции.

Экранная форма для исследования АЗУ содержит два дополнительных поля ввода: адреса (A) и данных (DI). Поле А используется для ввода адреса в РСА, а поле DI – данных в РЗД. Двоичные коды в поля A и DI заносятся с клавиатуры, а затем при подаче соответствующего управляющего сигнала переписываются в регистры. Ввод признака S в РП и маски M в РМ осуществляется непосредственно с клавиатуры.

Два дополнительных управляющих сигнала: начальной установки (НУ) и инкремента (с) – обеспечивают выполнение следующих функций. При единичном значении сигнала НУ производятся занесение информации в РСА и РЗД из полей ввода, установка РЧД и СД в нулевое состояние, запись в разряды РИ нулей (при обычном чтении или записи) и значений условий pi, формируемых по результатам сравнения признака S и содержимого ячеек памяти Di (i=0,1,…,15) с учетом маски M (в случае ассоциативного чтении или записи).

missing image file

Рис. 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 и упростить разработку функциональной модели АЗУ. Включение в состав модели АЗУ и отображение на экранной форме дополнительных блоков: счетчика данных, буфера читаемых данных, пультового дублера ячеек, блока пуска-останова – упрощает и ускоряет проведение экспериментальных исследований. Рассмотренный подход к моделированию АЗУ может быть использован и при разработке функциональных моделей других устройств, когда не требуется раскрывать внутреннюю структуру входящих в состав устройства узлов и блоков.