КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Стековая память
Организация ветвлений Необходимость организации ветвлений (возможных переходов) обуславливается логикой алгоритма решаемой задачи и опирается на текущее состояние триггеров флажкового регистра. С каждым флажком связана одна или несколько машинных команд условных переходов, которые принудительно модифицируют значение РС только при определенном значении флажка. В противном случае программный счетчик продолжает стандартные приращения своего значения. Операндом любой команды перехода является или прямой многоразрядный адрес команды, к которой нужно осуществить скачок, или относительное смещение (положительное или отрицательное) на которое осуществляется скачок. Таким образом, в программный счетчик записывается адрес перехода из состава самой команды или результат алгебраического сложения с текущим его значением.
Прежде чем рассмотреть назначение еще одного специализированного регистра – шестнадцатиразрядного указателя стека (SP), необходимо уяснить принципы работы с памятью магазинного типа – стеком. Стек в классическом понимании представляет собой набор ячеек (регистров), новые данные в который помещаются всегда сверху, проталкивая все ранее записанное вниз. Считывается первой информация, поступившая последней. При этом все содержимое стека поднимается на один регистр вверх. Такой механизм работы стека напоминает принцип работы оружейного магазина (обоймы). Команды обращения к стеку не содержат адреса, так как процессору «известно», что загрузка и извлечение информации всегда происходит через его верхний регистр. Благодаря этому команды записи (PUSH) и считывания (POP) из стека короткие (однобайтовые). Иметь стек в кристалле центрального процессора хорошо с точки зрения высокой скорости обращения к нему. Однако из-за ограниченности объема кристалла организовать достаточно емкий стек в процессоре не удается. В этом случае на практике стек организуется в любой части оперативной памяти, а в процессоре остается лишь один регистр, который содержит адрес «дна» стека, если он пустой, или адрес верхней заполненной строки стека. Указатель стека доступен программисту. Специальной командой можно записать в него наибольший адрес свободного участка памяти, где пользователь организует стек своей программы. Магазинная память используется прежде всего командой перехода к подпрограмме (CALL). Действие процессора по выполнению этой команды заключается в отправке в стек адреса следующей за CALL команды, т.е. адреса возврата из подпрограммы. При этом содержимое указателя стека уменьшается. В программный счетчик записывается адрес начала программы, который содержится в адресном поле команды CALL. Таким образом, уже следующей исполняемой командой будет первая команда подпрограммы. Выполнение любой подпрограммы заканчивается командой возврата типа RETURN. Действия по выполнению этой команды достаточно просты. Из стека выталкивается верхнее слово с адресом возврата и загружается в программный счетчик (указатель стека увеличивает свое значение). Теперь следующей будет выполняться команда основной программы, следующая за командой CALL. Стек позволяет очень просто обеспечить безошибочный возврат в вызвавшую программу даже, если одна подпрограмма вызывает вторую, та обращается к третьей, третья к четвертой и т.д. Стек может быть использован для временного хранения промежуточных результатов. Преимущества стека, организованного в главной памяти, в том, что он неограничен своей длиной, и каждая программа получает свой собственный стек или даже несколько стеков.
1.2.4 Синхронизация выполнения машинной команды. Машинные циклы. Циклы команд
При выполнении команд процессор (его блок синхронизации и управления) обеспечивает выработку управляющих и синхронизирующих сигналов, не требующих расшифровки и организующих функционирование системы. Выполнение команд требует от одного до пяти машинных циклов разного назначения. Каждый машинный цикл для своего завершения требует от трех до пяти состояний (Т1, Т2,..., Т5), длящихся каждый один тактовый период (для микропроцессора КР580 - 0,5 мкс). Машинный цикл - это последовательность действий процессора по отношению к устройствам, подключенным к его шинам. Иначе, машинный цикл – это текущее состояние процессора по отношению к внешней среде. Необходимо отметить, что существуют «короткие» команды, успевающие выполнятся за 1 машинный цикл, и «длинные», требующие пять и более машинных циклов. Структура первого машинного цикла каждой команды (на примере КР580) представлена на Рисунке 1.2.2.
Рисунок 1.2.2 – Структура машинного цикла
Машинный цикл (для КР580 - М1), с которого начинается выполнение любой команды, является циклом выборки кода операции и продолжается пять тактовых периода. В течение периода Т1 содержимое программного счетчика посылается в адресную шину, управляющий сигнал, указывающий на начало машинного цикла, принимает значение «1» («истина»), а информационная шина содержит информацию о слове состояния, относящуюся к циклу, который начат. Далее в течение периода Т2 проверяется значение сигнала, сообщающего процессору о том, что нужные данные находятся на информационной шине. Если этот сигнал имеет значение «1», то процессор приступает к выполнению периода Т3, иначе («0») он переходит в состояние ожидания и находится в нем до тех пор, пока данный сигнал имеет значение «0». Таким образом, осуществляется синхронизация скорости процессора со скоростью любого устройства ввода (в том числе, памяти), имеющего любое время выборки. В течение периода Т3 данные, получаемые из памяти, загружаются в регистр команд. Далее дешифратор команд и управляющие блоки (период Т4-T5) генерируют сигналы для управления внутренней передачей и преобразованием данных, а также требования к последующим машинным циклам. В конце периода Т5 процессор возвращается в состояние Т1 и вступает в следующий цикл, если команда требовала не единственный для своего выполнения цикл. После выполнения необходимого для данной команды числа машинных циклов процессор, используя специальный цикл, проверяет состояние линии запроса прерывания.
Дата добавления: 2014-01-11; Просмотров: 1139; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |