هيكلية البيانات

هيكلية البيانات كامل😏 Data structure

 الحاسوب هو قلب العمليات الحسابية💻❤️👍


 


من غير الحاسوب!

لكانت غالبية تخصصات الحواسيب اليوم مجرد فرع آخر من علوم الرياضيات النظرية

حتى تكون محترفا!

عليك أن تتوقف عن النظر إلى الحاسوب بالطريقة التقليدية؛ أنه صندوق أسود ينفذ البرامج بطريقة سحرية!!!

في الحوسبة:

  • على كل المتعلمين أن يمتلكوا بعضا من الفهم والتقدير لأنظمة الحاسوب ومكوناتها الوظيفية وخصائصها وأدائها وتفاعلها فيما بينها.
  • يحتاج المتعلمون لفهم تركيب الحاسوب بترتيبه ليكونوا قادرين على بناء برنامج يعمل بفعالية أكثر عند تشغيله على الحاسوب بشكل فعلي.
  • عند اختيار نظام لاستخدامه، على المتعلمين امتلاك القدرة على فهم الفروقات بين المكونات المختلفة مثل سرعة الساعة لوحدة المعالجة المركزية وحجم الذاكرة.

 تكنولوجيا أشباه الموصلات

الترانزستور.

  • يستخدم لتنفيذ بعض العمليات المنطقية.

مجموعة ترانزستورات - والتي تمثل عملية منطقية ما- تسمى بوابة.

البوابة: تمثل منطقا أوليا مثل (بوابة AND, بوابة OR).

  • باستخدام البوابات المنطقية، نستطيع تنفيذ ملايين العمليات المنطقية التي يسعنا التفكير بها.

ترانزستورات أكثر + تقنية تنفيذ عمليات أفضل = عمليات معالجة أسرع

قانون مور (Moore's law) 

1965

جوردن مور

مؤسس شركة intel

 


    
ينص قانون مور على أن عدد الترانزستورات لكل إنش مربع على الدارة المدمجة (integrated circuit-IC-) قد تضاعف في كل عام منذ اختراع هذه الشريحة. وتوقع مور استمرار تضاعف عددها في المستقبل
لكن عملية التضاعف قد تباطأت قليلا.

والسبب أن كثافة الترانزستور تتضاعف كل 18 شهرا، أي كل عام ونصف وبدأت تصبح أصغر حجما وبالتالي بدأت تصل لمرحلة من الثبات في الكثافة والحجم لانه لم يعد هناك إمكانية لجعلها اصغر حجما وبذات مقدار الكثافة او اعلى قليلا.ولهذا بدأ التضاعف الذي تحدث عنه مور يقل ويصل قليلا لمرحلة الثبات.

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

    هناك اختلاف في الآراء بين الخبراء. ولكن أغلبهم يتوقع استمرارية صحة قانون مور لعقد أو عقدين آخرين من الزمان.

تطور الحاسوب


كان قانون مور الأساس في التقدم في تكنولوجيا الحاسوب!

جعلت الحواسب من الخيال حقيقة!

ودخلت في صناعات كثيرة منها:

  • صناعة المركبات
  • صناعة الهواتف
  • مشروع الجينوم البشري (Human Genome Project)
  • الشبكة العالمية الموسعة (WWW-World Wide Web-)
  • محركات البحث(جوجل، فايرفوكس، سفاري، دك دك جو، انترنت اكسبلورر، ...الخ)

"أجهزة الحاسوب اليوم منتشرة بشكل واسع جدا"

تصنيفات الحواسيب

هناك 3 تصنيفات أساسية للحواسيب:

  • DESKTOP COMPUTERS 

    الحواسيب المكتبية

    • ذات استخدام عام
    • حزمة متنوعة من البرمجيات
    • أداء جيد
    • مناسب لمستخدم واحد وبكلفة منخفضة
  • SERVER COMPUTERS 

    حواسيب الخوادم

    • مبنية على أساس الشبكات سواء محلية أو عبر الانترنت
    • سعتها عالية
    • أداؤها عال
    • تتنوع في حجمها من الحجم الصغير وحتى حجم قد يصل ارتفاع بناية
  • EMBEDDEDCOMPUTERS 

    الحواسيب المدمجة

    • الفئة الأكثر انتشارا
    • تتواجد على شكل قطع مخبأة داخل النظام أو الجهاز مثل الثلاجات الالكترونية التي تعمل باللمس، العربات الذكية وغيرها
 
 
 

 ما بعد البرنامج

التجريد:

  الغوص في العمق أكثر واكتشاف معلومات جديدة

    • التجريد يزيل التفاصيل الإضافية التي لا داعي لها ما يساعدنا في تقليل درجة التعقيد والتعامل معها بشكل أفضل

الحواسيب قد تكون مختلفة كثيرا عما نتصوره عندما ننظر إليها من درجة العتاد الصلب (Hardware level)!

    في الواقع، القطع الصلبة في الحاسوب تتواصل معا فقط عن طريق إرسال إشارات رقمية لبعضها ذات جهد مرتفع أو منخفض، الجهد المرتفع يعبر عنه بالرقم 1 والجهد المنخفض يعبر عنه بالرقم 0 (High/Low Voltage)

المستوى الأول من التجريد:

 المرحلة الأولى عبارة عن عملية تصنيف للإشارات : True/False | 1/0 | High/Low

 الاعتقاد السائد هو أن اللغة الحقيقية \الفعلية للحاسوب هي أرقام النظام الثنائي (Binary Numbers)

  • برمجيات التطبيقات

    • تكتب بلغات البرمجة العليا 
  • برمجيات النظام

    • تحتاج مترجم: يفسر أوامر لغات البرمجة العليا للغة الآلة التي يفهمها الحاسوب
    • نظم التشغيل
      • آلية التعامل مع المدخلات والمخرجات
      • إدارة الذاكرة والتخزين
      • ترتيب المهام والمصادر
  • العتاد الصلب

    • المعالج
    • الذاكرة
    • متحكمات الادخال والاخراج

مستويات الأوامر البرمجية - الأكواد-

  • لغة عليا
  • لغة التجميع
  • لغة العتاد الصلب-Hardware-


اللغة العليا:

    • تتكون من كلام وعمليات حسابية
    • تسمح بنقل البيانات وبناء برامج فعالة


لغة التجميع

    • تمثيل نصي للأوامر البرمجية وهي أقرب للحاسوب من اللغة العليا

لغة العتاد الصلب

    • أرقام ثنائية (bits)
    • تعليمات وبيانات مشفرة

محتويات الحاسوب

ذات المحتويات في كل الأنواع (Server, PC, Embedded)

المحتويات الكلاسيكية الخمسة:

  • وحدات الإدخال
  • وحدات الإخراج
  • الذاكرة
  • مسار البيانات
  • وحدات التحكم

وحدات الإدخال والإخراج

  • أجهزة واجهة المستخدم (شاشة عرض، كيبورد، فأرة، ميكروفون، ...)
  • محولات الشبكة -Network Adapters- (للتواصل مع الحواسيب الأخرى)

داخل المعالج (CPU)

  • مسارات البيانات: يتم من خلالها تنفيذ العمليات على البيانات
  • التحكم:  يسلسل مسارات البيانات ويجري العمليات عليها
  • الذاكرة المؤقتة (cache memore): ذاكرة SRAM صغيرة وسريعة من أجل الوصول الفوري للبيانات
    • SRAM:نوع من شرائح الذاكرة يكون أسرع ويتطلب طاقة أقل من الذاكرة الديناميكية.

الذاكرة

 متطايرة (Volatile)

  • تضيع البيانات والأوامر التي كانت قد خزنتها عند إيقاف تشغيل الجهاز
  •  DRAM تستخدمها في العادة الذاكرة الرئيسية
  • SRAM ذاكرة ترفق بشريحة (Cache, Register,..)
  • DRAM أقل كلفة
  • SRAM أكثر سرعة

غير متطايرة (Non-Volatile)

  •  ROM
  • القرص الصلب  Hard Disk
    •  (Floppy Disk, Magnetic Tape, CDROM, USB Memory )

فروقات


SRAM DRAM
الاستخدام ذاكرة على الشريحة\ On-Chip Memory مع الذاكرة الرئيسية
السرعة أسرع أبطأ
التكلفة مكلفة أكثر أقل تكلفة
 
 
 
 

 الشبكات:

  •  التواصل
  • تشارك المصادر
 

LAN-Local Area Network-(Ethernet)

 في حدود بناية

WAN-Wide Area Network(Internet)

مساحة واسعة -مدينة\ دولة-

Wireless Network

-الوايفاي
-البلوتوث

التجريد

-ISA-Instruction Set Architecture

بنية حزمة الأوامر

  • واجهة بين العتاد الصلب وبرمجيات اللغة الدنيا low level software
  • تحتوي كل شىء قد يحتاجه المبرمج لجعل أي برنامج بلغة الآلة أو النظام الثنائي أو جهاز يعمل بشكل صحيح بما فيه أجهزة الأدخال والإخراج

التنفيذ:

العتاد الصلب الذي يعمل وفق البنية التجريدية
Instruction Set حزمة الأوامر
 

 حزمة الأوامر

الأوامر: الكلمات المشكلة للغة الحاسوب
حزمة الأوامر: موسوعة مصطلحات لغة الحاسوب
حواسيب مختلفة -> حزم أوامر مختلفة ! ولكنها تشترك في الكثير من الامور!

MIPS IS 

Microprocessor without Interlocked Pipelined Stages Insruction Set

  • لها حصة كبيرة في سوق المالجات المدمجة (سيسكو، سوني، توشيبا، ...)
  • تدخل في تطبيقات وصناعات الالكترونيات المختلفة: (أدوات الشبكة، أدوات التخزين، الكاميرات، الطابعات، ..)

  • ذات استخدام نموذجي في الكثير من ISA's  بنيات حزم الأوامر (الشكل التجريدي للحاسوب)


    تصنيف الأوامر:

  • سيل غير رسمي
    •  يتم التحميل من الذاكرة
    • يتم التخزين في الذاكرة
  • عمليات منطقية
    •  AND-OR-EXOR
    • Shift-Negation
  • عمليات حسابية
    •  الجمع -الطرح
    • الضرب
    • مصدران ووجهة واحدة
    • add a,b,c:
                    a يخزن فيها ناتج جمع b وc
    • نضع رمز وجهة التخزين أولا
    • كل عملية يجب أن تحتوي 3 متغيرات فقط لا أكثر ولا أقل
  • عمليات فرعية(سيل التحكم)

 

 

First Design Principle

Simplicity favors Regularity
البساطة تفضل الانتظام

الانتظام يسهل ويبسط تنفيذ العمليات 

البساطة تعطيني أداء عاليا وبكلفة أقلد


مثال حسابي:
C code كود بلغة سي.
f=(g+h)-(i+j)
اكتب كود MIPS  الناتج بعد ترجمة الكمبايلر للكود في الأعلى:
add t0, g,h       \\اجمع g وh وخزن الناتج في t0
add t1,i,j    \\اجمع i وj وخزن الناتج في t1
sub f,t0,t1       \\اطرح t0 من t1 وخزن الناتج في sub


Register Operands
تستخدمها العمليات الحسابية
MIPS فيها32*32-bit register file 
Register file:
يستخدم للبيانات ذات الاستخدام المتكرر
مرقم من 0 - 31
بيانات32-bit  تسمى word\كلمة
 
تسميات ال Assembler :
($t0.......$t9) للمتغيرات المؤقتة
($s0........$s9) للمتغيرات المحفوظة


Second Design Principle

smaller=faster

كلما صغر الحجم زادت السرعة

كلما زاد عدد الريجيستيرات زاد الـ clock cycle time  وقت اللازم للدورة الواحدة.

لا يستخدم أكثر من 32 ريجيستر على اللوحة. والسبب:

1|تعارض مصالح!

  • المبرمجين يريدون ريجيسترات أكثر لسرعة أكبر في أداء المهام

  • المصممون- مصمموا الحاسوب- يريدون الحفاظ على وقت الـ clock cycle قصيرا.

2|زيادة عدد الريجسترات يزيد عدد البتس المحجوزة في الـ instruction format


مثال على الـRegister Operands

C code: f=(g+h)-(i+j)

$S0,.......$S4 جميعا تخزن في f,.....,j 

Add $t0, $s1, $s2

Add $t1, $s3, $s4

Sub $s0, $t0, $t1


Memory Operands


تعليمات العمليات الحسابية\ المنطقية يجب أن تصدر من الريجيستيرات

انتبه! الحواسيب تملك عدد محدود من الريجيستيرات

البرامج النموذجية تستخدم متغيرات تفوق عدد الريجيستيرات

مثلا المصفوفات الطويلة تخزت في الذاكرة وليس في الريجيستيرات

ومنه، تعليمات نقل البيانات بين الذاكرة والريجيستيرات ضرورية(نحتاج إلى تعليمات لنقل البيانات)

لتطبيق العمليات الحسابية:

  • تحميل القيم من الذاكرة إلى الريجيستيرات (MIPS Instructions اللازمة لتحميل LW- word -)

  • تخزين ناتج الريجيستر في الذاكرة (MIPS Instructions اللازمة لتخزين SW- word -)

الذاكرة معنونة بوحدات البايت -byte addressed-

كل عنوان له بايت / 8بت

الـ words تُصفّ في الذاكرة

العنوان يجب أن يكون من مضاعفات الـ 4.



Memory Organization

تنظيم الذاكرة


ينظر إلى الذاكرة على أنها مصفوفة كبيرة أحادية الأبعاد ولها عنوان
  • عنوان المصفوفة هو مؤشر بداية المصفوفة \ index
للوصول إلى البيانات في الذاكرة يجب أن تستورد تعليمات الوصول عنوان المصفوفة التي تحتوي هذه البيانات
العنونة بالبايت:
  • الـ index يعنون بايت واحد من الذاكرة


البايتس حلوة ولكن...
معظم عناصر البيانات تستخدم words حجمها أكبر من البايت -فبعد كل شىء، طول الريجيستر 32 بت-
أما بالنسبة للـ MIPS، وكغيرها من المعالجات الدقيقة، word=32bit=4byte


MIPS تعتبر Big Endian
Big Endian:
Small Endian:


تعليقات

المشاركات الشائعة من هذه المدونة

ما هو Microcontroller ؟ وما استخداماته؟

المُحركات (Motors) واختيار المُحرك المناسب