본문 바로가기

Computer Architecture/Basic12

인터럽트(Interrupt) 초안 :  2023.04.04 CPU 가 하나의 명령어를 처리하는 데에는 정해진 흐름이 있고, 이를 반복하며 명령어들을 처리해 나간다.이러한 정형화된 흐름을 command cycle 이라고 한다. 이전 게시글에서 간단한 그림으로 CPU 가 메모리에서 명령어를 인출하고 실행하는 과정을 살펴봤다.다시 정리해보면1. 메모리에 있는 명령어를 CPU 로 가져오고 (Fetch)2. 이를 디코딩 하여 명령어를 실행한다. 즉, 컨트롤러가 IR 에 담긴 명령어를 디코딩 하여 control signal 을 발생 시킨다. (Execution)그런데 만약 명령어를 실행하는데, indirect addressing mode 로 되어있어 메모리 접근이 한번 더 필요한 경우에는 바로 execution cycle 에 돌입할 수 없다... 2023. 4. 5.
프로세서 내부의 레지스터 초안 :  2023.04.04 프로그램 속 명령어와 데이터는 실행 전후로 CPU 내에 위치한 레지스터에 저장된다.CPU 속 레지스터들의 이름은 제조사 마다 다른데, 공통적으로 다루는 레지스터들은 대동소이하다. 1. 프로그램 카운터 (PC, Program Counter)메모리에서 읽어 들일 명령어의 주소를 저장한다. 이를 Program Pointer 라고 부르는 CPU 도 있다. 2. 명령어 레지스터 (IR, Instrction Register)PC 값으로 부터 명령어가 담긴 특정 메모리의 주소를 CPU 가 읽어올텐데, 해당 명령어를 저장하는 레지스터이다.이후 CPU 내의 컨트롤러가 해당 명령어를 디코딩 하여, control signal 들을 내보낸다. 3. 메모리 주소 레지스터 (MAR, Memory A.. 2023. 4. 4.
명령어의 Operation code, Operand 와 Addressing mode (주소 지정 방식) 초안 :  2023.04.02  어셈블리 명령어는 operation code 와 operand 로 구성되어 있다. 명령어가 수행할 연산 을 operation code 라고 하고, 연산에 사용할 데이터 또는 위치를 operand 라고 한다.예를들어 아래의 명령어에서 add 는 operation code 이고 eax, edx 는 operand 이다. add eax, edx 여기서 eax 와 edx 는 CPU 의 레지스터 주소 인데, 이와 같이 operand field 에는 데이터나 메모리, 레지스터의 주소가 올 수 있다. 대부분의 경우 데이터를 직접 명시하기 보다는 데이터가 저장된 위치(주소)가 명시된다. 따라서 operand field 를 address field 라고 부르기도 한다. 참고: 커맨드의 종류.. 2023. 4. 3.