[컴퓨터구조] #10 데이터패스(파이프라인)

2023. 6. 11. 03:55·전공/컴퓨터구조
728x90
반응형

버퍼

큐(원형 큐) - 버퍼로 사용

스택 - 함수호출(인자 전달, 리턴)에 사용

버퍼 사용 이유

입출력 속도에 차이가 있을 때 사용

  • 서버가 터지지 않도록 조절 - 시스템 안정성 증가
  • 동기식 시스템의 단점 보안 - 모든 구성 요소가 동일한 클럭 속도로 작동해야 함, 버퍼를 사용해 보완

 

CPU 성능 향상

슈퍼스칼라

한 번에 여러 개의 명령어를 동시에 실행시킬 방법

- 파이프마다 실행하는 명령어 간의 연관관계없어야 함(병렬성)

슈퍼스칼라 사용 이유: 프로그램이 시작할 때 파이프라인을 채우기까지 시간이 걸림

하이퍼스레드

물리적으로 하나의 실행 장치를 가지고 있는 CPU에 가상 실행 장치를 두 개 할당

 

 

파이프라인 분기

비교문/반복문에서 조건 분기 발생

- 조건에 따라 파이프라인 지연 발생

분기 비용 줄이기

  • 분기 덧셈기를 EX단계에서 ID단계로 옮기기
    - EX단계의 ALU에서 0 여부 확인 후 분기 판단

  • 동적 분기 예측
    - 분기 예측 버퍼 / 분기 이력표를 이용 - 이전 실행에서 분기가 일어났는지 확인
    - 통계적 예측 사용 - 양성 / 음성 / 위양성 / 위음성

  • 지연 분기 슬롯
    - 분기 명령어에 영향을 주지 않는 명령어를 넣어 페널티 줄이기

  • 연관 예측기
    - 지역 / 전역 행동에 대한 2개의 예측기를 가지고 선택하는 방식

  • 토너먼트 예측기
    - 다수의 예측기를 사용해서 추적하면서 최적의 예측기 사용

  • 조건부이동
    - PC값 대신 mov의 목적 레지스터를 조건부로 선택하는 형식
    - load 명령어 + 조건문: 메모리에 있는 내용을 어디에 넣을 것인지

 

 

예외

프로그램의 흐름을 바꾸는 기술

- 정의 안된 명령어 / 산술 오버플로 처리에서 적용

- 처리 방식: EPC(Exception Program Counter)에 저장하고 특정 주소(운영체제의 핸들러)로 점프

- 예외의 원인 파악

  • 레지스터 사용(MIPS) - 예외 원인을 지정하는 레지스터의 필드 지정
  • 벡터 인터럽드 - 예외 원인에 따라 제어를 넘기는 주소를 다르게 지정하는 방식

파이프라인에서의 예외

한 사이클에서 여러 개의 예외가 동시에 일어날 수 있음

- 예외의 운선순위 반영(MIPS에서는 명령어 순서에 따름)

 

 

명령어를 통한 병렬성

ILP: 명령어 사이의 병렬성

Thread-safe: 동시에 수행되면서도, 일정한 결과

병렬 수준 높이기

파이프라인의 깊이 증가 -> 더 많은 명령어 중첩

다중 내보내기 ->  컴퓨터의 내부의 구성요소를 여러 개 가짐(슈퍼스칼라)

병렬성의 문제점

전력 효율성 감소

해결책 - 빅리틀 아키텍처(상대적으로 단순한 프로세서 여러 개 탑재)

 

728x90
반응형

'전공 > 컴퓨터구조' 카테고리의 다른 글

[컴퓨터구조] #12 가상머신/가상화/클라우드  (0) 2023.06.11
[컴퓨터구조] #11 메모리 계층 구조  (2) 2023.06.11
[컴퓨터구조] #9 해저드  (0) 2023.06.11
[컴퓨터구조] #8 파이프라이닝 - 추가 사설 문제  (0) 2023.04.25
[컴퓨터구조] #7 단일 사이클 구현 2 - 추가 사설 문제  (0) 2023.04.25
'전공/컴퓨터구조' 카테고리의 다른 글
  • [컴퓨터구조] #12 가상머신/가상화/클라우드
  • [컴퓨터구조] #11 메모리 계층 구조
  • [컴퓨터구조] #9 해저드
  • [컴퓨터구조] #8 파이프라이닝 - 추가 사설 문제
dev_ares
dev_ares
대학에서 컴퓨터공학을 전공하고 있는 학생입니다.
    반응형
    250x250
  • dev_ares
    노트
    dev_ares
  • 전체
    오늘
    어제
    • 분류 전체보기 (188)
      • IT 트랜드 (2)
      • 백엔드 (18)
        • Java + Spring (8)
        • Kotlin + Spring (5)
        • 백엔드 (5)
      • 프론트엔드 (1)
        • React (1)
      • 대외활동 (17)
        • 42서울 (17)
      • 백준 (6)
        • Java (2)
        • C++ (3)
      • 전공 (121)
        • 객체지향프로그래밍 (17)
        • 자료구조 (23)
        • 리눅스시스템관리 (16)
        • 컴퓨터구조 (25)
        • 네트워크 (25)
        • 데이터베이스 (15)
        • 기타 전공 (0)
      • 프로그래밍 언어 (18)
        • Java (5)
        • Swift (4)
        • C++ (1)
        • Kotlin (8)
      • 기타 (4)
      • 공군 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    사설 문제
    자바
    자료구조
    메모리 계층 구조
    추가 문제
    코틀린
    컴퓨터 구조 및 설계
    명령어
    컴공 포트폴리오
    C++
    티스토리챌린지
    컴퓨터구조
    데이터패스
    42서울
    리눅스
    백준
    단일 사이클
    상속
    오블완
    반복자
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
dev_ares
[컴퓨터구조] #10 데이터패스(파이프라인)
상단으로

티스토리툴바