맨키리

목표는 세계정복 목적은 우주대통합

[공부]/[정보처리기사]

[필기] 정보처리기사 12강

우주최강자맨키리 2021. 3. 11. 10:52
SMALL

TOPIC : CPU 및 명령어 체제

1. CPU 중앙 처리장치

컴퓨터의 뇌, CPU에 따라서 컴퓨터의 성능이 좌지우지됨.

1-1. CPU의 기능 4가지

  • 제어 - PC (Program Counter)와 Major State에 의해 제어됨.
  • 연산 - ALU (Arithmetic Logic Unit)에 의해 처리. 수로 산술 및 논리연산
  • 전달 - BUS, CPU와 ALU, 주기억장치와 주변장치를 연결시켜주는 통로
  • 기억 - 레지스터, CPU에서의 임시기억장치

1-2. CPU의 구성

  • 버스(BUS) : 명령 전달 기능 담당, 데이터 전달 통로. 종류에는 내부버스 · 외부버스가 있다.
    1. 내부버스 : 주로 컴퓨터 CPU내의 신호를 연결하는 통로
    2. 외부버스 : 구조 / 신호에 따라 구분된다.
      • 구조에 따라 : I/O 버스, 신호 시스템
      • 신호에 따라 : 데이터 버스, 주소 버스, 제어 버스
  • PSW 상태 레지스터 (Program Status Word), 프로그램 상태를 워드 단위로 기록함. (1 Word = 4 Byte)

2. 명령어

한낱 인간의 언어를 콤퓨타님이 실행할 수 있도록

2-1. 명령어의 구성

1. OP-Code / Operand

① 명령 코드 라 써있는 부분은 연산자 OP-Code (Operation Code), 명령 지시부분을 의미하고, ② 오퍼랜드 주소 라 써있는 부분은 주소부 (Operand), 해당 데이터가 위치한 장소를 의미한다.

 

트리플머쉬룸와퍼를 내게 줘 식탁 위에 있는거
OP-Code (명령 지시부) Operand (주소부)

지금 보니까 영어 문법이랑 비슷하네  Toss me a hamburger which is on the table..

 

OP-Code에 위치한 명령어의 형식에 따라서도 속도가 다르다. (중요)

SI RRI ACI MRI MMI
STACK 레지스터 누산기(AC) 메모리 메모리-메모리

왼쪽으로 갈수록 빠른 속도이며, 생각해보면 CPU는 레지스터로 이뤄져있고, 메모리는 일반 기억장치인데 중앙에서 처리하는 게 빠르겠냐 저장장치 까지 가서 명령 실행하는 게 빠르겠냐.

 

외울 땐 스람무~(SRAMM)


2-2. 명령어 해석

 

저급언어
(Machine Language)
어셈블리어
(Assembly Language)
고급언어
> 컴퓨터용 언어 (Bianary)

> 단순하게 이뤄져있어 속도가 높다.
>완벽한 저급언어는
아니지만 저급언어의 일종

>종류에는 두 가지.

1. Symbolic Language : 기계어와 1:1 대응되는 기호로 작성하는 언어

2. 매크로 : 단순 명령 반복 언어
> 사람용 언어 (Decimal)

> 사람이 작성하므로 오류 수정, 작성 쉬우나 속도가 느림

> 따라서 컴퓨터가 이해하도록 바꿔주는 게 번역이고 이는 컴파일러와 인터프리터, 그리고 어셈블러가
담당함.

위에서도 살펴봤듯, 사람의 명령을 컴퓨터가 실행하기 위해선 일련의 과정이 필요하다.

언어 번역과정은 다음과 같다.

언어 번역과정 : 원시프로그램 - 번역 - 목적프로그램(Binary) - 링커 - 로드모듈 - 로더 - 실행
  • 중간에 있는 링커는 말 그대로 중간역할을 수행. 무슨얘기냐면 목적프로그램들 중 실행 가능한 애들을 뽑아서 로드모듈로 실행 가능하게 만들어줌. 이걸 로더가 실행시키는 것.
  • 로더는 그럼 실행만 하나? - 그건 아니고, 주기억장치 쪽으로 실행하게 만들어주는 역할이고 기능은 다음과 같다.
    1. 할당 (Allocation)
    2. 재배치 (Relocation)
    3. 적재 (Loading)
    4. 연결 (Linking)

2-3. 언어 번역기의 비교

 

중간 매개자인 링커에게 선택받는 애들은 목적프로그램 (2진수, Binary). 원시프로그램을 번역해야만 목적프로그램이 될 수 있고, 이렇게 번역하는 데에는 위 고급언어에서 살펴봤듯 세 친구가 참여함.

  1. 컴파일러, 인터프리터 : 고급언어 → 기계어(Binary)
  2. 어셈블러 : 기계어(Binary) → 고급언어(Decimal)

고급언어에서 기계어로 바꾸는 컴파일러와 인터프리터는 각각 성질이 다르다.

컴파일러 인터프리터
> 대화형, 행단위 번역

> 목적프로그램을 생성하지 않는다.

> 사용 언어는 BASIC, LISP
> 전체를 한번에 번역해 속도가 빠르다

> 목적프로그램을 생성한다.

> 사용 언어는 COBOL, Fortran
LIST

'[공부] > [정보처리기사]' 카테고리의 다른 글

[필기] 정보처리기사 14강  (0) 2021.03.12
[필기] 정보처리기사 13강  (0) 2021.03.11
[필기] 정보처리기사 11강  (0) 2021.03.10
[필기] 정보처리기사 10강  (0) 2021.02.22
[필기] 정보처리기사 9강  (0) 2021.02.22