본문 바로가기
공부/컴퓨터구조

[1주차]컴퓨터 시스템의 구성

by IT공부방 2021. 3. 20.

[핵심]

하드웨어

★레지스터

★주기억장치와 보조기억장치 비교

★시스템버스

★진법변환

★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만 개 이상으로 구성