09.03.2019
Аппаратная многопоточность позволяет нескольким потокам совместно использовать функциональные блоки одного и того же процессора. Чтобы разрешить подобное совместное использование, процессор должен копировать независимое состояние каждого потока. Например, у каждого потока должна быть отдельная копия файла регистров и счетчика команд. Память как таковая должна совместно использоваться посредством механизмов виртуальной памяти, которые уже имеют мультипрограммную поддержку. Кроме этого оборудование должно поддерживать возможность достаточно быстрого переключения между разными потоками. В частности, переключение потока должно быть намного более эффективным, чем переключение процессов, для которого обычно требуются от сотен до тысяч процессорных циклов, а переключение потоков должно быть мгновенным.
Хотите проверить на антиплагиат? Возможно здесь антиплагиат онлайн проверка вы сможите сделать все, что вам требуется.
Существуют два основных подхода к аппаратной многопоточности. Мелкомодульная многоноточность (Fine-grained multithreading) производит переключение между потоками на каждой инструкции, что приводит к чередующемуся выполнению нескольких потоков. Это чередование часто осуществляется по кругу с пропуском любых приостановленных потоков. Чтобы мелкомодульная многопоточность стала практичной, процессор должен быть в состоянии переключать потоки с каждым тактовым циклом Одно из основных преимуществ мелкомодульной многопоточности заключается в том, что она может скрадывать потери пропускной способности, возникающие как из-за коротких, так и из-за длительных приостановок, поскольку пока один из потоков приостановлен, будут выполняться инструкции других потоков.
Основной недостаток мелкомодульной многопоточности заключается в том, что она замедляет выполнение отдельно взятых потоков, поскольку поток, готовый к выполнению без остановок, будет замедлен инструкциями других потоков.