zepan 发表于 2016-1-17 16:15:55

HP 39gs/48gii的超频固件修改尝试(75->200)


看某宝上HP39 gs只要45块包邮,就入手了个,但发现运算速度很慢,就想着提升下速度。
HP 39gs用的是S3C2410主控,正常工作的最高频率是203MHz,但是为了计算器省电考虑39gs的实际工作频率是75MHz。
由于39gs本身运行的是前代芯片的模拟器,所以计算深度循环(如求和积分)的效率很低,而提升主频是最简单粗暴的加速方法,唯一问题是导致功耗增加,提高到200MHz大概会增加60%左右的功耗(达到70mA左右),超频到300MHz可能会增加100%的功耗(未验证)。
另外,由于机子上用的lyontek的SRAM等待时间高达70ns(即只有14MHz频率),所以很大程度受限于该内存速度,建议替换成ISSI的5V的高速SRAM,可达到10ns以内,即100MHz以上存取速度。
我尝试逆向了论坛上提供的48gii的镜像,修改了下主PLL的频率,修正了flash,sram,LCD的时钟,大家可以试下下面这两个超频固件,分别是提升到200MHz和300MHz的镜像,烧录方法和魔改时一样,用jtag烧录即可。
http://pan.baidu.com/s/1skgIq5J
注意机器中CPU电压为1.8V,只能稳定提升到正常的203MHz,超频到237MHz;如果要提升到理论上的300MHz,则需要提供超过2V的CPU核心电压,尚未作验证。

还可以自己使用winhex等编辑器对固件进行修改,定制频率,主要是三处修改:
主时钟频率:

偏移0x320, 0x324, 0x328这三个字节分别是SDIV,PDIV,MDIV,公式为:
        Mpll = (m * Fin) / (p * 2^s)        //Fin=12MHz
        m = (MDIV + 8), p = (PDIV + 2), s = SDIV
        选取值时注意以下原则:
                PLL Value Selection Guide
                1. Fout = m * Fin / (p*2^s), Fvco = m * Fin / p = Fout*2^s
                2. Fin/(25*p) < 28.449MHz/m < Fin/(10*p)
                3. 0.7 < 3.373/sqrt(m) < 1.8        ;这句应该是手册笔误,看示例范围是在70<m<180
                4. 160Mhz <= Fvco <= 400MHz
                5. 20MHz <= Fout <= 300MHz ( The max. Fout of the PLL itself is 300Mhz )
                6. FCLK >= 3X-tal or 3EXTCLK

存储的等待周期:

偏移0x221, 0x225这两个字节分别表示flash、SRAM的等待周期,
原值是3,需要根据改的频率和使用的存储的等待时间来计算等待的周期
如使用的SRAM是70ns等待时间(这是很慢的了,很大瓶颈在SRAM上)
        则70ns/(1/200Mhz)=14 个周期,则该字节修改成7
        Access cycle
        000 = 1 clock 001 = 2 clocks
        010 = 3 clocks 011 = 4 clocks
        100 = 6 clocks 101 = 8 clocks
        110 = 10 clocks 111 = 14 clocks
液晶的时钟周期:

偏移0x8f9开始的两个字节,原值是0x5B,时钟在200KHz。主频提升了几倍,该值也需要提升几倍,
        如200/75*0x5b = 0xf3


星尘幻影 发表于 2016-1-17 17:25:06

算个西格玛和积分看下用多少时间

zepan 发表于 2016-1-17 18:34:13

本帖最后由 zepan 于 2016-1-17 18:35 编辑

星尘幻影 发表于 2016-1-17 17:25
算个西格玛和积分看下用多少时间
初来贵宝地,不知道这里一般用什么式子对比测试?
新买了12ns级的sram,打算下星期抽空完整测试下,顺便看下能不能直接从汇编上优化一些算法。

Mike 发表于 2016-1-17 18:54:40

大神啊……{:13_323:}

晨皓小盆友 发表于 2016-1-18 12:14:47

专业啊。

jjww2999 发表于 2016-1-19 08:27:16

虽然不会用和烧录。还是顶一个。

另外小小的说一下,hp39gs 这种型号的计算器,由于出产时代早,所以,计算功能没有作限制,仅仅只受限于其ram的剩余量。
所以,既然能改变硬件和固件参数,那么,顺便就把固件代码的识别内存的容量给扩大,相信会更有意思。

zxpwww 发表于 2016-1-22 21:13:27

你好,想加你为好友,我的QQ269633640,解决一下ti89titanium计算器的超频问题,请给我联系。

yhd1553877477 发表于 2016-2-11 10:59:53

费米子来顶一个

The_Andy! 发表于 2016-6-20 18:15:20

jjww2999 发表于 2016-1-19 08:27
虽然不会用和烧录。还是顶一个。

另外小小的说一下,hp39gs 这种型号的计算器,由于出产时代早,所以 ...

不对,这个系列的计算器里面跑的是运行在arm处理器上的saturn处理器模拟器,这个处理器内部集成的换页器只有一个,所以可用内存最多就那么多,
要么就重写一整个saturn模拟器,这显然是不现实的

2014136629@qq.c 发表于 2018-8-13 09:26:14

厉害 有一个问题 我刷入之后计算速度好像并没有提升 是怎么回事呢i'
刷入工具jlink 写入固件48gii-200.bin
和一台正常的48一起算Σ(x=1,x,2^x)速度相同

2305247535 发表于 2018-8-18 06:37:21

2014136629@qq.c 发表于 2018-8-13 09:26
厉害 有一个问题 我刷入之后计算速度好像并没有提升 是怎么回事呢i'
刷入工具jlink 写入固件48gii-200.bin ...

因为是CAS啊……这是符号运算……

Razor 发表于 2019-8-22 18:23:48

好帖,准备换IS61LV12816L-8TL,8ns时间,3.3V电压,应该可以直接换
页: [1]
查看完整版本: HP 39gs/48gii的超频固件修改尝试(75->200)