티스토리 뷰





정보처리기사 필기 2과목 전자계산기 구조의 개념 정리 포스팅을 시작하겠습니다. 이번 포스팅에서는 마이크로 오퍼레이션(Micro Operation)이란 무엇인가에 대해 알아본 뒤, 마이크로 사이클 타임(Micro Cycle Time)을 계산하는 문제를 해결하는 훈련을하려고 합니다. 






1. 마이크로 오퍼레이션(Micro Operation)이란 무엇인가


마이크로 오퍼레이션은 한마디로 말해 컴퓨터가 수행하는 모든 명령을 구성하는 기본 동작들을 의미합니다. 명령어(Instruction)를 수행하기 위해서는 CPU 내부의 레지스터와 플래그가 의미있는 상태의 변환을 하도록 해야하는데, 이러한 마이크로 오퍼레이션은 하나의 클록 펄스(Clock Pulse) 단위로 실행되는 기본 동작이라는 점이 중요합니다. 모든 마이크로 오퍼레이션은 컴퓨터 CPU의 클록 펄스에 맞춰 실행됩니다.

컴퓨터의 명령어를 수행하는데에는 수많은 마이크로 오퍼레이션의 실행을 통해 이루어집니다. 따라서 하나의 명령어를 실행하는 시간을 계산하는데에는 마이크로 오퍼레이션의 실행 시간을 모두 고려해서 더해주는 방식으로 하나의 명령이 수행되는 시간을 구할 수 있습니다. 포스팅 뒷 부분에서 마이크로 사이클 타임을 계산하는 문제를 풀 때 기억하고 계시면 유용합니다.

마이크로 오퍼레이션은 중앙처리장치의 레지스터에 저장돼있는 데이터를 사용하여 이루어지는 동작입니다. 마이크로 오퍼레이션을 통해 데이터를 저장하는 레지스터에 의미있는 상태 변환이 이루어지며 이를 통해 명령을 수행한다고 보면 됩니다. 마이크로 오퍼레이션은 다양한 종류가 있으므로 동작들의 순서를 결정해야 합니다. 마이크로 오퍼레이션의 순서를 결정하기 위해서 중앙처리장치의 제어 장치가 발생하는 신호를 제어신호라고 부릅니다.





2. 마이크로 사이클 타임(Micro Cycle Time)의 정의와 관련 문제 풀이


마이크로 오퍼레이션에 대해 알게되었다면 마이크로 사이클 타임을 정의하는것은 매우 쉬워집니다. 마이크로 사이클 타임은 한 개의 마이크로 오퍼레이션을 수행하는데 걸리는 시간을 의미합니다. 이러한 마이크로 사이클 타임은 CPU Cycle Time, CPU Clock Time이라고도 합니다. 노트북이나 데스크톱의 사양을 확인할 때 표시되는 2.4 GHz와 같은 수치는 1초에 2.4 * 1,000,000,000(10억)개의 클록이 있다는 의미와 같습니다. 따라서 프로세서의 명령 수행 능력이 어느 정도인지를 쉽게 알 수 있는 지표라고 볼 수 있습니다.

컴퓨터 장치의 CPU도 거대한 순서논리회로로써 클록 펄스에 의해 동기화되어 동작합니다. 하나의 순서논리회로는 클록 펄스의 동기화에의해 동작되므로 CPU에 이러한 원리를 적용하는 것은 자연스럽습니다. CPU를 동기화하는 클록 펄스를 CPU Clock이라고 합니다. 하나의 마이크로 오퍼레이션은 CPU Clock의 발생 주기에 맞춰 실행됩니다.





마이크로 사이클 타임에 대해 알아보았으므로 이를 응용하여 관련 예제들을 풀며 이해 수준을 끌어올려보도록 하겠습니다. 예제를 풀기위해서는 매우 작은 시간의 단위들에 대해 미리 숙지하는 것이 문제 풀이를 쉽게하는 가장 중요한 지점입니다. 예제를 풀며 등장하는 몇 가지 단위들을 정리해보겠습니다.


Nanosecond: 1㎱ = 1/1,000,000,000 = 0.000000001
Microsecond: 1㎲ = 1/1,000,000 = 0.000001

ns는 10억분의 1초이고, ㎲는 100만분의 1초입니다.


GHz(Giga Hertz): 1 GHz = 1,000,000,000/s
MHz(Mega Hertz): 1 MHz = 1,000,000/s

GHz는 1초에 10억개의 클록이 있다는 의미이고,
MHz는 1초에 100만개의 클록이 있다는 의미입니다.








(예제1) CPU 클록이 100 MHz일 때, 인출 사이클(Fetch Cycle)에 걸리는 시간을 구하여라. 단, 인출 사이클은 3개의 마이크로 명령어들로 구성되어있다.

이 문제는 가장 기본적인 형태의 마이크로 사이클 타임에 관한 문제로 주어진 수치들을 이용하면 간단히 해결할 수 있다. 먼저 CPU 클록이 100MHz라는것에 주목한다면, 1초에 100 * 1,000,000개의 클록이 있다는 것을 알 수 있다. 이를 이용해 1 클록 당 걸리는 시간을 구할 수 있다. 1/100,000,000을 하면 10ns가 나오는데, 1클록에 10ns만큼이 소요된다는 뜻이다. 

1클록에 걸리는 시간을 구했다면, 이제 전체 사이클에 걸리는 시간을 구할 차례이다. 인출 사이클은 3개의 마이크로 명령어들로 구성되어 있으므로, 하나의 마이크로 명령어 당 1클록이 필요하다면 총 3클록이 필요한 작업임을 알 수 있습니다. 따라서 3클록에 필요한 시간을 구하면 됩니다.

3클록에 필요한 시간:
10ns * 3 = 30ns

1번 예제의 답은 30ns입니다. 1클록마다 걸리는 시간을 구하면 나머지는 간단히 해결됨을 알 수 있었습니다. 나노초 단위에 대한 개념을 암기하시면 문제가 쉽게 해결되므로, 꼭 암기하시고 편하게 문제를 해결하는것을 추천합니다.





(예제2) 하나의 명령 사이클을 수행하는데 3개의 머신 사이클이 필요하다고 했을 때, CPU 클록 주파수를 10MHz로 설정하였다. 이 때 1개의 명령 사이클을 수행하는데 소요되는 시간을 구하여라. 단, 각각의 머신 사이클은 5개의 머신 스테이트로 구성되어있다.


☞ 1번 문제와 같이 1클록에 소요되는 시간을 구합니다. CPU 클록 주파수가 10MHz이므로 1초에 클록이 10 * 1,000,000 만큼 발생한 다는 것을 알 수 있습니다. 따라서 1클록마다 1/10,000,000이 소요되며, 이는 0.1㎲의 값을 가집니다.


다음으로 하나의 명령 사이클이 몇 개의 클록으로 수행되는지를 구해야합니다. 하나의 명령 사이클을 수행하는데 3개의 머신 사이클이 필요하고, 각각의 머신 사이클은 5개의 머신 스테이트로 구성되어있으므로, 하나의 명령 사이클을 수행하는데 3 * 5 = 15 클록이 필요합니다.


최종적으로 1개의 명령 사이클에 소요되는 시간은 클로의 개수와 클록 당 걸리는 시간을 곱하여 구할 수 있습니다.


명령 사이클 소요 시간:

0.1㎲ * 15클록 = 1.5


2번 문제의 답은 1.5㎲입니다. 이 문제도 역시 차분하게 하나의 명령어를 수행하는데 필요한 클록의 수를 구한 뒤, 1클록에 걸리는 시간을 구하여 곱함으로써 쉽게 해결할 수 있었습니다.




일상생활에서 컴퓨터를 사용하면서 컴퓨터가 수많은 명령을 얼마나 짧은 시간에 수행하는지는 대강 느낌으로 알 수 있지만, 마이크로 오퍼레이션과 마이크로 사이클 타임에 대해 공부하였다면 정확한 수치로 명령어가 수행되는 시간을 구할 수 있습니다. 프로세서 사양이 2.4 GHz라는 것이 무슨 의미인지 모르고도 얼마든지 컴퓨터가 주는 빠른 연산의 혜택을 누릴 수 있지만, 이렇게 컴퓨터에 대해 정확히 알고 사용한다면 컴퓨터와 함께하는 일상을 더욱 풍부하게 채울 수 있을것입니다.


정보처리기사 필기 2과목 전자계산기 구조에서도 출제 가능성이 있으므로 이해를 통해 암기하는 노력 없이도 실전에서 빠르고 정확하게 문제를 풀 수 있는 힘을 기를 수 있기를 바랍니다. :)


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday