RISC-V: उन्हें बेहतर जानना चाहिए था
RISC‑V के आलोचक तर्क देते हैं कि इसकी अत्यधिक modular, extension-heavy डिज़ाइन fragmentation पैदा करती है, feature detection और portable binaries को कठिन बनाती है, और x86, ARM, तथा MIPS के दशकों के विकास से सीखे गए सबकों को बर्बाद करती है। दूसरे जवाब देते हैं कि RISC‑V का खुला, royalty-free ISA, बढ़ता toolchain support, और RVA23 जैसे emerging profiles इसे व्यवहार में “काफ़ी अच्छा” बनाते हैं—खासकर microcontrollers और embedded systems के लिए—even if यह अभी desktops और servers पर शीर्ष-स्तरीय ARM या x86 cores के साथ प्रतिस्पर्धी नहीं है। यह exchange elegant ISA design और उन आर्थिक, कानूनी, तथा ecosystem forces के बीच एक व्यापक तनाव को उजागर करता है जो अंततः तय करते हैं कि कौन-सी architectures जीतती हैं।
ISA बनाम सॉफ़्टवेयर का महत्व
- कई टिप्पणीकार तर्क देते हैं कि इतिहास दिखाता है कि “सॉफ़्टवेयर मायने रखता है; ISA नहीं”: x86 तकनीकी रूप से भद्दा होने के बावजूद बच गया क्योंकि वह मौजूदा सॉफ़्टवेयर को अच्छी तरह चलाता है।
- दूसरे लोग जवाब देते हैं कि ISA के विवरण सीमांत मामलों में सचमुच मायने रखते हैं: कोड आकार, डिकोड जटिलता, और साफ़ semantics लागत और व्यवहार्यता को प्रभावित करते हैं, खासकर छोटे या सस्ते cores के लिए।
वैकल्पिकता, fragmentation, और Profiles
- एक केंद्रीय आलोचना RISC‑V की अत्यधिक optionality है: कई extensions, कई optional subsets, और overlapping encodings।
- इससे ऐसे binaries ship करना मुश्किल हो जाता है जो portable भी हों और fast भी, खासकर उन binaries/blobs के लिए जिन्हें पहले से exact core नहीं पता होता।
- कुछ लोग कहते हैं कि MCU में यह स्वीकार्य है जहाँ vendor और target काफ़ी tightly coupled होते हैं; दूसरे real-world मामलों (binary blobs, core swaps) का हवाला देते हैं जहाँ यह टूट जाता है।
- RVA23 जैसे profiles को आंशिक समाधान माना जाता है—कुछ markets के लिए curated mandatory sets परिभाषित करके—but कुछ लोगों को लगता है कि वे बहुत देर से आए और फिर भी edge cases छोड़ देते हैं।
Feature Detection और Configuration
- शिकायतें हैं कि software के पास यह query करने का कोई सरल, भरोसेमंद तरीका नहीं है कि कौन-सी extensions मौजूद हैं; illegal instructions पर trapping अस्पष्ट हो सकता है क्योंकि overlaps अलग-अलग extensions से संबंधित हो सकते हैं।
- दूसरे जवाब देते हैं कि OS baselines, device trees, और भविष्य के mechanisms जैसे
mconfigptrइसे कम करते हैं, हालांकि विवरण अभी भी विकसित हो रहे हैं।
Code Density और Instruction Encoding
- code density पर बड़ा subthread: RISC‑V compressed (16/32-bit) बनाम AArch64 fixed 32-bit बनाम x86 variable-length।
- कुछ लोग दावा करते हैं कि RV64GC(+RVC/RVA23) x86‑64 से बेहतर है और कम-से-कम AArch64 के साथ प्रतिस्पर्धी है; दूसरे तर्क देते हैं कि RISC‑V variable length की “कीमत” चुकाता है लेकिन उसका पूरा लाभ नहीं उठाता।
- front-end complexity पर बहस: variable-length decoding hardware cost जोड़ता है, लेकिन समर्थक कहते हैं कि यह modest है और multi-writeback ARM instructions को crack करने के बराबर है।
Embedded बनाम Desktop / High-Performance
- कई लोग RISC‑V का स्वाभाविक घर deep-embedded और MCUs को मानते हैं, जहाँ cost और openness peak performance से अधिक महत्वपूर्ण हैं।
- संशयवादी मानते हैं कि RISC‑V उच्च स्तर पर AArch64/x86 को चुनौती नहीं देगा, यह तर्क देते हुए कि ISA बड़े out-of-order cores के लिए नहीं गढ़ा गया था और ecosystem पीछे है।
- दूसरे सोचते हैं कि समय और खुले designs transistor budgets के plateau होने के साथ performance gap को भर देंगे।
Openness, Patents, और Motivation
- एक मजबूत विचार यह है कि RISC‑V का मुख्य लाभ कानूनी है: एक खुला ISA जिसे किसी एक vendor द्वारा नियंत्रित नहीं किया जाता, खासकर China और ARM/x86 licensing से बचने वाली कंपनियों के लिए आकर्षक।
- यह स्वीकार किया जाता है कि “कोई patents नहीं” को औपचारिक रूप से साबित नहीं किया जा सकता, लेकिन RISC‑V जानबूझकर “legally distinct MIPS” है ताकि जोखिम कम हो।
व्यावहारिक अनुभव और tooling
- hobbyists और कुछ commercial users रिपोर्ट करते हैं कि RISC‑V के बड़े फायदे हैं: mainline GCC/LLVM support और licensing lawyers से मुक्ति।
- वास्तविक दुनिया की परेशानियों में शामिल हैं: कुछ RISC‑V MCUs पर भारी interrupt prologues, x86-जैसी debugging/watchpoint सुविधाओं की कमी, और mainstream distros चलाने के लिए minimal RV64I से RV64GC/RVA23 तक bump करने की आवश्यकता।
- सहमति है कि, कमियों के बावजूद, RISC‑V आज “ठीक” है और उपयोगी है, खासकर जहाँ आप hardware और software दोनों नियंत्रित करते हैं।