Thành thật mà nói, ranh giới giữa hai người gần như đã biến mất và có những bộ xử lý có thể được phân loại thành cả hai (ví dụ AD Blackfin).
Nói chung:
Vi điều khiển là bộ xử lý toán số nguyên với hệ thống con ngắt. Một số có thể có các đơn vị nhân phần cứng, một số thì không, v.v. Điểm là chúng được thiết kế cho toán đơn giản và chủ yếu để điều khiển các thiết bị khác.
DSP là bộ xử lý được tối ưu hóa để xử lý tín hiệu truyền phát. Họ thường có các hướng dẫn đặc biệt giúp tăng tốc các tác vụ phổ biến như tích lũy nhân lên trong một lệnh. Họ cũng thường có các hướng dẫn vectơ hoặc SIMD khác. Trong lịch sử, chúng không làm gián đoạn các hệ thống dựa trên và hoạt động với các hệ thống bộ nhớ không chuẩn được tối ưu hóa cho mục đích của chúng khiến chúng khó lập trình hơn. Chúng thường được thiết kế để hoạt động trong một vòng lặp lớn xử lý luồng dữ liệu. DSP có thể được thiết kế như bộ xử lý số nguyên, điểm cố định hoặc dấu phẩy động.
Trước đây, nếu bạn muốn xử lý luồng âm thanh, luồng video, điều khiển động cơ nhanh, bất cứ điều gì cần xử lý luồng dữ liệu ở tốc độ cao, bạn sẽ tìm đến DSP.
Nếu bạn muốn điều khiển một số nút, đo nhiệt độ, chạy màn hình LCD ký tự, điều khiển các IC khác đang xử lý mọi thứ, bạn sẽ sử dụng vi điều khiển.
Ngày nay, bạn chủ yếu tìm thấy các bộ xử lý loại vi điều khiển có mục đích chung với các hướng dẫn giống như DSP hoặc với các bộ đồng xử lý chip để xử lý dữ liệu truyền phát hoặc các hoạt động DSP khác. Bạn không thấy DSP thuần túy được sử dụng nhiều nữa ngoại trừ trong các ngành cụ thể.
Thị trường bộ xử lý rộng hơn và mờ hơn nhiều so với trước đây. Ví dụ, tôi hầu như không coi ARM cortex-A8 SoC là bộ điều khiển vi mô nhưng nó có thể phù hợp với định nghĩa tiêu chuẩn, đặc biệt là trong gói PoP.
EDIT: Hình tôi sẽ thêm một chút để giải thích khi nào / nơi tôi đã sử dụng DSP ngay cả trong thời của bộ xử lý ứng dụng.
Một sản phẩm gần đây tôi thiết kế đang thực hiện xử lý âm thanh với các kênh đầu vào X và kênh đầu ra X trên mỗi 'vùng'. Mục đích sử dụng cho sản phẩm có nghĩa là nó thường sẽ ngồi đó làm việc của nó, xử lý các kênh âm thanh trong nhiều năm mà không có ai chạm vào nó. Việc xử lý âm thanh bao gồm các bộ lọc và chức năng âm học khác nhau. Hệ thống này cũng "có khả năng cắm nóng" với khả năng thêm một số 'vùng' độc lập tất cả trong một hộp. Đó là tổng cộng 3 thiết kế PCB (bo mạch chính, bảng nối đa năng và mô-đun cắm) và bảng nối đa năng hỗ trợ 4 mô-đun. Khá là một dự án thú vị khi tôi thực hiện nó một mình, tôi phải thiết kế hệ thống, sơ đồ, bố trí PCB và phần sụn.
Bây giờ tôi có thể thực hiện toàn bộ với một lõi ARM cồng kềnh, tôi chỉ cần khoảng 50MIPS DSP hoạt động trên các số điểm cố định 24 bit cho mỗi vùng. Nhưng bởi vì tôi biết hệ thống này sẽ hoạt động trong một thời gian rất dài và biết rằng điều quan trọng là nó không bao giờ nhấp hoặc bật hoặc bất cứ thứ gì tương tự. Tôi đã chọn thực hiện nó với DSP công suất thấp cho mỗi vùng và một vi điều khiển PIC duy nhất đóng vai trò quản lý hệ thống. Theo cách này, ngay cả khi một trong các chức năng uC bị hỏng, có thể là một cuộc tấn công DDOS trên cổng Ethernet của nó, DSP sẽ vui vẻ tiếp tục tránh xa và có khả năng không ai biết.
Vì vậy, vi điều khiển đã đóng vai trò chạy LCD 2 ký tự, một số nút, theo dõi nhiệt độ và điều khiển quạt (cũng có một số bộ khuếch đại âm thanh công suất khá cao trên mỗi bảng) và thậm chí còn phục vụ một trang web kiểu AJAX qua ethernet. Nó cũng quản lý DSP thông qua kết nối nối tiếp.
Vì vậy, đó là một tình huống mà ngay cả trong những ngày mà tôi có thể đã sử dụng một lõi ARM duy nhất để làm mọi thứ, thiết kế đã ra lệnh cho một IC xử lý tín hiệu chuyên dụng.
Các lĩnh vực khác mà tôi đã chạy vào DSP:
* Âm thanh High End - Thiết bị thu và xử lý chất lượng buổi hòa nhạc rất cao
* Xử lý Radar - Tôi cũng đã sử dụng lõi ARM cho việc này trong các ứng dụng cấp thấp.
* Chế biến Sonar
* Tầm nhìn máy tính thời gian thực
Đối với hầu hết các phần, phần thấp và giữa của không gian âm thanh / video / tương tự đã được các bộ xử lý ứng dụng kết hợp với CPU có mục đích chung với các động cơ giảm tải co-Proc cho các ứng dụng khác nhau.