(Computer Architecture)마이크로 오퍼레이션

마이크로 오퍼레이션이란 무엇일까?

--->명령 한개를 실행하기 위해서는 일단 그 명령이 기억된 위치를 파악해야된다.
그 다음 그곳을 찾아가서 명령을 꺼내온 후 무슨 명령인지 번역해야 한다.
또 번역했으면 그 명령을 처리할 장치를 동작시켜야 한다.
이러한 여러가지 동작과정을 거치는데 이 때의 작은 동작하나하나를 마이크로 오퍼레이션이라고 한다.
즉, 레지스터에 저장된 데이터에 의해 이루어지는 동작이다.


예) MAR<-PC :프로그램 카운터의 내용을 MAR레지스터에 기억시킨다.
     AC<-AC+MBR: 누산기(AC)의 내용과 MBR의 내용을 더하여 누산기에 기억시킨다.


**마이크로 오퍼레이션은 한 개의 Clock펄스 동안 실행되는 기본 동작으로, 모든 마이크로 오퍼레이션은 CPU의 Clock펄스에 맞춰 실행돼.
그리고 마이크로 오퍼레이션은 컴퓨터의 모든 명령을 구성하고 있는 몇 가지 종류의 기본 동작으로, 컴퓨터 프로그램에 의한 명령의 수행은 마이크로 오퍼레이션의 수행으로 이루어진다.

마이크로 오퍼레이션의 순서를 결정하기 위해 제어장치가 발생하는 신호를 제어신호라고한다. 마이크로 오퍼레이션은 Instruction실행 과정에서 한 단계씩 이루어지는 동작으로 한개의 Instruction은 여러 개의 마이크로 오퍼레이션이 동작되어 실행되는 것이다.

**제어워드: 레지스터의 선택과 산술 논리 연산장치의 역할을 결정하고, 어떤 마이크로 연산을 할것인가 결정하는 비트의 모임

**마이크로 프로그램: 어떤 명령을 수행할 수 있도록 구성된 일련의 제어 워드가 특수한 기억장치 속에 저장될 때 이를 마이크로 프로그램이라고 한다.


**마이크로 사이클 타임(Micro Cycle Time)은 한 개의 마이크로 오퍼레이션을 수행하는데 걸리는 시간
모든 순서 논리회로(순차회로)Clock Pulse의 동기화에 의해 동작되는데,CPU도 하나의 거대한 순서논리회로 이므로 CPU역시 Clock Pulse에 동기화 되어 동작한다.
이때의 Pulse를 CPU Clock이라 하며, 한 개으 Micro Operation은 이 CPU Clock의 발생 주기의 간격 시간 내에 실행된다.

즉, 마이크로 사이클 타임=CPU cycle time=CPU clock Time
--->>CPU속도를 나타내는 척도

**마이크로 사이클 타임과 CPU클럭의 주기의 관계에 따라서 마이크 사이클 타임은 3가지로 구분된다.
(동기고정식,동긱변식,비동기식)

1. 동기고정식: 모든 마이크로 오퍼레이션의 동작시간이 같다고 가정하여 CPU clock 주기를 Micro Cycle Time과 같도록 정의하는 방식. 동작시간이 같다고 가정하면 모든 마이크로 오퍼레이션 중에서 동작시간이 가장 긴것을 마이크로 사이클 타임으로 정한다.
제어기의 구현이 간단하지만 CPU시간 낭비가 심하다

2. 동기 가변식: 유사한 마이크로 오퍼레이션끼리 그룹을 만들어서 각 그룹별로 서로 다른 마이크로 사이클 타임을 정하는 방식이다. 동기 고정식 보다는 융통성 있다. 마이크로 오퍼레이션의 수행시간이 현저히 차이를 나타낼 때 사용된다.
동기가변식은 동기고정식에 비해 CPU의 시간낭비는 줄일 수 있더라도 제어기의 구현이 조금 복잡하다. 이러한 동기가변식은 각 그룹간의 서로 다른 마이크로 사이클 타임의 동기를 맞추기 위해 각 그룹간의 마이크로 사이클 타임을 정수배가 되게 한다(최소공배수)

3. 비동기식(Asynchronous): 모든 마이크로 오퍼레이션에 대하여 서로 다른 마이크로 사이클 타임을 정의하는 방식이다. 이건 CPU의 시간낭비는 전혀 없으나 제어기가 매우 복잡하다 그래서 실제로 거의 사용되지 않음.

댓글

이 블로그의 인기 게시물

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬

(18장) WebSocekt과 STOMP를 사용하여 메시징하기