운영체제 수업정리 - 3

박경현·2022년 10월 17일
0

이번 강의는 CPU 내부가 어떻게 구성되어 있고 각각의 역할은 무엇인지 배웠다

예전에는 이런거 왜 보나 했지만 지금은 컴퓨터가 내부에서 어떻게 돌아가는지 아는게 너무 재밋네ㅎㅎ

CPU를 구성하는 ALU와 제어장치

간단하게 말하면

ALU는 계산 장치
제어장치는 제어 신호 발생시키고 명령어를 해석하는 장치

ALU

ALU는 레지스터로부터 피 연산자를 받아들이고, 제어장치로부터 제어신호를 받아들임

계산을 하기 위해서는 피연산자와 수행할 연산이 필요(+,-)

메모리가 아닌 레지스터에 결과를 저장하는 이유 -> 접근 속도가 빨라서 임시 저장

플래그라는 것도 내보냄! => 연산 결과에 대한 부가 정보
-> 2진수를 음수로 표현하는 방법

연산결과가 레지스터에 비해 너무 크면 플래그에 명시됨! - 오버 플로우

예시) 부호 플래그, 제로 플래그, 캐리 플래그(올림,빌림수 발생했는지 나타냄)
	오버플로우 플래그,
	인터럽트 플래그(인터럽트 가능한지! 1이면 가능)

플래그 레지스터에 적혀있고 (부호플래그,제로플래그, 캐리플래그, 인터럽트 플래그)
							0 		1		0		1		

제어장치

제어장치에서 처리하는 순서

(제어장치가 받아들이는 정보)

클럭

  • 컴퓨터의 모든 부품을 일사불란 하게 움직일 수 있게 하는 시간 단위
    일정한 박자에 맞춰 발생하는 신호
    ex) 메모리에서 명령어 가져오기 는 자신만의 박자가 있음!

해설할 명령어를 받아 들임
명령어 레지스터에 저장 되어있다
해석해서 제어 신호를 내보낸다!

플래그 레지스터로부터 플래그 정보를 받아서 제대로 해석함!

제어신호도 받아들일 수 있음 - 입출력장치 등의 제어신호
외부로부터 제어신호를 받아들이고 어떤 신호인지 파악

제어신호를 CPU내부에 전달(레지스터,ALU) / CPU외부에 전달(메모리, 입출력장치)

레지스터 - CPU내부의 작은 임시 저장 장치

다양한 레지스터가 있고 각기 다른 역할을 가진다

	프로그램 카운터 - 메모리에서 가져올 명령어의 주소(메모리에서 읽어들일 명령어의 주소)
	명령어 레지스터 - 해석할 명령어(방금 메모리에서 읽어 들인 명령어)
	메모리 주소 레지스터 - 메모리주소를저장
	메모리 버퍼 레지스터 - 메모리와 주고 받을 값
	
	플래그레지스터 : 연산결과 또는 CPU상태에 대한 부가적인 정보
	범용레지스터: 다양하고 일반적인 상활에서 자유롭게 사용
	스택 포인터: 특별한 주소 지정에 사용! ->스택의 꼭대기를 가리키는 레지스터(스택이 어디까지 차있는지에 대한 표시)
		-> 스택은 메모리안에 일정한 공간이 있다!
	베이스 레지스터: 특별한 주소 지정에 사용!(변위 주소 지정방식)
		-> 오퍼랜드 필드의 값(변위) 과 특정 레지스터의 값을 더하여 유효 주소얻기!!

ex) CPU가 실행하고자하는 프로그램이 메모리에 1000번부터 1500번까지 채워져있다

  • 순서대로 실행일때

    -> 프로그램 카운터 1000번부터 실행
    -> 메모리 주소 레지스터 1000번 주소를 저장
    -> 메모리 버퍼 레지스터
    - 1000번 주소의 값을 가져옴 그리고 프로그램 카운터 다음 주소로!
    -> 명령어 레지스터가 값이 저장 되고 연산장치가 해석

순차적인 실행 흐름이 끊기는 경우
- 특정 메모리 주소로 실행 흐름을 이동하는 명령어 실행시, 인터럽트 발생시 등

profile
SW로 문제를 해결하려는 열정만 있는 대학생

0개의 댓글