FSM(Finite State Machine)특강, 공대남 콜콜이(FSM, Sequential logic, Combinational logic, feedback)
FSM(Finite State Machine) 특강 - (1)


Finite State Machine이라고 알려진 FSM은 3-1학기 디지털시스템설계 과목의 중간고사 범위이다.

애석하게도, 이 당시 FSM 공부에 도움이 될 만한 글이 크게 없어서 불편함을 겪고,
이렇게 후배 공학도들을 위한 글을 쓰게 되었다.
(설명에 있어서 왠만한 용어들은 영문으로 표기하도록 하겠다.)

 

오늘 배울 내용들이 다 들어가 있는 중요한 그림! - FSM, Sequential logic, Combinational logic, Feedback





FSM의 정의 

Finite State Machine라는 영단어에서 볼 수 있듯이,
FSM은 Finite개의 State로 이루어진 Machine이라고 보면 된다.

1-2학기에 배운 디지털 공학시간에도 뒷부분에 분명히 소개가 되었고, 기말고사도 보았던 기억이 있을 것이다.

FSM은 Sequential logic으로 이루어 지는데,
Sequential logic이란, 과거의 입력이 계속 출력에 영향을 미치는 logic을 뜻한다.

Sequential이란 또 무슨 말인가? 바로 순차적이라는 단어의 뜻을 가진 단어가 아닌가?

잠깐 중간점검을 해볼까?
State가 Finite하다는 사실을 알았다. 그리고 Sequential하다. 무언가 연결고리가 빠진 것 같다.

그 연결고리가 바로 State Transition이다.
Transition, 변화라는 뜻을 가지고 있지만, 공학에서의 해석에서는 변이라고 많이들 쓴다.

그냥 단어 해석들과 위에서 나온 단어들을 끼워 맞추다보니, 정확한 뜻은 보이지 않지만, 느낌상 무언가 느껴진다.

"Sequential하게 Finite한 개수의 State를 State Transition하는 Machine 이다."
(해석 - 순차적으로 state 변이하는 유한한 개수의 state로 이루어진 장치)

너무 Clear 하지 않나요?(디지털공학 교수님이 자주 사용하던 말인데.. 잠시,, 자주 인용하겠습니다.)




FSM의 Finite는 무엇을 의미하는가?

FSM의 정의도 알았겠다. 성질을 조금씩 이해하다보면, 큰 그림으로의 FSM을 소화해 낼 수 있을 것이다.
Finite State Machine의 Finite은 왜 붙었을까?
개수가 Finite하기 때문에 라고 대답한다면, 그건 초등학생일 것이다.

Finite의 뜻을 묻는게 아니라, 그 이유를 묻는 것이기 때문이다.

정답은 바로 Memory를 무한개로 만들 수 없기 때문이다.
위에서 Sequential Logic을 과거의 입력이 계속 출력에 영향을 미치는 logic이라고 소개하였다.
과거의 입력이 출력에 영향을 미치기 위해서는 Register, 즉, Memory가 필요하게 된다.
(Register과 Memory에 대한 설명은 기초적인 내용이므로 생략하도록 하겠다.)

Finite State Machine의 Finite는 Present State 값을 저장하기 위한,
Memory의 개수를 Infinite하게 만들 수 없기 때문이다.

그러나 현실적으로 Register(Memory)의 개수를 Infinite하게 만든다는 것에는 무리가 있다. 아니 불가능하다.
그러므로 Finite한 Register를 사용하는 State, FSM이라고 명칭을 지어주게 된 것이다.




Sequential logic / Combinational logic 이란?

위에서 간단히 지나가려고 했으나, 왠지 불안한 마음에, 다시 한 번 짚고 넘어가려고 한다.
가벼운 마음으로 읽어보면, '위에서 이런 말을 했었구나' 라고 느낄 수 있을 것이다.

 Sequential logic = Combinational logic + Memory

아까 Memory를 넣는다고 하던데, 바로 Combinational logic에 memory를 넣는 것이다.
자꾸 생소한 단어들이 나와서 겁을 먹기 마련인데, 그냥 가벼운 마음으로 계속 읽어보아라.
그러면 나도 모르게 익숙해 지면서, 별 것 아니군이라고 느끼게 될 것이다.

▷ Combinational logic : Present output은 Present input에 관하여만 영향을 미침
▷ Sequential logic : Past input이 계속 Present output에 영향을 미침


Past input이 영향을 계속 미치기 위해서 memory가 필요할 것이라는 것이 직감적으로 느껴지는가?
(past input이 계속 어딘가에 저장이 되어 있어야만 영향을 미칠 수 있다는 뜻이다.)
앞에서 했던 이야기들이 갑자기 정리가 되는 그런 기분 느껴진다면, 위까지 내용을 잘 이해하였다고 볼 수 있다.





아예 그림으로서 Combinational logic과 Sequential logic에 대해 종지부를 찍어주겠다.


제일 처음 보았던 그림을 다시 보게 되었다. 이젠 한 눈에 쉽게 들어오지 않는가?

Combinational logic에 memory를 붙여 값을 Feedback을 시켜주는 Sequential logic을 만들고,
이런 Sequential logic으로 이루어진 machine이 FSM이며,
메모리의 개수가 Infinte할 수 없기에 Finite state machine이라 불리운다.




Feedback이란?

Feedback이라고 들어보았나? 고등학교 생물시간에 많이 들어보았을 것이다.
(Feedback, 피드백, 되먹임 모두 같은 단어이다.)
생물시간에 배운 것과 같은 의미이다.

위 그림과 같이, 어떤 system에서 output의 signal을 input쪽으로 되돌리는 것이다.

제일 처음에 나온 그림을 보면 Present state의 값이 feedback되어 input과 함께,

Combinational logic으로 들어가는 것을 확인 할 수 있다.




특강 1회를 마치며..

디지털신호처리 강의를 해주신 교수님께서 이런 말씀을 하셨다.
"나오는 예와 그림들을 무조건 파야된다, 그냥 이런 그림과 이런 예, 이런 식이 있구나라고 느끼는 것이 아니라.
 더 이상 무언가가 나올 수 없을 때까지 파야한다. 그것이 바로 공부하는 방법이다."라고

오늘은 저 그림 하나만으로 오늘 공부한 내용들을 모두 확인 할 수 있었다.

교수님께서 하신 말씀은 100% 옳다. 인생의 선배이자, 공학의 선배니까!!



FSM(Finite State Machine) 특강 1탄 어땟는지 모르겠지만, 나름 이해하기 쉽게 썻다.

미리 겪어본 사람으로서, 처음보는 사람들이 쉽게 이해하도록..
FSM(Finite State Machine) 특강은 아마 6탄 정도는 갈 것 같다.
너무 필요 이상으로 많이 하는거 아닌가 싶다..ㅜㅜ

어쨋든 공대남 콜콜이 화이팅~


Posted by 콜콜이
: