Các thuộc tính của vi điều khiển N-bit là gì?


8

Tôi đã nghe nói về vi điều khiển 8 bit và vi điều khiển 16 bit. Tôi thậm chí đã nghe nói về vi điều khiển 7 bit và vi điều khiển 1 bit .

Các thuộc tính chung của các nhóm này là gì? Làm thế nào để tôi chọn loại để sử dụng cho một dự án?


4
Tôi chưa bao giờ nghe nói về một vi điều khiển 7 bit. Tôi xin lỗi nếu bạn bị nhầm lẫn bởi một bình luận tôi đã đăng tại Electronics.stackexchange.com/q/32097/4512 . Đó có nghĩa là một trò đùa.
Olin Lathrop

4
Tuyệt quá! Olin, tôi muốn cảnh báo bạn câu hỏi này đã được mong đợi! :-)
stevenvh

Câu trả lời:


11

Ngoài ra còn có vi điều khiển 4 bit và 32 bit. Bộ vi xử lý 64 bit được sử dụng trong PC.

Con số đề cập đến chiều rộng đăng ký . Các thanh ghi là trung tâm của vi điều khiển. Nhiều hoạt động sử dụng các thanh ghi, để di chuyển dữ liệu hoặc thực hiện các hoạt động hợp lý hoặc logic. Các hoạt động này diễn ra trong ALU , Đơn vị Số học và Logic.

nhập mô tả hình ảnh ở đây

Một số thao tác chỉ mất 1 đối số, như xóa một thanh ghi hoặc tăng nó. Tuy nhiên, nhiều người sẽ đưa ra 2 lập luận và điều đó dẫn đến đại diện quần lộn ngược điển hình của ALU. B là các đối số và ALU sẽ tạo ra kết quả C dựa trên hoạt động hiện tại. Một hoạt động hai đối số có thể là "thêm 15 để đăng ký R5 và lưu kết quả tại địa chỉ bộ nhớ 0x12AA". Điều này đòi hỏi phải có một định tuyến giữa hằng số "15" (xuất phát từ bộ nhớ chương trình), tệp đăng ký và bộ nhớ dữ liệu. Định tuyến đó xảy ra thông qua một cơ sở dữ liệuMộtBC. Có một cơ sở dữ liệu nội bộ kết nối các thanh ghi, RAM bên trong và ALU, và cho các bộ vi xử lý và một số bộ vi điều khiển một cơ sở dữ liệu bên ngoài kết nối với RAM bên ngoài. Với một vài ngoại lệ, cơ sở dữ liệu có cùng chiều rộng với các thanh ghi và ALU, và cùng nhau chúng xác định loại vi điều khiển đó là gì. (Một ngoại lệ là 8088, bên trong có bus 16 bit, nhưng bên ngoài chỉ có 8 bit.)

Bộ điều khiển 4 bit có các thanh ghi 4 bit, chỉ có thể biểu thị 16 giá trị khác nhau, từ 0 đến thập lục phân 0xF. Đó không phải là nhiều, nhưng nó đủ để làm việc với các chữ số trong đồng hồ kỹ thuật số và đó là một miền mà chúng được sử dụng.

Bộ điều khiển 8 bit đã trở thành công việc của ngành trong một vài thập kỷ nay. Trong 8 bit, bạn có thể lưu trữ một số trong khoảng từ 0 đến 255. Những số này cũng có thể đại diện cho các chữ cái và các ký tự khác. Vì vậy, bạn có thể làm việc với văn bản. Đôi khi, 2 thanh ghi có thể được kết hợp thành một thanh ghi 16 bit, cho phép các số lên tới 65535. Trong nhiều bộ điều khiển, số lượng lớn phải được xử lý trong phần mềm. Trong trường hợp đó, thậm chí số 32 bit là có thể.
Hầu hết các bộ điều khiển 8 bit có bộ đếm chương trình 16 bit. Điều đó có nghĩa là nó có thể giải quyết tối đa 64kBytes bộ nhớ. Đối với nhiều ứng dụng nhúng là đủ, một số thậm chí chỉ cần một vài kBytes.
Ví dụ, một màn hình bãi đỗ xe, nơi bạn phải theo dõi số lượng ô tô và hiển thị trên màn hình LCD, là điều bạn thường làm với bộ điều khiển 8 bit. :-)

16-bit là một bước tiếp theo. Vì một số lý do, họ không bao giờ có được 8-bitters hay 32-bitters thành công. Tôi nhớ rằng dòng Motorola HC12 rất đắt và không thể cạnh tranh với bộ điều khiển 32 bit.

32-bit là từ trong ngày. Với bộ đếm chương trình 32 bit, bạn có thể xử lý 4GByte. ARM là bộ điều khiển 32 bit phổ biến. Có hàng tá nhà sản xuất cung cấp ARM là tất cả các kích cỡ. Chúng là bộ điều khiển mạnh mẽ thường có nhiều chức năng đặc biệt trên tàu, như USB hoặc trình điều khiển hiển thị LCD hoàn chỉnh.
ARM thường yêu cầu các gói lớn, hoặc để chứa một khuôn lớn với nhiều Flash hoặc vì các chức năng khác nhau đòi hỏi rất nhiều chân I / O. Nhưng gói này minh họa các khả năng mà ARM cung cấp.

nhập mô tả hình ảnh ở đây

Đây là một ARM 16 chân trong một gói chỉ 2,17mm x 2,32mm.


Và vi điều khiển 64 bit cũng vậy. uk.computers.toshiba-europe.com/innovation/jsp/ từ
Telaclavo

1
Đã có tất cả các loại chiều rộng trong quá khứ. PDP-8 là 12 bit và CDC 6600 là 60 bit với 6 byte nếu tôi nhớ chính xác. Ngày nay chúng ta thấy độ rộng bit 4 (2 ^ N) khá nhiều.
Olin Lathrop

Số phần của CPU ARM đó là gì?
Rocketmagnet

@Rocketmagnet trông giống như có thể là NXP LPC1102UK: nxp.com/products/microcontrollers/cortex_m0/miniature_package/ trộm
Craig

5

Câu trả lời đơn giản: Một vi điều khiển N-Bit có đường dẫn dữ liệu và ALU có thể xử lý dữ liệu trong các khối N-Bit.

Câu trả lời dài: Câu trả lời ngắn là đúng 95%. Câu trả lời dài trở nên khó hiểu. Một số CPU / MPU có các phần chủ yếu là N-Bits, nhưng một số phần là M-Bits. Ví dụ, nó có thể là CPU 8 bit với hệ số nhân hoạt động trên dữ liệu 16 bit. Các dòng CPU của Intel (8088 đến i7 hiện tại) thường có thể kết hợp các thanh ghi 8 và 16 bit khác nhau để có được 16 hoặc 32 bit. Sau đó, những người tiếp thị có được những con số này và quyết định sử dụng chúng trong công cụ tiếp thị của họ và bạn kết thúc với MPU 8 bit được gọi là 16 bit, v.v.

Nó thậm chí còn kỳ lạ hơn thế. Một số người tiếp thị quảng bá kích thước chỉ dẫn của MPU. PIC Microchip là một ví dụ tốt về điều này. Nếu bạn không cẩn thận thì bạn có thể nhầm lẫn điều này với số bit trong đường dẫn dữ liệu.


Bộ xử lý cơ sở và tầm trung của Microchip có từ lệnh 12 bit hoặc 14 bit tương ứng. Cả hai đều được phân loại là bộ xử lý 8 bit tuy nhiên vì bus dữ liệu là 8 bit. Một công ty Trung Quốc (ELAN Vi điện tử) đã tạo ra một biến thể của PIC 14 bit với từ hướng dẫn 13 bit được gọi là EM78. Đối với tất cả những điều này, dữ liệu được xử lý theo byte trong khi bộ nhớ chương trình được xử lý bằng từ - nhưng bộ nhớ chương trình đôi khi được quảng cáo là quá nhiều byte, mang lại giá trị tăng của số lượng lệnh thực tế có thể được lập trình!
tcrosley

4

"N-Bit" có nghĩa là gì?

MN

Bộ vi điều khiển hoặc bộ xử lý được gọi là 'N-bit' vì bộ điều khiển và bộ xử lý có độ rộng dữ liệu cơ bản. Mỗi thanh ghi có thể là N bit, mỗi lệnh có thể là N bit, bus dữ liệu có thể là N bit, bộ nhớ có thể được xử lý bằng N bit. Đặc biệt ở cấp độ thấp hơn, có các ngoại lệ cho quy tắc này: ví dụ: bộ điều khiển 8 bit có thể có bus bộ nhớ 12 bit, nhưng như bạn có thể đoán là khó hoạt động khi các thanh ghi của bạn chỉ chứa 8 bit. Tuy nhiên, tất cả các bộ xử lý có chiều rộng kiểu dữ liệu gốc cơ bản. Hãy xem xét các mã sau đây:

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

Nếu bạn chỉ có thể thêm số 8 bit, bạn sẽ thực hiện thao tác này như thế nào? Bạn sẽ cần chia mỗi biến thành 4 số 8 bit, thực hiện các phép cộng và mang riêng lẻ, sau đó hợp nhất chúng để có kết quả. Điều này sẽ mất ít nhất 16 hướng dẫn! Tuy nhiên, trên bộ xử lý 32 bit, đó là một lệnh đơn giản nhưmul r0, r1, r2 . Như bạn có thể thấy từ ví dụ đơn giản này, độ rộng bit của bộ xử lý lớn hơn có thể xử lý nhiều dữ liệu nhanh hơn.

Ghi chú lịch sử

Xu hướng trong suốt lịch sử là từ chiều rộng bit nhỏ hơn đến chiều rộng lớn hơn. Quay trở lại vào đầu những năm 1970, Intel đã phát hành 4004, bộ điều khiển đơn chip đầu tiên. Đó là một bộ xử lý 4 bit. Bởi vì các bóng bán dẫn rất lớn và ngốn điện, và vì thiết kế mang tính cách mạng và phức tạp, đây là tất cả những gì có thể được ép lên chip. Ngay sau đó, họ đã phát hành 8008, bộ xử lý 8 bit. Có một vài bộ xử lý 4 bit vẫn đang được sử dụng, nhưng có nhiều bộ điều khiển 8 bit, PIC và AVR là những ví dụ hiện đại vẫn được sử dụng phổ biến. Nhiều bộ xử lý 8 bit đã được tạo ra hơn bất kỳ loại nào khác! Chúng vẫn là bộ điều khiển phổ biến nhất cho các tác vụ nhỏ, đơn giản và nhạy cảm với chi phí. Sự chuyển đổi rõ ràng tiếp theo là các bộ điều khiển 16 bit, nhưng những bộ này không có tầm với của anh em 8 bit hoặc 32 bit của họ. Thay thế, đã có một bước nhảy vọt lên bộ xử lý 32 bit, giống như bộ xử lý được ARM thiết kế và thiết kế vào CPU PC của một vài năm trước. Không có bất kỳ bộ vi điều khiển 64 bit đáng kể nào mà tôi biết, mặc dù chúng hiện đang nổi bật trong PC.

8 bit so với 32 bit

Cho đến nay, các loại phổ biến nhất là bộ xử lý 8 bit và 32 bit. Bộ xử lý 32 bit ngày càng trở nên phổ biến. Mỗi năm hoặc lâu hơn, một số tạp chí thương mại xuất bản một bài báo với tiêu đề "8-bit đã chết?" Bộ xử lý 32 bit đang trở nên phổ biến hơn, mạnh hơn và rẻ hơn, chỉ còn lại ba lý do để chọn bộ xử lý 8 bit:

  1. Quán tính - Nếu bạn đã có mã và trải nghiệm với bộ xử lý 8 bit, bạn có thể không nhận được ROI đủ bằng cách chuyển đổi mọi thứ thành kiến ​​trúc 32 bit.
  2. Công suất thấp - Mỗi bóng bán dẫn trong bộ điều khiển làm tiêu hao năng lượng và trong khi kích thước không còn là vấn đề nữa, bộ xử lý 32 bit có nhiều bóng bán dẫn hơn và do đó làm tiêu hao nhiều dòng điện hơn ở trạng thái tắt. Đây chỉ là một vấn đề trong các thiết kế cực kỳ mạnh mẽ, di động.
  3. Chi phí thấp - Nếu bạn chỉ cần vài chục hướng dẫn lắp ráp và 2 chân IO, ngay cả bộ xử lý 8 bit cũng có thể là quá mức cần thiết. Ở cấp thấp, bộ điều khiển 8 bit rẻ nhất có số lượng nhỏ hơn 0,40 đô la, nhưng bộ xử lý 32 bit rẻ nhất vẫn là 0,80 đô la hoặc hơn, nhưng mạnh hơn nhiều so với các lựa chọn thay thế 8 bit. Nếu bạn đang cố gắng xây dựng một món đồ chơi với một đèn LED nhấp nháy cho hàng triệu Bữa ăn Hạnh phúc tiếp theo, thì đây là một mức giá thuyết phục, nếu không nó không thực sự tạo ra sự khác biệt.

Bộ xử lý 32 bit đang trở nên phổ biến hơn, nhưng có một dấu hiệu nhỏ cho thấy bộ xử lý 8 bit sẽ biến mất như bộ xử lý 4 bit cổ vì ba lý do này.

Arduino là một ví dụ

Hãy xem xét một ứng dụng như Arduino .

Arduino sử dụng bộ điều khiển Atmel, ATmega32 8 bit . ATmega chạy ở 20 MHz, có 4k RAM, có các giao tiếp SPI, I2C và UART, một vài ngắt phần cứng và 8 ADC 10 bit. Con chip này có giá 3,90 đô la với số lượng 100.

Một chip 32 bit tương tự có thể là một phần khác của Atmel, AT-SAM3 32 bit sử dụng lõi ARM Cortex-M3 được chia sẻ. Con chip này chạy ở tốc độ 64 MHz (nhanh gấp 3 lần, nhưng hãy nhớ rằng ATmega cần 16 hướng dẫn để thực hiện bổ sung 32 bit). Nó có 16k RAM, gấp 4 lần ATmega. Nó có các thiết bị ngoại vi I²C, MMC, SPI, SSC, UART và thậm chí cả USB. Nó có DMA (truy cập bộ nhớ trực tiếp, cũng làm cho nó nhanh hơn và hiệu quả hơn), một bộ ngắt linh hoạt, mạnh mẽ, 10 ADC 12 bit và 2 DAC. Nó chỉ đơn giản là vượt xa ATmega trong tất cả các loại. Tôi đã cố gắng tìm một bộ điều khiển 32 bit có bộ tính năng tương đương và đây là điều tốt nhất tôi có thể làm. Con chip này có giá bao nhiêu? Đó là 2,34 đô la với số lượng 100: Bạn nhận được nhiều hiệu suất hơn với ít tiền hơn. Nên là một quyết định dễ dàng.

Còn ví dụ của bạn thì sao?

Đối với tình huống ví dụ của bạn ở đây ,

Số lượng ô tô đi vào và ra khỏi bãi đỗ xe phải được tính và số lượng hiển thị trên màn hình LCD. Tối đa mười xe được phép vào bãi đậu xe.

bạn có một số phép toán rất đơn giản với các số nhỏ và hiển thị đơn giản trên màn hình LCD (hoặc thực sự, một dấu hiệu lớn được làm bằng các đèn LED 7 đoạn sẽ dễ nhìn hơn và rẻ hơn). Bộ điều khiển 8 bit có lẽ là hoàn toàn phù hợp cho nhiệm vụ này. Tuy nhiên, nếu bạn thực sự làm muốn màn hình LCD? Bộ điều khiển 8 bit sẽ đấu tranh để điều khiển ngay cả màn hình VGA độ phân giải thấp, trong khi bạn có thể dễ dàng nhận được bảng phát triển cho bộ điều khiển 32 bit có đầu ra HDMI. Điều gì sẽ xảy ra nếu bạn muốn hiển thị nó trên màn hình bây giờ, nhưng sau đó muốn kết nối nó với cáp Ethernet trên mạng LAN của doanh nghiệp của bạn và hiển thị kết quả trên máy tính của người giám sát tại văn phòng công viên? Bạn có thể dễ dàng nhận được bộ điều khiển 32 bit với các cổng giao tiếp Ethernet trên bo mạch, bạn không thể làm điều đó với bộ điều khiển 8 bit.Xport , nhưng có chứa bộ xử lý 32 bit bên trong nó.

Đối với các dự án một lần, tôi muốn giới thiệu bộ điều khiển 32 bit mỗi lần. Thời gian của bạn chỉ đơn giản là có giá trị hơn chênh lệch giá giữa các bộ điều khiển 8- và 32 bit.


Đối với các bộ xử lý 7 bit mà bạn đã đề cập, có lẽ chưa bao giờ và sẽ không bao giờ có bất kỳ máy nào như vậy. Từ quan điểm kiến ​​trúc, sẽ hợp lý hơn khi sử dụng chiều rộng bit có sức mạnh bằng 2.


Trên so sánh 8 bit so với 32 bit: Mặc dù bộ điều khiển 32 bit thường rẻ hơn (đơn giá) và có nhiều tính năng hơn bộ điều khiển 8 bit, chúng vẫn đắt hơn về mặt bất động sản PCB.
shimofuri

1

Kích thước bit của CPU liên quan đến một vài đặc điểm thường đi đôi với nhau:

  1. Kích thước lớn nhất của toán hạng mà phần lớn tập lệnh có thể hoạt động
  2. Kích thước của hầu hết nếu thanh ghi mục đích chung của nó
  3. Kích thước của xe buýt lớn nhất hiện có có thể di chuyển dữ liệu giữa các thanh ghi mục đích chung và bộ nhớ
  4. Kích thước của xe buýt lớn nhất hiện có có thể di chuyển dữ liệu giữa các thanh ghi mục đích chung
  5. Kích thước của ALU được sử dụng để tính toán dữ liệu cho mục đích chung

Đối với một số bộ xử lý, tất cả các đại lượng đó có cùng giá trị. Đối với những người khác, họ có thể có các giá trị khác nhau. Z80, mặc dù bao gồm một số thanh ghi 16 bit, sử dụng các thanh ghi 8 bit cho hầu hết các tập lệnh của nó và yêu cầu các chu kỳ bổ sung cho hầu hết tất cả các lệnh hoạt động trên số lượng 16 bit (ngoại lệ duy nhất là EX DE, HL); nó là CPU 8 bit. Tuy nhiên, một cái gì đó giống như 68008, không thể được mô tả tốt bằng cách chỉ sử dụng một N: nó có một tập lệnh có thể hoạt động chủ yếu trên các đại lượng 32 bit và IIRC có thể di chuyển dữ liệu giữa các thanh ghi 32 bit cùng một lúc, nhưng ALU chính của nó là chỉ có 16 bit và bus bộ nhớ của nó chỉ có 8 bit. Tùy thuộc vào những gì người ta đang đo, nó có thể được coi là CPU 32 bit, 16 bit hoặc 8 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.