[無에서 시작하는 컴퓨터&과학]

[컴퓨터][18] 초기의 컴퓨터 : 산술/논리 연산 회로 총정리 (산술/논리 연산 회로 1~5)

core-basic 2024. 9. 7. 23:28
728x90

※ 해당 게시글은 주제를 탐구하면서 주관적인 생각을 정리 한 글입니다.


이전 글들을 다시 정리해 보면

(1) 컴퓨터는 어떻게 동작하는지 원리 파악

논리 게이트를 통해 컴퓨터가 동작한다는 것은 알게 되었지만,

구체적으로 컴퓨터가 동작하려면 게이트나 회로 단위에서 무엇을 구현해야 하고,

그것을 어떻게 구현하는지에 대해서는 정확히 알지 못했다.

 

[컴퓨터][3] 스위치회로와 0과 1, 그리고 부울 대수(Boolean Algebra) - 2

이전 글을 통해서 스위치 회로는 전류를 흐르지 못하게 하거나, 다시 흐르게 하거나, 2가지 상태를 표현할 수 있고이를 숫자기호 0과 1, 또는 문자기호 off/on으로 표기할 수 있다는 것을 알게 되

core-basic.tistory.com


(2) 컴퓨터 설계 목적과 발전 과정 파악 

그래서 무엇을 구현해야 하는지 알아보기 위해

컴퓨터 설계의 목적과 그 발전과정을 살펴보았고,

그 결과 초기의 컴퓨터는

산술/논리 연산 등의 수학적 계산을 자동화하기 위해 설계되었음을 알 수 있었다.

그리고 이후 연산 결과를 재사용하기 위해 메모리 장치가 추가되었고,

다양한 연산과 자동화를 위해서 제어장치가 추가되었음을 알 수 있었다.

 

[컴퓨터][12] 게이트로 컴퓨터를 구현한다는 것은 어떤 의미인가 (폰 노이만 구조)

※ 해당 게시글은 주제를 탐구하면서 주관적인 생각을 정리 한 글입니다.이전 글들을 통해서컴퓨터가 다양한 전류의 흐름을 제어하는 회로로 구성되어 있으며각 회로는 사람의 언어로

core-basic.tistory.com

 


(3) 산술/논리 연산 장치의 필요성 파악

즉, 초기의 컴퓨터 = 산술/논리 연산 회로였으며, 컴퓨터 발전의 출발점이었다

. 이에 따라 현재와 같은 컴퓨터를 구현하기 위해서는

우선 산술/논리 연산 회로를 구축할 필요가 있다는 것을 알게 되었다.


(4) 산술/논리 연산 장치 요구사항 파악

그렇다면 산술/논리 연산 회로는 어떠한 연산들을 수행해야 하며,

또 이러한 연산들은 어떻게 논리 게이트로 구현되는지 파악할 필요가 있었다.

이에 따라 탐구한 결과 초기 산술/논리 연산 회로는

AND, OR, XOR, NOT, NAND, NOR, XNOR 등 기본적인 논리 연산과,

덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷) 등의 기본적인 산술 연산을

수행할 수 있어야 했다.


(5) 논리 게이트를 활용해 요구사항 구현

이후 AND, OR, XOR, NOT, NAND, NOR, XNOR 등 논리 연산들과,

덧셈, 뺄셈, 곱셈, 나눗셈 등 산술 연산들이

어떻게 논리 게이트로 구현되는지 살펴보았고,

그 결과 산술/논리 연산 회로는

AND, OR, XOR, NOT 연산 회로 그리고

덧셈/뺄셈 회로,  시프트 연산 회로, 곱셈 회로, 비교 연산 회로

이렇게 총 8가지 회로로 구성되었음을 알 수 있었다.

 

[컴퓨터][13] 산술/논리 연산 회로 - 1 (이진법과 비트 그리고 덧셈 회로 : 반가산기)

※ 해당 게시글은 주제를 탐구하면서 주관적인 생각을 정리 한 글입니다.이전 글을 통해서 컴퓨터 설계 목적과 그 목적에 알맞은 폰 노이만 컴퓨터 구조를 살펴보았다.컴퓨터는 초기에

core-basic.tistory.com

 

 

[컴퓨터][14] 산술/논리 연산 회로 - 2 (덧셈 회로 : 전가산기, 8bit 전가산기)

※ 해당 게시글은 주제를 탐구하면서 주관적인 생각을 정리 한 글입니다.이전 글을 통해서컴퓨터는 초기에 산술/논리 연산 등 수학적 계산을 자동화하고자 설계되었고,이에 따라 산술/논

core-basic.tistory.com

 

 

[컴퓨터][15] 산술/논리 연산 회로 - 3 (뺄셈 회로와 2의 보수)

※ 해당 게시글은 주제를 탐구하면서 주관적인 생각을 정리 한 글입니다.이전 글을 통해서컴퓨터는 초기에 산술/논리 연산 등 수학적 계산을 자동화하고자 설계되었음에 따라, 기본적인

core-basic.tistory.com

 

 

[컴퓨터][16] 산술/논리 연산 회로 - 4 (곱셈 회로와 시프트(Shift) 연산)

※ 해당 게시글은 주제를 탐구하면서 주관적인 생각을 정리 한 글입니다.이전 글을 통해서컴퓨터는 초기에 산술/논리 연산 등 수학적 계산을 자동화하고자 설계되었다는 것을 알게 되었

core-basic.tistory.com

 

 

[컴퓨터][17] 산술/논리 연산 회로 - 5 (나눗셈 회로와 비교 연산 그리고 메모리)

※ 해당 게시글은 주제를 탐구하면서 주관적인 생각을 정리 한 글입니다.이전 글을 통해서컴퓨터는 초기에 산술/논리 연산 등 수학적 계산을 자동화하고자설계되었다는 것을 알게 되었

core-basic.tistory.com

 


(6) 산술/논리 연산의 한계 파악

하지만, 산술/논리 연산 회로는 나눗셈 연산과 같이

다른 산술/논리 연산들과 달리 연산 중간 결과를 저장하고, 활용해야 하는

복잡한 연산으로부터 한계가 발생했다.

 

따라서

그래서 이번 글을 통해 지금까지 살펴본

초기의 컴퓨터 : 산술/논리 연산 회로의 구성요소를 정리한 후

다음 주제로는

연산 중간 결과를 저장하고, 활용할 수 없는 초기의 컴퓨터의 한계를

극복시켜 준 메모리 회로에 대해 탐구해 보겠다.


< 산술/논리 연산 회로 총정리 >
(총 8개의 연산 회로)

 

[ 1. AND 연산 회로 ]
ex) 1 AND 1


※ 해당 이미지는 Paul falstad 사이트를 통해 제작하였습니다.
< AND 게이트 기호 >


[ 2. OR 연산 회로 ]
ex) 1 OR 1


※ 해당 이미지는 Paul falstad 사이트를 통해 제작하였습니다.
< OR 게이트 기호 >


[ 3. NOT 연산 회로 ]
ex) NOT 1


※ 해당 이미지는 Paul falstad 사이트를 통해 제작하였습니다.
< NOT 게이트 기호 >


[ 4. XOR 연산 회로 ]
[ A AND (NOT B) OR (NOT A) AND B]
ex) 1 XOR 1

※ 해당 이미지는 Paul falstad 사이트를 통해 제작하였습니다.

< XOR 게이트 기호 >


[ 5. 전가산기 회로 (덧셈 연산 회로) ]

※ 해당 이미지는 Paul falstad 사이트를 통해 제작하였습니다.

< 전가산기 기호 >

 

< 8x8 전가산기 : 덧셈 회로 + 뺄셈 연산 회로 >

CI = 1 일 때 뺄셈 회로가 진행되고,
CI = 0 일 때 덧셈 회로가 진행된다.

ex)  A(2) + B(1)

※ 해당 이미지는 Paul falstad 사이트를 통해 제작하였습니다.

 

ex)  A(2) - B(1)

※ 해당 이미지는 Paul falstad 사이트를 통해 제작하였습니다.


[ 6. 전가산기 회로 (덧셈 연산 회로) ]

< 왼쪽 시프트 연산 >
ex) 0000 1000 → 0001 0000

< 오른쪽 시프트 연산 >
ex) 0000 1000 → 0000 0100


< 왼쪽 시프트 기호 >
< 오른쪽 시프트 기호 >

[ 7. 곱셈 연산 회로 ]
ex) 0011(3) × 0011(3) = 1001 (9)


[ 8. 비교 연산 회로 ]

< 1x1 비교 연산 회로 >
ex) 
[A₀] = 1
[B₀] = 0

※ 해당 이미지는 Paul falstad 사이트를 통해 제작하였습니다.

 

< 상위 비트를 고려한 1x1 비교 연산 회로 >
ex)
A = [A₁][A₀] = 01
B = [B₁][B₀] = 00

※ 해당 이미지는 Paul falstad 사이트를 통해 제작하였습니다.

 

< 2x2 비교 연산 회로 >
ex)
A = [A₁][A₀] = 01
B = [B₁][B₀] = 00

※ 해당 이미지는 Paul falstad 사이트를 통해 제작하였습니다.


< 초기 컴퓨터(:산술/논리 연산 회로)의 한계와 극복 및 발전>

초기 컴퓨터는 산술/논리 연산을 자동화하기 위한 목적으로 설계되었다.

이러한 회로들은 기본적인 수학적 계산을 빠르게 수행할 수 있었지만,

연산 결과를 저장하거나 재사용하는 기능이 없었기 때문에 한계가 분명했다.

특히,

나눗셈과 같은 복잡한 연산에서는 중간 결과를 저장해야 하는데, 이를 처리할 수 없었다.

이러한 한계를 극복하기 위해, 메모리 회로가 등장하게 되었다.

 

메모리 회로는 계산 결과를 저장하고 필요할 때

다시 불러올 수 있는 기능을 제공함으로써 복잡한 연산도 처리할 수 있게 해 주었다.

 

하지만,

초기 컴퓨터는 여전히 산술/논리 연산 회로의 각 연산을

독립적으로 제어해야 하는 한계점이 남아 있었다.

즉, 사용자가 특정 연산을 수행하려면 직접 해당 연산 회로에 이진수를 입력해야 했고,

이는 매우 수동적이고 제한적인 방식이었다

예를 들어, AND 연산을 수행하려면 직접 AND 회로에 접근해야 하는 방식이었다.

 

컴퓨터는 이러한 제한된 연산 방식을 자동화하기 위해,

제어장치라는 혁신적인 구성 요소를 추가했다.

제어장치는 사용자의 입력에 따라 어떤 연산을 수행할지 선택할 수 있도록 도와주고,

메모리와 산술/논리 연산 회로를 연결하여

여러 작업을 연속적으로 처리할 수 있게 해 준다.

 

이로 인해 컴퓨터는 단순 계산기에서

복잡한 연산을 자동으로 처리하는 시스템으로 발전하게 되었다.

이와 같이 컴퓨터는 산술/논리 연산 회로의 한계를 극복하고,

메모리와 제어장치가 자연스럽게 추가되면서 점진적으로

발전해 지금의 컴퓨터와 비슷하게 될 수 있었다.


※ 해당 게시글은 주제를 탐구하면서 주관적인 생각을 정리 한 글입니다.

728x90