본문 바로가기

TIL

[TIL 2024. 03. 18] CS(1)

오늘 한 일

  • 오늘의 코드카타 3문제
  • CS강의 1~3강
  • 알고리즘 문제 복습: 다익스트라

 

CPU와 메모리

1. 컴퓨터의 구성

  • 컴퓨터는 입출력 장치, CPU, 메모리(주기억장치), 보조기억장치로 구성된다
  • 일종의 푸드트럭처럼 위의 구성요소를 어떻게 조합하느냐에 따라 다양한 형태의 컴퓨터를 만들 수 있고, 그 구체적인 구성요소는 다음과 같이 비교할 수 있다
    • 출력장치=메뉴판, 픽업대 // 입력장치 = 주문대
    • CPU = 요리사
    • 메모리 = 선반(DRAM,주기억장치), 조리대(SRAM, 캐시메모리(L2,L3))
    • 보조기억장치 = (푸드 트럭 아래 혹은 외부) 창고

2. 입출력 장치

  • 출력 장치(메뉴판)을 보고 입력장치(주문대)를 통해 입력을 하면 다시 출력장치(픽업대) 등에서 출력을 받고, 이 과정을 반복할 수 있다
  • 대표적인 출력 장치로는 모니터 등이 있고, 입력 장치는 키보드와 마우스 등이 있다

 

3. CPU

  • CPU는 요리사에 비유될 수 있으므로, 구체적으로는 우뇌/좌뇌/오른손/왼손 등으로 그 역할을 세분화할 수 있다
    • 우뇌=ALU( Arithmetic Logic Unit): ALU는 산술 논리 연산 장치로써, CPU에서 가장 핵심적인 부분이다. 즉, CU의 스케쥴링에 따라 CPU로 들어온 데이터를 산술연산 및 논리연산하는 것이 ALU의 역할이다
    • 좌뇌=CU(Control Unit): 제어부인 CU는 ALU가 어떤 순서로 데이터들을 연산해야 하는지를 정해주는 역할을 한다. 이 과정에서 내부버스를 운행하며, 각 부분과의 연결도 담당한다
    • 오른손=레지스터(Register): 실제로 연산의 도구(명령어)를 저장하고 있는 부분이다. 즉, 칼이나 프라이팬 등 해당 연산에서 필요한 핵심적인 도구를 쥐고 있는 손으로 생각하면 이해가 쉽다. 레지스터의 종류에는 통상적인 것과 특별한 것이 있는데, 통상적인 레지스터는 CPU의 연산을 돕는 포괄적인 역할을 하는 것이고, 특별한 목적의 레지스터는 해당 명령어나 데이터, 주기억장치의 주소 등을 저장하는 역할을 한다
    • 왼손=캐시 메모리(L1): 왼손은 거들 뿐!  L1 캐시 메모리는 CPU 내부에서 속도 향상을 위해 기능한다. 즉, CPU의 연산 과정을 1차적으로는 레지스터가 보조하고, 2차적으로(보완적으로) 캐시 메모리가 보조한다

 

4. 메모리

  • (레지스터) > 캐시 메모리(SRAM) > 주기억장치(DRAM) > 보조기억장치(HDD, 하드디스크)

-> 메모리는 속도와 용량이 반비례한다.

즉, 피라미드 꼭대기에 해당하는 레지스터에서 피라미드 하위인 보조기억장치로 갈수록 용량은 커지지만, 속도는 느려진다

 

(1) 레지스터

: 전원이 꺼지면 휘발되고, 오른손에 비유될 수 있는 만큼 메모리의 용량이 적지만, 바로바로 가져다 쓸 수 있다. (오른손: 손에 몇 개 밖에 쥘 수 없지만, 바로 쓸 수 있고, 손에서 놓아버리면 없어짐)

 

(2) 캐시 메모리

: CPU와 주기억장치의 속도 차이를 극복하기 위한 목적으로 사용된다.

즉, CPU가 주기억장치에서 데이터를 찾기 전에 캐시 메모리에서 먼저 데이터를 찾게 함으로써, CPU 연산 속도를 향상시켜준다.

단, 이때는 캐시히트율이 높아야 한다(=찾는 데이터가 캐시 메모리에 있어야 한다)는 전제가 필요한데, 이 캐시히트율을 높이기 위해 다양한 알고리즘이 사용된다. 캐시 메모리도 휘발성이다

 

 

(3) 주기억장치

: 주기억장치도 전원이 꺼지면 휘발된다. 프로그램들이 실행되는 곳이 주기억장치이며, 레지스터나 캐시 메모리에 비해 속도는 느리지만, 용량은 더 크다(속도도 중간, 용량도 중간) 

 

 

5. 보조기억장치

: 전원을 꺼도 휘발되지 않는다.

모든 프로그램들이 저장되는 곳이 보조기억장치이며, 우리가 해당 프로그램을 사용하기 위해서는 보조기억장치에서 데이터를 가져와서 주기억장치에서 실행하게 된다.

푸드트럭 장사를 마칠 때는 모든 재료(데이터)를 정리해서 창고에 두고 가야 하므로, 비휘발성이라고 이해하면 쉽다