মেশিন কোডটি চালানোর সময় আসলে দেখতে কেমন?


21

যখন মেশিন কোডটি আসলে হার্ডওয়্যার এবং সিপিইউ দ্বারা চালিত হয়, তখন এটি দেখতে কেমন লাগে?

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


24
আপনি যা দেখতে পাবেন তা হ'ল তার, গেট এবং সিলিকনে ঝাঁকুনির নিবন্ধগুলি। উদাহরণস্বরূপ, ভিজ্যুয়াল 6502.org/JSSim
নায়ুকি

4
@ নায়ুকি আমি মনে করি এই দৃশ্যায়নটি দুর্দান্ত এবং এটি একটি উত্তর দেওয়ার যোগ্য!
নলজোক

2
এটি আমার কাছে কোনও কিছুর মতো দেখাচ্ছে না
গাইস

3
এটি সত্যই যখন "মৃত্যুদন্ড কার্যকর" হয় তখন এটি এমনকি উপস্থিত থাকে না। এটি মাইক্রোকোডে সিপিইউতে একটি (হার্ডওয়্যার!) ডিভাইস দ্বারা "জেআইটি সংকলিত", যা আসলে সিপিইউকে নির্দেশ দেয়!
xuq01

2
কম্পিউটার কীভাবে অনুবাদ করে তা বোঝার একটি দ্রুত উপায় লজিক গেট থেকে একটি তৈরি করা, বেন ইটার youtube.com/playlist?list=PLowKtXNTBypGqImE405J2565dvjafglHU
ফেরিবিগ

উত্তর:


38

আমি সবচেয়ে ভাল উত্তর দিতে পারি, এটি আসলে কোনও কিছুর মতো "চেহারা" নয়। সিপিইউ দ্বারা বর্তমানে সম্পাদন করা নির্দেশটি তারের একটি ধারাবাহিকভাবে প্রতিনিধিত্ব করে, যার কয়েকটিতে উচ্চ ভোল্টেজ রয়েছে, যার কয়েকটিতে কম ভোল্টেজ রয়েছে।

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

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


সুতরাং, আপনি কি কোনও হেক্স সম্পাদকের মধ্যে একটি প্রোগ্রাম খুলতে পারেন, এবং হেক্সে উপস্থাপিত সেই বাইটগুলি মেশিন কোড বাইনারিতে অনুবাদ করে যা শূন্যকে নির্ধারিত একটি ভোল্টেজ এবং একটিতে নির্ধারিত একটি ভোল্টেজ দ্বারা চালিত হতে পারে?
টিম হার্ড 19

4
@ টিমহার্ডলি ইয়েপ! হেক্স পড়তে কেবল সহজ। অ্যাসেম্বলি, একইভাবে, পড়া সহজ এমনকি সহজ, তবে শূন্য এবং একটিতে যান্ত্রিকভাবে অনুবাদ করা যেতে পারে। এজন্য সংকলকগণ কমপাইলারদের চেয়ে লেখাই সহজ।
ড্রাকনিস

ধন্যবাদ, এই পুরো প্রশ্নটি আমার জ্ঞানকে প্রসারিত করেছে এবং আমার বিভ্রান্তি দূর করেছে।
টিম হার্ড 2

1
@ টিমহার্ডলি একটি এসেমব্লার কেবল "এনওপি" এর মতো অক্ষরের একটি ক্রমকে "10010000" এর মতো বিটগুলিতে মেশিন কোডে রূপান্তর করতে ম্যাপ করে maps ওপকোডগুলি সিপিইউ দ্বারা নির্ধারিত হয়, যেহেতু এটি সেই অংশ যা আসলে তাদের ব্যবহার করবে। সমস্ত কম্পিউটার যা একই এক্সিকিউটেবল চালাতে পারে প্রকৃতপক্ষে অপকডগুলির একই সেট থাকে; x86 সেটটি সর্বাধিক সাধারণ, এবং আজকাল সমস্ত পিসিতে ব্যবহার করা হয়। আর একটি সাধারণ এমআইপিএস যা প্রচুর গেম কনসোলে ব্যবহৃত হয়।
ড্রাকনিস

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

11

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

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

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

আধুনিক স্মৃতি সমান্তরালে ডেটা প্রবাহিত করে। এর অর্থ মেশিন কোড তৈরি করা বিটগুলি "লেন" (32 বা 64 টি সাধারণ) হিসাবে বিভক্ত হয়ে গেছে যা র‌্যাম থেকে সিপিইউতে 32/64 তারগুলি বলার যৌক্তিক উপায়। এই লাইনের ভোল্টেজটি সিপিইউতে সংক্রমণ করার জন্য প্রয়োজনীয় এবং উত্থাপিত হয়।

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

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

এটা এত ঘটনাচক্রে, আমি মনে করি মার্টিন Molin সেরা রূপক নির্মাণ হতে পারে তার সঙ্গে, মার্বেল মেশিনমেশিন কোডটি ক্যাপাসিটরের ভোল্টেজের পরিবর্তে মাঝের কয়েকটি লেগো টেকনিক্স স্ট্রিপগুলিতে প্যাগ হিসাবে এনকোড করা হয়। এটি DRAM এর চেয়ে EPROM এর মতো , তবে উভয়ই ডেটা ধরে রাখে। মার্বেলগুলি বৈদ্যুতিনগুলির মতো, ভোল্টেজগুলি (বা মার্বেলের ক্ষেত্রে মাধ্যাকর্ষণ) দ্বারা সরানো হয়। এবং ইলেক্ট্রনগুলি সরানোর সাথে সাথে, তারা গেটগুলিতে বল প্রয়োগ করে যা কাজ করে।

একটি আধুনিক সিপিইউয়ের সাথে তুলনা করে তাঁর যন্ত্রটি সহজ, তবে রূপকগুলিতে যতটা খারাপ হয় তেমনটি মন্দ নয়। এবং এটি আকর্ষণীয়!


1
ভিডিওতে মার্বেল যন্ত্রটি এর পক্ষে খুব সহজ। একটি সিপিইউতে রাষ্ট্রের প্রয়োজন।
থরবজর্ন রাভন অ্যান্ডারসন

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

ধন্যবাদ! আমি এই প্রশ্নের উপরে যে উত্তরটি দিয়েছিলাম তার অনুরূপ, এসেম্বল এসেম্বল কোডকে মেশিন কোড হিসাবে বিবেচনা করা হবে যা ভোল্টেজ এবং জিনিসগুলিতে অনুবাদ করা হয়?
টিম হার্ডলি

@ টিমহার্ডলি "একত্রিত," "সমাবেশ," এবং "মেশিন কোড," এর একমাত্র অর্থ ব্যবহার করে সমাবেশ সমাবেশের পণ্যটিকে মেশিন কোড হিসাবে সংজ্ঞায়িত করা হয় (সুতরাং হ্যাঁ, এটি = = হিসাবে বিবেচনা করা যেতে পারে)। সহায়তা করতে পারে এমন কিছু হ'ল সমাবেশ এবং মেশিন কোড উভয়ই "যৌক্তিক" ধারণা হিসাবে বিবেচিত হয়, "2 + 2 = 4" এর গাণিতিক ধারণার কাছাকাছি এবং সেই কাগজটির গ্রাফাইট থেকে যার উপরে সেই সমীকরণ লেখা হয়। সমাবেশ / মেশিন-কোড হ'ল সমাবেশ / মেশিন-কোড কিনা তা চৌম্বকীয় ডিস্কে সংরক্ষণ করা হচ্ছে, কাগজের টুকরোতে লেখা আছে বা ডিআরএএম-তে ক্যাপাসিটারগুলিতে সঞ্চিত রয়েছে কিনা।
কর্ট অ্যামোন - মনিকা

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

10

পরীক্ষা করে দেখুন এই ভিডিওটি বিশেষত 1:00 1:17 চাপ দিতে থাকেন। কম্পিউটারে যখন কোনও প্রোগ্রাম চলমান থাকে তখন ঠিক এটির মতোই লাগে। দুটি সারি আলোর ঠিকানা নিবন্ধ এবং ডেটা নিবন্ধকের বর্তমান সামগ্রীগুলি প্রদর্শিত হয়। পিডিপি -11 এর কোনও নির্দেশিকা নিবন্ধ নেই, তবে যদি সেখানে একটি থাকে এবং এর বিষয়বস্তুগুলি দেখানোর জন্য সামনের দিকে লাইট থাকে তবে এটি দেখতে দেখতে বেশ একইরকম দেখাবে। ১ lights টি লাইট - এর মধ্যে কিছু জ্বলছে, কিছু তাদের বন্ধ।

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

এটি একটি PDP11-70 যা 15.2 মেগাহার্টজ এ সঞ্চালিত হয় এবং প্রতিটি নির্দেশ কার্যকর করতে প্রায় 1.5 মাইক্রোসেকেন্ড নেয়। মানুষের চোখ 1-10 সেকেন্ডে নীচে পরিবর্তনগুলি সনাক্ত করতে পারে এবং পিডিপি -11 60,000 নির্দেশাবলী কার্যকর করতে পারে। মূলত, সমস্ত কিছু অস্পষ্ট।


বাহ, এটি একটি দুর্দান্ত উদাহরণ, আমি অন্যদের মতো দেখেছি, সেই লাইনে এমন কিছু রয়েছে যেখানে আপনি লাইট এবং অন্যান্য জিনিস দেখতে পাবেন। youtube.com/watch?v=yOyaJXpAYZQ
টিম হার্ডলি


6

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

আরআইএসসি-ভি এর জন্য ডিভিই ওয়েভস

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

এটি লক্ষণীয় যে এটি কেবলমাত্র প্রসেসরের সিমুলেশনটির উপস্থাপনা। ইতিমধ্যে বানোয়াট প্রসেসর চিপের জন্য এই ধরণের মতামত পাওয়ার কোনও উপায় নেই।


2

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

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

এই সমস্ত তথ্য গ্রহণ এবং একটি সুসংগত নির্দেশ স্ক্রোল জালিয়াতি সংকলক কাজ।

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

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