Перейти к содержимому

Что такое система команд

  • автор:

Что такое система команд

1.3.2 Система команд процессора

1.3.2 Система команд процессора

Архитектура системы команд процессора (ISA — Instruction Set Architecture) охватывает систему команд процессора и регистры, через которые процессор становится доступным для программирования.

Машинные команды, выполняемые процессором, обычно подразделяются следующим образом:

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

Процессор содержит специальную микросхему постоянной памяти — микропрограммная память, которая управляет выполнением машинных команд. На современных прцессорах эта память перепрограммируемая, что позволяет прцессору вносить исправления.

Выполнение программы в процессоре состоит следующих этапов:

  • Считывание команды из памяти (Instruction Fetch)
  • Декодирование команды в микрооперации (Instruction Decode)
  • Исполнение команды (Execute)
  • Запись результатов (Store).

Система команд

Пояснение причин и обсуждение — на странице Википедия:К объединению/6 ноября 2011.
Обсуждение длится одну неделю (или дольше, если оно идёт медленно).
Дата начала обсуждения — 2011-11-06.
Если обсуждение не требуется (очевидный случай), используйте другие шаблоны.
Не удаляйте шаблон до подведения итога обсуждения.

Систе́ма кома́нд (также набо́р команд) — соглашение о предоставляемых архитектурой средствах программирования, а именно: определённых типах данных, инструкций, системы регистров, методов адресации, моделей памяти, способов обработки прерываний и исключений, методов ввода и вывода.

Система команд представляется спецификацией соответствия (микро)команд наборам кодов (микро)операций, выполняемых при вызове команды, определяемых (микро)архитектурой системы. (При этом, на системах с различной (микро)архитектурой может быть реализована одна и та же система команд. Например, Intel Pentium и AMD Athlon имеют почти идентичные версии системы команд x86, но имеют радикально различный внутренний дизайн.)

Базовыми командами являются, как правило, следующие:

  • арифметические, например «сложения» и «вычитания»;
  • битовые, например «логическое и», «логическое или» и «логическое не»;
  • присваивание данных, например «переместить», «загрузить», «выгрузить»;
  • ввода-вывода, для обмена данными с внешними устройствами;
  • управляющие инструкции, например «переход», «условный переход», «вызов подпрограммы», «возврат из подпрограммы».

Оптимальными в различных ситуациях являются разные способы построения системы команд.

  • Если объединить наиболее часто используемую последовательность микроопераций под одной микрокомандой, то надо будет обеспечивать меньше микрокоманд. Такое построение системы команд носит название CISC (Complex Instruction Set Computer), в распоряжении имеется небольшое число составных команд.
  • С другой стороны, это объединение уменьшает гибкость системы команд. Вариант с наибольшей гибкостью — наличие множества близких к элементарным операциям команд. Это RISC (Reduced Instruction Set Computer), в распоряжении имеются усечённые, простые команды.
  • Еще большую гибкость системы команд можно получить используя MISC подход, построенный на уменьшении количества команд до минимального и упрощении вычислительного устройства обработки этих команд.

См. также

Это заготовка статьи о компьютерах. Вы можете помочь проекту, исправив и дополнив её.
Это примечание по возможности следует заменить более точным.
Pipeline Конвейер · In-Order & Out-of-Order execution · Переименование регистров · Speculative execution
Уровни Бит · Инструкций · Суперскалярность · Данных · Задач
Потоки Многопоточность · Simultaneous multithreading · Hyperthreading · Superthreading · Аппаратная виртуализация
Классификация Флинна SISD · SIMD · MISD · MIMD

Алгоритм и исполнитель

В этом уроке разберём некоторые теоретические понятия, которые формализуют понятие программирования. Заодно точнее сформулируем основную задачу вашего обучения.

Для начала предлагаю вам немного поиграться со следующей детской игрушкой. Пройдите первые пять заданий, возвращайтесь назад и продолжайте чтение урока.

Скриншот игры на code.org

Рис.1 Скриншот игрового поля на code.org

Надеюсь, у вас всё получилось. Теперь на этом примере опишем несколько основных понятий:

  • исполнитель;
  • система команд исполнителя;
  • алгоритм.

В игрушке мы управляем красной птичкой. Задача каждого этапа: добраться птичкой до свиньи. Птичка умеет выполнять определённые команды, например: переместить вперёд, повернуть налево, повернуть направо и др.

Человек, машина или устройство, которые умеют выполнять некоторые команды, называется исполнителем . В этой игрушке, очевидно, исполнитель – птичка. Набор команд, которые понимает и умеет выполнять исполнитель, называют системой команд исполнителя .

Последовательность команд, которую должен выполнить исполнитель для решения задачи, называется алгоритмом .

Необходимо заострить внимание на нескольких моментах.

Исполнитель может выполнять только те команды, которые входят в его систему команд.

Это означает, например, что нельзя написать исполнителю-птичке: «Иди к свинье!». Точнее записать можно, но только ничего не произойдёт, т.к. исполнитель таких команд не знает.

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

Исполнитель выполняет точно то, что предписывает ему алгоритм.

Исполнитель-птичка очень доверчивая. Она не подвергает сомнению то, что вы пишете в программе. Если, например, вы забудете развернуть птичку, то она врежется в стенку. Поэтому вы должны следить за всем самостоятельно.

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

Теперь от наглядного примера перейдём к компьютерным реалиям. Мы пишем программы для компьютера, а значит, компьютер в нашем случае является исполнителем. Система команд – стандартные функции и конструкции языка Си.

В чём состоит основная задача вашего обучения основам программирования? Овладеть навыком алгоритмического мышления. То есть научиться записывать решение различных задач в виде алгоритма для конкретного исполнителя (в нашем случае компьютера).

Компьютерная программа – алгоритм решения какой-либо задачи, записанный на языке программирования.

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

Исполнитель – человек или некоторое устройство, которое может понимать и выполнять определённый набор команд.

Система команд исполнителя – набор команд, которые понимает и умеет выполнять исполнитель.

Основная задача данного курса – научиться записывать решение различных задач в виде алгоритмов для компьютера.

Сохрани в закладки или поддержи проект.

Практика

Решите предложенные задачи. Для удобства работы сразу переходите в полноэкранный режим

Дополнительные материалы

  1. Определение алгоритма в этом уроке, конечно, совершенно неформальное. В теоретической информатике существуют строгие определения этого понятия. Для этого, например, вводится такое понятие как Машина Тьюринга. Подробнее об этом можно прочитать на википедии, викиучебнике или посмотреть на степике урок А. Шеня. А на сайте К.Ю. Полякова можно скачать тренажёр Машина Тьюринга.
  2. Тем, кто решает задачи на Stepikе посвящается:

Что такое система команд

Для управления исполнителем и организации необходимых изменений в его среде имеется строго определённый набор команд, называемый системой команд исполнителя , или сокращённо СКИ.

Итак, система команд исполнителя – это набор команд, которые “понимает” и может выполнить данный исполнитель. То есть, каждый исполнитель имеет свою собственную систему команд.

Исполнитель не способен выполнить ни одной команды, которая не входит в его СКИ, даже если введённая команда отличается от существующей всего лишь единственным неверно написанным символом. Кроме того, даже синтаксически правильная команда при некоторых условиях не может быть выполнена. Например, невозможно выполнить команду деления, если делитель равен нулю; нельзя осуществить команду движения вперёд, если робот упёрся в стену и т.п.

Как бы не выглядела формулировка отказа исполнителя, её кратко можно сформулировать как “Не могу” (в отличие от “Не понимаю” в случае синтаксической ошибки в записи команды).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

https://narkolog.vyvod-iz-zapoya-v-staczionare-nizhnij-novgorod-knd.ru/