如果我构建一个新的CPU, BIOS应该包含什么?(详细信息)



我试图在模拟器中从头开始(从Nor门)构建CPU,然后在面包板上。

只是想了解事情是如何运作的。

现在,由于我的CPU将是新的,我将如何指示操作系统,比如arch linux与它一起工作?

BIOS将扮演什么角色?我是否必须编写一个包含汇编程序的BIOS ?

我也需要在操作系统上写一些程序吗?

因此,它开始与我的CPU通信。

(p。S]:我是一名程序员,所以直到汇编级我才知道程序是如何运行的。

只是想知道硬件层在Assembly之外是如何工作的。

或者换句话说,第一台计算机的BIOS上写了什么?

它是如何引导的?

我可以向你推荐《The Fabric of computing》;文章系列:https://jeelabs.org/202x/tfoc/

在每台计算机中都会有一些初始代码,但它的功能完全取决于您!在嵌入式系统中,"生物"是完整的应用程序。

从焊接门直接走是一条漫长而艰苦的路。我正在做fpga上的CPU设计,我是一个课程的贡献者,带你从逻辑的第一步到一个完整的RISC-V CPU与编译的C程序:

https://github.com/BrunoLevy/learn-fpga

祝你好运!使用fpga,实际上可以使用自定义设计来引导Linux:

https://github.com/enjoy-digital/litex

只是想了解事情是如何运作的。

事情的工作原理是CPU只是系统的一部分。没有RAM它是无用的,没有某种形式的持久存储它是无用的,没有某种IO与外部世界交谈(例如,串行端口可能)它是无用的。

BIOS将扮演什么角色?

"BIOS"(或者更准确地说,是系统打开时使用的某种ROM)起着"存储"的作用。- CPU获取初始化其他存储设备所需的可执行代码并加载更多可执行代码的方法。

你的"NOR门"分布在数百个面包板上。你可能最终会用一个非常小的"操作系统"直接在ROM中,这样您就不必担心提供额外的持久存储;经过大约10年的努力,你最终可能会看到你的最小操作系统工作3次(在厌倦"本周哪根线连接不好?"之前)。不断破碎)。

For some perspective;1位RAM将花费您4个NOR门,因此512字节的RAM将花费您16384个NOR门(更多用于行/列选择逻辑等)。计算结果是超过4000个74LS02四重双输入NOR门。芯片。如果你能在一个面包板上装上40个这样的芯片,那么你就会看到大约100个面包板,最终没有足够的内存来运行任何操作系统。

操作系统可以非常非常简单——如果你只想让系统启动并做一些事情,比如设备和线程,但不想要一个成熟的操作系统的所有保护和功能。

你真正需要的是响应中断的能力,并向用户级软件发出信号,表明数据准备好了(缓冲输入)或设备准备好了,并且,有点相反,用户级软件可以指示(例如通过系统调用)它想要发送到设备(缓冲输出)或从中获取数据。这可以通过一个中断处理程序,一个迷你操作系统的几百行汇编来实现。

但是有很多系统甚至没有那么复杂。有些程序微控制器只是运行一个程序,没有中断,它们有一个主事件循环,不断检查按钮按下或其他。

相关内容

  • 没有找到相关文章

最新更新