마하데이터
마이크로프로그램의 개념과 제어 과정 본문
카테고리 없음

마이크로프로그램의 개념과 제어 과정

마하데이터 2025. 4. 5.

마이크로프로그램의 개념과 제어 과정에 대하여

마이크로프로그램의 개념과 제어 과정에 대하여 알아보도록 하겠습니다. 마이크로프로그램의 개념은 1951년 영국의 모리스 윌크스가 발표했습니다. 이러한 마이크로프로그램의 제어는 체계적으로 시스템 제어장치를 설계하고 구현할 수 있는 방법으로 널리 알려져 있습니다. 이 방법은 마이크로 연산의 수행에 필요한 제어신호를 제어기억장치에 기억시킨 마이크로프로그램을 수행함으로써 제어가 이루어지며 마이크로프로그램은 마이크로 명령어인 제어단어가 특수한 기억장치에 저장된 것을 말합니다. 또한 연산의 수행에 필요한 여러 가지 마이크로 명령어들의 집합입니다. 이렇게 각각의 기계 명령어가 제어기억장치에 있는 순서대로 마이크로 명령어의 실행을 시작하고 마이크로프로그램에 의한 제어장치의 구현은 앞서 말씀드린 제어기억장치에 기억시킨 마이크로프로그램을 수행함으로써 제어신호를 발생합니다. 마이크로프로그램 제어장치를 사용하는 컴퓨터에는 2가지 종류의 기억장치를 가지는데 바로 주기억장치와 제어기억장치입니다. 주기억장치에는 명령어와 데이터가 저장되며, 제어기억장치에는 마이크로 연산의 수행에 필요한 제어신호인 마이크로 명령어가 저장됩니다. 또한 제어장치의 제어기능은 프로그램 내의 명령들이 순서에 따라 수행되도록 하기 위한 기능을 말하며, 프로그램 내의 각 명령의 연산자 부분이 표시하는 명령이 수행되도록 하는 기능제어 장치에서 수행하는 명령어는 연산장치 동작을 시키는 오퍼레이션 부분과 대상이 되는 오퍼랜드로 구성됩니다. 이러한 제어장치는 명령 레지스터, 명령 해독기, 제어신호 발생기, 프로그램 계수기로 구성됩니다. 먼저 명령 레지스터는 주기억장치에서 인출된 명령어를 기억하는 레지스터이며, 명령어의 명령부에 있는 명령 코드는 명령 해독기로 보내져 해독하고 명령어의 주소부에 있는 주소는 주소 레지스터로 보내지게 됩니다. 다음으로 명령 해독기는 명령 레지스터로부터 명령 코드를 받아서 해독하고 결과는 타이밍 및 제어회로로 구성된 제어신호 발생기에 보냅니다. 그리고 제어신호 발생기는 타이밍 발생 회로와 제어회로로 구성되어 있으며, 명령 해독기로부터 온 제어신호에 따라 명령어를 실행하는 데 필요한 제어신호를 발생시킵니다. 마지막으로 프로그램 계수기는 다음에 실행될 명령어가 기억되어 있는 주기억장치의 주소를 기억하는 레지스터이며 프로그램에서 분기할 때를 제외하고는 각 명령어가 수행될 때마다 1바이트에서 4바이트의 일정한 값 만큼씩 증가합니다. 이러한 마이크로프로그램의 제어에 의해서 한 개의 명령어가 수행되는 과정을 설명하자면 먼저 PC에 기억된 주소를 MAR로 전송합니다. 이 MAR 번지에 있는 명령어를 읽어 MBR로 전송하고 이때 PC의 내용이 1 증가합니다. 이후 MBR에서 다시 명령 레지스터에 전송되고 명령의 연산코드필드와 주소필드를 각각 해독기와 주소 레지스터로 전송합니다. MAR에서는 명령 수행에 필요한 데이터와 오퍼랜드의 주소를 계산하고 주기억장치에 접근하며, 제어신호 발생기에서는 연산자를 해독하여 명령 수행을 위한 제어신호를 발생시킵니다. 이렇게 다음 명령을 수행하기 위해서 이러한 과정들을 반복하게 됩니다. 모든 컴퓨터의 명령어 수행은 가장 기본적인 마이크로 연산을 통해서 이루어지게 됩니다. 프로그램을 실행한다는 것은 컴퓨터가 명령어 사이클로 이루어져 있는 프로그램을 순차적으로 수행하는 것입니다. 이때 기본 명령어 사이클은 인출 사이클과 실행 사이클로 구성됩니다. 우선 인출 사이클이 시작되고 나서 이것이 종료하면 그 시점에서 신호를 내보내 다음의 실행 사이클로 제어신호를 넘기고, 실행 사이클이 종료하면 그 신호에서 다시 인출 사이클로 제어신호가 되돌려지며 이것이 상호 반복되어 차례로 명령어가 실행됩니다. 그뿐만 아니라 명령어 사이클의 확장으로 인출 사이클과 실행 사이클 이외에도 간접 사이클과 인터럽트 사이클도 존재합니다. 간접 사이클은 명령어가 간접주소지정방식일 때 다시 주기억장치를 액세스합니다. 그리고 인터럽트 사이클은 명령어를 실행하는 도중에 인터럽트가 발행하면 해당한 인터럽트 처리를 수행합니다. 이것을 바로 메이저 상태라고 합니다. 즉 메이저 상태란 중앙처리장치가 실행하고 있는 작업을 말합니다. 또한 중앙처리장치가 한 메이저 상태에 머물러 있는 동안을 머신 사이클이라고 합니다. 이는 메이저 상태를 더 세분화시킨 시간에 대한 정보이며, 타이밍 상태는 메이저 상태에서 마이크로 연산이 수행되는 시간을 의미합니다. 또한 모든 레지스터의 이동은 클록 펄스에 의해서 제어됩니다. 하나의 마이크로 연산이 수행되는 과정을 마이크로 사이클이라고 하며, 이때 걸리는 시간을 마이크로 사이클 타임이라고 하고 동작을 마이크로 오퍼레이션이라고 합니다. 또한 동기 고정식과 동기 가변식, 비동기식으로 구분됩니다. 먼저 동기 고정식은 모든 마이크로 연산의 수행시간이 같다고 가정하여 연산 중 가장 수행시간이 긴 것을 클록 주기로 설정하고 마이크로 사이클 타임과 같아지게 합니다. 모든 마이크로 연산의 시간이 유사한 경우에 사용되며 제어장치의 구현이 간단하지만 중앙처리장치 처리 시간의 낭비가 발생합니다. 다음으로 동기 가변식은 마이크로 연산의 수행시간이 다를 경우 유사한 것끼리 몇 개의 집합으로 모아서 마이크로 사이클 타임을 정합니다. 수행 시간이 현저하더라도 중앙처리장치의 성능을 높이고 전체적으로 속도가 향상된다는 특징을 가지고 있으며 제어가 복잡하지만 중앙처리장치의 시간을 효율적으로 사용한다는 장점이 있습니다. 그리고 각각의 마이크로 연산에 대해서 서로 다른 마이크로 사이클 타임을 정하는 비동기식이 있습니다. 비동기식은 하나의 마이크로 연산이 끝나면 다음 마이크로 연산의 타이밍 신호가 발생합니다. 다만 제어가 너무 복잡해서 잘 사용되지는 않습니다. 보통 단일 사이클 제어는 하드웨어 제어방식입니다. 1개의 클록 사이클에 1개의 명령어를 실행하는 방식으로 프로그램 카운터는 프로그램 메모리의 주소를 지정하여 명령어를 인출하고 명령어 디코더에서 명령어를 해독하여 연산의 종류를 지정하고 오퍼랜드를 결정하고 제어신호를 발생합니다. 지금까지 마이크로프로그램의 개념과 제어 과정에 대하여 알아봤습니다.

Comments