본문 바로가기
ELECTRONIC ELECTRICAL ENG/컴퓨터 일반

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

by Hey Nary 2022. 6. 5.
728x90
반응형

 

1.1 컴퓨터의 기본 구조

  1. 컴퓨터의 구성 : 하드웨어 + 소프트웨어
    1. 하드웨어 : 컴퓨터 정보들의 전송 통로를 제공해 주고 , 그 정보에 대한 처리가 실제 일어나게 해주는 물리적인 실체들
    2. 소프트웨어 : 정보들이 이동하는 방향과 정보 처리의 종류를 지정해주고 , 그러한 동작들이 일어나는 시간을 지정해주는 명령들의 집합
      1.  시스템 소프트웨어 (system software): OS(WinXP, Unix, Linux) 등
      2. 응용 소프트웨어 (application software): 워드프로세서 , 웹 브라우저 , MS Excel 등
  2. 컴퓨터의 기능 : 프로그램 코드를 정해진 순서대로 실행하는 것 - 필요한 데이터를 읽어서 (read), 처리 (processing) 하고 , 저장 (store) 한다
  3. 컴퓨터의 주요 구성요소 : 
    1. 중앙처리장치 (Central Processing Unit  = 프로세서, Processor) : 프로그램 실행 과 데이터 처리 라는 중추적인 기능의 수행을 담당하는 요소
    2. 기억장치
      1. 주기억장치 (main memory) : CPU 가까이 위치하며 , 반도체 기억장치 칩들로 구성
        - 고속 액세스
        - 가격이 높고 면적을 많이 차지 -> 저장 용량의 한계
        - 영구 저장 능력이 없기 때문에 , 일시적 저장장치로만 사용
      2.   보조저장장치 (auxiliary storage device) : 2 차 기억장치 (secondary memory)
        - 저장 밀도가 높고 , 비트 당 가격이 낮음
        - 읽기 쓰기 속도가 느림
        - 영구 저장 능력을 가진 저장장치 : 하드 디스크 (hard disk), 플래시 메모리 (flash memory), CD ROM 등
    3. 입출력장치 (I/O Device) : 사용자와 컴퓨터간의 대화를 위한 입력 및 출력장치, 유무선 통신 네트워크 인터페이스 장치

 

1.2 정보의 표현과 저장

  1. 컴퓨터 정보 : 2 진수 비트들로 표현된 프로그램 코드와 데이터
  2. 프로그램 코드
    1. 기계어 (machine language = machine code) : 컴퓨터 하드웨어 부품들이 이해할 수 있는 언어
      - 2 진 비트들로 구성
    2. 어셈블리 언어 (assembly language) : 고급 언어와 기계어 사이의 중간 언어
      1. 어셈블러 (assembler) 를 이용하여 어셈믈리 어어를 기계어로 번역
      2. 니모닉스 (mnemonics) : 어셈블리 명령어가 지정하는 연산을 가리키는 알파벳 기호 - 예) LOAD’, ‘ADD’, ‘STOR’
    3. 고급 언어 (high level language) : 영문자와 숫자로 구성되어 사람이 이해하기 쉬운 언어
      1. 컴파일러 (compiler) 를 이용하여 고급 언어를 기계어로 변역
        예. C, C++, PASCAL, FORTRAN, COBOL 등
  3. 프로그램 언어의 번역 과정 : 예. Z = X + Y
    1. 니모닉스 
      1. LOAD A, X : 기억장치 X번지의 내용을 읽어서, 레지스터 A에 적재(load)
      2. ADD A, Y : 기억장치 Y번지 내용을 읽어서, 레지스터 A에 적재된 값과 더하고, 결과를 다시 A에 적재
      3. STOR Z, A : 그 값을 기억장치 Z 번지에 저장(store)
  4. 기계명령어의 형식
    1. 연산 코드 (op code) : CPU 가 수행할 연산을 지정해 주는 비트들
      예.비트 수 = 3 이라면 , 지정될 수 있는 연산의 최대 수 2^3 = 8 개
    2. 오퍼랜드 (operand) : 연산에 사용될 데이터 혹은 그것이 저장되어 있는 기억장치 주소 (memory address)
      예. 비트 수 = 5 라면 , 주소지정 (addressing) 할 수 있는 기억 장소의 최대 수 2 5 = 32 개
  5. 프로그램 코드와 데이터의 기억장치 저장 : 단어(word) 단위로 저장
    단어 : 각 기억 장소에 저장되는 정보의 기본 단위, CPU에 의해 한 번에 처리될 수 있는 비트들의 그룹
    1. 주소지정 단위: 단어 단위 혹은 바이트 단위


1.3 시스템의 구성

(1) CPU와 기억장치의 접속

- 시스템 버스 : CPU 와 시스템 내의 다른 요소들 사이에 정보를 교환하는 통로

  1. 주소 버스 (address bus) : CPU 가 외부로 발생하는 주소 정보를 전송하는 신호 선들의 집합
    - 주소 선의 수는 CPU 와 접속될 수 있는 최대 기억장치 용량을 결정
    - 예. 주소 버스의 비트 수 = 16 비트라면 최대 2^16 = 64K 개의 기억 장소들의 주소지정 가능
    - 단방향성(unidirectional) : 주소는 CPU로부터 기억장치 혹은 I/O 장치들로 보내지는 정보
  2. 데이터 버스 (data bus) : CPU 가 기억장치 혹은 I/O 장치와의 사이에 데이터를 전송하기 위한 신호 선들의 집합
    - 데이터 선의 수는 CPU 가 한 번에 전송할 수 있는 비트 수를 결정
    - 예. 데이터 버스 폭 = 32 비트라면 CPU 와 기억장치 간의 데이터 전송은 한 번에 32 비트씩 가능
    - 양방향성(bidirectional) : 읽기와 쓰기 동작을 모두 지원
  3. 제어 버스 (control bus): CPU 가 시스템 내의 각종 요소들의 동작을 제어하기 위한 신호 선들의 집합
    - 동작제어의 예.
    o 기억장치 읽기/쓰기 (Memory Read/Write) 신호
    o I/O 읽기/쓰기 (I/O Read/Write) 신호
    o 인터럽트 (Interrupt) 신호
    o 버스 제어 (Bus Control) 신호
    - 양방향성(bidirectional) : 읽기와 쓰기 동작을 모두 지원
    1. 기억장치 읽기 : CPU 가 기억장치 주소를 주소 버스를 통하여 보내는 동시에 읽기 신호를 활성화
      - 일정 지연 시간이 경과한 후에 기억장치로부터 읽혀진 데이터가 데이터 버스 상에 실리고 , CPU 는 그 데이터를 버스 인터페이스 회로를 통하여 읽음
      - 기억장치 읽기 시간 (memory read time) : 주소를 발생한 시간부터 기억 장치의 데이터가 CPU 에 도착할 때까지의 시간
    2. 기억장치 쓰기 : CPU 가 데이터를 저장할 기억 장소의 주소와 저장할 데이터를 각각 주소 버스와 데이터 버스를 통하여 보내는 동시에 쓰기 신호를 활성화
      - 기억장치 쓰기 시간 (memory write time) : CPU 가 주소와 데이터를 보낸 순간부터 저장이 완료될 때까지의 시간

(2) CPU와 I/O 장치의 접속

  1. 시스템 버스
    1. 주소 버스
    2. 데이터 버스
    3. 제어 신호 : I/O 읽기 신호 , I/O 쓰기 신호
  2. 접속 경로 : CPU - 시스템 버스 - I/O 장치 제어기 - I/O 장치
  3. I/O 장치 제어기 (I/O device controller) : CPU 로부터 I/O 명령을 받아서 , 해당 I/O 장치를 제어하고 , 데이터를 이동함으로써 명령을 수행하는 전자회로 장치 
    1. 상태 레지스터 : I/O 장치의 현재 상태를 나타내는 비트들을 저장한 레지스터
      예. 준비 상태 (RDY) 비트 , 데이터 전송확인 (ACK) 비트 등
    2. 데이터 레지스터 : CPU 와 I/O 장치 간에 이동되는 데이터를 일시적으로 저장하는 레지스터
    3. 예1 : 키보드 제어기 (입력)
      1. 키보드의 어떤 한 키(key)를 누르면
      2. 그 키에 대응되는 ASCII 코드가 키보드 제어기의 데이터 레지스터에 저장, 동시에 상태 레지스터의 In_RDY 비트가 1로 세트
      3. CPU가 키보드 제어기로부터 상태 레지스터의 내용을 읽어서 In_RDY 비트가 세트 되었는지 검사 (In_RDY 비트는 데이터 레지스터에 외부로부터 데이터가 적재되었는지를 표시)
      4. 만약 세트 되지 않았으면, 3번을 반복하며 대기. 만약 세트 되었다면, 데이터 레지스터의 내용을 읽음
    4. 예2 : 프린터 제어기 (출력)
      1. CPU가 프린터 제어기의 상태 레지스터 내용을 읽어서
      2. Out_RDY 비트 검사 (Out_RDY 비트 : 프린터가 출력할 준비가 되었는지를 표시
      3. 만약 세트 되지 않았으면 , 1/2 번을 반복하며 대기. 만약 세트 되었다면 , 프린트할 데이터를 프린터 제어기의 데이터 레지스터에 저장
      4. 프린터 제어기가 데이터 레지스터의 내용을 프린터로 보내고
      5. 프린터의 하드웨어를 제어하면서 인쇄 동작 수행

예1 : 키보드 제어기

 

(3) CPU와 보조저장장치의 접속 : 디스크 , 플래시 메모리 , CD ROM 등
- 각 장치를 위한 제어기를 통하여 키보드나 프린터와 유사한 방법으로 접속
- 차이점 : 데이터 전송 단위

  I/O 장치 - 키보드 , 프린터 : 바이트 (8 비트) 단위로 전송

 보조저장장치 - 블록 (512/1024/4096 바이트 ) 단위로 전송

- 제어기 내에 한 블록 이상을 임시 저장할 수 있는 데이터 버퍼 필요

- 트랙 버퍼 (track buffer): 하드 디스크상의 한 트랙 내용을 모두 저장할 수 있는 디스크 제어기 내의 데이터 버퍼

 

1.4 컴퓨터 시스템의 전체 구성

- 컴퓨터의 기본적인 기능들

  • 프로그램 실행 : CPU 가 주기억장치로부터 프로그램 코드를 읽어서 실행
  • 데이터 저장 : 프로그램 실행 결과로서 얻어진 데이터를 주기억장치에 저장
  • 데이터 이동 : 디스크 혹은 CD ROM 에 저장되어 있는 프로그램과 데이터 블록을 기억장치로 이동
  • 데이터 입력 출력 : 사용자가 키보드를 통하여 보내는 명령이나 데이터를 읽어 들인다 . 또한 CPU 가 처리한 결과값이 기억장치의 내용을 프린터 혹은 모니터 로 출력
  • 제어 : 프로그램이 순서대로 실행되도록 또는 필요에 따라 실행 순서를 변경하도록 조정하며 , 각종 제어 신호들을 발생

 

728x90
반응형

댓글