Кочегаров И.И. Микроконтроллеры AVR. Лабораторный практикум (2012) (1264221), страница 2
Текст из файла (страница 2)
Дается описание ассемблера AVR, описание работы с программой AVR Studio 4.В практической части приводятся лабораторные задания для освоения работы с микроконтроллерами семейства AVR.6Глава 1. Гарвардская архитектура Гарвардская архитектура – архитектура ЭВМ, отличительнымипризнаками которой являются:1. Хранилище инструкций и хранилище данных представляютсобой разные физические устройства.2. Канал инструкций и канал данных также физически разделены.Архитектура была разработана Говардом Эйкеном в конце1930-х гг.
в Гарвардском университете.Первым компьютером, в котором была использована идея гарвардской архитектуры, был «Марк I». Гарвардская архитектура используется в ПЛК и микроконтроллерах, таких как Microchip PIC,Atmel AVR, Intel 4004, Intel 8051.Классическая гарвардская архитектураТипичные операции (сложение и умножение) требуют от любого вычислительного устройства нескольких действий:− выборку двух операндов;− выбор инструкции и ее выполнение;− и, наконец, сохранение результата.Идея, реализованная Эйкеном, заключалась в физическом разделении линий передачи команд и данных. В первом компьютере Эйкена «Марк I» для хранения инструкций использовалась перфорированная лента, а для работы с данными – электромеханическиерегистры.
Это позволяло одновременно пересылать и обрабатыватькоманды и данные, благодаря чему значительно повышалось общеебыстродействие компьютера.В гарвардской архитектуре характеристики устройств памятидля инструкций и памяти для данных не требуется иметь общими.В частности, ширина слова, тайминги, технология реализации иструктура адресов памяти могут различаться. В некоторых системахинструкции могут храниться в памяти только для чтения, в то времякак для сохранения данных обычно требуется память с возможностью чтения и записи. В некоторых системах требуется значительнобольше памяти для инструкций, чем памяти для данных, посколькуданные обычно могут подгружатся с внешней или более медленнойпамяти. Такая потребность увеличивает битность (ширину) шины7адреса памяти инструкций по сравнению с шиной адреса памятиданных.При альтернативном варианте, архитектуре фон Неймана процессор одномоментно может либо читать инструкцию, либо читать/записывать единицу данных из/в памяти. То и другое не можетпроисходить одновременно, поскольку инструкции и данные используют одну и ту же системную шину.
А в компьютере с использованием гарвардской архитектуры процессор может читать инструкции ивыполнять доступ к памяти данных в то же самое время, даже безкэш-памяти. Таким образом, компьютер с гарвардской архитектуройможет быть быстрее (при определенной сложности схемы), поскольку доставка инструкций и доступ к данным не претендуют на один итот же канал памяти. Также машина гарвардской архитектуры имеетразличные адресные пространства для команд и данных.Модифицированная гарвардская архитектураСоответствующая схема реализации доступа к памяти имеетодин очевидный недостаток – высокую стоимость. При разделенииканалов передачи команд и данных на кристалле процессора последний должен иметь почти вдвое больше выводов, так как шина адресаи шина данных составляют основную часть выводов микропроцессора.
Способом решения этой проблемы стала идея использовать общие шину данных и шину адреса для всех внешних данных, а внутрипроцессора использовать шину данных, шину команд и две шины адреса. Такую концепцию стали называть модифицированной гарвардской архитектурой.Такой подход применяется в современных сигнальных процессорах. Еще дальше по пути уменьшения стоимости пошли при создании однокристальных ЭВМ – микроконтроллеров. В них одна шина команд и данных применяется и внутри кристалла.Разделение шин в модифицированной гарвардской структуреосуществляется при помощи раздельных управляющих сигналов:чтения, записи или выбора области памяти.Гибридные модификации с архитектурой фон НейманаСуществуют гибридные архитектуры, сочетающие достоинствакак гарвардской так и фон неймановской архитектур. Современные CISC-процессоры обладают раздельной кэш-памятью 1-го уровня для инструкций и данных, что позволяет им за один рабочий тактполучать одновременно и команду, и данные для ее выполнения.То есть процессорное ядро, формально, является гарвардским, но8программно оно – фон неймановское, что упрощает написание программ.
Обычно в данных процессорах одна шина используется и дляпередачи команд, и для передачи данных, что упрощает конструкциюсистемы. Современные варианты таких процессоров могут иногдасодержать встроенные контроллеры сразу нескольких разнотипныхшин для работы с различными типами памяти – например, DDRRAM и Flash.
Тем не менее, и в этом случае шины, как правило, используются и для передачи команд, и для передачи данных без разделения, что делает данные процессоры еще более близкими к фоннеймановской архитектуре при сохранении плюсов гарвардской архитектуры.9Глава 2. Архитектура RISC RISC (от англ. restricted (reduced) instruction set computer – компьютер с сокращенным набором команд) – архитектура процессора,в которой быстродействие увеличивается за счет упрощенияинструкций, чтобы их декодирование было более простым, а времявыполнения – короче. Первые RISC-процессоры даже не имели инструкций умножения и деления. Это также облегчает повышение тактовой частоты и делает более эффективной суперскалярность(распараллеливание инструкций между несколькими исполнительными блоками).Наборы инструкций в более ранних архитектурах для облегчения ручного написания программ на языке ассемблера или прямов машинных кодах, а также для упрощения реализации компиляторов, выполняли как можно больше работы.
Нередко в наборы включались инструкции для прямой поддержки конструкций языков высокого уровня. Другая особенность этих наборов – большинство инструкций, как правило, допускали все возможные методы адресации к примеру, и операнды, и результат в арифметических операциях доступны не только в регистрах, но и через непосредственнуюадресацию, и прямо в памяти.
Позднее такие архитектуры были названы CISC (англ. Complex instruction set computer).Однако многие компиляторы не задействовали все возможноститаких наборов инструкций, а на сложные методы адресации уходитмного времени из-за дополнительных обращений к медленной памяти. Было показано, что такие функции лучше исполнять последовательностью более простых инструкций, если при этом процессор упрощается и в нем остается место для большего числа регистров, засчет которых можно сократить количество обращений к памяти.В первых архитектурах, причисляемых к RISC, большинство инструкций для упрощения декодирования имеют одинаковую длину ипохожую структуру, арифметические операции работают только с регистрами, а работа с памятью идет через отдельные инструкции загрузки (load) и сохранения (store). Эти свойства и позволили лучшесбалансировать этапы конвейеризации, сделав конвейеры в RISCзначительно более эффективными и позволив поднять тактовую частоту.В середине 1970-х гг.
разные исследователи (в частности,из IBM) показали, что большинство комбинаций инструкций и различных методов адресации не использовались в большинстве про10грамм, порождаемых компиляторами того времени. Также было обнаружено, что в некоторых архитектурах сложные операции зачастуюбыли медленнее последовательности более простых операций, выполняющих те же действия. Это было вызвано, в частности, тем, чтомногие архитектуры разрабатывались в спешке и хорошо оптимизировался микрокод только тех инструкций, которые использовалисьчаще.Поскольку многие реальные программы тратят большинствосвоего времени на выполнение простых операций, многие исследователи решили сфокусироваться на том, чтобы сделать эти операциимаксимально быстрыми. Тактовая частота процессора ограниченавременем, которое процессор тратит на выполнение наиболее медленных шагов в процессе обработки любой инструкции; уменьшениедлительности таких шагов дает общее повышение частоты, а такжезачастую ускоряет выполнение и других инструкций за счет болееэффективной конвейеризации.
Фокусирование на простых инструкциях и ведет к архитектуре RISC, цель которой – сделать инструкциинастолько простыми, чтобы они легко конвейеризировались и тратили не более одного такта на каждом шаге конвейера на высоких частотах.Позднее было отмечено, что наиболее значимая характеристикаRISC в разделении инструкций для обработки данных и обращения кпамяти – обращение к памяти идет только через инструкции loadи store, а все прочие инструкции ограничены внутренними регистрами.