인텔 8088 마이크로프로세서: 역사와 성능

Find AI Tools in second

Find AI Tools
No difficulty
No complicated process
Find ai tools

인텔 8088 마이크로프로세서: 역사와 성능

목차

  1. 개요
  2. 역사와 설명
    • 2.1 8088의 설계
    • 2.2 8088의 변형 버전
    • 2.3 경기 세기의 예외
  3. 성능
  4. 8088와 8086의 차이점
  5. IBM PC에서의 사용
  6. 8088을 사용한 컴퓨터 사진들
  7. 주변 기기
  8. 참고 자료
  9. 요약
  10. FAQ

개요

인텔 8088 마이크로프로세서는 인텔 8086의 변형 버전으로, 1979년 7월 1일에 출시되었습니다. 8088은 8086의 16비트 데이터 버스 대신 8비트 외부 데이터 버스를 사용했습니다. 그러나 16비트 레지스터와 1MB 주소 범위는 그대로 유지되었습니다. 사실, 인텔 문서에 따르면 8086과 8088은 실행 유닛(EU)이 동일하며, 버스 인터페이스 유닛(BIU)만 다릅니다. 최초의 IBM PC는 8088을 기반으로 제작되었습니다.

역사와 설명

2.1 8088의 설계

8088은 인텔의 하이파 연구소에서 설계되었으며, 많은 인텔 프로세서들이 이곳에서 개발되었습니다. 8088은 경제적인 시스템을 타겟으로 하기 위해 8비트 데이터 패스와 8비트 지원 및 주변 칩의 사용을 허용하여, 복잡한 회로 기판을 사용하지 않았습니다. 8088의 프리페치 큐는 8086보다 4바이트로 줄어들었으며, 프리페치 알고리즘도 좁은 버스에 맞게 약간 수정되었습니다. 이러한 8086 기본 설계의 수정은 하이파의 인텔 신설 설계 사무실과 연구소에게 할당된 첫 번째 작업 중 하나였습니다.

2.2 8088의 변형 버전

5MHz 이상의 최대 클록 주파수를 갖는 8088의 변형 버전에는 Intel의 새로운 개량된 HMOS 공정을 사용하여 제작된 8088-2가 있었습니다. 이 버전은 최대 주파수 8MHz로 지정되었습니다. 그 후에는 0~8MHz의 클록 속도로 작동할 수 있는 완전 정적 CHMOS 디자인인 80C88 등 다양한 다른 변형 버전이 출시되었습니다. 예를 들어 NEC V20은 핀 호환성이 있으며 (동일한 클록 주파수에서 약간 더 빠름), NEC에서 설계하고 제작한 8088의 변형 버전이었습니다. 이어지는 NEC 8088 호환 프로세서는 최대 16MHz에서 작동했습니다. 1984년, Commodore International은 Dynalogic Hyperion 클론을 제조하기 위해 8088 제조 라이선스를 계약서에 서명하는 등 회사의 새로운 주향을 상징하는 중요한 수순으로 간주되었습니다. 발표 당시 8088의 목록 가격은 124.80달러였습니다.

2.3 경기 세기의 예외

8088과 8086은 구조적으로 매우 유사합니다. 주요 차이점은 8088에는 8086의 16개 데이터 라인 대신 8개의 데이터 라인만 있다는 것입니다. 다른 핀들은 8086과 동일한 기능을 수행하며, 두 가지 예외가 있습니다. 첫째, 핀 34는 더 이상 BHE (하이오더 바이트 선택 핀)가 아닙니다. (8088에는 8비트 데이터 버스를 사용하므로 하이오더 바이트가 없습니다.) 대신에 최대 모드 상태인 SSO를 출력합니다. IO/M 및 DT/R 신호와 결합되면 버스 사이클을 디코딩할 수 있습니다. (일반적으로 쓰기 작업 또는 인터럽트가 진행 중인지를 나타냅니다.) 두 번째 변경 사항은 메모리 접근 또는 입출력 접근이 이루어지고 있는지를 신호하는 핀에 있었습니다. 8088에서 이 핀은 IO/M입니다. 반면, 8086에서는 IO/M임을 나타내는 핀입니다. 이 반전의 이유는 8088을 8085와 호환되도록 만들기 위한 것입니다.

성능

클록 주파수, 메모리 대기 상태의 수, 특정 응용 프로그램의 특성에 따라 Intel 8088의 평균 성능은 대략 0.33에서 100만 명령어 수행/초 사이에 변동합니다. 한편, 두 개의 레지스터 간 이동 및 논리 연산 레지스터 간 ALU (산술 논리 장치) 명령어는 각각 두 번과 세 번의 사이클을 취하여 절대적인 최고 성능인 ​1⁄3에서 ​1⁄2까지의 MIPS/MHz 범위 내에서 작동했습니다. 즉, 10MHz에서 약 3-5 MIPS의 성능을 발휘했습니다.

8086 CPU의 실행 유닛(EU)과 버스 속도는 잘 균형이 맞춰져 있었습니다. 일반적인 명령어 혼합으로 보면, 8086은 프리페치 큐에서 명령어를 실행하는 시간이 상당 부분 절약되었습니다. 그러나 8088의 8비트 버스로 인해 병목 현상이 발생했습니다. 명령어 가져오기 속도가 8086에 비해 50% 감소했기 때문에, 빠른 명령어 시퀀스는 프리페치 큐를 빠르게 소진시킬 수 있었습니다. 큐가 비어 있을 때, 명령어는 가져오기가 완료될 때까지 수행하는 데 필요한 시간이 걸립니다. 8086과 8088은 버스 사이클을 완료하는 데 4개의 클록 사이클이 소요됩니다. 8086에서는 2바이트를 전송하기 위해 4개의 클록이 소요되지만, 8088에서는 1바이트마다 4개의 클록이 소요됩니다. 따라서 예를 들어, 실행 유닛에게는 2개의 클록 사이클이 소요되는 2바이트 시프트 또는 회전 명령어는, 프리페치 큐에 들어있지 않다면 8개의 클록 사이클이 소요됩니다. 이러한 빠른 명령어 시퀀스는 큐가 소진되는 속도보다 충분히 빨리 채워지지 못하므로, 프리페치 큐가 꽉 차 있을 때까지 다음 명령어 가져오기에 대한 대기 시간이 발생합니다. 이러한 경우에서 비슷한 빠른 명령어들이 연속해서 명령어 큐를 채우는 것을 방지한다면, 나중에 메모리에서 가져오는 지연이 피할 수 있었을 것입니다. 싱글 비트 위치 이동 및 회전과 같은 명령어는 가져오기 시간에 비해 실행 시간 4배가 걸리므로, 거의 모든 ALU 및 데이터 이동 명령어가 레지스터 피연산자에 대해서는 4개 클록 사이클 미만으로 실행되기 때문에, 실제로 8088에서 EU를 유효하게 활용하면서 ¼의 시간 동안은 EU를 대기 상태로 두는 것이 거의 불가능하며, 절반 이상의 시간 동안 EU를 대기 상태로 두는 것이 어렵지 않습니다. 다시 말해, 8088은 주요한 차이점인 버스 병목으로 인해 동일 주파수로 클록된 8086에 비해 보통 절반 정도의 속도로 작동합니다.

8088의 느린 버스와 작은 프리페치 큐로 인해 코드 실행 속도는 명령어 순서에 매우 의존할 수 있습니다. CPU 효율성을 위해 8088로 프로그래밍할 때는, 가능한 경우 실행 시간이 긴 명령어와 짧은 명령어를 교대로 배치하는 것이 중요합니다. 예를 들어, 반복적인 문자열 작업이나 3회 이상의 시프트 작업은 4바이트의 프리페치 큐를 완전히 채울 만큼 충분히 오래 걸립니다. 만약 이러한 느린 명령어들 사이에 (총 몇 바이트에 불과한) 짧은 명령어들을 배치한다면, 짧은 명령어들은 큐에서 꽉 찬 속도로 실행될 수 있습니다. 하지만 느린 명령어들이 연속적으로 실행되면, 첫 번째 명령어 이후에 버스 유닛이 대기 상태에 들어가야 하므로 큐가 이미 꽉 차 있을 것입니다. 이로 인해 나중에 기술된 더 빠른 명령어들은 피할 수 있었던 가져오기 지연을 겪게됩니다. 이러한 경우 모든 기본 명령어의 대부분이 4개 이하의 클록/바이트로 실행된다는 점을 고려하면, 실제로 8088에서 유용한 실제 프로그램을 실행하는 동안 EU를 적어도 ¼의 시간 동안 대기 상태로 두는 것이 거의 불가능하며, 시간의 절반은 EU가 대기 상태로 빠질 가능성이 있습니다. 요약하자면, 8088은 버스 병목 현상 (주요한 차이점) 때문에 동일한 속도로 클록된 8086에 비해 보통 절반 정도의 속도로 작동하게 됩니다.

또한, 8088은 (8086과 마찬가지로) 메모리에 액세스하는 데 속도가 느립니다. 산술 논리 명령어를 실행하는 데 사용되는 ALU는 유효한 주소를 계산하는 데도 사용됩니다. 이때, 이동된 세그먼트 레지스터를 오프셋 주소에 더하는 별도의 덧셈기가 있지만, 오프셋 EA 자체는 주로 메인 ALU에서 완전히 계산됩니다. 더욱이, EU와 BIU(버스 유닛)의 느슨한 결합은 유닛 간의 통신 오버헤드를 발생시키며, 4클록 기간 버스 전달 주기는 특히 효율적이지 않습니다. 이와 대조적으로 6502 CPU의 2클록 기간 버스 주기와 80286의 3클록 기간 버스 주기는 대부분의 전송에게 2클록 주기까지 파이프라이닝이 수행됩니다. 레지스터 또는 메모리에서 작동할 수 있는 8088 (및 8086)의 효율적인 프로그램은 가능한 경우 메모리 피연산자의 반복적인 액세스를 피합니다. 즉, 메모리 피연산자를 메모리에서 레지스터로 로드하여 레지스터에서 처리하고 완료된 결과만 다시 저장합니다. 8088의 비교적 큰 범용 레지스터 세트는 이 전략을 지원합니다. 한 번에 필요한 모든 변수에 대한 충분한 레지스터가 없을 경우, 레지스터를 스택에 푸 시키고 다시 복원하기 위해 스택을 사용하는 것이 레지스터를 보강하는 가장 빠른 방법입니다. 스택 PUSH 및 POP 명령은 가장 빠른 메모리 동작이기 때문입니다. 그러나 80286 이후의 버전에서는 아마도 그렇지 않을 것입니다. 이들은 전용 주소 ALU를 갖고 있으며, 8088과 8086보다 훨씬 빠른 메모리 접근을 수행합니다.

마지막으로, 호출, 점프, 인터럽트 등은 프리페치 큐를 재설정해야 하고, IP 레지스터를 로딩하기 위해서는 EU와 BIU 사이에 통신이 필요하기 때문에 비용이 많이 발생합니다. 모든 점프와 호출은 최소한 15개의 클록 사이클이 소요됩니다. 조건부 점프는 거짓인 경우 4개의 클록 사이클이, 참인 경우는 프리페치 큐를 재설정하기 위해 16개의 클록 사이클이 필요합니다. 따라서 조건부 점프는 특히 반복문 내에서 대부분의 경우 거짓으로 설정되도록 배열되어야 합니다. 일부 경우에는 조건부 점프를 피하는 것보다 논리 및 이동 연산의 시퀀스가 동일한 결과를 얻기 위해 지나치게 조건부 점프를 건너뛰는 것보다 빠를 수 있습니다.

인텔 8086 및 8088의 데이터시트에서는 전용 곱셈 및 나눗셈 명령어(MUL, IMUL, DIV, IDIV)을 광고했지만, 이들은 매우 느리며 대략 100~200 클록 사이클이 소요되었습니다. 작은 상수로 인한 간단한 곱셈은 전용 짧은 서브루틴을 사용하면 훨씬 빠르게 처리할 수 있었습니다. 80286과 80386은 각각 이러한 곱셈 및 나눗셈 명령어의 실행 속도를 크게 향상시켰습니다.

IBM PC에서의 사용

원래 기종인 IBM PC는 8088을 사용한 가장 영향력있는 마이크로컴퓨터였습니다. 이 컴퓨터는 4.77MHz (NTSC 컬러 버스트 주파수의 4/3)의 클록 주파수를 사용했습니다. IBM의 몇몇 엔지니어와 직원들은 IBM 801 프로세서, 뉴 모톨라 68000, 이전 개인 컴퓨터에서 사용된 모스 테크놀로지 6502 또는 자일로그 Z80과 같은 작고 간단한 마이크로프로세서를 사용하길 원했습니다. 그러나 IBM은 이미 기존 제품에서 인텔 칩을 사용한 경험이 있었고, 8086 패밀리의 제조권도 얻었습니다. IBM은 8086보다 좋은 가격과 더 많은 유닛 공급을 제공하는 인텔에게 저렴한 가격으로 8088을 선택했습니다. 또 다른 요소는 8088이 컴퓨터를 수정된 8085 디자인을 기반으로 할 수 있도록 허용했습니다. 8088은 8비트 데이터 버스를 가진 대부분의 nMOS 칩과 쉽게 인터페이스 할 수 있었기 때문입니다. 즉, 기존의 선호되어 알려진 IC들, 그 중에서도 8085와 유사한 프로세서 주변 기능 지원용으로 원래 생산되었던 IC들 (주로 인텔의 것은 아니지만)을 사용하여 비용을 더욱 절감할 수 있었습니다. 8088의 후손에는 오늘날까지 사용되는 80188, 80186, 80286, 80386, 80486 및 호환 프로세서들이 있습니다.

8088을 사용한 컴퓨터 사진들

IBM PC Commodore International's Dynalogic Hyperion clone

주변 기기

  • Intel 8282/8283: 8비트 래치
  • Intel 8284: 클록 생성기
  • Intel 8286/8287: 양방향 8비트 드라이버
  • Intel 8288: 버스 컨트롤러
  • Intel 8289: 버스 탐정
  • Intel 8087: 수치 처리 장치

참고 자료

요약

이 글에서는 인텔 8088 마이크로프로세서에 대해 다뤘습니다. 8088은 8086의 변형 버전으로, 경제적인 시스템을 위해 설계되었습니다. 성능 면에서는 8088이 8086보다 느리며, 8비트 데이터 버스로 인해 버스 병목이 발생할 수 있습니다. IBM PC는 8088을 사용하여 개발되었습니다. 주변 기기와 함께 사용되어 전체 시스템을 구성하였습니다. 다양한 변형 버전과 사용 사례가 있었으며, 8088을 사용한 컴퓨터의 사진도 확인할 수 있습니다.

FAQ

Q: 8088과 8086의 차이점은 무엇인가요? A: 8088과 8086의 주요 차이점은 데이터 라인의 개수입니다. 8088은 8개의 데이터 라인을 갖고 있으며, 8086은 16개의 데이터 라인을 갖고 있습니다.

Q: 8088을 사용한 컴퓨터의 성능은 어떠한가요? A: 8088의 성능은 클록 주파수, 메모리 대기 상태의 수, 응용 프로그램의 특성에 따라 다양합니다. 평균적으로 약 0.33에서 100만 명령어 수행/초의 성능을 보여줍니다.

Q: 8088은 어떻게 IBM PC의 발전에 기여했나요? A: 8088은 원래 기종인 IBM PC에서 사용된 가장 영향력 있는 마이크로프로세서입니다. IBM은 인텔 8088을 선택함으로써 더 낮은 가격과 더 많은 공급을 획득할 수 있었습니다.

Q: 8088의 주변 기기는 어떤 것들이 있나요? A: 8088과 함께 사용되는 주변 기기로는 8비트 래치, 클록 생성기, 양방향 8비트 드라이버, 버스 컨트롤러, 버스 탐정, 수치 처리 장치 등이 있습니다.

Most people like

Are you spending too much time looking for ai tools?
App rating
4.9
AI Tools
100k+
Trusted Users
5000+
WHY YOU SHOULD CHOOSE TOOLIFY

TOOLIFY is the best ai tool source.