又一位纯手工打造CPU的牛人,并且汇编语言实现类Unix系统,支持文件系统

芯智讯

共 1518字,需浏览 4分钟

 ·

2021-03-16 18:03


硬件设计:


    GR8CPU是在面包板上构建功能齐全的计算机。第一个版本GR8CPU Rev2拥有600多条电线,74个集成电路和79个LED灯。它是一个8位架构,考虑了简单性和处理能力。CPU可以访问256字节的RAM,已经为其编写了功能齐全的Tic-Tac-Toe游戏。


    到目前为止,正在构建第二个GR8CPU Rev3。有很多有趣的工作要做:具有65536字节的内存,改进的算法和设计更高的速度,该CPU是有史以来最复杂的面包板CPU。



最早效果:



RAM模块已完成:



设计ALU:



完成ALU设计:



视频卡设计:



完成视频输出电路:



类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程序,该程序又加载并运行了大家想要的任何其他程序。


    首先,Exec负责加载程序并运行它们。Exec首先进行一些完整性检查:文件是否存在?它是程序文件吗?这是有效的吗?接下来,Exec通过检查每个条目并将其偏移量添加到其长度中来查找可执行文件的长度。Exec找到的长度是这些计算出的最大长度。


    此后,Exec调用thread_launch,这是一种用于准备启动线程的方法。Exec通过向过程中添加一些原始数据来完成:用户ID,指向分配的内存指针,运行的命令行以及工作目录等等。

来源:安富莱电子

往期精彩文章

封测产能紧缺,日月光调涨一季度报价后,二三季度还将逐季涨价10%?

美法院发布临时禁令:禁止国防部“拉黑”小米!原因何在?

投资10亿欧元建半导体设计中心!苹果加速5G基带研发,最快或将2023年商用

为特供华为而来?传高通将推4G版骁龙888

晶圆代工新一轮涨价要来了?三大IC设计商提前下了明年的投片订单!

硅片大厂信越化学涨价10%~20%!晶圆制造成本再度提升!芯片又要涨价了!

2021年全球晶圆代工市场:缺货涨价仍将继续,苹果独霸超五成5nm产能!

价值70亿的毅力号火星车,竟然用了一颗23年前的CPU?主频仅200MHz!
12亿美元!中芯与ASML达成新的设备采购协议,会有EUV光刻机吗?

2020年全球PCT专利申请量排名:华为第一,京东方和OPPO进入前十

美国将联合日荷对中国实施半导体设备出口管制?二手光刻机已涨了3倍

零部件库存告急,传中芯国际已获14nm及以上成熟制程许可

行业交流、合作请加微信:icsmart01
芯智讯官方交流群:221807116

浏览 15
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报