تالار گفتمان مانشت

نسخه‌ی کامل: سوال IT سراسری 83
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
خواهشا و لطفا میشه اگه کسی می دونه بگه اینجور سوالا را چطوری می شه حل کرد؟
سلام.

اطلاعات لازم برای حل اینگونه سوالات به این صورت هست؛ 3 قسمت مفروض در صورت سوال یعنی RAM.CPU.DMA را باید بصورت مفهومی ارتباط بین شان را درک کرده باشیم. DMA بصورت مستقیم و بدون واسطه CPU میتواند به حافظه دسترسی پیدا کند. گذرگاه مربوط به حافظه بین CPUوDMA به RAM مشترک است و هرگاه گذرگاه در اختیار DMA باشد،CPU نمیتواند از گذرگاه استفاده کند و بلعکس.
همونطور که اطلاع داریم سرعت دسترسی CPU به حافظه طبق گفته صورت مساله از DMA بیشتر است.

در صورت سوال ذکر کرده سرعت CPU برابر هست با 100مگاهرتز، این یعنی نرخ کلاک برابر هست با 100میلیون دستورالعمل در یک ثانیه؛ این یعنی در یک ثانیه 100میلیون بار کلاک پالس تولید میشود. با یک تناسب ساده میتوان فهمید که زمان هرکلاک پالس 10نانوثانیه است.
به این صورت.
100.000.000دستورالعمل ........................................1 ثانیه
1دستورالعمل ......................................................... چندثانیه طول میکشد؟

که برابر هست با [tex]\frac{1}{100.000.000}[/tex] . (همان 10 نانوثانیه).

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

در صورت سوال گفته شده که نرخ انتقال بین DMA و RAM برابر هست با 40Mbps یعنی حدودا 40میلیون بیت در یک ثانیه. برای اینکه تبدیل بشه به کاراکتر بر ثانیه، باید 40میلیون را بر 8 تقسیم کرد(هر کاراکتر 8 بیت). پس به این صورت عمل میکنیم: [tex]\frac{40*10^{6}}{8} = 5*10^{6}[/tex] . پس یعنی DMA میتواند 5میلیون کاراکتر را در یک ثانیه انتقال بدهد.

همونطور که قبلا هم گفته شد، CPU میتواند 100دستور العمل را در یک ثانیه واکشی (یا مثلا دسترسی) کند، اما DMA میتواند 5میلیون دستور را در یک ثانیه انتقال (یا دسترسی) پیدا کند، پس در کل 1/20 سرعت سیستم بخاطر استفاده از DMA هدر میرود. اگر 1/20 را در 100% ضرب کنیم جواب بدست امده 5% خواهد بود که جواب سوال هم هست.

نکته: در این سوال گفته شده گذرگاه 32 بیتی است، اما مشخص نکرده که واحد انتقال چند بیت است، پس طبق (طبق هیچ دلیل و مدرکی!) کاراکتر هارا 8 بیتی درنظر میگیریم Smile، در صورتی که کاراکتر ها را 32 بیتی درنظر بگیریم باید بجای تقسیم 40میلیون بر 8، 40میلیون را بر 32 تقسیم میکردیم. و مراحل را به همینصورت ادامه میدادیم. که در اون صورت میشد 1.25%

اگر جایی نامفهوم بود، بگیرد بیشتر توضیح خواهم داد.
(17 مهر 1392 10:51 ب.ظ)azad_ahmadi نوشته شده توسط: [ -> ]سلام.

اطلاعات لازم برای حل اینگونه سوالات به این صورت هست؛ ۳ قسمت مفروض در صورت سوال یعنی RAM.CPU.DMA را باید بصورت مفهومی ارتباط بین شان را درک کرده باشیم. DMA بصورت مستقیم و بدون واسطه CPU میتواند به حافظه دسترسی پیدا کند. گذرگاه مربوط به حافظه بین CPUوDMA به RAM مشترک است و هرگاه گذرگاه در اختیار DMA باشد،CPU نمیتواند از گذرگاه استفاده کند و بلعکس.
همونطور که اطلاع داریم سرعت دسترسی CPU به حافظه طبق گفته صورت مساله از DMA بیشتر است.

در صورت سوال ذکر کرده سرعت CPU برابر هست با ۱۰۰مگاهرتز، این یعنی نرخ کلاک برابر هست با ۱۰۰میلیون دستورالعمل در یک ثانیه؛ این یعنی در یک ثانیه ۱۰۰میلیون بار کلاک پالس تولید میشود. با یک تناسب ساده میتوان فهمید که زمان هرکلاک پالس ۱۰نانوثانیه است.
به این صورت.
۱۰۰/۰۰۰/۰۰۰دستورالعمل ........................................۱ ثانیه
۱دستورالعمل ......................................................... چندثانیه طول میکشد؟

که برابر هست با [tex]\frac{1}{100.000.000}[/tex] . (همان ۱۰ نانوثانیه).

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

در صورت سوال گفته شده که نرخ انتقال بین DMA و RAM برابر هست با ۴۰Mbps یعنی حدودا ۴۰میلیون بیت در یک ثانیه. برای اینکه تبدیل بشه به کاراکتر بر ثانیه، باید ۴۰میلیون را بر ۸ تقسیم کرد(هر کاراکتر ۸ بیت). پس به این صورت عمل میکنیم: [tex]\frac{40*10^{6}}{8} = 5*10^{6}[/tex] . پس یعنی DMA میتواند ۵میلیون کاراکتر را در یک ثانیه انتقال بدهد.

همونطور که قبلا هم گفته شد، CPU میتواند ۱۰۰دستور العمل را در یک ثانیه واکشی (یا مثلا دسترسی) کند، اما DMA میتواند ۵میلیون دستور را در یک ثانیه انتقال (یا دسترسی) پیدا کند، پس در کل ۱/۲۰ سرعت سیستم بخاطر استفاده از DMA هدر میرود. اگر ۱/۲۰ را در ۱۰۰% ضرب کنیم جواب بدست امده ۵% خواهد بود که جواب سوال هم هست.

نکته: در این سوال گفته شده گذرگاه ۳۲ بیتی است، اما مشخص نکرده که واحد انتقال چند بیت است، پس طبق (طبق هیچ دلیل و مدرکی!) کاراکتر هارا ۸ بیتی درنظر میگیریم Smile، در صورتی که کاراکتر ها را ۳۲ بیتی درنظر بگیریم باید بجای تقسیم ۴۰میلیون بر ۸، ۴۰میلیون را بر ۳۲ تقسیم میکردیم. و مراحل را به همینصورت ادامه میدادیم. که در اون صورت میشد ۱/۲۵%

اگر جایی نامفهوم بود، بگیرد بیشتر توضیح خواهم داد.

خیلی لطف کردین هم بابت جواب کاملتون و هم وقتتون
اگه بخواهیم از اینجور سوالا بیشتر حل کنیم از چه منبعی می تونیم پیدا کنیم و یا تو اینترنت هست از این قبیل سوال ها؟
(18 مهر 1392 01:31 ب.ظ)آسمان ابری نوشته شده توسط: [ -> ]اگه بخواهیم از اینجور سوالا بیشتر حل کنیم از چه منبعی می تونیم پیدا کنیم و یا تو اینترنت هست از این قبیل سوال ها؟

سلام.
خواهش میکنم.
این سوالات رو باید بصورت مفهومی درک کرد، یعنی کارکرد DMA و CPU و دسترسی شون به حافظه و همچنین درک کلاک پالس و نرخ کلاک و تبدیل و بدست اوردنشون از روی همدیگه و ... (چقدر "و" داشت Big Grin)
منبع خاصی مد نظرم نیست، صرفا باید مفهومی درک بشه.
لینک مرجع