Super Kawaii Cute Cat Kaoani
본문 바로가기
🏃‍♀️ 대외활동/Codeit Boost-Node.js

3주차 컴퓨터 구조 이해하기 [코드잇 부스트 백엔드 스터디 ]

by wonee1 2024. 5. 20.
728x90

 

<컴퓨터 구조 이해하기>

 

1. 컴퓨터의 언어, 이진법

 

이진법

 

컴퓨터는 통신을 하기 위해 0과 1만을 사용하는 이진법을 언어로 사용

0123456789 → 10진법

01 → 2진법

 

 

비트와 바이트

 

비트

• 데이터의 최소 단위

• 이진수로 총 몇 자리인지를 나타낸다

 

바이트

• 1바이트 = 8비트

• 작은 단위인 bit는 소문자 b로, 보다 큰 단위인 Byte는 대문자 B로 적는다

 


 

2. 논리 연산

논리연산 

 

0과 1의 전달 방법

• 컴퓨터가 0과 1이라는 언어를 서로 주고 받을 수 있는 비밀

반도체

 

 

반도체

• 상황에 따라 전기가 통하기도 하고 통하지 않기도 하는 특수한 물질

두 부품사이에 전기가 흐르면 1, 흐르지 않으면 0

 

 

 

논리 연산

• 0 거짓, off

• 1 참, on

• AND, OR , NOR

두 가지 작동 방식

  1. 두 신호가 모두 On이어야 작동하는 경우 (AND 연산)
  2. 두 신호 중 하나만이라도 On이면 작동하는 경우 (OR 연산)

 

세가지 기본 논리연산

 

• AND

 

 

• OR

 

 

• NOR

 

 

 

네 가지 응용 논리 연산

 

• NAND → AND 결과의 반대

• NOR → OR 결과의 반대

• XNOR → XOR 결과의 반대

• XOR

 

 

 

 

 


 

4.  회로 설계

 

 

논리연산 7개를 잘 조합하면 컴퓨터의 칩을 만들 수 있음

 

회로설계

 

 

 

회로 추상화

→ 입력과 출력만 알려줘도 된다 (연산을 보여주지 않아도 됨)

내부의 동작을 보여주지 않아도 된다

 


5. CPU

 

프로그램을 실행하는 칩, CPU

 

CPU (중앙 처리 장치)

• 머신 코드를 실행하는 곳

• 컴퓨터의 머리 역할을 해주기 때문에

• CPU의 입력선 개수는 정해져있기 때문에 머신코드의 자릿수도 정해져있다.

 

 

💡CPU가 한번에 동작을 할 수 있는 최소 단위

Instruction 인스트럭션

 

 

하나의 칩에 여러 기능 넣기

 

 

하나의 칩에 여러 기능 넣기

하나의 칩에 여러 기능을 넣는 것 → 어떤 기능을 사용할 지에 대한 입력신호가 미리 있다

 

ALU

  여러가지 수학 연산 기능을 할 수 있는 칩

 

 

오퍼레이션 코드 (opcode)

• 어떤 기능을 활용할 건지 알려주는 추가적인 신호

• 여섯자리 내외

 

💡Instruction의 앞의 6자리가 opcode이다

 

 

 

CPU와 저장 장치

 

머신코드로 된 instruction을 CPU에게 주면 CPU는 정해진 동작을 수행한다

CPU의 Instruction

→ 저장 장치 관련

 

CPU와 관련된 저장장치

• 레지스터 → 가장 빠른 저장장치

8, 16 ,32 bit 레지스터

*hard disk ram → cpu의 내부의 저장장치

 

 

💡실행 속도 때문에 하드디스크에 저장된 파일을 램으로 복사해 두고 사용하기도 한다

 

머신 코드 실행하기

 

 

 

  cpu가 머신코드를 한 줄씩 읽어서 해석한다

 

 

컴퓨터의 추상화

 

 

프로그래밍의 추상화

→ 컴파일러는 복잡한 부분을 사용하지 않고도 프로그래밍을 작성가능 하게 함

 

 

어셈블리 언어

 

머신코드를 읽거나 직접 작성해야할 때

→ 어셈블리 언어를 사용해야한다

 

어셈블리 언어

읽을 수 있는 머신 코드

 

 

어셈블리 언어로 만들어진 어셈블리 코드를 머신 코드로 바꿔주는 프로그램→ 어셈블러

 

*컴파일러는 저수준에 가까움

 

 

32비트 시스템과 64비트 시스템

 

실제 컴퓨터는 instruction이 훨씬 길다

32 bit, 64bit instruction의 자릿수

→ 훨씬 더 많은 메모리

 

32bit → 메모리주소를 최대 4GB 까지 표현

64bit → 메모리주소를 최대 16 EB

 


 

 

6. 컴퓨터의 성능

 

컴퓨터의 속도

 

 

Hz 1초에 몇번이나 반복하는 지를 나타내는 단위

G Giga의 약자인데 10억을 의미

 

3.6 GHz → 1초에 36억번 반복

HZ가 클수록 CPU가 더 빠른 템포로 움직임

 

 

 

MIPS 시스템 (CPU 설계 방식 중 하나)

LOAD 5cycle

STORE 4cycle

 

 

CPU의 성능 지표

 

Clock Speed (Clock Rate)

• 앞서 배운 것과 같이, 1초에 실행할 수 있는 사이클의 개수

 

CPI (Cycles per instruction) 낮아야좋음

• 한 Instruction이 평균적으로 몇 사이클만에 완료되는지를 나타내는 지표

 

IPC (Instructions per cycle) 높아야 좋음

• 이 CPI를 뒤집으면 IPC

 

IPS (Instructions per second)

• Clock speed는 클럭이 얼마나 빨리 움직이는지를 알려주고, IPC는 그 하나의 클럭에 얼마나 많은 코드를 얼마나 소화할 수 있는지 알려줌

 

 

 

 

멀티 코어 (Multi-Core)

• 듀얼 코어라고 하는 건, CPU 하나 안에, 사실상 두 개의 CPU가 따로 따로 동작하도록 만든 것

 

대부분 멀티 코어를 사용하기 때문에 무조건 클럭 스피드만 높다고 빠른 건 아니다. 예를 들어, 듀얼 코어 4.2GHz와 쿼드 코어 3.5GHz를 비교하면, 쿼드 코어가 훨씬 빠름.

 

 

 

💡CPU의 성능을 결정하는 중요한 포인트

  • 클럭이 얼마나 빠르냐 (Clock Speed),
  • 한 클럭에 얼마나 많은 일을 할 수 있느냐 (CPI, IPC, IPS),
  • 몇 개의 코어가 있느냐 (멀티 코어)

 

프로그램을 빠르게 실행하는 두 가지 방법

 

 

컴퓨터 프로그램이 실행되는 시간은 두 가지에 의해 결정

  1. 그 프로그램에 얼마나 많은 Instruction이 있는가
  2. Instruction을 실행하는 속도가 얼마나 빠른가

 

 

성능향상

 

 

프로그램의 속도를 올리는 법

 

1. 실행코드(머신코드)를 짧게

 

머신코드에 영향을 미치는 3가지 → 언어, 알고리즘. 컴파일러

instruction의 개수, 실행코드의 길이를 달라지게 할 수 있는 요소

 

2. 머신코드 실행속도를 빠르게

 

 

cpu의 성능 차례

  1. 파이프라인 → 일을 동시에 진행
  2. 예측 → 미리 필요한 데이터를 예측 (캐시메모리를 사용한다)

인텔의 공동 설립자인 고든 무어가 1965년에 "반도체의 밀도는 2년마다 약 2배씩 증가할 것"이라는 예측을 한 것이 무어의 법칙

728x90