Адресиране в компютърните системи. Методи за адресиране – директна адресация, с подразбиращ се операнд, с подразбиращ се адрес, непосредствена адресация, относителна адресация, косвена адресация.
Адресиране в компютърните системи. Код на адреса и изпълнителен адрес.
Адресиране в компютърните системи. Код на адреса и изпълнителен адрес.
Под адресиране в КС се разбира адресиране в ОП на всяка КС, независимо от нейна структура и състав. Адресира се всяка търсена клетка от тази ОП, след което се прочита нейното съдържание. Адресът на всяка клетка от паметта е съставен от две компоненти: 1.код на адреса или още код на операцията - КОП; 2.изпълнителен адрес, адрес или адресно поле - Аi, където i = 1, 2, ...к представлява индекс за броя на разрядите в адресното поле на дадената ОП на КС. Например в една съвременна КС адресното поле е от 20 разряда или адресната шина на КС е 20-разрядна.
Методи за адресиране:
- Непосредствена адресация: При нея в инструкцията се съдържа самият операнд. Този метод е най-бърз, но ограничава максималната стойност на операнда до 2к - 1.
- Директна адресация: Тази адресация третира адресното поле (А) като самия изпълнителен адрес, което позволява директно обръщение към оперативната памет (ОП). И тук недостатъкът, изтъкнат по-горе е ограничеността на адресното поле, чрез което могат да се задават не повече от 2к адреса. Ето защо директното адресиране се прилага най-често при обръщение към регистровата памет (вътрешните регистри на процесора), която по правило е с ограничен обем, но с максимално бързодействие. Тогава, при регистровата адресация, дължината от к-бита на адресното поле ще е достатъчна за задаване на адреса – А (на изпълнителния адрес -ИА) на един от регистрите на ЦП (CPU):
- Косвена адресация: При тази адресация се използва посредник RA (служебен регистър или клетка от паметта), чието съдържание „α” се третира като ИА. Информацията –А от адресното поле се използва за адресиране на посредника. Така може значително да се увеличи размерът на адресното пространство (2m > 2к). Заедно с това нараства и времето за адресиране, поради необходимостта от междинно адресиране.
- Присъединена адресация: Тази адресация позволява формиране на ИА от две части: старшата част β се взима от служебен регистър R1 (например регистър за начален адрес на страница в паметта –ОП), а младшата част – от текущата инструкция. Така ИА ще се комплектова от q разряда на β и к разряда на А. Това ще позволи адресиране в един голям диапазон, в сравнение с досегашните: [0, 2q+k].
- Относителна адресация: ИА при този вид адресация се изчислява чрез сумиране на стойността А от адресното поле на инструкцията със съдържанието δ на служебен регистър R2. Използва се при предаване на управлението (преход) в програмата, както и при т.н. адресация по база, където δ се нарича базов адрес, и се съхранява в сегментен регистър R2. Този регистър съхранява началния адрес на сегмент от паметта. По тази причина, в полето на инструкцията трябва да се укаже този сегментен регистър. Такава адресация се нарича още адресация с отместване (Offset) и при нея ИА = δ ± 2к.
В различните процесори (ЦП-CPU) са заложени различни методи за адресиране. Изборът на определено множество зависи и от организацията на паметта - ОП. Паметта на КС евентуално ще бъде разгледана подробно в следващи постове. Тук само ще дефинираме двата традиционни начина на организация на ОП, свързани с различните методи за адресация. Тези два начина на организация на ОП са следните:
- стрàнична организация – ОП условно е разделена на равни по размер (по брой адреси) области, наречени стрàници. Обикновено размерът е четен брой к -байта – например 2кВ, 4кВ и пр. Този размер зависи от общия размер на ОП (тя е тип RAM);
- сегментна организация – при нея отделните области от паметта, наречени сегменти, могат да са с различен размер. Обикновено в ЦП са предвидени няколко сегментни регистъра, чрез които се адресира в различни сегменти на ОП. Максималният адрес на даден сегмент зависи от размера на съответния сегментен регистър.
Коментари: