КАТЕГОРИИ: Архитектура-(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) |
Цикл виконання (Execute cycle - EX)
Послідовність виконання елементарних операцій, що виконуються інформаційним трактом на фазі EX, залежить від типу інструкції, які можна умовно об‘єднати в три групи: арифметико-логічні операції, операції збереження результату, операції умовних та безумовних переходів. У групу арифметико-логічних операцій входять команди: CLEAR_C, SET_C, LOAD_IMM, ADD_IMM, LOAD_DIR, ADD_DIR, XOR_DIR, TEST_DIR. При виконанні вищенаведених інструкцій в фазі EX бере участь арифметико-логічний пристрій, результат заноситься в акумулятор. В дану групу включені команди LOAD_IMM, LOAD_DIR, оскільки запис в акумулятор виконується за участю АЛП. Код операції alu_op для АЛП формує керуючий автомат: ACC = ACC alu_op IR[3:0] або ACC = ACC alu_op RF[IR[3:0]]. Встановлюється значення mx3 для вибору джерела для АЛП. Групу операцій збереження результату становлять команди STORE_DIR, LOAD та STORE. При виконанні даних інструкцій у фазі EX записується вміст акумулятора в один з двох пристроїв або читається інформація з них(LOAD та STORE), а також запис у регістровий файл (команда STORE_DIR). DEV[R0[3:0]& IR[3:0]]=ACC або ACC=DEV[R0[3:0]& IR[3:0]] – для команд LOAD та STORE; RF[IR[3:0]]=ACC – для команди STORE_DIR, формується сигнал we=1 для запису у регістровий файл. В принципі можливим є читання із зовнішньої пам`яті даного з певної комірки, що адресується так: ACC=MEM[R0[3:0]&IR[3:0]]. Група операцій умовних переходів складається з команд SKIP_C, SKIP_Z, JZ. Команди безумовних переходів представлені однією єдиною командою RET. При виконанні команди SKIP_C або SKIP_Z, при встановленому в одиницю регістра переносу C або регістра ознаки нульового результата Z відповідно, виконується збільшення поточного значення лічильника команд на одиницю: PC = PC +1 (inc_pc=Z або inc_pc=C відповідно) Операція умовного переходу виконується записом адреси переходу в регістр PC: PC = R0[2:0]&IR[3:0] та визначенням сигналу jump_pc=”11”. Команда безумовного переходу виконує такі мікродії: встановлення сигналу jump_pc=”01”, встановлення можливості обробки переривання – відповідно сигнали disable_interrupt та enable_interrupt: disable_interrupt= '0' та enable_interrupt='1'; Якщо лінія маскованого апаратного переривання утримана в 1, то скидаємо сигнал запису до регістру PC1: pc1_we<='0'; вибираємо перехід по адресі R14_15 сигналом керування jump_pc<="10" мультиплексора MUX2; та забороняємо переривання на час виконання підпрограми обробки переривання: disable_interrupt <= '1'; enable_interrupt<='0'; Окремо стоїть команда NOP, призначення якої не виконувати протягом трьох циклів ніяких змін у стані мікропроцесора.
4.3 Керуючий автомат Проектування керуючого автомата є складним та багатогранним етапом проектування, оскільки вимагає від розробника розуміння особливостей функціонування пристрою, вміння вибрати та ефективно спроектувати абстрактний автомат. Керуючий автомат — один з найважливіших блоків мікропроцесора. Спільно з генератором тактових імпульсів, який формує сигнал синхронізації clock, керуючий автомат забезпечує проходження подій в мікропроцесорі в правильній послідовності, тобто декодування інструкції та генерацію відповідних керуючих сигналів для реалізації елементарних операцій інформаційним трактом в циклах IF, ID, EX, встановлення в початковий стан вузлів мікропроцесора при надходженні сигналу встановлення в початковий стан reset. Множину керуючих сигналів складають сигнали sel_addr, read, write, ld_ir, inc_pc, jump_pc, alu_op, pc1_we, mx3, disable_interrupt, enable_interrupt, we. Розглянемо детально, які значення керуючих сигналів формуються пристроєм керування на кожному циклі виконання інструкції. 1. Цикл вибирання інструкцій (Instruction Fetch cycle -IF) Завантаження з пам‘яті інструкцій, інкремент значення лічильника команд PC на одиницю: read <= '1'; ld_ir <= '1'; inc_pc <= '1'; перехід до циклу ID 2. Цикл декодування інструкції/вибирання операнда з регістрового файлу (Instruction decode/register fetch cycle - ID ) Для інструкцій LOAD та STORE, що виконують читання та запис за відповідною адресою: if ir_r(7 downto 4)= LOAD then sel_addr <= '1'; read <= '1'; mx3<="10"; end if; if ir_r(7 downto 4)= STORE then sel_addr <= '1'; write <='1'; end if; та встановлення сигналу запису до регістру PC1 при виникненні переривання if inter='1' then pc1_we<='1'; end if; перехід до циклу EX Для решти інструкцій, які не вимагають завантаження значення з пам`яті: sel_data_ram=0 read=0 write=0 ld_ir=0 inc_pc=0 jump_pc=00 alu_op=000 (NOP) перехід до циклу EX
Дата добавления: 2015-08-31; Просмотров: 347; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |