آشنايي با برخی از مباحث مهندسی کامپیوتر (قسمت دوم)
طراحی مدارات VLSI کلمه VLSI از حروف اول Very Larg Scale Integration گرفته شده که به معنی "مجتمع سازی در مقیاس بسیار زیاد" است.
  • 1395/5/16 8/6/2016 6:37:48 PM 8/6/2016 6:37:48 PM
  • 0
  • 616
  • طراحی مدارات VLSI
    Operating Systems
    کلمه VLSI از حروف اول Very Larg Scale Integration گرفته شده که به معنی "مجتمع سازی در مقیاس بسیار زیاد" است. طراحی مدارات VLSI شاخه ای از مهندسی کامپیوتر است که هدف آن ساخت مدارهای مجتمع (IC) بسیار پیچیده است.
    در ابتدا مدارهای مجتمع بسیار ساده بودند، یک IC معمولا شامل دهها ترانزیستور، مقاومت، دیود و خازن بود و این قطعات در مدارات دیجیتالی به نحوی به هم متصل می شدند تا عملکرد گیت های منطقی را شبیه سازی کنند و حاصل کار یک IC با دهها گیت منطقی بود. این مدارات به مدارهای SSI (مجتمع سازی در مقیاس کوچک، Small Scale Integration)  معروف هستند.
    با پیشرفت تکنولوژی تعداد گیت های این مدارها افزایش یافت و به صدها گیت در هر IC رسید. به این مدارها MSI (مجتمع سازی در مقیاس متوسط، Medium Scale Integration) می گویند. این مدارها حاوی دیکدرها، اینکدرها، جمع کننده ها و ... بودند.
    نتیجه پیشرفت های بعدی مدارهای LSI بود (مجتمع سازی در مقیاس زیاد، Large Scale Integration).این مدارها شامل دهها هزار گیت بودند.
    با پیشرفت تکنولوژی بکار رفته در طراحی و ساخت مدارات مجتمع، امروزه شاهد نسل جدیدی از مدارهای مجتمع به نام مدارهای VLSI (مجتمع سازی در مقیاس بسیار زیاد، Very Large Scale Integration) هستیم. این مدارها شامل میلیون ها گیت منطقی هستند. پردازنده های امروزی در دسته تراشه های VLSI قرار دارند.
    در طراحی مدارات VLSI با مشکلات زیادی روبرو هستیم، مشکلاتی از قبیل:
    • تاخیرات مدار
      مدارهای بسیار بزرگ و پیچیده که در فرکانس های بالا کار می کنند با یک مشکل اساسی روبرو هستند و آن مشکل تاخیر در انتشار سیگنال در گیت ها است. هر چه تعداد گیت ها افزایش یابد تاخیر هم افزایش می یابد و این یک مانع جدی برای رسیدن به سرعت بیشتر است.
    • مصرف انرژی و تولید گرمامشکل دیگر مدارهایی که در فرکانس های بالا کار می کنند، افزایش مصرف انرژی است. با افزایش مصرف انرژی، اتلاف انرژی نیز بیشتر می شود که نتیجه آن تولید گرمای بیشتر است و همانطور که می دانید گرما دشمن شماره یک قطعات الکترونیک است.
    • نحوه طراحی مدارهای VLSIبا پیچیده تر شدن عملکرد تراشه های VLSI، ساختمان داخلی آن ها نیز پیچیده تر می شود. نحوه اتصال گیت ها به هم(که باید به بهینه ترین روش ممکن صورت بگیرد) و نحوه قرار گرفتن این گیت ها در تراشه، از جمله چالش های طراحی این گونه مدارات است.

    البته طراحی مدارات VLSI صرفا به مهندسی کامپیوتر مربوط نمی شود بلکه این کار حاصل تلفیق مهندسی کامپیوتر و مهندسی برق است و در واقع یک بحث میان رشته ای است.   
    Question Mark
    چرا ساخت مدارهای VLSI یک کار مهندسی است؟
    در طراحی مدارات VLSI با مباحث زیادی روبرو می شویم. مرحله اول طراحی مدار است، سپس باید به طراحی مدار به صورت فیزیکی بیاندیشیم و موانع کار را نیز در نظر داشته باشیم. همچنین باید به مقرون به صرفه بودن روش های تولید نیز توجه داشته باشیم. مجموعه همه این کارها یک فرآیند مهندسی است.
  • ساخت سیستم های مدیریت پایگاه داده (DBMS)
    سیستم های مدیریت پایگاه داده (DataBase Managment Systems)  وظیفه دارند حجم انبوهی از داده ها را به صورت کارآمد ذخیره و بازیابی کنند (در بحث پایگاه داده، در اغلب موارد منظور از کلمه کارآمد یعنی اینکه فرایند ذخیره و بازیابی اطلاعات با سرعت بیشتری انجام شود). طراحی و ساخت سیستم های مدیریت پایگاه داده (DBMS) نیازمند داشتن دانش در زمینه ذخیره و بازیابی اطلاعات و ساختمان داده ها است.
    Question Mark
    چرا ساخت DBMS یک کار مهندسی است؟
    به طور کلی اساس کار یک DBMS را ساختمان داده های کارا و سریع تشکیل می دهد(ساختمان داده هایی مثل درخت های B-Tree و جدول های درهم سازی). مهندسین کامپیوتر با استفاده از این ساختمان داده ها می تواند سیستم های مدیریت پایگاه داده را طراحی کنند.  پس طراحی DBMS یک کار مهندسی است.
    مباحث دیگری نیز مانند امنیت (Security) و جامعیت داده ها (Data Integrity) در طراحی DBMS ها مطرح می شود که البته آنها نیز در حوزه مباحث مهندسی کامپیوتر به شمار می آیند.
  • مهندسی نرم افزار (Software Engineering)
    واژه "مهندسی نرم افزار" در بین عامه مردم یک معنی دارد و در بین متخصصین رشته های کامپیوتری یک معنی دیگر!
    عموم مردم مباحث کامپیوتری را به دو دسته کلی تقسیم می کنند. سخت افزار و نرم افزار. هر آنچه که به سخت افزار سیستم مربوط می شود را مرتبط با گرایش سخت افزار می دانند و هرآنچه که به نرم افزارهای کامپیوتری مربوط می شود را مرتبط با گرایش نرم افزار می دانند.
    این تعریف "مهندسی نر افزار" از دیدگاه عموم مردم است (تعریف عام).
    ولی یک تعریف دیگر از واژه "مهندسی نرم افزار" وجود دارد که متخصصین کامپیوتر از آن استفاده می کنند و در واقع تعریف درست و اصولی واژه "مهندسی نرم افزار" است (تعرف خاص).
     
    انجمن مهندسی نرم افزار در نهاد بین المللی IEEE ، مهندسی نرم افزار را اینگونه تعریف می کند:
    "به کار بستن روش های سیستماتیک، منظم و قابل اندازه گیری برای توسعه و عملیاتی کردن و حفظ و نگهداری نرم افزار و همچنین مطالعه و توسعه این روش ها"

    با یک مثال معنای این تعریف روشن تر می شود.
    فرض کنید شما یک تیم 20 نفره از برنامه نویسان حرفه ای دارید و یکی از سازمان های بزرگ دولتی به شما پیشنهاد می دهد که یک نرم افزار خاص و مهم را برایشان بسازید و شما هم قبول می کنید.
    خوب امروز روز اول کار است! چه کار می کنید؟ آیا مستقیما شروع به برنامه نویسی می کنید؟ اگر مستقیما شروع به برنامه نویسی کنید، به احتمال بسیار زیاد شکست می خورید! (برنامه نویسان با تجربه به خوبی این موضوع  را درک می کنند!)پروژه را چه  طور بین اعضای تیم تقسیم می کنید؟ در واقع چطور مشخص می کنید چه کسی چه کاری را انجام دهد؟ با استفاده از چه روش هایی می توانید بفهمید که این سازمان از شما دقیقا چه نرم افزاری می خواهد؟  نرم افزار را چگونه طراحی می کنید؟ (طراحی  نرم افزار با برنامه نویسی آن فرق دارد).  در طراحی چه نکاتی را رعایت می کنید که این نرم افزار در آینده به راحتی قابل به روز رسانی باشد؟(بحث حفظ و نگهداری نرم افزار) و بسیاری سوال های مهم دیگر.

    هدف مهندسی نرم افزار (یا در واقع، مهندسی کردن فرآیند تولید نرم افزار) این است که دانش و فعالیت های شما را برای رسیدن به یک نرم افزار با کیفیت جهت دهی کند. یعنی مراحل ساخت و توسعه نرم افزار را مشخص می کند.

مهرداد تاجدینی

مهرداد تاجدینی هستم. فوق لیسانس رشته علوم کامپیوتر و در شرکت رهیاب رایانه گستر به عنوان برنامه نویس مشغول به کار می باشم.

نظرات 0
برای ارسال دیدگاه وارد حساب کاربری خود شوید.

ورود به حساب کاربری ایجاد حساب کاربری
مهرداد تاجدینی
آشنايي با برخی از مباحث مهندسی کامپیوتر (قسمت دوم)
زیگماوب