# [Exp] RC_NVM stride test ###### tags: `research-GraphRC` [TOC] ## Objective - To better understand the property of RC_NVM, we designed serveral experiments to observe the behavior of RC_NVM simulator ## Exp1: Memory stride test - We stride the two-dimensional memory space with various size to better understand the underlying hardware. ### Stride Channel (~0) ```bash= 0 R 0x00000000 0 0 1 R 0x00800000 0 0 ``` rb_miss = 1 cyc = 260 / 2 = 130 ### Stride Rank (25) ```bash= 0 R 0x00000000 0 0 1 R 0x40000000 0 0 2 R 0x80000000 0 0 3 R 0xC0000000 0 0 ``` rb_miss = 3 cyc = 310 / 4 = 77.5 ### Stride Bank (17.5) ```bash= 0 R 0x00000000 0 0 1 R 0x01000000 0 0 2 R 0x02000000 0 0 3 R 0x03000000 0 0 4 R 0x04000000 0 0 5 R 0x05000000 0 0 6 R 0x06000000 0 0 7 R 0x07000000 0 0 ``` rb_miss = 7 cyc = 400 / 8 = 50 ### Stride Subarray (48.75) ```bash= 0 R 0x00000000 0 0 1 R 0x08000000 0 0 2 R 0x10000000 0 0 3 R 0x18000000 0 0 4 R 0x20000000 0 0 5 R 0x28000000 0 0 6 R 0x30000000 0 0 7 R 0x38000000 0 0 ``` rb_miss = 7 cyc = 650 / 8 = 81.25 ### Stride Mat ```bash= 0 R 0x00000000 0 0 1 R 0x00000008 0 0 2 R 0x00000010 0 0 ... 1021 R 0x00001FE8 0 0 1022 R 0x00001FF0 0 0 1023 R 0x00001FF8 0 0 ``` rb_hits = 1022 rb_miss = 1 cyc = 20700 / 1024 = 20.21 ### Stride Byte ```bash= 0 R 0x00000000 0 0 1 R 0x00000001 0 0 2 R 0x00000002 0 0 3 R 0x00000003 0 0 4 R 0x00000004 0 0 5 R 0x00000005 0 0 6 R 0x00000006 0 0 7 R 0x00000007 0 0 ``` rb_hits = 6 rb_miss = 1 cyc = 380 / 8 = 47.5 # Exp2 : Stride diff HW level  - Channel : stride size = (1 << 23) = 8 MB - Bank : stride size = (1 << 24) = 16 MB - Subarray : stride size = (1 << 27) = 256 MB - Rank : stride size = (1 << 30) = 1 GB ## Stride 4GB with stride size = 4MB ## Stride Channel (8 MB stride) - Stride address from 0 to 32 MB - command `./build/mem_mount_trace R 8 MB 32 MB` -  ``` 0 R 0x00000000 0 0 1 R 0x00000001 0 0 2 R 0x00000002 0 0 3 R 0x00000003 0 0 4 R 0x00000004 0 0 5 R 0x00000005 0 0 6 R 0x00000006 0 0 7 R 0x00000000 0 0 <- 380 cyc 8 R 0x00800000 0 0 <- 380 cyc +0 9 R 0x01000000 0 0 <- 400 cyc + 20 10 R 0x01800000 0 0 <- 400 cyc ``` ## Stride Bank (16 MB stride) - Stride address from 0 to 160 MB - command `./build/mem_mount_trace R 16 MB 160 MB` -  ``` 0 R 0x00000000 0 0 1 R 0x00000001 0 0 2 R 0x00000002 0 0 3 R 0x00000003 0 0 4 R 0x00000004 0 0 5 R 0x00000005 0 0 6 R 0x00000006 0 0 7 R 0x00000000 0 0 <- 380 cyc 8 R 0x01000000 0 0 <- 400 cyc +20 9 R 0x02000000 0 0 <- 420 cyc + 20 10 R 0x03000000 0 0 <- 445 cyc + 25 11 R 0x04000000 0 0 <- 465 cyc + 20 12 R 0x05000000 0 0 <- 485 cyc + 20 13 R 0x06000000 0 0 <- 505 cyc + 20 14 R 0x07000000 0 0 <- 525 cyc + 25 15 R 0x08000000 0 0 <- 545 cyc + 20 16 R 0x09000000 0 0 <- 565 cyc + 20 ``` ## Stride Subarray (256 MB stride) - Stride address from 0 to 2 GB - command `./build/mem_mount_trace R 256 MB 2 GB` -  ``` 0 R 0x00000000 0 0 1 R 0x00000001 0 0 2 R 0x00000002 0 0 3 R 0x00000003 0 0 4 R 0x00000004 0 0 5 R 0x00000005 0 0 6 R 0x00000006 0 0 7 R 0x00000000 0 0 <- 380 cyc 8 R 0x10000000 0 0 <- 445 cyc +65 9 R 0x20000000 0 0 <- 510 cyc +65 10 R 0x30000000 0 0 <- 575 cyc +65 11 R 0x40000000 0 0 <- 575 cyc +0 12 R 0x50000000 0 0 <- 575 cyc +0 13 R 0x60000000 0 0 <- 575 cyc +0 14 R 0x70000000 0 0 <- 600 cyc +25 ``` ``` 0 R 0x00000000 0 0 1 R 0x00000001 0 0 2 R 0x00000002 0 0 3 R 0x00000003 0 0 4 R 0x00000004 0 0 5 R 0x00000005 0 0 6 R 0x00000006 0 0 7 R 0x00000000 0 0 8 R 0x10000000 0 0 9 R 0x40000000 0 0 10 R 0x30000000 0 0 11 R 0x20000000 0 0 12 R 0x70000000 0 0 13 R 0x60000000 0 0 14 R 0x50000000 0 0 <- 600 cyc ``` ## Stride Rank (1 GB MB stride) - Stride address from 0 to 4 GB - command `./build/mem_mount_trace R 1 GB 4 GB` -  ``` 0 R 0x00000000 0 0 1 R 0x00000001 0 0 2 R 0x00000002 0 0 3 R 0x00000003 0 0 4 R 0x00000004 0 0 5 R 0x00000005 0 0 6 R 0x00000006 0 0 7 R 0x00000000 0 0 <- 380 cyc 8 R 0x40000000 0 0 <- 405 cyc +25 9 R 0x80000000 0 0 <- 430 cyc +25 10 R 0xC0000000 0 0 <- 455 cyc +25 ``` ## All stride size across 4 GB space 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up