الأحد، 18 نوفمبر 2012
الأربعاء، 7 نوفمبر 2012
شرح عربي معماريه حاسوب
الشرح منقول من منتديات
الحاسب الالي
الهندسة المعمارية ..هي عبارة
عن البنـــــــــاء للحاسب
أعطيك مثال لو كان هناك مهندس
معماري
للمنازل
راح يعطيك بنــــــــاء و هندسة للمنزل الذي تريده و
يرسمه
لك على أوراق و يصمم لك المداخل و المخارج ..
بالزبط كذلك الأمر في هندسة المعمارية للحاسب ..
راح ترى البناء الداخلي و الخارجي للحاسب
و شلون تدخل و تطلع منه البيانات و يعالجها
لك لتراها ..
...................
طيب هناك فرق كبير لازم يتضح لكم بين
الأركيتكتشر و تنظيم الحاسبات ؟؟
الأركيتكتشر : هو عبارة عن الخواص المرئية للمبرمج
وهي غالباً تعتمد على الأوامر
الأوامر اللي يعطيها المبرمج
للجهاز.. يعني
شيء
مو ملموس لكن نشوفه و نقدر
نستخدمه
أما التنظيم
: تعني كم من المميزات طبقتها ؟
وهي تهتم بالهاردوير
:::::::::
إذاً
أركي == أوامر
Instruction
تنظيم == هاردويرHardware
التعاريف كتبتها لكم في
السلايدات المرفقة
>>>>
الشرح هنا لتفهم النظرة و تعرف نقطة الانطلاقة
في معلومة حلوة وهي أن تنظيم الحاسب
يختلف بإختلاف الفيرجن
الإصدار..يعني كل ما
جاء
إصدار جديد من الحاسب يختلف تنظيمها
للمكونات و الهاردوير ..^^ لكن الآلية هي
للمكونات و الهاردوير ..^^ لكن الآلية هي
وحدة حتى لو بتلاحظوا مثلاً في أجهزة الابتوبات
والـps شركة سوني يختلف تنظيمها عن الديل
وأبل ما كنتوش يختلف تنظيمها عن IBM
بس كلها تعمل بنفس الآلي ..
هم بعد لو قارنت IBM بمراحل
إصداراته كل مرحلة راح يختلف تنظيمها عن الثانية
بالرغم إنهم من عائلة وحدة و شركة واحدة
( التركيــــــــــبStructure)
هو عبارة عن الطريق الذي تتعلق فيه المكونات
مع بعضها البعض..
( الوظيـــــفةFunction)
هي العملية الفردية كجزء من مكونات التركيب ..
فهمتوا شيء أخس من كذ يشرح لنا ..
لكن راح افهمها لكم وما تطلعوا بإذن الله
تخيلوا وياي أن الستركتشر هو عبارة
عن طريق و شارع
و داخله فيه مربعات اسميهم مكونات
هالمكونات بينهم زيارات وعلاقات ..
لكن لو كانت الزيارات بينهم بدون فائدة و بدون
وظيفة أو عملية هل راح تصير علاقتهم لها أي فائدة؟؟
إذا نستنتج أن
الوظيفة هي عبارة عن عمليات في المكون وهالمكون
هو جزء فردي من التركيييب لذلك اخرجت مربع
في الصورة لوظيفة مكون تعبيرا على أنه جزاء
من التركيب
::::
فوجه الشبه الطريق هو كصندوق الحاسب الآلي
المربعات اللي في الطريق هي المكونات كالقطع الداخلية
مثل الرام الروم...إلخ
القرص الصلب المذر بورد أي شيء ملموس
و أقدر امسكه أسميه مكون
أما الوظيفة هي العمليات الغير مرئية للمكون
وش فائدة جهازك و مكوناته إذا لم يكن له وظيفة
و نحنا بالغالب نستخدم الجهاز الآلي لوظيفة معينة ؟؟
وش هي ؟؟ لا تتعب حالك بالتفكير
طل قدامك و استنتج
و سأل وش وظيفة الحاسب الآلي ؟
مو لنقل البيانات
مو لمعالجة البيانات
مو للتحكم و التعديل بها
مو وظيفته عشان نخزن بيانات ..
فالخلاصة من يوم ما تسمع
ستركتشر = التركيب
داخله.. هاردوير = مكونات = قطع
فلو قلت لك و ش هو الستركتشر حق الكمبيوتر؟
لا تخاف من كلمة ستركتشر
وطالع في كمبيوترك بشجاعة وحط في بالك تركيبه
وقول مثله
I love my computerمنقووووووووووووووووووووووووول
.............
بعد كذا وش وظيفة الهندسة المعمارية ..و التنظيم
إنك ترسم و تبني هالتركيب على ورق ..
ثم تفهم الآلية ..
هذا ستركتشر للـcpu
وهذا تركيب ستركتشر للـCU
..........
طيب لو أنا عندي هالكثر من المكونات
و بسعة و جودة ممتازة دون أن تؤدي لي و ظيفة ؟؟
هل راح تفيدني الكفاءة ..
أكيد لا
لو عندي ماذربورد و فيها رام و روم ومعالجات
من شركات معروفة و ذات جودة ممتازة دون
أن تعمل وظيفة أو أشغلها هل راح يصير له فائدة ؟؟
إذا .. الوظائف هي العمليات إللي تشغل
هالمكونات وضحت
فأجي أسوي عملية معالجة ,وتخزين للبيانات
وحطوا في بالكم أننا نقوم في الهندسة المعمارية بماذا..
ببناء هالآلية و رسمها على ورق لنرى
كيف تنتقل هالبيانات ..وكاننا نراها
يعني الكتاب كله رسمات هندسية على ورق
للحساب و مكوناته و ووظائفه و تشرح لك في الجامعة
فهمتوا معنى هندسة
أضرب لك مثال .. لوظيفة عملية
الـData movement
حركة البيانات داخل لجهاز ..
راح تنقل و تحرك البيانات و تتحكم
فيها تماما بإتجاه السهم ..على حسب الأمر
إللي إنت تعطيه إياه ..و لو تلاحظ
ما جاء ولا مر على دائرة التخزين
لأن الوظيفة اللي نبيها فقط نقل البيانات
وهم بعد ما مر على دائرة المعالجة لأن الوظيفة
والأمر إللي حنا نبيها هي النقل ..
وضحت الصورة ..
....:::....
حاولت الشرح على صور السلايد فقط
ليتم الربط و الفهم ..
و يسهل حفظ التعاريف العلمية ..
و أي سؤال حاضرين للطيبين و إللي يبي يضيف
فباب العلم و مجاله مفتوووح لكم
في حفظ الله
بعد كذا وش وظيفة الهندسة المعمارية ..و التنظيم
إنك ترسم و تبني هالتركيب على ورق ..
ثم تفهم الآلية ..
هذا ستركتشر للـcpu
وهذا تركيب ستركتشر للـCU
..........
طيب لو أنا عندي هالكثر من المكونات
و بسعة و جودة ممتازة دون أن تؤدي لي و ظيفة ؟؟
هل راح تفيدني الكفاءة ..
أكيد لا
لو عندي ماذربورد و فيها رام و روم ومعالجات
من شركات معروفة و ذات جودة ممتازة دون
أن تعمل وظيفة أو أشغلها هل راح يصير له فائدة ؟؟
إذا .. الوظائف هي العمليات إللي تشغل
هالمكونات وضحت
فأجي أسوي عملية معالجة ,وتخزين للبيانات
وحطوا في بالكم أننا نقوم في الهندسة المعمارية بماذا..
ببناء هالآلية و رسمها على ورق لنرى
كيف تنتقل هالبيانات ..وكاننا نراها
يعني الكتاب كله رسمات هندسية على ورق
للحساب و مكوناته و ووظائفه و تشرح لك في الجامعة
فهمتوا معنى هندسة
أضرب لك مثال .. لوظيفة عملية
الـData movement
حركة البيانات داخل لجهاز ..
راح تنقل و تحرك البيانات و تتحكم
فيها تماما بإتجاه السهم ..على حسب الأمر
إللي إنت تعطيه إياه ..و لو تلاحظ
ما جاء ولا مر على دائرة التخزين
لأن الوظيفة اللي نبيها فقط نقل البيانات
وهم بعد ما مر على دائرة المعالجة لأن الوظيفة
والأمر إللي حنا نبيها هي النقل ..
وضحت الصورة ..
....:::....
حاولت الشرح على صور السلايد فقط
ليتم الربط و الفهم ..
و يسهل حفظ التعاريف العلمية ..
و أي سؤال حاضرين للطيبين و إللي يبي يضيف
فباب العلم و مجاله مفتوووح لكم
في حفظ الله
الوحــــــــــــــــــــــــــــــده
الثانيه
بسم الله الرحمن الرحيم
Computer Evolution
& Performance
يتحدث هذا الفصل عن
مراحل تطور الحاسوب وآداءه
وبسم الله نبدأ .. في
الجيل الأول ظهر : Vacuum Tubes
وتعني الصممات المفرغة ..
ويطلق عليها بالأنابيب المفرغة الأنبوب
تسمح للالكترونات بالتحرك مع تفاعل بطئ مع ذرات
الغازات الباقية وهذه الأنابيب مصنوعة من الزجاج
.
وهذه صور أوضح تشبه اللمبة
..
و في هذا الجيل كان حجم الكمبيوترات كبيييييييير جداً.
بالإضافة إلى وجود أجهزة تبريد تستخدم لتبريد
الصمامات لأن درجة حرارتها عالية
..
والطريف إنه رغم هالحجم إلا أن الذاكرة صغيرة للغاية
أيضاً التعامل مع هالأجهزة كان صعب لأنها تعتمد على
لغة الآلة Machine Languageفي برمجتها
حتى يوم كانوا يشغلوا الجهاز يستخدموا البطاقات
المثقبة لاحظوا لماذا ؟؟فقطلتخزين البيانات
"وصلت!!"
ودي ياكم تفهموا هي ليست لتشغيل الجهاز و إنما
لحفظ المعلومات و البيانات داخلها يعني هذا الفلاش
ميموري حقهم زمآآآآآن
أبي قال لي مرة إنه في شركتهم زمان كانوا يستخدموا
هالبطاقات المثقوبة
و كان يشغلها لهم رجل سوداني
..حبيته يوم حكاني عنه
يقول كان يمسك البطاقة
و يقول أي يا زوول
الرقم " تزعة سلاسة
تزعة...إلخ " ^_*
أيضاً الجميع يعرف شركة أرامكو السعودية
أول ما بدأت
بدأت بالبطاقات المثقوبة وعارفين الآن أنتهت بماذا؟؟
انتهت بالنانو
لو في مجال أخبركم عن هالتقنية إبداع .. وربي
والمهم تطورت فيما بعد وانتقلوا إلى الأشرطة المغناطيسية
إللي مايعرفها راح أخبره فيها|| هي مثل أشرطة
الكست ..اللي في المسجل
العادي وكانت
تستخدم
أيضاً لتخزين البيانات بدل
البطاقات
ويوجد في الفصل الرابع باب كامل
فقط عن وسائل التخزين سنتطرق له لاحقاً
..
طيب
..
هناك أمثلة لحواسيب تستخدم الصمامات المفرغة
موجود في الكتاب 2 و هي أكثر
راح نمر عليها
أول حاسبات هذا الجيل هو الحاسب المسمى
ENIAC تبعهEDVAC ثم EDSAC و أخيراً
الحاسب المسمى UNIVAC.
إللي باللون البنفسجي هو الموجود في الكتاب ^^
طيب نأخذ الحاسب
1-ENIAC
(Electronic Numerical Integrator And Computer)
هذه هي الحاسبة الرقمية الوظيفيّة الأولى.
حلو شكلها مين وده يجرب يضغط الازارير وياه ^^؟
وأدري منتم دارين وين الشاشة من لوحة المفاتيح من
الكيس هههههه..طيب بوريكم جزء
لوحة التحكم كيف كانت
والحين كل واحد
يقارنها بلوحة تحكمه الحالية لتشاهدواالفرق!!
وكانت مثل هالكمبيوترات متطلبة للدارسين
..
و وجدت 4 طالبات جامعة وهم داخل غرفة الكمبيوتر
صراحة وقفت عندها ونفسي أجرب القطع مثلهم
على ارض الواقع حتى ايام زمان ياخذوهم
معامل تطبيق..وين دكاترتنا يشوفوا ويتعلموا
..!!
متعة صراحة ولاقطين صور ذكرى لعملهم وإنجازهم
تدروا يوم درست هالدرس شكلي
في الصف يضحك ..وكنت أتخيل خيالات وااااااااو إذا
تبوا تعرفوا أخبركم هي!!
تبوا تعرفوا أخبركم هي!!
و وشلون كنت أفكر لكن نخليها نهاية الدرس
..و اكيد الكثير مر بس ان شاء الله وضحت
لكم الصورة واستمتعتم بالدرس لووول
:::::::
طيب الآن نأخذ الحاسب الثاني
2- UNIVAC
(Universal Automatic Computer)
وهذا هو موديل شكل جهاز اليوني فيرسل
كم قطعة موجودة في الصورة
ومنو يجاوب و يجيب العدد أول واحد ؟؟
طبعا هنا متطور شويتين يشتغل فيه 3 موظفين في المكاتب
طبعا من غير اللي راح يكونوا متخصصين للصناديق
و لوحة التحكم والدواليب الموجودة في الأركان
ويعني 6 أشخاص تقريباً ليشغلوا جهاز واحد فقط
و يستخدم هالجهاز خمســــــ5000ـــة آلاف صمام مفرغ
..ليؤدي 1000 عملية حسابية في الثانية
بطيء مررررة و هالصورة
طبعاً موديل ومجسم لشكل الجهاز وليس حقيقي
ولا في الواقع هو جهاز أبيض و أسود قديم
:::::::: 3
الشابتر 3
3.1 Computer Components
الصفحة الأولى من هذا لادرس اتركه لكم ... لاني ماحسيت انه في شيء ينشرح فيه واللي فاهمته مضبوط ياليت تتفضل وتشرحه ^^
طيب نجي للمهم ...
كما هو معروف انه المحتويات الأساسية للكمبيوتر هو المعالج/
الذاكرة(main memory) و I/O
ندخل في العميق ونفهم تركيبة كل واحد فيهم ..
أولاً: المعالج
المعالج راح يحتاج الذاكرة كثير لتبادل البيانات بينهما
عشان كذا لازم يكون في المعالج نفسه مكان للتخزين وهو مانسميه بــ Registers
وعندنا نوعين من الريجستيرز داخل المعالج وهما/
1- MAR
وهو اللي راح يحدد لي العنوان الموجود داخل الذاكرة (main memory) اللي راح يحتاجها المعالج عشان يقرأها أو يكتب فيها
2- MBR
تحتوي على البيانات اللي يبغى يكتبها المعالج للذاكرة أو اللي راح يأخذها المعالج من الذاكرة ..
وفيه كمان عندنا I/O AR راح يحدد لي عنوان الجهاز اللي ابغى استخدمه
و I/O BR وهنا راح يستخدمها لتبادل البيانات بين وحدات الادخال او الاخراج I/O مع المعالج
ثانياً: المعالج
تحتوي على مجموعة مواقع معرفة عن طريق عناوين مرقمة تسلسلياً. وفي كل موقع عندي رقم ثنائي ويُفسر إما انه تعليمة instruction أو data
ثالثاً: وحدات الادخال أو الاخراج ( I/O)
ينقل لي البيانات من الأجهزة الخارجية الى المعالج أو العكس .. وفي داخل هذه لاوحدات عندنا buffers والتي تعني ذاكرة مؤقتة وفائدتها تتحفظ بالبيابنات مؤقتاً حتى تُرسل للجهة المعنية
الصفحة الأولى من هذا لادرس اتركه لكم ... لاني ماحسيت انه في شيء ينشرح فيه واللي فاهمته مضبوط ياليت تتفضل وتشرحه ^^
طيب نجي للمهم ...
كما هو معروف انه المحتويات الأساسية للكمبيوتر هو المعالج/
الذاكرة(main memory) و I/O
ندخل في العميق ونفهم تركيبة كل واحد فيهم ..
أولاً: المعالج
المعالج راح يحتاج الذاكرة كثير لتبادل البيانات بينهما
عشان كذا لازم يكون في المعالج نفسه مكان للتخزين وهو مانسميه بــ Registers
وعندنا نوعين من الريجستيرز داخل المعالج وهما/
1- MAR
وهو اللي راح يحدد لي العنوان الموجود داخل الذاكرة (main memory) اللي راح يحتاجها المعالج عشان يقرأها أو يكتب فيها
2- MBR
تحتوي على البيانات اللي يبغى يكتبها المعالج للذاكرة أو اللي راح يأخذها المعالج من الذاكرة ..
وفيه كمان عندنا I/O AR راح يحدد لي عنوان الجهاز اللي ابغى استخدمه
و I/O BR وهنا راح يستخدمها لتبادل البيانات بين وحدات الادخال او الاخراج I/O مع المعالج
ثانياً: المعالج
تحتوي على مجموعة مواقع معرفة عن طريق عناوين مرقمة تسلسلياً. وفي كل موقع عندي رقم ثنائي ويُفسر إما انه تعليمة instruction أو data
ثالثاً: وحدات الادخال أو الاخراج ( I/O)
ينقل لي البيانات من الأجهزة الخارجية الى المعالج أو العكس .. وفي داخل هذه لاوحدات عندنا buffers والتي تعني ذاكرة مؤقتة وفائدتها تتحفظ بالبيابنات مؤقتاً حتى تُرسل للجهة المعنية
3
3.2 Computer Function
لازم نعرف أنه الوظيفة الأساسية اللي يعملها الكمبيوتر هو تنفيذ البرامج ... والتي بدورها تحتوي على مجموعة من التعليمات المخزنة في الذاكرة.
وتنفيذ هذي البرامج تتم بواسطة المعالجCPU
ومعاجلة التعليمات لابد منها لكي ينفذ البرنامج وكما قلت لكم انه المعاج هو اللي راح يتصرف فيها والمعالجة تتم بواسطة طريقتين:
Fetch
Execution
فالمعالجة تتم على تعليمة واحدة كل مرة وتدخل في دورة تسمى دروة التعليمة
ودورتها الأساسية مبسطة في الرسمة فوق
(Fetch) ...أول شيء Fetches معناها (Reads) عشان يتم البرنامج ويتنفذ
أول شيء المعالج راح يقرأ التعليمات من الذاكرة مرةواحدة في كل وقت
وراح تكون هذي التعلميات مخزنة في PC (Program Counter)
ولمن خلاص يقرأها المعالج راح يعطي هذي التعليمات للـIR (instruction Register) وراح يعمل المعالج زيادة (increment) للـ PC بحيث راح يقرأ الـ instruction التالية
يعني المعالج راح يقرأ التعليمات تسلسلياً في العملية هذي وممكن احنا نعمل
تعديل عليها بحيث نخليه يمشي كيف مانبغى ..
وللمعلومية IR ,PC,AC كلها عبارة عن registers موجودة في المعالج
ونقدر نجيب محتوياتهم من الذاكرة
(Execution) .. هنا راح يعمل العمليات على الي طلعناها وقرأناها من الذاكرة
وفي داخل التعلمية فيه بت معين هو اللي راح يحدد لي الأكشن اللي راح يسويها المعالج وهذي الأكشن تنقسم الى 4 وهي:
1- Processor-Memory
وهي نقل البيانات من المعالج الى الذاكرة أو العكس
2- Processor-I/O
وهي نقل البيانات من المعالج الى I/O أو العكس
3- Data processing
وهي العلميات اللي اللي يسويها المعالج على البيانات سواء كانت رياضية أو منطقية
4- Cotrol
راح يتحكم لي في طيريقة سير التعليمة وممكن تتعدل من قبل اليوزر
مثال1:
طيب نأخذ مثال على كيف تمم عملية تنفيذ برنامج معين :-
هذي الرسمة تشرح كيف نجمع محتويات الذاكرة المخزنة في العنوان 940 + مع محتويات 941 ونحفظ ناتج الجمع في 941
تتم هذي العملية على ستة مراحل كما في الصورة/
الشرح/
المرحلة الأولى// نلاحظ الــ PC مخزن فيه عنوان التعليمة (300) اللي راح يقرأها المعالج من الذاكرة ..
والتعليمة نفسها راح تتخزن في الــ IR وبعدين راح يعمل انكريمنت للـ PC (301)
المرحلة الثانية// نلاحظ الــ ir يحتوي على 16 بت (4 هيكسا) اللي هي (1940) ..
أول هيكسا في هذا الرقم اللي هو الرقم 1 راح ينبه الــ AC بانه بعد شوية راح يجيه شيء أو حاجة زي كذا
وبقية الــ 3 هيكسا اللي هي (940) راح يحدد العنوان المخزن فيها البيانات الي انا أبغاها اللي هي الرقم 3 وعلى طول راح يخزنها لي في الــ AC
المرحلة الثالثة// هي نفسها المرحلة الأولى لكن هنا راح يروح للمكان الثاني للتعلمية التالية(5941) الموجودة
في العنوان 301 وراح يعمل انكريمنت للـ PC ويصير 302
المرحلة الرابعة// هي نفسها المرحلة الثانية لكن فيه اختلاف بسيط وهو انه في الــ AC موجود
فيها أصلاً القيمة 3 راح يضيف عليها المحتويات الموجودة في 941 وهي 2 ويخزن ناتج الجمع النهائي اللي هي 5 في AC
ملاحظة::- طيب الحين جمعنا وخلاص بتقولون وش لزمة المرحلتين الجاية لزمتها حفظ الناتج في اللوكيشن 941 ...
المرحلة الخامسة// راح يقرأ التعليمة الموجودة في المكان (2941) من العنوان 302 وراح يعمل انكريمنت للــ PC
المرحلة السادسة//راح يخزن محتويات الــ AC ويخزنها لي في العنوان 941
مثال2:
ADD B, A which add theC O N T E N E Ts of the memory L O C A T I O N A and B and store the result in A
1- راح يقرأ التعليمة ADD
2- راح يقرأ المعالج المحتويات المخزنة في الذاكرة A
3- راح يقرأ المعالج المعالج المخزنة في الذاكرة B
4- راح يضيف القيمتينمع بعض
5- راح يكتب المعالج الناتج في الذاكرة A
ان شاء الله تكونوا فهمتم عملية التنفيذ في البرامج كيف تتم ..
طيب الرسمة هذي هي نفسها 3.3 لكن بتفاصيل أكثر
أي تعليمة عشان تتم لازم تدخل في دورة ومثل اللي انتم شايفينها في الرسمة بعضها ممكن التعليمة مايحتاج انه يمر من خلالها وبعضها ممكن لازم يمر منها أكثر من مرة
والحين راح أشرح لكم كل دائرة وايش فايدتها:
1- نبدأ من أول وحدة instruction address calculation
وممكن نختصرها بــ (iac ) ومهمتها انها تحدد التعليمة الجاية
اللي نبغاها انها تتنفذ
2- Instruction fetch واختصارها بـ (if) راح يقوم بعملية
قراءة التعليمة من الذاكرة للمعالج
3- Instruction operation decoding واختصاراها
بـ (iod) راح يقوم بتحليل التعليمة الموجودة عندي عشان يحدد لها
نوع العملية المناسبة لها وطبيعة الحدود اللي راح نعمل عليها العملية
4- Operand address calculation واختصارها ممكن بـ(oac) هنا راح يحدد عنوان الحدود (operand) اللي راح يشتغل عليهم الـ operation واللي ممكن تكون في الذاكرة أو I/O
5- Operand fetch واختصارها بـ (of) راح يقرأ الــ operand اللي
هي الحدود من الذاكرة أو يقرأها من I/O
6- Data operation وتختصر بـ (do) راح يعمل العملية على التعلمية
7- Operand store وتختصر بـ (os)راح يكتب لي الناتج في الذاكرة أو لـ I/O
وعشان تتسهل عليكم العملية هذي حطوا في بالكم حاجة وهي/
أنه الجزء الأعلى من الرسمة اللي هي (if,of,os) راح تحدث فيها عملية
البتادل بين المعالج والذاكرة او I/O
اما الجزء الأسفل من الرسمة واللي هي (iac,iod,oac,do,) راح تحدث فيها
عمليات المعالج
وتلاحظون أنهoac مكررة مرتين -----> لأنها ممكن تستخدم للقراءة الحدود وهذي اللي نستخدمها بالبداية أو لقراءة النواتج وهذي اللي موجودة بالنهاية
وممكن تكون عندنا حد واحد او أكثر .. وممكن كمان يكون عندنا ناتج واحد او اكثر كمان زي ماهو واضح في الرسمة فوق
فمثلاً ناتج الجمع لــ ADD A,B راح يحدث في السلسلة التالية:iac,if,iod,oac,of,oac,of,do,oac,os
امشوا على الرسمة معايا كذا راح تكون حالة السير/
· راح يحدد العنوان للتعليمة اللي يبغى ينفذها iac
· راح يقرأ التعليمة وهذي وظيفة if
· راح يحلل وبيقول هنا العملية هي الجمع iod
· راح يحدد لي عنوان الحد المستخدم عشان يطبق عليها العملية واللي هي A واللي هي oac
· راح يقرا لي محتويات الحد الأول وهوA (of)
· راح يرجع ينزل تحت ويحدد لي عنوان الحد الثاني B (oac)
· راح يقرأ لي محتويات الحد الثاني المخزن فيB (of)
· راح يعمل لي العملية اللي ابغاها do
· راح يحدد لي عنوان ناتج الجمع oac
· وأخر شيء راح يكتب لي الناتج للذاكرة أو لـ I/O
لازم نعرف أنه الوظيفة الأساسية اللي يعملها الكمبيوتر هو تنفيذ البرامج ... والتي بدورها تحتوي على مجموعة من التعليمات المخزنة في الذاكرة.
وتنفيذ هذي البرامج تتم بواسطة المعالجCPU
ومعاجلة التعليمات لابد منها لكي ينفذ البرنامج وكما قلت لكم انه المعاج هو اللي راح يتصرف فيها والمعالجة تتم بواسطة طريقتين:
Fetch
Execution
فالمعالجة تتم على تعليمة واحدة كل مرة وتدخل في دورة تسمى دروة التعليمة
ودورتها الأساسية مبسطة في الرسمة فوق
(Fetch) ...أول شيء Fetches معناها (Reads) عشان يتم البرنامج ويتنفذ
أول شيء المعالج راح يقرأ التعليمات من الذاكرة مرةواحدة في كل وقت
وراح تكون هذي التعلميات مخزنة في PC (Program Counter)
ولمن خلاص يقرأها المعالج راح يعطي هذي التعليمات للـIR (instruction Register) وراح يعمل المعالج زيادة (increment) للـ PC بحيث راح يقرأ الـ instruction التالية
يعني المعالج راح يقرأ التعليمات تسلسلياً في العملية هذي وممكن احنا نعمل
تعديل عليها بحيث نخليه يمشي كيف مانبغى ..
وللمعلومية IR ,PC,AC كلها عبارة عن registers موجودة في المعالج
ونقدر نجيب محتوياتهم من الذاكرة
(Execution) .. هنا راح يعمل العمليات على الي طلعناها وقرأناها من الذاكرة
وفي داخل التعلمية فيه بت معين هو اللي راح يحدد لي الأكشن اللي راح يسويها المعالج وهذي الأكشن تنقسم الى 4 وهي:
1- Processor-Memory
وهي نقل البيانات من المعالج الى الذاكرة أو العكس
2- Processor-I/O
وهي نقل البيانات من المعالج الى I/O أو العكس
3- Data processing
وهي العلميات اللي اللي يسويها المعالج على البيانات سواء كانت رياضية أو منطقية
4- Cotrol
راح يتحكم لي في طيريقة سير التعليمة وممكن تتعدل من قبل اليوزر
مثال1:
طيب نأخذ مثال على كيف تمم عملية تنفيذ برنامج معين :-
هذي الرسمة تشرح كيف نجمع محتويات الذاكرة المخزنة في العنوان 940 + مع محتويات 941 ونحفظ ناتج الجمع في 941
تتم هذي العملية على ستة مراحل كما في الصورة/
الشرح/
المرحلة الأولى// نلاحظ الــ PC مخزن فيه عنوان التعليمة (300) اللي راح يقرأها المعالج من الذاكرة ..
والتعليمة نفسها راح تتخزن في الــ IR وبعدين راح يعمل انكريمنت للـ PC (301)
المرحلة الثانية// نلاحظ الــ ir يحتوي على 16 بت (4 هيكسا) اللي هي (1940) ..
أول هيكسا في هذا الرقم اللي هو الرقم 1 راح ينبه الــ AC بانه بعد شوية راح يجيه شيء أو حاجة زي كذا
وبقية الــ 3 هيكسا اللي هي (940) راح يحدد العنوان المخزن فيها البيانات الي انا أبغاها اللي هي الرقم 3 وعلى طول راح يخزنها لي في الــ AC
المرحلة الثالثة// هي نفسها المرحلة الأولى لكن هنا راح يروح للمكان الثاني للتعلمية التالية(5941) الموجودة
في العنوان 301 وراح يعمل انكريمنت للـ PC ويصير 302
المرحلة الرابعة// هي نفسها المرحلة الثانية لكن فيه اختلاف بسيط وهو انه في الــ AC موجود
فيها أصلاً القيمة 3 راح يضيف عليها المحتويات الموجودة في 941 وهي 2 ويخزن ناتج الجمع النهائي اللي هي 5 في AC
ملاحظة::- طيب الحين جمعنا وخلاص بتقولون وش لزمة المرحلتين الجاية لزمتها حفظ الناتج في اللوكيشن 941 ...
المرحلة الخامسة// راح يقرأ التعليمة الموجودة في المكان (2941) من العنوان 302 وراح يعمل انكريمنت للــ PC
المرحلة السادسة//راح يخزن محتويات الــ AC ويخزنها لي في العنوان 941
مثال2:
ADD B, A which add theC O N T E N E Ts of the memory L O C A T I O N A and B and store the result in A
1- راح يقرأ التعليمة ADD
2- راح يقرأ المعالج المحتويات المخزنة في الذاكرة A
3- راح يقرأ المعالج المعالج المخزنة في الذاكرة B
4- راح يضيف القيمتينمع بعض
5- راح يكتب المعالج الناتج في الذاكرة A
ان شاء الله تكونوا فهمتم عملية التنفيذ في البرامج كيف تتم ..
طيب الرسمة هذي هي نفسها 3.3 لكن بتفاصيل أكثر
أي تعليمة عشان تتم لازم تدخل في دورة ومثل اللي انتم شايفينها في الرسمة بعضها ممكن التعليمة مايحتاج انه يمر من خلالها وبعضها ممكن لازم يمر منها أكثر من مرة
والحين راح أشرح لكم كل دائرة وايش فايدتها:
1- نبدأ من أول وحدة instruction address calculation
وممكن نختصرها بــ (iac ) ومهمتها انها تحدد التعليمة الجاية
اللي نبغاها انها تتنفذ
2- Instruction fetch واختصارها بـ (if) راح يقوم بعملية
قراءة التعليمة من الذاكرة للمعالج
3- Instruction operation decoding واختصاراها
بـ (iod) راح يقوم بتحليل التعليمة الموجودة عندي عشان يحدد لها
نوع العملية المناسبة لها وطبيعة الحدود اللي راح نعمل عليها العملية
4- Operand address calculation واختصارها ممكن بـ(oac) هنا راح يحدد عنوان الحدود (operand) اللي راح يشتغل عليهم الـ operation واللي ممكن تكون في الذاكرة أو I/O
5- Operand fetch واختصارها بـ (of) راح يقرأ الــ operand اللي
هي الحدود من الذاكرة أو يقرأها من I/O
6- Data operation وتختصر بـ (do) راح يعمل العملية على التعلمية
7- Operand store وتختصر بـ (os)راح يكتب لي الناتج في الذاكرة أو لـ I/O
وعشان تتسهل عليكم العملية هذي حطوا في بالكم حاجة وهي/
أنه الجزء الأعلى من الرسمة اللي هي (if,of,os) راح تحدث فيها عملية
البتادل بين المعالج والذاكرة او I/O
اما الجزء الأسفل من الرسمة واللي هي (iac,iod,oac,do,) راح تحدث فيها
عمليات المعالج
وتلاحظون أنهoac مكررة مرتين -----> لأنها ممكن تستخدم للقراءة الحدود وهذي اللي نستخدمها بالبداية أو لقراءة النواتج وهذي اللي موجودة بالنهاية
وممكن تكون عندنا حد واحد او أكثر .. وممكن كمان يكون عندنا ناتج واحد او اكثر كمان زي ماهو واضح في الرسمة فوق
فمثلاً ناتج الجمع لــ ADD A,B راح يحدث في السلسلة التالية:iac,if,iod,oac,of,oac,of,do,oac,os
امشوا على الرسمة معايا كذا راح تكون حالة السير/
· راح يحدد العنوان للتعليمة اللي يبغى ينفذها iac
· راح يقرأ التعليمة وهذي وظيفة if
· راح يحلل وبيقول هنا العملية هي الجمع iod
· راح يحدد لي عنوان الحد المستخدم عشان يطبق عليها العملية واللي هي A واللي هي oac
· راح يقرا لي محتويات الحد الأول وهوA (of)
· راح يرجع ينزل تحت ويحدد لي عنوان الحد الثاني B (oac)
· راح يقرأ لي محتويات الحد الثاني المخزن فيB (of)
· راح يعمل لي العملية اللي ابغاها do
· راح يحدد لي عنوان ناتج الجمع oac
· وأخر شيء راح يكتب لي الناتج للذاكرة أو لـ I/O
معمارية & تنظيم الحاسبات 3
طيب نجي الحين للجزئية
الممتعة من هذا الشبتر واللي هو المقاطعة أو
بالانجليزي
------------------------------------------
Interrupts
نظرة سريعة
فكرة المقاطعة ببساطة هي
مثلاً لمن تكون جالس تقرا كتاب ويدق تلفون البيت ... راح
تحط اشارة لحد وين وصلت وتقفل الكتاب وتجاوب على التلفون الذي بدوره قد يتطلب منك
مهمة اخرى وبعد ماتخلص منها ترجع وتكمل قراءة الكتاب من محل ما وقفت
يعني تخيل اليوزر بروقرام
هو الكتاب اللي كنت تقرأه ...ولمن لوصلت لــ i دق التلفون وجاوبت عليه وبعد انتهائك منه رجعت كملت من
محل ماانتهيت ^^
تعريفها
نفس الفكرة هنا في الحاسب
... وتعريفها هي الميكانيكية اللي
ينتجها الكمبيوتر حينما يقطع عملها الطبيعي وحدات أخرى (مثل الذاكرة أو I/O)
المعالج والمقاطعة
واذا كان المقاطعة على
وشك ان تحدث ... المعالج يعمل التالي/
1- راح يوقف لي سير البرنامج
الحالي ويحفظ لي محتوياته.
2- PC راح يبدأ يأشر لي على
عنوان البداية للمقاطع المفروض يبدأ في
تنفيذه
3- بيبدأ لي في تنفيذ المقاطع
4- بعد مايخلص راح يرجع
ويكمل البرنامج اللي كنا شغالين عليه قبل
عملية المقاطعة
في الرسمة اللي فوق ...
هي دورة التعليمة لمن تتنفذ لكن مع المقاطعة
وهي تشبه بالضبط رسمة 3.3
بس اللهم هنا معانا المقاطعة
فبعد مالعملية عندي تتنفذ
خلاص راح يشوف لو في مقاطعة والا لأ ؟؟
لو طلع فيه مقطاطعة راح
ينفذ المقاطعة أول بعدين يرجع يكمل البرنامج
الاساسي
ولو ماطلع فيه مقاطعة ،
راح يروح على طول ويعمل قراءة للتعليمة
اللي بعدها ... وهكذا
Multiple Interrupts
طيب أخذنا فوق لمن يكون
عندي مقاطعة وحدة في تنفيذ برنامج معين ...
فايش رايكم لمن يكون عندي كذا واحد في ذلك الوقت ...؟ كيف راح يتصرف وايش راح يتعامل المعالج معاها ؟؟
في طريقتين في طريقة
تعامل المعالج مع المقاطعات المتكررة في
وقت تنفيذ برنامج معين:
الاولى
:disable interrupt
يعني الحين لمن اكون
فاتحة برنامج وأنفذه ويجيني مقاطعتين في وقت
واحد ... راح ينفذ اللي جا أول وبعد مايخلصه راح يمسك الثاني وينفذه لي وهكذا
...
يعني نقدر نسميها أنه
جالس ينفذ لي المقاطعات تسلسلياً كما في هذي
الصورة:
الثانية: define priorities
هنا راح يعرّف لي
الأوليات ..ويشوف لي المقاطعة الأهم وينفذها
... يعني حتى ولو البرنامج الأساسي قاطعه تنفيذ برنامج اخر وجات مقاطعة ثانية أهم من هذي المقاطعة .. راح يقطعها لي وينفذ الاهم
وبعدين يرجع للمقاطعة الاقل أهمية
ويكمل تنفيذها وبعدين خلاص يرجع للبرنامج الأساسي كما في الصورة ..
يعني هنا لمن يتوفر عندي
مقاطعتين مقاطعة الاهم ومقاطعة أقل أهمية
، لكن اللي وصل أول هي الأقل اهمية فالمعالج راح ينفذ المقاطعة الأقل أهمية حتى
توصل المقاطعة الأاهم ويصيرالمعالج يقطع تنفيذ المقاطعة الاقل أهمية ويروح للاهم
حتى ننتهي منها ..>>>> أحس اني صرت مملة من كثر
ما اعيد بس ان شاء الله يرسخ
شوفوا هذي الصورة وان شاء
الله تفهمونها اكثر .. ^^
وخلاص عليي شبتر 5 ان شاء الله ^^
--------------------------------
3.3 Interconnection Structures
طيب للآن اكيد ترسخ في اذهاننا انه من أهم مكونات الحاسب الاساية هي:
المعالج،الذاكرة،I/O التي ترتبط مع بعضها البعض ... ولكي يحدث هذا
لابد من وجود طريق لربطهم وهذا مانسميه بالــ interconnection structure
وديزاين هذا التركيب يعتمد على طبيعة عملية التبادل بين الوحدات..
فشوفوا مثلاً هذي الصورة تعرض لي طبيعة التابدل لكل وحدة من الوحداآت وهذا كل يتم
بواسطة الناقل ولولاه لما قدرت الوحدات تتصل ببعضها ...
الرسمة الاولى / الذاكرة
الأسهم اللي قبل المربع هذي وحدات أخرى خارجية تعمل ACCESS للذاكرة وتستفيد منها ،، اما اللي خارج من المربع فهي الذاكرة نفسها تعملها
1- عدنا اللي داخل المربع:
* ممكن يستقبل اشارات للقراءة أو الكتابة
يعني ممكن اي جهاز خارجي يطلب من الذاكرة أنه يقرأ شيء من الذاكرة أو أنه يكتب شيء معين للذاكرة
* ممكن يستقبل مكان أو العنوان تبع العملية اللي أبغى أسويها
* او ممكن كمان يستقبل البيانات
2- خارج المربع :
ولو تلاحظون اللي طالع من المربع ممكن الذاكرة ترسل البيانات لأي وحدة من الوحداآت
الرسمة الثانية/ وحدات الادخال والاخراج
Internal data
يعني البيانات اللي تكون من داخل الجهاز
External data
يعني البيانات اللي تكون من خارج الكمبيوتر ونقدر نحصل عليها من الوحدات الملحقة
طيب نشوف ايش ممكن يصير من تبادلات:
1- عدنا اللي داخل المربع:
* ممكن يستقبل اشارات للقراءة أوالكتابة
* يستقبل بيانات من الكمبيوتر
* يستقبل بيانات من الوحدات الملحقة الخارجية
* ممكن يستقبل مكان أو العنوان تبع العملية اللي أبغى أسويها
2- خارج المربع :
* يرسل بيانات الى الكمبيوتر
* يرسل بيانات الى الوحدات الملحقة الخارجية
* يرسل اشارات المقاطعة الى المعالج
الرسمة الثانية/ المعالج
1- عدنا اللي داخل المربع:
* راح يقرا المعالج التعليمات والبيانات
* وبيستقبل اشارات المقاطعة من مختلف الأجهزة
2- خارج المربع :
* راح يعرض لي البيانات بعد ماتتم عليها عملية المعالجة
* يرسل اشارات التحكم لمختلف الاجهزة
* ممكن يستقبل مكان أو العنوان تبع العملية اللي أبغى أسويها
والناقل لابد من انه يدعم عمليات النقل التالية:
1- من الذاكرة الى المعالج
2- ومن المعالج الى الذاكرة
3- من I/O الى المعالج
4- من المعالج الى I/O
5- من I/O إلى الذاكرة والعكس
3.4 Bus interconnection
هذ1ي الجزئية أخذنها باختصار ومن دون تفصيل ... لكن ان تحبو نناقض نناقش مع بعض
أول شيء الــ (Bus) معناتها ناقل .. وهو الممر اللي يتصل بين وحدتين أو أكثر
ويعتبر وسط للارسال المشترك .. فعدنا عدة أجهزة تتصل بالناقل
الناقل الواحد يحتوي على عدة خطوط أو ممرات اتصال
وكل خط منها يقدريرسل اشارات وهذي الاشارات تمثل بــ 0 أو 1
والناقل اللي يصل أجزاء الحاسب الاساسية واللي هم: المعالج والذاكرة واجهزة الادخال والاخراج يسمى System Bus
طيب نجي الحين لتركيب الناقل (Bus):
الناقل يحتوي على من 50 الى مئات الخطوط .. وكل خط منها لها معنى معين او وظيفة معينة ،وكل خط من هذي الخطوط تتقسم الى 3 وظائف اساسية مثل ماتشوفون في هذي الصورة:
--------------------------------
3.3 Interconnection Structures
طيب للآن اكيد ترسخ في اذهاننا انه من أهم مكونات الحاسب الاساية هي:
المعالج،الذاكرة،I/O التي ترتبط مع بعضها البعض ... ولكي يحدث هذا
لابد من وجود طريق لربطهم وهذا مانسميه بالــ interconnection structure
وديزاين هذا التركيب يعتمد على طبيعة عملية التبادل بين الوحدات..
فشوفوا مثلاً هذي الصورة تعرض لي طبيعة التابدل لكل وحدة من الوحداآت وهذا كل يتم
بواسطة الناقل ولولاه لما قدرت الوحدات تتصل ببعضها ...
الرسمة الاولى / الذاكرة
الأسهم اللي قبل المربع هذي وحدات أخرى خارجية تعمل ACCESS للذاكرة وتستفيد منها ،، اما اللي خارج من المربع فهي الذاكرة نفسها تعملها
1- عدنا اللي داخل المربع:
* ممكن يستقبل اشارات للقراءة أو الكتابة
يعني ممكن اي جهاز خارجي يطلب من الذاكرة أنه يقرأ شيء من الذاكرة أو أنه يكتب شيء معين للذاكرة
* ممكن يستقبل مكان أو العنوان تبع العملية اللي أبغى أسويها
* او ممكن كمان يستقبل البيانات
2- خارج المربع :
ولو تلاحظون اللي طالع من المربع ممكن الذاكرة ترسل البيانات لأي وحدة من الوحداآت
الرسمة الثانية/ وحدات الادخال والاخراج
Internal data
يعني البيانات اللي تكون من داخل الجهاز
External data
يعني البيانات اللي تكون من خارج الكمبيوتر ونقدر نحصل عليها من الوحدات الملحقة
طيب نشوف ايش ممكن يصير من تبادلات:
1- عدنا اللي داخل المربع:
* ممكن يستقبل اشارات للقراءة أوالكتابة
* يستقبل بيانات من الكمبيوتر
* يستقبل بيانات من الوحدات الملحقة الخارجية
* ممكن يستقبل مكان أو العنوان تبع العملية اللي أبغى أسويها
2- خارج المربع :
* يرسل بيانات الى الكمبيوتر
* يرسل بيانات الى الوحدات الملحقة الخارجية
* يرسل اشارات المقاطعة الى المعالج
الرسمة الثانية/ المعالج
1- عدنا اللي داخل المربع:
* راح يقرا المعالج التعليمات والبيانات
* وبيستقبل اشارات المقاطعة من مختلف الأجهزة
2- خارج المربع :
* راح يعرض لي البيانات بعد ماتتم عليها عملية المعالجة
* يرسل اشارات التحكم لمختلف الاجهزة
* ممكن يستقبل مكان أو العنوان تبع العملية اللي أبغى أسويها
والناقل لابد من انه يدعم عمليات النقل التالية:
1- من الذاكرة الى المعالج
2- ومن المعالج الى الذاكرة
3- من I/O الى المعالج
4- من المعالج الى I/O
5- من I/O إلى الذاكرة والعكس
3.4 Bus interconnection
هذ1ي الجزئية أخذنها باختصار ومن دون تفصيل ... لكن ان تحبو نناقض نناقش مع بعض
أول شيء الــ (Bus) معناتها ناقل .. وهو الممر اللي يتصل بين وحدتين أو أكثر
ويعتبر وسط للارسال المشترك .. فعدنا عدة أجهزة تتصل بالناقل
الناقل الواحد يحتوي على عدة خطوط أو ممرات اتصال
وكل خط منها يقدريرسل اشارات وهذي الاشارات تمثل بــ 0 أو 1
والناقل اللي يصل أجزاء الحاسب الاساسية واللي هم: المعالج والذاكرة واجهزة الادخال والاخراج يسمى System Bus
طيب نجي الحين لتركيب الناقل (Bus):
الناقل يحتوي على من 50 الى مئات الخطوط .. وكل خط منها لها معنى معين او وظيفة معينة ،وكل خط من هذي الخطوط تتقسم الى 3 وظائف اساسية مثل ماتشوفون في هذي الصورة:
Data Line
يوفر لنا طريق لتحرك ونقل البياناتو التعليمات بين الوحدات
و width يعتمد عليه كثير في انه يكون الأداء عالي
Address Line
يستخدم لتحديد المصدر و اتجاه البيانات في ناقل البيانات .. فعندما يحتاج المعالج أن يقرأ من الذاكرة ، عنوان البيانات اللي يبغاها راح تنحط في الــ Address Line
Control Line
يستخدم ليتحكم في الوصول من والى Address & Data lines
وهناك نوعين من اشارات التحكم:
Timing و Command
Timing .... راح يحدد لي مدى صحة البيانات والعنوانين
Command ..... يحدد لي العملية اللي نبغى نسويها
تمنيت أشرح هذي الجزئية أكثر ... لكني مو مرة متمكنة منها ^
ويُفضل استخدام نواقل متعددة في الجهاز ومعروف حالياً أنه أغلب أجهزة الحاسب
متوفرة فيها هذا الشيء للاسباب التالية/
1- يقلل لي من عملية التاخير الحاصلة لمن يكون عندي ناقل واحد
2- وبيقلل كمان من اختناق البيانات داخل الناقل
الواجب :
ابغى أحد شرح لي هذي الرسمة ؟
الشرح منقول
welcome
الاشتراك في:
الرسائل (Atom)