сигналом NA#, у відповідь на який процесор через такт видасть адресу наступного циклу. Без конвеєризації наступна адреса (і тип циклу) була б виставлена тільки після завершення передачі даних поточного циклу.
Таблиця 3.
Послідовність адрес в пакетному циклі Pentium MMX
Перша адреса | Друга адреса | Третя адреса | Четверта адреса
0 | 8 | 10h | 18h
8 | 0 | 18h | 10h
10h | 18h | 0 | 8
18h | 10h | 8 | 0
Як і в попередніх процесорів, тип шинного циклу задається керівниками сигналами M/IO#, D/C# і W/R#, діючими одночасно зі стробом ADS#. Окрім циклів звернення до пам'яті, уведення-виведенню і підтвердження переривання, процесор має спеціальні шинні цикли, що ідентифікуються по комбінації сигналів ВЕ[0:7]# (табл. 3.3). Ці цикли так само, як і інші, вимагають підтвердження сигналом BRDY#.
Рис. 3.. Одиночні цикли читання і запису на шині Pentium MMX
Рис. 3.. Конвеєризовані пакетні цикли читання на шині Pentium MMX
Таблиця 3.
Ідентифікація шинних циклів Pentium MMX
BE[7:0] < t: 76343210 | Спеціальний цикл (М/IO# = 0, D/C# – 0 і W/R# = 1)
11111110 | Shutdown
11111101 | Flush (інструкції INVD, WBINVD)
11111011 | Halt
11110111 | Writeback (інструкція WBINVD)
11101111 | Flush Acknowledge (сигнал FLUSH»)
11011111 | Branch Trace Message
Процесор має вхід EWBE#, за допомогою якого він відстежує стан зовнішніх буферів відкладеного запису для забезпечення коректної послідовності шинних циклів запису.
Для підтримки узгодженості даних кеша і основної пам'яті процесор відпрацьовує цикли стеження (Snoop Cycle або Inquire Cycle), ініційовані зовнішньою (для нього) системою. Ці цикли, як і в 486, використовують сигнали AHOLD#, EADS# і у відповідь сигнали процесора IIIТ# і IIIТМ#. Сигнал FLUSH# викликає вивантаження всіх модифікованих рядків первинного кеша (зворотний запис). Цикли стеження ініціюються системою для визначення присутності викликаної області пам'яті в рядку якої-небудь кеш-пам'яті і визначення її стану. Процесори підтримують протокол MESI, названий по визначуваних ним станах М (Modified), E (Exclusive), S (Shared) і I (Invalid). Стан визначаються таким чином:
M-state – рядок присутній тільки в одному кеші, і він модифікований, тобто відрізняється від вмісту основної пам'яті. Доступ до цього рядка можливий без генерації зовнішнього (по відношенню до локальної шини) циклу звертання.
L-state – рядок присутній тільки в одному кеші, але він не модифікований. Доступ до цього рядка можливий без генерації зовнішнього циклу звертання, при записі в неї вона перейде в стан «М».
S-state – рядок потенційно може бути присутній в декількох кешах. Його читання можливе без генерації зовнішнього циклу, а запис в нього повинен супроводжуватися крізним записом в основну пам'ять, що спричинить анулювання відповідних рядків в інших кешах.
J-state – рядок відсутній в кеші, його читання може привести до генерації циклу заповнення рядка. Запис в нього буде крізним і вийде на зовнішню шину.
Ініціалізація процесора виконується по сигналу RESET аналогічно попереднім процесорам. На додаток до входу скидання RESET введений сигнал INIT, по якому процесор переходить в той же стан, що й по сигналу RESET, але зберігаючи вміст кеша і регістрів FPU. Цей сигнал може бути використаний і для перемикання із захищеного режиму в реальний в стилі процесора 286.
Під час дії сигналу RESET повинні встановитися значення на входах управління коефіцієнтом множення BF[1:0] і частота на вході CLC. Коливання вхідної частоти не можуть швидко відпрацьовуватися схемою помножувача, побудованою на основі петлі фазового автопідстроювання частоти PLL (Phase Lock Loop). При нестабільності генератора вхідної частоти працездатність процесора не гарантується.
Значення коефіцієнтів множення для різних моделей Pentium наведені в табл. 3.4
Таблиця 3.
Коефіцієнт множення частоти процесорів
BF[1:0] | Pentium 75-133 Мгц | Pentium MMX 166-233 Мгц
KF FCORE | KF FCORE
00 | 2.5 150, 166 | 2.5 166
01 | 3.0 180, 200 | 3.0 200
10 | 2.0 100, 120,133 | (2.0) (133)
11 | 1.5 75, 90, 100 | 3.5 233
У момент закінчення дії сигналу RESET процесор, окрім нормального робітника режиму, може бути переведений в один з наступних режимів:
BIST (Built-in Self Test) – вбудований тест, виконуваний приблизно за 219 тактів ядра і охоплюючий близько 70% внутрішніх блоків процесора. Під час виконання тесту процесор не генерує зовнішніх циклів. Після виконання тесту процесор переходить в робочий режим, про результат завершення можна судити по вмісту регістра ЕАХ. Нульове значення вказує на справність, будь-яке інше – на відмову якого-небудь блоку. Якщо під час виконання BIST процесор знайде внутрішню помилку паритету, він виставить сигнал 1ERR# і спробує виконати ShutDown. BIST запускається при високому рівні сигналу INIT під час спаду сигналу RESET.
Tristate Test Mode – режим, при якому всі (окрім TD0) вихідні і двонаправлені сигнали переходять в третій стан, включається по низькому рівню сигналу FLUSH# під час спаду сигналу RESET.
FRC – режим, при якому процесор працює в якості перевіряючого у функціонально-надмірній двопроцесорній системі. Включається при низькому рівні на вході FRCMC# під час спаду сигналу RESET.
Для процесорів Pentium ММХ джерелами переривань, що апаратно-викликаються, є наступні вхідні сигнали, розташовані в порядку убування пріоритету:
BUSCHK# – контроль шини, що викликає виключення МСЕ.
R/S# – перемикання в зондовий режим.
FLUSH# – очищення кеш-пам'яті (може викликати потік операцій запису).
SMI# – переривання входу в режим SMM.
INIT – «м'яке» скидання процесора.
NMI – немасковане переривання.
INTR – запит маскованих переривань.
STOPCLK#.
Тут поняття переривання трактується дещо ширше і відноситься до всіх подій, що примушують процесор генерувати зовнішні цикли поза чергою, визначуваною послідовністю інструкцій, що переривається (таким чином, можна