전체 글 30

Lecture 20: Additional Lecture

경희대학교 김정욱 교수님의 컴퓨터 구조 수업을 기반으로 정리한 글입니다.Program vs. Process vs. Thread1. Program실행 가능한 파일들의 집합으로, 정적인 개념이다.Program은 disk에 일반적으로 저장되어 있어, 수명에는 제한이 없다.▶ Program2. Process실행중인 Program으로, 동적인 개념이다.Process는 main memory에 일반적으로 저장되어 있어, 수명에는 제한이 있다. (Process 종료 or 컴퓨터 off)▶ Process3. ThreadProcess의 가장 작은 실행 가능한 unit으로,Process 안에서 할당받은 자원을 이용하고, 실제로 작업을 수행하는 주체이다. (일꾼)Process는 일반적으로, mutiple threads를 가진..

Lecture 19: Memory Hierarchy - 3

경희대학교 김정욱 교수님의 컴퓨터 구조 수업을 기반으로 정리한 글입니다.Common Framework for Memory Hierarchy▶ cache / main memory TLB는 address를 mapping하는 정보밖에 없기 때문에, data를 포함한 캐시보다 작다. 용량이 클수록 miss rate가 낮다. 때문에 miss rate은 L1 > L2 > main memory ※ 용량 - L1: layer 1 cache Block Placement of Memory HierarchyQ1. Block이 어디에 위치할 수 있는가?▶ Direct mapped / Set associative / Fully associative ▶ Miss rate 확률 cache size가 증가할수록 miss rate 감..

Lecture 18: Memory Hierarchy - 2

경희대학교 김정욱 교수님의 컴퓨터 구조 수업을 기반으로 정리한 글입니다.Misses in Direct-Mapped Cache (Problem)Example▶ 0, 8, 0, 6, 8 address를 cache(size: 4)에 저장하는 상황0 -> cache memory의 index 0 위치에 Memory[0]에 대응되는 data 저장8 -> cache memory의 index 0 위치(switch)에 Memory[8에 대응되는 data 저장 0 -> cache memory의 index 0 위치(switch)에 Memory[0]에 대응되는 data 저장6 -> cache memory의 index 2 위치에 Memory[6]에 대응되는 data 저장8 -> cache memory의 index 0 위치(sw..

Lecture 17: Memory Hierarchy - 1

경희대학교 김정욱 교수님의 컴퓨터 구조 수업을 기반으로 정리한 글입니다.ROM vs. RAMROM (Read Only Memory)Write는 못하고 (저장 불가) Read만 할 있는 MemoryNon-volatile memory (비휘발성 메모리): 전원이 꺼져도 데이터가 없어지지 않음※ Mask ROM: 반도체 생산 공정인 마스킹 단계에서 고정된 데이터 회로 패턴으로 생산하는 방식 (책을 대량 인쇄하는 것처럼) ※ ROM은 공장에서 애초에 0과 1의 패턴들이 다 만들어져 나오기에 Write 할 수 없다.▶ ROM RAM (Random Access Memory)temporary MemoryRead-write memory: 읽고, 쓰기 둘 다 가능Volatile memory (휘발성 메모리): 컴퓨터가 ..

Lecture 16: The Processor - 5

경희대학교 김정욱 교수님의 컴퓨터 구조 수업을 기반으로 정리한 글입니다.3. Control HazardsProblemControl Hazard는 branch hazard라고도 하며, Data Hazard와 마찬가지로 pipeline시 발생하는 문제이다.즉, branch할 때 pipeline에서 발생하는 hazard가 control hazard이다.▶ Control hazard beq 조건 만족시 44, 48, 52줄의 instruction은 필요없게 된다.하지만, 이때 pipeline시 조건을 만족하면 문제가 발생한다. (조건을 만족하지 않으면 문제가 발생하지 않는다.) EX/MEM의 Zero signal에 기반하여, MEM/WB의 결과값인 branch or not (PC + 4)로 branch 여부가 ..

Lecture 15: The Processor - 4

경희대학교 김정욱 교수님의 컴퓨터 구조 수업을 기반으로 정리한 글입니다.Pipeline HazardsPipelining는 속도가 향상된다는, 즉 성능이 향상된다는 장점이 있다.하지만, 매 cycle마다 instruction을 실행해야 하는데 그렇지 못하는 경우, 3가지 Hazards가 발생한다. Three types of pipeline hazards1. Structure hazards: 구조적 문제2. Data hazards: 필요한 데이터를 아직 못 받은 문제3. Control hazards: 브랜치 문제1. Structure HazardsProblem현재에는 데이터가 저장된 메모리, instruction이 저장된 메모로 나눠져 있다.하지만 과거엔 영역이 나누어져 있긴 하지만 메모리가 하나로 되어 있..

Lecture 14: The Processor - 3

경희대학교 김정욱 교수님의 컴퓨터 구조 수업을 기반으로 정리한 글입니다.Overview of PipeliningPipelining▶ Pipelining - Laundry Example동기: 직렬적으로 작동하는 방식으로, 하나의 task가 끝날 때까지 기다렸다가 다음 task가 실행된다.비동기: 병렬적으로 작동하는 방식으로, 한 번에 여러 task가 동시에 병렬적으로 실행된다.Pipelining 기법은 여러개의 명령어를 비동기로 처리하는 기술로, 속도가 빠르다는 장점이 있다.여러 instruction이 overlapped 되도록, 즉 동시에 수행하도록 하는 implementation technique (구현 기술)이다. ※ single cycle path 방식 (하나의 instruction이 끝나야 그다음..

Lecture 13: The Processor - 2

경희대학교 김정욱 교수님의 컴퓨터 구조 수업을 기반으로 정리한 글입니다.Creating a Single Datapath▶ datapath components1. R-Format▶ Datapath for the memory instructions and R-type instructions 1, 2R-format은 MemWrite와 MemRead signal이 안 띄워지기 때문에 Read data 2에서 Write data로 가는 것은 쓰레기 값이다.이렇게 MemWrite, MemRead, control signal에 의해 유효한 값인지 아닌지 결정이 된다. 3더한 값이 주소인 경우엔 ALU의 연산 결과가 Address로 유효한 값이 가지만, 여기 더한 값이 데이터 값이기에 MUX로 간다.이때 어차피, me..

Lecture 12: The Processor - 1

경희대학교 김정욱 교수님의 컴퓨터 구조 수업을 기반으로 정리한 글입니다.Datapath of the Processor▶ Datapath of the Processor ※ Processor: 컴퓨터를 실행하는 계산을 수행하는 integrated electronic circuit으로, 쉽게 말해 CPU라고 볼 수 있다.※ Datapath: instruction을 처리하는 path ※ Instruction memory: code가 담겨있는 메모리※ Data memory: Stack 혹은 Heap에서 저장된 값이 담겨있는 메모리※ 위 두 메모리는 실제론 하나의 같은 메모리이다. Fetch stage, decode stage, and execute stage, 이렇게 3개의 stages가 반복된다. 회로의 시작점..

Lecture 10: Arithmetic for Computers - 2

경희대학교 김정욱 교수님의 컴퓨터 구조 수업을 기반으로 정리한 글입니다.Floating Point▶ C code example 위 코드를 보면 "Hello World!"가 10번 반복될 것 같지만,실제로는 무한히 반복한다.그렇다면, 컴퓨터 속 2진수를 사용해 floating point를 어떻게 나타내야 할까? Floating point (부동 소수점)Floating Point는 쉽게 말해, 소수점이다. Floating point는 분수, 엄청 큰 수 (ex) 10^20), 엄청 작은 수 (ex) 10^-20)를 나타낼 때 사용된다. (실수 표현 방식)때문에 값을 나타내는 가수부와 소수점의 위치를 나타내는 지수부로 이루어진다.▶ Normalized scientific notation (Binary) ex)..