tgool
Tgool
tgool
전체 방문자
오늘
어제
  • 분류 전체보기
    • Data Science
      • AI
      • Data Mining
      • ML(Machine Learning)
    • Computer Science
      • 자료구조
      • 알고리즘
      • 시스템 프로그래밍
      • 운영체제
      • 컴퓨터 구조
      • 컴퓨터 네트워크
      • 데이터 베이스
      • 파이썬
      • 자바
      • 아두이노
    • Math
      • 통계학
      • 확률론
      • 선형대수학
      • 수리통계학
      • 회귀분석
    • TOFEL
    • Git
    • Plan
    • Book
    • Working out
      • 영양과 생활
      • 운동 정보
      • 운동 기록

인기 글

최근 글

최근 댓글

hELLO · Designed By 정상우.
tgool

Tgool

Computer Science/컴퓨터 구조

[CSAPP] 3.1 A Historical Perspective(역사적 관점)

2023. 1. 21. 01:05

3.1 A Historical Perspective(역사적 관점)

💡 x86 프로세서의 발전

최초의 single-chip 16비트 마이크로프로세서로 출발하였지만, 초기에는 반도체 기술의 부족으로 여러 가지 면에서 타협을 하다가 점점 성장하게 됨

  • 프로세서 구현에 소요된 트랜지스터의 수

“K” → 1,000 (10^3)

“M” → 1,000,000 (10^6)

“G” → 1,000,000,000 (10^9).

  • 8086 (1978, 29 K transistors)

최초의 single-chip 16비트 마이크로프로세서. 8088은 8086과 거의 동일하지만 원가 절감을 위해 external bus가 8비트로 제한되었고, IBM 개인 컴퓨터에 사용 됨. 초기 모델은 32Kb의 메모리를 사용했고, 두 개의 floppy drive를 지님.

 

— 나중에는 64KB의 메모리를 사용함. 16bit로 접근 가능한 2^16bytes인 64KB를 세그멘테이션 기법으로 접근했다. (이후에는 사용되지 않는 기법)

이 때, 주소 공간은 655,360 byte로 제한됨.

 

— 20비트의 address bus를 지녔으므로 2^20 인 1,048,576 bytes(1Mb)의 물리 메모리가 addressable하며, 운영체제가 이 중 393,216 bytes를 사용했기 때문이다. (메모리 한 칸이 1byte)

1980년에는, 8087 부동소수점 보조 프로세서(45 K transistors)를 개발하여 8086이나 8088 모델과 함께 사용했다. 이를 x87이라 불렀다.

 

— 일반인들은 8087이 필요가 없던 경우가 대부분이라, 비용 절감을 위해 분리했다. 현재는 SSE 혹은 AVX 명령어로 대체되었다.

  • 80286 (1982, 134 K transistors)

CPU에 메모리 관리 장치(Memory Management Unit, MMU)를 추가했다.

  • i386 (1985, 275 K transistors)

32비트로 확장, 유닉스 운영체제를 온전히 지원할 수 있게 됨

  • i486 (1989, 1.2 M transistors)

개선된 성능, 부동소수점 유닛 내장, 명령어 집합은 거의 바꾸지 않음

  • Pentium (1993, 3.1 M transistors)

P5 아키텍쳐 기반, 개선된 성능, 명령어 집합은 일부분만 수정

  • PentiumPro (1995, 5.5 M transistors)

P6 아키텍쳐 도입

  • Pentium/MMX (1997, 4.5 M transistors)
  • SIMD연산 추가(병렬 처리)
  • https://m.blog.naver.com/fs0608/221650925743

MMX → SIMD의 레지스터 폭 64비트

  • Pentium II (1997, 7 M transistors)

P6 아키텍쳐 기반

  • Pentium III (1999, 8.2 M transistors)

SSE 추가(MMX→SSE)

SSE → SIMD의 레지스터 폭 128비트

4배 이상의 성능확장 (윈도우7로 웹서핑 가능!)

  • Pentium 4 (2000, 42 M transistors)

SSE2로 확장

  • Pentium 4E (2004, 125 M transistors)

하이퍼스레딩 기법 추가, AMD의 x86-64 개발

  • Core 2 (2006, 291 M transistors)

최초의 멀티코어 프로세서, 하이퍼스레딩은 지원하지 않음

  • Core i7, Nehalem (2008, 781 M transistors)

멀티코어와 하이퍼스레딩을 동시 지원, 초기 버전은 코어당 2개의 프로그램 / 각 칩당 4개의 코어까지 지원

  • Core i7, Sandy Bridge (2011, 1.17 G transistors)

AVX 추가 (SSE→AVX) AVX → 레지스터 폭 256비트

  • Core i7, Haswell (2013, 1.4 G transistors)

AVX2로 확장

  • 트랜지스터의 수가 26개월 마다 약 2배씩 증가! </aside>

'Computer Science > 컴퓨터 구조' 카테고리의 다른 글

[CSAPP] 3.3 Data Formats(데이터의 형식)  (1) 2023.01.21
[CSAPP] 3.2 Program Encoding(프로그램의 인코딩)  (0) 2023.01.21
[CSAPP] 2.4 Floating Point(부동소수점)  (0) 2023.01.19
[CSAPP] 2.3 Integer Arithmetic(정수 연산)  (0) 2023.01.19
[CSAPP] 2.2 Integer Representations(정수의 표시)  (0) 2023.01.19
    'Computer Science/컴퓨터 구조' 카테고리의 다른 글
    • [CSAPP] 3.3 Data Formats(데이터의 형식)
    • [CSAPP] 3.2 Program Encoding(프로그램의 인코딩)
    • [CSAPP] 2.4 Floating Point(부동소수점)
    • [CSAPP] 2.3 Integer Arithmetic(정수 연산)
    tgool
    tgool

    티스토리툴바