探秘PC Engine CPU:速度快但指令集有限,内存管理有特色!

突发:深入了解PC Engine CPU

作者在对新系统产生兴趣后,一直在开发一款PC Engine模拟器(又名TurboGrafx - 16),发现其硬件相当有趣。该主机最初于1987年发布,硬件处于第三代和第四代游戏机之间,虽常被归为第四代,但在北美难与Genesis和超级任天堂竞争,在欧洲也未正式发售。它还是第一款支持基于CD游戏的游戏机。

涡轮增压版6502

尽管在北美被称为TurboGrafx - “16”,但这款游戏机实际上没有16位CPU,其CPU拥有8位寄存器、8位ALU和8位数据总线,试图通过超高速度弥补不足。

该CPU是Hudson定制设计的HuC6280组件的一部分,大量基于Western Design Center对经典6502 8位CPU的增强版本65C02。对于有NES或SNES编程经验的人来说,其指令集会很熟悉,还增加了一些HuC6280独有的指令。

HuC6280继承了65C02的大部分新指令和新寻址模式,修复了6502一些不完善的方面,也没有6502奇怪的非法操作码行为。

CPU可以在“低速”(约1.79 MHz)和“高速”(约7.16 MHz)两种时钟速度下运行,开机时总是处于低速状态,游戏可通过CSL和CSH指令切换速度。在20世纪80年代末到90年代初,7.16 MHz对于基于6502的CPU来说非常快,且PC Engine CPU不受内存延迟影响。

在原始速度方面,PC Engine与Genesis的主7.67 MHz 68000 CPU相比不逊色,但哪个CPU性能更好取决于代码及其编写方式。

值得注意的是,许多HuC6280指令比等效的6502或65816指令多花1到2个周期,这可能是为了支持高时钟速度或节省成本。

内存管理

在HuC6280上运行的软件使用16位内存地址,但内置了MMU,将物理地址空间从16位扩展到21位。MMU将16位逻辑地址空间划分为八个8 KB页面,每个页面有自己的MPR,可映射到一个8 KB的物理页面。

地址转换有特定的函数,PC Engine游戏通常将页面0映射到内存映射I/O页面,页面1映射到工作RAM页面,页面7映射到游戏卡带ROM的前8 KB,同时可自由重新映射页面2 - 6。游戏可使用CPU指令TAMi和TMAi与MPR进行交互。

HuC6280的零页和硬件栈位于$2000 - $21FF,而不是6502上的$0000 - $01FF。该游戏机的物理内存映射简单,比SNES内存映射简单得多。

这将游戏卡带的大小限制为1 MB,不过《街头霸王II》通过银行切换映射器解决了这个问题。8 KB的工作RAM不多,CD - ROM2扩展可增加额外RAM,但对于CD - ROM2游戏来说,64 KB也不算多。

一些新特性

新指令中最突出的是五个块传输指令:TAI、TDD、TIA、TII和TIN,它们可将数据从一个内存位置批量复制到另一个内存位置,每个指令对源地址和目标地址应用不同的地址步长。

“交替”指地址步长在递增1和递减1之间交替,这些指令复制速度为每6个周期复制1个字节,有17个周期的开销。CPU在进行块传输时无法响应中断,一次块传输指令最多可复制64 KB的数据。

另一个新指令SET可设置新的T标志,仅对紧随其后的指令有效。ST0、ST1和ST2可将立即操作数直接写入三个VDC端口。新的BSR指令工作方式与JSR几乎相同,但操作数是相对于PC的偏移量。

TST类似于65C02的TRB和TSB指令,但不修改内存值。还有新的交换指令SAX、SAY和SXY,以及清除指令CLA、CLX和CLY。

结语?

作者希望后续能写关于PC Engine其他硬件部分的文章,尤其是视频硬件,不过这还不确定。

大家要持续关注PC Engine CPU的相关动态,说不定会有更多有趣的发现!

内容概要:本文介绍了一个针对电力系统连锁故障传播路径的N-k多阶段双层优化及故障场景筛选模型,该模型基于混合整数线性规划(MILP)方法构建,旨在全面评估电力系统在遭受多重故障时的脆弱性与恢复能力。通过引入故障传播路径的概念,模型能够动态模拟故障在电网中的逐级扩散过程,并结合多阶段优化策略,实现对关键故障场景的有效识别与优先排序。整个框架不仅考虑了初始故障元件的选取,还涵盖了后续因潮流转移引发的级联跳闸行为,从而提升了风险评估的准确性与时效性。该研究已在Matlab平台上完成代码实现,具备良好的可复现性和工程应用价值,适用于提升现代电网的安全防御水平。; 适合人群:电力系统、能源安全及相关领域的科研人员、高校研究生以及从事电网规划与运行管理的工程技术人员。; 使用场景及目标:①用于电力系统安全评估中识别最危险的N-k故障组合;②支撑电网应急预案制定与薄弱环节改造;③作为学术研究中关于级联故障建模与优化求解的教学与验证工具;④服务于智能电网背景下抵御蓄意攻击或极端事件的风险防控决策。; 阅读建议:建议读者结合Matlab代码深入理解模型的数学 formulation 与求解流程,重点关注目标函数设计、约束条件构建及双层优化结构的实现逻辑,同时可通过调整系统参数和故障设定进行仿真对比分析,以掌握不同因素对连锁故障演化的影响规律。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值