IDT-C6: проще — значит лучше?


Может ли простота победить сложность, если речь идёт о микропроцессорах? Фирма  Centaur Technology  считает, что может, и готовит к продаже новый процессор Pentium-класса IDT-C6 (WinChip C6). Этот радикально упрощённый процессор по своей архитектуре радикально отходит от всех современных тенденций в проектировании как RISC, так и CISC чипов.

На первый взгляд, в этом процессоре нет вообще ничего: ни суперскалярных конвейеров (superscalar pipelining), ни внеочередного выполнения (out-of-order execution), ни виртуального исполнения (speculative execution), ни переименования регистров (rename registers), ни перенаправляющих буферов (reordering buffers). В нём нет даже механизма предсказания переходов (branch prediction) — это первый процессор х86 без такой возможности с 1993 года.

Ещё удивительнее то, что IDT-C6 является первой разработкой неизвестной доселе кампании. Centaur — это новое подразделение компании Integrated Device Technology (IDT), известного производителя статической памяти (SRAM) и RISC-процессоров серии Rx000 по лицензии Silicon Graphics/Mips. Однако у IDT до сих пор не было опыта в проектировании и производстве процессоров архитектуры х86.

Power consumption       Winstone test results

Тем не менее, по данным Centaur, IDT-C6 200 MHz не уступает PentiumMMX 200 MHz на тесте Winstone 97 business benchmark. Как следует из таблицы, он имеет также существенно меньший размер кристалла, чем Pentium, что, по логике, должно привести к его меньшей стоимости. К преимуществам нового процессора следует, без сомнения, отнести большой размер кэша первого уровня и низкий уровень энергопотребления.

 Centaur IDT-C6Intel PentiumMMX (P55C)Intel 486DX4*
Максимальная тактовая частота200 MHz**233 MHz100 MHz
Поддержка MMXДаДаНет
Выполнение инструкций MMXОдна за тактДве за тактНевозможно
Число внутренних конвейеровОдинДваОдин
Технология изготовления0.35-микрон CMOS0.35-микрон CMOS0.6-микрон CMOS
Площадь кристалла88 кв.мм140 кв.мм345 кв.мм
Используемый разъёмSocket 7Socket 7486 socket
Дата выпускаСентябрь 1997Июнь 1997Март 1994

*486DX4 — самый мощный процессор 486 производства Intel. Ранние 486-е (впервые представленные в 1989 году) работали на частоте не больше 66 MHz, имели общий кэш L1 размером 8 KB состояли из 1.2 миллиона транзисторов.
**Планируется выпуск 225- и 240-MHz версий. Как это делалось

Идею создания простого х86 процессора президент компании Centaur Глен Генри (Glenn Henry), работавший ранее в IBM, Dell и Mips, вынашивал несколько лет. На своей последней работе он занимался созданием комбинированного RISC/CISC процессора, способного выполнять как инструкции х486, так и Rx000. Этот проект потерпел неудачу, но Глен Генри принёс свои идеи в IDT. В апреле 1995 он сел с тремя ведущими инженерами компании за свой кухонный стол в Остине (Austin), штат Техас, и они придумали IDT-C6. По их мысли, будущий чип должен был содержать один 6-ступенчатый конвейер команд, что само по себе является почти ересью. Практически все современные процессоры — как RISC, так и CISC — являются суперскалярными, то есть имеют несколько конвейеров и выполняют несколько инструкций за такт. Суперскалярные процессоры нуждаются в сложных логических схемах, контролирующих продвижение инструкций по конвейерам. Отказ от суперскалярности позволил моментально "сэкономить" миллионы транзисторов и отказаться от сложной логики.

Новейшие процессоры — такие, как Pentium Pro и Pentium II компании Intel, AMD K6, Cyrix 6x86Mx — могут выполнять инструкции "вне очереди". Отсутствие в чипе компании Centaur такой возможности позволяет ещё уменьшить количество транзисторов, так как позволяет отказаться от перенаправляющего буфера, переименования регистров и соответствующей управляющей логики.

IDT Straightforward Pipeline

Но Глен Генри на этом не остановился. Он решил выкинуть и блок предсказания переходов. Этот ход позволяет отказаться от буфера адресов перехода (branch target buffer) и всего с ним связанного, однако ветвления настолько часто встречаются в современном коде (примерно через каждые 5 инструкций системы команд х86), что такое решение представляется по меньшей мере спорным. Для того, чтобы понять причины такого решения, надо внимательно посмотреть на конвейер процессора IDT-C6. Он практически такой же, как и в 486 процессоре (выборка, декодирование, вычисление адреса, выполнение, запись результата), за исключением дополнительного шага декодирования (Шаг 2). В процессе выполнения этого шага IDT-C6 транслирует инструкции х86 в простейшие 32-битные микроинструкции или считывает микрокод из внутренней ROM, так же, как и большинство других процессоров х86. На шаге 3 процессор полностью транслирует инструкцию и обращается к регистрам. На шаге 4 производится проверка ветвления. Если ветвления в данной точке не происходит, то шаг 4 занимает всего один такт, инструкция продвигается дальше и всё прекрасно. Если же требуется переход, процессор должен вновь выбрать инструкцию, на которую производится переход, из кэша и провести её по конвейеру, что требует 4 такта. По мнению разработчиков, большинство ветвлений не приводят к переходам, поэтому IDT-C6 требует в среднем 2.5 такта на ветвление.

Для сравнения, Pentium требует только 1 такт на ветвление в случае, если переход предсказан правильно. С другой стороны, при ошибке предсказания требуется 4 или 5 тактов. Генри подсчитал, что в среднем Pentium требует 1.8 такта на ветвление. По его мнению, усложнение Pentium приводит к минимальному росту эффективности.

Благодаря таким дизайнерским решениям IDT-C6 требует существенно меньше времени на тестирование, чем более сложные процессоры. "Создание и тестирование суперскалярного процессора с внеочередным выполнением инструкций является серьёзной проблемой для любого, особенно если речь идёт об архитектуре х86 " — утверждает Генри. Два года, за которые была проведена разработка IDT-C6, составляют около половины срока создания и тестирования большинства процессоров. Так компания NexGen работала 8 лет над созданием первого чипа архитектуры х86, а Intel работает над Merced около 5 лет.

При всей своей простоте IDT-C6 содержит некоторые хитрости для ускорения выполнения инструкций. Так в случае ветвления программы адрес возврата помещается в специальный внутренний стек возврата глубины 8. Большинство других процессоров записывают этот адрес в память. Centaur утверждает, что за счёт такого решения операция ускоряется на 90%.

Ещё одной "примочкой" является наличие кэша, содержащего 8 входов таблицы страниц (page-directory table), которую процессоры х86 используют для обращения к памяти. Около 90% случаев IDT-C6 находит необходимый указатель в кэше вместо того, чтобы обращаться в таблицу. Чтобы предотвратить простой конвейера во время выполнения сложных инструкций на шаге 2 предусмотрена специальная очередь, позволяющая выбирать и транслировать до трёх инструкций одновременно с выполнением другой инструкции.

Другими словами, IDT-C6 не так прост, как кажется с первого взгляда. На самом деле, это попытка быстро создать дешёвый процессор с хорошей производительностью. Удалась ли эта попытка, можно будет судить после тестов IDT-C6. Что дальше?

Centaur планирует выпустить новый чип под кодовым наименованием С3А в марте или апреле 1998 года. Это соответствует заявлениям президента компании о том, что простая архитектура процессора позволит представлять новые разработки каждые полгода. По имеющимся у журнала BYTE сведениям, новый чип будет уже далеко не так прост. Компания собирается включить в него расширения для ускорения обработки 3D-графики, суперскалярный блок MMX с двумя конвейерами и блок предсказания переходов. Получается, что от чего уходили, к тому и пришли?

По заявлениям представителей компании, С3А будет превосходить Pentium на тесте Intel's Media Benchmark, а также выполнять 80% операций с плавающей точкой "не медленнее" своего именитого "коллеги".

Хотя процессор производится по 0.35-микронной технологии, компания надеется увеличить тактовую частоту до 266 МГц. При этом, усовершенствования не окажут существенного влияния на площадь кристалла — она будет порядка 90 мм2. Также планируется производство чипов с интегрированным кэшем L2, что позволит разъёму Socket7 сохранять конкурентоспособность.

За основу взята информация журнала BYTE и компании Centaur Technology



22 декабря 1997 Г.

What is C6?

IDT-C6: проще — значит лучше?

Может ли простота победить сложность, если речь идёт о микропроцессорах? Фирма  Centaur Technology  считает, что может, и готовит к продаже новый процессор Pentium-класса IDT-C6 (WinChip C6). Этот радикально упрощённый процессор по своей архитектуре радикально отходит от всех современных тенденций в проектировании как RISC, так и CISC чипов.

На первый взгляд, в этом процессоре нет вообще ничего: ни суперскалярных конвейеров (superscalar pipelining), ни внеочередного выполнения (out-of-order execution), ни виртуального исполнения (speculative execution), ни переименования регистров (rename registers), ни перенаправляющих буферов (reordering buffers). В нём нет даже механизма предсказания переходов (branch prediction) — это первый процессор х86 без такой возможности с 1993 года.

Ещё удивительнее то, что IDT-C6 является первой разработкой неизвестной доселе кампании. Centaur — это новое подразделение компании Integrated Device Technology (IDT), известного производителя статической памяти (SRAM) и RISC-процессоров серии Rx000 по лицензии Silicon Graphics/Mips. Однако у IDT до сих пор не было опыта в проектировании и производстве процессоров архитектуры х86.

Power consumption       Winstone test results

Тем не менее, по данным Centaur, IDT-C6 200 MHz не уступает PentiumMMX 200 MHz на тесте Winstone 97 business benchmark. Как следует из таблицы, он имеет также существенно меньший размер кристалла, чем Pentium, что, по логике, должно привести к его меньшей стоимости. К преимуществам нового процессора следует, без сомнения, отнести большой размер кэша первого уровня и низкий уровень энергопотребления.

  Centaur IDT-C6 Intel PentiumMMX (P55C) Intel 486DX4*
Максимальная тактовая частота 200 MHz** 233 MHz 100 MHz
Поддержка MMX Да Да Нет
Выполнение инструкций MMX Одна за такт Две за такт Невозможно
Число внутренних конвейеров Один Два Один
Технология изготовления 0.35-микрон CMOS 0.35-микрон CMOS 0.6-микрон CMOS
Площадь кристалла 88 кв.мм 140 кв.мм 345 кв.мм
Используемый разъём Socket 7 Socket 7 486 socket
Дата выпуска Сентябрь 1997 Июнь 1997 Март 1994

*486DX4 — самый мощный процессор 486 производства Intel. Ранние 486-е (впервые представленные в 1989 году) работали на частоте не больше 66 MHz, имели общий кэш L1 размером 8 KB состояли из 1.2 миллиона транзисторов.
**Планируется выпуск 225- и 240-MHz версий.

Как это делалось

Идею создания простого х86 процессора президент компании Centaur Глен Генри (Glenn Henry), работавший ранее в IBM, Dell и Mips, вынашивал несколько лет. На своей последней работе он занимался созданием комбинированного RISC/CISC процессора, способного выполнять как инструкции х486, так и Rx000. Этот проект потерпел неудачу, но Глен Генри принёс свои идеи в IDT. В апреле 1995 он сел с тремя ведущими инженерами компании за свой кухонный стол в Остине (Austin), штат Техас, и они придумали IDT-C6. По их мысли, будущий чип должен был содержать один 6-ступенчатый конвейер команд, что само по себе является почти ересью. Практически все современные процессоры — как RISC, так и CISC — являются суперскалярными, то есть имеют несколько конвейеров и выполняют несколько инструкций за такт. Суперскалярные процессоры нуждаются в сложных логических схемах, контролирующих продвижение инструкций по конвейерам. Отказ от суперскалярности позволил моментально "сэкономить" миллионы транзисторов и отказаться от сложной логики.

Новейшие процессоры — такие, как Pentium Pro и Pentium II компании Intel, AMD K6, Cyrix 6x86Mx — могут выполнять инструкции "вне очереди". Отсутствие в чипе компании Centaur такой возможности позволяет ещё уменьшить количество транзисторов, так как позволяет отказаться от перенаправляющего буфера, переименования регистров и соответствующей управляющей логики.

IDT Straightforward Pipeline

Но Глен Генри на этом не остановился. Он решил выкинуть и блок предсказания переходов. Этот ход позволяет отказаться от буфера адресов перехода (branch target buffer) и всего с ним связанного, однако ветвления настолько часто встречаются в современном коде (примерно через каждые 5 инструкций системы команд х86), что такое решение представляется по меньшей мере спорным. Для того, чтобы понять причины такого решения, надо внимательно посмотреть на конвейер процессора IDT-C6. Он практически такой же, как и в 486 процессоре (выборка, декодирование, вычисление адреса, выполнение, запись результата), за исключением дополнительного шага декодирования (Шаг 2). В процессе выполнения этого шага IDT-C6 транслирует инструкции х86 в простейшие 32-битные микроинструкции или считывает микрокод из внутренней ROM, так же, как и большинство других процессоров х86. На шаге 3 процессор полностью транслирует инструкцию и обращается к регистрам. На шаге 4 производится проверка ветвления. Если ветвления в данной точке не происходит, то шаг 4 занимает всего один такт, инструкция продвигается дальше и всё прекрасно. Если же требуется переход, процессор должен вновь выбрать инструкцию, на которую производится переход, из кэша и провести её по конвейеру, что требует 4 такта. По мнению разработчиков, большинство ветвлений не приводят к переходам, поэтому IDT-C6 требует в среднем 2.5 такта на ветвление.

Для сравнения, Pentium требует только 1 такт на ветвление в случае, если переход предсказан правильно. С другой стороны, при ошибке предсказания требуется 4 или 5 тактов. Генри подсчитал, что в среднем Pentium требует 1.8 такта на ветвление. По его мнению, усложнение Pentium приводит к минимальному росту эффективности.

Благодаря таким дизайнерским решениям IDT-C6 требует существенно меньше времени на тестирование, чем более сложные процессоры. "Создание и тестирование суперскалярного процессора с внеочередным выполнением инструкций является серьёзной проблемой для любого, особенно если речь идёт об архитектуре х86 " — утверждает Генри. Два года, за которые была проведена разработка IDT-C6, составляют около половины срока создания и тестирования большинства процессоров. Так компания NexGen работала 8 лет над созданием первого чипа архитектуры х86, а Intel работает над Merced около 5 лет.

При всей своей простоте IDT-C6 содержит некоторые хитрости для ускорения выполнения инструкций. Так в случае ветвления программы адрес возврата помещается в специальный внутренний стек возврата глубины 8. Большинство других процессоров записывают этот адрес в память. Centaur утверждает, что за счёт такого решения операция ускоряется на 90%.

Ещё одной "примочкой" является наличие кэша, содержащего 8 входов таблицы страниц (page-directory table), которую процессоры х86 используют для обращения к памяти. Около 90% случаев IDT-C6 находит необходимый указатель в кэше вместо того, чтобы обращаться в таблицу. Чтобы предотвратить простой конвейера во время выполнения сложных инструкций на шаге 2 предусмотрена специальная очередь, позволяющая выбирать и транслировать до трёх инструкций одновременно с выполнением другой инструкции.

Другими словами, IDT-C6 не так прост, как кажется с первого взгляда. На самом деле, это попытка быстро создать дешёвый процессор с хорошей производительностью. Удалась ли эта попытка, можно будет судить после тестов IDT-C6.

Что дальше?

Centaur планирует выпустить новый чип под кодовым наименованием С3А в марте или апреле 1998 года. Это соответствует заявлениям президента компании о том, что простая архитектура процессора позволит представлять новые разработки каждые полгода. По имеющимся у журнала BYTE сведениям, новый чип будет уже далеко не так прост. Компания собирается включить в него расширения для ускорения обработки 3D-графики, суперскалярный блок MMX с двумя конвейерами и блок предсказания переходов. Получается, что от чего уходили, к тому и пришли?

По заявлениям представителей компании, С3А будет превосходить Pentium на тесте Intel's Media Benchmark, а также выполнять 80% операций с плавающей точкой "не медленнее" своего именитого "коллеги".

Хотя процессор производится по 0.35-микронной технологии, компания надеется увеличить тактовую частоту до 266 МГц. При этом, усовершенствования не окажут существенного влияния на площадь кристалла — она будет порядка 90 мм2. Также планируется производство чипов с интегрированным кэшем L2, что позволит разъёму Socket7 сохранять конкурентоспособность.

За основу взята информация журнала BYTE и компании Centaur Technology