Чому важлива оптимізація на межі між апаратним та програмним забезпеченням?

У цій публікації блогу ми розглянемо, чому оптимізація на межі між апаратним та програмним забезпеченням важлива для технологічного прогресу.

 

Бум iPhone та смартфонів – це соціальне явище, яке ми всі пережили прямо чи опосередковано, тривало менше року і, можливо, продовжується й сьогодні. Смартфони мали широкий вплив, який виходить за рамки розвитку пристроїв і впливає на спосіб життя та соціальні структури. В результаті смартфони стали не просто комунікаційними пристроями; тепер вони є важливими інструментами для керування особистою інформацією та даними, а також для виконання різних завдань. Однак мало хто знає, що цей процес супроводжувався зміною парадигми від апаратного забезпечення до програмного забезпечення та прошивки. Насправді, легко не помітити той факт, що багато технологій, які ми використовуємо у повсякденному житті, є результатом цієї зміни парадигми. Галузі дослідження, представлені в цій статті, – це прикордонні області між апаратним та програмним забезпеченням, такі як операційні системи, компілятори та комп’ютерна інженерія, де ця зміна парадигми може бути глибоко відчутна. Терміни «апаратне забезпечення» та «програмне забезпечення» є поширеними, тому ви, ймовірно, маєте загальне уявлення про те, що означає кожен з них.
Однак часто важко зрозуміти межу між ними. Тому, перш ніж обговорювати межу між апаратним та програмним забезпеченням, необхідно коротко визначити апаратне забезпечення, програмне забезпечення та прошивку. Як випливає з назви, апаратне забезпечення стосується матеріальних товарів, або товарів, які мають фізичну форму або які важко змінити. Це включає електронні компоненти, які ми можемо бачити та торкатися, такі як напівпровідники та жорсткі диски. Це апаратне забезпечення є важливим фактором, що визначає основну продуктивність таких пристроїв, як комп'ютери та смартфони. З іншого боку, програмне забезпечення, як випливає з назви, стосується м'яких продуктів, або продуктів, які не мають фізичної форми або які легко змінити. Це включає операційні системи, такі як Windows, усі програми, що працюють на комп'ютерах, та програми, що використовуються на смартфонах, які зазвичай називають програмами. Програмне забезпечення дозволяє ефективно використовувати апаратне забезпечення та може постійно розвиватися та змінюватися відповідно до потреб користувача. Нарешті, прошивка - це надійний продукт, який знаходиться між апаратними та м'якими продуктами, і являє собою програму, яка працює на глибшому рівні, щоб забезпечити роботу програмного забезпечення на обладнанні. Найбільш показовим прикладом є BIOS комп'ютера.
Однак, межа між апаратним та програмним забезпеченням не обов'язково є сферою прошивки, яка їх поєднує. Хоча кінцеві цілі та категорії апаратного та програмного забезпечення, що охоплюються різними галузями, що входять до цієї граничної області, відрізняються, вони зрештою прагнуть гармонії апаратного та програмного забезпечення, подібно до ролі прошивки, яка є одним із інструментів для досягнення цієї гармонії та фактично глибше займається апаратним та програмним забезпеченням. Наприклад, хоча апаратне забезпечення може забезпечити більш потужну продуктивність, програмне забезпечення має постійно оптимізуватися та вдосконалюватися, щоб максимізувати потенціал цього обладнання. Цей процес оптимізації не є простою модифікацією коду, а починається з розуміння тісної взаємодії між апаратним та програмним забезпеченням.
Давайте коротко розглянемо сферу компіляторів, щоб побачити, як узгоджено апаратне та програмне забезпечення. Компілятори перетворюють завдання, які повинні виконувати загальні програми, на команди, які можуть зрозуміти комп'ютерні машини. Щоб навести дуже простий приклад, вони перетворюють «c=a+b» на «0001100001010011». Ви можете подумати, що достатньо просто зіставити двійкові числа з відповідними командами, але це не так просто, оскільки сучасні програми використовують не лише прості арифметичні операції, а набір двійкових команд, які необхідно використовувати, залежить від апаратного пристрою. Наприклад, невеликі пристрої, такі як смартфони, потребують ефективної оптимізації коду для мінімізації споживання енергії, а це означає, що глибоке розуміння апаратного забезпечення є важливим. Тому необхідне глибоке розуміння як апаратного, так і програмного забезпечення. Строго кажучи, компілятори самі по собі є програмами та програмним забезпеченням, але оскільки вони поєднують програмне та апаратне забезпечення з точки зору їхніх функцій, і оскільки вони вимагають розуміння апаратного забезпечення, на відміну від загального програмного забезпечення, вони існують на межі між апаратним та програмним забезпеченням. Інші галузі також охоплюють обидві сторони, іноді використовуючи апаратне забезпечення, іноді програмне забезпечення, а іноді маючи справу з прошивкою, кожна по-своєму.
Тепер, коли ми знаємо, де пролягає межа між апаратним та програмним забезпеченням, чому ця галузь є важливою сферою досліджень? Без прогресу в прикордонній області, якщо точки дотику та правила між апаратним та програмним забезпеченням залишаються фіксованими, обидві сторони будуть пов'язані цими правилами, і їхній прогрес буде обмеженим. Наприклад, у минулому технологічний прогрес був головним чином зумовлений покращенням продуктивності апаратного забезпечення, але сьогодні розробка апаратного та програмного забезпечення без оптимізації програмного забезпечення, ймовірно, виявить свої обмеження. Однак, стежачи за розвитком апаратного та програмного забезпечення та докладаючи зусиль у прикордонній області для забезпечення сумісності між ними, апаратне забезпечення може розвиватися в нових напрямках з новими технологіями, такими як забезпечення спільної роботи кількох комп'ютерів, а не просто збільшення швидкості одного комп'ютера. Що стосується програмного забезпечення, то можна буде розробляти та використовувати більш просунуті мови програмування. Це дозволяє створювати нові комбінації апаратного та програмного забезпечення, що зрештою відіграє важливу роль у забезпеченні кращого досвіду для користувачів. Можливо, важко сказати, що це основна область технологічного прогресу, але це та галузь, яка забезпечує технологічний прогрес.
Насамкінець, я хотів би завершити, коротко обговоривши зміну парадигми, про яку я згадував на початку. Два чи три роки тому, коли я розмовляв зі своїми старшокласниками, які були інженерами-електриками, про межу між апаратним та програмним забезпеченням, більшість із них порадили мені перейти в сферу апаратного забезпечення, яка є основою таких розробок. Ймовірно, це було пов'язано з їхньою вірою в напівпровідники, або апаратне забезпечення, яке було рушійною силою економічного зростання Кореї. А оскільки продуктивність пристроїв на той час залежала від апаратного забезпечення, їхня точка зору була розумною. Однак, на тлі буму iPhone та буму смартфонів, корейські розробники зіткнулися з перешкодою: необхідністю програмного забезпечення, яке працювало б на апаратному забезпеченні. Найбільшою перевагою iPhone було різноманітність, корисність та цікавість програм, які на ньому працювали, тому необхідно було розробляти те саме програмне забезпечення та безпечний контент. Однак це було складно для розробників, які зосереджувалися на апаратному забезпеченні, тому були залучені розробники програмного забезпечення. Це, очевидно, була розумна стратегія, але один важливий момент був пропущений, і тепер значна кількість користувачів смартфонів кажуть, що перейдуть на iPhone, коли замінять свій пристрій. Що корейські розробники пропустили, так це оптимізацію між апаратним та програмним забезпеченням, або, іншими словами, вони не змогли зібрати достатньо персоналу, який би повністю розумів межу між ними. Постійна критика корейських пристроїв полягає в тому, що «апаратне забезпечення чудове, але продуктивність поступається іншим продуктам з гіршим обладнанням».
Таким чином, межа між апаратним та програмним забезпеченням – це область, яку необхідно постійно досліджувати щоразу, коли відкривається новий ринок апаратного забезпечення або з'являється нова програмна платформа. Крім того, ця межа відіграватиме ще більшу роль з появою нових технологій. Хоча це може бути неочевидним з наведених на перший погляд специфікацій, саме в цій галузі докладаються зусилля, щоб гарантувати, що заявлені специфікації дійсно відповідають тому, що відчувають користувачі.

 

Про автора

письменник

Я "Котячий детектив", я допомагаю возз'єднати загублених котів з їхніми родинами.
Я підзаряджаюся за чашкою лате, насолоджуюся прогулянками та подорожами, а також розширюю свої думки через письмо. Уважно спостерігаючи за світом та слідуючи своїй інтелектуальній допитливості як блогер, я сподіваюся, що мої слова зможуть допомогти та втішити інших.