Chapter 1. 컴퓨터구조 개요

MoonLight·2021년 9월 5일
0

컴퓨터구조

목록 보기
1/6

The Computer Revolution (컴퓨터 혁명)

We're gonna talk about progress in computer technology

Underpinned by Moore's Law

  • 무어의 법칙이란, 반도체 칩의 성능이 2년마다 두배씩 좋아지는것을 의미한다. 1965년도부터 지금까지 반도체 칩에 들어가는 트랜지스터의 숫자는 2년마다 두배 혹은 그 이상씩 증가하였다.
  • Makes novel applications feasible (새로운 기능을 실현가능하게 하였다.)

computer everywhere

  • Computers in automobiles
  • Cell Phones
  • Human genome project
  • World Wide Web
  • Search Engines
    • Computers are pervasive (어느곳곳이든 다 컴퓨터가 있다.)

컴퓨터를 발전시킨 8가지 위대한 아이디어


1. Design for Moore's Law (무어의 법칙을 고려한 설계)

  • 위에서 무어의 법칙을 설명하였는데 설명을 하자면 컴퓨터 설계에는 수년이 걸리기때문에 그 기간동안 반도체 칩속의 소자 수는 2배에서 4배가 되고 성능은 상승할것이다 라는 아이디어.

2. Use abstraction to simplify desgin (설계를 단순화 하는 추상화)

  • 컴퓨터 설계자나 프로그래머는 무어의 법칙의 따라 자원의 수가 급격히 증가함으로 설계 시간또한 증가하는것을 방지하기위한 기술을 개발해야됬다. 생산성을 높이는 핵심 기술중 하나인 추상화를 사용한다는 것. 하위수준의 상세한 기술을 보이지 않게 함으로서 상위 수준 모델을 단순화하는것이 추상화.

3. Make the common case fast (자주 생기는 일을 빠르게)

  • 자주 발생하는 일을 빠르게 만드는것이 드물게 발생하는 일을 빠르고 최적화 하는것보다 성능개선에 큰 도움을 준다. 자주 생기는 일은 단순화 하여 성능을 개선하기 쉬운 경우가 많다.

4. Performance via parallelism (병렬성을 통한 성능 개선)

  • 설계자들은 작업을 병렬적으로 수행하여 성능을 높이는 설계를 했다. 하나의 일을 처리하고 다음의 일을 처리하는것보다 하나의 일을 처리하는 동시에 다른 일을 함께 처리하는 병렬식의 방식을 통해 혁신적인 발전을 해왔다.

5. Performance via pipelining (파이프라이닝을 통한 성능 개선)

  • 파이프 라이닝은 컴퓨터 구조에서 수시로 볼 수 있는 병렬성의 특별한 한 형태이다. 예를 들자면, 소방차가 없는 시대에 누군가 지른 불을 끄기 위해 사람들이 길게 늘어서서 양동이로 물을 나르는것과 비교할수있다. 이렇게 인간 사슬을 이루는 방법이 각각이 양동이를 들고 왔다갔다 하는것보다 훨씬 빠르다.

6. Performance via Prediction (예측을 통한 성능 개선)

  • 예측이 매우 좋은 아이디어가 될수있다. 예측을 잘못해서 이를 복구하는 비용이 크지않고, 예측의 성공률이 비교적 높은경우에는 예측을 해서 미리 작업을 수행하는것이 평균적으로 빠를수있다.

7. Hierarchy of memories (메모리 계층구조)

  • 컴퓨터 프로그래머들은 빠르고 큰 저렴한 메모리를 원한다. 메모리의 속도가 성능을 좌우하고, 메모리의 크기가 풀수있는 문제의 크기를 제한하기 때문이다. 최상위 계층에는 비트당 가격이 제일 비싸지만 작고 빠른 메모리를 사용. 최하위 계층에는 비트당 가격이 싸지만 느리고 큰 메모리를 사용한다. 캐시 메모리를 사용하면 프로그래머에게 최상위 게층만큼 빠르고 최하위 계층만큼 크면서 저렴한 메인 메모리가 있는것처럼 보이게 한다.

8. Dependability via redundancy (여유분을 이용한 신용도 개선)

  • 컴퓨터는 당연히, 빠르기만 해서는 안되고 신뢰할 수 있어야 한다. 모든 물리적 소자는 오류나 장애가 발생할수있으므로, 그것을 감지하고 문제 소자를 대체할 수 있는 여유분을 준비하여 신용도를 개선할 수 있다. 자동차축 양쪽에 비상 타이어를 장착하여 타이어가 펑크가 나도 운전을 지속할 수 있도록 하는 것처럼 말이다.

컴퓨터의 클래스

  • Personal computer (개인용도 컴퓨터) : General Use

  • Server Computer (서버 컴퓨터) : Network based / High Capacity, performance, reliability ( 네트워크기반에 높은 생산능력, 퍼포먼스, 의존성등등 )

  • Super Computers ( 슈퍼컴퓨터) : High-end scientific and enginnering calculation (과학적 혹은 공학적 계산기로 유용하게 쓰임)

  • Embedded Computers (임베디드 시스템) : Stringent power/ performance/ cost constraint (기계들속에 있는 내장형 장치)

Post PC Era

  • Personal Mobile Device (PMD) : 핸드폰

  • Cloud Computing : 클라우드기반 컴퓨팅 서비스 (WSC SaaS 아마존 구글 등등...)

Levels of Program Code

  • High Level Language

    • Level of abstraction closer to problem domain (추상화)
    • Provides for productivity and portability (생산성과 휴대성)
  • Assembly Language

    • Textual representation of instruction
    • 기계어와 일대일 대응이되는 컴퓨터 프로그래밍의 저급언어
    • 어셈블러는 니모닉 기호를 opcode로 변환하고 메모리 위치와 기타 존재물에 따라 식별자를 다시 분석함으로서 목적 코드를 만들어낸다.
  • Hardware representation

    • Binary digits (bits) (바이너리 코드)
    • Encoded instructions and data (암호화된 데이터)

Component of a Computer

  • Same components for all kinds of computer ( 다른컴퓨터와 똑같은 구조로 이루어져있다, 데스크탑이던 서버컴퓨터, 임베디드건)

  • Input Output Includes (입출력) -> 네트워크, UI (키보드,마우스, 모니터), 저장소 (하드디스크, CD)

Inside the Processor (CPU)

  • Datapath: performs operations on data

  • Control: sequence datapath, memory,

  • Cache memory

Abstractions (추상화)

  • Abstraction helps us deal with complexity

    • Hide lower-level detail ( 로우 레벨 언어의 디테일을 숨긴다)
      ⏩ 어셈블리나 하드웨어언어 등등
  • Instruction set architecture (ISA)

    • The hardware/software interface
    • 소위말해 아키텍쳐, 하드웨어와 소프트웨어의 인터페이스
    • 명령어 집합 구조이며, 마이크로 프로세서가 인식해서 기능을 이해하고 실행할 수 있는 기계어를 말한다.
    • 소프트웨어에서 하드웨어로 넘어가는 단계에서 중재자 역할을 해주는 것이 바로 ISA.
    • 즉 하드웨어, 소프트웨어의 계층 구도가 있을때에 하드웨어와 운영체제를 이어주는것이 Architecture.
  • Application binary interface (ABI)

    • The ISA plus system software interface
    • ISA와 시스템 소프트웨어 인터페이스가 합해진것
    • 응용 프로그램과 운영체제, 응용 프로그램과 라이브러리 사이에 필요한 저수준의 인터페이스
      (ABI는 API 보다 저수준)
  • Implementation (Microarchitecture)

    • The details underlying and interface
    • 더 낮은 수준에서 보는 인터페이스
    • 마이크로 아키첵쳐는 마이크로 프로그램의 언어들이 통제하는 장치를 말한다.
    • 모든 CPU들 즉 단일 칩 멀티 프로세서나 다중칩 프로세서들은 다음과 같은 단계를 수행하며 프로그램들을 실행한다.
      • 함수를 읽어서, 읽은 함수를 디코딩
      • 함수를 처리해야 하는 연결 데이터를 찾는다
      • 함수를 처리한다
      • 결과 출력을 기록한다

Networks

  • Communication, resource sharing, nonlocal access (커뮤니케이션, 리소스 쉐어링, 무선 접근)

  • Local area network (LAN) : Ethernet (이더넷이라는 로컬서버 (군대를 예를 들수있다)).

  • Wide are network (WAN): the Internet (우리가 흔히 아는 인터넷)

  • Wireless netwrok: WIFI, Bluetooth (와이파이, 블루투스)

Integrated Circuit cost (집적 회로)

  • 전자회로의 집합을 말한다. (컴퓨터의 1세대는 진공관, 2세대는 트랜지스터, 3세대 부터는 집적회로로 만든다)

Response Time and Throughput

  • Response time: How long it takes to do a task (주어진일을 하는대까지 걸리는 시간을 Response time)
  • Throughput (처리량) : total work done per unit time ( 단위 시간당 작업 처리량 / 일을 처리했는데까지 다 끝맞췄을때까지 걸린시간).

응답시간을 빠르게 효과적으로 만들수있는 방법은

  1. 프로세스를 빠른 프로세스로 교체할경우 (훨씬 빨라지고 처리율 증가)

  2. 프로세스를 기존의 것으로 하나 더 추가할경우 (처리율은 좋아지지만, 그것의 개수가 늘어났을뿐, 프로세서 하나의 응답시간에는 차이가 없다.)

profile
hello world :)

0개의 댓글