Аппаратная / программная реализация - PullRequest
5 голосов
/ 22 апреля 2011

Что значит сказать, что функция (например, модульное умножение, синус) реализована аппаратно, а не программно?

Ответы [ 4 ]

4 голосов
/ 22 апреля 2011

Реализовано аппаратно означает, что электрическая схема (через логические элементы и т. Д.) Может выполнять операцию.

Например, в ALU процессор физически способен добавлять один байт к другому.

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

3 голосов
/ 17 мая 2011

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

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

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

Обратите внимание, что я называю такие вещи, как синус (х), "алгоритмы".

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

Например, большинство процессоров имеют инструкцию, которая выполняет сложение целых чисел. Весь процесс вычисления конечных позиций битов, вероятно, выполняется асинхронно. Точка остановки / синхронизации наступает только после достижения добавленного результата. В свою очередь, более сложный алгоритм, чем «сложение», и который выполняется в программном обеспечении, которое содержит много таких дополнений, обязательно выполняется частично асинхронно (например, между каждым добавлением), но со многими точками синхронизации (после каждого добавления, переход, тест и т. д., результат известен). Если бы этот более сложный алгоритм был полностью реализован на аппаратном уровне, возможно, он работал бы до конца от начала до конца совершенно независимо от тактовых импульсов. Во время аппаратного расчета этого алгоритма никакие внешние программные инструкции не будут применяться.

1 голос
/ 22 апреля 2011

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

1 голос
/ 22 апреля 2011

Это означает, что логика, лежащая в его основе, заключается в аппаратном обеспечении (то есть с использованием вентилей И / ИЛИ / XOR и т. Д.), А не в программном воссоздании упомянутой аппаратной логики.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...