
- •Базовые понятия компьютерных систем. Классификация компьютерных систем.
- •Основные характеристики процессора
- •Основные компоненты программного обеспечения
- •Структура по
- •Системы счисления
- •Представление двоичных чисел
- •Дробные числа.
- •Аналоговые устройства
- •Цифровые устройства
- •Роль математики и логики в создании кс.
- •Битовые строки
- •Формы представления переключательной функции
- •Минимализация функции алгебры логики (фал)
- •Понятие «Базис»
- •Триггеры
- •Асинхронные rs-триггеры с инверсными входами
- •Регистры
- •Сдвиговые регистры (сдвигающие)
- •Счётчик
- •Сумматоры
- •Шифратор MxN (Coder – cd)
- •Принципиальная схема компьютера (кс)
- •Команда
- •Локальная операция
- •Процессор
- •Двухадресный процессор
- •Двухадресный процессор 1-ого типа
- •Двухадресный процессор 2-ого типа
- •Процессоры с регистрами общего назначения (рон)
- •Система команд фиксированной длинны
- •Система команд разной длины. Битовая память.
- •Косвенные, непосредственные, относительные адреса
- •Использование команд
- •Непосредственный адрес
- •Относительный адрес
- •Формат для относительной адреса:
- •Пересылки
- •Обмен с внешней памятью
- •Команды передачи управления Циклы
- •Блок – схема разветвления
- •Переадресация
- •Цикл итерационного типа
- •Цикл смешанного типа
- •Косвенные адреса
- •Автоинкремент/декремент
- •Индексный регистр
- •Подпрограммы и ввод/вывод
- •Сохранение адреса возврата в регистре
- •Использование стеков
- •Передача параметров
- •Операции ввода/вывода
- •Программно управляемый ввод/вывод
- •Сегментная организация памяти
- •Кэш прямого отображения
- •Ассоциативный кэш
- •Организация процессора Конвейер команд
- •Задержка работы устройств
- •Конфликты по ресурсам
- •Явный конфликт по данным
- •Передача управления
- •Условный переход
- •Основные направления развития системы команд
- •Архитектура с командным словом сверх большой длины
Переадресация
Цикл должен завершиться командой проверки значения счетчика, пока не будет выполнено условие. При этом необходимо продвигать адреса в команды.
Изменение адресов: ее можно выполнить прибавлением, вычитанием заранее подобранной константы.
Р |
А+1 |
с |
В+1 |
K |
m |
m |
m |
C – беззнаковая константа
K и m - число бит в соотв.
D: D+1; ячейка где расположена команда цикла.
Алгоритм:
D(C1)→H – инициализация счетчика
D+1(A+1)^(CJ) →B+1 – вычисление в цикле
D+2(D+1)(v)( C )→D+1 – изменение адреса
D+3(H) – (C2) → H – продвижение счетчика
D+4 zf ≠1, DA→A+1 – нет D+5, условие перехода на ≠ 1
Цикл итерационного типа
Для вычисления f(x)=у с погрешностью, не превышающим ∑, используется следующий алгоритм:
Каждое следующие
приближение получается из предыдущего,
прибавлением к нему нового слагаемого,
являющегося результатом предыдущего
вычитания. Вычисление проводятся, пока
Схема:
Цикл смешанного типа
Цикл
имеет 2 выхода. Вычисления f(x)
производятся пока не выполнится одно
из условий:
и – N
- ∑≠0
Схема:
В цикле нужно контролировать число проверенных элементов и вовремя прекратить поиск. В программной части имеет место случаи, когда цикл должен быть повторен через некоторое время после изменения переменной в ячейке со счтетчиком, но команды в ячейке цикла уже изменены посредством переадресации. Тога посе выхода из цикла надо установить начальный вид команды. Для этого в алгоритм вводят блок восстановления, где имеет место D+S (Снач. → D).
Структура цикла с учетом возможной переадресации и восстановления:
Переадресация - пример обработки команд и данных. Однако лучше этого избегать, т.к в программе будет меньше ошибок и в случае появления их будет легче локализировать. Избежать переменных команд можно с помощью косвенных адресов и с помощью индексных регистров.
Косвенные адреса
В КС с РОН удобно в организации циклов использовать команды с косвенной регистровой адресацией.
D(CN) → H – установка указателя на первый элемент массива аргументов
D+1 A+1 → R1 – начальное значение счетчика
D+2 B+1 → R2 – установка указателя на первый элемент массива результатов
D+3 ((R1))x(Cx) → R1 – основные вычисления
D+4 ((R1))x(Cz) → R2 – продвижение указателя элемента
D+5 (R2)+(C1) → R2
D+6 (H1) – (C1) → H – продвижение счетчика, выработка признака результата
D+7 zF =0? Да → 0+8, нет → нет 0+3 – условие перехода
Автоинкремент/декремент
Большинство циклов короткие, а команды переадресации и восстановления занимают место и время. Нужны изменения в архитектуре, а именно использование адресации с автокрементом/декрементом.
Команда: ((R1)+)≠((R2)) → R0
Алгоритм:
((УК)) → РК
(УК) + 1 → УК
Дешифрация р
((R1)) →r1
(R1) + 1 → R1 – инкремент
(R2) – 1 → R2 – декремент
((R2)) → r2
(r1)p(r2) → r3
(r3) → R0
Переход к пункту 1
Стек
Разновидность косвенной адресации автокрементом/декрементом. Физически это часть ОП, доступ к которой организован спец. Образом (LIFO). Для стека выделяется участок памяти от ячейки А до В. Ячейка В имеет наибольший адрес - это дно стека. Ячейка А с наименьшим номером - вершина стека. За ней следует специальный стековый регистр (Rsp) . Если (Rsp)=А, то А вершина стека. Если ячейки стека заполнены и нужно извлечь данные, то можно сделать это по указанию стекового регистра. После извлечения содержимое регистра увеличивается на единицу, т.к переместится вниз. Помещая новые данные в стек, указатель переместится вверх(-1).
В системе команд процессора есть группа специальных стековых команд. Это команды записи из СП или регистров в стек и команды чтения. Одним из операндов в них служит стековый регистр, другим - регистр или ячейка памяти.
Стековая команда имеет вид:
Р |
Rsp |
R(c) |
Запись в стек из регистра:
((УК)) → РК
(УК)+1 → УК
Дешифрация р.
(Rsp) – 1 → Rsp
(R1) → (Rsp)
Переход к пункту 1
Пространство стека – обычные ячейки памяти и их можно использовать все стековых команд. Можно изменить содержание ячейки А, а для стека она все равно будет вершиной пока не занесли в стековый регистр новое значение