책/컴퓨터 구조

컴퓨터 구조 Ch01_"Computer Abstractions and Technology"

RyoTTa 2020. 11. 17. 19:48
반응형

Chapter 1. 컴퓨터 추상화 및 관련기술

 

1.1 서론

컴퓨터 응용 분야의 종류와 그 특성

  개인용 컴퓨터 : 낮은 가격으로 단일 사용자에게 좋은 성능을 제공

  서버 : 대형 작업 수행에 이용, 보통 네트워크를 통해 접근

  임베디드 컴퓨터 : 최소한의 성능, 제한된 가격과 소모전력

 

  Post-PC 시대

  PC에서 PMD(Personal mobile device)로의 변화

  Server에서 크라우드 컴퓨팅으로의 변화

   

1.2 컴퓨터 구조 분야의 8가지 위대한 아이디어

  Moore의 법칙을 고려한 설계

  Gordon Moore의 법칙 : 매 18 ~ 24 개월 마다 칩에 집적되는 소자의 수가 2배가 된다.

 

  설계를 단순화하는 추상화

  여러가지 계층에서 설계를 특징짓는 추상화를 사용,

  즉 하위 수준의 상세한 사항을 보이지 않게 함으로 상위 수준 모델을 단순화 가능

 

 자주 생기는 일을 빠르게

  드물게 생기는 일을 최적화 하는 것보다 자주 생기는 일을 최적화 함으로 성능 개선에 많은 도움

 

 병렬성을 통한 성능 개선

  연산을 병렬적으로 수행하여 성능향상을 최대화

 

 파이프라이닝을 통한 성능 개선

  컴퓨터 구조에서 많이 볼 수 있는 병렬성의 특별한 형태

 

  예측을 통한 성능 개선

  예측을 잘못해 복구하는 비용이 저렴하며, 예측 성공 확률이 높을 경우 가능

 

  메모리 계층구조

  상충되는 메모리 요구를 계층구조를 사용해 해결

  최상위 계층 : 높은 비용, 높은 성능, 낮은 용량

  최하위 계층 : 낮은 비용, 낮은 성능, 높은 용량

 

 여유분을 이용한 신용도 개선

  장애를 감지하고 장애가 난 소자를 대치할 수 있도록 여유분을 준비하여 신용도 개선

 

1.3 프로그램 밑의 세계

 응용프로그램의 복잡한 응용에서 단순한 명령어로 변환되는 수준의 작업

 Hardware - Systems software - Application software 단순화된 3단계의 추상화

  System software : 운영체제, 컴파일러 

 

 상위 수준 언어에서 기계어까지

  어셈블러 : 어셈블리 언어를 이진수 명령어로 바꾸어 주는것

  ADD A, B -> (어셈블러) -> 1000110010100000

 

  High-level Laguage -> (컴파일러) -> Assembly Language -> (어셈블러) ->Binary Machine Language

  어셈블러를 제외하고 컴파일러가 직접 기계어를 생성하기도 한다.

 

  상위 수준 언어의 중요한 장점

   프로그래머가 자연스러운 언어를 통해 생각 가능

   프로그래머의 생산성 증대

 

1.4 케이스를 열고

 모든 컴퓨터의 하드웨어는 데이터 입력, 출력, 처리, 저장을 수행

 *컴퓨터의 고전적 구성 요소 : 입력, 출력, 메모리, 데이터패스, 제어유닛

 

 디스플레이

  LCD : 백라이트를 사용하며 해당 빛을 액체 상태의 막대모양 분자를 사용해 굴절시킨다

  각 화상은 화소의 행렬로 구성되며 이는 비트맵(Bitmap)이라 부르는 비트들의 행렬로 표현된다.

  프레임 버퍼(Frame buffer) : 그래픽 하드웨어는 스크린에 표시될 화상을 프레임 버퍼에 저장하였다가 재생하게 된다.

 

 Apple iPad 2의 예시

  아이패드2의 A5 패키지 안에는 1GHz로 구종되는 2개의 ARM 프로세서가 존재 (=CPU)

  프로세서는 논리적으로 데이터패스와 제어 유닛의 두부분으로 구성된다.

   데이터패스는 연산을 수행하고, 제어유닛은 명령어가 뜻하는 바에 따라 데이터패스, 메모리, 입출력 장치의 일을 지시

  2Gibit 메모리 칩 2개가 존재(512MiB)

   메모리는 DRAM 칩으로 구성되어 있는데 DRAM은 자기 테이프와같은 순차접근메모리와는 반대로 메모리의

   어떤 부분을 읽든지 같은 시간이 걸린다는 것을 의미한다.

  프로세서 내부에는 또다른 종류의 캐시메모리가 존재

   캐시메모리는 DRAM의 버퍼 역할을 하는 작고 빠른 메모리

   SRAM이라는 다른 메모리 기술을 이용한다.

  하드웨어와 최하위 소프트웨어 간의 인터페이스를 명령어 집합 구조 및 Architecture라 한다.

 

 데이터의 안전한 저장소

  Volatile Memory(휘발성 메모리) : 전원이 없으면 모든 저장된것들이 지워진다. 메인 메모리, 1차 메모리라 한다.

  Non-volatile Memory(비휘발성 메모리) : 전원이 없어도 정보들이 저장되어있다. 보조기억장치라 한다.

 

1.5 프로세서와 메모리 생산 기술

 집적회로의 집적도는 매우 일정한 속도로 증가하고 있다. 1977년 이래 3년에 4배씩 증가하여, 35년 16,000 배로 증가

 집적회로는 수많은 트랜지스터를 칩 하나에 집적 시킨것이다.

 실리콘결정괴 -> (0.1인치 이하절단) -> 웨이퍼 -> (공정, 절단) -> 다이(칩)

  수율 : 정상 다이 / 웨이퍼 상의 전체 다이 비율

 다이 원가 = 웨이퍼당 가격 / (웨이퍼당 다이의 수 * 수율)

 

1.6 성능

 시스템의 성능을 측정하기위한 방법 및 척도

 

 성능의 정의

  성능 = 1/실행시간

  성능X > 성능Y

  실행시간Y > 실행시간X

  성능X/성능Y = 실행시간Y/실행시간X = n , X가 Y보다 n배 빠르다

 

 성능의 측정

  CPU 실행시간 : 특정 작업의 실행을 위해 CPU가 소비한 실제 시간

  클럭사이클 : 하드웨어 이벤트가 발생하는 시점을 결정하는 클럭의 시간 간격

  클럭주기 : 한 클럭 사이클에 걸리는 시간

  클럭속도 : 초당 클럭 개수 (클럭주기와 역수 관계)

 

 CPU 성능과 성능 인자

  프로그램 CPU 실행시간 = 프로그램의 CPU 클럭 사이클수 X 클럭 사이클 시간

                                 = 프로그램의 CPU 클럭 사이클 수 / 클럭 속도

 

 명령어 성능

  CPU 클럭 사이클 수 = 명령어 수 X 명령어당 평균 클럭 사이클 수

  명령어당 클럭 사이클 수 = Clock cycles per instruction(CPI)

  CPI는 프로그램이 실행한 모든 명령어에 대해 평균한 값을 사용, 명령어 집합 구조가 같으면 프로그램에 필요한

   명령어 수가 동일하므로, CPI는 서로 다른 구현을 비교하는 한가지 기준이 될 수 있다.

 

 고전적인 CPU성능식

  CPU 시간 = 명령어 개수 X CPI X 클럭 사이클 시간

  CPU 시간 = (명령어 개수 X CPI) / 클럭 속도

 

1.7 전력 장벽

 CPU가 수십년간 발전하면서 클럭속도와 소비전력이 상당히 증가

 

1.8 단일 프로세서에서 멀티 프로세서로의 변화

 전력 한계문제로 인해 마이크로프로세서에서 "멀티코어" 마이크로프로세서로 변화

  병렬 프로그래밍은 프로그래밍의 어려움을 가속화, 각 프로세서마다 일을 동시에 할 수 있도록 스케쥴링 필요

 

1.10 오류와 함정

 오류 : 많은 사람들이 공통적으로 잘못 알고있는 부분

 함정 : 흔히 저지르기 쉬운 실수

 

 함정 : 컴퓨터의 한 부분만 개선하고 그 개선된 양에 비례해서 전체 성능이 좋아지리라고 기대하는 것

  Amdahl의 법칙에 의해 성능을 개선할 수 있는지 확인 가능하다.

 오류 : 이용률이 낮은 컴퓨터는 전력 소모가 적다.

  컴퓨터의 부하가 작을 때에도 최대 전력의 상당 부분을 사용하고 있기 때문

 함정 : 성능에 초점을 둔 설계와 에너지 효율에 초점을 둔 설계는 서로 무관하다.

  에너지를 더 소비하더라도 실행시간을 줄여 전체 에너지를 절약하기도 한다.

 함정 : 성능식의 일부분을 성능의 척도로 사용하는 것

  ex) MIPS = 명령어 개수  / 실행시간 * 10^6

       MIPS는 단순히 명령어를 실행하는 속도를 나타낼뿐, 그 명령어 하나가 얼마나 많은 일을 수행하는지 반영하지

       못한다. 명령어 집합이 다르면 동일 프로그램이더라도 명령어 개수가 달라진다. 

 

1.11 결론

 추상화, 명령어 집합구조, Moore의 법칙, 메모리 계층구조, 병렬성

반응형