Читать «Архитектура компьютера» онлайн - страница 70

Эндрю Таненбаум

Матричные компьютеры

Многие задачи в физических и технических науках предполагают использование циклов, массивов или других упорядоченных структур. Часто одни и те же вычисления многократно повторяются с разными наборами данных. Упорядоченность и структурированность программ, предназначенных для выполнения такого рода вычислений, очень удобны в плане ускорения вычислений за счет параллельной обработки команд. Существует две схемы ускоренного выполнения больших научных программ: SIMD-процессоры и векторные процессоры. Хотя между этими схемами много общего, как ни парадоксально, первую обычно представляют как параллельный компьютер, а вторую — как добавление расширения параллельного вычислителя.

Компьютеры с распараллеливанием по данным нашли много успешных применений благодаря своей выдающейся эффективности. Они могут обеспечивать существенную вычислительную мощность с меньшим количеством транзисторов по сравнению с альтернативными решениями. Гордон Мур (автор закона Мура) также известен своим замечанием, что кремний стоит около 1 миллиарда долларов за акр (4047 квадратных метров). Таким образом, чем больше вычислительной мощи удастся выжать из этого акра кремния, тем больше денег компьютерная компания заработает на его продаже. Компьютеры с распараллеливанием по данным являются одним из самых эффективных средств для «выжимания» производительности из кремния. Так как все процессоры выполняют одну инструкцию, системе необходим только один «мозг», управляющий компьютером. Соответственно процессору нужен одна ступень выборки команд, одна ступень декодирования и один блок управляющей логики. Так достигается существенная экономия, которая дает параллельным компьютерам большое преимущество перед другими процессорами — при условии, что выполняемые программы имеют упорядоченную структуру с большой степенью параллелизма.

SIMD-процессор (Single Instruction-stream Multiple Data-stream — один поток команд с несколькими потоками данных) состоит из большого числа сходных процессоров, которые выполняют одну и ту же последовательность команд применительно к разным наборам данных. Первым в мире таким процессором был ILLIAC IV (университет Иллинойс) [Bouknight et al., 1972]. Первоначально предполагалось сконструировать машину, состоящую из четырех квадрантов, каждый из которых содержал матрицу размером 8 X 8 из блоков процессор/ память. Для каждого квадранта имелся один управляющий блок. Он рассылал команды, которые выполнялись всеми процессорами одновременно, при этом каждый процессор использовал собственные данные из собственной памяти. Из-за очень высокой стоимости был построен только один такой квадрант, но он мог выполнять 50 млн операций с плавающей точкой в секунду. Если бы при создании машины использовалось четыре квадранта, она могла бы выполнять 1 млрд операций с плавающей точкой в секунду, и вычислительные возможности такой машины в два раза превышали бы возможности компьютеров всего мира.