CS/컴퓨터 구조

CPU, 메모리 개념

H.E 2024. 3. 2. 02:44
 

[ CPU ]

 

CPU는 각종 연산을 수행하고 기억장치에 기억되어 있는 명령어들을 수행하는 컴퓨터 시스템을 이루는 핵심 부품

즉, CPU는 컴퓨터의 두뇌로 메모리에 저장된 명령어를 읽어 들이고, 읽어 들인 명령어를 해석하고 실행하는 부품

 

▶ CPU 구조

내부 구성은 크게 산술/논리 연상 장치(ALU), 제어 장치와 레지스터로 구성되어 있음

 

산술논리 장치(Arithmetic Logic Unit, ALU)

쉽게 말해 계산기로 가산기, 보수기, 누산기, 기억레지스터, 데이터 레지스터 등으로 구성

  • 캐시나 메모리로 부터 읽어 온 데이터는 레지스터에 저장
  • 숫자의 산술연산과 배타적 논리합, 논리곱 같은 논리연산을 계산을 담당하는 장치
    • 배타적 논리합 - true 연산, 배타적 논리곱 - and 연산

레지스터(Register)

CPU가 요청을 처리하는데 필요한 데이터를 일시적으로 저장하는 기억장치

  • 프로그램을 실행하는데 필요한 값들을 임시로 저장함
  • CPU 안에서 여러개의 레지스터가 존재하고 각기 다른 이름과 역할을 가지고 있음
  • 주로 산술 연산 논리장치에 의해 사용되는 범용 레지스터와 PC 등 특수 목적에 사용되는 전용 레스터로 구분

 

● 레지스터 종류

  • IR(Instruction Register): 현재 수행 중에 있는 명령어 부호를 저장하고 있는 레지스터
  • PC (Program Counter) : 명령이 저장된 메모리의 주소를 가리키는 레지스터
  • AC (Accumulator) : 산술 및 논리 연산의 결과를 임시로 기억하는 레지스터

제어장치(Control Unit, CU)

제어신호라는 전기 신호를 내보내고 명령어를 해석하는 장치

  • CPU가 자신 및 주변기기들을 컨트롤하는 장치로 프로그램의 수행 순서를 제어하는 프로그램 계수기, 현재 수행중인 명령어의 내용을 기억하는 명령 레지스터, 명령 레지스터에 명령을 해독하여 수행될 장치에 제어신호를 보내는 명령 해독기로 이루어져 있음

 

▶ CPU 기능

CPU의 기능은 명령어와 데이터에 관련이 있음

명령어 인출 및 해독은 모든 명령어들에 대하여 공통적으로 수행하며 기억 장치로부터 명령어를 읽어옴

그리고 데이터 인출 및 처리, 쓰기와 같은 것들은 명령어에 따라 필요할때 수행하게 됨

 

명령어

명령어는 시스템이 특정 동작을 수행시키는 작은 단위

  • 동작 코드(Op-code): 각 명령어의 실행 동작을 구분하여 표현
  • 오퍼랜드(Operand): 명령어의 실행에 필요한 자료나 실제 자료의 저장 위치를 의미

 

명령어 수행 과정

CPU가 하나의 명령(Operation)을 처리하는 과정

  • 읽기(Fetch Instruction, FI): 메모리에서 명령을 가져옴
  • 해석(Decode Instruction, DI): 명령을 해석
  • 실행(Execute Instruction, EI): 명령을 수행
  • 기록(Write Back, WB): 수행한 결과를 기록

 

명령어 처리 방식

명령어 처리 방식에는 RISC와 CISC가 있음

 

  • RISC(Reduced Instruction Set Computer)
    • 컴퓨터 내부적으로 사용하는 명령어 세트를 단순화 시켜서 처리하는 형태의 구조
    • 단순한 명령을 조합해서 하나의 기능을 수행하게 됨

 

  • CISC(Complex Instruction Set Computer)
    • 하나의 기능에 해당하는 하나의 명령이 있는 개념이

 

▶ CPU를 구성하는 부품이 역할을 수행하는 예시

예로 1번지부터 2번지까지 명령어가 저장되어있으며 1번지의 저장된 명령어가 '더하라, 3번지와 4번지를',  2번지의 저장된 명령어가 '저장하라, 연산결과를',  3,4번지에 각각 120, 100 값이 들어있다면

  1. 제어장치는 1번지에 메모리에 저장된 명령어를 읽어 들이기 위해 메모리에 '메모리 읽기' 제어 신호를 보냄
  2. 메모리는 저장된 명령어를 CPU에 건네주고 이 명령어는 레지스터에 저장됨
  3. 제어장치는 읽어들인 명령어를 해석한 뒤 3번지와 4번지에 저장된 데이터가 필요하다고 판단
  4. 제어장치는 3번지와 4번지에 저장된 데이터를 읽어들이기 위해 메모리에 '메모리 읽기' 제어 신호를 보냄
  5. 메모리는 3번지와 4번지에 저장된 데이터를 CPU에 건네주고, 이 데이터들은 서로 다른 레지스터에 저장됨
  6. ALU는 읽어들인 데이터로 연산을 수행함
  7. 계산의 결과값은 레지스터에 저장되며 계산이 끝났다면 첫번째 명령어의 실행은 끝남
  8. 제어장치는 2번지에 저장된 다음 령어를 읽어들이기 위해 메모리에 '메모리 읽기' 제어 신호를 보냄
  9. 메모리는 2번지에 저장된 명령어를 CPU에 건네주고 이 명령어는 레지스터에 저장됨
  10. 제어장치는 이 명령어를 해석한 뒤 메모리에 계산 결과를 저장해야 한다고 판단
  11. 제어 장치는 계산 결과를 저장하기 위해 메모리에 '메모리 쓰기' 제어 신호와 함께 게산 결과인 220을 보냄
  12. 메모리가 계산 결과를 저장하면 두번째 명령어의 실행도 끝남

 

[ 메모리 ]

컴퓨터에서 말하는 메모리는 기억소자 즉 반도체를 의미하는데, 반도체는 특성상 전류를 흐르게도 하고 흐르지 않게도 하는 특징이 있어 이를 이용하여 임시적인 내용들을 기억하게 만드는 것

 

▶ 메모리 분류별 특성

보조 기억장치와 메모리의 차이“휘발성”데, 메모리는 시스템이 활성화 된 상태에서 그 값을 기억하고 있지만 시스템이 꺼지게 되면(ShutDown) 지워지게 됨. 그에 비해 보조 기억장치는 시스템이 꺼져도 기억하고 있는 값이 휘발되지 않음

 

▶ 메모리 성능

 

메모리의 속도는 메모리가 CPU와 데이터를 주고받는 시간을 말함
메모리의 성능은 속도가 빠를 수록 성능이 좋다고 말할수 있음

  • 리프레시 시간
    메모리는 일정 시간마다 재충전을 해줘야 하는데, 그렇지 않으면 정보는 사라지게 됨. 이 일정기간을 리프레시 시간이라고 함. 이는 메모리에서 한번 읽고 나서 다시 읽을 수 있는 사이 시간을 말함

 

  • 메모리 액세스 시간
    메모리 액세스 시간은 데이터를 읽어오라는 명령을 받고 데이터를 읽기 시작하기까지의 시간을 말함. CPU에서 명령어를 처리할 때 명령어가 갖는 주소를 보내면 CPU에 그 주소에 해당하는 값을 가져 오게 되는데 걸리는 시간이 액세스 시간

 

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

 

▶ 메모리 종류

주기억장치

SRAM, DRAM, ROM

  • RAM(Random Access Memory)
    • 컴퓨터의 전원이 끊어지면 내용이 휘발되어 보조 저장 장치가 반드시 필요
    • RAM의 크기는 프로그램의 수행 속도에 영향을 줌
    • CPU에서 직접 접근이 가능한 유일한 저장 장치  
      • SRAM : 리프레쉬 불필요, 전력 소모 적음 ➡️ 고가
      • DRAM : 리프레쉬 필요 ➡️ 저RAM(Random Access Memory)

 

  • ROM(Read Only Memory)
    • 대부분 읽을 수만 있는 장치로 구성되어 있으며 전원이 끊겨도 내용이 보존

 

보조기억장치

하드디스크, CD, SSD

 
  • 자기 디스크
    • 디스크 드라이브는 자기 디스크로부터 데이터를 읽는 주변 장치를 의미
    • 원판 표면의 철 입자 방향으로 0,1을 표현
    • 플로피 디스크(FDD)와 하드 디스크(HDD)

 

  • 광 디스크
    • 광 디스크(optical disc, OD)는 빛의 반사를 이용하여 자료를 읽어내는 저장 매체
    • 1세대인 CD,  2세대 DVD, 3세대인 블루레이 디스크, 차세대 테라 디스크나 HVD등

 

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

 

▶ 캐시 메모리(Cache Memory)

CPU간 데이터 속도 향상을 위한 중간 버퍼 역할
즉, 빠른 CPU 처리속도와 상대적으로 느린 메인 메모리에서의 속도차이 완충해주는 역할

 

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

캐시 메모리는 메인 메모리의 일정 블록 사이즈 데이터를 담아 두었다가, CPU에 워드 사이즈만큼의 데이터를 전송
블록 사이즈, 워드 사이즈가 크다면 그만큼 Cache의 HitRatio 비율이 높아짐

  • Hit Ratio : CPU가 필요한 데이터가 Cache에 있을 확률
  • Cache Hit: CPU가 필요한 데이터가 Cache Memory 내에 들어와 있음
  • Cache Miss: CPU가 필요한 데이터가 Cache Memory 내에 없음

 

요소 내용
Cache 크기 Cache Memory의 size의 크기가 크면 Hit Ratio율과 반비례 관계
인출 방식(Fetch Algorithm) 요구인출(Demand Fetch): 필요 시 요구하여 인출하는 방식
선 인출(Pre-Fetch): 예상되는 데이터를 미리 인출하는 방식
쓰기 정책(Write Policy) Write-Through: 주기억 장치와 개시에 동시에 쓰는 방식. Cache와 메모리의 내용이 항상 일치하며 구성 방법이 단순함
Write-Back: 데이터 변경만 캐시에 기록하는 방식. 구성 방법이 복잡함
교체(Replace) 알고리즘 Cache Miss 발생시 기존 메모리와 교체하는 방식
FIFO, LRU, LFU, Random, Optimal Belady's MIN(향후 가장 참조 되지 않을 블록을 교체) 등이 있음
사상(Mapping) 기법 주기억장치의 블록을 적재할 캐시 내의 위치를 지정하는 방법
직접 매핑(direct mapping), 어소시에이티브 매핑(associative mapping), 셋어소시에이티브 매핑(set associative mapping) 등이 있음

 

'CS > 컴퓨터 구조' 카테고리의 다른 글

메모리 관리  (0) 2024.03.10
메모리  (0) 2024.03.02
메모리와 캐시 메모리  (0) 2024.03.02
CPU의 작동 원리  (1) 2024.03.02