본문 바로가기
Alchitecture

컴퓨터 구조의 8가지 기막힌 아이디어와 프로그램

by 보라코끼리 2021. 12. 28.
728x90

- 본 문서는 KOCW 에 공개된 컴퓨터구조 - 영남대학교 최규상 교수님의 2015년도 2학기 강의를 보고 정리한 내용입니다.

컴퓨터  혁명

  • 무어의 법칙 (Moore's Law)
    • 컴퓨터를 발전시킨 가장 큰 원동력 -> 무어의 법칙으로 인해 컴퓨터 기술이 급격하게 발전하였다.
  • 자동차의 컴퓨터, 스마트폰, 인간 유전자(Human genome project), World Wide Web, Search Engines 등과 같이 기존에 존재하지 않았던 새로운 어플리케이션들이 파생되었다.
  • 모든 것이 컴퓨터화되고 있다. ex) IoT

 

무어의 법칙

  • 특정한 싱글 칩에 들어가는 트랜지스터의 수는 매 2년마다 2배씩 증가할 것이다!
  • 실제로 2년마다 2배 이상 증가 
  • 증가한 트랜지스터를 이용하여 컴퓨터의 기술이 급격하게 발전할 수 있었다.

 

컴퓨터의 분류

  • 개인용 컴퓨터 (Personal computers)
    • 일반적인 용도, 다양한 소프트웨어
    • 가격과 퍼포먼스에 민감 
  • 회사 데이터 처리용 컴퓨터 (Server computers)
    • High capacity (용량), performance (수행), reliability (신뢰도)
    • 보통 pc에 비해 고가, 대용량, 고성능
  • 슈퍼 컴퓨터 (Super computers)
    • 고급 과학 및 엔지니어링 계산에 사용
    • 아주 고가이며 전력 소모가 많고 유지 비용이 많이 든다.
    • 기상청, 국방과학연구소 등에서 사용한다.
  • 임베디드 컴퓨터 (Embedded computers)
    • 최근에 많이 보급되고 있다.
    • 임베디드 : 내장된, 하나에 컴포넌트된, 부품이 된 
    • 임베디드 시스템 : 큰 시스템의 컴퓨터가 하나의 컴포넌트로 구성된 시스템
    • 적은 전력소모, 저성능, 적은 비용
    • ex) 스마트폰, 태블릿 pc

 

컴퓨터 기본 단위

  • 8bit = 1byte
  • Kilobyte 
    • 2^10 or 1,024 bytes
  • Megabyte
    • 2^20 or 1,048,576 bytes
    • 10^6 or 1,000,000 bytes
  • Gigabyte
    • 2^30 or 1,073,741,824 bytes
    • 10^9 or 1,000,000,000 bytes
  • Terabyte
    • 2^40 or 1,099,511,627,776 bytes
    • 10^12 or 1,000,000,000,000 bytes
  • Petabyte
    • 2^50 or 1024 terabytes
    • 10^15 or 1,000,000,000,000,000 bytes
  • Exabyte
    • 2^60 or 1024 petabytes
    • 10^18 or 1,000,000,000,000,000,000 bytes
  • 저장장치에서는 2의 제곱 형태로 많이 표현
  • 네트워크에서는 10의 제곱 형태로 많이 표현

 

PostPc 시대

  • Personal Mobile Device (PMD)
    • 배터리로 동작
    • 인터넷에 연결
    • 수십달러 ~ 수백 달러
    • ex) 스마트폰, 태블릿 pc
  • Cloud computing
    • Warehouse Scale Computers (WSC) : 특정한 데이터들을 처리해주는 기능이 하나의 서버에서 제공되는 컴퓨터
    • Software as Service (SaaS) : 소프트웨어를 서비스로 제공받을 수 있다.
    • 유저 인터페이스 부분은 PMD에서, 실행 부분은 Cloud 에서 제공
    • ex) 아마존, 구글

 

성능

  • 알고리즘
    • 연산 (operation)의 수로 정의
    • 같은 성능을 가지는 두 알고리즘에서는 연산의 수가 적은 것이 더 성능이 좋다.
  • 프로그래밍 언어, 컴파일러, 아키텍처
    • 명령의 수로 정의
  • 프로세서와 메모리 시스템
    • 명령어 실행 속도로 정의 
    • 단위시간 당 명령어 실행 횟수
  • I/O system (including OS)
    • 연산 실행 속도로 정의
    • 단위시간 당 연산 실행 횟수

 

컴퓨터 구조의 8가지 기막힌 아이디어

  • 무어의 법칙 (Moore's Law)
  • 추상화 (abstraction) : 복잡한 문제의 단순화
  • 일반적인 케이스를 빠르게 만든다. (Make the common case fast)
  • 유사성 (parallelism) 을 통해 성능 향상
  • 파이프라이닝 (pipelining) 을 통해 성능 향상
  • 예측 (prediction) 을 통해 성능 향상
  • 메모리 체계 (hierarchy)
  • 중복 (redundancy) 을 통해 의존 (dependability) 향상

 

프로그램

  • 어플리케이션 소프트웨어
    • 일반적인 유저가 사용하는 소프트웨어
    • ex) 웹 브라우저, 워드, 엑셀
  • 시스템 소프트웨어
    • 컴퓨터가 실행되는데 가장 기본적인 소프트웨어
    • ex) 운영체제 (어플리케이션이 실행되는 서비스를 제공), 컴파일러(고급 언어를 기계언어로 번역) 
  • 하드웨어
    • 물리적인 구조
    • ex) 프로세서 (Processor), 메모리 (memory), 입출력 컨트롤러 (I/O controllers)

 

프로그램 코드의 레벨 (Levels of Program Code)

  • 고급 언어 (High-level language)
    • ex) c 언어, 자바
  • 어셈블리 언어
    • 고급 언어를 컴파일러를 통해 번역한 언어
    • 기계 언어의 텍스트화
    • 기계 언어를 사람이 이해할 수 있도록 번역한 것
  • 기계 언어
    • 어셈블리 언어를 어셈블러를 통해 번역한 언어
    • 바이너리 코드 (Binary digits)
    • 0과 1의 조합으로 이루어져 있다.

 

728x90