Intel Pentium 4 3,06 ГГц с поддержкой технологии Hyper-Threading
— временем выполнения кода программы № 1
— временем выполнения кода программы № 2
— временными издержками на переключение между фрагментами кода программ № 1 и № 2
А вот при наличии данной технологии на процессоре дело облегчается:
— время выполнения программы № 1 на процессоре № 1 (виртуальном)
— время выполнения программы № 2 на процессоре № 2 (виртуальном)
- время на переключение одного физического ядра (как набора требуемых обеим программам
- исполняющих блоков) между двумя эмулируемыми «виртуальными CPU»
Компания Intel поступает вполне логично: конкурируют между собой по быстродействию только пункты за номером три, и если в первом случае действие выполняется программно аппаратно (ОС управляет переключением между потоками, задействуя для этого функции процессора), то во втором случае имеется полностью аппаратное решение — процессор все делает сам. Теоретически, аппаратное решение всегда оказывается быстрее программного.
Но проблемы все равно остаются, ведь Pentium 4 приходится иметь дело с классическим x86-кодом, в котором активно используется прямое адресование ячеек и даже целых массивов, находящихся за пределами процессора — в ОЗУ. К тому же большинство обрабатываемых данных чаще всего находится там. Поэтому делить между собой виртуальные CPU будут не только регистры, но и общую для обеих процессорную шину, минуя которую данные в CPU попасть просто не могут.
На сегодняшний день «честные» двухпроцессорные системы на Pentium III и Xeon находятся в точно такой же ситуации! Потому что шина AGTL+, доставшаяся в наследство всем сегодняшним процессорам Intel от знаменитого Pentium Pro (в дальнейшем ее лишь подвергали модификациям, но идеологию практически не трогали) — всего одна, сколько бы CPU ни было установлено в системе.
Рискуя всем, отойти от схемы на x86 попробовала только AMD со своим Athlon MP — у AMD 760MP/760MPX от каждого процессора к северному мосту чипсета идет отдельная шина. Впрочем, даже в таком варианте проблема отодвигается не очень далеко, так как шина памяти точно одна, причем вот в этом случае уже везде.