mano의 컴퓨터시스템 구조: 5장 기본 컴퓨터의 구조와 설계
5.1 명령어 코드
저장 프로그램 구조
- 컴퓨터의 가장 간단한 구성은 한개의 프로세서 레지스터를 두 개의 부분으로 구성된 명령어 코드를 사용하는 것이다.
- 한 부분은 실행할 연산, 다른 한 부분은 레지스터에 저장된 메모리내 주소를 기술
- 4096은 방의 개수, 16은 방의 크기를 의미
- 4096*16은 16비트의 방이 4096개 존재하는 메모리를 의미
간접 주소
- 직접주소(Direct address): 피연산자의 내용이 담고 있는 장소의 주소를 저장하고 있는 메모리 워드의 주소
- 간접주소(Indirect address): 주소의 내용을 담고 있는 장소의 주소를 저장하고 있는 메모리 워드의 주소
- (a)는 3비트의 연산 코드와 12비트의 주소, I로 표시되는 간접 주소 모드 비트로 구성되었다.
- 모드 비트가 0이면 직접 주소, 1이면 간접 주소를 나타낸다.
- (b)의 직접 주소 명령어는 메모리 주소 22에 놓여 있다. I비트는 0이고 연산코드는 ADD, 주소 부분은 457을 가리킨다.
- 따라서 (b)는 주소 457의 피연산자의 읽기와 AC의 내용에 더하는 동작을 한다.
- (c)의 명령어는 주소 35에 놓여 있으며, I비트는 1을 가리킨다.
- 따라서 이 명령어는 간접 주소를 사용하고, 제어를 통해 주소 300에 접근하면 실제로 피연산자가 존재하는 주소를 얻을 수 있다. 이 경우 피연산자의 주소는 1350이다.
유효주소(effective address)
: 계산형 명령어에서 피연산자의 주소와 분기형 명령어에서 목적 주소를 유효 주소라고 한다.
➡️ 457, 1350
5.2 컴퓨터 레지스터
다음 수행될 명령어의 주소를 알아낼 수 있는 다양한 종류의 레지스터..
Register | Symbol | Number of bits | Function |
Data register | DR | 16 | 메모리에서 읽어온 피연산자 저장 |
Address register | AR | 12 | 메모리 주소 저장 |
Accumulator | AC | 16 | 범용 처리 레지스터 |
Instruction register | IR | 16 | 명령어 저장 |
Program counter | PC | 12 | 명령어 주소 저장 |
Temporary register | TR | 16 | 계산 도중 임시 데이터 저장 |
Input register | INPR | 8 | 입력 전달 |
Output register | OUTR | 8 | 출력 전달 |
공통 버스 시스템
레지스터들 사이나 레지스터와 메모리 사이에 정보 전송을 하기 위한 경로
5.3 컴퓨터 명령어
기본 컴퓨터는 세 가지 명령어 코드 형식을 가지고 있으며, 각 명령어에서는 3비트로 구성된 연산 코드(opcode)에 의해 나머지 13비트의 의미가 결정된다.
5.4 타이밍과 제어
- T0 = AR ← PC, 타이밍 신호 T0가 1일 때, PC의 값을 AR로 전송
5.5 명령어 사이클
- 명령어를 메모리에서 가져온다(Fetch).
- 명령어를 디코딩한다(Decode).
- 간접 주소 방식의 명령어일 경우에 메모리로부터 유효 주소를 읽어온다.
- 명령어를 실행한다(Excute).
- 디코더의 출력의 D7이 1이면 디코딩된 명령어는 '레지스터 참조이거나 입출력 명령어'이다.
- D7 = 0이면, 메모리 참조 명령어이다.
레지스터 참조 명령어
D7 = 1이고 I =0인 명령어로, IR(0 - 11)에 있는 나머지 12비트로 12가지 명령어를 나타낸다.
5.6 메모리 참조 명령어
- AND: and 논리 연산
- ADD:합은 AC에 저장, 출력 캐리는 E플립플롭에 전송
- LDA: 유효주소로 지정된 메모리 워드의 내용을 AC에 전송
- STA: AC의 내용을 유효 주소로 지정된 메모리 워드에 전송
- BUN: 프로그램의 수행을 유효 주소로 지정된 명령어로 옮겨준다.
- BSA: 현재 PC에 저장되어 있는 순서상의 다음 명령어 주소가 유효 주소로 지정된 메모리에 저장되고, 유효 주소보다 1큰 값이 PC로 전송되어 서브루틴의 첫 명령어를 가리킨다.
- ISZ: 유효 주소로 지정된 워드의 값을 하나 증가시키고, 증가된 값이 0이면 PC도 증가시켜 다음 명령어를 수행하게 한다.
'Mano의 컴퓨터시스템구조' 카테고리의 다른 글
[mano의 컴퓨터시스템 구조] 7장 마이크로 프로그램된 제어 (0) | 2025.01.05 |
---|---|
[mano의 컴퓨터시스템 구조] 6장 기본 컴퓨터 프로그래밍 (2) | 2024.12.16 |
[mano의 컴퓨터시스템 구조] 4장 레지스터 전송과 마이크로 연산 (1) | 2024.11.21 |
[mano의 컴퓨터시스템 구조] 3장 데이터의 표현 (0) | 2024.11.15 |
[mano의 컴퓨터시스템 구조] 2장 디지털 부속품 (0) | 2024.11.09 |