Adreslew rejimi
Adreslew rejimleri kópshilik oraylıq processor (CPU) dizaynlarındaǵı kórsetpeler toplamı arxitekturasınıń bir aspekti bolıp tabıladı. Belgili bir kórsetpeler toplamı arxitekturasında anıqlanǵan hár túrli adreslew rejimleri sol arxitekturadaǵı mashina tili kórsetpeleriniń hár bir kórsetpeniń operand(lar)ın qalay anıqlaytuǵının belgileydi. Adreslew rejimi registrlarda hám/yamasa mashina kórsetpesi ishinde yamasa basqa jerde jaylasqan turaqlı mánislerdegi informaciyanı paydalanıp, operandtıń nátiyjeli yad adresin qalay esaplaw kerekligin kórsetedi.
Kompyuter programmalastırıwda adreslew rejimleri tiykarınan assembler tillerinde jazatuǵınlarǵa hám kompilyator jazıwshılarǵa qızıqlı. Baylanıslı túsinik ushın ortogonal kórsetpeler toplamına qarań, ol hár qanday kórsetpeniń hár qanday adreslew rejimin paydalana alıw qábiletin qarastıradı.
Eskertpeler
Adreslew rejimleri ushın ulıwma qabıl etilgen atamalar joq: hár túrli avtorlar hám kompyuter óndiriwshileri birdey adreslew rejimine hár túrli atlar beriwi yamasa hár túrli adreslew rejimlerine birdey atlar beriwi múmkin. Bunnan basqa, bir arxitekturada bir pútin adreslew rejimi retinde qaralatuǵın bir adreslew rejimi, basqa arxitekturada eki yamasa onnan kóp adreslew rejimleri menen qamtılatuǵın funkciyanı kórsetiw múmkin. Mısalı, Digital Equipment Corporation (DEC) VAX sıyaqlı ayırım quramalı kórsetpeler toplamı kompyuteri (CISC) arxitekturaları registrlerdi hám anıq yamasa tez turaqlı mánislerdi jáne bir adreslew rejimi retinde qaraydı. Basqaları, mısalı IBM System/360 hám onıń miyrasxorları, hám kópshilik qısqartılǵan kórsetpeler toplamı kompyuteri (RISC) dizaynları bul informaciyanı kórsetpe ishinde kodlaydı. Usılayınsha, sońǵı mashinalarda bir registrdi ekinshisine kóshiriw, anıq turaqlı mánisti registrge kóshiriw hám yad ornınıń mazmunın registrge kóshiriw ushın úsh túrli kórsetpe kodı bar, al VAX-ta tek bir «MOV» kórsetpesi ǵana bar.
«Adreslew rejimi» termini ózi de hár túrli interpretaciyalarǵa iye: yamasa «yad adresin esaplaw rejimi» yamasa «operandqa kiriw rejimi». Birinshi interpretaciya boyınsha, yadtı oqımaytuǵın yamasa yadqa jazbaytuǵın kórsetpeler («anıq turaqlı mánisti registrge qosıw» sıyaqlı) «adreslew rejimine» iye emes dep esaplanadı. Ekinshi interpretaciya registr yamasa anıq turaqlı mánisli operandqa ruqsat beriw ushın operand rejimi bitlerin paydalanatuǵın VAX sıyaqlı mashinalarǵa múmkinshilik beredi. Tek birinshi interpretaciya ǵana operandtıń ózin emes, al onıń adresin júkleytuǵın «nátiyjeli adresti júklew» sıyaqlı kórsetpelerge qollanıladı.
Tómende kórsetilgen adreslew rejimleri kod adreslewine hám maǵlıwmat adreslewine bólingen. Kópshilik kompyuter arxitekturaları bul ayırmashılıqtı saqlaydı, biraq (derlik) barlıq adreslew rejimleriniń hár qanday kontekstte paydalanılıwına ruqsat beretuǵın ayırım arxitekturalar da bar (yamasa bolǵan).
Tómende kórsetilgen kórsetpeler tek adreslew rejimlerin kórsetiw ushın ǵana berilgen hám hár qanday belgili bir kompyuterdiń mnemonikaların sáwlelendirmeydi.
Ayırım kompyuterler, mısalı, IBM 709, RCA 3301,[1] bir pútin adres rejimi maydanına iye emes, biraq onıń ornına tikkeley emes adreslew hám indekslew ushın bólek maydanlarǵa iye.
Adreslew rejimleriniń sanı
Kompyuter arxitekturaları apparatlıq támiynatta usınatuǵın adreslew rejimleriniń sanı boyınsha júdá ózgeshelenedi. Quramalı adreslew rejimlerin joq etiwdiń hám tek bir yamasa bir neshe ápiwayı adreslew rejimlerin paydalanıwdıń ayırım artıqmashılıqları bar, hátte bul bir neshe qosımsha kórsetpeni hám bálkim qosımsha registrdi talap etse de[2]. Eger tek ápiwayı adreslew rejimleri ǵana qoljetimli bolsa, konveyerli CPU-lardı dizaynlaw ádewir ańsat ekenligi dálillengen[3][4].
Kópshilik RISC arxitekturaları tek beske jaqın ápiwayı adreslew rejimin ǵana paydalanadı, al DEC VAX sıyaqlı CISC arxitekturaları onnan aslam adreslew rejimine iye, olardıń ayırımları júdá quramalı. IBM System/360 arxitekturası tek tórt adreslew rejimin ǵana paydalanadı; ESA/390 arxitekturası ushın jáne bir neshe qosılǵan.
Tek bir neshe adreslew rejimi bolǵanda, kerekli belgili bir adreslew rejimi ádette kórsetpe kodı ishinde kodlanadı (mısalı, IBM System/360 hám onıń miyrasxorları, kópshilik RISC). Biraq kóp adreslew rejimi bolǵanda, kórsetpede adreslew rejimin kórsetiw ushın kóbinese arnawlı maydan ajıratıladı. DEC VAX derlik barlıq kórsetpeler ushın bir neshe yad operandlarına ruqsat bergen, sonlıqtan hár bir operand kórsetkishiniń birinshi bir neshe bitin sol belgili bir operand ushın adreslew rejimin kórsetiwge ajıratqan. Adreslew rejimi kórsetkishi bitlerin opkod operaciyası bitlerinen bólek saqlaw ortogonal kórsetpeler toplamın payda etedi.
Kóplegen adreslew rejimleri bar kompyuterde de, anıq baǵdarlamalardıń ólshewleri[5] tómende kórsetilgen ápiwayı adreslew rejimleriniń qollanılǵan barlıq adreslew rejimleriniń 90% yamasa onnan kóbiregin quraytuǵının kórsetedi. Bunday ólshewlerdiń kópshiligi kompilyatorlar tárepinen joqarı dárejeli tillerden generaciyalanǵan kodqa tiykarlanǵanlıqtan, bul belgili bir dárejede qollanılıp atırǵan kompilyatorlardıń sheklewlerin sáwlelendiredi[6][7].
Nátiyjeli adresti júklew
Ayırım kórsetpeler toplamı arxitekturaları, mısalı IBM System/360 hám onıń miyrasxorları,[8] Intel x86,[9] hám Motorola 68000 seriyası,[10] nátiyjeli adresti júklew kórsetpesine iye. Bul nátiyjeli operand adresin esaplaydı hám onı ózi silteme bergen yadqa kirmesten registrge júkleydi. Bul massiv elementiniń adresin ishki programmaǵa ótkizgende paydalı bolıwı múmkin. Bul sonıń menen birge bir kórsetpede ádettegiden kóbirek esaplawlardı orınlawdıń aqıllı usılı bolıwı múmkin; mısalı, bunday kórsetpeni «negiz+indeks+ofset» (tómende tolıǵı menen sıpatlanǵan) adreslew rejimi menen paydalanıw bir kórsetpede eki registrdi hám bir turaqlı mánisti birge qosıwǵa hám nátiyjeni úshinshi registrge saqlawǵa múmkinshilik beredi[11].
Ayırım kórsetpeler toplamı arxitekturaları, mısalı Motorola 68000 seriyası, sonday-aq nátiyjeli adresti stekke júklew kórsetpesine de iye. Bul nátiyjeli operand adresin esaplaydı hám onı registrge saqlaw ornına stekke júkleydi. Bul funkciyaǵa argument retinde kórsetkishlerdi ótkiziw ushın paydalanadı.
Derekler
- ↑ System Reference Manual - RCA 3301 REALCOM EDP. RCA, September 1967. 94-16-000-1.
- ↑ John L. Hennessy. «An Overview of the MIPS-X-MP Project» (1986). — „... MIPS-X uses a single addressing mode: base register plus offset. This simple addressing mode allows the computation of the effective address to begin very early ...“.
- ↑ Dr. Jon Squire. «Lecture 19, Pipelining Data Forwarding». CS411 Selected Lecture Notes.
- ↑ «High Performance Computing, Notes of Class 11 (Sept. 15 and 20, 2000) - Pipelining». 27-dekabr 2013-jılda túp nusqadan arxivlendi. Qaraldı: 8-fevral 2014-jıl.
- ↑ John L. Hennessy. Computer Architecture: A Quantitative Approach. „The C54x has 17 data addressing modes, not counting register access, but the four found in MIPS account for 70% of the modes. Autoincrement and autodecrement, found in some RISC architectures, account for another 25% of the usage. This data was collected form a measurement of static instructions for the C-callable library of 54 DSP routines coded in assembly language.“
- ↑ Dr. Sofiène Tahar. «Instruction Set Principles: Addressing Mode Usage (Summary)». — „3 programs measured on machine with all address modes (VAX) ... 75% displacement and immediate“. 30-sentyabr 2011-jılda túp nusqadan arxivlendi.
- ↑ Ali-Reza Adl-Tabatabai. Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation - PLDI '96. „79% of all instructions executed could be replaced by RISC instructions or synthesized into RISC instructions using only basic block instruction combination.“
- ↑ z/Architecture - Principles of Operation. IBM, May 2022 — 7-269 bet.
- ↑ Intel® 64 and IA-32 Architectures Software Developer’s Manual (Combined Volumes: 1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D and 4). Intel Corporation, July 2017 — 7-23 bet.
- ↑ M68000 Family - Programmer's Reference Manual - (Includes CPU32 Instructions). Motorola, 1992 — 4-110 bet.
- ↑ IBM System/360 Principles of Operation. IBM, September 1968 — 135 bet.