컴퓨터의 내부 구조

모든 컴퓨터의 내부 구조는 크게 세 부분으로 나누어진다. : 

  CPU(Central Processing Unit, 중앙처리장치), 메모리, I/O(Input/Output, 입출력) 장치.

CPU는 버스(bus)라 불리는 여러 가닥의 전선을 통해 메모리와 I/O장치에 연결되어 있다.

컴퓨터에는 어드레스 버스(address bus), 데이터 버스(data bus), 컨트롤 버스(control bus)의 세 가지 종류의 버스가 있다.


버스(bus) : 구성 요소들간에 교환할 각종 정보들을 전송하는 선(line)들로 구성.

1) 데이터 버스(data bus)

  · CPU와 장치 사이의 정보 교환을 위한 선들의 집합.

  · 양방향 전송.

  · 크기가 클수록 CPU의 성능이 좋다고 할 수 있다.

2) 어드레스 버스(address bus)

  · CPU에 연결된 메모리와 장치를 선택하기 위한 선들의 집합.

  · 단방향 전송

  · 클수록 더 많은 양의 메모리 혹은 장치를 번지지정할 수 있다.(기억장치의 용량이 결정)

    x를 어드레스 라인의 수라고 할 때 메모리의 최대 위치 개수는 

3) 컨트롤 버스(control bus)

  · CPU와 기억장치 및 I/O 장치 사이에 제어 신호들을 전송하는 선들의 집합.


CPU와 RAM, ROM과의 관계

CPU가 처리할 정보는 RAM이나 ROM에 저장되어 있어야 한다. ROM(Read Only Memory)은 비휘발성 메모리로써 컴퓨터 작동에 필수적인 프로그램, RAM을 테스트하고 설치된 RAM의 크기를 알아내는 프로그램등 변하지 않고 꼭 필요한 정보만을 보관하고 있다가 CPU에 제공한다. RAM(Random Access Memory)은 전원을 끄면 보관되어 있던 데이터는 모두 사라지는 휘발성 메모리로써 실행되고 있는 프로그램을 일시적으로 저장하거나 사용자나 프로그램에 의해 내용을 바꿀수 있는 정보를 저장하기 위해 사용되며 예로 들면 워드프로세싱, 운영체제등 응용프로그램들이 해당된다.

CPU는 처리할 정보를 먼저 RAM, ROM에서 찾아보고 없을 경우 디스크에서 찾는다. 디스크에 있는 정보는 먼저 RAM으로 옮겨진 다음 처리되는데 이런 이유로 해서 RAM, ROM을 주기억장치(primary memory), 디스크를 보조기억장치(secondary memory)라 부르기도 한다.


CPU의 내부

CPU의 가장 기본적인 기능은 메모리에 저장되어 있는 명령어를 읽어와서 수행하는 것이다.  

1. 레지스터(register)CPU가 가지고 있는 자원 중 가장 중요한 것으로 정보를 일시적으로 저장하기 위해 사용

   레지스터가 많을수록 좋은 CPU지만 그 만큼 가격이 비싸다.

2. ALU(Arithmetic / Logic Unit, 연산장치) : 산술연산과 논리연산을 수행한다.

3. PC(Program counter) : 다음에 수행할 명령어의 주소를 가르킴. IBM PC에서는 IP(instruction pointer)라고 부른다

4. 명령어 디코더(instruction decoder) : CPU 내부로 읽어온 명령어를 해독하는 역할.

   따라서 명령어의 의미를 보관하고 있다가 어떤 명령어가 주어지면 CPU가 어떤 작업을 해야 하는지 알려주는 역할.

조합논리회로 :

논리곱(AND), 논리합(OR), 논리부정(NOT)이라는 기본 논리회로의 조합으로 만들어지며, 입력신로, 논리게이트 및 출력신호로 구성. -> 현재의 입력에 의해서만 출력된다.

조합논리로는 가산기(adder), 비교기(comparator), 디코더(decoder), 인코더(encoder), 멀티플렉서(multiplexer), 디멀티플렉서(demultiplexer), 코드변환기(code-converter) 등이 있다.

 

[그림] 조합논리회로 블록도

 

가산기

1. 반가산기(half-adder : HA) :

자리올림값을 받지않으며 한 자리 2진수 2개 입력하여 합(sum)과 자리올림(carry)를 계산하는 덧셈회로.

 

 

입력

출력 

X

Y

S

C

0

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

[표] 진리표

[그림] 논리식

 

 

[그림] 논리기호

[그림] 논리회로

 

 

2. 전가산기(full-adder : FA) :

자리올림값(carry)로 입력받는 경우.

 

 

 

 

[그림] 논리식

 

입력

출력

X

Y

 

S

0

0

0

0

0

0

1

0

0

1

1

0

0

1

0

1

1

0

1

0

1

0

0

1

1

1

0

1

1

1

1

1

 

[그림] 논리기호

[표] 진리표

 [그림] 논리회로

  

[그림] 반가산기를 이용한 전가산기 회로

 

 

3. 병렬가감산기

전가산기 여러개를 병렬로 연결하면 2비트 이상인 가산가를 만들 수 있다. 이를 병렬가산기(parallel-adder)라고한다. 계산 결과 합은 이며, 최종 캐리는 다.

 

[그림] 전가산기를 이용한 병렬가산기

 

위 병렬가산기의 Y에 부호 S(sign)와 XOR하여 입력하면 덧셈과 뺄셈 모두 가능하다. 즉, S가 1이면 Y의 값은 반전이 되어 1의 보수가 입력된다. 그리고 캐리의 값도 1이 입력되어 결과적으로 Y의 2의 보수가 만들어진다.

그러므로 병렬가감산기(parallel-adder/subtracter) 회로가 된다.

 

[그림] 병렬가감산기

 


+ Recent posts