وحدة فك التشفير ذات العنوان المجموعي

في تصميم وحدات المعالجة المركزية ، يُعد استخدام مُفكِّك عناوين المجموع (SAD) أو مُفكِّك ذاكرة عناوين المجموع (SAM) طريقةً لتقليل زمن الوصول إلى ذاكرة التخزين المؤقت لوحدة المعالجة المركزية وحساب العناوين (الأساس + الإزاحة). ويتحقق ذلك من خلال دمج عملية جمع توليد العناوين مع عملية فك التشفير في ذاكرة التخزين المؤقت SRAM .

ملخص

يُفضّل عادةً وضع ذاكرة التخزين المؤقت للبيانات من المستوى الأول (L1) في أهم موارد وحدة المعالجة المركزية، لأنّ قلةً من العوامل تُحسّن عدد التعليمات لكل دورة (IPC) بشكلٍ مباشرٍ مثل ذاكرة تخزين مؤقت أكبر، إلا أنّ الوصول إلى ذاكرة التخزين المؤقت الأكبر يستغرق وقتًا أطول، كما أنّ استخدام تقنية التجزئة (piplening) في ذاكرة التخزين المؤقت يُؤدّي إلى تدهور عدد التعليمات لكل دورة. إحدى طرق تقليل زمن الوصول إلى ذاكرة التخزين المؤقت للبيانات من المستوى الأول (L1) هي دمج عملية جمع توليد العناوين مع عملية فك التشفير في ذاكرة الوصول العشوائي الثابتة (SRAM) الخاصة بذاكرة التخزين المؤقت.

لا يزال يتعين إجراء عملية جمع عناوين الذاكرة، لأن وحدات أخرى في مسار الذاكرة ستستخدم العنوان الظاهري الناتج. سيتم إجراء هذا الجمع بالتوازي مع عملية الجمع/فك التشفير المدمجة الموضحة هنا.

إنّ أكثر العمليات التكرارية فائدةً لتسريعها هي عملية تحميل، تليها استخدام تلك العملية في سلسلة من عمليات الأعداد الصحيحة تؤدي إلى عملية تحميل أخرى. بافتراض أن نتائج التحميل تُتجاوز بنفس أولوية نتائج الأعداد الصحيحة، فمن الممكن تلخيص هذه العملية التكرارية على أنها عملية تحميل متبوعة بعملية تحميل أخرى، كما لو كان البرنامج يتبع قائمة مرتبطة .

يفترض الجزء المتبقي من هذه الصفحة بنية مجموعة تعليمات (ISA) ذات نمط عنونة واحد (سجل + إزاحة)، وذاكرة تخزين مؤقتة للبيانات مفهرسة افتراضيًا، وعمليات تحميل لتمديد الإشارة قد تكون متغيرة العرض. تتوافق معظم بنى RISC ISA مع هذا الوصف. في بنى مثل Intel x86 ، يتم جمع ثلاثة أو أربعة مدخلات لتوليد العنوان الافتراضي. يمكن اختزال عمليات الجمع متعددة المدخلات إلى عملية جمع ثنائية المدخلات باستخدام دوائر جمع لحفظ الحمل، وتبقى المشكلة كما هو موضح أدناه. إذن، تتمثل المشكلة الأساسية المتكررة في دائرة الجمع ، ووحدة فك التشفير ، وخط كلمة SRAM، وخطوط بت SRAM، ومضخمات الإشارة، ومُوَزِّعات توجيه البايت ، ومُوَزِّعات التجاوز.

في هذا المثال، نفترض وجود ذاكرة تخزين مؤقتة للبيانات بسعة 16 كيلوبايت ذات تعيين مباشر ، تُرجع قيمًا مُحاذية للكلمات المزدوجة (8 بايت). يبلغ حجم كل سطر من ذاكرة الوصول العشوائي الثابتة (SRAM) 8 بايت، ويبلغ عدد الأسطر 2048 سطرًا، ويتم الوصول إليها عبر العنوان Addr[13:3]. ينطبق مبدأ الوصول إلى ذاكرة الوصول العشوائي الثابتة (SRAM) باستخدام مجموع العناوين على ذاكرات التخزين المؤقتة ذات الترابطات المحددة. 

ذاكرة التخزين المؤقت ذات العناوين الجمعية: دمج الجامع والمفكك

يحتوي مُفكِّك شفرة SRAM في هذا المثال على مدخل ذي 11 بت، Addr[13:3]، و2048 مخرجًا، وهي خطوط الكلمات المُفكَّكة. يتم رفع مستوى خط كلمة واحد استجابةً لكل قيمة فريدة من Addr[13:3].

في أبسط أشكال وحدة فك التشفير، يُمثل كل سطر من الأسطر الـ 2048 منطقيًا بوابة AND . تُمرر البتات الـ 11 (لنسميها A[13:3]) ومعكوساتها (لنسميها B[13:3]) عبر وحدة فك التشفير. لكل سطر، تُغذى 11 بتًا أو معكوساتها إلى بوابة AND ذات 11 مدخلًا. على سبيل المثال، العدد العشري 1026 يُعادل العدد الثنائي 10000000010. تكون وظيفة السطر 1026 كما يلي:

wordline[1026] = A[13] & B[12] & B[11] & B[10] & B[9] & B[8] & B[7] & B[6] & B[5] & A[4] & B[3]

تجمع كل من سلسلة الحمل في كل من وحدة الجمع ووحدة فك التشفير المعلومات من كامل عرض جزء الفهرس من العنوان. إن جمع المعلومات مرتين عبر كامل العرض يُعد تكرارًا غير ضروري. أما ذاكرة الوصول العشوائي الثابتة ذات عنوان المجموع، فتجمع المعلومات مرة واحدة فقط من خلال تنفيذ وحدتي الجمع وفك التشفير معًا في بنية واحدة.

تذكر أن ذاكرة الوصول العشوائي الثابتة (SRAM) مُفهرسة بنتيجة عملية الجمع. لنُسمِّي المجموعين R (للمسجل) و O (للإزاحة إلى ذلك المسجل). سيقوم مُفكِّك الشفرة المُعنون بالمجموع بفك تشفير R+O. لكل سطر من أسطر مُفكِّك الشفرة، لنُسمِّي رقم السطر L.

لنفترض أن جهاز فك التشفير الخاص بنا قام بتشغيل كل من R و O عبر كل خط من خطوط فك التشفير، وأن كل خط من خطوط فك التشفير قام بتنفيذ ما يلي:

wordline[L] = (R+O)==L
(R+O)==L <=> R+OL==0 <=> R+O+~L+1==0 <=> R+O+~L==-1==11..1.

يمكن استخدام مجموعة من الجامعات الكاملة لاختزال R+O+~L إلى S+C (وهذا جمع مع حفظ الحمل). S+C==11..1 <=> S==~C. لن يكون هناك حمل في عملية الجمع النهائية. لاحظ أنه بما أن C عبارة عن صف من الحمل، فإنه يُزاح للأعلى بمقدار بت واحد، بحيث يكون R[13:3]+O[13:3]+~L[13:3] == {0,S[13:3]} + {C[14:4],0}

بهذه الصيغة، يُمثل كل صف في وحدة فك التشفير مجموعة من دوائر الجمع الكاملة التي تُحوّل سجل الأساس والإزاحة ورقم الصف إلى تنسيق حفظ الحمل، بالإضافة إلى مُقارن . سيتبين لاحقًا أن معظم هذه المكونات زائدة عن الحاجة، ولكن من الأسهل حاليًا تصور وجودها جميعًا في كل صف.

تجاهل البتات الأقل أهمية: اختيار متأخر عند الحمل

تتحقق الصيغة أعلاه من نتيجة عملية الجمع كاملةً. مع ذلك، في وحدة فك تشفير ذاكرة التخزين المؤقت لوحدة المعالجة المركزية، تكون نتيجة الجمع عبارة عن عنوان بايت، وعادةً ما يتم فهرسة ذاكرة التخزين المؤقت بعنوان أكبر، في مثالنا، عنوان كتلة 8 بايت. يُفضّل تجاهل بعض البتات الأقل أهمية (LSBs) من العنوان. لكن لا يمكن تجاهل البتات الأقل أهمية للمجموعين لأنها قد تُنتج بتة حمل تُغيّر الكلمة المزدوجة المُعنونة.

إذا جُمِعَ R[13:3] و O[13:3] للحصول على فهرس I[13:3]، فإن العنوان الفعلي Addr[13:3] يساوي إما I[13:3] أو I[13:3] + 1، وذلك بحسب ما إذا كان R[2:0]+O[2:0] يُولِّد عملية ترحيل. يمكن جلب كل من I و I+1 إذا كان هناك بنكان من ذاكرة SRAM، أحدهما للعناوين الزوجية والآخر للعناوين الفردية. يحتوي البنك الزوجي على العناوين 000xxx، 010xxx، 100xxx، 110xxx، إلخ، بينما يحتوي البنك الفردي على العناوين 001xxx، 011xxx، 101xxx، 111xxx، إلخ. يمكن بعد ذلك استخدام عملية الترحيل من R[2:0]+O[2:0] لاختيار الكلمة المزدوجة الزوجية أو الفردية التي سيتم جلبها لاحقًا.

لاحظ أن جلب البيانات من مجموعتين من ذاكرة الوصول العشوائي الثابتة (SRAM) بحجم نصف الحجم سيستهلك طاقة أكبر من جلب البيانات من مجموعة واحدة كاملة الحجم، لأنه يتسبب في المزيد من التبديل في مكبرات الاستشعار ومنطق توجيه البيانات.

جيل المباريات

I[13:3]حتى خط البنكخط جلب البنك الغريب
100100101
101110101
110110111

بالرجوع إلى الرسم التخطيطي المجاور، سيجلب البنك الزوجي الخط 110 عندما يكون I[13:3]==101 أو I[13:3]==110. وسيجلب البنك الفردي الخط 101 عندما يكون I[13:3]==100 أو I[13:3]==101.

بشكل عام، يجب أن يجلب بنك SRAM الفردي السطر Lo==2N+1 عندما يكون I[13:3]==2N أو I[13:3]==2N+1. يمكن كتابة الشرطين على النحو التالي:

I[13:3] = Lo-1 => R[13:3] + O[13:3] + ~Lo+1 = 11..11 => R[13:3] + O[13:3] + ~Lo = 11..10 I[13:3] = لو => R[13:3] + O[13:3] + ~Lo = 11..11

تجاهل الرقم الأخير من المقارنة: (S+C)[13:4]==11..1

وبالمثل، يقوم بنك SRAM الزوجي بجلب السطر Le==2N عندما يكون I[13:3]==2N أو I[13:3]==2N-1. تُكتب الشروط كما يلي، مع تجاهل الرقم الأخير من المقارنة مرة أخرى.

I[13:3] = Le-1 => R[13:3] + O[13:3] + ~Le = 11..10 I[13:3] = لو => R[13:3] + O[13:3] + ~لو = 11..11

التنفيذ على مستوى البوابة

 R 13 ... R 6 R 5 R 4 R 3 O 13 ... O 6 O 5 O 4 O 3 L 13 ... L 6 L 5 L 4 L 3 -------------------------- S 13 ... S 6 S 5 S 4 S 3 C 14 C 13 ... C 6 C 5 C 4

قبل حذف التكرار بين الصفوف، راجع ما يلي:

يُنفّذ كل صف من صفوف كل وحدة فك تشفير، لكل بنك من البنكين، مجموعة من دوائر الجمع الكاملة التي تُختزل الأرقام الثلاثة المراد جمعها (R[13:3]، O[13:3]، وL) إلى رقمين (S[14:4] وC[13:3]). يتم تجاهل البت الأقل أهمية (==S[3]). كما يتم تجاهل بت الحمل (==C[14]). يتطابق الصف إذا كان S[13:4] == ~C[13:4]، وهو ما يُعرف بـ &( xor(S[13:4], C[13:4])).

من الممكن تخصيص دوائر الجمع الكاملة جزئيًا إلى دوائر AND وOR وXOR وXNOR ثنائية المدخلات لأن المدخل L ثابت. وتكون التعبيرات الناتجة مشتركة بين جميع خطوط وحدة فك التشفير ويمكن تجميعها في الأسفل.

S 0;i  = S(R i , O i , 0) = R i xor O i S 1;i  = S(R i , O i , 1) = R i xnor O i C 0;i+1 = C(R i , O i , 0) = R i and O i C 1;i+1 = C(R i , O i , 1) = R i or O i .

في كل موضع رقمي، يوجد احتمالان فقط لـ S i ، واحتمالان لـ C i ، وأربعة احتمالات لـ XOR بينهما:

L i =0 و L i-1 =0: X 0;0;i = S 0;i xor C 0;i = R i xor O i xor (R i-1 و O i-1 ) L i =0 و L i-1 =1: X 0;1;i = S 0;i xor C 1;i = R i xor O i xor (R i-1 أو O i-1 ) L i = 1 و L i-1 = 0: X 1;0;i = S 1;i xor C 0;i = R i xnor O i xor (R i-1 و O i-1 ) = !X 0;0;i L i = 1 و L i-1 = 1: X 1;1;i = S 1;i xor C 1;i = R i xnor O i xor (R i-1 أو O i-1 ) = !X 0;1;i

قد يقوم أحد أجهزة فك التشفير الممكنة لهذا المثال بحساب هذه التعبيرات الأربعة لكل بت من البتات من 4 إلى 13، ثم يمرر جميع الأسلاك الأربعين عبر جهاز فك التشفير. يختار كل سطر من أسلاك جهاز فك التشفير سلكًا واحدًا من الأسلاك الأربعة لكل بت، ويتكون من بوابة AND ذات عشرة مداخل.

ما الذي تم حفظه؟

يتكون مسار ذاكرة التخزين المؤقت للبيانات الأبسط من جامع متبوع بوحدة فك تشفير تقليدية. في نظام ذاكرة التخزين المؤقت الخاص بنا، سيكون المسار الحرج عبارة عن جامع 14 بت، ينتج القيمتين الصحيحة والمكملة، متبوعًا ببوابة AND 11 بت لكل صف من صفوف وحدة فك التشفير.

في التصميم ذي العنونة الجمعية، تبقى بوابة AND النهائية في وحدة فك التشفير، ولكن بعرض 10 بتات بدلاً من 11. وقد استُبدل الجامع بتعبير منطقي رباعي المدخلات عند كل بت. ويأتي توفير زمن الاستجابة من فرق السرعة بين الجامع وهذا التعبير رباعي المدخلات، وهو ما يعادل توفير ثلاث بوابات CMOS بسيطة تقريبًا.

إذا شعر القارئ أن هذا كان قدراً هائلاً من العمل المعقد لتحسين ثلاث بوابات في مسار حرج متعدد الدورات، فسيكون لدى القارئ تقدير أفضل للمستوى الذي يتم فيه تحسين وحدات المعالجة المركزية الحديثة.

تحسينات إضافية: فك التشفير المسبق

تتجنب العديد من تصميمات أجهزة فك التشفير استخدام بوابات AND ذات عدد كبير من المدخلات في خط فك التشفير نفسه، وذلك باستخدام مرحلة فك تشفير مسبق. على سبيل المثال، قد يتم فك تشفير جهاز فك تشفير ذي 11 بت مسبقًا إلى ثلاث مجموعات، كل منها مكونة من 4 بتات، و4 بتات، و3 بتات. تقوم كل مجموعة من 3 بتات بتشغيل 8 أسلاك في مصفوفة فك التشفير الرئيسية، بينما تقوم كل مجموعة من 4 بتات بتشغيل 16 سلكًا. يصبح خط فك التشفير حينها بوابة AND ثلاثية المدخلات. يمكن لهذا التنظيم الجديد توفير مساحة تنفيذ كبيرة واستهلاكًا أقل للطاقة.

يمكن تطبيق إعادة التنظيم نفسها على وحدة فك التشفير ذات العناوين المجمعة. يمكن اعتبار كل بت في الصيغة غير المُفكَّكة مسبقًا أعلاه بمثابة عملية جمع محلية ثنائية البت. أما مع فك التشفير المسبق، فإن كل مجموعة فك تشفير مسبق تُمثل عملية جمع محلية ثلاثية أو رباعية أو حتى خماسية البت، مع تداخل مجموعات فك التشفير المسبق بمقدار بت واحد.

تؤدي عملية فك التشفير المسبق عمومًا إلى زيادة عدد الأسلاك التي تمر عبر جهاز فك التشفير، وعادةً ما تحتوي أجهزة فك التشفير ذات العناوين المجمعة على ضعف عدد الأسلاك تقريبًا مقارنةً بجهاز فك التشفير البسيط المكافئ. وقد تكون هذه الأسلاك هي العامل المحدد لمقدار فك التشفير المسبق الممكن.

مراجع

  • يقدم بول ديمون شرحاً عن ذاكرة التخزين المؤقت ذات العناوين المجمعة في مقال على موقع realworldtech .
  • لدى Heald et al. [ 1 ] ورقة بحثية في ISSCC 1998 تشرح ما قد يكون ذاكرة التخزين المؤقت الأصلية ذات العنوان المجموع في Ultrasparc III.
  • تم وصف الذاكرة ذات العناوين المجموعية في

براءة اختراع أمريكية رقم 5,754,819 ، 19 مايو 1998، بعنوان: طريقة وبنية فهرسة ذاكرة منخفضة زمن الوصول . المخترعون: ويليام ل. لينش (بالو ألتو، كاليفورنيا)، غاري ر. لاوترباخ (لوس ألتوس، كاليفورنيا)؛ المالك: شركة صن مايكروسيستمز (ماونتن فيو، كاليفورنيا)، تاريخ الإيداع: 28 يوليو 1994

  • يُنسب الفضل في هذا المنشور إلى واحد على الأقل من المخترعين المذكورين في براءة اختراع متعلقة بفك تشفير العناوين بدون حمل:

تقييم شروط A + B = K بدون انتشار الحمل (1992) جوردي كورتاديلا، خوسيه إم. لابيريا، معاملات IEEE للحواسيب ،

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

براءة اختراع أمريكية رقم 5,619,664، معالج ذو بنية لتحسين تسلسل تعليمات العمليات الحسابية عن طريق إعادة توجيه نماذج البيانات الوسيطة الزائدة ، مُنحت في 18 أبريل 1997، المخترع: أندرو ف. جليو (هيلزبورو، أوريغون)؛ المالك: شركة إنتل (سانتا كلارا، كاليفورنيا)، رقم الطلب: 08/402,322، تاريخ الإيداع: 10 مارس 1995

  1. هيلد، ر.؛ وآخرون  (1998). "ذاكرة تخزين مؤقتة ذات عناوين مجموعية بسعة 64 كيلوبايت مع دورة 1.6 نانوثانية وزمن استجابة 2.6 نانوثانية". ملخص الأوراق التقنية لمؤتمر ISSCC . الصفحات 350-351 . doi : 10.1109/ISSCC.1998.672519 .