๐ง ๋ง์ ๊ณผ ๋บ์
์ปดํจํฐ์์ ๋ง์ ๊ณผ ๋บ์ ์ ์ญ์ง์์์์ ๋ง์ , ๋บ์ ๊ณผ ๋น์ทํฉ๋๋ค.
๋จ์ง ์ปดํจํฐ์์๋ ํํํ ์ ์๋ ์์ ๋ฒ์๊ฐ ์ ํ์ ์ด๋ฏ๋ก, ํน์ ํ ๊ฒฝ์ฐ ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ๋ค๋ ๊ฒ๋ง์ด ์ฐจ์ด์ ์ ๋๋ค.
โญ๏ธ ์ค๋ฒํ๋ก์ฐ
๋ถํธ๊ฐ ๋ค๋ฅธ ๋ ์๋ฅผ ๋ํ๋ ๊ฒฝ์ฐ์๋ ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
์ด์ ๋ ๊ณ์ฐ ๊ฒฐ๊ณผ์ ์ ๋๊ฐ์ด ๋ ํผ์ฐ์ฐ์ ์ค ์ด๋ ํ๋๋ณด๋ค๋ ์ปค์ง ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋บ์ ์ ๊ฒฝ์ฐ์๋ ๋๊ฐ์ด ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
๋จ ๋บ์ ์ด๋ฏ๋ก ๋ฐ๋๊ฐ ๋ฉ๋๋ค.
์ฆ ํผ์ฐ์ฐ์์ ๋ถํธ๊ฐ ๊ฐ์ ๊ฒฝ์ฐ์๋ ๋บ์ ์์ ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
๋ํ๋ ๋ ํผ์ฐ์ฐ์๊ฐ 32๋นํธ๋ผ๊ณ ํ๋ฉด, ๊ทธ ๊ฒฐ๊ณผ๋ ์ต๋ 33๋นํธ๊ฐ ๋ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ 32๋นํธ๊ฐ ์ต๋ ํฌ๊ธฐ์ด๋ฏ๋ก, ๋ถํธ ๋นํธ๊ฐ ๊ฒฐ๊ณผ์ ๋ถํธ๊ฐ ์๋๋ผ ํฌ๊ธฐ๋ฅผ ๋ํ๋ด๋ ๋นํธ ์ค ์ต์์ ๋นํธ๊ฐ์ผ๋ก ๊ฒฐ์ ๋ฉ๋๋ค.
๋ฑ ํ ๋นํธ๊ฐ ๋ถ์กฑํ๊ธฐ ๋๋ฌธ์ ํ๋ฆด ์ ์๋ ๊ฒ์ ์ค์ง ๋ถํธ ๋นํธ ๋ฟ์ ๋๋ค.
๋ฐ๋ผ์ ๋ ์์๋ฅผ ๋ํ ๊ฐ์ด ์์๊ฐ ๋๋ฉด ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ ๊ฒ์ ๋๋ค.
๋ค์์ ๋ง์ ๊ณผ ๋บ์ ์์์ ์ค๋ฒํ๋ก์ฐ ๋ฐ์ ์กฐ๊ฑด๋ค์ ๋๋ค.
Operation | Operand A | Operand B | ์ค๋ฒํ๋ก์ฐ ๋ฐ์์ ๊ฒฝ์ฐ |
$A + B$ | $\geq 0$ | $\geq 0$ | $<0$ |
$A + B$ | $<0$ | $<0$ | $\geq 0$ |
$A - B$ | $\geq 0$ | $<0$ | $<0$ |
$A - B$ | $<0$ | $\geq 0$ | $\geq 0$ |
โญ๏ธ ๋ถํธ์๋ ์ ์์ ์ค๋ฒํ๋ก์ฐ
๋ถํธ์๋ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ํํํ๋ ๋ฑ์ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋ฉ๋๋ค.
๋คํํ๋ ๋ถํธ์๋ ์ ์์ ์ค๋ฒํ๋ก์ฐ ๋ฐ์ ์ฌ๋ถ๋ ์ปดํ์ผ๋ฌ์์ ์ฝ๊ฒ ๊ฒ์ฌํ ์ ์์ต๋๋ค.
๋ง์ ์ ๊ฒฝ์ฐ์๋ ํฉ์ด ๋ํด์ง๋ ๋ ์ ์ค ํ๋๋ณด๋ค ์์ ๊ฒฝ์ฐ ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ ๊ฒ์ด๋ฉฐ,
๋บ์ ์์๋ ๊ทธ ์ฐจ์ด๊ฐ ํผ๊ฐ์(9-4 ์ ๊ฒฝ์ฐ 9๋ฅผ ์๋ฏธ, ๋นผ์ด์ง๋ ์)๋ณด๋ค ๋ ํฌ๋ฉด ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ ๊ฒ์ ๋๋ค.
โญ๏ธ ALU
๋ง์ ๊ณผ ๋บ์ ๋ฑ์ ์ฐ์ ์ฐ์ฐ์ ์ํํ๋ ํ๋์จ์ด์ ๋๋ค.
์ด ์ฅ์น๋ ์ฐ์ ๋ ผ๋ฆฌ์ฐ์ฐ์ฅ์น(Arithmetic Logic Unit, ALU)๋ผ๊ณ ๋ถ๋ฆฝ๋๋ค.
๐ง ํฌํ(saturating)
2์ ๋ณด์ ์ฐ์ ์ด ๋ชจ๋๋ฌ(modulo) ์ฐ์ฐ์ ํ๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ ํฌํ๋ ๊ฐ์ฅ ํฐ ์์๋ ์์๋ฅผ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ํฉ๋๋ค.
๋ผ๋์ค๋ฅผ ์๊ฐํ๋ฉด ์ดํดํ๊ธฐ ํธํ ํ ๋ฐ, ๋ผ๋์ค์ ๋ณผ๋ฅจ์ ๊ณ์ ๋๋ฆฐ๋ค๋ฉด ํ๋์ ์๋ฆฌ๊ฐ ์ปค์ง๋ค๊ฐ ๋ ์ด์ ์๋ฆฌ๊ฐ ์ปค์ง์ง ์์ ๋ถ๋ถ์ ๋๋ฌํฉ๋๋ค.
์ด๊ฒ์ด ํฌํ ์ฐ์ฐ์ด ์ํํ๋ ์ฐ์ฐ์ด๋ฉฐ,
์ผ๋ฐ์ ์ผ๋ก ๋ชจ๋๋ฌ ์ฐ์ฐ์ ํ๋ค๋ฉด ๋ผ๋์ค ๋ณผ๋ฅจ์ ๊ณ์ ์ปค์ง๋ค๊ฐ ์ด๋ ์๊ฐ ์กฐ์ฉํด์ง ๊ฒ์ ๋๋ค.
๐ง ์ฌ๋ฆผ์ ์๊ฒฌ(Carry Lookahead)
๋ง์ ์ ์๋๋ ์์ ๋นํธ๋ค๋ก ์ฌ๋ผ๊ฐ๋ ์ฌ๋ฆผ์๋ฅผ ์ผ๋ง๋ ๋นจ๋ฆฌ ๊ณ์ฐํ๋๊ฐ์ ์์กดํฉ๋๋ค.
๋ง์ฝ ๋ชจ๋ ๋นํธ๋ค์ ๋ํด ์๋ฆฌ ์ฌ๋ฆผ์๋ฅผ ๊ณ์ฐํด์ผ ํ๋ค๋ฉด $O(n)$ ์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ฒ ์ง๋ง,
์ด๋ฅผ $O(log_2 \;n)$ ๋ก ๊ณ์ฐํ ์ ์๋ ์ฌ๋ฌ ๋ฐฉ๋ฒ์ด ์ ์๋์ด ์์ต๋๋ค.
๋น์ฐํ๊ฒ๋ ์ฑ๋ฅ์ด ์ฆ๊ฐ๋๋ ๋์ ๋ ๋ง์ ๊ฒ์ดํธ๋ฅผ ํ์๋ก ํฉ๋๋ค.
๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ฐฉ์์ ์ฌ๋ฆผ์ ์๊ฒฌ(carry lookahead) ๊ธฐ๋ฒ์ ๋๋ค.