Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Руководство программиста

Читайте также:
  1. III. РУКОВОДСТВО И ОРГАНИЗАТОРЫ
  2. Алиф. Лам. Мим. 2. Это Писание, в котором нет сомнения, является верным руководством для богобоязненных,
  3. Более подробные сведения, а также практическое руководство вы можете получить у инструктора йоги.
  4. Восстание под руководством С. Разина.
  5. Высшее руководство
  6. Движение под руководством И.И. Болотникова
  7. Духовное руководство

 

Прикладная программа не требует её установки или дополнительной отладки. Для запуска программы необходимо перейти в директорию расположения папки и открыть файл «Эмулятор.exe».

Исходными данными для работы программы являются: разрядность адресного и информационного пространства запоминающего устройства, количество портов и режим работы эмулятора.

На рисунке 1 представлена структурная схема эмулятора многопортного ЗУ.

 

Рисунок 1 – Структурная схема эмулятора многопортового запоминающего устройства

 

Доступ к ячейкам осуществляется как через левую, так и через правую группу шин, причем если Л- и П- адреса различны, никаких конфликтов не возникает.

Помимо возможности доступа к ячейкам с двух направлений, двухпортовая память снабжается средствами для обмена сообщениями между подключенными к ней устройствами: системой прерывания и системой семафоров. Первую из них называют аппаратной, а вторую – программной. В системе прерываний двухпортового ЗУ две последние ячейки микросхемы (с наибольшими адресами) используются в качестве «почтовых ящиков» для обмена сообщениями между устройствами, подключенными к Л- и П- портам.

Система семафоров – это арбитры, регулирующие очередность обращения двух или более независимых активных устройств к общему ресурсу. Механизм действия семафоров в двухпортовом ЗУ основан на том, что несколько ячеек памяти, не входящих в рабочее пространство, используются как указатели занятости определенных сегментов (банков) памяти. Нулевой код в семафоре соответствует занятому банку, а ненулевой – свободному.

Алгоритм программного арбитража характеризуется следующей последовательностью действий [1]:

- активное устройство формирует запрос на обращение к банку памяти путем записи «0» в соответствующую ячейку, используемую как семафор;

- активное устройство считывает состояние семафора, сравнивает полученный код с нулевым кодом и, если банк занят (код ненулевой) переходит в состояние ожидания;

- если банк свободен, активное устройство получает доступ к его содержимому;

- активное устройство заканчивает обмен и освобождает занимаемый банк памяти путем записи «1» в соответствующий семафор.

На рисунке 2 показано отличие синхронного двухпортового ЗУ от асинхронного. Операции обращения к ячейкам асинхронной памяти могут выполняться в произвольные моменты времени при условии соблюдения необходимых временных соотношений между сигналами установки адреса, управления, чтения/записи данных.

Отличительными особенностями синхронной памяти являются: синхронный интерфейс с раздельными сигналами синхронизации «CLK_R» и «CLK_L» и внутренние счетчики (Internal counters) для организации пакетного режима передачи данных [1, 2]. Поскольку обязательным условием доступа активных устройств к пространству такой памяти является их взаимная синхронизация от одного системного таймера, никакой дополнительной логики (арбитраж, семафоры или прерывания) для разрешения конфликтных ситуаций не требуется.

 

а – синхронный тип; б – асинхронный тип
Рисунок 2 – Структурные схемы двухпортового ЗУ

 

Архитектура синхронного двухпортового ЗУ оптимизирована для применения в вычислительных сетях и системах беспроводной телефонии (базовые станции), обеспечивая следующие синхронные режимы работы памяти: «Pipelined» (конвейерный), «Flow-through» (сквозной) и «Burst» (пакетный).

Режимы «Pipelined» и «Flow-through» отличаются структурой выходного устройства. В первом случае дополнительный буферный регистр-защелка по выходу (Output register) позволяет организовать конвейерный доступ к данным (одновременно с чтением по предыдущему адресу осуществляется запрос по следующему).

Режим «Burst» предназначен для выполнения операций над последовательными потоками параллельных данных (например, потоки речевых сообщений) и имеет некоторое сходство с работой памяти FIFO. Работа в этом режиме начинается с параллельной загрузки начального значения внутреннего счетчика через внешнюю шину адреса. В дальнейшем при каждом обращении к памяти состояние внутреннего счетчика циклически инкрементируется. Наличие в синхронном двухпортовом ОЗУ счетчиков адреса позволяет освободить ресурсы управляющего процессора для других операций [2].

На рисунке 3 представлена схема алгоритма программного эмулятора многопортового ЗУ.

 

Рисунок 3 – Схема алгоритма программного эмулятора

 

_____________________________________________________________________________________________________________________   2. Бройдо, В.Л. Архитектура ЭВМ и систем [Текст]: учебник / В.Л. Бройдо, О.П. Ильина. - 2-е изд. - СПб.: Питер, 2009. - ISBN 978-5-388-00384-3.
Для реализации описанного выше алгоритма работы многопортового ЗУ реализованы следующие процедуры, функции и переменные:

«procedure FormCreate(Sender: TObject)» – процедура, которая создаёт и выводит рабочее окно программы.

«procedure Button3Click(Sender: TObject)» – процедура, которая при нажатии на кнопку «Заполнить память» заполняет память случайными данными.

«procedure Button4Click(Sender: TObject)» – процедура, которая при нажатии на кнопку «Start/Stop» включает или отключает программный таймер.

«procedure Timer1Timer(Sender: TObject)» – процедура, в которой выполняется эмуляция процессов: чтение-чтение, чтение-запись, запись-запись.

«procedure N641Click(Sender: TObject)» – процедура, которая задаёт объём памяти равный 64 килобайт.

«procedure ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer)» – процедура, посредством которой происходит прокрутка диаграмм работы программы.

«procedure N3Click(Sender: TObject)» – процедура, которая при нажатии на кнопку «Выход» закрывает программу.

«procedure N2Click(Sender: TObject)» – процедура, которая при нажатии на кнопку «Открыть» выводит диалоговое окно, с возможностью выбора текстового файла.

«procedure N9Click(Sender: TObject)» – процедура, которая переводит программу в режим запись-запись.

«procedure N7Click(Sender: TObject)» – процедура, которая переводит программу в режим чтение-чтение.

«procedure N8Click(Sender: TObject)» – процедура, которая переводит программу в режим чтение-запись.

«procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState)» – процедура, которая раскрашивает ячейки памяти в определённый цвет.

«p» – переменная типа Integer, которая хранит число, прочитанное из текстового файла.

«h» – переменная типа Integer, которая хранит значение ползунка горизонтальной прокрутки.

«i» – переменная типа Integer, в которую заносятся числа от 1 до 65536.

«j» – переменная типа Integer, в которую заносятся числа от 1 до 8.

«f» – переменная типа TextFile, в которую заносится текстовый файл.

«r1» – переменная типа Integer, в которую заносится адрес строки к которой обращается процесс во время чтения.

«r2» – переменная типа Integer, в которую заносится адрес строки к которой обращается процесс во время чтения.

«w1» – переменная типа Integer, в которую заносится адрес строки к которой обращается процесс во время записи.

«w2» – переменная типа Integer, в которую заносится адрес строки к которой обращается процесс во время записи.

«Buf» – переменная типа string, в которую заносится строка с числами, прочитанная из текстового файла.

«Random» – функция, которая генерирует случайные числа из заданного диапазона.

«Length» – функция, позволяющая получить число символов в строке.

«Copy» – функция, позволяющая копировать символы из строки.

«Refresh» – процедура перерисовки содержимого памяти.

«Volume» – процедура задающая размеры памяти.

«FillRect» – процедура перерисовки содержимого ячеек памяти.

«TextOut» – процедура вывода значений в ячейки памяти.

 

3.2 Руководство пользователя

 

Прикладная программа «Эмулятор многопортового запоминающего устройства» позволяет исследовать режимы: чтения/записи многопортовых асинхронных и синхронных запоминающих устройств произвольного объема; сокрытия/извлечения сообщений в стеганографических системах.

Внешний вид программы представлен на рисунке 4.

 

Рисунок 4 – Внешний вид программы

 

В верхнем левом углу программы область для просмотра содержимого регистров «АХ» и «ВХ». В нижнем левом углу программы находится временная диаграмма. В правой части программы находится область памяти. Чтобы заполнить память данными необходимо нажать по кнопке «Заполнить память» или в меню «Файл» выбрать пункт «Открыть» и в появившемся диалоговом окне (см. рисунок 5) выбрать нужный файл.

После открытия файла эмулятор заполнит память автоматически (см. рисунок 6).

Задание объёма памяти осуществляется в меню «Сервис» → «Настройки» → «Объём памяти» и в выпадающем списке выбрать требуемый значение (см. рисунок 7).

Рисунок 5 – Диалоговое окно для открытия файла

 

Рисунок 6 – Внешний вид заполненного адресного и информационного пространства запоминающего устройства

 

Рисунок 7 – Меню выбора объёма памяти

Для того чтобы выбрать требуемый режим работы эмулятора необходимо в меню «Сервис» выбрать пункт «Эмулятор» и в выпадающем списке выбрать требуемый режим (см. рисунок 8).

 

Рисунок 8 – Меню выбора режима работы эмулятора

 

Достоинствами разработанной программы является:

- адаптивность к произвольной архитектуре и типу многопортового запоминающего устройства;

- возможность демонстрации в графическом режиме обращений к ячейкам ЗУ и отображения результатов на временной диаграмме;

- возможность модификации исходного кода прикладной программы с учетом появления на рынке новых типов запоминающих устройств.

Прикладная программа ориентирована для наглядного представления архитектуры и режимов работы многопортовых запоминающих устройств, режимов сокрытия/извлечения сообщений в цифровые изображения с использованием многоканального (многослойного) способа записи кодов объектов.

 

4 Условия передачи программной документации или ее продажи

 

Передача электронного ресурса и прилагаемой к нему сопровождающей документации осуществляется в соответствии с лицензионным договором о передаче неисключительных прав на использование произведения.


Дата добавления: 2015-07-16; просмотров: 48 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Назначение программы| Ключи к успеху

mybiblioteka.su - 2015-2024 год. (0.014 сек.)