Keshti basqarıw kórsetpesi
Esaplaw texnikasında, keshti basqarıw kórsetpesi — bul baǵdarlamashı yamasa kompilyator tárepinen berilgen yadqa kiriw úlgisin aldın ala biliw arqalı apparatlıq támiynat keshleriniń ónimdarlıǵın jaqsılaw ushın processordıń kórsetpe aǵımına engizilgen keńes[1]. Olar jumıs toplamı ústinen jaqsıraq basqarıwdı támiyinlew arqalı kesh pataslanıwın azaytıwı, ótkiziw uqıplılıǵına bolǵan talaptı kemeytiwi, keshigiwlerdi aylanıp ótiwi múmkin. Keshti basqarıw kórsetpeleriniń kópshiligi programmanıń semantikasına tásir etpeydi, biraq ayırımları tásir etiwi múmkin.
Mısallar
Bunday bir neshe kórsetpeler, variantları menen birge, ARM, MIPS, PowerPC hám x86 sıyaqlı bir qatar processor kórsetpe toplamı arxitekturalarında qollanıladı.
Aldın ala alıw
Sonday-aq maǵlıwmat keshi blogın túrtiw dep te ataladı, onıń tásiri berilgen adreske baylanıslı kesh qatarın júklewdi soraw bolıp tabıladı. Bul x86 kórsetpe toplamındaǵı PREFETCH kórsetpesi arqalı orınlanadı. Ayırım variantlar kesh ierarxiyasınıń joqarǵı dárejelerin aylanıp ótedi, bul jumıs toplamında saqlanbastan, bir márte ótiletuǵın maǵlıwmatlar ushın 'aǵım' kontekstinde paydalı. Aldın ala alıw, yadqa kiriw keshigiwin azaytıw ushın jetkilikli dárejede aldın orın alıwı kerek, mısalı, yadtı sızıqlı túrde ótetuǵın ciklde. GNU Compiler Collection daǵı __builtin_prefetch ishki funkciyası C yamasa C++ programmalastırıw tillerinde bunı qollanıw ushın paydalanılıwı múmkin.
Kórsetpeni aldın ala alıw
Kórsetpe keshi ushın aldın ala alıwdıń bir variantı.
Maǵlıwmat keshi blogın nolge bólistiriw
Bul kórsetpe mazmunın tolıq qayta jazıwdan aldın kesh qatarların tayarlaw ushın qollanıladı. Bul mısalda, processor tiykarǵı yadtan hesh nárse júklewi kerek emes. Semantikalıq tásiri kesh qatarı ólshemindegi bloktı nolge tuwrılanǵan memset funkciyasına teńdey, biraq operaciya tiykarınan biypul orınlanadı.
Maǵlıwmat keshi blogın jaramsız etiw
Bul kórsetpe kesh qatarların olardıń mazmunın tiykarǵı yadqa jazbastan joq qılıw ushın qollanıladı. Nadurıs nátiyjeler múmkin bolǵanlıqtan, abaylı bolıw kerek. Basqa kesh kórsetpelerinen ayırmashılıǵı, programmanıń semantikası ádewir ózgertiledi. Bul waqıtsha maǵlıwmatlardı basqarıw ushın nolge bólistiriw menen birge qollanıladı. Bul kereksiz tiykarǵı yad ótkizgishligin hám kesh pataslanıwın únemleydi.
Maǵlıwmat keshi blogın tazalaw
Bul kórsetpe kesh qatarın dárhal shıǵarıwdı soraydı, keleshektegi bólistiriwler ushın orın bosatadı. Bul maǵlıwmatlardıń endi jumıs toplamınıń bir bólegi emesligi belgili bolǵanda qollanıladı.
Basqa kórsetpeler
Ayırım processorlar kesh kórsetpelerin de óz ishine alatuǵın júklew-saqlaw kórsetpeleriniń variantın qollaydı. Mısal retinde, PowerPC kórsetpe toplamındaǵı «sońǵı júklew» kórsetpesin keltiriwge boladı, ol maǵlıwmatlar tek bir márte qollanılatuǵının bildiredi, yaǵnıy soraw etilgen kesh qatarı shıǵarıw gezeginiń basına jıljıtılıwı múmkin, biraq ele de tikkeley kerek bolsa, qollanıwda qaladı.
Alternativalar
Avtomat túrde aldın ala júklew
Sońǵı waqıtları keshti basqarıw kórsetpeleri kem qollanılatuǵın boldı, sebebi Intel hám ARM kompaniyalarınıń qosımsha processorlarınıń rawajlanǵan dizaynları dástúrli tillerde jazılǵan kodlardı tezlestiriwge kóbirek tranzistorlar ajıratıp atır, mısalı, sızıqlı kirgiziw úlgilerin avtomat túrde anıqlaytuǵın apparatlıq támiynat arqalı avtomatlı aldın ala júklewdi orınlaydı. Degen menen, bul usıllar ótkiziw uqıplılıǵına baǵdarlanǵan processorlar ushın ele de áhmiyetli bolıwı múmkin, sebebi olar ótkiziw uqıplılıǵı menen keshigiw arasında basqasha balansqa iye hám orınlaw bloklarına kóbirek maydan ajıratıwdı maqul kóriwi múmkin.
Jumıs maydanı yadı
Ayırım processorlar waqıtsha maǵlıwmatlardı saqlaw ushın jumıs maydanı yadın qollaydı, hám kerek bolǵanda tiykarǵı yadtan maǵlıwmatlardı alıw hám oǵan jazıw ushın tikkeley yadqa kiriw (DMA) usılın paydalanadı. Bul usıl Cell processorı hám ayırım engizilgen sistemalarda qollanıladı. Bul usıllar yad trafigi hám lokallıǵın kóbirek basqarıwǵa múmkinshilik beredi (sebebi jumıs toplamı anıq kóshirip ótkeriwler arqalı basqarıladı), hám kóp yadrolı mashinalarda qımbat kesh kelisimliligine bolǵan zárúrlikti saplastıradı.
Kemshiligi - bul usıldı qollanıw ushın ádewir ayırmashılıǵı programmalastırıw texnikaların talap etedi. C hám C++ sıyaqlı dástúrli tillerde jazılǵan programmalardı beyimlestiriw júdá qıyın, sebebi bul tiller baǵdarlamashıǵa úlken adres keńisliginiń birdey kórinisin usınadı (bul keshler arqalı simulyaciya qılınǵan illyuziya). Dástúrli mikroprocessor eski kodlardı ańsatıraq orınlay aladı, sońınan olardı keshti basqarıw buyrıqları arqalı tezletiwge boladı. Al jumıs maydanına tiykarlanǵan mashina hátte islewi ushın da tiykarınan arnawlı kodlawdı talap etedi. Keshti basqarıw buyrıqları belgili bir kesh qatarı ólshemine tiyisli boladı, bul ámelde bir arxitekturalıq shańaraqtaǵı hár túrli áwlad processorlarında ózgerip turıwı múmkin. Keshler jáne de boljawǵa qıyın bolǵan kiriw úlgilerinen oqıw hám jazıwlardı birlestiriwge járdem bere aladı (mısalı, tekstura kartasın dúziw waqtında), al jumıs maydanı DMA bolsa algoritmlerdi boljawǵa ańsat bolǵan 'sızıqlı' ótiwler ushın qayta islewdi talap etedi.
Usılayınsha, jumıs maydanların dástúrli programmalastırıw modelleri menen paydalanıw ulıwma alǵanda qıyınıraq, biraq maǵlıwmat aǵımı modelleri (mısalı, TensorFlow) kóbirek ılayıqlı bolıwı múmkin.
Vektorlı alıw
Vektorlı processorlar (mısalı, zamanagóy grafikalıq processor blokları (GPU) hám Xeon Phi) yad keshigiwin aylanıp ótiw ushın úlken parallellikti qollanıp joqarı ótkizgishlikke erisedi (aldın ala alıwǵa bolǵan talaptı kemeytedi). Esaplaw yadrosınıń keyingi shaqırıwları ushın kóp sanlı oqıw operaciyaları parallel túrde shıǵarıladı; esaplawlar keleshek maǵlıwmatlardı kútip turıwı múmkin, al orınlaw blokları ótmishtegi sorawlardan alınǵan hám álleqashan jetken maǵlıwmatlar ústinde islewge arnaladı. Bul usıldı baǵdarlamashılar ushın sáykes programmalastırıw modelleri (esaplaw yadroları) menen birge qollanıw ańsatıraq, biraq ulıwma maqsetli programmalastırıwǵa qollanıw qıyınıraq.
Kemshiligi sonda, ushıp kiyatırǵan maǵlıwmatlardı kútip turǵan qayta islew elementiniń jergilikli yadında waqıtsha jaǵdaylardıń kóp kóshirmeleri saqlanıwı múmkin.
Derekler
- ↑ «Power PC manual, see 1.10.3 Cache Control Instructions». 13-oktyabr 2016-jılda túp nusqadan arxivlendi. Qaraldı: 11-iyun 2016-jıl.