За более чем 9 лет было выпущено множество Pentium 4. С выпуском новой модели к названию процессора добавлялись либо новая буква, либо еще какие-нибудь цифры, а иногда и то, и другое; все это существенно запутывает идентификацию конкретной модели.
Процессоры этого семейства построены на базе архитектуры Net Burst.
Процессор Pentium 4 (1,7 ГГц) первого поколения был выпущен в 2000 году на базе ядра Willamette с конструктивными технологическими нормами 180 нм. Процессор выпускался с корпусом PGA-423 или PGA-478.
С 2002 года выпускаются процессоры на ядре Northwood с конструктивными технологическими нормами 130 нм, которые имеют ряд качественных отличий от предшественников, а некоторые поддерживают технологию Hyper-Threading.
Чтобы отличать процессоры на ядре Northwood от аналогичных моделей, на ядре Willamette в конце названия имеется суффикс «А».
Для различия процессоров с ядром Northwood, в которых частота FSB составляет 533 МГц, от процессоров, использующих шину 400 МГц, в конце названия имеется суффикс «В».
Процессоры с ядром Northwood, в которых частота FSB составляет 800 МГц, отличаются от процессоров, использующих шину 533 и 400 МГц, наличием в конце названия суффикса «С».
В 2004 году анонсирован процессор на ядре Prescott с технологическими конструктивными нормами 90 нм. По сравнению с оригинальной архитектурой NetBurst в этом ядре были следующие изменения.
■ Для повышения внутренней частоты процессора в процессоре с новым ядром был удлинен конвейер. Теперь его глубина составляла 31 ступень (против 20 ступеней у Northwood).
■ Увеличение количества ступеней конвейера потребовало улучшение модуля предсказания переходов, так как в случае неправильного предсказания перехода конвейер обнулялся, и обработка данных начиналась сначала.
|
■ В новом процессоре был увеличен размер кэша L1, хранящего данные до 16 Кбайт. Размер кэша инструкций Trace cache остался прежним — 12 тысяч микроопераций.
■ В ядро Prescott был добавлен новый набор инструкций SSE3 мультимедиа-расширений SIMD, состоящий из 13 новых инструкций. Поддержка технологии SSE3 предполагает наличие у процессора средств для реализации более ранних технологий мультимедиа.
■ Технология Hyper-Threading также претерпела незначительные изменения.
■ В Prescott заложена поддержка набора команд аналогичного AMD 86-64, называемый в процессорах Intel — ЕМ64Т.
■ Новый процессор построен на базе технологических норм 90 нм.
■ Объем кэша L2 увеличен до 1024 Кбайт.
Чтобы отличать процессоры на базе ядра Prescott от процессоров на ядре Northwood, в конце названия имеется суффикс «Е».
Суффикс «А» отличает процессор с тактовой частотой 2,8 ГГц, при частоте FSB 533 МГц без поддержки технологии Hyper-Threading от других процессоров.
Первые процессоры на базе ядра Prescott с новой системой нумерации были выпущены в 2004 году (категория этого раздела сайта «Маркировка современных процессоров Intel»). Все выпущенные процессоры относятся к серии Pentium 5×0 с номерами 520, 530, 540, 550,560.
В 2004 году были также выпущены процессоры F-серии, у которых была активирована поддержка ЕМ64Т. Ничем другим от своих предшественников они не отличались. В них используется старая система обозначений.
В 2004 году выпущены процессоры серии Pentium 5xOJ, которые отличались от своих предшественников (процессоров серии 5×0) тем, что имели поддержку технологии под названием EDB (Execute Disabled Bit), или XD Bit (eXecute Disable Bit).
|
Выпущенные чуть позднее процессоры серии 5×5, 5x5J и 5x9J продолжили производство линейки процессоров А-серии применительно к разъему Socket 775. Процессоры с индексом «J» поддерживают технологию EDB.
В 2005 году представлены процессоры серии 5×1 и 5×6. Первые объединили в себе серии 5×0 и 5xOJ, а вторые — серии 5×5 и 5x5J.
В 2005 году появился процессор на базе ядра Prescott 2. Процессоры этой серии отличаются от процессоров на базе ядра Prescott только наличием кэша L2 — 2 Мбайт. Новые процессоры получили и новую маркировку: 6×0.
В конце 2005 года вышла новая ревизия ядра (R0, предыдущая была N0). Процессоры, построенные на обновленном ядре Prescott 2М, поддерживают технологию виртуализации (VT) и имеют индексы 662 (3,6 ГГц) и 672 (3,8 ГГц).
В 2006 году выпущены процессоры на базе ядра Cedar Mill (65 нм).
Процессоры Pentium 4 Extreme Edition, были разработаны в 2003 году на базе ядра Gallatin (130 нм). В дальнейшем они разрабатывались на базе ядра Prescott 2М (2005 год), Smithfield (2005 год) и Presler (2006 год).
Эти процессоры создавались для конкуренции с AMD Athlon 64 FX. Это — самые дорогие процессоры семейства Pentium 4. Они имеют сокращение и пишутся Pentium 4 ЕЕ или Pentium 4 ХЕ.
Интерфейс
Связь устройств ЭВМ друг с другом осуществляется с помощью сопряжений, которые в вычислительной технике называются интерфейсами. Интерфейс - представляет собой совокупность линий и шин, сигналов, электронных схем и алгоритмов, предназначенную для осуществления обмена информацией между устройствами. От характеристик интерфейсов во многом зависят производительность и надежностьвычислительной машины. При разработке систем ввода-вывода должны быть решены следующие проблемы.
|
Во-первых, должна быть обеспечена возможность реализации машин с переменным составом оборудования (машин с переменной конфигурацией), в первую очередь с различным набором периферийных устройств, с тем чтобы пользователь мог выбирать состав оборудования (конфигурацию) машины в соответствии с ее назначением, легко дополнять машину новыми устройствами.
Во-вторых, для эффективного и высокопроизводительного использования оборудования ЭВМ должны реализовываться параллельная во времени работа процессора над программой и выполнение периферийными устройствами процедур ввода-вывода.
В-третьих, необходимо упростить для пользователя и стандартизовать программирование операций ввода-вывода, обеспечит независимость программирования ввода-вывода от особенностей того или иного периферийного устройства.
В-четвертых, необходимо обеспечить автоматическое распознавание и реакцию ядра ЭВМ на многообразие ситуаций, возникающих в ПУ (готовность устройства, отсутствие носителя, различные нарушения нормальной работы и др.).
Создание современных средств вычислительной техники связано с задачей объединения в единый комплекс различных блоков ЭВМ, устройств хранения и отображения информации, измерительных приборов, устройств для связи с объектом (УСО), аппаратуры передачи данных и непосредственно ЭВМ. Эта задача возлагается на унифицированные системы сопряжения - интерфейсы. Термин «интерфейс» обычно трактуется как синоним слова «сопряжения» и понимается как совокупность схемотехнических средств, обеспечивающих непосредственное взаимодействие составных элементов устройства, системы. Нередко это определение используется для обозначения составных компонентов интерфейса. В одних случаях под интерфейсом понимают программные средства, обеспечивающие взаимодействие программ операционной системы, в других - устройства сопряжения, обеспечивающие взаимосвязь между составными функциональными блоками или устройствами системы. Для акцентирования внимания на комплексном характере интерфейса используются термины «интерфейсная система», «программный интерфейс», «физический интерфейс», «аппаратный интерфейс», и т. п.
Под стандартным интерфейсом понимается совокупность унифицированных аппаратных, программных и конструктивных средств, необходимых для реализации взаимодействия различных функциональных элементов в автоматических системах сбора и обработки информации при условиях, предписанных стандартом и направленных на обеспечение информационной, электрической и конструктивной совместимости указанных элементов.
В соответствии с первой совокупностью признаков интерфейсы можно разделить на следующие основные классы:
- машинные (или системные);
- периферийного оборудования;
- мультимикропроцессорных систем;
- распределенных ВС (вычислительных локальных сетей, распределенных систем управления).
Машинные интерфейсы предназначены для организации связей между составными компонентами ЭВМ, ВК, ВС, т. е. непосредственно для их построения и связи с внешней средой.
Интерфейсы периферийного оборудования выполняют функции сопряжения процессоров, контроллеров с УВВ, измерительными приборами, исполнительными механизмами, аппаратурой передачи данных (АПД) и внешними запоминающими устройствами (ВЗУ). Интерфейсы периферийного оборудования представляют самый большой класс систем сопряжения, что объясняется широкой номенклатурой и разнообразием периферийного оборудования. По своему функциональному назначению эти интерфейсы могут быть разделены на группы интерфейсов радиальной структуры (обеспечивающие схему сопряжения «точка-точка») и магистральной структуры (обеспечивающие схему «многоточечного» подключения).
Системы сопряжения первой группы составляют в основном так называемые малые интерфейсы, применяемые для сопряжения исполнительных механизмов ввода-вывода с контроллерами. К этим интерфейсам относятся: системы сопряжения с параллельной передачей информации, предназначенные для подключения стандартной периферии, системы сопряжения для подключения устройств, размещенных на большом удалении друг от друга.
Интерфейсы второй группы используются как самостоятельно, так и в качестве системотехнического дополнения, расширяющего функциональные возможности ЭВМ на уровне связи с объектом управления. К ним относятся магистральные интерфейсы программно-модульных систем типов IEC 625-1. Эти интерфейсы обеспечивают сопряжение программируемых контроллеров и ЭВМ с широким спектром цифровых измерительных приборов, преобразователей информации, генераторов, датчиков, пультов оператора. В вычислительных системах к такого рода интерфейсам относятся SCSI, USB.
Интерфейсы мультимикропроцессорных систем представляют собой в основном магистральные системы сопряжения, ориентированные на объединение в единый комплекс нескольких процессоров, модулей оперативных запоминающих устройств (ОЗУ), контроллеров
ВЗУ, ограниченно размещенных в пространстве. В группу интерфейсов мультимикропроцессорных систем входят в основном внутриблочные, процессорно -независимые системы сопряжения.
Ввод-вывод
Управление вводом-выводом в операционных системах
Побудительной причиной, в конечном итоге приведшей разработчиков к созданию системного программного обеспечения, в том числе операционных систем, стала необходимость предоставить программам средства обмена данными с внешними устройствами, которые бы не требовали непосредственного включения в каждую программу двоичного кода, управляющего устройствами ввода-вывода. Напомним, что программирование ввода-вывода является наиболее сложным и трудоемким, требующим очень высокой квалификации. Поэтому код, реализующий операции ввода-вывода, сначала стали оформлять в виде системных библиотечных процедур, а потом и вовсе вывели из систем программирования, включив в операционную систему. Это позволило не писать такой код в каждой программе, а только обращаться к нему — системы программирования стали генерировать обращения к системному коду ввода-вывода. Таким образом, управление вводом-выводом — это одна из основных функций любой операционной системы.
С одной стороны, организация ввода-вывода в различных операционных системах имеет много общего. С другой стороны, реализация ввода-вывода в ОС так сильно отличается от системы к системе, что очень нелегко выделить и описать именно основные принципы реализации этих функций. Проблема усугубляется еще и тем, что в большинстве ныне используемых систем эти моменты вообще, как правило, подробно не описаны (исключением являются только системы Linux и FreeBSD, для которых имеются комментированные исходные тексты), а детально описываются только функции API, реализующие ввод-вывод. Другими словами, для тех же систем Windows от компании Microsoft мы воспринимаем подсистему ввода-вывода как «черный ящик». Известно, как можно и нужно использовать эту подсистему, но детали ее внутреннего устройства остаются неизвестными. Поэтому в данной главе мы рассмотрим только основные идеи и концепции. Наконец, поскольку такой важный ресурс, как внешняя память, в основном реализуется на устройствах ввода-вывода с прямым доступом, а к ним, прежде всего, относятся накопители на магнитных дисках, мы также рассмотрим логическую структуру дис- ха, начальную стадию процесса загрузки операционной системы, кэширование операций ввода-вывода, оптимизацию дисковых операций.
Основные концепции организации ввода-вывода в операционных системах
Как известно, ввод-вывод считается одной из самых сложных областей проектирования операционных систем, в которой сложно применить общий подход и в которой изобилуют частные методы. В действительности, источником сложности является огромное число устройств ввода-вывода разнообразной природы, которые должна поддерживать операционная система. При этом перед создателями операционной системы встает очень непростая задача — не только обеспечить эффективное управление устройствами ввода-вывода, но и создать удобный и эффективный виртуальный интерфейс устройств ввода-вывода, позволяющий прикладным программистам просто считывать или сохранять данные, не обращая внимание на специфику устройств и проблемы распределения устройств между выполняющимися задачами. Система ввода-вывода, способная объединить в одной модели широкий спектр устройств, должна быть универсальной. Она должна.'читывать потребности существующих устройств, от простой мыши до клавиатур, принтеров, графических дисплеев, дисковых накопителей, компакт-дисков и даже сетей. С другой стороны, необходимо обеспечить доступ к устройствам ввода-вывода для множества параллельно выполняющихся задач, причем так, чтобы они как можно меньше мешали друг другу.
Поэтому самым главным является следующий принцип: любые операции по управлению вводом-выводом объявляются привилегированными и могут выполняться только кодом самой операционной системы. Для обеспечения этого принципа в большинстве процессоров даже вводятся режимы пользователя и супервизора. Последний еще называют привилегированным режимом, или режимом ядра. Как правило, в режиме супервизора выполнение команд ввода-вывода разрешено, а в пользовательском режиме — запрещено. Обращение к командам ввода-вывода в пользовательском режиме вызывает исключение1, и управление через механизм прерываний передается коду операционной системы. Хотя возможны и более сложные схемы, в которых в ряде случаев пользовательским программам может быть разрешено непосредственное выполнение команд ввода-вывода.
Еще раз подчеркнем, что мы, прежде всего, говорим о мультипрограммных операционных системах, для которых существует проблема разделения ресурсов, и одним из основных видов ресурсов являются устройства ввода-вывода и соответствующее программное обеспечение, с помощью которого осуществляется обмен данными между внешними устройствами и оперативной памятью. Помимо разделяемых устройств ввода-вывода (эти устройства допускают разделение посредством механизма доступа) существуют неразделяемые устройства. Примерами разделяемого устройства могут служить накопитель на магнитных дисках, устройство чтения компакт-дисков. Это устройства с прямым доступом. Примеры неразделяемых устройств — принтер, накопитель на магнитных лентах. Это устройства с последовательным доступом. Операционные системы должны управлять и теми, и другими, предоставляя возможность параллельно выполняющимся задачам их использовать.
Можно назвать три основные причины, по которым нельзя разрешать каждой отдельной пользовательской программе обращаться к внешним устройствам непосредственно.
Необходимость разрешать возможные конфликты в доступе к устройствам ввода-вывода. Например, пусть две параллельно выполняющиеся программы пытаются вывести на печать результаты своей работы. Если не предусмотреть внешнего управления устройством печати, то в результате мы можем получить абсолютно нечитаемый текст, так как каждая программа будет время от времени выводить свои данные, перемежающиеся с данными от другой программы. Либо можно взять ситуацию, когда для одной программы необходимо прочитать данные с одного сектора магнитного диска, а для другой записать результаты в другой сектор того же накопителя. Если операции ввода-вывода не будут отслеживаться каким-то третьим (внешним) процессом-арбитром, то после позиционирования магнитной головки для первой задачи может тут же прийти команда позиционирования головки для второй задачи, и обе операции ввода-вывода не смогут выполниться корректно.
Желание увеличить эффективность использования ресурсов ввода-вывода. Например, у накопителя на магнитных дисках время подвода головки чтения/записи к необходимой дорожке и время обращения к определенному сектору могут значительно (до тысячи раз) превышать время пересылки данных. В результате, если задачи по очереди обращаются к цилиндрам, далеко отстоящим друг от друга, то полезная работа, выполняемая накопителем, может быть существенно снижена.
Необходимость избавить программы ввода-вывода от ошибок. Ошибки в программах ввода-вывода могут привести к краху всех вычислительных процессов, ибо часть операций ввода-вывода требуются самой операционной системе. В ряде операционных систем системный ввод-вывод имеет существенно более высокие привилегии, чем ввод-вывод задач пользователя. Поэтому системный код, управляющий операциями ввода-вывода, очень тщательно отлаживается и оптимизируется для повышения надежности вычислений и эффективности использования оборудования.