PA1

PA1

Sat Jul 19 2025
764 字 · 5 分钟

## 开天辟地的篇章

PA0 [[系统基础环境配置.mdx]] 👉 PA1 记录时间:🍅

一些随便记录的东西

状态机

计算机可以分为两部分, 时序逻辑部件, 组合逻辑部件。 在每个时钟周期到来的时候, 计算机根据当前时序逻辑部件的状态, 在组合逻辑部件的作用下, 计算出并转移到下一时钟周期的新状态. 0和1两种状态 如果有50个byte,那就有N=2的50次方种状态

被逗笑的地方

![[Pasted image 20250719143612.png]]

![[Pasted image 20250719163659.png]] 一开始:不就小小PA吗… 后来…:为什么要用这么变态的PA来折磨自己

NEMU

是什么?Nanking University EMUlator 南大的emulator 模拟器

ISA

是什么? Instruction Set Architecture 指令集架构

Kconfig

保证不同ISA,运行结果正常。 .config 生成(CONFIG_X86=y) conf生成: autoconf.h 控制哪些源代码被编译 auto.conf 控制哪些文件参与编译(控制Makefile的源文件和变量)

Monitor

(监视器) 读入客户程序 调试器

TEXT
nemu
├── configs                    # 预先提供的一些配置文件
├── include                    # 存放全局使用的头文件
│   ├── common.h               # 公用的头文件
│   ├── config                 # 配置系统生成的头文件, 用于维护配置选项更新的时间戳
│   ├── cpu
│   │   ├── cpu.h
│   │   ├── decode.h           # 译码相关
│   │   ├── difftest.h
│   │   └── ifetch.h           # 取指相关
│   ├── debug.h                # 一些方便调试用的宏
│   ├── device                 # 设备相关
│   ├── difftest-def.h
│   ├── generated
│   │   └── autoconf.h         # 配置系统生成的头文件, 用于根据配置信息定义相关的宏
│   ├── isa.h                  # ISA相关
│   ├── macro.h                # 一些方便的宏定义
│   ├── memory                 # 访问内存相关
│   └── utils.h
├── Kconfig                    # 配置信息管理的规则
├── Makefile                   # Makefile构建脚本
├── README.md
├── resource                   # 一些辅助资源
├── scripts                    # Makefile构建脚本
│   ├── build.mk
│   ├── config.mk
│   ├── git.mk                 # git版本控制相关
│   └── native.mk
├── src                        # 源文件
│   ├── cpu
│   │   └── cpu-exec.c         # 指令执行的主循环
│   ├── device                 # 设备相关
│   ├── engine
│   │   └── interpreter        # 解释器的实现
│   ├── filelist.mk
│   ├── isa                    # ISA相关的实现
│   │   ├── mips32
│   │   ├── riscv32
│   │   ├── riscv64
│   │   └── x86
│   ├── memory                 # 内存访问的实现
│   ├── monitor
│   │   ├── monitor.c
│   │   └── sdb                # 简易调试器
│   │       ├── expr.c         # 表达式求值的实现
│   │       ├── sdb.c          # 简易调试器的命令处理
│   │       └── watchpoint.c   # 监视点的实现
│   ├── nemu-main.c            # 你知道的...
│   └── utils                  # 一些公共的功能
│       ├── log.c              # 日志文件相关
│       ├── rand.c
│       ├── state.c
│       └── timer.c
└── tools                      # 一些工具
    ├── fixdep                 # 依赖修复, 配合配置系统进行使用
    ├── gen-expr
    ├── kconfig                # 配置系统
    ├── kvm-diff
    ├── qemu-diff
    └── spike-diff

NEMU ISA相关的API说明文档

https://nju-projectn.github.io/ics-pa-gitbook/ics2024/nemu-isa-api.html


Thanks for reading!

PA1

Sat Jul 19 2025
764 字 · 5 分钟

Comment

留下QQ邮箱,可以使用QQ头像~
或者在 Gravatar 设置头像~
(看不到评论试试刷新一下~)