আমাদের কেন মাইক্রোপ্রসেসরগুলিতে আরও রেজিস্টার নেই?


18

নিবন্ধগুলি তাত্ত্বিকভাবে প্রয়োজন হয় না; সমস্ত মাইক্রোপ্রসেসর এখনও নিবন্ধ ছাড়াই কাজ করবে। তবে এটি আপাতদৃষ্টিতে তুচ্ছ সংযোজন মাইক্রোপ্রসেসরগুলিকে আরও দক্ষ করতে সহায়তা করেছে।

সেগুলি থেকে আরও আরও সুবিধা আহরণের জন্য কেন আমরা আরও নিবন্ধভুক্ত হতে পারি না? এগুলি কেবল চিপে মেমরি এবং কেউ ভাবতে পারেন যে যুক্ত করা খুব কঠিন নয়? কোন ফ্যাক্টর রেজিস্টরের সংখ্যাকে প্রভাবিত করেছে যেগুলি এখন তারা কী এবং এখন কী নয়, আরও 10x বলুন?


8
@ Alper91 অনেক আর্কিটেকচার, অনুমান এবং বাস্তব, রেজিস্টার নেই, এবং এটি মোটেও প্রয়োজনীয় নয়। এটি কেবল একটি দরকারী অপ্টিমাইজেশন।
পাইপ

4
হুম। কেউ স্পার্কের কথা উল্লেখ করেনি। বৃহত্তম রূপায়ণে এটিতে 520 টি নিবন্ধ থাকতে পারে (32 উইন্ডোর বার 16 টি নিবন্ধ, + 8 গ্লোবাল)) আমি অবশ্যই সেগুলি মনে রাখতে পারি।
jonk

13
আমি মনে করি যে নিবন্ধটি আপনাকে নির্দিষ্ট করতে হবে সেই নির্দেশে বিটের সংখ্যা একটি বড় সমস্যা। আপনার যদি 1024 রেজিস্টার থাকে, তবে আপনার প্রতিটি গাণিতিক নির্দেশের জন্য কমপক্ষে 30 টি বিট লাগবে - যতক্ষণ না আপনি "সমস্ত 3 রেজিস্টার অবশ্যই 32 টি গ্রুপের (একই ক্ষেত্রে আপনার 20 বিটের প্রয়োজন হবে) এর মতো অন্যান্য সীমাবদ্ধতা যুক্ত না করেন।
ব্যবহারকারী 253751

8
@ পাইপ - বাস্তবে কোনও ব্যবহারিক ডিজাইনের জন্য স্কিম্যাটিক অর্থে "রেজিস্টার" দরকার হয়, এমনকি যদি আপনি স্ট্যাক মেশিন বা এরকম কিছু নির্মাণ করেন তবে আপনাকে আএলইউয়ের পক্ষে যুক্তি রাখার জায়গা থাকতে হবে, না হলে ফলাফলগুলি - বেশিরভাগ স্মৃতিতে তিনটি অ্যাক্সেস পোর্ট নেই। এবং একটি স্ট্যাক মেশিনের একটি স্ট্যাক পয়েন্টার প্রয়োজন যা ... একটি রেজিস্টার! এবং পাইপলাইন নিবন্ধগুলি উল্লেখ করতে দেয় না। আপনি প্রোগ্রামার থেকে এই জাতীয় "রেজিস্টার" ব্যবহার গোপন করতে পারেন, তবে আপনার এখনও কিছু প্রয়োজন, এবং সম্ভবত প্রায় কোনও আদিম রেজিস্টার মেশিন রয়েছে।
ক্রিস স্ট্রাটন

4
@ ক্রিসট্রেটটন শিওর, তবে যতক্ষণ না তারা আইএসএর মাধ্যমে প্রকাশিত না হয় ততক্ষণ এটি কেবল বাস্তবায়নের বিশদ। যদিও কিছুটা অর্থহীন যুক্তি, যেহেতু আমরা জানি না যে ওপি রেজিস্ট্রেশন দ্বারা কী বোঝায় ।
পাইপ

উত্তর:


33

বিভিন্ন কারণ রয়েছে:

  • উচ্চ কর্মক্ষমতা মাইক্রো-আর্কিটেকচার রেজিস্ট্রার নামকরণ ব্যবহার করে। অর্থাত্ শারীরিক নিবন্ধকের সংখ্যা স্থাপত্যিকভাবে দৃশ্যমান নিবন্ধকের সংখ্যার চেয়ে বেশি এবং তারা সেগুলির স্বতন্ত্র ব্যবহার ট্র্যাক করতে সক্ষম হয়।

  • নিবন্ধকের সংখ্যা দ্বিগুণ করার ফলে পারফরম্যান্স দ্বিগুণ হয় না। আইআএসটিআর ( কম্পিউটার আর্কিটেকচার, একটি কোয়ান্টেটিভেটিভ অ্যাপ্রোচ ) থেকে ১ 16 থেকে ৩২ টি রেজিস্টারগুলি 10% উন্নতির মতো কিছু এনে ধরে নিয়েছে যে এই বৃদ্ধির কোনও বিরূপ প্রভাব নেই (এটি একটি অত্যন্ত আশাবাদী অনুমান)।

  • স্থাপত্যগতভাবে দৃশ্যমান রেজিস্টারগুলির ব্যয় হয় have এই ক্ষেত্রে:

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

1
আমি বাজি রেখেছিলাম যে 16 থেকে 32 নিবন্ধকের পারফরম্যান্সের উন্নতি সম্পূর্ণরূপে প্রশ্নে সংকলকটির অনুকূলিতকরণের সম্ভাবনার উপর নির্ভর করে। এসেম্বলারের ক্ষেত্রে রেজিস্টার সংখ্যা (দ্বিগুণ x64 আর্কিটেকচারে) দ্বিগুণ অ্যাক্সেস থাকা কার্যকারিতাটি ব্যাপকভাবে উন্নত করতে পারে - তবে কেবল কুলুঙ্গিক ভূমিকার জন্য, এবং যদি সেগুলি প্রকৃতপক্ষে ব্যবহৃত হয় তবেই।
rdtsc

6
@ আরডিটিএসসি: আট থেকে ১ architect টি আর্কিটেকচারাল রেজিস্টার থেকে এই উত্তর থেকে সংযুক্ত একটি কাগজে সিমুলেশন থেকে প্রাপ্ত তথ্য অনুসারে , আদর্শ কোডের জন্য স্পিল / পুনরায় লোডের পরিমাণে বড় উন্নতি ঘটে । এটি কোডের আকার, নির্দেশের গণনা এবং লো-লেটেন্সি স্টোর-ফরওয়ার্ডিং কতটা গুরুত্বপূর্ণ তা প্রভাবিত করে। 16-> 32 এটি অনেক ছোট প্রভাব। এএএএএফসিটি, ১ architect টি আর্কিটেকচারাল রেজিস্ট্রারগুলি ওয়ার ও ডাব্লুডাব্লু বিপত্তিগুলি অপসারণের জন্য রেজিস্ট্রারের নাম পরিবর্তন করে হার্ডওয়ারের পক্ষে একটি ভাল পছন্দ।
পিটার কর্ডেস

2
তবে, ইন্টেলের AVX512 মোট 32 টির জন্য আরও 16 ভেক্টর রেগ যুক্ত করেছে (পাশাপাশি তাদের প্রস্থটি 64 বাইটে দ্বিগুণ করে একটি সম্পূর্ণ ক্যাশে লাইন)। হাই থ্রুপুট হাই লেটেন্সি এফপি ক্রিয়াকলাপ থেকে বিলম্বকে আড়াল করা অনেক রেজিস্টার নিতে পারে take উদাহরণস্বরূপ, ইন্টেল হাসওলের 5c ল্যাট রয়েছে, প্রতি 0.5c থ্রুটপুট এফএমএর মধ্যে একটি, সুতরাং আপনার হ্রাসের জন্য এফএমএ এক্সিকিউশন ইউনিটগুলি পূরণ করার জন্য 10 ভেক্টর আহরণকারী প্রয়োজন (উদাহরণস্বরূপ বিন্দু পণ্য, বা একটি অ্যারের সংমিশ্রণ, যেখানে এফএমএ লুপ বহনকারী নির্ভরতার অংশ) )। x86-64 কেবলমাত্র 16 ভেক্টর রেগ রয়েছে। তবে মনে রাখবেন, পূর্ণসংখ্যার অপস, এসএসপি। জিপি রেজিগুলিতে, খুব কমই 1 সি-এর বেশি বিলম্ব হয়।
পিটার কর্ডেস

1
পূর্ণসংখ্যা, এফপি এবং ভেক্টর রেজিস্টারগুলির জন্য বাণিজ্য বন্ধ is উদাহরণস্বরূপ অলস সংরক্ষণ / পূর্ণসংখ্যার রেজিস্টারগুলি পুনরুদ্ধার করা কোনও অর্থবোধ করে না, এটি ভেক্টরের জন্য করা আরও বেশি ভাল বাজি। এবং ভেক্টর আইএসএর প্রায়শই পূর্ণসংখ্যার চেয়ে বেশি রেজিস্টার থাকে (আলটিভেক কমপক্ষে 128 অবধি আছে, আইএসটিআর স্পার্কের জন্য 256 জনের বিষয়ে পড়েছে তবে এখনই তার কোনও রেফারেন্স খুঁজে পাচ্ছে না)।
এপ্রোগ্রামার

1
en.wikipedia.org/wiki/AltiVec বত্রিশ 128b ভেক্টর regs হয়েছে। আমি স্পার্ক সম্পর্কে কৌতূহল পেয়েছি এবং এর রেজিস্টার-উইন্ডো স্টাফ প্রসঙ্গের সুইচগুলির জন্য কীভাবে কাজ করেছে তা সন্ধান করলাম। এটিতে একবারে 32 টি রেজিস্টার দৃশ্যমান রয়েছে তবে এটি একটি বৃহত্তর রেজিস্টার ফাইলে স্লাইডিং উইন্ডো ব্যবহার করে। ওএসের মতো সরল সংস্করণ থেকে এটির মতো শোনাচ্ছে এটি সংরক্ষণ / পুনরুদ্ধার করার জন্য পুরো স্লাইডিং-উইন্ডো রেজিস্টার ফাইলের আকার জানতে হবে, যদিও উইন্ডো-স্লাইড নির্দেশাবলী প্রয়োজনে রেজিগুলি সংরক্ষণ / পুনরুদ্ধার করার জন্য মেমরি সরবরাহ করে যদিও এটি ফাঁদে পড়েছে ওএসে
পিটার কর্ডস

16

রেজিস্টার এবং র্যাম উভয়ই মেমোরি হলেও এগুলি অ্যাক্সেস করার ব্যয় (চিপ অঞ্চল বা লুকানো ঘড়ির চক্র) প্রতিফলিত করার জন্য এগুলি বিভিন্ন উপায়ে অ্যাক্সেস করা হয়।

নিবন্ধগুলি কঠোরভাবে ALU- র সাথে আবদ্ধ এবং এগুলি ডেটা উত্স, সিংক, সংশোধক ইত্যাদির অনেক ভূমিকা নিতে পারে তাই তাদের বিস্তৃত মাল্টিপ্লেক্স সংযোগের প্রয়োজন। কিছু আর্কিটেকচারে আমরা আর 1 <= আর 2 + আর 3 লিখতে পারি এবং একক ঘড়ির চক্রে ঠিক এটি ঘটে। প্রতিটি রেজিস্টার সরাসরি অপের কোডে সম্বোধন করা হয়, এই ঠিকানাটি খুব সীমিত সংস্থান।

নিবন্ধগুলি যেমন প্রয়োগ করা ব্যয়বহুল, তাই বেশিরভাগ আর্কিটেকচারে সংখ্যাটি 10/20 অনুসারে সীমাবদ্ধ থাকে।

র‌্যামটি সিপিইউতে আস্তে আস্তে আবদ্ধ হয়, সাধারণত একটি একক ভাগ করা সংযোগের মাধ্যমে চ্যানেল করা হয়। এটি প্রচুর পরিমাণে র‌্যাম বাস্তবায়ন করতে অনেক সস্তা makes র‍্যাম ঠিকানাগুলি সাধারণত একটি নিবন্ধভুক্ত-সংরক্ষণ করা ঠিকানা থেকে আসে, সুতরাং উল্লেখযোগ্য নির্দেশের প্রস্থটি গ্রাস করবেন না।

স্পার্ক একটি আকর্ষণীয় আর্কিটেকচার, যার সাথে 72 থেকে 640 64 বিট রেজিস্টার রয়েছে, 32 টি রেজিস্ট্রার প্রসঙ্গ রয়েছে যা প্যারামিটার পাসিং সহ দ্রুত সাব্রুটিন কলগুলির জন্য ওভারল্যাপের সাথে স্থানান্তরিত হতে পারে। আপনি পিসি এবং সার্ভারগুলিতে তাদের সন্ধান করার প্রবণতা পাবেন না যেখানে ব্যয় সম্পর্কিত বিষয়গুলি যেমন 99.999% অ্যাপ্লিকেশন।


4
অন্য দিকটি হ'ল আপনাকে কনটেক্সট স্যুইচ চলাকালীন রেজিস্টারগুলি সংরক্ষণ / পুনরুদ্ধার করতে হবে। আরও রেজিস্টার, আরও সময়।
মিশেল বিলাউড

আমি লক্ষ্য করেছি যে পুরানো TMS9900 বহিরাগত মেমরি সব তার কাজ রেজিস্টার রাখা en.wikipedia.org/wiki/Texas_Instruments_TMS9900
পিটার স্মিথ

1
আমি (অল্প অল্প কিছু টুইট বাদে) 'অদমণে' যোগ্যতা অর্জন করেছি তবে এটি সহজ করার জন্য এটিকে বাইরে নিয়ে এসেছি। সম্ভবত আমি এটিকে 'সাধারণভাবে' এ পরিবর্তন করব। মূলত যদি আপনি ব্যতিক্রমগুলি সন্ধান করতে এবং বুঝতে পারেন তবে সেগুলি উল্লেখ করার জন্য আপনার আমার প্রয়োজন হবে না। আপনি যদি ভ্রান্ত হওয়ার পক্ষে যথেষ্ট সচেতন হন তবে তা কোনও ব্যাপার নয় কারণ এটি আপনাকে সমস্যায় ফেলবে না। টিএমএস 9900, যেটি আরও জঘন্য ছিল, আমার আগের জীবনে আমার পাপের জন্য 99/4 ছিল, অদ্ভুত জন্তু!
নীল_উপ

ইটানিয়ামের উইন্ডোতে নিবন্ধ রয়েছে।
সাইমন রিখটার

1
@ ক্রিসট্রাটটন: যদিও "আপনি রেজিস্টার এক্স এবং ওয়াই" ব্যবহার করতে পারবেন না তাকে "এবিআই" এর অংশ হিসাবে বিবেচনা করা হচ্ছে (উদাহরণস্বরূপ কে 0 এবং কে 1 রেজিস্টারগুলিতে), এটি অস্বাভাবিক ব্যবহার। প্রাসঙ্গিক সুইচ-এ যদি এই "এবিআই-নিষিদ্ধ রেজিস্ট্রারগুলি" সংরক্ষণ / পুনরুদ্ধার করা না হয় তবে অবশ্যই প্রক্রিয়াগুলির মধ্যে অযাচিত / অনিরাপদ গোপনীয় মেসেজিং চ্যানেলগুলি রয়েছে। এটি হ'ল যে প্রক্রিয়াগুলি যোগাযোগ করতে সক্ষম হবে না সেগুলি নিষিদ্ধ রেজিস্টারে তথ্য সংরক্ষণ করে এবং প্রসঙ্গের সুইচগুলির জন্য অপেক্ষা করার মাধ্যমে এটি করতে সক্ষম হতে পারে।
আর ..

12

নিবন্ধগুলি নির্দেশের মধ্যে আবশ্যক। যদি অনেক রেজিস্টার থাকে তবে নির্দেশিকাটি দীর্ঘতর। একটি বিঘ্নিত পরিষেবার জন্য নিবন্ধক সামগ্রী সংরক্ষণ এবং পুনরুদ্ধার করতে আরও বেশি রেজিস্টার থাকলে আরও বেশি সময় প্রয়োজন।


5

বেশিরভাগ জিনিস হিসাবে, নিবন্ধকের সংখ্যা হ'ল ব্যয়, জটিলতা এবং উপযোগিতার মধ্যে একটি সমঝোতা।

নিবন্ধগুলি মাল্টি-পোর্ট স্ট্যাটিক র‌্যাম হিসাবে প্রয়োগ করা হয়, যা এগুলি অন্যান্য স্টোরেজ বিকল্পগুলির তুলনায় আরও ব্যয়বহুল (চিপ অঞ্চল) করে তোলে।

তারপরে তারা প্রসেসরের নির্দেশ সংকলনের সাথে মিলিত হয়, নিবন্ধকের সংখ্যা বৃদ্ধি করা নির্দেশের সেটটির জটিলতা বাড়িয়ে তোলে। সুতরাং আপনি যদি নির্দেশের সেটটির সাথে সামঞ্জস্য রাখতে চান তবে দক্ষতা বাড়াতে আপনি প্রসেসরের পরবর্তী প্রজন্মের মধ্যে উপলব্ধ রেজিস্টারের সংখ্যা বাড়িয়ে তুলতে পারবেন না, প্রোগ্রামগুলি সেগুলি ব্যবহার করবে না।

এরপরে আপনার সত্যিকারের কত নিবন্ধগুলি দরকার? তাদের দরকারীতার সীমা রয়েছে। আপনি একটি অ্যালগরিদম লিখতে বিবেচনা করুন যা 1024 বাইটে কিছু গাণিতিক ক্রিয়াকলাপ সম্পাদন করে, আসুন 5 দিয়ে গুণা যাক বর্তমান রেজিস্টার গণনা সহ, আপনি এরকম কিছু দিয়ে শেষ করুন:

load operand1=5
load address
loop: load operand2=byte1@address
multiply Register1 with Register2
store result
increment address
if address = end goto endLoop
jump loop
endLoop:

এখন আপনি যদি 1024 রেজিস্টার এবং সেখানে থাকা সমস্ত ডেটা রাখতে চান তবে আপনার প্রোগ্রামটি দেখতে এমন হবে:

multiply Register1 with Register2
multiply Register1 with Register3
multiply Register1 with Register4
multiply Register1 with Register5
multiply Register1 with Register6
...

যেহেতু তাদের প্রত্যেকেরই আলাদা নির্দেশনা রয়েছে, সেগুলির প্রত্যেকটিই লিখতে হবে। সুতরাং আপনার প্রয়োজনীয় প্রোগ্রাম মেমরি বিস্ফোরিত হয়। এটি উপলব্ধি করার পরে, আপনি কিছু নির্দেশাবলীর মতো পরিচয় করিয়ে দিতে চাইবেন multiply register1 with register(2 to 256),। তবে আপনি কখন থামবেন, আপনি কি সমস্ত সংমিশ্রনের জন্য কোনও নির্দেশনা সরবরাহ করবেন?

সুতরাং সম্ভবত বর্তমানে আমাদের কাছে পাওয়া সংখ্যাগুলি হ'ল ব্যয়, জটিলতা এবং উপযোগিতার মধ্যে একটি দুর্দান্ত বাণিজ্য।


1
আমি মনে করি প্রোগ্রামটি multiply Register1 with Register2 multiply Register1 with Register3খুব অবাস্তব, কারণ তথ্য অবশ্যই কম্পিউটারের বাইরে থেকে প্রত্যক্ষ বা অপ্রত্যক্ষভাবে এসেছিল, তাই রেজিস্টারগুলি লোড করা দরকার, এবং ফলাফলগুলি কোথাও, প্রত্যক্ষ বা অপ্রত্যক্ষভাবে ব্যবহার করা দরকার, সুতরাং নিবন্ধগুলি সংরক্ষণের প্রয়োজন। বাস্তবে, উচ্চ-স্তরের ভাষার জন্য একটি শালীন অপ্টিমাইজ করা সংকলক দ্বিতীয় প্রোগ্রামের মতো কিছু তৈরি করতে প্রথম প্রোগ্রামটির লুপটিকে 'আনারোল' করে দেবে, নিবন্ধকের ব্যবহার, মেমরি ল্যাটেন্সি, সম্ভবত ক্যাশে দখল এবং সম্পাদনের গতি।
গলবারের

1
অনেকগুলি বিশেষ উদ্দেশ্যে multiply register1 with register(2 to 256)নির্দেশের প্রয়োজন নেই । পাইপলাইনিং বিশেষত সহজতর নির্দেশাবলী ডিকোড করতে এবং সম্পাদন করার জন্য সিপিইউ থ্রুটপুটকে উল্লেখযোগ্যভাবে উন্নত করে। সুতরাং জটিল, ব্যাপক বিভিন্ন নির্দেশাবলীর প্রভাব উচ্চতর প্রয়োগের হারের সাথে একাধিক সহজ নির্দেশাবলী ব্যবহার করে অর্জন করা যেতে পারে। সংখ্যক বেশি রেজিস্ট্রার থাকা সংকলককে অনেকগুলি স্বতন্ত্র নির্দেশনা (যাঁরা কোনও নিবন্ধ ভাগ করেন না) তৈরি করতে সহায়তা করে, যা স্বাধীনভাবে সম্পন্ন হতে পারে, থ্রুপুট উন্নত করে। আপনার উদাহরণ = আরও রেজিস্টার ভাল।
gulmermer

4

নিবন্ধগুলি খুব ব্যয়বহুল। খুবই মূল্যবান. এটি নিজেরাই নিবন্ধভুক্ত হয় না, এটি রেজিস্ট্রি থেকে এবং সমস্ত সংযোগ। বলুন আপনার কাছে একটি নির্দেশিকা রেজি 1 = রেজি 2 + রেজি 3 রয়েছে। এই দ্রুত প্রয়োগ করার জন্য , আপনাকে একটি চক্রের দুটি রেজিস্ট্রার থেকে ডেটা পড়তে হবে এবং দ্বিতীয় চক্রের অন্য রেজিস্টারে লিখিত হতে হবে। এখন যদি আপনার কাছে এমন একটি প্রসেসর রয়েছে যা চক্র প্রতি একাধিক নির্দেশনা কার্যকর করতে পারে, তিনটি নির্দেশিকা বলুন, আপনার প্রতিটি চক্রের ছয়টি রেজিস্ট্রার থেকে ডেটা পড়তে এবং 3 টি রেজিস্টারে ডেটা লিখতে সক্ষম হতে হবে। এটি একটি ভয়ঙ্কর, খুব দ্রুত সংযোগগুলির একটি ভয়ঙ্কর।

অবশ্যই আপনি আরও ট্রানজিস্টর ব্যবহার করতে পারেন। সমস্যা হ'ল: গতি কমে যায়। আরও রেজিস্টার থেকে বেছে নিতে আপনার আরও হার্ডওয়ারের প্রয়োজন। রেজিস্টার ফাইলের জন্য স্থানটি বড় হয়। সবকিছু ধীর করে দেয় All সুতরাং একই প্রযুক্তির সাহায্যে আপনি ১ 16 টি রেজিস্টার করতে পারবেন এবং ২,6০০ মেগাহার্টজ এ চালাতে পারবেন বা ৩২ টি রেজিস্টার রাখতে পারবেন এবং ২,৪০০ মেগাহার্টজ এ চালাতে পারবেন। এখন অতিরিক্ত রেজিস্টারগুলি অবশ্যই ঘড়ির গতিতে উল্লেখযোগ্য পরিমাণে নেমে যেতে হবে।


2

রেজিস্টারের সংখ্যাকে কী কারণ প্রভাবিত করেছে

- মেমরি হায়ারার্কি

রেজিস্টার, ক্যাশে, র‌্যাম সবই বিভিন্ন স্টোরেজ প্রযুক্তির সাথে প্রয়োগ করা হয়।

বিভিন্ন প্রযুক্তি পৃথক পৃথক

  1. অ্যাক্সেস বার
  2. মূল্য
  3. ঘনত্ব

একটি উদাহরণ: একটি সিপিইউতে প্রাপ্ত অভ্যন্তরীণ রেজিস্ট্রিগুলি হ'ল স্ট্যাটিক র‌্যান্ডম অ্যাক্সেস মেমোরি , অন্যদিকে কম্পিউটারের প্রধান মেমরি ডায়নামিক র‌্যান্ডম অ্যাক্সেস মেমরি

একটি স্ট্যাটিক র‌্যাম বাইনারি সেল একটি 6-ট্রানজিস্টর সার্কিট ব্যবহার করে প্রয়োগ করা হয় যখন একটি গতিশীল র‌্যাম বাইনারি সেল ক্যাপাসিটার এবং ট্রানজিস্টর ব্যবহার করে প্রয়োগ করা হয়। এসআরএএম এবং ডিআরএএম তুলনা করা

  • এসআরএএম মেমরি ডিআরএএম মেমরির চেয়ে অনেক দ্রুত [ডিআআরএএম এর তুলনায় এসআরএমে অ্যাক্সেস করার কয়েকটি চক্র]
  • এসআরএএম সার্কিট ডিআআরএএম এর চেয়ে কম শক্তি খরচ করে
  • ডিআআরএএম-এর মাঝে মাঝে এসআরএমের বিপরীতে মেমরির প্রতিটি বিট সতেজ করা প্রয়োজন
  • SRAM এর দাম DRAM এর চেয়ে বেশি
  • ডিআআরএএম এর তুলনায় এসআরএএম এর ঘনত্ব কম রয়েছে

সুতরাং এটি দ্রুত, ব্যয়বহুল, কম ঘনত্বের মেমরির সংখ্যা বাড়ানোর পক্ষে ব্যবহারিক জিনিস নয়। প্রকৃতপক্ষে আমরা তাদের কয়েকটি ব্যবহার করতে পারি এবং একটি ভাল লিখিত প্রোগ্রাম এই দ্রুত রেজিস্টারে খুব ঘন ঘন ব্যবহৃত ডেটা সংরক্ষণ করবে যখন কম ঘন ঘন ব্যবহৃত ডেটা ধীর মেমরিতে সংরক্ষণ করা হয়।

- নির্দেশের দৈর্ঘ্য

নিবন্ধগুলির ঠিকানা একটি নির্দেশের মধ্যে অন্তর্ভুক্ত করা হয়, যা ঠিকানার সংখ্যার উপর ভিত্তি করে অ্যাক্সেসযোগ্য নিবন্ধকের সংখ্যা সীমাবদ্ধ করে। এমআইপিএস আর্কিটেকচারের উদাহরণস্বরূপ, 32-বিট দৈর্ঘ্যের নির্দেশ অ্যাক্সেসযোগ্য রেজিস্টারগুলির ঠিকানা উপস্থাপনের জন্য কেবল 5-বিট ধারণ করে যা নিবন্ধকদের সংখ্যা 2 5 = 32 রেজিস্টারে সীমাবদ্ধ করে । সমস্ত রেজিস্টার অ্যাক্সেস করতে পারে এমন পর্যাপ্ত বিট অন্তর্ভুক্ত করার জন্য নিবন্ধের সংখ্যা বাড়ানোর জন্য নির্দেশের দৈর্ঘ্য বাড়ানো দরকার।


2

যদি আপনার কোনও প্রসেসরের নির্দেশের সেটটি একবার দেখে থাকে তবে সেগুলি গ্রুপ করার বিভিন্ন উপায় রয়েছে। উদাহরণস্বরূপ, সমস্ত ADDনির্দেশাবলী একত্রে এবং সমস্ত XORনির্দেশাবলী একত্রে গ্রুপিত করা যেতে পারে ।

একই নির্দেশিকার প্রতিটি গ্রুপের মধ্যে, এমন সংস্করণ থাকতে পারে যা মেমরি বা রেজিস্টারগুলিতে কাজ করে। এটি এই উপ-গোষ্ঠীকরণ যা প্রসেসরের যে রেজিস্টারগুলি কার্যকরভাবে সংজ্ঞা দেয়।

একটি 8-বিট অনুমানমূলক উদাহরণ হিসাবে, আসুন আমরা $Axনির্দেশাবলী নির্দেশাবলী হতে পারে এবং ADDনির্দেশাবলী $Cxহতে পারে XOR। এই নকশাটি দিয়ে অপারেন্ডগুলি সংজ্ঞায়িত করতে কেবল চারটি বিট বাকি রয়েছে!

  • একজনের কেবলমাত্র চারটি সাধারণ উদ্দেশ্যে রেজিস্টার থাকতে পারে এবং একটি সংজ্ঞায়িত করতে দুটি বিট এবং অন্যটিকে সংজ্ঞায়িত করতে দুটি বিট ব্যবহার করতে পারেন।
  • অথবা, কেউ "বিবিধ" বৈকল্পিকগুলির মধ্যে পার্থক্য করার জন্য প্রথম বিট ব্যবহার করতে পারে এবং অন্য 3 টি বিট সংযোজকটির সাথে পরিচালিত আটটি রেজিস্ট্রারের মধ্যে কোনটি নির্ধারণ $x0করতে পারে ( নিজেই সঞ্চালক হতে পারে)।
  • অথবা, একজনের এই সংখ্যার চেয়ে বেশি রেজিস্টার থাকতে পারে - তবে কোন রেজিস্ট্রারগুলি সীমাবদ্ধ তা সীমাবদ্ধ করুন limit

অবশ্যই, আমরা অতীতে 8-বিট নির্দেশিকা সেট করেছি। তবে তবুও, এই যুক্তিটি অতীতে নিবন্ধগুলি নির্ধারণ করতে সহায়তা করেছিল - এটি ভবিষ্যতে এটি চালিয়ে যেতে থাকবে।

সম্পাদনা (অনুরোধ হিসাবে)

শীর্ষ চার বিট নির্দেশ জন্য বলুন, ADD, SUB, XOR, MOV, CMPইত্যাদি 16 সম্ভাবনার এখানে আছে। তারপরে, সেই নির্দেশাবলীর জন্য যেখানে নিবন্ধভুক্ত-নিবন্ধনটি বোঝায় (উদাহরণস্বরূপ ADD Rx,Ry), আপনাকে নির্দিষ্ট করতে হবে Rxএবং Ry। আগামী দুই বিট জন্য বলুন x, এবং শেষ দুই জন্য হয় y। এভাবে:

ADD R1, R2  =>  'ADD' + 'R1' + 'R2' => $A0 + $04 + $02

এই যেমন একটি রেজিস্টার সংজ্ঞায়িত করার জন্য মাত্র দুটি বিট, আপনার কাছে মোট চারটি নিবন্ধকের জন্য জায়গা রয়েছে!

একদিকে যেমন, আপনি খেয়াল করবেন যে কিছু নিবন্ধের সংমিশ্রণগুলি অর্থবোধ করে না। উদাহরণস্বরূপ, MOV Rx, Rx(কিছুই করে না) এবং SUB Rx, Rx(সর্বদা উত্পাদন করে 0)। এগুলি বিশেষ ক্ষেত্রে নির্দেশাবলী হয়ে উঠতে পারে:

  1. SUB Rx, Rxহয়ে উঠতে পারে NOT Rx- একক অপারেন্ড নির্দেশ।
  2. MOV Rx, Rxএমন MOVনির্দেশে পরিণত হতে পারে যা তাত্ক্ষণিক মান হিসাবে দ্বিতীয় বাইট নেয়, হিসাবে ব্যাখ্যা করা MOV Rx, #$yy

প্রোগ্রামারারের জন্য বৃহত্তর নির্দেশের সেট সরবরাহের জন্য আপনি অন্যথায়-অকেজো বা অ-সংবেদনশীল নির্দেশাবলীর জন্য গর্ত পূরণ করে, নির্দেশের মানচিত্রটি দিয়ে "খেলতে" পারেন can তবে শেষ পর্যন্ত নির্দেশিকাটি রেজিস্টার সেটটিকে সংজ্ঞায়িত করে।


আমি এখনও বিভ্রান্ত হয়েছি, আপনি কী ব্যাখ্যা করতে পারবেন কীভাবে কেবলমাত্র 4 টি বিট অপারেশনগুলিতে ছেড়ে যায়?
দর্শন চৌধুরী

আমার আপডেট হওয়া উত্তরটি দেখুন
জন বার্গার

1
IMHO এই উত্তরটি " অনুমানমূলক উদাহরণটি একটি 8-বিট নির্দেশিকা সেট ধরে " প্রশ্নের শুরুতে সরিয়ে নিয়ে উল্লেখযোগ্যভাবে উন্নত হবে । আমি এটি অনুধাবন করার চেষ্টা করে সময় নষ্ট করলাম, এটি কেবলমাত্র 8-বিট, নির্দিষ্ট দৈর্ঘ্যের নির্দেশের জন্যই বোধগম্য হয়েছিলাম, তারপরে এটি পড়তে পড়তে পড়ুন। আইএমএইচও, সেই ধরণের নির্দেশিকা সেট প্রশ্নের প্রসঙ্গে খুব অপ্রাসঙ্গিক নয়; এর পুরো ঠিকানার স্থানটি দৃly়ভাবে স্থির র‌্যামের সাথে মিলিত হতে পারে। আমি আরও মনে করি যে অংশটি শুরু হচ্ছে " কিছু নিবন্ধভুক্ত সমন্বয়গুলি বোঝায় না ... " প্রশ্নের সাথে প্রাসঙ্গিক নয়, এবং মোছা হতে পারে। আমার $ 0.02
গ্লামার

-2

ইন্টেল আজকাল হাজার হাজার রেজিস্টার ব্যবহার করছে - প্রতি সিপিইউ কোরে কয়েকশত নিবন্ধক। তবে সিপিইউতে থাকা সর্বাধিক পরিমাণে ডেটা ক্যাশে, যা পরোক্ষভাবে প্রশ্নের উত্তর দেয়। ক্যাশে স্তরগুলিতে একটি ছোট দ্রুত L1 ক্যাশে এবং আরও ধীর L2 এবং L3 ক্যাশে সহ সংগঠিত হয়। এক অর্থে নিবন্ধকের ফাইলটি L0, এটি L1 এর চেয়ে দ্রুত কিন্তু আরও ছোট। সুতরাং, আপনি নিবন্ধকের সংখ্যা বাড়াতে পারেন, তবে এটি সম্ভবত তাদের ধীর করে দেবে।

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