
- •Часть 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.11.Переход на 64-разрядную архитектуру
2.11.1.Введение
Переход с 16-рязрядной архитектуры на 32-разрядную многими рядовыми пользователями был просто не осознан. Чипы 64-бит RISC-процессоров вышли на рынок еще в конце 90-х. Тогда это были типично серверные процессоры, причем уже широко известные узкому кругу специалистов.
За несколько лет у пользователей сложились мифы и представления о скачке в разрядности процессора, вплоть до того, что переход на 64-бит означает двукратный прирост производительности! Впрочем, до сих пор использование 64-бит процессоров в компьютерных технологиях ограничивается серверами и мощными рабочими станциями. Заказчики подобных машин абсолютно четко представляют себе, что им требуется и на что способно такое оборудование.
С появлением Athlon-64, 64-битные процессоры претендуют на использование в персональных компьютерах, так что нужно уточнить, что они из себя представляют, как работают, и отделить некоторые мифы от истины.
Напомним основы работы процессоров и историю наращивания их разрядности - это послужит той необходимой платформой, от которой будет отталкиваться весь последующий анализ. Первым Intel-микропроцессором был 4004, 4-бит разрядности. Это означало, что процессорные регистры общего назначения могли хранить лишь числа такой размерности, ALU (arithmetic logic unit) - модуль, выполняющий вычисления с целыми числами, мог их обрабатывать, процессор мог использовать 4-бит числа при адресации к блокам памяти. То есть, к примеру, для инструкций, работающих с целыми числами, были доступны лишь значения от -7 до 8. Очевидно, маловато для любой арифметической операции. Справедливости ради следует сказать, что предусматривалось внешнее сцепление чипов в многоразрядные конструкции и соответствующее программное обеспечение позволяло обеспечивать вычисления на таком процессоре.
Впрочем, уже очень скоро появился на свет 8-бит 8008 (-127 - 128); скоро его сменил 16-бит 8086 и 80286 (-32768 - 32767), а уже в 1986 году мы увидели 80386 процессор, впервые реализовавший 32-бит режим работы, что дало возможность работы с числами свыше двух миллиардов.
Корпорация Intel, объявляя разработку новой архитектуры IA-64 (Merced-Itanium), учитывала, что с повсеместным распространением высокоуровневого интерфейса программирования и практически полным отказом от использования языка Ассемблера в сегодняшней программной индустрии (даже BIOS стали писать на С) переход на новую систему команд может произойти и более безболезненно, чем 30 лет назад, несмотря даже на гораздо больший объем накопленного программного обеспечения. Теперь совместимость на уровне языка Ассемблера уже не требуется, а совместимость на уровне языка высокого уровня достигается путем написания соответствующего компилятора.
AMD же, напротив, объявила о приверженности существующего набору команд даже в своем новом 64-разрядном процессоре.
2.11.2.Как оперирует числами процессор
В модуль ALU (в последних процессорах их уже несколько) поступают все инструкции и данные, необходимые для целочисленных вычислений; как правило, это один из самых быстрых в плане тактовой частоты модулей процессора. Упрощенно процесс его работы можно представить следующим образом: поступили данные (две цифры - 3 и 4), поступила инструкция (операция умножения). На выходе получили результат - 12. Разрядность процессора (4-бит или 64-бит) не влияет на данную схему. Прежде чем данные попадут в ALU, они должны быть туда загружены из некоего источника: винчестера, RAM или внешней памяти; при этом процессор чаще всего получает их через кэш. Из кэш данные попадают непосредственно в процессор через посредника, роль которого выполняет набор совсем уж небольших блоков для хранения данных, работающих на очень большой скорости и называющихся регистрами.
Как раз оттуда ALU и получает данные, с которыми работает, и для ALU операция формулируется не как "3 * 4", а:
"содержимое регистра А” - (расшифрованный код операции) – “содержимое регистра В" - сохранить результат в один из регистров (может быть, даже в один из использовавшихся в операции)
откуда он потом, при необходимости, может быть взят для еще одной операции или же быть записан в оперативную память, освободив драгоценное место.
Когда мы говорим о разрядности процессора, то, практически, в первую очередь мы говорим как раз о разрядности этих регистров - могут ли они хранить 8, 16, 32, или 64-бит числа.
С дробными числами, с числами с плавающей точкой ситуация обстоит совершенно иным образом. Для их хранения и операций с ними требуется прежде всего больший объем - это очевидно, учитывая, сколько цифр приходится хранить для подобных чисел. Особенно, если требуется повышенная точность и, соответственно, увеличенное число знаков после запятой. Поскольку необходимость в работе с ними возникла не вчера, то никто здесь прихода 64-бит процессоров ждать и не собирался.
С числами с плавающей запятой работает отдельный набор инструкций х87, с ними оперируют отдельные вычислительные блоки, сведенные в модуль с общим названием "сопроцессор", а хранятся они и оперирует с ними процессор во внутреннем формате с 80-бит представлением. Ради чисел с плавающей запятой затевать переход на 64 разряда явно не требовалось. Тем более что это направление развивается совершенно автономным образом - SSE, 3DNow и так далее, так что переход х86 с 32-бит на 64 его затрагивает весьма слабо.
Существует, впрочем, и еще один аспект вопроса, а именно - доступ к памяти. Дело в том, что в базовом режиме, так называемом "flat addressing", те же самые регистры общего назначения используются для хранения адресов доступа к памяти. 32 бита дают нам 4.3 миллиарда возможных комбинаций, так что 32-бит процессор может, таким образом, осилить память емкостью 4.3 Гбайт. Адреса ячеек, имеющих номера более этого числа, он попросту не может хранить в своих регистрах.
Очевидно, что здесь польза от 64 бит проявляется наиболее заметно, поскольку объем адресуемого пространства сразу увеличивается до 18 терабайт. Но прямая адресация 4 Гбайт оперативной памяти в настоящее время требуется, в основном, лишь в серверах, хотя через несколько лет, очевидно, до таких объемов доберутся и PC.
В первую очередь выигрыш от перехода на 64-разрядные процессоры получают серверы баз данных, где серьезные базы давно уже переросли объем в 4 Гбайт, а возможность кэшировать их полностью в оперативной памяти слишком заманчива в плане производительности. Производители серверных решений не стали дожидаться перехода: за счет использования различных подходов, 32-бит Xeon позволяет адресовать более 4 Гбайт данных (до 64 Гбайт), хотя, конечно подобные полухакерские решения трудно назвать серьезной платформой под будущее, да и падение производительности при операциях с памятью при этом измеряется в десятках процентов. Впрочем, будущее от Intel - это Itanium, а не Xeon.