હાર્ડવેર જે સોફ્ટવેરની જેમ બદલાય છે: AI યુગમાં FPGA આર્કિટેક્ચરની ક્રાંતિ
ફેક્ટરીમાં ઉત્પાદન થયા પછી પણ પોતાની સર્કિટ ફરીથી પ્રોગ્રામ કરવાની ક્ષમતા ધરાવતી FPGA ચિપ આર્ટિફિશિયલ ઇન્ટેલિજન્સ અને ડેટા સેન્ટરના વર્કલોડને ઝડપી બનાવી રહી છે.

કમ્પ્યુટિંગ પ્રોસેસિંગની દુનિયામાં સામાન્ય રીતે બે પ્રકારની ચિપ જોવા મળે છે: એક સેન્ટ્રલ પ્રોસેસિંગ યુનિટ (CPU) જે સોફ્ટવેરના આદેશો મુજબ દરેક કામ કરી શકે છે પરંતુ તેની ઝડપ મર્યાદિત હોય છે, અને બીજી એપ્લિકેશન-સ્પેસિફિક ઇન્ટિગ્રેટેડ સર્કિટ (ASIC) જે માત્ર એક જ ચોક્કસ કાર્ય માટે ફેક્ટરીમાં સિલિકોન પર કાયમી ધોરણે બનાવવામાં આવે છે. પરંતુ આ બંનેની વચ્ચે એક અત્યંત શક્તિશાળી વિકલ્પ અસ્તિત્વ ધરાવે છે, જેને ફિલ્ડ-પ્રોગ્રામેબલ ગેટ એરે (Field-Programmable Gate Array - FPGA) કહેવામાં આવે છે.
FPGA એ એક એવી કન્ફિગરેબલ ઇન્ટિગ્રેટેડ સર્કિટ (configurable integrated circuit) છે જેને ફેક્ટરીમાંથી બનીને બહાર આવ્યા પછી પણ વપરાશકર્તા દ્વારા વારંવાર પ્રોગ્રામ કરી શકાય છે. તેને પ્રોગ્રામેબલ લોજિક ડિવાઇસ (Programmable Logic Devices - PLD) ના વર્ગમાં મૂકવામાં આવે છે. આ ચિપમાં પ્રોગ્રામેબલ લોજિક બ્લોક્સની એક જાળીદાર ગ્રીડ હોય છે, જેને ક્ષેત્રમાં જ એટલે કે "ઇન ધ ફિલ્ડ" (in the field) અન્ય લોજિક બ્લોક્સ સાથે જોડીને વિવિધ ડિજિટલ કાર્યો કરવા માટે કન્ફિગર કરી શકાય છે.
કંપનીઓની જાહેરાત મુજબ, આર્ટિફિશિયલ ઇન્ટેલિજન્સ (AI) અને હાઇ-પર્ફોર્મન્સ કમ્પ્યુટિંગ ક્ષેત્રે FPGA નું મહત્વ અભૂતપૂર્વ રીતે વધી ગયું છે. માઇક્રોસોફ્ટ (Microsoft) એ ૨૦૧૪ માં તેના Bing સર્ચ એન્જિનને ઝડપી બનાવવા માટે FPGA નો ઉપયોગ શરૂ કર્યો હતો, અને ૨૦૧૮ માં તેણે તેની Azure ક્લાઉડ કમ્પ્યુટિંગ પ્લેટફોર્મના વિવિધ વર્કલોડ માટે FPGA ચિપ્સ તૈનાત કરવાનું શરૂ કર્યું હતું. આનું મુખ્ય કારણ FPGA દ્વારા મળતી પર્ફોર્મન્સ પર વોટ (performance per watt) ની ઉત્કૃષ્ટ કાર્યક્ષમતા છે. ૨૦૧૯ થી, આધુનિક પેઢીના FPGA માં આર્ટિફિશિયલ ઇન્ટેલિજન્સ મોડેલોને પ્રોસેસ કરવા માટે વિશેષ AI એન્જિન ઉમેરવામાં આવ્યા છે.
- લુકઅપ ટેબલ (LUT) પ્રોસેસિંગઇનપુટ સિગ્નલ ૪-ઇનપુટ LUT માં પ્રવેશે છે જ્યાં પૂર્વ-નિર્ધારિત સત્ય કોષ્ટક (truth table) મુજબ તાર્કિક પરિણામ તૈયાર થાય છે.
- મોડ સિલેક્શન અને મલ્ટિપ્લેક્સિંગપ્રોગ્રામ કરેલ મલ્ટિપ્લેક્સર નક્કી કરે છે કે સેલ સામાન્ય તાર્કિક મોડમાં કામ કરશે કે એરિથમિટીક ગણતરી મોડમાં.
- ફુલ એડર ગણતરીએરિથમિટીક મોડમાં LUT ના આઉટપુટને ફુલ એડર (Full Adder) માં મોકલીને સરવાળા અને કેરી (carry) ની ઝડપી ગણતરી થાય છે.
- સિંક્રોનાઇઝેશન અને આઉટપુટપરિણામને સિંક્રોનસ રીતે D-ટાઇપ ફ્લિપ-ફ્લોપમાં સ્ટોર કરવામાં આવે છે અથવા અસિંક્રોનસ રીતે આંતરિક રાઉટિંગ નેટવર્કમાં મોકલવામાં આવે છે.
FPGA નો ઇતિહાસ અને ઉત્ક્રાંતિનો પ્રવાસ
FPGA નો ઇતિહાસ પ્રોગ્રામેબલ રીડ-ઓન્લી મેમરી (PROM) અને પ્રોગ્રામેબલ લોજિક ડિવાઇસ (PLD) માંથી શરૂ થયો હતો. આ બંને તકનીકોમાં ફેક્ટરીમાં અથવા વપરાશકર્તાના સ્થળે ચિપને પ્રોગ્રામ કરવાનો વિકલ્પ ઉપલબ્ધ હતો.
આ ક્ષેત્રમાં સૌથી પહેલું મોટું કદમ Altera કંપનીએ ૧૯૮૩ માં સ્થાપના પામ્યા બાદ ૧૯૮૪ માં ઉઠાવ્યું હતું. તેમણે ઉદ્યોગનું પ્રથમ રીપ્રોગ્રામેબલ લોજિક ડિવાઇસ EP300 રજૂ કર્યું હતું. આ ચિપના પેકેજિંગ પર એક ક્વોર્ટઝ વિંડો (quartz window) આપેલી હતી, જેના પર અલ્ટ્રાવાયોલેટ (UV) લેમ્પનો પ્રકાશ ફેંકીને EPROM સેલમાં સંગ્રહિત ચિપ કન્ફિગરેશનને ભૂંસી શકાતું હતું.
ત્યારબાદ ૧૯૮૫ માં Xilinx કંપનીએ (જે હવે AMD હસ્તગત છે) પ્રથમ વ્યાપારી રીતે સફળ FPGA ચિપ XC2064 રજૂ કરી હતી. આ ચિપમાં પ્રોગ્રામેબલ ગેટ્સ અને ગેટ્સ વચ્ચે પ્રોગ્રામેબલ ઇન્ટરકનેક્ટ્સ આપેલા હતા. XC2064 માં ૬૪ કન્ફિગરેબલ લોજિક બ્લોક્સ (Configurable Logic Blocks - CLBs) અને બે ૩-ઇનપુટ લુકઅપ ટેબલ (Lookup Tables - LUTs) સમાવિષ્ટ હતા.
૧૯૮૭ માં, નેવલ સરફેસ વોરફેર સેન્ટરે સ્ટીવ કેસલમેન (Steve Casselman) દ્વારા પ્રસ્તાવિત એક પ્રયોગ માટે ભંડોળ પૂરું પાડ્યું હતું, જેનો હેતુ ૬,૦૦,૦૦૦ રીપ્રોગ્રામેબલ ગેટ્સ ધરાવતું કમ્પ્યુટર બનાવવાનો હતો. કેસલમેન આ પ્રયોગમાં સફળ રહ્યા હતા અને ૧૯૯૨ માં આ સિસ્ટમ માટે પેટન્ટ મેળવવામાં આવી હતી.
૧૯૯૩ સુધીમાં Actel કંપનીએ બજારનો આશરે ૧૮% હિસ્સો મેળવી લીધો હતો. ૨૦૧૩ ના આંકડા મુજબ, Altera (૩૧%), Xilinx (૩૬%), અને Actel (૧૦%) મળીને ગ્લોબલ FPGA બજારનો આશરે ૭૭% હિસ્સો ધરાવતી હતી. FPGA ના ગેટ્સની ક્ષમતા ૧૯૮૭ માં Xilinx ના ૯,૦૦૦ ગેટ્સથી વધીને ૨૦૧૩ માં ૫૦ મિલિયન (૫ કરોડ) ગેટ્સ સુધી પહોંચી ગઈ હતી.
નાણાકીય દ્રષ્ટિએ, ૧૯૮૭ માં આ બજાર $૧૪ મિલિયનનું હતું, જે ૧૯૯૩ માં વધીને $૩૮૫ મિલિયનથી વધુ થયું. ૨૦૦૫ માં તે $૧.૯ બિલિયન, ૨૦૧૦ માં $૨.૭૫ બિલિયન અને ૨૦૧૩ માં $૫.૪ બિલિયન પર પહોંચ્યું હતું. ૨૦૨૦ માં આ બજાર $૯.૮ બિલિયન પર પહોંચવાનો અંદાજ હતો અને ૨૦૩૦ સુધીમાં તે વધીને $૨૩.૩૪ બિલિયન થવાની ધારણા છે. નવી FPGA ડિઝાઇન શરૂ કરવાના આંકડા (design starts) ૨૦૦૫ માં ૮૦,૦૦૦ હતા, જે ૨૦૦૮ માં વધીને ૯૦,૦૦૦ થયા હતા.

બિલિયન ડૉલર
આંતરિક આર્કિટેક્ચર: લોજિક સેલ અને LUT ની રચના
FPGA નું મૂળભૂત આર્કિટેક્ચર કન્ફિગરેબલ લોજિક બ્લોક્સ (CLBs) અથવા લોજિક એરે બ્લોક્સ (LABs), ઇનપુટ/આઉટપુટ પેડ્સ (I/O pads), અને રાઉટિંગ ચેનલો (routing channels) ની ગ્રીડથી બનેલું હોય છે. સામાન્ય રીતે તમામ રાઉટિંગ ચેનલો સમાન પહોળાઈ અથવા સિગ્નલ ક્ષમતા ધરાવે છે.
એક સામાન્ય લોજિક સેલ ત્રણ મુખ્ય ઘટકોથી બનેલો હોય છે: ૪-ઇનપુટ લુકઅપ ટેબલ (4-input LUT), ફુલ એડર (Full Adder - FA), અને D-ટાઇપ ફ્લિપ-ફ્લોપ (D-type flip-flop). ૪-ઇનપુટ LUT ને બે ૩-ઇનપુટ LUT માં વિભાજિત કરી શકાય છે. સામાન્ય મોડમાં, આ બંનેને પ્રથમ મલ્ટિપ્લેક્સર (multiplexer/mux) દ્વારા જોડીને ૪-ઇનપુટ LUT બનાવવામાં આવે છે. એરિથમિટીક (ગણતરી) મોડમાં, તેમના આઉટપુટને એડર (adder) માં મોકલવામાં આવે છે. મોડની પસંદગી બીજા મલ્ટિપ્લેક્સર દ્વારા થાય છે, જ્યારે પ્રોગ્રામિંગ દ્વારા ત્રીજા મલ્ટિપ્લેક્સરની મદદથી આઉટપુટને સિંક્રોનસ (અંકુશિત) કે અસિંક્રોનસ મોડમાં મેળવી શકાય છે.
કોઈપણ ડિઝાઇન માટે રાઉટિંગ ચેનલોની જરૂરિયાત સર્કિટના પ્રકાર પર આધાર રાખે છે. ઉદાહરણ તરીકે, ક્રોસબાર સ્વિચને સિસ્ટોલિક એરે કરતાં વધુ રાઉટિંગની જરૂર પડે છે. બિનઉપયોગી રાઉટિંગ ચેનલો ખર્ચ વધારે છે અને પ્રદર્શન ઘટાડે છે, તેથી ઉત્પાદકો 'રેન્ટ્સ રૂલ' (Rent's rule) ના અંદાજો આધારે યોગ્ય પ્રમાણમાં ચેનલો પૂરી પાડે છે.
| વર્ષ / મોડેલ | ઉત્પાદક કંપની | મુખ્ય આર્કિટેક્ચરલ વિગત | વિશેષ સુવિધા |
|---|---|---|---|
| ૧૯૮૪ (EP300) | Altera | પ્રથમ રીપ્રોગ્રામેબલ લોજિક | EPROM ભૂંસવા યુવી ક્વોર્ટઝ વિંડો |
| ૧૯૮૫ (XC2064) | Xilinx | ૬૪ CLBs, બે ૩-ઇનપુટ LUTs | પ્રથમ વ્યાપારી FPGA ચિપ |
| ૨૦૧૨ (Zynq-7000) | Xilinx | ૧.૦ GHz ડ્યુઅલ-કોર ARM Cortex-A9 | ઓલ-પ્રોગ્રામેબલ SoC ઇન્ટીગ્રેશન |
| ૨૦૧૨ (Arria V) | Altera | ૮૦૦ MHz ડ્યુઅલ-કોર ARM Cortex-A9 | સિસ્ટમ-ઓન-ચિપ આર્કિટેક્ચર |
હાર્ડ બ્લોક્સ, સોફ્ટ કોર અને સિસ્ટમ-ઓન-ચિપ ઇન્ટીગ્રેશન
આધુનિક FPGA માત્ર લોજિક ગેટ્સ સુધી સીમિત નથી. તેમાં હાઇ-લેવલ ફંક્શનાલિટી ધરાવતા સર્કિટ્સને સિલિકોન પર કાયમી હાર્ડવેર તરીકે કંડારવામાં આવે છે, જેને 'હાર્ડ બ્લોક્સ' (Hard blocks) કહે છે. આમાં સિલિકોન મલ્ટિપ્લાયર્સ, DSP બ્લોક્સ, એમ્બેડેડ મેમરી અને હાઇ-સ્પીડ ટ્રાન્સિવર્સનો સમાવેશ થાય છે. આ હાર્ડ IP કોર્સ ટ્રાન્ઝિસ્ટરથી સીધા બનેલા હોવાથી ASIC જેટલી ઉચ્ચ કાર્યક્ષમતા અને ઓછો પાવર વપરાશ પૂરો પાડે છે.
બીજો અભિગમ 'સોફ્ટ પ્રોસેસર કોર' (Soft core) નો છે, જેમાં FPGA ના પ્રોગ્રામેબલ લોજિકનો ઉપયોગ કરીને પ્રોસેસર બનાવવામાં આવે છે. Nios II, MicroBlaze, અને Mico32 આ પ્રકારના લોકપ્રિય સોફ્ટકોર પ્રોસેસર છે.
૨૦૧૨ માં ટેકનોલોજી ઉદ્યોગે એક નવો વળાંક લીધો જ્યારે FPGA લોજિક અને આંતરિક ઇન્ટરકનેક્ટ્સને એમ્બેડેડ માઇક્રોપ્રોસેસર સાથે જોડીને પ્રોગ્રામેબલ ચિપ પર પૂર્ણ સિસ્ટમ (System on Chip - SoC) બનાવવામાં આવી. Xilinx Zynq-7000 ઓલ-પ્રોગ્રામેબલ SoC આનું ઉત્કૃષ્ટ ઉદાહરણ છે, જેમાં ૧.૦ GHz ડ્યુઅલ-કોર ARM Cortex-A9 MPCore પ્રોસેસરને FPGA ના લોજિક ફેબ્રિકમાં સંકલિત કરવામાં આવ્યું હતું. તેવી જ રીતે Altera Arria V FPGA માં ૮૦૦ MHz ડ્યુઅલ-કોર ARM Cortex-A9 પ્રોસેસર આપવામાં આવ્યું હતું. Microsemi SmartFusion ડિવાઇસમાં ARM Cortex-M3 પ્રોસેસર સાથે ૫૧૨ kB ફ્લેશ અને ૬૪ kB RAM સજ્જ કરવામાં આવી હતી.

ક્લોકિંગ, સિગ્નલિંગ અને ટેસ્ટિંગનું મહત્વ
FPGA ની આંતરિક મોટાભાગની સર્કિટરી સિંક્રોનસ (synchronous) હોય છે, જેને ઘડિયાળના સિગ્નલ (clock signal) ની જરૂર પડે છે. સિગ્નલમાં વિલંબ (skew) ન થાય તે માટે FPGA માં H-ટ્રી (H tree) આકારના વિશેષ ગ્લોબલ અને રિજનલ રાઉટિંગ નેટવર્ક હોય છે. આ ઉપરાંત, આવૃતિ સંશ્લેષણ અને જિટર (jitter) મેનેજમેન્ટ માટે એનાલોગ ફેઝ-લોક્ડ લૂપ (PLL) અને ડિલે-લોક્ડ લૂપ (DLL) નો ઉપયોગ થાય છે.
ચિપની બહાર ડેટા ટ્રાન્સફર કરવા માટે હાઇ-સ્પીડ સેરીયલાઇઝર અને ડિસેરીયલાઇઝર (SERDES) સર્કિટનો ઉપયોગ થાય છે. FPGA ના કન્ફિગરેશન કોડ સામાન્ય રીતે હાર્ડવેર ડિસ્ક્રિપ્શન લેંગ્વેજ (HDL) જેવી કે VHDL માં લખવામાં આવે છે. આ ટેકનોલોજીનો ઉપયોગ ASIC ચિપ બનાવતા પહેલાં તેની સિમ્યુલેશન પ્રોસેસ ઝડપી બનાવવા અને ઓટોમોટિવ, એરોસ્પેસ તથા ટેલિકોમ ક્ષેત્રે મોટા પાયે થાય છે.



