인텔 8088

Intel 8088
인텔 8088
KL Intel TD8088.jpg
은색 핀이 있는 세라믹 DIP의 D8088
일반 정보
시작됨1979
중단됨1998[1]
일반 제조업체
퍼포먼스
최대 CPU 클럭 속도5MHz ~ 16MHz
데이터 폭8비트
주소 폭20비트
건축과 분류
기술 노드3µm
명령 집합x86-16
물리적 사양
트랜지스터
  • 29,000
공동프로세서인텔 8087
패키지
소켓
제품, 모델, 모델
변종
역사
전임자인텔 8085
후계자8018680286 (둘 다 1982년 초에 도입)

인텔 8088("8y-88, iAPX 88"이라고도 함)[2][3][4] 마이크로프로세서인텔 8086의 변형이다.1979년 6월 1일 도입된 8088은 8086년형 16비트 버스 대신 8비트 외장 데이터 버스가 있다.[5][6][7][8]그러나 16비트 레지스터와 1메가바이트 주소 범위는 변경되지 않는다.실제로 인텔 문서에 따르면 8086과 8088은 동일한 실행 단위(EU)를 가지고 있으며, 버스 인터페이스 단위(BIU)만 다르다.원래IBM PC는 복제와 마찬가지로 8088을 기반으로 한다.

이력 및 설명

AMD 8088년 죽음

8088은 수많은 인텔의 프로세서와 마찬가지로 이스라엘 하이파에 있는 인텔의 실험실에서 설계되었다.[9]8088은 8비트 데이터 경로와 8비트 지원 및 주변 칩의 사용을 허용함으로써 경제 시스템을 목표로 삼았다. 복잡한 회로 기판은 출시 당시에도 여전히 상당히 번거롭고 비용이 많이 들었다.8088의 프리페치 큐는 8086의 6바이트에서 4바이트로 단축되었고 프리페치 알고리즘은 폭이 좁은 버스에 적응하도록 약간 수정되었다.[a]이러한 기본 8086 설계의 수정은 하이파에 있는 인텔의 새로운 설계 사무소와 실험실에 배정된 최초의 업무 중 하나였다.

5MHz 이상의 최대 클럭 주파수를 가진 8088의 변종에는 8088–2가 포함되어 있는데, 이는 인텔의 새로운 향상된 nMOS 프로세스인 HMOS를 사용하여 제작되었으며 최대 8MHz의 최대 주파수로 지정되었다. 이후 0 - 8MHz의 클럭 속도로 작동할 수 있는 완전 정적인 CHMOS 설계인 80C88이 뒤따랐다.다른 제조사들과 비슷하거나 조금 다른 여러 변종들도 있었다.예를 들어, NEC V20NEC가 설계하고 제조한 8088의 핀 호환성이 있고 (동일한 클럭 주파수에서) 약간 더 빠른 변종이었다.연속 NEC 8088 호환 프로세서는 최대 16MHz에서 실행될 것이다.1984년, 코모도어 인터내셔널은 회사의 주요한 새로운 방향을 알리는 것으로 여겨지는 움직임으로 면허를 받은 다이날로직 하이페리온 복제품에 사용할 8088을 제조하는 계약을 체결했다.[10]이용 가능한 CMOS 버전은 오키 일렉트로닉 인더스트리에 아웃소싱되었다.[11]발표 당시 8088의 정가는 미화 124.80달러였다.[12][13]플라스틱 패키지 버전은 1981년 7월 100달러당 14.10달러에 도입되었다.[14]인텔은 이 마이크로프로세서를 Fujitsu Limited에 공급했다.[15]

8086년과의 차이점

8088은 건축학적으로 8086과 매우 비슷하다.가장 큰 차이는 8086의 16줄 대신 8줄의 데이터 라인에 불과하다는 점이다.장치의 다른 모든 핀은 두 개의 예외를 제외하고 8086과 동일한 기능을 수행한다.첫째, 핀 34는 더 이상 BHE가 아니다(8086의 고차 바이트 선택이다. 8088은 8비트 데이터 버스에 고차 바이트가 없다).[16]: 5–97 대신 최대 모드 상태인 SSO를 출력한다. IO/M 및 DT/R 신호와 결합하면 버스 사이클을 디코딩할 수 있다(일반적으로 쓰기 작업이나 인터럽트가 진행 중일 때를 나타낸다).두 번째 변화는 반대로 감지되면 메모리 액세스 또는 입출력 액세스 여부를 알리는 핀이다.8088의 핀은 IO/M이다.8086 파트에서는 IO/M이다.역전 이유는 8088을 8085와 호환되게 하기 때문이다.[16]: 5–98

퍼포먼스

시계 주파수, 메모리 대기자 수, 특정 응용 프로그램의 특성에 따라 Intel 8088의 평균 성능은 약 0.33 ~ 100만 개의 명령어였다.[17]한편, 더mov reg,reg그리고ALU[b] reg,reg각각 2회 및 3회 사이클을 수행한 지침에서는 다음 사이의 절대 피크 성능을 산출했다.MHz당 ½ MIPS ½ MIPS, 즉 10 MHz에서 3–5 MIPS 범위 내에 있는 경우.

실행 단위(EU)와 8086 CPU의 버스의 속도는 균형을 잘 맞추었다. 일반적인 명령 혼합을 사용하면 8086은 프리페치 대기열에서 명령을 상당 시간 동안 실행할 수 있었다.8088년에는 버스를 8비트로 줄여서 심각한 병목 현상이 되었다.8086에 비해 8088년에 명령어 가져오기 속도가 50% 감소하여 일련의 빠른 명령이 4바이트 프리페치 대기열을 빠르게 소모할 수 있다.대기열이 비어 있을 때 명령을 완료하는 데 걸리는 시간은 가져오는 데 걸리는 시간만큼 걸린다.8086과 8088 둘 다 버스 사이클을 완료하는 데 4번의 클럭 사이클이 필요하다. 반면에 8086의 경우 이것은 2바이트를 전송하는 4개의 클럭을 의미하지만, 8088의 클럭은 1바이트당 4개의 클럭이다.따라서 예를 들어 EU가 두 번의 클럭 사이클만 실행하면 되는 2바이트 시프트 또는 회전 명령어는 프리페치 대기열에 없는 경우 실제로 8번의 클럭 사이클이 필요하다.그러한 빠른 명령의 순서는 큐가 배수되는 것만큼 빠르게 채워지는 것을 방지하며, 일반적으로 명령 바이트당 4개 미만의 클럭(등록기 피연산자와 메모리 피연산자에 대한 거의 모든 ALU 및 데이터 이동 지침 포함)에서 매우 많은 기본 명령이 실행되기 때문에 사실상 불가능하다.유용한 실제 프로그램을 실행하는 동안 8088년에 EU의 공회전 시간을 최소한 1/4로 피할 수 있으며, EU를 절반으로 공회전하는 것은 어렵지 않다.간단히 말해서, 8088은 버스 병목 현상(유일한 주요 차이) 때문에 일반적으로 같은 속도로 시계 처리된 8086보다 절반 정도 빨리 달린다.

느린 버스와 작은 프리페치 큐를 가진 8088 설계의 부작용은 코드 실행 속도가 명령 순서에 매우 좌우될 수 있다는 것이다.8088을 프로그래밍할 때 CPU 효율을 위해 가능한 한 항상 장시간 실행 지침서를 짧은 지침과 상호 연결하는 것이 중요하다.예를 들어, 문자열 작업을 반복하거나 3개 이상의 시프트를 수행하면 4바이트 프리페치 대기열이 완전히 채워지는 데 충분한 시간이 걸릴 것이다.짧은 명령어(즉, 총 몇 바이트의 명령어)를 이와 같이 느린 명령어 사이에 배치하면, 짧은 명령어들은 대기열 밖으로 최대 속도로 실행될 수 있다.반면에, 느린 지침이 연속적으로 뒤로, 그리고 그 후에 첫 번째 지침이 다시 실행되면, 버스 장치는 대기열이 이미 꽉 차서 어쩔 수 없이 유휴 상태가 될 것이고, 그 결과 나중에 더 많은 더 빠른 지침들이 피할 수 없었을지도 모르는 반입 지연을 겪게 될 것이다.단일 비트 위치의 이동과 회전과 같은 일부 지시사항은 말 그대로 실행 시간이 4배 이상 걸리므로 전체적인 효과는 2배 이상 느려질 수 있다.[c]만약 그러한 코드 세그먼트가 루프 본체라면, 실행 시간의 차이는 인간의 시간 척도에서 매우 두드러질 수 있다.

8088도 (8086)은 메모리에 접근하는 속도가 느리다.산술 및 논리 명령을 실행하는 데 사용되는 것과 동일한 ALU도 유효 주소 계산에 사용된다.오프셋 어드레스에 시프트 세그먼트 레지스터를 추가하기 위한 별도의 애드더가 있지만 오프셋 EA 자체는 항상 주 ALU에서 전적으로 계산된다. 나아가 EU와 BIU(버스 유닛)의 느슨한 결합은 장치들 간의 통신 오버헤드를 삽입하고, 4클록 기간 버스 전송 사이클은 특별히 효율적이지 않다.이를 6502 CPU의 2클럭 주기 버스 사이클과 80286의 3클럭 주기 버스 사이클과 대조하고 대부분의 전송에서 파이프를 2 사이클로 줄인다.일반적인 ALU 및 데이터 이동 작업을 포함하여 레지스터 또는 메모리에서 작동할 수 있는 대부분의 8088 지침은 메모리 피연산자의 경우 레지스터 피연산자의 경우보다 최소 4배 느리다.따라서 효율적인 8088(및 8086) 프로그램은 가능하면 메모리 피연산자의 반복적인 접근을 피하고, 피연산자를 메모리에서 레지스터로 로드하여 그곳에서 작업하고, 완성된 결과만 다시 저장한다.8088의 비교적 큰 일반 등록 세트가 동시대 사람들에 비해 이 전략을 돕는다.한 번에 필요한 모든 변수에 대한 레지스터가 충분하지 않을 경우 스택 PUSH 및 POP 명령이 가장 빠른 메모리 작업이기 때문에 레지스터를 스택에 밀어넣었다가 다시 터뜨려 복원하는 방식으로 레지스터를 저장하는 것이 메모리를 사용하는 가장 빠른 방법이다.80286 이상에서는 아마도 동일하지 않을 것이다; 그들은 전용 주소 ALU를 가지고 있고 8088과 8086보다 훨씬 빠르게 메모리 액세스를 수행한다.

마지막으로, 호출, 점프 및 인터럽트가 프리페치 대기열을 재설정하고, IP 레지스터를 로드하려면 EU와 BIU 간의 통신이 필요하기 때문에(IP 레지스터는 일반 레지스터가 있는 EU가 아니라 BIU에 있기 때문에), 이러한 운영은 비용이 많이 든다.모든 점프와 호출은 최소한 15번의 클럭 사이클을 필요로 한다.임의의 조건부 점프는 취하지 않을 경우 4번의 클럭 사이클이 필요하지만, 만일 취한다면 프리페치 대기열을 재설정하는 것 외에 추가로 16번의 사이클이 필요하므로, 조건부 점프는 특히 내부 루프에서 대부분의 시간이 걸리지 않도록 배치되어야 한다.같은 결과를 얻기 위해 한두 가지 지시를 건너뛰는 조건부 점프보다 논리 및 이동 연산의 순서가 빠른 경우도 있다.

8086과 8088의 인텔 데이터시트는 전용 곱셈과 나누기 명령어(MUL, IMUL, DIV, IDIV)를 광고했지만 각각 100–200 클럭 사이클의 순서로 매우 느리다.작은 상수에 의한 많은 간단한 배수는 전용 짧은 서브루틴을 사용하여 훨씬 더 빨리 수행될 수 있다.80286과 80386은 각각 이러한 명령의 실행 속도를 크게 증가시키고 명령을 분할한다.[d]

IBM PC에서 사용할 선택

원래의 IBM PC는 8088을 사용한 가장 영향력 있는 마이크로 컴퓨터다.클럭 주파수는 4.77MHz(4/3 NTSC 컬러버스트 주파수)이다.IBM의 엔지니어들과 다른 직원들 중 일부는 IBM 801 프로세서를 사용하기를 원했고, 일부는 새로운 Motorola 68000을 선호했으며,[e] 다른 일부는 MOS Technology 6502Zilog Z80과 같은 작고 단순한 마이크로프로세서를 주장하였다.그러나 IBM은 이미 자사 제품에 인텔 칩을 사용한 전력이 있고 8086 계열의 제조권도 취득했다.[f]

IBM은 8086년에 비해 8088을 선택했다. 왜냐하면 인텔은 전자에 더 좋은 가격을 제시했고 더 많은 유닛을 공급할 수 있었기 때문이다.[18]또 다른 요인은 8088은 8비트 데이터 베이스로 대부분의 nMOS 칩과 쉽게 접속할 수 있기 때문에 수정된 8085 디자인을 바탕으로 컴퓨터를 만들 수 있게 했다는 것이다.이것들은 성숙했고, 따라서 경제적이었습니다.여기에는 원래 8085년 전후의 지원 및 주변 기능을 목적으로 하는 IC와 이미 많은 엔지니어들이 잘 알고 있던 유사한 프로세서(Intel 전용이 아님)가 포함되어 있어 비용이 더욱 절감되었다.[g]

8088의 후손으로는 80188, 80186, 80286, 80386, 80486 등이 있으며, 그 이후의 소프트웨어 호환 프로세서는 오늘날 유행하고 있는 인텔 코어 프로세서를 포함한다.

갤러리

  1. ^ 샘플링 Q4 1985

주변 장치

참고 항목

메모들

  1. ^ 구체적으로, 가장 분명한 변화는 8088 버스 장치가 적어도 하나의 대기열 바이트가 비어 있을 경우 바이트를 미리 추출한다는 것이다; 8086 버스 장치는 6개의 대기열 바이트 중 적어도 두 바이트가 비어 있지 않으면 미리 추출하지 않기 때문에 한 번의 버스 사이클에서처럼 정렬된 전체 16비트 단어를 사전 추출할 수 있다.8비트 외부 데이터 버스를 가진 8088은 버스 사이클당 1바이트만 가져올 수 있기 때문에 전체 단어를 사전 추출하기 위해 기다리는 것은 아무런 이점도 없고 지연만 될 뿐, 다음 명령 바이트가 필요할 때 사전 추출 대기열에 이미 있을 가능성을 줄인다.
  2. ^ ALU는 ADD, ADC, SUB, SBC, CMP, AND, XOR, TEST 지침 중 하나를 의미한다.
  3. ^ 8088년, 두 번의 클럭 사이클로 실행할 수 있는 암시적 시프트 카운트가 1인 시프트 명령은 2바이트 길이여서 가져오는 데 8번의 클럭 사이클이 필요하다.
  4. ^ 이 섹션의 대부분의 기술 정보는 Intel Corporation에 의한 Intel iAPX 86,88 사용 설명서(Order Number: 210201-001)에서 소싱된다.
  5. ^ 나중에 IBM Instruments Laboratory Computer에 사용됨.
  6. ^ 인텔에게 버블 메모리 설계에 대한 권리를 주는 대가로.하지만 비용 절감이 가능했던 일본 제조업체들의 치열한 경쟁으로 인텔은 곧 이 시장을 떠나 마이크로프로세서로 포커스를 바꿨다.
  7. ^ 68000개 부품은 모토로라 6800 부품을 어느 정도 사용할 수 있지만 당시에는 널리 보급되지 않았다.

참조

  1. ^ CPU 기록 CPU 박물관 CPU의 수명 주기
  2. ^ "iAPX 86, iAPX 88 user's manual" (PDF).
  3. ^ "iAPX 86, 88, 186 Microprocessors Part I, Workshop Notebook" (PDF). June 1984.
  4. ^ "iAPX 286 Programmers' Reference Manual" (PDF). 1983. page 1-1.
  5. ^ "Microprocessor Quick Reference Guide". Intel. Intel. Retrieved 1 June 2019.
  6. ^ "Microprocessor Quick Reference Guide". Intel. Intel. Retrieved 1 June 2019.
  7. ^ Singh, Renu (2006). Microprocessor Interfacing and Applications. New Age International. pp. 2–27. ISBN 81-224-1400-1. Retrieved 1 June 2019.
  8. ^ Govindarajalu, B. (2002). IBM PC and Clones: Hardware, Troubleshooting and Maintenance (2nd ed.). McGraw-Hill. p. 248. ISBN 978-0-07-048286-9. Retrieved 1 June 2019.
  9. ^ 2013년 10월 10일 조지 F. 이스라엘 시험, 조우책.길더, 100페이지.
  10. ^ "Commodore Adds Hyperion, Chips". 17 April – 1 May 1984.
  11. ^ Intel Corporation, "NewsBit:여러 제품의 CMOS 버전에 대한 Intel 라이센스 Oki", Solutions, 1984년 7월/8월, 1페이지.
  12. ^ "Intel Brings Out 8-Bit MPU featuring 16-Bit Architecture". Computerworld. Vol. XIII, no. 20. 14 May 1979. p. 71. Retrieved 21 November 2011.
  13. ^ Intel Corporation, "마이크로컴퓨터 구성요소:인텔, 8088/8086 CPU 제품군을 위한 I/O 프로세서인 8089 IOP 소개, 1979년 5월/6월, 페이지 9의 일련의 새로운 서브시스템 구성요소" 중 첫 번째.
  14. ^ Intel Corporation, "뉴스 비트", 솔루션, 1981년 7월/8월, 1페이지
  15. ^ Intel Corporation, "NewsBits:두 번째 소스 뉴스", 솔루션, 1985년 1월/2월, 1페이지
  16. ^ a b 오스본 16비트 프로세서 핸드북(아담 오스본 & 게리 케인) ISBN 0-931988-43-8
  17. ^ "Olympus MIC-D: Integrated Circuit Gallery - Intel 8088 Microprocessor". Archived from the original on May 19, 2009.
  18. ^ Freiberger, Paul (1982-08-23). "Bill Gates, Microsoft and the IBM Personal Computer". InfoWorld. Vol. 4, no. 33. p. 22. Retrieved 29 January 2015.
  19. ^ Ashborn, Jim; "A 고급 포장: A Little Goes A Long Way", Intel Corporation, Solutions, 1986년 1월/2월, 페이지 2
  20. ^ 8086 산업 환경에서 사용 가능한 Intel Preview 특별 이슈: Intel Corporation, Intel Corporation, 1980년 5월/6월, 29페이지.

외부 링크