ALU and Control Unit
연산장치가 받아 드리는 것 (ALU)
레지스터(피연산자), -> 기계어로 된 어떠한 정보
예로들어 5라는 정수라면, 기계어로 101 이겠지.
제어신호 -> 해당 제어신호로 연산자를 전달 받음
내보내는 것
플래그 값을 플래그 레지스터에 내보내어 결과 값에 추가 정보를 제공 (''' 은 반대라는 뜻)
부호 플래그 : 부호플래그가 1이면 음수 아니면 반대
제로 플래그 : 부호플래그가 1이면 결과값이 0, '''
캐리 플래그 : 캐리 플래그가 1이면 빌림 또는 올림이 있음, '''
오버플로우 플래그 : 말 그대로 있으면 1, '''
인터럽트 플래그 : 말 그대로 인터럽트 가능이면 1, '''
슈퍼바이저 플래그 : 커널 모드 실행중이면 1, '''
연산 이후 결과값.
ALU 의 연산 순서 정리
레지스터로 부터 피연산자를 받음
제어신호로 부터 연산자를 전달받아 연산함
플래그와 결과 값을 각 레지스터에 저장
제어장치가 받아 드리는 것
플래그 (플래그 레지스터로 부터)
클럭 (시계 같은거 똑딱~)
CPU가 1초에 몇 틱 을 보내는지 나타내는 주파수(Hz)이며, 흔히 GHz단위로 표시. (1GHz = 초당 10억 틱)
1GHz 면 1초당 10억번의 작업을 수행하기 때문에 클럭이 높으면 성능도 좋을테지만, 3틱당 1작업 할 것을 6틱당 1작업을 한다면 클럭이 높아도 처리속도가 성능이 떨어질 있음
모든 부품이 이 틱에 맞춰 작동함, 단 부품마다 성능차이로 메모리등은 1틱이 아닌 N틱에 한번의 작업을 처리함
해석할 명령어 (명령어 레지스터로 부터)
제어신호 (인터럽트 같은거
내보내는 것
제어 신호 - CPU 외부 장치와의 소통은 시스템버스중 제어버스를 사용
To. 레지스터 (읽기, 쓰기 등)
To. ALU (연산지시)
To. 메모리 (읽기, 쓰기 등)
To. 입출력장치 (내가 너한테 뭘 쓰겠다 / 뭘 읽겠다 / 지금 준비해라 / 어느 주소에 보낼 거다 등)
To. 제어신호 (언제 동작하라 / 멈춰라 / 인터럽트 처리하라 / 외부 버스에 접근하라 등)
제어 장치 작동 순서 정리
일단 뭐가 먼저인지는 모르지만 (메모리 내용 : 더하라, 3번지와 4번지를)
메모리에게 제어신호 전달(읽기)
메모리에서 레지스터에 캐싱
CPU가 레지스터 읽음
메모리와 ALU 제어신호 전달
3번지와 4번지 데이터를 레지스터에 캐싱
ALU가 레지스터에 피연산자를 읽어서 제어신호로 받은 연산자로 결과값과 플래그를 레지스터에 저장 이후 메모리에 다시 저장을 원하면, 저장하라는 명령을 메모리로부터 다시 캐싱하여 읽고 수행함함
Last updated