Computer Science/컴퓨터 구조

5. 주소지정 방식(Adressing mode)

728x90
반응형

 명령의 동작 필드에서 지정한 동작은 레지스터나 기억장치에 있는 피연산자에 대해 실행되고, 피연산자가 지정되는 방법은 명령의 주소지정방식(Addressing mode)에 의해 결정된다. 이 같은 주소지정방식을 사용하는 목적은 다음과 같다.

- 프로그래밍이 융통성 : 포인터, 카운터 인덱싱, 프로그램재배치(relocation) 등의 편의 제공하고, 처리의 고속과 소프트웨어 작성용이 등의 장점

- 명령의 주소 비트 단축

- 주소 공간과 기억 공간의 독립

명령의 주소 지정 방식은 동작 코드와 별도로 표시하거나 또는 동작 코드와 함께 표현한다. 그리고 한 명에 여러 주소지정 방식을 이용할 수도 있다. 아래 오른쪽그림은 별도의 주소지정방식(mode) 필드를 가진 명령 형식이다. 여기서 주소필드는 없거나 또는 여러개일 수 있고 각 주소필드는 서로다른 주소지정 방식을 이용할 수 있다. 주기억장치에 기억된 operand를 읽어오려면 반드시 유효주소(effective)가 계산되어야 한다.

op-code

operand(address) 

 

op-code 

mode 

operand(adress) 




주소지정방식의 종류

1. 접근하는 방법에 따른 분류 

주소는 지정한 자료에 접근하는 방법에 따라 다음과 같이 뷴류된다.

(1) implied 주소지정 (Implied mode) 

 operation code

이 방식에서 피연산자는 명령에 따라 암시적으로 정해진다. 예를들어 Complement accumulator 명령은 명령의 정의에 따라 피연산자 누산기에 있으므루 Implied 주소지정 이다. 스택구조 컴퓨터의 연산 명령 또한  피연산자가 항상 스택의 top에 있으므로 주소를 표시하지 않는다.


(2) immediate 주소지정 (Immediate mode)

  operation code

 operand

이 방식에서 명령 자체에 피연산자가 표시된다. 즉 명령은 주소필드가 아니라 피연산자 필드를 가지며 피연산자 필드에 실제 피연산자가 있다. 이 명령은 상수를 레지스트에 초기값으로 줄 때 편리하다.


(3) 레지스터 주소지정 ( Register mode )

명령의 주소필드는 기억장치 주소나 레지스터를 지정할 수 있으며 주소필드가 레지스터를 지정하면 레지스터 주소 지정이라 한다. 레지스터 주소 지정인 경우 피 연산자는 레지스터에 위치하고 명령의 레지스터 필드에서 레지스터를 지정한다.

 

R

 Instruction

 

 Operand

 

Registers


<레지스터 간접 주소지정>

명령에서 피연산자 주소를 가지고 있는 레지스터를 지정. 즉 선택된 레지스터의 내용은 피연산자가 아니라 피연산자 주소이다. 이 방식의 장점은 직접기억장치 주소를 지정하는 방식보다 적은 비트로 피연산자를 지정할 수 있는 점이다.

<자동 증가 또는 자동 감소 모드>

이는 레지스터 내용이 기억장치를 접근한 후 자동적으로 1 증가하거나 감소하는 점을 제외하면 레지스터 건접 주소 지정과 같다. 만약 기억장치에 있는 배열 데이터에 접근한다면 접근할 때마다 주소를 1씩 증가 또는 감소히켜야 한다. 이 같은 경우 데이터 접근 후 자동작으로 레지스터를 1 증가 또는 감소시키면 편리하다.


(4) 직접 주소 지정( Direct address mode )

직접 주소 지정에서 명령의 주소 부분이 유효 주소이다. 즉 operand의 내용이 메모리 번지(유효주소)를 나타낸다.

  operation code

address of operand

 

A

 Instruction

 

 Operand

 

Memory

(5) 간접주소지정 ( Indirect address mode )

 

A

 Instruction

 


 

  Operand
 
Memory


(6) 계산에 의한 주소지정 ( Displacement Addressing )

유효주소  = 명령의 주소부분 + CPU의 특정 레지스터 내용


 

R

 A

 Instruction

 


 

Registers

+

 

 Operand

 

Memory

<상대주소지정>

유효주소 = 명령의 주소 부분 +PC


<인덱스 주소 지정>

유효주소 = 명령의 주소부분 + index 레지스터


<베이스 레지스터 주소 지정>

유효주소 = 명령의 주소부분 + base레지스터


2. 주소를 기억공간과 연간시키는 방법에 따른 분류

  주소는 기억장치에 기어된 정보에 부가하는 것으로서 주소를 이용하여 후에 그 정보를 읽어낼 수 있도록 하는 것다. 주소와 기억장소와는 별개의 개념으로서 프로그램이 수행되려면 주소와 기억장소와를 결부시켜야 되는데 이들을 연관시키는 것을 사상함수(mapping funcion)라 한다. 주소와 기억장소가 별개의 개념이란 말은 두개의 서로다른 프로그랭에서 어떠한 주소 X를 사용할 때에 이들이 반드시 같은 기억장소를 지정하지는 않는다는 뜻이다. 

주소공간과 기억공간의관계는 아래 그림과 같다.

 주소공간(프로그래머가 사용가능한 주소들)


 사상함수

 기억공간(주기억장치)

  주소와 기억장소가 별개의 개념이기때문에 구체적인 컴퓨터를 떠나서 일반적인 주소지정방식에 관하여 논할수 있는데, 사상함수가 일대 일인 경우에는 이들을 같은 의미로 사용할 수 있다. 프로그램의 주소공간(address space)은 프로그래머가 사용할 수 있는 주소들로 구성되어 있다. 프로그램의 수행을 위해서는 주소공간은 실제 기억장치에 사상(map)시켜야 되는데, 주소공간이 실제 공간보다 크기때문에 일대일 사상이 불가능하여 이들을 분리시켜 사용해야 하는 경우 가상(virtual)기억체제를 가진 컴퓨터라 한다. 

  이와 같은 주소라는 개명은 중요한 것이며, 기억장치에 기억된 정보의 주소를 지정하는 방법은 그 정보테 대하여 어떠한 처리를 행할 때에도 필요한 불가결한 것이다. 또한 컴퓨터 시간의 상당한 부분을 인스트럭션이나 데이터를 기억장치로부터 중앙처리장치로 읽어내는데 소모하기때문에 효율적인 주소지정방식을 사용해서 컴퓨터의 능률을 개선 할 수 있다.

주소를 기억공간과 연관시키는 방법에따른 분류는 다음과 같다.

㉠ 절대주소 : 피연산자에 직접 접근할 수 있는 주소로서 사용자가 작성한 데이터는 절대 주소 형태로 실행

㉡ 상대주소 : 절대 주소로 변환해야 피연산자에 접근할 수 있는 주소로 수소는 기본 주소에 대해 상대적으로 표시



3. 주소 표현 방식에 따른 분류

주소는 데이터의 주소를 표현하는 방식에 따라 완전 주소, 약식 주소, 생략 주소, 데이터 자신이 있다. 

㉠ 완전 주소 : 정보가 주소이든 데이터든지 간에 그 기억된 장소에

㉡ 약식 주소

㉢ 생략 주소

㉣ 데이터 자신



4. 주소 지정 방식에 따른 피연산자를 위한 기억장치 접근 함수

ㅇㅊㅊ

ㅊㅊ

ㅛㅕㅎ포호ㅓ허ㅗ허ㅛㅕㅌㅎㄹ하핳

728x90
반응형

'Computer Science > 컴퓨터 구조' 카테고리의 다른 글

7. 제어장치 ( micro programming )  (0) 2012.10.23
6. 명령 사이클  (0) 2012.10.20
4. 명령어의 형식과 CPU구조 ( 0-3주소 )  (0) 2012.10.15
3. 명령어의 종류  (0) 2012.10.13
2. 명령어의 구조  (0) 2012.10.13