Các ứng dụng điển hình cho bộ xử lý mềm như MicroBlaze là gì?


8

Tôi biết rằng sự kết hợp FPGA-DSP thường được sử dụng cho điện tử công suất cao / siêu âm / MRI / vv. Liệu bộ xử lý mềm có thể thay thế hoàn toàn DSP ngay cả trên các GPU cấp thấp hơn như Spartan 3/6 không?

Đã thêm: lý do nào để có nhiều bộ xử lý nhẹ trong một FPGA?


Về cơ bản, phụ thuộc vào mức độ chuyên sâu của ứng dụng DSP.
Fizz

Các winmodem đáng ghét xuất hiện trong tâm trí, mặc dù ở đó bạn có một CPU có mục đích chung làm DSPing.
Fizz

Rõ ràng bạn có thể thực hiện radio được xác định bằng phần mềm trên Virtex 5 và cả trên Altera Stratix .
Fizz

Và rõ ràng một số người đã thử điều đó trên Spartan 6 LX45. Bạn có ứng dụng gì trong tâm trí?
Fizz

Vấn đề chính mà tôi thấy trong luồng đó là phần mềm Vivado hữu ích (dựa trên PC) hoạt động để tạo bộ lọc, v.v. cho Virtex không cho phép bạn nhắm mục tiêu Spartan. Tôi không chắc đó chỉ là quyết định tiếp thị [phân khúc] hay phần cứng Spartan quá thấp.
Fizz

Câu trả lời:


11

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.


@tcrosley Tôi đưa ra quan điểm của bạn, nhưng nếu nói rằng bạn muốn thêm hai số 128 bit trên bộ xử lý 32 bit thì sẽ mất vài chu kỳ. Sự nhấn mạnh là một sức mạnh . Nhưng trong thực tế, nó hoàn toàn phụ thuộc vào những gì bạn đang làm nói chung. Nếu tất cả những gì bạn muốn làm là bổ sung, thì việc có toàn bộ CPU sẽ là vô nghĩa trong một đồ họa - chỉ cần khởi tạo một bộ cộng. Vì vậy, tôi nghĩ rằng tôi sẽ loại bỏ bit đó.
Tom Carpenter

1

Như Tom đã đề cập, MicroBlaze không phải là vấn đề thay thế DSP, mà là thay thế một bộ vi điều khiển truyền thống có thể có trên bo mạch.

Điều này là do lõi bộ xử lý mềm MicroBlaze không phải là sự thay thế đặc biệt tốt cho DSP vì nó thiếu các tính năng DSP đặc biệt như lệnh MAC (nhân và tích lũy), bộ đệm tròn, địa chỉ đảo ngược bit và logic bão hòa.

Vì vậy, một lõi mềm DSP riêng biệt, như lõi được mô tả trong bài viết này cho Xilinx Virtex-4, sẽ là lựa chọn tốt hơn.

Nhiều thiết kế DSP sẽ được hưởng lợi từ việc có cả hai lõi mềm, vì nhiều thiết bị kỹ thuật số bao gồm cả một bộ vi xử lý cũng không cần một bộ vi điều khiển chung. Miễn là có đủ tài nguyên có sẵn trong FPGA (xem bên dưới), các bộ xử lý mềm như MicroBlaze không chỉ loại bỏ một phần trong BOM (và tất nhiên là chi phí liên quan của nó), mà còn giải phóng các chân trên FPGA kể từ khi có không cần kết nối giữa các vi điều khiển và vi điều khiển. Không gian cần thiết cho dấu vết giữa hai phần cũng được giải phóng.

MicroBlaze có thể chạy ở 210 MHz trên Virtex-5. Các phiên bản có MMU có thể chạy Linux. Một MicroBlaze tối thiểu cần khoảng 600 LUT và có thể tăng lên tới 4000 nếu thêm một FPU, MMU, bộ nhớ cache và các tính năng khác. Bộ xử lý mềm DSP được đề cập ở trên đã sử dụng 1700 LUT.

Vì một Virtext-5 FPGA có thể có từ 30.000 đến hơn 200.000 LUT, thậm chí bao gồm cả hai lõi mềm này chỉ chiếm một phần nhỏ của chip. Kết hợp cả hai cho phép cả hai hoạt động thông thường và DSP diễn ra song song, nếu muốn, với chi phí của một số phức tạp được thêm vào để đồng bộ hóa giữa hai.

IP cho MicroBlaze là miễn phí miễn là bạn sử dụng nó trên Xilinx FPGA và đã cấp phép cho ISE Design Suite Embedded Edition (hoặc tương đương).

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.