컴퓨터구조 개관잡기

최예인·2024년 4월 14일
0

이 글은 혼자 공부하는 컴퓨터구조+운영체제 책 내용 중 챕터 1~4장을 간략하게 정리한 글이다.

1. 컴퓨터가 이해하는 정보

컴퓨터 구조는 (1)컴퓨터가 이해하는 정보 (2) 컴퓨터의 네 가지 핵심 부품으로 나누어 살펴볼 수 있다.

(1) 컴퓨터가 이해하는 두 가지 정보

가. 데이터

데이터는 간단하게 2진수, 16진수 등의 방법으로 나타날 수 있다. 특히 컴퓨터는 이진수를 사용하며, 개발자가 작성한 소스 코드를 명령어로 변환하는 과정을 거쳐 데이터로 변환하게 된다.

나. 명령어

어셈블리어를 생각하면 쉽다. 더해라(ADD), 저장해라(Store), 읽어와라(Load)등이 해당한다.

2. 컴퓨터의 네 가지 핵심 부품

컴퓨터는 아래 그림처럼 구성되어 있다. (출처 : 혼자 공부하는 컴퓨터구조+운영체제)

가. 메모리

메모리는 위에서 보았던 명령어와 데이터를 주소로 저장하고 있다. 주소의 개념은 보통 처음 C언어를 배울 때 포인터에서 접해본 적이 있을 것이다.
보통은 주소 비트에 따라서 1024번지 1028번지 ... 순서로 나아간다.

나. CPU


ALU : 계산기라고 생각하면 좋다. 1+2라는 연산을 수행해준다.
레지스터 : CPU내부의 작은 저장장치이다. 메모리에서 저장하는 명령어를 만나면 해당 과정을 레지스터로 옮겨와서 CPU가 처리한다.
제어장치 : 메모리를 읽어오고, 쓰는 제어신호를 내보내고, 해당 명령어를 해석하는 장치이다.

다. 보조기억장치

3-1. 주기억장치 : CPU가 처리하는 내용을 저장하는 장치
RAM (Read Access Memory)
: 휘발성 메모리이다. 컴퓨터가 종료되면 데이터가 없어진다.
ROM (Read Only Memory)
: 컴퓨터가 종료되도 데이터가 남아있다.

3-2. 보조기억장치 : 물리적인 디스크가 연결되어 있는 장치
하드디스크(HDD), SSD등이 있다.

라. 입출력장치

마이크, 스피커, 프린터, 마우스, 키보드 등이 해당된다.
컴퓨터 외부와 연결되어 컴퓨터 내부와 정보를 주고 받는다.

이는 시스템 버스와 연결되어있다!

주소 버스 : 주소를 주고받는 통로이다.
데이터 버스 : 명령어와 데이터를 주고받는 통로이다.
제어 버스 : 제어신호를 주고 받는 통로이다.

3. 레지스터

CPU가 메모리에 접근하는 시간보다 레지스터에 접근하는 시간이 훨씬 빠르다!! → 성능 향상 효과 (백엔드 분야에서 굉장히 중요하다.)

위에서 ALU레지스터 : 계산기라고 하였다.
이 계산기 ALU의 결과값을 메모리가 아닌 레지스터에 우선 저장하는 과정이 존재한다. 이때, 계산한 결과값 뿐만 아니라 플래그도 보낸다.

(1) 플래그는 무엇인가?

하나의 연산을 생각해보자. 7-9라는 연산이 있다고 한다면, 2진수로 바꾸어 계산을 해보면 음수라는 결과가 나오는 방법이 없다. 부호가 따로 붙지 않기 때문이다. 즉, 음수인지 양수인지, 결과가 0인지 아닌지, 올림수가 발생하는지 안하는지(7+9=5, 1이라는 캐리 발생) 를 나타내는 플래그가 꼭 필요하다!

위 플래그 중에서 부호, 캐리, 인터럽트 정도 의미를 알고 있자!

(2) 제어장치의 역할

  • 클럭신호를 받아들인다.

  • 해석해야 할 명령어를 받아들인다.

  • 플래그 값을 받아들인다.

  • 제어버스로 전달된 신호를 받는다.

(3) 레지스터 종류

가. 프로그래밍 카운터(PC, Program Counter)

프로그램 카운터 또는 명령어 포인터(IP, Instruction Pointer)는 메모리에서 가져올 명령어의 주소, 즉 메모리에서 읽어드릴 명령어의 주소를 저장한다.

나. 명령어 레지스터(IR, Instruction Register)

명령어 레지스터(IR)는 메모리에서 읽어 드린 해설할 명령어를 저장하는 레지스터이다.

다. 메모리 주소 레지스터(MAR, Memory Address Register)

메모리 주소 레지스터(MAR)은 메모리의 주소를 저장하는 레지스터이다. CPU가 읽어 들이고자 하는 주소 값을 주소 버스로 보낼 때 메모리 주소 레지스터를 거치게 된다.

라. 메모리 버퍼 레지스터(MBR, Memory Buffer Register) -DR

메모리 버퍼 레지스터(MBR) 또는 메모리 데이터 레지스터(MDR, Memory Data Register)는 메모리와 주고 받은 데이터나 명령어을 저장하는 레지스터이다. CPU가 MAR을 거쳐 주소버스로 값을 내보내면 데이터버스로 데이터가 MBR를 거친다.

마. 범용 레지스터(general purpose register) - TR

범용 레지스터는 이름 그래도 다양하고 일반적인 상황에서 자유롭게 사용할 수 있는 레지스터이다. 일반적으로 MAR은 메모리 주소값만 MBR는 데이터버스로 주고 받을 값만 저장하지만 범용레지스터는 데이터와 주소를 모두 저장할 수 있다.

profile
즐겁게 배워가는 중입니다!

0개의 댓글