본문 바로가기

학교 수업/전공 수업

[운영체제] 컴퓨터 하드웨어의 구성과 레지스터의 종류, 메모리 계층 구조

안녕하세요 소프트웨어 공부하는 레오존입니다.

이번 포스팅에서는 컴퓨터 하드웨어의 구성과 레지스터의 종류, 메모리 계층 구조에 대해 정리해 보도록 하겠습니다.





컴퓨터 하드웨어의 구성
컴퓨터 시스템은 데이터를 처리하는 물리적인 기계장치인 하드웨어와 어떤 작업을 지시하는 명령어로 작성한 프로그램인 소프트웨어로 구성됩니다. 또한 컴퓨터 하드웨어는 프로세서, 메모리, 주변장치로 구성되고, 이들은 시스템 버스로 연결됩니다. 

먼저 중앙처리장치(cpu)에 대해 알아보도록 하겠습니다. 중앙처리장치는 컴퓨터 하드웨어 구성 요소 중 운영체제와 가장 밀접한 부분으로, 컴퓨터의 모든 장치의 동작을 제어하고 연산을 수행하는 장치입니다. 중앙처리장치는 프로세서라고 불리기도 합니다. 

프로세서의 레지스터를 용도와 사용자가 정보 변경 가능한지, 혹은 저장하는 정보의 종류에 따라 구분할 수 있습니다. 먼저 용도에 따라 프로세서의 레지스터를 분류하면 전용 레지스터와 범용 레지스터로 나눌 수 있습니다. 두번째로 사용자가 정보 변경 가능 한지 여부에 따라 프로세서의 레지스터를 분류할 경우, 사용자 가시 레지스터와 사용자 불가시 레지스터로 나눌 수 있습니다. 마지막으로 저장하는 정보의 종류에 따라 프로세서의 레지스터를 분류할 경우, 데이터 레지스터와 주소 레지스터, 상태 레지스터로 나눌 수 있습니다.



사용자 가시 레지스터와 사용자 불가시 레지스터


사용자 가시 레지스터는 사용자가 운영체제와 사용자 프로그램을 이용해 변경 가능한 레지스터를 의미합니다.

사용자 가시 레지스터에서도 데이터 레지스터와 주소 레지스터 두 가지로 나눌 수 있습니다. 데이터 레지스터는 함수 연산에 필요한 데이터를 저장해주고 주소 레지스터는 주소나 데이터가 저장된 기억장치의 실제주소를 계산하는 데 필요한 주소의 일부분을 저장해 줍니다.

또한, 주소 레지스터를 기준 주소 레지스터와 인덱스 레지스터, 스택 포인터 레지스터 세 가지로 나눌 수 있습니다. 기준 주소 레지스터는 프로그램을 실행할 때 사용하는 기준 주소 값을 저장합니다. 인덱스 레지스터는 저장된 기억장치의 실제주소를 계산하는 데 사용하는 주소 정보를 저장합니다. 스택 포인터 레지스터는 메모리에 프로세서 스택을 구현할 때 사용하게 됩니다.



사용자 불가시 레지스터는 사용자가 정보를 변경할 수 없는 레지스터이며, 프로세서의 상태와 관리를 제어하는 역할을 수행합니다. 사용자 불가시 레지스터는 PC(Program Counter), IR(Instruction Register), ACC(ACCumulator), MAR(Memory Address Register), MBR(Memory Buffer Register)로 나눌 수 있습니다.

먼저,  PC(Program Counter)는 다음에 실행할 명령어릐 주소를 보관하는 레지스터입니다. 실행할 명령어를 메모리에서 읽으면 명령어의 길이만큼 증가하여 다음 명령어를 가리키게 됩니다.

IR(Instruction Register)는 현재 실행하는 명령어를 보관하는 레지스터입니다. ACC(ACCumulator)는 데이터를 일시적으로 저장하는 레지스터입니다. 또한, MAR(Memory Address Register)은 프로세서가 참조하려는 데이터의 주소를 명시하여 메모리에 접근하는 버퍼 레지스터입니다. 마지막으로 MBR(Memory Buffer Register)은 프로세서가 메모리에서 읽거나 메모리에 저장할 데이터 자체를 보관하는 버퍼 레지스터입니다.





메모리 계층 구조
1950년대에서 1960년대에 너무 비싼 메모리의 가격 문제 때문에 메모리 계층 구조라는 방법이 제안되었습니다. 메모리를 계층적으로 구성하여 비용, 속도, 용량, 접근시간 등을 상호 보완할 수 있다는 장점을 지니고 있습니다. 메모리 계층 구조는 아래에서부터 순서대로 보조기억장치-메인 메모리-캐시-레지스터 순으로 이루어져 있습니다. 아래쪽에 위치해 있을수록 용량이 크고 속도는 느리며, 가격은 저렴한 편이며 위쪽에 위치해 있을수록 용량이 적은 대신 속도는 빠르고 가격은 비싼 편입니다. 

또한, 보조기억장치는 프로그램과 데이터를 메인 메모리에 옮겨야 실행할 수 있습니다. 반면 메인메모리, 캐시, 레지스터는 프로세서가 프로그램과 데이터에 직접 접근할 수 있습니다. 







지금까지 컴퓨터 하드웨어의 구성과 레지스터의 종류, 메모리 계층 구조에 대해 정리해보았습니다.

감사합니다.