سؤال

أنا أحضن حاليا من خلال دليل هندسة الذراع ل ARMV7 الأساسية. في الفصل A3.5.3 حول ذراع الوصول إلى الذاكرة، ينص على ذلك:

إذا كان الحمل الذري نسخة واحدة يتداخل متجر ذرية واحدة بالنسبة لأي من البايتات المتداخلة، يقوم الحمل بإرجاع البيانات المكتوبة يتم إدراج الكتابة في ترتيب التماسك من هذا البايت من قبل متجر الذرية نسخة واحدة ثم يجب أن يرجع الحمل البيانات من نقطة في أمر التماسك في وقت سابق من الكتب المدرجة في طلب التماسك من قبل متجر الذرية نسخة واحدة من كل من بايت متداخلة

باسم المتكلم الإنجليزي غير الأصلي أعترف أنني تحديا قليلا في فهم هذه الجملة.

هل هناك سيناريو حيث لا يتم إدراج الكتب إلى بايت الذاكرة في ترتيب التماسك وبالتالي لا يتم تطبيق ما ورد أعلاه؟ إذا لم يكن الأمر كذلك، فأنا صقل أن أقول إن تقصير الجملة وإعادة صياغة الجملة بما يلي:

إذا حدث الحمل للعودة بايت واحد على الأقل من الكتابة، ثم يجب أن يؤدي الحمل إلى إرجاع جميع البايتات المتداخلة من نقطة لا في وقت سابق من مكان إدراج الكتابة في ترتيب الاتساق لجميع البايتات المتداخلة.

لا يزال ينقل نفس المعنى؟

هل كانت مفيدة؟

المحلول

أرى أن الصياغة في ذراع Armv8، والتي تحاول حقا إزالة أي غموض محتمل في الكثير من الأماكن (حتى لو كانت تجعل قسم طلب الذاكرة غير قابل للقراءة تقريبا).

من حيث التفاهم العام (على عكس تنفيذ المواصفات)، لا يضر القليل من الغموض دائما، لذلك فشلت في جعله بالتأكيد مسح ما يعنيه "موقع الذاكرة"، أعتقد أن دليل V7 القديم (DDI0406.B) هو أجمل قراءة في هذه الحالة:

عملية قراءة أو كتابة هي الذرية نسخة واحدة إذا كانت الشروط التالية صحيحا:

  • بعد أي عدد من عمليات الكتابة إلى موقع الذاكرة، فإن قيمة موقع الذاكرة هي القيمة التي كتبها إحدى عمليات الكتابة. من المستحيل أن يأتي جزء من قيمة موقع الذاكرة من عملية كتابة واحدة وجزء آخر من القيمة للمجيء من عملية كتابة مختلفة

  • عند إجراء عملية قراءة وتشغيل الكتابة على نفس موقع الذاكرة، فإن القيمة التي تم الحصول عليها بواسطة عملية القراءة هي واحدة من:

    • قيمة موقع الذاكرة قبل عملية الكتابة
    • قيمة موقع الذاكرة بعد عملية الكتابة.

    لا يتعلق الأمر أبدا بأن قيمة عملية القراءة هي جزء جزئيا لموقع الذاكرة قبل عملية الكتابة وجزئيا قيمة موقع الذاكرة بعد عملية الكتابة.

لذلك فهمك صحيح - النقطة المحددة للعملية الذرية نسخة واحدة هي أنه في أي وقت معين يمكنك فقط رؤية إما جميع من ذلك.

هناك حالة في V7 حيث (إذا قمت بتفسيرها بشكل صحيح) اثنين من المتاجر الذرية الذرية عادة ما تحدث في نفس الموقع في نفس الوقت ولكن بأحجام مختلفة كسر أي ضمانات من الذرية، لذلك من الناحية النظرية لك يمكن أن تلاحظ بعض المزيج غير المتوقع من البايتات هناك - يبدو أن هذا قد تمت إزالته في V8.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top