Logo Xilinx

Hướng dẫn ước tính hiệu suất Xilinx DDR2 MIG 7

Xilinx_DDR2_MIG_7_Sản phẩm-Ước tính-Hiệu suất

Lưu ý quan trọng: Bản PDF có thể tải xuống này của Bản ghi Trả lời được cung cấp để nâng cao khả năng sử dụng và khả năng đọc của nó. Điều quan trọng cần lưu ý là Hồ sơ trả lời được Web-dựa trên nội dung được cập nhật thường xuyên khi có thông tin mới. Bạn được nhắc truy cập Hỗ trợ kỹ thuật của Xilinx Webtrang web và lạiview (Câu trả lời Xilinx 63234) để có phiên bản mới nhất của Câu trả lời này.

Giới thiệu

Do cách kiến ​​trúc bộ nhớ DDR2 và DDR3 và bộ điều khiển sê-ri MIG 7 được thiết kế nên hiệu suất không phải là dễ dàng.
Nó đòi hỏi sự hiểu biết về các tham số Thời gian Jedec khác nhau và Kiến trúc bộ điều khiển, và bạn sẽ cần chạy mô phỏng để có được các ước tính.
Nguyên tắc chung để xác định hiệu suất là giống nhau nhưng tài liệu này cung cấp một cách dễ dàng để đạt được hiệu quả bằng cách sử dụng MIG cũ.ampthiết kế le với sự trợ giúp của băng ghế thử nghiệm và kích thích fileđược đính kèm ở đây.

Băng thông hiệu quả

Bus dữ liệu DRAM chỉ đạt được băng thông gần đỉnh trong các đợt đọc và ghi và chi phí hoạt động của nó làm giảm tốc độ dữ liệu hiệu quả.
Một vài ví dụamples của chi phí là:

  • tính trước thời gian truy cập các hàng trong cùng một ngân hàng (Địa chỉ truy cập không cùng hàng-trang lần truy cập)
  • thời gian khôi phục ghi để thay đổi từ quyền ghi sang quyền đọc
  • thời gian quay vòng xe buýt để thay đổi từ truy cập đọc sang ghi

Ước tính hiệu suất Xilinx DDR2 MIG 7-fig-28
Băng thông hiệu quả = Băng thông cao nhất * Hiệu quả 

Thế hệ thiết kế MIG

Tham khảo UG586 Chương 1 để biết chi tiết từng bước về MIG IP và exampthế hệ thiết kế le.
Trước khi chạy mô phỏng hiệu suất Sê-ri MIG 7, hãy làm như sau để đảm bảo môi trường mô phỏng của bạn hoạt động tốt. Mở MIG cũamptập tin thiết kế và lập bản đồ các thư viện thích hợp, chạy mô phỏng và đảm bảo rằng bạn có thể thấy thông báo "bài kiểm tra đã đạt" trong bảng điểm.
Để chứng minh quy trình, tôi đã tạo MIG IP cho xc7vx690tffg1761-2 và gọi exampthiết kế le.
Hai điều cần lưu ý là bit địa chỉ bộ nhớ và lựa chọn ánh xạ địa chỉ bộ nhớ.
Ví dụample, Tôi đã chọn MT41J128M8XX-125 trong tùy chọn thả xuống phần bộ nhớ.Xilinx DDR2 MIG-7-Hiệu suất-Ước tính-fig-1

Đối với phần bộ nhớ đã chọn từ Hình-1, hàng = 14, cột = 10 và dãy = 3, vì vậy app_addr_width = hàng + cột + dãy + thứ hạng = 28 Ước tính hiệu suất Xilinx DDR2 MIG 7-fig-2

Bạn có thể chọn Cột BANK_ROW_COLUMN hoặc ROW BANK.
Tôi đã để lại Cột ROW BANK là ánh xạ địa chỉ mặc định.

Exampthiết kế le Mô phỏng với băng thử nghiệm tổng hợp

Trong cài đặt Mô phỏng, chọn Trình mô phỏng QuestaSim/ModelSim và duyệt đến vị trí của thư viện đã biên dịch.
Để biết chi tiết về cách trỏ đến đường dẫn cài đặt công cụ của bên thứ ba, chọn trình giả lập mục tiêu, biên dịch và lập bản đồ thư viện, bạn có thể tham khảo (UG900) Hướng dẫn sử dụng Vivado Design Suite Mô phỏng logicƯớc tính hiệu suất Xilinx DDR2 MIG 7-fig-3

Chạy mô phỏng thông qua GUI (Nhấp vào tab Chạy Mô phỏng trong trình quản lý dự án) và đảm bảo rằng bạn thấy thông báo “kiểm tra đã đạt” trong bảng điểm.

Mô phỏng hiệu suất Sửa đổi RTL

  1. Nhấp chuột phải vào tab nguồn, chọn “thêm hoặc tạo nguồn mô phỏng” và duyệt đến mig7_perfsim_traffic_generator.sv file và nhấp vào kết thúc để thêm nó.
  2. Nhấp chuột phải vào tab nguồn, chọn “thêm hoặc tạo nguồn mô phỏng”, duyệt đến perfsim_stimulus.txt và nhấp vào kết thúc để thêm nguồn.
  3. Nhận xét về người yêu cũampkhởi tạo le_top trong sim_tb_top.v file.
  4. Thêm các dòng RTL bên dưới vào sim_tb_top,v
  • thông số địa phương APP_ADDR_WIDTH = 28;
  • thông số cục bộ APP_DATA_WIDTH = 64;
  • localparam APP_MASK_WIDTH = APP_DATA_WIDTH/8;
  • localparam MEM_ADDR_ORDER = “BANK_ROW_COLUMN”;
  • thông số địa phương NGÂN HÀNG_WIDTH = 3;
  • thông số địa phương RANK_WIDTH = 1;
  • dây [APP_ADDR_WIDTH-1:0] c0_ddr3_app_addr;
  • dây [2:0] c0_ddr3_app_cmd;
  • dây c0_ddr3_app_en;
  • dây [APP_DATA_WIDTH-1:0] c0_ddr3_app_wdf_data;
  • dây c0_ddr3_app_wdf_end;
  • dây [APP_MASK_WIDTH-1:0] c0_ddr3_app_wdf_mask;
  • dây c0_ddr3_app_wdf_wren;
  • dây [APP_DATA_WIDTH-1:0] c0_ddr3_app_rd_data;
  • dây c0_ddr3_app_rd_data_end;
  • dây c0_ddr3_app_rd_data_valid;
  • dây c0_ddr3_app_rdy;
  • dây c0_ddr3_app_wdf_rdy;
  • dây c0_data_compare_error;
  • dây ui_clk;
  • dây ui_clk_sync_rst;
  • dây app_sr_req = 0;
  • dây app_ref_req = 0;
  • dây app_zq_req = 0;
  • dây c0_app_wdf_mask = 0;

Khởi tạo bộ điều khiển bộ nhớ FPGA

mig_7series_0_mig u_mig_7series_0_mig (
// Cổng giao diện bộ nhớ

  • .ddr3_addr (ddr3_addr_fpga),
  • .ddr3_ba (ddr3_ba_fpga),
  • .ddr3_cas_n (ddr3_cas_n_fpga),
  • .ddr3_ck_n (ddr3_ck_n_fpga),
  • .ddr3_ck_p (ddr3_ck_p_fpga),
  • .ddr3_cke (ddr3_cke_fpga),
  • .ddr3_ras_n (ddr3_ras_n_fpga),
  • .ddr3_reset_n (ddr3_reset_n),
  • .ddr3_we_n (ddr3_we_n_fpga),
  • .ddr3_dq (ddr3_dq_fpga),
  • .ddr3_dqs_n (ddr3_dqs_n_fpga),
  • .ddr3_dqs_p (ddr3_dqs_p_fpga),
  • .init_calib_complete (init_calib_complete),
  • .ddr3_cs_n (ddr3_cs_n_fpga),
  • .ddr3_dm (ddr3_dm_fpga),
  • .ddr3_odt (ddr3_odt_fpga),

// Cổng giao diện ứng dụng

  • .app_addr (c0_ddr3_app_addr),
  • .app_cmd (c0_ddr3_app_cmd),
  • .app_en (c0_ddr3_app_en),
  • .app_wdf_data (c0_ddr3_app_wdf_data),
  • .app_wdf_end (c0_ddr3_app_wdf_end),
  • .app_wdf_wren (c0_ddr3_app_wdf_wren),
  • .app_rd_data (c0_ddr3_app_rd_data),
  • .app_rd_data_end (app_rd_data_end),
  • .app_rd_data_valid (c0_ddr3_app_rd_data_valid),
  • .app_rdy (c0_ddr3_app_rdy),
  • .app_wdf_rdy (c0_ddr3_app_wdf_rdy),
  • .app_sr_req (app_sr_req),
  • .app_ref_req (ứng dụng_ref_req),
  • .app_zq_req (ứng dụng_zq_req),
  • .app_sr_active (app_sr_active),
  • .app_ref_ack (app_ref_ack),
  • .app_zq_ack (ứng dụng_zq_ack),
  • .ui_clk (ui_clk),
  • .ui_clk_sync_rst (ui_clk_sync_rst),
  • .app_wdf_mask (c0_ddr3_app_wdf_mask),

// Cổng đồng hồ hệ thống

  • .sys_clk_i (sys_clk_i),

// Cổng đồng hồ tham chiếu

  • .clk_ref_i (clk_ref_i),
  • .sys_rst (sys_rst)
  • );

Khởi tạo trình tạo lưu lượng truy cập hiệu suất

mig7_perfsim_traffic_generator#
(
.APP_DATA_WIDTH (APP_DATA_WIDTH),
.COL_WIDTH (COL_WIDTH),
.ROW_WIDTH (ROW_WIDTH),
.RANK_WIDTH (RANK_WIDTH),
.BANK_WIDTH (BANK_WIDTH),
.MEM_ADDR_ORDER (MEM_ADDR_ORDER),
.tCK (tCK ),
.ADDR_WIDTH (APP_ADDR_WIDTH)
)

u_traffic_gen
(
.clk (ui_clk),
.rst (ui_clk_sync_rst),
.init_calib_complete (init_calib_complete),
.cmp_error (c0_data_compare_error),
.app_wdf_rdy (c0_ddr3_app_wdf_rdy ),
.app_rd_data_valid (c0_ddr3_app_rd_data_valid),
.app_rd_data (c0_ddr3_app_rd_data),
.app_rdy (c0_ddr3_app_rdy),
.app_cmd (c0_ddr3_app_cmd ),
.app_addr (c0_ddr3_app_addr ),
.app_en (c0_ddr3_app_en ),
.app_wdf_mask (c0_ddr3_app_wdf_mask),
.app_wdf_data (c0_ddr3_app_wdf_data),
.app_wdf_end (c0_ddr3_app_wdf_end),
.app_wdf_wren (c0_ddr3_app_wdf_wren)
);

  • 5. Sửa đổi APP_ADDR_WIDTH, APP_DATA_WIDTH, RANK_WIDTH và BANK_WIDTH theo lựa chọn phần bộ nhớ của bạn.
    Các giá trị có thể nhận được từ _mig.v file.
  • Tên khởi tạo được đánh dấu màu vàng mig_7series_0_mig có thể thay đổi dựa trên tên thành phần của bạn trong quá trình tạo IP, hãy xác minh xem bạn đã chọn tên khác chưa và thay đổi tên đó cho phù hợp.Ước tính hiệu suất Xilinx DDR2 MIG 7-fig-4
  • Khi IP được tạo, hãy mở _mig.v file và kiểm tra chéo xem có bất kỳ biến thể nào trong tên tín hiệu LHS và sửa chúng không.
  • app_sr_req, app_ref_req và app_zq_req phải được khởi tạo thành 0.
  • Như cũample_top.v được bình luận và mới files được thêm vào, bạn có thể sẽ thấy “?” bên cạnh
    mig_7series_0_mig.v file dưới các nguồn mô phỏng.
    Để lập bản đồ chính xác file, nhấp chuột phải vào mig_7series_0_mig.v, chọn “Thêm nguồn”, Duyệt đến
    /mig_7series_0_example.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl
    và thêm mig_7series_0_mig_sim.v file.
  • Nếu bạn thấy "?" cho cơ sở files, thêm tất cả RTL files trong các thư mục clocking, controller, ip_top,phy và UI.
  • Khi các thay đổi RTL được thực hiện và tất cả các yêu cầu files được thêm vào Nguồn mô phỏng của bạn, Hệ thống phân cấp sẽ tương tự như Hình 5.
    Các files được đánh dấu màu đỏ là mới được thêm vào và “?” được mong đợi trên các mô-đun liên quan đến ECC vì cấu hình bộ nhớ đã chọn đã tắt tùy chọn ECC.Ước tính hiệu suất Xilinx DDR2 MIG 7-fig-5

Kích thích File Sự miêu tả
Mỗi mẫu kích thích là 48 bit và định dạng được mô tả trong Hình 6-1 đến Hình 6-4.Ước tính hiệu suất Xilinx DDR2 MIG 7-fig-6

Mã hóa địa chỉ (Địa chỉ [35:0])

Địa chỉ được mã hóa trong kích thích theo Hình 7-1 đến Hình 7-6. Tất cả các trường địa chỉ cần được nhập ở định dạng thập lục phân. Tất cả các trường địa chỉ đều có chiều rộng chia hết cho XNUMX để nhập ở định dạng thập lục phân. Băng thử nghiệm chỉ gửi các bit cần thiết của trường địa chỉ tới Bộ điều khiển bộ nhớ.
Ví dụample, trong cấu hình tám dãy, chỉ các Bit dãy [2:0] được gửi đến Bộ điều khiển bộ nhớ và các bit còn lại sẽ bị bỏ qua. Các bit bổ sung cho trường địa chỉ được cung cấp để bạn nhập địa chỉ ở định dạng thập lục phân.
Bạn phải xác nhận giá trị đã nhập tương ứng với chiều rộng của một cấu hình nhất định.Ước tính hiệu suất Xilinx DDR2 MIG 7-fig-7

  • Địa chỉ cột (Cột[11:0]) – Địa chỉ cột trong kích thích được cung cấp tối đa 12 bit, nhưng bạn cần giải quyết vấn đề này dựa trên tham số độ rộng cột được đặt trong thiết kế của bạn.
  • Địa chỉ hàng (Hàng[15:0]) – Địa chỉ hàng trong kích thích được cung cấp tối đa 16 bit, nhưng bạn cần giải quyết vấn đề này dựa trên tham số độ rộng hàng được đặt trong thiết kế của bạn.
  • Địa chỉ ngân hàng (Ngân hàng[3:0]) – Địa chỉ ngân hàng trong kích thích được cung cấp tối đa bốn bit, nhưng bạn cần giải quyết vấn đề này dựa trên tham số độ rộng ngân hàng được đặt trong thiết kế của bạn.
  • Địa chỉ Xếp hạng (Xếp hạng[3:0]) – Địa chỉ xếp hạng trong kích thích được cung cấp tối đa bốn bit, nhưng bạn cần giải quyết vấn đề này dựa trên tham số độ rộng xếp hạng được đặt trong thiết kế của bạn.
    Địa chỉ được tập hợp dựa trên tham số MEM_ADDR_ORDER cấp cao nhất và được gửi tới giao diện người dùng

Lặp lại lệnh (Lặp lại lệnh [7:0])
Số lần lặp lại lệnh là số lần lệnh tương ứng được lặp lại tại Giao diện người dùng. Địa chỉ cho mỗi lần lặp lại được tăng thêm 8. Số lần lặp lại tối đa là 128.
Bàn thử nghiệm không kiểm tra ranh giới cột và nó sẽ bao quanh nếu đạt đến giới hạn cột tối đa trong quá trình tăng dần.
128 Lệnh lấp đầy trang. Đối với bất kỳ địa chỉ cột nào khác 0, số lần lặp lại là 128 sẽ vượt qua ranh giới cột và bao quanh đến đầu địa chỉ cột.

Sử dụng xe buýt
Việc sử dụng xe buýt được tính toán tại Giao diện người dùng có tính đến tổng số lần Đọc và Ghi và phương trình sau được sử dụng:

Ước tính hiệu suất Xilinx DDR2 MIG 7-fig-8

  • BL8 mất bốn chu kỳ đồng hồ bộ nhớ
  • end_of_stimulus là thời điểm tất cả các lệnh được thực hiện.
  • calib_done là thời điểm hiệu chỉnh xong.

Example mẫu
Những cái cũ nàyampCác tập tin dựa trên MEM_ADDR_ORDER được đặt thành BANK_ROW_COLUMN.

Mẫu đọc đơn
00_0_2_000F_00A_1 – Mẫu này là một lần đọc từ cột thứ 10, hàng thứ 15 và dãy thứ hai.Ước tính hiệu suất Xilinx DDR2 MIG 7-fig-9Mẫu ghi đơn
00_0_1_0040_010_0 – Mẫu này là một lần ghi vào cột thứ 32, hàng thứ 128 và dãy đầu tiên.Ước tính hiệu suất Xilinx DDR2 MIG 7-fig-10Viết đơn và đọc đến cùng một địa chỉ
00_0_2_000F_00A_0 – Mẫu này là một lần ghi vào cột thứ 10, hàng thứ 15 và dãy thứ hai.
00_0_2_000F_00A_1 – Mẫu này là một lần đọc từ cột thứ 10, hàng thứ 15 và ngân hàng thứ haiƯớc tính hiệu suất Xilinx DDR2 MIG 7-fig-11

Nhiều lần ghi và đọc với cùng một địa chỉ
0A_0_0_0010_000_0 – Điều này tương ứng với 10 lần ghi với địa chỉ bắt đầu từ 0 đến 80 có thể nhìn thấy trong cột.Ước tính hiệu suất Xilinx DDR2 MIG 7-fig-12

0A_0_0_0010_000_1 – Điều này tương ứng với 10 lần đọc với địa chỉ bắt đầu từ 0 đến 80 có thể nhìn thấy trong cột.Ước tính hiệu suất Xilinx DDR2 MIG 7-fig-13

Quấn trang trong khi viết
0A_0_2_000F_3F8_0 – Điều này tương ứng với 10 lần ghi với địa chỉ cột được bao bọc ở đầu trang sau một lần ghi.Ước tính hiệu suất Xilinx DDR2 MIG 7-fig-14

Mô phỏng Trình tạo lưu lượng truy cập hiệu suất

Tại thời điểm này, bạn đã hoàn thành với MIG exampmô phỏng thiết kế le. Điều này ngụ ý rằng thiết lập mô phỏng của bạn đã sẵn sàng, bạn đã thực hiện các sửa đổi RTL mô phỏng hiệu suất, hệ thống phân cấp mô phỏng mới là chính xác và bạn đã hiểu các mẫu kích thích. Chạy lại mô phỏng với 16 lần ghi và đọc trong perfsim_stimulus.txt.Ước tính hiệu suất Xilinx DDR2 MIG 7-fig-15

Thực hiện chạy tất cả, đợi cho đến khi tín hiệu init_calib_complete được xác nhận và bạn sẽ có thể xem số lần ghi và đọc được đề xuất. Quá trình mô phỏng sau đó sẽ dừng lại. Ước tính hiệu suất Xilinx DDR2 MIG 7-fig-16

Khi bạn được nhắc thoát khỏi mô phỏng, hãy chọn Không và chuyển đến cửa sổ bản ghi nơi bạn có thể xem thống kê hiệu suất. Ước tính hiệu suất Xilinx DDR2 MIG 7-fig-17

Nếu bạn chọn "bỏ mô phỏng" số liệu thống kê hiệu suất sẽ được ghi vào một file được đặt tên mig_band_width_output.txt nằm trong sim_1/behave thư mục.

Exampđường dẫn thư mục le: -
/mig_7series_0_example_perf_sim\mig_7series_0_example.sim/sim_1/behavƯớc tính hiệu suất Xilinx DDR2 MIG 7-fig-18

Bạn có thể thắc mắc tại sao phần trămtagSử dụng bus e là 29. Chạy lại mô phỏng với cùng cài đặt IP nhưng chỉ thay đổi kích thích file đến 256 lượt viết và 256 lượt đọc

ff_0_0_0000_000_0
ff_0_0_0000_000_1

Bây giờ bạn sẽ thấy phần trămtage là 85, điều này ngụ ý rằng DDR3 cung cấp khả năng sử dụng bus tốt hơn cho chuỗi dài các đợt ghi và đọc. Ước tính hiệu suất Xilinx DDR2 MIG 7-fig-19

Các cách chung để cải thiện hiệu suất

Các yếu tố ảnh hưởng đến hiệu quả có thể được chia thành hai phần:

  1. bộ nhớ cụ thể
  2. Bộ điều khiển cụ thểƯớc tính hiệu suất Xilinx DDR2 MIG 7-fig-20

Hình 9 cung cấp cho bạn một hơnview của các thuật ngữ là bộ nhớ cụ thể.
Không giống như SRAM và Block Memories Hiệu suất của DDR2 hoặc DDR3 không chỉ là tốc độ dữ liệu tối đa.

Nó phụ thuộc vào nhiều yếu tố thời gian, bao gồm:

  • tRCD: Độ trễ lệnh hàng (hoặc độ trễ từ ras đến cas).
  • tCAS(CL): Độ trễ nhấp nháy của địa chỉ cột.
  • tRP: Độ trễ nạp trước hàng.
  • TRAS: Row Active Time (kích hoạt để thay đổi trước).
  • tRC: Thời gian chu kỳ hàng. tRC = tRAS + tRP
  • tRAC: Radom truy cập chậm trễ. tRAC = tRCD + tCAS
  • tCWL: Cas ghi độ trễ.
  • tZQ: Thời gian hiệu chuẩn ZQ.
  • tRFC: Thời gian chu kỳ làm mới hàng
  • tWTR: Ghi để đọc chậm trễ. Giao dịch ghi lần cuối để đọc thời gian lệnh.
  • tWR: Viết thời gian phục hồi. Lần ghi giao dịch cuối cùng vào thời gian Nạp tiền

Thời gian của tất cả các tham số được liệt kê tùy thuộc vào loại bộ nhớ được sử dụng và cấp tốc độ của bộ phận bộ nhớ.
Bạn có thể tìm thêm chi tiết về các định nghĩa và thông số kỹ thuật thời gian trong DDR2 DDR3 JEDEC hoặc trong bất kỳ biểu dữ liệu thiết bị bộ nhớ nào.

Hiệu quả chủ yếu phụ thuộc vào cách bộ nhớ được truy cập. Các mẫu địa chỉ khác nhau cho kết quả hiệu quả khác nhau.

Chi phí định thời bộ nhớ

  1. Thời gian kích hoạt và Thời gian nạp tiền khi thay đổi sang ngân hàng/hàng mới hoặc thay đổi hàng trong cùng một ngân hàng.- Vì vậy, nếu bạn giảm thay đổi hàng, điều này có thể loại bỏ tRCD và tRP.
  2. Gửi lệnh ghi hoặc đọc liên tục -Duy trì thời gian tCCD.
  3. Giảm thiểu chuyển đổi lệnh ghi thành đọc và đọc thành ghi – Thời gian khôi phục ghi để thay đổi thành truy cập đọc, thời gian quay vòng xe buýt để thay đổi từ đọc thành ghi
  4. Đặt khoảng thời gian làm mới thích hợp.
    • DDR3 SDRAM yêu cầu các chu kỳ Làm mới ở khoảng thời gian định kỳ trung bình là tREFI.
    • Có thể ban hành trước tối đa 8 lệnh Làm mới bổ sung (“kéo vào”). Điều này không làm giảm số lần làm mới, nhưng khoảng thời gian tối đa giữa hai lệnh Làm mới xung quanh được giới hạn ở 9 × tREFIƯớc tính hiệu suất Xilinx DDR2 MIG 7-fig-21
  • Sử dụng tất cả các ngân hàng - Một cơ chế địa chỉ thích hợp là thích hợp hơn.
    • Hàng-Ngân hàng-Cột: Đối với một giao dịch xảy ra trên một không gian địa chỉ tuần tự, lõi sẽ tự động mở cùng một hàng trong dãy tiếp theo của thiết bị DRAM để tiếp tục giao dịch khi đạt đến cuối một hàng hiện có. Nó rất phù hợp với các ứng dụng yêu cầu bùng nổ các gói dữ liệu lớn đến các vị trí địa chỉ tuần tự.
    • Ngân hàng-Hàng-Cột: Khi vượt qua một ranh giới hàng, hàng hiện tại sẽ được đóng lại và một hàng khác sẽ được mở trong cùng một ngân hàng. MSB là một địa chỉ ngân hàng, có thể được sử dụng để chuyển đổi từ các ngân hàng khác nhau. Nó phù hợp với các giao dịch ngắn hơn, ngẫu nhiên hơn tới một khối bộ nhớ trong một khoảng thời gian và sau đó chuyển sang khối khác (ngân hàng)
  • Chiều dài bùng nổ
    • BL 8 được hỗ trợ cho DDR3 trên sê-ri 7. BC4 có hiệu suất rất thấp dưới 50%. Điều này là do thời gian thực hiện của BC4 giống như BL8. Dữ liệu chỉ được ẩn bên trong thành phần.
    • Trong trường hợp bạn không muốn ghi toàn bộ, có thể cân nhắc sử dụng mặt nạ dữ liệu hoặc ghi sau khi đọc.
  • Đặt khoảng thời gian ZQ thích hợp (Chỉ dành cho DDR3)
    Bộ điều khiển gửi cả hai lệnh Hiệu chuẩn ZQ Ngắn (ZQCS) và ZQ Dài (ZQCL).
    • Tuân thủ tiêu chuẩn DDR3 Jedec
    • Hiệu chuẩn ZQ được thảo luận trong phần 5.5 của Tiêu chuẩn SDRAM JEDEC Spec JESD79-3 DDR3
    • Hiệu chuẩn ZQ hiệu chỉnh khi kết thúc khuôn (ODT) theo các khoảng thời gian đều đặn để tính đến các biến thể trên VT
    • Logic được chứa trong bank_common.v/vhd
    • Tham số Tzqcs xác định tốc độ gửi lệnh Hiệu chỉnh ZQ đến bộ nhớ
    • Không thể tắt bộ đếm và gửi thủ công bằng app_zq_req, nó cũng tương tự như gửi Làm mới theo cách thủ công.
      Tham khảo (Xilinx Answer 47924) để biết chi tiết.Ước tính hiệu suất Xilinx DDR2 MIG 7-fig-22

Chi phí điều khiển

  1. Đọc định kỳ – Tham khảo (Xilinx Trả lời 43344) để biết thêm chi tiết.
    • Không thay đổi thời gian đọc
    • Bỏ qua các lần đọc định kỳ trong khi ghi và đưa ra số lần đọc bị bỏ lỡ trước khi đọc thực sự
  2. Sắp xếp lại – Tham khảo (Xilinx Trả lời 34392) để biết thêm chi tiết.
    Đối với các thiết kế Giao diện Người dùng và AXI, nên bật tính năng này.
    • Sắp xếp lại là logic xem trước một số lệnh và thay đổi thứ tự lệnh của người dùng để làm cho các lệnh không phải bộ nhớ không chiếm băng thông hợp lệ. Hiệu suất cũng liên quan đến mô hình lưu lượng truy cập thực tế.
    • Dựa trên mẫu địa chỉ, sắp xếp lại giúp bỏ qua các lệnh nạp tiền và kích hoạt, đồng thời làm cho tRCD và tRP không chiếm độ rộng dải dữ liệu.Ước tính hiệu suất Xilinx DDR2 MIG 7-fig-23
  3. Cố gắng tăng số lượng Bank Machines.
    • Hầu hết logic của bộ điều khiển nằm trong các máy ngân hàng và chúng tương ứng với các ngân hàng DRAM
    • Một máy ngân hàng nhất định quản lý một ngân hàng DRAM duy nhất tại bất kỳ thời điểm nào.
    • Chỉ định máy ngân hàng là động nên không cần thiết phải có máy ngân hàng cho mỗi ngân hàng vật lý.
    • Máy ngân hàng có thể được cấu hình, nhưng đó là sự đánh đổi giữa diện tích và hiệu suất.
    • Số lượng máy ngân hàng cho phép nằm trong khoảng từ 2-8.
    • Theo mặc định, 4 Máy ngân hàng được cấu hình thông qua các tham số RTL.
    • Để thay đổi Bank Machines, hãy xem xét tham số nBANK_MACHS = 8 có trong memc_ui_top Examptập tin cho 8 máy ngân hàng – nBANK_MACHS = 8

Bây giờ bạn đã biết các yếu tố ảnh hưởng đến hiệu suất.
Hãy xem xét một ứng dụng ngược dòng cung cấp cho bạn 512 byte dữ liệu trên mỗi gói và bạn cần lưu chúng vào các vị trí bộ nhớ khác nhau. Vì 512 byte dữ liệu tương đương với 64 đợt dữ liệu DDR3, hãy chạy lại chương trình cũample thiết kế với một kích thích file chứa 512 lần ghi, 512 lần đọc và chuyển đổi hàng cho mỗi 64 lần ghi hoặc đọc:

  • 3f_0_0_0000_000_0
  • 3f_0_0_0001_000_0
  • 3f_0_0_0002_000_0
  • 3f_0_0_0003_000_0
  • 3f_0_0_0004_000_0
  • 3f_0_0_0005_000_0
  • 3f_0_0_0006_000_0
  • 3f_0_0_0007_000_0
  • 3f_0_0_0000_000_1
  • 3f_0_0_0001_000_1
  • 3f_0_0_0002_000_1
  • 3f_0_0_0003_000_1
  • 3f_0_0_0004_000_1
  • 3f_0_0_0005_000_1
  • 3f_0_0_0006_000_1
  • 3f_0_0_0007_000_1

Khi kết thúc mô phỏng, bạn sẽ thấy mức sử dụng xe buýt là 77 phần trăm. Ước tính hiệu suất Xilinx DDR2 MIG 7-fig-24

Hình 11: Thống kê hiệu suất cho 512 lần ghi và 512 lần đọc – Chuyển đổi hàng cho 64 lần ghi hoặc đọc. 

Bây giờ bạn có thể áp dụng những kiến ​​thức đã học trong phần trước để nâng cao hiệu quả. Với một view để sử dụng tất cả các ngân hàng thay vì thay đổi hàng, hãy sửa đổi mẫu địa chỉ để thay đổi ngân hàng như hình bên dưới.
Điều này tương đương với cài đặt ROW_BANK_Column trong cài đặt ánh xạ địa chỉ bộ nhớ trong MIG GUI.

  • 3f_0_0_0000_000_0
  • 3f_0_1_0000_000_0
  • 3f_0_2_0000_000_0
  • 3f_0_3_0000_000_0
  • 3f_0_4_0000_000_0
  • 3f_0_5_0000_000_0
  • 3f_0_6_0000_000_0
  • 3f_0_7_0000_000_0
  • 3f_0_0_0000_000_1
  • 3f_0_1_0000_000_1
  • 3f_0_2_0000_000_1
  • 3f_0_3_0000_000_1
  • 3f_0_4_0000_000_1
  • 3f_0_5_0000_000_1
  • 3f_0_6_0000_000_1
  • 3f_0_7_0000_000_1

Khi kết thúc mô phỏng, bạn sẽ thấy rằng Tỷ lệ sử dụng xe buýt 77% trước đó giờ là 87! Ước tính hiệu suất Xilinx DDR2 MIG 7-fig-25

Nếu bạn vẫn yêu cầu hiệu quả cao hơn, bạn có thể sử dụng kích thước gói lớn 1024 hoặc 2048 byte hoặc xem xét làm mới thủ công.

Ghi chú: Xilinx không khuyến khích bỏ qua việc làm mới bộ điều khiển vì chúng tôi không chắc liệu bạn có thể đáp ứng thời gian làm mới tự động của Jedec hay không, điều này ảnh hưởng đến độ tin cậy của dữ liệu.
Từ phía bộ điều khiển, bạn có thể thay đổi nBANk_MACH và xem sự cải thiện về hiệu suất.
Tuy nhiên, điều này có thể ảnh hưởng đến thời gian thiết kế của bạn, vui lòng tham khảo (Xilinx Trả lời 36505) để biết chi tiết về nBANk_MACHƯớc tính hiệu suất Xilinx DDR2 MIG 7-fig-26

Mở core_name_mig_sim.v file và thay đổi tham số nBANK_MACHS từ 4 thành 8 và chạy lại mô phỏng. Để giá trị tham số có hiệu lực trong phần cứng, bạn cần cập nhật core_name_mig.v file.
Tôi đã sử dụng mô hình tương tự khi chúng tôi có mức sử dụng xe buýt là 87% (hình -12).
Với nBANK_MACHS được đặt thành 8, hiệu quả hiện là 90%. Ước tính hiệu suất Xilinx DDR2 MIG 7-fig-27

Ngoài ra, hãy lưu ý rằng bộ điều khiển ½ và ¼ ảnh hưởng tiêu cực đến hiệu quả do độ trễ của chúng.
Ví dụample, vì chúng tôi chỉ có thể gửi lệnh sau mỗi 4 chu kỳ CK nên đôi khi có thêm phần đệm khi tuân thủ thông số kỹ thuật thời gian DRAM tối thiểu, điều này có thể làm giảm hiệu quả so với lý thuyết.
Hãy thử các bộ điều khiển khác nhau để tìm ra bộ điều khiển phù hợp với yêu cầu hiệu quả của bạn.

Tài liệu tham khảo

  1. Zynq-7000 AP SoC và 7 Series FPGA MIS v2.3 [UG586]
  2. Trung tâm giải pháp Xilinx MIG http://www.xilinx.com/support/answers/34243.html

Lịch sử sửa đổi
13/03/2015 – Phát hành lần đầu

Tải PDF: Hướng dẫn ước tính hiệu suất Xilinx DDR2 MIG 7

Tài liệu tham khảo

Để lại bình luận

Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *