본문 바로가기

전체 글

(74)
메모리(memory) Goal 각 저장 장치의 역할에 대한 이해 메모리 계층 구조에 대한 이해 프로그램은 저장장치에 저장된다. 그리고 프로그램을 실행하면 메인 메모리에 올라가 동작하게 된다. 따라서 프로그램을 개발하는 프로그래머로서 메모리에 대한 이해를 할 필요가 있다. 메모리 동작 방식을 이해하고 메모리 친화적인 프로그램을 개발하면 프로그램 성능을 향상 시킬 수 있다. 캐싱, 가상 메모리 관련 기법 등과 같은 각 저장 장치에서 사용되는 기술적인 내용에 대해서는 따로 다룰 예정 메모리(memory) 데이터를 저장하는 장치로 기억장치 또는 저장장치라고도 한다. 일반적으로 메모리라고 하면 주기억 장치인 RAM을 의미한다. 엔디언 더보기 메모리와 같은 1차원의 공간에 여러 개의 연속된 대상을 배열하는 방법을 뜻한다. 바이트를 배열..
중앙처리장치(CPU) - 5 (병렬 컴퓨팅, 병렬 컴퓨터) Goal 병렬 컴퓨팅이 필요한 이유에 대해 설명할 수 있다. 병렬 컴퓨터의 예시를 들 수 있다. 병렬 컴퓨팅이란? 병렬 컴퓨팅이란 여러 개의 연산을 동시에 병렬적으로 처리하는 방법을 의미한다. 예를 들어, 두 개의 연산이 서로 의존성이 없다면 한 개 연산이 완료될 때까지 나머지 연산이 기다리지 않고 동시에 수행하는 것이 바로 병렬컴퓨팅의 기본 개념이다. 여기서 동시에 수행할 수 있는 대상을 찾는 것이 병렬처리의 가장 시작점이라고 할 수 있으며, 이러한 일련의 과정을 병렬화라고 한다. 병렬 처리 분류 비트 레벨 병렬 처리(bit-level parallelism) : 컴퓨터 워드 크기에 따른 처리 ex) 32 / 64 비트 명령어 레벨 병렬 처리(instruction-level parallelism) : 명..
중앙처리장치(CPU) - 4 (명령어 파이프라인) Goal 명령어 파이프라인 구조에 대한 이해 명령어 파이프라인 발전 흐름에 대한 이해(구조적 문제점 및 등장 배경의 기초적인 이해) 명령어 파이프라인 CPU 처리성능 향상을 위해 Instruction 처리 과정을 여러 단계로 세분화하는 병렬처리 기법 파이프라인 발전 단계 파이프라인의 유형 T: 명령어 실행 시간, k: 파이프라인 단계, N 실행 명령어 수 명령어 인출(IF, Instruction fetch) 명령어 해독(ID, Instruction Decode) 연산 실행(EX, EXecution) 연산결과 저장(WB, Write Back) 파이프라인(pipeline) 특징 Micro Instruction 기반 병렬처리 성능 : Pt = k + (N – 1) 슈퍼 파이프라인(super-pipeline) ..
중앙처리장치(CPU) - 3 (CPU 명령어 사이클) Goal 명령어 사이클에 대해 설명할 수 있다. CPU 명령어 사이클(instruction cycle) 마이크로프로세서(CPU)가 메모리로부터 프로그램 된 한개의 기계어 명령어를 가져와 어떠한 동작을 요구하는지를 결정하고 명령어가 요구하는 동작을 수행하는 연속적인 동작 과정이다. 즉, 명령어를 꺼내와 실행하기 위한 연속적인 동작 과정이다. 명령이 순환하는 동안 CPU에 사용되는 회로는 다음과 같다. PC : 다음에 실행할 명령어에 대한 메모리 주소를 추적 MAR : 다음에 실행할 명령어의 메모리에 있는 주소를 보관 MBR : 메모리로부터 페치(fetch)되어 cpu가 처리할 준비가 된 데이터나 메모리에 저장되어 대기 중인 데이터를 보관하는 양방향 레지스터 IR : 메모리로부터 fetch 되는 (현재 실행..
중앙처리장치(CPU) - 2 (CPU 명령어) Goal 명령어가 어떻게 구성되어 있는지 이해하고, 명령어 구성에 따른 특징에 대해 설명할 수 있다. 마이크로 연산(micro-operation) CPU에서 한 클럭 펄스(clock pulse) 동안에 일어나는 세부 동작이다. micro-ops 또는 μops 로도 표시 기계어 또는 어셈블리 명령어는 여러 개의 마이크로연산이 합쳐진 일종의 매크로(macro) 명령어 형태이다. 따라서, 하나의 CPU 명령어는 여러 개의 클럭 펄스를 필요로 한다. 명령어 세트(Instruction Set) CPU가 이해하고 동작시킬 수 있도록 정의되는 명령어들의 집합이다. 컴퓨터구조의 일부이기 때문에 ISA(Instruction Set Architecture)라고도 한다. CPU마다 명령어의 길이나 구조가 다를 수 있다. 즉..
중앙처리장치(CPU) - 1 (CPU 구조) Goal CPU 구성 요소에 대한 이해 CPU 동작 과정을 설명할 수 있다. CPU란? 명령어를 해석하여 실행하는 장치로 인간으로 치면 두뇌에 해당하는 하드웨어 장치이다. (CPU를 흔히 Processor 라고도 한다.) CPU 구성 요소 연산 장치(ALU, Arithmetic and Logic operation Unit) : 산술 및 논리 연산 장치 산술 연산(덧셈, 뺄셈, 곱셈 나눗셈 등)과 논리 연산(AND, OR 등)을 수행 제어 장치(Control Unit) 프로그램에서 주어진 명령을 '해석'하고 이를 '실행'하기 위해 제어신호를 만든다. 연산, 읽기, 쓰기 등의 동작신호와 각 장치를 제어하기 위한 타이밍(timing) 신호를 때맞춰 만든다. 레지스터(register) cpu의 임시 기억 장소로..
KMP 알고리즘 Goal 여러 문자열 문제에 응용될 수 있는 KMP 알고리즘의 아이디어에 대해 설명할 수 있다. KMP 알고리즘에서 사용되는 키워드를 설명할 수 있다. KMP 알고리즘을 구현할 수 있다. KMP 알고리즘이란? 문자열 검색 알고리즘으로, 검색 과정에서 불일치가 일어났을 때, 다음으로 검색을 시도할 시작 위치를 빠르게 찾아내는 문자열 검색 최적화 알고리즘이다. 검색 과정에서 얻는 정보를 버리지 않고 활용하는 방법으로, 불일치가 일어났을 때 지금까지 일치한 글자의 수를 이용해 다음 검색을 시도할 위치를 찾아낸다. (커누스-모리스-프렛(Knuth-Morris-Pratt) 알고리즘, 흔히 KMP 알고리즘이라고 한다) 비교하는 두 문자열의 길이가 각각 N과 M일 때, 시간 복잡도 : O(N + M) 접두사, 접미사..
운영체제(Operating System) 개요 Goal 운영체제가 무엇인지 간단하게 설명할 수 있다. 운영체제의 구조에 대해 그림으로 설명할 수 있다. 운영체제를 이루고 있는 핵심 요소에 대해 그 역할을 설명할 수 있다. 운영체제(OS, Operating System)란? 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템 자원을 효율적으로 관리하는 시스템 소프트웨어이다. 운영체제는 컴퓨터 사용자, 하드웨어, 소프트웨어 사이의 중재자로서 인터페이스를 제공한다. => 컴퓨터 운용을 위해 총괄 감독 역할을 수행 하드웨어 ↔ 운영 체제 ↔ 셸 / 응용 프로그램 ↔ 사용자 운영체제 종류 Windows, Mac OS, Unix, Linux, Android, iOS 등 운영 체제의 주요 목적 1. 효율적인 자원 관리 같은 자원으로 더 많은 작업량을 처리..