Mikrokontroler / mikroprosesor dan versi bit yang berbeda, apa bedanya?

20

Sebagai penggemar teknik umum, saya belajar lebih banyak tentang dunia mikrokontroler setiap hari. Satu hal yang saya tidak begitu mengerti adalah pentingnya versi bit dari mikrokontroler.

Saya telah menggunakan ATmega8 selama beberapa bulan, dan sepertinya berfungsi dengan baik untuk tujuan saya. Saya tahu bagaimana hal-hal seperti kecepatan jam, memori, jumlah pin IO, jenis bus komunikasi, dll. Membedakan satu mikrokontroler dari yang lain. Tapi saya tidak begitu mengerti pentingnya, katakanlah, 8-bit vs 16-bit vs 32-bit. Saya mengerti bahwa versi bit yang lebih tinggi memungkinkan perangkat untuk menyimpan angka yang lebih besar, tetapi sekali lagi, bagaimana ini mempengaruhi keputusan saya? Jika saya merancang suatu produk, di bawah skenario hipotetis mana saya akan memutuskan bahwa prosesor 8-bit tidak akan berhasil, dan bahwa saya memerlukan sesuatu yang lebih tinggi.

Apakah ada alasan untuk meyakini bahwa varian teoretis 32-bit dari ATmega8 (semua hal lain sama) akan lebih unggul daripada versi 8-bit (jika perangkat seperti itu dimungkinkan)?

Saya mungkin berbicara omong kosong, tapi saya rasa itu adalah hasil dari kebingungan saya.

capcom
sumber

Jawaban:

24

Ini bukan lebar nomor yang bisa disimpan, itu lebar yang bisa digunakan dalam satu operasi. Biasanya (tetapi tidak harus) ini juga memiliki tingkat korelasi dengan lebar memori asli, dan dengan demikian jumlah penyimpanan yang dapat dengan mudah dipetakan tanpa solusi yang buruk seperti segmentasi atau perpindahan bank.

Core 32-bit saat ini lebih unggul daripada 8-desain dalam banyak hal (fleksibilitas, model memori datar, dan tentu saja kinerja), dengan pengecualian utama adalah sistem warisan, aplikasi dengan volume ekstrim dan tekanan harga (jika tidak, harga cenderung berkorelasi lebih baik dengan pada ukuran memori chip dibandingkan dengan lebar inti), dan efek samping dari proses / kepadatan. Yang kemudian dapat memberikan hal-hal seperti operasi 5v, atau mungkin dalam beberapa kasus kekerasan radiasi yang lebih besar atau keuntungan kesederhanaan jika mencoba membuktikan desain CPU itu sendiri bebas dari kesalahan logika. Satu efek akhir proses / usia dari nilai bagi banyak penggemar adalah bahwa inti 8-bit dalam paket DIP adalah umum, sedangkan perangkat 32-bit dalam paket tersebut lebih jarang (meskipun memang ada).

Chris Stratton
sumber
3
Lebar yang dapat ditangani dalam satu operasi dapat menjadi penting saat menyinkronkan bagian-bagian program yang tidak sinkron. Jika Anda perlu membaca nilai 16bit secara atom pada mikro 8bit, Anda mungkin perlu menonaktifkan interupsi terlebih dahulu yang mungkin ingin Anda hindari agar waktu respons ISR rendah.
ndim
Ciri lain di mana beberapa 8-bit micros dapat lebih unggul dari ARM (arsitektur 32-bit paling populer) adalah dengan I / O bit twiddling. PIC 18Fxx (8-bit) dapat mengatur atau menghapus bit dalam ruang I / O dengan satu instruksi, terlepas dari apa yang dipegang register, sedangkan ARM umumnya membutuhkan proses multi-langkah. Chip ARM dapat menjalankan lebih banyak instruksi per detik daripada chip PIC yang saat ini tersedia (beberapa chip kecil yang kompatibel dengan PIC 100MHz dulu tersedia dari Scenix, tapi saya pikir mereka dihentikan) tetapi bahkan PIC yang tersedia masih dapat melakukan semacam bit-banging lebih cepat.
supercat
1
Meskipun kurang universal, beberapa perangkat ARM memang memiliki hal-hal seperti register GPIOx_BSRR / GPIOx_BRR yang dapat ditulis untuk mengatur atau menghapus bit GPIO individu.
Chris Stratton
8

Nilai bit adalah bus data atau ukuran pipa data, yang berarti bahwa MCU 8 bit dapat (sebagian besar) hanya bekerja dengan nilai dari 0 hingga 255 setiap siklus clock. Anggap saja prosesor memiliki 8 saluran digital secara paralel. Dan 16-bit memiliki 16 baris, dan 32-bit memiliki 32 baris. Jadi, untuk setiap siklus clock, ia membaca baris data ini, dan semakin banyak baris semakin tinggi nilai yang dapat Anda gunakan per siklus clock.

28256

21665,536

32 bit = 2324,294,967,296

Bus data yang lebih besar juga memungkinkan prosesor untuk mengakses alamat memori yang lebih besar.

Ini membuat perbedaan besar selama operasi matematika. Angka 16-bit memberi Anda jauh lebih presisi daripada angka 8-bit. Mikrokontroler 16-bit juga lebih efisien dalam memproses operasi matematika pada angka yang lebih panjang dari 8 bit. Mikrokontroler 16-bit dapat secara otomatis beroperasi pada dua angka 16-bit, seperti definisi umum dari bilangan bulat. Tetapi ketika Anda menggunakan mikrokontroler 8-bit, prosesnya tidak semudah itu. Fungsi yang diterapkan untuk beroperasi pada angka-angka tersebut akan mengambil siklus tambahan. Bergantung pada seberapa intensif pemrosesan aplikasi Anda dan berapa banyak perhitungan yang Anda lakukan, ini dapat memengaruhi kinerja sirkuit.

Perbedaan Antara Mikrokontroler 8 bit dan 16 bit

Garrett Fogerlie
sumber