목차
-
2주차 범위
Chapter 04: CPU의 작동원리
Chapter 05: CPU 성능 향상 기법
슬슬 인터럽트나 복잡한 주소 지정 방식이 나와서 어렵네요...
학습 내용 정리
Chapter 04: CPU의 작동원리
ALU (산술논리연산장치)
ALU는 제어 신호와 피연산자를 받아들인다.
ALU는 결과값 및 플래그를 내보낸다.
플래그의 종류
- 부호 플래그
- 제로 플래그
- 캐리 플래그
- 오버플로우 플래그
- 인터럽트 플래그
- 슈퍼바이저 플래그
플래그는 플래그 레지스터에 저장된다.
제어장치
제어 장치: 제어 신호를 내보내고 명령어를 해석하는 부품
제어 신호: 컴퓨터 부품을 관리, 작동시키기 위한 전기신호
제어장치의 역할
- 클럭 신호 받음
- 명령어를 받음
- 플래그 레지스터속 플래그값 받음
- 제어 버스로 받아들인 제어 신호를 받음
레지스터
- 프로그램 카운터: 메모리에서 읽어들일 명령어 주소 저장
- 명령어 레지스터: 메모리에서 읽은 명령어를 저장
- 메모리 주소 레지스터: 메모리의 주소 저장
- 메모리 버퍼 레지스터: 메모리와 주고받을 값을 저장
- 범용 레지스터: 데이터와 주소를 모두 저장 가능
- 플래그 레지스터: 연산결과, CPU상태의 부가적인 정보 저장
특정 레지스터를 이용한 주소 지정 방식
- 스택 주소 지정 방식: 스택과 스택 포인터를 활용한 주소 지정 방식
- 변위 주소 지정 방식
스택은 메모리 내부 스택 영역 에 위치함
변위 지정 방식의 종류
- 상대 주소 지정 방식: 오퍼랜드와 프로그램 카운터의 값을 더해 유효 주소를 얻음
- 베이스 레지스터 주소 지정 방식: 오퍼랜드와 베이스 레지스터의 값을 더해 유효 주소를 얻음
베이스 레지스터에 저장된 주소가 기준주소가 됨
명령어 사이클의 종류
- 인출 사이클: 명령어를 CPU로 가져옴
- 실행 사이클: 명령어를 실행
- 인터럽트 사이클: 인터럽트를 실행
- 간접 사이클: 명령어를 가져온 후 메모리 접근이 더 필요한 경우
인터럽트
인터럽트: CPU의 정상적인 작업을 방해하는 신호
인터럽트의 종류
- 동기 인터럽트(예외)
- 비동기 인터럽트(하드웨어 인터럽트): 주로 입출력장치에 의해 발생
참고) 동기와 비동기
동기식은 요청후 응답까지 대기, 비동기는 요청 후 응답을 대기하지 않는 방식입니다.
자세한 내용은 아래 내용 참고
3.1 동기 vs. 비동기 프로그래밍
지금까지 다트 언어를 배우면서 작성한 코드는 모두 동기 방식을 사용했습니다. 함수를 실행하면 다음 코드가 실행되기 전에 해당 함수의 결괏값이 먼저 반환됩니다. 하지만 비동기 프로…
wikidocs.net
하드웨어 인터럽트 처리 과정
순번 | 내용 |
1 | 입출력 장치가 CPU에 인터럽트 요청 신호를 보냄 |
2 | CPU는 실행사이클 종료 후 인터럽트 여부 확인 |
3 | 인터럽트 플래그 확인 |
4 | 인터럽트 플래그 확인 -> 인터럽트를 받을 수 있는 경우 작업을 백업 |
5 | 인터럽트 벡터를 참조, 인터럽트 서비스 루틴 실행 |
6 | 인터럽트 서비스 루틴 완료 후 백업해놓은 작업을 복구 후 실행 |
인터럽트 서비스 루틴(인터럽트 핸들러): 인터럽트를 처리하기 위한 프로그램
예외 종류
- 폴트
- 트랩
- 중단
- 소프트웨어 인터럽트
Chapter 05: CPU 성능 향상 기법
클럭: CPU에서 연산을 조정하는 타이밍 신호
오버클럭: 최대 클럭 속도를 강제로 더 올리는 기법
코어: CPU내에서 명령어를 실행하는 부품
멀티코어: 코어를 여러개 포함하는 CPU
스레드: 실행 흐름의 단위
멀티 스레드 프로세서: 여러개의 하드웨어적 스레드를 지원하는 CPU
명령어 병렬 처리 기법
- 명령어 파이프라이닝: 동시에 여러개의 명령어를 겹처 실행
- 슈퍼스칼라: 여러개의 파이프라인 사용
- 비순차적 명령어 처리: 파이프라인 중단 방지를 위해 명령어를 비순차적으로 처리
ISA: 명령어 집합 구조
RISC 와 CISC
구분 | RISC | CISC |
명령어 | 적음(고정) | 많음(가변) |
레지스터수 | 많음 | 적음 |
처리속도 | 빠름 | 느림 |
프로그램 길이 | 길음 | 짧음 |
주소지정방식 | 단순하고 제한적 | 복잡하고 다양 |
과제
기본 과제 : p.125 2번 문제
p.155 4번 문제
2. 설명에 맞는 레지스터를 보기에서 찾아 빈칸을 채워 보세요.
- 프로그램 카운터, 명령어 레지스터, 플래그 레지스터, 범용 레지스터
- (1): 연산 결과 혹은 CPU상태에 대한 정보를 저장하는 레지스터
- (2): 메모리에서 가져올 명령어 주소를 저장하는 레지스터
- (3): 데이터와 주소를 모두 저장할 수 있는 레지스터
- (4): 해석할 명령어를 저장하는 레지스터
답: (1): 플래그 레지스터
(2): 프로그램 카운터
(3): 범용 레지스터
(4): 명령어 레지스터
멀티코어 CPU를 도식화한 그림이다. 그림에 알맞은 용어를 쓰시오
[p.155 그림 참조]
정답: 코어
심화 과제: 코어와 스레드, 멀티 코어와 멀티 스레드의 개념 정리
스레드: 프로세스 내에서 실행되는 흐름의 단위
멀티 스레드: 하나의 프로세스 내에서 둘 이상의 스레드사 동시에 작업을 수행
코어: 명령을 실행하는 CPU 내의 단일 처리 장치
멀티 코어: 여러개의 독립 코어를 단일 집적회로로 이루어진 하나의 패키지로 통합한 CPU
요즘 나오는 pc들은 다 멀티코어라고 보시면 됩니다.
심심하시면 한번 확인해보죠
ctrl+ alt +del 혹은 직접 작업관리자 여신 뒤에
성능 탭을 클릭합니다
그럼 우측 하단에 저렇게 표시가 되는데
저기서 코어 수가 표시됩니다
제 pc는 16개네요
'혼공- 컴퓨터구조, 운영체제' 카테고리의 다른 글
[혼공컴운]5주차_프로세스 동기화/ 교착 상태 (0) | 2025.02.14 |
---|---|
[혼공컴운] 4주차_운영체제 시작하기/ 프로세스와 스레드/ CPU 스케줄링 (0) | 2025.02.05 |
[혼공컴운] 3주차_메모라와 캐시메모리/ 보조기억장치/ 입출력장치 (0) | 2025.01.21 |
[혼공컴운] 1주차_컴퓨터 구조 시작하기/ 데이터/ 명령어 (1) | 2025.01.02 |
혼공학습단 13기 시작 - 컴퓨터구조, 운영체제 (0) | 2024.12.31 |