-
운영체제(OS) 기본지식 - 3. 주소체계 32BIT 컴퓨터 & 64BIT 컴퓨터Computer Basis/OS 2020. 10. 9. 19:41
# 컴퓨터 하드웨어의 구성
컴퓨터 하드웨어의 구성 # N-bit 컴퓨터의 정의
# N-bit 컴퓨터
해당 컴퓨터의 CPU(프로세서)의
주소 레지스터의 최대 처리값(최대 저장값)이 N-bit인 컴퓨터
#32-bit 컴퓨터
해당 컴퓨터의 CPU 주소 레지스터 처리값이 32bit
#64-bit 컴퓨터
해당 컴퓨터의 CPU 주소 레지스터 처리값이 64bit
# 디스크와 메모리의 구성
기본적으로, 디스크나 메모리의 공간은 비트단위로 쪼개어져있음
# 주소값의 단위 & 프로세스 주소 공간의 크기
주소값이 위치하는 메모리는 비트 단위로 쪼개져 있지만,
편의상 주소값의 단위는 byte, 주소공간 하나의 크기는 1 byte 로 사용한다
# 컴퓨터 작동 기본 방식
컴퓨터에서 연산을 할 수 있는 장치는 오직 CPU 뿐이다.
타 저장장치(메모리, 디스크)에서 데이터를 CPU 내의 저장장치(레지스터)로 로드한 후 연산을 한다.
레지스터의 종류는 여러가지가 있으며, 해당 내용이 궁금하다면 아래의 더보기를 눌러보시길 바란다.
더보기# 사용자 가시 레지스터
(User-Visible Register)
종류 (사용자 가시 레지스터) 설명 데이터 레지스터
(DR : Data Register)# 함수 연산에 필요한 데이터를 저장한다.
# 값, 문자 등을 저장하므로 산술연산이나 논리연산에 사용하며, 연산결과로 플래그 값을 지정한다.주소 레지스터
(AR : Address Register)# 주소나 유효주소를 계산하는데 필요한 주소의 일부분을 저장한다.
# 주소 레지스터에 저장한 값을 사용하여 산술 연산을 할 수 있다.기준 주소 레지스터 # 프로그램 실행할때 사용하는 기준 주소값을 저장한다.
# 연속된 저장 공간을 참조할 수 있는 주소이다.
# 따라서 페이지나 세그먼트처럼 블록화된 정보에 접근하는 데 사용한다.인덱스 레지스터 # 유효 주소를 계산하는데 사용하는 주소 정보를 저장한다. 스택 포인터 레지스터 # 메모리에 프로세서 스택을 구현하는 데 사용한다
# 많은 프로세서와 주소레지스터를 데이터 스택 포인터와 큐포인터로 사용한다.
# 보통, 반환주소 & 프로세서 상태정보 & 서브루틴의 임시변수를 저장한다.
# 사용자 불가시 레지스터
(User-Invisible Register)
# 32bit 컴퓨터가 4GB RAM 이상을 사용할 수 없는 이유
32bit 컴퓨터의 주소레지스터는 32비트 공간이다.
해당 32개의 공간은 0,1 (전기의 OFF, ON) 으로 표현이 가능하다.
이해를 돕기위해 2bit로 예를 하나 들자면,
한자리 당 2가지의 다른 경우를 표현할 수 있으며,
2 bit 라면 [ 00, 01, 10, 11 ] 총 4(2^2)개의 경우(수)를 표현할 수 있다.
즉, 32bit, 32개의 공간이 있다면, 2^32개를 표현할 수 있는 것이다.
위의 컴퓨터 작동 기본 방식을 참고하여 간략히 메모리 참조를 설명해보겠다.
A데이터(메모리 주소값의 위치 90byte)를 불러와 어떠한 계산을 한다면,
대충, 밑의 방식으로 작동한다.
CPU 주소레지스터에 90이라는 숫자를 저장 -> CPU가 메모리의 90이라는 주소에 접근
-> 메모리 90주소에 저장된 데이터를 데이터 레지스터에 저장 (다른 레지스터가 될 수도 있다.)
-> CPU의 연산장치가 연산
즉, 주소값의 단위를 우리가 byte로 지정하였기에,
32bit 주소레지스터는 2^32 byte 까지만 표현할 수 있으며,
메모리의 2^32 byte(=4GB) 까지만 참조(접근) 가능하다.
참고로 2^10byte(=1KB), 2^20byte(=1MB), 2^30byte(=1GB) 이다.
4GB인 이유는 (2^2) * 1GB이기 때문이다. (지수연산을 몰라서 해매었던 저 같은 분이 계실까봐..)
그리하여,
8GB 메모리를 장착하더라도 32bit 컴퓨터는 4GB까지만 접근 가능한 것이다.
물론 편법은 얼마든지 있지만, 성능이 떨어질 뿐이다.
# 그럼 어떻게 하드디스크는 4GB 이상을 장착하여 사용할까?
정답을 바로 말하자면, 하드디스크에서 필요한 데이터를 메모리로 조금씩 로드한 후 CPU가 메모리로 데이터를 처리하기 때문이다.
이유를 설명해보겠다.
저장장치는 여러가지가 있다.
대표적으로,
[레지스터 - 메모리 - 하드디스크] 가 있는데,
좌측으로 갈수록 속도가 빠르며 값이 비싸고,
우측으로 갈수록 속도가 느리지만 값이 저렴하다.
하드디스크에 있는 데이터를 레지스터에서 불러들인다면,
하드디스크가 느리기 때문에 상대적으로 오래기다려야 하므로 성능이 떨어진다.
컴퓨터 하드웨어 중에서는 연산을 할수 있는 장치가 오직 CPU이기에,
하드디스크에서 데이터를 레지스터로 바로 읽어온다면,
읽어오는 시간동안 컴퓨터가 제 할일을 못하고
기다리는 시간동안 멈춰있어야만 하기 때문이다.
그리하여 하드디스크의 데이터를
레지스터 보단 값이 싸고, 디스크보단 입출력속도가 빠른 메모리에 로드하여
레지스터가 메모리에서 데이터를 바로 읽어들이게 한다면
성능을 훨씬 개선할 수 있기에
보통 현대 컴퓨터는 이러한 방식을 채택한다.
그리하여 RAM의 용량이 중요한것이고,
주소레지스터의 bit값이 중요한 것이며,
디스크의 용량은 4GB가 넘어도 참조가능 한 것이다.
728x90'Computer Basis > OS' 카테고리의 다른 글
운영체제(OS) 기본지식 - 4. DMA(Direct Memory Access) 와 PIO(Program Input/Output) (0) 2020.10.11 운영체제(OS) 기본지식 - 5. System Generation(SYSGEN) & System Boot (0) 2020.10.11 운영체제(OS) - 6. 메모리 관리 (0) 2020.10.08 운영체제(OS) - 5. CPU 스케줄링 (0) 2020.10.06 운영체제(OS) - 4. 프로세스 관리 (0) 2020.10.06