Bộ Xử Lý Tín Hiệu Số DSP Là Gì? Phần 1: Sơ Lược Về DSP
Có thể bạn quan tâm
Bộ xử lý tín hiệu số DSP là gì? Phần 1: Sơ lược về DSP
Kể ra thì mình làm việc với DSP trong một khoảng thời gian khá dài – chắc phải 5 năm rồi – từ lúc học trong trường cho đến khi ra ngoài làm. Tuy nhiên, thật là buồn cười là lúc nào mình cũng tự hỏi DSP – rốt cục nhà ngươi – là cái gì?
Công việc bề bộn, lúc nào cũng phải code thật nhanh để kịp tiến độ. Thành ra cũng chưa có khi nào để tìm hiểu cụ thể xem DSP là cái gì và được thiết kế cho mục đích nào? Chỉ lờ mờ hiểu “Chắc nó là một loại vi xử lý tốc độ tính toán rất cao” mà thôi.
Gần đây, công việc thư thả, mình có một chút thời gian để tìm sách vở đọc thêm nhằm trả lời câu hỏi trên. Sau khi tìm hiểu, mình cũng thu được một số hiểu biết hay ho, nên mới viết bài này, vừa là để tổng hợp lại kiến thức vừa là chia sẻ với mọi người.
Nội dung bài viết chủ yếu được dịch từ tài liệu:
· DSP Software Development Techniques for Embedded and Real-Time Systems của Robert Oshana [1]
· TMS320F2812 Digital Signal Processor Implementation Tutorial, Texas Instrument [2]
Trong đó, tài liệu [1] có các chương 1,2,3,5 trình bày những nội dung mang tính chất tổng quan và phương pháp luận về DSP, cùng các hệ thống sử dụng DSP. Tài liệu [2] trình bày cụ thể về một DSP thuộc dòng C2000 của TI có tên TMS320F2812. Đây là DSP mà mình đã từng sử dụng khi còn học ở trường. Trong bài viết mình lấy nội dung trong tài liệu [1] làm cơ sở lý thuyết, qua đó mình sẽ tóm tắt lại các phần quan trọng, và sắp xếp lại theo ý hiểu của mình. Tài liệu [2] mình sẽ dùng để làm ví dụ minh họa cho một số kết luận trong tài liệu [1]. Từ đây, chuỗi bài viết hi vọng sẽ trả lởi được những câu hỏi sau:
ü DSP được thiết kế với mục đích nào, và cấu tạo ra sao để đáp ứng mục đích ấy ?
ü Khi nào thì ta sử dụng DSP vào ứng dụng của mình, những điểm nào cần lưu ý khi thiết kế một hệ thống nhúng sử dụng DSP ?
ü DSP có sự tương quan như thế nào với các chip xử lý khác trong thế giới các IC nhúng?
Do hạn chế về hiểu biết cũng như kinh nghiệm của người viết, bài viết chỉ mang tính chất là một bài giới thiệu tổng quan được dịch và tổng hợp từ các sách tham khảo, thay vì là một tài liệu chia sẻ kinh nghiệm làm việc cá nhân. Và cũng vì lý do này, mà có thể có những nội dung quan trọng, hoặc hay ho ở trong các tài liệu tham khảo mà người viết không dẫn ra vì không thật sự nắm được. Các bạn có thể đọc 2 tài liệu trên để hiểu được nội dung một cách đầy đủ hơn. Nếu bài viết có chỗ nào không hợp lý, mong các bạn đóng góp ý kiến để bài viết được hoàn thiện hơn ^_^.
Nào, bắt đầu nhé!
Sơ lược về bộ xử lý tín hiệu số – DSP
Khi nhắc đến bộ xử lý tín hiệu số DSP, một số bạn thường nghĩ đến một dòng vi xử lý cao cấp nào đó, được thiết kế cho những ứng dụng đòi hỏi tốc độ đáp ứng cao, các thao tác xử lý thông tin phức tạp. Tuy nhiên, khái niệm đó chưa hẳn là thật sự chính xác hoặc chưa lột tả được hết ý nghĩa của một bộ xử lý tín hiệu số. Vậy bộ xử lý tín hiệu số – DSP – thật sự là gì?
Giới thiệu về DSP
DSP thường chỉ một dòng vi xử lý đặc biệt, được thiết kế chuyên dụng cho lĩnh vực xử lý tín hiệu. Ở đây, từ ‘chuyên dụng’ có thể diễn tả một cách chính xác hơn từ ‘cao cấp’ khi đề cập đến DSP. Như trong tài liệu [1], tác giả định nghĩa: “DSP đơn giản là một loại vi xử lý đặc biệt. Chúng cũng có tất cả các bộ phận cơ bản như: CPU, bộ nhớ, tập lệnh, các bus … Điểm khác biệt chủ yếu là ở chỗ: các thành phần này được điều chỉnh nhằm thực hiện hiệu quả hơn một số thao tác nào đó. Ta sẽ phân tích chi tiết sau, nhưng sơ lược thì DSP sẽ có phần cứng và tập lệnh được tối ưu hóa, để phục vụ cho những ứng dụng xử lý số liệu và đáp ứng thời gian thực cho các tín hiệu tương tự từ môi trường.” ([1], tr. xi). Ở tài liệu [2], DSP cũng được định nghĩa tương tự “bộ xử lý tín hiệu số là một thiết bị đặc thù được thiết kế cho lĩnh vực thực thi các phép tính toán học để thao tác trên các dữ liệu số, những dữ liệu được truyền về từ sensor. Mục tiêu của sự chuyên biệt này là để quá trình xử lý dữ liệu diễn ra nhanh nhất có thể, từ đó đưa ra được chuỗi kết quả đáp ứng tính thời gian thực.” ([2], tr. 0-10).
Xin lấy lại ví dụ trong tài liệu [1] để minh họa cho định nghĩa này: “Chúng ta, những con người, cũng tương tự như vi xử lý (các bộ xử lý theo kinh nghiệm), được chuyên môn hóa để thực hiện tốt một công việc nhất định nào đó: kỹ sư, y tá, kế toán viên, … Chúng ta được đào tạo và giáo dục trong những môi trường xác định để hành nghề ấy một cách thật hiệu quả. Khi được chuyên môn hóa, chúng ta sẽ thực hiện những công việc này một cách chơn chu, tốn kém ít công sức hơn. Điều đó cũng không khác gì với thế giới các vi xử lý. Có tới hàng trăm vi xử lý để lựa chọn và mỗi nhóm trong đó sẽ được chuyên dụng cho một lĩnh vực nhất định. DSP là một vi xử lý chuyên dụng để thực hiện thao tác xử lý tín hiệu vô cùng hiệu quả. Cũng giống như vấn đề chuyên môn hóa nghề nghiệp, khi DSP được thiết kế cho lĩnh vực xử lý tín hiệu, chúng sẽ tiêu tốn ít năng lượng hơn để hoàn thành việc ấy. DSP, do đó, sẽ cần tới ít thời gian, năng lượng và tài nguyên hơn các bộ xử lý đa mục đích (general-purpose processor) khi thực thi các tác vụ xử lý tín hiệu”. ([1], tr. xi)
Tính đặc thù của một DSP
Vậy biểu hiện như thế nào thì một vi xử lý được coi như một DSP. Thông thường thì chúng phải thực hiện tốt 2 thứ sau:
ü Xử lý tốt các phép tính toán học: các vi xử lý này phải có khả năng thực hiện hàng triệu (hàng tỷ) lệnh nhân và cộng trên 1 giây. Đây là các phép toán được sử dụng rất nhiều trong các thuật toán xử lý tín hiệu.
ü Đáp ứng vấn đề thời gian thực: tính thời gian thực thể hiện ở sự khắt khe về mặt thời gian đáp ứng của hệ thống (xem thêm [4] tr. 6, [1] tr. xii, mình cũng đã viết một bài thảo luận về vấn đề này ở link số [7], các bạn quan tâm có thể vào đó để đọc và trao đổi thêm). Nói một cách ngắn gọn, đối với hệ xử lý tín hiệu số, tính thời gian thực quy định cụ thể thời gian thực thi của vi xử lý (từ khi trích mẫu tời khi đưa ra kết quả) phải nằm trong một khung thời gian cho trước. Khung thời gian này thường gắn với chu kỳ trích mẫu, nó phải nhỏ hơn ít nhất 2 lần tần số của tín hiệu mà vi xử lý thao tác. Nếu khung thời gian đó bị phá vỡ, hệ sẽ không đáp ứng thời gian thực.
Mặc dù khó có thể nói DSP là một vi xử lý tốc độ cao, do thời lượng thực thi phụ thuộc vào đối tượng mà DSP làm việc với. Có đối tượng có đặc tính nhanh như tín hiệu điện, điện từ … Có đối tượng có đặc tính chậm hơn như vận tốc, vị trí động cơ điện … Điều đó khác hẳn với các bộ xử lý đa mục đích tốc độ cao, cần có tần số xử lý nhanh vì phải thực hiện nhiều tác vụ, tương tác với nhiều đối tượng cùng một lúc. Tuy nhiên, việc bị giới hạn thời gian tính toán trong những khung thời gian xác định, cộng thêm khối lượng lớn các phép xử lý tín hiệu cần phải thực thi (các mạch vòng diều khiển đối với các thiết bị công suất, các thuật toán xử lý tín hiệu đối với các thiết bị thông tin, nghe nhìn, truyền thông …) cho thấy một cách rõ nét diện mạo của các DSP và lĩnh vực mà nó không thể bị thay thế.
Sự chuyên biệt của DSP trong hoạt động xử lý tín hiệu
Như ở trên, chúng ta đã nói nhiều tới sự chuyên biệt của DSP vào lĩnh vực xử lý tín hiệu. Vậy thì sự chuyên biệt này cụ thể là như thế nào? Trước hết chúng ta hãy đi từ các phép xử lý tín hiệu. Đây là các thuật toán được xây dựng để thao tác với dữ liệu số của tín hiệu, những dữ liệu được trích mẫu từ tín hiệu tương tự trong thế giới thực. Thuật toán xử lý tín hiệu được sử dụng để triết xuất một số thông tin nào đó bên trong quá trình thay đổi của tín hiệu, ví dụ như các thành phần tín hiệu ở tần số xác định với các bộ lọc số hay phổ tần số ở các phép phân tích phổ. Một số thuật toán xử lý tín hiệu tiêu biểu, thường xuyên được sử dụng nhất được liệt kê ở hình dưới.
DSP được thiết kế để thực hiện tối ưu các thuật toán này. Hãy khoan xem sét một cách chi tiết từng thuật toán, trước hết chúng ta thấy tất cả chúng đều có một điểm chung đó là các thuật toán đều được cấu thành từ các phép tính ‘tổng các tích’ SOP (Sum of Products). Đơn giản nhất, hãy quan sát bộ lọc số FIR, giá trị đầu ra y được tính dựa trên 2 mảng số liệu đầu vào a và x gồm M+1 phần tử. Kết quả có được bằng cách cộng tất cả tích của từng cặp a và x với nhau. DSP sẽ được tối ưu theo hướng này, tức được tối ưu để thực hiện các phép tính tổng các tích từ 2 mảng số liệu đầu vào.
Mình xin dẫn ra một vi dụ trong tài liệu [2] để minh họa cho sự tối ưu hơn của DSP trong phép tính tổng các tích so với các vi xử lý thông thường. Trong ví dụ này, ta sẽ quan sát kết quả biên dịch một đoạn chương trình tính tổng các tích đơn giản viết theo chuẩn ngôn ngữ C (ANSI-C) trên vi xử lý thông thường và trên DSP.
Như minh họa ở trên hình 3, phép tính tổng các tích được thực hiện với 2 mảng số liệu kích thước 1×4, mảng dữ liệu data và mảng hệ số coeff. Trong đó, phép tính tích của các phần từ trong mảng và cộng tích lũy được lặp lại 4 lần trong vòng lặp for.
Như quan sát ở trên hình 4, ta thấy quá trình thực hiện chương trình phải trải qua 10 bước. Với các vi xử lý thông thường, chúng chỉ có khả năng thực hiện lần lượt từng bước (chưa nói tới trường hợp một bước nào đó có thể tiêu tốn nhiều hơn một chu kỳ máy). Điều đó dẫn tới việc thực thi toàn bộ chương trình có thể gây tốn kém một lượng thời gian đáng kể. Trong ví dụ đơn giản này, bước 3 tới bước 10 được lặp lại 4 lần trong vòng lặp for. Tuy nhiên với các phép xử lý tín hiệu thực tế, phép tính tổng các tích này sẽ được lặp với số lượng thậm chí còn lớn hơn nhiều và vì thế vi xử lý thông thường sẽ còn tiêu tốn nhiều thời gian hơn nữa.
Trong 10 bước tính toán ở trên ta chú ý tới 6 bước quan trọng, từ bước 3 đến bước 8:
· Đọc dữ liệu data[i] từ bộ nhớ
· Đọc hệ số coeff[i] từ bộ nhớ
· Thực hiện lệnh nhân: data[i] * coeff[i]
· Cộng kết quả phép nhân vừa tính xong với kết quả phép tính trước
· Thay đổi nội dung con trỏ dữ liệu để trỏ tới dữ liệu tiếp theo (tức data[i+i])
· Thay đổi nội dung con trỏ hệ số để trỏ tới hệ số tiếp theo (tức coeff[i+i])
Sáu bước trên gọi là sáu bước cơ bản của các phép xử lý tín hiệu và đồng thời là 6 bước đặc trưng cho hoạt động DSP. Một DSP thông thường sẽ có khả năng thực hiện 6 bước cơ bản này chỉ trong một chu kỳ máy nhờ vào thiết kế phần cứng đặc biệt. Và cũng nhờ chức năng này, mà DSP sẽ giảm được một cách đáng kể thời gian thực thi chương trình cũng như tài nguyên bộ nhớ. Ta hãy quan sát kết quả biên dịch chương trình ở hình dưới:
Hãy khoan xem xét chi tiết từng dòng lệnh trong kết quả biên dịch ở hình trên. Một điểm dễ nhận thấy, là ở DSP số lệnh thực thi đã sụt giảm đáng kể so với vi xử lý thông thường, do đó giúp tiết kiệm không gian bộ nhớ và thời gian chạy chương trình. Chúng ta sẽ phân tích kỹ hơn ở phần sau, tuy nhiên có thể nhận thấy sự sụt giảm này có liên hệ trực tiếp tới khả năng thực hiện 6 bước cơ bản của phép tính SOP trong một chu kỳ máy bằng cấu trúc phần cứng đặc biệt. Cấu trúc phần cứng này đã giúp DSP tạo ra một bộ tập lệnh đặc biệt tương ứng, hạn chế thời gian phải thao tác cho CPU. Kết quả biên dịch này minh họa một cách trực quan những ưu việt của DSP trong các phép tính xử lý tín hiệu.
Vài nét đặc trưng trong cấu trúc phần cứng của DSP
Như ở trên ta đã đề cập đến cấu trúc phần cứng đặc biệt giúp DSP thực hiện các phép tính tổng các tích một cách nhanh chóng. Vậy cấu trúc phần cứng này đặc biệt như thế nào?
Trên hình minh họa quá trình tính tổng các tích trong bộ lọc FIR với 2 mảng hệ số a và x gồm 3 phần tử. Hình vẽ thể hiện quá trình thao tác dữ liệu dựa trên các phép nhân và cộng dồn từ 2 mảng số liệu trong bộ nhớ. Để tối ưu DSP cho phép tình này, người thiết kế thường phải tối ưu 2 thứ sau:
ü Tối ưu thời gian thực hiện phép tính tổng các tích SOP
ü Tối ưu thời gian truy cập bộ nhớ: bao gồm quá trình đọc lệnh từ bộ nhớ chương trình, quá trình đọc số liệu từ 2 bộ nhớ dữ liệu đầu vào (a, x) và quá trình ghi kết quả vào bộ nhớ đầu ra (y).
Có một nguyên tác chung cho việc tối ưu 2 vấn đề trên đó là: Phân chia nhiệm vụ thành các phần riêng lẻ và thực hiện song song. Như tác giả Oshana viết “Cấu trúc vốn có của thuật toán xử lý tín hiệu cho phép chúng có thể được phân chia riêng rẽ và thực hiện song song. Cũng như trong cuộc sống, ta sẽ hoàn thành được nhiều việc hơn trong cùng một khoảng thời gian nếu như biết thao tác đồng thời được nhiều thứ. Các thuật toán xử lý tín hiệu cho phép khả năng đó. Và ta có thể lợi dụng tính chất này để phân chia quá trình tính toán thành nhiều phần và thực hiện trên nhiều khối riêng lẻ nhằm khai thác năng lực xử lý song song” ([1] tr. xiii). Cũng tương tự như lập trình viên hay nhân viên văn phòng có thể thực hiện các thao tác: gõ bàn phím – nhìn màn hình – tư duy về nội dung một cách song song. Các DSP áp dụng triệt để nguyên tắc này để tối ưu quá trình thực hiện phép tính tổng các tích và truy xuất bộ nhớ của mình. Chúng ta sẽ xem sét cụ thể hơn một chút nhé.
Trước hết với phép tính tổng các tích, đây là công việc được sử dụng với tần suất rất cao. Để tối ưu cho phép tính này, DSP được trang bị một khối phần cứng đặc biệt gọi là khối nhân và tích lũy MAC (Multiply and Accumulate) cho phép chúng hoàn thành phép tính SOP chỉ trong một chu kỳ máy. Đây là khối phần cứng đặc trưng làm nên sự khác biệt của DSP so với các vi xử lý khác. Trước khi xem sét cụ thể hơn khối MAC này, ta quan sát lại phép tính tổng các tích, phép tính này nằm ở bước 3 và 4 ở 6 bước cơ bản của các thuật toán xử lý tín hiệu, chúng gồm một số thao tác sau:
· Nhân 2 số hạng đầu vào với nhau
· Cộng kết quả vừa tính được với kết quả phép tính SOP trước
· Lưu kết quả tính được cho lần tính tiếp theo
Các khối phần cứng nhân và tích lũy MAC cũng hoạt động theo nguyên tác như vậy. Chúng được thiết kết cho các biểu thức dạng: A = A + B*C ([6]). Chi tiết cấu tạo của một khối MAC ta sẽ xem sét ở sau, nhưng thông thường chúng sẽ có một bộ nhân một chu kỳ lệnh, một bộ cộng hoặc một bộ ALU làm chức năng cùa bộ cộng và các thanh ghi tích lũy (accumulator) để lưu giá trị tính toán (minh họa ở hình dưới). Trên thanh ghi tích lũy có đường hồi tiếp để đưa kết quả tính toán của phép tính SOP hiện tại làm đối số thứ 2 cho bộ cộng để thực hiện phép SOP tiếp theo. Cấu tạo cụ thể của khối MAC như minh họa ở hình dưới.
Các khối nhân, cộng và tích lũy trong MAC được sắp đặt nối tiếp vì vậy hoạt động nhân cộng sẽ được thực hiện bằng một lệnh đơn (thông thường là lệnh MAC). Kết quả này sẽ tiết kiệm một cách đáng kể các lệnh thực thi cho DSP và cho thấy sự ưu việt của DSP trong lĩnh vực tính toán xử lý tín hiệu (đã được minh họa qua ví dụ trên hình 5). Từ cấu tạo khối MAC, ta thấy từng phần của phép tính SOP (nhân, cộng, tích lũy) được thực hiện song song trên từng khối phần cứng, giúp DSP hoàn thành toàn bộ quá trình tính trong 1 chu kỳ lệnh.
Như vậy với khối MAC, DSP đã giải quyết xong vấn đề tối ưu thời gian tính toán. Với vấn để còn lại – tồi ưu quá trình truy xuất bộ nhớ như đã dẫn ở trên, kiến trúc DSP được thiết kế thỏa mãn một số đặc tính sau (ở đây xin chỉ giới thiệu):
ü Kiến trúc bộ nhớ cho phép đa truy cập trong một chu kỳ lệnh: kiến trúc Harvard nâng cao cho phép truy cập bộ nhớ dữ liệu, bộ nhớ chương trình cùng một thời điểm.
ü Trang bị nhiều bus đọc dữ liệu cho phép đọc 2 (hoặc nhiều hơn) toán hạng trong một chu kỳ lệnh. Bus đọc và bus ghi độc lập cho phép quá trình đọc dữ liệu và ghi kết quả diễn ra song song.
ü Hỗ trợ kiến trúc đường ống (pipeline) cho phép thực hiện toàn bộ lệnh trong một chu kỳ máy.
Một số khía cạnh khác về sự chuyên biệt của DSP trong ứng dụng xử lý tín hiệu
Như vậy mình đã hoàn thành giới thiệu những nét cơ bản của một bộ xử lý tín hiệu số DSP, nhằm trả lời cho câu hỏi DSP là gì? Qua đó chúng ta thấy rằng DSP đơn giản chỉ là một loại vi xử lý được thiết kế chuyên dụng cho lĩnh vực xử lý tín hiệu. Những ứng dụng trong lĩnh vực này thường gằn với các thiết bị nhúng xử lý tín hiệu thời gian thực. Nó đòi hỏi DSP một lúc phải đáp ứng hai điều kiện: Tính toán số lượng lớn các phép tính tổng các tích và phải hoàn thành trong những khung thời gian định trước. Điều đó dẫn đến DSP phải có một cấu trúc phần cứng và tập lệnh đặc biệt để hoàn thành các phép tính xử lý tín hiệu càng nhanh càng tốt. Tính đặc biệt này được các nhà thiết kế DSP giải quyết bằng cách phân chia quá trình tình toán để thực hiện đồng thời trên các bộ phận phần cứng riêng lẻ nhằm khai thác năng lực xử lý song song. Các khối phần cứng ấy làm nên những điểm đặc trưng không thể nhầm lẫn của DSP với các vi xử lý thông thường khác. Nổi bật nhất là ở khối nhân cộng tích lũy MAC chuyên dụng cho các phép tính SOP và hệ thông bus băng thông rộng phục vụ quá trình tính toán.
Nếu nói tính chuyên biệt của DSP trong lĩnh vực xử lý tín hiệu thể hiện cả ở những ưu việt trên cấu trúc phần cứng thì có lẽ chưa đầy đủ và chưa thực sự chính xác. Giống như khi ta nói đặc trưng trong ẩm thực phương đông là dùng đũa, khác với phương tây họ dùng thìa, dĩa. Tuy nhiên, chỉ với một chiếc đũa, chúng ta vẫn không thể ăn cơm được mà đương nhiên phải lấy thêm một chiếc nữa. Cũng như vậy, tính ưu việt của phần cứng DSP trong xử lý tín hiệu chưa nói hết những điểm đặc biệt của DSP. Để thấy vấn đề một cách hoàn thiện và đúng đắn hơn thì vẫn còn một số khía cạnh phải bàn thêm xung quanh vấn đề ấy. Ở đây mình xin giới thiệu thêm 2 khía cạnh, đó là: sự chuyên biệt của DSP trên cả phần mềm cùng môi trường phát triển đi kèm, và những ‘mặt trái’ của vấn đề chuyên dụng trong lĩnh vực xử lý tín hiệu của DSP.
DSP được thiết kế cho lĩnh vực xử lý tín hiệu thời gian thực, nên đương nhiên không chỉ phần cứng mà phần mềm cũng được phát triển để tối ưu cho hoạt động này. Trong đó trình biên dịch cùng hệ thống thư viện cũng được thiết kế theo hướng tạo ra các đoạn mã tối ưu với nền phần cứng DSP tương ứng từ ngôn ngữ lập trình cấp cao như C hay C++. Đồng thời, các chương trình viết trên DSP cũng phải đáp ứng tính tiền định và thời gian thực. Tức, chúng sẽ trích mẫu tại một thời điểm xác định, tính toán và đẩy kết quả ra trong một khung thời gian xác định. Toàn bộ chương trình thông thường chỉ phục vụ một ngắt chính quy định bởi hệ thống và lấy nó làm mức ưu tiên cao nhất. Chương trình trên DSP cũng như trên các ứng dụng thời gian thực, không chấp nhận hoặc không ưu tiên các ngắt bất thường, các sự kiện ngẫu nhiên có thể xảy ra và ảnh hường tới thời lượng tính toán của DSP khiến chúng không đáp ứng được khung thời gian của mình.
Khía cạnh còn lại mà mình muốn giới thiệu đó là ‘mặt trái’ của DSP. Khi DSP được tích hợp thêm các khối phần cứng giúp gia tăng năng lực tính toán, ta có xu hướng nghĩ rằng chắc hẳn DSP sẽ cao cấp hơn hẳn các vi xử lý khác. Tuy nhiên, ưu điểm thường đi liền với khuyết điểm, như 2 mặt của một … bàn chân. Mặt này trắng thì mặt kia đen. Vậy nhược điểm của DSP là gì? Để tránh mang tiếng là nói xấu, mình xin dẫn lại những gì mà tác giả Oshana viết: “Chuyên dụng là tất cả những gì có thể dùng để mô tả về DSP, những thiết bị được thiết kế chuyên cho các hoạt động xử lý tín hiệu một cách hiệu quả. DSP sẽ không bằng các vi xử lý khác khi đối đầu với những thuật toán chẳng liên quan gì đến xử lý tín hiệu (điều đó cũng bình thường thôi, tôi cũng chẳng biết gì về y khoa). Vì vậy điều quan trọng là bạn phải hiểu ứng dụng của mình và lựa chọn vi xử lý phù hợp.
Với toàn bộ những tập lệnh đặc biệt, các khối xử lý song song và những thứ khác được tối ưu cho các thuật toán xử lý tín hiệu, DSP sẽ không còn lại nhiều không gian để thực hiện tối ưu vào chức năng đa mục đích khác. Các bộ xử lý đa mục đích được trang bị các khối logic tối ưu khác, ví dụ như dự đoán phân nhánh (branch prediction) và thực hiện suy đoán (speculative execution) giúp nâng cao năng lực làm việc trong một số ứng dụng cụ thể. Tuy nhiên, sự tối ưu này thường vô dụng với các ứng dụng xử lý tính hiệu. Ví dụ như khối dự đoán phân nhánh (branch prediction) sẽ hoạt động rất tốt trong các ứng dụng có nhiều nhánh chương trình. Nhưng chương trình trên DSP thường không có nhiều nhánh như thế. Các đoạn code viết trên DSP thường là các hàm được xác định rất rõ ràng, rằng chúng sẽ được thực thi mỗi khi có một sự kiện kích hoạt, chứ không phải là máy trạng thái phức tạp cần đến nhiều khối logic phân nhánh” ([1] tr. xiv)
V0.0 27/02/2017
Thanh Phong dịch
Tài liệu tham khảo
[1] Robert Oshana, DSP Software Development Techniques for Embedded and Real-Time Systems, Newnes, 2006
[2] Texas Instrument, TMS320F2812 Digital Signal Processer Implementation Tutorial
[3] Nguyễn Phùng Quang, Điều khiển tự động truyền động điện xoay chiều ba pha, NXB Giáo Dục. Chương 10: Thực hiện hệ thống trên cơ sở dùng vi xử lý tín hiệu (Digital Signal Processor) kiểu TMS 320C20/25
[4] TS. Lưu Hồng Việt, Tài liệu tóm tắt bài giảng hệ thống điều khiển nhúng, Trường Đại học Bách khoa Hà Nội, Bộ môn Điều khiển tự động.
[5] Phil Lapsley, Jeff Bier, Amit Shoham, Edward A. Lee, DSP Processor Fundamentals, Architectures and Features, Wiley-IEEE Press
[6] Wikipedia, Multiply–accumulate operation
https://en.wikipedia.org/wiki/Multiply%E2%80%93accumulate_operation#Fused_multiply.E2.80.93add
[7] Thanh Phong, , Nói chuyện về hệ thời gian thực – Phần 2: Phác thảo
https://thanhphonglab.wordpress.com/2017/05/05/noi-chuyen-ve-he-thoi-gian-thuc-phan-2-phac-thao/
Đường dẫn để tải các tài liệu tham khảo: (1, 2, 4, 5)
Từ khóa » Tìm Hiểu Về Dsp
-
Bộ Xử Lý Tín Hiệu DSP Là Gì? Ứng Dụng Của Bộ Xử ... - Điện Máy XANH
-
DSP Là Gì? Những điều Cần Biết Của Bộ Xử Lý Tín Hiệu DSP
-
DSP Là Gì? DSP Có Chức Năng Như Thế Nào Trong âm Thanh ô Tô?
-
Phần 6: Bộ Xử Lý Tín Hiệu Số (DSP)
-
Bộ Xử Lý Tín Hiệu DSP Là Gì? - Việt Thương Music
-
Bộ Xử Lý Tín Hiệu Số DSP Là Gì? Phần 2: Phân Loại DSP Và Các Hệ ...
-
Bộ Xử Lý Tín Hiệu Số DSP Là Gì? - Chuyên Cung Cấp, Tư Vấn, Lắp đặt ...
-
DSP Là Gì? Những điều Về DSP Bạn Nhất định Phải Biết - MarketingAI
-
Dsp Là Gì? Đặc điểm Của Bộ Xử Lý Tín Hiệu Số DSP Là Gì?
-
Bộ Xử Lý Tín Hiệu DSP Là Gì? Ứng Dụng Của Bộ Xử Lý âm ...
-
Xử Lý Tín Hiệu Số – Wikipedia Tiếng Việt
-
DSP Là Gì? Ứng Dụng Tuyệt Vời Của DSP Trong Hiệu Chỉnh âm Thanh
-
DSP Là Gì? DSP Có Chức Năng Như Thế Nào Trong âm Thanh
-
Bộ Xử Lý âm Thanh DSP ô Tô Là Gì?