1-1 컴퓨터 구조

서진·2023년 4월 14일
0

컴퓨터구조

목록 보기
1/8

컴퓨터의 6가지 종류

  1. PC (Personal Computers)

  2. server

여러개의 컴퓨터 그룹으로 이루어짐
여러사람이 동시에 접근 가능 (신뢰성 dependability가 강조됨)
직접적으로 접속 가능하지만 일반적으로 네트워크를 통해 접근
  1. Supercomputers
  2. embedded computers
시스템 내부, 다른 디바이스 안에 들어가는 작은 컴퓨터
특정 function에만 동작하도록 매핑되어 있음
리얼타임성, 저전력, 적은 비용 중요
실패에 대한 관용치가 낮아야 함 (포용의 범위가 작아야 함)
  1. PostPC (최근에 나온 pc 종류) - PMD (Personal Mobile Device)
핸드폰, 테블릿 등 인터넷에 연결되어 있음
소프트웨어가 다운로딩 됨 (구글스토어, 앱스토어)
  1. PostPC - Colud Computing
아마존, 구글, 구글 메일 등
서버를 엄청 많이 모아서 인터넷을 통해서 서비스를 제공
ex. SaaS - 소프트웨어를 서비스의 하나의 종류로 제공

컴퓨터의 5가지 component

1. input

2. output

3. memory (2)

  • 메인 메모리 (=휘발성 메모리, volatile memory)
primary memory - 프로그램을 수행하는 동안 프로그램이 실제로 가지고 있는 것 
			   - 프로그램이 꺼지면 메인메모리 상에서 없어짐

EX) DRAM (Dynamic Random Access Memory)
데이터를 유지하기 위해서 주기적으로 refresh 한다 -> 전력 공급이 필요
즉, 전력이 끊어지면 데이터가 다 날아가게 된다
💡 방금 컴퓨터가 꺼졌다는 시험문제가 나오면 DRAM에는 아무 데이터가 없음을 알아야 함
random access이므로 메모리 전체에서 아무데나 접근 가능하다.
  • secondary 메모리 (=비휘발성 메모리, non-volatile memory)
pc를 껐을 때 값을 저장해두는 공간으로 전원이 꺼져도 날아가지 않음

EX 1) flash memory : 핸드폰, 노트북 등에 끼워서 많이 씀. DRAM보다 느리지만 하드디스크보다 빠르다

EX 2) HDD : 플래터 안에 저장되어 있음. 원판을 돌면서 데이터를 저장하고 로드하여 다른 메모리들 보다 속도가 느린편.

4. processor - datapath

-> 3장 덧셈, 뺄셈, 곱셈, 나눗셈

5. processor - control

-> 4장 명령어 실제로 제어하는 부분


  • applications software : C나 JAVA등으로 작성된 소프트웨어
  • Systems software
    - OS : 하드웨어와 application software를 연결
    - Compiler : high level language -> binary code
  • Hardware : 프로세서, 메모리, io controller

프로그램 코드 레벨

  1. high-level langauge
    : abstract가 가장 많이 된 언어 (C, JAVA, Python ...)
  2. assembly language
    : compiler에 의해 high level이 assembly로 바뀜. 아직은 컴퓨터가 이해할 수 없고, 조금 더 친숙한 형태의 명령어 폼으로 구성됨
  3. assembler
    : assembler에 의해 assembly가 binary code로 바뀜. 컴퓨터가 이해할 수 있음

performance를 이해하는데 중요한 컨셉 4가지

  1. 알고리즘 : 수행되는 operation의 수를 결정
  2. 프로그램 언어와 컴파일러 : python은 느리고 c++이 빠른..
  3. processor : 명령어를 얼마나 빨리 수행하는지
  4. IO : IO operation을 얼마나 빨리 수행하는지

Relative performance
transistor : 스위치같은 것. 컴퓨터는 이해할 수 있는 언어가 바이너리 (1 또는 0) 이므로 트랜지스터 하나당 비트 하나를 이해할 수 있음. 얼마나 많은 비트를 한 번에 표현하는지 결정하므로 performance에 중요함.

profile
🫧 ☁️ 🌙 👩🏻•💻 🌿 🐱 🖱 🍟 🚀 ⭐️ 🧸 🍀 💗

0개의 댓글