ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.12.2021
Просмотров: 6726
Скачиваний: 8
1 9 8 Глава 3. Цифровой логический уровень
мально возможная производительность памяти. По этой причине шина памяти
процессора Pentium II работает в конвейерном режиме, при этом в шине происхо-
дит одновременно 8 операций. Понятие конвейера мы рассматривали в главе 2,
когда говорили о конвейерных процессорах. Отметим, что память тоже может быть
конвейерной.
Обращения процессора к памяти, которые называются транзакциями, имеют
6 стадий:
1. Фаза арбитража шины.
2. Фаза запроса.
3. Фаза сообщения об ошибке.
4. Фаза проверки на наличие нужного слова в другом процессоре.
5. Фаза ответа.
6. Фаза передачи данных.
Наличие всех шести фаз необязательно. На фазе арбитража шины определя-
ется, какое из задающих устройств будет следующим. На фазе запроса на шину
передается адрес. На фазе сообщения об ошибке подчиненное устройство передает
сигнал об ошибке четности в адресе или о наличии каких-либо других неполадок.
На следующей фазе центральный процессор проверяет, нет ли нужного ему слова
в другом процессоре. Эта стадия нужна только в многопроцессорных системах.
В следующей фазе задающее устройство узнает, где взять необходимые данные.
На последней стадии осуществляется передача данных.
В системе с процессором Pentium II на каждой стадии используются опреде-
ленные сигналы, отличные от сигналов других стадий, поэтому каждая из них не
зависит от остальных. Шесть групп необходимых сигналов показаны в левой час-
ти рис. 3.41. Например, один из процессоров может пытаться получить доступ к
шине, используя сигналы арбитража. Как только процессор получает право на до-
ступ к шине, он освобождает эти линии шины и занимает линии запроса. Тем вре-
менем другой процессор или какое-нибудь устройство ввода-вывода может войти
в фазу арбитража шины и т. д. На рис. 3.42 показано, как осуществляется одновре-
менно несколько транзакций.
Фаза арбитража шины на рис. 3.42 не показана, поскольку она не всегда нужна.
Например, если устройство, обладающее в данный момент шиной (часто это цент-
ральный процессор), хочет произвести еще одну транзакцию, ему не требуется за-
ново получать доступ к шине. Ему нужно запрашивать шину заново только в том
случае, если он уступает ее другому устройству. Транзакции 1 и 2 обычные: пять
фаз за пять циклов шины. Во время транзакции 3 вводится более длительная фаза
передачи данных (поскольку, например, требуется передать целый блок или нуж-
но ввести режим ожидания). Вследствие этого транзакция 4 не может начать фазу
передачи данных сразу после стадии ответа Стадия передачи данных начинается
только после того, как исчезнет сигнал DBSY#. Фаза ответа в транзакции 5 также
может занимать несколько циклов шины, что задерживает транзакцию 6. Нако-
нец, мы видим, что в транзакции 7 также происходит задержка, поскольку она уже
появилась ранее. В действительности же маловероятно, что центральный процес-
сор будет пытаться начать новую транзакцию на каждом цикле шины, поэтому
простои не такие уж длительные.
Транзакция
М
А
О
о
о
а
S
а>
о
•о
о
8
•о
о
•v
to
я
с
I бгспежиааниё I
Ошибка! изменений
L _ n o aflpecaM__J
П
"О
CD
CD
X
Z]
•D
о
CD
О
о
о
TJ
о
(D
2 0 0 Глава 3. Цифровой логический уровень
UltraSPARC II
В качестве второго примера процессора возьмем семейство UltraSPARC (произ-
водитель — компания Sun). Семейство UltraSPARC — это серия 64-разрядных
процессоров SPARC. Эти процессоры полностью соответствуют архитектуре
Version 9 SPARC, которая также подходит для 64-разрядных процессоров. Они
используются в рабочих станциях и серверах Sun, а также во многих других сис-
темах. Семейство включает в себя процессоры UltraSPARC I, UltraSPARC II и
UltraSPARC III, которые имеют сходную архитектуру, но различаются датой вы-
пуска и тактовой частотой. Ниже мы будем говорить о процессоре UltraSPARC II,
поскольку нам нужен конкретный пример, но изложенная информация по боль-
шей части имеет силу и для других типов UltraSPARC.
UltraSPARC II представляет собой машину типа RISC. Он полностью совмес-
тим с 32-разрядным SPARC V8. Единственное, чем UltraSPARC II отличается от
SPARC V9, — это наличием команд VIS, которые разработаны для графических
приложений, кодировки MPEG в реальном времени и т. п.
Процессор UltraSPARC II был разработан для создания 4-узловых мультипро-
цессоров с разделенной памятью без добавления внешних схем, а также для созда-
ния более крупных мультипроцессоров с минимальным добавлением внешних
схем. Иными словами, в каждую микросхему UltraSPARC II включены связую-
щие элементы, необходимые для построения мультипроцессора.
В отличие от структуры Pentium II SEC, процессор UltraSPARC II представ-
ляет собой относительно большую самостоятельную микросхему, содержащую
5,4 млн транзисторов. Микросхема содержит 787 выводов, расположенных снизу,
как показано на рис. 3.43. Такое большое число выводов объясняется, с одной сторо-
ны, использованием 64 битов для адресов и 128 битов для данных. С другой сторо-
ны, это объясняется особенностями работы кэш-памяти. Кроме того, многие выво-
ды являются резервными. Число 787 было выбрано для того, чтобы промышленность
могла производить стандартные модули. Компании, вероятно, считают простое
число выводов счастливым.
Процессор UltraSPARC II содержит 2 внутренних блока кэш-памяти: 16 Кбайт
для команд и 16 Кбайт для данных. Как и у Pentium II, здесь вне кристалла про-
цессора расположена кэш-память второго уровня, но, в отличие от Pentium II, про-
цессор UltraSPARC II не упакован в один картридж с кэш-памятью второго уров-
ня, поэтому разработчики вправе выбирать любые микросхемы для кэш-памяти
второго уровня.
Решение объединить кэш-память второго уровня с процессором или разделить
ее с процессором обусловлено выбором между различными техническими преиму-
ществами, а также особенностями компаний Intel и Sun. Внешняя кэш-память бо-
лее гибкая (кэш-память процессора UltraSPARC II можно расширить с 512 Кбайт
до 16 Мбайт; кэш-память процессора Pentium II имеет фиксированный объем
512 Кбайт), но при этом она работает медленнее из-за того, что расположена дальше
от процессора. Для обращения к внешней кэш-памяти требуется больше сигналов
(у картриджа SEC нет контактов для связи с кэш-памятью, поскольку в данном
случае кэш-память встроена прямо в картридж), но среди 787 выводов процессора
UltraSPARC II обязательно должны быть выводы для управления кэш-памятью.
Примеры центральных процессоров
201
папапаппппаапааапапапапапапапппп
паппаппппапапапапапаппппапаппппа
пппааппппппапааааапапапйппаппппп
пшппппаапапапапппаааппааапппаппа
папопапапппапапапапапапаппппппап
папппапапааапапаапаааппппапапппп
•апапаапааааоапапопаппапаппппппа
апаппапапппапаааааапапаааааапапп
папапапа аппппапа
аааапапп
аппппапа
ппаппапп
аппппппп
• с ппапВпап
• а пппапоаа
о
• ааапапаа
о
а
апапаппп
а а ааапапап
р а папаппап
а п апааапаа
а а паааоадп
п а апапсюйп
п а апааапаа
апааааап
Индекс вывода 1 oaaaaaaa
DanananaL_
M
ananaaaa
ааапаапаппппппппапппапппапппапап
папапааппппппапапаппппапапппапаа
ааапаппаапапааапаапааппаапапапап
паппапапппапппппапапапапапааапап
апппппппапаппппппппаапааааапапап
папапаапапппппппапапапапаааааааа
аапапппаппппапапапааааааапапаапа
аапапапппппппапапапапааааааааап
апаппапа
папапапа
апаапапа
пааооапа
аппапапа
аааааааа
папапааа
пппапааа
папапааа
••папаап
папапапо
аааппааа
папапапа
папапааа
папапапа
•aaananai
Dananana
Рис. 3.43. Микросхема процессора UltraSPARC II
Что касается производственных особенностей, компания Intel является постав-
щиком полупроводниковых приборов, поэтому у
нее
есть возможность разраба-
тывать и выпускать собственные микросхемы кэш-памяти второго уровня и свя-
зывать их с центральным процессором через собственный интерфейс с высокими
техническими характеристиками. Компания Sun, напротив, является производи-
телем компьютеров, а не микросхем. Она иногда разрабатывает собственные
микросхемы (например, UltraSPARC II), но поручает их производство предприя-
тиям, выпускающим полупроводниковые приборы (например, Texas Instruments
и Fujitsu). Иногда компания Sun предпочитает использовать микросхемы, имею-
щиеся в продаже. Статические ОЗУ для кэш-памяти второго уровня можно при-
обрести у различных производителей, поэтому у компании Sun не было особой
необходимости разрабатывать собственные ОЗУ. А если ОЗУ не разрабатывается
специально, то нужно устанавливать кэш-память второго уровня отдельно от цен-
трального процессора.
Большинство рабочих станций Sun содержат синхронную шину на 25 МГц, ко-
торая называется
Sbus.
К этой шине могут подсоединяться устройства ввода-вы-
вода. Однако шина Sbus работает слишком медленно и не подходит для памяти,
поэтому компания Sun придумала другой механизм для соединения процессоров
UltraSPARC II с памятью:
UPA (Ultra Port Architecture
—
высокоскоростной
пакетный коммутатор).
UPA может воплощаться в виде шины, переключателя или
сочетания того и другого. В различных рабочих станциях и серверах используют-
ся различные реализации UPA. Реализация UPA никак не зависит от процессора,
поскольку интерфейс с UPA точно определен и процессор должен поддерживать
(и поддерживает) именно этот интерфейс.
На рис. 3.44 мы видим ядро системы UltraSPARC II: центральный процессор,
интерфейс UPA и кэш-память второго уровня (2 статических ОЗУ). На рисунке
202
Глава 3. Цифровой логический уровень
также изображена микросхема
UDB II (UltraSPARC II Data Buffer II. Data
Buffer — буфер данных),
функции которой мы обсудим ниже. Когда процессору
нужно слово из памяти, сначала он обращается к кэш-памяти первого уровня. Если
он находит слово, он продолжает выполнять операции с полной скоростью. Если
он не находит слово в кэш-памяти первого уровня, он обращается к кэш-памяти
второго уровня.
Дескрипторы
кэш-памяти
второго
уровня
Данные
кэш-памяти
второго
уровня
18 Адрес дескриптора
щ
Действительность
дескриптора
25 Данные дескриптора
4 Четность
дескриптора
^20 Адрес данных
Действительность
адреса данных
1
?8 Данные
Процессор
UltraSPARC И
Кэш-память
первого уровня
• •
Д6 Четность
5-
Арбитраж шины 5
t
Адрес памяти 35 ^
ч
Четность адреса
щ
Действительность
адреса данных *
_ Ожидание
в
Ответ 4
Управление
Буфер памяти
UDBII
Данные памяти 128
%
Коде
1
? ^
исправлением ошибок
UPA-
интерфейс
с основной
памятью
Рис. 3.44. Основная структура системы UltraSPARC II
Хотя мы в главе 4 будем подробно обсуждать работу кэш-памяти, все-таки сто-
ит сказать здесь несколько слов об этом. Вся основная память подразделяется на
строки кэш-памяти (блоки) по 64 байта. В кэш-памяти первого уровня находятся
256 наиболее часто используемых строк команд и 256 наиболее часто используе-
мых строк данных. В кэш-памяти второго уровня содержатся строки, которые не
поместились в кэш-память первого уровня. Кэш-память второго уровня содержит
линии данных и команд вперемешку. Они хранятся в статическом ОЗУ, которое
на рис. 3.44 обозначено прямоугольником с надписью «Данные кэш-памяти вто-
рого уровня». Система должна следить за тем, какие строки находятся в кэш-па-
мяти второго уровня. Эта информация хранится во втором статическом ОЗУ, обо-
значенном на рис. 3.44 «Дескрипторы кэш-памяти второго уровня».
В случае отсутствия нужной строки в кэш-памяти первого уровня централь-
ный процессор посылает идентификатор строки, которую он ищет (адрес дескрип-
тора), в кэш-память второго уровня. Ответ (данные дескриптора) предоставляет
центральному процессору информацию о том, есть ли нужная строка в кэш-памя-
ти второго уровня. Если строка есть, центральный процессор получает ее. Пере-
дача данных осуществляется по 16 байтов, поэтому для пересылки целой строки
в кэш-память первого уровня требуется 4 цикла.