1 पॉइंट द्वारा GN⁺ 2024-07-09 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • 1993 में जारी Intel Pentium 33 लाख ट्रांजिस्टर वाला एक जटिल चिप था, लेकिन आधुनिक चिप्स के विपरीत, इसके ट्रांजिस्टर माइक्रोस्कोप से देखे जा सकते हैं, इसलिए अंदरूनी gate implementation को सीधे follow किया जा सकता है
  • स्टैंडर्ड सेल डिज़ाइन में gate और flip-flop जैसे low-level circuits को reusable cells के रूप में बनाया जाता है, फिर उन्हें rows में arrange करके automatic placement और routing के अनुकूल बनाया जाता है
  • Pentium die में standard-cell क्षेत्र नियमित stripes जैसे दिखते हैं, जबकि cache, datapath और microcode ROM जैसे हाथ से optimize किए गए blocks अधिक घने और गहरे दिखकर अलग पहचाने जाते हैं
  • P54C series Pentium में 600nm process, 3.3V और 4 metal interconnect layers इस्तेमाल हुए, और CMOS gates के अलावा signal delay को 35% तक घटाने वाले BiCMOS circuits का भी व्यापक उपयोग हुआ
  • inverter, NAND, OR-NAND, latch, flip-flop और BiCMOS buffer सभी छोटे transistor circuits के combinations हैं; Pentium 1990s के standard-cell और BiCMOS digital design को देखने का एक अच्छा उदाहरण है

Pentium die में दिखने वाली standard-cell संरचना

  • Intel ने 1993 में Pentium processor लॉन्च किया, और बाद में Pentium Pro, Pentium II आदि आए; 2006 में Core processor द्वारा मुख्य line को replace करने तक यह high-performance processor brand बना रहा
  • मूल Pentium 33 लाख transistors वाला जटिल chip था, लेकिन आधुनिक chips के विपरीत इसके transistors microscope से देखे जा सकते हैं
  • metal interconnect layers हटाई गई die photo में silicon और अलग-अलग transistors दिखाई देते हैं
    • standard-cell circuits uniform rows में arranged होते हैं और striped pattern दिखाते हैं
    • हाथ से optimize किए गए functional blocks अधिक घने, structured और गहरे दिखाई देते हैं
    • उदाहरण हैं बाईं ओर cache, बीच में datapath और दाईं ओर microcode ROM

हाथ से placement से standard cells तक

  • 1970s के शुरुआती processors में आम तौर पर transistors को एक-एक करके हाथ से place किया जाता था
    • यह तरीका high density दे सकता था, लेकिन धीमा, कठिन और error-prone था
    • Z80 designer Federico Faggin को आखिरी कुछ transistors fit न होने के कारण 3 हफ्तों का काम मिटाकर फिर से शुरू करना पड़ा था
  • स्टैंडर्ड सेल हर gate, flip-flop और low-level component को implement करने वाली cell library बनाकर reuse करने की पद्धति है
    • हर cell की height fixed होती है और width जरूरत के अनुसार बदलती है
    • cells को rows में arrange किया जा सकता है, इसलिए यह automation के लिए उपयुक्त है
  • CMOS standard-cell row आम तौर पर दो पास-पास की bands जैसी दिखती है
    • एक NMOS transistor area होता है
    • दूसरा PMOS transistor area होता है
    • rows के बीच की जगह cells के बीच wiring के लिए routing channel के रूप में इस्तेमाल होती है
    • power और ground हर row के ऊपर और नीचे के along रखे जाते हैं

automatic placement और routing का काम

  • standard cells की fixed structure से automatic placement और routing software के लिए layout बनाना आसान हो जाता है
  • placement चरण connected cells के बीच distance कम करने वाली cell arrangement खोजता है
    • लंबी wiring die area बर्बाद करती है
    • लंबे paths capacitance बढ़ाते हैं, जिससे signal धीमा हो जाता है
  • routing चरण placed cells को वास्तविक metal interconnects से जोड़ता है
  • placement और routing दोनों NP-complete optimization problems हैं
  • Intel ने 386 processor से automatic placement और routing techniques इस्तेमाल करना शुरू किया
    • placement Berkeley graduate student द्वारा विकसित Timberwolf program से किया गया
    • routing के लिए Intel ने iterative heuristic approach वाला custom software इस्तेमाल किया
    • standard-cell design आज के processors में भी इस्तेमाल होता है, लेकिन software काफी आगे बढ़ चुका है

Pentium की CMOS basic structure

  • आधुनिक processors CMOS circuits इस्तेमाल करते हैं, और CMOS में NMOS और PMOS नाम के दो प्रकार के transistors combine होते हैं
  • NMOS transistor gate high होने पर on होता है, और PMOS transistor gate low होने पर on होता है
    • NMOS output को low voltage की ओर खींचने के लिए उपयुक्त है
    • PMOS output को high voltage की ओर खींचने के लिए उपयुक्त है
  • CMOS का “C” Complementary के लिए है; NMOS और PMOS साथ मिलकर output को high या low बनाते हैं
  • semiconductor physics की वजह से NMOS और PMOS पूरी तरह symmetric नहीं होते, और PMOS को आम तौर पर NMOS से बड़ा होना पड़ता है
    • यह अंतर die photos में PMOS और NMOS को अलग पहचानने का clue बनता है

4 metal layers वाली wiring

  • P54C version Pentium में 4 metal interconnect layers इस्तेमाल हुईं
    • शुरुआती Pentium में 3 metal layers थीं, लेकिन P54C die से 4-layer process पर shift हुआ
  • silicon surface पर doped regions होते हैं, और उनके ऊपर polysilicon wiring बनती है
    • polysilicon जब doped silicon को cross करता है, तो transistor का gate बनता है
    • polysilicon छोटी दूरी की wiring के लिए भी इस्तेमाल होता है
  • metal layers को M1 से M4 तक numbered किया गया है
    • M1 सबसे निचली metal layer है
    • M4 सबसे ऊपर की metal layer है और सबसे मोटी होती है, इसलिए मुख्य रूप से power, ground और clock signals के लिए इस्तेमाल होती है
    • metal layers के बीच connections tungsten plug via से बनते हैं
    • केवल M1 ही contact के जरिए silicon या polysilicon से सीधे जुड़ती है
  • wiring layers आम तौर पर local level पर horizontal और vertical directions को alternating तरीके से इस्तेमाल करती हैं, ताकि signals एक-दूसरे को cross कर सकें
  • automatic placement और routing software को लाखों जटिल wiring paths को जितना संभव हो उतना dense बनाना होता है

inverter और NAND gate

  • CMOS inverter एक PMOS और एक NMOS से बना होता है
    • input 1 हो तो NMOS on होकर output को 0 पर नीचे ले जाता है
    • input 0 हो तो PMOS on होकर output को 1 पर ऊपर ले जाता है
  • Pentium का standard-cell inverter भी वही two-transistor structure रखता है
    • input दोनों transistors के polysilicon gates से जुड़ा होता है
    • output metal wire दोनों transistors से जुड़ी होती है
    • PMOS वाला N-doped well +3.3V से connected well tap के जरिए positive voltage पर रखा जाता है
  • Pentium 600nm process पर बनाया गया था, और polysilicon line width भी लगभग 600nm है
    • यह visible light wavelength 400–700nm के समान size है, इसलिए microscope photo कुछ धुंधली दिखती है
  • CMOS NAND gate दो PMOS और दो NMOS से बना होता है
    • दोनों inputs high हों तो दो NMOS on होकर output को low कर देते हैं
    • किसी एक input के low होने पर PMOS on होकर output को high कर देता है
  • Pentium के NAND standard cell में दो polysilicon lines doped silicon को cross करके चार transistors बनाती हैं
    • PMOS side का output बीच से निकलकर parallel connection बनाता है
    • NMOS side का output दाईं ओर से निकलकर series connection बनाता है
  • समान NAND standard cell में भी input, output और power connection positions के अनुसार detailed wiring और polysilicon length बदलती है
    • standard cells सिर्फ simple copies नहीं होते, बल्कि हर position के हिसाब से adjust किए जाते हैं
    • adjacent cells को PMOS transistors के touch करने तक compress किया जाता है, जिससे density थोड़ी बढ़ती है

complex gates और latch

  • standard-cell library में simple gates के साथ complex gates भी शामिल होते हैं
  • 5-input OR-NAND gate ~((A+B+C+D)⋅E) compute करता है
    • NMOS circuit में A से D parallel में और E series में होता है
    • PMOS circuit में उल्टा, A से D series में और E parallel में होता है
    • पर्याप्त current देने के लिए PMOS side में A से D transistor sets के दो sets होते हैं, इसलिए यह NMOS block से काफी बड़ा होता है
  • latch Pentium circuit के core components में से एक है, और clock-controlled 1-bit storage circuit है
    • clock high होने पर यह transparent state में होता है, जहां input तुरंत output पर दिखाई देता है
    • clock low होने पर यह पिछली value बनाए रखता है
  • latch को feedback loop से implement किया जाता है, जहां output फिर से input side की ओर लौटता है
    • center में एक multiplexer होता है, जो previous output और new input में से एक चुनता है
    • inverter feedback signal को कमजोर होने से बचाने के लिए amplify करता है और output को दूसरे circuits drive करने लायक बनाता है

pass-transistor multiplexer

  • latch के अंदर का multiplexer pass transistors इस्तेमाल करता है
    • normal logic gates की तरह output को power या ground की ओर नहीं खींचता, बल्कि input signal को output तक pass करता है
  • select signal low हो तो पहले input से जुड़ी transistor pair on होती है और दूसरा input block हो जाता है
  • select signal high हो तो दूसरे input से जुड़ी transistor pair on होती है और पहला input block हो जाता है
  • multiplexer के transistor gate polarity normal logic gates से अलग होती है
    • logic gate में NMOS या PMOS में से एक on होकर output को low या high की ओर खींचे, इसके लिए same-polarity gate signals इस्तेमाल होते हैं
    • multiplexer में corresponding PMOS और NMOS को साथ on होकर signal pass करना होता है, इसलिए opposite-polarity gate signals चाहिए
    • इसके लिए multiplexer में जरूरी opposite-polarity signal बनाने वाला inverter शामिल होता है

flip-flop implementation

  • Pentium flip-flops का व्यापक रूप से उपयोग करता है
  • flip-flop latch जैसा होता है, लेकिन clock level के बजाय clock edge पर react करता है
    • clock के low से high में बदलने के moment का input याद रखता है
    • उस value को output के रूप में देता है
  • इसी फर्क के कारण flip-flop counters, state machines और अन्य clocked circuits में ज्यादा उपयोगी होता है
  • Pentium का flip-flop दो latches से बना होता है
    • primary latch clock low होने पर value pass करता है, और clock high होने पर value hold करता है
    • secondary latch में उल्टा clock behavior होता है
    • जब clock low से high में बदलता है, primary latch update रोक देता है और उसी समय secondary latch वह value pass कर देता है
  • कुछ variants में छोटे logic changes के साथ set या reset input होता है
    • set और reset clock को bypass करके output को desired state में force करते हैं
    • processor start पर flip-flops को desired value से initialize करने में ये उपयोगी होते हैं

BiCMOS buffer और 1990s Pentium की विशेषताएं

  • Pentium सिर्फ CMOS नहीं, बल्कि BiCMOS process से भी बनाया गया था
    • normal CMOS manufacturing process में कुछ steps जोड़कर bipolar transistors NPN और PNP बनाए जा सकते हैं
  • BiCMOS circuits Pentium में व्यापक रूप से इस्तेमाल हुए और signal delay को 35% तक कम किया
  • Intel ने Pentium Pro, Pentium II, Pentium III और Xeon में भी BiCMOS इस्तेमाल किया, लेकिन Pentium MMX में नहीं
  • chip voltage कम होने के साथ bipolar transistors के फायदे भी घटे, और BiCMOS अंततः digital circuits में इस्तेमाल से बाहर हो गया
  • Pentium का standard-cell BiCMOS buffer CMOS buffer से अधिक complex है
    • 2 inverters
    • NPN pull-up transistor
    • NMOS pull-down transistor
    • PMOS pull-up transistor से बना है
  • die photo में NPN transistor, NMOS और PMOS की linear structure से अलग circular structure दिखाता है और काफी बड़ा होता है
  • output metal wire भी normal signal wiring से मोटी होती है, जो high current drive capability दिखाती है

P54C version में देखे गए अंतर

  • analysis target मूल Pentium का P54C version है
  • पहला Pentium product 80501, codename P5, 60 या 66MHz पर चलता था, 5V इस्तेमाल करता था, और 800nm process तथा 31 लाख transistors रखता था
  • Intel ने power consumption issue सुधारकर 80502, codename P54C बनाया
    • यह 3.3V इस्तेमाल करता है
    • 75–120MHz पर चलता है
    • multiprocessing support जोड़ा गया, जिससे transistor count 33 लाख तक बढ़ गया
    • इसमें अधिक advanced clock circuit है, जो external bus speed को 50–66MHz पर कम रखते हुए internal clock speed को 100MHz तक बढ़ा सकता है
    • यह 600nm process और 4 metal layers इस्तेमाल करता है
  • P54C die visually P5 जैसा ही है, लेकिन नीचे की तरफ multiprocessing logic जोड़ा गया है और ऊपर की तरफ clock circuit है
  • standard cells अन्य original Pentium versions में भी समान दिखने की संभावना है

जटिल processor बनाने वाले सरल circuits

  • standard-cell layout आज की chips में भी व्यापक रूप से इस्तेमाल होता है
  • आधुनिक processors nanometer-scale transistors के कारण microscope से study करने के लिए बहुत छोटे हैं, लेकिन Pentium में features इतने बड़े हैं कि circuits को observe और reverse engineer किया जा सके
  • Pentium की पूरी standard-cell library इससे काफी बड़ी है और इसमें दर्जनों से सैकड़ों प्रकार के cells शामिल हैं
    • अलग-अलग logic gates
    • कई sizes
    • कई drive strengths वाले cells शामिल हैं
  • Pentium में BiCMOS का उपयोग 1990s में लोकप्रियता के चरम पर रही technology की खासियत है
  • BiCMOS digital circuits में trade-offs बदलने से कम practical हो गया, लेकिन analog ICs, खासकर high-frequency applications में अब भी महत्वपूर्ण भूमिका निभाता है
  • Pentium को करीब से देखने पर पता चलता है कि जटिल processor भी simple transistor circuits के combinations से बने होते हैं

1 टिप्पणियां

 
GN⁺ 2024-07-09
Hacker News टिप्पणियाँ
  • Intel ने 386 processor से automatic placement·routing तकनीक का इस्तेमाल शुरू किया, क्योंकि यह manual layout की तुलना में बहुत तेज़ थी और errors भी काफ़ी कम करती थी
    placement Berkeley के graduate student Carl Sechen द्वारा विकसित Timberwolf नाम के प्रोग्राम से किया गया था, और उनके advisor Alberto Sangiovanni-Vincentelli थे
    https://ieeexplore.ieee.org/document/1052337

    • Computer History Museum के i386 designer interview में भी इस तरीके का ज़िक्र है, लेकिन Carl Sechen का नाम नहीं आता
      https://archive.computerhistory.org/resources/text/Oral_Hist...
      कहा गया है कि Intel के अंदर न automatic placement था न automatic routing, इसलिए चिंता थी कि क्या इसे समय पर पूरा किया जा सकेगा और क्या chip area इतना बढ़ जाएगा कि fit ही न हो पाए। उन्होंने Berkeley के एक graduate student से Timberwolf नाम का automatic placement program लेकर evaluate किया, और यह काफ़ी उपयोगी लगा इसलिए इसे इस्तेमाल किया गया
      वह student दूसरे project की वजह से MIT चला गया, लेकिन campus के अपने कमरे में terminal छोड़कर bugs आते ही उन्हें ठीक करता रहा, और कभी-कभी उसकी fixes पूरी होने तक काम अटका रहता था। यह भी कहा गया कि, “अगर management को पता चल जाता कि core methodology में किसी graduate student के tool का इस्तेमाल हो रहा है, तो वे इसे कभी मंज़ूरी नहीं देते”
      Right-o पर भी i386 के standard cell placement·routing पर एक लेख था, और panel interview link के साथ i386 die में standard cell के इस्तेमाल वाले specific area भी दिखाए गए हैं
      https://www.righto.com/2024/01/intel-386-standard-cells.html
  • images बिल्कुल दिखाई नहीं दे रहीं, और वजह Cloudflare लगती है
    पेज खोलने पर CF का “are you human” check पार किया जा सकता है, लेकिन हर image load पर भी वही check लग रहा है, और वह verification screen user को दिखाई नहीं जाती। नतीजतन image की जगह HTML page लौटता है और images load नहीं होतीं

    • कुछ दिन पहले VirusTotal पर एक file scan करने की कोशिश की, तो “सभी fire hydrants चुनें” वाला captcha बार-बार बहुत धीरे fade होकर आता रहा, और 10 बार लगातार reject होने के बाद मैंने छोड़ दिया
      ऐसा लगा जैसे captcha से पहले ही reject कर चुके हों और बस मज़े के लिए परेशान कर रहे हों। और भी अजीब बात यह थी कि VirusTotal ने captcha page पर दूसरा upload form दिखाया, लेकिन उस form पर खुद कोई captcha नहीं था
    • मैं uMatrix इस्तेमाल करता हूँ और Cloudflare के “are you human” चरण का आदी भी हूँ, लेकिन यहाँ बताई गई समस्या reproduce नहीं होती
      dashboard में भी यह नहीं दिखता कि Cloudflare शामिल है
  • अगर “आधुनिक processors nanometer-स्तर के transistors की वजह से microscope से देखने के लिए बहुत छोटे हैं”, तो शायद हमें मिलकर Ken के लिए एक अच्छा electron microscope खरीदने हेतु चंदा करना चाहिए

  • क्या आधुनिक EDA software अब इतना sophisticated नहीं हो गया कि standard cells पर निर्भर हुए बिना transistor को खुद place कर सके?

    • मुझे नहीं लगता। असल में, नवीनतम EDA software की स्थिति इससे भी बदतर है
      मैं बेहतर EDA software को design और build करने वाले एक project पर काम कर चुका हूँ, और यह tool हर transistor को simulate और optimize करके low-power, high-speed, low-cost हासिल करने के लिए उन्हें shape और place कर सकता है
      कमी यह है कि यह मौजूदा EDA की तुलना में transistor-स्तर की बहुत अधिक units को संभालता है, इसलिए इसे $100k-श्रेणी के small supercomputer या FPGA cluster पर चलाना पड़ता है। फिर भी, यह मौजूदा EDA से सस्ता है, और कम transistors के साथ ज़्यादा तेज़, बेहतर और सस्ते chips व wafers बना सकता है
      software की बड़ी तस्वीर इस talk में परोक्ष रूप से कवर की गई थी: https://vimeo.com/731037615
      मैं खुद EDA software पर भी talk देना चाहूँगा, इसलिए अगर बुलाएँ तो अच्छा होगा
      दूसरे researchers और companies ने भी दिखाया है कि standard cell libraries और PDK से आगे बढ़कर transistor design·placement को optimize किया जा सकता है, उदाहरण के लिए यह case उनके अपने EDA software से किया गया था: https://www.micromagic.com/news/Ultra-Low-Power_PressRelease...
      मुझे काफ़ी भरोसा है कि Apple ने M1, M2, M3, M4, M5, और खासकर high-end M2 व M5 Ultra chips में इस तरह का तरीका इस्तेमाल किया है, लेकिन इसका पक्का सबूत नहीं है
      मेरा मानना है कि अगर हम अभी इस्तेमाल हो रहे tools से बेहतर EDA software (CAD=> SYM=> FAB) इस्तेमाल करें, तो मानवता 3~4 orders of magnitude तेज़ computer chips design कर सकती है, और कम-से-कम 2 orders of magnitude कम energy के साथ chips को बहुत सस्ते में बना सकती है। Moore's Law खत्म नहीं हुआ है, और इसे साबित करने के लिए HN comments से कहीं ज़्यादा मेहनत चाहिए
    • जैसा कि लेख में भी कहा गया है, optimal layout generation एक optimization problem है जिसमें संबंधित decision problem NP-complete है
      standard cell placement तक को heuristics से हल करना पड़ता है, और cell स्तर से transistor स्तर पर उतरने पर problem size बढ़कर और खराब हो जाती है
      वैसे भी logic flip-flop जैसे standard gates और logic blocks से बनता है, इसलिए ऐसे building blocks को implement करने वाले standard cells के इस्तेमाल का overhead शायद बहुत बड़ा नहीं होता
    • एक दूसरे नज़रिए से देखें तो, EDA software जितनी computational power इस्तेमाल कर सकता है, वह भी लगभग die पर transistor count के समान गति से बढ़ी है
      इसलिए उपलब्ध computation की तुलना में problem complexity कुछ हद तक स्थिर रही है, और standard cell design अब भी EDA tools को हल करनी पड़ने वाली problem की complexity घटाने का एक प्रभावी तरीका है
    • हाल की पीढ़ी की industrial processes 40~12nm में इस्तेमाल होने वाले सभी tools, foundry द्वारा दी गई standard cell libraries का व्यापक रूप से इस्तेमाल करते हैं
      मुझे नहीं लगता कि मौजूदा या अगली पीढ़ी में यह बदलेगा। मैं EDA में काम करता हूँ
    • मेरी समझ से यह software की समस्या नहीं है, बल्कि इसलिए है कि foundry केवल वही blocks इस्तेमाल करने देती है जिनकी process validation पूरी हो चुकी हो
      नहीं तो yield अस्थिर हो सकती है या पूरी तरह अनियंत्रित हो सकती है
  • लेख में दिखाए गए standard cell और आज के standard cell के बीच एक फर्क यह है कि अब metal layers बढ़ जाने से routing channel गायब हो गया है
    उस समय cell के ऊपर और नीचे मौजूद Vdd और ground lines के आर-पार metal ले जाना कठिन था, इसलिए polysilicon lines को ऊपर-नीचे के किनारों तक बढ़ाया जाता था। routing इस तरह होती थी कि poly को channel के अंदर तक बढ़ाया जाता और metal से cells को जोड़ा जाता था
    इसलिए तस्वीर में ढक्कन हटाई हुई poly line एक ही चीज़ जैसी दिखती है, लेकिन design के नज़रिए से cell के अंदर वाला हिस्सा standard है और channel के अंदर वाला हिस्सा custom है
    यह तरीका सिर्फ poly और metal 1 layer के साथ भी काम कर सकता है, लेकिन अगर metal layers पर्याप्त हों तो routing को cell के अंदर से गुजारा जा सकता है। हालांकि input और output को transistor तक नीचे ले जाने वाली vias से बचना पड़ता है
    अगर cell की हर दूसरी row को उलट दिया जाए, तो दो rows के PMOS, Vdd rail को साझा करते हैं और दो rows के NMOS, ground rail को साझा करते हैं, जिससे अतिरिक्त लाभ भी मिलता है

  • इस तरह processor को dissect करना, स्कूल में मेंढक की dissection की तरह, एक मज़ेदार शैक्षणिक गतिविधि हो सकती है
    इसका एक फायदा यह भी है कि इसमें animal rights का सवाल नहीं उठता

    • मेरी निजी राय में, हर किसी को कम-से-कम एक बार chip खोलकर देखनी चाहिए
      अगर chip epoxy से ढकी न हो तो यह मुश्किल नहीं है, और अंदर झाँकना भी काफ़ी दिलचस्प होता है। बारीकी से देखने के लिए metallurgical microscope चाहिए, लेकिन नंगी आँखों से भी रोचक संरचनाएँ देखी जा सकती हैं
    • processor decap करने से toxic waste बनता है, और उसका निपटान करना पड़ता है
      processor, अगर ठीक से संभाला जाए, तो मेंढक की तुलना में बहुत ज़्यादा समय तक टिकता है और मोटे तौर पर घिसता नहीं है, इसलिए उसे बार-बार reuse किया जा सकता है। मेरा मानना है कि नया processor बनाने की प्रक्रिया, dissection के लिए एक मेंढक को मारने की तुलना में, अधिक मेंढकों को अधिक पीड़ा दे सकती है
      और अब तो आपकी जेब में video player है। एक मेंढक की खुद dissection करना, किसी और को करते हुए देखने से ज़्यादा शैक्षणिक हो सकता है, लेकिन यह अच्छी तरह समझाए गए 20 dissection videos देखने से ज़्यादा शैक्षणिक है या नहीं, इस पर संदेह है। मुझे नहीं लगता कि दोनों करना ज़रूरी है
  • रुचि रखने वालों के लिए open source standard cell भी उपलब्ध हैं
    https://www.vlsitechnology.org/html/libraries.html
    https://opensource.googleblog.com/2022/07/SkyWater-and-Googl...