Download presentation
Presentation is loading. Please wait.
Published byEdwin Stafford Modified over 8 years ago
1
Memory & Storage Architecture Lab. @ Seoul National University Computer Architecture Byoungjun Kim bjkim@archi.snu.ac.kr School of Computer Science and Engineering Seoul National University
2
Memory & Storage Architecture Lab. @ Seoul National University 목차 Sequential Y86 implementation 설명 : leave instruction 추가하기 숙제 : iaddl, isubl instruction 추가하기 Pipelined Y86 implementation 숙제 : leave, iaddl, isubl instruction 추가하기 숙제 : load forwarding 추가 구현하기
3
Memory & Storage Architecture Lab. @ Seoul National University Sequential Y86 implementation 설명 : leave instruction 추가하기 숙제 : iaddl, isubl instruction 추가하기 Pipelined Y86 implementation 숙제 : leave, iaddl, isubl instruction 추가하기 숙제 : load forwarding 추가 구현하기
4
Memory & Storage Architecture Lab. @ Seoul National University Configuration tar xvf archlab4u.tar cd archilab-handout/ tar xvf sim.tar cd sim/ /archilab/archlab-handout/sim$ make clean; make
5
Memory & Storage Architecture Lab. @ Seoul National University Sequential Y86 implementation 작업폴더 /sim/seq 작업파일 /sim/seq/seq-full.hcl
6
Memory & Storage Architecture Lab. @ Seoul National University leave instruction leave instruction can be used to prepare the stack for returning. As described in Section 3.7.2. in textbook. It is equivalent to the following code sequence(X86): 1movl %ebp, %espSet stack pointer to beginning of frame 2popl %ebpRestore saved %ebp and set stack ptr to end of caller’s frame It is equivalent to the following code sequence(Y86): 1rrmovl %ebp, %espSet stack pointer to beginning of frame 2popl %ebpRestore saved %ebp and set stack ptr to end of caller’s frame
7
Memory & Storage Architecture Lab. @ Seoul National University Computation (rrmovl %ebp, %esp) 과 (popl %ebp) 이 합쳐진 형태
8
Memory & Storage Architecture Lab. @ Seoul National University Computation leave instruction leave icode:ifun M 1 [PC] Fetch valA R[ %ebp ] valB R[ %ebp ] Decode valE valB + 4 Execute valM M 4 [valA] Memory R[ %esp ] valE Write back PC valP PC update valP PC+1 R[ %ebp ] valM
9
Memory & Storage Architecture Lab. @ Seoul National University Implementation Fetch stage &
10
Memory & Storage Architecture Lab. @ Seoul National University Implementation Decode & Write-back stage
11
Memory & Storage Architecture Lab. @ Seoul National University Implementation Execute stage
12
Memory & Storage Architecture Lab. @ Seoul National University Implementation Memory stage
13
Memory & Storage Architecture Lab. @ Seoul National University Implementation PC update
14
Memory & Storage Architecture Lab. @ Seoul National University Verification 구현 확인하기 구현한 sequential implementation 을 사용하는 방법 /archilab/archlab-handout/sim/seq$ make clean; make ssim VERSION=full
15
Memory & Storage Architecture Lab. @ Seoul National University Verification 구현 확인하기 구현 정확성 확인하기 leave instruction 확인하기 : /archilab/archlab-handout/sim/y86-code/asuml.yo 확인 시 실행 파일 : /archilab/archlab-handout/sim/seq/ssim /archilab/archlab-handout/sim/seq$./ssim –t../y86-code/asuml.yo
16
Memory & Storage Architecture Lab. @ Seoul National University Sequential Y86 implementation 설명 : leave instruction 추가하기 숙제 : iaddl, isubl instruction 추가하기 Pipelined Y86 implementation 숙제 : leave, iaddl, isubl instruction 추가하기 숙제 : load forwarding 추가 구현하기
17
Memory & Storage Architecture Lab. @ Seoul National University iaddl, isubl instruction 추가하기 숙제 작업폴더 /sim/seq 작업파일 /sim/seq/seq-full.hcl
18
Memory & Storage Architecture Lab. @ Seoul National University iaddl, isubl instruction Computation irmovl instruction + OPl instruction iaddl V, rB : R[rB] R[rB] + V isubl V, rB : R[rB] R[rB] - V
19
Memory & Storage Architecture Lab. @ Seoul National University Verification 구현 확인하기 구현 정확성 확인하기 iaddl instruction 확인 파일 : /archilab/archlab-handout/sim/y86-code/asumi.yo isubl instruction 확인 파일 : /archilab/archlab-handout/sim/y86-code/asums.yo 확인 시 실행 파일 : /archilab/archlab-handout/sim/seq/ssim 구현 정확성 검증 명령어 iaddl instruction : /archilab/archlab-handout/sim/seq$./ssim –t../y86-code/asumi.yo isubl instruction : /archilab/archlab-handout/sim/seq$./ssim –t../y86-code/asums.yo
20
Memory & Storage Architecture Lab. @ Seoul National University Current state iaddl instrunction 검증 ./ssim –t../y86-code/asumi.yo isubl instruction 검증 ./ssim –t../y86-code/asums.yo
21
Memory & Storage Architecture Lab. @ Seoul National University Goal state iaddl instrunction 검증 ./ssim –t../y86-code/asumi.yo isubl instrunction 검증 ./ssim –t../y86-code/asums.yo
22
Memory & Storage Architecture Lab. @ Seoul National University Sequential Y86 implementation 설명 : leave instruction 추가하기 숙제 : iaddl, isubl instruction 추가하기 Pipelined Y86 implementation 숙제 : leave, iaddl, isubl instruction 추가하기 숙제 : load forwarding 추가 구현하기
23
Memory & Storage Architecture Lab. @ Seoul National University Pipelined Y86 implementation 기본 제공 파일 pipe-std.hcl 기본적인 forwarding 구현 과제 iaddl, isubl, leave instruction 추가하기 작업 폴더 : sim/pipe 작업 파일 : pipe-full.hcl ( 미완성 파일 제공 ) load forwarding 구현 하기 작업 폴더 : sim/pipe 작업 파일 : pipe-lf.hcl ( 미완성 파일 제공 )
24
Memory & Storage Architecture Lab. @ Seoul National University Load forwarding Load forwarding Condition Load instruction 의 target register 와 바로 뒤의 store instruction 의 source register 가 같음 교재 연습문제 4.57 번 참조 Example sequence Arithmetic 연산이 필요 Why?
25
Memory & Storage Architecture Lab. @ Seoul National University Verification : pipe-full.hcl 구현 확인하기 pipe-full.hcl 사용 하기 /sim/pipe$ make clean; make VERSION=full 구현 정확성 확인하기 leave instruction 확인 파일 : /sim/y86-code/asuml.yo iaddl instruction 확인 파일 : /sim/pipe/y86-code/asumi.yo isubl instruction 확인 파일 : /sim/pipe/y86-code/asums.yo 확인 시 실행 파일 : /sim/pipe/psim 구현 정확성 검증 명령어 leave instruction : /sim/pipe$./psim –t../y86-code/asuml.yo iaddl instruction : /sim/pipe$./psim –t../y86-code/asumi.yo isubl instruction : /sim/pipe$./psim –t../y86-code/asums.yo
26
Memory & Storage Architecture Lab. @ Seoul National University Verification : pipe-lf.hcl 구현 확인하기 pipe-lf.hcl 사용 하기 /sim/pipe$ make clean; make VERSION=lf Load forwarding 성능 확인하기 Load forwarding 성능 확인 파일 : /sim/pipe/ldrivers.yo 확인 시 실행 파일 : /sim/pipe/psim Load forwarding 구현 검증 명령어 leave instruction : /sim/pipe$./psim –t ldrivers.yo
27
Memory & Storage Architecture Lab. @ Seoul National University Current state : pipe-full.hcl iaddl instruction 검증 /sim/pipe$./psim –t../y86-code/asumi.yo isubl, leave instruction iaddl 의 경우와 동일
28
Memory & Storage Architecture Lab. @ Seoul National University Goal state asumi.yoasums.yoasuml.yo
29
Memory & Storage Architecture Lab. @ Seoul National University Current state : pipe-lf.hcl pipe-std.hcl 을 사용했을 때 make clean; make VERSION=std ./psim –t ldriver.yo
30
Memory & Storage Architecture Lab. @ Seoul National University Goal state : pipe-lf.hcl Load forwarding 구현 후 make clean; make VERSION=lf ./psim –t ldriver.yo
31
Memory & Storage Architecture Lab. @ Seoul National University 보고서 제출 숙제에 대한 보고서 각각에 대해 바꾼 부분에 대한 설명 seq-full.hcl, pipe-full.hcl, pipe-lf.hcl 결과 출력 화면 어려웠던 점 / 해결 방법 프로젝트를 진행하며 느낀 점
32
Memory & Storage Architecture Lab. @ Seoul National University 제출 방법 과제 확인 제출 기한 12 월 3 일 수요일 자정 전 (pm 23:59) 까지 1 일 delay 당 5 점씩 감점 (100 점 만점 ) 제출 기한 2 일 후까지 제출 가능 -12 월 5 일 금요일 자정 전 (pm 23:59) 제출 방법 조교 메일을 통해 제출 메일 제목 : [ 컴구 과제 ] 학번 _ 이름 -ex)[ 컴구 과제 ]200510000_ 김병준 첨부 파일 : 학번 _ 이름.zip 으로 아래 파일들과 보고서를 함께 제출 - 소스 코드 : seq-full.hcl, pipe-full.hcl, pipe-lf.hcl - 보고서 : 한글 / 워드 중 택하여 학번 _ 이름을 제목으로 함 메일 주소 : bjkim@archi.snu.ac.kr
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.