Computer Architecture/Processor9 파이프라인 실제 예시 - 프로세서 시리즈 모아보기 -https://microelectronics.tistory.com/112 기본적인 ISA 동작 방식을 모르면 이해하기 어렵습니다. 실제 예시를 통한 파이프라인 이해현대 프로세서에서 파이프라인 단계의 수와 성능 사이에는 절충이 필요하다. ARM과 AMD의 파이프라인 설계를 통해 이러한 절충과 차이를 살펴본다.1. ARM의 빅/리틀 파이프라인 설계빅 파이프라인: 24단계로 구성되며, 더 높은 클럭 주파수를 위해 설계되었다. 각 단계가 더 작은 작업 단위로 나뉘어 있어 빠르게 클럭을 돌릴 수 있지만, 많은 파이프라인 레지스터가 필요하고 레지스터 오버헤드(latency)가 높아진다.리틀 파이프라인: 10단계로 구성되며, 주파수는 낮지만 파이프라인 레지스터가 적고 오버헤드가 줄어든.. 2024. 12. 13. Pipeline - Data Hazard(데이터 해저드) 발생과 해결 - 프로세서 시리즈 모아보기 -https://microelectronics.tistory.com/112 데이터 해저드(Data Hazards)파이프라인 설계에서 데이터 해저드는 흔히 발생하는 문제로, 명령어 간 데이터 의존성으로 인해 프로세서의 정상적인 실행 흐름이 방해받을 수 있다. 1. 데이터 해저드란?데이터 해저드(Data Hazards)는 특정 명령어가 이전 명령어의 결과 데이터를 필요로 하지만, 그 데이터가 아직 준비되지 않았을 때 발생한다. 파이프라인 설계의 병렬 실행 방식으로 인해 데이터 준비 타이밍이 어긋나며 이러한 문제가 발생한다. 1.1 데이터 해저드 예시명령어 1(Add R1, R2, R3): R2 + R3 결과를 R1에 저장.명령어 2(Add R4, R1, R5): 명령어 1의 결과.. 2024. 11. 25. Pipeline - Pipeline Hazard (파이프라인 해저드) 란? - 프로세서 시리즈 모아보기 -https://microelectronics.tistory.com/112파이프라인 해저드(Pipeline Hazards)파이프라인은 컴퓨터 프로세서의 성능을 극대화하는 중요한 기술이다. 여러 명령어를 동시에 실행하여 성능을 향상시키지만, 그 과정에서 여러 문제가 발생할 수 있다. 이번 글에서는 파이프라인 해저드(Pipeline Hazards)의 종류와 이를 해결하기 위한 다양한 방법들을 간략하게 살펴본다.1. 파이프라인에서 발생하는 해저드란?파이프라인은 여러 명령어를 겹쳐 실행하는 구조이다. 하지만 각 명령어가 자원을 공유하거나 서로 간섭할 경우 문제가 발생한다. 이를 해저드(hazards)라고 부른다. 해저드는 크게 세 가지로 나뉜다:구조적 해저드(Structural Ha.. 2024. 11. 24. Processor의 구조 - 6. Pipeline(파이프라인) 설계 - 프로세서 시리즈 모아보기 -https://microelectronics.tistory.com/112 기본적인 ISA 동작 방식을 모르면 이해하기 어렵습니다. 파이프라인 프로세서 구축 과정파이프라인 프로세서는 단일 사이클 설계를 여러 단계로 나누어 각 명령어가 동시에 실행되도록 설계된다. 이 단계는 Instruction Fetch(IF), Instruction Decode(ID), Execute(EX), Memory Access(MEM), Write Back(WB)의 다섯 단계로 나뉜다. 각 단계가 독립적으로 실행되어 한 사이클 동안 여러 명령어가 병렬로 진행될 수 있게 한다.1. 파이프라인의 다섯 단계IF (Instruction Fetch): 메모리에서 명령어를 가져오는 단계이다.ID (Instruc.. 2024. 11. 13. Processor의 구조 - 5. Pipeline(파이프라인) - 프로세서 시리즈 모아보기 -https://microelectronics.tistory.com/112 기본적인 ISA 동작 방식을 모르면 이해하기 어렵습니다.Pipeline1. 프로세서 파이프라이닝의 필요성1.1 단일 사이클 프로세서단일 사이클 프로세서는 모든 명령어를 한 사이클 내에 실행하는 방식으로 설계된다. 이 방식은 간단하지만, 각 명령어의 실행 시간이 다르기 때문에 문제가 발생한다. 가장 시간이 오래 걸리는 경로(critical path) (예: load 명령어)로 인해 전체 사이클 시간이 결정되고, 이는 프로세서 속도를 제한하게 된다. 예를 들어, 프로그램에서 load와 store 명령어가 30%를 차지하고, 이 명령어들의 실행 시간이 두 배로 길다면, 전체 시간의 35%가 낭비되는 셈이다... 2024. 11. 12. Processor의 구조 - 4. Decoder(디코더) - 프로세서 시리즈 모아보기 -https://microelectronics.tistory.com/112 기본적인 ISA 동작 방식을 모르면 이해하기 어렵습니다.Decoder1. 명령어 디코딩프로세서에서 명령어를 디코딩한다는 것은 명령어의 제어 신호를 해석하여 데이터 흐름과 연산을 제어하는 것이다.예시로 add R8, R17, R18과 같은 R 타입 명령어는 OP 코드, 세 개의 레지스터, 시프트 수, 그리고 함수 코드를 포함하며, 이 정보는 제어 논리에 입력되어 각 부품의 제어 신호를 설정한다.2. Control Logiccontrol logic은 명령어의 특정 필드를 통해 제어 신호를 생성하는 combination logic로 구성된다. 여기서 생성되는 주요 제어 신호는 다음과 같다:Register W.. 2024. 11. 11. Processor의 구조 - 3. Clock 과 Critical Path(임계경로) - 프로세서 시리즈 모아보기 -https://microelectronics.tistory.com/112 기본적인 ISA 동작 방식을 모르면 이해하기 어렵습니다. 1. 프로세서와 클럭클럭 신호는 프로세서의 속도를 결정하는 중요한 요소로, 다양한 상태 요소의 업데이트를 동기화한다.일반적으로 클럭이 빠를수록 프로세서가 더 빠르지만, 설계에서 가장 느린 경로가 전체 속도를 제한한다.2. 프로세서 구성 요소에서의 클럭 연결프로그램 카운터: 클럭 신호가 들어가며, 매 클럭 사이클마다 다음 프로그램 카운터 값으로 업데이트된다.레지스터 파일: 데이터 쓰기 시 레지스터 파일이 클럭 엣지에서 업데이트되므로 클럭 신호가 필요하다.데이터 메모리: 데이터를 쓰기 위해 클럭 신호가 들어가며, 클럭 엣지에서 데이터가 저장된다.in.. 2024. 11. 10. Processor의 구조 - 2. Control Signal 과 Data path - 프로세서 시리즈 모아보기 -https://microelectronics.tistory.com/112 기본적인 ISA 동작 방식을 모르면 이해하기 어렵습니다.Control Signals1. ALU 소스에서의 Control Signals1.1 Immediate 명령어를 위한 ALU 소스명령어 예시: add immediate (addi 즉시 덧셈)작동 방식: 이 명령어는 첫 번째 피연산자를 레지스터 파일에서 가져오고, 두 번째 피연산자를 sign-extended immediate (확장된 즉시 값) 필드에서 가져온다. (즉시값은 상수 값으로, 명령어 자체에 포함된 상수 값을 의미한다)제어 신호: 이 경우, Multiplexer (MUX)가 input 1을 선택하도록 설정된다.설명: add immediate.. 2024. 11. 9. Processor의 구조 - 1. 프로세서의 세가지 구성 요소 - 프로세서 시리즈 모아보기 -https://microelectronics.tistory.com/112 기본적인 ISA 동작 방식을 모르면 이해하기 어렵습니다. 프로세서의 세가지 구성 요소첫째, 프로세서의 주요 구성 요소는 무엇인가?둘째, 이 구성 요소들을 어떻게 연결하고 제어할 것인가?1. 프로세서의 구성 요소먼저, 프로세서가 어떻게 동작하는지 정말 짧게 정리하면 아래와 같다.1. 명령어를 메모리로 부터 fetch해(불러) 오고2. 이를 decode(해석) 해서3. execution(실행) 한다. 그런데 이때, 명령어를 실행하기 위해 메모리에 접근이 필요할 수 있고, 연산이 필요할 수 있으며, 레지스터에서 값을 읽거나 쓸 수도 있다. 우리는, 위 동작 과정을 수행하기 위한 중요한 구성 요소들을 알아야.. 2024. 11. 8. 이전 1 다음