Гарвард против принстона

Много лет назад правительство Соединенных Штатов дало задание Гарвард­скому и Принстонскому университетам разработать архитектуру компьютера для военно-морской артиллерии. Принстонский университет разработал ком­пьютер, который имел общую память для хранения программ и данных. Та­кая архитектура компьютеров больше известна как архитектура Фон-Нейма­на по имени научного руководителя этой разработки (рис. 1.3).

В этой архитектуре блок интерфейса с памятью выполняет арбитраж запро­сов к памяти, обеспечивая выборку команд, чтение и запись данных, размеща­емых в памяти или внутренних регистрах. Может показаться, что блок интер­фейса является наиболее узким местом между процессором и памятью, так как одновременно с данными требуется выбирать из памяти очередную команду. Однако во многих процессорах с Принстонской архитектурой эта проблема ре­шается путем выборки следующей команды во время выполнения предыдущей. Такая операция называется предварительной выборкой («предвыборка»), и она реализуется в большинстве процессоров с такой архитектурой.

Рис. 1.3 - Структура компьютера с Принстонской архитектурой.

Гарвардский университет представил разработку компьютера, в котором для хранения программ, данных и стека использовались отдельные банки па­мяти (рис. 1.4)

Принстонская архитектура выиграла соревнование, так как она больше соответствовала уровню технологии того времени. Использование общей па­мяти оказалось более предпочтительным из-за ненадежности ламповой элек­троники (это было до широкого распространения транзисторов) - при этом возникало меньше отказов.

Гарвардская архитектура почти не использовалась до конца 70-х годов, когда производители микроконтроллеров поняли, что эта архитектура дает преимущества устройствам, которые они разрабатывали.

Основным преимуществом архитектуры Фон Неймана является то, что она упрощает устройство микропроцессора, так как реализует обращение только к одной общей памяти. Для микропроцессоров самым важным являет­ся то, что содержимое ОЗУ (RAM - Random Access Memory) может быть использовано как для хранения данных, так и для хранения программ. В не­которых приложениях программе необходимо иметь доступ к содержимому стека. Все это предоставляет большую гибкость для разработчика программ­ного обеспечения, прежде всего в области операционных систем реального времени, о которых пойдет речь позднее.

Гарвардская архитектура выполняет команды за меньшее количество так­тов, чем архитектура Фон Неймана. Это обусловлено тем, что в Гарвардской архитектуре больше возможностей для реализации параллельных операций. Выборка следующей команды может происходить одновременно с выполне­нием предыдущей команды, и нет необходимости останавливать процессор на время выборки команды.

Рис. 1.4 - Структура компьютера с Гарвардской архитектурой

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

Рис. 1.5 - Выполнение команды mov Асс, Reg в Принстонской архитектуре

В Гарвардской архитектуре, обеспечивающей более высокую степень па­раллелизма операций, выполнение текущей операции может совмещаться с выборкой следующей команды (рис 1.6). Команда также выполняется за два цикла, но выборка очередной команды производится одновременно с вы­полнением предыдущей. Таким образом, команда выполняется всего за один цикл (во время чтения следующей команды).

Рис. 1.6 - Выполнение команды mov Асс, Reg в Гарвардской архитектуре.

Этот метод реализации операций («параллелизм») позволяет командам вы­полняться за одинаковое число тактов, что дает возможность более просто опре­делить время выполнения циклов и критических участков программы. Это обсто­ятельство является особенно важным при выборе микроконтроллера для приложений, где требуется строгое обеспечение заданного времени выполнения.

Например, микроконтроллер PIC фирмы Microchip выполняет любую команду, кроме тех, которые модифицируют содержимое программного счет­чика, за четыре такта (один цикл). Это упрощает реализацию критических ко времени процедур по сравнению с микроконтроллером Intel 8051, где для выполнения команд может потребоваться от 12 до 64 тактов.

Следует отметить, что такие общие способы сравнения производительнос­ти не следует использовать для всех процессоров и микроконтроллеров, в ко­торых реализуются эти две архитектуры. Сравнение лучше проводить примени­тельно к конкретному приложению. Различные архитектуры и устройства имеют свои специфические особенности, которые позволяют наилучшим образом реализовать те или иные приложения. В некоторых случаях конкретное прило­жение может быть выполнено только с использованием определенной архи­тектуры и специфических особенностей микроконтроллера.

Многие, вероятно, подумают, что Гарвардс­кая архитектура - это единственно правильный выбор. Но Гарвардская архи­тектура является недостаточно гибкой для некоторых программных проце­дур, которые требуются для реализации ряда приложений.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: