Apa saja sifat-sifat mikrokontroler N-bit?

9

Saya pernah mendengar tentang mikrokontroler 8 bit dan mikrokontroler 16-bit. Saya bahkan pernah mendengar tentang mikrokontroler 7 bit dan mikrokontroler 1 bit .

Apa atribut umum dari kelompok ini? Bagaimana cara memilih jenis mana yang akan digunakan untuk suatu proyek?

Jacob Harding
sumber
4
Saya belum pernah mendengar tentang mikrokontroler 7 bit. Maaf jika Anda bingung dengan komentar yang saya posting di electronics.stackexchange.com/q/32097/4512 . Itu dimaksudkan untuk menjadi lelucon.
Olin Lathrop
4
Bagus! Olin, aku ingin memperingatkanmu pertanyaan ini sudah diduga! :-)
stevenvh

Jawaban:

11

Ada juga mikrokontroler 4-bit dan 32-bit. Mikroprosesor 64 bit digunakan di PC.

Angka mengacu pada lebar register . Register berada di jantung mikrokontroler. Banyak operasi menggunakan register, baik untuk memindahkan data atau untuk melakukan operasi aritmik atau logis. Operasi ini berlangsung di ALU , Unit Aritmatika dan Logika.

masukkan deskripsi gambar di sini

Beberapa operasi hanya mengambil 1 argumen, seperti membersihkan register, atau menambahkannya. Namun, banyak yang akan mengambil 2 argumen, dan itu mengarah ke representasi celana terbalik khas ALU. dan adalah argumennya, dan ALU akan menghasilkan hasil berdasarkan operasi saat ini. Operasi dua argumen mungkin "menambahkan 15 untuk mendaftar R5 dan menyimpan hasilnya di alamat memori 0x12AA". Ini mensyaratkan bahwa ada perutean antara konstanta "15" (yang berasal dari memori program), file register dan memori data. Routing itu terjadi melalui databusABC. Ada databus internal yang menghubungkan register, RAM internal dan ALU, dan untuk mikroprosesor dan beberapa mikrokontroler, databus eksternal yang terhubung ke RAM eksternal. Dengan beberapa pengecualian, databus memiliki lebar yang sama dengan register dan ALU, dan bersama-sama mereka menentukan jenis mikrokontroler itu. (Pengecualian adalah 8088, yang secara internal memiliki bus 16-bit, tetapi secara eksternal hanya 8-bit.)

Pengontrol 4-bit memiliki register 4-bit, yang hanya dapat mewakili 16 nilai yang berbeda, dari 0 hingga 0xF heksadesimal. Itu tidak banyak, tetapi itu cukup untuk bekerja dengan digit dalam jam digital, dan itu adalah domain tempat mereka digunakan.

Pengontrol 8-bit telah menjadi pekerja keras industri selama beberapa dekade sekarang. Dalam 8 bit Anda dapat menyimpan angka antara 0 dan 255. Angka-angka ini juga dapat mewakili huruf dan karakter lainnya. Jadi Anda bisa bekerja dengan teks. Kadang-kadang 2 register dapat digabungkan menjadi register 16-bit, yang memungkinkan angka hingga 65.535. Dalam banyak pengontrol, sejumlah besar harus diproses dalam perangkat lunak. Dalam hal ini, bahkan angka 32-bit dimungkinkan.
Kebanyakan pengontrol 8-bit memiliki penghitung program 16-bit. Itu berarti dapat mengatasi 64kBytes memori maksimum. Untuk banyak aplikasi tertanam yang cukup, beberapa bahkan hanya perlu beberapa kBytes.
Monitor parkir, misalnya, di mana Anda harus menghitung jumlah mobil dan menampilkannya pada LCD, adalah sesuatu yang biasanya Anda lakukan dengan pengontrol 8-bit. :-)

16-bit adalah langkah selanjutnya. Untuk beberapa alasan mereka tidak pernah memiliki kesuksesan 8-pahit atau 32-pahit. Saya ingat bahwa seri Motorola HC12 mahal dan tidak dapat bersaing dengan pengontrol 32-bit.

32-bit adalah kata hari ini. Dengan penghitung program 32-bit Anda dapat mengatasi 4GByte. ARM adalah pengontrol 32-bit yang populer. Ada puluhan produsen yang menawarkan ARM dalam semua ukuran. Mereka pengendali yang kuat sering memiliki banyak fungsi khusus di papan, seperti USB atau driver layar LCD lengkap.
ARM sering membutuhkan paket besar, baik untuk mengakomodasi cetakan besar dengan banyak Flash, atau karena fungsi yang berbeda memerlukan banyak pin I / O. Tetapi paket ini menggambarkan kemungkinan penawaran ARM.

masukkan deskripsi gambar di sini

Ini adalah ARM 16-pin dalam sebuah paket hanya 2.17mm x 2.32mm.

stevenvh
sumber
Dan mikrokontroler 64-bit juga. uk.computers.toshiba-europe.com/innovation/jsp/…
Telaclavo
1
Ada semua jenis lebar di masa lalu. PDP-8 adalah 12 bit, dan CDC 6600 adalah 60 bit dengan 6 bit byte jika saya ingat dengan benar. Saat ini kami melihat cukup banyak 4 (2 ^ N) lebar bit.
Olin Lathrop
Apa nomor bagian dari CPU ARM itu?
Rocketmagnet
@Rocketmagnet sepertinya adalah NXP LPC1102UK: nxp.com/products/microcontrollers/cortex_m0/miniature_package/…
Craig
5

Jawaban sederhana: Mikrokontroler N-Bit memiliki jalur data dan ALU yang dapat memproses data dalam potongan N-Bit.

Jawaban panjang: Jawaban singkatnya benar 95%. Jawaban panjangnya membingungkan. Beberapa CPU / MPU memiliki bagian yang sebagian besar N-Bits, tetapi beberapa bagian adalah M-Bits. Misalnya, itu mungkin CPU 8-bit dengan pengali integer yang bekerja pada data 16 bit. Seri Intel CPU (8088 melalui i7 saat ini) sering dapat menggabungkan berbagai register 8 dan 16 bit untuk mendapatkan 16 atau 32 bit. Kemudian orang-orang pemasaran mendapatkan angka-angka ini dan memutuskan untuk menggunakannya dalam barang pemasaran mereka dan Anda berakhir dengan MPU 8-bit yang disebut 16 bit, dll.

Itu menjadi lebih aneh dari itu. Beberapa orang pemasaran mempromosikan ukuran instruksi MPU. PIC Microchip adalah contoh yang bagus untuk ini. Jika Anda tidak hati-hati maka Anda mungkin bingung dengan jumlah bit di jalur data.


sumber
Baseline Microchip dan prosesor mid-range masing-masing memiliki kata instruksi 12-bit atau 14-bit. Keduanya diklasifikasikan sebagai prosesor 8-bit namun karena bus data 8-bit. Sebuah perusahaan China (ELAN Microelectronics) membuat variasi dari PIC 14-bit dengan kata instruksi 13-bit yang disebut EM78. Untuk semua ini, data dialamatkan dalam byte sedangkan memori program dibahas dalam kata-kata - tetapi memori program kadang-kadang diiklankan sebagai banyak byte, yang memberikan nilai lebih dari jumlah sebenarnya instruksi yang dapat diprogram!
tcrosley
4

Apa artinya "N-Bit"?

Maaf jika paragraf pertama ini agak terlalu tingkat rendah, tapi itu ditawarkan dengan harapan bahwa hal itu dapat membantu pembaca masa depan: nomor A, diwakili oleh N digit dalam basis M, hanya dapat sebagai besar sebagai . Misalnya, dengan 9 angka desimal (basis 10), Anda hanya dapat menuliskan angka hingga 10 ^ 9, atau nol hingga 999.999.999. Dengan 8 digit biner (basis 2) ("Digit biner" adalah 'bit'), Anda dapat menyimpan 2 ^ 8 = 256 angka.MN

Mikrokontroler atau prosesor disebut 'N-bit' karena pengontrol dan prosesor memiliki lebar data dasar. Setiap register mungkin N bit, setiap instruksi mungkin N bit, bus data mungkin N bit, memori mungkin dialamatkan dengan N bit. Khususnya di level bawah, ada pengecualian untuk aturan ini: misalnya, pengontrol 8-bit mungkin memiliki bus memori 12-bit, tetapi karena Anda mungkin menebak itu sulit untuk bekerja dengan ketika register Anda hanya berisi 8 bit. Namun, semua prosesor memiliki lebar dasar tipe data asli. Pertimbangkan kode berikut:

uint32_t x,y,z;  // Declare 3 32-bit variables
z=x + y;         // Add two of them to store in the third

Jika Anda hanya dapat menambahkan angka 8-bit, bagaimana Anda melakukan operasi ini? Anda perlu memecah setiap variabel menjadi 4 angka 8-bit, melakukan penambahan dan membawa secara individual, dan kemudian menggabungkannya untuk mendapatkan hasilnya. Ini akan membutuhkan setidaknya 16 instruksi! Namun, pada prosesor 32-bit, ini adalah instruksi tunggal yang sederhana mul r0, r1, r2. Seperti yang Anda lihat dari contoh sederhana ini, lebar bit prosesor yang lebih besar dapat menangani lebih banyak data dengan lebih cepat.

Catatan Sejarah

Tren sepanjang sejarah telah dari lebar bit kecil ke yang lebih besar. Jauh di awal 1970-an, Intel merilis 4004, pengontrol chip tunggal pertama. Itu adalah prosesor 4-bit. Karena transistor besar dan haus kekuasaan, dan karena desainnya revolusioner dan rumit, hanya itu yang bisa dimasukkan ke dalam chip. Tak lama kemudian, mereka merilis 8008, prosesor 8-bit. Ada beberapa prosesor 4-bit yang masih digunakan, tetapi ada banyak pengontrol 8-bit, PIC dan AVR adalah contoh kontemporer yang masih umum digunakan. Lebih banyak prosesor 8-bit yang dibuat daripada tipe lainnya! Mereka masih pengendali paling populer untuk tugas-tugas kecil, sederhana, dan biaya-sensitif. Transisi yang jelas berikutnya adalah untuk pengontrol 16-bit, tetapi ini belum memiliki jangkauan saudara-saudara mereka 8-bit atau 32-bit. Sebagai gantinya, sudah ada lompatan ke prosesor 32-bit, seperti yang dirancang oleh ARM dan dirancang ke dalam CPU PC beberapa tahun yang lalu. Belum ada mikrokontroler 64-bit yang signifikan yang saya sadari, meskipun mereka sekarang menonjol di PC.

8-bit vs 32-bit

Sejauh ini, tipe yang paling populer adalah prosesor 8-bit dan 32-bit. Prosesor 32-bit menjadi semakin populer. Setiap tahun atau lebih, beberapa majalah perdagangan menerbitkan sebuah artikel dengan judul "Apakah 8-bit mati?" Prosesor 32-bit menjadi lebih populer, lebih kuat, dan lebih murah, hanya menyisakan tiga alasan untuk memilih prosesor 8-bit:

  1. Inersia - Jika Anda memiliki kode untuk dan pengalaman dengan prosesor 8-bit, Anda mungkin tidak mendapatkan ROI yang cukup dengan mengubah semuanya menjadi arsitektur 32-bit.
  2. Daya rendah - Setiap transistor dalam pengontrol menghilangkan daya, dan sementara ukuran tidak lagi menjadi masalah, prosesor 32-bit memang memiliki lebih banyak transistor dan karenanya menghilangkan lebih banyak arus dalam keadaan tidak aktif. Ini hanya masalah dalam desain bertenaga sel koin yang ekstrem.
  3. Biaya rendah - Jika Anda hanya memerlukan beberapa lusin instruksi perakitan dan 2 pin IO, bahkan prosesor 8-bit mungkin berlebihan. Pada ujung bawah, pengontrol 8-bit termurah kurang dari $ 0,40 dalam jumlah besar, tetapi prosesor 32-bit termurah masih $ 0,80 atau lebih, tetapi jauh lebih kuat daripada alternatif 8-bit. Jika Anda mencoba membuat mainan dengan satu LED berkedip untuk satu juta Happy Meals berikutnya, ini adalah potongan harga yang meyakinkan, jika tidak, itu tidak benar-benar membuat perbedaan.

Prosesor 32-bit menjadi lebih di mana-mana, tetapi ada sedikit tanda bahwa prosesor 8-bit akan menghilang seperti prosesor 4-bit antik karena tiga alasan ini.

Arduino sebagai contoh

Pertimbangkan aplikasi seperti Arduino .

Arduino menggunakan pengontrol Atmel, ATmega32 8-bit . ATmega beroperasi pada 20 MHz, memiliki 4k RAM, memiliki komunikasi SPI, I2C, dan UART, beberapa interupsi perangkat keras, dan 8 ADC 10-bit. Chip ini berharga $ 3,90 dalam jumlah 100.

Chip 32-bit serupa bisa menjadi bagian Atmel lain, AT-SAM3 32-bit menggunakan inti ARM Cortex-M3 yang dibagikan. Chip ini berjalan pada 64 MHz (3x lebih cepat, tetapi ingat bahwa ATmega membutuhkan 16 instruksi untuk melakukan penambahan 32-bit tunggal). Ini memiliki 16k RAM, 4 kali lebih banyak dari ATmega. Ini memiliki I²C, MMC, SPI, SSC, UART, dan bahkan periferal USB. Ini memiliki DMA (akses memori langsung, juga membuatnya lebih cepat dan lebih efisien), satu set interupsi yang fleksibel dan kuat, 10 ADC 12 bit dan 2 DAC. Itu hanya mengungguli ATmega di semua kategori. Saya mencoba menemukan pengontrol 32-bit yang memiliki set fitur yang sebanding, dan ini adalah yang terbaik yang bisa saya lakukan. Berapa harga chip ini? Ini $ 2,34 dalam jumlah 100: Anda mendapatkan kinerja lebih banyak dengan uang lebih sedikit. Seharusnya keputusan yang mudah.

Bagaimana dengan teladan Anda?

Untuk contoh situasi Anda di sini ,

Jumlah mobil yang masuk dan keluar dari tempat parkir harus dihitung dan jumlah yang ditampilkan pada layar LCD. Maksimal sepuluh mobil diizinkan masuk ke tempat parkir.

Anda memiliki matematika yang sangat sederhana dengan angka kecil dan tampilan sederhana pada LCD (atau benar-benar, tanda besar yang terbuat dari angka 7-segmen LED-lit akan lebih terlihat dan lebih murah). Kontroler 8-bit mungkin cukup memadai untuk tugas ini. Namun, bagaimana jika Anda benar - benar menginginkan LCD? Pengontrol 8-bit akan berjuang untuk menggerakkan bahkan layar VGA resolusi rendah, sementara Anda dapat dengan mudah mendapatkan papan pengembangan untuk pengontrol 32-bit yang memiliki output HDMI. Bagaimana jika Anda ingin menampilkannya di layar untuk saat ini, tetapi kemudian ingin menghubungkannya ke kabel Ethernet di LAN bisnis Anda dan menampilkan hasilnya di komputer pengawas di kantor taman? Anda dapat dengan mudah mendapatkan pengontrol 32-bit dengan bus komunikasi Ethernet terpasang, Anda tidak dapat melakukannya dengan pengontrol 8-bit.Xport , tetapi itu berisi prosesor 32-bit di dalamnya.

Untuk proyek satu kali, saya akan merekomendasikan pengontrol 32-bit setiap saat. Waktu Anda hanya lebih berharga daripada perbedaan harga antara pengontrol 8- dan 32-bit.


Sehubungan dengan prosesor 7-bit yang Anda sebutkan, mungkin tidak pernah dan tidak akan pernah ada mesin seperti itu. Dari sudut pandang arsitektur, lebih masuk akal untuk menggunakan lebar bit yang merupakan kekuatan 2.

Kevin Vermeer
sumber
Pada perbandingan 8bit vs 32bit: Meskipun pengontrol 32bit lebih sering lebih murah (harga satuan) dan memiliki lebih banyak fitur daripada pengontrol 8bit, mereka lebih mahal dalam hal real estat PCB.
shimofuri
1

Ukuran bit CPU terkait dengan beberapa karakteristik yang umumnya berjalan bersama:

  1. Ukuran operan terbesar tempat sebagian besar set instruksi dapat beroperasi
  2. Ukuran sebagian besar jika register untuk keperluan umum
  3. Ukuran bus terbesar yang tersedia yang dapat memindahkan data antara register tujuan umum dan memori
  4. Ukuran bus terbesar yang tersedia yang dapat memindahkan data di antara register tujuan umum
  5. Ukuran ALU yang digunakan untuk perhitungan data keperluan umum

Untuk beberapa prosesor, semua jumlah tersebut memiliki nilai yang sama. Bagi yang lain, mereka mungkin memiliki nilai yang berbeda. Z80, meskipun termasuk beberapa register 16-bit, menggunakan register 8-bit untuk sebagian besar set instruksi, dan membutuhkan siklus tambahan untuk hampir semua instruksi yang beroperasi pada jumlah 16-bit (satu-satunya pengecualian adalah EX DE, HL); ini adalah CPU 8-bit. Sesuatu seperti 68008, bagaimanapun, tidak dapat digambarkan dengan sangat baik menggunakan hanya satu N: ia memiliki set instruksi yang sebagian besar dapat beroperasi pada jumlah 32-bit, dan itu dapat IIRC memindahkan data antara register 32 bit pada suatu waktu, tetapi ALU utamanya adalah hanya 16 bit, dan bus memorinya hanya 8 bit. Tergantung pada apa yang diukur, itu bisa dianggap sebagai CPU 32-bit, 16-bit, atau 8-bit.

supercat
sumber