Presentation is loading. Please wait.

Presentation is loading. Please wait.

Memory & Storage Architecture Seoul National University Computer Architecture Byoungjun Kim School of Computer Science and.

Similar presentations


Presentation on theme: "Memory & Storage Architecture Seoul National University Computer Architecture Byoungjun Kim School of Computer Science and."— Presentation transcript:

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


Download ppt "Memory & Storage Architecture Seoul National University Computer Architecture Byoungjun Kim School of Computer Science and."

Similar presentations


Ads by Google