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