8-বিট প্রসেসর কীভাবে 256 বাইট র‌্যামের বেশি সমর্থন করতে পারে?


14

যদি কোনও 32- বিট প্রসেসর প্রায় 4 GiB র‌্যাম (যেমন 232=4294967296 ) বাইটগুলি পরিচালনা করতে পারে তবে আমার আরডুইনো মেগা 2560 এ 8 কিবি এসআরএম কেন থাকবে, যদি 8- বিট প্রসেসর হওয়ার কারণে এটি কেবল 256 হ্যান্ডেল করতে দেয়? বাইটস ( 28 )? নাকি আমি নীচের পৃষ্ঠাটি ভুল পড়ছি?

http://www.atmel.com/devices/atmega2560.aspx?tab=parameters


5
অবশ্যই কোনও টিউরিং-সম্পূর্ণ মেশিন পর্যাপ্ত সময় দেওয়া প্রায় কোনও আকারের ম্যামকে সম্বোধন করতে সক্ষম।
জন ইউ

2
প্রকৃতপক্ষে কোনও প্রসেসরের নামের বিটের সংখ্যা কেবলমাত্র অভ্যন্তরীণ ডেটার প্রস্থের একটি সম্মুখ-পূর্ব অনুমানের জন্য ব্যবহার করা যেতে পারে। 8088 এটি একটি 16-বিট প্রসেসর কারণ এটির 16-বিট রেজিস্টার রয়েছে তবে এতে একটি 8-বিট ডেটা বাস এবং একটি 20-বিট অ্যাড্রেস বাস রয়েছে। 68000 হ'ল একটি 32-বিট প্রসেসর সাধারণত 32 / বিট রেজিস্টারের কারণে 16/32-বিট নামে পরিচিত তবে এতে একটি 16-বিট ডেটা বাস এবং একটি 24-বিট ঠিকানা বাস রয়েছে। ছোট এআরএম বাস্তবায়নগুলি 32-বিট প্রসেসর (32-বিট রেজিস্টার এবং ডেটা-বাস) তবে তারা ঠিকানার জন্য 32 বিট ব্যবহার করলেও তারা মোট 4 জিবি সম্বোধন করতে পারে না।
ব্যস্তবী

আমি এই ইউনিটগুলির জন্য সঠিক এসআই উপসর্গ যুক্ত করেছি। হ'ল গিবি (জিআই) এবং 2 10 হ'ল কিবি (কি)। 230210
এলিয়ট অলডারসন

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

8-বিট, 16-বিট, 32-বিট ইত্যাদির মতো কোনও কিছুকে বিপণন শব্দ বলতে বলা হয়, ইঞ্জিনিয়াররা এটিকে ব্যবহার করে তবে বুঝতে পারে না যে প্রসেসরের প্রতিটি জিনিসই সেই প্রশস্ত নয়। কিছু লোক নির্দেশের আকার ব্যবহার করে, সাধারণত প্রায়শই সাধারণ উদ্দেশ্যে নিবন্ধকের আকার ব্যবহৃত হয় sometimes আপনার কাছে এমন প্রোগ্রামের কাউন্টার রয়েছে যা সর্বদা অ্যাক্সেসযোগ্য না থাকে বা নির্দেশাবলীতে ব্যবহারযোগ্য হয় যাতে তারা যতটা চাই তার বিস্তৃত হতে পারে। তারপরে অনেকগুলি এভিআর টাইপ প্রসেসরের মতোই কোনও মাল্টি রেজিস্টার বা পেজিং স্কিম বা উভয়ই ডেটা লেনদেনের জন্য আরও বেশি লোড / স্টোরের ঠিকানা পেতে পারে।
old_timer

উত্তর:


19

বেশিরভাগ 8 বিট সিপিইউতে 16 বিট অ্যাড্রেস বাস রয়েছে যা তাদের 64kbytes ঠিকানার অনুমতি দেয়, অবশ্যই কারণ 256 বাইট সত্যিই খুব বেশি করার পক্ষে যথেষ্ট নয়! এর অর্থ হ'ল প্রতিবার ঠিকানা লোড করার জন্য তাদের একটির পরিবর্তে দুটি বাইট লোড করা দরকার। তাদের আকার বিবেচনা করে কিছুটা ধীরে ধীরে তবে সহনীয়।

(এবং হ্যাঁ অনেকগুলি ব্যতিক্রম রয়েছে, বেশিরভাগ ক্ষেত্রে developed৪ কে খুব ছোট হয়ে ওঠার পরে বিকশিত হয়, তবে আমরা এখানে মূল ধারণা সম্পর্কে কথা বলছি)।


আসলে আমি যে 8-বিট মাইক্রোকন্ট্রোলারের মুখোমুখি হয়েছি তাদের
বেশিরভাগের

@ ব্রায়ান ড্রামন্ড আমি কি সঠিক: কন্ট্রোলার প্রথমে নিম্ন 8 টি বিট লিখবে তারপরে উপরের 8 টি বিট লিখবে এবং তারপরে ঠিকানার বাসটি চাপবে। এভাবেই এটি 16 বিট ঠিকানা বাসে প্রবেশ করবে!
সোয়ানন্দ

বা উপরের 8 বিটগুলি পরে 8 টি বিট কম হবে তবে মূলত হ্যাঁ, এটিই ধারণা।
ব্রায়ান ড্রামমন্ড

7

ঠিকানা বাস এবং তথ্য বাস পৃথক করা হয় যাতে তারা বিভিন্ন আকারের হতে পারে। যে কোনও নির্দিষ্ট ঠিকানা বাসের আকারের জন্য নিবন্ধের বিট প্রস্থের চেয়ে বেশি মেমরির সম্বোধন করার জন্য অনেক কৌশল রয়েছে

  • সর্বাধিক সাধারণ উপায় হ'ল ঠিকানা বাসের প্রস্থকে কোনওভাবে বাড়ানো

    • ঠিকানার জন্য একাধিক নিবন্ধ ব্যবহার করে

      • এভিআর R26..R31 যে 16 বিট মধ্যে যুক্ত করা যাবে না X, Yএবং Zরেজিস্টার অ্যাড্রেসিং RAM এর সর্বোচ্চ 64KB করার অনুমতি ডেটা। পালাক্রমে সেই সঙ্গে জোটবদ্ধ হতে পারে RAMPX, RAMPY, RAMPZবড় সংস্করণ উচ্চতর র্যাম ঠিকানাগুলি অ্যাক্সেস করতে। এছাড়া রয়েছে SPHছাড়াও স্ট্যাক পয়েন্টার উচ্চ বাইট জন্য SPLর্যাম বেশি 256 বাইট সঙ্গে রূপগুলো মধ্যে 1
      • ইন্টেল 8080 এবং Zilog Z80 8-বিট CPU- র, কিন্তু তারা মত রেজিস্টার জোড়া আছে H& L, B& C, D& Eএকটি 16 বিট ঠিকানা রেজিস্টার হিসেবে একসঙ্গে ব্যবহার করা যেতে পারে
    • সম্বোধনের জন্য প্রাকৃতিক আকারের চেয়ে বড় একক বিশেষ রেজিস্টার ব্যবহার করে

      • ইন্টেল 8051 একটি 8-বিট মাইক্রোকন্ট্রোলার, অর্থাৎ এটিতে 8-বিট ডেটা ঠিকানা রয়েছে। তবে এটিতে 16-বিট নির্দেশিকা ঠিকানা ব্যবহার করা হয়েছে এবং এতে 2 16-বিট রেজিস্টার রয়েছে: নির্দেশের জায়গায় ঠিকানা দেওয়ার জন্য পিসি এবং ডিপিটিআর।
      • এভিআর একটি 16 বা 22-বিট পিসি রেজিস্টার আছে
    • ঠিকানার উচ্চ অংশের জন্য একটি বিশেষ রেজিস্টার ব্যবহার করে । কিছু স্মৃতি সম্বোধনের সময়, ডিফল্টরূপে ঠিকানার 8 কম বিটগুলি 8-বিট তাত্ক্ষণিক বা 8-বিট মাইক্রোকন্ট্রোলারে 8 বিট নিবন্ধক থেকে নেওয়া হবে, যেখানে উচ্চ বিটগুলি অন্য ঠিকানা নিবন্ধকের মান দ্বারা প্রতিস্থাপন করা হবে।

      • এর একটি বিশেষ কেসটি সেগমেন্টেড মেমরি যা 16-বিট x86 দ্বারা ব্যবহৃত হয় । এই কৌশলটিতে মেমরিটি আকারের 64KB (2 16 বাইট) এর একাধিক বিভাগে বিভক্ত । সাধারণ অ্যাক্সেস ডিফল্টরূপে একক সেগমেন্টের ভিতরে থাকে তাই তারা কাছের ডেটার জন্য 16-বিট ঠিকানা ব্যবহার করতে পারে । আরও পৃথক করা ডেটা অবশ্যই বিভাগের মান দ্বারা বিশেষভাবে সম্বোধন করা উচিত, অতএব 2 টি রেজিস্টার অবশ্যই বেশি সম্বোধনের জন্য ব্যবহার করা উচিত।
      • আমাদের PIC মাইক্রোকন্ট্রোলার , যার বেসলাইন ও মধ্য পরিসীমা সিরিজের 13 বা 14-বিট ঠিকানা থাকতে পারে, অন্য একটি উদাহরণ। ব্যবহার callবা gotoনির্দেশ দেওয়ার সময়, ঠিকানার 8 বা 9 কম বিটগুলি তাত্ক্ষণিকভাবে নির্দেশিত হয় এবং বাকিগুলি বর্তমান প্রোগ্রামের কাউন্টার থেকে নেওয়া হয়। সুতরাং বর্তমান বিভাগের কাছাকাছি না এমন কিছু অ্যাক্সেস করতে কেবলমাত্র 1 টি নির্দেশনা ব্যবহার করা হয়েছে, অন্য ঠিকানাগুলিতে 2 টি নির্দেশাবলীর প্রয়োজন হবে (উচ্চ বিট সেট করতে)।
      • আর একটি উদাহরণ হ'ল এমআইপিএস আর্কিটেকচার যা নিচু 26 বিট অবিলম্বে ঠিকানাটি PCনিঃশর্তভাবে জাম্প করার সময় থেকে উচ্চ 6 বিটের সাথে সংযুক্ত করে ।
  • এটি অর্জনের আরেকটি উপায় হ'ল মেমোরি ব্যাংকিং । এটি একটি দরকারী পদ্ধতি যা আজকাল কিছু আর্কিটেকচারে ব্যবহৃত হচ্ছে। এই মডেলটিতে, স্মৃতি একাধিক ব্যাঙ্কে বিভক্ত । প্রতিবার আপনি কেবল একটি নির্দিষ্ট ব্যাঙ্ককে সম্বোধন করতে পারেন। প্রায়শই কোনও গ্লোবাল ব্যাংক বা ঠিকানা ব্যাপ্তি থাকে যা যে কোনও সময় সর্বদা দৃশ্যমান হয়, তবে অন্যান্য অংশগুলির জন্য আপনাকে যখন প্রয়োজন হয় তখন আপনাকে অবশ্যই ব্যাংকটি পরিবর্তন করতে হবে।

    • ইন্টেল 8051 নিবন্ধকদের জন্য মেমরি ব্যাংকিং ব্যবহার করে। এটিতে 32 টি নিবন্ধ রয়েছে তবে সেগুলির মধ্যে কেবল 8 টি একবারে দৃশ্যমান।
    • x86 PAE এবং এআরএম এলপিএই , বড় ফিজিকাল অ্যাড্রেস স্পেসটি একটি ছোট ভার্চুয়াল অ্যাড্রেস স্পেসে ম্যাপ করা হয়েছে
    • এর জন্য আর একটি অ্যাপ্লিকেশন হ'ল উইন্ডোজের অ্যাড্রেস উইন্ডোইং এক্সটেনশনগুলি যা 2/3 জিবি মেমরিরও বেশি অ্যাক্সেসের জন্য পিএই মোডে 32-বিট x86 অ্যাপ্লিকেশন ব্যবহার করতে পারে। এটি ঠিক মাইক্রোকন্ট্রোলারগুলিতে মেমরি ব্যাঙ্কের মতো নয় তবে এর মতো দেখা যায়, কারণ বড় ঠিকানা সীমাটি ছোট উইন্ডো / ব্যাঙ্কগুলিকে ভাবতে পারে যা অ্যাপ্লিকেশানের ঠিকানার জায়গাতে ফিট করার পক্ষে যথেষ্ট ছোট। যদি অ্যাপ্লিকেশনটিকে কোনও উইন্ডোতে ডেটা ব্যবহারের প্রয়োজন হয় তবে এটি সেই উইন্ডোটিকে তার বর্তমান ঠিকানা জায়গাতে ম্যাপ করবে।
    • ডসের কিছু প্রকারের ব্যাংক স্যুইচিং যেমন প্রসারিত মেমরি বা বর্ধিত মেমরির সীমিত সীমার পরিমিত ঠিকানা থাকার কারণে রয়েছে address
  • একটি খুব সাধারণ কৌশল নেই তবে এটি ইন্টেল 8051 এ পাওয়া যাবে । 8-বিট ডেটা ঠিকানা সহ একটি মাইক্রোকন্ট্রোলার হিসাবে এটির সর্বাধিক 256 ঠিকানা থাকতে পারে। আসল র‌্যামের ঠিকানা কেবল 128 বাইটের মধ্যে সীমাবদ্ধ করে স্পেশাল ফাংশন রেজিস্টার ( এসএফআর ) এর অর্ধেক স্থান (উচ্চ অংশ) ব্যবহৃত হয় । তবে আধুনিক ৮০৫১ সিরিজের 'নির্মাতারা মেমরি অ্যাক্সেসকে আলাদা করে এটিকে কাটিয়ে উঠার জন্য একটি চতুর উপায় খুঁজে পেয়েছেন । ডাইরেক্ট অ্যাড্রেসিং এসএফআর অ্যাক্সেস করার সময় অপ্রত্যক্ষভাবে সম্বোধন করলেও রেজিস্টাররা র‌্যামের উচ্চ অংশ অ্যাক্সেস করতে পারবেন যার অর্থ এখন আপনার কাছে 256 + 128 = 384 অ্যাড্রেসযোগ্য বাইট রয়েছে।


1 https://en.wikedia.org/wiki/Atmel_AVR_in تعمیر_set# মেমরি_ড্রেসিং_ইনস্ট্রাকশনস

ক্ষুদ্রতম কোরগুলিতে ডেটা অ্যাড্রেস স্পেসের 256। বাইট থাকে (মানে I / O পোর্টগুলি এবং অন্যান্য সংরক্ষিত ঠিকানাগুলি সরিয়ে দেওয়ার পরে র‌্যামের 128 বাইট) এবং প্রোগ্রাম রমের ≤8192 বাইট (8 কিবি)। এগুলিতে কেবল একটি 8-বিট স্ট্যাক পয়েন্টার রয়েছে (এসপিএলে), এবং কেবল 12-বিট আপেক্ষিক জাম্প / কল নির্দেশাবলী আরজেএমপি / আরসিএলএল সমর্থন করে। (কারণ এভিআর প্রোগ্রামের কাউন্টারটি বাইট নয়, 16-বিট শব্দ গণনা করে, 12-বিট অফসেটটি রমের 213 বাইট সম্বোধন করার জন্য যথেষ্ট))

উপলভ্য সংস্থানগুলিতে অ্যাক্সেস করার জন্য অতিরিক্ত মেমরি সম্বোধনের ক্ষমতা উপস্থিত রয়েছে:

  1. > 256 বাইটের ডেটা অ্যাড্রেস স্পেসের (256 বাইট র‌্যামের) সাথে মডেলগুলির 16-বিট স্ট্যাক পয়েন্টার রয়েছে, এসপিএইচ রেজিস্টারে উচ্চ অর্ধেক থাকে।
  2. > 8 কিবি অফ রমযুক্ত মডেলগুলি 2-শব্দ (22-বিট) JUMP এবং কল নির্দেশাবলী যুক্ত করে। (কিছু শুরুর মডেল যদি কোনও 2-শব্দের নির্দেশিকা অনুসরণ না করে তবে এড়িয়ে চলুন an
  3. > ROM এর 64৪ কিবিযুক্ত মডেলগুলি ELPM নির্দেশনা এবং সংশ্লিষ্ট RAMPZ নিবন্ধক যুক্ত করে। এলপিমের নির্দেশাবলী জেড-এ রমের ঠিকানা শূন্য-প্রসারিত করুন; ELPM নির্দেশাবলী উচ্চ বিট জন্য RAMPZ রেজিস্ট্রার preend। এটি আরও সাধারণ এলপিএম নির্দেশের মতো নয়; ELPM (এটিমেগা 103 এবং at43usb320) এর শূন্য অপারেন্ড ফর্ম সহ "ক্লাসিক" মডেল রয়েছে। যখন অটো-ইনক্রিমেন্ট পাওয়া যায় (বেশিরভাগ মডেল), এটি র‌্যামপিজেড সহ পুরো 24-বিট ঠিকানা আপডেট করে।
  4. (বিরল) রমগুলির 128 কিবি সহ মডেলগুলির একটি 3 বাইট প্রোগ্রামের কাউন্টার রয়েছে। সুব্রুটাইন কল এবং রিটার্নগুলি স্ট্যাক স্পেসের অতিরিক্ত বাইট ব্যবহার করে, ইন্ডিয়ারেক্ট জাম্প এবং কলগুলির জন্য অতিরিক্ত উচ্চ বিট সরবরাহ করার জন্য একটি নতুন EIND রেজিস্টার রয়েছে এবং সেখানে নতুন বর্ধিত নির্দেশাবলী রয়েছে EIJMP এবং EICALL যা EIND: Z ব্যবহার করে গন্তব্য ঠিকানা হিসাবে। (পূর্ববর্তী আইজেএমপি এবং আইসিএএলএল নির্দেশাবলী শূন্য-বর্ধিত জেড ব্যবহার করে)
  5. (বিরল) মডেলগুলি> 64 কিবি র‌্যামের ঠিকানা স্পেসটি 16-বিট র‌্যামের ঠিকানা সীমাটি র‌্যামপএক্স, র‌্যামপিওয়াই, র‌্যামপিজেড এবং র‌্যামপিডি রেজিস্টারের সাথে প্রসারিত করে। এগুলি যথাক্রমে এক্স, ওয়াই, বা জেড রেজিস্টার জুড়ি ব্যবহার করে এমন মোডে অ্যাড্রেস করার জন্য অতিরিক্ত উচ্চ বিট সরবরাহ করে বা সরাসরি ঠিকানা নির্দেশনা এলডিএস / এসটিএস দেয়। রম অ্যাক্সেসের বিপরীতে, কোনও স্বতন্ত্র "বর্ধিত" নির্দেশাবলী নেই; পরিবর্তে র‌্যামপ নিবন্ধগুলি নিঃশর্ত ব্যবহৃত হয়।

6

প্রায় 8-বিট প্রসেসরের লো-অর্ডার অংশ এবং একটি উচ্চ-অর্ডার অংশ থেকে 16-বিট ঠিকানা তৈরি করার কিছু ক্ষমতা রয়েছে। আসল ৮০৮০ সহ কিছু প্রসেসরের উপর, কোনও ঠিকানার উপরের এবং নীচের অংশটি ধরে রাখার জন্য নিবেদিত নিবন্ধগুলি রয়েছে (যদিও প্রোগ্রামারের দিক থেকে 8080 এর স্ট্যাক পয়েন্টারের মতো কিছু রেজিস্টার থাকতে পারে যা তাদের আলাদাভাবে সম্বোধনের নির্দেশনা দেয় না)। অন্য কয়েকটি প্রসেসরে, কোনও ঠিকানার উপরের বা নীচের অর্ধেকের জন্য নিবন্ধীকৃত নিবন্ধগুলি নেই, তবে ঠিকানাগুলি "উড়ানের দিকে" একত্র করা হয়। উদাহরণস্বরূপ, 6502-তে, "এলডিএ $ 1234, এক্স" নির্দেশিকা 8 বিট এক্স রেজিস্টারে 1234 ডলার যোগ করে গঠিত ঠিকানাটি দিয়ে সংযোজককে লোড করে [মনে করুন এটিতে $ F0 রয়েছে]। এই নির্দেশের প্রয়োগ 4 বা 5 পদক্ষেপে এগিয়ে যেতে পারে:

  1. পূর্ববর্তী নির্দেশনা (যদি থাকে) থেকে রেজিস্টার লেখার সমাপ্তি করুন এবং অপকোড ($ বিডি) লোড করুন
  2. নির্দেশনা ডিকোড করার সময় অপকোড অনুসরণ করে প্রথম অপারেন্ড বাইট আনুন (34))
  3. এক্স রেজিস্টারে পূর্বে আনা বাইট যুক্ত করার সময় দ্বিতীয় অপারেন্ড বাইট (12 ডলার) আনুন
  4. ALU ফলাফল [অর্থাৎ 1224 ডলার] এর দ্বিতীয় অপারেন্ড বেটে কনটেটেটিং ঠিকানায় মেমরি পড়ুন। শূন্য বা একটি যুক্ত যুক্ত করতে পূর্বের যোগটি ক্যারি তৈরি করেছে কিনা তার উপর নির্ভর করে দ্বিতীয় অপরেন্দ্র বাইটকে ALU এ খাওয়ান
  5. ALU ফলাফলের সাথে উপরের অর্ধেকটি প্রতিস্থাপনের দ্বারা গঠিত ঠিকানায় মেমরি পড়ুন [$ 1334]

রিড বাইটটি সংগ্রহকারীতে স্থানান্তর করা পরবর্তী নির্দেশাবলী আনতে ওভারল্যাপ করবে। অধিকন্তু, অনেকগুলি ক্রিয়াকলাপের জন্য, যদি পদক্ষেপ 3 কোনও বহন উত্পন্ন না করে, তবে চতুর্থ ধাপটি সঠিক ঠিকানাটি পড়তে পারত এবং কার্যকরভাবে পদক্ষেপ 5 ধাপে পাশের পদক্ষেপ 4 থেকে পরবর্তী নির্দেশে সরাসরি চলে যেতে পারে।

যদি কেউ ক্রিয়াকলাপগুলির ক্রম পরীক্ষা করে দেখেন তবে কেউ লক্ষ্য করবেন যে বেশিরভাগ ক্ষেত্রে (যেমন দেখানো হয়েছে তা নয়) যদিও সামান্য এন্ডিয়ান আর্কিটেকচারের একটি বড়-এন্ডিয়ান স্থাপত্যের একটি নির্দিষ্ট সুবিধা রয়েছে, যদিও ALU সঞ্চালনের জন্য একটি চক্র নেয় অতিরিক্ত হিসাবে, ALU ফলাফলের জন্য অপেক্ষা না করে গণিত ঠিকানা থেকে একটি বাইট পড়া সম্ভব, যেহেতু সাধারণত যে উচ্চ বাইটটি আনা হয়েছিল তা লক্ষ্য অপারেন্ডের উচ্চ বাইট হবে। একটি 8-বিট ALU সহ একটি বড়-এন্ডিয়ান মেশিনে, একটি ইনডেক্সযুক্ত লোড কমপক্ষে 5 টি চক্র গ্রহণ করতে পারে (যেহেতু ঠিকানার নীচের অর্ধেকটি পদক্ষেপ 3 না হওয়া পর্যন্ত পড়া হবে না, এবং এইভাবে 4 ধাপে গণনা করা হবে)।


আমার মনে আছে 8 বিট প্রসেসর এবং 1 মেগাবাইট মেমরির কম্পিউটারগুলির জন্য কয়েকটি বিজ্ঞাপন দেখছি। এটি সিপিইউতে দুটি 8-বিট রেজিস্টার ব্যবহার করে সম্পূর্ণ ঠিকানা তৈরি করতে সিপিইউতে নয় একটি 8-বিট রেজিস্টার ব্যবহার করে করা হয়েছিল।
ব্যবহারকারী 6030

@ ব্যবহারকারী 6030: এই জাতীয় জিনিসগুলি সম্পাদন করার বিভিন্ন উপায় রয়েছে। সাধারণত ঠিকানার জায়গার অংশগুলি "স্থির" হবে এবং অন্যরা ব্যাংক নির্বাচনযোগ্য হবে। কিছু ডিভাইস প্রোগ্রামারদের জন্য দুর্দান্তভাবে কাজ করে; অন্য অনেক, এত না।
সুপারক্যাট

6

ডেটাবাস লাইন (পিন) এবং ঠিকানা লাইন (পিন) সম্পূর্ণ পৃথক। সোজা কথায়, ডেটাবাস লাইনগুলি একসাথে একবারে স্থানান্তরিত হতে পারে এমন বিটগুলির সর্বাধিক সংখ্যা নির্ধারণ করে (এবং মেমরিতে সঞ্চিত) যেখানে ঠিকানা লাইনগুলি নির্বাচিত হতে পারে এমন সর্বাধিক সংখ্যক মেমরি "কোষ" নির্ধারণ করে।

এটি বেশিরভাগ ক্ষেত্রে একটি বিপণনের জিনিস ছিল যে 32-বিট x86 সিপিইউ 4 গিগাবাইটের বেশি র‍্যামকে সম্বোধন করতে পারে না। আমার কোথাও মনে আছে যে পেন্টিয়াম 4 সিপিইউতে A33-34 পিন ছিল।


1
আপনি সঠিক - PAE আরও র‌্যাম ব্যবহারের অনুমতি দিয়েছে, তবে এটি ডেস্কটপ উইন্ডোজে উপলভ্য ছিল না কারণ এটি কখনও ব্যবহার করেনি।
pjc50

264

x86 সিপিইউ অপারেটিং সিস্টেমে উল্লেখযোগ্য জটিলতা ছাড়াই 4 জিবি এর বেশি সম্বোধন করতে পারে না যা অন্যান্য আর্কিটেকচারে পোর্ট করে না।
কাজ

1
@ কাজ এআরএম 32-বিটের এলপিএই নামে একটি অনুরূপ বৈশিষ্ট্য রয়েছে যা অপারেটিং সিস্টেমটিকে 32
বিটেরও

3

এটি প্রায়শই সত্য যে ঠিকানাযোগ্য মেমরির আকার এবং অভ্যন্তরীণ নিবন্ধের আকারের মধ্যে কিছু সম্পর্ক রয়েছে যদিও বিভিন্ন কারণে সম্পর্কের ক্ষেত্রে ভিন্নতা রয়েছে। 256 বাইট অ্যাড্রেস স্পেসটি মাইক্রোপ্রসেসরের খুব প্রথম দিনগুলিতে খুব ছোট হিসাবে বিবেচিত হত, সুতরাং বেশিরভাগ আট বিট প্রসেসর 16 বিট (দুই বাইট) ঠিকানা তৈরি করেছিলেন, যা 64 কিলোবাইট সম্বোধন করেছিল। ব্যাংক স্যুইচিংয়ের সাথে, যদিও (আরও বেশি ঠিকানা লাইন তৈরি করতে প্রয়োজনীয়ভাবে নির্দিষ্ট I / O লাইন ব্যবহার করা হচ্ছে), আরও অনেক কিছু পাওয়া সম্ভব ছিল।

প্রথম 16 এবং 32 বিট প্রসেসরগুলিতে, অভ্যন্তরীণ ঠিকানা নিবন্ধগুলি যে ঠিকানাটি সম্বোধন করতে পারে তার সমস্ত জায়গায় পৌঁছানোর জন্য ডিভাইসে সবসময় পর্যাপ্ত পিন থাকে না। উদাহরণস্বরূপ, মোটোরোলা 68000 এ, 16 মেগাবাইট র‍্যামের ঠিকানা দেওয়ার জন্য কেবল পর্যাপ্ত ঠিকানা পিনগুলি (24) ছিল, যদিও অভ্যন্তরীণ ঠিকানা নিবন্ধগুলি 32 বিট প্রশস্ত ছিল wide


2

আপনি উল্লিখিত AVR নিয়ন্ত্রকদের জন্য আমি এই প্রশ্নের উত্তর দেব specifically অন্যান্য 8-বিট আর্কিটেকচারের জন্যও মূল নীতিটি সত্য।

এভিআরগুলি 8-বিট কোর হয় c এর অর্থ তাদের 8-বিট রেজিস্টার রয়েছে। যাইহোক, 8 বিট ব্যবহারযোগ্য পরিমাণ মেমরির অ্যাক্সেসের জন্য পর্যাপ্ত নয়। অতএব, এভিআর কোর 16 বিট পয়েন্টার রেজিস্টার হিসাবে মিলিত একটি নির্দিষ্ট সেট রেজিস্টার ব্যবহার করতে সক্ষম। R30 এবং r31 (এছাড়াও জেডএল এবং জেডএইচ হিসাবে এলিয়াস্ত) নিবন্ধগুলি এর জন্য উদাহরণ। তারা একসাথে জেড পয়েন্টার গঠন করে।

সমাবেশে 0x1234 ঠিকানায় একটি বাইট পড়ার মত দেখাচ্ছে:

ldi ZL, 0x34 ; Load r30 (ZL) with low byte of address
ldi ZH, 0x12 ; Load r31 (ZH) with high byte of address
ld r16, Z    ; Load byte to r16

এভিআর পরিবারে 3 টি নিবন্ধভুক্ত জুটি রয়েছে যা এর জন্য ব্যবহার করা যেতে পারে। এগুলিকে বিশেষভাবে এ জাতীয় ক্রিয়াকলাপের অনুমতি দেওয়ার জন্য হার্ডওয়্যারে নকশা করা হয়েছে।

সি এর মতো উচ্চ স্তরের ভাষায় প্রোগ্রাম করার সময়, সংকলক এই স্টাফটি পরিচালনা করে।


দ্রষ্টব্য: কিছু এভিআর এমনকি 64 কের চেয়ে বড় মেমরির আকারকে সমর্থন করে। এই নিয়ন্ত্রণকারীদের একটি বিশেষ ফাংশন রেজিস্টার রয়েছে যাতে অ্যাক্সেসের আগে ঠিকানার অতিরিক্ত বিট লেখা হয়। সুতরাং ঠিকানাটিতে নিম্নলিখিত বিটগুলি রয়েছে (এমএসবি থেকে এলএসবি):

বিশেষ ফাংশন রেজিস্টার (সাধারণত 1 বাইট), জেডএইচ (8 বিট), জেডএল (8 বিট)।


1

আতেলের 8 বিট এভিআর আসলে একটি 16 বিটের ডেটা ঠিকানা ব্যবহার করে। অন্যান্য অসংখ্য 16 বিট রেজিস্টার এবং এমনকি কিছু 16 বিট টাইমার রয়েছে। যেহেতু এটি শুধুমাত্র একটি 8 বিট প্রসেসর, এটি 16 বিট রেজিস্টার লোড করতে সাধারণত দুটি ঘড়িচক্র ব্যবহার করে।


1

উইকিপিডিয়া এটি বেশ ভাল ব্যাখ্যা করেছে:

আট-বিট সিপিইউ একটি 8-বিট ডেটা বাস ব্যবহার করে এবং তাই একক মেশিনের নির্দেশে 8 বিট ডেটা অ্যাক্সেস করতে পারে। ব্যবহারিক এবং অর্থনৈতিক বিবেচনার কারণে ঠিকানা বাসটি সাধারণত একটি ডাবল অক্টেট প্রশস্ত (অর্থাত্ 16 বিট) হয়। এটি বেশিরভাগ 8-বিট প্রসেসরের কেবলমাত্র 64 কেবি এর সরাসরি ঠিকানার স্পেস বোঝায়।


1

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

এইচপি 21 এমএক্স, এইচপি 1000: 16-বিট সিপিইউ, 16 এমবি থেকে মেমরি

PDP-11: 16-বিট সিপিইউ, 4 এমবি থেকে মেমরি

ভ্যাক্স -11 / 780: 32-বিট সিপিইউ, মেমরি 512 এমবি

ইত্যাদি।

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