컴퓨터구조 정리 (컴퓨터일반 교재)

thousand_yj·2023년 6월 18일
0

CS

목록 보기
1/5

Ch 03. 중앙처리장치

Lesson 12. 컴퓨터 시스템

컴퓨터 시스템의 구성요소

  1. 하드웨어 : 컴퓨터를 구성하고 있는 기계장치 자체
  2. 소프트웨어 : 하드웨어가 보낼의 기능을 발휘할 수 있도록 요구되는 모든 프로그램 체계
    • 시스템 소프트웨어, 응용 소프트웨어로 구분

중앙처리장치와 주변장치

  1. 중앙처리장치 (CPU) : 소프트웨어 명령의 실행이 이루어지는 컴퓨터의 부분. 외부에서 정보를 입력받고, 기억하고, 컴퓨터 프로그램의 명령어를 해석하여 연산하고, 외부로 출력하는 역할

    1. 제어 장치 (Control Unit) : 기억장치에 들어 있는 프로그램의 명령을 해독, 그 결과에 따라 장치를 제어하는 장치
    2. 연산 장치 (Arithmetic and Login Unit, ALU) : 제어장치의 제어를 받아 기억장치에 기억되어 있는 데이터로 실제 연산을 수행하는 장치
    3. 기억 장치 (Register) : CPU 내에서 컴퓨터의 작동에 필요한 데이터와 명령어를 저장하는 장치
  2. 주변 장치

    1. 입력 장치 (Input Unit) : 프로그램이나 데이터를 기억장치로 받아들이는 장치
    2. 출력 장치 (Output Unit) : 기억장치에서 처리된 데이털ㄹ 출력하는 장치

Lesson 13. 제어장치와 연산장치

제어장치

  • 정의 : 주기억장치에 기억된 프로그램의 명령을 하나씩 꺼내어 해독, 각 장치에 필요한 제어신호를 줌으로써 각 장치를 동작하게 한다
  • 기능
    • 입출력장치를 제어
    • 주기억장치에 자료를 기억시키고 읽어냄
    • 주기억장치와 산술·논리연산장치(ALU) 사이의 경로를 정함
    • 산술·논리연산장치의 실행을 지시

제어장치의 구성요소

  1. 명령 계수기 (PC, Program Counter) :다음에 실행할 명령의 주소를 기억하는 레지스터
  2. 주소 레지스터 (MAR, Memeory Address Register) : 주기억장치에서 선택될 주소를 기억하는 레지스터
  3. 메모리 버퍼 레지스터 (MBR, Memeory Buffer Register) : PC나 MAR이 지정하는 주기억장치의 내용을 임시로 기억하는 레지스터
    • MBR 레지스터에 배치된 명령은 IR로 전송되고, 데이터 내용은 AC 또는 IO(주소,버퍼)레지스터로 전송된다.
  4. 명령 레지스터 (IR, Instruction Register) : PC가 지정한 주소의 명령을 인출하여 명령 실행이 완료될 때까지 명령을 보관해두는 레지스터
  5. 명령 해독기 (Instruction Decoder) : 명령 레지스터에서 보내온 명령 코드를 해독하는 장치
  6. 인덱스 레지스터 (IX, Index Register) : 주소를 계산할 때 이용되는 레지스터로서 명령 어드레스를 변경하거나 인덱스를 이용할 때 변경자를 기억하고 있다. 명령 어드레스 / 인덱스를 변경할 때 사용
  7. 제어 신호 발생기 (Control Signal Generator) : 명령 해독기로부터 보내온 신호를 명령을 실행하는데 필요한 신호로 바꾸어 각 장치에 제어신호를 보내는 장치

명령 실행 순서

  1. PC에 기억된 주소를 MAR에 전송
  2. MBR에 있는 명령령을 IR가 인출
  3. IR에 기억된 명령 코드를 디코더에 보내 해독
  4. 명령 실행을 위해 제어신호기는 필요한 장치에 제어 신호를 발생
  5. 주소 처리기는 다음 실행할 명령의 주소를 계산하여 PC에 기억시킴
  6. 현재 명령이 끝나면 1번으로 돌아가서 다음 명령 수행

연산장치 (ALU)

  • 정의
    1. CPU의 일부. 컴퓨터 명령어 내에 있는 연산자들에 대해 연산과 논리동작을 담당
    2. 논리연산을 수행하는 논리 연산부, 사칙연산을 대수 법칙에 따라 연산하는 산술 연산부로 구성 & 보조하는 시프터
    3. ALU에 속해있는 레지스터 : 누산기(AC), 데이터 레지스터, 상태 레지스터, 부동소수점 레지스터, 범용 레지스터, 시프트 레지스터 등
  • 구성 요소
    1. 누산기 (Accumulator) : 연산 결과를 일시적으로 기억하는 레지스터. 보통 AC 내의 데이터와 주기억장치 상의 데이터를 연산하여 그 결과를 기억
    2. 데이터 레지스터 : 실행 대상(Operand)이 2개 필요한 경우에 주기억장치로부터 읽어 들인 데이터를 임시 보관하고 있다가 필요할 때에 제공
    3. 가산기 (Adder) : AC와 데이터 레지스터의 두 수를 가산하는 기능. 그 결과는 AC에 저장
    4. 상태 레지스터 (Status Register) : 연산의 결과가 양수 / 0 / 음수인지, 자리올림 / 오버플로 발생 등 연산에 관계되는 상태와 외부로부터의 인터럽트 신호의 유무를 나타냄
    5. 범용 레지스터 (General Register) : 필요에 따라 AC, MBR, MAR, IX 등 다목적으로 사용할 수 있는 레지스터를 명칭. 목적에 따라 자유로이 판단하여 이용할 수 있어 효과적으로 이용 가능한 장점. 각 레지스터는 Full-word(4 byte) 사용
    6. 부동소수점 레지스터 (Floating Register) : 자릿수가 큰 수나 매우 작은 수치를 취급하는 복잡한 계산에 이용되는(부동소수점 계산) 레지스터
    7. SFR (Special Function Register, 특수기능 레지스터) : 128byte로, PC/타이머, 시리얼 포트, 인터럽트 등 주변 기기의 상태정보나 제어 값을 갖는 레지스터

Lesson 14. 명령어

명령어의 구성

기계어 명령어의 구성은 Op-Code와 Operand로 나뉨

  1. 연산자부 (Operation Code) : 명령어(인스트럭션, 컴퓨터에게 일을 시키는 단위)의 형식, 연산자, 자료의 종류 등을 나타냄. Op-Code의 크기가 n비트일 때 최대 2^n개의 명령어를 사용할 수 있음
  2. 번지부 (Operand) : 실제 데이터에 대한 정보를 표시하는 부분. 처리할 자료가 기억된 주소 또는 주소를 구하는 데 필요한 정보나 특수한 경우는 자료 자신이 기억됨. 자료의 주소, 자료(Data), 레지스터 번호, 메모리의 주소 등을 표시

연산자의 기능

  1. 제어 기능

    프로그래머가 명령의 실행 순서를 변경시키는 것. 무조건 분기/조건 분기 기능

    • 무조건 분기(Branch) 명령 : Goto, Jump(JMP) 등
    • 조건 분기 명령 : IF 조건, SPA(Skip if AC is positive), SNA(Skip if AC is negative), SZA(Skip if AC is zero) 등
    • Call : 부프로그램 호출
    • Return : 부프로그램에서 메인 프로그램으로 복귀
  2. 연산 기능

    수치적인 산술 연산, 비수치적인 논리 연산이 있다.

    • 산술 연산 : ADD, SUB, MUL, DIV, 산술 Shift 등
    • 논리 연산 : NOT, AND, OR, XOR, 논리적 Shift, Rotate, Complement, Clear 등
  3. 전달 기능

    자료 전송 기능. CPU와 기억 장치 사이에서 정보 교환

    1. LOAD : 메모리 -> 레지스터로 자료 전송
    2. STORE : 레지스터에 기억된 자료 -> 메모리로 전송
    3. MOVE : 레지스터 <-> 레지스터 간 자료 전달
    4. PUSH : 스택에 자료 저장
    5. POP : 스택에서 자료 꺼내옴
  4. 입출력 기능

    CPU <-> 입출력장치 또는 메모리 <-> 입출력장치 사이에서 자료 전달

    1. INPUT : 입출력장치의 자료 -> 주기억장치로 입력
    2. OUTPUT : 주기억장치의 자료 -> 입출력장치로 출력

명령어의 형식

  1. 0-주소 명령어 형식
    [ Op-code ]
    : 싹 다 Op-Code (Operand부가 없음). 모든 연산은 스택에 있는 자료를 이용하여 연산, 그 결과는 다시 스택에 보존

  2. 1-주소 명령어 형식
    [ Op-code | 자료1 주소(Operand) ]
    : 모든 데이터 처리가 누산기(AC)에 의해 이루어지는 형식

  3. 2-주소 명령어 형식
    [ Op-code | 자료1 주소(Operand1/결과 주소) | 자료2 주소(Operand2) ]
    : 가장 흔히 사용되는 형식. 범용 레지스터를 가지고 있는 컴퓨터에서 연산할 자료를 자료1 주소와 자료2 주소에 나누어 저장하고, 연산된 결과는 자료1 주소에 기억되는 명령 형식으로 연산 후에 입력 자료 보존 X
    계산 결과를 시험할 필요가 있을 때 계산 결과가 기억장치에 기억될 뿐만 아니라 중앙처리장치에도 남아 있어서 CPU 내에서 직접 시험이 가능하여 수행시간 절약 가능

  4. 3-주소 명령어 형식
    [ Op-code | 자료1 주소(결과 주소) | 자료2 주소(Operand1) | 자료3 주소(Operand2) ]
    : 연산할 자료를 자료2 주소와 자료3 주소에 나누어 저장, 연산된 결과는 자료1 주소(결과 주소)에 기억하는 명령 형식. 연산 후에 입력 자료가 보존되는 장점.
    하나의 명령어를 수행하기 위해 최소한 4번 메모리에 접근해야 하므로 수행시간이 길어짐 (단점) & 프로그램의 길이가 짧아짐 (장점)

Lesson 15. 주소지정 방식

주소지정 방식

명령 실행을 위해 오퍼랜드(Operand)의 주소를 이용하여 해당 자료에 접근하는 방식
(오퍼랜드 Operand : 연산의 대상이 되는 수, 수를 저장한 곳의 주소)

  1. 묵시적 주소 (Implied Address) 지정 방식
    : 명령어의 형식상 이미 Operand가 묵시적으로 정해지는 주소 지정 방식
    ex. 0-주소 명령어 : Operand 없이 스택 사용
    ex. 1-주소 명령어 : 사용되는 하나의 Operand가 AC임을 알 수 있음

  2. 자료 자신 주소 (Immediate Address, 즉시, 즉치) 지정 방식
    : Operand에 표현된 자료 -> 메모리 주소(X) 실제의 자료(O)가 기억되는 형식
    자료를 기억장치에서 읽어야 할 필요가 없으므로 다른 주소 지정 방식보다는 신속하나 자료 길이에 제한을 받음

  3. 직접 주소 (Direct Address) 지정 방식
    : 오퍼랜드 내에 있는 주소 -> 실제 데이터의 주소
    Op-code를 제외하고 남은 비트들만 주소 비트(Operand)로 사용될 수 있기 때문에 직접 지정할 수 있는 기억장소의 수가 제한적

  4. 간접 주소 (Indirect Address) 지정 방식
    : Operand에 표현된 주소 -> 실제의 자료가 있는 주소를 찾을 수 있는 번지. 메모리 참조가 여러 번 발생 (최소 주기억장치를 두 번 이상 접근)
    명령어의 주소 필드 길이가 짧고 제한되어 있어도 긴 주소에 접근 가능한 방식

  5. 레지스터와 레지스터 간접 주소 지정 방식
    : 레지스터 방식 -> Operand가 레지스터에 저장되어 있는 것
    레지스터 간접 주소 지정 방식 -> 레지스터가 실제 Operand가 저장된 기억장치의 주소를 갖고 있는 방식

  6. 계산에 의한 주소 지정 방식
    : Operand에 표현된 주소와 특정 레지스터에 기억된 주소를 더하여 실제 자료 저장 주소를 구하는 방식

    • 상대 주소 지정 방식 : 주로 PC를 사용. 유효주소 = 명령어 주소부분의 내용 + PC의 내용
    • 인덱스된 주소 지정 방식 : 인덱스 레지스터의 내용을 명령어 주소 부분에 더해서 유효 주소 얻음. (인덱스 레지스터 : 특정한 CPU 레지스터나 레지스터 파일에 있는 레지스터 가능)
  • 컴퓨터의 주소 지정 방식에서 속도가 빠른 순서
  1. 즉시 주소 지정 방식 -> 2. 레지스터 주소 지정 -> 3. 직접 주소 지정 -> 4. 레지스터 간접 주소 지정 -> 5. 간접 주소 지정

주소 지정 방식 비교

Lesson 16. 명령실행과 제어

메이저 상태 (Major State)

현재 CPU가 무엇을 하고 있는가를 나타내는 상태. CPU가 무엇을 위해 주기억장치에 접근하느냐에 따라 Fetch, Indirect, Execute, Interrupt의 4가지 상태로 나뉜다

  1. FETCH (인출) Cycle: 주기억장치로부터 명령어를 꺼내어 디코딩하는 과정

  2. INDIRECT (간접) Cycle : 피연산 데이터가 있는 기억장치의 유효주소를 계산하는 과정. Fetch 단게에서 해석한 주소를 읽어온 후 그 주소가 간접 주소면 유효 주소를 계산하기 위해 다시 Indirect 단계를 수행

  3. EXECUTE (실행) Cycle : 연산자 코드에 따라 연산을 수행하는 과정.
    플래그 레지스터의 상태 변화를 검사하여 Interrupt 단계로 전이할 것인지 판단 & 플래그 레지스터의 변화가 없으면 Fetch 단계로 변천.
    이 단계의 명령은 크게 메모리 참조 명령, 레지스터 참조 명령, 입출력 명령으로 나뉨.

    1. ADD 명령 : 메모리 내용 + AC 내용. 최종 캐리는 플립플롭에 보관.
    2. LDA 명령 : LoaD Accumlator 명령. 메모리 내용 -> AC에 적재(load)
    3. STA 명령 : STore Accumlator 명령. AC 내용 -> 메모리로 저장(Store)
    4. BUN 명령 : Branch UNconditionaly 명령. 프로그램의 흐름을 지정된 유효번지로 이동. (분기 주소를 PC로 전송)
    5. ISZ 명령 : Increment and Skip if Zero 명령. 메모리의 값을 읽고 그 값을 1 증가시킨 후 음수에서 시작한 그 값이 0이면 현재 명령을 건너 뛰고 다음 명령으로 이동
  4. Interrup Cycle : 인터럽트 발생 시 복귀 주소를 먼저 저장, 제어 순서를 인터럽트 처리 프로그램의 첫번째 명령으로 옮김
    인터럽트 단계를 마친 후에는 Fetch 단계로 전이

Lesson 17. 마이크로 오퍼레이션

마이크로 오퍼레이션

  • 정의

    1. 마이크로 오퍼레이션 사이클 타임 : 한 개의 Micro Operation을 수행하는데 걸리는 시간. CPU 속도를 나타내는 척도
    2. 명령(Instruction)을 수행하기 위해 CPU 내의 레지스터와 플래그가 의미 있는 상태 변환을 하도록 하는 동작
    3. 한 개의 Clock 펄스 동안 실행되는 CPU의 기본 동작. 레지스터에 저장된 일련의 비트스트링(Bit String) 또는 데이터에 대해서 수행되는 기본적인 동작
  • 종류

    1. 전송 마이크로 동작 : 레지스터 -> 레지스터로 2진 정보 전송
    2. 산술 마이크로 동작 : 레지스터에 저장된 숫자/데이터에 대해 산술 동작 수행
    3. 시프트 마이크로 동작 : 하나의 레지스터 내 각 비트 이동
    4. 논리 마이크로 동작 : 데이터의 비트 스트링 사이에 이루어지는 2진 연산
  • 마이크로 오퍼레이션 사이클

  1. 동기 고정식
    : 마이크로 오퍼레이션 사이클 타임 중 수행시간이 가장 긴 것을 CPU의 Clock 주기로 정하는 방식. 마이크로 오퍼레이션 사이클 타임이 모두 같아 제어기 구현이 쉬움. 마이크로 오퍼레이션 사이클 타임이 현저한 차이가 날 때 CPU 시간 낭비 발생
  2. 동기 가변식
    : 마이크로 오퍼레이션 사이클 타임이 현저한 차이가 날 때 수행시간이 유사한 것끼리 모아 하나의 군을 만들고, 그 군에 대하여 사로 다른 마이크로 사이클 타임을 주는 방식. 서로 정수 배가 되어야 함(동기 맞추기 위해) 사이클 타임끼리 차이가 클 때 동기 고정식보다 시간 낭비를 줄일 수 있으나 제어기가 조금 복잡해 설계가 조금 어렵다.
  3. 비동기식
    : 모든 마이크로 오퍼레이션에 대해 서로 다른 사이클 정의. CPU의 시간 낭비X BUT 제어기가 복잡해서 실제로 거의 사용X
  • 마이크로 프로세서
    하나의 칩에 컴퓨터의 기본 처리 기능 (제어 기능, 연산 기능 등)을 저장한 일종의 처리 장치
  1. CISC (Complex Instruction Set Computer)
    : 구조가 복잡. 생산단가 비쌈. 전력소모 큼. 가변길이 명령어 형식. 레지스터 수가 적어 수행속도 느림
    많은 명령어를 프로그래머에게 제공해주므로 프로그래밍 작업이 쉬움

  2. RISC (Reduce Instruction Set Computer)
    : 전력소모 적음. 고정길이 명령어 형식. CISC 구조보다 처리속도 빠름. 레지스터가 수가 많음
    필수적인 명령어들만 제공 -> CISC보다 생산단가 낮고 덜 복잡
    복잡한 연산을 수행하기 위해서는 명령어를 반복수행해야되므로 프로그래밍 작업이 복잡한 단점 O

  • 마이크로 프로그램
    : 별도의 번역과 RAM으로의 접근이 필요하지 않기 때문에 일반적인 SW와 구분하여 펌웨어(Firmware) 라고도 한다.
    ( 펌웨어 : HW + SW. 전원이 공급되면 OS 없이 자동 실행 )
    어떤 명령을 수행할 수 있도록 된 일련의 제어 워드가 특수한 기억장치 속에 저장된 것. 각종 제어 신호 발생.
    마이크로 명령으로 형성. 마이크로프로그램이 저장되는 제어 메모리는 ROM이 주로 사용.

Lesson 18. 기억장치의 개념

기억장치

  • 정의
    : 내부 기억장치 / 외부 기억장치로 구분
    기억장치의 종류 -> 집적 회로(IC)를 이용한 반도체 기억장치, 자기 기록 방식을 응용한 자기 기억장치, 광디스크를 이용한 광기억장치 등

  • 특징에 따른 분류

    1. 접근 방식

      • 순차 접근 기억 장치 (SASD, Sequential Access Storage Device) : 데이터에 접근할 때 순차처리만 가능한 장치. ex. 자기 테이프 장치
      • 직접 접근 기억 장치 (DASD, Direct Access Storage Device) : 데이터에 접근할 때 순차처리, 비순차(직접) 처리가 가능한 장치. ex. 자기 디스크, 자기 드럼, 광디스크, 데이터 셀 등
    2. 전원 공급 유무

      • 휘발성 : 전원공급X -> 기억내용 전부 잃어버림
      • 비휘발성 : 전원공급여부에 관계X 계속 내용 기억
    3. 자료 보존 유무

      • 파괴성 : 데이터를 읽고 지워버림 ex. 자기코어 (Magnetic Core)
      • 비파괴성 : 데이터를 읽는다고 기억된 내용 지우지 X ex. 대부분의 기억장치
  • 기억장치 계층구조

  • 캐시 기억장치 : 주기억장치와 CPU 사이에서 데이터와 명령어를 일시적으로 저장하는 소형의 고속 기억 장치

기억장치의 위치에 따른 분류

  1. 주기억장치 (Main Memory)

    • CPU가 처리할 데이터, 처리할 프로그램, 처리된 데이터 등 기억
    • 모든 프로그램과 데이터가 CPU에 의해 실행, 참조되기 위해서는 먼저 주기억장치에 적재되어야 함!
    • 실행 중 필요X 프로그램, 데이터는 보조기억장치에 저장, 실행 / 참조를 위해서는 주기억장치로 옮겨져야 함
    • 반도체 메모리(RAM, ROM)이 해당
  2. 보조기억장치 (Auxiliary Memory)

    • 주기억장치를 보조하는 기억장치
    • 데이터 / 프로그램을 저장했다가 필요시에 주기억장치로 보내 처리할 수 있게 함

반도체 기억장치

  1. RAM (Random Access Memory)
    : 마이크로프로세서에 의해 데이터를 기록, 판독할 수 있는 기억장치
    비파괴성, 휘발성 기억소자

    1. 정적 RAM (Static RAM, SRAM)
      : 소용량 기억장치(Cache Memory)
      하나의 2진 정보를 저장할 수 있는 플립플롭들로 구성
      전원O 동안 저장되어 있는 정보 유지
      사용쉬움, 읽기/쓰기 시간이 짧음
    2. 동적 RAM (Dynamic RAM, DRAM)
      : 주기억장치로 널리 사용되고 있는 대규모 집적 회로(LSI)
      시간이 지나면 축적된 전하가 감소, 전원O이어도 저장된 자료가 자연히 소멸되는 단점. 일정 시간마다 리프레시 필요
  2. ROM (Read Only Memory)
    : 기억된 정보를 읽기만 가능한 기억장치. 제어 프로그램을 기억시키는 메모리로 사용.
    비파과성, 비휘발성 기억 소자

    • 종류
      1. Mask ROM : 제조단계에서 메모리 적으면 수정변경X
      2. PROM (Programmable ROM) : 사용자가 원하는 내용을 한번은 저장O
      3. EPROM (Erasable ROM) : PROM을 개선. 수시로 원하는 경우 자외선을 이용하여 내용 수정 가능
      4. EEPROM (Electronic Erasable ROM) : 자외선 대신 전기적인 방식으로 내용 지울 수 있는 ROM. 한번에 1byte씩만 지울 수 있어 플래시 메모리와 비교하면 매우 느리며 재기록 횟수에 제한 O
  3. 집적회로의 종류

플래시 메모리 (Flash Memory)

  • 정의
    : 전기적으로 데이터를 수정(지우고 다시 쓰기)할 수 있는 비휘발성 기억장치. EEPROM과 다르게 여러 Page로 구성된 블록 안에서 데이터 수정 가능.
    블록 내에서 특정 단위로 읽고 쓰기 O, 지울 때는 블록 단위.
    덮어쓸 수 없어 해당 블록을 지우기 전까지는 자료 수정X
    ex. 디지털 카메라, MP3, 휴대폰, USB 드라이브 등 휴대용 기기에서 대용량 정보를 저장할 때 사용
  • 종류

바이오스 (Basic Input Output System)

  • 컴퓨터의 가장 기본적인 기능을 처리해주는 프로그램들의 집합. OS의 가장 하위에 있는 부분. IBM-PC 호환기종에서는 ROM에 들어있기 때문에 롬 바이오스라고도 함.
  • H/W와 S/W 사이를 중계하는 SW. 컴퓨터를 처음 켤때부터 전원을 끌때까지 모든 컴퓨터의 흐름을 제어하는 프로그램.
  • 전원이 들어올 때 시스템 초기화, 시스템의 이상 유무 점검, OS 적재 과정 담당

여기부터 간단하게 메모 -> 나중에 내용 추가할 것!!

Lesson 19. 특수기억장치

캐시 메모리 (Cache Memory)

  • 정의
    : 주기억장치의 느린 속도 보완을 위해 CPU <-> 주기억장치 사이에 위치한 소용량 고속 메모리

  • 특징
    : 최근/자주 사용되는 내용 저장
    가장 빠르고 융통성 있는 캐시 구조 -> 연관기억장치를 사용하는 것
    캐시 적중률(Hit Ratio) 로 성능 측정

  • 사상 방식 (Mapping scheme)

    • 주기억장치보다 크기가 훨씬 작아 캐시의 슬롯이 여러 개의 주기억장치 블록들에 의해 공유.
      --> 어떤 주기억장치 블록들이 어느 캐시 슬롯을 공유할 것인지 결정해주는 방법 필요!!

    • 직접 사상 direct mapping
      : 주기억장치의 블록들이 지정된 어느 한 캐시 슬롯으로만 사상 가능
      구조 간단, 구현 비용 적음
      번갈아서 계속 읽어올 경우 캐시에서 반복 교체되어 적중률이 낮아질 수 있음
      태그비트 수 = 주기억장치 블록의 비트 수 - 캐시 슬롯 비트 수

    • 완전-연관 사상 fully-associative mapping
      : 연관기억장치 사용. 주기억장치의 블록들이 캐시의 어떤 슬롯으로든 적재O도록 허용.
      하드웨어 구조가 복잡해져 실제로는 거의 사용X
      태그비트 수 = 주기억장치 블록의 비트 수

    • 세트-연관 사상 set-associative mapping
      : 직접 사상 방식과 완전-연관 사상 방식의 장점만을 취함
      태그비트 수 = 주기억장치 블록의 비트 수 - 캐시 세트의 비트 추

캐시의 쓰기 방식

  • Write Through
    : 프로세서가 메모리에 쓰기 요청을 할 때마다 캐시의 내용, 메인 메모리의 내용을 같이 바꾸는 방식

  • Write Back
    : 캐시에만 쓰기 작업, 변경 사실을 확인할 수 있는 표시를 함. 캐시에서 해당 블록의 내용이 제거될 때 그 블록을 메인 메모리에 복사함으로써 메인 메모리와 캐시의 내용을 동일하게 유지하는 방식

캐시 일관성 유지 방식

  1. 소프트웨어 방식
    : 컴파일러, OS를 이용

  2. 하드웨어 방식

  • 디렉터리 프로토콜
  • 스누핑 프로토콜
  1. MESI 프로토콜
    : SMP에서 사용하는 스누핑 프로토콜

캐시의 레벨

  • 정의 : 낮은 수일수록 CPU에 근접하고 대부분의 시스템은 2가지 캐시 레벨을 갖음. 레벨 단위로 분리함으로써 명령어와 데이터에 동시 액세스 가능
  • L1 캐시 (명령어 캐시) : CPU 칩 자체에 위치 & 동일 속도
  • L2 캐시 (데이터 캐시) : 별도의 칩, 확장 카드 상에 구현. CPU 속도로 실행, 일반적으로 L1 캐시보다 용량 조금 더 크고 속도 느림

연관 기억 장치

  • 정의 : 자료를 찾을 때 주소에 의한 접근을 하지 않고 기억된 내용의 일부를 이용하여 병렬로 접근. CAM (Content Addressable Memory)라고도 함

복수 모듈 기억장치

  • 정의 : 독자적으로 데이터를 저장할 ㅅ ㅜ있는 기억장치 모듈을 여러 개 가진 기억장치

Lesson 20. 보조기억장치

  1. 자기 디스크
  2. SSD (Solid State Drive)
  3. RAID

Lesson 21. DMA 및 채널

데이터 입출력 제어 방식

  1. 직접 제어 방식

  2. Polling에 의한 입출력 방식 (동기식 제어 방식) : CPU가 입출력 동작에 계속 관여하며 수행하는 동안 다른 작업 하지 못함

  3. 인터럽트에 의한 입출력 방식 (비동기식 제어 방식) : CPU가 입출력 동작을 입출력 장치 제어기와 입출력 장치 사이에서 진행되도록 하는 방식. 입출력동안 CPU가 다른 작업 가능

  4. 간접 제어 방식

    1. DMA 제어기에 의한 입출력
    2. 채널 제어기에 의한 입출력

DMA (Direct Memory Access) 제어기

채널 제어기

Lesson 22. 인터럽트

인터럽트

  • 정의 : 컴퓨터 시스템에 예기치 않은 일이 발생했을 때 그것을 CPU에게 알려주는 것. 실행되는 프로그램에 의해서가 아니라 그 밖의 다른 것에 의해 발생되는 제어 흐름의 변경
  • 처리과정 : 인터럽트 발생장치로부터 인터럽트 요청이 있으면 현재 수행 중인 프로그램 상태를 안전한 기억 장소에 저장 -> 인터럽트 원인 분석, 조치 취함 -> 보존된 프로그램 상태를 복구시켜 중단 시점부터 다시 수행
  • 문맥 교환 : 인터럽트 발생 시 운영체제는 인터럽트를 당한 실행중인 프로그램의 상태를 저장한 다음 제어권을 인터럽트 서비스 루틴으로 넘겨주는 작업

Lesson 23. 입출력 인터페이스

Lesson 24. 병렬 컴퓨터 구조

profile
함께 일하고 싶은 개발자가 되기 위해 노력합니다. 코딩테스트 관련 공부 및 이야기는 티스토리에도 업로드되어 있습니다.

0개의 댓글