Вступление
В этой работе я постараюсь, как можно шире описать все, ну или почти все виды микропроцессоров и микропроцессорных технологий, существующих со времён, когда компания Intel выпустила первый в мире 16 разрядный процессор под маркировкой «8086».Был это 1978 год.… И, как говорится, понеслось: 16,32,64 разряда, разрабатывались новые и всё более совершенные технологии, совершенствовалось производство, падала цена… что для конечного пользователя не так уж и маловажно и зачастую является определяющим решением при покупке компьютера. Да и сейчас не каждый решится выложить $1200 за 64-х разрядный процессор Itanium от Intel’а.
Различия между CISC и RISC процессорами
Аббревиатура RISC (Reduced Instruction Set Computer) появилась в середине 80-х годов XX века, когда ученые из Беркли сообщили о создании "компьютера с ограниченным набором команд". Именно в те времена произошло великое разделение, и остальные компьютеры стали называть CISC (Complete Instruction Set Computer - компьютеры со сложным (расширенным) набором команд). Так, к CISC-процессорам относятся Intel 80x86 и Pentium, Motorola MC680x0, DEC VAX. Класс RISC-процессоров составляют такие монстры как Alpha, Sun, Ultra SPARC, MIPS, PowerPC и некоторые другие.
RISC-процессоры характеризуются следующими особенностями: удалены сложные и редко используемые инструкции; все инструкции имеют одинаковую длину, что позволяет уменьшить сложность управления процессором и увеличить скорость обработки команд; отсутствуют инструкции, работающие с памятью напрямую, все данные загружаются только из памяти в регистр и наоборот; отсутствуют операции работы со стеком; применение конвейера параллельных вычислений; большинство операций производятся за один такт микропроцессора.
Тактовая частота RISC-процессоров (при прочих равных условиях) выше CISC-процессоров, более того, в RISC - микропроцессорах появилась возможность работы различных его составляющих на разных тактовых частотах. Поэтому при указании тактовой частоты процессора выбирают его максимальную частоту.
Аббревиатура CISC означает Complete Instruction Set Computer – компьютер со сложным (полным) набором команд. Несмотря на то, что первый CISC-процессор был разработан компанией IBM (она до сих пор их использует в мейнфреймах типа IBM ES/9000), лидером производства считается компания Intel. CISC отличается малым количеством регистров общего назначения, большим количеством машинных команд (откуда следует и название). Это приводит к усложнению декодирования инструкций, что в свою очередь приводит к расходованию аппаратных ресурсов. Слабость CISC архитектуры заключается в том, что 80 процентов вычислений процессора приходилось на 20 процентов команд. Хоть в RISC процессорах как раз и используются только 20 процентов этих команд, но им требуется сложное программное обеспечение.
Процессоры, основанные на CISC архитектуре
16-ти разрядные процессоры i8086 - i80286
Процессоры вообще появились очень давно - в середине 50-х годов теперь уже прошлого века, правда, сначала в виде монстров, работающих в компьютере размером со среднее здание. Затем началась эра миниатюризации, и в производстве появились первые микропроцессоры. Компьютеры на их базе уже умещались не только в комнате, но даже на рабочем столе. Характерная черта этих процессоров - они были 8-битными.
8086
Следующим этапом развития камней становится 1978 год. Именно тогда Intel выпустил свой первый 16-разрядный проц с маркировкой «8086». Для своего времени этот камень имел неплохие характеристики: тактовая частота 5 МГц (позже появились процессоры 8 и 10 МГц), производительность 0,33 MIPS, технология 3 мкм, 29 тыс. транзисторов составляли кристалл, 1 Мб адресуемой оперативной памяти, конвейер 8086 имеет 6-байтную очередь инструкций. И самый главный бонус - инструкции стали уже с 16-битными операндами, то есть камни перешли на качественно новый уровень. Регистры и система команд были переработаны (в отличие от 8080), хотя некоторое сходство проследить можно. Это процессор получил признание общественности, но из-за дороговизны многие не могли его себе позволить.
8088
Через год на рынок выходит Intel-процессор 8088. Сущность ядра не изменилась, была немного повышена тактовая частота (стала около 10 МГц) и изменена шина данных: она стала 8-битной (напомню, что шина данных у 8086 16-разрядная). Это было сделано для снижения цены на камни и системы в целом, но, как ты понимаешь, любое уменьшение разрядности шины не приводит ни к чему хорошему, и поэтому модель 8086 получила довольно сильное общее снижение производительности. Ее предок, при равной тактовой частоте, работал на 20-60% быстрее, чем 8088! Функциональные различия этих процессоров, обусловленные разной разрядностью шины, проявляются только в способе подключения 8- и 16-разрядных внешних девайсов. Больше отличий от 8086 не объявлялось, и поэтому очень часто 8088 считают модификацией 8086. У этих процессоров уже включена возможность подключения сопроцессора (например, математического – он был необязательным и, к тому же, довольно дорогим). Команда выполняется в среднем за 12 тактов синхронизации. Эти камни стояли в IBM XT(позже еще и в IBM Turbo-XT) машинах и были предками современных железных мозгов наших компов.
i80286
В 1982 году Intel выпускает следующего представителя х86 семейства: Intel i80286 - процессор, в народе именовавшийся "двойкой". Этим процессором ознаменовывается попытка Интела ввести защищенный режим в массы: 286 камень поддерживал переход в него. Его характеристики: 134000 транзисторов (технология 1,5 мкм), адресация до 16 Мбайт физической памяти, способность адресоваться к виртуальной памяти размером до 1 Гбайт, 16-битная шина данных и очередь команд в 6 байт, частота от 10 МГц. Если кратко, то он имел 2 значительных плюса: защищенный режим и виртуальная память до 1 Гб. В начале 80-х годов эти преимущества 286 проца реализованы не были. Интел дал только задатки, но софтварный мир не был готов их реализовать - основной ОС был DOS, по определению работавший в реальном режиме и к тому же однозадачный. А виртуальная память в 1 Гб была лишней, особенно если вспомнить, что винт среднего ПК был не больше 100 метров. Кстати, для переключения в защищенный режим была введена специальная инструкция, обратный же переход был возможен только с помощью кнопки reset ;-).
Появление псевдомногозадачности (пседво потому, что если в твоей машине 1 процессор, то в определенный, пусть и малый момент, твоя ОС выполняет какую-то 1 задачу, хоть и переключается между ними очень быстро, создавая такой эффект) позволило создавать многозадачные ОС, типа Unix, Linux, BeOS и, конечно, винды. Дальнейшее развитие получил механизм виртуальной памяти, и начиная с этого проца ее объем стал 1 Гб для каждой задачи. Стали активней применяться сопроцессоры: уже у многих 286 камней был математический сопроцессор, маркированный 80287, что позволяло повысить производительность системы в целом. Программная модель процессора особых изменений не претерпела: основа 8086 сохранилась, но были добавлены новые инструкции для работы с защищенным режимом и инструкции, использующие PIO (Programmable Input/Output), что позволило повысить производительность работы с оперативной памятью. За счет таких архитектурных нововведений удалось повысить производительность процессора: 80286 с тактовой частотой 12,5 МГц работает более чем в 6 раз быстрее, чем его предшественник 8086 с частотой 5 МГц. В заключение скажу, что именно этот камень стал самым популярным, и именно он продвинул Интел в нишу домашних ПК.
Появление первых 32-х разрядных камней
i80386
i80386, выпущенный в 1985 году, стал первым полностью 32-битным процессором. Характеристики: 275000 транзисторов, частота от 16 до 32 МГц. Его основное отличие от предшественников – 32-битные шины данных и адреса. Также изменился принцип сегментации памяти, а точнее - был убран барьер в 64 Кб для 1 сегмента. Сейчас для защищенного режима он стал 4 гигабайта. Размер виртуальной памяти в очередной раз увеличился: 386 камни поддерживали виртуальную память до 64 терабайт. Внутреннюю очередь команд увеличили до 16 байт. Существовала возможность подключения сопроцессора Intel387 или даже от 286 машины - Intel287, правда, в последнем варианте производительность была меньше. Именно этот процессор в полной мере внедрил в массы защищенный режим, так, начиная с i80386 можно использовать многозадачность на полную мощность. Процессор i80386 получил широкое распространение - было выпущено несколько модификаций с улучшенными характеристиками, например, i80386SX, его основное отличие от предка - урезанные шины данных (16-разрядная) и адресная шина (24 разряда). Это объясняется опять же желанием снизить цену на проц. Характеристики не изменились, но из-за такого урезания шин камень иногда считают 16-разрядным. Именно после выпуска первого мода, прародителя - i80386 - стали называть 386DX. В 1990 году выпускают Intel386SL, его нововведение - средства управления энергопотреблением, то есть явно прослеживается ориентация на рынок мобильных компьютеров.
i80486
Этот процессор - полностью 32-битный, и представляет он второе поколение 32-битных камней от Интел. Технические характеристики: 1,25 млн. транзисторов, частота от 25 до 50 МГц, кэш первого уровня - 8 Кб, второго уровня до 512 Кб, адресная шина 32-разрядная, шина данных 32-разрядная (20-50 МГц). В 486 камне было очень много нововведений, позволяющих использовать его и сейчас, именно с него процы приобретают привычное для нас строение и возможности.
Итак, вот что внес Интел в свою "четверку": введен кэш первого уровня, и появились средства, необходимые для построения мультипроцессорных систем. Введены буферы отложенной записи, которые задерживали запись данных в память при занятой шине данных, что позволяло камню выполнять инструкции непрерывно, не ожидая освобождения шины. Увеличена производительность локальной шины, что позволило передавать слово данных в каждом такте, а не через один, как было раньше. Переработано ядро, и сейчас чаще всего встречающиеся инструкции выполняются за 1 такт, а это удвоило среднюю производительность, по сравнению с 386, при равных частотах. Проведено очередное увеличение очереди команд, она стала равна 16 байтам. Уже на многих четверках присутствовал сопроцессор, совместимый с 387. Конечно же, вводятся новые инструкции, позволяющие рациональнее работать с памятью и проводить математические операции. И, как и раньше, Интел выпускает несколько модификаций для данной модели: P4 Intel486 DX - полный вариант (процессор + мат. сопроцессор), кэш с прямой записью. Затем появляется P23 Intel486 SX (1991 год) - вариант без сопроцессора, кэш с прямой записью. Intel486 SL enchanced (1992 год) - проц. со встроенными средствами уменьшения энергопотребления. P24 Intel486 DX2 (1992 год) - проведено удвоение тактовой частоты. P23T Intel486 SX (или DX) (1992 год) OverDrive, основное его отличие - архитектура класса Pentium, хотя системная шина от 486. Вроде бы так Интел подошел к архитектуре пня, но в 1994 (через год после выпуска первого представителя класса Pentium) выпускается последняя модификация 486 камня: Intel 486 DX4. Кодовое имя: P24C, технические характеристики: 1,6 млн. транзисторов, тактовая частота от 75 до 100 МГц; кэш первого уровня: 16 Кб, кэш второго уровня на материнской плате (до 512 Кб), процессор 32-разрядный, шина данных 32-разрядная (25-33 МГц), адресная шина 32-разрядная. На этом история 486 камня заканчивается, больше модификаций не было, и Интел переходит на новый виток: выпуск процессоров с маркировкой Pentium.
INTEL PENTIUM (P5)
В 1993 году Интел выпускает продолжателя рода 32-битных процессоров: Intel Pentium. Его технические характеристики: использовалось 3.1 млн. транзисторов, технология 0.8 мкм, частота 60-66 МГц; кэш первого уровня: 16 Кб; кэш второго уровня на материнской плате (до 1 Мб), шина данных 64 разрядная (60-66 МГц); адресная шина 32-разрядная. Использовался Socket 4. Из самых важных новшеств – суперскалярность. То есть процессор мог за один такт выпускать с конвейера до 2 инструкций. Пентиумы первого поколения (кодовое название P5) большого распространения не получили: они были очень дорогими, если сравнивать с аналогичными 486, при производстве сопроцессора была допущена ошибка. Хоть и некритическая, но, тем не менее, Интел обменивал уже проданные процессоры на профиксенные новые.
Расцвет 32 разрядности
Intel Pentium Pro
Это первый процессор шестого поколения. Основным отличием от предыдущих было введение кэш-памяти второго уровня, работающей на полной частоте ядра. Технические характеристики: 5,5 млн. транзисторов в ядре, 15,5-31 млн. транзисторов на кэш-память, технология от 0,5 до 0,35 мкм, тактовая частота от 150 до 200 МГц, кэш первого уровня 16 Кб, кэш второго уровня до 2 мегов, адресная шина 32-разрядная, шина данных 64. Использовался сокет 8. Нововведения имели две стороны: ускорение работы на новых системах и приложениях, но замедление на 16-битных и в среде 95 виндов. Основной сферой применения этого камня считали серверную нишу.
Intel Pentium ММХ
В 1997 году, наконец-то, появляется процессор с некоторыми встроенными средствами поддержки мультимедиа. Основная ставка Интел в этом процессоре - ускоренная обработка изображения и аудиоданных. Правда, высказывались мнения о бесполезности введения дополнительных инструкций, так как проц тратил время на распаковку/запаковку данных. Технические характеристики сильно от предка не отличались, были только добавлены новые инструкции, и повышена максимальная тактовая частота до 233 МГц. Такие камешки все еще имеют немалое распространение ввиду малой цены и более-менее реальных возможностей. Например, средненький сервак для них - работа самое то.
Intel Pentium 2
В мае 1997 года общественность получает от Интел очередной подарок: свеженький камешек с гордым именем Intel Pentium 2. Новое имя не принесло особых улучшений архитектуры: второй пень был собран на ядре Pentium Pro, правда, с увеличенной тактовой частотой. Яркой особенностью вторых пеньков стала модульная конструкция с разъемом типа Slot 1 и картриджем SECC (Single Edge Contact Cartridge). Такая хитрая сборка предназначалась как для простых смертных, так и для серваков, которые могли быть и мультипроцессорными. Технические характеристики: тактовая частота от 233 до 450 МГц, технология 0,25 микрон, примерно 7,5 миллионов транзисторов в ядре, кэш-память 2 уровня 512 Кб, первый уровень 32 Кб. В кристалл встраивается термодатчик, что позволяет мерить температуру прямо на ядре.
Intel Pentium 3 (кодовое название katmai)
Совсем недавно третий пень считался мерой крутости компа, народ брал любой комп, если там есть "пентиум 3"! Так давай же посмотрим, что в нем крутого: введено расширение SSE (Streaming SIMD Extensions), оно ориентировано на инструкции, которые выполняются одновременно над группой операндов с плавающей точкой. Были добавлены новые 128-разрядные регистры ХММ, предназначенные для инструкций класса SSE. Технические характеристика камня: 0,18 мкм технология, 28 млн. транзисторов составляют ядро, 256 Кб вторичного кэша, работающего на частоте ядра, тактовая частота до 1 ГГц.
Intel Pentium 4 (Willamette)
Последнее на сегодняшний день детище компании Интел на рынке 32-разрядных камней. Является идеологическим продолжателем рода х86, но, уже по классификации Интела, относится к 7 поколению. Программная модель проца в очередной раз была расширена за счет введения нового набора инструкций, называемого SSE2. В архитектуре тоже появились некоторые новшества: введены новые принципы микроархитектуры ядра, называемые NetBurst, которые изначально ориентированы на высокие частоты (минимальная - 1,4 ГГц), частота системной шины - 400 МГц. Правда, это заставило увеличить количество транзисторов в ядре до 48 млн., с технологией 0,18 мкм. Основная направленность - интернет и мультимедийные приложения.
32 разрядные процессоры от AMD
Но не только Интел выводит свои процессоры на рынок настольных ПК. У этой могучей фирмы существовали и, как ни странно, существуют конкуренты, самый главный из который - AMD. Вот какие камешки они выпускали.
AMD K5
Программно совместимый с Pentium процессор, предназначенный для установки в socket 7. Тактовая частота доходила до 166 МГц. В отличие от "чистых" пней, камни от АМД имели некоторые задатки 6 поколения: усложненный конвейер, изменение порядка вычислений на ходу, изменение некоторых регистров.
AMD K6 (AMD K6 MMX)
Процессор был выпущен на месяц раньше второго пня, но при этом сильно напоминает Pentium 2, только без вторичного кэша. В нем было введено управление энергопотреблением, как и у интеловского собрата. Официально было доказано, что производительность K6 с 200 МГц была такой же, как у Celeron'а с 300 МГц! При этом программные модели были полностью совместимы.
AMD K6-2
Развитие линейки К6 от AMD. Новым было введение технологии 3DNow!, которая являлась расширенной технологией ММХ. Частота внешней шины была поднята до 100 МГц, улучшена работа с кэшем. Для правильной работы этого камня в 95 окнах необходимо слить с сайта AMD программный патч, позволяющий правильно определить проц. В 2000 году был выпущен K6-2+ - проц для 7 сокета, но уже с интегрированным кэшем в 128 Кб, который работал на частоте ядра.
AMD K6-3 (Sharptooth)
Это самый мощный процессор для сокета 7. Он позиционировался как конкурент третьего пня, и действительно, по многим характеристикам и тестам он не только не уступает ему, но и превосходит. Главный плюс этого камня - трехуровневая система кэширования памяти. То есть у этого камня существуют следующие типы кэш-памяти: кэш первого уровня, размер 64 Кб (32 на данные, 32 на инструкции), что в два раза больше чем у второго и третьего пней; кэш второго уровня – 256 Кб, причем располагающийся на одном кристалле с ядром, и как следствие, работающий на полной частоте ядра (для сравнения: вторичный кэш у Pentium 3 имеет либо меньший, либо равный объем, но работает на половине частоты ядра, а селероны хоть и имеют кэш второго уровня, работающий на полной частоте ядра, но вот объем его только 128 Кб). Кэш-память третьего уровня устанавливается на материнскую плату. Максимальный объем кэша третьего уровня равен 2 Мб. Естественно, что скорость обмена с этим кэширующим элементом будет ниже (около 800мб/сек), но все же гораздо больше, чем с оперативной памятью. Архитектурные особенности AMD K6-3 позволяют относить его к 66 поколению процессоров.
AMD Athlon (К7)
Этот процессор был признан лучшим по многим показателям в 1999 году. И сейчас он не потерял своего величия. Вот основные отличия от предшественников: введение новых инструкций, оптимизирующих работу по распознаванию речи, образов, воспроизведению цифрового звука, ускоряющих работу софт-модемов и т.д. Было выпущено несколько моделей этого проца, основанных на несколько различных ядрах, но программная модель оставалась неизменной. Так, атлон первой модели был таким: 0,25 мкм технология, первичный кэш в 128 Кб, впервые вводится программируемая скорость обмена с вторичным кэшем, а его объем от 512 Кб до 8 Мб; он использовал слот типа А. Второй атлон отличался от собрата только уменьшением технологии до 0,18 мкм и, соответственно, ростом тактовой частоты. Третья модель атлонов не получила существенных дополнений и изменений. А в четвертой был введен кэш второго уровня, работающий на полной тактовой частоте и располагавшийся на кристалле проца, правда, из-за 8-байтной разрядности, он уступал по скорости кэшу третьего пня. Также было изменено крепление: вводится новый сокет типа А (Socket-462).
64-разрядные технологии AMD и Intel
Вспомним развитие компьютеров и открытых архитектур в частности. Все началось с того, что Intel разработал принципиально новый кремниевый девайс под диковинным названием “процессор”. И понеслось . 8, 16, 32 разряда. Казалось, что процессоры модернизируются так быстро, что под новые камни не существует отлаженных операционок. Отчасти так случилось и с принципиально новой 64-разрядной технологией.
Технология
У каждого принципиально нового проекта существует своя технология. 64-разрядные процессоры не исключение. Давай рассмотрим, какая технология выполнена лучше и сочетает в себе все удобства для пользователя. Кстати говоря, на технологической основе и строится основная архитектура девайса, поэтому очень важно знать ее принципы.
Intel придерживается стандарта EPIC (Explicitly Parallel Instruction Computing, явный параллелизм на уровне команд). Данная технология оттачивалась специально для крупных серверов и некоторых рабочих станций. Возможности EPIC огромны: во-первых, это высокая скорость выполнения операций с плавающей запятой. Во-вторых, поддержка распараллеливания задач (практически, подобие технологии SMP). И, наконец, благодаря улучшению считывания данных из памяти, скорость обмена информацией резко возрастает.
Вообще, история появления EPIC весьма занятна. Еще в далеком 1994 году Intel и Hewlett Packard подписали договор о создании новой технологии, применяемой для крупных серверов и рабочих станций. Мол, я тебе процессор, а ты мне софт :). Именно поэтому первые кремниевые камни работали только под системами HP. В 1997 году EPIC не был утопическим стандартом, технология была разработана до конца. Intel представил результаты работы по созданию суперархитектуры. В мае 1999 года корпорация начала сбор средств для материализации своих задумок. Фонд составил 250 млн. долларов и назывался Intel 64 Fund. Спустя два года первые камни уже поступили в продажу. О цене я молчу, так как она отличалась от сегодняшней в разы :). Сразу с выпуском первого процессора, в инете было доступно руководство по архитектуре и регистрам Itanium.
AMD избрал иной путь к 64-разрядности. Производители лишь прибавили 32 к уже имеющимся разрядам и получили новую архитектуру x86-64. Что примечательно, новая технология отличается от старой лишь префиксом 64. Хотя, естественно, в новом процессоре был сделан ряд улучшений, в первую очередь ядра процессора. Это позволило получить новый уровень быстродействия как для 32, так и для 64-разрядных систем.
Итоги: AMD переходит на новый уровень без применения новых технологий. Это приводит к полной совместимости как 32, так и 64-разрядных приложений. Intel же стремится показать себя лишь в 64 разрядах. Исходя из того, что последние в наше время еще не обрели особой популярности, я присуждаю победный балл в первом раунде процессору AMD 64. Думаю, это будет справедливым решением :).
Архитектура
Как я уже сказал, из технологии следует архитектура. В новых камешках были сделаны большие изменения, которые повлекли за собой производительность и совместимость со старыми платформами.
Начнем с AMD. Исходя из того, что технология осталась практически неизменной, архитектура проца не стала революционной. Были добавлены режимы совместимости (о них я расскажу позже) и, конечно же, 64-битные адресные регистры. Они позволяют расширить адресуемое пространство оперативной памяти и избавиться от существующего ограничения в 4 Гб, которое создает ощутимые трудности при построении систем обработки информации. Для ускорения работы с памятью используется технология NUMA, позволяющая работать напрямую с памятью, минуя системную шину и набор микросхем. Такое нововведение было названо HyperTransport и появилось в первом чипсете Golem.
В Intel все намного сложнее. Из-за интенсивного пути развития, компания в корне поменяла архитектуру. Вот что появилось в Itanium:
1. Режимы совместимости со старыми платформами. Без них никак не обойтись: 64-разрядная архитектура еще не прижилась в компьютерном мире.
2. Тщательная обработка ошибок. Теперь Itanium’у сложно ошибиться :), так как против ерроров созданы две независимых технологии. Главной является EMCA, которая позволяет вести контроль и протоколирование всех ошибок, возникающих во время работы процессора. И второстепенная технология ECC, позволяющая предварительно обрабатывать код и вести контроль четности. Надежный процессор привлекает внимание покупателей, особенно на производстве, где цена ошибки – смерть :).
3. Поддержка многопроцессорности. Так как компания Intel ориентировала свой процессор для крупных серверов, то позаботилась и о мультипроцессорности. Камень был снабжен рядом микросхем, которые позволяют вести быстрый обмен с памятью. Теперь для работы с мозгами используются методы чередования, буферизации и деления модулей памяти. При этом камень работает с 64 гигабайтами оперативки с пропускной способностью 4,2 Гб/сек.
Когда я читал про архитектуру IA-64 (аббревиатуру, думаю, расшифруешь сам), я действительно проникся фичами, которые были придуманы Intel’ом. Конечно, AMD боролся за совместимость (как выяснится позднее), но остаться равнодушным к новейшей архитектуре невозможно :). Поэтому присуждаю законную победу процессору Itanium, который сравнял счет во втором раунде.
Совместимость
Суди сам: производитель создает девайс, отточенный под новую архитектуру. Программист, матерясь и изучая новые мануалы языка, пишет операционки и софт под неизвестно откуда взявшиеся разряды :). Но ни тот ни другой не думают о бедном юзере, для которого переход на новую платформу будет весьма болезненным. В этой ситуации существует два выхода – либо забыть об 32 и 16-разрядности и целиком отдаться 64 битам, либо воспользоваться специальными режимами совместимости, которые были любезно предоставлены производителем. А система совместимости, кстати, сделана на совесть как в Itanium, так и в AMD.
Начнем с первого. Intel пошел логически верным путем и создал ряд регистров для полной совместимости старых приложений. В итоге получаем, что все 64-разрядные инструкции выполняются как обычно, иные же обрабатываются технологией IA-32. Эмуляция есть эмуляция, ни о какой производительности при этом и речи быть не может, поэтому Itanium целиком и полностью ориентирован для 64-разрядных платформ.
В AMD все намного сложнее. Для улучшения производительности со старыми платформами были придуманы специальные режимы. Поговорим о них подробнее.
Архитектура AMD 64 предусматривает два главных режима работы: Long и Legacy. В первом открываются все прелести технологии x86-64. Для полной совместимости над старыми приложениями существует так называемый подрежим совместимости, в котором способны обрабатываться 32/16-разрядные инструкции. В режиме Legacy процессор работает по принципу обычной x86-архитектуры. Козырем такой системы режимов является то, что процессор можно эксплуатировать до выхода стабильных релизов 64-разрядных операционок. Помимо этого существует несколько преимуществ x86-64 над IA-64:
1. Быстродействие в обработке 32-разрядных инструкций. Связано с тем, что после перехода в режим совместимости не происходит никакой эмуляции, процессор обрабатывает данные с большой скоростью. Этого нет в Itanium, поскольку там все инструкции выполняются в 64 разрядах.
2. Полная совместимость с x86-архитектурой. В Itanium подобное реализовано не полностью.
3. Одновременная работа 16/32/64 приложений. Благодаря введению режимов, становится возможным обрабатывать ряд разных инструкций одновременно. Это, опять-таки, сказывается на производительности и улучшает совместимость.
Думаю, что я убедил тебя согласиться с присвоением победного балла AMD 64, у которого с совместимостью не было и не будет никаких проблем. Учитывая, что 64-разрядная архитектура не заменяет старые, быстродействие в иных платформах играет очень большое значение. Итог трех раундов: 2:1 в пользу AMD.
Применение
Настало время для вопроса: “Зачем все это?” Неужели нельзя обойтись старой 32-разрядной архитектурой и не гнаться за нововведениями?
Intel изначально поставил перед собой задачу – выполнить распараллеливание процессов в одном кремниевом девайсе. Отчасти он своего добился, и Itanium редко когда встретишь на рабочей станции пользователя. Как правило, этот проц юзают на мощных серверах с большими базами данных либо в банковских системах, где нельзя ошибаться (помнишь, я говорил про анализ ошибок?). AMD же ориентировался как нечто среднее между 32 и 64 разрядами. Конечно, он встречается в крупных серверах, но также может использоваться в обычных рабочих станциях, ибо отточен как под x86-64, так и под x86-архитектуру.
Нелишним будет сказать и про операционные системы, которые корректно поддерживають описываемые камни. Это, конечно же, WinXP 64, а также пингвин с поддержкой 64-разрядных девайсов. Хотя, как я уже говорил, AMD совершенно неприхотлив к операционкам и будет работать даже на Win9x :).
Итог как всегда прост. Победный балл получает Intel за принципиально новые сферы применения своего детища Itanium. Счет: 2:2.
Цена
И, наконец, самый главный вопрос, волнующий душу любого человека – цена новинок. Разумеется, если за новую технологию будут просить бешеные деньги, то ни к чему хорошему это не приведет. Посмотрим, что мы имеем в нашем случае.
Intel просит за свое изобретение ни много ни мало $1200. Причем раньше девайс стоил в три раза дороже: около $4k. Учитывая, сколько будет стоить материнка под камень, можно сделать вывод – денег на сервер придется потратить немало :).
С AMD все намного проще. Цена на Athlon 64 составляет всего $417. Остальные 64-разрядные камни стоят от $300 до $600, что значительно ниже интеловских цен. Впрочем, так было всегда, цена мешала Интелу захватить компьютерный рынок и избавиться от своего главного конкурента. Хотя их жадность оправдана: производители никогда не искали легких путей, а дарили миру новые технологии. Последние слизывались ушлыми работниками AMD :).
На этой оптимистической ноте, я присуждаю последний в нашем поединке балл процессору AMD. Время объявить финальный счет: 3:2 в пользу x86-64. Примите мои поздравления :).
Камни, которые мы потеряли
Процессоры Cyrix
Эти камешки были и остаются процессорами пятого поколения. В них нет разделения кэша на данные и инструкции (как сделано у подавляющего большинства х86). Эти процы, как правило, имеют электрическую совместимость с первыми пнями, что позволяет устанавливать их в пентиумовские материнки. Хотя есть программная совместимость с классом Pentium, все инструкции интеловских собратьев Cyrix реализовать не сумела, и поэтому многие программы сравнивают этот камень пятого поколения всего лишь с 486. Отличительные особенность Cyrix'овских камней: фиксированный коэффициент умножения 2, тактовые частоты от 55 МГц до 75 МГц, то есть не совсем стандартные, что вызывало некоторые трудности при работе. Некоторые программы не могли корректно работать на этих процессорах, в силу своеобразного выполнения программных задержек (вскоре Cyrix выпустила патчи, которые можно скачать с ftp://ftp.cyrix.com). Также выпускались усовершенствованные варианты этого камня: Cyrix 6x86mx, инструкции которого включали расширение ММХ. Сейчас Cyrix куплена IBM и процессоров больше не выпускает.
Камни от IDT (Integrated Device Technology)
Эта компания выпускала камешек IDT-C6, называемый Winchip. Это был дешевый, хотя и довольно медленный камешек для сокета 5. По архитектуре этот процессор близок к 486, но имеет очень малое энергопотребление и тепловыделение. Затем был выпущен Winchip-2 - проц для 7 сокета, имеющий расширения ММХ и 3Dnow! Тактовые частоты 200-300 МГц
Процессоры, основанные на RISC архитектуре
Архитектура процессора UltraSPARC III и ее особенности
Таблица 1. Основные технические характеристики процессора UltraSPARC III.
Технология
25 um CMOS 6 слоев металла
Частота
600+ МГц
Производительность на частоте 600 МГц
35+SPECint95, 60+ SPECft95
Площадь кристалла
330 мм2
Потребляемая мощность
70 Вт / 1.8 В
Число транзисторов
RAM - 12 млн. Logic - 4 млн.
Корпус
LGA 1200 выводов
Таблица 2. Особенности архитектуры (организации) процессора UltraSPARC III.
Исполнительные устройства
4 целочисленных, 2 плавающих
Конвейер
14 ступеней
L1 кэши (накристальные)
4-канальный кэш данных — 64 КБ
4-канальный кэш команд — 32 КБ
4-канальный кэш предвыборки — 2 КБ
4-канальный кэш записи — 2 КБ
L2 кэши (внешние)
1, 4 или 8 МБ накристальная таблица тэгов
Интерфейсы
3 интегрированных интерфейса (системный интерфейс, интерфейс с основной памятью, интерфейс с L2-кэшем)
Поддержка многопроцессорности
Возможность масштабирования до 1000+ процессоров
Совместимость
Полная программная совместимость с UltraSPARC-I,II
Краткое описание архитектуры
UltraSPARC III представляет собой высокопроизводительный суперскалярный микропроцессор, предназначенный для использования в мощных рабочих станциях и серверах. Он ориентирован на работу в масштабируемых микропроцессорных комплексах. В его состав входят следующие основные функциональные блоки: шесть исполнительных устройств (4 целочисленных и 2 плавающих); кэш-памяти команд и данных объемом 32 КБ и 64 КБ соответственно; кэши предвыборки и записи объемом по 2 КБ каждый; системный интерфейс; контроллер основной памяти; контроллер кэша второго уровня (L2 кэш); таблица тэгов L2 кэш.
Функции исполнительных устройств распределяются следующим образом.
Целочисленные: 2 АЛУ (Integer ALU, ALU/Load), специализированное исполнительное устройство (Load/Store) и устройство обработки ветвлений (Brach Unit).
Плавающие: устройства плавающей арифметики/графики (FP adder, FP mul/div/sqrt).
Далее будут рассмотрены особенности архитектуры. При этом выбираются те моменты и решения, которые, на наш взгляд, являются определяющими для данного процессора.
Конвейер
Основу архитектуры любого процессора составляет конвейер. Без понимания его работы трудно разобраться в необходимости и порядке взаимодействия перечисленных выше устройств.
UltraSPARC III имеет 14-ступенчатый конвейер. На сегодняшний день это, пожалуй, самый длинный конвейер среди серийных процессоров. Почти половина его (6 ступеней) отводится на подготовку к выполнению команд, столько же — на исполнение команд; две последние ступени — завершающие.
Исполнительная часть конвейера состоит из двух частей: целочисленной и плавающей. Обе части имеют одинаковую длину, что упрощает согласование их работы (позволяет выдавать результаты вычислений в порядке их запуска на исполнение). Аналогичное решение (выровненные конвейеры целочисленной и плавающей арифметики) успешно использовалось в предшествующих поколениях микропроцессоров UltraSPARC.
Большое количество ступеней конвейера, по-видимому, объясняется существенным повышением тактовой частоты процессора. Более короткие фазы выполнения позволяют избежать длинных связей на кристалле, которые при столь малых технологических нормах начинают вносить заметную дополнительную задержку. Те операции, которые не вписываются в один такт, как, например, выборка команд из кэша, разбиваются на более мелкие процедуры и выполняются за 2 такта.
Следует отметить еще одну особенность, связанную с исполнительной частью целочисленного конвейера. Для выполнения целочисленных команд отводится 4 такта, реально на это уходит меньше времени (команды АЛУ выполняются за 1 такт). Однако, выровненный конвейер позволяет получить на выходе результаты в том порядке, в котором они поступили на исполнение.
Порядок запуска команд на исполнение
В отличие от многих других современных процессоров, использующих механизм произвольного запуска команд на исполнение, то есть не в порядке их расположения в программе, UltraSPARC III действует строго по порядку. По утверждениям разработчиков, это позволяет сократить объем логики управления в ядре процессора (которая при разработке ее топологии требует большого объема ручной работы), что благоприятно сказывается на быстродействии.
Таким образом, в новом процессоре, как и в его предшественниках, запуск команд на исполнение происходит в порядке их расположения в программе. Процессор позволяет одновременно запустить на исполнение до шести команд (по числу исполнительных устройств); правда, средневзвешенное число одновременно запускаемых команд равно четырем.
После выборки команды попадают в буфер (очередь) команд на 20 элементов (Instruction Queue), откуда группами направляются в соответствующие исполнительные устройства. Максимальное число команд в группе — 6. Все команды в группе получают идентификационный код, в соответствии с которым на выходе из конвейера будут сложены их результаты.
Выше уже упоминалось, что время выполнения большинства целочисленных команд существенно меньше длины исполнительной части целочисленного конвейера, и что фиксированная длина конвейера обеспечивает сохранение порядка поступления команд. Однако, это не означает, что результаты становятся доступны только по достижению выхода конвейера. На самом деле полученные данные могут быть использованы другими командами, находящимися на стадии выполнения, уже на следующем такте после получения результата. Это возможно благодаря наличию рабочего регистрового файла, в котором хранятся все промежуточные результаты вычислений и из которого, по завершению исполнения группы команд, эти результаты переписываются в архитектурный регистровый файл. Таким образом, реальная эффективность конвейера заметно повышается.
Механизм предсказания ветвлений
Устройство предсказания ветвлений является непременным атрибутом любого современного высокопроизводительного микропроцессора, однако, в каждом конкретном случае оно реализовано по-своему. Основная задача данного устройства состоит в сокращении накладных расходов из-за нарушений в работе конвейера при ветвлении программ. Если взглянуть на конвейер UltraSPARC III, то хорошо видно, сколько придется заплатить за неправильно предсказанный переход. Штрафные санкции составят 7 дополнительных тактов (кстати, у Alpha 21264 — столько же при меньшей длине конвейера). Есть за что бороться.
При решении данной задачи разработчики процессора решили использовать достаточно простой одноуровневый механизм (в отличие от двухуровневого адаптивного механизма в Alpha 21264). Он представляет собой таблицу на 16 К значений, содержащую информацию об уже происшедших ветвлениях и обеспечивает точность предсказаний на уровне 95% на тестах SPEC95.
Помимо механизма предсказания ветвлений в процессоре используется еще и стек адресов возврата на 8 значений, а также очередь последовательных команд (Sequential Instruction Queue), которая хранит до четырех команд, следующих за командой ветвления, но соответствующих альтернативному пути. В случае, когда предсказанное ветвление окажется неверным, команды из этой очереди сразу направляются на исполнение, экономя несколько тактов.
Особенности реализации внешних интерфейсов микропроцессора
Производительность вычислительной системы зависит от многих факторов, среди которых быстродействие процессора — не самый главный. Очень многое определяет то, как он взаимодействует с другими компонентами системы.
На рис. Рис. 1 приведен пример многопроцессорной системы, реализованной на основе UltraSPARC III. Рассмотрим и проанализируем некоторые ее детали. Первое, что сразу обращает на себя внимание, это большое количество внешних интерфейсов у процессора. Их три: 128-разрядный канал обмена с основной памятью (Main Memory), 256-разрядный канал обмена с кэш-памятью второго уровня (L2 Cache) и 128-разрядный системный интерфейс.
Рисунок 1. Пример многопроцессорной системы на основе UltraSPARC III.
Достаточно очевидно, что такая многошинная архитектура способствует более эффективной работе многопроцессорной системы в целом. Правда, это новое качество недешево обходится (это и дополнительные расходы на разработку нового корпуса с рекордным числом выводов — 1200, и проблемы повышенного энергопотребления как самого процессора, так и микросхем чипсета и т.п.). Но, похоже, конечный результат стоит того. Рассмотрим подробнее каждый из перечисленных интерфейсов.
Интерфейс с основной памятью
Поскольку архитектура процессора подразумевает единоличное владение данной памятью, то есть отсутствие непосредственного доступа к ней со стороны каких-либо других устройств, появляется возможность достижения максимальной пропускной способности данного канала, для чего предусмотрен накристальный контроллер памяти. Такое решение имеет следующие положительные стороны.
Во-первых, отпадает необходимость в дополнительных внешних компонентах, то есть упрощается сопряжение процессора и памяти. Это к тому же приводит еще и к снижению стоимости.
Во-вторых, возрастает пропускная способность, поскольку производительность канала зависит только от параметров памяти. Так, при использовании SDRAM с тактовой частотой 150 МГц пропускная способность составит 2.4 ГБ/с.
Канал обмена с L2 кэш-памятью
По своей реализации данный канал напоминает описанный выше. Однако, здесь есть ряд принципиальных особенностей.
Во-первых, канал имеет более высокую разрядность — 256 бит. На сегодняшний день UltraSPARC III, пожалуй, единственный микропроцессор, имеющий такую широкую шину данных кэша второго уровня. При использовании микросхем статической памяти (SRAM), работающих на частоте 200 МГц, пропускная способность данного канала способна достичь 6.4 ГБ/с. И это не предел.
Во-вторых, по аналогии с накристальным SDRAM-контроллером канала основной памяти, данный интерфейс имеет накристальную таблицу тэгов вторичного кэша. Размер таблицы составляет 90 КБ, и этого достаточно для поддержания кэш-памяти объемом до 8 МБ.
Основным достоинством такого решения является то, что работа с таблицей осуществляется на частоте процессора, то есть результат обращения к кэшу становится известен гораздо раньше, чем в случае внекристального расположения таблицы тэгов. Соответственно, при непопадании в кэш процедура инициализации обращения к основной памяти начинается на несколько тактов раньше. Аналогично обстоит дело и с поддержкой когерентности кэшей в многопроцессорных системах.
Перечисленные преимущества отчасти можно отнести и к контроллеру SDRAM, однако, там производительность канала в меньшей степени зависит от быстроты работы контроллера.
Особенности реализации канала записи в L2 кэш-память
Процедура записи, использованная в UltraSPARC III, может показаться слишком сложной с точки зрения аппаратурной реализации (см. рис. Рис. 2), однако, на самом деле это не так.
Рисунок 2. Канал записи в кэш второго уровня.
Канал записи состоит из трех основных частей: очереди на 8 слов (Store Queue), кэш-памяти данных первого уровня (L1 Data Cache) и кэш-памяти записи (Write Cache). Сразу же отметим, что кэши имеют различные механизмы обновления: L1 кэш данных — сквозной записи, а кэш записи — отложенный. Далее будет понятно, зачем это нужно.
Сначала сохраняемая информация записывается в очередь. Это происходит во время выполнения команды сохранения. Затем, после завершения команды, данные записываются в L1 кэш и, одновременно, в кэш записи. При этом, если происходит непопадание в L1 кэш, то его содержимое не обновляется. В противном случае из-за сквозного режима обновления данной кэш-памяти происходило бы постоянное обращение ко вторичному кэшу. Таким образом, кэш-память записи как бы дополняет и дублирует L1 кэш, но только в процессе записи. По утверждениям разработчиков, использование такой организации канала записи позволяет сократить трафик на шине вторичной кэш-памяти на 90%.
Системный интерфейс
Системный интерфейс по своим характеристикам аналогичен каналу основной памяти. Из специфических механизмов, свойственных только ему, следует отметить поддержку многопроцессорности (до четырех процессоров в конфигурации с общей шиной и более четырех при иерархической структуре шин).
Подводя итог всему сказанному об организации внешних интерфейсов процессора UltraSPARC III, можно отметить следующее.
Во-первых, многошинная структура позволяет легко строить на базе данного процессора как однопроцессорные, так и многопроцессорные системы. При этом число процессоров в системе практически не ограничено (1000 и больше).
Во-вторых, использование накристальной логики управления каналами позволяет масштабировать их пропускную способность, увеличивая производительность с ростом рабочей частоты процессора и появлением более быстрой памяти.
В-третьих, структура внешних связей процессора позволяет легко сделать на его основе модификацию для недорогих серверов.
Процессор PowerPC G5
Максимальная частота процессора PowerPC G5 составляет до 2 ГГц. Apple не зря гордится своим новым детищем – по стандартным тестам (SPEC CPU 2000: SPECfp_base2000 и SPECint_base 2000 – на целочисленные вычисления и вычисления с плавающей точкой) G5 делает и самый последний Pentium 4, и Xeon (в одно- и двухпроцессорной конфигурации). Также G5 показал свое превосходство во многих популярных приложениях. Например, в Photoshop’е (со специальным плагином, оптимизированным под G5) оставил конкурентов далеко позади, обогнав их по производительности примерно в 2 раза. Проц был разработан благодаря долгому сотрудничеству Apple и IBM, его релиза около полутора лет ждали миллионы пользователей Мака, даже ходили слухи о возможном переходе Apple на Itanium. Но разработчики никого не обломали, выпустив действительно революционный продукт. В основу разработки был положен процессор прошлого поколения – 64-битный PowerPC G4. Всего на 118 мм^2 площади процессора, при помощи 0,13-мкм процесса, разработчики смогли уместить свыше 58 миллионов транзисторов.
PowerPC выпускается в трех вариантах: 1,6, 1,8 и два по 2,0 ГГц. Кэш-память второго уровня (L2 cache) составляет 512K со сверхбыстрой скоростью доступа к данным и инструкциям. Кэш первого уровня составляет 64K для инструкций (L1 I-cache) с прямым доступом на скорости до 64 Гб/сек и 32K для кэша данных (L1 D-cache). Кэш третьего уровня не поддерживается.
Архитектура PowerPC G5 довольно сложна (смотри Приложение 1). Отдельно стоит отметить, что на борту находятся два независимых сопроцессора для вычислений с плавающей точкой с двойной точностью, два модуля для работы с числами с фиксированной запятой, два блока загрузки/выгрузки и один векторный блок. Также имеется модуль Velocity Engine (оптимизированный, по сравнению с PowerPC G4) с суперскалярным ядром, которое может одновременно обрабатывать до 215 команд. Этот модуль использует двухконвейерную 128-битную технологию обработки данных (аналогичная технология используется в научных суперкомпьютерах IBM). Все эти разработки основаны на опыте предыдущих поколений процессоров PowerPC. Итого G5 содержит свыше 12 отдельных функциональных модулей, которые могут обрабатывать параллельно множество различных команд.
Применение 64-битной технологии позволяет использовать до 8 Гб (PC3200/400 МГц) основной памяти (в отличие от 4 Гб для 32-bit), что крайне важно для работы с 3d, обработки видео, научных исследований и прочих приложений, требующих огромной вычислительной мощности. Такой объем оперативки во много раз увеличивает скорость работы с большими объемами данных, так как пропускная способность оперативки неизмеримо выше, чем при чтении данных с винта. Изначально PowerPC G5 проектировался для работы как с 64-, так и с 32-битным кодом прог. Благодаря этому остается полная совместимость со старыми приложениями, и нет необходимости в замене прог на 64-битный вариант (или эмуляции 32-bit режима с уменьшением производительности). Версии Mac OS X, начиная с 10.2, специально оптимизированы для работы с PowerPC G5, благодаря этому возможно использование всей 64-битной мощности и поддержка 32-битных программ без потери в производительности.
Технологии MIPS процессоров от Silicon Graphics (SGI)
MIPS (Million Instructions Per Second) - суперскалярный RISC-процессор. Его особенностями являются многоступенчатый конвейер, а также большой объем кэш-памяти первого уровня, что позволяет выполнять ряд приложений, эмулируя обращения к вторичной кэш-памяти или оперативной памяти. Оба кэша являются частично-ассоциативными, имеют виртуальную индексацию. Доступ в кэш второго уровня происходит по 64-разрядной системной шине совместно с доступом к оперативной памяти. Для повышения пропускной способности при обращении в оперативную память доступ инициируется одновременно со сравнением тега кэша.
Немного об архитектуре
SGI добилась своей уникальности и высокой производительности главным образом за счет того, что реализовала уникальную графическую подсистему, которая использует аппаратную поддержку команд OpenGL и позволяет преобразовывать поступающий поток цифровых данных в графические и видеоформаты. Так как все-таки устроена графическая подсистема от SGI?
Как правило, она архитектурно состоит из трех плат: геометрической машины, растеризатора и генератора изображений.
Геометрическая машина выполняет обработку поступающих цифровых данных, производя геометрическую и пиксельную обработку. Применение аппаратной поддержки OpenGL позволяет без использования дополнительных вычислительных средств производить сложные преобразования, например, формирование объемных графических объектов, их проецирование на экран и расчет освещенности.
Сердцем графического конвейера является подсистема растеризации. Она выполняет, пожалуй, самую трудоемкую и важную задачу - преобразовывает поступающую от геометрической машины информацию в пиксельный формат. Однако за счет распараллеливания большинства функций и применения максимально возможной аппаратной обработки, подсистема растеризации без особых проблем выполняет такие трудоемкие преобразования, как наложение текстуры или сглаживание изображения.
После обработки в буфере кадра данные поступают на вход подсистемы генерации изображений. Аналого-цифровые преобразователи генерируют аналоговый поток, который и позволяет получить изображение на мониторе. Здесь тоже не обошлось без хитростей: за счет программного управления временными характеристиками преобразования подсистема вывода изображения позволяет получать выходные данные для дисплеев с различным разрешением.
Ресэмплинг - другая не менее важная функция подсистемы генерации изображений. Она позволяет ускорить частоту смены кадров и преобразовывать выходные данные в S-video или композитный сигнал. А регулируемость размеров рабочей области экрана, для которой генерируется видеосигнал, позволяет без дополнительных трудностей задавать необходимую область для отображения на видео, а также нестандартные соотношения сторон экрана.
За счет того, что в видеосигнал может быть преобразована любая прямоугольная область экрана, не возникает проблем с видеоформатами, у которых соотношение размеров кадра отлично от отношения 3:4, использующегося в PAL. В дополнение реализована генерация синхронизирующих сигналов, что дает станциям Silicon Graphics хорошую совместимость с профессиональной видеоаппаратурой.
Alpha-процессор
Процессор Alpha - настоящий 64-разрядный RISC-процессор. Область его применения широка, однако общие черты задач, в которых он себя хорошо зарекомендовал, таковы: масштабируемость, быстрота ответной реакции, трудоемкость, обеспечение надежности.
Уникальная архитектура позволяет ему быть первым по многим параметрам. Процессор Alpha имеет и другие отличия от остальных RISC-процессоров. Например, у него сильный блок операций с фиксированной точкой, что обычно является ограничением для архитектуры RISC.
Alpha-процессор с самого начала разрабатывался в качестве истинного 64-разрядного RISC-процессора. Одно из основных преимуществ 64-разрядной архитектуры - более широкое адресное пространство, а это сказывается на объеме поддерживаемой оперативной памяти и на размере непосредственно адресуемого раздела на жестком диске. На его кристалле размещается более девяти миллионов транзисторов (из которых почти 2 миллиона приходится на ядро, остальные - на кэш-память). Среди уникальных особенностей этой архитектуры стоит отметить девятиступенчатый конвейер для операций с плавающей точкой и семиступенчатый конвейер для операций с фиксированной точкой.
К эксклюзивным ноу-хау стоит отнести и организацию кэша. Он организован следующим образом: кэш первого уровня имеет размер шестнадцать килобайт и работает по технологии прямого отображения (по восемь килобайт для команд и данных). Кэш второго уровня имеет следующие особенности: трехканальный, частично ассоциативный, размещен на кристалле и имеет размер девяносто шесть килобайт. Процессор имеет поддержку кэш-памяти третьего уровня (от одного до шестидесяти четырех мегабайт).
Кроме того, стоит отметить 128-битную шину доступа к памяти, 32 целочисленных регистра и 32 регистра с плавающей точкой. Все операции над данными производятся в регистрах; команды процессора - 32-битные, достаточно простые и имеют унифицированный формат. Доступ к кэш-памяти первого уровня происходит всего за один такт, второго уровня - как минимум за два. Кстати, за один такт процессор может выполнять до четырех команд. Кроме того, некоторые оригинальные решения позволили очень эффективно использовать конвейеры, что дало возможность практически убрать простои из-за отсутствия операндов.
Alpha-системы применяются во многих областях, однако наиболее эффективно применение систем на базе Alpha-процессора для решения задач, требующих высокой производительности и надежности, например: UNIX или Windows NT серверы; Расчетные серверы (компиляция исходных кодов для разрабатываемых программных комплексов на различных языках программирования); Серверы баз данных (начиная от Oracle и заканчивая распространенными mysql и posgres); Интернет www или ftp серверы; Прокcи и Firewall серверы; Станции обработки данных для геоинформационных систем; CAD/CAM станции; Станции издательских систем; 3D станции; отказоустойчивые корпоративные серверы.
Нейропроцессор
Биологический прототип
А что же интересного в твоих мозгах? Строение мозга очень сложное. Но это не медицинский доклад, да и я не доктор наук :), поэтому для простоты поясню на кошках. С большими упрощениями мозг состоит из порядка миллиарда мельчайших вычислительных элементов (нейронов), связанных с органами чувств и между собой специальными нитями (аксонами). Импульсы, зарождающиеся в органах чувств, передаются от нейрона к нейрону с помощью пресловутых синапсов и дендритов. Каждый нейрон при приеме поступающего на вход сигнала обрабатывает его и, в зависимости от внутренних условий, а также уровня и вида сигнала, выдает ответ на ряд других нейронов. Хотя скорость передачи сигнала от нейрона к нейрону невелика, за счет распараллеливания обработки поступающих сигналов общее время между поступлением на вход сигнала и выдачей результата ничтожно мало.
Работа искусственного нейрона внешне напоминает работу биологического прообраза: от других нейронов на его вход поступают сигналы, значимость которых в соответствии с матрицей весов уменьшается или увеличивается. Далее все сигналы складываются и обрабатываются пороговой функцией, поступают на выход и рассылаются другим нейронам.
Принципы работы
Общий принцип работы многослойной нейронной сети с обучением методом обратного распространения ошибки заключается в следующем. Сначала, с помощью заранее известных исходных данных и результатов по ним, обучаем сеть - на ее вход подаем входные значения, а на выходе сравниваем значения сети с реальным результатом и в зависимости от степени их разногласия корректируем внутренние веса нейронов. Добившись удовлетворительной работы сети с заданной степенью погрешности, прекращаем обучение. Теперь сеть готова рассчитывать реальные данные. Для расчета сеть переводится из режима обучения в режим работы. На вход поступают данные, они обрабатываются, и на выходе получаем ответ с определенной долей вероятности. Так работает примитивная нейронная сеть обратного распространения. В действительности существует множество разнообразных способов увеличения точности ответов и ускорения обучения сетей. Кроме того, при решении ряда задач комбинируют нейросетевые алгоритмы между собой, да и вообще по-разному извращаются.
Нейрожелезо
Наконец, о самом интересном - о нейропроцессорах. Одной из первых возможностями нейронных сетей и их промышленным применением заинтересовалась компания Intel. С подачи министерства обороны США были начаты работы по проектированию и разработке нейропроцессора. В 1989 году уже был представлен первый промышленный образец i80170NX ETANN (Electrically Trainable Analog Neural Network). Применение распараллеленной архитектуры в нейропроцессоре позволило добиться производительности 2 миллиарда операций в секунду. Этот процессор (и его преемник - i80160NC) весьма успешно работает в различных системах, в которых необходимо решение неформализуемых задач. Вслед за Intel подтянулись и другие ведущие мировые производители вычислительной техники. Свои нейропроцессоры создали такие компании, как Motorola, Echelon, IBM, Siemens, Fujitsu и другие.
Отдельно хотелось бы упомянуть об успехах России на этом поприще. В 1998 году на мировой рынок нейрочипов вышла и наша фирма - НТЦ "Модуль", представив нейропроцессор NM6403. Его спроектировали и разработали российские инженеры, правда, производится нейропроцессор на мощностях компании Samsung.
Область применения NM6403 весьма широка. Он применяется для обработки видеоданных, в радиолокационных системах и в криптографии. Весьма интересен созданный на базе нейропроцессора аппаратно-программный комплекс "Трафик-Монитор", который измеряет в реальном масштабе времени статистические характеристики транспортного потока для последующего принятия решения по организации и регулированию дорожного движения. Он позволяет измерить не только общее количество прошедших транспортных средств, но и классифицировать их по типам.
Нейропроцессор NM6403
Нейропроцессор NM6403 обладает следующими характеристиками. Тактовая частота - 40 МГц, напряжение питания - 3,0-3,6 В, потребляемая мощность - 1,3 Вт. Основные вычислительные узлы процессора: управляющее RISC-ядро и векторный сопроцессор. Производительность нейропроцессора составляет 120 миллионов операций в секунду для 32-битовых операндов. Кстати, эти процессоры доступны в свободной продаже, да и стоят не так уж и дорого - около 50 зеленых фантиков.
Архитектура биопроцессора
Как ты понимаешь, вводить данные с клавиатуры очень долго ;), именно поэтому был придуман биодатчик, который занимается приемом входных данных. Как только происходит изменение формы либо цвета белка, это мгновенно фиксирует биопроцессор, который преобразует сигнал из аналогового в цифровой вид.
Такой процессор состоит из специального белкового раствора, который способен непрерывно менять свое состояние. Это не что иное, как аналог транзисторного цифрового камня. Частички белка мгновенно изменяют свое состояние (как правило, цвет). Для нормального функционирования требуется быстрый обратимый процесс, то есть способность частицы вернуть свое прежнее состояние. Ученые очень долго искали подобную структуру, проводя множество долгих экспериментов. Процесс обработки информации похож на горение бикфордова шнура - он продолжается, пока вся пороховая начинка не выгорит. Представь, что порох наделен способностью автоматического восстановления, а шнур замкнут в кольцо. При таком раскладе горение будет вечным, что и необходимо. Ученые долго шли к созданию такого проца - подобрать нужный состав белка было крайне проблематично (поиск нужной реакции начался аж с 1956 года).
Биопроцессор имеет три преимущества, благодаря которым применяется в архитектуре машины.
1. Быстродействие. Как уже было сказано, аналоговый камешек мгновенно принимает решения, которые не под силу цифровому процессору.
2. Надежность. Если кремниевый процессор мог допускать ошибки при вычислениях, биопроцессор практически не ошибается в своих преобразованиях (максимальная относительная погрешность колеблется от 0,001 до 0,02%).
3. Компактность. Размеры очень малы. Благодаря тому, что производители научились наслаивать белковую структуру, габариты такого камешка могут быть сопоставимы по размеру с каплей воды.
Правда, у биопроцессора есть и недостатки. В первую очередь, это трудоемкое производство, а также высокая цена.
Приложения
Приложение 1: Архитектура процессора PowerPC G5
Приложение 2: Сводная таблица параметров процессоров AMD
Процессор
Тактовая частота ядра МГц
Частота шины МГц
Кэш L1, Кб
Кэш L2, Кб
Ядро
Техпроцесс мкм
Гнездо
Напряжение питания
Макс. температура процессора град.
AthlonXP 3000+
2167
333
н/д
512
Barton
0,13
Socket A
1,65
85
AthlonXP 2800+
2083
333
н/д
512
Barton
0,13
Socket A
1,65
85
AthlonXP 2500+
1833
333
н/д
512
Barton
0,13
Socket A
1,65
85
AthlonXP 2700+
2167
266
н/д
256
Thoroughbred-B
0,13
Socket A
1,65
85
AthlonXP 2600+
2083
266
н/д
256
Thoroughbred-B
0,13
Socket A
1,65
85
AthlonXP 2400+
2000
266
н/д
256
Thoroughbred-B
0,13
Socket A
1,65
85
AthlonXP 2200+
1800
266
н/д
256
Thoroughbred-B
0,13
Socket A
1,6
85
AthlonXP 2100+
1773
266
н/д
256
Thoroughbred-B
0,13
Socket A
1,6
90
AthlonXP 2000+
1667
266
н/д
256
Thoroughbred-B
0,13
Socket A
1,6
90
AthlonXP 1800+
1533
266
н/д
256
Thoroughbred-B
0,13
Socket A
1,6
90
AthlonXP 1700+
1467
266
н/д
256
Thoroughbred-B
0,13
Socket A
1,6
90
AthlonXP 1600+
1400
266
н/д
256
Thoroughbred-B
0,13
Socket A
1,5
90
AthlonXP 2100+
1733
266
н/д
256
Thoroughbred
0,13
Socket A
1,6
90
AthlonXP 2000+
1667
266
н/д
256
Thoroughbred
0,13
Socket A
1,65
90
AthlonXP 1900+
1600
266
н/д
256
Thoroughbred
0,13
Socket A
1,5
90
AthlonXP 1800+
1533
266
н/д
256
Thoroughbred
0,13
Socket A
1,5
90
AthlonXP 1700+
1467
266
н/д
256
Thoroughbred
0,13
Socket A
1,5
90
AthlonXP 2100+
1733
266
128
256
Palomino
0,18
Socket A
1,75
90
AthlonXP 2000+
1667
266
128
256
Palomino
0,18
Socket A
1,75
90
AthlonXP 1900+
1600
266
128
256
Palomino
0,18
Socket A
1,75
90
AthlonXP 1800+
1533
266
128
256
Palomino
0,18
Socket A
1,75
90
AthlonXP 1700+
1467
266
128
256
Palomino
0,18
Socket A
1,75
90
AthlonXP 1600+
1400
266
128
256
Palomino
0,18
Socket A
1,75
90
AthlonXP 1500+
1333
266
128
256
Palomino
0,18
Socket A
1,75
90
AthlonMP 2600+
2133
266
н/д
256
Thoroughbred-B
0,13
Socket A
1,65
90
AthlonMP 2400+
2000
266
н/д
256
Thoroughbred-B
0,13
Socket A
1,65
90
AthlonMP 2200+
1800
266
н/д
256
Thoroughbred-B
0,13
Socket A
1,65
90
AthlonMP 2000+
1667
266
н/д
256
Thoroughbred-B
0,13
Socket A
1,65
90
AthlonMP 2200+
1800
266
н/д
256
Thoroughbred
0,13
Socket A
1,65
90
AthlonMP 2000+
1667
266
н/д
256
Thoroughbred
0,13
Socket A
1,65
90
AthlonMP 2100+
1733
266
128
256
Palomino
0,18
Socket A
1,75
95
AthlonMP 2000+
1667
266
128
256
Palomino
0,18
Socket A
1,75
95
AthlonMP 1900+
1600
266
128
256
Palomino
0,18
Socket A
1,75
95
AthlonMP 1800+
1533
266
128
256
Palomino
0,18
Socket A
1,75
95
AthlonMP 1600+
1400
266
128
256
Palomino
0,18
Socket A
1,75
95
AthlonMP 1500+
1333
266
128
256
Palomino
0,18
Socket A
1,75
95
AthlonMP 1200
1200
266
128
256
Palomino
0,18
Socket A
1,75
95
AthlonMP 1000
1000
266
128
256
Palomino
0,18
Socket A
1,75
95
Athlon 1400
1400
266
128
256
Thunderbird
0,18
Socket A
1,75
95
Athlon 1333
1333
266
128
256
Thunderbird
0,18
Socket A
1,75
95
Athlon 1200
1200
266
128
256
Thunderbird
0,18
Socket A
1,75
95
Athlon 1133
1133
266
128
256
Thunderbird
0,18
Socket A
1,75
95
Athlon 1100
1100
266
128
256
Thunderbird
0,18
Socket A
1,75
95
Athlon 1400
1400
200
128
256
Thunderbird
0,18
Socket A
1,75
95
Athlon 1300
1300
200
128
256
Thunderbird
0,18
Socket A
1,75
95
Athlon 1200
1200
200
128
256
Thunderbird
0,18
Socket A
1,75
95
Athlon 1100
1100
200
128
256
Thunderbird
0,18
Socket A
1,75
95
Athlon 1000
1000
200
128
256
Thunderbird
0,18
Socket A
1,75
95
Athlon 950
950
200
128
256
Thunderbird
0,18
Socket A
1,75
70
Athlon 900
900
200
128
256
Thunderbird
0,18
Socket A
1,75
70
Athlon 850
850
200
128
256
Thunderbird
0,18
Socket A
1,7
70
Athlon 800
800
200
128
256
Thunderbird
0,18
Socket A
1,7
70
Athlon 750
750
200
128
256
Thunderbird
0,18
Socket A
1,7
70
Athlon 700
700
200
128
256
Thunderbird
0,18
Socket A
1,7
70
Athlon 650
650
200
128
256
Thunderbird
0,18
Socket A
1,7
70
Duron 1300
1300
200
128
64
Morgan
0,18
Socket A
1,75
90
Duron 1200
1200
200
128
64
Morgan
0,18
Socket A
1,75
90
Duron 1100
1100
200
128
64
Morgan
0,18
Socket A
1,75
90
Duron 1000
1000
200
128
64
Morgan
0,18
Socket A
1,75
90
Duron 950
950
200
128
64
Morgan
0,18
Socket A
1,75
90
Duron 900
900
200
128
64
Morgan
0,18
Socket A
1,75
90
Duron 950
950
200
128
64
Spitfire
0,18
Socket A
1,6
90
Duron 900
900
200
128
64
Spitfire
0,18
Socket A
1,6
90
Duron 850
850
200
128
64
Spitfire
0,18
Socket A
1,6
90
Duron 800
800
200
128
64
Spitfire
0,18
Socket A
1,6
90
Duron 750
750
200
128
64
Spitfire
0,18
Socket A
1,6
90
Duron 700
700
200
128
64
Spitfire
0,18
Socket A
1,6
90
Duron 650
650
200
128
64
Spitfire
0,18
Socket A
1,6
90
Duron 600
600
200
128
64
Spitfire
0,18
Socket A
1,6
90
Приложение 3: Идентификация процессоров по их CPUID
CPUID (hex)
Название
Кодовое имя
Технологический процесс
Intel Corporation
040X
i80486DX-25/33
-
0.8 µm*
041X
i80486DX-50
-
1 µm*
042X
i80486SX
-
0.8 µm*
043X
i80486DX2
-
0.8 µm*
044X
i80486SL
-
0.8 µm*
045X
i80486SX2
-
0.8 µm
047X
i80486DX2WB (Write-Back Enhanced)
-
0.8 µm
048X
i80486DX4
-
0.6 µm
049X
i80486DX4WB (Write-Back Enhanced)
-
0.6 µm
050X
Pentium P5 A-step
-
0.8 µm
051X
Pentium P5
-
0.8 µm
052X
Pentium P54C
-
0.6 µm
053X
Pentium P24T Overdrive
-
0.35 µm
054X
Pentium MMX P55C
-
0.35 µm
057X
Pentium Mobile P54C
-
0.25 µm
058X
Pentium MMX Mobile P55C
-
0.25 µm
060X
Pentium Pro A-step
-
0.6 µm
061X
Pentium Pro
-
0.6 µm
063X
Pentium II
Klamath
0.28 µm
065X
Pentium II
Deschutes
0.25 µm
066X
Celeron
Medocino
0.25 µm
067X
Pentium III
Katmai
0.25 µm
068X
Pentium III E
Coppermine
0.18 µm
069X
Pentium M
Banias
0.13 µm
06AX
Pentium III Xeon
Cascades
0.18 µm
06BX
Pentium III
Tualatin
0.13 µm
070X
Itanium (IA-64)
Merced
0.25 µm
0F0X
Pentium 4
Willamete
0.18 µm
0F1X
Pentium 4
Willamete
0.18 µm
0F2X
Pentium 4
Northwood
0.13 µm
0F3X
Pentium 4
Prescott
0.09 µm
Advanced Micro Devices
043X
AMD486DX2
-
0.8 µm*
047X
AMD486DX2WB (Write-Back Enhanced)
-
0.8 µm*
048X
AMD486DX4
-
0.6 µm
049X
AMD486DX4WB (Write-Back Enhanced)
-
0.6 µm
04EX
5x86
-
0.35 µm
04FX
5x86WB (Write-Back Enhanced)
-
0.35 µm
050X
SSA5 (PR75,PR90,PR100)
-
0.5 µm
051X
K5-PR120,PR133
-
0.35 µm
052X
K5-PR166
-
0.35 µm
053X
K5-PR200
-
0.35 µm
056X
K6
-
0.3 µm
057X
K6
Little Foot
0.25 µm
058X
K6-2
Chomper
0.25 µm
059X
K6-III
Sharptooth
0.25 µm
05DX
K6-2+, K6-III+
Sharptooth
0.18 µm
061X
Athlon
Argon
0.25 µm
062X
Athlon
Pluto
0.18 µm
063X
Duron
Spitfire
0.18 µm
064X
Athlon
Thunderbird
0.18 µm
066X
Athlon XP
Palomino
0.18 µm
067X
Duron
Morgan
0.18 µm
068X
Athlon XP
Thoroughbred
0.13 µm
06AX
Athlon XP
Barton
0.13 µm
0F4X
Athlon 64
ClawHammer
0.13 µm
0F5X
Opteron/Athlon FX
SledgeHammer
0.13 µm
Cyrix Corporation, VIA Inc.
044X
MediaGX
-
0.35 µm
049X
5x86
-
0.35 µm
052X
M1 6x86
-
0.35 µm
054X
GXm
-
0.35 µm
060X
M2 6x86
-
0.25 µm
United Microelectronics Corporation
041X
U5D (486DX)
-
0.8 µm
042X
U5S (486SX)
-
0.8 µm
NexGen Inc. (AMD)
050X
NexGen Nx586
-
0.5 µm
IDT/Centaur, VIA Inc
054X
C6 WinChip
C6
0.35 µm
058X
C2 WinChip
C2
0.35 µm
059X
C3 WinChip
C3
0.25 µm
060X
M2 6x86MX
-
0.35 µm
065X
VIA C3 (Cyrix III M2 core)
-
0.35 µm
066X
VIA C3 WinChip C5A
Samuel
0.18 µm
067X
VIA C3 WinChip C5B
Samuel 2
0.15 µm
068X
VIA C3 WinChip C5N
Ezra-T
0.13 µm
069X
VIA C3 WinChip C5XL
Nehemiah
0.13 µm
Rise
050X
mP6 iDragon
-
0.25 µm
052X
mP6 iDragon
-
0.18 µm
058X
mP6 iDragon II
-
0.25 µm
059X
mP6 iDragon II
-
0.18 µm
Transmeta
054X
Crusoe TM3x00, TM5x00
-
-
Приложение 4: Упрощённая схема устройства CISC процессоров
Список используемой литературы
Нейросети и их реализация: www.neuroproject.ru Биокомпьютеры и биоинформатика: www.wetware.ru Технология ALPHA: www.hp.ru/alpha/ Системы SPARC: www.sparc.spb.su/class/ Sun Microsystems: http://ru.sun.com MAC’и: www.apple.com Silicon Graphics: www.sgi.ru Процессоры: http://yudenisov.narod.ru/eis/vol06/index.html AMD: www.amd.com Intel: www.intel.com Хакер Спец «Не PC» январь 2004