Що розуміється під фразою "Програмне забезпечення може замінити апаратне забезпечення"?


90

Вивчаючи курс початківців на апаратно-програмному інтерфейсі та операційних системах, часто виникає тема, чи було б краще замінити деякі апаратні частини на програмне забезпечення і навпаки. Я не можу встановити з'єднання.


7
Процесори загального призначення мають набори інструкцій, які дозволяють виконувати довільні логічні операції. Програмне забезпечення компілюється в потік команд, виконаних набором інструкцій CPU. Це приклад того, як робити речі "в програмному забезпеченні". І навпаки, алгоритм програмного забезпечення може бути безпосередньо виконаний «апаратно» шляхом створення спеціалізованих масивів логічних воріт у кремнію.
Химера

12
"З'єднання" полягає в тому, що і програмне, і апаратне забезпечення виконуються різними способами логічними твердженнями.
Химера

14
Це означає саме те, що сказано. Програмне та апаратне забезпечення роблять речі. Іноді ви можете робити речі за допомогою програмного чи апаратного забезпечення, тож вибираєте одне. Тоді ви замислюєтесь, чи було б краще зробити це з іншим.
іммібіс

4
Очевидно, ви не можете замінити все обладнання на програмне забезпечення - немає сенсу намагатися зробити монітор програмного забезпечення, мишу чи клавіатуру. (Якщо вони не віртуальні)
immibis

2
Вважайте, що ми використовуємо (програмне забезпечення) Операційні системи, оскільки: 1) Написання ОС безпосередньо на апаратному забезпеченні потребує неймовірно складної мікросхеми, яка коштуватиме багато. Якщо виявлена ​​проблема із безпекою, її неможливо
виправити

Відповіді:


176

Я думаю, що фундаментальним зв’язком, який відсутні інші відповіді, є такий:

Враховуючи комп'ютер загального призначення (наприклад, процесор), його можна запрограмувати для виконання будь-яких обчислень, які ми визначили. Однак спеціалізоване обладнання може працювати краще, а може і не надавати жодної цінності.

(ця відповідь орієнтована на обробку робочого столу та використовує приклади з цього домену)

Заміна програмного забезпечення апаратним забезпеченням

Якщо ви досить дорослі, щоб запам'ятати комп'ютерні ігри в середині-кінці 1990-х, ви, мабуть, пам’ятаєте ігри FPS, такі як Quake . Він почав бути "програмним забезпеченням", тобто процесор виконав обчислення, необхідні для візуалізації графіки. Тим часом CPU також повинен був виконувати обробку вводу, обробку аудіо, обробку AI тощо. Це дуже оподатковувало ресурси CPU. Крім того, обробка графіки недостатньо підходить до основного процесора (тоді чи зараз). Це, як правило, дуже паралельне завдання, вимагає набагато більше ядер, ніж навіть сучасний процесор високого класу (8).

Ми перенесли обробку графіки з програмного забезпечення на апаратне: введіть 3dfx Voodoo та Nvidia TNT (зараз GeForce ). Це спеціалізовані графічні картки, які завантажували обробку з процесора на GPU. Це не тільки розширило навантаження, забезпечивши більше обчислювальних ресурсів для виконання такої ж кількості роботи, графічні картки були спеціалізованим обладнанням, яке може надавати 3D-графіку набагато швидше та з більшими можливостями, ніж міг би процесор.

Швидкий перехід до сучасної епохи, а на робочому столі необхідна графіка, яка не є процесором . Навіть операційна система не може функціонувати без GPU. Це так важливо, що ЦП насправді інтегрують GPU зараз. 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. Порівняйте це з сучасним поколінням 6 Core i7, використовуючи список MIPS у Вікіпедії , а сучасний процесор у будь-якому місці між 590 та 1690 разів швидше. Частково це пов’язано з тактовою швидкістю, а також переміщенням до декількох ядер як стандартних, так і сучасних процесорів, які роблять набагато більше роботи на ядро ​​за один тактовий тик. Також актуальним є те, що в міру розвитку технології Intel (який домінує на ринку настільних ПК та серверів x86) додає спеціалізовані інструкції, щоб сприяти прискоренню операцій, які бажають робити користувачі настільних ПК (наприклад, декодування відео).


Старіші 2d графічні карти не були графічними процесорами у розумінні сьогодні, але спеціалізоване обладнання для графічних функцій було дуже присутнім. Блітер може швидко копіювати велику кількість пам'яті з одного місця в інше, можливо, використовуючи просту логічну операцію для комбінування її з даними в цільовому місці. Це було присутні в типових 2d картках епохи VGA / SVGA. На інших комп’ютерах було інше спеціалізоване обладнання 2d, наприклад апаратні спрайти в домашніх комп'ютерах та ігрових консолях 80-х та 90-х.
Себастьян Редл

127

Я здивований, що ніхто не згадав про один із найяскравіших прикладів: радіо, визначене програмним забезпеченням.

Якби ви повернули сучасний смартфон у часі приблизно 50 років і показали його грамотному інженеру з середини 1960-х, він би зміг зрозуміти більшість цього. Що суперкомп'ютер можна звести до чогось, що поміщається у вашій кишені? Перевірка. Що ви можете мати в комплекті еквівалент ультраякісного кольорового телевізора? Перевірка. Що це набагато швидше, чи набагато більше пам’яті тощо, ніж комп’ютери епохи? Перевірка. Що написано програмне забезпечення, яке може виконувати такі складні функції? Перевірка.

Але скажіть цьому грамотному інженеру, що о, до речі, цей пакет містить набір надзвичайно ефективних передавачів та чутливих приймачів: цифровий приймач широкого спектру, який може одночасно передавати та приймати по декількох каналах, спілкуючись з інфраструктурною вежею, яка може бути миль ; інший цифровий приймач, який передає дані про високу швидкість з базовою станцією десь у будівлі; ще один цифровий приймач, який спілкується з носячими пристроями малої потужності; а ще один приймач, який приймає слабкий сигнал із супутника на проміжній орбіті ... він би назвав вас брехуном.

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

Тоді вам слід було б пояснити, що в сучасному радіо більшість цього робиться в програмному забезпеченні. Якщо сигнал, який надходить з антени, перетворюється на проміжну частоту і трохи посилюється, то він відбирається за допомогою аналого-цифрового перетворювача; і подальша обробка відбувається в цифровому сигнальному процесорі. Всю ту налаштування, ту фільтрацію, яка вимагала багато апаратних засобів у старому шкільному радіо, можна описати у вигляді математичних рівнянь; і якщо це можна зробити, ці рівняння можуть бути виконані DSP в режимі реального часу.

Я думаю, це один із найяскравіших прикладів заміни програмного забезпечення апаратними засобами. Як результат, ми тримаємо смартфони в кишенях, які навіть грамотному інженеру 1960-х років були б схожі на чарівну хитрість.

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


16
Занижена відповідь занижена. Хоча я маю невеликий досвід роботи в електроніці і сам побудувавши декілька радіопристроїв, я ніколи не знав, що налаштування сигналу сьогодні проводиться програмним забезпеченням. Мої думки збираються банани, намагаючись уявити, як саме це робиться.
Мачадо

5
@Machado Якщо ви коли-небудь зробите серйозний електронний дизайн, ви швидко зрозумієте, що це в основному всі математичні рівняння. Фізична електроніка може додавати, віднімати, ділити, множити, диференціювати, інтегрувати і т. Д. Це просто те, що замість фізичного конденсатора для фільтрації всіх низькочастотних шумів це робиться в коді. Фізичний сигнал "завантажується" в програмне забезпечення через спеціалізовану частину обладнання, зване аналоговим цифровим перетворювачем.
Чендрікс

6
@Machado dspguide.com/pdfbook.htm У цьому підручнику є багато прикладів псевдокоду. Це дорогоцінний камінь.
brian_o

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

5
Тільки не кажіть хлопцеві з 1960-х років, що ви в першу чергу використовуєте всю потужність і функції комп'ютера; це розміщення фотографій вашої їжі, потокове відео з кішками та полювання на покемонів ...
Баард Копперуд

42

Розглянемо цю схему:

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

Це Flip Flop, він же Bistable Multivibrator. Його можна замінити цим кодом:

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
дуже дякую за вашу відповідь та за виправлення поста! Чи є у вас якась книга, яка пропонує запропонувати трохи більше дізнатися про неї? Gabriele
Gabriele Scarlatti

11
Перевірте код: Прихована мова комп'ютерного обладнання та програмного забезпечення . Він охоплює приємний перехід від апаратного до програмного забезпечення
Ігор Мілла

4
@igormilla Я можу поручитися за вашу пропозицію. Я зараз читаю книгу, і це, безумовно, найкраща книга про комп'ютерну архітектуру, яку я коли-небудь читав. Це прекрасна робота з чіткого та стислого пояснення кожної концепції, не збиваючи занадто багато технічного жаргону в горло. Я дуже рекомендую його всім, хто хоче глибше зрозуміти взаємозв'язок апаратного та програмного забезпечення.
Християнський декан

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

29

Це означає саме те, що це звучить.

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

Головною інновацією було зробити контролер компактним за допомогою програмного забезпечення, тоді як конкуренти покладалися на обладнання. Як пам'ятає це Білл Фернандес, тодішній технік з електроніки в Apple, "ключовою перевагою дизайну [Возняка] було те, що він використовував лише шість мікросхем замість звичайних 60 - 70

Ще один приклад, напевно, вам більше відомий: Емулятори. Вони замінюють цілі набори апаратних засобів (і програмного забезпечення) повністю на програмне забезпечення. Процесори, різні контрольні мікросхеми, навіть пристрої зберігання даних.

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


Тож єдине, що вам завжди потрібно - це хоча б один процесор?
Габріеле Скарлатті

3
@GabrieleScarlatti Вам знадобиться трохи більше, зокрема пристрої вводу / виводу повинні бути апаратними (але контролери можуть бути програмними!), А пам'ять повинна бути апаратною. Зв'язки між ними повинні бути апаратними, але необхідна логіка обмежена. Прості дроти, якщо у вас достатньо штифтів, трохи менш прості регістри зсуву або подібні пристрої, якщо у вас недостатньо штифтів.
8bittree

Ага, так, я був занадто приблизним, чи можете ви запропонувати якусь хорошу книгу, щоб дізнатися більше про неї? Дуже дякую за відповіді!
Габріеле Скарлатті

1
Найкраща відповідь поки що в цій темі - «емулятори».
Мачадо

1
Не можу говорити про цю тему, не згадуючи про Woz!
Джеймс Р.

11

Інша сфера, в якій це правда, - це синтезатори.

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

У міру поліпшення виготовлення мікросхем синтезатори перейшли від чистого аналогового до мікросхеми синтезатора, керованого цифровими сигналами, але все ще генеруючи аналогові сигнали, а потім до чистого цифрового синтезу (відтворення зразків, синтез ФМ, синтез справжньої добавки тощо).

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

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

Редагувати: Я на цьому місці також повинен згадати VCVRack , який імітує аналоговий модульний синтез у режимі реального часу. Досить крок вперед від багатогодинного часу візуалізації на кілька секунд музики.


1
1977 року Atari 2600 має достатню кількість кінських сил процесора, щоб генерувати чотириголосну музику з п'ятиоктавним діапазоном, навіть залишаючи більше 39% часу процесора для створення дисплея. Необхідні таблиці пошуку зайняли б більше половини 4К картриджа (близько 2300 байт), але, звичайно, можливо, картриджі перевищують 4К. Можливо, під час відтворення музики не можна було мати дуже складний геймплей, але певна можливість - це дуже барвистий заголовок із текстом прокрутки >:*3.
supercat

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

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

7

У колишні часи розріз був досить зрозумілим. Більшість речей, які потребували якнайшвидшого виконання, мали бути реалізовані апаратно. Візьмемо для прикладу мультивібратор, який генерує частоту. Не так давно вам потрібна була пара транзисторів, конденсаторів і зрештою кварц для генерації (фіксованої) частоти. Зараз є дешеві мікроконтролери, які коштують лише кілька центів або близько того. Оскільки вони такі швидкі, ви можете легко використовувати їх для створення мультивібратора. І крім того, ви легко можете за допомогою програмного забезпечення керувати частотою для створення, де в колишні часи вам потрібно було спаяти обладнання. Хоча для переходу певної (але зараз досить високої) частоти все одно знадобиться чисте обладнання. Отже, ви бачите, між обома є лінія, але частина, яку ви можете вирішити за допомогою програмного забезпечення, зростає (експоненціально).

Редагувати Насправді "Програмне забезпечення може замінити апаратне" - це не дуже правильно. Це лише той факт, що апаратне забезпечення настільки потужне, що ви можете використовувати його для запуску програмного забезпечення, яке імітує обладнання. Тож замість кількох простих, але статично паяних транзисторів ви використовуєте мільйони транзисторів, які розуміють програмне забезпечення. Отже, термін повинен бути "Апаратне забезпечення тепер може зрозуміти програмне забезпечення".


Якщо справедливо, майже всі мікроконтролери мають (принаймні один) ШІМ модуль загального призначення, реалізований апаратно. Тому рідко робиться бітбанг частотного виходу, використовуючи програмне забезпечення, що працює на центральному процесорі.
Ліндон Уайт

@LyndonWhite ШІМ не є загальним мультивібратором. Він модулював ширину імпульсу, яка є підмножиною генератора частоти.
qwerty_so

1
Дійсно, це правда. Моя думка була скоріше, що ШІМ, хоча на сьогоднішній день є найпоширенішим типом сигналу, який хоче генерувати (з деяким діапазоном робочих циклів) - саме тому мікропроцесори мають для цього спеціальне обладнання. Я б, мабуть, ставлю PWM vs bitbanging як приклад протилежного "апаратне забезпечення може замінити програмне забезпечення".
Ліндон Уайт

@LyndonWhite Я змінив свою відповідь.
qwerty_so

5

Порівняння між аркадною грою Tank (близько 1976 р.) Та домашньою консольною грою Combat (1977 р.) Дає чудовий приклад того, як програмне забезпечення могло замінити обладнання ще 40 років тому.

Аркадна гра Tank (близько 1976 року) дозволила двом гравцям їздити навколо танків і стріляти один в одного. Він не включав будь-який тип процесорів, але натомість мав апаратні лічильники, щоб відслідковувати горизонтальне та вертикальне положення електронного променя, резервуари та постріли, а також бали гравця, кути обертання, минулий час. Він мав жорстку логіку для виведення растрових даних, пов’язаних з оцінками, формами танка гравців та фоном.

Відеокомп'ютерна система Atari 2600 (домашня ігрова консоль близько 1977 р.) Включала обладнання для відстеження горизонтальних (але не вертикальних!) Позицій двох растрових об'єктів та чотирьох генераторів імпульсів змінної ширини, утримуйте та витримуйте 20-розрядний мінімум -роздільна здатність графічного шаблону ігрового поля, а також двох 8-бітних візерунків з високою роздільною здатністю, кольорів засувок для гравців, фону та ігрового поля та виявлення зіткнень між різними об'єктами. Він також включав програмований таймер загального призначення, але обладнання не мало іншого, ніж вище. Тим не менше, хоча апаратне забезпечення набагато простіше, ніж у грі Tank, картридж 2K ROM Combat дозволяє 2600 грати в ту саму основну гру, але з багатьма іншими функціями (різноманітні транспортні засоби та фони, підстрибуючі постріли тощо), оскільки він може замінити більшу частину аркадної машини ' s обладнання з програмним забезпеченням. Цікаво, що навіть незважаючи на те, що Atari 2600 є, мабуть, другою найпростішою апаратною платформою будь-якої домашньої системи відеоігор на основі мікропроцесорів, вона настільки добре розроблена, щоб полегшити заміну обладнання на програмне забезпечення, що при правильному запрограмуванні може запускати кола навколо багатьох її конкуренти.


Я багато годин і кварталів проводив, граючи в Танк. Мій друг реставрує ті старі ігрові консолі, і я дуже здивувався, дізнавшись, що це все обладнання. Хтось витратив багато часу, роблячи карти Карно, щоб зробити його керованим. Тиражувати його в програмному забезпеченні набагато простіше і вимагає меншого обслуговування. Те саме з астероїдами. Але жодне не закінчується тим самим почуттям, якщо ви точно не повторите його, включаючи елементи керування консолі. Крім того, векторна графіка просто не виглядає однаково на растрових екранах, IMO.
SDsolar

@SDsolar: Я пам'ятаю, як читав аркуш, опублікований, я думаю, що Atari, з деякими модами, які власник міг зробити, щоб налаштувати різні аспекти ігрового процесу, я думаю, що два моди, що займаються проведенням, увімкнули засувку для кута пострілу гравця (додавши "керовану ракету" "особливість) і можливо додати щось на зразок функції невидимого танка. Зміна вбудованого програмного забезпечення потребувала б більш складного обладнання, а деякі види модів, що було б просто в апаратному забезпеченні, було б неможливо в мікропрограмному забезпеченні (наприклад, якщо позиція гравця використовує двійковий лічильник, якщо плеєр з’являється двічі за кожну лінію сканування - тривіально).
supercat

1

Фраза "програмне забезпечення може замінити апаратне забезпечення" є попередженням не намагатися вирішувати проблеми з обладнанням, якщо немає явних переваг. Програмне забезпечення в 10x-50x дешевше розробити і майже нескінченно дешевше виготовити на одиницю, ніж апаратне. Виконання X в апараті не буде виграшним рішенням, якщо X справді не вдасться зробити це ефективно в програмному забезпеченні.


Я не заявив, але я впевнений, що це неточно.
Дж. Аллан

@ JefréN. Це лише про придбання обладнання, а не про його розробку.
ДепресіяДаніель

Ти правий; Я неправильно зрозумів намір питання. Чи є у вас цитування або посилання на підтвердження вашого твердження, що "програмне забезпечення в 10x-50x дешевше розробляти ..., ніж апаратне".? Мені було б цікаво дізнатися, чи це показник бального парку, чи це твердження [загальноприйняте / перевірене]. (Вибачте, що ви сумні, btw.; D)
Дж. Аллан

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

1
@SDsolar Я не чув про випадок, коли одна і та ж функція дешевше реалізована в апараті, ніж у програмному забезпеченні. Якщо це можливо зробити з програмним забезпеченням, це буде майже повсюдно дешевше робити це в програмному забезпеченні. Звичайно, наприклад, програмний рендер буде стикатися з проблемами продуктивності раніше, ніж порівняно з відеокартою. Але це більше стосується можливості реалізації програмного забезпечення для досягнення певної базової продуктивності.
ДепресіяДаніель

1

Нюанс вдало вирішений, але я думаю, що це можливо каменем спотикання для ОП, адже це дуже неможливо замінити обладнання на програмне забезпечення. "Апаратне забезпечення" незмінно включає значно менше "апаратного забезпечення", ніж рішення "програмного забезпечення".

Різниця полягає в тому, що логіка процесу / алгоритму / обчислення може переміщуватися між апаратним та програмним забезпеченням. Наведено багато прикладів, тому я не буду деталізувати.


-1

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

Зараз більшість процесорів використовує апаратне забезпечення для виконання цього процесу, читаючи таблицю сторінок, переглядаючи таблиці сторінок і оновлюючи TLB.

В обох методах потрібно використовувати програмне забезпечення для усунення несправностей сторінки, але оскільки TLB пропускає зручно перевищувати кількість помилок сторінки, апаратне забезпечення все ще перевершує програмне забезпечення.

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


-2

Є багато випадків, коли програмне забезпечення може замінити апаратне забезпечення і навпаки.

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

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

Буде використано будь-яке обладнання, яке можна практично створити, якщо воно швидше та / або дешевше фізичного еквівалента.


-2

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.