基于RISC-V的CPU设计入门——旁路与停顿

Data Hazards: Forwarding versus Stalling在前面的章节当中,我们展示了流水线执行的优点以及硬件的具体实现方法。然而现在我们需要深入到一些隐蔽的问题来探讨其解决方法。首先是在流水线处理器中的第一个重要的问题:数据冒险。在第V节中我们已经说明了,数据冒险在流水线的执


基于RISC-V的CPU设计入门——流水线化的数据路径与控制

Pipelined Datapath and Control前面我们给出了一个单周期非流水线实现的数据通路图。在上一节当中我们说明了将RISC-V的指令执行划分为5步,因此在流水线的实现当中,我们也采用5级流水线的实现方式。因此,我们首先要将流水线的数据通路划分成5块:IF:取指ID:译码以及取寄存


基于RISC-V的CPU设计入门——流水线概览

An Overview of Pipelining流水线是一种实现的技术,指的是在执行过程中多条指令互相重叠。在当今,流水线技术已经非常普遍。在流水线实现的过程中,指令执行的时间和非流水线的实现是相同的,而流水线比非流水线实现的速度要快的原因在于,流水线中指令的执行是并行的。使用流水线可以提高处理器


基于RISC-V的CPU设计入门——简单架构实现

A Simple Implementation Sceheme在这一节当中,我们将会讨论如何创建一个简单的RISC-V架构的实现。我们使用上一节中构建的数据通路来进行实现,通过增加简单的控制功能。这个简单的实现包括LD(Load Double Word)、SD(Store a Double Word


基于RISC-V的CPU设计入门——设计数据路径

Building a Datapath在这一节当中,我们将会深入到了解每种指令所需要的数据通路元素(datapath elements),也就是一个用于操作或者保存数据的功能单位。在RISC-V的实现当中,数据通路的元素包括指令以及数据存储器、寄存器组、ALU以及加法器。PC第一个需要的器件是一个存


基于RISC-V的CPU设计入门——基本逻辑设计

Logic Design Conventions在RISC-V的实现当中,数据路径有两种不同的逻辑元素:组合逻辑元素以及状态元素。组合逻辑元素是不能保存状态的逻辑器件,比如与门以及ALU。状态元素是可以保存状态的逻辑器件,比如寄存器或者存储器。状态元素至少有两个输入和一个输出。两个输入包括数据输入以


基于RISC-V的CPU设计入门——概述

在整理上学期间的资料时,发现了一系列当初入门RISC-V微处理器设计所整理的笔记,基于Patterson大师所写的Computer Organization and Design RISC-V edition中第四章The Processor,就当是回归初心了。由于本人当时水平还比较菜,所以难免会有