АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Мікрокоманди

Для управління трактом даних, зображеним на рис. 7.1, нам потрібно 29 сигналів. Їх можна розділити на п'ять функціональних груп:

¦ 9 сигналів для запису даних з шини З в регістри.

+ 9 сигналів для дозволу передачі регістрів на шину В'ючи АЛЛУ.

¦ 8 сигналів для управління АЛЛУ і схемою зсуву.

+ 2 сигнали, які указують, що потрібно здійснити читання або запис через регістри MAR/MDR (на малюнку вони не показані).

+ 1 сигнал, який указує, що потрібно здійснити виклик з пам'яті через регістри PC/MBR (на малюнку також не показаний).

Значення ці 29 сигналів управління визначають операції для одного циклу тракту даних. Цикл складається з передачі значень регістрів на шину В, проходження цих сигналів через АЛЛУ і схему зсуву, передачі одержаних результатів на шину З і записи їх в потрібний регістр (регістри). Крім того, якщо встановлений сигнал прочитування даних, то в кінці циклу після завантаження регістра MAR починається робота пам'яті. Дані з пам'яті поміщаються в MBR або MDR в кінці наступного циклу, а використовуватися ці дані можуть в циклі, який йде після нього. Іншими словами, якщо прочитування з пам'яті через будь-який з портів починається в кінці циклу до, то одержані дані ще не можуть використовуватися в циклі к+1 (тільки в циклі к+2 і пізніше).

Цей процес пояснюється на рис. 7.2. Сигнали управління пам'яттю видаються тільки після завантаження регістрів MAR і PC, яке відбувається на наростаючому фронті синхронізуючого сигналу незадовго до кінця циклу 1. Ми припустимо, що пам'ять поміщає результати на шину пам'яті протягом одного циклу, тому регістри MBR і (або) MDR можуть завантажуватися на наступному наростаючому фронті разом з іншими регістрами.

Іншими словами, ми завантажуємо регістр MAR в кінці циклу тракту даних і запускаємо пам'ять відразу після цього. Отже, ми не можемо чекати, що результати прочитування будуть в регістрі MDR на початку наступного циклу, особливо якщо тривалість імпульсу невелика. Цього часу буде недостатньо. Тому між початком прочитування з пам'яті і використовуванням цього результату повинен поміщатися один цикл. Проте під час цього циклу може виконуватися не тільки передача слова з пам'яті, але і інші операції.

Припущення про те, що робота пам'яті займає один цикл, еквівалентне припущенню, що кількість успішного обігу в кеш-пам'ять складає 100%. Подібне припущення ніколи не може бути істинним, але ми тут не розказуватимемо про цикли пам'яті змінної довжини, оскільки це не входить в задачі даної книги.



Оскільки регістри MBR і MDR завантажуються на наростаючому фронті синхронізуючого сигналу разом з іншими регістрами, вони можуть прочитувати під час циклів, протягом яких здійснюється передача нового слова з пам'яті. Вони повертають старі значення, оскільки пройшло ще недостатньо часу для того, щоб поміняти їх на нові. Тут немає ніякої двозначності: доти поки нові значення не завантажаться в регістри MBR і MDR на наростаючому фронті сигналу, попередні значення знаходяться там і можуть використовуватися. Відзначимо, що прочитування можуть проходити одне за іншим, тобто в двох послідовних циклах (оскільки сам процес прочитування займає тільки один цикл). Крім того, обидва пам'яті можуть діяти в один і той же час. Проте спроба читання і запису одного і того ж байта одночасно приводить до невизначених результатів.

Вихідний сигнал шини З можна записувати відразу в декілька регістрів, проте небажано передавати значення більше одного регістра на шину В. Трохи розширивши схемотехніку, ми можемо скоротити кількість бітів, необхідних для вибору одного з можливих джерел для запуску шини В. Існує тільки 9 вхідних регістрів, які можуть запустити шину В (регістри MBR із знаком і без знаку враховуються окремо). Отже, ми можемо закодувати інформацію для шини У в 4 біти і використати декодер для породження 16 сигналів управління, 7 з яких не потрібні. У розробників комерційних моделей, можливо, було б велике бажання позбавитися від одного з регістрів, щоб обійтися 3 бітами. Проте ми як учені вважаємо за краще мати один зайвий біт, але при цьому одержати більш ясну і просту розробку.

Біти

Регістри шини В

0=MDR 5=LV

1=PC 6=CPP

‡агрузка...

2=MBR 7=TOS

3=MBRU 8=OPC

4=SP 9-15- нет

Рис.7.4. Формат мікрокоманди для МІС-1

Тепер ми можемо управляти трактом даних за допомогою 9+4+8+2+1 =24 сигналів, отже, нам потрібне 24 біти. Проте ці 24 біти управляють трактом даних тільки протягом одного циклу. Задача управління — визначити, що потрібно робити в наступному циклі. Щоб включити це в розробку контролера, ми створимо формат для опису операцій, які потрібно виконати, використовуючи 24 біти управління і два додаткові поля: поле NEXT_ADDRESS (наступна адреса) і поле JAM. Зміст кожного з цих полів ми обговоримо пізніше. На рис. 7.4 зображений один з можливих форматів. Він роздільний на наступні 6 груп, що містять 36 сигналів:

¦ Addr — містить адресу наступної потенційної мікрокоманди.
+ JAM — визначає, як вибирається наступна мікрокоманда.

+ ALU — функції АЛЛУ і схеми зсуву.

+ З — вибирає, які регістри записуються з шини С.

¦ Mem — функції пам'яті.

+ У — вибирає джерело для шини В (як він кодується, було показано вище).

Порядок груп у принципі довільний, хоча ми довго і ретельно його підбирали, щоб уникнути перетинів на рис. 7.5. Подібні перетини на діаграмах часто відповідають перетинам дротів на мікросхемах. Вони сильно утрудняють розробку і їх краще зводити до мінімуму.

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 |


Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.006 сек.)