1. 컴퓨터 구조에 대한 인트로.

왜 하드웨어 배워야 되는가?

컴퓨터 기본 구조를 알아야 정확하고 깔끔한 코드를 작성할 수 있다.

컴퓨터란 무엇인가?

compute(연산하다) + er(하는 사람,도구)
고정된 연산만 제공하면 Calculator
연산을 작성하고 저장하기도 하면 Computer

컴퓨터는 3가지로 나뉜다


입출력장치
CPU : 연산(program counter, arithmetic logic unit으로 나뉨)
Memory : 연산 내용 기록

CPU 구성

ALU : 실제 프로그램을 연산(논리, 산술 연산)
Control Unit : CPU가 처리해야 할 명령어 해석 후 적절한 신호 발생
Bus interface : 다른 하드웨어와 데이터 주고 받는 통로
레지스터 : cpu가 요청처리하는데 필요한 데이터를 일시 저장하는 기억장치
하드디스크->RAM->CPU 이렇게 데이터를 가져오는 거보다 레지스터에서 바로 가져오는게 훨씬 빠르다!

  • 캐시 메모리 : 메모리가 cpu보다 느려서 메모리에서 자주 쓰는걸 캐시에 저장해서 cpu가 빠르게 사용(병목현상 해결)

아키텍쳐 이름의 의미

8비트가 한번에 집어넣을 수 있으면 8비트!
32비트 기반 프로세서를 x86이라고 부르는데, 80386처럼 뒤에 86이 고정적으로 붙는 프로세스를 의미.
64비트 프로세스는 AMD사가 지배하면서 AMD64 구조라고 이름을 붙이게 됨
여기서 비트는 명령을 한번에 처리할 수 있는 레지스터의 비트 수!

명령어 세트

CISC
복잡한 명령구조
어드레싱에 강점(인덱싱)
전력소모가 큼(고성능 컴퓨팅에 사용)
Intel x86, AMD64…

RISC
간단한 명령어
메모리 접근 횟수 적음
저전력 프로세싱에 사용
SPARC, ARM(모바일)

메모리

정보를 저장하는 공간 & 코드+데이터

RAM(random access memory 임의접근 메모리)
자유롭게 읽고 쓰는 주기억장치
메모리 주소로 위치에 접근
어떤 위치든 같은 시간에 접근(random access, 임의 접근, 무작위가 아니라 어느 위치든 같은 속도로 접근가능하다는 뜻)
휘발성 메모리.(컴퓨터 끄면 다 사라짐.)

ROM(read only memory)
전원이 끊겨도 정보를 유지하는 주기억장치
비싸거나 느려서 안정적인 정보를 저장할 때 사용.
BIOS, OS, Firmware 정보 저장에 사용

보조기억장치
하드디스크나 SSD같이 대용량의 데이터를 저장하는 곳.
속도가 느리지만 저렴하고 대용량의 데이터를 저장할 수 있다.

정보와 데이터의 차이
정보 : 가공된 데이터
데이터 : 정보를 만들기 위해 필요한 자료, 정보를 처리할 때 좀 더 편리한 형태로 바뀐 자료(이진, 디지털), 정보의 원재료

데이터 표현 및 단위
수치 데이터 : 연산용 데이터
비수치 데이터 : 입출력용 데이터(문자가 대표적)
특수문자 : 입출력/연산용 데이터(암호를 위한 특수문자 등…)
비트-바이트-킬로바이트-메가바이트-기가바이트…

폰노이만 구조


저장소에 저장된 코드를 메모리로 복사해서 cpu에서 실행
폰노이만 이전 : 다른 작업할때마다 하드웨어를 재설계!
폰노이만 이후 : 소프트웨어만 교체하면 됨!!

Share