컴퓨터 구조(1)

이정훈·2024년 12월 26일
0

대학강의

목록 보기
12/19

Instruction Architecture Set 부분

리뷰

1주차 안 들어서 정확히 뭔 내용인지도 모름.

파이프라이닝

명령어를 처리할 때, 각 단계(Fetch, Decode, Execute 등)를 분리하여 여러 명령어를 동시에 처리하는 방식
파이프라이닝 설계는 분기를 미리 예측에서 예측 실행함.

슈퍼스케일러

CPU가 한 사이클에 여러 개의 명령어를 동시에 실행할 수 있도록 하는 아키텍처

비순차 실행(Out-of-Order Execution, OoOE)

앞선 명령어가 막혀도 뒤에 있는 명령어를 실행하는 기능

NAND 게이트

모든 논리 연산 구현 가능: NAND 게이트는 유니버설 게이트로, 이 하나의 게이트만으로 모든 다른 논리 연산 (AND, OR, NOT 등)을 구현할 수 있다.

벤치마크

CPU 성능 측정
시간에 따라 달라짐.
클락 스피드와 RPC(클락당 몇개의 명령어를 처리하는가?)로 성능 측정

스펙플레이 익스큐트

CPU의 성능을 향상시키기 위한 기법
CPU가 명령어의 실행 순서를 예측하고, 실제로 해당 명령어가 실행될 필요가 있는지 여부를 기다리지 않고 미리 실행하는 방식
파이프라이닝이 넓이는 RPC와 관계됨.
파이프라이닝이 깊이는 클락 스피드와 관계됨.

  • 파이프라이닝이 깊으면 파이프라이닝 단계가 여러단계라는 것임
  • 파이프라이닝이 넓으면 한 싸이클에 몇 개의 명령어를 처리할 수 있는 것인지임.

하이퍼스레딩

하나의 물리적인 CPU 코어가 두 개의 논리적인 프로세서(스레드)를 실행할 수 있게 만들어 멀티태스킹 성능을 향상시키는 기술
일반적으로는 멀티스레딩이라 불림.
여기서 말하는 스레딩은 운영체제의 스레드랑 다름.

  • 성공하고 싶으면 스레딩 프로그래밍 해봐라

메모리 붕괴(memory wall)" 또는 "메모리 접근 지연(latency)" 문제

기술이 발전하면서 CPU의 성능은 계속 향상되었지만, 메모리와 CPU 간의 데이터 전송 속도 차이가 더 커진 것
이로 인해, CPU는 메모리에서 데이터를 가져오는 데 시간이 더 많이 걸리게 됐고, 성능 향상에 한계를 겪게 된 것

대역폭

일정 시간 동안 얼마나 많은 데이터를 실어 나르느냐
CPU성능을 위해 시스템 버스의 대역폭이 넓어야 한다.

시스템 버스

하나의 선에 여러개가 연결된 형태
발전하면서 CPU 성능에 비해 상대적으로 느려짐.

쿼드 펌핑

하나의 클락에 네 번씩 펄스를 보내는 것이다.
비트 파이프라이닝
최대 전송 대역폭을 4배로 만듦.

포인트 포인트

하나의 와이어에 하나만 드라이브 함.
이해 안됨. 슬프네
PCI EXPRESS랑 SETA가 여기에 속한다고 함.

무어의 법칙

IC칩에 집적할 수 있는 트랜지스터 숫자가 3년에 4배씩 늘어남.
RISC아키텍쳐가 성능을 고속 성장으로 이끌었다.
그러나 2000년대에 한계에 도달했다.

디미니싱 리턴(Diminishing Returns, 수확 체감)

특정 자원을 더 많이 투입할수록 성능 향상은 점점 줄어드는 현상

ILP

Instruction Level Parallelism
RPC를 올리자.

TLP

시간이 지나 ILP로 성능 향상하는 것은 비용대비 너무 미미함.
이로 인해 나온것이 TL
Thred Level Parallelism
멀티 코어, 멀티 쓰레딩
단일 프로그램 성능은 향상되지 못함.

2010년 이후

x86-64비트 명령어는 같은데 다 64비트로 확장됨.

메모리 컨트롤러

메모리 컨트롤러는 CPU와 RAM 간의 데이터 전송, 메모리 접근, 그리고 여러 가지 메모리 관련 작업을 효율적으로 처리하는 역할
칩셋의 메모리 컨트롤러 통신은 느림.
메모리 컨트롤러가 CPU에 들어가서 CPU가 직접 컨트롤 함.
IO버스와 메모리버스가 따로 있음.

CPU에는 주소가 두개 있다. 버츄얼 어드레스, 피지컬 어드레스
버츄얼 어드레스 프로그램의 주소
피지컬 어드레스 DRAM의 주소

웨이퍼

크리스탈 실리콘
파고 도핑입히고 빛으로 쬐서 패턴만드는 공정이 들어감.
칩들(다이)을 만듦.
웨이퍼 한장 엄청 비싸다.
테두리는 버린다. 못살린다.
100% 불가능하다.
네모난 것을 확대해 보면 칩(다이)가 있다.

컴퓨터의 성능

기본적으로 어떤 프로그램을 실행했을 때 실행시간이 컴퓨터의 성능이다.
실행시간은 다음과 같이 나뉠 수 있다.

  • NI
    한 프로그램에 있는 총 실행되어야 할 명령어의 수

  • CPI
    명령어 당 싸이클
    명령어 당 몇 클락 싸이클이 필요한가. IPC는 사이클 당 명령어 처리 횟수

  • T
    한 싸이클 걸리는 시간

결국 실행시간 = NIxCPIxT
즉, 프로그램의 실행시간

프로그램의 크기는 작은게 좋다.
CPI는 작은게 좋다.
IPC는 큰게 좋다.
클락 싸이클 타임 작은게 좋다.
클락 싸이클 스피드는 큰게 좋다.

동일한 기준 CISC와 RISC비교시 CISC가 더 프로그램 크기가 작다.

SPEC

컴퓨터의 성능을 객관적으로 평가하기 위한 비영리 단체
표준적인 벤치마크 적용, 각 분야마다 벤치마크 따로 있음.

profile
기록으로 흔적을 남깁니다.

0개의 댓글