반응형
이전 시간과 같이 하드웨어 CPU의 가장 핵심부분인 MicroController 부분에 대해 말을 해볼까 합니다.
기계에서 돌아가게 되는 '프로그램'의 경우 2진수로 받아들이게 됩니다.
저희가 프로그래밍 언어 (혹은 간단한 HTML 만 생각해도) 인간이 알기쉬운 영어로 (물론 전문용어) 프로그래밍을 하게 되지만, 컴퓨터가 받아들이게 되는 부분에서는 '컴파일'이라는 영어- > 이진수 과정을 거쳐 기계가 알아듣게 됩니다. 물론 사람이 01010010로 프로그래밍을 할수 없기에(옛날에는 실제로 선을 연결하여 이런방식으로 프로그래밍을 했다고 하더군요) 프로그래밍 언어라는 것이 생겨났고 이는 컴파일을 거쳐서 실행되게 되지만, 어셈블리 어는 기계어로 영어이긴 하지만, 기계에 밀접하게 붙어 바로 실행이 되게 됩니다. 때문에 하드웨어 제어속도는 어셈블리어가 훨씬 빠르게 됩니다. 어셈블리언어는 INC(increase) 처럼 줄여서 명령을 함에 Mnemonic하다고 할 수도 있겠네요.
기존 기계가 돌아가는 과정을 살펴보면,
위와 같은 과정으로 돌아가는데, 기존 어플리케이션과 OS 사이에 여러가지 플랫폼이 있다고 이해하시면 쉽습니다.
하드웨어가 켜지고 나서 펌웨어로 (부팅 시 뜨는 여러 화면들 영어로 줄줄이 CPU와 램을 체크하고 CD롬 체크등을 한다고 뜨는 부분) 넘어간 후 윈도우 화면(대부분이 쓰는 윈도우를 예로 들겠습니다) 이 뜨게 되고, 윈도우가 다 뜨게 되면, 어떤 프로그램(어플리케이션)을 실행하고 이는 OS 혹은 자바, 씨샵 등의 플랫폼 위에 돌아가게 됩니다. 작은 기기들은 OS를 사용하지 않고 펌웨어 + 어플리케이션인 경우도 많은데, 이는 OS를 쓰기엔 너무 기능이 간단하거나, (간단한 기능에 굳이 훨씬 복잡하고 느린 OS를 사용하지 않는 것이 효율적이기에) OS별로 어플리케이션의 버전 호환성 문제 떄문입니다.
또한 2진수로 컴퓨터가 받아들인다면, 지금 치고 있는 이 키보드 또한 (문자열) 도 2진수로 컴퓨터를 받아들이게 됩니다. 이에 따른 대표적인 코드가 ASCII 코드인데요. 코드에 따라 한글이 막 깨져보이는 웹페이지를 보신 적이 있을텐데, 이도 코드가 다르기 때문에 한글은 2진수로 변환하지 못해 생기는 에러라고 볼 수 있습니다.
위와 같이 A는 41 이란 2진수로 a는 61, 숫자는 30부터 인식을 하게 되는 변환표가 ASCII 표입니다.
이번 시간은 CPU가 2진수로 받아들이고, 사람들은 10진수 혹은 16진수, 혹은 영어로 기계에게 명령하게 되는 과정을 담은 포스팅입니다. 다음포스팅 에서는 microcomputer에 대해 알아보도록 하겠습니다.
반응형
'옛글 > 하드웨어 이야기' 카테고리의 다른 글
SSD 하드디스크가 대체 뭐죠? (2) | 2011.10.27 |
---|---|
포맷 후 각종 드라이버 찾아주고 깔아주는 프로그램! 3DP Chip / 3DP net (0) | 2011.10.07 |
MCS-51 instruction Set (명령어 세트) 정리 (0) | 2011.09.02 |
하드웨어 CPU의 역사와 MicroProcess & MicroController (0) | 2011.08.30 |
'튀는 태블릿' 이색 태블릿 총모음! (0) | 2011.06.26 |