۰
subtitle
ارسال: #۱
  
مشکل در درک Dma
سلام به همگی !
من سیستم عامل دکتر حقیقت رو می خونم مبحث Dma رو کامل متوجه نمیشم !
سوالاتم رو همراه با متن دکتر حقیقت بیان می کنم:
" در لحظاتی که Dma برای انتقال داده به (یا از) حافظه به گذرگاه داده نیاز دارد .cpu نباید از گذرگاه استفاده کند (سوال:cpu کلا چه وقت هایی از گذرگاه استفاده می کند ،آیا هنگام پردازش هم استفاده میکند ؟) تا تداخل پیش نیاید بنابراین به ناچار cpu به اندازه یک سیکل گذرگاه ،بیکار می ماند (چرا یک سیکل ؟ اصلا یک سیکل یعنی چقدر ؟ cpu قبل از این یک سیکل یعنی می توانسته از گذرگاه استفاده کند ؟ )تا انتقال انجام شود ،گاهی گفته می شود که Dma سیکل های پردازنده را می دزدد(cycle stealing) ،توجه کنید که این یک وقفه نیست و نیاز به ذخیره در پشته ندارد بدیهی است که در کل ،کارایی سیستم افزایش خواهد یافت . "
مگه انتقال اطلاعات از طریق گذرگاه انجام نمیشه پس وقتی اطلاعات داره منتقل میشه خب cpu نمیتونه از گذرگاه استفاده کنه نه یک سیکل بلکه چند سیکل اما چرا بالا گفته فقط یک سیکل ؟
در پایان از دوستان می خوام اگه نکته جالبی یا سوال تستی از Dma می دونن اینجا بیارن تا انشالله در بحث Dma ابهام وسوالی نباشه !
من سیستم عامل دکتر حقیقت رو می خونم مبحث Dma رو کامل متوجه نمیشم !
سوالاتم رو همراه با متن دکتر حقیقت بیان می کنم:
" در لحظاتی که Dma برای انتقال داده به (یا از) حافظه به گذرگاه داده نیاز دارد .cpu نباید از گذرگاه استفاده کند (سوال:cpu کلا چه وقت هایی از گذرگاه استفاده می کند ،آیا هنگام پردازش هم استفاده میکند ؟) تا تداخل پیش نیاید بنابراین به ناچار cpu به اندازه یک سیکل گذرگاه ،بیکار می ماند (چرا یک سیکل ؟ اصلا یک سیکل یعنی چقدر ؟ cpu قبل از این یک سیکل یعنی می توانسته از گذرگاه استفاده کند ؟ )تا انتقال انجام شود ،گاهی گفته می شود که Dma سیکل های پردازنده را می دزدد(cycle stealing) ،توجه کنید که این یک وقفه نیست و نیاز به ذخیره در پشته ندارد بدیهی است که در کل ،کارایی سیستم افزایش خواهد یافت . "
مگه انتقال اطلاعات از طریق گذرگاه انجام نمیشه پس وقتی اطلاعات داره منتقل میشه خب cpu نمیتونه از گذرگاه استفاده کنه نه یک سیکل بلکه چند سیکل اما چرا بالا گفته فقط یک سیکل ؟
در پایان از دوستان می خوام اگه نکته جالبی یا سوال تستی از Dma می دونن اینجا بیارن تا انشالله در بحث Dma ابهام وسوالی نباشه !
۰
ارسال: #۲
  
مشکل در درک Dma
سلام به مهندس بزرگوار.
اجازه بدید یه نکته ریز رو بگم . شاید کمک کرد. DMA یا Direct Memory Access همینن طور که از اسمش مشخصه دسترسی مستقیم به حافظه هستش. جالب اینجاس که اولویت دسترسیش به حافظه از خود CPU هم بیشتره!!!
به این دلیل DMA از وقفه بهتره که، توی دستگاه های سریع، دستگاهها زودی کارشونو انجام میدن و میان سراغ CPU. هی کارشونو انجام میدن هی میان سراغ CPU .
انقد میان که CPU کلافه میشه و میگه بابا من دیگه کاریت ندارم. برو هر کار که دوس داری بکن.(البته لحنش یکم تند تره ولی جهت رعایت شأن سایت اینجوری گفتم) اگه ببینمت نوبت خودمم مال تو.
خلاصه اون دستگاهه میگه خیلیم خوبه (کور از خدا چی میخواد؟؟!). شرو میکنه به ارسال و دیافت و دیگه وفقه نمیددددددددددده تااااااااااااا وقتی که کارش تموم شه. دیگه آخر کار به CPU میگه حاجی کار ما تمومه...
پس به مراتب از وقفه بهتر کار میکنه.
من فقط اینارو میدونستم. ولی اگه کسی نکته جدیدی بلده بگه که ما هم بی نصیب نمونیم.
ممنون از لطف همگی.
اجازه بدید یه نکته ریز رو بگم . شاید کمک کرد. DMA یا Direct Memory Access همینن طور که از اسمش مشخصه دسترسی مستقیم به حافظه هستش. جالب اینجاس که اولویت دسترسیش به حافظه از خود CPU هم بیشتره!!!
به این دلیل DMA از وقفه بهتره که، توی دستگاه های سریع، دستگاهها زودی کارشونو انجام میدن و میان سراغ CPU. هی کارشونو انجام میدن هی میان سراغ CPU .
انقد میان که CPU کلافه میشه و میگه بابا من دیگه کاریت ندارم. برو هر کار که دوس داری بکن.(البته لحنش یکم تند تره ولی جهت رعایت شأن سایت اینجوری گفتم) اگه ببینمت نوبت خودمم مال تو.
خلاصه اون دستگاهه میگه خیلیم خوبه (کور از خدا چی میخواد؟؟!). شرو میکنه به ارسال و دیافت و دیگه وفقه نمیددددددددددده تااااااااااااا وقتی که کارش تموم شه. دیگه آخر کار به CPU میگه حاجی کار ما تمومه...
پس به مراتب از وقفه بهتر کار میکنه.
من فقط اینارو میدونستم. ولی اگه کسی نکته جدیدی بلده بگه که ما هم بی نصیب نمونیم.
ممنون از لطف همگی.
ارسال: #۳
  
RE: مشکل در درک Dma
(۰۶ آذر ۱۳۹۰ ۰۹:۲۴ ب.ظ)hkarimi نوشته شده توسط: سلام به مهندس بزرگوار.
اجازه بدید یه نکته ریز رو بگم . شاید کمک کرد. DMA یا Direct Memory Access همینن طور که از اسمش مشخصه دسترسی مستقیم به حافظه هستش. جالب اینجاس که اولویت دسترسیش به حافظه از خود CPU هم بیشتره!!!
به این دلیل DMA از وقفه بهتره که، توی دستگاه های سریع، دستگاهها زودی کارشونو انجام میدن و میان سراغ CPU. هی کارشونو انجام میدن هی میان سراغ CPU .
انقد میان که CPU کلافه میشه و میگه بابا من دیگه کاریت ندارم. برو هر کار که دوس داری بکن.(البته لحنش یکم تند تره ولی جهت رعایت شأن سایت اینجوری گفتم) اگه ببینمت نوبت خودمم مال تو.
خلاصه اون دستگاهه میگه خیلیم خوبه (کور از خدا چی میخواد؟؟!). شرو میکنه به ارسال و دیافت و دیگه وفقه نمیددددددددددده تااااااااااااا وقتی که کارش تموم شه. دیگه آخر کار به CPU میگه حاجی کار ما تمومه...
پس به مراتب از وقفه بهتر کار میکنه.
من فقط اینارو میدونستم. ولی اگه کسی نکته جدیدی بلده بگه که ما هم بی نصیب نمونیم.
ممنون از لطف همگی.
مرسی دوست عزیز من تمام گیرم سر این گذرگاهه !
برای اینکه موضوع رو کامل درک کنم باید ابهاماتم که در ابتدا ذکر کردم برطرف شه !
۰
ارسال: #۴
  
مشکل در درک Dma
سلام.
سیستم عامل و معماریی خیلی به وهم ابسته هستند که به نظرم واسه درک دقیقتر DMA میتونید به کتاب معماری مانو مراجعه کنید.فصل سازمان ورودی خروجی کامل این مبحث رو توضیح داده که من خلاصش رو نوشتم.
سوال اولتون این هستش که cpu چه مواقعی از گذرگا استفاده میکنه:
طبق کتاب پوران پژوهش:
مهمترین تداخل cpu با کنترل کنندهی DMA تداخل در کنترل گذرگاه داده و آدرس متصل به حافظه می باشد که در هر لحظه توسط یکی از آن دو قابل استفاده می باشد.CPU در خلال کار کنترل کننده می تواند دستوراتی که گذرگاه نیاز ندارند را اجرا کند.
حالا چه نتیجه ای می تونیم بگیریم از جملات بالا که بر طبق کتاب پوران پژوهش هست؟
اینکه CPU وقتی گذرگاه رو در اختیار میگیره که در اختیار DMAنباشه.
سوال دومی که پرسیدید اینه که چرا یک سیکل؟
طبق کتاب پوران پژوهش و مانو:
وقتی که کنترل کننده DMA گذرگاه را دراختیار می گیرد به دو طریق می تواند انتقال داده بین حافظه و I/Oانجام دهد
(که من فقط یکی رو که الان احتیاج هست توضیح میدم)
۱- انتقال توده ای ۲- سیکل Stealing
خوب مورد ۲ رو که الان بهش نیاز داریم توضیح میدم:
در این روش در هر مرتبه یک کلمه انتقال داده میشود و دوباره گذرگاه در اختیار CPU قرار میگیرد و CPU اجرای هر عملیات خود را به اندازهی یک سیکل حافظه به تاخیر می اندازد تا انتقال داده های I/O کامل گردد.
حالا بحث اینه که این یک سیکل چقدر است؟
طبق کتاب مانو:
کنترل کنندهی DMA برای ارتباط با CPUبه مدارهای واسط نیاز دارد.
کنترل کننده DMA دارای یک ثبات آدرس، یک شمارنده کلمات، و یک سری خطوط آدرس است.
شمارندهی کلمات برای شمارش تعداد کلمات انتقال یافته است.
برای هر کلمه ای که انتقال می باید DMAیکی به ثبات آدرس خود اضافه می کند و یکی از شمارندهی کلمه کم می نماید.
اگر دستگاه جانبی کند باشد DMAارتباط خود را با باسها قطع می کند تا اینکه پروسسور بتواند برنامهی خود را اجرا نماید و هر موقعی که دستگاه جانبی از DMA تقاضای ارتباط کرد DMA دوباره از پروسسور تقاشای باس نماید.
پس نتیجه گرفتیم که یه سیکل یعنی چقدر؟یعنی وقتی یه کلمه انتقال پیدا کنه.
به نظرم جواب سوالاتون اینا بود حالا اگه دوستان نظر دیگه ای دارند بسم الله.
سیستم عامل و معماریی خیلی به وهم ابسته هستند که به نظرم واسه درک دقیقتر DMA میتونید به کتاب معماری مانو مراجعه کنید.فصل سازمان ورودی خروجی کامل این مبحث رو توضیح داده که من خلاصش رو نوشتم.
سوال اولتون این هستش که cpu چه مواقعی از گذرگا استفاده میکنه:
طبق کتاب پوران پژوهش:
مهمترین تداخل cpu با کنترل کنندهی DMA تداخل در کنترل گذرگاه داده و آدرس متصل به حافظه می باشد که در هر لحظه توسط یکی از آن دو قابل استفاده می باشد.CPU در خلال کار کنترل کننده می تواند دستوراتی که گذرگاه نیاز ندارند را اجرا کند.
حالا چه نتیجه ای می تونیم بگیریم از جملات بالا که بر طبق کتاب پوران پژوهش هست؟
اینکه CPU وقتی گذرگاه رو در اختیار میگیره که در اختیار DMAنباشه.
سوال دومی که پرسیدید اینه که چرا یک سیکل؟
طبق کتاب پوران پژوهش و مانو:
وقتی که کنترل کننده DMA گذرگاه را دراختیار می گیرد به دو طریق می تواند انتقال داده بین حافظه و I/Oانجام دهد
(که من فقط یکی رو که الان احتیاج هست توضیح میدم)
۱- انتقال توده ای ۲- سیکل Stealing
خوب مورد ۲ رو که الان بهش نیاز داریم توضیح میدم:
در این روش در هر مرتبه یک کلمه انتقال داده میشود و دوباره گذرگاه در اختیار CPU قرار میگیرد و CPU اجرای هر عملیات خود را به اندازهی یک سیکل حافظه به تاخیر می اندازد تا انتقال داده های I/O کامل گردد.
حالا بحث اینه که این یک سیکل چقدر است؟
طبق کتاب مانو:
کنترل کنندهی DMA برای ارتباط با CPUبه مدارهای واسط نیاز دارد.
کنترل کننده DMA دارای یک ثبات آدرس، یک شمارنده کلمات، و یک سری خطوط آدرس است.
شمارندهی کلمات برای شمارش تعداد کلمات انتقال یافته است.
برای هر کلمه ای که انتقال می باید DMAیکی به ثبات آدرس خود اضافه می کند و یکی از شمارندهی کلمه کم می نماید.
اگر دستگاه جانبی کند باشد DMAارتباط خود را با باسها قطع می کند تا اینکه پروسسور بتواند برنامهی خود را اجرا نماید و هر موقعی که دستگاه جانبی از DMA تقاضای ارتباط کرد DMA دوباره از پروسسور تقاشای باس نماید.
پس نتیجه گرفتیم که یه سیکل یعنی چقدر؟یعنی وقتی یه کلمه انتقال پیدا کنه.
به نظرم جواب سوالاتون اینا بود حالا اگه دوستان نظر دیگه ای دارند بسم الله.
ارسال: #۵
  
RE: مشکل در درک Dma
خیلی ممنون از وقتی که گذاشتید یکی دو ابهام دیگه مونده:
با توجه به مطلب شما "(روش stealing )در این روش در هر مرتبه یک کلمه انتقال داده میشود و دوباره گذرگاه در اختیار CPU قرار میگیرد و CPU اجرای هر عملیات خود را به اندازهی یک سیکل حافظه به تاخیر می اندازد تا انتقال داده های I/O کامل گردد. " ،فرص کنید به اندازه ۱۰۰ کلاک سیستم ،برای اجرای همزمان cpu و dma به هرکدوم چند کلاک (یا سیکل )میرسه ؟۵۰ تا؟
با توجه به مطلب شما "(روش stealing )در این روش در هر مرتبه یک کلمه انتقال داده میشود و دوباره گذرگاه در اختیار CPU قرار میگیرد و CPU اجرای هر عملیات خود را به اندازهی یک سیکل حافظه به تاخیر می اندازد تا انتقال داده های I/O کامل گردد. " ،فرص کنید به اندازه ۱۰۰ کلاک سیستم ،برای اجرای همزمان cpu و dma به هرکدوم چند کلاک (یا سیکل )میرسه ؟۵۰ تا؟
۰
ارسال: #۶
  
مشکل در درک Dma
نظر و برداشت شخصی خودم اینه که وقتی از dmaاستفاده میشه که کارمون بیشتر i/o limited هست (یعنی برنامه هایی که بیشتر ورودی خروجی دارند تا نیاز به پردازش cpu) و در نتیجه کلا cpu کمتر به گذرگاه داده نیاز داره و بیشتر پردازش میکنه و وسایل جانبی که i/o بیشتری دارند از گذرگاه استفاده میکنن
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close