Technology sharing

Principia fundamentalia NEMU DifTest

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


Hoc articulum pertinet to"RISC-V Instruction Set Differential Test (DiffTest) Series Tutorials"I, alia vasa grata inspicias.

1 Brevis descriptio principii DifTest

Core idea DiffTest: Duas exsecutiones in eadem specificatione, datis eisdem definitis input, eorum mores consentaneum esse debent.
Revertere ad consilium processus, pro duabus exsecutionibus secundum riscv manualibus, eadem recta ratione datis, status eorum mutationes (registers, memoria) congruere debent pro duabus exsecutionibus;

  • Ex quibus unus est noster CPU;
  • Vel, elige simulatorem ut referat exsecutionem.
    Insert imaginem descriptionis hic
    Quoties utraque pars instructionem exsequens perficiat, status sui cuiusque registri et memoriam reprimunt. Si status incongruum inveniunt, errorem statim nuntiant ac exsecutionem clientium programmatis finiunt (equivalent to making an assert judgment for quaeque institutio).
  • DiffTest = Online imperium-gradu modus verificationis modus
    • Online = Quin dum currit progressio
    • Instructio gradu = omnis instructio fit verificatur
  • Quodlibet propositum converti potest in institutionis-gradu probat et asserere statum
    • Suscipe programmata quae finem non habebunt, ut OS
  • Non opus est cognoscere exitum procedendi in antecessum
    • Quia comparamus mores institutionis exsecutionis, non semanticae institutionis

Maximus usus diffTest are:Cum decoding vel exsecutio cimices fiunt post cursus centena vel milia instructionum, quomodo cito primum errorem invenimus?

In hoc articulo, haec quae sequuntur ad exemplum illustrandum eligimus:

  • QEMU ut relatio obiecti (REF)
  • NEMU in re test (DUT)

Utique, si opus est tentare processus ferramenta, etiam processus adhiberi potest pro Diff.

2 DifTest adiuvari NEMU

make menuconfig
  • 1

Ingredere Testimonia et Debugging -> Admitte differentialem probationem -> Reference consilium, ut sequitur:

Insert imaginem descriptionis hic
Cum NEMU ponitur pro DUT, simulator modos 5 eligere potes ut referat simulator REF.

  • QEMU, modus bibliothecae dynamicae, signum in NEMU/tools/qemu-dl-diff/ situm est.
  • QEMU, Socket modus, signum in NEMU/tools/qemu-socket-diff/ situm est.
  • KVM, signum in NEMU/tools/kvm-diff/ situm est.
  • NEMU
  • SPICA

In tribus posterioribus, auctor nullam specialem inquisitionem non fecit, ideo hic articulus eas non introducet.

3 QEMU facit REF (dynamic bibliotheca modus)

NEMU mutare potes/tools/qemu-di-diff/, compilavit in dynamica bibliotheca riscv64-qemu-so.
Relationes inter NEMU, bibliothecas dynamicas et QEMU:
Insert imaginem descriptionis hic

  • Bibliotheca dynamica: riscv64-qemu-ita, quae exportat difftest_xx seriei functionum interfaces.
  • QEMU: In documento exsecutabili qemu-riscv64, cpu_xx, gdb_xx et qemu_xx interfaces functiones sunt.
  • NEMU: De riscv64-nemu-interpretis programmata bibliothecam dynamicam vocat, quam postea QEMU vocat.

processus specifica:

  • NEMU programmata exsecutabilis riscv64-nemu-interpretor onera riscv64-qemu-ita munus dlopen appellando, et difftest_xx seriei functionis symbola pro subsequentium vocat partium explicant.
  • Deinde, NEMU munus vocat munus initiale.
  • In functione difftest_init, munus dlopenum iterum vocabitur ut lima exsecutabile qemu systema-riscv64 oneratum et seriem functionum cpu_xx, gdb_xx et qemu_xx designent .
  • Ex fasciculo qemu-systema-riscv64, munus parsed principale munus est, et tunc munus difftest_init vocabit illud ut programmata qemu committitur.
  • Deinde, si omnia sunt communia, munus vocare potes qemu ad instructionem consequitur comparandam.

IV QEMU ad REF (Socket modus)

NEMU mutare potes/tools/qemu-socket-diss/, compilavit in dynamica bibliotheca riscv64-qemu-so.
Relationes inter NEMU, bibliothecas dynamicas et QEMU:
Insert imaginem descriptionis hic

  • Bibliotheca dynamica: riscv64-qemu-ita, quae exportat difftest_xx seriei functionum interfaces.
  • QEMU: Qemu-systema-riscv64 fasciculus exsecutabilis cpu_xx et gdb_xx seriem functionis interfacies habet.
  • NEMU: Programma riscv64-nemu-interpretor bibliothecam dynamicam vocat. Bibliotheca dynamica mandati fasciculum per nervum mittit.

processus specifica:

  • NEMU programmata exsecutabilis riscv64-nemu-interpretor onera riscv64-qemu-ita munus dlopen appellando, et difftest_xx seriei functionis symbola pro subsequentium vocat partium explicant.
  • Deinde, NEMU munus vocat munus initiale.
  • In functione difftest_init, puer processus furca () exibit et QEMU vocando munus execlum inceperit;
  • Deinde, si omnia normalia sunt, mandatum consequi potes per nervum.

Documenta relatio: