본문 바로가기

Computer Science/Computer Architecture

[Computer Architecture] 컴퓨터 정보의 표현과 저장

+ 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다.

 

컴퓨터 정보의 표현과 저장

- 컴퓨터 정보는 2진수 비트(bit)들로 표현한다. (1byte = 8bit)

=> 컴퓨터에게 모든 데이터는 '010101...'과 같은 0과 1 숫자의 나열일 뿐이다.

 

진법 : 유한한 심볼로 숫자를 표현하는 방법

- 10진법: 0 ~ 9, 10개의 심볼로 숫자를 표현

 

- 2진법: 0과 1로 숫자를 표현


프로그램 코드

- 고급 언어컴파일러로 번역 → 어셈블리 언어어셈블러로 번역 → 기계어

 

컴파일러: 고급 언어 프로그램을 어셈블리어 또는 기계어 프로그램으로 번역하는 SW이다.

어셈블러: 어셈블리 프로그램을 기계어 프로그램으로 번역하는 SW이다.

1. 고급 언어 (high-level language)

- 영문자/숫자로 구성되어 사람이 이해하기 쉬운 언어이다.

 

- 컴파일러(compiler), 어셈블러(assembler)를 이용하여 기계어로 번역한다.

 

예) C, C++, PASCAL, FORTRAN, COBAL 등

 

2. 어셈블리 언어 (assembly language)

- 고급 언어와 기계어 사이의 중간 언어이다.

 

- 어셈블러(assembler)로 번역 시 기계어와 일대일 대응된다.

예) MOV = B8, 5 = 05 00 등

 

3. 기계어 (machine language)

- 컴퓨터 하드웨어가 이해할 수 있는 언어이다.

 

- 2진 비트들로 구성되어있다.


시스템 소프트웨어

- 컴퓨터의 하드웨어와 응용 소프트웨어 사이에서 플랫폼 역할을 하는 소프트웨어이다.

1. 운영체제 (Operating System)

- 컴퓨터 자원을 관리하고 응용 프로그램의 실행 환경을 제공하는 SW이다.

 

2. 디바이스 드라이버 (Device Driver)

- 컴퓨터에 연결된 주변 기기를 제어하는 모듈(SW)이다.

 

3. 컴파일러(Compiler), 인터프리터(Interpreter) 

- 고급 언어로 작성된 프로그램을 컴퓨터가 이해할 수 있는 언어(기계어)로 변환하는 SW이다.

- 인터프리터는 소스 코드를 한 줄씩 읽고 해석하여 실행한다.

 

4. 링커 (linker)

- 여러 개로 분할, 작성된 (목적)프로그램, 또는 라이브러리 루틴을 결합하여, 실행 가능한 하나의 프로그램으로 연결하는 SW이다.

 

5. 로더 (loader)

- 디스크와 같은 저장장치에 보관된 프로그램을 읽어 메인 메모리에 적재한 후 실행 가능한 상태로 만드는 SW이다.


어셈블리(기계어) 명령어 형식 (instruction format)

연산 코드 (op code)

- CPU가 수행할 연산을 지정해 주는 비트들이다.

예)  001: 레지스터 A로 적재하라

 

- 연산 코드의 비트 수는 가능한 연산의 수이다.

예) op code가 3bit라면, 해당 CPU가 수행할 수 있는 연산의 최대 수는 2의 3제곱 개이다.

 

피연산자 (오퍼랜드, operand)

- 연산에 쓰일 데이터 혹은 데이터가 저장되어 있는 기억장치 주소(memory address)이다.

 

- 오퍼랜드의 비트 수는 기억장소의 크기이다.

예) operand가 5bit라면, 주소 지정이 가능한 메모리의 최대 수는 2의 5제곱 개이다.

 


컴퓨터(컴퓨터 시스템)의 기본적 기능 

1. 프로그램 실행 (load & excute)

- CPU가 주기억장치로부터 프로그램 코드를 읽어들여 실행한다.

 

2. 데이터 저장 (store)

- 프로그램 실행 결과로서 얻어진 데이터를 주기억장치에 저장한다.

 

3. 데이터 이동 (move)

- 디스크/CD-ROM(보조기억장치)에 저장되어 있는 프로그램과 데이터 블록을 (주)기억장치로 이동시킨다.

 

4. 데이터 입력/출력 (with I/O device)

- 사용자가 키보드를 통하여 보내는 명령이나 데이터를 입력 받는다.

- CPU가 처리한 결과값이나 기억장치의 내용을 프린터(혹은 모니터)로 출력한다,

 

5. 제어 (control by signal)

- 프로그램이 순서대로 실행되도록 또는 필요에 따라 실행 순서를 변경하도록 조정하며, 각종 제어 신호들을 발생시킨다.