[TIL] - 컴퓨터 구조 완벽 정리

sehannnnnnn·2022년 11월 30일
0
post-thumbnail

컴퓨터 구조

컴퓨터는 알다시피 하드웨어 + 소프트웨어의 결합체이다.

하드웨어의 기능적 분류를 하자면 아래와 같다.

컴퓨터의 기본 구성 요소

  • 입력 장치 : 마우스, 키보드, 터치스크린 등이 해당된다.
    • 사람의 신호를 컴퓨터가 처리할 수 있는 형태로 데이터와 명령을 받아드리는 물리적인 장치이다.
  • 출력 장치 : 모니터, 프린터 등이 해당된다.
    • 처리된 데이터를 사람이 이해할 수 있는 형태로 출력하는 물리적인 장치이다.
  • 중앙 처리 장치 : CPU를 의미한다 -> CPU는 산술/논리 연산장치(ALU)와 제어장치, 레지스터로 구성되있다.
    • ALU 는 산술 계산을 담당
    • 제어장치는 명령과 제어신호를 생성하여 각종 장치의 동작을 제어
    • 레지스터는 CPU의 내부 메모리
  • 저장 장치 : 주 기억장치 메모리 (RAM, ROM), 보조 기억장치(디스크, 씨디, USB)등이 해당된다.
    • RAM은 프로세스, 데이터 등을 저장하는 휘발성 메모리
    • ROM은 변경가능성이 희박한 소프트웨어를 기억하는 비휘발성 메모리

CPU

CPU의 구조

  • 산술/논리 연산 장치 (ALU), 제어장치, 레지스터로 구성되있다.
  • ALU 는 산술적인 연산, 논리적인 연산을 담당하는 가산기, 보수기, 누산기, 기억 레지스터, 데이터 레지스터 등으로 구성된다.
  • 레지스터는 CPU 내부에 있는 기억장치로 ALU 장치에 의해 사용되는 범용 레지스터와 PC등 특수 목적에 사용되는 전용 레지스터로 구분한다.
    • IR (Instruction Register) : 현재 수행중에 있는 명령어 부호를 저장하는 레지스터
    • PC (Program Counter) : 명령이 저장된 메모리의 주소를 가리키는 레지스터
    • AC (Accumlator) : 산술 및 논리 연산의 결과를 임시로 기억하는 레지스터
  • 제어장치는 CPU가 자신 및 주변기기를 컨트롤하는 장치
    • 프로그램 계수기 : 프로그램의 수행 순서를 제어함
    • 명령 레지스터 : 현재 수행중인 명령의 내용을 임시 기억
    • 명령 해독기 : 명령 레지스터에 수록된 명령을 해독, 제어 신호를 보님

CPU의 기능

CPU의 기능은 모든 명령어에 대해 해독 및 인출을 수행하고 기억 장치로부터 명령어를 읽어온다. 데이터를 읽고 쓰기 같은 명령어들을 수행하고 처리하는 방식은 알아두어야한다.

명령어

  • 명령어는 코드로 되어 있는데 동작코드(Op-code) 와 오퍼랜드 (Operand)로 구성되있다.
    • 동작코드 (Op-code) : 명령의 실행 동작을 구분하여 표현
    • 오퍼랜드 (Operand) : 명령어의 실행에 필요한 자료, 실제 자료의 저장 위치

명령어 수행 과정

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

메모리

메모리 종류

1번 부터 CPU와 가까운 저장소이다. 4번으로 갈 수록 저장용량을 많아지지만, 처리 속도는 느려진다.
1. 레지스터
2. 캐시 메모리
3. 주기억장치 - (RAM, ROM)
4. 보조기억장치 - (자기 디스크, 광디스크, 플래시 메모리)

메모리 성능

메모리 속도는 메모리가 CPU와 데이터를 주고받는 시간을 말한다.

  • 리프레시 시간 : 메모리의 재충전 시간-> 메모리를 한번 읽고 다시 읽을 수 있는 사이 시간을 말한다.
  • 메모리 엑세스 시간 : 데이터를 읽어오라는 명령을 받고 데이터를 읽기 시작하기까지의 시간을 말한다.
  • 사이클 시간 (리프레시 + 메모리 엑세스 시간) : 메모리 작업이 완료와 동시에 대기 신호를 내놓은 후 다음 신호를 받을 준비가 될때까지의 시간

캐시메모리

CPU 내 또는 외에 존재하는 메모리로, 메인 메모리와 CPU 간의 데이터 속도 향상을 위한 중간 버퍼 역할을 한다. 빠른 CPU의 처리 속도와 상대적으로 느린 메인 메모리에서의 데이터 속도 차이를 극복하는 완충 역할을 한다.

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

요소내용
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) 등이 있다.
profile
FE 개발자 준비생 블로그 🪐

0개의 댓글