COMPUTER SYSTEM ARCHITECTURE +8
  1. 2014.10.11 제어 장치의 설계
  2. 2014.10.11 fetch
  3. 2014.10.11 마이크로 프로그램의 예
  4. 2014.10.11 주소 시퀀싱
  5. 2014.10.07 제어 메모리(Control Memory)
  6. 2014.09.28 부울 대수
  7. 2014.09.28 논리 게이트
  8. 2014.09.28 디지탈 컴퓨터

7. 마이크로 프로그램된 제어


7.4 제어 장치의 설계


- 마이크로 명령어의 각 필드

  • 마이크로 명령어는 각각 독립된 기능을 가지는 여러 개의 필드(F1, F2, F3)로 구성되어 있다. 
  • 각 필드는 마이크로 연산을 구동시키기 위한 제어 비트를 포함 or
  • 다음에 실행될 마이크로 명령어의 주소를 결정하는 방법을 지시 or
  • 분기를 위한 주소를 포함

- 제어 비트를 인코딩한 실례

  • 9비트의 마이크로 연산 필드가 3비트씩 3개의 하부 필드로 구분
  • 각 하부 필드는 디코딩되어 각각 서로 다른 마이크로 연산을 표시 

마이크로 연산 필드의 디코딩


  • 3개의 3x8 디코더
  • 마이크로 명령의 3개의 연산필드를 디코딩하여 구성
  • 예) F1 = 101일 때
    • DR(0-10)의 값이 AR로 전송(DRTAR)되며, 
  • 예2) F=100 이면
    • PC의 값이 AR로 전송(PCTAR)된다.
  • 위 그림에서 보여주듯이 F1 디코더의 출력 5와 6이 AR의 로드입력에 연결된다.
  • 디코더 출력 5는 멀티플렉서에도 연결이 되며 그 값이 1이면 DR을 선택, 0이면 PC를 선택한다.

  • 산술 및 논리 시프트 장치를 위한 제어
  • AND, ADD, DR 등으로 표시되는 제어 신호를 만들기 위하여 게이트를 사용하지 않고 마이크로 명령의 연산 필드를 디코딩한 출력을 이용


마이크로 프로그램 시퀀서

- 마이크로 프로그램된 제어장치의 기본 요소
  • 제어 메모리와 다음 주소를 결정하는 회로
  • 주소를 결정하는 부분은 마이크로 프로그램 시퀀서라 부른다.

- 다음 주소를 결정하는 요인
  • 현재 진행중인 마이크로 명령어의 주소 비트와 상태 비트이다.
  • 장치내에 레지스터 스택이 있어서 마이크로 연산의 루프나 서브루틴 호출할 때의 일시적인 주소를 저장하기도 한다. 

-마이크로 프로그램 시퀀서의 내부 구조

마이크로 연산 필드의 디코딩




- 동작
  • 4개의 주소 소스 중 하나를 골라 CAR로 보내는 멀티플렉서 1과 상태비트를 선택하여 그 값을 입력논리회로에 보내는 멀티플렉서 2가 있다
  • CAR의 출력은 제어 메모리의 주소를 나타낸다.
  • CAR+1의 값은 멀티플렉서 입력중 하나가 되기도 하고 SBR에 전송되기도 한다.
  • 멀티플렉서 1의 다른 3개의 입력은 각각 현재 진행중인 마이크로 명령어의 주소 필드, SBR의 출력 및 매크로 연산을 위한 외부 입력 등이 있다. 

- 입력 논리회로
  • I0, I1, T의 입력과 S1, S0, L의 출력을 갖는다.
  • S1, S0은 CAR을 위한 번지를 어디서 가져올 것인가를 선택 
  • L은 SBR의 로드(load) 동작을 하게 한다.

- 입력 논리의 진리표

마이크로 프로그램 시퀀서를 위한 입력 논리 진리표


  • I0과 I1 두 비트는 BR필드의 값과 같다.
  • BR = 01이면 call 마이크로 명령어인데 그 동안 CAR+1의 값이 SBR에 로드된다.
  • 이 진리표를 부울 대수식으로 표현하면 
S1 = I1 
S0 = I1I0 + I'1 + T 
L = I1I0T 


- 인크리먼트 회로
  • 플립플롭을 사용한 것이 아니라 조합 회로이어야 한다.
  • 반가산기 회로를 종속 접속하게 하여 설계할 수 있다.
  • 한 스테이지의 출력 캐리는 다음 스테이지의 입력 캐리가 되어야 한다.
  • 가장 처음 스테이지의 입력 캐리는 1로 고정되어야 1이 증가되는 동작을 할 수 있다. 



'COMPUTER SYSTEM ARCHITECTURE' 카테고리의 다른 글

fetch  (0) 2014.10.11
마이크로 프로그램의 예  (0) 2014.10.11
주소 시퀀싱  (0) 2014.10.11
제어 메모리(Control Memory)  (0) 2014.10.07
부울 대수  (0) 2014.09.28

Fetch



명령 레지스터에 들어 있는 명령을 읽고 대상이 되는 어드레스를 찾아 명령을 실행하는 기초적인 절차. 중앙 처리 장치(CPU) 동작에 있어서 기억 장치에서 데이터를 읽어 내고, 이 판독 데이터가 어떤 명령인가를 해석하기 위하여 제어 부분으로 데이터를 보낼 때까지의 행위. CPU가 명령을 실행하는 순서는 다음과 같다. 우선 CPU는 메모리에 대하여 어느 곳의 어드레스를 판독하는지를 지정하기 위하여 CPU측에서 어드레스를 확정시킨다. 어드레스의 확정에 따라서 메모리는 데이터를 내고, CPU는 이것을 떠맡으며, 또한 받아들인 데이터를 해석하는 부분으로 전송한다. 데이터를 해석할 부분에서는 이것이 명령인지, 또는 명령에 부속되는 데이터인지를 조사한다. CPU는 해석한 명령에 대응한 실제의 동작을 실행한다. 이들의 절차 중에서 데이터 전송 작업은 호출 또는 호출 사이클(fetch cycle)이라 불리는 것이다.



네이버 지식백과


'COMPUTER SYSTEM ARCHITECTURE' 카테고리의 다른 글

제어 장치의 설계  (0) 2014.10.11
마이크로 프로그램의 예  (0) 2014.10.11
주소 시퀀싱  (0) 2014.10.11
제어 메모리(Control Memory)  (0) 2014.10.07
부울 대수  (0) 2014.09.28

7. 마이크로 프로그램된 제어


7.3 마이크로 프로그램의 예


일단 컴퓨터와 마이크로 프로그램된 제어 장치의 구조가 결정되면, 제어 메모리에 마이크로 프로그램을 작성해 넣어야 한다. 간단한 범용 컴퓨터로 마이크로 프로그램을 작성하는 방법을 보이기로 한다.


- 컴퓨터 하드웨어의 구성

컴퓨터 하드웨어 구성



  •  주 메모리는 명령어와 데이타를 저장
  • 프로세서 레지스터로 프로그램 카운터(PC), 주소 레지스터(AR), 데이타 레지스터(DR), 누산기 레지스터(AC)를 가지고 있다.
- 제어장치의 구성
  • 마이크로 명령어를 저장하기 위한 제어 메모리
  • 마이크로 프로그램된 제어장치를 구성하기 위한 제어 주소 레지스터(CAR)과 서브루틴 레지스터(SBR) 등이 있다. 
- 레지스터 간의 정보 전송
  • 멀티플렉서를 통해 정보 전송
  • DR은 AC, PC 및 메모리로부터 데이타를 받는다.
  • AR은 PC와 DR로부터 데이타를 받는다.
  • PC는 AR로부터만 데이타를 받는다.
- 산술 논리 시프트 장치의 정보 전송
  • AC와 DR에 있는 데이타에 대해 마이크로 연산을 수행
  • 그 결과는 AC에 저장
- 메모리의 정보전송
  • DR하고만 데이타를 주고 받을 수 있다.



- 컴퓨터의 명령어 형식

컴퓨터 명령어



  • 그림(a)

  • I비트는 간접주소를 표시
  • 연산 코드(opcode) 는 4-비트
  • 주소비트는 11-비트
  • 그림(b)
  • ADD 명령어는 유효주소에 저장되어 있는 피연산자를 AC에 더한다.
  • BRANCH 명령어는 AC에 있는 피연산자가 음수일 때 유효 주소로 분기
  • STORE 명령어는 AC의 값을 유효 주소로 지정된 메모리에 저장
  • EXCHANGE 명령어는 AC의 데이타와 유효 주소로 지정된 메모리의 데이타를 서로 교환




마이크로 명령어 형식(Format)


- 마이크로 명령어 형식

마이크로 명령어 코드 형식(20비트)



- 구성

  • 20비트로서 4개의 필드로 구분
  • F1, F2, F3 필드는 컴퓨터의 마이크로 연산을 지정하며 각각 3비트로 구성
  • CD 필드는 상태 비트 조건을 선택
  • BR 필드는 분기의 종류를 지정
  • AD 필드는 분기주소를 가지며 주소 필드는 7비트로 구성되므로 제어 메모리의 크기가 128=2의 7제곱



 마이크로 명령어의 각 필드에 대한 기호와 이진 코드





- F1, F2, F3에 대한 7가지 동작

  • 모두 21개의 동작을 수행 
  • 하나의 마이크로 명령어에는 세 개의 동작만 지정
  • 세 개의 동작을 모두 사용하지 않을 때에는 해당 필드의 값을 이진수 000으로 지정
  • 위 표의 마이크로 연산들은 레지스터 전송문으로 정의되고 마이크로 프로그램에서 사용되는 기호로 나타내고 있다.
  • 이 중에서 전송을 나타내는 마이크로 연산은 근원 레지스터와 목적 레지스터를 포함하도록 다섯 개의 문자로 표시. ex) DR 에서 AC로 전송하는 동작은 DRTAC

예시)

F1 = 000, F2 = 100, F3 = 101의 값을 주면 다음과 같이 두 개의 마이크로 연산을 동시에 지정할 수 있다.

DR ← M[AR]    (F2 = 100)

PC  PC + 1    (F3 = 101)

그러나 010 001 000과 같은 값을 지정하면 AC를 0으로 클리어하는 동작과 AC에서 DR을 빼는 동작을 동시에 수행하여 충돌이 발생. 이와 같은 동작은 동시에 지정할 수 없다. 


- CD(조건) 필드의 동작

  • 상태 비트 중 하나를 지정
  • 조건은 항상 1인 것으로서 CD = 00일 때 항상 참인 조건을 표시. BR(분기) 필드와 함께 사용되어 무조건 분기동작을 수행
  • 간접비트 I는 DR의 15번째 비트에, S는 AC의 부호 비트에 따라 그 값이 정해지는 상태 비트
  • Z는 AC가 0일 때 참이 되는 상태 비트
- BR 필드의 동작
  • 2비트로 구성
  • 주소 필드 AD와 연관되어 쓰일 때 바로 다음 마이크로 명령어의 주소를 선택
  • BR = 00 이면 점프(JMP) 동작, BR = 01 이면 서브루틴 CALL 동작을 한다.
  • JMP와 CALL은 CD 필드의 영향을 받는다. 
  • CD 필드에서 선택된 조건이 1이면 AD에 있는 주소로 분기, 0이면 바로 다음 명령을 실행
- 서브루틴으로부터의 복귀
  • SBR의 값이 CAR로 옮겨지는 것으로 BR = 10일 때이다.
  • BR = 11 이면 매크로 연산 비트로부터 CAR로의 매핑은 7.2의 2번째 그림과 같다.
  • 매크로 연산은 명령어의 Op-코드 부분을 말하는 것인데, DR(11-14)로써 나타낸다.
  • BR 필드의 마지막 2조건은 CD와 AD 필드의 값과 무관함에 유의


기호로 표시된 마이크로 명령어


위의 표에 정의된 기호는 마이크로 명령어를 기호형태로 나타내는 데 사용

기호로 표시된 마이크로 명령어는 어셈블러를 통해 이진 코드로 바꿀 수 있다.

각 기호로 된 마이크로 명령어는 라벨(label), 마이크로 연산, CD, BR, AD등 다섯 개의 필드로 나뉜다. 각 필드는 다음과 같은 정보를 갖게 된다.


- Label 필드

  • 공백일 수도 있으며, 기호 주소를 표시할 수도 있다.
  • 라벨 뒤에는 콜론(:)이 붙어야 한다. 
- 마이크로 연산 필드
  • 위 표에서 정의된 한 개나 두 개 또는 세 개의 기호로 구성
  • 각 기호는 콤마(,)로 분리
- CD 필드
  • U, I, S, Z 중 하나의 문자를 갖는다.
- BR 필드
  • 위 표에서 정의된 4개의 기호들 중 하나를 갖는다.
- AD 필드
  • 3가지의 기호들 중 하나를 갖는다. 이는 다음 주소를 결정하는 방법을 표시한다.
  • 기호 주소(이는 라벨로 프로그램상에 나타나야 한다)
  • NEXT(이는 연속된 다음 주소를 뜻한다)
  • BR이 RET이나 MAP이면 AD는 공란으로 둔다.
- ORG 슈도 명령어
  • 마이크로 프로그램 루틴의 처음 시작 위치를 표시
  • ORG 64는 제어 메모리의 64번지에 다음 마이크로 명령어를 기억시키라는 뜻

Fetch 루틴

- 제어워드의 구성
  • 128개의 워드를 가지며, 각각의 워드는 20비트로 구성
  • 0~63번지는 16개의 매크로 연산을 위한 루틴으로 사용
  • 64~127번지는 fetch 루틴이나 indirect 루틴이나 그외의 다른 용도로 사용
- fetch 사이클 루틴
  • fetch 루틴에 필요한 마이크로 명령어
AR ← PC 
DR ← M[AR], PC ← PC + 1 
AR ← DR(0-10), CAR(2-5) ← DR(11-14), CAR(0,1,6) ← 0 

- 동작
  • 명령어의 주소가 PC에서 AR로 전송
  • 명령어 중 명령코드는 DR로 읽혀지고 주소 부분은 AR로 전송된다.
  • DR의 연산 코드 부분을 CAR로 매핑시킴으로써 16개의 루틴 중 하나로 제어를 옮긴다.
- fetch 루틴의 마이크로 명령어에 대한 어셈블리
fetch 사이클 루틴은 제어 메모리의 주소 64, 65, 66에 위치하는 세 개의 마이크로 명령어로 구성할 수 있다. 이전에 정의된 어셈블리어로 다음과 같이 쓸 수 있다.
                 ORG 64 
    FETCH:  PCTAR             U JMP NEXT    /PC를 MAR로
                 READ, INCPC U JMP NEXT    /명령 읽고, PC 증가
                 DRTAR             U MAP            /MBR(AD)를 MAR로, 또 mapping


- fetch 루틴의 이진 코드

 어셈블러는 다음과 같은 기호로 된 프로그램에 대응하는 이진 코드를 만들어낸다. 제어 메모리에 이와 같은 이진 코드가 기억된다. 

 일반적으로 기호 형태로 마이크로 프로그램을 작성, 어셈블러를 이용해서 그에 대응하는 이진 코드를 만든다. 

Binary address 

F1

F2 

F3 

CD

BR 

AD 

1000000

110

000 

000 

00

00

1000001

1000001

000

100 

101 

00 

00 

1000010 

1000010

101 

000 

000 

00 

11 

0000000 



기호로 표시된 마이크로 프로그램


 fetch 사이클의 마지막 동작은 fetch 된 매크로 연산의 루틴으로의 분기 동작이다.


- 예) Op-코드가 0000인 ADD 명령어

  • CAR에 0000000을 갖다 놓게 되어 ADD루틴을 수행, BRANCH는 0000100으로 매핑되어 4번지의 BRANCH 명령의 루틴을 수행, STORE는 0001000가 그 루틴의 시작 위치가 된다. 
  • 각 루틴은 네 개의 마이크로 명령어를 가질 수 있다.

- 유효 주소를 계산하는 동작
  • 각 루틴에서는 유효 주소를 계산하는 동작이 공통적으로 필요. 이것을 서브루틴화하면 제어 메모리를 효율적으로 사용가능
  • 이 서브루틴을 INDRCT 서브루틴이라 하고 fetch루틴 다음에 저장하기로 한다.

기호로 표시된 마이크로 프로그램


- fetch cycle 루틴

- 간접 서브루틴

- ADD 루틴

- BRANCH 루틴

- STORE 루틴


- 간접 루틴의 실행

  • fetch 사이클의 맨 끝에 있는 매핑동작에 의해 이 루틴으로 분기

  • 명령의 각 루틴의 첫번째 명령에서 I=1이면 간접 서브루틴을 호출하고 리턴주소는 SBR에 저장

    • 간접 서브루틴의 마이크로 명령

INDRCT: READ      U  JMP  NEXT     /MBR ← M
            DRTAR     U  RET           /MAR ← MBR(AD), CAR ← SBR
  • 이 서브루틴으로부터 리턴(RET)할 때에는 SBR의 내용을 CAR로 옮김으로써 ADD루틴의 두번째 마이크로 명령어부터 수행하게 된다. 
- ADD 루틴의 실행
  • 메모리에서 DR을 통해 피연산자를 읽고 이를 AC와 더한다.
  • 이 동작의 실행이 끝난 후에 fetch루틴의 처음으로 점프(jump)한다.
- BRANCH 루틴의 실행
  • AC가 음수일 때만 유효주소로 분기
  • AC가 음수이면 S=1이 되어 이 상태를 인식
  • 표 7-2의 분기 루틴 S의 값을 조사하여 S=0이면 PC의 값을 변경시키지 않아 분기가 일어나지 않게 되고, 다음 마이크로 명령어는 fetch루틴으로 분기
  • S=1이면 JMP마이크로 명령어는 OVER의 위치로 분기하게 하고, 이 위치에서 I=1이면 간접 서브루틴을 호출하고 다시 유효주소가 PC로 전송되고 fetch루틴으로 넘어간다.
- STORE 루틴의 실행
  • I=1이면 간접 서브루틴을 호출
  • AC의 내용이 DR로 전송, DR의 내용이 유효 주소에 저장
- EXCHANGE 루틴의 실행
  • 유효 주소로부터 DR로 피연산자를 읽어온다.
  • 모서리-트리거형 레지스터의 성질을 이용하여 3번째 마이크로 명령어에서 AC와 DR의 값이 교환된다.
  • DR에 저장된 원래 AC의 값은 메모리로 다시 저장된다.
표 7-2는 16개의 명령어 중에서 4개만을 마이크로 프로그램화 한 것이다. 제어 메모리의 69번지부터는 아직 사용하지 않은 상태이다. 곱셈, 나눗셈 등은 4개 이상의 마이크로 연산을 필요로 하는데 69에서 127번까지의 제어 메모리가 그러한 목적을 위해 사용된다.



이진 마이크로 프로그램


제어 메모리를 위한 이진 마이크로 프로그램


  • 기호로 표시된 마이크로 프로그램은 읽거나 이해하기에 쉽게 쓰여 있지만, 실제 메모리에 저장되는 형태가 아니다. 따라서 어셈블러나 또는 사람이 직접 이진 코드로 바꾸어야 한다. 
  • 표 7-2는 어셈블러에 의해 표 7-3의 이진 마이크로 프로그램으로 변환
  • 이진 마이크로 프로그램은 제어 메모리 즉, ROM에 저장되어 있다.
  • 이런 방식의 제어논리를 마이크로 프로그램 제어라 한다. 













'COMPUTER SYSTEM ARCHITECTURE' 카테고리의 다른 글

제어 장치의 설계  (0) 2014.10.11
fetch  (0) 2014.10.11
주소 시퀀싱  (0) 2014.10.11
제어 메모리(Control Memory)  (0) 2014.10.07
부울 대수  (0) 2014.09.28

7. 마이크로 프로그램된 제어


7.2 주소 시퀀싱


- 마이크로 명령어

  • 여러 개의 그룹(MRI, RRI, IOI)으로 나누어 저장
  • 각 그룹은 하나의 루틴[각주:1]을 형성
  • 각 명령어는 그 명령어를 수행하는 자신의 루틴을 가지고 있다. 

- 제어 메모리의 주소
  • 하나의 루틴내에서 연속적인 마이크로 명령을 수행하도록 한다.
  • 다른 루틴으로 분기할 수도 있다.

- 주소 시퀀싱
  • 초기 동작
    • 전원이 켜지면 초기 주소가 제어 주소 레지스터에 저장
    • 이 초기주소는 fetch루틴의 처음을 수행하는 마이크로 명령어가 기억된 제어 메모리의 주소이다.
    • 제어주소 레지스터의 값을 하나씩 증가시켜 fetch루틴을 끝내고난 다음에 명령어는 명령어 레지스터에 저장된다.
  • 유효 주소를 계산하는 루틴(진짜 주소 찾기)
    • status bit[각주:2]에 의해 다음 유효 주소를 계산하는 루틴의 주소로 분기
    • 이 루틴이 끝나면 메모리 주소 레지스터에 피연산자의 주소가 저장
  • fetch된 명령어(opcode)을 수행하는 일련의 마이크로 연산 수행
    • 마이크로 연산은 매크로 연산(macro operation)[각주:3]이라 불리기도 하는 명령어의 Op-코드 부분에 의해 동작
    • 각 매크로 연산은 그 자신의 전용 루틴을 제어 메모리에 가진다. 
    • 매크로 연산의 비트로 ROM에서 루틴의 첫째 주소를 찾는 것을 "매핑(mapping)"이라 한다. 
    • 일단 요구된 루틴에 도착하면 제어 주소 레지스터를 하나씩 증가시켜 연속된 마이크로 명령을 수행하게 하거나 상태비트에 따라 분기하기도 한다. 
    • 서브루틴을 사용하는 마이크로 프로그램에서 리턴주소는 외부의 레지스터나 스택에 저장한다. 
    • 명령어의 수행이 완료되면 무조건 분기[각주:5] 마이크로 명령어를 사용해서 fetch루틴으로 돌아온다. 
제어 메모리에서 주소를 결정하는 방법
  1. 제어 주소 레지스터를 하나 증가시킴 (CAR + 1, 순차적인 시퀀싱)
  2. 무조건 분기와 상태 비트 조건에 따른 조건부 분기
  3. 명령어의 비트들로부터 제어 메모리의 주소를 매핑하는 처리
  4. 서브루틴을 호출하고(call), 복귀하는(return) 기능



- 주소 시퀀싱을 위한 구성도

제어 메모리에 대한 주소의 선택



- 여기서는 제어주소 레지스터에 주소가 입력되는 4가지 방법을 설명

- 인크리먼트는 제어주소 레지스터의 값을 하나씩 증가시켜 순차적 수행이 이루어지도록 한다.

- 분기는 마이크로 명령어의 한 필드에서 지정된 분기주소에 의해 이루어진다. 

- 조건부 분기는 마이크로 명령어의 일부를 참조하여 분기조건을 결정하기 위한 상태비트를 선택한다. 

- 외부주소는 매핑 논리회로를 통하여 제어메모리로 전송한다.

- 서브루틴의 복귀주소는 서브루틴 레지스터에 저장한다. 



조건부 분기


- <제어 메모리에 대한 주소의 선택>의 분기논리

  • 상태비트가 가지는 정보에 따라 선택적인 분기 동작을 하게 되어 제어장치는 판단능력을 가지게 된다.
- 분기논리의 하드웨어 설계방법
  • 특정 상태를 테스트하고 조건에 맞다면 주어진 주소로 분기, 그렇지 않다면 바로 다음의 마이크로 명령어 수행
  • 멀티플렉서를 이용하여 설계
  • 8개의 상태비트가 있다고 가정, 마이크로 명령어 중 3비트가 이 8개의 상태 비트 중 하나를 선태
  • 선택된 상태비트가 1이면 멀티플렉서의 출력이 1이 되어 지정된 주소를 CAR로 로드
  • 0이면 멀티플렉서의 출력이 0이 되어 CAR을 인크리먼트
  • 이 경우 마이크로 프로그램은 상태비트 값에 따라 둘 중 하나의 경로를 따라 진행

무조건 분기

- 제어 메모리로부터 분기 주소를 적재함으로써 구현
- 상태비트 중 하나를 1로 고정시키고 이 비트를 선택케 함으로써 가능


명령어의 매핑

- 어떤 매크로 연산을 수행하는 제어 메모리의 루틴으로 분기하는 경우
  • 분기하는 주소를 결정하기 위해서는 명령어의 Op-코드 부분(명령어의 연산부, 마이크로 명령어)이 사용된다.

명령어 코드로부터 제어 메모리 주소로의 매핑


위 그림과 같이 4비트의 Op-코드를 가진 명령어가 있고, 또 워드의 제어 메모리가 있다고 가정.

- 4비트의 Op-코드를 이용하여 매핑

- 각 매리크로 연산을 위한 루틴으로 분기하려면 7개의 주소를 나타내는 주소비트가 필요

- 4비트의 Op-코드를 7비트의 주소로 매핑하는 작업(위 그림)

- 가장 오른쪽 2비트와 가장 왼쪽 1비트를 0으로 하여 7비트의 주소비트 구성

- 한 개의 매크로 연산은 4개의 마이크로 명령어를 가질 수 있게 된다.

- 루틴이 4개 이상의 마이크로 명령어를 필요로 하면 1000000에서 1111111 까지의 주소를 이용할 수 있다.

- 메모리 매핑은 programmable logic device(PLD)라 불리는 직접 회로 방식으로 흔히 실현



서브루틴


- 마이크로 프로그램이 동일한 코드 모임을 가질 때 이 부분을 서브루틴화함으로써 제어 메모리를 절약

- 예를 들어 피연산자의 유효 주소를 계산하는 것은 메모리 참조 명령어 모두가 가지는 것이므로 서브루틴으로 만드는 것이 편리하다. 

- 리턴 주소는 SBR에 기억시켜 두고 서브루틴으로 분기



  1. 컴퓨터 프로그램에서 어떤 일을 담당하는 하나의 정리된 일. http://terms.naver.com/entry.nhn?docId=835962&cid=42344&categoryId=42344 [본문으로]
  2. 명령어가 간접 주소나 인덱스 주소 등 다양한 주소 지정 모드를 구별하기 위해 가지는 비트 [본문으로]
  3. 반복적으로 수행되어지는 연산 [본문으로]
  4. 루틴은 메인 루틴(main routine)과 서브루틴(subroutine)으로 구분하고 있다. 메인 루틴이란 프로그램의 주요한 부분이며, 전체의 개략적인 동작 절차를 표시하도록 만들어진다. 이 대강의 정도는 서브루틴의 작업 정도에 의해 정해진다. 결국, 메인 루틴에서는 몇 가지의 서브루틴을 호출하고, 서브루틴에 의해서 프로그램의 세세한 실행을 행한다. 서브루틴이란 프로그램의 일부를 담당하는 부분 프로그램이며, 메인 프로그램으로부터 호출되어 실행된다. [네이버 지식백과] 루틴 [routine] (컴퓨터인터넷IT용어대사전, 2011.1.20, 일진사) [본문으로]
  5. 프로그램의 그때까지의 조건과 상태에 무관하게 그 제어를 다른 부분으로 옮기는 명령. [본문으로]

'COMPUTER SYSTEM ARCHITECTURE' 카테고리의 다른 글

fetch  (0) 2014.10.11
마이크로 프로그램의 예  (0) 2014.10.11
제어 메모리(Control Memory)  (0) 2014.10.07
부울 대수  (0) 2014.09.28
논리 게이트  (0) 2014.09.28

7. 마이크로 프로그램된 제어


7.1 제어 메모리


- 제어장치

요구되는 마이크로 연산들을 연속적으로 수행하게 하는 신호를 만들고, 보냄으로써 명령을 수행하게 한다. 


- 제어장치의 설계방식

  • 하드와이어드(hard wired) 제어 장치
제어장치가 일상적인 논리회로 설계방식대로 설계
    • 비용이 비싸고, 회로가 복잡하며 융통성이 없다.
    • 속도가 빠르다.
  • 마이크로 프로그램된 제어 장치(microprogrammed control unit)
    • 특정한 마이크로 연산을 수행하기 위해서 2진 변수의 모임 즉, 제어워드(Control Word)를 만들도록 한다.
    • 이 비트의 모임(제어워드)이 어떤 연산을 수행할 것인지를 결정한다.
    • 이 제어워드를 마이크로 명령어라 부르기도 한다.
    • 제어워드가 특수한 기억 장치 속에 저장될 때 이를 마이크로 프로그램이라 한다.
    • 마이크로 명령어가 저장되는 장소는 ROM, 이 때의 ROM을 제어 메모리라고 한다.
    • 제어 메모리 - 제어 장치에서 사용되는 메모리
    • 비용이 저렴하고, 회로가 간단하고, 융통성이 있다.
    • 속도가 느리다.

- 마이크로 프로그램된 제어 장치를 사용하는 컴퓨터
두 종류의 기억장치를 가진다.
  • 주 메모리
사용자가 명령과 데이타를 넣을수 있도록 하고 그 내용을 변경하는 것이 가능
  • 제어 메모리
명령과 데이터 내용이 고정되어 있어 사용자가 직접 사용할 필요가 없게 되어 있음


- 마이크로 프로그램

  • 내부 제어 신호를 지정하는 여러 가지 마이크로 명령어들로 구성
  • 각각의 기계 명령어가 제어 메모리에 있는 일련의 마이크로 명령어의 실행을 시작
  • 주 메모리에서 명령어를 fetch, 유효 주소 계산, 명령어에서 지정된 동작의 수행 및 다음 명령어에 대한 fetch단계를 수행 -> 사이클을 반복할 수 있게 하는 마이크로 연산을 수행

- 마이크로 프로그램된 제어 장치의 구성

마이크로 프로그램된 제어 구조



  • 제어 메모리의 주소 레지스터는 마이크로 명령어의 주소를 지정
  • 제어 데이타 레지스터는 메모리에서 읽어온 마이크로 명령어를 보관, 이 마이크로 명령어는 데이타 프로세서에 대한 하나 이상의 마이크로 연산을 지정하는 제어 워드로 표현됨
  • 다음 주소 발생기(마이크로 프로그램 시퀀서)는 다음 마이크로 명령어의 주소를 결정하며, 원래의 제어주소 레지스터를 하나씩 증거사키거나 제어 메모리로부터 다음 주소를 얻어오거나, 외부로부터 입력을 받거나 제어동작을 시작하기 위해 초기주소를 적재한다. 

- 마이크로 프로그램된 제어의 장점
  • 일단 만들어진 하드웨어 구성은 변경시킬 필요가 없다.
  • 새로운 제어 순서를 만들기 위해서는 제어 메모리의 마이크로 프로그램만 수정하면 됨.



'COMPUTER SYSTEM ARCHITECTURE' 카테고리의 다른 글

마이크로 프로그램의 예  (0) 2014.10.11
주소 시퀀싱  (0) 2014.10.11
부울 대수  (0) 2014.09.28
논리 게이트  (0) 2014.09.28
디지탈 컴퓨터  (0) 2014.09.28

1. 디지털 논리 회로


1.3 부울대수


- 부울 대수 : 이진 변수와 논리 동작을 취급하는 대수.

- 변수 : 일반적으로 A, B, x, y, z 등의 문자로 표시. 

- 3개의 기본적인 동작 : AND, OR, NOT.

- 부울 대수의 목적 : 디지털 회로의 해석과 설계를 쉽게 하는데 있음. 

- 부울 대수는 다음과 같은 사항을 수행하는데 편리한 도구 

  • 변수사이의 진리표 관계를 대수형식으로 표시 
  • 논리도의 입출력 관계를 대수형식으로 표시 
  • 같은 기능을 가진 더 간단한 회로 발견 

F = x + y'z 함수의 논리도와 진리표




부울 대수의 기본 관계


예) F = ABC+ABC'+A'C → F = AB+A'C   

  = AB(C+C')+A'C = AB+A'C


수식의 보수
- 드 모르간의 정리 이용 
- 어떤 수식에서 모든 OR연산은 AND로, AND연산은 OR로 바꾸어 주고 각 변수를 보수화한다 
 예) F=AB+C'D'+B'D 
      F'=(A'+B')(C+D)(B+D') 




'COMPUTER SYSTEM ARCHITECTURE' 카테고리의 다른 글

마이크로 프로그램의 예  (0) 2014.10.11
주소 시퀀싱  (0) 2014.10.11
제어 메모리(Control Memory)  (0) 2014.10.07
논리 게이트  (0) 2014.09.28
디지탈 컴퓨터  (0) 2014.09.28

1. 디지털 논리 회로


1.2 논리게이트


- 디지털 컴퓨터에서 이진 정보는 물리량인 전압 신호를 이용하여 0과 1로 표현.

- 게이트 (gate)

  • 이진 정보를 처리하는 논리회로.
  • 입력 논리의 필요조건을 만족할 때 1 또는 0의 신호를 만드는 하드웨어 블록.
  • 논리 회로를 구성하는데 사용하는 기본 요소
  • 각 게이트의 동작은 대수 함수로 표시
  • 입출력 관계는 진리표(truth table)라는 형식으로 표시

논리 게이트의 종류



논리 표현식에서 '표시는 보수(complement)를 의미하며, 기호 표시에서의 작은 윈도 인버터(inverter), 즉 보수를 의미.




'COMPUTER SYSTEM ARCHITECTURE' 카테고리의 다른 글

마이크로 프로그램의 예  (0) 2014.10.11
주소 시퀀싱  (0) 2014.10.11
제어 메모리(Control Memory)  (0) 2014.10.07
부울 대수  (0) 2014.09.28
디지탈 컴퓨터  (0) 2014.09.28

1 디지탈 논리 회로


1.1 디지탈 컴퓨터


- 디지털 컴퓨터 : 여러 가지 계산을 수행하는 디지털 시스템.


- 디지털(digital) : 컴퓨터 내부의 정보가 제한된 수의 불연속적인 값으로 표시된다는 것을 의미. 예를 들어 십진수 0, 1, 2, ..... 9는 10개의 불연속적인 값을 나타낸다.


- 디지털 컴퓨터는 0과 1의 두 개의 숫자만을 사용하는 이진수 시스템.

   하나의 이진 숫자를 비트(bit)라 함.


- 이진수 1001011은 십진수로

1×26+0×25+0×24+1×23+0×22+1×21+1×20=75


- 컴퓨터는 하드웨어와 소프트웨어 두부분으로 구성.

  • 하드웨어 : 컴퓨터의 모든 전자 제품과 주변 장치를 구성하는 전자기적 부품들을 말함.
  • 소프트웨어 : 컴퓨터의 다양한 정보 처리 작업을 수행하는 명령어와 데이터로 구성.
  • 프로그램 : 컴퓨터에서 연속된 명령어들.
  • 데이터베이스 : 프로그램에 의해 조작되는 데이터들.

- 시스템 입장에서 컴퓨터는 하드웨어와 시스템 소프트웨어로 구성

  • 시스템 소프트웨어(운영체제) : 컴퓨터 시스템을 효율적으로 사용하기 위한 목적을 가진 프로그램 집합을 말함.
디지탈 컴퓨터의 블럭 구성도


  • 중앙 처리 장치(CPU) : 데이터를 조작하는 산술 및 논리 연산 부분, 데이터를 저장하는 여러 개의 레지스터, 명령어를 가져와 수행하는 제어 회로등이 있음.

  • 컴퓨터 기억 장치 : 명령어와 데이터를 저장하는 장치.

  • 입출력 프로세서(IOP) : 컴퓨터와 외부 세계와의 통신과 데이터 전송을 제어하는 부분.


♣ 컴퓨터를 연구자의 관심에 따라 분류 


- 컴퓨터 조직(Computer Organization) 

    •  하드웨어 구성품들의 동작 방식과 이들의 연결방식에 관심을 두는 것으로 각 부품들이 제대로 동작하기 위한 조직적인 구조를 연구.

- 컴퓨터 설계(Computer Design) 

    •  컴퓨터 하드웨어 설계. 
    •  제시된 컴퓨터의 사양에 따라 적절한 하드웨어를 선택하고 그들간의 연결방식을 결정하여 시스템 개발. 
    •  컴퓨터의 구현. 

- 컴퓨터 구조(Computer Architecture) 

    •  사용자 입장에서 컴퓨터의 구조나 동작에 관심.
    •  정보의 형식이나 명령어 집합, 메모리 주소기법 등을 연구. 





'COMPUTER SYSTEM ARCHITECTURE' 카테고리의 다른 글

마이크로 프로그램의 예  (0) 2014.10.11
주소 시퀀싱  (0) 2014.10.11
제어 메모리(Control Memory)  (0) 2014.10.07
부울 대수  (0) 2014.09.28
논리 게이트  (0) 2014.09.28