WEBVTT

00:00.120 --> 00:00.960
المدرب: في هذا

00:00.960 --> 00:03.000
الدرس، سنتحدث عن ذاكرة ECC، المعروفة

00:03.000 --> 00:05.040
باسم رمز تصحيح الأخطاء.

00:05.040 --> 00:06.720
لكن أولاً، نحتاج إلى تغطية

00:06.720 --> 00:10.020
مفهوم عدم التكافؤ والتكافؤ من حيث الذاكرة.

00:10.020 --> 00:12.000
الآن عندما نتحدث عن عدم التكافؤ، هذه

00:12.000 --> 00:14.160
هي الذاكرة التي هي مجرد ذاكرة قياسية.

00:14.160 --> 00:16.200
إنه لا يتحقق من الأخطاء ويسمح بإدخال

00:16.200 --> 00:18.870
البيانات أو إخراجها من الذاكرة حسب الرغبة

00:18.870 --> 00:21.390
وهذا هو ما ستكون عليه معظم الذاكرة.

00:21.390 --> 00:23.910
يعد تصنيع عدم التكافؤ رخيصًا جدًا

00:23.910 --> 00:26.970
وله سرعة أعلى من ذاكرة التكافؤ.

00:26.970 --> 00:28.800
من ناحية أخرى، سيتم استخدام

00:28.800 --> 00:31.110
ذاكرة التكافؤ لإجراء فحص الأخطاء الأساسي

00:31.110 --> 00:32.610
وللتأكد من موثوقية محتويات

00:32.610 --> 00:34.890
الذاكرة وسلامتها.

00:34.890 --> 00:35.910
الآن وبسبب هذا،

00:35.910 --> 00:38.460
ستكون هذه الذاكرة أبطأ من الذاكرة غير المتماثلة

00:38.460 --> 00:40.440
ولكنها تتمتع بالموثوقية التي

00:40.440 --> 00:42.000
ستكون مطلوبة للخوادم وبعض

00:42.000 --> 00:44.910
محطات عمل سطح المكتب المتطورة.

00:44.910 --> 00:47.220
الآن الذاكرة التي لديها فحص التكافؤ ستكون

00:47.220 --> 00:49.320
قادرة على إجراء عملية حسابية أساسية

00:49.320 --> 00:50.490
بناءً على ما تراه للتحقق

00:50.490 --> 00:52.920
مما إذا كانت البيانات جيدة أم لا.

00:52.920 --> 00:55.110
وإذا كانت تلك البيانات جيدة، فسوف يستخدمها.

00:55.110 --> 00:57.240
وإذا لم يكن الأمر كذلك، فسيحدث خطأ ولكن

00:57.240 --> 00:58.560
لن يتمكن من إصلاحه.

00:58.560 --> 01:00.750
سيكون بإمكانه فقط أن يقول أن هناك خطأ هنا

01:00.750 --> 01:02.460
ولكني لا أعرف كيفية إصلاحه.

01:02.460 --> 01:04.860
الآن، يعمل هذا بشكل أساسي من خلال

01:04.860 --> 01:07.230
وجود بت تكافؤ مرتبط بكل بايت.

01:07.230 --> 01:10.230
لذا بدلاً من الحصول على ثماني بتات، أصبح لديك الآن تسع

01:10.230 --> 01:13.860
بتات لأن ثماني بتات بيانات بالإضافة إلى بت واحد للتكافؤ.

01:13.860 --> 01:16.200
الآن سيتم تعيين بت التكافؤ هذا في الوقت المناسب.

01:16.200 --> 01:17.970
وبعد ذلك، سيتم حسابها ومقارنتها

01:17.970 --> 01:19.830
عندما تقرأ من الذاكرة لتحديد ما إذا

01:19.830 --> 01:21.420
كان أي من البتات قد تغير منذ آخر

01:21.420 --> 01:24.330
مرة تمت فيها كتابة تلك البيانات في تلك الذاكرة.

01:24.330 --> 01:25.470
يقتصر هذا النوع من

01:25.470 --> 01:28.470
الفحص على اكتشاف أخطاء البتات المفردة.

01:28.470 --> 01:30.300
وإذا كان هناك بتتين تم تغييرهما،

01:30.300 --> 01:32.310
فقد ينجح فحص التكافؤ هذا بالفعل،

01:32.310 --> 01:35.550
لأنه تذكر، يمكن أن تكون البتات 0 أو 1 فقط.

01:35.550 --> 01:38.850
على سبيل المثال، لنفترض أنني قمت بتخزين

01:38.850 --> 01:39.683
الرقم 0 الذي

01:39.683 --> 01:44.460
يتم كتابته كـ 00000000 في النظام الثنائي.

01:44.460 --> 01:47.700
الآن، إذا قمت بجمع كل تلك البتات معًا، سأحصل على ثمانية

01:47.700 --> 01:50.400
أصفار مما يعطيني 0 لبت التكافؤ الخاص بي.

01:50.400 --> 01:52.560
الآن، إذا ذهبت لقراءة هذا الرقم من الذاكرة

01:52.560 --> 01:54.090
ورأيت أن هناك ثمانية أصفار،

01:54.090 --> 01:56.220
أقوم بجمعها معًا وأحصل على 0، 0 يطابق

01:56.220 --> 01:58.050
بت التكافؤ الخاص بي كـ 0، لذا فهذه

01:58.050 --> 01:59.850
بيانات جيدة.

01:59.850 --> 02:00.720
الآن، من ناحية

02:00.720 --> 02:02.430
أخرى، لنفترض أنني

02:02.430 --> 02:07.200
كنت أكتب الرقم 1 الذي يُكتب كـ 00000001.

02:07.200 --> 02:10.470
الآن، إذا قمت بجمع كل هذه الأرقام معًا، فسأحصل على 1.

02:10.470 --> 02:13.530
وسوف أضع ذلك في جزء التكافؤ الخاص بي من الجزء التاسع.

02:13.530 --> 02:15.720
ومن خلال القيام بذلك، قرأت الآن من ذلك

02:15.720 --> 02:17.133
وأحصل على 00000001.

02:19.560 --> 02:21.210
ولأن كل ذلك يصل إلى 1 وهذا

02:21.210 --> 02:22.410
يطابق بت التكافؤ

02:22.410 --> 02:24.060
الخاص بي، أعلم أن البيانات

02:24.060 --> 02:25.440
جيدة ولكن إذا وضعت

02:25.440 --> 02:27.240
ذلك في الذاكرة وظل هناك لبضع

02:27.240 --> 02:31.170
ساعات وتغير ذلك 1 إلى 0 عن طريق الصدفة، إذا قرأت الآن أحصل

02:31.170 --> 02:39.210
على 00000000، وأجمعها معًا، أحصل على 0، وأقارن ذلك ببت التكافؤ الخاص بي الذي يحتوي على 1، وهذا يخبرني الآن

02:39.210 --> 02:42.510
أن هناك خطأ وحدث خطأ ما.

02:42.510 --> 02:44.730
لا أعرف أيًا من تلك الأجزاء الثمانية تم تغييره

02:44.730 --> 02:46.560
ولكن تم تغيير واحدة منها على الأقل.

02:46.560 --> 02:47.580
الآن، من ناحية

02:47.580 --> 02:48.413
أخرى، إذا

02:48.413 --> 02:52.260
تم تغيير هذا الرقم من 00000001 إلى شيء

02:52.260 --> 02:57.210
مثل 01010001، أصبح لدي الآن بتان تم تغييرهما من 0

02:57.210 --> 02:58.950
إلى 1 عن طريق الصدفة

02:58.950 --> 03:01.590
بواسطة الذاكرة.

03:01.590 --> 03:04.260
عندما أنظر إلى التكافؤ الخاص بي، فإنه سيظل 1 لأنه

03:04.260 --> 03:06.930
عندما أقوم بإضافة هذه الأرقام، إذا كان رقمًا فرديًا،

03:06.930 --> 03:08.940
فسيكون 1 لبت التكافؤ الخاص بي.

03:08.940 --> 03:10.770
وإذا قمت بجمعها وكان رقمًا

03:10.770 --> 03:12.090
زوجيًا، فسيكون 0.

03:12.090 --> 03:13.500
لذا، كما ترون، لن تتمكن

03:13.500 --> 03:14.940
من اكتشاف الخطأ إذا

03:14.940 --> 03:17.340
تم تغيير اثنين من البتات داخل هذا

03:17.340 --> 03:20.100
إذا كنت تستخدم حساب نوع التكافؤ.

03:20.100 --> 03:23.490
الآن، الخبر السار هو أن حوالي 90% من معظم الأخطاء ستكون

03:23.490 --> 03:25.770
عبارة عن خطأ من نوع بت واحد، وبالتالي

03:25.770 --> 03:28.080
فإن التحقق من التكافؤ يمكن أن يكون عادةً

03:28.080 --> 03:30.000
كافيًا لمعظم مواقفنا.

03:30.000 --> 03:31.530
ولكن إذا كنت تتعامل مع شيء مثل

03:31.530 --> 03:33.360
تشغيل خوادم لأحد البنوك، فإن وجود

03:33.360 --> 03:35.520
أي نوع من الأخطاء قد يكون أمرًا سيئًا.

03:35.520 --> 03:37.890
لذلك نريد شيئًا أفضل من

03:37.890 --> 03:40.650
التكافؤ وهنا يأتي دور ECC.

03:40.650 --> 03:43.830
الآن ECC تعني رمز تصحيح الخطأ.

03:43.830 --> 03:45.930
رمز تصحيح الخطأ هو نوع الذاكرة الذي

03:45.930 --> 03:48.390
يأخذ التكافؤ إلى المستوى التالي.

03:48.390 --> 03:50.460
الآن، لا يمكنه فقط اكتشاف وجود خطأ،

03:50.460 --> 03:51.810
تمامًا كما يفعل التكافؤ،

03:51.810 --> 03:54.780
بل يمكنه أيضًا تصحيح هذا الخطأ لك أيضًا.

03:54.780 --> 03:57.300
الآن أصبحت ECC أبطأ قليلاً من التكافؤ

03:57.300 --> 03:59.490
وهو أيضًا أبطأ من عدم التكافؤ.

03:59.490 --> 04:00.990
وبالتالي فإنك تتخلى عن

04:00.990 --> 04:02.610
بعض الأداء مقابل هذه الإمكانية

04:02.610 --> 04:04.290
الإضافية ولكنك تحصل على قدر

04:04.290 --> 04:06.300
أكبر من التكامل والموثوقية من ذاكرتك

04:06.300 --> 04:07.950
عند استخدام ECC لأنها ستكون

04:07.950 --> 04:11.760
قادرة على اكتشاف تلك الأخطاء وإصلاحها.

04:11.760 --> 04:14.040
بشكل عام، لن ترى سوى رمز تصحيح الأخطاء

04:14.040 --> 04:15.570
(ECC) أو رمز تصحيح الأخطاء

04:15.570 --> 04:18.660
الذي يتم استخدامه في محطات العمل أو الخوادم المتطورة

04:18.660 --> 04:20.190
بالفعل بسبب التكلفة الإضافية

04:20.190 --> 04:22.500
وهذا المستوى العالي من التكامل مطلوب

04:22.500 --> 04:25.230
فقط في تلك الأنواع من البيئات.

04:25.230 --> 04:26.340
ربما تتساءل

04:26.340 --> 04:28.980
الآن، كيف تحدد ECC بالفعل الخطأ

04:28.980 --> 04:30.990
وكيفية إصلاحه؟

04:30.990 --> 04:32.040
حسنًا، للقيام بذلك،

04:32.040 --> 04:33.960
سيتم استخدام ما يعرف بالذاكرة المخزنة

04:33.960 --> 04:35.700
مؤقتًا أو المسجلة.

04:35.700 --> 04:37.980
تحتوي الذاكرة المخزنة مؤقتًا أو الذاكرة

04:37.980 --> 04:39.570
المسجلة الآن على أجهزة إضافية

04:39.570 --> 04:42.870
ستوضع بين الذاكرة ووحدة المعالجة المركزية أو المعالج.

04:42.870 --> 04:44.850
يُسمى هذا الجهاز بالسجل ويقوم بتخزين

04:44.850 --> 04:46.290
البيانات في مخزن مؤقت قبل

04:46.290 --> 04:48.720
إرسالها إلى وحدة المعالجة المركزية.

04:48.720 --> 04:50.760
يتم استخدام هذه الميزة كمقياس موثوقية في

04:50.760 --> 04:51.990
الكثير من الأنظمة وخاصة

04:51.990 --> 04:53.550
الأنظمة مثل الخوادم التي تحتوي

04:53.550 --> 04:55.380
على الكثير من وحدات الذاكرة المختلفة

04:55.380 --> 04:56.910
حيث يمكن أن تحدث أخطاء.

04:56.910 --> 04:59.730
تتطلب هذه الأنظمة التخزين المؤقت أو تسجيل البيانات

04:59.730 --> 05:01.350
من أجل تقليل الحمل الكهربائي

05:01.350 --> 05:02.370
الذي تستخدمه هذه الأنظمة

05:02.370 --> 05:04.680
التي تحتوي على كميات كبيرة من وحدات الذاكرة،

05:04.680 --> 05:06.450
ويمكن إقران ذلك بذاكرة كود التكافؤ

05:06.450 --> 05:08.220
أو تصحيح الأخطاء لتتمكن من منحك

05:08.220 --> 05:10.140
تلك الموثوقية الإضافية التي الذي

05:10.140 --> 05:13.020
تبحث عنه وتكتشف تلك الأخطاء.

05:13.020 --> 05:15.510
الآن، لكي تتمكن من استخدام وحدات تعليمات برمجية لتصحيح الأخطاء،

05:15.510 --> 05:18.840
يجب أن تدعمها اللوحة الأم لديك بالإضافة إلى وحدة المعالجة المركزية لديك.

05:18.840 --> 05:21.450
إذا كان أي من هذه المكونات لا يدعم ECC،

05:21.450 --> 05:24.450
فحتى إذا قمت بشراء وحدات ECC التي تكلف أكثر،

05:24.450 --> 05:27.150
فلن تحصل على فائدة ECC الإضافية.

05:27.150 --> 05:28.800
لذا ضع ذلك في الاعتبار.

05:28.800 --> 05:32.700
كما أن معظم اللوحات الأم إما تدعم ECC أو لا تدعمها.

05:32.700 --> 05:34.140
إنه ليس خيارًا بشكل عام.

05:34.140 --> 05:36.690
لذا، إذا قمت بشراء لوحة أم تدعم ECC،

05:36.690 --> 05:38.940
فسيتعين عليك شراء وحدات ECC

05:38.940 --> 05:41.490
وهي وحدات الذاكرة المسجلة.

05:41.490 --> 05:44.160
الآن، إذا وجدت لوحة أم تدعم وحدات

05:44.160 --> 05:46.170
ECC أو وحدات غير تابعة لـ

05:46.170 --> 05:49.110
ECC، فلن تدعم كليهما في نفس الوقت.

05:49.110 --> 05:51.570
لذلك يجب أن تكون جميع الوحدات النمطية الخاصة بك ECC وإلا

05:51.570 --> 05:53.880
فلن تكون أي من الوحدات النمطية الخاصة بك ECC.

05:53.880 --> 05:56.700
قد يؤدي وجود خليط منها إلى حدوث أخطاء في النظام ولن

05:56.700 --> 05:58.950
تعرف اللوحة الأم كيفية التعامل معها.

05:58.950 --> 06:00.210
الآن آخر شيء أريد أن أذكره

06:00.210 --> 06:02.370
هو أنه إذا كنت تستخدم DDR5، فإن DDR5

06:02.370 --> 06:04.710
به بعض الأخطاء في التحقق من الأخطاء الداخلية

06:04.710 --> 06:06.780
للوحدات نفسها.

06:06.780 --> 06:10.500
لا يعتبر هذا ECC أو وحدة ECC.

06:10.500 --> 06:11.850
وبالتالي يمكن استخدام

06:11.850 --> 06:14.520
تصحيح الخطأ داخل وحدات DDR5 الأحدث على اللوحات

06:14.520 --> 06:17.160
الأم التي لا تدعم ECC وسيظل لديك بعض القدرة

06:17.160 --> 06:19.710
على التحقق من الأخطاء.

06:19.710 --> 06:21.420
يعد هذا شكلاً مختلفًا من أشكال التحقق

06:21.420 --> 06:23.910
من الأخطاء ولا يعتبر رمزًا لتصحيح الأخطاء.

06:23.910 --> 06:26.250
لذا ضع ذلك في اعتبارك ولا تدع ذلك يربكك عندما

06:26.250 --> 06:27.810
تكون بالخارج في الميدان.

06:27.810 --> 06:29.640
يعد هذا شكلاً مختلفًا من أشكال التحقق

06:29.640 --> 06:32.040
من الأخطاء ولا يزال من الممكن بيع وحدات DDR5 كوحدات

06:32.040 --> 06:34.740
ECC أو وحدات غير تابعة لـ ECC، لأنه بالإضافة إلى التحقق

06:34.740 --> 06:37.290
من الأخطاء الداخلية، يمكنها أيضًا العمل مع وحدة

06:37.290 --> 06:39.840
المعالجة المركزية واللوحة الأم إذا كانت تدعم ECC

06:39.840 --> 06:41.580
وكانت كذلك. الآن خطأ في تصحيح التعليمات

06:41.580 --> 06:44.040
البرمجية كذلك.

06:44.040 --> 06:45.510
أعلم أن هذا الأمر مربك بعض الشيء.

06:45.510 --> 06:48.210
لذا كن على علم بذلك عندما تكون في الميدان.
