-
0x00.컴퓨터 구조 개요0x.컴퓨터 구조 2019. 1. 10. 16:51
컴퓨터의 종류
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/ 실행시간 (실행 시간이 짧을수록 성능 높음)
-클럭 시간, 응답 시간, 경과 시간으로 판단
-태스크가 끝나기 까지의 총 시간(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
-CPU cycle = 10 * 2 * 10^9 * (cycle / second)
-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
-CPU clock cycle = I * 1.2
-CPU time = I*1.2 * 500 = 600*I
3. 명령어 개수의 처리 속도에 기반한 성능
-CPU time = Instruction count * CPI * clock cycle time
2. 시간에 기반한 성능
-클록 사이클 주기로 계산
-example 10 seconds running time, 2GHZ clock
-CPI : clock cycle per instruction ( average )
-500ps, CPI of 1.2
퍼포먼스 측정의 방법
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. 명령어의 종류에 따라 실제 소요되는 클럭이 다르기 때문에 정확한 측정이 불가능함
댓글