На каждом этапе развития комплекса идей и технических решений, составляющих фундамент архитектуры современных микропроцессоров, в силу возможностей элементной базы и предпочтений сравнительно небольшого числа фирм производителей микропроцессоров доминирует определенная взаимосвязанная совокупность архитектурных идей.
По началу процессоры имели системы команд, сформированные на основе анализа задач, для решения которых создавался компьютер. Основным критерием оптимизации системы команд была минимизация длины программ, что влекло за собой формирование довольно емких наборов инструкций. Но на сегодняшний день наибольший объем создаваемых программ разрабатывают на высокоуровневых языках программирования, и код таких программ генерируется компилятором. Анализ кода этих программ показал, что практически используется только ограниченный набор простых инструкций процессоров, так как компиляторы не способны эффективно использовать сложные команды.
Таким образом процессоры могут быть разбиты на два класса: RISC-процессоры с сокращенным набором инструкций (Reduced Instruction Set Computer) и CISC-процессоры со сложным набором команд (Complete Instruction Set Computer).
Как правило, в CISC-процессорах команды имеют много разных форматов и требуют для своего представления различного числа ячеек памяти. Это обусловлено определением типа команды в процессе ее дешифрации при исполнении, что усложняет устройство управления процессора и препятствует повышению тактовой частоты, за счет проблем связанных с зависимостями по данным и управлением между последовательно запускаемыми в конвейер командами.
Количество команд, исполняемых RISC-процессорами, значительно меньше, что требует пересылки операндов между памятью и регистрами, вместо непосредственной модификации их содержимого. Стоит отметить, что RISC-процессоры эффективны в тех областях, где можно продуктивно использовать структурные способы уменьшения времени обращения к памяти. Другими словами, производительность RISC-процессоров высока, пока данные локализованы в регистровой или буферной памяти процессора.
Развитие микропроцессоров происходит при постоянном стремлении сохранения преемственности программного обеспечения (ПО) и повышения производительности за счет совершенствования архитектуры и увеличения тактовой частоты. Но эти два понятия противоречат друг другу. Решение этой проблемы было достигнуто за счет создания новых устройств с использованием элементов RISC-архитектуры сохраняющих преемственность по системе команд с CISC-микропроцессорами. В подобных микропроцессорах встраивался аппаратный транслятор, преобразующий команды CISC-процессора в эквивалентные последовательности внутренних команд RISC-процессора.
С точки зрения организации доступа к данным микропроцессорные системы можно разделить на микропроцессорные системы с общей, единой шиной для данных и команд (одношинную, или принстонскую, фон-неймановскую архитектуру) и микропроцессорные системы с раздельными шинами данных и команд (двухшинная, или гарвардская, архитектура).
Соответственно, в составе системы с общей шиной присутствует одна общая память, как для данных, так и для команд. При двухшинной архитектуре предполагается наличие в системе отдельной памяти для данных и отдельной памяти для команд
При шинной структуре легко осуществляется пересылка всех информационных потоков в нужном направлении, но вся информация передается по линиям связи последовательно во времени, что снижает быстродействие системы. При этом количество линий связи существенно сокращается, а правила обмена данными (протоколы) по шине упрощаются.
Архитектура с раздельными шинами данных и команд предполагает наличие в системе отдельной памяти для данных и отдельной памяти для команд. Обмен процессора с каждым из двух типов памяти происходит по своей шине. Данный тип архитектуры сложнее, она заставляет процессор работать одновременно с двумя потоками кодов, обслуживать обмен по двум шинам одновременно. Структуры шин (количество разрядов кода адреса и кода данных, порядок и скорость обмена информацией и т.д.) могут быть выбраны оптимально для той задачи, которая решается каждой шиной. Поэтому при прочих равных условиях переход на двухшинную архитектуру ускоряет работу микропроцессорной системы.
Программа, выполняемая подобным микропроцессором, может размещаться только в памяти команд, данные — только в памяти данных. Такая узкая специализация ограничивает круг задач, решаемых системой, так как не дает возможности гибкого перераспределения памяти. Память данных и память команд в этом случае имеют не слишком большой объем, поэтому применение систем с данной архитектурой ограничивается обычно не слишком сложными задачами. Проще всего преимущества двухшинной архитектуры реализуются внутри одной микросхемы.
Архитектура с общей шиной распространена гораздо больше, она применяется, например, в персональных компьютерах и в сложных микрокомпьютерах. Архитектура с раздельными шинами применяется в основном в однокристальных микроконтроллерах.
Современные микропроцессоры содержат в своей структуре десятки обрабатывающих устройств, каждое из которых представляет собой конвейер. В случае эффективной загрузки параллельно функционирующих устройств возможно получение в одном такте нескольких результатов операций, представленных скалярами: целочисленными операндами или операндами с плавающей точкой (вещественного типа).
Эффективная загрузка параллельно функционирующих конвейеров может обеспечиваться либо аппаратурой процессора, либо компилятором, на входе которого поступают программы на традиционном последовательном языке программирования, либо совместное применение этих методов.
Существует два крайних подхода, при возможных промежуточных, к отображению присущего микропроцессору внутреннему параллелизма обработки данных на архитектурном уровне в системе команд.
Первый подход состоит в том, что ни какого указания на параллельную обработку внутри процессора система команд не содержит. Такие процессоры относятся к классу суперскалярных. Такое название подчеркивает присущий этим процессорам внутренний параллелизм, обеспечивающий получение в одном такте нескольких скалярных результатов.
Второй подход полностью открывает пользователю все возможности параллельной обработки. В специально отведенных полях команды каждому из параллельно работающих обрабатывающих устройств предписывается действие, которое устройство должно совершить. Такие процессоры называются процессорами с длинным командным словом (VLIW).
Суперскалярные и VLIW-процессоры принадлежат к классу архитектур, которые используют параллелизм уровня команд.
Стремление получить естественный параллелизм вычисления, присущий большинству программ, целочисленных адресных выражений и собственно обработки данных в формате с плавающей точкой привело к появлению разнесенных архитектур (decoupled architecture). В первом приближении подобные микропроцессоры состоят из двух связанных микропроцессоров, каждый из которых управляет собственным потоком команд. Условно эти процессоры называют адресным и исполнительным процессором. Данная архитектура при скалярной обработке позволяет достигнуть высокой производительности за счет переработки данных из памяти и автоматической развертки нескольких последовательных витков.
Дальнейшее повышение производительности микропроцессоров связанно со статическим и динамическим анализом кода с целью выявления параллелизма уровня программных сегментов с использованием информации, предоставляемой компилятором языка высокого уровня. Исследования в данном направлении привели к разработке мультитредовой архитектуры процессоров, которые являются дальнейшим развитием суперскалярной архитектуры.
Другим подходом к увеличению быстродействия микропроцессорных систем служит переход к мультипроцессорному исполнению на однокристальных вычислительных системах. В этом случае речь идет о распараллеливающих компиляторах с языков высокого уровня.