Computer Architecture HW #3

Slides:



Advertisements
Similar presentations
[Homework #2] (6 th Edition English Version 기준 )  [ 복습문제 ] 에서 다음 문제의 해답제시 (pp.169~171)  R5, R8, R10, R11, R15, R26, R27  [ 문제 ] 에서 다음 문제의 해답제시 (pp.171~179)
Advertisements

1 Prof. Young Jin Nam, Daegu University 컴퓨터 구조 (Computer Architecture) 명령어 세트 : 특성과 기능 남영진
컴퓨터 종합설계 2012 년 2 학기 Syllabus 개요 (1/2) 목표  실 세계의 문제를 제시하고, 이에 대한 해결책을 컴퓨터 공학적인 방법으로 해결하기 위하여 팀을 주축으로 소프트웨어 개발 프로젝트 수행  프로젝트 계획에서부터 구현까지.
Basic of Buffer Over Flow
Term Project iTUTOR를 이용한 PIC 동작 검증 보고서와 모든 소스코드 압축하여 제출
컴퓨터 개론 및 실습 1차 프로젝트 Byoungjun Kim
제8장. RISC 및 슈퍼스칼라 프로세서 8.1 RISC의 출현 동기 8.2 RISC의 발전 경위
마이크로프로세서(Microprocessor,µP)
기본 컴퓨터 프로그래밍 Lecture #6.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
Introduction To Computers
Cross Compiler를이용한 커널 컴파일 및 포팅
Cross Compiler를이용한 커널 컴파일 및 포팅 1
강좌 개요 2009년 1학기 컴퓨터의 개념 및 실습.
과목 홈페이지  전산학개론 이메일 숙제를 제출할 경우, 메일 제목은 반드시 ‘[전산학개론]’으로 시작.
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
VHDL Design : Barrel Shifter
임베디드 시스템 개론 크로스 플랫폼 설치 2일차 강의 자료 Embedded System Lab.
버퍼 오버플로우 시스템보안 인터넷공학전공 권영락.
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
1 마이크로프로세서의 원리 마이크로컨트롤러 AVR ATmega128.
9. 중간언어 9-1. Polish표기법 9-2. N-투플 표기법 9-3. 트리 구조 코드 9-4. 추상 기계 코드
IA32 Assembly Programming Assignment
6 중앙처리장치의 조직과 기능 IT CookBook, 컴퓨터 구조와 원리 2.0.
3주 컴퓨터구조.
Homework #5 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
2007년 1학기 전산학개론 성신여자대학교 컴퓨터정보학부
CHAPTER 03. 컴퓨터 구조 컴퓨터 시스템의 구성과 동작 원리_컴퓨터 시스템에 대한 근본적 이해
Lab Application Management
Chapter 4 The Von Neumann Model.
Cross Compiler를이용한 커널 컴파일 및 포팅
School of Computer Science and Engineering Seoul National University
컴퓨터 시스템 개관 시스템 프로그래밍 - Lecture #1 신라대학교 컴퓨터공학과 시스템 프로그래밍.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
[ 포털 사이트 연관검색어/자동완성 등록 서비스 ]
Computer System Architecture
Seoul National University
컴퓨터 개론 및 실습 2차 프로젝트 Byoungjun Kim
강의 개요. 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
Software Engineering Final Project
cafe.naver.com/embeddedcrazyboys
툴 설치 가이드 Formality SynopsysMentor.
노인 자원봉사 학 과 명 : 사회복지과 교 과 명 : 자원봉사론 담당 교수 : 한경리교수님
컴퓨터 구조.
Chapter 12 Memory Organization
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
컴퓨터 개론 및 실습 1주차 2015년 03월 05일.
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
^^ Computer Programming 2 dmpr.cnu.ac.kr/~daygax.
March 2013 Youn-Hee Han Homework 1 - IPv6 사용 - March 2013 Youn-Hee Han.
05. General Linear List – Homework
StyleCop 소개 SGS Framework 개발 팀.
[INA240] Data Structures and Practice
 파일 아카이브와 압축 명령 익히기.
Homework #5 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
[INA240] Web Programming Homework #2 [INA240] Web Programming
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
Homework #3 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
Computer Graphics with OpenGL
Python.
슬라이드 쇼의 설정 슬라이드 쇼의 실행 파일과 폴더의 관리 글꼴을 포함해서 저장 웹 페이지로 게시 압축 파일
객체지향 프로그래밍 (강의소개)
Numerical Analysis Programming using NRs
TERM PROJECT 최종 보고 발표 안내 2010 컴퓨터공학실험(Ⅰ).
10장. 컴퓨터 구조에 대한 세 번째 이야기 작성자: 윤성우.
SOFTWARE FINAL PROJECT - Event Data Collection Of Franchise -
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
Lecture 7 7-Segment LED controller using u-controller
ARM Development Suite v1.2
Prof. Kyungshik Lim Kyungpook National University
Presentation transcript:

Computer Architecture HW #3 yglee@archi.snu.ac.kr School of Computer Science and Engineering Seoul National University

Mission Sequential Y86 implementation Pipelined Y86 implementation 설명 : leave instruction 추가하기 숙제 : iaddl, isubl instruction 추가하기 Pipelined Y86 implementation 숙제 : leave, iaddl, isubl instruction 추가하기 숙제 : load forwarding 추가 구현하기

Sequential Y86 implementation 설명 : leave instruction 추가하기 숙제 : iaddl, isubl instruction 추가하기 Pipelined Y86 implementation 숙제 : leave, iaddl, isubl instruction 추가하기 숙제 : load forwarding 추가 구현하기

Configuration tar xvf archlab4u.tar cd archilab-handout/ tar xvf sim.tar cd sim/ /archilab/archlab-handout/sim$ make clean; make

Sequential Y86 implementation 작업폴더 /sim/seq 작업파일 /sim/seq/seq-full.hcl

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): 1 movl %ebp, %esp Set stack pointer to beginning of frame 2 popl %ebp Restore saved %ebp and set stack ptr to end of caller’s frame It is equivalent to the following code sequence(Y86): 1 rrmovl %ebp, %esp Set stack pointer to beginning of frame 2 popl %ebp Restore saved %ebp and set stack ptr to end of caller’s frame

Computation (rrmovl %ebp, %esp) 과 (popl %ebp) 이 합쳐진 형태

Computation leave instruction leave icode:ifun  M1[PC] Fetch valA  R[%ebp] valB  R[%ebp] Decode valE  valB + 4 Execute valM  M4[valA] Memory R[%esp]  valE Write back PC  valP PC update valP  PC+1 R[%ebp]  valM

Implementation Fetch stage &

Implementation Decode & Write-back stage

Implementation Execute stage

Implementation Memory stage

Implementation PC update

Verification 구현 확인하기 구현한 sequential implementation을 사용하는 방법 /archilab/archlab-handout/sim/seq$ make clean; make ssim VERSION=full

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

Sequential Y86 implementation 설명 : leave instruction 추가하기 숙제 : iaddl, isubl instruction 추가하기 Pipelined Y86 implementation 숙제 : leave, iaddl, isubl instruction 추가하기 숙제 : load forwarding 추가 구현하기

iaddl, isubl instruction 추가하기 숙제 작업폴더 /sim/seq 작업파일 /sim/seq/seq-full.hcl

iaddl, isubl instruction Computation irmovl instruction + OPl instruction iaddl V, rB : R[rB]  R[rB] + V isubl V, rB : R[rB]  R[rB] - V

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

Current state iaddl instrunction 검증 isubl instruction 검증 ./ssim –t ../y86-code/asumi.yo isubl instruction 검증 ./ssim –t ../y86-code/asums.yo

Goal state iaddl instrunction 검증 isubl instrunction 검증 ./ssim –t ../y86-code/asumi.yo isubl instrunction 검증 ./ssim –t ../y86-code/asums.yo

Sequential Y86 implementation 설명 : leave instruction 추가하기 숙제 : iaddl, isubl instruction 추가하기 Pipelined Y86 implementation 숙제 : leave, iaddl, isubl instruction 추가하기 숙제 : load forwarding 추가 구현하기

Pipelined Y86 implementation 기본 제공 파일 pipe-std.hcl 기본적인 forwarding 구현 과제 iaddl, isubl, leave instruction 추가하기 작업 폴더 : sim/pipe 작업 파일 : pipe-full.hcl ( 미완성 파일 제공 ) load forwarding 구현 하기 작업 파일 : pipe-lf.hcl ( 미완성 파일 제공)

Why? Load forwarding Load forwarding Condition Arithmetic 연산이 필요 Load instruction의 target register와 바로 뒤의 store instruction의 source register가 같음 교재 연습문제 4.57번 참조 Example sequence Arithmetic 연산이 필요 Why?

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

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

Current state : pipe-full.hcl iaddl instruction 검증 /sim/pipe$ ./psim –t ../y86-code/asumi.yo isubl, leave instruction iaddl의 경우와 동일

Goal state asumi.yo asuml.yo asums.yo

Current state : pipe-lf.hcl pipe-std.hcl을 사용했을 때 make clean; make VERSION=std ./psim –t ldriver.yo

Goal state : pipe-lf.hcl Load forwarding 구현 후 make clean; make VERSION=lf ./psim –t ldriver.yo

보고서 제출 숙제에 대한 보고서 각각에 대해 바꾼 부분에 대한 설명 결과 출력 화면 어려웠던 점 / 해결 방법 seq-full.hcl, pipe-full.hcl, pipe-lf.hcl 결과 출력 화면 어려웠던 점 / 해결 방법 프로젝트를 진행하며 느낀 점

제출 방법 과제 확인 제출 기한 제출 방법 12월 5일 월요일 자정 전(pm 23:59)까지 1일 delay 당 5점씩 감점 (100점 만점) 제출 기한 2일 후까지 제출 가능 12월 7일 수요일 자정 전(pm 23:59) 제출 방법 조교 메일을 통해 제출 메일 제목 : [컴구 과제]학번_이름 ex)[컴구 과제]201510000_홍길동 첨부 파일 : 학번_이름.zip으로 아래 파일들과 보고서를 함께 제출 소스 코드 : seq-full.hcl, pipe-full.hcl, pipe-lf.hcl 보고서 : pdf 형식 학번_이름을 제목으로 함 메일 주소 : yglee@archi.snu.ac.kr