कंप्यूटर कैसे काम करता है?


40

मैं कई सालों से कंप्यूटर निडर रहा हूं। मैं काफी कुछ भाषाओं में कार्यक्रम कर सकता हूं, और मैं उनका निर्माण भी कर सकता हूं। मैं दूसरे दिन एक दोस्त के साथ बैठ गया और पूछा कि एक कंप्यूटर वास्तव में बिजली कैसे लेता है और इसके साथ कुछ करता है, और हम अभी इसे समझ नहीं पाए, और Google भी ज्यादा मदद नहीं कर रहा था।

मेरा मतलब है, कैसे एक कंप्यूटर बिजली का एक निरंतर प्रवाह लेता है और इसे 1 और 0 में बदल देता है और फिर वास्तव में उन 1 और 0 के साथ कुछ करता है जैसे 15 सेकंड के लिए एक प्रकाश चालू होता है?

मैं द्वार (और, या, नंद, नंद, नहीं) और डायोड , प्रतिरोधों और ट्रांजिस्टर के बारे में थोड़ा समझता हूं , लेकिन मुझे लगा कि यह सही जगह होगी जो इसे सही शब्दों में समझाया गया है!

क्या कोई मुझे सही दिशा में इंगित कर सकता है या मुझे एक संक्षिप्त विवरण दे सकता है?


8
आप यह भी पूछ सकते हैं कि "बैक्टीरिया कैसे काम करते हैं?"। यह एक अविश्वसनीय रूप से व्यापक सवाल है। मेरा सुझाव है कि आप एक साधारण प्रोसेसर आर्किटेक्चर को देखें (जैसे MIPS ; हमें इसे कक्षा में पढ़ाया गया था) और वहाँ से नीचे और ऊपर की ओर काम करते हैं। इस तरह से आप जिस तरह से सवालों का सामना करते हैं, वह शायद स्टैक एक्सचेंज के लिए बहुत बेहतर है।
राफेल

3
मुझे पता है कि बैक्टीरिया कैसे काम करते हैं, इसका कंप्यूटर मैं नहीं मिलता है
क्रिश्चियन

14
कल्पित बौने। छोटे जादू कल्पित बौने।
जेफई


1
यह जानने का सबसे अच्छा तरीका है कि कंप्यूटर वास्तव में सबसे निचले स्तर पर कैसे काम करता है, एक fpga पर या नंद द्वार से मैन्युअल रूप से एक सरलीकृत माइक्रोकंट्रोलर डिजाइन करना है। मैंने इसे "कंप्यूटर आर्किटेक्चर" वर्ग में किया है और यह वास्तव में एक आंख खोलने वाला था। यदि आप नंगे न्यूनतम पर सब कुछ रखते हैं, और इसके अलावा, बिट हेरफेर और एक सशर्त छलांग के साथ 4-बिट नियंत्रक डिज़ाइन करना भी मुश्किल नहीं है। या और भी सरल, एक हार्डवेयर जो एक सरलीकृत ट्यूरिंग मशीन को लागू करता है। हम्म, इस जू ने मुझे एक विचार दिया: जानें कि ट्यूरिंग मशीन कैसे काम करती है। यह आपको एक अच्छी जानकारी देगा।
vsz

जवाबों:


47

यह एक व्यापक प्रश्न है जिसका आसान उत्तर नहीं है; यह फ़ायरफ़ॉक्स में एक वेबसाइट को प्रस्तुत करने के लिए तांबे के तारों के साथ-साथ इलेक्ट्रॉनों से एक लंबा रास्ता तय करता है। मैं आपको नीचे से ऊपर तक एक सिंहावलोकन देने का प्रयास करूँगा और आपको देखने के लिए सही चीज़ों की ओर इशारा करूँगा।

एन्कोडिंग संख्या

मूल प्रेरणा चीजों की गणना करना है, जैसा कि अंकगणित करने में है। पहली बात यह है कि संख्याओं का प्रतिनिधित्व कैसे करें। दशमलव या टर्नरी का उपयोग करते हुए कई दृष्टिकोण रहे हैं और मुझे लगता है कि यहां तक ​​कि अष्टक प्रणाली भी है, लेकिन अंत में, बाइनरी जीत गई। अब हम जानते हैं कि हमें ऐसे उपकरणों का निर्माण करना होगा जो दो मूल्यों से निपटते हैं - चलो उन्हें और कहते हैं ।01

ध्यान दें कि बाइनरी में संख्याओं को एनकोड करने के कई तरीके भी हैं। अपना पहला प्रोसेसर बनाने के बाद, आपको कुछ तरीकों से काम करने के फायदों का एहसास होता है। लोकप्रिय उदाहरण दो-पूरक और IEEE फ़्लोट हैं । शुरुआत के लिए, अपने आप को सादे प्राकृतिक संख्या तक सीमित रखें।

गेट्स

मान लें कि हम बाइनरी एन्कोडिंग का उपयोग करते हैं। इस बारे में सोचें कि आपने प्राथमिक विद्यालय में जोड़ना कैसे सीखा और द्विआधारी संख्याओं के लिए समान लिखें। जैसा कि यह पता चला है, बूलियन बीजगणित के निर्माण खंड पहले से ही आपके लिए हैं; लॉजिक गेट्स का उपयोग करके एक बुनियादी योजक (और अन्य अंकगणितीय कार्य) का निर्माण करना आसान है ।

इस तरह के द्वार का निर्माण कंप्यूटर विज्ञान के दायरे से बाहर है; इलेट्रिकल इंजीनियरिंग ने उदाहरण के लिए ट्यूब या ट्रांजिस्टर का उपयोग करके कई समाधान प्रदान किए हैं । इस पर प्रश्नों के लिए इलेक्ट्रिकल इंजीनियरिंग स्टैक एक्सचेंज का प्रमुख ।

घड़ी और राज्य

सभी गेट समान रूप से तेज़ नहीं होते हैं और गणना के सभी भागों में समान गेट नहीं होते हैं। इसलिए, हमें अतिरिक्त ध्यान रखना होगा कि व्यक्तिगत संचालन एक-दूसरे से आगे न बढ़ें। यह एक वैश्विक घड़ी का उपयोग करने के लिए उपयोगी साबित हुआ है ; गेटों के दिए गए नेटवर्क का परिणाम चक्र के अंत में आउटपुट तारों की स्थिति है (जो कि अपने व्यक्तिगत अंतिम राज्यों की ओर कैस्केड करते समय बेतहाशा बदल सकते हैं)।

इसका मतलब है कि एक चक्र के परिणाम अगले चक्र शुरू होने तक संग्रहीत किए जा सकते हैं, उदाहरण के लिए यदि आप छोरों को तार करते हैं। कई बुनियादी तत्व हैं जिनका उपयोग आप अलग-अलग प्रभाव के लिए कर सकते हैं, सभी गेटों से निर्मित होते हैं; कुछ फ्लिप-फ्लॉप कहलाते हैं । उन का उपयोग रजिस्टर बनाने के लिए भी किया जाता है , ऐसे तत्व जो आवश्यकतानुसार कई घड़ी चक्रों के लिए संख्याओं को संग्रहीत करते हैं।

आर्किटेक्चर और कमांड्स

अब आपके पास बनाने के लिए असंख्य डिज़ाइन विकल्प हैं। आपके प्रोसेसर क्या अंकगणित संचालन प्रदान करता है? आपके आदेश क्या दिखते हैं? यह MIPS वास्तुकला को देखने के लिए शैक्षिक हो सकता है, जिसके प्रारंभिक रूप अन्य डिजाइनों की तुलना में आसान हैं। योजनाओं पर एक नजर :

MIPS एकल चरण
से मूल http://ube.ege.edu.tr/~erciyes/CENG311

अनिवार्य रूप से, यह लाने और आदेशों का एक समूह, ALU और नियंत्रण को हटाने वाला है । कमांड को सांकेतिक शब्दों में बदलना है, जो ALU ऑपरेशन को किस ऑपरेंड (जिस नंबर पर रजिस्टर किया गया है, उसके द्वारा) को कैसे प्रोग्राम काउंटरulate में हेरफेर करता है या कौन से / से मेमोरी³ में लोड / स्टोर करने के लिए रजिस्टर करता है।

आगे के विचार

अब तक आपके पास आधुनिक अर्थों में एक काम करने वाला प्रोसेसर है, यह मानते हुए कि आप एक मेमोरी का निर्माण कैसे करते हैं और इसे कमांड करने का एक तरीका है। एक आधुनिक मशीन के रास्ते में, कई विकल्प बनाने होंगे। यहाँ कुछ हैं:

वैकल्पिक

उपरोक्त बहुत अधिक प्रभावित है कि इतिहास कैसे निकला। अलग-अलग दिमाग वाली दुनिया में, कंप्यूटर अलग तरीके से काम कर सकते हैं। वास्तव में, गणना के बहुत सारे मॉडल हैं , जिनमें से कुछ के फायदे हैं जो उन्हें कई मामलों में वास्तविक मशीनों के लिए अमूर्त के रूप में उपयोगी बनाते हैं। हमारे दिमाग के काम करने के तरीके की नकल करने की कोशिशें भी हैं, जो कि तंत्रिका कंप्यूटिंग को सक्षम करने के लिए है , या अधिक सामान्यतः प्रकृति में मनाए जाने वाले समस्या-समाधान और सूचना-भंडारण रणनीतियों का फायदा उठाने के लिए है , सबसे प्रमुख रूप से डीएनए और क्वांटम कंप्यूटिंग।

तो शायद (उम्मीद है?) उपरोक्त जानकारी अब से ५० या १०० साल बाद सभी प्राचीन इतिहास है।


  1. आज हम कंप्यूटर के साथ जो भी फैंसी चीजें करते हैं, वे कई छोटे अंकगणितीय कार्यों में टूट जाती हैं, जिन्हें प्रोसेसर एक-एक करके निष्पादित करता है।
  2. यदि आपका मॉडल प्रोग्राम को नियंत्रण प्रवाह में हेरफेर करने की अनुमति देता है, तो यह मेमोरी एड्रेस होगा जो प्रोसेसर को अगला निर्देश प्राप्त करता है। आप उन मशीनों की भी कल्पना कर सकते हैं जो केवल एक टेप से निर्देशों का एक निश्चित सेट पढ़ते हैं। वास्तव में, प्रारंभिक कार्यान्वयन ने ऐसा किया। नो जंप का मतलब नो लूप्स; एक कार्यक्रम डेटा के आधार पर निर्देशों की एक पूरी तरह से अनियंत्रित / अनफोल्ड श्रृंखला थी। जाहिर है, कई इनपुट डेटा के लिए एक ही प्रोग्राम का उपयोग करने में सक्षम होना अधिक शक्तिशाली है।
  3. मान लिया कि आपके पास स्मृति है; आपका प्रोसेसर बिना ठीक काम करता है, लेकिन उसके बाद एक ही बार में इतने सारे मूल्यों से निपट सकता है। शुरुआती कंप्यूटरों ने टेपों से अपने सभी डेटा को पढ़ा और उन्हें रजिस्टरों में रखा। कोई स्मृति नहीं थी, अकेले लिखने योग्य, निरंतर भंडारण के रूप में हम आज इसे जानते हैं।

वाह! यह एक ताली का हकदार है। वह बहुत अच्छा पढ़ा था। साझा करने के लिए धन्यवाद। मैंने निश्चित रूप से कुछ सीखा है। हालांकि, यह पढ़ने के बाद, मुझे लगता है कि मैं जो जानना चाहता हूं, वह इलेक्ट्रिकल इंजीनियरिंग के मूल सिद्धांतों के संदर्भ में अधिक है कि यह भौतिक रूप से बिजली को कैसे नियंत्रित करता है। मैं उस समूह के लिए आज ही थोड़ा बाद में वही प्रश्न पोस्ट करूंगा। धन्यवाद!
ईसाई

1
मेरे साथ यह हुआ कि मुझे "मशीन पार्ट से बात करना" शामिल करना चाहिए था। इसका मतलब है कि भाषा को डिजाइन करना मनुष्य आपके द्वारा निर्दिष्ट निर्देश पर कुशलतापूर्वक और इसे (एक संकलक के साथ) अनुवाद करके काम कर सकता है। ये कंप्यूटर विज्ञान के मुख्य विषय हैं, जबकि मेरे उत्तर में सामग्री ज्यादातर कंप्यूटर इंजीनियरिंग है
राफेल

मैं कल्पना करता हूं कि यह कोई त्वरित जवाब नहीं है। एक दिन मैं कुछ कंप्यूटर इंजीनियर को भुगतान करूंगा, जो मदरबोर्ड या मोबाइल फोन की पसंद का निर्माण करता है, बस कैसे फंडामेंटल काम करता है। यह कहना है, कैसे एक कंप्यूटर वास्तव में 5 सेकंड के लिए एक प्रकाश की गणना करता है या चालू करता है और फिर बंद कर देता है। मैं स्विच और कैपेसिटर के साथ बहुत कुछ करने की कल्पना करता हूं।
ईसाई

@ क्रिसियन यदि आप कुछ पैसे बचाना चाहते हैं, तो ईई प्रयोग बॉक्स (जैसे बच्चों के लिए) खरीदने पर विचार करें जिसमें ट्रांजिस्टर शामिल हैं। लाइटिंग स्विच करना या एक छोटे से योजक का निर्माण आमतौर पर शामिल है, afaik। (फिर से, इलेक्ट्रिकल इंजीनियरिंग लोगों शायद और अधिक जानते हैं।)
राफेल

25

पूरी तस्वीर काफी जटिल है। एक दूसरे के ऊपर कई परतें बनी हैं जो विद्युत वोल्टेज के शीर्ष पर सामूहिक रूप से उच्च-स्तरीय अमूर्तता को लागू करती हैं। सब कुछ एक साथ कैसे रखा जाता है, इसका कोई सरल विवरण नहीं है, खासकर यह देखते हुए कि कंप्यूटर हार्डवेयर और सॉफ्टवेयर पिछले पचास वर्षों में नाटकीय रूप से विकसित हुए हैं।

यदि आप यह देखने में रुचि रखते हैं कि सब कुछ एक साथ कैसे रखा गया है, तो आप कम्प्यूटिंग सिस्टम के तत्वों की जांच करना चाहते हैं , एक किताब जो नंद द्वार से शुरू होती है और उत्तरोत्तर संकलक और ऑपरेटिंग सिस्टम के शीर्ष पर टेट्रिस के एक कार्यशील कार्यान्वयन का निर्माण करती है जो आप भी बनाइए। कंप्यूटर का प्रत्येक टुकड़ा पिछले एक पर बनाया गया है, जो आपको यह देखने में मदद कर सकता है कि सब कुछ कैसे काम करता है।


यह एक सही शुरुआत की तरह लगता है। वहां से शुरू होगा। बहुत बहुत धन्यवाद :)
क्रिश्चियन

2
मैं चार्ल्स पेट्ज़ोल्ड द्वारा CODE पढ़ने की भी सलाह देता हूं।
ybakos

7

पॉडकास्ट सुरक्षा अब! आधार सिद्धांतों के साथ शुरू होने वाले कंप्यूटर कैसे काम करते हैं, इस पर एक श्रृंखला बनाई।

  • २३३ - लेट्स डिज़ाईन ए कम्प्यूटर (भाग १)
  • 235 - मशीन भाषा
  • 237 - अप्रत्यक्ष: पॉइंट ऑफ़ पॉवर (तकनीकी रूप से श्रृंखला का हिस्सा नहीं)
  • 239 - ढेर, रजिस्टर और पुनरावृत्ति
  • 241 - हार्डवेयर इंटरप्ट
  • 247 - "मल्टी" -verse
  • 250 - ऑपरेटिंग सिस्टम
  • 252 - RISCy व्यवसाय
  • 254 - स्पीड के लिए हम क्या करेंगे

संख्याओं में अंतराल इसलिए है क्योंकि हर दूसरा एपिसोड एक श्रोता फ़ीडबैक एपिसोड है, ताकि आप उन्हें भी देखना चाहें। इसके अलावा 241 और 247 के बीच उन्होंने SSL के बारे में कुछ एपिसोड किए जो उस समय की ब्रेकिंग न्यूज के कारण CA को मजबूर करने वाले देशों के बारे में थे।

साथ ही ई.पी. 248 "पोर्टेबल डॉग किलर" है जो कुत्तों को नहीं मारता है, लेकिन एक सोनिक बीम हथियार है जो स्टीव ने अपने बच्चे के रूप में एक पड़ोसी कुत्ते को बाड़ लाइन तक नहीं चलाने और फुटपाथ पर लोगों पर हमला करने की कोशिश करने में मदद करने के लिए बनाया था। ।


दिलचस्प! साझा करने के लिए धन्यवाद। में देख लूंगा।
ईसाई

4

एक कंप्यूटर ऊर्जा ग्रेडिएंट्स में हेरफेर करके काम करता है (जिसे हम 1, और 0 के रूप में व्याख्या करते हैं) एक सुसंगत , परिभाषित तरीके से। यह एक संगति है जो एक कंप्यूटर को परिभाषित करती है, जबकि यह परिभाषा है जो विभिन्न प्रोसेसर को अलग करती है।

इसके अलावा, किसी भी सामान्य-उद्देश्य वाले कंप्यूटर के निर्माण के लिए सिर्फ दो लॉजिक गेट (OR, और AND) पर्याप्त बिल्डिंग ब्लॉक्स के बारे में जानें। डैनी हिलिस और टिंकरटॉय कंप्यूटर भी देखें।


यह टिंकरटॉय के बारे में पढ़ा गया एक अंतर-विषय था, विशेष रूप से इस तथ्य से कि यह हमेशा जीतता है! ( Science20.com/brain_candyfeed_your_mind/ )
क्रिश्चियन

हालाँकि, हालांकि यह मुझे अच्छी जानकारी देता है कि एक कंप्यूटर 'सोचता है' यानी, इसे हर संयोजन और यांत्रिकी देकर, अगले दिए गए उत्तर को खोजने के लिए, यह मेरे मूल प्रश्न का उत्तर नहीं देता है कि वास्तव में कंप्यूटर कैसे बनाया जाए। मान लें कि मैं अपने स्थानीय इलेक्ट्रिकल हार्डवेयर स्टोर (जिसमें सब कुछ है) को हेडडेमेंटल बिट्स (ट्रांज़िटर्स, रेसिस्टर्स, कैपेसिटर, गेट्स इत्यादि) खरीदने के लिए ले जा रहा हूं और उन्हें कॉन्फ़िगर कर दूंगा, इसलिए मेरे पास एक अत्यंत बुनियादी कंप्यूटर है, मुझे क्या चाहिए होगा? आखिरकार, पहला कंप्यूटर बिट्स और तारों के साथ एक गोदाम का आकार था, इसलिए यह संभव होना चाहिए!
क्रिश्चियन

@ क्रिसियन: हाहा, ठीक है, बेसिक मेमोरी स्टोरेज के लिए कुछ फ्लिप-फ्लॉप गेट्स (और / या / नॉट) बनाएं और आप दो 4-बिट नंबर जोड़ने में सक्षम हो सकते हैं।

मेरे पास कुछ फ्लिप-फ्लॉप हैं! वास्तव में दो जोड़े।
ईसाई

3

कंप्यूटर एक बड़ा सिंक्रोनस लॉजिकल सिस्टम है , जिसका मतलब है कि

  • 0/1
  • यह एक (बहुत तेज) घड़ी के साथ संचालित होता है ताकि सभी संकेतों को सुसंगतता सुनिश्चित करने के लिए असतत क्षणों पर नमूना लिया जाए।

0/1

जब तक कंप्यूटर संचालित होता है (रैम, भारी मात्रा में) जानकारी को बनाए रखने के लिए इसमें विशेष सर्किट होते हैं। इसमें बाइनरी अंकगणितीय प्रदर्शन करने के लिए विशेष सर्किट हैं (वास्तव में बिट्स को समूहों में नियंत्रित किया जाता है - आमतौर पर 8 के गुणकों में - जो सामूहिक रूप से एक पूर्णांक संख्या का प्रतिनिधित्व करते हैं)। और इसमें मेमोरी पतों के आधार पर विशेष राउटिंग क्षमताएं हैं, जो पूर्णांक के अलावा और कुछ नहीं हैं।

अंतिम लेकिन कम से कम नहीं, एक आधुनिक कंप्यूटर में एक प्रोग्राम भी है जिसे रैम में संग्रहीत किया जाता है, जो पूर्णांकों के रूप में कोडित निर्देशों की एक सूची है, जिसे क्रमिक रूप से निष्पादित किया जाता है, आमतौर पर स्मृति से डेटा प्राप्त करना, कुछ अंकगणितीय प्रदर्शन करना और परिणामों को स्मृति में वापस भेजना।

आपके परिदृश्य में, कोई कार्यान्वयन के बारे में सोच सकता है जहां बीता हुआ समय रैम में कहीं संग्रहीत किया जाता है और कार्यक्रम को निर्देश देता है

  • बीता हुआ समय मान प्राप्त करें,
  • एक योजक के साथ इसे बढ़ाएँ,
  • इसकी तुलना एक पूर्वनिर्धारित विलंब के साथ एक तुलनाकर्ता से करें,
  • असमानता (यानी "छोरों") के मामले में प्रारंभिक कार्यक्रम के पते पर लौटें,
  • अन्यथा एक विशेष संकेत सेट करें जो रैम के बजाय एक बाहरी स्विच पर जाता है।

ध्यान दें कि ये सभी तत्व आजकल उच्च स्तर का परिष्कार प्राप्त करते हैं, और इस संक्षिप्त विवरण में प्रत्येक वाक्य स्पष्टीकरण की कई पुस्तकों का हकदार है।


-1

विलंब कार्य करने या बाइनरी डेटा को दशमलव डेटा या सिग्नल की शक्ति में बदलने के कई तरीके हैं। जब आप "15" का इनपुट करते हैं, तो कंप्यूटर स्क्रीन पर 15 नंबर की बिटमैप छवि प्रदर्शित करता है। यह वास्तव में बाइनरी मूल्य है, फिलहाल आपके कीबोर्ड का बाइनरी कोड भी सीपीयू को भेजा जाता है। यह डेटा को पार्स कर रहा होगा फिर कोड को ALU (अंकगणितीय तर्क इकाई) प्रसंस्करण इकाई में बदलकर इसे पल्स को DAC चिप में बदल देगा। एनालॉग सिग्नल अब फ्लिप-फ्लॉप सर्किट की आवृत्ति (khz से hz तक की आवृत्ति) को नियंत्रित कर रहा है। अब आवृत्ति आउटपुट रैम को निर्देशित किया जाएगा, और अगर डेटा "1111" है, तो सीपीयू रैम को मैच के लिए पढ़ता है। तो वह 4 सेकंड है।


मुझे यकीन नहीं है कि यह सवाल का जवाब कैसे देता है।
युवल फिल्मस

आप देख सकते हैं कि उन्होंने पूछा कि 15 सेकंड के लिए कंप्यूटर कैसे चमकता है, और मैं समझाता हूं कि कैसे कंप्यूटर लूप में उपयोग करने के लिए दूसरा मूल्य बनाता है।
लैन ...
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.