To zależy od tego, jak zdefiniujesz „komputer”.
Na mniejszym końcu skali, co można by nazwać tradycyjnymi mikrokontrolerami, nie ma zarządzania pamięcią i rzadko widzi się więcej pamięci RAM niż niewielka ilość wbudowana w układ. Przyznaję, że bardzo mało wiedzy na temat architektury dostępnych bardziej wydajnych mikrokontrolerów, ale istnienie (lub jej brak) tych funkcji jest prawdopodobnie kluczem do odróżnienia urządzenia najlepiej przystosowanego do aplikacji osadzonych lub do obliczeń ogólnego przeznaczenia .
Mówiąc o „zarządzaniu pamięcią”, mam na myśli możliwość uruchamiania programów w wirtualnych przestrzeniach adresowych i mapowania ich na fizyczną pamięć RAM dostępną w systemie, funkcję wykonywaną przez tak zwaną jednostkę zarządzania pamięcią (MMU).
Bez MMU, jeśli spróbujesz uruchomić wiele procesów, wszystkie z nich są zmuszone do współużytkowania jednej przestrzeni adresowej, a to oznacza, że dopóki wszystkie zaangażowane procesy nie będą przestrzegać twojego schematu alokacji pamięci, jeden proces może bardzo łatwo zawiesić inny. Jeśli więc masz całkowitą kontrolę nad projektowaniem wszystkich procesów, tak jak w przypadku systemu osadzonego, nie stanowi to większego problemu. Jeśli jednak próbujesz wesprzeć obliczenia ogólnego przeznaczenia, nie możesz zagwarantować, że cały kod, który zostanie wykonany, będzie przestrzegał schematu alokacji pamięci, a system będzie raczej delikatny.
Brak pamięci RAM również nie stanowi większego problemu dla systemów wbudowanych (1), ponieważ zwykle jest dużo pamięci flash, a (2) brak bycia komputerem ogólnego przeznaczenia oznacza, że nie musisz się martwić uruchamianiem nieoczekiwanych programów na żądanie użytkownika. Z góry znasz sumę całego oprogramowania, które będzie działało w systemie, i potrzebujesz tylko pamięci RAM dla zmiennych dla tego oprogramowania. Gdy jednak spróbujesz przekształcić system w komputer ogólnego przeznaczenia, użytkownicy będą oczekiwać, że będą w stanie uruchomić wszystko, co im odpowiada, a to wymaga pamięci RAM.
Teraz absolutnie dobrze jest wykonywać obliczenia ogólnego przeznaczenia na urządzeniach bez MMU i niewielkiej ilości pamięci. Oryginalny komputer IBM PC z pamięcią 128K RAM, oparty na 8088 (16 bitów) nie dał rady, o ile wystarczyło uruchomić tylko jeden program na raz.
Jeśli więc chcesz zdefiniować „komputer” jako coś w rodzaju technologii z 1982 r., Odpowiedź brzmi zdecydowanie tak. Lub jeśli masz zamknięty system, w którym możesz złagodzić problemy z brakiem MMU i / lub dużej ilości pamięci RAM (np. Telefony komórkowe) poprzez staranne kontrolowanie projektu oprogramowania, również tak. Lub, jeśli twój mikrokontroler ma wbudowaną MMU i mnóstwo pamięci RAM (lub może pomieścić je zewnętrznie), powinieneś być w stanie zbudować system, który bardziej przypomina obecne komputery.