Можете ли вы основать компьютер на 32-битном микроконтроллере?


9

У всех нас есть (в основном) 32-битные машины в наших домах. Но в 32-битных машинах есть микропроцессор. Я читал статью о ARM Cortex. Это 32-битный микроконтроллер. Теперь это заинтриговало вопрос внутри меня. Микроконтроллеры были созданы для уменьшения внешних схем вокруг микропроцессора, затем микропроцессоры стали более мощными, в то время как микроконтроллеры слишком долго оставались в 8-битных формах. Но теперь, когда у нас есть 32-разрядные микроконтроллеры, разве мы не можем иметь компьютер, основанный на этих вещах?


Ответы:


11

Это зависит от того, как вы определяете «компьютер» ..

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

Под «управлением памятью» я подразумеваю возможность запускать программы в виртуальных адресных пространствах и отображать их в физическом ОЗУ, доступном в системе, функцию, выполняемую так называемым модулем управления памятью (MMU).

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

Нехватка оперативной памяти также не является большой проблемой для встраиваемых систем, (1) потому что обычно много флэш-памяти, и (2) отсутствие компьютера общего назначения означает, что вам не нужно беспокоиться о запуске непредвиденных программ на воля пользователя. Вы заранее знаете общую сумму всего программного обеспечения, которое будет работать в системе, и вам потребуется только ОЗУ для переменных для этого программного обеспечения. Однако, когда вы попытаетесь превратить вашу систему в компьютер общего назначения, пользователи будут ожидать, что смогут запускать то, что им подходит, а для этого потребуется оперативная память.

Теперь совершенно нормально выполнять вычисления общего назначения на устройствах без MMU и не так много памяти. Оригинальный 128 КБ ОЗУ, основанный на 8088 (16-битном) IBM PC справился с этим, если вам нужно было запускать только одну программу за раз.

Так что, если вы хотите определить «компьютер» как что-то вроде технологии 1982 года, ответ определенно да. Или, если у вас есть закрытая система, в которой вы можете решить проблему отсутствия MMU и / или большого количества оперативной памяти (например, сотовых телефонов), тщательно контролируя структуру программного обеспечения, также да. Или, если ваш микроконтроллер имеет встроенный MMU и объем оперативной памяти (или может вместить их внешне), вы сможете создать систему, которая больше напоминает современные компьютеры.


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

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-битный процессор. Компьютеры общего назначения должны иметь доступ к достаточному объему оперативной памяти для хранения пригодной для использования программы, и я не знаю ни одного четырехбитного компьютера, в котором имеется хранилище кода оперативной памяти.
суперкат

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

Есть ли у вас документация о каких-либо физически сконструированных машинах с 4-битной архитектурой фон Неймана?
суперкат

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 можно рассматривать как золотую середину между обычными микроконтроллерами, в которых все интегрировано в один чип, и обычными микропроцессорами, которые требуют большого количества схем поддержки. SOC имеют ядро ​​процессора и периферийные устройства, интегрированные в один чип, но в отличие от микроконтроллеров они используют внешнюю память. Как правило, эти SOC имеют полный MMU, который может создавать виртуальное адресное пространство для различных приложений. Многие SoC также имеют специальные функциональные блоки для 3D-графики, DSP, кодирования / декодирования видео и т. Д.

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

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