Обсуждение:Суперскалярность

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Предложение о переименовании[править код]

Предлагаю переименовать статью, так как считаю, что более правильным будет называть не суперскалярность, а суперскалярный процессор или супескалярная вычислительная машина. Есть ли возражения? 93.175.5.92 19:26, 18 мая 2009 (UTC)

я за, но есть недостаток - слишком длинное название.

Кто первый[править код]

В нашем источнике - Эльбрус-2 1978 год. В англовики по этой теме:

Seymour Cray's CDC 6600 from 1965 is often mentioned as the first superscalar design. 

The 6600 CP included 10 parallel functional units, allowing multiple instructions to be worked on at the same time. Today this is known as a superscalar design, but was unique for its time. Unlike most modern CPU designs, functional units were not pipelined;

Так кто первый? `a5b 23:23, 14 августа 2009 (UTC)

У меня уже была мысль исправить без всякого обсуждения --Dingecs 11:27, 15 августа 2009 (UTC)
А раз и обсуждение есть, то правьте смело. `a5b 21:09, 15 августа 2009 (UTC)
CDC-6600 не имел ряда свойст современных суперскалярных систем - например перестановки комманд, конвейерности ,переименования регистров и прочих особенностей, которые появились в Эльбрусе. Предлагаю написать так, что CDC был праобразом современных суперскалярных систем, но в технической реализации сильно от них отставал. Piv-pro 13:47, 6 февраля 2010 (UTC)
Поскольку никто не ответил на мой последний пост, считаю, что про Эльбрус нужно внести коррективы. Piv-pro 15:19, 3 мая 2010 (UTC)
Хватит вандализировать статью, не имея фактов. Piv-pro 07:28, 24 мая 2010 (UTC)

Факты (известные любому студенту ВМК МГУ) Вам были приведены, Вы их проигнорировали. 1. Конвейеризация исполнительных устройств - http://en.wikipedia.org/wiki/CDC_7600, это 1969 год. 2. Переименование регистров и внеочередное исполнение команд - реализовано в IBM 360/91, это 1967-68 год. Описание легко находится как "алгоритм Томасуло". Подробное описание на русском языке можно найти в книге П.М. Коуги, "Архитектура конвейерных ЭВМ"..95.165.216.89 20:46, 29 мая 2010 (UTC)

Кстати, реальный спор о "приоритете суперскалярности" может идти только между CDC6600 и IBM 360/91 (CDC 7600 - более поздняя машина), поскольку по сути это спор о наборе свойств. IBM 360/91 имела весь "джентльменский набор" - от наличия многих конвейеризации исполнительных устройств и одновременного исполнения многих команд до предсказания переходов и условного выполнения команд с переименованием регистров, но это не сделало ее достойным конкурентом CDC6600 по скорости. 95.165.216.89 21:10, 29 мая 2010 (UTC)

Про CDC 6600 написано, с точки зрения определения это действительно суперскаляр, но в нём нет ряда ключевых особенностей. Приведите авторитетный источник того, что у IBM 360/91 и CDC 7600 было несколько модулей декодирования комманд, т.е., что они соотвествуют определению суперскаляра. Если в книге П.М. Коуги есть точное указание, что у одной из этих машин было несколько модулей декодирования комманд, то тогда эту машину можно смело писать в качестве второй и обязательно сделать сноску на эту книгу. Переименование регистров, внеочередное исполнение комманд и конвейер могут использоваться в машинах где имеется всего один модуль декодирования комманд! В статьях английской википедии ничего про количество модулей не указано. Piv-pro 19:10, 30 мая 2010 (UTC)
В книге C. M. Krishna «Performance modeling for computer architects»(ISBN-0-8186-7094-0) для IBM 360/91 указан один модуль выборки комманд(декодер) => она не попадает под определение суперскаляров.

Кстати, Вы сами нашли неточнсть в приведенном у Вас "определении суперскалярности" - как "наличие нескольких модулей декодеров команд", я ее не заметил. Это надо исправить, например, сделав перевод с английской страницы про supescalar. Почему - см. ниже. 1. У "классиков" - Г. Майерса (Архитектура современных ЭВМ, Мир, 1985) - он основной автор i860/i960), или автора AM29000 и ряда x86- совместимых процессоров AMD Mike Johnson-а (Superscalar Microprocessor Design, Prentice-Hall, 1991, ISBN 0-13-875634-1) про "количество декодеров команд" вообще ничего не говорится, поскольку при исполнении одного потока команд декодер команд (т.е. программный счетчик и окно просмотра кода) просто по определению должен быть один. Практически то же самое написано у авторов процессоров MIPS Хеннеси и Паттерсона (Computer Architecture: A Quantitative Approach by John L. Hennessy (Author), David Goldberg, Morgan Kaufmann Pub, 1996 ISBN 1-55-860329-8). 2. Все процессоры, не являющиеся аппаратно многопоточными (мультитредовыми), в том числе заведомо считающиеся "суперскалярными" (тот же I860/960, Pentium, старшие SPARC) имеют только один (централизованный или распределенный - это уже другой вопрос) декодер собственно команд (естественно, узлов управления собственно функциональными устройствами больше - по числу устройств). 3. Наличие нескольких независимых декодеров команд, со своими программными счетчиками и окнами просмотра кода - это свойство не суперскалярных, а мультитредовых процессоров, которые на одном и том же наборе функциональных устройств в состоянии одновременно выполнять несколько потоков команд - по числу декодеров команд (иногда это еще называется аппаратной поддержкой виртуальных машин). Естественно, одно свойство (мультитредовость) не исключает другого (суперскалярности). Эльбрус (как и поздние IBM мейнфреймы семейств 370, 390) обладал обоими свойствами. Но исторически первой машиной с аппаратным мультитредингом (несмотря на свою примитивность) был периферийный (не основной!) процессор все той же CDC6600 - там на одном и том же наборе аппаратуры функционировало 10 логических декодеров команд. Это описано в книге Торнтона. 4. Проблема в том, что термин "суперскалярность" был введен в рекламных целях и поэтому до сих пор не имеет четкого определения. Общепринятой в кругах разработчиков процессоров (но не зафиксированной в каком-либо стандарте) является триада из а) наличия устройства просмотра "вперед" последовательного потока команд, б) наличия нескольких исполнительных устройств и в) наличия аппаратуры, выдающей команды на эти исполнительные устройства по мере готовности их операндов, необязательно в порядке их поступления. Иногда добавляют четвертое свойство - способность устройства просмотра отправить на исполнение более одной команды из одного потока за такт (Хеннеси-Паттерсон считают это свойство ключевым).

Максимальное количество команд, отправляемых на исполнение за один такт, зависит не только от количества исполнительных устройств, но и от длины самих команд, поскольку устройство просмотра за один такт просматривает фиксированный (в битах) размер буфера. Как правило, не более чем на 8...16 коротких команд. Кстати, стековая система команд первых "эльбрусов" в свое время была выбрана именно по причине максимально короткой кодировки операций над операндами на вершине стека - всего один байт.

Можете еще посмотреть обсуждение http://en.wikipedia.org/wiki/Talk:Superscalar, но там информации немного. Гораздо полезнее детально изучить какой-нибудь из хороших процессоров. 95.165.216.89 02:12, 1 июня 2010 (UTC)

Я сам занимаюсь разработкой микроэлектроники, Хеннеси и Патерсона читал. Определение в своём комментрарии в соответствии со статьёй я сам исправил, хотя изначально написал не декодеров, а модулей выборки данных для комманд(оно же fetcher), что является правильным, так как для исполнения более одной комманды за такт нужно для каждой комманды иметь свой модуль выборки данных. Однако вы не привели авторитетного источника, где бы было написано, что CDC 7600 и IBM 360/91 были суперскалярными, а именно только наличие такого источника по правилам Википедии является основанием для изложения материала в Википедии. Вот что написано в правилах
Старайтесь использовать в качестве источников публикации людей со степенью не ниже кандидата наук или известных экспертов 
в данной области. Следует больше доверять авторам, работающим в государственных вузах и институтах РАН, РАО, РАМН.
Кстати Бабаян, будучи чл-корр. РАН, с точки зрения Википедии является очень авторитетным источником, поэтому просто писать что его мнение не соответствует действительности, не приведя источников почему это так не правильно. Ищите авторитетный источник, что CDC 7600 и IBM 360/91 являются суперскалярными.