Может ли программа эмулируемая на чужом процессоре выполняться быстрее чем на родном

БЫСТРОДЕЙСТВИЕ / СРАВНЕНИЕ ПРОЦЕССОРОВ / СРАВНЕНИЕ БЫСТРОДЕЙСТВИЯ / СОВМЕСТИМОСТЬ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ / INTEL / AMD / HIGH-SPEED PERFORMANCE / COMPARING OF PROCESSORS / HIGH-SPEED PERFORMANCE COMPARING / SOFTWARE COMPATIBILITY

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Макарцев Егор Владимирович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Макарцев Егор Владимирович

Репрезентативность метрик на основе событий процессора Intel Sandy Bridge при анализе времени обработки данных в памяти

Модель расчета живучести перспективных наномикропроцессорных систем с учетом временной избыточности за счет использования тактовой частоты и разрядности системной шины данных

Получи +25% к мощности процессора. Включи свой процессор на полную!

Анализ методов повышения производительности компьютеров с использованием графических процессоров и программно-аппаратной платформы cuda

Аналитический метод сравнения и оценки производительности компьютеров и вычислительных систем
Семейство процессоров обработки сигналов с векторно-матричной архитектурой NeuroMatrix
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры?

Вы всегда можете отключить рекламу.

POSSIBILITY OF OPERATION OF THE SOFTWARE DEVELOPED FOR ONE TYPE OF PROCESSORS ON PROCESSORS OF OTHER TYPE WITH BIG HIGH-SPEED PERFORMANCE

Possibility of operation of the software developed for one type of processors on processors of other type with big high-speed performance is considered.

Текст научной работы на тему «Возможность работы программного обеспечения разработанного для одного типа процессоров на процессорах другого типа с большим быстродействием»

ЭЛЕКТРОННЫЙ НАУЧНЫЙ ЖУРНАЛ «APRЮRL CЕРИЯ: ЕСТЕСТВЕННЫЕ И ТЕХНИЧЕСКИЕ НАУКИ»

ВОЗМОЖНОСТЬ РАБОТЫ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ РАЗРАБОТАННОГО ДЛЯ ОДНОГО ТИПА ПРОЦЕССОРОВ НА ПРОЦЕССОРАХ ДРУГОГО ТИПА С БОЛЬШИМ БЫСТРОДЕЙСТВИЕМ

Макарцев Егор Владимирович

магистр информатики и вычислительной техники

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

Ключевые слова: быстродействие; сравнение процессоров; сравнение быстродействия; совместимость программного обеспечения; ^єі; AMD.

POSSIBILITY OF OPERATION OF THE SOFTWARE DEVELOPED FOR ONE TYPE OF PROCESSORS ON PROCESSORS OF OTHER TYPE WITH BIG HIGH-SPEED PERFORMANCE

Makartsev Egor Vladimirovich

master of informatics and ADP equipment

Abstract: Possibility of operation of the software developed for one type of processors on processors of other type with big high-speed performance is considered.

Мощный компьютер начал тормозить (процессор работает не на полной частоте)

Key words: high-speed performance; comparing of processors; highspeed performance comparing; software compatibility; Intel; AMD.

Вопрос о совместимости программного обеспечения (ПО) с различными аппаратными платформами (hardware) относится к числу риторических в сфере информационных технологий (ИТ). В силу множества факторов, в том числе скрытых, которые влияют на совместимость, задача её обеспечения становится алгоритмически неразрешимой и решается в каждом конкретном случае индивидуально.

Кроме того алгоритмически неразрешимым становится вопрос о том как будет работать ПО на чужом hardware, если даже известно что оно работать будет?

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

Иначе говоря, каковы возможности оптимизации быстродействия ПО путём применения других ЦП?

На быстродействие ПО влияют следующие параметры процессора (ЦП):

• Тактовая частота [1];

• Архитектура [1, 3];

• Частота системной шины (FSB) и её разрядность [1];

• Внутренняя разрядность ЦП [1, 3];

• Система поддерживаемых команд [2];

• Число тактов на выполнение той или иной команды [3];

В случае тактовой частоты быстродействие прямо пропорционально ей. Однако в силу того, что возможности существующей элементной базы по её наращиванию на сегодняшний день практически исчерпаны, производители ЦП прибегают к другим способам увеличе-

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

• Увеличение FSB и разрядности системной шины;

• Увеличение внутренней разрядности ЦП;

• Увеличение объёма кэш-памяти;

• Совершенствование системы поддерживаемых команд (в частности по принципу: «вместо многих «старых» одна «новая»);

• Уменьшение числа тактов уходящих на выполнение одной команды;

• Совершенствование архитектуры ЦП.

Увеличение FSB уменьшает время простоя ЦП в ожидании новой информации от оперативной памяти (RAM). В свою очередь увеличение её разрядности позволяет передавать за 1 раз большее количество данных.

При увеличении объёма кэш-памяти становится возможным хранить в ней большее количество часто используемых команд. Это позволяет не обращаться к RAM или другим компонентам системы «лишний раз».

Развивая систему команд ЦП можно не только упростить жизнь программистам и добавить поддержку новых технологий. Заменив последовательность из нескольких «старых» команд ЦП одной «новой» можно существенно увеличить его быстродействие [1; 3].

При уменьшении числа тактов уходящих на выполнении одной команды быстродействие возрастает в обратной пропорциональности [3]. Этим в частности объясняется столь значительный рост быстродействия процессоров Pentium II по сравнению с Pentium [3].

Применение многоядерной архитектуры позволяет распределить вычислительную нагрузку между несколькими ядрами ЦП, что уменьшить нагрузку на отдельные ядра.

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

Как уже говорилось выше быстродействие ПО на различных ЦП зависит от целого ряда характеристик последних. Включая архитектурные особенности. Поэтому для сравнительных испытаний были выбраны два совершенно различных ЦП: Intel Core Ї5-2300 и AMD Sempron 3000+. Краткая техническая характеристика этих ЦП приведена в таблице 1.

Краткая техническая характеристика исследуемых экземпляров ЦП [4; 5]

Читайте также:
Одной из функций операционной системы является программ

Процессор Год Тактовая частота, ГГц Литография, нм Кэш-память Число ядер Внутренняя разрядность, бит Набор команд

Intel Core i5-2300 2011 2,8 32 6 Мб 4 64 64-bit

AMD Sempron 3000+ 2005 1,8 90 256 Кб 1 64 64-bit

Эти ЦП принадлежат к различным эпохам развития техники и технологии. Они изготовлены с различной степенью микроминиатюризации.

Для сравнения этих ЦП была разработана специальная тестовая программа (тест). Эта программа вычисляет факториал числа 1000, также число тактов ЦП и время, затраченное на вычисление.

Тест был написан на языке программирования Delphi с использованием встроенного ассемблера. Внешний вид теста приведён на рисунке 1. В силу того, что в работе теста нас интересуют только такты ЦП и время за-

траченные на выполнение вычисления, результат вычисления на экран не выводится. «Родным» ЦП для теста является Intel Core І5-2300.

Рис. 1. Внешний вид тестовой программы

Результаты испытаний приведены в таблице 2. Также на рисунках 2 и 3 приведены соответствующие графики.

Результаты сравнительных испытаний ЦП

Процессор Число тактов за выполнение операции Время выполнения операции, мс

Intel Core i5-2300 33726 0,012

AMD Sempron 3000+ 24396 0,0136

Источник: cyberleninka.ru

Планирование процессов и потоков

1. Учебная. Ввести понятие процесс и поток. Рассказать о принципах создания и контроля за «процессом» и «потоком».

2. Развивающая. Развивать логическое мышление и естественное — научное мировоззрение.

3. Воспитательная. Воспитывать интерес к научным достижением и открытием.

Межпредметные связи:

· Обеспечивающие: информатика, математика.

· Обеспечиваемые: системное программирование, компьютерные цепи

Методическое обеспечение и оборудование:

1. Методическая разработка к занятию.

3. Учебная программа

4. Рабочая программа.

5. Инструктаж по технике безопасности.

Обеспечение рабочих мест:

3. Ответьте на вопросы:

a. Назовите группы вспомогательных модулей ОС ядра?

b. Какие функции выполняют модули ядра?

c. Назовите слои ядра ОС.

d. Назовите набор средств аппаратной поддержки.

e. Сформулируйте правила к которым необходимо придерживаться для создания мобильных ОС.

f. Какие этапы включает разработка варианта мобильной ОС для новой аппа­ратной платформы?

g. Опишите порядок взаимодействия приложений с ОС, имеющей микроядер­ную архитектуру.

h. Какими этапами отличается выполнение системного вызова в микроядерной ОС и ОС с монолитным ядром?

i. Может ли программа, эмулируемая на «чужом» процессоре, выполняться быст­рее, чем на «родном»?

Одной из основных подсистем мультипрограммной ОС, непосредственно влияю­щей на функционирование вычислительной машины, является подсистема управ­ления процессами и потоками, которая занимается их созданием и уничтожени­ем, поддерживает взаимодействие между ними, а также распределяет процессор­ное время между несколькими одновременно существующими в системе процес­сами и потоками.

Подсистема управления процессами и потоками ответственна за обеспечение процессов необходимыми ресурсами. ОС поддерживает в памяти специальные ин­формационные структуры, в которые записывает, какие ресурсы выделены каж­дому процессу. Она может назначить процессу ресурсы в единоличное пользо­вание или в совместное пользование с другими процессами.

Некоторые из ресур­сов выделяются процессу при его создании, а некоторые — динамически по за­просам во время выполнения. Ресурсы могут быть приписаны процессу на все время его жизни или только на определенный период. При выполнении этих функций подсистема управления процессами взаимодействует с другими подсис­темами ОС, ответственными за управление ресурсами, такими как подсистема управления памятью, подсистема ввода-вывода, файловая система.

Когда в системе одновременно выполняется несколько независимых задач, то возникают дополнительные проблемы. Хотя потоки возникают и выполняются асинхронно, у них может возникнуть необходимость во взаимодействии, напри­мер при обмене данными. Согласование скоростей потоков также очень важно для предотвращения эффекта «гонок» (когда несколько потоков пытаются изме­нить один и тот же файл), взаимных блокировок или других коллизий, которые возникают при совместном использовании ресурсов. Синхронизация потоков является одной из важных функций подсистемы управления процессами и пото­ками.

Каждый раз, когда процесс завершается, ОС предпринимает шаги, чтобы «зачис­тить следы» его пребывания в системе. Подсистема управления процессами за­крывает все файлы, с которыми работал процесс, освобождает области опера­тивной памяти, отведенные под коды, данные и системные информационные структуры процесса. Выполняется коррекция всевозможных очередей ОС и спи­сков ресурсов, в которых имелись ссылки на завершаемый процесс.

Понятия «процесс» и «поток»

Чтобы поддерживать мультипрограммирование, ОС должна определить и офор­мить для себя те внутренние единицы работы, между которыми будет разделять­ся процессор и другие ресурсы компьютера. В настоящее время в большинстве операционных систем определены два типа единиц работы. Более крупная еди­ница работы, обычно носящая название процесса, или задачи, требует для своего выполнения нескольких более мелких работ, для обозначения которых исполь­зуют термины «поток», или «нить».

При использовании этих терминов часто возникают сложности. Это происходит в силу не­скольких причин. Во-первых, — специфика различных ОС, когда совпадающие по сути по­нятия получили разные названия, например задача (task) в OS/2, OS/360 и процесс (process) в UNIX, Windows NT, NetWare.

Во-вторых, по мере развития системного про­граммирования и методов организации вычислений некоторые из этих терминов получи­ли новое смысловое значение, особенно это касается понятия «процесс», который уступил многие свои свойства новому понятию «поток». В-третьих, терминологические сложности порождаются наличием нескольких вариантов перевода англоязычных терминов на рус­ский язык. Например, термин «thread» переводится как «нить», «поток», «облегченный процесс», «минизадача» и др. Далее в качестве названия единиц работы ОС будут исполь­зоваться термины «процесс» и «поток». В тех же случаях, когда различия между этими понятиями не будут играть существенной роли, они объединяются под обобщенным тер­мином «задача».

Итак, в чем же состоят принципиальные отличия в понятиях «процесс» и «по­ток»?

Очевидно, что любая работа вычислительной системы заключается в выполне­нии некоторой программы. Поэтому и с процессом, и с потоком связывается оп­ределенный программный код, который для этих целей оформляется в виде исполняемого модуля. Чтобы этот программный код мог быть выполнен, его необ­ходимо загрузить в оперативную память, возможно, выделить некоторое место на диске для хранения данных, предоставить доступ к устройствам ввода-вывода, например к последовательному порту для получения данных по подключен­ному к этому порту модему, и т. д. В ходе выполнения программе может также понадобиться доступ к информационным ресурсам, например файлам, портам ГСР/UPD, семафорам. И, конечно же, невозможно выполнение программы без предоставления ей процессорного времени, то есть времени, в течение которого процессор выполняет коды данной программы.

В операционных системах, где существуют и процессы, и потоки, процесс рас­сматривается операционной системой как заявка на потребление всех видов ре­сурсов, кроме одного — процессорного времени.Этот последний важнейший ресурс распределяется операционной системой между другими единицами рабо­ты — потоками, которые и получили свое название благодаря тому, что они представляют собой последовательности (потоки выполнения) команд.

Читайте также:
Как установить программу в обход администратора

В простейшем случае процесс состоит из одного потока, и именно таким обра­зом трактовалось понятие «процесс» до середины 80-х годов (например, в ран­них версиях UNIX) и в таком же виде оно сохранилось в некоторых современ­ных ОС. В таких системах понятие «поток» полностью поглощается понятием «процесс», то есть остается только одна единица работы и потребления ресур­сов — процесс. Мультипрограммирование осуществляется в таких ОС на уровне процессов.

Для того чтобы процессы не могли вмешаться в распределение ресурсов, а также не могли повредить коды и данные друг друга, важнейшей задачей ОС является изоляция одного процесса от другого. Для этого операционная система обеспечи­вает каждый процесс отдельным виртуальным адресным пространством, так что ни один процесс не может получить прямого доступа к командам и данным дру­гого процесса.

Виртуальное адресное пространство процесса — это совокупность адресов, которыми может манипулировать программный модуль процесса. Операционная система отображает вирту­альное адресное пространство процесса на отведенную процессу физическую память.

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

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

Действительно, при мультипрограммировании по­вышается пропускная способность системы, но отдельный процесс никогда не может быть выполнен быстрее, чем в однопрограммном режиме (всякое разделе­ние ресурсов только замедляет работу одного из участников за счет дополни­тельных затрат времени на ожидание освобождения ресурса). Однако приложе­ние, выполняемое в рамках одного процесса, может обладать внутренним парал­лелизмом, который в принципе мог бы позволить ускорить его решение.

Если, например, в программе предусмотрено обращение к внешнему устройству, то на время этой операции можно не блокировать выполнение всего процесса, а про­должить вычисления по другой ветви программы. Параллельное выполнение нескольких работ в рамках одного интерактивного приложения повышает эф­фективность работы пользователя. Так, при работе с текстовым редактором желательно иметь возможность совмещать набор нового текста с такими продол­жительными по времени операциями, как переформатирование значительной час­ти текста, печать документа или его сохранение на локальном или удаленном диске. Еще одним примером необходимости распараллеливания является сете­вой сервер баз данных. В этом случае параллелизм желателен как для обслужи­вания различных запросов к базе данных, так и для более быстрого выполнения отдельного запроса за счет одновременного просмотра различных записей базы.

Потоки возникли в операционных системах как средство распараллеливания вы­числений. Конечно, задача распараллеливания вычислений в рамках одного при­ложения может быть решена и традиционными способами.

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

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

Из всего вышеизложенного следует, что в операционной системе наряду с про­цессами нужен другой механизм распараллеливания вычислений, который учи­тывал бы тесные связи между отдельными ветвями вычислений одного и того же приложения. Для этих целей современные ОС предлагают механизм многопо­ точной обработки (multithreading).

При этом вводится новая единица работы — поток выполнения, а понятие «процесс» в значительной степени меняет смысл. Понятию «поток» соответствует последовательный переход процессора от одной команды программы к другой. ОС распределяет процессорное время между пото­ками. Процессу ОС назначает адресное пространство и набор ресурсов, которые совместно используются всеми его потоками.

Заметим, что в однопрограммных системах не возникает необходимости введения понятия, обозначающего единицу работы, так как там не существует проблемы разделения ресурсов.

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

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

Итак, мультипрограммирование более эффективно на уровне потоков, а не процес­сов. Каждый поток имеет собственный счетчик команд и стек.Задача, оформлен­ная в виде нескольких потоков в рамках одного процесса, может быть выполнена быстрее за счет псевдопараллельного (или параллельного в мультипроцессорной системе) выполнения ее отдельных частей. Например, если электронная таблица была разработана с учетом возможностей многопоточной обработки, то пользо­ватель может запросить пересчет своего рабочего листа и одновременно продол­жать заполнять таблицу. Особенно эффективно можно использовать много поточность для выполнения распределенных приложений, например многопоточный сервер может параллельно выполнять запросы сразу нескольких клиентов.

Читайте также:
Какая программа исправляет ошибки логической структуры накопителей информации

Использование потоков связано не только со стремлением повысить производи­тельность системы за счет параллельных вычислений, но и с целью создания более читабельных, логичных программ. Введение нескольких потоков выполне­ния упрощает программирование. Например, в задачах типа «писатель-читатель» один поток выполняет запись в буфер, а другой считывает записи из него.

По­скольку они разделяют общий буфер, не стоит их делать отдельными процесса­ми. Другой пример использования потоков — управление сигналами, такими как прерывание с клавиатуры (del или break). Вместо обработки сигнала прерывания один поток назначается для постоянного ожидания поступления сигналов. Та­ким образом, использование потоков может сократить необходимость в прерыва­ниях пользовательского уровня. В этих примерах не столь важно параллельное выполнение, сколь важна ясность программы.

Наибольший эффект от введения многопоточной обработки достигается в муль­типроцессорных системах, в которых потоки, в том числе и принадлежащие од­ному процессу, могут выполняться на разных процессорах действительно парал­лельно (а не псевдопараллельно).

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:

Источник: studopedia.ru

Возможность работы программного обеспечения разработанного для одного типа процессоров на процессорах другого типа с большим быстродействием

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

POSSIBILITY OF OPERATION OF THE SOFTWARE DEVELOPED FOR ONE TYPE OF PROCESSORS ON PROCESSORS OF OTHER TYPE WITH BIG HIGH-SPEED PERFORMANCE

Makartsev Egor Vladimirovich

master of informatics and ADP equipment

Abstract: Possibility of operation of the software developed for one type of processors on processors of other type with big high-speed performance is considered.

Вопрос о совместимости программного обеспечения (ПО) с различными аппаратными платформами (hardware) относится к числу риторических в сфере информационных технологий (ИТ). В силу множества факторов, в том числе скрытых, которые влияют на совместимость, задача её обеспечения становится алгоритмически неразрешимой и решается в каждом конкретном случае индивидуально.

Кроме того алгоритмически неразрешимым становится вопрос о том как будет работать ПО на чужом hardware, если даже известно что оно работать будет?

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

Иначе говоря, каковы возможности оптимизации быстродействия ПО путём применения других ЦП?

На быстродействие ПО влияют следующие параметры процессора (ЦП):

• Тактовая частота [1];

• Архитектура [1, 3];

• Частота системной шины (FSB) и её разрядность [1];

• Внутренняя разрядность ЦП [1, 3];

• Система поддерживаемых команд [2];

• Число тактов на выполнение той или иной команды [3];

В случае тактовой частоты быстродействие прямо пропорционально ей. Однако в силу того, что возможности существующей элементной базы по её наращиванию на сегодняшний день практически исчерпаны, производители ЦП прибегают к другим способам увеличения быстродействия своей продукции. Следует отметить, что некоторые из приведённых ниже способов применялись и ранее, но вследствие наличия возможности значительного наращивания тактовой частоты им не уделялось особого внимания. Теперь эти способы стали более чем актуальны.

• Увеличение FSB и разрядности системной шины;

• Увеличение внутренней разрядности ЦП;

• Увеличение объёма кэш-памяти;

• Совершенствование системы поддерживаемых команд (в частности по принципу: «вместо многих «старых» одна «новая»);

• Уменьшение числа тактов уходящих на выполнение одной команды;

• Совершенствование архитектуры ЦП.

Увеличение FSB уменьшает время простоя ЦП в ожидании новой информации от оперативной памяти (RAM). В свою очередь увеличение её разрядности позволяет передавать за 1 раз большее количество данных.

При увеличении объёма кэш-памяти становится возможным хранить в ней большее количество часто используемых команд. Это позволяет не обращаться к RAM или другим компонентам системы «лишний раз».

Развивая систему команд ЦП можно не только упростить жизнь программистам и добавить поддержку новых технологий. Заменив последовательность из нескольких «старых» команд ЦП одной «новой» можно существенно увеличить его быстродействие [1; 3].

При уменьшении числа тактов уходящих на выполнении одной команды быстродействие возрастает в обратной пропорциональности [3]. Этим в частности объясняется столь значительный рост быстродействия процессоров Pentium II по сравнению с Pentium [3].

Применение многоядерной архитектуры позволяет распределить вычислительную нагрузку между несколькими ядрами ЦП, что уменьшить нагрузку на отдельные ядра.

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

Как уже говорилось выше быстродействие ПО на различных ЦП зависит от целого ряда характеристик последних. Включая архитектурные особенности. Поэтому для сравнительных испытаний были выбраны два совершенно различных ЦП: Intel Core Ї5-2300 и AMD Sempron 3000+. Краткая техническая характеристика этих ЦП приведена в таблице 1.

Краткая техническая характеристика исследуемых экземпляров ЦП [4; 5]

Процессор Год Тактовая частота, ГГц Литография, нм Кэш-память Число ядер Внутренняя разрядность, бит Набор команд

Intel Core i5-2300 2011 2,8 32 6 Мб 4 64 64-bit

AMD Sempron 3000+ 2005 1,8 90 256 Кб 1 64 64-bit

Эти ЦП принадлежат к различным эпохам развития техники и технологии. Они изготовлены с различной степенью микроминиатюризации.

Для сравнения этих ЦП была разработана специальная тестовая программа (тест). Эта программа вычисляет факториал числа 1000, также число тактов ЦП и время, затраченное на вычисление.

Тест был написан на языке программирования Delphi с использованием встроенного ассемблера. Внешний вид теста приведён на рисунке 1. В силу того, что в работе теста нас интересуют только такты ЦП и время затраченные на выполнение вычисления, результат вычисления на экран не выводится. «Родным» ЦП для теста является Intel Core І5-2300.

Рис. 1. Внешний вид тестовой программы

Результаты испытаний приведены в таблице 2. Также на рисунках 2 и 3 приведены соответствующие графики.

Результаты сравнительных испытаний ЦП

Процессор Число тактов за выполнение операции Время выполнения операции, мс

Intel Core i5-2300 33726 0,012

AMD Sempron 3000+ 24396 0,0136

Источник: uchimsya.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru