메모리 계층 구조(Memory Hierachy)는 메모리 관련 3가지 주요 특성인 용량, 접근 속도, 비용간의 절충 관계를 파악해 필요에 따라 채택할 수 있게 나타낸 구조이다.

 

메모리 계층은 레지스터, 캐시, 메모리(RAM), 하드디스크(저장장치)로 구성되어 있다.

위 그림처럼 위로 올라갈수록 속도가 빨라지고 아래로 내려갈수록 용량이 커진다.

> 레지스터 : CPU 내부의 작은 메모리로, 휘발성이며 속도가 가장 빠르고, 기억 용량이 가장 적다.

> 캐시 : L1, L2, L3 캐시를 지칭하고 휘발성이며, 속도가 빠르나 기억 용량이 적다.

> 주기억장치(메모리) : RAM을 가리키며 휘발성이고, 속도와 기억 용량은 보통이다.

> 보조기억장치(디스크) : HDD, SDD이며 비휘발성이다. 속도는 낮고 기억 용량은 많다.

 

레지스터와 캐시는 CPU 내부에 존재하며, 아주 빠르게 접근 가능하다.

메모리는 CPU 외부에 존재하여 레지스터와 캐시보다는 더 느리게 접근할 수밖에 없다.

하드디스크는 CPU가 직접 접근할 방법이 없다.

접근하기 위해서는 하드 디스크의 데이터를 메모리로 이동시키고, 메모리에서 접근해야 한다. 게임하다가 "로딩 중"이라는 메시지를 볼 수 있는데 이는 하드디스크 또는 인터넷에서 데이터를 읽어 RAM으로 전송하는 과정이 아직 끝나지 않았음을 의미한다.

 

메모리 계층 구조의 필요성

사용자 입장에서는 더 빠른 속도, 더 큰 용량은 선호한다. 하지만 속도가 빠를수록 용량이 적어지고 용량이 많이 지면 속도가 느려지는 단점이 발생한다. 성능을 위해 속도와 용량의 상호보완을 위해 고안한 방법이 메모리 계층 구조이다

 

 

레지스터(Register)

레지스터는 CPU에 위치한 고속 메모리로 CPU가 바로 사용할 수 있는 데이터를 저장한다.

 - CPU (Central Process Unit)

중앙 처리 장치라고 불리며, 컴퓨터에서 기억, 해산, 연산, 제어라는 4대 주요 기능을 관할하는 컴퓨터의 대뇌

 

- CU (Control Unit)

제어 장치라고 불리며, CPU의 한 부품으로 입출력 장치 간 통신 및 조율을 제어한다. 명령어들을 읽고 해석하며 데이터 처리를 위한 순서를 결정한다.

 

- ALU(Arithmetic Logic Unit)

산술 논리 장치로, 덧셈, 뺄셈과 같은 두 숫자의 산술 연산과 배타적 논리합, 논리곱, 논리합과 같은 논리 연산을 계산하는 디지털 회로

 

캐시 (Cache)

캐시는 대용량의 메인 메모리 접근을 빠르게 하기 위해 CPU 칩 내부나 바로 옆에 탑재하는 작은 메모리이다.

 

- Processor

프로세서는 컴퓨터 운영을 위해 기본적인 명령어들을 처리하고 반응하기 위한 논리 회로

 

- Core

코어는 각종 연산을 하는 프로세서의 핵심 요소로 프로세서의 내부에는 코어를 제외하고 컨트롤러, 캐시 메모리 등이 있다. 1개의 코어를 싱글코어, 2개를 듀얼코어라고 하며, 코어 수가 많을수록 병렬 처리 효율이 증가한다.

 

캐시의 종류

L은 Level을 의미

 

- L1캐시

일반적으로 코어안에 내장되어 데이터 사용/참조에 가장 먼저 사용된다.

L1캐시는 보통 8 ~ 64KB 정도의 용량으로 CPU에 가장 빠르게 접근하며, L1에서 데이터를 찾지 못하면 L2를 참조한다.

 

- L2캐시

L2와 전반적으로 비슷하지만 상대적으로 속도가 느리고, 64KB ~ 4MB의 용량으로 상대적으로 많은 용량을 저장할 수 있다.

 

- L3캐시

동일안 원리로 작동하지만 웬만해서는 L3캐시 메모리를 사용하지 않는다(L2캐시로도 충분히 커버 가능하기에)

 

캐시 메모리는 캐시 블록이라는 데이터 그룹 단위를 가진다. 각각의 캐시 블록은 데이터를 담고 있으며, 캐시 태그와 묶어서 하나의 캐시 엔트리를 구성한다. 태그는 캐시 블록의 고유 식별값으로 CPU프로세서는 캐시 태그 값을 통해 캐시 블록에 접근할 수 있다.

캐시가 빠른 이유도 참조 지역성의 원리에 따라 자주 사용하는 데이터를 우선적으로 저장하고 있기도 하지만, 유효 비트와 태그필드를 이용한 메모리 접근으로 인해 시간 복잡도가 O(1) 정도로 작아지기 때문이기도 하다.

캐시 메모리에서 찾는 데이터가 존재하였을 때 캐시 히트(Cache Hit)가 나타나며, 캐시 메모리에서 찾는 데이터가 존재하지 않았을 때 캐시 미스(Cache Miss)가 나타난다. 캐시 미스가 발생하면 메모리 저장소로부터 필요한 데이터를 찾아 캐시 메모리에 로드한다.

캐시 매핑(Cache Mapping)은 CPU에서 데이터를 요청했을 때 캐시에 데이터가 없는 경우 메모리에서 데이터를 가져와 저장할 때 필요한 정보를 캐시에 저장시키는 방법이다.

유형으로는 직접 매핑, 연관 매핑, 집합 연관 매핑이 있다.

 

 

메인 메모리 (Main Memory)

주기억장치로 컴퓨터에서 수치, 명령, 자료 등을 기억하는 컴퓨터 하드웨어 장치이다.

하드 디스크로부터 일정량의 데이터를 복사하여 임시 저장하고, 이를 필요시 CPU에 빠르게 전달하는 역할이다.

 

- RAM (Random Access Memory)

CPU의 빠른 엑세스를 위해 각종 정보를 임시 저장하는 휘발성 장치.

필요한 데이터를 스토리지 디스크에서 메모리로 로드하여 각각의 정보에 액세스 한다.

DRAM(Dynamic RAM)와 SRAM(Static RAM)이 있는데 주기억장치는 주로 DRAM을 의미 (SRAM은 캐시나 레지스터)

 

- ROM (Read Only Memory)

고정 기억 장치.

컴퓨터에 지시사항을 영구히 저장하는 비휘발성 메모리 변경 가능성이 희박한 기능 및 부품에 사용

소프트웨어-> 초기 부팅 관련 부분, 하드웨어 -> 프린터 작동에 관여하는 펌웨어 명령 등

기본 입출력 시스템 (BIOS), 자가 진단 프로그램 (POST)같은 변경 가능성이 희박한 시스템 소프트웨어를 기억시키는데 이용

 

보조 기억장치

기억장치 계층 구조의 하위 수준에 있으며, 중앙처리장치에서 요청이 오면 저장하고 있던 프로그램과 데이터를 주기억장치로 전송한다. HDD, SDD USB메모리 등이 있다.

 

비휘발성이며, 가장 대중적이며 용량 대비 가격이 저렴하다.

 


병렬 컴퓨팅이란

 

직렬 컴퓨팅(Serial Computing)

일반적으로 소프트웨어는 순차적(직렬) 계산으로 쓰여진다.

 - 문제는 명령의 개별 시리즈로 나눠진다.

 - 명령들을 순차적으로 하나를 처리한 후 그다음을 처리한다.

 - 하나의 프로세서에서 명령을 처리한다.

 

 

병렬 컴퓨팅(Parallel Computing)

많은 작은 작업으로 큰 작업을 분할하는 것으로 CPU를 사용하여 한번에 여러 작업을 동시에 처리하는 컴퓨팅 방법으로 계산 속도를 크게 향상시킬 수 있다.

 

- 하나의 문제를 동시에 해결할 수 있는 개별 문제로 나눠진다.

- 각각의 문제는 명령의 시리즈로 더 나눠진다.

- 각각의 문제 속 명령들은 다른 프로세서에서 동시 처리된다.

 - 전반적인 제어/조전 메커니즘이 사용된다.

 

+ Recent posts