Mano의 컴퓨터시스템구조

[mano의 컴퓨터시스템 구조] 5장 기본 컴퓨터의 구조와 설계

studyingalone 2024. 11. 27. 19:18

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 컴퓨터 레지스터

다음 수행될 명령어의 주소를 알아낼 수 있는 다양한 종류의 레지스터..

기본 컴퓨터 레지스터와 메모리, 출처: https://www.javatpoint.com/computer-registers

 

 

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 명령어 사이클

  1. 명령어를 메모리에서 가져온다(Fetch).
  2. 명령어를 디코딩한다(Decode).
  3. 간접 주소 방식의 명령어일 경우에 메모리로부터 유효 주소를 읽어온다.
  4. 명령어를 실행한다(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도 증가시켜 다음 명령어를 수행하게 한다.