Счетчик команд – Энциклопедия по машиностроению XXL
При перемещении программы в памяти адрес ячейки, заданной косвенно-регистровым режимом, остается неизменным. Это удобно при адресации общих ресурсов системы, к которым разрешен доступ программе. Если адресуемые данные перемещаются вместе с программой, то использование этого режима адресации приведет к неверному результату. Что сделать в этом случае Для ответа на этот вопрос рассмотрим применение счетчика команд в режиме со смещением. [c.101]В этом режиме содержимое выбранного регистра (в нашем случае — счетчика команд) складывается со смещением, которое расположено непосредственно в команде. Полученная сумма яв- [c.101]
Процессор СМ-4 имеет более сложную внутреннюю организацию. Структурная схема центрального процессора СМ-4 приведена на рис. 2.2. По существу, процессор состоит из следующих основных узлов обрабатывающего блока (верхняя часть рисунка), устройства управления (нижняя часть рисунка), расширителя арифметики (РА) и диспетчера памяти (ДП). На приведенном рисунке во всех условных обозначениях используются буквы русского алфавита, за исключением регистров PSW (состояние процессора), SP (указатель стека), РС (счетчик команд) и R0—R5 (общие регистры), где используются обозначения, принятые в архитектуре программного уровня [16].
Регистр SR2 включает виртуальный адрес, загружаемый при выборке каждой команды программы, т. е. содержимое счетчика команд РС. Виртуальный адрес в регистре SR2 блокируется при возникновении любой ошибки диспетчера памяти. [c.121]
Счетчик команд. В счетчике команд хранится информация о местоположении или конкретный адрес очередной команды. Командное слово состоит из двух частей-оператора и операнда или ссылки на операнд. Оператор задает тип операции, которая должна быть выполнена (сложение, сравнение и т.д.). Операнд обычно указывает данные, над которыми эта операция будет выполняться. ЦП определяет последовательность выполнения команд, вызывая командные слова из памяти в соответствии с содержимым счетчика команд. После получения процессором каждого слова содержимое счетчика команд увеличивается на единицу для перехода к следующему командному слову. [c.29]
Вюд-вывод по прерыванию происходит тогда, когда внешнему устройству разрешено останавливать выполнение центральным процессором текущих программ и передавать управление специальным служебным подпрограммам. Эти подпрограммы должны после вызова сохранить в памяти содержимое ра чих регистров, регистра состояния и счетчика команд, с тем чтобы при возврате управления основной программе не произошло никаких изменений и выполнение прерванной программы могло быть продолжено. [c.53]
Ветвление может быть условным, т.е. осуществляться при выполнении ряда условий, либо безусловным. Адрес, указанный в команде безусловного перехода, загружается в счетчик команд, и управление выполнением программы передается туда. При условном ветвлении операция выполняется в случае истинности заданного условия. В противном случае эта операция пропускается, и далее программа выполняется в установленной последовательности. Некоторые команды ветвления приведены в табл. 3.4.
Основными регистрами являются аккумулятор, где временно хранятся вводимые в АЛУ данные регистр флагов, в котором хранится информация, отражающая результат выполнения последней команды в АЛУ счетчик команд, по которому микропроцессор отслеживает номер исполняемой команды в профамме указатель стека, в который, например, можно поместить значение счетчика команд, чтобы запомнить текущее место в программе, на которое нужно будет вернуться после выполнения определенной подпрограммы регистр команд и дешифратор, где команда преобразуется в требуемый для последующего выполнения вид. Микропроцессору всегда необходимо иметь интерфейсы между входами и выходами для подсоединения к периферийным устройствам. Интерфейсы необходимы потому, что сигналы, приходящие от периферийных устройств, часто не удовлетворяют требованиям, предъявляемым микропроцессором ко входным сигналам, или скорость их передачи такая, которую микропроцессор не может поддержать. В свою очередь, требования периферийных устройств ко входным сигналам могут не соответствовать выходным сигналам микропроцессора, например. [c.345]
Пятая дорожка перфоленты отведена для записи дополнительных команд, то же в кодированном виде. В 1, 5 и 9-й строках кодируется знак перемещения по каждой оси пробивка соответствует отрицательному числу (в карте программы знаком X в соответствующих столбцах указывается, нужно ли делать такую пробивку). Пробивкой отверстий во 2, 3 или 4-й строке (и знаком х в соответствующих столбцах карты) указывается вход делителя главного счетчика интерполятора, используемого в данном кадре (в нашем примере пробивкой отверстия во 2-й строке первого кадра закодирован первый вход делителя). В 12-й строке пробивается знак конца кадра, а в остальных строках пятой дорожки, т. е. в 6, 7, 8, 10 и 11, пробивается код времени отработки кадра (время 38,4 с закодировано пробивкой отверстий в 8 и 11-й строках 10,4 с для второго кадра — в 8, 10 и 11-й строках и т. п.).
Рассмотрим второй способ кодирования вариантов технологического процесса. Этот способ успешно может применяться для уменьшения числа дешифраторов в тех случаях, когда среди множества комбинаций процесса имеются качественно совершенно одинаковые процессы, отличающиеся лишь продолжительностью. Например, в счетно-аналитической машине колесо какого-либо десятичного разряда счетчика должно поворачиваться на десять различных углов. Если бы управление процессом происходило лишь при помощи отверстий в одном поперечном ряду ленты, то для команд на поворот каждого десятичного колеса требовалось бы десять различных расположений отверстий по ширине ленты и, следовательно, десять дешифраторов. Однако для этого же случая можно ограничиться лишь одним дешифратором, располагая отверстия, соответствующие одной комбинации процесса, на т поперечных рядах ленты. Тогда на протяжении этих m рядов каждый дешифратор срабатывает т раз. Связь между т, п и к будет следующая [c.262]
Обработку деталей массой до 50 г, диаметром до 4000 мм можно производить на уникальном двухстоечном токарно-карусельном станке 1540 Пр Коломенского завода тяжелого станкостроения. Система программного управления станком — замкнутая с контролем по перемещению и позволяет производить растачивание ступенчатых, цилиндрических и конических поверхностей. Программа обработки записывается на перфорированной киноленте, считывается электроконтактным считывающим устройством и запоминается в блоке памяти. Из блока памяти технологические команды — направление подачи, скорость подачи и скорость вращения планшайбы — поступают в схему электропривода станка, а заданные перемещения исполнительных органов вводятся в двоичном коде в электронный триггерный счетчик, включенный по схеме вычитания.
Два датчика, контролирующие перемещения по двум координатам, отсчитывают каждое перемещение ползуна или суппорта на 0,02 мм и посылают сигналы в счетчик импульсов. Каждый импульс, поступающий в счетчик по цепи обратной связи, вызывает вычитание единицы из числа, введенного в счетчик при считывании программы. После того как закончено заданное перемещение, количество импульсов, поступивших от датчика, совпадет с заданным числом и подается команда на остановку исполнительного органа. [c.175]
Измерение диаметра осуществляется следующим образом. Измерительный диск 7 с помощью подводящего устройства доводится до контакта с поверхностью вращающейся детали /3 и прижимается к ней пружиной 6 с тарированным усилием 10,5 кГ. Диск начинает вращаться без проскальзывания. На отсчетном устройстве нажимается кнопка сброс , и схема приводится в исходное положение. После поступления командного импульса от счетчика оборотов детали начинается счет импульсов, поступающих с фотодатчика измерительного устройства. Счет импульсов прекращается по команде счетчика оборотов детали через один или пять ее оборотов. На декатронах отсчетного устройства фиксируется диаметр контролируемой детали. [c.320]
Если все заданное число срабатываний команды (например 25) зафиксировалось одним счетчиком, то погрешность срабатывания оценивается величиной цены деления зоны. Если срабатывания зафиксированы несколькими счетчиками, то предельная погрешность срабатывания будет Дит = Зо, [c.341]
После выполнения всех операций, заданных командой, со схемы управления координатами и револьверной головкой выдается сигнал окончания обработки. Этот сигнал поступит на схему управления вводом, если в команде не задан код повторений, для пуска вводного устройства. При наличии кода повторения сигнал окончания обработки поступит на промежуточное запоминающее устройство для повторного считывания информации команды. Число повторений кадра определяется кодом числа повторений, который поступает на счетчик числа повторений при считывании информации из промежуточного запоминающего устройства. При повторном считывании информации команды число повторений не считывается.
В момент начала отработки кадра данные о повторениях передаются обратным кодом с ЗТ в СП. После заполнения основного счетчика интерполятора сигнал переполнения поступает на счетный вход счетчика СП, и отработка кадра повторяется до получения сигнала переполнения со счетчика повторений. Этим сигналом проверяется правильность отработки числа повторений (путем контроля по модулю 9) и выдается команда на отработку нового кадра. [c.168]
ОСНОВНОГО счетчика. Дальнейшая отработка информации в этом случае прекращается на время отработки технологической команды. Сигнал окончание отработки технологической команды останавливает работу выходных преобразователей и дает команду на отработку очередного кадра или повторения. [c.170]
Команда ввода данных может поступать с ЭВМ в виде последовательности коротких прямоугольных импульсов. В этом случав они подаются на счетчик 5, который формирует двоичный код, управляющий работой схемы коммутации 17 через схему 7 выбора режима управления. В этом режиме с поступлением на вход счетчика 3 каждого нового импульса на ЭВМ выдается информация с очередного канала, начиная с первого. В другом режиме с ЭВМ поступает непосредственно двоичный код номера требуемого канала. Это позволяет уменьшить время ввода информации в ЭВМ путем выборочного считывания данных с наиболее информативных каналов.
Для калибровки каналов в реальных условиях в системе имеется возможность предварительной записи чисел в реверсивные счетчики 15. Запись чисел производится по команде схемы 16 предварительной записи, которая формирует управляющий сигнал сразу после поступления импульса установки нуля. [c.185]
Временные системы отводят для выполнения технологического цикла определенный отрезок времени по заранее заданной программе. Выполняется это с помощью счетчиков времени, которые в конце каждого промежутка дают необходимые командные сигналы, или сигналы поступают от непрерывно-вра-щающегося с определенной скоростью распределительного вала. Существенный недостаток временных систем в отсутствии контроля исполнения предыдущих команд. [c.256]
Один из трех изготовленных двигателей испытывался в течение четырех месяцев, причем наблюдалось два отказа. Испытания проводились на автоматизированном стенде, схема которого дана на рис. 2. Частота реверсов задавалась командо-аппаратом КЭП-12У. Общее число реверсов фиксировалось счетчиком импульсов СИ-1. При отказе машины установка [c.42]
Управление осуществляется через РСИ от конечных путевых кулачков и выключателей, управляющих электромагнитами (импульсно). Число заданных делений устанавливается на счетчике импульсов, и затем соответственно настраивается гитара делений сменными колесами. После каждого рабочего хода стола станка импульс от конечного выключателя подается на РСИ, которое дает команду через электромагнит на включение операции деления. Этот цикл повторяется до тех пор, пока не будет выполнено установленное число делений. После этого [c.79]
Режимы адресации с использованием счетчика команд. Одной из основных особенностей рассмотренных выше способов адресации является то, что во всех из них требуется предварительная загрузка одного из регистров общего назначения. После того, как регистр загружен, его содержимое может быть использовано в качестве указателя текущего адреса массива, базового адреса начала массива, индексного смещения к конкретному элементу массива и т. п. При однократном обращении к произвольной ячейке памяти такой способ оказывается неудобным, так как требует выполнения сразу двух операций предварительной загрузки адреса ячейки в регистр и собственно обращения к ячейке через регистр с помощью одного из режимов адресации. В действительности эту операцию можно осуществить гораздо проще если учесть, что счетчик команд К7 (РС) является регистром общего назначения и может быть использован в любом из режимов адресации. Однако не для всех режимов адресации это имеет смысл. Так, если использовать счетчик команд в качестве регистра в режиме с автоуменьшением, то это может привести к непредсказуемому результату. Фактически со счетчиком команд используются только четыре режима адресации с автоувеличением, косвенный с автоувеличением, режим смещения и косвенный режим смещения. Такие комбинации дают (с точки зрения программиста, но не аппаратно) четыре дополнительных режима адресации непосредственный, абсолютный, относительный и косвенно-относительный. [c.100]
Расс1 отрим алгоритм выполнения режима с автоувеличением при применении счетчика команд в качестве регистра общего назначения. По определению режима операция производится над операндом, адрес которого находится в выбранном регистре. Если таким регистром является счетчик команд, то он в этот момент будет указывать на ячейку, непосредственно следующую за спецификатором операнда. Таким образом, операнд оказывается сразу после команды. После выборки операнда в отличие от обыч- [c.100]
Если использовать косвенный режим с автоувеличением, то по определению режима содержимое счетчика команд является не адресом операнда, а адресом адреса операнда. Таким образом, получаем возможность задать непосредственно в команде абсолютный адрес операнда. Если в предыдущем примере использовать этот режим, то по адресу 001000 занесется не число 20, а содержимое ячейки 20. На Ассемблере такая команда будет иметь мнемонику МОУВ 20, (К2). [c.101]
И наконец, если использовать счетчик команд в косвенном режиме со смещением, то получим еще один способ адресации, который называется косвенно-относительным. Здесь сумма содержимого продвинутого счетчика команд и смещения служит адресом адреса операнда. Для программиста этот способ является просто косвенной адресацией с использованием произвольной ячейки для хранения адреса операнда. Как и в предыдущем режиме, смещение должно соответствовать разности между адресом этой ячейки и значением счетчика команд МОУВ 20, (К2) [c.102]
Местная память (МП) содержит 16 регистров, причем 8 из них являются общими регистрами — КО—К7, на два из которых возложены специальные функции Кб — указатель стека (5Р) и К7— счетчик команд (РС). Остальные 8 регистров доступны только на микропрограммном уровне и предназначены для самых разнообразных целей. Адрес регистра МП формируется мультиплексором адреса (МА) из следующих четырех возможностей РКИ — поле источника в регистре команд, РКП — поле приемника в регистре команд, А — младшие разряды регистра А (при адресации через ОШ), МК — непосредственно из микрокоманды. Операции местной памяти задаются полем ОМП и определяются возможностями микросхемы К155РУ2. [c.111]
В первой фазе логическое устройство управления производит выборку адреса команды из счетчика команд. Адрес декодируется схемами дешифратора, а команда, расположенная по этому адресу, извлекается из памяти и загружается в регистр команд, где она дешифруется. [c.52]
КОМАНДЫ ОПЕРАЦИЙ ВЕТВЛЕНИЯ. По команде ветвления управление программой передается от текущей команды, адрес которой находится в счетчике команд, к некоторой другой, не следующей за данной. В микропроцессоре Intel 8085А ветвление реализуется командой JUMP. Операции ветвления дают возможность использовать программные циклы, в которых ряд команд программы может выполняться повторно. [c.57]
В сверлильных и расточных станках, наряду с обеспечением позицирования стола, необходимо обеспечить управление перемещением шпинделя с инструментом, которое осуществляется по оси Z. На рис. 133 представлен весь цикд перемещения шпинделя в этом случае. Задача управления состоит в своевременной подаче команд на изменение скорости перемещения и на останов. Время подачи команд должно учитывать длину инструмента. Преждевременный переход от быстрого подвода к рабочей скорости при укороченном инструменте приводит к увеличению времени обработки, запаздывание с переходом к рабочей подаче может привести к поломке удлиненного инструмента. Команды нй переключение могут быть записаны на программоносителе, но тогда должны быть записаны и сигналы коррекции, связанные с изменением длины инструмента. Все это усложняет программу. По этой причине программа на управление перемещениями по оси Z Иногда на перфоленту не записывается, а набирается на специальном штекерном табло. В других случаях информация о положениях инструмента, необходимая для составления программы, получается от систем цифровой индикации, которая широко применяется в указанных станках. Суть ее состоит в том, что состояние двоично-десятичных счетчиков, назы-Q ваемых также декадными счетчиками, работаю-щих на сложение и вычитание, через дешифратор подается на неоновые индикаторные лампы, на которых загораются цифры в соответствие с показаниями каждой декады счетчика. Настройка станка на размер по оси Z состоит в этом случае в подводе инструмента до касания с заготовкой, координата этого положения считывается на табло [c.210]
В электросхеме стенда имеются электромагнитные счетчики, фикси- рующие количество срабатываний (команд) прибора. С помощью шаговых реле осуш,ествляется прекраш,ение счета после установленного числа арретирований стержня датчика. При определении смещения настройки работает только один счетчик, который фиксирует общее число срабаты- [c.337]
После того как очередное слово записано на магнитный барабан, показания счетчика адреса слова увеличиваются на единицу. По новому адресу считывается следующее слово из ОЗУ, подлежащее обмену, и так до тех пор, пока не будет записан весь блок информации, указанной в управляющем слове канала. Первые три шага выполнения операции записи, рассмотренные выше и происходящие соответственно в моменты времени г , fj, являются общими для всех канальных команд. Остановимся на выполнении операции считывания информации с магпитпого барабана. [c.53]
Блок (рис. 3) состоит из 2-х схем для запоминания единиц и десятков повторений (ЗЯ и ЗЯа), двухразрядного десятичного счетчика повторений СП и СЯд, схемы контроля повторений КП, схемы для запоминания контрольного числа повторений 3/(Я, 3-х схем для запоминания технологических команд 3Tj, ЗТ2 и ЗТ3, промежуточной памяти ПП и выходных преобразователей технологических команд ВЯ , BIJ2 и BIJ3. [c.168]
В датчике предусмотрен режим блокировки перезаписи данных на время ввода информации в ЭВМ. Ели команда ввода ностунила в конце очередного цикла измерения, то возможна ситуация, в которой импульс установки нуля сформируется в период записи информации в память ЭВМ. В этом случае и срабатывает блокировка входы счетчиков 5 отключаются, а импульс установки нуля не подается на соответствующие выводы счетчиков в течение всего времени считывания. [c.185]
Дозатор весовой для металлических компонентов шихты состоит из вибропи-тателя и конвейера, смонтирован на грузоподъемной раме. Выдача заданного количества материала регулируется с помощью контактного приспособления, связанного со счетчиком дозатора импульсами на пульт задающего устройства, на котором установлено реле счета импульсов. Остановка дозатора — автоматическая (после выдачи заданного количества материала — по команде контактных датчиков сигнальных устройств). Материал из расходного бункера вибропитателем выдается на полотно конвейера. Привод вибропитателя сблокирован с электродвигателем пластинчатого конвейера. [c.16]
Процессор ЭВМ
Процессор ЭВМ
Процессор – это блок ЭВМ, предназначенный для автоматического считывания команд программы, их расшифровки и выполнения. Будучи центральным устройством ЭВМ, процессор во многом определяет её возможности и производительность.
В компьютерах третьего поколения процессор изготавливался из отдельных деталей и микросхем невысокого уровня интеграции. Прогресс в области микроэлектроники привел к тому, процессор удалось разместить внутри одного кристалла. Таким образом, он стал отдельной самостоятельной микросхемой и получил название – микропроцессор.
Размещение процессора в одной микросхеме создало предпосылки для существенного увеличения скорости работы процессора и повышения его надежности. Уменьшение размеров привело к ухудшению условий теплоотдачи, что потребовало для охлаждения современных процессоров использования металлических радиаторов с большой площадью поверхности и вентиляторов («кулеров»).
Арифметико-логическое устройство
АЛУ – компонента процессора, выполняющая арифметические и логические операции над данными.
Арифметической операцией называют процедуру обработки данных, аргументы и результат которой являются числами (сложение, вычитание, умножение, деление). Логической операцией называют процедуру, осуществляющую построение сложного высказывания (операции И, ИЛИ, НЕ, …).
АЛУ состоит из регистров, сумматора с соответствующими логическими схемами и блока управления выполняемым процессом. Устройство работает в соответствии с сообщаемыми ему кодами операций, которые при пересылке данных нужно выполнить над переменными, помещаемыми в регистры.
Регистр – это типовой узел ЭВМ, предназначенный для временного хранения данных или выполнения над ними некоторых действий. Регистр состоит из разрядов, в которые можно быстро записывать, запоминать и считывать слово, команду, двоичное число. Обычно регистр имеет ту же разрядность, что и машинное слово.
Регистр, накапливающий данные, называется аккумулятором.
Регистр, обладающий способностью перемещать содержимое своих разрядов, называют сдвиговым регистром. В этих регистрах за один такт хранимое слово поразрядно сдвигается на одну позицию.
Некоторые регистры служат счетчиками. Счетчик является устройством, которое выдает в двоичной форме число импульсов, поступивших на его единственный вход. Максимальное число импульсов, которое счетчик может подсчитать, называется его емкостью.
Регистры общего назначения (РОН) – общее название для регистров, которые временно содержат данные, передаваемые или принимаемые из памяти. РОН являются программно-доступными регистрами.
Сумматор – это устройство, осуществляющее операции сложения (логического и арифметического) чисел или битовых строк, представленных в прямом или обратном коде.
Важной функцией АЛУ является анализ полученного после выполнения команды результата. Обычно проверяется два свойства: равенство или неравенство нулю и отрицательность или неотрицательность ответа. Результаты анализа сохраняются в виде отдельных битов в регистре состояния. Данные этого регистра используются УУ для исполнения команд условных переходов.
Устройство управления
Чтобы обеспечить автоматические вычисления по программе, процессор должен уметь выполнять еще ряд дополнительных действий:
u извлекать из памяти очередную команду;
u расшифровывать ее и преобразовывать в последовательность стандартных элементарных действий;
u заносить в АЛУ исходные данные;
u сохранять полученный в АЛУ результат;
u обеспечивать синхронную работу всех узлов машины.
Для выполнения этих функций служит устройство управления (УУ).
УУ содержит несколько важных регистров для хранения информации, необходимой в ходе выполнения текущей команды.
Регистр команды – служит для размещения текущей команды, которая находится в нем в течение текущего цикла процессора.
Кроме этого, имеются регистры, содержащие адрес команды, счетчик адреса команды, адреса операндов, операнды и результаты выполнения команды.
Разрядность процессора
Под разрядностью процессора понимают число одновременно обрабатываемых им битов. Формально эта величина есть количество двоичных разрядов в регистрах процессора.
Помимо внутренней разрядности процессора существует еще разрядность шины данных, которой он управляет, и разрядность шины адреса. Разрядность регистров и разрядность шины данных влияют на длину обрабатываемых данных, а разрядность шины адреса R определяет максимальный объем памяти, который способен поддерживать процессор. Эту характеристику называют величиной адресного пространства, и она может быть вычислена по формуле 2R.
Как правило, в современных процессорах разрядности регистров, шины данных и шины адреса различны. Например,
Основной алгоритм работы процессора
Важной составной частью фон-неймановской архитектуры является счетчик адреса команд. Он постоянно указывает на ячейку памяти, в которой хранится следующая команда программы. Считав очередную команду из памяти, процессор сразу же увеличивает значение счетчика так, чтобы он показывал на следующую команду. Затем считанная команда расшифровывается и выполняется.
При выполнении каждой команды вычислительная машина проделывает определенные стандартные действия:
1. Согласно содержимому счетчика адреса команды считывается очередная команда программы. Её код заносится на хранение в регистр команд. Счетчик команд автоматически изменяется так, чтобы в нем содержался адрес следующей команды. В простейшем случае для этой цели достаточно к текущему значению счетчика прибавить некоторую константу, определяющуюся длиной команды.
2. Считанная в регистр команд операция расшифровывается.
3. Извлекаются необходимые данные.
4. Над ними в АЛУ выполняются требуемые действия.
5. Результат записывается в ОЗУ.
Затем во всех случаях, за исключением останова, описанные действия циклически повторяются.
В приведенном алгоритме ничего не говорится о первоначальном значении счетчика адреса команд. Эта неопределенность решается следующим образом. При включении питания компьютера или при нажатии на кнопку сброса в счетчик аппаратно заносится стартовый адрес находящейся в ПЗУ программы инициализации всех устройств и начальной загрузки ЭВМ.
считывание очередной команды в регистр команд
|
формирование адреса
|
дешифрация команды
|
выборка операндов
|
выполнение операции
|
запись результата
|
Рис 3.1 Основной алгоритм работы процессора.
Организация ветвлений
Основной алгоритм работы ЭВМ позволяет шаг за шагом выполнить хранящуюся в ОЗУ линейную программу. Но для решения практических задач требуется организация разветвлений и повторений. Для изменения порядка вычислений в системе команд любой ЭВМ существуют специальные инструкции переходов, с помощью которых в счетчик команд заносится необходимый адрес. Как известно, переходы бывают безусловные, выполняемые всегда, и условные, которые совершаются только в случае истинности определенного условия. Анализ условий осуществляется в арифметико-логическом устройстве.
По способу задания адреса, на который необходимо перейти, инструкции делятся на абсолютные и относительные. В абсолютных переходах адрес задается явно, а в относительных – указывается так называемое смещение, которое прибавляется к текущему содержимому программного счетчика.
Важную роль в программном обеспечении играют переходы с возвратом, когда процессор запоминает адрес, где произошел переход, и по специальной команде способен возвратиться для продолжения вычислений.
Оптимизация выполнения команд
Конвейеризация. Как следует из приведенной схемы (рис.3.1), обработка команды в процессоре может быть разделена на несколько основных этапов, которые можно назвать микрокомандами. Известно пять основных типов микрокоманд. Каждая операция требует для своего выполнения времени, равному такту генератора процессора.
Все этапы задействуются только один раз и всегда в одном и том же порядке: одна за другой. Это означает, что если первая микрокоманда выполнила свою работу и передала результаты второй, то для выполнения текущей команды она больше не понадобится, и, следовательно, может приступать к выполнению следующей команды. Проще говоря, пока происходит расшифровка и выполнение первой команды, можно извлечь из памяти одну или даже несколько следующих команд. Такой способ похож на заводской конвейер и получил название конвейеризация.
При использовании конвейеризации осуществляется параллельная обработка команд, в каждый момент одна команда считывается, другая декодируется и т.д. Всего в обработке одновременно находится пять команд. Таким образом, на выходе конвейера на каждом такте процессора появляется результат обработки одной команды. Первая инструкция может считаться выполненной, когда завершат работу все пять микрокоманд.
Рассмотренная технология обработки команд носит название конвейерной обработки. Каждая часть устройства называется ступенью конвейера, а общее число ступеней – длиной линии конвейера.
Очевидно, что конвейер эффективно функционирует только тогда, когда он целиком заполнен. Наличие в программах команд переходов нарушает работу конвейера и требует его «повторного запуска». Некоторая компенсация данного недостатка может быть достигнута за счет применения суперскалярности.
Суперскалярность. Суть этого метода заключается в дублировании устройств. Процессоры с несколькими линиями конвейера получили название суперскалярных. Процессор Pentium имеет два конвейера выполнения команд, благодаря чему он может выполнять одновременно две инструкции. Встретив команду перехода, процессор на первом конвейере продолжает работы на случай, если переход не произойдет, а второй конвейер запускает с адреса, на который переход может произойти. Следует учесть, что при всей кажущейся простоте описанной процедуры, синхронизация работы двух конвейеров – достаточно сложная задача.
Во многих вычислительных системах наряду с конвейером команд используются конвейеры данных. Это позволяет достичь очень высокой производительности работы процессора.
Тактовая частота
Любая операция процессора (машинная команда) состоит из отдельных элементарных действий – тактов. В зависимости от сложности, команда может быть реализована за разное количество тактов.
Для организации последовательного выполнения требуемых тактов в компьютере имеется специальный генератор импульсов, каждый из импульсов инициирует очередной такт машинной команды. Очевидно, чем чаще следуют импульсы от генератора, тем быстрее будет выполнена команда, состоящая из фиксированного числа тактов, тем выше производительность процессора. Разумеется, частоту генератора импульсов нельзя установить произвольно высокой, т.к. процессор может просто не успеть выполнить действие очередного такта до прихода следующего импульса.
Предельная тактовая частота во многом определяется технологией производства микросхем, в частности наименьшими достижимыми размерами элементов, которые определяют минимальное время передачи сигналов.
Система команд процессора.
Основные группы команд. Не смотря на большое число разновидностей ЭВМ, на самом низком уровне системы их команд имеют много общего. Любая ЭВМ содержит следующие группы команд:
1. Команды передачи данных (перепись), копирующие информацию из одного места в другое.
2. Арифметические операции, которым обязана своим рождением вычислительная техника.
3. Логические операции, позволяющие компьютеру производить анализ получаемой информации. Примерами могут служить сравнение, логические операции И, ИЛИ, НЕ, а так же анализ отдельных битов кода, их сброс и установка.
4. Сдвиги двоичного кода влево и вправо. Операции сдвига используются, например, при выполнении умножения и деления чисел.
5. Команды ввода и вывода информации для обмена с внешними устройствами.
6. Команды управления, к которым следует отнести все виды переходов. Сюда же включают операции по управлению процессором.
Процессоры RISC- и CISC- архитектуры
По способу представления команд все микропроцессоры можно разделить на две группы:
u процессоры типа CISC (Complex Instruction Set Computing) с полным набором команд;
u процессоры типа RISC (Reduced) с сокращенным набором команд. Эти процессоры нацелены на быстрое выполнение небольшого набора простых команд. При выполнении сложных команд RISC – процессоры работают медленнее, чем CISC – процессоры.
Первоначально микропроцессоры имели CISC- архитектуру, для которой характерен набор сложных команд неодинаковой длины с большим количеством методов адресации к памяти.
Появившийся позднее RISC – подход предлагал менее сложные команды одинаковой длины с отказом от некоторых сложных методов адресации. В процессорах с такой организацией обращение к ячейкам памяти производится только двумя специальными командами чтения и записи, а все остальные операции работают с регистрами. Такого рода упрощения позволяют оптимизировать выполнение команд и существенно ускорить работу процессора.
Сформулированы четыре основных принципа RISC – архитектуры:
u каждая команда независимо от её типа выполняется за один машинный цикл, длительность которого должна быть максимально короткой;
u все команды должны иметь одинаковую длину и использовать минимум адресных форматов, что резко упрощает логику управления процессором;
u обращение к памяти происходит только при выполнении операций записи и чтения, вся обработка данных осуществляется исключительно в регистровой структуре процессора;
u система команд должна обеспечивать поддержку языков высокого уровня (имеется виду подбор системы команд, наиболее эффективной для различных языков программирования).
Основоположником CISC – архитектуры можно считать фирму IBM. Стратегия CISC – архитектуры состояла в обеспечении технологической возможности перенесения «центра тяжести » обработки данных с программного уровня системы на аппаратный.
Процессоры фирмы Intel относятся к CISC- группе, однако для увеличения быстродействия фирма использует достижения RISC – архитектуры, так модели 486 и выше имеют внутреннее RISC – ядро, способное эмулировать сложную CISC- систему команд.
Основные черты архитектуры
CISC – архитектура |
RISC – архитектура |
Многобайтовые команды |
Однобайтовые команды |
Малое количество регистров |
Большое количество регистров |
Сложные команды |
Простые команды |
Одна команда или менее за один цикл процессора |
Несколько команд за один цикл процессора |
Традиционно одно исполнительное устройство |
Несколько исполнительных устройств |
Структура команд
Любая команда ЭВМ обычно состоит из двух частей – операционной и адресной. Операционная часть (её называют кодом операции – КОП) указывает, какое действие необходимо выполнить с информацией. Адресная часть (код адреса) указывает, где хранится используемая в операции информация и куда поместить результат. У некоторых команд управления работой машины адресная часть может отсутствовать, например, в команде останова, операционная часть имеется всегда.
По количеству адресов, записываемых в команде, команды делятся на безадресные, одно-, двух- и трехадресные.
Типовая структура трехадресной команды:
а1 и а2 – адреса ячеек (регистров), где расположены соответственно первое и второе числа, участвующие в операции;
а3 – адрес ячейки (регистра), куда следует поместить число, полученное в результате выполнения операции.
Типовая структура двухадресной команды:
а1 – это обычно адрес ячейки (регистра), где хранится первое из чисел, участвующее в операции, и куда после завершения операции должен быть записан результат;
а2 – обычно адрес ячейки (регистра), где хранится второе участвующее в операции число.
Типовая структура одноадресной команды:
где а1 – в зависимости от модификации команды может обозначать либо адрес ячейки (регистра), где хранится одно из чисел, участвующих в операции, либо адрес ячейки (регистра), куда следует поместить число – результат операции.
Трехадресная команда легко расшифровывалась и была удобна в использовании, но с ростом объемов ОЗУ ее длина становилась непомерно большой. Поэтому появились двухадресные машины, длина команд в которых сократилась за счет исключения адреса записи результата.
Рассмотрим пример использования одноадресной команды. Пусть надо сложить числа, хранящиеся в адресах ОЗУ a1 и a2, а сумму поместить в a3. Одноадресная машина должна выполнить три команды:
u извлечь содержимое ячейки a1 в сумматор;
u сложить содержимое сумматора с числом из a2;
u записать результат из сумматора в a3.
Содержимое – счетчик – команда
Содержимое – счетчик – команда
Cтраница 3
Во время выполнения 3-байтной команды содержимое счетчика команд инкрементируется трижды. [31]
Когда эта команда выполняется, содержимое счетчика команд заменяется тем адресом, который содержится в команде передачи управления. На рис. Рис – 8 – 7 – 8.7 условно изображена программа, содержащая две такие команды. Выполнение или невыполнение команды передачи управления иногда ставится в зависимость от значения одного из признаков. Например, команда передачи управления может выполняться, если результат предыдущей операции равен нулю; если результат не равен нулю, то выполняется следующая по порядку команда программы. [32]
При извлечении очередной команды из памяти содержимое счетчика команд через регистр адреса устанавливается на шине адресов. [34]
Во время цикла выборки этой команды содержимое счетчика команд загружается в регистр адреса памяти. Переданный по адресной шине адрес 0005 декодируется дешифратором. После поступления импульса Чтение памяти содержимое области памяти 0005 ( команда ЗАПИСЬ В ПАМЯТЬ) выводится на шину данных и пересылается в регистр команд. [35]
При выполнении команды ПЕРЕХОД, ЕСЛИ НУЛЬ содержимое счетчика команд изменяется в ситуации, когда значение указанного разряда регистра состояния имеет значение 1, т.е. когда равно О содержимое всех разрядов аккумулятора. [36]
В фазе выполнения команды осуществляется положительное приращение содержимого счетчика команд, после чего он указывает на область OOOF. В регистр адреса памяти загружаются второй и третий байты команды. Содержимое аккумулятора пересылается в буферный регистр. Наконец, содержимое области памяти 0016, бит переноса и содержимое буферного регистра складываются, и полученная сумма загружается в аккумулятор. [37]
Наконец, последний элемент вектора состояния – это содержимое счетчика команд, определяющее адрес очередной команды, подлежащей выполнению. Состояние программы, таким образом, представляется набором из AC, MQ, IX, BR и 1C, полностью фиксирующим точку, до которой дошло выполнение программы. Заметим, что вектор состояния не содержит информации о том, какими устройствами и наборами данных может пользоваться программа и каково состояние этих устройств и наборов. Это значит, что предполагается существование расширенного программно поддерживаемого вектора состояния, хранящегося в определенном месте памяти. Более подробно расширенный вектор состояния рассматривается в следующих главах. [38]
Как только центральный процессор решил принять прерывание, содержимое счетчика команд ( PC) и слова состояния процессора ( PSW) помещается в текущий стек, а процессор переключается в режим работы ядра. Номер устройства может использоваться как индекс части памяти, служащий для поиска адреса обработчика прерываний данного устройства. Эта часть памяти называется вектором прерываний. Когда обработчик прерываний ( это часть драйвера устройства, пославшего прерывание) начинает свою работу, он удаляет расположенные в стеке счетчик команд и слово состояния процессора, сохраняет их и запрашивает устройство, чтобы получить информацию о его состоянии. После того как обработка прерывания целиком завершена, управление возвращается к работавшей до этого программе пользователя, к той команде, выполнение которой еще не было закончено. [39]
Система обработки прерываний – автоматическая, с запоминанием содержимого счетчика команд и слова состояния процессора в аппаратном стеке. [40]
РК очередной команды программы, а заканчивается изменением содержимого счетчика команд ( то есть установкой на нем адреса следующей команды) и очисткой АУ регистра команд, регистра микроопераций и обоих рзгистров ОЗУ. [41]
После извлечения очередной команды из памяти микропроцессор автоматически дает приращение содержимому счетчика команд. Это приращение счетчик команд получает как раз в тот момент, когда микропроцессор начинает выполнять команду, только что извлеченную из памяти. Следовательно, начиная с этого момента, счетчик команд указывает, какая будет следующая команда. [42]
Если адресация команд, подлежащих выполнению, производится только по содержимому счетчика команд, то адресация данных, используемых в ходе выполнения команд, осуществляется по-разному. [43]
Если использовать косвенный режим с автоувеличением, то по определению режима содержимое счетчика команд является не адресом операнда, а адресом адреса операнда. Таким образом, получаем возможность задать непосредственно в команде абсолютный адрес операнда. [44]
При этом, как и при любом обращении к подпрограмме, содержимое счетчика команд и слово состояния процессора PSW записываются в стек. Программа обслуживания должна заканчиваться командой RETR Восстановление состояния и возврат к прерванной программе. [45]
Страницы: 1 2 3 4
Новостная лента
На сайте представлены примеры программирования, которые будут полезны как для опытного разработчика схем на микроконтроллерах, так и для новичка. Особо рассматривается программирование микроконтроллеров для начинающих пользователей. Программные примеры программирования разбиты на различные разделы. Основную массу составляют примеры программирования микроконтроллеров avr и микроконтроллеров microchip. Пользователю предлагается познакомиться с различными примерами программирования и различными средами программирования: MicroLab, AVRStudio, MikroC, FloweCode. Представлены схемы на микроконтроллерах ведущих производителей: PIC и AVR. Рассматривается огромное количество схем для начинающих разработчиков. Если Вы начинающий радиолюбитель, то для Вас мы приготовили раздел микроконтроллеры для начинающих. Современные микроконтроллеры относятся к классу микропроцессорных устройств. В основе принципа действия таких элементов лежит исполнение последовательного потока команд, называемого программой. Микроконтроллер получает программные команды в виде отдельных машинных кодов. Известно, что для создания и отладки программ, машинные коды подходят плохо, так как трудно воспринимаются человеком. Этот факт привел к появлению различных языков программирования и огромного количества различных компиляторов. В основе языков программирования микроконтроллеров лежат классические языки для компьютеров. Единственным отличием становится ориентированность на работу со встроенными периферийными устройствами. Архитектура микроконтроллеров требует, например, наличия битово-ориентированных команд. Последние выполняют работу с отдельными линиями портов ввода/вывода или флагами регистров. Подобные команды отсутствуют в большинстве крупных архитектур. Например, ядро ARM, активно применяемое в микроконтроллерах, не содержит битовых команд, вследствие чего разработчикам пришлось создавать специальные методы битового доступа.
Примеры программирования микроконтроллеров будут представлены на хорошо всем известном языке Си. А перед тем как постигать азы программирования микроконтроллеров и схемотехнику устройств на микроконтроллерах, авторам предлагается ещё раз вспомнить основы микропроцессорной техники, основы электроники, полупроводниковую электронику, аналоговую и цифровую схемотехнику, а так же азы аналогового и цифрового представления сигнала. Для тех, кому хочется получить новые знания в области современного программирования, можно будет познакомиться с графическим языком программирования LabView. Выбор языка программирования зависит от множества факторов. В первую очередь, типо решаемых задач и необходимым качеством кода. Если Вы ведёте разработку малых по объёму и несложных программ, то можно использовать практически любой язык. Для компактного кода подойдет Ассемблер, а если ставятся серьезные задачи, то альтернативы С/С++ практически нет. Также необходимо учитывать доступность компилятора. В итоге самым универсальным решением можно назвать связку Ассемблера и C/C++. Для простого освоения языков, можно воспользоваться примерами программ для микроконтроллера. Использование примеров программирования упростит и ускорит процесс освоения программирования микроконтроллеров. Схемы на микроконтроллерах позволят начинающим разработчикам освоить тонкости проектирования, моделирования и программирования микроконтроллеров. |
Страница не найдена – kpet-ks.ru
И так дорогие друзья, настало время поразмышлять над информацией, точнее над её свойствами. Любую деятельность человека сложно представить без сбора, обработки и хранения информации, принятие решений на её основании. В последнее время мы говорим об информации как о ресурсе научно-технического прогресса. Информация содержится в человеческой речи, в сообщениях средств массовой […]
Дорогие друзья, настало время подведения итогов. Во время игры наблюдались разные участники с первого и второго курса. Кто-то сдался ещё на первых загадках, отгадав одну из двух., сдались потеряв всякую надежду. Были и те, кто наблюдал со стороны: читали загадки, следили за новостями. Но у меня ещё с первых дней […]
Существо, повлиявшее на ход работы программы, вклеенное 9 сентября 1945 года в технический дневник Гарвардского университета с определённой надписью, но будучи вклеенной в тот журнал, существо по сей день является программистам. Комплекс технических, аппаратных и программных средств, выполняющий различного рода информационные процессы.
Загадки те же, интерпретация другая Злоумышленник, добывающий конфиденциальную информацию в обход систем защиты Правильный термин звучал бы как взломщик, крэкер (англ. cracker). Принудительная высылка лица или целой категории лиц в другое государство или другую местность, обычно — под конвоем. Термины относятся к области информатики.
Загадки При интернет сёрфинге мы передвигаемся по «звеньям одной цепи», то есть по … Можно подумать, что эти специалисты в компьютерном мире самые трудолюбивые «садовники», использующие в качестве инструмента мотыгу, тяпку, кайло. Напоминаю, что термины из области информатики, но “ноги растут” из английских слов. Удачи!
Загадки: Компьютерное изобретение, благодаря которому мы узнали имя одного из первых основателей корпорации Intel. Инженерное сооружение, отличающееся значительным преобладанием высоты над стороной или диаметром основания. Все термины из области информатики и ИКТ. Будьте внимательны!
Очередная порция загадок: Наука о проектировании зданий, сооружений или набор типов данных и описания ПК. Устройство вывода, которое в переводе с английского языка синонимично «exhibition». Удачи.
Друзья мои, перед вами первая порция загадок: отсчёт пошёл. Загадки: Устройство ввода, которое определило жизнь маленькой девочки по им. Дюймовочка. Место, расположенное вблизи берега моря или реки, устроенное для стоянки кораблей и судов, по совместительству разъём у ПК, ноутбуков и телефонов. Ответы присылаем на почту ведущего: [email protected]. Убедительная просьба, подписывайтесь […]
Дорогие друзья!!! В течении недели с 23.04.18г. по 28.04.18г., будет проведена онлайн викторина «Загадка о загадке». Где каждый день будет публиковаться порция загадок (всего загадок 10). Каждая загадка оценивается в 5 баллов. Если с первой попытки загадка не отгадана будут даны подсказки, но ответ по подсказке будет оценён в 4 […]
“Проект при поддержке компании RU-CENTER” Подробнее ознакомиться с правилами участия в программе “RU-CENTER – Будущему” Вы также сможете на сайте Миссия программы — содействовать развитию общеобразовательных учреждений и повышению качества образования в нашей стране. Цели программы — предоставить технические возможности для создания, поддержки и развития сайтов образовательных учреждений; обеспечить условия […]
TASM
Регистры процессора
Строго говоря, приведенное ниже описание относится только к процессорам 8086 и 80286, для которых были характерны 16-разрядные регистры. В современных процессорах типа Pentium почти все регистры 32-разрядные, что существенно увеличивает возможности компьютера. Однако младшие половины регистров этих процессоров совпадают и по названиям и по назначению с 16-разрядными регистрами процессора 8086. Поэтому программы, написанные для выполнения под управлением MS-DOS, т. е. для 16-разрядного процессора, прекрасно работают и с 32-разрядным, хотя и не используют все его возможности. Поначалу будет рассмотрена 16-разрядная архитектура процессора 8086 или, точнее, та часть современных процессоров, которая предназначена для использования в программах для системы MS-DOS. Этот гипотетический процессор будет называться МП 86.
МП 86 содержит двенадцать 16-разрядных программно-адресуемых регистров, которые принято объединять в три группы: регистры данных, регистры-указатели и сегментные регистры. Кроме того, в состав процессора входят счетчик команд и регистр флагов. Регистры данных и регистры-указатели часто называют регистрами общего назначения.
В группу регистров данных включаются регистры АХ, ВХ, СХ и DX. Программист может использовать их по своему усмотрению для временного хранения любых объектов (данных или адресов) и выполнения над ними требуемых операций. При этом регистры допускают независимое обращение к старшим (АН, ВН, СН и DH) и младшим (AL, BL, CL и DL) половинам. Так, команда
mov BL,AH
пересылает старший байт регистра АХ в младший байт регистра ВХ, не затрагивая при этом вторых байтов этих регистров. Еще раз отметим, что сначала указывается операнд-приемник, а после запятой – операнд-источник, т. е. команда выполняется как бы справа налево. В качестве средства временного хранения данных все регистры общего назначения (да и все остальные, кроме сегментных и указателя стека) вполне эквивалентны, однако многие команды требуют для своего выполнения использования вполне определенных регистров. Например, команда умножения mul требует, чтобы один из сомножителей был в регистре АХ (или AL), а команда организации цикла loop выполняет циклический переход СХ раз.
Индексные регистры SI и DI так же, как и регистры данных, могут использоваться произвольным образом. Однако их основное назначение – хранить индексы (смещения) относительно некоторой базы (т. е. начала массива) при выборке операндов из памяти. Адрес базы при этом обычно находится в одном из базовых регистров (ВХ или ВР). Примеры такого рода будут приведены ниже.
Регистр ВР служит указателем базы при работе с данными в стековых структурах, о чем будет речь впереди, но может использоваться и произвольным образом в большинстве арифметических и логических операций или просто для временного хранения каких-либо данных.
Последний из регистров-указателей, указатель стека SP, стоит особняком от других в том отношении, что используется исключительно как указатель вершины стека и будет подробно описан позже.
Регистры SI, DI, ВР и SP, в отличие от регистров данных, не допускают побайтовую адресацию.
Четыре сегментных регистра CS, DS, ES и SS хранят начальные адреса сегментов программы и, тем самым, обеспечивают возможность обращения к этим сегментам.
Регистр CS обеспечивает адресацию к сегменту, в котором находятся программные коды, регистры DS и ES – к сегментам с данными (таким образом, в любой точке программа может иметь доступ к двум сегментам данных, основному и дополнительному), а регистр SS – к сегменту стека. Сегментные регистры, естественно, не могут выступать в качестве регистров общего назначения.
Указатель команд IP (Instruction Pointer) “следит” за ходом выполнения программы, указывая в каждый момент относительный адрес команды, следующей за исполняемой. Регистр IP программно недоступен ; наращивание адреса в нем выполняет микропроцессор, учитывая при этом длину текущей команды.
Регистр флагов, эквивалентный регистру состояния процессора других вычислительных систем, содержит информацию о текущем состоянии процессора. Он включает 6 флагов состояния и 3 бита управления состоянием процессора, которые, впрочем, тоже обычно называются флагами.
Флаг переноса CF (Carry Flag) индицирует перенос или заем при выполнении арифметических операций, а также (что для прикладного программиста гораздо важнее!) служит индикатором ошибки при обращении к системным функциям.
Флаг паритета PF (Parity Flag) устанавливается в 1, если младшие 8 бит результата операции содержат четное число двоичных единиц.
Флаг вспомогательного переноса AF (Auxiliary Flag) используется в операциях над упакованными двоично-десятичными числами. Он индицирует перенос в старшую тетраду (четверку битов) или заем из старшей тетрады.
Флаг нуля ZF (Zero Flag) устанавливается в 1, если результат операции равен нулю.
Флаг знака SF (Sign Flag) показывает знак результата операции, устанавливаясь в 1 при отрицательном результате.
Флаг переполнения OF (Overflow Flag) фиксирует переполнение, т. е. выход результата операции за пределы допустимого для данного процессора диапазона значений.
Флаги состояния автоматически устанавливаются процессором после выполнения каждой команды. Так, если в регистре АХ содержится число 1, то после выполнения команды декремента (уменьшения на единицу)
dec AX
содержимое АХ станет равно нулю и процессор сразу отметит этот факт, установив в регистре флагов бит ZF (флаг нуля).
Если попытаться сложить два больших числа, например 58 000 и 61 000, то установится флаг переноса CF, так как число 119 000, получающееся в результате сложения, должно занять больше двоичных разрядов, чем помещается в регистрах или ячейках памяти, и возникает “перенос” старшего бита этого числа в бит CF регистра флагов.
Индицирующие флаги процессора дают возможность проанализировать, если это нужно, результат последней операции и осуществить “разветвление” программы: например, в случае нулевого результата перейти на выполнение одного фрагмента программы, а в случае ненулевого – на выполнение другого. Такие разветвления осуществляются с помощью команд условных переходов, которые в процессе своего выполнения анализируют состояние регистра флагов. Так, команда
jz zero
осуществляет переход на метку zero, если результат выполнения предыдущей команды окажется равен нулю (т. е. флаг ZF установлен), а команда
jnc okey
выполнит переход на метку okey, если предыдущая команда сбросила флаг переноса CF (или оставила его в сброшенном состоянии).
Управляющий флаг трассировки TF (Trace Flag) используется в отладчиках для осуществления пошагового выполнения программы. Если TF=l, то после выполнения каждой команды процессор реализует процедуру прерывания 1 (через вектор прерывания с номером 1).
Управляющий флаг разрешения прерываний IF (Interrupt Flag) разрешает (если равен единице) или запрещает (если равен нулю) процессору реагировать на прерывания от внешних устройств.
Управляющий флаг направления DF (Direction Flag) используется особой группой команд, предназначенных для обработки строк. Если DF=0, строка обрабатывается в прямом направлении, от меньших адресов к большим; если DF=1, обработка строки идет в обратном направлении.
Таким образом, в отличие от битов состояния, управляющие флаги устанавливает или сбрасывает программист, если он хочет изменить настройку системы (например, запретить на какое-то время аппаратные прерывания или изменить направление обработки строк).
6. Цикл выполнения команд ЭВМ
1. Фон-неймановские принципы
1. Фон-неймановские принципы Наличие каких компонентов компьютера следует из формулы ? Оперативная память Процессор Анализ структуры двоичного кода содержимого ячейки
ПодробнееЛекция 5. Центральный микропроцессор
Лекция 5 Центральный микропроцессор Архитектура ПЛК 2 Под архитектурой микроконтроллера понимают комплекс его аппаратных и программных средств, предоставляемых пользователю. Основные модули ПЛК: центральный
ПодробнееПроектирование микропроцессора на ПЛИС
Проектирование микропроцессора на ПЛИС Оглавление Введение… 1 Система команд… 1 Классификация команд… 2 Структура команды… 2 Структура процессора… 3 Функционирование процессора… 7 Типы управления…
Подробнее1. Фон-неймановские принципы
. Фон-неймановские принципы Наличие каких компонентов компьютера следует из формулы ? Оперативная память Процессор Анализ структуры двоичного кода содержимого ячейки
ПодробнееОсновные функции микропроцессора :
Архитектура МП Основные понятия Микропроцессор – это программно-управляемое устройство, предназначенное для обработки цифровой информации и управления процессами этой обработки, выполненной в виде одной
ПодробнееОрганизация компьютера (Hardware)
Организация компьютера (Hardware) Лекция 3 Информатика Гаврилов А.В. НГТУ, кафедра АППМ 1 Содержание Основы компьютерной архитектуры Компьютер фон Неймана Аппарат прерываний Внешние устройства Виртуальная
ПодробнееВведение в информатику
Введение в информатику Е.А.Яревский физический факультет СПбГУ 2016 Лекция 5 Архитектура и устройство компьютера История развития ЭВМ 1) 1642-1945 Механические компьютеры 2) 1945-1955 Электронные лампы
ПодробнееВведение в информатику
Введение в информатику Е. А. Яревский физический факультет СПбГУ 2018 ЛЕКЦИЯ 7 Архитектура и устройство компьютера Расширения архитектуры фон-неймана Принципы фон Неймана Принцип двоичного кодирования
Подробнее1. Принципы организации ЭВМ
1. Принципы организации ЭВМ В основе организации большинства современных ЭВМ лежат принципы Дж. фон Неймана: 1. Двоичное кодирование информации, разделение ее на слова фиксированной разрядности. 2. Размещение
ПодробнееВариант 1. = 1 у. Вариант 2
Вариант. Перевести десятичное число 30 в двоичный и шестнадцатеричный коды с проверкой. реализующей сложную функцию У.Разработать электрическую принципиальную = у 3. Асинхронный R-S триггер, принцип работы
ПодробнееРис Схема включения процессора.
2.Организация обмена информацией: Функции устройств магистрали 2.4. Функции устройств магистрали Рассмотрим теперь, как взаимодействуют на магистрали основные устройства микропроцессорной системы: процессор,
ПодробнееМИКРОТРЕНАЖЕР МТ1804
МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ (ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ) А.В.Бруханский МИКРОТРЕНАЖЕР МТ1804 Учебное пособие к лабораторной работе МОСКВА 2002 Цель работы ознакомление с архитектурой микропрограммируемых
ПодробнееПринципы построения процессора
1. ВВЕДЕНИЕ Базовая структура микропроцессорной системы Обобщенная структурная схема микропроцессорного устройства (МПУ) изображена на рис. 1.1. В общем случае, работа МПУ сводится к следующей последовательности
ПодробнееДжон фон Нейман ( )
Джон фон Нейман (1903-1957) Архитектура Джона фон Неймана Кодирование двоичным кодом. Переход на двоичную логику позволил использовать хорошо разработанный к тому моменту аппарат алгебры логики для анализа
ПодробнееРаспределение памяти
Распределение памяти Распределение памяти – это процесс, в результате которого отдельным элементам исходной программы ставятся в соответствие адрес, размер и атрибуты области памяти, необходимой для размещения
ПодробнееИ.В. Музылёва, 2015 Страница 1
Тема 12 Составление линейных программ и их оформление Теория Линейными называются программы, состоящие из команд, выполняемых одна за другой, без переходов и подпрограмм. Примечания: 1) В учебном стенде
ПодробнееОСНОВЫ ОРГАНИЗАЦИИ ЭВМ И МИКРОПРОЦЕССОРОВ
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ФАКУЛЬТЕТ ТЕХНИЧЕСКОЙ КИБЕРНЕТИКИ Е. Г. Павловский, В. А. Жвариков, А.А. Кузьмин ОСНОВЫ ОРГАНИЗАЦИИ ЭВМ И МИКРОПРОЦЕССОРОВ Методические указания
ПодробнееЛекция 4 Архитектура ПК
Лекция 4 Архитектура ПК Лектор Ст. преподаватель Купо А.Н. Лекция 4 Архитектура ПК 1. Архитектура ПК. Принципы фон Неймана 2. Типы и характеристики компьютеров. 1. Архитектура ПК. Принципы фон Неймана
ПодробнееКМ1801ВМ3А, КМ1801ВМ3Б, КМ1801ВМ3В
КМ1801ВМ3А, КМ1801ВМ3Б, КМ1801ВМ3В Микросхема КМ1801ВМ3 16-разрядный однокристальный микропроцессор, включающий операционный блок, блок микропрограммного управления, блок прерываний, диспетчер памяти и
ПодробнееРис Структура модуля памяти.
2.4.2. Функции памяти Память микропроцессорной системы выполняет функцию временного или постоянного хранения данных и команд. Объем памяти определяет допустимую сложность выполняемых системой алгоритмов,
ПодробнееОрганизация ЭВМ, комплексов и систем
Министерство общего и профессионального образования Российской Федерации СЕВЕРО-ЗАПАДНЫЙ ЗАОЧНЫЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ Кафедра процессов управления и информационных систем Организация ЭВМ, комплексов
ПодробнееИтоговый экзамен. Оценка % [0, 40) [40, 60) [60, 80) [80, 100]
Итоговый экзамен 1 июня, начало 8-45, длительность 2 часа 30 минут с 8-45 рассадка и раздача вариантов, ауд.: П-5, П-6, П-13 10 задач: 5 задач Си/Асм, 2 задачи компоновка, 3 задачи архитектура ЭВМ Каждая
ПодробнееМодуль 2. Архитектура компьютера
Модуль 2. Архитектура компьютера 1. Совокупность устройств, предназначенных для автоматической или автоматизированной обработки информации это: 1) информационная система 2) информационные технологии 3)
ПодробнееГлава 2 Архитектура системы команд
Глава 2 Архитектура системы команд Системой команд вычислительной машины называют полный перечень команд, которые способна выполнять данная ВМ. В свою очередь, под архитектурой системы команд (АСК) принято
ПодробнееСИСТЕМНОЕ ПРОГРАММИРОВАНИЕ
УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ МИНСКИЙ ИНСТИТУТ УПРАВЛЕНИЯ УТВЕРЖДЕНА Советом МИУ 2008 г. протокол СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ Учебная программа для специальности 1 31 03 04 Информатика специализации 1-31 03 04
Подробнее Архитектура компьютера– Где хранится счетчик программ (ПК)?
Внутри современного высокопроизводительного ЦП «счетчик программ», вероятно, не хранится в одном месте. Для суперскалярного выполнения вне очереди требуется одновременное выполнение нескольких инструкций, причем некоторые из них выполняются спекулятивно.
Чтобы понять, что происходит, нужно учитывать, для чего используется программный счетчик. Я собираюсь использовать микроархитектуру Intel Core 2 в качестве примера, главным образом потому, что это единственная приличная, но не загроможденная диаграмма, которую я смог найти.Большинство современных высокопроизводительных процессоров во многом схожи в том, что у них есть конвейер, подобный Tomasulo, с переименованием регистров. RISC (например, MIPS или ARM) может иметь меньше этапов декодирования. Кроме того, не все процессоры реализуют файл регистра вывода на пенсию; есть и другие методы, выполняющие ту же работу.
Тем не менее, давайте пока остановимся на этом.
Инструкции (в общих чертах) передаются сверху вниз диаграммы. Они начинаются в кэше (и, конечно, могут быть загружены в кеш), проходят декодирование и сохраняются в разных буферах, пока не окажутся на станции резервирования.Здесь он ждет, пока не будет готов к выполнению.
Когда все, что нужно инструкции, становится доступным, оно поступает в исполнительный блок. На диаграмме желтые части – это «нормальные» исполнительные единицы (целые числа, числа с плавающей запятой). Существуют также исполнительные блоки для операций с памятью, но мы проигнорируем их в целях этого обсуждения.
Когда инструкция завершает выполнение, результаты отправляются на шину результатов (называемую «общей шиной данных» в оригинальной статье Томасуло).Эти результаты могут вызывать инструкции, которые зависят от этих результатов, и цикл продолжается.
А теперь подумайте, для чего используется программный счетчик.
Прежде всего, давайте подумаем о выборке инструкций. Ему необходимо знать, какой адрес отправить в кеш инструкций для поиска. В большинстве случаев это следующий адрес. Однако учтите, что ширина строки кэша не является отдельной инструкцией; в этом примере это 128 бит. Таким образом, модуль выборки инструкций фактически увеличивает свой «счетчик программ» на 16 байтов, независимо от размера каждой инструкции.
Инструкции перехода усложняют выборку команд. Безусловные переходы становятся простыми, как только вы их распознаете, поэтому модуль выборки инструкций получает некоторый ввод из предварительно декодированных инструкций.
Условные переходы аналогичны, за исключением того, что блоку выборки инструкций необходимо решить, следует ли угадывать, что переход был выполнен или нет, чтобы инструкции продолжались.
Итак, IFU имеет представление о том, что такое «программный счетчик», но он является детализированным, работая со строкой кэша за раз.
А теперь подумаем о исполнении. ЦП хотел бы выполнять инструкции не по порядку, если это возможно, однако могут произойти вещи, которые усложняют это. Наиболее очевидная проблема заключается в том, что IFU неверно предсказал условную ветвь. Однако инструкции также могут вызывать исключения, а ЦП может также потребоваться ответить на внешнее прерывание.
Для достижения этого ЦП должен иметь возможность воссоздавать состояние ЦП, как если бы он выполнял инструкции последовательно в то время, когда поток управления был прерван.Это работа буфера переупорядочения.
Буфер переупорядочения концептуально представляет собой очередь инструкций, упорядоченных по «логическому порядку» (то есть порядку, в котором они были бы выполнены, если бы это был скалярный процессор упорядочения). Инструкция попадает в очередь по мере продвижения по пути выборки и декодирования. Попав в ROB, он может работать вне очереди.
Когда инструкция завершается, ее запись в ROB обновляется, отмечая, что теперь она завершена. Инструкция может покинуть очередь (она «удалена»), если она завершилась, и каждая инструкция перед ней в логическом порядке завершена или удалена.
«Результатом» многих инструкций является запись значения в регистр. Если это значение используется последующей инструкцией, ожидающей выполнения (то есть на станции резервирования), то это обрабатывается внутренней шиной результатов. В любом случае результат также сохраняется в записи инструкции в ROB. Эта стрелка не показана на схеме, но бывает.
Когда инструкция удаляется, любая запись в регистр, которую она выполняет, сохраняется в файле регистра отмены.Поскольку инструкции удаляются по порядку, этот регистровый файл фактически хранит состояние машинных регистров точно так же, как если бы инструкции выполнялись по порядку. Вот почему его также называют «видимым состоянием программы». Это представление регистров, которые программа «видит», что сохраняется и восстанавливается при переключении контекста и так далее.
Итак, второе место, где хранится “программный счетчик”, находится здесь, в блоке вывода команд. Это счетчик программы, как его видит программа, без каких-либо предположений, но он отделен от инструкций, которые выбираются и выполняются.
Кроме того, ROB также определяет способ обработки ошибок и исключений. Если происходит сбой, то ROB для сбойной инструкции обновляется информацией о сбое, и каждая следующая после нее инструкция в ROB удаляется вместе с очисткой частей конвейера, выполняющих выборку и декодирование. Это гарантирует, что инструкции после сбоя не «произойдут», даже если они уже были выполнены: результаты этих инструкций никогда не переходят в видимое для программы состояние. Аналогичным образом обрабатывается спекулятивное исполнение.
Третье место, где может храниться программный счетчик, находится в самом ROB. Может быть удобно хранить программный счетчик каждой инструкции вместе с инструкцией. Обратите внимание, что может не потребоваться хранить весь счетчик программы; может быть достаточно хранить достаточно информации, чтобы при необходимости воссоздать счетчик программы.
Последнее место, где может храниться программный счетчик, – это регистр общего назначения. Что именно это означает, немного сложно объяснить, если вы не знаете, как работает переименование регистров, но для некоторых инструкций может потребоваться значение программного счетчика (например,грамм. он может использоваться для адресации памяти в позиционно-независимом коде), и в этом случае временные копии могут храниться в записях станций резервирования инструкций, которые их используют.
Итак, я надеюсь, вы видите, что настоящий ответ – «это сложно». Программный счетчик отличается от других регистров в современном ЦП, и нет единого места, где он действительно «хранится», потому что в любой данный момент времени «выполняется» более одной инструкции.
Архитектура компьютера– откуда ЦП получает свои первые инструкции?
1.(Резюме ответа в комментариях Юкки)
Код запуска хранится в ПЗУ (энергонезависимой памяти) по фиксированному адресу X.
Когда вы активируете сигнал «сброса» в ЦП, ЦП инициализирует свои регистры определенными жестко запрограммированными значениями. Указатель инструкции – это один из этих регистров, которые инициализируются определенными жестко запрограммированными значениями. По сути, производитель ЦП выбирает этот жестко запрограммированный адрес X. Следовательно, когда вы перезагружаете процессор, указатель инструкций сбрасывается на тот же фиксированный адрес X.ЦП начинает выполнять инструкции как обычно: берет следующую инструкцию с адреса X, декодирует ее, выполняет и т. Д.
Затем тот, кто собирает полный компьютер, должен убедиться, что по адресу X есть что-то полезное (например, микросхема памяти ROM со значимым кодом запуска).
2. Доработка
ЦП имеет очень простой способ работы, известный как цикл FETCH-EXECUTE:
(a) FETCH : он переходит в память и выводит инструкцию, которая
находится по адресу [ПК].(ПК – это имя внутреннего регистра ЦП; это
содержит адрес инструкции, которую нам нужно выполнить следующей ..).
(b) Execute : ПК выполняет только что полученную инструкцию.
извлекается из памяти
(c) ПК $ \ получает $ ПК + 1. (*)
(d) Вернитесь к (a).
Этот цикл выборки-выполнения происходит постоянно, независимо от того, какую программу вы выполняете. В частности, когда ЦП загружается (скажем, когда его мощность снижается с 0 до Vcc), ЦП просто начинает выполнять вышеуказанный цикл.
Начальное значение ПК зависит от конкретного процессора. Может случиться так, что ЦП просыпается с PC = 0, или может быть, что PC = 0xFFF0 (как происходит с семейством Intel X86), или с любым другим значением PC = $ PC_ {init} $. Если вы нажмете кнопку сброса или выключите и включите питание, ЦП восстановит ПК до его начального значения $ PC_ {init} $, и ЦП начнет выполнение программы, которая находится в памяти по адресу $ PC_ {init} $ , через цикл выборки-выполнения.
Теперь задача разработчика компьютера – убедиться, что BIOS находится в памяти по адресу $ PC_ {init} $.BIOS обычно находится в энергонезависимой памяти, поэтому всегда есть программа для запуска по этому адресу, даже если вы просто выключили и включили питание (это удаляет ОЗУ, но не BIOS. Сложнее удалить / изменить BIOS, хотя возможно и бывает, например, когда ваше устройство обновляет свою «прошивку»).
(*) Продвижение ПК на +1 предполагает, что каждая инструкция занимает 1 адрес пространства памяти. Это редко бывает. В реальных системах мы можем увидеть здесь PC + 4 (как в MIPS 32b) или PC + x (с $ x \ in \ {1 ,…, 7 \} $, который зависит от самой инструкции) как в семействе X86 и т. Д.
, конвейерная обработка и слот задержки Счетчики программ
, конвейерная обработка и слот задержки Рекламное объявление. EnchantedLearning.com – это сайт, поддерживаемый пользователями.
В качестве бонуса участники сайта получают доступ к версии сайта без баннерной рекламы с удобными для печати страницами.
Щелкните здесь, чтобы узнать больше.
Типичный микропроцессор имеет счетчик программ , специальный регистр, содержащий адрес инструкции, выполняемой в данный момент. Как часть выполнения инструкции, этот программный счетчик автоматически продвигается, чтобы указать на следующую инструкцию; в случае перехода, вызова подпрограммы и т. д. новое значение будет просто загружено в счетчик программы, чтобы вызвать скачок в потоке управления.
SPARC – это архитектура RISC (вычисление с сокращенным набором команд), в которой инструкции конвейерны, для большей скорости.Это означает, что выполнение последовательно выполняемых инструкций может перекрываться во времени. Детали выполнения инструкции организованы таким образом, что ЦП не должен ждать завершения одной операции перед запуском следующей.
Эта конвейерная обработка видна программисту через перекрытие цикла выборка-выполнение . Когда ЦП готов выполнить инструкцию, он должен сначала извлечь эту инструкцию (запросить память для получения инструкции по соответствующему адресу), а затем выполнить эту инструкцию (выяснить, какая операция определена этой инструкцией, и фактически выполнить это из).
В архитектуре SPARC в любой момент времени ЦП будет выполнять некоторую инструкцию, и в то же время он будет выбирать следующую инструкцию в программе. Для реализации этого ЦП содержит два регистра счетчика программ:
- Счетчик программ ,% pc, хранит адрес инструкции, которая выполняется в данный момент.
- Счетчик следующей программы ,% npc, хранит адрес инструкции, которая в данный момент выбирается и которая будет выполнена следующей.
После выполнения инструкции ЦП копирует значение% npc в% pc, так что теперь выполняется только что полученная инструкция. Кроме того, значение% npc обычно увеличивается на 4, так что оно указывает на следующую инструкцию, которую нужно выбрать (каждая инструкция SPARC имеет длину 4 байта или 1 слово).
Если выполняется инструкция передачи (та, которая вызывает скачок в потоке управления, например, вызов или возврат подпрограммы, или инструкция перехода или перехода), в регистр% npc загружается новое значение, чтобы заставить процессор переходить вне очереди при получении следующей инструкции.
Обратите внимание, что когда в потоке управления происходит скачок (вызов подпрограммы и т. Д.), Вызывающий загрузку% npc с адресом инструкции, к которой вы хотите перейти, инструкция уже находится в конвейере. Инструкция в конвейере – это инструкция, которая была получена одновременно с выполнением инструкции передачи; это инструкция, появляющаяся сразу после вызова или перехода в коде. Считается, что эта инструкция находится в слоте задержки вызова или перехода .
Естественным подходом может быть просто отбросить инструкцию в слоте задержки. В конце концов, он только что был получен, но еще не выполнен, поэтому его можно выбросить, не причинив никакого вреда. К сожалению, такой подход значительно замедлит работу компьютера, поскольку время, затрачиваемое на выборку инструкций, которые затем отбрасываются, будет потрачено впустую. Так что это не то, что делают машины SPARC.
Вместо этого инструкция в слоте задержки, который уже находится в конвейере, будет выполняться до того, как процессор действительно сможет перейти в новое место.Это простейшая схема для реализации разработчиками микросхем, поскольку общий механизм конвейерной обработки может использоваться без каких-либо исключений для команд передачи; и это самый быстрый способ упорядочить вещи, поскольку никакие инструкции не отбрасываются.
Программист на языке ассемблера SPARC должен постоянно знать о слотах задержки при кодировании любых изменений в потоке управления, поскольку порядок выполнения инструкций является обратным по сравнению с порядком, в котором инструкции появляются.
Copyright 1998-1999 Программное обеспечение для зачарованного обучения.
Зачарованный поиск обучения
Найдите на веб-сайте Enchanted Learning: |
Рекламное объявление. Рекламное объявление. Рекламное объявление.
Архитектура процессора
– Счетчик программ и регистр команд
И то, и другое вам понадобится всегда. Счетчик программ (ПК) хранит адрес следующей инструкции, которая должна быть выполнена, в то время как регистр команд (IR) хранит закодированную инструкцию. После получения команды счетчик программы увеличивается на одно «значение адреса» (до местоположения следующей команды).Затем инструкция декодируется и выполняется соответствующим образом.
Причина, по которой вам нужны оба, заключается в том, что если бы у вас был только счетчик программ и вы бы использовали его для обеих целей, вы бы получили следующую проблемную систему:
[Начало выполнения программы]
- ПК содержит 0x00000000 (скажем, это начальный адрес программы в памяти)
- Закодированная инструкция извлекается из памяти и помещается в ПК.
- Инструкция декодируется и выполняется.
- Теперь пора перейти к следующей инструкции, поэтому мы вернемся к ПК, чтобы посмотреть, каков адрес следующей инструкции. Однако у нас есть проблема, потому что предыдущий адрес ПК был удален, поэтому мы не знаем, где находится следующая инструкция.
Следовательно, нам нужен другой регистр для хранения фактических инструкций, извлеченных из памяти. Как только мы извлекаем эту память, мы увеличиваем ПК, чтобы мы знали, где получить следующую инструкцию.
П.С. ширина регистров варьируется в зависимости от размера слова архитектуры.Например, для 32-битного процессора размер слова составляет 32 бита. Следовательно, регистры ЦП будут 32-битными. Регистры инструкций не отличаются по размерам. Разница в поведении и интерпретации. Команды кодируются в различных формах, однако они по-прежнему занимают 32-битный регистр. Например, процессор Nios II от Altera содержит 3 разных типа инструкций, каждый из которых закодирован по-разному. См. Страницу 6 ftp://ftp.altera.com/up/pub/Tutorials/DE2/Computer_Organization/tut_nios2_introduction.pdf
Вы также можете узнать больше о структуре процессора Nios II по ссылке выше. Это простой IP-процессор. Конечно, у Intel есть свои спецификации / дизайн, и они могут быть разными.
Сборка– почему счетчик программы увеличивается на 1, если память организована как слово, и на 2 в случае байтов?
В вашем вопросе не говорится, о какой архитектуре вы говорите.
Говоря о проектах, которые не позволяют выровнять инструкции по байтам, поведение, которое вы описываете , отличается от CPU к CPU !
Сначала рассмотрим значение «адреса» на 8-битных процессорах.На таких процессорах адрес увеличивается на 1 при переходе от одного байта к следующему байту в памяти:
Адрес Значение
0 1-й байт в памяти
1 2-й байт в памяти
2 3-й байт в памяти
3 4-й байт в памяти
4 5-й байт в памяти
...
68000 использует такую же адресацию, как 8-битные процессоры. Однако на самом деле память организована в виде 16-битных блоков, и инструкции должны начинаться с четного адреса и иметь длину, кратную 16 битам.Поэтому программный счетчик всегда содержит четное значение. Значение увеличивается на 2 или кратно 2 во время каждой инструкции.
(Использование нечетных адресов разрешено только для побайтового доступа к памяти (чтение / запись), который фактически выполняет 16-битный доступ к памяти в фоновом режиме.)
Для TMS9900 (16-битный ЦП) адрес увеличивается на 1 для 16 бит; можно получить доступ к байтам между ними, но адреса формируются путем добавления 0x8000:
Адрес Значение
0 1-й байт в памяти
0x8000 2-й байт в памяти
1 3-й байт в памяти
0x8001 4-й байт в памяти
2 5-го байта в памяти
...
Программный счетчик может содержать здесь нечетное или четное значение, но не значение выше 0x7FFF, потому что это будет относиться к байту, который не выровнен по 16 битам. Конечно, программный счетчик увеличится на 1 , если длина инструкции составляет 16 бит.
TMS320 не позволяет адресацию нечетных байтов:
Адрес Значение
0 1-й + 2-й байт в памяти
невозможно 2-й + 3-й байт в памяти
1 3-й + 4-й байт в памяти
2 5-й + 6-й байт в памяти
...
В этой конструкции счетчик программ также будет увеличиваться на на 1 , если длина инструкции составляет 16 бит.
Дизайн LittleMIPS (или аналогичный; я не помню правильного названия) представляет собой уменьшенный процессор MIPS, предназначенный для студентов, изучающих дизайн микрочипов. Он разрешает только 32-битный доступ к памяти и только 4-выровненные адреса:
Адрес Значение
0 с 1-го по 4-й байт в памяти
1 адрес не существует
2 адрес не существует
3 адрес не существует
4 5-8 байтов в памяти
5 адрес не существует
...
В этой конструкции программный счетчик всегда будет содержать число, кратное 4. Поскольку каждая инструкция имеет длину ровно 4 байта, программный счетчик будет увеличиваться на на 4 во время выполнения инструкции.
Счетчик программ микропроцессора– Open4Tech
Счетчик программ p ( PC ) – это регистр, который является частью центрального процессора (ЦП) . Он содержит адрес памяти для следующей инструкции, которая должна быть выполнена в течение цикла команд микропроцессора.
Принцип работыКаждый цикл команд начинается с доступа к инструкции, хранящейся по адресу, на который указывает счетчик программ, и передачи ее в регистр команд. После этого счетчик программы обновляется, чтобы указать адрес следующей инструкции.
Счетчик программы увеличивается на число, равное размеру (в байтах) последней инструкции.
Рис. 1 Операция счетчика программы во время фазы выборки
Гибкость, предоставляемая языками высокого уровня для создания повторяющихся действий с использованием , в то время как структура и путь управления (принятие решений) с использованием структуры if-else , стали возможны благодаря использованию из ветвления и переходят на инструкции, где счетчик программ играет основную роль.
Инструкции ветвления
Команда ветвления выполняет сравнение и в зависимости от результата сравнения изменяет значение программного счетчика:
- , если сравнение прошло успешно (истина), программный счетчик модифицируется для перехода в ветвь
- , если сравнение неудачно (ложно), программный счетчик увеличивается до следующей инструкции после инструкции ветвления
Команды ветвления изменяют счетчик программ, добавляя смещение к его текущему значению.Таким образом, новое значение всегда относительно предыдущего.
Пример:
PC = PC + смещение
Инструкция перехода
Команда перехода помещает новый адрес в счетчик программ (в отличие от инструкции перехода, которая добавляет смещение), когда она выполняется во время цикл обучения. Когда начинается следующий цикл инструкций, новая инструкция выбирается с адреса, который был помещен инструкцией перехода в предыдущем цикле.
Навигация серии << Цикл инструкций микропроцессораИнструкции микропроцессора >>Была ли эта статья полезной?
Если у вас есть предложения или вопросы, оставьте комментарий ниже.
Поделитесь этой историей, выберите платформу!
Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются данные вашего комментария.
Регистр программного счетчика | Детали
Один регистр очень специфичен для ЦП: счетчик программ (ПК).
Вот определение программного счетчика
Программный счетчик – это регистр в процессоре компьютера, который содержит адрес (местоположение) инструкции, выполняемой в текущий момент. При получении каждой инструкции счетчик программ увеличивает свое сохраненное значение на 1. После выборки каждой инструкции счетчик программ указывает на следующую инструкцию в последовательности.
Итак, в основном, если мы внимательно прочитаем определение выше, мы поймем, что:
- Программный счетчик – это регистр.Он имеет возможность хранить информацию
- Он имеет возможность адресовать весь объем памяти, в которой может храниться программа (в некоторых случаях программная память может храниться в отдельной памяти как память данных – в противном случае это общая память и ПК может адресовать весь объем памяти). В нашей ситуации это разделяемая память с 8-битным адресом.
- Программный счетчик может быть увеличен (добавить 1 к текущему значению)
Таким образом, для программного счетчика требуется новый сигнал действия
- register_inc : этот сигнал разрешает автоматическое увеличение значения регистра
Остальные сигналы действия такие же, как и для обычного регистра:
- register_clear
- register_out
- register_in
[см. Запись в журнале регистров]
Микросхема, используемая для наших регистров общего назначения, не позволяет увеличивать текущее значение регистра.Приращение можно было бы реализовать с помощью гейтов, но это не такая уж простая задача. Надеюсь, есть ИС, которая обеспечивает именно это:
- все возможности стандартного регистра (хранение, очистка, ввод, вывод)
- специальный сигнал для увеличения значения
Однако существующая ИС имеет 4 бита только, поэтому нам нужно связать 2 микросхемы, чтобы обеспечить 8-битный регистр.
Эта микросхема представляет собой 74HCT161:
- 4-битные входы от D0 до D3 (используются для загрузки значения регистра)
- 4-битный выход от Q0 до Q3
- 1 сигнал сброса памяти (общий сброс, это асинхронный сигнал в 74161, синхронно в 74163)
- 1 сигнал включения счетчика (синхронный, что означает, что, когда он активен, счетчик будет увеличиваться при следующем тактовом сигнале
- 1 тактовый сигнал (как обычно, передний фронт тактового сигнала используется для синхронизации загрузка или приращение)
- 1 сигнал счетчика клемм (этот сигнал используется для соединения 2 IC, когда 4-битный счетчик достигает максимального значения 1111, сигнал TC устанавливается для подачи сигнала следующей микросхемы для увеличения)
- 1 параллельный входной сигнал (этот сигнал используется для загрузки значения с параллельного входа)
При объединении двух 74161 сигнал TC используется для включения счетчика следующего чипа.