Значительная часть образовательных программ высшего и среднего профессионального образования включает дисциплины, связанные с функциональной организацией вычислительных устройств и архитектурой вычислительных машин. При этом в ряде программ схемотехническая подготовка обучающихся не предусматривается, что делает затруднительным, а в некоторых случаях и нецелесообразным использование в учебном процессе популярных программных средств автоматизированного проектирования, предполагающих такую подготовку. В то же время разработка и экспериментальное исследование обучающимися функциональных моделей изучаемых устройств, не требующая схемотехнической подготовки, облегчает более глубокое изучение устройств на функциональном уровне. В связи с этим представляет интерес использование в качестве средства функционального моделирования широко известного табличного процессора Microsoft Excel, позволяющего ограничиться «крупноблочным» представлением моделируемых устройств, отвлекаясь от схемотехнических особенностей их реализации.
Цель работы: анализ возможностей построения и экспериментального исследования учебных функциональных моделей запоминающих устройств типа очередь с помощью табличного процессора Microsoft Excel.
Очередь можно определить как структуру данных, представляющую собой список элементов, организованных по принципу «первым пришел – первым вышел» (First In – First Out, FIFO). При реализации очереди могут быть использованы различные масштабы аппаратной поддержки. В частности, при программной реализации такая поддержка ограничивается выделением области оперативной памяти вычислительной машины для накопителя очереди [1-3]. Полностью аппаратная очередь обычно строится на основе адресного блока памяти и регистров-счетчиков для хранения и отслеживания положения головы и хвоста очереди. Возможно также и совместное использование программной и аппаратной реализации очередей [4]. Как правило, при организации работы очереди предусматривается слежение за ее состоянием. Выявляются два состояния: отсутствие данных (в этом случае блокируется чтение) и полное заполнение очереди (блокируется запись). Существуют различные алгоритмы управления переполнением очередей [5; 6]. Выделяют два вида очереди: линейная и кольцевая. Распространенной формой очереди является кольцевой или циклический буфер. В кольцевой очереди, в отличие от линейной, после записи данных в последнюю ячейку следующей ячейкой для записи становится первая ячейка очереди. Аналогично за чтением данных из последней ячейки следует чтение из первой ячейки очереди. Такая организация очереди, в отличие от обычного линейного буфера, позволяет использовать ячейки в начале очереди, освободившиеся после чтения данных, для продолжения процесса записи после занесения данных в последнюю ячейку очереди. Однако в этом случае при формировании условий для состояний отсутствия данных и полного заполнения очереди приходится уменьшать на единицу число используемых ячеек очереди.
В зависимости от того, какую ячейку памяти (ЯП) в режиме хранения выделяют счетчик записи (СЗ) (первую свободную или последнюю занятую) и счетчик чтения (СЧ) (первую занятую или последнюю свободную), возможны четыре варианта организации кольцевой очереди на основе блока памяти. Эти варианты представлены в таблице 1, где N – число ЯП в очереди, «%» – символ операции вычисления остатка от деления, Аmin – минимальное, Аmax – максимальное значение СЗ и СЧ.
Следует заметить, что