x86 프로세서 의 구조 - 1화
이번 시간에는 어제 언급했던 x86에 대한 공부를 포스팅을 통해서 정리하는 시간을 가지도록 하겠습니다.
아무쪼록 틀린부분이 있다면 지적해 주시면 감사합니다.
마이크로프로세서란?
컴퓨터의 산술논리연산기,레지스터,프로그램 카운터,명령디코더, 제어회로 등의 연산장치와 제어장치를 1개의 작은 실리콘 칩에 모아놓은 처리장치를 말합니다. 주기억장치에 저장되어 있는 명령을 해석하고 실행하는 기능을 합니다.
x86 Architectrue
X86 또는 80X86은 인텔이 개발한 마이크로프로세서 계열을 부르는 말이자, 이들과 호환되는사 사용가능한
명령 집합 아키텍쳐들을 통칭 하는 말입니다. X86아키텍쳐는 데스크톱 컴퓨터 시장에서 매우 널리 쓰이며,
PowerPC 같이 좀 더 근대적인 아키텍처를 사용한 프로세서들이 X86과 경쟁 했으나 그다지 많은 시장
점유율을 확보하지는 못했습니다.
X86또는 80x86 이라는 이름은 여기에 속하는 초기의 프로세서들 이름이 모두 80으로 시작해서 86으로 끝났기
때문에 붙여졌습니다.
여기에는 9096,80186,80286,386,486이 포함되며, 숫자로 상표를 등록할 수 없었기 떄문에 그 뒤로는 펜티엄과
같은 별도의 이름을 사용하게 되었습니다.
그러나, 586,686과 같은 이름은 아직까지도 사용되며, 전체 아키텍처를 나타내는 말에도 그 흔적이 남아 있습니다.
x86아키텍처를 사용하는 최초의 프로세서는 1978년에 발표된 인텔 8086으로 , 이전 프로세서인 인텔 8080으로
만든 프로그램을 기계적으로 번역하며 동작 하도록 설계 되었습니다.
인텔 8086은 3년후에 IBM PC의 표준프로세서로 채택 되었습니다. IBM PC는 그후로 계속 성장하여 개인용
컴퓨터 업계의 표준이 되었으며, 그에 따라 X86 아키텍처는 매우 성공적인 명령 집합 아키텍쳐가 되었습니다.
사이릭스,일본 전기 주식회사(NEC), IBM, 트랜스메타 등의 회사들이 x86 아키텍처를 사용하는 프로세서를
생산했으며, 그중 AMD의 애슬론 계열 프로세서들은 펜티엄에 미치지는 못하지만 상당한 시장 점유율을 차지하고 있습니다. X86아키텍처는 가변 길이 명령을 쓰는 CISC 설계를 채용했으며, 하위 호환성에 중점을 두고
있습니다.
X86아키텍쳐는 다른 아키텍처와 같이 워드 경계에 맞춰서 메모리를 읽는 것이 효율적이긴 하지만,
워드 경계에 걸치는 메모리도 한 번에 접근할 수 있습니다.
워드들은 최하위 바이트부터 최상위 바이트까지 순서대로(리틀엔디안) 저장 됩니다.
X86프로세서들은 명령들을 내부적으로 더 작은 단위로 쪼개서 RISC와 비슷한 내부 아키텍처에서 수행
합니다.
x86 프로세서 와 프로세서 의 정의
* X86 프로세서
: Intel사의 프로세서인 80X86 및 Pentium 계열 프로세서의 일반적 이름
- 16 비트 architecture: IA - 16
- 32 비트 architecture: IA - 32
- 64 비트 architecture :
IA - 64 (Itanium 계열): 하위 호환성 없음
Intel64 (AMD 의 X86-64 명령어 지원) : 하위 호환성
p.s : AMD 사에서도 X86 호환 프로세서를 제조 합니다.
* 프로세서란? 명령어를 실행하고 데이터를 처리하는 장치를 말합니다.
(ex: CISC 계열: 80X86, 680x0
RISC 계열: Sparc, Alpha, PowerPC, ARM 등)
* CISC (Complex Instruction Set Computer) 란?
마이크로프로그래밍을 통해 사용자가 작성하는 고급언어에 각각 하나씩 기계어를 대응시킨
회로로 구성된, 중앙처리장치의 한 종류 입니다.
* RISC (Reduced Instruction Set Compute) 란?
CPU (중앙처리장치) 안의 명령어를 최소로 줄여 단순하게 만든 프로세서
X86 프로세서의 역사
이름 |
특징 |
8086,8088 |
(1978) 16 bit registe, 최대 1MB 메모리,real mode 8087 math coprocessor 별도 사용 |
80286 |
(1982) 16 bit regster, 최대 16mb 메모리, protected mode 추가 - 80287 math coprocessor 별도 사용 |
80386 |
(1985) 32 bit register, 최대 4GB 메모리, 페이징 및 가상 8086 모드 기능을 가진 protected mode - 80387 math coprocessor 별도 사용 |
80486 |
(1989) + cache memory , math coprocessor 내장 |
Pentium Pentium Pro Pentium MMX |
(1993) + 64 bit data bus, data cache 와 instruction cache (1995) Pentium + 36-bit address(최대 64GB), 내부구조 개선, L2 cache (1996) Pentium + MMX instruction |
Pentium 2 AMD K6 | (1997) + MMX instructions 추가, 64GM 메모리, |
Pentium 3 | (1999) + SSE instructions 추가, 내부구조 개선
|
Pentium 4 Athlon(k7) | (2000) + SSE2 instructions, Hyperthreading, NetBurst 구조 (1999) + MMX, 3DNow, SSE
|
Athlon64(k8) Intel Core2 | (2003) + x86-64 (64-bit 연산) instructions (2006) + x86-64 (64 bit 정수 연산), SSE3, SSE4 |
Phenom(k10) Core i3 / 5 / 7 Atom | (2007) + SSE4a (2008) + SSE4a , 구조개선, on-die L3 cache (2008) + for very low power, on-die GPU |
마이크로컴퓨터의 기본구조
ALU : 산술논리연산
제어장치(CU) : 실행순서 제어
클럭 : 구성요소들의 동작 동기화
CPU + MEMORY + I/O + bus
클럭 (Clock)
- CPU와 Bus 동작은 클럭에 동기되어 동작을 합니다.
- 1 클럭 사이클 동안 간단한 동작을 수행 합니다.
- 기계어 명령어 수행에 적어도 1 클럭 사이클이 필요 합니다.
- 복잡한 명령어는 많은 클럭 사이클이 필요 할 수 있습니다.
- 메모리 접근 시에 느린 메모리 속도 떄문에 대기 상태(wait state) 사이클들이 존재 할 수 있습니다.
[ 메모리 읽기 상태와 대기상태 ]