ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
18 мая
289655 Топик полностью
fk0, легенда (08.12.2011 18:29, просмотров: 113) ответил =AlexD= на Гуглите устройство Интелловских процессоров (можно и IBM'мовских): как работает внеочередное выполнение, какой на самом деле размер физического регистрового файла, глубину очереди внеочередного исполнения, количество МОПов исполняемых за такт, и
Перед тем как отвечать, следует внимательней читать написанное. Лет 10 как у Pentium-1 было два потока. Если где-то их стало 4 -- это мало что меняет. Фибоначи считает не быстрей. Потому, что как раз в этой системе БЛОКИРУЕТСЯ внеочередное исполнение, если результат следующей команды зависит от предыдущей. И цикл будет, минимум, от 1 до N (нерекурсивный алгоритм). И складывать потом всё равно будет по паре регистров за такт. Даже по два не будет -- не может. Вместо того, чтобы распараллелить процесс на множество АЛУ, причём вычислитель должен оперировать понятиями функции, a не числами, чтоб в f(n) не вычислять каждый раз заново в рекурсивном алгоритме во-первых, во-вторых операции над функциями возможны и без их вычисления, в отличии от чисел. В пределе -- получить вектор (f(n)=a*f(1)+b*f(2)+c*f(3)+d*f(5)...), над которым за один такт выполнить операцию сложения всех членов. Понятно, что бесконечный или достаточно большой ряд так не посчитать, но распараллеливается прекрасно, например, хотя бы по тысяче членов за раз уже адекватное ускорение. А два или четыре ядра пеньтиума ускоряют в соответственно в 2 или 4 раза (а реально много-медленее...) И никакого параллельного, внеочередного исполнения сейчас нет, ещё раз повторю. Ибо результат вычислений каждой F(n) зависит от результата F(n-1) и каждый раз АЛУ ждёт, ибо не может проводить операции над невычисленными значениями.
[ZX]