About

 

这个网站是一个博客,高中的时候记录了一些信息竞赛中题目的题解和诸如快速傅立叶变换以及多项式相关的内容。现在主要是随手记录一些东西,比如一些我认为做的还可以的课程项目,一些数学上遇到的内容,以及一些杂事。博客并不会定期更新。

Q:想要联系我怎么办?

A:邮件至 name [at] gmail [dot] com, name = miskcoo

注:本页面的内容禁止任何形式的转载。

Projects

这里是一些本科期间的课程项目。

(with:陈晟祺,刘晓义,陈嘉杰)

这是参加“龙芯杯”的作品,获得特等奖。我们自己实现了一个十级双发射顺序MIPS32处理器,包含32位浮点单元和一个AES加速单元。在其上自行设计了SoC同时移植了Linux操作系统。可以运行图形界面(X服务)以及Python等一大类程序,在OpenSSL上利用AES单元加速后吞吐率大约为10MBps(CPU主频80MHz,在i7-8750H上不利用AESNI指令的实现吞吐率大约为100MBps)。同时浮点单元能够较快地绘制Mandelbrot集的图像,我们还实现了通过变分自编码器(VAE)生成手写数字图像等。

Github: https://github.com/miskcoo/nontrivial-mips

  • rCore for MIPS32 - Linux兼容的rust编写的操作系统

(with:陈晟祺)

这是操作系统的课程项目,rCore是用rust编写的一个操作系统,也是由清华的同学编写的。在我们加入之前支持了x86_64, RISCV32/64, AArch64三个平台。我们主要将其移植到MIPS32上。它最终可以在组成原理课程编写的MIPS32处理器上运行。

Github:https://github.com/rcore-os/rCore

  • TrivialMIPS - 五级双发射顺序MIPS32处理器

(with:陈晟祺,姚沛然)

这是大三上学期组成原理、软件工程的联合实验,在组成原理的ThinPad实验板上编写的MIPS32处理器。由于仅有SRAM,处理器不带有Cache,和“龙芯杯”的相比较为简陋。不过,加上之后操作系统和编译原理的成果,还是实现了在自己写的CPU上运行自己写的操作系统,同时运行自己写的编译器生成的程序。

Github: https://github.com/trivialmips/trivialmips

(with:陈晟祺)

这是大二下学期数字逻辑设计的项目,也是我的第一个FPGA项目。主要是通过FPGA接受键盘的输入,将输入转化为控制命令通过串口输出给计算机。同时也通过串口接受计算机传回的控制命令名且解析、执行,修改对应位置的字符,再将字符进行渲染通过VGA输出到屏幕。支持VT220以及部分xterm-256color的控制序列。

Github: https://github.com/Harry-Chen/fpga-virtual-console

这是数据库系统概论的课程项目,用C++实现的一个SQL数据库引擎。实现了大部分常见的SQL语句和类型。同时支持多表连接、复杂表达式运算、多主键约束、外键约束、CHECK约束、UNIQUE和DEFAULT约束、聚集查询、利用B+树索引的查询优化,同时,它支持任意长度的VARCHAR类型。

Github: https://github.com/miskcoo/TrivialDB

大学后的第一个课程项目,利用Kociemba算法实现的三阶魔方求解器。大约能够在1秒内通过不多于32步复原一个三阶魔方。另外,还实现了Krof算法,可以计算最少复原方案,不过这需要很长的时间。同时,我利用OpenGL对复原过程进行了动画展示。

Github: https://github.com/miskcoo/rubik-cube

  • 其它项目
    • Mandelbrot-Render,一个高精度Mandelbrot渲染器。
    • SimpleTomasulo - Tomasulo算法模拟器。
    • SimilaritySearch - 近似查找/近似连接算法,以及一个“互联网打车”应用。
    • OfficeOnline - 在线审批系统。
    • RIPRouter - 支持RIP协议的路由器。
    • TrivialNews - Java实现的Android新闻阅读器。
    • 数独 - Qt编写的数独,可生成及求解不同难度数独。
    • 国际跳棋 - Qt编写的双人国际跳棋游戏。
    • 人物信息检索 - Python编写的爬虫,可以抓取Wikipedia的人物信息并且显示。