마이크로코드
CPU 안에 기계어를 상대적으로 쉽게 추가할 수 있도록 이용하는 방식 / From Wikipedia, the free encyclopedia
마이크로프로그래밍(microprogramming, 이를테면 마이크로코드(microcode)의 기록)은 CPU 안에 기계어를 상대적으로 쉽게 추가할 수 있도록 이용하는 방식으로, 다른 방식들에 비해 하드웨어를 덜 사용한다. 이것은 매우 상세하면서도 기초가 되는 가장 낮은 수준의 루틴의 모임이며 이러한 루틴은 특정한 명령어를 수행하는 데 필요한 동작들을 제어하고 나열한다. 또, 이따금씩 이들을 해석하기도 한다. 그러므로 일련의 마이크로 명령어가 추가한 기계어는 인터프리터가 기계어를 사용하여 고급 프로그래밍 언어의 명령문을 추가하는 방식과 비슷하다고 볼 수 있다.
마이크로코드는 디자인 단계에서 일반적으로 CPU 기술자가 기록한다. 그러나 일반 프로그래머, 심지어는 어셈블리 프로그래머도 이를 보면서 바꿀 수 있다는 것을 뜻하지는 않는다. 왜냐하면 설계상 마이크로코드는 새로운 마이크로아키텍처가 만들어질 때마다 극적으로 바뀔 수 있기 때문이다. 기계어는 하위 호환성을 유지한다. 마이크로코드는 마이크로아키텍처가 다른 강력한 아키텍처를 에뮬레이트하는 데 사용해왔다.
또, IBM과 같은 일부 하드웨어 업체들은 실제로 프로세서의 마이크로프로그래밍의 도입 여부에 관계 없이 마이크로코드(microcode)라는 용어를 펌웨어와 동의어로 사용한다.[1] 심지어 하드 드라이브에 쓰이는 것과 같은 단순한 펌웨어라도 이따금씩 마이크로코드로 서술한다.[2]