Главная страница
Навигация по странице:

  • 3. Система команд учебной ЭВМ

  • 5. Модель функционирования кэш-памяти

  • 6. Справочник по командам

  • 1. Архитектура ЭВМ и система команд

  • 3. Программирование разветвляющегося процесса

  • 5. Алгоритмы замещения строк в кэш-памяти

  • Методичка - модель ЭВМ. Описание архитектуры учебной эвм


    Скачать 310.38 Kb.
    НазваниеОписание архитектуры учебной эвм
    Дата20.12.2021
    Размер310.38 Kb.
    Формат файлаpdf
    Имя файлаМетодичка - модель ЭВМ.pdf
    ТипДокументы
    #310201
    Описание архитектуры учебной ЭВМ ............................................................................................... 2 1. Структура учебной ЭВМ ............................................................................................................. 2 2. Представление данных в модели ЭВМ ...................................................................................... 3 3. Система команд учебной ЭВМ ................................................................................................... 3 3.1. Форматы команд. 3 3.2. Способы адресации ............................................................................................................... 4 3.3. Система операций ................................................................................................................. 5 4. Подсистема прерываний. 5 5. Модель функционирования кэш-памяти ................................................................................... 6 6. Справочник по командам ............................................................................................................ 6 6.1. Типы адресации, их коды и обозначения. 6 6.2. Система команд ..................................................................................................................... 7 Лабораторные работы .......................................................................................................................... 9 1. Архитектура ЭВМ и система команд. 9 2. Командный цикл процессора ...................................................................................................... 9 3. Программирование разветвляющегося процесса. 9 4. Подпрограммы истек. Алгоритмы замещения строк в кэш-памяти ............................................................................ 11
    Описание архитектуры учебной ЭВМ
    1. Структура учебной ЭВМ Учебная ЭВМ включает в себя процессор, оперативную память, кэш-память, контроллер прерываний, регистры ввода-вывода, устройства ввода-вывода. Структурная схема ЭВМ представлена на рис. Магистраль данных
    2
    Рис. 1. Структура учебной ЭВМ В ячейках ОЗУ хранятся команды и данные. Ёмкость ОЗУ составляет 1000 ячеек. По сигналу
    MWr выполняется запись содержимого регистра данных MDR в ячейку памяти с адресом, указанным в регистре адреса (MAR). По сигналу MRd происходит считывание – содержимое ячейки памяти с адресом, содержащемся в MAR, передаётся в MDR. Имеется блок регистров общего назначения R0-R9. Доступ к ним осуществляется (аналогично доступу к ОЗУ) через регистры RAR и RDR. АЛУ осуществляет выполнение одной из допустимых операций, определяемой кодом операции, над содержимым аккумулятора (Acc) и регистра операнда (DR). Результат операции всегда помещается в Acc. При завершении выполнения операции АЛУ вырабатывает сигналы признаков результата
    − Z (равен 1, если результат равен 0);
    − S (равен 1, если результат отрицателен
    − OV (равен 1, если при выполнении операции произошло переполнение разрядной сетки. Магистраль адреса
    MAR
    ОЗУ
    [0:999] Процессор
    DR А АЛУ
    PC
    SP
    RA
    RB
    CR
    УУ
    RDR
    RAR
    РОН
    [0:9]
    Кэш- память Устройства вывода Контроллер прерываний Устройства ввода
    Предусмотрены внешние устройствах типов. Во-первых, это регистры IR и OR, которые могут обмениваться с аккумулятором с помощью безадресных команд IN (Acc:=IR) и OUT
    (OR:=Acc). Во-вторых, это набор моделей внешних устройств, которые могут быть подключены к системе и взаимодействовать с ней в соответствии с заложенными в модели алгоритмами. Каждое внешнее устройство имеет набор программно-доступных регистров.
    УУ осуществляет
    − выборку команд из памяти в последовательности, определяемой естественным порядком выполнения команд или командами передачи управления
    − выборку из памяти операндов, задаваемых адресами команды
    − инициирование выполнения микроопераций, предписанных командой
    − остановили переход к выполнению следующей команды. В состав УУ входят следующие регистры
    − CR — регистр команды, содержащий код команды
    − PC — счётчик адреса команды, содержащий адрес текущей команды
    − SP — указатель стека, содержащий адрес верхушки стека
    − RA — регистр адреса, содержащий исполнительный адрес при косвенной адресации
    − RB — регистр базового адреса Регистры Acc, DR, IR, OR, CR, все ячейки ОЗУ и РОН имеют длину 6 десятичных разрядов, а регистры PC, SP, RA и RB – 3 десятичных разряда.
    2. Представление данных в модели ЭВМ Данные в учебной ЭВМ представляют собой целые десятичные числа, изменяющиеся в диапазоне от -99999 до +99999. Формат хранения – 6 десятичных разрядов, из которых старший выделен для представления знака числа и может принимать только значения 0 (для положительных чисел) и 1 (для отрицательных чисел. Если результат арифметической операции выходит за пределы указанного диапазона, то говорят, что произошло переполнение разрядной сетки. АЛУ в этом случае вырабатывает сигнал переполнения OV=1. Результатом операции деления является целая часть частного. Деление на 0 вызывает переполнение.
    3. Система команд учебной ЭВМ
    3.1. Форматы команд Большинство команд учебной ЭВМ являются одноадресными или безадресными, длиной водно машинное слово 6 десятичных разрядов. Исключение составляют двухсловные команды с непосредственной адресацией и команда MOV, являющаяся двухадресной. В форматах команд выделяются 3 поля
    − два разряда [0:1] определяют код операции (COP);
    − один разряд [2] определяет тип адресации (в отдельных случаях также может иметь смысл номера регистра
    − 3 разряда [3:5] могут определять прямой или косвенный адрес памяти, номер регистра в команде MOV номерах регистров, адрес перехода или короткий непосредственный операнд. В двухсловных командах непосредственный операнд занимает поле
    [6:11]. Примем следующие обозначения
    − COP — код операции
    − ADR — адрес операнда в памяти
    − ADC — адрес перехода
    − Data — непосредственный операнд
    − R, R1, R2 — номера регистров
    − TA — тип адресации
    − X – разряд не используется. На рис. 2. представлены допустимые форматы команд учебной ЭВМ Рис. 2. Форматы команд учебной ЭВМ

    3.2. Способы адресации Различают пять основных способов адресации
    − прямая
    − косвенная
    − непосредственная
    − относительная
    − безадресная. С учётом из разновидностей, в учебной ЭВМ реализованы семь способов адресации, приве- дённые в таблице 1: Таблица 1. Способы адресации Код TA Тип адресации Исполнительный адрес

    0 Прямая (регистровая) ADR
    (R)
    1 Непосредственная —
    2 Косвенная ОЗУ (ADR) [3:5]
    3 Относительная
    ADR + RB
    4
    Косвенно-регистровая
    РОН(R)[3:5]
    0
    COP
    Data
    1 2 3 4 5
    1
    X
    X X X
    2
    COP
    TA
    ADR
    3
    COP
    TA
    X X R
    3a
    COP
    TA
    X R1 R2 4
    COP
    X
    X X X
    5
    COP
    X
    ADC
    COP
    R
    ADC
    5a
    6 11

    5 5 Индексная с постинкрементом
    РОН(R)[3:5], R:=R+1 6 Индексная с преддекрементом R:=R-1,
    РОН(R)[3:5]
    3.3. Система операций Система команд учебной ЭВМ включает в себя команды следующих классов
    − арифметико-логические и специальные сложение, вычитание, умножение, деление и др
    − пересылки и загрузки чтение, запись, пересылка (из регистра в регистр, помещение в стек, извлечение из стека, загрузка указателя стека, загрузка базового регистра
    − ввода/вывода: вводи вывод на внешние устройства ив регистры IR и OR;
    − передачи управления безусловный и шесть вариантов условного перехода, вызов подпрограммы, возврат из подпрограммы, цикл, программное прерывание, возврат из прерывания системные пустая операция, разрешение прерывания, запрет прерывания, останов.
    4. Подсистема прерываний В модели учебной ЭВМ предусмотрен механизм векторных внешних прерываний. Внешние устройства формируют запросы на прерывания, которые поступают на входы контроллера прерываний. При подключении внешнего устройства, способного формировать запрос на прерывание, ему ставится в соответствие номер входа контроллера прерывания – вектор прерывания, принимающий значение в диапазоне от 0 до 9. Контроллер передаёт вектор, соответствующий запросу, процессору, который начинает процедуру обслуживания прерывания. Механизм прерываний поддерживает таблицу векторов прерываний, которая создаётся в оперативной памяти пользователем (потенциально – операционной системой. Номер строки таблицы соответствует вектору прерывания, а элемент таблицы — ячейка памяти, в трёх младших разрядах которой размещается начальный адрес подпрограммы, обслуживающий прерывание с этим вектором. Таблица прерываний жёстко фиксирована — она занимает ячейки памяти с адресами 100-109. Таким образом, адрес обработчика с вектором 0 должен располагаться в ячейке 100, с вектором в ячейке 102 и т.д. При работе с прерываниями не рекомендуется использовать ячейки
    100-109 для других целей. Вызов обработчика прерывания, в отличие от вызова подпрограммы, связан с помещением в стек не только адреса возврата, но и текущего значения вектора флагов. Поэтому последней командой подпрограммы обработки обработчика должна быть команда IRET, которая не только возвращает в PC три младшие разряда ячейки — верхушки стека (как команда RET), но и восстанавливает те значения флагов, которые были в момент перехода на подпрограмму – обработчик прерывания. Иногда бывает удобно (например, в режиме отладки) иметь возможность вызвать обработчик прерывания непосредственно из программы. Если использовать для этих целей команду
    CALL, которая помещает в стек только адрес возврата, то команда IRET, размещённая последней в обработчике, может исказить значения флагов. Поэтому в системах команд большинства ЭВМ, в том числе ив данной учебной модели, имеются команды вызова прерываний – INT n.

    6
    5. Модель функционирования кэш-памяти
    Кэш-память содержит N ячеек (N=4, 8, 16 или 32), каждая из которых содержит трёхразрядное поле тэга (адреса ОЗУ, шестиразрядное поле данных и три однобитовых флага
    − Z — признак занятости ячейки
    − U — признак использования
    − W — признак записи в ячейку. Таким образом, мы имеем полностью ассоциативный кэш; то есть, каждая ячейка кэш-памяти может дублировать одну любую ячейку ОЗУ, причём отмечается её занятость (вначале работы модели все ячейки кэш-памяти свободны, все Z равны 0), факт записи информации в ячейку во врем пребывания её в кэш-памяти, а также использование ячейки (любое обращение к ней. Программная модель позволяет выбирать размер кэш-памяти, способ поддержания целостности и алгоритм замещения ячеек. При сквозной записи при кэш-попадании в процессорных циклах записи осуществляется запись как в ячейку кэш-памяти, таки в ячейку ОЗУ, а при обратной записи — только в ячейку кэш-памяти, причём эта ячейка помечается битом записи (W=1). При очистке ячеек, отмеченных битом записи, необходимо переписать изменённое значение поля данных в соответствующую ячейку ОЗУ. При кэш-промахе следует поместить в кэш-память адресуемую процессором ячейку. При наличии свободных ячеек кэш-памяти требуемое слово помещается в одну из них (в порядке очереди. При отсутствии свободных ячеек следует отыскать ячейку кэш-памяти, содержимое которой можно удалить, записав на его место требуемые данные (или команду. Поиск такой ячейки осуществляется с использованием алгоритма замещения строк
    − случайное замещение
    − очередь (на основе времени пребывания в кэше);
    − бит использования (случайный выбор среди ячеек, для которых U=0). Бит использования устанавливается в 1 при любом обращении к ячейке. Как только все биты
    U установятся в 1, все они сбрасываются в 0.
    6. Справочник по командам
    6.1. Типы адресации, их коды и обозначения Таблица 2. Способы адресации и их обозначение Обозначение Код Тип адресации Пример команды
    0 Прямая (регистровая)
    ADD 23 (ADD R3)
    # 1 Непосредственная ADD
    #23
    @ 2 Косвенная ADD
    @23
    [ ]
    3 Относительная
    ADD [33]
    @R 4
    Косвенно-регистровая ADD
    @R3
    @R+ 5 Индексная с постинкрементом ADD
    @R3+
    -@R 6 Индексная с преддекрементом ADD
    -@R3

    7
    6.2. Система команд В приведённой ниже таблице приняты следующие обозначения
    − DD — данные, формируемые командой в качестве операнда (второго операнда прямо или косвенно адресуемая ячейка памяти или трёхразрядный непосредственный операнд содержимое регистра или косвенно адресуемая через регистр ячейка памяти
    − ADR — 3 младших разряда ADR поля регистра CR;
    − ADR* — 2 младших разряда ADR поля регистра CR;
    − V — адрес памяти, соответствующий вектору прерывания
    − M(*) — ячейка памяти, прямо или косвенно адресуемая в команде
    − I — пятиразрядный непосредственный операнд со знаком. Таблица 3. Состав команд учебной ЭВМ КОП Мнемокод Название Действие

    00 NOP Пустая операция Нет
    01 IN Ввод
    Acc
    ←IR
    02 OUT Вывод
    OR
    ←Acc
    03 IRET Возврат из прерывания
    FLAGS.PC
    ←M(SP); INC(SP)
    04 WRRB Загрузка RB
    RB
    ←CR[ADR]
    05 WRSP Загрузка SP
    SP
    ←CR[ADR]
    06 PUSH Поместить в стек
    DEC(SP); M(SP)
    ←R
    07 POP Извлечь из стека
    R
    ←M(SP); INC(SP)
    08 RET Возврат
    PC
    ←M(SP); INC(SP)
    09 HLT Стоп (останов) Конец командных циклов
    10 JMP Безусловный переход
    PC
    ←CR[ADR]
    11 JZ Переход, если 0
    If Acc=0 then PC
    ←CR[ADR]
    12 JNZ Переход, если не 0
    If Acc<>0 then PC
    ←CR[ADR]
    13 JS Переход, если отрицательно
    If Acc<0 then PC
    ←CR[ADR]
    14 JNS Переход, если неотрицательно
    If Acc>=0 then PC
    ←CR[ADR]
    15 JO Переход, если переполнение
    If |Acc|>99999 then PC
    ←CR[ADR]
    16 JNO Переход, если нет переполнения If |Acc|<=99999 then PC
    ←CR[ADR]
    17 JNRZ Цикл
    DEC(R); if R>0 then PC
    ←CR[ADR]
    18 INT Программное прерывание
    DEC(SP);M(SP)
    ←FLAGS.PC;C←M(V);
    19 CALL Вызов подпрограммы
    DEC(SP); M(SP)
    ←PC; PC←CR[ADR]
    20 Нет
    21 RD Чтение
    Acc
    ←DD
    КОП Мнемокод Название Действие
    22 WR Запись
    M(*)
    ←Acc
    23 ADD Сложение
    Acc
    ←Acc+DD
    24 SUB Вычитание
    Acc
    ←Acc-DD
    25 MUL Умножение
    Acc
    ←Acc*DD
    26 DIV Деление
    Acc
    ←Acc/DD
    27 Нет
    28 EI Разрешить прерывания
    IF
    ←1 29 DI Запретить прерывания
    IF
    ←0 30 MOV Пересылка
    R1
    ←R2 31 RD Чтение
    Acc
    ←R*
    32 WR Запись
    R*
    ←Acc
    33 ADD Сложение
    Acc
    ←Acc+R*
    34 SUB Вычитание
    Acc
    ←Acc-R*
    35 MUL Умножение
    Acc
    ←Acc*R*
    36 DIV Деление
    Acc
    ←Acc/R*
    37 IN Ввод
    Acc
    ←ВУ(СR[ADR*])
    38 OUT Вывод
    ВУ(CR[ADR*])
    ←Acc
    39 Нет
    40 Нет
    41 RDI Чтение
    Acc
    ←I
    42 Нет
    43 ADI Сложение
    Acc
    ←Acc+I
    44 SBI Вычитание
    Acc
    ←Acc-I
    45 MULI Умножение
    Acc
    ←Acc*I
    46 DIVI Деление
    Acc
    ←Acc/I
    Лабораторные работы
    1. Архитектура ЭВМ и система команд
    1. Ознакомиться с архитектурой учебной ЭВМ.
    2. Записать в ОЗУ программу, состоящую из 5 команд, согласно варианту.
    3. При необходимости установить начальное значение в устройство ввода IR.
    4. Определить те программно-доступные объекты ЭВМ (регистры, адреса в памяти, которые будут изменяться при выполнении этих команд.
    5. Выполнить в режиме Шаг введённую последовательность команд, фиксируя изменения значений выбранных объектов в таблице.
    6. Если в программе образуется цикл, необходимо выполнить 2 повторения каждой команды, входящей в тело цикла. Таблица 4. Варианты задания 1 Вариант IR Команда 1 Команда 2 Команда 3 Команда 4 Команда 5
    1 000007
    IN
    MUL #2
    WR 10
    WR @10
    JNS 001 2
    X
    RD #17
    SUB #9
    WR 16
    WR @16
    JNS 001 3
    100029
    IN
    ADD #16
    WR 8
    WR @8
    JS 001 4
    X
    RD #2
    MUL #6
    WR 11
    WR @11
    JNZ 001 5
    000016
    IN
    WR 8
    DIV #4
    WR @8
    JMP 002 6
    X
    RD #4
    WR 11
    RD @11
    ADD #330 JS 000 7
    000000
    IN
    WR 9
    RD @9
    SUB #1
    JS 001 8
    X
    RD 4
    SUB #8
    WR 8
    WR @8
    JNZ 001 9
    100005
    IN
    ADD #12
    WR 10
    WR @10
    JS 001 10
    X
    RD 4
    ADD #15
    WR 13
    WR @13
    JMP 001 11 000315
    IN
    SUB #308
    WR 11
    WR @11
    JMP 001 12
    X
    RD #988
    ADD #19
    WR 9
    WR @9
    JNZ 001 13 000017
    IN
    WR 11
    ADD 11
    WR @11
    JMP 002 14
    X
    RD #5
    MUL #9
    WR 10
    WR @10
    JNZ 001
    2. Командный цикл процессора Выполнить снова задание №1, нов режиме микрокоманд. Составить таблицу изменения состояния объектов ЭВМ для каждой микрокоманды.
    3. Программирование разветвляющегося процесса
    1. Разработать программу вычисления и вывода значения функции
    ( )
    ( )



    <

    =
    а
    х
    при
    x
    F
    а
    х
    при
    x
    F
    y
    j
    i
    ,
    ,
    для вводимого из IR значения аргументах. Функции и допустимые пределы изменения аргумента, варианты заданий приведены в таблицах.
    9

    2. Исходя из допустимых пределов изменения аргумента функций и значения параметра а для своего варианта задания выделить на числовой оси Ох области, в которых функция y вычисляется по представленной в п формуле, и недопустимые значения аргумента. На недопустимых значениях аргумента программа должна выдавать в OR максимальное по модулю отрицательное число.
    3. Ввести текст программы в соответствующее окно программной модели и ассемблировать е, при необходимости исправляя ошибки.
    4. Отладить программу, проверив корректность её работы при различных значениях аргументах. Для выбранного допустимого значения аргументах наблюдать выполнение отлаженной программы в режиме Шаги записать содержимое регистров в таблицу, аналогичною составляемой в задании 1. Таблица 5. Функции

    k Функция
    ( Интервал допустимых значений аргумента

    1
    x
    x

    +
    1 17 12 2

    x
    2
    (
    )
    x
    x
    2 3
    +
    50 1

    x
    3 10 1000
    +
    x
    15 50




    x
    4
    (
    )
    3 3
    +
    x
    20 20



    x
    5
    (
    )
    15 2
    2
    +
    x
    75 50

    x
    6
    x
    x
    7 2
    2
    +
    30 1

    x
    7 10 2
    2
    x
    x
    +
    50 50



    x
    8 2
    8100
    x
    90 1

    ≤ Таблица 6. Варианты задания 2 Вариант i
    j
    a
    1 2 1
    12 2 4 3
    -20 3 8 4
    15 4 6 1
    12 5 5 2
    50 6 7 3
    15 7 6 2
    11
    Вариант i
    j
    a
    8 8 6
    30 9 2 6
    25 10 5 7
    50 11 2 4
    18 12 8 1
    12 13 7 6
    25 14 1 4 5
    4. Подпрограммы истек Составить и отладить программу для решения следующей задачи. Три массива (усложнённый вариант – N массивов) в памяти заданы начальными адресами и длинами (усложнённый вариант до первого нулевого элемента. Вычислить и вывести на устройство вывода среднее арифметическое параметров этих массивов. Тип параметра определяется таблицей в соответствии с вариантом. Расчёт параметра должен быть оформлен в виде подпрограммы, принимающей адрес первого элемента массива и длину массива. Таблица 7. Варианты задания 3 Вариант Характеристика массива
    1 Количество чётных чисел
    2 Номер минимального числа
    3 Произведение всех чисел
    4 Номер первого отрицательного числа
    5 Количество чисел, равных первому элементу массива
    6 Количество отрицательных чисел
    7 Максимальное по модулю отрицательное число
    8 Номер первого положительного числа
    9 Минимальное положительное число
    10 Номер максимального числа
    11 Количество нечётных чисел
    12 Количество чисел, меньших первого элемента массива
    13 Разность сумм чётных и нечётных элементов массива
    14 Отношение сумм модулей чётных и нечётных элементов массива
    5. Алгоритмы замещения строк в кэш-памяти
    1. Загрузить отлаженную программу из задания №4.
    2. Провести эксперименты, варьируя числом ячеек кэш-памяти, режимом записи и алгоритмом замещения. Результат оформить в виде таблицы.


    написать администратору сайта