Release laysim-GR740 v1.0 after completing the verification test

laysim-GR740 v1.0 Quad Core Processor Emulator

I am proud to release laysim-GR740 v1.0 after completing the verification test of laysim-GR740.

laysim-GR740 emulates GR740 quad core processor (silicon revision 0) with GR740 GRLIB devices. laysim-GR740 consists of two types of emulators: laysim-gr740 and 
laysim-gr740-dbt

laysim-gr740 is a graphic user interface (GUI)-based and cycle-accurate emulator for  GR740 quad core processor based on interpretation method. It includes an embedded source-level debugger and supports MMU for Linux-SMP, XtratuM-SMP and AIR/GMV. 

laysim-gr740-dbt is a GUI-based high-performance and cycle-approximate processor emulator with dynamic binary translation method. 

Both laysim-gr740 and laysim-gr740-dbt support Windows and Linux x64 platform including CentOS 7/8, Ubuntu 18.04 and Debian 10.3. Also two types of CLI (Command Line Interface) version, laysim-gr740-cli and laysim-gr740-dbt-cli, are provided especially for RTEMS5 testsuites. These versions have command line interfaces without a GUI, so the performance of CLI version shows higher than the GUI version of laysim-GR740.

▪ LEON4 quad core processor (0x01:0x048) with 250MHz clock
    - Quad LEON4 with MMU and GRFPU
    - 16KB 4-way instruction cache and 16KB 4-way data cache and 2MB Level-2 cache 
      only for laysim-gr740
    - laysim-gr740 supports the bus contention and inter-processor effects
    - Supported GRLIB devices of GR740
       ▷ IRQAMP (0x01:0x00D), APBUART (0x01:0x00C), MMCTRL (0x01:0x05D)
       ▷ GPTIMER (0x01:0x011), GR1553B (0x01:0x04D, BC-only), GRCLKGATE (0x01:0x02C)
       ▷ GRGPIO (0x01:0x01A), GRSPW2 (0x01:0x029), GRSPWROUTER (0x01:0x08B)
       ▷ FTMCTRL (0x01:0x054), L2CACHE (0x01:0x4B), GRCAN (0x01:0x03D)
       ▷ GRETH_GBIT (0x01:0x01D), AHBSTAT (0x01:0x052)
    - Unsupported GRLIB devices of GR740
       ▷ GRIOMMU (0x01:0x04F), MEMSCRUB (0x01:0x057), GRPCI2 (0x01:0x07C)
       ▷ GRSPWTDP (0x01:0x097), L4STAT (0x01:0x047), SPICTRL (0x01:0x02D)
       ▷ GRIOMMU and GRPCI2 will be supported later
    - Memory
       ▷ 8MB MRAM and 128MB SDRAM


Features of laysim-GR740

1. Support Quad Core Emulation of GR740 (silicon revision 0)

laysim-GR740 can run RTEMS 5.1 SMP applications.

a) Run smp08 of RTEMS 5.1 on laysim-gr740


b) Run smp08 of RTEMS 5.1 on laysim-gr740-dbt


▶ laysim-GR740 can run Linux SMP.

a) Run Linux 4.9 on laysim-gr740-mmu


b) Run Linux 4.9 on laysim-gr740-dbt-mmu


▶ laysim-GR740 can run XtratuM SMP applications.

a) Run XtratuM SMP application on laysim-gr740-mmu


b) Run XtratuM SMP application on laysim-gr740-dbt-mmu


▶ laysim-GR740 can run AIR from GMV applications.

a) Run AIR/RTEMS5 application on laysim-gr740-mmu


b) Run AIR/RTEMS5 application on laysim-gr740-dbt-mmu



2. Support Device Models of GR740

laysim-GR740 supports various GRLIB's device models of GR740 including GR1553B, GRCAN, GRSpW Router and more.

▶ laysim-GR740 with GR1553B


▶ laysim-GR740 with GRSpW Router


▶ laysim-GR740 with GRCAN



3. Embedded Source Level Debugger

laysim-gr740 includes the embedded source-level debugger, so it is possible to debug the GR740 SMP applications without GDB.

▶ laysim-gr740 debugging with RCC-1.3.0 rtems-tasks


▶ laysim-gr740-mmu debugging with AIR hello_world

laysim-gr740 supports AIR/GMV hypervisor awareness and debugging multiple partitions of AIR application.




Performance and Cycle Accuracy of laysim-GR740

In general, a processor emulator based on the interpretation method cannot not satisfy the real-time performance of guest CPU when the guest CPU operates at 70MHz or higher. A processor emulator adopting the dynamic binary translation method can achieve its real-time performance to 450 raw MIPS at maximum, so it can meet the real-time performance of single core of GR740 processor which runs at 250MHz. However, a processor emulator based on DBT can never satisfy real-time performance under multi-core environment.

The performance and cycle accuracy of laysim-GR740 were measured on Intel i7-6700K @4.00GHz CentOS 7 64bit (4 cores and 8GB RAM) under VMware Workstation 15 Pro. GRMON v3.2.5 64-bit pro version was used for GR740.

The figure below compares the real-time performance and cycle accuracy of the most representative tests among all tests. 

Only laysim-gr740-dbt outperforms the real-time performance of GR740 on Dhrystone and Stanford. But it cannot meet the real-time performance on Whetstone, because it takes more time to emulate FPU instructions than integer instructions. Its peak performance is 73.01% on RTEMS 5.1 smpatomic01, and its low performance is 27.88% on RTEMS 5.1 smpmutex02 which utilizes almost 100% CPU load with 4 cores and its execution time is more than 5 seconds under the SMP environment.

laysim-gr740 and TSIM3-LEON4 based on the interpretation method could not satisfy the real-time performance of GR740, and they showed very low performance under the SMP environment.

All emulators showed good cycle accuracy in most of the tests, but laysim-gr740-dbt and TSIM3-LEON4 showed somewhat higher inaccuracies in the FPU instructions intensive examples.



A new GR740 processor emulator which adopting the multi-thread framework with DBT is being developed by KARI/FSW team since 2020. However, in the process of development, it is not easy to control each x64 core to synchronize emulated LEON4 core without loosing performance and supporting cycle accuracy. But the development of multi-thread framework with DBT to meet the real-time performance and cycle accuracy under the SMP environment will still continue!

댓글

이 블로그의 인기 게시물

Download laysim-NOELV, laysim-GR740, laysim-GR712RC, and laysim-UT700

laysim Processor Emulator for GR740, GR712RC, UT700 and more..

Release laysim-GR740 for Evaluation