ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 0x00.컴퓨터 구조 개요
    0x.컴퓨터 구조 2019. 1. 10. 16:51

    0x00.컴퓨터 구조 개요


    컴퓨터의 종류

    • 1. 교통수단

      • -자동차 엔진, 경보 알림, 차량 변경 알림, 사물 인식, 충돌 방지


    • 2. 모바일

      • -휴대폰, 아이패드


    • 3. 유전자 연구

      • -DNA 분석


    • 4. WWW

      • -인터넷


    • 5. 검색 엔진

      • -빅데이터


    Class of Computing Application

    • 1. 개인용 컴퓨터

      • -개인 사용자를 위한 적은 비용 고효율 컴퓨터를 뜻함

      • -서드파티 소프트웨어의 사용을 위한 컴퓨터


    • 2. 서버

      • -큰 어플리케이션이 많은 테스크를 할당하는 경우를 뜻함

      • -가격과 실용성의 범위가 넓음

      • -슈퍼 컴퓨터


    • 3.임베디드

      • -컴퓨터에서 가장 큰 비중을 차지함

      • -자동차, 텔레비전 등에 들어가는 컴퓨터

      • -제한된 리소스를 사용해야 되는 상황에서 특별 제작되어 사용되는 경우가 다수임


    PostPC

    PMD(Personal Mobile Device) 는 모바일과 같이 Wireless를 사용하면서 배터리로 동작하는 컴퓨터를 컴퓨터를 뜻한다.

    클라우드는 아마존이나 구글등의 큰 데이터 센터의 데이터에 의존하는 형태를 의미한다.


    퍼포먼스를 결정하는 요소

    • 1. 알고리즘


    • 2. 프로그래밍 언어, 컴파일러, 아키텍쳐


    • 3. 프로세서와 메모리 구조


    • 4. I/O


    컴퓨터 아키텍처의 8가지 위대한 아이디어

    • 1. 무어의 법칙

      • -직접회로의 성능이 24개월마다 2배로 증가하는 법칙

      • -프로젝트의 사이마다 칩의 리소스가 2배 또는 4배로 향상되었었음

      • -현재는 적용되지 않는 법칙


    • 2. 설계를 단순화하는 추상화

      • -로우-레벨의 디테일을 하이-레벨에서 고려할 필요가 없이 설계

      • -하드웨어와 소프트웨어의 생산성 증가


    • 3. 자주 사용되는 케이스 최적화

      • -자주 사용되는 명령어를 최적화함으로써 퍼포먼스 향상


    • 4. 병렬 작업

      • -퍼포먼스 증가


    • 5. 파이프라이닝

      • -최대한 장비들을 효율성있게 사용하기 위해 대기시간을 최소화 시킴


    • 6. 예측 실행

      • -실행될 확률이 높은 명령을 미리 실행함으로써 성능 향상

      • -이것 때문에 멜트다운 .. 크흠


    • 7. 메모리 계층화

      • -자주 사용하고 용량 작은거 최상위

      • -싸고 용량 큰것은 최하위


    • 8. 여유분으로 신용도 향상

      • -여유분을 보유함으로써 특정한 상황에서 상태 복구등을 통한 성능 향상

      • -버퍼를 통하여 보관


    시스템 소프트웨어의 종류

    • 1. 운영체제(OS)

      • -유저 프로그램과 하드웨어 사이에 존재

      • -인풋과 아웃풋 처리

      • -저장소와 메모리등을 할당

      • -여러 어플리케이션의 자원을 할당 및 제어


    • 2. 컴파일러

      • -핵심적인 기능을 수행함

      • -하이레벨 언어를 로우레벨 언어로 변경해줌


    컴파일러의 변환 과정

    0과 1로 이루어진 2진 단위를 bit라고 하고, 컴퓨터는 bit단위로 명령어를 연산함.


    C언어로 프로그램을 작성한 뒤 컴파일

    A = A+B;


    어셈블리 언어로 변환됨

    add A, B


    다시 0과 1로 변환하며, 해당 옵코드를 컴퓨터가 수행함

    1001100101000000


    프로그래머가 코딩을 하게 되면 다음과 같이 변환이 이루어지는데 해당 작업을 프로그래머가 직접하지 않기 때문에 추상화 과정이라고 함.


    High-Level 언어의 장점

    • 1. 영어와 숫자로 이루어져있기에 프로그래머가 코딩시에 편리함


    • 2. 프로그래머의 생산성이 증가됨


    • 3. 프로그래머가 해당 프로그램이 구동될 컴퓨터의 아키텍쳐에 대하여 깊은 생각을 할 필요가 없음


    2가지 핵심 컴퓨터 구성요소

    • 1. Input

      • -마이크로폰

      • -키보드


    • 2. Output

      • -스피커

      • -계산 결과


    다섯가지 대표적 컴퓨터 구성요소

    • 1. input


    • 2. output


    • 3. memory

      • -cache : DRAM과 같이 버퍼로 사용되는 빠른 메모리

        • ->SRAM : static random access memory -> 빠르지만 비쌈


    • 4. datapath

      • -수학적 계산을 수행


    • 5. control

      • -datapath, memory, I/O devices 제어


    메모리의 특징

    • 1. 휘발성(Volatile)

      • -메인 메모리

      • -DRAM -> flash memory


    • 2. 비휘발성(Non-Volatile)

      • -하드디스크

      • -Chip


    프로세서와 메모리의 공정

    • 1. 트랜지스터

      • -전기로 제어되는 온/오프 스위치

      • -무어의 법칙


    • 2. 집적 회로

      • -트랜지스터들을 하나의 칩에 집적함

      • -공정 과정이 칩의 가격에 영향을 끼침

      • -공정 과정

        • -silicon ingot ( look like giant sausage )

        • -slicer -> blank wafers

        • -20 to 40 processinmg steps -> patterned wafers

        • -wafer tester -> tested wafer

        • -dicer -> tested dies

        • -bond die to package -> packaged dies

        • -part tester -> tested packaged dies -> ship to customers

          • single wafer can have defects, to cope with this is to put many wafers together as a chip


    집적 회로 비용




    성능(Performance)

    • 1. 속도에 기반한 성능

      • -작업 시간 단축 -> 응답시간 단축 -> 성능 향상

      • -시간 단축 -> 실행 시간 단축

      • -성능 = 1/ 실행시간 (실행 시간이 짧을수록 성능 높음)


    • 2. 시간에 기반한 성능

      • -클럭 시간, 응답 시간, 경과 시간으로 판단

      • -태스크가 끝나기 까지의 총 시간(disk/memory/IO access)

      • -CPU time이 실제 소용되는 시간이라고 판단

        • -user CPU time

        • -system CPU time

      • -클록 사이클 주기로 계산

        • -CPU exection time = clock cycle for program * clock cycle time

        • -CPU execution time for program = CPU clock cycle for a program / clock rate

        • -example 10 seconds running time, 2GHZ clock

        •  


          • -CPU cycle = 10 * 2 * 10^9 * (cycle / second)

          -CPI : clock cycle per instruction ( average )

          • -no of instruction for program => I

          • -250 ps, CPI of 2.0

            • -CPU clock cycle = I * 2.0

            • -CPU time = CPU clock cycle * Clock cycle time = I*2.0 * 250 = 500*I

          • -500ps, CPI of 1.2

            • -CPU clock cycle = I * 1.2

            • -CPU time = I*1.2 * 500 = 600*I


    • 3. 명령어 개수의 처리 속도에 기반한 성능

      • -CPU time = Instruction count * CPI * clock cycle time




    퍼포먼스 측정의 방법

    • 1. 똑같은 프로그램을 구동하여 측정


    • 2. 소프트웨어 툴을 사용하여 명령어 처리 개수 등을 카운트


    • 3. 아키텍쳐의 시뮬레이터 사용


    성능에 영향을 주는 요소들

    • 1. 알고리즘

      • -명령어 개수

      • -CPI


    • 2. 프로그래밍 언어

      • -명령어 개수

      • -CPI


    • 3. 컴파일러

      • -명령어 개수

      • -CPI


    • 4. 아키텍쳐의 명령어 구조

      • -명령어 개수

      • -clock rate

      • -CPI


    The Power Wall

    • 1. 클록 성능과 파워는 밀접한 연관이 있어서 같이 증가함. 전압을 낮추는 것에 한계가 있기 때문에 기하급수적으로 성능에 대한 향상이 불가능함.


    • 2. 클록 성능 또는 프로세서의 성능을 키우는 것은 쿨링 작업 때문에 한계가 있음

      • -트랜지스터가 0과 1로 스위칭하는데 사용되는 에너지


    • 3. 이를 보완하기 위해 멀티 프로세스를 통해 생산성을 증가시키는 추세로 바뀜


    • 4. power wall -> decreasing response time -> multi processors ( more on throughput )


    Benchmarking the Intel Core i7

    • 1. SPEC ( system performance evaluation cooperative )

      • -성능 측정을 위해 CPU에 여러가지 형태의 부하를 걸어서 측정함

      • -perl, gcc, mcf , etc.

      • -instruction count, CPI, clock cycle time, execution time, reference time 등을 측정


    암달의 법칙

    • 1. 프로세서를 병렬화하여도 병렬처리가 불가능한 부분은 순차적으로 수행되어야 하기 때문에 성능 향상에 한계가 있음을 나타내는 법칙


    • 2. 프로세서가 2배가 된다고 하더라도 처리률이 2배로 향상되는 것이 아님



    MIPS

    • 1. million instruction per seconds


    • 2. 1초 동안 처리할 수 있는 명령어의 개수를 의미 -> 높으면 성능이 좋음





    • 3. 명령어의 종류에 따라 실제 소요되는 클럭이 다르기 때문에 정확한 측정이 불가능함


    댓글

Designed by Tistory.