以前发过好几期这方面的展现,不一样与FPGA的是这种系统化的设计可以让你们对这些东西有一个更加全面的认识。
一、纯手工打造CPU的那些牛人们,欣赏使人叹为观止的纯手工布线和高超技
http://www.armbbs.cn/forum.php?mod=viewthread&tid=25985
二、【本身动手搭建完整计算机系统】从数字逻辑基础,CPU设计,虚拟机实现,汇编器,编译器到操做系统设计一条龙
http://www.armbbs.cn/forum.php?mod=viewthread&tid=89124
三、为了帮助学生学习计算机架构和工做原理,布里斯托大学制做16位计算机平台,100多个
http://www.armbbs.cn/forum.php?mod=viewthread&tid=23367
硬件设计:
GR8CPU是在面包板上构建功能齐全的计算机。第一个版本GR8CPU Rev2拥有600多条电线,74个集成电路和79个LED灯。它是一个8位架构,考虑了简单性和处理能力。CPU能够访问256字节的RAM,已经为其编写了功能齐全的Tic-Tac-Toe游戏。
到目前为止,正在构建第二个GR8CPU Rev3。第一个CPU有不少有趣的工做要作:具备65536字节的内存,改进的算法和设计上更高的速度,该CPU是有史以来最复杂的面包板CPU。
最先效果:
RAM模块已完成
设计ALU
完成ALU设计:
视频卡设计
完成视频输出电路:
php
类Unix系统设计
GR8NIX是受Unix启发的操做系统,Unix是1970年代发布的简单多用户,多任务的操做系统。基于unix的思想的现代操做系统包括Linux, MacOS和Android等。GR8CPU Rev3用汇编语言编写的,内核由2000行汇编实现,5KB代码:
(1)多线程支持32个并发线程。
(2)理论上不受限制的运行程序数量。
(3)动态内存分配,当前大小最大为8 KB。
(4)真正的程序执行与位置无关(动态应用程序加载)。
可是,GR8NIX并不完美,因为硬件限制,GR8NIX没法:
(1)保护内存免受进程侵害。
(2)从尝试运行无效指令中恢复。
(3)可靠地防止进程退出后发生内存泄漏。
实现了动态内存管理后,开始文件系统的制做,实现从磁盘中加载文件:
视频展现,在视频中,你们能够看到gr8nix变得栩栩如生,它成功加载并运行了一个Shell程序,该程序又加载并运行了您想要的任何其余程序。
https://www.bilibili.com/video/BV1vX4y1V735/
首先,Exec负责加载程序并运行它们。Exec首先进行一些完整性检查:文件是否存在?它是程序文件吗?这是有效的吗?接下来,Exec经过检查每一个节条目并将其偏移量添加到其长度中来查找可执行文件的长度。Exec找到的长度是这些计算出的最大长度。
此后,Exec调用thread_launch,这是一种用于准备启动线程的方法。Exec经过向过程当中添加一些原始数据来完成:用户ID,指向分配的内存的指针,运行的命令行以及工做目录等等。算法