Cute Running Puppy 01-2. 컴퓨터 구조

CS

01-2. 컴퓨터 구조

수웅 2025. 3. 7. 12:37

컴퓨터가 이해하는 정보 중 가장 작은 단위 = 비트(bit)

- N비트가 나타낼 수 있는 정보 =  2^N 개

 - 바이트(byte)는 8 bit를 묶은 단위로, 1byte로 표현할 수 있는 정보는 2^8 = 256개이다.

 

CPU가 한번에 처리할 수 있는 데이터의 크기 = 워드(ward)

ex) CPU가 한 번에 16bit를 처리할 수 있다면 1워드 = 16bit

 

0과 1로 숫자 표현하기

2진수로 소수를 나타내는 법 = 부동 소수점 

현재는 2진수의 지수와 가수를 IEEE 754 방식으로 저장하고 있음

- 지수와 가수만 알면 소수를 알 수 있음

ex) 1.1010111010101 x 2^6 의 수 = 11010111010101

- 컴퓨터가 지수를 저장할 때, bias 값이 더해져 저장된다. bias 값은 2^{k-1} - 1 (k: 지수의 비트 수)

ex) 지수를 표현하기 위해 8비트 사용 시, bias 값 = 2^7 - 1

1.1010111010101 x 2^6 이 32비트로 저장될 때는 127 + 6 = 133(10000101) 으로 저장된다

 

10진수 소수를 2진수로 표현 시, 10진수 소수와 2진수 소수 표현이 딱 맞아떨어지지 않을 수 있다.

 

0과 1로 문자 표현하기

- 문자 인코딩 : 문자를 0과 1로 변환하는 과정  <-> 문자 디코딩: 0과 1로 표현된 문자를 사람이 이해하는 문자로 변환

 

1. 아스키 코드

- 가장 기본적인 문자 집합 : 아스키

- 아스키 문자에 대응된 고유한 수 : 아스키 코드

 

2. 유니코드

- 유니코드 : 아스키 코드로는 모든 한글 조합을 나타낼 수 없음. 한글을 포함해 다양한 언어, 특수문자, 화살표, 이모티콘까지 코드로 표현할 수 있는 통일된 문자 집합

유니코드의 인코딩 방법 : UTF-8, UTF-16, UTF-32 등 가변길이 인코딩 사용

- 가변 길이 인코딩이란? 인코딩된 결과의 길이가 일정하지 않을 수 있다

 

3. base64 인코딩

- 문자뿐만 아니라 이진 데이터까지 변환할 수 있는 인코딩 방식
- 이미지 등 단순 문자 이외의 데이터까지 아스키 문자 형태로 표현 가능

아스키 코드의 8bit와 base64의 6bit가 나누어 떨어지는 경우

'abc'라는 문자열을 각 8bit의 아스키 크기로 변환하면 총 24bit 코드로 인코딩 된다.

이를 base64 대응표에 따라 6bit씩 끊어서 변환하면 'YWJj'가 된다.

 

나누어 떨어지지 않는 경우

'ab'의 경우, 총 16비트이므로 4개의 6bit로 나눠 떨어지지 않게 된다. 이 경우, 나머지 자리가 모두 0으로 채워지고 이는 '='로 인코딩 된다.

 

명령어

- 연산 코드(opcode) : 명령어가 수행할 동작
- 오퍼랜드(operand) : 동작에 사용될 데이터나 데이터가 저장된 위치
  - 주로 데이터가 저장된 위치가 명시되므로 주소 필드(address field)라고도 부른다.

 

연산 코드의 유형

- 데이터 전송, 산술/논리 연산, 제어 흐름 변경, 입출력 제어

 

기계어와 어셈블리어


기계어 : CPU가 이해할 수 있도록 0과 1로 표현된 정보
어셈블리어 : 기계어를 읽기 편한 형태로 단순 번역한 언어
ex) push : 연산코드 / rbp : 오퍼랜

 

 

 

명령어 사이클

- CPU가 명령어를 처리하는 과정에서 정형화된 흐름
- 각각의 명령어들이 반복하며 실행되는 일정한 주기

1. 인출 사이클 
메모리에 있는 명령어를 CPU로 가지고 오는 단계

2. 실행 사이클
CPU로 가져온 명령어를 실행하는 단계


3. 간접 사이클
명령어를 실행하기 위해 한번 더 메모리에 접근하는 단계

 

4. 인터럽트 사이클
인터럽트를 처리

'CS' 카테고리의 다른 글

01. 컴퓨터 구조  (0) 2025.02.26