نقاش:بنك أسئلة بنيان حواسيب1

من ويكي الهندسة المعلوماتية
اذهب إلى: تصفح، ابحث

مقدمة

السلام عليكم

كانت أسئلة البنيان طويلة ومكتوبة بأسلوب غريب قليلاً، عدد الأسئلة 40 سؤال موزعة على 6 صفحات، وكان هناك خمس خيارات لكل سؤال: لم أحب أن أحاول وضع الأسئلة مباشرة في بنك الأسئلة لذلك أفضل أن نتناقش هنا ونضع السؤال بعد اكتماله:

صراحةً أنا أرى عكس ذلك لأنها ويكي أي أنه لا مشكلة أن تبدأ الصفحة كمسودة ومن ثم تتحسن كي لا نشعر بحاجة إلى جهود إضافية لتصنيفها بعد الانتهاء (هذا رأيي فقط) (أعلم أني متأخر ولكن وصلتني الانترنت اليوم صباحاً :( ) --محمد السيروان ١٢:١٠، ٢٧ يونيو ٢٠١١ (MDT)

ربما أنا أخطأت حين قلت عند اكتماله -أعتقد أن ذلك ناتج عن قلة الخبرة :) - ولكن أرجو أن يكون أمر كتابة الأسئلة سهلاً ويعتمد على النسخ واللصق :)--بهاء حجازي ١٥:٢٢، ٢٧ يونيو ٢٠١١ (MDT)

ملاحظة عامة :

لا داعي لإعادة كتابة معطيات جديدة للسؤال "حسب اختلاف النموذج" المهم هو فكرة السؤال !


كانت الأسئلة مكونة من ثلاثة أسئلة:

السؤال الأول

في نموذجي كان يحدد مواصفات حاسوب ذاكرة الوصول العشوائي حجمها 1 جيجا زمن النفاذ 100ns من نوع DRAM وهناك مواصفات أخرى (أعتقد كان التردد 500 MHz ولكني لست متأكدا)


  • كان الطلب الأول: إذا أردنا تشكيل الذاكرة من قطع 128*4 فنشكلها من:

أنا اخترت 8 قطع توسيع طولي وعرضي

ولكن كان هناك 16 قطعة أو ثمانية مع تناوب أنواع التوسيع بين طولي فقط أو عرضي فقط أو طولي وعرضي، أظن أن الذاكرة يجب أن تكون مصفوفية لأن نوعها Dram.


  • كان هناك طلب،

كم خط عنونة تحتاج هذه الذاكرة: أنا أجبت بأن تحتاج 15 خط لأنها ذاكرة مصفوفية 2^15 سطر و 2^15 عمود


  • كان السؤال رقم 28 في نموذجي عن استخدام ذاكرة LUT look up table لإجراء عمليات ضرب على الأعداد الصحيحة الممثلة باستخدام طريقة المتمم الثنائي على 11 بت وكان السؤال عن حجم الذاكرة:

أجبت بأن الحجم 2^15 وعدد الأعمدة 63 (أعتقد أن إجابتي خاطئة :D )


  • كان هناك سؤال عن طرفيتين الأولى تعمل بمعدل 12000 مرة\بالثانية تحتاج إلى 200 دور والثانية تعمل بمعدل 10000 مرة\بالثانية تحتاج إلى 400 دور للتخاطب وكان بدء المعالج بالمقاطعة والعودة منه يحتاج 300 دور والسؤال كان عن عدد الأدوار اللازم لكل طرفية بالثانية.

الإجابة: أنا أجبت عن طريق ضرب 12000*200*300 وكذلك للطرفية الثانية لأن المعالج في كل مرة 12000 مرة بالثانية يقوم بالاستجابة للمقاطعة ويحتاج إلى 200 دور لخدمة الطرفية


  • كان هناك سؤال يليه: إذا علمت أن الاستقصاء يأخذ من المعالج 600 دور لأي طرفية، وهناك خيارات عن أن الاستقصاء أفضل أم المقاطعة لكل طرفية في هذه الحالة.


  • كان هناك سؤال عن ذاكرة خبئية L1 حجمها 32KB معدل الإصابة 95% زمن النفاذ 1ns أحسب زمن النفاذ الكلي للذاكرة: أنا اخترت 6ns كان هناك خيار 12 أيضاً


  • إذا أضفنا ذاكرة خبئية مستوى ثاني حجمها 1MB معدل الإصابة 90% أحسب زمن النفاذ الكلي للذاكرة: كان هناك خيار 5 قمت باختياره(رغم أن الجواب الذي قمت بحسابه كان يقارب 2ns)


  • سؤال:في الخابية الأولى إذا استخدمت خوارزمية LRU للاستعاضة واستخدمت طريقة الكتابة خلفاً فإننا نحتاج: إلى بت لـLRU وبت يدل على التعديل على السطر.


  • إذا أردنا زيادة أداء الحاسب نقوم بـ:
  1. زيادة عرض سطر الذاكرة الخبئية لأنه طرداً مع الأداء
  2. زيادة حجم الذاكرة الخبئية
  3. جعل الذاكرة ذات أربع مساري(لست متأكداً من صياغة هذا الخيار)
  4. الأول والثالث
  5. الثاني والثالث


  • كان هناك سؤال: يتم تنفيذ 1000 تعليمة على معالج تردده 1Ghz متى يكون التنفيذ:
  1. التنفيذ في حالة مسرى وحيد الدور أسرع
  2. التنفيذ في حالة مسرى متعدد الأدوار أسرع
  3. في حالة مسرى متعدد الأدوار يستغرق زمن أكبر ولكن يزداد الـMIPS (لست متأكداً من الصياغة)

لم أعرف على أي أساس يجب تحديد الإجابة!!


  • سؤال: في حالة استخدام ECC لتصحيح الأخطاء:
  1. يتم إضافة بتات إضافية للذاكرة الفعلية
  2. يتم اعتبار البتات الزائدة من بتات الذاكرة نفسها
  3. يتم كشف الأخطاء باستخدام رقاقة على اللوحة الأم
  4. لا أتذكر الصياغة والخيارات بدقة


  • سؤال:(لست متأكداً تماماً من الصغية) ذاكرة SRAM 512MB تحوي مرمز:
  1. (صح)
  2. تحتاج الذاكرة من نمط جدولي إلى 29 خط عنونة ويكونون دخل مرمز يكون خرجه 2^29
  3. كان هناك 4 قيم ترميز أخرى


السؤال الثاني

  • لدينا قرص صلب لديه سرعة دوران تساوي 2700 rpm و زمن نشدان مساو ل 4ms ومعدل نقل يساوي 8 MB/s

يتطلب تخزين 1 K B زمنا مساو "مقدرا بال ms

الحل : 1- إيجاد التلبث الدوراني وهو زمن نصف دروة من العلاقة ويكون الناتج محسوبا بالثانية .

2-حساب زمن النقل من العلاقة كمية المعطيات / معدل النقل

3-التعويض في العلاقة : زمن التخزين = زمن النشدان + التلبث الدوراني +زمن النقل

مع مراعاة التحويل إلى ms

الإجابة الصحيحة = 7


  • كان هناك سؤال عن تقنية RAID1 وبماذا تتميز ؟؟ :(:(
  1. يتم الكتابة على الاقراص الرئيسية فقط
  2. تتم الكتابة على الاقراص الرئيسية والاحتياطية
  3. كتابة بتات لتصحيح الأخطاء على أحد الأقراص
  4. الإجابتين الأولى والثانية


  • سؤال: عند شراء حاسوب فإننا نشتري الحاسوب ذو:
  1. التكلفة الأعلى
  2. الأداء الأعلى
  3. ذو المعيار تكلفة\أداء الأعلى
  4. ذو المعيار تكلفة\أداء الأقل (صح)


  • سؤال: في المعالج 8086:
  1. طلب المقاطعة INTR موجه وغير قابل للحجب.
  2. طلب المقاطعة INTR غير موجه و قابل للحجب.
  3. طلب المقاطعة INTR موجه و قابل للحجب. (احترت كثيراً بين الثالث والخامس واخترت الثالث في النهاية)
  4. طلب المقاطعة NMI موجه و قابل للحجب.
  5. طلب المقاطعة NMI موجه وغير قابل للحجب.


  • سؤال عن DMA لكن لا أذكره جيداً: في الحاسوب الشخصي PC:
  1. يمكن تنفيذ الـDMA عند نهاية كل مرحلة جزئية من تعليمات المعالج
  2. هناك 8 قنوات للوصول المباشر DMA
  3. (خيار صحيح 100%)
  4. 1 و 2 و 3 (كنت متأكداً من الأول والثالث فاخترت هذا الخيار لكن يبدوا أن جوابي خاطئ :( لأن المحاضرة تذكر أنه يحوي 256 مقاطعة)
  5. 2 و3 (بما أني متأكد أن الأول صحيح لم أختر هذا)


السؤال الثالث

في نموذجي كان يبدأ بتعريف وحدة معالجة مركزية تقوم بالعمليات التالية:

  1. add A, adr تقوم بإحضار القيمة الموجودة في العنوان adr في الذاكرة وجمعه مع القيمة A ثم وضعه في A
  2. and A, B تقوم بإجراء عملية and على السجل A والقيمة التي يوجد عنوانها في السجل B ثم تضع الناتج في A
  3. load A, adr تقوم بتحميل القيمة الموجودة في العنوان adr وتخزينها في السجل A
  4. store A, adr تقوم بتخزين القيمة الموجودة في السجل A ضمن العنوان adr
  5. not A تقوم بتخزين قيمة not A في السجل A

كان هناك بعض التعليمات الأخرى، التي لا تحضرني الآن

وكانت الأسئلة:


  • اختيار تسلسل التعليمات للتعليمة add و and

add: f-> reg -> mem -> ALU ->reg

and: f-> reg -> mem -> alu -> reg


  • سؤال عن مصاغات التعليمات: التعليمة beq: I والتعليمة J.


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

أتذكر أن الدكتور في إحدى محاضراته عن البرمجة بلغة التجميع تحدث عنها قليلاً وهي عبارة عن تحويل تعليمات مكتوبة بالـ HexaDecimal أو بالثنائي إلى كود برنامج بالـ assemply كانت الخيارات هي :

  1. من أين بدأتُ بالقراءة من الذاكرة (أجبتُ هذه الإجابة) وفيما بعد اكتشفتُ أنها ناقصة
  2. نوع المعالج
  3. لا يمكن إجرائها من دون معرفة التعليمات
  4. 1و2 (على الأغلب أن هذه هي الإجابة الصحيحة)


  • ما هي مواصفات ملف السجلات المناسب للمعالج المذكور أعلاه
  1. مخرج واحد وسجل واحد
  2. مخرج واحد وعدد من السجلات أكبر من 2
  3. مخرجين و عدد من السجلات أكبر من 2
  4. ولا إجابة صحيحة

بصراحة نحن نحتاج إلى سجلين على الأقل و مخرجين (فالإجابة هي "ولا إجابة صحيحة" الاختيار الثالث يفترض ثلاثة سجلات على الأقل)


  • وسؤال عن برنامج .. وما هي ترجمة العبارة البرمجية الموجودة فيه

addi $r0, $r0, 10

L1: beq $r0, $0, L2

add $r1, $r1, $r3

addi $r0 $r0 -1

j l1

L2

الخيارات :

  1. ولا إجابة صحيحة
  2. if (i == 0 )
  3. for ( int i = 0, i < 10, i++ )
  4. swich i of : 1{cond} , 2:{cond} , ....


  1. أنا اخترت الحلقة
  2. أتصور أنه ولا إجابة صحيحة لأن البرنامج هو عبارة عن حلقة (for (int i=10 ; i>0 ; i=i-1)

ومن ثم سؤال عن مسافة القفز فيه

أذكر أنها كانت 3 ولكن كانت مطلوبة بالبايت .. لذلك يجب ضربها ب 4 والناتج 12 .. ولم يكن 12 موجوداً ضمن الخيارات ولكن كان هناك c واظنها في الـ HexaDecimal لذلك اخترتُ هذه الإجابة


  • سؤال: جمع العددين 40 و 96 ممثلين بطريقة الطويلة والإشارة على 8 بتات:
  1. 11111100 مع فيض
  2. (رقم ثنائي لا أذكره) مع فيض وحمل
  3. (يمكن 1000 0100) مع حمل
  4. خيارات أخرى

الجواب هو 40+96 = 136 ولكن هناك بت مخصص للإشارة وسيكون 0 , فيبقى لدينا 7 بت وعند جمع العددين 0000 110 + 1000 010 = 1000 000 مع حمل بمقدار 1


  • سؤال: يتم تمثيل أعداد بالفاصلة العائمة باستخدام بت للإشارة و 3 بتات للجزء الكسري و 6 بتات للجزء الأسي:

ما هي أكبر قيمة يمكن تمثيلها وما هي أصغر قيمة وما هي أكبر قيمة ممكنة للفجوة

أكبر عدد 1.875 * 2^31 = 4.02 * 10^9


  • سؤال: ذاكرة DDR3:
  1. تقوم بجلب 3 كلمات في كل دور ساعة (صح)
  2. تقوم بجلب 2 كلمة في كل دورة ساعة
  3. تحوي متحكم يتخاطب مع المعالج
  4. غير متذكر باقي الخيارات


  • سؤال: ما هي أكبر مسافة بين اللصاقة L1 واللصاقة L3 فيما يلي:

L1 : (beq .... L2)

...

L2 : (beq .... L3)

...

L3 :

أعتقد أن الجواب يعتمد على أن تعليمة القفز (beq) هي تعليمة من النوع I-Type وأكبر قيمة ممكنة للعنوان النسبي فيها تُعنون على 16 بت وباعتبار القفز موجب وسالب (إلى الامام وإلى الوراء) فيصبح مقدار القفز على 15 بت وبالتالي 2^15 وبما أنه هناك لصاقة بين اللصاقتين L1 و L3 فيمكن القفز من L1 إلى L2 ثم إلى L3 فيجب أن تكون L2 موجودة بعد 2^15 بايت من L1 و تكون L3 على بعد 2^15 سطر من L2، وبالتالي المسافة العظمى من L1 إلى L3 هي 2^15+2^15 = 2*2^15 = 2^16

تمام... وأما مقدار القفز بالبايت فيكون 4*2^16=262144


كانت الأجوبة أرقام كبيرة:)


  • إذا كان لدينا معالج quad core رباعي النوى لكل نواة قيمة الـcpi= 3.6 وقيمة الـMIPS=400 فتكون القيم للمعالج ككل: cpi=3.6 MIPS=1600


  • وبعده كان يوجد سؤال .. ماذا يحقق المعالج السابق ؟
  1. قانون فون نويمان
  2. استطاعة أعلى
  3. استطاعة أقل
  4. 1 و 2
  5. 1 و 3