BRONZE
BRONZE ๋“ฑ๊ธ‰์˜ ํŒ๋งค์ž ์ž๋ฃŒ

ARM ์–ด์…ˆ๋ธ”๋้ฉ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•œ ๋ถ€๋™์†Œ์ˆ˜์  ์ˆ˜(Floating point number) ํ€ต์ •๋ ฌ(Quicksort)

ARM์—์„œ ์ œ๊ณตํ•˜๋Š” IDE์ธ Keil์„ ์ด์šฉํ•ด ์–ด์…ˆ๋ธ”๋้ฉ์–ด๋กœ ๊ตฌํ˜„ํ•œ Quicksort์ž…๋‹ˆ๋‹ค. keil์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ์‹œ๋ฉด ์–ด์…ˆ๋ธ”๋้ฉ ์ฝ”๋“œํŒŒ์ผ์ธ .s ์„ ์ฐธ์กฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋ ˆ์ง€์Šคํ„ฐ๋ณ„ ์ฃผ์„๊นŒ์ง€ ๋‹ฌ์•„๋†“์•˜๊ณ  ์ž์„ธํ•œ ์„ค๋ช…์€ ๋ณด๊ณ ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์‹œ๋ฉด์„œ ๋””๋ฒ„๊น…ํ•ด๋ณด์‹œ๋ฉด ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šฐ์‹ค ๊ฒ๋‹ˆ๋‹ค. -----------๋ณด๊ณ ์„œ Introduction------------- ๋ณธ ๋ณด๊ณ ์„œ๋Š” ์–ด์…ˆ๋ธ”๋้ฉ ํ”„๋กœ๊ทธ๋žจ ์„ค๊ณ„ ๋ฐ ์‹ค์Šต ๊ณผ๋ชฉ์˜ ํ”„๋กœ์ ํŠธ ๊ฒฐ๊ณผ ๋ณด๊ณ ์„œ์ด๋‹ค. Arm 32bit ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์˜€๊ณ  little endian ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์šด ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด 1000๊ฐœ ์ •๋„์˜ input number (floating point number) ์ค‘์—์„œ ์ตœ์†Œ๊ฐ’, ์ตœ๋Œ€๊ฐ’, ์ตœ๋นˆ๊ฐ’, ์ค‘๊ฐ„๊ฐ’์„ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ด๋‹ค. ์ด๋ฅผ ์œ„ํ•ด sorting์€ ํ•„์ˆ˜์ ์ด๋‹ค. Performance๋ฅผ ์ตœ๋Œ€ํ•œ์œผ๋กœ ๋†’์ด๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ณ ๋ คํ•ด์•ผํ•  ์‚ฌํ•ญ์ด ์žˆ๋‹ค. ๊ทธ ์ค‘ ๊ฐ€์žฅ ๋งŽ์€ ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด sorting๋ฐฉ๋ฒ•์ด๋‹ค. ๋”ฐ๋ผ์„œ sorting ๋ฐฉ๋ฒ• ์ค‘ ์–ด๋–ค ๊ฒƒ์ด ๊ฐ€์žฅ ํšจ๊ณผ์ ์ธ์ง€ ์ƒ๊ฐํ•ด ๋ณด์•„์•ผํ•œ๋‹ค. Performance์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ๊ฑด ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผํ•˜๋Š” Load/Store ๋ช…๋ น์–ด์ด๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ๋ช…๋ น์–ด๋Š” ์ผ๋ฐ˜ ๋ช…๋ น์–ด๋“ค๋ณด๋‹ค state์ˆ˜๊ฐ€ ํ›จ์”ฌ ๋” ๋งŽ์ด ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์—, loop ๋‚ด์—์„œ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ๋ช…๋ น์–ด๊ฐ€ ๋งŽ์„ ๊ฒฝ์šฐ performance์— ๊ต‰์žฅํžˆ ๋งŽ์€ ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค. ๋”ฐ๋ผ์„œ ๋ถˆํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ์ ‘๊ทผ์€ ์ตœ์†Œํ™”ํ•˜๊ณ  ์ตœ๋Œ€ํ•œ ๋ชจ์•„์„œ ํ•œ๊บผ๋ฒˆ์— ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค. ์œ„์™ฟ’ ๊ฐ™์€ ์‚ฌํ•ญ์„ ํ•ญ์ƒ ์—ผ๋‘ํ•ด๋‘๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์˜€๊ณ , ๋ช‡ ๋ฒˆ์˜ code review๋ฅผ ํ†ตํ•ด์„œ ์ตœ์ ํ™”๋ฅผ ํ•˜๊ธฐ์œ„ํ•ด ๋…ธ๋ ฅํ•˜์˜€๋‹ค.
์••์ถ•ํŒŒ์ผ
์ตœ์ดˆ๋“ฑ๋ก์ผ 2016.12.19 ์ตœ์ข…์ ฟ’์ž‘์ผ 2016.12
ARM ์–ด์…ˆ๋ธ”๋้ฉ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•œ ๋ถ€๋™์†Œ์ˆ˜์  ์ˆ˜(Floating point number) ํ€ต์ •๋ ฌ(Quicksort)
  • ๋ฏธ๋้ฉ๋ณด๊ธฐ

    ์†Œ๊ฐœ

    ARM์—์„œ ์ œ๊ณตํ•˜๋Š” IDE์ธ Keil์„ ์ด์šฉํ•ด ์–ด์…ˆ๋ธ”๋้ฉ์–ด๋กœ ๊ตฌํ˜„ํ•œ Quicksort์ž…๋‹ˆ๋‹ค. keil์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ์‹œ๋ฉด ์–ด์…ˆ๋ธ”๋้ฉ ์ฝ”๋“œํŒŒ์ผ์ธ .s ์„ ์ฐธ์กฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋ ˆ์ง€์Šคํ„ฐ๋ณ„ ์ฃผ์„๊นŒ์ง€ ๋‹ฌ์•„๋†“์•˜๊ณ  ์ž์„ธํ•œ ์„ค๋ช…์€ ๋ณด๊ณ ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์‹œ๋ฉด์„œ ๋””๋ฒ„๊น…ํ•ด๋ณด์‹œ๋ฉด ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šฐ์‹ค ๊ฒ๋‹ˆ๋‹ค.
    -----------๋ณด๊ณ ์„œ Introduction-------------
    ๋ณธ ๋ณด๊ณ ์„œ๋Š” ์–ด์…ˆ๋ธ”๋้ฉ ํ”„๋กœ๊ทธ๋žจ ์„ค๊ณ„ ๋ฐ ์‹ค์Šต ๊ณผ๋ชฉ์˜ ํ”„๋กœ์ ํŠธ ๊ฒฐ๊ณผ ๋ณด๊ณ ์„œ์ด๋‹ค. Arm 32bit ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์˜€๊ณ  little endian ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์šด ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด 1000๊ฐœ ์ •๋„์˜ input number (floating point number) ์ค‘์—์„œ ์ตœ์†Œ๊ฐ’, ์ตœ๋Œ€๊ฐ’, ์ตœ๋นˆ๊ฐ’, ์ค‘๊ฐ„๊ฐ’์„ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ด๋‹ค. ์ด๋ฅผ ์œ„ํ•ด sorting์€ ํ•„์ˆ˜์ ์ด๋‹ค. Performance๋ฅผ ์ตœ๋Œ€ํ•œ์œผ๋กœ ๋†’์ด๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ณ ๋ คํ•ด์•ผํ•  ์‚ฌํ•ญ์ด ์žˆ๋‹ค. ๊ทธ ์ค‘ ๊ฐ€์žฅ ๋งŽ์€ ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด sorting๋ฐฉ๋ฒ•์ด๋‹ค. ๋”ฐ๋ผ์„œ sorting ๋ฐฉ๋ฒ• ์ค‘ ์–ด๋–ค ๊ฒƒ์ด ๊ฐ€์žฅ ํšจ๊ณผ์ ์ธ์ง€ ์ƒ๊ฐํ•ด ๋ณด์•„์•ผํ•œ๋‹ค. Performance์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ๊ฑด ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผํ•˜๋Š” Load/Store ๋ช…๋ น์–ด์ด๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ๋ช…๋ น์–ด๋Š” ์ผ๋ฐ˜ ๋ช…๋ น์–ด๋“ค๋ณด๋‹ค state์ˆ˜๊ฐ€ ํ›จ์”ฌ ๋” ๋งŽ์ด ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์—, loop ๋‚ด์—์„œ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ๋ช…๋ น์–ด๊ฐ€ ๋งŽ์„ ๊ฒฝ์šฐ performance์— ๊ต‰์žฅํžˆ ๋งŽ์€ ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค. ๋”ฐ๋ผ์„œ ๋ถˆํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ์ ‘๊ทผ์€ ์ตœ์†Œํ™”ํ•˜๊ณ  ์ตœ๋Œ€ํ•œ ๋ชจ์•„์„œ ํ•œ๊บผ๋ฒˆ์— ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค.
    ์œ„์™ฟ’ ๊ฐ™์€ ์‚ฌํ•ญ์„ ํ•ญ์ƒ ์—ผ๋‘ํ•ด๋‘๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์˜€๊ณ , ๋ช‡ ๋ฒˆ์˜ code review๋ฅผ ํ†ตํ•ด์„œ ์ตœ์ ํ™”๋ฅผ ํ•˜๊ธฐ์œ„ํ•ด ๋…ธ๋ ฅํ•˜์˜€๋‹ค.

    ์ปดํŒŒ์ผ ์‹คํ–‰ํ™˜๊ฒฝ

    IDE : Keil uVision4, ํ”„๋กœ์„ธ์„œ : ARM , OS: window10

    ์ฐธ๊ณ ์ž๋ฃŒ

    ยท ์—†์Œ
  • ์ž๋ฃŒํ›„๊ธฐ

      Ai ๋ฆฌ๋ทฐ
      ์งฟ’์‹ํŒ๋งค์ž์˜ ์ž๋ฃŒ๋Š” ์ œ๊ฐ€ ํ•„์š”๋กœ ํ•˜๋Š” ์ง€์‹์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ถฉ์กฑ์‹œ์ผœ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ณผ์ œ ์ œ์ถœ์ผ์ด ์–ผ๋งˆ ๋‚จ์ง€ ์•Š์•„ ์‹œ๊ฐ„์ด ๋ถ€์กฑํ–ˆ๋Š”๋ฐ, ์ด ์ž๋ฃŒ ๋•๋ถ„์— ๊ณผ์ œ๋ฅผ ์ œ์ถœ ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!
    • ์ž์ฃผ๋ฌป๋Š”์งˆ๋ๅฉ์˜ ๋‹ต๋ณ€์„ ํ™•์ธํ•ด ์ฃผ์„ธ์š”

      ํ•ดํ”ผ์บ ํผ์Šค FAQ ๋”๋ต–๊ธฐ

      ๊ผญ ์•Œ์•„์ฃผ์„ธ์š”

      • ์ž๋ฃŒ์˜ ์ •๋ณด ๋ฐ ๋‚ด์šฉ์˜ ์ง„์‹ค์„ฑ์— ๋Œ€ํ•˜์—ฌ ํ•ดํ”ผ์บ ํผ์Šค๋Š” ๋ณด์ฆํ•˜์ง€ ์•Š์œผ๋ฉฐ, ํ•ด๋‹น ์ •๋ณด ๋ฐ ๊ฒŒ์‹œ๋ฌผ ์ €์ž‘๊ถŒ๊ณผ ๊ธฐํƒ€ ๋ฒ•์  ์ฑ…์ž„์€ ์ž๋ฃŒ ๋“ฑ๋ก์ž์—๊ฒŒ ์žˆ์Šต๋‹ˆ๋‹ค.
        ์ž๋ฃŒ ๋ฐ ๊ฒŒ์‹œ๋ฌผ ๋‚ด์šฉ์˜ ๋ถˆ๋ฒ•์  ์ด์šฉ, ๋ฌด๋‹จ ์ „์žฌโˆ™๋ฐฐํฌ๋Š” ๊ธˆ์ง€๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
        ์ €์ž‘๊ถŒ์นจํ•ด, ๋ช…์˜ˆํ›ผ์† ๋“ฑ ๋ถ„์Ÿ ์š”์†Œ ๋ฐœ๊ฒฌ ์‹œ ๊ณ ๊ฐ๋น„๋ฐ”์นด์ง€๋…ธ Viva์˜ ์ €์ž‘๊ถŒ์นจํ•ด ์‹ ๊ณ ๋น„๋ฐ”์นด์ง€๋…ธ Viva๋ฅผ ์ด์šฉํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.
      • ํ•ดํ”ผ์บ ํผ์Šค๋Š” ๊ตฌ๋งค์ž์™ฟ’ ํŒ๋งค์ž ๋ชจ๋‘๊ฐ€ ๋งŒ์กฑํ•˜๋Š” ์„œ๋น„์Šค๊ฐ€ ๋˜๋„๋ก ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์•„๋ž˜์˜ 4๊ฐ€์ง€ ์ž๋ฃŒํ™˜๋ถˆ ์กฐ๊ฑด์„ ๊ผญ ํ™•์ธํ•ด์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.
        ํŒŒ์ผ์˜ค๋ฅ˜ ์ค‘๋ณต์ž๋ฃŒ ์ €์ž‘๊ถŒ ์—†์Œ ์„ค๋ช…๊ณผ ์‹ค์ œ ๋‚ด์šฉ ๋ถˆ์ผ์น˜
        ํŒŒ์ผ์˜ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ์ œ๋Œ€๋กœ ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ํŒŒ์ผํ˜•์‹์— ๋งž๋Š” ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ •์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์ž๋ฃŒ์™ฟ’ 70% ์ด์ƒ ๋‚ด์šฉ์ด ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ (์ค‘๋ณต์ž„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๊ทผ๊ฑฐ ํ•„์š”ํ•จ) ์ธํ„ฐ๋„ท์˜ ๋‹ค๋ฅธ ์‚ฌ์ดํŠธ, ์—ฐ๊ตฌ๊ธฐ๊ด€, ํ•™๊ป“, ์„œ์  ๋“ฑ์˜ ์ž๋ฃŒ๋ฅผ ๋„์šฉํ•œ ๊ฒฝ์šฐ ์ž๋ฃŒ์˜ ์„ค๋ช…๊ณผ ์‹ค์ œ ์ž๋ฃŒ์˜ ๋‚ด์šฉ์ด ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ
    ๋ฌธ์„œ ์ดˆ์•ˆ์„ ์ƒ์„ฑํ•ด์ฃผ๋Š” EasyAI
    ์•ˆ๋…•ํ•˜์„ธ์š”. ํ•ดํ”ผ์บ ํผ์Šค์˜ ๋ฐฉ๋Œ€ํ•œ ์ž๋ฃŒ ์ค‘์—์„œ ์„ ๋ณ„ํ•˜์—ฌ ๋‹น์‹ ๋งŒ์˜ ์ดˆ์•ˆ์„ ๋งŒ๋“ค์–ด์ฃผ๋Š” EasyAI ์ž…๋‹ˆ๋‹ค.
    ์ €๋Š” ์•„๋ž˜์™ฟ’ ๊ฐ™์ด ์ž‘์—…์„ ๋„์™ฟ’๋“œ๋ฆฝ๋‹ˆ๋‹ค.
    - ์ฃผ์ œ๋งŒ ์ž…๋ ฅํ•˜๋ฉด ๋ชฉ์ฐจ๋ถ€ํ„ฐ ๋ณธ๋ฌธ๋‚ด์šฉ๊นŒ์ง€ ์ž๋™ ์ƒ์„ฑํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
    - ์žฅ๋ฌธ์˜ ์ฝ˜ํ…์ธ ๋ฅผ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์ž‘์„ฑํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
    - ์Šคํ† ์–ด์—์„œ ๋ฌด๋ฃŒ ์บ์‹œ๋ฅผ ๊ณ„์ •๋ณ„๋กœ 1ํšŒ ๋ฐœ๊ธ‰ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ ๋ฐ”๋กœ ์ฒดํ—˜ํ•ด ๋ณด์„ธ์š”!
    ์ด๋Ÿฐ ์ฃผ์ œ๋“ค์„ ์ž…๋ ฅํ•ด ๋ณด์„ธ์š”.
    - ์œ ์•„์—๊ฒŒ ์ ํ•ฉํ•œ ๋ฌธํ•™์ž‘ํ’ˆ์˜ ๊ธฐ์ค€๊ณผ ํŠน์„ฑ
    - ํ•œ๊ตญ์ธ์˜ ๊ฐ€์น˜๊ด€ ์ค‘์—์„œ ์ •์‹ ์  ๊ฐ€์น˜๊ด€์„ ์ด๋ฃจ๋Š” ๊ฒƒ๋“ค์„ ๋ฌธํ™”์  ๋ฌธ๋ฒ•์œผ๋กœ ์ •๋ฆฌํ•˜๊ณ , ํ˜„๋Œ€ํ•œ๊ตญ์‚ฌํšŒ์—์„œ ์ผ์–ด๋‚˜๋Š” ์‚ฌ๊ฑด๊ณผ ์‚ฌ๊ณ ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์ž์‹ ์˜ ์˜๊ฒฌ์œผ๋กœ ๊ธฐ์ˆ ํ•˜์„ธ์š”
    - ์ž‘๋ณ„์ธ์‚ฌ ๋…ํ›„๊ฐ
    ํ•ด์บ  AI ์ฑ—๋ด‡๊ณผ ๋Œ€ํ™”ํ•˜๊ธฐ
    ์ฑ—๋ด‡์œผ๋กœ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ƒ๋‹ดํ•ด๋ณด์„ธ์š”.
    2025๋…„ 06์›” 12์ผ ๋ชฉ์š”์ผ
    AI ์ฑ—๋ด‡
    ์•ˆ๋…•ํ•˜์„ธ์š”. ํ•ดํ”ผ์บ ํผ์Šค AI ์ฑ—๋ด‡์ž…๋‹ˆ๋‹ค. ๋ฌด์—‡์ด ๊ถ๊ธˆํ•˜์‹ ๊ฐ€์š”?
    11:06 ์˜คํ›„