반응형
"혼자 공부하는 컴퓨터구조와 운영체제" 책을 정독 후 스스로 정리한 지식들을 공유하고자 글을 쓴다.
아래는 북링크이다.
[한빛미디어] 혼자 공부하는 컴퓨터 구조+운영체제 (hanbit.co.kr)
[한빛미디어] 혼자 공부하는 컴퓨터 구조+운영체제
좋은 개발자는 컴퓨터를 분석의 대상으로 바라볼 뿐, 두려워하지 않는다!‘전공서가 너무 어려워서 쉽게 배우고 싶을 때’, ‘개발자가 되고 싶은데 뭐부터 봐야 하는지 모를 때’ ‘기술 면접
hongong.hanbit.co.kr
명령어 집합 구조 ISA
- 프로세서가 이해하는 언어이자 프로그래머와 프로세서가 직접적으로 소통할 수 있는 언어이다.
- 프로세서가 이해하는 명령어 하나를 Instruction이라고 하고, 고급 언어는 컴파일러나 인터프리터를 거쳐 프로세서가 이해할 수 있는 원시적인 Instruction의 흐름으로 바뀐다.
- 기본적인 사칙연산과 논리연산
- 메모리에 읽고 (load) 쓰는 (store) 명령
- 프로그램의 실행 흐름을 제어하는 분기 및 호출 명령 (if/goto, call/return)
- 하나의 명령어에는 이 명령어의 종류와 피연산자 등 여러 가지 내용이 기술된다.
- 정수 형태로 전달될 때, 이진수 값으로 바꾸는 것을 인코딩, 그 반대를 디코딩이라 한다.
RISC와 CISC 구조
- x86
- x86 또는 80x86은 인텔이 개발한 마이크로프로세서 계열을 부르는 말이자, 이들과 호환되는 프로세서들에서 사용한 명령어 집합 구조들을 통칭하는 말이다.
- x86 명령어 구조
- x86 ISA는 1986년에 출시된 인텔 80386의 명령어 집합 구조로 정확한 명칭은 IA-32이다.
- AMD가 제안한 x86의 64비트 확장(AMD64, x86-64)도 이제는 사실상 표준
- CISC의 주요 특징
- 명령어 길이가 주로 가변적, 여러 복잡한 형태의 주소 모드의 지원
- 범용 레지스터의 개수가 비교적 적음.
- RISC 등장
- 태초에 ISA는 CISC 형태를 띠었으나 실제 사용되는 명령어 종류가 그렇게 많지 않음을 발견
- 컴파일러가 CISC 명령어 집합이 지원하는 모든 명령어와 주소 모드를 사용안하고 일부만 주로 사용
- 13비트 정도면 충분한 상수들을 표현
- 자주 쓰이지 않는 명령어 종류도 줄이고 상수를 표현하는데 32비트를 모두 쓸 필요도 없다는 결론에 도달
- 프로세서 구조의 단순함과 고속화를 위해 “명령어 길이를 4바이트로 제한”해도 문제없을 듯
- 명령어 크기를 고정하고 그 갯수를 대폭 줄인 RISC 형식의 명령어 구조 탄생
- ARM은 대표적인 RISC 프로세서
- 대신 소프트웨어인 컴파일러가 일을 더 하게 된다.
- x86과 같은 CISC는 옵코드의 위치와 길이조차 가변이어서 분석 작업이 훨씬 복잡하고, 이는 필연적으로 하드웨어 회로의 복잡합으로 이어진다.
- RISC와 CISC의 가장 큰 차이
- CISC는 피연산자로 메모리 주소가 바로 올 수 있지만, RISC는 레지스터만 올 수 있다.
- 대표적으로 RISC의 범용 목적 레지스터 개수는 CISC보다 많다.
- RISC와 CISC는 이제 비교 할 이유가 없다.
- 펜티엄 프로부터 x86 프로세서는 CISC 명령어를 단순한 RISC처럼 생긴 내부 마이크로 명령어, 또는 마이크로 옵(uop)로 쪼개서 처리한다.
- 이는 실제 프로세서 내부로 들어가면 마치 ARM(RISC) 처럼 처리한다는 것!
- 하지만 속도는 여전히 RISC가 빠름.
- CISC는 컴파일러에서 여전히 8개 혹은 16개의 범용 레지스터만 있는 것으로 간주하고 코드를 짜야 하기 때문.
- 레지스터 부족 문제를 해결하기 위해 x86 코드는 많은 수의 메모리 접근 명령어가 생성된다.
- 임시 계산 결과 값을 담을 레지스터가 부족하므로 메모리에 잠시 저장했다가 다시 불러와야 하기 때문이다 (register spill)
- 큰 캐시로 어느정도 극복은 되지만 많은 수의 메모리 입출력 명령어들은 성능 저하의 주요 원인이다.
- CISC는 컴파일러에서 여전히 8개 혹은 16개의 범용 레지스터만 있는 것으로 간주하고 코드를 짜야 하기 때문.
- 펜티엄 프로부터 x86 프로세서는 CISC 명령어를 단순한 RISC처럼 생긴 내부 마이크로 명령어, 또는 마이크로 옵(uop)로 쪼개서 처리한다.
반응형
'Computer Science > CS 컴퓨터구조' 카테고리의 다른 글
RAM의 특징과 종류 / 메모리 보호 기법 (0) | 2023.11.10 |
---|---|
폰 노이만 구조와 하버드 구조 (0) | 2023.11.08 |
캐시 메모리 간단요약 (1) | 2023.11.08 |
고정 소수점과 부동 소수점, 해밍 코드 (1) | 2023.11.08 |
CPU 중앙처리장치란? (0) | 2023.11.08 |