16
L o g o TVM ver. Beta 설설 설설설 www.deu.ac.kr

TVM ver. Beta 설계 제안서

  • Upload
    terrel

  • View
    49

  • Download
    0

Embed Size (px)

DESCRIPTION

TVM ver. Beta 설계 제안서. www.deu.ac.kr. 1. 2. 3. 4. 프로젝트 개요. 프로젝트 진행일정. 프로젝트 목표. 프로젝트 구성. Contents. Hot Tip. What is TVM? TVM 이란 하드웨어를 구성하는 레지스터 , 데이터메모리 , 코드메모리를 기반으로 가상컴퓨터 (Vitual Machine) 의 기계어 (Machine Language) 인터프리터 (Interpreter) 를 말한다. 프로젝트 개요. Hardware 하드웨어. 레지스터 - PowerPoint PPT Presentation

Citation preview

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