Sad Puppy 3 [묘공단] Go언어 기초 1장 컴퓨터 원리 :: 개발자 아지트

트랜지스터(삼 석, 다리 세게 달리고 가운데가 긺. )

  • 컴퓨터의 가장 기본적인 요소임
  • 컴퓨터는 수천, 수억 개의 수많은 트랜지스터들로 만들어져 있음
  • CPU는 트랜지스터 덩어리임
  • 컴퓨터에서는 트랜지스터를 전기만 가지고 스위치의 역할을 하는 것으로 쓴다.
  • 전기적 신호로 작동함. (진짜 스위치는 물리적인 힘으로 껏다 켰다 해야함.)
  • 1 비트는 하나의 트랜지스터라고 보면 된다.

발광 다이오드= LED

  • 성질이 다른 두 개의 실리콘을 겹쳐서 N,P다이오드를 만들어서 건전지를 달면 전기가 흘러서 불이 들어옴
  • 발광 다이오드에서 좀더 발전해서 트랜지스터가 된다.

 

트랜지스터로 논리소자를 만들 수 있다.

 

BOOL 대수 - AND, OR, NOT

 

도체 - 전기가 흐르는 물질 - 구리, 철, 금, 물, 몸

부도체 - 그릇, 세라믹, 돌

 

부도체는 저항이 무한대에 가깝다.

도체는 저항이 매우 작다. = 0에 가깝다.

 

반도체는 도체로 됐다가 부도체로 됐다가 하는 애다.


트랜지스터 → 논리소자 → 계산기 → 컴퓨터

 

컴퓨터(CPU) ← 트랜지스터 ← 실리콘 ← 규소 ← 모래

 

컴퓨터를 발명해낸 사람들은 아래와 같다. 

 

튜링

  업적

  • 튜링테스트(AI를 테스트 하는 기법)
  • 튜링 기계 (상상 속의 기계)
    • 한줄씩 명령을 수행하는 기계가 있으면 연산을 수행하기 좋겠다 라는 생각을 했다. 

폰노이만

  업적

  • 우주 최강의 두뇌 소유자
  • 폰 노이만 기계
    • 전자계산기, 전자시계, 네비게이션과 컴퓨터는 차이가 있다.
    • 컴퓨터는 프로그램을 교체하면서 모든걸 다 할 수 있었다.
    • 튜링 기계랑 비슷한 기계를 만듦
    • 초창기 컴퓨터의 구조와 비슷함


컴퓨터란, 명령을 하나씩 순서대로 수행하는 기계다.

명령: Add, Sub, Div, etc,,

CPU의 각 코어는 코어마다 명령을 하나씩 수행함

 

IP(instruction point)

 

프로그램은 어떤 명령을 어떤 순서로 수행할 것인지 적어놓은 것을 말한다.

 

컴퓨터는 1, 0밖에 모르고 add 등 밖에 못한다.

 

인간이 표현하는 그림, 음악, 문자는 숫자로 표현 가능하다.

 

A=65, a=97 , , , (ASCII-255개 문자에 코드)

 

1byte = 8bit 2^8은 256임

0-255 개 만 표현할 수 있다.

 

영문자만 표현할 수는 없어서 확장으로 UNICode 2byte 를 많이 사용하고 있음.

 

이미지는 모니터의 1080*720은 가로에 1080픽셀이 있다.

 

색 → 숫자로 RGB 로 표현할 수 있음

 

점하나에 LED3개가 묶여있다. RGB(LED)

 

R - 255, G - 255, B - 255, A - 투명도

4byte숫자를 쭉 나열하면 화면을 보여줄 수 있다.

 

소리는 주파수에 따른 세기를 통해 나타낼 수 있다.

모든 숫자는 이진수로 표현할 수 있다.

 


 

하드웨어란?

비유

요리할 때 레시피가 필요하다. → 요리하는 방법이 적혀있다. ⇒ 프로그램이다.

요리 재료가 필요하다. → 마트가 필요함→ 마트에 버스타고 간다.

 

이때 마트는 하드디스크임(HDD), 버스는 진짜 버스임

 

마트에서 사와서 냉장고에 재료를 넣는다. (메모리) 마트보다 가까움

 

요리준비 끝.

 

필요한 만큼 마늘과 고기를 꺼내서 도마 위에 놓는다. = CACHE

이렇게 하는 이유는 효율적이기 때문이다.

이때, 도마는 Register 이다. (값을 딱 준비 시켜놓는 자리)

 

CPU는 요리하는 사람.

 

요리하는 도중에 마트에 가는 비효율적이고 시간이 오래 걸린다.

메모리에 가기도 그렇고 그래서 캐시를 쓴다.

 


 

컴퓨터 성능 3GHZ = 주파수

1초당 연산을 3G만큼 한다.

1초에 3 * 1024(GB) *. 1024(MB) *. 1024(KB) 만큼의 연산을 한다.

 

해당 글은 [Tucker의 Go 언어 프로그래밍] 1장을 읽고 공부한 글입니다. 

+ Recent posts