※ 引述《waitrop (嘴砲无双)》之铭言:
: 其实这一系列的讨论有一些认知并不正确,
: 身为一半software engineer, 一半architect,
: 应该要出来嘴砲一下, 澄清一些观念,
: 其实所有的讨论里头, brightest大大这篇最符合事实,
: (1) 在APP (application) level, 不可能知道有几颗cpu,
: 更不能对八核或四核作最佳化,
: 一切都在OS kernel level, scheduler 把task分给每个cpu,
: 所以大M说每个独立标签页分配CPU core, 不太可能,
: 除非进去OS kernel 做hard-code最佳化,
: 但是这样可能反而降低一般程式的效能,
: 因为写程式最忌讳hard-code
hard-core定义不明确
这边只不过是在master cpu上跑scheduler加几个判断式
我猜大m是在master cpu主要跑系统相关程式(network,filesystem,dma,Scheduler,memory stack)
做些主要资源管理 所以只要找出开新分页的的task的相关PCB(Process Control Block)特性
之后在scheduler去做判断 分给其他slave cpu如此这样
我相信三星和Q都做得到 也应该都改过 这是在处理web browser最佳化很直觉的做法
但三星和Q只是不会去强调而已
: (2) 举个例子, hard-code 造成的问题,
: 如果我的程式APP默认有八核,
: 所以我开了八个thread/process,
: 结果市面上只有1%的手机是八核,
: 所以理论上, 这程式只能在1%的机器上最佳化,
: 在其他的机器上面都在做context switch,
: 所以大部份写程式的人不太可能去默认cpu数目,
: 也不可能狂开八个thread/process,
: 而且很少有程式真的需要开这么多的thread/process,
: 理论上开个两三个thread/process就很多了
错了 android framework狂开很多thread
就我所知android的netowrk相关HAL
就七八个Thread(or light process从linux kernel角度)
个别说其他相关架构如property, IPC, android档案系统
随便都一堆thread 即使app只开几个thread 整个系统以linux角度都是process
: (3) 那么你会问说多核心的用处在哪?
: 其实多核心的用处在工作站,
: 以及"同时"跑多个应用程式的情况,
: 而不是在于大家讨论的单个程式的multi-thread/process,
: 比方说, 你一边听音乐, 一边上ptt, 还一边跑浏览器, 还看影片,
: 即使如此, OS的scheduling 还是会把大部分的背景程式放到low priority queue,
: 至于说工作站, 有人会在手机上面"同时"多个使用者登入吗?
: 大部分的时候, task都在前几个cpu做掉了,
: 即是cpu做太慢, 也不见得task能够丢给后面的cpu做(这又回到APP的问题),
当然越多cpu 越可以减少使用者对系统的延迟的感觉
但是cpu个数增加到某个数字 使用者就不容易明显感觉出差异
前面有人说到重点大m就是赚40%~50%毛利 便宜又大碗
用更高的硬件规格加上愿意比别人用更便宜的价格去销售 这是MTK一贯的策略
也可以说台湾猪屎屋的公司经营想法大多如此
: (4) 还有人对neon的认知错误,
: neon比较像是从前Intel的MMX, WMMX,
: 就是对多媒体做硬件加速,
: 其实directx在某些方面也有这功能,
: 所以neon "不是" 多工处理功能,
: 不过在特殊应用程式上, 像是影像处理之类的,
: neon 可以对各自独立的资料做多笔资料处理
: (5) 大M的solution是ARM IP + PowerVR,
: Q的solution是Krait + Adreno(AMD/ATI 前身),
: 就GPU那块而言,
: 理论上AMD/ATI在桌机跟工作站的技术应该是狂电PowerVR,
: 事实上听说之前Adreno的效能似乎略输PowerVR,
: 不过最近出的Adreno 320/330 似乎效能又比PowerVR好,
: Anyway, 差别在于大M是买IP, Q是自己做的,
: 先不提效能谁好谁差,
: 但是拿PowerVR来说大M的image/video process能力比较好,
功耗要考虑进去
: 的确是有失公平,
: (6) 至于说为何Q都要自己做,
: 甚至连面板都要自己做Mirasol,
: 原因就像obov说的, Q的目标就是60%毛利率,
: 格局不同, Q不怕失败也不怕赔钱,
: 就是要高毛利率 (毛利稍微掉一些股票马上大跌),
: 只有自己做才有办法做出差异性,
: 也才有办法产生高毛利率,
: 这也是苹果的经营策略之一, 所以才自己做cpu, 自己做os,
: 这绝对不是光说专利营收就能解释的
苹果经营理念很清楚
他是做产品 完完全全是处在使用者角度设计产品 没啥好说
他不会去教导使用者
什么是网页标签 什么是多核心 什么是猪屎屋 gpu是什么东西
而是让使用者觉得他卖的产品很好用
和其他公司的高度不一样
: ※ 引述《brightest (fff)》之铭言:
: : 身为一个资工电机股市三修(虽然都修得很烂)的
: : 宅宅工程师因为没有妹宅在家
: : 来发表一下长篇心得
: : 1.
: : 单核当然可以多工, 但要付出context switch的代价
: : 对于使用者而言就是会觉得卡卡的
: : 不知道有几个人看过M的真八核白皮书
: : 里面提到
: : ==============================================
: : 联发科技真八核解决方案具有为每个独立的浏览器
: : 标签页分配CPU核芯的独一无二的功能
: : ==============================================
: : 如果是真的代表不需要context switch
: : 自然更流畅
: : 另外这也代表M有能力修改android 底层linux kernel
: : 当然也可以把八个AP甚至只是八个thread分派到不同核心
: : 2.
: : 现在是手机效能过剩的时代
: : 那20个常用app难道就需要广告里所谓的better core吗
: : 看影片30fps就够了 跑120fps是很厉害腻?
: : 玩吉他英雄掉那么快按不到早就不想玩了
: : 所以还不如增加多工能力对于使用者体验比较好
: : 3.
: : p=C*VDD^2*f
: : 如果是四核2g与八核1g比耗电
: : C通常与die size成正比 so 1:2
: : f当然就是2:1
: : 两者打平
: : 但要达到2g一般来说VDD要拉到很高
: : 加上是平方关系
: : 所以后者省电
: : 当然这只是粗浅计算而已
: : 结论
: : M的marketing做得很好
: : RD也很争气
: : 所以Q才需要出来靠杯
: : 不然干嘛鸟妳