أحد صفحات التقدم العلمي للنشر
علوم الكمبيوتر

محرّكات تَعرُّف دفوق البيانات الحاسوبية

محرّكات تَعرُّف دفوق البيانات الحاسوبية(*)

 تصاميم حاسوبية جديدة تعالج بكفاءة أكثر دفوق(1)البيانات
من أجل الكشف عن الکيروسات الحاسوبية والسپامات(2).

<ستكس.G>

 

http://oloommagazine.com/images/Articles/2006/1-2/scan0006.gif


إن لقد استمرّت صناعة الحواسيب مدة أطول مما هو مبرر لها بكثير بناء على تأكيداتها أن معالجات processors  أسرع ستظهر كل بضع سنين لتحل مشكلات عديدة أسوؤها عدم كفاية برمجيّات التطبيق application softwareوتضخم حجومها. إلاّ أن الترف الذي شهدته صناعة الحواسيب حتى الآن بدأ بالانحسار؛ إذ يتعاظم استهلاك الطاقة وتُنذِر صفائح الدارة circuit boards  التي تُرَكَّبُ عليها المعالجات الميكرويّة microprocessors بالتحوّل إلى أجهزة للتدفئة. وقد استجابت الشركة Intel، التي ما زال قانون مور Moore’s law المبجل سائدا لديها، كما استجاب غيرها من صنّاع المعدات الحاسوبية hardware لهذا التحدّي بتصميم حواسيب يمكنها تشغيل معالجات متعددة multipleprocessors بسرعات أقلّ.

لكن المعالجات المتعددة تأتي دائما مع مشكلاتها. فمن جهة أولى، تعتبر كتابة البرمجيّات التي توزّع المهام الحاسوبية على أجزاء المعالجات المختلفة، من الأعباء التي لا يرغب الكثير من المبرمجين في القيام بها. إضافة إلى ذلك، فإن الكثير من تطبيقات التشبيك networking applications الأسرع تناميا ـ بدءا من البحث عن الکيروسات إلى قراءة وثائق شبكة الوب المكوّدة باستخدام لغة التأشير القابلة للتمديد (extensible markup language (XML  لا تتماشى بسهولة مع المعالجة المتوازية parallel processing.

والوصول إلى قرار حول احتواء رسالة ما على كلمة تشير إلى سپام spam، مثل كلمة سحب (يانصيب) lottery أو کياغرا viagra، يتطلب تفحّص عدد من الپارمترات(3) parameters المتتالية للإجابة عن سؤال مثل: هل تتضمّن الوثيقة التي يتمّ اختبارها كلمة lottery أو سحبا متبوعة بالكلمة «ادفع»؟ إذ إن توزيع مثل هذه المهمّة على صفيف(4) من المعالجات لمعالجتها بصورة متوازية هو بمنزلة السعي وراء المتاعب. وقد بدأ المهندسون عوضا عن ذلك بإيلاء المعالجات التشاركية coprocessors  أدوارا أكثر تخصّصا؛ بحيث يحتفظ المعالج الميكروي الرئيسي بمسؤولية الموزّع الأساس لوظائف منظومة التشغيل operating system المهمة. هذا بينما تستعير تصاميم المعالجات التي تقوم بالبحث عن السپام والکيروسات أساليب تُستخدم في معالجة البيانيّات (المخطّطات البيانية)graphics التي طالما استخدمت وحدات خاصة بها لمعالجة معضلات كهذه. وفي الآونة الأخيرة، استأثر صنف من المحرّكات يدعى محرّكات تسريع كشف التدخل(5) ببعض الأعمال التي كانت تقوم بها وحدات المعالجة المركزيّة(central processing units (CPU المتزايدة الأعباء. بل بدأت بعض المختبرات الأكاديميّة والصناعيّة بدفع هذا المفهوم خطوة إضافيّة إلى الأمام باستضافة جميع أنماط المعلومات «الجارية» في شبكة ما. إذ قامت هذه المختبرات بتطوير معالج جرياني stream processor عمومي الغاية general-purpose  يمكن إعادة برمجته بسهولة، ويمكنه تناول تطبيقات متعدّدة، سواء كانت حماية الجدار الواقيfirewall أو ضغط السجلات compressing files.

 

محرّك مطابقة الشكل(**)


لقد أحرز مختبر أبحاث الشركة IBMفي زيوريخ عددا من جوائز نوبل لقاءَ تطويره المجهر الماسح النفقي scanning tunneling microscope والموصلية الفائقةsuperconductivity في درجات الحرارة المرتفعة. كذلك أدى المختبر دور الوسيط (أو همزة الوصل) في تطوير برمجيّات وتجهيزات الشبكات. وفي مؤتمر نظّمه معهد مهندسي الكهرباء والإلكترونيات IEEE في الشهر8\2005  في جامعة ستانفورد، تحت عنوان «شيپات ساخنة (6)»، قدّم <J.کان لونترن>  [من مختبر أبحاث IBM  في زيوريخ] عرضا حول معالج جرياني عنوانه «محرّك مطابق للشكل»(7) طوّره بالتعاون مع زميله  <T. إنگبرسن>يمكنه التقاط الکيروسات والسپام وغيرها من العوامل المسيئة.

وقد طوِّر معالج الشركة IBM بفضل أبحاث سابقة حول كيفيّة إرسال البيانات خلال حواسيب الإنترنت الشبكية، المسمّاة الموجّهات routers. وكان <V.لونترن> [وهو هولندي الأصل] قد عمل في أواخر التسعينات في مختبر الشركة IBMبزيوريخ على تطوير تقنيّات كفؤة لتفحص لوائح البيانات التي تستخدمها الموجّهات من أجل العثور عن المعلومات اللازمة لتوجيه رزم البيانات data packets عبر شبكة ما. فعلى الموجّهات تفحّص عشرات الملايين من الرزم في الثانية، وتدقيق عشرات الآلاف من المُدخَلات entries في قواعد البيانات الخاصة بها للتزوّد بالوصلة link  التالية ضمن الشبكة التي ينبغي إرسال الرزم إليها من خلال عدد من بوّابات الخرج output ports. وقد صمّم <کان لونترن>حينذاك عامل تلبيد (هاش) hash للبحث ضمن لوائح الموجّهات. وتنتج المعادلة الرياضياتية التي طوَّرها <کان لونترن> رقما، يدعى رائز التلبيد (هاش) hash index، يشير إلى الموضع في لائحة وضعت ضمن المكونات الصلبة(8)  للمعالج  حيث بوّابة الخرج المؤدية إلى الوصلة التي تقوم بدورها بتحريك الرزمة المعنيّة إلى الموجّه التالي ضمن الشبكة.

وقد طوّر <کان لونترن> خوارزميّة تستند إلى عامل تلبيد (هاش) ـ وهو البحث بلائحة التوجيه المتوازنة(9) (BaRT) ـ وتسمح هذه الخوارزمية بتقليص درامي لعدد البتات اللازمة لتخزين لوائح التوجيه ضمن الذاكرة. ويمكن للخوارزمية BaRT، التي قد تظهر مستقبلاً في عدد من منتجات الشركة IBM، أن تتعامل مع 25 مليون رزمة في الثانية. وقد يتسنى لها في المستقبل التعامل مع أربعة أضعاف هذا المقدار من حركة البيانات.

إن عمليات البحث في لوائح التوجيه تتطلّب النظر إلى خيط قصير من البيانات يقع في مقدّمة (الجزء الأول) من رزمة البيانات، وهو بمنزلة الترويسة التي تنبيء بالوجهة النهائية للرزمة. ومع الانتشار غير المسبوق للکيروسات والسپام وغيرها، مما يسمّى الآن بالكيان الرديء malware، فإن على معالجات الشبكة network processors  أن تقرأ بعمق أكبر بكثير محتويات الرزمة للبحث عن علامات تشير إلى نيات غير حميدة قد يضمرها المرسل. وعلى نحو مشابه فإن قراءة اللغات المستخدمة في تكويد الوثائق، مثل XML، تضع أعباء كبيرة على الكيان الصلب الذي تستخدمه الشبكات. لذا أصبح عامل التلبيد الذي صمّمه <کان لونترن>أداة جوهرية في معالج الدفق(10) لدى الشركة IBM.

 

ما بَعد کون نويمان(***)


تحتاج المعالجات التقليديّة إلى تعليمات instructions متعددة للتعامل مع كودات XML، أو للبحث عن الكيان الرديء، ما يؤدّي إلى حدوث اختناق يولّد الحاجة إلى عشرات من دورات الساعة clock cycles للتعامل مع مِحْرَف characterوحيد. وعلى الرغم من التحسينات الكثيرة التي أُدخلت على وحدة المعالج المركزيّ فإن المعالج المركزيّ الاعتياديّ مازال يعتمد ـ إلى حدٍّ كبير ـ على المعماريّة architecture التي وضعها الرياضيّاتي الكبير  <J.کون نويمان> في أربعينات القرن العشرين، ومن بعده رائدا الحاسوب  <J.پرسپر إكرت> و<J.موشلي> تُحضِر هذه المعماريّة، التي يُطلَق عليها اسم مِعماريّة کون نويمان(11)، تعليمة من عنوان ضمن الذاكرة وتقوم بتنفيذها، ثم يجري تحيين(12) عدّاد برمجيّ program counter من خلال تزويده بعنوان التعليمة التالية التي ينبغي تنفيذها. وتعيد هذه الدورة نفسها إلاّ إذا طلبت تعليمة من المعالج دون لبسٍ أن يقفز إلى موضع آخر في البرنامج. وإذا صادف المعالج مهمّة تتميّز بأيّة درجة من التعقيد ـ مثلا، كالتحقّق من أن محرفا ما مسموح به أم لا في تكويد اللغة XML، فإن عليه تنفيذ العديد من التعليمات ودورات الساعة لينجز المهمّة.

وقد استعار <کان لونترن > و<إنگبرسن> خطة مفاهيميّة(13) تعود إلى السنوات الأولى للحوسبة، وهي آلة حالة محدودة finite-state machine تعود جذورها إلى أعمال رائد الحوسبة <M.A.تورينگ> (14). وآلة الحالة المحدودة هذه توفّر وصفا أساسياّ لكيفيّة عمل أية آلة للحوسبة: أي كيف تؤدي عمليّات الحوسبة عبر سلسلة من الخطوات المنفصلة وكيف تتقمّص عددا محدودا من الحالات الضمنيّة في أي وقت من الأوقات. ومن وجهة نظر مجرّدة، فمعماريّة <کون نويمان>يمكن اعتبارها آلة حالة محدودة. لكن نوع الآلة التي صمّمها کان <لونترن > و <إنگبرسن> تتميّز عن وحدة المعالجة المركزيّة التي ترتكز إلى معماريّة <کون نويمان>بأنها لا تتضمّن عدّادا برمجيّا.

 

مطابقة الكثير مقابل المقارنة واحدا بواحد(****)

 

    تعالج آلات الحالة المحدودة تيّارات البيانات بمطابقة كل محرف يدخل إليها على نحو متزامن مع العديد من المحارف المختلفة التي تدلّ على وجود سپام، والمخزونة في الذاكرة. وفي المقابل، على آلة <کون نويمان> المعهودة أن تقيّم المحارف المخزونة في الذاكرة واحدا بواحد.


وفي الحالة الصفريّة “0”، تقارن آلة الحالة المحدودة أول الأمر المحرَف”L” باثنين آخرين، “L” و”V”، لتحديد ما إذا كان يشكّل الحرف الأوّل من كلمة”LOTTERY” أو “VIAGRA”، وهما كلمتان مخزونتان للدلالة على وجود سپام. وعندما تحدث مطابقة تعود الآلة إلى الحالة”1″، لتفحّص حروف المُدْخَل المتتالية مقارنة بخيط مخزون من المحارف، إما”OTTERY” أو”IAGRA”. وإذا عثرت الآلة على تطابق كامل لواحد من هذين الخيطين، تنتقل إلى الحالة “2”، مشيرة إلى عثورها على كلمة توجد عادة في الرسائل السپامية. أما إذا لم يحصل تطابق، كما لو كانت الكلمة التي تبدأ بحرف”L” هي”LATKE”، فإن المعدات الحاسوبية تنتقل إلى الحالة “3”، مشعرة بعدم وجود سپام كامن. أما إذا لم يتطابق الحرف الأوّل في البيانات المُدْخَلَة مع بوادئ الكلمات المخزونة في الذاكرة، كما لو كان هذا الحرف”R” في مطلع كلمة “REUNION”، فإن الآلة تنتقل مباشرة من الحالة”0″ إلى الحالة”3”.


وفي معماريّة <کون نويمان> المعهودة، تتمّ مقارنة كل محرَف داخل بمحرَف واحد فقط في الوقت نفسه. إضافة إلى ذلك، لا بدّ من إنجاز ثلاث تعليمات أو أكثر، ومن ثم خوض عدد من دورات المعالجة من أجل كل محرَف؛ واحدة لتحميل المحرَف، وأخرى للتأكّد من كونه المحرَف الذي يتمّ البحث عنه، وثالثة للانتقال إلى موضع آخر في البرنامج، إن لم يكن المحرَف الداخل هو المطلوب تفاديه.

 

http://oloommagazine.com/images/Articles/2006/1-2/scan0007%20copy.gif

 

http://oloommagazine.com/images/Articles/2006/1-2/scan0009%20copy.gif


وعلى العكس من آلة <کون نويمان> تستطيع آلة الحالة المحدودة التي صمّمها <کان لونترن> و<إنگبرسن> القيام في الوقت ذاته بتناول جملة من المسائل ضمن دورة واحدة، بدلا من اعتبار مسألة واحدة فقط، كما هي الحال في العمليّة التي يتحكّم فيها العدّاد البرمجيّ. وهذا هو أحد الأسباب التي أدّت إلى تبنّي آلات الحالة المحدودة منذ سنوات في معالجات البيانيّات وفي منظومات تعرّف الصوت voice recognition وفي تصميم المعدات الحاسوبية. إلاّ أن آلات الحالة المحدودة غير قابلة لإعادة البرمجة بسهولة، بحيث يؤدّي تبنيها إلى التضحية بالمرونة وإمكانيّة الاستخدام لأغراض متعدّدة، وهذه مميزات وحدة المعالجة المركزيّة المستندة إلى معماريّة <کون نويمان>.

إلا أن الاختناق الناجم عن الطابع المتتالي لعمل وحدات المعالجة المركزيّة التقليدية بدأ يقلّص الفروق بينها وبين معالجات الحالة المحدودة. فمن الممكن، على سبيل المثال، أن تعاد برمجة الكيان الصلب الذي صمّمته الشركة  IBMاستنادا إلى آلة الحالة المحدودة إذا تفشّت الکيروسات ضمنه أو إذا تغيّرت معايير لغة XML.

يعتمد تصميم کان <لونترن> و<إنگبرسن> على مخطّط حالة state diagram، وهو صنف من المخطّطات مؤلّف من عقد دائرية أو حالات، ووصلات بين هذه العقد تمثّل الانتقال من حالة لأخرى. ومن الممكن تشبيه آلة الحالة المحدودة بالبوّابة الدوّارة التي يدخل عبرها المسافرون إلى محطات قطار النفق. فعقدة البوّابة الابتدائية هي حالة ندعوها «مقفلة» locked. ويشار إلى إدخال قطعة نقود في المخطّط البياني بخط ّ يمثّل «الانتقال» transition من الحالة الراهنة للبوّابة إلى عقدة «غير مقفلة». في حين يمثّل مرور المسافر عبر البوّابة بخط ّ آخر يبيّن عودة البوّابة إلى حالة العقدة المقفلة.

وفي آلة الحالة المحدودة التي صمّمتها الشركة IBM، يمكن لحالة ما أن تُحدثَ صلة بين أكثر من عقدتين. ففي تطبيق واقعيّ للمعالجة الجريانيّة، يمكن أن ترتبط عقدة ما بوصلات إلى الكثير من العقد الأخرى، وينبغي أن يتمّ تقييم كلِّ وصلة في الوقت نفسه قبل اتخاذ قرار بالتحرّك نحو الحالة التالية في المخطّط. فعند البحث عن سپام ضمن سيل من البيانات الداخلة، يقرأ المعالج من الذاكرة كلمة “lottery” ولا تقوم الآلة بمجرّد التحقّق من أن الحرف “o” سيتبع الحرف “I” ضمن خيط المحارف الواردة بل تتحقّق أيضا ما إذا كانت رسالة سپامية(15) قد أدخلت محرَف الخط السفلي underscore character (” اI  _ o”) لخداع مُصدّ السپام spam blocker. وكجزء من البحث ذاته، الذي ينجز ضمن دورة واحدة للمعالج، يمكن أن يتمّ البحث عن الحرف”I” في كلمة “lottery” في ذات الوقت الذي قد يجري خلاله البحث عن الحرف “V” في كلمة “Viagra”وغيره من الحروف التي توجد في الذاكرة. وفي المعالج التقليدي لا بدّ من القيام بكل واحدة من هذه الخطوات على نحو متتال [انظر الإطار في هاتين الصفحتين].

و في المختبر على الأقل، فإن استخدام آلة الحالة المحدودة في تطبيقات جريانيّة يؤدّي إلى تحسّن كبير في الأداء. وقد ذكر <کان لونترن> في اجتماع عقد تحت عنوان شيپات ساخنة Hot Chips أن بإمكان آلة الحالة المحدودة التي صمّمتها الشركة IBM معالجة المحارف بسرعة تصل إلى 20 جيگابتة في الثانية، وذلك لدى التحرّي عن الکيروسات والسپام وغير ذلك من التطبيقات، أي بسرعة تفوق عشرة إلى مئة مرّة سرعة المعالجات المعهودة عند قيامها بمهام مماثلة. والأداة المفتاح في إحراز هذه السرعة هي خوارزميّة لائحة التوجيه المتوازنة أوBaRT. وفي الكثير من آلات الحالة المحدودة يستهلك تخزين القواعد التي ينبغي بموجبها إحراز النقلات ضمن مخطّط حالة ما قسطا كبيرا من الذاكرة. ويمكن للشركة IBM أن تُخزِّن في آلة الحالة المحدودة التي صمّمتها نحو 25000 محرف في أقلّ من مئة كيلوبايت من الذاكرة، وهو حيّز من الذاكرة يبلغ 500/ 1مما تتطلّبه بعض آلات الحالة المحدودة الأخرى. وتتيح الكفاءة التي تتميّز بها الخوارزميّة التي صمّمت أصلا من أجل لوائح التوجيه بازدياد خطي في حاجاتها من الذاكرة: فإذا ازداد عدد قواعد الانتقال transition rules من واحدة إلى عشر تزداد الحاجة إلى الذاكرة بمقدار مماثل. وهذا خلافا للوضع في آلات الحالة المحدودة الأخرى، إذ يتطلّب تضاعف عدد قواعد الانتقال عشر مرّات ازديادا بمقدار مئة مرّة في حجم الذاكرة.

تعرض الشركة IBM منذ مدة تقانة آلة الحالة المحدودة من أجل تطبيقات مخصوصة؛ وتمنح رخصا لاستخدامها من خلال مجموعة الهندسة والتقانة التابعة لها. وهي تدرس تضمين المعالج في عدد من المنتجات. وليست الشركةIBM الوحيدة التي تبنّت هذه الفكرة. فقد طوّرت جامعات وشركات أخرى آلات حالة محدودة قابلة للبرمجة. فقام <J  .لوكوود> [وهو أستاذ في جامعة واشنطن بسانت لويس] بالمشاركة في تأسيس الشركة Global Velocity لتسويق معالج كهذا. ويفيد <کان لونترن>بأن تصميم الشركة IBM  يتميّز بقدرته على التعامل مع مجموعة كبيرة من التطبيقات، ما يجعله معالجا عموميّ الغرض، صالحا لأيٍّ من التطبيقات التي تتطلّب معالجة جريانيّة. وقد تستمرّ إمكانات هذه المعالجات التشاركيّة في التطوّر مع جنوح مهامّ حرجة في الحوسبة بعيدا عن تحكّم وحدة المعالجة المركزيّة. وسيضمن هذا تعايش تراث كلٍّ من <تورينگ> و<کون نويمان> على مسافة سنتيمترات أحدهما من الآخر على لوحة الدارة الواحدة.

 

  مراجع للاستزادة

   

  لمزيد من المعلومات حول:

The Alphabets, Words and Languages of Finite State machines
انظر: www.c3.lanl-gov/mega-math/workbk/machines.html
Global Velocity: شركة طورت مفاهيم مماثلة لتلك التي صممها فريق الشركة IBM وعنوان موقعها على الإنترنت: www.globalvelocity.com/index.html
XML Accelerator Engine
انظر:www.reserch1.ibm.com/XML/IBM_Zurich_XML_Accelerator_Engine_paper_2004May04.pdf

 

(*) العنوان الأصلي: RECOGNITION ENGINES

(**)   Pattern-Matching Engine

(***) Beyond von Neumann

(****) Matching Many Vs. Comparing One By One

 

(1) ج: دفق stream.

(2) ج: سپام: تعريب للمصطلح spam، ويعني رسالة أو إعلانا يُقحم علىبريد إلكتروني خاص.

(3)  أو الوسطاء.

(4)array.

(5)intrusion detection

(6)Hot Chips

(7)patten-matching engine

(8)hardware

(9)the Balanced Routing Table

(10)stream processor

(11)The von Neumann architecture

(12) updated

(13)conceptual

(14)[انظر: «أفكار آلان تورينگ المنسية في علم الحاسوب»،مجلة العلوم ، العدد1 (2000)، صفحة 28]

(15)a spam message

 

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى