اطلاعیه

Collapse
No announcement yet.

سوال؟

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    سوال؟

    با سلام
    چرا در انجام محاسبات توسط Cpu حتما باید یک طرف محاسبه از داخل Ram وارد رجیستر داخل Cpu شود،سپس عملیات محاسبه توسط ALU انجام گیرد
    مثلا برای جمع 2عدد که ازطریق پورت وارد حافظه شدند،حتما بایدیکی از آن دو عدد را ابتدا با نوشتن کد دستور آن، وارد یکی از رجیسترها کنیم،سپس کد دستور جمع را برای جمع آن دو عدد وارد کنیم.آیا این کار دلیل خاصی دارد؟لطفا توضیح دهید.
    بنظرم اگر بتوان 2 عدد را بدون منتقل کردن یکی از آنها به داخل رجیستر Cpu جمع کرد (یا هر عملیات محاسباتی دیگر روی آن انجام داد) علاوه بر اینکه دستور کمتری استفاده میکنیم،سرعت انجام محاسبات نیز افزایش می یابد.
    از شمادوستان خوب ممنون میشم که مرا راهنمایی کنید ودلیل انتقال یک طرف از محاسبات به داخل رجیستر را توضیح دهید
    با سپاس و آرزوی بهترین ها

    #2
    پاسخ : سوال؟

    امیرجان، عمل جمع توی واحد ALU توسط یه Full Adder انجام میشه و ورودی این Adder فقط به چند عدد محدود از رجیسترهای پردازنده مرتبط هست
    اگر فرض بگیریم قرار بود محتویات رم مستقیم رو ورودی جمع کننده قرار میگرفت اونوقت این جمع کننده باید به همه خونه های رم وصل میشد که حجم رو به شدت افزایش میداد!
    این لینک رو هم ببین: en.wikipedia.org/wiki/Arithmetic_logic_unit
    {خلاف قوانین - امضا ویرایش شد}

    دیدگاه


      #3
      پاسخ : سوال؟

      نوشته اصلی توسط amir_ak
      با سلام
      چرا در انجام محاسبات توسط Cpu حتما باید یک طرف محاسبه از داخل Ram وارد رجیستر داخل Cpu شود،سپس عملیات محاسبه توسط ALU انجام گیرد
      مثلا برای جمع 2عدد که ازطریق پورت وارد حافظه شدند،حتما بایدیکی از آن دو عدد را ابتدا با نوشتن کد دستور آن، وارد یکی از رجیسترها کنیم،سپس کد دستور جمع را برای جمع آن دو عدد وارد کنیم.آیا این کار دلیل خاصی دارد؟لطفا توضیح دهید.
      بنظرم اگر بتوان 2 عدد را بدون منتقل کردن یکی از آنها به داخل رجیستر Cpu جمع کرد (یا هر عملیات محاسباتی دیگر روی آن انجام داد) علاوه بر اینکه دستور کمتری استفاده میکنیم،سرعت انجام محاسبات نیز افزایش می یابد.
      از شمادوستان خوب ممنون میشم که مرا راهنمایی کنید ودلیل انتقال یک طرف از محاسبات به داخل رجیستر را توضیح دهید
      با سپاس و آرزوی بهترین ها
      سلام.
      خوب علتش اینه که شما فقط یک Data Bus دارید و نمیتونید در آن واحد، به دو آدرس رم آدرس دهی کنید.
      بنابراین همیشه اول نیاز دارید که یک عدد رو اگر در رجیستر های پردازنده وجود نداره وارد این رجیستر ها کنید و بعد عدد دیگر رو از روی رم باهاش جمع کنید.

      دیدگاه

      لطفا صبر کنید...
      X