Download presentation
Presentation is loading. Please wait.
Published byJulius O’Connor’ Modified over 9 years ago
1
Report1 Sim-profile 을 이용한 LI 벤치마크 과목명 : 컴퓨터 구조 특론 교수님 : 이상정 교수님 팀 원 : 강명숙, 박장수
2
목 차목 차 간단한 C 프로그램 작성하고 컴파일 하여 어셈블리 언어를 생 성하고 Dlite! 디버거를 사용하여 실행. 두 개의 벤치마크 프로그램에 대해 sim-profile 로 시뮬레이션 결과
3
1. 간단한 소스 구구단 #include /* 헤더파일 불러옴 */ void main() /* 메인함수 호출 */ { int a,b; /* 변수 설정 (a- 곱하여질 수 b- 단수 )*/ clrscr(); /* 화면을 깨끗이 정리 */ for(a=1; a<=9; a++) /* 곱하여질수 1 씩 증가시킴 */ { for(b=9;b>=2;b--) /* 단수 9 에서 2 까지 1 씩 감소 */ printf("%dx%d=%-4d",b,a,b*a); /* 한 화면에 나오도록 줄을 맞추며 곱셈 출력 */ printf("\n"); /* 한줄 내려서 맨앞으로 커서이동 */ }
4
1-1. 컴파일 및 어셈블리코드 [pjswise@kop bin]$./sslittle-na-sstrix-gcc -o gogo.ss gogo.c [pjswise@kop bin]$./sslittle-na-sstrix-gcc -S gogo.c
5
1-1. 컴파일 및 어셈블리코드 ( 계속 ) .file 1 "gogo.c" # GNU C 2.6.3 [AL 1.1, MM 40, tma 0.1] SimpleScalar running sstrix compiled by GNU C # Cc1 defaults: # -mgas -mgpOPT # Cc1 arguments (-G value = 8, Cpu = default, ISA = 1): # -quiet -dumpbase -o gcc2_compiled.: __gnu_compiled_c: .rdata .align 2 $LC0: .ascii "%dX%d=%d\t\000" .sdata .align 2
6
1-1. 컴파일 및 어셈블리코드 ( 계속 ) $LC1: .ascii "\n\000" .text .align 2 .globl main .text .loc 1 3 .ent main main: .frame $fp,32,$31 # vars= 8, regs= 2/0, args= 16, extra= 0 .mask 0xc0000000,-4 .fmask 0x00000000,0 subu $sp,$sp,32 sw $31,28($sp) sw $fp,24($sp) move $fp,$sp jal __main li $2,0x00000001 # 1 sw $2,16($fp)
7
1-1. 컴파일 및 어셈블리코드 ( 계속 ) $L2: lw $2,16($fp) slt $3,$2,10 bne $3,$0,$L5 j $L3 $L5: li $2,0x00000002 # 2 sw $2,20($fp) $L6: lw $2,20($fp) slt $3,$2,10 bne $3,$0,$L9 j $L7 $L9: lw $2,20($fp) lw $3,16($fp) mult $2,$3 mflo $2 la $4,$LC0 lw $5,20($fp) lw $6,16($fp) move $7,$2 jal printf
8
1-1. 컴파일 및 어셈블리코드 ( 계속 ) $L8: lw $3,20($fp) addu $2,$3,1 move $3,$2 sw $3,20($fp) j $L6 $L7: la $4,$LC1 jal printf $L4: lw $3,16($fp) addu $2,$3,1 move $3,$2 sw $3,16($fp) j $L2 $L3: $L1: move $sp,$fp # sp not trusted here lw $31,28($sp) lw $fp,24($sp) addu $sp,$sp,32 j $31 .end main
9
1-2. Sim-safe 수행 sim-safe: SimpleScalar/PISA Tool Set version 3.0 of August, 2003. Copyright (c) 1994-2003 by Todd M. Austin, Ph.D. and SimpleScalar, LLC. All Rights Reserved. This version of SimpleScalar is licensed for academic non-commercial use. No portion of this work may be used by any commercial entity, or for any commercial purpose, without the prior written permission of SimpleScalar, LLC (info@simplescalar.com). sim: command line:./sim-safe gogo.ss sim: simulation started @ Mon Apr 26 22:54:00 2004, options follow: sim-safe: This simulator implements a functional simulator. This functional simulator is the simplest, most user-friendly simulator in the simplescalar tool set. Unlike sim-fast, this functional simulator checks for all instruction errors, and the implementation is crafted for clarity rather than speed.
10
1-2. Sim-safe 수행 ( 계속 ) # -config # load configuration from a file # -dumpconfig # dump configuration to a file # -h false # print help message # -v false # verbose operation # -d false # enable debug message # -i false # start in Dlite debugger -seed 1 # random number generator seed (0 for timer seed) # -q false # initialize and terminate immediately # -chkpt # restore EIO trace execution from # -redir:sim # redirect simulator output to file (non-interactive only) # -redir:prog # redirect simulated program output to file -nice 0 # simulator scheduling priority -max:inst 0 # maximum number of inst's to execute sim: ** starting functional simulation ** 2X1=2 3X1=3 4X1=4 5X1=5 6X1=6 7X1=7 8X1=8 9X1=9 2X2=4 3X2=6 4X2=8 5X2=10 6X2=12 7X2=14 8X2=16 9X2=18 2X3=6 3X3=9 4X3=12 5X3=15 6X3=18 7X3=21 8X3=24 9X3=27 2X4=8 3X4=12 4X4=16 5X4=20 6X4=24 7X4=28 8X4=32 9X4=36 2X5=10 3X5=15 4X5=20 5X5=25 6X5=30 7X5=35 8X5=40 9X5=45 2X6=12 3X6=18 4X6=24 5X6=30 6X6=36 7X6=42 8X6=48 9X6=54 2X7=14 3X7=21 4X7=28 5X7=35 6X7=42 7X7=49 8X7=56 9X7=63 2X8=16 3X8=24 4X8=32 5X8=40 6X8=48 7X8=56 8X8=64 9X8=72 2X9=18 3X9=27 4X9=36 5X9=45 6X9=54 7X9=63 8X9=72 9X9=81
11
1-2. Sim-safe 수행 ( 계속 ) sim: ** simulation statistics ** sim_num_insn 155296 # total number of instructions executed sim_num_refs 42980 # total number of loads and stores executed sim_elapsed_time 1 # total simulation time in seconds sim_inst_rate 155296.0000 # simulation speed (in insts/sec) ld_text_base 0x00400000 # program text (code) segment base ld_text_size 70352 # program text (code) size in bytes ld_data_base 0x10000000 # program initialized data segment base ld_data_size 8192 # program init'ed `.data' and uninit'ed `.bss' size in bytes ld_stack_base 0x7fffc000 # program stack segment base (highest address in stack) ld_stack_size 16384 # program initial stack size ld_prog_entry 0x00400140 # program entry point (initial PC) ld_environ_base 0x7fff8000 # program environment base address address ld_target_big_endian 0 # target executable endian-ness, non-zero if big endian mem.page_count 26 # total number of pages allocated mem.page_mem 104k # total size of memory pages allocated mem.ptab_misses 26 # total first level page table misses mem.ptab_accesses 1144886 # total page table accesses mem.ptab_miss_rate 0.0000 # first level page table miss rate
12
1-3. Dlit! 디버거 사용 sim: ** starting functional simulation ** [ 0] 0x00400140: lw r16,0(r29) DLite! > dis main 0x004001f0: addiu r29,r29,-32 0x004001f8: sw r31,28(r29) 0x00400200: sw r30,24(r29) 0x00400208: addu r30,r0,r29 0x00400210: jal 0x4004f8 0x00400218: addiu r2,r0,1 0x00400220: sw r2,16(r30) 0x00400228: lw r2,16(r30) 0x00400230: slti r3,r2,10 0x00400238: bne r3,r0,0x400248 0x00400240: j 0x400328 0x00400248: addiu r2,r0,2 0x00400250: sw r2,20(r30) 0x00400258: lw r2,20(r30) 0x00400260: slti r3,r2,10 0x00400268: bne r3,r0,0x400278 DLite! > break 0x00400218
13
1-2. Dlit! 디버거 사용 ( 계속 ) DLite! > cont Stopping at code breakpoint #1 @ 0x00400218... [ 181] 0x00400218: addiu r2,r0,1 DLite! > iregs PC: 0x00400540 NPC: 0x00400218 HI: 0x00000000 LO: 0x00000000 FCC: 0x00000000 $r0: 0/0x00000000 $r1: 0/0x00000000 $r2: 0/0x00000000 $r3: 2/0x00000002 $r4: 268440024/0x100011d8 $r5: 2147450884/0x7fff8004 $r6: 2147450892/0x7fff800c $r7: 268440016/0x100011d0 $r8: 2130640639/0x7efefeff $r9: 791621423/0x2f2f2f2f $r10: 0/0x00000000 $r11: 0/0x00000000 $r12: 0/0x00000000 $r13: 0/0x00000000 $r14: 0/0x00000000 $r15: 0/0x00000000 $r16: 1/0x00000001 $r17: 2147450884/0x7fff8004 $r18: 2147450892/0x7fff800c $r19: 0/0x00000000 $r20: 0/0x00000000 $r21: 0/0x00000000 $r22: 0/0x00000000 $r23: 0/0x00000000 $r24: 0/0x00000000 $r25: 0/0x00000000 $r26: 0/0x00000000 $r27: 0/0x00000000 $r28: 268473680/0x10009550 $r29: 2147450824/0x7fff7fc8 $r30: 2147450824/0x7fff7fc8 $r31: 4194840/0x00400218
14
1-2. Dlit! 디버거 사용 ( 계속 ) DLite! > step [ 182] 0x00400220: sw r2,16(r30) DLite! > iregs PC: 0x00400218 NPC: 0x00400220 HI: 0x00000000 LO: 0x00000000 FCC: 0x00000000 $r0: 0/0x00000000 $r1: 0/0x00000000 $r2: 1/0x00000001 $r3: 2/0x00000002 $r4: 268440024/0x100011d8 $r5: 2147450884/0x7fff8004 $r6: 2147450892/0x7fff800c $r7: 268440016/0x100011d0 $r8: 2130640639/0x7efefeff $r9: 791621423/0x2f2f2f2f $r10: 0/0x00000000 $r11: 0/0x00000000 $r12: 0/0x00000000 $r13: 0/0x00000000 $r14: 0/0x00000000 $r15: 0/0x00000000 $r16: 1/0x00000001 $r17: 2147450884/0x7fff8004 $r18: 2147450892/0x7fff800c $r19: 0/0x00000000 $r20: 0/0x00000000 $r21: 0/0x00000000 $r22: 0/0x00000000 $r23: 0/0x00000000 $r24: 0/0x00000000 $r25: 0/0x00000000 $r26: 0/0x00000000 $r27: 0/0x00000000 $r28: 268473680/0x10009550 $r29: 2147450824/0x7fff7fc8 $r30: 2147450824/0x7fff7fc8 $r31: 4194840/0x00400218
15
1-2. Dlit! 디버거 사용 ( 계속 ) DLite! > step [ 183] 0x00400228: lw r2,16(r30) DLite! > iregs PC: 0x00400220 NPC: 0x00400228 HI: 0x00000000 LO: 0x00000000 FCC: 0x00000000 $r0: 0/0x00000000 $r1: 0/0x00000000 $r2: 1/0x00000001 $r3: 2/0x00000002 $r4: 268440024/0x100011d8 $r5: 2147450884/0x7fff8004 $r6: 2147450892/0x7fff800c $r7: 268440016/0x100011d0 $r8: 2130640639/0x7efefeff $r9: 791621423/0x2f2f2f2f $r10: 0/0x00000000 $r11: 0/0x00000000 $r12: 0/0x00000000 $r13: 0/0x00000000 $r14: 0/0x00000000 $r15: 0/0x00000000 $r16: 1/0x00000001 $r17: 2147450884/0x7fff8004 $r18: 2147450892/0x7fff800c $r19: 0/0x00000000 $r20: 0/0x00000000 $r21: 0/0x00000000 $r22: 0/0x00000000 $r23: 0/0x00000000 $r24: 0/0x00000000 $r25: 0/0x00000000 $r26: 0/0x00000000 $r27: 0/0x00000000 $r28: 268473680/0x10009550 $r29: 2147450824/0x7fff7fc8 $r30: 2147450824/0x7fff7fc8 $r31: 4194840/0x00400218
16
1-3. Dlit! 디버거 사용 ( 계속 ) DLite! > step [ 184] 0x00400230: slti r3,r2,10 DLite! > iregs PC: 0x00400228 NPC: 0x00400230 HI: 0x00000000 LO: 0x00000000 FCC: 0x00000000 $r0: 0/0x00000000 $r1: 0/0x00000000 $r2: 1/0x00000001 $r3: 2/0x00000002 $r4: 268440024/0x100011d8 $r5: 2147450884/0x7fff8004 $r6: 2147450892/0x7fff800c $r7: 268440016/0x100011d0 $r8: 2130640639/0x7efefeff $r9: 791621423/0x2f2f2f2f $r10: 0/0x00000000 $r11: 0/0x00000000 $r12: 0/0x00000000 $r13: 0/0x00000000 $r14: 0/0x00000000 $r15: 0/0x00000000 $r16: 1/0x00000001 $r17: 2147450884/0x7fff8004 $r18: 2147450892/0x7fff800c $r19: 0/0x00000000 $r20: 0/0x00000000 $r21: 0/0x00000000 $r22: 0/0x00000000 $r23: 0/0x00000000 $r24: 0/0x00000000 $r25: 0/0x00000000 $r26: 0/0x00000000 $r27: 0/0x00000000 $r28: 268473680/0x10009550 $r29: 2147450824/0x7fff7fc8 $r30: 2147450824/0x7fff7fc8 $r31: 4194840/0x00400218
17
1-3. Dlit! 디버거 사용 ( 계속 ) DLite! > step [ 185] 0x00400238: bne r3,r0,0x400248 DLite! > iregs PC: 0x00400230 NPC: 0x00400238 HI: 0x00000000 LO: 0x00000000 FCC: 0x00000000 $r0: 0/0x00000000 $r1: 0/0x00000000 $r2: 1/0x00000001 $r3: 1/0x00000001 $r4: 268440024/0x100011d8 $r5: 2147450884/0x7fff8004 $r6: 2147450892/0x7fff800c $r7: 268440016/0x100011d0 $r8: 2130640639/0x7efefeff $r9: 791621423/0x2f2f2f2f $r10: 0/0x00000000 $r11: 0/0x00000000 $r12: 0/0x00000000 $r13: 0/0x00000000 $r14: 0/0x00000000 $r15: 0/0x00000000 $r16: 1/0x00000001 $r17: 2147450884/0x7fff8004 $r18: 2147450892/0x7fff800c $r19: 0/0x00000000 $r20: 0/0x00000000 $r21: 0/0x00000000 $r22: 0/0x00000000 $r23: 0/0x00000000 $r24: 0/0x00000000 $r25: 0/0x00000000 $r26: 0/0x00000000 $r27: 0/0x00000000 $r28: 268473680/0x10009550 $r29: 2147450824/0x7fff7fc8 $r30: 2147450824/0x7fff7fc8 $r31: 4194840/0x00400218
18
1-3. Dlit! 디버거 사용 ( 계속 ) DLite! > cont 2X1=2 3X1=3 4X1=4 5X1=5 6X1=6 7X1=7 8X1=8 9X1=9 2X2=4 3X2=6 4X2=8 5X2=10 6X2=12 7X2=14 8X2=16 9X2=18 2X3=6 3X3=9 4X3=12 5X3=15 6X3=18 7X3=21 8X3=24 9X3=27 2X4=8 3X4=12 4X4=16 5X4=20 6X4=24 7X4=28 8X4=32 9X4=36 2X5=10 3X5=15 4X5=20 5X5=25 6X5=30 7X5=35 8X5=40 9X5=45 2X6=12 3X6=18 4X6=24 5X6=30 6X6=36 7X6=42 8X6=48 9X6=54 2X7=14 3X7=21 4X7=28 5X7=35 6X7=42 7X7=49 8X7=56 9X7=63 2X8=16 3X8=24 4X8=32 5X8=40 6X8=48 7X8=56 8X8=64 9X8=72 2X9=18 3X9=27 4X9=36 5X9=45 6X9=54 7X9=63 8X9=72 9X9=81
19
2-1 LI 벤치마크 시뮬레이션 [pjswise@kop simplesim-3.0]$./sim-profile -iclass li.ss train.lsp sim-profile: SimpleScalar/PISA Tool Set version 3.0 of August, 2003. Copyright (c) 1994-2003 by Todd M. Austin, Ph.D. and SimpleScalar, LLC. All Rights Reserved. This version of SimpleScalar is licensed for academic non-commercial use. No portion of this work may be used by any commercial entity, or for any commercial purpose, without the prior written permission of SimpleScalar, LLC (info@simplescalar.com). sim: command line:./sim-profile -iclass li.ss train.lsp sim: simulation started @ Tue Apr 27 00:36:18 2004, options follow: sim-profile: This simulator implements a functional simulator with profiling support. Run with the `-h' flag to see profiling options available.
20
2-1 LI 벤치마크 시뮬레이션 ( 계속 ) # -config # load configuration from a file # -dumpconfig # dump configuration to a file # -h false # print help message # -v false # verbose operation # -d false # enable debug message # -i false # start in Dlite debugger -seed 1 # random number generator seed (0 for timer seed) # -q false # initialize and terminate immediately # -chkpt # restore EIO trace execution from # -redir:sim # redirect simulator output to file (non-interactive only) # -redir:prog # redirect simulated program output to file -nice 0 # simulator scheduling priority -max:inst 0 # maximum number of inst's to execute -all false # enable all profile options -iclass true # enable instruction class profiling -iprof false # enable instruction profiling -brprof false # enable branch instruction profiling -amprof false # enable address mode profiling -segprof false # enable load/store address segment profiling -tsymprof false # enable text symbol profiling -taddrprof false # enable text address profiling -dsymprof false # enable data symbol profiling -internal false # include compiler-internal symbols during symbol profiling # -pcstat # profile stat(s) against text addr's (mult uses ok)
21
2-1 LI 벤치마크 시뮬레이션 ( 계속 ) sim: ** starting functional simulation ** XLISP version 1.6, Copyright (c) 1985, by David Betz ; loading "train.lsp" (IMPLIES (AND (IMPLIES (F (PLUS (PLUS A B) (PLUS C (ZERO)))) (F (TIMES (TIMES A B) (PLUS C D)))) (IMPLIES (F (TIMES (TIMES A B) (PLUS C D))) (F (REVERSE (APPEND (APPEND A B) (NIL)))))) (IMPLIES (F (PLUS (PLUS A B) (PLUS C (ZERO)))) (F (REVERSE (APPEND (APPEND A B) (NIL)))))) NIL (DONE BOYER-TEST) (ALL DONE) sim: ** simulation statistics ** sim_num_insn 183304160 # total number of instructions executed sim_num_refs 77814350 # total number of loads and stores executed sim_elapsed_time 73 # total simulation time in seconds sim_inst_rate 2511015.8904 # simulation speed (in insts/sec)
22
2-1 LI 벤치마크 시뮬레이션 ( 계속 ) sim_inst_class_prof # instruction class profile sim_inst_class_prof.array_size = 7 sim_inst_class_prof.bucket_size = 1 sim_inst_class_prof.count = 7 sim_inst_class_prof.total = 183304159 sim_inst_class_prof.imin = 0 sim_inst_class_prof.imax = 7 sim_inst_class_prof.average = 26186308.4286 sim_inst_class_prof.std_dev = 23544650.7948 sim_inst_class_prof.overflows = 0 # pdf == prob dist fn, cdf == cumulative dist fn # index count pdf sim_inst_class_prof.start_dist load 47478199 25.90 store 30336151 16.55 uncond branch 17568468 9.58 cond branch 24237916 13.22 int computation 63683386 34.74 fp computation 0 0.00 trap 39 0.00 sim_inst_class_prof.end_dist
23
2-1 LI 벤치마크 시뮬레이션 ( 계속 ) ld_text_base 0x00400000 # program text (code) segment base ld_text_size 180640 # program text (code) size in bytes ld_data_base 0x10000000 # program initialized data segment base ld_data_size 20788 # program init'ed `.data' and uninit'ed `.bss' size in bytes ld_stack_base 0x7fffc000 # program stack segment base (highest address in stack) ld_stack_size 16384 # program initial stack size ld_prog_entry 0x00400140 # program entry point (initial PC) ld_environ_base 0x7fff8000 # program environment base address address ld_target_big_endian 0 # target executable endian-ness, non-zero if big endian mem.page_count 96 # total number of pages allocated mem.page_mem 384k # total size of memory pages allocated mem.ptab_misses 96 # total first level page table misses mem.ptab_accesses 889998734 # total page table accesses mem.ptab_miss_rate 0.0000 # first level page table miss rate
24
2-2 자유벤치 RC4 sim: ** starting functional simulation ** sim: ** simulation statistics ** sim_num_insn 32322 # total number of instructions executed sim_num_refs 15829 # total number of loads and stores executed sim_elapsed_time 1 # total simulation time in seconds sim_inst_rate 32322.0000 # simulation speed (in insts/sec) sim_inst_class_prof # instruction class profile sim_inst_class_prof.array_size = 7 sim_inst_class_prof.bucket_size = 1 sim_inst_class_prof.count = 7 sim_inst_class_prof.total = 32321 sim_inst_class_prof.imin = 0 sim_inst_class_prof.imax = 7 sim_inst_class_prof.average = 4617.2857 sim_inst_class_prof.std_dev = 5143.8144 sim_inst_class_prof.overflows = 0 # pdf == prob dist fn, cdf == cumulative dist fn # index count pdf sim_inst_class_prof.start_dist load 9618 29.76 store 6211 19.22 uncond branch 854 2.64 cond branch 2610 8.08 int computation 13014 40.26 fp computation 0 0.00 trap 14 0.04 sim_inst_class_prof.end_dist
25
2-2 자유벤치 RC4 ( 계속 ) ld_text_base 0x00400000 # program text (code) segment base ld_text_size 98080 # program text (code) size in bytes ld_data_base 0x10000000 # program initialized data segment base ld_data_size 12288 # program init'ed `.data' and uninit'ed `.bs s' size in bytes ld_stack_base 0x7fffc000 # program stack segment base (highest addres s in stack) ld_stack_size 16384 # program initial stack size ld_prog_entry 0x00400140 # program entry point (initial PC) ld_environ_base 0x7fff8000 # program environment base address address ld_target_big_endian 0 # target executable endian-ness, non-zero if big endian mem.page_count 34 # total number of pages allocated mem.page_mem 136k # total size of memory pages allocated mem.ptab_misses 34 # total first level page table misses mem.ptab_accesses 770024 # total page table accesses mem.ptab_miss_rate 0.0000 # first level page table miss rate
26
3. 결 과 구현환경 CPU : P- Ⅲ 866MHz Memory : 256MB OS : Red Hat Linux 7.3 입력내용 Li.ss RC4.ss
27
3. 결 과 ( 계속 ) 수행결과 도표 sim_num_insnsim_num_refssim-elapsed_timesm_inst_rateId_text_sizeId_data_size LI18330416077814350732511015.890418064020788 RC43232215829132322.00009808012288 Id_stack_sizemem.page_cou nt mem.page_memmem.ptab_mi sses mem.ptab_ accesses Imem.ptab_m iss_rate LI1638496384K968899987340.0000 RC41638434136K347700240.0000
28
3. 결 과 ( 계속 )
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.