컴퓨터구조 및 설계 1강

김민지·2023년 10월 17일

컴퓨터구조

목록 보기
1/3

컴퓨터의 구분
1. personal computers
랩탑, 데스크탑 등
2. server computers
고사양 고성능, 크기가 다양하다.
3. super computers
고가, 특별한 목적으로만 사용된다.
4. embedded computers(임베디드 시스템)
컴퓨터가 시스템 내부에 들어가 있는 것. 저비용, 저성능 등


메모리에서는 2의n승, n byte사용, 통신에서는 10의 n승 씀(상황에 따라 사용 다르게 함)

PostPC Era
Personal Mobile Device(PMD)
Cloud computing
아마존 구글 등 많은 서비스 제공

performance 이해

Algorithm

프로그램언어, 컴파일러, 아키텍쳐

실행하는 명령어 수 결정된다.

프로세서, 메모리 시스템

명령어들을 얼마나 빨리 실행시키는가

I/O 시스템

얼마나 빨리 I/O시스템을 처리하는가

컴퓨터 아키텍쳐를 발전시킨 8가지 아이디어

  1. 추상화를 사용하여 설계 단순화 //1장
  2. 일반적인 경우를 빠르게 만듭니다. //2장
  3. 병렬성을 통한 성능향상 //여러파트에 걸쳐있음
  4. 파이프라이닝을 통한 성능향상 //4장
  5. 예측을 통한 성능향상 //4장
  6. 메모리 계층을 통한 성능향상 //5장
  7. 이중화(redundancy)를 통해 안정성확보 //6장

프로그램
컴파일러: HLL코드를 머신코드로 변환합니다.
운영체제: 서비스 코드(입출력처리, 메모리 관리, 작업예약 및 리소스공유)

프로그램 코드 레벨

High-level: c언어 등등

Assembly: 텍스트 표현

Hardware represemtation: bits(2진수)

inside the Processor
datapath: 데이터를 처리할때 어떤식으로 처리해 나가는지 //4장
control: 각각의 cpu에 있는 컨퍼런스들을 제어 //4장
Cache memory: 빠른 연산을 위해 cpu내부에 SRAM메모리가 있다. //5장

Abstractions 추상화

복잡한 문제를 처리 할때, 문제를 단순화 할 수 있다. (쉽게 이해할 수 있음)
컴구에서의 용도: Instruction set Architecture(ISA)
소프트웨어, 하드웨어 인터페이스
Application binary interface(ISA + 시스템 소프트웨어 인터페이스)
의미: ABI에서 실행된 프로그램들은 다른 컴퓨터에서도 실행이 된다.
Implementation: ISA를 어떻게 실제적으로 구현할 것인가

객체지향 프로그래밍의 네번째 개념으로 "추상"이라는 용어의 사전적 의미는 "사물이나 표상을 어떤 성질, 공통성, 본질에 착안하여 그것을 추출하여 파악하는 것" 이라 정의한다.

여태 상속이 하위 클래스를 정의하는데 상위 클래스를 사용한 것이라 하면, 추상화는 반대라 생각하면 된다
기존 클래스들의 공통적인 요소들을 추출해 불필요한 부분들을 생략하고 객체의 속성 중 중요한 것에만 중점을 두어 개략화(사전 : 대강 추리는 일) 하는 것,상위 클래스를 만들어 내는 것이라 한다.

BJT(Bipolar Junction Transistor)

MOSFET


데이터 저장 장소

main memory: 휘발성 주기억장치(끄면 데이터 손실)
secondary memory: 비휘발성 주기억장치
etc. magnetic disk, 플래시 메모리, Optical disk

ICs 제조과정


공정
수율: wafer당 동작하는 dies의 비율

performance

Response Time and Throughput

Throughput (처리량) : 단위시간당 수행할 수 있는 Operation의 수
Response Time (처리시간) : 한 Operation을 수행하는데 걸리는 시간

Response time을 줄이면 Throughput은 올라간다
하나의 프로세서를 추가한다면: 시간은 동일, 한번에 2가지 일 할 수 있으므로 Throughput증가

상대성능 Measure of Performance


컴퓨터 x는 y보다 빠르다.

1) Elapse Time : Total Response Time, 프로세싱이나 I/O, OS의 오버헤드, 유휴시간 등 모든 실행 시간을 포함하는 Excecution Time을 Elapse Time이라고 한다. 이 Elapse Time은 전체 시스템의 Performance를 결정하게 된다.

2) CPU Time : Processing Time, 오직 프로세싱을 수행하는데 걸린 시간으로 User CPU Time, System CPU Time로 나눌 수 있다. User CPU Time은 유저가 실행한 실행한 소프트웨어를 실행하는데 걸린 시간만을 의미하고, System CPU Time은 시스템이 실행한 소프트웨어까지 포함한 수행시간이다.

CPU Time


Clock Period : 한 기준점 (상승엣지, 하강엣지) 부터 다음 기준점까지의 시간(초)
Clock Rate : Clock Period의 역수(Hz), CPU 성능평가에 있어 자주 쓰이는 단위

clock period는 clock rate와 반비례관계

  1. CPU Time(by Cycle)

    cpuTime= 회전수(Cycles) x 1회 회전시간(ClockPeriod)
    cpuTime의 시간을 줄여야 한다 = 회전수와 1화 회전시간을 줄인다.

  2. CPU Time(by Instructions)


    예시(시험 낸적 있음)

Performance Summary


1. instruction count(IC): 프로그램에 의해 결정됨
2. cpi: 전체 걸리는 instruction을 clock으로 나눔
3. clock period: 전체걸린 시간을 clock cycle로 나눔

프로세서가 발전하면서 필요 전력량(Power)은 더 이상 높힐 수 없을 정도로 높아지며 발열문제를 겪고 있었고, 때문에 전력을 유지하면서 미세공정으로 전압 (Voltage)을 낮춰서 트랜지스터를 더 많이 집적하거나(Capacity Load) 클럭(Frequancy)을 더 높게 올리는 방식으로 성능을 개선했다.
전압의 경우 제곱으로 곱해지기 때문에 전압을 2배 낮추면, 전력은 4배 만큼 적어도 동일한 양의 Capacity Load나 Frequancy를 유지할 수 있다. 실제로 지금까지 CPU의 필요 전압은 점점 낮아져왔다. 하지만 어느순간부터 더 이상 전압을 낮추면 전류가 새어버리는 지경에 도달했고, 결국 더이상 전압을 낮출 수 없게 되면서 이 방법으로 성능을 확보하는게 어려워졌다. 이러한 현상을 학계에서는 전력 장벽 (Power Wall)이라고 부른다.

Multiprocessors

멀티코어프로세서
장점: 여러개의 프로그램을 동시에 돌리는 parallel programming이 가능해짐
(프로그램 자체를 동시에 돌림)
단점: 프로그래밍 하기 어려움
load balancing(두 프로그램의 속도차이가 남)
프로그램간의 통신에 싱크로율이 발생(성능 제약)

SPEC CPU 벤치마크


특징: I/O시간이 아주 짧고, CPU시간이 아주 길다.(CPU에 중점을 둔다)
정수형과 실수형 프로그램 두가지로 나눠져있음.

SPEC Power 벤치마크

1) Performance: ssj_ops/sec
2) Power: Watts (Joules/sec)

위 사진 oversum의 ssj_ops/watts 한 값이 높을수록 전력효육이 좋다.

Pitfall

어떤 작업의 시간 효율을 개선할 때, 전체 작업시간에 대해 P만큼의 작업시간을 차지하는 작업 시간을 S만큼 향상시켰다고 가정하자. 그렇다면 전체 작업 효율은 다음과 같이 향상된다는 법칙이다. 공식은 외울필요도 없다. 간단하게 생각해보자. 전체 1에서
P 를 P/S로 대체한 것뿐이다.

한 부분의 성능을 향상시키려면 그 부분이 전체 성능의 비율과 비례해야 성능을 향상시킬 수 있다. 전체성능중 큰 비중 차지하는 성능을 향상시키는것이 영향을 많이 미친다.

암달의 법칙은 다음과 같은 의미를 지닌다.

1) 전체 작업의 효율을 크게 증가시키고 싶으면 가장 비중이 큰 작업부터 초점을 맞추는 것이 좋음.
2) 일부 작업이 개선의 여지가 없을 때, 전체 작업이 최대 어느정도 개선 효율을 보일지 예측 가능.

Fallacy

로드에 비례하게 전력을 소비할 수 있게끔 만드는게 중요

MIPS(올바른 성능지표는 아님)

초당 수백만개의 명령어를 수행한다.
단점: 컴퓨터마다의 아키텍쳐고려하지 않음
컴퓨터마다의 instruction(CPI)고려하지 않음

profile
안녕하세요 잘부탁드립니다

0개의 댓글