Перейти к основному содержимому

ЛР №4 Выделенный доступ к памяти и тестирование ОП

Выделенный доступ к памяти в RISC процессорах. Тестирование компонентов ОП в процессорной системе.

Для кого этот документ

  • Студентам курса "Организация ЭВМ"
  • Необходимое ПО: Quartus II

Цель работы

Изучить, каким образом выполняется взаимодействие процессора с ОП и с устройствами ввода вывода, уяснить особенности команд load/store, выполнить тестирование всех компонентов ОП процессорной системы.

Объекты изучения

  • команды для взаимодействия с ОП и портами ввода вывода load/store;
  • компоненты оперативной памяти в процессорной системе,
  • приложение Intel Monitor Program (IMP), а точнее, его возможности по инициализации памяти процессорной системы и отображению её содержимого на экране монитора инструментального компьютера.

Планируемые результаты обучения

После выполнения этой работы студенты будут знать:

  • Стили big-endian и little-endian размещения информации в ОП;
  • Как происходит взаимодействие процессора с ОП и с портами ввода вывода в процессорной системе;
  • Как организована оперативная память в процессорной системе и в чем особенности отдельных её компонентов.

Смогут:

  • Создавать и использовать программные средства для тестирования компонентов ОП процессорной системы.

Приобретут навыки:

  • Экспериментирования и исследования для получения знаний об используемой в работе процессорной системы эмпирическим путем;
  • Разработки и эксплуатации программных средств технической диагностики аппаратных ресурсов процессорной системы.

Исходные файлы лабораторной работы

Исходным является файл lab5_part3 (Листинг 7), в котором содержится программа тестирования фрагмента ОП. Этот файл с подробными комментариями приведен в приложении – Б.

Подготовка к лабораторной работе

  1. Изучите описание команд load/ store, посредством которых процессор взаимодействует с оперативной памятью и с портами ввода/вывода. Включите в отчет их краткое описание и форматы команд.
  2. Выясните, какой способ для адресации операндов в ОП и в портах ввода/вывода используется в этих командах.
  3. Изучите назначение и возможности команды Memory fill из меню Action приложения IMP. Включите в отчет её краткое описание.
  4. Уясните пункты задания, выполняемого в текущей лабораторной работе.
  5. Уясните логику работы программы lab5_part3, которая тестирует фрагмент ОП в процессорной системе. Она находится в одноименном файле, и её текст с подробными комментариями приведен в приложении.
  6. Выполните редактирование программы для выполнения пунктов 6 и 7 третьей части задания и подготовьте новые исходные данные для тестирования ОП, соответствующие индивидуальному варианту задания. Включите текст измененной программы с обновленными данными в отчет.

Вопросы для самоконтроля

  1. Какой формат используется для кодирования команд load, store? Подтвердите свое заключение отчетными материалами.
  2. Данные какого формата могут участвовать в пересылках между процессором и ОП?
  3. В чем особенность выполнения команд пересылки данных между процессором и портами ввода/вывода?
  4. Какой способ адресации применяется для указания ячеек ОП и портов ввода/вывода в процессорной системе?
  5. В чем заключается понятие «выровненные данные»?
  6. В чем особенность выполнения команд загрузки, если формат загружаемых данных не совпадает с разрядностью регистров процессора?
  7. Какие бывают стили размещения данных в оперативной памяти вычислительной машины? Какой из них используется в исследуемой процессорной системе?
  8. Какие компоненты оперативной памяти используются в процессорной системе?
  9. Что является запоминающим элементом в каждом из них?
  10. Какова разрядность адреса ячейки ОП или регистров портов ввода вывода?
  11. Адресное пространство оперативной памяти и ввода вывода в процессорной системе является разделенным или совмещенным?
  12. Какого типа кэш память используется в процессорной системе?
  13. В чем заключается конфигурирование кэш памяти и как её выполнить?
  14. По результатам защиты лабораторной работы №5 в текущем контроле успеваемости начисляются баллы в диапазоне от 3 до 5.

Порядок выполнения лабораторной работы

Часть 1. Выполнение команд сохранения (store) в процессорной системе

1.1. Напишите фрагмент программы, которая будет сохранять слово в ОП по начальному адресу статической памяти, используемой в процессорной системе. Затем выполняется сохранение этого же слова по смещенному на единицу адресу. Затем по адресу, смещенному на 2, на 3, на 4 и на 5, соответственно. Рекомендуется в регистр, содержимое которого сохраняется в ОП, предварительно записать значение 0x12345678. Перед запуском программы рекомендуется очистить записываемую область памяти с помощью команды Memory fill из контекстно-зависимого меню. Исследуйте возможности этой команды и включите их описание в отчет. Причем, каждый раз перед выполнением следующей команды записи в ОП очищайте информацию, записанную предыдущей командой. Наблюдайте выполнение программы по шагам, используя вкладку Memory приложения AMP. Сравнивайте наблюдаемый результат с предполагаемым результатом. Зафиксируйте в отчете ваши наблюдения в виде снимков экрана ПК и ваши объяснения.

1.2. Модифицируйте программу из предыдущего пункта таким образом, чтобы обращение к памяти производилось полусловами. Наблюдайте выполнение программы по шагам и фиксируйте Ваши наблюдения и объяснения в отчете.

1.3. Модифицируйте программу из предыдущего пункта таким образом, чтобы обращение к памяти производилось байтами. Наблюдайте выполнение программы по шагам и фиксируйте Ваши наблюдения и объяснения в отчете.

Часть 2. Выполнение команд загрузки (load) в процессорной системе

2.1. Модифицируйте программу из части 1 таким образом, чтобы в программе теперь выполнялось чтение из последовательных адресов ОП слов, полуслов, байтов аналогично тому, как это делалось в пунктах 1-3 первой части. Перед выполнением команд чтения из ОП, для наглядности, рекомендуется предварительно выполнить запись в последовательные ячейки памяти следующих двух слов 0х23456789, 0хabcdef01. Считываемую из ОП информацию загружайте в регистры процессора с последовательными номерами. Рассмотрите варианты использования команд загрузки операндов как со знаком, так и без знака. Поместите в отчет наблюдаемые результаты, в виде снимков экрана ПК с содержимым регистров и сделанные вами выводы.

Часть 3. Тестирование всех типов оперативной памяти, используемой в процессорной системе

Для выполнения этой части задания предлагается использовать программу lab5_part3, листинг которой содержится в приложении – Б.

Вначале программа гасит все светодиоды. Затем она осуществляет запись в последовательные ячейки памяти, начиная с адреса А_start по адрес A_end, включительно, некоторых значений, используя команды сохранения слов. Программа, после выполнения записи в ячейку памяти, выполняет ее считывание и сравнение с записываемой величиной.

При обнаружении несовпадения программа зажигает красные светодиоды и завершает свое выполнение. Записываемые в оперативную память последующие значения получаются путем прибавления некоторого приращения step к предыдущему значению.

Если в процессе выполнения программа не обнаруживает несовпадения записываемых и считываемых из памяти значений для всего диапазона ОП, то программа зажигает зеленые светодиоды и завершает свое выполнение.

Внесите следующие изменения в программу. В качестве начального значения, записываемого в ОП, используйте порядковый номер студента в списке группы. Приращение определите путем пересчета порядкового номера студента в списке группы по модулю семь.

3.1. Выполните программу, используя в качестве ОП статическую память. С помощью вкладки Memory приложения АМР убедитесь, что заполнение ОП произошло в соответствии с заданным вариантом, причем во всем заданном диапазоне. Выполните снимки экрана монитора ПК, отражающие содержимое ОП в начале и в конце диапазона и поместите их в отчет.

3.2. Установите конечный адрес диапазона ОП, выходящий за пределы статической памяти. Отразите в отчете наблюдаемый результат.

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

3.4. Внесите изменения в программу таким образом, чтобы заполнение ОП выполнялось полусловами. Добейтесь правильного завершения программы, сопровождаемое загоранием зеленых светодиодов. Включите в отчет снимки экрана ПК, подтверждающие правильное заполнение ОП и листинг отлаженной программы.

3.5. Внесите изменения в программу таким образом, чтобы заполнение ОП выполнялось байтами. Добейтесь правильного завершения программы, сопровождаемое загоранием зеленых светодиодов. Включите в отчет снимки экрана ПК, подтверждающие правильное заполнение ОП и листинг отлаженной программы.

3.6. Проверьте правильность работы программы, используя в качестве ОП динамическую память. Учтите, что в динамической памяти размещена сама программа. Поэтому в качестве начального адреса ОП используйте адрес ячейки, следующей сразу за программой. Обратите внимание на существенное увеличение времени выполнения программы. Включите в отчет свои соображения по этому поводу.

3.7. Проверьте правильность работы программы, используя в качестве ОП память, реализованную внутри кристалла. Следует заметить, что эта память имеет некоторую особенность, которая должна быть выявлена студентом в процессе её тестирования. Добейтесь правильного завершения программы. Отразите в отчете выявленную особенность.

Отчетные материалы

Отчетные материалы должны содержать:

  1. Цель лабораторной работы.
  2. Материалы, связанные с подготовкой к работе, включая теоретическую часть и исходный код программной заготовки с именем lab5_part3.
  3. Информацию по выполнению каждого пункта задания. Причем в отчете должны содержаться выполняемые Вами действия, наблюдаемые результаты, и Ваши объяснения. Наблюдаемые результаты должны быть подтверждены снимками экрана инструментального компьютера или снимками стенда.
  4. Подготовленные и отлаженные вами фрагменты программ, выполняющие пункты настоящего описания.
  5. Краткое заключение.

Защита лабораторной работы

На защите работы студенты должны демонстрировать знания, умения и навыки, перечисленные в разделе «Планируемые результаты обучения».

Уметь организовывать взаимодействие процессора с ОП и c портами ввода/вывода с помощью команд load/store;

Понимать особенности этих команд;

Знать какие ресурсы стенда используются для реализации ОП в процессорной системе и понимать в чем их особенности.

Примерные вопросы

  • Какой формат используется для кодирования команд load/store? Выполните декодирование нескольких команд из используемых в работе фрагментов программ и прокомментируйте содержимое отдельных полей команды. Рекомендуется для этого использовать текстовый редактор.
  • Какие способы адресации используются в командах load/store для адресации операндов? Прокомментируйте свой ответ, выполнив декодирование некоторых команд из используемых в работе фрагментов программ.
  • Какая особенность памяти on-chip memory была выявлена при выполнении третьей части лабораторной работы? Продемонстрируйте эту особенность экспериментально.
  • Как экспериментально определить размер типов ОП, используемой в процессорной системе?

Примерные задания

  • Используя вкладку Memory отобразите содержимое ОП с указанного адреса с использованием слов. Объясните по каким адресам в ОП хранятся отдельные байты информации. Объясните по каким адресам в ОП хранятся отдельные полуслова информации. Подтвердите экспериментально.
  • Если выполнять последовательное чтение из ОП с заданного адреса слов, полуслов и байтов с загрузкой их в смежные регистры процессора, то каким станет содержимое РП после этого? Подтвердите свой ответ экспериментально.
  • В чем отличие команд загрузки со знаком от команд загрузки. Подтвердите своё мнение экспериментально.
  • Как заполнить некоторый фрагмент ОП некоторым константным значением с помощью приложения IMP? Например, если трактовать фрагмент ОП как символьный буфер, то как его очистить, то есть заполнить пробелами? Продемонстрируйте это с использованием стенда.

Приложения

Приложение – А

Команды «load», «store»

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

  • ldw(load word) rB, byte_offset (rA) – загрузка в регистр rB слова из ОП. Адрес операнда в ОП определяется путем сложения содержимого регистра rА и смещения byte_offset: (rA) + смещение.
  • stw(store word) rB, byte_offset (rA) – сохранение слова из rB в ОП по адресу (rA) + смещение.
  • ldb (load byte) – загрузка в регистр процессора байта со знаком из ОП.
  • ldbu (load byte unsigned) – загрузка в регистр процессора байта без знака из ОП.
  • ldh (load halfword) – загрузка в регистр процессора полуслова со знаком из ОП.
  • ldhu (load halfword unsigned) – загрузка в регистр процессора полуслова без знака из ОП.

При загрузке операнда со знаком в 32-битный регистр операнд дополняется до 32 разрядов знаковым разрядом.

При загрузке операнда без знака в 32-битный регистр операнд дополняется до 32 разрядов нулевыми разрядами.

Приложение – Б

Листинг 7

Исходный код программы lab5_part3, тестирования фрагмента ОП

Примечание: Код листинга 7 будет добавлен вручную.

Чеклист выполнения

  • Работа выполнена
  • Отчет подготовлен