أجيال الحاسوب

يتجه تطور الحاسوب نحو جعل الحاسب أسرع و أقل ثمنا و قابليتها لتخزين البيانات أكثر وكذلك اداء مهام أكبر وأكثر تعقيدا.
قبل وجود الحاسبات كان الإنسان يقوم بالعمليات الحسابية بنفسه و قد مر تطور الحاسوب بمراحل كثيرة و تطورات كبيرة حتى أصبح يستخدم في مجالات عدة مثل التعليم الاتصالات و غيرها.
عام 1835م اخترع باباج أول حاسبة و سميت "الآلة التحليلية" كانت أجزاؤها كثيرة و كان من الصعب بناؤها بدقة و لم تعمل هذه الآلة أبدا.
بدأ عصر الكمبيوتر الحديث عام 1944 م حيث اخترع المهندس "أيكن" أول كمبيوتر حديث كان اسمه "مارك" كان هذا الكمبيوتر كهربائيا ميكانيكيا و ليس إلكترونيا كان يقوم بعدة وظائف مثل تخزين البيانات يطبع المعلومات بالة كهربائية كان حجمه كبير كحجم صالة كبيرة.
أجيال الحاسب الآلي و أنواعها:
صنفت الكمبيوترات إلى أجيال كل جيل يقوم بشيء جديد و مطور على سابقه.

مقدمة

نشأ الجيــل الثــالث( 1965-1970)اعتمد في تصميمه على الدوائر المتكاملة أصبحت أصغر حجما وأكثر سرعة وأيسر برمجة.إنتاج أجهزة إدخال وإخراج سريعة.من حاسبات هذا الجيل: IBM360 .
الجيل الثالث: الدارات المتكاملة[ر] 
حدث في عام 1958 إنجاز أطلق ثورة في الإلكترونيات، فابتدأ عصر الإلكترونيات الصِّغْريَّة، باختراع الدارة المتكاملة Integrated Circuit. إنها الدارة المتكاملة التــي تعرِّف الجيل الثالث للحواسيب. 
الأجيال الأخيرة: لا يوجد اتفاق عام حول تعريف أجيال الحواسيب التــي تلت الجيل الثالث. وما ذُكر في الجدول (1) هو مجرد اقتراح لتحديد الجيلين الرابع والخامس اعتماداً على التطورات في تقانة الدارات المتكاملة. ومع ظهور التكامل الواسع النطاق LSI، غدا من الممكن وضع ما يزيد على 1000 مكوِّن على رقاقة دارة متكاملة واحدة. كذلك حقق التكامل الواسع النطاق جداً VLSI كثافة تزيد على 10.000 مكوِّن لكل رقاقة، ويمكن أن يصل العدد في الرقاقات VLSI الحالية إلى أكثر من 100.000 مكوِّن. 
الجيلالتاريخ التقريبيالتقانةالسرعة النموذجية (عملية بالثانية)
11964-1957صمام مفرغ40.000
21958-1964ترانزستور200.000
31965-1971تكامل صغير ومتوسط النطاق1.000.000
41972-1977تكامل واسع النطاق10.000.000
51978-تكامل واسع النطاق جداً100.000.000
الجدول (1) أجيال الحواسيب
ومع تقدم التقانة السريع، وارتفاع معدل ظهور منتجات جديدة، وازدياد أهمية البرمجيات والاتصالات وتطوير العتاد، أصبح التصنيف وفق الأجيال أقل وضوحاً ودلالةً. ويمكن القول إن التطبيق التجاري للتطورات الجديدة أحدث تغيراً رئيسياً في أوائل السبعينيات من القرن العشرين، ومازالت نتائجها قابلة للتحقيق.
غير أن أهم تطور شهدته صناعة الحواسيب هو ظهور ما يسمى الحاسوب الشخصي [ر:الشخصي (الحاسوب ـ)] في بداية الثمانينيات، والذي أتى نتيجة لتطور تقانة الدارات العالية التكامل وتطور المعالجات الصغرية. وفي الخمس والعشرين سنة الماضية أُنتجت حواسيب ذات قدرات عالية جداً مقارنة بالحواسيب السابقة  وبكلفة منخفضة نسبياً. المعالِجات الصِّغريّة Microprocessors ازدادت كثافة العناصر المكامَلة على رقاقات المعالجات، على نحو مماثل لازدياد كثافة العناصر على رقاقات الذاكرة. وبمرور الزمن، أخذت تضاف عناصر جديدة إلى كل رقاقة شيئاً فشيئاً، فأصبح الحاسوب الوحيد المعالج يحتاج إلى عدد أقل من الرقاقات.  طورت شركة إنتل Intel في عام 1971 المعالج الصغري 4004. وكانت الرقاقة الأولى التــي تحتوي على كل مكوِّنات وحدة المعالجة المركزية متكاملة، وبشرت بولادة المعالج الصِّغري. يمكن للمعالج الصِّغري 4004 أن يجمع عددين من أربعة بِتّات وأن يضرب بالجمع المكرَّر فقط.
ويتجلى التطور السريع بعد ذلك في عدد البِتّات التــي يمكن أن يتعامل معها المعالج في كل مرة. وليس هناك مقياس قطعي لذلك، ولكن قد يكون المقياس الأنسب هو عرض مسرى المعطيات Data Bus Width، وهو عدد بتّات المعطيات التــي يمكن أن تُرسَل إلى المعالج أو منه في كل مرة. فعلى سبيل المثال، طُوِّر عدد من المعالجات التــي تعمل على أعداد مرمَّزة إلى 16 بِتّاً في السجلات ولكن تلك المعالجات تستطيع أن تقرأ وتكتب كلمات مرمَّزة إلى 8 بِتاتّ فقط، في كل مرة. ثم تتابع ظهور المعالج الصِّغري 8008 عام 1972 وكان آنئذٍ أول معالج صِّغري ذي 8 بِتّات، ثم المعالج الصِّغري 8080 عام 1974، وكان أول معالج صِّغري عام الاستخدام. 
وفي الوقت ذاته تقريباً بدأ تطوير معالجات ذات 16 بِتّاً، غير أنها لم تكن عامة الاستخدام حتى نهاية السبعينيات. وأحد هذه المعالجات هو المعالج 8086. ثم طورت معالجات صِغرية ذات 32 بِتّاً على رقاقة واحدة، منها المعالج 80386، واستمر الأمر على هذا النحو إلى أن وصل إلى المعالجات بينتيوم التي  تصل سعات عملها إلى 2 غيغا هيرتز كالمعالج Pentium IV.
الوحدات الوظيفية المكونة للحاسوب
يُقسم الحاسوب وظيفياً إلى وحدة دخل، ووحدة خرج، ووحدة ذاكرة، ووحدة حساب ومنطق، ووحدة تحكم. وتتلخص مهمات كل منها ووظيفتها على النحو الآتي:
وحدة الدخل: تستقبل هذه الوحدة المعلومات المرمّزة (معطيات أو تعليمات) من الأجهزة الخارجية للإدخال (مثل لوحة المفاتيح أو غيرها) وترسلها إلى الذاكرة لحفظها ومعالجتها أو ترسلها فوراً إلى وحدة الحساب والمنطق لمعالجتها.
وحدة الخرج: ومهمتها إرسال نتائج المعالجة أو الرسائل إلى الوسط الخارجي عبر أجهزة الإخراج مثل الطابعات ووحدات الإظهار(الشاشة وغيرها).
ومع تطور تقانات الدارات المتكاملة أصبح ممكناً تصنيع دارات تقوم بوظائف الإدخال والإخراج معاً مبرمجة لهذا الغرض.
وحدة الذاكرة: تحفظ هذه الوحدة النتائج الوسيطة لكل من المعطيات والتعليمات، وتحفظ البرامج عند تحريرها لتُنفذ لاحقاً. وتتضمن هذه الوحدة ذاكرة رئيسة Main Memory ووسائط تخزين ملحقة مثل الأشرطة الممغنطة والأقراص الممغنطة المرنة والصلبة والأقراص الضوئية.
وحدة الحساب والمنطق: وهي مسؤولة عن القيام بجميع العمليات الحسابية والمنطقية التي ستنص عليها تعليمات الحاسوب.
وحدة التحكم: تقوم هذه الوحدة بالإشراف على جلب التعليمات من وحدة الذاكرة وتفسيرها وتنسيق عمل مختلف وحدات الحاسوب لتنفيذ العملية التي تنص عليها التعليمة، ويمكن أن يتحقق ذلك بطريقتين مختلفتين عتادية أو برمجية.
ونتيجة لتطور تقانة الدارات المتكاملة دُمجت وحدتا التحكم والحساب والمنطق وبعض المكونات الإضافية الأخرى في وحدة واحدة تقوم بجميع المهام وسميت بوحدة المعالجة المركزية Central Processing Unit.
كانت وحدات المعالجة المركزية في البدايات بسيطة البنية، تحتوي إضافة إلى وحدة الحساب والمنطق ووحدة التحكم مجموعة من السجلات تستخدم للأغراض العامة، ومجموعة أخرى كرست لأغراض خاصة (كعداد البرنامج وسجل عنوان الذاكرة وسجل معطيات الذاكرة وسجل التعليمات وغيرها) وطورت هذه الوحدات من حيث البنية والتقسيم الوظيفي ومن حيث الحجم ودرجة التكامل والسرعة.
وتعد وحدة التحكم الجزء الأهم في وحدة المعالجة لأي حاسوب إذ إن الهدف منها جلب التعليمات من الذاكرة وتفسيرها وتنفيذها بتعيين الإشارات التحكمية وتفعيلها وإرسالها إلى جزء المعالجة من وحدة المعالجة المركزية. 
وتُفعَّل وحدة التحكم بإحدى الطريقتين: الأولى باستخدام الدارات المنطقية وتسمى وحدة التحكم المبنية عتادياً Hardwired Control Unit. والطريقة الثانية وهي الأعم والمستخدمة في معظم الحواسيب الحديثة فهي استخدام ما يسمى بالبرمجة الصغرية Microprogramming التي تعتمد على تطوير لغة سهلة تترجم كل تعليمة من تعليمات وحدة المعالجة المركزية إلى تعليمات منخفضة المستوى لوحدة التحكم تسمى التعليمات الصغرية Microinstructions.
مبادئ العمل الأساسية
يحكم البرنامج المخزن في الذاكرة سلوك الحاسوب، ويتألف من مجموعة من التعليمات رتبت وحفظت في الذاكرة. تُجلب التعليمات من الذاكرة إلى وحدة المعالجة المركزية عند تنفيذ البرنامج. وقد يتطلب تنفيذ العملية استعمال معطيات Data يجب جلبها أيضاً من الذاكرة أو من وسط التخزين الخارجي عبر وحدات الإدخال والإخراج. 
تُنفذ كل تعليمة عادة على مرحلتين: تقوم وحدة المعالجة المركزية أولاً بجلب التعليمات من الذاكرة واحدة واحدة، ثم تقوم بتفسير التعليمة التي جُلبت وتنفيذها.
تعتمد صحة تنفيذ البرنامج عادة على التتابع الصحيح في جلب التعليمات من الذاكرة. لهذا تخصص جميع وحدات المعالجة المركزية سجلاً خاصاً لهذه المهمة يسمى عدّاد البرنامج Program Counter يُستخدم عادة للإشارة إلى التعليمة التالية في التنفيذ. لهذا يحفظ عداد البرنامج PC عنوان التعليمة التــي ستجلب لاحقاًً.
تقسم التعليمات عادة إلى قسمين اثنين. يحتوي القسم الأول على رمز التعليمة Operation Code التي ستقوم بها وحدة المعالجة المركزية. وتنقسم التعليمات وفقاً للعملية إلى: تعليمات معالجة المعطيات، وتعليمات تناقل المعطيات بين مختلف المصادر والوجهات في وحدة المعالجة أو الذاكرة، وتعليمات التحكم بالبرنامج، وتعليمات لإدارة حالة وحدة المعالجة المركزية. 
أما القسم الثاني فيحتوي على معامل Operand أو أكثر، لتحديد العنوانات الفعلية المطلوب معالجتها بما يسمى طرق العَنوَنة Addressing Methods المستخدمة في هذا الحاسوب.
المقاطعات Interrupts  
توفر جميع الحواسيب آلية تستطيع بوساطتها المجتزئات الأخرى (الذاكرة والدخل/الخرج) مقاطعة المعالجة العادية للمعالج. تقدم هذه المقاطعات في المقام الأول وسيلة لتحسين كفاءة المعالجة. فمعظم الأجهزة الخارجية مثلاً أبطأ بكثير من المعالج، وعلى وحدة المعالجة المركزية الانتظار حتى ينهي الجهاز الخارجي البطيء مهمته، وهذا يعني إضاعة وقت كبير، لهذا تضاف إمكانية المقاطعة لإتاحة الفرصة للطرفية مقاطعة وحدة المعالجة عند جاهزيتها فيعلق تنفيذ البرنامج الحالي (حافظاً عنوان التعليمة التالية في البرنامج)، ثم تحميل عداد البرنامج عنوان التعليمة الأولى في برنامج خدمة المقاطعة. يوضح الشكل 3 مخططاً لهذه العملية. 
تسمح معظم وحدات المعالجة المركزية في بعض الأحيان لأجهزة الإدخال والإخراج بالنفاذ المباشر إلى الذاكرة Direct Memory Access (DMA) لقراءة المعطيات أو حفظها.
مسرى النظام:
يربط بين الوحدات المذكورة وسط ناقل يسمى «مسرى النظام» System Bus الغاية منه نقل المعلومات بين مختلف الوحدات. وله عادة ثلاثة مساراتٍٍٍِِِِِِِِ وظيفية، هي «مسرى العناوين» Address Bus الذي يستخدم لنقل الإشارات المحدّدة لموضع ذاكرة. ومسرى المعطيات  Data Bus لنقل المعطيات من وحدة المعالجة المركزية إلى الوحدات الأخرى، ومسرى التحكم Control Bus الذي يحمل إشارات التحكم من وحدة المعالجة المركزية إلى الذاكرة الرئيسية أو إلى وحدات الإدخال والإخراج. ويبين الشكل 4 هذه البنية.
تُستخدم خطوط التحكم control lines للنفاذ إلى خطوط المعطيات والعنونة، لأن جميع المكونات تتشارك فيها ولابد من وجود وسيلة للتحكم باستخدامها، وتُرسل إشارات التحكم كلاً من معلومات الأوامر والتوقيت بين مجتزئات النظام. 
توجد معايير كثيرة تفيد في تصميم واختيار مسرى النظام منها: نوعه وعرضه (لكل من خطوط العنوانات والمعطيات)، وطريقة التحكم عند طلب أكثر من طرفية النفاذ إلى مصادر النظام، ونوع نقل المعطيات (قراءة أو كتابة،..)، وطريقة التوقيت (متزامن أو غير متزامن).
إن مسرى الوصل البيني للمكوّنات الطرفية PCI  Peripheral Component Interconnect هو شائع وذو عرض مجال واسع ومستقل عن المعالج، ويمكن أن يعمل كمسرى متوسط، أو مسرى طرفي. إن المعيار PCI صُمم خصيصاً لملاءمة متطلبات الدخل/الخرج I/O للأنظمة الحديثة ملاءمة اقتصادية إذ يتطلب رقاقات قليلة جداً وهو يدعم ربط مسارٍ آخر بـ المسرى PCI. ويبين الشكل 5 مثالين لاستخدام هذا المسرى، حيث يبين الجزء 5-آ استخدام هذا المعيار في نظام وحيد المعالج كالحواسيب الشخصية المكتبية، في حين يبين الجزء 5-ب توظيفاً لهذا المعيار في نظام متعدد المعالجات كما في المخدمات. تستخدم الجسور المبينة في الشكل للمحافظة على المسرى PCI مستقلاً عن سرعة المعالج.
وحدة الذاكرة:
تتألف وحدة الذاكرة في كل حاسوب من الذاكرة الرئيسية والتخزين الثانوي الذي يتكون عادة من شرائط مغنطيسية أو أقراص مغنطيسية مرنة وصلبة. تتألف كل منها من عدد من البايتات Bytes أو الكلمات Word (تساوي الكلمة عدداً من البايتات)، وتنظم بحيث يمكن عنونة كل بايت منها أو عنونة كل كلمة. ويعتمد اختيار عناصر الذاكرات بعدة عوامل أهمها السرعة واستهلاك القدرة إضافة إلى حجم المعطيات المتبادلة.
من معايير أداء الذاكرة زمن النفاذ Access Time، ويعرّف بأنه الزمن الأصغري الذي ينقضي بين لحظة إصدار أمر القراءة read، وتوفر المعطيات جاهزة على خطوط معطيات الذاكرة. كذلك تقاس سعة الذاكرة أحياناً بدورة الذاكرة Memory Cycle التي تعرّف بأنها الزمن الأصغري الذي ينقضي بين عمليتي قراءة متتاليتين. وتصنف أيضاً، من حيث طريقة النفاذ إلى المواضع المختلفة فيها إلى صنفين. الصنف الأول هو الذاكرات ذات النفاذ العشوائي Random Access Memory  RAM، ويكون زمن النفاذ لجميع المواقع ذاته بغض النظر عن ترتيبها، ومثالها الذاكرات المصنعة من أنصاف النواقل. والصنف الثاني هو الذاكرات ذات النفاذ التتابعي Sequential Access Memory (SAM)، ويعتمد فيها زمن النفاذ على موضع الكلمة المراد قراءتها في وسط التخزين كما في شرائط التخزين المغنطيسية. وتصنف الذاكرات أيضاًً من حيث القراءة والكتابة، فالذاكرات التي تسمح فقط بقراءة محتوياتها هي ذاكرة قراءة فقط Read Only Memory (ROM).  أما الصنف الآخر فهي ذاكرة تسمح بالكتابة فيها والقراءة منها وتسمى ذاكرة القراءة والكتابة Read/Write Memory (RWM).
تكون الذاكرة الرئيسية في معظم الحواسيب الحديثة كبيرة بقدر مسرى العنوان لوحدة المعالجة المركزية ومصنعة عادة من أنصاف النواقل. وعندما لا تستطيع الذاكرة الرئيسية استيعاب برنامج ما بكامله تخزن الأجزاء التي لا تنفذ في حينها في وحدات التخزين الثانوية. وللوصول إلى أداء جيد للحواسيب العصرية اعتُمد حل لتسريع استجابة وحدة الذاكرة بوضع ذاكرة من النوع السريع وذات تنظيم خاص بين الذاكرة الرئيسية والذاكرة الثانوية وتسمى بالذاكرة الخابية أو الخبيئة [ر] Cache Memory.  
ويعتمد نجاح هذا المنهج على أسس علمية منها التباين الكبير بين سرعة وحدة المعالجة ووحدة الذاكرة، وتتعلق بطريقة توضع البرنامج الذي يجري تنفيذه في الذاكرة أو ما يسمى «محلية المرجع» Locality of Reference. يبين الشكل 6 رسماً توضيحياً لمكان توضع الذاكرة الخبيئة بين وحدة المعالجة المركزية والذاكرة الرئيسية.
ولما كان حجم الذاكرة الرئيسية أكبر نسبياً من الذاكرة الخابية فلا يمكن نقل كامل البرنامج الذي يجري تنفيذه إلى الذاكرة الخابية. لهذا تقسم الذاكرة الرئيسية والذاكرة الخابية إلى أجزاء اصغر تسمى كتلاً Blocks يجري تبادلها بين الذاكرتين كما يوضح ذلك الشكل 6-ب. يتطلب استخدام الذاكرة الخابية اعتماد خوارزميات استبدال Replacement Algorithms مناسبة لاستبدال المعلومات الموجودة مؤقتاً في الذاكرة الخابية عندما يستبدل بوحدة المعالجة غيرها، وأكثرها شهرة خوارزمية استبدال الكتلة الأقل استخداماً Least Recently Used (LRU).
البرمجيات 
تقسم برمجيات كل حاسوب إلى برمجيات النظام System Software والبرمجيات التطبيقية Application Software. برمجيات النظام هي مجموعة البرمجيات التي تقدمها الشركات الصانعة للحاسوب أو من في عدادها، وتعمل على تنسيق جميع فعاليات النظام المحوسب وتقوم بفعاليات كثيرة منها: تفسير أوامر المستثمر، وإدخال البرامج التطبيقية وتحريرها، إدارة حفظ الملفات واسترجاعها من وسائط التخزين، التحكم بوحدات الدخل والخرج، ترجمة البرامج التطبيقية التي يكتبها المستثمر بلغات عالية المستوى ووصلها مع البرامج القياسية الموجودة على النظام. تشمل هذه البرمجيات نظام التشغيل Operating System، والمترجمات Compilers، والمحررات Editors ونظم الملفات File Systems.
البرامج التطبيقية هي برامج يكتبها المستثمر عادة بلغات عالية المستوى High Level Languages مثل فورتران وباسكال ولغة C++، C، وغيرها لحل بعض المعضلات العلمية. تكتب هذه البرامج بلغة تعبر عن العمليات الحسابية أو أي عمليات معالجة بصيغة مستقلة عن نوع الحاسوب الذي سيستخدم  لتنفيذ هذه البرامج.