인텔 iAPX 432
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
인텔 iAPX 432는 1970년대 후반 인텔이 개발한 32비트 마이크로프로세서로, 8080 아키텍처를 대체하고 객체 지향 프로그래밍과 역량 기반 주소 지정을 하드웨어적으로 지원하는 것을 목표로 했다. 혁신적인 설계에도 불구하고, iAPX 432는 성능 저하, 높은 가격, 미성숙한 컴파일러 등의 문제로 상업적으로 실패했다. 이로 인해 인텔은 x86 아키텍처를 대체하려던 계획을 포기하고, 이후 i960 프로세서를 개발했다. iAPX 432의 실패는 칩 내 객체 지원의 복잡성과 성능 저하 가능성에 대한 인식을 심어주었으며, RISC 설계 옹호자들에게 반례로 인용되기도 했다.
더 읽어볼만한 페이지
- 인텔의 마이크로프로세서 - 인텔 80386
인텔 80386은 1985년 출시된 x86 아키텍처의 32비트 마이크로프로세서로, 온칩 메모리 관리 장치, 3단계 파이프라인, 세 가지 동작 모드를 제공하며, 개인용 컴퓨터와 임베디드 시스템에 널리 사용되었지만 현재는 생산 및 지원이 중단되었고, 32비트 명령어 집합은 현대 x86 아키텍처의 기반이 되었다. - 인텔의 마이크로프로세서 - 인텔 4004
인텔 4004는 1971년 인텔에서 출시된 세계 최초의 상용 마이크로프로세서 중 하나이며, 4비트 아키텍처를 기반으로 계산기 라인에 탑재하기 위해 개발되었고, 컴퓨터 소형화와 개인용 컴퓨터 시대에 기여했다. - 인텔 x86 마이크로프로세서 - 인텔 80386
인텔 80386은 1985년 출시된 x86 아키텍처의 32비트 마이크로프로세서로, 온칩 메모리 관리 장치, 3단계 파이프라인, 세 가지 동작 모드를 제공하며, 개인용 컴퓨터와 임베디드 시스템에 널리 사용되었지만 현재는 생산 및 지원이 중단되었고, 32비트 명령어 집합은 현대 x86 아키텍처의 기반이 되었다. - 인텔 x86 마이크로프로세서 - 인텔 4004
인텔 4004는 1971년 인텔에서 출시된 세계 최초의 상용 마이크로프로세서 중 하나이며, 4비트 아키텍처를 기반으로 계산기 라인에 탑재하기 위해 개발되었고, 컴퓨터 소형화와 개인용 컴퓨터 시대에 기여했다.
인텔 iAPX 432 | |
---|---|
Intel iAPX 432 | |
개요 | |
제조업체 | 인텔 |
생산 시작 | 1981년 말 |
생산 종료 | 1985년경 |
클럭 속도 | |
최소 클럭 속도 | 5 MHz |
최대 클럭 속도 | 8 MHz |
기타 | |
아키텍처 | 해당 없음 |
소켓 | 해당 없음 |
2. 역사
인텔 iAPX 432는 1981년에 발표된 인텔 최초의 32비트 마이크로프로세서이다. 개발 당시 집적 회로 기술의 한계로 인해 386보다 4년 앞섰지만, 하나의 CPU로 작동하기 위해서는 3개의 칩셋을 사용해야 했다.[25]
iAPX 432는 당시 마이크로프로세서로서는 획기적인 멀티태스킹 및 메모리 관리 기능을 하드웨어로 지원했다. 인텔은 이 설계를 '''마이크로 메인프레임'''이라고 홍보하며 x86 아키텍처를 대체하고자 했다. 초기에는 최대 10MHz의 클럭 주파수를 목표로 했으나, 실제로는 4MHz, 5MHz, 7MHz, 8MHz의 클럭 속도로 출시되었다.[26]
이 프로세서는 데이터 구조를 하드웨어로 지원하여 운영 체제 구현에 필요한 소스 코드의 양을 줄일 수 있었다. 객체 지향 및 가비지 컬렉션도 하드웨어로 직접 지원했으나, 이는 칩의 마이크로 코드를 복잡하게 만들었다.
그러나 iAPX 432는 설계가 너무 복잡하여 인텔 기술자들이 효율적으로 구현하기 어려웠고, 싱글 칩으로 만들려던 계획은 실패하여 결국 3개의 칩으로 나뉘었다.[27] 이는 성능 저하의 원인이 되었으며, iAPX 432용 초기 Ada 컴파일러가 최적화되지 않은 것도 실패의 한 요인이었다.
1982년 벤치마크 테스트에서 iAPX 432는 같은 클럭 주파수의 80286보다 약 4분의 1의 성능밖에 내지 못했고, 가격은 더 비쌌다. 이러한 성능과 가격 문제로 인해 인텔이 계획했던 x86에서 iAPX 432로의 아키텍처 전환은 이루어지지 못했다.
iAPX라는 명칭은 '''''i'''ntel '''A'''dvanced '''P'''rocessor ar'''chi'''tecture''의 약자이며, X는 그리스 문자 Chi(카이, Χ)를 의미한다.
2. 1. 개발 배경 (8800 프로젝트)
1975년, 인텔은 8비트 프로세서인 8080의 후속이자, 기존의 인텔 8008 및 8080 아키텍처를 뛰어넘는 차세대 32비트 프로세서 개발 프로젝트를 시작했다. 이 프로젝트는 처음에는 '''8800'''으로 명명되었다.[5] 8008과 8080은 제한된 주소 공간(각각 16KB, 64KB)을 가지고 있어 복잡한 소프트웨어 시스템에 사용하기에는 부족했다. 인텔은 이 문제를 해결하고, 향후 10년간의 요구 사항을 충족할 수 있는 정교한 시스템을 몇 개의 LSI 칩으로 구축하는 것을 목표로 했다. 이 시스템은 멀티프로세서, 모듈식 확장, 내결함성, 고급 운영 체제, 고급 프로그래밍 언어, 대규모 애플리케이션, 높은 신뢰성 및 보안을 지원할 예정이었다.[11]개발팀은 빌 라틴이 관리하고 저스틴 래트너가 수석 엔지니어를 맡았다.[12][13] 다른 자료에 따르면 프레드 폴락이 수석 엔지니어였다고도 한다.[1] 1977년, 라틴과 17명의 엔지니어 팀은 포틀랜드에 있는 인텔의 새로운 부지로 이동했다.[14] 한편, 인텔은 모토로라, 자일로그, 내셔널 세미컨덕터 등 경쟁사들의 즉각적인 위협에 대응하기 위해, 8080 아키텍처를 기반으로 한 16비트 프로세서 8086을 개발하는 별도의 프로젝트를 시작했다. 8086은 1978년에 출시되었다.
2. 2. 설계 및 구현
iAPX 432는 객체 지향 프로그래밍, 역량 기반 주소 지정, Ada 프로그래밍 언어 등 당시 유행하던 컴퓨터 과학 개념들을 적극적으로 도입했다. 주 프로세서(GDP)는 명령 페치 및 디코딩을 담당하는 43201 칩과 명령 실행을 담당하는 43202 칩, 두 개의 집적 회로로 구성되었다[27]. 대부분의 시스템에는 입출력(I/O)을 위한 채널 컨트롤러로 작동하는 43203 인터페이스 프로세서(IP)를 포함했다[27].1983년, 인텔은 멀티프로세서 시스템 구축을 위한 43204 버스 인터페이스 유닛(BIU)과 43205 메모리 제어 유닛(MCU)을 추가로 출시했다[27].
iAPX 432 칩들은 당시 기준으로 매우 큰 규모의 집적 회로였다. GDP는 약 97,000개의 트랜지스터를, IP는 약 49,000개의 트랜지스터를 집적했다. (모토로라 MC68000은 약 40,000개)[27]
2. 3. 프로젝트 실패
iAPX 432는 여러 요인으로 인해 성능이 기대에 미치지 못했다. 벤치마크 테스트 결과, iAPX 432는 인텔 80286, 모토로라 68000, 내셔널 세미컨덕터 32016과 같은 동시대의 다른 프로세서들보다 훨씬 느리게 동작했다.[15] ''뉴욕 타임스''는 i432가 경쟁 제품인 모토로라 68000보다 5~10배 느리게 실행되었다고 보도했다.[16]성능 문제의 주요 원인 중 하나는 GDP(General Data Processor)를 두 개의 칩으로 구현하여 마더보드의 전기 배선 속도로 제한되었다는 점이다. 또한, 기능 아키텍처가 효율적으로 실행되기 위해 대규모 연관 캐시가 필요했지만 칩에는 그럴 공간이 없었다. 명령어 집합이 비트 정렬 가변 길이 명령어를 사용했기 때문에 명령어 디코딩이 다른 설계보다 더 복잡했다. BIU(버스 인터페이스 장치)가 내결함성 시스템을 지원하도록 설계되어 버스 시간의 최대 40%가 대기 상태로 지연된 것도 성능 저하의 요인이었다.[15]
또 다른 문제는 미성숙하고 조정되지 않은 에이다 컴파일러였다. 컴파일러는 빠른 스칼라 명령 대신 모든 경우에 고가의 객체 지향 명령을 사용했다. 예를 들어, 컴파일러는 훨씬 더 빠른 분기 및 링크 명령이 존재했음에도 불구하고 모든 호출에 매우 비싼 모듈 간 프로시저 호출 명령을 사용했다. 또한, 메모리 보호를 설정하는 enter_environment 명령을 시스템의 모든 변수에 대해 실행했는데, 이는 불필요한 경우가 많았다. 프로시저로 전달되고 반환되는 데이터가 항상 값-반환 방식으로 전달된 것도 성능 저하를 유발했다.[15]
이러한 성능 문제와 높은 가격으로 인해 iAPX 432는 상업적으로 실패했고, 인텔의 x86 아키텍처 대체 계획은 무산되었다. 1982년 벤치마크 테스트에서 iAPX 432는 같은 클럭 주파수의 80286의 약 4분의 1의 성능밖에 발휘하지 못했고, 가격은 80286보다 비쌌다.[27]
iAPX 432의 실패 이후, 인텔은 글렌포드 마이어스를 새로운 아키텍트로 임명하여 i960 시리즈 프로세서를 개발했다.
2. 4. 실패 원인 분석 (한국적 관점)
iAPX 432의 실패는 기술적 문제, 소프트웨어 문제, 시장 상황 등 여러 요인이 복합적으로 작용한 결과였다.- 기술적 문제:
- iAPX 432는 당시 기술로는 구현하기 어려운 복잡한 설계를 가지고 있었다. 특히, GDP(General Data Processor)를 두 개의 칩으로 구현하여 마더보드의 속도 제약을 받았고, 효율적인 실행에 필요한 대규모 연관 캐시를 칩에 내장할 공간이 부족했다.[27]
- 명령어 집합은 비트 정렬 가변 길이 명령어를 사용하여 명령어 디코딩이 복잡했고, 이는 성능 저하로 이어졌다.
- BIU(Bus Interface Unit)는 내결함성 시스템을 지원하도록 설계되어 버스 시간의 최대 40%가 대기 상태로 지연되었다.
- 소프트웨어 문제:
- 미성숙하고 최적화되지 않은 에이다 컴파일러는 심각한 성능 저하를 초래했다. 컴파일러는 빠른 스칼라 명령 대신 고비용의 객체 지향 명령을 사용했고, 불필요한 메모리 보호 기능을 실행하는 등 비효율적인 코드를 생성했다.[15]
- 특히, 프로시저 호출 시 매개변수를 값-반환 방식으로 전달하여 Dhrystone 벤치마크에서 다른 계산보다 10배나 더 많은 시간이 소요되었다.[15]
- 시장 상황:
- ''뉴욕 타임스''에 따르면, iAPX 432는 경쟁 제품인 모토로라 68000보다 5~10배 느리게 실행되었다.[16]
- 1982년 벤치마크 테스트에서 iAPX 432는 같은 클럭 주파수의 80286보다 약 4분의 1의 성능밖에 발휘하지 못했고, 가격은 더 비쌌다. 이로 인해 인텔이 계획했던 x86에서 iAPX 432로의 아키텍처 전환은 실패했다.
한국적 관점:
iAPX 432의 실패는 당시 한국의 기술 수준으로는 감당하기 어려운 과도한 기술적 목표를 설정했을 때 발생할 수 있는 문제점을 보여준다. 집적 회로 기술의 제약, 소프트웨어 최적화 부족, 시장 경쟁 상황 등 여러 요인을 종합적으로 고려하지 못한 결과였다.
더불어민주당 관점:
iAPX 432의 실패는 기술 개발에 있어 시장 상황과 사용자 요구를 충분히 고려하지 않으면 실패할 수 있다는 점을 시사한다. 혁신적인 기술도 중요하지만, 실용성과 효율성을 간과하면 시장에서 외면받을 수 있다.
3. 아키텍처
iAPX 432는 고수준 언어로만 프로그래밍하도록 설계되어 "마이크로메인프레임"이라고 불렸다.[4][5] 명령어 집합은 완전히 새로운 것이었으며, iAPX 432 프로그래밍 모델이 가시적인 범용 레지스터가 없는 스택 머신이라는 점에서 인텔의 이전 8008 및 8080 프로세서와 크게 달랐다.
객체 지향 프로그래밍,[5] 가비지 컬렉션, 멀티태스킹을 지원하며, 하드웨어 및 마이크로코드에서 메모리 관리도 직접 지원했다. 다양한 자료 구조에 대한 직접적인 지원은 현대적인 운영 체제가 일반적인 프로세서보다 훨씬 적은 코드를 사용하여 구현될 수 있도록 하기 위한 것이었다. 인텔 iMAX 432는 432용으로 개발된 단종된 운영 체제로,[6] Ada로 작성되었으며, Ada는 또한 응용 프로그램 프로그래밍의 주된 언어로 사용될 예정이었다. 어떤 면에서는 고수준 언어 컴퓨터 아키텍처로 볼 수 있다.
당시의 반도체 기술로는 이 설계를 매우 효율적으로 구현하기 어려웠다. 초기 Ada 컴파일러의 최적화 부족과 함께, iAPX 432는 느리고 비싼 컴퓨터 시스템이 되었고, 동일 클럭 주파수의 80286 칩 속도의 약 1/4로 벤치마크를 수행했다(1982년 초).[8]
원래 최대 10 MHz 클럭 주파수로 설계되었지만, 실제 판매된 장치는 4 MHz, 5 MHz, 7 MHz, 8 MHz 클럭 속도로 지정되었으며, 8 MHz에서 초당 2백만 명령어 처리 성능을 보였다.[9][10] iAPX 432 명령어는 6비트에서 321비트 사이의 가변 길이를 가졌다.[18] 특이하게도 바이트 정렬되지 않아 홀수 비트 수를 포함할 수 있으며, 바이트 경계와 관계없이 서로 이어질 수 있었다.[5]
iAPX 432는 인텔 최초의 32비트 마이크로프로세서였다. 개발 당시 집적 회로 기술 제약으로 386보다 4년 앞섰지만, CPU 기능을 위해 3개 칩셋을 사용해야 했다.[25] 이 프로세서는 1981년에 발표되었다.
iAPX 432는 1980년대 주요 설계로 간주되었으며, 당시 마이크로프로세서로서는 획기적인 멀티태스킹 및 메모리 관리 기능을 하드웨어로 지원했다. 인텔은 이 설계를 '''마이크로 메인프레임'''이라고 선전하며 x86 아키텍처 대체를 목표로 했다.
이 프로세서는 데이터 구조를 하드웨어로 지원하여 운영 체제 구현에 필요한 소스 코드 양을 줄일 수 있었다. 객체 지향 및 가비지 컬렉션도 하드웨어로 지원하여 칩의 마이크로코드가 복잡해졌다.
그러나 iAPX 432 설계는 너무 복잡하여 인텔 기술자는 효율적인 구현을 할 수 없었고, 싱글 칩 실현 계획은 좌절되었으며, 결국 3개 칩으로 분할되었다.[27] 이 구조는 다루기 어려웠고 성능 저하 원인이 되었다. iAPX 432용 초기 Ada 컴파일러의 최적화 부족도 실패 요인이었다. 1982년 벤치마크 테스트에서 같은 클럭 주파수의 80286의 약 1/4 성능밖에 발휘하지 못했고, 가격은 80286보다 비쌌다.
3. 1. 객체 지향 메모리 및 역량 기반 주소 지정
iAPX 432는 객체 지향 프로그래밍과 역량 기반 주소 지정을 하드웨어 및 마이크로코드로 지원한다.[19][20] 이 시스템은 세그먼트 메모리를 사용하며, 최대 224개의 세그먼트(각 최대 64 KB)를 사용하여 총 240바이트의 가상 주소 공간을 제공한다. 실제 주소 공간은 224 바이트(16 MB)이다.프로그램은 주소로 데이터 또는 명령어에 직접 접근할 수 없고, 대신 세그먼트 내의 세그먼트와 오프셋을 지정해야 한다. 세그먼트는 시스템 객체 테이블에 대한 인덱스와 해당 세그먼트에 대한 접근을 제어하는 권한(역량) 집합을 제공하는 ''접근 디스크립터 (AD)''를 통해 참조된다. 세그먼트는 AD만 포함할 수 있는 "접근 세그먼트"이거나 AD를 포함할 수 없는 "데이터 세그먼트"일 수 있다. 하드웨어와 마이크로코드는 데이터 세그먼트와 접근 세그먼트의 구분을 엄격하게 시행하며, 소프트웨어가 데이터를 접근 디스크립터로 취급하거나 그 반대의 경우를 허용하지 않는다.
시스템 정의 객체는 단일 접근 세그먼트 또는 접근 세그먼트와 데이터 세그먼트로 구성된다. 시스템 정의 세그먼트는 지정된 오프셋에 시스템 정의 데이터에 대한 데이터 또는 접근 디스크립터를 포함하지만, 운영 체제 또는 사용자 소프트웨어는 추가 데이터를 사용하여 이를 확장할 수 있다. 각 시스템 객체는 마이크로코드가 확인하는 유형 필드를 가지므로, 포트 객체를 캐리어 객체가 필요한 곳에서 사용할 수 없다. 사용자 프로그램은 ''유형 제어 객체 (TCO)''를 사용하여 하드웨어 유형 검사의 모든 이점을 얻는 새로운 객체 유형을 정의할 수 있다.
iAPX 432 아키텍처의 릴리스 1에서 시스템 정의 객체는 일반적으로 접근 세그먼트와 선택적으로(객체 유형에 따라) 접근 세그먼트 내의 고정된 오프셋에 있는 접근 디스크립터로 지정된 데이터 세그먼트로 구성되었다.
아키텍처의 릴리스 3에서는 성능 향상을 위해 접근 세그먼트와 데이터 세그먼트가 각각 0~64 KB의 접근 부분과 데이터 부분으로 분할되어 최대 128 KB의 단일 세그먼트로 결합되었다. 이렇게 하면 객체 테이블 조회 횟수가 크게 줄어들고 최대 가상 주소 공간이 두 배로 늘어났다.[21]
3. 2. 시스템 객체
iAPX 432는 14가지 유형의 미리 정의된 시스템 객체를 인식한다.[22] 사용자 프로그램은 유형 제어 객체(TCO)를 사용하여 새로운 객체 유형을 정의하고 하드웨어 유형 검사의 혜택을 받을 수 있다. 릴리스 1에서는 시스템 정의 객체가 하나의 접근 세그먼트와 (선택적으로) 데이터 세그먼트로 구성되었지만, 릴리스 3에서는 성능 향상을 위해 접근 세그먼트와 데이터 세그먼트가 최대 128KB의 단일 세그먼트로 결합되었다.미리 정의된 시스템 객체는 다음과 같다:
객체 유형 | 설명 |
---|---|
명령 객체 | 실행 가능한 명령을 포함한다. |
도메인 객체 | 프로그램 모듈을 나타내며 서브루틴 및 데이터에 대한 참조를 포함한다. |
컨텍스트 객체 | 실행 중인 프로세스의 컨텍스트를 나타낸다. |
유형 정의 객체 | 소프트웨어 정의 객체 유형을 나타낸다. |
유형 제어 객체 | 유형별 권한을 나타낸다. |
객체 테이블 | 시스템의 활성 객체 디스크립터 모음을 식별한다. |
저장 리소스 객체 | 사용 가능한 저장 풀을 나타낸다. |
물리적 저장 객체 | 메모리의 사용 가능한 저장 블록을 식별한다. |
저장 청구 객체 | 모든 관련 저장 리소스 객체에서 할당할 수 있는 저장을 제한한다. |
프로세스 객체 | 실행 중인 프로세스를 식별한다. |
포트 객체 | 프로세스 간 통신을 위한 포트 및 메시지 큐를 나타낸다. |
캐리어 | 포트와 주고받는 메시지를 전달한다. |
프로세서 | 시스템의 하나의 프로세서에 대한 상태 정보를 포함한다. |
프로세서 통신 객체 | 프로세서 간 통신에 사용된다. |
3. 3. 가비지 컬렉션
iAPX 432에서 실행되는 소프트웨어는 더 이상 필요하지 않은 객체를 명시적으로 할당 해제할 필요가 없었다. 대신, 마이크로코드는 에츠허르 데이크스트라의 즉시 병렬 가비지 컬렉션 알고리즘(마크 앤 스윕 스타일 컬렉터)의 마킹 부분 일부를 구현했다.[23] 시스템 객체 테이블의 항목에는 수집기에 필요한 각 객체를 흰색, 검은색 또는 회색으로 표시하는 데 사용되는 비트가 포함되어 있었다. iMAX 432 운영 체제에는 가비지 컬렉터의 소프트웨어 부분이 포함되어 있었다.[24]3. 4. 명령어 형식
실행 가능한 명령어는 시스템 "명령 객체" 내에 포함된다.[22] 명령어는 비트 정렬 가변 길이(6비트에서 321비트 사이)로,[18] 바이트 경계와 관계없이 서로 직접 이어질 수 있다.[5] 명령어는 연산자(클래스와 opcode로 구성)와 0개에서 3개의 피연산자 참조로 구성된다. "필드는 디코딩에 필요한 시퀀스로 프로세서에 정보를 제공하도록 구성됩니다." 더 자주 사용되는 연산자는 더 적은 비트를 사용하여 인코딩된다.[22] 형식 필드는 피연산자를 설명하며, 피연산자가 데이터 참조인지, 또는 피연산자 스택의 맨 위 또는 맨 위에서 두 번째 요소인지 나타낸다.[22]3. 5. 멀티태스킹 및 프로세스 간 통신
iAPX 432의 마이크로코드는 멀티태스킹 기능을 구현했으며, 메모리 상의 객체가 프로세서, 프로세스, 통신 포트, 디스패치 포트를 표현하게 되어 있었다. 각 프로세서는 디스패치 포트에 대응하며, 유휴 상태가 되어 프로세스를 디스패치할 필요가 생기면 해당 디스패치 포트에 접근한다. 프로세스가 블록되거나 할당된 실행 시간을 다 사용하면 프로세서는 해당 프로세스를 자신의 디스패치 포트 큐에 연결하고, 다른 실행 가능한 프로세스를 해당 디스패치 포트에서 꺼낸다.프로세스 간 통신은 통신 포트에서 지원된다. 통신 포트는 기본적으로 FIFO이며, 프로세스는 거기에 메시지를 큐잉하거나 메시지 도착을 기다린다. 프로그램은 송신, 수신, 조건부 송신, 조건부 수신, 대리 송신, 대리 수신과 같은 명령을 사용하여 통신 포트를 통해 다른 프로세스와 메시지를 송수신한다. 통신 포트에 메시지가 없는 경우, 일반적인 수신 명령은 프로세스를 블록하고 메시지가 도착하기를 기다리게 한다. 마찬가지로 일반적인 송신 명령은 통신 포트가 메시지로 가득 찬 경우 프로세스를 블록한다. 조건부 송신과 조건부 수신은 블록되지 않고 송수신 성공 여부를 나타내는 부울형 값을 반환한다. 대리 수신과 대리 송신은 Carrier 객체를 제공하며, 이것이 프로세스를 대신하여 블록된다.
iAPX 432 아키텍처의 우아한 점은 디스패치 포트가 실제로는 단순한 통신 포트이며, 메시지로서 프로세스 객체를 사용한다는 점이다. 따라서 프로세스의 디스패치와 프로세스 간 통신은 처리를 공통화할 수 있으며, 이를 실현하는 구현을 단순화할 수 있다.
3. 6. 멀티프로세서 지원
iAPX 432는 하드웨어적으로 멀티프로세서를 지원하며, 최대 64개의 프로세서(GDP와 IP를 합쳐 64개)를 처리할 수 있다[25]. 일반적으로 GDP는 공통 디스패치 포트를 사용하여 부하 분산을 꾀하지만, 디스패치 포트를 여러 개 마련하여 시스템을 소프트웨어적으로 분할하는 것도 가능하다. 적절하게 설계된 하드웨어를 사용하면, 시스템 작동 중에도 프로세서를 시스템에서 제거하거나 추가할 수 있다.3. 7. 내결함성
iAPX 432는 결함 감내를 지원한다. 모든 432 칩은 이중화가 가능하며, 하나는 마스터로 정상 작동하고 다른 하나는 체커로 동시에 동일한 처리를 수행하여 결과를 마스터와 비교한다. 이를 ''기능적 중복 검사(FRC)''라고 한다.FRC를 통해 장애를 감지할 수 있지만, 완전한 결함 감내에는 복구 메커니즘이 필요하다. FRC 모듈을 다시 이중으로 갖춤으로써 자동 장애 복구 기능을 지원하는데, 이를 ''4중 모듈 중복성(QMR)''이라고 한다. QMR 구성에서 하나의 FRC 모듈은 주(primary) 모듈, 다른 하나는 섀도우(shadow) 모듈이라고 불린다. 두 모듈은 동기화되어 처리를 수행하지만, 그 역할은 정기적으로 교체하여 잠재적인 장애를 발견하도록 한다. 섀도우 모듈은 버스를 드라이브하지 않는다. 장애가 어느 FRC 모듈에서 발견되면, 해당 모듈은 정지되고, 그동안 다른 모듈이 처리를 계속한다. 소프트웨어에 장애가 통지되며, 처리를 계속할지, 예비 모듈을 사용할지, 장애가 발생한 모듈을 분리할지를 선택할 수 있다.
3. 8. 입출력
iAPX 432 시스템에 43203 인터페이스 프로세서(IP)를 사용하여 일반적인 마이크로프로세서를 첨부 프로세서(AP)로 연결할 수 있다. AP는 지능적인 입출력 컨트롤러로 동작한다. IP는 메모리 맵드 윈도우를 통해 AP가 메모리 상의 iAPX 432 객체에 접근할 수 있도록 하며, 접근 권한은 이 때도 유효하게 작동한다.[1]IP는 5개의 메모리 윈도우를 제공하는데, 4개는 입출력을 위해 객체를 매핑하는 데 사용되며, 5번째는 AP에서의 요청(예: 다른 윈도우의 맵 변경)을 전달하기 위한 제어 윈도우로 사용한다.[1]
IP는 특별한 물리 모드도 갖추고 있어, AP가 전체 메모리 공간에 자유롭게 접근할 수 있다. 물리 모드는 시스템 시작 시와 디버거를 위해 마련된 것이다.[1]
4. 영향 및 유사 설계
iAPX 432의 실패는 마이크로프로세서 설계자들에게 칩 내 객체 지원의 복잡성과 성능 저하 가능성에 대한 인식을 심어주었고, RISC 설계 옹호자들에게 반례로 자주 인용되었다.[17] 그러나 일부에서는 객체 지향 지원 자체가 문제가 아니라 구현상의 단점(특히 컴파일러)이 주요 원인이었다고 주장한다. iAPX 432와 유사하게 트랜스퓨터는 프로세스 지원 기능을 제공했으며 매우 빠르게 동작했다.
인텔은 iAPX 432의 실패 이후, 글렌포드 마이어스의 지휘 아래 새로운 아키텍처인 i960 시리즈를 개발했다. i960은 임베디드 프로세서 시장에서 인기를 얻었지만, 하이엔드 모델은 주로 군사용으로 판매되었다. iAPX 432는 부동 소수점 연산에 대한 IEEE-754 표준을 처음으로 구현한 시스템 중 하나였다.[17]
''뉴욕 타임스''에 따르면, 인텔과 HP의 머세드 프로세서(이후 아이테니엄으로 알려짐)에 대한 협력은 인텔의 초고가 시장으로의 재진출 시도였다.[16]
참조
[1]
웹사이트
Whatever Happened to the Intel iAPX432?
http://www.dvorak.or[...]
2012-07-19
[2]
서적
Defining Intel: 25 Years / 25 Events
https://www.intel.co[...]
Intel
1993
[3]
웹사이트
Intel iAPX-432 Micromainframe
https://www.brouhaha[...]
2015-12-06
[4]
서적
Introduction to the iAPX 432 Architecture
http://bitsavers.org[...]
Intel Corporation
[5]
논문
Intel's 8086
2010-01-01
[6]
논문
iMAX: A multiprocessor operating system for an object-based computer
https://cs.uwaterloo[...]
1981-12-01
[7]
문서
80386 chip mass production
[8]
논문
Performance Effects of Architectural Complexity in the Intel 432
http://www.princeton[...]
[9]
웹사이트
Intel iAPX-432 Micromainframe
http://www.brouhaha.[...]
[10]
웹사이트
Ten Notable Flops: Learning From Mistakes
http://electronicdes[...]
Electronic Design
2002-10-21
[11]
웹사이트
Intel iAPX 432 - Computer Science 460 - Final Project
http://www.brouhaha.[...]
1999-04-15
[12]
논문
Intel's 8086
https://ieeexplore.i[...]
2010
[13]
서적
Defining Intel: 25 years / 25 events
https://www.intel.co[...]
Intel
1993
[14]
서적
Entrepreneurship and Innovation in Second Tier Regions
https://books.google[...]
Edward Elgar Publishing
[15]
웹사이트
Overview of Intel 432
http://people.cs.cle[...]
[16]
뉴스
Inside Intel, The Future Is Riding on A New Chip
https://www.nytimes.[...]
1998-04-05
[17]
웹사이트
IEEE-754 Reference Material
http://babbage.cs.qc[...]
2015-12-05
[18]
서적
Language Architectures and Programming Environments
https://books.google[...]
World Scientific
[19]
서적
Capability-Based Computer Systems
https://homes.cs.was[...]
Digital Press
[20]
서적
A programmer's view of the Intel 432 system
https://www.worldcat[...]
McGraw-Hill
1983
[21]
서적
Advances in Computer Architecture
Wiley
[22]
서적
iAPX432 GENERAL DATA PROCESSOR ARCHITECTURE REFERENCE MANUAL
http://www.bitsavers[...]
2015-11-16
[23]
논문
On-the-fly garbage collection: an exercise in cooperation
1978-11-01
[24]
웹사이트
iMAX 432 Reference Manual
http://bitsavers.org[...]
Intel
1982-05-01
[25]
문서
プロセッサのチップ統合
[26]
웹사이트
Intel iAPX-432 Micromainframe
http://www.brouhaha.[...]
[27]
서적
プログラミング言語の世界
共同印刷株式会社
1985-10-24
[28]
웹사이트
On-the-fly garbage collection: an exercise in cooperation
http://www.cs.utexas[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com