CS - 컴퓨터 구조(2)

김영현·2023년 7월 3일
0

CS

목록 보기
2/32

CPU의 구성 보충

cpu의 구성은 크게 세가지로나뉜다. 1편에서 설명했던걸 조금 더 보충해보겠다.

  1. ALU(산술논리연산장치) : 레지스터에서 피연산자(데이터)를 받아들이고, 제어장치가 보낸 제어신호(연산자)를 활용해 계산을 마친 뒤, 레지스터에 저장한다.
  2. 제어 장치 : 각 부품이 해야할 명령들을 담고있는 신호를 보낸다.(제어신호). 제어장치가 받아들이는 신호는
    a. 클럭 : 보통 cpu성능을 나타낼때 쓰는 x.xghz할때 그 클럭 맞다. 모든 부품은 클럭주기를 따른다. 다만 모든부품이 한 클럭마다 동작하는 건 아니다.
    b. 해석할 명령어 : cpu가 사용해야할 명령어는 명령어 레지스터에 있음. 이를 꺼내와 해석해서 CPU에게 알려줌(통역).
    c. 시스템 버스에서 날아온 제어신호 : CPU가 아닌 외부에서 들어온 제어신호를 처리 후 CPU에게 알려줌

CPU(중앙처리장치)의 동작 과정

cpu의 동작 과정은 크게 4가지로 나뉜다.

1.인출
2.실행
3.간접
4.인터럽트.

프로그램은 다양한 명령어셋으로 이루어져있고, CPU는 이를 하나씩 실행함.
한 명령당 위의 4가지 싸이클이 돈다.

1. 인출

주기억장치(메모리)에서 명령어를 꺼내온다. 프로그램은 주 기억장치에 셋팅 되어있음!

2. 실행

꺼내온 명령어를 실행한다. 이때 필요한 데이터셋이 레지스터에 없으면, 간접 싸이클로 넘어간다.

3. 간접

주기억장치에서 명령어를 실행하기위한 데이터를 꺼내온다.

4. 인터럽트.

문자 그대로 사이클 중간에 끼어드는 사이클이다. 인터럽트는 크게 2가지로 나뉜다.

  • 동기 인터럽트
  • 비동기 인터럽트

동기 인터럽트는 프로그램을 실행하다가 발생한 예외사항이다. 이를 보통 예외라고 한다. 예외처리할때 예외 맞는듯!

비동기 인터럽트는 하드웨어인터럽트 or 그냥 인터럽트 라고 불리운다.
하드웨어에 의해 발생함. 가령 입출력장치의 명령들(마우스 움직임, 프린터 뽑아라, 화면 출력을...)이 중간에 들어온다면, CPU는 완료명령을 계속 기다릴 수 없다.
왜? => 입출력장치는 CPU보다 현저히 낮은 처리속도. 명령이 완료되면 CPU가 인터럽트 해서 처리해버리면 된다.(js의 동기를 처리하는 방식과 비슷한듯?)


메모리 & 캐시메모리

메모리

  1. 주기억장치, 즉 메모리는 프로그램 실행에 필요한 명령어+데이터 를 가지고있음. CPU는 이를 활용해 프로그램 실행!
  2. 메모리는 휘발성. 이때문에 보조기억장치를 활용해 비 휘발성 데이터를 저장함.
  3. 메모리의 용량이 작으면 여러 프로그램을 실행할 수 없음. 또한 보조기억장치에서 실행해 필요한 데이터셋을 계속 가져와야함!

캐시메모리

메모리 접근속도는 CPU의 연산속도를 따라가지 못함. 병목현상 발생. 이를 해결하기 위한게 캐시메모리.
CPU근처에 자그마한 메모리를 추가해, 계속 사용하는 데이터를 저장해두고 읽고 쓰기!
레지스터도 있지않느냐? => 레지스터보다 용량이 크고, 속도는 느림. 속도와 용량은 반비례.

캐시메모리는 L1, L2, L3...(Level)이 있음. 숫자가 커질수록 CPU에서 멀다 => 용량커지고 속도저하
L1과 L2는 CPU에 합체되어있는 경우가 대부분!


다음편은 아마 운영체제가 되지 않을까?

profile
모르는 것을 모른다고 하기

0개의 댓글