Mối liên hệ giữa DSP và các chip xử lý khác

Print

Sơ lược về các khối xử lý

Lựa chọn khối xử lý để làm nền tảng thực thi chương trình là bước đầy tiên trong quá trình thiết kế sản phẩm nhúng. Khối xử lý này có thể là các bộ xử lý đa mục đích GGP (General Purpose Processor), mảng logic lập trình được FPGA, vi điều khiển uC, DSP … Trong rất nhiều hệ thống thì người ta không chỉ sử dụng duy nhất một loại mà kết hợp nhiều chip xử lý lại với nhau. Sự kết hợp này sẽ cho phép người thiết kế tối ưu được từng loại theo thế mạnh cụ thể của chúng.

 

Hình 1: Các khối phần cứng được sử dụng làm nền tảng để thực thi chương trình

Theo nguyên lý hoạt động của các khối xử lý thì chúng được chia làm 2 nhóm chính:

1. Các bộ xử lý được lập trình bằng phần mềm: chúng bao gồm các loại vi xử lý, vi điều khiển, DSP … chương trình được lưu trên bộ nhớ và thực thi một cách tuần tự theo từng lệnh

2. Các mảng logic cứng: bao gồm các mạch tích hợp ASIC, mảng logic lập trình được FPGA … Chương trình được tổng hợp bằng các phép logic và cấu hình trực tiếp lên các phần tử logic có sẵn trong thiết bị. Vì vậy chúng có khả năng thực thi song song nhiều nhiệm vụ.

Đối với nhóm lập trình bằng phần mềm, chúng bị giới hạn bởi cơ chế xử lý tuần tự. Mặc dù vậy, một vài loại vi xử lý cũng cho phép thực hiện nhiều lệnh song song trong một chu kỳ máy (dựa vào cơ chế pipeline, và một số khối phần cứng đặc biệt …). Nguyên nhân của quá trình xử lý tuần tự này là do mã chương trình được lưu trong bộ nhớ, rồi được đọc ra, thực thi lần lượt thông qua một đơn vị xử lý trung tâm CPU duy nhất. Tuy nhiên, cũng nhờ đặc điểm này mà các vi xử lý có khả năng dễ dàng tích hợp nhiều nhiệm vụ, tính năng phức tạp. Khi cần thêm những tính năng nào, ta chỉ việc bổ xung thêm vào chương trình lưu trong bộ nhớ, thay vì phải tổ hợp thành từng khối logic riêng biệt như các thiết bị lập trình phần cứng. Điều đó tạo nên lợi thế của các thiết bị phần mềm về giá cả khi phải thực hiện các nhiệm vụ phực tạp với số lượng lớn các hàm chức năng. Các thiết bị lập trình logic cứng, theo hướng ngược lại, có ưu thế hơn trong những ứng dụng đòi hỏi năng lực xử lý mạnh, nhờ khả năng thực thi song song và độ trễ đáp ứng rất thấp khi được triển khai trực tiếp trên các khối phần cứng.

Đối với các bộ xử lý, người thiết kế có rất nhiều loại để có thể lựa chọn. Ngoài những bộ xử lý đa mục đích, thì có những vi xử lý chuyên dụng. Các vi xử lý này đều được tối ưu vào những ứng dụng nhất định như các vi xử lý đồ họa, các bộ xử lý phục vụ mạng, các bộ xử lý tín hiệu số DSP …

Các bộ xử lý đa mục đích

Các bộ xử lý đa mục đích bao gồm các vi xử lý (uC) và các vi điều khiển (uP). Các vi điều khiển như tên gọi, chúng được trang bị các khối ngoại vi theo hướng điều khiển. Thông thường chúng có năng lực và giá thành thấp hơn các vi xử lý. Trong khi đó, các vi xử lý có các khối ngoại vi theo hướng truyền thông, chúng thường có năng lực và giá thành cao hơn.

 

Hình 2: Một số vi điều khiển

Một số vi điều khiển cũng có khả năng thực hiện các phép nhân và tích lũy (MAC) trong một chu kỳ máy. Tuy nhiên điều đó vẫn chưa đủ để biến chúng thành một DSP thật sự. Một DSP thực thụ phải có khả năng thực hiện các phép nhân và tích lũy kích thước 16×16 trong một chu kỳ máy, bao gồm cả quá trình đọc và ghi dữ liệu từ các bus và liên tục thực hiện như vậy. Vì vậy, với khối MAC, vi điều khiển đó mới có khả năng thực hiện phép xử lý tín hiệu ở mức độ khá, còn những vi điều khiển còn lại thì đều ở mức kém. Thông thường, các vi điều khiển cũng có khả năng thực hiện xử lý tín hiệu, nhưng tộc độ sẽ chậm hơn DSP.

Giải pháp sử dụng FPGA

FPGA là một mảng các phần tử logic (arrays of programmable logic cells) được kết nối với nhau qua các đường dây và khối chuyển mạch lập trình được. Mỗi một phần tử logic trong FPGA có thể thực hiện một hàm logic đơn giản, được định nghĩa bởi người thiết kế. Một FPGA bao gồm một số lượng lớn các cell (1000 – 100 000) cho phép xây dựng thành các khối chức năng trong ứng dụng xử lý tín hiệu. Chúng cũng cho phép cấu hình lại với tốc độ 100 – 1000 lần/ giây phụ thuộc vào từng loại. FPGA có thể được tối ưu để thực hiện các nhiệm vụ phức tạp với tốc độ cao hơn các bộ xử lý đa mục đích. Bằng khả năng cấu hình tới mức từng cổng logic cho phép chúng xây dựng thành các nhân DSP để thực thi phép xử lý tín hiệu một cách hiệu quả. Điều đó là hoàn toàn khả thi với khả năng thực thi tức thời tất cả các thành phần của thuật toán. Đây chính là  những ưu việt của FPGA so với các chip xử lý tín hiệu DSP.

Người thiết kế các chức năng xử lý tín hiệu cần nắm được sự cân bằng giữa DSP và FPGA. Nếu như ứng dụng có thể hoàn thành bằng 1 DSP thì thông thường đó sẽ là giải pháp tốt nhất. Do việc tìm những nhân viên lập trình tốt DSP thường dễ dàng hơn nhiều so với bằng FPGA. Đồng thời, các công cụ thiết kế trên DSP thường khá thông dụng, rẻ tiền và hiệu quả. Điều đó giúp cải thiện quá trình phát triển sản phẩm cả về thời gian và giá thành.

FPGA sẽ được xem sét để lựa chọn khi ứng dụng không thể được thực hiện chỉ bằng 1 hoặc 2 DSP, hoặc những có những yêu cầu đáng kể về sử dụng năng lượng (mặc dù DSP đã là một thiết bị tiêu thụ năng lượng hiệu quả). Hoặc trong trường hợp có thể này sinh nhiều vần đề từ quá trình phát triển và tích hợp hệ thống phần mềm phức tạp.

Thông thường, ứng dụng FPGA là các thiết bị như rada, mảng sensor, các mô hình nhiễu và hệ thống vật lý …

Hình 3: Một số FPGA

Bộ xử lý tín hiệu số DSP

Bộ xử lý tín hiệu số như đã trình bày, là các vi xử lý chuyên dụng để thao tác với những tín hiệu số (được chuyển đổi từ tín hiệu tương tự) vô cùng hiệu quả. Một ưu điểm lớn của DSP nằm ở tính khả trình (programmability) của vi xử lý, điều đó giúp chúng dễ dàng cập nhật các tham số quan trọng của hệ thống trong quá trình hoạt động.

DSP được trang bị các tập lệnh được thực thi rất nhanh như các lệnh ‘cộng và dịch’, ‘nhân và cộng’. Những lệnh rất phổ biến trong các thuật toán xử lý tín hiệu. DSP được sử dụng trong các thiết bị xử lý tín hiệu quan trọng như: các cạc âm thanh, modem, điện thoại di động …

 

Hình 4: Một số DSP

Giải pháp cho một ứng dụng xử lý tín hiệu

Cấu trúc của khối xử lý ở hình dưới cho phép mỗi thành phần thực thi nhiệm vụ một cách tốt nhất. Nó giúp hệ thống chạy hiệu quả hơn về mặt giá cả, hiệu suất và tính năng. Trong cấu trúc này, người thiết kế có thể đưa phần mềm điều khiển hệ thống (máy trạng thái và các phần mềm truyền thông khác) vào bộ xử lý đa mục đích hoặc các vi điều khiển, các hàm yêu cầu năng lực xử lý mạnh lên FPGA và các hàm xử lý tín hiệu lên DSP.

 

Hình 5: Giải pháp thông dụng trong xử lý tín hiệu

Khi xây dựng quá trình phát triển sản phẩm nhúng có nhiều cách để giảm giá thành hoặc nâng cao tính năng của hệ bằng cách kết hợp GPP/uC, FPGA và DSP. Người thiết kế hệ thống có thể đưa FPGA vào hệ DSP vì một số các lý do sau:

- Mở rộng thời gian tồn tại của vi xử lý, DSP bằng cách chuyển các công việc yêu cầu tính toán cao cho FPGA

- Làm giảm hoặc loại bỏ những yêu cầu cần đến một DSP mạnh và đắt tiền

- Tăng cường năng lực tính toán. Nếu hệ thống hiện thời cần phải tăng độ phân giải, tăng dải tín hiệu làm việc, ta có thể lựa chọn sử dụng thêm FPGA. Nếu hệ thống đơn thuần chỉ cần tăng thêm năng lực tính toán ta vẫn có thể sử dụng thêm FPGA

- Thiết kế sảm phẩm mẫu dựa trên thuật toán xử lý tín hiệu mới

- …

Vấn đề tích hợp DSP và bộ xử lý đa mục đích xin được trình bày sau. Nói tóm lại, bằng cách kết hợp DSP và FPGA, người thiết kế hệ thống có thể tăng phạm vi ứng dụng của thiết bị. Sự kết hợp giữa thiết bị lập trình phần cứng và bộ vi xử lý là một cấu trúc tốt, cho phép gia tăng tính linh hoạt, khả năng lập trình được và năng lực tính toán cho hệ thống.

Nguồn: thanhphonglab

Bạn Có Đam Mê Với Vi Mạch hay Nhúng      -     Bạn Muốn Trau Dồi Thêm Kĩ Năng

Mong Muốn Có Thêm Cơ Hội Trong Công Việc

    Và Trở Thành Một Người Có Giá Trị Hơn

Bạn Chưa Biết Phương Thức Nào Nhanh Chóng Để Đạt Được Chúng

Hãy Để Chúng Tôi Hỗ Trợ Cho Bạn. SEMICON  

 

Hotline: 0972.800.931 - 0938.838.404 (Mr Long)