현대 CPU에서 더 빠른 덧셈과 뺄셈: 자리올림 전파 극복하기
2025-05-30
본 글에서는 현대 CPU에서 큰 정수의 덧셈과 뺄셈을 가속화하는 기법을 살펴봅니다. 기존 방법은 손으로 하는 긴 덧셈과 유사하게, 가장 낮은 자릿수부터 가장 높은 자릿수까지 순차적으로 계산하고 자리올림을 처리하므로 병렬 처리가 제한됩니다. 본 글에서는 영리한 방법으로, 숫자 시스템을 변경하여 자리올림 전파를 지연시키고, 마지막에 한꺼번에 처리함으로써 CPU의 병렬 처리 능력을 최대한 활용하여 속도를 크게 향상시킵니다. 핵심 아이디어는 큰 정수를 더 작은 부분으로 나누고, x86의 `add` 명령어와 `adc` 명령어를 사용하며, radix-251 표현을 사용하여 자리올림 연산을 최소화함으로써 기존 방법보다 빠른 덧셈과 뺄셈을 구현하는 것입니다.
더 보기