컴퓨터 정보의 표현

1. 단위

    -비트(Bit): 가장 기본 단위, 0또는 1로 표현

    -바이트(Byte): 1바이트 = 8비트

    -워드(Word): half word: 2byte, full word: 4 byte, double word:8 byte

 

2. 진법

    -10진법: 0~9를 사용(일상생활에서 사용하는 체계)

    -2진법: 0, 1을 사용(컴퓨터가 사용)

    -8진법: 0부터 7숫자를 사용

    -16진법: 0부터 9숫자를 사용하지만 이후 A, B, C, D, E, F를 사용

    ex) 10진수 15는 2진수로는 1111, 16진수로는 F이다.

         10진수 8은 2진수로는 1000, 16진수로는 8이다.

 

2-1. 부호 없는 2진 정수 표현

    -2진수 -> 10진수 변환

        ex) 2진수 1101를 뒤에서 부터 2^0, 2^1, 2^2, 2^3 ... 를 곱해서 모두 더해준다.

            1 x 2^0 + 0 x 2^1 + 1 x 2^2 + 1 x 2^3 = 1 + 0 + 4 + 8 = 13 임을 알 수 있다.

 

2-2. 부호 있는 2진 정수 표현_n비트의 부호 절댓값 형식

    -최상위 1비트를 양수면 0, 음수면 1로 표시한다.

       ex) +15 = 00001111, -15 = 10001111

    -n비트로 -2^(n-1) ~ +2^(n-1) 표현이 가능하다.

    -하지만 0을 나타낼 때 00000000, 10000000 모두 가능하다는 논리오류가 있다.

 

2-3 부호 있는 2진 정수 표현_1의 보수 형식

    -2진수의 절댓값에 1의 보수를 사용(비트 반전)

       ex) +15 = 00001111, -15 = 11110000

    -n비트로 -2^(n-1) ~ +2^(n-1) 표현이 가능하다.

    -0을 표현하는데 논리 오류가 있다.

 

2-4 부호 있는 2진 정수 표현_2의 보수 형식

    -1의 보수에 1을 더한다.

       ex) +15 = 00001111, -15 = 11110001

    -n비트로 -2^(n-1) ~ +2^(n-1)-1 표현이 가능하다.

 

 

 

*오버플로우

    -최상위 비트를 부호비트로 쓰기 때문에 자리 올림이 일어나면 양수의 최고값을 넘어서는 것.

    -2의 보수에서 127값은 01111111인데 여기서 1값이 올라가면 10000000이 된다. 즉 -128이 되는 것.

    -c = (a + b) mod 2^n = a + b - 2^n < a 즉, a + b 인 c가 c < a 거나 c < b 면 오버 플로우

 

3. 2진수의 논리 연산

    -기본 논리 연산

 AND연산 모두 1이여야 1, 하나라도 0이면 0
OR연산 하나라도 1이면 1, 모두 0이면 0

    -응용 논리 연산

Selective-set(선택적 세트) 연산 선택적으로 비트를 1로 세트 시킴

특정비트가 1로 세트된 데이터와

OR연산한다.

Selective-complement(선택적 보수) 연산 선택적으로 비트를 1의 보수화

특정비트가 1로 세트된 데이터와

XOR연산한다.

Mask(마스크) 연산 선택적으로 비트를 0으로 세트 시킴 

특정비트가 0으로 세트된 데이터와

AND연산한다.

Insert(삽입) 연산 특정 위치에 새로운 비트 삽입 마스크 연산 후 선택적세트 연산한다.
Compare(비교) 연산 두 입력값을 비교 비트를 XOR연산한다.
Circlular shift(순환 이동) 비트가 순환하면서 이동 예를 들어 1001 좌측 이동은 0011
Arthmetic shift(산술적 이동) 부호비트 유지, 숫자만 이동 예를들어 1001 좌측 이동은 1010

 

 


[컴퓨터 구조 WEEK2_1]27기변주현_답안.hwp
0.01MB
[컴퓨터 구조 WEEK2_1]27기변주현_문제.hwp
0.01MB

컴퓨터 구성요소

컴퓨터 하드웨어 중앙처리장치(CPU) 연산장치
제어장치
기억장치 주기억장치
보조기억장치
입출력장치 입력장치
출력장치
소프트웨어 시스템 소프트웨어  
응용 소프트웨어  

 

 

1. 하드웨어 구성

1-1 CPU란?
  -Central Processing Unit의 약자로 인간의 '뇌' 역할을 한다.
  -컴퓨터 시스템을 통제하고 프로그램 연산을 실행 및 처리한다.
  -CPU의 성능이 PC의 속도와 성능을 결정한다.

 

1-2 CPU 레지스터란?(2번에서 설명 추가)

 -CPU 내에서 데이터를 저장한다.

 -주기억장치로부터 읽어온 명령어와 데이터를 임시 보관한다.

 -ALU 처리 결과 데이터를 임시 보관한다.

 

1-3 제어장치란?

 -명령어를 해독하고 제어 신호를 해당 장치에 전달한다.

 -명령어 형식: 연산 코드 + 기억장치 주소

 -연산코드: 수행되어야 할 연산이 지정되어 있는 필드

 -기억장치 주소: 해당 연산을 수행할 때 데이터가 저장되어 있는 주소


1-4 주기억장치란?
  -RAM과 ROM이 존재한다.
  -CPU와 직접 데이터 교환이 가능하다.


1-5 RAM이란?
  -읽고 쓰기가 가능한 기억장치이다.
  -현재 사용 중인 프로그램이나 데이터를 저장한다.
  -전원이 꺼지면 데이터가 사라진다.
  -주로 주기억장치로 사용된다.

 

1-6 ROM이란?
  -읽기만 가능한 기억장치이다.
  -전원이 꺼져도 데이터가 사라지지 않는다.

 

1-7 보조기억장치란?
  -하드디스크, 디스크, 자기 테이프 등이 있다.
  -CPU와 직접 데이터 교환이 불가능하다.


1-8 캐시 메모리란?
  -CPU와 주기억장치 사이에 존재한다.
  -처리속도가 빠르다.

  -데이터를 임시적으로 가지고 있으며 CPU가 주기억장치로부터 데이터를 읽고 쓰는 속도를 높여준다.

 

Low CPU 내의 레지스터: Register High
용량 캐시 기억장치: Static Ram 속도, 가격
주기억장치: Dynamic Ram
High 보조기억장치: 하드 디스크, 플로피 디스크, 자기테이프 Low

 

 

2. CPU 레지스터

2-1 기억 장치 버퍼 레지스터

 -CPU가 명령어를 처리하기 위해 주기억장치에서 읽어온 데이터를 임시적으로 저장하는 것이다.

 -데이터를 임시적으로 저장하고 있기 때문에 완충제 역할을 한다고 볼 수 있다.

 

2-2 명령어 레지스터

 -기억 장치 버퍼 레지스트의 명령어를 저장한다.

 

2-3 기억장치 주소 레지스터

 -명령어 레지스터에 저장된 명령어의 주소 번지를 저장한다.

 ex) 만약 ADD(2,3)이 들어왔다면 2와 3의 주소를 전달 받는 것

 -데이터를 임시적으로 저장하고 있기 때문에 완충제 역할을 한다고 볼 수 있다.

 

2-4 명령어 해독기

 -명령어 레지스터에 저장된 명령어 연산코드의 필드를 전달받는다.

 -연산코드 필드를 해독/ 수행할 연산을 결정해서 연산장치에 전달한다.

 ex) 만약 ADD(2,3)이 들어왔다면 ADD를 전달 받는 것

 

2-5 프로그램 카운터

 -다음 수행할 명령어의 주소 번지를 저장한다.

 -프로그램 카운터에 들어있던 명령어 주소에 있는 명령어가 실행되는 순간 다음 수행할 명령어의 주소가 프로그램 카운터에 들어간다.

 

2-6 제어장치의 기본 동작 과정

 1. RAM에서 먼저 실행할 명령어를 명령어 레지스터에 넣는다.

 2. 명령어 레지스터에 하나의 명령어가 들어가는 순간 다음 수행할 명령어 주소를 프로그램 카운터에 넣는다.

 3. 현재 명령어 레지스터를 해석해서 명령어는 명령어 해독기에, 데이터의 주소는 기억장치 주소 레지스터에 전달한다.

 4. ALU가 동작하면서 연산을 실행한다. 

 

 

3. 버스

 

3-1 데이터 신호(데이터 버스)

 -CPU와 기억장치와 입출력장치가 데이터를 주고 받는 신호선

 -실질적인 데이터 전달

 

3-2 명령 신호(제어 버스)

 -CPU가 컴퓨터 시스템의 장치 동작을 제어하기 위한 신호선

 -제어장치에서 발생되는 제어 신호를 전달

 

 

4. CPU 명령어 수행과정

4-1 인출(Fetch)

 -주기억장치에서 명령어를 불러온다.

 -수행을 시작할 주소를 프로그램 카운터에 저장한다.

 

4-2 해독(Decode)

 -불러온 명령어를 해독한다.

 -여기서 명령어의 종류와 타켓을 판단한다.

 

4-3 실행(Execute)

 -연산을 수행한다.

 

4-4 저장(Store)

 -처리된 데이터를 메모리에 저장한다.

 

 

5. ALU(산술논리연산장치)

5-1 ALU란?

 -연산에 필요한 자료를 입력받아 산술 및 논리 연산을 수행한다.

 

5-2 구성요소

 -가산기: 덧셈

 -레지스터: 연산에 사용되는 데이터와 연산 결과 등을 임시적으로 기억

    ex) 명령 레지스터, 프로그램 카운터, 연산용 레지스터 등

 -보수기: 컴퓨터에서 감산을 할 때 빼는 수를 보수로 바꾸어 가산기에 입력하여 덧셈을 하도록 한다.

 -오버플로 검출기: 오버플로를 검출하여 데이터 상태를 표시한다.(음수, 0, 오버플로)

   *오버플로: 연산 결과를 레지스터에 모두 저장할 수 없는 경우

 

5-3 산술연산과 논리연산

 -산술연산: 사칙 연산 가능

 -논리연산: 논리 조작, 자리 이동, 편집, 변환

 

 

참고)

디지털논리와 컴퓨터 설계, Harris et al. (조영완 외 번역), 사이텍미디어, 2007,

컴퓨터 구조와 원리 (비주얼 컴퓨터 아키텍처), 신종홍 저, 한빛미디어, 2011


스터디에서 나온 질문

Q1. 프로그램 카운터의 값은 어느 시점에 무슨 값으로 바뀌어야 할까?

Q2. 3번 과정의 명령어 해석과정을 수행하는 레지스터는?

Q3. 명령어 레지스터에 명령어가 패치 된 이후에 하는 또 다른 한 가지의 작업은 무엇일까?

Q4. 1번 과정에서 언급되지 않은 레지스터는? 그 용도와 역할은?

 

A1. 실행할 명령어가 명령어 레지스터에 들어갈 때 다음 명령어의 주소값으로 바뀐다.

A2. 명령어 레지스터가 해석해서 데이터의 주소는 기억장치 주소 레지스터로, 명령어는 명령어 해독기로 보낸다.

A3. 프로그램 카운터 값이 바뀐다.

A4. 기억 장치 버퍼 레지스터. CPU가 명령어를 처리하기 위해 주기억장치에서 읽어온 명령어를 임시적으로 저장한다.

 


개별 문제 출제 & 답안

 

[컴퓨터 구조 WEEK1]27기변주현_답안.hwp
0.01MB
[컴퓨터 구조 WEEK1]27기변주현_문제.hwp
0.01MB

 

+ Recent posts