※ 해당 게시글은 주제를 탐구하면서 주관적인 생각을 정리 한 글입니다.
이전 글들을 다시 정리해 보면
(1) 컴퓨터는 어떻게 동작하는지 원리 파악
논리 게이트를 통해 컴퓨터가 동작한다는 것은 알게 되었지만,
구체적으로 컴퓨터가 동작하려면 게이트나 회로 단위에서 무엇을 구현해야 하고,
그것을 어떻게 구현하는지에 대해서는 정확히 알지 못했다.
(2) 컴퓨터 설계 목적과 발전 과정 파악
그래서 무엇을 구현해야 하는지 알아보기 위해
컴퓨터 설계의 목적과 그 발전과정을 살펴보았고,
그 결과 초기의 컴퓨터는
산술/논리 연산 등의 수학적 계산을 자동화하기 위해 설계되었음을 알 수 있었다.
그리고 이후 연산 결과를 재사용하기 위해 메모리 장치가 추가되었고,
다양한 연산과 자동화를 위해서 제어장치가 추가되었음을 알 수 있었다.
(3) 산술/논리 연산 장치의 필요성 파악
즉, 초기의 컴퓨터 = 산술/논리 연산 회로였으며, 컴퓨터 발전의 출발점이었다
. 이에 따라 현재와 같은 컴퓨터를 구현하기 위해서는
우선 산술/논리 연산 회로를 구축할 필요가 있다는 것을 알게 되었다.
(4) 산술/논리 연산 장치 요구사항 파악
그렇다면 산술/논리 연산 회로는 어떠한 연산들을 수행해야 하며,
또 이러한 연산들은 어떻게 논리 게이트로 구현되는지 파악할 필요가 있었다.
이에 따라 탐구한 결과 초기 산술/논리 연산 회로는
AND, OR, XOR, NOT, NAND, NOR, XNOR 등 기본적인 논리 연산과,
덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷) 등의 기본적인 산술 연산을
수행할 수 있어야 했다.
(5) 논리 게이트를 활용해 요구사항 구현
이후 AND, OR, XOR, NOT, NAND, NOR, XNOR 등 논리 연산들과,
덧셈, 뺄셈, 곱셈, 나눗셈 등 산술 연산들이
어떻게 논리 게이트로 구현되는지 살펴보았고,
그 결과 산술/논리 연산 회로는
AND, OR, XOR, NOT 연산 회로 그리고
덧셈/뺄셈 회로, 시프트 연산 회로, 곱셈 회로, 비교 연산 회로
이렇게 총 8가지 회로로 구성되었음을 알 수 있었다.
(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
< XOR 게이트 기호 >
[ 5. 전가산기 회로 (덧셈 연산 회로) ]
< 전가산기 기호 >
< 8x8 전가산기 : 덧셈 회로 + 뺄셈 연산 회로 >
CI = 1 일 때 뺄셈 회로가 진행되고,
CI = 0 일 때 덧셈 회로가 진행된다.
ex) A(2) + B(1)
ex) A(2) - B(1)
[ 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
< 상위 비트를 고려한 1x1 비교 연산 회로 >
ex)
A = [A₁][A₀] = 01
B = [B₁][B₀] = 00
< 2x2 비교 연산 회로 >
ex)
A = [A₁][A₀] = 01
B = [B₁][B₀] = 00
< 초기 컴퓨터(:산술/논리 연산 회로)의 한계와 극복 및 발전>
초기 컴퓨터는 산술/논리 연산을 자동화하기 위한 목적으로 설계되었다.
이러한 회로들은 기본적인 수학적 계산을 빠르게 수행할 수 있었지만,
연산 결과를 저장하거나 재사용하는 기능이 없었기 때문에 한계가 분명했다.
특히,
나눗셈과 같은 복잡한 연산에서는 중간 결과를 저장해야 하는데, 이를 처리할 수 없었다.
이러한 한계를 극복하기 위해, 메모리 회로가 등장하게 되었다.
메모리 회로는 계산 결과를 저장하고 필요할 때
다시 불러올 수 있는 기능을 제공함으로써 복잡한 연산도 처리할 수 있게 해 주었다.
하지만,
초기 컴퓨터는 여전히 산술/논리 연산 회로의 각 연산을
독립적으로 제어해야 하는 한계점이 남아 있었다.
즉, 사용자가 특정 연산을 수행하려면 직접 해당 연산 회로에 이진수를 입력해야 했고,
이는 매우 수동적이고 제한적인 방식이었다
예를 들어, AND 연산을 수행하려면 직접 AND 회로에 접근해야 하는 방식이었다.
컴퓨터는 이러한 제한된 연산 방식을 자동화하기 위해,
제어장치라는 혁신적인 구성 요소를 추가했다.
제어장치는 사용자의 입력에 따라 어떤 연산을 수행할지 선택할 수 있도록 도와주고,
메모리와 산술/논리 연산 회로를 연결하여
여러 작업을 연속적으로 처리할 수 있게 해 준다.
이로 인해 컴퓨터는 단순 계산기에서
복잡한 연산을 자동으로 처리하는 시스템으로 발전하게 되었다.
이와 같이 컴퓨터는 산술/논리 연산 회로의 한계를 극복하고,
메모리와 제어장치가 자연스럽게 추가되면서 점진적으로
발전해 지금의 컴퓨터와 비슷하게 될 수 있었다.
※ 해당 게시글은 주제를 탐구하면서 주관적인 생각을 정리 한 글입니다.
'[無에서 시작하는 컴퓨터&과학]' 카테고리의 다른 글
[컴퓨터][20] 메모리 회로 - 2 (바이트와 출력 제어기 그리고 레지스터 : Byte , Enabler , Register ) (0) | 2024.09.12 |
---|---|
[컴퓨터][19] 메모리 회로 - 1 (SR 래치(S-R latch), D 래치(D latch), JK플립플롭) (0) | 2024.09.10 |
[컴퓨터][17] 산술/논리 연산 회로 - 5 (나눗셈 회로와 비교 연산 그리고 메모리) (0) | 2024.09.05 |
[컴퓨터][16] 산술/논리 연산 회로 - 4 (곱셈 회로와 시프트(Shift) 연산) (0) | 2024.09.03 |
[컴퓨터][15] 산술/논리 연산 회로 - 3 (뺄셈 회로와 2의 보수) (1) | 2024.09.02 |