이전 글 : 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 |
---|