មីក្រូដំណើរការ WH V3
លក្ខណៈបច្ចេកទេស
- ម៉ូដែល Microprocessor៖ QingKeV3
- កំណែ៖ វី៣៥
- លក្ខណៈពិសេសរបស់ ISA
- បំពង់ FPU
- ការព្យាករណ៍សាខា
- រំខានការគាំទ្រ
- HPE Physical Memory Protection (PMP)
- របៀបប្រើប្រាស់ថាមពលទាប
- ការណែនាំបន្ថែមកំណត់បំបាត់កំហុស
ការណែនាំអំពីការប្រើប្រាស់ផលិតផល
ជាងview នៃ QingKe V3 Microprocessor
ម៉ាស៊ីនដំណើរការខ្នាតតូចស៊េរី QingKe V3 រួមមានម៉ូដែល V3A, V3B និង V3C ។ ម៉ូដែលនីមួយៗមានលក្ខណៈជាក់លាក់ និងភាពខុសគ្នាដោយផ្អែកលើកម្មវិធីរបស់វា។
សំណុំការណែនាំ
សំណុំការណែនាំ RV32I រួមមានសំណុំចុះឈ្មោះចំនួន 32 ពី x0 ដល់ x31 ។ ស៊េរី V3 មិនគាំទ្រផ្នែកបន្ថែមចំណុចអណ្តែត (F) ទេ។ ការចុះឈ្មោះនីមួយៗមានទំហំ 32 ប៊ីត។
ចុះឈ្មោះកំណត់
សំណុំចុះឈ្មោះ RV32I មានការចុះឈ្មោះដូចខាងក្រោម។
- x0៖ កូដរឹង 0
- x1៖ ត្រឡប់អាសយដ្ឋាន
- x2៖ ទ្រនិចជង់
- x3៖ ទ្រនិចសកល
- x4៖ ទ្រនិចខ្សែស្រឡាយ
- x5-x7: ការចុះឈ្មោះបណ្តោះអាសន្ន
- x8៖ រក្សាទុកការចុះឈ្មោះ/ទ្រនិចស៊ុម
- x9៖ រក្សាទុកការចុះឈ្មោះ/ប៉ារ៉ាម៉ែត្រមុខងារ/តម្លៃត្រឡប់
- x10-x11: ប៉ារ៉ាម៉ែត្រមុខងារ
- x12-x17: រក្សាទុកការចុះឈ្មោះ
- x18-x27: ការចុះឈ្មោះបណ្តោះអាសន្ន
- x28-x31: ចុះឈ្មោះអ្នកហៅចូល / Callee
របៀបឯកសិទ្ធិ
ស្ថាបត្យកម្ម RISC-V ស្ដង់ដាររួមមានរបៀបដែលមានសិទ្ធិបី៖ របៀបម៉ាស៊ីន របៀបអ្នកគ្រប់គ្រង និងរបៀបអ្នកប្រើប្រាស់។ ឧបករណ៍ដំណើរការមីក្រូស៊េរី QingKe V3 គាំទ្ររបៀបម៉ាស៊ីន និងរបៀបអ្នកគ្រប់គ្រង។
សំណួរដែលសួរញឹកញាប់
សំណួរ: តើអ្វីជាម៉ូដែលផ្សេងគ្នានៅក្នុងមីក្រូដំណើរការ QingKe V3 ស៊េរី?
A: ស៊េរី QingKe V3 រួមមានម៉ូដែល V3A, V3B, និង V3C ដែលនីមួយៗមានលក្ខណៈពិសេស និងភាពខុសគ្នាដែលរៀបរាប់លម្អិតនៅក្នុងសៀវភៅណែនាំអ្នកប្រើប្រាស់។
សំណួរ៖ តើសំណុំចុះឈ្មោះប៉ុន្មានមាននៅក្នុងសំណុំការណែនាំ RV32I?
A: សំណុំការណែនាំ RV32I ផ្តល់នូវសំណុំចុះឈ្មោះចំនួន 32 ពី x0 ដល់ x31 ។
សំណួរ៖ តើរបៀបដែលមានសិទ្ធិណាមួយត្រូវបានគាំទ្រដោយមីក្រូដំណើរការ QingKe V3?
A: ឧបករណ៍ដំណើរការខ្នាតតូចស៊េរី QingKe V3 គាំទ្ររបៀបម៉ាស៊ីន និងរបៀបអ្នកគ្រប់គ្រងជាផ្នែកនៃស្ថាបត្យកម្ម RISC-V ។
ជាងview
QingKe V3 series microprocessors គឺជា microprocessors MCU គោលបំណងទូទៅ 32-bit ដែលអភិវឌ្ឍដោយខ្លួនឯងដោយផ្អែកលើស្ថាបត្យកម្មសំណុំការណែនាំ RISC-V ស្តង់ដារ។ ស៊េរីនេះរួមមាន V3A, V3B និង V3C ដែលក្នុងនោះ V3A គាំទ្រផ្នែកបន្ថែមសំណុំការណែនាំស្តង់ដារ RV32IMAC ហើយ V3B/C គាំទ្រផ្នែកបន្ថែមសំណុំការណែនាំស្តង់ដារ RV32IMCB និងផ្នែកបន្ថែមសំណុំការណែនាំតាមតម្រូវការ XW ។ ពួកគេទាំងពីរគាំទ្រការគុណតែមួយវដ្ត និងការបែងចែកផ្នែករឹង បន្ថែមពីលើជង់សម្ពាធផ្នែករឹង (HPE) ការរំខានដោយគ្មានតារាង (VTF) ចំណុចប្រទាក់បំបាត់កំហុស 1- និង 2-wire សម្រួលការណែនាំ "WFE" និងមុខងារពិសេសផ្សេងទៀត។ លើសពីនេះ វាក៏គាំទ្រ Hardware Prologue/Epilogue (HPE), Vector Table Free (VTF), សម្រួលចំណុចប្រទាក់បំបាត់កំហុស 1-/2-wire និងការគាំទ្រសម្រាប់ការណែនាំ “WFE”។
លក្ខណៈពិសេស
លក្ខណៈពិសេស | ការពិពណ៌នា |
អាយអេសអេ | RV32IM[A]C[B] |
បំពង់ | 3 |
FPU | មិនគាំទ្រ |
ការព្យាករណ៍សាខា | ការព្យាករណ៍សាខាឋិតិវន្ត |
រំខាន | គាំទ្រការរំខានសរុបចំនួន 256 រួមទាំងការលើកលែង និងគាំទ្រ VTF |
HPE | គាំទ្រ 2 កម្រិតនៃ HPE |
ការការពារការចងចាំរាងកាយ (PMP) | គាំទ្រ |
របៀបប្រើប្រាស់ថាមពលទាប | គាំទ្ររបៀបដំណេក និងការគេងជ្រៅ និងគាំទ្រវិធីសាស្ត្រនៃការគេង WFI និង WFE |
សំណុំការណែនាំបន្ថែម | គាំទ្រ |
បំបាត់កំហុស | 1/2-wire SDI, ស្តង់ដារ RISC-V បំបាត់កំហុស |
ជាងview
QingKe V3 series microprocessors រួមមាន V3A, V3B, និង V3C មានភាពខុសគ្នាមួយចំនួនរវាងស៊េរីនេះបើយោងតាមកម្មវិធី ភាពខុសគ្នាជាក់លាក់ត្រូវបានរៀបរាប់លម្អិតនៅក្នុងតារាង 1-1 ។
តារាង 1-1 លើសview នៃ QingKe V3 microprocessor
លក្ខណៈ គំរូ | អាយអេសអេ | ចំនួនកម្រិត HPE | ការរំខាន សំបុក ចំនួន កម្រិត | វីធីអេហ្វ ចំនួនឆានែល | បំពង់ | វ៉ិចទ័រ របៀបតារាង | ការណែនាំបន្ថែម (XW) | ចំនួនតំបន់ការពារអង្គចងចាំ |
V3A | RV32IMAC | 2 | 2 | 4 | 3 | ការណែនាំ | × | × |
V3B | RV32IMCB | 2 | 2 | 4 | 3 | អាសយដ្ឋាន/ការណែនាំ | √ | × |
V3C | RV32IMCB | 2 | 2 | 4 | 3 | អាសយដ្ឋាន/ការណែនាំ | √ | 4 |
ចំណាំ៖ ការប្តូរកិច្ចការ OS ជាទូទៅប្រើជង់រុញ ដែលមិនត្រូវបានកំណត់ចំពោះចំនួនកម្រិត
សំណុំការណែនាំ
- QingKe V3 series microprocessors អនុវត្តតាមស្តង់ដារ RISC-V Instruction Set Architecture (ISA)។ ឯកសារលម្អិតនៃស្ដង់ដារអាចរកបាននៅក្នុង "សៀវភៅណែនាំកំណត់ការណែនាំ RISC-V វគ្គ I: User-Level ISA, Document Version 2.2" នៅលើ RISC-V International webគេហទំព័រ។ សំណុំការណែនាំ RISC-V មានស្ថាបត្យកម្មសាមញ្ញ និងគាំទ្រការរចនាម៉ូឌុល ដែលអនុញ្ញាតឱ្យមានបន្សំដែលអាចបត់បែនបានដោយផ្អែកលើតម្រូវការផ្សេងៗគ្នា ហើយស៊េរី V3 គាំទ្រផ្នែកបន្ថែមនៃសំណុំការណែនាំខាងក្រោម។
- RV32៖ ស្ថាបត្យកម្ម 32 ប៊ីត ការចុះឈ្មោះគោលបំណងទូទៅ ទទឹងប៊ីត 32 ប៊ីត
- I: គាំទ្រប្រតិបត្តិការរាង, ជាមួយនឹងការចុះឈ្មោះរាង 32
- M: គាំទ្រការណែនាំអំពីទម្រង់គុណ និងការបែងចែក
- A: គាំទ្រពាក្យបញ្ជាអាតូមិច
- C: គាំទ្រការណែនាំអំពីការបង្ហាប់ 16 ប៊ីត
- B: ការគាំទ្រសម្រាប់ការណែនាំអំពីការរៀបចំប៊ីត
- XW៖ សេចក្តីណែនាំអំពីការបង្ហាប់ 16 ប៊ីតសម្រាប់បៃពង្រីកដោយខ្លួនឯង និងប្រតិបត្តិការពាក់កណ្តាលពាក្យ
ចំណាំ៖
- សំណុំរងនៃការណែនាំដែលគាំទ្រដោយម៉ូដែលផ្សេងៗគ្នាអាចមានភាពខុសប្លែកគ្នា សូមមើលតារាង 1-1 សម្រាប់ព័ត៌មានលម្អិត។
- ដើម្បីបង្កើនដង់ស៊ីតេកូដបន្ថែម ពង្រីកសំណុំរង XW បន្ថែមការណែនាំអំពីការបង្ហាប់ខាងក្រោម c.lbu/c.lhu/c.sb/c.sh/c.lbusp/c.lhusp/c.sbsp/c.shop ការប្រើប្រាស់ដែលត្រូវការផ្អែកលើ MRS compiler ឬ toolchain ដែលវាផ្តល់។
- V3B គាំទ្រការស្រង់ចេញសេចក្តីណែនាំមួយ (32 ប៊ីត) ពីពាក្យពីរ (64 ប៊ីត) និងទាញយកពាក្យ (32 ប៊ីត) ការណែនាំពីលទ្ធផលគុណ (64 ប៊ីត) ។ វិធីសាស្ត្រប្រើប្រាស់ជាក់លាក់អាចយោងទៅលើមុខងារបណ្ណាល័យ និងសហការជាមួយអ្នកចងក្រង MRS ឬ toolchain ដែលផ្តល់ដោយវា។
- V3B/C គាំទ្រការណែនាំអំពីការចម្លងអង្គចងចាំ។ សម្រាប់ការប្រើប្រាស់ជាក់លាក់ សូមយោងទៅលើមុខងារបណ្ណាល័យ ហើយសហការជាមួយអ្នកចងក្រង MRS ឬខ្សែសង្វាក់ឧបករណ៍របស់វា។
ចុះឈ្មោះកំណត់
RV32I មានសំណុំចុះឈ្មោះចំនួន 32 ចាប់ពី x0-x31។ ស៊េរី V3 មិនគាំទ្រផ្នែកបន្ថែម "F" ទេ ពោលគឺមិនមានការកំណត់ការចុះឈ្មោះបណ្តែតទឹកទេ។ នៅក្នុង RV32 ការចុះឈ្មោះនីមួយៗគឺ 32 ប៊ីត។ តារាង 1-2 ខាងក្រោមរាយបញ្ជីឈ្មោះ RV32I និងការពិពណ៌នារបស់ពួកគេ។
តារាង 1-2 ការចុះឈ្មោះ RISC-V
ចុះឈ្មោះ | ឈ្មោះ ABI | ការពិពណ៌នា | អ្នកផ្ទុក |
x0 | សូន្យ | កូដរឹង 0 | – |
x1 | ra | ត្រឡប់អាសយដ្ឋាន | អ្នកហៅទូរសព្ទ |
x2 | sp | ទ្រនិចជង់ | Callee |
x3 | GP | ទ្រនិចសកល | – |
x4 | tp | ទ្រនិចខ្សែស្រឡាយ | – |
x5-7 | t0-2 | ការចុះឈ្មោះបណ្តោះអាសន្ន | អ្នកហៅទូរសព្ទ |
x8 | s0/fp | រក្សាទុកការចុះឈ្មោះ/ទ្រនិចស៊ុម | Callee |
x9 | s1 | រក្សាទុកការចុះឈ្មោះ | Callee |
x10-11 | a0-1 | ប៉ារ៉ាម៉ែត្រមុខងារ / តម្លៃត្រឡប់ | អ្នកហៅទូរសព្ទ |
x12-17 | a2-7 | ប៉ារ៉ាម៉ែត្រមុខងារ | អ្នកហៅទូរសព្ទ |
x18-27 | a2-11 | រក្សាទុកការចុះឈ្មោះ | Callee |
X28-31 | t3-6 | ការចុះឈ្មោះបណ្តោះអាសន្ន | អ្នកហៅទូរសព្ទ |
គុណលក្ខណៈ Callee នៅក្នុងតារាងខាងលើមានន័យថា នីតិវិធីដែលបានហៅមិនរក្សាទុកតម្លៃចុះឈ្មោះទេ ហើយគុណលក្ខណៈ Callee មានន័យថា នីតិវិធីដែលបានហៅរក្សាទុកការចុះឈ្មោះ។
របៀបឯកសិទ្ធិ
- ស្ថាបត្យកម្ម RISC-V ស្ដង់ដាររួមមានរបៀបដែលមានសិទ្ធិបី៖ របៀបម៉ាស៊ីន របៀបអ្នកគ្រប់គ្រង និងរបៀបអ្នកប្រើប្រាស់ ដូចបង្ហាញក្នុងតារាង 1-3 ខាងក្រោម។
- របៀបម៉ាស៊ីនគឺចាំបាច់ ហើយរបៀបផ្សេងទៀតគឺស្រេចចិត្ត។ សម្រាប់ព័ត៌មានលម្អិត អ្នកអាចយោងទៅលើ សៀវភៅណែនាំ RISC-V Instruction Set Volume II: Privileged Architecture” ដែលអាចទាញយកដោយឥតគិតថ្លៃពី RISC-V International webគេហទំព័រ។
តារាង 1-3 របៀបសិទ្ធិស្ថាបត្យកម្ម RISC-V
កូដ | ឈ្មោះ | អក្សរកាត់ |
0b00 | របៀបអ្នកប្រើប្រាស់ | U |
0b01 | គំរូអ្នកគ្រប់គ្រង | S |
0b10 | កក់ទុក | កក់ទុក |
0b11 | របៀបម៉ាស៊ីន | M |
- ឧបករណ៍ដំណើរការមីក្រូស៊េរី QingKe V3 គាំទ្ររបៀបដែលមានសិទ្ធិពីរនេះ។
របៀបម៉ាស៊ីន
- របៀបម៉ាស៊ីនមានសិទ្ធិអំណាចខ្ពស់បំផុត កម្មវិធីនៅក្នុងរបៀបនេះអាចចូលប្រើការគ្រប់គ្រង និងចុះឈ្មោះស្ថានភាព (CSR) ប៉ុន្តែក៏អាចចូលប្រើគ្រប់តំបន់អាសយដ្ឋានជាក់ស្តែងផងដែរ។
- លំនាំដើមនៃការបើកថាមពលគឺស្ថិតនៅក្នុងរបៀបម៉ាស៊ីន នៅពេលដែលការប្រតិបត្តិនៃ mret (ការណែនាំអំពីរបៀបម៉ាស៊ីន) ត្រលប់មកវិញ យោងទៅតាមស្ថានភាពចុះឈ្មោះ CSR (ការចុះឈ្មោះស្ថានភាពម៉ាស៊ីន) នៅក្នុងប៊ីត MPP ប្រសិនបើ MPP = 0b00 បន្ទាប់មកចេញពីរបៀបម៉ាស៊ីន ចូលទៅក្នុងរបៀបអ្នកប្រើប្រាស់ MPP = 0b11 បន្ទាប់មកបន្តរក្សារបៀបម៉ាស៊ីន។
របៀបអ្នកប្រើប្រាស់
- របៀបអ្នកប្រើប្រាស់មានសិទ្ធិទាបបំផុត ហើយមានតែការចុះឈ្មោះ CSR ដែលមានកំណត់ប៉ុណ្ណោះដែលអាចចូលប្រើបានក្នុងរបៀបនេះ។ នៅពេលដែលមានការលើកលែង ឬការរំខានកើតឡើង microprocessor ចេញពីរបៀបអ្នកប្រើប្រាស់ទៅកាន់របៀបម៉ាស៊ីន ដើម្បីដោះស្រាយការលើកលែង និងការរំខាន។
ការចុះឈ្មោះ CSR
ស៊េរីនៃការចុះឈ្មោះ CSR ត្រូវបានកំណត់នៅក្នុងស្ថាបត្យកម្ម RISC-V ដើម្បីគ្រប់គ្រង និងកត់ត្រាស្ថានភាពប្រតិបត្តិការរបស់ microprocessor ។ CSRs ទាំងនេះអាចត្រូវបានពង្រីកដោយការចុះឈ្មោះចំនួន 4096 ដោយប្រើកន្លែងសរសេរកូដអាសយដ្ឋាន 12 ប៊ីតដែលឧទ្ទិសខាងក្នុង។ ហើយប្រើ CSR ពីរខ្ពស់[11:10] ដើម្បីកំណត់ការអនុញ្ញាតអាន/សរសេរនៃការចុះឈ្មោះនេះ 0b00, 0b01, 0b10 សម្រាប់អាន/សរសេរបានអនុញ្ញាត និង 0b11 សម្រាប់តែអានប៉ុណ្ណោះ។ ប្រើពីរប៊ីត CSR[9:8] ដើម្បីកំណត់កម្រិតសិទ្ធិទាបបំផុតដែលអាចចូលប្រើការចុះឈ្មោះនេះ ហើយតម្លៃត្រូវគ្នាទៅនឹងរបៀបសិទ្ធិដែលបានកំណត់ក្នុងតារាង 1-3 ។ ការចុះបញ្ជី CSR ដែលត្រូវបានអនុវត្តនៅក្នុងមីក្រូដំណើរការ QingKe V3 ត្រូវបានរៀបរាប់លម្អិតនៅក្នុងជំពូកទី 8 ។
ករណីលើកលែង
យន្តការលើកលែង ដែលជាយន្តការមួយដើម្បីស្ទាក់ចាប់ និងដោះស្រាយ "ព្រឹត្តិការណ៍ប្រតិបត្តិការមិនធម្មតា"។ QingKe V3 series microprocessors ត្រូវបានបំពាក់ដោយប្រព័ន្ធឆ្លើយតបករណីលើកលែង ដែលអាចដោះស្រាយបានរហូតដល់ 256 ករណីលើកលែង រួមទាំងការរំខានផងដែរ។ នៅពេលដែលមានករណីលើកលែង ឬការរំខានកើតឡើង មីក្រូដំណើរការអាចឆ្លើយតបបានយ៉ាងឆាប់រហ័ស និងដោះស្រាយព្រឹត្តិការណ៍ករណីលើកលែង និងការរំខាន។
ប្រភេទករណីលើកលែង
ឥរិយាបថផ្នែករឹងរបស់ microprocessor គឺដូចគ្នា ថាតើមានការលើកលែង ឬការរំខានកើតឡើង។ microprocessor ផ្អាកកម្មវិធីបច្ចុប្បន្ន ផ្លាស់ទីទៅករណីលើកលែង ឬឧបករណ៍ដោះស្រាយការរំខាន ហើយត្រឡប់ទៅកម្មវិធីដែលបានផ្អាកពីមុន នៅពេលដំណើរការបានបញ្ចប់។ និយាយឱ្យទូលំទូលាយ ការរំខានក៏ជាផ្នែកនៃករណីលើកលែងផងដែរ។ ថាតើការកើតឡើងបច្ចុប្បន្នពិតប្រាកដគឺជាការរំខាន ឬករណីលើកលែងអាចជា viewed តាមរយៈករណីលើកលែងរបៀបម៉ាស៊ីនបណ្តាលឱ្យចុះឈ្មោះមូលហេតុ។ mcause[31] គឺជាវាល interrupt ដែលត្រូវបានប្រើដើម្បីចង្អុលបង្ហាញថាតើមូលហេតុនៃការលើកលែងគឺជាការរំខានឬករណីលើកលែងមួយ។ mcause[31]=1 មានន័យថារំខាន mcause[31]=0 មានន័យថាករណីលើកលែង។ mcause[30:0] គឺជាកូដលើកលែង ដែលត្រូវបានប្រើដើម្បីបង្ហាញពីមូលហេតុជាក់លាក់នៃករណីលើកលែង ឬលេខរំខាន ដូចដែលបានបង្ហាញក្នុងតារាងខាងក្រោម។
តារាង 2-1 លេខកូដលើកលែងមីក្រូដំណើរការ V3
រំខាន | ករណីលើកលែង កូដ | សមកាលកម្ម / អសមកាល | ហេតុផលសម្រាប់ការលើកលែង |
1 | ០១៤៨៦០៧៤-០០៤ | – | កក់ទុក |
1 | 2 | អសមកាលច្បាស់លាស់ | NMI រំខាន |
1 | ០១៤៨៦០៧៤-០០៤ | – | កក់ទុក |
1 | 12 | អសមកាលច្បាស់លាស់ | SysTick រំខាន |
1 | 13 | – | កក់ទុក |
1 | 14 | សមកាលកម្ម | កម្មវិធីរំខាន |
1 | 15 | – | កក់ទុក |
1 | ០១៤៨៦០៧៤-០០៤ | អសមកាលច្បាស់លាស់ | ការរំខានខាងក្រៅ 16-255 |
0 | 0 | សមកាលកម្ម | អាសយដ្ឋានការណែនាំមិនត្រឹមត្រូវ |
0 | 1 | សមកាលកម្ម | កំហុសការចូលប្រើពាក្យបញ្ជា |
0 | 2 | សមកាលកម្ម | ការណែនាំខុសច្បាប់ |
0 | 3 | សមកាលកម្ម | ចំណុចបំបែក |
0 | 4 | សមកាលកម្ម | ផ្ទុកការចូលប្រើការណែនាំមិនត្រឹមត្រូវតាមអាសយដ្ឋាន |
0 | 5 | អសមកាលមិនច្បាស់លាស់ | ផ្ទុកកំហុសក្នុងការចូលប្រើពាក្យបញ្ជា |
0 | 6 | សមកាលកម្ម | Store/AMO ការចូលប្រើការណែនាំមិនត្រឹមត្រូវតាមអាសយដ្ឋាន |
0 | 7 | អសមកាលមិនច្បាស់លាស់ | កំហុសក្នុងការចូលប្រើពាក្យបញ្ជា Store/AMO |
0 | 8 | សមកាលកម្ម | ការហៅបរិស្ថាននៅក្នុងរបៀបអ្នកប្រើប្រាស់ |
0 | 11 | សមកាលកម្ម | ការហៅបរិស្ថាននៅក្នុងរបៀបម៉ាស៊ីន |
- ធ្វើសមកាលកម្ម” នៅក្នុងតារាងមានន័យថាការណែនាំអាចស្ថិតនៅត្រង់កន្លែងដែលវាត្រូវបានប្រតិបត្តិ ដូចជាការសម្រាក ឬការហៅទូរសព្ទ ហើយការប្រតិបត្តិនីមួយៗនៃការណែនាំនោះនឹងបង្កឱ្យមានករណីលើកលែង។ “អសមកាល” មានន័យថាវាមិនអាចបញ្ជាក់ពីការណែនាំបានទេ ហើយតម្លៃកុំព្យូទ័រការណែនាំអាចនឹងខុសគ្នារាល់ពេលដែលមានករណីលើកលែងកើតឡើង។ “អសមកាលច្បាស់លាស់” មានន័យថា ករណីលើកលែងមួយអាចស្ថិតនៅត្រង់ព្រំដែននៃការណែនាំ ពោលគឺ ស្ថានភាពបន្ទាប់ពីការប្រតិបត្តិនៃការណែនាំ ដូចជាការរំខានពីខាងក្រៅ។ “អសមកាលមិនជាក់លាក់” មានន័យថា ព្រំដែននៃការណែនាំមិនអាចកំណត់ទីតាំងជាក់លាក់បានទេ ហើយប្រហែលជាស្ថានភាពបន្ទាប់ពីការណែនាំត្រូវបានរំខានពាក់កណ្តាលតាមរយៈការប្រតិបត្តិ ដូចជាកំហុសក្នុងការចូលប្រើអង្គចងចាំ។
- ការចូលប្រើអង្គចងចាំត្រូវការពេលវេលា ហើយ microprocessor ជាធម្មតាមិនរង់ចាំការបញ្ចប់នៃការចូលប្រើនៅពេលចូលប្រើ memory ប៉ុន្តែនៅតែបន្តប្រតិបត្តិការណែនាំ នៅពេលដែលការលើកលែងកំហុសការចូលដំណើរការកើតឡើងម្តងទៀត microprocessor បានប្រតិបត្តិសេចក្តីណែនាំបន្តបន្ទាប់រួចហើយ ហើយមិនអាចជាក់លាក់បានទេ។ ដែលមានទីតាំងនៅ។
ការបញ្ចូលករណីលើកលែង
នៅពេលដែលកម្មវិធីស្ថិតនៅក្នុងដំណើរការធម្មតា ប្រសិនបើសម្រាប់ហេតុផលមួយចំនួន បង្កឱ្យមានការលើកលែង ឬរំខាន។ ឥរិយាបថផ្នែករឹងរបស់ microprocessor នៅចំណុចនេះអាចត្រូវបានសង្ខេបដូចខាងក្រោម។
- ផ្អាកលំហូរកម្មវិធីបច្ចុប្បន្ន ហើយផ្លាស់ទីទៅការប្រតិបត្តិនៃករណីលើកលែង ឬមុខងារគ្រប់គ្រងការរំខាន។ អាសយដ្ឋានមូលដ្ឋានធាតុចូល និងរបៀបអាសយដ្ឋាននៃមុខងារលើកលែង ឬរំខានត្រូវបានកំណត់ដោយអាសយដ្ឋានមូលដ្ឋានធាតុករណីលើកលែង ចុះឈ្មោះ mtvec ។ mtvec[31:2] កំណត់អាសយដ្ឋានមូលដ្ឋាននៃករណីលើកលែង ឬមុខងាររំខាន។ mtvec[1:0] កំណត់របៀបអាសយដ្ឋាននៃមុខងារដោះស្រាយ។ នៅពេល mtvec[1:0]=0 ការលើកលែង និងការរំខានទាំងអស់ប្រើធាតុរួម ពោលគឺនៅពេលដែលករណីលើកលែង ឬការរំខានកើតឡើង វាប្រែទៅជា mtvec[31:2] កំណត់អាសយដ្ឋានមូលដ្ឋានដើម្បីប្រតិបត្តិ។ នៅពេល mtvec[1:0]=1 ករណីលើកលែង និងការរំខានប្រើរបៀបតារាងវ៉ិចទ័រ ពោលគឺ ការលើកលែង និងការរំខាននីមួយៗត្រូវបានដាក់លេខរៀង ហើយអាសយដ្ឋានត្រូវបានទូទាត់តាមលេខរំខាន*4 ហើយនៅពេលដែលករណីលើកលែង ឬការរំខានកើតឡើង វាត្រូវបានផ្លាស់ប្តូរ ទៅអាសយដ្ឋានមូលដ្ឋានដែលកំណត់ដោយ mtvec[31:2] + លេខរំខាន * 4 ការប្រតិបត្តិ។ តារាងវ៉ិចទ័ររំខានមានការណែនាំដើម្បីលោតទៅមុខងារឧបករណ៍ដោះស្រាយការរំខាន ឬវាអាចជាការណែនាំផ្សេងទៀត។
- ធ្វើបច្ចុប្បន្នភាពការចុះឈ្មោះ CSR
- នៅពេលដែលការលើកលែង ឬការរំខានត្រូវបានបញ្ចូល microprocessor ធ្វើបច្ចុប្បន្នភាពដោយស្វ័យប្រវត្តិនូវការចុះឈ្មោះ CSR ដែលពាក់ព័ន្ធ រួមទាំងការលើកលែងនៃរបៀបម៉ាស៊ីនដែលបណ្តាលឱ្យចុះឈ្មោះ mcause ទ្រនិចករណីលើកលែងរបៀបម៉ាស៊ីន mepc តម្លៃនៃការលើកលែងរបៀបម៉ាស៊ីនចុះឈ្មោះលោហៈ និងស្ថានភាពចុះឈ្មោះស្ថានភាពម៉ាស៊ីន។
ធ្វើឱ្យទាន់សម័យ mcause
ដូចដែលបានរៀបរាប់ពីមុន បន្ទាប់ពីបញ្ចូលករណីលើកលែង ឬរំខាន តម្លៃរបស់វាឆ្លុះបញ្ចាំងពីប្រភេទករណីលើកលែងបច្ចុប្បន្ន ឬលេខរំខាន ហើយកម្មវិធីអាចអានតម្លៃចុះឈ្មោះនេះ ដើម្បីពិនិត្យមើលមូលហេតុនៃការលើកលែង ឬកំណត់ប្រភពនៃការរំខាន ដូចដែលបានរៀបរាប់នៅក្នុងតារាងទី 2 -១.
ធ្វើបច្ចុប្បន្នភាព mepc
- និយមន័យស្តង់ដារនៃអាសយដ្ឋានត្រឡប់របស់ microprocessor បន្ទាប់ពីចាកចេញពីករណីលើកលែង ឬរំខានត្រូវបានរក្សាទុកក្នុង mepc ។
- ដូច្នេះនៅពេលដែលករណីលើកលែង ឬការរំខានកើតឡើង ហាដវែរនឹងធ្វើបច្ចុប្បន្នភាពតម្លៃ mepc ដោយស្វ័យប្រវត្តិទៅតម្លៃកុំព្យូទ័រការណែនាំបច្ចុប្បន្ន នៅពេលដែលករណីលើកលែងត្រូវបានជួបប្រទះ ឬតម្លៃកុំព្យូទ័រការណែនាំដែលបានប្រតិបត្តិមុនមុនការរំខាន។
- បន្ទាប់ពីការលើកលែងឬការរំខានត្រូវបានដំណើរការ microprocessor ប្រើតម្លៃដែលបានរក្សាទុករបស់វាជាអាសយដ្ឋានត្រឡប់ដើម្បីត្រឡប់ទៅទីតាំងនៃការរំខានដើម្បីបន្តប្រតិបត្តិ។
- ទោះយ៉ាងណាក៏ដោយវាគួរអោយកត់សំគាល់។
- MEPC គឺជាការចុះឈ្មោះដែលអាចអានបាន និងអាចសរសេរបាន ហើយកម្មវិធីក៏អាចកែប្រែតម្លៃដើម្បីកែប្រែទីតាំងរបស់ទ្រនិចកុំព្យូទ័រដែលកំពុងដំណើរការបន្ទាប់ពីការត្រឡប់មកវិញ។
- នៅពេលមានការរំខានកើតឡើង ពោលគឺនៅពេលដែលករណីលើកលែងចុះឈ្មោះ mcause[31]=1 តម្លៃនៃផែនទីត្រូវបានធ្វើបច្ចុប្បន្នភាពទៅតម្លៃកុំព្យូទ័រនៃការណែនាំដែលមិនបានប្រតិបត្តិបន្ទាប់នៅពេលមានការរំខាន។
- នៅពេលករណីលើកលែងកើតឡើង តម្លៃនៃផែនទីត្រូវបានធ្វើបច្ចុប្បន្នភាពទៅតម្លៃកុំព្យូទ័រការណែនាំនៃការលើកលែងបច្ចុប្បន្ន នៅពេលដែលករណីលើកលែងបណ្តាលឱ្យចុះឈ្មោះ mcause[31]=0 ។ ដូច្នេះនៅពេលនេះ នៅពេលដែលការលើកលែងត្រឡប់មកវិញ ប្រសិនបើយើងត្រឡប់ដោយផ្ទាល់ដោយប្រើតម្លៃ mepc យើងបន្តប្រតិបត្តិការណែនាំដែលបានបង្កើតករណីលើកលែងពីមុន ហើយនៅពេលនេះ យើងនឹងបន្តបញ្ចូលករណីលើកលែង។ ជាធម្មតា បន្ទាប់ពីយើងដោះស្រាយករណីលើកលែងនោះ យើងអាចកែប្រែតម្លៃ mepc ទៅជាតម្លៃនៃការណែនាំដែលមិនបានប្រតិបត្តិបន្ទាប់ ហើយបន្ទាប់មកត្រឡប់មកវិញ។ សម្រាប់អតីតample ប្រសិនបើយើងបង្កឱ្យមានករណីលើកលែងដោយសារការហៅទូរសព្ទ/បំបែក បន្ទាប់ពីដោះស្រាយករណីលើកលែងនោះ ចាប់តាំងពីការហៅមកវិញ/បំបែក (c.ebreak គឺ 2 បៃ) គឺជាការណែនាំ 4 បៃ យើងគ្រាន់តែត្រូវការកម្មវិធីដើម្បីកែប្រែតម្លៃនៃ mepc ទៅជា mepc +4 (c.ebreak គឺ mepc+2) ហើយបន្ទាប់មកត្រឡប់មកវិញ។
ធ្វើបច្ចុប្បន្នភាព mtval
នៅពេលដែលការលើកលែង និងការរំខានត្រូវបានបញ្ចូល នោះផ្នែករឹងនឹងធ្វើបច្ចុប្បន្នភាពដោយស្វ័យប្រវត្តិនូវតម្លៃនៃ mtval ដែលជាតម្លៃដែលបណ្តាលឱ្យមានការលើកលែង។ តម្លៃគឺជាធម្មតា។
- ប្រសិនបើករណីលើកលែងត្រូវបានបង្កឡើងដោយការចូលប្រើអង្គចងចាំ នោះផ្នែករឹងនឹងរក្សាទុកអាសយដ្ឋាននៃការចូលប្រើអង្គចងចាំនៅពេលនៃការលើកលែងទៅក្នុង mtval ។
- ប្រសិនបើករណីលើកលែងត្រូវបានបង្កឡើងដោយការណែនាំខុសច្បាប់ នោះផ្នែករឹងនឹងរក្សាទុកលេខកូដណែនាំនៃការណែនាំទៅក្នុង mtval ។
- ប្រសិនបើករណីលើកលែងត្រូវបានបង្កឡើងដោយចំណុចបំបែកផ្នែករឹង នោះផ្នែករឹងនឹងរក្សាទុកតម្លៃកុំព្យូទ័រនៅចំណុចបំបែកទៅជា mtval ។
- សម្រាប់ករណីលើកលែងផ្សេងទៀត Hardware កំណត់តម្លៃនៃ mtval ទៅ 0 ដូចជា break ដែលជាការលើកលែងដែលបណ្តាលមកពីការហៅទូរសព្ទ។
- នៅពេលបញ្ចូលការរំខានផ្នែករឹងកំណត់តម្លៃនៃ mtval ទៅ 0 ។
ធ្វើបច្ចុប្បន្នភាព mstatus
នៅពេលបញ្ចូលករណីលើកលែង និងការរំខាន ផ្នែករឹងធ្វើបច្ចុប្បន្នភាពប៊ីតជាក់លាក់នៅក្នុង mstatus ។
- MPIE ត្រូវបានធ្វើបច្ចុប្បន្នភាពទៅតម្លៃ MIE មុនពេលបញ្ចូលករណីលើកលែង ឬការរំខាន ហើយ MPIE ត្រូវបានប្រើដើម្បីស្ដារ MIE បន្ទាប់ពីករណីលើកលែង និងការរំខានត្រូវបានបញ្ចប់។
- MPP ត្រូវបានធ្វើបច្ចុប្បន្នភាពទៅរបៀបដែលមានសិទ្ធិ មុនពេលបញ្ចូលការលើកលែង និងការរំខាន ហើយបន្ទាប់ពីការលើកលែង និងការរំខានត្រូវបានបញ្ចប់ MPP ត្រូវបានប្រើដើម្បីស្ដាររបៀបដែលមានសិទ្ធិពីមុន។
- QingKe V3 microprocessor គាំទ្រការដាក់រំខាននៅក្នុងរបៀបម៉ាស៊ីន ហើយ MIE នឹងមិនត្រូវបានសម្អាតបន្ទាប់ពីបញ្ចូលករណីលើកលែង និងការរំខាន។
អាប់ដេតមុខងារឯកសិទ្ធិរបស់ microprocessor
- នៅពេលដែលការលើកលែង និងការរំខានកើតឡើង របៀបដែលមានសិទ្ធិរបស់ microprocessor ត្រូវបានធ្វើបច្ចុប្បន្នភាពទៅជារបៀបម៉ាស៊ីន។
មុខងារដោះស្រាយករណីលើកលែង
- នៅពេលបញ្ចូលករណីលើកលែង ឬរំខាន microprocessor ប្រតិបត្តិកម្មវិធីពីអាសយដ្ឋាន និងរបៀបកំណត់ដោយ mtvec register ។ នៅពេលប្រើធាតុបង្រួបបង្រួម microprocessor ទទួលយកការណែនាំលោតចេញពីអាសយដ្ឋានមូលដ្ឋានដែលបានកំណត់ដោយ mtvec[31:2] ដោយផ្អែកលើតម្លៃរបស់ mtvec[1] ឬទទួលបានករណីលើកលែង និងរំខានអាសយដ្ឋានធាតុចូលមុខងារ ហើយទៅប្រតិបត្តិជំនួសវិញ។ . នៅពេលនេះ មុខងារដោះស្រាយការលើកលែង និងការរំខានអាចកំណត់ថាតើមូលហេតុគឺជាការលើកលែង ឬការរំខានដោយផ្អែកលើតម្លៃនៃ mcause[31] ហើយប្រភេទ និងមូលហេតុនៃករណីលើកលែង ឬការរំខានដែលត្រូវគ្នាអាចត្រូវបានវិនិច្ឆ័យដោយលេខកូដលើកលែង។ និងដោះស្រាយតាម។
- នៅពេលប្រើអាសយដ្ឋានមូលដ្ឋាន + លេខរំខាន *4 សម្រាប់អុហ្វសិត ហាដវែរលោតដោយស្វ័យប្រវត្តិទៅកាន់តារាងវ៉ិចទ័រ ដើម្បីទទួលបានអាសយដ្ឋានធាតុនៃករណីលើកលែង ឬមុខងាររំខានដោយផ្អែកលើលេខរំខាន ហើយលោតដើម្បីដំណើរការវា។
ការលើកលែងការចាកចេញ
- បន្ទាប់ពីការលើកលែង ឬឧបករណ៍ដោះស្រាយការរំខានត្រូវបានបញ្ចប់ វាចាំបាច់ក្នុងការចាកចេញពីកម្មវិធីសេវាកម្ម។ បន្ទាប់ពីបញ្ចូលការលើកលែង និងការរំខាន មីក្រូដំណើរការចូលទៅក្នុងរបៀបម៉ាស៊ីនពីទម្រង់អ្នកប្រើប្រាស់ ហើយដំណើរការនៃករណីលើកលែង និងការរំខានក៏ត្រូវបានបញ្ចប់នៅក្នុងរបៀបម៉ាស៊ីនផងដែរ។ នៅពេលដែលចាំបាច់ត្រូវចាកចេញពីករណីលើកលែង និងការរំខាន ចាំបាច់ត្រូវប្រើការណែនាំ mret ដើម្បីត្រឡប់។ នៅពេលនេះ ផ្នែករឹងរបស់ microprocessor នឹងធ្វើប្រតិបត្តិការដូចខាងក្រោមដោយស្វ័យប្រវត្តិ។
- ទ្រនិចកុំព្យូទ័រត្រូវបានស្ដារឡើងវិញនូវតម្លៃនៃការចុះឈ្មោះ CSR mepc ពោលគឺការប្រតិបត្តិចាប់ផ្តើមនៅអាសយដ្ឋានការណែនាំដែលបានរក្សាទុកដោយ mepc ។ វាចាំបាច់ក្នុងការយកចិត្តទុកដាក់លើប្រតិបត្តិការអុហ្វសិតរបស់ mepc បន្ទាប់ពីការដោះស្រាយករណីលើកលែងត្រូវបានបញ្ចប់។
- ធ្វើបច្ចុប្បន្នភាពស្ថានភាពចុះឈ្មោះ CSR, MIE ត្រូវបានស្ដារទៅ MPIE ហើយ MPP ត្រូវបានប្រើដើម្បីស្ដាររបៀបដែលមានសិទ្ធិរបស់ microprocessor ពីមុន។
- ដំណើរការឆ្លើយតបករណីលើកលែងទាំងមូលអាចត្រូវបានពិពណ៌នាដោយរូបភាព 2-1 ខាងក្រោម។
PFIC និងការគ្រប់គ្រងការរំខាន
- QingKe V3 microprocessor ត្រូវបានរចនាឡើងជាមួយនឹង Programmable Fast Interrupt Controller (PFIC) ដែលអាចគ្រប់គ្រងការរំខានរហូតដល់ 256 រួមទាំងករណីលើកលែង។
- 16 ដំបូងនៃពួកគេត្រូវបានជួសជុលជាការរំខានខាងក្នុងនៃ microprocessor ហើយនៅសល់គឺជាការរំខានពីខាងក្រៅ ពោលគឺចំនួនអតិបរមានៃការរំខានខាងក្រៅអាចត្រូវបានពង្រីកដល់ 240។ លក្ខណៈសំខាន់ៗរបស់វាមានដូចខាងក្រោម។
- 240 ការរំខានខាងក្រៅ សំណើររំខាននីមួយៗមានគន្លឹះឯករាជ្យ និងប៊ីតគ្រប់គ្រងរបាំង ជាមួយនឹងប៊ីតស្ថានភាពជាក់លាក់
- អាទិភាពរំខានដែលអាចសរសេរកម្មវិធីបានគាំទ្រ 2 កម្រិតនៃការដាក់
- ការរំខានយ៉ាងរហ័សពិសេសក្នុង/ក្រៅយន្តការ ការជង់ដោយស្វ័យប្រវត្តិផ្នែករឹង និងការស្តារឡើងវិញ ជម្រៅអតិបរមា HPE នៃ 2 កម្រិត
- Vector Table Free (VTF) យន្តការឆ្លើយតបរំខាន ការចូលប្រើដោយផ្ទាល់តាមកម្មវិធី 2-channel ដើម្បីរំខានអាសយដ្ឋានវ៉ិចទ័រ
- ចំណាំ៖ ជម្រៅសំបុកអតិបរមា និងជម្រៅ HPE ដែលគាំទ្រដោយឧបករណ៍បញ្ជារំខានមានភាពខុសប្លែកគ្នាសម្រាប់ម៉ូដែល microprocessor ផ្សេងៗគ្នា ដែលអាចរកបានក្នុងតារាង 1-1 ។
- តារាងវ៉ិចទ័រនៃការរំខាន និងករណីលើកលែងត្រូវបានបង្ហាញក្នុងតារាង 3-1 ខាងក្រោម។
តារាង 3-1 ករណីលើកលែង និងតារាងវ៉ិចទ័ររំខាន
លេខ | អាទិភាព | ប្រភេទ | ឈ្មោះ | ការពិពណ៌នា |
0 | – | – | – | – |
1 | – | – | – | – |
2 | -5 | ជួសជុល | NMI | ការរំខានដែលមិនអាចបិទបាំងបាន។ |
3 | -4 | ជួសជុល | EXC | ករណីលើកលែងរំខាន |
4 | – | – | – | – |
5 | -3 | ជួសជុល | ECALL-M | រំខានការហៅត្រឡប់របស់មុខងារម៉ាស៊ីន |
០១៤៨៦០៧៤-០០៤ | – | – | – | – |
8 | -2 | ជួសជុល | ECALL-U | រំខានការហៅត្រឡប់មកវិញនៃទម្រង់អ្នកប្រើប្រាស់ |
9 | -1 | ជួសជុល | ចំណុច BREAK | ចំណុចបំបែកការហៅត្រឡប់មកវិញរំខាន |
០១៤៨៦០៧៤-០០៤ | – | – | – | – |
12 | 0 | អាចសរសេរកម្មវិធីបាន។ | ស៊ីស្ទីក | កម្មវិធីកំណត់ម៉ោងប្រព័ន្ធរំខាន |
13 | – | – | – | – |
14 | 1 | អាចសរសេរកម្មវិធីបាន។ | SWI | កម្មវិធីរំខាន |
15 | – | – | – | – |
០១៤៨៦០៧៤-០០៤ | ០១៤៨៦០៧៤-០០៤ | អាចសរសេរកម្មវិធីបាន។ | ការរំខានខាងក្រៅ | ការរំខានខាងក្រៅ 16-255 |
ចំណាំ៖ ECALL-M, ECALL-U, និង BREAKPOINT គឺជាប្រភេទផ្សេងគ្នានៃករណីលើកលែង EXC ដែលឯករាជ្យនៅក្នុង V3B/C សម្រាប់ភាពងាយស្រួលនៃការប្រើប្រាស់ ហើយអាសយដ្ឋានបញ្ចូលទាំង 3 ខាងលើត្រូវបានចែករំលែកជាមួយ EXC នៅក្នុង V3A ។
សំណុំចុះឈ្មោះ PFIC
តារាង 3-2 ការចុះឈ្មោះ PFIC
ឈ្មោះ | ចូលប្រើអាសយដ្ឋាន | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
PFIC_ISRx | 0xE000E000
-0xE000E01C |
RO | រំខានការបើកស្ថានភាពចុះឈ្មោះ x | 0x00000000 |
PFIC_IPRx | 0xE000E020
-0xE000E03C |
RO | រំខានការចុះឈ្មោះស្ថានភាពដែលមិនទាន់សម្រេច x | 0x00000000 |
PFIC_ITHRESDR | 0xE000E040 | RW | រំខានការចុះឈ្មោះកំណត់រចនាសម្ព័ន្ធកម្រិតអាទិភាព | 0x00000000 |
PFIC_VTFBADDRR | 0xE000E044 | RW | ការចុះឈ្មោះអាសយដ្ឋានមូលដ្ឋាន VTF
ចំណាំ៖ មានសុពលភាពសម្រាប់តែ V3A ប៉ុណ្ណោះ។ |
0x00000000 |
PFIC_CFGR | 0xE000E048 | RW | រំខានការចុះឈ្មោះការកំណត់រចនាសម្ព័ន្ធ
ចំណាំ៖ មានសុពលភាពសម្រាប់តែ V3A ប៉ុណ្ណោះ។ |
0x00000000 |
PFIC_GISR | 0xE000E04C | RO | រំខានការចុះឈ្មោះស្ថានភាពសកល | 0x00000002 |
PFIC_VTFIDR |
0xE000E050 |
RW |
VTF រំខានការចុះឈ្មោះកំណត់រចនាសម្ព័ន្ធលេខសម្គាល់
ចំណាំ៖ មានសុពលភាពសម្រាប់តែ V3B/C ប៉ុណ្ណោះ។ |
0x00000000 |
PFIC_VTFADDRRx | 0xE000E060
-0xE000E06C |
RW | ចុះឈ្មោះអាសយដ្ឋាន VTF x អុហ្វសិត | 0xXXXXXXXXX |
PFIC_IENRx | 0xE000E100
-0xE000E11C |
WO | រំខានការបើកការកំណត់ចុះឈ្មោះ x | 0x00000000 |
PFIC_IRERx | 0xE000E180
-0xE000E19C |
WO | រំខានបើកការចុះឈ្មោះច្បាស់លាស់ x | 0x00000000 |
PFIC_IPSRx | 0xE000E200
-0xE000E21C |
WO | រំខានការកំណត់ដែលមិនទាន់សម្រេចចុះឈ្មោះ x | 0x00000000 |
PFIC_IPRRx | 0xE000E280
-0xE000E29C |
WO | ផ្អាកការចុះឈ្មោះច្បាស់លាស់ x | 0x00000000 |
PFIC_IATRx | 0xE000E300
-0xE000E31C |
RO | រំខានស្ថានភាពធ្វើឱ្យសកម្មចុះឈ្មោះ x | 0x00000000 |
PFIC_IPRIORx | 0xE000E400
-0xE000E43C |
RW | រំខានការចុះឈ្មោះការកំណត់រចនាសម្ព័ន្ធអាទិភាព | 0x00000000 |
PFIC_SCTLR | 0xE000ED10 | RW | ការចុះឈ្មោះគ្រប់គ្រងប្រព័ន្ធ | 0x00000000 |
ចំណាំ៖
- NMI, EXC, ECALL-M, ECALL-U, និង BREAKPOINT តែងតែត្រូវបានបើកតាមលំនាំដើម។
- ECALL-M, ECALL-U និង BREAKPOINT គឺជាករណីរបស់ EXC ។
- NMI, EXC, ECALL-M, ECALL-U និង BREAKPOINT គាំទ្រការរំខានដែលកំពុងរង់ចាំការច្បាស់លាស់ និងការកំណត់ប្រតិបត្តិការ ប៉ុន្តែមិនរំខាន បើកដំណើរការច្បាស់លាស់ និងការកំណត់។
ការចុះឈ្មោះនីមួយៗត្រូវបានពិពណ៌នាដូចខាងក្រោមៈ
រំខានការបើកស្ថានភាព និងរំខានការចុះឈ្មោះស្ថានភាពដែលមិនទាន់សម្រេច (PFIC_ISR<0-7>/PFIC_IPR<0-7>)
ឈ្មោះ | ចូលប្រើអាសយដ្ឋាន | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
PFIC_ISR0 | 0xE000E000 | RO | រំខាន 0-31 បើកការចុះឈ្មោះស្ថានភាព សរុបចំនួន 32 ប៊ីតស្ថានភាព [n] ដែលបង្ហាញថា #n រំខានបើកស្ថានភាព
ចំណាំ៖ NMI និង EXC ត្រូវបានបើក តាមលំនាំដើម |
សម្រាប់ V3A: 0x0000000C
សម្រាប់ V3B/C៖ 0x0000032C |
PFIC_ISR1 | 0xE000E004 | RO | រំខានការចុះឈ្មោះស្ថានភាព 32-63 សរុបចំនួន 32 ប៊ីតស្ថានភាព | 0x00000000 |
… | … | … | … | … |
PFIC_ISR7 | 0xE000E01C | RO | រំខាន 224-255 បើកការចុះឈ្មោះស្ថានភាព សរុប 32 ប៊ីតស្ថានភាព | 0x00000000 |
PFIC_IPR0 | 0xE000E020 | RO | រំខានស្ថានភាព 0-31 ដែលមិនទាន់សម្រេច | 0x00000000 |
ចុះឈ្មោះ សរុបចំនួន 32 ប៊ីតស្ថានភាព [n] ដែលបង្ហាញពីស្ថានភាពរង់ចាំនៃការរំខាន #n | ||||
PFIC_IPR1 | 0xE000E024 | RO | រំខានការចុះឈ្មោះស្ថានភាពដែលមិនទាន់សម្រេច 32-63 សរុប 32 ប៊ីត | 0x00000000 |
… | … | … | … | … |
PFIC_IPR7 | 0xE000E03C | RO | រំខានការចុះឈ្មោះស្ថានភាពដែលកំពុងរង់ចាំ 244-255, ស្ថានភាពសរុប 32 ប៊ីត | 0x00000000 |
សំណុំនៃការចុះឈ្មោះពីរត្រូវបានប្រើដើម្បីបើក និងបិទការរំខានដែលត្រូវគ្នា។
រំខានការបើកការកំណត់ និងសម្អាតការចុះឈ្មោះ (PFIC_IENR<0-7>/PFIC_IRER<0-7>)3
ឈ្មោះ | ចូលប្រើអាសយដ្ឋាន | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
PFIC_IENR0 | 0xE000E100 | WO | រំខាន 0-31 បើកដំណើរការការចុះឈ្មោះ សរុបចំនួន 32 setting bits [n] សម្រាប់រំខាន #n enable setting
ចំណាំ៖ NMI និង EXC គឺ បានបើកដំណើរការ តាមលំនាំដើម |
0x00000000 |
PFIC_IENR1 | 0xE000E104 | WO | រំខាន 32-63 ដើម្បីបើកការចុះឈ្មោះការកំណត់ សរុបចំនួន 32 ប៊ីតការកំណត់ | 0x00000000 |
… | … | … | … | … |
PFIC_IENR7 | 0xE000E11C | WO | រំខាន 224-255 បើកការកំណត់
ចុះឈ្មោះ, សរុប 32 ប៊ីតការកំណត់ |
0x00000000 |
– | – | – | – | – |
PFIC_IRER0 | 0xE000E180 | WO | រំខាន 0-31 បើកការចុះឈ្មោះច្បាស់លាស់ សរុបចំនួន 32 clear bits [n] សម្រាប់ការរំខាន #n បើក clear ចំណាំ៖ NMI និង EXC មិនអាចទេ។ បានដំណើរការ |
0x00000000 |
PFIC_IRER1 | 0xE000E184 | WO | រំខាន 32-63 បើកការចុះឈ្មោះច្បាស់លាស់ សរុប 32 ប៊ីតច្បាស់លាស់ | 0x00000000 |
… | … | … | … | … |
PFIC_IRER7 | 0xE000E19C | WO | រំខាន 244-255 បើកការចុះឈ្មោះច្បាស់លាស់ សរុប 32 ប៊ីតច្បាស់លាស់ | 0x00000000 |
សំណុំនៃការចុះឈ្មោះពីរត្រូវបានប្រើដើម្បីបើក និងបិទការរំខានដែលត្រូវគ្នា។
រំខានការកំណត់ដែលមិនទាន់សម្រេច និងលុបការចុះឈ្មោះ (PFIC_IPSR<0-7>/PFIC_IPRR<0-7>)
ឈ្មោះ | ចូលប្រើអាសយដ្ឋាន | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
PFIC_IPSR0 |
0xE000E200 |
WO |
រំខាន 0-31 ការចុះឈ្មោះការកំណត់ដែលមិនទាន់សម្រេច, 32
setting bits [n] សម្រាប់ការរំខាន #n ការកំណត់ដែលកំពុងរង់ចាំ |
0x00000000 |
PFIC_IPSR1 | 0xE000E204 | WO | រំខាន 32-63 ការចុះឈ្មោះរៀបចំការរង់ចាំ,
សរុប 32 ប៊ីតដំឡើង |
0x00000000 |
… | … | … | … | … |
PFIC_IPSR7 | 0xE000E21C | WO | រំខាន 224-255 ការកំណត់ដែលមិនទាន់សម្រេច
ចុះឈ្មោះ, 32 កំណត់ប៊ីតសរុប |
0x00000000 |
– | – | – | – | – |
PFIC_IPRR0 |
0xE000E280 |
WO |
រំខាន 0-31 រង់ចាំការចុះឈ្មោះច្បាស់លាស់ សរុបចំនួន 32 clear bits [n] សម្រាប់ការរំខាន #n
កំពុងរង់ចាំច្បាស់លាស់ |
0x00000000 |
PFIC_IPRR1 | 0xE000E284 | WO | រំខាន 32-63 រង់ចាំការចុះឈ្មោះច្បាស់លាស់,
សរុប 32 ប៊ីតច្បាស់លាស់ |
0x00000000 |
… | … | … | … | … |
PFIC_IPRR7 | 0xE000E29C | WO | រំខាន 244-255 រង់ចាំការចុះឈ្មោះច្បាស់លាស់,
សរុប 32 ប៊ីតច្បាស់លាស់ |
0x00000000 |
នៅពេលដែល microprocessor បើកការរំខាន វាអាចត្រូវបានកំណត់ដោយផ្ទាល់តាមរយៈការផ្អាកការចុះឈ្មោះដើម្បីបង្កការរំខាន។ ប្រើការចុះឈ្មោះច្បាស់លាស់ដែលរង់ចាំការរំខាន ដើម្បីសម្អាតគន្លឹះដែលមិនទាន់សម្រេច។
ការចុះឈ្មោះស្ថានភាពធ្វើឱ្យសកម្មរំខាន (PFIC_IACTR<0-7>)
ឈ្មោះ | ចូលប្រើអាសយដ្ឋាន | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
PFIC_IATR0 | 0xE000E300 | RO | Interrupt 0-31 ធ្វើឱ្យការចុះឈ្មោះស្ថានភាពសកម្មជាមួយនឹង 32 status bits [n] ដែលបង្ហាញថាការរំខាន #n កំពុងត្រូវបានប្រតិបត្តិ | 0x00000000 |
PFIC_IATR1 | 0xE000E304 | RO | រំខានការចុះឈ្មោះស្ថានភាពសកម្ម 32-63, ស្ថានភាព 32 ប៊ីតចូល
សរុប |
0x00000000 |
… | … | … | … | … |
PFIC_IATR7 | 0xE000E31C | RO | រំខានការចុះឈ្មោះស្ថានភាពសកម្ម 224-255 សរុប 32 ប៊ីតស្ថានភាព | 0x00000000 |
ការរំខាននីមួយៗមានប៊ីតស្ថានភាពសកម្ម ដែលត្រូវបានបង្កើតឡើងនៅពេលដែលការរំខានត្រូវបានបញ្ចូល និងសម្អាតដោយផ្នែករឹង នៅពេលដែលទីផ្សារត្រឡប់មកវិញ។
រំខានការចុះឈ្មោះកម្រិតអាទិភាព និងអាទិភាព (PFIC_IPRIOR<0-7>/PFIC_ITHRESDR)
ឈ្មោះ | ចូលប្រើអាសយដ្ឋាន | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
PFIC_IPRIOR0 | 0xE000E400 | RW | រំខានការកំណត់រចនាសម្ព័ន្ធអាទិភាព 0 ។ V3A: [7:4]៖ ប៊ីតវត្ថុបញ្ជាអាទិភាព ប្រសិនបើការកំណត់រចនាសម្ព័ន្ធមិនត្រូវបានលាក់ទេ គ្មានការកក់ទុកជាមុនទេ ប្រសិនបើការដាក់សំបុកត្រូវបានកំណត់ នោះប៊ីត 7 គឺជាប៊ីតដែលបានទុកជាមុន។ [3:0]៖ កក់ទុក ជួសជុលទៅ ០ V3B: [7:6]: ប៊ីតវត្ថុបញ្ជាអាទិភាព ប្រសិនបើការកំណត់រចនាសម្ព័ន្ធមិនត្រូវបានដាក់ជាប់គ្នា គ្មានការទុកមុនដែលបានកំណត់រចនាសម្ព័ន្ធដែលបានដាក់នៅជាប់ទេ ប៊ីតទាំងអស់ត្រូវបានទុកជាមុន ប៉ុន្តែការរំខានរហូតដល់ពីរកម្រិតត្រូវបានអនុញ្ញាតឱ្យកើតឡើង [5:0]៖ បម្រុងទុក ជួសជុលទៅ 0 V3C៖ [7:5]៖ ប៊ីតគ្រប់គ្រងអាទិភាព ប្រសិនបើការកំណត់រចនាសម្ព័ន្ធមិនត្រូវបានដាក់នៅក្នុងការដាក់នោះទេ គ្មានប៊ីតដែលទុកជាមុនទេ។ ប្រសិនបើបានកំណត់រចនាសម្ព័ន្ធជាប់គ្នា ប៊ីតទាំងអស់ត្រូវបានគិតទុកជាមុន ប៉ុន្តែការរំខានរហូតដល់ពីរកម្រិតត្រូវបានអនុញ្ញាតឱ្យកើតឡើង [4:0]៖ បម្រុងទុក ជួសជុលទៅ 0 ចំណាំ៖ តម្លៃអាទិភាពតូចជាង អាទិភាពកាន់តែខ្ពស់។ ប្រសិនបើការផ្អាកអាទិភាពមុនដូចគ្នានឹងផ្អាកនៅពេលតែមួយ ការរំខានដែលមានអាទិភាពខ្ពស់នឹងត្រូវបានប្រតិបត្តិជាមុន។ |
0x00 |
PFIC_IPRIOR1 | 0xE000E401 | RW | រំខានការកំណត់អាទិភាព 1 មុខងារដូចគ្នានឹង PFIC_IPRIOR0 | 0x00 |
PFIC_IPRIOR2 | 0xE000E402 | RW | រំខានការកំណត់អាទិភាព 2 មុខងារដូចគ្នានឹង PFIC_IPRIOR0 | |
… | … | … | … | … |
PFIC_IPRIOR254 | 0xE000E4FE | RW | រំខានការកំណត់អាទិភាព 254 មុខងារដូចគ្នានឹង PFIC_IPRIOR0 | 0x00 |
PFIC_IPRIOR255 | 0xE000E4FF | RW | រំខានការកំណត់អាទិភាព 255 មុខងារដូចគ្នានឹង PFIC_IPRIOR0 | 0x00 |
– | – | – | – | – |
PFIC_ITHRESDR | 0xE000E040 | RW | រំខានការកំណត់កម្រិតអាទិភាព
V3A៖ [31:8]: កក់ទុក ជួសជុលទៅ 0 [7:4]៖ កម្រិតអាទិភាព [3:0]៖ បម្រុងទុក ជួសជុលទៅ 0V3B៖ [31:8]: កក់ទុក ជួសជុលទៅ 0 [7:5]៖ កម្រិតអាទិភាព [4:0]៖ បម្រុងទុក ជួសជុលទៅ 0V3C៖ [31:8]: កក់ទុក ជួសជុលទៅ 0 [7:5]៖ កម្រិតអាទិភាព [4:0]៖ បម្រុងទុក ជួសជុលទៅ 0ចំណាំ៖ ចំពោះការរំខានជាមួយនឹងតម្លៃអាទិភាព ≥ កម្រិត មុខងារសេវារំខានមិនត្រូវបានប្រតិបត្តិនៅពេលដែលការព្យួរកើតឡើង ហើយនៅពេលដែលការចុះឈ្មោះនេះគឺ 0 វាមានន័យថាការចុះឈ្មោះកម្រិតចាប់ផ្ដើមមិនត្រឹមត្រូវទេ។ |
0x00 |
ការចុះឈ្មោះការកំណត់រចនាសម្ព័ន្ធរំខាន (PFIC_CFGR)
ឈ្មោះ | ចូលប្រើអាសយដ្ឋាន | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
PFIC_CFGR | 0xE000E048 | RW | រំខានការចុះឈ្មោះការកំណត់រចនាសម្ព័ន្ធ | 0x00000000 |
ការចុះឈ្មោះនេះមានសុពលភាពសម្រាប់តែ V3A ប៉ុណ្ណោះ ប៊ីតរបស់វាត្រូវបានកំណត់ជា៖
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:16] | លេខកូដ | WO | ទាក់ទងទៅនឹងប៊ីតវត្ថុបញ្ជាគោលដៅផ្សេងៗគ្នា ទិន្នន័យកំណត់អត្តសញ្ញាណការចូលប្រើសុវត្ថិភាពដែលត្រូវគ្នាត្រូវសរសេរក្នុងពេលដំណាលគ្នាដើម្បីកែប្រែ ហើយទិន្នន័យដែលបានអានត្រូវបានជួសជុលទៅ 0. KEY1 = 0xFA05; KEY2 = 0xBCAF; KEY3 = 0xBEEF ។ | 0 |
[15:8] | កក់ទុក | RO | កក់ទុក | 0 |
7 | SYSRESET | WO | កំណត់ប្រព័ន្ធឡើងវិញ (ការសរសេរដំណាលគ្នាទៅ KEY3) ។ ជម្រះដោយស្វ័យប្រវត្តិ 0.
ការសរសេរលេខ 1 គឺត្រឹមត្រូវ ការសរសេរលេខ 0 គឺមិនត្រឹមត្រូវទេ។ ចំណាំ៖ មុខងារដូចគ្នានឹង PFIC_SCTLR ចុះឈ្មោះ SYSRESET ប៊ីត។ |
0 |
6 | PFICRESET | WO | កំណត់ម៉ូឌុល PFIC ឡើងវិញ។ ជម្រះដោយស្វ័យប្រវត្តិ 0.
ការសរសេរលេខ 1 គឺត្រឹមត្រូវ ការសរសេរលេខ 0 គឺមិនត្រឹមត្រូវទេ។ |
0 |
5 | អ៊ិចប្រេស | WO | ករណីលើកលែងរំខានដែលមិនទាន់សម្រេចច្បាស់លាស់ (ការសរសេរដំណាលគ្នាទៅ KEY2)
ការសរសេរលេខ 1 គឺត្រឹមត្រូវ ការសរសេរលេខ 0 គឺមិនត្រឹមត្រូវទេ។ |
0 |
4 | EXCSET | WO | ករណីលើកលែងរំខានការកំណត់ការរង់ចាំ (ការសរសេរក្នុងពេលដំណាលគ្នាទៅ KEY2)
ការសរសេរលេខ 1 គឺត្រឹមត្រូវ ការសរសេរលេខ 0 គឺមិនត្រឹមត្រូវទេ។ |
0 |
3 | NMIRESET | WO | NMI រំខានការរង់ចាំច្បាស់លាស់ (ការសរសេរដំណាលគ្នាទៅ KEY2)
ការសរសេរលេខ 1 គឺត្រឹមត្រូវ ការសរសេរលេខ 0 គឺមិនត្រឹមត្រូវទេ។ |
0 |
2 | NMISET | WO | NMI រំខានការកំណត់ដែលកំពុងរង់ចាំ (ការសរសេរដំណាលគ្នាទៅកាន់ KEY2)
ការសរសេរលេខ 1 គឺត្រឹមត្រូវ ការសរសេរលេខ 0 គឺមិនត្រឹមត្រូវទេ។ |
0 |
1 | NESTCTRL | RW | ការរំខានការធ្វើសំបុកបើកការគ្រប់គ្រង។
1: បិទ; 0: បើក (ការសរសេរសមកាលកម្មទៅ KEY1) |
0 |
0 | HWSTKCTRL | RW | HPE បើកការគ្រប់គ្រង
1: បិទ; 0: បើក (ការសរសេរសមកាលកម្មទៅ KEY1) |
0 |
រំខានការចុះឈ្មោះស្ថានភាពសកល (PFIC_GISR)
ឈ្មោះ | ចូលប្រើអាសយដ្ឋាន | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
PFIC_GISR | 0xE000E04C | RO | រំខានការចុះឈ្មោះស្ថានភាពសកល | 0x00000000 |
ប្រជាជនរបស់វាត្រូវបានកំណត់ថាជា
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:14] | កក់ទុក | RO | កក់ទុក | 0 |
13 |
ចាក់សោស្តា |
RO |
ថាតើប្រព័ន្ធដំណើរការបច្ចុប្បន្នស្ថិតនៅក្នុងស្ថានភាពចាក់សោ៖
1: ស្ថានភាពចាក់សោ; 0: ស្ថានភាពមិនចាក់សោ។ ចំណាំ៖ ប៊ីតនេះមានសុពលភាពសម្រាប់តែ V3B/C ប៉ុណ្ណោះ។ |
0 |
12 |
DBGMODE |
RO |
ថាតើប្រព័ន្ធដំណើរការបច្ចុប្បន្នស្ថិតនៅក្នុងស្ថានភាពបំបាត់កំហុសដែរឬទេ៖ 1: ស្ថានភាពបំបាត់កំហុស។
0៖ ស្ថានភាពមិនមានបញ្ហា។ ចំណាំ៖ ប៊ីតនេះមានសុពលភាពសម្រាប់តែ V3B/C ប៉ុណ្ណោះ។ |
0 |
11 |
សកល |
RO |
បើកការរំខានជាសកល៖
1: បើកការរំខាន; 0៖ បិទការរំខាន។ ចំណាំ៖ ប៊ីតនេះមានសុពលភាពសម្រាប់តែ V3B/C ប៉ុណ្ណោះ។ |
|
10 | កក់ទុក | RO | កក់ទុក | 0 |
9 | GPENDSTA | RO | ថាតើការរំខានកំពុងរង់ចាំនៅពេលនេះឬអត់។
1: បាទ; 0: ទេ។ |
0 |
8 | GACTSTA | RO | ថាតើការរំខានកំពុងត្រូវបានប្រតិបត្តិដែរឬទេ។
1: បាទ; 0: ទេ។ |
0 |
[7:0] |
NESTSTA |
RO |
ស្ថានភាពសំបុករំខានបច្ចុប្បន្ន។ 0x03: នៅកម្រិត 2 រំខាន។
0x01: ក្នុងកម្រិត 1 រំខាន។ 0x00: គ្មានការរំខានកើតឡើងទេ។ ផ្សេងទៀត៖ ស្ថានភាពមិនអាចទៅរួច។ |
0 |
អាសយដ្ឋានមូលដ្ឋានលេខសម្គាល់ VTF និងការចុះឈ្មោះអាសយដ្ឋានអុហ្វសិត (PFIC_VTFBADDRR/PFIC_VTFADDRR<0-3>)
ឈ្មោះ | ចូលប្រើអាសយដ្ឋាន | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
PFIC_VTFBADDRR |
0xE000E044 |
RW |
[31:28]: ខ្ពស់ 4 ប៊ីតនៃអាសយដ្ឋានគោលដៅរបស់ VTF [27:0]៖ បម្រុងទុក
ការចុះឈ្មោះនេះមានសុពលភាពសម្រាប់តែ V3A ប៉ុណ្ណោះ។ |
0x00000000 |
PFIC_VTFIDR |
0xE000E050 |
RW |
[31:24]: Number of VTF 3 [23:16]: Number of VTF 2 [15:8]: Number of VTF 1 [7:0]: Number of VTF 0
ការចុះឈ្មោះនេះមានសុពលភាពសម្រាប់តែ V3B/C ប៉ុណ្ណោះ។ |
0x00000000 |
– | – | – | – | – |
PFIC_VTFADDRR0 |
0xE000E060 | RW | V3A: [31:24]: VTF 0 លេខរំខាន [23:0]៖ 24 bits ទាបនៃអាសយដ្ឋានគោលដៅ VTF ដែលក្នុងនោះ 20 bits ទាបត្រូវបានកំណត់រចនាសម្ព័ន្ធឱ្យត្រឹមត្រូវ ហើយ [23:20] ត្រូវបានជួសជុលទៅ 0 .
V3B/C៖ [31:1]: អាសយដ្ឋាន VTF 0 តម្រឹម 2 បៃ [0]៖1: បើកឆានែល VTF 0 ០៖ បិទ |
សម្រាប់ V3A៖ 0x00000000 សម្រាប់ V3B/C៖ 0xXXXXXXXXX |
PFIC_VTFADDRR1 |
0xE000E064 |
RW |
V3A: [31:24]: VTF 1 interrupt number [23:0]៖ 24 bits ទាបនៃអាសយដ្ឋានគោលដៅ VTF ដែលក្នុងនោះ 20 bits ទាបត្រូវបានកំណត់រចនាសម្ព័ន្ធឱ្យត្រឹមត្រូវ ហើយ [23:20] ត្រូវបានជួសជុលទៅ 0។
V3B/C៖ [31:1]: អាសយដ្ឋាន VTF 1 តម្រឹម 2 បៃ [0]៖1: បើកឆានែល VTF 1 ០៖ បិទ |
សម្រាប់ V3A៖ 0x00000000 សម្រាប់ V3B/C៖ 0xXXXXXXXXX |
PFIC_VTFADDRR2 |
0xE000E068 |
RW |
V3A: [31:24]: VTF 2 លេខរំខាន [23:0]៖ 24 bits ទាបនៃអាសយដ្ឋានគោលដៅ VTF ដែលក្នុងនោះ 20 bits ទាបត្រូវបានកំណត់រចនាសម្ព័ន្ធឱ្យត្រឹមត្រូវ ហើយ [23:20] ត្រូវបានជួសជុលទៅ 0 .
V3B/C៖ [31:1]: អាសយដ្ឋាន VTF 2 តម្រឹម 2 បៃ [0]៖1: បើកឆានែល VTF 2 ០៖ បិទ |
សម្រាប់ V3A៖ 0x00000000 សម្រាប់ V3B/C៖ 0xXXXXXXXXX |
PFIC_VTFADDRR3 | 0xE000E06C | RW | V3A៖ | សម្រាប់ V3A៖ |
[31:24]: VTF 3 interrupt number [23:0]៖ 24 bits ទាបនៃ VTF target address ដែលក្នុងនោះ 20 bits ទាបត្រូវបានកំណត់អោយមានសុពលភាព ហើយ [23:20] ត្រូវបានជួសជុលទៅ 0។
V3B/C៖ [31:1]: អាសយដ្ឋាន VTF 3 តម្រឹម 2 បៃ [0]៖1: បើកឆានែល VTF 3 ០៖ បិទ |
0x00000000
សម្រាប់ V3B/C៖ 0xXXXXXXXXX |
ការចុះឈ្មោះគ្រប់គ្រងប្រព័ន្ធ (PFIC_SCTLR)
ឈ្មោះ | ចូលប្រើអាសយដ្ឋាន | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
PFIC_SCTLR | 0xE000ED10 | RW | ការចុះឈ្មោះគ្រប់គ្រងប្រព័ន្ធ | 0x00000000 |
ពួកគេម្នាក់ៗត្រូវបានកំណត់ដូចខាងក្រោម។
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
31 | SYSRESET | WO | កំណត់ប្រព័ន្ធឡើងវិញ សម្អាតដោយស្វ័យប្រវត្តិ 0។ សរសេរ 1 មានសុពលភាព ហើយការសរសេរ 0 មិនត្រឹមត្រូវ។
ចំណាំ៖ ប៊ីតនេះមានសុពលភាពសម្រាប់តែ V3B/C ប៉ុណ្ណោះ។ |
0 |
[30:6] | កក់ទុក | RO | កក់ទុក | 0 |
5 | SETEVENT | WO | កំណត់ព្រឹត្តិការណ៍ដើម្បីដាស់ករណី WFE ។ | 0 |
4 |
SEVONPEND | RW | នៅពេលដែលព្រឹត្តិការណ៍កើតឡើង ឬរំខានដល់ស្ថានភាពដែលមិនទាន់សម្រេច ប្រព័ន្ធអាចត្រូវបានដាស់បន្ទាប់ពីការណែនាំ WFE ឬប្រសិនបើការណែនាំ WFE មិនត្រូវបានប្រតិបត្តិ ប្រព័ន្ធនឹងត្រូវបានដាស់ភ្លាមៗបន្ទាប់ពីការប្រតិបត្តិបន្ទាប់នៃការណែនាំ។
1៖ ព្រឹត្តិការណ៍ដែលបានបើក និងការរំខានទាំងអស់ (រួមទាំងការរំខានដែលមិនបានបើក) អាចដាស់ប្រព័ន្ធ។ 0៖ មានតែព្រឹត្តិការណ៍ដែលបានបើក និងបើកដំណើរការប៉ុណ្ណោះ។ ការរំខានអាចដាស់ប្រព័ន្ធ។ |
0 |
3 | WFIITOWFE | RW | ប្រតិបត្តិពាក្យបញ្ជា WFI ដូចជាប្រសិនបើវាជា WFE ។
1៖ ចាត់ទុកការណែនាំ WFI ជាបន្តបន្ទាប់ជាការណែនាំរបស់ WFE ។ 0: គ្មានផលប៉ះពាល់។ |
0 |
2 | SLEEPDEEP | RW | របៀបថាមពលទាបនៃប្រព័ន្ធគ្រប់គ្រង។ | 0 |
1: ងងុយគេង 0: គេង | ||||
1 | SLEEPONEXI T | RW | ស្ថានភាពប្រព័ន្ធបន្ទាប់ពីការគ្រប់គ្រងចាកចេញពីកម្មវិធីសេវាកម្មរំខាន។
1: ប្រព័ន្ធចូលទៅក្នុងរបៀបថាមពលទាប។ 0: ប្រព័ន្ធចូលទៅក្នុងកម្មវិធីសំខាន់។ |
0 |
0 | កក់ទុក | RO | កក់ទុក | 0 |
ការចុះឈ្មោះ CSR ទាក់ទងនឹងការរំខាន
លើសពីនេះ ការចុះបញ្ជី CSR ខាងក្រោមក៏មានឥទ្ធិពលយ៉ាងសំខាន់ទៅលើដំណើរការនៃការរំខានផងដែរ។ ការចុះឈ្មោះត្រួតពិនិត្យប្រព័ន្ធរំខាន (intsyscr)
ការចុះឈ្មោះនេះមិនមានសុពលភាពសម្រាប់តែ V3A ទេ៖
ឈ្មោះ | CSR អាស័យដ្ឋាន | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
intsyscr | 0x804 | URW | រំខានការចុះឈ្មោះគ្រប់គ្រងប្រព័ន្ធ | 0x0000E002 |
ប្រជាជនរបស់វាត្រូវបានកំណត់ថា:
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
31 |
ចាក់សោ |
URO |
0: ការចុះឈ្មោះនេះអាចអាន និងសរសេរក្នុងទម្រង់អ្នកប្រើប្រាស់។
1: ការចុះឈ្មោះនេះអាចអានបានតែក្នុងរបៀបម៉ាស៊ីនប៉ុណ្ណោះ។ ចំណាំ៖ ប៊ីតការកំណត់រចនាសម្ព័ន្ធនេះមានសុពលភាពពី កំណែ 1.0 ឡើង។ |
0 |
[30:6] | កក់ទុក | URO | កក់ទុក | 0x380 |
5 |
GIHWSTKNEN |
URW1 |
ការផ្អាកជាសកល និងការបិទជង់ផ្នែករឹងត្រូវបានបើក។
ចំណាំ៖ ប៊ីតនេះជារឿយៗត្រូវបានប្រើប្រាស់នៅក្នុងប្រព័ន្ធប្រតិបត្តិការពេលវេលាជាក់ស្តែង។ នៅពេលដែលបរិបទត្រូវបានប្តូរអំឡុងពេលមានការរំខាន ការកំណត់ប៊ីតនេះអាចបិទការរំខានជាសកល និងរុញជង់ផ្នែករឹង។ នៅពេលដែលកុងតាក់បរិបទត្រូវបានបញ្ចប់ ហើយការរំខានត្រឡប់មកវិញ នោះផ្នែករឹងនឹង សម្អាតប៊ីតនេះដោយស្វ័យប្រវត្តិ។ |
0 |
4 | កក់ទុក | URO | កក់ទុក | 0 |
[3:2] | PMTCFG | URW | ការកំណត់រចនាសម្ព័ន្ធប៊ីតបម្រុងអាទិភាព៖
00: ចំនួននៃការកក់ទុកមុនគឺ 0; 01: ចំនួននៃការកក់ទុកមុនគឺ 1; 10: ចំនួននៃការកក់ទុកមុនគឺ 2; 11: ចំនួននៃការកក់ទុកមុនគឺ 3; ចំណាំ៖ ប៊ីតការកំណត់រចនាសម្ព័ន្ធនេះមានសុពលភាពបន្ទាប់ពី ០១. |
0 |
1 | ស្តាប់ | URW | មុខងារសំបុករំខានត្រូវបានបើក ហើយតម្លៃថេរគឺ 1: | 1 |
0: បិទ;
1: បើក។ ចំណាំ៖ 1. កម្រិតសំបុកពិតប្រាកដត្រូវបានគ្រប់គ្រងដោយ NEST_LVL ក្នុង CSR 0xBC1; 2. មានតែកំណែបន្ទាប់ពី 1.0 ប៉ុណ្ណោះដែលអាចមាន សរសេរ។ |
||||
0 | HWSTKEN | URW | ជង់ផ្នែករឹងបើកដំណើរការ៖
0: មុខងារចុចជង់ផ្នែករឹងត្រូវបានបិទ។ 1: មុខងារចុចជង់ផ្នែករឹងត្រូវបានបើក។ |
0 |
ការចុះឈ្មោះអាសយដ្ឋានមូលដ្ឋានករណីលើកលែងរបៀបម៉ាស៊ីន (mtvec)
ឈ្មោះ | CSR អាស័យដ្ឋាន | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
mtvec | 0x305 | MRW | ការចុះឈ្មោះអាសយដ្ឋានមូលដ្ឋានករណីលើកលែង | 0x00000000 |
ប្រជាជនរបស់វាត្រូវបានកំណត់ថាជា
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:2] | BASEADDR[31:2] | MRW | រំខានអាសយដ្ឋានមូលដ្ឋានតារាងវ៉ិចទ័រ កន្លែងណា
ប៊ីត [9:2] ត្រូវបានជួសជុលទៅ 0 ។ |
0 |
1 | MODE1 |
MRO |
រំខានរបៀបសម្គាល់តារាងវ៉ិចទ័រ៖ 0៖ កំណត់អត្តសញ្ញាណដោយការណែនាំលោត ដោយមានវិសាលភាពកំណត់ និងគាំទ្រការណែនាំមិនលោត។
1: កំណត់អត្តសញ្ញាណដោយអាសយដ្ឋានដាច់ខាត គាំទ្រជួរពេញលេញ ប៉ុន្តែត្រូវតែលោត។ ចំណាំ៖ ប៊ីតនេះមានសុពលភាពសម្រាប់តែ V3B/C ប៉ុណ្ណោះ។ |
0 |
0 | MODE0 | MRW | ការជ្រើសរើសរបៀបអាសយដ្ឋានចូលរំខាន ឬលើកលែង។
0: ការប្រើប្រាស់អាសយដ្ឋានចូលឯកសណ្ឋាន។ 1: អាស័យដ្ឋានអុហ្វសិតដោយផ្អែកលើលេខរំខាន *4 ។ |
0 |
សម្រាប់ MCUs ដែលមាន microprocessors ស៊េរី V3 MODE0 ត្រូវបានកំណត់ជា 1 តាមលំនាំដើមនៅពេលចាប់ផ្តើម fileហើយធាតុសម្រាប់ការលើកលែង ឬការរំខានត្រូវបានទូទាត់ដោយយោងតាមលេខរំខាន *4 ។ ចំណាំថា microprocessor V3A រក្សាទុកការណែនាំលោតនៅតារាងវ៉ិចទ័រ ខណៈពេលដែល microprocessor V3B/C អាចលោតការណែនាំ ឬប្រើអាសយដ្ឋានដាច់ខាតនៃមុខងាររំខាន ដែលត្រូវបានកំណត់រចនាសម្ព័ន្ធជាអាសយដ្ឋានដាច់ខាតនៅក្នុងការចាប់ផ្ដើមលំនាំដើម។ file.
ការចុះឈ្មោះកំណត់រចនាសម្ព័ន្ធមីក្រូដំណើរការ (អ្នកកែ)
ការចុះឈ្មោះនេះគឺមិនត្រឹមត្រូវសម្រាប់ V3A៖
ឈ្មោះ | CSR អាស័យដ្ឋាន | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
Corecfgr | 0xBC0 | MRW | ការចុះឈ្មោះកំណត់រចនាសម្ព័ន្ធមីក្រូដំណើរការ | 0x00000001 |
ប្រជាជនរបស់វាត្រូវបានកំណត់ថាជា
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:8] | កក់ទុក | MRO | កក់ទុក | 0 |
7 |
CSTA_FAULT_IE |
MRW |
កំហុសស្ថានភាពស្នូលរំខានបើក៖
0: នៅលើស្ថានភាពកំហុស គ្មានការរំខាន NMI ត្រូវបានបង្កើត។ 1: នៅលើស្ថានភាពកំហុស ការរំខាន NMI គឺ បានបង្កើត។ |
0 |
6 | កក់ទុក | MRO | រក្សាវា 0 ។ | 0 |
5 | IE_REMAP_EN | MRW | ផែនទីចុះឈ្មោះ MIE បើកដំណើរការ៖
0: អាសយដ្ឋាន CSR 0x800 គឺជាការចុះឈ្មោះបានតែអាន ហើយតម្លៃត្រឡប់មកវិញគឺជាតម្លៃនៃ STATUS ។ 1: ប៊ីត 3 និង 7 នៃអាសយដ្ឋាន CSR 0x800 ត្រូវបានគូសផែនទីទៅប៊ីត MIE នៃការចុះឈ្មោះ STATUS និងប៊ីត MPIE នៃការចុះឈ្មោះ STATUS រៀងគ្នា។ |
0 |
4 | កក់ទុក | MRO | កក់ទុក | 0 |
3 | ROM_LOOP_ACC | MRW | ការបង្កើនល្បឿននៃការណែនាំតំបន់ ROM បើកដំណើរការ៖
0: បិទមុខងារបង្កើនល្បឿនរង្វិលនៅក្នុងតំបន់ ROM; 1: ការណែនាំជាបន្តបន្ទាប់ជាមួយនឹងតួរង្វិលក្នុងរង្វង់ 128 បៃនឹងត្រូវបានពន្លឿនយ៉ាងពេញលេញ ខណៈពេលដែលអ្នកដែលមានតួរង្វិលជុំក្នុងរង្វង់ 256 បៃនឹងត្រូវបានពន្លឿនដោយផ្នែក។ |
0 |
2 | ROM_JUMP_ACC | MRW | ការបង្កើនល្បឿននៃការលោតការណែនាំតំបន់ ROM ត្រូវបានបើក៖
0: បិទការបង្កើនល្បឿនការណែនាំតំបន់ ROM; 1៖ បើកការបង្កើនល្បឿនលោតតាមការណែនាំនៅក្នុងតំបន់ ROM។ |
0 |
[1:0] | FETCH_MODE | MRW | របៀបទៅយក៖
00: Prefetch ត្រូវបានបិទ។ មុខងារ prefetch ការណែនាំត្រូវបានបិទ ដើម្បីជៀសវាងប្រតិបត្តិការទៅយកការណែនាំមិនត្រឹមត្រូវ ហើយមានការណែនាំត្រឹមត្រូវបំផុតមួយនៅលើបំពង់ស៊ីភីយូ។ ម៉ូដែលនេះមានការប្រើប្រាស់ថាមពលទាបបំផុត ហើយដំណើរការរបស់វាធ្លាក់ចុះប្រហែល 2 ~ 3 ដង។ 01៖ Prefetch Mode 1. នៅពេលដែលមុខងារ instruction prefetch ត្រូវបានបើក CPU នឹងបន្តចូលប្រើ instruction memory រហូតដល់ចំនួនការណែនាំដែលត្រូវប្រតិបត្តិក្នុង instruction buffer លើសពីចំនួនជាក់លាក់ ឬ instruction buffer គឺពេញ ហើយ ការទៅយកការណែនាំនឹងត្រូវផ្អាក។ (ការបរាជ័យនៃការទស្សន៍ទាយស៊ីភីយូនឹងនាំឱ្យប្រតិបត្តិការទាញយកមិនលើសលប់ ហើយក្នុងករណីខ្លះ អង្គភាពប្រតិបត្តិនឹងណែនាំ 0 ~ 2 វដ្តនៃពពុះ ហើយដំណើរការនៃកម្មវិធីភាគច្រើននឹងមិនថយចុះជាក់ស្តែងទេ); 10: កក់ទុក; |
0x1 |
រំខានការចុះបញ្ជីត្រួតពិនិត្យដែលបានបង្កប់ (inestcr)
ការចុះឈ្មោះនេះគឺមិនត្រឹមត្រូវសម្រាប់តែ V3A៖
ឈ្មោះ | CSR អាស័យដ្ឋាន | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
អ្នកវិនិយោគ | 0xBC1 | MRW | រំខានការចុះឈ្មោះត្រួតពិនិត្យដែលបានបង្កប់ | 0x00000000 |
ប្រជាជនរបស់វាត្រូវបានកំណត់ថាជា
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
31 | កក់ទុក | MRO | កក់ទុក | 0 |
30 | NEST_OV | MRW | ការរំខាន/ករណីលើកលែងដែលបង្កប់ទង់ជាតិលើសចំណុះ សរសេរលេខ 1 ដើម្បីជម្រះ៖
0: ការរំខានមិនបានហៀរចេញ; 1: បង្អាក់ទង់ជាតិលើស។ ចំណាំ៖ ការហូរហៀរការរំខាននឹងកើតឡើងតែនៅពេលដំណើរការមុខងារសេវាកម្មរំខានបន្ទាប់បន្សំ ដើម្បីបង្កើតការលើកលែងការណែនាំ ឬ NMI រំខាន។ នៅពេលនេះ ករណីលើកលែង និង NMI រំខានចូលជាធម្មតា ប៉ុន្តែជង់ស៊ីភីយូលើស ដូច្នេះអ្នកមិនអាចចេញពីករណីលើកលែងនេះបានទេ និង NMI រំខាន។ |
0 |
[29:12] | កក់ទុក | MRO | កក់ទុក | 0 |
[11:8] | NEST_STA | MRO | ទង់ស្ថានភាព Nested bit៖
0000: គ្មានការរំខាន; 0001: កម្រិត 1 រំខាន; 0011: កម្រិត 2 រំខាន (1-កម្រិត សំបុក); |
0 |
0111: កម្រិត 3 រំខាន (លើសចំណុះ);
១១១១៖ កម្រិត ៤ រំខាន (លើសចំណុះ)។ |
||||
[7:2] | កក់ទុក | MRO | កក់ទុក | 0 |
[1:0] | NEST_LVL | MRW | កម្រិតសំបុក៖
00: ការដាក់សំបុកត្រូវបានហាមឃាត់ ហើយមុខងារសំបុកត្រូវបានបិទ។ 01: សំបុកកម្រិតទីមួយដែលបើកមុខងារសំបុក; ផ្សេងទៀត៖ មិនត្រឹមត្រូវ។ ចំណាំ៖ សរសេរលេខ 10 ឬ 11 ទៅវាលនេះ ហើយវាលនឹងត្រូវបានកំណត់ទៅ 01។ នៅពេលសរសេរលេខ 11 ទៅកាន់វាលនេះ សូមអានការចុះឈ្មោះនេះដើម្បីទទួលបានកម្រិតសំបុកខ្ពស់បំផុតនៃបន្ទះឈីប។ |
0 |
របៀបអ្នកប្រើប្រាស់ការរំខានជាសកល បើកការចុះឈ្មោះ (អ្នកហាត់ការ)
ការចុះឈ្មោះនេះគឺមិនត្រឹមត្រូវសម្រាប់តែ V3A៖
ឈ្មោះ | CSR អាស័យដ្ឋាន | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
gintenr | 0x800 | URW | ការរំខានជាសកលបើកការចុះឈ្មោះ | 0x00000000 |
ការចុះឈ្មោះនេះត្រូវបានប្រើដើម្បីគ្រប់គ្រងការបើក និងរបាំងនៃការរំខានជាសកល។ ការបើក និងរបាំងនៃការរំខានជាសកលនៅក្នុងរបៀបម៉ាស៊ីនអាចត្រូវបានគ្រប់គ្រងដោយប៊ីត MIE និង MPIE នៅក្នុងស្ថានភាព ប៉ុន្តែការចុះឈ្មោះនេះមិនអាចដំណើរការក្នុងទម្រង់អ្នកប្រើប្រាស់បានទេ។
ការរំខានជាសកលដែលអនុញ្ញាតឱ្យចុះឈ្មោះ gintenr គឺជាការគូសផែនទីនៃ MIE និង MPIE នៅក្នុង mstatus ហើយអាចត្រូវបានប្រើដើម្បីកំណត់ និងសម្អាត MIE និង MPIE ដោយប្រតិបត្តិការ gintenr នៅក្នុងរបៀបអ្នកប្រើប្រាស់។
ពួកគេម្នាក់ៗត្រូវបានកំណត់ថា:
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:13] | កក់ទុក | URO | កក់ទុក | 0 |
[12:11] | MPP | URO | បញ្ចូលមុខងារដែលមានសិទ្ធិមុនពេលមានការរំខាន។ | 0 |
[10:8] | កក់ទុក | URO | កក់ទុក | 0 |
7 | MPIE | URW | នៅពេលដែល 0xBC0(CSR)bit5 ត្រូវបានបើក ប៊ីតនេះ។
អាចត្រូវបានអាន និងសរសេរក្នុងទម្រង់អ្នកប្រើប្រាស់។ |
0 |
[6:4] | កក់ទុក | URO | កក់ទុក | 0 |
3 | MIE | URW | នៅពេលដែល 0xBC0(CSR)bit5 ត្រូវបានបើក ប៊ីតនេះ។
អាចត្រូវបានអាន និងសរសេរក្នុងទម្រង់អ្នកប្រើប្រាស់។ |
0 |
[1:0] | កក់ទុក | URO | កក់ទុក | 0 |
រំខានសំបុក
ដោយភ្ជាប់ជាមួយការរំខាន ការចុះឈ្មោះការកំណត់រចនាសម្ព័ន្ធ PFIC_CFGR និងការចុះឈ្មោះអាទិភាពរំខាន PFIC_IPRIOR ការបញ្ឈប់ការរំខានអាចត្រូវបានអនុញ្ញាតឱ្យកើតឡើង។ បើកដំណើរការសំបុកនៅក្នុងការចុះឈ្មោះការកំណត់រចនាសម្ព័ន្ធរំខាន (សំបុកត្រូវបានបើកតាមលំនាំដើមសម្រាប់ microprocessors ស៊េរី V3) និងកំណត់រចនាសម្ព័ន្ធអាទិភាពនៃការរំខានដែលត្រូវគ្នា។ តម្លៃអាទិភាពកាន់តែតូច អាទិភាពកាន់តែខ្ពស់។ តម្លៃនៃការ preemption bit តូចជាង អាទិភាព preemption កាន់តែខ្ពស់។ ប្រសិនបើមានការរំខានដែលព្យួរក្នុងពេលតែមួយក្រោមអាទិភាពនៃការកក់ទុកដូចគ្នានោះ microprocessor ឆ្លើយតបទៅនឹងការរំខានជាមួយនឹងតម្លៃអាទិភាពទាប (អាទិភាពខ្ពស់ជាង) ជាមុនសិន។
វគ្គបទបង្ហាញអំពីផ្នែករឹង (HPE)
- នៅពេលករណីលើកលែង ឬការរំខានកើតឡើង microprocessor បញ្ឈប់លំហូរកម្មវិធីបច្ចុប្បន្ន ហើយប្តូរទៅការប្រតិបត្តិនៃមុខងារលើកលែង ឬរំខាន គេហទំព័រនៃលំហូរកម្មវិធីបច្ចុប្បន្នត្រូវរក្សាទុក។ បន្ទាប់ពីការលើកលែងឬការរំខានត្រឡប់មកវិញ វាចាំបាច់ក្នុងការស្ដារគេហទំព័រឡើងវិញ និងបន្តការប្រតិបត្តិនៃលំហូរកម្មវិធីដែលបានបញ្ឈប់។ សម្រាប់ microprocessors ស៊េរី V3 "គេហទំព័រ" នៅទីនេះសំដៅលើការចុះឈ្មោះ Caller Saved ទាំងអស់នៅក្នុងតារាង 1-2។
- microprocessors ស៊េរី V3 គាំទ្រការរក្សាទុកដោយស្វ័យប្រវត្តិវដ្តតែមួយនៃផ្នែករឹងចំនួន 16 នៃទម្រង់ដែលបានរក្សាទុកអ្នកហៅទៅកាន់តំបន់ជង់ខាងក្នុងដែលមិនអាចមើលឃើញដោយអ្នកប្រើប្រាស់។ នៅពេលដែលការលើកលែងឬការរំខានត្រឡប់មកវិញ វដ្តតែមួយផ្នែករឹងនឹងស្ដារទិន្នន័យដោយស្វ័យប្រវត្តិពីតំបន់ជង់ខាងក្នុងទៅបញ្ជីដែលមានរាង 16 ។ HPE គាំទ្រការដាក់សំបុករហូតដល់ 2 កម្រិតជ្រៅ។
- គ្រោងការណ៍នៃជង់សម្ពាធ microprocessor ត្រូវបានបង្ហាញក្នុងរូបខាងក្រោម។
ចំណាំ៖
- មុខងាររំខានដោយប្រើប្រាស់ HPE ចាំបាច់ត្រូវចងក្រងដោយប្រើ MRS ឬ toolchain របស់វា ហើយមុខងាររំខានត្រូវប្រកាសជាមួយ __attribute__((interrupt(“WCH-Interrupt-fast”))))។
- មុខងាររំខានដោយប្រើជង់រុញត្រូវបានប្រកាសដោយ __attribute__((រំខាន()))។
តារាងវ៉ិចទ័រឥតគិតថ្លៃ (VTF)
- Programmable Fast Interrupt Controller (PFIC) ផ្តល់នូវបណ្តាញ VTF ចំនួន 4 ពោលគឺការចូលដោយផ្ទាល់ទៅកាន់ធាតុមុខងាររំខានដោយមិនចាំបាច់ឆ្លងកាត់ដំណើរការរកមើលតារាងវ៉ិចទ័រដែលរំខាន។
- ប៉ុស្តិ៍ VTF អាចត្រូវបានបើកដោយការសរសេរលេខរំខានរបស់វា អាសយដ្ឋានមូលដ្ឋានមុខងារសេវាកម្មរំខាន និងអាសយដ្ឋានអុហ្វសិតទៅក្នុងបញ្ជីឧបករណ៍បញ្ជា PFIC ដែលត្រូវគ្នា ខណៈពេលដែលកំណត់រចនាសម្ព័ន្ធមុខងាររំខានជាធម្មតា។
- ដំណើរការឆ្លើយតប PFIC សម្រាប់ការរំខានរហ័ស និងមិនមានតារាងត្រូវបានបង្ហាញក្នុងរូបភាព 3-2 ខាងក្រោម។
ការការពារការចងចាំរាងកាយ PMP
- ដើម្បីបង្កើនសុវត្ថិភាពនៃប្រព័ន្ធ ម៉ូឌុលការពារអង្គចងចាំរាងកាយ (PMP) ត្រូវបានរចនាឡើងដោយយោងទៅតាមស្តង់ដារស្ថាបត្យកម្ម RISC-V សម្រាប់ microprocessors ស៊េរី V3 នៃ barley ខ្ពង់រាប។ ការគ្រប់គ្រងសិទ្ធិចូលប្រើបានរហូតដល់ទៅ 4 តំបន់រូបវន្តត្រូវបានគាំទ្រ។ ការអនុញ្ញាតរួមមានអាន (R) សរសេរ (W) និងប្រតិបត្តិគុណលក្ខណៈ (X) ហើយប្រវែងនៃតំបន់ការពារអាចត្រូវបានកំណត់ជា 4 បៃយ៉ាងតិច។ ម៉ូឌុល PMP តែងតែមានប្រសិទ្ធិភាពនៅក្នុងរបៀបអ្នកប្រើប្រាស់ ប៉ុន្តែវាអាចមានប្រសិទ្ធិភាពជាជម្រើសដោយការចាក់សោគុណលក្ខណៈ (L) នៅក្នុងរបៀបម៉ាស៊ីន។
- ប្រសិនបើការចូលប្រើបំពានដែនកំណត់ការអនុញ្ញាតបច្ចុប្បន្ន វានឹងបង្កឱ្យមានការរំខានមិនធម្មតា។ ម៉ូឌុល PMP រួមមានក្រុមចំនួនបួននៃការចុះឈ្មោះកំណត់រចនាសម្ព័ន្ធ 8 ប៊ីត (មួយក្រុមនៃ 32 ប៊ីត) និងក្រុមចំនួនបួននៃការចុះឈ្មោះអាសយដ្ឋាន ដែលទាំងអស់ត្រូវចូលប្រើក្នុងរបៀបម៉ាស៊ីនដោយការណែនាំ CSR ។
- ចំណាំ៖ ចំនួននៃតំបន់ការពារដែលគាំទ្រដោយ PMP នៅក្នុងម៉ូដែលផ្សេងៗនៃ microprocessors អាចខុសគ្នា ហើយចំនួនដែលគាំទ្រដោយ pmpcfg និង pmpaddr registers ក៏ខុសគ្នាដែរ។ សូមមើលតារាង 1-1 សម្រាប់ព័ត៌មានលម្អិត។
សំណុំចុះឈ្មោះ PMP
បញ្ជីនៃការចុះឈ្មោះ CSR ដែលគាំទ្រដោយម៉ូឌុល PMP នៃ microprocessor V3 ត្រូវបានបង្ហាញក្នុងតារាង 4-1 ខាងក្រោម។
តារាង 4-1 សំណុំចុះឈ្មោះម៉ូឌុល PMP
ឈ្មោះ | អាសយដ្ឋាន CSR | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
pmpcfg0 | 0x3A0 | MRW | ចុះឈ្មោះការកំណត់រចនាសម្ព័ន្ធ PMP 0 | 0x00000000 |
pmpaddr0 | 0x3B0 | MRW | អាសយដ្ឋាន PMP ចុះឈ្មោះ 0 | 0xXXXXXXXXX |
pmpaddr1 | 0x3B1 | MRW | អាសយដ្ឋាន PMP ចុះឈ្មោះ 1 | 0xXXXXXXXXX |
pmpaddr2 | 0x3B2 | MRW | អាសយដ្ឋាន PMP ចុះឈ្មោះ 2 | 0xXXXXXXXXX |
pmpaddr3 | 0x3B3 | MRW | អាសយដ្ឋាន PMP ចុះឈ្មោះ 3 | 0xXXXXXXXXX |
pmp
pmpcfg គឺជាការចុះឈ្មោះកំណត់រចនាសម្ព័ន្ធនៃអង្គភាព PMP ហើយការចុះឈ្មោះនីមួយៗមានវាលបូមចំនួន 8 ប៊ីតចំនួនបួន ដែលត្រូវនឹងការកំណត់រចនាសម្ព័ន្ធនៃតំបន់ចំនួនបួន ហើយការបូមតំណាងឱ្យតម្លៃកំណត់រចនាសម្ព័ន្ធនៃតំបន់ i ។ ទម្រង់របស់វាត្រូវបានបង្ហាញក្នុងតារាង 4-2 ខាងក្រោម។
តារាង 4-2 pmpcfg0 ចុះឈ្មោះ
pmpcfg ត្រូវបានប្រើដើម្បីកំណត់រចនាសម្ព័ន្ធតំបន់ I ហើយនិយមន័យប៊ីតរបស់វាត្រូវបានពិពណ៌នានៅក្នុងតារាង 4-3 ខាងក្រោម។
តារាង 4-3 pmp
ប៊ីត | ឈ្មោះ | ការពិពណ៌នា |
7 | L | ការចាក់សោត្រូវបានបើក ហើយអាចដោះសោនៅក្នុងរបៀបម៉ាស៊ីន។ 0: មិនបានចាក់សោ;
1: ចាក់សោការចុះឈ្មោះដែលពាក់ព័ន្ធ។ |
[6:5] | – | កក់ទុក |
[4:3] | A | ការតម្រឹមអាសយដ្ឋាន និងការជ្រើសរើសជួរតំបន់ការពារ។ 00: បិទ (បិទ PMP)
01: TOR (ការការពារការតម្រឹមកំពូល) 10: NA4 (ជួសជុលការការពារបួនបៃ) ១១៖ ការការពារ NAPOT (11(G+2) Byte, G≥2) |
2 | X | គុណលក្ខណៈដែលអាចប្រតិបត្តិបាន។ |
0: គ្មានការអនុញ្ញាតប្រតិបត្តិ;
1: អនុវត្តការអនុញ្ញាត។ |
||
1 |
W |
គុណលក្ខណៈដែលអាចសរសេរបាន។
0: គ្មានការអនុញ្ញាតសរសេរ 1: ការអនុញ្ញាតសរសេរ។ |
0 |
R |
គុណលក្ខណៈដែលអាចអានបាន។
0: គ្មានការអនុញ្ញាតអាន 1: ការអនុញ្ញាតអាន។ |
pmpaddr
ការចុះឈ្មោះ pmpaddr ត្រូវបានប្រើដើម្បីកំណត់អាសយដ្ឋាននៃតំបន់ I. និយមន័យស្តង់ដារគឺស្ថិតនៅក្រោមស្ថាបត្យកម្ម RV32 ដែលជាការអ៊ិនកូដនៃ 32 ប៊ីតខាងលើនៃអាសយដ្ឋានរូបវន្ត 34 ប៊ីត ហើយទម្រង់របស់វាត្រូវបានបង្ហាញក្នុងតារាង 4-4 ខាងក្រោម។ .
លំហអាសយដ្ឋានរូបវន្តទាំងមូលរបស់ V3 microprocessor គឺ 4G ដូច្នេះពីរប៊ីតខាងលើនៃការចុះឈ្មោះនេះមិនត្រូវបានប្រើទេ។
តារាង 4-4 pmpaddr
នៅពេលដែល NAPOT ត្រូវបានជ្រើសរើស ប៊ីតទាបនៃការចុះឈ្មោះអាសយដ្ឋានក៏ត្រូវបានប្រើដើម្បីបង្ហាញពីទំហំនៃតំបន់ការពារបច្ចុប្បន្ន ដូចដែលបានបង្ហាញក្នុងតារាងខាងក្រោម ដែល 'y' គឺជាប៊ីតនៃការចុះឈ្មោះ។
តារាងទី 4-5 តារាងទំនាក់ទំនងរវាងការកំណត់រចនាសម្ព័ន្ធ PMP និងការចុះឈ្មោះអាសយដ្ឋាន និងតំបន់ការពារ។
pmpaddr | pmpcfg ។ ក | ការផ្គូផ្គងអាសយដ្ឋាននិងទំហំមូលដ្ឋាន |
yyyy…yyyy | NA4 | ជាមួយនឹង 'yy…yyyy00' ជាអាសយដ្ឋានមូលដ្ឋាន ផ្ទៃ 4 បៃត្រូវបានការពារ។ |
yyyy…yyy0 | ណាប៉ូត | ជាមួយនឹង 'yy…yyy000' ជាអាសយដ្ឋានមូលដ្ឋាន តំបន់ 8-byte ត្រូវបានការពារ។ |
yyyy…yy01 | ណាប៉ូត | ជាមួយនឹង 'yy…yy0000' ជាអាសយដ្ឋានមូលដ្ឋាន ផ្ទៃ 16 បៃត្រូវបានការពារ។ |
yyyy…y011 | ណាប៉ូត | ជាមួយនឹង 'yy…y00000' ជាអាសយដ្ឋានមូលដ្ឋាន ផ្ទៃ 16 បៃត្រូវបានការពារ។ |
… | … | … |
yyy01…111 | ណាប៉ូត | ជាមួយនឹង 'y0…000000' ជាអាសយដ្ឋានមូលដ្ឋាន តំបន់ 231 បៃត្រូវបានការពារ។ |
yy011…111 | ណាប៉ូត | ការពារផ្ទៃ 232 បៃទាំងមូល។ |
យន្តការការពារ
X/W/R ក្នុង pmpcfg ត្រូវបានប្រើដើម្បីកំណត់អាជ្ញាធរការពារនៃតំបន់ I ហើយការរំលោភលើអាជ្ញាធរពាក់ព័ន្ធនឹងបង្កឱ្យមានករណីលើកលែងដែលត្រូវគ្នា៖
- នៅពេលព្យាយាមទាញយកការណែនាំនៅក្នុងតំបន់ PMP ដោយគ្មានអាជ្ញាធរប្រតិបត្តិ វានឹងបណ្តាលឱ្យមានការលើកលែងកំហុសក្នុងការទាញយកការណែនាំ (mcause=1)។
- នៅពេលព្យាយាមសរសេរទិន្នន័យនៅក្នុងតំបន់ PMP ដោយគ្មានការអនុញ្ញាតជាលាយលក្ខណ៍អក្សរ វានឹងបណ្តាលឱ្យមានការលើកលែងកំហុស (mcause=7) នៅក្នុងការចូលប្រើការណែនាំរបស់ហាង។
- នៅពេលព្យាយាមអានទិន្នន័យនៅក្នុងតំបន់ PMP ដោយគ្មានការអនុញ្ញាតអាន វានឹងបណ្តាលឱ្យមានកំហុសក្នុងការចូលប្រើអង្គចងចាំមិនប្រក្រតី (mcause=5) សម្រាប់ការណែនាំអំពីការផ្ទុក។
A ក្នុង pmpcfg ត្រូវបានប្រើដើម្បីកំណត់ជួរការពារ និងការតម្រឹមអាសយដ្ឋាននៃតំបន់ I និងដើម្បីការពារអង្គចងចាំនៃតំបន់ A_ADDR ≤ < i > < B_ADDR (ទាំង A_ADDR និង B_ADDR តម្រូវឱ្យតម្រឹមក្នុង 4 បៃ)៖
- ប្រសិនបើ B _ ADDR–A_ADDR = = 22, របៀប NA4 ត្រូវបានអនុម័ត។
- ប្រសិនបើ B _ ADDR–A_ADDR = = 2(G+2), G≥1, និងអាសយដ្ឋាន _ គឺ 2(g+2) នោះវិធីសាស្ត្រ NAPOT ត្រូវបានអនុម័ត។
- បើមិនដូច្នោះទេ របៀប TOP ត្រូវបានអនុម័ត។
តារាង 4-6 វិធីសាស្រ្តផ្គូផ្គងអាសយដ្ឋាន PMP
តម្លៃមួយ។ | ឈ្មោះ | ការពិពណ៌នា |
0b00 | បិទ | គ្មានតំបន់ការពារទេ។ |
0b01 | TOR | ការការពារតំបន់តម្រឹមកំពូល។
នៅក្រោម pmp pmpaddri = B_ADDR >> ២. ចំណាំ៖ ប្រសិនបើតំបន់ 0 នៃ PMP ត្រូវបានកំណត់រចនាសម្ព័ន្ធជារបៀប TOR (i=0) ព្រំដែនខាងក្រោមនៃតំបន់ការពារគឺ 0 អាសយដ្ឋាន ពោលគឺ 0 ≤ addr < pmpaddr0 ទាំងអស់នៅក្នុងជួរដែលត្រូវគ្នា។ |
0b10 | NA4 | បានជួសជុលការការពារតំបន់ 4 បៃ។
pmp |
0b11 | ណាប៉ូត | ការពារតំបន់ 2(G+2) ជាមួយ G ≥ 1 នៅពេលដែល A_ADDR ត្រូវបានតម្រឹម 2(G+2) ។ pmpaddri = ((A_ADDR|(2(G+2)-1)) &~(1< > ២. |
- ប៊ីត L ក្នុង pmp
- ឧបករណ៍ដំណើរការមីក្រូស៊េរី QingKe V3 គាំទ្រការការពារតំបន់ជាច្រើន។ នៅពេលដែលប្រតិបត្តិការដូចគ្នាត្រូវគ្នានឹងតំបន់ច្រើនក្នុងពេលតែមួយ តំបន់ដែលមានលេខតូចជាងត្រូវបានផ្គូផ្គងមុន។
កម្មវិធីកំណត់ម៉ោងប្រព័ន្ធ (SysTick)
- QingKe V3 series microprocessor ត្រូវបានរចនាឡើងជាមួយនឹងបញ្ជរ 32-bit ឬ 64-bit (SysTick) នៅខាងក្នុង។ ប្រភពនាឡិការបស់វាគឺជានាឡិកាប្រព័ន្ធ ឬការបែងចែកប្រេកង់ 8 របស់វា ហើយ V3A គាំទ្រតែការបែងចែកប្រេកង់ 8 ប៉ុណ្ណោះ។
- វាអាចផ្តល់នូវមូលដ្ឋានពេលវេលា ពេលវេលា និងពេលវេលាវាស់វែងសម្រាប់ប្រព័ន្ធប្រតិបត្តិការតាមពេលវេលាជាក់ស្តែង។ ប្រភេទផ្សេងគ្នានៃការចុះឈ្មោះដែលពាក់ព័ន្ធនឹងកម្មវិធីកំណត់ម៉ោងមានអាសយដ្ឋានផែនទីខុសៗគ្នា ដូចបានបង្ហាញក្នុងតារាងខាងក្រោម 5-1 និង 5-2 ។
តារាង 5-1 បញ្ជីចុះឈ្មោះ V3A SysTick
ឈ្មោះ | ចូលប្រើអាសយដ្ឋាន | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
STK_CTLR | 0xE000F000 | ការចុះឈ្មោះត្រួតពិនិត្យប្រព័ន្ធ | 0x00000000 |
STK_CNTL | 0xE000F004 | ប្រព័ន្ធរាប់ការចុះឈ្មោះទាប | 0xXXXXXXXXX |
STK_CNTH | 0xE000F008 | ប្រព័ន្ធរាប់ការចុះឈ្មោះខ្ពស់។
ចំណាំ៖ មានសុពលភាពសម្រាប់តែ V3A ប៉ុណ្ណោះ។ |
0xXXXXXXXXX |
STK_CMPLR | 0xE000F00C | តម្លៃប្រៀបធៀបចំនួនប្រព័ន្ធ ការចុះឈ្មោះទាប | 0xXXXXXXXXX |
STK_CMPHR | 0xE000F010 | តម្លៃប្រៀបធៀបចំនួនប្រព័ន្ធ ការចុះឈ្មោះខ្ពស់។
ចំណាំ៖ មានសុពលភាពសម្រាប់តែ V3A ប៉ុណ្ណោះ។ |
0xXXXXXXXXX |
តារាង 5-2 V3 SysTick បញ្ជីចុះឈ្មោះនៃម៉ូដែលផ្សេងទៀត។
ឈ្មោះ | ចូលប្រើអាសយដ្ឋាន | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
STK_CTLR | 0xE000F000 | ការចុះឈ្មោះត្រួតពិនិត្យប្រព័ន្ធ | 0x00000000 |
STK_SR | 0xE000F004 | ការចុះឈ្មោះស្ថានភាពប្រឆាំងប្រព័ន្ធ | 0x00000000 |
STK_CNTL | 0xE000F008 | ការចុះឈ្មោះទាបនៃបញ្ជរប្រព័ន្ធ | 0xXXXXXXXXX |
STK_CMPLR | 0xE000F010 | រាប់តម្លៃប្រៀបធៀបការចុះឈ្មោះទាប | 0xXXXXXXXXX |
ការចុះឈ្មោះនីមួយៗត្រូវបានពិពណ៌នាលម្អិតដូចខាងក្រោម។
ការចុះឈ្មោះការត្រួតពិនិត្យប្រព័ន្ធ (STK_CTLR)
តារាង 5-3 ចុះឈ្មោះត្រួតពិនិត្យ SysTick
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:5] | កក់ទុក | RO | កក់ទុក | 0 |
4 |
របៀប |
RW |
របៀបរាប់: 1: រាប់ថយក្រោយ;
0: រាប់។ ចំណាំ៖ មិនត្រឹមត្រូវសម្រាប់ V3A។ |
0 |
3 |
STRE |
RW |
ការរាប់ឡើងវិញដោយស្វ័យប្រវត្តិបើកប៊ីត៖
១៖ រាប់ពី ០ ម្តងទៀត បន្ទាប់ពីរាប់ដល់តម្លៃប្រៀបធៀប ហើយរាប់ពីតម្លៃប្រៀបធៀបម្តងទៀត បន្ទាប់ពីរាប់ចុះដល់លេខ ០; 0: បន្តរាប់ឡើង/ចុះ។ ចំណាំ៖ មិនត្រឹមត្រូវសម្រាប់ V3A។ |
0 |
2 |
STCLK |
RW |
ការជ្រើសរើសប្រភព Counterclock bit៖
1: HCLK ជាមូលដ្ឋានពេលវេលា; 0: HCLK/8 ជាពេលវេលាមូលដ្ឋាន។ ចំណាំ៖ វាមិនត្រឹមត្រូវសម្រាប់ V3A ដែលគាំទ្រតែប៉ុណ្ណោះ HCLK/8 ជាមូលដ្ឋានពេលវេលា។ |
0 |
1 | គេហទំព័រ | RW | ប្រឆាំងការរំខានបើកប៊ីតត្រួតពិនិត្យ៖ | 0 |
1: បើកដំណើរការប្រឆាំងការរំខាន; 0៖ បិទដំណើរការប្រឆាំងការរំខាន។
ចំណាំ៖ មិនត្រឹមត្រូវសម្រាប់ V3A។ |
||||
0 | អេសធីអេ | RW | ប្រព័ន្ធរាប់បើកដំណើរការប៊ីតត្រួតពិនិត្យ។ 1: បើកដំណើរការប្រព័ន្ធប្រឆាំង STK;
0: បិទដំណើរការបញ្ជរប្រព័ន្ធ STK ហើយបញ្ជរឈប់រាប់។ |
0 |
ការចុះឈ្មោះស្ថានភាពប្រឆាំងប្រព័ន្ធ (STK_SR)
ការចុះឈ្មោះនេះមិនអនុវត្តចំពោះ V3A ទេ។
តារាង 5-4 SysTick counter ចុះឈ្មោះទាប
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
31 |
SWIE |
RW |
បើកដំណើរការកម្មវិធីរំខានកម្មវិធី (SWI): 1: ធ្វើឱ្យកម្មវិធីរំខានដំណើរការ។
0: បិទគន្លឹះ។ ចំណាំ៖ ប៊ីតនេះត្រូវតែជម្រះបន្ទាប់ពីបញ្ចូលកម្មវិធីរំខាន បើមិនដូច្នេះទេ វានឹងកេះជានិច្ច។ |
0 |
[30:1] | កក់ទុក | RO | កក់ទុក | 0 |
0 |
CNTIF |
RW |
រាប់ទង់ប្រៀបធៀប សរសេរ 0 ច្បាស់ សរសេរ 1 គឺមិនត្រឹមត្រូវទេ៖
1: រាប់ដល់តម្លៃប្រៀបធៀប ហើយរាប់ចុះដល់ 0; 0: តម្លៃប្រៀបធៀបមិនត្រូវបានឈានដល់ទេ។ |
0 |
ការចុះឈ្មោះទាបនៃប្រព័ន្ធរាប់ (STK_CNTL)
តារាង 5-5 SysTick counter ចុះឈ្មោះទាប
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:0] | CNTL | RW | តម្លៃរាប់បច្ចុប្បន្នគឺទាបជាង 32 ប៊ីត។ សម្រាប់ V3A ការចុះឈ្មោះនេះអាចអានជា 8-bit/16-bit
/32-bit ប៉ុន្តែអាចសរសេរជា 8-bit និងផ្សេងទៀត។ ម៉ូដែលមិនកំណត់ទេ។ |
0xXXXXXXXXX |
ចំណាំ៖ ចុះឈ្មោះ STK_CNTL ហើយចុះឈ្មោះ STK_CNTH នៅក្នុង V3A រួមគ្នាបង្កើតជាប្រព័ន្ធរាប់ចំនួន 64 ប៊ីត។
ប្រព័ន្ធរាប់ចំនួនការចុះឈ្មោះខ្ពស់ (STK_CNTH)
តារាង 5-6 SysTick ប្រឆាំងការចុះឈ្មោះខ្ពស់។
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:0] | CNTH | RW | តម្លៃរាប់បញ្ជរបច្ចុប្បន្នគឺខ្ពស់ជាង 32 ប៊ីត។ ការចុះឈ្មោះនេះអាចអានបានដោយ 8-bit/16-bit/32-bit ប៉ុន្តែអាចត្រូវបានសរសេរដោយ 8-bit ប៉ុណ្ណោះ។
ចំណាំ៖ មានសុពលភាពសម្រាប់តែ V3A ប៉ុណ្ណោះ។ |
0xXXXXXXXXX |
ចំណាំ៖ ចុះឈ្មោះ STK_CNTL ហើយចុះឈ្មោះ STK_CNTH នៅក្នុង V3A រួមគ្នាបង្កើតជាប្រព័ន្ធរាប់ចំនួន 64 ប៊ីត។
តម្លៃប្រៀបធៀបចំនួនប្រព័ន្ធ ការចុះឈ្មោះទាប (STK_CMPLR)
តារាង 5-7 តម្លៃប្រៀបធៀប SysTick ចុះឈ្មោះទាប
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:0] | ស៊ីភីភី | RW | កំណត់តម្លៃប្រៀបធៀបបញ្ជរទៅ 32 ប៊ីតទាបជាង។ នៅពេលដែលតម្លៃ CMP និងតម្លៃ CNT ស្មើគ្នា ការរំខាន STK នឹងត្រូវបានកេះ។ សម្រាប់ V3A ការចុះឈ្មោះនេះអាចអានជា 8-bit/16-bit/32-bit ប៉ុន្តែអាចត្រឹមតែ
សរសេរជា 8-bit ហើយម៉ូដែលផ្សេងទៀតមិនត្រូវបានកំណត់ទេ។ |
0xXXXXXXXXX |
ចំណាំ៖ ការចុះឈ្មោះ STK_CMPLR និងការចុះឈ្មោះ STK_CMPHR នៅក្នុង V3A រួមគ្នាបង្កើតជាតម្លៃប្រៀបធៀបបញ្ជរ 64 ប៊ីត។
តម្លៃប្រៀបធៀបចំនួនប្រព័ន្ធ ការចុះឈ្មោះខ្ពស់ (STK_CMPHR)
តារាង 5-8 តម្លៃប្រៀបធៀប SysTick ចុះឈ្មោះខ្ពស់។
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:0] | CMPH | RW | កំណត់តម្លៃប្រៀបធៀប 32 ប៊ីតខ្ពស់ជាង។ ការរំខាន STK នឹងត្រូវបានបង្កឡើងនៅពេលដែលតម្លៃ CMP និងតម្លៃ CNT ស្មើគ្នា។
ការចុះឈ្មោះនេះអាចអានបានដោយ 8-bit/16-bit/32-bit ប៉ុន្តែអាចត្រូវបានសរសេរដោយ 8-bit ប៉ុណ្ណោះ។ ចំណាំ៖ មានសុពលភាពសម្រាប់តែ V3A ប៉ុណ្ណោះ។ |
0xXXXXXXXXX |
ចំណាំ៖ ការចុះឈ្មោះ STK_CMPLR និងការចុះឈ្មោះ STK_CMPHR នៅក្នុង V3A រួមគ្នាបង្កើតជាតម្លៃប្រៀបធៀបបញ្ជរ 64 ប៊ីត។
ឧបករណ៍ដំណើរការការកំណត់ថាមពលទាប
- ឧបករណ៍ដំណើរការមីក្រូស៊េរី QingKe V3 គាំទ្រស្ថានភាពដំណេកតាមរយៈការណែនាំ WFI (Wait for Interrupt) ដើម្បីទទួលបានការប្រើប្រាស់ថាមពលឋិតិវន្តទាប។
- រួមជាមួយនឹងការចុះឈ្មោះគ្រប់គ្រងប្រព័ន្ធរបស់ PFIC (PFIC_SCTLR) របៀបគេងផ្សេងៗ និងការណែនាំ WFE អាចត្រូវបានអនុវត្ត។
ចូលគេង
- QingKe V3 series microprocessors អាចចូលគេងបានពីររបៀបគឺ Wait for Interrupt (WFI) និង Wait for Event (WFE)។ វិធីសាស្ត្រ WFI មានន័យថា microprocessor ចូលគេង រង់ចាំការរំខានមួយដើម្បីភ្ញាក់ឡើង ហើយបន្ទាប់មកភ្ញាក់ឡើងចំពោះការរំខានដែលត្រូវគ្នាដើម្បីប្រតិបត្តិ។ វិធីសាស្ត្រ WFE មានន័យថា microprocessor ចូលគេង រង់ចាំព្រឹត្តិការណ៍មួយដើម្បីភ្ញាក់ឡើង ហើយភ្ញាក់ឡើងដើម្បីបន្តដំណើរការកម្មវិធីដែលបានបញ្ឈប់ពីមុន។
- ស្តង់ដារ RISC-V គាំទ្រការណែនាំរបស់ WFI ហើយពាក្យបញ្ជា WFI អាចត្រូវបានប្រតិបត្តិដោយផ្ទាល់ដើម្បីចូលគេងដោយវិធីសាស្ត្រ WFI ។ សម្រាប់វិធីសាស្ត្រ WFE ប៊ីត WFITOWFE នៅក្នុងការចុះឈ្មោះគ្រប់គ្រងប្រព័ន្ធ PFIC_SCTLR ត្រូវបានប្រើដើម្បីគ្រប់គ្រងពាក្យបញ្ជា WFI ជាបន្តបន្ទាប់ដែលជាដំណើរការ WFE ដើម្បីសម្រេចបាននូវវិធីសាស្ត្រ WFE ដើម្បីចូលគេង។
- ជម្រៅនៃការគេងត្រូវបានគ្រប់គ្រងដោយយោងទៅតាម SLEEPDEEP bit នៅក្នុង PFIC_SCTLR ។
- ប្រសិនបើ SLEEPDEEP នៅក្នុងការចុះឈ្មោះ PFIC_SCTLR ត្រូវបានជម្រះដល់សូន្យ នោះ microprocessor ចូលទៅក្នុងរបៀប Sleep ហើយនាឡិកាឯកតាខាងក្នុងត្រូវបានអនុញ្ញាតឱ្យបិទ លើកលែងតែ SysTick និងផ្នែកនៃតក្កវិជ្ជាភ្ញាក់ឡើង។
- ប្រសិនបើ SLEEPDEEP នៅក្នុងការចុះឈ្មោះ PFIC_SCTLR ត្រូវបានកំណត់នោះ microprocessor ចូលទៅក្នុងរបៀប Deep sleep ហើយនាឡិកាក្រឡាទាំងអស់ត្រូវបានអនុញ្ញាតឱ្យបិទ។
- នៅពេលដែល microprocessor ស្ថិតនៅក្នុងរបៀប Debug វាមិនអាចចូលទៅក្នុងប្រភេទ Sleep mode បានទេ។
ការគេងភ្ញាក់
QingKe V3 series microprocessors អាចត្រូវបានដាស់បន្ទាប់ពីគេងដោយសារតែ WFI និង WFE តាមវិធីខាងក្រោម។
បន្ទាប់ពីវិធីសាស្ត្រ WFI ចូលគេង វាអាចត្រូវបានដាស់ដោយ
- microprocessor អាចត្រូវបានដាស់ដោយប្រភពរំខានដែលឆ្លើយតបដោយឧបករណ៍បញ្ជារំខាន។ បន្ទាប់ពីភ្ញាក់ឡើង microprocessor ដំណើរការមុខងាររំខានជាមុនសិន។
- ចូលរបៀបគេង សំណើបំបាត់កំហុសអាចធ្វើឱ្យ microprocessor ភ្ញាក់ឡើង ហើយចូលក្នុងការគេងជ្រៅ សំណើបំបាត់បញ្ហាមិនអាចដាស់ microprocessor បានទេ។
បន្ទាប់ពីវិធីសាស្ត្រ WFE ចូលគេង មីក្រូដំណើរការអាចត្រូវបានដាស់ដោយវិធីខាងក្រោម។
- ព្រឹត្តិការណ៍ខាងក្នុង ឬខាងក្រៅ នៅពេលដែលមិនចាំបាច់កំណត់រចនាសម្ព័ន្ធឧបករណ៍បញ្ជារំខាន ភ្ញាក់ឡើង ហើយបន្តដំណើរការកម្មវិធី។
- ប្រសិនបើប្រភពរំខានត្រូវបានបើក នោះ microprocessor ត្រូវបានដាស់នៅពេលដែល interrupt ត្រូវបានបង្កើត ហើយបន្ទាប់ពីភ្ញាក់ឡើង microprocessor ប្រតិបត្តិមុខងារ interrupt ជាមុនសិន។
- ប្រសិនបើប៊ីត SEVONPEND នៅក្នុង PFIC_SCTLR ត្រូវបានកំណត់រចនាសម្ព័ន្ធ ឧបករណ៍បញ្ជាការរំខានមិនបើកការរំខាននោះទេ ប៉ុន្តែនៅពេលដែលសញ្ញារង់ចាំការរំខានថ្មីត្រូវបានបង្កើត (សញ្ញារង់ចាំដែលបានបង្កើតពីមុនមិនមានប្រសិទ្ធភាពទេ) វាក៏អាចធ្វើឱ្យ microprocessor ភ្ញាក់ឡើង និង ទង់ដែលរង់ចាំការរំខានដែលត្រូវគ្នាត្រូវតែសម្អាតដោយដៃបន្ទាប់ពីភ្ញាក់ពីគេង។
- បញ្ចូលសំណើបំបាត់កំហុសក្នុងរបៀបគេងអាចធ្វើអោយ microprocessor ភ្ញាក់ហើយចូលគេងជ្រៅ សំណើបំបាត់កំហុសមិនអាចដាស់ microprocessor បានទេ។
- លើសពីនេះទៀតស្ថានភាពនៃ microprocessor បន្ទាប់ពីភ្ញាក់ឡើងអាចត្រូវបានគ្រប់គ្រងដោយការកំណត់ SLEEPONEXIT bit នៅក្នុង PFIC_SCTLR ។
- SLEEPONEXIT ត្រូវបានកំណត់ ហើយកម្រិតចុងក្រោយបង្អាក់ការណែនាំត្រឡប់ (mret) នឹងបង្កឱ្យមានការគេងរបៀប WFI ។
SLEEPONEXIT ត្រូវបានសម្អាតដោយគ្មានប្រសិទ្ធភាព។
ផលិតផល MCU ជាច្រើនដែលបំពាក់ដោយមីក្រូដំណើរការ V3 ស៊េរីអាចទទួលយករបៀបគេងផ្សេងៗគ្នា បិទគ្រឿងកុំព្យូទ័រ និងនាឡិកាផ្សេងៗ អនុវត្តគោលការណ៍គ្រប់គ្រងថាមពលផ្សេងៗគ្នា និងវិធីសាស្ត្រដាស់ដោយយោងទៅតាមការកំណត់ផ្សេងគ្នានៃ PFIC_SCTLR និងដឹងពីរបៀបថាមពលទាបផ្សេងៗ។
ជំនួយការបំបាត់កំហុស
- QingKe V3 series microprocessors រួមបញ្ចូលម៉ូឌុលបំបាត់កំហុសផ្នែករឹងដែលគាំទ្រប្រតិបត្តិការបំបាត់កំហុសដ៏ស្មុគស្មាញ។ នៅពេលដែល microprocessor ត្រូវបានផ្អាក ម៉ូឌុលបំបាត់កំហុសអាចចូលដំណើរការ GPRs, CSRs, Memory, ឧបករណ៍ខាងក្រៅរបស់ microprocessor ។ល។ តាមរយៈពាក្យបញ្ជា abstract, program buffer deployment, etc. Module debug អាចផ្អាក និងបន្តប្រតិបត្តិការ microprocessor បាន។
- ម៉ូឌុលបំបាត់កំហុសធ្វើតាមការបញ្ជាក់ RISC-V External Debug Support Version0.13.2 ឯកសារលម្អិតអាចទាញយកបានពី RISC-V International webគេហទំព័រ។
ម៉ូឌុលបំបាត់កំហុស
- ម៉ូឌុលបំបាត់កំហុសនៅខាងក្នុង microprocessor ដែលមានសមត្ថភាពអនុវត្តប្រតិបត្តិការបំបាត់កំហុសដែលចេញដោយម៉ាស៊ីនបំបាត់កំហុស រួមមាន។
- ចូលប្រើការចុះឈ្មោះតាមរយៈចំណុចប្រទាក់បំបាត់កំហុស
- កំណត់ឡើងវិញ ផ្អាក និងបន្ត microprocessor តាមរយៈចំណុចប្រទាក់បំបាត់កំហុស
- អាន និងសរសេរអង្គចងចាំ ការចុះឈ្មោះការណែនាំ និងឧបករណ៍ខាងក្រៅតាមរយៈចំណុចប្រទាក់បំបាត់កំហុស
- ដាក់ពង្រាយការណែនាំតាមអំពើចិត្តជាច្រើនតាមរយៈចំណុចប្រទាក់បំបាត់កំហុស
- កំណត់ចំណុចបំបែកកម្មវិធីតាមរយៈចំណុចប្រទាក់បំបាត់កំហុស
- កំណត់ចំណុចបំបែកផ្នែករឹងតាមរយៈចំណុចប្រទាក់បំបាត់កំហុស
- គាំទ្រការប្រតិបត្តិពាក្យបញ្ជា abstract ដោយស្វ័យប្រវត្តិ
- គាំទ្រការកែកំហុសមួយជំហាន
- ចំណាំ៖ V3A មិនគាំទ្រចំណុចបំបែកផ្នែករឹងទេ ចំណុចបំបែកផ្នែករឹង V3B គាំទ្រការផ្គូផ្គងអាសយដ្ឋានការណែនាំ ហើយចំណុចបំបែកផ្នែករឹង V3C គាំទ្រការផ្គូផ្គងអាសយដ្ឋានការណែនាំ និងអាសយដ្ឋានទិន្នន័យ។
- ការចុះឈ្មោះខាងក្នុងនៃម៉ូឌុលបំបាត់កំហុសប្រើប្រាស់លេខកូដអាសយដ្ឋាន 7 ប៊ីត ហើយការចុះឈ្មោះខាងក្រោមត្រូវបានអនុវត្តនៅខាងក្នុងម៉ាស៊ីនមីក្រូដំណើរការស៊េរី QingKe V3 ។
តារាង 7-1 បញ្ជីចុះឈ្មោះម៉ូឌុលបំបាត់កំហុស
ឈ្មោះ | ចូលប្រើអាសយដ្ឋាន | ការពិពណ៌នា |
ទិន្នន័យ ១ | 0x04 | ការចុះឈ្មោះទិន្នន័យ 0 អាចត្រូវបានប្រើសម្រាប់ការរក្សាទុកទិន្នន័យបណ្តោះអាសន្ន |
ទិន្នន័យ ១ | 0x05 | ការចុះឈ្មោះទិន្នន័យ 1 អាចត្រូវបានប្រើសម្រាប់ការរក្សាទុកទិន្នន័យបណ្តោះអាសន្ន |
គ្រប់គ្រង | 0x10 | ការចុះឈ្មោះត្រួតពិនិត្យម៉ូឌុលបំបាត់កំហុស |
ស្ថានភាព dm | 0x11 | ការចុះឈ្មោះស្ថានភាពម៉ូឌុលបំបាត់កំហុស |
hartinfo | 0x12 | ការចុះឈ្មោះស្ថានភាពមីក្រូដំណើរការ |
អរូបី | 0x16 | ការចុះឈ្មោះស្ថានភាពពាក្យបញ្ជាអរូបី |
បញ្ជា | 0x17 | ការចុះឈ្មោះពាក្យបញ្ជាអរូបី |
អរូបីស្វ័យប្រវត្តិ | 0x18 | ការប្រតិបត្តិពាក្យបញ្ជាអរូបី |
progbuf0-7 | ១៩៨០-១២៨០x៧២០ | ឃ្លាំងសម្ងាត់ការណែនាំចុះឈ្មោះ 0-7 |
haltsum 0 | 0x40 | ផ្អាកការចុះឈ្មោះស្ថានភាព |
- ម៉ាស៊ីនបំបាត់កំហុសអាចគ្រប់គ្រងការផ្អាក បន្ត កំណត់ឡើងវិញ ល. របស់ microprocessor ដោយកំណត់រចនាសម្ព័ន្ធ decontrol register។ ស្តង់ដារ RISC-V កំណត់បីប្រភេទនៃពាក្យបញ្ជាអរូបី៖ ចុះឈ្មោះចូលដំណើរការ ការចូលប្រើលឿន និងអង្គចងចាំចូលប្រើ។
- QingKe V3A microprocessor គាំទ្រតែការចូលដំណើរការចុះឈ្មោះប៉ុណ្ណោះ ម៉ូដែលផ្សេងទៀតគាំទ្រការចុះឈ្មោះ និងការចូលប្រើអង្គចងចាំ ប៉ុន្តែមិនដំណើរការលឿនទេ។ ការចូលប្រើការចុះឈ្មោះ (GPRs, CSRs) និងការចូលដំណើរការជាបន្តទៅកាន់អង្គចងចាំអាចត្រូវបានដឹងដោយពាក្យបញ្ជាអរូបី។
- ម៉ូឌុលបំបាត់កំហុសអនុវត្តការចុះឈ្មោះឃ្លាំងសម្ងាត់ការណែនាំចំនួន 8 progbuf0-7 ហើយម៉ាស៊ីនបំបាត់កំហុសអាចផ្ទុកការណែនាំជាច្រើន (ដែលអាចត្រូវបានបង្ហាប់ការណែនាំ) ទៅសតិបណ្ដោះអាសន្ន ហើយអាចជ្រើសរើសដើម្បីបន្តប្រតិបត្តិសេចក្តីណែនាំនៅក្នុងបញ្ជីឃ្លាំងសម្ងាត់ការណែនាំ បន្ទាប់ពីប្រតិបត្តិពាក្យបញ្ជាអរូបី ឬប្រតិបត្តិ ការណែនាំក្នុងឃ្លាំងសម្ងាត់ដោយផ្ទាល់។
- ចំណាំ ថាការណែនាំចុងក្រោយនៅក្នុងកម្មវិធីត្រូវតែជាការណែនាំ "ebreak" ឬ "c.ebreak" ។ ការចូលប្រើឧបករណ៍ផ្ទុក គ្រឿងកុំព្យូទ័រជាដើម ក៏អាចធ្វើទៅបានតាមរយៈពាក្យបញ្ជាអរូបី និងការណែនាំដែលបានរក្សាទុកក្នុងកម្មវិធី។
- ការចុះឈ្មោះនីមួយៗត្រូវបានពិពណ៌នាលម្អិតដូចខាងក្រោម។
- ការចុះឈ្មោះទិន្នន័យ 0 (data0)
តារាង 7-2 និយមន័យនៃការចុះឈ្មោះទិន្នន័យ
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:0] | ទិន្នន័យ ១ | RW | ចុះឈ្មោះទិន្នន័យ 0 ប្រើសម្រាប់ការរក្សាទុកទិន្នន័យបណ្តោះអាសន្ន | 0 |
ការចុះឈ្មោះទិន្នន័យ 1 (data1)
តារាង 7-3 និយមន័យទិន្នន័យ 1 ចុះឈ្មោះ
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:0] | ទិន្នន័យ ១ | RW | ចុះឈ្មោះទិន្នន័យ 1 ប្រើសម្រាប់ការរក្សាទុកទិន្នន័យបណ្តោះអាសន្ន | 0 |
ការចុះឈ្មោះត្រួតពិនិត្យម៉ូឌុលបំបាត់កំហុស (ត្រួតពិនិត្យ)
ការចុះឈ្មោះនេះគ្រប់គ្រងការផ្អាក កំណត់ឡើងវិញ និងការបន្តរបស់ microprocessor។ ម៉ាស៊ីនបំបាត់កំហុសសរសេរទិន្នន័យទៅវាលដែលត្រូវគ្នាដើម្បីសម្រេចបាននូវការផ្អាក (haltreq), កំណត់ឡើងវិញ (ndmreset), បន្ត (resumereq) ។ អ្នកពិពណ៌នាដូចខាងក្រោម។
តារាង 7-4 និយមន័យនៃការគ្រប់គ្រងការចុះឈ្មោះ
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
31 | haltreq | WO | 0: ជម្រះសំណើផ្អាក
1: ផ្ញើសំណើផ្អាក |
0 |
30 | ប្រវត្តិរូបសង្ខេប | W1 | ២៖ មិនត្រឹមត្រូវ
1: ស្ដារ microprocessor បច្ចុប្បន្ន ចំណាំ៖ សរសេរលេខ 1 មានសុពលភាព ហើយផ្នែករឹងត្រូវបានសម្អាតបន្ទាប់ពី microprocessor ត្រូវបានសង្គ្រោះ |
0 |
29 | កក់ទុក | RO | កក់ទុក | 0 |
28 | កំណត់ឡើងវិញ | W1 | ២៖ មិនត្រឹមត្រូវ
1: សម្អាតស្ថានភាពប្រមូលផលបន្តិចនៃ microprocessor |
0 |
[27:2] | កក់ទុក | RO | កក់ទុក | 0 |
1 | ndmreset | RW | 0: ជម្រះការកំណត់ឡើងវិញ
1: កំណត់ប្រព័ន្ធទាំងមូលឡើងវិញក្រៅពីម៉ូឌុលបំបាត់កំហុស |
0 |
0 | អសកម្ម | RW | 0: កំណត់ម៉ូឌុលបំបាត់កំហុសឡើងវិញ
1: ម៉ូឌុលបំបាត់កំហុសដំណើរការបានត្រឹមត្រូវ។ |
0 |
ការចុះឈ្មោះស្ថានភាពម៉ូឌុលបំបាត់កំហុស (ស្ថានភាព dm)
- ការចុះឈ្មោះនេះត្រូវបានប្រើដើម្បីបង្ហាញពីស្ថានភាពនៃម៉ូឌុលបំបាត់កំហុស និងជាការចុះឈ្មោះបានតែអានជាមួយនឹងការពិពណ៌នាខាងក្រោមនៃប៊ីតនីមួយៗ។
តុ ០១៤៨៦០៧៤-០០៤ និយមន័យនៃការចុះឈ្មោះ dmstatus
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:20] | កក់ទុក | RO | កក់ទុក | 0 |
19 | កំណត់ទាំងអស់។ | RO | ២៖ មិនត្រឹមត្រូវ
1: កំណត់ឡើងវិញនូវ microprocessor |
0 |
18 | កំណត់ | RO | ២៖ មិនត្រឹមត្រូវ
1: កំណត់ឡើងវិញនូវ microprocessor |
0 |
17 | ប្រវត្តិរូបសង្ខេប | RO | ២៖ មិនត្រឹមត្រូវ
1: កំណត់ឡើងវិញនូវ microprocessor |
0 |
16 | ប្រវត្តិរូបសង្ខេប | RO | ២៖ មិនត្រឹមត្រូវ
1: កំណត់ឡើងវិញនូវ microprocessor |
0 |
[15:14] | កក់ទុក | RO | កក់ទុក | 0 |
13 | alluvial | RO | ២៖ មិនត្រឹមត្រូវ
1: microprocessor មិនអាចប្រើបានទេ។ |
0 |
12 | អត្ថប្រយោជន៍ណាមួយ។ | RO | ២៖ មិនត្រឹមត្រូវ
1: microprocessor មិនអាចប្រើបានទេ។ |
0 |
11 | កំពុងរត់ទាំងអស់។ | RO | ២៖ មិនត្រឹមត្រូវ
1: Microprocessor កំពុងដំណើរការ |
0 |
10 | ការរត់ណាមួយ។ | RO | ២៖ មិនត្រឹមត្រូវ
1: Microprocessor កំពុងដំណើរការ |
0 |
9 | ផ្អាក | RO | ២៖ មិនត្រឹមត្រូវ
1: microprocessor ស្ថិតនៅក្នុងការផ្អាក |
0 |
8 | ផ្អាកណាមួយ។ | RO | ២៖ មិនត្រឹមត្រូវ
1: Microprocessor ចេញពីការផ្អាក |
0 |
7 | បានផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ |
RO |
0៖ ការផ្ទៀងផ្ទាត់ត្រូវបានទាមទារ មុនពេលប្រើម៉ូឌុលបំបាត់កំហុស
1: ម៉ូឌុលបំបាត់កំហុសត្រូវបានបញ្ជាក់ |
0x1 |
[6:4] | កក់ទុក | RO | កក់ទុក | 0 |
[3:0] | កំណែ | RO | ប្រព័ន្ធបំបាត់កំហុសគាំទ្រស្ថាបត្យកម្មកំណែ 0010: V0.13 | 0x2 |
ការចុះឈ្មោះស្ថានភាពមីក្រូដំណើរការ (hartinfo)
ការចុះឈ្មោះនេះត្រូវបានប្រើដើម្បីផ្តល់ព័ត៌មានអំពី microprocessor ទៅកាន់ម៉ាស៊ីនបំបាត់កំហុស និងជាការចុះឈ្មោះបានតែអានជាមួយប៊ីតនីមួយៗដែលបានពិពណ៌នាដូចខាងក្រោម។
តារាង 7-6 និយមន័យចុះឈ្មោះ hartinfo
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:24] | កក់ទុក | RO | កក់ទុក | 0 |
[23:20] | កោស | RO | ចំនួននៃការចុះឈ្មោះកោសត្រូវបានគាំទ្រ | 0x3 |
[19:17] | កក់ទុក | RO | កក់ទុក | 0 |
16 | ការចូលប្រើទិន្នន័យ | RO | 0: ការចុះឈ្មោះទិន្នន័យត្រូវបានគូសផែនទីទៅអាសយដ្ឋាន CSR
1: ការចុះឈ្មោះទិន្នន័យត្រូវបានគូសផែនទីទៅអាសយដ្ឋានអង្គចងចាំ |
0x1 |
[15:12] | ទំហំទិន្នន័យ | RO | ចំនួននៃការចុះឈ្មោះទិន្នន័យ | 0x2 |
[11:0] | បន្ថែមទិន្នន័យ |
RO |
អាសយដ្ឋានអុហ្វសិតនៃទិន្នន័យចុះឈ្មោះទិន្នន័យ 0,
អាស័យដ្ឋានមូលដ្ឋានរបស់វាគឺ 0xe0000000 ដែលត្រូវអានជាក់លាក់។ |
0xXXX |
ការគ្រប់គ្រងពាក្យបញ្ជាសង្ខេប និងចុះបញ្ជីស្ថានភាព (អរូបី)
ការចុះឈ្មោះនេះត្រូវបានប្រើដើម្បីចង្អុលបង្ហាញការប្រតិបត្តិនៃពាក្យបញ្ជាអរូបី។ ម៉ាស៊ីនបំបាត់កំហុសអាចអានការចុះឈ្មោះនេះដើម្បីដឹងថាតើពាក្យបញ្ជាអរូបីចុងក្រោយត្រូវបានប្រតិបត្តិឬអត់ ហើយអាចពិនិត្យមើលថាតើកំហុសត្រូវបានបង្កើតកំឡុងពេលប្រតិបត្តិពាក្យបញ្ជា abstract និងប្រភេទនៃកំហុសដែលត្រូវបានពិពណ៌នាលម្អិតដូចខាងក្រោម។
តារាង 7-7 អរូបីចុះឈ្មោះនិយមន័យ
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:29] | កក់ទុក | RO | កក់ទុក | 0 |
[28:24] | progbufsize | RO | ចង្អុលបង្ហាញចំនួនកម្មវិធីសតិបណ្ដោះអាសន្នកម្មវិធី
ការចុះឈ្មោះឃ្លាំងសម្ងាត់ |
0x8 |
[23:13] | កក់ទុក | RO | កក់ទុក | 0 |
12 | រវល់ | RO | 0: គ្មានពាក្យបញ្ជាអរូបីកំពុងដំណើរការទេ។
1: មានពាក្យបញ្ជាអរូបីដែលកំពុងត្រូវបានប្រតិបត្តិ ចំណាំ៖ បន្ទាប់ពីប្រតិបត្តិរួច Hardware ត្រូវបានជម្រះ។ |
0 |
11 | កក់ទុក | RO | កក់ទុក | 0 |
[10:8] | cmder | RW | កំហុសពាក្យបញ្ជាអរូបីប្រភេទ 000៖ គ្មានកំហុស
001: ការប្រតិបត្តិពាក្យបញ្ជាអរូបីដើម្បីសរសេរទៅពាក្យបញ្ជា សង្ខេប ការចុះឈ្មោះដោយស្វ័យប្រវត្តិ អរូបី ឬអាន និងសរសេរទៅកាន់ទិន្នន័យ និងការចុះឈ្មោះ progbuf 010: មិនគាំទ្រពាក្យបញ្ជាអរូបីបច្ចុប្បន្ន 011: ការប្រតិបត្តិពាក្យបញ្ជាអរូបីដោយមានករណីលើកលែង 100: microprocessor មិនត្រូវបានផ្អាក ឬមិនអាចប្រើបាន ហើយមិនអាចប្រតិបត្តិពាក្យបញ្ជា abstract 101: Bus error 110: parity bit error កំឡុងពេលទំនាក់ទំនង 111: កំហុសផ្សេងទៀត។ ចំណាំ៖ សម្រាប់ការសរសេរប៊ីត 1 ត្រូវបានប្រើដើម្បីជម្រះសូន្យ។ |
0 |
[7:4] | កក់ទុក | RO | កក់ទុក | 0 |
[3:0] | ការបញ្ចុះតម្លៃ | RO | ចំនួននៃការចុះឈ្មោះទិន្នន័យ | 0x2 |
- ម៉ាស៊ីនបំបាត់កំហុសអាចចូលប្រើ GPRs ការចុះឈ្មោះ CSR និងអង្គចងចាំដោយសរសេរតម្លៃកំណត់រចនាសម្ព័ន្ធផ្សេងគ្នាទៅក្នុងបញ្ជីពាក្យបញ្ជាអរូបី។
- នៅពេលចូលប្រើការចុះឈ្មោះ ប៊ីតចុះឈ្មោះពាក្យបញ្ជាត្រូវបានកំណត់ដូចខាងក្រោម។
- តារាង 7-8 និយមន័យនៃពាក្យបញ្ជាចុះឈ្មោះនៅពេលចូលប្រើការចុះឈ្មោះ
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:24] | ប្រភេទ cmd | WO | ប្រភេទពាក្យបញ្ជាអរូបី 0: ចុះឈ្មោះចូលប្រើ;
1: ការចូលប្រើរហ័ស (មិនគាំទ្រ); 2: ការចូលប្រើអង្គចងចាំ។ |
0 |
23 | កក់ទុក | WO | កក់ទុក | 0 |
[22:20] | aarsize | WO | ការចូលដំណើរការទិន្នន័យប៊ីតទទឹង 000: 8 ប៊ីត
001: 16 ប៊ីត 010: 32 ប៊ីត |
0 |
011: 64 ប៊ីត (មិនគាំទ្រ) 100: 128 ប៊ីត (មិនគាំទ្រ)
ចំណាំ៖ នៅពេលចូលប្រើការចុះឈ្មោះបណ្តែតទឹក។ FPRs មានតែការចូលប្រើ 32 ប៊ីតប៉ុណ្ណោះដែលត្រូវបានគាំទ្រ។ |
||||
19 | aarpostincrement | WO | 0: គ្មានផលប៉ះពាល់
1: បង្កើនតម្លៃ regno ដោយស្វ័យប្រវត្តិបន្ទាប់ពីចូលប្រើការចុះឈ្មោះ |
0 |
18 | ប្រកាស exec | WO | 0: គ្មានផលប៉ះពាល់
1: ប្រតិបត្តិពាក្យបញ្ជា abstract ហើយបន្ទាប់មកប្រតិបត្តិពាក្យបញ្ជាក្នុង progbuf |
0 |
17 | ផ្ទេរ | WO | 0: កុំប្រតិបត្តិប្រតិបត្តិការដែលបានបញ្ជាក់ដោយសរសេរ
1: អនុវត្តឧបាយកលដែលបានបញ្ជាក់ដោយការសរសេរ |
0 |
16 | សរសេរ | WO | 0: ចម្លងទិន្នន័យពីចុះឈ្មោះដែលបានបញ្ជាក់ទៅ data0 1: ចម្លងទិន្នន័យពី data0 register ទៅចុះឈ្មោះដែលបានបញ្ជាក់ |
0 |
[15:0] | regno | WO | បញ្ជាក់ការចុះឈ្មោះចូលប្រើប្រាស់ 0x0000-0x0ffff គឺជា CSRs 0x1000-0x101f គឺជា GPRs |
0 |
នៅពេលចូលប្រើអង្គចងចាំ ប៊ីតក្នុងបញ្ជីពាក្យបញ្ជាត្រូវបានកំណត់ដូចខាងក្រោម។
តារាង 7-9 និយមន័យនៃពាក្យបញ្ជា ចុះឈ្មោះនៅពេលចូលប្រើអង្គចងចាំ
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:24] | ប្រភេទ cmd | WO | ប្រភេទពាក្យបញ្ជាអរូបី 0: ចុះឈ្មោះចូលប្រើ;
1: ការចូលប្រើលឿន (មិនគាំទ្រ); 2: ចូលប្រើអង្គចងចាំ។ |
0 |
23 | aamvirtual | WO | 0: ចូលប្រើអាសយដ្ឋានរូបវន្ត;
1: ចូលប្រើអាសយដ្ឋាននិម្មិត។ |
0 |
[22:20] | ទំហំដៃ | WO | ចូលប្រើទិន្នន័យអង្គចងចាំ ទទឹងប៊ីត 000: 8 ប៊ីត;
001: 16 ប៊ីត; 010: 32 ប៊ីត; 011: 64 ប៊ីត (មិនគាំទ្រ); 100: 128 ប៊ីត (មិនគាំទ្រ); |
0 |
19 | aampostincrement | WO | 0: គ្មានឥទ្ធិពល;
1: បន្ទាប់ពីចូលប្រើអង្គចងចាំដោយជោគជ័យ បង្កើនអាសយដ្ឋានដែលរក្សាទុកក្នុង data1 ចុះឈ្មោះដោយចំនួនបៃដែលត្រូវគ្នានឹងទទឹងប៊ីតដែលកំណត់ដោយទំហំដៃ។ Aamsize=0, ចូលប្រើដោយបៃ, data1 បូក 1 ។ Aamsize=1 ចូលប្រើដោយពាក់កណ្តាលពាក្យ data1 បូក 2. aamsize=2 ចូលប្រើដោយប៊ីត data1 បូក 4 ។ |
0 |
18 | ប្រកាស exec | WO | 0: គ្មានឥទ្ធិពល;
1: ប្រតិបត្តិពាក្យបញ្ជានៅក្នុង progbuf បន្ទាប់ពីប្រតិបត្តិពាក្យបញ្ជា abstract ។ |
0 |
17 | កក់ទុក | RO | កក់ទុក | 0 |
16 |
សរសេរ |
WO |
0: អានទិន្នន័យពីអាសយដ្ឋានដែលបានបញ្ជាក់ដោយ data1 ទៅ data0
១៖ សរសេរទិន្នន័យក្នុង data1 ទៅកាន់អាសយដ្ឋានដែលបានបញ្ជាក់ដោយ ទិន្នន័យ ១. |
0 |
[15:14] |
គោលដៅជាក់លាក់ |
WO |
និយមន័យនៃរបៀបអាន និងសរសេរ សរសេរ៖
00, 01: សរសេរដោយផ្ទាល់ទៅអង្គចងចាំ; 10: បន្ទាប់ពីទិន្នន័យនៅក្នុង data0 គឺ OR ជាមួយនឹងប៊ីតទិន្នន័យនៅក្នុងអង្គចងចាំ លទ្ធផលត្រូវបានសរសេរទៅក្នុងអង្គចងចាំ (មានតែការចូលប្រើពាក្យប៉ុណ្ណោះដែលត្រូវបានគាំទ្រ)។ 11: បន្ទាប់ពីបូកសរុបទិន្នន័យក្នុង data0 ជាមួយនឹងប៊ីតទិន្នន័យក្នុង memory សូមសរសេរលទ្ធផលទៅក្នុង memory (មានតែការចូលប្រើពាក្យប៉ុណ្ណោះដែលត្រូវបានគាំទ្រ)។ អាន៖ ០០, ០១, ១០, ១១៖ អាន ០ ដោយផ្ទាល់ពីអង្គចងចាំ។ |
0 |
[13:0] | កក់ទុក | RO | កក់ទុក |
ពាក្យបញ្ជា Abstract ចុះឈ្មោះប្រតិបត្តិដោយស្វ័យប្រវត្តិ (abstract auto)
ការចុះឈ្មោះនេះត្រូវបានប្រើដើម្បីកំណត់រចនាសម្ព័ន្ធម៉ូឌុលបំបាត់កំហុស។ នៅពេលអាន និងសរសេរ progbufx និងទិន្នន័យនៃម៉ូឌុលបំបាត់កំហុស ពាក្យបញ្ជាអរូបីអាចត្រូវបានប្រតិបត្តិម្តងទៀត។
ការពិពណ៌នានៃការចុះឈ្មោះនេះមានដូចខាងក្រោម៖
តារាង 7-10 និយមន័យការចុះឈ្មោះស្វ័យប្រវត្តិអរូបី
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:16] | autoexecprogbuf | RW | ប្រសិនបើប៊ីតត្រូវបានកំណត់ ការអាន និងការសរសេរដែលត្រូវគ្នានៃ progbufx នឹងធ្វើឱ្យពាក្យបញ្ជាអរូបីនៅក្នុងបញ្ជីពាក្យបញ្ជាត្រូវបានប្រតិបត្តិម្តងទៀត។
ចំណាំ៖ ស៊េរី V3 ត្រូវបានរចនាឡើងជាមួយនឹង 8 progbufs, ដែលត្រូវគ្នានឹងប៊ីត [23:16] ។ |
0 |
[15:12] | កក់ទុក | RO | កក់ទុក | 0 |
[11:0] | autoexecdata |
RW |
ប្រសិនបើប៊ីតត្រូវបានកំណត់ទៅ 1 ការអាន និងការសរសេរដែលត្រូវគ្នានៃការចុះឈ្មោះទិន្នន័យនឹងធ្វើឱ្យពាក្យបញ្ជាអរូបីនៅក្នុងបញ្ជីពាក្យបញ្ជាត្រូវបានប្រតិបត្តិម្តងទៀត។
ចំណាំ៖ ស៊េរី V3 ត្រូវបានរចនាឡើងដោយមានទិន្នន័យពីរ ចុះឈ្មោះ, ដែលត្រូវគ្នាទៅនឹងប៊ីត [1:0] ។ |
0 |
ការចុះឈ្មោះឃ្លាំងសម្ងាត់ការណែនាំ (progbufx)
ការចុះឈ្មោះនេះត្រូវបានប្រើដើម្បីរក្សាទុកការណែនាំណាមួយ ហើយដាក់ពង្រាយប្រតិបត្តិការដែលត្រូវគ្នា រួមទាំង 8 ដែលត្រូវយកចិត្តទុកដាក់លើការប្រតិបត្តិចុងក្រោយដែលត្រូវការ "បំបែក" ឬ "c.ebreak" ។
តារាង 7-11 និយមន័យចុះឈ្មោះ progbuf
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:0] | ប្រូកប៊ុហ្វ | RW | ការអ៊ិនកូដការណែនាំសម្រាប់ប្រតិបត្តិការឃ្លាំងសម្ងាត់
អាចរួមបញ្ចូលការណែនាំអំពីការបង្ហាប់ |
0 |
ផ្អាកការចុះឈ្មោះស្ថានភាព (haltsum0)
ការចុះឈ្មោះនេះត្រូវបានប្រើដើម្បីចង្អុលបង្ហាញថាតើ microprocessor ត្រូវបានផ្អាកឬអត់។ ប៊ីតនីមួយៗបង្ហាញពីស្ថានភាពផ្អាករបស់ microprocessor ហើយនៅពេលដែលមានស្នូលតែមួយ មានតែប៊ីតទាបបំផុតនៃការចុះឈ្មោះនេះប៉ុណ្ណោះដែលត្រូវបានប្រើដើម្បីបង្ហាញវា។
តារាង 7-12 និយមន័យចុះឈ្មោះ haltsum0
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:1] | កក់ទុក | RO | កក់ទុក | 0 |
0 | haltsum 0 | RO | 0: Microprocessor ដំណើរការធម្មតា។
1: Microprocessor ឈប់ |
0 |
- បន្ថែមពីលើការចុះឈ្មោះដែលបានរៀបរាប់ខាងលើនៃម៉ូឌុលបំបាត់កំហុស មុខងារបំបាត់កំហុសក៏ពាក់ព័ន្ធនឹងការចុះឈ្មោះ CSR មួយចំនួនផងដែរ ជាចម្បង ការគ្រប់គ្រងការបំបាត់កំហុស និងចុះឈ្មោះស្ថានភាព dcsr និងទ្រនិចការណែនាំបំបាត់កំហុស dpc ដែលត្រូវបានពិពណ៌នាលម្អិតដូចខាងក្រោម។
- ការគ្រប់គ្រងការបំបាត់កំហុស និងការចុះឈ្មោះស្ថានភាព (dcsr)
តារាង 7-13 និយមន័យនៃការចុះឈ្មោះ dcsr
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:28] | xdebugver | DRO | 0000៖ ការបំបាត់កំហុសខាងក្រៅមិនត្រូវបានគាំទ្រ 0100៖ គាំទ្រការកែកំហុសខាងក្រៅស្តង់ដារ
1111៖ ការបំបាត់កំហុសខាងក្រៅត្រូវបានគាំទ្រ ប៉ុន្តែមិនឆ្លើយតបទេ។ ការបញ្ជាក់ |
0x4 |
[27:16] | កក់ទុក | DRO | កក់ទុក | 0 |
15 | សម្រាក | DRW | 0៖ ពាក្យបញ្ជាបំបែកក្នុងរបៀបម៉ាស៊ីនដំណើរការដូចដែលបានពិពណ៌នាក្នុងសិទ្ធិ file
1: ពាក្យបញ្ជាបំបែកនៅក្នុងរបៀបម៉ាស៊ីនអាចបញ្ចូលរបៀបបំបាត់កំហុស |
0 |
[14:13] | កក់ទុក | DRO | កក់ទុក | 0 |
12 | ការបែកបាក់ |
DRW |
0៖ ពាក្យបញ្ជាបំបែកក្នុងទម្រង់អ្នកប្រើមានឥរិយាបទដូចដែលបានពិពណ៌នាក្នុងសិទ្ធិ file
1: ពាក្យបញ្ជាបំបែកនៅក្នុងរបៀបអ្នកប្រើអាចបញ្ចូលរបៀបបំបាត់កំហុស |
0 |
11 | ជំហាន | DRW | 0៖ ការរំខានត្រូវបានបិទក្រោមការកែកំហុសតែមួយជំហាន
1: បើកការរំខាននៅក្រោមការបំបាត់កំហុសតែមួយជំហាន |
0 |
10 | កក់ទុក | DRO | កក់ទុក | 0 |
9 | ពេលវេលាឈប់ | DRW | 0៖ កម្មវិធីកំណត់ម៉ោងប្រព័ន្ធដំណើរការក្នុងរបៀបបំបាត់កំហុស
1៖ កម្មវិធីកំណត់ម៉ោងប្រព័ន្ធឈប់នៅក្នុងរបៀបបំបាត់កំហុស |
0 |
[8:6] | មូលហេតុ | DRO | ហេតុផលសម្រាប់ការបញ្ចូលការបំបាត់កំហុស
001: បញ្ចូលការបំបាត់កំហុសក្នុងទម្រង់ពាក្យបញ្ជាបំបែក (អាទិភាពទី 3) 010: បញ្ចូលការកែកំហុសក្នុងទម្រង់នៃម៉ូឌុលកេះ (អាទិភាពទី 4 ខ្ពស់បំផុត) ០១១៖ បញ្ចូលការកែកំហុសក្នុងទម្រង់នៃសំណើផ្អាក (អាទិភាពទី១) 100: ការបំបាត់កំហុសក្នុងទម្រង់នៃការបំបាត់កំហុសតែមួយជំហាន (អាទិភាព 0 ទាបបំផុត) |
0 |
101: បញ្ចូលរបៀបបំបាត់កំហុសដោយផ្ទាល់បន្ទាប់ពី microprocessor កំណត់ឡើងវិញ (អាទិភាពទី 2) ផ្សេងទៀត៖ បានបម្រុងទុក | ||||
[5:3] | កក់ទុក | DRO | កក់ទុក | 0 |
2 | ជំហាន | DRW | 0៖ បិទការកែកំហុសមួយជំហាន
1: បើកដំណើរការបំបាត់កំហុសតែមួយជំហាន |
0 |
[1:0] | មុន | DRW | របៀបឯកសិទ្ធិ 00៖ របៀបអ្នកប្រើប្រាស់
01: របៀបអ្នកគ្រប់គ្រង (មិនគាំទ្រ) 10: បម្រុងទុក 11: របៀបម៉ាស៊ីន ចំណាំ៖ កត់ត្រារបៀបដែលមានសិទ្ធិ ពេលចូលរបៀបបំបាត់កំហុស អ្នកបំបាត់កំហុសអាចកែប្រែតម្លៃនេះ ដើម្បីកែប្រែរបៀបដែលមានសិទ្ធិ ពេលចេញពីការបំបាត់កំហុស |
0 |
ទ្រនិចកម្មវិធីរបៀបបំបាត់កំហុស (DPC)
- ការចុះឈ្មោះនេះត្រូវបានប្រើដើម្បីរក្សាទុកអាសយដ្ឋាននៃការណែនាំបន្ទាប់ដែលត្រូវប្រតិបត្តិបន្ទាប់ពី microprocessor ចូលទៅក្នុងរបៀបបំបាត់កំហុស ហើយតម្លៃរបស់វាត្រូវបានធ្វើបច្ចុប្បន្នភាពជាមួយនឹងច្បាប់ផ្សេងៗគ្នាអាស្រ័យលើហេតុផលសម្រាប់ការបញ្ចូលការបំបាត់កំហុស។ ការចុះឈ្មោះ dpc ត្រូវបានពិពណ៌នាលម្អិតដូចខាងក្រោម។
តារាង 7-14 និយមន័យចុះឈ្មោះ dpc
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:0] | DPC | DRW | អាសយដ្ឋានណែនាំ | 0 |
ច្បាប់សម្រាប់ធ្វើបច្ចុប្បន្នភាពការចុះឈ្មោះត្រូវបានបង្ហាញនៅក្នុងតារាងខាងក្រោម។
តារាង 7-15 ច្បាប់ធ្វើបច្ចុប្បន្នភាព dpc
បញ្ចូលវិធីសាស្ត្របំបាត់កំហុស | ច្បាប់ធ្វើបច្ចុប្បន្នភាព dpc |
សម្រាក | អាសយដ្ឋាននៃការណែនាំ Ebreak |
ជំហានតែមួយ | អាសយដ្ឋានការណែនាំនៃការណែនាំបន្ទាប់នៃការណែនាំបច្ចុប្បន្ន |
ម៉ូឌុលកេះ | មិនបានគាំទ្រជាបណ្ដោះអាសន្ន |
ការស្នើសុំបញ្ឈប់ | អាសយដ្ឋាននៃការណែនាំបន្ទាប់ដែលត្រូវប្រតិបត្តិនៅពេលបញ្ចូល Debug |
ចំណុចប្រទាក់បំបាត់កំហុស
- ខុសពីស្តង់ដារ JTAG ចំណុចប្រទាក់ដែលកំណត់ដោយ RISC-V, QingKe V3 series microprocessor ទទួលយក 1- ចំណុចប្រទាក់បំបាត់កំហុសសៀរៀលខ្សែ/ 2-wire និងធ្វើតាម WCH debug interface protocol V1.0.
- ចំណុចប្រទាក់បំបាត់កំហុសគឺទទួលខុសត្រូវចំពោះការទំនាក់ទំនងរវាងម៉ាស៊ីនបំបាត់កំហុស និងម៉ូឌុលបំបាត់កំហុស ហើយដឹងពីប្រតិបត្តិការអាន/សរសេររបស់ម៉ាស៊ីនបំបាត់កំហុសទៅកាន់ការចុះឈ្មោះម៉ូឌុលបំបាត់កំហុស។
- WCH បានរចនា WCH_Link និងប្រភពបើកចំហ គ្រោងការណ៍ និងកម្មវិធីគោលពីររបស់វា។ files ដែលអាចត្រូវបានប្រើសម្រាប់ការបំបាត់កំហុស microprocessors ទាំងអស់នៃស្ថាបត្យកម្ម RISC-V ។
- សូមមើល WCH Debug Protocol Manual សម្រាប់ពិធីការចំណុចប្រទាក់បំបាត់កំហុសជាក់លាក់។
បញ្ជីចុះឈ្មោះ CSR
- ស្ថាបត្យកម្ម RISC-V កំណត់ចំនួន Control and Status Registers (CSRs) សម្រាប់គ្រប់គ្រង និងកត់ត្រាស្ថានភាពប្រតិបត្តិការរបស់ microprocessor។
- CSRs មួយចំនួនត្រូវបានណែនាំនៅក្នុងផ្នែកមុន ហើយជំពូកនេះនឹងរៀបរាប់លម្អិតអំពីការចុះបញ្ជី CSR ដែលបានអនុវត្តនៅក្នុង QingKe V3 series microprocessors។
បញ្ជីចុះឈ្មោះ CSR
តារាងទី 8-1 បញ្ជីឈ្មោះ Microprocessor CSR
ប្រភេទ | ឈ្មោះ | CSR អាស័យដ្ឋាន | ការចូលប្រើ | ការពិពណ៌នា |
RISC-V
ស្តង់ដារ CSR |
marchid | 0xF12 | MRO | ការចុះឈ្មោះលេខស្ថាបត្យកម្ម |
ស្លន់ស្លោ | 0xF13 | MRO | ការចុះឈ្មោះលេខរៀងការអនុវត្តផ្នែករឹង | |
mstatus | 0x300 | MRW | ចុះឈ្មោះស្ថានភាព | |
មីសា | 0x301 | MRW | ការចុះឈ្មោះសំណុំការណែនាំផ្នែករឹង | |
mtvec | 0x305 | MRW | ការចុះឈ្មោះអាសយដ្ឋានមូលដ្ឋានករណីលើកលែង | |
mscratch | 0x340 | MRW | របៀបម៉ាស៊ីន stagក្នុងការចុះឈ្មោះ | |
MEPC | 0x341 | MRW | ការចុះឈ្មោះទ្រនិចកម្មវិធីលើកលែង | |
mcause | 0x342 | MRW | ករណីលើកលែងសម្រាប់ការចុះឈ្មោះ | |
mtval | 0x343 | MRW | ការចុះឈ្មោះតម្លៃករណីលើកលែង | |
pmpcfg | 0x3A0+i | MRW | ការចុះឈ្មោះការកំណត់រចនាសម្ព័ន្ធ PMP | |
pmpaddr | 0x3B0+i | MRW | ការចុះឈ្មោះអាសយដ្ឋាន PMP | |
ជ្រើសរើស | 0x7A0 | MRW | ការចុះឈ្មោះការជ្រើសរើសកេះបំបាត់កំហុស | |
tdata1 | 0x7A1 | MRW | ការចុះឈ្មោះទិន្នន័យកេះបំបាត់កំហុស 1 | |
tdata2 | 0x7A2 | MRW | ការចុះឈ្មោះទិន្នន័យកេះបំបាត់កំហុស 2 | |
dcsr | 0x7B0 | DRW | ការគ្រប់គ្រងការបំបាត់កំហុស និងការចុះឈ្មោះស្ថានភាព | |
ឌីភីស៊ី | 0x7B1 | DRW | ការចុះឈ្មោះទ្រនិចកម្មវិធីរបៀបបំបាត់កំហុស | |
dscratch0 | 0x7B2 | DRW | របៀបបំបាត់កំហុស stagចុះឈ្មោះ ០ | |
dscratch1 | 0x7B3 | DRW | របៀបបំបាត់កំហុស stagចុះឈ្មោះ ០ | |
អ្នកលក់បានកំណត់ CSR |
gintenr | 0x800 | URW | ការរំខានជាសកលបើកការចុះឈ្មោះ |
intsyscr | 0x804 | URW | រំខានការចុះឈ្មោះគ្រប់គ្រងប្រព័ន្ធ | |
Corecfgr | 0xBC0 | MRW | ការចុះឈ្មោះកំណត់រចនាសម្ព័ន្ធមីក្រូដំណើរការ | |
inestcr | 0xBC1 | MRW | រំខានការចុះឈ្មោះត្រួតពិនិត្យដែលបានបង្កប់ |
ការចុះឈ្មោះ CSR ស្តង់ដារ RISC-V
- ការចុះឈ្មោះលេខស្ថាបត្យកម្ម (marchid)
- ការចុះឈ្មោះនេះគឺជាការចុះឈ្មោះបានតែអានប៉ុណ្ណោះ ដើម្បីបង្ហាញលេខស្ថាបត្យកម្មផ្នែករឹងរបស់ microprocessor បច្ចុប្បន្ន ដែលភាគច្រើនមានកូដអ្នកលក់ កូដស្ថាបត្យកម្ម កូដស៊េរី និងកូដកំណែ។ ពួកគេម្នាក់ៗត្រូវបានកំណត់ដូចខាងក្រោម។
តារាង 8-2 និយមន័យនៃការចុះឈ្មោះ marchid
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
31 | កក់ទុក | MRO | កក់ទុក | 1 |
[30:26] | អ្នកលក់0 | MRO | លេខកូដអ្នកផលិត 0
បានជួសជុលអក្សរ "W" កូដ |
0x17 |
[25:21] | អ្នកលក់1 | MRO | លេខកូដអ្នកផលិត 1
បានជួសជុលអក្សរ "C" |
0x03 |
[20:16] | អ្នកលក់2 | MRO | លេខកូដអ្នកផលិត 2
បានជួសជុលអក្សរ "H" កូដ |
0x08 |
15 | កក់ទុក | MRO | កក់ទុក | 1 |
[14:10] | Arch | MRO | កូដស្ថាបត្យកម្ម | 0x16 |
ស្ថាបត្យកម្ម RISC-V ត្រូវបានជួសជុលទៅនឹងអក្សរ “V” កូដ | ||||
[9:5] | សៀរៀល | MRO | លេខកូដស៊េរី
ស៊េរី QingKe V3 ជួសជុលទៅលេខ "3" |
0x03 |
[4:0] | កំណែ | MRO | កូដកំណែ
អាចជាកំណែ "A", "B", "C" និងអក្សរផ្សេងទៀតនៃកូដ |
x |
លេខក្រុមហ៊ុនផលិត និងលេខកំណែជាអក្សរក្រម ហើយលេខស៊េរីគឺជាលេខ។ តារាងសរសេរកូដនៃអក្សរត្រូវបានបង្ហាញក្នុងតារាងខាងក្រោម។
តារាងទី 8-3 តារាងគូសវាសអក្ខរក្រម
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
- ក្នុងចំនោមពួកគេ មីក្រូដំណើរការ QingKe V3A ចុះឈ្មោះអានត្រឡប់ទៅ 0 ។
ការចុះបញ្ជីលេខរៀងការអនុវត្តផ្នែករឹង (កម្រិត)
- ការចុះឈ្មោះនេះត្រូវបានផ្សំឡើងជាចម្បងនៃកូដអ្នកលក់ ដែលនីមួយៗត្រូវបានកំណត់ដូចខាងក្រោម។
តារាងទី 8-4 និយមន័យនៃការចុះឈ្មោះមិនច្បាស់លាស់
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
31 | កក់ទុក | MRO | កក់ទុក | 1 |
[30:26] | អ្នកលក់0 | MRO | លេខកូដអ្នកផលិត 0
បានជួសជុលអក្សរ "W" កូដ |
0x17 |
[25:21] | អ្នកលក់1 | MRO | លេខកូដអ្នកផលិត 1
បានជួសជុលអក្សរ "C" |
0x03 |
[20:16] | អ្នកលក់2 | MRO | លេខកូដអ្នកផលិត 2
បានជួសជុលអក្សរ "H" កូដ |
0x08 |
15 | កក់ទុក | MRO | កក់ទុក | 1 |
[14:8] | កក់ទុក | MRO | កក់ទុក | 0 |
[7:4] | អនីតិជន | MRO | លេខបង្វែរ | 0xX |
[3:0] | មេ | MR0 | លេខកំណែសំខាន់ | 0xX |
- ការចុះឈ្មោះនេះអាចអានបាននៅក្នុងការអនុវត្តម៉ាស៊ីនណាមួយ ហើយនៅក្នុងប្រព័ន្ធដំណើរការស៊េរី QingKe V3A ការចុះឈ្មោះនេះអានត្រឡប់ទៅសូន្យវិញ។
ការចុះឈ្មោះស្ថានភាពម៉ាស៊ីន (mstatus)
- ការចុះឈ្មោះនេះត្រូវបានពិពណ៌នាដោយផ្នែកនៅក្នុងផ្នែកមុន ហើយមនុស្សរបស់វាត្រូវបានដាក់ដូចខាងក្រោម។
តារាង 8-5 mstatus register និយមន័យ
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:13] | កក់ទុក | MRO | កក់ទុក | 0 |
[12:11] | MPP | MRW | របៀបដែលមានសិទ្ធិមុនពេលចូលសម្រាក | 0 |
[10:8] | កក់ទុក | MRO | កក់ទុក | 0 |
7 | MPIE | MRW | រំខាន បើកស្ថានភាព មុនពេលបញ្ចូលការរំខាន | 0 |
[6:4] | កក់ទុក | MRO | កក់ទុក | 0 |
3 | MIE | MRW | របៀបម៉ាស៊ីនរំខានបើកដំណើរការ | 0 |
[2:0] | កក់ទុក | MRO | កក់ទុក | 0 |
- វាល MPP ត្រូវបានប្រើដើម្បីរក្សាទុករបៀបដែលមានសិទ្ធិមុនពេលចូលទៅក្នុងការលើកលែង ឬរំខាន ហើយត្រូវបានប្រើដើម្បីស្ដារមុខងារដែលមានសិទ្ធិបន្ទាប់ពីចេញពីការលើកលែង ឬរំខាន។ MIE គឺជាប៊ីតបើកការរំខានជាសកល ហើយនៅពេលបញ្ចូលករណីលើកលែង ឬរំខាន តម្លៃនៃ MPIE ត្រូវបានធ្វើបច្ចុប្បន្នភាពទៅតម្លៃនៃ MIE ហើយវាគួរតែត្រូវបានកត់សម្គាល់ថានៅក្នុងមីក្រូដំណើរការស៊េរី QingKe V3 MIE នឹងមិនត្រូវបានធ្វើបច្ចុប្បន្នភាពទៅ 0 មុនពេល កម្រិតចុងក្រោយនៃការរំខាន nested ដើម្បីធានាថាការរំខាននៅក្នុងរបៀបម៉ាស៊ីននៅតែបន្តត្រូវបានប្រតិបត្តិ។ នៅពេលដែលការលើកលែង ឬការរំខានត្រូវបានចាកចេញ នោះ microprocessor ត្រឡប់ទៅរបៀបម៉ាស៊ីនដែលរក្សាទុកដោយ MPP ហើយ MIE ត្រូវបានស្ដារទៅតម្លៃ MPIE ។
- QingKe V3 microprocessor គាំទ្ររបៀបម៉ាស៊ីន និងរបៀបអ្នកប្រើប្រាស់ ប្រសិនបើអ្នកត្រូវការធ្វើឱ្យ microprocessor ដំណើរការតែក្នុងរបៀបម៉ាស៊ីន អ្នកអាចកំណត់ MPP ទៅ 0x3 ក្នុងការចាប់ផ្តើមនៃការចាប់ផ្ដើម។ fileនោះគឺបន្ទាប់ពីត្រលប់មកវិញ វានឹងនៅតែស្ថិតក្នុងរបៀបម៉ាស៊ីនជានិច្ច។
ការចុះឈ្មោះសំណុំការណែនាំផ្នែករឹង (misa)
- ការចុះឈ្មោះនេះត្រូវបានប្រើដើម្បីបង្ហាញពីស្ថាបត្យកម្មរបស់ microprocessor និងផ្នែកបន្ថែមនៃការណែនាំដែលបានគាំទ្រ ដែលនីមួយៗត្រូវបានពិពណ៌នាដូចខាងក្រោម។
តារាង 8-6 និយមន័យនៃការចុះឈ្មោះ misa
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:30] | MXL | MRO | ប្រវែងពាក្យម៉ាស៊ីន 1:32
១៦:៩ ១៦:៩ |
1 |
[29:26] | កក់ទុក | MRO | កក់ទុក | 0 |
[25:0] | ផ្នែកបន្ថែម | MRO | ផ្នែកបន្ថែមនៃការណែនាំ | x |
- MXL ត្រូវបានប្រើដើម្បីចង្អុលបង្ហាញប្រវែងពាក្យរបស់ microprocessor QingKe V3 គឺជា microprocessors 32-bit ហើយដែនត្រូវបានជួសជុលទៅ 1 ។
- ផ្នែកបន្ថែមត្រូវបានប្រើដើម្បីបង្ហាញថា microprocessor គាំទ្រព័ត៌មានលម្អិតនៃសំណុំការណែនាំ ដែលនីមួយៗបង្ហាញពីថ្នាក់នៃផ្នែកបន្ថែម ការពិពណ៌នាលម្អិតរបស់វាត្រូវបានបង្ហាញក្នុងតារាងខាងក្រោម។
តារាងទី 8-7 សេចក្តីណែនាំកំណត់ព័ត៌មានលម្អិតបន្ថែម
ប៊ីត | ឈ្មោះ | ការពិពណ៌នា |
0 | A | ការពង្រីកអាតូមិច |
1 | B | រក្សាទុកជាបណ្តោះអាសន្នសម្រាប់ផ្នែកបន្ថែម Bit-Manipulation |
2 | C | ផ្នែកបន្ថែមដែលបានបង្ហាប់ |
3 | D | ការពង្រីកចំណុចអណ្តែតទឹកដែលមានភាពជាក់លាក់ទ្វេដង |
4 | E | RV32E មូលដ្ឋាន ISA |
5 | F | ការពង្រីកចំណុចអណ្តែតទឹកភាពជាក់លាក់តែមួយ |
6 | G | ផ្នែកបន្ថែមស្តង់ដារបន្ថែមមានវត្តមាន |
7 | H | ផ្នែកបន្ថែម Hypervisor |
8 | I | RV32I/64I/128I មូលដ្ឋាន ISA |
9 | J | រក្សាទុកជាបណ្តោះអាសន្នសម្រាប់ផ្នែកបន្ថែមភាសាដែលបានបកប្រែថាមវន្ត |
10 | K | កក់ទុក |
11 | L | រក្សាទុកជាបណ្ដោះអាសន្នសម្រាប់ផ្នែកបន្ថែមចំណុចអណ្តែតទសភាគ |
12 | M | ផ្នែកបន្ថែមចំនួនគត់គុណ/ចែក |
13 | N | ការរំខានកម្រិតអ្នកប្រើប្រាស់ត្រូវបានគាំទ្រ |
14 | O | កក់ទុក |
15 | P | រក្សាទុកជាបណ្តោះអាសន្នសម្រាប់ផ្នែកបន្ថែម Packed-SIMD |
16 | Q | ការបន្ថែមចំណុចអណ្តែតទឹកភាពជាក់លាក់ចំនួនបួន |
17 | R | កក់ទុក |
18 | S | របៀបអ្នកគ្រប់គ្រងត្រូវបានអនុវត្ត |
19 | T | រក្សាទុកជាបណ្តោះអាសន្នសម្រាប់ផ្នែកបន្ថែមអង្គចងចាំប្រតិបត្តិការ |
20 | U | របៀបអ្នកប្រើប្រាស់បានអនុវត្ត |
21 | V | រក្សាទុកជាបណ្តោះអាសន្នសម្រាប់ផ្នែកបន្ថែមវ៉ិចទ័រ |
22 | W | កក់ទុក |
23 | X | ផ្នែកបន្ថែមមិនស្តង់ដារមានវត្តមាន |
24 | Y | កក់ទុក |
25 | Z | កក់ទុក |
- សម្រាប់អតីតample សម្រាប់ microprocessor QingKe V3A តម្លៃចុះឈ្មោះគឺ 0x401001105 ដែលមានន័យថាស្ថាបត្យកម្មសំណុំការណែនាំដែលគាំទ្រគឺ RV32IMAC ហើយវាមានការអនុវត្តន៍របៀបអ្នកប្រើប្រាស់។
ការចុះឈ្មោះអាសយដ្ឋានមូលដ្ឋានករណីលើកលែងរបៀបម៉ាស៊ីន (mtvec)
- ការចុះឈ្មោះនេះត្រូវបានប្រើដើម្បីរក្សាទុកអាសយដ្ឋានមូលដ្ឋាននៃករណីលើកលែង ឬឧបករណ៍ដោះស្រាយការរំខាន ហើយប៊ីតពីរខាងក្រោមត្រូវបានប្រើដើម្បីកំណត់រចនាសម្ព័ន្ធរបៀប និងវិធីកំណត់អត្តសញ្ញាណនៃតារាងវ៉ិចទ័រ ដូចដែលបានពិពណ៌នានៅក្នុងផ្នែក 3.2 ។
របៀបម៉ាស៊ីន stagការចុះឈ្មោះ (mscratch)
តារាង 8-8 និយមន័យនៃការចុះឈ្មោះ mscratch
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:0] | mscratch | MRW | ការផ្ទុកទិន្នន័យ | 0 |
ការចុះឈ្មោះនេះគឺជាការចុះឈ្មោះ 32 ប៊ីតដែលអាចអានបាន និងអាចសរសេរបាននៅក្នុងរបៀបម៉ាស៊ីនសម្រាប់ការរក្សាទុកទិន្នន័យបណ្តោះអាសន្ន។ សម្រាប់អតីតample នៅពេលបញ្ចូលករណីលើកលែង ឬឧបករណ៍ដោះស្រាយការរំខាន ទ្រនិចជង់អ្នកប្រើប្រាស់ SP ត្រូវបានរក្សាទុកក្នុងបញ្ជីនេះ ហើយទ្រនិចជង់រំខានត្រូវបានផ្តល់ទៅឱ្យចុះឈ្មោះ SP ។ បន្ទាប់ពីចាកចេញពីករណីលើកលែង ឬការរំខាន សូមស្ដារតម្លៃរបស់អ្នកប្រើជង់ទ្រនិច SP ពីទទេ។ នោះគឺ ជង់រំខាន និងជង់អ្នកប្រើប្រាស់អាចដាច់ដោយឡែកបាន។
ការលើកលែងកម្មវិធីរបៀបម៉ាស៊ីន ការចុះឈ្មោះទ្រនិច (ផែនទី)
តារាង 8-9 និយមន័យចុះឈ្មោះ mepc
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:0] | mepc | MRW | សូចនាករនីតិវិធីលើកលែង | 0 |
- ការចុះឈ្មោះនេះត្រូវបានប្រើដើម្បីរក្សាទុកទ្រនិចកម្មវិធីនៅពេលបញ្ចូលករណីលើកលែង ឬរំខាន។
- វាត្រូវបានប្រើដើម្បីរក្សាទុកទ្រនិច PC ការណែនាំ មុនពេលបញ្ចូលករណីលើកលែង នៅពេលដែលការលើកលែង ឬការរំខានត្រូវបានបង្កើត ហើយ mepc ត្រូវបានប្រើជាអាសយដ្ឋានត្រឡប់មកវិញ នៅពេលដែលការលើកលែង ឬការរំខានត្រូវបានគ្រប់គ្រង និងប្រើសម្រាប់ការលើកលែង ឬរំខានការត្រឡប់មកវិញ។
- ទោះជាយ៉ាងណាក៏ដោយវាជាការសំខាន់ក្នុងការកត់សម្គាល់វា។
- នៅពេលករណីលើកលែងកើតឡើង mepc ត្រូវបានធ្វើបច្ចុប្បន្នភាពទៅតម្លៃកុំព្យូទ័រនៃការណែនាំដែលកំពុងបង្កើតករណីលើកលែង។
- នៅពេលមានការរំខានកើតឡើង mepc ត្រូវបានធ្វើបច្ចុប្បន្នភាពទៅតម្លៃកុំព្យូទ័រនៃការណែនាំបន្ទាប់។
- នៅពេលដែលអ្នកត្រូវការត្រឡប់ករណីលើកលែង បន្ទាប់ពីដំណើរការករណីលើកលែង អ្នកគួរតែយកចិត្តទុកដាក់លើការកែប្រែតម្លៃនៃ mepc ហើយព័ត៌មានលម្អិតបន្ថែមអាចរកបាននៅក្នុងជំពូកទី 2 ករណីលើកលែង។
ការលើកលែងចំពោះរបៀបម៉ាស៊ីនបណ្តាលឱ្យចុះឈ្មោះ (mcause)
តារាង 8-10 mcause និយមន័យចុះឈ្មោះ
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
31 | រំខាន | MRW | វាលចង្អុលបង្ហាញការរំខាន 0: ករណីលើកលែង
1: ការរំខាន |
0 |
[30:0] | លេខកូដលើកលែង | MRW | សម្រាប់លេខកូដលើកលែង សូមមើលតារាង 2-1 សម្រាប់ព័ត៌មានលម្អិត | 0 |
- ការចុះឈ្មោះនេះត្រូវបានប្រើជាចម្បងដើម្បីរក្សាទុកមូលហេតុនៃករណីលើកលែង ឬលេខរំខាននៃការរំខាន។ ប៊ីតខ្ពស់បំផុតរបស់វាគឺវាល Interrupt ដែលត្រូវបានប្រើដើម្បីចង្អុលបង្ហាញថាតើការកើតឡើងបច្ចុប្បន្នគឺជាករណីលើកលែង ឬការរំខាន។
- ប៊ីតទាបគឺជាកូដលើកលែង ដែលត្រូវបានប្រើដើម្បីបង្ហាញពីមូលហេតុជាក់លាក់។ ព័ត៌មានលម្អិតរបស់វាអាចត្រូវបានរកឃើញនៅក្នុងជំពូកទី 2 ករណីលើកលែង។
ការចុះឈ្មោះតម្លៃករណីលើកលែងរបៀបម៉ាស៊ីន (mtval)
តារាង 8-11 និយមន័យនៃការចុះឈ្មោះ mtval
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:0] | mtval | MRW | តម្លៃលើកលែង | 0 |
- ការចុះឈ្មោះនេះត្រូវបានប្រើដើម្បីរក្សាតម្លៃដែលបណ្តាលឱ្យមានការលើកលែងនៅពេលដែលមានករណីលើកលែងកើតឡើង។ សម្រាប់ព័ត៌មានលម្អិតដូចជាតម្លៃ និងពេលវេលានៃការផ្ទុករបស់វា សូមមើលជំពូកទី 2 ករណីលើកលែង។
ការចុះឈ្មោះការកំណត់រចនាសម្ព័ន្ធ PMP (pmpcfg
- ការចុះឈ្មោះនេះត្រូវបានប្រើជាចម្បងដើម្បីកំណត់រចនាសម្ព័ន្ធអង្គចងចាំរាងកាយ ហើយរាល់ 8 ប៊ីតនៃការចុះឈ្មោះនេះត្រូវបានប្រើដើម្បីកំណត់រចនាសម្ព័ន្ធការការពារតំបន់មួយ។ សូមមើលជំពូកទី 4 សម្រាប់និយមន័យលម្អិត។
ការចុះឈ្មោះអាសយដ្ឋាន PMP (pmpaddr
- ការចុះឈ្មោះនេះត្រូវបានប្រើជាចម្បងសម្រាប់ការកំណត់រចនាសម្ព័ន្ធអាសយដ្ឋាននៃអង្គភាពការពារអង្គចងចាំរូបវន្ត ដែលអ៊ិនកូដ 32 ប៊ីតខាងលើនៃអាសយដ្ឋានរូបវន្ត 34 ប៊ីត។ សូមមើលជំពូកទី 4 សម្រាប់វិធីសាស្ត្រកំណត់រចនាសម្ព័ន្ធជាក់លាក់។
ការចុះឈ្មោះទ្រនិចកម្មវិធីរបៀបបំបាត់កំហុស (DPC)
- ការចុះឈ្មោះនេះត្រូវបានប្រើដើម្បីរក្សាទុកអាសយដ្ឋាននៃការណែនាំបន្ទាប់ដែលត្រូវប្រតិបត្តិបន្ទាប់ពី microprocessor ចូល
- របៀបបំបាត់កំហុស និងតម្លៃរបស់វាត្រូវបានអាប់ដេតជាមួយនឹងច្បាប់ផ្សេងៗគ្នា អាស្រ័យលើហេតុផលសម្រាប់ការបញ្ចូលកំហុស។ សូមមើលផ្នែកទី 6.1 សម្រាប់ការពិពណ៌នាលម្អិត។
កេះបំបាត់កំហុស ជ្រើសរើសចុះឈ្មោះ (ជ្រើសរើស)
- វាមានសុពលភាពសម្រាប់តែមីក្រូដំណើរការដែលគាំទ្រចំណុចបំបែកផ្នែករឹង និងគាំទ្រចំណុចឈប់ 4-channel ច្រើនបំផុត ហើយ 2 ប៊ីតទាបរបស់វាមានសុពលភាព។
- នៅពេលកំណត់រចនាសម្ព័ន្ធចំណុចបំបែកឆានែលនីមួយៗ អ្នកត្រូវជ្រើសរើសឆានែលដែលត្រូវគ្នាតាមរយៈការចុះឈ្មោះនេះមុនពេលកំណត់រចនាសម្ព័ន្ធ។
តារាង 8-12 ជ្រើសរើសនិយមន័យចុះឈ្មោះ
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:2] | កក់ទុក | MRO | កក់ទុក | 0 |
[1:0] |
ជ្រើសរើស |
MRW |
ការចុះឈ្មោះជ្រើសរើសប៉ុស្តិ៍បំបែកត្រូវបានកំណត់រចនាសម្ព័ន្ធ ពោលគឺបន្ទាប់ពីជ្រើសរើសប៉ុស្តិ៍ដែលត្រូវគ្នា ការចុះឈ្មោះ tdata1 និង tdata2 អាចដំណើរការដើម្បីកំណត់រចនាសម្ព័ន្ធចំណុចឈប់
ព័ត៌មាន។ |
X |
ការចុះឈ្មោះទិន្នន័យកេះបំបាត់កំហុស 1(tdata1)
វាមានសុពលភាពសម្រាប់តែមីក្រូដំណើរការដែលគាំទ្រចំណុចបំបែកផ្នែករឹងប៉ុណ្ណោះ។ Microprocessors គាំទ្រតែអាសយដ្ឋានការណែនាំ និងចំណុចបំបែកអាសយដ្ឋានទិន្នន័យ ដែលប្រភេទប៊ីតនៃការចុះឈ្មោះ tdata1 គឺជាតម្លៃថេរនៃ 2 ហើយប៊ីតផ្សេងទៀតអនុលោមតាមនិយមន័យនៃការគ្រប់គ្រងនៅក្នុងស្តង់ដារបំបាត់កំហុស។
តារាង 8-13 tdata1 និយមន័យចុះឈ្មោះ
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:28] | ប្រភេទ | MRO | និយមន័យប្រភេទចំណុចបំបែក ប្រភេទវត្ថុបញ្ជា។ | 0x2 |
27 |
DMODE |
MRO |
0: ការចុះឈ្មោះដែលពាក់ព័ន្ធនៃ flip-flop អាចត្រូវបានកែប្រែទាំងនៅក្នុងរបៀបម៉ាស៊ីន និងរបៀបបំបាត់កំហុស។
1: មានតែរបៀបបំបាត់កំហុសប៉ុណ្ណោះដែលអាចកែប្រែការចុះឈ្មោះដែលពាក់ព័ន្ធនៃ flip-flop ។ |
1 |
[26:21] |
MASKMAX |
MRO |
នៅពេល MATCH=1 ជួរថាមពលអិចស្ប៉ូណង់ស្យែលអតិបរមានៃការផ្គូផ្គងត្រូវបានអនុញ្ញាត នោះគឺជាជួរនៃការផ្គូផ្គងអតិបរមាដែលអាចអនុញ្ញាតបានគឺ 231 បៃ។ |
0x1F |
[20:13] | កក់ទុក | MRO | កក់ទុក | 0 |
12 |
សកម្មភាព |
MRW |
កំណត់របៀបដំណើរការនៅពេលកេះចំណុចឈប់៖
0: នៅពេលកេះ សូមបញ្ចូលចំណុចឈប់ ហើយហៅការរំខានមកវិញ។ 1: បញ្ចូលរបៀបបំបាត់កំហុស នៅពេលកេះ។ |
0 |
[11:8] | កក់ទុក | MRO | កក់ទុក | 0 |
7 |
ការប្រកួត |
MRW |
ការកំណត់រចនាសម្ព័ន្ធគោលការណ៍ដែលត្រូវគ្នា៖
0: ផ្គូផ្គងនៅពេលដែលតម្លៃកេះគឺស្មើនឹង TDATA2; 1: តម្លៃកេះត្រូវគ្នានឹង m bit ខ្ពស់នៃ TDATA2 ដែល m = 31–n ហើយ n គឺជា 0 quote ដំបូងនៃ TDATA2 (ចាប់ផ្តើមពីប៊ីតទាប)។ |
0 |
6 |
M |
MRW |
បើក Flip-flop នៅក្នុងរបៀប M៖
0: បិទគន្លឹះក្នុងរបៀប M; 1: បើកគន្លឹះក្នុងរបៀប M ។ |
0 |
[5:4] | កក់ទុក | MRO | កក់ទុក | 0 |
3 |
U |
MRW |
បើកដំណើរការកេះនៅក្នុងរបៀប U៖
0: បិទគន្លឹះក្នុងរបៀប U; 1: បើកគន្លឹះក្នុងរបៀប U ។ |
0 |
2 |
ប្រតិបត្តិ |
MRW |
បានបើកដំណើរការកេះអាសយដ្ឋានអានការណែនាំ៖ 0: បិទ;
1: បើក។ |
0 |
1 |
ហាង |
MRW |
បានបើកដំណើរការកេះអាសយដ្ឋានសរសេរទិន្នន័យ៖ 0: បិទ;
1: បើក។ |
0 |
0 |
ផ្ទុក |
MRW |
បានបើកដំណើរការកេះអាសយដ្ឋានអានទិន្នន័យ៖ 0: បិទ;
1: បើក។ |
0 |
ការចុះឈ្មោះទិន្នន័យកេះបំបាត់កំហុស 2(tdata2)
វាមានសុពលភាពសម្រាប់តែមីក្រូដំណើរការដែលគាំទ្រចំណុចបំបែកផ្នែករឹង និងត្រូវបានប្រើដើម្បីរក្សាទុកតម្លៃដែលត្រូវគ្នានៃគន្លឹះ។
តារាង 8-14 tdata2 និយមន័យចុះឈ្មោះ
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:0] | TDATA ២ | MRW | ប្រើដើម្បីរក្សាទុកតម្លៃដែលត្រូវគ្នា។ | X |
ការគ្រប់គ្រងការបំបាត់កំហុស និងការចុះឈ្មោះស្ថានភាព (dcsr)
ការចុះឈ្មោះនេះត្រូវបានប្រើដើម្បីគ្រប់គ្រង និងកត់ត្រាស្ថានភាពដែលកំពុងដំណើរការនៃរបៀបបំបាត់កំហុស។ សូមមើលផ្នែក 7.1 សម្រាប់ព័ត៌មានលម្អិត។
ទ្រនិចកម្មវិធីរបៀបបំបាត់កំហុស (DPC)
ការចុះឈ្មោះនេះត្រូវបានប្រើដើម្បីរក្សាទុកអាសយដ្ឋាននៃការណែនាំបន្ទាប់ដែលត្រូវប្រតិបត្តិបន្ទាប់ពី microprocessor ចូលទៅក្នុងរបៀបបំបាត់កំហុស តម្លៃរបស់វាខុសគ្នាទៅតាមហេតុផលសម្រាប់ការចូលទៅក្នុងរបៀបបំបាត់កំហុស ហើយច្បាប់ធ្វើបច្ចុប្បន្នភាពក៏ខុសគ្នាដែរ។ សូមមើលផ្នែកទី 7.1 សម្រាប់ការពិពណ៌នាលម្អិត។
របៀបបំបាត់កំហុស stagការចុះឈ្មោះ (dscratch0-1)
ក្រុមនៃការចុះឈ្មោះនេះត្រូវបានប្រើសម្រាប់ការរក្សាទុកទិន្នន័យបណ្តោះអាសន្ននៅក្នុងរបៀបបំបាត់កំហុស។
តារាង 8-15 និយមន័យចុះឈ្មោះ dscratch0-1
ប៊ីត | ឈ្មោះ | ការចូលប្រើ | ការពិពណ៌នា | កំណត់តម្លៃឡើងវិញ |
[31:0] | dscratch | DRW | ទិន្នន័យរបៀបបំបាត់កំហុស stagតម្លៃ | 0 |
ការចុះឈ្មោះ CSR ដែលកំណត់ដោយអ្នកប្រើប្រាស់
របៀបអ្នកប្រើជាសកលរំខានបើកការចុះឈ្មោះ (gintenr)
- ការចុះឈ្មោះនេះត្រូវបានប្រើដើម្បីគ្រប់គ្រងការបើក និងរបាំងនៃការរំខានជាសកល។ ការបើក និងរបាំងនៃការរំខានជាសកលនៅក្នុងរបៀបម៉ាស៊ីនអាចត្រូវបានគ្រប់គ្រងដោយប៊ីត MIE និង MPIE នៅក្នុងស្ថានភាព ប៉ុន្តែការចុះឈ្មោះនេះមិនអាចដំណើរការក្នុងទម្រង់អ្នកប្រើប្រាស់បានទេ។
- ខណៈពេលដែលការរំខានជាសកលអនុញ្ញាតឱ្យចុះឈ្មោះ gintenr គឺជាការគូសផែនទីនៃ MIE និង MPIE នៅក្នុងស្ថានភាព។
- នៅក្នុងរបៀបអ្នកប្រើប្រាស់ ចេតនាអាចត្រូវបានប្រើដើម្បីកំណត់ និងសម្អាត MIE និង MPIE ដូចដែលបានពិពណ៌នានៅក្នុងផ្នែកទី 3.2 សម្រាប់ព័ត៌មានលម្អិត។
ចំណាំ
- ការរំខានជាសកលមិនរាប់បញ្ចូលការរំខានដែលមិនបានបិទបាំង NMI និងការលើកលែងនោះទេ។
ការចុះឈ្មោះត្រួតពិនិត្យប្រព័ន្ធរំខាន (intsyscr)
ការចុះឈ្មោះនេះត្រូវបានប្រើជាចម្បងដើម្បីកំណត់រចនាសម្ព័ន្ធជម្រៅនៃការរំខាន ការចុចជង់ផ្នែករឹង និងមុខងារពាក់ព័ន្ធផ្សេងទៀត ដូចដែលបានពិពណ៌នានៅក្នុងផ្នែក 3.2 សម្រាប់ព័ត៌មានលម្អិត។
ការចុះឈ្មោះកំណត់រចនាសម្ព័ន្ធមីក្រូដំណើរការ (corecfgr)
ការចុះឈ្មោះនេះត្រូវបានប្រើដើម្បីគ្រប់គ្រងថាតើការរំខាន NMI ត្រូវបានអនុញ្ញាតបន្ទាប់ពីការរំខានលើសចំណុះ និងថាតើសំណើរអាក់រអួលត្រូវបានសម្អាតនៅពេលដែលការណែនាំអំពីរបងត្រូវបានប្រតិបត្តិ។ សូមមើលផ្នែក 3.2 សម្រាប់និយមន័យជាក់លាក់។
រំខានការចុះបញ្ជីត្រួតពិនិត្យដែលបានបង្កប់ (inestcr)
ការចុះឈ្មោះនេះត្រូវបានប្រើដើម្បីបង្ហាញពីស្ថានភាពសំបុកដែលរំខាន និងថាតើវាហៀរឬអត់ និងដើម្បីគ្រប់គ្រងកម្រិតសំបុកអតិបរមា។ សូមមើលផ្នែក 3.2 សម្រាប់និយមន័យជាក់លាក់។
ឯកសារ/ធនធាន
![]() |
មីក្រូដំណើរការ WH V3 [pdf] សៀវភៅណែនាំអ្នកប្រើប្រាស់ មីក្រូដំណើរការ V3, V3, មីក្រូដំណើរការ |