সিপিইউ স্তরে কীভাবে একটি প্রোগ্রাম কার্যকর করা হয়?


14

আমি জানি এটি একটি খুব সাধারণ প্রশ্ন। তবে আমার মনের একটা আলাদা অ্যাঙ্গেল আছে। আমি এখানে এটি স্পষ্ট করে বলার চেষ্টা করব।

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

তবে এটি বোঝার চেয়ে এটি টাইপ করা সহজ। সুতরাং সমস্ত সিপিইউ যদি যোগ, বিয়োগ ইত্যাদি করে থাকে, তবে কোনও প্রোগ্রাম কেমন হয়, এই JAVA প্রোগ্রামটি বলুন প্রিন্ট হ্যালো ওয়ার্ল্ড, এই গাণিতিক ক্রিয়াকলাপগুলির সাথে মৃত্যুদন্ড কার্যকর?

আমি বোঝাতে চাইছি কীভাবে এই প্রোগ্রামটি এমন কিছুতে রূপান্তরিত হয় যা সিপিইউর জন্য কেবল একটি সংযোজন?

পিএস যদি এই ওয়েবসাইটটির জন্য এই প্রযোজ্য না হয় তবে আমি ক্ষমা চাইছি।

-----অংশ দুই-----

ঠিক আছে. এই দ্রুত এবং এই উত্সাহের সাথে উত্তর দেওয়ার জন্য সকলকে ধন্যবাদ। আমি আমার উত্তরটি গিয়ে সমস্ত উত্তরগুলিতে মন্তব্য করা এবং তাদেরকে আবার জিজ্ঞাসা করার চেয়ে কিছুটা পরিবর্তন করতে চেয়েছি thought

সুতরাং এটি এখানে।

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

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

  1. মেমরি থেকে নির্দেশিকাটি পড়ুন (ডেটা এবং ঠিকানা বাস এবং প্রোগ্রামের কাউন্টার স্টাফ ব্যবহার করে)

    1. সিপিইউতে রেজিস্টারে তথ্য সঞ্চয় করুন
    2. এখন ALU পাটিগণিতের অপারেশন করে অবশ্যই নির্দেশকে ডিকোড করার পরে বা একটি লাফ দেয় যদি এটির মতো নির্দেশের মতো হয়
    3. এবং তারপরে আউটপুট ডিভাইস ইত্যাদির মতো প্রয়োজন হলে অন্যান্য সংস্থানগুলির সাথে যোগাযোগ করা। এর বাইরে প্রক্রিয়াগুলি আপাতত নগণ্য।

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

আমি আশা করি এবার নিজেকে পরিষ্কার করে দেব।

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


আমি বুঝতে পারি যে সংকলক প্রোগ্রামটিকে মেশিনের ভাষায় রূপান্তর করে। আমি পাটিগণিত অপারেশন হিসাবে একটি প্রোগ্রাম কল্পনা করতে পারবেন না। প্রোগ্রাম নিজেই যদি দুটি সংখ্যা যুক্ত করার বিষয়ে হয় তবে তা বোধগম্য তবে অন্যথায় নয়..ইয়েট !! :)
ব্যবহারকারী 2827893

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

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

1
আপনি (মনে হয়) এখনও দৃ firm়ভাবে IF (সিদ্ধান্ত নেওয়া) এবং সরানো (ডেটা পড়া এবং সংরক্ষণের জন্য) দেখতে অস্বীকার করছেন, প্রোগ্রামিং যদি 99% হয় এবং সরান। পাটিগণিত অবহেলাযোগ্য। আপনার প্রথম উদাহরণ (হ্যালো ওয়ার্ল্ড) এর কোনও গাণিতিক নেই।
edc65

1
১. আমি মনে করি আপনি কী জিজ্ঞাসা করছেন তা পরিবর্তনের জন্য এই প্রশ্নটি সম্পাদনা করার পরিবর্তে আপনি যদি আপনার নতুন বিভ্রান্তি নিয়ে একটি নতুন প্রশ্ন জিজ্ঞাসা করেন তবে আপনি ভাল উত্তর পেতে পারেন। আপনি আপনার মূল প্রশ্নের ভাল উত্তর পেয়েছেন এবং আপনার মূল প্রশ্নটি মনে হচ্ছে এটি নিজেরাই দাঁড়াতে পারে, তবে সম্পাদনাটি সরিয়ে নতুন প্রশ্ন জিজ্ঞাসা করবেন না কেন? 2. এটি বলেছিল, আমি নতুন অংশটি বুঝতে পারি না। নতুন অংশ সম্পর্কে আপনার প্রশ্নটি ঠিক কী? যখন আপনি বলবেন, আপনি কি বোঝাতে চেয়েছেন আপনি "এই হল যেখানে আমার কল্পনা শেষ হয়" না ধাপ 3 বুঝতে, অথবা আপনি ধাপ 3 বোঝেন না? আপনি যদি করেন, আপনি কি বুঝতে না?
DW

উত্তর:


7

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

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

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


ধন্যবাদ @ লোরহেড এই ব্যাখ্যাটি ভাল আর্ট দেখায় হ্যালো ওয়ার্ল্ড উদাহরণ।
ব্যবহারকারী 2827893

5

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

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

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

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

যদি আপনার সিপিইউ এখন এইচ-এর জন্য সমস্ত লাইন সেট করে, 7-বিভাগটি এইচ প্রদর্শন করবে, যদিও এইচ এমন একটি সংখ্যা নয় যা কোনও সিপিইউ যোগ করবে বা বিয়োগ করবে।

এখন, যদি সমস্ত স্তরগুলি 7-সেগমেন্ট-ডিসপ্লে এইচ (উচ্চে 5 টি নির্দিষ্ট লাইন সেট করে) তৈরি করার জন্য প্রয়োজনীয় হয় তবে জাভা সংকলক এটি এইচ প্রদর্শন করতে কোড তৈরি করতে পারে This এটি অবশ্যই অসুবিধাজনক - তাই স্তরগুলি শুরু হয় বিমূর্ত করা। সর্বনিম্ন স্তরটি দিয়ে শুরু হবে: "হ্যাঁ, এখানে 26 টি বর্ণের মতো রয়েছে, আসুন প্রতিটি বর্ণকে সংখ্যা নির্ধারণ করুন - আমরা 'এইচ' অক্ষরটি '72' নম্বরটি কীভাবে দেব? তারপরে আপনি কেবল আমাকে" প্রদর্শনী পত্র 72 "বলতে পারবেন, "সেট লাইন 309 উচ্চ, সেট লাইন 310 উচ্চ, সেট লাইন 498 উচ্চ, সেট লাইন 549 উচ্চ, সেট লাইন 3 উচ্চ" সেট করুন পরিবর্তে। এবং সুতরাং প্রতিটি স্তরটি বিমূর্ত তথ্য শুরু করে, নির্দিষ্ট ফলাফলগুলি কীভাবে অর্জন করতে হয়, সুতরাং আপনার প্রয়োজন হবে না তাদের যত্ন নেওয়া।

সুতরাং হ্যাঁ, এটি সংখ্যার বা বিটগুলির একটি হুগুয়েজ ম্যাপিংয়ের সমান, সিপিইউ আসলে প্রক্রিয়া করতে পারে, এই শর্তে যে চেইনের প্রত্যেকে সম্মত হয়েছিল।


3

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

ক্লাসে, আমরা রেজিস্টারগুলিতে প্রকৃত যুক্তি গেটগুলিতে সেই রেজিস্টার-ট্রান্সফার স্বরলিপিটি ছিটিয়েছি! এটি নিজেই লিখেছেন: গন্তব্য হিসাবে 'এ' নিবন্ধিত আছে এমন সমস্ত কিছু দেখুন, এবং কোড এ = (কেস 1) বা (কেস 2) ... এবং এটি পণ্যগুলির সমষ্টি বা পণ্য-সমষ্টিগুলির নর্মলাইজড ফর্ম হিসাবে প্রকাশিত হবে।

কেবলমাত্র কোর্স শেষে আমি শিখলাম যে এটি একটি আসল সিপিইউ: পিডিপি -8 যদি আমি সঠিকভাবে স্মরণ করি।

আজ আপনি গেট ডায়াগ্রামকে একটি প্রোগ্রামেবল লজিক অ্যারে চিপে ফিড করতে পারেন।

এটি এর মূল বক্তব্য: একটি রেজিস্টার সেট করা হয় এবং ফলাফলগুলি এবং ওআর গেটগুলি অন্য রেজিস্টারে ফিরে যায়। অন্তর্ভুক্ত করার মানগুলির মধ্যে একটি হ'ল অপকোড মান।

সুতরাং কল্পনা করুন: এ: = (অপকোড == 17 এবং এক্স + ওয়াই) | (অপকোড == 18 এবং এক্স + জেড) | ...

আধুনিক সিপাস পাইপলাইন এবং বাস সহ আরও জটিল, তবে একক ALU এর মতো পৃথক সাবুনিটগুলি সেভাবে কাজ করে।


2

আপনি এখানে সিপিইউ বিবেচনা করছেন, তবে 'হ্যালো ওয়ার্ল্ড' চালানোর সময় আরও একটি উপাদান জড়িত রয়েছে: প্রদর্শন!

সিপিইউ-র জন্য, মেমরির মান একটি প্রদত্ত সংখ্যা বিট (0 এবং 1 এর) হিসাবে প্রতিনিধিত্ব করে কেবল একটি সংখ্যা।

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

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

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

শেষ পর্যন্ত, আপনার সন্দেহ হওয়ার সাথে সাথে অনেকগুলি ঘটেছে, তবে আপনাকে সমস্ত কোড লিখতে হয়নি।


1

তাত্ত্বিক কম্পিউটার বিজ্ঞানের ক্ষেত্র থেকে আপনার প্রশ্নের একটি আনুষ্ঠানিক পন্থা এখানে।

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

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

দ্রষ্টব্য: এটি অত্যধিক সরল করা হয়েছে, তবে আমার মতে এটি একটি সুন্দর অন্তর্দৃষ্টি দেয়।


1

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

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

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

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

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


0

সিপিইউগুলি এটির মতো কাজ করে:

  • বর্তমান নির্দেশ আনুন, বর্ধিত "বর্তমান নির্দেশ" পয়েন্টার।

  • এটি ডিকোড করুন (উদাহরণস্বরূপ, সিপিইউকে এই নির্দেশনাটি কী বলছে তা সন্ধান করুন)

  • এটি সম্পাদন করুন (নির্দেশ যা বলেছেন তাই করুন) - বর্তমান নির্দেশ নির্দেশকটি যদি "জম্প" এর মতো কিছু হয় তবে এটি পরিবর্তন করা যেতে পারে।

  • চিরকাল পুনরাবৃত্তি করুন

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

বিভিন্ন ধরণের নির্দেশনা রয়েছে, এর বেশিরভাগের উদাহরণ হ'ল:

  • "সরান" নির্দেশাবলী। এগুলি এক্সকে অন্য কোনও এক্সে অনুলিপি করতে পারে, যেখানে এক্স মেমরি (র‌্যাম), একটি রেজিস্টার, বা সিপিইউ যদি এমন ধারণা সমর্থন করে তবে I / O স্পেসের একটি ঠিকানা।

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

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

  • গণিত ক্রিয়াকলাপগুলির একটি বিশেষ ক্ষেত্রে তুলনা নির্দেশাবলী, যা বিয়োগের সমান, তবে ফলাফলটি রাখা হয় না। পতাকা এখনও প্রভাবিত হয়।

  • এখানে শাখার নির্দেশাবলী রয়েছে যে কোনও মেমরি ঠিকানায় লাফ দেয় যদি নির্দিষ্ট পতাকা সেট করা থাকে। উপরে বর্ণিত "শূন্য" পতাকাটি মনে আছে? এটি "যদি সমান" পতাকা হিসাবে দ্বিগুণ হয়, তাই আপনি BEQঅনেকগুলি সিপিইউয়ের মতো নির্দেশনা দেখতে পান যা "শূন্য" পতাকা সেট করা থাকলে প্রকৃতপক্ষে শাখা করে।

  • যৌক্তিক ক্রিয়াকলাপগুলি সম্পাদন করার নির্দেশাবলী (এবং, বা, নয়), শিফট বিট এবং পরীক্ষার বিট। তারা সিপিইউর উপর নির্ভর করে গণিতের নির্দেশের মতো পতাকাগুলিকে প্রভাবিত করতে পারে।

  • নির্দেশনা যা নিঃশর্ত লাফিয়ে।

  • স্ট্যাকের উপর ফেরতের ঠিকানাটি ঝাঁপিয়ে ও সংরক্ষণের নির্দেশাবলী (একটি "কল") এবং অন্যান্য নির্দেশাবলী যা স্ট্যাকের বাইরে কোনও ঠিকানা পপ করে (একটি "রিটার্ন")।

  • সিপিইউ থামিয়ে দেয় এমন সিপিইউ সনাক্ত করে বা ইন্টারপ্রেট হ্যান্ডলারদের কল করার মতো বিশেষ নির্দেশাবলী।

  • "কোনও অপারেশন নয়" - প্রায় সমস্ত সিপিইউ-র একটি "নো-অপশন" নির্দেশনা রয়েছে যা কেবল চক্র গ্রহণ করে এবং এগিয়ে চলে।

এটি সত্যিই কেবল একটি উদাহরণ, সেখানে কম ধরণের নির্দেশাবলী সহ সিপিইউ রয়েছে এবং আরও বেশি সিপিইউ রয়েছে।

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

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