전자 계산기의 원리, 구조
"계산기에 대해 다루는 사이트이니, 계산기에 대한 원리를 알아보는 글은 있어야겠구나".... 싶었습니다. 그래서 잘 모르는 내용임에도 불구하고, 이것저것 찾아서 글을 작성합니다. 틀린 내용이 있다면 지적하여 주시면 감사하겠습니다.
1. 전자 계산기란?
전자 계산기란, '펌웨어'나 '연산 알고리즘' 을 이용하여 수학적 계산을 빠르고(!) 정확하게(?) 수행하도록 만든 장치"를 이르는 말입니다.
일반 계산기나 보급형 공학용 계산기에는 운영 체제랄 것이 없으며, 간단한 펌웨어가 하드웨어와 직접적으로 작동해 연산을 처리하지만,
고급형 전자 계산기는 작은 컴퓨터로 보셔도 될 정도로 복잡한 장치가 결합되어 있습니다.
* 정확하게에 물음표가 붙은 이유는, 어떠한 경우에는 정확한 답을 찾기보다는 과정과 결과에서 근사값을 이용하는 경우가 많기 때문입니다.
2. 계산기의 역사
|
전기/전자 이용 전 |
손가락 내지 돌맹이? 나뭇가지?
|
|
전기/전자 이용 후 |
|
주판은 사람의 동작에 의존하기 때문에 속도의 한계가 있을 수밖에 없고, 오류발생 확률도 높습니다. 그리고 사칙연산 이외의 다른 계산이 어렵죠. 그러한 한계들을 극복하기 위해 기계 장치들이 개발되었고, 기계 장치들의 한계를 극복하고자 전자 장치를 이용한 계산기까지 발전을 하게 된 것입니다.
3. 원리
주판이나, 전자 계산기나 개발 목적이 같기 때문에, 도구를 사용하여 수학적인 연산을 수행하고 저장하고 표시한다는 본질에 있어서는 공통적입니다.
차이가 있다면 아래와 같습니다.
| 주판 | 전자 계산기 | |
| 진법 | 10진법 | 2진법 |
| 명령주체 | 사람의 뇌 | 내장 프로그램 |
| 동작주체 | 사람의 손가락 | 전자 부품 |
전자부품은 2진법 계산에 적합합니다. 이는 0과 1의 두 가지 상태를 전자의 흐름으로 쉽게 구현할 수 있기 때문입니다.
따라서 전자계산기의 계산 원리를 이해하려면 2진법을 먼저 이해해야 하고, 전자부품에서 2진법이 어떻게 구현되는지를 이해해야 합니다.
4. 논리회로 Arithmetic Logic Unit
계산기에서는 위에서 살펴본 바와 같이 2진법으로 모든 계산을 수행합니다.
계산을 수행하는 가장 작은 단위는 논리 회로이고, 논리 회로는 논리 게이트로 구성됩니다.
ㄴ 논리 게이트는 불 대수를 계산할 수 있는 전자 소자입니다.
따라서 전자계산기의 작동방식을 이해한다는 것은, 논리회로를 이해한다는 것과 동일한 의미를 같습니다.
가장 기본적인 논리 회로는 가산기(adder)로, 덧셈을 포함해 다양한 논리 연산과 곱셈, 나눗셈도 처리하는 Arithmetic Logic Unit(ALU)의 일부입니다.
아래와 같은 구조를 갖습니다.

ㄴ 전가산기 회로도
전자계산기는 위와 같은 논리 회로들을 이용하여, 입력된 숫자들을 (2진법) '가(+)/감(-)/승(×)/제(÷)' 하고 수학적 결과를 얻는 장치라고 말할 수 있습니다.
* 자세한 내용은 웹에서 "논리회로"로 검색해서 찾아보세요. 내용이 방대합니다.
ALU(Arithmetic Logic Unit)는 기본적인 산술 연산과 논리 연산을 처리하는 CPU의 핵심 구성 요소 중 하나로, 다양한 논리 회로들로 구성되어 있습니다.
ALU가 처리하는 작업의 종류에 따라 여러 종류의 회로가 결합되어 있습니다.
ALU의 주요 구성 요소:
1. 가산기(Adder) :
- 덧셈을 수행하는 회로로, ALU의 기본적인 구성 요소입니다. 뺄셈은 2의 보수를 이용해 가산기로 처리할 수 있습니다.
2. 뺄셈기(Subtractor):
- 직접적으로 뺄셈을 수행하는 회로로, 보수법을 사용해 가산기와 함께 뺄셈을 처리할 수 있습니다. 실제로는 가산기를 활용하여 처리되는 경우가 많습니다.
3. 논리 연산기(Logical Unit):
- 논리 연산을 처리하는 회로로, 기본적으로 AND, OR, NOT, XOR 같은 논리 연산을 수행합니다.
- 이 연산기들은 논리 게이트로 구성되어 있습니다.
4. 시프트 레지스터(Shift Register):
- 데이터를 왼쪽이나 오른쪽으로 시프트(이동)하는 회로로, 곱셈과 나눗셈을 효율적으로 처리하는 데 사용됩니다.
- 좌측 시프트는 2의 배수를 곱하는 효과를 내며, 우측 시프트는 나눗셈과 같은 효과를 냅니다.
5. 곱셈기(Multiplier):
- 곱셈을 처리하는 회로로, 덧셈과 시프트 연산을 반복해 곱셈을 처리하는 방식으로 동작합니다. 일부 복잡한 ALU에는 빠른 곱셈을 처리하기 위한 별도의 곱셈기가 포함될 수 있습니다.
6. 나눗셈기(Divider):
- 나눗셈을 처리하는 회로입니다. 나눗셈도 뺄셈과 시프트 연산을 통해 처리되며, 일부 고성능 ALU에는 나눗셈을 처리하기 위한 별도의 하드웨어 회로가 포함될 수 있습니다.
7. 상태 레지스터(Flags/Condition Codes):
- 연산의 결과에 따라 조건 플래그를 설정하는 레지스터입니다. 예를 들어, 연산의 결과가 0인지, 음수인지, 오버플로우가 발생했는지 등을 기록합니다.
- 상태 레지스터는 연산의 결과에 따라 CPU가 후속 동작을 결정할 때 활용됩니다.
ALU의 기능:
- 산술 연산: 덧셈, 뺄셈, 곱셈, 나눗셈
- 논리 연산: AND, OR, NOT, XOR 등의 비트 단위 연산
- 시프트 연산: 좌우 시프트 연산으로 곱셈/나눗셈 효과를 내는 연산
- 비교 연산: 두 값의 크기를 비교해 상태 플래그를 설정하는 연산
이렇게 ALU는 다양한 논리 회로들이 결합되어 수학적 연산과 논리 연산을 수행하며, 중앙처리장치(CPU)의 필수적인 역할을 담당합니다.
5. 실제 모습
일반 계산기를 분해해 보면 https://allcalc.org/16563

회로에 그려진 선하고 배터리 빼면 별다른게 없어 보입니다만, 저기 가운데 검은 껌딱지같은 것 안에 집적 회로(IC)가 숨어 있습니다.
집적 회로(IC) 안에는 수많은 트랜지스터, 저항, 다이오드 같은 전자 소자가 포함되어 있으며, 이 소자들이 논리 연산을 처리하는 역할을 합니다.
매우 작고 정밀한 부품인데, 노출되어 있으면 손상 위험이 크기 때문에
COB(Chip on Board) 방식으로, 회로 기판에 직접 칩을 부착한 후, 그 위에 검정색 에폭시 수지를(주로 레진) 덮어 칩을 보호합니다.
레진을 뜯어내면 이런 식으로 내부에 IC가 숨어 있습니다. (라디오 시계)
https://www.kaibader.de/exposing-a-chip-on-board/
6. 자료 출처
http://ko.wikipedia.org/wiki/%EA%B3%84%EC%82%B0%EA%B8%B0
https://ko.wikipedia.org/wiki/%EB%85%BC%EB%A6%AC_%ED%9A%8C%EB%A1%9C
https://ko.wikipedia.org/wiki/%EB%B6%88_%EB%8C%80%EC%88%98
https://ko.wikipedia.org/wiki/%EA%B0%80%EC%82%B0%EA%B8%B0
댓글5
-
세상의모든계산기
ALU(Arithmetic Logic Unit)는 곱셈을 수행할 때, 모두 덧셈으로 계산하나?
3*3 같은 것은 3+3+3 으로 계산해도 문제가 없지만, 숫자가 커지면 이런 방식은 너무 비효율적입니다.
대신, ALU는 곱셈을 위한 효율적인 알고리즘을 사용하여 빠르게 계산합니다.
곱셈의 기본 원리:
ALU는 보통 이진수 곱셈(Binary Multiplication) 알고리즘을 사용하여 곱셈을 처리합니다.
이 알고리즘은 우리가 배운 문자식 곱셈과 비슷한 방식으로 작동합니다.
즉, 각 비트를 곱하고, 그 결과를 더하는 방식입니다. 이 과정은 일종의 시프트(Shift) 연산과 덧셈을 결합한 것입니다.
1234 * 1234의 계산 과정(이진수):
1. 이진수로 변환: 먼저 1234를 이진수로 변환합니다. 1234(10진수)는, 이진수로는 `10011010010`입니다.
2. 비트별 곱셈: 두 이진수`10011010010`와 `10011010010`를 곱할 때, 각 비트를 비교해 곱(AND)하고 결과를 적절히 시프트(Shift)하여 더합니다.
3. 덧셈과 시프트: 각 비트 곱셈 결과는 자리값에 맞게 왼쪽으로 시프트한 후, 그 결과를 모두 덧셈하여 최종 값을 구합니다.
이 과정에서 곱셈은 덧셈과 시프트 연산을 기반으로 하지만, 이를 1234번 더하는 것이 아니라 효율적인 비트 연산을 통해 빠르게 수행됩니다.
하드웨어적으로는?
- 곱셈기(Multiplier): ALU에는 곱셈을 빠르게 수행하는 하드웨어 곱셈기가 내장되어 있습니다. 이 곱셈기는 병렬 처리와 시프트 연산을 활용하여 곱셈을 매우 빠르게 수행합니다.
- 곱셈기는 단순히 덧셈을 반복하지 않고, 곱셈 알고리즘을 기반으로 하드웨어 수준에서 최적화된 연산을 수행합니다.
결론:
ALU는 1234를 1234번 더하는 방식으로 곱셈을 처리하지 않으며, 대신 시프트와 덧셈을 결합한 효율적인 이진 곱셈 알고리즘을 사용해 빠르게 계산합니다.
-
세상의모든계산기
계산기가 빠른 이유
숫자 계산은 순차적인 논리적 과정입니다.
2진수 각 비트를 처리(계산)하는 것은 논리 1회에 해당하며 1 클럭이 들어간다고 볼 수 있습니다.
예를 들어, 1234 × 1234의 경우:
- 논리곱: 11 클럭 사이클
- 시프트: 11 클럭 사이클
- 덧셈: 10 클럭 사이클이러한 계산을 모두 합치면 총 32 클럭 사이클이 필요합니다.
또한, 1234 + 345 - 432 ÷ 456 × 345 - √24 - 3의 경우:
- 나눗셈: 10 클럭 사이클
- 곱셈: 5 클럭 사이클
- 제곱근: 10 클럭 사이클
- 덧셈 및 뺄셈: 1 + 1 + 2 = 4 클럭 사이클따라서 이 계산에는 총 29 클럭 사이클이 소요됩니다.
일반 계산기는 제품마다 성능이 다르겠지만, 최~소 1KHz 정도는 되는 것 같습니다.
이는 대략 1초에 1,000 클럭을 처리할 수 있다는 뜻입니다.
* "1MHz 에 못미치는 수준이다"는 주장도 있는데, 거기까지는 안갈 것 같습니다. 배터리 문제 때문에요. 좀 더 찾아봐야 할 듯.
30 클럭 사이클이면 대략 0.03초 (30 mS) 가 필요합니다.
이러한 이유로 계산기가 빠른 속도로 연산을 수행할 수 있다는 점을 이해할 수 있습니다.
* 눈으로 본 정보가 뇌에 도착하는데 수십 밀리초 가 필요하다고 하죠?
눈으로 보는 순간 계산은 끝나있다고 봐도 무방하겠습니다.
-
세상의모든계산기
https://www.emc.com.tw/emc/en/Product/Product/Microcontrollers/Calculator
에서 Calculator ASIC 항목을 보면 품목이 두개 있는데
[8 Digits] EMPCD081A
https://www.emc.com.tw/emc/en/Product/Product/detail/75
https://www.emc.com.tw/upload/2019_01_14(0_0)b2/EMPCD081A.pdf

평균 200kHz (Min120 ~ Max280)
[10, 12 Digits] EM34014A
https://www.emc.com.tw/emc/en/Product/Product/detail/74
https://www.emc.com.tw/upload/2019_01_14(0_0)b2/EM34014A.pdf

평균 200kHz (Min120 ~ Max280)
주판
집적회로(IC)를 이용한 현재의 컴퓨터
세상의모든계산기 님의 최근 댓글
HP-39gII 에 ExistOS 설치하기 https://allcalc.org/38526 2025 11.07 1. 왜 검은색이 아닌 다른 색으로 보일까? (제공된 LUT 필터) 제가 제공해 드린 magenta_lens.cube LUT 필터는 540~560nm(녹색-노란색) 파장대의 색상을 '완전히 제거(검은색으로 만듦)'하는 대신, '다른 색상으로 왜곡/변환'하도록 설계되었습니다. * 원리: LUT(Look-Up Table)는 특정 입력 색상(Input RGB)을 미리 정해진 다른 출력 색상(Output RGB)으로 매핑하는 테이블입니다. 이 LUT는 540~560nm에 해당하는 RGB 값들이 들어오면, 검은색(0, 0, 0)이 아닌, 매우 어둡거나 채도가 낮은 특정 색(예: 어두운 올리브색, 갈색 등)으로 변환하라고 지시합니다. * 의도: * 현실적인 물리 필터 시뮬레이션: 실제 고가의 색약 보정 안경도 특정 파장을 100% 완벽하게 차단하지는 못합니다. 빛의 일부를 흡수하고 일부는 통과시키거나 변환하는데, 이 LUT는 그러한 현실 세계의 필터 효과를 더 비슷하게 흉내 냈을 수 있습니다. * 시각적 정보 유지: 특정 색을 완전히 검게 만들면 그 부분의 형태나 질감 정보가 완전히 사라집니다. 하지만 다른 어두운 색으로 대체하면, 색상 정보는 왜곡되더라도 밝기나 형태 정보는 어느 정도 유지되어 전체적인 이미지가 덜 어색하게 보일 수 있습니다. 결론적으로, 스펙트럼 그림에서 해당 대역의 색이 갑자기 '다른 색으로 툭 바뀌는' 현상은, LUT 필터가 "이 파장대의 색은 앞으로 이 색으로 표시해!"라고 강제적으로 지시한 결과이며, 이것이 바로 이 필터가 작동하는 방식 그 자체입니다. 2. 왜 'Color Vision Helper' 앱은 검은색으로 보일까? 비교하신 'Color Vision Helper' 앱은 노치 필터의 원리를 더 이상적(Ideal)이고 교과서적으로 구현했을 가능성이 높습니다. * 원리: "L-콘과 M-콘의 신호가 겹치는 540~560nm 파장의 빛은 '완전히 차단'되어야 한다"는 개념에 매우 충실한 방식입니다. * 구현: 따라서 해당 파장에 해당하는 색상 정보가 들어오면, 어떠한 타협도 없이 그냥 '검은색(RGB 0, 0, 0)'으로 처리해 버립니다. 이는 "이 파장의 빛은 존재하지 않는 것으로 처리하겠다"는 가장 강력하고 직접적인 표현입니다. 2025 11.06 적용사례 4 - 파장 스펙트럼 https://news.samsungdisplay.com/26683 ㄴ (좌) 연속되는 그라데이션 ➡️ (우) 540 이하 | 구분되는 층(색) | 560 이상 - 겹치는 부분, 즉 540~560 nm 에서 색상이 차단? 변형? 된 것을 확인할 수 있음. 그럼 폰에서 Color Vision Helper 앱으로 보면? ㄴ 540~560 nm 대역이 검은 띠로 표시됨. 완전 차단됨을 의미 2025 11.05 빨간 셀로판지로도 이시하라 테스트 같은 숫자 구분에서는 유사한 효과를 낼 수 있다고 합니다. 색상이 다양하다면 빨강이나, 노랑, 주황 등도 테스트해보면 재밌겠네요. 2025 11.05 안드로이드 앱 - "Color Vision Helper" 다운받아 본문 내용을 카메라로 찍어 보니, 본문 프로그램에서는 애매하게 보이던 부분에서도 구분이 완전 확실하게 되네요. 숫자 구분 능력 & 편의성 면에서 압도적이라고 할 수 있겠습니다. 2025 11.05