Hãy đọc lướt qua, hoặc bỏ qua đến cuối. Tôi nhận ra tôi đã đi một chút!
Nói chung, bạn sẽ không sử dụng bộ xử lý mềm để thay thế công cụ DSP. Phần cứng chuyên dụng thường có thể xử lý khối lượng dữ liệu cao hơn nhanh hơn vì bạn sẽ thiết kế nó để thực hiện một nhiệm vụ cụ thể rất tốt, thay vì là CPU có mục đích chung.
Nơi bộ xử lý mềm đi vào yếu tố của họ là kiểm soát và phối hợp.
Nếu bạn thiết kế một hệ thống cần xử lý một khối lượng dữ liệu lớn, giả sử thu được hình ảnh tốc độ khung hình cao, thì không thể sử dụng bộ xử lý lõi mềm để xử lý tất cả dữ liệu, đơn giản là sẽ có quá nhiều chi phí trong CPU. Những gì bạn sẽ làm là thiết kế phần sụn chuyên dụng để thực hiện tác vụ thu thập cụ thể cần thiết (ví dụ: lọc dữ liệu, lưu trữ vào bộ nhớ, v.v.).
Tuy nhiên, bạn vẫn cần một số cách hướng dẫn khi nào nên thực hiện - khi nào bạn muốn chụp, thiết bị đã được hướng dẫn giảm tải dữ liệu, v.v. Những điều này không dễ thực hiện trong phần cứng chuyên dụng, không phải nếu có chuỗi các sự kiện với đầu vào của người dùng, về cơ bản là các nhiệm vụ không làm đi làm lại nhiều lần. Trong trường hợp này, bạn sẽ sử dụng bộ xử lý lõi mềm vì việc viết mã thủ tục cho một số tác vụ dễ dàng hơn nhiều.
Một ví dụ khác (thực tế), tôi đã làm việc trên một hệ thống thu nhận siêu âm truyền dữ liệu qua PCIe. Các tác vụ mà nó thực hiện được truyền đạt từ người dùng và các phần khác nhau của hệ thống cần cấu hình. Sự phối hợp của hệ thống không đòi hỏi khối lượng dữ liệu lớn mà thay vào đó cần sự linh hoạt, do đó, nó rất phù hợp với CPU lõi mềm được lập trình trong trường hợp này C. Để làm điều tương tự trong phần cứng vật lý sẽ cần một lượng lớn tài nguyên hầu hết trong số đó sẽ được sử dụng không thường xuyên nên sẽ không có lợi ích gì so với CPU.
Điều đáng chú ý là một số tác vụ có thể thay đổi tùy thuộc vào đầu vào của người dùng, nhưng vẫn tốt hơn trong phần cứng chuyên dụng. Trong thực tế, một phần của mã (lập trình bộ điều khiển DMA để lưu trữ dữ liệu khi kích hoạt) ban đầu được thực hiện trong CPU trong khoảng 15 dòng mã, nhưng vì bit đó cần được thực hiện ngay khi xảy ra kích hoạt, sử dụng CPU có thể là bận rộn với những thứ khác là không lý tưởng. Thay vào đó, tác vụ được lập trình thành một mô-đun Verilog, nhưng trong quá trình đó trở thành một cỗ máy trạng thái 500 dòng khổng lồ với khoảng 15 trạng thái và toàn bộ khối logic hỗ trợ - thực sự không có. Nhưng mặc dù nó sử dụng nhiều tài nguyên hơn, nó rất quan trọng về thời gian, vì vậy nó là một điều cần thiết.
Tương tự, tôi cần tạo trình kích hoạt chính xác theo chu kỳ xung nhịp, vì vậy một mô-đun để thực hiện tác vụ đó là một phần của hệ thống chứ không phải thực hiện trong CPU. Cả lõi này và lõi ở trên là những ví dụ về cách bạn có thể sử dụng CPU để thực hiện một số tác vụ, nhưng đối với những phần quan trọng khác, bạn có thể phát triển phần cứng để bổ sung cho CPU - giống như cách bạn có bộ định thời, v.v. trong vi điều khiển.
Vì vậy, để tóm tắt:
FPGA là công cụ linh hoạt tuyệt vời, nhưng hầu hết các thiết kế cần sự kết hợp của CPU lõi mềm, mô-đun cấu hình (ví dụ: bộ định thời) và phần cứng đơn nhiệm vụ chuyên dụng.
CPU rất tốt cho sự tương tác của người dùng, kiểm soát thứ tự các sự kiện, cấu hình bộ điều khiển. Họ giống như người điều phối, bộ não.
Một số thiết kế có thể cần thực hiện một số tác vụ khá lặp đi lặp lại có thể được cấu hình để phù hợp với các đầu vào khác nhau - mô-đun hẹn giờ, hiển thị ký tự, gỡ nút, v.v. Chúng có thể dễ dàng thực hiện với CPU, nhưng nếu bạn muốn thực hiện một vài trong số chúng một cách chính xác một khi nó trở nên khó khăn hơn - họ đang chia sẻ cùng một tài nguyên CPU. Vì vậy, những gì bạn có thể làm là chuyển chúng vào phần cứng chuyên dụng được kết nối chặt chẽ với CPU - tạo cơ hội cho CPU thực hiện các tác vụ khác. Những thứ này giúp CPU thực hiện công việc của nó và tương tác với môi trường xung quanh, giống như các giác quan của nó.
DSP chuyên dụng, truyền dữ liệu (DMA) - về cơ bản là bất kỳ nhiệm vụ nào sẽ làm điều tương tự lặp đi lặp lại ở tốc độ cao - thực sự có thể hưởng lợi từ logic chuyên dụng về tốc độ và cũng có thể là sức mạnh. Đây là giống như các cơ của thiết bị, làm tất cả các nâng nặng.
Bạn sẽ phải bào chữa cho việc lan man một chút, nhưng tôi thích lĩnh vực EE này. Hy vọng những điều trên là dễ hiểu và cung cấp cho bạn một cái nhìn sâu sắc hơn về thế giới tuyệt vời của các GPU.