Многоядерность процессоров
Автор работы: Пользователь скрыл имя, 21 Января 2014 в 22:39, реферат
Описание работы
Центральный процессор – электронный блок либо микросхема — исполнитель машинных инструкций (кода программ), главная часть аппаратного обеспечения компьютера или программируемого логического контроллера. Иногда его называют микропроцессором или просто процессором.
Содержание работы
Введение……………………………………………………………………………...3
Новый путь развития………………………………………………………………..3
Закон Гордона Мура…………………………………………………………...……6
Сравнение центрального процессора с графическим……………………………..8
Многоядерность на практике……………………………………………………….9
Заключение…………………………………………………………………………11
Список использованных источников……………………………………………..12
Файлы: 1 файл
реферат по информатике.doc
— 81.50 Кб (Скачать файл)МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ
ФГОУ ВПО «Мичуринский Государственный Аграрный Университет»
Кафедра
Физики и информационных технологий
Реферат
по дисциплине: «Информатика»
на тему: «Многоядерность процессоров»
Мичуринск-Наукоград РФ 2011
Содержание:
Введение…………………………………………………………
Новый путь развития…………………………………………………………
Закон Гордона Мура………………………………………………
Сравнение центрального процессора с графическим……………………………..8
Многоядерность на практике……………………………………………………….
Заключение……………………………………………………
Список использованных
источников……………………………………………..
Введение
Центральный процессор – электронный блок либо микросхема — исполнитель машинных инструкций (кода программ), главная часть аппаратного обеспечения компьютера или программируемого логического контроллера. Иногда его называют микропроцессором или просто процессором.
Первым общедоступным микропроцессором был 4-разрядный Intel 4004, представленный 15 ноября 1971 года корпорацией Intel. Он содержал 2300 транзисторов, работал на тактовой частоте 92,6 кГц и стоил 300 долл.
В современных компьютерах процессоры выполнены в виде компактного модуля (размерами около 5×5×0,3 см), вставляющегося в ZIF-сокет. Большая часть современных процессоров реализована в виде одного полупроводникового кристалла, содержащего миллионы, а с недавнего времени даже миллиарды транзисторов.
История развития центральных процессоров довольно интересна. Если проследить за ней с появления первых настольных компьютеров, то становится очевидно, что основным двигателем производительности было повышение тактовой частоты. Но всё в природе имеет придел. С увеличением частоты тепловыделение процессоров нелинейно растёт, что в конечном итоге приводит к слишком высоким значениям. Не помогает даже использование более тонких технических процессов при создании транзисторов.
Новый путь развития
Выход нашли в использовании нескольких ядер в одном кристалле, такой процессор «2 в 1». Их появление на рынке десктопов вызвало большие споры. Нужны ли нам многоядерные процессоры? Сейчас уже можно ответить с уверенностью: нужны. В ближайшие годы просто невозможно представить прогрессивного пути развития этой отрасли без использования нескольких ядер.
И вот тут хотелось
бы отметить один интересный
нюанс. Применительно к «
- Увеличение разрядности (32-х разрядность и современная 64-х разрядность). Прирост идет за счет того, что на уровне отдельных команд вы можете манипулировать большим объемом данных.
- Усложнение логики исполнения потока команд, спекулятивное исполнение, появление множества однородных исполнительных устройств. Суть всех этих нововведений позволяет процессору в линейном потоке инструкций выполнять одновременно несколько идущих друг за другом команд.
- Появление наборов новых инструкций, от MMX до SSE. Суть очень похожа на рост разрядности: команды из этих расширений умеют манипулировать данными большой разрядности (корректнее сказать, это операции над массивами данных).
- Перенос FPU из отдельного чипа прямо на кристалл к процессору (кто-то еще помнит такое слово — «сопроцессор»?). Очевидно, что более тесная интеграция хорошо сказалась на производительности.
- Рост объемов кеш-памяти. Попросту говоря — снижение числа обращений в медленную внешнюю память.
- И, наконец, многоядерность, о которой мы и будем сегодня говорить.
Как видите, направлений для траты транзисторов было очень много, но, к сожалению, не все из них позволяют ускорить уже существующие программы. Когда вы делаете очередной апгрейд системы, есть желание получить результат здесь и сейчас, а не выслушивать от производителя процессора добрые сказки о том, что ваш любимый математический пакет написан неправильно, ибо не использует SSE, не критичен к объему кеша и не понимает прелестей многоядерности. И именно поэтому ваш новенький восьмиядерный процессор, в котором транзисторов в шесть раз больше, чем в старом, даст прирост при использовании этой программы в каких-то жалких два раза... Рост эффективности исполнения команд процессорным ядром — это весьма и весьма небыстрый процесс (и 5% прироста на мегагерц при смене поколения — это очень хорошая цифра). Поэтому долгие годы, до наступления кризиса в этой сфере и прихода эры многоядерности, рост производительности шел в основном за счет тактовой частоты. Тут все просто и понятно: заставил процессор, даже без всяких нововведений в области его архитектуры, работать на более высокой тактовой частоте — получил пропорциональный рост производительности. Причем, заметьте, даже для старых приложений.
Так чем же лучше многоядерные процессоры? Многоядерность сродни использованию нескольких отдельных процессоров в одном компьютере. Только находятся они в одном кристалле и не полностью независимы (например, использование общей кэш-памяти). При использовании уже имеющегося программного обеспечения, созданного для работы только с одним ядром, это даёт определённый плюс. Так, можно запустить одновременно две ресурсоёмкие задачи без какого-либо дискомфорта. А вот ускорение одного процесса – задача для таких систем непосильная. Таким образом, мы получаем практически тот же самый одноядерный процессор с небольшим бонусом в виде возможности использования нескольких требовательных программ одновременно.
Выход из данной ситуации очевиден – разработка нового поколения ПО, способного задействовать несколько ядер одновременно. Этот процесс можно назвать распараллеливанием процессов. На деле всё оказалось довольно сложно.
Некоторые задачи довольно легко распараллелить. К ним, например, относится кодирование аудио и видео. В его основе лежит набор однотипных потоков, так что заставить их выполняться одновременно – довольно простая задача. Выигрыш многоядерных процессоров в задачах кодирования перед одноядерными аналогами пропорционален количеству этих самых ядер: два ядра – вдвое быстрее, четыре – в четыре раза и так далее. Но подавляющую часть задач распараллелить намного сложнее. В большинстве случаев требуется кардинальная переработка программного кода.
Несколько раз из уст представителей довольно серьёзных компьютерных компаний звучали радостные слова об удачной разработке многоядерных процессоров нового поколения, способных самостоятельно раскладывать один поток на несколько независимых. Но до сих пор не было продемонстрировано ни одного рабочего образца подобного чуда.
А пока действительные шаги на пути к повсеместному использованию многоядерных процессоров довольно незамысловаты и очевидны. Первым является само создание и совершенствование этих процессоров, снижение ценовых рамок. Так, в среднем сегменте обоих мировых компьютерных гигантов – Intel и AMD – можно найти достаточно широкое разнообразие двухъядерных процессоров. Уже в следующем году в класс mainstream переберутся решения с четырьмя ядрами. А вот второй шаг на пути к пользователю делают сами разработчики программного обеспечения. Многие современные игры уже обзавелись поддержкой двух ядер. Самым требовательным из них практически необходим двухъядерный процессор для обеспечения оптимальной производительности.
Закон Гордона Мура
Если окинуть взглядом прилавки компьютерных магазинов и немного проанализировать, то общая картина отнюдь не столь плоха. Производителям процессоров удалось достичь довольно высокого уровня выхода годных кристаллов. На ценообразовании это отражается следующим образом: увеличение числа ядер вдвое зачастую не ведёт к двойному повышению стоимости. Хотя это вполне логично: производительность в среднем возрастает тоже далеко не в два раза.
Стоит отметить, что сколь бы ни был тернист путь к многоядерности, альтернативы ему в обозримом будущем попросту нет. Нам, как обычным потребителям, остаётся только своевременно апгрейдить свой компьютер, из раза в раз увеличивая число встроенных процессорных ядер, выводя тем самым общую производительность на новый уровень.
Тот фантастический темп, в котором идет развитие всей IT-отрасли последние годы, был предсказан почти полвека назад, в далеком 1965 году (всего лишь через шесть лет после изобретения интегральной микросхемы) Гордоном Муром и всем хорошо известен как эмпирический закон имени его самого. Мур предрек, что число транзисторов на одном кристалле будет удваиваться каждые два года.
О том, что расти старыми темпами вверх по частоте до бесконечности не получится, в законодателе мод, компании Intel, задумывались еще в эпоху первого поколения Pentium. И понятно, что если не получается расти в высоту, то единственный способ роста — в ширину. Примерно в то время появился упомянутый выше набор инструкций для работы с массивами данных MMX. И именно в те годы в недрах компании начинают ковать процессор с принципиально новой архитектурой — создается семейство Itanium, которое управляется «широкими» инструкциями с так называемым явным параллелизмом (EPIC). Более того, перспективы роста в рамках x86-архитектуры в те годы казались настолько туманными, что на архитектуру Itanium предполагалось пересадить всю индустрию ПК (именно поэтому эти процессоры умели эмулировать x86 набор инструкций — планировался долгий «переходный период»).
Как уже говорилось ранее, рост по частоте — это самый простой и заманчивый способ обеспечить прирост производительности процессоров. В конце 90-х инженеры Intel придумали архитектуру NetBurst, и тогда некоторым из них показалось, что кто-то Большой надежно схвачен за бороду. В свое время руководитель СССР Никита Хрущев обещал советским людям коммунизм в отдельно взятом государстве к 1980 году, а Intel прогнозировала к 2010 году процессоры с частотой в 10 ГГц в практически каждом отдельно взятом ПК.
Как мы теперь знаем, оба прогноза не сбылись. На практике NetBurst масштабировался совсем не так хорошо, как представлялось поначалу. С одной стороны, рост частоты приводил к чрезмерным потреблению мощности и выделению тепла. С другой — архитектура процессора для работы на этих частотах требовала введения все большего и большего числа стадий конвейера, что самым прямым образом сказывалось на эффективности работы процессора в пересчете на один мегагерц.
Сравнение центрального процессора с графическим
Последователи NetBurst в один ничем не примечательный день были объявлены еретиками, корпорация вспомнила о старой – доброй архитектуре P6, и показанный публике Core 2 Duo ознаменовал собой начало новой эры — эры роста процессоров не в высоту, а в ширину.
Какого впечатляющего
роста можно добиться за счет «роста
в ширину» лучше всего
Параллельная по своей
сути природа построения 3D-изображений
(а также относительная
Итак, в середине 2000-х наступил кризис роста по частоте, производители процессоров подняли руки вверх и сказали «Мы сделали все что могли! Против законов физики не попрешь. Теперь ваше слово, товарищи программисты!». Бессилие производителей железа вылилось в целую головную боль разработчиков ПО.
Многоядерность на практике
Думаю, практически любой человек, работавший с Windows, знает, что это многозадачная ОС. Для простого юзера это обычно означает, что он может одновременно паковать zip-архив, слушать музыку и при этом еще и набивать текст в Word. Если говорить строго формально, с точки зрения операционной системы, то в данном случае одновременно работает несколько процессов. Процесс — это, грубо говоря, «программа», главной особенностью которой является выделенное только ей одной собственное виртуальное пространство в памяти, изолированное от аналогичных пространств других процессов в системе (это сделано для того, чтобы ошибки одной программы не сказывались на работе других программ, работающих с ней одновременно). Так вот, на самом деле описанная выше иллюзия одновременной работы нескольких программ достигается не на уровне отдельных процессов, а на более низком уровне — на уровне так называемых потоков, или нитей. Нить — это независимый поток исполнения команд процессором. Каждый процесс в системе имеет минимум один такой поток, но на практике обычно нитей больше чем одна. Для того, чтобы узнать, сколько у того или иного процесса нитей, можно воспользоваться «диспечером задач». Нажмите Ctrl-Alt-Del, выберите вкладку «процессы». В меню «вид», «выбрать столбцы» выберите столбец «счетчик потоков». Теперь можно узнать, у какого процесса сколько потоков, например, у процесса explorer.exe (это всем известный «проводник») создано 11 нитей.