Chapter 5. CPU 성능 향상 기법
·
CS/컴퓨터 구조
CPU 속도와 관련된 개념들은 클럭, 코어, 스레드 등이 있다.클럭컴퓨터 부품들은 ‘클럭 신호’에 맞춰 움직이기 때문에 일반적으로, 클록 속도가 높을수록 CPU의 성능이 좋다. 이때 클럭 속도는 Hz 단위로 측정한다. 하지만 클럭 속도를 무작정 높일 경우 발열 문제가 발생하기 때문에 한계가 있다.코어와 멀티 코어CPU 내에서 명령어를 실행하는 부품으로 여러 개 있을 수 있다. 코어 수에 따라 싱글코어, 듀얼코어 등으로 불리며 코어가 여러 개일 경우 멀티코어 CPU 또는 멀티코어 프로세서라고 부른다.그러나 코어 수를 두 개, 세 개 늘린다고 연산 속도가 두 배, 세 배 빨라지진 않는다.스레드와 멀티 스레드스레드는 크게 CPU에서 사용되는 하드웨어적 스레드가 있고, 프로그램에서 사용되는 소프트웨어적 스레드가..
Chapter 4. CPU의 작동 원리
·
CS/컴퓨터 구조
CPU는 크게 ALU, 제어 장치, 그리고 레지스터로 구성되어 있다. ALUALU는 레지스터를 통해 피연산자, 제어 신호를 받아들여 연산을 수행하고, 연산 결과를 레지스터에 저장한다. 또한, 연산 결과에 대한 추가적인 상태 정보를 플래그로 나타내어 플래그 레지스터에 저장한다. ALU가 내보내는 대표적인 플래그는 다음과 같다. 제어장치제어장치는 제어 신호를 내보내고 명령어를 해석하는 부품으로, 다음과 같은 정보들을 받아들인다. 클럭 신호컴퓨터의 모든 부품을 움직일 수 있게 하는 시간 단위이다. 명령어CPU가 해석해야 할 명령어를 명령어 레지스터에 저장하고, 이를 해석하여 알맞은 제어 신호를 발생시킨다. 플래그앞서 설명한 플래그 레지스터의 플래그 값을 받아들여 부품들을 제어할 때 참고한다. 제어 신호CPU뿐..
Chapter 3. 명령어
·
CS/컴퓨터 구조
소스코드와 명령어컴퓨터는 명령어를 처리하는 기계로, 컴퓨터에게 명령을 내리기 위한 언어는 크게 고급 언어와 저급 언어가 있다. 고급 언어는 C, C++, Python과 같은 흔히 프로그래밍 언어라고 불리우는 언어들이 해당한다. 이는 컴퓨터가 아닌 사람이 쉽게 이해하고 작성하기 위해 만들어졌다. 저급 언어는 크게 어셈블리어와 기계어로 나뉘며, 컴퓨터가 이해하고 실행할 수 있는 언어이다. 고급 언어를 저급 언어로 변환하는 과정은 컴파일과 인터프리트 과정이 있다. 컴파일컴파일은 컴파일러에 의해 고급 언어 → 전처리 → 컴파일 → 어셈블 과정을 거쳐 소스 코드 전체를 한 번에 저급 언어로 이루어진 목적 코드(Object Code)로 변환한다.전처리와 링킹과정에 대해 부연설명을 하자면, 전처리 과정의 경우, #i..
Chapter 2. 데이터
·
CS/컴퓨터 구조
정보 단위컴퓨터는 기본적으로 0과 1밖에 이해하지 못한다. 따라서, 두 가지 상태를 갖는 이진법 체계를 사용하며 가작 작은 정보 단위를 비트(bit)라고 한다. 또한, 우리가 흔히 사용하는 바이트(byte) 단위는 8개의 비트를 묶은 단위를 말한다. 워드(word)중요한 정보 단위 중 워드(word)라는 단위도 존재한다. 이는 CPU가 한 번에 처리할 수 있는 데이터 크기를 의미하며, 32비트 컴퓨터, 64비트 컴퓨터에서 32, 64비트는 1 워드를 말한다. CPU가 한 번에 32비트를 처리할 수 있다면 1워드는 32비트(=레지스터 크기)가 된다. 따라서, 주소를 $32bit = 4,294,967,296$개 까지 표현할 수 있으며 보통의 메모리는 주소당 1바이트의 크기를 가지므로, 32비트 컴퓨터는 $4..