Original Title: Design of Energy-Efficient CGRA-based Systems
Source: www.tue.nl
Disclaimer: Summary generated by AI based on the provided document. Please refer to the original paper for full scientific accuracy.

ការរចនាប្រព័ន្ធផ្អែកលើ CGRA ដែលមានប្រសិទ្ធភាពថាមពល

ចំណងជើងដើម៖ Design of Energy-Efficient CGRA-based Systems

អ្នកនិពន្ធ៖ Egbart de Bruin (Eindhoven University of Technology)

ឆ្នាំបោះពុម្ព៖ 2024 Eindhoven University of Technology

វិស័យសិក្សា៖ Computer Architecture and Embedded Systems

១. សេចក្តីសង្ខេបប្រតិបត្តិ (Executive Summary)

បញ្ហា (The Problem)៖ ឧបករណ៍សេនស័រ (Sensor) សម្រាប់បង្កប់លើរាងកាយមានថាមពលថ្មមានកំណត់ ខណៈក្បួនដោះស្រាយ (Algorithms) កាន់តែមានភាពស្មុគស្មាញ។ ដូច្នេះ ការស្វែងរកស្ថាបត្យកម្មកុំព្យូទ័រដែលអាចបត់បែនបាន និងស៊ីភ្លើងតិច ដូចជា CGRA គឺជារឿងចាំបាច់សម្រាប់ដំណើរការប្រព័ន្ធទាំងនេះ។

វិធីសាស្ត្រ (The Methodology)៖ ការស្រាវជ្រាវនេះប្រើប្រាស់វិធីសាស្ត្ររចនា និងកែលម្អពីលើចុះក្រោម (Top-down optimization approach) ចាប់ពីកម្រិតកម្មវិធី កម្មវិធីបម្លែងកូដ (Compiler) រហូតដល់ស្ថាបត្យកម្ម និងកម្រិតសៀគ្វី (Circuits)។

លទ្ធផលសំខាន់ៗ (The Verdict)៖

២. ការវិភាគលើប្រសិទ្ធភាព និងដែនកំណត់ (Performance & Constraints)

វិធីសាស្ត្រ (Method) គុណសម្បត្តិ (Pros) គុណវិបត្តិ (Cons) លទ្ធផលគន្លឹះ (Key Result)
Baseline RISC-V MCU (Edge Processing)
ការដំណើរការទិន្នន័យលើបន្ទះឈីប RISC-V ធម្មតា
មានភាពបត់បែនខ្ពស់ គាំទ្រការសរសេរកូដស្តង់ដារ C/C++ និងងាយស្រួលក្នុងការអភិវឌ្ឍ។ ស៊ីភ្លើងខ្លាំង និងមានល្បឿនយឺតនៅពេលដំណើរការក្បួនដោះស្រាយស្មុគស្មាញ (មិនអាចដំណើរការទាន់ពេល ឬ Real-time ក្នុងកម្រិតថាមពលទាបបានទេ)។ ប្រើប្រាស់ថាមពលប្រមាណ 25.76 mJ/epoch មុនពេលធ្វើឱ្យប្រសើរ និងចុះមកនៅត្រឹម 1.44 mJ/epoch ក្រោយការកែសម្រួលកូដ។
Cloud Processing
ការបញ្ជូនទិន្នន័យទៅដំណើរការលើប្រព័ន្ធក្លោដគណនា (Cloud)
មិនតម្រូវឱ្យឧបករណ៍បង្កប់មានកម្លាំងគណនាខ្ពស់ ដោយគ្រាន់តែប្រមូលនិងបញ្ជូនទិន្នន័យ។ ប្រើប្រាស់ថាមពលថ្មច្រើនខ្លាំងសម្រាប់ការបញ្ជូនទិន្នន័យឥតខ្សែ (Wireless) ព្រមទាំងអាចមានបញ្ហាភាពយឺតយ៉ាវ និងឯកជនភាព។ ប្រើប្រាស់ថាមពលប្រមាណ 3.44 mJ/epoch សម្រាប់ការបញ្ជូនទិន្នន័យដែលនៅតែខ្ពស់ជាងបច្ចេកវិទ្យា CGRA។
BrainWave Processor (Blocks CGRA)
អង្គគណនា BrainWave រួមបញ្ចូលជាមួយស្ថាបត្យកម្ម Blocks CGRA
សន្សំសំចៃថាមពលកម្រិតខ្ពស់ដោយប្រើបច្ចេកវិទ្យា Near-threshold voltage-stacking និងកាត់បន្ថយការប្រើប្រាស់ Register File ខ្លាំង។ តម្រូវឱ្យអ្នកអភិវឌ្ឍសរសេរកូដជាភាសា Assembly ដោយដៃផ្ទាល់ ដែលចំណាយពេលច្រើននិងស្មុគស្មាញ។ កាត់បន្ថយការប្រើប្រាស់ថាមពលសរុបបាន 5.4 ដង បើធៀបនឹង RISC-V ធម្មតា ដោយប្រើប្រាស់ត្រឹមតែ 264 µJ/epoch ប៉ុណ្ណោះ។
R-Blocks CGRA with OpenASIP Compiler
ស្ថាបត្យកម្ម R-Blocks CGRA ប្រើជាមួយកម្មវិធីបម្លែងកូដ OpenASIP
អាចសរសេរនិងបម្លែងកូដ C ធម្មតាបានលឿន គាំទ្របច្ចេកវិទ្យា VLIW-SIMD និងមានមុខងារ Software bypassing ដែលស៊ីភ្លើងតិច។ បណ្តាញភ្ជាប់ (Interconnect) ត្រូវការផ្ទៃរចនាធំ (កើន 1.9 ដង) ហើយល្បឿនរត់នៅចាញ់កូដ Assembly សរសេរដោយដៃចន្លោះពី 1.39 ទៅ 2.14 ដង។ សម្រេចបានប្រសិទ្ធភាពថាមពល 115 MOPS/mW សម្រាប់កម្មវិធី FFT (មានប្រសិទ្ធភាពជាង RISC-V 1.45 ដង)។

ការចំណាយលើធនធាន (Resource Cost)៖ ការរចនា និងវាយតម្លៃប្រព័ន្ធបន្ទះឈីបកម្រិតនេះ តម្រូវឱ្យមានការប្រើប្រាស់ឧបករណ៍ផ្នែកទន់សម្រាប់ការរចនាសៀគ្វី ឧបករណ៍ FPGA សម្រាប់ធ្វើតេស្ត និងទិន្នន័យវេជ្ជសាស្ត្រពិតប្រាកដ។

៣. ការពិនិត្យសម្រាប់បរិបទកម្ពុជា/អាស៊ីអាគ្នេយ៍

ភាពលំអៀងនៃទិន្នន័យ (Data Bias)៖

ការសិក្សានេះប្រើប្រាស់ទិន្នន័យ EEG ដែលប្រមូលបានពីគ្លីនិកនិងមន្ទីរពេទ្យនៅប៉ែកអឺរ៉ុប។ ទោះបីជាសញ្ញាជីវសាស្ត្ររបស់មនុស្សទូទៅមានលក្ខណៈប្រហាក់ប្រហែលគ្នាក៏ដោយ ក៏កត្តាផ្សេងៗនៅកម្ពុជា ដូចជាអាកាសធាតុក្តៅសើម សីតុណ្ហភាពខ្ពស់ ឬការប្រើប្រាស់ឧបករណ៍វាស់ស្ទង់តម្លៃថោកនៅតាមជនបទ អាចធ្វើឱ្យទិន្នន័យជាក់ស្តែងមានសញ្ញារំខាន (Noise) ច្រើនជាងទិន្នន័យស្តង់ដារនេះ។

លទ្ធភាពនៃការអនុវត្ត (Applicability)៖

បច្ចេកវិទ្យា CGRA សម្រាប់ការប្រើប្រាស់ថាមពលទាបបំផុត គឺមានសារៈសំខាន់ខ្លាំងណាស់ក្នុងការជំរុញការអភិវឌ្ឍឧបករណ៍វៃឆ្លាតបង្កប់ (IoT និង Wearables) នៅប្រទេសកម្ពុជា។

ជាសរុប ការចាប់យកបច្ចេកវិទ្យា CGRA និង RISC-V កូដបើកចំហ នឹងផ្តល់ឱកាសយ៉ាងធំធេងឱ្យអ្នកស្រាវជ្រាវកម្ពុជាអាចអភិវឌ្ឍប្រព័ន្ធ IoT និងឧបករណ៍ពេទ្យផ្ទាល់ខ្លួន ដែលមានប្រសិទ្ធភាពថាមពលខ្ពស់ និងស្របតាមបរិបទមូលដ្ឋាន។

៤. ផែនការសកម្មភាពសម្រាប់និស្សិត (Actionable Roadmap)

ដើម្បីអនុវត្តតាមការសិក្សានេះ និស្សិតគួរអនុវត្តតាមជំហានខាងក្រោម៖

  1. សិក្សាមូលដ្ឋានគ្រឹះស្ថាបត្យកម្មកុំព្យូទ័រ (Computer Architecture): ចាប់ផ្តើមរៀនអំពី RISC-V ISA ដែលជាប្រព័ន្ធកូដបើកចំហ ដើម្បីយល់ដឹងពីរបៀបដែលម៉ាស៊ីនដំណើរការបញ្ជា (Instruction Set) និងមូលដ្ឋានគ្រឹះនៃការរចនាអង្គគណនា។
  2. អនុវត្តប្រើប្រាស់កម្មវិធីបម្លែងកូដកម្រិតខ្ពស់ (Compiler Infrastructure): ធ្វើការស្វែងយល់ពី LLVM Compiler Framework និងសាកល្បងប្រើប្រាស់កម្មវិធី OpenASIP ដើម្បីបង្កើតស្ថាបត្យកម្មប្រព័ន្ធកុំព្យូទ័រផ្ទាល់ខ្លួន (Custom ASIPs/CGRAs) និងសាកល្បងបម្លែងកូដ C ទៅជា Assembly។
  3. ការរចនាផ្នែករឹង និងការធ្វើតេស្តលើ FPGA: សិក្សាភាសាសរសេរកូដផ្នែករឹង SystemVerilogVHDL រួចអនុវត្តការដាក់បញ្ចូលសៀគ្វី (Synthesis/Routing) ទៅកាន់បន្ទះ TerasIC FPGA ដើម្បីសាកល្បងដំណើរការប្រព័ន្ធនៅក្នុងបរិស្ថានជាក់ស្តែង។
  4. អភិវឌ្ឍក្បួនដោះស្រាយសម្រាប់ Edge AI & DSP: រៀនសរសេរកម្មវិធី AI និង Signal Processing ដោយប្រើ C/C++ ដោយផ្តោតលើបច្ចេកទេស Fixed-point quantization និង Loop Unrolling ដើម្បីឱ្យក្បួនដោះស្រាយដំណើរការបានលឿន និងស៊ីភ្លើងតិចលើឧបករណ៍ខ្នាតតូច។

៥. វាក្យសព្ទបច្ចេកទេស (Technical Glossary)

ពាក្យបច្ចេកទេស ការពន្យល់ជាខេមរភាសា (Khmer Explanation) និយមន័យសាមញ្ញ (Simple Definition)
Coarse-Grained Reconfigurable Architectures (CGRA) ជាស្ថាបត្យកម្មកុំព្យូទ័រមួយប្រភេទដែលអនុញ្ញាតឱ្យគេផ្លាស់ប្តូរការតភ្ជាប់រវាងអង្គគណនាតូចៗជាច្រើន ដើម្បីដំណើរការក្បួនដោះស្រាយផ្សេងៗគ្នាដោយប្រើប្រាស់ថាមពលតិចបំផុត។ វាផ្តល់នូវភាពបត់បែនដូចទៅនឹង CPU តែមានប្រសិទ្ធភាពសន្សំសំចៃថាមពលប្រហាក់ប្រហែលទៅនឹងបន្ទះឈីបដែលបង្កើតឡើងសម្រាប់តែមុខងារមួយ (ASIC)។ ដូចជាការប្រើប្រាស់ដុំឡេហ្គោ (Lego) ដែលយើងអាចរៀបផ្តុំជាទម្រង់ផ្សេងៗគ្នាដើម្បីបំពេញការងារខុសៗគ្នាតាមតម្រូវការជាក់ស្តែង។
Software Bypassing ជាបច្ចេកទេសក្នុងកម្មវិធីបម្លែងកូដ (Compiler) ដែលកំណត់ការបញ្ជូនទិន្នន័យដោយផ្ទាល់ពីអង្គគណនាមួយទៅអង្គគណនាមួយទៀតតាមរយៈបណ្តាញតភ្ជាប់ ដោយមិនចាំបាច់រក្សាទុកទិន្នន័យនោះទៅក្នុងអង្គចងចាំរួម (Register File) ឡើយ។ នេះជួយកាត់បន្ថយការពន្យារពេលនិងការស៊ីភ្លើងដែលបណ្តាលមកពីការចូលអាននិងសរសេរក្នុងអង្គចងចាំ។ ដូចជាការបញ្ជូនឯកសារពីដៃម្នាក់ទៅដៃម្នាក់ទៀតផ្ទាល់ដោយមិនបាច់យកឯកសារនោះទៅតម្កល់ទុកនៅលើតុរួមសិននោះទេ។
Near-threshold voltage-stacking ជាការរចនាសៀគ្វីអគ្គិសនីដែលដាក់ដុំសៀគ្វីត្រួតលើគ្នាជាលំដាប់ (ជាស៊េរី) ដើម្បីប្រើប្រាស់វ៉ុលអគ្គិសនីទាបបំផុតជិតដល់កម្រិតដែលមិនអាចដំណើរការបាន ព្រមទាំងយកចរន្តដែលសល់ពីប្លុកមួយទៅចិញ្ចឹមប្លុកមួយទៀត ដើម្បីសន្សំសំចៃថាមពលខ្ពស់បំផុតដោយមិនបាច់ប្រើប្រព័ន្ធបម្លែងវ៉ុល (Voltage converter) ដែលស៊ីភ្លើង។ ដូចជាការបង្ហូរទឹកពីអាងខាងលើមកអាងខាងក្រោមជាថ្នាក់ៗ ដែលធានាថាទឹកមួយដំណក់ត្រូវបានប្រើប្រាស់ច្រើនដងដើម្បីបង្វិលកង់ទឹកផ្សេងៗគ្នាជាជាងបង្ហូរចោល។
Very long instruction word (VLIW) ជាស្ថាបត្យកម្មដែលអនុញ្ញាតឱ្យកម្មវិធីបម្លែងកូដ (Compiler) ខ្ចប់បញ្ជា (Instructions) ជាច្រើនបញ្ចូលគ្នាទៅក្នុងកញ្ចប់តែមួយ ដើម្បីឱ្យអង្គគណនាអាចដំណើរការបញ្ជាទាំងនោះស្របគ្នាក្នុងពេលតែមួយដោយមិនបាច់ឱ្យផ្នែករឹង (Hardware) ចំណាយពេលវិភាគរករៀបចំវាឡើងវិញក្នុងពេលកំពុងដំណើរការឡើយ។ ដូចជាមេកងម្នាក់ដែលប្រគល់បញ្ជីការងារច្បាស់លាស់តែមួយសន្លឹកទៅឱ្យកូនចៅ៥នាក់ផ្សេងគ្នា ដើម្បីឱ្យពួកគេចាប់ផ្តើមធ្វើការរៀងខ្លួនស្របគ្នាក្នុងពេលតែមួយ។
Single instruction, multiple data (SIMD) ជាបច្ចេកទេសដំណើរការទិន្នន័យដែលម៉ាស៊ីនប្រើប្រាស់បញ្ជាតែមួយគត់ ដើម្បីធ្វើការគណនាលើសំណុំទិន្នន័យជាច្រើនផ្សេងគ្នាក្នុងពេលតែមួយ ដែលជួយពន្លឿនការគណនាទិន្នន័យធំៗដូចជាសញ្ញាជីវវេជ្ជសាស្ត្រ សំឡេង ឬរូបភាពជាដើម។ ដូចជាគ្រូបង្រៀនម្នាក់ស្រែកប្រាប់បញ្ជាតែមួយម៉ាត់ថា "ក្រោកឈរ!" ហើយសិស្សនៅក្នុងថ្នាក់ទាំង២០នាក់ក្រោកឈរព្រមគ្នាក្នុងពេលតែមួយ។
OpenASIP ជាបណ្តុំកម្មវិធីកូដបើកចំហ (Open-source toolset) សម្រាប់រចនា និងសរសេរកម្មវិធីសម្រាប់បន្ទះឈីបដែលបង្កើតឡើងដោយខ្លួនឯង ដោយវាជួយបម្លែងកូដកម្រិតខ្ពស់ (ដូចជាភាសា C) ទៅជាកូដភាសាម៉ាស៊ីនដែលតម្រូវទៅតាមរចនាសម្ព័ន្ធជាក់លាក់នៃស្ថាបត្យកម្មបន្ទះឈីបនោះ។ ដូចជាអ្នកបកប្រែជំនាញម្នាក់ដែលយល់ពីគម្រោងការសាងសង់ទូទៅ ហើយអាចពន្យល់លម្អិតទៅដល់ជាងសំណង់ម្នាក់ៗថាតើត្រូវធ្វើអ្វីខ្លះតាមឧបករណ៍ដែលពួកគេមានក្នុងដៃ។
Non-convulsive status epilepticus (NCSE) ជាស្ថានភាពនៃការប្រកាច់សរសៃប្រសាទកម្រិតធ្ងន់ដែលកើតឡើងជាបន្តបន្ទាប់ដោយគ្មានរោគសញ្ញាកន្ត្រាក់សាច់ដុំខាងក្រៅឱ្យអ្នកជំងឺ ឬគ្រូពេទ្យកត់សម្គាល់ឃើញច្បាស់ឡើយ។ ការដឹងពីវាទាមទារការវាស់ស្ទង់រលកខួរក្បាល (EEG) ជាប់ជាប្រចាំដើម្បីវិភាគ។ ដូចជាម៉ាស៊ីនរថយន្តកំពុងតែឡើងកម្តៅខ្លាំងនិងមានបញ្ហាខាងក្នុងយ៉ាងធ្ងន់ធ្ងរ ប៉ុន្តែនៅខាងក្រៅរថយន្តមើលទៅហាក់ដូចជាកំពុងឈប់ស្ងៀមជាធម្មតា។

៦. ប្រធានបទពាក់ព័ន្ធ (Further Reading)

អត្ថបទដែលបានបោះពុម្ពនៅលើ KhmerResearch ដែលទាក់ទងនឹងប្រធានបទនេះ៖

ប្រធានបទ និងសំណួរស្រាវជ្រាវដែលទាក់ទងនឹងឯកសារនេះ ដែលអ្នកអាចស្វែងរកបន្ថែម៖