現代CPUにおけるより高速な加算と減算:繰り上がりの伝播を打ち破る
2025-05-30
この記事では、現代のCPUにおける巨大な整数の加算と減算を高速化する手法を探ります。従来の手法は、筆算と同様に、最下位桁から上位桁へと順次計算し、繰り上がりを処理するため、並列処理が制限されます。この記事では、巧妙な手法として、数値システムを変更することで繰り上がりの伝播を遅延させ、最後にまとめて処理することで、CPUの並列処理能力を最大限に活用し、速度を大幅に向上させます。中心となるアイデアは、巨大な整数を小さな部分に分割し、x86の`add`命令と`adc`命令を用い、radix-251表現を用いて繰り上がり演算を最小限にすることで、従来の手法よりも高速な加算と減算を実現します。