Transcript
Page 1: TVM ver. Beta  설계 제안서

L o g o

TVM ver. Beta 설계 제안서

www.deu.ac.kr

Page 2: TVM ver. Beta  설계 제안서

L o g o

www.deu.ac.krwww.deu.ac.kr

Contents

프로젝트 개요1

프로젝트 진행일정2

프로젝트 목표3

프로젝트 구성4

Page 3: TVM ver. Beta  설계 제안서

L o g o

www.deu.ac.krwww.deu.ac.kr

Hot Tip

What is TVM?

TVM 이란 하드웨어를 구성하는

레지스터 , 데이터메모리 , 코드메모리를

기반으로 가상컴퓨터 (Vitual Machine) 의

기계어 (Machine Language)

인터프리터 (Interpreter) 를 말한다 .

Page 4: TVM ver. Beta  설계 제안서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로젝트 개요

레지스터

레지스터는

데이터메모리에 있는

자료들을 입출력하고

연산하는 기능을 함 .

Hardware하드웨어

코드메모리코드메모리는 사용자가

정한 명령들이

집합되어있는 장소로

순차적으로 실행되면서

프로그램을 작동시킨

다 .

데이터메모리

데이터메모리는

데이터가 저장되는

장소로 레지스터와

상호교환 한다 .

Page 5: TVM ver. Beta  설계 제안서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로젝트 진행일정

프로젝트 완료프로젝트 완료

최종점검코드작성

토의

초안

Page 6: TVM ver. Beta  설계 제안서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로젝트 진행일정

88 주주88 주주 기본코드를 분석하여 추가할 수 있는 기능 가능성 토의

99 주주99 주주8 주 토의내용 바탕으로구현 가능한 기능과 불가능한 기능 분류더 추가할 내용 토의

1010 주주1010 주주프로그램코드 작성하여초안 코드에 대한 오류 및 문법 점검오류와 추가 가능한 기능 토의

Page 7: TVM ver. Beta  설계 제안서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로젝트 진행일정

1111 주주1111 주주 프로젝트 초안 확인 및 프로그램 업그레이드 가능성 판별

1212 주주1212 주주작성된 코드의 효율성을 판별하고프로그램 코드 추가 간에 생긴오류와 문법적 오류에 대한 토의

1313 주주1313 주주 최종보고 준비 및 결과물 최종 점검프로젝트 작품에 대한 소감 및 의견 수렴

Page 8: TVM ver. Beta  설계 제안서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로젝트 진행목표

Purpose

긴 문자열을 처리하는 TVM 의 구현

ADD

SUB

MUL

DIV

STACK

STRING

Page 9: TVM ver. Beta  설계 제안서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로젝트 진행목표

오류

없이

구현

TVM

기본

순서

뒤집

기문

자열

순서

변환

문자

열변

환대

소문

자변

100개

의문

자열

무한

대문

자열

1 단계 2 단계 3 단계 4 단계

Page 10: TVM ver. Beta  설계 제안서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로젝트 진행목표

연산연산기본 레지스터연산

연산 후 스택에 저장

값을 Reverse 후 저장

Page 11: TVM ver. Beta  설계 제안서

L o g o

www.deu.ac.krwww.deu.ac.kr

ADD(stack)

reg[D] += reg[S];

위의 연산 값을

Stack 에 저장한다 .

3RM - ADDR 의 값이 0~3 일 경우reg[R] += data[M];

3RN - ADDR 의 값이 4~7 일 경우reg[R] += N;

ADD(reverse)

reg[D]+=reg[S];

연산 결과가

‘123’ 이 나오면

‘321’ 로 저장시킨

다 .

프로젝트 진행목표

3RM3RN

32DS 39DS

Page 12: TVM ver. Beta  설계 제안서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로젝트 진행목표

100100 자리까지 구현 가능한 자리까지 구현 가능한 TVMTVM100100 자리까지 구현 가능한 자리까지 구현 가능한 TVMTVM

Add Your Text

CharChar 배열배열 자리올림자리올림 33 의의 10001000 승승

Page 13: TVM ver. Beta  설계 제안서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로젝트 구성요소

PC 의 정확한 타겟팅 배열의 정확한 연산

올바른 입출력 / 연산

Page 14: TVM ver. Beta  설계 제안서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로젝트 구성요소

명령어 Mnemonic 의미

1RM Load 단 , R=0,1,2,3 reg[R] = data[M];

1RN Load 단 , R=4,5,6,7 reg[R-4] = N;

2RM Store data[m] = reg[R];

3RM ADD 단 , R=0,1,2,3 reg[R] += data[M];

3RN ADD 단 , R=4,5,6,7 reg[R] += N;

32DS ADD(stack) reg[D] += reg[S]; 의 값을 stack 에 저장

38DS ADD reg[D] += reg[S];

39DS ADD(reverse) reg[D] += reg[S]; 를 하여 123 이 나오면 321 로 저장한다 .

4RM SUB 단 , R=0,1,2,3 reg[R] -= data[M];

4RN SUB 단 , R=4,5,6,7 reg[R] -= N;

42DS SUB(stack) reg[D] -= reg[S]; 의 값을 stack 에 저장

48DS SUB reg[D] -= reg[S];

49DS SUB(reverse) reg[D] -= reg[S]; 를 하여 123 이 나오면 321 로 저장한다 .

Page 15: TVM ver. Beta  설계 제안서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로젝트 구성요소

명령어 Mnemonic 의미

60DS DIV reg[D] /= reg[S];

61DS MOD reg[D] %= reg[S];

62DS DIV(stack) reg[D] /= reg[S]; 의 값을 stack 에 저장

69DS DIV(reverse) reg[D] /= reg[S]; 의 값이 123 이 나오면 321 을 저장한다 .

7RM JNZ reg[R] 의 값이 0 이 아니면 , 명령어의 실행을 code[M] 으로 이동 ;

80M JUMP 명령어의 실행을 code[M] 으로 이동 ;

910R IN 표준입력으로부터 하나의 정수 n 을 읽어서 reg[R] 에 저장 ; reg[R] = n;

920R OUT reg[R] 의 값을 출력하기

930R PUSH reg[R] 의 값을 STACK 에 PUSH( 저장하기 )

940R POP STACK 으로부터 POP( 읽기 ) 하여 reg[R] 에 저장한다 .

95N PUSH_PC PC+N 값을 STACK 에 PUSH( 저장하기 )

96N PJ_PC PC 값을 STACK 에 PUSH( 저장하기 ) 하고 code(N) 으로 점프

970R PJR_PC PC+N 값을 STACK 에 PUSH( 저장하기 ) 하고 code(reg[r]) 로 점프

9800 POP_PC PC 값을 STACK 으로부터 POP( 읽기 )

Page 16: TVM ver. Beta  설계 제안서

L o g o

Click to edit company slogan .

www.deu.ac.kr


Top Related