묻공러
'CS' 카테고리의 글 목록 (5 Page)

CS

CS/[혼자 공부하는] 컴퓨터 구조

6-2] 메모리와 캐시 메모리: 메모리의 주소와 한계 레지스터

메모리 주소물리 주소, 논리 주소 물리 주소와 논리 주소로 나눈 이유메모리에 저장된 값들은 시시각각 변하기 때문같은 프로그램을 실행하더라도 실행할 때마다 적재되는 주소는 달라짐 물리 주소메모리 입장에서 바라본 주소말 그대로 정보가 실제로 저장된 하드웨어상의 주소 논리 주소CPU와 실행 중인 프로그램 입장에서 바라본 주소실행 중인 프로그램 각각에게 부여된 0번지부터 시작하는 주소 물리 주소와 논리 주소 간의 변환CPU와 메모리가 상호작용 하기 위해서는 변환은 필수불가결MMU(Memory Management unit) 메모리 관리 장치라는 하드웨어에 의해 변환MMU는 논리 주소와 베이스 레지스터(프로그램의 기준 주소, 시작 주소) 값을 더하여 논리 주소를 물리 주소로 변환  메모리 보호한계 레지스터를 통해 ..

CS/[혼자 공부하는] 컴퓨터 구조

6-1] 메모리와 캐시 메모리: RAM의 특징과 종류

RAM이란?주기억장치의 종류에는 크게 RAM과 ROM 두 가지가 있고,‘메모리’라는 용어는 그 중 RAM을 지칭하는 경우가 많다 RAM의 특징RAM은 실행할 대상을 저장하는 공간이며 휘발성 저장장치이고보조기억장치는 보관할 대상을 저장하는 공간이며 비휘발성 저장장치이다 RAM의 용량과 성능CPU가 한번에 여러 개의 프로그램을 동시에 실행할 수 있는 성능이 RAM에 의해 결정된다따라서, RAM의 용량과 성능이 높을수록 많은 프로그램들을 동시에 실행하는데 유리하다 RAM의 종류DRAM, SRAM, SDRAM, DDR SDRAM DRAM (RAM에서 사용하는)Dynamic(동적의)저장된 데이터가 동적으로 사라지는 RAM전원이 연결되어 있더라도 지속적으로 휘발함데이터 소멸을 막기위해 주기적으로 재활성화해야 함일반..

CS/[혼자 공부하는] 컴퓨터 구조

5-3] CPU의 성능 향상 기법: 명령어 집합 (CISC와 RISC)

1] 명령어 집합(ISA, Instruction set architecture)명령어 집합(구조)은 CPU가 이해할 수 있는 명령어들의 모음이다ex. 인텔 CPU의 실행 파일을 아이폰에 옮겨 바로 실행이 불가능한 이유가 각자 명령어 집합(구조)이 다르기 때문이다 또한, 명령어 집합(구조)는 CPU의 언어라고 볼 수 있고 하드웨어가 소프트웨어를 어떻게 이해할지에 대한 약속이다명령어 해석 방식, 레지스터의 종류와 개수, 파이프라이닝의 용이성 등 많은 것이 그에 따라 달라진다  2] 명령어 집합의 두축(1) CISC(Complex Instruction Set Computer)복잡한 명령어 집합을 활용하는 컴퓨터(CPU)의 명령어 집합 구조이다인텔과 AMD사의 CPU로 대표되는 x86, x86-64는 CISC ..

CS/[혼자 공부하는] 컴퓨터 구조

5-2] CPU의 성능 향상 기법: 명령어 병렬 처리 기법

1] 명령어 파이프라인 일반적으로 명령어가 처리되는 단계는 1. 명령어 인출(Instruction Fetch) 2. 명령어 해석(Instruction Decode) 3. 명령어 실행(Execute Instruction) 4. 결과 저장(Write Back) 으로 볼 수 있는데, 같은 단계가 겹치지만 않는 다면 CPU는 각 단계를 동시에 실행할 수 있고 동시에 여러 개의 명령어를 겹쳐 실행하는 기법을 명령어 파이프라인이라고 한다 2] 파이프라인 위험 명령어 파이프라인이 성능 향상에 실패하는 경우를 파이프라인 위험이라고 한다 그 종류로는 데이터 위험, 제어 위험, 구조적 위험이 있다 (1) 데이터 위험: 명령어 간의 의존성에 의해 야기 모든 명령어를 동시에 처리할 수 없는 경우(이전 명령어를 끝까지 실행해야..

CS/[혼자 공부하는] 컴퓨터 구조

5-1] CPU의 성능 향상 기법: 코어와 스레드

컴퓨터 부품들은 클럭 신호에 맞춰 일사불란하게 움직인다CPU는 명령어 사이클이라는 정해진 흐름에 맞춰 명령어들을 실행한다 1] 클럭 속도: 헤르츠(Hz) 단위로 측정헤르트(Hz): 1초에 클럭이 반복되는 횟수1초에 클럭이 한번 반복되면 1Hz1초에 클럭이 100번 반복되면 100Hz 2] CPU를 빨리 작동시키려면, 1. 클럭 속도를 높이는 방법: 발열이 심해지기에 적절하지 않음2. 코어 수를 늘리는 방법 ex. 듀얼코어, 멀티코어...3. 스레드 수를 늘리는 방법 ex. 멀티 스레드... 3] 코어와 멀티코어(1) 코어(Core)란?명령어를 실행하는 부품을 의미하며전통적으로 코어는 원칙적으로 하나만 존재했다하지만, 오늘날 CPU는 코어가 여러 개 존재한다 (2) 멀티 코어코어의 개수에 따라 싱글코어, ..

CS/[혼자 공부하는] 컴퓨터 구조

4-3] CPU의 작동원리: 명령어 사이클과 인터럽트

1] 명령어 사이클: 프로그램 속 명령어들은 일정한 주기가 반복되며 실행되는데 이 주기를 명령어 사이클이라고 함1. 인출 사이클: 가장 먼저 CPU로 갖고 와야 한다2. 간접 사이클: 메모리 접근이 필요한 경우에 간접 사이클이 실행된다3. 실행 사이클: 갖고 왔으면 실행해야 한다 2] 인터럽트(1) 인터럽트 개념인출 > (간접) > 실행을 하는 일반적인 명령어 사이클 중에인터럽트가 발생하면 명령어 사이클이 끊기게 된다그렇게 된다면, 인출 사이클 > (간접 사이클)  > 실행 사이클 > (인터럽트 사이클)의 방식으로 동작한다 (2) 인터럽트의 종류1. 동기 인터럽트(예외) - 폴트, 트랩, 중단, 소프트웨어 인터럽트: CPU가 예기치 못한 상황을 접했을 때 발생 ex. 하드웨어 고장, 정전... 2. 비동..

CS/[혼자 공부하는] 컴퓨터 구조

4-2] CPU의 작동원리: 레지스터

1] 레지스터 레지스터는 CPU 내부의 작은 임시저장장치 프로그램 속 명령어와 데이터는 실행 전후로 레지스터에 저장 2] 반드시 알아야 할 레지스터 1. 프로그램 카운터: 메모리에서 가져올 명령어의 주소 (메모리에서 읽어 들일 명령어의 주소) 2. 명령어 레지스터: 해석할 명령어 (방금 메모리에서 읽어 들인 명령어) 3. 메모리 주소 레지스터: 메모리의 주소를 저장 4. 메모리 버퍼 레지스터: 메모리와 주고받을 값(데이터와 명령어) 5. 플레그 레지스터: 연산 결과 또는 CPU 상태에 대한 부가적인 정보 6. 범용 레지스터: 다양하고 일반적인 상황에서 자유롭게 사용 7. 스택 포인터 (스택 주소 지정 방식으로 사용됨) 스택 주소 지정 방식: 스택과 스택 포인터를 이용한 주소 지정 방식 스택 포인터: 스택..

CS/[혼자 공부하는] 컴퓨터 구조

4-1] CPU의 작동원리: ALU와 제어장치

1] ALU: 레지스터로부터 피연산자를 받아들이고, 제어장치로부터 제어 신호를 받아들인다 ALU 내부에 다양한 계산을 위한 회로들이 존재한다 ex. 덧셈을 위한 가산기, 뺄셈을 위한 보수기, 쉬프트, 오버플로우 검출기... 플래그 레지스터: 연산 결과의 부호와 같은 CPU 상태에 대한 부가적인 정보가 들어감 2] 제어장치 제어장치는 위처럼 플래그, 클럭, 해석할 명령어를 받아들이고 제어신호를 주고받는다 클럭: 컴퓨터의 모든 부품을 일사불란하게 움직일 수 있게 하는 시간 단위

CS/[혼자 공부하는] 컴퓨터 구조

3] 명령어

1] 소스 코드와 명령어 (1) 고급언어: 개발자가 이해하기 쉽게 만든 언어 1. 컴파일 언어 2. 인터프리트어 (2) 저급 언어: 컴퓨터가 이해하고 실행하는 언어 1. 기계어: 2진수 or 16진수로 표현된 언어 2. 어셈블리어: 기계어를 읽기 편한 형태로 번역한 저급 언어 (3) 고급언어가 저급언어로 변환될 때 1. 컴파일 방식 (컴파일 언어 > 저급언어): 한 번에 처리하는 방식 2. 인터프리트 방식 (인터프리터 언어 > 저급언어): 한 줄씩 처리하는 방식 2] 명령어의 구조 (1) 명령어는 연산코드(수행할 연산)와 오퍼랜드(연산에 사용될 데이터 혹은 연산에 사용될 데이터가 저장된 위치)로 구성 (2) 오퍼랜드 필드는 데이터보다는 주소를 많이 담고 있는 경우가 많기에 주소필드라고 부름 오퍼랜드가 없..

CS/[혼자 공부하는] 컴퓨터 구조

1] 컴퓨터 구조의 큰그림

1] 컴퓨터가 이해하는 두 가지 정보 - 데이터 0과 1로 이루어진 숫자, 문자, 이미지, 동영상과 같은 정적인 정보 컴퓨터와 주고받는/내부에 저장된 정보를 데이터라 통칭함 - 명령어 컴퓨터는 결국 명령어를 처리하는 기계이며 명령어는 컴퓨터를 실질적으로 움직이는 정보, 데이터는 명령어를 위한 일종의 재료이다 2] 컴퓨터의 네 가지 핵심 부품과 메인보드 그리고 시스템 버스 (1) 메모리: 현재 실행되고 있는 프로그램(프로세스)의 명령어와 데이터를 저장하는 부품 프로그램이 실행되기 위해서는 메모리에 저장되어 있어야 한다 메모리는 실행되는 프로그램의 명령어와 데이터를 저장한다 메모리에 저장된 값의 위치는 주소로 알 수 있다 (2) CPU: 메모리에 저장된 명령어를 읽어 들이고, 해석하고, 실행하는 부품 ALU..