Intel 8253
इंटेल 8253 और 8254 प्रोग्रामेबल इंटरवल टाइमर (पी. आई. टी.) हैं, जो तीन 16-बिट काउंटरों का उपयोग करके समय और गिनती कार्य करते हैं। 825x परिवार को मुख्य रूप से इंटेल 8080/8085-प्रोसेसर के लिए डिज़ाइन किया गया था, लेकिन बाद में x86 संगत प्रणालियों में उपयोग किया गया। 825x चिप्स, या एक बड़ी चिप में एम्बेडेड एक समकक्ष सर्किट, सभी आईबीएम पीसी संगतता और वेक्टर-06सी जैसे सोवियत कंप्यूटरों में पाए जाते हैं। पीसी कम्पेटिबल में, टाइमर चैनल 0 को आईआरक्यू-0 (उच्चतम प्राथमिकता वाले हार्डवेयर इंटरप्ट) को सौंपा गया है। टाइमर चैनल 1 को डी. आर. ए. एम. रिफ्रेश (कम से कम 80386 से पहले के शुरुआती मॉडलों में) के लिए सौंपा गया है। टाइमर चैनल 2 पीसी स्पीकर को सौंपा गया है। इंटेल 82सी54 (सी. एम. ओ. एस. लॉजिक के लिए सी) संस्करण 10 मेगाहर्ट्ज तक के घड़ी संकेतों को संभालता है। 8253 का वर्णन 1980 के इंटेल "कम्पोनेंट डेटा कैटलॉग" प्रकाशन में किया गया है। 8254, जिसे उच्च घड़ी गति रेटिंग के साथ 8253 के सुपरसेट के रूप में वर्णित किया गया है, 1982 के इंटेल "घटक डेटा कैटलॉग" में एक "प्रारंभिक" डेटा शीट है। 8254 को एच. एम. ओ. एस. में लागू किया गया है और इसमें एक "रीड बैक" कमांड है जो 8253 पर उपलब्ध नहीं है, और एक ही काउंटर को पढ़ने और लिखने की अनुमति देता है। आधुनिक पीसी संगतता, या तो एसओसी सीपीयू या साउथब्रिज का उपयोग करते समय आमतौर पर पिछड़े संगतता और अंतरसंचालनीयता के लिए पूर्ण 8254 संगतता को लागू करते हैं। रीड बैक कमांड मल्टीकोर सीपीयू और जीपीयू के साथ अंतरसंचालनीयता के लिए एक महत्वपूर्ण आई/ओ सुविधा है। प्रकार-55 डिग्री सेल्सियस से + 125 डिग्री सेल्सियस के तापमान सीमा के साथ इंटेल एम8253 का सैन्य संस्करण है जिसमें ± 10% 5 वी शक्ति सहिष्णुता भी है। उपलब्ध 82सी53 सीएमओएस संस्करण ओकी इलेक्ट्रॉनिक इंडस्ट्री कंपनी लिमिटेड को आउटसोर्स किया गया था। इंटेल 82सी54 का उपलब्ध पैकेज संस्करण 1986 की पहली तिमाही में नमूने के 28-पिन पीएलसीसी में था। विशेषताएँ टाइमर में तीन काउंटर होते हैं, जिनकी संख्या 0 से 2 होती है। प्रत्येक चैनल को छह मोड में से एक में संचालित करने के लिए प्रोग्राम किया जा सकता है। एक बार प्रोग्राम किए जाने के बाद, चैनल स्वतंत्र रूप से काम करते हैं। प्रत्येक काउंटर में दो इनपुट पिन होते हैं-"सी. एल. के". (क्लॉक इनपुट) और "जी. ए. टी. ई".-और डेटा आउटपुट के लिए एक पिन, "आउट"। तीन काउंटर एक दूसरे से स्वतंत्र 16-बिट डाउन काउंटर हैं, और सीपीयू द्वारा आसानी से पढ़े जा सकते हैं। डेटा बस बफर में माइक्रोप्रोसेसर और आंतरिक रजिस्टरों के बीच डेटा बस को बफर करने का तर्क होता है। इसमें 8 इनपुट पिन होते हैं, जिन्हें आमतौर पर D7.D0 के रूप में लेबल किया जाता है, जहां D7 MSB है। पढ़ने/लिखने के तर्क में 5 पिन होते हैं, जो नीचे सूचीबद्ध हैं। "" से पता चलता है कि एक्स एक सक्रिय निम्न संकेत है। : रीड सिग्नलः राइट सिग्नलः चिप सेलेक्ट सिग्नल A0, A1: एड्रेस लाइन्स उपरोक्त हार्डवेयर सिग्नलों को सेट करके PIT के संचालन मोड को बदल दिया जाता है। उदाहरण के लिए, कंट्रोल वर्ड रजिस्टर में लिखने के लिए, किसी को = 0, = 1, = 0, A1 = A0 = 1 सेट करने की आवश्यकता होती है। कंट्रोल वर्ड रजिस्टर में क्रमादेशित जानकारी होती है जिसे (माइक्रोप्रोसेसर द्वारा) उपकरण पर भेजा जाएगा। यह परिभाषित करता है कि पी. आई. टी. का प्रत्येक चैनल तार्किक रूप से कैसे काम करता है। इन बंदरगाहों तक प्रत्येक पहुँच में लगभग 1 माइक्रोन का समय लगता है। काउंटरों को आरंभ करने के लिए, माइक्रोप्रोसेसर को इस रजिस्टर में एक नियंत्रण शब्द (सी. डब्ल्यू.) लिखना होगा। यह रीड/राइट लॉजिक ब्लॉक के पिन के लिए उचित मान निर्धारित करके और फिर डेटा/बस बफर ब्लॉक में नियंत्रण शब्द भेजकर किया जा सकता है। नियंत्रण शब्द रजिस्टर में 8 बिट होते हैं, जिन्हें D7.D0 लेबल किया जाता है (D7 MSB है)। डिकोडिंग कुछ जटिल है। अधिकांश मान तीन काउंटरों में से एक के लिए मापदंड निर्धारित करते हैंः सबसे महत्वपूर्ण दो बिट (यदि 11 नहीं हैं) काउंटर रजिस्टर का चयन करें जिस पर आदेश लागू होता है। अगले दो बिट्स (यदि 00 नहीं) उस प्रारूप का चयन करते हैं जिसका उपयोग काउंटर रजिस्टर तक बाद में पढ़ने/लिखने के लिए किया जाएगा। यह आम तौर पर एक ऐसे मोड पर सेट किया जाता है जहां पहुंच कम से कम महत्वपूर्ण और सबसे महत्वपूर्ण बाइट्स के बीच वैकल्पिक होती है। 8253 और 8254 के बीच एक अंतर यह है कि पहले वाले में एक आंतरिक बिट था जो पढ़ने और लिखने दोनों को प्रभावित करता था, इसलिए यदि प्रारूप को 2-बाइट पर सेट किया गया था, तो एलएसबीट के पढ़ने से निम्नलिखित लेखन को एमएसबीट पर निर्देशित किया जाएगा। 8254 में पढ़ने और लिखने के लिए अलग-अलग बिट्स का उपयोग किया गया था। अगले तीन बिट्स उस मोड का चयन करते हैं जिसमें काउंटर काम करेगा। सबसे कम महत्वपूर्ण बिट यह चुनता है कि काउंटर द्विआधारी या बी. सी. डी. में काम करेगा या नहीं। (बी. सी. डी. गिनती का लगभग कभी उपयोग नहीं किया जाता है और एमुलेटर या दक्षिणी पुलों में ठीक से लागू नहीं किया जा सकता है।) हालांकि, दो अन्य रूप हैंः किसी दिए गए टाइमर के लिए गिनती को कम करें। अगला रीड, रीड के समय काउंटर मूल्य वापस करने के बजाय, लैच कमांड के समय काउंटर मूल्य वापस करेगा। पढ़ने के पूरा होने के बाद, बाद में पढ़ने वाले वर्तमान काउंटर को वापस कर देंगे। जब लैच कमांड का उपयोग किया जाता है, तो मोड और बी. सी. डी. स्थिति नहीं बदली जाती है। (केवल 8254) स्थिति को दबाएँ और/या कई टाइमर के लिए गिनती करें। यह बिटमैप का उपयोग करके एक साथ कई लैच कमांड की अनुमति देता है। इसके अलावा, वर्तमान चैनल विन्यास को गिनती के अलावा पढ़ा जा सकता है। पी. आई. टी. सेट करते समय, माइक्रोप्रोसेसर पहले एक नियंत्रण संदेश भेजता है, फिर पी. आई. टी. को एक गिनती संदेश भेजता है। गणना प्रक्रिया पी. आई. टी. द्वारा इन संदेशों को प्राप्त करने के बाद शुरू होगी, और कुछ मामलों में, यदि यह जी. ए. टी. ई. इनपुट संकेत से बढ़ती धार का पता लगाता है। स्थिति बाईट प्रारूप। बिट 7 सॉफ्टवेयर को आउट पिन की वर्तमान स्थिति की निगरानी करने की अनुमति देता है। बिट 6 इंगित करता है कि गिनती कब पढ़ी जा सकती है; जब यह बिट 1 है, तो गिनती तत्व अभी तक लोड नहीं किया गया है और प्रोसेसर द्वारा वापस नहीं पढ़ा जा सकता है। 5 से 0 तक के बिट्स कंट्रोल रजिस्टर में लिखे गए अंतिम बिट्स के समान हैं। ऑपरेशन मोड नियंत्रण शब्द के डी3, डी2 और डी1 बिट्स टाइमर के संचालन मोड को सेट करते हैं। कुल 6 मोड हैं; मोड 2 और 3 के लिए, डी 3 बिट को नजरअंदाज कर दिया जाता है, इसलिए लापता मोड 6 और 7 मोड 2 और 3 के लिए उपनाम हैं। सभी मोड जी. ए. टी. ई. इनपुट के प्रति संवेदनशील होते हैं, जिसमें जी. ए. टी. ई. उच्च सामान्य संचालन का कारण बनता है, लेकिन जी. ए. टी. ई. निम्न का प्रभाव मोड पर निर्भर करता हैः मोड 0 और 4: गिनती निलंबित है जबकि जी. ए. टी. ई. कम है, और जी. ए. टी. ई. उच्च होने पर फिर से शुरू होता है। मोड 1 और 5: गेट के बढ़ते किनारे की गिनती शुरू हो जाती है। गिनती को प्रभावित किए बिना गेट कम हो सकता है, लेकिन एक और बढ़ती बढ़त शुरू से ही गिनती को फिर से शुरू कर देगी। मोड 2 और 3: गेट बल को तुरंत कम करता है (घड़ी की पल्स की प्रतीक्षा किए बिना) और काउंटर को रीसेट करता है (अगली घड़ी के गिरने वाले किनारे पर)। जब गेट फिर से उच्च हो जाता है, तो गिनती शुरू से ही फिर से शुरू हो जाती है। मोड 0 (000): इंटरप्ट ऑन टर्मिनल काउंट मोड 0 का उपयोग सॉफ्टवेयर नियंत्रण के तहत सटीक समय विलंब उत्पन्न करने के लिए किया जाता है। इस मोड में, काउंटर इसमें लोड किए गए प्रारंभिक COUNT मान से 0 तक गिनती शुरू कर देगा। गणना दर इनपुट घड़ी आवृत्ति के बराबर होती है। कंट्रोल वर्ड लिखने के बाद आउट पिन कम सेट किया जाता है, और COUNT प्रोग्राम किए जाने के बाद गिनती एक घड़ी चक्र शुरू होती है। आउट तब तक कम रहता है जब तक कि काउंटर 0 तक नहीं पहुंच जाता है, जिस बिंदु पर आउट को उच्च सेट किया जाएगा जब तक कि काउंटर को फिर से लोड नहीं किया जाता है या कंट्रोल वर्ड नहीं लिखा जाता है। काउंटर आंतरिक रूप से 0xFFF तक लपेटता है और गिनती जारी रखता है, लेकिन आउट पिन फिर कभी नहीं बदलता है। सामान्य गिनती के लिए गेट सिग्नल सक्रिय रहना चाहिए। यदि गेट कम हो जाता है, तो गिनती स्थगित कर दी जाती है, और जब यह फिर से अधिक हो जाती है तो फिर से शुरू होती है। काउंट रजिस्टर में लोड होने पर नई काउंट का पहला बाइट्स पिछली काउंट को रोक देता है। मोड 1 (001): प्रोग्राम करने योग्य एक शॉट इस मोड में 8253 का उपयोग मोनोस्टेबल मल्टीवाइब्रेटर के रूप में किया जा सकता है। गेट इनपुट का उपयोग ट्रिगर इनपुट के रूप में किया जाता है। आउट शुरू में उच्च होगा। एक-शॉट पल्स शुरू करने के लिए एक ट्रिगर के बाद घड़ी की पल्स पर आउट कम हो जाएगा, और काउंटर शून्य तक पहुंचने तक कम रहेगा। आउट तब ऊँचा जाएगा और अगले ट्रिगर के बाद सी. एल. के. पल्स तक ऊँचा रहेगा। नियंत्रण शब्द और प्रारंभिक गणना लिखने के बाद, काउंटर सशस्त्र होता है। एक ट्रिगर के परिणामस्वरूप काउंटर को लोड किया जाता है और अगले सी. एल. के. पल्स पर कम सेट किया जाता है, इस प्रकार एक-शॉट पल्स शुरू होती है। एन की प्रारंभिक गणना के परिणामस्वरूप अवधि में एक-शॉट पल्स एन. सी. एल. के. चक्र होंगे। वन-शॉट रिट्रिगरेबल है, इसलिए किसी भी ट्रिगर के बाद एन. सी. एल. के. पल्स के लिए आउट कम रहेगा। एक-शॉट पल्स को काउंटर में उसी गिनती को फिर से लिखे बिना दोहराया जा सकता है। गेट का आउट पर कोई प्रभाव नहीं पड़ता है। यदि एक शॉट पल्स के दौरान काउंटर पर एक नई गिनती लिखी जाती है, तो वर्तमान एक-शॉट तब तक प्रभावित नहीं होता है जब तक कि काउंटर को फिर से चालू नहीं किया जाता है। उस स्थिति में, काउंटर नई गिनती से भरा होता है और एक शॉट पल्स तब तक जारी रहता है जब तक कि नई गिनती समाप्त नहीं हो जाती। मोड 2 (X10): रेट जनरेटर इस मोड में, डिवाइस एक डिवाइड-बाय-एन काउंटर के रूप में कार्य करता है, जिसका उपयोग आमतौर पर एक वास्तविक समय घड़ी व्यवधान उत्पन्न करने के लिए किया जाता है। अन्य विधियों की तरह, गणना प्रक्रिया COUNT भेजे जाने के बाद अगला घड़ी चक्र शुरू करेगी। आउट तब तक उच्च रहेगा जब तक कि काउंटर 1 तक नहीं पहुंच जाता, और एक घड़ी की पल्स के लिए कम हो जाएगा। निम्नलिखित चक्र में, गिनती को फिर से लोड किया जाता है, आउट फिर से उच्च हो जाता है, और पूरी प्रक्रिया खुद को दोहराती है। उच्च दालों के बीच का समय काउंटर के रजिस्टर में पूर्व निर्धारित गणना पर निर्भर करता है, और इसकी गणना निम्नलिखित सूत्र का उपयोग करके की जाती हैः काउंटर में लोड किया जाने वाला मूल्य = ध्यान दें कि COUNT रजिस्टर में मान 1 तक होते हैं; रजिस्टर कभी भी शून्य तक नहीं पहुंचता है। मोड 3 (X11): वर्ग तरंग जनरेटर यह मोड मोड 2 के समान है। हालांकि, उत्पादन की उच्च और निम्न घड़ी स्पंद की अवधि मोड 2 से अलग होगी। मान लीजिए कि काउंटर (COUNT संदेश) में लोड की गई संख्या है, गणना के लिए आउटपुट अधिक और गणना के लिए कम होगा। इस प्रकार, अवधि की गणना की जाएगी, और यदि विषम है, तो अतिरिक्त आधा चक्र आउट उच्च के साथ खर्च किया जाता है। मोड 4 (100): कंट्रोल वर्ड और COUNT लोड होने के बाद सॉफ्टवेयर ट्रिगर स्ट्रोब, आउटपुट तब तक उच्च रहेगा जब तक कि काउंटर शून्य तक नहीं पहुंच जाता। काउंटर तब 1 घड़ी चक्र (एक स्ट्रोब) के लिए एक कम पल्स उत्पन्न करेगा-उसके बाद आउटपुट फिर से उच्च हो जाएगा। गेट लो गिनती को निलंबित कर देता है, जो गेट के उच्च होने पर फिर से शुरू होता है। मोड 5 (101): हार्डवेयर ट्रिगर्ड स्ट्रोब यह मोड मोड 4 के समान है। हालाँकि, गिनती की प्रक्रिया गेट इनपुट द्वारा शुरू की जाती है। कंट्रोल वर्ड और COUNT प्राप्त करने के बाद, आउटपुट हाई सेट हो जाएगा। एक बार जब उपकरण गेट इनपुट पर एक बढ़ती हुई धार का पता लगा लेता है, तो यह गिनती शुरू कर देगा। जब काउंटर 0 तक पहुंच जाता है, तो एक घड़ी चक्र के लिए आउटपुट कम हो जाएगा-उसके बाद यह फिर से उच्च हो जाएगा, गेट के अगले बढ़ते किनारे पर चक्र को दोहराने के लिए। आई. बी. एम. पी. सी. प्रोग्रामिंग 8253 का उपयोग आई. बी. एम. पी. सी. संगतों में 1981 में उनकी शुरुआत के बाद से किया गया था। आधुनिक समय में, इस पी. आई. टी. को x86 पी. सी. में एक अलग चिप के रूप में शामिल नहीं किया गया है। बल्कि, इसकी कार्यक्षमता को मदरबोर्ड चिपसेट के साउथब्रिज के हिस्से के रूप में शामिल किया गया है। एक आधुनिक चिपसेट में, यह परिवर्तन x86 I/O पता स्थान में PIT के रजिस्टरों तक उल्लेखनीय रूप से तेजी से पहुंच के रूप में दिखाई दे सकता है। सभी पी. सी. संगत पी. आई. टी. को 105/88 = 1.193 मेगाहर्ट्ज की घड़ी दर पर संचालित करते हैं, एन. टी. एस. सी. कलरबर्स्ट आवृत्ति जो सिस्टम घड़ी (14.31818 मेगाहर्ट्ज) को 12 से विभाजित करने से आती है। यह पहले सी. जी. ए. पी. सी. का एक होल्डओवर है-उन्होंने एक एकल क्वार्ट्ज क्रिस्टल से सभी आवश्यक आवृत्तियों को प्राप्त किया, और टीवी आउटपुट को संभव बनाने के लिए, इस ऑसिलेटर को एन. टी. एस. सी. रंग उप-वाहक आवृत्ति के एक गुणक पर चलाना पड़ा। यह आवृत्ति, 216 से विभाजित (सबसे बड़ा भाजक 8253 सक्षम है) एमएस-डॉस और संबंधित ऑपरेटिंग सिस्टम में उपयोग किए जाने वाले ≈ 18.2 हर्ट्ज टाइमर इंटरप्ट का उत्पादन करती है। मूल आईबीएम पीसी में, काउंटर 0 का उपयोग टाइमकीपिंग इंटरप्ट उत्पन्न करने के लिए किया जाता है। काउंटर 1 का उपयोग डी. आर. ए. एम. स्मृति को ताज़ा करने के लिए किया जाता है। काउंटर 2 का उपयोग पीसी स्पीकर के माध्यम से टोन उत्पन्न करने के लिए किया जाता है। नए मदरबोर्ड में एडवांस्ड कॉन्फ़िगरेशन एंड पावर इंटरफेस (एसीपीआई) के माध्यम से अतिरिक्त काउंटर, लोकल एडवांस्ड प्रोग्रामेबल इंटरप्ट कंट्रोलर पर एक काउंटर और एक हाई प्रिसिजन इवेंट टाइमर शामिल हैं। सीपीयू स्वयं टाइम स्टाम्प काउंटर सुविधा भी प्रदान करता है। पीसी पर टाइमर0 (चिप) का पता पोर्ट 40h.43h पर है और दूसरा टाइमर1 (चिप) 50h.53h पर है। x86 पीसी पर, कई वीडियो कार्ड बीआईओएस और सिस्टम बीआईओएस अपने स्वयं के उपयोग के लिए दूसरे काउंटर को फिर से प्रोग्राम करेंगे। रीप्रोग्रामिंग आमतौर पर वीडियो मोड परिवर्तनों के दौरान होती है, जब वीडियो बी. आई. ओ. एस. निष्पादित किया जा सकता है, और सिस्टम प्रबंधन मोड और बिजली की बचत के दौरान स्थिति बदल जाती है, जब सिस्टम बी. आई. ओ. एस. निष्पादित किया जा सकता है। यह कई x86 प्रणालियों पर टाइमर के दूसरे काउंटर के किसी भी गंभीर वैकल्पिक उपयोग को रोकता है। जैसा कि ऊपर बताया गया है, चैनल 0 को काउंटर के रूप में लागू किया गया है। आम तौर पर, काउंटर का प्रारंभिक मूल्य नियंत्रण को बाइट्स भेजकर निर्धारित किया जाता है, फिर डेटा आई/ओ पोर्ट रजिस्टर (पोर्ट 43एच को भेजा गया मान 36एच, फिर पोर्ट 40एच के लिए कम बाइट्स, और उच्च बाइट्स के लिए फिर से पोर्ट 40एच)। काउंटर शून्य तक गिना जाता है, फिर सीपीयू को एक हार्डवेयर इंटरप्ट (आईआरक्यू 0, आईएनटी 8) भेजता है। काउंटर फिर अपने प्रारंभिक मूल्य पर रीसेट हो जाता है और फिर से गिनती शुरू कर देता है। सबसे तेज़ संभव व्यवधान आवृत्ति एक मेगाहर्ट्ज़ के आधे से थोड़ी अधिक है। सबसे धीमी संभव आवृत्ति, जो आमतौर पर एमएस-डॉस या संगत ऑपरेटिंग सिस्टम चलाने वाले कंप्यूटरों द्वारा उपयोग की जाती है, लगभग 18.2 हर्ट्ज है। इन वास्तविक मोड ऑपरेटिंग सिस्टम के तहत, बी. आई. ओ. एस. आई. एन. टी. 8 कॉल की संख्या जमा करता है जो उसे वास्तविक मोड पते 0040:006 सी. में प्राप्त होती है, जिसे एक प्रोग्राम द्वारा पढ़ा जा सकता है। जैसे-जैसे टाइमर की गिनती कम होती जाती है, इसका मान सीधे इसके आई/ओ पोर्ट को दो बार पढ़कर भी पढ़ा जा सकता है, पहले लो बाइट के लिए और फिर हाई बाइट के लिए। हालांकि, x86 पीसी जैसे फ्री-रनिंग काउंटर अनुप्रयोगों में, पहले कंट्रोल रजिस्टर में वांछित चैनल के लिए एक लैच कमांड लिखना आवश्यक है, ताकि पढ़ने वाले दोनों बाइट्स एक ही मूल्य के हों। 2002 के माइक्रोसॉफ्ट दस्तावेज़ के अनुसार, "क्योंकि इस हार्डवेयर [8254] से पढ़ने और लिखने के लिए एक आई. ओ. पोर्ट के माध्यम से संचार की आवश्यकता होती है, प्रोग्रामिंग में कई चक्र लगते हैं, जो ओएस के लिए निषेधात्मक रूप से महंगा है। इस वजह से, व्यवहार में अपेरियोडिक कार्यक्षमता का उपयोग नहीं किया जाता है। एल. ए. पी. आई. सी. एक प्रोग्रामेबल टाइमर एच. पी. ई. टी. संदर्भ प्रदान करता है आगे पढ़ने के लिए बाहरी लिंक 82सी54 डेटाशीट इंटेल 8253 पी. आई. टी. चिप का अवलोकन इंटेल 8253 पूर्ण डेटाशीट 8254/82 सी54 प्रोग्रामेबल इंटरवल टाइमर एफ. ए. क्यू. प्रोग्रामेबल इंटरवल टाइमर-ओ. एस. डी. ई. वी. विकी इंटेल चिपसेट आई. बी. एम. पी. सी. संगत इनपुट/आउटपुट एकीकृत सर्किट