Реферат: Устройство процессора
Процессоры всегда работали быстрее, чем память. Процессоры и память совершенствовались параллельно, поэтому это несоответствие сохранялось. Поскольку на микросхему можно помещать все больше и больше транзисторов, разработчики процессоров использовали эти преимущества для создания конвейеров и суперскалярной архитектуры, что еще больше повышало скорость работы процессоров. Разработчики памяти обычно использовали новые технологии для увеличения емкости, а не скорости, что еще больше усугубляло проблему. На практике такое несоответствие в скорости работы приводит к следующему: после того как процессор дает запрос памяти, должно пройти много циклов, прежде чем он получит слово, которое ему нужно. Чем медленнее работает память, тем дольше процессору приходится ждать, тем больше циклов должно пройти.
Как мы уже говорили выше, есть два пути решения этой проблемы. Самый простой из них — начать считывать информацию из памяти, когда это необходимо, и при этом продолжать выполнение команд, но если какая-либо команда попытается использовать слово до того, как оно считалось из памяти, процессор должен приостанавливать работу. Чем медленнее работает память, тем чаще будет возникать такая проблема и тем больше будет проигрыш в работе. Например, если отсрочка составляет 10 циклов, весьма вероятно, что одна из 10 следующих команд попытается использовать слово, которое еще не считалось из памяти.
Другое решение проблемы — сконструировать машину, которая не приостанавливает работу, но следит, чтобы программы-компиляторы не использовали слова до того, как они считаются из памяти. Однако это не так просто осуществить на практике. Часто при выполнении команды загрузки машина не может выполнять другие действия, поэтому компилятор вынужден вставлять пустые команды, которые не производят никаких операций, но при этом занимают место в памяти. В действительности при таком подходе простаивает не аппаратное, а программное обеспечение, но снижение производительности при этом такое же.
На самом деле эта проблема не технологическая, а экономическая. Инженеры знают, как построить память, которая будет работать так же быстро, как и процессор, но при этом ее приходится помещать прямо на микросхему процессора (поскольку информация через шину поступает очень медленно). Установка большой памяти на микросхему процессора делает его больше и, следовательно, дороже, и даже если бы стоимость не имела значения, все равно существуют ограничения в размерах процессора, который можно сконструировать. Таким образом, приходится выбирать между быстрой памятью небольшого размера и медленной памятью большого размера. Мы бы предпочли память большого размера с высокой скоростью работы по низкой цене.
Интересно отметить, что существуют технологии сочетания маленькой и быстрой памяти с большой и медленной, что позволяет получить и высокую скорость работы, и большую емкость по разумной цене. Маленькая память с высокой скоростью работы называется кэш-памятью (от французского слова cacher"прятать"; В английском "cash" получило значение "наличные (карманные) деньги", то есть то, что под рукой. А уже из него и образовался термин "кэш", который относят к сверхоперативной памяти.). Ниже мы кратко опишем, как используется кэш-память и как она работает.
Основная идея кэш-памяти проста: в ней находятся слова, которые чаще всего используются. Если процессору нужно какое-нибудь слово, сначала он обращается к кэш-памяти. Только в том случае, если слова там нет, он обращается к основной памяти. Если значительная часть слов находится в кэш-памяти, среднее время доступа значительно сокращается.
Таким образом, успех или неудача зависит от того, какая часть слов находится в кэш-памяти. Давно известно, что программы не обращаются к памяти наугад. Если программе нужен доступ к адресу А, то скорее всего после этого ей понадобится доступ к адресу, расположенному поблизости от А. Практически все команды обычной программы (за исключением команд перехода и вызова процедур) вызываются из последовательных участков памяти. Кроме того, большую часть времени программа тратит на циклы, когда ограниченный набор команд выполняется снова и снова. Точно так же при манипулировании матрицами программа скорее всего будет обращаться много раз к одной и той же матрице, прежде чем перейдет к чему-либо другому.
То, что при последовательных отсылках к памяти в течение некоторого промежутка времени используется только небольшой ее участок, называется принципом локальности. Этот принцип составляет основу всех систем кэш-памяти. Идея состоит в следующем: когда определенное слово вызывается из памяти, оно вместе с соседними словами переносится в кэш-память, что позволяет при очередном запросе быстро обращаться к следующим словам. Общее устройство процессора, кэш-памяти и основной памяти показано на рис.4. Если слово считывается или записывается k раз, компьютеру понадобится сделать 1 обращение к медленной основной памяти и k-1 обращений к быстрой кэш-памяти. Чем больше k, тем выше общая производительность.
Рис.4 Кэш-память находиться между процессором и основной памятью.
Мы можем сделать более строгие вычисления. Пусть с — время доступа к кэш памяти, m — время доступа к основной памяти и h — коэффициент совпадения, который показывает соотношение числа ссылок к кэш-памяти и общего числа всех ссылок. В нашем примере h=(k-l)/k. Таким образом, мы можем вычислить среднее время доступа:
Среднее время доступа =c+(l-h)m.
Если h—"1 и все обращения делаются только к кэш-памяти, то время доступа стремится к с. С другой стороны, если h—>0 и каждый раз нужно обращаться к основной памяти, то время доступа стремится к с+т: сначала требуется время с для проверки кэш-памяти (в данном случае безуспешной), а затем время m для обращения к основной памяти. В некоторых системах обращение к основной памяти может начинаться параллельно с исследованием кэш-памяти, чтобы в случае неудачного поиска цикл обращения к основной памяти уже начался. Однако эта стратегия требует способности останавливать процесс обращения к основной памяти в случае результативного обращения к кэш-памяти, что делает разработку такого компьютера более сложной.
Основная память и кэш-память делятся на блоки фиксированного размера с учетом принципа локальности. Блоки внутри кэш-памяти обычно называют строками кэш-памяти. Если обращение к кэш-памяти нерезультативно, из основной памяти в кэш-память загружается вся строка, а не только необходимое слово. Например, если строка состоит из 64 байтов, обращение к адресу 260 повлечет за собой загрузку в кэш-память всей строки, то есть с 256-го по 319-й байт. Возможно, через некоторое время понадобятся другие слова из этой строки. Такой путь обращения к памяти более эффективен, чем вызов каждого слова по отдельности, потому что вызвать k слов 1 раз можно гораздо быстрее, чем 1 слово k раз. Если входные сообщения кэш-памяти содержат более одного слова, это значит, что будет меньше таких входных сообщений и, следовательно, меньше непроизводительных затрат.
Разработка кэш-памяти очень важна для процессоров с высокой производительностью. Первый вопрос – размер кэш-памяти. Чем больше размер, тем лучше работает память, но тем дороже она стоит. Второй вопрос – размер строки кэш-памяти. Кэш-память объемом 16 Кбайт можно разделить на 1К строк по 16 байтов, 2К строк по 8 байтов и т. д. Третий вопрос – как устроена кэш-память, то есть как она определяет, какие именно слова содержатся в ней в данный момент
Четвертый вопрос — должны ли команды и данные находиться вместе в общей кэш-памяти. Проще разработать смежную кэш-память, в которой хранятся и данные, и команды. При этом вызов команд и данных автоматически уравновешивается. Тем не менее в настоящее время существует тенденция к использованию разделенной кэш-памяти, когда команды хранятся в одной кэш-памяти, а данные — в другой. Такая структура также называется Гарвардской (HarvardArchitecture), поскольку идея использования отдельной памяти для команд и отдельной памяти для данных впервые воплотилась в компьютере МагcIII, который был создан Гавардом Айкеном в Гарварде. Современные разработчики пошли по этому пути, поскольку сейчас широко используются процессоры с конвейерами, а при такой организации должна быть возможность одновременного доступа и к командам, и к данным (операндам). Разделенная кэш-память позволяет осуществлять параллельный доступ, а общая — нет. К тому же, поскольку команды обычно не меняются во время выполнения, содержание командной кэш-памяти никогда не приходится записывать обратно в основную память.
Наконец, пятый вопрос — количество блоков кэш-памяти. В настоящее время очень часто кэш-память первого уровня располагается прямо на микросхеме процессора, кэш-память второго уровня — не на самой микросхеме, но в корпусе процессора, а кэш-память третьего уровня — еще дальше от процессора.
8. Процессоры семейства AMDPhenomII
В начале года, 8 января, компания AMD представила новую платформу AMDDragon, основанную на процессоре нового семейства AMDPhenomII. Первоначально компания AMD продемонстрировала лишь два процессора данного семейства: AMDPhenomIIХ4 940 и AMDPhenomIIХ4 920, которые совместимы с разъемом АМ2+ и поддерживают память DDR2. Позднее были представлены процессоры семейства AMDPhenomII, совместимые с разъемом АМЗ и поддерживающие как DDR2, так и DDR3-память.
Модельный ряд процессоров семейства AMDPhenomII
Главное отличие новых процессоров семейства AMDPhenomII от процессоров семейства AMDPhenom заключается в том, что они выполнены по 45-нм техпроцессу с применением технологии S0I, в то время как процессоры семейства AMDPhenom выполняются по 65-нм техпроцессу.
Точно так же, как и процессоры семейства AMDPhenom, они представляют собой истинно многоядерные процессоры, то есть все ядра процессора выполнены на одном кристалле.
Среди нововведений, реализованных в новых процессорах AMDPhenomII, можно также отметить усовершенствованную технологию AMDCool'&'Quiet 3.0. Она объединяет в себе ряд функций, позволяющих снизить энергопотребление процессора в те моменты, когда он недозагружен, а также предотвратить перегрев процессора.
При анонсе нового процессора семейства AMDPhenomIIХ4 компания AMD указывала и на другие преимущества в сравнении с предыдущим семейством. В частности, отмечалось, что новые процессоры выполняют больше инструкций за такт (InstructionPerClock, IPC).
Семейство процессоров AMDPhenomII в настоящее время включает три серии: AMDPhenomII Х4 900, AMDPhenomII Х4 800 и AMDPhenomII ХЗ 700.
Процессоры серии AMDPhenomII Х4 900
Сейчас в 900-ю серию процессоров входят две четырехъядерные модели: AMDPhenomII Х4 940 и AMDPhenomIIХ4 920. Каждое ядро процессора AMDPhenomIIХ4 900-й серии имеет выделенный L-2-кэш размером 512 Кбайт и разделяемый между всеми ядрами L3-кэш размером 6 Мбайт.
Процессор AMDPhenomII Х4 940 имеет тактовую частоту 3,0 ГГц, а процессор AMDPhenomII Х4 920 — 2,8 ГГц. Эти процессоры оснащены интегрированным двухканальным контроллером памяти DDR2 и поддерживают память DDR2 667/800/1066.
Процессоры AMDPhenomII Х4 940 и AMDPhenomIIХ4 920 совместимы с разъемами SockeАМ2+/АМ2 и поддерживают шину HyperTransport 3.0 на скорости до 3600 МГц (двусторонняя) пропускной способностью до 16 Гбайт/с. Оба процессора имеют TDP 125 Вт.
Разница между моделями процессоров AMDPhenomIIХ4 940 и AMDPhenomIIХ4 920 заключается не только в тактовой частоте, но еще и том, что процессор AMDPhenomII Х4 940 имеет разблокированный множитель, что позволяет реализовывать его эффективный разгон. Вообще, если говорить о разгонном потенциал процессора AMDPhenomII Х4 940, то, по сообщениям независимых источников в Интернете, он достаточно большой. Так, есть данные что применение жидкого азота для охлаждения процессора позволило достичь рекордной тактовой частоты в 6 ГГц, а посредством обычного воздушного охлаждения этот процессор легко разгоняется до 4 ГГц.