۰
subtitle
سلام.
روند حل سوال به این صورت هست. اولا باید مفاهیم ارتباطات بین CPU,DMA و RAM رو خوب درک کرده باشید.
همونطورکه میدونیم، DMA ابزاری برای دسترسی مستقیم به حافظه است، و زمانهایی که گذرگاه در اختیار DMA قرار دارد، CPU حق استفاده از گذرگاه رو نخواهد داشت. دقت به این نکته مهم هست که سرعت دسترسی CPU به حافظه بیشتر از سرعت دسترسی DMA به حافظه است.
همونطور که در صورت سوال گفته، CPU با نرخ ۱ میلیون دستورالعمل در یک ثانیه واکشی را انجام میده، این یعنی که در یک ثانیه میتونه ۱ میلیون دستورالعمل رو بخونه؛ پس هر یک میکروثانیه یا هر یک میلیونیوم ثانیه ( 10−6 ) میتواند یک مراجعه به حافظه داشته باشد. دقت کنید که نوشتم "می تواند"؛ اما با توجه به اینکه همیشه گذرگاه در خدمت CPU نیست و بعضا DMA از اون استفاده میکنه، این زمان دستکاری میشه.
در صورت سوال گفته شده که DMA با نرخ ۱۶Kbps میتونه از دستگاه خارجی ب حافظه ارتباط داشته باشه، این یعنی که تعداد کاراکتر هایی که در یک ثانیه انتقال داده میشوند برابر هست با 16Kbps=160008=2000 (اینجا ۲ نکته وجود داره، کیلوبایت رو ۱۰۰۰ درنظر میگیریم و نه ۱۰۲۴، و اینکه هر کاراکتر ۸ بیتی هست، و برای اینکه بفهمیم چند کاراکتر انتقال داده شده، تقسیم بر ۸ میکنیم) که در نهایت میشه ۲۰۰۰ کاراکتر را در یک ثانیه میتوان از DMA به RAM انتقال داد.
حالا دقت کنید که اگر CPU بخواد به RAM دسترسی داشته باشه، هر ۱/۱۰۰۰۰۰۰ میتونه این کار رو انجام بده، اما اگر DMA بخواد اینکار رو انجام بده هر ۱ ثانیه ۲۰۰۰ کاراکتر میتونه انتقال بده، پس به ازای هر ۵۰۰ دستور که CPU انجام میده، یک دستور هم DMA انجام میده. (برای انتقال ۱میلیون دستور نیاز به ۵۰۰ثانیه هست) .
در کل ۱/۵۰۰ * ۱۰۰% برابر هست با ۰/۲% . که گذینه ۴ میشود جواب درست.
جایی سوال داشتید بگید بیشتر توضیح میدم.
روند حل سوال به این صورت هست. اولا باید مفاهیم ارتباطات بین CPU,DMA و RAM رو خوب درک کرده باشید.
همونطورکه میدونیم، DMA ابزاری برای دسترسی مستقیم به حافظه است، و زمانهایی که گذرگاه در اختیار DMA قرار دارد، CPU حق استفاده از گذرگاه رو نخواهد داشت. دقت به این نکته مهم هست که سرعت دسترسی CPU به حافظه بیشتر از سرعت دسترسی DMA به حافظه است.
همونطور که در صورت سوال گفته، CPU با نرخ ۱ میلیون دستورالعمل در یک ثانیه واکشی را انجام میده، این یعنی که در یک ثانیه میتونه ۱ میلیون دستورالعمل رو بخونه؛ پس هر یک میکروثانیه یا هر یک میلیونیوم ثانیه ( 10−6 ) میتواند یک مراجعه به حافظه داشته باشد. دقت کنید که نوشتم "می تواند"؛ اما با توجه به اینکه همیشه گذرگاه در خدمت CPU نیست و بعضا DMA از اون استفاده میکنه، این زمان دستکاری میشه.
در صورت سوال گفته شده که DMA با نرخ ۱۶Kbps میتونه از دستگاه خارجی ب حافظه ارتباط داشته باشه، این یعنی که تعداد کاراکتر هایی که در یک ثانیه انتقال داده میشوند برابر هست با 16Kbps=160008=2000 (اینجا ۲ نکته وجود داره، کیلوبایت رو ۱۰۰۰ درنظر میگیریم و نه ۱۰۲۴، و اینکه هر کاراکتر ۸ بیتی هست، و برای اینکه بفهمیم چند کاراکتر انتقال داده شده، تقسیم بر ۸ میکنیم) که در نهایت میشه ۲۰۰۰ کاراکتر را در یک ثانیه میتوان از DMA به RAM انتقال داد.
حالا دقت کنید که اگر CPU بخواد به RAM دسترسی داشته باشه، هر ۱/۱۰۰۰۰۰۰ میتونه این کار رو انجام بده، اما اگر DMA بخواد اینکار رو انجام بده هر ۱ ثانیه ۲۰۰۰ کاراکتر میتونه انتقال بده، پس به ازای هر ۵۰۰ دستور که CPU انجام میده، یک دستور هم DMA انجام میده. (برای انتقال ۱میلیون دستور نیاز به ۵۰۰ثانیه هست) .
در کل ۱/۵۰۰ * ۱۰۰% برابر هست با ۰/۲% . که گذینه ۴ میشود جواب درست.
جایی سوال داشتید بگید بیشتر توضیح میدم.