본문 바로가기

Studying!!/과제를하자

컴퓨터 역사 (Intel Computer Family- 8086~Pentium Pro)

제1세대 컴퓨터는 수백 평방피트의 설치 면적이 필요하고 무게는 수 톤이며 수천 개의 진공관으로 되어있다. 컴퓨터의 신뢰도는 종종 시간 또는 분 단위로도 측정되었을 정도로 현재의 관점으로 보았을 때 느렸고, 프로그램을 적재하기 위해서 컴퓨터를 재배선하는 man-hour가 필요하였다. 이것은 숙련된 엔지니어나 기술자만이 할 수 있었다. 진공관 시대에서부터 최초의 트랜지스터 컴퓨터 TRADIC이 만들어졌고, 이 컴퓨터는 800개의 트랜지스터가 사용되어 진공관 컴퓨터보다 열을 훨씬 적게 발생하였을 뿐만 아니라 저비용이면서도 신뢰성 있게 동작하였다. 1960년 IBM은 최초로 IC(3rd Computer Generation)기술을 사용하여 32비트 360시리즈를 만들었다.

1969년 4000 family로 알려진 4개의 칩셋을 만들었다.(4001:4bit I/O 포트가 있는 2K ROM, 4002: 4bit 출력포트가 있는 320bit RAM, 4003 : 10bit 직렬입력, 병렬출력, 쉬프트 레지스터, 4004: 4bit 프로세서) 이 처럼 단일 실리콘 칩 상에 컴퓨터 중앙 처리 장치 전체가 들어간 것은 신개념이었고, 컴퓨터 관련 잡지들은 이 프로세서를 마이크로프로세서라고 이름을 붙인다. 1972년 8bit 8008 그리고 1974년 이의 업그레이드 버전인 8080이 개발한다. 16bit Intel 8086, 32bit의 80386, 80486, 그리고 64bit의 Pentium과 Pentium Pro CPU가 개발된다. 2250개의 트랜지스터로 된 4004로부터 550만 개의 트랜지스터로 된 Pentium에 이르기 까지 눈부신 마이크로프로세서의 성장을 나타내었다.

1972년 Robert Noyce와 Gordon Moore 설립한 Intel사는 세계 제일의 마이크로프로세서 칩 생산회사이다. 실제로 1972년 개발된 8008에서 시작되어 사실상 국제 산업계의 표준이 되었다. 오늘날 사용되는 개인용 컴퓨터의 90%이상이 Intel 마이크로프로세서나 호환마이크로프로세서를 사용하고 있다다.

8086

1978년 Intel은 16bit 8086 마이크로프로세서를 발표하였고, 이 칩은 과거의 8bit 칩 세대 보다 여러 가지 개선된 특징을 가지고 있었다. 예를 들면 8bit 마이크로프로세서들은 16bit의 주소 버스를 가지고 있는데 반하여 20bit의 주소 버스를 가지고 있다.

과거의 8bit 마이크로프로세서는 최대 64k 메모리를 엑세스할 수 있었는데 이의 16배나 되는 1MB의 메모리를 엑세스할 수 있다. 내부 레지스터는 8bit에서 16bit로 확장되었으며, 원하는 경우 상위 8bit와 하위 8bit를 별도로 엑세스할 수 있는 기능도 가졌다.

8088

8086은 소개된 이래 몇 년 동안 업계의 관심을 끌지 못했는데, 이 이유 중 하나는 16bit 데이터 버스에 데이터를 공급하려면 두 개의 별도로 된 8bit 메모리 뱅크를 사용해야 하는 것이었다. 그 당시 메모리칩은 대단히 비싼 편이어서 이미 사용 중인 8bit 시스템보다 2배 많은 메모리가 필요한 8086을 선택하기 꺼려했다. 이런 이유로 Intel은 1979년 8088 마이크로프로세서를 발표하였다. 이 칩은 8bit 외부 데이터 버스를 가지고 있다는 것 외에는 8086과 동일하였다. 내부적으로는 여전히 16bit크기의 레지스터와 데이터버스를 유지하였고, 주소버스도 20bit가능하였다. 1982년 IBM은 개인용 컴퓨터 PC를 발표하였고, 이 IBM PC는 8088마이크로프로세서와 16K의 메모리(64K로 확장가능)를 가지고 있었고, 이렇게 하여 PC의 표준이 확립되었다.

80186 & 80188

IBM PC의 회로도를 보면 실용적인 컴퓨터를 만들기 위해서는 8088 외에도 몇 가지 다른 칩들이 필요하다는 것을 알 수있다. 클럭 발생기, 프로그램 가능 타이머, 프로그램 가능 인터럽트 제어기, DMA(직접 메모리 엑세스 제어기), I/O 장치.

이러한 시스템의 설계를 간편하게 하기 위해서 Intel은 80186과 80188을 만들었다. 이 칩들은 8086 혹은 8088을 핵심으로 하고, 동시에 위에 나열한 모든 기구들을 동일 칩에 가지고 있었다.

이 칩의 명령어 세트는 8086, 8088과 100% 호환되었지만, 크게 성공하지는 못했다.

80286

80286은 8086의 더 강력한 버전이었다. 1984년 IBM AT(advanced techonology) 컴퓨터에 사용되었따. 8086과 마찬가지로 16bit 데이터 버스를 가지고 있었으나 주소 버스를 24bit로 확장되었다. 80286은 실제 모드(real mode)와 보호 모드(Protected mod) 두 가지 프로그래밍 모드를 제공하였다. 전원을 넣으면 80286은 실제 모드로 출발한다. 실제 모드에서는 어떠한 8086 프로그램도 아무런 수정 없이 80286 실제 모드처럼 돌아간다.

Intel 은 8086과 80186의 소프트웨어를 사용할 수 있도록 80286을 설계하였다. 따라서 8086이나 80186에서 돌아가던 모든 프로그램은 아무런 수정 없이 80286에서 돌아간다. 16개의 새로운 명령어가 추가되었는데, 이 명령어들은 모두 프로세서의 보호 모드를 관리하기 위한 것들이다. 8086과 다른 점은 새로 설계가 되었고, 최대 클럭 속도가 6~8MHz로 증가하여 80286의 대부분의 명령어들이 더 빠르게 실행되는 것뿐이다.

보호 모드로 바뀌면, 80286은 멀티프로그램 환경을 지원하게 된다. 이는 가 프로그램에 일정한 양의 메모리를 할당함으로써 이루어진다. 이 모드에서 프로그램은 물리 주소를 사용하지 않고, 세그멘트 셀렉터(segment selector)를 통하여 주소라 지정된다. 80286에서 이 방식을 사용하면, 각 프로그램은 최대 16MB의 메모리를 사용할 수 있게 된다. 보호 모드란 이름은, 여러 프로그램이 동시에 메모리에(각자 자신의 세그먼트에) 적재되어 각각이 서로서로 보호되므로 붙여졌다. 보호된다는 말은 한 세그먼트에서 실행되는 프로그램은 다른 세그먼트로부터 데이터를 읽거나 쓸 수 없음을 의미한다.

80286이 설계될 때, 한번 보호 모드에 들어가면 칩은 다시 실제 모드로 돌아가 수 없게 하자고 결정되었고, 이는 영리한 프로그래머가 칩의 두 모드 사이를 왔다 갔다 하면서 다른 세그먼트의 데이터를 엑세스하는 것을 막기 위한 것이었다. 그러나 결국 이 결정은 MS-DOS 운영체제(80x86 프로세서에 대한 주된 마이크로컴퓨터 운영체제)로 하여금 모든 프로그램이 8086 실제모드에서 돌아가야 한다는 제약을 두게 하여 아주 치명적인 단점이 되고 말았다. 그 결과, 대부분의 286 칩들은 실제모드에서만 동작하여, 단순히 빠르기만 한 8086처럼 사용되었다.

80386

Intel이 1985년 80386 을 발표하였을 때 2000년까지 개발되는 프로세서는 80386과 호환되도록 하겠다고 약속하였다. 80386은 과거 8086이나 80286에 비하여 크게 개선되었다. 데이터 버스 폭과 내부 레지스터의 크기는 모두 32bit로 되었고, 주소 비트로 32비트로 늘어나서 80386은 4GB의 물리 메모리를 엑세스할 수 있게 되었다.

80286과 마찬가지로 80386도 두 가지 동작 모드를 지원하였다. 지원된 모든 stlf제 주소모드와 보호 가상 주소 모드였다. 실제 주소 모드는 80286의 실제 모드와 동일한 것으로 프로세서가 사용할 수 있는 메모리를 1MB로 제한하였다. 이 모드에서 80386은 아주 빠른 8086이나 마찬가지이다. 이 모드가 MS-DOS를 사용하는 모드이다.

80386의 진정한 위력은 보호 모드로 전환되었을 때 나타난다. 이 모드에서는 동일칩 상의 메모리 관리장치(MMU)가 80286의 보호 모드를 관리하는 것과 유사한 방법으로 4GB의 메모리를 관리한다. 보호모드의 장점을 이용하려면 이 장점을 활용할 수 있는 운영 체제가 있어야 한다. 이러한 운영체제로는 MS의 윈도우즈, IBM의 OS/2, UNIX 등이 있다. 윈도우즈와 OS/2는 가상 8086모드라고 하는 80386의 다른 보호 모드를 사용한다. 이 모드는 여러 개의 8086 기계가 서로 보호되면서 동시에 돌아갈 수 있다는 점을 제외호고는 실제 모드와 유사하다. 윈도우즈는 이 특징을 이용하여 여러 개의 DOS 프로그램의 각자의 윈도우에서 동시에 수행한다.

80386은 메모리 읽기 및 쓰기 버스 사이클에 두 클럭 펄스를 요구하는데, 클럭 속도는 40MHz까지 사용할 수 있다. 이 때문에 데이터가 일반적이 느린 메모리로부터 읽기나 쓰기를 할 때 프로세서가 긴 대기 사이클에 들어가는 것을 말기 위하여 외부 메모리 캐시가 필요하다. 캐시는 마이크로프로세서와 메모리 사이에 위치한 적은 용량의 아주 빠른 메모리를 말한다. 캐시 메모리로는 빠른 정적 RAM(SRAM)을 사용하고, 주 메모리로는 이 보다 느린 동적 RAM(DRAM)을 사용한다. 캐시는 프로세서가 가까운 장래에 사용할 가능성이 높은 정보를 가지고 있도록 설계된다. 원하는 정보가 실제로 캐시에 들어 있으면, 캐시 히트가 일어났다고 한다. 캐시 히트가 안 된 경우에는, 프로세서는 원하는 데이터가 캐시로 전달 될 때까지 기다려야 한다.

80386SX

8088이 8bit에서 16 bit의 이동을 원활하게 해준 것처럼 80386SX도 16bit로부터 32bit로 이동을 쉽게 하였다. 80386SX는 16bit의 외부 데이터 버스와 24bit의 주소 버스를 가지고 있었다. 그 외에 80386SX는 80386과 동일하다.(두 칩의 구분을 위해 80386을 808386DX라고 한다.)

80486DX

1989년 IBM PC는 출시된 지 7년이 되었으며 Intel의 마이크로프로세서 구조는 사실상의 표준으로 확고하게 입지를 굳혔다. 따라서, Intel은 동일 계열의 새로운 프로세서는 기존의 프로세서와 호환성을 유지해야 된다는 것을 알았다. 그러므로 80486은 한층 더 성능을 개선 및 향상시킨 80386이라고 할 수 있다. 데이터 버스, 주소 버스, 내부 레지스터의 크기 모두 32bit로 변함이 없었다. 최대 클럭 속도는 50MHz의 칩이 제공되었다. 80486 역시 고집적도의 회로였다. 동일 칩에 8K 메모리 캐시와 80386의 두 배의 성능을 갖게 되었다. 즉, 20MHz 80486의 성능은 40MHz 80386과 동등하였다.

80486SX

Intel은 보조프로세서나 내부 캐시가 필요하지 않는 하급의 응용프로그램을 돌리기 위하여 이 칩을 발표했다. 클럭 속도도 33MHz로 제한하였다.

80486DX2 and 80486DX4

클럭 속도가 증가됨에 따라 이들을 사용하여 호환성을 갖는 컴퓨터를 만드는 일이 더욱 어려워졌다. 예를 들어 50MHz 클럭 신호는 20ns마다 클럭 펄스를 제공하는데, 이는 시스템 보드의 한 지점 A에서 다른 지점 B까지 신호가 전달되는 데 걸리는 시간이 중요하게 되었다는 것을 의미한다. 5-10ns의 지연을 일으키는 버퍼는 전체 시스템의 동작을 멈추게 할 수도 있다. 따라서 새로운 사고 방식이 요구되었는데, 그 결과 내부 클럭의 속도가 외부 클럭의 속도보다 2배(DX2), 또는 3배(DX4) 빠른 신종 마이크로프로세서가 탄생하였다.

Pentium

집적회로의 복잡도를 높이는 한 방법은 칩의 크기를 줄이는 것이다. 예를 들어, 실리콘 다이에 들어가는 모든 선을 절반의 크기로 줄인다면 같은 회로를 4분의 1 크기의 면적에 만들 수 있다. DRAM 칩의 발전은 이 방법을 정확히 따른 것이다. Pentium은 Super Scalar 구조를 사용한다. 이 구조는 단순히 크기만 축소시켜서 얻을 수 있는 것보다 더 높은 성능을 얻을 수 있다. 특히 Pentium은 명령어 파이프라인을 두 개 지원하는 Intel 계열의 첫 마이크로프로세서이다. 각 명령어 파이프라인은 자신의 ALU, 주소 발생회로, 데이터 캐시 인터페이스를 가지고 있다. 이 결과 Pentium 프로세서는 두 개의 다른 명령을 동시에 실행할 수 있게 되었다. 80486처럼 Pentium도 동일 칩 캐시와 동일 칩 부동소수점 프로세서를 내장하고 있다. 그리고 프로그램 명령어와 데이터를 액세스할 때의 병목 현상을 없애기 위해 별도의 8K 코드 캐시와 데이터 캐시를 지원한다. 그 결과 Pentium은 80486의 부동소수점 계산의 5배 내지 10배 정도의 성능을 얻었다.

이 칩의 내부 고조는 프로그래머에게는 80386이나 80486과 호환성이 있다. 즉, 모든 레지스터와 주소 버스의 크기는 32bit이다. 단지 외부 데이터 버스는 고속 데이터 전송을 지원하기 위하여 64bit로 확장되었다. 성능 검사를 해보면 같은 클럭 속도에서 Pentium은 80486보다 두 배의 성능을 보임을 알 수 있다.

Pentium Pro

Pentium Pro의 가장 두드러진 특징은 패키지 자체일 것이다. 두 개의 분리된 실리콘 다이로 구성되어 있는데, 큰 다이는 프로세서이고, 작은 다이는 캐시이다. Pentium의 모든 구조상의 특징을 유지하고 있다. 즉, 내부적으로 모든 레지스터는 32bit의 크기를 가지고 있으며, 외부 데이터 버스의 크기는 64bit이다.

Pentium Pro의 가장 두드러진 특징은 Intel의 동적 실행(Dynamic Execution)이라는 것이다. 이는 프로세서의 idle time을 절대 최소로 줄이는 소프트웨어 명령어를 처리하는 새로운 방식이다. 동적 실행은 다음 3가지 기술로 이루어진다. 첫 번째, 다중분기 예측으로 기존의 프로세서는 프로그램의 분기와는 상관없이 맹목적으로 명령어를 인출한다. 조건부 점프 명령어가 인출되면, 점프를 택할 경우 다음 명령어는 버려야 하는 경우가 있다. 다중 분기 예측을 사용하여, Pentium Pro는 이 프로그램 분기를 30개 정도의 명령어까지 예측할 수 있다. 두 번째는 데이터 흐름 분석으로 이 기법을 사용하여 Pentum Pro는 들어오고 있는 S/W 명령어를 조사하여 처리 가능한지를 결정한다. 그 다음 최적의 처리순서를 결정하여 명령어를 실행한다. 세 번째, 추론적 실행이다. 이 기법을 사용하여 Pentium Pro는 프로세서에 들어 온 순서와 다르게 명령어를 실행한다. 이러한 순서를 바꾼 실행으로 Pentum Pro는 최적의 효율로 명령어를 실행할 수 있다.

Pentium Pro는 2단계 캐시를 가지고 있어서 시스템 보드의 설계가 단순화되어 면적이 줄어들고, 동일 패키지에 프로세서와 캐시가 연결되어 있으므로, CPU 코어는 최대속도로 캐시와 통신할 수 있다. 133MHz Pentium Pro는 100MHz Pentium보다 70% 정도의 높은 성능을 보인다.


참고: The 80x86 Family Design, Programming, and Interfacing (John E. Uffenbeck / Prentice Hall/ 1998)


'Studying!! > 과제를하자' 카테고리의 다른 글

모바일 OS  (0) 2008.04.27