Гарвардская архитектура. Степаненко. Лабораторная работа Количество часов 2 часа Тема работы Изучение принципа работы гарвардской архитектуры
Скачать 44.64 Kb.
|
Лабораторная работа № Количество часов: 2 часа Тема работы: Изучение принципа работы гарвардской архитектуры. Цель работы: Исследование элементов функционирования гарвардской архитектуры. Задача работы: Изучить элементы логики гарвардской архитектуры. Создать модель гарвардской архитектуры в Logisim. Теоритическая часть: Гарвардская архитектура была разработана Говардом Эйкеном в конце 1930-х годов в Гарвардском университете. В должности инженера IBM Говард Эйкен руководил работами по созданию первого американского компьютера «Марк I». Гарвардская архитектура — архитектура ЭВМ, отличительным признаком которой является раздельное хранение и обработка команд и данных. Термин "архитектура" используется в популярной литературе по вычислительной технике достаточно часто. К сожалению, определение этого понятия и его содержание могут у разных авторов достаточно отличаться. Поэтому попробуем разобраться в этом вопросе более тщательно. Гарварда архитектура является конфигурацией компьютера, в котором данные и инструкция программы расположены в отдельных ячейках памяти, которые могут быть решены независимо друг от друга. То есть это термин, используемый для компьютерной системы, которая содержит две отдельные области: для команд или инструкций и для данных. Следовательно, основная функция этой архитектуры - хранить данные физически разделенными, обеспечивая разные пути прохождения сигналов для инструкций и данных. В этой архитектуре формат и носители этих двух сегментов системы могут быть неодинаковыми, поскольку эти две части состоят из двух отдельных структур. Некоторые примеры архитектур Гарварда включают ранние компьютерные системы, в которых программные инструкции могли быть на одном носителе, например, на перфокартах, а сохраненные данные могли быть на другом носителе, например, на магнитных лентах. Как устроена гарвардская архитектура. Гарвардская архитектура имеет разные адресные области памяти для программы и данных. Это дает возможность спроектировать схему таким образом, чтобы шина и схема управления могли использоваться для обработки потока информации из памяти программ, а отдельная схема - для обработки потока информации в память данных. Использование отдельных шин означает, что программа может извлекаться и выполняться без прерывания из-за случайной передачи данных в память данных. Например, в простой версии этой архитектуры блок восстановления программы может быть занят извлечением следующей инструкции в программной последовательности и параллельным выполнением операции передачи данных, которая могла бы быть частью предыдущей программной инструкции. , На этом уровне гарвардская архитектура имеет ограничение, поскольку обычно невозможно поместить программный код в память данных и выполнить его оттуда. Дополнения в архитектуре К простой форме гарвардской архитектуры можно добавить множество более сложных существующих вариантов. Распространенным дополнением является добавление кэша инструкций к шине данных программы, что позволяет блоку выполнения инструкций более быстрый доступ к следующему шагу в программе без необходимости переходить к более медленной памяти, чтобы перейти к этому шагу. программы каждый раз, когда это необходимо. Адреса памяти Компьютер с гарвардской архитектурой имеет разные области адресов инструкций и данных: адрес инструкции один не совпадает с областью адреса данных один. Первый адрес инструкции может содержать 24-битное значение, а первый адрес данных может указывать на восьмибитовый байт, который не является частью этого 24-битового значения. Система памяти Поскольку существует отдельная область памяти для инструкций и данных, разделяющая как сигналы, так и память, в которой хранятся код и данные, это позволяет получить доступ к каждой из систем памяти одновременно. Преимущество - При передаче меньше вероятность повреждения, так как данные и инструкции передаются по разным шинам. - Данные и инструкции доступны таким же образом. - Позволяет использовать разные носители для хранения инструкций и данных. Например, вы можете поместить инструкции в дешевое ПЗУ, а данные - в дорогостоящее ОЗУ. - В двух запоминающих устройствах могут использоваться ячейки разного размера, что позволяет эффективно использовать ресурсы. - Он имеет большую пропускную способность памяти, которая более предсказуема, поскольку имеет отдельную память для инструкций и данных. Уровень защиты В системах, не имеющих блока управления памятью, он предлагает дополнительный уровень защиты, поскольку данные не могут быть запущены как код, что может подвергнуть систему множеству проблем, таких как переполнение буфера. Вот почему он популярен в небольших встроенных системах, таких как микроволновая печь или часы. Более высокая скорость Гарвардская архитектура позволяет читать инструкции, а также получать доступ к памяти данных одновременно с высокой скоростью. Он предлагает более высокую производительность, поскольку позволяет одновременно получать данные и инструкции, которые хранятся в отдельных запоминающих устройствах и перемещаются по разным шинам. Гарвардская архитектура обычно помогает компьютеру с определенным уровнем сложности работать быстрее, чем архитектура фон Неймана, при условии, что нет необходимости разделять ресурсы между кодом и памятью данных. Если ограничения выводов или другие факторы вынуждают использовать одну шину для доступа к обоим пространствам памяти, эти преимущества, вероятно, будут в значительной степени сведены на нет. Недостатки Большая сложность и стоимость Проблема с архитектурой Гарварда заключается в ее большой сложности и стоимости, потому что вместо одной шины данных теперь нужны две. Производство компьютера с двумя шинами намного дороже и занимает больше времени. Требуется блок управления для двух автобусов, разработка которого более сложная, трудоемкая и дорогая. Это означает более сложную реализацию для производителей. Для этого требуется больше контактов на процессоре, более сложная материнская плата и необходимость дублировать микросхемы ОЗУ, а также более сложная конструкция кеша. Мало пользы Гарвардская архитектура широко не используется, что затрудняет ее реализацию. Вот почему он редко используется вне процессора. Однако эта архитектура иногда используется в ЦП для управления его кэшами. Оперативное запоминающее устройство (ОЗУ)Рис 1. Элементы структурной схемы: память команд и данных. Принцип работы:Компонент ОЗУ, бесспорно самый сложный компонент встроенной библиотеки Logisim, хранит до 16777216 значений (это задаётся в атрибуте Разрядность адреса), каждое из которых может включать до 32 битов (задаётся в атрибуте Разрядность данных). Схема может считывать и записывать значения в ОЗУ. Кроме того, пользователь может интерактивно изменять отдельные значения с помощью Инструмента Нажатие, или менять всё содержимое через Инструмент Меню. Текущие значения отображаются в компоненте. Их адреса перечислены серым слева от области отображения. Значения внутри представлены в шестнадцатеричном виде. Значение выбранного в данный момент адреса будет отображаться негативным текстом (белым по-чёрному). Компонент ОЗУ поддерживает три интерфейса, в зависимости от значения атрибута Интерфейс данных. Один синхронный порт чтения/записи (по умолчанию) Компонент имеет один порт на восточном крае, который служит для чтения и записи данных. Что он осуществляет, зависит от значения на входе, отмеченном ld: 1 (или плавающее значение) означает чтение данных по адресу, поданному на западный край компонента, а 0 означает запись данных, поступивших на порт. Для передачи данных в компонент и из него, вам нужно использовать компонент Управляемый буфер. Один асинхронный порт чтения/записи Это тоже самое, что и выше, но в данном варианте нет тактового входа. Значение, поступившее на шину данных, записывается в память, когда значение на входе ld - 0. Если адрес или данные меняются, пока значение на входе ld 0, то происходит дополнительная операция записи. Этот вариант более приближен к интерфейсу многих доступных типов памяти с произвольным доступом. Раздельные порты чтения и записи Предоставляются два порта данных - один на западном крае для записи данных, и другой на восточном крае для чтения данных. Этот вариант устраняет необходимость Управляемого буфера, так что он проще в использовании. Описание входов/выходов:A на западном крае (вход, разрядность соответствует атрибуту Разрядность адреса) Выбирает, к какому значению в памяти схема в данный момент получает доступ. D на западном крае (вход, разрядность соответствует атрибуту Разрядность данных) Этот вход представлен, только если "Раздельные порты чтения и записи" выбрано для атрибута Интерфейс данных. Когда запрошена запись (через изменение значения на тактовом входе с 0 на 1, пока на входах sel и str 1 или плавающее значение), значение, поданное на этот порт, записывается в память по выбранному в данный момент адресу. D на восточном крае (вход/выход или выход, разрядность соответствует атрибуту Разрядность данных) Если на входах sel и ld 1 или плавающее значение, то компонент ОЗУ выдаёт на этот порт значение по выбранному в данный момент адресу. Если представлен один порт чтения/записи, то когда запрошена запись, значение, считанное по этому порту, записывается в память. str на южном крае (вход, разрядность равна 1) Запись: этот вход представлен, только если "Раздельные порты чтения и записи" выбрано для атрибута Интерфейс данных. Когда на нём 1 или плавающее значение, тактовый импульс приведёт к записи в память данных, полученных на западном крае (при условии, что на входе sel тоже 1 или плавающее значение). selна южном крае (вход, разрядность равна 1) Выбор кристалла: этот вход включает или выключает весь модуль ОЗУ, в зависимости от того, 1/плавающее значение на нём, или 0. Это вход предназначен в первую очередь для ситуаций, когда у вас есть несколько модулей памяти, только один из которых может быть включен в какой-то момент. Треугольник на южном крае (вход, разрядность равна 1) Тактовый вход: отсутствует, если значение атрибута Интерфейс данных - "Один асинхронный порт чтения/записи". В других случаях, когда на входе ld 0, и значение на нём меняется с 0 на 1 (и ещё на входе sel 1/неопределённость и на входе clr 0), значение по выбранному в данный момент адресу меняется на значение на контакте D. Но пока на тактовом входе сохраняется 0 или 1, значение входа D не будет записано в память. ldна южном крае (вход, разрядность равна 1) Чтение: выбирает, должно ли ОЗУ выдавать (на выход D) значение по текущему адресу. Такое поведение выхода разрешено, если на входе out 1 или неопределённость; если же на входе out 0, тогда никакого значения не будет передано на D, а если порт - совмещённый для чтения/записи, то будет разрешена запись. clr на южном крае (вход, разрядность равна 1) Очистка: когда на этом входе 1, все значения в памяти будут фиксированы на 0, вне зависимости от значений на других входах. СчётчикРис 2. Элемент структурной схемы: счетчик. Принцип работы:Счётчик хранит одно значение, которое выдаётся на выход Q. Каждый раз, когда тактовый вход (отмеченный треугольником на южном крае компонента) срабатывает в соответствии с его атрибутом Срабатывание, значение в счётчике может обновиться на основании значений двух входов на западном крае компонента: верхнего входа, названного загрузка, и нижнего, названного счёт, и они интерпретируются следующим образом:
Диапазон счёта можно настроить с помощью атрибута Максимальное значение. Когда счётчик достигает этого значения, следующее увеличение возвращает значение счётчика обратно к 0; а если значение счётчика 0, то уменьшение возвратит счётчик к его максимальному значению. В дополнение к выходу Q компонент также имеет однобитный выход перенос. На этом выходе 1, когда счётчик имеет своё максимальное значение и входы загрузка и счёт показывают, что значение компонента должно увеличиться на следующем шаге; или когда значение счётчика - 0, и входы загрузка и счёт показывают, что значение компонента должно уменьшиться на следующем шаге. Вход Очистка асинхронно сбрасывает значение счётчика на 0 (все нули); кроме того, пока на входе Очистка 1, значение фиксировано на 0 вне зависимости от тактового входа. Описание входов/выходов:Восточный край, отмечен Q (выход, разрядность соответствует атрибуту Биты данных) Выдаёт значение, хранящееся в данный момент в счётчике. Восточный край, нижний контакт (выход, разрядность равна 1) Перенос: когда входы загрузка и счёт указывают счётчику увеличиться, значение на этом выходе 1, если регистр имеет максимальное значение. Когда входы загрузка и счёт указывают счётчику уменьшиться, значение на этом выходе 1, если регистр имеет значение 0. Во всех других случаях на этом выходе 0. Западный край, верхний контакт (вход, разрядность равна 1) Загрузка: когда на этом входе 1, пока на входе счёт 0, счётчик загрузит значение со входа данные при следующем срабатывании тактового входа; или, если на входе счёт 1, значение счётчика уменьшится. Западный край, средний контакт, отмечен D (вход, разрядность соответствует атрибуту Биты данных) Данные: когда срабатывает тактовый вход при 1 на входе загрузка и 0 на входе счёт, значение счётчика сменится на значение, поступившее на этот вход. Западный край, нижний контакт, отмечен ct (вход, разрядность равна 1) Счёт: когда на этом входе 1, или он не подключен, значение счётчика увеличивается, когда срабатывает тактовый вход, или уменьшается, если на входе load тоже была 1. Южный край, отмечен треугольником (вход, разрядность равна 1) Тактовый вход: в момент срабатывания этого входа (как указано в атрибуте Срабатывание) значение счётчика обновляется, как указано входами загрузка и счёт. Южный край, отмечен 0 (вход, разрядность равна 1) Очистка: если на этом входе 0 или неопределённое значение, то он не имеет эффекта. Пока на нём 1, значение счётчика асинхронно фиксируется на 0. Это происходит асинхронно - то есть вне зависимости от текущего значения на тактовом входе. Пока на нём 1, другие входы не имеют эффекта. Моделирование: Соберем структурную схему гарвардской архитектуры из вышеперечисленных элементов. Рис 3. Полная структурная схема гарвардской архитектуры. Принцип работы схемы Принцип работы данной схемы состоит в сложении текущего значения правого счетчика и значения этого же счетчика из памяти Рис. 4 При нажатии на кнопку в схеме происходит обновление значение в левом счетчике, тем самым происходит сдвиг выбора адреса в каждой из ОЗУ в данной схеме на 1 столбец, в ОЗУ с командами мы имеем в ячейках две инструкции первая несет сложения значений, вторая же в свою очередь сохраняет полученный результат. Функция от нажатия на кнопку зависит от расположения команд в ячейке. Расположение команд может быть произвольным, таким образом от порядка расположения команд зависит принцип работы схем. На примере рисунка 4 можно объяснить работу участка схемы, при значении 0 никакая из инструкций выбрана не будет, но уже на первом нажатии на кнопку сработает инструкция 1-сложить, на втором нажатии снова 1-снова сложение, а на третьем нажатии мы попадем на инструкцию- сохранить, поэтому происходит простое сложение текущего значения правого счетчика и значения счетчика из его же памяти. Эта архитектура предполагает наличие в системе вывода отдельной памяти для данных и отдельной памяти для команд. Обмен процессора с каждым из двух типов памяти происходит по своей индивидуальной шине. Предположим, в ОЗУ хранится набор чисел, а нам нужно сложить все числа и сохранить результат (в свободную ячейку). Будем хранить команды («сложить» и «сохранить») в одном ОЗУ, а обрабатываемые числа — в другом. Такой способ хранения является отличительным признаком Гарвардской архитектуры. Команда «1» будет записывать число из сумматора в аккумулятор, команда «2» будет записывать число из аккумулятора во 2-ое ОЗУ Предположим, в ОЗУ хранятся несколько массивов чисел. Т.е. нам необходимо загружать числа из ОЗУ в аккумулятор загружать числа из сумматора в аккумулятор сохранять числа из аккумулятора в ОЗУ Приложения Этот тип архитектуры имеет широкое применение в продуктах для обработки видео и аудио. С каждым инструментом для обработки видео и аудио можно увидеть рисунок архитектуры Гарварда. Процессоры Analog Devices Blackfin - это именно то устройство, в котором он нашел свое основное применение. В других продуктах на базе электронных микросхем также широко используется гарвардская архитектура. Однако большинство компьютеров используют архитектуру фон Неймана и используют кеш-память ЦП для достижения перекрытия. Происхождения Работа, проделанная в Гарвардском университете в 1940-х годах под руководством Говарда Эйкена, позволила создать оригинальный релейный компьютер, названный Harvard Mark I, что является термином, из которого возникла концепция архитектуры Гарварда. Этот компьютер использовал отдельные блоки памяти для хранения данных и инструкций. Затем произошли значительные изменения в этой архитектуре. Айкен поощрял использование отдельной памяти для данных и программных инструкций, с отдельными шинами для каждой. Первоначальная архитектура Гарварда обычно хранила инструкции на перфолентах и данные на электромеханических счетчиках. Хранение данных на этих ранних машинах полностью находилось в центральном процессоре. С другой стороны, они не давали доступа к хранению инструкций в виде данных. Оператор должен был загрузить программы. Гарвардская архитектура может обрабатывать данные и выполнять инструкции одновременно, поскольку каждая из них имеет собственную адресную шину. Модель Эта модель отличается тем, что информационные шины и хранилище физически разделены для данных и программного кода. Поскольку шины работают автономно, данные и программные инструкции могут быть получены одновременно, что повышает скорость по сравнению с конструкцией с одной шиной. Таким образом, модель Гарварда оказывается более сложной. Тем не менее, независимость автобусов позволяет избежать узких мест, создаваемых архитектурой фон Неймана. Компьютер может быть быстрее для схемы определенной сложности, потому что поиск инструкций и доступ к данным не должны бороться за единственную шину памяти. Для работы есть два адреса памяти. Следовательно, есть регистр памяти для машинных команд и другой регистр памяти для данных. В отличие от архитектуры фон Неймана, которая использует шину для перемещения как инструкций, так и данных в памяти, архитектура Гарварда использует одну область памяти для данных, а другую - для инструкций. Вопросы: |