আমরা কীভাবে বাইনারি / হেক্স থেকে বিধানসভা নির্দেশের সেটগুলিতে যাই?


13

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

যদিও একটি বিষয় আমাকে ধাঁধা দেয় .... তা হল কীভাবে আমরা নির্দেশের সেটগুলি "" পাই "। আমি কিছুটা বুঝতে পারি কীভাবে গেটস / টিটিএল এবং এই জাতীয় কাজ করে তবে আমি দেখতে পাচ্ছি না যে আমরা সেখান থেকে মুভি, অ্যাড, ক্লার ইত্যাদি কীভাবে যাব ...?

এটি সম্ভবত একটি মূ question় প্রশ্ন .... তবে আমার অর্থ আমি প্রথম মাইক্রো প্রসেসর / কন্ট্রোলারগুলিকে ফিরে দেখি এবং ভাবি .... তারা কীভাবে কোনও নির্দেশিকা সেট ডিজাইন করেছিল এবং এটিকে কাজ করে?

সম্পাদনা: আমি অনুমান করি পরিষ্কারতার জন্য, আমি প্রথম মাইক্রোপ্রসেসরের কথা বলছি, তারা বাইনারি থেকে আসলে একটি নির্দেশিকা সেট তৈরি করতে কীভাবে গেল?


2
প্রতিটি নির্দেশের একটি মান থাকে, সংকলকটি আপনার কোডটি কীভাবে কাঠামোগত করা যায় তার উপর ভিত্তি করে আপনার নির্দেশকে এই নির্দেশিকায় রূপান্তর করে।
রামহাউন্ড

1
আমি আপনার প্রশ্নটি পুরোপুরি বুঝতে পেরেছি কিনা তা নিশ্চিত নই, তবে আমি মনে করি আপনি এখানে , এখানে বা এখানে আপনার উত্তরটি খুঁজে পেতে পারেন ।
ই এম এমই

1
একটি দম্পতি ঘনিষ্ঠভাবে সম্পর্কিত প্রশ্ন programmers.stackexchange.com/questions/81624/... এবং superuser.com/questions/307116/...
jhocking

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

1
সত্যিই এটি দুর্দান্ত বই: www1.idc.ac.il/tecs এগুলি আমার কাছে সমস্ত কিছু ব্যাখ্যা করেছে, বেশিরভাগ অধ্যায়গুলি অনলাইনে বিনামূল্যে উপলব্ধ। আপনি ন্যান্ড গেটগুলি থেকে আপনার নিজের চিপ (একটি সাধারণ হার্ডওয়্যার বর্ণনামূলক ভাষায়) ডিজাইন করেন, তারপরে একজন এসেম্বলারের পরে একটি সংকলক, তারপরে আপনার তৈরি ভাষায় একটি ওএস লিখুন! আশ্চর্যজনক স্টাফ, এবং কম সায়েন্স ডিগ্রিবিহীন কেউ হিসাবে আমার জন্য সময়টি খুব ভাল ছিল!
বিপ্লাস

উত্তর:


18

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

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

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


1
আমি অনুমান করছি আমি যা জিজ্ঞাসা করছি তারা কীভাবে বেছে নেবে? এবং তারা কীভাবে এটি নির্ধারণের বিষয়ে আসলে যায়?

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

3
@ সওরন - ডিজিটাল সার্কিট কীভাবে বেশ কয়েকটি মানগুলির মধ্যে একটি চয়ন করতে পারে তা দেখতে ডিজিটাল মাল্টিপ্লেক্সার সন্ধান করুন । আপনার যদি 8-বিট বাস থাকে তবে আপনার কেবল সমান্তরালভাবে 8 টি বাইনারি ডিজিটাল মাল্টিপ্লেক্সার প্রয়োজন।
স্কট হুইটলক

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

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

9

আমি আপনার প্রশ্নটি অক্ষরে অক্ষরে নেব এবং বেশিরভাগ মাইক্রোপ্রসেসরগুলি নিয়ে আলোচনা করব, কম্পিউটারগুলি সাধারণভাবে নয়।

সমস্ত কম্পিউটারে কিছু মেশিন কোড থাকে। একটি নির্দেশনায় একটি অপকোড এবং এক বা একাধিক অপারেশন থাকে। উদাহরণস্বরূপ, ইন্টেল 4004 (প্রথম মাইক্রোপ্রসেসর) এর ADD নির্দেশনাটি 1000RRRR হিসাবে এনকোড করা হয়েছিল যেখানে 1000 ADD এর জন্য অপকড এবং আরআরআরআর 0-15 (একটি বাইনারিতে 0000-1111) একটি রেজিস্ট্রার প্রতিনিধিত্ব করে।

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

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

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

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

যেহেতু প্রথম মাইক্রোপ্রসেসরটি মাইনফ্রেমস এবং মিনিকম্পিউটারগুলি প্রায় ছিল তার অনেক পরে তৈরি করা হয়েছিল, এবং 4004 যেভাবেই কোনও এসেমব্লার চালানোর পক্ষে উপযুক্ত ছিল না, তাই ইন্টেল সম্ভবত একটি ক্রস-এসেমব্লার লিখেছিল যা তার বড় কম্পিউটারগুলির মধ্যে একটিতে চলেছিল এবং এসেম্বলি কোডটি অনুবাদ করেছিল 4004 একটি বাইনারি চিত্র যা রম এর মধ্যে প্রোগ্রাম করা যেতে পারে into


4

খুব নিম্ন স্তরের একটি কম্পিউটার ডেটা পাথ এবং নিয়ন্ত্রণের দ্বারা প্রতিনিধিত্ব করতে পারে । এগুলি একসাথে গুগল করা আপনাকে প্রচুর পড়া দিতে পারে কারণ এটি ডিজিটাল আর্কিটেকচার / ডিজাইনের ক্ষেত্রে মৌলিক।

আমি সংক্ষিপ্ত করার জন্য যথাসাধ্য চেষ্টা করব:

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

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

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


3

আমি যদি আপনার প্রশ্নটি বুঝতে পারি তবে আমি বুঝতে পারি না যে বিন / হেক্স বা সমাবেশ কীভাবে সম্পর্কিত।

আমি ধরে নিয়েছি যে আপনার প্রশ্নের মাংস হ'ল আমি কীভাবে বেসিক গেটগুলি থেকে, এবং, এবং, চালনা, লোড, স্টোর, অ্যাড, ইত্যাদি নির্দেশাবলীর কাছে না যাই do

আমি আমার নিজের সামান্য শিক্ষার নির্দেশ সেট আমি আঁচড়ের দাগ কিভাবে একটি অ্যাড এবং মৌলিক দরজা এবং কিছু থেকে subtract কাজ এমনটা বললে বিবরণ এর কিছু আছে যে থেকে তৈরি আছে http://github.com/dwelch67/lsasim

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

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

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

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

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

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

এই সত্যের টেবিলটি খুব খুব সংক্ষেপে চিন্তা করুন:

0 0 0
0 1 1
1 0 1
1 1 0

বাইনারি মধ্যে:

0 + 0 = 1
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10 (2 decimal)

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

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

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

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

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

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

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

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

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


এটি সত্যই লেখকের প্রশ্নের উত্তর দেয় না, এটি অন্তত আলোচনায় কিছু যোগ করে না, গ্রহণযোগ্য উত্তরটি .াকেনি। আপনার বাইনারি গণিত 100% সঠিক নয় 1 এর ওভারফ্লো 1 এর সাথে 1 টি 1 রেজিস্ট্রি আকারের উপর নির্ভর করে এটি হয় 2 বা 0 হবে
রামহাউন্ড

@ বাসিন্দা ধিক্কার! আমি আপনার ডাই হার্ট ফ্যান কিছু না হলে। +1
এসিওফস্পেডস

2

সিপিইউগুলি 0 এবং 1 এর কাজ করে। সমস্ত নির্দেশাবলীতে বিটগুলির ক্রম ছিল যা সেগুলি সংজ্ঞায়িত করে। থিসি ছিল মেশিন কোড। মানুষের পক্ষে লেখা ও লেখার পক্ষে এটাই কঠিন। প্রথম পদক্ষেপ হিসাবে আমরা 0 এবং 1 এর 4 টি বিট ক্রমগুলিতে বিভক্ত করেছি এবং তাদের প্রতিনিধিত্ব করতে 0 এর মাধ্যমে F ব্যবহার করেছি। এটি আমাদের মুখস্থ করার সংখ্যাগুলি হ্রাস করেছে, তবে নির্দেশের জন্য হেক্স কোডটি মনে রাখা এখনও সহজ ছিল না।

সুতরাং আমরা সমাবেশটি ব্যবহার শুরু করি যার এমওভি এবং অ্যাডির মতো "শব্দ" ছিল। সমাবেশটি নির্দেশককে 0 এবং 1 এর সঠিক সেট দিয়ে মেম্বার কোডে অ্যাসেম্বলি "তালিকা" রুপান্তরিত করে নির্দেশাবলীকে প্রতিস্থাপন করবে।

অবশেষে আমরা "উচ্চতর" স্তরের ভাষাগুলি বিকাশ করেছি যেখানে "নির্দেশাবলী" মেশিন কোডের পুরো অনুক্রমকে উপস্থাপন করতে পারে।


এফওয়াইআই, অষ্টাল হেক্সাডেসিমালের আগে বাইনারি শর্টহ্যান্ড হিসাবে ব্যবহৃত হত।
ocodo

স্লোমোজো ঠিক আছে, অক্টাল, বেস 8 ব্যবহৃত 3 বিট, হেক্সের সাথে ব্যবহৃত হয়েছিল, বেস 16 টি 4 বিট ব্যবহৃত হয়েছিল। অক্টালের সুবিধা ছিল যে প্রত্যেকে 0 থেকে 7 সংখ্যাটি কী উপস্থাপন করে তা জানত। লোকেরা কীভাবে হেক্স ব্যবহার করেনি তারা প্রায়শই "অঙ্কগুলি" এ টু এফ দ্বারা মিস্ত্রি করা হয়
জিম সি

0

আমি সম্প্রতি এই প্রশ্নোত্তর পেরিয়ে এসেছি এবং প্রায় এক বছর আগে বা যখন আমি এই পথে যাত্রা শুরু করেছি; আমি এটি আমার নিজের সম্পর্কিত প্রশ্নের ক্ষেত্রে একটি খুব ভাল সংস্থান এবং রেফারেন্স পৃষ্ঠা হতে পারে।


পর্ব 1: -প্রস্তাদ-

আমার সম্পর্কে কিছুটা:

৮০ এর দশকের মাঝামাঝি থেকে যখন আমি এখনও এলিমেন্টারি স্কুলে ছিলাম, তখন আমি জাঙ্ক স্টিরিওস, ভিসিআর এবং অন্যান্য ইলেকট্রন ডিভাইসগুলি যেগুলি 50 এর দশকের দশকের মধ্য থেকে ছিল এবং সার্কিট বোর্ডগুলিতে তাকাতাম এবং সর্বদা জানতে চাইতাম তারা কীভাবে ছিল কাজ ... তারা আসলে কীভাবে সম্প্রচার সংকেত অর্জন করেছিল, অডিও, ভিডিও তৈরি করেছিল, এটি করেছিল এবং এটি ইত্যাদি ... আমি এখানে এবং সেখানে পৃথক অংশগুলি যেমন একটি রেজিস্টার, ক্যাপাসিটার, ডায়োড এবং ট্রানজিস্টর সনাক্ত করতে পারি, তবে তা হয়নি তারা কী করেছে বা কীভাবে তারা এত অল্প বয়সে কাজ করেছিল তা জানুন।

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

আমার প্রায় 3 বা 4 বছর বয়স থেকেই ভিডিও গেমস খেলছি playing ছোটবেলায় আমার আটারি, এনইএস, সেগা জেনেসিস এবং পিএস 1 ছিল। বয়স বাড়ার সাথে সাথে আমার শেষ বয়সে এবং 20 এর দশকের প্রথম দিকে আমি PS2 এবং SNES পছন্দসই নির্বাচিত শিরোনাম সহ অর্জন করেছি। এটি পিসি গেমিংয়ের জন্য অ্যাকাউন্ট করে না যা ডুমের মতো পিছিয়ে যায়!

আমি সর্বদা আগ্রহী কনসোল এবং পিসি গেমার হয়েছি এবং এতে পিনবল এবং তোরণ গেমস অন্তর্ভুক্ত নয়।

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

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

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


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

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

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

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

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

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

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

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

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

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


এটি প্রথম পর্যায়ে ছিল, তারপরে আমি পড়া শুরু করে এবং প্রথম দিকে ডাইরেক্টএক্স 9 সি দিয়ে কাজ শুরু করেছিলাম, যা আমি সি / সি ++ এমনকি সি # তেও করেছি। তারপরে আমি ডাইরেক্টএক্স 10 এবং লিগ্যাসি ওপেনজিএল 1.0 এ চলেছি। তাদের সরাসরি ডাইরেক্টএক্স 11 এবং ওপেনজিএল 3.x - 4.x থেকে এসেছে এবং এখন আমি ভলকানেও হাত চেষ্টা করেছি।

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

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

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


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

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

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

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

আমি আমার অতিরিক্ত সময়ে এই সব শিখছি যখন আমি গত 15 - 18 বছর জুড়ে পারতাম।


এখানে কয়েকটি সাইট এবং লিঙ্ক রয়েছে যা বছরের পর বছর ধরে আমাকে গাইড করে। এর মধ্যে অনেকগুলিই সাম্প্রতিক যেগুলি আমি মূলত যে সাইটগুলির কাছ থেকে শিখেছিলাম সেগুলির আর অস্তিত্ব নেই, আমি তাদের লিঙ্কগুলি হারিয়ে ফেলেছি এবং মনে নেই, বা অনুসন্ধান ইঞ্জিনগুলি তাদের অনুসন্ধান তালিকার একেবারে পিছনে ঠেলে দিয়েছে ...

  • ভাষা - সি ++

  • 3 ডি গ্রাফিক্স টিউটোরিয়াল এবং সংস্থান ওয়েবসাইটগুলি

  • ইউটিউব সিরিজ এবং চ্যানেলগুলি এগুলি উপরের বিষয়গুলির পাশাপাশি হার্ডওয়্যার, কম্পিউটার এবং বৈদ্যুতিক প্রকৌশলকে অন্তর্ভুক্ত করে। তালিকাভুক্ত করার জন্য অনেকগুলি রয়েছে তাই আমি তাদের মধ্যে কয়েকটিকে এখানে তালিকাবদ্ধ করবো যা আমি সবচেয়ে দরকারী এবং সম্পদশালী find আমি লিঙ্কগুলি সরবরাহ করব না তবে আপনি এই চ্যানেলগুলির জন্য ইউটিউব অনুসন্ধান করতে পারেন।

    • 3 ব্লু 1 ব্রাউন - উন্নত গণিত
    • বিস্কুইট - উন্নত সি / সি ++ প্রোগ্রামিং (অ্যাপ্লিকেশন প্রকল্প) - এনইএস হার্ডওয়্যার এমুলেটর
    • জেসন টার্নার - উন্নত আধুনিক সি ++ প্রোগ্রামিং কৌশল
    • javidx9 - উন্নত সি / সি ++ প্রোগ্রামিং (অ্যাপ্লিকেশন প্রকল্প) - এনইএস হার্ডওয়্যার এমুলেটর / কিছু সমাবেশ
    • এমআইটি ওপেনকোর্স - গণিত এবং কম্পিউটার বিজ্ঞানের কলেজ কোর্স
    • বিলকেন্ট অনলাইন কোর্স - কম্পিউটার সায়েন্স এবং কম্পিউটার ইঞ্জিনিয়ারিংয়ে কলেজ কোর্স (সিপিইউ ডিজাইন এমআইপিএস)
    • চেরানো - উন্নত সি / সি ++ প্রোগ্রামিং বিষয় এবং অ্যাপ্লিকেশন - গেম ইঞ্জিন বিকাশ
    • বেন ইটার - হার্ডওয়্যার ইঞ্জিনিয়ারিং - ব্রেডবোর্ডগুলির মাধ্যমে ব্যবহারিক প্রয়োগ
    • নেসো একাডেমি - হার্ডওয়্যার ইঞ্জিনিয়ারিং - তত্ত্ব ও ধারণা
    • সকরাটিকা - পাইথন প্রোগ্রামিং
    • সিম্পলি পুট - হার্ডওয়্যার ইঞ্জিনিয়ারিং - তত্ত্ব এবং ধারণাগুলি
    • বিটওয়াইজ - অ্যাডভান্সড সি / সি ++ হার্ডওয়্যার এমুলেশনের মাধ্যমে একটি এসেমব্লার ডিজাইন করা
    • বো কিয়ান - ডেটা স্ট্রাকচার এবং অ্যালগরিদমে সি ++ বিষয়।
    • লাইনবায়াইন - ভলকান প্রোগ্রামিং
    • জোশুয়া শুকার - ভলকান প্রোগ্রামিং
    • www.MarekKnows.com - সি ++, থ্রিডি ম্যাথ এবং গেম ইঞ্জিন বিকাশ

এবং এগুলি আমার এই বিষয়গুলিতে থাকা বিভিন্ন বইয়ের কিছু বিবেচনায় নেয় না।

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


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

-2

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

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

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

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

এই অ-তুচ্ছ বিষয়টিতে বিশ্ববিদ্যালয়ের পাঠ্যপুস্তকের কমপক্ষে 3 টি স্তর রয়েছে।


2
এটি এমওভি অপারেশনকে কীভাবে বাইনারি মান হিসাবে আবৃত করা হয় তা ব্যাখ্যা করে না। এটি নির্দেশের এমওভি অপারেশনটি একটি মান, এটি আমরা ব্যবহার করি এমন একটি কীওয়ার্ডের উল্লেখ করে না, তাই আমাদের 16 থেকে 32 বিট বাইনারি মান মুখস্থ করতে হবে না।
রামহাউন্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.