CS/컴퓨터구조 12

[컴퓨터구조] #12 Memory(3)

Physical Addressing간단한 시스템에서 사용ex) 자동차, 엘리베이터, 디지털 카메라 등 Virtual Addressing최신 서버, 노트북, 스마트폰에서 사용 • Virtual Memory 메인 메모리를 스토리지의 캐시로 사용한다. 프로그램들은 메인 메모리를 공유한다.각 프로그램은 자주 사용하는 코드와 데이터를 저장하는 개별 가상 주소 공간을 가진다.메모리 참조 시 가상 주소를 사용한다.가상 주소 공간은 다른 프로세스로부터 보호된다. 가상 메모리의 block은 page라고 한다.주소 변환 실패는 Page fault라고 한다. • Virtual Address 프로그램은 메모리의 어느 위치에든 배치될 수 있다.여러 개의 프로그램이 동시에 수행될 수 있다. Address Translatinon은..

CS/컴퓨터구조 2024.06.11

[컴퓨터구조] #11 Memory(2)

• Direct Mapped Problem Conflict Miss가 계속 반복해서 일어날 가능성이 있다. Block Size가 모두 4byte인 Extreme Case를 가정해보자.Cache에 하나의 Entry만 있기 때문에 Conflict Miss가 끊임없이 발생하게 된다. 위와 같은 상황을 Trashing이라고 한다.(Cache에 Data를 Loading하기 전에 반드시 원래 있던 Data를 쫓아내야 하는 상황) • Fully Associative Cache 각 Entry에 모든 주소로부터 온 Data가 저장될 수 있도록 한다. 장점 : Conflict Miss가 발생하지 않고 Cache가 꽉 차서 발생하는 Miss인 Capacity Miss만 발생한다.단점 : 모든 Entry의 Cache Tag를..

CS/컴퓨터구조 2024.06.11

[컴퓨터구조] #10 Memory(1)

서로 다른 종류의 저장 장치는 다른 access time을 가진다. Random access 데이터가 어디있든지 간에 동일한 access time을 가진다.ex) DRAM, SRAM, Flash Memory Non-random access데이터의 위치에 따라 access time이 달라진다.현재는 거의 사용되지 않는다. • Dynamic Random Access Memory (DRAM) Data가 주기적으로 refresh 되어야 해서 Dynamic이다. Capacitor에 전하가 충전되는 것으로 data가 저장된다. 1 트랜지스터가 전하량을 확인하는데 사용된다.(충전되면 1, 빠지면 0) 데이터를 읽고 다시 써줘야 한다.구멍 뚫린 양동이라고 생각하면 이해하기 쉽다. • Static Random Acces..

CS/컴퓨터구조 2024.06.11

[컴퓨터구조] #9 Pipeline

• Piplelined Processing 중복 실행 방법에서 새로운 작업은 현재 작업 Set 중 첫번째 작업이 끝나면 시작될 수 있다.아래의 그림을 비교해보면 이해가 쉽다. pipeline에서도 sigle-cycle에서 공부했던 5가지 단계가 동일하게 적용된다.(IF/ID/EX/MEM/WB) • Pipelined Performance 파이프라인을 통해 성능향상이 많이 이루어진 것을 확인해볼 수 있다. 그러나 만약 balanced 되어있지 않으면, 성능향상은 작아진다.또한 각 명령어 당 수행시간은 감소하지 않는다. RISC-V ISA는 파이프라이닝에 적합한데, 이는 32-bit 고정 길이 명령어를 가지고 있고, 제한된 명령어 포맷과 load/store 주소지정방식을 가지고 있기 때문이다. • Piplin..

CS/컴퓨터구조 2024.06.09

[컴퓨터구조] #8 Processor

이제 실제 프로세서로 구현하면 어떻게 될지 알아보도록 하자. • Execution Cycle Instruction Fetch(IF) : 메모리로부터 명령어를 가져온다.Instruction Decode(ID) : 명령어를 해석해서 필요한 동작을 정의한다.Operand Decode : Operand 데이터를 가져온다.Execute(EX) : 명령어의 결과값/상태를 계산한다.Result Store(MEM) : 결과값을 스토리지에 저장한다.Instruction Next : 다음 명령어를 정의한다. (PC = PC+4) • Implementation Overview 메모리 및 FU를 통과하는 데이터의 흐름이다.  • Digital Systems 디지털 시스템을 구현하기 위해 필요한 3가지 컴포넌트들이 있다.  C..

CS/컴퓨터구조 2024.06.03

[컴퓨터구조] #7 ISA(3)

• 명령어의 표현 한 명령어당 32-bit word (=4 byte) 로 인코딩 되어있다. • RISC-Ⅴ Instruction Formats 6가지 형태가 있다. R-type을 보면 rd = 5, rs1 = 5, rs2 = 5 bit가 할당된 것을 확인할 수 있다.경우의 수는 2⁵ = 32가지인데 왜 32개보다 더 늘리지 않는 것일까? 만약 33가지로 늘리게 되면 각각 1 bit씩 늘어나야 한다.결국 opcode나 funct7에서 명령어를 더 많이 배치하지 못하는 문제가 생긴다.따라서 일반적으로 사용하는 레지스터의 개수는 32개로 고정되어 있다.  • R-Type Instructions 프로세서가 opcode(0110011)을 통해 레지스터 3개를 사용하는 R-typ..

CS/컴퓨터구조 2024.04.23

[컴퓨터구조] #6 ISA(2)

• RISC-Ⅴ: Control Transfer Operations 프로그램에서 가장 많이 사용되는 기능에는 '조건 검사'가 있다. 조건부 명령어 : Branch무조건 분기 명령어 : Jump분기 타겟 (주소) : Label • Conditional Operation(조건부 명령어) 조건이 참이면, label로 분기된다.참이 아니면, 다음 명령어 (PC + 4)를 수행한다. beq : 같으면 L1으로 분기해라. bne : 같지 않으면 L1으로 분기해라. blt : 참이면 L1으로 분기해라. bge : 참이면 L1으로 분기해라. • Signed vs Unsigned Comparison Signed comparison : blt(a=b)Unsigned com..

CS/컴퓨터구조 2024.04.23

[컴퓨터구조] #5 ISA(1)

• 프로그래밍 언어의 두가지 분류 High-level Languages컴파일러를 지원하기 때문에 하드웨어 독립적이다.하나의 문장이 여러 명령어를 포함한다.ex) C, C++, Java, Python Low-level Languages특정 아키텍처에서 볼 수 있기 때문에 하드웨어 종속적이다.하나의 문장이 기계어 하나로 대응되는 경우가 많다.ex) Assembly languages for x86, ARM, RISC-Ⅴ  • Assembly Language vs Machine Language  Assembly Language 기계어에 대한 표현이다. 하나의 문장이 하나의 기계어에 대응한다.High-level 프로그램과 기계어 코드 사이의 Abstraction layer이다.    Machine Language..

CS/컴퓨터구조 2024.04.22

[컴퓨터구조] #4 부동소수점

• 소수점 이하를 표현하는 방법 고정소수점(Fixed-Point)소수점 위치가 고정되어 있다.1101101.00010001Integer(정수).Fractional(소수) 특정 비트수를 기준으로 소수점이 찍힌 것을 알 수 있다. 부동소수점(Floating-Point)1.1011010001001 * 2⁶ 1(leading 1)의 오른쪽에 소수점이 위치하고, Exponent가 사용된 것을 알 수 있다.   • 고정소수점정수부 4비트, 소수부 3비트를 사용하는 고정소수점 표현01101100110.110= 2² + 2¹ + 2⁻¹ + 2⁻² = 6.75 Binary point는 비트표현에 들어가는 것이 아닌, 일종의 약속이다.  음수 소수는 두가지 방법으로 표현할 수 있다.1. 부호/크기 표현법2. 2의 보수 표..

CS/컴퓨터구조 2024.04.19

[컴퓨터구조] #3 정수표현법

• 정보를 어떻게 표현할까? 정보 = 비트 + 비트가 의미하는게 뭔지이진 숫자로 정보를 표현한다.2진수 N비트 = 2^N 경우의 수  •  Unsigned Integers(부호없는 정수형) 음수표현이 불가능하다.  • Signed Integers(부호가 있는 정수형) 양의 정수와 음의 정수 표현이 모두 가능하다.Positvie numbers(양수)는 Unsigned Integers와 동일하지만Negative numbers(음수)는 3가지 표현법을 이용해 표현할 수 있다.  공통 : 첫번째 비트는 부호를 표현하고, 나머지 비트로 크기를 표현한다.(첫번째 자리 0 : 양수 / 1 : 음수) 1. Sign-magnitude Representation(부호-크기 표현법)0..

CS/컴퓨터구조 2024.04.15