سلام
اجرای یک میلیون دستورالعمل در ثانیه توسط پردازنده یعنی چی؟ از اونجا که هر ثانیه برابر یک میلیون میکروثانیه هست، یعنی پردازنده ما قادره هر دستور رو تو یک میکروثانیه از حافظه اصلی واکشی کنه و بیاره داخل ثبات دستورالعمل خودش و نهایتا اجراش کنه. سوال گفته مولفه DMA ما می تونه نویسه ها (کاراکتر) رو با نرخ ۹۶۰۰ بیت بر ثانیه یعنی ۱۲۰۰=۹۶۰۰/۸ بایت بر ثانیه از یک دستگاه خارجی به حافظه اصلی انتقال بده. توجه کنیم که هر نویسه معادل ۸ بیت یا یک بایت هست، برای همین تبدیل کردیم.
خب ما الان می دونیم که هر دستور توسط پردازنده تو یک میکروثانیه اجرا میشه و برای اینکه بفهمیم DMA ما تو چند میکروثانیه می تونه یک نویسه رو به حافظه اصلی انتقال بده باید عدد ۱ میلیون (توان کل پردازنده در یک ثانیه برای اجرای دستورات) رو بر عدد ۱۲۰۰ (توان کل DMA در یک ثانیه برای انتقال نویسه ها) رو بر هم تقسیم کنیم که میشه: ۸۳۳/۳۳=۱۰۰۰۰۰۰/۱۲۰۰
پس DMA ما می تونه تقریبا هر ۸۳۳ میکروثانیه یک بار، یک نویسه رو به حافظه اصلی انتقال بده و با علم به اینکه گذرگاه آدرس مربوط به حافظه اصلی در یک زمان واحد صرفا می تونه به پردازنده یا DMA تعلق داشته باشه، محاسبات مربوط به این معناست که ما یک سیکل با مقدار ۸۳۳ داریم که تو هر زمان میشه به گذرگاه حافظه اصلی دسترسی داشت و این مقدار فقط ۱ سیکل می تونه در اختیار DMA قرار بگیره و ۸۳۲ تاش در اختیار پردازنده خواهد بود و دلیل این امر هم اختلاف سرعت بین پردازنده و DMA هست.
نهایتا برای به دست آوردن مقدار کند شدن پردازنده ناشی از این سرقت یک سیکلی! داریم:
۰/۱۲ = ۱۰۰*[۱/۸۳۳]