Advanced Programmable Interrupt Controller
કમ્પ્યુટિંગમાં, ઇન્ટેલનું એડવાન્સ્ડ પ્રોગ્રામેબલ ઇન્ટરપ્ટ કંટ્રોલર (એપીઆઇસી) એ વિક્ષેપ નિયંત્રકોનું એક કુટુંબ છે. તેનું નામ સૂચવે છે તેમ, એપીઆઇસી ઇન્ટેલના 8259 પ્રોગ્રામેબલ ઇન્ટરપ્ટ કંટ્રોલર (પીઆઇસી) કરતાં વધુ અદ્યતન છે, જે ખાસ કરીને મલ્ટીપ્રોસેસર સિસ્ટમોના નિર્માણને સક્ષમ કરે છે. તે મલ્ટીપ્રોસેસર કમ્પ્યુટર સિસ્ટમોમાં વિક્ષેપ રૂટીંગ કાર્યક્ષમતાના મુદ્દાઓને ઉકેલવા માટેના ઘણા સ્થાપત્ય ડિઝાઇનમાંથી એક છે. એપીઆઇસી એ વિભાજિત આર્કિટેક્ચર ડિઝાઇન છે, જેમાં સ્થાનિક ઘટક (એલએપીઆઇસી) સામાન્ય રીતે પ્રોસેસરમાં જ સંકલિત હોય છે, અને સિસ્ટમ બસ પર વૈકલ્પિક આઇ/ઓ એપીઆઇસી હોય છે. પ્રથમ એપીઆઇસી 82489ડીએક્સ હતી તે એક અલગ ચિપ હતી જે સ્થાનિક અને આઈ/ઓ એપીઆઇસી બંને તરીકે કામ કરતી હતી. 82489ડીએક્સે ઇન્ટેલ 486 અને પ્રારંભિક પેન્ટિયમ પ્રોસેસરો સાથે સપ્રમાણ મલ્ટીપ્રોસેસર (એસએમપી) સિસ્ટમોનું નિર્માણ સક્ષમ કર્યું; ઉદાહરણ તરીકે, સંદર્ભ દ્વિ-માર્ગીય 486 એસએમપી પ્રણાલીમાં ત્રણ 82489ડીએક્સ ચિપ્સનો ઉપયોગ કરવામાં આવ્યો હતો, જેમાં બે સ્થાનિક એપીઆઇસી તરીકે અને એક આઈ/ઓ એપીઆઇસી તરીકે હતી. P54C પ્રોસેસરથી શરૂ કરીને, સ્થાનિક APIC કાર્યક્ષમતાને ઇન્ટેલ પ્રોસેસર્સના સિલિકોનમાં સંકલિત કરવામાં આવી હતી. પ્રથમ સમર્પિત I/O APIC ઇન્ટેલ 82093AA હતું, જે PIIX3-આધારિત સિસ્ટમો માટે બનાવાયેલ હતું. ઝાંખી ઇન્ટેલ એપીઆઇસી પ્રણાલીમાં બે ઘટકો છે, સ્થાનિક એપીઆઇસી (એલએપીઆઇસી) અને આઈ/ઓ એપીઆઇસી. સિસ્ટમમાં દરેક CPUમાં એક LAPIC હોય છે. ખૂબ જ પ્રથમ અમલીકરણ (82489ડીએક્સ) માં, એલએપીઆઇસી એક અલગ સર્કિટ હતી, જે ઇન્ટેલ પ્રોસેસર્સના સિલિકોનમાં તેના પછીના અમલીકરણથી વિપરીત હતી. સિસ્ટમમાં દરેક પેરિફેરલ બસ માટે સામાન્ય રીતે એક I/O APIC હોય છે. મૂળ સિસ્ટમ ડિઝાઇનમાં, એલ. એ. પી. આઈ. સી. અને આઈ/ઓ. એ. પી. આઈ. સી. સમર્પિત એ. પી. આઈ. સી. બસ દ્વારા જોડાયેલા હતા. નવી સિસ્ટમો તમામ એપીઆઇસી ઘટકો વચ્ચેના સંચાર માટે સિસ્ટમ બસનો ઉપયોગ કરે છે. દરેક એપીઆઇસી, પછી ભલે તે અલગ ચિપ હોય અથવા સીપીયુમાં સંકલિત હોય, તેના ચોક્કસ એપીઆઇસી અમલીકરણ માટે ચાર-બીટ સંસ્કરણ નંબર ધરાવતું સંસ્કરણ રજિસ્ટર હોય છે. ઉદાહરણ તરીકે, 82489ડીએક્સનો એપીઆઇસી સંસ્કરણ નંબર 0 છે, જ્યારે સંસ્કરણ 1 પેન્ટિયમ 90 અને 100 પ્રોસેસરોમાં સંકલિત સ્થાનિક એપીઆઇસીની પ્રથમ પેઢીને સોંપવામાં આવ્યું હતું. 8259 પી. આઈ. સી. ધરાવતી પ્રણાલીઓમાં, 8259 પ્રણાલીના બુટસ્ટ્રેપ પ્રોસેસર (બી. એસ. પી.) માં એલ. એ. પી. આઈ. સી. સાથે, પ્રણાલીના આઈ/ઓ. એ. પી. આઈ. સી. માંથી એક અથવા બંને સાથે જોડાયેલ હોઈ શકે છે. તાર્કિક રીતે, જોકે, 8259 કોઈપણ સમયે માત્ર એક જ વાર જોડાયેલ છે. ડિસ્ક્રીટ એપીઆઇસી પ્રથમ પેઢીની ઇન્ટેલ એપીઆઇસી ચિપ, 82489ડીએક્સ, જેનો ઉપયોગ ઇન્ટેલ 80486 અને પ્રારંભિક પેન્ટિયમ પ્રોસેસરો સાથે થવાનો હતો, તે વાસ્તવમાં એક સર્કિટમાં બાહ્ય સ્થાનિક અને I/O એપીઆઇસી છે. મોટાભાગના પેન્ટિયમ પ્રોસેસર્સમાં જોવા મળતા "સંકલિત એપીઆઇસી" થી વિપરીત ઇન્ટેલ એમપી 1.4 સ્પષ્ટીકરણ તેને "અલગ એપીઆઇસી" તરીકે ઉલ્લેખ કરે છે. 82489ડીએક્સમાં 16 વિક્ષેપ રેખાઓ હતી; તેમાં એક વિચિત્રતા પણ હતી કે તે કેટલાક આઇએસએ વિક્ષેપો ગુમાવી શકે છે. મલ્ટીપ્રોસેસર 486 સિસ્ટમમાં, દરેક CPUને તેના પોતાના 82489DX સાથે જોડવું પડતું હતું; વધુમાં પૂરક 82489DXનો ઉપયોગ I/O APIC તરીકે કરવો પડતો હતો. 82489ડીએક્સ 8259એ (એક્સટી-પીઆઈસી) નું અનુકરણ કરી શક્યું ન હતું, તેથી પછાત સુસંગતતા માટે આને ભૌતિક ચિપ્સ તરીકે પણ સામેલ કરવી પડી હતી. 82489ડીએક્સ 132-પિન પી. ક્યુ. એફ. પી. તરીકે પેકેજ્ડ હતું. સંકલિત સ્થાનિક એપીઆઇસી સ્થાનિક એપીઆઇસી (એલએપીઆઇસી) એસ. એમ. પી. પ્રણાલીમાં અમુક ચોક્કસ પ્રોસેસર માટે તમામ બાહ્ય વિક્ષેપોને સંચાલિત કરે છે. વધુમાં, તેઓ એલ. એ. પી. આઈ. સી. વચ્ચે આંતર-પ્રોસેસર વિક્ષેપો (આઈ. પી. આઈ.) સ્વીકારવા અને પેદા કરવામાં સક્ષમ છે. એલ. એ. પી. આઈ. સી. આઈ./ઓ. એ. પી. આઈ. સી. માંથી 224 ઉપયોગી વિક્ષેપ વેક્ટરને ટેકો આપી શકે છે. વેક્ટર નંબરો 0 થી 31,0 થી 255 માંથી, x86 પ્રોસેસરો દ્વારા અપવાદ સંચાલન માટે આરક્ષિત છે. પી5 માઇક્રોઆર્કિટેક્ચર (પી54સી) થી શરૂ થતા તમામ ઇન્ટેલ પ્રોસેસર્સ બિલ્ટ-ઇન સ્થાનિક એપીઆઇસી ધરાવે છે. જો કે, જો સ્થાનિક એપીઆઇસી પી5 પ્રોસેસરમાં નિષ્ક્રિય હોય, તો તેને સોફ્ટવેર દ્વારા ફરીથી સક્ષમ કરી શકાતું નથી; આ મર્યાદા હવે પી6 પ્રોસેસર અને પછીના પ્રોસેસરોમાં અસ્તિત્વમાં નથી. સ્થાનિક એપીઆઇસીને સક્ષમ કર્યા વિના પીસીઆઇ 2.2 અને પછીના સ્પષ્ટીકરણોની સંદેશ સંકેત વિક્ષેપો (એમએસઆઇ) સુવિધાનો ઉપયોગ કરી શકાતો નથી. એમએસઆઈનો ઉપયોગ આઈ/ઓ એપીઆઇસીની જરૂરિયાતને દૂર કરે છે. વધુમાં, એમ. એસ. આઈ. મોડમાં 224 જેટલા વિક્ષેપોને ટેકો આપવામાં આવે છે, અને આઈ. આર. ક્યુ. વહેંચણીને મંજૂરી નથી. એપીઆઇસી ટાઈમર સ્થાનિક એપીઆઇસીનો બીજો ફાયદો એ છે કે તે ઉચ્ચ-રીઝોલ્યુશન (એક માઇક્રોસેકન્ડ અથવા વધુ સારા ક્રમમાં) ટાઈમર પણ પ્રદાન કરે છે જેનો ઉપયોગ અંતરાલ અને વન-ઓફ મોડ બંનેમાં થઈ શકે છે. એપીઆઇસી ટાઈમરને તેની પ્રારંભિક સ્વીકૃતિ સમસ્યાઓ હતી. 2002ના માઈક્રોસોફ્ટ દસ્તાવેજ (જેણે તેના બદલે ઉચ્ચ ચોકસાઇવાળા ઇવેન્ટ ટાઈમરને અપનાવવાની હિમાયત કરી હતી) એ એલ. એ. પી. આઈ. સી. ટાઈમરની "નબળા રિઝોલ્યુશન" માટે ટીકા કરી હતી અને કહ્યું હતું કે "ઘડિયાળો સિલિકોન કેટલીકવાર ખૂબ બગડી જાય છે". તેમ છતાં, એપીઆઇસી ટાઈમરનો ઉપયોગ ઉદાહરણ તરીકે વિન્ડોઝ 7 દ્વારા જ્યારે પ્રોફાઇલિંગ સક્ષમ હોય અને વિન્ડોઝ 8 દ્વારા તમામ સંજોગોમાં થાય છે. (વિન્ડોઝ 8એ આ ટાઈમરના વિશિષ્ટ અધિકારોનો દાવો કર્યો તે પહેલાં, તેનો ઉપયોગ CPU-Z જેવા કેટલાક પ્રોગ્રામ્સ દ્વારા પણ થતો હતો.) માઈક્રોસોફ્ટ વિન્ડોઝ હેઠળ એપીઆઇસી ટાઈમર શેર કરી શકાય તેવું સંસાધન નથી. એપીઆઇસી ટાઈમર દ્વારા આપવામાં આવતા એપેરિયોડિક વિક્ષેપો લિનક્સ કર્નલ ટિકલેસ કર્નલ સુવિધા દ્વારા ઉપયોગમાં લેવાય છે. આ વૈકલ્પિક પરંતુ મૂળભૂત સુવિધા 2.6.18 સાથે નવી છે. જ્યારે એ. પી. આઈ. સી. ટાઈમર સાથે કમ્પ્યુટર પર સક્ષમ હોય, ત્યારે કર્નલ સમયપાલન માટે 8253 પ્રોગ્રામેબલ અંતરાલ ટાઈમરનો ઉપયોગ કરતું નથી. વીએમવેર દસ્તાવેજ નોંધે છે કે "સોફ્ટવેર પાસે તેની આવૃત્તિ નક્કી કરવાની વિશ્વસનીય રીત નથી. સામાન્ય રીતે, સ્થાનિક એપીઆઇસી ટાઈમરની આવર્તન નક્કી કરવાનો એકમાત્ર રસ્તો એ છે કે તેને પીઆઇટી અથવા સીએમઓએસ ટાઈમરનો ઉપયોગ કરીને માપવામાં આવે, જે માત્ર અંદાજિત પરિણામ આપે છે. I/O APICs I/O APICs એ રીડાયરેક્શન ટેબલ ધરાવે છે, જેનો ઉપયોગ પેરિફેરલ બસોમાંથી પ્રાપ્ત થતા વિક્ષેપોને એક અથવા વધુ સ્થાનિક APICs સુધી પહોંચાડવા માટે થાય છે. પ્રારંભિક I/O APICs (જેમ કે 82489DX, SIO.A અને PCEB/ESC) પાસે માત્ર 16 વિક્ષેપ રેખાઓ માટે આધાર હતો, પરંતુ પછીની 82093AA (PIIX3/PIIX4 માટે અલગ ચિપ) પાસે 24 વિક્ષેપ રેખાઓ માટે આધાર હતો. તેને 64-પિન PQFP તરીકે પેક કરવામાં આવ્યું હતું. 82093એ. એ. સામાન્ય રીતે પી. આઈ. આઈ. એક્સ. 3/પી. આઈ. આઈ. એક્સ. 4 સાથે જોડાયેલ છે અને તેના સંકલિત વારસો 8259 પી. આઈ. સી. નો ઉપયોગ કરે છે. ICH1 અને ઇન્ટેલ 815 એ I/O APIC ને એકીકૃત કર્યું. લિનક્સનો ઉપયોગ કરતા 2009ના ઇન્ટેલ બેન્ચમાર્ક અનુસાર, I/O APICએ 8259 ઇમ્યુલેશન (XT-PIC) ની સરખામણીમાં લગભગ ત્રણ પરિબળો દ્વારા વિક્ષેપ વિલંબ ઘટાડ્યો હતો, જ્યારે MSIનો ઉપયોગ કરવાથી વિલંબમાં વધુ ઘટાડો થયો હતો, જે XT-PIC આધારરેખા સાથે સંબંધિત લગભગ સાત પરિબળો દ્વારા હતો. xAPICને પેન્ટિયમ 4 સાથે રજૂ કરવામાં આવ્યું હતું, જ્યારે x2APIC એ ઇન્ટેલના પ્રોગ્રામેબલ ઇન્ટરપ્ટ કંટ્રોલરની સૌથી તાજેતરની પેઢી છે, જે નવેમ્બર 2008માં નેહાલેમ માઇક્રોઆર્કિટેક્ચર સાથે રજૂ કરવામાં આવી હતી. x2APIC ના મુખ્ય સુધારાઓ સમર્થિત CPU ની સંખ્યા અને ઈન્ટરફેસની કામગીરીને સંબોધિત કરે છે. x2APIC હવે CPU ને સંબોધવા માટે 32 બિટ્સનો ઉપયોગ કરે છે, જે ભૌતિક ગંતવ્ય મોડનો ઉપયોગ કરીને 232−1 CPU સુધી સંબોધવાની મંજૂરી આપે છે. લોજિકલ ડેસ્ટિનેશન મોડ હવે અલગ રીતે કામ કરે છે અને ક્લસ્ટરોને રજૂ કરે છે; આ મોડનો ઉપયોગ કરીને, કોઈ 220−16 પ્રોસેસરોને સંબોધિત કરી શકે છે. સુધારેલ ઈન્ટરફેસ ઇન્ટર-પ્રોસેસર વિક્ષેપો (IPI) મોકલવા માટે જરૂરી APIC રજિસ્ટર એક્સેસની સંખ્યાને ઘટાડે છે. આ લાભને કારણે, KVM જૂના પ્રોસેસરો માટે x2APICનું અનુકરણ કરી શકે છે અને કરે છે જે તેને શારીરિક રીતે સમર્થન આપતા નથી, અને આ સમર્થન QEMU દ્વારા કોનરો પર પાછા જવાથી અને AMD ઓપ્ટેરોન G-સિરીઝ પ્રોસેસરો માટે પણ ખુલ્લું પડે છે (જેમાંથી કોઈ પણ મૂળ રૂપે x2APICને સમર્થન આપતું નથી). એપીઆઇસીવી એ હાર્ડવેર વર્ચ્યુઅલાઈઝેશન સપોર્ટ માટેનું ઇન્ટેલનું બ્રાન્ડ નામ છે જેનો હેતુ મહેમાનોમાં ઓવરહેડમાં વિક્ષેપ ઘટાડવાનો છે. એપીઆઇસીવી આઇવી બ્રિજ-ઇપી પ્રોસેસર શ્રેણીમાં રજૂ કરવામાં આવી હતી, જે ઝીઓન ઇ <આઇડી1> એક્સએક્સ વી2 (2013ના અંતમાં લોન્ચ કરવામાં આવી હતી) અને ઝીઓન ઇ <આઇડી2> એક્સએક્સ વી2 (2014ની શરૂઆતમાં લોન્ચ કરવામાં આવી હતી) તરીકે વેચવામાં આવે છે. એ. એમ. ડી. એ એવીઆઇસી નામની સમાન તકનીકની જાહેરાત કરી હતી, તે ઉપલબ્ધ ફેમિલી 15એચ મોડલ 6એક્સએચ (કેરીઝો) પ્રોસેસર્સ અને નવા છે. મુદ્દાઓ એ. પી. આઈ. સી. પ્રણાલીઓના અમલીકરણમાં સંખ્યાબંધ જાણીતી ભૂલો છે, ખાસ કરીને 8254 કેવી રીતે જોડાયેલ છે તેની ચિંતા સાથે. ખામીયુક્ત બી. આઈ. ઓ. એસ. વિક્ષેપ રૂટીંગને યોગ્ય રીતે સુયોજિત કરી શકતા નથી, અથવા ખોટા એ. સી. પી. આઈ. કોષ્ટકો અને ઇન્ટેલ મલ્ટીપ્રોસેસર સ્પષ્ટીકરણ (એમ. પી. એસ.) કોષ્ટકો પ્રદાન કરી શકે છે. જ્યારે ઓપરેટિંગ સિસ્ટમ તેને યોગ્ય રીતે સપોર્ટ કરતી નથી ત્યારે APIC પણ સિસ્ટમની નિષ્ફળતાનું કારણ બની શકે છે. જૂની ઓપરેટિંગ સિસ્ટમો પર, I/O અને સ્થાનિક APIC ને ઘણીવાર નિષ્ક્રિય કરવી પડતી હતી. જ્યારે આ હવે સપ્રમાણ મલ્ટીપ્રોસેસર અને મલ્ટી-કોર સિસ્ટમોના પ્રસારને કારણે શક્ય નથી, ત્યારે ફર્મવેર અને ઓપરેટિંગ સિસ્ટમ્સમાં ભૂલો હવે એક દુર્લભ ઘટના છે. સ્પર્ધા એએમડી અને સાઇરિક્સે એકવાર 32 પ્રોસેસરોને ટેકો આપતા કંઈક અંશે સમાન-હેતુવાળા ઓપનપીઆઇસી આર્કિટેક્ચરની દરખાસ્ત કરી હતી; તેને 1995 ની આસપાસ આઇબીએમ અને કોમ્પેક તરફથી ઓછામાં ઓછો ઘોષણાત્મક ટેકો મળ્યો હતો. જોકે ઓપનપીઆઇસી સાથે કોઈ x86 મધરબોર્ડ બહાર પાડવામાં આવ્યું ન હતું. x86 બજારમાં ઓપનપીઆઇસીની નિષ્ફળતા પછી, એએમડીએ તેના એએમડી એથલોન અને પછીના પ્રોસેસરો માટે ઇન્ટેલના એપીઆઇસીને લાઇસન્સ આપ્યું હતું. જોકે આઇબીએમએ ઓપનપીઆઇસી રજિસ્ટર સ્પષ્ટીકરણોના આધારે તેમનું મલ્ટીપ્રોસેસર ઇન્ટરપ્ટ કંટ્રોલર (એમપીઆઇસી) વિકસાવ્યું હતું. એમપીઆઇસીનો ઉપયોગ પાવરપીસી આધારિત ડિઝાઇનમાં કરવામાં આવ્યો હતો, જેમાં આઇબીએમનો સમાવેશ થાય છે, ઉદાહરણ તરીકે કેટલીક આરએસ/6000 સિસ્ટમોમાં, પણ એપલ દ્વારા પણ, તેમના પાવર મેક જી5એસ જેટલા અંતમાં. આ પણ જુઓ ઇન્ટેલ 8259 પ્રોગ્રામેબલ ઇન્ટરપ્ટ કંટ્રોલર (PIC) ઇન્ટર-પ્રોસેસર ઇન્ટરપ્ટ (IPI) ઇન્ટરપ્ટ ઇન્ટરપ્ટ હેન્ડલર ઇન્ટરપ્ટ લેટન્સી મેસેજ સિગ્નલ્ડ ઇન્ટરપ્ટ્સ (MSI) નોન-માસ્કેબલ ઇન્ટરપ્ટ (NMI) સંદર્ભો વધુ વાંચન IA-32 ઇન્ટેલ આર્કિટેક્ચર સોફ્ટવેર ડેવલપરની માર્ગદર્શિકા, વોલ્યુમ 3A: સિસ્ટમ પ્રોગ્રામિંગ માર્ગદર્શિકા, ભાગ 1, પ્રકરણ 10. બાહ્ય કડીઓ ઇન્ટેલ 64 આર્કિટેક્ચર x2APIC સ્પષ્ટીકરણ (PDF) ઇન્ટેલ x2APIC આર્કિટેક્ચર પર વધુ માહિતી "ઇન્ટેલ 64 અને IA-32 આર્કિટેક્ચર સોફ્ટવેર ડેવલપરના મેન્યુઅલ મધરબોર્ડ ઇન્ટરપ્ટ્સ એપિક આર્કિટેક્ચર IBM PC કોમ્પેટિબલ X86 આર્કિટેક્ચર" માં મળી શકે છે.