Чи можете ви базувати комп’ютер навколо 32-бітного мікроконтролера?


9

У нас у всіх будинках є (в основному) 32-бітні машини. Але 32-бітні машини мають в них мікропроцесор. Я читав статтю про ARM Cortex. Це 32-бітний мікроконтролер. Тепер це заінтригувало питання всередині мене. Мікроконтролери були зроблені для зменшення зовнішньої схеми навколо мікропроцесора, потім мікропроцесори стали більш потужними, в той час як мікроконтролери залишалися там 8 бітовими формами занадто довго. Але тепер, коли у нас є 32-бітні мікроконтролери, чи не можемо ми мати комп’ютер, заснований на цих речах?


Відповіді:


11

Це залежить від того, як ви визначаєте "комп'ютер".

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

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

Без MMU, якщо ви намагаєтеся запустити кілька процесів, усі вони змушені ділити єдиний адресний простір, і це означає, що, якщо всі залучені процеси не дотримуються вашої схеми розподілу пам’яті, один процес може дуже легко збіти інший. Тож якщо ви повністю контролюєте проектування всіх процесів, як і вбудовану систему, це не викликає особливих проблем. Однак якщо ви намагаєтесь підтримувати обчислення загального призначення, ви не можете гарантувати, що весь код, який буде виконуватися, буде відповідати схемі розподілу пам'яті, а система буде досить крихкою.

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

Тепер абсолютно нормально робити обчислення загального призначення на пристроях без MMU і не багато пам'яті. Оригінальна 128K оперативна пам’ять, заснована на 8088 (16 біт) IBM PC, позбулася цього, доки вам потрібно було запускати лише одну програму за раз.

Тож якщо ви хочете визначити "комп'ютер" як щось на зразок технології 1982 року, відповідь, безумовно, - так. Або якщо у вас закрита система, де ви можете пом'якшити проблеми відсутності MMU та / або багато оперативної пам'яті (наприклад, мобільних телефонів), ретельно контролюючи дизайн програмного забезпечення, також так. Або якщо у вашого мікроконтролера є вбудований MMU та шини оперативної пам’яті (або можуть розміщувати їх зовні), ви повинні мати можливість створити систему, яка більше нагадує поточні комп'ютери.


Розробка вчасно створених компіляторів для таких речей, як Java, робить MMU, можливо, менш необхідним, ніж це було раніше. За відсутності помилок, пов’язаних з JIT, можна було б мати декілька незалежних обробних запущених незалежних платформ на віртуальних машинах Java без MMU, і мати їх ізольовано один від одного, оскільки JIT не генерує інструкцій для однієї програми, яка б невірно отримувала доступ до пам'яті використовується іншим.
supercat

16

Абсолютно! Поглянь, як майже кожен мобільний телефон там. Наприклад, Motorola Droid використовує мікроконтроллер на базі TI OMAP ARM на базі ОС Android на вершині Linux. В основному, на ній є багато повноцінних операційних систем комп'ютера та багатьох інших гаджетів. У деяких продуктах, які розробляє мій клієнт, вони використовують 32-бітні процесори / контролери FreeScale PowerQuicc I & II, які можуть працювати на них Linux. В основному PowerQuicc мають ядро ​​PowerPC разом з окремим процесором RISC для обробки всіх периферійних пристроїв, які легко настроюються. Це прославлений мікроконтролер.

Ви також повинні пам’ятати, що років тому комп'ютери не працювали на 32-розрядних процесорах, але більше схожі на 8-бітні процесори (4-бітний шлях назад), як Commodore 64. Потім вони перейшли на 16-розрядний, 32-розрядний і т. д. Міжконтролером та мікропроцесором еквівалентної бітової архітектури та швидкості дійсно не велика різниця. Мікроконтролерам зазвичай не вистачає одиниці з плаваючою комою, але це можна скласти з фіксованою точкою математики. Наприклад, оригінальний процесор Motorola 68000 (16 біт) використовувався для живлення тих старих комп’ютерів Macintosh, а потім впродовж багатьох років ввійшов у версію мікроконтролера для багатьох вбудованих електронних додатків.

Вам потрібно подивитися на роль мікроконтролера, щоб зрозуміти, як він використовується. Зазвичай, коли ви розробляєте мікроконтролер, ви маєте на увазі вузькоспеціалізовану програму, і ви намагаєтесь помістити її в менший простір, ніж, наприклад, PC Tower. Тоді як комп'ютер має дуже загальне призначення: обробляти номери та обробляти дані користувачів. Коли ви шукаєте мікроконтролер, ви шукаєте інтерфейс, який підтримуватиме тип інтерфейсу, який ви будуєте для вашої програми. Вам потрібні 3 порти USB, 2 Ethernet, 2 UART, порт SPI, ATM та CAN інтерфейс? Деякі з цих інтерфейсів не поставляються на типовому комп'ютері, такому як SPI, ATM та CAN, і мікроконтролер вбудований для зменшення простору плати. Ви можете дивитися на мікроконтролери як на процесори, розроблені для конкретного рішення.


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

можливо, не комерційно, але багато хакерів зробили, в тому числі і мого діда. У нього в майстерні працював 4-розрядний комп'ютер до того, як Commodore 64-х та TRS-80 були популярними. Він також мав оперативну пам’ять (стеки DIP).
Джей Аткінсон

Чи є у вас документація щодо фізично сконструйованих 4-бітових машин архітектури Von-Neumann?
supercat

5

Ми точно можемо. Наприклад, iPad використовує для свого мозку процесор ARM Cortex A8.


2
Це мікропроцесор, а не мікроконтролер, як зазначає
JPC

3

Варто зазначити, що згадані ARM (OMAP та A8) є мікропроцесорами без флеш-пам’яті та оперативної пам’яті (не зовсім вірно для A8). Мікроконтролер Cortex-M3 менший, має невелику вбудовану пам'ять та легший доступ до периферійних пристроїв.

Між ними існує великий розрив (продуктивний та функціональний).


+1 за вказівку на різницю між серіями Cortex-A та Cortex-M ...
Йохан

1
мікроконтролер вбудований спалах і таран. Мікропроцесори мають свою пам'ять зовні.
Кортук


2

Не намагаючись воскресити старий потік, але мій Zaurus SL5500 запустив вбудований Linux на процесор ARM з осередками оперативної пам’яті та подальшим зберіганням даних через слоти CF та SD. Наскільки мені відомо, MMU реалізовувався здебільшого в програмному забезпеченні (все одно має сенс для системи Linux). Обчислення загального призначення було не тільки можливим, але було всебічно доступним за допомогою програмного забезпечення, компіляторів та гнучкої оболонки команд, яка забезпечувала більшість стандартних * nix утиліт та функцій.

Це був не найшвидший комп'ютер GP у світі, але впевнений, що ARM (та / або еквіваленти Samsung - я не на 100 відсотків впевнений, який він містився) виглядав надзвичайно здатним. По характеристиках та продуктивності він порівняно непогано порівняно з WinMobile Ipaq значно пізнішого старовинного (певний клон Samsung StrongArm). На обох машинах було багато оперативної пам’яті та багато пам’яті, тому багато пам’яті управління пам’яттю відбувається - я вважаю, що нам доведеться трохи розмити лінію між мікропроцесорами та мікроконтролерами, коли ми досягнемо цього рівня продуктивності.


2

Ви згадуєте про "мікропроцесори" та "мікроконтролери", але все частіше з'являється третя категорія пристроїв, яка називається "SOCs" (що означає "система на мікросхемі", термін я вважаю досить оманливим)

Мікроконтролери мають дуже малу кількість оперативної пам’яті і, як правило, не мають відображення пам’яті та дуже обмежений захист пам’яті. Це робить їх погано придатними для використання в якості комп'ютерів загального призначення.

СОЦ можна розглядати як посередництво між звичайними мікроконтролерами, які мають все інтегроване в одному мікросхемі, і звичайними мікропроцесорами, для яких потрібні великі обсяги схеми підтримки. SOC мають процесорне ядро ​​та периферійні пристрої, інтегровані в одну мікросхему, але на відміну від мікроконтролерів вони використовують зовнішню пам'ять. Зазвичай ці СОЦ мають повний MMU, який може створити віртуальний адресний простір для різних програм. Багато SoC також мають спеціальні функціональні блоки для 3D-графіки, DSP, кодування відео / декодування тощо.

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

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