Страница 1 из 12 За последние годы сформировалось несколько направлений, или семейств массовых высокопроизводительных микропроцессоров, конкурирующих друг с другом на рынке применений для десктопных компьютеров. Каждое семейство имеет свою микроархитектуру, или внутреннюю организацию процессорного ядра, разработанную на основе представлений её создателей о потребностях пользователей, критериях оценки производительности и прочих потребительских качеств, перспективах развития и рыночных тенденциях. Эти представления влияют на принятие разработчиками принципиальных решений о тех или иных ключевых архитектурных особенностях процессора и о различных компромиссах, заложенных в архитектуру.
Общая организация, кэш инструкций и предсказание переходов, выборка и декодирование Несмотря на то, что общая организация суперскалярного процессора с внеочередным исполнением операций давно устоялась и воспроизводится в каждой современной архитектуре, имеется также большое количество принципиальных отличий между семействами. По существу, воспроизводится только общая структура процессора — а организация его отдельных подсистем различается весьма значительно. В технической документации и статьях по архитектуре того или иного семейства процессоров можно найти более-менее обстоятельные описания его различных подсистем. Имеются также публикации по сравнительному анализу конкурирующих архитектур. Однако в связи с отсутствием единства в терминологии и различием в подходах разработчиков к представлению внутренней структуры своих процессоров возникают трудности в понимании их характеристик, особенностей и различий. Кроме того, процессоры развиваются, и их микроархитектуры претерпевают количественные и качественные изменения с этим развитием, что тоже затрудняет объективное сопоставление различных продуктов. В настоящей статье делается попытка структурного и единообразного сравнения основных процессорных архитектур сегодняшнего дня. Будет рассматриваться организация наиболее важных подсистем для каждого процессора. Основной упор в изложении будет сделан на самых сложных элементах микроархитектуры — декодере машинных инструкций и подсистеме внеочередного исполнения операций (Out-of-Order execution, OoO). Эти элементы определяют индивидуальность каждого процессора и оказывают решающее влияние на его производительность. Все остальные подсистемы как бы обрамляют эти два элемента и играют подчинённую роль, хотя также могут оказывать значительное влияние на производительность. Поскольку статья посвящена микроархитектурам, в ней не будут обсуждаться вопросы организации вычислительных систем на базе рассмотренных процессоров, а также вопросы комплексирования нескольких процессорных ядер на одном кристалле либо в одном корпусе. Несмотря на появление и распространение так называемых двухъядерных процессоров, микроархитектура каждого процессорного ядра не претерпела особых изменений. Поэтому в дальнейшем по тексту под процессором мы будем понимать отдельное процессорное ядро, исполняющее независимый поток инструкций. Будут рассмотрены следующие основные семейства процессоров: Intel Pentium III, Intel Pentium 4, Intel Core, AMD Athlon 64 / Opteron и IBM PowerPC 970. Поскольку каждое из этих семейств претерпело определённое развитие, будут рассматриваться и отдельные представители этих семейств. Дадим краткие характеристики каждому из перечисленных семейств, а также конкретным процессорам, его представляющим (в скобках указывается сокращённое название каждого процессора в том виде, в каком оно будет употребляться по тексту): - Intel Pentium III (P-III) — наиболее типичный представитель 6-го поколения процессорной архитектуры (P6) компании Intel. Будут также упоминаться процессоры, являющиеся развитием P-III — Pentium M (P-M) и Core Duo (P-M2). В связи с наличием серьёзных архитектурных усовершенствований процессоры P-M и P-M2 мы будем при необходимости выделять в отдельную подгруппу (P6+).
- Intel Pentium 4 (P-4) — представитель 7-го поколения процессоров (P7), эту архитектуру также называют NetBurst. Будет в основном рассматриваться первоначальный вариант микроархитектуры. Развитием семейства является процессор Prescott (P-4E), имеющий определённые микроархитектурные отличия и поддерживающий 64-битный режим целочисленной и адресной арифметики EM64T (x86-64).
- Intel Core (P8) — процессор новой микроархитектуры, выпуск намечен на III квартал 2006 г. В продажу поступит под названиями Core 2 Duo и Core 2 Extreme. Известен также под кодовым именем Conroe. Несмотря на то, что этот процессор базируется в основном на архитектурных принципах семейства P6, он имеет много принципиальных отличий количественного и качественного плана. По этой причине будем считать его представителем 8-го поколения процессорной архитектуры (P8) компании Intel.
- AMD Athlon 64 / Opteron (K8) — представитель единственной выпускаемой в настоящее время высокопроизводительной микроархитектуры компании AMD. Базируется на архитектурных принципах предыдущего семейства K7, отличается от него определёнными усовершенствованиями, поддержкой 64-битного режима AMD64 (x86-64) и наличием встроенного контроллера памяти.
- IBM PowerPC 970 (PPC970) — процессор RISC-архитектуры IBM Power, известен также под названием G5. Добавлен в рассмотрение к другим процессорам, относящимся к архитектуре x86, так как предназначен для недорогих платформ и достаточно распространён. До недавнего времени был основным процессором персональных компьютеров компании Apple (в настоящее время Apple постепенно переводит свои ПК на процессоры компании Intel). Основан на микроархитектуре серверного процессора Power4.
Настоящая статья основана на материалах компаний Intel, AMD, IBM и на других публикациях по рассматриваемым вопросам, а также на результатах экспериментального исследования микроархитектур. Некоторые выводы о структуре и количественных параметрах процессоров являются предположениями автора, основанными на результатах исследования и изучения литературы. Эти предположения могут оказаться не всегда верными, но в целом они удовлетворительно описывают большинство наблюдаемых эффектов и не противоречат доступным публикациям. |