no image
SIC/XE Machine
이전 글 : https://sumjo.tistory.com/35 SIC Machine 본 글은 숭실대학교 컴퓨터학부 최재영 교수님의 시스템 프로그래밍 강의와 자료를 기반으로 작성되었습니다 Fetch Decode Execute Cycle Fetch : 프로그램 카운터(PC)에서 실행할 명령어를 명령어 레지 sumjo.tistory.com SIC/XE는 SIC Macine의 확장 모델이다 Memory 기존 2^15에서 2^20으로 커졌다. 메모리에 접근하려면 20bits가 필요함을 의미한다 Registers 기존 5개에서 4개가 추가된다. B - Base Register - used for Addressing S,T - General working - 데이터 저장만 가능하고 연산에는 쓸 수 없다. F - 부..
2024.03.08
no image
SIC Machine
본 글은 숭실대학교 컴퓨터학부 최재영 교수님의 시스템 프로그래밍 강의와 자료를 기반으로 작성되었습니다 Fetch Decode Execute Cycle Fetch : 프로그램 카운터(PC)에서 실행할 명령어를 명령어 레지스터(IR)에 저장한다. 이후 PC는 1 증가시킨다. Decode : 가져온 2진코드를 해독하여 수행할 작업을 결정한다. (opcode, operand를 해석한다) Get Data : 피연산자(operand)를 주기억장치로부터 가져온다 Execute : AlU를 통해서 연산을 수행한다. SIC/XE (Simplified Instructional Computer) 단순화 시킨 가상 컴퓨터의 표준 모델 실제 컴퓨터 모델과 명령어를 이해하기 쉽게 단순화 시켜 놓았다. SIC/XE는 SIC의 확장..
2024.03.08

이전 글 : https://sumjo.tistory.com/35

 

SIC Machine

본 글은 숭실대학교 컴퓨터학부 최재영 교수님의 시스템 프로그래밍 강의와 자료를 기반으로 작성되었습니다 Fetch Decode Execute Cycle Fetch : 프로그램 카운터(PC)에서 실행할 명령어를 명령어 레지

sumjo.tistory.com

 

SIC/XE는 SIC Macine의 확장 모델이다

 

Memory

기존 2^15에서 2^20으로 커졌다.

메모리에 접근하려면 20bits가 필요함을 의미한다

 

Registers

기존 5개에서 4개가 추가된다.

B - Base Register - used for Addressing

S,T - General working - 데이터 저장만 가능하고 연산에는 쓸 수 없다.

F - 부동 소수점 지원을 위한 레지스터, 48bit다

sign비트, 진수부 가수부로 구성된다

 

 

Instruction Format

15승에서 늘어난 20승의 메모리 비트를 지원해야 하겠다.

방법은 2가지를 떠올릴수 있다.

1. address 필드를 20비트로 확장

2. 상대주소 사용

 

이 2가지 옵션을 바탕으로 4가지 포멧을 사용한다.

n,i,x,b,p,e 는 addressing mode를 지정하는 flag bit들이다.

 

 

Format 1 (1 byte)

메모리 참조하지 않음. 피연산자 없고 Opcode만 존재

 

Format 2 (2 byte)

이것도 메모리 참조하지 않는다. 레지스터에 저장돼있는 값에 대한 연산이다.

r1과 r2에는 레지스터에 대한 고유 번호를 담고 있다.

 

3형식과 4형식은 e비트에 따라 결정된다

 

Format 3 (3 byte) e = 0

Relative addressing, 상대 주소를 위한 형식이다.

그럼에도 12비트이기 때문에 모든 메모리를 표현할 수는 없다.

 

Format 4 (4 byte) e = 1

address field가 20비트로 확장되어 모든 주소를 절대주소로 표현할 수 있다.

 

 

Addressing Modes

 

 

base relative for format 3(b = 1, p = 0)

베이스 레지스터를 기준으로 상대 주소를 사용한다.

base relative는 베이스 레지스터 기준 상위 주소값으로의 접근만 가능하다

TA = (B) + disp

 

PC relative for format 3 (b = 0, p = 1)

PC를 기준으로 상대 주소 사용

PC를 기준으로 위 아래 주소값 모두 이동 가능하기 때문에 signed 2^12승 값을 사용한다.

-2048 <= disp <= 2047

 

Direct Mode for format 3 4 (b = 0, p = 0) 

주소 필드를 절대 주소로 사용한다.

TA = disp

 

이 모드들은 x플래그(인덱싱)과 함께 사용할 수 있다.

 

 

 

Immediate addressing n = 0, i = 1

no reference addressing field 값이 직접 값으로 연산에 사용된다.

 

n = 1, i = 0

address에 있는 주소를 참조값으로 사용한다.

즉 메모리에 있는 값을 활용

 

n = 0, i = 0

sic

n = 1, i = 1

sic/xe

 

e = 0 -> format 3

e = 1 -> format 4

 

 

'시스템프로그래밍' 카테고리의 다른 글

SIC Machine  (0) 2024.03.08

본 글은 숭실대학교 컴퓨터학부 최재영 교수님의 시스템 프로그래밍 강의와 자료를 기반으로 작성되었습니다


 

컴퓨터 시스템 기본 구조

Fetch Decode Execute Cycle

Fetch : 프로그램 카운터(PC)에서 실행할 명령어를 명령어 레지스터(IR)에 저장한다. 이후 PC는 1 증가시킨다.

Decode : 가져온 2진코드를 해독하여 수행할 작업을 결정한다. (opcode, operand를 해석한다)

Get Data : 피연산자(operand)를 주기억장치로부터 가져온다

Execute : AlU를 통해서 연산을 수행한다.

 

SIC/XE (Simplified Instructional Computer)

 

단순화 시킨 가상 컴퓨터의 표준 모델

실제 컴퓨터 모델과 명령어를 이해하기 쉽게 단순화 시켜 놓았다.

SIC/XE는 SIC의 확장된 모델이다.

사양(?)을 살펴보자

 

Memory

byte와 word라는 단위를 사용한다

1byte는  8bit로 동일하고

1 word - 3byte(24bit)를 말한다.

 

최대 메모리는 2^15승이다. 메모리 표현을 위해서는 15비트가 필요하다.

 

Registers

SIC모델은 24bits(3bytes, 1word)의 5개 레지스터를 가진다

 

A - accumulator - 누산기로 연산 값이 누적되는 레지스터

X - index(반복문) - X값만큼 주소값에 더해주는 형태

L - Linkage - return address 저장

PC - Program Counter - 실행할 다음 인스트럭션 주소값

SW - Status Word - flag를 저장 (계산 결과에 따라)

 

다음 글에 설명할 SIC/XE 모델은 여기서 4개의 레지스터가 추가된다

 

B - Base register - used for Addressing

S, T - General working - 데이터 저장만 가능 산술 연산에 사용 불가

F - Floating-point - 부동 소수점을 위한 레지스터(48bits)

 

Data Formats

2가지 자료형을 가진다

Integer :  24bit 사용하는 숫자 자료형

Character : 1byte 아스키 코드 문자

 

 

Instruction Format

 

총 24bit 포멧이다

8bit는 명령어를 지정하고 뒤에 1비트는 인덱싱 모드를 지정하는 비트이다.

x = 0 Target Address = address

x = 1 Target Address = address + (X)

이때 (X)는 X레지스터에 있는 값이다. 이를 이용해 인덱싱 및 반복문을 지원한다

뒤에 15bit는 2^15승 SIC 모델의 메모리 주소값을 표현하기 위한 address

 

 

 

몇가지 인스트럭션 셋이다

모든 명령어는 Appendix에 있는데

추후에 설명할 Instruction Format 형식과 Opcode 에 대한 정보, 레지스터에 행해지는 연산 등이 기재되어있다.

'시스템프로그래밍' 카테고리의 다른 글

SIC/XE Machine  (0) 2024.03.08