মাইক্রোকোড আসলে কী এবং এটি ফার্মওয়্যারের থেকে কীভাবে আলাদা?


50

পরিভাষা হিসাবে ইনফার, "মাইক্রোকোড" আসলে কী এবং যদি এটি আপডেট করা যায় তবে ফার্মওয়্যার থেকে এটি কীভাবে আলাদা?

এই প্রশ্নটি এই প্রশ্নের সদৃশ নয় (যতদূর আমি বলতে পারি) যা আমি মাইক্রোকোড পরিবর্তন করার বিষয়ে জিজ্ঞাসা করেছি। এখানে আমি কঠোরভাবে এই পদগুলি কীভাবে ব্যবহার করতে পারি তা জানতে চাই।

হালনাগাদ

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

  1. "প্রসেসর মাইক্রোকোড প্রসেসর ফার্মওয়্যারের অনুরূপ।" আমি যেমন এটি আরও এবং আরও পড়ি, তেমনি আমি এটিও নিই। "মাইক্রোকোড" এই প্রসঙ্গে কেবল "প্রসেসর ফার্মওয়্যার" এর মাধ্যমে বিপণন করছে। আমার সাথে থাকুন, ..
  2. বা, আমি ভুল, এবং আমি জানি যে এটি ঘটে! এই ক্ষেত্রে, আমি কেন ভুল করছি সে সম্পর্কে আমার আরও অনেক গভীর ধারণা প্রয়োজন। আমি যে উত্তরগুলিতে আমাকে ভুল বলে চিহ্নিত করতে পেরেছি সেগুলিতে আমি সেগুলি বোঝার জন্য লড়াই করছি,
    • "এক্সিকিউশন বনাম ডেটা" প্রচুর উত্তর এই দৃষ্টান্তটি ব্যবহার করে, তবে সিপিইউর জন্য যা আমার কাছে খুব একটা বোঝায় না। কিছু দৃ firm় ফার্মওয়্যার কার্যকর করা হয়, কিন্তু কি দ্বারা? এটি যখন সিপিইউতে আসে তখন প্রোগ্রামগুলি নির্দেশাবলী বা ডেটা হয়?
    • যদি ফার্মওয়্যারগুলি সফ্টওয়্যার এবং হার্ডওয়্যার (পড়ুন: sশ্বরের বৈদ্যুতিক ইঞ্জিনিয়ারিং স্টাফ) ব্রিজ করে থাকে, তবে মাইক্রোকোড কীভাবে সেই তাত্পর্যটি পূরণ করে না।
    • সময়ের সাথে সাথে "ব্যাখ্যা" করা, এটি এমনকি কম এবং কম বোঝায়। মাইক্রোকোড দিয়ে "হার্ডওয়্যার নির্দেশাবলী ব্যাখ্যা করা হয়" এর অর্থ কী? যদি এটি সত্য হয়, এমন কিছু যদি পারফরম্যান্ট হয় তবে এটি ব্যাখ্যা করা না হলেও বিভিন্ন হার্ডওয়্যার নির্দেশাবলীর কাছে পূর্বরূপযুক্ত করা হয়েছিল এবং কেবল "মৃত্যুদন্ড কার্যকর করা" হয়েছিল? এছাড়াও, জেনারেল এমআইডিআইকে কীভাবে একই আলোকে ব্যাখ্যা করা হয় না? এটি এমন একটি ভাষা যা "এমআইডিআই মাইক্রোকোড" দ্বারা ব্যাখ্যা করা হয় এবং হার্ডওয়্যারে চালিত হয়। বা, বোবা টার্মিনালগুলি যা ভিজ্যুয়াল প্রদর্শনের জন্য টেলিপ্রিন্টার নির্দেশাবলী ব্যাখ্যা করে?
    • "মাইক্রোকোড" কি সাউন্ড কার্ড এবং ভিডিও কার্ডগুলিতে (জিপিইউ) চালিত কোডটির সাথে প্রযোজ্য ?

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

মাইক্রোকোড শব্দটি এই বিষয়টি বোঝায় যে এটি সিপিইউ-কোড "নির্দেশাবলী অনেকগুলি ব্যবহার করে / অন্তর্নিহিত করে। এটি সিপিইউকে মূলত নির্দেশাবলী এবং বৈশিষ্ট্যগুলি অনুকরণ করতে বলে tells সুতরাং এটি নাম। কম্পিউটারের মালিকের দিক থেকে এটি হার্ডওয়্যার বিক্রেতার দ্বারা প্রেরণ করা কোডের আর একটি সেট, তাই এটি বিকল্পভাবে ফার্মওয়্যার হিসাবে সংক্ষিপ্ত করা যেতে পারে।

আইএমও, সবচেয়ে সহজ উত্তরটি হ'ল, "প্রতিটি বার কোনও প্রসেসর কোনও নির্দেশনা প্রয়োগ করেন, এটি আসলে একটি মাইক্রোকোড প্রোগ্রাম চালায়।" আপনাকে একক প্রসেসরের নির্দেশ বলে মনে হচ্ছে হ'ল মাইক্রোকোড নির্দেশের একটি বিশেষ ক্রম, একটি 'মাইক্রোকোড প্রোগ্রাম'। প্রতিটি নির্দেশের নিজস্ব মাইক্রোকোড প্রোগ্রাম রয়েছে। পৃথক মাইক্রোকোড নির্দেশাবলী প্রসেসরের বিভিন্ন অভ্যন্তরীণ বিটগুলি সক্ষম / অক্ষম / ইত্যাদি সক্ষম করে।
5-29 এথন রিসর

উত্তর:


57

ফার্মওয়্যার শব্দের উৎপত্তি হ'ল হার্ডওয়্যার এবং সফ্টওয়্যার - সফ্টওয়্যারটিতে হার্ডওয়্যার এম্বেড থাকা মধ্যবর্তী পয়েন্ট। এটি সফ্টওয়্যারকে বোঝায় যে এটি একটি হার্ডওয়্যার ডিভাইসে অ-উদ্বায়ী মেমরিতে সঞ্চিত রয়েছে। উদাহরণগুলি হ'ল EEPROM এবং ফ্ল্যাশ মেমরি হার্ডওয়ার ডিভাইসে এম্বেড করা হয়, যখন সেগুলি ডিভাইস দ্বারা চালিত কোড স্টোর করতে ব্যবহৃত হয়।

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

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

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

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

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


আপনার সম্পাদনার পরে আপনার নির্দিষ্ট কিছু প্রশ্নের উত্তর দিতে:

  1. হ্যাঁ, মাইক্রোকোড মূলত ফার্মওয়্যার যা প্রসেসরের উপর চলে। বিশেষ শব্দ "মাইক্রোকোড" বিশেষত একটি প্রসেসরের ফার্মওয়্যারকে বোঝায় যা স্ট্যান্ডার্ড মেশিনের ভাষা থেকে নিম্ন স্তরের প্রসেসরের নির্দেশিকায় অনুবাদ করার নীলনকশা রয়েছে। সুতরাং এটি ফার্মওয়্যারের চেয়ে আরও নির্দিষ্ট শব্দ।

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

  2. আমি মনে করি না আপনি ভুল বলেছেন। ফার্মওয়্যার একটি নির্দিষ্ট মেশিনের ভাষায় লিখতে হবে না এবং এর কার্যকরকরণ একটি নির্দিষ্ট উপায়ে ট্রিগার করতে হবে না। একটি নির্দিষ্ট নিম্ন স্তরে সমস্ত মেশিন কোড হ'ল "ডেটা" যা কোনও প্রসেসরের দ্বারা "পঠিত" এবং নির্দিষ্ট উপায়ে ব্যাখ্যা করা হয়।

    "মাইক্রোকোড" শব্দটি সাধারণত মূল সিপিইউগুলির জন্য ব্যবহৃত হয় এবং গ্রাফিক্স কার্ড বা অন্যান্য হার্ডওয়্যার নয়, যদিও এই অন্যান্য ডিভাইসগুলিতে তাদের মধ্যে একইভাবে কোড লোড থাকতে পারে।


1
আপনার দ্বিতীয় বাক্যটি ভুল; ফার্মওয়্যারটিতে রমে থাকা সফ্টওয়্যার অন্তর্ভুক্ত রয়েছে। একসময় বেশিরভাগ ফার্মওয়্যার রম ছিল, বিকল্প সাশ্রয়ী হওয়ার আগে।
হ্যারি জনস্টন

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

@ ইভান, বেশিরভাগ ডিভাইস তাদের নির্দেশগুলি পরোক্ষভাবে গ্রহণ করে, সিপিইউতে চলছে এমন কোড থেকে প্রেরিত। কেবলমাত্র সিপিইউ সরাসরি ব্যবহারকারীর দেওয়া কোড প্রসেসিং করছে। এছাড়াও বিবেচনা করুন যে বেশিরভাগ ডিভাইসগুলিতে ফার্মওয়্যারটি চালিত কোনও ধরণের এম্বেড করা সিপিইউ থাকে এবং সিপিইউর নিজস্ব মাইক্রোকোড থাকতে পারে। পার্থক্যটি কেবল হার্ডওয়্যার ডিজাইনার এবং কার্নেল প্রোগ্রামারদের জন্যই গুরুত্বপূর্ণ হতে পারে তবে এটি কোনও স্বেচ্ছাচারিতা নয়।
হ্যারি জনস্টন

"বেশিরভাগ ডিভাইসগুলিতে কোনও ধরণের এম্বেড করা সিপিইউ থাকে যা ফার্মওয়্যারটি চালায় এবং সিপিইউর নিজস্ব মাইক্রোকোড থাকতে পারে" এটাই আমার অর্থ। সুতরাং যে কোডটি একটি সাউন্ড কার্ডে একটি মিডিয়াম স্ট্রিম প্রসেস করে তাও "মাইক্রোকোড"? অথবা বোবা টার্মিনালে অক্ষর প্রদর্শন করে / রেন্ডার করে এমন কোডটি?
ইভান ক্যারল

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

23

https://wiki.debian.org/Microcode

সিপিইউ মাইক্রোকোড

প্রসেসর মাইক্রোকোড প্রসেসর ফার্মওয়্যারের অনুরূপ। কার্নেল একটি BIOS আপডেটের মাধ্যমে আপডেট করার প্রয়োজন ছাড়াই প্রসেসরের ফার্মওয়্যার আপডেট করতে সক্ষম। একটি মাইক্রোকোড আপডেট অস্থির মেমরিতে রাখা হয়, এইভাবে প্রতিটি বুটের সময় BIOS / UEFI বা কার্নেল মাইক্রোকোড আপডেট করে।

ইন্টেল এবং এএমডি থেকে প্রসেসরের সঠিকভাবে পরিচালনা করতে তাদের মাইক্রোকোডে আপডেটের প্রয়োজন হতে পারে। এই আপডেটগুলি বাগ / ত্রুটিগুলি ঠিক করে যা ভুল প্রক্রিয়াজাতকরণ, কোড এবং ডেটা দুর্নীতি এবং সিস্টেম লকআপগুলিতে যে কোনও কারণ হতে পারে।

বিআইওএস (বা ইউইএফআই) বুটের সময় সিপিইউ মাইক্রোকোড আপডেট করে, তবে বেশিরভাগ সময় মাদারবোর্ড বিক্রেতাই ঘন ঘন বিআইওএস / ইউআইএফআই আপডেট দেয় না, বা ব্যবহারকারী এ জাতীয় আপডেট ইনস্টল করবেন না। এই কারণে, সিস্টেম প্রসেসরের প্রচুর সিস্টেমে পুরানো মাইক্রোকোড সহ চলমান সম্ভবত।

উদাহরণ:

https://www.win-raid.com/t3355f47-Intel-AMD-amp-VIA-CPU-Microcode-Repositories.html


9
এটি এতটা সহজ নয়: মাইক্রোকোড হ'ল একটি প্রযুক্তি যা একটি কম্পিউটারের হার্ডওয়্যার এবং আর্কিটেকচারাল স্তরের মধ্যে একটি অনুবাদক চাপিয়ে দেয় "। যেমনটি, মাইক্রোকোড হ'ল হার্ডওয়্যার-স্তরের নির্দেশাবলীর একটি স্তর যা উচ্চ-স্তরের মেশিন কোড নির্দেশাবলী বা অভ্যন্তরীণ স্টেট মেশিন সিকোয়েন্সিংটিকে অনেকগুলি ডিজিটাল প্রক্রিয়াকরণ উপাদানগুলিতে প্রয়োগ করে। উত্স: en.wikipedia.org/wiki/Microcode

17
তাহলে অপেক্ষা করুন ... একটি "নৌকা" কি কেবল একটি বিশেষ ধরণের "যানবাহন"? কি বেহুদা কথা! :-)
হ্যারি জনস্টন

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

4
@ রদোভানগারাবাক: এটি হ্যারির বক্তব্য, কটূক্তি করে তৈরি।
পিটার কর্ডেস

4
আমি পাই না। যদি "কার্নেল কোনও BIOS আপডেটের মাধ্যমে প্রসেসরের ফার্মওয়্যারটিকে আপডেট করার প্রয়োজন ছাড়াই আপডেট করতে সক্ষম হয়", তবে "মাদারবোর্ড বিক্রেতাকে ঘন ঘন বিআইওএস / ইউইএফআই আপডেটগুলি প্রদান করা হবে না" এর অর্থ কেন "সিস্টেম প্রসেসর হ'ল" প্রচুর সিস্টেমে পুরানো মাইক্রোকোড নিয়ে চলার সম্ভাবনা আছে "? কার্নেলটি কেবল মাইক্রোকোডকে প্যাচ করে না কেন? যদি বায়োস কখনও আপডেট হয় না, এবং আরও ঘন ঘন আপডেটেড বিকল্প পাওয়া যায় তবে কেন BIOS এর উপর নির্ভর করবেন?
আজেদী 32

6

ওয়েল, ইন্টেল "মাইক্রোকোড আপডেট" আসলে "ফার্মওয়্যার" আপডেটগুলি এই অর্থে যে তারা প্রসেসরের কেবল মাইক্রোকোড ট্রান্সলেশন ইউনিট ছাড়াও আরও অনেক কিছু আপডেট করে।

এই ইউনিফাইড প্রসেসর প্যাকেজ আপডেটগুলি আমরা ইন্টেলের জন্য "মাইক্রোকোড আপডেট" বলি অন্যান্য অন ডাই মাইক্রোকন্ট্রোলারগুলি (যেমন পিএমইউ এবং পাওয়ার ম্যানেজমেন্ট কোর) পাশাপাশি বিভিন্ন অন ডাই প্রসেসর সাবসিস্টেমগুলির জন্য বিভিন্ন পরামিতি সারণীও আপডেট করে। তারা বরং জটিল।

এই তথ্যটি মাইক্রোকোড এবং মাইক্রোকোড সম্পর্কিত বিভিন্ন ইন্টেল পেটেন্টগুলিতে পাওয়া যায়।


4

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

ঘটনাচক্রে, মাইক্রোকোডের ধারণাটি ১৯৫১ সালে মরিস উইলকসের কাছে ফিরে যায়, কম্পিউটার প্রসেসরের সিলিকনে এম্বেড হওয়ার কয়েক দশক আগে।


3

ফার্মওয়্যার সাধারণত এমন ডিভাইসগুলির কোড বোঝায় যা একটি সিপিইউ থাকে না নিজে সিপিইউ থাকে যেমন অ্যান্ড্রয়েড ফোনের ফার্মওয়্যার।

মাইক্রোকোড জটিল নির্দেশের সেটগুলির মধ্যে একটি অনুবাদ স্তর (উদাঃ 486, 686, এএমডি -৪৪ ect।) এবং নিম্ন স্তরের নির্দেশাবলী যা চিপ নির্মাতারা সিলিকন ডিজাইন করে। সুতরাং সিপিইউ নির্দেশিকা সংস্থার বেশ কয়েকটি নির্দেশ সিলিকনে প্রয়োগ করা হয় না তবে মাইক্রোকোডের মাধ্যমে সিলিকনে প্রয়োগ করা একাধিক নির্দেশিকায় অনুবাদ করা হয়।


তবে, সমস্ত ফার্মওয়্যারের ক্ষেত্রেও এটি সত্য নয়। সিলিকনে প্রয়োগ করা যেতে পারে তবে এআইবিআই-কে নির্দেশনা রয়েছে এবং সফ্টওয়্যার দ্বারা অন্যথায় আপডেটযোগ্য?
ইভান ক্যারল

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

3

"মাইক্রোকোড" হ'ল মূল শব্দটি এবং প্রসেসরের "পাবলিক" নির্দেশ সংকলনের জন্য একজন দোভাষীকে প্রয়োগ করার জন্য যে নির্দেশাবলী ব্যবহার করা হত সেগুলি নির্দেশ করে।

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

এই প্রথম পার্থক্যগুলি তৈরি হওয়ার পরে জিনিসগুলি বহুবার মোচড়ে গেছে এবং মোচড় দিয়েছে এবং প্রদত্ত প্রসেসর এবং ওএস পরিবেশের মধ্যে শর্তগুলি কেবল কোনও নির্ভুলতার সাথেই সংজ্ঞাযোগ্য।


+1, এখানে মূল কীটি হ'ল "মাইক্রোকোড" শব্দের অনেক অর্থ রয়েছে এবং আমি মনে করি যে ওপি সত্যই "মাইক্রোকোড আপডেট" সম্পর্কে জানতে চায়, অন্য অর্থগুলি নয়।
পিটার কর্ডেস

3

[এনবি: এই উত্তরটি সাম্প্রতিক সম্পাদনাটি নির্দিষ্ট করার উদ্দেশ্যে করা হয়েছে এবং ইতিমধ্যে পোস্ট করা বেশ কয়েকটি শব্দ উত্তরগুলিতে অন্যথায় যুক্ত করে না does]

সুতরাং, পুনরাবৃত্তি করার জন্য: মাইক্রোকোড (কমপক্ষে একটি প্রথম অনুমানের মধ্যে) একটি নির্দিষ্ট ধরণের ফার্মওয়্যার।

"মাইক্রোকোড" এই প্রসঙ্গে কেবল "প্রসেসর ফার্মওয়্যার" এর মাধ্যমে বিপণন করছে।

ঠিক আছে, এটি বিপণন না। বিপণন এটিকে XBoost Pro (টিএম) বা অন্য কিছু বলত । বরং এটি একটি ইঞ্জিনিয়ারিং শব্দ; আপনি যদি সিপিইউগুলি ডিজাইন করেন তবে মাইক্রোকোড এবং সিপিইউর অন্যান্য ফার্মওয়্যার (এবং অন্যান্য ডিভাইসের সাথে নির্দিষ্ট ফার্মওয়্যার সাজানোর) মধ্যে পার্থক্যটি আপনার পক্ষে গুরুত্বপূর্ণ। যদি না হয়, সম্ভবত এটি না।

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

শেষ ব্যবহারকারীর পার্থক্য সম্পর্কে জানতে বা যত্নের প্রয়োজন নেই এবং একটি আদর্শ বিশ্বে "মাইক্রোকোড" শব্দটি কখনই শোনা যায় না।

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


সুতরাং, এমনকি বুঝতে পেরে আপনার সম্ভবত জানা বা যত্ন নেওয়ার দরকার নেই, আপনি এখনও খাঁটি কৌতূহল থেকে আগ্রহী হতে পারেন: আপনি অন্য ফার্মওয়্যারের থেকে মাইক্রোকোডকে আলাদা করার বিষয়ে কীভাবে যেতে পারেন?

ঠিক আছে, প্রথম জিনিসটি স্বীকৃতি দেওয়ার জন্য এটি হ'ল একটি কঠোর এবং দ্রুত সংজ্ঞাটি অগত্যা নয়, এটি ব্লগস এবং রুবেসের পরিস্থিতি । তবুও, মাইক্রোকোড সম্পর্কে আমরা কিছু বলতে পারি:

  • মাইক্রোকোড সাধারণত সিপিইউয়ের পরিবর্তে সিপিইউর অভ্যন্তরে চলে। এটি উচ্চ-স্তরের দৃশ্য।

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

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

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


"এক্সিকিউশন বনাম ডেটা" প্রচুর উত্তর এই দৃষ্টান্ত ব্যবহার করে

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

সাটা ড্রাইভটি কম্পিউটার থেকে প্রাপ্ত নির্দেশাবলী অনুসরণ করে, যা "5,123 সেক্টর থেকে ডেটা পড়ুন" এবং "এই তথ্যটি 1,321 সেক্টরে লিখুন" এর লাইনে রয়েছে। ড্রাইভের ফার্মওয়্যারটি হার্ডওয়্যারটিকে এটি তৈরি করার জন্য দায়ী এবং এটি সাধারণত কোনও সাধারণ কোড যা কোনও এম্বেড থাকা সিপিইউতে চলছে sort ড্রাইভের নির্দেশাবলী ক্রমানুসারে উপস্থিত হয়, যদিও তারা যে ক্রমে আসে তার ক্রিয়াকলাপ নাও করা যেতে পারে। এই নির্দেশাবলী কোনও প্রোগ্রাম নয়, এগুলি মূল সিপিইউতে চলমান একটি প্রোগ্রাম দ্বারা প্রেরণ করা হয়েছে। বিশেষত নিয়ন্ত্রণের কোন প্রবাহ নেই, অর্থাৎ, এসটিএ ড্রাইভটি বলার জন্য কোনও নির্দেশ নেই যা পরবর্তী নির্দেশগুলি চালানো উচিত।

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

আমরা উপরের চূড়ান্ত বুলেট পয়েন্টটি আবার লিখতে পারি: মাইক্রোকোড সাধারণত একটি টুরিং সম্পূর্ণ ভাষা প্রয়োগ করে; সাধারণ ফার্মওয়্যার সাধারণত না।


মাইক্রোকোড দিয়ে "হার্ডওয়্যার নির্দেশাবলী ব্যাখ্যা করা হয়" এর অর্থ কী?

সত্য তবে সম্ভবত বিভ্রান্তিকর; গুরুত্বপূর্ণ বিষয়টি হ'ল মেশিন কোডের মধ্যে পার্থক্য, যার নিয়ন্ত্রণের প্রবাহ রয়েছে এবং এটি টিউরিং সম্পূর্ণ S


"মাইক্রোকোড" কি সাউন্ড কার্ডগুলিতে চালিত কোডটিতে প্রয়োগ হয়?

না, সাউন্ড কার্ডগুলি এসটিএ ড্রাইভের মতোই কোড নয়, নির্দেশাবলী গ্রহণ করে। নির্দেশাবলী হতে পারে "তীক্ষ্ণ খেলুন" বা "এই ডেটাটিকে তরঙ্গরূপ হিসাবে ব্যাখ্যা করুন এবং এটি খেলুন"। এখনও খুব সহজ।

এবং ভিডিও কার্ড (জিপিইউ)?

পুরানো ফ্যাশন ভিডিও কার্ডগুলি (জিপিইউবিহীন) এসটিএ ড্রাইভের সমান। নির্দেশাবলী "এই রঙে এই পিক্সেল সেট করুন" বা "এই অবস্থানে একটি এ লিখুন" এর মতো।

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


টিএল; ডিআর: মাইক্রোকোড একটি নির্দিষ্ট ধরণের ফার্মওয়্যার, যা হার্ডওয়্যারকে একটি টুরিং কমপ্লিট ইন্সট্রাকশন সেট প্রয়োগ করতে সহায়তা করে।


1

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

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

Wareতিহ্যগত অর্থে ফার্মওয়্যার হ'ল কোনও সফ্টওয়্যার / ডেটা যা অ-উদ্বায়ী মেমরিতে থাকে, যা প্রত্যাশিত বা কখনই পরিবর্তিত হয় না। এটি সরাসরি সংরক্ষণ করা বা পরিবর্তিত লিখিত এবং সিস্টেম মেমরি থেকে নির্বাহ করা সফ্টওয়্যারটির বিপরীতে যা নিয়মিত পরিবর্তন হয় is মাইক্রোকোড বিশেষত ডেটা বোঝায় যে হার্ডওয়্যারের ক্রম নিয়ন্ত্রণের জন্য একটি মাইক্রোপ্রগ্রাম প্রতিনিধিত্ব করে।

মাইক্রোকোড ফার্মওয়্যারের মাধ্যমে প্রয়োগ করা যেতে পারে / ফার্মওয়্যারটিতে মাইক্রোকোড থাকতে পারে তবে সেগুলি এক নয়।


1
আধুনিক x86 সিপিইউগুলি আপনার বর্ণনার চেয়ে অনেক বেশি শক্ত ওয়্যার্ড; মনে হচ্ছে আপনি কোনও পাইপলাইনবিহীন 386 বর্ণনা করছেন, হ্যাসওয়েল / স্কাইলেক নয়। ইন্টেলের "মাইক্রোকোড আপডেটগুলি" মাইক্রোকোডযুক্ত নির্দেশাবলী কীভাবে ডিকোড করে তা সংশোধন করার চেয়ে আরও অনেক কিছু করতে পারে । উদাহরণস্বরূপ তারা লুপ বাফারটি অক্ষম করতে পারে (স্কাইলেকে এসকেএল 150 এররেটাম ঠিক করার জন্য) কারণ যখন হার্ডওয়ার বাগগুলি সন্ধান করা হয় তখন সিপিইউ এটি সম্ভব করার জন্য তৈরি করা হয়।
পিটার কর্ডেস

@ পিটারকর্ডস ১) x86 আর্কিটেকচারটি মাইক্রোকোড ২ এর ধারণা উপস্থাপনের সাথে অপ্রাসঙ্গিক) আপনি কি আমার উত্তরটি বুঝতে পেরেছিলেন যে আমরা চুক্তিতে থাকব যে এটি নিয়ন্ত্রণ সংকেতগুলিকে সিক্যুয়েন্স করে, যেমন আপনি ইঙ্গিত করেছেন

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

আমি (বা that বিষয়টির জন্য প্রশ্ন) কোথায় ইন্টেল বা x86 মাইক্রো-অপারেশনগুলি (যা একটি নিয়ন্ত্রণের দোকানে "মাইক্রোপ্রগ্রাম" এর মতো নয়) উল্লেখ করেছি? এছাড়াও, কন্ট্রোল স্টোর থেকে আক্ষরিক অর্থে যে কিছু সরবরাহ করা হয় তা হ'ল একটি নিয়ন্ত্রণ সংকেত, যদিও সিগন্যালটি ধারাবাহিক বা স্থির, যৌক্তিক বা তারের হয়। আমি যা বর্ণনা করি তা হ'ল মাইক্রোকোডের আক্ষরিক সংজ্ঞা, "মাইক্রোকোড আপডেট "ও। আপনি আমার উত্তরটির ধারাবাহিক দিকটি ঝুলিয়ে রেখেছেন কারণ একটি হাসওয়েলে বলা অনেকগুলি সংকেত স্থির থাকবে। রেকর্ডের জন্য, অনেক হয় সিকোয়েন্স, সিকোয়েন্সিং একেবারে পারস্পরিক পাইপলাইনিং বা OoOE একচেটিয়া নয়।

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

0

ফার্মওয়্যার এক্সিকিউটেবল কোড যা কোনও রম বা অন্যান্য অ-উদ্বায়ী মেমরিতে রাখে।

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

পেরিফেরাল ডিভাইসগুলি যেমন ফার্মওয়্যার নেয়, যেমন হার্ড ড্রাইভ, ইউএসবি ডিভাইস ইত্যাদির একটি এম্বেডড সিপিইউ থাকে।


মাইক্রোকোড এক্সিকিউটেবল কোড নয়, তবে একটি ডিভাইসের অভ্যন্তরীণ সুবিধা দ্বারা ব্যবহৃত কোড।

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

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

অনেকগুলি সিপিইউতে জটিল নির্দেশাবলী সরাসরি হার্ডওয়ারে তারযুক্ত হয় না, তবে মূল সিপিইউতে একটি ছোট সিপিইউ-এর মতো সুবিধা দ্বারা "চালিত" হয়। মাইক্রোকোড এই অপারেশনগুলিকে নিয়ন্ত্রণ করে। এটি কমপক্ষে মোটরোলা 68000 এ ফিরে যায় যার মাইক্রোকোডযুক্ত "মাইক্রোআরএম" ছিল।

ইনটেল বা এএমডি প্রসেসর ছাড়া অন্য কেউ জানে না যে মাইক্রোকোডটি আসলে নিয়ন্ত্রণ করে বা কী করে, কারণ তারা বিশদ প্রকাশ করে না। এটি হ্যাক করার চেষ্টা চলছে। রেফারেন্স

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


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


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

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

0

পরিভাষা

আমি এই নিজেকে এই শুধুমাত্র ব্যবহার-প্রসঙ্গ ব্যবহার উত্তর করব এই PDF

  • ফার্মওয়্যার - মাইক্রো- হয় CPU- এর ফার্মওয়্যার দ্বারা উপলব্ধ একটি পাথ মাধ্যমে আপডেট করা হয়েছে।

    "সাধারণত, একটি মাইক্রোকোড প্যাচ সিপিইউতে মাদারবোর্ড ফার্মওয়্যার (যেমন, BIOS বা UEFI) বা অপারেটিং সিস্টেমের প্রথম দিকে বুট প্রক্রিয়া চলাকালীন আপলোড করা হয় " "

  • মাইক্রোকোড - নিজেই "ইন্সট্রাকশন ডিকোড ইউনিট (আইডিইউ) দ্বারা ব্যবহৃত ডেটা।" একটি আইডিইউ হয় হার্ডওয়্যারড বা মাইক্রোকড করা যেতে পারে । এই প্রসঙ্গে মাইক্রোকোড করা সহজভাবে প্রোগ্রাম করা মানে। ALSO এর অর্থ "মাইক্রোকোডের বহুবচনতা"। আইডিইউ

    আইডিইউ নিয়ন্ত্রণ ইউনিটের মধ্যে একটি কেন্দ্রীয় ভূমিকা পালন করে এবং নির্দেশিকা নিবন্ধের সামগ্রীর উপর ভিত্তি করে নিয়ন্ত্রণ সংকেত জেনারেট করে।

  • আইডিইউতে ডিকোড করার জন্য ম্যাক্রো-নির্দেশাবলী একটি নির্দেশ পাঠানো হয়েছে, কোনও পরিমাণে মাইক্রো-নির্দেশাবলী ফিরিয়ে দিতে পারে ।

  • মাইক্রো-নির্দেশনা একটি পূর্বনির্ধারিত "নিয়ন্ত্রণ শব্দ", সমস্ত রাজ্য এবং নির্দেশকে একটি ঘড়ি চক্রের জন্য কার্যকর করা। নিয়ন্ত্রণ সিগন্যাল তৈরি করতে সিপিইউতে প্রেরণ করা হয়েছে ।

সুতরাং এই প্রসঙ্গে আপনি ফার্মওয়্যারের সাথে মাইক্রোকোড আপডেট করবেন। আপনি মাইক্রোকোডড আইডিইউতে ম্যাক্রো-নির্দেশনা ম্যাক্রো-নির্দেশকে সিপিইউতে কার্যকর করার জন্য "মাইক্রো-নির্দেশনা" হিসাবে সমাধানের জন্য প্রেরণ করতেন, যা তাদের নিয়ন্ত্রণ সংকেতগুলিতে রূপান্তরিত করে।

আমার এই পড়া

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

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


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

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

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

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

0

আমি বেসিক আইএসএ ডিজাইনের একটি কোর্স নিয়েছি, মূলত এমআইপিএস ধারণার মডেলিং করা একটি আরআইএসসি প্রসেসরের গবেষণা ও নকশায়। আমি যা মনে করতে এসেছি তা এখানে

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

অন্যদিকে, একত্রিত ভাষাটি নির্দেশের শব্দটিতে মূলত আপনার কোড বাসে ওপকোডগুলি এবং তাদের ক্রিয়াকলাপগুলিতে ফোটায়। এমআইপিএসের নিরিখে, আপনার নির্দেশের শব্দের প্রথম 6 টি বিট হ'ল আপনার অপকড। নিছক গাণিতিক পরিদর্শন দ্বারা, আপনি আপনার ALU "রেজিস্ট্রেশন" করতে পারবেন না, রেজিস্টার করতে পারেন, মেমোরি করতে পারেন, muxes করতে পারেন .. মূলত আপনার বাকী হার্ডওয়্যার 6 বিট দিয়ে একা থাকে।

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

আমি বিশ্বাস করে এসেছি যে হার্ডওয়্যার এম্বেড থাকা যে কোনও তথ্যের জন্য ফার্মওয়্যার একটি সাধারণ শব্দ। কিছু ক্ষেত্রে এটি মাইক্রোকোডকেও উল্লেখ করবে কারণ এর বিটস্ট্রিমটি EEPROM এবং ফ্ল্যাশ মেমরির মতো হার্ডওয়্যারে এনকোডড এবং সংরক্ষণ করা যেতে পারে। তবে বেশিরভাগ সময়, এটি সংকলিত কোড, asm, বা এমনকি ভিএইচডিএল / ভেরিলোগ বিটস্ট্রিমগুলি এফপিজিএগুলিতে ব্যবহৃত হয়। আমার কাছে মাইক্রোকোড পছন্দসই প্রসেসরে "দৃser় সংকেত" নির্দিষ্ট করার জন্য ব্যবহৃত শব্দার্থকগুলির মতো বলে মনে হচ্ছে।


-2

মাইক্রোকোডটি সাব-এএসএম স্তর, সিপিইউ-ইন্টিগ্রেটেড ফার্মওয়্যার।

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