[핵심]
★하드웨어
★레지스터
★주기억장치와 보조기억장치 비교
★시스템버스
★진법변환
★2의 보수 방식
1. 컴퓨터 시스템의 구성
- 하드웨어와 소프트웨어의 구조
● 하드웨어 : 중앙처리장치, 기억장치, 입출력장치
- 중앙처리장치(= 프로세서, 마이크로프로세서) : 산술 논리 연산 장치/ 제어 장치/ ★레지스터
1) 컴퓨터의 '뇌' 이다. 즉, 프로그램 실행, 데이터 처리를 담당한다.
2) 산술 논리 연산 장치/ 제어 장치/ 레지스터는 중앙처리장치에서 각각 연산, 명령, 임시저장장치를 담당한다.
★레지스터가 임시저장장치인 이유?
: 기억장치는 상대적으로 중앙처리장치와 떨어져있다. 따라서 중앙처리장치는 레지스터를 통해 데이터를 임시
저장하여 빠르게 실행할 수 있도록 한다.
- 기억장치 : ★주기억 장치/ 보조기억장치
★ 주기억 장치와 보조기억장치의 가장 큰 차이점?
: 용도와 속도에 차이
주기억장치와 보조기억장치 비교 |
주기억 장치 | 보조 기억 장치 |
속도 빠름 | 속도 느림 | |
휘발성 메모리(전원 꺼지면 데이터 날라감) | 비휘발성 메모리 | |
당장 필요하지 않은 데이터, 프로그램 저장 |
- 입출력장치 : 입력장치/ 출력장치
1) 입력장치는 키보드, 마우스 처럼 입력하기 위한 장치
2) 출력장치는 모니터, 프린터, 스피커처럼 사람에게 보여지는 결과물
-★시스템 버스 : 주소버스/ 데이터버스/ 제어버스
: 시스템 버스는 위에서 정리한 하드웨어의 3요소인 중앙처리, 기억, 입출력 장치 사이에 있는 통로로 정보를
교환할 수 있도록 도와준다.
1) 주소버스 : 기억장치와 입출력 장치를 지정하는 주소 정보를 전송하는 시스템 버스, 단방향성
2) 데이터버스 : 기억장치나 입출력 장치 사이에 데이터를 전송하기 위한 시스템 버스, 양방향성
3) 제어버스 : 중앙 처리 장치가 시스템 내의 각종 요소의 동작을 제어하는 데 필요한 시스템 버스, 단방향성
● 소프트웨어(프린트물 쭉 읽어보는 걸로 끝냄.)
- 시스템 소프트웨어 : 운영체제/ 언어 번역 프로그램/ 장치 드라이버/ 링커/ 로더
- 응용 소프트웨어 : 앱, 어플 등 프로그램
- 프로그램 처리 과정
● 프로그램 처리 과정
- 고급언어 --> 어셈블리어 --> 기계어 순서
1) 고급언어 : c, c++
2) 어셈블리어 : 고급 언어와 기계어 사이에 있는 중간 언어
3) 기계어 : 0101... 처럼 2진수로 표현되는 언어
● 컴퓨터 시스템의 계층 레벨(프린트 14페이지 읽어보기)
- 레벨0~6까지 존재 : 숫자가 커질수록 고급언어
- 컴퓨터 구조에서 배우는 레벨은 0~2레벨
2. 컴퓨터의 역사
● 무어의 법칙
- 반도체 집적 회로의 트랜지스터 수가 24개월마다 2배로 증가한다는 법칙
1) 문제발생
- 2010년대 모바일 컴퓨팅 시대로 접어들면서 작은 기판에 더 많은 회로를 넣다보니 발열 등의 문제 발생.
- 칩은 갈수록 작아지는데 트랜지스터 수가늘다보니 제작비용이 크게 증가하는 등의 경제적인 문제
● 황의 법칙
- 반도체 메모리 용량이 1년마다 2배씩 증가한다는 이론
3. 폰 노이만, 하버드 구조
● 폰 노이만 구조
- 명령어와 데이터 메모리 영역의 물리적 구분이 없음 --> 하나의 시스템 버스로 두 가지 일을 처리
--> 병목현상 발생
1) 우리가 일반적으로 쓰는 구조
● 하버드 구조
- 명령어와 데이터 메모리 영역의 물리적 구분 존재 --> 각각을 다른 시스템 버스로 하여 일을 수행
--> 명령어와 데이터 메모리 읽기 동시 가능
1) 비싸고 공간를 많이 차지함
2) 설계 복잡
1. 진법과 진법 변환
● 디지털 정보의 단위
1) 1byte = 8bit, 1byte = 1character
2) 영어는 1바이트로 1문자 표현, 한글은 2바이트로 1문자 표현
3) 1byte 절반인 4bit를 '니블'이라함
4) MSB : 최상위 비트 > 8비트 중 가장 왼쪽, LSB : 최하위 비트 > 8비트 중 가장 오른쪽
● 진법
- 10진법, 2진법, 8진법, ★16진법
1) 16진법 : 0~9, A~F 로 표현, 자릿수 짧게 표현 가능
- ★진법변환(교재 51~54페이지 참고)
1) 2진수 8진수 16진수를 10진수로 변환
2) 10진수를 2진수 8진수 16진수로 변환
2. 정수표현
● 보수?
1) 부호 비트는 MSB(최상위 비트)에 나타낸다.
2) a진수에는 a의 보수와 a-1보수가 있다.
3) 양수를 보수로 바꾸면 음수, 음수를 보수로 바꾸면 양수이다.
4) 보수를 사용하는 이유는 음수를 표현하고 연산을 쉽게하기 위해서이다.
● 2진수의 음수와 양수표현
- 부호와 절댓값 : 부호만 +,-으로 나타냄, 나머지 자리는 절댓값 크기를 사용.
- 1의 보수 방식 : 해당 비트의 2진수를 반대의 상태로 바꾸는 것.
(ex) 0000 0011 -> 1111 1100
- ★2의 보수 방식 : 1의 보수 구한 결과 -> 1더하기
1) 컴퓨터에서 실제로 사용하는 방법
(ex) 0000 0011 ----> 1111 1100 (1의 보수 구한 결과)
1111 1100 + 1 ----> 1111 1101 (1더하기)
● 2의 보수로 표현된 2진법을 10진수로 전환하는 방법
- 최상위 비트가 양수(0)일 때와 음수(1)일 때
1) 양수 : 단순 2진수를 10진수로 전환하기
2) 음수 : 2의 보수로 바꾼 후 10진수로 전환하기
● 부호확장
1) 부호화 절댓값 : 부호만 MSB에 복사, 나머지는 0으로 채우기
2) 1의 보수와 2의 보수 : 늘어난 길이만큼 부호와 같은 값으로 모두 채우기
● 10진 정수 표현
- 팩 10진 형식
digit | digit | digit | digit | digit | digit | digit | zone |
1) zone 부분에 부호 표현
2) 부호 : 양수(+)는 C, 음수(-)는D, 부호가 없는 양수는 F
- 언팩 10진 형식
zone | digit | zone | digit | zone | digit | zone | digit |
1) zone 부분에 F(1111)
2) 가장 하위 ZONE 부분에 부호 : 양수(+)는 C, 음수(-)는D, 부호가 없는 양수는 F
3. 실수표현
4. 디지털 코드
● BCD코드(8421코드)
- 10진수 0부터 9까지 2진화한 코드
1) 실제표기는 2진수이지만 의미는 10진수
2) 1010~1111까지는 사용하지 않음
3) 계산 결과가 9를 초과한 경우, 결과에 6(0110)을 더해줌
● 3초과 코드
- BCD코드로 표현된 값에 3을 더해준 코드
1) 0과 1이 골고루 사용
2) 자기보수 성질을 갖음
(ex) 10진수 4를 3초과 코드로 나타내면 0111 <--> 10진수 5를 3초과 코드로 나타내면 1000
3) 코드 10개만 있는 10진 코드
● 그레이코드
- 아날로그, 디지털 변환기나 입출력 장치 코드로 쓰임
1) 연속되는 코드들 간에 하나의 비트만 변환
2) 2진코드를 그레이코드로, 그레이코드를 2진코드로 계산 : xor 계산
● 영숫자 코드
- 표준 BCD코드
- ASCII 코드
1) 128가지 문자 표현
2) 각 문자를 8비트로 표현
- 유니코드 : 아스키코드의 한계를 극복하기 위해 만들어진 표준 코드
1) 각 문자를 16비트로 표현
2) 서로 다른 여러 시스템으로 데이터 손상없이 전송 가능
3) 문자 10만 개 이상으로 구성
'공부 > 컴퓨터구조' 카테고리의 다른 글
[10주차]제어장치(2), 기억장치 (0) | 2021.05.06 |
---|---|
[9주차]제어장치(2) (0) | 2021.05.01 |
[6주차]레지스터, 컴퓨터 명령어, 주소 지정 방식, 컴퓨터 시스템의 동작 (0) | 2021.04.09 |
[4주차]디지털 논리 회로-조합 논리 회로,집적 회로 /중앙 처리 장치~ (0) | 2021.04.03 |
[3주차]디지털 논리회로-불 대수 (0) | 2021.03.26 |