- Архитектура процессора
- Архитектура набора команд RISC и CISC
- Комплексные вычисления с набором команд (CISC)
- Вычисление с сокращенным набором команд (RISC)
Встроенная система - это сердце и ядро большинства электронных продуктов, доступных на рынке. Это инженерная реализация, в которой аппаратное обеспечение сочетается с программным обеспечением. Мы окружены миром встроенных систем с мини-компьютерами в биометрических дверных замках, самолетами, автомобилями, кардиостимуляторами и т. Д. Эти ограниченные ресурсы, небольшие, умные и мощные системы помогают нам в наших повседневных задачах.
Когда-либо задумывались о том, как функционирует наше тело, нервная система, мозг и способность выполнять несколько задач. Если вы объедините все эти функции, вы получите приблизительное представление о встроенной биологической системе. Наш мозг скрывает сложные детали своего функционирования, которые происходят внутри него, но все же позволяет нам контролировать его с максимальным потенциалом. Такая же сложность касается процессора или контроллера, используемых во встроенных системах. Они скрывают сложные детали и предоставляют нам высокоуровневый интерфейс для работы. На уровне абстракции можно описать, как код для сложения двух чисел на языке программирования высокого уровня заставляет регистры в микросхемах обрабатывать биты и возвращать вывод пользователю.
Архитектура процессора
Центральный процессор, относящийся как к микропроцессору, так и к микроконтроллеру, выполняет определенные задачи с помощью блока управления (CU) и арифметико-логического блока (ALU). Поскольку инструкции поступают из ОЗУ, ЦП действует с помощью двух вспомогательных модулей, создавая переменные и присваивая им значения и память. Действительно важно знать, как процессор выполняет все это действие с помощью своей архитектуры. Если вы хотите узнать больше о том, как работает микроконтроллер, вы можете прочитать эту основную статью о микроконтроллерах.
Каждый ЦП имеет связанную с ним память для хранения программы и данных. Программа и данные работают с ЦП, чтобы получить результат. Программа предоставляет инструкции, а данные предоставляют информацию, над которой нужно работать. Для доступа к программе и данным ЦП использует шины, эти шины являются проводами, точнее, это следы проводов, которые вы, возможно, видели на печатных платах. За эти годы микроконтроллеры и микропроцессоры эволюционировали, адаптируя различные архитектуры, в зависимости от требований приложения или дизайна, выбор микроконтроллера зависит от типа используемой в нем архитектуры. Давайте посмотрим на популярные архитектуры.
Фон-Нейман / Принстонская архитектура
Способ, которым ЦП получает доступ к программе и данным, говорит об архитектуре ЦП. Ранее для доступа к программе и данным использовалась единая шина. Этот тип архитектуры известен как архитектура фон Неймана или, проще говоря, принстонская архитектура. Единая шина для получения кода и данных означает, что они мешают друг другу и замедляют скорость обработки ЦП, потому что каждый должен ждать, пока другой закончит выборку. Это ограничение также известно как условие узкого места фон-Неймана.
Гарвардская архитектура
Для ускорения процесса была предложена Гарвардская архитектура. В этой архитектуре присутствуют отдельные шины данных для данных и программы. Значит, эта архитектура предполагала использование четырех автобусов.
- Набор шин данных, передающих данные в ЦП и из него.
- Набор адресной шины для доступа к данным.
- Набор шин данных для переноса кода в ЦП.
- Адресная шина для доступа к коду.
Использование отдельной адресной шины и шины данных означало низкое время выполнения для ЦП, но это происходило за счет сложности проектирования архитектуры. Архитектура фон Неймана может показаться немного ленивой, но у нее есть преимущество в простоте дизайна.
Гарвардскую архитектуру намного проще реализовать, когда ЦП и блоки памяти используют одно и то же пространство или ОЗУ и ПЗУ встроены (на кристалле) в блок обработки, например, в микроконтроллере, где расстояния указаны в микронах и миллиметрах. Однако ту же самую архитектуру трудно реализовать, если память, содержащая код, является внешней по отношению к процессору, например, в IBM PC x86. Набор отдельных проводов для данных и адреса на материнской плате сделает плату сложной и дорогой. Давайте разберемся с этим на примере процессора.
Для реализации архитектуры Фон-Неймана процессору с 64-битной шиной данных и 32-битной шиной адреса потребуется примерно 100 шин (96 для шины данных и адреса и несколько других для сигналов управления). Та же самая структура, если она реализована с архитектурой Гарварда, будет стоить двухпроводных дорожек примерно в 200 с большим количеством выводов, выходящих из процессора. По той же причине мы не видим реализации чистой гарвардской архитектуры для ПК и рабочих станций. Вместо этого используется модифицированная гарвардская архитектура, в которой иерархия памяти с кэш-памятью ЦП используется для разделения программы и данных. Иерархия памяти разделяет хранилище на основе иерархии времени отклика процессов.
Архитектура набора команд
Поскольку программа (код) загружается в память системы (ОЗУ), она загружается ЦП (относится как к микропроцессору, так и к микроконтроллеру) для обработки данных, это очень похоже на то, как мы даем инструкции, когда обучаем собаку определенные действия и команды. По мере того, как эти инструкции обрабатываются, определенные транзисторы переходят с одного логического уровня на другой, чтобы это произошло. Так что в основном с помощью инструкций человек-программист общается с процессором. Каждый ЦП имеет свой собственный набор инструкций, набор инструкций, основанный на его архитектуре и возможностях.
ЦП понимает эти инструкции в комбинации 0 и 1, которые также известны как код операции. Для программиста-человека действительно трудно запомнить комбинацию нулей и единиц для каждой инструкции, связанной с процессором. Чтобы упростить работу человека-программиста, нам предоставлены высокоуровневые интерфейсы этих инструкций, и компилятор преобразует их в форму нулей и единиц для своей обработки. Также в наборе команд каждого ЦП имеется ограниченное количество инструкций, которые он может понять.
Производительность ЦП
Возможно, вы слышали термин тактовая частота ЦП, связанный с производительностью ЦП. Процессоры обычно имеют тактовую частоту в МГц (мегагерцы) или ГГц (гигагерцы), например тактовая частота 25 ГГц. Число, связанное с тактовой частотой, показывает, сколько раз часы внутри ЦП тикают в циклах в секунду. Практичность тактовой частоты можно понять из того факта, что инструкции выполняются на основе тактовых циклов ЦП, которые пропорциональны количеству программ, которые ЦП может запускать одновременно.
Производительность процессора зависит от количества инструкций, которые написаны в программе, больше инструкций, больше времени, затраченном CPU для выполнения их. Это также зависит от количества тактовых циклов, в которых выполняется каждая инструкция, для некоторых инструкций требуется больше тактов, чем для других, поэтому они отстают от производительности ЦП. Команды в программе и циклы, необходимые для выполнения каждой инструкции, обратно пропорциональны друг другу. Изменение одного повлияет на другое. Это момент, когда отрасль процессоров разделена.
Архитектура набора команд RISC и CISC
Как сказано выше, выполнение программы и производительность ЦП зависят от количества инструкций в программе, где инструкции предлагаются этому конкретному ЦП как часть набора команд, а вторым фактором является количество тактовых циклов в который выполняется каждая инструкция. На основе этих двух факторов в настоящее время доступны два набора инструкций. Самый ранний из них - это вычисления с комплексным набором команд (CISC), а другой - это вычисления с сокращенным набором инструкций (RISC). Давайте подробно обсудим каждую из этих архитектур, чтобы понять разницу между RIC и CISC-архитектурой.
Комплексные вычисления с набором команд (CISC)
CISC означает сложные вычисления с набором команд. Основной целью CISC является уменьшение количества инструкций, выполняемых программой, это достигается путем объединения множества простых инструкций, таких как режим адресации, загрузки и т. Д., И формирование единой сложной инструкции. Инструкция CISC включает в себя ряд простых инструкций, а также некоторые специальные инструкции, которые требуется больше, чем один такт для выполнения. Инструкции CISC могут напрямую работать с памятью без вмешательства регистров, что означает, что они устраняют необходимость в некоторых основных инструкциях, таких как загрузка значений и потребность в памяти (RAM). Инструкции CISC уделяют больше внимания аппаратному обеспечению, чем программному обеспечению, а это означает, что вместо того, чтобы возлагать нагрузку на компиляторы,CISC использует транзисторы в качестве оборудования для декодирования и реализации инструкций. Однако, поскольку инструкция сложна и состоит из нескольких шагов, они выполняются за большее количество тактов.
Простая аналогия соотносить, когда вы сказали, чтобы открыть книгу и прочитать 3 RD 2 Капитула й странице. В этой серии упражнений вы выполняете несколько шагов, например, берете книгу из своей сумки, затем перетасовываете страницу до главы 3, затем переходите ко 2- й странице главы и начинаете читать. Последовательность шагов, если объединить в одну инструкцию чтения страницы 44 (которая является номером 2- й страницы 3- й главы), мы получим инструкцию CISC.
Вычисление с сокращенным набором команд (RISC)
Первый интегрированный чип был разработан Джеком Килби в 1958 году и представлял собой генератор, а в 1970-х годах компания Intel выпустила первый коммерческий микропроцессор. Хотя на старте процессоров CISC не было. Но с высокими требованиями к вычислениям архитектура CISC становилась все более сложной и трудной в обращении. Полная переработка архитектуры CISC, известная как RISC, была произведена в IBM Джоном Коуком. Таким образом, чтобы различать две архитектуры, были введены термины RISC и CISC.
RISC означает вычисление с сокращенным набором команд. Основным мотивом RISC было введение единообразия в размере и исполнении инструкций. Это было сделано путем введения простого набора инструкций, который может выполняться как одна инструкция за цикл, это делается путем разбиения сложной инструкции, такой как загрузка и сохранение, в разные инструкции, где каждая инструкция занимает примерно один тактовый цикл для выполнения. Архитектура RISC включает простые инструкции того же размера, которые могут выполняться за один такт. Машины на основе RISC нуждаются в большем объеме ОЗУ, чем CISC, для хранения значений при загрузке каждой инструкции в регистры. Выполнение одной инструкции за цикл дает машинам на базе RISC преимущество конвейерной обработки.(конвейерная обработка - это процесс, в котором следующая инструкция загружается до выполнения первой, это увеличивает эффективность выполнения). Архитектура RISC подчеркивает