물리 주소
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
물리 주소는 초기 컴퓨터 시스템에서 프로세스에 직접 할당되었으며, 가상 메모리 도입 이후 가상 주소와 구별하여 사용되는 용어이다. 가상 메모리를 지원하는 컴퓨터에서 물리 주소는 메모리 관리 장치(MMU)에 의해 변환된 후의 주소를 의미하며, MMU는 가상 주소를 물리 주소로 변환하는 하드웨어 장치이다. 컴퓨터 아키텍처에 따라 정렬되지 않은 메모리 접근은 성능 저하를 초래할 수 있으며, 직접 메모리 접근(DMA) 기능을 사용하는 장치 역시 물리 주소에 대한 지식을 가져야 한다.
더 읽어볼만한 페이지
| 물리 주소 | |
|---|---|
| 개요 | |
| 정의 | 컴퓨터 시스템 내에서 데이터나 명령어가 저장된 특정 메모리 위치를 식별하는 주소 |
| 설명 | 실제 물리적 메모리 칩 상의 위치를 나타냄 |
| 관련 용어 | 가상 주소 논리 주소 절대 주소 |
| 사용 목적 | |
| 메모리 접근 | CPU가 특정 데이터를 읽거나 쓰기 위해 사용하는 주소 |
| 데이터 관리 | 운영체제가 메모리 내의 프로세스 및 데이터 위치를 추적하는 데 사용 |
| 주소 지정 방식 | |
| 직접 주소 지정 | 명령어 내에 직접적인 메모리 주소가 포함됨 |
| 간접 주소 지정 | 명령어는 메모리 주소를 포함하는 다른 메모리 위치를 가리킴 |
| 상대 주소 지정 | 기준 주소로부터의 상대적인 오프셋을 사용하여 메모리 위치를 계산 |
| 중요성 | |
| 시스템 성능 | 효율적인 물리 주소 관리는 컴퓨터 시스템의 전체적인 성능에 큰 영향을 미침 |
| 메모리 보호 | 운영체제는 물리 주소를 사용하여 프로세스 간의 메모리 접근을 격리하고 보호 |
| 기타 | |
| 참고 | 물리 주소는 시스템 아키텍처와 운영체제에 따라 다양한 방식으로 관리될 수 있음 |
2. 초기 컴퓨터 시스템
초기의 컴퓨터에서는 프로세스에 대해 물리 주소 공간이 제공되었다. 컴파일러는 컴파일 과정에서 프로그램에 절대적 주소를 할당하였다. 따라서 시작 주소의 위치가 바뀌어야 할 경우에는 컴파일을 다시 해야만 하였다. MS-DOS의 .COM 형식의 프로그램이 물리 주소 공간을 사용하는 가장 대표적인 예이다.
물리 주소 공간만으로는 메인 메모리보다 큰 프로그램을 메모리에 적재할 수 없어 실행이 불가능하다. 또한 컴파일 시 물리 주소를 지정하므로 여러 프로그램을 동시에 실행하기 어렵다. 이러한 한계를 극복하기 위해 가상 메모리 기법이 고안되었다.
3. 가상 메모리의 도입과 물리 주소
가상 메모리를 지원하는 컴퓨터에서 물리 주소는 주로 가상 주소와 구별하기 위해 사용된다.[1] 특히, 메모리 관리 장치(MMU)를 사용하여 메모리 주소를 변환하는 컴퓨터에서 가상 주소와 물리 주소는 각각 MMU에 의한 변환 전후의 주소를 의미한다.
3. 1. 메모리 관리 장치 (MMU)
메모리 관리 장치(MMU)는 가상 주소를 물리 주소로 변환하는 하드웨어 장치이다.[1] MMU를 사용하는 시스템에서 물리 주소는 MMU에 의한 변환 후의 주소를 의미한다.
3. 2. 정렬되지 않은 주소 지정 (Unaligned Addressing)
컴퓨터 컴퓨터 아키텍처에 따라, 메모리에 대한 ''정렬되지 않은'' 접근은 성능 저하를 초래할 수 있다. 예를 들어, 인텔 8086과 같이 16비트 메모리 데이터 버스를 가진 16비트 컴퓨터는 접근이 짝수 주소에 정렬되어 있을 때 일반적으로 오버헤드가 적다. 이 경우, 하나의 16비트 값을 가져오려면 단일 메모리 읽기 연산, 즉 데이터 버스를 통한 단일 전송이 필요하다.[2][3]
16비트 데이터 값이 홀수 주소에서 시작하는 경우, 프로세서는 해당 값을 로드하기 위해 두 번의 메모리 읽기 사이클을 수행해야 할 수 있다. 즉, 낮은 주소에 대해 한 번 (그 중 절반을 버림) 수행하고, 두 번째 읽기 사이클을 통해 높은 주소를 로드해야 한다 (다시 검색된 데이터의 절반을 버림). 모토로라 68000 및 모토로라 68010, SPARC 프로세서와 같은 일부 프로세서에서는 정렬되지 않은 메모리 접근으로 인해 예외가 발생한다(일반적으로 POSIX의 SIGBUS와 같은 소프트웨어 예외가 발생한다).[2][5]
4. 기타 장치에서의 사용
직접 메모리 접근(DMA) 기능은 CPU 외에 마더보드의 다른 장치가 주 메모리에 접근할 수 있도록 한다. 따라서 이러한 장치들도 물리 주소를 알아야 한다.[1]
참조
[1]
웹사이트
Lecture 7: Memory Management
http://cseweb.ucsd.e[...]
UC San Diego
2013-12-04
[2]
웹사이트
Memory access and alignments
https://lwn.net/Arti[...]
LWN.net
2007-12-04
[3]
웹사이트
Documentation/unaligned-memory-access.txt
https://www.kernel.o[...]
kernel.org
2013-12-04
[4]
웹사이트
Lecture 7: Memory Management
http://cseweb.ucsd.e[...]
UC San Diego
2013-12-04
[5]
웹사이트
Memory access and alignments
https://lwn.net/Arti[...]
LWN.net
2007-12-04
[6]
웹사이트
Documentation/unaligned-memory-access.txt
https://www.kernel.o[...]
kernel.org
2013-12-04
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com