Спо́соби адреса́ції па́м'яті — комплекс стандартизованих для певної архітектури системи команд центрального процесора способів для визначення (обчислення) місця розташування операндів у пам'яті ЕОМ або адреси наступної команди при виконанні команд переходу. В цій статті висвітлюються аспекти адресації операндів (методи адресації переходів).
Передумови та потреби
Для того, щоби отримати можливість використовувати дані з пам'яті в обчислювальних операціях, необхідно однозначно вказати процесору їхнє розташування. В фон-нейманівських машинах кожна комірка пам'яті має власну адресу й проблема визначення місця розташування потрібних даних зводиться до визначення цієї адреси.
У перших комп'ютерах адресу або номер комірки необхідно було вказувати явно, і такий метод адресації виявлявся дуже незручним. Труднощі в алгоритмізації різних завдань, де була потрібна автоматизація процесу визначення адреси, стали причиною введення згодом широкого спектра методів адресації. Кожний з них фактично пропонує певну формулу для обчислення ефективної (тобто фактичної) адреси, зручну в тій або іншій ситуації.
Коротке порівняння адресації у CISC та RISC архітектурах
Цей розділ потребує доповнення. |
Пік винахідництва в цій галузі припав на час панування CISC-архітектур «регістр-пам'ять», які дозволяли безпосередньо використовувати як один з операндів комірку пам'яті. RISC-архітектури типу «регістр-регістр», в яких доступ до пам'яті регламентується значно більш жорстко, мають у порівнянні з CISC, дуже скромний набір методів адресації, і у найрадикальніших представниках цієї ідеології зведений до єдиного.
CISC-модель (архітектури «регістр-пам'ять»)
Як приклад CISC-моделі адресації пам'яті, розглянемо різноманітну палітру методів популярної колись архітектури і розглянемо її на прикладі двооперандної команди додавання ADD a, b (a:=a+b), де кожний операнд може бути як регістром, так і безпосередньо знаходитись в пам'яті. В таблиці зведені основні методи адресації VAX (загальна кількість їх перевищує два десятки, але інші є похідними від наведених) за умови, що операнд а завжди перебуває в регістрі R1, а ефективна адреса операнда b обчислюється залежно від зазначеного в команді методу адресації.
Інформація про операнд міститься в його специфікаторі, формат якого варіюється, але для більшості методів адресації складається з полів «регістр» і «режим». Тобто, режим адресації задається полем «режим», а номер задіяного регістра міститься у полі «регістр». В режимі адресації по зсуву, в команді після полів режиму й регістра, з'являється додаткове поле із зазначенням величини самого зсуву. В режимі масштабування також застосовується розширення команди й у додатковому полі знаходиться специфікатор для третього задіяного регістра.
Реалізація абсолютної та безпосередньої адресації в машинах PDP і VAX досить цікава й використовує неявно, як залучений регістр, регістр лічильника команди (PC). Абсолютна адресація реалізується через непряму регістрову з автоінкрементом, а безпосередня — через непряму з автоінкрементом та дописуванням зсуву або константи безпосередньо після команди. При цьому регістр PC у момент виконання команди завжди вказує на наступну після неї комірку пам'яті, яка містить адресу зсуву або константи, й обчислення абсолютної адреси відбудеться коректно. Після цього необхідно лише збільшити PC до адреси наступної команди. Це робиться шляхом додання до поточного значення лічильника одиниці (автоінкремента).
Спосіб адресації | Запис команди | Ефективна адреса | Розгорнутий запис | Застосування |
Абсолютна (пряма) | ADD R1,@#1000 | M[1000] | R1:=R1+M[1000] | Коли відома абсолютна (пряма) адреса операнда |
Безпосередня | ADD R1,#4 | - | R1:=R1+4 | Один з операндів — константа (арифм. операції, перевірки умов) |
ADD R1,R2 | R2 | R1:=R1+R2 | Усі операнди в регістрах | |
Непряма регістрова | ADD R1,(R2) | M[R2] | R1:=R1+M[R2] | Доступ до даних за попередньо обчисленою адресою, визначення адреси, на яку посилається вказівник (адреса вказівника — в R2) |
Непряма | ADD R1,@(R2) | M[M[R2]] | R1:=R1+M[M[R2]] | Робота з вказівниками: якщо в R2 — адреса вказівника р, то ефективна адреса — це значення *p |
За зсувом (базова, індексна) | ADD R1,30(R2) | M[R2+30] | R1:=R1+M[R2+30] | Один з основных способів. Застосовується для організації переміщуваних програм (фіксація «початку відліку (база)» в R2), для роботи з масивами (адреса початку — в R2, змінною зсуву отримаємо доступ до різних комірок масиву) |
Масштабування (індексна регістрова непряма) | ADD R1,(R2)[R3] | M[x*R3+R2] | R1:=R1+M[x*R3+R2] x — різне в залежності від типу операндів | Робота з масивами |
Непряма регістрова з автоінкрементом | ADD R1,(R2)+ | M[R2] | R1:=R1+M[R2]; R2:=R2+1 | Робота з масивами у циклах. R2 початково вказує на початок масиву, кожна нова ітерація супроводжується позиціонуванням на наступний елемент |
Непряма регістрова з автодекрементом | ADD R1,-(R2) | M[R2-1] | R2:=R2-1; R1:=R1+M[R2] | Аналогічно попередньому способу |
Ri — регістр з порядковим номером i.
М[j] — комірка пам'яті з абсолютною адресою j.
M[Ri]- комірка пам'яті з адресою, яка розташована в регістрі Ri
Цей розділ потребує доповнення. |
Безпосереднє адресування
Безпосере́днє адресування (англ. immediate addressing), безпосередні операнди (англ. immediate operands) — метод адресації операндів, де один з операндів є константою, значення якої зберігається безпосередньо у відповідному полі машинної команди.
+------+-----+-----+----------------+ | ADD | R1 | R2 | константа | R1 := R2 + константа; +------+-----+-----+----------------+
На малюнку показаний типовий формат триадресної команди для реалізації безпосередньої адресації (типовий для RISC-архітектур). Для CISC-архітектур регістри R1 та R2 зазвичай збігаються.
В цьому методі адресації обчислення не виконується взагалі, і в деяких архітектурах системи команд він взагалі не вважається методом адресації.
Розрядність константи та, відповідно, діапазон значень, залежать від конкретної архітектури. Наприклад, для архітектури DEC VAX, розрядність такої константи могла становити 6, 8, 16, або 32 біт. В RISC-архітектурах, як правило, розрядність константи є фіксованою і не може змінюватись.
В архітектурі Intel розмір залежить від команди і не може перевищувати 32 біти. Команди FPU не підтримують безпосередню адресацію, кожен операнд повинен бути в регістрі чи пам'яті.
RISC-модель (архітектури «регістр-регістр»)
В архітектурах «регістр-регістр» про методи адресації пам'яті має сенс говорити тільки щодо спеціальних команд завантаження й збереження даних. Всі обчислювальні команди в цих архітектурах використовують винятково регістри або константи в полі команди, а значить тільки регістрову або безпосередню адресацію. RISC-архітектури, які ми маємо на увазі, говорячи про машини типу «регістр-регістр» (хоча, якщо точніше, RISC є всього лише підмножиною цього класу), власне, використовують дуже обмежений набір методів адресації, які несуть інше функціональне навантаження й не є складовою частиною обчислювальних операцій.
Під ефективною адресою тепер будемо розуміти адресу комірки пам'яті, призначеної для завантаження в регістр спеціальною командою LD (load) або збереження результату спеціальною командою ST (store).
Цей набір є досить скромним у порівнянні з різноманіттям VAX. Поряд з нею архітектура DEC Alpha, з її єдиним методом адресації, виглядає, на перший погляд, навіть дивно, тим більше, що довгий час процесорам саме цієї архітектури належав світовий рекорд швидкодії. Однак, як показують статистичні дослідження, таке рішення цілком обґрунтоване — найуживанішими є методи адресації за зсувом (базової) й з використанням константи в полі команди, на них припадає в середньому стільки ж, скільки й на всі інші разом узяті. Хоча, звичайно ж, дуже багато чого залежить від стратегії оптимізації, використовуваної компілятором для конкретної архітектури.
Подібно до того, як в VAX деякі методи адресації були спеціальними випадками інших, в Alpha на основі адресації за зсувом (базової) можна отримати, наприклад, регістрову адресацію зазначенням нуля як розміру зсуву, або абсолютну адресацію записом нуля як задіяного регістра (зазвичай замість цього використовується регістр R0, який в RISC-архітектурах містить константу нуля).
Спосіб адресації | Запис команди | Ефективна адреса | Розгорнутий запис | PowerPC | DEC Alpha | |||
За зсувом | LD R1,30(R2) ST R1,30(R2) | M[30+R2] | R1:=M[30+R2] R1:=M[30+R2] | так | так | так | так | ні |
Регістрово-індексна | LDX R1,R2,R3 STX R1,R2,R3 | M[R2+R3] | R1:=M[R2+R3] R1:=M[R2+R3] | частково | частково | так | ні | ні |
Регістрова з поновленням регістра | LDU R1,50(R2) STU R1,50(R2) | M[50+R2] | R1:=M[30+R2]; R2:=50+R2 | ні | так | так | ні | ні |
Регістрово-індексна з поновленням регістра | LDUX R1,R2,R3 STUX R1,R2,R3 | M[R2+R3] | R1:=M[R2+R3]; R2:=R2+R3 | ні | так | так | ні | ні |
LD R1,0(R2) | R2 | R1:=R2 | так | так | так | так | так | |
Абсолютна (похідна від адресації за зсувом) | LD R1,500(R0) | M[500] | R1:=M[500] | так | так | так | так | так |
Див. також
Зноски
- Є. Мейнарович; М. Кратко (2010). Англійсько-український словник з математики та інформатики. ISBN . Процитовано 31 грудня 2023.
- Nisan, Noam; Schocken, Shimon; Schocken, Simon. 4.1.3 Machine Language - Commands. The elements of computing systems: building a modern computer from first principles (вид. 1st MIT Press paperback). Cambridge, Mass. London: MIT. ISBN .
- intel1.
Література
- The Intel Architecture Software Developer’s Manual, Volume 1: Basic Architecture (Order Number 243190) (PDF).
Це незавершена стаття про інформаційні технології. Ви можете проєкту, виправивши або дописавши її. |
Ця стаття не містить . (березень 2021) |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Spo sobi adresa ciyi pa m yati kompleks standartizovanih dlya pevnoyi arhitekturi sistemi komand centralnogo procesora sposobiv dlya viznachennya obchislennya miscya roztashuvannya operandiv u pam yati EOM abo adresi nastupnoyi komandi pri vikonanni komand perehodu V cij statti visvitlyuyutsya aspekti adresaciyi operandiv metodi adresaciyi perehodiv Peredumovi ta potrebiDlya togo shobi otrimati mozhlivist vikoristovuvati dani z pam yati v obchislyuvalnih operaciyah neobhidno odnoznachno vkazati procesoru yihnye roztashuvannya V fon nejmanivskih mashinah kozhna komirka pam yati maye vlasnu adresu j problema viznachennya miscya roztashuvannya potribnih danih zvoditsya do viznachennya ciyeyi adresi U pershih komp yuterah adresu abo nomer komirki neobhidno bulo vkazuvati yavno i takij metod adresaciyi viyavlyavsya duzhe nezruchnim Trudnoshi v algoritmizaciyi riznih zavdan de bula potribna avtomatizaciya procesu viznachennya adresi stali prichinoyu vvedennya zgodom shirokogo spektra metodiv adresaciyi Kozhnij z nih faktichno proponuye pevnu formulu dlya obchislennya efektivnoyi tobto faktichnoyi adresi zruchnu v tij abo inshij situaciyi Korotke porivnyannya adresaciyi u CISC ta RISC arhitekturah Div takozh Arhitektura load store Cej rozdil potrebuye dopovnennya Pik vinahidnictva v cij galuzi pripav na chas panuvannya CISC arhitektur registr pam yat yaki dozvolyali bezposeredno vikoristovuvati yak odin z operandiv komirku pam yati RISC arhitekturi tipu registr registr v yakih dostup do pam yati reglamentuyetsya znachno bilsh zhorstko mayut u porivnyanni z CISC duzhe skromnij nabir metodiv adresaciyi i u najradikalnishih predstavnikah ciyeyi ideologiyi zvedenij do yedinogo CISC model arhitekturi registr pam yat Yak priklad CISC modeli adresaciyi pam yati rozglyanemo riznomanitnu palitru metodiv populyarnoyi kolis arhitekturi i rozglyanemo yiyi na prikladi dvooperandnoyi komandi dodavannya ADD a b a a b de kozhnij operand mozhe buti yak registrom tak i bezposeredno znahoditis v pam yati V tablici zvedeni osnovni metodi adresaciyi VAX zagalna kilkist yih perevishuye dva desyatki ale inshi ye pohidnimi vid navedenih za umovi sho operand a zavzhdi perebuvaye v registri R1 a efektivna adresa operanda b obchislyuyetsya zalezhno vid zaznachenogo v komandi metodu adresaciyi Format dvooperandnoyi komandi arhitekturi VAX Polya rezhim viznachayut rezhim adresaciyi polya registr nomeri zadiyanih registriv Informaciya pro operand mistitsya v jogo specifikatori format yakogo variyuyetsya ale dlya bilshosti metodiv adresaciyi skladayetsya z poliv registr i rezhim Tobto rezhim adresaciyi zadayetsya polem rezhim a nomer zadiyanogo registra mistitsya u poli registr V rezhimi adresaciyi po zsuvu v komandi pislya poliv rezhimu j registra z yavlyayetsya dodatkove pole iz zaznachennyam velichini samogo zsuvu V rezhimi masshtabuvannya takozh zastosovuyetsya rozshirennya komandi j u dodatkovomu poli znahoditsya specifikator dlya tretogo zadiyanogo registra Realizaciya absolyutnoyi ta bezposerednoyi adresaciyi v mashinah PDP i VAX dosit cikava j vikoristovuye neyavno yak zaluchenij registr registr lichilnika komandi PC Absolyutna adresaciya realizuyetsya cherez nepryamu registrovu z avtoinkrementom a bezposerednya cherez nepryamu z avtoinkrementom ta dopisuvannyam zsuvu abo konstanti bezposeredno pislya komandi Pri comu registr PC u moment vikonannya komandi zavzhdi vkazuye na nastupnu pislya neyi komirku pam yati yaka mistit adresu zsuvu abo konstanti j obchislennya absolyutnoyi adresi vidbudetsya korektno Pislya cogo neobhidno lishe zbilshiti PC do adresi nastupnoyi komandi Ce robitsya shlyahom dodannya do potochnogo znachennya lichilnika odinici avtoinkrementa Sposib adresaciyi Zapis komandi Efektivna adresa Rozgornutij zapis Zastosuvannya Absolyutna pryama ADD R1 1000 M 1000 R1 R1 M 1000 Koli vidoma absolyutna pryama adresa operanda Bezposerednya ADD R1 4 R1 R1 4 Odin z operandiv konstanta arifm operaciyi perevirki umov ADD R1 R2 R2 R1 R1 R2 Usi operandi v registrah Nepryama registrova ADD R1 R2 M R2 R1 R1 M R2 Dostup do danih za poperedno obchislenoyu adresoyu viznachennya adresi na yaku posilayetsya vkazivnik adresa vkazivnika v R2 Nepryama ADD R1 R2 M M R2 R1 R1 M M R2 Robota z vkazivnikami yaksho v R2 adresa vkazivnika r to efektivna adresa ce znachennya p Za zsuvom bazova indeksna ADD R1 30 R2 M R2 30 R1 R1 M R2 30 Odin z osnovnyh sposobiv Zastosovuyetsya dlya organizaciyi peremishuvanih program fiksaciya pochatku vidliku baza v R2 dlya roboti z masivami adresa pochatku v R2 zminnoyu zsuvu otrimayemo dostup do riznih komirok masivu Masshtabuvannya indeksna registrova nepryama ADD R1 R2 R3 M x R3 R2 R1 R1 M x R3 R2 x rizne v zalezhnosti vid tipu operandiv Robota z masivami Nepryama registrova z avtoinkrementom ADD R1 R2 M R2 R1 R1 M R2 R2 R2 1 Robota z masivami u ciklah R2 pochatkovo vkazuye na pochatok masivu kozhna nova iteraciya suprovodzhuyetsya pozicionuvannyam na nastupnij element Nepryama registrova z avtodekrementom ADD R1 R2 M R2 1 R2 R2 1 R1 R1 M R2 Analogichno poperednomu sposobu Ri registr z poryadkovim nomerom i M j komirka pam yati z absolyutnoyu adresoyu j M Ri komirka pam yati z adresoyu yaka roztashovana v registri Ri Cej rozdil potrebuye dopovnennya Bezposerednye adresuvannya Bezposere dnye adresuvannya angl immediate addressing bezposeredni operandi angl immediate operands metod adresaciyi operandiv de odin z operandiv ye konstantoyu znachennya yakoyi zberigayetsya bezposeredno u vidpovidnomu poli mashinnoyi komandi ADD R1 R2 konstanta R1 R2 konstanta Na malyunku pokazanij tipovij format triadresnoyi komandi dlya realizaciyi bezposerednoyi adresaciyi tipovij dlya RISC arhitektur Dlya CISC arhitektur registri R1 ta R2 zazvichaj zbigayutsya V comu metodi adresaciyi obchislennya ne vikonuyetsya vzagali i v deyakih arhitekturah sistemi komand vin vzagali ne vvazhayetsya metodom adresaciyi Rozryadnist konstanti ta vidpovidno diapazon znachen zalezhat vid konkretnoyi arhitekturi Napriklad dlya arhitekturi DEC VAX rozryadnist takoyi konstanti mogla stanoviti 6 8 16 abo 32 bit V RISC arhitekturah yak pravilo rozryadnist konstanti ye fiksovanoyu i ne mozhe zminyuvatis V arhitekturi Intel rozmir zalezhit vid komandi i ne mozhe perevishuvati 32 biti Komandi FPU ne pidtrimuyut bezposerednyu adresaciyu kozhen operand povinen buti v registri chi pam yati RISC model arhitekturi registr registr V arhitekturah registr registr pro metodi adresaciyi pam yati maye sens govoriti tilki shodo specialnih komand zavantazhennya j zberezhennya danih Vsi obchislyuvalni komandi v cih arhitekturah vikoristovuyut vinyatkovo registri abo konstanti v poli komandi a znachit tilki registrovu abo bezposerednyu adresaciyu RISC arhitekturi yaki mi mayemo na uvazi govoryachi pro mashini tipu registr registr hocha yaksho tochnishe RISC ye vsogo lishe pidmnozhinoyu cogo klasu vlasne vikoristovuyut duzhe obmezhenij nabir metodiv adresaciyi yaki nesut inshe funkcionalne navantazhennya j ne ye skladovoyu chastinoyu obchislyuvalnih operacij Formati komand arhitekturi DEC Alpha Pid efektivnoyu adresoyu teper budemo rozumiti adresu komirki pam yati priznachenoyi dlya zavantazhennya v registr specialnoyu komandoyu LD load abo zberezhennya rezultatu specialnoyu komandoyu ST store Cej nabir ye dosit skromnim u porivnyanni z riznomanittyam VAX Poryad z neyu arhitektura DEC Alpha z yiyi yedinim metodom adresaciyi viglyadaye na pershij poglyad navit divno tim bilshe sho dovgij chas procesoram same ciyeyi arhitekturi nalezhav svitovij rekord shvidkodiyi Odnak yak pokazuyut statistichni doslidzhennya take rishennya cilkom obgruntovane najuzhivanishimi ye metodi adresaciyi za zsuvom bazovoyi j z vikoristannyam konstanti v poli komandi na nih pripadaye v serednomu stilki zh skilki j na vsi inshi razom uzyati Hocha zvichajno zh duzhe bagato chogo zalezhit vid strategiyi optimizaciyi vikoristovuvanoyi kompilyatorom dlya konkretnoyi arhitekturi Podibno do togo yak v VAX deyaki metodi adresaciyi buli specialnimi vipadkami inshih v Alpha na osnovi adresaciyi za zsuvom bazovoyi mozhna otrimati napriklad registrovu adresaciyu zaznachennyam nulya yak rozmiru zsuvu abo absolyutnu adresaciyu zapisom nulya yak zadiyanogo registra zazvichaj zamist cogo vikoristovuyetsya registr R0 yakij v RISC arhitekturah mistit konstantu nulya Sposib adresaciyi Zapis komandi Efektivna adresa Rozgornutij zapis PowerPC DEC Alpha Za zsuvom LD R1 30 R2 ST R1 30 R2 M 30 R2 R1 M 30 R2 R1 M 30 R2 tak tak tak tak ni Registrovo indeksna LDX R1 R2 R3 STX R1 R2 R3 M R2 R3 R1 M R2 R3 R1 M R2 R3 chastkovo chastkovo tak ni ni Registrova z ponovlennyam registra LDU R1 50 R2 STU R1 50 R2 M 50 R2 R1 M 30 R2 R2 50 R2 R1 M 30 R2 R2 50 R2 ni tak tak ni ni Registrovo indeksna z ponovlennyam registra LDUX R1 R2 R3 STUX R1 R2 R3 M R2 R3 R1 M R2 R3 R2 R2 R3 R1 M R2 R3 R2 R2 R3 ni tak tak ni ni LD R1 0 R2 R2 R1 R2 tak tak tak tak tak Absolyutna pohidna vid adresaciyi za zsuvom LD R1 500 R0 M 500 R1 M 500 tak tak tak tak takDiv takozhSposobi adresaciyi perehodivZnoskiYe Mejnarovich M Kratko 2010 Anglijsko ukrayinskij slovnik z matematiki ta informatiki ISBN 978 966 569 275 1 Procitovano 31 grudnya 2023 Nisan Noam Schocken Shimon Schocken Simon 4 1 3 Machine Language Commands The elements of computing systems building a modern computer from first principles vid 1st MIT Press paperback Cambridge Mass London MIT ISBN 026214087X intel1 LiteraturaThe Intel Architecture Software Developer s Manual Volume 1 Basic Architecture Order Number 243190 PDF Ce nezavershena stattya pro informacijni tehnologiyi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno berezen 2021