일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 제주여행비용정리
- 제주도가성비여행
- 부천역맛집
- 강서구웨딩홀추천
- 전세대출
- 오사카여행
- 혼공컴운스터디
- 부천맛집
- windows10
- 우메다홀릭호텔
- 일본여행
- 교토여행
- 문래맛집
- 부천데이트
- 컴퓨터구조
- 부천데이트맛집
- reduce함수 예제
- 결혼준비예상비용
- 전세사기
- Linux
- 일본첫여행
- 혼공컴운자습문제
- 비아인프라임교토에키
- 제주도여행
- 교토숙소
- 부천술집
- Docker
- 혼공컴운
- WSL2
- 허그전세대출
- Today
- Total
sugar.kim
[5장] CPU 성능 향상 기법 (5문제) 본문
제 5장 CPU 성능 향상 기법 스터디 5문제 입니다. 우리 스터디 화이팅 !
1. 아래 설명의 괄호를 채우고, 답을 적어 주세요.
CPU의 정의는 '( 명령어를 실행하는 ) 부품'이다. 이것은 오늘 날 코어[core]라는 용어로 사용됩니다. 오늘날의 CPU는 '( 명령어를 실행하는 ) 부품' 에서 '( 명령어를 실행하는) 부품을 ( 여러 개 포함하는 ) 부품' 으로 명칭의 범위가 확장 되었습니다. 그렇다면 아래 그림에서 오늘날의 CPU는 몇 코어 인가? 답 → 4 core 혹은 Quad core
2. 스레드[thread]와 멀티 스레드에 대해서 설명한 글의 괄호 안에 들어갈 글을 맞춰 넣으시오.
스레드의 사전적 의미는 '(실행 흐름의 단위)'입니다. 스레드는 CPU에서 사용되는 ( 하드웨어 )적 스레드가 있고, 프로그램에서 사용되는 ( 소프트웨어 )적 스레드가 있습니다. 스레드를 ( 하드웨어 )적 으로 정의하면 '하나의 코어가 동시에 처리하는 명령어 단위'를 의미합니다. 우리가 지금까지 배운 CPU는 1코어 1스레드 CPU였습니다. 즉, 명령어를 실행하는 부품이 하나 있고, 한번에 하나씩 명령어를 실행하는 CPU를 가정했지요. 반면 여러 스레드를 지원하는 CPU는 명령어를 실행하는 부품을 여러 개 포함하고 한 번의 여러 개의 명령어를 처리할 수 있는 CPU를 의미합니다. 이처럼 하나의 코어로 여러 명령어를 동시에 처리하는 CPU를 (멀티스레드) 프로세서 또는 (멀티스레드) CPU라고 합니다. 8코어 16 스레드는 명령어를 실행하는 부품을 (8)개 포함하고, 한번에 (16)개의 명령어를 처리한다는 뜻으로 볼 수 있습니다. (소프트웨어)적으로 정의된 스레드는 '하나의 프로그램에서 독립적으로 실행되는 단위'를 의미합니다. 1코어 1스레드 CPU도 (소프트웨어)적 스레드를 수십 개 실행할 수 있습니다. 만약 스레드의 사전적 정의만 암기한다면, '1코어 1스레드 CPU가 여러 스레드로 만들어진 프로그램을 실행할 수 있다'라는 말이 어려울 겁니다. 이런 이유로 (하드웨어)적 스레드와 (소프트웨어)적 스레드는 구분해서 기억하는 것이 좋습니다.
3. 아래 설명 중 옳지 않은 것을 고르세요. (다중답안존재) 답 → (3) : 프로그램 카운터의 갑작스러운 변화에 의해 발생하는것은 제어 위험이다. (5): 구조적 위험을 자원 위험이라고도 부르며 명령어들을 겹쳐 실행하는 과정에서 발생한다.
- (1) 명령어 파이프 라이닝은 동시에 여러개의 명령어를 겹쳐 실행하는 기법 이다.
- (2) 슈퍼스칼라는 여러개이 명령어 파이프라인을 두는 기법이다.
- (3) 비순차적 명령어 처리는 프로그램 카운터의 갑작스러운 변화에 의해 발생한다.
- (4) 데이터 위험은 데이터 의존적인 두 명령어를 무작정 동시에 실행하려고 하면 파이프 라인이 제대로 작동하지 않는 것을 의미한다.
- (5) 제어 위험은 자원 위험이라고도 부른다.
4. CPU의 언어인 ISA에 대한 설명으로 옳은 것을 고르세요. (다중답안존재) 답 → (2), (4), (5)
- (1) ISA는 어떤 하드웨어 에서도 공용으로 쓰이는 언어이기에 인텔이나 애플 종속되지 않고 자유롭게 공통으로 사용가능하다. → ISA가 같은 CPU끼리는 서로 명령어 이해 가능하지만 ISA가 다르면 서로의 명령어를 이해할 수 없다.
- (2) ISA는 하드웨어가 소프트웨어를 어떻게 할 지에 대한 약속이다.
- (3) 명령어가 달라져도 어셈블리어는 공통언어라 똑같다. → 명령어가 달라지면 어셈블리어도 달라진다
- (4) CISC와 RISC는 ISA를 기반으로 설계되었다.
- (5) 명령어가 이해할 수 있는 명령어들의 모음을 명령어 집합 또는 명령어 집합 구조 (Instruction Set Architecture) 라고 한다.
5. 아래는 CISC와 RISC의 차이를 정리한 표이다. 아래 빈칸의 표를 채워보자.CISC와 RISC 정의를 한문장으로 설명해보자.
- CISC : 복잡한 명령어 집합을 활용하는 컴퓨터를 의미하며, 복잡하고 다양한 명령어를 사용한다.
- RISC : CISC의 한계로 등장한 것으로, 짧고 규격화된 명령어를 사용한다.
CISC | RISC |
복잡하고 다양한 명령어 | 단순하고 적은 명령어 |
가변 길이 명령어 | 고정 길이 명령어 |
다양한 주소 지정 방식 | 적은 주소 지정 방식 |
프로그램을 이루는 명령어의 수가 적음 | 프로그램을 이루는 명령어의 수가 많음 |
여러 클럭에 걸쳐 명령어 수행 | 1클럭 내외로 명령어 수행 |
파이프라이닝하기 어려움 | 파이프라이닝하기 쉬움 |
고생하셨습니다!
정답은 드래그 하면 확인 가능합니다 :)
'DEV > 컴퓨터구조+운영체제' 카테고리의 다른 글
[8장]입출력장치 확인문제 (0) | 2023.05.07 |
---|---|
[7장] 보조기억장치 (0) | 2023.05.01 |
[6장] 메모리와 캐시메모리 확인 문제 5개 (스터디!!) (0) | 2023.04.16 |
[4장] CPU의 작동 원리 문제 (0) | 2023.03.26 |
개발자의 컴퓨터 구조 공부: 해야 하는 이유와, 컴퓨터 구조 정리하기. (0) | 2023.03.19 |