থাম্ব নির্দেশাবলী পারফরম্যান্সের জন্য কীভাবে এআরএম নির্দেশাবলী তুলনা করে?


11

একজন সহকর্মী উল্লেখ করেছিলেন যে থাম্ব নির্দেশাবলী এআরএম নির্দেশাবলীর তুলনায় উল্লেখযোগ্যভাবে ধীর ছিল (এটি এটি এটিএটিএসএএম 7 এস 32 প্রসেসরের জন্য ছিল)। এটা কি সত্য? এক নির্দেশের অন্যটিতে সেট করা পারফরম্যান্স সুবিধা কী কী?

উত্তর:


11

সাধারণভাবে

থুম্ব নির্দেশাবলী আমার জ্ঞানের সাথে এআরএম নির্দেশাবলীর চেয়ে আস্তে আস্তে ধীরে নয়, বরং সামর্থ্যের চেয়ে আরও সীমিত। যদি আপনার কোডটিতে কেবল থুম্বু নির্দেশাবলীর কার্যকারিতা প্রয়োজন হয় তবে এটি এআরএম এর চেয়ে কম স্থান দখল করবে, তবে একই সংখ্যক নির্দেশনা হবে এবং অন্যান্য জিনিস সমান হবে একই গতিতে চলবে। যদি আপনার কোডটির আরও কার্যকারিতা প্রয়োজন হয় তবে এআরএমের নির্দেশাবলীর চেয়ে আরও বেশি টিএমপি নির্দেশের প্রয়োজন হয় এবং আরও সময় নিতে পারে, আবার অন্যান্য জিনিস সমান হবে (নীচে দেখুন)

দুটি কারণে ছোট আকারের নির্দেশের কারণে থুম্বু মাইক্রোকন্ট্রোলারগুলিতে জনপ্রিয়:

  1. প্রোগ্রাম স্পেস প্রায়শই সীমাবদ্ধ থাকে
  2. অনেক মাইক্রোকন্ট্রোলারদের অভ্যন্তরীণ ফ্ল্যাশটিতে 16-বিট ডেটা বাস রয়েছে

দ্বিতীয় কারণ হিসাবে, যখন আপনার কোডটি এআরএম নির্দেশিকা সেট থেকে কার্যকারিতা প্রয়োজন হয় না, থাম্ব কোডটি আসলে দ্রুত চলে। এটি কারণ আপনার নির্দেশ দুটি এর পরিবর্তে ফ্ল্যাশ থেকে একটি I / O চক্র এ আনা যায়। আপনার ফ্ল্যাশ ইন্টারফেসের গতির উপর নির্ভর করে second সেকেন্ড রিডে নির্দেশনা প্রতি এক বা একাধিক ওয়েট-সাইকেল লাগতে পারে যেখানে আপনার সিপিইউ স্টলড রয়েছে এবং কিছুই করতে পারবেন না।

এটি কার্যকর করার আগে আপনি যদি আপনার কোডটি র‍্যামে অনুলিপি করতে পারেন তবে (যা আমি সাম্প্রতিক এআরএম মাইক্রোকন্ট্রোলারদের জন্য সাধারণত 32-বিট হিসাবে দেখেছি), যেখানে কেবলমাত্র কোডের ঘনত্ব concern তার জন্য, অনেক সরঞ্জাম কোনও প্রদত্ত ফাংশনের জন্য কোন প্রতিনিধিত্বকে আরও দক্ষ বলে সন্ধান করার চেষ্টা করবে। সংকলকটি যদি কম নির্দেশে থम्ब্ব কোড তৈরি করতে পারে তবে তা এআরএম এর কম নির্দেশে যদি আপনি এআরএম পান ফলাফল হয়। এটি যদি কেইলের জন্য সঠিকভাবে স্মরণ করি তবে এটি ডিফল্ট মোড।

আপনার নির্দিষ্ট চিপ

আপনার নির্দিষ্ট চিপের জন্য (এটি 90 এসএএম 7 এস 32) ডকুমেন্টেশনে উল্লেখ করা হয়েছে যে ফ্ল্যাশ কন্ট্রোলারের একটি প্রিফেচ বাফার রয়েছে যা জিনিসগুলিকে আরও দক্ষ করে তোলার জন্য অ্যাক্সেসের পূর্বাভাস দিতে পারে যা এআরএম নির্দেশনা কার্যকরকরণের উন্নতি করতে পারে। তবে এটি আরও উল্লেখ করে যে উপসাগরটি একটি "দ্বৈত 32-বিট" বাফার যা "16-বিট অ্যাক্সেসকে অনুকূলিত করে" যা "থাম্ব মোডে চলার জন্য" সবচেয়ে উপযুক্ত, এটি ইঙ্গিত দেয় যে এটি গতি বাড়ানোর উদ্দেশ্যে নয় seems এআরএম নির্দেশাবলী, তবে আপনার কোরটি থুম্বু মোডে দ্রুত চালানোর অনুমতি দেওয়ার জন্য।

চিত্রগুলি থেকে দেখে মনে হচ্ছে আপনার চিপের ফ্ল্যাশটিতে আসলে একটি 32 বিট ডাটা বাস রয়েছে। উপস্থাপক পুরো 32 বাইটগুলি পড়ে সিপিইউকে 16 টি (টিম্বু মোডে) দিয়ে এবং পুরো 32 বিটটি ক্যাশে করে কাজ করছেন বলে মনে হচ্ছে। পরবর্তী চক্রের সময়, সিপিইউ যখন দ্বিতীয় 16 বিট পড়ে, তখন ক্যাশে থেকে, ফ্ল্যাশ নিয়ামকটি পরবর্তী 32 বিটগুলি পড়ছে এবং এটি ক্যাশে করছে। এইভাবে থমম্ব কোডটি প্রাথমিক অপেক্ষা ছাড়া বেশি চলতে পারে এমনকি ফ্ল্যাশ গতিটি সিপিইউ কোর গতির চেয়ে কিছুটা ধীর গতিতে হলেও। বিভাগ 19.2.2 "অপারেশনগুলি পড়ুন" এর আরও বিশদ রয়েছে।

যেহেতু আপনার ফ্ল্যাশটি 32 বিট বাস (যতই কাছে আমি বলতে পারি), আপনার সিপিইউ এবং ফ্ল্যাশ ক্লকগুলি যদি একই হয়, তবে আপনাকে কেবল এআরএমের উপর কোড ঘনত্ব দেবে। যদি আপনি চান যে আপনার সিপিইউ কোরটি ফ্ল্যাশের চেয়ে দ্রুত চালিত হোক (এবং দ্রষ্টব্য, আমি এই চিপের সমস্ত সময় পর্যালোচনা করি নি; আমি ধরে নিয়েছি যে সিপিইউ দ্রুত চালাতে পারে কারণ তারা আপনাকে অপেক্ষা করার রাজ্যগুলি সেট করতে দেয়), প্রিফেচ একটি গতি দেয় প্রকৃত ফ্ল্যাশ অ্যাক্সেস হ্রাসের কারণে থাম্বুর পক্ষে সুবিধা। তবে, সেই গতির সুবিধা হ'ল প্রতি নির্দেশের সুবিধা। যদি টিআরএম নির্দেশাবলী বনাম এআরএম নির্দেশাবলীর সংখ্যা যথেষ্ট পরিমাণে থাকে তবে এটি প্রতি নির্দেশের গতি ছাড়িয়ে যাবে যার ফলস্বরূপ এআরএমের প্রতি রুটিন গতি আরও দ্রুত হয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.