CS 실시간 강의 - CPU

5w31892p·2022년 11월 14일
0

CS

목록 보기
1/3

📜 CS 특강

✍ CPU

컴퓨터의 전반적인 특성을 이해하기 위한 강의

컴퓨터 이루는 3대장

  • cpu
  • memory
  • disk

:: CPU

  • 여러개의 Register로 구성
  • 코어의 수가 n개 만큼 많아지면 Register와 status도 n개 만큼 많아짐
  • 또 statu

:: CPU가 싱글에서 멀티로 진화한 이유

무어의 법칙 : 해마다 성능이 2배로 늘어남
  • 싱글코어로도 극한의 처리가 가능했지만 발열 감당이 안됨 (회로가 타들어감)
  • 코어의 성능 향상엔 본질적인 한계가 있기 있음
  • 그래서 차라리 "멀티플하게 해결해보자" 해서 멀티코어가 나옴
  • 멀티코어이기 때문에 멀티한 상태를 가짐 (status == register)

:: CPU 內

ALU (Arithmetic and Logical Unit)

  • 산술 논리 연산
    • CU로부터 명령을 받아 cpu로 들어온 모든 데이터들을 산술연산, 논리연산

CU (Control unit)

  • 리얼 뇌
  • 명령 제어장치 , 입력된 명령어를 해독하여 cpu내부의 움직임을 총괄 및 통제
  • 프로그램 A 클릭 → CPU한테 연산 해달라고 좀! = 이 접수를 CU가 받음
  • 작업 지시
  • 명령어를 특정 register에 저장
    • 명령어를 1. fetch함
    • 명령어 2. 해석 recorde
    • 명령어 3. ALU에게 토스

프로그램을 클릭해서 CPU에게 연산해달라고 하는 요청들어옴

  1. CU가 받은 후 명령어를 특정 레지스터에 저장
  2. CU는 명령어를 Fetch하고 해석후 ALU에게 토스
  3. ALU은 받은 명령어를 산술, 논리연산 후 프로그램에 전달
  4. 메모리 상태가 바뀜

Prefetch

  • 하나의 명령어 수행 중 다른 명령어 미리 fetch
  • 효율이 좋아짐
  • 컴퓨터 속도가 올라감
  • 최적화

Register

  • 업무별로 나뉨
  • 각 하는 역할이 있고, 그 역할에 맞게 분업해서 하나처럼 돌아가게 함
  • General - purpose 범용
    • eax, ecx
      -special - purpose 특수용
    • pc 레지스터
      • 프로그램 카운터
      • 명령 실행 후 레지스터 상태 증가
      • 명령어 1,2,3 한 라인을 cpu가 얼마나 처리했는지 pc1,2,3 별로 처리했는지 관리

Cash

  • 캐싱
    CPU 와 DISK가 핑퐁할 때, CPU 와 DISK의 거리를 좁히기 위해
    빈번하게 쓰이거나 최근 쓰인 것들 캐쉬라는 공간에 모아둠

Cache Coherence (캐시 일관성)

  • 공유 메모리 시스템에서 각 로컬 캐시 간의 일관성
각 클라이언트가 자신 만의 로컬 캐시를 가지고 
다른 여러 클라이언트와 메모리를 공유하고 있을 때, 
캐시의 갱신으로 인한 데이터 불일치 문제가 발생
  • Cache Coherence을 유지한다고 하는 것은 데이터 불일치 현상을 없애는 것
  • 일관성 유지하기 위해서는 다른 프로세서가 갱신한 캐시 값을 곧바로 혹은 지연하여 다른 프로세서에서 사용할 수 있도록 해줘야 함

:: CPU와 프로그래머 통신방법

  • cpu는 binary 원툴 0101 이런 기계어만 알아들음
  • 통신을 위해 프로그래머가 직접 어셈블리어를 짤 수도 있음
    • cpu 아키텍처에 따라 조금씩 다름
어셈블리어도 코딩이 가능함
어셈블리어도 개발자 허들이 있음
어셈블리어 - 프로그래밍언어, c / c++ / java ...

컴파일러

  • 일종의 번역 프로그램
  • 어셈블리어를 쓰지 않아도 통역해주는 것

코딩만 할 줄 알면 컴퓨터에 명령하는 것이 쉽다.

:: 명령어 수행방법

ISA (Instruction set architecture): 명령어집합

  • CISC :Complex instruction set computer
    • 복잡함
  • RISC :Reduced Instruction Set Computer
    • 요즘 대세, 간단하고 많이 씀
line마다 컴퓨터 메모리와 레지스터들이 자꾸 변함
이런 것들이 모여서 원하는 결과로 딱!
모니터 등의 변화
line by line 으로 변화시킴

디테일 : 명령어 수행

  • 디스크와 모니터에 영향을 끼침 (DB, DISK 원통그림)
  • CU가 명령어 FETCH

명령어 == opcode

  • 아래 operand들이 있음 - 메모리, 레지스터...
  1. fetch
  2. execute (실행)- ALU, 오퍼랜드에 반영
  3. Write back
    • 캐시로부터 해제되는 때(캐시안에 있는 내용을 버릴시) 에만 주기억장치 or 보조기억장치에 기록되는 방식

컴퓨터구조 지식이 현업에서 어떤식으로 쓰이나요?

  • 당장 웹, 앱개발에선 안쓰이지만
  • 시스템 프로그래머, 설계 등에 알고 있는 것과 모르는 것이 엄청 차이남

:: CS 공부

Essntial

  • 컴퓨터구조
  • OS
  • DB

Advanced

  • 컴파일러
  • 프로그래밍언어

디깅이란? 해독, 파보기, 깊게

0개의 댓글