본문 바로가기

CS/OS

Computer System Overview 1

Basic Elements

CPU에서 실행되는 모든 명령어는 memory access가 필요하다.

 

  • 비휘발성 메모리: 전원이 꺼져도 메모리가 유지된다.
    • ex) flash memory, 하드디스크 (보조기억장치) ROM
  • 휘발성 메모리: 전원이 꺼지면 메모리가 날아간다.
    • ex) SRAM, DRAM

 

Processor Register

ALU (Arithmetic/logic unit)

수학적 계산을 수행하고 논리적 비교한다.

 

CPU (Central processing unit)

ALU, 제어 장치 및 레지스터를 사용하여 명령 세트를 수행하는 하드웨어 구성 요소

 

 

Evolution of processors

GPU (Graphical Processing Units)

SIMD (Single-Instruction Multiple Data) 기술을 사용하여 데이터 배열에 대한 효율적인 계산 제공

 

SoC (System on Chip)

CPU와 캐시 외에도 DSP, GPU, 코덱 및 메인 메모리와 같은 구성 요소가 동일한 칩에 있습니다.

 

 

Memory

SRAM (Static RAM)

  • 셀은 고속 (~ 4 nsec access time), 리프레시 필요 없음
  • 낮은 밀도 (6 transistors / bit), 비쌈

셀당 밀도는 낮지 만 (칩당 트랜지스터 1 개) 공간에 더 많은 셀을 넣을 수 있음

 

DRAM (Dynamic RAM)

  • 고밀도의 단순 transistor/ capacitor 쌍 (1 transistor / bit)
  •  
  • SRAM보다 느림 (~ 60 nsec access time) 하지만 대용량

밀도가 높지만 (칩당 6 개의 트랜지스터) 공간에 더 적은 수의 셀을 넣을 수 있음

 

 

Hard Disk drive

일종의 자기 저장 매체

  • 비 휘발성 장치
    • 컴퓨터를 종료해도 데이터 유지
  • 주로 HDD는 컴퓨터 데이터 저장에 널리 사용됩니다.
    • read / write 는 5 ~ 35ms 소요
  • ex) 플로피 디스크, 자기 테이프, 신용 카드의 자기 띠

 

 

Flash memory

  • read ~20us (마이크로 세컨드)
  • write ~200us
    • read, write에 속도차이가 있다.
  • erase ~2ms
  • 휘발성이지만 floating gate를 둬서 비휘발성

 

 

비교

Time : Processor Cycle > Cache Access (SRAM) > Memory Access (DRAM) > Disk Access (Hard Disk)

 

 

 

Processor Registers

  • 주기억장치 main memory access의 참조를 최소화해서 최적화를 목적

 

  • General purpose registers 범용 레지스터
    • 프로그래머가 레지스터 사용을 최적화하여 메인 메모리 참조를 최소화 할 수 있도록한다.
    • 중간 결과 또는 데이터 값 유지
    • 레지스터 파일
      • 프로세서의 모든 범용 레지스터 포함
      • 모든 x86 제품 CPU에는 최소 8개의 범용 레지스터가 있다.
  • Special-purpose registers 특수 레지스터
    • Program Counter (PC)
      • 다음에 실행할 명령어의 주소를 저장
    • Instruction Register (IR)
      • 가장 최근에 fetch된 (가져온) 명령어를 저장
    • Program State Word (PSW)
      • 상태 정보 (Privilege states 권한 상태 - 사용자, 커널 , Condition code 상태 코드)
    • Memory Address Register (MAR)
      • 메모리에서 가져올 현재 명령어의 주소를 보유
    • Memory Buffer Register (MBR)
      • MAR에있는 주소에서 찾은 내용을 보관

 

 

 

Instruction Set Architecture

Abstract Data Type (ADT)

  • 특정 구현과 독립적으로 정확하게 지정된 일련의 데이터 값 (상태) 및 관련 작업
  • 자료 상태와들과 그 자료들에 대한 연산들을 명기 한 것임
  • ex) stack

 

 

Instruction Execution

Program

  • Program은 instruction 과 data 들의 집합으로 구성되어 있다.

 

Instruction Format (명령어 구조)

컴퓨터마다 지정하는 것이 다르다.

op code 의 길이, operands 의 갯수, operands 의 길이

 

Instruction Fetch

  • 프로세서는 메모리에서 instruction 을 가져온다 (fetch) .
    • 프로그램 카운터 (PC)는 다음에 가져올 명령어의 주소를 저장한다.
    • 가져온 명령어는 명령어 레지스터 (IR) 에 로드된다.

 

 

 

Instruction Decode and Execute

  • 프로세서가 명령어를 해석하고 요구된 action을 실행한다.
    • 데이터 처리
    • 제어
    • 프로세서-메모리
    • 프로세서-I/O

 

 

Instruction Cycle

사진

  1. PC 에 있던 주소를 MAR 에 현재 가져올 주소로 저장한다.
  2. MAR의 주소를 가지고 메모리에 접근하여 메모리에 있던 내용을 MBR에 저장한다.
  3. MBR에 저장된 명령어를 IR에 저장한다. (fetch)
  4. 명령어를 해석한다.
  5. 명령어를 실행한다.
  6. 다른 피연산자가 필요하다면 MAR과 MBR을 사용하여 실행한다.
  7. 결과를 저장한다.

 

Programmable Interrupt Controller

줄여서 'PIC' 라고 한다

PIC 란?

인터럽트를 관리하는 제어기

- I/O 디바이스들이 가지고 있는 (unique or shared) Interrupt Request (IRQ) 라인들을 관리하는 제어기라고 보면된다.

  (IRQ: 인터럽트를 보내는 신호 signal)

- IRQ들은 특별한 하드웨어에서 인터럽트 벡터를 CPU로 보낸다.

특별한 하드웨어 예시를 보면..

타이머, 키보드, 마우스, 플로피 드라이브, 프린터, modern com2..? 등등에서 인터럽트를 발생시켜 PIC가 이를 CPU로 보낸다.

 

PIC는 디바이스의 인터럽트 리퀘스트를 벡터 형태로 CPU로 보낸다.

보내고 CPU에서 ACK을 기다린다.

 

PIC 또는 CPU에서 인터럽트를 "mask" (비활성화) 할 수 있다.

(아마 PIC가 외부 인터럽트, CPU가 내부 인터럽트..?)

인터럽트는 우선순위를 가질수 있고, PIC는 여러 요청의 우선순위를 정해야한다.

'CS > OS' 카테고리의 다른 글

Thread  (2) 2021.05.17
Process Scheduling 2 (미완)  (5) 2021.05.10
Process Scheduling 1  (2) 2021.05.09
Operating System Overview  (4) 2021.04.12
Computer System Overview 2 (미완)  (0) 2021.03.11