صفحه 2 از 3 اولاول 123 آخرآخر
نمایش نتایج 41 تا 80 از 104

نام تاپیک: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

  1. #41

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

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

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

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



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

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

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

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

  2. #42

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

  3. #43

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

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


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


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

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

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

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

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

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

  4. #44

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

    من یه نمونه 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 : دوشنبه 04 اسفند 1393 در 20:30 عصر

  5. #45

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

    یکمی 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 بیتی باشند.

  6. #46

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

    سلام

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

  7. #47

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

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

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

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

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

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

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

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

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

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



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

    • شیفت
    • not
    • add و sub حسابی

  8. #48

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

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

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

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

  9. #49

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

    سلام

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


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

  10. #50

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

    سلام

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


    • شیفت
    • not
    • add و sub حسابی
    با استفاده از دستورالعملهای دیگه میشه به اینها رسید. مثلاً در دستور ADD که از بیت نقلی استفاده می کنه، اگه قبلش بیت نقلی را صفرش کنیم، ADD حسابی بدست میاد. البته همین الان متوجه شدم که برای صفر کردن پرچم ها به یک دستور دیگه نیاز هست. (F=A^ F)
    آخرین ویرایش به وسیله H_afkhami60 : پنج شنبه 07 اسفند 1393 در 15:05 عصر

  11. #51

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

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

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


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

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

    موفق باشی

  12. #52

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

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

    نقل قول نوشته شده توسط pswin.pooya مشاهده تاپیک
    من لازم هم نباشه کار میکنم.
    خوب جوهر انسان کاره (:

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

  13. #53

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

    سلام

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

  14. #54

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

    سلام

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

  15. #55

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

  16. #56

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

    سلام

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

  17. #57

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

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

  18. #58

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

    پردازنده 80286 این امکانات را نداشت. در عوض این پردازنده دارای واحد مدیریت حافظه (MMU) بود.
    همان کتاب، صفحه 707
    آخرین ویرایش به وسیله H_afkhami60 : دوشنبه 18 اسفند 1393 در 21:56 عصر

  19. #59

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

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

  20. #60

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

    بنده مدار ۸۰۸۸ و ۸۰۸۶ رو بستم و نیاز به کلاک خارجی دارند. اما :
    یا ترجمه اشتباه کرده و یا اینکه کتاب اشتباه کرده شاید هم منظور چیز دیگه بوده، من 100 درصد بهتون اطمینان می دم که پردازنده های جدید این رو دارن و در پردازنده های قدیمی جدا بوده ، من حتی آی.سی ها مربوطه رو هم دارم
    http://upload.wikimedia.org/wikipedi...80188_arch.svg

  21. #61

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

    سلام

    بنده مدار ۸۰۸۸ و ۸۰۸۶ رو بستم
    احسنت به شما. خیلی عالیه.
    تستشم کردید؟ توی چه نرم افزاری طراحیشا انجام دادید؟ توی چه محیطی شبیه سازیش کردید؟ لیست دستوراتش چیه؟ توی چه فرکانسی کار می کنه؟ چه امکاناتی داره؟ در چه ابعادی ساخته شده؟ اسمبلرم براش طراحی کردید؟ لطفاً ی عکس ازش بزارید؟
    آخرین ویرایش به وسیله H_afkhami60 : سه شنبه 19 اسفند 1393 در 22:57 عصر

  22. #62

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

  23. #63

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

  24. #64

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

  25. #65

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

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

  26. #66

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

  27. #67

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

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

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

  28. #68

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

  29. #69

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

    http://opencores.org/project,amber

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

  30. #70

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

  31. #71

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

  32. #72

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

    سلام

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

  33. #73

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

  34. #74

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

    سلام

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

  35. #75

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

  36. #76

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

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

  37. #77

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

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

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

    مدار پردازنده، لیست دستوراتی که این پردازنده قادر به اجرای اونها هست و لیست ثباتها را می تونید دانلود کنید.
    این پردازنده، یک پردازنده 8 بیتی است، ثبات فلگ نداره و به جای اون 4 تا فلیپ فلاپ داره. این ساده ترین پردازنده ای است که میشد طراحی کرد.
    ضمناً دوستان توجه داشته باشید این پردازنده را با Core i7 مقایسه نکنید. تا اون نقطه راه بسیار طولانی در پیش است. امیدوارم روزی به اون نقطه برسیم.
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: zip CPU.zip‏ (86.2 کیلوبایت, 16 دیدار)
    آخرین ویرایش به وسیله H_afkhami60 : جمعه 29 اسفند 1393 در 23:59 عصر

  38. #78

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

  39. #79

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

    وقتی این تاپیک را شروع کردم (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. بهتره واحدها رو از هم جدا کنی که کار تمیز تر از آب در بیاد.

  40. #80

    نقل قول: مقاله در مورد ساخت پردازشگر و سیستم عامل در ایران

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

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

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

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

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

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

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

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

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

    بهتره واحدها رو از هم جدا کنی که کار تمیز تر از آب در بیاد.
    در عمل کار خیلی سختیه.
    آخرین ویرایش به وسیله H_afkhami60 : یک شنبه 02 فروردین 1394 در 10:18 صبح

صفحه 2 از 3 اولاول 123 آخرآخر

تاپیک های مشابه

  1. سوال: سوال کلی در مورد ساخت سیستم عامل
    نوشته شده توسط orache در بخش توسعه‌ی لینوکس و نرم افزارهای آزاد
    پاسخ: 9
    آخرین پست: دوشنبه 24 تیر 1392, 10:38 صبح
  2. سوال: ساخت برنامه برای سیستم عامل iOS با C#‎‎
    نوشته شده توسط mjzsoft25 در بخش C#‎‎
    پاسخ: 4
    آخرین پست: یک شنبه 12 شهریور 1391, 19:40 عصر
  3. راهنمایی در مورد انتخاب زبان و سیستم عامل
    نوشته شده توسط hashom در بخش C#‎‎
    پاسخ: 7
    آخرین پست: چهارشنبه 05 دی 1386, 11:23 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •