Что подразумевается под фразой «программное обеспечение может заменить оборудование»?


90

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


7
ЦП общего назначения имеют наборы команд, которые позволяют им выполнять произвольные логические операции. Программное обеспечение компилируется в поток команд, выполняемых набором команд CPU. Это пример работы "в программном обеспечении". И наоборот, программный алгоритм может напрямую выполняться «аппаратно» с помощью созданных специализированных массивов логических элементов в кремнии.
Химера

12
«Соединение» заключается в том, что как программное, так и аппаратное обеспечение выполняют различные логические выражения.
Химера

14
Это означает именно то, что он говорит. Программное обеспечение и оборудование делают вещи. Иногда вы можете делать что-то с программным или аппаратным обеспечением, поэтому вы выбираете один. Тогда вы задаетесь вопросом, будет ли лучше сделать это с другим.
user253751

4
Очевидно, что вы не можете заменить все аппаратное обеспечение программным обеспечением - нет смысла пытаться создать программный монитор, мышь или клавиатуру. (Если они не виртуальные)
user253751

2
Учтите, что мы используем (программные) операционные системы, потому что: 1) Для написания ОС непосредственно на оборудовании потребуется невероятно сложный чип, который будет стоить много 2) Аппаратное обеспечение не может быть легко обновлено, следовательно, аппаратная ОС не будет получать обновления. Если обнаружена проблема безопасности, ее нельзя
исправить

Ответы:


176

Я думаю, что фундаментальная связь, которой нет в других ответах, заключается в следующем:

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

(этот ответ сфокусирован на обработке рабочего стола и использует примеры из этого домена)

Замена программного обеспечения аппаратным

Если вы достаточно взрослые, чтобы помнить компьютерные игры в середине-конце 1990-х, вы, вероятно, помните игры FPS, такие как Quake . Изначально он представлял собой «программный рендеринг», то есть процессор выполнял вычисления, необходимые для рендеринга графики. Между тем, ЦП также должен был выполнять обработку ввода, обработку звука, обработку AI и т. Д. Это очень сильно загружало ресурсы ЦП. Кроме того, обработка графики не подходит для основного процессора (тогда или сейчас). Это очень параллельная задача, требующая гораздо больше ядер, чем даже современный высокопроизводительный процессор (8).

Мы перевели обработку графики с программного обеспечения на аппаратное обеспечение: введем 3dfx Voodoo и Nvidia TNT (теперь GeForce ). Это были специализированные видеокарты, которые выгружали обработку из процессора в графический процессор. Это не только распространило рабочую нагрузку, предоставив больше вычислительных ресурсов для выполнения того же объема работы, но и было специализированным аппаратным обеспечением, которое могло воспроизводить трехмерную графику намного быстрее и с большим количеством функций, чем процессор.

Перенесемся в современную эпоху, и на рабочем столе требуется непроцессорная графика . Даже операционная система не может функционировать без графического процессора. Очень важно, чтобы ЦП фактически интегрировали графические процессоры сейчас. 1

Замена оборудования на программное обеспечение

Еще тогда, когда DVD был совершенно новым, вы могли установить DVD-привод на свой настольный компьютер. Однако современные процессоры не были достаточно мощными, чтобы декодировать DVD-видео и аудио потоки без заикания. Сначала для декодирования требовалась специализированная плата PCI. Это было специализированное оборудование, созданное специально для декодирования формата DVD и ничего более. Как и в случае с 3D-графикой, он не только предоставил больше вычислительных ресурсов, но и был специально создан для этой задачи, обеспечивая плавное воспроизведение DVD.

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

Теперь у нас есть центральные процессоры сотни или даже тысячи раз , как мощный 2 , как мы были , когда были введены DVD - диски. Когда появился Blu-ray, нам никогда не требовалось специализированное оборудование, потому что универсальное оборудование было более чем достаточно мощным, чтобы справиться с этой задачей.

Делать оба

Современные процессоры Intel имеют специальные инструкции для кодирования и декодирования H.264 . Это является частью тенденции, когда универсальные процессоры получают специализированные функции, все в одном чипе. Нам не нужна отдельная плата PCI Express для эффективного декодирования H.264, как на ранних стадиях DVD, потому что процессоры содержат аналогичные схемы.


1 GPU относится к процессору, специально предназначенному для выполнения графических вычислений. Старые 2D-видеокарты не были графическими процессорами: они были просто кадровыми буферами с ЦАП для связи с монитором. Разница в том, что графические процессоры содержат специализированные процессоры, которые превосходно выполняют определенные типы вычислений, и со временем теперь фактически сами программируются (шейдеры). Графическое оборудование всегда содержало специализированные схемы, необходимые для преобразования данных в буфере кадров в формат, который можно выводить по кабелю (VGA, DVI, HDMI, DisplayPort) и распознавать на мониторе. Это не имеет отношения к обсуждению разгрузки вычислений на специализированное оборудование.

2 DVD-Video был выпущен в 1997 году, в то время, когда Pentium 2 был также недавно выпущен. Это было время, когда мощность процессоров быстро росла: можно было бы рассмотреть новый компьютер P2 с DVD-декодером или установить его в немного более старый P1. Сравните это с современным процессором Core i7 6-го поколения, использующим список MIPS из Википедии , а современный процессор работает примерно в 590–1690 раз быстрее. Отчасти это связано с тактовой частотой, а также с переходом на несколько ядер в качестве стандарта, а также с современными процессорами, выполняющими намного больше работы на ядро ​​за такт. Также важно то, что по мере развития технологий Intel (доминирующая на рынке настольных компьютеров и серверов x86) добавляет специальные инструкции, помогающие ускорить операции, которые хотят выполнять пользователи настольных компьютеров (например, декодирование видео).


Старые 2d видеокарты не были графическими процессорами в том смысле, в каком они понимаются сегодня, но специализированное оборудование для графических функций присутствовало очень часто. Блиттер может быстро скопировать большие объемы памяти из одного местоположения в другое, возможно, используя некоторую простую логическую операцию, чтобы объединить ее с данными в целевом местоположении. Это присутствовало в типичных 2d картах эпохи VGA / SVGA. Другие компьютеры имели другое специализированное 2-мерное оборудование, такое как аппаратные спрайты в домашних компьютерах и игровые приставки 80-х и 90-х годов.
Себастьян Редл

127

Я удивлен, что никто еще не упомянул один из самых ярких примеров: программно-определяемое радио.

Если вы вернете современный смартфон на 50 лет назад и продемонстрируете его компетентному инженеру середины 1960-х, он сможет понять большую его часть. Что суперкомпьютер можно превратить в то, что умещается в вашем кармане? Проверьте. Что у вас в упаковке может быть эквивалент цветного телевизора сверхвысокого качества? Проверьте. Что это намного быстрее, имеет гораздо больше памяти и т. Д., Чем компьютеры той эпохи? Проверьте. Это программное обеспечение было написано, что может выполнять такие сложные функции? Проверьте.

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

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

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

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

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


16
Недооцененный ответ недооценен. Хотя у меня небольшой опыт работы в области электроники, и я сам сконструировал несколько радиоустройств, но я никогда не знал, что в эти дни программное обеспечение настраивало сигналы. Мой разум собирает бананы, пытаясь представить, как именно это делается.
Мачадо

5
@ Мачадо Если вы когда-нибудь сделаете какой-то серьезный электронный проект, вы быстро поймете, что это в основном все математические уравнения. Физическая электроника может складывать, вычитать, делить, умножать, дифференцировать, интегрировать и т. Д. Просто вместо того, чтобы физический конденсатор отфильтровывал весь низкочастотный шум, это делается в коде. Физический сигнал «загружается» в программное обеспечение через специализированное оборудование, называемое аналого-цифровым преобразователем.
Чендрикс

6
@Machado dspguide.com/pdfbook.htm В этом учебнике много примеров псевдокодов. Это драгоценный камень.
brian_o

4
@Machado Не забудьте взять радио с программным обеспечением (около 20 долларов) и начать играть с ним !
Майкл Хэмптон

5
Только не говорите парню из 1960-х, для чего вы в первую очередь используете всю эту мощь и возможности компьютера; это размещать фотографии вашей еды, потоковое видео с кошками и охотиться на покемонов ...
Baard Kopperud

42

Рассмотрим эту схему:

введите описание изображения здесь

Это флип-флоп, он же бистабильный мультивибратор. Его можно заменить следующим кодом:

static bool toggle;

if (toggle == true) 
{
    lblTop.BackColor = Color.Black;
    lblBottom.back Color = Color.Red;
}
else
{
    lblTop.BackColor = Color.Red;
    lblBottom.BackColor = Color.Black;
}
toggle = !toggle;

1
Большое спасибо за ваш ответ и за исправление поста! У вас есть какая-нибудь книга, чтобы предложить немного больше узнать об этом? Габриэле
Габриэле Скарлатти

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

4
@igormilla Я могу поручиться за ваше предложение. В настоящее время я читаю книгу, и это, безусловно, лучшая книга по компьютерной архитектуре, которую я когда-либо читал. Он делает отличную работу, четко и кратко объясняя каждую концепцию, не заталкивая слишком много технических терминов в горло. Я очень рекомендую его всем, кто хочет глубже понять взаимосвязь между оборудованием и программным обеспечением.
Кристиан Дин

1
@igormilla, хорошая находка! К счастью для меня, это доступно как часть Safari Books Online , так что я могу начать читать прямо сейчас. :) (Читая мой комментарий еще раз перед публикацией: это звучит как реклама, но я просто счастливый клиент. В прошлом году я не нашел ни одной рекомендованной технической книги, которую не смог бы сразу просмотреть или даже прочитать полностью). онлайн.)
Wildcard

29

Это означает именно то, на что это похоже.

Особенно известный пример - диск II, разработанный Стивом Возняком для Apple II:

Главным нововведением было сделать контроллер компактным с помощью программного обеспечения, в то время как конкуренты полагались на аппаратное обеспечение. Как вспоминает Билл Фернандес, в то время технический специалист Apple по электронике, «ключевое преимущество дизайна [Возняка] заключалось в том, что он использовал только шесть чипов вместо обычных 60–70.

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

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


Так что единственное, что вам всегда нужно, это хотя бы один процессор?
Габриэле Скарлатти

3
@GabrieleScarlatti Вам потребуется немного больше, в частности, устройства ввода-вывода должны быть аппаратными (но контроллеры могут быть программными!), А память должна быть аппаратной. Связи между ними должны быть аппаратными, но необходимая логика ограничена. Простые провода, если у вас достаточно контактов, чуть менее простые регистры сдвига или аналогичные устройства, если у вас недостаточно контактов.
8bittree

Ахаха, да, я был слишком приблизителен, можете ли вы предложить какую-нибудь хорошую книгу, чтобы узнать об этом больше? Большое спасибо за ответы!
Габриэле Скарлатти

1
Лучшим ответом на данный момент в этой теме являются «эмуляторы».
Мачадо

1
Не могу говорить на эту тему, не упоминая Woz!
Джеймс Р.

11

Другая область, в которой это действительно так, - это синтезаторы.

Ранние синтезаторы были на 100% аналоговыми аппаратными средствами, которые генерировали сигналы непосредственно, а затем модифицировали их с помощью схем (фильтры, усилители и т. Д.). Можно было синтезировать звук в цифровом виде, но для этого требовались вычислительные ресурсы, которые средний человек не мог себе позволить (реальный мэйнфрейм и специальное аппаратное обеспечение цифро-аналогового преобразователя).

По мере совершенствования производства микросхем синтезаторы перешли от чисто аналоговых к микросхемам синтезаторов, управляемых цифровыми сигналами, но все еще генерирующими аналоговые сигналы, а затем к чисто цифровому синтезу (воспроизведение сэмплов, синтез FM , истинный аддитивный синтез и т. Д.).

Сегодня процессоры настолько дешевы и достаточно быстры, что позволяют программистам создавать компьютерные версии классических аналоговых синтезаторов, которые точно дублируют поведение исходных микросхем, моделируя их поведение в режиме реального времени - фактически, телефоны и планшеты теперь способны работать достаточно быстро, чтобы запустить эти воссоздания; Korg IMS-20 является примером.

И классические синтезаторы, и новые доступны в виде плагинов VST или AU для цифровых аудиопрограмм, таких как Ableton Live, Logic или Cubase, и они предоставляют доступ к синтезаторам людям, у которых иначе не было бы места или денег для использования. их.

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


1
Atari 2600 1977 года обладает достаточной мощностью процессора для генерации музыки с четырьмя голосами с диапазоном в пять октав, даже оставляя более 39% процессорного времени доступным для генерации дисплея. Необходимые таблицы поиска занимают более половины картриджа 4K (около 2300 байт), но, конечно, картриджи могут быть больше 4K. Вероятно, невозможно было бы ужасно усложнить игровой процесс во время игры на музыке, но довольно красочный титульный экран с текстом прокрутки был бы вполне вероятным >:*3.
Суперкат

Да, я пропустил около 10? 20? годы разработки, поэтому мой ответ не превратился в роман. Очень хорошие очки! Раньше у меня на Mac 512K было что- то под названием (Musicworks) [ thinkclassic.org/viewtopic.php?id=550], которое могло обрабатывать только 4 голоса.
Джо МакМэхон

Для выполнения каждой инструкции 68000 требует больше циклов, чем для 6502, но при правильном кодировании синтез таблицы из четырех голосов должен быть достаточно эффективным. Я бы оценил около 240 циклов / выборку с масштабированием амплитуды с использованием 256-байтовой таблицы для каждой настройки громкости; устранение масштабирования амплитуды уменьшит это время на 56 циклов / выборка.
суперкат

7

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

Редактировать На самом деле «Программное обеспечение может заменить оборудование» не совсем правильно. Это просто факт, что аппаратное обеспечение стало настолько мощным, что вы можете использовать его для запуска программного обеспечения, которое эмулирует аппаратное обеспечение. Таким образом, вместо нескольких простых, но статически спаянных транзисторов вы используете миллионы транзисторов, которые понимают программное обеспечение. Таким образом, термин должен быть «Аппаратные средства теперь могут понимать программное обеспечение».


Справедливости ради следует отметить, что почти все микроконтроллеры имеют (по крайней мере, один) модуль ШИМ общего назначения, реализованный аппаратно. Так что это редко делается для того, чтобы разрядить частоту, используя программное обеспечение, работающее на собственном процессоре.
Линдон Уайт

@LyndonWhite ШИМ не является общим мультивибратором. Он модулировал ширину импульса, которая является подмножеством генератора частоты.
qwerty_so

1
На самом деле это правда. Я хотел сказать, что ШИМ, безусловно, является наиболее распространенным типом сигнала, который нужно генерировать (в некотором диапазоне рабочих циклов), поэтому микропроцессоры имеют специальное оборудование для него. Я бы, вероятно, поставил PWM против бит-бинга в качестве примера противоположного «аппаратное обеспечение может заменить программное обеспечение».
Линдон Уайт

@LyndonWhite Я внес изменения в свой ответ.
qwerty_so

5

Сравнение между аркадной игрой Tank (около 1976 года) и домашней консольной игрой Combat (1977) дает хороший пример того, как программное обеспечение могло заменить аппаратное обеспечение даже 40 лет назад.

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

Видеокомпьютерная система Atari 2600 (домашняя игровая консоль около 1977 года) включала аппаратное обеспечение для отслеживания горизонтального (но не вертикального!) Положения двух растровых объектов и четырех генераторов импульсов переменной ширины, удержания и отключения минимума шириной 20 бит -разрешение графического шаблона игрового поля, а также двух 8-битных шаблонов высокого разрешения, фиксация цветов для игроков, фона и игрового поля и обнаружение столкновений между различными объектами. Он также включал программируемый таймер общего назначения, но аппаратное обеспечение имело немного другое, чем указано выше. Тем не менее, несмотря на то, что аппаратное обеспечение намного проще, чем у игрового танка, патрон Combat 2K ROM позволяет 2600 играть в ту же самую основную игру, но со многими другими функциями (разнообразными транспортными средствами и фонами, прыгающими выстрелами и т. Д.), Потому что он может заменить большую часть аркадной машины » Аппаратное обеспечение с программным обеспечением. Интересно, что хотя Atari 2600, вероятно, является второй по простоте аппаратной платформой среди всех продаваемых на рынке микропроцессорных систем домашних видеоигр, он настолько хорошо спроектирован, чтобы облегчать замену аппаратного обеспечения программным обеспечением, что при правильном программировании может вращаться вокруг многих его конкуренты.


Я провел много часов и четверти, играя в Танк. Мой друг восстанавливает эти старые игровые приставки, и я был очень удивлен, узнав, что это все оборудование. Кто-то потратил много времени на создание карт Карно, чтобы сделать его управляемым. Воспроизвести его в программном обеспечении гораздо проще и требует меньше обслуживания. То же самое с астероидами. Но ни тот, ни другой не получат одинакового ощущения, если вы точно не скопируете его, включая элементы управления консоли. Кроме того, векторная графика не выглядит одинаково на растровых дисплеях, IMO.
SDsolar

@Ssolar: Я помню, как читал лист, опубликованный, я думаю, Atari, с некоторыми модами, которые владелец мог бы сделать, чтобы настроить различные аспекты игрового процесса, я думаю, что два мода, связанные с удержанием, позволили зафиксировать угол выстрела игрока (добавив «управляемую ракету»). "особенность) и, возможно, добавив что-то вроде функции невидимого танка. Изменение прошивки потребовало бы более сложного оборудования, а некоторые виды модов, которые были бы просты в оборудовании, были бы невозможны в прошивке (например, если позиция игрока использует двоичный счетчик, трижды появляется игрок на каждой строке сканирования).
суперкат

1

Фраза «программное обеспечение может заменить оборудование» является предупреждением о том, что не стоит пытаться решать проблемы с оборудованием, если нет явных преимуществ. Программное обеспечение в 10–50 раз дешевле в разработке и почти бесконечно дешевле в расчете на единицу продукции, чем оборудование. Выполнение X в оборудовании не будет выигрышным решением, если X действительно не может быть эффективно сделано в программном обеспечении.


Я не понизил голос, но я почти уверен, что это неточно.
Дж. Аллан

@ JefréN. Это просто покупка оборудования, а скорее его разработка.
ДепрессияДаниэль

Вы правы; Я неправильно понял цель вопроса. У вас есть цитата или ссылка, подтверждающая ваше утверждение о том, что «разработка программного обеспечения в 10–50 раз дешевле… чем аппаратного обеспечения»? Мне было бы интересно узнать, является ли это приблизительным показателем или это [общепринятая / проверенная] формулировка. (Мне жаль, что ты грустный, кстати;; D)
Дж. Аллан

Я не отрицал, но не могу сказать, потому что не всегда правда, что программное обеспечение дешевле. Часто это может быть намного дороже. Кроме того, рассмотрите концепцию ASIC и FPGA, где программное обеспечение используется для создания аппаратного эквивалента, который затем может работать быстрее. Как конечная разница между исполняемыми файлами и интерпретируемыми программами, но тем более.
SDsolar

1
@Ssolar Я не слышал о случае, когда такая же функция дешевле реализована в оборудовании, чем в программном обеспечении. Если это возможно сделать в программном обеспечении, это почти всегда будет дешевле делать это в программном обеспечении. Конечно, например, программный рендерер столкнется с проблемами производительности быстрее по сравнению с видеокартой. Но это больше относится к возможности реализации программного обеспечения для достижения определенного базового уровня производительности.
ДепрессияДаниэль

1

Этот нюанс хорошо решен, но я думаю, что он может стать камнем преткновения для OP, поскольку его замена аппаратного обеспечения на программное обеспечение невозможна. «Аппаратное обеспечение» неизменно включает в себя значительно меньше «аппаратного обеспечения», чем «программное» решение.

Разница в том, что логику процесса / алгоритма / вычисления можно перемещать между аппаратным и программным обеспечением. Было приведено много примеров, поэтому я не буду подробно останавливаться.


-1

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

Теперь большинство процессоров используют аппаратное обеспечение для выполнения процесса, чтения таблицы страниц, обхода таблиц страниц и обновления TLB.

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

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


-2

Есть много случаев, когда программное обеспечение может заменить аппаратное обеспечение и наоборот.

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

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

Будет использовано любое оборудование, которое можно создать виртуально, если оно быстрее и / или дешевле, чем физический эквивалент.


-2

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.