Điều gì xảy ra khi một GPU được bật và không được cấu hình?


10

Tôi đang cố gắng để có được sự hiểu biết chung về những gì sẽ xảy ra nếu bạn để một chương trình không được lập trình trong một thời gian dài.

Giả sử bạn có một FPGA và bạn để nó không được lập trình trong một khoảng thời gian dài (vài phút đến vài giờ sau khi bật nguồn), tức là không có dòng bit trên nó, điều này có tệ cho thiết bị không? Bạn có nên có một số dòng bit trên một GPU được hỗ trợ mọi lúc không? Ý kiến ​​chung về vấn đề này là gì?

Kết quả có khác nhau trên các thiết bị hoặc nhà sản xuất khác nhau (Xilinx so với Altera so với các thiết bị khác) không?


Thông tin bổ sung:

Tôi có một bảng SoC tùy chỉnh sử dụng một Xilinx Virtex-6 FPGA. Tôi cũng có một chiếc Xilinx ML605 mà tôi sử dụng cho mục đích tham khảo.

Bảng tùy chỉnh: Tôi bật nguồn lên bảng. Tôi nhận thấy rằng tôi có một khoảng thời gian ngắn để lập trình nó bằng XMD (Trình gỡ lỗi vi xử lý Xilinx). Nếu tôi mất cửa sổ 20-30 giây, tôi phải tắt và bật bảng trước khi thử lại. Điều này không xảy ra với ML605.

Khi tôi cố gắng lập trình bảng tùy chỉnh qua XMD, tôi nhận được một cái gì đó như:

Error: Device Reset by JPROGRAM command, failed. INIT_COMPLETE did not go high.

Cho tôi biết bạn nghĩ gì.


1
Bạn nhấn mạnh trong câu hỏi của bạn và trong phần chỉnh sửa của bạn "khoảng thời gian dài". Nó thực sự quan trọng nếu nó một vài giây hoặc một vài giờ? Tôi không nghĩ nó làm ..
m.Alin

Tôi đang thấy một hiện tượng trên một bảng đồ họa tùy chỉnh nơi tôi có một cửa sổ lập trình 20-30 giây. Nếu tôi không lập trình trong cửa sổ này, tôi không thể lập trình thành công. Chủ đề chính của câu hỏi của tôi không phải là khoảng thời gian mà là để hiểu về hiện tượng này.
boffin

Bạn có thể kết nối với thiết bị không? Hay nó chỉ thất bại khi bạn cố gắng lập trình? Các lập trình viên đang đưa ra lỗi là gì?
embedded.kyle

1
Bạn đang lập trình trực tiếp cho FPGA thông qua JTAG, hay bạn đang tải chip Flash trước và sau đó để cho cấu hình của FPGA thông qua đó?
ajs410

@fpga_boffin, bạn có thể thêm những chi tiết đó vào câu hỏi của bạn không?
Jon L

Câu trả lời:


7

Đây là một câu hỏi thú vị. Từ kinh nghiệm cá nhân, tôi đã để các GPU được cấp nguồn trong nhiều giờ ở trạng thái không được lập trình trong khi thực hiện kiểm tra trên phần còn lại của mạch khi có một bo mạch mới từ nhà lắp ráp. Tôi đã không nhận thấy bất kỳ tác động bất lợi nào từ việc đó. Nhưng thật lòng tôi chưa bao giờ nghĩ về nó.

Tôi nhìn xung quanh để thử và tìm một lời khuyên từ một nhà sản xuất đồ họa nhưng không thể tìm thấy. Tuyên bố duy nhất tôi tìm thấy liên quan đến trạng thái này là từ một whitepaper của Lattice và liên quan đến thiết kế của chính bản đồ chứ không phải cách sử dụng nó:

Tiêu thụ năng lượng thiết bị tĩnh tĩnh được lập trình sẵn là lượng điện năng tiêu thụ của FPGA trước khi thiết bị được lập trình. Đối với mức tiêu thụ năng lượng của thiết bị không hoạt động, FPGA ở trạng thái không được lập trình, nhưng vẫn được cấp nguồn. Điều quan trọng là thiết bị không tiêu thụ năng lượng đáng kể trong thời gian này, vì về mặt khái niệm, thiết bị FPGA có thể tiêu thụ quá nhiều năng lượng và có khả năng tắt nguồn cung cấp năng lượng, ngăn bo mạch khởi động thành công chính nó và hệ thống.
Do đó, nhà cung cấp công nghệ đồ họa phải thiết kế cẩn thận các bóng bán dẫn có 3 Thiết kế tĩnh cho công suất thấp Giấy trắng bán dẫn A, mà không ảnh hưởng đến các khu vực yêu cầu hiệu suất cao hơn (ví dụ I / O và SERDES)

Xilinx cũng đề cập đến dòng điện tĩnh là gì để bạn có thể thiết kế bộ nguồn phù hợp. Nhưng không đề cập đến những ảnh hưởng trên thiết bị là gì khi để nó ở trạng thái như vậy:

Công suất tĩnh hoặc tĩnh chủ yếu bị chi phối bởi dòng rò của bóng bán dẫn. Khi dòng điện này được liệt kê trong các bảng dữ liệu, nó được liệt kê là ICCINTQ và là dòng điện được rút ra thông qua nguồn cung cấp VCCINT cung cấp năng lượng cho lõi FPGA.

Tôi sẽ rất thích thú khi biết có ai từng bị hư hỏng thiết bị khi để thiết bị ở trạng thái không hoạt động. Nhưng tôi nghĩ miễn là nguồn cung cấp điện phù hợp với thiết bị, sẽ không có vấn đề gì.


6

Tôi đang tham khảo bảng dữ liệu Spartan 3 , vì đó là bản đồ tôi quen thuộc nhất.

Nếu bạn xem chương 2 (Mô tả chức năng), phần "Cấu hình" có một sơ đồ dòng. Hình 27 (trang 50) hiển thị sơ đồ luồng để tải từ Flash. Hình 28 cho thấy sơ đồ luồng JTAG.

Đây là một bản tóm tắt ngắn gọn.

1) Đợi Vccint, Vccaux và Vcco đạt mức yêu cầu.

2) Xóa chốt cấu hình

3) Đợi INIT_B lên cao. INIT_B là một đầu ra cống mở mà một chủ bên ngoài có thể giữ ở mức thấp để trì hoãn cấu hình.

4) Chân chế độ mẫu. Điều này xác định xem bạn sẽ tải thông qua JTAG hay Flash, và nếu Flash cho dù là FPGA hay Flash là Master.

5) Tải khung dữ liệu cấu hình.

6) Xác minh rằng CRC cho các khung dữ liệu là chính xác. Nếu nó không chính xác, thì FPGA sẽ điều khiển INIT_B ở mức thấp để chỉ ra lỗi CRC và nó sẽ hủy bỏ khởi động.

Bước 5 có lẽ là nơi câu hỏi thực sự của bạn - điều gì xảy ra nếu không có gì để tải từ đó? Vâng, bạn không nên lấy sang Bước 5 nếu bạn đang làm điều đúng. Chip Flash sẽ giữ INIT_B ở mức thấp cho đến khi nó sẵn sàng cung cấp dữ liệu cho FPGA. Nếu bạn đang sử dụng JTAG, thì tôi không chắc liệu lập trình viên JTAG của bạn có giữ INIT_B ở mức thấp hay không, nhưng khi nó đi đến lập trình thì nó gần như chắc chắn sẽ khẳng định PROG_B (bằng cách lái nó ở mức thấp), điều này khiến cho FPGA quay trở lại đến bước 2.

Nếu tôi là bạn, tôi sẽ đặt tín hiệu INIT_B trong khi bật nguồn để xem điều gì đang xảy ra. Nếu nó bắt đầu thấp, lên cao và sau đó xuống thấp trở lại, thì FPGA đã hủy bỏ trình tự khởi động và có lẽ bạn sẽ cần phải xác nhận PROG_B để thiết lập lại FPGA.


Câu trả lời của bạn không nói gì về trạng thái bên trong của FPGA trước bước 5, đó là điều OP muốn biết.
stevenvh

Bước 2. Xóa chốt cấu hình. Bước 3, chờ INIT_B. Tôi cũng thảo luận về loại quyết định nào mà FPGA có thể đưa ra bất cứ khi nào nó thấy không có dữ liệu cấu hình để tải (INIT_B xuống thấp để chỉ ra lỗi CRC).
ajs410

1
Tôi xin lỗi, bảng dữ liệu tôi đã tham khảo vào khoảng năm 2005 và nó đã được cập nhật vào năm 2009. Tuy nhiên, nếu bạn thực sự đọc bình luận của tôi kỹ lưỡng, bạn sẽ có thể tìm thấy nó. Chương 2, Mô tả chức năng, dưới tiêu đề Cấu hình. Liên kết đã được cập nhật để trỏ đến biểu dữ liệu mới nhất, cũng như số trang mới.
ajs410

0

Cấu hình mặc định được thiết kế ở mức thụ động nhất có thể để làm cho thiết bị có thể sử dụng được trên toàn cầu.

Đối với loạt Bão Altera (mà tôi có nhiều kinh nghiệm nhất), điều này có nghĩa là

  • các chân I / O được kéo lên tới VCCIO một cách yếu ớt (để giữ các IC có chip kích hoạt ở mức thấp hoạt động khỏi bus),
  • đầu ra CONF_DONE bị kéo xuống thấp (bạn có thể kết nối nó với chân thiết lập lại của các IC khác để giữ chúng ở lại cho đến khi cấu hình được tải cũng như khôi phục chúng về trạng thái đã biết khi cấu hình lại)
  • đầu vào đồng hồ không được chuyển tiếp đến các mạng đồng hồ.

Các loại đồ họa khác phải tương tự nhau và cung cấp các đầu ra không đảo và đảo ngược cho biết trạng thái cấu hình với phần còn lại của bo mạch.

Để thiết bị ở trạng thái đó là vô hại, vì lõi khá tách biệt với thế giới bên ngoài và chỉ có các thiết bị kéo có thể có dòng điện nhỏ trên chú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.