๐Ÿš€ โ€œ์˜คํ”ˆRISC SoC, Veloce๋กœ 10๋ฐฐยท๊ทธ ์ด์ƒ ๊ฐ€์†! โ€“ ํ•˜๋“œ์›จ์–ด ์—๋ฎฌ๋ ˆ์ด์…˜ ํ˜์‹  ์‚ฌ๋ก€โ€

์ฝ๋Š” ์‹œ๊ฐ„: 8 ๋ถ„
...

๐Ÿ“ Abstract

Recently the hardware emulation technique has emerged as a promising approach to accelerating hardware verification/debugging process. To fully evaluate the powerfulness of the emulation approach and demonstrate its potential impact, we propose to emulate a system-on-chip (SoC) design using Mentor Graphics Veloce emulation platform. This article presents our project setup and the results we have achieved. The results are encouraging. ORPSoC emulation with Veloce has more than ten times faster than hardware simulation. Our experimental results demonstrate that Mentor Graphics Veloce has major advantages in emulation, verification, and debugging of complicated real hardware designs, especially in the context of SoC complexity. Through our three major tasks, we will demonstrate that (1) Veloce can successfully emulate large-scale SoC designs; (2) it has much better performance comparing to the state-of-the-art simulation tools; (3) it can significantly accelerate the process of hardware verification and debugging while maintaining full signal visibility.

๐Ÿ’ก Analysis

**

1. ์—ฐ๊ตฌ ๋ฐฐ๊ฒฝ ๋ฐ ๋ชฉ์ 

  • ์‹œ์žฅยท๊ธฐ์ˆ  ํŠธ๋ Œ๋“œ: ์Šค๋งˆํŠธํฐยทํƒœ๋ธ”๋ฆฟ ๋“ฑ ๋ณตํ•ฉ SoC์˜ ์ถœ์‹œ ์ฃผ๊ธฐ๊ฐ€ ๊ธ‰์†ํžˆ ๋‹จ์ถ•๋˜๋ฉด์„œ ์„ค๊ณ„ ๊ฒ€์ฆ ์‹œ๊ฐ„ ๋‹จ์ถ•์ด ํ•ต์‹ฌ ๊ณผ์ œ๋กœ ๋ถ€์ƒ.
  • ํ•ต์‹ฌ ์งˆ๋ฌธ: Veloce์™€ ๊ฐ™์€ ํ•˜๋“œ์›จ์–ด ์—๋ฎฌ๋ ˆ์ด์…˜์ด ์‹ค์ œ ๋ณต์žกํ•œ ์˜คํ”ˆ์†Œ์Šค SoC(ORPSoC)๋ฅผ ์–ผ๋งˆ๋‚˜ ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?

2. ์‹คํ—˜ ์„ค๊ณ„ ๋ฐ ๋ฐฉ๋ฒ•๋ก 

๋‹จ๊ณ„์‹œ๋ฎฌ๋ ˆ์ด์…˜ (ModelSim)์—๋ฎฌ๋ ˆ์ด์…˜ (Veloce)
1. ํ”„๋กœ๊ทธ๋žจ ์ปดํŒŒ์ผOpenRISC ์ปดํŒŒ์ผ๋Ÿฌ โ†’ ๋ฉ”๋ชจ๋ฆฌ ํŒŒ์ผ(vmem)๋™์ผ
2. ์„ค๊ณ„ ํ•ฉ์„ฑยท๋ฐฐ์น˜RTL ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์‹คํ–‰Veloce ์ „์šฉ ํ•ฉ์„ฑ โ†’ ํ•˜๋“œ์›จ์–ด ๋งคํ•‘
3. ํŠธ๋ฆฌ๊ฑฐ ์ •์˜์—†์Œ (์ˆ˜๋™ ์ข…๋ฃŒ)Veloce ํŠธ๋ฆฌ๊ฑฐ ์—๋””ํ„ฐ๋กœ ๋ถ€ํŒ…ยทํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ์ž๋™ ๊ฐ์ง€
4. ์‹คํ–‰ & ๊ฒฐ๊ณผ ์ˆ˜์ง‘ํŒŒํ˜•ยท๋กœ๊ทธ ์ถœ๋ ฅํŒŒํ˜•ยท๋กœ๊ทธ + ํŠธ๋ฆฌ๊ฑฐ ๊ธฐ๋ฐ˜ ์ž๋™ ์ข…๋ฃŒ
  • ํŠธ๋ฆฌ๊ฑฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜: Linux ๋ถ€ํŒ… ์‹œ UART์— ์ถœ๋ ฅ๋˜๋Š” ํŠน์ˆ˜ ํ”Œ๋ž˜๊ทธ, โ€˜SUMโ€™ ๋ฐ CHStone ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ์‹œ ์‚ฝ์ž…ํ•œ ํŠน์ˆ˜ ๋ช…๋ น์–ด๋ฅผ ๊ฐ์ง€ํ•ด ์ž๋™ ์ข…๋ฃŒ. ์ด๋Š” ์—๋ฎฌ๋ ˆ์ด์…˜ ์‹œ๊ฐ„ ์ธก์ •์˜ ์ •ํ™•์„ฑ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ด.
  • ๋ฒค์น˜๋งˆํฌ ๊ตฌ์„ฑ
    1. SUM N โ€“ ๋ฐ˜๋ณต ํšŸ์ˆ˜(N)๋ฅผ 10~10,000,000๊นŒ์ง€ ๋ณ€ํ™”์‹œ์ผœ ์Šค์ผ€์ผ์— ๋”ฐ๋ฅธ ์†๋„๋น„ ๋น„๊ต.
    2. Linux ๋ถ€ํŒ… โ€“ ์ „์ฒด 55โ€ฏM ๋ช…๋ น์–ด, 198โ€ฏM ์‚ฌ์ดํด์„ ์‹คํ–‰ํ•ด ์‹ค์งˆ์ ์ธ OS ๋ถ€ํŒ… ์‹œ๋‚˜๋ฆฌ์˜ค ๊ฒ€์ฆ.
    3. CHStone โ€“ 12๊ฐœ์˜ ์‹ค๋ฌด ์ˆ˜์ค€ C ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(์‚ฐ์ˆ , ๋ฏธ๋””์–ด, ๋ณด์•ˆ ๋“ฑ)์œผ๋กœ ์ „๋ฐ˜์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ ˆ๋ฒจ ์„ฑ๋Šฅ ํ‰๊ฐ€.

3. ์ฃผ์š” ๊ฒฐ๊ณผ

๋ฒค์น˜๋งˆํฌ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์‹œ๊ฐ„์—๋ฎฌ๋ ˆ์ด์…˜ ์‹œ๊ฐ„์†๋„ ํ–ฅ์ƒ (๋ฐฐ)
SUM N (N=10โถ)1โ€ฏ216โ€ฏs18.9โ€ฏsโ‰ˆโ€ฏ64ร—
SUM N (N=10โท)13โ€ฏ011โ€ฏs175.6โ€ฏsโ‰ˆโ€ฏ74ร—
Linux ๋ถ€ํŒ…โ‰ˆโ€ฏ3โ€ฏh (์˜ˆ์ƒ)127โ€ฏsโ‰ˆโ€ฏ85ร— (ModelSim์ด 10โ€ฏk ๋ช…๋ น์–ด๋‹น 2โ€ฏs ๊ธฐ์ค€)
CHStone โ€“ ๊ณ ๋ณต์žก๋„ (DFSIN)335โ€ฏs19.4โ€ฏsโ‰ˆโ€ฏ17ร—
CHStone โ€“ ์ €๋ณต์žก๋„ (GSM)2.28โ€ฏs1.67โ€ฏsโ‰ˆโ€ฏ1.4ร—
  • ์Šค์ผ€์ผ ์˜์กด์„ฑ: ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ์—์„œ๋Š” ์†๋„ ํ–ฅ์ƒ์ด ๋ฏธ๋ฏธํ•˜์ง€๋งŒ, ๋ช…๋ น์–ด ์ˆ˜๊ฐ€ ์ˆ˜์‹ญ๋งŒ ์ด์ƒ์ผ ๋•Œ ๊ธ‰๊ฒฉํžˆ ๊ฐ€์†ํ™”๋จ.
  • ์ „์ฒด ์‹ ํ˜ธ ๊ฐ€์‹œ์„ฑ ์œ ์ง€: Veloce๋Š” ์ „ํ†ต์ ์ธ FPGA ํ”„๋กœํ† ํƒ€์ดํ•‘๊ณผ ๋‹ฌ๋ฆฌ ๋ชจ๋“  ๋‚ด๋ถ€ ์‹ ํ˜ธ๋ฅผ ํŒŒํ˜• ํŒŒ์ผ๋กœ ์ถ”์ถœ ๊ฐ€๋Šฅ, ๋””๋ฒ„๊น… ํšจ์œจ์„ฑ ํฌ๊ฒŒ ํ–ฅ์ƒ.

4. ๊ฐ•์ 

  1. ์‹ค์ œ SoC ์„ค๊ณ„ ์ ์šฉ: ์˜คํ”ˆ์†Œ์Šค ๊ธฐ๋ฐ˜ ORPSoC๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜์—ฌ ๊ฒฐ๊ณผ๊ฐ€ ์žฌํ˜„ ๊ฐ€๋Šฅํ•˜๊ณ , ์‚ฐ์—… ํ˜„์žฅ์— ๋ฐ”๋กœ ์ ์šฉ ๊ฐ€๋Šฅ.
  2. ๋‹ค์–‘ํ•œ ๋ฒค์น˜๋งˆํฌ: ๋งˆ์ดํฌ๋กœ๋ฒ ์ด์Šค โ€˜SUMโ€™๋ถ€ํ„ฐ OS ๋ถ€ํŒ…, ๋ณตํ•ฉ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊นŒ์ง€ ํฌ๊ด„์ ์ธ ํ‰๊ฐ€.
  3. ์ž๋™ ํŠธ๋ฆฌ๊ฑฐ ๊ธฐ๋ฐ˜ ์ข…๋ฃŒ: ์ธ๊ฐ„ ๊ฐœ์ž… ์—†์ด ์ •ํ™•ํ•œ ์‹คํ–‰ ์‹œ๊ฐ„ ์ธก์ •์ด ๊ฐ€๋Šฅํ•ด ์‹คํ—˜ ์žฌํ˜„์„ฑ์„ ๋†’์ž„.
  4. ์ „์‹  ํŒŒํ˜• ์ œ๊ณต: ์ „ํ†ต์ ์ธ ์—๋ฎฌ๋ ˆ์ด์…˜ ๋Œ€๋น„ ๋””๋ฒ„๊น… ๋‹จ๊ณ„์—์„œ ํฐ ์ด์ .

5. ํ•œ๊ณ„ ๋ฐ ๊ฐœ์„ ์ 

๊ตฌ๋ถ„๋‚ด์šฉ
์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋น„๊ตModelSim ์‹คํ–‰์ด โ€œ๋ฉˆ์ถคโ€ ํ˜„์ƒ์„ ๋ณด์˜€์œผ๋ฉฐ, ์ •ํ™•ํ•œ ๋ถ€ํŒ… ์‹œ๊ฐ„ ์ธก์ •์ด ์–ด๋ ค์›Œ ์ถ”์ •๊ฐ’์— ์˜์กด. ๋ณด๋‹ค ์ตœ์‹  ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ(์˜ˆ: VCS, Xcelium)์™€ ๋น„๊ตํ•˜๋ฉด ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Œ.
FPGA ๋Œ€๋น„FPGA(Spartanโ€‘6, 50โ€ฏMHz) ๋ถ€ํŒ… ์‹œ๊ฐ„์€ 30โ€ฏs๋กœ Veloce๋ณด๋‹ค ๋น ๋ฅด์ง€๋งŒ, FPGA๋Š” ์„ค๊ณ„ ์žฌ๊ตฌ์„ฑยทํŠธ๋ฆฌ๊ฑฐ ๋ถ€์žฌ ๋“ฑ ๋””๋ฒ„๊น… ์ธก๋ฉด์—์„œ ์ œํ•œ์ . ๋…ผ๋ฌธ์—์„œ๋Š” FPGA์™€์˜ ์ •๋Ÿ‰์  ๋น„๊ต๊ฐ€ ๋ถ€์กฑํ•จ.
์ „๋ ฅยท๋น„์šฉ์—๋ฎฌ๋ ˆ์ด์…˜ ์žฅ๋น„(Veloce)์˜ ์ดˆ๊ธฐ ํˆฌ์ž ๋น„์šฉ ๋ฐ ์ „๋ ฅ ์†Œ๋ชจ์— ๋Œ€ํ•œ ์–ธ๊ธ‰์ด ์—†์œผ๋ฉฐ, ์‹ค์ œ ์‚ฐ์—… ์ ์šฉ ์‹œ ROI ๋ถ„์„์ด ํ•„์š”.
์Šค์ผ€์ผ ํ•œ๊ณ„ORPSoC๋Š” ์•ฝ 46โ€ฏk LOC(Verilog) ์ˆ˜์ค€์œผ๋กœ, ์ตœ์‹  ๊ณ ์„ฑ๋Šฅ SoC(์ˆ˜๋ฐฑ๋งŒ LOC)์™€ ์ง์ ‘ ๋น„๊ต๋Š” ์•„์ง ๋ถ€์กฑํ•จ.
์ž๋™ ํŠธ๋ฆฌ๊ฑฐ ๋ณต์žก๋„ํŠธ๋ฆฌ๊ฑฐ ์ •์˜๊ฐ€ ์„ค๊ณ„๋งˆ๋‹ค ์ˆ˜์ž‘์—…์œผ๋กœ ์ด๋ฃจ์–ด์กŒ์œผ๋ฉฐ, ๋Œ€๊ทœ๋ชจ ์„ค๊ณ„์—์„œ๋Š” ํŠธ๋ฆฌ๊ฑฐ ๊ด€๋ฆฌ๊ฐ€ ๋ณต์žกํ•ด์งˆ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Œ. ์ž๋™ํ™” ํˆด ์ฒด์ธ ํ•„์š”.

6. ํ•™์ˆ ยท์‚ฐ์—…์  ์˜์˜

  • ํ•™์ˆ ์ : ํ•˜๋“œ์›จ์–ด ์—๋ฎฌ๋ ˆ์ด์…˜์ด ์‹ค์ œ SoC ์„ค๊ณ„ ๊ฒ€์ฆ์— ์ œ๊ณตํ•˜๋Š” ์‹œ๊ฐ„โ€‘๊ณต๊ฐ„ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„๋ฅผ ์ •๋Ÿ‰ํ™”ํ•จ์œผ๋กœ์จ, ์—๋ฎฌ๋ ˆ์ด์…˜ ๊ธฐ๋ฐ˜ ์„ค๊ณ„ ํ๋ฆ„์˜ ๋ชจ๋ธ๋ง ๋ฐ ์ตœ์ ํ™” ์—ฐ๊ตฌ์— ๊ธฐ์ดˆ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
  • ์‚ฐ์—…์ : ์ œํ’ˆ ๊ฐœ๋ฐœ ์ฃผ๊ธฐ ๋‹จ์ถ•์„ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” ๋ฐ˜๋„์ฒด ๊ธฐ์—…์—๊ฒŒ โ€œ์‹œ๋ฎฌ๋ ˆ์ด์…˜ โ†’ ์—๋ฎฌ๋ ˆ์ด์…˜ โ†’ ์‹ค๋ฆฌ์ฝ˜โ€ ๋‹จ๊ณ„์˜ ๊ฐ€๊ต ์—ญํ• ์„ ๋ช…ํ™•ํžˆ ์ œ์‹œ, ํŠนํžˆ ๋ณต์žกํ•œ OS ๋ถ€ํŒ…ยท๋“œ๋ผ์ด๋ฒ„ ๊ฒ€์ฆ์— ์œ ์šฉํ•จ์„ ์ž…์ฆํ•œ๋‹ค.

7. ํ–ฅํ›„ ์—ฐ๊ตฌ ๋ฐฉํ–ฅ

  1. ๋Œ€๊ทœ๋ชจ ์ƒ์šฉ SoC ์ ์šฉ: ์ˆ˜๋ฐฑ๋งŒ LOC ์ˆ˜์ค€์˜ ์ตœ์‹  ํ”„๋กœ์„ธ์„œยทGPUยทAI ๊ฐ€์†๊ธฐ ํฌํ•จ ์„ค๊ณ„์— Veloce ์ ์šฉ ์‚ฌ๋ก€ ํ™•๋Œ€.
  2. ์ „๋ ฅยท์—๋„ˆ์ง€ ํšจ์œจ ์ธก์ •: ์—๋ฎฌ๋ ˆ์ด์…˜ ์ค‘ ์ „๋ ฅ ์†Œ๋ชจ์™€ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋Œ€๋น„ ์—๋„ˆ์ง€ ํšจ์œจ์„ ์ •๋Ÿ‰ํ™”ํ•˜์—ฌ ๋น„์šฉโ€‘ํšจ์œจ์„ฑ์„ ํ‰๊ฐ€.
  3. ์ž๋™ ํŠธ๋ฆฌ๊ฑฐ ์ƒ์„ฑ ํ”„๋ ˆ์ž„์›Œํฌ: ๊ณ ์ˆ˜์ค€ ์–ธ์–ด(์˜ˆ: SystemC, C++)์—์„œ ํ…Œ์ŠคํŠธ๋ฒค์น˜ ์ž๋™ ๋ณ€ํ™˜ยทํŠธ๋ฆฌ๊ฑฐ ์‚ฝ์ž… ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•.
  4. ๋ฉ€ํ‹ฐโ€‘์—๋ฎฌ๋ ˆ์ดํ„ฐ ํ˜‘์—…: Veloce์™€ FPGA ํ”„๋กœํ† ํƒ€์ดํ•‘์„ ๊ฒฐํ•ฉํ•œ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํ๋ฆ„(์˜ˆ: FPGAโ€‘inโ€‘theโ€‘Loop) ์—ฐ๊ตฌ.
  5. ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ์—๋ฎฌ๋ ˆ์ด์…˜ ์„œ๋น„์Šค: ๋Œ€๊ทœ๋ชจ ์„ค๊ณ„ํŒ€์ด ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ SaaS ํ˜•ํƒœ์˜ ์—๋ฎฌ๋ ˆ์ด์…˜ ํ”Œ๋žซํผ ๋ชจ๋ธ ์ œ์‹œ.

์š”์•ฝ
๋ณธ ๋…ผ๋ฌธ์€ Mentorโ€ฏGraphicsโ€ฏVeloce๊ฐ€ ์˜คํ”ˆ์†Œ์Šค SoC์ธ ORPSoC๋ฅผ 10๋ฐฐ ์ด์ƒ ๋น ๋ฅด๊ฒŒ ์—๋ฎฌ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ์Œ์„ ์‹คํ—˜์ ์œผ๋กœ ์ž…์ฆํ•œ๋‹ค. ํŠนํžˆ ๋Œ€๊ทœ๋ชจ ๋ช…๋ น์–ด ์‹คํ–‰ยทOS ๋ถ€ํŒ…ยท๋ณตํ•ฉ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ…Œ์ŠคํŠธ์—์„œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋Œ€๋น„ ํ˜„์ €ํ•œ ์†๋„ ํ–ฅ์ƒ์„ ๋ณด์ด๋ฉฐ, ์ „์‹  ์‹ ํ˜ธ ๊ฐ€์‹œ์„ฑ์„ ์œ ์ง€ํ•œ๋‹ค๋Š” ์ ์ด ํฐ ๊ฐ•์ ์ด๋‹ค. ๋‹ค๋งŒ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋น„๊ต์˜ ์ •ํ™•์„ฑ, ๋น„์šฉยท์ „๋ ฅ ๋ถ„์„, ๋Œ€๊ทœ๋ชจ ์„ค๊ณ„ ์ ์šฉ ๊ฐ€๋Šฅ์„ฑ ๋“ฑ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์—ฐ๊ตฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฐ๊ณผ๋Š” ํ•˜๋“œ์›จ์–ด ์„ค๊ณ„ ๊ฒ€์ฆ ํ๋ฆ„์— ์—๋ฎฌ๋ ˆ์ด์…˜์„ ์ ๊ทน ๋„์ž…ํ•˜๋ ค๋Š” ํ•™๊ณ„ยท์‚ฐ์—…๊ณ„ ๋ชจ๋‘์—๊ฒŒ ์ค‘์š”ํ•œ ์ฐธ๊ณ  ์ž๋ฃŒ๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค.

๐Ÿ“„ Content

2014 Veloce ์—๋ฎฌ๋ ˆ์ด์…˜ ๋Œ€ํšŒ ๋ณด๊ณ ์„œ


OpenRISC Systemโ€‘onโ€‘Chip ์„ค๊ณ„ ์—๋ฎฌ๋ ˆ์ด์…˜

Kai Cong, Li Lei, Zhenkun Yang
์ง€๋„๊ต์ˆ˜: Fei Xie
{congkai, leil, zhenkun, xie}@cs.pdx.edu
Portland State University ์ปดํ“จํ„ฐ ๊ณผํ•™๊ณผ, ํฌํ‹€๋žœ๋“œ, ์˜ค๋ ˆ๊ณค


1. ์„œ๋ก 

์Šค๋งˆํŠธํฐยทํƒœ๋ธ”๋ฆฟ ๋“ฑ ์ƒˆ๋กœ์šด ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์ด ์ ์  ๋” ๋น ๋ฅธ ์†๋„๋กœ ์‹œ์žฅ์— ์ถœ์‹œ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ œํ’ˆ ๊ฐœ๋ฐœ ํŒ€์—๊ฒŒ ์‹œ์žฅ ์ถœ์‹œ ์‹œ๊ฐ„(Timeโ€‘toโ€‘Market)์„ ๋‹จ์ถ•ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋ง‰๋Œ€ํ•œ ์••๋ฐ•์„ ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์„ค๊ณ„ ๋ณต์žก๋„๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ  ์‹œ์žฅ ์ถœ์‹œ ์‹œ๊ฐ„์ด ๋‹จ์ถ•๋˜๋Š” ํ๋ฆ„ ์†์—์„œ, ํ•˜๋“œ์›จ์–ด ์„ค๊ณ„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ยท๊ฒ€์ฆยท๋””๋ฒ„๊น…์„ ๊ฐ€์†ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ํ˜์‹ ์ ์ธ ์ ‘๊ทผ๋ฒ•์ด ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค.

์ตœ๊ทผ ํ•˜๋“œ์›จ์–ด ์—๋ฎฌ๋ ˆ์ด์…˜ ๊ธฐ์ˆ ์ด ํ•˜๋“œ์›จ์–ด ๊ฒ€์ฆยท๋””๋ฒ„๊น… ๊ณผ์ •์„ ๊ฐ€์†ํ™”ํ•˜๋Š” ์œ ๋งํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ถ€์ƒํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์—๋ฎฌ๋ ˆ์ด์…˜ ์ ‘๊ทผ๋ฒ•์˜ ๊ฐ•๋ ฅํ•จ์„ ์ถฉ๋ถ„ํžˆ ํ‰๊ฐ€ํ•˜๊ณ  ๊ทธ ์ž ์žฌ์  ์˜ํ–ฅ์„ ์ž…์ฆํ•˜๊ธฐ ์œ„ํ•ด, ์šฐ๋ฆฌ๋Š” Mentor Graphics Veloce ์—๋ฎฌ๋ ˆ์ด์…˜ ํ”Œ๋žซํผ์„ ์ด์šฉํ•ด Systemโ€‘onโ€‘Chip(SoC) ์„ค๊ณ„๋ฅผ ์—๋ฎฌ๋ ˆ์ด์…˜ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ณธ ๋…ผ๋ฌธ์—์„œ๋Š” ํ”„๋กœ์ ํŠธ ์„ค์ •๊ณผ ์–ป์€ ๊ฒฐ๊ณผ๋ฅผ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ณธ ํ”„๋กœ์ ํŠธ์—์„œ ์ˆ˜ํ–‰ํ•œ ์ž‘์—…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ๊ธฐ์กด ์˜คํ”ˆ์†Œ์Šค SoC ์„ค๊ณ„์ธ OpenRISC Reference Platform System on Chip (ORPSoC) ๋ฅผ ๋…๋ฆฝํ˜• ์—๋ฎฌ๋ ˆ์ด์…˜
  2. ์„ธ ๊ฐ€์ง€ ๋ฒค์น˜๋งˆํฌ๋ฅผ ์ด์šฉํ•œ ์—๋ฎฌ๋ ˆ์ด์…˜ ์„ฑ๋Šฅ ํ‰๊ฐ€
    • ๋‹ค์–‘ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ฐ€์ง„ โ€˜sumโ€™ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰
    • ORPSoC ์œ„์—์„œ Linux ์ปค๋„ ๋ถ€ํŒ…
    • ORPSoC ์œ„์—์„œ ์—ฌ๋Ÿฌ ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰
  3. ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ ‘๊ทผ๋ฒ•๊ณผ์˜ ์ฒ ์ €ํ•œ ๋น„๊ต โ€“ Mentor Graphics ModelSim์„ ์ด์šฉํ•œ ORPSoC ์‹œ๋ฎฌ๋ ˆ์ด์…˜

๊ฒฐ๊ณผ๋Š” ๊ณ ๋ฌด์ ์ž…๋‹ˆ๋‹ค. Veloce๋ฅผ ์ด์šฉํ•œ ORPSoC ์—๋ฎฌ๋ ˆ์ด์…˜์€ ํ•˜๋“œ์›จ์–ด ์‹œ๋ฎฌ๋ ˆ์ด์…˜๋ณด๋‹ค 10๋ฐฐ ์ด์ƒ ๋น ๋ฆ…๋‹ˆ๋‹ค. ์‹คํ—˜ ๊ฒฐ๊ณผ๋Š” Mentor Graphics Veloce๊ฐ€ ๋ณต์žกํ•œ ์‹ค์ œ ํ•˜๋“œ์›จ์–ด ์„ค๊ณ„, ํŠนํžˆ SoC ๋ณต์žก์„ฑ ๋งฅ๋ฝ์—์„œ ์—๋ฎฌ๋ ˆ์ด์…˜ยท๊ฒ€์ฆยท๋””๋ฒ„๊น…์— ํฐ ์žฅ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์„ธ ๊ฐ€์ง€ ์ฃผ์š” ๊ณผ์ œ๋ฅผ ํ†ตํ•ด ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ์„ ์ž…์ฆํ•ฉ๋‹ˆ๋‹ค.

  1. Veloce๋Š” ๋Œ€๊ทœ๋ชจ SoC ์„ค๊ณ„๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์—๋ฎฌ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. ์ตœ์‹  ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํˆด์— ๋น„ํ•ด ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.
  3. ์ „์ฒด ์‹ ํ˜ธ ๊ฐ€์‹œ์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ํ•˜๋“œ์›จ์–ด ๊ฒ€์ฆยท๋””๋ฒ„๊น… ๊ณผ์ •์„ ํฌ๊ฒŒ ๊ฐ€์†ํ•œ๋‹ค.

2. ๋ฐฐ๊ฒฝ

OpenRISC 1200

OpenRISC 1200 (OR1200)โ€ฏ[1]์€ OpenCoresโ€ฏ[2] ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๊ฐœ๋ฐœยท์œ ์ง€๋ณด์ˆ˜๋˜๋Š” ํ•ฉ์„ฑ ๊ฐ€๋Šฅํ•œ CPU ์ฝ”์–ด์ž…๋‹ˆ๋‹ค. OR1200 ์„ค๊ณ„๋Š” OpenRISCโ€ฏ1000 RISC ์•„ํ‚คํ…์ฒ˜โ€ฏ[3]๋ฅผ Verilog HDL๋กœ ๊ตฌํ˜„ํ•œ ์˜คํ”ˆ์†Œ์Šค ๊ตฌํ˜„์ฒด์ด๋ฉฐ, ์ฃผ์š” ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์ค‘์•™ CPU/DSP ๋ธ”๋ก
  • ์ง์ ‘ ๋งคํ•‘๋œ ๋ฐ์ดํ„ฐยท๋ช…๋ น์–ด ์บ์‹œ
  • WISHBONE ๋ฒ„์Šค ์ธํ„ฐํŽ˜์ด์Šค

ORPSoC

ORPSoC๋Š” OpenRISC ๊ธฐ๋ฐ˜ ๋ ˆํผ๋Ÿฐ์Šค SoCโ€ฏ[4]๋กœ, Figureโ€ฏ1์— ๋‚˜ํƒ€๋‚œ ๋ฐ”์™€ ๊ฐ™์ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•˜๋“œ์›จ์–ด ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

  • WISHBONE ๋ฒ„์Šค
  • SRAM ๋ฉ”๋ชจ๋ฆฌ
  • ๋ฒ”์šฉ ์ž…์ถœ๋ ฅ(GPIO)
  • UART ์ง๋ ฌ ํฌํŠธ
  • 10/100โ€ฏMbps Ethernet MAC

Figureโ€ฏ1: ORPSoC ์•„ํ‚คํ…์ฒ˜(์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ)


3. ORPSoC ์‹œ๋ฎฌ๋ ˆ์ด์…˜

์šฐ๋ฆฌ๋Š” Mentor Graphics ModelSim์„ RTL ์„ค๊ณ„ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋กœ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ๋ฆ„์€ Figureโ€ฏ2์— ๋‚˜ํƒ€๋‚˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Figureโ€ฏ2: ModelSim์„ ์ด์šฉํ•œ ORPSoC ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ๋ฆ„

์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ ˆ์ฐจ๋Š” ๋‹ค์Œ ์„ธ ๋‹จ๊ณ„๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

  1. OpenRISC ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์ด์šฉํ•ด ORPSoC์—์„œ ์‹คํ–‰๋  ๋ชฉํ‘œ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ ํŒŒ์ผ(ROM ์ด๋ฏธ์ง€)๋กœ ์ปดํŒŒ์ผํ•œ๋‹ค.
  2. ModelSim์€ ์ปดํŒŒ์ผ๋œ ORPSoC ์„ค๊ณ„์™€ ๋ฉ”๋ชจ๋ฆฌ ํŒŒ์ผ์„ ๋ฐ›์•„ ๋ชฉํ‘œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•œ๋‹ค.
  3. ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋˜๋ฉด ModelSim์€ ์„ ํƒ๋œ ์‹ ํ˜ธ๋“ค์˜ ํŒŒํ˜•์„ ์ถœ๋ ฅํ•˜๊ณ , ํ”„๋กœ๊ทธ๋žจ ์ถœ๋ ฅ ๋กœ๊ทธ๋ฅผ ํŒŒ์ผ์— ๊ธฐ๋กํ•œ๋‹ค.

4. ORPSoC ์—๋ฎฌ๋ ˆ์ด์…˜

4.1 ์—๋ฎฌ๋ ˆ์ด์…˜ ์›Œํฌํ”Œ๋กœ์šฐ

Mentor Graphics Veloce๋ฅผ ์ด์šฉํ•œ ORPSoC ์—๋ฎฌ๋ ˆ์ด์…˜ ํ๋ฆ„์€ Figureโ€ฏ3์— ์š”์•ฝ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ชฉํ‘œ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑ๋œ ๋ฉ”๋ชจ๋ฆฌ ํŒŒ์ผ์€ ํ…Œ์ŠคํŠธ๋ฒค์น˜ ์—ญํ• ์„ ํ•˜๋ฉฐ, ORPSoC ์„ค๊ณ„์— ๋Œ€๋Ÿ‰์˜ CPU ๋ช…๋ น์„ ๊ณต๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.

Figureโ€ฏ3: Veloce๋ฅผ ์ด์šฉํ•œ ORPSoC ์—๋ฎฌ๋ ˆ์ด์…˜ ํ๋ฆ„

์—๋ฎฌ๋ ˆ์ด์…˜ ์ ˆ์ฐจ๋Š” ๋„ค ๋‹จ๊ณ„๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

  1. OpenRISC ์ปดํŒŒ์ผ๋Ÿฌ๋กœ ๋ชฉํ‘œ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ ํŒŒ์ผ๋กœ ์ปดํŒŒ์ผํ•˜๊ณ , ์ด๋ฅผ ORPSoC ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œํ•œ๋‹ค.
  2. Veloce ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ORPSoC ์„ค๊ณ„๋ฅผ ์ปดํŒŒ์ผยทํ•ฉ์„ฑํ•œ ๋’ค, ํ•ด๋‹น ์„ค๊ณ„๋ฅผ Veloce ๋จธ์‹ ์— ๊ตฌ์„ฑํ•œ๋‹ค.
  3. ์—๋ฎฌ๋ ˆ์ด์…˜์„ ์ž๋™์œผ๋กœ ์ข…๋ฃŒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ์ •์˜ํ•˜๊ณ  ์ ์šฉํ•œ๋‹ค.
  4. ์—๋ฎฌ๋ ˆ์ด์…˜ ์‹œ์ž‘ ์ „, ๋ฉ”๋ชจ๋ฆฌ์™€ ํŠธ๋ฆฌ๊ฑฐ๋ฅผ Veloce ๋จธ์‹ ์— ๋‹ค์šด๋กœ๋“œํ•˜๊ณ , ์—๋ฎฌ๋ ˆ์ด์…˜์„ ์‹คํ–‰ํ•œ๋‹ค. ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ๊ฐ์ง€๋˜๋ฉด ์—๋ฎฌ๋ ˆ์ด์…˜์ด ์ข…๋ฃŒ๋˜๊ณ  ํŒŒํ˜• ํŒŒ์ผ ๋ฐ ๊ด€๋ จ ์ •๋ณด๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

4.2 ์—๋ฎฌ๋ ˆ์ด์…˜ ํŠธ๋ฆฌ๊ฑฐ

Veloce๋Š” ํŠธ๋ฆฌ๊ฑฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•˜์—ฌ ์—๋ฎฌ๋ ˆ์ด์…˜ ์ค‘ ํŠน์ • ๋…ผ๋ฆฌ ์ƒํƒœ๋ฅผ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณธ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” Linux ๋ถ€ํŒ…๊ณผ ์ผ๋ฐ˜ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์„ ๊ฐ๊ฐ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋‘ ๊ฐœ์˜ ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ์ •์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ํŠธ๋ฆฌ๊ฑฐ๋Š” ์—๋ฎฌ๋ ˆ์ด์…˜ ์ข…๋ฃŒ ์กฐ๊ฑด์„ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Veloce ํŠธ๋ฆฌ๊ฑฐ ์—๋””ํ„ฐ๋ฅผ ์ด์šฉํ•˜๋ฉด ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ์†์‰ฝ๊ฒŒ ์ƒ์„ฑํ•˜๊ณ  ํŠธ๋ฆฌ๊ฑฐ ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์ž๋™์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4.2.1 Linux ๋ถ€ํŒ… ํŠธ๋ฆฌ๊ฑฐ

Linux ์‹œ์Šคํ…œ ๋ถ€ํŒ… ์‹œ์ ์„ ํŒ๋‹จํ•˜๊ธฐ ์œ„ํ•ด, ์šฐ๋ฆฌ๋Š” Linux ์ปค๋„ ์†Œ์Šค์— UART ๋ชจ๋“ˆ์„ ํ†ตํ•œ ํŠน์ˆ˜ ํ”Œ๋ž˜๊ทธ ์ถœ๋ ฅ ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ดํ›„ ํ•ด๋‹น ํ”Œ๋ž˜๊ทธ๊ฐ€ UART์— ๋‚˜ํƒ€๋‚˜๋Š” ์ˆœ๊ฐ„์„ ํฌ์ฐฉํ•˜๋Š” ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ์ •์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ํŠธ๋ฆฌ๊ฑฐ ๋‹ค์ด์–ด๊ทธ๋žจ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

4.2.2 ์ผ๋ฐ˜ ํ”„๋กœ๊ทธ๋žจ ํŠธ๋ฆฌ๊ฑฐ

CHStone ๋ฒค์น˜๋งˆํฌ์™€ โ€˜SUMโ€™ ํ”„๋กœ๊ทธ๋žจ ๋“ฑ ์ผ๋ฐ˜ ํ”„๋กœ๊ทธ๋žจ์˜ ์ข…๋ฃŒ ์‹œ์ ์„ ํŒ๋‹จํ•˜๊ธฐ ์œ„ํ•ด, ํ”„๋กœ๊ทธ๋žจ ๋ฉ”๋ชจ๋ฆฌ ํŒŒ์ผ์˜ ๋๋ถ€๋ถ„์— ํŠน์ˆ˜ ๋ช…๋ น์„ ์‚ฝ์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์ด ์‹คํ–‰๋  ๋•Œ๋ฅผ ํฌ์ฐฉํ•˜๋Š” ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ์ •์˜ํ–ˆ์œผ๋ฉฐ, ํŠธ๋ฆฌ๊ฑฐ ๋‹ค์ด์–ด๊ทธ๋žจ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.


5. ํ‰๊ฐ€

๋ณธ ์ ˆ์—์„œ๋Š” Veloce๊ฐ€ ๋ณต์žกํ•œ ํ•˜๋“œ์›จ์–ด ์„ค๊ณ„๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์†๋„ ํ–ฅ์ƒ์„ ์ค‘์ ์ ์œผ๋กœ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ํ‰๊ฐ€ ๋Œ€์ƒ์€ ๋‘ ๊ฐ€์ง€ ์ ‘๊ทผ๋ฒ•์ด๋ฉฐ, ๊ฐ๊ฐ ์„ธ ๊ฐ€์ง€ ๋ฒค์น˜๋งˆํฌ์— ๋Œ€ํ•ด ์‹คํ—˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ORPSoC ์‹œ๋ฎฌ๋ ˆ์ด์…˜ (ModelSim)
  • ORPSoC ์—๋ฎฌ๋ ˆ์ด์…˜ (Veloce)

๋ฒค์น˜๋งˆํฌ

  1. Sumโ€ฏN โ€“ ๋‹ค์–‘ํ•œ N๊ฐ’์„ ๊ฐ–๋Š” โ€˜sumโ€™ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰
  2. Linux ์‹œ์Šคํ…œ ๋ถ€ํŒ… โ€“ ORPSoC ์œ„์—์„œ Linux ์ปค๋„ ๋ถ€ํŒ…
  3. CHStone โ€“ 12๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๊ตฌ์„ฑ๋œ C ๊ธฐ๋ฐ˜ ๋ฒค์น˜๋งˆํฌ

5.1 ORPSoC ๊ธฐ๋ณธ ์ •๋ณด

Tableโ€‘I์€ ORPSoC ์„ค๊ณ„์˜ ๊ธฐ๋ณธ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” Blank, Comment, Code ๋ผ์ธ์„ LOC(์ค„ ์ˆ˜) ๋กœ ํ‰๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

LanguageFilesBlankCommentCode
Verilog2017โ€ฏ46621โ€ฏ27646โ€ฏ611

5.2 ๋ฒค์น˜๋งˆํฌโ€ฏ1: Sumโ€ฏN

โ€˜sumโ€™ ํ”„๋กœ๊ทธ๋žจ์„ Nโ€ฏ=โ€ฏ10,โ€ฏ100,โ€ฏ1โ€ฏ000,โ€ฏ10โ€ฏ000,โ€ฏ100โ€ฏ000,โ€ฏ1โ€ฏ000โ€ฏ000,โ€ฏ10โ€ฏ000โ€ฏ000 ๋“ฑ ๋‹ค์–‘ํ•œ ํฌ๊ธฐ๋กœ ์‹คํ–‰ํ–ˆ์„ ๋•Œ์˜ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ยท์—๋ฎฌ๋ ˆ์ด์…˜ ์‹œ๊ฐ„๊ณผ ์†๋„ ํ–ฅ์ƒ ๋น„์œจ์„ Tableโ€‘II์™€ Figureโ€‘4์— ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

  • N์ด ์ž‘์„ ๋•Œ๋Š” Veloce๊ฐ€ ํฐ ์ด์ ์„ ๋ณด์ด์ง€ ์•Š์Œ.
  • N์ด ์ปค์งˆ์ˆ˜๋ก Veloce์˜ ์†๋„ ํ–ฅ์ƒ์ด ๊ธ‰๊ฒฉํžˆ ์ฆ๊ฐ€ํ•จ.

์˜ˆ์‹œ ์ฝ”๋“œ

C
#define N 10
int main() {
    long int i = 0, sum = 0;
    for (i = 0; i < N; i++)
        sum += i;
    return 0;
}
ํด๋ฆญํ•˜์—ฌ ๋” ๋ณด๊ธฐ

Tableโ€‘II: N๋ณ„ ์‹คํ–‰ ๊ฒฐ๊ณผ

NSimulation Time (s)Emulation Time (s)Speedup (ร—)
101.9081.6631.15
1001.9821.71.17
1โ€ฏ0003.1221.661.88
10โ€ฏ00013.7761.7887.70
100โ€ฏ000120.9873.35636.05
1โ€ฏ000โ€ฏ0001โ€ฏ216.70418.94164.24
10โ€ฏ000โ€ฏ00013โ€ฏ011.505175.61274.09

Figureโ€ฏ4: N์ด ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ Veloce๊ฐ€ ๋‹ฌ์„ฑํ•œ ์†๋„ ํ–ฅ์ƒ

5.3 ๋ฒค์น˜๋งˆํฌโ€ฏ2: Linux ์‹œ์Šคํ…œ ๋ถ€ํŒ…

Linux ์ปค๋„์„ ์†Œ์Šค์—์„œ ์ง์ ‘ ์ปดํŒŒ์ผํ•˜๊ณ , ์ƒ์„ฑ๋œ vmem ํŒŒ์ผ์„ ORPSoC ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œํ•œ ๋’ค ๋ถ€ํŒ…์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ยท์—๋ฎฌ๋ ˆ์ด์…˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ถ€ํŒ… ๊ณผ

์ด ๊ธ€์€ AI๊ฐ€ ์ž๋™ ๋ฒˆ์—ญ ๋ฐ ์š”์•ฝํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

๊ฒ€์ƒ‰ ์‹œ์ž‘

๊ฒ€์ƒ‰์–ด๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”

โ†‘โ†“
โ†ต
ESC
โŒ˜K ๋‹จ์ถ•ํ‚ค