+ 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다.
컴퓨터 정보의 표현과 저장
- 컴퓨터 정보는 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)
- 프로그램이 순서대로 실행되도록 또는 필요에 따라 실행 순서를 변경하도록 조정하며, 각종 제어 신호들을 발생시킨다.
'Computer Science > Computer Architecture' 카테고리의 다른 글
[Computer Architecture] 명령어 집합 구조 (0) | 2023.09.18 |
---|---|
[Computer Architecture] 컴퓨터의 성능 (1) | 2023.09.10 |
[Computer Architecture] 컴퓨터의 발전 (종류) (2) | 2023.09.09 |
[Computer Architecture] 컴퓨터의 발전 (역사) (2) | 2023.09.04 |
[Computer Architecture] 컴퓨터의 기본 구성 (0) | 2023.09.04 |