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 |