Методика организации лабораторных работ по курсу «Архитектура вычислительных систем»
Authors: Хараджян Олександр Агасійович 
Published: March 2022

Современные тенденции к использованию лицензионного программного обеспечения (с коммерческой лицензией или GPL GNU) и необходимость изучения современных архитектурных особенностей вычислительных систем требуют изменения подхода к построению лабораторных работ по курсу «Архитектура вычислительных систем» на базе процессоров Intel x86. В настоящее время в большинстве случаев лабораторные работы содержат задания на ассемблере или требуют низкоуровневого программирования устройств на языках высокого уровня (на уровне BIOS, портов, прямого доступа к видеопамяти, резидентных программ). Такой подход имеет ряд недостатков, т.к. реализуем только в DOS-подобных ОС. На современных компьютерах с ОС W2k, XP такие работы реализуются только виртуально, т.к. в современных ОС прямой доступ к аппаратуре блокирует или эмулирует ОС, либо в операционной системе MS-DOS, которую загружают с дискеты.Все современные ОС работают в защищенном режимеи обладают следующими особенностями:функции BIOS недоступны;для добавления обработчиков аппаратных прерываний необходимо иметь привилегии ОС.линейная адресация памяти.В качестве одного из подходов можно предложить разработку драйверов и служб для ОС Windows. При этом, во-первых, студентам необходимо дать административные права и доступ к реестру Windows, что крайне не желательно, и, во-вторых, иметь средства разработки драйверов DDK и Visual Studio, которые являются дорогостоящими лицензионными продуктами. Однако и при таком подходе работа с устройствами на низком уровне все равно трудно реализуема.Как альтернативный вариант, возможно использование ОС с лицензией GPL GNU, например, Linux, и соответствующими средствами разработки. Однако и в этом случае возникают проблемы.Во-первых, также как и в Windows, прямого доступа к устройствам нет, и для полноценного управления требуется разработка полнофункционального драйвера. Однако в системе присутствуют файлы, которые сопоставлены с физическими и логическими устройствами, что позволяет исследовать логическую структуру устройств без необходимости их низкоуровневого программирования. Использование этих файлов позволяет обеспечить доступ к устройствам в соответствии с правами пользователя.Если все таки возникает необходимость низкоуровневого программирования устройств, то возможно использование более открытой ОС с точки зрения программирования системных ресурсов, например QNX Momentix, которая хотя и не является ОС GNU, но предусматривает свободное распространение.Компьютерные аудитории разных факультетов имеют разные технические возможности и различный набор ПО. Поэтому при разработке курса лабораторных работ поставлена задача оптимизировать задания и необходимое ПО таким образом, что бы при смене аудитории и ОС задания лабораторных работ не требовали изменения и уточнения, т.е. единообразно исполнялись на любой платформе.Таким образом, можно предложить следующие подходы к построению курса лабораторных работ по архитектуре:архитектура процессора и памяти под ОС Windows и gcc, Dev-C++.архитектура системы (дисковые накопители и пр.) под (Linux, QNX) и gcc.вся архитектура под Linux, QNX и gcc.С учетом вышеизложенного, был разработан унифицированный курс архитектуры, который включает следующие лабораторные работы:Определение типа процессора.Определение характеристик кэш-памяти.Исследование модулей MMX, SSE.Файловая система FAT12.Загрузочные секторы MBR, PBR.Взаимодействие с клавиатурой.Взаимодействие с мышью.Взаимодействие с видеоконтроллером.Задания некоторых лабораторных работ представлены ниже.1. Определения модели процессора IA-32Изучить различия между процессорами семейства IA-32 и на их основе научиться определять модель процессора. Написать программу для определения модели процессора и его функциональных возможностей.2. Исследование кэш-памятиИзучить особенности построения и работы кэш-памяти микропроцессоров семейства IA-32. Определить эффективность обхода элементов памяти: прямой последовательный, обратный последовательный, случайный. Определение степени ассоциативности кэш-памяти.3. Файловая система FAT12Разработать программу для чтения загрузочной записи дискеты, отображения содержимого корневого каталога и выбранного подкаталога, а также просмотра содержимого выбранного файла.