Computer Science 15

Chapter05: CPU 성능 향상 기법

빠른 CPU를 위한 설게 기법클럭컴퓨터 부품들은 클럭 신호에 맞춰 일사분란하게 움직인다. 그리고 CPU는 명령어 사이클이라는 정해진 흐름에 맞춰 명령어들을 실행한다.만약, 클럭 신호가 빠르게 반복되면 CPU는 명령어 사이클을 더 빠르게 반복할 것이다.클럭 속도는 헤르츠(Hz) 단위로 측정된다. 이는 1초에 클럭이 몆 번 반복되는지를 나타낸다. 예를 들면, 1초에 클럭이 한 번 반복되면 1Hz이다.실제 CPU 클럭 기본 속도 측정해보면 2.5GHz, 최대 속도는 4.9GHz 정도가 나올 것이다. (1GHz는 1,000,000,000(10^9)Hz 이다, 앞서 말한 클럭 속도들은 컴퓨터 성능에 따라 다르다)💡 클럭의 속도는 일정하지 않다클럭은 일정한 속도를 유지하기 보다는 고성능을 요하는 순간에 순간적으로..

Chapter04: CPU의 작동 원리

ALU와 제어장치ALU받아들이는 정보제어장치는 클럭 신호를 받아들인다.클럭의 주기에 맞춰 다른 레지스터로 데이터가 이동되거나 ALU에서 연산이 수행되는 등 여러가지 일들을 수행할 수 있다.‘클럭’이란 컴퓨터의 모든 부품을 일사불란하게 움직일 수 있게하는 시간 단위이다.제어장치는 ‘해석해야 할 명령어’를 받아들인다.명령어 레지스터로부터 해석할 명령어를 받고 해석한 뒤, 제어 신호를 발생시켜 컴퓨터 부품들에 수행해야 할 내용을 알려준다.CPU가 해석해야 할 명령어는 명령어 레지스터라는 특별한 레지스터에 저장된다.제어장치는 플래그 레지스터 속 플래그 값을 받아들인다.제어장치가 제어 신호를 통해 컴퓨터 부품들을 제어할 때 플래그 값을 받아들이고 이를 참고하여 제어 신호를 발생시킨다.제어장치는 시스템 버스, 그 ..

Chapter03: 명령어

소스 코드와 명령어고급 언어와 저급 언어프로그래밍 언어는 컴퓨터가 이해하는 언어가 아닌 사람이 이해하고 작성하기 쉽게 만들어진 언어이다. 여기서 두 가지로 나뉜다.고급 언어(High-level programing languages) : 사람을 위한 언어다.저급 언어(low-level programing languages) : 사람이 아닌 컴퓨터가 이해하고 실행할 수 있는 언어이다. 기계어와 어셈블리어로 나눠져있다.고급 언어로 작성된 소스 코드가 실행되려면 반드시 저급 언어, 즉 명령어로 변환되어야 한다.하지만 저급 언어를 사용해서 복잡한 프로그램을 만들기란 쉽지 않다. 그렇기 때문에, 고급 언어가 필요한 것이다.사람이 읽고 쓰기 쉬운 것 뿐만아니라 가독성, 변수나 함수 같은 편리한 문법을 제공하기 때문에..

Chapter02: 데이터

0과 1로 숫자를 표현하는 방법정보 단위0과 1을 나타내는 가장 작은 정보 단위를 비트(bit)라고 한다.1비트는 0 또는 1 두 가지 정보를 표현할 수 있다. n비트는 2^n가지 정보를 표현할 수 있다.프로그램의 크기를 말할 때는 표현의 편의를 위해 비트보다 큰 단위를 사용한다. 바이트, 킬로바이트, 메가바이트, 기가바이트, 테라바이트 등이 있다.바이트(byte) : 여덟 개의 비트를 묶은 단위, 1byte = 8bit, 2^8(256)개의 정보를 표현할 수 있다.킬로바이트(KB: kilobyte) : 1바이트 1,000개를 묶은 단위메가바이트(MB: megabyte) : 1킬로바이트 1,000개를 묶은 단위기가바이트(GB: gigabyte) : 1메가바이트 1,000개를 묶은 단위테라바이트(TB: t..

Chapter01: 컴퓨터 구조 시작하기

컴퓨터 구조를 알아야 하는 이유컴퓨터 구조는 실력 있는 개발자가 되려면 반드시 알아야 할 기본 지식이다.개발할 때는 문제 없이 작동했던 코드가 실제 서비스할 땐 작동하지 않는 상황이 비일비재하다.하지만 컴퓨터 구조를 이해하고 있다면 문제 상황을 빠르게 진단할 수 있고 문제 해결의 실마리를 다양하게 찾을 수 있다.컴퓨터 구조의 큰 그림컴퓨터 구조 지식은 크게 두가지로 나뉜다.컴퓨터가 이해하는 정보컴퓨터의 네 가지 핵심 부품컴퓨터가 이해하는 정보컴퓨터는 0과 1로 표현된 정보만을 이해한다. 컴퓨터가 이해하는 정보에는 크게 두 종류가 있다.데이터(data) : 컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상과 같은 정적인 정보를 가리킨다.명령어(instruction) : 컴퓨터를 실질적으로 작동시키는 중요한 ..