본문 바로가기

CS42

[혼공컴운] 명령어 병렬 처리 기법 명령어 파이프라인 명령어를 동시 처리하는 기법을 명령어 파이프라이닝(Instruction Pipelining)이라고 함. 아래 그림과 같이 명령어를 겹쳐서 실행하는 것 (하나가 끝날 때까지 기다렸다 다른 하나를 실행하는게 X) 명령의 단계가 겹치지만 않으면 CPU는 명령어를 동시에 실행할 수 있음 명령어 파이프라이닝은 어떤 경우 성능 향상에 실패하기도 하는데 그 유형은 아래와 같음 데이터 위험: 어떤 명령어가 다른 명령어의 결과 값 등에 의존하는 경우 제어 위험: 분기 등으로 인해 프로그램 카운터에 갑작스러운 변화가 발생하는 경우 프로그램 카운터는 기본적으로 바로 다음 명령을 내려야 하는데, 만약 한 명령어가 끝에 바로 다음 주소가 아닌 훨씬 멀리 떨어진 주소의 명령어를 실행시키는 경우. 분기 예측을 통.. 2023. 4. 10.
[혼공컴운] 프로세스 상태와 계층 구조 프로세스 상태 운영체제는 PCB에 적힌 프로세스의 상태를 통해 프로세스를 관리. 생성 상태: 메모리에 적재되어 PCB를 할당받은 상태. 바로 실행 상태가 되는 것이 아니라 준비 상태가 되어 CPU 할당을 기다림 준비 상태: CPU의 할당을 기다리고 있는 상태 실행 상태: CPU를 할당 받아 실행 중인 상태. 타이머 인터럽트가 발생한다면(CPU가 할당된 시간을 모두 사용한다면) 다시 준비 상태가 됨 입출력 장치의 조작이 있다면 대기 상태로 도입 대기 상태: 입출력장치가 사용되는 경우 입출력을 요청한 프로세스가 입출력장치의 작업이 완료되기 기다리는 상태 입출력 작업이 완료되면 해당 프로세스는 다시 준비 상태로 CPU 할당을 기다림 종료 상태: 프로세스가 종료된 상태로 운영체제는 PCB와 사용한 메모리를 정리.. 2023. 4. 7.
[혼공컴운] 빠른 CPU를 위한 설계 기법 어떻게 하면 더 빠른 CPU를 만들 수 있을까? 클럭 속도 빠르게 하기 클럭: 컴퓨터의 모든 부품을 움직일 수 있게 하는 시간 단위 클럭 신호가 더 빨라진다는 것은 그만큼 빠르게 CPU의 명령어 사이클이 빠르게 반복된다는 것 클럭의 속도는 헤르츠(Hz) 단위로 측정됨 순간적으로 클럭 속도를 더 끌어올리는 오버클러킹(overclocking)이 있긴 하지만 부품에 무리를 줄 수 있음 코어와 멀티코어 오늘날의 CPU에는 1개의 코어, 즉 ALU, 제어장치, 레지스터들이 있는 것이 아님. (코어란 CPU 안에서 명령어를 실행하는 부품 세트 정도라고 생각하면 좋을듯) 복수 개의 코어를 가지고 있는 CPU인 멀티코어 CPU가 사용되고 있음. 이 멀티코어 CPU는 여러 개의 코어를 가진 프로세서라는 의미에서 멀티코어.. 2023. 4. 4.
[혼공컴운] 명령어 사이클과 인터럽트 명령어 사이클: CPU가 하나의 명령어를 처리하는 하나의 정형화된 흐름 인출 사이클(Fetch Cycle): 메모리에 있는 명령어를 CPU로 불러오는 단계 실행 사이클(Execute Cycle): CPU로 가져온 명령어를 실행하는 단계 간접 사이클(Indirect Cycle): 간접 주소 지정 방식 등으로 인해 메모리에서 명령어를 가져왔음에도 불구하고 한 번 더 메모리 접근이 필요한 상황 인출 사이클과 실행 사이클 사이에서 발생 인터럽트 사이클(Interrupt Cycle): 실행 사이클이 끝난 후 발생하는 사이클 인터럽트 신호가 들어왔는지 아닌지 판단하고, 발생시 인터럽트 처리 인터럽트: CPU의 정상적인 작업을 방해하는 신호 인터럽트의 종류 동기 인터럽트(예외): CPU에 의해 발생하는 인터럽트. 어.. 2023. 3. 31.