728x90 반응형 Computer/컴퓨터구조15 [컴퓨터구조] 메모리 계층구조 (Memory Hierarchy) 이번 글 부터는 메모리에 대해 알아보도록 하겠다. 보통 메모리의 핵심 원리를 설명할 때에는 도서관에 있는 책에 비유한다. 어떤 주제의 보고서를 작성하기 위해, 도서관의 서가에서 관련된 책을 여러 권 뽑아와 책상에 올려 놓는다. 그리고 그들 중에서 골라 펼쳐 내용을 확인한다. 이렇게 관련된 책들을 책상 위에 여러 권 놓을 수 있다면 매번 책꽃이로 가 책을 골라오는 것에 비해 많은 시간을 아낄 수 있다. 메모리를 설계하는 데에도 똑같은 원리가 적용된다. 한없이 크고 빠른 메모리는 존재하지 않고, 존재하더라도 그 비용이 매우 비싸 비효율적이다. 따라서 느리고 큰 메모리(도서관의 서가)에서 관련된 일부를 빠르고 작은 메모리(책상 위)에 올려 둠으로써 한없이 크고 빠른 메모리와 유사하게 만들어 낸다. 도서관의 서.. 2024. 6. 8. [컴퓨터구조] Pipelining(5): 제어 해저드 (Control Hazard) 이전 글에서는 데이터 해저드에 대해 알아보았다.[컴퓨터구조] Pipelining(4): 데이터 해저드 (Data Hazard) [컴퓨터구조] Pipelining(4): 데이터 해저드 (Data Hazard)파이프라인을 실행하는 데에는 여러 장애가 존재한다. 앞서 파이프라이닝에 대해 설명하며 언급했다싶이 구조적 해저드, 데이터 해저드, 제어 해저드가 존재한다. [컴퓨터구조] Pipelining(1): 파turtle2.tistory.com 데이터 해저드는 산술 연산과 데이터 전송과 관련된 해저드이다. 이번 글에서는 조건부 분기와 관련된 해저드인 제어 해저드(control hazard)에 살펴보도록 하자. 파이프라인이 계속 일을 하기 위해서는 매 클럭마다 명령어가 인출되어야 한다. 하지만 beq 명령어에서 분.. 2024. 6. 7. [컴퓨터구조] Pipelining(4): 데이터 해저드 (Data Hazard) 파이프라인을 실행하는 데에는 여러 장애가 존재한다. 앞서 파이프라이닝에 대해 설명하며 언급했다싶이 구조적 해저드, 데이터 해저드, 제어 해저드가 존재한다. [컴퓨터구조] Pipelining(1): 파이프라이닝이란 [컴퓨터구조] Pipelining(1): 파이프라이닝이란파이프라이닝(pipelining)은 여러 명령어가 중첩되어 실행되는 구현 기술이다. RISC-V 명령어에서는 전통적으로 5단계가 걸린다.메모리에서 명령어 가져온다.명령어 해독하는 동시에 레지스터를turtle2.tistory.com 여기서는 데이터 해저드에 대해 살펴보도록 하겠다. 먼저 종속성이 여러 개 있는 프로그램을 살펴보자. 종속성은 파란색으로 표시했다. 마지막에서 네 명령어 모두 첫 번째 명령어의 레지스터 x2의 결과에 종속적이다. .. 2024. 6. 2. [컴퓨터구조] Pipelining(3): 파이프라인 제어 앞서 단일 사이클 데이터패스에 제어를 추가했던 것처럼 파이프라인 데이터패스에도 제어를 추가해보자. 최대한 단일 사이클 데이터패스에서 사용했던 제어를 가지고 온다. 따라서 6개의 신호(RegWrite, ALUSrc, PCSrc, MemRead, MemWrite, MemtoReg)와 ALUOp에 대한 내용은 이전 글을 참고해도 좋다. [컴퓨터구조] Processor(3): 제어 유닛 (control unit) [컴퓨터구조] Processor(3): 제어 유닛 (control unit)앞의 글에서는 데이터패스를 간단히 구성해보았다. [컴퓨터구조] Processor(2): 데이터패스 만들기 [컴퓨터구조] Processor(2): 데이터패스 만들기먼저 데이터패스를 설계해보자. 이것을 시작하기 위turtle2.ti.. 2024. 6. 1. [컴퓨터구조] Pipelining(2): 파이프라인 데이터패스 이전 글에서는 단일 사이클을 가정하고 데이터 패스를 설계했다.[컴퓨터구조] Processor(2): 데이터패스 만들기 [컴퓨터구조] Processor(2): 데이터패스 만들기먼저 데이터패스를 설계해보자. 이것을 시작하기 위해 RISC-V 명령어 종류 각각을 실행하는 데 필요한 주요 구성 요소들을 살펴본다.첫 번째 구성 요소는 instruction memory이다. 프로그램의 명령어를turtle2.tistory.com이번에는 파이프라인 단계를 고려해 설계해보자. 위 그림은 앞서 설계한 단일 사이클 데이터패스에 파이프라인 단계를 보여주고 있다. 각 부분은 명령어 실행 단계에 따라 이름이 붙여진다.IF: 명령어 인출ID: 명령어 해독 및 레지스터 파일 읽기EX: 실행 or 주소 계산MEM: 데이터 메모리 접근.. 2024. 6. 1. [컴퓨터구조] Pipelining(1): 파이프라이닝이란 파이프라이닝(pipelining)은 여러 명령어가 중첩되어 실행되는 구현 기술이다. RISC-V 명령어에서는 전통적으로 5단계가 걸린다.메모리에서 명령어 가져온다.명령어 해독하는 동시에 레지스터를 읽는다.연산 수행하거나 주소 계산데이터 메모리에 있는 피연산자에 접근결과값을 레지스터에 쓴다.4번 5번 과정의 경우 필수는 아니며 명령어에 따라서 실행되지 않을 수 있다. 단일 사이클과의 성능을 비교해보자. 단일 사이클 모델에서는 모든 명령어가 한 클럭 사이클 이내에 실행된다. 따라서 가장 느린 명령어를 수용할 수 있을 만큼 클럭 사이클이 충분히 길어야 한다. 가장 느린 명령어는 lw로 위의 표에서 800ps가 걸린다. 파이프라인 구현에서는 모든 단계가 한 클럭 사이클에 처리된다. 따라서 클럭 사이클은 가장 .. 2024. 6. 1. [컴퓨터구조] Processor(3): 제어 유닛 (control unit) 앞의 글에서는 데이터패스를 간단히 구성해보았다. [컴퓨터구조] Processor(2): 데이터패스 만들기 [컴퓨터구조] Processor(2): 데이터패스 만들기먼저 데이터패스를 설계해보자. 이것을 시작하기 위해 RISC-V 명령어 종류 각각을 실행하는 데 필요한 주요 구성 요소들을 살펴본다.첫 번째 구성 요소는 instruction memory이다. 프로그램의 명령어를turtle2.tistory.com여기서는 만든 데이터패스에 단순한 제어 기능을 추가해보자. 1. ALU 제어먼저 RISC-V ALU를 제어하는 법을 살펴보자. 제어 입력 4개를 사용하는 4개의 조합이 정의되어 있다.ALU 제어선기능0000AND0001OR0010add0110subtract ALU는 명령어의 종류에 따라 이 네 가지 기능 .. 2024. 6. 1. [컴퓨터구조] Processor(2): 데이터패스 만들기 먼저 데이터패스를 설계해보자. 이것을 시작하기 위해 RISC-V 명령어 종류 각각을 실행하는 데 필요한 주요 구성 요소들을 살펴본다.첫 번째 구성 요소는 instruction memory이다. 프로그램의 명령어를 저장하고, 주소가 주어지면 해당 명령어를 보내준다. 이 메모리는 읽기 접근만 제공하면 되므로 conbinational circuit으로 취급된다.다음으로는 program counter(PC)를 살펴보자. PC는 현재 명령어의 주소를 가지고 있는 레지스터이다. 매 클럭 사이클 끝에 쓰기가 행해지는 32비트 레지스터이므로 쓰기 제어 신호는 필요하지 않다.다음으로 PC를 다음 명령어 주소로 증가시키는 덧셈기가 필요하다. ALU를 이용해 쉽게 만들 수 있다. ALU가 항상 덧셈을 하도록 제어선을 연결한.. 2024. 5. 30. [컴퓨터구조] 클럭킹 방법론(clocking methodology), 에지 구동 클럭킹 클럭킹 방법론은 신호를 언제 읽고 언제 쓸 수 있는지를 정의한다. 클럭킹 방법론은 예측 가능성을 보장하기 위해 고안되었다. 에지 구동 클럭킹 (Edge-triggered clocking)sequential 논리 소자에 저장된 값은 클럭 에지에서만 바꿀 수 있음을 의미한다. 클럭 에지는 낮은 값에서 높은값으로, 혹은 높은 값에서 낮은 값으로의 변이를 의미한다. state element만이 데이터 값을 저장할 수 있으므로, 모든 combinational 회로는 state element에서 입력을 받고 state element로 출력을 내보낸다. 위의 그림은 combinational 회로를 둘러 싸고 있는 2개의 state element를 보여준다. 앞으로의 글에서 모든 state element는 상향 에지.. 2024. 5. 30. [컴퓨터구조] Processor(1): 데이터패스와 RISC-V의 구현 RISC-V의 구현하기 위한 핵심 부분을 살펴보자.메모리 참조 명령어: lw, sw산술/논리 명령어: add, sub, and, or조건부 분기 명령어: beq이들을 살펴봄으로서 데이터패스와 제어 유닛을 설계하는 데 사용되는 핵심 원리를 이해할 수 있다. 나머지 명령어에 대한 구현 또한 거의 비슷하다. An Overview of the Implementation모든 명령어의 첫 두 단계는 다음과 같다.PC(program counter)를 프로그램이 저장되어 있는 메모리에 보내고, 메모리로부터 명령어를 가져온다.명령어의 필드에서 데이터를 불러올 레지스터를 읽는다.이 두 단계 이후의 행동들은 명령어 종류에 따라 다르다. 하지만 위에서 언급한 세 명령어 종류(메모리 참조 명령어, 산술/논리 명령어, 조건부 분.. 2024. 5. 29. 이전 1 2 다음 728x90 반응형