컴퓨터 공학 스터디 W3. 컴퓨터 구조👩💻
CPU에서 연산을 수행하기 위해서는 데이터의 위치를 알아야한다. 따라서 명령어는 피연산자 필드를 이용하여 데이터의 위치에 대한 정보를 제공한다. 주소 지정 방식은 피연산자 필드를 이용하여 데이터의 유효주소를 결정하는 방법이다.
❓피연산자 필드
명령어에서 대상이 되는 피연산자의 정보를 표시하는 부분
❓유효주소
기억장치에서 데이터가 실제로 위치한 공간
명령어에 담을 수 있는 비트 수에는 제한이 있기 때문에 최대한 효율적으로 데이터의 위치를 지정하는 다양한 주소 지정 방식이 사용된다. 주소 지정 방식은 일반적으로 4가지로 나눌 수 있는데 묵시적, 즉치, 레지스터, 변위 이렇게 4가지로 나눌 수 있다.
묵시적 주소 지정 방식은 명령어에서 주소 필드를 필요로 하지 않는 방식이다. 연산코드 필드에 지정된 묵시적인 오퍼랜드를 사용한다. 예를 들자면 묵시적 주소 지정 방식은 스택에서의 add와 같다.
스택에서 add는 맨 위 항목과 그보다 한칸 아래 항목을 더하여 다시 스택 맨 위에 저장하는 명령어이다.
유효주소를 계산할 필요는 없지만 제한된 기억장치에서만 사용 가능하므로 많은 데이터에 대해 사용할 수 없다.
즉치 주소 지정 방식은 데이터가 명령어에 포함되어 있는 방식을 말한다. 오퍼랜드에 그냥 데이터 그 자체가 적혀있기 때문에 데이터를 인출하기 위해서 기억장치에 접근할 필요가 없는 명령어를 의미한다. 즉치 주소 지정 방식은 상수값의 범위가 오퍼랜드의 크기에 의해 제한될 수 밖에 없다. 작은 정수 데이터나 상수를 저장하기 위해 사용된다.
레지스터 주소 지정 방식은 직접 주소 지정 방식과 간접 주소 지정 방식으로 나눌 수 있다.
직접 주소 지정 방식은 연산에 사용할 데이터가 레지스터에 저장되어 있는 방식으로 레지스터 안에서 값이 있는 것을 말한다. 기억장치 접근이 한번에 이루어진다는 장점이 있지만 오퍼랜드 필드의 길이에 따라 접근할 수 있는 기억장치의 주소 공간에 한계가 있다는 단점이 있다.
간접 주소 지정 방식은 연산에 사용할 데이터가 레지스터에 저장되어 있는 방식으로 레지스터 안에 값이 있는 것을 말한다. 접근할 수 있는 기억장치 주소 공간이 중앙처리장치가 한번에 접근할 수 있는 단어의 길이로 결정된다는 장점이 있고 두번의 기억장치 접근이 필요하다는 단점이 있다.
변위 주소 지정 방식은 명령어에 포함된 2개의 피연산자 필드를 사용하여 메모리의 주소를 확정하는 방식이다. 변위 주소 지정 방식에는 상대 주소 지정 방식, 인덱스 주소 지정 방식, 자동 인덱싱 방식 세가지가 있다.
상대 주소 지정 방식은 유효주소를 게산하기 위해 특정 레지스터 내용에 명령어 주소 필드 값을 더하는 방식이다.특정 레지스터는 PC를 주로 사용하고 유효 주소는 명령어 오퍼랜드에 PC를 더한 것이다. 적은 비트수로 표현할 수 있기 때문에 간결한 명령어 구성이 가능하다는 장점이 있다. 분기 주소가 명령어 단위와 가까운 위치에 있을 때 분기형 명령어에서 종종 사용한다는 특징이 있다. 기억장치로부터 명령어를 읽음으로써 PC가 증가 하므로 유효주소를 계산할때 반드시 이를 고려해야한다.
인덱스 주소 지정 방식은 유효 주소를 계산하기 위해 인덱스를 사용하는 방식이다. 유효주소는 명령어 오퍼랜드와 인덱스 레지스터를 더한 값이다. 인덱스 주소 지정 방식은 배열을 인덱싱할 때 많이 사용한다.
자동 인덱싱 방식은 자동 증가/김소 레지스터를 사용하여 레지스터의 값이 접근할 때마다 증가/감소된다. 이 자동증가/감소 레지스터의 값과 명령어 주소필드 값을 더해서 유효주소를 만들어낸다.