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
L o g o
TVM ver. Beta 설계 제안서
www.deu.ac.kr
L o g o
www.deu.ac.krwww.deu.ac.kr
Contents
프로젝트 개요1
프로젝트 진행일정2
프로젝트 목표3
프로젝트 구성4
L o g o
www.deu.ac.krwww.deu.ac.kr
Hot Tip
What is TVM?
TVM 이란 하드웨어를 구성하는
레지스터 , 데이터메모리 , 코드메모리를
기반으로 가상컴퓨터 (Vitual Machine) 의
기계어 (Machine Language)
인터프리터 (Interpreter) 를 말한다 .
L o g o
www.deu.ac.krwww.deu.ac.kr
프로젝트 개요
레지스터
레지스터는
데이터메모리에 있는
자료들을 입출력하고
연산하는 기능을 함 .
Hardware하드웨어
코드메모리코드메모리는 사용자가
정한 명령들이
집합되어있는 장소로
순차적으로 실행되면서
프로그램을 작동시킨
다 .
데이터메모리
데이터메모리는
데이터가 저장되는
장소로 레지스터와
상호교환 한다 .
L o g o
www.deu.ac.krwww.deu.ac.kr
프로젝트 진행일정
프로젝트 완료프로젝트 완료
최종점검코드작성
토의
초안
L o g o
www.deu.ac.krwww.deu.ac.kr
프로젝트 진행일정
88 주주88 주주 기본코드를 분석하여 추가할 수 있는 기능 가능성 토의
99 주주99 주주8 주 토의내용 바탕으로구현 가능한 기능과 불가능한 기능 분류더 추가할 내용 토의
1010 주주1010 주주프로그램코드 작성하여초안 코드에 대한 오류 및 문법 점검오류와 추가 가능한 기능 토의
L o g o
www.deu.ac.krwww.deu.ac.kr
프로젝트 진행일정
1111 주주1111 주주 프로젝트 초안 확인 및 프로그램 업그레이드 가능성 판별
1212 주주1212 주주작성된 코드의 효율성을 판별하고프로그램 코드 추가 간에 생긴오류와 문법적 오류에 대한 토의
1313 주주1313 주주 최종보고 준비 및 결과물 최종 점검프로젝트 작품에 대한 소감 및 의견 수렴
L o g o
www.deu.ac.krwww.deu.ac.kr
프로젝트 진행목표
Purpose
긴 문자열을 처리하는 TVM 의 구현
ADD
SUB
MUL
DIV
STACK
STRING
L o g o
www.deu.ac.krwww.deu.ac.kr
프로젝트 진행목표
오류
없이
구현
TVM
기본
순서
뒤집
기문
자열
순서
변환
문자
열변
환대
소문
자변
환
100개
의문
자열
무한
대문
자열
1 단계 2 단계 3 단계 4 단계
L o g o
www.deu.ac.krwww.deu.ac.kr
프로젝트 진행목표
연산연산기본 레지스터연산
연산 후 스택에 저장
값을 Reverse 후 저장
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
L o g o
www.deu.ac.krwww.deu.ac.kr
프로젝트 진행목표
100100 자리까지 구현 가능한 자리까지 구현 가능한 TVMTVM100100 자리까지 구현 가능한 자리까지 구현 가능한 TVMTVM
Add Your Text
CharChar 배열배열 자리올림자리올림 33 의의 10001000 승승
L o g o
www.deu.ac.krwww.deu.ac.kr
프로젝트 구성요소
PC 의 정확한 타겟팅 배열의 정확한 연산
올바른 입출력 / 연산
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 로 저장한다 .
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( 읽기 )
L o g o
Click to edit company slogan .
www.deu.ac.kr