المعهد العالي للعلوم التطبيقيَّة والتكنولوجيا مادَّة بنيان الحواسيب القسم النظري للطالب :محمد علي حسين بجعه د .نزار الحافظ I شكر شكراً لكلِّ من ساهم معي يف إنشاءِ هذا العمل وخصوصاً ك َّلاً من مطيع برهوم وحممد عدنان قطايه لدعمهما الدؤوب فيما أحتاجه من عونٍ ووقت .متمنِّياً أن يكون مفيداً للطلَّاب يف السَّنوات القادمة. وأخصُّ بالشُّكر اجلزيــل الدكتور نزار احلافظ الذي كان مشرفاً على العمل أوالً بأوَّل يف تصحيح األخطاء وتدقيقها. إهداء إىل روح والدي املتوفِّي علي حممد حسني جبعه وإىل والدتي الغالية ميَّاده آصف الشويخ عسى اهلل أن يطيل يف عمرها ال واضحاً على احملبَّة واإلخالص. وأخي الكبري وقدوتي نواف علي حسني جبعه الذي سيبقى يل مثا ً أمتنَّىً من كُ ِّل من استفاد من هذا الكتاب بالدَّعوة لوالدي بأن يُغفر له يف قربه وأن يُنسأ له يف أثره. دمشق في 4/4/2019 الطالب مح َّمد علي حسين بجعه I محتوى الكتاب: II III أوَّل محاضرة بنيان حاسوب متدنية المستوى ،وهي التي لدينا تعليماتٌ بسيطة جدا ً هي كلُّها التعليمات األساسيَّة في اللغات ِّ تعمل كل العمل (تعليمات اآللة). المقرر على: سنتعرف في هذا َّ َّ أنواع التعليمات ،تمثيلها وأنواع العمليَّات في التعليمة الواحدة. (أنماط العنونة ،نسق الت َّعليمات ونماذج عنونة لعدد من المعالجات) كلها تندرج في تصميم التعليمات لوحدة المعالجة. ِّ الذَّاكرة والذَّاكرة الخابية. الذَّاكرة ال َّداخليَّة ( ROM,RAMخارج ال ) CPUأنواعها وتنظيمها. الذواكر الخارجية: )Hard Disk, Flash Memory, RAID, CD, DVD, Tapes (Floppy Disks مع تنظيمها جميعا ً وعملها. مالحظة RAID :هي مجموعة من األقراص يتم الوصول إليها بشكل منطقي وكأنها قرص واحد وهي تستعمل لتوفير البيانات بشكل أمثلي redundancyأو تطوير األداء أو كالهما. ال َّدخل والخرج I/Oبنيتها ،أنماطها ،معالجة المقاطعات وأمثلة على بنيتها. النفاذ المباشر إلى الذاكرة DMAبنيته ،وظيفته وعمله. مقدمة لبنيان الحاسوب وتنظيمه: ِّ تعريف بنيان الحاسوب (:)Computer Architecture هو الخصائص التي لها تأثير مباشر على التنفيذ الفعلي للبرنامج. مثالً: :Instruction Set -1كلما كان لها تكامل أقوى كلما كان الحاسوب أفضل. :Data Types -2وهي أنواع المعطيات التي يستطيع الحاسوب التعامل معها. -3أنماط العنونة :مثالً العنونة المباشرة وغير المباشرة والفورية و...إلخ -4آليات :I/Oعند زيادة تعقيد أنماط العنونة يربح المبرمج أن تكون العنونة أفضل ولكن البرمجة تصبح معقَّدة أكثر .مثال RISCأنماط عنونتها معقَّدة وقليلة أما َّ Intel فإن أنماط عنونتها كثيرة وبسيطة. 1 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه تعريف تنظيم الحاسوب ) : (Computer Organizationيشير إلى الوحدات العملياتيَّة وتوصيالتها الداخلية التي تدير خصائص بنيان الجهاز. مثال :تفاصيل القرص الصلب غير مرئية بالنسبة للمبرمج وكذلك بالنسبة إلشارات التحكم (( Control Signalsال يهتم المبرمج بما يحدث بإشارات التحكم)). للفهم أكثر: عند تصميم ع َّدة معالجات من نفس الشركة ولكن خصائصها مختلفة ،نحن نقوم بزيادة وتحسين تنظيم الحاسوب ) (Computer Organizationمثاالً على ذلك (تسريع النفاذ إلى الذاكرة وزيادة حجم ال ) Cacheوهذا طبعا ً ينعكس على األداء والسعر معاً. أي بالمختصر: *لها ذات البنيان واألداء مختلف الختالف تنظيم الحاسوب* بنية الحاسوب وعمله: بنيته :هي الطريقة التي تترابط بها المكونات مع بعضها. وظيفته :هي كل واحدة من المكونات وماهيَّة وظيفتها بحد ذاتها. الحظ: ..يوجد اختالف بين البنية والبنيان.. وظائف الحاسوب: -1معالجة المعطيات. -2تخزين المعطيات. ونخزنها في ذاكرة صلب -3نقل المعطيات :مثالً نقوم بنقل بعض ال Dataمن القرص ال َّ ِّ الوصول العشوائي RAMونقوم بمعالجتها أو ننقل تعليمة من سجل إلى سجل(( .سترد ِّ السجالت بعد قليل)) -4جهة مركزية تنظم العمل (تح ُّكم). 2 المحاضرة -1- تاريخ :األربعاء 9/1/2019 آلية التحكُّم مجرد :High level واآلن البنيان من منظور َّ الحظ ال يوجد وحدة تحكم في هذا المستوى. 3 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه :BUSله الكثير من األنواع والخصائص وهو عبارة عن التوصيالت الداخلية التي تربط بين CPUو MMو .I/O يوجد BUSخاص بين CPUو .MM يوجد BUSسريع يرى بطاقة ال َّ شبكة والطرفيَّات األخرى. BUS لمن لم يعرف ما هو ال BUSحتى اآلن إليكم هذا الشكل: 4 المحاضرة -1- تاريخ :األربعاء 9/1/2019 عمق النَّظرة حاليا ً إلى ال CPUومحتوياته: ن ِّ السجالت :هي ذاكرة سريعة جدا ً وسعتها صغيرة ٌ جدا ً مثالً .64bit وحدة الحساب والمنطق :ALUتدير العمليات الحسابية مثل جمع األعداد الصحيحة والحقيقيَّة وكذلك تدير العمليَّات المنطقيَّة .Bitwise مالحظة :-1-كان يوجد ما يسمى بـ ِّ ( Co-Processorمعالج مساعد) وهو معالج إضافي للحسابات الحقيقيَّة ،أيضا ً يوجد Graphics Processorوهو لمعالجة الصور. مالحظة :-2-عندما يكون تصميم ال CPUجيد ما أمكن وبسيط بحيث نعيد العمليَّات مثل سابقة (العمليات الحقيقيَّة ومعالجة الصور) إلى معالجات خاصة ونربح بهذا أن نريح ال َّ ال.CPU وحدة الت َّحكم :نتكلَّم عنها في المحاضرة القادمة. 5 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه 6 المحاضرة -1- تاريخ :األربعاء 9/1/2019 األول الدرس َّ تاريخ :الثالثاء 15/1/2019 وحدة الت َّحكم :Control Unitوهي تتألف من ثالثة أقسام كالتالي: يعرف تتاليا ً من التعليمات الصغريَّة التي تنفَّذ في كل دورة من ِّ :Sequencing logic -1 دورات التَّعليمة (…)Execute, Fetch, etc صة بوحدة :Control Unit Registers and Decoders -2هي س َّجالت صغيرة خا َّ التَّح ُّكم تستَعمل عند تنفيذ التَّعليمات. مالحظة :يجب أن نجد لهذه الت َّعليمات Sequencing logicلكي نعلم تسلسل التعليمات التي يتم تنفيذها. -3ذاكرة التَّحكُّم :Control Memoryتحوي برنامجا ً صغريا ً Mini-Programلكل تعليمة آلة. َّ إن وحدة التحكم تستعين بلغ ِّة RTLلتقوم بتوصيف العمل ألج ِّل كل تعليمة من الت َّعليمات سابقة وهي تنفذ الت َّعليمات التي يجلبها ال CPUمن الذاكرة )….(Hard Disk ,RAM, ال َّ وتقارنها في خالصة :تأتي الت َّعليمة المراد تنفيذها من ال CPUفتأخذها وحدة التحكم ِّ Control Memoryمع نظيرتها وتقوم بمعالجتها على هذا األساس. 7 المحاضرة -2- ثاني محاضرة بنيان حاسوب تنظيم الحاسوب ووظائفه مالحظات______________________________________________: ____________________________________________________ ____________________________________________________ ____________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ *تاريخ تطور الحاسوب: :1624آلة باسكال :1671آلة ليبينتز :1823آلة باباج نهاية القرن التاسع عشرHollerith punched cards machine : :1924والدة .IBM (Electronic Numerical Integrator and Calculator) ENIAC :1946 هو يعتبر أول حاسوب يعمل على الطاقة الكهربائية وبوظيفة ثابتة ومحدَّدة. صل بالكامل بالص َّمامات الميكانيكية 18000( Vacuum Tubesصمام) وهو ضخم وهو مو َّ ج َّدا ً وزنه 30طن اخترعه الجيش األمريكي وكانت وظيفة هذا الحاسوب هي متابعة مسارات القذائف ويشغل مساحة 1500قدم مربَّعة ،ال توجد فيه أي دارة تكاملية باإلضافة إلى أنَّه يستهلك طاقة كهربائية هائلة 140KWوهي طاقة تكفي لتخديم مبنى بالكامل. يقوم بـ ِّ 5000عملية جمع في الثانية ولديه 20سجل للحسابات وكل شيء فيه يعمل بالقواطع. 8 المحاضرة -1- تاريخ :األربعاء 9/1/2019 صورة تاريخيَّة لقسم من الحاسوب ENIAC مالحظة :الص َّمام الميكانيكي هو عبارة عن أداة صعبة التعامل ح َّل محلَّها الديودات والترانزستورات الحقاً. *فون نويمان ووالدة مفهوم بنيان الحاسوب: كانت فكرته أن يتم تخزين البرنامج بذاكرة بدالً عن التوصيالت بحيث ال يضطر المبرمج إلى التغيير كل مرة في القواطع والص َّمامات لكي ينشئ برنامجا ً ما وبحيث يستطيع تخزين هذا البرنامج في الذَّاكرة ويتم تنفيذه ضمن قواعد معيَّنة والتَّنفيذ تسلسلي لتعليمات البرنامج. اكتمل إنجازه عام .1952 وض َع فون نويمان نموذجا ً لبنيان الحاسوب العام. ِّ فيه وحدة الحساب والمنطق وتعمل على النظام الثنائي. وتنفذها. تفسر التَّعليمات من الذَّاكرة ِّ فيه وحدة تح ُّكم ِّ وحدات دخل وخرج يتم التح ُّكم بها عن طريق وحدة التحكم. اآلن الحاسوب الناتج هوIAS (Princeton Institute for Advanced Studies) : األوليَّة. وهو يجمع جميع الخصائص ال َّ سابقة ولكن بحالتها َّ 9 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه وتنفذها تباعاً. تنفذ التَّعليمات التي تقرؤها من الذاكرة عن طريق ِّ CPU تذكرة :وحدة التحكم ِّ المكون .Buffer *قبل البدء بشرح بنيان IASيجب أن تكون عزيزي القارئ على علم بماهيَّة ِّ يشكل حاجزا ً يمنع مرور الكلمات بشكل عشوائي ،بل تمر كل تعريف ال : Bufferهو مكون ِّ كلمة عليه على التسلسل تباعا ً. صورة توضيحية لل Bufferالذي يمرر كلمة طولها 40بت 10 المحاضرة -1- تاريخ :األربعاء 9/1/2019 صورة توضيحية لل Bufferوتوصيله وطريقة نقل البيانات فيه َّ سابقة وهو أنَّه عند نقل إن توضيح فكرة ال Bufferتصبح أفضل عن طريق الصورة ال َّ البيانات من الذاكرة إلى أحد وحدات اإلخراج مع العلم أن الذَّاكرة مش َّكلة من تسلسل من الكلمات ،بالتالي تذهب هذه الكلمات تباعا ً وفق تسلسل منطقي عن طريق Busكما هو موضَّح في ال َّ شكل (األسهم الخضراء) وبوجود ال Bufferتذهب البيانات كلمة تلو األخرى نحو وحدة سوداء .اآلن بفرض َّ أن وحدة اإلخراج وكذلك ت َّم تمثيل الكلمة المؤلَّفة من 40بت بالمربَّعات ال َّ I/Oهي وحدة إدخال استنتج كيفيَّة مرور البيانات منها إلى الذَّاكرة. ملحوظةَّ : إن ال Bufferالذي شرحناه آنفا ً هو Memory Buffer Register 11 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه بنيان :IAS 1000 كلمة وكل كلمة تأخذ حيز .40bit من الممكن أن يكون في الكلمة عدد binaryأو يكون فيها تعليمتان كل واحدة 20bitوفي هذه الحالة تنفَّذ التعليمة اليساريَّة ث َّم اليمينيَّة وتكون التَّعليمة الواحدة مؤلَّفة من 8بتات تعبر عن ال OPCODEأو الرقم الذي يقابل تنفيذ تعليمة معيَّنة بين التَّعليمات المتاحة في لوحة التَّحكم ومن ث َّم يوجد 12بِّت وهي لعنوان الذَّاكرة الذي سيتم تنفيذ التَّعليمة عليه. السجالت: مجموعة من ِّ ) :Memory Buffer Register (MBRيحتوي كلمة لتخزينها في الذاكرة أو تلقي كلمة من الذاكرة أو من إلرسالها إلى أحد وحدات اإلخراج وكذلك هو مسؤول عن ِّ أحد وحدات اإلدخال. ) :Memory Address Register (MARيأخذ عنوان الكلمة الحاليَّة الموجودة في .MBR ) :Instruction Register (IRيحتوي ال 8بتات لل OPCODEللتعليمة التي تنفَّذ في الوقت الحالي. ) :Instruction Buffer Register (IBRالكلمة مؤلَّفة من تعليمتين والتنفيذ يبدأ من التعليمة اليسارية ،وظيفة هذا ال Bufferهي أنَّه يحتوي التعليمتين. عداد التعليمات ) :(Program Counterيحتوي عنوان الكلمة الالحقة المؤلَّفة من تعليمتين ((انظر تمثيل الكلمة في الصفحة التالية)) لجلبها من الذاكرة. ال ُمراكم ( &Accumulator )ACCباقي الضرب :)MQ(Multiplier Quotient يستخدمان لحفظ معامالت ونتائج وحدة الحساب والمنطق حفظا ً مؤقَّتاً .مثالً عند ضرب عددين على 40بت يكون الناتج على 80بت فيكون هناك 40بت منها في المراكم وال 40األخرى في سجل باقي الضرب. 12 المحاضرة -1- تاريخ :األربعاء 9/1/2019 تمثيل الكلمة: **عدد** **تعليمتان** مثالً كتعليمتين 01009(Hex) :و ) ، 53210(Hexوكعدد : ).9(Decimal مالحظات______________________________________________: ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ 13 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه صلة للحاسوب :IAS اآلن البنية المف َّ الحظ كيف يكون ِّاتجاه األسهم واستنتج كيف يقوم IASبالتَّعامل مع تعليمة واردة من وحدة إدخال ما ولتكن جمع عددين ووضع الناتج في الذاكرة الرئيسية أو جلب معلومات من الذاكرة الرئيسية و إرسالها إلى وحدات اإلخراج ولتكن ال َّ شاشة على سبيل المثال. َّ *عودة إلى تاريخ الحواسيب: األولي IASحتى بقيت األجهزة تعمل بالص َّمامات على الرغم من ظهور النموذج َّ األول من الحواسيب. عام 1957وهي ِّ تشكل بمجملها الجيل َّ الجيل الثَّاني قام باستبدال الص َّمامات بالترانزستورات وهي أصغر وأرخص وتبدد صمامات وبقي هذا الجيل حتى عام .1964أحد حواسيب هذا الجيل حرارة أقل من ال َّ كان الحاسوب IBM7094كان يوجد فيه قنوات تنقل ال DATAبحيث توجد تعليمات خاصة للتحكم بهذه التجهيزات. 14 المحاضرة -1- تاريخ :األربعاء 9/1/2019 الجيل الثالث حتى عام SSI, MSI .1971كانت الدارات المتكاملة في هذا الجيل في بداياتها .فوضع مور قانونه منذ بداية ظهور هذا الجيل وحتى يومنا هذا والذي ينص َّ أن عدد الترانزستورات الفعَّالة على نفس الرقاقة اإللكترونية يتضاعف كل 18شهراً. الجيل الرابع حتى عام LSI .1977 الجيل الخامس حتى عام VLSI .1991 الجيل السادس حتى اآلن .ULSI َّ (إن متطلَّبات التَّبريد خفت مع الترانزستورات والسبب أن طريقة استهالكها للطاقة أفضل وتختلف باختالف الترانزستور المعتمد). مالحظات______________________________________________ : ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ 15 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 األول الدرس َّ األول الدرس َّ تاريخ:األربعاء16/1/2019 من أمثلة الجيل الثالث للحواسيب :سلسلة IBM300ومنها: حاسوب :IBM360 ظهر عام .1964 غير متوافق مع IBM7000وظه َر بديالً عنه. له نفس ال. Instruction sets سرعته أكبر. زادت عدد بوابات الدَّخل والخرج لزيادة تخديم المستخدم. مخدمات المستخدم (شاشة ،لوحة مفاتيح) يتم وصلها عن طريق كبل ( Serialلم يكن هناك .)USB ذاكرة أكبر. كلفة أكبر. .Multiplexed switch structure حاسوب :DEC PDP-8 أيضا ً ظهر عام .1964 أول حاسوب صغير نسبيا ً .Minicomputer ال يتطلب التبريد (درجة حرارة الغرفة مناسبة مثالً). تستطيع وضعه في زاوية من زوايا المخبر. سعره $16000فقط! دعم ميزة التطبيقات الخفيَّة وهي التي تعمل في خلفيَّة الشاشة. فيه نظام BUSوهو نظام توصيل عبارة عن خطوط DATAوخطوط عناوين وهكذا. 16 المحاضرة -2- ثالث محاضرة بنيان حاسوب تاريخ :الثالثاء 15/1/2019 سمات األجيال الالحقة (الذاكرة-المعالجات-األداء): .1الذاكرة :من أنصاف النواقل .Semiconductors مالحظة مهمة :خلية الذاكرة قبالً كانت Core Memoryوهي تأخذ القيمة 0أو 1عبر المغنطة. المصممون قادرينَ على وضعِّ 256بت عندما ظهرت ال Semiconductorsأصب َح ِّ من الذاكرة الجديدة محل بت واحدد فقط من الذاكرة .Core بالتالي وحسب قانون مور بدأت الذواكر بالتضخم شيئا ً فشيئاً: … >1K -> 4K -> 16K -> …. -> 1G -> … -> 16G - .2المعالجات :ظهرت أجيال متالحقة من المعالجات. ب 8bitsوهو معالج صغري أول معالج أنتجته Intelفي عام 1974هو المعالج ِّ 8080 ب 8bitsهنا هو أنَّه ش َّكل نقلةً نوعية ألنه صغير ويستطيع القيام بأعمال فعَّالة ،والمقصود ِّ يعمل على قناة BUSمؤلَّفة من بايت واحد يقوم فيها بعمليات التخزين والقراءة واإلضافة. بعدها بأواخر السبعينات ظهر 8086وهو يعمل على قناة من 16بت. بعدها عام 1981ظهر 80386وهو بقناة 32بت وكذلك أصبح يقوم بعمل متعدد المهام فكان من طالئع المعالجات التي دعمت ميزة المقاطعات والتي فعَّلت بدورها الـ. Multitasking ميزة ال Multitaskingتقتصر على أنَّه عند إنجاز عمل طويل وقيام المستخدم بطلب عملية سهلة يتم تنفيذ العميلة السهلة ثم إكمال العمل الطويل وهذا يزيد من إرضاء المستخدم. 17 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه تغذية راجعة عن المعالجات قبالً: :8086 سعة قناة نقل المعطيات 16بت. أقوى من .8080 يسترجع بعض التعليمات بسرعة. يوجد Cacheفيها تعليمات أيضا ً لتسريع األداء. :8088نفس 8086ولكن يزيد عنه بـ ِّ BUSخارجي. :80286فيه 134000ترانزستور و 16MBمعنونة بحيث يمكن الوصول إلى أي مكان فيها. بعده أتى 80386الذي يدعم الـ Multitaskingثم ظهر 80486الذي يحوي 1.4مليون ترانزستور ،كانت ال Cacheفيه أقوى وأصبح هناك Pipeliningأو ما يسمى بخطوط اإلنتاج ووضع مع هذا المعالج Co-Processorيهتم بالعمليات المعقدة على األعداد الحقيقية. شرح ** :Pipeliningيشترط لهذه الخاصة أن يكون هناك Buffersشواغر في المعالج** عندما يقوم الـ Bufferبجلب تعليمة ما من الذاكرة يصبح شاغرا ً لكي يقوم بعمل Fetch للتعليمة التي تليها وبالتالي في المرحلة التي يقوم بها المعالج بعمل Decodeللتعليمة األولى جلب التعليمة الثانية وكذلك األمر في التعليمات الالحقة بحيث تكون هناك تعليمة فإنه يكون قد َ قيد التنفيذ وتعليمة بعدها تتم ترجمتها وكذلك تعليمة بعد التي تتم ترجمتها تكون قيد اإلحضار سابق واستنتج عمل *Pipelining الرسم ال َّ *انظر َّ 18 المحاضرة -1- تاريخ :األربعاء 9/1/2019 :Pentium يحوي 3.1مليون ترانزستور. .Superscalar or Multiple pipelining لم يعد هناك الحاجة لعمل pipeliningمنفرد فحسب بل أصبحت تتضمن عدة Pipelining تعمل على التوازي بالكامل(( .خطوط إنتاج متعددة لمهام مختلفة مستقلة متعدِّدة)). :Pentium-Pro Superscalar متزايد. التنفيذ والتنبؤ التفرعي :يكون ال CPUينفذ التعليمات بشكل متسلسل ثم يصادف تعليمة تجعله يقفز إلى مكان آخر في التعليمات فيضع pipelineلكتلة تعليمات أو أكثر بعدد مرات القفز ثم بعد االنتهاء وحفظ الناتج في الذاكرة يرجع ال CPUإلى التعليمة التي بدأ منها ويعود إلى تنفيذ التعليمات بشكل متسلسل. 19 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه تحليل تدفق البيانات :يتأكد ال Compilerمن أن التعليمات مرتبطة ببعضها أم ال. مثالً ال Compilerيرى التعليمتين: C=A+B K = C +1 هو يرى َّ أن Cالتي في التعليمة الثانية يجب أن يتم حسابها في التعليمة األولى فينفذ التعليمتين على التسلسل. ولو كانت التعليمتان على الشكل التالي: K=C*M F=A+B ال Compilerتأكد أن ال دخل لهما ببعض فينفذهما على التوازي عن طريق خ َّ َطي إنتاج. Speculative Execution التنفيذ التأملي :هو تنفيذ عدة تعليمات إلى األمام وهذا ما يجعل المعالج في حالة عمل دائم. **كل ما سبق يجعل ال CPUيعمل بأقصى طاقته** :Pentium II فيه 7.5مليون ترانزستور. لديه تكنولوجيا معالجة الصور والفيديو والصوت وهذا بفضل تكنولوجيا .MMX :Pentium III فيه 9.5مليون ترانزستور. تعليمات نقطة عائمة إضافية لمعالجة ال 3D-Graphics :Pentium 4 فيه 42مليون ترانزستور. تعليمات النقطة العائمة أقوى وتحسينات على الملتيميديا. يشكل المعالج. بعد هذا أصبحنا نضع ال Coresوهي لها ذات البنيان اجتماعها على التوازي ِّ 20 المحاضرة -1- تاريخ :األربعاء 9/1/2019 .3األداء :الفضل األكبر لزيادة األداء: & Branch prediction & pipelining Data Flow Analysis & Speculative Execution مسرعات األداء بحيث يكون السعر أقل. يمكن تخفيف التَّصميم واستبعاد أحد ِّ الشكل القادم يبين تأثير كل واحد مما سبق آنفا ً في تطور أداء المعالجات. مالحظات على الدَّرس إن وجدت: ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ 21 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ األول***** *****نهاية ال َّدرس َّ 22 المحاضرة -1- تاريخ :األربعاء 9/1/2019 ***بداية ال َّدرس الثَّاني*** كيف يفهم الحاسوب ما نكتبه من تعليمات في لغة C++مثالً ؟ َّ إن لغة C++هي لغة عالية المستوى تتم ترجمتها إلى لغة أبسط تسمى بـ ِّ Assemblyومنها تفسر عن طريق Assemblerيتم تحويل لغة ال Assemblyإلى لغة اآللة وكذلك بدورها ِّ اآللة ذلك على شكل أصفار وواحدات. يوضح ال َّ شكل التالي ذلك: شرح آخر مستطيل :طبعا ً تأتي إشارات التحكم على شكل سلسلة من األصفار والواحدات إلى معرفة بأوتومات منتهي حتمي فإنَّها تقوم بتنفيذ العمل والوصول إلى ما يطلب اآللة وبما أنَّها َّ منها بالوصول إلى حالة نهائية وإرجاع المطلوب وتتكرر العملية... مالحظة :هناك one-to-one mappingبين كود اآللة وكود ال Assemblyومعنى هذا هو َّ أن العملية الواحدة على لغة عالية المستوى ممكن أن تتضاعف باستخدام .Assembly مثالً: High Level Language: C = A + B Assembly: ADD C, A, B 23 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 األول الدرس َّ الدرس الثَّاني تاريخ:الثالثاء22/1/2019 تذكرة :المسؤول عن تنفيذ التَّعليمات في الحاسوب هو ال .CPU هناك تعليمات قصيرة تأخذ حيز كلمة واحدة فقط. هناك تعليمات طويلة ممكن أن تأخذ حيز أكثر من كلمة وهي حسب التعليمة. كيفية تنفيذ التعليمة الواحدة: لتكن لدينا التعليمة ADD A,B -1يقوم ال CPUبجلب التعليمة من الذاكرة .Fetch instruction -2يقوم ال CPUبعمل Decodeللتعليمة لكي يعلم ماهيَّتها ،بشكل أوضح َّ فإن الCPU يقوم بمعرفة ال opcodeللتعليمة وبالتالي يعلم ماذا تفعل هذه التعليمة(في مثالنا يعلم أنَّها تعليمة جمع). -3يقوم ال CPUبجلب ال operandsمن الذاكرة( .يجلب كل من Aو Bمن الذاكرة). -4معالجة المعطيات وتنفيذ التعليمة. -5إظهار النتائج. مالحظة :يجب تحليل التعليمة لنعلم عدد ال operandsفيها أو ربما ال تستدعي التعليمة أي operandوتكون التعليمة في هذه الحالة هي عبارة عن تعليمة معالجة فقط. بفرض َّ أن لدينا التعليمة التالية C: =A+Bالمكتوبة بلغة عالية المستوى وهي عملية معقدة بثالث معامالت بحيث تتنفذ بضربة واحدة ومكافؤها في لغة Assemblyالمتوسطة هي: Load A, R1 Load B, R2 ADD R1, R2 Store R1, C 24 المحاضرة -2- رابع محاضرة بنيان حاسوب تاريخ :الثالثاء 15/1/2019 دورة التعليمة : :HALTهي تعليمة النهاية للتعليمات التي ينفذها ال CPUلبرنامج موجود في الذاكرة. ففي الشكل التالي لنفرض أن هذه التعليمات المتتالية هي تعليماتٌ لبرنامج ما : تمثل التعليمة النهائية ال HALTالذي تحدثنا عنه وهي تكافئ تعليمة returnفي التابع )( Mainفي لغة البرمجة .C++ تذكرة ببعض السجالت: ) :IR(Insruction Registerيحوي التعليمة الحالية التي قمنا بعمل Fetchلها ونريد عمل Decodeلها كذلك. :I/O Address Registerيستخدم لتخزين عنوان بوابة (دخل\خرج) ،مثالً لوحة المفاتيح. :I/O Buffer Registerيستخدم للحصول على محرف من بوابة (الدخل\ الخرج). 25 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه مثال على تنفيذ التعليمات لبرنامج (:)Program Execution البرنامج مكون من ثالث تعليمات وهي تعليمة للقراءة وتعليمة للتخزين وتعليمة للجمع. معرف الوصول لها. يجب تحديد opcodeلكل تعليمة بحيث يكون هو ِّ Instruction’s work LOAD STORE ADD TO ACCUMULATOR OPCODE 0001 0010 0101 مالحظة :يكون اختيار البتات خاصا ً بالمعالج والقصد هنا هو الحد بين حيز البتَّات الخاص بالـ OPCODEوحيز البتات الخاص بالـ.ADDRESS اآلن انظر إلى الشكل: 26 المحاضرة -1- تاريخ :األربعاء 9/1/2019 الحظ أنه في الخطوة األولى كان ال PCعند ال 300أي أنَّه جلب التعليمة في العنوان 300 من الذاكرة ووضعها في .IR في الخطوات الثانية والثالثة والرابعة قام ال CPUبتحميل التعليمة في IRوالغرض هنا هو جمع العددين الموجودين في الموقعين 940و 941كما هو مبين في الصورة. في الخطوتين األخيرتين تم تخزين الناتج كما هو متوقع في الموقع .941 مالحظة :ال يمكن للـ CPUتنفيذ التعليمة وهي في الذاكرة بل يقوم أوالً بجلبها من الذاكرة ثم يزيد العداد ويتم تنفيذ التعليمة **استعن بالشكل لمالحظة ذلك**. المقاطعات Interruptions المقاطعة بشكل عام هي الحدث الذي يتم إنشاؤه عن طريق أحد أجهزة الطرفيَّات لكي يعلم الـ CPUبأنَّه قام بإنهاء العمل الموكل إليه وهذه المقاطعة يجب أن تنَفَّذ عندما ينهي الـCPU دورة التعليمة الكاملة. من الممكن أن يقوم ال CPUبعمل إخفاء ( )Maskللمقاطعة حتى ينهي دورة التعليمة ومن ثم ينفذ العمل الذي تطلبه المقاطعة. تعريف المقاطعة :هي تخديم لمكان آخر بحيث يتوقف التنفيذ الحالي وهذا ينعكس على دورة التعليمة. 27 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه هنا نالحظ التغيير في مخطط دورة التعليمة بحيث أصبح الـ CPUيتأكد بعد تنفيذ كل تعليمة ما إذا كان لديه أي مقاطعات لكي يقوم بتخديمها وهذا ما يفسر عدم استجابة CPUفي بعض األحيان ألنه لم ين ِّه التعليمة التي هو فيها وبالتالي لم يصل إلى فحص ما إذا كان هناك مقاطعات أم ال. البنية الداخلية للـ: CPU مالحظة :إن األسهم التي تنزل إلى أسفل الصورة تذهب إلى الذواكر بأنواعها. الحظ وجود ال BUSالداخلي الذي يشكل صلة الوصل بين مكونات وحدة التحكم و الطرفيات األخرى. لنحاول الفهم أكثر عن طريق مثال ،بفرض أن ال CPUمشغول بعملية نسخ ملفات من مكان آلخر على القرص الصلب وأتت مقاطعة من أحد وحدات اإلدخال (لوحة المفاتيح) لكي يجمع ال CPUعددين يحدد قيمتهما المستخدم ،طبعا ً نحن نعلم أن مصدر المقاطعة هو لوحة المفاتيح سيتقبَّل ال CPUالمقاطعة ومن ثم ستكمل رحلتها قصيرة األمد ،ستصل إلى ال BUSالداخلي ومنه إلى وحدة المعالجة والمنطق .بعد ذلك وبعد الحصول على النتيجة ستضع ALUالنتيجة على ال BUSمن جديد ومن ث َ َّم سيتم كتابة هذه النتيجة على الذاكرة أو إظهارها على أحد وحدات اإلخراج. 28 المحاضرة -1- تاريخ :األربعاء 9/1/2019 مالحظات______________________________________________: ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ بعد وجود ال Cacheأصبح طلب التعليمات وتحصيل النتائج اللحظيَّة أسرع بكثير ألنَّه بتخزين التعليمات والمعطيات فيها ف َّ إن ال CPUيختصر الكثير من الوقت والجهد وذلك الختالف بنية ال Cacheكونها ذاكرة ساكنة وكذلك ألنها صغيرة الحجم ما يس ِّهل البحث فيها والكتابة والقراءة وكذلك ألنها أقرب ما يكون إلى .CPU هناك سجالت في وحدة التح ُّكم مختلفة عن َ R1و R2وربما نستطيع الوصول إليها وربما ال وذلك يعتمد على المعالج بحد ذاته. َّ َّ سجالن قابالن للتغير من قبل المبرمج وهما جلين R1و R2هما الس ِّ إن كل من ِّ موجودان لتسهيل عمل المبرمج. صة :FLAGS تعريف مؤشرات األحداث الخا َّ ٌ خاص ما. حدث هي مؤشرات تع ِّلم ال CPUما إذا طرأ ٌّ 29 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه مثال: لنقل أننا أردنا جمع عددين على 2بايت أي ِّ 16بت بالتالي لدينا ِّبت لإلشارة و 15بت للعدد وليكن لدينا العددان A = 0100000000000000 B = 0100000000000000 من الواضح أن نتيجة الجمع موجودة ومعروفة بالنسبة للقارئ ولكنَّها غير موجودة بالنسبة للمعالج لذلك سيتم رفع Carry Flagالذي سيقوم بإعالم الَّ CPU بأن هناك زيادة حصلت في عملية الجمع. تغذية راجعة: بفرض لدينا BUSعرض خط المعطيات فيه هو 8بايت ( 64بت )أي أنَّه يستطيع طلب 8 بايت بكل نبضة ساعة للـ ،CPUولدينا ساعة ال CPUتعمل على 66( 66MHzمليون نبضة في الثانية الواحدة). إذا ً َّ فإن ال BUSيسمح بنقل 528ميغا بايت بالثانية الواحد (كحد أقصى) . ويساوي 4.224غيغا بت بالثانية. 30 المحاضرة -1- تاريخ :األربعاء 9/1/2019 نتعرف معا ً على بعض األشياء األساسية: قبل البدء في المفهوم القادم يجب أن َّ َّ إن ال Operandيتمثَّل بكلمة بالذاكرة أو مجموعة من الكلمات( )Blockوكذلك يمكن أن يكون عدد حقيقي أو ما إلى ذلك وهو يختلف اختالفا ً كليَّا ً عن ال.Operator فالـ Operatorهو معامل للجمع أو الطرح أو & أو ...إلخ. َّ إن مفهوم كتابة العبارات الرياضية بلغة الحاسوب هو أمر معقَّد قام بحله أوائل المخترعين وهو يقوم على تحويل شكل العبارة الرياضية إلى شكل أسهل من حيث التعامل لذلك لدينا ثالثة أشكال ).(Infix,Prefix,Postfix لتكن لدينا العبارة الرياضية: C=A+B َّ إن تفسير العبارة الرياضيَّة على الطرف اليميني من تعليمة اإلسناد يقع على عاتق أحد األساليب الثالثة المذكورة. Prefix (Operator First): +AB Infix: A+B Postfix (Operator Last): AB+ سنشرح طريقة ال prefixفقط وسنترك للقارئ االستنارة بمعرفة كل من Infixو .Postfix في حالة Prefixسيتم التعزيز بالرسم لتوضيح األمر باستعمال المكدس. ت المعادلة بعد. هنا لم يحدث أي شيء ولم تأ ِّ 31 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه توضع العملية على ال Stackأيضا ً وال توضع بسجل منفصل أن العالقة أو المعادلة معقدة ج َّدا ً وبالتالي َّ والسبب أنه بفرض َّ فإن السجالت ال تكفي لتخزين العمليات والمكدس هو الخيار األفضل. اآلن أصبحت عملية الجمع جاهزة لإلتمام. يقوم اآلن ال CPUبعمل popلكل من المعاملين ويضع ناتج الجمع في ال.Accumulator :Stack Pointer يفيد في الكثير من التطبيقات كالعوديَّة والتوابع وغيرها ،باختصار عند حاجتنا للقفز من محل من الرماز المصدري(الكود) إلى مكان آخر فإننا حتما ً سنحتاج إلى .Stack Pointer 32 المحاضرة -1- تاريخ :األربعاء 9/1/2019 األول الدرس َّ الدرس الثَّاني تاريخ:األربعاء23/1/2019 نموذج عمل الـ:CPU لنتكلم عن األسهم الداخلة إلى الـ:CPU :Instructionsوهي التعليمات التي قام الـ CPUبعمل Fetchلها. :Dataوهي عندما يقوم بجلب الـ.Operands :Interrupt Signalsوهي ليعلم الـ CPUما إذا كان هنالك مقاطعة من أحد الطرفيَّات. واألسهم الخارجة هي عبارة عن عناوين لكي يعلم الـ CPUموقع الOperandsـ ويقوم بإرسال ال Dataإليه وكذلك إشارات تحكم. مالحظات______________________________________________: ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ 33 المحاضرة -2- خامس محاضرة بنيان حاسوب تاريخ :الثالثاء 15/1/2019 تنظيم الحاسوب ووظائفه الذاكرة :Memory باختصار تشكل الذاكرة مصفوفة من الكلمات حجمها Nكلمة نقرأ منها ونكتب فيها ونعطيها عناوين لتعطينا DATAونخزن فيها .DATA أحد طرفيات اإلدخال أو اإلخراج :I/O Module تختلف عنونة I/Oعن عنونة الذاكرة إلزالة الغموض بحيث يكون مجال العناوين مختلفا ً بينهما. 34 المحاضرة -1- تاريخ :األربعاء 9/1/2019 يمكن أن يكون هناك تفاعل مباشر بين CPUو I/Oوكذلك األمر بين CPUوالذَّاكرة. شكل توصيل ال:BUS مبدأ الخط المباشر :يكون هناك محاولة كتابة على الخط المطلوب بالتالي يعطي الCPU خطأً( )Errorحتى ينهي الذي يحاول الكتابة عملَه. سابق وبالتالي ال يستطيع أن يشغل خط صل على المبدأ ال َّ مشاكل هذا التوصيل أنَّه مو َّ المعطيات أو العناوين أو التح ُّكم إال جهاز واحد على األكثر وهذا ما تم تالفيه كما سنرى اآلن. اآلن نموذج لحاسوب حديث مع : PCI-BUS 35 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه يتألَّف هذا النموذج بشكل رئيسي من األنواع التالية من خطوط النَّقل (:)BUS .1 .2 .3 .4 :System Busهو BUSخاص بالنِّظام وأوامره. :Local Busخاص ليبحث عن المعلومة في Cacheوإذا لم يجدها يذهب نحو الذاكرة ليبحث فيها. :High Speed Busهو خط نقل سريع توضع عليه بعض الطرفيات المهمة. :Expansion Busهو أبطأ خط نقل توضع عليه الزيادات البطيئة نسبيا ً لذلك تَّدفُّق المعطيات على هذا الخط قليل. الحظ هنا ما يس َّمى بـ ِّ Local Busوهو خاص ليبحث عن المعلومة في Cacheوإذا لم يجدها يذهب نحو الذاكرة. تشكل األول والثاني وكذلك الثَّاني والثَّالث وهي ِّ الحظ أيضا ً نقاط اتِّصال المستويين َّ الجسور بين هذه المناطق. نستطيع أن نقول َّ أن مكونات الحاسوب تربط فيما بينها مجموعة من BUSESوال ترتبط بمسرى وحيد فقط أداء ال: )CPU Performance( CPU نبدأ بتعريف مقادير مه َّمة : :CPIهو العدد الوسطي لنبضات الساعة في التعليمة الواحدة. بفرض َّ أن لدينا البرنامج التَّالي: LOAD A, R1 STORE B, R2 ADD R1, R2 َّ إن كالً من تعليمتي التخزين والقراءة تأخذان دورتي تعليمات تقريبا ً ومثاالً على طريقة الحساب َّ فإن تعليمة القراءة LOADتستهلك أول دورة لتجلب Aمن الذَّاكرة وتستهلك ثاني دورة لكي تخزن قيمة Aفي الذاكرة ،وتعليمة ADDتستهلك دورة واحدة وبالتالي أصبح مجموع الدورات في البرنامج السابق هو 5واآلن لنحسب :CPI 5 = 1.667 3 36 = CPI المحاضرة -1- تاريخ :األربعاء 9/1/2019 بما َّ أن CPIيمثِّل العدد الوسطي لنبضات الساعة ولدينا عدد التعليمات فيكفي أن نعلم ما هو الزمن المستغرق من قبل الحاسوب للدورة الواحدة لنعلم المقدار َّ َّ الزمني لتنفيذ البرنامج. )CPU Time = (N) * (CPI) * (The time consumed for a single instruction حيث َّ أن Nهو عدد التَّعليمات في البرنامج. كذلك نستطيع تفريق التَّعليمات وزمن وعدد كل منها فيكون: n CPI = ∑ CPI i . Ii i=1 وحدات قياس أداء ال:CPU Clock rate CPI ∗106 = عدد التعليمات ∗106زمن التنفيذ = MIPS صحيحة. وهذا مؤشر إذا كان المبرمج يتعامل مع األعداد ال َّ دوما ً معالجات Intelتأخذ أكثر من دورة واحدة. هناك حسابات حقيقية تأخذ عدد تعليمات كبير جدا ً مثل حساب )….(Tan, Sin, عدد عمليات النقطة العائمة التي تنفَّذ ∗106زمن التنفيذ ∑ni=1 Execution Timei 37 1 n = MFLOPS = Arithmetic Mean المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه مثال: ليكن لدينا برنام ٌج نت َج عنه 2مليون تعليمة على ساعة تردُّدها .400MHz استعن بالجدول وأوجد كالً من CPIو .MIPS Instruction Mix 60% 18% CPI 1 2 12% 10% 4 8 1 400∗106 نمط التعليمة حساب ومنطق تخزين\قراءة من ال Cache إذا ت َّم إيجاد المطلوب فيها Branch ذهب إلى ال Cacheولم يجد َ ضالته فيها وأكمل إلى الذاكرة = 1 Cycle CPI = 0.6*1 + 0.18*2+0.12*4+0.1*8 = 2.24 = 178.57 400∗106 2.24∗106 = Clock rate CPI ∗106 = MIPS فكرة عن الـ :Benchmarksهي برمجيات مكتوبة بلغة عالية المستوى تم تصميمها الختبار األداء وهي محمولة يمكن وضعها على ذاكرة متوسطة السعة وهي تختلف تبعا ً للمواصفات واإلصدارات. مالحظات على الدَّرس إن وجدت: ____________________________________________________ ____________________________________________________ ____________________________________________________ 38 المحاضرة -1- تاريخ :األربعاء 9/1/2019 ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ *****نهاية ال َّدرس الثَّاني***** 39 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 األول الدرس َّ تاريخ :الثالثاء 15/1/2019 ***بداية ال َّدرس الثَّالث*** لقد تطرقنا في الدروس الماضية إلى بنيان الحاسوب وتنظيمه والمقاطعات داخله وكيفية تطوره على مدى السنين المنصرمة ،اآلن سنتعلم كيفية تصميم تعليمات المعالج: تعليمة اآللة: تعلمنا في الدرس الماضي َّ أن تعليمة اآللة تحجز عددا ً من البِّتات ولها OPCODEوكذلك لها لنتعرف عليها بتفصيل أكثر: عنوان ،اآلن َّ عناصر تعليمة اآللة: ( OPCODE -1ضروري) -2معامل مصدر (( )Source Operandغير ضروري) -3معامل نتيجة (( )Result Operandغير ضروري) -4عنوان التَّعليمة التَّالية (للقفز بين التَّعليمات) (غير ضروري) خاص بها فقط. كل تعليمة فريدة -في الكود البرمجي آللة معينة -لها OPCODE ٌّ مثال على شكل التَّعليمة العام: يجب تعريف تعليمات كل تعليمة منها لها OPCODEخاص بها ،مثالً: 40 المحاضرة -2- سادس محاضرة بنيان حاسوب الدرس الثَّالث تاريخ:الثالثاء 29/1/2019 كذلك يحب حجز مكان ِّللمعامل المصدر وكذلك حجز مكان ِّللمعامل النتيجة. أنواع التَّعليمات( :تختلف بحسب تعاملها مع المعطيات) -1تعليمات تقوم بمعالجة المعطيات. -2تعليمات تقوم بتخزين المعطيات. -3تعليمات تقوم بنقل البيانات إلى وحدات الدخل أو وحدات الخرج. -4تعليمات القفز ()test & Branch: Low-level مالحظة :من الممكن أن يكون هناك تعليمات خاصة بالمبرمج يضيفها هو لتحسين أداء برامجه. متغير حسب التعليمة والتَّعامل .وكل Operandإما أن يكون عدد العناوين للoperands ِّ دخالً للتعليمة أو أن يكون خرجا ً لها. مثالً لتكن لدينا التعليمة: ADD A, B يفسر ما هو الدخل في هذه التَّعليمة وما هو الخرج. -1المصمم يجب أن ِّ -2يشترط الوضوح في تفسير التَّعليمة. التعليمة التي تأخذ ثالث معامالت بالضرورة: يوجد فيها تكافؤ بين العبارتين التاليتينOP A, B, C ≡ A ← B OP C : سابق سيتم إنجاز التوصيف عند إجراء التعليمة على اآللة وهي الطرف اليساري من التَّكافؤ ال َّ لها وهو الطرف اليميني لهذا التَّكافؤ. مثال: ADD A, B, C ع ِّلمنا أنَّه سيتم جمع Bو Cوسيتم وضع الناتج في .A من توصيف التَّعليمة ال َّ سابق َ سمات التَّعليمة التي تأخذ ثالث معامالت هي أنَّنا بعدد تعليمات قليل منها نستطيع حل المشاكل ولكنها تحتاج لبعض العمل اإلضافي ألنها أطول في التفسير من التعليمات التي تتضمن عدد أقل من المعامالت. التعليمة التي تأخذ معاملين بالضرورة: يوجد فيها تكافؤ بين العبارتين التاليتينOP A, B ≡ A ← A OP B : 41 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه مثال: ADD A, B كذلك من توصيف التعليمة السابق علمنا أنَّه سيتم جمع قيمة Bإلى Aوسيتم وضع الناتج في A (الحظ َّ أن Aهو متغير دخل وخرج في الوقت نفسه). مالحظة :أسلوب التعليمتين يقوم بتقليل طول التعليمة ولكن يحتاج إلى بعض العمل اإلضافي. التعليمة التي تأخذ معامل واحد بالضرورة: يوجد فيها تكافؤ بين العبارتين التاليتينOP A ≡ ACC ← ACC OP A : مثال: ADD A أن قيمة المعامل Aالذي سيتم جلبه من الذاكرة هي َّ 7 لنفترض َّ وأن القيمة الَّتي كانت مخزنة في المراكم في آخر عمليَّة هي 3فنستطيع بوضوح أن نعلم أنَّه سيتم جمع قيمة Aإلى القيمة الموجودة في المراكم وسيتم تخزين القيمة الجديدة في المراكم نفسه أي بعد هذه العملية ستصبح القيمة الموجودة في المراكم هي .10 التعليمة التي ال تأخذ أي معامل بالضرورة: يوجد فيها تكافؤ بين العبارتين التاليتينOP ≡ T ← (T − 1) OP T : َّ إن الحرف Tالموجود في الطرف اليميني من التَّكافؤ هو يرمز إلى ق َّمة المكدس ()Stack الموجود في الذاكرة والحرف ) (T-1إلى العنصر التالي فيه ،بالتالي سوف تتم العمليَّة كالتالي: المرجوة عمل POPلكل من العنصرين الموجودين على قمة ال Stackومن ثم تطبيق العملية َّ (T − 1) OP Tوعمل Pushللنتيجة على قمة ال. Stack 42 المحاضرة -1- تاريخ :األربعاء 9/1/2019 صورة توضح العنصرين الذين ستتم عليهما العملية مؤشر قمة المكدس صورة توضح ال Stackبعد القيام بالعمليَّة OP مؤشر قمة المكدس مالحظة :الحظ َّ أن العنصر الذي يسبق قمة ال Stackهو الذي يكون الطرف اليساري من العمليَّة وكذلك العنصر الذي في قمة ال Stackهو الذي يشكل الطرف اليميني لذلك يجب االنتباه إلى كون بعض العمليات غير تبديلية كالطرح والقسمة وغيرها. 43 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه مثال: Push A Push B SUB POP C َّ إن كل التعليمات السابقة تكافؤها تعليمة واحدة في لغة عالية المستوى وهي .C=A-B : أمثلة للتعليمات المختلفة لتنفيذ التعليمة : 𝐁 𝐂 =𝐀 بثالث معامالت: Div A, B, C مالحظة :يجب االنتباه إلى َّ أن شكل التعليمة ثابت فال يجوز وضع أقواس وال يجوز االجتهاد في الكتابة َّ ألن هذا يعتبر خطأ في البرمجة. بمعاملين: MOV A, B DIV A, C يتم وضع قيمة Bفي Aومن ثم القيام بقسمة Aعلى Cوتخزين القيمة في .Aوبالتالي الحصول على القيمة المرادة في .A بمعامل واحد فقط( :نحتاج )ACC LOAD B DIV C STORE A يتم وضع قيمة Bفي المراكم ثم قسمة قيمة المراكم (والتي هي )Bعلى Cثم تخزين النتيجة في .A 44 المحاضرة -1- تاريخ :األربعاء 9/1/2019 بدون معامالت( :ال تنس القاعدة )OP ≡ T ← (T − 1) OP T Push B Push C DIV POP A الحظ أنَّنا قمنا بعمل ِّ Pushلـ Bقبل عمل Pushلـ ِّ Cوذلك لكي نستطيع أداء عمليَّة القسمة بشكل صحيح ،في التعليمة الثالثة ت َّمت القسمة ناتج العملية من ال Stackفي .A 𝐁 𝐂 وفي الخطوة األخيرة ت َّم تخزين مالحظة أخيرة :ال يجوز القيام بعمل تعديل على ال Operandsبل يجب استخدام وسطاء آخرين وذلك من أجل سالمة منطق البرنامج. تمرين : قم بكتابة الخوارزمية التي تعطينا ناتج العملية التَّالية: 𝐁𝐀− 𝐄 ∗ )𝐃 (𝐂 + =𝐘 وذلك باستخدام تعليمات بـ ِّ 3معامالت وكذلك باستخدام تعليمات بمعاملين وتعليمات بمعامل واحد و تعليمات بدون معامالت. حلك حيث َّ أن تذكرة :بعد أن تقوم بالمحاولة بنفسك في هذا التمرين فإنك تستطيع التأكد من ِّ الحل موجود في القسم النَّظري للمادَّة لذلك اذهب وابحث عنه. مالحظات______________________________________________: ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ 45 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 األول الدرس َّ الدرس الثَّالث تاريخ:األربعاء30/1/2019 العناوين الكثيرة Vsالعناوين القليلة: كلما أضفنا عناوينا ً أخرى في التعليمة: -1تكون لدينا تعليمات معقدة ولكنَّها أكثر قوة. -2يلزمنا سجالت أكثر والسبب هو أن اإلكثار من عدد المعامالت يحتاج إلى اإلكثار من عدد السجالت. -3ستصبح تعليمات البرنامج أقل. كلما قللنا العناوين في التعليمة: قوة. -1تكون التعليمة أقل تعقيدا ً ولكنَّها ظاهريا ً تكون أقل َّ -2تصبح تعليمات البرنامج أكثر. -3تكون عمليات fetchوكذلك Executeأسرع وذلك َّ ألن عدد ال Operandsقليل. القرارات التَّصميميَّة: -1قائمة العمليَّات :هي العدد الذي سيتم التزود به من التعليمات وكذلك أنواع التعليمات التزود بها وما هو مدى تعقيدها. التي سيتم ُّ -2أنواع المعطيات :الحجوم التي يستطيع البرنامج التعامل معها مثالً(Byte, 2Bytes, : صة بالدَّخل والخرج أم ال. )...16Bytesوما إذا كان هناك معطيات خا َّ أحقيَّة للمصمم في تصميم -3تصميم التعليمة الواحدة :إ َّما يتم التقيد بها أو أن يكون هناك ِّ التعليمة التي يريد. -4الس َّ جالت :عدد السجالت التي سنحتاجها في البرنامج. -5أنماط العنونة :أنواع األنماط المراد التَّعامل معها ومدى فعالية كل نمط. أنواع ال: OPERANDS من الممكن أن يكون الOperand من الممكن أن يكون الOperand من الممكن أن يكون الOperand من الممكن أن يكون الOperand عبارة عن flagمثال. عنوانا ً يتم الوصول إليه في الذاكرة أو ال. Cache عددا ً صحيحا ً أو عشرياً. محرفا ً ( Characterمن لوحة .)ASCII بيانات منطقيَّة مثل أن يكون ال Operandهو 46 المحاضرة -2- سابع محاضرة بنيان حاسوب تاريخ :الثالثاء 15/1/2019 المعالج x86وأنواع معطياته: سم َح معالج x86بتوصيف أطوال كلمات مختلف أي َّ أن أنواع المعطيات ممكن أن تكون مختلفة ونستطيع توصيفها كعنوان ضمن التَّعليمة. أنواع العمليَّات (:)Operations -1عمليات نقل المعطيات :مثا ٌل عليها Move, Store, Load, Push, Popويجب تحديد المصدر فيها وكذلك الوجهة ومقدار المعطيات. مثالً: :Moveقم بنقل الكلمة التالية أو الـ ( )Blockالتالية من المصدر إلى الوجهة. :Storeقم بنقل الكلمة التالية أو الـ ( )Blockالتالية من المعالج إلى الذاكرة. :Loadقم بنقل الكلمة من الذاكرة إلى المعالج. تنويه :القصد بـ Blockهنا هو كتلة من البايتات يكون حجمها محدَّداً. طبعا ً يوجد في كل معالج أكثر من تعليمة > <Loadعلى سبيل المثالَّ ، وإن هذا مفيد لكي يقوم المعالج بالتعامل مع أنماط متعددة من المعطيات وكذلك يوجد تعليمات متعدِّدة من كل تعليمة تفيد في الت َّعامل مع أنماط مختلفة من المعطيات. انظر الجدول في الصفحة التالية وشاهد عدد تعليمات Loadو Storeكل واحدة منها لنمط معطيات مختلف وكل واحدة باسم مختلف وكل منها لها OPCODEمختلف وذلك في جهاز .IBM EAS/390 47 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه -2عمليات حسابيَّة :مثالً ….Add ,Subtract ,Multiply, Divide, قد تتض َّمن الزيادة ( )a++وقد تتضمن النقصان( )a--وقد تتض َّمن العكس(.)-a -3عمليات منطقيَّة :عمليَّات :Bitwise مثالً cmpوهي تعليمة المقارنة ، Compareكذلك Shiftوهي تعليمة اإلزاحة ويوجد أيضا ً تعليمة ،Rotateأيضا ً عمليات ….And, Or, Not, طبعا ً هناك نوعان من ال:Shift :Logical Right Shift وهو إزاحة منطقية إلى اليمين: وهي وضع 0في يسار العدد وإزاحة كل بت إلى اليمين بمقدار 1وبالتالي يبقى أول بِّت بحيث يتم االستغناء عنه. 48 المحاضرة -1- تاريخ :األربعاء 9/1/2019 :Arithmetic Right Shift وهو إزاحة حسابية إلى اليمين: هنا يبقى ِّبت إشارة العدد كما هو ويتم نسخ قيمة بت إشارة العدد كما هو موضَّح ووضعه على البت الذي على اليمين وإزاحة البتات األخرى إلى اليمين كما هو موضَّح. :Right Rotate تدوير لليمين: الصورة تقوم بتوضح ما سيحدث عند اإلزاحة وال يحتاج إلى شرح. مثال مهم لما سبق: مالحظة :هناك تعليمات معقَّدة يتم تنفيذها في معالجات RISCتستطيع تنفيذ إزاحة متعدِّدة إلى اليمين أو اليسار في Cycleواحدة فقط أما المنطق فيقتضي أن تكون كل إزاحة واحدة ضمن Cycleواحدة فقط وبالتالي عند تنفيذ ثالث إزاحات لليمين فمن المفترض أن تأخذ 3Cycles في حين أنها أخذت Cycleواحدة فقط. 49 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه إن السبب في هذا َّ في الحقيقة َّ أن معالجات RISCتدعم وجود تعليمات إزاحة تجعل المبرمج يختار نوع اإلزاحة ومقدارها بالكامل فقط في تعليمة واحدة. -4عمليات تحويل ( :)Conversionوهي التعليمات التي تهتم بالتحويل من نمط إلى نمط مثالً التحويل من النمط Binaryإلى النمط .Decimal -5عمليات إدخال وإخراج :من الممكن أن تكون تعليمتي القراءة أو الكتابة العاديتين. -6عمليات تحكم النظام :يجب أن يكون هناك إطار حماية خاص لكي يقوم المبرمج بكتابة التعليمات أي يجب أن يدخل إلى نمط كتابة المبرمج لهذه التعليمات ،المهم أن يكون هذا المبرمج له سماحيَّة الكتابة. أمثلة على أنماط يمكن للمبرمج أن يستخدم بيئة التعامل مع تعليمات النظام: Kernel Mode Ring 0 80386 -7عمليات النَّقل :لها نوعان هما القفز غير الشرطي و القفز الشرطي: BR (Unconditional Branch) أثناء تنفيذ التعليمات من الممكن أن نصادف تعليمة كهذه ووظيفتها هي القيام باالنتقال بتنفيذ التعليمات إلى مكان آخر بين التعليمات وهو انتقال غير مشروط. ”BR X :”Go to X : Instruction Address شكل التعليمة: BRZ (Conditional Branch) هو نوع آخر من التعليمات وهو انتقال مشروط يأخذ َّ سجالً أو Operandبحيث أن يتم القفز إلى مكان آخر بين التعليمات ولكن دخالً له بحيث أن تكون قيمة السجل الدَّخل أو ال Operandالدَّخل صفراً. ”)BRZ R1 X:”Go to X if(R1 == 0 شكل التعليمة: BRE (Conditional Branch) هذا النوع من التعليمات يأخذ دخالً له سجلين وكذلك عنوان التعليمة المراد القفز إليها بحيث أنه إذا كان السجلين متساويين يذهب إلى عنوان التعليمة المذكور. شكل التعليمة: ”)BRE R1 R2 X:”Go to X if(R2 == R1 َّ سجالً أو .Operandيشترط أن تكون ISZ (Conditional Branch) يأخذ دخالً له قيمة السجل صفرا ً كي ينفذ التعليمة التالية وإال يقوم بزيادة السجل وتجاهل التعليمة التالية. شكل التعليمة: ISZ R1 50 المحاضرة -1- تاريخ :األربعاء 9/1/2019 تمثيل توضيحي لعمل بعض من التعليمات السابقة الحظ التمثيل واستنتج كيف يسير البرنامج. *يُشترط وجود أنواع العمليات السبع السابقة على التعليمات في كل معالج حيث أنه يجب عليه أن يقوم بتوفيرها*. من الممكن أن يكون تعاملنا مع تعليمات القفز أسهل باستخدام بتات اإلشارة Flags وأشهر هذه البتات هي : :Nعندما يصبح العدد الذي نتعامل معه سالباً. :Zعندما يصبح العدد الذي نتعامل معه صفراً. :Cعندما يصبح هناك حمل في أحد عمليَّات الجمع. :Vعندما يحدث لدينا Overflowأي عند جمع عددين على 6بِّت وإظهار الناتج على 6بِّت أيضا ً لذلك عندما تكون النتيجة على 7بِّت تصبح قيمة البت Vهي .1 51 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه االستدعاءات المتداخلة(:)Nested Procedure Calls بما أننا نقوم بالقفز من مكان آلخر بين التعليمات فإننا نحتاج إلى طريقة تؤمن لنا االنتقال متى نريد وبحيث نعلم ما هو المكان الذي كنا فيه سابقاً ،إن عدم التَّفكير في السجالت يكمن في َّ أن عددها محدود أي أننا ال نستطيع االنتقال أكثر من خطوات قليلة 64 مثالً ولهذا قمنا بتوظيف Stackخاص بهذا األمر .أي أنه عند االنتقال من تعليمة إلى مكان تعليمة آخر نقوم بعمل Pushلعنوان التعليمة التي تلي تعليمة Callفي الـStack وبالتالي عند الوصول ألول Returnنقوم بعمل Popللعنوان السابق في الـStack وبالتالي يرجع المعالج إلى حيث كان ويكمل تنفيذ التعليمات. 52 المحاضرة -1- تاريخ :األربعاء 9/1/2019 الحظ أنَّه عند استدعاء Proc1يتم تخزين عنوان التعليمة التي تلي Call Proc1في ال Stackواستنتج كيف يسير البرنامج كامالً عن طريق األسهم وال Stackالمرفقة. مالحظات______________________________________________: ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ 53 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 األول الدرس َّ تاريخ :الثالثاء 15/1/2019 األول من مقدمة :سيتم ُّ التطرق اآلن إلى تكملة للمحاضرة السابعة وهذه التكملة هي نهاية الجزء َّ الدَّرس الثَّالث ومن ثم سنبدأ معا ً بالجزء الثَّاني من هذا الدَّرس وهو أنماط العنونة. خصائص مهمة عن المعالج: كل معالج له Manualمشابه للمثال الذي ذكرناه عن معالج IBM EAS/390بحيث يعلم المبرمج ماهية التعليمات الَّتي يوفِّرها هذا المعالج وأنماط المعطيات التي يمكنه التعامل معها من خالل تلك التعليمات. يتض َّمن المعالج تعليمات خاصة به تساعده على القيام بعمله وهي غير مرئية بالنسبة للمبرمج. عودة إلى معالج :x86 قائمة ببعض التعليمات التي يوفرها إلى معالج x86 54 المحاضرة -2- ثامن محاضرة بنيان حاسوب الدرس الثَّالث تاريخ :الثالثاء 5/2/2019 55 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه سنقوم بالشرح عن بعض التعليمات وسنترك لك -عزيزي القارئ -مه َّمة التعرف على التعليمات بشكل عام وفهم عملها. :PUSHAنحن نعلم ما هي مهمة التعليمة PUSHواآلن َّ إن التعليمة PUSHAهي تعليمة وضع جميع السجالت ( 64سجل) في المكدس .Stack :MOVSXتقوم بنقل قيمة مخزنة على int64إلى قيمة من النمط int32بحيث يتم تحديد القسم الذي سيتم نقله ،فإما أن يتم نقل القسم اليساري أو أن يتم نقل القسم اليميني. : IN, OUTوهي تعليمة خاصة بالدخل أو الخرج من بوابة معينة. :BTSتقوم باختبار قيمة في ِّبت ما وتضع فيه قيمة معينة وهذا يتم في عملية واحدة فقط بحيث يتم القيام بالعملية بدون مقاطعة. :MOVS/LOADSخاصة بنقل وتخزين المتحوالت من النمط .string :WAITتقوم بتأخير تنفيذ البرنامج وتأخذ دخالً لها المدَّة المحددة للتأخير. مالحظة :يتم تقسيم مناطق الذاكرة إلى أقسام 4( Segmentsأقسام مثالً) بحيث يتعامل معها المعالج بشكل منطقي. 56 المحاضرة -1- تاريخ :األربعاء 9/1/2019 ترتيب وضع البايتات في الذاكرة عند الكتابة (:)Byte Order تذكرة :إن أرقام العدد المكتوب بالنظام العشري هي من 0إلى 9وبالتالي يكفي لكتابة عدد من النظام العشري بالنظام الثنائي هو استخدام 4بتات. مالحظة :نعرف اآلن عالقة وزن للبت الواحد ،في العدد المكتوب بالنظام الثنائي )10011(2 َّ إن البت األخف وزنا ً هو البت األول من اليمين والسبب هو أنَّه عند إرجاع العدد إلى النِّظام العشري على سبيل المثال َّ فإن هذا العدد سيمثل العدد 1في النِّظام الجديد أما العدد 1الثاني من اليمين سيمثل العدد 2بالنِّظام العشري وكذلك العدد 1من اليسار سيمثل العدد 16بالنظام العشري وبالتالي نقول عن العدد 1من من اليمين هو البت األخف وزنا ً ( )LSBأما العدد 1 من اليمين هو البت األثقل وزنا ً (.)MSB MSB: The Most Significant Bit LSB: The Least Significant Bit بالعودة للدرس :عند تخزين عدد ما في الذاكرة وليكن العدد 12345678فإن كل رقم منه يتم تخزينه على 4بت وبالتالي كل عددين معا ً يشغالن بايتا ً واحدا ً إذا ً يكفي 4بايت لكي نخزن العدد السابق في الذاكرة. مشكلة :Endian َّ إن تعليمات المعالج تتعامل مع معامالت بطول معين ومحدود وبالتالي كان ال بد من إيجاد طريقة للتعامل مع األعداد الكبيرة وبالتالي لجأ المصممون إلى التخزين في الذاكرة وعند التخزين فيها ظهر وصفان لترتيب تخزين البايتات: الوصف األول :Big-Endianوهو الوصف الذي يقتضي بأن يكون البايت األثقل وزنا ً في العنوان األصغر. الوصف الثاني :Little-Endianهذا الوصف يقتضي بأن يكون البايت األخف وزنا ً في العنوان األصغر. كانت المشكلة األساسية بالنسبة للمبرمجين هي اعتماد إحدى الطريقتين السابقتين ولكن كان هذا في السابق ،معالجات العصر الحديث أي ما بعد عام 1992معظمها تعمل بالنمطين. 57 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه ضع البايتات في الشكل السابق الحظ فرق الترتيب بين Big-Endianو Little-Endianفي تو ُّ في الذاكرة. مالحظات______________________________________________ : ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ 58 المحاضرة -1- تاريخ :األربعاء 9/1/2019 مثال على بنية معطيات مكتوبة بلغة :C َّ إن المتغيرات a, pad, fهي من النمط intإذا ً فهي تكتب على .4Byte َّ إن المتغير bهو من النمط doubleوهو يكتب على .8Byte َّ إن المؤشر cهو من النمط * charوهو يكتب على 4Byteوالسبب أنَّه يحوي بداخله عنوان ( )Operandوهو عنوان أول محرف من مصفوفة محارف. إن dهي مصفوفة من المحارف وبما َّ َّ أن سلسلة المحارف التي بداخلها مكونة من 7 محارف فقط وكل محرف منها يكتَب بايت واحد وبالتَّالي يبقى البايت األخير فارغا بحيث أن يصل المعالج إلى كلمة جديدة عند التخزين التالي. َّ إن المتغير eهو من النمط shortوهو يكتب على .2Byte الحظ :الكلمة مكونة من .4Bytes نتيجة :ال يحدث فرق عند كتابة بايت واحد فقط بالنَّمطين Little-Endianو.Big-Endian 59 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه لنجعل النَّظرة أعمق في الذاكرة بحيث نرى كل بايت وماذا يحوي من قيم: استنتج الفرق بين كل من Little-Endianو.Big-Endian استنتج َّ أن محارف المصفوفة dيبقى لها نفس العناوين. َّ المخزن فيها مهما مرة عند بداية الكلمة التالية للكلمة استنتج كيف يخزن المعالج في كل َّ كانت سعة التخزين ولو كانت 1بايت فقط من أصل 4بايت. 60 المحاضرة -1- تاريخ :األربعاء 9/1/2019 القسم الثَّاني من الدَّرس: أنماط العنونة تذكير مهمَّ : إن التعليمة تتألَّف من حقلين :حقل خاص بعنوان التَّعليمة OPCODEوحقل خاص بعنوان المعامل .OPERAND أماكن قيم المعامالت: القيمة المرادة موجودة في التعليمة في حقل العنوان أساسا ً وال حاجة للذهاب إلى الذاكرة أو إلى الس َّ جالت. أن تكون القيمة موجودة في الذاكرة ويتم الوصول إليها عن طريق عنوانها الموجود في التعليمة أو في أحد السجالت بحيث يكون رقم السجل موجود في التعليمة. أن يكون عنوان القيمة موجودا ً في سجل ما مع بعض اإلزاحة (رقم السجل موجود في السجل. التعليمة) ،من الممكن أن تكون اإلزاحة موجودة في التَّعليمة أو في ِّ مالحظة :هناك معالجات مثل RISCتقتصر بأوامر التعامل مع الذَّاكرة على جلب المعطيات السجالت من أجل كل العمليات األخرى. وتخزينها فقط Load/Storeوتتعامل مع ِّ أنماط العنونة: -1عنونة فورية :يوجد في التعليمة في حقل العنوان قيمة المعامل وهي القيمة المنشودة. خصائصها: oفال تحتاج إلى ذهاب إلى الذاكرة ألن القيمة موجودة أصالً. oكذلك ال تحتاج للذَّهاب إلى السجالت. oسريعة جدا ً oقصيرة ومداها محدود وهذا يتعلق بسعة التعليمة. مثال ADD 5 :بحيث يقوم المعالج بجمع القيمة 5للـ. Accumulator -2عنونة مباشرة :حقل العنوان موجود فيه عنوان القيمة المطلوبة أي َّ أن العنوان الفعلي موجود في الذَّاكرة ).Effective Address EA = address field (A 61 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه خصائصها: oمدى العنوان فيها محدود oفيها ذهاب واحد للذاكرة لجلب القيمة المطلوبة من العنوان الفعلي. مثال ADD A :يقوم المعالج بجلب القيمة الموجودة في العنوان Aويقوم بجمعها مع المراكم .ACC -3عنونة غير مباشرة :سبب وجود هذا النمط من العنونة هو أنَّه من الممكن أن يكون عنوان المعامل يكتب على بتَّات أكثر من مدى العنوان في التعليمة وبالتالي لكي يصل المعالج إلى العنوان المطلوب عليه الذهاب للذاكرة لجلب عنوان المعامل ومهما كان طول هذا العنوان فالعملية ستتم بنجاح. خصائصها: oأكثر مرونة. oتوفر مساحة كبيرة للعنوان. oمن الممكن عمل أكثر من عنونة غير مباشرة بوقت واحد وذلك بحسب طول المعامل. oهي أبطأ والسبب أنَّه بكل زيادة لعنوان فيها يتم الذَّهاب مرة أخرى للذاكرة. 62 المحاضرة -1- تاريخ :األربعاء 9/1/2019 مثال ADD (A) :يقوم المعالج بالذهاب إلى العنوان الموجود داخل التعليمة ويأخذ القيمة الموجودة في الذاكرة التي يؤشر عليها ذلك العنوان ويعتبرها عنوانا ً جديدا ً ويذهب إليه ويجلب القيمة المرادة ويقوم بجمعها مع المراكم .ACC تمرين ( :1من النظري) 63 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه حل التمرين: .aيصبح في المراكم ACCالقيمة .20 .bيأخذ المعالج القيمة الموجودة في العنوان 20وهي القيمة .40 .cيأخذ المعالج القيمة الموجودة في العنوان 20وهي 40ويعتبرها عنوانا ً جديدا ً ويأخذ القيمة التي يؤشر عليها هذا العنوان وبالتالي يصبح في المراكم القيمة .60 .dيصبح في المراكم ACCالقيمة .30 .eيأخذ المعالج القيمة الموجودة في العنوان 30وهي القيمة .50 .fيأخذ المعالج القيمة الموجودة في العنوان 30وهي 50ويعتبرها عنوانا ً جديدا ً ويأخذ القيمة التي يؤشر عليها هذا العنوان وبالتالي يصبح في المراكم القيمة .70 -4عنونة بسجل :ال Operandموجود في سجل في حقل العنوان. خصائصها: oأصغر مساحة في حقل العنوان ( 64سجل فقط!). oسريعة جدا ً والتَّنفيذ كذلك. oال تحتاج للذَّهاب للذاكرة. oهناك لغات عالية المستوى تدعمها مثل لغة .C في لغة Cمثالً: لتكن لدينا التعليمتان التاليتان: ;int a, b ;register int a, b عند استخدام متحول ما بكثرة في البرنامج َّ فإن التعليمة الثَّانية هي الخيار األفضل ولكن المتحوالت ألن عدد السجالت قليل ،والفائدة من هذا يقتصر على عدد قليل من ِّ الس َّ جالت أنَّها ال تتطلَّب الذهاب إلى الذَّاكرة. ِّ 64 المحاضرة -1- تاريخ :األربعاء 9/1/2019 األول الدرس َّ الدرس الثَّالث تاريخ :األربعاء6/2/2019 -5عنونة غير مباشرة بسجل :السجل يحوي عنوان لمعامل في الذاكرة. خصائصها: oأسرع من العنونة غير المباشرة العاديَّة ألنَّها أقل بمقدار ذهاب واحد للذَّاكرة عن العنونة غير المباشرة. oمدى العنوان فيها وهو المدى الذي يشير إليه السجل كبير. السجالت. oمحدودة لقلة عدد ِّ oكذلك الحال فيها لتعدُّد العنونة غير المباشرة فمن الممكن أن يحوي السجل عنوانا ً يأخذ إلى عنوان ما في الذاكرة وذلك العنوان كذلك يحوي عنوانا ً آخر وهكذا. هنا :العنوان الفعلي هو محتوى السجل كما رأينا ).EA = (R -6عنونة مع إزاحة :عنوان المعامل موجود في سجل ،ولكن باإلضافة لذلك يوجد إزاحة بجانب عنوان السجل في التعليمة وبالتالي محتوى السجل يؤشر على عنوان في الذاكرة وبزيادة قيمة اإلزاحة يتم الوصول إلى العنوان المطلوب. مالحظة :من الممكن أن يتبادل كل من السجل والعنوان األدوار بحيث يحوي السجل مقدار اإلزاحة ويحوي حقل الـ Addressالعنوان المطلوب. 65 المحاضرة -2- تاسع محاضرة بنيان حاسوب تاريخ :الثالثاء 15/1/2019 تنظيم الحاسوب ووظائفه هنا :العنوان الفعلي هو محتوى السجل مضافا له قيمة اإلزاحة .EA = (R) + A مكونا ً من جزئين هما ال)Program Counter( PC -7عنونة نسبيَّة :يكون العنوان َّ مضافا ً له إزاحة محدودة بمقدار .A هنا :العنوان الفعلي هو محتوى ال PCوهو محتوى التعليمة التالية باإلضافة لقيمة اإلزاحة المحدودة .EA = (PC) + A ،A تمرين ( :2متعلق بال )PC-Relative أن التعليمة الحالية التي يتم تنفيذها هي في الموقع 138114ونحن نعلم َّ الحل :بما َّ أن طول التَّعليمة هو 2بايت من نص المسألة بالتَّالي َّ فإن الـ PCسيشير إلى التعليمة التالية والَّتي عنوانها هو عنوان التَّعليمة الحالية مضافا ً لها قيمة عدد بايتات التعليمة الحاليَّة إذا ً يكون: Target Address = (PC) + current instruction length + DISPLACEMENT Target Address = 138114 + 2 + (-16) = 138100 66 المحاضرة -1- تاريخ :األربعاء 9/1/2019 -8عنونة باستعمال سجل قاعدي ):(Base-Register Addressing يضع عنوان بداية Segmentمعيَّن في Base-Registerوهذا يتيح الوصول إلى مقاطع مختلفة من الذَّاكرة ،ومن الممكن أن يكون السجل صريحا ً في التعليمة أو أن يكون ضمنياً. إذا أراد المستخدم عمل إزاحة فيجب أن يستخدم أحد األنماط السابقة 8,7,6 -9عنونة مفهرسة (:)Indexed Addressing تشبه العنونة السابقة ولكن يتبادل السجل والعنوان األدوار وهذا يفيد في قراءة وتخزين المصفوفات ذات الطول القصير نسبيا ً (مصفوفة محارف مثالً) بحيث َّ أن العدد الموجود في السجل يساوي طول المصفوفة. هنا :العنوان الفعلي عبارة عن العنوان Aمضافةً له اإلزاحة ،Rأي EA = A + R ويستعمل ذلك في حلقة بحيث كلَّما تتم قراءة حرف نزيد قيمة العداد بحيث نصل إلى القيمة الموجودة في السجل. عنونة بالمكدس :Stack -10 تعرفنا عليها سابقاً ،انظر المثال التالي: َّ C=A–B Push A Push B SUB Pop C الحظ َّ أن ال operandموجود ضمنيَّا ً في قمة المكدس. سة له عند تذكرة :ال مهرب من استخدام المكدس في البرنامج فالحاجة تكون ما َّ االستدعاءات العوديَّة وكذلك يستخدم في بنى المعطيات الديناميكية مثل األشجار والبيان Graphالتي َّ تخزن على الكومة .Heap مالحظات______________________________________________ : ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ 67 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه الحظ كيفية استخدام كل نمط من أنماط العنونة المختلفة (من النظري) تصميم التعليمة: ولنتعرف الفروق بينهما: يوجد تو ُّجهان في تصميم التعليمات وهما RISCوCISC َّ RISC CISC عدد قليل من التعليمات في البرنامج الواحد عدد كبير من التعليمات في البرنامج الواحد أنماط عنونة قليلة وبسيطة تنوع كبير في أنماط العنونة تعليمات أكثر تعقيدا ً نماذج قليلة وبسيطة من التعليمات ال يوجد عنونة غير مباشرة يوجد عنونة غير مباشرة الوصول للذاكرة مقتصر على تعليمتي يوجد تعليمات تعالج المعامالت في الذاكرة Load/Storeفقط من الممكن أن توجد تعليمة Loadمع تعليمة ال توجد أي تعليمة Loadمع تعليمة حسابية حسابية طول التعليمة ثابت بحيث يتم عمل أطوال مختلفة االشكال للتعليمات. Decodeلها بسهولة وكل تعليمة تأخذ 1Cycle 68 المحاضرة -1- تاريخ :األربعاء 9/1/2019 كيفيَّة تصميم التَّعليمة الواحدة: هذا يتعلق ِّبنسق ال ِّبتَّات في التعليمة بحيث يجب أن تحتوي التعليمة: .OPCODE مصرح عنها أو ضمنيَّة مثل .ACC OPERANDS سوا ًء كانت َّ طبعا ً من الممكن أن يوجد أكثر من نسق للتعليمة. مالحظة :مثالً من الممكن أن يكون لدينا تعليمتين فيها 4بتات لل OPCODEولكن كل واحدة بنسق مختلف وبالتالي يجب إزالة الغموض على المعالج حتى يختار التعليمة الصحيحة ويتم هذا بتحديد قيم ال OPCODEالتي تأخذها كل واحدة من التعليمتين بحيث تكون القيم متمايزة تماما ً بينهما. العوامل التي تؤثر على عدد البتَّات في التعليمة الواحدة: -1حجم الذاكرة. -2تنظيم الذاكرة. -3بنية الـ BUSوالسعة األعظميَّة له. -4تعقيد ال CPUوكذلك سرعته. -5عدد أنماط العنونة وعدد المعامالت. -6حجم العنوان وهذا يتعلق بمدى العناوين األمثلي المتاح. -7نمط التعامل مع السجالت والذاكرة. مثال على حاسوب يعمل بحجم تعليمة ثابتPDP-8 : طول التعليمة هو 12بت منها 3لل OPCODEو 7للعنوان و 2بت لتحديد نمط العنونة (بت للعنونة المباشرة \غير المباشرة وبت تحديد الصفحة "الصفحة 0أو الصفحة الحاليَّة") كلمات الذاكرة كلها مؤلَّفة من 12بت. عنوان الذاكرة مؤلف من 12بت. 69 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه :PDP-10 يوجد فيه مدى تعليمات كبير ( 365تعليمة). طول التعليمة والكلمة هو 36بت. طول عنوان الذاكرة هو 36بت. يوجد فيه 16سجل كل واحد منها طوله 18بت. أنماط العنونة التي يدعمها هي العنونة الفورية والمباشرة وغير المباشرة والمفهرسة التي تدعم اإلزاحة كما رأينا. 70 المحاضرة -1- تاريخ :األربعاء 9/1/2019 مثال على حاسوب يعمل على التو ُّجه CISCفي تعليماته: :PDP-11 أطوال تعليماته مختلفة ،وفيه: معالج minicomputerيعمل على BUSسعته 16بت. 8سجالت على 16بت. 4سجالت لألعداد الحقيقية. 13تعليمة بمعاملين أو معامل واحد أو بدون معامالت. طول ال OPCODEمتغير (من 4بت إلى 16بت). كل من المصدر والوجهة على 6بت ( 3بت لتحديد سجل و 3بت لتحديد نمط العنونة). صورة لحاسوب PDP-11/40مع العلم َّ أن موقع المعالج أسفل هذا الحاسوب: 71 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 األول الدرس َّ الدرس الثَّالث تاريخ :الثالثاء19/2/2019 ( :VAX يتبع حاسوب VAXفي ترتيب البايتات النمط )Little Endian VAX700 -1هذا الحاسوب كان يتعامل مع أطوال مختلفة من التعليمات حيث َّ أن طول التعليمة الواحدة يتراوح بين بايت واحد و 37بايت. َّ -2 إن كل تعليمة تحوي OPCODEطوله ( )1-2بايت ليشمل كامل الحاسوب بشكل إجمالي حوالي 300تعليمة. -3كل تعليمة تحوي عددا ً من المعامالت يصل حتى 6معامالت ومن الممكن أال تحوي أي معامالت (.)0 Operands -4من الممكن أن يكون التوصيف على أكثر من بايت مع وجود ( 4بتات لنمط العنونة و4 بتات للسجل) ويوجد 12نمط عنونة. أمثلة: تعليمة بدون معامالت وبـ ِّ OPCODEعلى 1بايت: oاسم التعليمةRSB : oالمهمة :الرجوع من تنفيذ تابع أو مقطع فرعي في البرنامج. oكتابة التعليمة عند التنفيذRSB : 72 المحاضرة -2- عاشر محاضرة بنيان حاسوب تاريخ :الثالثاء 15/1/2019 صفة على 2بايت :CLRL تعليمة مو َّ oاسم التعليمة.CLRL : oالمهمة :القيام بمسح القيمة في السجل .R9 oشرح أكثر عن التعليمة :أول بايت أي السطر األول D 4هو تعليمة المسح التي تقابلها ،CLRLوالبايت الثاني 5 9يتألف من قسمين: 5 يحدد نمط العنونة والعنونة المختارة هنا هي العنونة بسجل. 9 يحدد رقم السجل المطلوب. oكتابة التعليمة عند التنفيذ.CLRL R9 : صفة على 6بايت :MOVW تعليمة مو َّ oاسم التعليمة.MOVW (move word) : oالمهمة :هي نقل كلمة من موقع إلى آخر ويتم هذا عن طريق تحديد نمط العنونة الذي سيتم اعتماده وموقع السجل الذي سيتم النقل منه وموقع السجل الذي سيتم النقل إليه. في حالتنا هنا: أول بايت هو لل. OPCODE ثاني بايت يحدد نمط العنونة والسجل للكلمة التي سيتم نقلها (الكلمة المصدر). نمط العنونة المعتمد هو النمط عنونة بإزاحة والسجل الذي يعتبر محتواه هو مقدار اإلزاحة هو .R4 73 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه َّ إن تحديد القيمة Cفي البايت الثاني تعني أن الموقع المصدر يكتب على 2بايت. ثالث ورابع بايت هي للموقع المصدر الذي سيتم البدء منه ومن ثم إضافة اإلزاحة وهي كما قلنا القيمة الموجودة في .R4 تذكرة :الحظ نمط VAXفي ترتيب البايتات هو .Little Endian (راجع الصفحة (58 خامس بايت يحدد نمط العنونة والسجل للكلمة التي سيتم النقل إليها (الكلمة الوجهة). نمط العنونة المعتمد هو النمط Base-Register Addressingوالسجل الذي يعتبر محتواه هو مقدار اإلزاحة هو .R11 َّ إن تحديد القيمة Aفي البايت الخامس تعني أن الموقع الوجهة يكتب على بايت واحد فقط. سادس بايت هو للموقع الوجهة الذي ستتم إضافة مقدار اإلزاحة في R11إليه وهو أيضا ً يساوي بالكتابة العشرية القيمة .25 oكتابة التعليمة عند التنفيذ.MOVW 356(R4) ,25(R11) : الترجمة الفعلية للتعليمة: )MOVW (356 + R4), (25 + R11 صفة على أكثر من 5بايت :ADDL3 تعليمة مو َّ oاسم التعليمة.ADDL3 : 74 المحاضرة -1- تاريخ :األربعاء 9/1/2019 oالمهمة :تقوم بجمع القيمة المباشرة 5مع عدد صحيح من النمط integerمحتوى في السجل R0وتخزين الناتج في عنصر المصفوفة ].A[R2 سبب التخزين في الموقع الذي عنوانه Aمجموعا ً له قيمة R2مضروبة بـ ِّ 4هي َّ أن Aهو مؤشر بداية المصفوفة أي أنَّه عنوان بدايتها وبما أن كل سجل يحجز 4 بايتات في الذاكرة بالتالي للوصول إلى العنصر الذي دليله هو محتوى R2بالتالي يجب أن يتحرك المؤشر R2*4مرة. oكتابة التعليمة عند التنفيذ.ADDL3 #5 ,R0 , @A[R2] : :X86 سابقة Prefixوهي من 0إلى 4بايت بحيث تؤدي أدا ًء معيَّنا ً oيوجد ما يسمى ال َّ (تكرار تعليمة مثالً). oطول الـ OPCODEفيه متغير من 1بايت إلى 3بايت. oيوجد 2بايت لتوصيف العنونة (اختياري) ويتألَّف من بايت Mod R\Mوبايت .Scale Index شكل تعليمة حاسوب X86 oيوجد إزاحة (اختياري). oيوجد حقل للعنونة الفورية (اختياري). 75 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه :SIBفي عملية Indexingعندما نقوم بعمل عنونة لمصفوفة حجمها كبير جدا ً فهو يتكفل بهذا األمر. رغم كل هذا التعقيد في شكل التعليمةَّ ، إن X86يتعامل مع معامل واحد في الذاكرة في حين َّ أن VAXيتعامل مع عدة معامالت في الذاكرة. مثال على الحواسيب التي فيها تكون التعليمة بطول ثابت :RISC نوع الحاسوب المستخدم هو MIPS4000 فيه طول محدد للتعليمة .32bit BUSداخلي لنقل المعطيات بطول .32bit BUSداخلي للعناوين بطول .32bit سجالت متعدِّدة االستعماالت كل منها طوله 32bitوعددها 32يمكن توصيفها على 5 بتات. يعتمد MIPSعلى ثالث أشكال للتعليمات: oتعليمات السجالت (.)R Format oتعليمات تحوي على قيم فورية (.)I Format oتعليمات القفز (.)J Format تعليمات السجالت (:)R Format شكلها: يتم تحديد عمل التعليمة عن طريق حقلي ال OPCODEوال Functionحيث َّ أن طول كل منهما هو 6بتات. يوجد فيها ثالثة سجالت Rs, Rt, Rdطول كل منها 5بتات حيث يكون أول سجلين هما المصدر والسجل الثالث هو الوجهة. عند استعمال تعليمة بسجلين يكون السجل األول هو المصدر والسجل الثاني هو الوجهة. 76 المحاضرة -1- تاريخ :األربعاء 9/1/2019 يوجد حقل إزاحة Shiftعند الحاجة إليه ويتم تحديد مسار اإلزاحة يمينيَّةً كانت أم يساريَّة من ال OPCODEوال. Function أمثلة: ADD $R2, $R3, $R4 الشرح :قم بجمع كل من R2و R3وضع الناتج في .R4 SLL $R5, $R3, 3 الشرح :قم بإزاحة السجل R5ثالث مرات إلى اليسار إزاحة منطقية وضع الناتج في .R3 تذكرة :شرح اإلزاحة المنطقية والحسابية موجود في الصفحة .49 تعليمات تحوي على قيم فورية (:)I Format شكلها: حقل ال OPCODEيكفي لتحديد التعليمة (طوله 6بتات). هناك سجالن فقط ،األول يعتبر المصدر والثَّاني يعتبر الوجهة (طول كل منهما هو 5 بتات). حقل القيمة الفوريَّة طوله 16بت وهو يحدد القيمة الفورية التي سيتم استعمالها في التعليمة. أمثلة: ADDI $R21, $R13, -10 الشرح :قم بجمع القيمة الفورية -10مع قيمة السجل R21وضع الناتج في .R13 ) LW $R2 ,100($R5) (LOAD WORD الشرح :ضع في R2الكلمة الموجودة في الموقع .100+R5 )BNQ $R13, $R8, proc1 (Branch if not Equal اقفز إلى التابع proc1عند عدم تساوي قيمتي السجلين R13و.R8 77 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه تعليمات القفز (:)J Format شكلها: حقل ال OPCODEيكفي لتحديد التعليمة (طوله 6بتات). مدى القفز هو 26بت لتحديد العنوان الوجهة. أمثلة: J target3 الشرح :اقفز إلى العنوان target3المؤلف من 26بت. JAL proc2 الشرح لالطالع( :من )MIPS R4000 Microprocessor User’s Manual مالحظة :يوجد أيضا ً حاسوب ARMالذي يتبع مسار التعليمة الثابتة .RISC 78 المحاضرة -1- تاريخ :األربعاء 9/1/2019 مقارنة بين MIPS4000و:X86 هي ذاتها المقارنة بين الحواسيب التي تتبع المسار CISCو RISCالموجودة في الصفحة الثامنة والستين مضافا ً لها أنه غالبا ً تتبع معالجات CISCنمط Little-Endianوفي المقابل تتبع معالجات RISCنمط .Big-Endian بشكل عام يأتي السؤال بالنسبة لطالب المعلوميات هو أن تكون معطيات المسألة هي معالج مع تعليماته ويجب بناء البنية المناسبة لشكل التعليمة. مثال مهم: ليكن لدينا معالج يعمل بتو ُّجه CISCفي تعليماته بحيث يكون الـ OPCODEلكل تعليمة هو 8بتات مع خط معطيات 8بتات ولديه 16خط عنونة تصل فيها إلى 216موقعا ً مختلفا ً وطول التعليمات متغير من تعليمة ألخرى. ستكون أشكال التعليمات هي: 79 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه مثال مهم: ليكن لدينا معالج لديه ما يلي: -1ال OPCODEللتعليمة هو 8بتات. -2خط معطيات 8بتات. -3خط عناوين 16بت. قم بتنفيذ البرنامج التالي مع العلم َّ أن تنفيذ البرنامج يبدأ من العنوان :100H LDA 3000H ADI 37H STA 3200H الحل: 80 المحاضرة -1- تاريخ :األربعاء 9/1/2019 81 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه 82 المحاضرة -1- تاريخ :األربعاء 9/1/2019 مالحظات على الدرس إن وجدت: __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ *****نهاية ال َّدرس الثَّالث***** 83 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 األول الدرس َّ تاريخ :الثالثاء 15/1/2019 الرابع***** *****بداية ال َّدرس َّ الذاكرة والذاكرة الخابية: يزود نظام الحاسوب بتراتبية معينة للوصول ألنظمة الذاكرة الفرعيَّة بعضها يصل إليها المعالج بشكل مباشر (داخليَّة) والبعض اآلخر يصل إليها المعالج عبر وحدة دخل\خرج (خارجية). تراتبيَّة الذَّاكرة: داخليَّة: -1سجالت المعالج. -2ذاكرة التخزين المؤقت أو الذاكرة الخابية مع مستوياتها (.)Cache Memory -3الذاكرة الرئيسيَّة مثل ذاكرة الوصول العشوائي ).(RAM خارجيَّة: صلب. -1القرص ال َّ -2األقراص اللَّيزريَّة( )CD-RW/DVD-RWواألشرطة الممغنطة (.)Tapes تتعلَّق سرعة أنظمة الذَّاكرة بما يلي: -1الموقع :تختلف سرعة نقل البيانات عند جلبها من سجالت المعالج عن سرعة نقلها عند جلبها من الذاكرة المركزيَّة (وحدة داخليَّة) وعن سرعة جلبها من سواقة األقراص الليزريَّة مثالً (خارجيَّة). -2السعة :تتعلق بحجم الكلمة الواحدة وعدد الكلمات أو البايتات. -3وحدة النَّقل: oداخليَّة :عادة ً تكون محدَّدة بسعة ال BUSالخاص بنقل المعطيات. oخارجيَّة :عادة ً تكون عبارة عن Blockوهي أكبر بكثير من الكلمة الواحدة oمن الممكن أن تكون وحدة معنونة بشكل خاص ولتكن σبحيث يتم التعامل بها مع وحدة ذاكرة معيَّنة وبذلك تكون σهي أصغر وحدة ممكنة. مثالً نعلم َّ أن أصغر وحدة في الذَّاكرة هي الكلمة التي تتألف من بايت واحد في أغلب األحيان. 84 المحاضرة -2- محاضرة بنيان حاسوب رقم 11 الرابع الدرس َّ تاريخ:األربعاء20/2/2019 -4طريقة الوصول: هناك أربع طرق: النَّفاذ التسلسلي :يبدأ من بداية الذَّاكرة ويقرأ بالترتيب وكأنَّه يقرأ من شريط َّ والزمن في هذه الطريقة يعتمد على مكان المعطيات والمكان سابق لها ،زمن الوصول في هذه الطريقة أيضا ً يعتمد على مكان ال َّ مؤشر القراءة. سابق الذي كان عليه المعطيات الوجهة والمكان ال َّ ِّ سمة إلى Blocksولدينا النَّفاذ المباشر :تكون ال َّذواكر في هذه الطريقة مق َّ عنوان لكل Blockويتم الوصول للمعطيات في هذه الطريقة عن طريق القفز بين كل Blockللوصول للوجهة المطلوبة ثم عند إيجاد الBlock المنشودة يتم النَّفاذ بشكل تسلسلي في محتوياتها حتى الوصول إلى الوجهة ،زمن الوصول في هذه الطريقة أيضا ً يعتمد على مكان مؤشر القراءة. سابق الذي كان عليه المعطيات الوجهة والمكان ال َّ ِّ يعرف مكانا ً النَّفاذ العشوائي :في هذه الطريقة يصبح كل عنوان مفرد ِّ محدَّدا ً في الذَّاكرة ،زمن الوصول إلى المعلومة مستقل عن مكان مؤشر سابق والحالي ومثال على ذلك ذاكرة .RAM القراءة ال َّ النَّفاذ الجماعي ( :)Associativeفي هذه الطريقة يوجد ترويسة ()tag أمام كل blockموجود في الذاكرة بحيث أنَّه عند القراءة تتم مقارنة ترويسة الوجهة مع كل الترويسات الموجودة لكل Blockبحيث يتم الوصول إلى ال Blockالهدف بضربة واحدة وهذه الطريقة نراها في ذاكرة ال ، Cacheزمن الوصول إلى المعلومة مستقل عن مكان مؤشر سابق والحالي القراءة ال َّ 85 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه صورة توضح هرميَّة تراتبيَّة الذاكرة -5األداء :يتعلق األداء بكل مما يلي: زمن الوصول :هو َّ الزمن المنصرم بين إعطاء عنوان في الذاكرة وجلب القيمة منها عند هذا العنوان. زمن دورة التعليمة الواحدة :نعلم أن الذَّاكرة ديناميكية وليست ساكنة وبالتالي هي تتألَّف من اجتماع عدد كبير من الماسكات ( ،)Latchesفي كل Latchموجود في هذه الذاكرة يتم تخزين قيمة البت كشحنة في مكثفة طفوليَّة وعند القراءة من الذَّاكرة من الممكن أن تضيع قيمة البت تسرب الشحنة لذلك نحتاج إلى دارات تغذية وتحديث بسبب ُّ (.)Refreshing circuits زمن دورة التعليمة = زمن الوصول +زمن تحديث قيم البتات. معدَّل النَّقل :هو معدَّل البيانات التي يمكن نقلها في الدفعة الواحدة. -6نوع المادَّة المعتمدة في صناعتها: أنصاف النواقل :مثل ذاكرة .RAM مغناطيسية :مثل أقراص التخزين وأقراص .Floppy ليزرية (ضوئية) :مثل CDو.DVD غير ذلك.Bubble, Hologram : 86 المحاضرة -1- تاريخ :األربعاء 9/1/2019 -7الخصائص الفيزيائية: :Decay هو ضعف الوسيط الذي يتم تخزين المعلومات عليه أو ضياع المعلومات من الوسيط بعد فترة. :Volatility هو عدم إمكانية الوصول إلى المعلومات ضمن الذاكرة إال بوجود التيَّار الكهربائي. الخاصيَّة التي تحدد ما إذا كانت المعلومات في وسيط :Erasable هي ِّ التخزين قابلةً للمسح أم ال. :Power consumption هو معدَّل الطاقة المستهلكة في وسيط التخزين. -8التنظيم :هو طريقة وضع بتات الكلمة الواحدة في الذاكرة وهو غالبا ً يختلف من وسيط تخزين إلى وسيط آخر. سابقة مثالً كلما زادت السعة زاد *يبقى السعر الذي يعتمد على كل من الخصائص ال َّ سعر الذاكرة وكذلك كلما كان معدل تناقلها أسرع زاد سعرها* تراتبية الذواكر من جديد: -1سجالت المعالج L1 Cache -2 L2 Cache -3 -4الذاكرة الرئيسيَّة -5ذاكرة التخزين المؤقت على القرص ( :)Disk Cacheذاكرة التخزين المؤقت على القرص هي آلية لتحسين الوقت المستغرق في القراءة من قرص ثابت أو الكتابة إليه .اليوم ،عادة ما يتم تضمين ذاكرة التخزين المؤقت على القرص كجزء من القرص الثابت .يمكن أن تكون ذاكرة التخزين المؤقت على القرص جز ًءا محددًا من ذاكرة الوصول العشوائي (.)RAM -6القرص الصلب. -7األقراص الليزرية. .Tapes -8 87 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه مالحظة :يمكن تصنيع حاسوب كل الذاكرة فيه تكون ساكنة وبالتالي سيكون معدل النَّقل سريع جدا ً ومضمون ولن يحتاج إلى ذاكرة ً Cache ألن ال Cacheبتعريفها هي ذاكرة ساكنة تكون َّ محطة مؤقَّتة لحفظ المعلومات ،سيترتب على هذا األمر َّ أن الكلفة ستكون عالية جداً. الذَّاكرة الخابية (:)Cache Memory هي ذاكرة ساكنة وهي مقدار صغير ج َّدا ً من المعلومات موجودة بين الذاكرة الرئيسيَّة والمعالج وظيفتها تسريع األداء بحيث أنها تعتبر محطة تخزين مؤقت للمعلومات القادمة من المعالج والقادمة إليه. من الممكن أن تكون خابية ضمن المعالج. صورة توضح توضَّع الذاكرة الخابية فيما بعد أصبح هناك مستويات للذاكرة الخابية (مثالً الذاكرة الخابية بثالث مستويات): ذاكرة التخزين المؤقت ،L1أو ذاكرة التخزين المؤقت األساسية ،سريعة للغاية ولكنها صغيرة نسبيَّا ً ،ويتم تضمينها عادة ً في شريحة المعالج كمخزن مؤقت لوحدة المعالجة المركزية، والمستوى الثالث من ذاكرة التخزين المؤقت )(L3هي ذاكرة مخصصة تم تطويرها لتحسين أداء كل من ( )L2و ( .)L1يمكن أن تكون ( )L2و ( )L1أسرع بشكل ملحوظ من ) ،(L3على الرغم من أن L3عادة ً ما تكون ضعف سرعة ذاكرة الوصول العشوائي. 88 المحاضرة -1- تاريخ :األربعاء 9/1/2019 نقل المعطيات وفائدة الذاكرة الخابية: ى من عنوان معين في الذاكرة ،يتم الفحص ما إذا كانت تطلب وحدة المعالجة المركزيَّة محتو ً المعلومة موجودة في الذاكرة الخابية Cacheفإذا وجدت المعلومة فيها يجلب المعالج المعلومات من Cacheوالعمليَّة سريعة ،وإذا لم توجد المعلومة يتم الذَّهاب للذاكرة وتجلب المعلومة من العنوان المذكور مع ال Blockالذي يحويها ويتم وضع ال Blockكامالً في ال Cacheويأخذ المعالج محتوى العنوان المطلوب. *مخ َّ طط تفصيلي يوضح العمليَّة* تنظيم المعلومات ضمن ال: Cache الرئيسيَّة. يوجد مقابلة بين الذاكرة الخابية والذاكرة َّ يمكن تقطيع الذاكرة الرئيسيَّة إلى عدد كبير جدا ً من Blocksوالذاكرة الخابية تتسع لـِّعدد C من ال Blocksفقط بحيث كل Blockيتألَّف من عدد Kمن الكلمات وكل من هذه الBlocks لها Tagخاص بها من أجل ضمان أسرع وصول إليها. 89 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه الرئيسيَّة والذاكرة الخابية (الحظ ال Tagلكل * )Block * شكل يوضح التقابل بين الذاكرة َّ بفرض َّ أن الذاكرة الخابية امتألت في لحظة من اللحظات وجاء Blockإليها ،ماذا يحدث؟ يتم استخدام أحد خوارزميات التفريغ لل( Cacheخوارزمية التبديل) أي تبديل أحد أسطر ال سطر الذي سيتم حذفه اختياري حسب الخوارزمية المعتمدة (من Cacheبالسطر الجديد وال َّ الممكن أن يكون السطر األقدم أو السطر األول أو األخير أو حتى سطر عشوائي). سياسة الكتابة على الذاكرة: عند كتابة المستخدم لكلمة من أجل تخزينها في الذاكرة فهي ال تكتب مباشرة على الذاكرة ألن هذا األسلوب بطيء في الذهاب إلى الذاكرة والرجوع منها ،بل يتم كتابتها في الذاكرة الخابية حتى ينتهي المستخدم ثم ينتقل ال Blockبالكامل لتتم كتابته على الذاكرة. 90 المحاضرة -1- تاريخ :األربعاء 9/1/2019 يمكن وضع تصميم لل Cacheكالتالي: يترك للقارئ فهم طريقة الكتابة والقراءة باالعتماد على ما ت َّم ذكره آنفاً. تصميم الذاكرة الخابية: أنماط العنونة الحجم :كلما زاد حجم ال Cacheتصبح أفضل وأغلى من حيث السعر ولكن هذا األمر يبقى حتى حد معين بعده يصبح تكبير الذاكرة غير مفيد َّ ألن زمن الفحص فيها سيأخذ وقتا ً أطول. طريقة التقابل بينها وبين الذاكرة الرئيسيَّة خوارزميَّة التَّبديل سياسة الكتابة حجم الBlock عدد الذواكر الخابية 91 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 األول الدرس َّ تاريخ :الثالثاء 15/1/2019 التقابل بين الذاكرة الخابية والذاكرة الرئيسيَّة: لتكن لدينا ذاكرة خابية Cacheحجمها 64KByteأي أنَّها مؤلَّفة من 216بايت وليكن حجم كل Blockفي هذه الذَّاكرة هو 4Byteولدينا أيضا ً ذاكرة رئيسيَّة حجمها 16MByteبالتَّالي: يتكون من 4بايتات. تتكون ال َّذاكرة الخابية من 214خط ،كل خط َّ َّ يمكن جلب أكثر من 16000 Blockمن الذاكرة ووضعها في الذاكرة الخابية. سابقة* *صورة توضح شكل الذَّاكرة الخابية ال َّ الرئيسيَّة عن طريق 24خط عنونة يمكن الوصول إلى عنوان أي بايت من الذاكرة َّ َّ ألن: )𝑒𝑡𝑦𝐵( 16 (𝑀𝑒𝑔𝑎 𝐵𝑦𝑡𝑒) = 16 ∗ 220 (𝐵𝑦𝑡𝑒) = 224 وبذلك نعلم أنَّه يوجد 224موضع مختلف في الذاكرة. 92 المحاضرة -2- محاضرة بنيان حاسوب رقم 12 الرابع الدرس َّ تاريخ:األربعاء27/2/2019 سابقة* *رسم توضيحي لكيفيَّة الوصول إلى أي بايت من الذاكرة ال َّ شرح :يأتي عنوان البايت المراد عن طريق خط عنونة مؤلَّف من 24بت وبذلك يتم تحديد كل سطر الذي يوجد فيه البايت وكذلك تحديد العمود وذلك عن طريق Decodersوبالتالي من ال َّ الوصول لمكان البايت. التَّقابُل المباشر (:)Direct Mapping عن طريق هذا التقابل تكون كل كتلة من الذاكرة تقابَل بسطر واحد وواحد فقط في الذاكرة الخابية(.)Cache بما َّ الرئيسيَّة هي من مضاعفات 2 أن حجم كل من الذاكرة الخابية والذاكرة َّ َ الرئيسيَّة من بالضَّرورة ،بالتَّالي مهما كان حجم الذاكرة الخابية سيكون حجم الذاكرة َّ مضاعفات حجم الذاكرة الخابية. صغيرة التي الرئيسيَّة مق َّ سمة إلى عدد 𝑡 2من الذواكر ال َّ لتبسيط المفهوم نعتبر الذَّاكرة َّ حجمها يساوي حجم ال Cacheعندئذ كل خط في ال Cacheسيكون مسبوقا ً بالعدد 𝑡 الذي يشير إلى عدد البتَّات الالزم لتمييز ال Blockالقادم من أحد تلك الذواكر. 93 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه الرئيسيَّة والذاكرة الخابية *شكل يبين التقابل بين الذاكرة َّ في طريقة التقابل المباشر* 94 المحاضرة -1- تاريخ :األربعاء 9/1/2019 بأول خط فقط من الذاكرة هذا التَّقابل يجعل أول Blockمن كل ذاكرة صغيرة يرتبط َّ الخابية وكذلك الحال بالنِّسبة لكل Blockموجود في كل ذاكرة صغيرة بحيث يوجد لكل خط في الذاكرة الخابية عدد من ال Blocksيساوي 𝑡.2 الرئيسيَّة. ملحوظةِّ s : يمثل عدد ال Blocksفي الذَّاكرة َّ ال يجوز وجود سطرين (خطين) من الذاكرة الخابية بحيث يكون لهما نفس ال.Tag صفحة :29 عودة إلى المثال في ال َّ بما َّ أن كل Blockيتألَّف من 4بايتات فنستعمل التَّخطيط التَّالي: سبب جعل حقل ال Tagعبارة عن 8بتات: 𝑦𝑟𝑜𝑚𝑒𝑀 𝑛𝑖𝑎𝑀 𝑓𝑜 𝑒𝑧𝑖𝑆 224 ( 𝑇𝑎𝑔 𝐵𝑖𝑡𝑠 = 𝐿𝑜𝑔2 ) = 𝐿𝑜𝑔2 ( 16 ) = 8 𝑒𝑆𝑖𝑧𝑒 𝑜𝑓 𝐶𝑎𝑐ℎ 2 سبب جعل حقل ال Lineعبارة عن 14بتَّ : إن عدد األسطر (الخطوط) في الذاكرة الخابية هو 214أي أننا نحتاج لتحديد أي خط في هذه الذاكرة إلى 14بت. 95 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه سبب جعل حقل ال wordعبارة عن 2بت :بما َّ أن كل Blockتتألَّف من 4بايتات وبما َّ أن حجم الكلمة الواحدة هو بايت واحد بالتالي لتحديد أي بايت من هذه البايتات بدقة نحتاج إلى 2بت. كيفيَّة عمليَّة البحث في هذه ال َّ طريقة: صل مهم: سيتم توضيح هذه الفقرة عن طريق مثال مفَ َّ ليكن لدينا: -1ذاكرة رئيسيَّة بحجم 128بايت. -2ذاكرة خابية بحجم 32بايت. -3حجم ال Blockيساوي 8بايت. الرئيسيَّة من .16 Block إذا ً تتألَّف الذاكرة الخابية من 4أسطر وتتألف الذاكرة َّ نستنتج َّ الرئيسيَّة والذَّاكرة الخابية يكونان كالتالي: أن كل من شكلي الذاكرة َّ 96 المحاضرة -1- تاريخ :األربعاء 9/1/2019 وكما أسلفنا سيكون التالي محققاً: السطر األول من الذاكرة الخابية سيكون فارغا ً أو يحوي Blockمن الذاكرة في الموقع (.)0000,0100,1000,1100 السطر الثَّاني من الذاكرة الخابية سيكون فارغا ً أو يحوي Blockمن الذاكرة في الموقع (.)0001,0101,1001,1101 السطر الثَّالث من الذاكرة الخابية سيكون فارغا ً أو يحوي Blockمن الذاكرة في الموقع (.)0010,0110,1010,1110 الرابع من الذاكرة الخابية سيكون فارغا ً أو يحوي Blockمن الذاكرة في السطر َّ الموقع (.)0011,0111,1011,1111 اآلن ستظهر فائدة البتَّات الزا ِّئدة في كل سطر من ال Cacheوهي :Tag Bits األول في الذاكرة الخابية هي 01فإنَّه يعلمنا َّ بفرض َّ بأن البلوك أن بتات ال Tagللسطر َّ الموجود في هذا السطر هو من الموقع .0100 97 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه سببَّ : إن رقم سطر الذاكرة الخابية هو 00وهو يشكل البتات األقل وزنا ً LSBمن الموقع ال َّ األصلي وكذلك َّ تشكل البتات األكثر وزنا ً MSBمن الموقع األصلي إن بتات الِّ Tag واجتماعها كما نرى هو 0100وكذلك الحال بالنسبة للسطر الثاني من الذاكرة الخابية حيث الرئيسيَّة. أنَّها تحوي محتوى العنوان 1101من الذاكرة َّ اآلن كيفيَّة طلب العناوين من قبل ال CPUوفائدة ال: Cache بفرض َّ أن ال CPUقام بطلب العناوين التَّالية: 0000010 -1 0101011 -2 0100011 -3 0101111 -4 أثناء َّ األول سيتم تقسيم العنوان القادم بال َّ شكل التَّالي: الطلب َّ 98 المحاضرة -1- تاريخ :األربعاء 9/1/2019 Tag Bits )Cache Index(Line Word 0 0 0 0 0 1 0 األول في الذاكرة الخابية ،وبما َّ أن البتين لل Cache Indexنعلم أنَّنا في ال َّ عن طريق ِّ سطر َّ هناك Blockموجو ٌد في الذاكرة الخابية مع Tag Bitsوالتي قيمتها في الذاكرة الخابية هي القيمة ،0 0تتم مقارنة Tag Bitsفي ال Cacheمع Tag Bitsالموجودة في العنوان القادم من ال CPUوبما أنَّهما متساويين َّ فإن ذات ال Blockالتي يطلبها ال CPUمن الذاكرة موجودة األول من الذاكرة الخابية دون في ال Cacheوبذلك يجلب ال CPUالبايت الهدف من السطر َّ الحاجة للذهاب للذاكرة وبذلك يكون لدينا .Cache Hit أثناء َّ الطلب الثَّاني سيتم تقسيم العنوان القادم بال َّ شكل التَّالي: )Cache Index(Line Word 0 1 0 1 1 كذلك الحال وبنفس َّ الطريقة سيكون لدينا .Cache Hit Tag Bits 1 0 أثناء َّ الطلب الثَّالث سيحدث لدينا Cache Missوسيضطر المعالج للذهاب للذَّاكرة لجلب ال Blockمع التذكير َّ بأن ال CPUسيقوم بوضع هذا ال Blockفي ال. Cache في َّ علل ذلك. الرابع سيحدث ِّ ،Cache Hit الطلب َّ 99 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه مل َّخص سريع :عند طلب عنوان ذاكرة ما ،يتم تقسيم هذا العنوان إلى ال َّ شكل: Tag Bits )Cache Index(Line Word سطر ال Cacheالذي ي َمثَّل رقمه ببتات الـ Cache Indexمن ث َّم وبذلك يذهب ال CPUإلى َّ يقوم بمقارنة بتات ال Tagلكل من العنوان القادم من ال CPUوسطر ال Cacheوعند تساويهما يكون لدينا Cache Hitوغير ذلك يكون لدينا Cache Missويجلب ال CPUال سطر الذي ي َمثَّل رقمه ببتات Cache Blockمن الذاكرة ويضعها في الذاكرة الخابية في ال َّ .Index مثال آخر: الحظ ال َّ شكل واستنتج ما سبق. 100 المحاضرة -1- تاريخ :األربعاء 9/1/2019 ال َّ شكل العام للعنوان في التَّقابل المباشر: Word w )Cache Index(Line r Tag Bits s-r بالتالي: طول العنوان يساوي .s+w عدد الكلمات التي يمكن الوصول إليها.2s+w : سطر في .2w = Cache حجم ال = Blockحجم ال َّ عدد ال Blocksفي الذاكرة الرئيسيَّة = .2s عدد األسطر في الذاكرة الخابية = .2r طول حقل ال )s-r( = Tagمن البتات. حجم الذاكرة الخابية = .2r+w خصائص التقابل المباشر: بسيط. غير مكلف. الموقع ثابت لمجموعة من ال Blocksوبالتالي إذا كان البرنامج يصل إلى أكثر من سطر ستزيد احتماليَّة عدم حصول ال Cacheعلى Blockالتي تشير إلى نفس ال َّ المعلومة وذهاب المعالج إلى الذَّاكرة. تمرين :بفرض َّ أعط 4عناوين كتل في الذَّاكرة والتي أن ال CPUأعطى العنوان )ِّ 351234(Hex تقابَل في سطر واحد في ال. Cache سابق بالنِّظام الثُّنائي: الحل :نقوم بكتابة العنوان ال َّ 351234(Hex) = 001101010001001000110100(Bin). مع العلم َّ أن عدد ال ِّبتَّات في العنوان هو كالتَّالي: Word 2 )Cache Index(Line 14 101 Tag Bits 8 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه يكون: Tag Bits )Cache Index(Line Word 00110101 00010010001101 00 من الواضح َّ أن تغيير ال Tagفي كل مرة كفيل بتوليد عنوان يرتبط بنفس السطر في الذاكرة الخابية ،بمعنى أنَّه طالما كان ) Cache Index(Lineثابتا ً وال Tagيتغيَّر َّ فإن العنوان الجديد سطر في ال.Cache سيؤشر إلى نفس ال َّ ِّ مثالً: لتكن Tag Bitsتأخذ القيم التَّالية(بالبت): 0000 0001 0010 0011 1101 1101 1111 1111 يصبح لدينا العناوين التالية التي تحقق المطلوب: 011234(Hex). 231234(Hex). DD1234(Hex). FF1234(Hex). التَّقابُل الجماعي (:)Associative Mapping طريقة التَّقابل هذه تسمح بتخزين أي Blockمن الذاكرة الرئيسيَّة في أي مكان في الذاكرة الخابية. نتيجة :ال حاجة لحقل ) Cache Index(Lineفي هذه َّ الطريقة. إن حقل ال Tagفي هذه َّ َّ يعرف Blockمن الذَّاكرة. الطريقة ِّ االختالف يأتي في تصميم ال Cacheبحيث أنَّه عند البحث تتم مقارنة ال Tagمن العنوان المطلوب مع ال Tagsلجميع أسطر ال Cacheفي ضربة واحدة (.)1Cycle هذه َّ الطريقة تقلل الوقت وجيدة لكنَّها غالية من حيث التجهيزات .Hardware 102 المحاضرة -1- تاريخ :األربعاء 9/1/2019 انظر الشكل: الحظ كيف تتم مقارنة ال Tagمع جميع ال Tagsفي ال. Cache عند حصول مطابقة نحصل على .Cache Hit عند عدم حصول مطابقة نحصل على Cache Missويضطر ال CPUإلى الذهاب للذَّاكرة ثم المصمم: يرجع بال Blockويضعه في ال Cacheبطريقة يحددها ِّ من الممكن أن توضع ال Blockالتي تم جلبها من الذاكرة في: أول سطر متاح في ال. Cache آخر سطر متاح في ال. Cache سطر عشوائي في ال. Cache تساؤل :بفرض َّ أن ال CPUقام بطلب عنوان ولم يجده في ال Cacheفذهب إلى الذاكرة وجلبه وعند محاولة وضعه في ال Cacheاتضح َّ أن ال Cacheممتلئة ،ما الحل؟ 103 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه هنا يتم استخدام خوارزميَّات التبديل بحيث من الممكن أن توضع ال Blockالتي تم جلبها من الذاكرة بدالً من: أول سطر متاح في ال. Cache آخر سطر متاح في ال. Cache سطر عشوائي في ال. Cache سطر األقدم في ال. Cache ال َّ ويوجد أيضا ً بدائل أخرى من الممكن أن يحددها المصمم. مثال: الحظ حجم ال. Cache الحظ ال. Tag 104 المحاضرة -1- تاريخ :األربعاء 9/1/2019 بالتالي يمكن أن نعرف مثاالً للعنوان في طريقة :Associative Mapping Tag Bits 22بت Word 2بت تمرين :1بفرض َّ أن ال CPUقام بطلب العنوان ) 16339C(Hexقم بحساب .Tag ,w سداسي عشر إلى ثنائي ) (Binaryونحسب wمن البتين الحل :نقوم بتحويل العنوان ال ُّ األقل رتبة Least Significant Bitsونحسب Tagمن بقيَّة البتات (عددها .)22 9 C 1001 1100 بالتَّالي يصبح لدينا: w 00 إذا ً: 0111 1110 3 0011 3 0011 Tag 1000 1100 6 0110 0101 1 0001 00 )w = 0(Hex )Tag = 058CE7(Hex تمرين :2بفرض َّ سابقة أن ال CPUقام بطلب العنوان ) FFFFFC(Hexقم بإعادة الخطوات ال َّ واحسب كل من Tagو .w بنفس طريقة التقابل المباشر نالحظ: طول العنوان يساوي .s+w عدد الكلمات التي يمكن الوصول إليها.2s+w : سطر في .2w = Cache حجم ال = Blockحجم ال َّ عدد ال Blocksفي الذاكرة الرئيسيَّة = .2s عدد األسطر في الذاكرة الخابية غير محدَّد. طول حقل ال )s( = Tagمن البتات. 105 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 األول الدرس َّ تاريخ :الثالثاء 15/1/2019 الرابع الدرس َّ التَّقابل بالمجموعات (:)Set Associative Mapping طريقة التَّقابل هذه تقوم بتقسيم الذاكرة إلى عدد 𝑖 2من المجموعات .Sets يكون الوصول إلى كل مجموعة مشابها ً للوصول إلى سطر الذاكرة الخابية في التَّقابل المباشر (.)Direct Mapping تتكون كل Setمن مجموعة من األسطر. َّ سطر في المجموعة الواحدة مشابها ً للوصول إلى سطر الذَّاكرة يكون الوصول إلى ال َّ الخابية في التَّقابل الجماعي ( ،)Associative Mappingأي أنَّه يمكن ألي كتلة( )Blockفي الذاكرة أن تقابَل في مجموعة ( )Setمعطاة. هدف هذه َّ الطريقة هو تقليل تعقيد الذَّاكرة الخابية من حيث الدارات الدَّاخلية ألنه كما الحظنا تعتبر طريقة Fully Associativeمعقَّدة إلى حد كبير. صة من هذه الحالة العا َّمة بحيث مالحظة :طريقة Fully Associativeهي حالة خا َّ تكون: 2𝑖 = 1 → 𝑖 = 0 طبعا ً "بالتَّعريف" تكون طريقة التَّقسيم هذه مرتبطة بعدد Kوهو عدد المجموعات الَّذي سيتم التَّقسيم إليه أي َّ 𝒊𝟐 = K أن: قارنات في حقل الَّ Tag ألن المقارنة تكون يكون تقليل التَّعقيد بتقليل عدد الم َ المقارنات أقل كان تعقيد الدَّارة أقل. فيزيائيَّة (بال ) Hardwareأي كلَّما كان عدد َ تذكرة :في طريقة ( )Fully Associativeكانَ يتم مقارنة ال Tagللعنوان مع الTag لكل سطر موجود في الذَّاكرة الخابية. أصبح يلزم تقسيم جديد للعنوان عندما يطلبه ال CPUلكي يبحث في الذاكرة الخابية باستعمال هذه الطريقة: word w Tag The rest of bits Set Index s 106 المحاضرة -2- محاضرة بنيان حاسوب رقم 13 تاريخ :الثالثاء5/3/2019 مثال على نفس الذَّاكرة التي استعملناها في الصفحة :96 *طريقة *2-Way Associative *طريقة *4-Way Associative 107 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه لنقم بشرح َّ الطريقة بشكل أكثر تفصيال: بفرض َّ أن كل من ال Blockفي الموقع 0001و 0011موجودتين في الذاكرة سبب هو َّ أن: الخابية فإنَّهما ستكونان في المجموعة Set 1وال َّ 𝑡𝑒𝑠 𝑒𝐾 = 21 → 𝐿𝑜𝑔2 (𝐾 ) = 1 → 1 𝑏𝑖𝑡 𝑓𝑜𝑟 𝑠𝑒𝑙𝑒𝑐𝑡𝑖𝑛𝑔 𝑡ℎ بالتَّالي نحن بحاجة بت واحد لمعرفة مكان انتماء كل Blockفي حال وجودها في أحد أسطر الذَّاكرة الخابية. إذا ً كل Blockيكون فيها البت األقل وزنا ً هو 0ينتمي إلى .Set 0 وكل Blockيكون فيها البت األقل وزنا ً هو 1ينتمي إلى .Set 1 بقيَّة البتات ستكون هي ال Tagالذي يتم البحث عنه. تذكرة: -1الذاكرة رئيسيَّة بحجم 128بايت. -2الذاكرة خابية بحجم 32بايت. -3حجم ال Blockيساوي 8بايت. 108 المحاضرة -1- تاريخ :األربعاء 9/1/2019 في مثالنا بفرض َّ أن ال CPUقام بطلب العنوان ).0001010(Bin سيكون لدينا: )The Tag (3 Bits )The Set (1 Bit )Word (3 Bits 000 1 010 وبالتالي َّ فإن ال Blockالذي ت َّم طلبه سيتم البحث عنه في الذاكرة الخابية في قارنات سيتم مقارنة ال Tagللعنوان الذي المجموعة Set 1وعن طريق دارة الم ِّ طلبه ال CPUمع ال Tagألسطر المجموعة Set 1ونالحظ هنا عمليَّتي مقارنة تم تنفيذها بضربة واحدة وناتج العمليَّة هي .Cache Hit تمرين :لتكن لدينا ذاكرة خابية بحجم 8-Kbyteوحجم السطر فيها يساوي 16بايت ،ولدينا أيضا ً ذاكرة رئيسيَّة بحجم 64-Mbyteحيث أنَّه يمكن الوصول إلى أي بايت فيها ولتكن طريقة المقابلة هي .Two-way Set Associative أوجد: -1أوجد طول العنوان بالبت. -2عدد الوحدات القابلة للوصول. سطر. -3حجم ال Blockوحجم ال َّ الرئيسيَّة. -4عدد ال Blocksفي الذَّاكرة َّ -5عدد األسطر في المجموعة الواحدة. -6عدد المجموعات. -7عدد األسطر في الذاكرة الخابية. -8حجم حقل ال. Tag الحل: -1طول العنوان يساوي: )𝑦𝑟𝑜𝑚𝑒𝑀 𝑛𝑖𝑎𝑀 𝑓𝑜 𝑒𝑧𝑖𝑆( 𝐿𝑒𝑛𝑔𝑡ℎ 𝑜𝑓 𝑡ℎ𝑒 𝑎𝑑𝑑𝑟𝑒𝑠𝑠 = 𝐿𝑜𝑔2 𝐿𝑒𝑛𝑔𝑡ℎ 𝑜𝑓 𝑡ℎ𝑒 𝑎𝑑𝑑𝑟𝑒𝑠𝑠 = 𝐿𝑜𝑔2 (226 ) = 26 -2عدد الوحدات القابلة للوصول يساوي 226وحدة وكل منها عبارة عن بايت. سطر في الذاكرة الخابية. -3حجم ال Blockيساوي 16بايت وكذلك حجم ال َّ الرئيسيَّة: -4عدد ال Blocksفي الذَّاكرة َّ 109 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه 𝑦𝑟𝑜𝑚𝑒𝑀 𝑛𝑖𝑎𝑀 𝑓𝑜 𝑒𝑧𝑖𝑆 226 = 𝑠𝑘𝑐𝑜𝑙𝐵 𝑓𝑜 𝑟𝑒𝑏𝑚𝑢𝑁 = 4 = 222 𝑘𝑐𝑜𝑙𝐵 𝑓𝑜 𝑒𝑧𝑖𝑆 2 -5أوالً :عدد األسطر في الذاكرة الخابية يساوي: 𝑒𝑆𝑖𝑧𝑒 𝑜𝑓 𝐶𝑎𝑐ℎ 213 = 𝑠𝑒𝑛𝑖𝐿 𝑓𝑜 𝑟𝑒𝑏𝑚𝑢𝑁 𝑠𝑒𝑛𝑖𝐿 = 4 = 29 = 512 𝑘𝑐𝑜𝑙𝐵 𝑓𝑜 𝑒𝑧𝑖𝑆 2 ثانياً :بما أنَّه لدينا مجموعتين فبالضرورة سيكون في كل مجموعة نصف عدد األسطر أي أنَّه 256سطر في كل مجموعة. -6عدد المجموعات .2 -7عدد األسطر في الذاكرة الخابية هو .512 -8أصبح لدينا التَّقسيم التَّالي: Tag 21 Set word 1 4 إذا ً عدد بتات ال Tagهي .21 تمرين غير محلول: 110 المحاضرة -1- تاريخ :األربعاء 9/1/2019 أي ال ُّ سابقة هي األفضل من حيث األداء والسعر معاً؟ طرق ال َّ َّ المخطط يكفي لكي نعلم َّ السعات الصغيرة هي هذا أن الطريقة األفضل واألرخص عند ِّ ( )2-way Associativeوكذلك الفرق بين الطريقتين (َ )2-way Associativeو السعة .8KBytes ( )4-way Associativeيكون واضحا ً عند ِّ السعات الكبيرة يصبح الفرق مهمالً بين جميع ُّ الطرق. عند ِّ ي سطر في خوارزميَّات التَّبديل :جاءت خوارزميَّات التَّبديل إجابةً على ال ُّ سؤال التالي :أ ُّ الذاكرة الخابية سنقوم بتبديله إذا أردنا جلب كتلة Blockجديدة من الذَّاكرة وكانت الذَّاكرة الخابية ممتلئة أو كان المكان المخصص للكتلة الجديدة مشغوالً في الذَّاكرة الخابية؟ في التَّقابل المباشر :كان هناك مشكلة في الكتابة في هذه الطريقة وهي بفرض َّ أن هناك برنامجا ً يستخدم على التَّناوب عنوانين من الذاكرة يؤشران إلى ذات السطر من الذاكرة الخابية وبالتالي ستصبح احتماليَّة الحصول على المعلومة بشكل سريع أقل بكثير ففي كل مرة ال يجد فيها المعالج العنوان سيذهب إلى الذاكرة ويجلب ال Blockوسيقوم بوضع ال Blockالجديدة في ال Cacheوهكذا. ال يوجد َّإال سطر واحد من الذَّاكرة الخابية بحيث يقابل عنوانا ً ما من الذاكرة. 111 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه في التَّقابل الجماعي والتَّقابل بالمجموعات: هناك الكثير من الخوارزميَّات التي تتيح التَّبديل: تبديل أول سطر أو آخر سطر. متكرر). سطر األقل استخداما ً (ال يتم استخدامه بشكل تبديل ال َّ ِّ تبديل أول سطر ت َّمت كتابته ).(FIFO تبديل آخر سطر ت َّم استخدامه. تبديل سطر عشوائي. سياسات كتابة الذاكرة الخابية :ما هي خيارات تثبيت التَّعديالت (الكتابات) التي تجري على الذاكرة الخابية؟ طريقة :Write-Through تقوم هذه الطريقة على َّ ي تعديل يطرأ على سطر ما في الذَّاكرة الخابية سيحدث أن أ َّ تعديالً على الذَّاكرة مباشرة ً بحيث تبقى الذَّاكرة تحوي أحدث المعلومات. هذه َّ الطريقة تسمح لوحدات الدَّخل والخرج بالتَّعديل مباشرة ً على الذَّاكرة. يأتي بطء هذه َّ الطريقة من بطء الكتابة بسبب تكدُّس التَّعديالت المتتالية على Memory Buffer Registerوذلك في حالة معالجات متعددة تعمل على التوازي. 112 المحاضرة -1- تاريخ :األربعاء 9/1/2019 أيضا ً في حالة معالجات متعددة تعمل على التوازي ،أي تحديث يطرأ على أحد سطر إن وجد في الذواكر الخابية ألحد المعالجات في سطر ما يقوم بتعديل نفس ال َّ الذَّواكر الخابية األخرى وذلك بسبب عملية Monitoringالتي يقوم بعملها كل CPUموجود على ال Busالمشترك. *شكل يبين تكدُّس الكلمات عند *Memory Buffer Register طريقة :Write-Back في هذه َّ الطريقة يتم إضافة بت واحد إلى كل سطر في الذاكرة الخابية ،وظيفة هذا سطر ففي حال وجد أي تعديل البت هي إخبار ال CPUإذا ما طرأ أي تعديل على ال َّ تصبح قيمة هذا البت هي .1 عند التَّعديل على أحد أسطر الذاكرة الخابية ال يتم التَّعديل مباشرة ً على الذَّاكرة الرئيسيَّة. َّ ي تعديل وفي عند الحاجة إلى تبديل أحد األسطر يتم التأكد ما إذا كان قد ت َّم عليه أ ُّ الرئيسيَّة. حال اإليجاب تتم كتابة ال َّ سطر على الذَّاكرة َّ في هذه الطريقة تضطر وحدات اإلدخال واإلخراج إلى المرور بالذاكرة الخابية (يكون هناك عدَّة تعديالت على سطر واحد في ال Cacheدون الحاجة إلى الذَّهاب سطر أخيرا ً إلى الذَّاكرة الرئيسيَّة). الرئيسيَّة وعند االنتهاء يتم نقل ال َّ إلى الذَّاكرة َّ طبعا ً بطبيعة الحال وجدت الذاكرة الخابية لتسريع القراءة ،في الحقيقة 15%فقط من العمليَّات على الذَّاكرة الخابية هي عمليَّات كتابة وبالتَّالي ال فرق كبير بين َّ سابقتين. الطريقتين ال َّ 113 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه سطر في الذَّاكرة الخابية فمن الممكن أن يكون معدَّل مالحظة :عند تكبير حجم ال َّ Cache Hitأعلى. مالحظات على الدرس إن وجدت: __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ الرابع***** *****نهاية ال َّدرس َّ 114 المحاضرة -1- تاريخ :األربعاء 9/1/2019 األول الدرس َّ تاريخ :الثالثاء 15/1/2019 *****بداية ال َّدرس الخامس***** الذَّواكر الدَّاخليَّة: الذَّواكر المؤلَّفة من أنصاف النَّواقل (:)Semiconductor Memories نوع الذاكرة تصنيف الذَّاكرة آليَّة محي البيانات آليَّة الكتابة ذاكرة الوصول العشوائي ()RAM ذاكرة القراءة فقط ()ROM ذاكرة ROM القابلة للبرمجة ()PROM ذاكرة ROM القابلة للمحي ()EPROM ذاكرة ROMقابلة للبرمجة والمحي عن طريق الكهرباء ()EEPROM الومضيَّة الذَّاكرة َ Flash Memory ذاكرة للقراءة والكتابة عن طريق الكهرباء ،يمكن المحي على مستوى البايت عن طريق الكهرباء ذاكرة للقراءة فقط غير ممكن فقدان البيانات (عند انقطاع الكهرباء) تفقد البيانات عند انقطاع التيار الكهربائي عن طريق الماسكات يتم المحي عن طريق األش َّعة فوق البنفسجيَّة ذاكرة للقراءة معظم األوقات ال تفقد البيانات عند انقطاع التيار الكهربائي عن طريق الكهرباء عن طريق الكهرباء ،يمكن المحي على مستوى البايت عن طريق الكهرباء ،يمكن المحي على مستوى الBlock سبب في ذلك هو أنَّها ال مالحظة :تصنَّف ذاكرة Flashكذاكرة من النَّوع ROMوال َّ تفقد البيانات بداخلها عند انقطاع التَّيَّار الكهربائي. ذاكرة :RAM يقوم ال CPUبطلب عنوان من هذه الذَّاكرة فتقوم بإرجاع محتوى العنوان مباشرة ً وهذا يخالف اسم هذه الذاكرة Random Access Memoryولكن اقتضت العادة أن يتم تسميتها كذلك. تسمح بالقراءة منها والكتابة عليها. تفقد جميع البيانات عند انقطاع التيار الكهربائي. تستَخدم كذاكرة مؤقَّتة. يوجد منها نوعان ذاكرة RAMساكنة وذاكرة RAMديناميكيَّة. شكل خلية الذاكرة: 115 المحاضرة -2- محاضرة بنيان حاسوب رقم14 ال َّدرس الخامس تاريخ :األربعاء6/3/2019 تنظيم الحاسوب ووظائفه كل خليَّة من خاليا الذاكرة تتعامل مع الوسط الخارجي بثالثة خطوط: -1خط الختيار الخلية بحيث لكل خليَّة عنوان. -2خط Controlوهو يحدد ما إذا كانت العمليَّة هي عمليَّة قراءة أو عمليَّة كتابة -3خط يختلف بين حالتي القراءة والكتابة. تذكرة :الخليَّة هي عبارة عن بت واحد. في حالة ال Writeيكون الخط الثَّالث هو خط Data inوهو الكفيل بوضع القيمة الجديدة في الخلية. في حالة ال Readيكون الخط الثَّالث هو خط Senseومعنى ذلك أنَّه يأخذ القيمة تخزن القيمة بشكل ويقوم بمعايرتها لمعرفة قيمتها وخصوصا ً إذا كانت الخليَّة ِّ تماثلي (مثالً إذا كانت فلطيَّة هذا البت أكثر من 3فولط فهو يساوي 1منطقي وإذا كانت ما دون ال 2فهو يساوي 0منطقي). *شكل البت في حالة الكتابة* *شكل البت في حالة القراءة* ذاكرة RAMالديناميكيَّة(:)DRAM 116 المحاضرة -1- تاريخ :األربعاء 9/1/2019 مكثفات. يتم تخزين البتَّات فيها كشحنات كهربائية في ِّ لتسرب ال ُّ كما علمنا َّ شحنة من المكثِّفة وخصوصا ً في حالة القراءة أن هناك احتمال ُّ صفحة .)86 ولذلك تحتاج إلى دارات تغذية وتحديث (راجع ال َّ ساكنة .SRAM بنيتها الدَّاخليَّة أبسط من البنية الدَّاخلية للذاكرة ال َّ الرقاقة ويسمح بتكامل عالي (أي يمكن البت الواحد فيها يأخذ حجما ً صغيرا ً في ُّ الرقاقة). وضع الماليين منها على نفس ُّ أرخص. شحنتها تخ ََّزن بشكل تماثلي. الرئيسيَّة. تستعمل في الذاكرة َّ *شكل الخليَّة الواحدة* مبدأ عمل هذه الخليَّة :مبدؤها بسيط ،إذا كان الترانزستور فعَّاالً (الترانزستور مفتوح) يقوم بتمرير المعلومات إن كان من أجل القراءة أو من أجل الكتابة ،وإن كان غير فعَّال (الترانزستور مغلق) فإنَّه ال يسمح بالقراءة وال الكتابة على الخليَّة. كيف يتم تفعيل الترانزستور في الخليَّة؟ يكفي أن يتم وضع عنوان الخليَّة على خط Selectبحيث يتم تفعيل الخليَّة. مالحظة :بفرض لدينا ذاكرة سعتها ،1Mbytesال حاجة لدينا لعنونة كل الذَّاكرة وتفعيل جميع البتات فيها بل نقوم بعنونة البت الذي نحتاجه (إرسال إشارة كهربائية إليه على خط .)Select تتم عمليَّة ال Writeبِّوضع القيمة الَّتي نريد وضعها على Bit Lineثم تفعيل Selectللبت الهدف ومن ث َّم يفتح الترانزستور الخاص بذلك البت ثم ت َّ خزن القيمة صة بهذا البت. في المكثِّفة الخا َّ 117 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه تتم عمليَّة Readبعمل Selectأيضا ً للبت الهدف ومن ث َّم يفتح الترانزستور الخاص بذلك البت بعد ذلك تهرب ال ُّ شحنة الموجودة في المكثِّفة إلى Bit Line سبب للحاجة إلى عمليَّة كتابة بعد كل عمليَّة قراءة وهو السترجاع قيمة (وهذا هو ال َّ البت والحفاظ عليها). ساكنة(:)SRAM ذاكرة RAMال َّ صها: خوا ُّ تكون القيم في هذه الذَّاكرة رقميَّة وليست تماثليَّة. ي َّ خزن البت في ( ON\OFF Switchتستعمل مبدأ .)Flip-Flop نفس الحالة مخزنة بطريقتين للحفاظ على المعلومة وعدم ضياعها. مستقرة أي ال يوجد ضياع في ال ُّ شحنة (ال تحتاج إلى دارات الحالة في هذه الذَّاكرة َّ تغذية وتحديث). تركيبة البت فيها أعقد من تركيبة البت الموجود في ذاكرة RAMالديناميكيَّة وأكبر من حيث الحجم. سريعة ولذلك تستَخدم في الذَّاكرة الخابية وهي أسرع من ذاكرة RAMالديناميكيَّة الرئيسيَّة. الَّتي ِّ تؤلف الذاكرة َّ أيضا ً تفقد المعلومات عند انقطاع التَّيَّار الكهربائي. شكل الخليَّة الواحدة في :SRAM تتألَّف الخليَّة الَّتي تشكل بتَّا ً واحدا ً من 6ترانزستورات وتحافظ على البت بطريقتين (نفس المعلومة موجودة هي وعكسها بحيث أنَّه في حال كان أحد الترانزستورات ال يعمل َّ فإن الترانزستور المقابل يتكفَّل بالحصول على القيمة المرادة). 118 المحاضرة -1- تاريخ :األربعاء 9/1/2019 مبدأ عمل هذه الخليَّة: عند القيام بوضع عنوان الخليَّة على خط العنوان Address lineيتم تفعيل الخليَّة المرادة ،بعد ضع القيمة المعاكسة على الطرف ذلك تدخل القيمة المرادة على الخلية من 𝑩 Bit Lineوتو َ المقابل عن طريق ̅ 𝑩 .Bit Line *صورة توضح شحن الخليَّة بالقيمة *1 وبنفس َّ الطريقة يمكن شرح شحن الخليَّة بالقيمة .0 مالحظة: مقارنة بين كل من ذاكرتي SRAMو:DRAM SRAM أيضا ً تحتاج إلى تغذية كهربائيَّة حجم البت فيها كبير غالية ال تحتاج دارات تغذية وتحديث DRAM تحتاج إلى تغذية كهربائيَّة حجم البت فيها أصغر وتسمح بتكامل عالي أرخص تحتاج دارات تغذية وتحديث ذاكرة القراءة فقط (:)ROM Read Only Memory 119 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه تستخدم هذه الذَّاكرة للتَّخزين الدَّائم ولذلك َّ فإن من ميزاتها عدم فقدانها للمعلومات عند انقطاع التَّيَّار الكهربائي. تستعمل هذه الذَّاكرة في حال: التَّخزين الدَّائم. الحاجة لبرنامج صغري ي ِّنفذ تعليمات دائمة مثل إقالع الحاسوب. متحكم صغري لتنفيذ برنامج معيَّن (سيرد هذا القسم في الفصل الثَّالث في برمجة ِّ الصغَريَّة). َّ مقرر المتحكمات ِّ الحاجة إلى تعليمات ال تتغيَّر فالوصول إليها أسرع عن طريق الذَّاكرة .ROM الحاجة إلى الوصول إلى جداول لقيم توابع معيَّنة عند قيم معيَّنة يتم استعمالها بكثرة دون اللجوء إلى ذاكرة الحاسوب. أنواعها: -1ذاكرة ROMالعاديَّة :تتم برمجتها أثناء التَّصنيع وتكون أغلى سعرا ً ولذلك توجد بحجوم صغيرة في نظام الحاسوب. لمرة واحدة فقط (:)PROM Programmable ROM -2ذاكرة ROMالقابلة للبرمجة َّ الرجوع لل َّ صة لبرمجتها. شركة ِّ المصنعة ولكن تحتاج إلى أجهزة خا َّ يمكن برمجتها دون ُّ -3ذاكرة ROMمن النَّوع ( :)Read Mostlyأي َّ أن المعلومات عليها غالبا ً ما تتم قراءتها ولكن هناك احتمال لعمل التَّعديالت عليها في أي وقت ولها أنواع: ذاكرة ROMالقابلة للبرمجة والمحي ( :)EPROMيمكن محي محتويات هذه الذَّاكرة عن طريق األش َّعة فوق البنفسجيَّة (تأخذ مدَّة المحي من 10دقائق إلى ربع ساعة). ذاكرة ROMالقابلة للبرمجة والمحي كهربائيَّا ً ( :)EEPROMيمكن محي محتويات مقارنةً بوقت هذه الذَّاكرة عن طريق الكهرباء ولكنَّها تأخذ وقتا ً أطول للـكتابة َ الـ ِّقراءة. ذاكرة :FLASH Memoryتبقى فيها المعلومات حتَّى عند إزالتها من الحاسوب ويمكن محي كل محتوياتها عن طريق الكهرباء ،ويكون المحي فيها على مستوى الكلمة من الذَّاكرة أو الكتلة. السعات الكبيرة (التي تشغَّل على الحاسوب من صلبة ذوات ِّ مالحظة :األقراص ال َّ مداخل USBمثالً) ال تعتبَر FLASH MEMORYالختالف مبدأ التَّخزين بين كل منهما. تنظيم الذَّواكر: 120 المحاضرة -1- تاريخ :األربعاء 9/1/2019 لتكن لدينا ذاكرة سعتها 16MBitsأي أنَّها عبارة عن مصفوفة من 𝟒𝟐𝟐 بت. يمكن النَّظر إليها على أنَّها: عبارة عن 1Mمن المصفوفات الَّتي طول كل منها هو 16بت. عبارة عن 16مصفوفة طول كل منها 1Mبت. عبارة عن 4مصفوفات مربَّعة حجم كل منها = 2048 ∗ 2048 211 ∗ 211بتَّاً. سابقة؟ سؤال :ما هو الفرق بين التَّقسيمات الثَّالثة ال َّ الجواب: في الخيار األول يكون: عن طريق 20خط عنونة يمكن الوصول إلى أحد المصفوفات التي عددها 1M والحصول على 16بت دفعة واحدة وستكون هذه البتات هي محتوى العنوان الذي قمنا بإدخاله. في الخيار الثاني يكون: سابقة وبالتالي عن طريق 4خطوط عنونة سنحصل على أحد المصفوفات ال َّ الحصول على محتواها وهي 1Mبت. في الخيار الثَّالث يكون: سطر و 11بت لتحديد العمود تحديد العنوان عن طريق 22بت ( 11بت لتحديد ال َّ من كل مصفوفة وبالتَّالي سنحصل عند طلب عنوان ما على 4بتات بحيث يأتي بت يشكل الكلمة " 4بتات"). من كل مصفوفة مربَّعة واجتماع هذه البتَّات ِّ سطر َّأوالً ثم عنونة العمود (هذا يستغرق يكفي 11بت للعنونة بحيث يتم عنونة ال َّ دورتي تعليمة) والحصول على الكلمة. ** شكل الذَّاكرة في حالة ** 4*2048*2048 121 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه سطر والعمود وإدخال البتات سابقة بعد تحديد ال َّ مالحظة :يمكن الكتابة على الذَّاكرة ال َّ سابقة من .Data Buffer Input ال َّ تحتاج هذه الذَّاكرة إلى دارات تغذية وتحديث وهي من النَّوع .DRAM الرقاقة: ويمكن وضع الدارة ال َّ سابقة في هذه ُّ 122 المحاضرة -1- تاريخ :األربعاء 9/1/2019 سطر الحظ وجود 11خط من أجل تحديد العنوان ( )A1,…,A10بحيث يتم تحديد ال َّ المراد ومن ث َّم تحديد العمود ث َّم الحصول على 4بتات كما أسلفنا. الحظ وجود البتات التالية: :VSSأرضي الدَّارة (أخفض فولط في الدارة). :VCCالفولط األعلى في الدارة وهو مسؤول عن تشغيل الدارة. ) :WE (Write Enableلتفعيل الكتابة على الذَّاكرة. ) :OE (Output Enableلتفعيل القراءة من الذَّاكرة. ) :CAS (Column Address Selectلتحديد العمود أثناء العنونة. سطر أثناء العنونة. ) :RAS (Row Address Selectلتحديد ال َّ :D1, …, D4البتات األربعة التي تنتج عن عمليَّة القراءة من الذَّاكرة أو التي تدخل في عملية الكتابة على الذَّاكرة. سابقة وذاكرة مؤلَّفة من 8ميغا بت ومن النَّوع :EPROM مقارنة بين الذَّاكرة ال َّ نذكر َّ أن: 𝑠𝑡𝑖𝑏 .8 𝑀𝑒𝑔𝑎 𝑏𝑖𝑡𝑠 = 223 123 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه سابقة إلى 220شريحة ذاكرة حجم كل منها هو 8بتات ت َّم تقسيم ال َّذاكرة EPROMال َّ وبالتالي نحتاج إلى 20بت للعنونة ومن ث َّم الحصول على كلمة مؤلَّفة من 8بتات (نحصل عليها من الشريحة المعنونة). الحظ وجود البتات التالية: :VSSأرضي الدَّارة (أخفض فولط في الدارة). :VCCالفولط األعلى في الدارة وهو مسؤول عن تشغيل الدارة. :A0, …, A19هذه الخطوط تضمن تحديد موقع الشريحة الَّتي سيتم أخذ البتات الثمانية منها (بدورة تعليمة واحدة) كما ورد قبل قليل. الرقاقة والقدرة على الوصول إلى ) :CE (Chip Enableهذا البت وظيفته تفعيل هذه ُّ الذاكرة التي تحويها. :D0, …, D7البتات الثَّمانية التي تنتج عن عمليَّة القراءة من الذَّاكرة. سبب َّ أن هذه الذاكرة للقراءة فقط* *ال يوجد في هذه الذَّاكرة WEوكذلك REوال َّ سبب َّ أن هذه الذاكرة لديها 20خط * ال يوجد في هذه الذَّاكرة RASوكذلك CASوال َّ الرقاقة لتوفير الحجم) * عنونة (كان السبب هو قلة عدد المغارز Pinsعلى ُّ مالحظات______________________________________________: ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ 124 المحاضرة -1- تاريخ :األربعاء 9/1/2019 مثال على تقطيع لذاكرة حجمها :256KBytes نذكر256 KBytes = 221 𝐵𝑖𝑡𝑠 : باإلمكان القيام بتقسيم هذه الَّذاكرة إلى 8مصفوفات مربَّعة حجم كل منها هو 218بت. سطر و 9لتحديد نحتاج في هذه الحالة إلى 18خط عنونة ( 9بتات منها لتحديد ال َّ العمود). سيكون الخرج في هذه الحالة هو عبارة عن 8بتات (بت من كل مصفوفة مربَّعة). انظر الشَّكل: سابقة: توسيع الذَّاكرة إلى 1MBytesباالستفادة من الذَّاكرة ال َّ الحظ َّ أن هذه الذَّاكرة هي عبارة عن اجتماع 4ذواكر حجم كل منها هو 256KBytesفإذا نظرنا إلى كل ذاكرة من هذه الذَّواكر األربعة على أنَّها عبارة عن عمود من المصفوفات المربَّعة الَّتي تعطي بـ ِّ 18خط عنونة 8بتات يمكن اختيار أحد هذه األعمدة لكي تعطينا 8 بتات ولكن الفرق أنَّنا بحاجة لتفعيل أحد هذه األعمدة وبالتَّالي نحتاج 2بت لهذه العمليَّة وبالتالي حصلنا على ذاكرة حجمها 1MBytesباالستفادة من 4ذواكر حجم كل منها هو عبارة عن .256KBytes 125 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه الحظ الشَّكل واستنتج ما سبق ( 2بت تكفي لتحديد أحد األعمدة األربعة): تصحيح األخطاء في الذَّاكرة :DRAM هناك بعض األخطاء الدَّائمة التي ال يمكن تصحيحها عند حدوث عطل في أحد بتات الذَّاكرة مثل تَلَف المكثِّفة التي تحفظ ال ُّ شحنة التي تمثل قيمة البت. هناك بعض األخطاء المؤقَّتة التي يمكن معالجتها وأحد أمثلة هذه األخطاء هو المكثفة التي تحفظ ال ُّ شحنة التي تمثل قيمة البت بحيث أنَّها تعطي تسرب الشحنة من ِّ ُّ قيمة مغايرة للقيمة األصليَّة للبت. يكون تحديد الخطأ وتصحيحه معتمدا ً على خوارزميَّة اسمها: .Hamming Error Correctingوفهم َّ (لالطالع): الطريقة ِّ 126 المحاضرة -1- تاريخ :األربعاء 9/1/2019 األول الدرس َّ الدَّرس الخامس تاريخ :الثالثاء12/3/2019 تطور ذاكرة :DRAM ُّ هناك بعض ال َّ شركات التي ما زالت تنتج ذواكر DRAMالعاديَّة كما رأينا في سابقة مع زيادة لسعات هذه الذواكر. األمثلة ال َّ سن والذي يحوي على ذاكرة SRAMصغيرة تعتبر ظهر نموذج DRAMال ُمح َّ بمثابة Cacheوهي تحفظ بداخلها آخر سطر ت َّمت قراءته. سعت فكرة وجود ذاكرة خابية في نموذج DRAMلتصبح بسعات أكبر حيث يت ُّم تو َّ التعامل معها كمعاملة الذَّاكرة الخابية العاديَّة. مالحظة :كان هناك مشكلة في ذواكر DRAMالعادية وهي َّ أن ال CPUال يعلم الوقت الحقيقي المصممون بمزامنة الذَّاكرة DRAMمع ساعة خارجيَّة. لتوفُّر البيانات من الذَّاكرة لذلك قام ِّ نموذج ذاكرة DRAMالمتزامنة ):SDRAM (SYNCHRONOUS DRAM oأصبح الوصول إلى الذاكرة في هذا النموذج مقترنا ً بساعة خارجيَّة (غالبا ً تكون هذه الساعة هي ساعة المعالج). oآلية العمل :يتم تقديم العنوان إلى الذَّاكرة مع العلم مسبقا ً بحجم البيانات الَّتي سيتم تناقلها وبالتالي معرفة عدد دورات التَّعليمة للحصول على البيانات أن عدد الدورات أصبح معروفا ً َّ كاملة وبما َّ فإن ال CPUيستطيع القيام بعمل آخر في هذا الوقت. oفي هذا النموذج يوجد ما يس َّمى بـ ِّ :Burst Modeوهو حجم البيانات الَّتي سيتم تناقلها في الدَّورة الواحدة (يمكن نقل البيانات بأي حجم شرط أن يكون متاحا ً مثالً يمكن نقل البيانات بايتا ً تلو اآلخر من عمود محدَّد بعد أن يكون سطر والعمود قد ت َّم تعيينهما ،ويمكن أيضا ً نقل البيانات صفحةً تلو األخرى ال َّ وهكذا ،)..ميزة هذا النمط هو أنَّه ال يوجد إال نفاذ واحد إلى الذاكرة (باالستفادة من معرفة عنوان بداية المصفوفة ومعرفة حجم المعطيات المطلوبة يمكن جلبها مباشرة ً ألنَّها متتالية. 127 المحاضرة -2- محاضرة بنيان حاسوب رقم15 تاريخ :الثالثاء 15/1/2019 تنظيم الحاسوب ووظائفه الحظ: أنَّه يتم أخذ العنوان في دورة التَّعليمة األولى. سطر في دورة التَّعليمة الثَّانية. يتم تحديد ال َّ يتم تحديد العمود في دورة التَّعليمة الثَّالثة. ذاكرة :RAMBUSهي عبارة عن نموذج جديد يختلف بالتَّصميم كليَّا ً عن ذواكر DRAMالعاديَّة وهي تتميَّز بأنَّها من النوع ،SDRAMقامت بتبنيها كل من شركتي Pentiumو.Itanium صها األخرى لالطالع. oخوا ُّ ساعة مرة في نبضة ال َّ ل َّما كانت ذاكرة SDRAMتقوم بإرسال البيانات َّ الواحدة ،ظهر الحقا ً ما يس َّمى بـ ِّ )SDRAM DDR (Double Data Rate الذي يقوم بمضاعفة حجم البيانات التي يتم تناقلها في نبضة الساعة الواحدة صاعدة والجبهة الهابطة للنَّبضة الواحدة. بحيث يجري النقل لدى الجبهة ال َّ *الحظ َّ أن ال CPUيقوم بصرف نبضة ساعة لتحديد عنوان السطر وصرف نبضة ساعة لتحديد عنوان العمود ومن ث َّم يقوم بنقل البيانات ،الحظ أيضا ً إرسال حزمة مضاعفة من البيانات في كل نبضة ساعة* 128 المحاضرة -1- تاريخ :األربعاء 9/1/2019 ظاهرة وجود ذاكرة خابية في ذواكر :DRAMتبنَّت فكرة هذه الذَّواكر شركة Mitsubishi حيث قامت ال َّ شركة بِّمكاملة ذاكرة RAMساكنة بحجم كبير نسبيا ً على ذاكرة DRAMعاديَّة. ساكنة حجم الذاكرة الخابية 16KBيحوي 64سطرا ً بحيث يمكن أن تعامل هذه الذاكرة ال َّ الصغيرة كذاكرة خابية حقيقيَّة ،وهي مفيدة في حالة الوصول العشوائي. ساعدت هذه الذَّواكر على: النَّفاذ التَّسلسلي لـ ِّ Blocksمتتالية من الذَّاكرة وبسرعة عالية. يمكن جلب البيانات من الذَّاكرة DRAMإلى الذاكرة الساكنة فيها .SRAM يمكن اعتبار الذَّاكرة SRAMهي عبارة عن Bufferسريع لمعطيات الذاكرة .DRAM الحظ الشَّكل: *شكل يبين القراءة من ذاكرة *DRAM في ال َّ سطر والعمود عن طريق خطوط عنونة شكل السابق يتم الوصول إلى عنواني كل من ال َّ Address Linesومعرفة كل منهما عن طريق RASو CASومعرفة القراءة من الكتابة عن طريق .R/W نالحظ هنا َّ سطر ث َّم العمود المناسبين) وt3-t2 أن t2-t1يس َّمى زمن النَّفاذ إلى الذَّاكرة (تهيئة ال َّ هو زمن إخراج المعطيات من الذَّاكرة ويتض َّمن إعادة إنعاش الذَّاكرة الدِّيناميكيَّة. *****نهاية ال َّدرس الخامس***** 129 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه *****بداية ال َّدرس السادس***** الذَّواكر الخارجيَّة: أنواعها: صلبة. -1األقراص ال َّ -2األقراص الليزريَّة. -3األشرطة الممغنطة. صلبة :هي عبارة عن أطباق معدنيَّة غالبا ً ما تكون من األلمنيوم .تصطف عليها األقراص ال َّ َّ وقطاعات Sectors البتَّات بحيث يتم تقسيمها إلى مسارات دائريَّة متَّحدة المركز Tracks ويوجد بينها فراغات ،Gapsلها طريقة وصول سنتحدَّث عنها بعد قليل. حاليَّا ً يتم صناعة هذه األقراص من ُّ الزجاج وذلك يقلل أخطاء القراءة والكتابة وكذلك أقراص ُّ صدمات واألعطال. الزجاج أكثر مقاومة لل َّ *الشَّكل العام للقرص (الحظ المسارات الدائريَّة مت َّحدة المركز والق َّ طاعات والفراغات) * 130 المحاضرة -1- تاريخ :األربعاء 9/1/2019 تغذية راجعة عن محتويات القرص: المسارات :Tracksهي عبارة عن مسارات دائريَّة متَّحدة المركز (تصطف البتَّات بشكل منتظم على كل مسار منها) ويتألَّف كل Trackمن مجموعة من .Sectors صلب. القطاعات :Sectorsال Sectorالواحد فيها يعتبر الوحدة األصغر في القرص ال َّ مالحظة :كل Trackو Sectorمعنون بشكل منفصل. الفراغات :Gapsهي عبارة عن الفراغات الَّتي تقوم بفصل كل مسار عن اآلخر وكذلك تقوم بفصل كل ِّق َ طاع عن اآلخر. الرأس :Headهو عبارة عن قطعة معدنيَّة مستطيلة ال َّ تتحرك حركة ميكانيكيَّة انسحابيَّة شكل َّ َّ على نصف قطر القرص عرضها يكون بعرض كل مسار ،Trackويوجد وشيعة ملفوفة على َّار فيها َيتَولَّد حقل مغناطيسي ⃗ 𝑩⃗ يقوم بتغيير قيم المعطيات عند عبور الرأس بحيث إذا َّ َّ مر تي ٌ الرأس على البِّتَّات في قِّ َّ طاع معيَّن وقيمة البت الَّذي يتم تغييره تعتمد على اتِّجاه التَّيَّار في َّ الوشيعة. الرأس أثناء مروره على أحد الق َّ طاعات* *صورة توضح شكل َّ 131 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه الرأس .Head القراءة والكتابة على القرص :الكفيل األساسي في القراءة والكتابة هو َّ الرأس بشكل انسحابي حتى طريقة الكتابة :أثناء دوران القرص يتحرك َّ َّ يدرك Trackمعيَّن ومن ث َّم يصل إلى ال Sectorالَّذي سيقوم بكتابة البتَّات عليه ،عند إدراكه لبداية ال ِّق َّ طاع يمر تيَّار في الوشيعة بحسب قيمة البت المراد وضعه في ال ِّق َّ طاع وبالتَّالي يتم تغيير ال ِّبتَّات والكتابة. َّ القطاعات القريبة من المركز. oالتَّخزين كثيف عند oالتَّخزين يصبح أقل كثافة باالبتعاد عن المركز. oتصبح كثافة البِّتَّات قليلة ج َّدا ً عند أطراف القرص. الرأس على البتَّات واحدا ً تلو اآلخر يمر َّ طريقة القراءة :بطريقة عكسيَّة ُّ تيار في الوشيعة بحسب قيمة البت وتفسير ما تتم قراءته على ومن ث َّم يم ُّر ٌ هذا األساس. oيدور القرص بسرعة زاويَّة ثابتة. الخطيَّة بطيئة. سرعة oعند القراءة من مسار قريب من المركز تكون ال ُّ ِّ الخطيَّة أعلى. سرعة الرأس عن المركز أصبحت ال ُّ ِّ oكلَّما ابتعد َّ سرعة ًّ سبب هو َّ الزاويَّة أن ال ُّ زمن قراءة أي مسار هو ذاته زمن قراءة أي مسار آخر وال َّ لتحرك القرص ثابتة. ُّ مالحظات______________________________________________: ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ 132 المحاضرة -1- تاريخ :األربعاء 9/1/2019 األول الدرس َّ تاريخ :الثالثاء 15/1/2019 سؤال :ما هي فائدة الفراغات وهل يمكن تصغيرها؟ الجواب :فائدة الفراغات تأتي في فصل كل َّ قطاع عن اآلخر وكذلك فصل كل مسار عن اآلخر الرأس االنتقال بينها بأريحيَّة وبكفاءة ولكن ال داعي لزيادة حجم الفراغات أكثر بحيث يستطيع َّ من الالزم. سؤال :كيف يمكن زيادة حجم القرص؟ الرأس أعرض كان عرض كل الرأس وحجمه فكلَّما كان َّ الجواب :يعتمد هذا على عرض َّ الرأس سيتم توفير مسارات أكثر. Trackأكبر وهذا يقتضي أنَّه بتصغير َّ سؤال :هل تصغير الرأس Headمفيد دوماً؟ الجواب: تصغير الرأس يعني استخدام تقنيَّة أعقد في صنعه إذا ً هو أكثر سعرا ً من الشرائيَّة. حيث القيمة ِّ الرأس صغيرا ً لدرجة تجعله عرضةً للعطب والتَّلف من الممكن أن يصبح َّ من أي تأثير خارجي وذلك غير آمن للمستخدم. ليكن لدينا الشَّكل التالي لترتيب المعطيات: َّ مشكلة هذا التَّرتيب هي َّ القطاعات ثابت في كل مسار وبالتَّالي تزداد الفراغات باالبتعاد أن عدد عن المركز ،وهذه الزيادة في الفراغات يمكن االستفادة منها لزيادة المساحة. الحظ :يوجد َّ 8 قطاعات في كل مسار. 133 المحاضرة -2- محاضرة بنيان حاسوب رقم16 سادس الدَّرس ال َّ تاريخ :األربعاء13/3/2019 تنظيم الحاسوب ووظائفه حل مشكلة الفراغات: يوجد نموذج بديل لترتيب ال ِّق َّ طاعات اسمه Multiple Zoned Recordingيقوم على جعل عدد ال ِّق َّ سابق. طاعات يزداد باالبتعاد عن المركز وهذا التَّرتيب يع ُّد أكثر فاعليَّة من التَّرتيب ال َّ * شكل *Multiple Zoned Recording الحظ في المسار األقرب إلى المركز يوجد 4قطاعات ،في المسار الَّذي بعده يوجد َّ 5 قطاعات وهكذا ..لكن المشكلة في هذا التَّرتيب البديل للقطاعات تكمن في عدم سهولة تحديد بداية القطاعات للمسارات المختلفة. صلب (:)Format القيام بتهيئة القرص ال َّ صلب بشكل كامل بأن تصل رأس الكتابة إلى جميع المسارات يكفي للقيام بتهيئة القرص ال َّ شحنة الموجودة في كل بت من كل َّ َّ والقطاعات بحيث تقوم بسحب ال ُّ قطاع وبالتَّالي إرجاعه كما كان (قبل كتابة أي معطيات عليه). تطورها خصائصا ً أقراص وينشيستر ( :)Winchester Disksحملت هذه األقراص أثناء ُّ أكثر كفاءة ومنها: تجعلها َ حزمة مختومة تماما ً معزولة عن الهواء. متحرك على نصف القطر بشكل انسحابي (كانت الرأس ثابتة قبالً). رأس ِّ السعة (كان هناك قرص واحد فقط عند بداية ظهور أقراص متعددة لزيادة ِّ هذه التِّقنيَّة). تطور نظم إمكانيَّة جعل القرص ال َّ صلب قابالً لإلزالة وأصبح ذلك ممكنا ً بعد ُّ التَّشغيل. 134 المحاضرة -1- تاريخ :األربعاء 9/1/2019 قوة رفع بحيث تتم قراءة سرعة الدَّوران في قرص وينشيستر ِّ تولد َّ والرأس. المعطيات وبنفس الوقت ال يحدث تماس مباشر بين القرص َّ الرأس والقرص لقراءة مالحظة :في قرص FLOPPYكان يجب تأمين التَّماس المباشر بين َّ المعلومات وكتابتها. *شكل ترتيب البايتات في أحد مسارات قرص وينشيستر*SEAGATE ST506 طاعات وداخل الق َّ *الحظ طول الفراغات مقدَّرة بطول البايت الواحد بين الق َّ طاع الواحد* َّ القطاع حقل :IDأهم الحقول يحوي بداخله عنوان المسار الذي يوجد فيه القطاع وكذلك عنوان نفسه وعنوان بدايته. َّ مالحظة :يحوي ال ِّق َّ القطاع بالكامل هو طاع الواحد 512بايت من المعطيات المتاحة وحجم 600بايت. الرأس الثَّابت: في حالة َّ يكون هناك رأس للقراءة والكتابة معا ً على كل مسار في القرص. سابقة على ذراع معدنيَّة ثابتة. الرؤوس ال َّ تستند جميع ُّ الرأس المتحرك: في حالة َّ يكون هناك رأس واحدة للقراءة والكتابة. للتحرك على نصف قطر القرص. الرأس على ذراع قابلة ُّ تستند هذه َّ 135 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه تعدُّد األقراص :هذه َّ الطريقة أتاحت زيادة مساحة ذاكرة الحاسوب بشكل كبير وكذلك زيادة صلب وسبب زيادة سرعة األداء هو َّ أن سرعة أدائه من حيث القراءة والكتابة على القرص ال َّ المعطيات الَّتي تتم كتابتها تُكتب على أقراص متعددة بالتَّوازي وبذلك تقليل زمن الكتابة وبنفس الوقت تقليل زمن القراءة. *شكل يبين األقراص المتعددة التي يشكل اجتماعها الذَّاكرة الكُليَّة* مزايا تعدُّد األقراص: يوجد رأس على كل قرص. تتحرك معا ً حركة انسحابيَّة. الرؤوس جميعها َّ يتم تقطيع المعطيات إلى عدد األقراص عند كتابتها وقراءتها. شكل تتم الكتابة على كل Trackمشترك بين جميع األقراص بحيث ت ِّ باجتماعها أسطوانة كما في ال َّ شكل المجاور. تطور مزايا قرص :Floppyالقت هذه األقراص رواجا ً واسعا ً في بداية ُّ التكنولوجيا بصفتها من أوائل وسائط التَّخزين القابلة لإلزالة سعتها كانت صغيرة جدا ً بالمقارنة بتكنولوجيا هذا العصر فقد كانت سعة أغلب هذه األقراص 1.44 Mbytesوكذلك كانت بطيئة ،تتميَّز برخص ثمنها. 136 المحاضرة -1- تاريخ :األربعاء 9/1/2019 تغذية راجعة عن أقراص وينشيستر: ت َّم تطوير هذه األقراص عن طريق شركة IBMفي الواليات المتحدة األمريكيَّة. َّ مشكلة قامت أقراص وينشيستر بتفاديهاَّ : القطاعات ذرة غبار صغيرة على أحد إن سقوط َّ الرأس غير قادرة على إكمال عمليَّة القراءة ويعتبر هذا عيبا ً في أثناء القراءة كفيل بجعل َّ القرص الصلب .لذلك ،كانت أقراص وينشيستر مغلَّفة بحيث أنَّها معزولة عن الوسط الخارجي. األقراص متينة وقويَّة ويمكن االعتماد عليها مدى الحياة. رخيصة نسبيَّا ً بالنِّسبة لفعاليتها. القت رواجا ً على مستوى العالم. تطور مستمر وما زالت سعاتها تكبر أكثر فأكثر. ما زالت في ُّ نعرف المقدارين التَّاليين: سرعة الوصولِّ : الرأس إلى المسار المناسب +زمن دوران القرص حتى زمن الوصول = زمن تحريك َّ َّ القطاع المطلوب. الوصول إلى معدَّل النَّقل :هو مقدار البتَّات الَّتي يمكن نقلها خالل ثانية واحدة. بالتَّالي يمكن تعريف العالقة التَّالية: 1 𝑏 + 𝑁𝑟 𝑟2 𝑇𝑎 = 𝑇𝑠 + الكلي. 𝑎𝑇 :زمن الوصول ِّ 𝑠𝑇َّ : صحيح. الرأس حتى الوصول إلى المسار ال َّ الزمن الوسطي لتحريك َّ 𝑟 :سرعة دوران القرص مقدَّرة ً بالثَّانية. 𝑏 :عدد البايتات الَّتي سيتم نقلها. 𝑁 :عدد البايتات في المسار الواحد. 137 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه الرأس يساوي 2 msوسرعة دوران تمرين :ليكن لدينا قرصا ً صلبا ً مع زمن وسطي لتحريك َّ القرص الوسطيَّة تساوي 15000دورة خالل الدَّقيقة الواحدة وليكن هناك َّ 500 قطاع في كل َّ القطاع الواحد من 512بايت". مسار "يتألَّف أوجد زمن الوصول الكلي إلى 125ق َّ طاع متجاور. الحظ :في سرعة الوصول يجب التحويل من الدقيقة إلى الثَّانية. الحل: )𝑑𝑛𝑜𝑐𝑒𝑠 𝑟𝑒𝑝 𝑠𝑑𝑛𝑢𝑜𝑟( 𝑟 = 15000 (𝑟𝑜𝑢𝑛𝑑𝑠 𝑝𝑒𝑟 𝑚𝑖𝑛𝑢𝑡𝑒) = 250 1 𝑏 + 𝑁𝑟 𝑟2 1 125 = 2(𝑚𝑠) + + 2 ∗ 250 250 ∗ 500 𝑇𝑎 = 𝑇𝑠 + )𝑠𝑚(= 2(𝑚𝑠) + 2(𝑚𝑠) + 1(𝑚𝑠) = 5 مالحظة :ل َّما كانت القطاعات ال 125متجاورة فإنَّنا لم نحتج إال إلى 1 𝑟2 𝑇𝑠 +واحدة ،أ َّما لو كانت القطاعات ال 125مبعثرة على القرص عشوائيَّاً ،فإنَّنا كنَّا سنحتاج إلى َّ الزمن لكل قطاع. 1 𝑟2 𝑇𝑠 + الرأس يساوي 4 msوسرعة دوران تمرين :ليكن لدينا قرصا ً صلبا ً مع زمن وسطي لتحريك َّ القرص الوسطيَّة تساوي 15000دورة خالل الدَّقيقة الواحدة وليكن هناك 500قطاع في كل مسار "يتألَّف القطاع الواحد من 512بايت". مكون من 2500قطاع بحيث يكون حجمها ال ُّكلي بفرض أنَّنا نريد قراءة ملف َّ هو ،1.28Mbytesاحسب زمن النَّقل الك ِّلي في كل من الحالتين: -1بفرض َّ أن الملف يشغل كامل القطاعات لـ ِّ 5مسارات متجاورة (التنظيم تسلسلي للمعطيات). الزمن الالزم لقراءة نفس المعلومات باستخدام طريقة الوصول العشوائي بدالً -2احسب َّ من الوصول التسلسلي. 138 المحاضرة -1- تاريخ :األربعاء 9/1/2019 الحل: )1 1 𝑏 + 𝑁𝑟 𝑟2 1 2500 = 4(𝑚𝑠) + + )𝑠𝑚(= 26 2 ∗ 250 250 ∗ 500 𝑇𝑎 = 𝑇𝑠 + )2 𝟏 𝒃 + 𝑵𝒓 𝒓𝟐 1 𝑏 )𝑠𝑚(+ ) = 20(𝑚𝑠) + 10(𝑚𝑠) + 20(𝑚𝑠) = 50 𝑁𝑟 𝑟2 𝑇𝑎 = 𝑻𝒔 + 5 = ∑(𝑇𝑠𝑖 + 𝑖=1 مقدمة عن تقنيَّة :RAID مع نمو األعمال التجارية ،بدأ ينشأ َّ الطلب على بنى معطيات أكثر موثوقية يمكنها الت َّعامل مع المكونات المهمة في البنية التحتية المستقرة والقابلة للتطوير هو اإلدارة ساسة ،أحد األنظمة الح َّ ِّ المناسبة للذاكرة . تعريف :RAIDهو اختصار لمصفوفة تكرار من األقراص المستقلة وهو تقنية للمحاكاة محركات أقراص متعددة في ترتيبات مختلفة لتحقيق االفتراضية للتخزين يتم استخدامها لتنظيم ِّ أهداف معينة مثل التكرار والسرعة والسعة وتحسين الموثوقيَّة .Redundancy تشترك نظم RAIDفي خصائص عا َّمة: تعمل األقراص مستقلَّة بعضها عن بعض أو بالتَّوازي. التكرار لتحسين الموثوقيَّة. تدخل نوعا ً من ِّ يراها نظام التَّشغيل قرصا ً منطقيَّا ً منفرداً. ت َّ قطع المعطيات في هذه النُّظم إلى 4شرائح. شرائح التي تستخدم حاليَّا ً السعات الفائضة لتخزين نسخ من ال َّ تستعمل ِّ (.)Parity 139 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه يمكن تصنيف RAIDإلى نوعين: الَّذي يتم الت َّح ُّكم به عن طريق نظم التَّشغيل. متخصصة في هذا المجال :وهي عبارة عن (جهاز تحكم ومعالج أجهزة ِّ صص) موجودان داخل األقراص التي تدير الذاكرة لتنظيم المعطيات مخ َّ داخليَّا ً دون تد ُّخل نظم التَّشغيل. قرص منطقي ٍ من أربعة أقراص فيزيائيَّة* *الحظ تشكيل ٍ ت َّم تقسيم RAIDإلى 7مستويات: :RAID 0 يتم في هذا المستوى تقسيم المعطيات إلى قطع Stripesبحيث يتم وضع َّأول مجموعة من القطع في األقراص على التَّرتيب ومن ث َّم إعادة تكرار العمليَّة حتى تشمل القطع جميع األقراص بالكامل. 140 المحاضرة -1- تاريخ :األربعاء 9/1/2019 *مثال على تقنيَّة RAID 0في حالة قرصين فقط* إيجابيَّات :RAID 0 عمليَّات القراءة والكتابة أفضل وزيادة في األداء. ال يوجد إهدار في المساحة َّ ألن األقراص يتم استعمالها بالكامل لتخزين معطيات مختلفة. سلبيَّة RAID 0هي عدم وجود نسخة عن أي قطعة في األقراص وبالتَّالي استحالة استرجاع المعطيات عند تلف أحد األقراص. مالحظات______________________________________________: ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ____________________________________________________ ___________________________________________________ 141 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 األول الدرس َّ تاريخ :الثالثاء 15/1/2019 :RAID 1 كذلك هو الحال كما في RAID 0يتم في هذا المستوى تقسيم المعطيات ولكن مع بعض التحسينات: يوجد نسخة طبق األصل عن كل قرص ( )Mirroringوبذلك تكون عملية االسترجاع سهلة عند تلف أحد األقراص. تتم عملية القراءة من القرص أو من النُّسخة عن القرص. تتم عملية الكتابة على القرص وكذلك على نسخته. عيب هذه الطريقة هو أنَّها غالية الثمن وكذلك فيها إهدار للمساحة ولكنَّها مضمونة في حال تلف أحد األقراص كما أسلفنا. الحظ في هذا الشكل القطع والنُّسخ عن القطع في RAID 1 صلب يعمل بأحد أنظمة RAIDولكنَّه ال مالحظة :يمكن استخدام نظام التَّشغيل لجعل قرصه ال َّ يعطي أدا ًء فيزيائيَّا ً فعليَّا ً كما لو كان القرص أساسا ً من النَّمط .RAID ي في نمط العمل و تقسيم األقراص :RAID 2 في هذا المستوى يوجد ٌ اختالف فعل ٌّ وكذلك يوجد اختالف في طريقة استرجاع المعطيات. بدأ يدخل مفهوم التَّزامن بين األقراص في هذا المستوى. يتم تقطيع األقراص إلى قطع صغيرة جدا ً من مرتبة الكلمة أو البايت. يتم تصحيح األخطاء عن طريق مجموعة ِّق َ طع معيَّنة ) (Stripsتس َّمى Check Sumوسبب وجودها هو من أجل استرجاع المعطيات في حال فقدانها ولكن ذلك يكلف وجود أقراص تس َّمى .Parity disks كلفتها أقل من كلفة RAID 1ولكنَّها غالية كذلك و هي تعد نوعا ً ما من التِّكرار ولكن بدالً من تخزين نسخة عن القرص كما هي؛ يتم تخزين ال.Parity 142 المحاضرة -2- محاضرة بنيان حاسوب رقم17 سادس الدَّرس ال َّ تاريخ :الثالثاء19/3/2019 مالحظة :عند ُّ َّ المخزنة السترجاع المعطيات. تعطل أحد األقراص يتم االستعانة بــ ِّParity ال يتم تخزين معلومات المستخدم على أقراص Parityفهي موجودة فقط من أجل تصحيح األخطاء واسترجاع المعطيات في األقراص األصليَّة. عند فقدان قيمة أحد البايتات بسبب عطل ما يمكن االستعانة بأقراص Parityلمعرفة ماهية البايت قبل فقدانه. الحظ في هذا الشكل األقراص األصليَّة وأقراص (RAID 2) Parity :RAID 3 هذا المستوى المتزامن قريب من RAID 2ولكن مع تخفيض عدد أقراص Parityووضع قرص Parityواحد فقط. يتم اكتشاف عدد أقل من األخطاء بسبب تقليل عدد أقراص .Parity مالحظة :يتم االستعانة بأقراص Parityإضافيَّة لزيادة وثوقيَّة المعطيات. تذكرة :التَّزامن يعني َّ أن الكتابة تتم على جميع األقراص في آن واحد على التَّوازي (راجع الصفحة .)136 فيه سرعة عالية من نقل المعطيات. *(*)RAID 3 143 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه :RAID 4 في هذا المستوى كل قرص يعمل بشكل منفصل (ال يوجد تزامن في الحالة العاديَّة). جيِّد من أجل طلبات (دخل\خرج) منفصلة. يكون حجم القطع كبيرا ً في هذا المستوى بما في ذلك القطع التي تؤلف قرص Parityبحيث كل قرص Parityيقوم بتخزين المعلومات الالزمة لتصحيح الخطأ واالسترجاع ألربعة قطع Stripsمختلفة. *الحظ أنَّ كل قرص Parityلديه معلومات لتصحيح الخطأ واالسترجاع ألربعة قطع Stripsمختلفة * :RAID 5 لوحظت مشكلة في أقراص RAID 4بأنَّها جميعا ً تعتمد على Parity disk في تصحيح األخطاء وقد تسبَّب ذلك باختناقات في هذا القرص لتزايد الضغط عليه. دوار على األقراص بحيث يكون يتم تخزين كل Stripمن ال Parityبشكل َّ هذا الـ Stripمسؤوالً عن تصحيح الخطأ في كل القطع Stripsالتي تقع على نفس الخط األفقي معه. شائع االستخدام في خوادم ال َّ شبكة لسرعته في التَّخزين. 144 المحاضرة -1- تاريخ :األربعاء 9/1/2019 *الحظ وجود كل Stripمن ال Parityفي أحد األقراص* :RAID 6 مثل نظام ،RAID 5لكن لزيادة الموثوقيَّة ت َّم استعمال مستوى ثان (قرص آخر) من ال.Parity هنا يتم تخزين ال Parityلكل خط أفقي على قرصين منفصلين لالحتياط في حال تلف أحد األقراص في لحظة ما ونالحظ في هذه الحالة أنَّنا نستطيع استرجاع كافَّة معلومات القرص التَّالف. *(*)RAID 6 *في ال َّ لكل سويَّة* شكل ال َّ سابق الحظ وجود قطعتين ِّ two parity strips األقراص ال َّ ضوئيَّة (الليزريَّة): في بداية ثمانينيَّات القرن الماضي ت َّم اختراع األقراص المضغوطة ()CD Compact Disks أو ما يس َّمى باألقراص الليزريَّة ،عندما بدأت هذه التِّقنيَّة كان الغرض األساسي من وجودها هو صوت وقد ش َّكلت ثورة ً في نقل المعلومات بحد ذاتها لعدم وجود تشغيل الوسائط التي تتعلَّق بال َّ 145 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه السعة كانت سعة كل قرص وسائط تخزين بسعتها وبسرعتها في ذلك الوقت ،وفي الحديث عن ِّ تقارب 700ميغا بايت .ظهر بعدها عدَّة أجيال الحقة أتاحت الكثير من العمليَّات عليها. *صورة لمدير شركة مايكروسوفت بيل غيتس وهو جالس على برجٍ عا ٍل من الورق ليُظهر مدى سعة القرص المضغوط وهي تُقارب 330,000ورقة* يتألَّف القرص المضغوط ( )CD-ROMمن: -Aقرص من مادَّة مرنة (البالستيك أو األكريليك). -Bطبقة رقيقة ج َّدا ً من األلمنيوم وظيفتها جيد للضَّوء. تأمينَ انعكاس ِّ -Cطبقة عازلة من مادَّة األكريليك. -Dيمكن إضافة طبقة تجميليَّة من قبل ال َّ شركة المصنِّعة (اختياري). مصدر الضَّوء اللَّيزري 146 المحاضرة -1- تاريخ :األربعاء 9/1/2019 عمليَّة الكتابة :في أقراص CD-ROMكانت الكتابة تتم لدى ال َّ صنِّعة. شركة الم َ عمليَّة القراءة :تتم بتسليط ضوء ليزري على القرص وقياس شدَّة االنعكاس منه لمعرفة قيمة البت الذي ت َّمت قرا َءته. تعرجات تقسم َّ الطبقة التي تتم القراءة منها إلى مستويين ()Lands And Pits الحظ وجو َد ُّ وهي حفَر ونتوءات: عند وجود استمرار في النُّتوء المقروء أو الحفرة المقرو َءة يتم ترجمة هذا االستمرار إلى أصفار. عند وجود تغيُّر (حفرة/نتوء) أو تغيُّر (نتوء/حفرة) يتم ترجمة هذا التَّغيُّر إلى واحدات. مالحظة :في القرص المضغوط يكون التَّخزين على مسار واحد ( )Spiralوهو حلزوني كما فسر َّ سرعة أن ال ُّ يوضَّح الشكل المرافق وهو يبدأ في مركز القرص وينتهي في آخره ،وهذا ما ي ِّ الخطيَّة ثابتة للقرص المضغوط. ِّ صفات المسار الحلزوني لـ: CD-ROM طوله .5.27Km الخطيَّة للقراءة تساوي .1.2𝑚𝑠 −1 سرعة ال ُّ ِّ ومن الممكن أن تتضاعف حتى 24مرة كحد أقصى. سعة تخزين صوت تساوي 𝑠𝑒𝑡𝑢𝑛𝑖.73.2m كثافة وضع البتَّات منتظمة عليه. 147 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه صلبة كان التَّخزين على شكل Tracksتشترك بالمركز وكانت سرعة تذكرة :في األقراص ال َّ القرص َّ تتحرك حركةً انسحابيَّة. والرأس َّ الزاويَّة ثابتة َّ الرأس يبدأ القرص بالدَّوران بشكل الحظ أنَّه عند البحث عن معطيات بعيدة عن مكان وجود َّ أسرع حتى يصل إلى تلك المعطيات. الحظ أيضا ً َّ أن ال Spiralيقسم إلى قِّطاعات طول كل منها هو 𝑠.2352 Byte بنية كُل قطاع ( )Sectorفي ال: Spiral يتألَّف ال ِّقطاع الواحد من التَّالي: :SYNCوهو عبارة عن شارة البداية ِّل َّ قطاع جديد. يشكل عنوان ال Sectorمع أنماط عمل هذا ال Sectorوهو يتألَّف من ثالثة أنماط :IDهو ِّ مختلفة وهي كما يلي: َّ :Mode 0 في هذا النَّمط يتم تحديد ال ِّق َّ كقطاع فارغ لم يتم استعماله. طاع 148 المحاضرة -1- تاريخ :األربعاء 9/1/2019 :Mode 1 هذا النَّمط يتيح تخزين 2048بايت من المعطيات مع 288بايت وظيفتها هي تصحيح األخطاء. :Mode 2 هذا النَّمط يتيح تخزين 2048بايت واستخدام ال 288بايت األخرى من أجل التَّخزين كذلك وبهذا تصبح سعة التخزين في الSector هي 2336بايت ولكن بدون أي ِّ تصحيح للخطأ. َّ القطاع. :DATAهي معطيات المستخدِّم الَّتي يحويها هذا :L-ECCهي البايتات الَّتي تستعمل إما لتصحيح الخطأ أو للتخزين كما أسلفنا. الوصول العشوائي في :CD-ROMهذه َّ سبب هو َّ أن الطريقة بطيئة بالنسبة للمستخدم وال َّ الرأس تكون مشغولةً بالقراءة من قطاع ما ويطلَب منها القراءة من قطاع آخر بعنوان معيَّن َّ فتضطر الرأس إلى البحث عن عنوان القطاع في كل القرص. هنا يوجد بعض التقريب ،أي َّ الرأس تذهب إلى مكان تقريبي لوجود ال ِّقطاع ثم تقوم بالبحث أن َّ تسلسليَّا ً عنه حتى تجده. عيوب الوصول العشوائي: بطيء. سرعة َّ السواقة َّ الزاويَّة يقوم بإجهاد ألن عمليَّة القراءة ستتض َّمن معادلة ال ُّ َّ لدوران القرص وكذلك نبذة عن :CD-ROMكان ظهور القرص المضغوط نقلةً نوعيةً في أوائل الثَّمانينيات من حيث التَّخزين والوزن والمتانة وقابليَّة تشغيله على أكثر من جهاز ولكن مع ذلك رافقت هذه الميزات سلبيَّات والتي تتض َّمن البطء في القراءة وكذلك أنَّه للقراءة فقط. بعض ال َّ لذلك كان ال بُ َّد أن توجد بعض التَّطويرات على هذا القرص. )( :CD-Recordable(CD-Rكان مشهورا ً وغاليا ً وفي بداياته وما زال موجودا ً حتى اآلن). :WORM (Write Once/Read Many) هذا القرص دعم ميزة الكتابة مرات عديدة. عليه ولكن لمرة واحدة فقط مع إتاحة القراءة َّ سواقات CD-ROMمن حيث القراءة. يتوافق مع َّ بالليزر وعن طريق هذا طريقة الكتابة تتم عن طريق مادة صبغيَّة تتأثَّر ِّ الليزر يتم تحديد ما إذا كانت ِّق َيم البتَّات واحدات أم أصفار. 149 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه ):CD-Read\Write(CD-RW هو القرص األكثر استعماالً من عائلة CDوالمعلومات عليه قابلة للمحي. الرخص بسبب تنافس ال َّ شركات على صناعته. بقي سعره مائالً إلى ُّ سواقات الَّتي تدعم القراءة من أقراص CD-ROMتستطيع القراءة معظم ال َّ منه. نمط الكتابة يعتمد على نظام الحاالت Phasesأي أنَّه في كل بت من القرص يوجد حالتين هي 0منطقي وكذلك 1منطقي وك ُّل ما يتم فعله هو القيام بتغيير الحاالت وبذلك يتغيَّر انعكاس الليزر عن كل حالة وبالتَّالي تغيُّر قيم البتَّات المقرو َءة. سابقة *بعد النَّجاح في الحصول على نموذج من CDقابل للمحي والكتابة وبالميزات ال َّ أصبحت زيادة السعة هي الهدف األساس للجيل القادم من األقراص وهي *DVD :DVD Technology صار التَّخزين معتمدا ً على وجهي القرص وبالتالي أصبح هناك رأس للقراءة وللكتابة على كل من الوجهين وبالتَّالي مضاعفة سعته. عززت هذه التِّقنيَّة مفهوم تعدُّد ال َّ َّ السعة طبقات الذي قام بدوره بمضاعفة ِّ على كل من الوجهين من القرص. الخطيَّة لدوران القرص وهذا سرعة ت َّم تقليل المسافات بين البتَّات وزيادة ال ُّ ِّ السعة. ما أدَّى كذلك إلى مضاعفة ِّ سابقة تصبح لدينا سعة القرص هي ثمانية نتيجة :عند تطبيق المضاعفات ال َّ أضعاف السعة القديمة. مفهوم تعدُّد ال َّ طبقات: يقوم على وضع طبقتين أو أكثر من البتَّات بحيث يتم تغيير تردُّد الليزر الَّذي يقوم بالقراءة وبالتَّالي يقرأ مرة ً من َّ الطبقة األولى ويقرأ مرة ً من َّ الطبقة الثَّانية. 150 المحاضرة -1- تاريخ :األربعاء 9/1/2019 نعود إلى خصائص :DVD سعته عالية ج َّدا ً لدرجة أنَّه يصل إلى 4.7Gفي َّ الطبقة الواحدة. الدقَّة 720pعليه بالكامل. يمكن وضع فلم عالي ِّ سماكة وال َّ شكل من أجل أن يصب َح ت َّم اعتماد نموذج قياسي منه من حيث ال َّ إنتاجه مو َّحداً ،وهذا أدَّى إلى حل الكثير من المشاكل. بعض المشاكل في القراءة بين األقراص: األول من .DVD-W سواقات أقراص DVDال تقرأ أقراص الجيل َّ َّ األول من DVDال تقرأ أقراص .CD-RW سواقات الجيل َّ َّ ت على لذلك سوق ويثب َ انتظر كل من يريد شراء أقراص DVDإلى االنتظار حتى يهدأ ال ُّ َ نموذج مو َّحد من أقراص .DVD فرق القراءة بين كل من قرصي CDو:DVD الحظ كيفيَّة القراءة من القرص CD-ROMوكذلك سعته. الحظ كيفيَّة القراءة من القرص DVDوكذلك سعته. 151 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه أجيال الحقة من األقراص ظهرت الحقاً: ت َّم تصميم أنواع هذه األقراص من أجل استيعاب أفالم بدقَّة عالية ج َّدا ً مثل 1080 Full-hd وكذلك 4Kوغيرها من الدقَّات العالية. سواقات هذه األقراص بنفس َّ سواقات DVDولكن الفرق هو َّ أن الطريقة التي تعمل بها َّ تعمل َّ طول موجة الليزر فيها يكون أقصر وبالتَّالي يمكن زيادة كثافة النتوءات Pitsفي أقراصها السعة. وهذا ما يتسبَّب بزيادة ِّ :HD-DVD يصل حجمه إلى 𝑠𝑒𝑡𝑦𝐵 𝑎𝑔𝑖𝐺 15في ال َّ طبقة الواحدة. :Blu-ray oتكون طبقة المعطيات فيها أقرب إلى ليزر القراءة وبالتَّالي زيادة المصمم من زيادة كثافة النتوءات وبالتَّالي يمكن ِّ تركيز الليزر وهذا ِّ تصبح المساحة أعلى. oيصل فيها حجم ال َّ طبقة الواحدة إلى 𝑠𝑒𝑡𝑦𝐵 𝑎𝑔𝑖𝐺 .25 مرة واحدة وكذلك قابلة oيتوفَّر منه أقراص قابلة للقراءة فقط وللكتابة َّ مرات عديدة. للقراءة والكتابة َّ سابق ،في أقراص CDكان الطول الموجي لليزر الذي يقوم بالمسح كبيرا ً الحظ ال َّ شكل ال َّ وبالتَّالي كانت النتوءات كبيرة لكي يال َح َ تطور الليزر وجعل طول الموجة ظ االنعكاس ،مع ُّ أصغر أصبح باإلمكان وضع بتات أكثر في نفس المساحة. الحظ الفرق الهائل في الت َّ ُّ سابقة. وزع بين أنواع األقراص ال َّ 152 المحاضرة -1- تاريخ :األربعاء 9/1/2019 األشرطة الممغنطة: هي عبارة عن تقنيَّة ظهرت في أواخر التِّسعينات ،هي تقنيَّة بطيئة ورخيصة ج َّدا ً وتصل إلى سعات عالية جدا ً مثل 𝑠𝑒𝑡𝑦𝐵𝑇 6.4توضع عليها المعلومات التي نادرا ً ما تستخدم و كذلك تستخ َدم األشرطة الممغنطة في أرشفة المعلومات. يتم النَّفاذ إلى المعطيات بشكل تسلسلي فعند البحث عن معلومة ما يتم البحث في الشريط من بدايته حتى الوصول إلى المعلومة الهدف ويمكن تقديم الشريط أو ترجيعه ( )Forward/Backwardمن المكان الحالي لرأس القراءة. ظهرت من األشرطة الممغنطة العديد من األجيال هي LTOنترك للقارء االستنارة بمعرفة المزيد عنها. *****نهاية ال َّدرس السادس ***** 153 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 األول الدرس َّ تاريخ :الثالثاء 15/1/2019 سابع***** *****بداية ال َّدرس ال َّ مقدمةَّ : إن الحاسوب يتعامل مع الكثير من وحدات اإلدخال التي تختلف فيما بينها من حيث سرعة والتَّصميم فمنها لوحة المفاتيح (أزرار) وكذلك الفأرة طريقة التَّعامل مع المستخدم وال ُّ ساس حركة) والمايكروفون(صوت) والكثير من َّ الطرفيَّات األخرى .كذلك ،تختلف (أزرار وح َّ طريقة عرض المعطيات في وحدات اإلخراج ومثاالً على ذلك طريقة عرض المعلومات عن طريق ال َّ شاشة وكذلك طريقة عرض المعلومات عن طريق الطابعة وغيرها. سبب كانَ ال ب َّد أن توج َد طريقة لكيال يتعامل المعالج مع هذه الطرفيَّات بشكل مباشر وال َّ أن هذه َّ الرئيسي هو َّ الطرفيات ال ترتبط بـ ِّ BUS Systemالخاص بالحاسوب لذلك ت َّم اللُّجوء َّ إلى نموذج دخل\خرج ( )Input/ Output Moduleالَّذي يقوم بالتَّعامل مع ا َّ لطرفيَّات بدالً عن المعالج. تعريف :I/O Moduleهو عبارة عن واجهة تستطيع التَّعامل مع الذَّاكرة والمعالج من جهة وكذلك تستطيع التَّعامل مع طرفيَّة من طرفيَّات الجهاز أو أكثر من جهة أخرى. *شكل يبين كيفيَّة ارتباط I/O Moduleبتوصيالت الحاسوب الدَّاخليَّة* 154 المحاضرة -2- محاضرة بنيان حاسوب رقم18 سابع الدَّرس ال َّ تاريخ :األربعاء17/3/2019 تصنيف وحدات I/Oبحسب طريقة نقل البيانات مع ال َّ طرفيَّات: -1وحدات قابلة للتَّعامل مع المستخدم :ومنها لوحة المفاتيح والفأرة وكذلك الشاشة والطابعة وغيرها. -2وحدات قابلة للتَّعامل مع اآللة :تكون عبارة عن أجهزة وظيفتها المراقبة والتَّح ُّكم. صة بالتَّواصل مع األجهزة البعيدة ومثاالً على ذلك -3وحدات االتصال :هذه الوحدات خا َّ يمكن تصنيف بطاقة ال َّ شبكة ( )NICوالمودم ( )Modemفي إطار هذه الوحدات. بنية الجهاز الخارجي: طط إجمالي يبين البنية العا َّمة ألحد ال َّ * مخ َّ طرفيَّات* الحظ وجود Control Logicالَّذي وظيفته هو قراءة حالة I/O Moduleإن كان جاهزا ً أم ال ،كذلك الحظ وجود Bufferالمسؤول عن نقل المعطيات من وإلى النَّموذج. ساس يختلف باختالف البيئة يقوم بتحويل ما يتم في حالة الدَّخل يوجد ح َّ قياسه إلى معطيات قابلة للقراءة من قبل الحاسوب. محول يختلف أيضا ً باختالف البيئة يقوم بتحويل في حالة الخرج يوجد ِّ المعطيات القادمة إليه إلى معطيات قابلة للقراءة من قبل المستخدم أو اآللة أو وحدة االتصال. قام I/O Moduleبإراحة ال CPUعن مه َّمة التَّعامل مع َّ الطرفيات وبالتَّالي تسريع أداء الحاسوب بشكل كبير. 155 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه وظائف :I/O Module التح ُّكم بأجهزة ال َّدخل والخرج وتوقيتها أي جعلها تعمل على ساعة محددة تناسب سرعتها. استالم أوامر القراءة والكتابة من ال CPUوارسال الحالة والمعلومات المستلمة من الجهاز المستخدم إلى ال. CPU توصيل أوامر ال CPUالخاصة بالقراءة والكتابة إلى الجهاز الهدف واستالم البيانات الموافقة منه. تخزين المعطيات المأخوذة من أحد أجهزة الدخل أو من المعالج. إجراء التحويل المناسب على المعطيات لنقلها إلى أحد وحدات اإلخراج. اكتشاف مصادر األخطاء التي تحصل في أجهزة الدخل أو الخرج تمهيدا إلرسالها إلى ال. CPU بع َد معرفة وظائف I/O Moduleال ب َّد من معرفة ال َّ طريقة الَّتي يقوم بها هذا النَّموذج بالتَّعامل مع المعالج. عند طلب عمليَّة إدخال أو إخراج يقوم المعالج بفحص حالة I/O Moduleفيقوم النَّموذج بإرسال حالته للمعالج وفي حال جاهزيَّة هذا النَّموذج يقوم المعالج بطلب نقل للمعطيات. في حال كانت العمليَّة هي عمليَّة إدخال ،يتلقَّى النَّموذج المعطيات من المعالج. في حال كانت العمليَّة هي عمليَّة إخراج ،يقوم النَّموذج بنقل المعطيات إلى المعالج. انظر إلى الشَّكل التَّالي: عند استخدام النَّموذج ( )I/O Moduleيتم تخزين المعطيات في Data Registersريثما يتم نقلها وكذلك عند استخدام أكثر من طرفيَّة مربوطة بالنَّموذج يقوم بوضع حالة كل طرفيَّة في .Status/control Registers الحظ خطوط التح ُّكم والعناوين والمعطيات. 156 المحاضرة -1- تاريخ :األربعاء 9/1/2019 تنويه I/O Module :له عنوان وهذا العنوان وحيد وله فقط بالضَّرورة. تقنيَّات الدَّخل والخرج: يوجد ثالثة تقنيَّات سيتم شرح كل منها على حدة: -Aالدخل والخرج ال ُمبرمج (:)Programmed I/O في هذه َّ الطريقة عند تنفيذ برنامج ومالحظة َّ أن التَّعليمة المقروءة هي عبارة عن تعليمة تفاعل مع أحد َّ الطرفيَّات يتم ما يلي مع العلم َّ أن العمليَّة هي عمليَّة قراءة: -1يقوم ال CPUبطلب أمر قراءة من.I/O Module -2يقوم ال CPUبقراءة حالة .I/O Module في حال كان I/O Moduleجاهزا ً ينتقل للخطوة التَّالية (.)status bit =1 في حال لم يكن جاهزا ً يرجع للخطوة 2 (.)status bit =0 في حال وجود خطأ تتم مقاطعة العمليَّة. -3يقوم ال CPUبقراءة كلمة واحدة فقط من I/O .Module -4يقوم ال CPUبكتابة الكلمة التي قرأها في الذَّاكرة. -5في حال االنتهاء يتم االنتقال إلى التعليمة التَّالية. الرجوع إلى التعليمة .1 -6في حال عدم االنتهاء يتم ُّ *يمكن إعادة ذات العمليَّة ولكن في حالة الكتابة بأسلوب مماثل* الحظ َّ أن هذه التِّقنيَّة تجعل ال CPUفي حالة انتظار دائم سبب هو َّ أن ال CPUال يعلم الموعد الحقيقي النتهاء العمليَّة حتَّى إنهاء كامل العمليَّة وال َّ المذكورة وال يوجد أي مقاطعة من قبل النَّموذج بحيث تع ِّلم ال CPUإذا انتهت العمليَّة أم ال، ت لذلك يتم الفحص بشكل دوري على حالة ،I/O Moduleبذلك يكون هناك ضياعٌ لوق ِّ َ المعالج على الرغم من بساطة َّ الطريقة. 157 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه مع ذلك هذه َّ سس الطريقة تجعل لل CPUسيطرة ً تا َّمة على الدَّخل والخرج من حيث تح ُّ الحاالت ومن حيث توجيه أوامر القراءة والكتابة وكذلك من حيث نقل المعطيات. األوامر الممكن طلبها من :I/O Module يمكن لل CPUطلب أوامر التَّح ُّكم بحيث يخبر I/O Moduleبما عليه سواقة فعله ،ومثاالً على ذلك هو التَّح ُّكم بسرعة دوران القرص في َّ األقراص. يمكنه فحص حالة I/O Moduleفي حال كان هناك خطأ أو إذا كان جاهزا ً أم ال كما أسلفنا. يمكنه التَّفاعل مع I/O Moduleمن حيث قراءة المعطيات وكتابتها. يمكن لل CPUطلب عنوان I/O Moduleبحيث يقوم بتعريفه وكذلك يقوم بعنونة كل جهاز متَّصل بالنَّموذج. هناك طريقتان لعنونة أجهزة I/Oوهي: :Memory Mapped I/Oفي هذه الحالة تتشارك األجهزة مع الذَّاكرة في مجال العناوين ومحاسن هذه َّ الطريقة تكمن في إمكانيَّة عنونة عدد كبير من أجهزة I/Oبحيث يكون كل I/O هو بمثابة عنوان في الذاكرة يت ُّم القراءة منه وكذلك الكتابة عليه ،في هذه َّ الطريقة ال يمكن صة بطرفيَّات .I/O إنشاء تعليمات خا َّ :Isolated I/Oفي هذه الحالة يكون لكل من الذَّاكرة وطرفيَّات I/Oمجال هناك عناوين مختلف وبالتَّالي يكون َ عد ٌد محدَّد مسمو ٌح به من َّ الطرفيات، في هذه َّ الطريقة يمكن إنشاء تعليمات صة بـ ِّ I/Oفقط بحيث أنَّها تحتاج خا َّ إلى خطوط Selectلتحقيق ذلك. 158 المحاضرة -1- تاريخ :األربعاء 9/1/2019 *شكل يبين الفرق بين الطريقتين *Isolated & Memory Mapped ترك للقارئ التَّم ُّعن في كل من َّ سابقتين. الطريقتين ال َّ ي َ -Bالدخل والخرج المقود بنظام المقاطعات (:)Interrupt Driven I/O هذه َّ الوقت الَّذي يقضيه الطريقة تختصر الكثير من َ المعالج أثناء انتظاره حتَّى تكون طرفيَّة I/Oجاهزة ً سبب فيها هو تزويد طرفيَّة I/Oبنظام مقاطعة للمعالج وال َّ بحيث أنَّها عن َد جاهزيَّتها تخبر المعالج بذلك. -1يطلب ال CPUأمر قراءة من I/O Moduleويقوم بأداء عمل آخر حتى تصله مقاطعة من َّ الطرفيَّة. -2تصل مقاطعة إلى ال CPUمع حالة .I/O Module في حال كان I/O Moduleجاهزا ً ينتقل للخطوة التَّالية (.)status bit =1 في حال وجود خطأ تتم مقاطعة العمليَّة. -3يقوم المعالج بقراءة كلمة واحدة فقط من I/O .Module -4يقوم ال CPUبكتابة الكلمة التي قرأها في الذَّاكرة. -5في حال االنتهاء يتم االنتقال إلى التعليمة التَّالية. 159 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه الرجوع إلى التعليمة .1 -6في حال عدم االنتهاء يتم ُّ *يمكن إعادة ذات العمليَّة ولكن في حالة الكتابة بأسلوب مماثل* نتعرف التَّجهيزة ،من بين عدَّة تجهيزات ،الَّتي أصدرت كيفيَّة التَّعامل مع مقاطعات متعددة( :أي كيف َّ المقاطعة؟). هناك 4طرق للتَّعامل مع المقاطعات المتعدِّدة: الطريقة جيِّدة في حال ِّة عدد محدود من َّ -1خط مقاطعة منفرد لكل :I/O Moduleهذه َّ الطرفيَّات َّ ألن هناك عد ٌد منته من خطوط المقاطعة. :Software Poll -2عند قدوم مقاطعة إلى ال ،CPUيقوم ال CPUبالمرور على كل نموذج I/O وسيئة هذه َّ الطريقة أنَّها بطيئة. على حدة حتى يصل إلى النَّموذج الَّذي رف َع المقاطعة ِّ :Daisy chain (Hardware Poll) -3في هذه َّ الطريقة ،عند قدوم مقاطعة إلى ال ،CPUيقوم ال CPUبإرسال إقرار مقاطعة إلى ال Busالمشترك بين نماذج I/Oفيقوم النموذج الَّذي قام بالمقاطعة بإرسال Vectorيحمل عنوانه إلى ال CPUوبذلك يعلم ال CPUمن أرس َل المقاطعة بالتَّحديد. :Bus Master -4في هذه َّ الطريقة كل نموذج I/Oيجب أن يستحوذ على ال BUSحتى يقوم بإرسال المقاطعة .مثال.)PCI , SCSI( ، سؤال مهم :ماذا لو قام جهازان برفعِّ مقاطعة بنفس الوقت؟ جواب( :األولويَّة مه َّمة في كل ال ُّ طرق) بحيث يتم تخديم النَّموذجِّ ذي األولويِّة األعلى إال في Bus Master بحيث ال يوجد أي نموذج يستطيع المقاطعة عدا ال Masterالحالي لل. BUS -Cالنَّفاذ المباشر للذَّاكرة (:)Direct Memory Access هو عبارة عن نموذج I/Oإضافي يقوم بالتَّكفُّل بمه َّمة التَّعامل مع نماذج I/Oوهو موجود على الBUS الخاص بال CPUونماذج .I/O وال َّ طريقة بكل بساطة هي: 160 المحاضرة -1- تاريخ :األربعاء 9/1/2019 -1يقوم المعالج بإخبار الَّ DMA بأن هناك عمليَّة قراءة أو كتابة. -2يقوم ال DMAبتبادل المعطيات مع الذاكرة الرئيسيَّة من دون تد ُّخل المعالج وبعد انتهاء نقل المعطيات من ،I/O Moduleيقوم بمقاطعة المعالج إلعالمه بانتهاء العمليَّة. إذا ً ما هي بنية DMAوما هي آليَّة عمله؟ َّ سجالت المعطيات والعناوين يحوي DMAمجموعة من وكذلك فيه نظام تح ُّكم ،مع عدد من خطوط المعطيات وخطوط العناوين مضافا ً لها ما يحتاجه ال DMAلتحقيق وظيفته الَّتي تقتضي عدم تكليف ال CPUأي عناء بما يتعلَّق بمسألة التَّعامل مع طرفيَّات الدَّخل والخرج. آلية عمل :DMA -1 -2 -3 -4 يقوم المعالج بإخبار DMAبما يلي: نوع العمليَّة المطلوبة (قراءة -كتابة). عنوان َّ الطرفيَّة المقصودة. عنوان البداية للمعطيات في الذَّاكرة. حجم هذه المعطيات. يذهب ال CPUلعم ِّل أشياء أخرى وفي هذا الوقت يقوم ال DMAبالتَّفاعل مع َّ الطرفيَّة. يقوم ال DMAبعمل ما يس َّمى Cycle Stealingلنقل المعطيات من I/O Moduleإلى الذَّاكرة كلمةً تلو األخرى. يقوم DMAبإرسال مقاطعة تخبر الCPU بأنَّه قد انتهى من العمل. تعريف :Cycle Stealingهو قيام ال DMAبأخذ BUSالمعطيات من CPUواستغالل هذا ال BUSفي إرسال المعلومات إلى الذَّاكرة من طرفيَّة I/Oأو استقبال المعطيات من الذَّاكرة ووضعها في طرفيَّة I/Oويكون ال CPUمتوقِّفا ً في هذا الوقت (لمدَّة دورة تعليمة). طبعا ً بما َّ أن هذه العمليَّة تقوم بإيقاف ال CPUلمدَّة الطرق هذه هي َّ دورة تعليمة فسيكون هناك بعض البطء ولكن بالمقارنة بباقي ُّ الطريقة األسرع على اإلطالق. الحظ الشَّكل الَّذي على اليسار: 161 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه الحظ َّ أن ال DMAيقوم بأخذ ال Busفي كل تعليمة Fetchأو .Store مالحظات________________________ : ______________________________ ______________________________ ______________________________ ___________________________________________________________ ___________________________________________________________ إعدادات :DMA :Detached DMA Controller oفيها يكون كل من المعالج وال DMAوطرفيَّات I/Oوكذلك الذَّاكرة على نفس ال. BUS oرخيصة ولكنَّها غير فعَّالة. oيتم صرف دورتي تعليمة لقراءة كلمة مثالً( ،)I/O → DMA then DMA → Memoryوبالتَّالي إيقاف المعالج مؤقَّتا ً لدورتين كذلك. :Integrated DMA Controller oال تقع َّ الطرفيَّات على ال BUSبل لها اتصال مباشر بال. DMA oكل عمليَّة نقل تستهلك دورة تعليمة واحدة (.)DMA → Memory oيمكن لل DMAأن يرتبط بأكثر من جهاز من الطرفيات ويجب أن يكون لدى DMAواجهة لكل .I/O Module :Separate I/O BUS 162 المحاضرة -1- تاريخ :األربعاء 9/1/2019 oأصبح هناك BUSخاص يربط جميع طرفيَّات I/Oبـ ِّ DMAوهذا ما يخفض عدد واجهات DMA مع .I/O Modules oكل عمليَّة نقل تستهلك دورة تعليمة واحدة (.)DMA → Memory تقنيَّة :FLY-BY تمر مرورا ً من ال BUSالمشترك بين الطرفية والذاكرة دون المرور أو هذه التِّقنيَّة تجعل المعطيات ُّ التخزين بال DMAبحد ذاته ،وبذلك يمكن لل DMAأن ينقل المعطيات بين منفذ I/Oوالذَّاكرة مباشرةً. سابع ***** *****نهاية ال َّدرس ال َّ مالحظات______________________________________________________: ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ 163 المحاضرة -1- األول الدرس َّ تاريخ :األربعاء 9/1/2019 تنظيم الحاسوب ووظائفه ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ 164 المحاضرة -1- تاريخ :األربعاء 9/1/2019