728x90

레지스터와 메모리는 컴퓨터 시스템에서 데이터를 저장하고 처리하는 데 필수적인 두 가지 리소스이며 휘발성이라는 공통점을 가진다. 이 두 리소스들은 용량, 용도, 속도 등 여러 면에서 차이점을 가진다.

메모리(RAM)는 레지스터와 달리 CPU의 외부에 위치하며, 레지스터에 비해 접근속도가 상대적으로 느리다. 메모리는 데이터와 프로그램 코드를 저장하는 데 사용되며 CPU와 시스템 버스를 통해 이루어진다. 그리고 물리 메모리 초과를 방지하기 위해 가상 메모리를 사용한다.

레지스터는 cache보다 CPU 코어에 근접해 있다. CPU코어 - 레지스터 - 캐시 - 메모리 순으로 위치 하여 있으며 가까울 수록 임시 저장 및 처리를 더 빠르게 하고 있는 것이다.

레지스터는 계산 중간 결과나 계산에 자주 사용되는 임시 값들을 저장한다. 운영체제는 context switching시 레지스터의 상태를 저장하고 복원하는 작업을 한다.

레지스터는 PC와 스택 포인터 등 특수목적 레지스터를 포함하여 상태 레지스터,작업 레지스터, 범용 레지스터, 명령어 레지스터를 일괄하여 말한다. 이 중 범용 레지스터는 프로그램의 실행 동안 가장 일반적이고 자주 사용되는 레지스터이다.

PC(Program Counter)는 CPU가 현재 실행하고 있는 명령어의 메모리 주소를 저장하는 레지스터이다. CPU가 다음에 실행할 명령어의 위치를 알려주며, 일반적으로 명령어가 실행될 때 마다 자동으로 증가하여 다음 명령어의 주소를 가리킨다. 프로그램의 실행 흐름을 변경하는 분기나 점프 명령어가 실행될 때, 프로그램 카운터는 새로운 주소로 업데이트되어 CPU가 새로운 위치에서 명령어를 계속해서 실행할 수 있게 한다.

명령어 레지스터는 현재 CPU가 실행중인 명령어를 저장하여 CPU가 현재 어떤 작업을 하고 있는지 알고 싶을 때 사용된다.

상태 레지스터는 보통 몇 비트로 이루어져 있으며, 각 비트는 특정 상태나 조건 (예 : 캐리 아웃, 오버플로우, 언더플로우, 제로, 음수 등)을 나타낸다. 이런 단일 연산 결과에 대한 정보를 제공하므로 상태 레지스터의 크기는 상대적으로 작다.

작업 레지스터는 특정 아키텍처에선 범용 레지스터라고 불리며, 일시적으로 데이터를 처리하기 위한 임시 저장소이다.

범용 레지스터는 데이터 연산, 임시 데이터 저장, 메모리 주소의 저장 등 다양한 목적으로 사용된다. 이들은 프로그램의 데이터를 처리하고, 메모리와의 데이터 교환을 위한 주요 저장소 역할을 한다.

 

디스크는 컴퓨터에서 데이터를 저장하는 장치를 말한다. 크게 두 종류로 나뉜다

 

HDD(Hard Disk Drive) 자기 저장 방식을 사용해 데이터를 저장하는 장치로, 내부에는 회전하는 디스크(플래터)가 있으며, 이 위에 데이터를 읽고 쓰는 헤드가 움직이며 작동한다. 대용량 데이터를 저장할 수 있고, 가격이 상대적으로 저렴하지만, 움직이는 부품이 있어 충격에 약하고, SSD에 비해 속도가 느리다.

 

SSD(Solid State Drive)반도체 칩을 사용해 데이터를 저장하며, 움직이는 부품이 없어 충격에 강하고 빠른 데이터 읽기와 쓰기 속도를 제공한다. HDD에 비해 가격이 높지만, 성능과 내구성 면에서 우수하다.

 

M.2SSD의 한 형태로, 소형화된 카드 형태의 설계로 제공된다. PCIe 또는 SATA 인터페이스를 통해 데이터 전송을 지원하며, 특히 NVMe 프로토콜을 사용하는 PCIe M.2 SSD는 매우 높은 속도를 제공한다. 노트북이나 소형 PC에서 공간 절약과 고속 데이터 전송이 필요할 때 사용된다.

 

이들은 다 보조기억 장치로 분류된다. 보조기억장치는 컴퓨터에서 데이터를 영구적으로 저장하는 역할을 하며, 주기억장치(RAM)과 달리 전원이 꺼져도 정보를 유지한다.(비휘발성) 이러한 장치들은 대용량 데이터 저장, 시스템 부팅, 소스트웨어 실행 등 다양한 목적으로 사용된다.

 

ROM(Read-Only Memory)은 읽기 전용 메모리로, 주로 컴퓨터나 전자기기의 펌웨어나 시스템 부트로더 등이 저장되는 곳이다. 전원이 꺼져도 데이터를 유지한다는 점에서 보조기억장치의 특성을 가지고 있지만, 일반적으로 사용자가 데이터를 저장하고 변경할 수 있는 HDD, SSD와 같은 저장 장치와는 구분된다. ROM은 보통 한 번 프로그래밍되면 변경이 어렵거나 불가능한 데이터를 저장하는 데 사용되므로, 전통적인 의미에서의 보조기억장치와는 조금 다른 역할을 한다. 그럼에도 불구하고 넓은 의미에서는 데이터를 저장하는 장치로서 보조기억장치의 범주에 포함시킬 수 있다.

 

728x90

+ Recent posts