[computerStructure] 1. 컴퓨터시스템 개요

말랑이·2023년 6월 1일
1

computerStructure

목록 보기
1/3
post-thumbnail

1 컴퓨터의 기본구조

1️⃣ 컴퓨터시스템 구성

컴퓨터시스템 구성
응용 소프트웨어 (application software)
시스템 소프트웨어 (system software)
하드웨어 (hardware)

👾 하드웨어 : 컴퓨터 정보들의 전송통로 제공정보의 처리를 일어나게 해주는 물리적실체

👾 소프트웨어 : 정보 이동방향 • 처리종류 지정 → 해당 동작 실행시간을 지정해주는 명령(command)집합

  • ① 시스템소프트웨어 : OS (Window, Linux), 각종 유틸리티 프로그램 (프린터 드라이버)
  • ② 응용소프트웨어 : 워드프로세서, 웹브라우저, MS-Excel

컴퓨터 하드웨어 주요 요소

  1. 메인보드 (main board)
  2. CPU, GPU
  3. 주기억장치모듈
  4. 확장보드 (사운드 카드 등)
  5. 전원공급장치 (power supply)
  6. 광 저장장치 (CD-ROM, DVD)
  7. 하드디스크, SSD

2️⃣ 컴퓨터 기본구조

👾 컴퓨터기능 : 프로그램코드 → 정해진 순서대로 수행

  • ① Read (데이터읽기) → ② Processing (처리) → ③ Store (저장)
📍 1. 중앙처리장치 (CPU)
	- 프로세서 (processer)
	- '프로그램 실행' + '데이터처리' ➡️ 중추적기능 수행 담당
📍 2. 기억장치
	① 주기억장치 (main memory)
    - CPU 가까이 위치 (반도체 기억장치 칩)
    - 고속엑세스
    - 가격 High + 면적 차지 High → 저장용량의 한계 ⛔️
    - 영구저장 ❌, 일시적 저장장치 ✅
    
    ② 보조저장장치 (auxiliary storage device)
    - 2차 기억장치 (secondary memory)
    - 저장밀도 High + 가격 Low
    - 읽기/쓰기 속도 느림 ⚠️
    - 영구 저장장치 ✅ (하드디스크, SSD, 플리시메모리 등)
📍 3. 입출력장치(I/O device) = 주변장치
	- 입력장치 (input device) + 출력장치 (output device)
    - 사용자 <-> 컴퓨터 상호작용 장치 (interaction)
    - CPU → 장치제어기 (device controller) ➡️ 동작제어

2 정보의 표현과 저장

👾 컴퓨터정보 : 2진수비트(0, 1)로 표현된 프로그램코드와 데이터

1️⃣ 프로그램 코드

📎 기계어 (machine language)

  • 기계코드 (machine code)
  • 컴퓨터 하드웨어 부품들이 이해할 수 있는 언어 (2진비트 구성)

📎 어셈블리언어 (assembly language)

  • 고급언어 <-> 기계어 사이 중간언어
  • 어셈블러로 번역됨 (assembler)
  • 기계어와 일대일로 대응

📎 고급언어 (high-level language)

  • 영문자 + 숫자 구성
  • 사람이 이해하기 쉬운 언어
  • C, C⁺⁺, Python, Java 등
  • 컴파일러(compiler) → 기계어로 번역됨

2️⃣ 프로그램언어 번역과정

📎 Z = X + Y 📎 A : 레지스터

  • LOAD A, X : 기억장치 X 내용 읽은 후 → 레지스터 A에 적재 (load)
  • ADD A, Y : 기억장치 Y 내용 읽은 후 → 레지스터 A에 적재된 값과 더함 → 그 결과를 다시 레지스터 A에 적재
  • STOR Z, A : 레지스터 A 값 → 기억장치 Z에 저장 (store)

3️⃣ 프로그램언어 번역 소프트웨어

소프트웨어역할
컴파일러 (compiler)고급언어 프로그램 → 기계어 프로그램 번역
어셈블러 (assembler)어셈블리 프로그램 → 기계어 프로그램 번역
니모닉스 (mnemonics)어셈블리 명령어가 지정하는 연산을 가리키는 알파벳기호
'LOAD', 'ADD', 'STOR' 등

4️⃣ 기계어형식

📎 연산코드 (op code)

  • CPU가 수행할 연산을 지정해주는 비트
  • ex) bit = 3 ➡️ 지정될 수 있는 연산의 최대수 : 2³ = 8개

📎 오퍼랜드 (operand)

  • 연산에 사용될 데이터 or 그 데이터가 저장되어있는 기억장치주소 (memory address)
  • ex) bit = 5 ➡️ 주소지정할 수 있는 기억장소의 최대수 : 2⁵ = 32개

5️⃣ 프로그램코드와 데이터의 기억장치저장

  • 프로그램코드 (명령어)와 데이터 → 지정된 기억장소에 저장됨 ✅
  • 단어 (word) 단위로 저장
📍 단어 (word)
	- 각 기억장소에 저장되는 정보의 기본단위
	- CPU에 의해 한번에 처리될 수 있는 비트들의 그룹

📍 단어길이의 예
	- 8bit, 16bit, 32bit 등

📍 주소지정단위
	- 단어단위 or 바이트(byte)단위

3 시스템의 구성

1️⃣ 시스템버스 (system bus)

👾 시스템버스 : CPU와 시스템 내 다른요소 사이 → 정보 교환 통로

📎 주소버스 (address bus)

  • CPU → 외부로 발생하는 주소정보 전송
  • 신호선들의 집합
  • 주소 선 수 : CPU와 접속될 수 있는 최대기억장치용량 결정
📍 주소버스 예시
	- 주소버스 비트 수 = 16 bit
    - 최대기억장치용량 : 2¹⁶ = 64K개 (기억장소 주소지정 가능)

📎 데이터버스 (data bus)

  • CPU → 기억장치 or I/O장치 사이 ➡️ 데이터전송
  • 신호선들의 집합
  • 데이터 선 수 : CPU가 한번에 전송할 수 있는 비트수 결정
📍 데이터버스 예시
	- 데이터버스 폭 = 32 bit
    - 최대데이터전송 = 32 bit (한번에 전송할 수 있는 데이터크기)

📎 제어버스 (control bus)

  • CPU → 시스템 내 각종요소 ➡️ 동작제어
  • 신호선들의 집합
📍 제어버스 예시
	- 기억장치 읽기/쓰기 : (Memory R/W) 신호
    - I/O 읽기/쓰기 : (Input Output R/W) 신호
    - 인터럽트 (interrupt) 신호
    - 버스제어 : (Bus Control) 신호

2️⃣ CPU와 시스템버스 간 접속

시스템버스 종류방향성설명
주소버스단방향성CPU ➡️ 기억장치 • I/O장치
데이터버스, 제어버스양방향성읽기 • 쓰기 모두 지원

3️⃣ CPU와 기억장치 간 접속

필요한 버스 및 제어신호

  • ① 주소버스
  • ② 데이터버스
  • ③ 제어신호 (기억장치 읽기 + 기억장치 쓰기)

기억장치 쓰기동작

  • ① [CPU] 데이터를 저장할 기억장소주소 → 주소버스
  • ② [CPU] 저장할 데이터 → 데이터버스
  • 쓰기신호 활성화

①, ②, ③ 모두 동시에 활성화

기억장치 쓰기시간

  • [CPU] → 주소 + 데이터 보낸순간 ~ 저장완료 시간

기억장치 읽기동작

  • ① [CPU] 데이터를 저장할 기억장소주소 → 주소버스
  • 읽기신호 활성화
  • ③ 일정시간 경과 → 기억장치로부터 읽혀진 데이터 → 데이터버스
  • ④ [CPU] 데이터 → 버스인터페이스회로 → 읽음

①, ② 동시에 활성화 ➡️ ③ ➡️ ④

기억장치 읽기시간

  • 주소발생시간 ~ 데이터 → CPU 도착시간

4️⃣ CPU와 I/O장치 간 접속

📍 I/O 장치제어기
	- CPU로부터 명령을 받음 → 해당 I/O 장치 제어 + 데이터 이동 → 명령수행 전자회로
    
    ① 상태레지스터
    - I/O 장치의 현재 상태를 나타내는 비트들을 정리함
    - 준비상태비트, 데이터전송확인비트
    
    ② 데이터레지스터
    - CPU ↔︎ I/O 장치간 이동되는 데이터를 일시적으로 저장함

필요한 버스 및 제어신호

  • ① 주소버스
  • ② 데이터버스
  • ③ 제어신호 (I/O 장치 읽기 + I/O 장치 쓰기)

접속경로

  • CPU ↔︎ 시스템버스 ↔︎ I/O 장치 제어기 ↔︎ I/O 장치

키보드 & 프린터 I/O 장치 접속사례

키보드 데이터 입력과정

  • 키보드제어기
    • ① 키보드 key 누름
    • ② key에 대한 ASCII 코드 → 키보드제어기 데이터레지스터에 저장
    • ③ 상태레지스터 → In_RDY 비트 → 1로 setting
  • CPU
    • ① 키보드제어기 상태레지스터 In_RDY 비트 1인지 검사 (데이터 적재여부)
    • ② 데이터레지스터 값 읽음

프린터 데이터 출력과정

  • CPU
    • ① 프린터제어기 → 상태레지스터 → Out_RDY 비트 검사 (출력준비여부)
    • ② 프린터제어기 → 데이터레지스터에 데이터 저장
  • 프린터제어기
    • ① 데이터레지스터 → 데이터 프린터에 전송
    • ② 프린터 하드웨어 제어하며 인쇄동작 수행

5️⃣ CPU와 보조저장장치 간 접속

보조저장장치

  • 디스크, 플래시메모리, SSD, CD-ROM 등

보조저장장치 CPU 접속

  • 각 장치를 위한 제어기를 통해 접속함

보조저장장치 CPU 접속 차별성

  • 데이터전송단위
    • 키보드 : 바이트단위
    • 보조저장장치 : 블록(512 바이트) or 페이지(2K, 4K 바이트)
      → 제어기 내, 한블록 이상 임시저장 가능한 데이터기억장치 (버퍼) 필요

6️⃣ 컴퓨터시스템 전체구성

profile
🐱Sunyeon-Jeong, mallang developer🐰

1개의 댓글

comment-user-thumbnail
2023년 7월 2일

이전에 학교에서 공부했던 컴퓨터 시스템을 다시 한 번 정리할 수 있었어요. 복잡하고, 지루할 수도 있는 내용을 깔끔하게 잘 정리했네요..!!

답글 달기