Показаны сообщения с ярлыком Hyper-Threading. Показать все сообщения
Показаны сообщения с ярлыком Hyper-Threading. Показать все сообщения

Гиперпоточность и многоядерные процессоры

Разработчики процессоров столкнулись с рядом проблем в увеличении тактовой частоты: 
  • невозможно рассеивать выделяемую кристаллом теплоту, 
  • нельзя дальше уменьшать размер транзисторов, 
  • однако главной проблемой стало то, что при увеличении тактовой частоты быстродействие программ не повышалось. 

Причиной этому явилась параллельная работа современных компьютерных систем, а один процессор, каким бы мощным бы он ни был, в каждый момент времени может выполнять только одну задачу.

На одном камне выполнение нескольких процессов/потоков может быть только конкурентным. То есть их работа чередуется: после того как определенный поток отработает свой квант времени, в течение которого он выполнил полезную нагрузку, его текущее состояние сохранится в памяти, а он будет выгружен из процессора и заменен следующим находящимся в очереди на выполнение потоком — произойдет переключение контекста, на что тратится драгоценное время. А пока идет обмен данными между процессором и оперативной памятью, из-за ограниченной пропускной способности системной шины микропроцессор нервно курит бамбук, в сторонке ожидая данные. На помощь могут прийти аппаратный и программный (например, из операционной системы) планировщики, чтобы подгружать данные в кеш. Однако кеш очень ограничен по объему, поэтому такое решение не может служить панацеей. Выходом стала параллельная обработка, при которой в реальном времени одновременно выполняются несколько процессов. А чтобы ее реализовать, потребовалось фундаментально перепроектировать и перестроить камень — совместить в одном корпусе два исполняющих кристалла и более.