티스토리 뷰

제어장치


제어장치는 주기억 장치에 저장되어 있는 명령어(프로그램)을 순서대로 호출하여 해독한 후, 제어 신호를 발생시켜

컴퓨터의 각 장치를 동작하도록 하는 장치이다


제어장치가 하는일

- 입력된 데이터를 기억장치에 저장

- 기억 장치에 있는 데이터를 연산 장치로 이동시킨다.

- 연산이 완료되면 그 결과값을 다시 기억장치로 이동시킨다.

- 기억 장치에 저장된 데이터를 출력장치로 이동시켜 출력시킨다



중앙처리 장치의 작동과정

1)명령어의 주소 전송을 위해 카운터(PC)에 기억된 주소를 메모리 주소 레지스터(MAR)로 보낸다.

2)주기억 장치에서 읽어온 명령어를 명령어 레지스터(IR)에 저장하고 PC를 1증가시킨다

3)명령어의 연산코드OP code) 필드와 주소필드를 각각 해독기와 주소처리기로 보낸다

4주소처리기는 피연산잔의 주소를 계산하며, 수행될 명령어의 순서가 바뀔땐 다음에 수행될 명령어 주소를 계산하여 PC에 저장시킨다.

5)제어신호 발생기는 연산자를 해독하여 제어 신호를 발생시키며, 수행 순서를 변경시킬땐 주소처리기를 동작시킨다

6)다음 명령의 수행을 위하여 위 과정을 다시 시작한다IR에 있는 명령어의 수행이 끝나면 증가된 PC의 값을 MAR에 보내어 다음 명령어를 실행한다


 

연산코드(OP code) :  보통 기계어에서 연산을 가리키는 코드이다. 명령어는 연산콛부와 오퍼랜드로 이루어져있다.

프로그램 키운터(PC : program Counter) : 현재 중앙 처리장치(CPU)에 읽어올 명령어의 메모리주소가 저장되어있다.

명령 레지스터(IR: instruction register) : 주기억 장치로부터 읽어온 명령어를 기억하는 레지스터.

명령 해독기:IR에 저장된 명령어를 해독한다

제어신호 발생기: 명령 해독기의 해독 결과에 따라 보내온 신호를 명령을 실행하는데 필요한 신호를 바꾸어 각장치에 신호를 보내는 장치이다.

기타 레지스터 : 

명령 레지스터(IR), 메모리 번지 레지스터(MAR), 메모리 버퍼 레지스터(MBR), 누산기(AC), MQ누산기,기억 레지스터 등

모든 정보의 이동과 제어를 위한 정보의 제공과 제어신호를 보내줄때에 레지스터를 이용한다.





명령어 종류

1 - 데이터 전송 명령어

2 - 데이터 처리 명령어

3 - 프로그렘 제어 명령어


명령어 형식

모드(mode) : 피연산자의 주소가 직,간접 번지인지를 구분

명령코드(OP code) : 실행할 동작을 지시

주소부 : 피연산자가 저장된 주기억장치의 번지를 나타냄


모드-명령코드-주소부


명령어 형식은 주소부의 수에따라 형식이 달라진다.



0- 주소 명령어 형식

- 스택구조 컴퓨터에서 사용

- 입력된 자료와 수행한 결과값 저장이 스택으로 고정


1-주소 명령어 형식

- 단일 누산기 구조 컴퓨터에서 사용

- 피연산자는 명령어의 주소필드나 누산기에 기억되있는것에서 얻는다

- 명령 실행전 누산기에 있던 데이터는 연산결과로 바뀐다


2-주소 명령어 형식

- 범용 레지스터 구조 컴퓨터에서 사용

- 연산후 입력자료의 보존이 필요없으면 연산결과를 입력자료가 있던곳들중 한 레지스터에 기억

- 입력 자료와 연산 결과값 기억: 주소-1

- 또하나의 입력 자료값 : 주소-2


3-주소 명령어 형식

-범용 레지스터 구조 컴퓨터에서 사용

- 피연산자의 주소를 구체적으로 지정해주는 형식

- 각 주소부는 레지스터나 주기억 장치의 주소 지정

- 프로그램 길이 짧고, 연산후 입력 자료가 레지스터에 보존되는 장점

- 명령어 수행중 자주 주기억장치에 접근 -> 속도 저하



명령 코드의 기능

1)함수 연산 기능

산술연산,논리연산등


2)전달 기능

중앙처리장치와 주기억장치 사이의 정보전달기능,

레지스터의 정보교환


3)제어기능

명령 실행 순서의 변경,

프로그램 실행순서를 배열된 명령어순서와 다르게 수행할수있는 기능으로 조건분기,무조건분기가 있다


4)입/출력 기능




주소지정방식

주소 지저이란 명령에 사용될 데이터를 주기억장치의 어디에서 어떻게 가져올 것인가를

명령어의 오퍼랜드 부분에 지정하는 방식이다.


1)묵시적 주소 지정 방식

- 명령어의 정의에 때라 오퍼랜드가 암시적으로 정해주는 방식

- 누산기를 사용하는 연사네서 사용

- 스택구조 컴퓨터에서 0-주소 명령어는 묵시적 주소방식이다


2)즉시 주소 지정 방식

- 피연산자가 명령어 자체 내에 포함되어있는 형태

- 명령이 인출됨과 동시에 기억 장치의 데이터도 자동으로 인출


3)직접 주소 지정 방식

- 오퍼랜드 내의 주소를 실제 데이터의 주소로 직접 표현하는 방식

- 분기 형식 명령에서 주로 사용

- 장점: 프로그램이 간결하게 작성 되고 간접주소 지정방식보다 빠르다

- 단점: 기억장치의 용량이 큰 경우 오퍼랜드의 길이가 길어져서 융통성이 떨어진다


4)간접 주소 지정 방식

- 오퍼랜드의 주소에 실제 피연산자가 있는 유효 주소가 기억되어 있는 방식

- 단점: 두번의 메모리 참조 수행->데이터 처리속도 저하

- 장점: 대용량의 저장 장치의 주소를 나타낼 수 있다.


5)레지스터 주소 지정 방식

- 중앙 처리 장치 내의 레지스터에 실제 데이터가 기억되어 있는 방식

- 명령어의 주소부는 지정된 레지스터의 번호를 가진다

- 주기억 장치에 접근할 필요가 없음 -> 실행 시간 빠름

- 내부 레지스터들로 제한되어 사용한다.


6)레지스터 간접 주소 지정 방식

- 명령어의 주소부가 레지스터를 지정, 그 레지스터의 값이 실제 데이터가 기억된 기억 장소의 주소를 지정

- 대용량의 기억 장치의 주소를 나타낼 수 있고, 간접 주소 지정 방식보다 처리 속도가 빠르다


7)상대 주소 지정 방식

- 명령어 주소 부분에 PC의 값이 더해져서 유효 주소가 결정되는 방식

- 명령어 길이 짧게 하여 프로그램이 차지하는 기억장치의 용량을 작게 할수있다


8)베이스 레지스터 주소 지정 방식

- 베이스 레지스터에 기준이 되는 주소가 있고, 명령어의 주소부는 변위값을 나타낸다.


9)인덱스 주소 지정 방식

- 베이스 레지스터와 반대로 명령어의 주소부가 메모리의 기본 주소가 되고, 지정된 인덱스 레지스터가 변위를 가지는 방식





마이크로 명령

레지스터 또는 주기억 장치에 저장된 정보에 작용되는 기본 동작


R->R 마이크로 명령

한개의 레지스터에 기억되어 있는 데이터가 다른 레지스터로 이동한것


F(R, R) -> R 마이크로 명령

두개의 레지스터에 기억되어 있는 자료가 연산기를 통행 처리한후 다른 레지스터로 이동하는 상태



명령어 인출

명령어를 해독하기 위해서는 해독할 명령을 주기억 장치에서 제어장치로 가져와야 한다.

이 과정을 명령어 인출 이라 하고, 이를 위해 일정한 행위가 반복될때 하나의 구간을 인출주기 라 한다


주기억 장치에서 인출할 명령어의 주소는 명령 계수기가 지적

이 내용이 레지스터에 옮겨져서 그주소에 기억된 명령이 기억 레지스터로 꺼내지게 된다.

이때 명령 계수기는 다음 명령이 기억된 위치를 지적하도록 증가된다


기억 레지스터에 기억된 명령은 명령 코드부와 주소부가 분리되어 명령 코드부의 내용 중에서 연산 코드는 명령 레지스터로,

명령어 형식은 명령 형식 레지스터로 각각 옮겨진다.


명령 형식 레지스터의 내용을 검사 ->

직접 주소 형식이면 실행단계로,

간접 주소 형식이면 기억 레지스터에서 주소부를 주소 레지스터로 옮기고,

주소 레지스터가 가리키는 내용을 기억 레지스터에 옮기고 실행 단계를 실행한다.


명령어 인출 과정 경로

인출할 번지 -> 명령어 번지 -> 주기억 장치 -> 기억 레지스터 -> 명령 레지스터


인출된 명령어의 실행 과정

기억 레지스터 -> 번지 레지스터 ->  주기억 장치 -> 기억 레지스터 -> 가산기 -> 누산기




마이크로 동작

1)마이크로 동작의 표현

명령어를 수행하기 위해서 여러개의 기본 연산들이 일정한 순서로 수행되는것을 마이크로 동작이라 한다.

마이크로 동작에는 단항 연산과 이항 연산이 있다.


단항연산: 피연산자가 하나, 부호의 반전과 부정등

이항연산: 두 개의 데이터가 연산되는 경우


마이크로 동작은 상태나 데이터 흐름, 연산등을

레지스터 전체나 특정부분,특정비트의 위치를 표현할수있다.


2)레지스터 전송

 -1 병렬 전송

     병렬 전송은 한개의 클록 펄스에 의해 레지스터의 모든 비트가 동시에 전송된다(P:R(2) <- R(1))

     레지스터 R(1)과 레지스터 R(2)는 병렬로 연결되어 있고, 제어 회로에서 P=1이 발생하면,

     레지스터 R(1)의 내용이 레지스터R(2)에 전송되는 적재(load) 동작     


  -2 직렬 전송

      직렬 전송을 위한 레지스터들은 시프트 레지스터로서

      클록 펄스가 인가될 때마다 정보가 한 비트씩 전달되고,

      하나의 마이크로 동작이 하나의 클록 시간 동안에 이루어 진다.


   -3 버스 전송

      레지스터 상호간의 자료 전속에는 연결선이 필요하다

      만약 3 개의 레지스터를 상호 연결하기 위해선 6개의 신호선이 필요하지만, 각 레지스터가 n개의 플립 플롬으로

      이루어져 있다면 6xn개의 선이 요구되어 매우 복잡하다

      한번에 한 레지스터의 전송만으로 제한한다면 n개의 공통 선으로 감소시킬수 있다.

      버스 : 레지스터 상호 간의 공통선들의 집합


   -4 기억 장치 전송

       기억 장치와 외부 회로 사이에 이루어지는 전송

       읽기 동작가 쓰기 동작

       주기억장치:M 기억 장치의 주소를 저장하는 레지스터:MAR 자료를 일시적으로 저장하는 레지스터 : MBR


       기억 장치 읽기: MBR <- M[MAR]

       기억 장치 쓰기: M[MAR] <- MBR

       R(1) 주소로 부터 읽기: MBR <- M[R(1)]

       R92) 주소로부터 쓰기: M[R(2)] <- MBR



3)산술 마이크로 동작

  레지스터나 저장된 숫자나 데이터에 대해 산술 동작을 수행하는것

  다른 산술 연산들은 기본적인 마이크로 동작의 조합으로 수행


4)논리 마이크로 동작

  레지스터 내의 비트 열 사이에 이루어지는 2진 연산

  선택적 비트 설정: OR연산

  선택적 보수화: XOR연산

  선택적 지움: NOT연산

  마스크:  AND연산

  삽입: 

  비교 동작: XOR연산


시프트 마이크로 동작

레지스터 내용에 대한 시프트 동작을 실행

직렬 컴퓨터에선 레지스터 간이 2진 정보를 전송,

병렬 컴퓨터에선 산술,논리 연산을 수행하기 위해 사용


  1)논리 시프트

     대상이 되는 레지스터의 내용을 왼쪽 또는 오른쪽으로 1비트씩 차례로 이동시킨다.

     SHL 또는 SHR로 표기

  2)산술 시프트

     부호와 함께 기억된 2진 정보를 시프트하기 위한 마이크로 동작으로 산술적 계산을 할때 사용

     왼쪽 시프트는 곱셈, 오른쪽 시프트는 나눗셈을 수행할때 사용

     ASHL,ASHR등으로 표기한다

  3)회전 시프트

     레지스터 양끝의 플립플롭을 연결하여 순환시키는 시프트로

     한쪽 끝에서 밀려나간 비트가 다시 반대편 끝 위치에 입력으로 채워진다.

     CIL,CIR로 표기




마이크로 사이클

중앙 처리 장치가 명령어를 가지고 마이크로 명령을 수행하는 데 피료한 시간을 마이크로 사이클이라 한다.

클록의 주기에 따라 동기식,비동기식 마이크로 명령으로 나누고,

동기식 마이크로 명령은 다시 동기 고정식, 동기 가변식 마이크로 사이클 타임으로 나뉜다.


동기 고정식

모든 마이크로 명령들 중 가장 긴 마이크로 사이클 타임을 중앙 처리 장치의 클록 주기로 사용하는 방식

제어기기가 간단하나, 시간 낭비가 많다.


동기 가변식

마이크로 사이클 타임의 차가 큰 마이크로 명령들 중 수행 시간이 유사한 것끼리 그룹을 만들어 각각의 그룹에 각기 다른 마이크로 사이클 타임을 적용하는 방식.

제어 기기가 복잡하나, 시간 이용이 효율적이다.


비동기식 마이크로 명령

각각의 명령어에 서로 다른 마이크로 명령 사이클 타임을 적용하는 방식

중앙처리 장치의 처리 시간이 많이걸려 효율성이 떨어지고, 제어기기가 복잡하여 거의 사용하지 않는다.




명령어 사이클

중앙 처리 장치에서 한개의 명령어를 실행하는데 필요한 처리과정을 명령어 사이클이라 한다.

- 인출 사이클: 기억장치에서 명령어를 읽어들이고 해독

- 실행 사이클: 해독된 명령어를 실행

그러나 오퍼랜드가 간접 주소 방식인 경우나 예기치 않은 이터럽트가 발생한 경우에

각각 간접사이클과 인터럽트 사이클이 요구되어 실행되어야 한다.



 1)인출 사이클

     주기억 장치에 들어 있는 명령어가 프로그램 카운터의 지정에 따라 명령 레지스터로 읽어와 해독되는 과정

      PC->MAR->기억장치->MBR

      1) PC에서 명령어가 저장된 기억장치의 주솟값을 MAR로 전달한다

      2) MAR에 기록된 주소값으로 기억장치에 있는 실제 데이터 주소로 이동한다

      3) 기억 장치에 있는 데이터를 MBR에 저장한다

      4) MBR에서 IR로 이동하여 명령어가 직,간접 명령어인지 해석,판단하여 실행 사이클또는,간접 사이클을 실행할것인지 판단


 2)간접 사이클

     인출 사이클에서 명령어의 오퍼랜드가 간접 주소 지정 방식으로 판정된경우,

     실제 데이터가 저장된 기억 장치의 주소를 알기 위해 다시 한번 기억 장치에 접근하여 주소값을 구한후

     메모리 버퍼 레지스터에 데이터를 저장하는 과정

     

     명령어의 주소 부분에 특정 비트를 두어 "1"이면 간접주소 "0"이면 직접주소로 판단

     PC->MAR->기억장치->MBR->MAR(반복)


 3)실행 사이클

     인출 사이클과 간접 사이클을 거쳐 기억 장치에 접근하여 자료를 읽고, 인출사이클에서 해독한 명령어의 연산을 실행하는 상태

     IR->기억장치->MBR->ALU


 4)인터럽트 사이클

    프로그램 실행 중에 발생하는 돌밟적인 사태에 의해 실행 중인 프로그램의 정상적인 처리를 중단하고,

    요구된 프로그램을 우선적으로 먼저 처리하는것을 말한다.


    인터럽트 사이클이란 이러한 인터럽트가 발생했을 때 인터럽트 프로그램을 처리하는 시간을 말한다.

    주소 처리의 효율성의 높이기 위해 사용



정리

1.제어장치의 구성

제어장치: 주기억 자치에 저장되어 있는 명령어ㄹㄹ 순서대로 호출하여 해독한후, 제어신호를 발생시켜 컴퓨터의 각 장치를 동작하도록 하는 장치


제어장치의 구성: PC,명령 레지스터,명령 해독기,제어신호 발생기로 구성되어 있음

1)프로그램 카운터는 CPU로 읽어올 메모리의 주소가 저장되어 있으며, 메모리로부터 값을 읽어오면 자동으로 1 증가하여 다음 메모리 주소값 기억

2)명령 레지스터는 주기억 장치로부터 읽어온 명령어를 저장하는 레지스터

3)명령 해독기는 IR에 저장된 명령어를 해독하여 연산 장치나 입,출력 장치등에 필요한 제어 신호를 발생하는 회로

4)제어 신호 발생기는 명령 해독기의 해독 결과에 따라 이러한 기계적인 제어 신호를 발생시켜 주는 장치



2.명령어

-명령어는 형식과 동작에 따라 데이터 전송명령어, 데이터처리,프로그램 처리 명령어가 있다.

-명령어의 형식은 명령 코드와 오퍼랜드로 구성된다. 오퍼랜드는 명령이 실행될 레지스터의 주소나 데이터가 저장된 주기억 장치의 주소등을 나타냄

-명령어의 형식은 오퍼랜드의 수에때라 0-주소,1-주소,2-주소,3-주소 명령으로 구분된다.

-오퍼랜드의 데이터가 기억장치의 어디에 저장되어있는지를 알려주는 주소지정방식으로 즉시,직접,간접,래지스터,레지스터 간접,상대 주소 지정,베이스 레지스터,인덱스 주소 지정 방식이 있다.

- 명령어는 수행할 작업을 지시하는 명령 코드부와 연산을 수행할 데이터를 지정하는 주소부로 구성되고, 이들은 제어장치로 꺼내져서 동작신호로 바꾸는것을 명령어 해독이라 한다.



3.프로그램 실행

- 마이크로 명령이란 레지스터 또는 메모리에 저장된 정보에 작용되는 기본 동작으로 cpu의 각 명령어를 실행하기 위해 필요하다

- 마이크로 사이클이란 cpu가 명령어를 가지고 마이크로 명령을 수행하는데 필요한 시간을 말한다.

- 일반적으로 cpu에서 한 개의 명령어를 실행하는데 필요한 처리과정을 명령어 사이클이라 한다.

- 마이크로 동작은 레지스터 전송, 산술 마이크로 동작, 논리 마이크로 동작, 시프트 마이크로 동작이 있다.

- 명령어 사이클은 기억 장치에서 명령어를 읽어 들이고 해독하는 인출 사이클, 해독된 명령어를 실행시키는 실행 사이클, 오퍼랜드가 간접주소 방식인 경우에 발생하는 간접사이클, 예기치 않은 인터럽트가 발생한 경우에 생기는 인터럽트 사이클이 있다.



4.타이밍과 제어 방식

- 컴퓨터 내부의 모든 연산은 타이밍 발생깅에서 발생하는 클록 펄스에 의해 동기화 되어 실행된다.

- 제어 장치를 구현하는 방법으로는 논리 회로를 구성한 하드웨어적 방법으로 제어 신호를 발생하는 고정 배선식 제어와 마이크로프로그램으로 구성하여 소프트웨적으로 제어 신호를 발생하는 마이크로프로그램 제어가 있다.

'기타 스터디 > 컴퓨터,자료구조' 카테고리의 다른 글

컴퓨터구조 - 연산장치  (0) 2015.06.22
컴퓨터구조 정리  (0) 2015.06.19
자료구조 - 큐  (0) 2015.05.17
자료구조 - 스택  (0) 2015.05.16
자료구조 - 패리티비트,해밍코드  (1) 2015.05.16
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함