علوم الحاسب

كل ما تريد معرفته عن الذواكـر الحـاسوبيـة Computer Memories

تعتبر الذاكرة أحد الأجزاء الأساسية في عمل الحواسيب، حيث تقوم بمهمة حفظ البيانات والمعلومات قبل وخلال وبعد المعالجة، ولذلك فهنالك أنماط متنوعة ومختلفة من الذواكر

مدخل: النظام الحاسوبي وآلية عمله

يتكون أي نظامٍ حاسوبيّ من عدة أجزاء مرتبطة مع بعضها البعض، بحيث يؤدي تكامل عمل هذه الأجزاء للحصول على الوظيفة المطلوبة من النظام الحاسوبيّ ككل. بشكلٍ أساسي، يمكننا تصنيف أي نظام حاسوبي إلى:

  • قسم معالجة البيانات والمعطيات
  • قسم تخزين البيانات وحفظها

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

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

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

مفهوم الذواكر الحاسوبية Concept of Computer Memory

يُشير مصطلح “الذاكرة” في علوم الحاسب إلى أي جهاز أو قطعة إلكترونية تستخدم من أجل تخزين المعلومات والبيانات المختلفة الناتجة عن عمل النظام الحاسوبيّ. قسم معالجة البيانات (الذي يتمثل بالمعالج المركزيّ) يقوم باستقبال البيانات المختلفة الآتية إليه من وحدات الدخل، ومن ثم يقوم بمعالجة هذه البيانات وفقاً لما هو مطلوب. الآن يجب أن نميز أمرين مهمين:

  • يحتاج المعالج أثناء عمله لتخزين البيانات بشكلٍ مؤقت من أجل مراحل المعالجة اللاحقة
  • يحتاج المعالج بعد انتهائه من تنفيذ عملية المعالجة المطلوبة أن يقوم بتخزين نتيجة المعالجة النهائية

يوضح الحدثان السابقان أمراً هاماً بالنسبة لنا: المعالج ومهما كان نوعه أو شكله أو قدراته، سيحتاج إلى مكانٍ ما كي يقوم بحفظ البيانات التي يتعامل معها، سواء أثناء عمله أو بعد انتهائه من عملية المعالجة المطلوبة. هذا “المكان” هو ما ندعوه بالذاكرة الحاسوبية. ولكن، ومن التوضيح البسيط السابق، فإننا نلاحظ أن المعالج يقوم بحفظ البيانات أثناء المعالجة، ويقوم بحفظ المعلومات بعد المعالجة، فهل هنالك أي اختلاف بين “المكان” الذي توضع فيه البيانات، أثناء وبعد المعالجة؟

في الواقع نعم، وهذا الأمر هو ما يقودنا للفكرة الهامة التالية: التفريق بين مفهوم “الذواكر الحاسوبية Computer Memories” ومفهوم “وحدات التخزين Storage Devices”.

الذواكر ووحدات التخزين Memory vs Storage

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

بالنسبة لوحدات التخزين، فهي الأرشيف الذي يقوم المعالج بوضع المعلومات والبيانات فيه، وتتميز بوحدات التخزين بكونها أبطأ من الذواكر من حيث سرعة العمل وسرعة تبادل المعلومات والبيانات، فالمعلومات الموجودة فيها ليست على درجة عالية من الأهمية، وبالتالي لا يحتاج المعالج أن يقرأ التعليمات بشكلٍ متكررٍ ودوريّ منها، ولذلك ولأسباب اقتصادية، فإن تقنية تصنيع وحدات التخزين تعتمد جعلها بطيئة بما يساهم بتخفيض كلفتها مقارنةً مع كلفة تصنيع الذواكر الحاسوبية، التي تتطلب تقنياتٍ أعلى وأدق، أي كلفة أعلى. الأمثلة على وحدات التخزين: أقراص التخزين الصلبة Hard Disk Drives، الأقراص الليزرية CDs، أقراص البلوراي Blue-Ray، ذواكر فلاش USB Flash Memory، بطاقات التخزين الصغرية Micro-SD Cards.

هنالك نقطة هامة أخرى تتعلق بالفرق بين الذواكر ووحدات التخزين: نظراً لأن الذواكر الحاسوبية تتميز بكونها أسرع، وكونها تتضمن المعلومات الأكثر أهمية بالنسبة للمعالج كي يقوم بعمله بشكلٍ صحيح، فإن الذواكر تعرف أيضاً بـ “الذواكر الأساسية Main Memory” بينما وحدات التخزين تعرف بـ “الذواكر الثانوية Secondary Memory”.

إذاً، فيما يلي تعداد لأهم أنماط الذواكر ووحدات التخزين في الحاسوب:

الذواكر الأساسية Main Memory

  • ذاكرة الوصول العشوائي RAM: أنواعها الفرعية هي DRAM و SRAM
  • ذاكرة القراءة فقط ROM: وأنواعها هي PROM, EPROM, EEPROM
  • ذواكر كاش Cache: ولها ثلاثة مستويات تعرف بـ L1, L2, L3

الذواكر الثانوية Secondary Storage

  • أقراص التخزين الصلبة HDD: Hard Disk Drives
  • أجهزة الحالة الصلبة SSD: Solid State Devices
  • وحدات التخزين الليزرية الضوئية: مثل DVD, Blue-Ray, CD-ROM
  • ذواكر USB Flash
  • بطاقات التخزين الصغرية Micro-SD Cards

خاصية “التطاير Volatility”

هل تستطيع الذواكر الحفاظ على المعلومات المخزنة فيها بشكلٍ دائم أم مؤقت؟ هذا الأمر يعود لتقنية تصنيع الذاكرة نفسها وكيفية عملها. ذاكرة الوصول العشوائي RAM على سبيل المثال تتصف بأنها ذاكرة “متطايرة Volatile” وهذا يعني أنها لا تحفظ المعلومات إلا بحالة وجود تغذية كهربائية، وفي حال انقطاع التغذية الكهربائية عنها فإن كافة المعلومات الموجودة فيها ستفقد. الأمر أيضاً ينطبق على ذواكر كاش، فهذه الذواكر جميعها مصممة كي تخزن أهم المعلومات التي يحتاجها المعالج بشكلٍ دوريّ ومتكرر، وهي أسرع من أي نمط آخر من الذواكر الموجودة في الحاسوب.

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

بالطبع، فإن عمل النظام الحاسوبي ككل يتطلب وجود الذواكر ووحدات التخزين، فكل نمط معلومات وبيانات يتم حفظه بمكانٍ خاص طبعاً لنوع وطبيعة المعلومة. هذا يعني أن عمل الحاسوب هو نتيجة عمل فريق يتكون من:

  • المعالج
  • الذواكر
  • وحدات التخزين

فكيف يتم ذلك بالضبط؟ هذا ما سنوضحه بالفقرة التالية، وذلك من أجل توضيح كيفية عمل الذواكر ووحدات التخزين مع بعضها البعض ومع المعالج الحاسوبي.

كيف تعمل الذواكر في الحاسوب؟

هل سألت نفسك يوماً ما كيف يعمل نظامك الحاسوبي؟ في الواقع، فإن معرفة جواب هذا السؤال هي أحد أكثر الأمور أهمية من أجل معرفة كيفية عمل الذواكر نفسها، ولعل معرفة هذه التفاصيل هي أكثر أمر مفيد من أجل فهم آلية عمل الذواكر ووحدات التخزين وحتى المعالج نفسه.

سنقوم بتوضيح الجزء الأكثر أهمية من عمل الحاسوب: إقلاع وبدء تشغيل الحاسوب، وذلك وفقاً للخطوات التالية:

  1. ضغط زر التشغيل ووصول التغذية الكهربائية للوحة الأم للحاسوب.
  2. المعالج يبدأ بالعمل ويحتاج للمعلومات الأساسية التي يجب أن تخبره ما الذي يجب أن يقوم به
  3. يقوم المعالج بجلب المعلومات الأساسية من ذاكرة القراءة فقط ROM، وهنا يقوم الحاسوب بتأدية اختبار POST: Power-on-self-TEST. هنا يقوم المعالج بالتأكد من أن كل القطع الأساسية الهامة المرتبطة بالنظام الحاسوبي تعمل كما هو مطلوب منها.
  4. أثناء تنفيذ اختبار POST يتم التأكد أيضاً من كل عناوين الذواكر الأساسية تعمل بشكلٍ جيد، عبر تنفيذ اختبار قراءة/كتابة سريع، حيث يتم كتابة بيانات على بت محدد من الذاكرة ومن ثم قراءة البيانات من نفس البت
  5. بعد انتهاء اختبار POST، يقوم المعالج بجلب المعلومات الخاصة بنظام الإدخال والإخراج الأساسي BIOS: Basic Input-Output System، والذي يكون أيضاً مخزناً على ذاكرة ROM. يتضمن نظام BIOS المعلومات الأكثر أهمية حول وحدات التخزين، تسلسل عملية إقلاع الحاسوب، الحماية، والمعلومات الأكثر أهمية المطلوبة للتأكد من الحاسوب يعمل بشكلٍ جيد وأنه جاهز لتحميل نظام التشغيل OS: Operating System.
  6. بعد الانتهاء من تحميل نظام BIOS، أصبح الحاسوب جاهزاً الآن لتشغيل البرنامج الأكثر أهمية عليه: نظام التشغيل. بخلاف اختبار POST ونظام BIOS، فإن نظام التشغيل يتوضع بشكلٍ أساسيّ ضمن وحدات التخزين مثل الأقراص الصلبة HDD. يقوم المعالج بقراءة نظام التشغيل والمعلومات الخاصة به من وحدات التخزين، ولكن وبما أن وحدات التخزين ذات سرعة قراءة أقل من الذواكر، فإن المعالج يقوم بوضع نظام التشغيل على ذاكرة الوصول العشوائي RAM، والتي تتميز بسعةٍ أصغر ولكن سرعة قراءة أعلى بكثير من وحدات التخزين. طالما أن التغذية الكهربائية موجودة، فإن نظام التشغيل سيبقى موجوداً ضمن ذاكرة RAM، وسيقوم المعالج بقراءة وتنفيذ تعليمات نظام التشغيل من ذاكرة RAM.
  7. الآن أصبحنا ضمن نظام التشغيل الذي نعرفه (سواء كان نظام تشغيل ويندوز أو لينوكس أو حتى MAC OS). الآن، وعندما يقوم المستخدم بتشغيل أي برنامج أو تطبيق (مثل فتح متصفح الإنترنت) فإن المعالج يقوم بجلب المعلومات الخاصة بالبرنامج والتطبيق من وحدات التخزين ومن ثم وضعها على ذاكرة RAM. هذا يعني أن أي برنامج قيد التشغيل يتم قرائته من ذاكرة RAM، نظراً لكونها أسرع وأكثر كفاءة من وحدات التخزين.
  8. لنتخيل الآن أننا قمنا بتشغيل برنامجٍ تنفيذيّ مثل الرسام Paint وقمنا برسم صورة بسيطة باستخدام البرنامج. نحن بهذه الحالة قمنا بإنشاء عمل مفيد باستخدام البرنامج، ولكن إن لم نقم بإجراء عملية “حفظ Save” لهذا العمل، فإن المعلومات المتعلقة به ستضيع، وعند إغلاق البرنامج سيتم إزالته من ذاكرة RAM لترك مكان فارغ لتشغيل تطبيق أو برنامج آخر. في حال قمنا بإجراء عملية “حفظ Save”، وأغلقنا البرنامج، فإن المعالج سيقوم بحجز مساحة من وحدات التخزين لحفظ البيانات والمعلومات التي قمنا بإنشائها باستخدام البرنامج، وسيقوم أيضاً بنفس الوقت بإزالة البرنامج من ذاكرة RAM.

أخيراً، فإنه يجب القول أنه كلما نقوم بفتح وإغلاق أي برنامج أو تطبيق سيحصل نفس تسلسل العمليات: المعالج يقرأ معلومات البرنامج ويضعها على ذاكرة RAM، وعند حفظ العمل الذي تم إنجازه فإن المعلومات الجديدة ستحفظ ضمن وحدات التخزين وسيتم إزالة المعلومات من ذاكرة RAM. تبادل المعلومات والبيانات بين المعالج والذواكر ووحدات التخزين والموصوف بالشرح السابق هو أساس عمل الأنظمة الحاسوبية، ولذلك فإنه غالباً ما يتم توصيف بنية وعمل الأنظمة الحاسوبية الحالية على أنها بنية قائمة على “خلط البيانات Data Shuffling”.

ذاكرة كاش Cache Memory

إذاً، يقوم المعالج بقراءة المعلومات الهامة التي يحتاجها من ذاكرة الوصول العشوائي RAM، ويتم تخزين المعلومات الأساسية الخاصة بالإقلاع واختبارات التشغيل الأساسية على ذاكرة القراءة فقط ROM. على الرغم من أن ذاكرتي RAM و ROM (على أنواعها المختلفة) تساهم بتسريع أداء النظام الحاسوبي ككل، إلا أن سرعة العمل الكبيرة (والتي تصل حتى 3.6 غيغا هرتز ببعض المعالجات، ويمكنها أن تتخطى 4 غيغا هرتز بعمليات كسر السرعة) التي تتمتع بها المعالجات الحديثة فرضت ضرورة تطوير ذواكر ذات أداء أفضل من حيث معدل قراءة المعلومات منها. الحل موجود، وهو ذواكر “كاش Cache”.

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

يوجد بشكلٍ أساسيّ نوعين من ذاكرة كاش (أو مستويات Levels):

  1. ذاكرة كاش مستوى أول L1 Cache: هذه الذاكرة عبارة عن شريحة صغيرة مدمجة مع شريحة المعالج نفسه، أي أنها تتواجد ضمن الدارة المتكاملة الخاصة بالمعالج. تتراوح سعة هذه الذاكرة ما بين 8 – 64 كيلوبايت، وهي تتضمن أهم المعلومات التي يحتاجها المعالج باستمرار من أجل الأداء بعمله.
  2. ذاكرة كاش مستوى ثاني L2 Cache: هذه الذاكرة عبارة عن شريحة صغيرة تتوضع بالقرب من شريحة المعالج CPU. ذاكرة كاش من المستوى الثاني أبطأ بقليل من ذاكرة كاش من المستوى الأول، ولكنها أسرع من أيّ نمطٍ آخر من أنماط الذواكر الحاسوبية. تتراوح سعات ذاكرة L2 Cache  ما بين 256 كيلو بايت وحتى 2 ميغا بايت. كلما كانت ذاكرة L2 Cache أقرب من المعالج المركزيّ كلما كان تحسن أداء النظام الحاسوبيّ ككل. تتضمن ذاكرة L2 Cache المعلومات الهامة التي تتطلب من المعالج أن يقرأها بشكلٍ مستمر ومتواصل وبسرعةٍ عالية، ولكنها أيضاً أقل أهمية بقليل من المعلومات التي تتضمنها ذاكرة L1 Cache.

هنالك نمط ثالث من أنماط ذواكر كاش، وهو “L3 Cache”. هذه الذاكرة تتواجد ضمن اللوحة الأم الخاصة بالمعالجات متعددة النوى Multi-Core Processors، بحيث تتضمن كل نواة معالجة ذاكرتي كاش L1 و L2، بينما تتواجد ذاكرة من نمط L3 Cache بشكلٍ مشترك ولكل أنوية المعالجة. ذاكرة L3 Cache أبطأ من ذواكر L1 و L2، ولكنها أسرع بمرتين على الأقل من ذاكرة الوصول العشوائي RAM، وهي تستخدم بشكلٍ أساسيّ من أجل تعزيز عمل وكفاءة ذواكر L1 & L2 Cache خصوصاً في المعالجات متعددة النوى الحديثة، والتي أصبحت عصب الأنظمة الحاسوبية المختلفة.

تظهر الصورة التالية مخططاً عاماً يمكن عبره فهم العلاقة بين ذاكرة كاش والمعالج المركزي وذاكرة الوصول العشوائي:

لو أردنا فهم ذواكر كاش من حيث البنية، فإنه يمكننا الاستعانة بالصورة التالية التي تظهر موقع كل نوع من أنواع ذواكر كاش في بنية النظام الحاسوبي.

المخطط الهرميّ للذواكر الحاسوبية Computer Memory Hierarchy

حتى الآن، فإننا قد تعلمنا أنه يوجد نوعين من الذواكر في الأنظمة الحاسوبية: الذواكر الأساسية (RAM, ROM) والذواكر الثانوية (وحدات التخزين). كما أننا تعلمنا كيفية تكامل هذه الأقسام مع بعضها البعض ومع المعالج الحاسوبي من أجل تنفيذ المهمات المختلفة للنظام الحاسوبيّ ككل.

المخطط الهرمي للذواكر يبدأ من مستوى المعالج نفسه، حيث تتضمن الدارة المتكاملة للمعالج أول نمط من أنماط الذواكر وهي المسجلات، وحديثاً أصبحت تضم ذواكر كاش. بعد ذواكر المعالج تأتي ذواكر كاش من النمط L2 و L3 التي تتوضع بالقرب من المعالج وتكون على اللوحة الأم. ثم هنالك ذواكر ROM وذواكر RAM (الذاكرة الأساسية Main Memory) وأخيراً هنالك وحدات التخزين الصلبة مثل الأقراص الصلبة HDD أو أجهزة الحالة الصلبة SDD. كافة أنماط الذواكر ووحدات التخزين السابقة تتوضع على اللوحة الأم للحاسوب، أو ضمن الشريحة المتكاملة للنظام الحاسوبي (في حالة الأنظمة من نمط SoC). هنالك أنماط أخرى من وحدات التخزين التي يمكن وصلها خارجياً مثل ذواكر USB Flash، أو الأقراص الليزرية CD، أو أقراص DVD أو أقراص Blue-Ray. أو حتى الأقراص الصلبة التي يمكن وصلها إلى الحاسب عبر منفذ USB، أي External HDD أو External SSD.

مسجلات المعالج المركزي CPU Registers

المسجلات هي أصغر وحدات الذاكرة الحاسوبية، وهي عبارة عن مصفوفات مبنية ضمن المعالج  نفسه، ولكل مصفوفة أبعاد معينة. تقوم المسجلات بتخزين المعلومات التي يحتاجها المعالج بشكلٍ مؤقت أثناء تنفيذ التعليمات المختلفة. المسجلات هي أسرع أنواع الذواكر الحاسوبية على الإطلاق، ويتم قياس سعة المسجلات بناءً على سعة البتات التي تستطيع تخزينها، فإذا قلنا أن لمسجلٍ ما سعة قدرها 8-بت، فهذا يعني أن المسجل يستطيع أن يخزن 8-بتات في وقتٍ واحد.

بشكلٍ عام، فإن بنية أي معالج حاسوبي يجب أن تتضمن المسجلات الموضحة بالصورة التالية:

CPU_Registers_4electronوحدات التخزين المؤقت Temporary Storage Areas

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

وحدات التخزين الدائم Permanent Storage Devices

تقوم وحدات التخزين الدائم بحفظ المعلومات بشكلٍ دائم، وهذا يعني أن المعلومات المخزنة فيها موجود بكل الحالات: سواء كان المعالج يعمل أم لا، سواء كان هنالك تغذية كهربائية أم لا، ولذلك يطلق عليها اسم “ذواكر غير متطايرة Non-Volatile Memory”. تتضمن وحدات التخزين الدائم:

  • ذاكرة القراءة فقط ROM بأنواعها المختلفة مثل PROM، EPROM، EEPROM
  • أقراص التخزين الصلبة HDD وأجهزة الحالة الصلبة SSD
  • الأقراص الليزرية المضغوطة بأنواعها: CD-ROM، DVD، Blue-Ray
  • ذواكر USB Flash

وفيما يلي تلخيص للمبادئ السابقة عبر الصورة التوضيحية التالية:

خلاصة

إلى هنا يكون مقالنا الخاص بالذواكر الحاسوبية قد انتهى. عبر هذا المقال، استعرضنا مفهوم الذواكر الحاسوبية، وكيفية عملها، وأنواعها الأساسية في الأنظمة الحاسوبية. لم نتطرق إلى التفاصيل المتعلقة بعمل كل نمط من أنماط الذواكر، أو بنيتها وتركيبها، وذلك كوننا نهدف لعرض هذه التفاصيل بشكلٍ منفصل ضمن مقالات مستقبلية، ونظراً لكون هذا المقال مخصص لتسليط الضوء بشكلٍ عام على مفهوم الذواكر الحاسوبية وأنواعها الأساسية والمتواجدة في مختلف الأنظمة الحاسوبية التي نستخدمها في كل يوم.

مصادر إضافية للاطلاع حول الذواكر الحاسوبية

1- كتاب: “Computers Are Your Future”، تأليف كاثرين لابيرتا، الطبعة 11، إصدار دار Pearson، سنة 2011

2- كتاب: “الإلكترونيات العملية للمبتكرين

3- مواقع إلكترونية: HowStuffWorks Wikipedia TutorialPoint

مقالات ذات صلة

زر الذهاب إلى الأعلى