컴퓨터공학29 11. 명령어 집합 구조, CISC와 RISC 명령어 집합 구조인텔, 애플 등 각 제조사별 CPU마다 명령어의 종류, 연산 방식, 주소 지정 방식이 다르다.x86 혹은 x86-64 명령어 구조를 따르는 CPU들은 ARM 명령어 집합을 따르는 CPU의 명령어를 이해하지 못한다.명령어 집합은 CPU가 이해할 수 있는 명령어 모음으로 CPU의 언어와 같다. 이를 명령어 집합 구조 ISA Instruction Set Architecture라고 부른다.명령어가 달라지면 그에 대한 나비효과로 많은 것들이 달라진다. 명령어 해석방식, 레지스터의 종류와 개수, 파이프라이닝의 용이성 등즉, 명령어 집합에 따라서 CPU, 컴퓨터의 구조까지도 결정이 되기 때문에 명령어 집합 구조는 하드웨어가 소프트웨어를 어떻게 이해해야 될지에 대한 약속이다. 현대 명령어 집합은 가장 .. 2024. 10. 7. 10. 명령어 병렬 처리 기법 명령어 파이프라인하나의 명령어가 처리되는 과정을 비슷한 시간 간격으로 나누면 아래의 4개의 단계로 나누어진다.명령어 인출 Instruction Fetch명령어 해석 Instruction Decode명령어 실행 Execute Instruction결과 저장 Write Back여기서 주목할 점은 CPU는 같은 단계가 겹치지만 않으면 각각의 단계를 동시에 실행할 수 있다.아래의 그림에서 t2는 3개의 명령어를 t4는 4개의 명령어를 겹쳐서 실행하고 있는 것을 볼 수 있다.이런 식으로 명령어를 동시에 병렬로서 처리하는 방법을 명령어 파이프라인 이라고 한다.명령어 파이프라인을 사용하지 않는다면 아래 그림처럼 명령어를 처리하는 속도가 길어진다는 것을 알 수 있다. 단, 명령어 파이프라인이 항상 올바르게 작용되는 것은.. 2024. 10. 6. 9. 빠른 CPU을 위한 설계 기법 CPU의 속도를 빠르게 만드려고 한다면,컴퓨터 부품들은 '클럭 신호'에 맞춰 일사불란하게 움직인다.CPU는 '명령어 사이클'이라는 정해진 흐름에 맞춰 명령어를 실행한다.클럭 신호가 빠르게 반복되면 CPU를 비롯한 컴퓨터 부품들은 빠른 박자에 맞춰 빠르게 움직인다.반드시 성립되는 것은 아니지만 일반적으로 클럭속도는 CPU의 속도로 간주된다.클럭클럭속도 : 헤르츠 HZ 단위로 측정헤르츠 Hz : 1초에 클럭이 반복되는 횟수클럭이 1초에 한번 반복되면 1Hz클럭이 1초에 100번 반복되면 100Hz1KHz=1,000Hz1MHz=1,000,000Hz1GHz=1,000,000,000 Hz필요 이상으로 클럭을 높이면 발열이 심각해진다.코어와 멀티 코어코어 Core 란?현대적인 관점에서 "CPU"라는 용어를 재해석해.. 2024. 10. 5. 8. 명령어 사이클과 인터럽트 명령어 사이클프로그램 속 명령어들은 일정한 주기가 반복되며 실행하는데 이 주기를 명령어 사이클이라고 한다. 인출 사이클 : CPU가 메모리 안에 있는 프로그램을 실행하기 위해서 메모리에 저장된 값을 CPU 내부로 갖고 오는 작업실행 사이클 : 인출 사이클로 들어온 값으로 실행한다. 일반적으로 CPU는 인출과 실행을 반복하면서 프로그램을 실행한다.그런데 CPU로 명령어를 가지고 와도 바로 실행이 불가능한 경우도 있다.위 그림과 같이 간접 주소지정 방식의 경우에 인출을 했다고 바로 실행이 불가능하고 몇 번 더 메모리에 접근해야 하는 경우를 위해서 간접 사이클이 추가될 수 있다. 인터럽트CPU가 꼭 주목해야 할 때 또는 CPU가 빨리 처리해야 할 다른 작업이 생겼을 때 인터럽트가 발생한다.인터럽트의 종류에는 .. 2024. 10. 4. 7. 레지스터 레지스터는 CPU 내부의 작은 임시저장장치이다. 프로그램 속 명령어와 데이터는 실행 전후로 레지스터에 저장된다. 프로그래머 입장에서 중요한 장치이다. 왜냐하면 개발하고 실행하는 과정에서 레지스터에 담긴 값들을 관찰하면서 기초적인 단계에서부터 실행되는 순서나 원리를 파악할 수 있기 때문이다. 레지스터의 종류 레지스터의 종류는 CPU마다 다르지만 학습을 위해 대부분의 전공서와 CPU가 공통적으로 포함하고 있는 레지스터는 아래와 같다. 프로그램 카운터 : 메모리에서 가져올 명령어의 주소(메모리에서 읽어 들일 명령어의 주소) *행동이 끝나면 순차적으로 진행하기 위해 기존의 값에서 1증가한다.명령어 레지스터 : 해석할 명령어(방금 메모리에서 읽어 들인 명령어)메모리 주소 레지스터 : 메모리의 주소메모리 버퍼 레지.. 2024. 10. 2. 5. CPU의 작동원리 : ALU와 제어장치 ALU는 계산하는 장치제어장치는 제어 신호를 발생시키고 명령어를 해석하는 장치 ALU계산을 하기 위해서는 피연산자와 수행할 연산이 필요 ex) 1+2=? ; 1, 2는 피연산자, + 수행할 연산 ALU는 레지스터로부터 피연산자를 받아들이고 제어장치로부터 제어 신호를 받아들인다. 이렇게 계산된 결괏값을 레지스터에 담는데 메모리가 아니라 레지스터에 저장하는 이유는 CPU가 레지스터에 접근하는 속도가 메모리에 접근하는 속도보다 빠르기 때문이다. ALU가 내보내는 또다른 정보중에서 프래그가 있다. 플래그는 연산결과에 대한 부가정보인데 CPU 내부에 있는 모든 숫자들은 양수 혹은 음수라고 하는 일종의 깃발을 들고 다니기 때문에 CPU는 결과값이 양수인지 음수인지 플래그를 통해서 이해할 수 있다. 다만, 연산결과가.. 2024. 10. 1. 이전 1 2 3 4 5 다음