[CS] CPU와 Memory

hzn·2022년 11월 30일
0

etc

목록 보기
1/13
post-thumbnail

CPU의 구조

1. 산술/논리 연산 장치 (Arithmetic Logic Unit, ALU)

  • 산술적인 연산과 논리적인 연산을 담당하는 장치
  • 가산기, 보수기, 누산기, 기억 레지스터, 데이터 레지스터 등으로 구성
  • 캐시나 메모리로부터 읽어 온 데이터는 레지스터(Register)라는 CPU 전용의 기억장소에 저장되며, ALU는 레지스터에 저장된 데이터를 이용하여 덧셈, 곰셈 등과 같은 산술 연산을 수행
  • 부동소숫연산장치(FPU)와 정수연산장치, 논리연산(AND, OR 등)장치 등

2. 제어장치(Control Unit, CU)

  • CPU가 자신 및 주변기기들을 컨트롤하는 장치
  • 명령 레지스터와 명령 해독기로 이루어져 있다.

명령 레지스터(instruction register)

  • 현재 수행중인 명령어의 내용을 임시 기억

명령해독기(instruction decoder)

  • 명령 레지스터에 수록된 명령을 해독하여 수행될 장치에 제어신호를 보냄

제어 장치 구현 방식

  • 고정 배선 제어(Hardwired) 방식과 Micro Program 방식

3. 레지스터 (Register)

  • 중앙처리장치(CPU) 내부에 있는 기억장치
  • 범용 레지스터(General-Purpose Register)(주로 산술 연산 논리장치에 의해 사용됨)와 전용 레지스터(Dedicated-Purpose Register)(특수 목적에 사용. PC 등)로 구분

IR (Instruction Register)

  • 현재 수행 중에 있는 명령어 부호를 저장하고 있는 레지스터

PC (Program Counter)

  • 명령이 저장된 메모리의 주소를 가리키는 레지스터

AC (Accumulator)

  • 산술 및 논리 연산의 결과를 임시로 기억하는 레지스터

CPU의 기능

  • 명령어 인출 및 해독 (모든 명령어들에 대해 공통적으로 수행. 기억 장치로부터 명령어를 읽어옴.)
  • 데이터 인출 및 처리, 쓰기 (명령어에 따라 필요할 때만 수행)

명령어

  • 시스템이 특정 동작을 수행시키는 작은 단위
  • 코드로 되어 있다.
  • 동작코드(Op-code : Operational Code)와 오퍼랜드(Operand)로 구성.
  • 동작 코드(Op-code): 각 명령어의 실행 동작을 구분하여 표현.
  • 오퍼랜드(Operand): 명령어의 실행에 필요한 자료나 실제 자료의 저장 위치를 의미.

명령어 수행 과정

1) 읽기(Fetch Instruction, FI): 메모리에서 명령을 가져옵니다.
2) 해석(Decode Instruction, DI): 명령을 해석합니다.
3) 실행(Execute Instruction, EI): 명령을 수행합니다.
4) 기록(Write Back, WB): 수행한 결과를 기록합니다.

명령어 처리 방식

CISC(Complex Instruction Set Computer)

  • 하나의 기능에 해당하는 하나의 명령이 있는 개념
  • 여러 사이클로 명령어를 처리합니다.
  • 많은 명령어가 메모리를 참조하는 처리 방식입니다.
  • 파이프라이닝의 사용이 어렵습니다.
  • 복잡한 마이크로 프로그램 구조를 갖고 있습니다.

RISC(Reduced Instruction Set Computer)

  • 컴퓨터 내부적으로 사용하는 명령어 세트를 단순화 시켜서 처리하는 형태의 구조
  • 하나의 사이클로 명령어를 처리합니다.
  • 메모리 Load / Store 명령만 처리하는 방식입니다.
  • 파이프라이닝, 슈퍼스칼라의 사용이 가능합니다.
  • 복잡한 컴파일러 구조를 갖고 있습니다.

Memory 메모리

  • 주 기억장치
  • 컴퓨터에서 말하는 메모리 : 기억소자 (즉, 반도체를 의미)
  • 반도체는 특성상 전류를 흐르게도 하고 흐르지 않게도 하는 특징이 있어 이를 이용해서 임시적인 내용들을 기억하게 만든다.

기억장치 별 특성

주 기억장치(메모리)와 보조 기억 장치의 차이

1. 휘발성

  • 메모리는 시스템이 활성화된 상태에서는 그 값을 기억하고 있지만, 시스템이 꺼지면(ShutDown) 지워진다.

2. 처리 속도

  • 저장/읽기 속도 면에서 메모리의 처리 속도가 현저하게 빠르다

메모리 성능

  • 메모리의 속도 : 메모리가 CPU와 데이터를 주고받는 시간
  • 이를 엑세스라고 부르며, 단위는 ns(nano-second; 10억분의 1초)

리프레시 시간

  • 메모리가 유지되는 시간.
  • 메모리는 일정 시간마다 재충전을 해줘야 하는데, 그렇지 않으면 정보는 사라지게 된다.

메모리 액세스 시간

  • 데이터를 읽어오라는 명령을 받고 데이터를 읽기 시작하기까지의 시간
  • (CPU에서 명령어를 처리할 때) 명령어가 갖는 주소를 보내고, 그 주소에 해당하는 값을 CPU에 다시 가져 오게 되는데 걸리는 시간

사이클 시간(리프레시 시간 + 메모리 액세스 시간)

  • 메모리 작업이 완료와 동시에 대기 신호를 내놓은 후(~ 메모리 엑세스 시간) 다음 신호를 받을 준비가 되었다는 신호를 주기까지의(~ 리프레시 시간) 시간

메모리 종류

주 기억장치

RAM(Random Access Memory)

  • CPU에서 직접 접근이 가능한 유일한 저장 장치.
  • RAM의 크기는 프로그램의 수행 속도에 영향을 준다.
  • 컴퓨터의 전원이 끊어지면 내용이 휘발되어 보조 저장 장치가 반드시 필요.

RAM의 종류

  • SRAM : 리프레쉬가 필요 없고 전력 소모가 적으나 비싸다
  • DRAM : 리프레쉬가 필요하고 SRAM보다 저가이며 많이 사용되는 편

ROM(Read Only Memory)

  • 대부분 읽을 수만 있는 장치로 구성되어 있다
  • 전원이 끊겨도 내용이 보존이 된다

보조 기억 장치

자기 디스크

  • 원판 표면의 철 입자의 방향(N/S극)으로 0과 1을 표현합니다. 디스크 드라이브는 자기 디스크로부터 데이터를 읽는 주변 장치를 의미합니다.
  • 자기 디스크에는 플로피 디스크(FDD)와 하드 디스크(HDD)가 존재합니다.

광 디스크

  • 광 디스크(optical disc, OD)는 빛의 반사를 이용하여 자료를 읽어내는 저장 매체입니다.
  • 1세대인 CD부터 시작해 2세대 DVD를 거쳐 3세대인 블루레이 디스크까지 존재하고 있습니다. 차세대 디스크로는 테라 디스크나 HVD등이 존재합니다.

플래시 메모리

  • 전자적으로 데이터를 지우고 쓸 수 있는 비휘발성 메모리로 충격에 강하여 휴대용 기기에 널리 쓰입니다.
  • 플래시 메모리에는 USB와 SSD가 존재하고 있으며, SSD는 HDD와 달리 디스크, 헤더와 같은 기계적 장치는 빠졌지만 저전력, 저소음, 저중량이라는 특징을 가지고 있습니다.

캐시 메모리(Cache Memory)

  • 메인 메모리(느림)와 CPU(빠름) 간의 데이터 처리 속도를 맞추기 위한 중간 버퍼 역할
  • CPU 내 또는 외에 존재하는 메모리
  • CPU는 빠르게 일을 진행하고 있는데, 메인 메모리가 데이터를 가져오고 가져가는 게 느려서 캐시 메모리가 중간에 미리 CPU에 전달될 데이터를 들고 서 있는 형태..
  • 메인 메모리의 일정 블록 사이즈의 데이터를 담아 두었다가 CPU에 워드 사이즈 만큼의 데이터를 전송
  • 이때 이 사이즈들이 캐시의 성능에 영향을 미치게 된다. (사이즈가 클 수록 성능이 높다)

캐시 메모리의 성능 결정 요소

캐시의 크기

  • 메인 메모리의 일정 블록 사이즈의 데이터를 담아 두었다가 CPU에 워드 사이즈 만큼의 데이터를 전송
  • 블록 사이즈나 워드 사이즈가 상대적으로 크다면 그만큼 Cache의 Hit Ratio율(원하는 데이터가 있을 확률)이 높아진다.
  • Cache Hit : CPU가 필요한 데이터가 Cache Memory 내에 들어와 있는 상태
  • Cache Miss : CPU가 필요한 데이터가 Cache Memory 내에 없는 상태
  • Hit Ratio : 원하는 데이터가 Cache에 있을 확률

그 외 캐시 메모리의 성능을 결정하는 요소들

0개의 댓글