마하데이터
주소 지정 방식의 종류 본문
카테고리 없음

주소 지정 방식의 종류

마하데이터 2025. 3. 31.

주소 지정 방식의 종류에 관하여

주소 지정 방식의 종류에 관하여 알아보도록 하겠습니다. 우선 사용자가 중앙처리장치에 연산을 명령하면 이 중앙처리장치는 명령을 수행하기 위해서 데이터의 주소를 파악해야 합니다. 이때 피연산자 필드를 이용해 데이터의 유효 주소를 찾아내는 방법이 바로 주소 지정 방식입니다. 오퍼랜드 필드에 메모리나 레지스터 주소와 같은 데이터를 담으면 주소 지정 방식을 굳이 사용하지 않아도 된다는 의문을 가지는 분들이 은근히 존재합니다. 하지만 명령어에 담을 수 있는 비트 수가 제한되어 있기 때문에 각 명령어에 따라서 가장 효율적으로 데이터의 위치를 파악할 수 있는 주소 지정 방식을 꼭 필요로 합니다. 이러한 주소 지정 방식 기술은 메모리 수를 줄이고 레지스터의 참조를 늘려서 명령어 실행 속도를 높입니다. 특히 앞서 설명했던 제한된 명령어 비트 수를 가지고 다양한 방법으로 오퍼랜드를 지정하며 큰 용량의 메모리를 사용할 수 있도록 무척 다양한 주소 지정 방식을 사용하게 됩니다. 이러한 주소 지정 방식의 종류는 의미 주소 지정, 즉치 주소 지정, 레지스터와 레지스터 간접 주소 지정, 레지스터 간접 주소 지정, 직접 주소 지정과 간접 주소 지정, 상대 주소 지정, 인덱스된 주소지정, 베이스 레지스터 주소 지정으로 크게 9가지가 존재합니다. 먼저 의미 주소 지정은 묵시적 주소 지정 방식이라고도 합니다. 데이터의 위치를 지정하지 않아도 묵시적으로 정해져 있으며 주소가 지정되어 있지 않아도 스택 포인터를 사용합니다. 특히 묵시적 주소 지정 방식의 장점은 명령어가 짧다는 겁니다. 다음으로 즉치 주소 지정입니다. 즉치 주소 지정 방식은 오퍼랜드 필드의 내용이 연산에 사용될 실제 데이터입니다. 프로그램상에서 레지스터나 변수의 초깃값을 설정하는 데 사용되며 주기억장치에서 데이터를 인출할 필요가 없으므로 실행 동작이 줄어든다는 것이 장점입니다. 다만 수의 크기가 오퍼랜드 필드의 비트 수에 제한된다는 점이 단점입니다. 다음으로 레지스터와 레지스터 간접 주소 지정입니다. 레지스터에 데이터가 존재하며 레지스터를 지정하는 오퍼랜드의 필드가 4비트라면 16개의 레지스터를 지정할 수 있습니다. 메모리를 액세스하지 않아도 되기 때문에 실행 시간이 단축되는 것이 장점이지만 데이터를 저장하는 공간이 레지스터로 제한된다는 점이 단점입니다. 다음은 레지스터 간접 주소 지정입니다. 이 방식은 레지스터의 내용이 유효 주소가 되기 때문에 지정된 레지스터의 내용이 메모리 주소가 되어서 유효 데이터를 가져옵니다. 주소가 지정되는 메모리 영역은 레지스터의 비트 수와 관계가 있습니다. 예를 들어서 레지스터가 10비트면 2의 10제곱, 20비트면 2의 20제곱의 메모리 영역을 지정할 수 있습니다. 특히 데이터 인출을 위해서 한 번만 메모리를 액세스하면 된다는 장점이 있습니다. 다음으로 직접 주소 지정입니다. 이 방식은 명령어의 오퍼랜드가 데이터의 유효 주소입니다. 즉 메모리의 실제 주소를 의미합니다. 데이터를 인출하기 위해서 한 번만 주기억장치를 액세스하면 되지만 메모리 주소 공간이 오퍼랜드의 비트 수에 의해 결정되기 때문에 주소 필드가 짧으면 지정할 수 있는 메모리 영역이 제한됩니다. 다음으로 간접 주소 지정은 명령어에서 주소가 가리키는 기억장소에 데이터의 유효 주소가 저장되어 있습니다. 메모리 용량이 유효 주소의 비트 수에 의해 결정되기 때문에 메모리 용량을 확장시킬 수 있는 장점이 있습니다. 특히 명령어 오퍼랜드의 주소 내용이 10비트면 최대 2의 10제곱 개의 주소 공간을 갖게 됩니다. 다음으로 상대 주소 지정은 명령어의 주소 필드에 프로그램 카운터값이 더해져서 유효 주소가 결정되는 방식입니다. 기준 주소는 명령어의 주소가 되고 변위는 프로그램 카운터입니다. 전체 주소를 지정하는 것보다 적은 비트를 사용하여 주소 필드가 짧아지는 것이 이 방식의 장점입니다. 주로 분기명령어에서 사용되며 변위가 양수일 때는 프로그램 카운터를 기준으로 증가한 주소로 분기하고 변위가 음수일 때는 감소한 주소로 분기합니다. 다음으로 인덱스된 주소지정입니다. 인덱스된 주소 지정은 인덱스 레지스터의 내용과 주소 필드의 내용이 더해져서 유효 주소가 결정됩니다. 명령어의 주소 필드가 기준 주소이며 인덱스 레지스터가 변위가 됩니다. 기준 주소에 인덱스 레지스터의 내용을 차례로 증가 및 감소를 시키면서 연속된 데이터를 차례로 액세스한다는 것이 특징입니다. 다음은 베이스 레지스터 주소 지정입니다. 이 방식은 베이스 레지스터에 기준 주소가 있고 명령어의 주소 필드는 기준 주소의 변위입니다. 베이스 레지스터의 내용과 주소 필드의 내용이 더해져서 유효 주소가 된다는 것이 바로 베이스 레지스터 주소 지정의 특징입니다. 이 외에도 인덱스 주소 지정 방식과 자동 인덱싱 방식 등 매우 다양한 주소 지정 방식들이 존재하며 각자 방식의 특징과 장점 및 단점이 확연히 드러나게 됩니다. 이러한 주소 지정 방식은 오늘날의 컴퓨터 구조에서 대부분 한 가지 이상을 제어하고 있습니다. 궁극적으로 간단히 줄이자면 명령어는 연산자부와 주소부로 이루어져 있는데 이 주소부는 연산에 사용될 데이터로 이루어져 있는데 연산할 데이터가 저장된 위치를 찾는 방법을 주소 지정 방식이라고 생각하시면 됩니다. 우리는 주소 지정 방식을 통해 연산을 효율적이고 정확하게 컴퓨터 중앙처리장치에 명령할 수 있습니다. 지금까지 주소 지정 방식의 종류에 대해서 간단히 알아봤습니다.

Comments