vak: (Default)
Serge Vakulenko ([personal profile] vak) wrote2020-02-15 02:14 pm

What made the 1960s CDC6600 supercomputer fast?

Компьютер CDC6600 появился в середине 60-х, примерно как и БЭСМ-6. Частота 10 МГц (супротив 9 МГц). Сделан он на транзисторно-резисторной логике, что тоже близко к диодно-транзисторной технологии БЭСМ-6. Каким же образом CDC6600 оказался на порядок быстрее?

https://cpldcpu.wordpress.com/2020/02/14/what-made-the-cdc6600-fast/

spamsink: (Default)

[personal profile] spamsink 2020-02-15 10:57 pm (UTC)(link)
Какая разница, всё равно тактовая частота та же самая вышла (у БЭСМ-6 по документации тоже 10 МГц было), так что сравнивать нужно количество тактов на команду.

И ещё: транзисторов в БЭСМ-6 было 60 тысяч, а в CDC 6600 - 400 тысяч, поэтому правильнее будет говорить не "быстрее", а "производительнее".
spamsink: (Default)

[personal profile] spamsink 2020-02-16 06:19 am (UTC)(link)
Про микроархитектуру в статье не рассказывается, к сожалению.
spamsink: (Default)

[personal profile] spamsink 2020-02-16 07:00 am (UTC)(link)
Значит, уровней логики в 100 нс у Крея помещалось гораздо больше, чем у Лебедева. Грубо, если верить задержке 5 нс у транзистора - чуть меньше 20, а у Лебедева - от силы 5-6, судя по формулам.

[personal profile] rom77 2020-02-16 09:50 am (UTC)(link)
Может быть лучше сначала сравнить БЭСМ-6 с CDC 6400, отставание которой от 6600 относительно хорошо известно?

Недавно смотрел её схемы в "6400_Central_Processor_Training_Manual_Feb67_new.pdf" на битсэйвере:
http://www.bitsavers.org/pdf/cdc/Tom_Hunter_Scans/ , а также другие находящиеся там мануалы и могу сказать, что если с чем и сравнивать БЭСМ-6, то именно с CDC 6400. Пожалуй, это наиболее сходный по архитектуре компьютер в линейке машин CDC.

Я конечно ни разу не специалист, но судите сами. Примерно одинаковая частота. Сходное количество тактов на команду для одинаковых и относительно ходовых команд. У обеих машин сходный CPU с двумя сумматорами - мантиссы и порядка. Регистры. Предварительная выборка и декодированием команд у 6400 (Извините, но с предварительным декодированием мне уже не хватает толку разобраться. Но это наверное не так и важно, поскольку и у БЭСМ-6 в руководстве заявлена прибавка всего в 30% скорости от использования регистров вообще).

Из различий, конечно наличие вспомогательных процессоров у 6400. Частота памяти у БЭСМ-6 в два раза меньше, что не позволяет ей работать на частоте процессора в minor cycle, как у 6400. Ну и наверное не только это, но мне трудно разобраться.

Кроме того, не так уж давно, spamsink(?), как я понимаю, уже пытался сравнить теоретическую производительность БЭСМ-6 с CDC6400 на примере известного теста, и получалось похоже:
https://groups.google.com/forum/#!msg/besm6/NbOZrm3tYvU/-oa7WQRYBAAJ
pappadeux: (Default)

[personal profile] pappadeux 2020-02-17 03:33 am (UTC)(link)
могу сказать, что (по сообщениям старших товарищей) CDC6200 был практически эквивалентен БЭСМ-6

[personal profile] rom77 2020-02-17 02:59 pm (UTC)(link)
Тогда получается, что по факту БЭСМ-6 несколько медленнее, чем CDC 6400. Потому что согласно документации, 6200 требуется в среднем в полтора раза больше тактов на выполнение типичной команды, чем это необходимо 6400 (см. таблицу B-1 в файле 6000_Series_Computer_Systems_Aug78_2nd_scan.pdf , на http://www.bitsavers.org/pdf/cdc/Tom_Hunter_Scans/). Уж не знаю, то ли легендарная "перемычка" тому причиной, то ли конструкторы CDC обменяли время на транзисторы, подрезав некоторые блоки в CPU.

Но в любом случае, мне кажется, превосходство 6600 над БЭСМ-6 заключается не в "волшебных" соединениях транзисторов Крэя, а в кастомных функциональных юнитах, специально спроектированных под каждую группу операций отдельно. Поскольку транзисторы не экономили, то для каждой операции выбирали более оптимальные схемы. В результате каждый функциональный юнит 6600 на выполнение операции тратил в среднем в два раза меньше тактов чем 6400, и в три раза меньше чем 6200 (см. в таблице указанной выше).

Ну а вторая причина, конечно, суперскалярность. При таком раскладе, 10 функциональных юнитов 6600 переплюнут любой универсальный CPU. Не важно, будет это процессор 6400 или БЭСМ-6.
pappadeux: (Default)

[personal profile] pappadeux 2020-02-17 07:15 pm (UTC)(link)
> Но в любом случае, мне кажется, превосходство 6600 над БЭСМ-6 заключается не в "волшебных" соединениях транзисторов Крэя, а в кастомных функциональных юнитах, специально спроектированных под каждую группу операций отдельно. Поскольку транзисторы не экономили, то для каждой операции выбирали более оптимальные схемы. В результате каждый функциональный юнит 6600 на выполнение операции тратил в среднем в два раза меньше тактов чем 6400, и в три раза меньше чем 6200 (см. в таблице указанной выше).

да, согласен

я уже пилил на 6500, он был в разы быстрее пары БЭСМ-6