정보관리 기술사 공부
주요 토픽 정리 271~300 [CAOS]
장술사
2023. 7. 27. 08:24
반응형
토픽 | 키워드 | 두음신공 | 주요 내용 |
파레토 |
8:2, 롱테일 버칙
|
(정의) 전체 결과의 80%가 전체 원인의 20%에서 일어나는 법칙
(역 파레토 법칙인, Long-Tail 법칙) 선택과 집중의 마케팅 전략에 반대되는 80%의 소외 받던 제품에서 많은 수익을 올리기 시작, 즉 마케팅에서 무시되었던 80%의 반란 |
|
길더 | 광12개월3배 |
(정의) 광섬유의 대역폭은 12개월마다 3배씩 증가한다는 법칙
|
|
브룩스 | 인력 투입 |
(정의) 지연되는 개발 프로젝트에 인력을 추가 투입하는 것은 개발 일정을 더 지연시킨다는 법칙, N*(N-1)/2
(원인) 추가 인력에 대한 교육, 커뮤니케이션 비용 및 오류 증가, 업무 오류 증가 |
|
폰노이만, 하버드 아키텍처
|
(폰노이만) 하나의 메모리
(하버드) 서로 다른 메모리(명령어 Memory, 데이터 Memory) (Strored-Program computer) 프로그램 연산(Program instruction)이 전자적인 장치인 메모리에 존재 |
||
컴퓨터 구성요소 |
CU, ALU, MEM, I/O
|
. CU(Control Unit) : 명령어 해독/지시, ALU(Arithmetic Logic Unit) : 연산/처리, Memory : 저장, I/O
|
|
CPU 구조 |
ALU, CU, Reg, 내부 버스
|
(동작) 명령어 인출(Fetch), 명령어 해독(Decode), (필요 시) 데이터 인출/처리/쓰기
(구성요소) ALU(AC, 산술(+-*/), 논리(AND,OR) 연산), CU, 레지스터(PC, IR, MAR, MBR, SP), 내부 버스 |
|
버스 구조 | 주데제 |
(시스템 버스 정의) CPU, I/O장치, 기억장치들을 상호 연결해주는 중심 통로
(종류) 주소 버스(단방향), 데이터 버스, 제어 버스 (버스 중재기, Bus Arbiter) . 한 개의 시스템 버스에 접속된 여러 버스마스터에 의한 버스 경합 발생 시 이를 조정 해주는 장치 . 버스요청(BR), 버스승인(BG), 버스사용 중지(BB) |
|
CU(Contol Unit) | 명령/제어 신호 생성 | 해주기버해 |
(정의) 명령어의 실행을 위해 프로그램에 따라 명령과 제어 신호를 생성하는 장치
(구현 방법) . Hardwired Control : 하드웨어적, 고정 배선, 조합논리회로 사용, RISC . Micro Programmed Control : 소프트웨어적,논리회로(디코더) 사용하여 구현, CISC |
명령어 | 인출,간접,실행,인터럽트 | 전처제, 인간실인, 묵즉직간레변 |
(정의) 사용자가 원하는 연산, 오퍼랜드, 처리 순서를 프로세서에게 지시하는 명령문
(종류) 데이터 전송(LDA, STA), 데이터 처리(ADD, AND), 프로그램 제어(BUN, Branch Unconditionally) (사이클: 인출, 간접, 실행, 인터럽트) . Fetch(인출) 사이클 : 기억장치에 저장된 명령어를 CPU로 가져오는 단계 . Indirect(간접) 사이클 : 명령어의 Operand가 간접 주소일 경우 실행 . Excute(실행) 사이클 : 인출된 명령어를 해독하고 직접 명령을 실행하는 사이클 (명령어 주소 지정방식 : 연산코드 + Operands) . 묵시적 주소지정, 즉시 주소지정(오퍼랜드=데이터), 직접 주소지정, 간접 주소지정, 레지스터 주소지정, 변위 주소지정(레지스터+오퍼랜드) |
CISC,RISC,EISC
|
(CISC) 복잡한 명령처리를 하나의 명령어로 처리(다수 OP-Code), 가변길이, 디코딩 빠름, 확장성, Micro programmed, CPI>1
(RISC) 단순한 명령어 조합으로 처리(1개 OP-Code), 고정길이(32bit, 64bit), 파이프라인 적용 용이, 간결성, Hardwired, CPI 1에 가까움 (EISC) 확장 명령어(확장 레지스터, 확장 플래그 사용), 16bit, 높은 코드 밀도, 저전력, 효율적 CPU 아키텍처(16/32/64bit 모두 가능) * CPI : Cycles Per Instruction |
||
파이프라인 |
명령어 병렬 수행
|
(정의) 처리속도 향상을 위해 명령어를 세분화(FI(Fetch), DI(Decode), EI(Excute), WB(Write Back))하여 독립적인 여러 작업을 병렬 수행하는 기법
(종류) . 단일 파이프라인, 슈퍼 파이프라인(클럭 나눔), 슈퍼 스칼라(다수 ALU), 슈퍼 파이프라인드 슈퍼 스칼라(두개 통합) . VLIW(Very Long Instruction Word) : 컴파일러 수준에서 동일 실행 가능 명령어 추출하여 하나의 명령어로 압축 . EPIC(Explicitly Parallel Instruction Computing) : VLIW의 H/W 단순성과 슈퍼 스칼라의 코드 호환성을 결합한 병렬처리 기술 - 명령어 구조 : 128bit = 3개의 41bit 명령어 + 5bit 템플릿(32개의 템플릿 제공) |
|
파이프라인 해저드(Pipeline Hazard) | 구조적/데이터/제어 해저드 | 구데제 |
(정의) 파이프라인의 성능을 저해하는 요인, 즉 CPI(Cycle Per Instruction)가 1이 되는 것을 방해하는 요소
(종류) . 구조적 해저드 : 자원 충돌, 명령어와 데이터가 하나의 메모리에 존재하는 폰노이만 구조에서 발생 - 해결 : 하버드 아키텍처 채택, 자원 추가 HW 병렬 구성, 메모리 인터리빙, nop 명령 추가 . 데이터 해저드 : 이전 명령의 결과값에 종속, RAW(Read after Write), WAR, WAW - 해결 : WB 전에 EI 단계에서 결과 포워딩, 소프트웨어 스케줄링, nop 명령 추가, 레지스터 재명명(renaming, 다른 레지스터 할당) . 제어 해저드 : 분기 명령어에 의해 발생, 잘못된 분기 예측으로 버려야 할 명령어들을 파이프라인으로 가져 왔을 때 - 해결 : 분기 목적지 선인출, 분기 예측(정적/동적), 지연 분기(분기와 상관 없이 항상 지연 슬롯 삽입) * 분기 예측 - 정적 : predict never taken, predict always taken(50%), predict by opcode(75%) / 동적 : taken/not taken switch, 분기 역사에 근거 |
병렬 컴퓨터 |
다수 프로세서 동시 처리
|
(정의) 여러 개의 프로세서들이 다수의 Task 혹은 단일 Task를 분할하여 동시에 처리하는 컴퓨터
(분류) . Flynn의 분류 : 프로세서들이 처리하는 명령어와 데이터들의 흐름의 수에 따라 분류 - SISD, SIMD(Single Instruction Multiple Dataflow), MISD, MIMD . 메모리 구조에 의한 분류 - SMP (Symmetric Multiprocessor): 다수 프로세서가 메모리 공유 / MPP (Massive Parallel Processor) : 고속 switch를 통해 다수 SMP 연결 - LCMP (Loosely Coupled Multiprocessor / Cluster) : MMP + 공유 디스크 - NUMA(Non Uniform Memory Access Architecture) : MMP + Global 메모리 |
|
멀티코어 | 단일 IC에 다수 프로세서 | 제데하 |
(정의) 싱글코어의 성능 한계(소비 전력, 발열 문제) 해결을 위해 2개 이상의 프로세서들을 단일 패키지 즉, 단일 IC로 통합한 프로세서
(멀티코어 아키텍처) General Execution Core Model(일반화된 실행 코어), General core & Dedicated DSPs Model(+코프로세서), Hybrid Model (멀티코어 최적화 기술) . 컴파일 : 컴파일러 디렉티브 기반 병렬 프로그래밍 API, 순차적 프로그램에 디렉티브를 추가하여 원하는 부분 병렬처리 가능 . 부하 균등화 : AMP(각 프로세서 코어에 각 OS 독립적 수행), SMP(한 OS가 모든 프로세서 코어 관리), BMP(Bound, +특정 응용 수행 코어) . 멀티코어간 통신 및 동기화 : 관련 토론 및 표준 제정, pThread, TIPC, RAPI, CAPI . 관련 도구 : 싱글코어에 익숙한 프로그래머들을 위한 도구 지원, Thread Building Blocks, Thread Profile, Thread Checker * DSP(Digital Signal Processor, 디지털신호 처리장치) : 디지털신호 처리를 위해 특별히 제작된 마이크로프로세서, 특히 실시간 운영 체제에 사용 |
vSMP(Variable Symmetric Multiprocessing) |
활성 대기, 컴패니언 코어(저주파수), 메인 코어, 1+4
|
(정의) 활성 대기 모드, 음악/동영상 재생 등의 작업을 저주파수에서 수행하는 저전력 프로세스를 사용한 다중 프로세스 아키텍처
(구성) 전력 최적화 1개 컴패니언 CPU 코어(동작 주파수: 0~500Mhz), 성능 최적화 4개 메인 CPU 코어(0~Max Ghz) (특징) 모바일 기기 사용 시간의 80%는 대기 시간, 저전력, 배터리 수면 연장, 작업량 기반 지능적 작업 분배 (구조적 장점) 캐시 일관성(서로 다른 주파수에서 구동), OS 효율성(모든 액티브 코어를 비슷한 동기식 동작 주파수로 유지), 전력 최적화 (구조적 도전 과제) 메인코어와 컴패니언 코어간 스위칭 과정의 부하 이슈 → seamless한 스위치 타임, 잦은 코어 스래싱 방지 |
|
매니코어 |
소수 일반코어+다수 단순기능 코어
|
(정의) 멀티코어 보다 더 적은 전력을 소모하면서 병렬성을 극대화 하기 위해, 수개의 일반코어와 수십~수백개의 단순기능 코어를 하나의 칩에 집적하는 구조
|
|
GPGPU(Gerneral Purpose) |
GPU를 일반 연산에 활용
|
(정의) GPU의 고성능 병렬처리기술을 이용하여, CPU가 수행하던 연산에 사용하는 병렬처리 기술, 범용연산처리, 고성능 병렬화
(GPGPU 프로그래밍 플랫폼) CUDA(NVIDIA), C++AMP(MS), OpenCL(크로노스 그룹), OpenACC(NVIDIA) (활용 분야) 보안관제, 빅데이터, 인공지능 |
|
CUDA(Compute Unified Device Architecture) | GPGPU 프로그래밍 플랫폼, SP/SM/TPC/GPU | SSTG |
(정의) GPGPU를 이용한 범용 프로그래밍을 위한 병렬처리 플랫폼, GPU에서 수행하는 병렬 처리 알고리즘을 C 프로그래밍 언어를 비롯한 산업 표준 언어를 사용하여 작성할 수 있도록 하는 GPGPU 기술
(아키텍처) . SP(Streaming Processor) 8개, I/C 캐시, 공유 메모리 < SM(Streaming Multi-Processor) 2 or 3개 < TPC(Texture Processor Cluster) 8 or 10개 < GPU . SP : 실제 연산 담당, I/C 캐시 : 명령 수행 후 결과 저장 및 재사용, 성능 높임 |
APU(Accelerated Processing Unit) | CPU+GPU |
(정의) APU = CPU(일반 작업, 직렬 데이터 프로세싱, 응용 프로그램 처리) + GPU(그래픽 처리, 병렬 데이터 프로세싱, 비쥬얼 응용 프로그램 처리)
(장점) 비용 절감, 소비전력 감소 (핵씸 기술) 내장 그래픽 카드, 병렬처리 엔진, 듀얼 그래픽 모드, 저전력, 저발열 |
|
입출력장치 |
(I/O 제어기) I/O 장치의 제어와 타이밍 조절, CPU와 통신 담당, I/O 장치와 통신 담당, 오류 검출, 데이터 버퍼링 기능 수행
(I/O 장치 주소 구조) 데이터 레지스터 주소(실 데이터 통신), 상태/제어 레지스터 주소(상태: 상태, 오류검사, 제어: I/O 명령 발송) (주소 할당 방식) . MemoryMapped I/O(기억장치 사상 입출력): 기억장치 주소 영역 일부 할당, 기억장치 명령어 사용, 프로그램 용이, RISC, 임베디드 프로세서 . Isolated I/O(고립형 입출력, I/O Mapped I/O): 별도 공간 할당, 별도 I/O 명령어, 프로그램 불편, 별도의 회로 설계, PC 환경 |
||
I/O 모델 유형 |
Blocking, Non-Blocking, Multiplexing, Signal Driven
|
(운영체제 I/O 모델 유형)
. Synchronous I/O : Blocking I/O(무한대기 가능→flag 이용한 timeout으로 해결), Non-Blocking I/O(polling, EWOULDBLOCK), I/O Multiplexing(멀티 스레드 환경, select/poll 이용, 입출력 다중화), Signal Driven I/O(SIGIO 시그널) . Asynchronous I/O : 모든 데이터 복사 후 시그널 발생 * 네트워크에서 Non-Blocking I/O : 싱글 스레드 기반 다중 접속 서버 구현 가능 |
|
DMA(Direct Memory Access) | DMA 컨트롤러 |
(정의) CPU에게 I/O작업을 할당하지 않고 DMA 컨트롤러를 활용하여 I/O장치와 주기억 장치 간 데이터를 직접 전송하는 입출력 방식
(DMA 컨트롤러) CPU를 대신하여 I/O 장치와 주기억장치 사이의 데이터 전송을 담당하는 장치 (전송 유형, 동작 모드) Burst Transfer(DMA가 우선권, 블록 단위, 완료 때까지 독점), Interleaved DMA(CPU가 우선권), Cycle Stealing(CPU 1개 메모리(버스) 사이클을 훔쳐서 수행, 워드 단위) (신호) BUS REQ(요청), BUS GRANT(승인), INTR(완료, 인터럽트) |
|
썬더볼트 |
데이터/디지털 영상 동시 전송
|
(정의) 10Gbps 속도로 데이터(PCI-Express)와 디지털 영상(Display Port)을 동시에 전송 가능한 인터페이스, 썬더볼트2: 20Gbps
|
|
ACPI(Advanced Configuration and Power Interface) | OS 전력관리 |
(정의) 운영체계가 직접 컴퓨터 주변장치 전력관리와 Plug & Play를 플랫폼 독립적으로 수행하기 위한 전력 관리 규격(인텔, MS 참여)
(특징) OS 중심, 다양한 기능 제공, 저가구현, 효율적 구조 (기능) 하드웨어 감지, 메인보드 및 장치 구성, 시스템/장치/프로세서 전원 관리 (전역 상태 정의) G0(작업 중, Working), G1(대기 모드, Sleeping), G2(Soft Off), G3(Mechanical Off) (구성요소) ACPI BIOS(머신 부팅 코드), ACPI Tables(HW 인터페이스 기술), ACPI Regiters(HW 인터페이스) * APM(Advanced Power Mgmt) : BIOS 중심, 한정된 기능 제공, 저가구현, 비효율적 구조 * BIOS(Basic Input/Output System) |
|
지역성(Locality) | 시간적, 공간적, 순차적 | 시공순 |
(정의) 프로그램이 한 순간에 기억장치 내 특정 영역을 집중적으로 참조하는 특성
(종류) 시간적 지역성(최근에 액섹스된 데이터가 다시 액세스될 가능성이 높음, loop, subroutine), 공간적 지역성(인접한 데이터가 연속적으로 액세스될 가능성 높음, array, table), 순차적 지역성(저장된 순서대로 인출될 가능성 높음, 구조적 프로그래밍) (활용 사례) 캐시 메모리(LRU, Pre-Fetch), 가상 메모리(예상 페이징, 위킹셋), 네트워크(CDN) |
레지스터 | 고속, 저용량 |
(정의) 처리 중인 데이터나 처리 결과를 임시 보관하는 기능을 하는 CPU 내부 기억 장치
(장단점) 고속, 고가, 저용량, 포함시킬 수 있는 레지스터 수에 한계가 있음 |
|
캐시 메모리 | 직접/완전 연관/세트 연관 사상 | 스백, 직완세, 랜퍼옵프리 |
(정의) CPU와 주기억장치의 속도 차이 따른 성능저하를 줄이기 위해, CPU와 주기억장치 사이에 설치한 고속 기억장치
(특징) 고속, 저용량, 지역성 원리, 캐시 일관성 (동작 원리) hit: 캐시에서 응답, miss : 주기억장치 접근, 캐시 full인 경우 희생블록 선택하여 교환 (유형: L1→L2→L3 접근) L1(CPU 내장, 가장 먼저 참조), L2(CPU 보드), L3(머더보드, 멀티코어에서 코어간 캐시 데이터 공유에 사용) (쓰기 정책 : 시기와 방법 결정) Write Through(동시 쓰기, 단순, 일관성 유지), Write Back(캐시 swap-out 될 때 주기억장치에 복사, 쓰기 시간 단축) (매핑 기법, 어디에) . 직접사상(Direct Mapping) : 주기억장치 블록들이 정해진 캐시 라인에 적재, 주기억장치 주소 형식(태크/라인/단어 필드) . 완전연관사상(Fully-Associative Mapping) : 캐시 라인이 정해지지 않음, 태그/단어 필드 . 세트연관사상 (Set-Associative Mapping) : 주기억장치 블록 그룹이 하나의 캐시 세트(라인 묶음) 공유, 태그/세트/단어 필드, K-way 세트 연관 사상 (교체 기법, 뭐를 교체) FIFO, LFU(빈도), LRU(오랫동안), Random 방식, 최적 방식(비현실적) (인출 방식, 언제) 요구 인출(Demand Fetch, 요청이 있을 때), 선인출(Pre-Fetch, 지역성 원리 이용 미리 인출) * LFU : Least Frequently Used, * LRU : Least Recently Used |
캐시, 버퍼, 스풀링 | 속도차 극복 |
(캐시) CPU/주기억장치 속도차 극복, 별도 고속 기억장치
(버퍼) CPU/입출력장치 속도차 극복, 주기억장치 일부, 채널, 단일/이중/환형 버퍼링 (스풀링) CPU/입출력장치 속도차 극복, 디스크 일부, 스풀 공간, 스풀러, 입력/출력 스풀링 |
|
캐시 일관성(Coherence)
|
공잠버디CC |
(정의) 다중 프로세서 시스템에서 특정 프로세서에서 변경된 캐시정보가 주기억장치 및 각 프로세서의 캐시에 동일하게 적용, 유지되는 메커니즘
(캐시 일관성 문제 발생 원인) 공유 데이터 불일치, I/O 동작에 의한 불일치, 프로세스 이주에 의한 불일치 (해결 방안) . 공유 캐시 사용, 잠금(Lock)변수 캐시 저장 금지 . 버스 감시 매커니즘 : Snoop 제어기, Write Throuugh, Write Back : MESI 프로토콜 이용 . 디렉토리 기반 캐시 프로토콜 : 공유 데이터의 복사본을 디렉토리에 저장 - Full-map 방식 : 프로세서 수 만큼 포인터 비트 구성 - Limited 방식 : 포인터 비트 수에 제한 - Chained 방식 : 연결 리스트를 활용하여, 캐시 내 데이터 보유한 포인터들 간 체인 구성 . CC-NUMA(Cache-Coherent NUMA) : 스누핑-스누핑, 스누핑-디렉토리(클러스터 내부 스누핑 방식, 클라스터 간 디렉토리 방식) |
반응형