블로그 이미지
No pain, no gain!
lepoussin

Tag

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
  • total
  • today
  • yesterday
05-05 09:34

1. 프로세서의 구조
  1) 레지스터(Register) : 프로세서 내부에 있는 데이터를 일시적으로 보관하는 조그만 임시 기억장치
    - 프로그램의 실행 중에 사용되며 고속으로 액세스
    - 범용 레지스터 : 사용자가 프로그램 내에서 또는 데이터 처리에 필요한 작업을 수행하기 위해서 사용
    - 제어용 레지스터 : 프로그램 카운터(PC)와 같이 프로그램이나 프로세서를 제어할 때 사용
    - 상태 레지스터 : 프로세서의 상태
    - 물리적으로 플립플롭(flip-flop)과 래치(Latch)로 구성
  2) 연산장치(ALU : Arithmetic and Logic Unit)
    - 산술, 논리, 보수, 쉬프트 연산 수행
    - 상태(status) or 플래그(flag) 레지스터 : 프로세서가 연산 장치의 연산 결과에 따른 상태와 연산 결과 표시
  3) 제어장치(CU : Control Unit) : 명령을 해석하고 그것을 실행하며, 명령을 읽고 실행하는데 필요한 프로세서 내부의 각 장치 사이의 데이터 흐름을 제어(Fetch → Decode → Execute)
    - 명령 레지스터(instruction register) : PC가 지시하는 위치의 주기억장치에서 읽어온 명령을 임시로 기억
    - 명령 해독기(instruction decoder) : 명령 레지스터에 기록되어 있는 명령을 받아서 해독
    - 제어신호 발생기 : 명령 해독기에서 발생된 제어신호에 따라 명령어를 실행
  4) 프로세서의 내부 버스
    - 여러 장치들을 연결하는 경로
    - 레지스터의 뱅크 ↔ 연산장치

2. 프로세서의 종류
  - i386
  - ARM
  - MIPS
  - PowerPC
  - M68K

3. 프로그램과 명령
  ※ 프로그램 : 프로세서를 통하여 어떤 결과를 얻기 위해 프로세서가 받아들일 수 있는 형태의 명령을 나열하여 구성한 문장
  ※ 기계어(Machine Language) : 프로세서가 이해할 수 있는 2진수로 표현한 언어
  1) 명령
    - 명령어 : Operation code와 Operand로 구성
    - 명령어 처리 과정
      ① Fetch : PC → AR → IR
      ② Decode : IR 내에 있는 명령어를 해독하여 적절한 제어신호를 연산장치, 메모리 등에 전송
      ③ Execute
        - 연산장치를 사용하는 명령어(ALU instruction)인 경우 : 연산 결과를 명령어에 명시한 레지스터에 저장
        - 조건 분기 명령어(conditional branch instruction)인 경우 : 조건을 만족하면 PC의 내용을 분기 주소로 변경
        - 무조건 분기 명령어(unconditional branch instruction)인 경우 : PC의 내용을 분기 주소로 바꾼다.
        - 메모리 참조 명령어(memory reference instruction)인 경우 : 참조하고자 하는 메모리의 주소를 데이터용 AR로 보낸 후 메모리의 내용을 데이터 입력 레지스터로 읽어들여 명령어에 지정된 레지스터로 저장
      ④ 명령어 실행후 조건 분기 명령어 혹은 무조건 분기 명령어가 아니면 PC를 다음에 수행해야 할 주소로 바꾼 후(PC ← PC + 명령어의 길이), 다음 명령 처리
    2) 명령어와 프로세서 구조
      - CISC(Complex Instruction Set Computer)
        ⑴ 명령어의 수가 많다(보통 120~350개)
        ⑵ 명령어 중에는 특별한 일을 하는 것도 있다.
        ⑶ 주소지정 방식이 다양하다(8~24).
        ⑷ 명령어의 길이가 가변적이다.
        ⑸ 명령어 중에는 기억장치 내의 피연산자를 처리하는 것도 있다.
      - RISC(Reduced Instruction Set Computer)
        ⑴ 명령어 수를 최소화하여 시스템을 작고 빠르게 한다.
        ⑵ 명령어와 주소지정 방식을 최소화하여 제어장치 구조를 간단하게 구현한다.
        ⑶ 명령어의 길이가 고정되어 해독하기 쉽고 파이프라인 구성이 쉽다.
        ⑷ 기억 장치에 대한 접근은 Load/Store 명령에 제한, 이 두 명령을 제외한 나머지 연산은 모두 한 사이클에 처리된다.
      -  EISC(Extensible Instruction Set Computer)
        ⑴ operand 부분을 opcode와 독립적으로 구성하여 opcode가 필요로 하는 길이만큼 operand를 확장하도록 하는 명령어 구조 체계
        ⑵ 확장 레지스터(ER : Extension Register)와 확장 플래그(E : Extension flag) 도입하여 고정 길이의 명령어를 사용하면서 이와 같은 구조의 새로운 명령어 체계를 구현

posted by lepoussin