Инструкции ЦП определяют, как узнать

Обновлено: 04.07.2024

План North American Electric Reliability Corporation по защите критически важной инфраструктуры (NERC CIP) представляет собой набор стандартов.

Структура управления рисками ISO 31000 – это международный стандарт, который предоставляет компаниям рекомендации и принципы для .

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

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

Метаморфное и полиморфное вредоносное ПО – это два типа вредоносных программ (вредоносных программ), код которых может изменяться по мере их распространения.

В контексте вычислений Windows и Microsoft Active Directory (AD) идентификатор безопасности (SID) — это уникальное значение, которое равно .

Медицинская транскрипция (МТ) – это ручная обработка голосовых сообщений, продиктованных врачами и другими медицинскими работниками.

Электронное отделение интенсивной терапии (eICU) — это форма или модель телемедицины, в которой используются самые современные технологии.

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

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

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

Синхронная репликация — это процесс копирования данных по сети хранения, локальной или глобальной сети, поэтому .

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

Износ флэш-памяти NAND — это пробой оксидного слоя внутри транзисторов с плавающим затвором флэш-памяти NAND.

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

Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме привилегированного пользователя.

Закрыт 8 лет назад.

Извините, если это глупые вопросы или они не относятся к этому сайту. Я действительно не знаю, где еще я мог бы спросить об этом.

Ладно, во-первых, я не совсем понимаю, как работают наборы инструкций в микропроцессорах. Они реализованы через язык ассемблера? Использует ли Intel одни и те же наборы инструкций для всех микропроцессоров линейки ЦП, таких как Haswell или Ivy Bridge, или каждый конкретный микропроцессор отличается? Я всегда думал, что микроархитектура — это то же самое, что набор инструкций, но, видимо, это не так. Может ли кто-нибудь объяснить это и мне? И последнее: есть ли место, где можно просмотреть наборы инструкций микропроцессоров Intel или AMD?

Заранее большое спасибо.


Я очень озадачен причиной закрытия. Я не вижу в этом вопросе ничего, что касалось бы «ошибок в предварительном / бета-версии программного обеспечения или прототипа оборудования». Или любой из вышеперечисленных по отдельности, если на то пошло.

1 Ответ 1

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

У Intel есть несколько процессорных архитектур, самая популярная из которых x86. x86 был (и продолжает) расширяться с течением времени, как правило, более поздние версии обратно совместимы с более ранними версиями. Например, первым процессором Intel с архитектурой x86 был 8088. Затем появился 80286. Он расширяет набор инструкций 8088. 80286 понимает все сборки 8088. И так далее для 80386, 80486, Pentium, серии Core и серии i.

Я всегда думал, что микроархитектура — это то же самое, что набор инструкций

Нет. Микроархитектура находится «внизу» и реализует основную архитектуру. При этом у Intel есть множество микроархитектур, реализующих набор инструкций x86 различных ревизий. Микроархитектура — это не то, о чем вам нужно беспокоиться при изучении программирования на ассемблере. Вам нужно знать, какую x86 ревизию (или архитектуру, а не микроархитектуру) вы используете, например. У Pentium есть инструкции, которых нет у процессоров 80386. Возможно, вы захотите начать с книги или чего-то еще, обучающего программированию процессора 8088, так как он будет проще, а более поздние версии архитектуры (286, 386 и т. д.) будут основываться на нем.

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

Язык ассемблера позволяет вам, программисту, писать на машинном языке, используя нечто, напоминающее удобочитаемый текст, и, как правило, позволяет использовать метки вместо запоминания необработанных адресов ОЗУ или ввода-вывода. Альтернативой может быть ввод кодов операций каждой инструкции вручную, что очень утомительно, учитывая количество инструкций и режимов адресации, которые есть в x86.

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

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

Я хотел бы знать, как узнать, какой набор инструкций использует мой процессор; Я использую Linux.

Я также хотел бы понять, как процессор может обрабатывать множество наборов инструкций.

Когда я набираю cat /proc/cpuinfo , я получаю:

Я также вижу множество флагов: fpu , vme , mmxext , .

DJ, ваш ЦП произведен AMD серии FX. Проверьте википедию: en.wikipedia.org/wiki/List_of_AMD_FX_microprocessors и en.wikipedia.org/wiki/AMD_FX: «Набор инструкций AMD64/x86-64» (совместим в специальном режиме с классическим набором инструкций x86; вы можете установить ОС x86 или x86_64). в теме). Linux печатает набор инструкций в выводе команды uname -a.

1 Ответ 1

Я также вижу многочисленные флаги: fpu, vme, mmxext, .

Это ваш ответ: строка флагов сообщает вам, какие функции набора инструкций поддерживает процессор. См. этот вопрос на Unix.SE.

Я также хотел бы понять, как процессор может обрабатывать множество наборов инструкций.

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

Мне известен только один случай, когда AMD смогла изменить набор инструкций, поддерживаемый Intel: Intel скопировала набор инструкций AMD64, назвав его сначала EM64T, а затем набором инструкций Intel 64.

Сравните это с другим 64-разрядным процессором Intel, Itanium, который полностью несовместим с устаревшими 16- и 32-разрядными версиями набора инструкций x86 и, следовательно, несовместим с набором инструкций AMD64/Intel 64. Он был специально разработан, чтобы отличаться для достижения разных целей. Альтернатива Itanium от AMD намеренно совместима с устаревшими наборами инструкций Intel x86, что в некоторой степени усложняет реализацию и снижает потенциальную производительность. Если ваша цель состоит в том, чтобы добиться успеха на массовом рынке, оказывается, что лучше быть совместимым с десятилетиями устаревшим программным обеспечением, чем разрабатывать что-то совершенно новое и, возможно, лучшее, если это означает, что все старое программное обеспечение должно быть либо перестроено, либо выброшено. вне.

Совместимость не является первостепенной задачей проектирования ЦП, иначе Transmeta, Cyrix и VIA добились бы большего успеха. Но совместимость программного обеспечения также является одной из причин того, что ARM Chromebook и ПК ARM Windows RT не вытеснили своих конкурентов на базе Intel, несмотря на их многочисленные преимущества. (более низкая стоимость, лучшее время автономной работы и т. д.)

Мартин имеет 20-летний опыт работы в области информационных систем и информационных технологий, имеет докторскую степень в области управления информационными технологиями и степень магистра в области управления информационными системами. Он адъюнкт-профессор компьютерных наук и компьютерного программирования.

Набор инструкций используется для связи с процессором компьютера. Изучите определение и компоненты набора инструкций, включая длину инструкции, коды операций, операнды, регистры и основную память. Обновлено: 24.01.2022

Набор инструкций

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

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

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

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

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

  1. Длина инструкции (может варьироваться)
  2. Коды операций (выполняемая команда)
  3. Операнды (с чем будет работать команда)
  4. Реестры (внутренние расположения — ограничены по количеству и возможностям, но быстро доступны)
  5. Память (внешнее хранилище — большее и универсальное количество мест, но более медленный доступ)


Произошла ошибка при загрузке этого видео.

Попробуйте обновить страницу или обратитесь в службу поддержки.

Вы должны создать учетную запись, чтобы продолжить просмотр

Зарегистрируйтесь, чтобы просмотреть этот урок

Как участник, вы также получите неограниченный доступ к более чем 84 000 уроков по математике, английскому языку, естественным наукам, истории и многому другому. Кроме того, вы можете пройти пробные тесты, викторины и индивидуальные тренировки, которые помогут вам добиться успеха.

Получите неограниченный доступ к более чем 84 000 уроков.

Уже зарегистрированы? Войдите здесь для доступа

Ресурсы, созданные учителями для учителей

Дженнифер Б.

Вы в ударе. Продолжайте в том же духе!

Просто отмечаюсь. Вы все еще смотрите?

Хотите посмотреть это позже?

Войдите или зарегистрируйтесь, чтобы добавить этот урок в собственный курс.

Инструкции

Так что же такое инструкция? Давайте взглянем на инструкции и их длину.

Об инструкции

Инструкция может различаться по длине в зависимости от архитектуры. В системах x86 длина инструкции обычно составляет от 1 до 3 байтов (для кода операции) плюс количество байтов, необходимых для операндов, в зависимости от режима адресации. Что такое режим адресации? Различные операции могут выполняться непосредственно с чистыми числами, косвенно с числами во внутренних регистрах или очень косвенно с ячейками в основной памяти. Каждый из них представляет собой отдельный режим адресации.

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

Сама инструкция состоит из битового шаблона (снова эти 1 и 0), но в ассемблере вы увидите такой синтаксис, как MOV, ADD и CMP. Они называются мнемоникой, а не кодом операции (мнемоника — это то, что облегчает запоминание другой вещи). Например, чтобы добавить два операнда, таких как число 42, к содержимому регистра EAX, код выглядит следующим образом:

О длине инструкции

Инструкция имеет определенную длину в соответствии с требованиями ISA. Однако рассмотрите следующую инструкцию, показанную на этом рисунке, который мы обозначили как Рисунок 1:

Рисунок 1. Пример длины инструкции
Длина типичной инструкции

Длина инструкции зависит от того, сколько можно указать в наименьшем количестве битов. Некоторые инструкции, подобные показанной на рис. 1, могут быть указаны всего в 16 битах или двух байтах (также называемых словом). Это потому, что эти два 6-битных операнда могут указывать только то, что может быть описано 6-битами в предыдущем примере. Мы можем указать 32 разных вещи с помощью 6 бит, что часто достаточно для указания регистра. Но если нам нужно указать ячейку памяти в основной памяти, для указания каждого адреса может потребоваться 4 байта или больше.

Операнды и коды операций

Еще одна особенность набора инструкций связана с операциями и операндами. То есть, что там на самом деле происходит? Как мы на самом деле выполняем инструкцию и сообщаем процессору, что делать? Здесь на помощь приходит язык ассемблера.

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

В этом примере число 9 будет загружено в регистр EAX:

В этом примере содержимое регистра EBX будет перемещено в регистр EAX:

Регистры и основная память

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

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

Флаги состояния и счетчик программ

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

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

Резюме урока

Хорошо, давайте рассмотрим, что мы узнали!

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

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

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

Читайте также: