Hi there! Our project relies on ads or donation to keep the site free to use. Please sending a donation . Thanks!
Подождите, пожалуйста, выполняется поиск в заданном разделе

2.4. Понятие команды, системы команд, программного обеспечения и системное программное обеспечение ЭВМ (компьютера)

2.4. Понятие команды, системы команд, программного обеспечения и системное программное обеспечение ЭВМ (компьютера)

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

Понятие команды, система команд

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

Рис. 1. Архитектура системы команд как интерфейс между программным и аппаратным обеспечением

Системой команд вычислительной машины называют полный перечень команд, которые способна выполнять данная ЭВМ. В свою очередь, под архитектурой системы команд (АСК) принято определять те средства вычислительной машины, которые видны и доступны программисту. АСК можно рассматривать как линию согласования нужд разработчиков программного обеспечения с возможностями создателей аппаратуры вычислительной машины (рис.1).

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

В упрощенной трактовке время выполнения программы (Твыч) можно определить через число команд в программе (Nкам ), среднее количество тактов процессора, приходящихся на одну команду (CКТ), и длительность тактового периода P:

Твыч = N ком * СКТ * P

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

Классификация архитектур системы команд

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

Рис. 2. Хронология развития архитектур системы команд

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

Классификация по составу и сложности команд

Современная технология программирования ориентирована на языки высокого уровня (ЯВУ), главная цель которых — облегчить процесс программирования. Переход к ЯВУ, однако, породил серьезную проблему: сложные операторы, характерные для ЯВУ, существенно отличаются от простых машинных операций, реализуемых в большинстве вычислительных машин.

Рис. 5.1. Классификация команд.

Проблема получила название семантического разрыва, а ее следствием становится недостаточно эффективное выполнение программ на ЭВМ. Пытаясь преодолеть семантический разрыв, разра ботчики вычислительных машин в настоящее время выбирают один из трех под ходов и, соответственно, один из трех типов АСК:

1) архитектуру с полным набором команд: CISC (Complex Instruction Set Com puter);

2) архитектуру с сокращенным набором команд: RISC (Reduced Instruction Set Computer);

3) архитектуру с командными словами сверхбольшой длины: VLIW (Very Long Instruction Word).

В вычислительных машинах типа CISC проблема семантического разрыва решается за счет расширения системы команд, дополнения ее сложными командами, семантическианалогичными операторам ЯВУ. Основоположником CISC-архитек туры считается компания IBM, которая начала применять данный подход с семейства машин IBM 360 и продолжает его в своих мощных современных универсальных ЭВМ, таких как IBM ES/9000. Аналогичный подход характерен и для компании Intel в ее микропроцессорах серии 8086 и Pentium.

Для CISC-архитектуры типичны:

1) наличие в процессоре сравнительно небольшого числа регистров общего на значения;

2) большое количество машинных команд, некоторые из них аппаратно реализуют сложные операторы ЯВУ;

3) разнообразие способов адресации операндов;

4) множество форматов команд различной разрядности;

5) наличие команд, где обработка совмещается с обращением к памяти.

К типу CISC можно отнести практически все ЭВМ, выпускавшиеся до середины 1980-х годов, и значительную часть производящихся в настоящее время. Рассмотренный способ решения проблемы семантического разрыва вместе с тем ведет к усложнению аппаратуры ЭВМ, главным образом устройства управления, что, в свою очередь, негативно сказывается на производительности ЭВМ в целом. Это заставило более внимательно проанализировать программы, получаемые после компиляции с ЯВУ. Был предпринят комплекс исследований, в результате которых обнаружилось, что доля дополнительных команд, эквивалентных операторам ЯВУ, в общем объеме программ не превышает 10—20%, а для некоторых наиболее сложных команд даже 0,2%. В то же время объем аппаратных средств, требуемых для реализации дополнительных команд, возрастает весьма существенно. Так, емкость микропрограммной памяти при поддержании сложных команд может увеличиваться на 60%.

Детальный анализ результатов упомянутых исследований привел к серьезному пересмотру традиционных решений, следствием чего стало появление RISC-архитектуры. Термин RISC впервые был использован Д. Паттерсоном и Д. Дитцелем в 1980 году. Идея заключается в ограничении списка команд ЭВМ наиболее часто используемыми простейшими командами, оперирующими данными, размещенными только в регистрах процессорах. Обращение к памяти допускается лишь с помощью специальных команд чтения и записи. Резко уменьшено количество фор матов команд и способов указания адресов операндов. Сокращение числа форматов команд и их простота, использование ограниченного количества способов адресации, отделение операций обработки данных от операций обращения к памяти позволяет существенно упростить аппаратные средства ЭВМ и повысить их быстродействие. RISC-архитектура разрабатывалась таким образом, чтобы уменьшить Твыч за счет сокращения СКТ и P. Как следствие, реализация сложных команд за счет последовательности из простых, но быстрых RISC-команд оказывается не менее эффективной, чем аппаратный вариант сложных команд в CISC-архитектуре.

Элементы RISC-архитектуры впервые появились в вычислительных машинах CDC 6600 и суперЭВМ компании Cray Research. Достаточно успешно реализуется RISC-архитектура и в современных ЭВМ, например в процессорах Alpha фирмы DEC, серии РА фирмы Hewlett-Packard, семействе PowerPC и т. п.

В последних микропроцессорах фирмы Intel и AMD широко ис пользуются идеи, свойственные RISC-архитектуре, так что многие различия меж ду CISC и RISC постепенно стираются.

Помимо CISC- и RISC-архитектур в общей классификации был упомянут еще один тип АСК — архитектура с командными словами сверхбольшой длины (VLIW). Концепция VLIW базируется на RISC-архитектуре, где несколько простых RISC-команд объединяются в одну сверхдлинную команду и выполняются параллельно. В плане АСК архитектура VLIW сравнительно мало отличается от RISC. Появился лишь дополнительный уровень параллелизма вычислений, в силу чего архитек туру VLIW логичнее адресовать не к вычислительным машинам, а к вычислитель ным системам. [1]

Типы команд

В современных ВМ используются следующие типы команд:

1. Команды пересылки данных.

2. Команды арифметической и логической обработки.

3. Команды работы со строками.

4. Команды SIMD (одна инструкция – много данных).

5. Команды преобразования.

6. Команды ввода/вывода.

7. Команды управления потоком команд.

Команды пересылки данных

Это наиболее распространенный тип машинных команд. В таких командах долж на содержаться следующая информация:

1) адреса источника и получателя операндов — адреса ячеек памяти, номера реги стров процессора или информация о том, что операнды расположены в стеке;

2) длина подлежащих пересылке данных (обычно в байтах или словах), заданная явно или косвенно;

3) способ адресации каждого из операндов, с помощью которого содержимое адресной части команды может быть пересчитано в физический адрес операнда.

Рассматриваемая группа команд обеспечивает передачу информации между процессором и ОП, внутри процессора и между ячейками памяти. Пересылочные операции внутри процессора имеют тип «регистр-регистр». Передачи между процессором и памятью относятся к типу «регистр-память», а пересылки в памяти - к типу «память-память».

Команды арифметической и логической обработки

В данную группу входят команды, обеспечивающие арифметическую и логическую обработку информации в различных формах ее представления. Для каждой формы представления чисел в АСК обычно предусматривается некий стандартный набор операций.

Помимо вычисления результата выполнение арифметических и логических операций сопровождается формированием в АЛУ признаков (флагов), характеризующих этот результат. Наиболее часто фиксируются такие признаки, как: Z (Zero) — нулевой результат; N (Negative) — отрицательный результат; V (oVer-flow) — переполнение разрядной сетки; С (Carry) — наличие переноса.

Операции с целыми числами

К стандартному набору операций над целыми числами, представленными в форме с фиксированной запятой, следует отнести:

1) двухместные арифметические операции (операции с двумя операндами): сложение, вычитание, умножение и деление;

2) одноместные арифметические операции (операции с одним операндом): вычисление абсолютного значения (модуля) операнда, изменение знака операнда;

3) операции сравнения, обеспечивающие сравнение двух целых чисел и выработку признаков, характеризующих соотношение между сопоставляемыми вели чинами (=, <>, >, <, <=, >=).

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

Выполнение арифметических команд может дополнительно сопровождаться перемещением данных из устройства ввода в АЛУ или из АЛУ на устройство вывода.

Операции с числами в форме с плавающей запятой

Для работы с числами, представленными в форме с плавающей запятой, в АСК большинства машин предусмотрены:

1) основные арифметические операции: сложение, вычитание, умножение и деление;

2) операции сравнения, обеспечивающие сравнение двух вещественных чисел с выработкой признаков: =, <>, >, <, <=, >=;

3) операции преобразования: формы представления (между фиксированной
и плавающей запятой), формата представления (с одинарной и двойной точно стью).

Логические операции

Стандартная система команд ВМ содержит команды для выполнения различных логических операций над отдельными битами слов или других адресуемых единиц. Такие команды предназначены для обработки символьных и логических данных. Минимальный набор поддерживаемых логических операций — это «НЕ», «И», «ИЛИ» и сложение по модулю 2.

Операции сдвигов

В дополнение к побитовым логическим операциям, практически во всех АСК предусмотрены команды для реализации операций логического, арифметического и циклического сдвигов (рис. 3.).

Рис. 3. Варианты операций сдвига

При логическом сдвиге влево или вправо (см. рис. 3, а), сдвигаются все разряды слова. Биты, вышедшие за пределы разрядной сетки, теряются, а освободившиеся позиции заполняются нулями.

При арифметическом сдвиге (см. рис. 3, б) данные трактуются как целые числа со знаком, причем бит знака не изменяет положения. При сдвиге вправо освободившиеся позиции заполняются значением знакового разряда, а при сдвиге влево — нулями. Арифметические сдвиги позволяют ускорить выполнение некоторых арифметических операций. Так, если числа представлены двоичным дополнительным кодом, то сдвиги влево и вправо эквивалентны соответственно умножению и делению на 2.

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

Операции с десятичными числами

В вычи слительных машинах первых поколений для обработки таких чисел предусматрива лись специальные команды, обеспечивавшие выполнение основных арифметиче ских операций (сложение, вычитание, умножение и деление) . Об этом говорит сайт https://intellect.icu . В АСК современных машин подобных команд обычно нет, а соответствующие вычисления имитируют ся с помощью команд целочисленной арифметики.

Команды для работы со строками

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

SIMD-команды

Название данного типа команд представляет собой аббревиатуру от Single Instruc tion Multiple Data — буквально «одна инструкция — много данных». В отличие от обычных команд, оперирующих двумя числами, SIMD-команды обрабатывают сразу две группы чисел (в принципе их можно называть групповыми командами). Операнды таких команд обычно представлены в одном из упакованных форматов.

Идея SIMD-обработки была выдвинута в Институте точной механики и вы числительной техники им. С. А. Лебедева в 1978 году в рамках проекта «Эльбрус-1». С 1992 года команды типа SIMD становятся неотъемлемым элементом АСК мик ропроцессоров фирм Intel и AMD. Поводом послужило широкое распространение мультимедийных приложений. Видео, трехмерная графика и звук в ВМ представ ляются большими массивами данных, элементы которых чаще всего обрабатыва ются идентично. Так, при сжатии видео и преобразовании его в формат MPEG один и тот же алгоритм применяется к тысячам битов данных. В трехмерной гра фике часто встречаются операции, которые можно выполнить за один такт: интер полирование и нормировка векторов, вычисление скалярного произведения век торов, интерполяция компонентов цвета и т. д. Включение SIMD-команд в АСК позволяет существенно ускорить подобные вычисления.

Первой на мультимедийный бум отреагировала фирма Intel, добавив в систему команд своего микропроцессора Pentium ММХ 57 SIMD-команд. Название ММХ (MultiMedia eXtention — мультимедийное расширение) разработчики обосновывали тем, что при выборе состава новых команд были проанализированы алгорит мы, применяемые в различных мультимедийных приложениях. Команды ММХ обеспечивали параллельную обработку упакованных целых чисел. При выполне нии арифметических операций каждое из чисел, входящих в группу, рассматрива ется как самостоятельное, без связи с соседними числами. Учитывая специфику обрабатываемой информации, команды ММХ реализуют так называемую ариф метику с насыщением: если в результате сложения образуется число, выходящее за пределы отведенных под него позиций, оно заменяется наибольшим двоичным числом, которое в эти позиции вмещается. На рис. 4 показано сложение двух групп четырехразрядных целых чисел, упакованных в 32-разрядные слова.

Рис. 4. Сложение с насыщением упакованных целых чисел

Следующим шагом стало создание новых наборов SIMD-команд, работающих также с операндами, представленными в виде упакованных чисел с плавающей запятой. Такие команды в соответствующих приложениях повышают производи тельность процессора примерно вдвое. Первой подобную технологию в середине 1998 года предложила фирма AMD в микропроцессоре К6-2. Это мультимедий ное расширение включало в себя 21 SIMD-команду и получило название 3DNow!. Расширение 3DNow! в дополнение к SIMD-обработке целочисленной информа ции типа ММХ позволяло оперировать парой упакованных чисел в формате с пла вающей запятой.

Полугодом позже фирма Intel ввела в свои микропроцессоры так называемые потоковые SIMD-команды, обозначив их аббревиатурой SSE — Streaming SIMD Extension (потоковая обработка по принципу «одна команда — много данных»). Сначала это были 70 команд в микропроцессоре Pentium III. Команды дополняли групповые целочисленные операции ММХ и расширяли их за счет групповых опе раций с 32-разрядными вещественными числами.

В зависимости от типа чисел (целые или вещественные) команды SSE делятся на три категории:

1) работа с упакованными группами целых чисел, которые могут иметь размер байта, слова, двойного слова или квадрослова (количество чисел в группе зави сит от их разрядности и от разрядности всей группы — 64 или 128);

2) оперирование одной парой 32-разрядных или 64-разрядных чисел с плаваю щей запятой (обычная или двойная точность);

3) обработка четырех пар вещественных чисел обычной точности или двух пар вещественных чисел двойной точности.

Дальнейшее развитие технологии SSE вылилось в SSE2 и получило реализа цию в Pentium 4. Этот вариант включает в себя 271 команду и позволяет выпол нять групповые арифметические и логические операции, сдвиги, сравнения чисел, перегруппировку и извлечение отдельных чисел, различные варианты пересылок. За один такт обрабатываются четыре 32-разрядных числа с плавающей запятой, упакованных в 128-разрядное слово.

Команды преобразования

Команды преобразования осуществляют изменение формата представления дан ных. Примером может служить преобразование из десятичной системы счисления в двоичную.

Команды ввода/вывода

Команды этой группы могут быть подразделены на команды управления перифе рийным устройством (ПУ), проверки его состояния, ввода и вывода.

Команды управления периферийным устройством служат для запуска ПУ и ука зания ему требуемого действия. Например, накопителю на магнитной ленте может быть предписано на необходимость перемотки ленты или ее продвижения впе ред на одну запись. Трактовка подобных инструкций зависит от типа ПУ.

Команды проверки состояния ввода/вывода применяются для тестирования различных признаков, характеризующих состояние модуля В/ВЫВ и подключен ных к нему ПУ. Благодаря этим командам центральный процессор может выяс нить, включено ли питание ПУ, завершена ли предыдущая операция ввода/вывода, возникли ли в процессе ввода/вывода какие-либо ошибки и т. п.

Собственно обмен информацией с ПУ обеспечивают команды ввода и вывода. Команды ввода предписывают модулю В/ВЫВ получить элемент данных ( байт или слово) от ПУ и поместить его на шину данных, а команды вывода — заставля ют модуль В/ВЫВ принять элемент данных с шины данных и переслать его на ПУ.

Команды управления системой

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

Команды управления потоком команд

Концепция фон-неймановской вычислительной машины предполагает, что коман ды программы, как правило, выполняются в порядке их расположения в памяти. Для получения адреса очередной команды достаточно увеличить содержимое счет чика команд на длину текущей команды. В то же время основные преимущества ВМ заключаются именно в возможности изменения хода вычислений в зависимо сти от возникающих в процессе счета результатов. С этой целью в АСК вычисли тельной машины включаются команды, позволяющие нарушить естественный порядок следования и передать управление в иную точку программы. В адресной части таких команд содержится адрес точки перехода (адрес той команды, которая должна быть выполнена следующей). Переход реализуется путем загрузки адреса точки перехода в счетчик команд (вместо увеличения содержимого этого счетчика на длину команды).

В системе команд ВМ можно выделить три типа команд, способных изменить последовательность вычислений:

1) безусловные переходы;

2) условные переходы (ветвления);

3) вызовы процедур и возвраты из процедур.

Несмотря на то что присутствие в программе большого числа команд безуслов ного перехода считается признаком плохого стиля программирования, такие команды обязательно входят в АСК любой ВМ. Для их обозначения в языке ассемблера обычно используется английское слово jump (прыжок). Команда безусловного перехода обеспечивает переход по заданному адресу без проверки каких-либо условий.

Условный переход происходит только при соблюдении определенного условия, в противном случае выполняется следующая по порядку команда программы. Боль шинство производителей ВМ в своих ассемблерах обозначают подобные команды словом branch (ветвление).

Условием, на основании которого осуществляется переход, чаще всего высту пают признаки результата предшествующей арифметической или логической операции. Каждый из признаков фиксируется в своем разряде регистра флагов процессора. Возможен и иной подход, когда решение о переходе принимается в зависимости от состояния одного из регистров общего назначения, куда предвари тельно помещается результат операции сравнения. Третий вариант — это объеди нение операций сравнения и перехода в одной команде.

В системе команд ВМ для каждого признака результата предусматривается своя команда ветвления (иногда — две: переход при наличии признака и переход при его отсутствии). Большая часть условных переходов связана с проверкой взаимного соотношения двух величин или с равенством (неравенством) некоторой ве личины нулю. Последний вид проверок используется в программах наиболее ин тенсивно.

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

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

Процедурный механизм базируется на командах вызова процедуры, обеспечи вающих переход из текущей точки программы к начальной команде процедуры, и командах возврата из процедуры, для возврата в точку, непосредственно расположенную за командой вызова. Такой режим предполагает наличие средств для сохранения текущего состояния содержимого счетчика команд в момент вызова (запоминание адреса точки возврата) и его восстановления при выходе из проце дуры. [2]

Форматы команд

Типовая команда, в общем случае, должна указывать:

1) код подлежащей выполнению операции;

2) адреса исходных данных (операндов), над которыми выполняется операция;

3) адрес, по которому должен быть помещен результат операции.

В соответствии с этим команда состоит из двух частей: операционной и адрес ной:

Формат команды определяет ее структуру, то есть количество двоичных раз рядов, отводимых под всю команду, а также количество и расположение отдель ных полей команды. Полем называется совокупность двоичных разрядов, кодиру ющих составную часть команды. При создании ЭВМ выбор формата команды влияет на многие характеристики будущей машины. Оценивая возможные форматы, нуж но учитывать следующие факторы:

1) общее число различных команд;

2) общую длину команды;

3) тип полей команды (фиксированной или переменной длины) и их длина;

4) простоту декодирования;

5) адресуемость и способы адресации;

6) стоимость оборудования для декодирования и исполнения команд.

Длина команды

Это важнейшее обстоятельство, влияющее на организацию и емкость памяти, струк туру шин, сложность и быстродействие ЦП. С одной стороны, удобно иметь в рас поряжении мощный набор команд, то есть как можно больше кодов операций, опе рандов, способов адресации, и максимальное адресное пространство. Однако все это требует выделения большего количества разрядов под каждое поле команды, что приводит к увеличению ее длины. Вместе с тем, для ускорения выборки из памяти желательно, чтобы команда была как можно короче, а ее длина была равна или кратна ширине шины данных. Для упрощения аппаратуры и повышения быс тродействия ЭВМ длину команды обычно выбирают кратной байту, поскольку в большинстве ЭВМ основная память организована в виде 8-битовых ячеек. В рам ках системы команд одной ЭВМ могут использоваться разные форматы команд. Обычно это связано с применением различных способов адресации. В таком случае в состав кода команды вводится поле для задания способа адресации (СА), и обобщенный формат команды приобретает следующий вид:

Разрядность поля кода операции

Количество двоичных разрядов, отводимых под код операции, выбирается так, чтобы можно было представить любую из операций. Если система команд предпо лагает NКОп различных операций , то минимальная разрядность поля кода опера ции RКОп определяется следующим образом:

RKOп = int(log2NKOп),

где int означает округление в большую сторону до целого числа.

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

Разрядность адресной части

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

Количество адресов в команде

Для определения количества адресов, включаемых в адресную часть, будем исполь зовать термин адресность. В «максимальном» варианте необходимо указать три компонента: адрес первого операнда, адрес второго операнда и адрес ячейки, куда заносится результат операции.

К сожалению, в трехадресном формате длина команды может оказаться весь ма большой. Так, если адрес ячейки основной памяти имеет длину 32 бита, а длина кода операции — 8 бит, то длина команды составит 104 бита (13 байт).

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

Естественно, что в этом случае соот ветствующий операнд после выполнения операции теряется.

Команду можно еще более сократить, перейдя к одноадресному формату, что возможно при выделении определенного стандартного места для хранения первого операнда и результата. Обычно для этой цели используется спе циальный регистр ЦП, известный под названием ак кумулятора, поскольку здесь аккумулируется результат.

Применение единственного регистра для хранения одного из операндов и ре зультата является ограничивающим фактором, поэтому помимо аккумулятора ча сто используют и другие регистры ЦП. Так как число регистров в ЦП невелико, для указания одного из них в команде достаточно иметь сравнительно короткое адресное поле. Соответствующий формат носит название регистрового формата:

Наконец, если для обоих операндов указать четко заданное местоположение, а также в случае команд, не требующих операнда, можно получить нулъадресный формат команды:

Способы адресации операндов

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

Приступая к рассмотрению способов адресации, вначале определим понятия «исполнительный» и «адресный код».

Исполнительным адресом операнда (Аисп) называется двоичный код номера ячейки памяти, служащей источником или приемником операнда. Этот код пода ется на адресные входы запоминающего устройства (ЗУ), и по нему происходит фактическое обращение к указанной ячейке. Если операнд хранится не в основ ной памяти, а в регистре процессора, его исполнительным адресом будет номер регистра.

Адресный код команды (Ак) — это двоичный код в адресном поле команды, из которого необходимо сформировать исполнительный адрес операнда.

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

Чтобы устройство управления вычислительной машины могло определить, ка кой именно способ адресации принят в данной команде, в разных ЭВМ используют ся различные приемы. Часто разным способам адресации соответствуют и разные коды операции. Другой подход — это добавление в состав команды специального поля способа адресации, содержимое которого определяет, какой из способов адре сации должен быть применен. Иногда в команде имеется нескольких полей — по одному на каждый адрес. Отметим, что возможен также вариант, когда в команде вообще отсутствует адресная информация, то есть имеет место неявная адресация. При неявной адресации адресного поля либо просто нет, либо оно содержит не все необходимые адреса — отсутствующий адрес подразумевается кодом операции. Так, при исключении из команды адреса результата подразумевается, что результат помещается на место второго операнда. Неявная адресация применяется доста точно широко, поскольку позволяет сократить длину команды.

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

Типы и форматы операндов

Машинные команды оперируют данными, которые в этом случае принято называть операндами. К наиболее общим (базовым) типам операндов можно отнести: адреса, числа, символы и логические данные. Помимо них ВМ обеспечивает об работку и более сложных информационных единиц: графических изображе ний, аудио-, видео- и анимационной информации. Такая информация является производной от базовых типов данных и хранится в виде файлов на внешних запо минающих устройствах. [4]

Классификация по месту хранения операндов

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

1) стековую;

2) аккумуляторную;

3) регистровую;

4) с выделенным доступом к памяти.

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

Стековая архитектура

Стеком называется память, по своей структурной организации отличная от ос новной памяти ЭВМ. Принципы построения стековой памяти детально рассматри ваются позже, здесь же выделим только те аспекты, которые требуются для пояс нения особенностей АСК на базе стека.

Стек образует множество логически взаимосвязанных ячеек (рис. 5), вза имодействующих по принципу «последним вошел, первым вышел» (LIFO, Last In First Out).

Рис. 5. Принцип действия стековой памяти

Верхнюю ячейку называют вершиной стека. Для работы со стеком предусмот рены две операции: push (проталкивание данных в стек) и pop (выталкивание дан ных из стека). Запись возможна только в верхнюю ячейку стека, при этом вся хра нящаяся в стеке информация предварительно проталкивается на одну позицию вниз. Чтение допустимо также только из вершины стека. Извлеченная информа ция удаляется из стека, а оставшееся его содержимое продвигается вверх. В вы числительных машинах, где реализована АСК на базе стека (их обычно называют стековыми), операнды перед обработкой помещаются в две верхних ячейки стеко вой памяти. Результат операции заносится в стек.

Аккумуляторная архитектура

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

Для загрузки в аккумулятор содержимого ячейки х предусмотрена команда за грузки load x. По этой команде информация считывается из ячейки памяти х, вы ход памяти подключается к входам аккумулятора и происходит занесение считан ных данных в аккумулятор.

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

Для выполнения операции в АЛУ производится считывание одного из операн дов из памяти в регистр данных. Второй операнд находится в аккумуляторе. Вы ходы регистра данных и аккумулятора подключаются к соответствующим входам АЛУ. По окончании предписанной операции результат с выхода АЛУ заносится в аккумулятор.

Достоинствами аккумуляторной АСК можно считать короткие команды и про стоту декодирования команд. Однако наличие всего одного регистра порождает многократные обращения к основной памяти.

Регистровая архитектура

В машинах данного типа процессор включает в себя массив регистров (регистро вый файл), известных как регистры общего назначения (РОН). Эти регистры, в каком-то смысле, можно рассматривать как явно управляемый кэш для хране ния недавно использовавшихся данных.

Размер регистров обычно фиксирован и совпадает с размером машинного слова. К любому регистру можно обратиться, указав его номер. Количество РОН в архитектурах типа CISC обычно невелико (от 8 до 32), и для представления но мера конкретного регистра необходимо не более пяти разрядов, благодаря чему в адресной части команд обработки допустимо одновременно указать номера двух, а зачастую и трех регистров (двух регистров операндов и регистра результата). RISC-архитектура предполагает использование существенно большего числа РОН (до нескольких сотен), однако типичная для таких ЭВМ длина команды (обычно 32 разряда) позволяет определить в команде до трех регистров.

Регистровая архитектура допускает расположение операндов в одной из двух запоминающих сред: основной памяти или регистрах. С учетом возможного раз мещения операндов в рамках регистровых АСК выделяют три подвида команд обработки:

1) регистр-регистр;

2) регистр-память;

3) память-память.

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

Архитектура с выделенным доступом к памяти

В архитектуре с выделенным доступом к памяти обращение к основной памяти возможно только с помощью двух специальных команд: load и store. В английской транскрипции данную архитектуру называют Load/Store architecture. Команда load (загрузка) обеспечивает считывание значения из основной памяти и занесение его в регистр процессора (в команде обычно указывается адрес ячейки памяти и но мер регистра). Пересылка информации в противоположном направлении произ водится командой store (сохранение). Операнды во всех командах обработки ин формации могут находиться только в регистрах процессора (чаще всего в регистрах общего назначения). Результат операции также заносится в регистр. В архитекту ре отсутствуют команды обработки, допускающие прямое обращение к основной памяти. Допускается наличие в АСК ограниченного числа команд, где операнд является частью кода команды. [5]

Программное обеспечение

По областям применения программное обеспечение компьютера подразделяют на системное и прикладное.

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

В составе системного программного обеспечения выделяют две компоненты:

1) операционную систему – целый комплекс управляющих программ, являющихся интерфейсом между компонентами ПК и обеспечивающих наиболее эффективное использование ресурсов ЭВМ. Операционная система загружается при включении компьютера;

2) утилиты – вспомогательные программы технического обслуживания.

К утилитам относятся:

программы для диагностики компьютера – проверяют конфигурацию компьютера и работоспособность его устройств; прежде всего осуществляется проверка жестких дисков на наличие ошибок;

программы для оптимизации дисков – обеспечивают более быстрый доступ к информации , хранящейся нажестком диске, за счет оптимизации размещения данных на нем. Процесс оптимизации данных на жестком диске более известен как процесс дефрагментации диска;

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

программы-кэши для диска – ускоряют доступ к данным на диске путем организации в ОП компьютера кэш-буфера, содержащего наиболее часто используемые участки диска;

программы динамического сжатия дисков – увеличивают объем информации, хранимой на жестких дисках, путем ее динамического сжатия. Действия данных программ для пользователя не заметны, они проявляются только через увеличение емкости дисков и изменение скорости доступа к информации;

программы-упаковщики (или архиваторы) – упаковывают данные на жестких дисках за счет применения специальных методов сжатия информации. Данные программы позволяют освободить значительное место на диске за счет сжатия информации;

антивирусные программы – предотвращают заражение компьютерным вирусом и ликвидируют его последствия;

системы программирования – комплекс программ для автоматизации процесса программирования сценариев работы ЭВМ.

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

Тест для самоконтроля

1. Полный перечень команд, которые способна выполнять данная ЭВМ – это…

А) Система настроек

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

В) Набор команд

Г) Набор настроек

2. CISC – это..

А) архитектура с сокращенным набором команд

Б) архитектура с командными словами сверхбольшой длины

В) архитектура с полным набором команд

Г) не архитектура системы команд

3. RISC – это..

А) архитектура с сокращенным набором команд

Б) архитектура с командными словами сверхбольшой длины

В) архитектура с полным набором команд

Г) не архитектура системы команд

4. VLIW – это..

А) архитектура с сокращенным набором команд

Б) архитектура с командными словами сверхбольшой длины

В) архитектура с полным набором команд

Г) не архитектура системы команд

5. Принципы использования информации из адресной части команды определяет…

А) система направленности

Б) система команд

В) система знаков

Г) система адресации

6. Формат команды определяет…

А) количество двоичных разрядов, отводимых под всю команду, а также количество и расположение отдельных полей команды

Б) количество и расположение отдельных полей команды

В) количество двоичных разрядов, отводимых под всю команду

Г) количество двоичных разрядов, отводимых на пол команды, а также количество и расположение отдельных полей команды

7. Машинные команды оперируют данными, которые принято называть…

А) файлами

Б) адресами

В) операндами

Г) папками

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

А) регистр

Б) аккумулятор

В) память

Г) стек

9. Верхняя ячейка стека называется…

А) вершиной

Б) конечной

В) начальной

Г) входной

10. выделенный регистр в процессоре для хранения одного из операндов арифметической или логической операции

А) стек

Б) аккумулятор

В) память

Г) общий регистр

Статью о понятие команды я написал специально для тебя. Если ты хотел бы внести свой вклад в развии теории и практики, ты можешь написать коммент или статью отправив на мою почту в разделе контакты. Этим ты поможешь другим читателям, ведь ты хочешь это сделать? Надеюсь, что теперь ты понял что такое понятие команды,системное программное обеспечение,система команд и для чего все это нужно, а если не понял, или есть замечания, то нестесняся пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятелно рекомендую изучить комплексно всю информацию в категории Информатика


Комментарии (0)


Оставить комментарий

ответить

Информатика

Термины: Информатика