Bisakah Anda mendasarkan komputer di sekitar mikrokontroler 32-bit?

9

Kita semua memiliki (kebanyakan) mesin 32-bit di rumah kita. Tetapi mesin 32-bit memiliki mikroprosesor di dalamnya. Saya sedang membaca artikel tentang ARM Cortex. Ini mikrokontroler 32-bit. Sekarang pertanyaan yang menggelitik di dalam diri saya. Mikrokontroler dibuat untuk mengurangi sirkuit eksternal di sekitar mikroprosesor, maka mikroprosesor menjadi lebih kuat sementara mikrokontroler tetap di sana dalam bentuk 8 bit untuk waktu yang terlalu lama. Tetapi sekarang kita memiliki mikrokontroler 32-bit, tidak bisakah kita memiliki komputer berbasis hal-hal itu?

Rick_2047
sumber

Jawaban:

11

Itu tergantung pada bagaimana Anda mendefinisikan 'komputer' ..

Pada skala yang lebih kecil, apa yang Anda sebut pengendali mikro tradisional, Anda tidak mendapatkan manajemen memori dan jarang melihat lebih banyak RAM daripada jumlah kecil yang tertanam dalam chip. Saya akan mengakui sangat sedikit pengetahuan tentang arsitektur pengontrol mikro yang lebih mampu yang sekarang tersedia, tetapi keberadaan (atau ketiadaannya) dari fitur-fitur ini mungkin merupakan kunci untuk membedakan antara perangkat yang paling cocok untuk aplikasi tertanam atau untuk tujuan umum perhitungan. .

Dengan 'manajemen memori' saya mengacu pada kemampuan untuk menjalankan program dalam ruang alamat virtual dan memetakan ini ke RAM fisik yang tersedia dalam sistem, fungsi yang dilakukan oleh apa yang biasanya disebut unit manajemen memori (MMU).

Tanpa MMU, jika Anda mencoba menjalankan beberapa proses, semuanya dipaksa untuk berbagi ruang alamat tunggal, dan ini berarti bahwa kecuali semua proses yang terlibat mematuhi skema alokasi memori Anda, satu proses dapat dengan mudah menghancurkan yang lain. Jadi, jika Anda memegang kendali penuh untuk merancang semua proses, seperti halnya dengan sistem yang disematkan, ini tidak terlalu menjadi masalah. Namun, jika Anda mencoba untuk mendukung perhitungan tujuan umum, Anda tidak dapat menjamin bahwa semua kode yang akan dijalankan akan menghormati skema alokasi memori, dan sistem akan agak rapuh.

Kurangnya RAM juga tidak banyak masalah untuk sistem embedded, (1) karena biasanya ada banyak flash, dan (2) tidak menjadi komputer tujuan umum berarti Anda tidak perlu khawatir menjalankan program yang tidak diantisipasi di atas perintah dari pengguna. Anda tahu sebelumnya, jumlah total semua perangkat lunak yang akan berjalan pada sistem, dan hanya perlu RAM untuk variabel untuk perangkat lunak itu. Ketika Anda mencoba untuk membuat sistem Anda menjadi komputer tujuan umum, pengguna akan berharap untuk dapat menjalankan apa pun yang sesuai dengan mereka, dan ini membutuhkan RAM.

Sekarang, benar-benar baik untuk melakukan perhitungan tujuan umum pada perangkat tanpa MMU, dan tidak banyak memori. 128K RAM asli, berbasis 8088 (16 bit) IBM PC lolos dengan ini, selama Anda hanya perlu menjalankan satu program pada satu waktu.

Jadi jika Anda ingin mendefinisikan 'komputer' sebagai sesuatu seperti teknologi 1982, jawabannya pasti ya. Atau jika Anda memiliki sistem tertutup di mana Anda dapat mengurangi masalah tidak memiliki MMU dan / atau banyak ram (misalnya, ponsel) dengan mengendalikan desain perangkat lunak dengan hati-hati, juga ya. Atau, jika mikrokontroler Anda memiliki MMU bawaan dan sekumpulan RAM (atau dapat mengakomodasi ini secara eksternal), Anda harus dapat membangun sistem yang lebih menyerupai komputer saat ini.

JustJeff
sumber
Perkembangan dalam kompiler just-in-time untuk hal-hal seperti Java membuat MMU mungkin kurang penting daripada seharusnya secara historis. Dengan tidak adanya bug yang berhubungan dengan JIT, seseorang dapat memiliki beberapa pemrosesan independen yang menjalankan platform independen pada Java Virtual Machines tanpa MMU, dan membuat mereka terisolasi satu sama lain, karena JIT tidak akan menghasilkan instruksi untuk satu program yang akan secara tidak tepat mengakses memori digunakan oleh yang lain.
supercat
16

Benar! Lihatlah hampir setiap ponsel di luar sana. Misalnya, Motorola Droid menggunakan mikrokontroler TI OMAP ARM yang menjalankan Android di atas Linux. Pada dasarnya, sistem operasi komputer yang penuh sesak ada di dalamnya dan banyak gadget lainnya. Pada beberapa produk yang dibuat oleh klien saya, mereka menggunakan FreeScale PowerQuicc I & II prosesor / pengontrol 32-bit yang dapat menjalankan Linux di dalamnya. PowerQuicc pada dasarnya memiliki inti PowerPC bersama dengan prosesor RISC terpisah untuk menangani semua periferal dengan cara yang sangat dapat dikonfigurasi. Ini adalah mikrokontroler yang dimuliakan.

Anda juga harus ingat bahwa bertahun-tahun yang lalu komputer tidak berjalan pada prosesor 32-bit, tetapi lebih seperti prosesor 8-bit (saat itu 4-bit) seperti Commodore 64. Kemudian mereka bermigrasi ke 16-bit, 32-bit , dll. Tidak ada banyak perbedaan antara mikrokontroler versus mikroprosesor dengan arsitektur dan kecepatan bit yang setara. Mikrokontroler biasanya tidak memiliki unit titik apung, tetapi itu bisa disesuaikan dengan matematika titik tetap. Sebagai contoh, prosesor Motorola 68000 asli (16-bit) digunakan untuk memberi daya pada komputer Macintosh lama dan kemudian berputar ke versi mikrokontroler untuk banyak aplikasi elektronik tertanam selama bertahun-tahun.

Anda perlu melihat peran mikrokontroler untuk memahami bagaimana itu digunakan. Biasanya, ketika Anda merancang dengan mikrokontroler, Anda memiliki aplikasi yang sangat khusus dalam pikiran dan Anda mencoba untuk memasangnya di ruang yang lebih kecil daripada mengatakan PC Tower. Padahal, komputer itu sangat umum tujuannya: angka-angka krisis dan proses input pengguna. Ketika Anda mencari mikrokontroler, Anda sedang mencari yang akan mendukung jenis antarmuka yang Anda buat untuk aplikasi Anda. Apakah Anda memerlukan 3 port USB, 2 ethernet, 2 UART, port SPI, ATM, dan antarmuka CAN? Beberapa antarmuka ini tidak datang pada komputer biasa seperti SPI, ATM, dan CAN, dan mikrokontroler memiliki mereka dibangun untuk mengurangi ruang papan. Anda dapat melihat mikrokontroler sebagai prosesor yang dirancang untuk solusi spesifik.

Jay Atkinson
sumber
Saya tidak berpikir ada "komputer tujuan umum" yang pernah menggunakan sesuatu yang lebih kecil dari prosesor 8-bit. Komputer untuk keperluan umum harus dapat mengakses RAM yang cukup untuk mengadakan program yang dapat digunakan, dan saya tidak tahu ada komputer empat-bit yang memiliki toko kode RAM berukuran dapat digunakan.
supercat
mungkin tidak secara komersial, tetapi banyak peretas termasuk kakek saya. Dia memiliki komputer 4-bit yang berjalan di bengkelnya sebelum Commodore 64's dan TRS-80's populer. Itu RAM juga (tumpukan DIP).
Jay Atkinson
Apakah Anda memiliki dokumentasi tentang mesin Von-Neumann-arsitektur 4-bit yang dibangun secara fisik?
supercat
5

Kita pasti bisa. IPad, misalnya, menggunakan prosesor ARM Cortex A8 untuk otaknya.

pingswept
sumber
2
Ini adalah mikroprosesor, bukan mikrokontroler, seperti yang dicatat JPC di bawah ini
Kortuk
3

Perlu dicatat bahwa ARM yang disebutkan (OMAP dan A8) adalah mikroprosesor tanpa memori Flash dan RAM (tidak sepenuhnya benar untuk A8). Mikrokontroler Cortex-M3 lebih kecil, memiliki memori internal yang kecil dan akses yang lebih mudah ke periferal.

Ada kesenjangan yang cukup besar (kinerja dan fitur) di antara mereka.

jpc
sumber
+1 untuk menunjukkan perbedaan antara seri Cortex-A dan Cortex-M ...
Johan
1
mikrokontroler telah menyematkan flash dan ram. Mikroprosesor memiliki ingatannya secara eksternal.
Kortuk
2

Tidak mencoba menghidupkan kembali utas lama tetapi Zaurus SL5500 saya menjalankan embedded Linux pada prosesor ARM dengan sekumpulan RAM, dan penyimpanan lebih lanjut melalui slot CF dan SD. Sejauh yang saya tahu MMU sebagian besar diimplementasikan dalam perangkat lunak (masuk akal untuk sistem linux pula). Komputasi serba guna tidak hanya mungkin, tetapi tersedia secara menyeluruh melalui perangkat lunak pihak ketiga, kompiler, dan shell perintah yang fleksibel yang menyediakan sebagian besar utilitas dan fitur standar * nix.

Bukan komputer GP tercepat di dunia, tetapi tentu saja membuat ARM (dan / atau setara Samsung - saya tidak 100 persen yakin yang mana yang terkandung di dalamnya) terlihat sangat mumpuni. Fitur dan kinerja-bijaksana itu dibandingkan dengan baik dengan WinMobile Ipaq vintage yang jauh lebih baru (pasti Samsung StrongArm clone). Kedua mesin memiliki banyak RAM dan banyak penyimpanan sehingga banyak pengaturan memori terjadi - saya kira kita harus mengaburkan garis sedikit antara mikroprosesor dan mikrokontroler ketika kita mencapai tingkat kinerja ini.


sumber
2

Anda menyebutkan "mikroprosesor" dan "mikrokontroler" tetapi semakin ada kategori perangkat ketiga yang dikenal dengan "SOCs" (singkatan dari "system-on-chip", istilah yang saya anggap agak menyesatkan)

Mikrokontroler memiliki jumlah ram yang sangat kecil dan biasanya tidak memiliki pemetaan memori dan perlindungan memori yang sangat terbatas. Ini membuat mereka kurang cocok untuk digunakan sebagai komputer tujuan umum.

SOC dapat dilihat sebagai jalan tengah antara mikrokontroler konvensional yang semuanya terintegrasi pada satu chip dan mikroprosesor konvensional yang membutuhkan sejumlah besar sirkuit pendukung. SOC memiliki inti prosesor dan perhipherals terintegrasi ke dalam satu chip tetapi tidak seperti mikrokontroler, mereka menggunakan memori eksternal. Biasanya SOC ini memiliki MMU lengkap yang dapat membuat ruang alamat virtual untuk berbagai aplikasi. Banyak SoC juga memiliki blok fungsi khusus untuk grafik 3D, DSP, encoding / decoding video dll.

SOC tidak sekuat PC desktop modern, tetapi ketika dikombinasikan dengan lingkungan perangkat lunak yang tidak terisi, SOC cukup kuat dan fungsional untuk dianggap sebagai "komputer tujuan umum".

Peter Green
sumber