컴퓨터 공학 기초 7

ALU와 제어장치

CPU 내부에는 ALU, 레지스터, 제어장치가 있다.ALU: CPU 내부에서 계산하는 장치제어장치: CPU 내부에서 제어 신호를 발생시키고 명령어를 해석하는 장치 ALU계산을 하기 위해서는 피연산자와 수행할 연산이 필요하다. ALU는 레지스터로부터 피연산자를 받아들이고 제어장치로부터 제어 신호를 받아들인다. 결과값은 레지스터에 전달한다.결과값을 메모리가 아닌 레지스터에 전달하는 이유는 CPU가 메모리에 접근하는 것보다 레지스터에 접근하기 더 빠르기 때문이다. 레지스터는 CPU의 내부에 있기 때문이다.ALU는 연산 결과에 대한 부가 정보인 ‘플래그’도 전달한다. 플래그에 양수, 음수에 정보도 포함되어 있다.연산 결과가 레지스터에 담기 어려울 정도로 크다면 ‘오버플로우’가 일어난다.플래그 정보이런식으로 저장..

C언어의 컴파일

전처리기 (Preprocessor)본격적으로 컴파일하기 전에 처리할 작업들외부에 선언된 다양한 소스 코드, 라이브러리 포함 (#include) 라이브러리 소스들을 진짜로 가져오는 과정이라고 생각하면 된다.프로그래밍의 편의를 위해 작성된 매크로 변환 (#define)컴파일할 영역 명시 (#if, #ifdef)확장자 변환: test.c → test.igcc hongong.c // gcc컴파일러 이용, ./a.out 이라는 실행파일이 생성된다.컴파일 과정 (Compiling)전처리가 완료되어도 여전히 소스 코드전처리가 완료된 소스 코드를 저급 언어(어셈블리 언어)로 변환gcc -S hongong.i -o hongong.s  어셈블 과정 (Assembling)어셈블리어를 기계어(컴퓨터가 알아들을 수 있는 0과..

명령어의 구조와 주소 지정 방식

명령어의 구조연산 코드: 수행할 연산CPU마다 가지는 연산 코드의 종류, 개수가 다르다.데이터 전송 ex) MOVE, STORE 등.. (데이터를 옮겨라. 메모리에 저장해라)산술/논리 연산제어 흐름 변경입출력 제어오퍼랜드: 연산에 사용될 데이터 또는 연산에 사용될 데이터가 저장된 위치연산에 사용될 데이터가 저장된 위치를 ‘주소 필드’라고 부른다. 오퍼랜드를 주소 필드라고도 부른다. 명령어 주소 지정 방식유효 주소 (Effective address)연산에 사용할 데이터가 저장된 위치명령어 주소 지정 방식 (Addressing modes)연산에 사용할 데이터가 저장된 위치를 찾는 방법유효 주소를 찾는 방법다양한 명령어 주소 지정 방식들

소스코드와 명령어

우리가 이용하는 C++, C 이런 것들은 고급 언어이다. 이를 컴퓨터가 이해하기 위해선 변환 과정이 필요하고 이를 통해 저급 언어로 변환된다.고급 언어: 개발자가 이해하기 쉽게 만든 언어저급 언어: 컴퓨터가 이해하고 실행하는 언어. 기계어와 어셈블리어가 있다.기계어: 이진수 0과 1로 이루어진 명령어, 간혹 16진수로도 표현된다.어셈블리어: 0과 1로 이루어진 기계어를 읽기 편한 형태로 번역한 저급 언어. 소스 코드에 직접적으로 이용하기도 한다.   고급 언어가 저급 언어로 변환되는 방식에는 크게 2가지가 있다. 컴파일러에 의해 컴파일이 이루어지고 저급 언어로 변환된다.  인터프리터 언어인터프리터에 의해 한 줄씩 실행된다.소스 코드 전체가 저급 언어로 변환되기까지 기다릴 필요가 없다.  내가 사용하는 C..

0과 1로 숫자를 표현하는 방법

문자 집합 (Character set): 컴퓨터가 이해할 수 있는 문자의 모음 인코딩 (Encoding)코드화하는 과정문자를 0과 1로 이루어진 문자 코드로 변환하는 과정 디코딩 (Decoding)코드를 해석하는 과정0과 1로 표현된 문자 코드로 문자를 변환하는 과정  대표적인 문자 집합에는 아스키 코드가 있다.아스키 코드초창기 문자 집합 중 하나알파벳, 아라비아 숫자, 일부 특수 문자 및 제어 문자(Enter, Backspace)7비트로 하나의 문자 표현, 표현할 수 있는 문자의 총 개수는 2^7개8비트 중 1비트는 오류 검출을 위해 사용되는 패리티 비트A는 65로 인코딩, a는 97로 인코딩  문자로 표현하기 때문에 인코딩이 간단한 장점이 있다. 하지만 7비트로, 128개보다 많은 문자를 표현할 수 ..

0과 1로 숫자를 표현하는 방법

비트(bit): 0과 1을 표현하는 가장 작은 정보 단위n비트로 2^n가지의 정보 표현이 가능하다.    워드(word): CPU가 한 번에 처리할 수 있는 정보의 크기 단위하프 워드(half word): 워드의 절반 크기풀 워드(full word): 워드 크기더블 워드(double word): 워드의 두 배 크기  이진법(binary): 0과 1로 수를 표현하는 방법음수 표현하기: 2의 보수  정의는 위와 같지만 구하는 방법은 아래의 방법을 따르면 된다.  양수, 음수는 플래그 레지스터가 구분한다. 이진법으로 큰 숫자를 표현하기에 숫자의 길이가 너무 길어지는 문제가 따른다. 그래서 컴퓨터의 데이터를 표현할때 십육진법을 많이 사용한다.

컴퓨터 구조

컴퓨터는 명령어를 처리하는 기계이다. 데이터숫자, 문자, 이미지, 동영상과 같은 정적인 정보컴퓨터와 주고받는/내부에 저장된 정보를 데이터라고 통칭0과 1로 숫자, 문자를 표현하는 방법 명령어컴퓨터를 실질적으로 움직이는 정보데이터는 명령어를 위한 일종의 재료   여기서 메모리는 메인 메모리, 주기억장치이다. 크게 RAM, ROM이 있는데 보통 RAM을 말한다.   메인보드, 마더보드 안에 컴퓨터의 네 가지 핵심 부품을 모두 장착할 수 있다.메인보드에 연결된 부품은 버스를 통해 주고 받는다.버스는 컴퓨터의 부품끼리 정보를 주고 받는 일종의 통로이며 다양한 종류의 버스가 있다.이중 컴퓨터의 핵심 부품을 연결하는 버스는 시스템 버스이다.    메모리: 현재 실행되는 프로그램(프로세스)의 명령어와 데이터를 저장하..