# برنامه نویسی سطح پایین > توسعه‌ی هسته‌ی سیستم عامل > مقاله: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

## H_afkhami60

سلام

مهندسان گرامی نظرتون در مورد این مقاله چیه؟

بسم الله الرحمن الرحیم

معدودی از کارشناسان نرم افزار در کشورمان با انگیزه خودکفایی و استقلال محصولات نرم افزاری بالاخص سیستم عامل، تلاش قابل تحسینی برای ساخت سیستم عامل داشته اند. بررسی ها و تحقیقات در این زمینه و مطالعه تاریخچه ساخت سیستم های عامل که بدون شک موفق ترین آنها ویندوز بوده، نشان دهنده چند واقعیت مهم است. 1- برای استفاده کاربردی از سخت افزار، سازندگان آنها مجبور شدند، نرم افزارهایی که بعداً تبدیل به سیستم عامل شدند را طراحی کنند و این اجبار باعث رشد و توسعه سیستم عامل شد.2- ارتباط تنگاتنگی میان سازندگان آن نوع کامپیوتر و سازندگان سیستم عامل وجود داشته است. 3- تولید سیستم عامل برای آنها سودآور بوده و هست.
با توجه به این واقعیات، می بینیم که در کشورمان هیچ یک از این سه مورد نمی تواند باعث ایجاد انگیزه برای ساخت سیستم عامل شود. به نظر می رسد تنها عاملی که می تواند باعث ایجاد انگیزه برای ساخت سیستم عامل در کشورمان شود، حس استقلال طلبی و کمال طلبی ما ایرانیها است. ایرانیها همواره خواهان آن بودند که تولید کننده باشند و نه مصرف کننده و تصمیم گیرنده باشند و نه آنکه دیگران برای آنها تصمیم بگیرند. این انگیزه اگرچه در ابتدا ممکن است انسان را به حرکت وادار کند، لاکن پس از مدتی به احتمال زیاد از بین می رود و طرح های توسعه ابتر می مانند. شاید اگر کشورمان اجازه استفاده رایگان از سیستم عامل را نمی داد و قانون کپی رایت کاملاً اجرا می شد، تابحال ساخت سیستم عامل در کشورمان به نتیجه رسیده بود. با بوجود آمدن چنین شرایطی، باز هم بدلیل نبود ارتباط تنگاتنگ بین سازندگان کامپیوتر و سازندگان سیستم عامل در کشورمان، ساخت سیستم عامل با موفقت کامل صورت نخواهد گرفت. بنابراین مراحل ساخت سیستم عامل موفق (سیستم عامل کاربردی و نه تحقیقاتی و آزمایشگاهی) اینگونه خواهد بود:


ساخت پردازشگر و کامپیوتر

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

ساخت کامپایلر زبان سطح بالا
این مرحله خود شامل دو مرحله است. مرحله اول ساخت اسمبلر و مرحله دوم استفاده از این اسمبلر برای ساخت کامپایلر. 
استفاده از کامپایلرهای موجود امکان پذیر نیست، به دلیل آنکه بسیاری از توابع موجود در این کامپایلرها برای بسیاری از برنامه نویسان کشورمان به دلیل نبود مستندات کافی، ناشناخته است. همچنین این کامپایلرها برای پردازشگرهای دیگر ساخته شده اند و قطعاً برخی از دستوراتی که در این کامپایلرها مجاز هستند، توسط پردازشگر طراحی شده توسط کارشناسان ما، قابل اجرا نیست. مسئله دیگری که ساخت کامپایلر را اجتناب ناپذیر می کند، نیاز به مسلط شدن برنامه نویسان کشورمان بر جزئیات اجرای برخی دستورات است. در این کامپایلرها بسیاری از توابع در فایلهای کتابخانه ای قرار دارند و برنامه نویس نمی تواند از جزئیات آنها باخبر شود و به قول معروف باید همچون یک جعبه سیاه، فقط از آنها استفاده نماید. که این امر باعث خواهد شد که برنامه نویس درک درستی از نحوه عملکرد کامپیوتر پیدا نکند.

به امید سربلندی و پیشرفت روزافزون ملت ایران

----------


## pswin.pooya

سلام
من خودم توی تمامی مواردی که شما ذکر کردید. فعالیت کردم ( از پردازنده گرفته تا سیستم عامل و کامپایلر). مشکلات اصلی کشور ما موارد زیر هست به نظر من:

1. مشکلات مالی و اقتصادی (خود من برای تامین نیاز مالی خودم وقت پیدا نمی کنم که روی پروژه های پایه ای مثل این موارد کار کنم). خب این مورد توی کشورهای غربی خیلی کمتر هست و در نتیحه محصولات اون مواردی مثل لینوکس بوده و مردمی که از سلامت روحی روانی بهتری بهره مند هستند.

2. مشکل اساتید بی سواد دانشگاهی. (به جزء چند مورد از استادهای دانشگاهی تقریبا همه اونها از سواد کافی برای تدریس و حتی فعالیت توی رشته کامپیوتر بهره مند نیستند. و تنها پارامترهای دیگه که همه می دونیم چی هست باعث شده به جایی که هستند برسند.) در حقیقت خیلی از اساتید کامپیوتر حتی شایستگی دریافت مدرک لیسانس رو هم ندارم به نظر من.

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




> حس استقلال طلبی و کمال طلبی ما ایرانیها است


به شدت مخالفم. اگر به فکر این چیزها بودیم الان خیلی جلوتر بودیم. ما ایرانی ها به هر کاری می رسیم به غیر از علم. فعالیت کاربران شبکه اجتماعی linkedin رو نگاه کنید. جماعت هر کاری می کنن به غیر از تاپیک فنی. در مقابل همین کشور همسایه ما ترکیه جماعتش فقط تاپیک فنی میزارن خب نتیحه آخرش این میشه که اونها از ما جلو بزنن. مردمی که به فکر استقلال و ... باشن ضرب المثلشون الهی بخوابی و بخوری (یا همجین چیزی)  نمیشه. 

مشکل ما ایرانی ها اینه:

1. که فکر می کنیم نابقه هستیم که نیستیم. (از 70 میلیون ایرانی یه نفر در میاد که رفته بجایی رسیده اونم نه توی ایران. 70 میلیون همه جا میگن ما آخرشیم و ... )
2. فکر می کنیم علم دست ماست ( اما حتی مثلا توی کامپیوتر به اندازه 80 سال پیش کشورهای مطرح مثل آمریکا و آلمان و ... نیستیم). بدتر از همه اینه که فکر میکنیم اونها علم رو باید در اختیار ما قرار بدن و نه اینکه ما بدستش بیاریم و اگر در اختیارمون قرار نمی دن برای اینه که ما رو چپاول کنن.
3. ...

خلاصه با این وضع ما چیزی جز توهم نمی زنیم و چیزی هم جزء توهم نمی شیم. و به نتیجه آخر می رسیم که میگه خلایق را هرچه لایق.

----------


## H_afkhami60

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

----------


## pswin.pooya

> از این بحثا که بگذریم شما که تبریز هستی و فکر می کنم با فارغ التحصیلای  رشته های الکترونیک و کامپیوتر (سخت افزار) بیشتر آشنا باشی، آیا تا به حال  در مورد ساخت کامپیوتر با توجه به مراحل مقاله ذکر شده صحبت کردی؟ قبول  داری که مقاله بالا درست است یا نه؟ قبول داری که استفاده از توابع آماده  در کامپایلرها دید واقعی در مورد طرز کار پردازنده نمیده؟


سلام
برای *طراحی پردازنده* اول از همه باید نیاز ها مشخص بشه. یعنی اینکه هدف از ساختش چیه. وقتی از پردازنده (بهتر بگیم ریز پردازنده) صحبت میشه مثل سیستم عامل معمولا به ذهن عموم پردازنده های همه منظوره میاد. در صورتی که بیشتر پردازنده ها با منظور خاصی ساخته میشن (special porpose) هستد.

بعدش با توجه به کاربرد یک مجموعه دستور (instruction set) تعریف میشه که خود اینکار مرحله پیجیده ای هست و پارامترهای زیادی باید در نظر گرفته شه. (که بیشترش مربوط به دستیابی به هدف مخصوصا از نظر سرعت است). و سرعت هم نه با کلاک پردازنده بلکه با یه واحد تقریبی دیگه به اسم CPI تعریف میشه (clock per instruction) این واحد هم باز بر میگرده به متوسط کلاک های مورد نیاز برای تک تک دستورات یک برنامه. و خلاصه کلام کلی پارامتر دیگه دخیل میشه تا آخر کار معماری مجموعه دستورات مشخص شه که بهش ISA (Instruction Set Architecture(

مرحله بعد طراحی معماری پردازنده هست که خودش باز به چندین بخش تقسیم میشه و ... این مرحله با اینکه به نظر میاد مهمترین قسمت هست اما به شدت وابسته به اینه که ISA درست باشه و ...

و در نهایت بعد از معماری سخت افزار توصیف میشه و یا مدل میشه و از نظر یکسری موارد دیگه (مثل همگام سازی کلاک و .... ) روش کار میشه 

و بعد از اینکه سخت افزار توصیف شده و یا مدل شده جواب پس داد. نوبت سازمان کامپیوتر و مهندسین الکترونیک هست که اون رو تبدیل به چیپ کنن.

تک تک این مراحل بشدت پیچیده هست و از نظر تکنولوژی یکی از پیچیده ترین علوم رو کره خاکی حساب میشه. (مخصوصا تولید silicon die و ویفر ) که تقرییا پیچدیگی اونها باعث شده خیلی از کشورهای دنیا حتی جهان اول هم نتونن از عهده اون بر بیان.

==================================================  =

*طراحی سیستم عامل* که ذاتا یه مقاله براش گذاشتم. تنها تفاوتی که از اون زمان تا حالا اتفاق افتاده اینه که با اومدن SOC ها (بهتره بگیم همه گیر شدن اونها) نقش سیستم عاملهای خاص منظوره خیلی کمتر شده. و سیستم عاملهای همه منظوره ای مثل لینوکس حالا راحت می تونن همه جا پیدا شن و مورد استفاده قرار بگیرن. و یا حتی از ویرایشهای بلادرنگ اونها میشه برای خیلی چیزها حتی موارد نظامی هم استفاده کرد.


==================================================  =

*طراحی کامپایلر:*
اصولا برای طراحی کامپایلر هم باید توجیح وجود داشته باشه. مساله مهم اینه که کامپایلرهای معروف (مثل GCC) رو میشه به راحتی برای پلتفرم های جدید پورت کرد. و تنها چیزی که شاید باید از اول نوشته شه یه اسمبلر هست اما خب کامپایلر رو هم میشه با سرعت بالا به کمک ابزارهای مثل lex و yacc  طراحی کرد. 

مراحل طراحی اونم عبارت هست از:

1. تعریف نیاز
2. تعریف ساختار زبان ( که معمولا با BNF مدل میشه)
3. ساخت اسکنر ( که میشه با lex ساخت )
4. ساخت پارسر ( که میشه با yacc ساخت )
5. ساخت کد میانی (اختیاریه)

-------------------- از اینجا مربوط به اسمبلر هست
6. ساخت کد نهایی توابع و ... ( میشه از اسمبلر های جانبی مثل nasm استفاده کرد. توجه کنید که ساختار byte code معماری x86 بسیار پیچیده و نادرست هست. بهتره که از یک اسمبلر و یا کتابخونه هایی مثل lightning استفاده کنید.)

------------------------ از اینحا مربوط به لینکر هست
7. لینک . (که میشه از ld استفاده کرد)

قسمت 6 و 7 رو هم میشه با مواردی مثل ماشین مجازی یا مفسر و ... عوض کرد. اصولا کامپایلر تا مرحله چهار کافیه و بعد از اون بسته به سلیقه و نیاز فرق میکنه.

----------


## H_afkhami60

سلام

آقا میلاد شما رشتتون چیه؟ 
ماشاا... اطلاعات بسیار خوبی دارید. در مورد ساخت پردازنده ممکن است سیاست های مختلفی در پیش گرفته شود. مثلاً بنده همیشه در هنگام شروع پروژه به بهینه سازی آن اصلاً فکر نمی کنم و بعد از پیاده سازی و تکمیل پروژه در فازهای بعدی به بهینه سازی و افزایش سرعت پروژه می پردازم. مسئله اصلی فعلاً در ساخت پردازنده این است که اصلاً امکان ساخت قطعات الکترونیکی در ابعاد میکرو ایجاد شود. به هر حال مسائل مربوط به سخت افزار را کارشناسان سخت افزار و الکترونیک و نانو باید پیگیری کنند.

در مورد پورت کردن کامپایلرها برای پلتفرم جدید لطفاً بیشتر توضیح بدهید. یعنی سورس کامپایلر را می شود تغییر داد؟ یا اینکه تنظیماتی دارند که می شود، دستورالعملهای جدید را به آنها معرفی کرد؟
نرم افزارهای lex و yacc که معرفی فرمودید، چه کارکردی دارند؟ این نرم افزارها به چه منظور طراحی شدند. تخصص آنها چیست؟ اسکنر و پارسر چی هستند؟

----------


## pswin.pooya

> آقا میلاد شما رشتتون چیه؟


من پویا هستم و رشته تحصیلی من معماری کامپیوتر هست.




> مسئله اصلی فعلاً در ساخت پردازنده این است که اصلاً امکان ساخت قطعات الکترونیکی در ابعاد میکرو ایجاد شود.


میشه تا حد زیادی این مشکل رو به کمک FPGA حلش کرد. در مورد طراحی die هم در سطح آزمایشگاهی شنیدم دانشگاه صنعتی اصفهان تونسته کارهایی بکنه اما خب بعید می دونم اگر موفق شده باشن حتی نمونه آزمایشگاهی هم بسازن باید ازشون قدردانی بشه چون اینکار به مراتب پیچیده تر از مواردی هست که ایران داره براش مذاکره میکنه.




> در مورد پورت کردن کامپایلرها برای پلتفرم جدید لطفاً بیشتر توضیح بدهید. یعنی سورس کامپایلر را می شود تغییر داد؟ یا اینکه تنظیماتی دارند که می شود، دستورالعملهای جدید را به آنها معرفی کرد؟


بهتره که در مورد نحوه ساخت کامپایلرها و ساختارشون مطالعه کنید. چون این ماجرا پیچیده تر از چیزی هست که به نظر میاد

----------


## H_afkhami60

سلام

آقا پویا من واقعاً از شما معذرت می خوام بابت اینکه اسمتون را اشتباه نوشتم. نمی دونم حواسم کجا بود.
در مورد ساخت کامپایلر بنده فقط کتاب طراحی کامپایلرهای دانشگاه را که پاس کردم، مطالعه کردم. فکر می کردم زیاد پیچیده نباشه. شما چه منابعی را پیشنهاد می کنید؟ برای مطالعه FPGA چه منابعی را پیشنهاد می کنید؟
ضمناً اگه منابع مالی تامین بشه خود شما می تونید یک کامپیوتر طراحی کنید و بسازید؟ شامل پردازنده، رم، خروجی گرافیکی، هارد و کلاً مدیریت IO.

----------


## pswin.pooya

> در مورد ساخت کامپایلر بنده فقط کتاب طراحی کامپایلرهای دانشگاه را که پاس  کردم، مطالعه کردم. فکر می کردم زیاد پیچیده نباشه. شما چه منابعی را  پیشنهاد می کنید؟ برای مطالعه FPGA چه منابعی را پیشنهاد می کنید؟


نه انصافا سخته. البته در سطح مقدماتی کار ساده ای هست اما واقعا فوکوس کنید سخت میشه 

برای این مورد که منبع رو نت ریخته فقط باید سرج کنید:

http://ds9a.nl/lex-yacc/cvs/lex-yacc-howto.html
http://gnuu.org/2009/09/18/writing-y...-toy-compiler/


منبع برای FGPA کمه اما اگر توی تهران هستید می تونید به راحتی برید شرکت رهپویان علم صنعت آوا و دوره رو ببینید. پیشنهاد می کنم زبان verlog رو یاد بگیرید و با FPGAهای اسپارتان شروع کنید که نسبت به دیگه FPGA ها ارزون تر هستند و به نظرم نسبت به قیمتش بهتر. من خودم از برد زیر استفاده می کنم. اما برد درست حسابی بخوایید بالای 14 میلیون اینا آب میخوره:

http://www.revsa.ir/products/xilinx-...rtan6-ava6slx9





> ضمناً اگه منابع مالی تامین بشه خود شما می تونید یک کامپیوتر طراحی کنید و  بسازید؟ شامل پردازنده، رم، خروجی گرافیکی، هارد و کلاً مدیریت IO.


من رو بیخیال، کل متخصص های خاورمیانه و آسیا رو هم جمع کنید نمی تونید یه کامپیوتر از پایه بسازید جوری که بشه تولیدش کرد. البته می تونید کامپیوترهای در سطح 20 سال پیش و شاید حتی 30 سال پیش بسازید اما دیگه برای استفاده تجاری خیلی دیر شده و عملا امکان موفقیت منفی هست. 

کارهای سیستمی در این سطح رو بهتره برای دلتون انجام بدید و بیخیال پول باشید.(حداقل این مورد توی ایران 100 درصد صدق می کنه)

----------


## H_afkhami60

با توجه به فرمایشات شما، بنده اینطور برداشت می کنم که قسمت سخت قضیه، بخش سخت افزاری اون، یعنی ساخت پردازنده، رم، هارد و کارت گرافیک است و ساختن سیستم عامل قسمت راحت قضیه است و اگرچه زمانبر است، اما با تقسیم کار و اختصاص زمان قابل حل است. 




> کل متخصص های خاورمیانه و آسیا رو هم جمع کنید نمی تونید یه کامپیوتر از پایه بسازید جوری که بشه تولیدش کرد. البته می تونید کامپیوترهای در سطح 20 سال پیش و شاید حتی 30 سال پیش بسازید


دلیل شما برای این نظر چیه؟

----------


## pswin.pooya

> با توجه به فرمایشات شما، بنده اینطور برداشت می کنم که قسمت سخت قضیه، بخش  سخت افزاری اون، یعنی ساخت پردازنده، رم، هارد و کارت گرافیک است و ساختن  سیستم عامل قسمت راحت قضیه است و اگرچه زمانبر است، اما با تقسیم کار و  اختصاص زمان قابل حل است.


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




> یعنی ساخت پردازنده، رم، هارد و کارت گرافیک


بحث ساخت پردازنده با رم و ... خیلی فرق داره شما می تونید پردازنده بسازید اما از ram ddr استفاده کنید یا هر شکل دیگه و یا حتی چیپ گرافیکی دیگه مثلا داخل SOC های شرکت allwinner چندین هسته و ماژول و پردازنده از شرکت های مختلف وجود داره. 





> دلیل شما برای این نظر چیه؟


مطمئن باشید اگه میشد. سالها قبل روسها، چینی ها و یا ژاپنی ها اینکار رو می کردند. حتی چند تا کشور اروپایی هم که می تونن به شدت وابسته به تکنولوژی ها و مهندسین آمریکایی هستند. خلاصه کلام این تکنلوژی در سطح واقعی اون در دست تنها آمریکایی ها هست و کشورهای اروپایی یا تکنلوژی قدیمی رو دارن یا فقط معماری می کنن و به آمریکایی ها میدن. تو خود آمریکا هم تعداد شرکت هایی که این امکان رو دارن خیلی کم هست.

----------


## H_afkhami60

> تکنولوژی هسته ای یک باشه. تکنولوژی ساخت پردازنده 100 هست.


واقعاً 100 برابره یا منظورت اینه که خیلی پیچیده تره؟ 
اگه ما بخواهیم این پردازنده را در ابعاد متر طراحی کنیم و بسازیم مثلاً به اندازه یک استادیوم آیا باز هم نمی توانم؟ منظورم این است که منظور از پیچیدگی این تکنولوژی به خاطر ابعاد بسیار کوچک است یا به غیر از ابعاد باز هم پیچیدگیهای دیگری وجود دارد؟ 




> مطمئن باشید اگه میشد. سالها قبل روسها، چینی ها و یا ژاپنی ها اینکار رو می کردند. حتی چند تا کشور اروپایی هم که می تونن به شدت وابسته به تکنولوژی ها و مهندسین آمریکایی هستند. خلاصه کلام این تکنلوژی در سطح واقعی اون در دست تنها آمریکایی ها هست


آقاپویا شاید بقیه کشورها چون از لحاظ اقتصادی براشون مقرون به صرفه نبوده و نیاز مبرمی نداشتند، تحقیقات زیادی در این زمینه نکردند. نظرتون چیه؟

با تمام این تفاسیر حتماً شما تاریخچه این شرکت های آمریکایی را تا رسیدن به این نقطه مطالعه فرمودید. یعنی ما نمی تونیم همون راه را طی کنیم و موفق بشیم، حتی با صرف وقت و هزینه زیاد؟
نهایتاً جمع بندی بحث با شما. فرض بفرمائید دولت تصمیم گرفت یک سازمانی مثل سازمان هوا فضا، برای تحقیقات در زمینه ساخت پردازنده، تأسیس کنه و شما بشی رئیسش. این سازمان به چه تجهیزات و دستگاه هایی نیاز داره؟ به چه تخصص هایی نیاز داره؟ به چه نرم افزارهایی نیاز داره؟ چه فازهایی را برای رسیدن به هدف طراحی می کنید؟

----------


## pswin.pooya

> واقعاً 100 برابره یا منظورت اینه که خیلی پیچیده تره؟


به مراتب پیچیده تر هست.





> گه ما بخواهیم این پردازنده را در ابعاد متر طراحی کنیم و بسازیم مثلاً به  اندازه یک استادیوم آیا باز هم نمی توانم؟ منظورم این است که منظور از  پیچیدگی این تکنولوژی به خاطر ابعاد بسیار کوچک است یا به غیر از ابعاد باز  هم پیچیدگیهای دیگری وجود دارد؟


نقشه پنتیوم سه از نقشه شهر نیویورک با تمام کوچه و پس کوچه هاش بزرگتر هست. (حداقل من اینجوری شنیدم)





> آقاپویا شاید بقیه کشورها چون از لحاظ اقتصادی براشون مقرون به صرفه نبوده و  نیاز مبرمی نداشتند، تحقیقات زیادی در این زمینه نکردند. نظرتون چیه؟


این تکنولوژی بیشتر از اقتصادی از نظر نظامی اهمیت داره و توی نظام هم هیچ هزینه ای کم نیست مخصوصا  برای کشورهایی مثل روسیه و چین






> با تمام این تفاسیر حتماً شما تاریخچه این شرکت های آمریکایی را تا رسیدن  به این نقطه مطالعه فرمودید. یعنی ما نمی تونیم همون راه را طی کنیم و موفق  بشیم، حتی با صرف وقت و هزینه زیاد؟


شما برای رسیدن به این تکنولوژی نیاز دارید که تمام ابعاد اون رو داشته باشید از علوم شیمی و فیزیک و مکانیک گرفته تا فتونیک و کامپیوتر برای رسیدن به این علوم هم هنوز خیلی خیلی زود هست.






> نهایتاً جمع بندی بحث با شما. فرض بفرمائید دولت تصمیم گرفت یک سازمانی مثل  سازمان هوا فضا، برای تحقیقات در زمینه ساخت پردازنده، تأسیس کنه و شما  بشی رئیسش. این سازمان به چه تجهیزات و دستگاه هایی نیاز داره؟ به چه تخصص  هایی نیاز داره؟ چه فازهایی را برای رسیدن به هدف طراحی می کنید؟


برای اینکار فعلا کم هزینه ترین و بهترین راه استفاده از همون FPGA هست و بدون شرط باید روی این مورد کار شه که زودتر و بدون دور ریختن پول به نتیجه رسید. دانشگاه صنعتی اصفهان هم توی این زمینه خیلی کار کرده و به موفقیت های زیادی هم دست پیدا کرده اما خب هنوز حتی نقطه شروع هم به نظر من نیست. اما خب میشه یه قسمت از نیازها مخصوصا نیازهای نظامی رو بر آورده کرد. اما خب تا اون نقطه که شما فکر می کنید راه زیادی هستش. مثلا برای کاربردهای نظامی حتی پوشش پردازنده به جای پلاستیک باید یه نوع خاص سرامیک باشه که فقط چند کشور توان تولیدش رو دارن و .... 

گفتم کلا مربوط به یک علم نیست و علوم زیادی رو لازمه که روش کار کرد و البته روز به روز هم پردازنده ها دارن به شکل عجیبی پیچیده میشن که دیگه حتی درکش هم سخت شده چه برسه به اینکه بشه ساختش. نسلهای جدید مثل کوانتومی و یا پردازنده های نوری و ... دیگه عملا .... الان سرعت قویترین کامپیوترها اندازه سرعت مغز موش هست اما در سال 2050 با این تکنولوژی ها به مغز انسان میرسه که این یعنی تقریبا فیلم های علمی تخیلی واقعیت پیدا می کنن. فکر کنید که مغز انسان با چه سرعت بالایی قادر به تشخیص اشیاء و یا گفتار و ... هست و این قدرت بالا رو با امکانات تکنولوژی ترکیب کنید مثلا دوربین ها خاص، قدرت ذخیره و واکشی بالای داده و ... که عملا انسان هیچ قدرتی در مقابل پردازنده های مدرن نخواهد داشت

----------


## m.j_banitaba

با سلام به همه . یه چیزی به نظرم اومد خواستم بگم.



> شما برای رسیدن به این تکنولوژی نیاز دارید که تمام ابعاد اون رو داشته باشید از علوم شیمی و فیزیک و مکانیک گرفته تا فتونیک و کامپیوتر برای رسیدن به این علوم هم هنوز خیلی خیلی زود هست.


این چیزی که من اسمش رو گذاشتم روش حل مسئله . شما مسائل خود را چگونه حل می کنید؟ این جواب این سوال در غرب همینه به روش تفکیکی یعنی شکوندن مسئله به اجزا اون و حل تک تک اونها و دوباره سر هم کردن اونهاست . اما مشکل چیه که در ایران این روش جواب نمیده ؟ 
من دو دلیل به ذهنم می رسه اول اینکه سوال مشترک وجود نداره . دوم اینکه کی وظیفه هماهنگی یا راهبری پروژه را بر عهده داره ؟
ما دلیل اینکه چرا باید کاری به این روش انجام بشود را نمی دونیم . 
در ایران بدلیل سخت اجرا شدن قوانین ما همه چیز رو به گردن قانون می اندازیم . اما چیزی با لا تر از  قوانین و روابط اجتماعی وجود داره که تمام اینها بر پایه اون بنا می شن .قفل گمشده کلیدها . ما تمام کلید ها را داریم . اما قفل گمشده است.  
o-------m   o-------m   o-------m   o-------m   o-------m   o-------m   o-------m   o-------m   o-------m   o-------m   o-------m   o-------m   o-------m   o-------m   o-------m   o-------m   o-------m

----------


## pswin.pooya

> این چیزی که من اسمش رو گذاشتم روش حل مسئله . شما مسائل خود را چگونه حل  می کنید؟ این جواب این سوال در غرب همینه به روش تفکیکی یعنی شکوندن مسئله  به اجزا اون و حل تک تک اونها و دوباره سر هم کردن اونهاست . اما مشکل چیه  که در ایران این روش جواب نمیده ؟ 
> من دو دلیل به ذهنم می رسه اول اینکه سوال مشترک وجود نداره . دوم اینکه کی وظیفه هماهنگی یا راهبری پروژه را بر عهده داره ؟
> ما دلیل اینکه چرا باید کاری به این روش انجام بشود را نمی دونیم . 
> در ایران بدلیل سخت اجرا شدن قوانین ما همه چیز رو به گردن قانون می  اندازیم . اما چیزی با لا تر از  قوانین و روابط اجتماعی وجود داره که تمام  اینها بر پایه اون بنا می شن .قفل گمشده کلیدها . ما تمام کلید ها را  داریم . اما قفل گمشده است.


سلام

می تونی بیشتر توضیح بدی، نتونستم منظورت رو درست متوجه شم. چیزی که برداشت کردم این بود که می گفتی باید گروهی کار کرد؟ یا اینکه همه چیز رو خودمون انجام ندیم و ... ؟





> دوم اینکه کی وظیفه هماهنگی یا راهبری پروژه را بر عهده داره ؟


این ضعف دانشگاهی ما هستش. اصولا مکان خلق این آدم ها دانشگاه هست و نه جای دیگه. اما وقتی وضعیت علمی دانشگاه ها این همه خرابه و استادهای وارد کم هستن. خب این شکلی میشه. ما کل استادهای درست حسابی کشور رو جمع کنیم به زور می تونن جواب چند دانشگاه رو بدن نه اینهمه دانشگاهی که وجود داره. و بگذریم از مابقی موارد



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

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



نمی خوام ناامیدتون کنم اما زمانی باید در مورد خیلی مسائل با غرور صحبت کرد که وجود داشته باشه و گرنه همش توهم هست و توهم هم شکست.

----------


## m.j_banitaba

> نمی خوام ناامیدتون کنم اما زمانی باید در مورد خیلی مسائل با غرور صحبت کرد که وجود داشته باشه و گرنه همش توهم هست و توهم هم شکست.


منظورم این بود که من می خواهم نا امیدتون کنم . اونچه که ما در اینجا با هاش درگیر شدیم نبود چیزی که برای بدست آوردنش 200 سال طول کشید اما برای ما 500 سال طول خواهد کشید چون در اینجا حق باطل با هم قاطی شدن . اینکه ما توانستیم ماهواره به فضا بفرستیم به پشتوانه تولیدات و دانش کل بشره اما در نهایت ما خودمو را از این کل جدا می دونیم . انگار ما تافته جدا بافته هستیم . رک بگم تا طرز تفکر ما بر اساس جهل مرکب باشه و پیشرفت دیگران را به حساب جهالت خودمون بذاریم فردایی خواهیم داشت با توهم استقلال و آزادی . استقلال و آزادی در فکر و اندیشه بدست می آید و استقلال فکر واندیشه چیزی نیست که با بخش نامه و طراز نامه و من بمیرم و تو بمیری بدست بیاد . فکر و اندیشه عالمی جدا داره که کوته نظران را راه به آنجا نیست .

----------


## emadrezvani

با سلام.
بنده هم یه نظر کوتاه و مختصر در مورد بحث پیشرو داشتم که گفتنش خالی از لطف نیست.
در مورد پردازنده باید گفت که در سالهای ۸۰تا۸۴ پیشرفت های خوبی داشتیم. اما حالا کجاست ؟!  بنده خیلی دنبال کردم یه شرکت پردازنده ساز ایرانی(حداقل یه نسخه داده باشه که بشه روش حساب کرد) پیدا کنم اما چیزی دستگیرم نشد.
اینکه میگید منابع و مستندات لازم در مورد پردازنده های فعلی(مانند اینتل) موجود و یا قابل فهم نیست   یک حرف اشتباست ! هست. پیگیر نیست. 
تکنولوژی ساخت پردازنده هم وابسته به علم های دیگری هست که جناب پویا برخی از موارد رو مورد بحث بررسی قرار دادند. اما شدنی هست! 
در مورد سیستم عامل هم اصلا کار سختی نیست !! دوباره تاکیید می کنم ساخت سیستم عامل همچین سخت نیست. فقط توسعه یک سیستم عامل در گرو چند نکته اساسی هست :
اولین مورد اقتصاد هست ! و بودنش کاملا مشخصه. 
دومین مورد اعضای پای کار(کسی که نیاز رو درک کرده باشه) هست. حداقل ۵ نفر.
سومین و اساسی ترین مورد زیر ساخت هست. که این موجود هست ! 
چهارمین مورد بازار هست. که جواب این موضوع دست من نیست.
بنده در یک پست جدا بحث کردم که اگر من ۱۰نفر پای کار ثابت داشتم و مشکل مالی نداشتم(که سر کار نرم) حتما توی ۳-۴سال چیزی شبیه به NT4.0 بیرون خواهم داد(که البته سیستم عامل نه نرم افزارهای جانبی همراه)(منظور ساختار سیستم و فراخوانی های اون هست)

در مورد کامپایلر هم که مشکلی در ایران موجود نیست. هم آدمش هست هم دانشش!‌ فعلا ساختار زبان سی مشکلی برای توسعه نداره(البته مشکلات فراخوانی در لایه زیرین مورد بحث نیست).  اینکه چه کسی و چطور اون رو برای یک پردازنده پورت کرده باشه مهمه !

اما با تمام بحث های دیگه مشکل جای دیگریست! مشکل ما ایمه که کشور ما چند نفر مثل من داره احساس میکنیم علامه ... هستیم. بنده یه سیستم عامل با ۴خط کد نوشتم احساس می کنم بیل گیتسم.(حالا بگذریم که ۲تا نرم افزار لایه کاربرد طراحی کردن خودشونو ....)
دانشگاه هم اونطرف قضیه هست.که دوباره جناب شاهین فر مورد لطف قرار دادند! 
اما بنده آدمی نبودم که بخواهم با نا امیدی به موضوع نگاه کنم. چند صباحی هم روی سیستم عامل های x86 و پورت کردن اونها مطالعه داشتیم و به این نتیجه رسیدم که یکی از ضعف های کشور ما کمبود منابع فارسی در این مورد هست. 
از این جهت تصمیم به نگارش کتابی گرفتم که حدود ۵ فصلی از اون آماده هست. دوستان فکر کردند پروژه سیستم عامل کوثر متوقف شده. اما من تمام مراحل رو روی بررسی و آزمایش بنا کرده بودم تا مباحث آموزشی تکمیل شود. در طی نگارش هم به سیستم عامل هایی مثل آراکس هم نگاهی داشته ام.  به نظر من اگه یه منبع فارسی پایه برای دوستانی که حال و حوصله خوندن مطالب انگلیسی ندارند وجود داشت  شاید با این همه استعداد در این کشور  به جاهایی خیلی بالاتر رسیده بودیم. ما حتی دانشجویان کاردانی رو وادار به یادگیری ساختار سیستم عامل و نوشتن اون بکنیم شاید در  کارشناسی و ارشد طرح هایی داشته باشند که ... ! در زمانی که بنده تا پایان دوره کارشناسی باید با Turbo C++‎ کار کنم و اون هم در حد ... مطمئن باشید از دید من سیستم عامل یه موضوع سخت و پیچیده و غیر قابل پیاده سازی هست. این افرادی که در این حوزه حرفی برای گفتن داشته اند  در دانشگاه چیزی دستگری آنها نشده.
با آرزوی موفقیت برای دوستان.
وسلام علیکم و رحمه الله.

----------


## H_afkhami60

سلام




> اینکه میگید منابع و مستندات لازم در مورد پردازنده های فعلی(مانند اینتل) موجود و یا قابل فهم نیست یک حرف اشتباست ! هست. پیگیر نیست.


آقای رضوانی بنده به شما خدا قوت میگم. امیدوارم که در مراحل تکمیل سیستم عامل کوثر موفق باشید. قطعاً تجربیات جنابعالی از بنده بیشتر است. 
فکر میکنم با توجه به توضیحات شما مهندسان عزیز، در برهه کنونی که امکان ساخت پردازنده داخل کشور وجود ندارد و یا بسیار طول خواهد کشید، بهترین کار(برای مهندسان نرم افزار) این باشد که تصور کنیم پردازنده ساخته شده و حالا نوبت به ساخت سیستم عامل است. (البته میتونیم با توجه به پیشنهاد آقاپویا از تراشه های FPGA استفاده کنیم.) 
لطف بفرمائید، یکی از پردازنده های بروز شرکت اینتل (که هم اکنون بیشتر در بازار ایران در حال استفاده است) را به همراه مستندات و مشخصات کامل اون شامل لیست دستورات و ... که یک برنامه نویس سیستم عامل به آنها نیاز دارد را معرفی کنید. اگه لطف کنید بصورت pdf باشه خیلی مفیدتر خواهد بود.

----------


## emadrezvani

بنده تا قبل از شروع به کدنویسی سیستم عامل,  درک صحیحی در مورد مراحل طراحی اون نداشتم.  بله ! همینطوره. باید تا حدودی از پردازنده صرف نظر کرد(و یا حداقل مبنا رو یکی از پردازنده های موجود دونست). پیشتر نیز آقای پویا خان در مورد پورت کردن سیستم ها بحث کرد. 
بهتره برای شروع منبا رو روی پردازنده های موجود اینتل قرار داد. خوبی پردازنده های اینتل سازگاری اون با مدل های قدیمی این شرکت هست. یعنی شما از زمان ۸۰۸۶ تا پنتیوم تقریبا می تونید از یک مدل استفاده کنید.
اگه یه نگاه گذرا به این ساختار داشته باشیم اینه که سیستم کامپیوتر شما در زمان شروع به کار در مد حقیقی هست. مدحقیقی همان حالت ۸۰۸۶ قدیم هست. یعنی شما اگه سیستم عاملی داشته باشید که برای این پردازنده نوشته شده باشه بازم(تقریبا)برای سیستم های فعلی جواب میده. البته باید مد نظر داشت که پردازنده های بعد از اون ۸۰۸۶ ( به عنوان مثال ۸۰۴۸۶) دستورالعمل هایی در اختیار شما قرار می می دهند که شما رو وارد مد حفاظت شده قرار می دهند. یعنی همون پردازنده ۸۰۸۶ حالا بصورت پیشرفته تر عمل می کنه و قابلیت های بیشتری داره. حالا مد محافظت شده داستان های خاص خودش رو داره. مثلا دیگه خبری از وقفه های بایوس نیست یا ...  
اگه به مدل های هسته های سیستم عامل دقت کنید اولین لایه درگیر سخت افزار لایه HAL هست .این لایه رو برای هر نوع پردازنده ای بنویسید تقریبا معنی پورت کردن رو پیدا میکنه . یعنی هسته سیستم عامل شما برای یک سیستم دیگه قابل اجرا هست(البته پورت کامپایلر و .. )
برای مطالعه منابع اینتل(فارسی) به کتاب ریزپردازنده ها (سری اینتل) انتشارات نص رجوع کنید. همچنین کتاب پرفسور مزیدی هم بد نیست.
برای سیستم عامل هم تنن باوم - سیلبر شاتس برای دید کلی مفید هست.
برای زبان سی هم کتاب ساده خود دنیس ریچی(ترجمه فارسی) کافی هست. دقت کنید که در زمان طراحی سیستم عامل(از ابتدا) شما هیچ گونه تابع خاصی(مانند printf , ... ) در اختیار ندارید و باید توسط خودتون بازنویسی بشوند(البته libstl میشه .. )

کتاب بنده هم در مورد طراحی سیستم عامل هست که از کد های آراکس و کوثر استفاده می کنه . انشاا.. در چند ماه آینده در اختیار دوستان قرار میدم.

----------


## ReactByte

سلام.



> مطمئن باشید اگه میشد. سالها قبل روسها، چینی ها و یا ژاپنی ها اینکار رو می کردند.


چینی ها  مدتهاست از طرق مختلف(!) به تکنولوژي که میخوان دست پیدا می کنند.به عنوان نمونه هم میشه به کش رفتن نقشه های F-35 بیچاره از لاکهید مارتین اشاره کرد.  :لبخند گشاده!: 
در زمینه تولید پردازنده ها هم خدا خیرشون بده یه کارایی کردند : http://hardware.slashdot.org/story/1...tic-processors

----------


## emadrezvani

> چینی ها  مدتهاست از طرق مختلف(!) به تکنولوژي که میخوان دست پیدا می کنند.


این موضوع در ایران هم مشکلی نداره. پیگیر این قضیه فعلا موجود نیست(یا حداقل بنده اطلاع ندارم).  اون قضیه کش رفتن نقشه از لاکهید مارتین چیزی شبیه با نورث روپ برای ایران هست. در تمام دنیا موضوع سایبر مطرح هست. مال خودتو سفت بگیر همسایتو دزد نکن.

----------


## pswin.pooya

> چینی ها  مدتهاست از طرق مختلف(!) به تکنولوژي که میخوان دست پیدا می  کنند.به عنوان نمونه هم میشه به کش رفتن نقشه های F-35 بیچاره از لاکهید  مارتین اشاره کرد. 
> در زمینه تولید پردازنده ها هم خدا خیرشون بده یه کارایی کردند :



خوبه که مطلبی رو می خونید بهش دقت کنید. اول از همه این مطلب در مورد آینده صحبت می کنه نه اینکه ساخته شده. دو اینکه پردازنده MIPS هستش که پروفسور پترسون با راهنمایی اینتل و چند شرکت دیگه طراحی کرده. (این پردازنده جزء اولین پردازنده های RISC دنیا حساب میشه.) سوم اینکه داره میگه سوپر کامپیوتر، لازمه اضافه کنم که سوپر کامپیوتر روشهای مختلفی برای ساختش هست که از رایجترین های اون کلاستر هست که ما هم توی ایران داریم. شما می تونید انبوهی از پردازنده های ضعیف رو کنار هم قرار بدید و سوپر کامپیوتر بسازید. (پس قدرت پردازنده، تکنولوژی ساخت و اصلا اینکه دای وجود داره یا نه و ...  مشخص نیست) بگذریم از اینکه خود مطلب هم اعتبارش می تونه جای سوال باشه. سعی کنید قبل از لینک دادن دقت کنید.


من دیگه فکر کنم خسته شده ام از بس گفتم من دارم با ابعاد امروزی  پردازنده های روز و البته تولید عمده صحبت می کنم. بله همین الان خود من می  تونم تا چند روز یه پردازنده کوچیک درست کنم. اما اون چیزی که که از  پردازنده های امروزی سراغ داریم خیلی فرق میکنه با اون چیزی که بشه توی کوتاه مدت درستش کرد.





> کتاب بنده هم در مورد طراحی سیستم عامل هست که از کد های آراکس و کوثر  استفاده می کنه . انشاا.. در چند ماه آینده در اختیار دوستان قرار میدم.


خیلی خوبه منتظرش هستیم. 





> اما بنده آدمی نبودم که بخواهم با نا امیدی به موضوع نگاه کنم. چند صباحی  هم روی سیستم عامل های x86 و پورت کردن اونها مطالعه داشتیم و به این نتیجه  رسیدم که یکی از ضعف های کشور ما کمبود منابع فارسی در این مورد هست.


من با ترجمه فارسی مخالفم چون آسیب های جدی که ما داریم می بینیم از همین قضیه شروع میشه. اصولا کسایی که میخوان اینکار رو شروع کنن باید تسلط کافی رو داشته باشن که بتونن تحقیق کنن. موضوع بدتر اینه که شما در ترجمه فارسی می تونید برداشت خودتون رو داشته باشید که با دیدگاه خودتون درست باشه اما نویسنده دیدگاه دیگه ای داشته 




> اینکه میگید منابع و مستندات لازم در مورد پردازنده های فعلی(مانند  اینتل) موجود و یا قابل فهم نیست یک حرف اشتباست ! هست. پیگیر نیست.


100 درصد تایید می کنم. مستندات کامل دقیق هستن. منتها حوصله ما نمی کشه اونها رو بخونیم.




> سیستم کامپیوتر شما در زمان شروع به کار در مد حقیقی هست.


از کامپیوتر به کامپیوتر فرق میکنه. تا اونجا که من می دونم در فریم ویر های EFI و UEFI قضیه فرق می کنه و اونها مستقیما در pmode یا real mode اجرا میشن. (البته اینور اونور خودندم و مستنداتش رو هنوز مطالعه نکردم، شاید اشتباه باشه)

----------


## m.j_banitaba

> چینی ها مدتهاست از طرق مختلف(!) به تکنولوژي که میخوان دست پیدا می کنند.به عنوان نمونه هم میشه به کش رفتن نقشه های F-35 بیچاره از لاکهید مارتین اشاره کرد.


ای دوست شکر بهتر یا آنک شکر سازد

خوبی قمر بهتر یا آنک قمر سازد

ای باغ توی خوشتر یا گلشن گل در تو

یا آنک برآرد گل صد نرگس تر سازد

ای عقل تو به باشی در دانش و در بینش

یا آنک به هر لحظه صد عقل و نظر سازد

ای عشق اگر چه تو آشفته و پرتابی

چیزیست که از آتش بر عشق کمر سازد

بیخود شده آنم سرگشته و حیرانم

گاهیم بسوزد پر گاهی سر و پر سازد

دریای دل از لطفش پرخسرو و پرشیرین

وز قطره اندیشه صد گونه گهر سازد

آن جمله گهرها را اندرشکند در عشق

وان عشق عجایب را هم چیز دگر سازد

شمس الحق تبریزی چون شمس دل ما را

در فعل کند تیغی در ذات سپر سازد

----------


## H_afkhami60

سلام

مهندسان گرامی بنده همیشه فکر می کردم که درس تاریخ فقط برای سرگرمی خوبه. اما اخیراً متوجه شدم که اشتباه می کردم. چند دقیقه پیش داشتم تاریخچه ساخت میکروپروسسورها را مطالعه میکردم:
در سال 1971 اینتل اولین میکروپروسسور را ساخت. 4 بیتی. مهمترین کارش جمع کردن 2 عدد 4بیتی بود. قادر بود 4096 مکان از حافظه را آدرس دهی کنه.(ساخته شده برای ماشین حساب)
در سال 1972 اینتل دومین میکروپروسسور خودش را ساخت. 8 بیتی. دارای قابلیت آدرس دهی 16 کیلوبایت مکان از حافظه و اجرای 45 دستورالعمل.
در سال 1974 اینتل سومین میکروپروسسور خودش را ساخت. 8 بیتی. دارای قابلیت آدرس دهی 64 کیلوبایت مکان از حافظه و اجرای 75 دستورالعمل. (باعث تولد کامپیوترهای خانگی شد.)
در سال 1976 شرکت Zilog میکروپروسسور Z80 را ساخت. 8 بیتی. دارای قابلیت آدرس دهی 64 کیلوبایت مکان از حافظه و اجرای 176 دستورالعمل.
ساخت میکروپروسسور 16 بیتی سالها بعد اتفاق افتاد(با پیشرفت صنعت نیمه هادی)

مهندسان عزیز توجه داشته باشید که امروز ناسلامتی ما به عنوان مهندسان کامپیوتر مملکت هستیم و باید احساس مسئولیت کنیم. باید طوری عمل کنیم که آیندگان به ما افتخار کنند. باید با توکل بر خدا کار را شروع کنیم. نباید انتظار داشته باشیم که در طول 5 سال یا 10 سال به فناوری های امروز پردازنده ها دست پیدا کنیم. نباید از خودمان انتظار داشته باشیم که 10 ساله به مرز این علم برسیم. اما باید از خودمان انتظار داشته باشیم که لااقل اینکار را امروز شروع کنیم و تلاش خود را انجام دهیم. قظعاً موفق خواهیم شد. معروفه دیگه: از تو حرکت از خدا برکت. طولانی ترین راه ها از قدمهای نیم متری تشکیل شده اند. خودمان را باور کنیم. اما به خودمان مغرور نشویم. مآیوس هم نشویم. انتقاد هم هیچ فایده ای ندارد. از حداقل ها شروع کنیم. می تونیم با پروتئوس شروع کنیم. اینتل همین پروتئوس را هم نداشت. اینتل بعد از 44 سال حالا به این نقطه رسیده، نه 2 ساله، نه 10 ساله.

موفق و سربلند باشید.

----------


## emadrezvani

> از کامپیوتر به کامپیوتر فرق میکنه. تا اونجا که من می دونم در فریم ویر  های EFI و UEFI قضیه فرق می کنه و اونها مستقیما در pmode یا real mode  اجرا میشن. (البته اینور اونور خودندم و مستنداتش رو هنوز مطالعه نکردم،  شاید اشتباه باشه)


 و البته من مرسوم کامپیوترهای سازگار با IBM رو گفتم. بله . در ساختار EFI موضوع بارگذاری مقداری فرق میکنه. اما مدحقیقی و مدمحافظت شده نسبت به شرایط هست. تنظیم یا خارج کردن از تنظیم بیت PE در Cr0 .(ضمن سازگاری با بارگذارای قدیمی که برای BIOS نوشته شده بودند)




> سلام
> 
> مهندسان گرامی بنده همیشه فکر می کردم که درس تاریخ فقط برای سرگرمی خوبه.  اما اخیراً متوجه شدم که اشتباه می کردم. چند دقیقه پیش داشتم تاریخچه ساخت  میکروپروسسورها را مطالعه میکردم:
> در سال 1971 اینتل اولین میکروپروسسور را ساخت. 4 بیتی. مهمترین کارش جمع  کردن 2 عدد 4بیتی بود. قادر بود 4096 مکان از حافظه را آدرس دهی کنه.(ساخته  شده برای ماشین حساب)
> در سال 1972 اینتل دومین میکروپروسسور خودش را ساخت. 8 بیتی. دارای قابلیت  آدرس دهی 16 کیلوبایت مکان از حافظه و اجرای 45 دستورالعمل.
> در سال 1974 اینتل سومین میکروپروسسور خودش را ساخت. 8 بیتی. دارای قابلیت  آدرس دهی 64 کیلوبایت مکان از حافظه و اجرای 75 دستورالعمل. (باعث تولد  کامپیوترهای خانگی شد.)
> در سال 1976 شرکت Zilog میکروپروسسور Z80 را ساخت. 8 بیتی. دارای قابلیت آدرس دهی 64 کیلوبایت مکان از حافظه و اجرای 176 دستورالعمل.
> ساخت میکروپروسسور 16 بیتی سالها بعد اتفاق افتاد(با پیشرفت صنعت نیمه هادی)


اینتل از ۴۰۰۴ تا ۸۰۸۵ فقط یکی از سازندگان تراشه بود که رقیب های اون کم نبودند. اما زمانی که ۸۰۸۸ رو ارائه کرد و IBM اون رو برای کامپیوترهای خانگی انتخاب کرد, عملا بخت روی اینتل باز شد و سالهاست بر عرصه پردازنده یکتنه میتازه.  موتورولا و دیگران هم کارایی کردند که در جای خودش جالب بوده. بد نیست مطالعه ای هم روی اونها داشته باشید. یا مثلا اپل تا قبل ۲۰۰۵ بیشتر محصولات روی اینتل یا ساپورت نمیشد یا باید پورت می کردین.

----------


## pswin.pooya

> موتورولا و دیگران هم کارایی کردند که در جای خودش جالب بوده.


آگر  موتورلا شیش ماه زودتر پردازنده خودش رو میداد بیرون به احتمال قوی IBM  ازش استفاده می کرد اما بجاش اپل استفاده کرده که تا سالها هم همین برگ  برنده اپل بودش اما خب توسعه پردازنده موتورلا زیاد خوب پیش نرفت و اینتل  زود چلو زدش ولی از نظر ساختار به مراتب بهتر بودش.




> تنظیم یا خارج کردن از تنظیم بیت PE در Cr0 .(ضمن سازگاری با بارگذارای قدیمی که برای BIOS نوشته شده بودند)


درسته  میشه برگشت انجام داد اما خب به این راحتی هم نیست و شما حتما باید کد 64  بیتی و یا 32 بیتی رو هم داشت و الان تمام سیستم های جدید دیگه با EFI  ساپورت میشن و مسائل سخت افزاری باعث شده که برگشت هم کم کم غیر ممکن شه.  مثلا بایوس فقط هاردهای زیر 2 گیگابایت رو ساپورت میکنه و... 





> مهندسان عزیز توجه داشته باشید که امروز ناسلامتی ما به عنوان مهندسان  کامپیوتر مملکت هستیم و باید احساس مسئولیت کنیم. باید طوری عمل کنیم که  آیندگان به ما افتخار کنند. باید با توکل بر خدا کار را شروع کنیم. نباید  انتظار داشته باشیم که در طول 5 سال یا 10 سال به فناوری های امروز  پردازنده ها دست پیدا کنیم.


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

----------


## H_afkhami60

سلام

با توجه به نظرات و پیشنهادات شما مهندسان عزیز در این تاپیک، برای شروع ساخت پردازنده مراحل زیر پیشنهاد می شود:

1- مطالعه دقیق کتاب ریزپردازنده Z80 ترجمه دکتر سعید حسین نیا، استادیار دانشکده برق و کامپیوتر دانشگاه صنعتی اصفهان 
2- طراحی و پیاده سازی ریزپردازنده با استفاده از نرم افزار پروتئوس که حداقل توانایی اجرای 50 دستورالعمل ضروری را داشته باشد.
3- پیاده سازی ریزپردازنده با استفاده از زبان VHDL بر روی تراشه FPGA (با توجه به پیشنهاد بسیار مفید آقا پویا) 
4- طراحی اسمبلر مخصوص این ریزپردازنده
5- طراحی کامپایلر مخصوص این ریزپردازنده
6- طراحی یک نرم افزار با استفاده از این کامپایلر
7- طراحی سیستم عامل با استفاده از کامپایلر طراحی شده

مهندسان عزیز با تامل دقیق بر روی این مراحل در صورتی که پیشنهاد یا اصلاحیه ای نیاز می بینید، ذکر بفرمایید.
فکر میکنم انگیزه ای که می تواند خیلی بادوام باشد، تابتوانیم شروع به طی کردن این مراحل و مراحل بعدی کنیم، این باشد که به اینکار به چشم یک جهاد علمی نگاه کنیم تا هیچ خستگی، سختی و شکستی نتواند ما را مایوس کند.

موفق و سربلند باشید.

----------


## pswin.pooya

> 1- مطالعه دقیق کتاب ریزپردازنده Z80 ترجمه دکتر سعید حسین نیا، استادیار دانشکده برق و کامپیوتر دانشگاه صنعتی اصفهان


این ریز پردازنده یکم برای شروع پیچیده هستش. پیشنهاد می کنم یک کتاب قدیمی که کامپیوترهای SAP  رو میسازه رو مطالعه کنید. متاسفانه من نسخه ای رو داشتم که چند بار از روش کپی گرفته شده بود و خیلی قسمت ها منهدم شده بود. سعی می کنم پیداش کنم. این کتاب سه تا کامپیوتر رو با استفاده از تراشه های TTL (سری 74 ) میسازه که توی بازار ایران راحت پیدا میشه. برای شروع از پردازنده های پیچیده دوری کنید.

این بعضی از فصل هاش هست:
http://www.scribd.com/doc/123271656/...omputer#scribd
https://prezi.com/hzs87tnp36fq/sap1s...ible-computer/


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

کتاب جدید موریس مانو هم که ترجمه نشده و روی نت هم به زور گیر میاد مفیده. (متاسفانه بازم این رو کپیش رو دارم)




> 2- طراحی و پیاده سازی ریزپردازنده با استفاده از نرم افزار پروتئوس که حداقل توانایی اجرای 50 دستورالعمل ضروری را داشته باشد.


اگر کتاب پترسون رو بخونید می فهمید که ایده اشتباهی هست. با اون باشه یه پردازنده فول فیچر رو با 30 تا دستورالعمل میسازه.




> 3- پیاده سازی ریزپردازنده با استفاده از زبان VHDL بر روی تراشه FPGA (با توجه به پیشنهاد بسیار مفید آقا پویا)


verilog رو پیشنهاد میکنم. هم راحتر هست هم اینکه ترجیح اکثر کسایی هست که کار میکنن. البته زبان دیگه هم که میشه گفت از خانواده C هستن به اسم System C هم وجود داره.


اما قبل از هر چیز پیشنهاد می کنم با پردازنده های زیادی مخصوصا ARM کار کنید. این پردازنده می تونه دید طراحی شما رو کاملا متحول کنه. توی طراحی سیستم عامل و پردازنده هر چه بیشتر بدونید بهتر هست. برای ARM هم می تونید از میکرو کنترلر های اون استفاده کنید. میکرو درست حسابی LPC1768 هست و میکرو های stm. (منتها برای stm مستندات خیلی کم هست. و تجربه کاربران ابرانی هم کمتر اما هرکی کار کرده دیگه ازش دست نکشیده) و به هیچ عنوان هم سراغ میکروهای ATMEL مثل سری at91 نرید.

معماری پردازنده MIPS که توی کتاب تتباوم هم هست جالبه و می تونه مفید باشه. 

و تجربه عملی الکترونیک هم که جای خود داره. هر چه قدر بیشتر تجربه کنید بهتر هستش از ساخت منبع های تغذیه مختلف گرفته تا ساخت برد و راه اندازه دستگاه ی جانبی و .... (یه تجربه درست حسابی میکرو کنترلری خیلی می تونه مفید باشه)

----------


## emadrezvani

بنده هم با جناب شاهین فر موافقم.
ضمن اینکه دید کافی در مورد الکترونیک و بخصوص دیجیتال در مورد ساخت پردازنده خیلی میتونه کمکتون کنه.



> ... یک کتاب قدیمی که کامپیوترهای SAP  رو میسازه رو مطالعه ...


حتما انتشارات این کتاب رو پیدا کنید.



> این کتاب سه تا کامپیوتر رو با استفاده از تراشه های TTL (سری 74 ) میسازه که توی بازار ایران راحت پیدا میشه.


بنده هم توصیه میکنم دوستان حتما دیجیتال رو یه بار مرور کنند(مخصولا کار با همین TTL ها برای ارتباط های حافظه)



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


بله. کتاب عالی هست. حتما کتاب ریزپردازنده های اینتل رو از همین انتشارات تهیه کنید. کتابی بس سنگین هست.



> اما قبل از هر چیز پیشنهاد می کنم با پردازنده های زیادی مخصوصا ARM کار  کنید. این پردازنده می تونه دید طراحی شما رو کاملا متحول کنه. توی طراحی  سیستم عامل و پردازنده هر چه بیشتر بدونید بهتر هست. برای ARM هم می تونید  از میکرو کنترلر های اون استفاده کنید. میکرو درست حسابی LPC1768 هست و  میکرو های stm. (منتها برای stm مستندات خیلی کم هست. و تجربه کاربران  ابرانی هم کمتر اما هرکی کار کرده دیگه ازش دست نکشیده) و به هیچ عنوان هم  سراغ میکروهای ATMEL مثل سری at91 نرید.


بنده هم به شدت و به شدت پیشنهاد میکنم دوستان با ARM تجربه کاری داشته باشند. برای شروع هم میتونند از بردهای کویر الکترونیک LPC17xx استفاده کنند.

اما در مورد طراحی پردازنده فعلا نظری ندارم(به دلایل خاصی). اما پیشنهاد میکنم دوستان حتما پیگیری کنند(ولو در حد آشنایی طراحی).

----------


## pswin.pooya

> بنده هم به شدت و به شدت پیشنهاد میکنم دوستان با ARM تجربه کاری داشته  باشند. برای شروع هم میتونند از بردهای کویر الکترونیک LPC17xx استفاده  کنند.


چند تا بورد هستش که بنظر من این بورد از همه بهتره منتها قیمتش زیاده:
http://www.kavirelectronic.ir/eshop/...%AF%DB%8C.html


اگر برد ارزون می خوایین می تونید از هدر برد ECA استفاده کنید. منتها بعدا هم از ساپورتشون، هم کیفیت و هم اینکه برای راه اندازی امکانات جانبی پشیمون میشید. 





> بله. کتاب عالی هست. حتما کتاب ریزپردازنده های اینتل رو از همین انتشارات تهیه کنید. کتابی بس سنگین هست.


البته چند کتاب وجود داره، کتاب Barry B. Brey ویرایش هفتش رو نض ترجمه کرده. آخرینش هم ویرایش هشت هست منتها متاسفانه نویسنده فوت کرده و کتاب دیگه به روز نمیشه. کتاب Modern X86 Assembly Languages نوشته Daniel Kusswurm خیلی به روز تر هست منتها دیگه توش شرح برخی از قطعات قدیمی مرتبط با X86 مثل آی.سی های PIC و PIT و ... نیستش. کتاب مزیدی هم می تونه مفید باشه.

کلا اگر هدف اسمبلی باشه کتاب Modern X86 بهتره (چون الان فقط در حالتهای خاص و از دستورهای خاص اسمبلی بصورت مستقیم استفاده میشه مثلا از مجموعه دستورهای SSE2 و بالاتر در بازی سازی برای ضرب ماتریسی سریعتر استفاده میشه) اما اگر هدفتون ساختار شناسی هست کتاب Barry B. Brey و مزیدی مفید تر هست. 

کتابهای دیگه هم هست که الان متوجه شدم گمش کردم این کتاب هم مثلا توضیح میده چرا نباید از قابلیت های مولتی تسکینگ و ... استفاده کرد و یا چه چیزی بهتره و کجا به درد می خوره.

----------


## H_afkhami60

> البته چند کتاب وجود داره، کتاب Barry B. Brey ویرایش هفتش رو نص ترجمه کرده. آخرینش هم ویرایش هشت هست منتها متاسفانه نویسنده فوت کرده و کتاب دیگه به روز نمیشه. کتاب Modern X86 Assembly Languages نوشته Daniel Kusswurm خیلی به روز تر هست منتها دیگه توش شرح برخی از قطعات قدیمی مرتبط با X86 مثل آی.سی های PIC و PIT و ... نیستش. کتاب مزیدی هم می تونه مفید باشه.
> 
> کلا اگر هدف اسمبلی باشه کتاب Modern X86 بهتره (چون الان فقط در حالتهای خاص و از دستورهای خاص اسمبلی بصورت مستقیم استفاده میشه مثلا از مجموعه دستورهای SSE2 و بالاتر در بازی سازی برای ضرب ماتریسی سریعتر استفاده میشه) اما اگر هدفتون ساختار شناسی هست کتاب Barry B. Brey و مزیدی مفید تر هست.


آقا پویا لطف کنید سرفصل های این کتابها را ذکر کنید، چون فکر می کنم، اینطوری انگیزه بیشتری برای مطالعه این کتابها بوجود میاد.

----------


## emadrezvani

بله. من کتاب Brey رو پیشتر گفتم که مطالعه کنند(اسم کتاب ریزپردازنده های اینتل هست) و فکر کنم مرجع خوبی باشه. مزیدی خیلی کلی گفته. اما این خیلی ریزتر شده و من خیلی میپسندم.



> آخرینش هم ویرایش هشت هست منتها متاسفانه نویسنده فوت کرده و کتاب دیگه به روز نمیشه.


آقای سید جمال میرحسینی رو میگید‌؟! آخه دوتا ویرایش رو نص داره. یکی 2006 و یکی 2008.

----------


## pswin.pooya

> آقای سید جمال میرحسینی رو میگید‌؟! آخه دوتا ویرایش رو نص داره. یکی 2006 و یکی 2008.


اونایی که من دیدم همه ویرایش هفتم بودن. حالا اگر 2008 باشه امکان داره ویرایش هشتم باشه. من انگلیسیش رو خودندم.




> آقا پویا لطف کنید سرفصل های این کتابها را ذکر کنید، چون فکر می کنم، اینطوری انگیزه بیشتری برای مطالعه این کتابها بوجود میاد.


آقا نمیشه اون همه رو اینجا دادش. کلا سرفصلهاش اسمبلی  و x86 هست. اما نه اونی که توی کتابهای فارسی رایجه

----------


## H_afkhami60

سلام

آقا پویا داشتم پست های قبلی را مطالعه می کردم، رسیدم به این جمله شما:



> به هیچ عنوان هم سراغ میکروهای ATMEL مثل سری at91 نرید.


علت این نظرتون چیه؟

----------


## pswin.pooya

> علت این نظرتون چیه؟


قیمت زیادامکانات کمسری ARM پایین تر (اگر درست یادم باشه ARM 7 TMDI هست که از ARM Cortex-M3  پردازنده LPC1768 و پردازنده های STM F103 قدیمی تره)سرعت کمترحافظه فلش کمتر (نسبت به قیمت)....

کلا هیچ مزیتی ندارن حتی نسبت به سری های هم خانواده آنها توی LPC23xx . کم کم ریسورس LPC1768 هم داره نسبت به اونها بیشتر میشه (تنها دلیلی که هنوز توی بازار هستن به نظرم همین بود). 

لینک زیر مشخصات چند تا مدل هستش که می تونید مقایسه کنید خودتون:

http://www.kavirelectronic.ir/eshop/...32f107vc6.html
http://www.kavirelectronic.ir/eshop/...%A7%D9%84.html
http://www.kavirelectronic.ir/eshop/...-original.html
http://eshop.eca.ir/arm/354-AT91SAM7X256.html

----------


## H_afkhami60

سلام

مهندسان عزیز، امروز تمام پست های این تاپیک را دوباره مرور کردم. 



> در مورد پردازنده باید گفت که در سالهای ۸۰تا۸۴ پیشرفت های خوبی داشتیم.


اطلاع دارید تا کجا پیشرفت کردند؟

مطلب دیگه اینکه:
یادم افتاد چند سال پیش، اخبار گفت که دانشگاه امیر کبیر یک ابررایانه ساخته. آیا این به معنی ساخت قطعات از جمله ریزپردازنده توسط این دانشگاه است؟

مطلب دیگه اینکه:
هرچی گشتم نتونستم کتاب ریزپردازنده های اینتل ترجمه میرحسینی را که دوستان فرمودند، پیدا کنم اما ترجمه سپیدنام را میشه پیدا کرد. آیا ترجمه سپیدنام هم خوبه؟
فعلاً کتاب ریزپردازنده های پیشرفته تالیف دکتر سید احمد معتمدی را مطالعه کردم. این کتاب هم کتاب به روزیه و از 8086 تاکنون را بررسی میکنه و حالت حفاظت شده را هم تشریح میکنه.

با مطالعاتی که تا حالا داشتم به اینجا رسیدم که مهمترین عواملی که باعث بالا رفتن سرعت و قابلیت های پردازنده ها از 8086 و Z80 تاکنون شده عبارتند از: پیشرفت های صنعت الکترونیک،استفاده از کش، آدرس دهی مجازی، استفاده از چند خط پردازش(لوله)، حفاظت از حافظه تخصیص داده شده به برنامه ها، داشتن مد هسته و غیرهسته(چندکار).

مطلب دیگه اینکه بنده در مرحله دوم هستم:



> 2- طراحی و پیاده سازی ریزپردازنده با استفاده از نرم افزار پروتئوس که حداقل توانایی اجرای 50 دستورالعمل ضروری را داشته باشد.


بررسی زیادی روی پروتئوس انجام دادم. حداکثر امکاناتی که این شبیه ساز برای ساخت ریزپردازنده میتونه در اختیار ما بذاره عبارتند از:
1- جمع کننده 4 بیتی (7483)
2- MUX 16*1 و MUX 8*1 که (74150 و 74151)
3- رجیستر 8 بیتی
4- دیکدر 4 به 16
5- memory_12_8 که 12 خط برای آدرس دهی دارد. امکان لود کردن فایل باینری را می دهد. امکان نوشتن در آن وجود دارد.

دوستان شاهد هستید که این امکانات برای شروع بد نیست. اما ضعیف است. آیا شبیه ساز بهتری سراغ ندارید؟

کار دیگه ای که توی این مرحله انجام دادم بررسی و تعیین ثبات های مورد نیاز پردازنده و تهیه مجموعه دستورالعمل های پردازنده و تخصیص رمز منحصر به فرد به هر یک از آنهاست. با تمام تلاشی که انجام دادم نهایتاً نتوانستم تعداد آنها را از 56 عدد کمتر کنم. این مجموعه کامل است و شامل تمام دستورالعملهای مورد نیاز برای انتقال اطلاعات، حسابی و منطق و کنترل ریزپردازنده است. البته به احتمال زیاد در مراحل بعدی ممکن است تغییرات جزئی در تعداد آنها بوجود آید.

و من الله التوفیق

----------


## pswin.pooya

> یادم افتاد چند سال پیش، اخبار گفت که دانشگاه امیر کبیر یک ابررایانه  ساخته. آیا این به معنی ساخت قطعات از جمله ریزپردازنده توسط این دانشگاه  است؟


یه ابر رایانه رو میشه با تعداد زیادی کامپیوترهای یکریخت ساخت که بهش کلاستر میگن. مثلا نیروی هوایی آمریکا یه ایر رایانه با playstion 3 ساخته:

www.geeks3d.com/20101210/a-cluster-with-1760-playstation-3-for-the-us-army/

دانشگاه امیر کبیر هم همین کار رو کرده.




> با مطالعاتی که تا حالا داشتم به اینجا رسیدم که مهمترین عواملی که باعث  بالا رفتن سرعت و قابلیت های پردازنده ها از 8086 و Z80 تاکنون شده عبارتند  از: پیشرفت های صنعت الکترونیک،استفاده از کش، آدرس دهی مجازی، استفاده از  چند خط پردازش(لوله)، حفاظت از حافظه تخصیص داده شده به برنامه ها، داشتن  مد هسته و غیرهسته(چندکار).


خب اینها کلا مربوط به معماری کامپیوتر هست. عوامل خیلی بیشتر از اینها می تونه باشه.




> بررسی زیادی روی پروتئوس انجام دادم. حداکثر امکاناتی که این شبیه ساز برای ساخت ریزپردازنده میتونه در اختیار ما بذاره عبارتند از:


1. تمام این قطعات رو میتونی از بازار هم تهیه کنی (سری LS یا FS رو بگیر توی بازار معمولا HS است)
2. شبیه سازی پروتیوس اصلا معتبر نیست.
3. معمولا قطعات دیگه ای استفاده میشه اونم بخاطر خطوط کنترلی مورد نیاز هست که از طرف CU باید مدیریت شن. کتاب SAP همه اینها رو گفته




> کار دیگه ای که توی این مرحله انجام دادم بررسی و تعیین ثبات های مورد نیاز  پردازنده و تهیه مجموعه دستورالعمل های پردازنده و تخصیص رمز منحصر به فرد  به هر یک از آنهاست. با تمام تلاشی که انجام دادم نهایتاً نتوانستم تعداد  آنها را از 56 عدد کمتر کنم. این مجموعه کامل است و شامل تمام  دستورالعملهای مورد نیاز برای انتقال اطلاعات، حسابی و منطق و کنترل  ریزپردازنده است. البته به احتمال زیاد در مراحل بعدی ممکن است تغییرات  جزئی در تعداد آنها بوجود آید.


بهتر اول اون کتاب هایی رو که گفتم کامل بخونی. من مطمئنم که با تعداد کمتر دستورها میشه پردازنده های پیشرفته ای رو ساخت. مثلا MIPS و یا ARM . تعداد زیاد دستور خوب نیست و مشکلات زیادی رو به وجود میاره. مثلا یه پردازنده 2 گیگا هرتر و هشت هسته ARM از شرکت Allwinners نیازی به فن نداره اما یه پردازنده 1 گیگا هرتری تک هسته شرکت اینتل باید کلی سیستم خنک کننده داشته باشه. خب اینها همه تفاوت معماری ها هستن. 

و بزرگترین مشکل های شرکت اینتل از نظر ISA:

1. تعداد زیاد دستورها ( همون نسخه های اولیه هم نزدیک 100 دستور داشتن)
2. طول متفاوت دستورها ( از یک تا 15 بایت)
3. حفظ سازگاری با ویرایش های قبلی
4. تعداد کم ثباتها (توی ویرایش های بعدی زیاد شدش) . البته این زیاد هم به ISA مربوط نیست اما تاثیر مستقیم روش داره.

برای کنترل تعداد دستورها اول از همه اونها رو دسته بندی کن

1. مثلا دستورهای محاسباتی
2. دستورهای پرش
3. دستورهای انتقال ثبات و ...

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

نکته دیگه اینه که لازم نیست همه دستورها همه کارها رو انجام بدن. مثلا دستورهای محاسباتی لازم نیست هم از حافظه بخونن و هم اینکه محاسبه رو انجام بدن اونها می تونن فقط روی ثبات ها کار کنن و کار انتقال داده رو یه دستور دیگه انجام بده.

معماری ARM یه رنج زیاد دستورها رو با 4 پرچم کنترلی توی همه دستورها حذف کرده. و چند پرچم دیگه برای شناسایی گروه دستور. مثلا یه ایده خوب می تونه این باشه که مثلا گروهی با opcode دوازده کارش محاسبات باشه. حالا نوع محاسبه رو بیت های بعدی مشخص کنه و ثبات مبدا و مقصد رو بیتهای دیگه

----------


## H_afkhami60

سلام 

بنده زمانیکه تصمیم به انتخاب ثبات ها و دستورالعمل ها گرفتم، هدفم این بود که هم تعداد ثبات ها و هم تعداد دستور العملها حداقل بشه، چون اینطوری هم پیاده سازی اون راحتتره، هم هزینه ساخت کمتر میشه، هم کمتر داغ می کنه. البته وقتی که دستورالعملها کمتر بشه، برنامه نویس مجبوره برای رسیدن به بعضی از دستورالعملهایی که وجود ندارند، از ترکیب چند دستورالعمل استفاده کند که باعث بالا رفتن حجم برنامه شده و این یعنی پردازنده به جای یک دستور، مجبور است چند دستور را اجرا کند که این مسئله خود باعث بیشتر گرم شدن پردازنده خواهد شد. بنابراین باید توازنی میان تعداد دستورالعمل و کامل بودن مجموعه دستوالعمل برقرار بشه.

نهایتاً بنده به لیست فایل پیوست رسیدم. به نظر شما کدام یک از دستورات قابل حذف هستند؟
البته همین الآن شما می توانید 8 عدد از این دستوالعملها را ندید بگیرید. چون آنها به خاطر نبود رجیستر 16 بیتی در پروتئوس و استفاده از رجیستر 8 بیتی در نظر گرفته شده اند. در واقع تعداد دستورالعمل ها 48 عدد است.(دستوراتی که عدد 2 در انتهای آنها آمده است مثل LDPC2)
رجیستر IR هشت بیتی است که در فایل پیوست اشتباهاً 16 بیتی نوشته شده. به غیر از چند دستور که 3 بایتی هستند، اکثر دستورات یک بایتی هستند. بایت دوم و سوم دستورات 3 بایتی، پس از دیکد شدن دستورالعمل، از حافظه لود شده و در یک ثبات پنهان 16 بیتی قرار می گیرد.

----------


## H_afkhami60

سلام 

دستورالعمل LDPC حذف شد. چون این رجیستر توسط خود پردازنده مقداردهی می شود.

یک مطلبی را می خواستم به مسئولین سایت پیشنهاد بدم : زیر ID بنده نوشته کاربر تازه وارد. عزیزانی که این عبارت را می خونند شاید این عبارت را با ناشی و تازه کار مترادف بگیرند و اعتبار مطالب مطرح شده را پائین بدونند. اگه ممکنه این عبارت را بردارید. 
یک مطلبی را هم خطاب به خوانندگان عرض می کنم: با توجه به عبارت تازه وارد و یا تعداد تشکر شده و تعداد پست ها در مورد سطح علمی دیگران قضاوت نکنید. یا اگه کسی سوالی مطرح می کنه، اونا به حساب پایین بودن سطح علمیش نگذارید. به قول معروف، دانا هم داند و هم پرسد، نادان نه می داند و نه می پرسد... بگذریم




> 2- طراحی و پیاده سازی ریزپردازنده با استفاده از نرم افزار پروتئوس که حداقل توانایی اجرای 50 دستورالعمل ضروری را داشته باشد.


بنده این مرحله را به چند زیر مرحله تقسیم می کنم:
1- تعیین قطعات مورد نیاز در پردازنده و امکاناتی که پروتئوس در اختیار ما قرار میده.(بنده بر خلاف نظر آقا پویا که فرمودند شبیه سازی پروتیوس اصلا معتبر نیست، چنین نظری ندارم، چون بنده 3 ساله با این نرم افزار کار می کنم و بارها برنامه ریزی میکروکنترلرهای AVR را با آن شبیه سازی نموده و بصورت عملی روی بردهای واقعی پیاده کردم. این نرم افزار در پیاده سازی مدارهای AC در بعضی موارد دقیق نیست ولی در شبیه سازی مدارهای DC تا حد قابل قبولی دقیق است. همچنین دوستان بعد از مدتی کار با این نرم افزار متوجه خواهند شد که تا چه حد به آن اعتماد کنند.)
2- تعیین تعداد ثبات ها و تعیین دستورالعمل ها و تصمیم گیری در مورد چند بیتی بودن پردازنده (Ramی که پروتئوس در اختیار ما قرار می دهد دارای خانه های 8 بیتی است)
، همچنین تصمیم گیری در مورد قالب دستوالعملها.
3- مشخص کردن ریزعمل های مورد نیاز برای پیاده سازی هر دستورالعمل
4- تصمیم گیری در مورد سخت افزاری بودن و یا نرم افزاری بودن واحد کنترل (CU) که با توجه به ساده تر بودن واحد کنترل سخت افزاری، پیشنهاد می شود از این نوع استفاده شود.
5- مشخص کردن سیگنالهای کنترلی که توسط واحد کنترل باید ایجاد شوند. این سیگنالها عباتند از :
سیگنالهای کنترل ورودی ثبات ها
سیگنالهای کنترل خواندن و نوشتن حافظه
سیگنالهای واگذاری گذرگاه مشترک
سیگنالهای کنترل فلیپ فلاپ ها
و سیگنالهای کنترل مدار ALU

توکلت علی الله و السلام

----------


## pswin.pooya

> البته وقتی که دستورالعملها کمتر بشه، برنامه نویس مجبوره برای رسیدن به  بعضی از دستورالعملهایی که وجود ندارند، از ترکیب چند دستورالعمل استفاده  کند که باعث بالا رفتن حجم برنامه شده و این یعنی پردازنده به جای یک  دستور، مجبور است چند دستور را اجرا کند که این مسئله خود باعث بیشتر گرم  شدن پردازنده خواهد شد.


می تونم بگم الان یک فرمول اختراع کردی. گرم شدن پردازنده یعنی انرژی اتلافی و اونم از طریق فرمول زیر حساب میشه:

میزان انرژی اتلافی = کلاک * ولتاژ به توان دو * نشست خازنی * تعداد ترازیستور

همنون شکل که مشاهده می کنی به تعداد دستور اجرایی ربط نداره ماجرا.





> بنده بر خلاف نظر آقا پویا که فرمودند شبیه سازی پروتیوس اصلا معتبر نیست،  چنین نظری ندارم، چون بنده 3 ساله با این نرم افزار کار می کنم و بارها  برنامه ریزی میکروکنترلرهای AVR را با آن شبیه سازی نموده و بصورت عملی روی  بردهای واقعی پیاده کردم.


به زودی مشکلات رو مشاهده خواهید کرد. بزار یه مورد از AVR بزنم. یه مورد پروتیوس که نمی دونم حل شده یا نه تایمر واچ داگ برای AVR بود که باید غیر فعالش می کردی که داخل میکروی واقعی همچین خبری نیست. مورد دیگه میزان جریان دهی پایه ها هست که برای پروتیوس فرقی نمیکنه اما توی مدارهای TTL فکر کنم حداکثر 11 یا 7 بود یعنی شما اگر یه پایه رو به ورودی بیشتر از 11 دستگاه دیجیتال دیگه بدی به احتمال زیاد کار نمی کنه. مورد دیگه میزان جریان تحملی قبل سوختن هست که بازم نمی تونی شبیه سازی کنی مثلا موتور رو وصل کن به پایه AVR کار میکنه اما همین کار رو توی دنیای واقعی کنه همون جا میسوزه میکرو. توی بحث پردازنده بعد از طراحی اولین بانک ثبات و احتمالا ALU متوجه مشکلات همزمانی سیگنالها میشی

بخوام برات مثال بزنم تا صبح تموم نمیشیم حتی می تونم برای روشن کردن سون سگمت هم نشون بدم اون شکلی نیست که فکر می کنید. اما خب اگه اصرار می کنید کسی جلتون رو نگرفته شما می تونید امتحان کنید وظیفه ما اینه بگیم و اگر خواستید توضیح بدیم اما در همین حد. رفتن راه با شماست. 




> 2- تعیین تعداد ثبات ها و تعیین دستورالعمل ها و تصمیم گیری در مورد چند  بیتی بودن پردازنده (Ramی که پروتئوس در اختیار ما قرار می دهد دارای خانه  های 8 بیتی است)


کافیه  چند تا رم کنار هم بزاری با باس آدرس مشترک. این شکلی میتونی حتی رم با کلمه 128 هم بسازی. 




> ، همچنین تصمیم گیری در مورد قالب دستوالعملها.


اندازه دستور به تعداد بیت رم بستگی نداره مثلا کلمه پنتیوم 16 هست اما دستور 15 بایتی داره. البته بهتره که هم اندازه باشه.





> 4- تصمیم گیری در مورد سخت افزاری بودن و یا نرم افزاری بودن واحد کنترل  (CU) که با توجه به ساده تر بودن واحد کنترل سخت افزاری، پیشنهاد می شود از  این نوع استفاده شود.


اگر منظورتون میکرو دستورها هست که اشتباه هست اونها هم هارد وایر میشن یا فوقش با یه nvram کنترل میشن.





> دستورالعمل LDPC حذف شد. چون این رجیستر توسط خود پردازنده مقداردهی می شود.


من دستورهای پردازنده ات رو بررسی کردم. به نظرم لازم نیست برای هر ثبات یه دستور داشته باشی. خیلی راحت می تونی این موضوع را با یه ریجیستر فایل و کمک از معماری ant یا معماری های مشتق شده از اونها مثل ARM و MIPS هم حل کنی. یه ریجیستر فایل دو گذرگاه می تونه خیلی از مشکلات طراحی رو حلش کنه.





> سیگنالهای کنترل فلیپ فلاپ ها


پردازنده قرار نیست IO کنترل کنه. توی هیچ معماری ما این رو نداریم فوقش پردازنده یکسری اینترفیس رو برای اینکار داره که حتی ویرایش های متن بازش هم هستش. الان آخره شبه کلا ذهنیت ندارم اما اگه خواستی می تونم برات پیدا کنم

----------


## H_afkhami60

سلام




> میزان انرژی اتلافی = کلاک * ولتاژ به توان دو * نشست خازنی * تعداد ترازیستور


آقا پویا بنده از شما تشکر می کنم به خاطر اطلاعات فنی که مطرح می کنید. بنده تصور میکردم که هر قدر گردش جریان توی مدار بیشتر باشه مدار بیشتر گرم میشه.




> اما خب اگه اصرار می کنید کسی جلتون رو نگرفته شما می تونید امتحان کنید  وظیفه ما اینه بگیم و اگر خواستید توضیح بدیم اما در همین حد. رفتن راه با  شماست.


بنده هیچ اصراری ندارم. به نظر شما احترام میگذارم. چون مطمئن هستم که سطح علمی و تجربه شما بیشتر از بنده است. البته بنده عرض کرده بودم که خود کاربر بعد از مدتی کار عملی، متوجه خواهد شد که تا چه حد به این نرم افزار اعتماد کند.
شما چه نرم افزاری را برای اینکار پیشنهاد می کنید؟




> کافیه  چند تا رم کنار هم بزاری با باس آدرس مشترک. این شکلی میتونی حتی رم با کلمه 128 هم بسازی.


احسنت. راه حل خوبیه. فقط یک مشکل داره و اون اینه که در مرحله تست توی نرم افزار  شبیه ساز، ما نمیتونیم فایل باینری را روی اونها لود کنیم، طوری که فایل، بین اونها تقسیم بشه. البته این مشکل قابل حله: با یک نرم افزار کوچولو، فایل باینری را باید به تعداد رم ها تقسیم کرد. یعنی اگه مثلاً 2 تا رم با خانه های 8 بیتی داریم، باید فایل باینری را تبدیلش کنیم به 2 تا فایل باینری. بایت اول فایل اصلی بره داخل فایل شماره 1، بایت دوم فایل اصلی بره داخل فایل شماره 2 و الی آخر.




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


این مطلب در کتاب معماری کامپیوتر موریس مانو توضیح داده شده.




> خیلی راحت می تونی این موضوع را با یه ریجیستر فایل و کمک از معماری ant یا  معماری های مشتق شده از اونها مثل ARM و MIPS هم حل کنی. یه ریجیستر فایل  دو گذرگاه می تونه خیلی از مشکلات طراحی رو حلش کنه.


خیلی ممنون از راهنمائیتون. لطف می کنید منبعی که در این زمینه توضیح داده باشه معرفی کنید؟

----------


## aliphp1

> سلام
> من خودم توی تمامی مواردی که شما ذکر کردید. فعالیت کردم ( از پردازنده گرفته تا سیستم عامل و کامپایلر). مشکلات اصلی کشور ما موارد زیر هست به نظر من:
> 
> 1. مشکلات مالی و اقتصادی (خود من برای تامین نیاز مالی خودم وقت پیدا نمی کنم که روی پروژه های پایه ای مثل این موارد کار کنم). خب این مورد توی کشورهای غربی خیلی کمتر هست و در نتیحه محصولات اون مواردی مثل لینوکس بوده و مردمی که از سلامت روحی روانی بهتری بهره مند هستند.
> 
> 2. مشکل اساتید بی سواد دانشگاهی. (به جزء چند مورد از استادهای دانشگاهی تقریبا همه اونها از سواد کافی برای تدریس و حتی فعالیت توی رشته کامپیوتر بهره مند نیستند. و تنها پارامترهای دیگه که همه می دونیم چی هست باعث شده به جایی که هستند برسند.) در حقیقت خیلی از اساتید کامپیوتر حتی شایستگی دریافت مدرک لیسانس رو هم ندارم به نظر من.
> 
> 3. حمایت نکردن. مثلا خود من وقتی داخل دانشگاه تصمیم گرفتم روی پردازنده کار کنم امکانات آزمایشگاهی نظیر FPGA در اختیارم قرار داده نشد. و جالبتر این بود که دستگاهای FPGA دانشگاه چند سال بود خاک می خوردن و یا حتی یکسری قطعه الکترونیک نیاز داشتم که خودم به سختی از بازار با قیمت زیاد تهیه کردم اما داخل انبار دانشگاه یه باکس کامل از اون داشت خاک می خورد. حتی یکیش هم استفاده نشد. این موضوع محافظ کار بودن ما ایرانی ها باعث شد که حتی مدیر گروه ما هم بترسه نامه بده که از امکانات استفاده کنیم. (الیته مدیر گروه ما حتی نمی دونست ویژوال استادیو چیه و وقتی بهش برنامه دادم نمی تونست اجراش کنه. طرف مثلا دکتری کامپیوتر داشت)
> 
> ...


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

----------


## reza_noei

سلام. 
یک جمله ای است از یک کمونیست که میگه :
انقلاب سیبی نیست که خودش از درخت به پایین بیافتد. این شما هستید که باید این سیب رو بچینید.
اگر فکر میکنیم مسلمان هستیم باید زحمت بکشیم. 
تو این مدت که بدنبال طراحی سیستم عامل بودم چیزی نبوده که بخواهم ولی نباشه. نه اینکه همه چیز رو 
برام چیده باشن ولی من دنبال چیزهایی که میخواستم رفتم. یکسال با دانشگاه کلنجار رفتم تا تونستم انجمن علمی 
کامپیوتر رو درست کنم که اتاقی برای فعالیت داشته باشم و تونستم بدست بیارم. اوایل کامپیوتر نداشتیم ولی از 
انباری کامپیوترهامون یه کامپیوتر درب و داغون با رم DDR1 و پردازنده 1.8 اینتل جمع کردیم. 
خلاصه منظورم اینه که اگه هدف شما پاک باشه و بدنبال چیز دیگری جر خواسته خودتون نباشید خدا پشتیبان شما میشود.
من این رو تجربه کردم نمیخوام وقتتون رو برای مثال هام بگیرم ولی این باور منه.
 من چند سالی بیشتر زنده نیستم و در این چند سال باید خدمت کنم.

----------


## pswin.pooya

> آقا پویا بنده از شما تشکر می کنم به خاطر اطلاعات فنی که مطرح می کنید.  بنده تصور میکردم که هر قدر گردش جریان توی مدار بیشتر باشه مدار بیشتر گرم  میشه.


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




> شما چه نرم افزاری را برای اینکار پیشنهاد می کنید؟


برای شروع کار می تونید از Active HDL استفاده کنید اما خب کارهای حرفه ای تر نرم افزارهای حرفه ای تر میخوان تا بالاخره به یه نرم افزار تحت لینوکس می رسه که اسمش یادم نیست. یه نرم افزار حرفه ای دیگه هم که اینتل و ... استفاده میکنن اسمش SIMICS هست که یه ایران رو تحریم کرده اما می تونید توی دانشگاه های کشورهای همسایه به راحتی ازش استفاده کنید.





> این مطلب در کتاب معماری کامپیوتر موریس مانو توضیح داده شده.


شما جلد فدیم موریس مانو رو خوندید توی ویرایش نه جندان جدید فکر کنم 2007 اون کلا کتاب زیر رو شده و البته به مراتب به روز تر





> خیلی ممنون از راهنمائیتون. لطف می کنید منبعی که در این زمینه توضیح داده باشه معرفی کنید؟


اینترنت




> انباری کامپیوترهامون یه کامپیوتر درب و داغون با رم DDR1 و پردازنده 1.8 اینتل جمع کردیم. 
> خلاصه منظورم اینه که اگه هدف شما پاک باشه و بدنبال چیز دیگری جر خواسته خودتون نباشید خدا پشتیبان شما میشود.
> من این رو تجربه کردم نمیخوام وقتتون رو برای مثال هام بگیرم ولی این باور منه.
> من چند سالی بیشتر زنده نیستم و در این چند سال باید خدمت کنم.


چند تا مساله وجود داره:

1. یک زمانی چیزی وجود نداره و شما تلاش کردید خب انجمن رو راه انداختین، زمانی هست یه تجهیزات هست و داره خاک می خوره.
2. یه زمانی هست که شما محقق هستی و یه زمانی هست که مدیر. خب محقق اصولا نباید ذهنش درگیر کارهای اداری و نامه بازی و ... باشه اما مدیر کارش اینه.
3. یه زمانی یسری چیز می تونه وجود داشته باشه اما بخاطر برخی  وجود نداره که اونها به مشکل بر نخورن
4. یه زمانی هست که یکی جای یکی دیگه می شینه بخاطر برخی پارامترها که اصلا ربطی به موضوع نداره.

اینها مشکلات ما هست. توی دانشگاه ما امکانات بود، محقق بود، کسایی بودن که پیشرفت بقیه شکست اونها بود و کسایی بودن که سزاوار پستشون نبودن.

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

قشر که محقق هستن باید به هر شکلی ازشون پشتیبانی شه، هر چیزی که می خوان فراهم شه و در رفاه کامل باشن. اگر کشوری، سازمانی، دانشگاهی و جامعه ای نتونه زمینه رو فراهم کنه خب 100 درصد یا اون قشر رو لازم نداره یا براش مهم نیست اون قشر و یا اینکه متوجه اهمیتش نشده، مطمئن باشید کشورهایی، سازمانهایی ، دانشگاههایی و جوامعی وجود دارن که حاضر هستن هرکاری بکنند تا اون قشر رو جذبش کنند.

----------


## pswin.pooya

من یه نمونه ISA سریع نوشتم که به احتمال زیاد می تونه نواقصی داشته باشه. این پردازنده 14 دستور العمل و هشت ثبات داره. ثبات شماره صفر r0 همیشه مقدارش صفر هست که zr هم نامیده میشه. ثبات شماره یک مقدار IP رو نگهداری میکنه و ثبات شماره دو CR هستش. و چهار ثبات آخر برای کارهای همه منظوره هستند. اندازه کلمه و اندازه دستورهای پردازنده 16 بیتی هست و می تونه 1 مگابایت رو کلمه رو آدرس دهی کنه. این پردازنده 5 گروه دستور رو داره که اگر تعداد بیتها بیشتر 16 بودش میشد به سه گروه کاهش داد.

instruction set:


R-Type:
    <- 3 -><-  4  -><- 3  -><- 3 -><- 3 ->
    +------+--------+------+------+------+
    | cond | opcode | dest |  src | src2 |
    +------+--------+------+------+------+
    
I-Type:
    <- 3 -><-  4  -><- 3  -><- 3 -><- 3 ->
    +------+--------+------+------+------+
    | cond | opcode | dest |  src |  val |
    +------+--------+------+------+------+

J-type:
    <- 3 -><-  4  -><- 3 -><-     5     ->
    +------+--------+------+-------------+
    | cond | opcode | dest |  immediate  |
    +------+--------+------+-------------+

M-Type:
    <- 3 -><-  4  -><- 1 -><-     8     ->
    +------+--------+------+-------------+
    | cond | opcode |  L/H |   target    |
    +------+--------+------+-------------+
    
S-Type:
    <- 3 -><-  4  -><- 1 -><- 1 -><- 3 -><- 4  ->
    +------+--------+-----+-----+------+--------+
    | cond | opcode | Dir |  A  | dest | target |
    +------+--------+-----+-----+------+--------+

    
OP codes:
    +--+--------+-----+---+ ----------------+
    | 1|        | LD  | J |                 | \
    | 2|        | ST  | R |                 | | -> Memory
    | 3|        | MV  | M |                 | /
    +--+--------+-----+---+-----------------+
    | 4|        | ADD | R |                 | \
    | 5|        | ADDi| I |                 | |
    | 6|        | SUB | R |                 | |
    | 7|        | SUBi| I |                 | |
    | 8|        | AND | R |                 | |-> ALU
    | 9|        | OR  | R |                 | |
    |10|        | NOT | R |                 | |
    |11|        | XOR | R |                 | /
    +--+--------+-----+---+-----------------+    
    |12|        | SH  | S |                 | |-> Shifter
    +--+--------+-----+---+-----------------+
    |13|        | JMP | J |                 | -> Jump
    +--+--------+-----+---+-----------------+
    |14|        | HLT |   |                 | -> Other
    +--+--------+-----+---+-----------------+

خب یه مثال جمع:

 add r3r3,r4

مثال دستور inc:

 addi r3,r3,1

مثال برای مقدار دهی یک ثبات:

mvl r3, 12
mvh r3,27

مثال انتقال به چپ حسابی

 shla r3,4


مثال انتقال ثباتی:

add r3,zr,r4

خب پردازنده جوری طراحی شده که به راحتی میشه برای خیلی از if ها و ... بدون پرش کار رو انجام داد. اینکار به کمک بیت های cond برای دستورها انجام میگیره و باعث میشه pipline بیخودی خالی نشه. مثلا:

subi r3,r3,0
addiz r3,r3,1
jmpz r3,r2,12

عملوندهای z مشخص کننده ست بودن پرچم zero هست.

IO از نوع Memory Map فرض شده. همجنین میشه:

1. دو دستور دیگه اضافه کرد.
2. از دستور hlt صرف نظر کرد.
3. با یکم دستکاری از ثبات zr صرف نظر کرد.
4. از دستورهای addi و subi در صورت کم آوردن دستور میشه صرف نظر کرد.

برخی دستورهای دیگه که می تونه برنامه نویسی رو راحتر کنه و به سیستم اضافه کرد مثلا cmp و یا اینکه مثلا میشه یه دستور برای فراخوانی وقفه و ... اضافه کرد.

درست بررسی نکردم اما فکر کنم حداقل میشه سه مرحله pipeline اضافه کرد. چون تعداد دستورها کم هستش یه CU کوچیک خواهد داشت. برای بهبود میشه تعداد گروه ها رو کم کردش تا CU هم سریعتر بشه و هم اینکه کوچکتر. 

همینطور میشه یه نمونه از دستور ST رینج دار رو برای ذخیره گروهی ثبات ها و یه دستور test رو پیاده سازی کرد که کار ساخت سیستم عامل رو براش به مراتب راحتر خواهد کرد. 

از اونجا که IO از نوع Memory Maped هستش خیلی راحت میشه تعداد IO رو زیاد کم کرد بدون اینکه نگرانی از نظر تعداد پورت و یا کم بود جا برای مشخص کردن شماره IO و یا داده اون در دستورها داشته باشیم.

چون تمامی دستورها 16 بیتی هستش پیاده سازی به مراتب راحتر میشه اما میشه دستورها رو 32 بیتی کرد و ریجیستر IR رو 32 بیتی در نظر گرفت. مزیتش اینه:

رنج دستورها کاملتر میشهتعداد ثباتها رو میشه به 32 تا افزایش داد (اکثر معماری های مدرن 32 ثبات دارند)تعداد بیت های شرط رو میشه به چهار تا افزایش داد که برنامه نویسی رو راحتر میکنه.محدودیت های نوع I و نوع M به مراتب کمتر میشه.

معایب:
CU بزرگنر میشهدو سیکل برای انتقال داده هدر میره مگر اینکه دو تا IR داشته باشیماندازه پردازنده افزایش پیدا میکنه.

----------


## pswin.pooya

یکمی ISA قبلی رو بهترش کردم  و چند تا از مشکلات رو حل کردم ISA جدید:


instruction set:


R-Type: Register to register
    <- 1 -><-  4  -><- 3  -><- 3 -><- 3  -><-1-><-1->
    +------+--------+------+------+-------+----+----+
    | cond | opcode | dest |  src | src2  | A  | C  |
    +------+--------+------+------+-------+----+----+
    
I-Type: Immediate
    <- 1 -><-  4  -><- 3  -><- 3 -><- 5 ->
    +------+--------+------+------+------+
    | cond | opcode | dest |  src |  val |
    +------+--------+------+------+------+
    
C-Type: Compartment
    <- 1 -><-  4  -><- 3 -><- 3 -><-  4  -><-1->
    +------+--------+------+-----+--------+----+
    | cond | opcode | op1  | op2 | cond 2 |    |
    +------+--------+------+-----+--------+----+

J-type: Jump
    <- 1 -><-  4  -><- 3 -><-     8     ->
    +------+--------+------+-------------+
    | cond | opcode | dest |  immediate  |
    +------+--------+------+-------------+
    
S-Type: Shift
    <- 1 -><-  4  -><- 3  -><- 4  -><-1-><-1-><-1->
    +------+--------+------+-------+----+----+----+
    | cond | opcode | dest | value |  A |  C |  D |
    +------+--------+------+-------+----+----+----+

M-Type: Move
    <- 1 -><-  4  -><- 3 -><-     8     ->
    +------+--------+------+-------------+
    | cond | opcode | dest |    value    |
    +------+--------+------+-------------+

    
OP codes:
    +--+--------+-----+---+ ----------------+
    | 1|        | LD  | J |                 | \
    | 2|        | ST  | R |                 | /-> Memory
    +--+--------+-----+---+ ----------------+
    | 3|        | MVL | M | Move Low        | \
    | 4|        | MVH | M | Move High       | /-> Move
    +--+--------+-----+---+-----------------+
    | 5| 1      | ADD | R |                 | \
    | 6| 1      | ADDi| I |                 | |
    | 7| 1      | SUB | R |                 | |
    | 8| 1      | SUBi| I |                 | |
    | 9| 1      | AND | R |                 | |-> ALU
    |10| 1      | OR  | R |                 | |
    |11| 1      | NOT | R |                 | |
    |13| 1      | XOR | R |                 | /
    +--+--------+-----+---+-----------------+
    |13|        | SH  | S |                 | |-> Shifter
    +--+--------+-----+---+-----------------+
    |14|        | JMP | J |                 | -> Jump
    +--+--------+-----+---+-----------------+
    |15|        | CMP | C |                 | -> Compare
    +--+--------+-----+---+-----------------+
    |16|        | XCHG| C |                 | -> Exchange
    +--+--------+-----+---+-----------------+
    
    
    A:        Arithmetic
    C:        Carry
    D:        Direction
    dest:    Destination register
    src:    Source Register
    op:        Operand Register


Names:
    0: zr (Zero Register)
    1: ip (Instruction Pointer)
    2: cr (Control Register)
    3: br (Base Register)
    
    4: r0 (Register 0)
    5: r1 (Register 1)
    6: r2 (Register 2)
    7: r3 (Register 3)
    
    

Registers:
    
    CR:
    <-    flags    -><- control reg ->
    <-      8      -><-      8      ->
    +-+-+-+-+--+-+-+-+--+-+-+-+-+-+-+-+
    |Z|C|O|I|CO|-|-|-|EI|S|S|-|-|-|-|-|
    +-+-+-+-+--+-+-+-+--+-+-+-+-+-+-+-+
    
        Z: Zero flag
        C: Carry flag
        O: Overflow flag
        I: Interrupt flag
        CO: Condition flag
        
        EI: Enable/Disable interrupts
        SS:
            00-> Halt system
            01-> Full clock mode
            10-> Half clock mode
            11-> Reserved

            
    ZR:
    <-      8      -><-     8      ->
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

دستور xchg برای پیاده سازی متغییرهای قفل توسط سیستم عامل اضافه شد.cond ها از سه بیت به یک بیت کاهش داده شد و بجاشون دستور cmp پیاده سازی شد که میتونه همجور شرایطی رو بررسی کنه. دستور xchg یه cond اضافه تر برای بررسی ها بیشتر داره.

دستور halt حذف شد. بجاش میشه بیت مربوطه رو توی CR ستش کرد.

برای فعال و غیر فعال کردن وقفه میشه از بیت مربوطه در CR استفاده کرد.

عملوند dest توی mv فراموش شوده بود حالا mv رو دو تا کردم و dest رو بهش اضافه کردم.

به دستورهای add و sub و sh مدلهای arithmetic و carry و ... اضافه شد که کار برنامه نویسی رو  راحتر میکنه.

بازم هنوز کامل نیست باید بررسی کنم که میشه همه کار باهاش انجام داد یا نه. البته بخوام یه دیزاین خوب درست کنم بهتره که دستورها 32 بیتی باشند.

----------


## H_afkhami60

سلام 

با استفاده از برخی الگوها که آقا پویا در لیست دستورالعملهاشون استفاده کردند و همچنین استفاده بیشتر از بیت های پرچم، استفاده از انباره 16 بیتی، کاهش تعداد ثبات ها و بکاربردن دستورالعمل جدید ORF ، تعداد دستورالعمل ها به 35 عدد رسید. با وجود کم شدن تعداد دستورالعملها، مجموعه، باز هم کامله و قدرت مانور برنامه نویس کاهش پیدا نکرده. البته می شد چند دستورالعمل دیگه را هم حذف کرد ولی کار برنامه نویس سخت تر می شد.

----------


## pswin.pooya

> با استفاده از برخی الگوها که آقا پویا در لیست دستورالعملهاشون استفاده  کردند و همچنین استفاده بیشتر از بیت های پرچم، استفاده از انباره 16 بیتی،  کاهش تعداد ثبات ها و بکاربردن دستورالعمل جدید ORF ، تعداد دستورالعمل ها  به 35 عدد رسید. با وجود کم شدن تعداد دستورالعملها، مجموعه، باز هم کامله  و قدرت مانور برنامه نویس کاهش پیدا نکرده. البته می شد چند دستورالعمل  دیگه را هم حذف کرد ولی کار برنامه نویس سخت تر می شد.


سلام

ثبات IR باید 16 بیتی باشه. 

ثبا I لازم نیست می تونه شماره وقفه رو توی پشته بزاری

ثباتهای cs و ECS و ... برای معماری های جدید لازم نیستن.

دستور ret رو میشه با یه JUMP عوض کرد.

دستورهای lda و ldb رو میشه باهم ترکیب کرد ( میتونی از مدل ریجیستر فایل معماری ant استفاده کنی)

درصورت وجود دستور jmp نیازی به call نیست.

دستورهای pushو pop رو هم میشه با دستورهای ذخیره در حافظه  و ... عوض کرد. (ARM از مدل Range Base استفاده می کنه که خیلی موثر تر هست)

دستورهای LDESS و LDSS و ... رو میشه با انتقال ثباتی حذف کرد.

دستورهای jmp رو میتونی با مدل من به یکی کاهش بدی



دستورهایی که کم داری (فعلا اینا به ذهنم رسید):

شیفتnotadd و sub حسابی

----------


## reza_noei

> چند تا مساله وجود داره:
> 1. یک زمانی چیزی وجود نداره و شما تلاش کردید خب انجمن رو راه انداختین، زمانی هست یه تجهیزات هست و داره خاک می خوره.
> 2. یه زمانی هست که شما محقق هستی و یه زمانی هست که مدیر. خب محقق اصولا نباید ذهنش درگیر کارهای اداری و نامه بازی و ... باشه اما مدیر کارش اینه.
> 3. یه زمانی یسری چیز می تونه وجود داشته باشه اما بخاطر برخی  وجود نداره که اونها به مشکل بر نخورن
> 4. یه زمانی هست که یکی جای یکی دیگه می شینه بخاطر برخی پارامترها که اصلا ربطی به موضوع نداره.
> 
> اینها مشکلات ما هست. توی دانشگاه ما امکانات بود، محقق بود، کسایی بودن که پیشرفت بقیه شکست اونها بود و کسایی بودن که سزاوار پستشون نبودن.
> 
> نکته مهم خدمت کردن وظیفه نیست، کسی نوکر کس دیگه زاده نشده همه آزاد زاده شدن. هر کاری که می کنیم در عوض چیزی باید باشه. من اگر کاری برای کسی می کنم یه پول بهم میده، یا کاری در قبابلش می کنه، یا اینکه عاشق جشم و ابروش شدم. الان اینجا هم اگر پستی میزارم یا کمکی می کنم سر وظیفه و .. نیست. تنها دارم کمک می کنم همین در مورد دانشگاه و ... هم صادقه. اگر دانشگاه امکانات می داد، پول می داد نتایج تحقیقات ما رو داشت حالا که حاضر نشده بده خب طیبعتا هم انتخاب خودش بوده
> ...


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

----------


## H_afkhami60

سلام

آقاپویا از اینکه دستورالعملهای بنده را مطالعه و بررسی فرمودید از شما تشکر می کنم.



> دستورهایی که کم داری (فعلا اینا به ذهنم رسید):
> 
> 
> شیفتnotadd و sub حسابی


این دستورالعملها را میشه با دستورالعملهای دیگه جایگزین کرد. مثلاً در دستور ADD که از بیت نقلی استفاده می کنه، اگه بیت نقلی را صفرش کنیم، ADD حسابی بدست میاد.

----------


## H_afkhami60

سلام

آقاپویا از اینکه دستورالعملهای بنده را مطالعه و بررسی فرمودید از شما تشکر می کنم.



> دستورهایی که کم داری (فعلا اینا به ذهنم رسید):
> 
> 
> شیفتnotadd و sub حسابی


با استفاده از دستورالعملهای دیگه میشه به اینها رسید. مثلاً در دستور ADD که از بیت نقلی استفاده می کنه، اگه قبلش بیت نقلی را صفرش کنیم، ADD حسابی بدست میاد. البته همین الان متوجه شدم که برای صفر کردن پرچم ها به یک دستور دیگه نیاز هست. (F=A^ F)

----------


## pswin.pooya

> من مثل شما فکر نمیکنم. من خودمو سرباز اسلام میدونم.


شما می تونید خودتون رو سرباز اسلام بدونید و برید بجنگید یا اینکه خودتون رو یه محقق بدونید و برید کمک کنید به اسلام. انتخاب این با شماست اما خب این رو نباید برای همه بدونید و بگید وظیفه هست هر کسی باید راه خودش رو انتخاب کنه.



> من به کاری که میکنم ایمان دارم هرچند شکست را  آخرین دستاورد من بدانند.


اگر فکر کنی سربازی،  شکست می تونه باشه در حقیقت توی میدون نبرد همیشه دو طرف هم بازنده هستن. کسی  نه با خون ریختن پیروز میشه و نا با زور گفتن مهم اینه که بتونی از راه های دیگه حرفت رو سر کرسی بشونی. اما اگر محقق باشی هیچ وقت شکستی وجود نداره. بدترین تحقیق و پروژه رو هم انجام بدی حداقل برای پروژه بعدی تجربه بدست اوردی و قویتر شدی.




> طرف حساب من نه پوله نه آدمهاست من برای خودم خدا و بشریت کار میکنم.


بازم انتخاب خودتون هستش اما دلیل نمیشه برای بقیه هم اینجوری فکر کنید.




> الان هزار و پانصد تومن کل دارایی منه ولی اگه نیاز باشه کار میکنم


من لازم هم نباشه کار میکنم.





> با استفاده از دستورالعملهای دیگه میشه به اینها رسید. مثلاً در دستور ADD  که از بیت نقلی استفاده می کنه، اگه قبلش بیت نقلی را صفرش کنیم، ADD حسابی  بدست میاد. البته همین الان متوجه شدم که برای صفر کردن پرچم ها به یک  دستور دیگه نیاز هست. (F=A^ F)


همیشه نباید carry رو در جمع دخالت بدی مواردی هستن که باید ازش جلوگیری کنید.

البته دستورهای شیفت و not ضروری هستند.

موفق باشی

----------


## reza_noei

> شما می تونید خودتون رو سرباز اسلام بدونید و برید بجنگید یا اینکه خودتون رو یه محقق بدونید و برید کمک کنید به اسلام. انتخاب این با شماست اما خب این رو نباید برای همه بدونید و بگید وظیفه هست هر کسی باید راه خودش رو انتخاب کنه.


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




> اگر فکر کنی سربازی،  شکست می تونه باشه در حقیقت توی میدون نبرد همیشه دو طرف هم بازنده هستن. کسی  نه با خون ریختن پیروز میشه و نا با زور گفتن مهم اینه که بتونی از راه های دیگه حرفت رو سر کرسی بشونی. اما اگر محقق باشی هیچ وقت شکستی وجود نداره. بدترین تحقیق و پروژه رو هم انجام بدی حداقل برای پروژه بعدی تجربه بدست اوردی و قویتر شدی.


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




> من لازم هم نباشه کار میکنم.


خوب جوهر انسان کاره (:

نیازی نیست در مورد حرفهای من جبهه بگیرید من اعتقاداتم رو به شما میگم اگر اشکالی هست خوشحال میشم برطرف کنم.

----------


## H_afkhami60

سلام

دوست عزیز جناب آقای نوعی خواهشاً مسائل با ارزش فنی و علمی را مطرح کنید. با این حرفها فقط انرژی خودمون را هدر میدیم. همه ما با هر دین و آئین و طرز فکری که داشته باشیم هموطن هستیم و باید برای سربلندی و عزت کشورمون در حد توان تلاش کنیم. به فکر و شخصیت همدیگه احترام بذاریم و همدیگه را دوست داشته باشیم تا مملکت پیشرفت کنه.

----------


## H_afkhami60

سلام 

برخی از دستورهای بنده 3 بایتی و بقیه 1 بایتی هستند. اگر ما حافظه 24 بیتی انتخاب کنیم، یک دستور سه بایتی بطور کامل از خانه حافظه استفاده می کند. اما دستورهای 1 بایتی، 2 بایت از حافظه را هدر می دهند. اگر حافظه 1 بایتی استفاده کنیم که اوضاع بدتر می شود. چون برای واکشی یک دستور 3 بایتی باید 3 بار به حافظه مراجعه کرد. چه راه حلی به ذهن شما می رسد؟ ریزپردازندهای کنونی برای حل این مشکل چکار می کنند؟

----------


## pswin.pooya

> برخی از دستورهای بنده 3 بایتی و بقیه 1 بایتی هستند. اگر ما حافظه 24 بیتی  انتخاب کنیم، یک دستور سه بایتی بطور کامل از خانه حافظه استفاده می کند.  اما دستورهای 1 بایتی، 2 بایت از حافظه را هدر می دهند. اگر حافظه 1 بایتی  استفاده کنیم که اوضاع بدتر می شود. چون برای واکشی یک دستور 3 بایتی باید 3  بار به حافظه مراجعه کرد. چه راه حلی به ذهن شما می رسد؟ ریزپردازندهای  کنونی برای حل این مشکل چکار می کنند؟


همنطور که گفتم بهتره که اندازه همه دستورها ثابت باشن. البته اکثر معماری ها اینطوری نیستن. مثلا توی ARM دستورها یا یک کلمه هستند و یا دو. و یا در x86 بین یک تا 15 بایت متغییر هستند اما معماری های دیگه ای مثل MIPS یک کلمه هستند. چند کلمه شدن دستور منجر به پیچیده شدن پردازنده میشه و مدارهای کنترلی بیشتری رو می خواد و ههمینطور باعث میشه محاسبه برخی موارد سختر بشه. بهتره تمامی دستورهای خودتون رو در یک رنج قرار بدید. که اندازه همه اونها ثابت باشه. مثلا همه 16  یا 32 بیتی. چون مساله مهم دیگه ای که هستش اینه که دستور ها بهتره برای کارایی بر مبانی کلمه باشن مثل حافظه.

----------


## H_afkhami60

سلام

پردازنده های 80186/80188 دارای مولد ساعت، کنترل کننده وقفه برنامه پذیر، تایمرهای برنامه پذیر، کنترل کننده DMA و واحد انتخاب تراشه برنامه پذیر بودند. با وجود این امکانات از آنها بیشتر به عنوان کنترل کننده استفاده می شد. 
پردازنده 80286 این امکانات را نداشت. در عوض این پردازنده دارای واحد مدیریت حافظه (MMU) بود.
آیا در پردازنده های P4 این امکانات (مولد ساعت، کنترل کننده وقفه و ...) وجود دارد؟ یا این امکانات بصورت تراشه های جدا بر روی مادربورد قرار دارند؟

----------


## pswin.pooya

> پردازنده های 80186/80188 دارای مولد ساعت، کنترل کننده وقفه برنامه پذیر،  تایمرهای برنامه پذیر، کنترل کننده DMA و واحد انتخاب تراشه برنامه پذیر  بودند. با وجود این امکانات از آنها بیشتر به عنوان کنترل کننده استفاده می  شد. 
> پردازنده 80286 این امکانات را نداشت. در عوض این پردازنده دارای واحد مدیریت حافظه (MMU) بود.
> آیا در پردازنده های P4 این امکانات (مولد ساعت، کنترل کننده وقفه و ...)  وجود دارد؟ یا این امکانات بصورت تراشه های جدا بر روی مادربورد قرار  دارند؟


کاملا بر عکسه. توی اونها نبود و تراشه جدا بود اما در پردازنده های جدید داخل خود پردازنده قرار داده شدن. البته منظورتون رو از مولد ساعت نمی دونم چیه اگر منظورتون کلاک هست که فکر کنم داخل پردازنده باشه اما اگر منظورتون تایمر هست که قطعه جدا در ویرایشهای قدیمی و داخل خود پردازنده در پردازنده ها جدید هست

و البته باید اضافه کنم در اکثر پردازنده ها کلاک خارج پردازنده قرار می گیره و پردازنده ها دارای یک واحد ضرب کنند و تقسیم کننده  برای افزایش و یا کاهش کلاک هستند که معمولا برنامه پذیر هم هست یعنی ثباتهای برای کنترل اونها وجود داره. حتی FPGA ها هم این مورد رو دارن

----------


## H_afkhami60

> پردازنده های 80186/80188 دارای مولد ساعت، کنترل کننده وقفه برنامه پذیر، تایمرهای برنامه پذیر، کنترل کننده DMA و واحد انتخاب تراشه برنامه پذیر بودند.


 کتاب ریزپردازنده ها، سری اینتل، ویرایش هفتم، باری بی بری، ترجمه سید جمال میرحسینی، صفحه 663




> پردازنده 80286 این امکانات را نداشت. در عوض این پردازنده دارای واحد مدیریت حافظه (MMU) بود.


 همان کتاب، صفحه 707

----------


## pswin.pooya

> کتاب ریزپردازنده ها، سری اینتل، ویرایش هفتم، باری بی بری، ترجمه سید جمال میرحسینی، صفحه 663


یا ترجمه اشتباه کرده و یا اینکه کتاب اشتباه کرده شاید هم منظور چیز دیگه بوده، من 100 درصد بهتون اطمینان می دم که پردازنده های جدید این رو دارن و در پردازنده های قدیمی جدا بوده ، من حتی آی.سی ها مربوطه رو هم دارم




> همان کتاب، صفحه 707


هیچ مشکلی در مورد MMU نیست. این واحد اگر اشتباه نکنم با اومدن pmode اضافه شده.

----------


## emadrezvani

بنده مدار ۸۰۸۸ و ۸۰۸۶ رو بستم و نیاز به کلاک خارجی دارند. اما :



> یا ترجمه اشتباه کرده و یا اینکه کتاب اشتباه کرده شاید هم منظور چیز دیگه بوده، من 100 درصد بهتون اطمینان می دم که پردازنده های جدید این رو دارن و در پردازنده های قدیمی جدا بوده ، من حتی آی.سی ها مربوطه رو هم دارم


http://upload.wikimedia.org/wikipedi...80188_arch.svg

----------


## H_afkhami60

سلام




> بنده مدار ۸۰۸۸ و ۸۰۸۶ رو بستم


احسنت به شما. خیلی عالیه.
تستشم کردید؟ توی چه نرم افزاری طراحیشا انجام دادید؟ توی چه محیطی شبیه سازیش کردید؟ لیست دستوراتش چیه؟ توی چه فرکانسی کار می کنه؟ چه امکاناتی داره؟ در چه ابعادی ساخته شده؟ اسمبلرم براش طراحی کردید؟ لطفاً ی عکس ازش بزارید؟

----------


## emadrezvani

> تستشم کردید؟ توی چه نرم افزاری طراحیشا انجام دادید؟ توی چه محیطی شبیه سازیش کردید؟ لیست دستوراتش چیه؟ توی چه فرکانسی کار می کنه؟ چه امکاناتی داره؟ در چه ابعادی ساخته شده؟ اسمبلرم براش طراحی کردید؟ لطفاً ی عکس ازش بزارید؟


بله. همون کتاب پردازنده های اینتل باری بی بری کلی مدار برای مدهای مختلف این دو پردازنده داره.  موضوع تحقیقاتی من در مورد شبیه ساز بوده که هنوز درگیر اون هستم. البته موضوع شبیه سازها سالهاست که برای این پردازنده پیگیری شده اما من به دلیل محک زدن دانشم سعی در نوشتن شبیه ساز این دو پردازنده ۱۶بیتی داشم.
موضوع ابعاد که مطرح نیست. روی برد بورد بود. دستورالعمل های هم که مشخصه !!

----------


## H_afkhami60

منظورم از شبیه سازی این بود که مثلاً کل مدارشا توی پروتئوس طراحی کنید و بعد همونجا دستوراتی را روی رم لود کنید و جواب بگیرید. آیا این کارا کردید؟

----------


## emadrezvani

نه. مستقیم مدار روی برد بورد تست می کنم. زیاد با پروتئوس کار نمی کنم. دلیل این کار هم برمیگرده با سالها قبل که مدار شبیه ساز با واقعیت زمین تا آسمون فرق داشت. ضمن محدودیت اون زمان قطعه ها در این نرم افزار.

----------


## pswin.pooya

> http://upload.wikimedia.org/wikipedi...80188_arch.svg


من یادم نمیاد مدل خاصی رو معرفی کرده باشم. که بخوایین شماتیک بدید اما اینکه در مدلهای قبلی خارج بوده و در مدل های جدید داخل پردازنده رو کاملا مطمئن هستم و حتی می تونید شماتیک پردازنده P3 رو از آموزشهای مایک هم نگاه کنید. در هر حال در مدلهای قدیمی خارج از پردازنده بوده و در مدلهای جدید داخل پردازنده. من حتی این قطعات رو هم تست کردم (البته با کلی دردسر تونستم اینها رو پیدا کنم و حتی یکسری پردازنده های قدیمی مثل 386 و 286 رو هم پیدا کرده بودم که متاسفانه نتونستم تهبه کنم. عکس زیر هم یهویی گرفتم:
20150311_140129.jpg

آسی های بالا شامل کنترل کننده وقفه PIC، کنترل کننده تایمر PIT و DMA، حافظه، کنترل کننده تجهیزات جانبی و در کنارشون  میکرو 89C51 و همینطور پردازنده Z80 هست ( که ربطی به این موضوع نداره.). متاسفانه الان بردهایی که این آی سی ها روشون بودن در دسترسم نیستن اما خود من مادربردهای قدیمی فکر کنم برای AT&D بود رو دید بودم که اینها در کنار پردازنده قرار داشتن. جالب اینه که با تمام اصرار ما دانشگاه این بردها رو به ما نداد و در عوض اونها رو کلیویی فروخت به اوراقی. این بردها می تونستن برای آموزش بهتر و یا حتی به عنوان کلکسیون داخل دانشگاه استفاده بشن اما تمام اونها اوراق شدن و بعد از آتیش زدنشون مس و آهن باقی مونده رو ازش جدا کردن

----------


## emadrezvani

مادربوردهای XT از این دسته آی سی ها زیاد دارن. بنده چند نمونه داشتم. اما مادربوردهای AT مقداری فرق دارند که دلیل هم پیشرفته تر شدن به همراه تجمع چند کاربرد در یک کاربرد هست.
نظرتون در مورد homebrew computer چیه ؟ به نظر شما مثل سیستم عامل نیاز نیست که دانشجوها به این سمت هم برند؟

----------


## pswin.pooya

> نظرتون در مورد homebrew computer چیه ؟ به نظر شما مثل سیستم عامل نیاز نیست که دانشجوها به این سمت هم برند؟


در سطح یادیگیری و تحقیقات چرا نه؟ من یه مقدار دنبالش رفته بودم و مطالعه کردم. برای ساختش تجهییزات لازمه که هم پیدا کردنش سخته هم تامین هزینه مالی. مثلا یه FPGA درست و حسابی میشه 14 میلیون یا یه اسکوپ خوب میشه 3 میلیون و خیلی چیزهای دیگه که لازمه تا بتونید درست کار کنید. حتی استفاده از پردازنده آماده هم ساخت برد می خواد که در سطح کوچیک دستی میشه در آورد اما برای کار درست و حسابی باید بدی چاپ که خود اونم سخته و هزینه بر. اما کلا حسی که به آدم رو میده رو نمیشه توصیف کرد. 

با وجود تجهییزات مورد بعدی دانش هستش که در سطح اولیه چیز خاصی نیست اما یکم بخوای درست فوکوس کنی خیلی پیچیده میشه دقیقا مثل سیستم عامل. مثلا فرض کنید بخوایید پردازنده ای بسازید که از روی SD کد رو بخونه باید بشینید کل پروتکل SPI رو بخونید و پیاده سازی کنید و یا مثلا برای پیاده سازی پورت سریال ساده هم کلی باید مطلب بخونید. در طراحی برد هم اوضاع خوب نیست با افزایش فرکانس ترک ها هم خاصیت خازنی پیدا میکنن هم سلف و هم مقاومت. یادمه دوستم برد ساخته بود که SDRAM روش نصب کرده بود بعدش خود ترکهای برد گرما تولید می کردن و نه قطعات و مشکل بر می گشت به جنس برد و فاصله ترکها




> مادربوردهای XT از این دسته آی سی ها زیاد دارن. بنده چند نمونه داشتم. اما  مادربوردهای AT مقداری فرق دارند که دلیل هم پیشرفته تر شدن به همراه تجمع  چند کاربرد در یک کاربرد هست.


من بدجور دنبالم این کامپیوتر ها هستم.

----------


## emadrezvani

با همه این اوصاف حرف دل : 


> اما کلا حسی که به آدم رو میده رو نمیشه توصیف کرد.


من دارم میکروکنترلر آرم رو به ۸۰۸۶ و اگه بشه بالاتر تبدیل می کنم(البته این تبدیل به این معنا نیست که همه پین های آیسی رو داشته باشه. درواقع شبیه ساز دستورات x86 هست. تمایل داشته باشید وبلاگ بزنیم همکاری کنیم. در حال حاضر نسخه تحلیلگر دستورالعمل های پایه رو نوشتم.

----------


## pswin.pooya

> من دارم میکروکنترلر آرم رو به ۸۰۸۶ و اگه بشه بالاتر تبدیل می کنم(البته  این تبدیل به این معنا نیست که همه پین های آیسی رو داشته باشه. درواقع  شبیه ساز دستورات x86 هست. تمایل داشته باشید وبلاگ بزنیم همکاری کنیم. در  حال حاضر نسخه تحلیلگر دستورالعمل های پایه رو نوشتم.


راستش رو بخوای من از x86 خوشم نمیاد.از نظر معماری کامپیوتر ایرادهای زیادی داره اما کلا من خودم روی یه معماری جدید کار می کردم که حتی یه FPGA اسپارتان 6 هم گرفتم براش. تا اونجا که دیدم با این FPGA میشه حتی هسته ARM رو هم پیاده کرد:

http://opencores.org/project,amber

اما خب به هر حال زیاد قوی نیست این FPGA. من به فکر یه معماری جدید هستم که ترکیبی از معماری ARM و MIPS و حتی ایده های جدید باشه. یعنی کلا قرار RISC باشه. در حال حاضر وقتی حوصله می کنم می شینم verilog می خونم. یه مقدار هم در مورد دیوایس های جانبی مطالعه داشتم فکر کنم بتونم اینکار رو انجام بدم اما خیلی خوب می دونم که برای ساخت یه پردازنده درست و حسابی که حداقل بهش پروژه دانشجویی نگن مطالعه خیلی زیادی لازمه. یه سری حتی یه ALU با ریجیستر فایل ساختم که سر همزمانی کلاک و ... همه چی بهم ریختش. یعنی مدار از نظر رفتاری درست بود اما وقتی به واقعیت می رسید شکست می خورد و نتیجه ها در حالت مبهم یعنی X می اومدن بیرون اما از نظر رفتاری مثل ساعت کار می کرد.

----------


## emadrezvani

> راستش رو بخوای من از x86 خوشم نمیاد.از نظر معماری کامپیوتر ایرادهای زیادی داره اما کلا من خودم روی یه معماری جدید کار می کردم که حتی یه FPGA اسپارتان 6 هم گرفتم براش.


موضوع دوست داشتن پردازنده های x86 نیست. قصد دارم بتونم حداقل DOS رو روی ARM اجرا کنم. 
اما در مورد پردازنده ی جدید حق با شماست.

----------


## emadrezvani

بنده وبلاگ رو راه اندازی کردم.
http://emadrezvani.blog.ir/

----------


## H_afkhami60

سلام




> بنده مدار ۸۰۸۸ و ۸۰۸۶ رو بستم





> همون کتاب پردازنده های اینتل باری بی بری کلی مدار برای مدهای مختلف این دو پردازنده داره.


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

----------


## emadrezvani

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


بله. منظور همون مدار با خود پردازنده بود. اما در حال حاضر شبیه ساز اون رو دارم برای میکروکنترلر ها طراحی میکنم(البته اگه نتیجه خوب بشه گرفت).

----------


## H_afkhami60

سلام

یک سوال ساده:
 اگر دو عدد 8 بیتی باهم جمع شوند، درصورتیکه نتیجه 9 بیتی باشد رقم نقلی یک خواهد شد. سرریز هم یک خواهد شد. بنابراین همیشه وقتی نقلی یک می شود، سرریز خواهیم داشت. درسته؟ بنابراین به دستوری مانند JPE (پرش درصورت سرریز) نیاز نخواهیم داشت و می توانیم به جای آن از دستور JPC (پرش درصورت ست شدن نقلی) استفاده کنیم. درسته؟

----------


## emadrezvani

من دستور JPC رو نشنیدم. شاید منظورتون JC بوده. درسته ؟

----------


## H_afkhami60

جناب رضوانی دستور JPC جزء لیست دستورات پردازنده ای است که بنده در حال طراحی اون هستم. عملکرد این دستور همانند دستور JC در پردازنده های اینتل هست. یعنی پرش در صورت ست شدن نقلی. لیست دستورات پردازنده بنده را میتونید از پستهای قبلی دانلود کنید. عملکرد هر دستور در جلوی اون توضیح داده شده. 

اما جواب سوال بنده:
فکر نکنید بنده قبل از پرسیدن سوال جواب اون را بلد بودم. ی کم تحقیق کردم تا جوابشا پیدا کردم. زمان تحصیل در دانشگاه فکر نمی کردم جواب سوال به این سادگی، یک روز اینقدر برام مهم بشه. اما الان که دارم مدار ریزپردازنده را طراحی می کنم، دیگه امکان چشم چوشی از جواب این سوال را ندارم.
جواب : اگر دو عدد از نوع بدون علامت درنظر گرفته شوند، وجود کری مترادف است با وجود سرریز. اما اگر دو عدد علامتدار فرض شوند، ممکن است کری نداشته باشیم اما سرریز داشته باشیم. بنابراین وجود هر دو دستور JPC و JPE ضروری است.

----------


## H_afkhami60

سلام به همه مهندسان عزیز

وقتی این تاپیک را شروع کردم (15 بهمن)، هرگز باورم نمیشد که بخوام بعد از 45 روز خبر از تکمیل شدن مدار پردازنده 8 بیتی بدم. اما خدا را شکر می کنم که این امر اتفاق افتاد و نتیجه تحقیقات بنده به این مرحله رسید. کارهایی که بنده پس از انتخاب لیست دستوالعملها انجام دادم این بود که تصمیم گرفتم در این مرحله بدون کمک زبانهای توصیف سخت افزاری (HDL)، به طراحی مدار بپردازم تا بتونم زودتر به نتایج ملموسی برسم. بنابراین لیست دستورالعملها را مجدداً بازبینی کردم و یک لیست حداقلی برای پردازنده تهیه کردم. در مرحله بعد برای هر دستور العمل، ریزعملهای مورد نیاز را تهیه کردم. تمام دستورالعملها و ریزعملهای مورد نیاز اونها را داخل یک جدول قرار دادم. در مرحله بعد دیاگرام پردازنده را طراحی کردم که در اون ثباتها، واحد محاسبه و منطق، واحد کنترل، حافظه و گذرگاه مشترک نشون داده شده و نحوه ارتباط اینها با هم. در مرحله بعد اقدام به رسم مدار این قسمتها کردم. در مرحله بعد توابع مورد نیاز برای کنترل قسمتهای مختلف ریزپردازنده از قبیل گذرگاه مشترک، زمان لود شدن رجیسترها و فلیپ فلاپها و کلاً سیگنالهای مورد نیاز هر دستورالعملی که در واحد کنترل دیکد می شود را با استفاده از جدول دستورالعملها و ریزعملها، تهیه کردم و سرانجام در مرحله نهایی با استفاده از این توابع واحد کنترل را طراحی کردم. اینجا بود که مدار پردازنده تکمیل شد. احساس خیلی عجیبی داشتم. با خودم گفتم آیا واقعاً من یک پردازنده طراحی کردم؟ بله در عین حال که خودم باورم نمیشد توانستم اینکار را انجام دهم. مدار را چاپ کردم و دقایق زیادی به آن خیره شدم. 

مرحله بعد و شاید مهمترین مرحله تست پردازنده بود. این مرحله بسیار با دقت انجام شد و زمان زیادی صرف این امر شد. تمام دستورات مرحله به مرحله و با هر پالس ساعت که بصورت دستی به پردازنده وارد میشد، به دقت بررسی شدند. وضعیت همه رجیسترها و نتیجه نهایی. همه دستورات تست شدند و ایرادات مدار رفع شد. هر دستوری که با موفقیت تست می شد، چنان لذتی داشت که تمام خستگی هام از یادم می رفت. خدا را شکر طراحی مدار تمام شد. سوء تفاهم نشه، طراحی مدار و تست اون توی محیط نرم افزار شبیه ساز، انجام شده و مرحله ساخت برد واقعی هنوز انجام نشده. بنده چون قبلاً طراحی مدارها را با استفاده از میکروکنترلرهای AVR تجربه کردم، وقتی توی محیط شبیه ساز طراحی و تست مدار تموم میشه، کار را تموم شده می دونم. البته توی برد واقعی تفاوت هایی وجود داره و مسائلی هست که توی محیط شبیه ساز شما متوجه اونها نخواهید شد. با تجربه متوجه این مسائل خواهید شد.

مدار پردازنده، لیست دستوراتی که این پردازنده قادر به اجرای اونها هست و لیست ثباتها را می تونید دانلود کنید.
این پردازنده، یک پردازنده 8 بیتی است، ثبات فلگ نداره و به جای اون 4 تا فلیپ فلاپ داره. این ساده ترین پردازنده ای است که میشد طراحی کرد. 
ضمناً دوستان توجه داشته باشید این پردازنده را با Core i7 مقایسه نکنید. تا اون نقطه راه بسیار طولانی در پیش است. امیدوارم روزی به اون نقطه برسیم.

----------


## emadrezvani

جناب افخمی خسته نباشید. بسیار عالی و امیدواریم پیشرفت های بهتری از شما ببینیم. فایل بسته شدن مدارتون در محیط شبیه ساز رو برای بنده ارسال کنید.

----------


## pswin.pooya

> وقتی این تاپیک را شروع کردم (15 بهمن)، هرگز باورم نمیشد که بخوام بعد از  45 روز خبر از تکمیل شدن مدار پردازنده 8 بیتی بدم. اما خدا را شکر می کنم  که این امر اتفاق افتاد و نتیجه تحقیقات بنده به این مرحله رسید. کارهایی  که بنده پس از انتخاب لیست دستوالعملها انجام دادم این بود که تصمیم گرفتم  در این مرحله بدون کمک زبانهای توصیف سخت افزاری (HDL)، به طراحی مدار  بپردازم تا بتونم زودتر به نتایج ملموسی برسم. بنابراین لیست دستورالعملها  را مجدداً بازبینی کردم و یک لیست حداقلی برای پردازنده تهیه کردم. در  مرحله بعد برای هر دستور العمل، ریزعملهای مورد نیاز را تهیه کردم. تمام  دستورالعملها و ریزعملهای مورد نیاز اونها را داخل یک جدول قرار دادم. در  مرحله بعد دیاگرام پردازنده را طراحی کردم که در اون ثباتها، واحد محاسبه و  منطق، واحد کنترل، حافظه و گذرگاه مشترک نشون داده شده و نحوه ارتباط  اینها با هم. در مرحله بعد اقدام به رسم مدار این قسمتها کردم. در مرحله  بعد توابع مورد نیاز برای کنترل قسمتهای مختلف ریزپردازنده از قبیل گذرگاه  مشترک، زمان لود شدن رجیسترها و فلیپ فلاپها و کلاً سیگنالهای مورد نیاز هر  دستورالعملی که در واحد کنترل دیکد می شود را با استفاده از جدول  دستورالعملها و ریزعملها، تهیه کردم و سرانجام در مرحله نهایی با استفاده  از این توابع واحد کنترل را طراحی کردم. اینجا بود که مدار پردازنده تکمیل  شد. احساس خیلی عجیبی داشتم. با خودم گفتم آیا واقعاً من یک پردازنده طراحی  کردم؟ بله در عین حال که خودم باورم نمیشد توانستم اینکار را انجام دهم.  مدار را چاپ کردم و دقایق زیادی به آن خیره شدم. 
> 
> مرحله بعد و شاید مهمترین مرحله تست پردازنده بود. این مرحله بسیار با دقت  انجام شد و زمان زیادی صرف این امر شد. تمام دستورات مرحله به مرحله و با  هر پالس ساعت که بصورت دستی به پردازنده وارد میشد، به دقت بررسی شدند.  وضعیت همه رجیسترها و نتیجه نهایی. همه دستورات تست شدند و ایرادات مدار  رفع شد. هر دستوری که با موفقیت تست می شد، چنان لذتی داشت که تمام خستگی  هام از یادم می رفت. خدا را شکر طراحی مدار تمام شد. سوء تفاهم نشه، طراحی  مدار و تست اون توی محیط نرم افزار شبیه ساز، انجام شده و مرحله ساخت برد  واقعی هنوز انجام نشده. بنده چون قبلاً طراحی مدارها را با استفاده از  میکروکنترلرهای AVR تجربه کردم، وقتی توی محیط شبیه ساز طراحی و تست مدار  تموم میشه، کار را تموم شده می دونم. البته توی برد واقعی تفاوت هایی وجود  داره و مسائلی هست که توی محیط شبیه ساز شما متوجه اونها نخواهید شد. با  تجربه متوجه این مسائل خواهید شد.
> 
> مدار پردازنده، لیست دستوراتی که این پردازنده قادر به اجرای اونها هست و لیست ثباتها را می تونید دانلود کنید.
> این پردازنده، یک پردازنده 8 بیتی است، ثبات فلگ نداره و به جای اون 4 تا  فلیپ فلاپ داره. این ساده ترین پردازنده ای است که میشد طراحی کرد. 
> ضمناً دوستان توجه داشته باشید این پردازنده را با Core i7 مقایسه نکنید.  تا اون نقطه راه بسیار طولانی در پیش است. امیدوارم روزی به اون نقطه  برسیم.



سلام  من پردازنده رو نگاه انداختم. خیلی خوبه که تلاشت رو کردی. چند تا مورد هستش:

مجموعه دستورالعملها:

1. به شدت ناقص هستند مثلا داشتن AND و OR رو می تونستی با NAND و NOR عوض کنی که لااقل تمام لاجیک ها رو پوشش بده.
2. مورد بعدی در مورد دستورهای پرش و پرچم ها هست. مشکل اینجاست که کنترل نمی تونی روی بیتهای پرچم داشته باشی ب جزء کری
3. دستور CP جزء حساب و منطق نیست.
4. تا اونجا که متوجه شدم اندازه دستورها بیشتر از هشت بیت هستش اما اندازه ثبات IR    و همینطور خروچی حافظه هشت بیت هست. خوب اینجا باید دستورها رو حداقل بتونی توی یک ثبات مثلا 16 بیتی لود کنی.
5. یه دستور به اسم halt داری که برای وقفه داری درصورتی که اصلا برای وقفه مداری وجود نداره.
6. یکی از واجب ترین دستور ها شیفت هستش. حتما ازش استفاده کن.


در مورد مدار:

1. تولید کننده کلاک نداری. (می تونی از آی.سی 555 برای ساخت کلاک استفاده کنی.)
2. به جای مدارهای جمع و ... می تونی از معادل TTL اونها استفاده کنی که هم مدار رو ساده تر می کنه و هم اینکه تاخیر در عمل کمتر میشه.
3. خروجی کلاک به قطعات زیادی رفته که توی عمل موجب آسیب دیدن قطعات به خاطر جریان کشی میشه. بهتره مطابق با منطق TTL و ... خروجی ها بیشتر از 10 تا جا وصل نشه.
4. کنار وردی کلاک یه pull down گذاشتی که بهتره اندازه اون 10 کیلو باشه
5. تعداد زیادی شمارنده داری که اصلا من متوجه نمی شم چه کاربردی می تونه داشته باشه؟
6. من نتونستم ثبات ها رو پیدا کنم. فقط چند تا فلیپ فلاپ JK دیدم.
7. بهتره واحدها رو از هم جدا کنی که کار تمیز تر از آب در بیاد.

----------


## H_afkhami60

> من پردازنده رو نگاه انداختم.


جناب شاهین فر باعث افتخار بندست.




> به شدت ناقص هستند


بنده عرض کردم که در این مرحله بدنبال یک لیست حداقلی بودم تا بتونم سریعتر به نتایج ملموسی برسم و برام کامل بودن لیست دستورات مهم نبود.




> مشکل اینجاست که کنترل نمی تونی روی بیتهای پرچم داشته باشی ب جزء کری


متوجه منظور شما از اینکه نمیتونم روی بیت های پرچم، کنترل داشته باشم ، نمیشم. اگه منظور شما اینکه تعداد پرچم ها کم است. بله در این مرحله هدف کامل بودن تعداد پرچم ها نبود. بلکه هدف این بود که چند پرچمی که به نظرم مهمتر بودند را بتونم با دستورات محاسبه و منطق ست یا ریست کنم و بعد با استفاده از مقدار اونها بعضی دستورات پرش شرطی را انجام بدم. دستورات این قسمت هم کاملاً تست شدند و با موفقیت اجرا شدند.




> دستور CP جزء حساب و منطق نیست


دستور CP در واقع یک عمل تفریق هست که فقط پرچم ها را تغییر می دهد و نتیجه آن ذخیره نمیشود. بنابراین در گروه دستورات محاسبه و منطق قرار می گیرد.




> تا اونجا که متوجه شدم اندازه دستورها بیشتر از هشت بیت هستش اما اندازه ثبات IR و همینطور خروچی حافظه هشت بیت هست. خوب اینجا باید دستورها رو حداقل بتونی توی یک ثبات مثلا 16 بیتی لود کنی.


بعضی دستورات بنده یک بایتی و بعضی دو بایتی هستند. بنده یک حافظه ای را انتخاب کردم که خانه های آن یک بایتی هستند. البته میشد حافظه های دیگر هم انتخاب کرد. اما انتخاب این نوع حافظه کار را راحت تر می کند. بنابراین دستورات دوبایتی در دو خانه قرار می گیرند. وقتی که دستور دیکد میشود، واحد کنترل تشخیص می دهد که این دستور دوبایتی است و بایت دوم دستور را از حافظه خوانده و در ثبات TR قرار میدهد و ...




> یه دستور به اسم halt داری که برای وقفه داری درصورتی که اصلا برای وقفه مداری وجود نداره


هدف از این دستور این بود که پردازنده متوقف شود تا نتایج اجرای دستورات قبلی بررسی شوند(البته زمانیکه از کلاک خودکار برای تست استفاده میشد نه زمانی که از کلاک دستی استفاده میشد)




> (می تونی از آی.سی 555 برای ساخت کلاک استفاده کنی.)


از راهنمایی شما ممنونم.




> به جای مدارهای جمع و ... می تونی از معادل TTL اونها استفاده کنی


اتفاقاً اول این کار را انجام دادم. برای جمع از دو جمع و تفریق کننده کامل 4 بیتی استفاده کردم. اما در مرحله طراحی مدار کنترل پرچم سرریز، مجبور شدم دومی را حذف کنم، چون برای تست سرریز به نقلی وارده به بیت آخر و نقلی خارج شده از اون نیاز داشتم.




> تعداد زیادی شمارنده داری که اصلا من متوجه نمی شم چه کاربردی می تونه داشته باشه؟
> 6. من نتونستم ثبات ها رو پیدا کنم. فقط چند تا فلیپ فلاپ JK دیدم.


این شمارنده ها همان ثبات ها هستند که دارای سه قابلیت هستند: 1- صفر شدن 2- لود شدن 3- شمارش. که به هر یک از این قابلیتها در قسمتهای مختلف نیاز هست. فلیپ فلاپ ها هم که همان پرچمها هستند. یعنی به جای استفاده از ثبات پرچم از اونها استفاده کردم.




> بهتره واحدها رو از هم جدا کنی که کار تمیز تر از آب در بیاد.


 در عمل کار خیلی سختیه.

----------


## H_afkhami60

سلام 

مهندسان عزیز امیدوارم سال خوبی داشته باشید، سرشار از موفقیت، سربلندی و شادی.
خوب بنده یک سری کارها انجام دادم. اول اینکه تصمیم گرفتم که با پردازنده طراحی شده یک LCD 16*1 را راه اندازی کنم. برای این کار اول یک اسمبلر برای پردازنده ساختم که هنوز کامل نشده ولی میشه باهاش کار کرد و یک برنامه با اون نوشتم که LCD را راه اندازی می کنه و یک کلمه را نمایش میده. با نوشتن همین برنامه ساده متوجه شدم که وقتی تعداد دستورات کم باشه چقدر کار برنامه نویس دشوار میشه و تعداد کدهایی که باید نوشته بشه، زیاد شده و برنامه حجیم خواهد شد. خوب به نظرم این نتیجه خیلی مهمیه. چون وقتی که برنامه نویسی برای پردازنده ای سخت باشد و برنامه های تولید شده برای آن حجیم باشند، برنامه نویسها رغبت به نوشتن برنامه برای چنین پردازنده ای نخواهند داشت و پردازنده منزوی شده و قدرت رقابت خود را از دست خواهد داد، بنابراین باید در سیاست کمینه کردن تعداد دستورالعملها تجدید نظر کرد.

----------


## H_afkhami60

سلام

مهندسان عزیز به این 3 جمله توجه کنید:
تعداد دستورات 8086 بیش از 20,000 ترکیب است (کتاب ریزپردازنده ها، صفحه 21).
وجود بیش از 100,000 دستور در پردازنده های اینتل (کتاب ریزپردازنده ها، صفحه 124).
بیش از 32,000 نوع دستور ADD وجود دارد (کتاب ریزپردازنده ها، صفحه 169).


کد دستور CLC در پردازنده های اینتل به باینری، 11111000 است. برای اینکه پردازنده ساخته شده توسط شرکت دیگری غیر از اینتل بتواند دستورات پردازنده های اینتل را تشخیص بدهد، باید کد دستورات پردازنده آن شرکت با کد دستورات پردازنده های اینتل یکی باشد. یعنی مثلاً آن شرکت هم برای دستور CLC از کد 11111000 استفاده کند. آیا اینطور نیست؟
پردازنده های AMD می توانند ویندوز را اجرا کنند. مایکروسافت سیستم عامل خود را با استفاده از دستورات پردازنده های اینتل ساخته است. این یعنی پردازنده های AMD قادر به تشخیص دستورات پردازنده های اینتل هستند. بنابراین نتیجه می گیریم که کد دستورات پردازنده های AMD با کد دستورات پردازنده های اینتل یکسان است. آیا این نتیجه گیری درست است؟
اگر این نتیجه گیری درست باشد، آیا عجیب نیست که AMD توانسته تمام دستورات پردازنده های اینتل را که تعداد آنها با توجه به سه خط اول این پست، باورنکردنی است، پیاده کند؟ 
آیا عجیب نیست که نرم افزارهای DeCompile تمام این تعداد دستور را می شناسند؟

----------


## H_afkhami60

مهندسان عزیز سلام 

بنده تحقیقات خود را ادامه دادم و خدا را شکر به نتایج امیدوار کننده ای رسیدم. بر اساس این تحقیقات به این نتیجه رسیدم که امکان ساخت پردازنده در کشورمان کاملاً وجود دارد. در پست های بعدی اطلاعات بیشتری در مورد تحقیقاتم در اختیار دوستان قرار خواهم داد. البته به شرط حیات و استقبال دوستان از بحث ها.

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

----------


## #target

> اگر ما نمی توانیم تمام دستورات پردازنده های اینتل را از روی آپکد آنها تشخیص دهیم، پس چطور پردازنده های AMD می توانند؟ چطور نرم افزارهای Decopile میتوانند تمام دستورات را از روی آپکد آنها تشخیص دهند؟


کتاب Intel® 64 and IA-32 Architectures Software Developer’s Manualرا خوانده اید ؟




> اگر ما بتوانیم پردازنده ای بسازیم که کد دستورالعمل های (OpCode) آن با کد دستورالعمل های پردازنده های اینتل یکی باشد، آنگاه پردازنده ما می تواند تمام برنامه هایی را که برای پردازنده های اینتل ساخته شده اند، اجرا کند. یعنی می تواند ویندوز، لینوکس و تمام نرم افزارهای کاربردی را اجرا کند. دقیقاً مانند کاری که پردازنده های AMD انجام می دهند. آیا اینطور نیست؟


بهرحال ساخت پردازنده های تجاری از آن چه که در کتاب موریس مانو به عنوان تيوری و آکادمیک گفته تفاوت های زیادی دارد . البته ممکن است، اگر در قصدتان محکم هستید فک کنم همون کار برای سیستمهای Embeded بهتر باشد برای آغاز کار

----------


## H_afkhami60

مهندسان عزیز سلام

نتیجه تحقیقات بنده که از طرق مختلف انجام شد بدین شرح است: 
بنده بعد از طراحی مدار در پروتئوس به فکر این بودم که نقشه مدار را به یک شرکتی بدهم تا چاپ بشه و بعد قطعات برد را هم تهیه کنم و مشغول لحیم کاری بشم. بعد از مدتی که دنبال همچین شرکتی بودم تازه فهمیدم که روش ساخت پردازنده و بردهای بزرگ با هم فرق می کند. روش ساخت بردها به اینصورت است که از قطعات آماده شامل ترانزیستور، مقاومت و آی سی های تولید شده توسط شرکت های مختلف استفاده میشه و بر روی برد که قبلاً نقشه مدار بر روی آن چاپ شده، قرار می گیرند. اما روش ساخت آی سی به اینصورت است که اولاً تماماً از ترانزیستور ساخته می شود و ثانیاً ترانزیستورها طی مراحل پیچیده ای بر روی خود آی سی در مکانهای مورد نظر ساخته می شوند، نه اینکه از قبل ساخته شده باشند و بعد بر روی نقشه آی سی قرار بگیرند. 
مدتی با کارشناسان رشته های مختلف از قبیل الکترونیک، شیمی، مکانیک، کامپیوتر و مهندسی نانو در مورد ساخت آی سی و پروسه آن صحبت کردم. به عنوان مثال یکی از دوستان گفت که در دانشگاه تهران یکی از دوستانش توانسته آی سی بسازد و آنرا تست کردند و جواب داده. بنده با ایشون در دانشگاه تهران ملاقات کردم (آقای دکتر درستی، دکترای کامپیوتر گرایش سخت افزار). ایشون به همراه چند تن از دوستانشون با راهنمایی استاد مربوطه یک میکروکنترلر طراحی کرده بودند که فکر می کنم 128 تا دستور را اجرا می کرد و جالب اینکه از آپکدهای فکر می کنم ATmega128  استفاده کرده بودند، به خاطر همین تونسته بودند برای تست آی سیشون از کامپایلر میکروکنترلر ذکر شده استفاده کنند. خوب بنده قبل از اینکه با ایشون ملاقات کنم، تصور می کردم که آی سی را بعد از طراحی، خودشون داخل آزمایشگاه، توی کشور خودمون ساختند. اما ایشون فرمودند که پس از طراحی، فایل خروجی نرم افزار مربوطه برای چاپ به تایوان فرستاده شده و در واقع فقط طراحی پردازنده داخل کشور انجام شده. این نرم افزار که توسط نهاد ICIC که یک نهاد دولتی است و از اینگونه طرح ها حمایت میکنه (حمایت مالی و علمی)، در اختیار این دوستان قرار گرفته. در این نرم افزار آی سی با زبان Verilog طراحی میشه و بعد فایل خروجی برای چاپ آی سی به کشور تایوان فرستاده میشه. درصد بیشتر هزینه چاپ آی سی توسط این نهاد پرداخت میشه. 
یک سری تحقیقاتی نیز انجام دادم در زمینه امکان سنجی برای ساخت آی سی داخل کشور که نهایتاً با گفتگویی که با آقای دکتر  خیرا... حدیدی، استاد ميکروالکترونيک دانشگاه اروميه (برای شناخت ایشون میتونید توی گوگل سرچ کنید. مصاحبه مرکز کارآفرینی دانشگاه صنعتی شریف با ایشان خواندنی است. ) داشتم، فهمیدم که علارغم تلاشهایی که تاکنون داخل کشور انجام شده، متاسفانه هنوز کارشناسان کشورمان نتوانسته اند به این فناوری دست پیدا کنند. خوب این فناوری جزء فناوری های های تک است. تصور کند که عرض یک ترانزیستور درون آی سی 100 نانومتر است. که البته در تکنولوژی های جدید از این هم کمتر است.

----------


## reza_noei

> مهندسان عزیز سلام
> یک سری تحقیقاتی نیز انجام دادم در زمینه امکان سنجی برای ساخت آی سی داخل کشور که نهایتاً با گفتگویی که با آقای دکتر  خیرا... حدیدی، استاد ميکروالکترونيک دانشگاه اروميه (برای شناخت ایشون میتونید توی گوگل سرچ کنید. مصاحبه مرکز کارآفرینی دانشگاه صنعتی شریف با ایشان خواندنی است. ) داشتم، فهمیدم که علارغم تلاشهایی که تاکنون داخل کشور انجام شده، متاسفانه هنوز کارشناسان کشورمان نتوانسته اند به این فناوری دست پیدا کنند. خوب این فناوری جزء فناوری های های تک است. تصور کند که عرض یک ترانزیستور درون آی سی 100 نانومتر است. که البته در تکنولوژی های جدید از این هم کمتر است.


سلام خسته نباشید

من هم مدتی به این موضوع فکر می کردم. به ذهنم رسید، که ما در زمینه ساخت ترانزیستور مشکلات بزرگی داریم اما یک راه حل میتونه استفاده از فناوری نانو باشه.
کشور ما در این زمینه وضع بهتری داره. اگر بتوانیم یک ترانزیستور فارغ از نوع انرژی مصرفی با استفاده از این فناوری بسازیم به نوع خودش یک انقلاب را در این زمینه رقم زده ایم.
 در ضمن اگر ممکنه روی بحث کامپیوترهای کوانتمی هم تحقیقاتی داشته باشید. گفته میشه که ما باید روزی با 0 و 1 خدا حافظی کنیم 
و در عوض کامپیوترهای کوانتمی را وارد زندگی مان کنیم.

----------


## pswin.pooya

> بنده تحقیقات خود را ادامه دادم و خدا را شکر به نتایج امیدوار کننده ای  رسیدم. بر اساس این تحقیقات به این نتیجه رسیدم که امکان ساخت پردازنده در  کشورمان کاملاً وجود دارد. در پست های بعدی اطلاعات بیشتری در مورد  تحقیقاتم در اختیار دوستان قرار خواهم داد. البته به شرط حیات و استقبال  دوستان از بحث ها.


دوست من حتی مرحله اولش که ساخت کریستال برای ویفر رو هم هست مطمئن باش که نه ما، حتی خیلی از کشورهای صنعتی دنیا هم نمی تونن انجام بدن، بهتره در مورد نحوه ساخت کریستالها و .. که توی این صنعت استفاده میشن تحقیق کنید. اصلا همین تهیه سیلیکونش یه تشکیلات برای خودش داره که اگر فیلم هاش رو ببینید متوجه میشید. شما حتی نقشه های دستگاه هاش رو هم داشته باشید نمی تونید کامپوزیت ها و آلیاژهای لازم برای ساختش رو تامین کنید و حتی اگر اینها رو هم تامین کنید باز به خاطر تجهیزات خاص مورد نیاز به احتمال زیاد نمی تونید برش بدید و ذوب و یا حتی قالب گیری کنید. خلاصه کلام حتی دستگاهی لازم اینکار رو هم با بودن نقشه و مواد و ... نمی تونیم بسازیم.

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

نمی گم بیخیال بحث شید اما از مطمئن بودن و کلمه های مشابه اون  دست بردارید که الان بیشتر از نصف مشکلهای ما بخاطر این اطمینان کاذب هست. باید قبول کنیم که عقب موندیم. مشکل داریم اون موقع هستش که می تونیم پیشرفت کنیم. ما الان حتی توی نرم افزارش هم موندیم چه برسه به سخت افزار.





> مدتی با کارشناسان رشته های مختلف از قبیل الکترونیک، شیمی، مکانیک،  کامپیوتر و مهندسی نانو در مورد ساخت آی سی و پروسه آن صحبت کردم. به عنوان  مثال یکی از دوستان گفت که در دانشگاه تهران یکی از دوستانش توانسته آی سی  بسازد و آنرا تست کردند و جواب داده. بنده با ایشون در دانشگاه تهران  ملاقات کردم (آقای دکتر درستی، دکترای کامپیوتر گرایش سخت افزار). ایشون به  همراه چند تن از دوستانشون با راهنمایی استاد مربوطه یک میکروکنترلر طراحی  کرده بودند که فکر می کنم 128 تا دستور را اجرا می کرد و جالب اینکه از  آپکدهای فکر می کنم ATmega128  استفاده کرده بودند، به خاطر همین تونسته  بودند برای تست آی سیشون از کامپایلر میکروکنترلر ذکر شده استفاده کنند.  خوب بنده قبل از اینکه با ایشون ملاقات کنم، تصور می کردم که آی سی را بعد  از طراحی، خودشون داخل آزمایشگاه، توی کشور خودمون ساختند. اما ایشون  فرمودند که پس از طراحی، فایل خروجی نرم افزار مربوطه برای چاپ به تایوان  فرستاده شده و در واقع فقط طراحی پردازنده داخل کشور انجام شده. این نرم  افزار که توسط نهاد ICIC که یک نهاد دولتی است و از اینگونه طرح ها حمایت  میکنه (حمایت مالی و علمی)، در اختیار این دوستان قرار گرفته. در این نرم  افزار آی سی با زبان Verilog طراحی میشه و بعد فایل خروجی برای چاپ آی سی  به کشور تایوان فرستاده میشه. درصد بیشتر هزینه چاپ آی سی توسط این نهاد  پرداخت میشه.


یه مشکلی که اینحا هستش اینه که زبان VERLOG برای توصیف سخت افزار هست و نه ساخت اون چون توی ساخت حتی فاصله سیم ها و قطرشون مهم هست که بهش میگن سازمان کامپیوتر. پس اگر کسی گفته از verilog تونسته دای بسازه دروغ محض گفته. قبل از اون کلی کار وحود داره که باید انجام بگیره. شما با verlog فوقش می تونید روی FPGA تست بگیرید. مورد دیگه اینه که الان شما می تونید به راحتی کد verilog نه تنها avr مثل atmega32 رو بلکه حتی arm رو هم از روی سایت open core بردارید. البته من کار آقای دکتر درستی رو ندیدم امکانش هست منظورشون چیز دیگه ای بوده اما با توجه به توصیف شما بعید می دونم واقعا نتیجه گرفته باشن

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

----------


## H_afkhami60

> من هم مدتی به این موضوع فکر می کردم. به ذهنم رسید، که ما در زمینه ساخت  ترانزیستور مشکلات بزرگی داریم اما یک راه حل میتونه استفاده از فناوری  نانو باشه.
> کشور ما در این زمینه وضع بهتری داره. اگر بتوانیم یک ترانزیستور فارغ از  نوع انرژی مصرفی با استفاده از این فناوری بسازیم به نوع خودش یک انقلاب را  در این زمینه رقم زده ایم.


اتفاقاً با وجود اینکه دکتر حدیدی فرمودند که تا بحال تلاشهای کارشناسان ما به جایی نرسیده، بنده با خودم فکر کردم که چطور است که کشور ما در فناوری نانو جزء چند کشور اول دنیاست اما در این زمینه هنوز موفق نشدیم به جایی برسیم. البته بنده در دانشگاه تهران با دانشجویان مهندسی نانو در زمینه ساخت ترانزیستور در ابعاد نانو صحبت کردم. آنها در حال حاضر توانایی این را دارند که الگوهایی را با دقت میکرومتر پیاده سازی کنند. بنده برنامه ای برای ملاقات با اساتید مهندسی نانو این دانشگاه و دیدار از Clean Room آنجا دارم. که نتیجه این دیدار را درصورت تحقق به اطلاع خواهم رساند. اگر به سایت فناوری نانو بروید، در آنجا مراحل ساخت آی سی بطور خلاصه گفته شده. البته پروسه ساخت آی سی بسیار پیچیده است. برای اینکه از شدت پیچیدگی این پروسه مطلع شوید، کتاب‌هاي VLSI که از دروس رشته الکترونیک هستند را مطالعه بفرمایید. البته نظر بنده این است که اگه ما بتونیم یک آی سی در ابعاد میکرومتر هم بسازیم برای شروع بسیار خوب است. چون مطمئن هستم که شرکت های بزرگ دنیا هم از همین نقطه شروع کردند. شاید بعضی از دوستان بگویند که این یعنی تکنولوژی که آنها 30-40 سال پیش به آن دست پیدا کرده اند. پاسخ بنده این است که بله پس توقع دارید که در طول مثلاً 8 سال به فناوری که آنها 70 سال برای رسیدن به آن زحمت کشیدند، برسید. اما باید نترسید و از همین جا شروع کرد و توکل کرد به خدا. به هر حال ما قسمتی از تجربیات و دانش آنها را در اختیار داریم و می توانیم از آنها استفاده کنیم. 
یکی از وظایف سنگینی که در راستای رسیدن به این هدف عظیم (ساخت آی سی) بر عهده مهندسان نرم افزار است. ساخت کامپایلر زبان Verilog است.
 چرا با وجود نرم افزارهای شبیه ساز و محیط های طراحی مدار که از زبان Verilog پشتیبانی می کنند، ما باید خودمان کامپایلر این زبان را بسازیم؟ جواب این است که فرض کنید مهندسان نانوی ما بتوانند نقشه مدار را در ابعاد نانو پیاده کنند. نقشه مدار کجاست؟ برای پیاده سازی مداری که فقط از یک لایه سیم (اتصالات بین ترانزیستورها) تشکیل شده باشد، حداقل به هفت نقشه نیاز داریم. این وظیفه نرم افزار طراحی مدار است که این هفت نقشه را، از روی نقشه مدار که با زبان Verilog توصیف شده، ساخته و برای دستگاهی که ماسک را میسازد، ارسال کند. دستگاهی که ماسک را میسازد، یک مدار الکترونیکی دارد که این مدار فقط می تواند با نرم افزار مربوطه ارتباط برقرار کند نه با هر نرم افزاری. بنابراین چون نرم افزارهای موجود نمی توانند چنین کاری برای ما انجام دهند و با دستگاه فرضی که ما خواهیم ساخت، ارتباط برقرار کنند، ما باید خودمان نرم افزار مربوطه را بسازیم. البته برای بنده و امثال بنده که عادت کردیم از کامپلرهای آماده رایگان (با میلیون ها قطعه آماده) استفاده کنیم، اینکار بسیار بسیار سخت است. خوب بالاخره هر که طاووس خواهد جور هندوستان کشد. اونایی که می خواند کشورشون سربلند باشه و بیشتر از این از قافله تکنولوژی عقب نمونه بسم ا... . شروع کنید اگه ما مهندس الکترونیک نیستم مهندس کامپیوتر که هستیم. نظر بدید. برای ساخت این کامپایلر از چه نرم افزاری استفاده کنیم؟ منابع مطالعاتی چی سراغ دارید؟

----------


## H_afkhami60

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


پویا جان، برادر من، شخص بنده هر کجا گیر می کنم با خودم می گم مگه تو دین و ایمون نداری؟ مگه مخزن همه علما پیش امام زمون نیست؟ تو که بی کس و کار نیستی. برو از امام زمان بخواه کمکت کنه. یه ذره از علمشو در اختیارت بگذاره ...




> یه مشکلی که اینحا هستش اینه که زبان VERLOG برای توصیف سخت افزار هست و نه  ساخت اون چون توی ساخت حتی فاصله سیم ها و قطرشون مهم هست که بهش میگن  سازمان کامپیوتر. پس اگر کسی گفته از verilog تونسته دای بسازه دروغ محض  گفته.


نرم افزاری که دکتر درستی و دوستانشون از اون استفاده کردند، توسط شرکت تایوانی در اختیار اونها قرار گرفته. نرم افزارهای اینچنینی علاوه بر ایجاد محیطی برای توصیف سخت افزار به زبان Verilog، امکان شبیه سازی و تست بنچ را به طراح می دهند. در مرحله شبیه سازی از کتابخانه هایی که همین شرکت ارائه کرده استفاده شده. مثلاً تاخیر گیت ها بر اساس نمونه واقعی که این شرکت با استفاده از آن تکنولوژی قادر به ساخت آنهاست، در اختیار قرار گرفته. این نرم افزار در پایان فایلی با فرمت GDSII (بخوانید جی دی اس تو) برای ارسال به کارخانه سازنده تراشه تولید می کند.

----------


## pswin.pooya

> پویا جان، برادر من، شخص بنده هر کجا گیر می کنم با خودم می گم مگه تو دین و  ایمون نداری؟ مگه مخزن همه علما پیش امام زمون نیست؟ تو که بی کس و کار  نیستی. برو از امام زمان بخواه کمکت کنه. یه ذره از علمشو در اختیارت  بگذاره ...


یه مشکلی که اینجا وجود داره اینه که اول از همه مخزن تمامی اسرار و علم های دنیا خدا هست و تکیه کردن به غیر اون کفر به شماره میره. مورد بعدی اینه که خدا زمانی که خواستش کمک کنه بزرگترین اون رو کرد و شما قدرت فکر کردن، تامل و ... رو داد که بزرگترنیش مغز شما بود پس وقتی محبتی به این بزرگی به شما داده انتظار داره شما ازش کمال استفاده رو به بهترین شکل ممکن بکنید و این وسط هرکسی بهتر از محبتهای اون استفاده کنه خدا بیشتر دوستش داره. نه کسی رو که منتظر امداد غیبی باشه. البته باز خود اون بهتر می دونه صلاح چیه و ما حق نداریم اینجوری قضاوت کنیم. حداقل من تا اونجا که می دونم ما باید بدون هیچ انتظار خاصی به بهترین شکل از محبت های داده شده استفاده کنیم اگر ما از محبت هاش استفاده کردیم و کافی نبود مطمئن باشید کمک میکنه.




> نرم افزاری که دکتر درستی و دوستانشون از اون استفاده کردند، توسط شرکت  تایوانی در اختیار اونها قرار گرفته. نرم افزارهای اینچنینی علاوه بر ایجاد  محیطی برای توصیف سخت افزار به زبان Verilog، امکان شبیه سازی و تست بنچ  را به طراح می دهند. در مرحله شبیه سازی از کتابخانه هایی که همین شرکت  ارائه کرده استفاده شده. مثلاً تاخیر گیت ها بر اساس نمونه واقعی که این  شرکت با استفاده از آن تکنولوژی قادر به ساخت آنهاست، در اختیار قرار  گرفته. این نرم افزار در پایان فایلی با فرمت GDSII (بخوانید جی دی اس تو)  برای ارسال به کارخانه سازنده تراشه تولید می کند.


امکان تست بنچ مارک، توصیف سخت افزار و ... در تمامی نرم افزارهای بازار وجود داره که بارها اینجا من لیستش کردم زمانی که شما داری سخت افزار رو توصیف می کنی "معماری کامپیوتر" رو انجام دادی اما زمانی که داره اون رو پیاده سازی میکنی داری "سازمان کامپیوتر" رو انجام میدی. به عبارت دیگه توی معماری مثلا قطر سیم یا پهنای و حتی جنسش مهم نیست اما این در مورد سازمان صدق نمی کنه در فرکانس بالا یک سیم هم تبدیل به خازن، هم سلف، هم مقاوت و ... میشه (البته بجای سیم شاید بهتر باشه بگیم ترک). یکی از مشکلهای حاد دیگه در سازمان کامپیوتر فاصله اجزا از هم هست که می بینیم در معماری corei شرکت اینتل چند تا پایپ لاین مخصوص برای همین سیم های دور از هم گرفته شده. یه مورد دیگه کلاک رسانی هم زمان هست که یه تکنیک اون قرار دادن بافرهای not متوالی برای اینکار هستش. یه مورد دیگه تامین انرژی قطعات هست چون نمیشه سیم های توان به به راحتی جابجا کرد، مثلا بیشتر از نصف پایه های زیر پردازنده ها مربوط به vcc و gnd هست. اینها همه در کنار هم شاید یک درصد مشکلات سازمان کامپیوتر نباشن. که تا اونجا می دونم شرکت های معتبر دنیا اینکار رو هم دستی و هم نرم افزاری انجام میدن و اصولا چیزی به اسم یک نرم افزار مجتمع یکجا وجود نداره. و verlog و ... فوقش به درد fpga می خوره. 

بیخودی نمی گن تکنولوژی اتمی یک باشه تکنولوژی تولید پردازنده 100 هست. همنطور که گفتم حتی قدرتهای اقتصادی دنیا هم جرات نمی کنن توی این زمینه سرمایه گذاری کنن و ترجیح میدن معماری رو انجام بدن و بقیه رو بسپارن به شرکت های دیگه. اگر همه چی به همین راحتی که دکتر می گه بودش الان اپل، سامسونگ و ... همه پردازنده های اختصاصی خاص خودشون رو داشتن. حتی اوراکل هم از هسته SPARC استفاده کرد برای پردازنده هاش. پروفسور پترسون که توی دنیا شهرت داره می گه اگر کمک اینتل نبودش من نمی تونستم MIPS رو طراحی کنم. 

البته اینم اضافه کنم که شرکتهای تابوانی و ... هم سیلیکون دای سفارشی میزنن (در حد میلیون دلار هم پول می گیرن) اما تنها شرکتهای کمی اونم معمولا با هسته های آماده سفارشی شده اینکار رو میکنن. ضمنا اضافه کنم همون شرکتها هم دارن از تکنولوژی آمریکایی استفاده میکنن و تکنولوژی نه اروپایی هست و نه مال خودشون. تنها کارخونه توی تایوان و ... هست.

----------


## M_Ali_Safdari

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

----------


## pswin.pooya

> اختراع دوباره چرخ چه کمکی به استقلال و خودکفایی میکند؟


با این تقریبا موافقم. درسته که کمک به استقلال و ... نمی کنه اما به تجربه و علم کمک می کنه. هر دانشجویی باید چنین تلاشهایی داشته باشه. نباید به جریان آرمانی نگاه کرد که مثلا بشینیم یه کامپایلر یا پردازنده بسازیم که از دینا جلو بزنیم و ... بلکه باید اینها رو تجربه کرد که درصوت نیاز از علم موجود استفاده کرد. فعلا من فکر نمی کنم با توجه به موادری هست که احتیاجی به ساخت این موارد باشه.




> این چنین آرمان هایی هیجانی هستند یا واقعی؟


مونده به وضعیت تکنولوژیک و اقتصادی جامعه




> اصرار ژاپن به ساخت پردازنده (Motorola) چقدر موفق بوده است؟


موتورلا شرکت ۱۰۰ درصد آمریکایی هست و خیلی خیلی خیلی موفق بوده. پردازنده های مک های قدیمی موتورلا بودن.پردازندههای نظامی و صنعتی زیادی رو تولید کرد. اگر فقط شیش ماه زودتر پردازنده های خودش رو طراحی می کرد الان به جای x86 داشتین از پردازنده های اون استفاده می کردین که اپل اینکار رو کرد و موفق بود. می شه گفت فقط از نظر زمانبندی معمولا شرکت موتورلا مشکل داشت اما در ابعاد غیر تجاری روزمره خیلی موفق بوده. 




> آیا کاری که ژاپن توفیق زیادی نیافته در ایران موفق خواهد بود؟


در مورد بحث پردازنده ها تحقیق کنید. پردازندهای مثل سیستم عامل ها محدود به PC نیستن. تلوزیون و موبایل و ... که شما استفاده می کنید همه پردازنده دارن اما خب ژاپنی ها برای توی بازار موندن سعی کردن که از گزینه های آمریکایی استفاده کنن اما در عین حال تکنولوژی رو داشتن و دارن. ژاپن حدود ۷ درصد از تکنولوژی دنیا رو به صورت انحصاری در اختیار داره و آمریکا ۲۷ درصد. بعد از اونا آلمان با ۳ درصد اینا هست (که البته روز به روز داره بیشتر می شه)




> اگر به فکر استقلال و خودکفایی و سایر موارد خوش رنگ و لعاب این چنینی هستید، پول ساز بودن اولین شرط است.


موافقم

----------


## reza_noei

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


یه بنده خدایی میگفت از همکارهامون رفته بودن کانادا ازشون پرسیدن از کجا تشریف آوردید بعد همکار این بنده خدا میگه از ایران 
طرف هم نه گذاشت و نه برداشت گفت شما یا پزشک هستید یا مهندس !!
بحث چرخ و اختراع و اینطور چیزها نیست مسئله بزرگ تر از این حرف هاست ما همین الان تو دانشگاهمون بیش از 10،000 پروژه دانشجویی داریم
یک نفر هست که بگه اگه این 10،000 پروژه صرف گرفتن نمره انجام نمیشد چه میشد ؟؟

*هیچ کس 

*معلومه چون برای ما هیچ مسیر راهی ترسیم نشده، نتها برای ما برای هیچ کدام از رشته های تحصیلی !!!

این رو از یک بنده خدایی نقل میکنم خیلی جالبه : 
اگه یک دانش آموز مقطع متوسطه هوش بالایی داشته باشه بهش میگن برو رشته ی ؟؟  بله ریاضی 
اگه یکم ضعیف تر باشه بره فلان رشته و آخرش اگه دیدن کلاً هیچی به هیچی میفرستنش انسانی (:

جالبه رشته انسانی رشته ایه که متفکران یک جامعه در آن تحصیل میکنند ولی ....

خوب چه میشه کرد؟ 

ما باید خودمون دست بکار بشویم و نیاز کشور را شناسایی کنیم من نمیدونم ساخت پردازنده برای ما لازمه یا لازم نیست چون واقعاً اطلاعی از نیازهای کشور هم ندارم. 
ولی قطعاً در کشور ما در هر حوزه ای نیازهایی هست که باید توسط خود ما شناسایی بشه.
(راحت بگم تو کشوری که جز پز دادن دغدغه ی بزرگتری برای مسئولین کلان کشور وجود نداره اوضاع ما چیزی در حد فاجعه است)

زمان میبره و فکر میکنم این راه (شناخت ظرفیت ها و نیازهای بلقوه کشور) وظیفه ی ماست و ما باید پلی برای نسل آینده باشیم.

الان به این جمله که "این کشور را شخص امام زمان بصورت غیبی نگه داشته" پی میبرم چون واقعاً اوضاع افتضاح تر از این حرفهاست.

----------


## H_afkhami60

سلام مهندسان عزیز

خوب خدا را شکر بنده هنوز زنده هستم. شاید بعضی دوستانی که این تاپیک را دنبال می کردند فکر کردند که بنده دیگه بی خیال این بحث ها شدم. باید عرض کنم که خیر بنده از آخرین پستی که گذاشتم تا حالا یک روز هم بی خیال این ماجرا نشده ام و از اون روز تا حالا دارم الکترونیک می خونم و انشاء ا... مهر سال آینده دانشجوی مقطع ارشد رشته الکترونیک خواهم بود. علاوه بر این با مرکز مدار مجتمع ایران (ICIC) در ارتباط هستم و نرم افزارهای مورد نیاز برای طراحی آی سی را ازشون دریافت کردم و مدتی باهاشون کار می کنم. که البته این یکی از قدم هایی است که بنده برداشتم و قدم های بسیاری باقی مانده. مطالعات زیادی در مورد روند ساخت آی سی داشتم. کار بسیار پیچیده و های تک است. یک قلمش بدست آوردن سیلیسیم با خلوص ۹۹ درصده و ... کار بسیار پیچیده و سخت است. اما از قسمت های کوچک تشکیل شده که فهم هر کدام یک قدم ما را به هدف نزدیک می کند. هر راهی هرچقدر هم طولانی از قدم های کوچک تشکیل شده.  




> اختراع دوباره چرخ


دوست عزیز این عبارت از مبنا غلط است. چون اختراع به معنی ساختن دستگاهی است که تابحال ساخته نشده. وقتی دستگاهی ساخته شد آنوقت اگر دیگران هم توانستند مثل آنرا بسازند به کار آنها دیگر اختراع گفته نمی شود. 

بنابراین هدف ما این است که دستگاه یا روندی را که دیگران اختراع کردند یا ساختند ما هم بسازیم تا بتوانیم مستقل باشیم و به دیگران وابسته نباشیم و ثابت کنیم که ما هم می توانیم. آنوقت فرزندان ما هرکجای دنیا که بروند با افتخار خواهند گفت ما ایرانی هستیم. نه اینکه از گفتن این جمله خجالت بکشند. وظیفه ما این است که تلاش خود را بکنیم و نتیجه را به خدا واگذار کنیم. با دست روی دست گذاشتن به هیچ جا نمی رسیم. منتظر معجزه نباشید.

----------


## m.j_banitaba

> اختراع دوباره چرخ
> 
> دوست عزیز این عبارت از مبنا غلط است. چون اختراع به معنی ساختن دستگاهی است که تابحال ساخته نشده. وقتی دستگاهی ساخته شد آنوقت اگر دیگران هم توانستند مثل آنرا بسازند به کار آنها دیگر اختراع گفته نمی شود.


ببخشید فکر کردم شاید لازم باشه این رو بگم .
این عبارت البته به در نگاه اول شاید غلط باشد ولی به کار بردن آن بی دلیل نیست.
این عبارت جهت طعنه زدن به نظام بالندگی در کشور به کار می رود. زیرا برادرانی در همین نزدیکی هستند که وقتی دو خط کد میزنن مورد عنایت قرار می گیرند وبا عناوینی چون یک مبتکر ایرانی ، یک نابغه ایرانی ، یک دانشمند و مخترع ایرانی براشون نوشابه باز می شود ولی دانشمندان گمنامی در این ملک هستند که با سیلی صورت خود را سرخ می کنند و هر از چند گاهی که ناله ای از سر سوز سر می دهند با عناوینی چون سیاه نماها ، آدمهای بد بین و چیزهایی که در حضور دوستان از گفتنش شرمم می آید مورد تفقد قرار می گیرند.
عدم توانایی مدیران در ارزش یابی صحیح طرح ها باعث بیان عبارات فوق است.

----------


## H_afkhami60

سلام

باز دوباره دلو به دریا زدم و دست به قلم شدم. اونقدر مطلب تو ذهنم هست که نمی دونم از کجا شروع کنم. اما تصمیم گرفتم با یک بحث غیر احساسی شروع کنم. توی یادداشت های قبلی پرسیده بودم که چطور پردازنده های AMD می تونند دستورات پردازنده های Intel را اجرا کنند؟ مگه آپکداشون مثل همه؟ 
یکی و دوماه پیش به جواب این سوال رسیدم. بله آپکداشون مثل همه و هیچ شبیه سازی در کار نیست. به مرور که اینتل دستورات جدید را اضافه کرده AMD هم اون دستورات را با همان آپکد به پردازنده خودش اضافه کرده. حتی در برهه ای یک سری دستورات را AMD اضافه کرده و اینتل خودش را بروزرسانی کرده. 
بنابراین اگر می خواهید پردازنده شما توانایی اجرای سیستم عامل ویندوز و لینکوس و نرم افزارهای تحت ویندوز و لینکوس و کلاً تمام برنامه هایی که بر اساس پردازنده های اینتل ساخته شده اند، را داشته باشد، باید پردازنده شما تمام دستورات آنها را داشته باشد و آپکد این دستورات هم با پردازنده های اینتل یکی باشد. فایده این کار این است که پس از ساخت پردازنده کار شما خیلی خیلی راحتر می شود. البته کاملاً راحت هم نمی شود. خیلی خیلی راحت می شود چون دیگر نیازی به طراحی اسمبلر و کامپایلر و سیستم عامل و نرم افزارهای کاربردی برای این پردازنده نیست و این نرم افزارها بدون کامپایل مجدد روی پردازنده شما قابل اجرا هستند. کاملاً راحت نمی شود چون باید مادربوردی برای این پردازنده طراحی شود که البته طراحی این مادربورد می تواند به موازات طراحی پردازنده انجام شود.

خب اگه شما یک چنین پردازنده ای طراحی کردید می تونید الان با یک مبلغی حدود 50 تا 60 میلیون تومن (به ازاء هر یک سانتی متر مربع) ساخته شده اونرا تحویل بگیرید. اگه تعداد 1 میلیون از اونرا سفارش بدید، میشه دونه ای 50 تا 60 تومن (به ازاء هر یک سانتی متر مربع). مثلاً اگه مساحت آی سی شما بعد از طراحی شد 4 سانتی متر مربع، هزینه ساخت اون 4 برابر مبلغ بالا میشه.  این یک واقعیته. البته شاید بعضی ها باورشون نشه، اما واقعیته. البته یک شرطه بزرگ دیگه هم هست و اون اینه که اون شرکت خارجی به شما نگه شرمنده شما تحریم هستید و یک مسئله دیگه اینکه قیمت های بالا بر اساس قیمت دلار بالا و پائین میشه.

----------


## H_afkhami60

بازم سلام

اما ادامه بحث. راه دوم اينه که پردازنده را خودمون بسازيم. يعني همون راهي که از اول تصميم به طي کردن اونرا داشتيم. خوب من الان يک ساله که دارم الکترونيک مي خونم و تمام درسهاي ليسانس رشته الکترونيک را که بچه هاي الکترونيک حداقل 4 سال طول ميکشه اونها را بخونند من توي اين يکسال خوندم به غير از مخابرات 1 و 2 و الکترونيک 3. خب چطوري تونستم اينکارا انجام بدم؟ اولاً حدود 40درصد درسهاي کامپيوتر و الکترونيک مشابه. دوماً من مجبور نبودم مثل دانشجوي بدبخت وقتما صرف حفظ کردن فرمولها بکنم البته نه اينکه سرسري از مطالب بگذرم. ثالثاً و مهم تر از همه اينکه توي اين يکسال حداقل روزي 4 الي 5 ساعت بطور ميانگين مطالعه داشتم. شايد پيش خودتون فکر کنيد که حتماً من بيکار بودم که روزي 4-5 ساعت مطالعه مي کردم. نه دوستان، اين 4-5 ساعت همون وقتي است که 99 درصد مردم اون را صرف هدر دادن در شبکه هاي اجتماعي، تماشاي همه برنامه هاي تلويزيون] مهماني رفتن و مهماني دادن مي کنند يا سه شنبه ها ميرن شمال شلوارک مي پوشند لب ساحل، جوج مي خورند با نوشابه. 
خب در اين مدت که من براي هدف بزرگ خودکفا کردن کشور در ساخت آي سي و بدنبال کسب اين افتخار براي مملکت بودم، مورد لطف دوستان و اطرافيان قرار گرفتم و 99 درصد از ايشان به شدت منو حمايت کردند. چطوري؟ خيلي راحت. با زبونشون. اونقدر حمايت کردند که چندين بار با خودم گفتم مگه تو احمقي که داري براي اين مردم اينقدر خودتو به آب و آتيش مي زني و خودتو اذيت ميکني؟ ....

بگذريم.
نهايتاً من الان مهندس برق هم هستم البته نه از لحاظ مدرک بلکه از لحاظ معلومات. اينا را گفتم که يک وقت کسي فکر نکنه ما يک عده جوون هستيم که از روي هوس تصميم گرفتيم که پردازنده بسازيم و اينکه کار راحتيه. کار خيلي سختيه. اونم تو فضايي که هيچ کس به شما کمک نمي کنه. باور کنيد خيلي سخته که وقتي همه به فکر گل و گشت و خوشگذروني هستند شما بخواي اوقات فراغتت را به تحقيق و مطالعه بگذراني. البته خيلي از اوقات فهميدن سوالات ذهني شما که مدتها دنبال جواب آنها بوديد و آنرا پيدا مي کنيد بسيار لذت بخش است.

فعلاً خداحافظ

----------


## pswin.pooya

> نهايتاً من الان مهندس برق هم هستم البته نه از لحاظ مدرک بلکه از لحاظ  معلومات. اينا را گفتم که يک وقت کسي فکر نکنه ما يک عده جوون هستيم که از  روي هوس تصميم گرفتيم که پردازنده بسازيم و اينکه کار راحتيه. کار خيلي  سختيه. اونم تو فضايي که هيچ کس به شما کمک نمي کنه. باور کنيد خيلي سخته  که وقتي همه به فکر گل و گشت و خوشگذروني هستند شما بخواي اوقات فراغتت را  به تحقيق و مطالعه بگذراني. البته خيلي از اوقات فهميدن سوالات ذهني شما که  مدتها دنبال جواب آنها بوديد و آنرا پيدا مي کنيد بسيار لذت بخش است.


یه روزی یک فرزانه چینی بود که شاگردی هشت ساله داشت. این شاگرد به تمام علوم زمان خودش مسلط بود و وقتی هشت سالش تمام شد پیش استاد رفت و گفت دیگر چیزی نماده که من یاد بگیرم. استاد لبخندی زد و گفت همراه من بیا. هر دو راهی شهر شدن و وقتی که به اولین کوچه رسیدن دو نفر رو دیدن که بازی go بازی می کردن. پیر فرزانه از شاگرد پرسید آیا این بازی رو بلدی؟ شاگرد گفت من هم بلدم و هم تمام ترفندها را می دانم. بنابراین شاگرد با یکی از این دو مرد روستایی شروع به بازی کرد و پست سر هم شاگرد از این مرد روستایی که سواد نداشت باخت. پیر فرزانه رو به شاگرد کرد و با لبخند دیگر گفت تو تنها یادگرفته ای ولی تجربه نکردی.

هرچند که من هیچ خروجی از شما ندیدم و شاید زود قضاوت کرده باشم. اما از روی گفته های شما نتیجه گیری کردم. کلا من برام سواله که چطور ادعا می کنی که یک ساله مهندس الکترونیک شدی و یا حتی 4 ساله مهندس کامپیوتر. اگر فقط همون مهندس واقعی کامپیوتر بودی باید تا الان می تونستی خیلی چیزها رو بسازی. مثلا همون کامپایلر، سیستم عامل و ... و اونها برات هدف نبودن. واقعیت اینه که شما فقط درسها رو خوندی. هنوز خیلی مونده تا ... من قضاوتم از روی این بوده که هنوز متوجه حجم کار و ... نشدی.

----------


## H_afkhami60

... و اما ادامه ماجرا.
واحد سازنده مدارات آنالوگ op amp ها یا تقویت کننده های عملیاتی هستند، همانطور که واحد سازنده مدارات دیجیتال گیت های منطقی هستند. آی سی ها شامل سه گروه هستند: آنالوگ، دیجیتال و ترکیبی. داخل پرانتز عرض کنم که منظور ما از آی سی ها مدارهای مجتمع هستند که نمونه های خیلی مجتمع آنها که هماکنون تولید می شوند و شامل میلیون ها قطعه از جمله ترانزیستورهای مختلف، مقاومت، خازن، سلف هستند، VLSI ها هستند. پردازنده ها جزء گروه آی سی های دیجیتال هستند و البته پیچیده ترین آنها. البته نرم افزارهای طراحی این پیچیدگی را برای طراح آسان می کنند. ایجاد تکنولوژی ساخت آی سی یعنی ایجاد تکنولوژی ساخت همه انواع آی سی اعم از دیجیتال، آنالوگ و ترکیبی. مهمترین مسئله در ایجاد تکنولوژی ساخت آی سی این است که شما فکر نکنید همینکه بدانید برای ساخت آی سی چه مراحلی را باید طی کنید، کافی است. مثلاً شما می دانید که باید برای ساخت لایه +P  یا -P ، روی سلسیوم یک لایه فتورزیست قرار داد و بعد با قرار دادن ماسک مورد نظر که نقشه آن لایه است، تحت اشعه ماوراء بنفش قرار گیرد و ... آیا همین کافیست؟ جواب منفی است. بدلیل اینکه شما باید این مراحل را بصورت ماشینی انجام دهید. زیرا ابعاد کار نانو است و شما قادر نخواهید بود این مراحل را با وسایل مکانیکی و بصورت دستی انجام دهید.البته می توان بعنوان آزمایش، مثلاً یک نمونه ترانزیستور با استفاده از نانوسکوپ ساخت، اما برای صنعتی نمودن فرآیند، این روش جوابگو نیست و امکان ندارد. بنابراین یکی از مهمترین قسمتهای مسئله، طراحی و ساخت ماشین آلاتی است که این فرآیندها را طبق نقشه های مدار بصورت خودکار انجام دهند.

شاید بعضی دوستان ناآگاه هنوز هم در مورد اهمیت و بزرگی ساخت آی سی ها تردید داشته باشند. برای آگاهی این گروه از دوستان چند جمله عرض می کنم که:
شما نگاه کنید کشورهای پیشرفته جهان به چه دلیل پیشرفته نامیده می شوند. خیلی واضح است که شاید حدود 95 درصد پیشرفت جهان، بصورت مستقیم و غیر مستقیم به پیشرفت در علم برق، مدارهای الکترونیک و کامپیوتر مربوط است و دلیل پیشرفت اینها نیز 95 درصد مدیون تولد تراشه ها یا همان آی سی ها هستند. امروز شما هیچ برد الکترونیکی حتی ساده را هم نمی توانید پیدا کنید که لااقل یکی دو تا تراشه در آن بکار نرفته باشد. بنابراین با توجه به اینکه تراشه ها مغز متفکر و رئیس تمام بردهای الکترونیکی و به عبارتی مغز متفکر دنیا هستند و دارند دنیا را اداره می کنند، طبیعی است که هر کشور دارای این فن آوری خود را کشوری پیشرفته بداند و کشورهای فاقد این فن آوری را کشورهای جهان سوم و عقب افتاده قلم داد کند. در مورد مسائل امنیتی و نظامی نمی خوام صحبت کنم که چطور یک تراشه 4 میلیمتری می تواند کشوری را نابود کند. علاوه بر جنبه علمی و امنیتی بسیار بالای ای قضیه، جنبه اقتصادی و تجاری آن، بسیار حائز اهمیت است. مهندسان الکترونیک ما هماکنون حتی در مقطع کارشناسی توانایی طراحی بسیاری از تراشه ها را دارند و به گفته دکتر عطاردی، استاد دانشگاه صنعتی شریف، ایران جزء 10 کشور اول جهان در طراحی تراشه است. اما با توجه به اینکه ساخت تراشه بیرون از کشور انجام می شود و بعد از طراحی باید از شرکت های خارجی برای ساخت استفاده کرد، که هزینه بالایی دارد و از عهده دانشجو ها و مهندسان ما برنمی آید، همچنین به واسطه عدم همکاری برخی از این شرکت های خارجی به دلیل تحریم، ما هماکنون از این استعداد بالقوه هیچ استفاده ای نمی کنیم. بنابراین وقتی این تکنولوژی در داخل کشور پیاده شود، علاوه بر اینکه از خروج ارز جلوگیری می کند باعث خودکفایی ما خواهد شد، باعث ایجاد انگیزه در دانشجویان الکترونیک و کامپیوتر خواهد شد، چون می بینند می تونند ایدهاشون را عملیاتی کنند و قطعاً باعث تحولات بزرگی از جمله خودباوری، ایجاد اشتغال، تولید ثروت، افزایش غرور ملی و اعتماد بنفس بیشتر خواهد شد. 


در ابتدای کار (سال 93) هدف ما ساخت پردازنده بود ولی الآن هدف ساخت آی سی است که پردازنده هم یک نوع آن است. دانش ما آنقدر در این زمینه پائین بود که فکر می کردیم که فرآیند طراحی و ساخت پردازنده شبیه فرآیند طراحی و ساخت مدارهای معمولی است. اما حالا می دانیم که:
1- نرم افزارهای مورد نیاز برای طراحی آی سی و مدارهای معمولی متفاوت هستند و این بدلیل نیازهای متفاوت آنها است. به عنوان مثال بسیاری از مسائلی که در طراحی مدارهای معمولی اهمیتی ندارند مانند قطر سیم ها، طول سیم ها، فاصله قطعات از یکدیگر، توزیع گرما در سطح مدار و ... در طراحی آی سی با اهمیت هستند و باید مورد توجه قرار گیرند. البته این مسائل بصورت خودکار توسط نرم افزار بررسی می شوند و درصورت عدم هماهنگی با قوانین طراحی کارخانه به طراح گزارش می شوند.
2- در طی فرآیند طراحی و ساخت مدارهای معمولی بعد از اینکه طراحی شماتیک و Layout مدار تمام شد و برد مدار چاپی (PCB) آمده شد، بسته به طراحی که از قطعات پایه دار استفاده شده باشد یا قطعات SMD ، فرآیند مونتاژ و لحیم کاری می تواند دستی یا ماشینی باشد، اما فرآیند ساخت آی سی ها بسیار متفاوت است و قطعات، سیم ها و عایق های بین آنها طی چندین مرحله بر روی برد آی سی (Die) ساخته می شوند.
3- در طراحی و ساخت مدارهای معمولی بسیاری از آزمایش ها به منظور اطمینان از صحت عملکرد مدار می تواند بعد از ساخت نمونه اولیه انجام گیرد، بدلیل اینکه به قسمت های داخلی مدار علاوه بر خروجی ها و ورودی ها دسترسی داریم. اما در مورد آی سی، شما فقط بعد از ساخت به ورودی ها و خروجی ها دسترسی دارید.
4- Layout مدارهای معمولی نقشه سیم کشی مدار است اما Layout آی سی علاوه بر نقشه سیم کشی، حاوی ساختمان داخلی قطعات مدار هم هست. 

در مورد پیچیدگی فرآیند ساخت آی سی در یادداشت بعدی عرائضی خواهم داشت. فعلاً خدانگهدار

----------


## H_afkhami60

> هرچند که من هیچ خروجی از شما ندیدم و شاید زود قضاوت کرده باشم. اما از  روی گفته های شما نتیجه گیری کردم. کلا من برام سواله که چطور ادعا می کنی  که یک ساله مهندس الکترونیک شدی و یا حتی 4 ساله مهندس کامپیوتر. اگر فقط  همون مهندس واقعی کامپیوتر بودی باید تا الان می تونستی خیلی چیزها رو  بسازی. مثلا همون کامپایلر، سیستم عامل و ... و اونها برات هدف نبودن.  واقعیت اینه که شما فقط درسها رو خوندی. هنوز خیلی مونده تا ... من قضاوتم  از روی این بوده که هنوز متوجه حجم کار و ... نشدی.


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

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

1- می تونی سیلسیوم 99 درصد بدست بیاری؟
2- میتونی سطح ویفر را چنان صیقل بدی که بزرگترین چاله اون 10 نانومتر عمق داشته باشه؟
3- میتونی یک مربع 20 نانومتر در 20 نانومتر روی سطح ماسک بکشی؟
4- میتونی بدون کریستال یک کلاک درست کنی؟
4- میتونی با ترانزیستور و مقاومت یک فلیپ فلاپ درست کنی؟
5- میتونی یک نوسانساز کنترل شونده با ولتاژ درست کنی؟
.
.
.


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

ما از شما که مدیر بخش هستی انتظار یادداشت فنی داریم نه مسائل حاشیه ای.

----------


## pswin.pooya

> ساختن کامپایلر و سیستم عامل در کشوری که ویندوز و نرم افزارهای ساخت  برنامه نویسی را با 500 تومن برات رایت می کنند یک کار عاقلانست؟


ساختن پردازنده در کشوری که می شه به مراتب بهتر از اونش رو با کمتر 20 هزار تومن یا اصلا بزار پردازنده PC به قیمت 400 تومن تهیه کرد چی؟

بحث ساختن که نیست می گم اگر مهندس نرم افزار بودی باید می تونستی. اگر نمی تونی یعنی حتی به مهندسی نرم افزار هم تسلط نداری.




> 1- می تونی سیلسیوم 99 درصد بدست بیاری؟
> 2- میتونی سطح ویفر را چنان صیقل بدی که بزرگترین چاله اون 10 نانومتر عمق داشته باشه؟
> 3- میتونی یک مربع 20 نانومتر در 20 نانومتر روی سطح ماسک بکشی؟


بدون تعارف نه. دلیلی هم نداره که بخوام اینکار رو بکنم. و حتی بخوام هم، توی حیطه کاری من نیست. شما می تونید؟





> 4- میتونی بدون کریستال یک کلاک درست کنی؟
> 4- میتونی با ترانزیستور و مقاومت یک فلیپ فلاپ درست کنی؟
> 5- میتونی یک نوسانساز کنترل شونده با ولتاژ درست کنی؟


4. 555 رو برای اینکار می شه استفاده کرد. البته کلی روش دیگه هم هست 

4-2. چرا نمی تونم؟! فکر کنم هر کسی مدار منطقی رو پاس کرده باشه بتونه. یا حداقل مدار دیجیتال رو البته تا اونجا که یادمه خازن هم لازم داره. بیخیال فلیپ فلاپ بیا گیت هم برات بسازم ;)

5. اگر اشتباه نکنم با LTC6990 می شد اینکار رو کرد. 




> ما از شما که مدیر بخش هستی انتظار یاداشت فنی داریم نه مسائل حاشیه ای.


دنبال بحث حاشیه ای نیستم. فقط دارم راهنمایی می کنم. کلا می خوام بگم مطمئن باش با نه تنها یک سال مطالعه نمیشه با 10 سال هم نمیشه وگرنه الان همه اینکار رو کرده بودن یا همه توی دنیا همه پردازنده داشتن. یکم واقع بینانه بودن خوبه.

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

مشکلی جدی که من دارم بر می گرده به چند تا موضوع:
1. ادعا: خیلی ها ادعا می کنن اما هیچ خروجی ندارن و بدتر از اون اینه که با این ادعا افراد دیگه ای که می تونن خروجی داشته باشن رو تحت تاثیر می زارن که دوستمون توی پست قبلی اشاره کرد.
2. ادعا 2: طرف (شما رو نمی گم) مدار منطقی خونده پست آموزش طراحی پردازنده می زاره. یکی نیست بهش بگی زمانی که توی نوشتن دستور printf گیر کردی، فکر ساخت پردازنده رو از کجا آوردی؟ (حالا قبلش فکر می کرد چند تا سیستم عامل هم بیرون داده )
3. آموزش و اطلاعات نادرست: بارها دیدم که دوستان چیزی بلد نیستن و یه کار اولیه کردن و فورا یه آموزش می زارن. بگذریم از اینکه کلی ایراد داره. یه بابایی یه شب اومده پیش من، من حدود 2 ساعت اینا براش ساختارهای مربوط به لینکر و ... رو توضیح دادم. فرداش دیدم یه ویدو 1080 گذاشته نت و نوشته آموزش کرک نرم افزار؟!! جالبتر اینه که همه چیز رو هم اشتباه توضیح می داد. بابا اینکار باعث گمراهی بیشتر جماعت می شه تا ...
4. ...

----------


## H_afkhami60

> ساختن پردازنده در کشوری که می شه به مراتب بهتر از اونش رو با کمتر 20  هزار تومن یا اصلا بزار پردازنده PC به قیمت 400 تومن تهیه کرد چی؟


خب قطعاً 400 هزارتومن از 500 تومن خیلی بیشتره. خوبه شما خودت جواب خودت را دادی.




> بدون تعارف نه. دلیلی هم نداره که بخوام اینکار رو بکنم. و حتی بخوام هم، توی حیطه کاری من نیست. شما می تونید؟


والا الکترونیک خوندن هم تو حیطه کاری من نبود ولی شد. حیطه کاری را خودمن تعیین می کنیم. این حیطه ها را می توان به متخصصان آن واگذار کرد و یا می توان در هر حیطه ای به قدر نیاز متخصص شد. بنده ترسی ندارم که برم فیزیک و نانو هم بخونم و دو سال یا سه سال هم در این زمینه ها مطالعه کنم و از اینکه دیگران بنده را مسخره کنند و باورم نکنند هم نمی ترسم. اما اگر دوستان شما در رشته های فیزیک و نانو فعالیت می کنند و رشتشون اینهاست، خب برید اونها را بیارید تا توی این بحث های ما شرکت کنند و برای این مسائل راهکار ارائه بدهند و یا در مورد آن تحقیق کنند. البته تفاوت تلاش و آزمایش در رشته فیزیک و نانو با کامپیوتر خیلی زیاده. اونها مثل بچه های کامپیوتر نمی تونند همه کارهاشون را با یک کامپیوتر و نرم افزارهای مربوطه راه بیاندازند.
من نگفتم که می تونم. بلکه منظورم این بود که بنده به حجم کار و میزان پیچیدگی اون واقفم.




> . 555 رو برای اینکار می شه استفاده کرد. البته کلی روش دیگه هم هست 
> 
> 4-2. چرا نمی تونم؟! فکر کنم هر کسی مدار منطقی رو پاس کرده باشه بتونه. یا  حداقل مدار دیجیتال رو البته تا اونجا که یادمه خازن هم لازم داره. بیخیال  فلیپ فلاپ بیا گیت هم برات بسازم ;)
> 
> 5. اگر اشتباه نکنم با LTC6990 می شد اینکار رو کرد.


منظورم اینه که بدون استفاده از آی سی های دیگه مثل 555 بسازی. هر چند بدون آی سی های دیگر هم افتخاری نیست.




> ببین مواردی که توی پست قبلی گذاشتی خیلی ساده هستن. حتی یکنفر فصل اول یک  کتاب معماری مثل کتاب پروفسور پترسون (کتابی که خیلی پیشنهادش می کنم) رو  بخونه می تونه یاد بگیره. و یا یه جزوه مدار دیجیتال. حتی بیشتر از اون رو  هم می تونه یاد بگیره.


نمی دونم کدوم قسمتا را می فرمائید. اما  به هر حال مطرح کردن هر بحثی بطور کامل ممکن است جدید نباشد و قسمت هایی از  آن تکراری باشد، این یک امر طبیعی است. یا ممکن است برای مطرح کردن بحثی  دیگر، نیاز به مقداری مقدمه باشد. یا ممکن است بحثی برای شما پیش پاافتاده  باشد ولی برای شخص دیگری جالب باشد. یا ممکن است محض یادآوری مطرح شده  باشد.




> مشکلی جدی که من دارم بر می گرده به چند تا موضوع:
> 1. ادعا: خیلی ها ادعا می کنن اما هیچ خروجی ندارن و بدتر از اون اینه که  با این ادعا افراد دیگه ای که می تونن خروجی داشته باشن رو تحت تاثیر می  زارن که دوستمون توی پست قبلی اشاره کرد.
> 2. ادعا 2: طرف (شما رو نمی گم) مدار منطقی خونده پست آموزش طراحی پردازنده  می زاره. یکی نیست بهش بگی زمانی که توی نوشتن دستور printf گیر کردی، فکر  ساخت پردازنده رو از کجا آوردی؟ (حالا قبلش فکر می کرد چند تا سیستم عامل  هم بیرون داده )
> 3. آموزش و اطلاعات نادرست: بارها دیدم که دوستان چیزی بلد نیستن و یه کار  اولیه کردن و فورا یه آموزش می زارن. بگذریم از اینکه کلی ایراد داره. یه  بابایی یه شب اومده پیش من، من حدود 2 ساعت اینا براش ساختارهای مربوط به  لینکر و ... رو توضیح دادم. فرداش دیدم یه ویدو 1080 گذاشته نت و نوشته  آموزش کرک نرم افزار؟!! جالبتر اینه که همه چیز رو هم اشتباه توضیح می داد.  بابا اینکار باعث گمراهی بیشتر جماعت می شه تا ...


دوست عزیز شما دچار سوء تفاهم شدید. بنده نقش یک آموزش دهنده را بازی نمی کنم. من فقط دارم با دیگران تبادل اطلاعات می کنم و دیگران را در جریان تلاش های خودم قرار می دهم تا آنها هم انگیزه ای برای تلاش، داشته باشند و احساس تنهابودن در این راه را نداشته باشند. چون تنهایی راهی را پیمودن بسیار سخت تر از دسته جمعی پیمودن است. هرچند که دوستان نه تنها همراهی نمی کنند که گه گاه مثل شما نوازش هم می کنند.

----------


## H_afkhami60

> ساختن کامپایلر و سیستم عامل در کشوری که ویندوز و نرم افزارهای ساخت  برنامه نویسی را با 500 تومن برات رایت می کنند یک کار عاقلانست؟


مهندسان و دوستان عزیز
 بنده از تمام کسانی که در زمینه طراحی و ساخت کامپلر و سیستم عامل در حال تلاش هستند و دارند زحمت می کشند به خاطر گفتن جمله بالا معذرت خواهی می کنم و اعلام می کنم که حرف اشتباهی زدم. بنده این جمله رو از روی عصبانیت زدم. علت اون هم خب مشخصه دیگه. وقتی شما یکسال زحمت بکشید و حداقل روزی 4 ساعت مطالعه و تحقیق کرده باشی برای کاری و بعد دیگران تلاش و زحمت شما را زیر سوال ببرند آیا حق نداری دلخور و ناراحت بشی؟

به هرحال بنده معتقدم که طراحی و ساخت کامپایلر و سیستم عامل نشان دهنده سطح علمی بالای مهندس مورد نظر بوده و حتی فکر می کنم، به کسی هم که جرأت فکر کردن به این مقوله را دارد نیز باید آفرین گفت. ساخت سیستم عامل شاید از نظر تجاری و در زمان فعلی در کشور ما توجیه پذیر نباشد، اما از نظر امنیتی و علمی و ایجاد اعتماد به نفس و غرور ملی و ... بدون شک توجیه پذیر بوده و کار بسیار باارزشی است.

----------


## ehsaun_kkt

> سلام
> 
> از حداقل ها شروع کنیم. می تونیم با پروتئوس شروع کنیم. اینتل همین پروتئوس را هم نداشت.


این جمله تون خیلی به من چسبید!

----------

