📌 메모리 계층(Memory Hierarchy)이란?
= 메모리를 필요에 따라 여러 가지 종류로 나누어 둠을 의미한다. 이때 필요한 대부분의 경우 CPU가 메모리에 더 빨리 접근하기 위함이다.
위 그림처럼 계층 구조에서 상위의 기억장치일수록 접근 속도와 접근 시간이 빠르지만, 기억 용량이 적고 고가이다. 아래로 내려갈수록 상대적으로 비용은 내려가고 접근 속도는 느리지만 기억 용량이 크다.
📌 기억 장치(Memory Unit)?
컴퓨터에서 사용하는 프로그램과 처리할 데이터 및 처리한 결과 등을 저장하는 장치.
컴퓨터에서 사용하는 모든 프로그램과 데이터를 저장해 두고 필요할 때 이용할 수 있도록 해준다.
기억 장치는 처리 속도와 사용 용도, 기억 용량의 크기에 따라 아래와 같이 4가지로 구분된다.
- 레지스터(Register)
- 산술적/논리적 연산이나 정보 해석, 전송 등을 할 수 있는 일정 길이의 정보를 저장하는 중앙 처리 장치(CPU) 내의 기억장치
- 저장 용량에는 제한되어 있으나 주기억 장치에 비해서 접근 시간이 빠르고, 체계적인 특징이 있다.
- 컴퓨터에는 산술 및 논리 연산의 결과를 임시로 기억하는 누산기(accumulator), 기억 주소나 장치의 주소를 기억하는 주소 레지스터(address register)를 비롯하여 컴퓨터의 동작을 관리하는 각종 레지스터가 사용된다.
- 캐시 기억장치(Cache Memory)
- 중앙 처리 장치와 주기억장치 간의 속도 차이를 극복하기 위해 사용하는 고속의 메모리.
- 캐시 기억 장치는 고속의 중앙 처리 장치(CPU)와 CPU에 비해 속도가 느린 주기억장치 사이에 데이터와 명령어들을 일시적으로 저장하는 기억 장소를 제공하여, CPU가 주기억장치로부터 읽고 주기억장치에 기록할 때보다 몇 배 빠른 속도 또는 CPU에 가까운 속도로 접근할 수 있게 한다. 캐시 기억 장치의 기억 용량이 클수록 필요한 데이터가 이미 캐시에 저장되어 있을 확률이 크기 때문에 그만큼 성능이 향상된다. [참고]
- 캐시 메모리는 참조의 국한성을 활용한 메모리 계층이다.
- 참조의 국한성(Locality of Reference) : 프로그램이 수행되는 동안 메모리 참조가 국한된 영역에서 이루어지는 경향성을 말한다.
- 주기억장치(Main Memory, Main Memory Unit, MM)
- 중앙 처리 장치(CPU)와 직접 자료를 교환할 수 있는 기억장치
- 주기억장치를 구성하는 각각의 기억 소자에는 외부와 직접 자료 교환을 할 수 있는 단자들이 있다.
- 기억 소자 종류
- non-volatile memory : 정전이 되더라도 그 상태를 유지하고 있는 기억 소자
- volatile memory : 정전이 되면 기억 내용을 상실하는 기억 소자가 있다.
- 종류 : 코어 기억장치나 개인용 컴퓨터의 ROM, RAM 등
- 각기 자신의 주소를 갖는 워드 또는 바이트들로 구성되어 있으며, 주소를 이용하여 액세스 할 수 있다.
※ 레지스터, 캐시 기억장치, 주기억장치의 프로그램과 데이터는 CPU가 직접 액세스 할 수 있으나, 보조기억장치에 있는 프로그램이나 데이터는 직접 액세스할 수 없다.
- 보조기억장치(auxiliary storage)
- 주기억장치의 기억 용량을 보조하거나 데이터를 영구 저장하기 위한 기억장치
- 자기 디스크 장치나 자기테이프 장치 등이 있고, 개인용 컴퓨터에서는 플로피 디스크, 카세트테이프, USB 메모리, 하드디스크 등이 있다.
- 보조기억장치에 있는 데이터는 주기억장치에 적재된 후 CPU에 의해 액세스될 수 있다.
📌 컴퓨터 시스템
크게 다음과 같이 이루어져 있다.
- Hardware : CPU, Memory, Storage, Network 등
- Software : 운영체제, 응용 프로그램 등
📌 폰 노이만 구조 (현재 컴퓨터 구조)
폰 노이만 구조는 최초의 프로그램이 내장된 컴퓨터 방식으로, 하드웨어적으로 전선을 재배치할 필요 없이 소프트웨어만 교체하여 다른 연산을 수행할 수 있다. 폰 노이만 구조에서는 먼저 연산의 수행과 관련된 명령어와, 연산에 필요하거나 결과로 나온 데이터를 저장장치(메모리)에 보관하게 되며, 순차적으로 메모리에 저장된 데이터를 끄집어내 지시대로 연산 수행하는 방식이다. [참고]
📌 컴퓨터 주요 구성 요소 (CPU, Memory, IO Devices) + System Bus(데이터 송수신 연결 장치)
1. CPU(중앙 처리 장치, Central Processor Unit)
- 프로그램의 명령을 수행하여 다양한 입력 장치로부터 데이터를 받아서 기억장치와 연계하여 처리한 후 출력 장치로 보내는 모든 과정을 제어하고 연산하는 장치. ALU, 제어장치(Control Unit), 레지스터로 구성된다.
- CPU는 컴퓨터의 가장 중요한 부분으로 연산과 제어회로가 포함되어 있다. 컴퓨터 시스템에서 데이터는 입력 장치를 통해 입력되어 주기억장치로 저장된다. CPU는 주기억장치에 저장된 데이터를 처리하여 출력장치로 결과를 출력한다.
- 연산 : ALU(산술 논리 연산 장치, Arithmetic Logic Unit)
- 데이터를 처리하고 계산하는 장치, CPU를 구성하는 핵심 부분의 연산을 수행하는 회로의 집합.
- 산술 연산(Arithmetic Operation)
- 논리 연산(Login Operation)
- 제어 : Control Unit(제어 장치)
- 데이터의 연산을 차례대로 실행하기 위해 기억 장치, 연산 장치, 입출력 장치에 제어 신호를 보내고, 이들 장치로부터 신호를 받아 제어하는 장치. 프로그램을 제어하려면 인출 주기(fetch cycle)와 명령 실행 주기(execution cycle)의 두 단계를 거쳐야 한다. 인출 주기는 기억장치의 명령어를 저장하는 단계이고, 명령 실행 주기는 명령어를 해독하여 실행하는 과정이다.
- IO Device(입력_Input, 출력_Output 장치), Memory, ALU 동작 제어
2. Memory(메모리, 코드와 데이터를 저장하는 장치) (위 기억장치 설명 참고)
프로그램과 프로그램 수행에 필요한 데이터를 저장
- 내부 기억장치 (주기억장치)
- CPU 안에 레지스터, 캐시
- DRAM 등 메모리 (RAM, DDR4 ...)
- ROM(Read Only Memory) 등
- 외부 기억장치 (보조기억장치)
- HDD(Hard Disk Drive)
- SSD(Solid-State Drive)
- Bluray 등
3. IO Devices(입출력 장치)
- 입력 장치 : 마우스, 키보드, 터치패드, CD ROM 등
- 출력 장치 : 모니터, 프린터, 스피커, Network Card 등
+ System Bus(시스템 버스)
컴퓨터의 중앙 처리 장치, 기억 장치, 입출력 모듈을 연결하는 버스 형태의 단일 통로
버스 시스템은 아래와 같이 3가지로 구성된다.
- 연산 및 데이터의 이동을 위한 제어 정보가 전달되는 제어 버스 (정보 결정)
- 기억 장치 또는 외부 장치에 읽거나 쓸(입출력) 데이터의 주소가 하달되는 주소 버스 (정보 위치 결정)
- 위 사진 세 구성 요소 간데이터를 교환하기 위한 데이터 버스 (정보 운반)
참고 사이트
2023 시나공 정보처리기사 필기
zero-base/ 잔재미코딩의 CS 이론
😃 공부하면서 적는 글입니다. 잘못된 점이 있다면 피드백 주시면 감사합니다.
'개발 지식 > CS' 카테고리의 다른 글
시간 복잡도 - 대표적인 빅오(Big-O) 표기법 (0) | 2023.02.18 |
---|---|
[cs50 모두를 위한 컴퓨터 과학] 자료구조(Data Structure) (0) | 2022.10.02 |
[cs50 모두를 위한 컴퓨터 과학] 메모리(Memory) (2) | 2022.09.22 |
[cs50 모두를 위한 컴퓨터 과학] 알고리즘(Algorithm) (0) | 2022.08.04 |