-
Notifications
You must be signed in to change notification settings - Fork 0
학습 기록 | w1 정민
jeongmin edited this page Feb 5, 2025
·
4 revisions
graph TD;
A[컴퓨터 구조] --> B[컴퓨터가 이해하는 정보]
B --> B1[데이터]
B --> B2[명령어]
A --> C[컴퓨터의 네 가지 핵심 부품]
C --> C1[CPU]
C --> C2[메모리]
C --> C3[보조기억장치]
C --> C4[입출력장치]
컴퓨터: 명령어를 처리하는 기계 컴퓨터 프로그램: 명령어들의 모음
[ 컴퓨터가 이해하는 정보 ]
- 데이터
- 명령어를 위해 존재하는 일종의 재료
- 명령어
- 데이터를 움직이고 작동시키는 정보
[ 컴퓨터의 네 가지 핵심 부품 ]
- CPU (= 중앙처리장치, Central Processing Unit)
- 컴퓨터의 두뇌 / 메모리에 저장된 명령어를 읽어 들이고, 읽어 들인 명령어 해석, 실행하는 부품
- ALU: 계산기
- 레지스터: CPU 내부 작은 임시 저장 장치
- 제어장치: 제어 신호라는 전기 신호를 내보내고 명령어를 해석하는 장치
- 메모리 (= 주기억장치, main memory)
- 종류: RAM(Random Access Memory), ROM(Read Only Memory)
- 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품
- 프로그램이 실행되기 위해서는 반드시 메모리에 저장되어 있어야 함
- 메모리에 저장된 값의 위치는 주소로 알 수 있음
- 값에 빠르게 효율적으로 접근하기 위함
- 보조기억장치 (secondary storage)
- 전원이 꺼져도 보관될 프로그램을 저장하는 부품
- 종류: 하드 디스크, SSD,
- 입출력장치 (input/output device)
- 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환할 수 있는 부품
- 시스템 버스
- 컴퓨터의 네 가지 핵심 부품들이 서로 정보를 주고받는 통로
- 주소 버스, 데이터 버스, 제어 버스
- 비트
- 0과 1을 나타내는 가장 작은 정보 단위
- n개의 bit: 2**n가지 정보 표현 가능
- 워드
- CPU가 한번에 처리할 수 있는 데이터 크기
- 이진수의 음수 표현
- 2의 보수
- 어떤 수를 그보다 큰 2**n에서 뺀 값
- -(-A) = A 를 만족
- 부가 정보인 flag를 사용하여 양수 / 음수를 표시
- n bit로는 -2n과 2n을 동시에 표현할 수 없음
- 2의 보수
- 16진수는 2진수로 변환하기 쉬움
[ 문자 집합 ]
- 컴퓨터가 인식하고 표현할 수 있는 문자의 모음
- 문자 인코딩: 문자를 0과 1로 변환
- 문자 디코딩: 인코딩의 반대과정, 즉 0과 1로 이루어진 문자 코드를 사람이 이해할 수 있는 문자로 변환
[ 아스키 코드 ]
- 0 ~ 127(2**7)까지의 수가 할당되어 인코딩
- 추후 1비트를 추가한 확장 아스키가 등장하였으나 문자의 수가 턱없이 부족
[ 한글 인코딩 ]
- 완성형 인코딩: 초성, 중성, 종성의 조합으로 이루어진 완성된 하나의 글자에 고유한 코드 부여
- EUC-KR: 대표적인 완성형 인코딩
- CP949: EUC-KR의 확장된 버전
- 조합형 인코딩: 초성, 중성, 종성에 해당하는 코드를 합하여 하나의 글자 코드를 만드는 방식
[ 유니코드 ]
- 여러 나라의 문자를 광범위하게 표현할 수 있는 통일된 문자 집합
- UTF-8, UTF-16, UTF-32
- 모든 소스 코드는 컴퓨터 내부에서 명령어로 변환됨
- 컴퓨터는 프로그래밍 언어를 이해하지 못한다.
고급 언어
: 사람이 이해하고 작성하기 쉽게 만들어진 언어
- 컴파일 언어 : 컴파일러에 의해 소스 코드 전체가 저급 언어로 변환되어 실행되는 언어
- 인터프리터 언어 : 인터프리터에 의해 소스 코드가 한 줄씩 저급 언어로 변환되어 실행되는 언어
저급 언어
: 컴퓨터가 직접 이해하고 실행할 수 있는 언어
- 기계어 : 0과 1로 이루어진 명령어 비트
- 어셈블리어 : 기계어를 사람이 읽기 편한 형태로 번역
컴파일 언어 —- 컴파일 ——> 저급언어 인터프리터 언어 —- 인터프리트 ——> 저급 언어
명령어 : 무엇을 대상으로 어떤 작동을 수행하라는 의미를 담게 됨
- 연산 코드 (연산자)
: 명령어가 수행할 연산
- 데이터 전송
- 산술 / 논리 연산
- 제어 흐름 변경
- 입출력 제어
- 오퍼랜드 (피연산자 / 주소 필드)
: 연산에 사용할 데이터 또는 연산에 사용할 데이터가 저장된 위치를 의미
- 명령어 내부에 하나도 없을 수도 잇고 여러 개가 있을 수도 있음
- 데이터, 메모리 주소나 레지스터 이름이 담김
💡 오퍼랜드 필드 안에 메모리 주소가 담긴다면 표현할 수 있는 데이터의 크기는 하나의 메모리 주소에 저장할 수 있는 공간만큼 커진다.
주소 지정 방식 : 연산에 사용할 데이터 위치를 찾는 방법
- 즉시 주소 지정 방식 : 연산에 사용될 데이터
- 직접 주소 지정 방식 : 유효 주소(메모리 주소)
- 간접 주소 지정 방식 : 유효 주소의 주소
- 레지스터 주소 지정 방식 : 유효 주소(레지스터의 이름)
- 레지스터 간접 주소 지정 방식 : 유효 주소를 저장한 레지스터
1. 컴퓨터의 두뇌 역할을 하는 부품은 무엇인가요?
1) 하드 드라이브(HDD)
2) 메모리(RAM)
3) 중앙 처리 장치(CPU)
4) 그래픽 처리 장치(GPU)
2. ALU는 어떤 기능을 수행하나요?
1) 프로그램 실행
2) 입출력 장치 제어
3) 산술 및 논리 연산 수행
4) 데이터 저장
3. 레지스터는 [ A ] 내부 작은 [ B ] 이다.
A와 B에 들어갈 말은?
4. 프로그램이 실행되기 위해서는 반드시 [ C ] 에 저장되어 있어야 한다.
C에 들어갈 말은?
5. 2의 보수는 이진수의 [ D ] 을 표현하기 위해서 널리 사용된다.
D에 들어갈 말은?
6. 저급 언어의 2가지 종류에 대해 작성하세요. (단답형)
7. 고급 언어란 무엇인가요? (서술형)
8. 연산에 사용할 데이터를 찾는 방법을 [ E ], 연선에 사용할 데이터가 저장된 위치를 [ F ]라고 한다.
E와 F에 들어갈 말은?
9. 아래 그림의 문제에서 레지스터 간접 주소 방식이 아닌 레지스터 직접 주소 방식이라면 결과가 어떻게 나올까요?
답안
1. 3 - 중앙 처리 장치 (CPU)
2. 3 - 산술 및 논리 연산 수행
3. A: CPU / B: 임시 저장 장치
4. C: 메모리
5. D: 음수
6. 기계어, 어셈블리어
7. 컴퓨터가 이해하는 언어가 아닌 사람이 이해하고 작성하기 위해 쉽게 만들어진 언어
8. E: 주소 지정 방식 / F: 유효 주소
9. 레지스터 R1 속 6이라는 값을 CPU로 가져온다.