Vị trí của vi điều khiển 8- và 16 bit là gì? Tại sao không có 32-bit bị chiếm?


9

Điểm cắt thực sự về mặt đánh đổi giữa chi phí và hiệu suất để chọn vi điều khiển 32 bit là gì?

Nói cách khác, với sự gia tăng và thống trị của các kiến ​​trúc ARM, tại sao chúng ta vẫn sử dụng bộ vi điều khiển 8 bit và 16 bit? Họ vẫn còn rẻ hơn nhiều?

Tôi hiểu rằng các thiết bị cấp thấp không cần tài nguyên được cung cấp bởi các kiến ​​trúc lớn hơn và phức tạp hơn. Tuy nhiên, động lực thực sự để vẫn sử dụng chúng là gì nếu chi phí dường như được hội tụ về cùng một phạm vi?


1
Sự tiêu thụ năng lượng?
Leon Heller

7
Giá rẻ nhất 32 bitC trên Digikey tôi thấy là khoảng 0,64 đô la, 8 bit rẻ nhất là 0,35 đô la. Nếu bạn là một công ty lớn sẽ xây dựng một triệu vật dụng đơn giản, đó là một sự khác biệt rất lớn.
Samuel

@LeonHeller Ngay từ cái nhìn đầu tiên, tôi có xu hướng đồng ý nhưng hãy nhìn vào điểm tôi đưa ra trong các ý kiến ​​trả lời được đề xuất.
Bruno Morais

2
Nhìn vào giá cả hàng loạt trên DigiKey không phải là một hướng dẫn tuyệt vời, vì micrô nhỏ đúng cách trong các ứng dụng nhúng năng lượng thấp nhỏ đang được sản xuất hàng loạt, không ai mua chúng từ DigiKey và có khả năng họ sẽ mua chết không dính vào một gói chip để hàn lên bảng. Một micro 8 bit sẽ luôn nhỏ hơn, đơn giản hơn, do đó rẻ hơn và công suất thấp hơn so với cấu trúc tương đương 32 bit. Vâng, biên độ giảm xuống mức không đáng kể đối với nhiều người, nhưng trong khối lượng lớn, thậm chí 1/10 của một xu tiết kiệm là xứng đáng.
John U

Đây là một bài viết có liên quan tôi đã xem trên trang web của Thiết kế điện tử: 8 bit hoặc 32 bit? Chọn MCU của thiết kế tiếp theo của bạn
Garth Wilson

Câu trả lời:


17

Có thể một năm trước, có một sự khác biệt đáng kể giữa 8-bit cấp thấp và bộ vi điều khiển 32-bit rẻ nhất. Không phải là trường hợp nữa.

Dựa trên giá số lượng lớn Digi-Key, bạn có thể nhận được PIC10F200 8 bit với giá 35ȼ với số lượng 2500 trong gói SOT-23-6. Bạn nhận được CY8C4013SXI-400 32 bit (ARM Cortex-M0) với giá 36ȼ với số lượng 2500 trong gói SOIC-8. (Giá cả số lượng lớn của Digi-Key không thực tế về mặt chi phí mà các nhà sản xuất thực sự phải trả, có lẽ ít hơn nhiều, nhưng tôi nghĩ rằng nó là hợp lệ để sử dụng để so sánh giá thô giữa các sản phẩm khác nhau cho số lượng tương tự.)

Vì vậy, OP là đúng, họ đang hội tụ.

Vậy tại sao các chip 32 bit không được sử dụng nhiều hơn? Như tôi đã nói trong đoạn đầu tiên của tôi, mức giá và tương đương kích thước này chỉ xảy ra trong năm ngoái hoặc 18 tháng. Và họ vẫn còn một chặng đường dài trước khi có đủ chip để cạnh tranh.

Trong số 6875 chip ARM có sẵn từ Digi-Key, chỉ có bốn trong kho với số lượng định giá dưới một đô la. Bốn . Trong khi đó, có hàng trăm chip 8 bit dưới một đô la để các kỹ sư lựa chọn.

Nhưng giả sử có ít nhất vài chục micro 32 bit cấp thấp có sẵn. Họ sẽ tự động được chọn trong số 8 bit?

Trước hết bạn phải làm cho các kỹ sư nhận thức được chúng. Luôn có rất nhiều sự kháng cự để thay đổi. Những điều mới để học - từ quan điểm phần cứng, học cách kết hợp chip mới vào mạch điện. Có các công cụ mới, như lập trình mạch, trình biên dịch mới, v.v ... Đối với các kỹ sư phần sụn, học cách sử dụng một bộ thiết bị ngoại vi và bộ định thời hoàn toàn mới (chủ yếu là đăng ký bố cục và ý nghĩa bit).

32-bit là tốt và tất cả những thứ đó, nhưng trừ khi người ta cần phải thực hiện nhiều tính toán nặng nề, vấn đề là gì? Nếu bạn chỉ có bốn chân GPIO, việc truy cập chúng bên trong dưới dạng thanh ghi 32 bit sẽ không có lợi thế hơn khi sử dụng thanh ghi 8 bit.

Tôi nghĩ rằng mức tiêu thụ năng lượng sẽ luôn có lợi cho micros 8 bit.

Ví dụ, PIC10F200 rút 175 175A chạy ở 4 MHz và 2v và 100 nA ở chế độ ngủ. CY8C4013SXI-400 thu hút khoảng 800 PhaA chạy @ 4 MHz và 2v và 1 uA ở chế độ ngủ. (Bảng dữ liệu cho CY8C4013SXI không có số cho 4 MHz hoặc 2v, vì vậy tôi phải thực hiện một số ước tính - bảng dữ liệu cho biết nó thu được 2 ma @ 6 MHz và 3,3v.)

Vì vậy, ARM rút ra gấp 4,5 lần dòng điện khi thức và 10 lần khi ngủ. Có vẻ như không nhiều, nhưng đó là sự khác biệt giữa việc chạy trên một tế bào tiền xu trong 3 tháng hoặc trong một năm. (Tôi giả sử cả hai bộ vi điều khiển chủ yếu thực hiện thời gian, cập nhật cổng, v.v. và không thực hiện tính toán nặng. Nếu trường hợp sau là vi mô 8 bit phải thực hiện nhiều phép tính số học nhiều byte trong thời gian dài về thời gian, nó mất đi một số lợi thế của nó.)

Thật thú vị khi ARM rút ra gấp bốn lần dòng điện 8 số, và đến lượt nó có các thanh ghi bên trong và đường dẫn dữ liệu rộng gấp bốn lần. Tôi không nghĩ rằng đây là một sự trùng hợp. Đối với CMOS, mức tiêu thụ năng lượng tỷ lệ thuận với số lượng bóng bán dẫn được chuyển đổi, và ARM rõ ràng đang làm nhiều hơn nữa cho mỗi lệnh được thực thi.

Khi nhiều nhà cung cấp ARM đưa ra các chip cấp thấp, tôi sẽ không ngạc nhiên nếu các nhà cung cấp như Microchip giảm giá hơn nữa. Trong mọi trường hợp, với giá nhiều hơn hoặc ít hơn, các gói có kích thước tương tự, nhưng ít lựa chọn chip 32 bit hơn, tôi nghĩ rằng các bộ vi điều khiển 8 bit vẫn sẽ xuất hiện trong chốc lát - đặc biệt là vì bạn có hàng chục ngàn kỹ sư quen thuộc với họ.


Để tiêu thụ năng lượng với các chế độ ngủ được triển khai, bạn cũng sẽ phải xem xét hiệu quả mã. Nếu MCU thức dậy bằng một kích hoạt, sau đó thực thi một số mã và trở lại trạng thái ngủ, số lượng đồng hồ đánh dấu để hoàn thành công việc sẽ khá phù hợp. Tôi nghĩ rằng hầu hết mức tiêu thụ hiện tại của MCU đến từ bộ dao động chạy ở tốc độ tối đa. Để thực hiện công việc tương tự như 32 đắng, 8 đắng có lẽ sẽ cần khoảng gấp năm lần số chu kỳ, đơn giản vì chúng thường ít mã hiệu quả hơn rất nhiều ngay cả khi thực hiện số học đơn giản.
Lundin

(Và đó không phải là quá nhiều vì chúng có bus dữ liệu 8 bit, nhưng chủ yếu là vì tất cả các loại 8 bit chính của thị trường đều có thiết kế lõi CPU cổ từ thập niên 70 và 80.)
Lundin

1
@Lundin Tôi nói điều này trong câu trả lời của tôi - nếu 8-đắng phải làm nhiều phép toán lạ mắt trong ISR, thì nó vẫn mất một số lợi thế của nó. Nhưng nếu nó chỉ thiết lập một số cờ hoặc cập nhật một thanh ghi, thì nó sẽ hiệu quả hơn.
tcrosley

5

Ba điểm chính:

  • Giá bán
  • Kích thước
  • Sự tiêu thụ năng lượng

50 khi bạn đặt hàng 10.000 chip thì khá nhiều tiền. Thậm chí nhiều hơn khi bạn đặt hàng 100.000 chip.

Bạn có thể nhận được chip 8 bit nhỏ hơn đáng kể so với chip 32 bit, chẳng hạn như PIC10 có sẵn trong gói SOT23-6.

Chip 32 bit, vì chúng thường có tốc độ xung nhịp nhanh hơn và làm được nhiều hơn, tiêu thụ nhiều năng lượng hơn so với chip 8 bit nhỏ. Pin tiêu hao nhanh hơn, hệ thống điện phải cung cấp nhiều dòng điện hơn (và do đó tốn kém hơn), v.v.

Rốt cuộc, tại sao bạn lại mua một chiếc juggernaut để lấy một chén đường bên cạnh?


2
Chỉ cần so sánh hai chip từ cùng một nhà sản xuất - ví dụ PIC18F25K20 và PIC32MX250F512 từ Microchip. Cả MCU hiện đại. Cả hai datasheets đều có Idd so với tốc độ xung nhịp. Đồ thị của 8 bit đứng đầu ở 5mA, đầu của 32 bit ở 20mA. Nếu bạn nghĩ về nó, một hoạt động 8 bit sẽ làm một cái gì đó đến 8 chốt - một 32 bit sẽ làm tương tự (hoặc tương đương) với 32 chốt. Đó là 4 lần các chốt phải thao tác, gấp 4 lần mức tiêu thụ hiện tại.
Majenko

2
Dòng điện nhàn rỗi cho 32 bit nằm trong khoảng ~ 0,5mA đến 7mA. Biểu đồ 8 bit cho dòng điện nhàn rỗi được đo trên thang đoA và xuất hiện ở 7 7A - chỉ 4 4A khi chạy ở nhiệt độ phòng bình thường ...!
Majenko

3
Khai thác một số datasheets và tìm kiếm chính mình.
Majenko

2
Đó là giả định rằng tất cả các chip đang làm là xử lý. Mọi thứ không mất thời gian mà không phụ thuộc vào tốc độ của chip, chẳng hạn như đọc dữ liệu từ các cảm biến bên ngoài, v.v. CPU 32 bit 80 MHz sẽ không đọc được thiết bị I2C 100KHz nhanh hơn CPU 8 bit 16 MHz.
Majenko

3
Đừng quên phần mềm cũ (đặc biệt đối với các hệ thống cần chứng nhận) và sự quen thuộc của nhà phát triển, lựa chọn thành phần ngoại vi / RAM / flash (thiết kế vi điều khiển với bộ xử lý hiệu suất cao hơn sẽ sử dụng nhiều vùng chip hơn cho bộ nhớ; Cortex-M có 256 byte RAM dường như không có thời gian sớm), và lựa chọn gói / điện áp. Một câu trả lời tốt cũng sẽ giải thích tại sao thị trường 16 bit không hoạt động tốt hơn (và các ISA 8 bit hiện đại hơn như AVR) và tại sao thị trường 4 bit dường như rất hạn chế (đồng hồ và những gì khác?).
Paul A. Clayton

2

Các ứng dụng uC tôi đã phát triển cho các sản phẩm thương mại hầu như không bao giờ xử lý kích thước dữ liệu lớn hơn 8 bit; vì vậy ngay cả khi 32 bitters có cùng giá với 8 bitters, vẫn sẽ không có lợi ích gì. Như một người khác đã nói, chúng tôi đi tìm những gì quen thuộc, vì vậy chúng tôi có thể đấm nó nhanh hơn. Tuy nhiên, cái cuối cùng tôi phát triển đã đẩy PIC16 tôi sử dụng đến giới hạn theo mọi cách - nhưng đó không phải là do kích thước dữ liệu. Nếu tôi làm như vậy nữa, thì tôi thực sự nên học ARM.


Tôi đoán rằng đối với hầu hết các ứng dụng vi mô nhỏ, kích thước dữ liệu yêu cầu lớn nhất sẽ là 16 bit hoặc có thể 24. Hầu hết các ứng dụng sẽ không cần phải làm gì nhiều với những thứ lớn hơn 8 bit, nhưng chúng sẽ cần phải làm gì đó. Mặt khác, hầu hết mọi bộ vi điều khiển 8 bit từng được tạo ra (nếu không phải là hoàn toàn) đều có một cờ mang cho phép sử dụng một chuỗi các thao tác để thực hiện một bộ 16 bit (hoặc thậm chí lớn hơn).
supercat

2

Tôi hy vọng rằng các chip ARM sẽ đảm nhiệm hầu hết các chức năng trong đó một cái gì đó hoạt động giống như một "máy tính". Mặt khác, rất nhiều bộ vi điều khiển 8 bit đã quen với việc làm những việc có thể được thực hiện với một thiết bị logic lập trình tương đối đơn giản hoặc một số cổng vừa phải, nhưng thực sự có thể được thực hiện rẻ hơn và / hoặc rút ra ít hơn bằng cách sử dụng micro 8 bit đơn giản. Khi thiết kế các ứng dụng phức tạp hơn, việc sử dụng micro 32 bit thường dễ hơn so với 8 bit, nhưng nếu toàn bộ mục đích của chip là, ví dụ như xem và gỡ bỏ một đầu vào nhất định và, nếu nó lên cao, hãy bắt đầu xuất 200 xung trên một đầu ra nhất định tại các khoảng thời gian 1ms, sau đó 100 ở các khoảng thời gian 2ms, sau đó 100 ở 3ms, sau đó tạm dừng trong 100ms và tiếp tục làm điều đó cho đến khi đầu vào xuống thấp, việc thiết kế mã cho điều đó thực sự có thể dễ dàng hơntrên micro 8 bit so với trên 32 bit. Chênh lệch chi phí giữa micros 8 bit và 32 bit có thể không còn đủ trong nhiều trường hợp để biện minh cho việc chi tiêu thêm nỗ lực kỹ thuật để làm cho dự án "phù hợp" với micro 8 bit, nhưng trong trường hợp một phần 32 bit sẽ không Không tiết kiệm bất kỳ nỗ lực kỹ thuật nào, không có lý do gì để chi tiêu thêm một xu.


Tôi đồng ý, nhưng chỉ ra rằng việc duy trì và duy trì thành thạo hai công cụ liên quan đến nỗ lực kỹ thuật của chính nó.
Scott Seidman

2
@ScottSeidman: Đúng. Mặt khác, cũng có thể đáng nói rằng một số micros 8 bit có thể bắt đầu chạy mã gần như ngay lập tức khi bật nguồn, trong khi micros 32 bit mà tôi thấy mất nhiều thời gian hơn.
supercat

Tôi tự hỏi liệu chúng ta có bao giờ thấy giấy phép ARM trên các nền tảng 8 bit không. Có một số tính năng tuyệt vời của việc triển khai ARM, như khả năng đơn giản là không đồng hồ toàn bộ các thiết bị ngoại vi và bus, điều đó sẽ khiến ARMS 8 bit chạy vòng quanh các nền tảng khác về khả năng nhấm nháp. Nếu mfct tạo ra các thư viện tuân thủ CMSIS, tôi nghĩ cuối cùng họ sẽ xóa sổ những người chơi lớn.
Scott Seidman

@ScottSeidman: Trên thực tế, những gì tôi muốn thấy sẽ là các thiết kế có thể có các bộ phận nhạy cảm với thời gian của các thiết bị ngoại vi (ví dụ: bộ định thời, bộ tạo tốc độ baud, v.v.) chạy với cơ sở thời gian không đổi, độc lập với tốc độ CPU , nhưng tôi chỉ thấy hỗ trợ tối thiểu cho một khái niệm như vậy. Nó sẽ không khó trong silicon, nhưng tôi đoán rằng các công cụ tổng hợp thiếu phương tiện để làm những việc đó một cách hiệu quả.
supercat

@supercat Tôi không chắc chắn về các bộ vi điều khiển khác, nhưng PIC32 có khái niệm về đồng hồ bus ngoại vi có thể được cài đặt ở tốc độ xung nhịp khác với đồng hồ chính. Vì vậy, bạn có thể thay đổi tốc độ CPU, ví dụ để tiết kiệm năng lượng và vẫn giữ nguyên đồng hồ PB để bạn không phải lập trình lại tất cả tốc độ truyền ngoại vi của mình, v.v.
tcrosley 5/12/14

1

Mặc dù tôi đồng ý rằng chi phí CPU và mức tiêu thụ năng lượng là những lý do chính, nhưng một điều cần xem xét nữa tôi chưa thấy được liệt kê ở đây là không gian PCB. Đối với nhiều loại hệ thống nhúng, chẳng hạn như quy mô phòng tắm điện tử, không cần nhiều I / O, không có lợi cho kích thước xe buýt lớn hơn và không có lợi ích gì cho việc xử lý nhanh hơn. Tuy nhiên, có một lợi ích cho một gói nhỏ hơn với ít chân hơn vì nó làm cho bố cục và định tuyến của bảng mạch in đơn giản hơn và thường nhỏ hơn. Nếu một bảng có thể được thiết kế như một bảng 2 lớp chứ không phải là bảng 4 lớp, sẽ tiết kiệm đáng kể chi phí và số pin nhỏ hơn thường đi kèm với bộ xử lý 8 bit có xu hướng tạo điều kiện tiết kiệm dễ dàng hơn 32- bộ xử lý bit thường có nhiều chân hơn và các gói vật lý lớn hơn.


Bạn nhận ra đây là một câu hỏi 2 năm rưỡi, phải không?
Olin Lathrop

@Olin Một quan điểm khác không làm tổn thương.
m.Alin

@OlinLathrop: có, đồng hồ / lịch chạy CPU 8 bit của tôi đang hoạt động tốt. :)
Edward

0

Ngay cả trong thế giới 8 bit, các loại mới hơn đã được biết là mất rất nhiều thời gian để thay thế các loại cũ hơn - xem MCS51 vẫn còn sống trong các hốc của nó và MCS48 vẫn được tìm thấy ở những nơi không ngờ tới.

Trong nhiều trường hợp, sự thay đổi không xảy ra vì nó không mang lại giá trị bổ sung và đi kèm với chi phí học một công nghệ mới chưa được chứng minh là sẽ tồn tại và / hoặc dự kiến ​​sẽ vẫn là mục tiêu di động (điều này khiến thật thú vị với những người muốn tập trung vào công nghệ MCU nhưng gây khó chịu cho những người muốn tập trung vào ứng dụng của họ và không liên tục sửa chữa và kiểm tra lại phần mềm sản xuất để điều chỉnh ARM cổ điển của năm nay!). Đối với một số người, một thành phần không còn được phát triển đã lỗi thời, với những người khác cuối cùng nó đã trở nên ổn định và trong khi nó có thể cần giải pháp để khắc phục lỗi, ít nhất nó cung cấp một nền tảng ổn định cho những thứ này. Dòng dung nham không phải lúc nào cũng là phản hạt mà nó bị nứt vỡ - có xu hướng làm cho các ngọn núi ở lại ...

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.