Для соединения процессоров UltraSPARC III с модулями памяти компания Sun разработала высокоскоростной интерфейс UPA (Ultra Port Architecture). UPA может воплощаться в виде шины, переключателя или сочетания того и другого. В различных рабочих станциях и серверах используются различные реализации UPA. Реализация UPA никак не зависит от процессора, поскольку интерфейс UPA точно определен и процессор должен поддерживать (и поддерживает) именно этот интерфейс.
На рис. 3.45 мы видим ядро системы UltraSPARC III: центральный процессор, интерфейс UPA и кэш-память второго уровня (2 статических ОЗУ). На рисунке также изображена микросхема UDB II (UltraSPARC Data Buffer II), функции которой мы обсудим ниже. Когда процессору нужно слово из памяти, сначала он обращается к кэш-памяти первого уровня. Если он находит слово, он продолжает выполнять операции с полной скоростью. Если он не находит слово в кэш-памяти первого уровня, он обращается к кэш-памяти второго уровня.
Хотя мы в главе 4 будем подробно обсуждать работу кэш-памяти, все-таки стоит сказать здесь о ней несколько слов. Вся основная память подразделяется на строки кэша (блоки) по 64 байта. В кэш-памяти первого уровня находятся 256 наиболее часто используемых строк команд и 256 наиболее часто используемых строк данных. В кэш-памяти второго уровня содержатся строки, которые не поместились в кэш-память первого уровня. Кэш-память второго уровня содержит линии данных и команд вперемешку. Они хранятся в статическом ОЗУ, которое на рис. 3.45 обозначено блоком с надписью «Данные кэш-памяти второго уровня». Система должна следить за тем, какие строки находятся в кэш-памяти второго уровня. Эта информация хранится во втором статическом ОЗУ, обозначенном на рис. 3.45 как «Теги кэш-памяти второго уровня».
В случае отсутствия нужной строки в кэш-памяти первого уровня центральный процессор посылает идентификатор строки, которую он ищет (адрес тега), в кэш-память второго уровня. Ответ (данные тега) предоставляет центральному процессору информацию о том, есть ли нужная строка в кэш-памяти второго уровня. Если строка есть, центральный процессор получает ее. Передача данных осуществляется по 16 байт, поэтому для пересылки целой строки в кэш-память первого уровня требуется 4 цикла.
Рис. 3.45. Базовая структура системы UltraSPARC III
Если требуемой строки в кэш-памяти второго уровня нет, ее нужно вызвать из основной памяти через интерфейс U PA. UP А в системе UltraSPARC III реализуется централизованным контроллером. Туда поступают адресные сигналы и сигналы управления от центрального процессора (или процессоров, если их больше одного). Чтобы получить доступ к памяти, центральный процессор должен сначала получить разрешение воспользоваться шиной. Когда шина предоставляется процессору, он получает сигнал с адресных выводов, определяет тип запроса и передает сигнал по нужному адресному выводу (эти выводы двунаправленные, поскольку другим процессорам в системе UltraSPARC III нужен доступ к отдаленным блокам кэш-памяти). Адрес и тип цикла шины передаются на адресные выводы за два цикла, причем в первом цикле выдается строка, а во втором — столбец, как мы говорили при обсуждении рис. 3.30.