- •Базовая структура компьютера
- •Процессор, оперативная память, устройства ввода-вывода, внешняя память, шины.
- •Представление информации. Целые, вещественные, символьные данные.
- •Структуры машинных команд. Трех-, двух-, одноадресные системы команд процессоров.
- •Стек. Его использование и аппаратная поддержка.
- •Risc-процессоры.
- •Cisc-процессоры. Микрокомандный уровень архитектуры.
- •Пример базовой архитектуры - pdp-11
- •Структура процессора. Регистры и их назначение.
- •2.2. Архитектура с общей шиной. Адресное пространство.
- •2.3. Форматы команд.
- •2.3.1. Двух-, одно- и безадресные команды. Примеры
- •2.3.2. Организация ветвлений и циклов. Регистр состояния процессора.
- •2.4. Методы адресации.
- •2.4.1 Прямые методы адресации.
- •2.4.2. Косвенные методы адресации.
- •2.4.3. Использование счетчика команд и указателя стека в методах адресации.
- •2.4.4. Позиционно-независимые программы и методы адресации.
- •2.5. Организация ввода-вывода.
- •2.5.1. Контроллеры устройств. Регистры устройств и их адресация.
- •2.5.2. Ввод-вывод по опросу флага готовности.
- •2.5.3. Прерывания устройств и их обработка.
- •2.5.4. Система приоритетов в обработке прерываний.
- •2.5.5. Ввод-вывод с использованием механизма прерываний.
- •2.5.6. Устройства с блочной передачей данных.
- •2.5.7. Прямой доступ к памяти и его использование для ввода-вывода.
- •2.6. Синхронные прерывания (исключительные ситуации) и их обработка.
- •3. Шинная архитектура
- •3.1 Структура шин. Подшины адреса, данных, управления. Ширина шины.
- •3.2. Синхронизация шины. Синхронные и асинхронные шины.
- •3.3. Временные диаграммы операций обмена по шинам.
- •3.4 Арбитраж шины.
Стек. Его использование и аппаратная поддержка.
Во всех языках программирования есть понятие процедур с локальными переменными. Эти переменные доступны во время выполнения процедуры, но перестают быть доступными после окончания процедуры. Возникает вопрос: где должны храниться такие переменные?
Для переменных резервируется особая область памяти, которая называется стеком, но отдельные переменные не получают в нем абсолютных адресов.
Подпрограммой обычно называется часть программы, к которой можно многократно обращаться из других, причем разных, мест основной программы с последующим возвратом в место, откуда произошел вызов.
Стек – это один из способов организации памяти, несколько отличающийся от организации памяти с произвольным доступом. Память ЭВМ, организованная в виде стека, включает в себя определенное количество одинаковых запоминающих ячеек, однако доступ к этим ячейкам не может осуществляться произвольным образом, т.е. в любое время к любой ячейке. Доступ к ячейкам стека осуществляется не по адресам ячеек, а только через так называемую «вершину стека» - ячейку памяти стека, доступную в данный момент времени. При последовательной записи данных в стек загружаемые данные последовательно помещаются на вершину стека, при этом ранее записанные данные как бы проталкиваются вглубь стека. В каждый момент времени для чтения доступно только слово, находящееся на его вершине. При этом прочитать слово можно только один раз, т.к. после прочтения оно выталкивается из стека и на его место становится слово, записанное ранее. Такой способ организации памяти коротко формулируют в виде: «последним пришел – первым вышел».
В ЭВМ стек реализуется в адресном пространстве ее оперативной памяти выделением под него определенного количества последовательных ячеек. Способ доступа к этим ячейкам памяти осуществляется путем специального режима адресации с использованием регистра под названием регистр-указатель стека. При работе со стеком регистр-указатель интерпретируется процессором как адрес вершины стека. Поэтому процедура определения выделяемой под стек области памяти состоит в начальной установке регистра-указателя, т.е. записи в него адреса ячейки памяти, являющейся вершиной пустого стека.
Запись числа в стек: процессор редактирует содержимое регистра-указателя, смещая его на одну ячейку в сторону уменьшения адресов, после чего в указываемую этим регистром ячейку памяти пересылается записываемое число. Метод адресации, который используется при записи числа в стек, носит название косвенная адресация через регистр с предварительным автоуменьшением его содержимого.
Чтение числа из стека: число прочитывается из ячейки памяти, адрес которой находится в регистре-указателе, после чего содержимое этого регистра автоматически корректируется в сторону увеличения адресов. При этом прочитанное число из стека никуда не девается, просто становится недоступным. При записи в стек очередного числа оно будет записано непосредственно перед вытолкнутым. Метод адресации, который используется при чтении из стека, называется косвенной адресацией через регистр с предварительным автоувеличением.