একাধিক সিপিইউ / কোর একই র‌্যামে একসাথে অ্যাক্সেস করতে পারে?


16

আমার ধারণা এটিই ঘটবে:

  1. দুটি কোর যদি র‍্যামে একই ঠিকানাটি অ্যাক্সেস করার চেষ্টা করে, অন্যটি র‌্যামটি অ্যাক্সেস করার জন্য অপেক্ষা করতে হবে । দ্বিতীয় সময় প্রতিটি কোর একই ঠিকানায় অ্যাক্সেস করতে চেষ্টা করবে, তারা এখনও যে র্যাম ক্যাশে, তাই তারা তাদের নিজ নিজ অ্যাক্সেস করতে পারে থাকতে পারে ক্যাশে একযোগে

  2. যদি দুটি কোর একই র‍্যামে বিভিন্ন ঠিকানা অ্যাক্সেস করার চেষ্টা করে, তবে অন্যটি র‌্যামটি অ্যাক্সেস করার জন্য অপেক্ষা করতে হবে ।

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

সুতরাং, একাধিক সিপিইউ / কোর একই র‍্যাম একই সাথে অ্যাক্সেস করতে পারে, বা আমি যা বলছি তা সঠিক?


আপনি যে হার্ডওয়্যার স্তরটির কথা উল্লেখ করছেন আমি তার সাথে কথা বলতে পারব না, তবে আমি বলতে পারি যে রাম নিবিড় কাজগুলি কেবল ব্যবহারকে বিভক্ত করে মাল্টিপ্রসেসিংয়ের মাধ্যমে সহায়তা করা যেতে পারে; এটি র‌্যামে আপনার 500MB ডেটা প্রসেস হওয়া দরকার হলে সেই ডেটা / র‌্যামের 250mb একটি প্রম্পকে এবং 250 মিমি অন্যকে দিতে হবে এবং আপনি কার্যকরভাবে আপনার সম্ভাব্য থ্রুপুট দ্বিগুণ করেছেন (র‌্যাম ব্যান্ডউইথ বিধিনিষেধকে প্রতিরোধ না করে)। হার্ডওয়্যার এটি করতে পারে কি না তা বাদ দিয়ে একই র্যাম ঠিকানায় একাধিক প্রসেসরের অ্যাক্সেস পাওয়া সত্যিকার অর্থে একটি খারাপ ধারণা এবং বেশিরভাগ মাল্টি-প্রোক কোড কঠোরভাবে এড়াতে চেষ্টা করে।
জিমি হোফা

1
@ জিমিহোফা তবে র‌্যাম ব্যান্ডউইথ বিধিনিষেধগুলি হ'ল তিনি যে বিষয়ে কথা বলছেন তা হ'ল (যেমন অনুমান করা হয় যে কার্যটি স্মৃতিশক্তিযুক্ত)।

@ জিমি একই র্যাম ঠিকানা থেকে দুটি প্রসেসর পড়ার চেষ্টা করে আমি কোনও সমস্যা দেখছি না। তারা যদি একই সাথে এটি লেখার চেষ্টা করে তবে আমি কেবল একটি সমস্যা দেখতে চাই।
হবিট

1
নির্দিষ্ট মাল্টিকোর প্রসেসরের সাথে আমি কাজ করতাম, কোরগুলি তাদের স্থানীয় ক্যাশেগুলির বাইরে কিছু "জানত না"; ভাগ করা ক্যাশের সাথে সিঙ্ক করার জন্য প্রয়োজনীয় সামগ্রীগুলি নির্দিষ্ট সংখ্যক প্রসেসরের চক্রের মধ্যে স্বচ্ছতার সাথে এটি করা হচ্ছিল; প্রোগ্রামার একাউন্টে এই নিতে ইচ্ছুক শুধু নিজে এর প্রয়োজনীয় পরিমাণ যোগ nopতাদের সমাবেশ কোডে গুলি
মশা

2
সংক্ষিপ্ত উত্তর: আপনার সিস্টেম বাস আর্কিটেকচার, ক্যাশে সমন্বয় প্রোটোকল, আপনার ডিডিআর নিয়ামকটিতে পোর্টের সংখ্যা এবং ডিডিআর নিয়ন্ত্রকের সংখ্যার উপর নির্ভর করে। দীর্ঘ উত্তরটি আপনার সিস্টেমের ডেটাশিটে রয়েছে।
এসকে-যুক্তি

উত্তর:


11

সংক্ষিপ্তসার: কোনও একক কোরের পক্ষে মেমরি অ্যাক্সেসের সমস্ত কিছু যদি মেমরির অ্যাক্সেস থেকে যায় তবে তা পূরণ করতে পারে possible

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


বিবরণগুলি আপনি যে আর্কিটেকচারটি ব্যবহার করছেন তার উপর নির্ভর করবে। আধুনিক এসএমপি এবং এসডিআরামের মতো কিছু ধরে নিচ্ছি:

  1. যদি দুটি কোর রামে একই ঠিকানাটি অ্যাক্সেস করার চেষ্টা করে ...

    বিভিন্ন উপায়ে যেতে পারে:

    • তারা উভয়ই এক সাথে পড়তে চায়:

      • একই চিপে দুটি কোর সম্ভবত কোনও স্তরের মধ্যবর্তী ক্যাশে ভাগ করে নেবে (২ বা 3), সুতরাং পঠনটি কেবল একবারই করা হবে। একটি আধুনিক আর্কিটেকচারে, প্রতিটি কোর ক্যাচ লাইন প্রস্তুত না হওয়া পর্যন্ত এক বা একাধিক পাইপলাইন থেকে µ-opগুলি চালিয়ে রাখতে সক্ষম হতে পারে
      • বিভিন্ন চিপগুলিতে দুটি কোর একটি ক্যাশে ভাগ করে নিতে পারে না, তবে তারপরেও বাসে অ্যাক্সেস সমন্বয় করতে হবে: আদর্শভাবে, যে কোনও চিপটি প্রকাশ করেনি কেবল প্রতিক্রিয়া হ্রাস করবে
    • যদি তারা উভয়ই লিখতে চান:

      • একই চিপে দুটি কোর কেবল একই ক্যাশে লেখা হবে এবং এটি কেবল একবার র‍্যামে ফ্লাশ করা দরকার। প্রকৃতপক্ষে, যেহেতু মেমরিটি প্রতি ক্যাশে লাইনে র‌্যাম থেকে পাঠানো এবং র‌্যামে লেখা হবে, স্বতন্ত্রভাবে লেখেন তবে যথেষ্ট পরিমাণে কাছের ঠিকানাগুলি র‌্যামের একক লেখায় একত্রিত হতে পারে

      • বিভিন্ন চিপসের দুটি কোরের দ্বন্দ্ব রয়েছে এবং ক্যাশে লাইনটি চিপ 1 এর মাধ্যমে র‌্যামে ফিরে চিপ 2 এর ক্যাশে প্রবেশ করাতে হবে, আবার সংশোধন করে আবার ফিরে লিখতে হবে (লেখার / আনার বিষয়টি স্নোপিংয়ের দ্বারা একত্রিত করা যায় কিনা তা ধারণা নেই)

  2. যদি দুটি কোর বিভিন্ন ঠিকানাগুলি অ্যাক্সেস করার চেষ্টা করে ...

    একটি জন্য একক অ্যাক্সেস, সি এ এস লেটেন্সি মানে দুটি অপারেশন সম্ভাব্য চেয়ে যদি বাস অলস ছিল (এখন আর অথবা সম্ভবত শুধুমাত্র একটি সামান্য) আর নিতে ইন্টারলিভড্ করা যেতে পারে।


অন্য তালিকার আইটেমটি হ'ল যখন কোনও কোর ডিএমএ স্থানান্তর শুরু করে যখন অ্যান্টিফার কোর লক্ষ্য স্থানে পোক করে।
অট--

7

সুতরাং, একাধিক সিপিইউ / কোর একই র‍্যাম একই সাথে অ্যাক্সেস করতে পারে, বা আমি যা বলছি তা সঠিক?

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


3

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

বাকিটি তথাকথিত হার্ডওয়্যার ত্বরণ। সুসংহত বাস, ক্যাশে, সিমডি অ্যাক্সেস ইত্যাদি শারীরিক র্যামের সামনে কিছু সুন্দর মুখোমুখি, আপনার প্রশ্নটি ছিল। উল্লিখিত ত্বরণকর্তারা একচেটিয়াভাবে অ্যাড্রেস বাস ব্যবহার করার লড়াইয়ে coverাকতে পারে এবং প্রোগ্রামিং মডেলগুলি আপনার প্রশ্নের সাথে খুব বেশি কিছু করতে পারে না। এছাড়াও নোট করুন যে একসাথে অ্যাক্সেস বিমূর্ততা "ব্যক্তিগত ঠিকানা স্থান" এর বিরুদ্ধেও থাকবে।

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

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


1

আপনি প্রকৃত RAM যত্ন সম্পর্কে না, আপনার সম্পর্কে আরও যত্নশীল ভার্চুয়াল মেমরি এবং অ্যাড্রেস স্পেস এর প্রসেস অথবা থ্রেড বাস্তবে (একই প্রক্রিয়া ভাগ একটি সাধারণ অ্যাড্রেস স্পেস সব থ্রেড)।

অবশ্যই আপনি যদি কোনও মাল্টি-কোর অপারেটিং সিস্টেম কার্নেল কোডিং করে থাকেন তবে আপনি র‌্যাম এবং ক্যাশে এক বিশাল পরিমাণের যত্নশীল।

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

মত শিল্প ভাষায় সাম্প্রতিক মান C11 বা সি ++ 11 কিছু (বহু-থ্রেড সচেতন) থাকতে মেমরি মডেল


0

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


1
এই পোস্টটি পড়ার চেয়ে শক্ত (পাঠ্যের প্রাচীর)। তুমি কিছু মনে করবে সম্পাদন করা একটি ভাল আকৃতি সেটিকে ing?
gnat
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.