���리 - 7�

���리 - 7� - Open subroutine...

Info iconThis preview shows pages 1–11. Sign up to view the full content.

View Full Document Right Arrow Icon
서브루틴
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
개요 • Open subroutine – macro 레지스터 저장 / 복구 비용 없음 텍스트 대체 ( 확장 ) • Closed subroutine – call-return – Context switching(register saving) 스택 프레임 할당 / 수거 파라미터 전송 : register or stack 반환 값 / 주소 call subr ! Delay slot ! 반환 주소 ... subr: save %sp, . .., %sp ... ret restore ! delay slot
Background image of page 2
레지스터 보관 레지스터 사상 (mapping) 을 통하여 32 개의 레지스터 접근 허용 구분 레지스터 용도 사상여부 global %r0 - %r7(%g?) 전역 레지스터 No out %r8 - %r15(%o?) 파라미터 송출 Yes local %r16 - %r23(%l?) 지역 변수 Yes in %r24 - %r31(%i?) 파라미터 인수 Yes SPARC: 128 개의 사상 가능 레지스터 = 16 레지스터 / 집합 * 8 집합 깊이로 6 개의 부프로그램 호출이 레지스터 대피 없이 가능 레지스터 대피 (register saving): execution time overhead 관련명령어 : save / restore
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
레지스터 대피 main() { int x, y, z; register int max; : result=getre(x,y) : } getre(x,y) { int x, y, z; register int i; : } %l0 max z y x %l0 i memory main getre z y x z y x
Background image of page 4
레지스터 화일 구조 %g7 ... %g0 unmapped 7 6 5 3 2 4 1 0 mapped in local out in local out CWP WIM CWP
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
레지스터 윈도우 • CWP(current window pointer) 현재 active 레지스터 집합을 가리킴 • WIM(window invalid mask) 마지막 가용 레지스터 집합을 가리킴 • save 명령의 효과 – Register set 배정 – caller out callee in 은 같은 레지스터 overlapped register window %sp (%o6), %fp(%i6) 조정 • restore 명령의 효과 레지스터 윈도우 overflow / underflow
Background image of page 6
레지스터 윈도우 오버플로우 7 6 5 3 2 4 1 0 in local out in local out CWP WIM save area save 명령 실행
Background image of page 7

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
레지스터 윈도우 언더플로우 7 6 5 3 2 4 1 0 CWP WIM save area restore 명령 실행
Background image of page 8
w7 ins w7 locals w7 outs w6 ins w6 locals w6 outs w5 outs w4 outs w3 outs w2 outs w1 outs w0 outs w5 locals w4 locals w0 locals w1 locals w2 locals w3 locals w5 ins w4 ins w3 ins w2 ins w1 ins w0 ins RESTORE SAVE
Background image of page 9

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Overlapped register window Before save %i7 %i6 %i0 %l7 %l0 %o7 %o6 %o0 %fp %sp (3) Ret. Addr.
Background image of page 10
Image of page 11
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 11/03/2009 for the course CS Assembly taught by Professor Park during the Fall '09 term at 홍익대학교.

Page1 / 41

���리 - 7� - Open subroutine...

This preview shows document pages 1 - 11. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online