Computer Architecture8 [Computer Architecture] Cache Memory (캐시 메모리) Principle of Locality 큰 메모리에서 대부분의 메모리 접근을 빠르게 하는 것은 불가능하다. 프로그램이 어떤 특정 시간에 주소 공간 내의 비교적 작은 부분만을 접근한다는 것이 지역성의 원칙이다.- Temporal Locality (시간적 지역성) : 한번 참조된 항목은 곧바로 다시 참조되는 경향이 있다.- Spatial Locality (공간적 지역성) : 어떤 항목이 참조되면 그 근처에 있는 다른 항목들이 곧바로 참조될 가능성이 높다. Memory Hierarchy- 컴퓨터의 메모리를 메모리 계층구조로 구현함으로써 지역성의 원칙을 이용할 수 있다. 이는 서로 다른 속도와 크기를 갖는 여러 계층의 메모리로 구성되어 있다.- 가장 빠른 메모리는 더 느린 메모리보다 비트당 가격이 비싸기 때문.. 2024. 8. 6. [Computer Architecture] Pipelining and Hazards (파이프라이닝과 해저드) Pipelining여러 명령어가 중첩되어 실행되는 구현 기술 Five Stages of Instruction- IF : 메모리에서 인스트럭션 패치 - ID : 인스트럭션 해독 및 레지스터 읽기 - EX : 연산 수행 및 주소 계산 - MEM : 메모리 읽기/쓰기 - WB : 레지스터에 쓰기 Hazards다음 사이클에 실행되어야 할 인스트럭션이 실행될 수 없는 상황을 Hazard라고 한다. - Structure Hazards : 같은 클럭 사이클에 실행하기를 원하는 명령어의 조합을 하드웨어가 지원할 수 없기 때문에 발생 ex) IF와 MEM - Data Hazards : 어떤 단계가 다른 단계가 끝나기를 기다려야 하기 때문에 파이프라인이 지연되어야 하는 경우 발생 - Control Hazards : 다른 .. 2024. 8. 1. [Computer Architecture] CPU Datapath (CPU 데이터패스) Datapath OverviewCPU의 작동원리를 텍스트보다 자세히 이해하기 위해 Datapath를 그려볼 수 있다. 위 그림은 간단히 요약된 CPU 데이터패스이다. 이것을 자세히 알아볼 것이다. Instruction FetchInstruction을 Fetch하는 부분이다. instruction memory상의 PC+4에 있는 instruction을 패치한 후, 4를 거듭 더해 다음 instruction fetch를 준비한다. R-Format Instructions Fetch된 instruction을 해독하여 어떤 레지스터에 있는 값을 읽거나 어떤 레지스터에 저장할 것인지 알 수 있다.레지스터에 저장된 값이 추출되어 ALU에서 계산의 피연산자로 쓰일 수도 있다.ALU에는 피연산자로 메모리 주소가 들어와 .. 2024. 7. 28. [Computer Architecture] Floating Point (부동 소수점) Floating Point소수점의 위치가 고정되어 있지 않는 수로 표현하는 컴퓨터 연산. 이진 소수점 왼쪽에 한 자리 숫자만 나오는 형태로 표현한다. 이진수로 나타내면 다음과 같다.고정 소수점에 비교했을 때 표현할 수 있는 범위가 넓어지지만, 오차가 발생할 수 있다.IEEE 754 Format S: Sign bit (0 -> +, 1 -> -)Normalize significand : 1.0 Exponent : actual exponent + Bias (Single-Precision : 127, Double-Precision : 1023) Denormalized and Special Value- Exponent 00...00 과 11...11은 각각 0 또는 0에 매우 가까운 수 그리고 무한대 또는 Na.. 2024. 7. 16. [Computer Architecture] Integer Arithmetic (정수 연산) Integer Addtion 컴퓨터의 덧셈은 이진수의 덧셈방식을 그대로 사용한다. 손으로 계산할 때 처럼 오른쪽에서 왼쪽으로 한 비트씩 더하고, 이때 생기는 carry는 바로 왼쪽 자리로 보낸다. 손으로 덧셈할 때와 같이 바로 왼쪽 자리에 carry를 보내준다. Integer Subtraction 뺄셈은 덧셈을 이용한다 뺄 값의 부호를 바꾸어 더하기만 하면 된다. 왼쪽 처럼 바로 이진수의 뺄셈방식으로 뺄셈을 하거나, 오른쪽 처럼 2의 보수법을 이용하여 -6을 더하는 방식으로 할 수도 있다. Overflow 연산 결과를 사용 가능한 하드웨어로 표현할 수 없을 때(가용한 비트 범위를 넘어설 때) 오버플로가 발생한다. 덧셈은 부호가 서로 다른 수를 서로 더할 때는 오버플로가 발생하지 않는다. 왜냐하면 .. 2024. 7. 11. [Computer Architecture] CPU Operation (CPU 작동 원리) - MAR (메모리 주소 레지스터) : 읽기와 쓰기 연산을 수행할 메인메모리 주소 저장- MBR (메모리 버퍼 레지스터) : 메인 메모리에서 읽어온 데이터 또는 저장할 데이터 임시 저장 - PC (프로그램 카운터) : 다음에 수행할 인스트럭션 주소 저장- IR (명령어 레지스터) : 현재 실행중인 인스트럭션 저장 CPU 동작 과정1. 메인 메모리는 입력장치에서 받은 데이터 또는 디스크에 저장된 프로그램을 읽어온다.2. CPU는 프로그램을 실행하기 위해 메인 메모리에 저장된 프로그램 인스트럭션과 데이터를 읽어와 처리하고 결과를 다시 메인 메모리에 저장한다.3. 메인 메모리는 처리 결과를 디스크에 저장하거나 출력장치로 보낸다.4. 제어장치는 1 ~ 3 과정에서 인스트럭션이 순서대로 실행되도록 각 장치를 제어.. 2024. 7. 7. 이전 1 2 다음