что такое счетчик команд и какую роль он играет
Счётчик команд
В большинстве процессоров, после выполнения команды, если она не нарушает последовательности команд (например, команда перехода), счетчик автоматически увеличивается (постинкремент). Понятие счётчика команд сильно связано с фон Неймановской архитектурой, одним из принципов которой является выполнение команд друг за другом в определенной последовательности.
См. также
8 бит · 16 бит · 32 бит · 64 бит · 128 бит
Pipeline | Конвейер · In-Order & Out-of-Order execution · Переименование регистров · Speculative execution |
Уровни | Бит · Инструкций · Суперскалярность · Данных · Задач |
Потоки | Многопоточность · Simultaneous multithreading · Hyperthreading · Superthreading · Аппаратная виртуализация |
Классификация Флинна | SISD · SIMD · MISD · MIMD |
Полезное
Смотреть что такое «Счётчик команд» в других словарях:
Урал-1 — «Урал 1» малая ламповая ЭВМ Модель: «Урал 1» Клас … Википедия
MIPS (архитектура) — У этого термина существуют и другие значения, см. MIPS. MIPS (англ. Microprocessor without Interlocked Pipeline Stages) микропроцессор, разработанный компанией MIPS Computer Systems (в настоящее время MIPS Technologies) в соответствии… … Википедия
Регистр процессора — Эта статья включает описание термина «IP»; см. также другие значения. Регистр процессора блок ячеек памяти, образующий сверхбыструю оперативную память (СОЗУ) внутри процессора; используется самим процессором и большой частью недоступен… … Википедия
КР580ВМ80А — Центральный процессор … Википедия
ЕС ЭВМ — У этого термина существуют и другие значения, см. ЕС (значения). ЕС ЭВМ (Единая система электронных вычислительных машин, произносится «еэс эвээм») советская серия компьютеров. Аналогия серий System/360 и System/370 фирмы IBM, выпускавшихся … Википедия
PDP-11 — Для термина «PDP» см. другие значения. PDP 11/40 … Википедия
Команда перехода — Команда перехода команда процессора, которая нарушает естественный порядок исполнения команд, вынуждая выбирать и исполнять последующие команды с произвольно заданного адреса. Используется для организации условных операторов, циклов, для… … Википедия
65C02 — WDC W65C02S8p 14 65C02 микропроцессор, разработанный фирмой Western Design Center (WDC) на основе архитектуры MOS Technology 6502 и впоследствии выпускавшийся также рядом других фирм, таких как NCR, GTE, Rockwell International, SynerTek и… … Википедия
УПРАВЛЕНИЯ УСТРОЙСТВО — 1) У. у. в вычислительных: машинах устройство, обеспечивающее координацию действий всех др. устройств ЭВМ в соответствии с программой решаемой задачи. У. у. ЭВМ входит в состав центрального процессора и непосредственно связано с арифметич. и… … Большой энциклопедический политехнический словарь
Объяснить назначение и принцип работы счетчика команд и буферного регистра микропроцессора А
По конструктивному признаку МП можно разделить на однокристальные МП с фиксированной длиной (разрядностью) слова и определенной системой команд; многокристальные (секционированные) МП с наращиваемой разрядностью слова и микропрограммным управлением (они составляются из Двух СБИС и более).
Архитектура многокристального MIT с микропрограммным управленим позволяет достичь гибкости в его применении и сравнительно простими средствами организовать выполнение отдельных машинных операций, что повышает производительность ЭВМ на таких MIL
Несмотря на то, что возможности многокристальных MIT существенно выше, чем у однокристальных, многие прикладные задачи успешно решаются
На основе использования однокристального микропроцессора.
В a состав микропроцессора (рис. 1) входят арифметико-логическое устройство, устройство управления и блок внутренних регистров.
Блок внутренних регистров (БВР), расширяющий возможности АЛУ, служит внутренней памятью MU и используется для временного хранения данных и команд. Он также выполняет некоторые процедуры обработки информации.
однокристального МП. Здесь блок внутренних регистров содержит регистры общего назначения и специальные регистры: регистр-аккумулятор, буферный регистр адреса, буферный регистр данных, счетчик команд, регистры команд, стека, признаков.
Регистры общего назначения (РОН), число которых может изменяться от 4 до 64, в значительной мере определяют вычислительные возможности МП.
Обмен данными сРОН (считывание и запись информации) осуществляетсячерез мультиплексор, причем требуемый регистр вибирается спомощью селектора регистров по сигналуУУ.
Буферный регистр адреса служит для приема И хранения адресной части исполняемой команды. Иначе говоря, в нем содержится адрес слова до выдачи на адресную шину. Возможное количество адресов, т. е. непосредственно адресуемых слов памяти, определяется разрядностью этого регистра. Так, в 16- тре, изменяя значения разрядов двухбайтового слова, можно помешать любое из 2 16 = 65536 адресов ячеек (слов) памяти.
Буферный регистр данных используется для временного хранения выбранного из памяти слова перед выдачей его во внешнюю шину данных. Его разрядность определяется количеством байтов информационного слова.
Счетчик команд содержит адрес ячейки памяти, в которой помещены байты выполняемой команды. Обычно команды определенной Программы находятся в последовательно расположенных ячейках памяти: число, указывающее адрес каждой последующей ячейки, на единицу больше числа, отмечающего адрес данной ячейки, поэтому переход к следующей команде достигается увеличением числа, содержащегося в счетчике команд, на единицу.
В ходе выполнения текущей команды, т. е. при передаче команды из памяти в МП, содержимое счетчика команд увеличивается на единицу и образуется адрес очередной команды. Если после данной команды требуется использовать команду, хранимую не в соседней, а в другой, например удаленной, ячейке памяти, то по сигналу УУ в счетчик команд заносится адрес удаленной ячейки.
Счетчик команд это один из наиболее важных регистров микропроцессора. Как известно, программа-это последовательность команд, хранимых в памяти микро-ЭВМ и предназначенных для того, чтобы инструктировать машину, как решать поставленную задачу. Для коректного выполнения последней команды должны поступать в строго определенном порядке. На счетчике команд лежит ответственность следить за тем, какая команда выполняется, а какая подлежит выполнению следующей. Часто счетчик команд имеет намного больше разрядов, чем длина слова даннях микропроцессора. Так, в большинстве 8-разрядных микропроцессоров, адресующихся к памяти объемом 65К, число разрядов счетчика команд равно 16. И на это имеются достаточно веские основания. В любой из 65 536 областей памяти микро-ЭВМ общего назначения может находиться информация на том или ином шаге программы, т.е. в пределах Диапазона значений адресов от О до 65 535 программа может начаться и закончиться в любом месте. Чтобы обратиться по любому из этих адресов, счетчик команд должен располагать шеснадцатьми двоичными разрядами.
Счетчик команд соединен с внутренней шиной данных микропроцессора.
Когда микропроцессор начинает работать, по команде, начальной установки в счетчик команд загружаются данныеиз области памяти, заданной проектировщиком микропроцессора. Перед пуском программы не обходимо поместить начальный адрес для программы в область памяти, указанную проектировщиком. Когда программа начинает выполняться, первым значеним содержимого счетчика команд является этот, заранее определенный адрес.
Адрес области памяти, содержащей первую команду программы, посылается из счетчика команд в регистр адреса памяти, после чего содержимое обоих регистров становится одинаковым.
Адрес местоположения первой команды программы посылается по адресной шине к схемам управления памятью, в результате-чего считывается содержимое области с указанным адресом. Этим содержимым должна бать команда. Память пересылает эту команду в специальный регистр блока микропроцессора, называемый регистром команд.
После извлечения команды из памяти микропроцессор автоматически дает приращение содержимому счетчика команд. Это приращение счетчик команд получает как раз в тот момент, когда микропроцессор начинает выполнять команду, только что извлеченную из памяти. Начиная с этого монта, счетчик команд «указывает», какой будет следующая команда.
Счетчик ‚ команд может быть загружен иным содержимым при выполнении особой группы команд. Может возникнуть необходимость выполнить часть программы, которая «выпадает» из последовательности
команд основной, или главной, программы. Например, такую часть программы, которую следует многократно повторять в процессе выполнения всей программы. Вместо того чтобы писать эту часть программы каждый раз, корда в ней возникает необходимость, такую запись можно сделать лишь один раз и возвращаться к ее повторному выполнению, отступая от указанной последовательности. Часть программы, выполняемая путем отступления от строгой последовательности команд главной программы, называется подпрограммой. После того как в счетчик команд записан начальный адрес подпрограммы, счетчик получает приращения по мере выполнения команд этой. подпрограммы.
Так продолжается до тех пор, пока не встретится команда возврата в главную программу.
Счетчик команд
Счетчик команд PCL и PC LATH имеет разрядность 13 бит. Младший байт счетчика ( PCL ) доступен для чтения и записи и находится в регистре 02h. Старший байт счетчика команд не может быть напрямую записан или считан и берется из регистра PCLATH (PC latch high), адрес которого OAh. Содержимое PCLATH передается в старший байт счетчика команд, когда он загружается новым значением.
Рис. 5.6. Загрузка старших бит счетчика команд.
Микроконтроллеры подгруппы PIC16F8X имеют восьмиуровневый аппаратный стек шириной 13 бит (см. рис. 5.4У Область стека не принадлежит ни к программной области, ни к области данных, а указатель стека пользователю недоступен. Текущее значение счетчика команд посылается в стек, когда выполняется команда CALL или производится обработка прерывания. При выполнении процедуры возврата из подпрограммы (команды RETLW, RETFIE или RETURN ) содержимое счетчика команд восстанавливается из стека. Регистр PC LATH при операциях со стеком не изменяется.
Стек работает как циклический буфер. Следовательно, после того как стек был загружен 8 раз, девятая загрузка перепишет значение первой. Десятая загрузка перепишет вторую и т.д. Если стек был выгружен 9 раз, счетчик команд становится таким же, как после первой выгрузки.
Признаков положения стека в контроллере не предусмотрено, поэтому пользователь должен самостоятельно следить за уровнем вложения подпрограмм.
В счетчик команд (ПК), обычно называемый указатель инструкции (IP) в Intel x86 и Itanium микропроцессоры, а иногда называли регистр адреса инструкции (IAR), [1] то счетчик команд, [2] или просто часть последовательности команд, [3] это регистр процессора это указывает, где компьютер находится в его программа последовательность. [nb 1]
Обычно ПК увеличивается после получения инструкция, и держит адрес памяти из («точки to «) следующая инструкция, которая будет выполнена. [4] [nb 2]
Процессоры обычно последовательно извлекают инструкции из памяти, но передача управления инструкции изменяют последовательность, помещая новое значение в ПК. Они включают ветви (иногда называемые прыжками), подпрограмма звонки и возвращается. Передача, обусловленная истинностью некоторого утверждения, позволяет компьютеру следовать другой последовательности при разных условиях.
Ветвь обеспечивает выборку следующей инструкции из другого места в памяти. Вызов подпрограммы не только разветвляется, но и сохраняет где-то предыдущее содержимое ПК. Возврат извлекает сохраненное содержимое ПК и помещает его обратно в ПК, возобновляя последовательное выполнение с инструкцией, следующей за вызовом подпрограммы.
Содержание
Аппаратная реализация
Как и другие регистры процессора, ПК может представлять собой набор двоичных защелок, каждая из которых представляет один бит значения ПК. [8] Количество бит (ширина ПК) зависит от архитектуры процессора. Например, «32-битный» ЦП может использовать 32 бита, чтобы иметь возможность адресовать 2 32 единиц памяти. На некоторых процессорах ширина программного счетчика зависит от адресуемой памяти; например, некоторые Контроллеры AVR есть ПК, который оборачивается после 12 бит. [9]
Если ПК является двоичным счетчиком, он может увеличиваться при подаче импульса на его вход COUNT UP, или CPU может вычислить какое-то другое значение и загрузить его в ПК с помощью импульса на его вход LOAD. [10]
Чтобы идентифицировать текущую инструкцию, ПК может быть объединен с другими регистрами, которые идентифицируют сегмент или страница. Этот подход позволяет ПК иметь меньше битов, предполагая, что большинство интересующих модулей памяти находятся в непосредственной близости от него.
Последствия для машинной архитектуры
Использование ПК, который обычно имеет приращение, предполагает, что компьютер выполняет обычно линейную последовательность инструкций. Такой ПК занимает центральное место в фон Неймана архитектура. Таким образом, программисты пишут последовательный поток управления даже для алгоритмов, которые не обязательно должны быть последовательными. Результирующий «узкое место фон Неймана»Привели к исследованиям в области параллельных вычислений, [11] в том числе не фон Неймана или поток данных модели, в которых не использовался ПК; например, вместо того, чтобы указывать последовательные шаги, высокоуровневый программист может указать желаемый функция и программист низкого уровня может указать это, используя комбинаторная логика.
Это исследование также привело к способам ускорения работы обычных ЦП на базе ПК, в том числе:
Последствия в высокоуровневом программировании
Однако новые модели программирования выходят за рамки программирования с последовательным выполнением:
Символ
Поставщики используют разные символы для обозначения счетчика программ в язык ассемблера программы. Хотя использование символа «$» преобладает в Intel, Зилог, Инструменты Техаса, Toshiba, NEC, Сименс и AMD документация процессора, Motorola, Rockwell Semiconductor, Технология микрочипов и Hitachi вместо этого используйте символ «*», [9] в то время как SGS-Thomson Microelectronics использует «ПК». [9]
Счетчик команд и регистр команд
счетчик программ содержит адрес инструкции, которая должна быть выполнена следующей, в то время как регистр инструкций содержит фактическую инструкцию для выполнения. разве одного из них недостаточно?
и какова длина каждого из этих регистров?
2 ответов
требуются всегда. Счетчик программ (PC) содержит адрес следующей выполняемой инструкции, а регистр команд (IR) содержит закодированную инструкцию. При извлечении инструкции счетчик программы увеличивается на одно «значение адреса» (к местоположению следующей инструкции). Затем инструкция декодируется и выполняется соответствующим образом.
причина, по которой вам нужны оба, заключается в том, что если у вас был только счетчик программ и использовал его для обоих цели вы получите следующую хлопотную систему:
[начало выполнения программы]
поэтому нам нужен другой регистр для хранения фактической инструкции, извлеченной из памяти. Как только мы получим эту память, мы увеличим ПК, чтобы мы знали, где взять следующую инструкцию.
P. S. В ширину регистров варьируется в зависимости от размера слову архитектуры. Например, для 32-разрядного процессора, размер слова составляет 32 бита. Поэтому регистры на CPU будут 32 бит. Регистры инструкций не отличаются размерами. Разница в поведении и интерпретации. Инструкции кодируются в различных формах, однако они по-прежнему занимают 32-разрядный регистр. Например, процессор Nios II от Altera содержит 3 различных типа команд, каждый из которых закодирован по-разному. См. страницу 6ftp://ftp.altera.com/up/pub/Tutorials/DE2/Computer_Organization/tut_nios2_introduction.pdf
вы можете узнайте больше о структуре процессора Nios II по ссылке выше. Это простой IP-процессор. Конечно, у Intel есть своя спецификация / дизайн, и он будет отличаться.
Как вы утверждаете, счетчик программ (PC) содержит адрес следующей инструкции для выполнения, и инструкция Регистрация (IR) сохраняет фактическую инструкцию для выполнения (но не ее адрес).
связанные с длиной этих регистров, текущие машины имеют 64-разрядные ПК. Длина ИК (с логической точки зрения) зависит от архитектуры:
поскольку эти машины могут извлекать, декодировать и выполнять несколько инструкций каждый цикл, физическую реализацию IR нелегко описать в нескольких строках.