본문 바로가기

전체 글44

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개의 명강의를 담은 책이다. 옥스퍼드 수학과의 명강의를 포함하여 저자가 한국에서 진행한 각종 수학 강의의 내용을 바탕으로 탄생한 것으로, 마치 강연의 현장에 찾아온 듯 수학에 대해 묻고 답하는 세밀한 대화로 가득하다. 우리가 인문학의 문제라 여겼던 윤리적 판단에서부터 우주의 무한한 세계에 이르기까지 인간이 세상을 이해하는 데 수학이 필요하지 않은 순간이란 없다. 저자는 기본적인 수학의 원리부터 정보와 우주에 대한 이해, 윤리적인 판단이나 이성과의 만남 같은 사회문화적인 주제에 이르기까지 수학이라는 방대한 세계에 대해 평생을 걸.. 2024. 10. 3.
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.
4. 소스코드와 명령어 고급 언어와 저급 언어  개발자가 작성한 소스 코드#include int main() { printf("Hello, world!"); return o;} 컴퓨터는 이러한 소스코드를 바로 직독직해하지 못한다.  C, C++, Java, Python 같은 프로그래밍 언어들은 개발자가 읽고 쓰기 편하게 만들어낸 언어로 '고급 언어'라고 한다. 고급 언어로 작성된 소스 코드가 컴퓨터 내부에서 실행될 때는 컴퓨터가 이해하고 실행하는 언어로 변환이 되어 실행한다. 이를 '저급 언어'라고 한다. 저급 언어는 기계어와 어셈블리어로 나뉜다. 기계어는 이진수 또는 십육진수 표현되며 컴퓨터가 이해할 수 있는 명령어로 이루어진 언어다.허나 이거는 컴퓨터가 이해하기 쉽게 만들어진 언어이기 때문에 이 기계어를 사람들이 읽기 .. 2024. 9. 30.