Original Title: Parallel Logic Synthesis Optimization for Digital Sequential Circuit
Source: li01.tci-thaijo.org
Disclaimer: Summary generated by AI based on the provided document. Please refer to the original paper for full scientific accuracy.

ការធ្វើឱ្យប្រសើរឡើងនូវការសំយោគតក្កវិជ្ជាស្របគ្នាសម្រាប់សៀគ្វីលំដាប់លំដោយឌីជីថល

ចំណងជើងដើម៖ Parallel Logic Synthesis Optimization for Digital Sequential Circuit

អ្នកនិពន្ធ៖ Aswit Pungsema (Kasetsart University), Pradondet Nilagupta (Kasetsart University)

ឆ្នាំបោះពុម្ព៖ 2002 (Kasetsart J. Nat. Sci.)

វិស័យសិក្សា៖ Computer Engineering

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

បញ្ហា (The Problem)៖ ឯកសារនេះដោះស្រាយបញ្ហានៃការប្រើប្រាស់ពេលវេលាយូរក្នុងការគណនាសំយោគសៀគ្វីតក្កវិជ្ជាលំដាប់លំដោយ (Sequential logic circuits) ដែលមានទំហំធំ និងស្មុគស្មាញនៅក្នុងការរចនាប្រព័ន្ធ VLSI ។

វិធីសាស្ត្រ (The Methodology)៖ ការសិក្សានេះស្នើឡើងនូវវិធីសាស្ត្រជំនួសដោយប្រើប្រាស់ក្បួនដោះស្រាយការបំបែកក្រាហ្វ និងការធ្វើសំយោគស្របគ្នាដើម្បីកាត់បន្ថយបន្ទុកនៃការគណនា។

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

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

វិធីសាស្ត្រ (Method) គុណសម្បត្តិ (Pros) គុណវិបត្តិ (Cons) លទ្ធផលគន្លឹះ (Key Result)
Sequential Logic Synthesis
ការសំយោគតក្កវិជ្ជាតាមលំដាប់លំដោយ (ម៉ាស៊ីនតែមួយ)
មិនមានបញ្ហាយឺតយ៉ាវដោយសារការបញ្ជូនទិន្នន័យតាមបណ្តាញ (Network I/O) និងមិនមានការកាត់ផ្តាច់ទំនាក់ទំនងរវាងសៀគ្វីរង (Edge-cut)។ ប្រើប្រាស់ពេលវេលាយូរខ្លាំងសម្រាប់ការគណនាសៀគ្វីដែលមានទំហំធំ និងស្មុគស្មាញ ដោយសារមានកំណត់ត្រឹមទំហំអង្គចងចាំ និងល្បឿនរបស់ប្រូសេស័រតែមួយ។ សៀគ្វី S38417 ប្រើពេលរហូតដល់ ៩៥៣ វិនាទី លើប្រូសេស័រតែមួយ។
Parallel Logic Synthesis using Graph Partitioning
ការសំយោគតក្កវិជ្ជាស្របគ្នាដោយប្រើការបំបែកក្រាហ្វ
កាត់បន្ថយពេលវេលាសំយោគបានយ៉ាងច្រើនសម្រាប់សៀគ្វីស្មុគស្មាញ ដោយប្រើប្រាស់ប្រូសេស័រច្រើនក្នុងពេលតែមួយ និងទាញយកប្រយោជន៍ពីអង្គចងចាំសរុបរបស់កុំព្យូទ័រចង្កោម។ ទាមទារពេលវេលាទំនាក់ទំនងតាមបណ្តាញ (Network I/O) ច្រើន ហើយប្រសិទ្ធភាពធ្លាក់ចុះសម្រាប់សៀគ្វីតូចៗ (ដូចជាសៀគ្វី s1488)។ ចំនួនទីតាំងកាត់ផ្តាច់ (Edge-cut) កើនឡើងតាមចំនួនប្រូសេស័រ។ សម្រេចបានការបង្កើនល្បឿន (Speedup) ៨,២ ដង សម្រាប់សៀគ្វី s15850 និង ៧,៧ ដង សម្រាប់សៀគ្វី s38417 នៅពេលប្រើប្រូសេស័រ ១៦។

ការចំណាយលើធនធាន (Resource Cost)៖ ការស្រាវជ្រាវនេះទាមទារការប្រើប្រាស់ប្រព័ន្ធកុំព្យូទ័រចង្កោម (Cluster computing) និងកម្មវិធីឯកទេសសម្រាប់ការរចនាសៀគ្វី និងការបំបែកក្រាហ្វ។

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

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

ការសិក្សានេះប្រើប្រាស់សំណុំទិន្នន័យសៀគ្វីស្តង់ដារ LGSynth’91 សម្រាប់ការធ្វើតេស្ត ដែលជាទិន្នន័យទ្រឹស្តីទូទៅ មិនមានភាពលំអៀងទៅលើតំបន់ភូមិសាស្ត្រណាមួយឡើយ។ យ៉ាងណាមិញ ផ្នែករឹងដែលបានប្រើប្រាស់ (Pentium III, 100Mbps) គឺហួសសម័យណាស់បើធៀបនឹងបច្ចេកវិទ្យាបច្ចុប្បន្ន។ សម្រាប់កម្ពុជា ការយល់ដឹងពីគោលការណ៍ក្បួនដោះស្រាយនេះមានសារៈសំខាន់ ប៉ុន្តែត្រូវអនុវត្តលើផ្នែករឹងទំនើប (ដូចជា Multi-core CPUs ឬ Cloud Computing) ជំនួសវិញ។

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

វិធីសាស្ត្រនៃការបំបែកក្រាហ្វ និងការគណនាស្របគ្នានេះ គឺជាមូលដ្ឋានគ្រឹះដ៏សំខាន់សម្រាប់ការអប់រំ និងស្រាវជ្រាវផ្នែកវិស្វកម្មកុំព្យូទ័រនៅកម្ពុជា។

ជារួម ឯកសារនេះផ្តល់នូវតម្លៃជាមូលដ្ឋានគ្រឹះអប់រំដ៏រឹងមាំ ដើម្បីអភិវឌ្ឍធនធានមនុស្សនៅកម្ពុជាឲ្យយល់ដឹងពីស្ថាបត្យកម្មកុំព្យូទ័រស្របគ្នា និងការរចនាសៀគ្វីឌីជីថលកម្រិតខ្ពស់។

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

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

  1. សិក្សាអំពីមូលដ្ឋានគ្រឹះសៀគ្វីតក្កវិជ្ជា និង VLSI: ស្វែងយល់អំពីដំណើរការនៃការសំយោគតក្កវិជ្ជា (Logic Synthesis) និងការតម្លើងសៀគ្វី (Netlist) ដោយសាកល្បងប្រើប្រាស់កម្មវិធីចាស់ដូចជា SIS ឬកម្មវិធីទំនើបដូចជា Yosys Open SYnthesis Suite ដើម្បីវិភាគសៀគ្វីឌីជីថល។
  2. ស្វែងយល់ពីក្បួនដោះស្រាយការបំបែកក្រាហ្វ: សិក្សាអំពីទ្រឹស្តីក្រាហ្វ (Graph Theory) ជាពិសេសបញ្ហា Graph Partitioning និង Edge-cut ដោយអនុវត្តការសរសេរកូដសាកល្បងជាមួយបណ្ណាល័យ METISParMETIS ដើម្បីបំបែកទិន្នន័យធំៗជាចំណែកតូចៗ។
  3. រៀបចំប្រព័ន្ធកុំព្យូទ័រស្របគ្នា (Parallel Environment): រៀនបង្កើតនិងតភ្ជាប់កុំព្យូទ័រចង្កោមតូចមួយ (Mini-cluster) ដោយប្រើប្រាស់ប្រព័ន្ធប្រតិបត្តិការ Linux និងដំឡើងបណ្ណាល័យ MPI (Message Passing Interface) ដើម្បីឲ្យម៉ាស៊ីនអាចទាក់ទងគ្នានិងចែករំលែកការគណនា។
  4. អនុវត្តការធ្វើតេស្តជាមួយទិន្នន័យសៀគ្វីស្តង់ដារ: ទាញយកសំណុំទិន្នន័យសៀគ្វីសាកល្បងដូចជា LGSynth'91ISCAS benchmarks មកដំណើរការលើប្រព័ន្ធកុំព្យូទ័រស្របគ្នាដែលបានរៀបចំ ដើម្បីប្រៀបធៀបល្បឿន និងវាយតម្លៃប្រសិទ្ធភាពនៃក្បួនដោះស្រាយ។

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

ពាក្យបច្ចេកទេស ការពន្យល់ជាខេមរភាសា (Khmer Explanation) និយមន័យសាមញ្ញ (Simple Definition)
Logic Synthesis (ការសំយោគតក្កវិជ្ជា) ដំណើរការបំប្លែងការរចនាសៀគ្វីកម្រិតខ្ពស់ (High-level abstract) ទៅជាទម្រង់នៃច្រកតក្កវិជ្ជា (Logic gates) កម្រិតទាប ដើម្បីកាត់បន្ថយទំហំ និងបង្កើនល្បឿនសៀគ្វីនៅលើបន្ទះឈីប មុននឹងយកទៅបោះពុម្ពលើឧបករណ៍ដូចជា FPGA។ ដូចជាការបកប្រែប្លង់ផ្ទះទូទៅ ទៅជាបញ្ជីរាយនាមឥដ្ឋ និងស៊ីម៉ងត៍លម្អិតដែលត្រូវប្រើសម្រាប់សាងសង់ជាក់ស្តែង។
Graph Partitioning (ការបំបែកក្រាហ្វ) ជាក្បួនដោះស្រាយគណិតវិទ្យាសម្រាប់បែងចែកបណ្តាញដ៏ធំមួយ (Graph) ទៅជាបំណែកតូចៗ (Sub-graphs) ជាច្រើនដែលមានទំហំប្រហាក់ប្រហែលគ្នា ដោយព្យាយាមកាត់បន្ថយចំនួនខ្សែតភ្ជាប់រវាងបំណែកទាំងនោះឱ្យនៅតិចបំផុត ដើម្បីងាយស្រួលអោយកុំព្យូទ័រច្រើនគណនាព្រមគ្នា។ ដូចជាការចែកក្រុមកីឡាករដ៏ធំមួយទៅជាក្រុមតូចៗ ដោយព្យាយាមរក្សាមិត្តភក្តិជិតស្និទ្ធឱ្យនៅក្រុមជាមួយគ្នា ដើម្បីកាត់បន្ថយការខ្វែងគំនិតគ្នារវាងក្រុម។
Sequential Circuit (សៀគ្វីលំដាប់លំដោយ) ប្រភេទសៀគ្វីឌីជីថលដែលលទ្ធផលបញ្ចេញ (Output) របស់វា មិនត្រឹមតែអាស្រ័យទៅលើទិន្នន័យបញ្ចូលបច្ចុប្បន្ន (Current input) ប៉ុណ្ណោះទេ ថែមទាំងអាស្រ័យលើប្រវត្តិទិន្នន័យចាស់ (Memory/Past states) ផងដែរ។ ដូចជាកូនសោចាក់លេខកូដ ដែលអ្នកត្រូវចាំ និងចុចលេខតាមលំដាប់លំដោយត្រឹមត្រូវ ទើបវាបើកចេញ។
Edge-cut (ចំនួនខ្សែដែលត្រូវកាត់ផ្តាច់) រង្វាស់មួយនៅក្នុងការបំបែកក្រាហ្វ ដែលរាប់ចំនួនខ្សែទំនាក់ទំនង (Edges) ដែលភ្ជាប់ពីបំណែកក្រាហ្វមួយទៅបំណែកមួយទៀត។ ចំនួននេះកាន់តែតូច ការបញ្ជូនទិន្នន័យតាមបណ្តាញរវាងប្រូសេស័រកាន់តែលឿន។ ដូចជារាប់ចំនួនស្ពានដែលឆ្លងកាត់ទន្លេខ័ណ្ឌចែកខេត្តពីរ ប្រសិនបើស្ពានកាន់តែតិច ការកកស្ទះចរាចរណ៍ឆ្លងកាត់ខេត្តក៏កាន់តែតិចនៅពេលមានការត្រួតពិនិត្យ។
Directed Acyclic Graph / DAG (ក្រាហ្វមានទិសដៅគ្មានវដ្ត) ទម្រង់ក្រាហ្វដែលចំណុចនីមួយៗ (Nodes) តភ្ជាប់គ្នាដោយមានទិសដៅច្បាស់លាស់ (ពីចំណុចមួយទៅមួយ) ហើយមិនមានខ្សែតភ្ជាប់ណាដែលរង្វិលត្រឡប់មកបង្កើតជារង្វង់ ឬវដ្ត (Cycle) វិញឡើយ។ គេប្រើវាសម្រាប់តំណាងឲ្យលំហូរនៃសមីការតក្កវិជ្ជានៅក្នុងសៀគ្វី។ ដូចជាប្រព័ន្ធផ្លូវទឹកហូរពីកំពូលភ្នំចុះមកក្រោមតៗគ្នា ដែលទឹកមិនអាចហូរត្រឡប់បញ្ច្រាសឡើងទៅលើវិញបានឡើយ។
Netlist (បញ្ជីបណ្តាញសៀគ្វី) ឯកសារអត្ថបទដែលរៀបរាប់យ៉ាងលម្អិតពីសមាសធាតុនៃសៀគ្វីអេឡិចត្រូនិកនីមួយៗ និងរបៀបដែលសមាសធាតុទាំងនោះតភ្ជាប់ខ្សែចូលគ្នា ដែលត្រូវបានប្រើជាទិន្នន័យបញ្ចូល (Input) សម្រាប់កម្មវិធីរចនាសៀគ្វីដើម្បីធ្វើការវិភាគ។ ដូចជាតារាងបញ្ជីគ្រឿងបន្លាស់និងខ្សែភ្លើង ដែលប្រាប់ជាងយ៉ាងច្បាស់ថាត្រូវតភ្ជាប់ខ្សែពណ៌អ្វីទៅរន្ធមួយណា។
Multilevel Bisection (ការកាត់ពាក់កណ្តាលពហុកម្រិត) បច្ចេកទេសក្នុងក្បួនដោះស្រាយដែលបង្រួមទំហំក្រាហ្វធំៗឱ្យទៅជាទម្រង់តូចនិងរដុបជាមុនសិន (Coarsening) ទើបធ្វើការកាត់ចែកវាជាពីរស្មើៗគ្នា រួចពង្រីកវាតាមលំដាប់លំដោយត្រឡប់មកសភាពដើមវិញ (Uncoarsening) ដើម្បីងាយស្រួលគណនា និងរក្សាគុណភាពនៃការបំបែក។ ដូចជាការបត់ក្រដាសផែនទីធំមួយជាច្រើនត្រួតសិន ទើបយកកន្ត្រៃកាត់ពាក់កណ្តាល រួចលាតវាចេញមកវិញ ជាជាងការព្យាយាមវាស់ និងកាត់ក្រដាសទាំងផ្ទាំងធំដោយផ្ទាល់។

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

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

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