스터디 3주차 주제는 컴퓨터 구조였다. 솔직히 컴퓨터 구조는 제일 약한 분야인데 지식이 없다보니 주제를 고르는 것도 되게 오래 걸렸다. 어떤걸 소개해야 흔하지 않고 재밌는 주제일까를 고민했는데 딱 이거다 하는 주제는 쉽게 나오지 않았다. 그래서 컴퓨터 구조 책들의 목차를 보고 제목, 주제만 보고 어? 하는 주제중에 하나를 선정해서 소개하려고 한다. 그 책에 적혀져 있었던 주제는 마이크로 프로그래밍이었고 하드웨어적인 부분을 다룰 것이라고 생각되는 컴퓨터 구조에서 프로그래밍이라는 단어가 붙어서 되게 신기하다고 느꼈다.
이번에도 발표자료는 https://www.slideshare.net/ssuser4913c5/study-3-232750315 이 링크에서 볼 수 있다.
우리의 영원한 친구 구글에 컴퓨터에 대해 검색하면 컴퓨러란 전자 회로를 이용한 고속 자동 계산기로써 계산 이외에도 자동 제어, 데이터 처리, 사무 관리 등등의 다양하게 이용된다고 설명하고 있다.
이러한 컴퓨터는 아래와 같은 장치들로 구성 되어있는데 그 중 가장 중요한 장치는 연산, 제어 장치인 CPU라고 볼 수 있다. CPU는 컴퓨터에서는 인간의 뇌로 볼 수 있다.
인간으로 치면 뇌인 CPU가 자기 마음대로 동작한다면 (물론 그럴일은 없다.) 어떻게 될까? 되게 좋지 않은 일이 일어날 것은 확실하다. 그래서 이러한 CPU를 제어 할 수 있는 것이 필요하다. 그것이 바로 마이크로 프로그램이다. 마이크로 프로그램은 CPU의 레지스터나 연산회로를 제어 할 수 있다. 그리고 이러한 마이크로 프로그램이 내리는 명령이 마이크로 명령이다.
마이크로 프로그램 제어방식과 비교되는 방식은 하드 와이어드 제어 방식이다.
간단하게 이야기 하자면 마이크로 프로그램의 방식은 CPU의 순차 동작을 프로그램 기법으로 실행하는 것이고 하드 와이어드 프로그램은 직접 전용회로를 논리 회로대로 설계하는 방식이다.
각 제어방식마다 장단점이 있겠지만 가장 큰 차이점은 명령어를 쉽게 교체할 수 있는가 없는가 인 것 같다. 마이크로 프로그램 제어 방식을 사용한다면 마이크로 명령을 수정, 교체 해야 할 때 마이크로 프로그램을 수정하면 되지만 하드 와이어드 제어 방식에서는 하드웨어 자체를 교체해야한다.
따라서 마이크로 프로그램 제어방식이 더 효율적이고 경제성으로 따졌을 때 더 좋다고 볼 수 있다.
마이크로 프로그램은 비휘발성 메모리인 롬에 저장된다. 그 이유는 마이크로 프로그램은 대부분 거의 수정할 일이 없기 때문이다. 수정사항이 매일매일 수정한다거나 달마다 수정하는 식의 수정이 필요하지 않기 때문에 ROM에 저장한다.
그리고 이러한 마이크로 프로그램을 구현하는 과정을 마이크로 프로그래밍이라고 한다. CPU를 어떤 식으로 제어할지 정의해두는 과정이라고 볼 수있다.
우리는 흔히 컴퓨터를 제어하는 요소를 CPU라고 생각한다. 하지만 이러한 CPU조차도 누군가의 제어를 받고 있는 것이 신기했다. 게임으로 따지자면 보스몹을 잡았는데 또다른 보스몹이 있는 느낌이었다. 그래서 이런 마이크로 프로그램이 신기했고 알아보고 싶어서 이 주제를 고르게 되었다.
틀린 내용은 댓글을 통해 이야기해주시면 수정하겠습니다:) 피드백은 언제나 환영입니다!
유익하고 이해하기 쉬운 설명 잘 읽고 갑니다~