CPU의 동작 과정
- 보조기억장치에서 저장된 프로그램을 읽거나, 입력장치에서 입력받은 데이터를 주기억장치에서 읽음
- 주기억장치에서 읽어온 데이터를 CPU가 읽고 처리한 후 다시 주기억장치로 보낸 후 저장
- 주기억장치는 연산된 데이터를 출력장치에 보내거나 보조기억장치에 저장
- 제어장치는 일련의 1~3 과정에서 명령어가 순서대로 잘 실행되도록 제어하는 역할 수행
CPU의 명령어
- 연산코드 : 실행할 연산을 나타냄
- 연산 기능 : 산술연산과 논리연산 수행
- 제어 기능 : 조건 분기와 무조건 분기 등을 사용해 명령어의 실행 순서를 제어
- 데이터 전달 기능 : 레지스터 - 레지스터, 레지스터 - 주기억장치 사이에데이터 전달
- 입출력 기능 : 프로그램과 데이터를 주기억장치에 전달하고, 연산 결과는 출력장치에 전달
- 피연산자
- 주소 : 기억장치 혹은 레지스터 주소 저장
- 숫자/문자 : 숫자는 정수, 고정 소수점 수, 부동 소수점 수 및 각각의 코드로 저장되고 문자는 아스키코드로 저장
- 논리 데이터 : 참 또는 거짓을 표현할 때 사용, 비트나 플래그로 저장
명령어 사이클
CPU가 주기억장치에서 한 번에 하나의 명령어를 인출하여 실행하는데 필요한 일련의 활동
🙋 인출, 실행 사이클은 항상 수행되지만, 간접, 인터럽트 사이클은 주소 지정방식이 필요할 때나 인터럽트 요구가 있을 때만 실행된다.
- 인출 사이클
- 프로그램 카운터에 저장된 주소를 메모리 주소 레지스터로 전달
- 메모리 주소 레지스터에 저장된 내용을 토대로 주기억장치의 해당 주소에서 명령어를 인출
- 인출한 명령어를 메모리 버퍼 레지스터에 저장
- 다음 명령어를 인출하기 위해 프로그램 카운터 값 증가
- 메모리 버퍼 레지스터에서 저장된 내용을 명령어 레지스터에 전달
- 실행 사이클
- 명령어 레지스터의 내용을 메모리 주소 레지스터로 전달
- 메모리에 저장된 데이터 값을 메모리 버퍼 레지스터에 저장
- 누산기에 저장된 값에 연산(산술 혹은 논리) 실행
- 간접 사이클
- 인터럽트 사이클
'CS' 카테고리의 다른 글
[CS /CA] 컴퓨터의 실수 표현 (0) | 2023.08.02 |
---|---|
[CS / CA] Cache Memory (0) | 2023.08.02 |
[CS / CA] 폰 노이만 구조 (0) | 2023.07.18 |
[CS / TOPCIT] 응용 계층 프로토콜 (0) | 2023.05.10 |
[CS / TOPCIT] TCP와 UDP (1) | 2023.05.10 |