التعامل مع الأحمال Altivec ومخازن بغض النظر عن PPC endianness؟

StackOverflow https://stackoverflow.com/questions/1639964

  •  08-07-2019
  •  | 
  •  

سؤال

ولدي بعض رمز SIMD في Altivec معالجة 32 بت القيم عدد صحيح في نفس الوقت. في بعض الحالات أريد تحميل الأعداد الصحيحة كما endian قليلا، في الحالات الأخرى التي endian كبيرة (ملاحظة: هذا الخيار بغض النظر عن endianess CPU الأصلي؛ لأنه يقوم على ما الخوارزمية يعمل). القيام مبادلة بايت الفعلي من السهل جدا استخدام عمليات بدل ترتيب كذا Altivec، كما موثقة من قبل شركة آبل .

والجزء انا قلق هو أن باور يسمح إما كبيرة أو صغيرة عملية endian، وحتى أنا لا أعرف ما إذا كنت بحاجة لمبادلة بايت على الأحمال endian صغيرة / مخازن أو كبيرة endian الأحمال / مخازن. (في الوقت الراهن قانون بلدي فقط دائما يفعل ذلك لendian القليل وأبدا مبادلة لالتقاط ذاكرة endian كبيرة، والذي يعمل بشكل جيد على 970 أنا حاليا باستخدام منذ بالطبع انها تعمل الكبير-endian).

ومن ما يمكن العثور عليها، ببكس في وضع Endian طفيف نادرة نسبيا، ولكنها موجودة، ومثالي أود أن يكون عمل قانون بلدي بشكل صحيح وبسرعة بغض النظر عن الوضع.

هل هناك طريقة التعامل مع الأحمال endian كبيرة وصغيرة لAltiVec سجلات بغض النظر عن endianness وحدة المعالجة المركزية؟ هل هناك قضايا أخرى تتعلق بهذا يجب أن أعرفها؟ ويكيبيديا لديه (uncited، وبطبيعة الحال) البيان:

و"عمليات AltiVec، على الرغم من كونه 128 بت، وتعامل كما لو كانت 64 بت، وهذا يسمح للتوافق مع اللوحات Endian طفيف التي تم تصميمها قبل AltiVec."

ومما يجعلني أعتقد أنه قد يكون هناك قبح الآخر محدد لAltiVec في وضع Endian طفيف.

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

المحلول

وسوف الى حد كبير كل رمز باور هناك تحمل كبيرة-endian وسوف كافة التعليمات البرمجية ARM هناك تحمل endian قليلا.

وهناك عدد قليل من الحالات المتخصصة حيث يتم استخدام endian مبادلة - على ما يبدو تعتمد VirtualPC على وضع endian قليلا، وبالتالي في البداية لم تعمل على G5 (التي لا تشمل ذلك) - ولكن أود أن لا تقلق حول هذه .

وARM لديه مشكلة مماثلة في وضع كبيرة-endian: الزوجي والمختلط endian. ويتحقق "شبه endianness" حسب XORing البتات عنوان ذو الترتيب المنخفض مع 0x2 (للhalfword يصل) و0x3 (للبايت يصل) بحيث يتم تبديل ترتيب فعال في الكلمة 32 بت، ولكن هذا فواصل لل64- يصل قليلا. أظن يستخدم نفس الخدعة على باور إلا به 64 بت في وقت واحد.

scroll top