Plazer-don.ru

Сварочное оборудование
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Цикл команд в ЦП: как работают выборка, декодирование и выполнение

Цикл команд в ЦП: как работают выборка, декодирование и выполнение

Цикл команд в ЦП

Что CPU / ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР выполняет инструкции программы, находящейся в памяти. Но знаете ли вы, что все они следуют одним и тем же общим правилам? Все они следуют одному и тому же командному циклу, который разделен на три отдельных этапа, называемых «выборка», «декодирование» и «выполнение», которые переводятся как выборка, декодирование и выполнение. Мы объясняем, как работают эти этапы и как они организованы.

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

Циклы Bash

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

  • for — позволяет перебрать все элементы из массива или использует переменную-счетчик для определения количества повторений;
  • while — цикл выполняется пока условие истинно;
  • until — цикл выполняется пока условие ложно.

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

Цикл for

Цикл for bash применяется очень часто из-за своей специфики. Его проще всего использовать когда вы знаете сколько раз нужно повторить операцию или вам нужно просто обработать по очереди все элементы массива и вы не хотите контролировать количество повторений.

Цикл for имеет несколько синтаксисов и может вести себя по разному. Для перебора элементов списка удобно использовать такой синтаксис:

for переменная in список
do
команда1
команда2
done

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

Проверим все на практике и напишем небольшой скрипт, который будет выводить номера от 1 до 5:

!/bin/bash
for number in 1 2 3 4 5
do
echo $number
done

Читайте так же:
Левый ноль для счетчика

Дайте скрипту права на выполнение и запустите его:

chmod +x for1.sh
./for1.sh

Вы увидите, что все выполняется так, как и предполагалось. Программа выведет цифры от 1 до 5, которые мы перечислили в массиве. Вы можете передать циклу любой массив, например, вывод какой-либо другой команды:

for iface in $(ls /sys/class/net/)
do
echo $iface
done

Как вы уже поняли, этот цикл выводит список всех, подключенных к системе сетевых интерфейсов. Но в цикле вы можете не только их выводить, но и выполнять какие-либо действия.

Следующий тип цикла for похож на его реализацию в языках программирования Си и С++. Он состоит из трех частей, инициализатора счетчика, условия продолжения выполнения и действия над счетчиком. Вот синтаксис:

for (( счетчик = 1 ; счетчик < 10 ; счетчик ++ ))
do
команда1
команда2
done

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

!/bin/bash
for ((i=1; i < 10; i++))
do
echo $i
done

Результат странный, правда? Обратите внимание, как выполняется проверка условия. Значение счетчика сравнивается с эталоном. Действие с переменной счетчиком выполняется сразу же после завершения основного блока команд, а уже потом делается сравнение. Таким образом, у нас при первом выполнении i равно 1, а после него уже два 2. Теперь к завершению девятого прохода значение счетчика будет увеличено на единицу и станет 10. Условие сравнения 10 < 10 не верно, поэтому цикл дальше не выполняется.

С помощью этого же синтаксиса можно сделать бесконечные циклы bash linux:

!/bin/bash
for ((;;))
do
echo «Бесконечный цикл, нажмите CTRL+C для выхода»
done

Если необходимо, вы можете выйти из цикла преждевременно. Но так делать не рекомендуется. Для выхода используйте команду break:

!/bin/bash
for (i=1;i<10;i++)
do
echo Значение счетчика $i
if [[ i -gt 5]]
break
fi
done

Со циклами for мы завершили, теперь вы знаете как они выглядят и что с ними делать. Дальше мы рассмотрим циклы while и until. Они намного проще и более универсальны.

Цикл While

Суть цикла While в том, что он будет повторяться до тех пор, пока будет выполняться условие, указанное в объявлении цикла. Здесь нет никаких счетчиков и если они вам нужны, то организовывать их вам придется самим. Bash цикл while имеет такой синтаксис:

while [ условие ]
do
команда1
команда2
команда3
done

Это работает так: сначала выполняется проверка на правильность условия, если true, выполняется набор команд, затем снова выполняется проверка, и так пока условие не вернет отрицательный результат. Это нам тоже нужно сделать вручную. Рассмотрим пример:

Читайте так же:
Canon pixma ip2840 отключить счетчик чернил

!/bin/bash
x=1
while [ $x -lt 5 ]
do
echo «Значение счетчика: $x»
x=$(( $x + 1 ))
done

Здесь сначала мы устанавливаем значение счетчика в единицу, затем, в условии сравниваем его с 5, пока счетчик меньше пяти будут выполняться команды из блока do-done. Но еще в этом блоке нам нужно увеличивать значение счетчика на единицу, что мы и делаем.

Также с помощью while мы можем прочитать несколько строк из стандартного ввода:

!/bin/bash
hile read line
do
echo $line
done

Программа будет запрашивать новые строки пока вы не передадите ей символ конца файла с помощью сочетания клавиш Ctrl+D. Бесконечный цикл while bash с помощью while еще проще организовать:

while :
do
echo «Бесконечный цикл bash, для выхода нажмите Ctrl+C»
done

Цикл until

Нам осталось рассмотреть последний цикл. Это цикл until. Он очень похож на while и отличается от него только работой условия. Если в первом нужно чтобы условие всегда было истинным, то здесь все наоборот. Цикл будет выполняться пока условие неверно. Синтаксис:

until [ условие ]
do
команда1
команда2
done

Думаю после рассмотрения реального примера со счетчиком будет намного понятнее как это работает:

!/bin/bash
count=1
until [ $count -gt 10 ]
do
echo «Значение счетчика: $count»
count=$(( $count + 1 ))
done

Мы задаем значение счетчика 1 и увеличиваем его на единицу при каждом проходе. Как только условие счетчик больше 10 выполнится, сразу цикл будет остановлен. В циклах while и until тоже можно использовать команды break и continue для выхода из цикла и завершения текущего прохода, но мы не будем это очень подробно рассматривать.

Добавление быстрой команды из стороннего приложения

Многие приложения поддерживают добавление быстрой команды для Siri. Найдите кнопку «Добавить для Siri» в интерфейсе или настройках приложения.

  1. Коснитесь кнопки «Добавить» или «Добавить в Siri» рядом с ярлыком, который вы хотите добавить.
  2. Нажмите «Добавить для Siri».

Сторонние приложения должны поддерживать функцию «Быстрые команды Siri», чтобы их можно было добавлять для Siri. Если быстрые команды для стороннего приложения не отображаются, проверьте в App Store, поддерживает ли приложение быстрые команды Siri.

Как работает процессор: коротко о главном

Процессор, также известный как микропроцессор (CPU), является сердцем и/или мозгом компьютера. Давайте углубимся в суть компьютера, чтобы помочь нам эффективно писать компьютерные программы.

Читайте так же:
Счетчики лабораторные для подсчета лейкоцитарной формулы

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

Как работает процессор: коротко о главном

Два основных компонента процессора: блок управления — CU, арифметико-логический блок — ALU

Блок управления CU является частью CPU, которая помогает организовать выполнение инструкций. Он говорит, что делать. Согласно инструкции, это помогает активировать провода, соединяющие ЦП с другими частями компьютера, включая ALU . Блок управления является первым компонентом ЦП, получившим инструкцию для обработки.

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

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

Регистры

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

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

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

Оперативная память (RAM)

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

Инструкции

Инструкция — это детальное вычисление уровня, которое может выполнить компьютер. Существуют различные типы команд, которые процессор может обрабатывать.

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

Эти инструкции встроены в процессор. ALU содержит арифметическое и логическое значение, в котором поток управления управляется CU.

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

Читайте так же:
Как взять счетчик яндекс метрики

Тактовая частота процессора

Тактовый цикл

Скорость компьютера определяется его тактовым циклом. Это количество тактов в секунду, на котором работает компьютер. Одиночные такты очень малы, около 250 * 10 * -12 сек. Чем выше такт, тем быстрее процессор.

Цикл тактовой частоты процессора измеряется в ГГц (гигагерц). 1 ГГц равен 10 Гц (герц). Герц означает секунду. Таким образом, 1 гигагерц означает 10 циклов в секунду.

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

Clock cycle = 1/clock rate

CPU Time = number of clock cycle / clock rate

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

Как выполняется инструкция

Инструкции хранятся в оперативной памяти в последовательном порядке. Для гипотетического CPU инструкция состоит из кода OP (операционного кода) и адреса памяти или регистра .

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

Давайте рассмотрим пример набора инструкций, который добавляет два числа. Ниже приведены инструкции вместе с описанием:

ШАГ 1 — LOAD_A 8

Инструкция изначально сохраняется в оперативной памяти, скажем, <1100 1000>. Первые 4 бита — это код операции. Это определяет инструкцию. Эта инструкция извлекается в IR блока управления. Команда декодируется как load_A, что означает, что она должна загрузить данные в адрес 1000, который является последним 4-битным битом инструкции для регистрации A.

ШАГ 2 — LOAD_B 2

Как и выше, это загружает данные с адреса памяти 2 (0010) в регистр ЦП В.

ШАГ 3 — ADD ВА

Теперь следующая инструкция — добавить эти два числа. Здесь CU говорит ALU выполнить операцию добавления и сохранить результат обратно в регистр A.

ШАГ 4 — STORE_A 23

Это очень простой набор инструкций, который помогает добавить два числа.

BUS (шина)

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

CPU также имеет механизм предварительной загрузки инструкции в кеширование. Как мы знаем, существуют миллионы инструкций, которые процессор может выполнить за секунду. Это означает, что при извлечении инструкции из ОЗУ будет больше времени, чем при их выполнении. Таким образом, кэш ЦП предварительно выбирает некоторые инструкции, а также данные, чтобы ускорить выполнение.

Читайте так же:
Счетчики трафика для торговых центров

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

Современный ЦП использует конвейеризацию команд для распараллеливания при выполнении команд Fetch, Decode, Execute. Когда одна инструкция находится в фазе декодирования, CPU может обработать другую инструкцию для фазы выборки.

Производительность процессора определяется его временем выполнения.

скажем, для выполнения программы требуется 20 мс. Производительность процессора составляет 1/20 = 0,05 мс

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

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

Вместо квадрокоптера

Робот-пылесос Polaris PVCR 3200 IQ Home Aqua станет удачным подарком для тех, кто любит радиоуправление. Наравне с квадрокоптером робот может управляться со смартфона, как игрушка. На экране смартфона есть дисплей, в котором предусмотрено управление, аналогичное джойстику. Вы можете отправлять робота в любую точку квартиры, нажимая кнопки «вправо», «влево», «вверх» или «вниз». Если вы увидели, что ваша собака просыпала корм, то робот сможет убрать только эту грязную зону.

Каким должен быть идеальный начальник команды?

«Прежде всего должна быть ответственность перед людьми. Я считаю, что если тебе что-то доверили, ты не имеешь никакого морального права подвести других людей. Тут уж либо работай, либо нет. Мне кажется, на подобных должностях должны трудиться только ответственные люди, которые не могут сказать самим себе: «А, ладно, сделаю завтра», — считает Сергей Якунчиков из ЦСКА.

«Нужно быть мастером на все руки. Правильный начальник команды – это коммуникабельный и по-хорошему шустрый человек. Надо знать футбол изнутри, жить им. Понимать все проблемы команды, которые происходят в жизни и в быту, — подводит итог Игорь Худогов из «Тосно».

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector