CPU 기본구조 및 구성요소
산술논리연산장
치
(ALU)
• 산술 및 논리 데이터에 대해
실질적으로 연산을 하기 위한
하드웨어 모듈
레지스터 세트
(Register Set)
• 여러 레지스터들의 집합
• 액세스 속도가 가장 빠르다
• 제한적이다
• 특수기능 레지스터(SPR):
◦ Program Counter(PC)
◦ Accumulator(AC)
◦ Instruction Register(IR)
◦ Stackpointer Register(SP)
◦ Memory Address
Register(MAR)
◦ Memory Data Register(MDR)
• 범용 레지스터(GPR)
◦ R0 ~ Rn 존재
제어 유닛
(Control Unit)
• 명령어의 연산코드를 해독하는
명령어 해독기
• 해독에 따른 실행을 위한 제어신호
(Control Signals)들을 순차적으로
발생시키는 하드웨어 모듈
• 마이크로 명령어들로 이루어진
마이크로 프로그램을 저장하는
제어기억장치 등으로 구성
CPU 내부 버스
(CPU Internal Bus)
• ALU와 레지스터들 간의
데이터 이동을 위한 데이터 선들과
제어 유닛으로부터 발생되는
제어 신호 선들로 구성된 내부 버
스
• 외부의 시스템 버스들과는 직접적
으로
연결되지 않고, 반드시 버퍼 레지
스터들
혹은 시스템 버스 인터페이스 회로
를
통하여 시스템 버스와 연결
명령어 세트(Instruction Set)
CPU의 기능은 이들에 의해 결정된다
그들의 수와 종류는 CPU에 따라 많이 다르다
명령어 종류
• 데이터 전송 명령
◦ Reg-to-Reg, Reg-to-Mem, Mem-to-Mem
간의 데이터를 이동시키는 명령
• 산술 연산 명령
◦ 2의 보수 및 부동소수점 수에 관한
+, -, * , / 과 같은 기본적인 산술 연산 명령
• 논리 연산 명령
◦ 데이터의 각 비트들 간에 대한
AND, OR, NOT, XOR 등의 논리 연산 명령
• 입출력(I/O) 명령
◦ CPU와 외부 I/O 장치들 간의
데이터를 이동시키는 명령
• 프로그램 제어 명령
◦ 각 명령어의 실행 순서를 변경하는 분기
(Branch) 명령과 서브루틴 호출(Subroutine
Call) 및 리턴 명령
명령어 형식
Op-code
CPU에서 실행될 연산 지정
LOAD, ADD, JUMP 등
Operand
연산을 실행하는 데 필요한 데이터 혹은 주소 값을 포함
• Op-code 필드의 비트 수
◦ CPU애서 수행될 연산 종류의 수에 따라 비트의 수가 결정
◦ 4비트 -> 16가지의 연산 정의
◦ 5비트 -> 32가지의 연산 정의
• Operand 필드의 비트 수
◦ Operand 종류에 따라 결정
◦ Immediate Value -> 표현 가능한 수의 범위가 결정
◦ Memory Address -> 기억장치의 영역 범위가 결정
◦ Register No. -> 범용 레지스터의 수를 결정
명령어 형식의 예
Op-code Operand
1-address
Instruction
Op code 12Bit의 데이터, 주소 공간
2-address
Instruction
Op code 4Bit 16개의 Reg
4Bit
16개의 Reg
Unused
2-address
Instruction
Op code
4Bit
16개의 Reg
8Bit의 데이터, 주소 공간
3-address
Instruction
Op code 4Bit 16개의 Reg 4Bit 16개의 Reg 4Bit 16개의 Reg
3-address
Instruction
Op code 4Bit 16개의 Reg 4Bit 16개의 Reg
4Bit의 데이터, 주소 공
간
명령어 형식의 예: 실행 예제
1-address instruction 2-address instruction 3-address instruction
실행할 프로그램 : X = (A + B) * (C - D)
7 6 3
명령어 주소지정 방식
(Addressing mode)
• 즉치 (immediate addressing mode)
• ADD R2, #9 ;R2 <- R2 + 9
• 묵시적 (implied addressing mode)
•PUSH R2 ;M[Sp] <- R2
• 직접 (direct addressing mode)
• MOV R1, 5 ;R1 <- M[5]
• 간접 (indirect addressing mode)
• MOV R1, (5) ;R1 <- M[M[5]]
• 레지스터 (register addressing mode)
• ADD R3, R4 ;R3 <- R3 + R4
• 레지스터 간접 (register indirect addressing mode)
• ADD R3, (R4) ;R3 <- R3 + M[R4]
• 변위 (displacement addressing mode)
• MOV R1, 9(R2) ;R1 <- M[[R2] + 9]

Cpu basic

  • 1.
    CPU 기본구조 및구성요소 산술논리연산장 치 (ALU) • 산술 및 논리 데이터에 대해 실질적으로 연산을 하기 위한 하드웨어 모듈 레지스터 세트 (Register Set) • 여러 레지스터들의 집합 • 액세스 속도가 가장 빠르다 • 제한적이다 • 특수기능 레지스터(SPR): ◦ Program Counter(PC) ◦ Accumulator(AC) ◦ Instruction Register(IR) ◦ Stackpointer Register(SP) ◦ Memory Address Register(MAR) ◦ Memory Data Register(MDR) • 범용 레지스터(GPR) ◦ R0 ~ Rn 존재 제어 유닛 (Control Unit) • 명령어의 연산코드를 해독하는 명령어 해독기 • 해독에 따른 실행을 위한 제어신호 (Control Signals)들을 순차적으로 발생시키는 하드웨어 모듈 • 마이크로 명령어들로 이루어진 마이크로 프로그램을 저장하는 제어기억장치 등으로 구성 CPU 내부 버스 (CPU Internal Bus) • ALU와 레지스터들 간의 데이터 이동을 위한 데이터 선들과 제어 유닛으로부터 발생되는 제어 신호 선들로 구성된 내부 버 스 • 외부의 시스템 버스들과는 직접적 으로 연결되지 않고, 반드시 버퍼 레지 스터들 혹은 시스템 버스 인터페이스 회로 를 통하여 시스템 버스와 연결
  • 2.
    명령어 세트(Instruction Set) CPU의기능은 이들에 의해 결정된다 그들의 수와 종류는 CPU에 따라 많이 다르다 명령어 종류 • 데이터 전송 명령 ◦ Reg-to-Reg, Reg-to-Mem, Mem-to-Mem 간의 데이터를 이동시키는 명령 • 산술 연산 명령 ◦ 2의 보수 및 부동소수점 수에 관한 +, -, * , / 과 같은 기본적인 산술 연산 명령 • 논리 연산 명령 ◦ 데이터의 각 비트들 간에 대한 AND, OR, NOT, XOR 등의 논리 연산 명령 • 입출력(I/O) 명령 ◦ CPU와 외부 I/O 장치들 간의 데이터를 이동시키는 명령 • 프로그램 제어 명령 ◦ 각 명령어의 실행 순서를 변경하는 분기 (Branch) 명령과 서브루틴 호출(Subroutine Call) 및 리턴 명령 명령어 형식 Op-code CPU에서 실행될 연산 지정 LOAD, ADD, JUMP 등 Operand 연산을 실행하는 데 필요한 데이터 혹은 주소 값을 포함 • Op-code 필드의 비트 수 ◦ CPU애서 수행될 연산 종류의 수에 따라 비트의 수가 결정 ◦ 4비트 -> 16가지의 연산 정의 ◦ 5비트 -> 32가지의 연산 정의 • Operand 필드의 비트 수 ◦ Operand 종류에 따라 결정 ◦ Immediate Value -> 표현 가능한 수의 범위가 결정 ◦ Memory Address -> 기억장치의 영역 범위가 결정 ◦ Register No. -> 범용 레지스터의 수를 결정
  • 3.
    명령어 형식의 예 Op-codeOperand 1-address Instruction Op code 12Bit의 데이터, 주소 공간 2-address Instruction Op code 4Bit 16개의 Reg 4Bit 16개의 Reg Unused 2-address Instruction Op code 4Bit 16개의 Reg 8Bit의 데이터, 주소 공간 3-address Instruction Op code 4Bit 16개의 Reg 4Bit 16개의 Reg 4Bit 16개의 Reg 3-address Instruction Op code 4Bit 16개의 Reg 4Bit 16개의 Reg 4Bit의 데이터, 주소 공 간
  • 4.
    명령어 형식의 예:실행 예제 1-address instruction 2-address instruction 3-address instruction 실행할 프로그램 : X = (A + B) * (C - D) 7 6 3
  • 5.
    명령어 주소지정 방식 (Addressingmode) • 즉치 (immediate addressing mode) • ADD R2, #9 ;R2 <- R2 + 9 • 묵시적 (implied addressing mode) •PUSH R2 ;M[Sp] <- R2 • 직접 (direct addressing mode) • MOV R1, 5 ;R1 <- M[5] • 간접 (indirect addressing mode) • MOV R1, (5) ;R1 <- M[M[5]] • 레지스터 (register addressing mode) • ADD R3, R4 ;R3 <- R3 + R4 • 레지스터 간접 (register indirect addressing mode) • ADD R3, (R4) ;R3 <- R3 + M[R4] • 변위 (displacement addressing mode) • MOV R1, 9(R2) ;R1 <- M[[R2] + 9]