دليل تقدير أداء Xilinx DDR2 MIG 7
ملاحظة هامة: يتم توفير ملف PDF القابل للتنزيل لسجل الإجابات لتعزيز سهولة استخدامه وسهولة قراءته. من المهم ملاحظة أن سجلات الإجابات موجودة Webالمحتوى المستند إلى المحتوى والذي يتم تحديثه بشكل متكرر عند توفر معلومات جديدة. يتم تذكيرك بزيارة الدعم الفني لـ Xilinx Webالموقع وإعادةview (إجابة Xilinx 63234) للحصول على أحدث إصدار من هذه الإجابة.
مقدمة
نظرًا للطريقة التي تم بها تصميم ذاكرات DDR2 وDDR3 وتصميم وحدة التحكم من السلسلة MIG 7، فإن الأداء ليس مستقيمًا.
يتطلب الأمر فهمًا لمعلمات توقيت Jedec المختلفة وهندسة وحدة التحكم، وستحتاج إلى تشغيل عمليات المحاكاة للحصول على التقديرات.
المبدأ العام لتحديد الأداء هو نفسه ولكن هذه الوثيقة توفر طريقة سهلة للحصول على الكفاءة باستخدام MIG exampلو التصميم بمساعدة مقعد الاختبار والتحفيز fileمرفق هنا.
عرض النطاق الترددي الفعال
يحقق ناقل بيانات DRAM عرض النطاق الترددي القريب من الذروة فقط أثناء رشقات القراءة والكتابة ويخفض حمله من معدل البيانات الفعال.
عدد قليل من السابقينampليه النفقات العامة هي:
- وقت الشحن المسبق للوصول إلى الصفوف في نفس البنك (عنوان الوصول ليس في نفس نتيجة صفحة الصف)
- كتابة وقت الاسترداد للتغيير من الكتابة إلى الوصول للقراءة
- الوقت المستغرق للحافلة للتغيير من الوصول للقراءة إلى الكتابة
عرض النطاق الترددي الفعال = ذروة عرض النطاق الترددي * الكفاءة
جيل تصميم MIG
ارجع إلى الفصل الأول من UG586 للحصول على تفاصيل خطوة بخطوة حول MIG IP وعلى سبيل المثالampجيل التصميم لو.
قبل تشغيل محاكاة أداء السلسلة MIG 7، قم بما يلي للتأكد من أن بيئة المحاكاة لديك جيدة. افتح ملف MIG السابقampقم بتصميم وتعيين المكتبات المناسبة، وقم بتشغيل المحاكاة، وتأكد من أنه يمكنك رؤية الرسالة "تم اجتياز الاختبار" في النص.
لتوضيح التدفق، قمت بإنشاء MIG IP لـ xc7vx690tffg1761-2 واستدعاء exampالتصميم.
شيئان يجب ملاحظتهما هما بتات عنوان الذاكرة واختيار تعيين عنوان الذاكرة.
على سبيل المثالampلو، لقد قمت بتحديد MT41J128M8XX-125 ضمن الخيارات المنسدلة لجزء الذاكرة.
بالنسبة لجزء الذاكرة المحدد من الشكل-1، الصف = 14، العمود = 10 والبنك = 3، لذا app_addr_width = صف + عمود + بنك + رتبة = 28
يمكنك تحديد إما BANK_ROW_COLUMN أو ROW BANK Column.
لقد تركت ROW BANK Column وهو تعيين العنوان الافتراضي.
Exampمحاكاة التصميم مع منصة اختبار قابلة للتوليف
ضمن إعدادات المحاكاة، حدد QuestaSim/ModelSim Simulator واستعرض للوصول إلى موقع المكتبات المترجمة.
للحصول على تفاصيل حول الإشارة إلى مسار تثبيت أدوات الطرف الثالث، واختيار جهاز محاكاة الهدف، وتجميع المكتبات ورسم الخرائط، يمكنك الرجوع إلى (UG900) دليل مستخدم Vivado Design Suite Logic Simulation
قم بتشغيل المحاكاة من خلال واجهة المستخدم الرسومية (انقر فوق علامة التبويب تشغيل المحاكاة في مدير المشروع) وتأكد من رؤية رسالة "تم اجتياز الاختبار" في النص.
تعديلات محاكاة الأداء RTL
- انقر بزر الماوس الأيمن فوق علامة تبويب المصادر، وحدد "إضافة أو إنشاء مصادر محاكاة"، وتصفح للوصول إلى mig7_perfsim_traffic_generator.sv file وانقر فوق "إنهاء" لإضافته.
- انقر بزر الماوس الأيمن فوق علامة تبويب المصادر، وحدد "إضافة أو إنشاء مصادر محاكاة"، وتصفح إلى perfsim_stimulus.txt، وانقر فوق "إنهاء" لإضافته.
- قم بالتعليق على السابقampإنشاء مثيل le_top في sim_tb_top.v file.
- أضف خطوط RTL أدناه إلى sim_tb_top,v
- localparam APP_ADDR_WIDTH = 28;
- localparam APP_DATA_WIDTH = 64;
- localparam APP_MASK_WIDTH = APP_DATA_WIDTH / 8;
- localparam MEM_ADDR_ORDER = "BANK_ROW_COLUMN"؛
- localparam BANK_WIDTH = 3;
- localparam RANK_WIDTH = 1;
- سلك [APP_ADDR_WIDTH-1:0] c0_ddr3_app_addr;
- سلك [2:0] c0_ddr3_app_cmd;
- سلك c0_ddr3_app_en؛
- سلك [APP_DATA_WIDTH-1:0] c0_ddr3_app_wdf_data;
- سلك c0_ddr3_app_wdf_end؛
- سلك [APP_MASK_WIDTH-1:0] c0_ddr3_app_wdf_mask;
- سلك c0_ddr3_app_wdf_wren؛
- سلك [APP_DATA_WIDTH-1:0] c0_ddr3_app_rd_data;
- سلك c0_ddr3_app_rd_data_end؛
- سلك c0_ddr3_app_rd_data_valid؛
- سلك c0_ddr3_app_rdy؛
- سلك c0_ddr3_app_wdf_rdy;
- سلك c0_data_compare_error؛
- سلك ui_clk؛
- سلك ui_clk_sync_rst;
- سلك app_sr_req = 0؛
- سلك app_ref_req = 0؛
- سلك app_zq_req =0؛
- سلك c0_app_wdf_mask =0;
إنشاء مثيل لوحدة تحكم الذاكرة FPGA
mig_7series_0_mig u_mig_7series_0_mig (
// منافذ واجهة الذاكرة
- .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)،
// منافذ واجهة التطبيق
- .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 (app_ref_req)،
- .app_zq_req (app_zq_req)،
- .app_sr_active (app_sr_active)،
- .app_ref_ack (app_ref_ack)،
- .app_zq_ack (app_zq_ack)،
- .ui_clk (ui_clk)،
- .ui_clk_sync_rst (ui_clk_sync_rst)،
- .app_wdf_mask (c0_ddr3_app_wdf_mask)،
// منافذ ساعة النظام
- .sys_clk_i (sys_clk_i)،
// منافذ الساعة المرجعية
- .clk_ref_i (clk_ref_i)،
- .sys_rst (sys_rst)
- );
إنشاء مثيل لمولد حركة الأداء
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)،
.تك (تك)،
.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. قم بتعديل APP_ADDR_WIDTH وAPP_DATA_WIDTH وRANK_WIDTH وBANK_WIDTH وفقًا لاختيار جزء الذاكرة الخاص بك.
يمكن الحصول على القيم من _mig.v file. - يمكن أن يختلف اسم إنشاء مثيل باللون الأصفر المميز mig_7series_0_mig بناءً على اسم المكون الخاص بك أثناء إنشاء IP، تحقق مما إذا كنت قد اخترت اسمًا مختلفًا وقم بتغييره وفقًا لذلك.
- بمجرد إنشاء عنوان IP، افتح الملف _mig.v file والتحقق من وجود أي اختلافات في أسماء إشارات LHS وتصحيحها.
- يجب تهيئة app_sr_req وapp_ref_req وapp_zq_req إلى 0.
- على سبيل المثالampتم التعليق على le_top.v وهو جديد fileتمت إضافة s، فمن المحتمل أن ترى "؟" بجانب
mig_7series_0_mig.v file تحت مصادر المحاكاة.
لرسم الخريطة الصحيحة file، انقر بزر الماوس الأيمن على mig_7series_0_mig.v، وحدد "إضافة مصادر"، ثم استعرض للوصول إلى
/mig_7series_0_example.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl
وأضف mig_7series_0_mig_sim.v file. - إذا رأيت "؟" للأساسية fileق، إضافة كافة RTL fileالموجودة في مجلدات تسجيل الوقت ووحدة التحكم وip_top وphy وUI.
- بمجرد الانتهاء من تغييرات RTL وكل ما هو مطلوب fileتتم إضافة s إلى مصادر المحاكاة الخاصة بك، ويجب أن يكون التسلسل الهرمي مشابهًا للشكل 5.
ال fileتمت إضافة الحروف المميزة باللون الأحمر حديثًا، و"؟" من المتوقع على الوحدات ذات الصلة بـ ECC نظرًا لأن تكوين الذاكرة المحدد به خيار ECC معطل.
حافز File وصف
يتكون كل نمط من أنماط التحفيز من 48 بت، ويتم وصف التنسيق في الأشكال من 6-1 إلى 6-4.
ترميز العنوان (العنوان [35:0])
يتم ترميز العنوان في المحفز حسب الشكل 7-1 إلى الشكل 7-6. يجب إدخال كافة حقول العناوين بالتنسيق الست عشري. كافة حقول العناوين عبارة عن عرض قابل للقسمة على أربعة لإدخالها بالتنسيق الست عشري. يرسل مقعد الاختبار فقط البتات المطلوبة من حقل العنوان إلى وحدة التحكم في الذاكرة.
على سبيل المثالample، في التكوين المكون من ثمانية بنوك، يتم إرسال وحدات البت البنكية فقط [2:0] إلى وحدة التحكم في الذاكرة ويتم تجاهل البتات المتبقية. يتم توفير البتات الإضافية لحقل العنوان لتتمكن من إدخال العنوان بتنسيق سداسي عشري.
يجب عليك التأكد من أن القيمة المدخلة تتوافق مع عرض التكوين المحدد.
- عنوان العمود (العمود[11:0]) – يتم توفير عنوان العمود في التحفيز بحد أقصى 12 بت، ولكن عليك معالجة هذا بناءً على معلمة عرض العمود المحددة في التصميم الخاص بك.
- عنوان الصف (الصف[15:0]) – يتم توفير عنوان الصف في التحفيز بحد أقصى 16 بت، ولكن عليك معالجة هذا بناءً على معلمة عرض الصف المحددة في التصميم الخاص بك.
- عنوان البنك (البنك[3:0]) – يتم توفير عنوان البنك في التحفيز بحد أقصى أربع بتات، ولكن عليك معالجة هذا بناءً على معلمة عرض البنك المحددة في التصميم الخاص بك.
- عنوان الرتبة (الرتبة[3:0]) – يتم توفير عنوان التصنيف في التحفيز بحد أقصى أربع بتات، ولكن عليك معالجة هذا بناءً على معلمة عرض التصنيف المحددة في التصميم الخاص بك.
يتم تجميع العنوان بناءً على معلمة MEM_ADDR_ORDER ذات المستوى الأعلى وإرساله إلى واجهة المستخدم
تكرار الأمر (تكرار الأمر [7:0])
عدد تكرار الأمر هو عدد مرات تكرار الأمر المعني في واجهة المستخدم. تتم زيادة عنوان كل تكرار بمقدار 8. والحد الأقصى لعدد التكرار هو 128.
لا يتحقق مقعد الاختبار من حدود العمود ويلتف حوله إذا تم الوصول إلى الحد الأقصى للعمود أثناء الزيادات.
الأوامر الـ 128 تملأ الصفحة. بالنسبة لأي عنوان عمود بخلاف 0، ينتهي عدد التكرار البالغ 128 بعبور حدود العمود والالتفاف حول بداية عنوان العمود.
استخدام الحافلات
يتم حساب استخدام الناقل في واجهة المستخدم مع الأخذ في الاعتبار العدد الإجمالي لعمليات القراءة والكتابة ويتم استخدام المعادلة التالية:
- يأخذ BL8 أربع دورات لساعة الذاكرة
- end_of_stimulus هو الوقت الذي يتم فيه تنفيذ كافة الأوامر.
- calib_done هو الوقت الذي تتم فيه المعايرة.
Exampأنماط لو
هؤلاء السابقينampتعتمد الملفات على MEM_ADDR_ORDER المعين على BANK_ROW_COLUMN.
نمط قراءة واحد
00_0_2_000F_00A_1 – هذا النمط عبارة عن قراءة واحدة من العمود العاشر والصف الخامس عشر والضفة الثانية.نمط كتابة واحد
00_0_1_0040_010_0 – هذا النمط عبارة عن كتابة واحدة في العمود 32 والصف 128 والبنك الأول.كتابة وقراءة واحدة لنفس العنوان
00_0_2_000F_00A_0 – هذا النمط عبارة عن كتابة واحدة في العمود العاشر والصف الخامس عشر والبنك الثاني.
00_0_2_000F_00A_1 – هذا النمط عبارة عن قراءة واحدة من العمود العاشر والصف الخامس عشر والضفة الثانية
عمليات الكتابة والقراءة المتعددة بنفس العنوان
0A_0_0_0010_000_0 – يتوافق هذا مع 10 عمليات كتابة بعنوان يبدأ من 0 إلى 80 والذي يمكن رؤيته في العمود.
0A_0_0_0010_000_1 – يتوافق هذا مع 10 قراءات مع عنوان يبدأ من 0 إلى 80 والذي يمكن رؤيته في العمود.
التفاف الصفحة أثناء الكتابة
0A_0_2_000F_3F8_0 – يتوافق هذا مع 10 عمليات كتابة بعنوان عمود ملفوف في بداية الصفحة بعد كتابة واحدة.
محاكاة مولد حركة الأداء
عند هذه النقطة تكون قد انتهيت من استخدام MIG exampمحاكاة التصميم لو. وهذا يعني أن إعداد المحاكاة الخاص بك جاهز، وأنك أجريت تعديلات على محاكاة الأداء من اليمين إلى اليسار (RTL)، وأن التسلسل الهرمي الجديد للمحاكاة صحيح وأنك فهمت أنماط التحفيز. قم بتشغيل المحاكاة مرة أخرى باستخدام 16 عملية كتابة وقراءة في ملف perfsim_stimulus.txt.
قم بتشغيل الكل، وانتظر حتى يتم تأكيد إشارة init_calib_complete، وستكون قادرًا على رؤية العدد المقترح من عمليات الكتابة والقراءة. ستتوقف المحاكاة بعد ذلك.
عندما يُطلب منك إنهاء المحاكاة، حدد لا وانتقل إلى نافذة النص حيث ستتمكن من رؤية إحصائيات الأداء.
إذا قمت بتحديد "التوقف عن المحاكاة" سيتم كتابة إحصائيات الأداء إلى أ file اسمه mig_band_width_output.txt الموجود في ملف sim_1/behave مجلد.
Exampمسار الدليل:-
/mig_7series_0_example_perf_sim\mig_7series_0_example.sim/sim_1/behav
قد تتساءل لماذا النسبة المئويةtagاستخدام الحافلة هو 29 فقط. أعد تشغيل المحاكاة بنفس إعدادات IP ولكن فقط قم بتغيير التحفيز file إلى 256 كتابة و256 قراءة
ff_0_0_0000_000_0
ff_0_0_0000_000_1
سترى الآن النسبة المئويةtage كـ 85، مما يعني أن DDR3 يوفر استخدامًا أفضل للحافلة لتسلسل طويل من عمليات الكتابة والقراءة.
طرق عامة لتحسين الأداء
ويمكن تقسيم العوامل المؤثرة على الكفاءة إلى قسمين:
- خاص بالذاكرة
- خاص بوحدة التحكم
الشكل 9 يعطيك أكثرview من المصطلحات الخاصة بالذاكرة.
على عكس SRAMs وBlock Memories، لا يقتصر أداء DDR2 أو DDR3 على الحد الأقصى لمعدل البيانات فقط.
يعتمد ذلك على عوامل توقيت عديدة، منها:
- تركد: تأخير أمر الصف (أو تأخير ras إلى cas).
- تكاس (كل): عنوان العمود الكمون القوية.
- الربح المستهدف: تأخير الشحن المسبق للصف.
- TRAS: الوقت النشط للصف (التنشيط للتغيير المسبق).
- لجنة الحقيقة والمصالحة: وقت دورة الصف. tRC = tRAS + tRP
- هدف التركيز الأساسي: تأخير الوصول إلى الرادوم. tRAC = tRCD + tCAS
- تي سي دبليو إل: Cas كتابة الكمون.
- تزك: وقت معايرة ZQ.
- ترفك: وقت دورة تحديث الصف
- وتر: الكتابة لتأخير القراءة. آخر معاملة كتابة لقراءة وقت الأمر.
- معدل النمو: اكتب وقت الاسترداد. آخر معاملة كتابة إلى وقت الشحن المسبق
يعتمد توقيت جميع المعلمات المدرجة على نوع الذاكرة المستخدمة ودرجة سرعة جزء الذاكرة.
يمكن العثور على مزيد من التفاصيل حول التعريفات ومواصفات التوقيت في DDR2 DDR3 JEDEC أو في أي ورقة بيانات لجهاز الذاكرة.
تعتمد الكفاءة بشكل أساسي على كيفية الوصول إلى الذاكرة. أنماط العناوين المختلفة تعطي نتائج كفاءة مختلفة.
النفقات العامة توقيت الذاكرة
- وقت التنشيط ووقت الشحن المسبق عند التغيير إلى بنوك/صفوف جديدة أو تغيير الصفوف الموجودة في نفس البنك. - لذلك إذا قمت بتقليل تغيير الصف، فقد يؤدي ذلك إلى إزالة tRCD وtRP.
- إرسال أوامر الكتابة أو القراءة المستمرة - الحفاظ على توقيت tCCD.
- تقليل تغيير أمر الكتابة للقراءة والقراءة لكتابة - اكتب وقت الاسترداد لتغيير الوصول إلى القراءة، ووقت دوران الناقل للتغيير من القراءة إلى الكتابة
- قم بتعيين فاصل زمني مناسب للتحديث.
- تتطلب ذاكرة DDR3 SDRAM دورات تحديث بفاصل زمني متوسط لـ tREFI.
- يمكن إصدار 8 أوامر تحديث إضافية كحد أقصى مسبقًا ("سحبت"). وهذا لا يقلل من عدد عمليات التحديث، ولكن الحد الأقصى للفاصل الزمني بين أمري تحديث محيطين يقتصر على 9 × tREFI
- الاستفادة من جميع البنوك - يفضل وجود آلية معالجة مناسبة.
- الصف-البنك-العمود: بالنسبة للمعاملة التي تحدث عبر مساحة عنوان تسلسلية، يفتح المركز تلقائيًا نفس الصف في البنك التالي لجهاز DRAM لمواصلة المعاملة عند الوصول إلى نهاية الصف الموجود. وهي مناسبة تمامًا للتطبيقات التي تتطلب إرسال حزم البيانات الكبيرة إلى مواقع العناوين التسلسلية.
- عمود صف البنك: عند عبور حد الصف، سيتم إغلاق الصف الحالي وسيتم فتح صف آخر داخل نفس البنك. MSB هو عنوان بنك يمكن استخدامه للتبديل من بنوك مختلفة. إنها مناسبة لإجراء معاملات أقصر وأكثر عشوائية على كتلة واحدة من الذاكرة لفترة من الوقت ثم الانتقال إلى كتلة أخرى (بنك)
- طول الانفجار
- يتم دعم BL 8 لـ DDR3 على السلسلة 7. يتمتع BC4 بكفاءة منخفضة جدًا تقل عن 50%. وذلك لأن وقت تنفيذ BC4 هو نفس وقت تنفيذ BL8. يتم إخفاء البيانات فقط داخل المكون.
- في الحالات التي لا ترغب فيها في كتابة سلسلة كاملة، يمكن النظر في قناع البيانات أو الكتابة بعد القراءة.
- قم بتعيين الفاصل الزمني ZQ المناسب (DDR3 فقط)
ترسل وحدة التحكم أوامر معايرة ZQ Short (ZQCS) وZQ Long (ZQCL).- الالتزام بمعيار DDR3 Jedec
- تمت مناقشة معايرة ZQ في القسم 5.5 من معيار JEDEC Spec JESD79-3 DDR3 SDRAM
- تقوم معايرة ZQ بمعايرة الإنهاء عند القالب (ODT) على فترات منتظمة لمراعاة الاختلافات عبر VT
- المنطق موجود في Bank_common.v/vhd
- تحدد المعلمة Tzqcs المعدل الذي يتم به إرسال أمر معايرة ZQ إلى الذاكرة
- من الممكن تعطيل العداد والإرسال يدويًا باستخدام app_zq_req، وهو مشابه لإرسال التحديث يدويًا.
ارجع إلى (إجابة Xilinx 47924) للحصول على التفاصيل.
النفقات العامة للتحكم
- القراءات الدورية - الرجوع إلى (Xilinx إجابة 43344) للتفاصيل.
- لا تغير فترة القراءة
- تخطي القراءات الدورية أثناء الكتابة وإصدار عدد القراءات الفائتة قبل القراءة الحقيقية
- إعادة الترتيب – الرجوع (Xilinx إجابة 34392) للتفاصيل.
بالنسبة لتصميمات واجهة المستخدم وAXI، من الأفضل تمكين هذا.- إعادة الترتيب هو المنطق الذي يتطلع إلى العديد من الأوامر ويغير ترتيب أوامر المستخدم لجعل الأوامر غير المتعلقة بالذاكرة لا تشغل نطاقًا تردديًا صالحًا. يرتبط الأداء أيضًا بنمط حركة المرور الفعلي.
- استنادًا إلى نمط العنوان، تساعد إعادة الترتيب على تخطي الشحن المسبق وتنشيط الأوامر وتجعل tRCD وtRP لا يشغلان عرض نطاق البيانات.
- حاول زيادة عدد أجهزة البنك.
- معظم منطق وحدة التحكم موجود في أجهزة البنك وهي تتوافق مع بنوك DRAM
- تقوم آلة بنكية معينة بإدارة بنك DRAM واحد في أي وقت.
- يعد تعيين أجهزة البنك ديناميكيًا، لذا ليس من الضروري أن يكون لديك جهاز بنكي لكل بنك فعلي.
- يمكن تكوين أجهزة البنك، ولكنها عبارة عن مقايضة بين المساحة والأداء.
- العدد المسموح به من ماكينات البنك يتراوح من 2-8.
- افتراضيًا، يتم تكوين 4 أجهزة بنكية من خلال معلمات RTL.
- لتغيير أجهزة البنك، ضع في اعتبارك المعلمة nBANK_MACHS = 8 الموجودة في memc_ui_top Exampجنيه لـ 8 أجهزة بنكية – nBANK_MACHS = 8
أنت الآن على دراية بالعوامل التي تؤثر على الأداء.
خذ بعين الاعتبار تطبيقًا أوليًا يمنحك 512 بايت من البيانات لكل حزمة وتحتاج إلى حفظها في مواقع ذاكرة مختلفة. نظرًا لأن 512 بايت بيانات تساوي 64 دفعة بيانات DDR3، أعد تشغيل الملف السابقampالتصميم مع التحفيز file تحتوي على 512 كتابة و512 قراءة وتبديل الصفوف لكل 64 كتابة أو قراءة:
- 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
في نهاية المحاكاة ستلاحظ أن نسبة استخدام الحافلات تصل إلى 77 بالمائة.
الشكل 11: إحصائيات الأداء لعدد 512 عملية كتابة و512 قراءة - تبديل الصفوف لعدد 64 عملية كتابة أو قراءة.
يمكنك الآن تطبيق المعرفة التي تعلمتها في القسم السابق لتحسين الكفاءة. مع view لاستخدام جميع البنوك بدلاً من تغيير الصف، قم بتعديل نمط العنوان لتغيير البنك كما هو موضح أدناه.
وهذا يعادل إعداد ROW_BANK_Column في إعداد تعيين عنوان الذاكرة في 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
في نهاية المحاكاة، سترى أن نسبة استخدام الحافلة السابقة البالغة 77 بالمائة أصبحت الآن 87!
إذا كنت لا تزال بحاجة إلى كفاءة أعلى، فيمكنك اختيار أحجام حزم كبيرة تبلغ 1024 أو 2048 بايت، أو فكر في التحديث اليدوي.
ملحوظة: لا تشجع Xilinx على تجاوز تحديث وحدة التحكم لأننا غير متأكدين مما إذا كنت ستتمكن من تلبية توقيت التحديث التلقائي لـ Jedec الذي يؤثر على موثوقية البيانات.
من جانب وحدة التحكم، يمكنك تغيير nBANk_MACH ورؤية التحسن في الأداء.
ومع ذلك، قد يؤثر هذا على توقيت التصميم الخاص بك، يرجى الرجوع إلى (Xilinx إجابة 36505) للحصول على تفاصيل حول nBANK_MACH
افتح core_name_mig_sim.v file وقم بتغيير المعلمات nBANK_MACHS من 4 إلى 8 وأعد تشغيل المحاكاة. لكي تصبح قيمة المعلمة نافذة المفعول في الأجهزة، تحتاج إلى تحديث core_name_mig.v file.
لقد استخدمت نفس النمط حيث حصلنا على نسبة استخدام للحافلات تبلغ 87% (الشكل -12).
مع ضبط nBANK_MACHS على 8، تصل الكفاءة الآن إلى 90%.
لاحظ أيضًا أن وحدات التحكم ½ و ¼ تؤثر سلبًا على الكفاءة بسبب زمن الاستجابة الخاص بها.
على سبيل المثالample، نظرًا لأننا لا نستطيع إرسال الأوامر إلا كل 4 دورات CK، فهناك أحيانًا حشوة إضافية عند الالتزام بالحد الأدنى من مواصفات توقيت DRAM، مما قد يقلل الكفاءة من الناحية النظرية.
جرب وحدات تحكم مختلفة للعثور على وحدة التحكم التي تناسب متطلبات الكفاءة الخاصة بك.
مراجع
- Zynq-7000 AP SoC و7 Series FPGAs MIS v2.3 [UG586]
- مركز حلول Xilinx MIG http://www.xilinx.com/support/answers/34243.html
سجل المراجعة
13/03/2015 – الإصدار الأولي
تحميل PDF: دليل تقدير أداء Xilinx DDR2 MIG 7