ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

صفحه 1 از 3 123 آخرین
نمایش نتایج: از 1 به 10 از 22
  1. #1
    2013/03/18
    babol
    1,396
    672

    سرعت پردازنده در اجرای دستورات

    دوستان یه سواله که خیلی ذهنمو مشغولش کرده ،

    سئال اینه که ، سرعت اجرای دستورات در avr چطوریه ، تو دیتا شیت خوندم ، مثلا اگه فرکانس 1مگ باشه ، دریک کلاک سیکل میتونه یک میلیون دستورالعمل رو انجام بده،
    منظور از یک کلاک سیکل چیه ؟
    آیا یک میلیون دستورالعمل یعنی یک میلیون مثلا دستور if رو میتونه تو یک کلاک انجام بده؟؟؟؟
    خود این یک سیکل کلاک چند میلی ثانی یا میکروثانیه طول میکشه انجام شه ؟؟




    با تشکر.
  2. #2
    2013/09/26
    19
    12

    پاسخ : سرعت پردازنده در اجرای دستورات

    بهترین واحد برای اندازه گیری کارایی یک پردازنده MIPS هست

    MIPS : Million instructions per second

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

    فرمولش هم با توجه به فرکانس و سیکل دستورات به این شکله:
    MIPS = فرکانس ساعت پردازنده / (میانگین سیکل مورد نیاز برای دستورات * 1.000.000 )

    پس الزاما فرکانس بیشتر به معنی سرعت بیشتر نیست
  3. #3
    2007/12/23
    زمین
    247
    88

    پاسخ : سرعت پردازنده در اجرای دستورات

    سلام
    دستورات منظور دستورات ماشینه نه دستورات گرامری
    مثلا انتقال - جمع - ضرب - پرش و ...
    یک سیکل هم بستگی به فرکانس میکرو داره که زمان یک پالس هست
    دستور if به عنوان مثال به چند دستور ماشین شکسته میشه مثلا چهار تا دستور
    با سرچ تو گوگل خیلی چیزا دستگیرت میشه
  4. #4
    2013/03/18
    babol
    1,396
    672

    پاسخ : سرعت پردازنده در اجرای دستورات

    نقل قول نوشته اصلی توسط alt_f4

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    بهترین واحد برای اندازه گیری کارایی یک پردازنده MIPS هست

    MIPS : Million instructions per second

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

    فرمولش هم با توجه به فرکانس و سیکل دستورات به این شکله:
    MIPS = فرکانس ساعت پردازنده / (میانگین سیکل مورد نیاز برای دستورات * 1.000.000 )

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

    منظوراز دستورالعمل چیه ؟؟؟ آیا مقادیر باینری دستورها رو میگین ، یا همین دستوراتی که ما تو ide ها استفاده میکنیم ؟؟


    مثلا من چطور بفهمم چند خط کد میتونم داخل یه do loop برای اجراشدن تو 30 میلی ثانیه بنویسم؟؟


    با تشکر.
  5. #5
    2013/09/03
    1,984
    648

    پاسخ : سرعت پردازنده در اجرای دستورات

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

    Sent from my E2333 using Tapatalk
    قانون سوم نیوتون میگه برای اینکه بخوای به چیزی برسی باید از یه چیزی دل بکنی...

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  6. #6
    2013/09/26
    19
    12

    پاسخ : سرعت پردازنده در اجرای دستورات

    نقل قول نوشته اصلی توسط hosseinam

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    بله درست میفرمایید.

    منظوراز دستورالعمل چیه ؟؟؟ آیا مقادیر باینری دستورها رو میگین ، یا همین دستوراتی که ما تو ide ها استفاده میکنیم ؟؟


    مثلا من چطور بفهمم چند خط کد میتونم داخل یه do loop برای اجراشدن تو 30 میلی ثانیه بنویسم؟؟


    با تشکر.
    منظور از دستور العمل، Instruction set ها هست که برای هر معماری متفاوته (ADD, ADC و SUB و ...)
    مثلا ADD در AVR در یک سیکل انجام میشه.
    تمامی مجموعه دستورالعملهای AVR در این PDF به صورت کامل توضیح داده شده:

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


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

    یه راه آسون تر اینه که شما از تایمر خود میکرو استفاده کنی یه حلقه 1000 تایی رو اجرا کنی ببینی چقدر زمان میبره بعد میتونی مقدار تقریبی یک بار اجرا شدن حلقه رو بدست بیاری. ( این مقدار تقریبیه ولی نزدیک به مقدار واقعیه)
  7. #7
    2013/03/18
    babol
    1,396
    672

    پاسخ : سرعت پردازنده در اجرای دستورات

    به نظر شما منظور از دستورات ، همونایی نیستن که تو دیتا شیت نوشته 131 دستورالعمل معماری risc ?

    به نظرم چون avr کلا دارای 131 دستورالعمل هست ، منظور از 16mpis یعنی 16 میلیون دستور از این 131 تا ، یا 16 میلیون دستوری که از داخل همین 131 تا بدست میآد ، درست نیست؟؟
  8. #8
    2013/09/26
    19
    12

    پاسخ : سرعت پردازنده در اجرای دستورات

    نقل قول نوشته اصلی توسط hosseinam

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    به نظر شما منظور از دستورات ، همونایی نیستن که تو دیتا شیت نوشته 131 دستورالعمل معماری risc ?

    به نظرم چون avr کلا دارای 131 دستورالعمل هست ، منظور از 16mpis یعنی 16 میلیون دستور از این 131 تا ، یا 16 میلیون دستوری که از داخل همین 131 تا بدست میآد ، درست نیست؟؟
    همه دستورات که در یک سیکل اجرا نمیشه
    همونطور که در فرمول دیده میشه میانگین گرفته میشه
  9. #9
    2013/03/18
    babol
    1,396
    672

    پاسخ : سرعت پردازنده در اجرای دستورات

    نقل قول نوشته اصلی توسط alt_f4

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    منظور از دستور العمل، Instruction set ها هست که برای هر معماری متفاوته (ADD, ADC و SUB و ...)


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


    ممنون.

    دلیل: ادغام دو پست برای جلوگیری از اسپم

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

    کد HTML:
    Do
          If Reeder1 = 0 Then
           Flagusedone = 0
           Gosub Senseflooronmove
          End If
    
          If Reeder2 = 0 Then
           Flagusedone = 0
           Gosub Senseflooronmove
          End If
    
          If Reeder3 = 0 Then
           Chektedadintruupt = 0
           Flagusedone = 0
           Disable Int7
           Gosub Stopp
          End If
    
    
          If Flagintruupt = 1 Then
           Flagintruupt = 0
           Goto Main
          End If
    
    Loop

    اون محاسبه ی سرعت به طور تقریبی رو هم یه توضیح بفرمایین.
    ممنون.
  10. #10
    2013/09/26
    19
    12

    پاسخ : سرعت پردازنده در اجرای دستورات

    نقل قول نوشته اصلی توسط hosseinam

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    میدونید که کلا الان یکم قاطی کردم.
    شما لطف کنید یکم واضح تر توضیح بدین این کاری که گفتین با تایمر خود میکرو یعنی چی ؟؟!!! باید دقیقا چیکار کنم الان؟!!!!


    ممنون.

    دلیل: ادغام دو پست برای جلوگیری از اسپم

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

    کد HTML:
    Do
          If Reeder1 = 0 Then
           Flagusedone = 0
           Gosub Senseflooronmove
          End If
    
          If Reeder2 = 0 Then
           Flagusedone = 0
           Gosub Senseflooronmove
          End If
    
          If Reeder3 = 0 Then
           Chektedadintruupt = 0
           Flagusedone = 0
           Disable Int7
           Gosub Stopp
          End If
    
    
          If Flagintruupt = 1 Then
           Flagintruupt = 0
           Goto Main
          End If
    
    Loop

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

    یه نمونه کد C برای Arduino مینوسم به این شکل

    کد:
    unsigned int t1 = micros();
    for (int i=0; i<1000; i++)
    {
      دستورالعمل مورد نظر   
    }
    unsigned int t2 = micros();
    unsigned int x = round((t2-t1)/1000);
    Serial.print(x);

    روال اینطوریه : قبل از اینکه حلقه رو اجرا کنید تایمر و فعال کنید
    بعد از اینکه حلقه تموم شد مقدار تایمرو بخونید
    این مقدار زمان اجرای 1000 بار هست
    تقسیم بر 1000 میکنید مقدار اجرای یکبارش مشخص میشه.
    ویرایش توسط alt_f4 : 2016/06/06 در ساعت 14:57
صفحه 1 از 3 123 آخرین
نمایش نتایج: از 1 به 10 از 22

موضوعات مشابه

  1. سرعت اجرای دستورات را در متلب؟
    توسط hakim khayam در انجمن Matlab
    پاسخ: 3
    آخرين نوشته: 2015/11/14, 16:06
  2. مجموع دستورات پردازنده arm
    توسط alialaei110 در انجمن پروسسورهای ARM
    پاسخ: 10
    آخرين نوشته: 2014/03/22, 05:13
  3. اجرای دستورات ذخیره شده در mmc توسط میکروی avr
    توسط soltanisoft در انجمن میکروکنترلرهای AVR
    پاسخ: 16
    آخرين نوشته: 2013/09/02, 13:49
  4. سرعت اجرای دستورات avr
    توسط masoodhashemy در انجمن میکروکنترلرهای AVR
    پاسخ: 14
    آخرين نوشته: 2012/08/03, 10:10
  5. در جستجوي يك پردازنده سرعت بالا
    توسط elias در انجمن سایر مطالب مرتبط با ميکرو ها و پروسسورها
    پاسخ: 10
    آخرين نوشته: 2007/06/18, 19:55

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

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