
- •Часть I
- •Часть I
- •1.Архитектура персонального компьютера
- •1.1.Общие принципы работы компьютера
- •1.2.Концепция открытой архитектуры
- •2.Процессор персонального компьютера ibm pc
- •2.1.Основы работы и характеристики процессора
- •2.3.Виртуальная память
- •2.4.Процессоры cisc и risc
- •2.5.История развития микропроцессоров
- •2.6.Особенности архитектуры процессоров Pentium III и Pentium IV
- •2.7.Определение ядра процессора
- •2.8.Многозадачность и многопоточность
- •2.9.Технология Intel Hyper-Threading
- •2.9.1.Увеличение производительности
- •2.9.2.Механизм Hyper-Threading
- •2.9.3.Производительность
- •2.9.4.Поддержка
- •2.10.Двуядерные процессоры Intel и amd
- •2.10.1.Классификация многопроцессорных систем
- •2.10.2.Многоядерные процессоры
- •2.10.3.Сравнительный анализ двуядерных технологий Intel и amd
- •2.10.4.Когерентность кэш-памяти
- •2.10.5.Особенности реализации
- •2.11.Переход на 64-разрядную архитектуру
- •2.11.1.Введение
- •2.11.2.Как оперирует числами процессор
- •2.11.3.Области применения 64-битного процессора
- •2.11.4.Архитектура Intel 64
- •2.11.5.Архитектура amd 64
- •3.Системный блок (корпус) персонального компьютера
- •4.Материнская плата (motherboard)
- •4.1.Шины материнской платы
- •4.1.5.Перспективные шины
- •4.2.Порты ibm pc
- •4.2.1.Последовательные сом-порты
- •4.2.2.Параллельный порт
- •4.3.Дисковые интерфейсы ibm pc
- •4.3.1.Интерфейсы ата
- •4.3.7.Конфигурирование ата-устройств
- •4.4.Технология raid
- •4.4.1.Уровни raid-массивов
- •4.4.2.О производительность raid-массивов различных уровней
- •4.5.Переход на новое поколение chipset материнских плат
- •5.Память
- •5.1.Контроль четности и корректирующие коды
- •5.2.Оперативная память (ram)
- •5.2.1.Принцип работы ram
- •5.2.2.Типы и характеристики оперативной памяти
- •5.2.3.Статическая память
- •5.2.4.Обозначения модулей памяти
- •5.3.Видеопамять: mdram, vram, wram и sgram
- •6.Ж есткий диск (винчестер)
- •6.1.Краткое описание принципов работы жесткого диска
- •6.2.Пользовательские параметры винчестера
- •6.2.1.Скорость вращения диска
- •6.2.2.Количество секторов на дорожке
- •6.2.3.Время поиска/ время переключения головок/ время переключения между цилиндрами
- •6.2.4.Задержка позиционирования
- •6.2.5.Время доступа к данным
- •6.2.7.Размещение данных на диске
- •6.2.8.Скорость обмена
- •6.2.9.Интерфейс
- •6.3.Структура системной области жесткого диска
- •6.4.Файловые системы
- •6.5.Технология smart
- •7.Дисковые оптические накопители
- •7.1.История создания dvd-накоителей
- •7.3.Параметры накопителей
- •7.4.Типы dvd-дисков
- •7.5.Информационная классификация дисков
- •7.6.Запись на dvd
- •7.7.Перспективы развития dvd
- •7.8.Кодирование информации на dvd
- •7.8.2.Видео dvd
- •7.8.3.Дополнительные функции dvd-проигрывателя
2.10.Двуядерные процессоры Intel и amd
Недавно Intel и AMD выпустили свои первые двуядерные процессоры, что означает проникновение профессиональных технологий в потребительский сегмент. Очевидно, что эти процессоры представляют собой один из вариантов многопроцессорных систем.
2.10.1.Классификация многопроцессорных систем
1. SMP-системы (Symmetrical Multi Processor systems). В подобной системе все процессоры имеют совершенно равноправный доступ к общей оперативной памяти. Работать с такими системами программистам удобно, поскольку не возникает никаких специфичных «особенностей», связанных с архитектурой компьютера. Но, к сожалению, создавать подобные системы крайне трудно: 2-4 процессора – практический предел для стоящих разумные деньги SMP-систем.
|
2. NUMA-системы (Non-Uniform Memory Access systems). Память становится «неоднородной»: один её блок быстрее, другой – медленнее, т.е. время отклика для них различно. В системе при этом образуются своеобразные «островки» со своей быстрой «локальной» оперативной памятью, соединенные относительно медленными линиями связи. Обращения к «своей» памяти происходят быстро, к «чужой» - медленнее, причем чем дальше чужая память расположена, тем медленнее получается доступ к ней. Создавать NUMA-системы значительно проще, чем SMP, а вот программы писать сложнее – без учета неоднородности памяти эффективную программу для NUMA написать невозможно.
|
3. Наконец, последний тип многопроцессорных систем – кластеры. Берут некоторое количество «почти самостоятельных» компьютеров (узлы кластера или «ноды») и объединяют их быстродействующими линиями связи. Общей памяти здесь может и не быть вообще, но и здесь её несложно реализовать, создав существенно неоднородную NUMA-систему. На практике обычно удобнее работать с кластером в «явном» виде, явно описывая в программе все пересылки данных между его узлами. То есть, если для NUMA еще можно создавать программы, почти не задумываясь над тем, как система работает и откуда берутся необходимые для работы потоков данные, то при работе с кластером требуется очень четко планировать, кто, что и где делает. Это очень неудобно для программистов и вдобавок, накладывает существенные ограничения на применимость кластерных систем. Но зато кластер – это очень дешево.
|
Intel сегодня предпочитает создавать SMP-системы; AMD, IBM и Sun - те или иные варианты NUMA. Основная «область применения» кластеров – суперкомпьютеры.
2.10.2.Многоядерные процессоры
Основные этапы в истории создания двуядерных процессоров таковы:
1999 год – анонс первого двуядерного процессора в мире (IBM Power4 для серверов);
2001 год – начало продаж двуядерного IBM Power4;
2002 год – почти одновременно AMD и Intel объявляют о перспективах создания своих двуядерных процессоров;
2002 год – выход процессоров Intel Xeon и Intel Pentium 4 с технологией Hyper-Threading, обеспечивающей виртуальную двухпроцессорность на одном кристалле;
2004 год – свой двуядерный процессор выпустила Sun (UltraSPARC IV);
2004 год – IBM выпустила второе поколение своих двуядерных процессоров (IBM Power5). Каждое процессорное ядро Power5 поддерживает аналог технологии Hyper-Threading;
2005 год, 18 марта – Intel выпустила первый в мире двуядерный процессор архитектуры x86;
2005 год, 21 марта – AMD анонсировала полную линейку серверных двуядерных процессоров Opteron, анонсировала десктопные двуядерные процессоры Athlon 64 X2 и начала поставки двуядерных Opteron 8xx;
2005 год, 20-25 мая – AMD начинает поставки двуядерных Opteron 2xx;
2005 год, 26 мая – Intel выпускает двуядерные Pentium D для массовых ПК;
2005 год, 31 мая – AMD начинает поставки Athlon 64 X2.
Идея многоядерного процессора выглядит на первый взгляд совершенно тривиальной: просто упаковываем два-три (или более) процессора в один корпус - и компьютер получает возможность исполнять несколько программных потоков одновременно. Конкретные её реализации в недавно вышедших настольных процессорах AMD и Intel заметно различаются. Различаются настолько, что сугубо «количественные» мелочи в конечном итоге переходят в качественные различия между процессорами этих двух компаний.
Проанализируем различия в подходах при создании этих микропроцессоров и оценим предполагаемую производительность.
2.10.2.1Intel Smithfield
При создании многоядерных процессоров для настольных ПК фирма Intel предпочла пойти на первых порах по пути наименьшего сопротивления, продолжив традиции создания привычных для себя SMP-систем с общей шиной. Выглядит подобная MP-система чрезвычайно просто: один чипсет, к которому подключается вся оперативная память, и одна процессорная шина, к которой подключены все процессоры:
|
В случае двуядерных процессоров Smithfield два обычных ядра, аналогичных Prescott, просто расположены рядом на одном кристалле кремния и электрически подключены к одной (общей) системной шине. Никакой общей схемотехники у этих ядер нет.
|
У каждого «ядра» Smithfield – свой APIC, вычислительное ядро, кэш-память второго уровня и (что особенно важно) – свой интерфейс процессорной шины (Bus I/F). Последнее обстоятельство означает, что двуядерный процессор Intel с точки зрения любой внешней логики будет выглядеть в точности как два обыкновенных процессора (типа Intel Xeon).
Сегодняшнее ядро Smithfield является «монолитным» (два ядра образуют единый кристалл процессора), однако следующее поколение настольных процессоров Intel (Presler, изготавливаемый по 65-нм технологии) будет еще тривиальнее – два одинаковых кристалла одноядерных процессоров (Cedar Mill) просто будут упакованы в одном корпусе.
|
|
Presler |
Cedar Mill |
Точно таким же будет и первый серверный процессор Intel данной микроархитектуры, известный сейчас под именем Dempsey. Но если у Smithfield на каждое из ядер приходится по 1 Мбайт кэш-памяти второго уровня, то у Presler и Dempsey это будет уже по 2 Мбайт на ядро.
Между тем, позднее у Intel пойдут другие, более сложные в плане микроархитектуры варианты двуядерных процессоров, среди которых стоит отметить Montecito (двуядерный Itanium), Yonah (двуядерный аналог Pentium M) и Paxville для многопроцессорных серверов на базе Intel Xeon MP. Еще в марте 2005 года фирма Intel объявила, что в разработке находятся 15 различных многоядерных CPU, и пять из них корпорация даже демонстрировала в работе.
Если еще в середине 2004 года официальные лица Intel отмечали, что многоядерные процессоры – это не «очередная гонка за производительностью». Поскольку программная инфраструктура была тогда еще не очень готова поддержать такие процессоры оптимизированными приложениями, то теперь многоядерность у Intel поставлена во главу угла во всех базовых направлениях деятельности, в том числе – в разработке и отладке приложений (кроме коммуникаций и сенсорных сетей – пока).
Тактовую частоту процессоров стало наращивать все труднее и труднее, и, стало быть, надо искать что-то на смену гонки за тактовой частотой. Добавляя ядра, производительность в ряде современных приложений уже можно заметно поднять, не повышая частоты.
Собственно, мультиядерность в текущем понимании Intel – это один из трех возможных вариантов:
Независимые процессорные ядра, каждое со своей кэш-памятью, расположены на одном кристалле и просто используют общую системную шину. Это - 90-нанометровый Pentium D на ядре Smithfield.
Похожий вариант – когда несколько одинаковых ядер расположены на разных кристаллах, но объединены вместе с одном корпусе процессора (многочиповый процессор). Таким будет 65-нанометровое поколение процессоров семейств Pentium и Xeon на ядрах Presler и Dempsey.
Наконец, ядра могут быть тесно переплетены между собой на одном кристалле и использовать некоторые общие ресурсы кристалла (скажем, шину и кэш-память). Таким является ближайший Itanium на ядре Montecito, а также мобильный Yonah.
Попутно отметим, что Montecito, изготавливаемый по 90-нм техпроцессу, будет иметь по сравнению с предшественником на 130-нм ядре Madison и ряд других преимуществ: наличие Hyper-Threading (то есть он будет виден в системе как 4 логических процессора), заметно меньшее энергопотребление, более высокую производительность (в 1,5 раза и выше), вчетверо больший размер кэш-памяти (свыше 24 Мбайт: 2x1 Мбайт L2 инструкций, 2x12 Мбайт L3 данных), 1,72 миллиарда транзисторов против 410 миллионов и прочее. Выпуск этого процессора ожидается в четвертом квартале 2005 года.
Не менее интересным ожидается и первый двуядерный мобильный процессор Yonah, который должен появиться в начале 2006 года в рамках новой мобильной платформы Napa. Yonah будет иметь два вычислительных ядра, использующих общую 2-мегабайтную кэш-память второго уровня и общий же контроллер системной шины QPB с частотой 667 МГц. Он будет выпускаться по 65-нм технологии в форм-факторах PGA 478 и BGA 479, содержать 151,6 млн. транзисторов, поддерживать технологию XD-bit и, судя по предварительной информации, поддерживать некоторые механизмы прямого взаимодействия ядер между собой.
Более того, Intel не исключают и того, что процессоры на «мобильном» ядре Yonah будут использоваться не только в определенных сегментах рынка настольных компьютеров (для этого уже разработаны и демонстрируются соответствующие мини-концепты домашнего и офисного ПК), но даже в компактных экономичных серверах.
Первым восьмиядерным процессором Intel станет, по всей видимости, Tukwila в 2007 году, продолжающая линейку Intel Itanium.
Intel Smithfield, к сожалению, несовместим со всеми уже существующими чипсетами самой Intel, ибо чипсеты, рассчитанные на однопроцессорную шину, теперь вынуждены будут работать фактически с «дуальными» системами, а двухпроцессорным чипсетам (напомним, что Intel четко разделяет процессоры для дуал и для многопроцессорных систем) придется научиться работать с «квадами» - четверками процессоров. То есть нагрузка на системную шину существенно возрастет, и прежние чипсеты на нее просто не рассчитаны. В Intel пробовали запускать Smithfield на чипсетах серии i925/915, но работа такой связки не всегда была достаточно стабильной, поэтому от нее было решено официально отказаться и даже предусмотреть меры, исключающие запуск двуядерных процессоров на платах со старыми чипсетами.
Такой подход Intel, несмотря на все свои «подводные камни», в конечном счете, позволит обеспечить пользователей дешевыми и доступными каждому двуядерными CPU. Intel планирует, что в 2006 году 85% серверных и более 70% клиентских компьютеров (ноутбуков и десктопов) будут иметь двуядерные процессоры, а в 2007 году эти цифры возрастут до 100% и 90% соответственно.
|
«Классическая» двухпроцессорная SMP-система с двуядерными процессорами |
Организация «системы в целом» у Intel столь же традиционна, сколь и устройство двуядерного процессора. В ней есть несколько «равноправных» центральных процессоров (как правило, разделяющих общую шину); есть оперативная память и есть разной степени быстродействия периферия. Весь этот комплект объединяется в единое целое специальным коммуникационным процессором – «северным мостом» (Northbridge) чипсета. Через него проходят буквально все потоки данных, которые только зарождаются в компьютере. Подобный «централизованный» подход, во-первых, отличается относительной простотой, а во-вторых, удобен тем, что в нём каждый компонент компьютера получается узкоспециализированным и поддающимся модернизации независимо от других компонентов. То есть с одним и тем же Northbridge можно использовать, например, совершенно различные по своей производительности процессоры и наоборот – меняя Northbridge, можно, например, использовать с одним и тем же процессором совершенно разные типы оперативной памяти.
Терминология
|
2.10.2.2AMD Toledo
Архитектура AMD K8 не просто отличается от Intel: она концептуально иная, поскольку в ней нет какого-то выделенного центра. Каждый из процессоров архитектуры AMD64 является независимой и «самодостаточной» единицей, объединяющей в себе почти всю функциональность северного моста традиционных наборов системной логики. Это началось с одноядерных процессоров, а с появлением двуядерных CPU «обросло» новыми отличиями. Обратим внимание на блок-схему двухпроцессорной системы на двуядерных AMD Opteron.
|
Пример двухпроцессорной двуядерной системы на Opteron 2xx и чипсете AMD 81xx. HT обозначает HyperTransport |
Если смотреть на этот вопрос с чисто технической стороны, то AMD попросту интегрировала практически всю функциональность северного моста в центральный процессор, что хорошо видно на блок-схемах. Но «небольшая» технологическая уловка приводит к совсем иной архитектуре компьютера – SUMA, в отличие от традиционной SMP. Перечислим кратко основные преимущества SUMA над «классической» SMP:
Основа SUMA – последовательная шина HyperTransport. В серверных вариантах процессоров AMD может быть интегрировано до трех независимых линков HT, работающих на частотах до 1 ГГц (2 ГГц с учетом режима передачи данных DDR) и шириной по 16 бит (4 Гбайт/с) в каждом из направлений. Часть HT-линков используется для соединений точка-точка между процессорами, часть задействуется для подключения периферийных устройств (через внешний чипсет, поскольку HT связывает один из процессоров с чипсетом тоже как точка-точка). Для программиста HT полностью совместима с традиционной программной моделью PCI; при этом с «логической» точки зрения весь компьютер напрямую подключаются к единой шине HT, объединяющей все устройства, от центрального процессора и до любой PCI-карты, вставленной в обычный PCI-слот.
В каждый процессор интегрируется контроллер «локальной» оперативной памяти (собственно, по сравнению с одноядерными процессорами AMD64 контроллер памяти почти не изменился). На сегодняшний момент в зависимости от процессора это может быть одно- или двухканальный (у двуядерников – пока только двухканальный) контроллер памяти DDR 200/266/333/400 (небуферизованной или регистровой, с поддержкой ECC и без неё). Обращения к памяти «чужих» процессоров происходят по шине HyperTransport, причем делается эта «переадресация» запросов абсолютно прозрачно для собственно вычислительного ядра процессора – ее осуществляет встроенный в Northbridge коммутатор (CrossBar), работающий на полной частоте процессора. Этот же самый CrossBar обеспечивает «автоматическую» маршрутизацию проходящих через процессор сообщений от периферийных устройств и других процессоров, включая обслуживание «чужих» запросов к оперативной памяти.
Шина HT специально оптимизировалась для подобного режима работы с множеством «служебных» сообщений и обеспечивает крайне низкую латентность обращения (задержку распространения) в «чужую» память и высокую (до 4 Гбайт/с) пропускную способность при обращении к памяти «соседей». Шина является полнодуплексной, т.е. шина позволяет одновременно передавать данные на этой скорости в «обе стороны» (до 8 Гбайт/с суммарно). Модель памяти получается неоднородной (NUMA), но различия в скорости «своих» и «чужих» участков оперативной памяти получаются относительно небольшими.
Чипсет сильно упрощается: всё, что от него требуется – это просто обеспечивать «мосты» (туннели) между HT и другими типами шин. Ну и, возможно, заодно обеспечивать какое-то количество интегрированных контроллеров. Особенно ярко этот принцип проявляется в серверном чипсете AMD 81xx, поскольку это просто набор из двух чипов – «переходников» на шины AGP и PCI-X и чипа, интегрирующего туннель на «обычную» PCI и стандартный набор периферийных контроллеров (IDE, USB, LPC и проч.). Впрочем, традиционные «большие» чипсеты тоже совместимы: к примеру, NVIDIA успешно выпускает Force3 и nForce4, объединяющие все необходимые туннели и контроллеры в единственном кристалле. Но зато можно, к примеру, установить на плату чип nForce Professional 2200 (решение «всё-в-одном» от NVIDIA для рабочих станций) и добавить к нему «в напарники» AMD 8132, который обеспечит материнской плате поддержку шины PCI-X, которой в nForce Pro 2200 нет. Или использовать несколько чипов nForce Pro 2200, чтобы обеспечить, к примеру, вдвое большее число линий PCI Express. Здесь всё совместимо со всем: любые современные чипсеты для микроархитектуры AMD64, теоретически, должны работать и с любыми процессорами AMD и любыми «правильно» сделанными «напарниками». В частности, все двуядерные процессоры AMD должны работать со всеми ранее выпущенными чипсетами для процессоров архитектуры K8.
AMD сейчас любит подчеркивать, что её процессоры «специально проектировались в расчёте на двуядерность», но, строго говоря, правильнее было бы говорить, что двуядерность очень удачно ложится на её архитектуру. Каждый процессор K8 является «системой в миниатюре», со своим «процессором» и Northbridge; а двуядерный K8 – «двухпроцессорная SMP-система в миниатюре».
Второе ядро подключается к кросс-бару через общую шину SRI; оба ядра идентичны и фактически являются полноценными процессорами; общего кэш L2 нет. То есть если мы, скажем, рассматриваем однопроцессорную двуядерную систему, то вся разница между реализациями AMD и Intel с «технологической» точки зрения заключается в том, что у Intel Northbridge реализован отдельным кристаллом, а у AMD он просто интегрирован в центральный процессор.
Интеграция Northbridge в процессор и SUMA-архитектура K8 не просто обеспечивает «более быстрый контроллер оперативной памяти» - она заодно позволяет очень эффективно решать и ряд свойственных многопроцессорным системам проблем.