Vi điều khiển / vi xử lý và các phiên bản bit khác nhau, sự khác biệt là gì?


20

Là một người có sở thích kỹ thuật nói chung, tôi đang tìm hiểu thêm về thế giới vi điều khiển mỗi ngày. Một điều tôi không hiểu lắm là tầm quan trọng của phiên bản bit của vi điều khiển.

Tôi đã sử dụng ATmega8 được vài tháng và nó dường như hoạt động rất tốt cho mục đích của tôi. Tôi biết những thứ như tốc độ xung nhịp, bộ nhớ, số chân IO, các loại bus truyền thông, v.v ... phân biệt một vi điều khiển với một vi điều khiển khác. Nhưng tôi không hiểu lắm về tầm quan trọng của 8 bit so với 16 bit so với 32 bit. Tôi hiểu rằng một phiên bản bit cao hơn cho phép thiết bị lưu trữ số lượng lớn hơn, nhưng một lần nữa, điều này ảnh hưởng đến quyết định của tôi như thế nào? Nếu tôi đang thiết kế một sản phẩm, theo kịch bản giả thuyết nào đó, tôi sẽ quyết định rằng bộ xử lý 8 bit đơn giản sẽ không làm được và tôi cần thứ gì đó cao hơn.

Có lý do nào để tin rằng một biến thể 32 bit lý thuyết của ATmega8 (tất cả những thứ khác bằng nhau) sẽ vượt trội hơn so với phiên bản 8 bit (nếu một thiết bị như vậy là có thể)?

Tôi có thể nói những điều vô nghĩa, nhưng tôi đoán đó là kết quả của sự nhầm lẫn của tôi.


Câu trả lời:


24

Nó không phải là chiều rộng của số mà nó có thể lưu trữ, đó là chiều rộng mà nó có thể làm việc trong một thao tác. Thông thường (nhưng không nhất thiết) điều này cũng có một mức độ tương quan với độ rộng của địa chỉ bộ nhớ riêng, và do đó, dung lượng lưu trữ có thể dễ dàng được ánh xạ mà không có cách giải quyết xấu như phân đoạn hoặc chuyển đổi ngân hàng.

Các lõi 32 bit ngày nay vượt trội so với 8 thiết kế ở hầu hết các khía cạnh (tính linh hoạt, mô hình bộ nhớ phẳng và tất nhiên là hiệu suất), với các ngoại lệ chính là các hệ thống kế thừa, các ứng dụng có khối lượng cực lớn và áp lực giá (nếu không thì giá có xu hướng tương quan tốt hơn với về kích thước bộ nhớ chip so với chiều rộng lõi) và tác dụng phụ của quá trình / mật độ. Cái sau có thể cung cấp những thứ như hoạt động 5v, hoặc có thể trong một số trường hợp độ cứng bức xạ lớn hơn hoặc lợi thế đơn giản hơn nếu cố gắng chứng minh bản thân thiết kế CPU không có lỗi logic. Một tác dụng phụ cuối cùng của giá trị đối với nhiều người có sở thích là lõi 8 bit trong các gói DIP là phổ biến, trong khi các thiết bị 32 bit trong các gói đó hiếm hơn (mặc dù chúng tồn tại).


3
Độ rộng mà nó có thể xử lý trong một thao tác có thể quan trọng khi đồng bộ hóa các phần không đồng bộ của chương trình. Nếu bạn cần đọc nguyên bản giá trị 16 bit trên micro 8 bit, trước tiên bạn có thể cần phải tắt các ngắt mà bạn có thể muốn tránh để giữ thời gian phản hồi ISR ​​ở mức thấp.
ndim

Một đặc điểm khác trong đó một số micros 8 bit có thể vượt trội so với ARM (kiến trúc 32 bit phổ biến nhất) là với twiddling bit I / O. PIC 18Fxx (8 bit) có thể đặt hoặc xóa bất kỳ bit nào trong không gian I / O bằng một lệnh duy nhất, bất kể mọi thanh ghi giữ gì, trong khi ARM thường yêu cầu quá trình nhiều bước. Các chip ARM có thể chạy nhiều hướng dẫn hơn mỗi giây so với các chip PIC hiện có (một số chip tương thích PIC 100 MHz nhỏ được sử dụng từ Scenix, nhưng tôi nghĩ rằng chúng đã bị ngưng) nhưng ngay cả các PIC có sẵn vẫn có thể thực hiện một số kiểu đập. nhanh hơn
supercat

1
Mặc dù ít phổ biến hơn, một số thiết bị ARM có những thứ như các thanh ghi GPIOx_BSRR / GPIOx_BRR có thể được ghi vào để đặt hoặc xóa các bit GPIO riêng lẻ.
Chris Stratton

8

Giá trị bit là bus dữ liệu hoặc kích thước ống dữ liệu, nghĩa là MCU 8 bit có thể (đối với hầu hết các phần) chỉ hoạt động với các giá trị từ 0 đến 255 mỗi chu kỳ xung nhịp. Hãy nghĩ về nó như bộ xử lý có 8 dòng kỹ thuật số song song. Và 16 bit có 16 dòng và 32 bit có 32 dòng. Vì vậy, đối với mỗi chu kỳ đồng hồ, nó đọc các dòng dữ liệu này và càng nhiều dòng thì giá trị bạn có thể làm việc với mỗi chu kỳ đồng hồ càng cao.

28256

21665,536

2324,294,967,296

Bus dữ liệu lớn hơn cũng cho phép bộ xử lý truy cập các địa chỉ bộ nhớ lớn hơn.

Điều này làm cho một sự khác biệt lớn trong các hoạt động toán học. Số 16 bit cho bạn độ chính xác cao hơn nhiều so với số 8 bit. Bộ vi điều khiển 16 bit cũng hiệu quả hơn trong việc xử lý các phép toán trên các số dài hơn 8 bit. Một vi điều khiển 16 bit có thể tự động hoạt động trên hai số 16 bit, giống như định nghĩa chung của một số nguyên. Nhưng khi bạn đang sử dụng một vi điều khiển 8 bit, quá trình này không đơn giản như vậy. Các chức năng được triển khai để hoạt động trên các số đó sẽ có các chu kỳ bổ sung. Tùy thuộc vào mức độ xử lý chuyên sâu của ứng dụng của bạn và số lần tính toán bạn thực hiện, điều này có thể ảnh hưởng đến hiệu suất của mạch.

Sự khác biệt giữa Vi điều khiển 8 bit và 16 bit

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.