Реклама:

В качестве второго примера процессора возьмем семейство UltraSPARC (производитель - компания Sun). Семейство UltraSPARC - это линейка 64-разрядных процессоров SPARC. Эти процессоры полностью соответствуют архитектуре Version 9 SPARC, также 64-разрядной. Они используются в рабочих станциях и серверах Sun и во многих других системах. Семейство включает в себя процессоры UltraSPARC I, UltraSPARC II и UltraSPARC III, которые имеют сходную архитектуру, но различаются датой выпуска и тактовой частотой. Далее мы будем говорить о процессоре UltraSPARC III, поскольку нам нужен конкретный пример, но архитектурные (то есть не зависящие от конкретной реализации) характеристики по большей части имеет силу и для других типов UltraSPARC.

UltraSPARC III представляет собой традиционную RISC-машину. Он полностью совместим с 32-разрядным процессором SPARC V8. Единственное, чем UltraSPARC III отличается от SPARC V9, - это поддержка команд VIS 2.0, которые разработаны для трехмерных графических приложений, декодирования формата MPEG в реальном времени, сжатия данных, обработки сигналов, выполнения Java-программ и передачи данных в сетях.

Процессор UltraSPARC III часто устанавливается в рабочих станциях, но изначально он разрабатывался в расчете на мультипроцессорные серверы с разделяемой памятью, применяемые в Интернете и корпоративных сетях. Иными словами, в каждую микросхему UltraSPARC III включены связующие элементы, необходимые для построения мультипроцессора.

Первая модель UltraSPARC III, появившаяся в 2000 году, работала на частоте 600 МГц и имела строки шириной 0,18 мкм на основе алюминия. В микросхемах содержалось 29 млн транзисторов. У компании Sun нет собственного производства процессоров, отвечающего новейшим технологическим требованиям, поэтому, сосредоточившись на проектировании микросхем и разработке программного обеспечения, она пользуется услугами подрядчиков, занимающихся непосредственно производством. В случае с UltraSPARC III таким подрядчиком выступает компания Texas Instruments (TI). В 2001 году, после модернизации технологической базы TI, началось производство микросхем с тактовой частотой 900 МГц и шириной строки 0,15 мкм; при этом алюминиевые проводники были заменены медными. К 2002 году ширина строки сократилась до 0,13 мкм, а тактовая частота увеличилась до 1,2 ГГц. Все эти микросхемы требуют входной мощности 50 Вт, поэтому проблемы с рассеиванием тепла для них актуальны в не меньшей степени, чем для Pentium 4.

Микросхемы CISC (наподобие Pentium 4) и RISC (как UltraSPARC III) неверно сравнивать только по тактовой частоте. Скажем, процессор UltraSPARC способен запускать по четыре команды за цикл, а это означает, что его скорость выполнения практически соответствует аналогичному параметру процессора, работающего на частоте 4,8 ГГц, но способного выполнять лишь по одной команде за цикл. Кроме того, в UltraSPARC имеется шесть внутренних конвейеров, из которых два - по 14 ступеней каждый, предназначены для выполнения целочисленных операций, два - для операций с плавающей точкой, один - для операций загрузки/сохранения и еще один для ветвления. Далее, в UltraSPARC реализована оригинальная технология кэширования, присутствуют более широкие шины, не говоря уже о других факторах, повышающих производительность. Свои преимущества есть и у Pentium 4. То есть сравнение двух совершенно разных микросхем на основании их тактовых частот не дает сколько-нибудь точных результатов применительно к той или иной конкретной задаче.

Микросхема UltraSPARC III содержит 1368 выводов в корпусе LGA (Land Grid Array), как показано на рис. 3.44. Выводы расположены в нижней части микросхемы в виде квадратной матрицы размером 37 х 37 (итого 1369), в которой отсутствует один вывод в нижнем левом углу. Разъем полностью соответствует расположению выводов на микросхеме, что исключает возможность некорректного монтажа.

UltraSPARC III

Рис. 3.44. Микросхема процессора UltraSPARC I

Процессор UltraSPARC III содержит 2 внутренних блока кэш-памяти первого уровня: 32 Кбайт для команд и 64 Кбайт для данных. Кроме того, предусмотрены кэш предвыборки емкостью 2 Кбайт и кэш записи аналогичной емкости; последний аккумулирует операции записи и передает их кэшу второго уровня крупными блоками, тем самым оптимизируя потребление пропускной способности. Как и у Pentium 4, здесь кэш-память второго уровня находится вне кристалла процессора, но, в отличие от Pentium 4, процессор UltraSPARC III не объединен в один корпус с кэш-памятью второго уровня (она отделена от контроллера кэша и логики обнаружения блоков кэша), поэтому разработчики вправе выбирать для реализации последней любые микросхемы.

Решение объединить кэш-память второго уровня с процессором (как в Pentium 4) или разделить ее с процессором (как в UltraSPARC III) обусловлено выбором между различными техническими преимуществами, а также особенностями компаний Intel и Sun. Внешняя кэш-память более емкая и гибкая (объем кэш-памяти процессора UltraSPARC III варьирует от 1 до 8 Мбайт; кэш-память процессора Pentium 4 имеет фиксированный объем 512 Кбайт), но при этом она работает медленнее из-за того, что расположена дальше от процессора. Для обращения к внешней кэш-памяти требуется больше сигналов. В частности, для соединения между UltraSPARC III и кэшами второго уровня выделяется 256 бит, а значит, это соединение позволяет за один цикл передать блок данных кэша объемом 32 байта.

Что касается производственных особенностей, компания Intel является производителем полупроводниковых приборов, поэтому у нее есть возможность разрабатывать и выпускать собственные микросхемы для кэш-памяти второго уровня и связывать их с центральным процессором через собственный интерфейс с высокими техническими характеристиками. Компания Sun, напротив, является производителем компьютеров, а не микросхем. Она иногда разрабатывает собственные микросхемы (например, UltraSPARC III), но поручает их производство предприятиям, выпускающим полупроводниковые приборы. В принципе, компания Sun использует готовые микросхемы, имеющиеся в продаже. Статические ОЗУ для кэш-памяти второго уровня можно приобрести у различных производителей, поэтому у компании Sun не было особой необходимости разрабатывать собственные ОЗУ. А если ОЗУ не разрабатывается специально, то нужно устанавливать кэш-память второго уровня отдельно от центрального процессора.

Для соединения процессоров 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 цикла.

UltraSPARC III

Рис. 3.45. Базовая структура системы UltraSPARC III

Если требуемой строки в кэш-памяти второго уровня нет, ее нужно вызвать из основной памяти через интерфейс U PA. UP А в системе UltraSPARC III реализуется централизованным контроллером. Туда поступают адресные сигналы и сигналы управления от центрального процессора (или процессоров, если их больше одного). Чтобы получить доступ к памяти, центральный процессор должен сначала получить разрешение воспользоваться шиной. Когда шина предоставляется процессору, он получает сигнал с адресных выводов, определяет тип запроса и передает сигнал по нужному адресному выводу (эти выводы двунаправленные, поскольку другим процессорам в системе UltraSPARC III нужен доступ к отдаленным блокам кэш-памяти). Адрес и тип цикла шины передаются на адресные выводы за два цикла, причем в первом цикле выдается строка, а во втором - столбец, как мы говорили при обсуждении рис. 3.30.

В ожидании результатов центральный процессор вполне может заниматься другой работой. Например, отсутствие нужной команды в кэш-памяти вовсе не мешает выполнению одной или нескольких команд, которые уже вызваны и каждая из которых может обращаться к данным, которых нет в кэш-памяти. Таким образом, сразу несколько транзакций с UPA могут ожидать выполнения. UPA может справляться с двумя независимыми потоками транзакций (обычно это чтение и запись), каждый поток проходит с несколькими задержками. Задача централизованного контроллера - следить за всем этим и производить обращения к памяти в наиболее рациональном порядке.

Данные из памяти поступают блоками по 8 байт. Для большей надежности они содержат 16-разрядный код исправления ошибок. Можно запрашивать весь блок кэш-памяти (8 байт) или даже меньше. Все входные данные поступают в буфер UDB и хранятся там. Буфер UDB нужен для того, чтобы дать возможность центральному процессору и памяти работать асинхронно. Например, если центральному процессору необходимо записать слово или строку кэш-памяти в основную память, он может не ждать доступа к UPA, а сразу записать данные в буфер UDB, который доставит их в память позднее. UDB также генерирует код исправления ошибок. Отметим, что описание процессоров UltraSPARC III и Pentium 4 в этой книге очень упрощено. Тем не менее суть их работы изложить удалось.

Pentium 4 и UltraSPARC III - высокопроизводительные процессоры, разработанные для создания быстродействующих персональных компьютеров и рабочих станций. Однако существуют и другие компьютеры - так называемые встроенные системы. Именно их мы здесь рассмотрим на примере процессора 8051.

Не будет преувеличением сказать, что практически любое электронное устройство стоимостью более 100 долларов содержит встроенный компьютер. Телевизоры, сотовые телефоны, электронные секретари, микроволновые печи, видеокамеры, видеомагнитофоны, лазерные принтеры, системы охранной сигнализации, слуховые аппараты, электронные игры и многие другие устройства (их можно перечислять до бесконечности) управляются компьютером. При этом упор делается не на высокую производительность, а на низкую стоимость встроенного компьютера, что приводит к несколько другому соотношению достоинств и недостатков по сравнению с процессорами, которые мы обсуждали до сих пор.

В главе 1 мы уже упоминали о том, что в настоящее время наиболее распространенным микроконтроллером является 8051. Такая популярность, в первую очередь, обусловлена его низкой стоимостью. Как мы сможем убедиться в дальнейшем, 8051 - это небольшая микросхема, к которой очень легко подключать другие устройства. Ее физическая компоновка показана на рис. 3.46.

Pentium 4/ || Оглавление || 8051/