Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
APKS_Metodichni_vkazivki_KR_-_2012.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
574 Кб
Скачать
☆
  1. Проектування пристрою керування виконання команд

Інформаційний тракт традиційного мікропроцесора Gnome виконує інструкції почергово, кожна інструкція виконується за декілька циклів. Після виконання поточної інструкції мікропроцесор переходить до виконання наступної, тобто в основу закладено принцип послідовного неконвеєрного опрацювання інструкцій.

Оскільки в даному курсовому проекті проектування мікропроцесора виконується на функціональному рівні, то при синтезі VHDL-моделі увага часовим витратам виконання кожного циклу не приділяється. Вважатимемо, що час виконання кожного з циклів є однаковий і дорівнює тривалості тактового інтервалу clock.

Проектований процесор має трирівневу систему пам’яті и (акумулятор, регістровий файл, зовнішня пам’ять). При цьому обмін даними в межах однієї інструкції можливий лише між суміжними рівнями ієрархічної системи пам’яті. Така система команд є традиційною для RISC - машин.

Реалізувавши читання за адресою (без очікування керуючого сигналу) з регістрового файлу та зовнішньої пам’яті, а також враховуючи сказане вище, ми ліквідуємо необхідність виконання додаткового такту для вибирання операндів. Таким чином інструкція може бути виконана за два такти, як описано далі.

Цикл if (вибірка інструкції)

Виконання цього циклу передбачає читання інструкції із зовнішньої пам’яті програм за адресою, що зберігається в регістрі - вказівнику команд. Зчитане значення зберігається у регістрі інструкцій. Після цього обчислюється значення адреси наступної інструкції. Обчислене значення може бути змінене на фазі EX під час виконання інструкцій переходу. Таблиця 2 ілюструє мікрокоманди керуючого пристрою, що забезпечують виконання цих дій. Мікродії виконуються паралельно в часі і можуть розглядатись як одна сукупна мікродія. Зовнішня відносно ядра процесора пам’ять повинна виконувати читання та запис за один тактовий інтервал.

Таблиця 2. Виконання циклу IF.

Інструкція

Дії

Мікрооперації

IR=IM[PC]

read <= '1'

Всі інструкції

ld_ir <= '1'

NPC=PC+1

inc_pc <= '1'

Цикл ex (обчислення результату)

Цей цикл передбачає виконання дій, специфічних для кожної інструкції. Тут можемо виділити шість груп інструкцій.

  1. Інструкції АЛП (CLEAR_C, SET_C, LDA_IMM, ADDA_IMM, LDA_RG, ADDA_RG, XORA_RG, TESTA_RG) виконують певну дію над вхідним операндом та вмістом акумулятора АЛП. Виконання таких інструкцій ініціюється передачею відповідного коду операції (alu_op) до АЛП. Для інструкцій, операндом яких є значення з регістрового файлу, генерується також сигнал Rg_op.

Таблиця 3. Виконання циклу EX для АЛП - інструкцій.

Інструкція

Дії

Мікрооперації

CLEAR_C

C=’0’

alu_op <= CLR_C_OP;

SET_C

C=’1’

alu_op <= SET_C_OP;

LDA_IMM

ACC=[IR3...IR0]

alu_op <= LOAD_OP;

ADDA_IMM

ACC=ACC+[IR3...IR0]

alu_op <= ADD_OP;

LDA_RG

ACC= R[IR3...IR0]

alu_op <= LOAD_OP;

Rg_op <= '1';

ADDA_RG

ACC=B

alu_op <= ADD_OP;

Rg_op <= '1';

XORA_RG

ACC=ACC XOR B

alu_op <= XOR_OP;

Rg_op <= '1';

TESTA_RG

Z=ACC AND B

alu_op <= AND_OP;

Rg_op <= '1';

  1. Інструкції звертання до зовнішньої пам’яті (LOAD, STORE) реалізують обмін даними між регістровим файлом та пам’яттю даних.

Таблиця 4. Виконання циклу EX для інструкцій звертання до пам’яті.

Інструкція

Дії

Мікрооперації

LOAD

R[IR3...IR0]=MEM[IX]

alu_op <= NOP_OP;

sel_dm <= '1';

read <= '1';

ld_op<= '1';

RgWrite <= '1';

STORE

MEM[IX]=R[IR3...IR0]

alu_op <= NOP_OP;

Rg_op <= '1';

sel_dm <= '1';

data_out <= '1';

write <= '1';

Інструкції завантаження індексного регістру значенням із регістрового файлу (SET_IXH, SET_IXL) виконуються активацією відповідних сигналів запису.

Таблиця 5. Виконання циклу EX для інструкцій завантаження РСП IX.

Інструкція

Дії

Мікрооперації

SET_IXH

IX[7...4]= R[IR3...IR0]

alu_op <= NOP_OP;

Rg_op <= '1';

write_ixh <='1';

SET_IXL

IX[3...0]= R[IR3...IR0]

alu_op <= NOP_OP;

Rg_op <= '1';

write_ixl <='1';

  1. Інструкція збереження значення акумулятора в регістровому файлі (STA_RG) потребує сигналу запису до регістрового файлу (Rg_write).

Таблиця 6 Виконання циклу EX для інструкції збереження акумулятора.

Інструкція

Дії

Мікрооперації

STA_RG

R[IR3...IR0]= ACC

alu_op <= NOP_OP;

RgWrite <= '1';

  1. Інструкції умовного переходу (SKIP_C, SKIP_Z) - виконують інкремент вказівника інструкцій за умови активності відповідної ознаки АЛП.

Таблиця 7. Виконання циклу EX для інструкцій завантаження РСП IX.

Інструкція

Дії

Мікрооперації

SKIP_C

If (C) Then PC= PC+1

inc_pc <= C;

SKIP_Z

If (Z) Then PC= PC+1

inc_pc <= Z;

  1. Інструкція безумовного переходу (JMP_IX) присвоює вказівнику інструкцій значення індексного регістру IX, активуючи сигнал jump_pc.

Таблиця 8. Виконання циклу EX для інструкції збереження акумулятора.

Інструкція

Дії

Мікрооперації

JMP_IX

PC]= IX

jump_pc <= '1';

Проектування керуючого автомата (автомата Мілі) засобами VHDL вимагає реалізації функції переходів та функції виходів у вигляді двох процесів. Функція переходів забезпечуватиме коректне встановлення стану керуючого пристрою при надходженні сигналу початкового скиду та подальше переключення станів. Функція виходів активує потрібні керуючі сигнали на кожному такті згідно правил описаних вище. Керуючі сигнали надходять до інформаційного тракту та зовнішньої пам’яті й забезпечують виконання кожної інструкції з набору мікропроцесора.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]