*학부에서 배운 강의 내용을 바탕으로 작성되었습니다*
ISA(Instruction Set Architecture)
- 소프트웨어와 하드웨어 사이의 인터페이스를 정의하는 명령어의 집합이다.
- 명령어와 machine states(레지스터 + 메모리)를 정의한다.
명령어 형식(Instruction Format)
Opcode(연산코드)
: 수행될 명령어를 지정한다. (EX. mov, add jump etc.)
4비트를 할당하고 있어, 최대 2^4=16개의 서로 다른 연산코드 사용이 가능하다.
연산코드 목록의 일부
0001 = 메모리에 저장된 값을 AC에 적재
0010 = AC에 저장된 값을 메모리에 저장
0101 = 메모리에 저장된 값을 AC에 더함
Operands(피연산자)
: input/output 데이터와 주소를 지정한다.
12비트를 할당하고 있어 최대 2^12=4096(4K) 워드까지 직접 주소지정을 가능하게 한다.
명령어 반입(Instruction Fetch)과 명령어 수행(Instruction Execute)
- 처리기는 메모리로부터 한 번에 하나의 명령어를 반입(fetch)하여 수행한다.
- PC에 다음으로 fecth될 명령어의 주소를 저장한다.
- IR에 fetch된 명령어가 load된다.
프로그램 수행은 명령어 반입과 명령어 수행의 반복으로 이루어진다. 이러한 처리 과정을 명령어 사이클(Instruction cycle)이라고 한다.
명령어 사이클은 반입 단계, 수행 단계 두 단계로 구성된다.
프로그램의 수행이 중단되는 경우는 다음과 같다.
1. 기계의 전원이 꺼짐
2. 복구가 불가능한 어떤 오류가 발생됨
3. 처리기 정지(halt) 명령어가 수행됨
fetch된 명령어의 비트들은 처리기가 수행해야 할 작업을 명시한다.
처리기는 명령어를 해석하고 요구된 작업을 수행하는데, 일반적으로 작업은 아래의 4가지 범주로 분류될 수 있다.
1. 처리기- 메모리
: 데이터는 처리기로부터 메모리로, 또는 메모리로부터 처리기로 전송될 수 있다.
2. 처리기 - 입출력
: 처리기와 입출력 모듈 간의 전송을 통해 주변장치로 또는 주변장치로부터 데이터가 전송될 수 있다.
3. 데이터 처리
: 처리기는 데이터에 대해 산술 또는 논리 연산을 수행할 수 있다.
4. 제어
: 명령어는 수행 순서 변경을 명시할 수 있다.
Example of Program Execution
- PC에는 첫 번째 명령어의 주소인 300이 저장된다. 이 명령어(16진수로 1940)는 IR에 적재되고, PC가 증가된다.
이 과정에서 메모리 주소 레지스터(MAR)와 메 모리 버퍼 레지스터(MBR)가 이용된다. 설명을 간단히 하기 위해 이들 중간 단계 레지스터는 보이고 않았다. - IR 내의 첫 번째 4비트는 메모리에 저장된 값이 AC에 적재될 것을 나타낸다. 나머지 12비트(3개의 16진수)는 그 주소 940을 명시한다.
- 다음 명령어(5941)가 301번지로부터 반입되고 PC가 증가된다.
- AC의 이전 내용과 941번지 내용이 더해지고 그 결과가 AC에 저장된다.
- 다음 명령어(2941)가 302번지로부터 반입되고 PC가 증가된다.
- AC의 내용이 941번지에 저장된다.
'운영체제(OS, Operating System)' 카테고리의 다른 글
[운영체제(OS, Operating System)] Computer System Overview #1 (0) | 2023.04.07 |
---|