|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Мікрокоманди
Для управління трактом даних, зображеним на рис. 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 — містить адресу наступної потенційної мікрокоманди. + ALU — функції АЛЛУ і схеми зсуву. + З — вибирає, які регістри записуються з шини С. ¦ Mem — функції пам'яті. + У — вибирає джерело для шини В (як він кодується, було показано вище). Порядок груп у принципі довільний, хоча ми довго і ретельно його підбирали, щоб уникнути перетинів на рис. 7.5. Подібні перетини на діаграмах часто відповідають перетинам дротів на мікросхемах. Вони сильно утрудняють розробку і їх краще зводити до мінімуму.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |