(์ด๊ฒ์ ๋ฌธ์ ์ ํ์ฅ๋ ๋ฒ์ ์ ๋๋ค(https://github.com/WebAssembly/spec/issues/446))
๋ค์ค ์ ๋ฐ๋ ์ฐ์ ์ ํน๋ณํ ์ฒ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค. ์ด๊ฒ์ ๋ชจ๋ ISA์์ ์ด๋ค ํํ๋ก๋ ์ฌ์ฉํ ์ ์์ง๋ง ํ์ฌ webasm์์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์ด ์์ ์ ์ํํ๋ ์ธ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค(๋ด ์๊ฐ์๋). ๊ทธ ์ค ํ์ฌ ๋์์ธ์ ๋งฅ๋ฝ์์ ํนํ ๋ง์ด ์ข์ ๊ฒ์ ์์ต๋๋ค.
์ต์ 1. ํด๋น ๋ ์ง์คํฐ๋ก ์ฐ์ ์ ์ํํ๋ ๋ช ๋ น์ด์ ํจ๊ป ํน์ ํ๋๊ทธ ๋ ์ง์คํฐ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
์ด๊ฒ์ ์ฃผ๋ฅ ํ๋์จ์ด์ ์ ํต์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค.
๋ค์๊ณผ ๊ฐ์ ์ง์๋ฅผ ๋ฐ์ต๋๋ค.
์ถ๊ฐ
๋ ๊ฐ์ ์ซ์์ ์บ๋ฆฌ ํ๋๊ทธ์ ๊ฐ์ ์ถ๊ฐํ๊ณ ๊ฒฐ๊ณผ์ ์บ๋ฆฌ ํ๋๊ทธ๋ฅผ ์ค์ ํฉ๋๋ค.
์ด๊ฒ์ ํน์ ๋ ์ง์คํฐ๋ฅผ ์ถ๊ฐํ๊ธฐ ๋๋ฌธ์ ์ ์พํ์ง ์์ต๋๋ค.
์ต์
2.
ํ๋๊ทธ์ ๋ํด 4๋นํธ๋ฅผ ์ฌ์ฉํ์ฌ 60๋นํธ ์ฐ์ ํ์์ ์ง์ํฉ๋๋ค.
์ต์
3.
๋ค์ค ๋จ์ด ์ฐ์ ์ง์: ๋ง์
์ 3๊ฐ์ ์ธ์๋ฅผ ์ทจํ๊ณ 2๊ฐ์ ์ถ๋ ฅ์ ์์ฑํฉ๋๋ค.
์ด ์ ๊ทผ ๋ฐฉ์์ ๊ธฐ์กด ISA ๋ฐ ๋ ์ง์คํฐ ์ํคํ ์ฒ์ ๋ํ ์์์ ์ต์ํํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ๊ธฐ์กด ํ๋์จ์ด์ ํจ์จ์ ์ผ๋ก ๋งคํํ๊ธฐ ์ด๋ ค์ธ ๊ฒ์ ๋๋ค(๋ชจ๋ ํ๋์จ์ด ISA๊ฐ ํ๋๊ทธ ๋ ์ง์คํฐ๋ฅผ ์ง์ ๋ก๋ํ๋ ๊ฒ์ ์ง์ํ๋ ๊ฒ์ ์๋๋๋ค.
๊ทธ๋ฌ๋ ์๋ฃ๋์์ง๋ง ๋ค์ค ์ ๋ฐ๋ ์ฐ์ ์ ๋งค์ฐ ์ค์ํ๋ฉฐ ๊ฐ๋จํ ํ๋์จ์ด ์ง์ ์์ด๋ ์๋ฎฌ๋ ์ดํธํ๊ธฐ๊ฐ ๋งค์ฐ ์ด๋ ต์ต๋๋ค.
์ต์
3์ ๊ฒฝ์ฐ ์ด๋ฅผ ์ค์ฉ์ ์ผ๋ก ๋ง๋๋ ๊ทธ๋ด๋ฏํ ์ต์ ํ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. {i32,i64}.addc๊ฐ 3๊ฐ์ ์
๋ ฅ(์๋จ์ op2, ํ๋จ์ op1, ํ๋จ์ carry)์ ์ทจํ์ฌ ๋ ๊ฐ์ ์ถ๋ ฅ์ ์์ฑํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๊ฒฐ๊ณผ๋ ์๋จ์, ๊ทธ๋ฆฌ๊ณ ํ๋จ์๋ carry๊ฐ ๋ฐ์ํฉ๋๋ค. ์ธ์๋ฅผ ์ํด ์บ๋ฆฌ๊ฐ ํญ์ ๋ค๋ฅธ ํผ์ฐ์ฐ์์ ๊ฐ์ ์ ํ์ด๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค. ์บ๋ฆฌ์ ํ์ ๋นํธ๋ฅผ ์ฌ์ฉํ๊ณ ์ฐ์ฐ ํ ๋จ์ ์บ๋ฆฌ๊ฐ 0 ๋๋ 1์ด ๋๋๋ก addc๋ฅผ ์ ์ํ์ญ์์ค. ์ด์ ์ฌ๋ฌ ๋จ์ด๋ฅผ ์ถ๊ฐํ ์ ์๋ ์ํฉ์ด ํฉ๋ฆฌ์ ์ผ๋ก ์ค์ ๋์์ต๋๋ค. ์ ์ ํ๊ฒ ํผ์ณ์ง ๋ฃจํ์์ JIT/Wasm ์ปดํ์ผ๋ฌ๋ ์ค์ ๋ก ์ ํ๋๊ณ ์๋ ๊ฒ์ด ์บ๋ฆฌ์์ ํ์ธํ๊ณ ์ข์ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ด์ผ ํฉ๋๋ค. (๊ทธ๋ฆฌ๊ณ ๋ฃจํ๊ฐ ํ๋ฆฌ์ง ์์ผ๋ฉด ๋ฃจํ ์ค๋ฒํค๋๊ฐ ์ด์จ๋ ์บ๋ฆฌ ์ถ์ถ/์ฝ์
์ ํฌ์์ํฌ ๊ฒ์
๋๋ค.) ์บ๋ฆฌ ์ถ์ถ์ ์ํ ์ต์
์ ๊ฒฝ์ฐ ๋ถ๊ธฐ๊ฐ ์๋ ์ฝ๋๋ mov rd, 0; adc rd, 0
์ฌ์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฝ์
์ ๊ฒฝ์ฐ and rc, 1; add rc, ~0
์ ๊ฐ์ ๊ฒ์
๋๋ค. ์ฌ๊ธฐ์ rc๋ ์บ๋ฆฌ๋ก ์ฒ๋ฆฌ๋ ๊ฐ์ ํฌํจํ๋ ๋ ์ง์คํฐ์
๋๋ค.
ARM์์ ์บ๋ฆฌ๋ฅผ ์๋นํ๋ ๊ฒ์ ์บ๋ฆฌ๋ฅผ ์์ฑํ๋ ๊ฒ๊ณผ ๋ณ๊ฐ์ ๋๋ค. ADC๋ ์๋นํ๊ณ ADC.S๋ ์๋นํ๊ณ ์์ฐํ๋ฉฐ ADD.S๋ ์์ฐ๋ง ํฉ๋๋ค. ์ด ๋ชจ๋ ๋ณํ์ ์ํ ๊น์? ๊ทธ๋ฆฌ๊ณ ์ค๋ฒํ๋ก๋ ์ด๋ป์ต๋๊น?
(์๋ฅผ ๋ค์ด i32.addc op1 op2 carry L
๋ ์บ๋ฆฌ ์ธํธ์์ L๋ก ๋ถ๊ธฐํ ๊ฒ์
๋๋ค. ์บ๋ฆฌ ํด๋ฆฌ์ด ์ ๋์ด์ง๊ณ ์ด๋ ์ชฝ์ด๋ ์คํ์ ๊ฒฐ๊ณผ๋ฅผ ๋จ๊ธฐ์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ์ ์ํ ์ธ ๊ฐ์ง ์ต์
๋ณด๋ค ์ฌ์ฉํ๊ธฐ๊ฐ ๋ ์ด๋ ค์ ๋ณด์
๋๋ค.)
์ด ์ ์์ ์ง์งํ ์ฌ๋์ด ์์ต๋๊น? ์ฐ๋ฆฌ๋ ์ ์๋ ์๋ฏธ ์ฒด๊ณ, ์ด์ง ์ธ์ฝ๋ฉ์ด ํ์ํ๊ณ ์ต์ํ ์ต์ํ์ ์ฌ์ฉ ์ฌ๋ก์ ์ด๋ฌํ ์ฌ์ฉ ์ฌ๋ก์ ๋ํ ์ฑ๋ฅ ์์น๊ฐ ์๋ ๊ตฌํ์ ์ํฉ๋๋ค(ํ์ฌ MVP WebAssembly์ ์ด ์ ์๋ ์ถ๊ฐ ๋ฐ ๊ธฐ๋ณธ ์ฝ๋๋ฅผ ๋น๊ต).
์์น์ ์ผ๋ก ๋๋ ์ด๊ฒ์ ์นํธํ ์ฉ์๊ฐ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๊ฐ์ธ์ ์ธ ๋ณํ๋ก ์ธํด ์ต์ํ ์์ผ๋ก ๋ช ๋ฌ ๋์ ๋ฆฌ์์ค๊ฐ ์ ํ๋ฉ๋๋ค.
โโโ
ํ๋ญํฌ ๋งฅ์ผ์ด๋ธ
์์ ์ํํธ์จ์ด ์ค๊ณ์
์ ํ: 650-740 6673 | ์ด๋ฉ์ผ: [email protected] [email protected]
๋
ผ๋ฆฌ ์์ | 450 Lambert Ave, ํ๋ก ์ํ , CA 94306 | instartlogic.com http://instartlogic.com/
2017๋ 5์ 11์ผ ์ค์ 10์ 14๋ถ์ JF Bastien [email protected] ์์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
์ด ์ ์์ ์ง์งํ ์ฌ๋์ด ์์ต๋๊น? ์ฐ๋ฆฌ๋ ์ ์๋ ์๋ฏธ ์ฒด๊ณ, ์ด์ง ์ธ์ฝ๋ฉ์ด ํ์ํ๊ณ ์ต์ํ ์ต์ํ์ ์ฌ์ฉ ์ฌ๋ก์ ์ด๋ฌํ ์ฌ์ฉ ์ฌ๋ก์ ๋ํ ์ฑ๋ฅ ์์น๊ฐ ์๋ ๊ตฌํ์ ์ํฉ๋๋ค(ํ์ฌ MVP WebAssembly์ ์ด ์ ์๋ ์ถ๊ฐ ๋ฐ ๊ธฐ๋ณธ ์ฝ๋๋ฅผ ๋น๊ต).
โ
์ค๋ ๋๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ ์ด ๋ฉ์์ง๋ฅผ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ํ์ ํ๊ฑฐ๋ GitHub https://github.com/WebAssembly/design/issues/1021#issuecomment-300856161 ์์ ํ์ธํ๊ฑฐ๋ https://github.com/notifications/unsubscribe-auth/ADfCzd9le4ufXm6DSsArpfXCYsGdV75UIks5 ์ค๋ ๋๋ฅผ ์์๊ฑฐํฉ๋๋ค.
6์ ์ ๋๊น์ง๋ ๊ทธ๋ฆฌ ๋ง์ง๋ ์์ง๋ง ์ด ์ผ์ ์ ๋ ํ ์๊ฐ์ด ์์ ๊ฒ์ ๋๋ค. IMO ์ด ๊ธฐ๋ฅ์ ์๋นํ ์ค์ํ๋ฉฐ ๋ค๋ฅธ ์ฌ์ฉ ์ฌ๋ก(๋์ ์ธ์ด์ fixnum -> bignum ์ ํ)์์ ์ค๋ฒํ๋ก ํ๋๊ทธ๊ฐ carry ํ๋๊ทธ๋งํผ ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ค๋ ์ผ๋ถ Mozilla ์ฌ์ฉ์์ ์ด์ ๋ํด ๋ ผ์ํ์ต๋๋ค. ์์ฝํ์๋ฉด:
์ด ๋ฌธ์ ์ ๋ํ ์ง์ ์ด ์์์ต๋๊น? ํ๋ ์ํธํ(์: SIDH)๋ฅผ ํจ์จ์ ์ผ๋ก ๊ตฌํํ๋ ค๋ฉด ์บ๋ฆฌ ๋ฐ ๋น๋ฆผ์ด ํ์ํฉ๋๋ค. ADDC ์์ด ํฐ ์๋ฅผ ๋ํ๋ฉด ์ฌ๋ฌ ์์ธ์ด ์์ ๋๋ณด๋ค ๋๋ฆฝ๋๋ค. ๋บ์ ๊ณผ ๊ณฑ์ ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
์ ์ด๋ ํ๋ ์ด์์ ๊ฒฐ๊ณผ๊ฐ ์๋ ์ฐ์ฐ์ ์ฝ๊ฒ ํํํ ์ ์๋๋ก ๋ค์ค ๊ฐ์ด ์๋ฃ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ค์ค ๊ฐ์ "๊ฑฐ์ ์์ต๋๋ค".
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด ๋ฌธ์ ์ ๋ํ ์ง์ ์ด ์์์ต๋๊น? ํ๋ ์ํธํ(์: SIDH)๋ฅผ ํจ์จ์ ์ผ๋ก ๊ตฌํํ๋ ค๋ฉด ์บ๋ฆฌ ๋ฐ ๋น๋ฆผ์ด ํ์ํฉ๋๋ค. ADDC ์์ด ํฐ ์๋ฅผ ๋ํ๋ฉด ์ฌ๋ฌ ์์ธ์ด ์์ ๋๋ณด๋ค ๋๋ฆฝ๋๋ค. ๋บ์ ๊ณผ ๊ณฑ์ ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.