|
인텔 CPU, 8086부터 80286까지
1. 8086
1978년에 출시된 8086은 인텔에서 개발한 최초의 16bit 프로세서입니다. 8086의 20bit 어드레스 버스를 이용해 최대 1MB까지의 메모리 영역을 사용할 수 있었으며, 이를 위해 세그먼트 : 오프셋 방식을 도입하게 됩니다. 이 1MB의 영역중 384KB는 롬 영역으로 사용할 수 없었으며 실제로는 640KB의 영역만을 사용할 수 있었습니다.
8086은 크게 BIU(Bus Interface Unit)과 EU(Excution Unit)으로 나눌 수 있습니다. BIU는 프로세서와 외부 장치간의 데이터 전송을 담당하고 EU는 BIU로부터 받아들인 데이터와 명령을 수행합니다.
8086은 4.7MHz 부터 10MHz까지 제품에 따라 다양한 클럭 속도를 가지고 있으며 부동 소수점 계산 기능이 없어 보조 프로세서(코프로세서)인 8087을 장착해야만 부동소수점 계산이 가능했습니다. x86의 코프로세서에 대해서는 다음 블로그를 참조하시기 바랍니다.
코프로세서에 관하여
코프로세서는 고속으로 산술연산, 로그함수, 삼각함수 등의 연산을 하는 것으로 마이크로프로세서와는 병렬로 수행한다. 이 병렬연산은 코프로세서가 계산을 하고 있는 동안에도 마이크로 프로세서로 하여금 다른 일을 수행 가능하도록 해줌으로 전체적인 계산에 걸리는 시간을 단축시켜준다. 코프로세서는 마이크로 프로세서와 동일한 외부 클럭을 쓰며 시스템 마이크로 프로세서의 1/3 주파수로 동작한다. 코프로세서의 "BUSY" 신호는 자신이 일련의 작업을 수행중이라는 것을 마이크로 프로세서에게 알리는 신호로 사용되며 마이크로 프로세서의 WAIT 명령은 코프로세서가 수행이 끝날 때까지 프로세서가 기다리도록 하는데 쓴다. 코프로세서 역시 마이크로 프로세서와 마찬가지로 실제 모드와 보호 모드를 가지고 있으며, 실수연산기능은 전혀 가지고 있지 않다.
따라서 실수연산을 하기 위해서는 소프트웨어로 미리 만들어 놓고서 이것을 이용하거나 8087, 80287, 80387 등의 코프로세서를 이용해야 한다. 코프로세서는 실수 연산을 수행하기 위해서 특별히 설계된 프로세서로서 소프트웨어를 이용하는 것보다 약 100배 이상 빠르게 실수 연산을 수행할 수 있다.
8087
8087 코프로세서는 주 프로세서로 8086, 8088, 80186, 80188을 사용할 수 있고 16비트 연산을 한다. 8088이 8비트이고 8086이 16비트의 구조를 갖는데 이렇게 같이 사용할 수 있는 것은 8087이 자동으로 16비트인지 8비트인지 감지하기 때문이다. 8087은 68개의 독자적인 기계어를 사용하며, 40편의 DIP(Dual In Package)타입으로 되어있다. 또한 주 프로세서의 클럭과 8087의 클럭과는 서로 연결되어 동작하기 때문에 빠른 연산을 원한다면 속도가 빠른 주 프로세서를 사용하면 되는 것이다. 보통 사용하는 코프로세서는 5MHz로 동작하였다.
코프로세서는 시스템의 동작방식에는 변화를 주지 않으면서 특정 수학기능의 수행에 소요되는 시간을 단축 시켜준다. 8087은 더하기, 빼기, 곱하기, 나누기 연산을 비롯하여 절대값, 탄젠트, 제곱근 등 연산에 필요한 마이크로 명령을 내장하고 있으며, 8088과 수치데이터를 교환하게 된다.
80287
80287은 입출력 버스를 통해서 CPU에 접속되는 것으로서 8088의 코프로세서인 8087에서와 같이 CPU가 읽어서 해독한 명령어가 부동 소수점 계산 명령인 경우에만 80287에 그 명령이 넘겨진다. CPU는 80287이 연산을 끝낼 때까지 기다리지 않고 다음 명령을 처리할 수 있다. 80287은 넘겨받은 연산을 끝내면 CPU에 신호를 보내서 연산결과를 받아갈 것을 요구한다. 80287은 80286 프로세서의 코프로세서로 8087과 다른 점은 8087이 리얼 모드, 즉 도스에서 640KB이내의 메모리만 사용할 수 있는 반면 80287은 보호모드를 갖고있는 1MB-16MB까지 메모리를 쓸 수 있으며 클럭 속도 는 80286 프로세서의 2/3 정도로 밖에 동작하지 않는다.
80387
80287과 기본적으로 구조는 같으나 모양이 DIP이 아니라 PGA타입으로 정사각형 모양을 하고 있다. 80287보다 5-7배의 성능을 가지고 있다. 지금까지 나왔던 모든 코프로세서들은 NMOS방식을 사용하고 있었는데, 33MHz 80387이 나오면서 전력소비가 줄어들었으며 속도가 더 빠른 CMOS 방식의 칩으로 개선되었다.
코프로세서의 동작원리
코프로세서는 CPU의 명령에 따라 동작하는데 주 프로세서가 명령을 수행하다가 코프로세서가 해야할 작업을 만나게 되면 코 프로세서가 다른 작업을 수행하고 있지 않다면 해당 명령어를 전송하고 다른 작업을 수행중이라면 대기하게 된다. 그후에 코프로세서는 수행명령을 점검하고 동시에 주 프로세서는 수행 명령을점검하고 동시에 주 프로세서는 메모리에 있는 필요한 변수의 어드레스를 계산하여 코 프로세서로 넘겨주고 자신은 다음 명령어를 가져오게 된다.
주프로세서만을 사용한 보통의 연산과 주 프로세서와 코프로세서를 동시에 사용할 경우는 많은 차이를 보이고 있다. 코프로세서를 사용할 경우에는 주 프로세서간의 명령 단계가 줄어들어서 수행시간을 훨씬 단축해 주는 것을 볼 수 있다. 또, 코프로세서에서는 일곱 가지로 최대 80비트의 숫자를 사용할 수 있어서 넓은 범위의 계산이나 과학용 시뮬레이션에 적합하도록 되어있다.
시스템으로부터 보내진 명령은 CPU로 보내지고 CPU는 그 명령을 자신이 수행할 것인지 코프로세서로 보낼 것인지를 판단한다. 이 판단은 매우 간단하여 코프로세서에서 동작할 명령이라면 옵코드(OPCODE: CPU에서 최종적으로 수행되는 명령어)의 앞부분의 5비트가 2진수로 11011이다.
8080에 비해 8086은 10배 정도의 연산 성능을 보여주었습니다. 이는 이전의 8bit 프로세서와는 상대가 되지 않을 정도로 빠른 속도였으며, 이때부터 16bit 프로세서의 시대가 도래하게 됩니다. 8086 이후부터 x86이라는 개념이 도입되며 이후 시리즈는 80286, 80386 등으로 이어지게 됩니다.
2. 8088
8086이 발표된 1년 후인 1979년 인텔은 8088을 출시합니다. 8088은 86과 마찬가지로 주소 지정에 20bit을 사용해 1MB 메모리 영역을 사용할 수 있었고 내부적으로는 16bit의 버스를 가지고 있었지만, 프로세서의 생산 단가를 더 낮추고 8086의 문제점이던 8bit 8080과 같이 사용되던 주변기기들과의 호환을 위해 외부 버스를 16bit->8bit로 낮추어 설계된 프로세서입니다. 8088은 IBM PC/XT (eXtra Technology)에 탑재되어 판매되었습니다.
8086은 인텔사에서 1978년에 제작한 개인용 컴퓨터를 위한 마이크로프로세서이다. 16비트 마이크로프로세서이며, x86 아키텍처를 적용한 첫 제품이다. 클럭 속도는 제품에 따라 4.77MHz에서 10MHz까지 다양하다. 메모리 영역이 1MB까지로 제한되어 바이오스에서 사용하는 영역인 384KB를 제외한 640KB만을 실제로 사용할 수 있었다. 또한 부동소수점 계산기능이 없어 보조프로세서인 8087을 장착해야만 부동소수점 계산이 가능했다. 8086과 거의 동일하지만 비용 절감을 위해 외부 버스가 8비트로 제한된 마이크로프로세서인 8088은 IBM-PC/XT(eXtra Technology)와 그 호환기종에 적용되어 널리 사용되었다. 모든 80x86 Micro Processor(이하 MP)는 8086을 기초로 하여 만들어 졌다. 따라서, 8086(이하 86)에서 호환되면 명령어는 모든 80x86에서도 당연히 호환이 된다. 이렇게 호환되는 이유는 인텔사는 자사의 모든 x86 계열 MP3의 호환성을 유지하겠다고 약속하였기 때문이다. 이러한 연우로 프로그래머는 프로그램 제작시 매우 유리하기는 하지만, 전형적인 CISC 구조의 x86 MP들은 매우 복잡해 지고 있다. 이제 x86의 기본이 되는 8086 MP에 대해서 살펴보자.
86은 크게 BIU(Bus Interface Unit)과 EU(Excution Unit)으로 나누어진다. BIU는 프로세서와 외부 device간의 데이터 전송을 담당하고, EU는 BIU로부터 받아들인 op code와 operand 및 데이터를 수행한후 레지스터에 결과를 저장한다, EU는 반드시 BIU를 통해서만 데이터를 주고 받을 수 있다.
BIU는 Queue(큐)에 두바이트 이상의 저장 공간이 생길 때마다 다음 instruction을 가져오도록 설계되어 있다. 이러한 파이프라인 구조는 명령어를 가져오는 시간을 단축함으로서 수행속도를 증가 시킬수 있다. 여기서 정확히 말하자면 “명령어를 가져오는 시간을 단축”한다기 보다 “큐에 조냊하는 instruction을 읽는 것”이 메모리에서 명령어를 가져와서 큐에 저장한후 읽어오는 것“보다 빠르다고 해석해야 할 것이다.
그러나, 가져오는 instruction은 순서대로 가져오지만, 가져온 instruction 즉, queue에 쌓인 instruction이 반드시 순서대로 실행된다는 보장은 없다. 예를 들어 인스트럭션이 A, B, C, D와 같은 순서로 가져왔지만, C instruction이 jmp라면 D instruction은 수행될수 없다. 이렇게 연속적으로 실행될수 없는 경우는 세가지가 있는데 위에서 언급한 “점프” 명령어이거나, “매우 느린 명령어”이거나 “다른 device(예를 들면 메모리)”를 액세스 하려고 한다면 큐는 반드시 순서대로만 실행되지는 않는다.
3. 80186 / 80188
80186과 80188은 각각 8086과 8088의 후속 제품입니다. 뒤이어 개발된 80286과 같이 기능의 추가로 인한 아키텍처 변경은 없이 8086 시리즈에 주변 IC가 더욱 집적화되고 프로그램의 소형화가 이루어졌으며 명령어가 몇가지 추가되었습니다. 80188은 8088과 같이 80186에서 외부 데이터버스만 8bit로 줄여 출시된 제품입니다.
80186에 대해서는 다음 위키를 참조하시기 바랍니다.
8086의 후속으로 개발된 이 CPU는, 8086과 마찬가지로 16비트의 외부 버스를 갖고 있었으며, 8088처럼 8비트의 데이터 버스를 가진 80188도 있었다. 초기 80186/80188의 클럭 주파수는 6MHz였으나, 마이크로 코드 대신에 추가된 일부 하드웨어로 인해 개별 명령어 중 일부는 8086 때보다 10~20배 정도 빠르게 작동하는 경우도 있었다. 전체적으로는 초당 100만개의 명령어를 처리할 수 있는 능력이었다.
뒤이어 개발된 80286 및 80386 CPU와는 달리, 기능의 추가로 인한 아키텍처 변경은 없고, 8086 시리즈에 주변 IC(클럭 제네레이터, 인터럽트 콘트롤러, 타이머, DMAC, 칩 셀렉터)가 집적화되고, 프로그램의 소형화, ROM화에 관련된 10여개의 명령어가 된 정도로, 전체적으로 칩의 숫자가 줄어들었다는 점을 의의로 들 수 있다.
80186의 패키지 형태는 전용 소켓이 없이는 기판에 장착시킬 수 없는 CLCC(세라믹 리드리스 칩 캐리어)를 시작으로, PLCC, QFP, PGA형식으로 나왔다. 패키지의 형태에 따라 칩 이름의 앞부분에 각각 별도의 이니셜이 부가되었다.(R(CLCC), N(PLCC), S(QFP), A(PGA) 등)
80186에서 추가된 새 명령어는 다음과 같다:
80186을 사용한 시스템
애초에 이 CPU는 IBM PC 등에서 사용되었던 DMAC 등과는 호환성이 없었기 때문에, 마이크로 콘트롤러 쪽보다는 주로 임베디드 시스템 쪽에 많이 사용되어, 개인용 컴퓨터에서는 그다지 많이 사용되지 않았다.
그러나 예외적으로, 마인드셋(Mindset)의 그래픽 워크스테이션, 지멘스 PC-D 스웨덴의 학습용 컴퓨터 컴피스(Compis), RM Nimbus(영국의 학습용 컴퓨터), Unisys ICON(캐나다의 학습용 컴퓨터), HP 200LX, 탠디(Tandy) 2000, 일본 후지쯔의 FM-16β의 CPU로 80186이 사용되었다. 여기에 영국의 어콘(Acorn)에서 발매한, 80188 CPU에 관련 칩과 512킬로바이트의 메모리를 내장한 'Master 512 system'이라는 프로세서 추가 보드가 있었다.
4. 80286
80286은 1982년 개발된 16bit 프로세서로 16bit 데이터 버스, 24bit 어드레스 버스를 가지고 있습니다. 1984년부터 IBM PC/AT (Advanced Technology)에 탑재됩니다. 80286은 이전 8086에 비해서 같은 클럭에서 수행속도가 2배정도 향상되었으며 주소 지정에 24bit를 사용하므로 최대 16MB까지 메모리를 사용할 수 있었습니다.
80286에서는 8086/8088과의 호환성을 위해 Real Mode를 제공했으며, Protected Mode도 추가적으로 제공해 멀티 태스킹과 최대 1GB의 가상 메모리도 지원하기 시작했습니다. 하지만 BIOS와 DOS의 서비스를 사용할때마다 보호모드와 실제모드를 오가는 동작 메커니즘을 가지고 있었으므로(286 Standard Mode) CPU의 지속적인 모드 전환으로 인해 성능이 떨어지게 됩니다. (이로인해 윈도우는 보호모드에서 동작하는 디바이스 드라이버를 만들고 동작하도록 함으로써 문제를 해결했습니다. *.drv).
또한 80286에서은 24개의 어드레스 라인중 20번을 키보드 컨트롤러 칩(8042)의 하나의 핀과 함께 AND 게이트로 묶습니다. 이러한 286 프로세서의 칩 설계구조 상의 특수함때문에 CPU의 모드를 보호모드로 교체하지 않아도 1025 - 1088 에 해당하는 64KB(실제로는 0xFFFF:0x0010 - 0xFFFF:0xFFFF 까지의 64KB - 16byte)인 HMA(High Memory Area)을 사용할 수 있게 되었습니다.
이에 대해서는 아래의 블로그를 참고하시기 바랍니다.
윈도 1.0부터 XP까지, 21번째 생일 맞은 MS 윈도
MS가 5년 만에 새로운 운영체제를 내놓으면서 '윈도'라는 운영체제에 대한 관심이 새삼 뜨겁습니다. 지난 11월20일은 윈도가 세상에 태어난지 21년째 되는 날입니다. 윈도가 벌써 21살이라니 다 컸네요.
마이크로소프트가 세상에 알려진 것은 도스 때문이지요. 하지만 이 회사가 지금의 거대한 공룡으로 커갈 수 있었던 배경에는 '윈도'가 있습니다. 윈도의 지난 21년의 세월을 되짚어봤습니다.
1985년 11월 윈도 1.0
윈도 1.0은 하나의 '운영체제'라기보다는 MS-DOS의 GUI(그래픽 유저 인터페이스) 또는 '데스크탑'으로 인식되고 있습니다. 기본 뼈대가 MS DOS이기 때문이지요. 만약 여기서 도스라는 알맹이를 빼면 화면을 구성하는 데스크탑만 남기 때문에 사실상 운영체제라고 할 수는 없지요.
도스의 가장 큰 단점은 '텍스팅'(texting)입니다. 키보드로 무언가를 써야 한다는 것은 사람의 기억력을 요구합니다. 저도 대학시절 배웠던 도스 명령이 몇 가지 기억나는데 디렉토리를 보려면 dir을, 파일을 지우려면 del이라고 쳐야지요. 이처럼 모든 명령을 머릿속에 담아놓아야 하기 때문에 당시에 컴퓨터를 잘 쓴다는 것은 도스 명령을 얼마나 많이 아느냐로 판가름이 났습니다.
윈도 1.0은 이런 분위기에 커다란 변화의 바람을 몰고 왔습니다. 물론 그래픽 환경이 지금처럼 친절(?)하지 않았지만 마우스를 움직여서 메뉴를 고를 수 있게 되면서 컴퓨터 환경의 주체가 사람의 기억력에서 그래픽 환경으로 넘어갔습니다. 256KB 메모리의 XT 기종에서 쓰는 윈도 1.0은 MS-DOS 파일 관리 시스템을 기본적으로 캘린더, 노트패드, 계산기, 시계 등 개인 일정에 관한 애플리케이션이 중점적으로 들어갔습니다.
윈도 1.0의 그래픽은 초보적이어서, 여러 개의 프로그램 창을 겹쳐 놓거나 아이콘으로 작게 줄이거나 전체화면으로 키우는 기능은 없었습니다.
당시 판매 가격은 100달러로, 지금으로 치면 윈도 XP 홈 에디션의 177달러와 비슷합니다.
1987년 11월 윈도 2.0
1987년 11월 1일 나왔습니다. 윈도 1.0과 비교해 도스 중심이라는 구조는 크게 달라지지 않았습니다. 16비트라는 것도 그대로이지요.
다만, 윈도 1.0에서 지적받아온 창 배열 문제가 어느 정도 해결되었습니다. 창 겹치기, 아이콘으로 만들기(최소화), 전체화면으로 만들기(최대화) 등이 이때부터 시작된 것이지요. 나중에 윈도 386이 나온 뒤 이름이 윈도 286으로 바뀝니다.
가장 큰 특징은 '하이 메모리'(HMA, high memory area)를 쓴다는 것입니다.도스는 메모리를 효율적으로 이용하기 위해 메모리에다 번지(Address) 를 정해 놓습니다. 메모리가 1 MB라면 0∼640번지이 기본 메모리 영역이고 641∼1024번지 까지가 상위 메모리입니다. 상위 메모리와 확장 메모리가 시작되기 전의 1025∼1088번지가 바로 HMA 영역입니다.
DOS 5.0 이상에서 CONFIG.SYS에 DEVICE=C:\DOS\HIMEM.SYS 와 DOS=HIGH 라는 명령을 더하면 이 64KB의 영역으로 도스 커널의 일부분을 옮깁니다. 따라서 기본 메모리를 40∼50KB 절약할 수 있지요.
가격은 99달러.
1988년 5월 윈도 2.1
1988년 5월27일 선보인 윈도 2.1은 윈도 386으로도 알려졌습니다. 윈도 2.1은 한글 버전이 나온 최초의 윈도이기도 하지요. 당시 국내에 소개된 사양은 다음과 같습니다.
2개의 플로피디스크 또는 1개의 하드디스크
MS-DOS 2.0 이상
512KB 이상의 메모리
흑백 또는 컬러 모니터
마우스
윈도 2.1은 인텔 80286과 80386 프로세서를 최대한 활용할 수 있도록 디자인되었습니다. 80286에서 돌아갈 때는 Windows/286 모드, 80386 프로세서를 쓸 때는 Windows/386 모드로 작동하는 것이지요.
확장 메모리(EMS, expanded memory specification)라는 기술도 도입했습니다.스프레트시트 프로그램을 개발한 로터스사가 640KB라는 메모리의 한계를 넘기 위해 만든 규격입니다. 이로써 80286에서는 16MB, 80386에서는 4GB까지 메모리를 늘려 쓸 수 있게 되었습니다.
1990년 10월 윈도 3.0
1990년 10월31일 나온 윈도 3.0은 윈도 시리즈 중에서 가장 먼저 대박을 터트린 운영체제입니다. 출시된지 6개월 만에 200만 부가 팔렸으니까요. MS-DOS의 최대 후원자인 IBM의 그늘에서도 벗어났지요. 윈도 3.0의 인기는 국내에서도 마찬가지여서 당시 한 잡지는 세운상가 매장 직원들이 "윈도 3.0이 발매된 이후로 매킨토시가 죽고 있다"고 하소연했다는 소식을 전할 정도였습니다.
윈도 3.0은 사용자 인터페이스와 멀티 태스킹을 많이 개선했습니다. 8086 CPU에 1MB 이상의 램을 갖추고 있으면 '기본 모드'로 쓸 수 있지요. 사양이 좋은 PC에서는 표준 모드(80286 프로세서 필요)와 386 확장모드(80386 프로세서와 2MB이상 RAM 필요)로도 동작합니다.
연장 메모리(XMS)와 가상 메모리를 지원해 이전보다 더 많은 프로그램을 동시에 실행시킬 수 있습니다. 가상 메모리는 하드디스크의 일부를 메모리처럼 쓰는 것이고, 연장 메모리는 IBM이 640KB의 기본 메모리의 한계를 넘어서기 위해 개발한 기술로, HIMEM.SYS가 관리하는 메모리 영역입니다.
설치 프로그램은 5.25인치 플로피 디스켓으로 다섯장.
MS는 윈도 3.0을 배경으로 MS 워드(Word)와 MS 엑셀(Excel)을 발표해 PC 애플리케이션 분야에서도 큰 시장을 장악해갔습니다. MS-DOS 시절에는 워드퍼펙트가 워드프로세서 시장을, 로터스 1-2-3가 스프레드시트 시장을 장악하고 있었습니다. 하지만 워드퍼펙트는 MS-DOS에서의 큰 성공에 안주하고 있었고, 로터스 1-2-3도 MS와 불편한 관계 때문에 윈도 시리즈 개발에 부정적이었습니다. 덕분에 MS 워드와 엑셀은 별 장애 없이 지금의 엄청난 성공을 거둘 수 있는 뿌리를 내리게 되었지요.
1992년 3월 윈도 3.1
'야누스'(Janus)라는 이름의 코드명으로 개발된 윈도 3.1이 모습을 드러낸 것은 1992년 3월 18일. 윈도의 전성 시대는 이때부터 열리기 시작했습니다.
기존 윈도와 비교하면 사운드카드를 지원하면서 멀티미디어 환경의 터를 닦았고, 크기 변경이 자유로운 트루 타입 폰트를 쓰기 시작했으며, 복합 문서를 쉽게 만들어주는 OLE도 들여왔습니다. 보호모드로 데이터를 보다 안전하게 지킬 수 있게 되었고 메모리를 16M까지 썼습니다. 그밖에도 쉘, 인터페이스에서 대대적인 변화가 있었습니다.
하지만 여전히 도스보다 느린 속도와 낮은 안정성, 그리고 응용 프로그램 부족으로 게임이나 워드프로세서 등에서는 도스가 주로 이용되었지요.
1995년 8월 윈도 95
개발명 시카고(Chicago)의 윈도 95는 95년 8월 24일 나왔습니다. 윈도 3.1을 내놓은 지 4년 준비여의 끝에 의욕적으로 선보인 32비트 운영체제 윈도95는 광고비만 10억달러를 쓰면서 바람몰이를 시작했습니다. 때마침 PC 산업이 발달하면서 윈도 95는 지구촌을 뒤흔드는 폭풍을 일으켰습니다. 이른바 '컴퓨터 혁명'이지요.
영문 윈도 95가 1천 만개 이상 팔리면서 태풍을 일으킨 뒤 한글 윈도 95가 1995년 11월 28일 마침내 한국에 상륙했습니다. 당시 한 신문 기사를 보면 윈도 95가 세계적으로 얼마나 큰 관심을 일으켰는지 알 수 있습니다.
"지구촌에서 가장 먼저 판매를 시작한 뉴질랜드에서는 컴퓨터마니아들이 윈도95를 구입하기 위해 23일 자정부터 상점앞에 장사진을 이루었으며 하루 예상판매량이 1시간도 되지 않아 매진되기도 했다.또 세계 주요도시에서는 각 상점들이 아예 24일 0시부터 문을 열었고 미국 뉴욕의 엠파이어스테이트빌딩은 윈도95의 로고인 빨강.노랑.초록색으로 치장하기도 했다. 특히 영국의 최고 권위 일간지인 더 타임스지는 2백여년 역사상 처음으로 특집을 실은 신문 1백50만부를 24일 무료로 배포했다.이는 마이크로소프트사가 윈도95출시를 기념한 판매장려책에 따라 기획한 것으로 신문매입을 위해 적어도 37만5천파운드(한화 약4억5천만원)를 썼다."
윈도 95는 기존 윈도와 비교해 엄청난 발전을 거뒀습니다. 큰 틀에서는 도스와 GUI가 사실상 따로 떨어져 있던 기존 윈도와 달리 윈도 95는 도스를 통합하면서 GUI 운영체제로서의 기틀을 마련했지요. 세부적으로 보면 먼저,프로그램 관리자와 파일관리자 대신 탐색기와 시작 메뉴, 작업 표시줄, 바탕화면, 폴더, 바로가기 개념을 처음으로 도입했습니다.
마우스 오른쪽 버튼의 기능도 강화되었습니다. FAT 파일시스템을 개선해 도스 시절부터 이어오던 <이름 8자 + 확장자 3자>라는 파일 이름의 한계도 깼습니다. 플러그 앤 플레이 기술을 써서 하드웨어를 쉽게 설치하거나 제거할 수도 있지요.
1998년 6월 윈도 98
윈도 95의 흥행이 이어질 것이냐는 관심 속에서 윈도 98은 98년 6월 25일 모습을 드러냈습니다. 윈도 95와 마찬가지로 16비트와 32비트의 혼합 운영체제입니다. 16비트 체계를 계속 가져간 것은 도스 게임을 비롯한 16비트 애플리케이션을 돌리기 위해서지요.
윈도 98의 가장 큰 특징은 MS가 드디어 '인터넷'에 관심을 갖기 시작했다는 것입니다. 윈도 98은 운영체제에 익스플로러 4.0을 기본으로 탑재해이용자들이 웹 브라우저를 따로 설치하지 않게 했습니다. 당시 경쟁하던 넷스케이프를 견제하기 위한 것으로, 덕분에 얼마 뒤 익스플로러는 넷스케이프를 완전히 무너뜨리고 세계 최강의 웹 브라우저로 자리매김했습니다.
그밖에도 액티브 데스크탑을 지원해 인터넷 사이트를 바탕화면처럼 띄울 수 있고, 정상적으로 종료되지지 않을 때는 자동으로 디스크 검사를 수행해 오류를 잡아내고, AGP 버스를 지원하며, 다이렉트X API로 게임 기능을 강화했습니다.
2000년 9월 윈도 Me
2000년 9월14일 등장한 윈도 Me(Millennium Edition)이라는 이름에서 거대한 카리스마가 느껴지지만 전혀 그렇지 않습니다. 윈도 98의 개선판이라고는 하지만 오히려 윈도 98보다 관심을 끌지 못했지요.
윈도 Me는 미디어 플레이어와 윈도 무비 메이커를 갖추는 등 멀티미디어에 무게를 뒀습니다. 또한 가정에서도 쉽게 쓸 수 있도록 시스템 복원기능과 파일 보호, 범용 플러그 앤 플레이 기능을 추가했습니다. 하지만 점차 응용 프로그램의 크기가 커지고, 운영체제가 여러 부가 기능을 포함하면서 커널 자체의 한계가 드러났고 이로 인한 안정성 문제가 적지 않았습니다.
2001년 10월 윈도 XP
윈도 XP가 나온 게 2001년 10월 25일이니 어느 새 5년이 넘었군요. 윈도 XP는 윈도 Me에서 안정성의 타격을 입자 기존소비자용 운영체제(95, 98, Me)의 커널은 더 이상 안되겠다고 판단하고 가정용 운영체제로는 처음으로 윈도 NT 기반으로 방향을 전환했습니다.
'휘슬러'라는 이름으로 개발되어온 윈도 XP는 2001년 2월13일 미국 시애틀에서 첫 시사회를 갖고 본격적인 홍보를 시작했습니다. 당시 빌 게이츠는 "XP는 eXPerience를 뜻한다"면서 "PC 이용자들이 윈도 XP를 통해 인터넷과 멀티미디어를 더욱 신나게 즐길 수 있도록 할 계획"이라고 자랑했습니다.
빌게이츠의 장담처럼 윈도 XP는 윈도 98과 비교해 성능과 안정성에서 많은 발전을 가져왔습니다. 몇가지 특징을 꼽으면 '루나(달)'라는 새로운 인터페이스가 등장했고, 초보자들을 위해 시작 메뉴와 제어판을 비롯한 수많은 메뉴의 구성이 바뀌었고, 윈도 Me의 시스템 복원 기능을 이어받았고,멀티 유저 기능으로 사용자 계정이 쉽고 빠르게 전환되고, 네트워크를 통한 원격 접속이 됩니다.
하지만 기본 탑재된 MSN 메신저와 Internet Explorer가 반독점법 소송에 휘말리게 되었지요.
2006년 말 윈도 비스타
코드네임 롱혼(Longhorn)으로 알려진 윈도 비스타는 RTM이 끝나 연말 쯤 윈도 비스타 PC가 시장에 등장할 것입니다.
윈도 비스타는 3차원 효과인 에어로 글라스 기술을 이용해 인터페이스가 더욱 화려해졌고 Win32 API를 대체하는 WinFX API, 향상된 검색 기능, 사이드 바 등이 새로 등장했습니다.
8086이 EU과 BIU로 구성되어있는것에 비해 80286은 독립적으로 동작하는 4가지 모듈(Bus Unit, Address Unit, Instruction Unit, Excution Unit)으로 구성되어 있습니다. 버스 유닛은 외부 장치와의 인터페이스를 담당하고 어드레스 유닛은 논리주소로부터 물리주소를 생성합니다. 명령 유닛은 받은 명령을 해석하고, 실행 유닛이 해당 명령을 실행하게 됩니다. 8086이 코프로세서로 8087을 사용했다면, 80286은 80287을 사용합니다. 하지만 8086 / 8087과는 다르게 80287은 IO 버스를 통해서 CPU에 연결되므로 명령이 CPU용인지 아니면 NDP(Numercal Data Processor)용인지를 조사할 필요가 없었고, 부동 소수점 연산이 필요할 경우에만 작동했기때문에 CPU와 병행 동작이 가능했습니다.
자세한 내용은 다음 블로그를 참고하시기 바랍니다.
8088
8088은 NMOS 마이크로 프로세서로 가격을 내리기 위해 8086의 외부 데이터버스 폭을 16비트에서 8비트로 한 CPU로서 내부 구조는 8086과 거의 같다. 인텔의 8088은 1981년에 발표한 초기 IBM XT에 처음으로 장착된 CPU이다. 8088 칩은 4.77MHz로 동작하며, 8086 마이크로프로세서와 동일한 명령어 세트를 사용한다. 즉 내주데이터를 8비트로 처리한다는 뜻이다.
8088에서는 최소 모드(minimum mode)와 최대 모드(maximum mode)가 있는데, 최소 모드란 이 8088을 제어용으로 사용할 때를 말하며, 최대 모드란 PC용과 같이 범용으로 쓸 때를 말한다. 8088은 곱셈, 나눗셈을 포함한 16비트 연산과 8086에서 사용한 세그먼트에 의한 메모리 관리 기법을 이용하며, 8086과 마찬가지로 20비트 어드레스버스를 가지고 있어 1MB의 메모리를 사용할 수 있다. CPU의 모양은 DIP(Dual In-line Pakage)의 형태이다. 초기의 8088은 5MHz 이하에서만 동작을 하였으며 8088-1이라고 하였다. 그후에 클럭수가 6.66MHz, 7.16MHz, 8.0MHz 등으로 높아짐에 따라 좀더 고속의 클럭에서 동작하는 CPU가 필요하게 되었다. 이렇게 해서 만든 것이 8088-2이다. 8088은 29,000개의 트랜지스터가 집약되어 있다.
80186/80188
80186/80188은 8086과 8088을 내부적으로 성능의 향상을 시킨 제품이다. 초기의 8088/8086과 비교해서 그다지 많은 개선이 이루어지지는 않았지만 내부의 마이크로코드가 개선되었으며, CPU의 모양이 PGA의 형태를 띄게 되었다.
XT 시스템
1970년대 말까지 중대형 기종의 컴퓨터만을 생산해오던 IBM은 애플에서 제작한 컴퓨터의 성공을 보고 개인용 컴퓨터 시장에 뛰어 들어서 만든 컴퓨터를 XT라고 했다. IBM PC/XT (eXtra Technology)는 1983년 3월에 발표한 것으로 1285KB의 롬이 표준으로 장착이 되어 있었으며 256KB까지 확장이 가능했다. 또 이것은 360KB의 플로피 디스크 드라이브와 10MB의 디스크 드라이브를 설치할 수 있었다.
CPU는 8088 마이크로 프로세서를 장착했으며 CPU클럭은 4.77MHz, 메모리 용량은 롬이 40KB이고 램은 256KB 이며 640KB까지 확장이 가능했다. 8088은 내부적으로 16비트 데이터 버스를 가지고 있으며 메모리에서 읽고 쓸때는 8비트로 동작한다. 이렇게 내부와 외부의 데이터처리에 차이를 둔 것은 그때까지 많이 사용하던 8비트용 프로그램을 사용하기 위한 것이다. 또한 옵션으로 8087 코프로세서를 제공하여 계산속도를 향상시킬 수 있었다.
80286
인텔이 1981년에 발표한 새로운 16비트 마이크로 프로세서가 80286이다. 80286은 이전 CPU과 비교하여 상당히 많은 발전을 했다. 일단 칩의 형태에 있어서는 PGA(Pin Grid Array)형태를 가졌으며, PLLC(Plastic Leadless Chip Carrier)로 칩을 보호했다. 또, 80286에는 8088보다 4배 많은 130,000개의 트랜지스터가 집 약되어 있다. 80286은 8086의 프로그램을 좀더 고속으로 실행하는 리얼 모드(real mode)와 고속운영 체제를 염두에 둔 새로운 모드인 보호모드 (protected mode)를 가지고 있었다. 리얼 모드에서 80286은 8086과 같은 명령어를 읽어들이며 유사한 동작을 하는데 80286은 8086의 명령어 모드와 어드레싱 모드를 이어받음
으로써 기존의 도스기반의 자원을 그대로 살릴 수 있었다. CPU의 구성도 고속화를 위해서 많이 바뀌었다.
8086은 실행 유니트와 BIU의 두가지 모듈로 구성되어 있는 반면 80286은 독립적으로 동작하는 4가지 모듈(버스유니트, 어드레스유니트, 명령유니트, 실행유니트)로 구성되어 있다. 버스 유니트는 외부 버스와의 인터페이스를 담당하며, 어드레스유니트는 어드레스 변환으로 물리 어드레스를 생성한다. 그리고 명령 유니트 가 명령의 해석을, 실행 유니트가 명령의 실행을 담당하게 된다. 결국 CPU의 내부의 처리가 4단계로 확장되어서 강력한 병렬 처리를 가능하게 하여, 명령어간에 지연시간을 최소화 시켜 최상의 성능을 발휘할 수 있도록 설계되었다. 또 온칩(on-chip)메모리 관리 기술을 적용하고 한번에 여러 개의 작업을 할 수 있는 작 업 환경을 만들었다. 80286에 와서 부각되는 것은 보조 프로세서(coprocessor) 개념의 확대이다. 수치 연산 보조프로세서 80287이라고도 하는데, 이 칩은 입출력 버스를 통해 CPU에 접속되는 것으로서, 독립된 하나의 입출력 디바이스처럼 동작한다. 80287은 IO 버스를 통해서 CPU에 연결되기 때문에 8087처럼 명령이 CPU용인지, NDP(Numerical Data Processor)용 인지를 조사할 필요가 없고, CPU가 읽어들여 해석한 명령이 부동 소수점연산 명령이었을 경우에만 80287에 그 명령을 넘기고, 연산의 실행을 요구한다. 또한 80287은 CPU와 병행하여 동작하기 때문에 CPU는 80287의 연산 종료를 기다리지 않고 다음 명령을 수행 할 수 있다. 80287은 실행중인 연산이 끝났을 때 CPU에 신호를 보내고, 연산 결과의 답을 요구하기 때문에 80287은 부동 소수점 연산을 실행하는 I/O 디바이스처럼 동작하는 것이다.
기본 동작 속도 향상
8088의 기본 클록 주파수는 4.77MHz를 기반으로 동작하며 기종에서 따라서는 10MHz 정도까지 성능이 확장되었다. 하지만, 80286은 6MHz를 기반으로 동작하고 기종에서 따라서 최고 25MHz 정도까지 운용되고 있으며 경우에 따라서는 30MHz 모델까지도 동작했다. 클럭에 따라서 동작하는 반도체의 운용 속도는 궁극적으로 클럭의 속도에 따라서 성능이 향상 될 수 밖에 없다.
데이터 버스의 확장
80286의 데이터 버스 폭은 8088의 2배인 16비트로 이루어진다. 즉, 내부나 외부의 모든 처리가 16비트로 처리되는 진정한 16비트 프로세서이다.
메인메모리 지원 능력 강화
메인메모리를 16MB까지 직접 처리할 수 있다. 때문에 최근의 컴퓨터에서는 모두가 바이오스 수준에서 16MB의 확장 메모리를 직접 제어할 수 있고 초기의 ISA 장비에서 시스템 메모리 억세스의 한계로 지적되고 있다.
80286 시스템
'IBM XT'의 성공에 힘입어 IBM은 IBM XT를 발표한 다음 해인 1984년에 IBM AT(Advanced Technology)를 발표했다. 이때는 CPU의 내부처리는 물론 CPU 외부와의 데이터교환도 16비트로 처리하는 프로세서인 80286을 채용했다. 이렇게 내부 외부데이터를 모두 16비트로 처리하게 되니 시스템의 전반적인 속도가 많이 향상되었다.