• <div id="0yoao"><tr id="0yoao"></tr></div>
    <dl id="0yoao"></dl>
  • <sup id="0yoao"></sup>
    <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
  • Linux common clock framework(3)_实现逻辑分析

    作者:wowo 发布于:2014-11-24 22:31 分类:电源管理子系统

    前面两篇clock framework的分析文章,分别从clock consumerclock provider的?#23884;齲?#20171;绍了Linux kernel怎么管理系统的clock资源,以及device driver怎么使用clock资源。本文将深入到clock framework的内部,分析相关的实现逻辑。

    注:本文使用的kernel版本为linux-3.10.29。虽然最新版本的kernel增加了一些内容,但主要逻辑没有改变,就不紧跟kernel的步伐了。

     

    阅读全文>>

    标签: Linux framework clock 实现

    评论(17) 浏览(14174)

    一个技术男眼中的Smartisan T1手机

    作者:travelhop 发布于:2014-11-24 11:03 分类:技术漫谈

    作者从一个技术人的眼光来看一?#31185;?#26377;争议的Smartisan T1手机,也就是传说中的锤子手机。

    锤子手机究竟如何?

    好用吗?

    锤子手机的情怀究竟为何物?

    这篇文章给不了你所有的答案,这篇文站只会告诉你,很多事情,要体验,要感受,而且,要有端正的三观作为基础。

    阅读全文>>

    标签: 锤子手机 三观端正 罗永浩 体验 Smartisan T1

    评论(3) 浏览(5781)

    从“码农”说起

    作者:travelhop 发布于:2014-11-18 10:53 分类:技术漫谈

    一个正常的市场经济里,有创意,有技术的人,都是能够得到回报的。现在我们的社会还远远没有到软件供过于求的状态,反而是大量的需求得不到满足,大量的社会协调缺乏软件技术的协助。相信机会总是有的——即使是在中国。

    阅读全文>>

    标签: 码农 宿命 人力成本

    评论(1) 浏览(4473)

    程序员的“纪律性?#20445;ā?#31243;序员杂志》署名文章)

    作者:travelhop 发布于:2014-11-18 10:46 分类:技术漫谈

    多问几个为什么一定要这样和为什么不那样,对一个年轻人,尤其对一个有技术追求的年轻人永远有?#20040;Α?/span>

    单纯从项目开发的效率来讲,团?#27704;?#38754;有这样的软件多面手,有能够提出这样想法的人,比一个外行领导者对于开发者纪律性的要求要有意义,也有效的多。



    阅读全文>>

    评论(4) 浏览(5322)

    Linux内核同步机制之(三):memory barrier

    作者:linuxer 发布于:2014-11-14 19:20 分类:内核同步机制

    我记得以前上学的时候大家经常说的一个词汇叫做所见即所得,有些编程工具是所见即所得的,给程序员带来极大的方便。对于一个c程序员,我们的编写的 代码能所见即所得吗?我们看到的c程序的逻辑是否就是最后CPU运行的结果呢?很遗憾,不是,我们的“所见”和最后的执行结果隔着:

    1、编译器

    2、CPU取指执行

    编 译器将符合人类思考的逻辑(c代码)翻译成了符合CPU运算规则的汇编指令,编译器了解底层CPU的思维模式,因此,它可以在将c翻译成汇编的时候进行优 化(例如内存访?#25163;?#20196;的重新排序),让产出的汇编指令在CPU上运行的时候更快。然而,这种优化产出的结果未必符合程序员原始的逻辑,因此,作为程序员, 作为c程序员,必须有能力了解编译器的行为,并在通过内嵌在c代码中的memory barrier来指导编译器的优化行为(这种memory barrier又叫做优化屏障,Optimization barrier),让编译器产出?#38180;?#25928;,又逻辑正确的代码。

    CPU的核心思想就 是取指执行,对于in-order的单核CPU,并且没有cache(这种CPU在现实世界中还存在吗?),汇编指令的取指和执行是严格按照顺序进行的, 也就是说,汇编指令就是所见即所得的,汇编指令的逻辑被严格的被CPU执行。然而,随着计算机系统越来越复杂(多核、cache、 superscalar、out-of-order),使用汇编指令这样贴近处理器的语言也无法保证其被CPU执行的结果的一致性,从而需要程序员(看, 人还是最不可以替代的)告知CPU如何保证逻辑正确。

    综上所述,memory barrier是一种保证内存访问顺序的一种方法,让系?#25345;?#30340;HW block(各个cpu、DMA controler、device等)对内存有一致性的视角。

    阅读全文>>

    标签: Memory 内存屏障 barrier

    评论(21) 浏览(31420)

    Linux PM domain framework(1)_概述和使用流程

    作者:wowo 发布于:2014-11-13 22:09 分类:电源管理子系统

    在复杂的片上系统(SOC)中,设计者一般会将系统的供电分为多个独立的block,这称作电源域(Power Domain),这样做有很多?#20040;Γ?#20363;如:

    1)将不同功能模块的供电分开,减小相互之间的干扰(如模拟和数字分开)。

    2)不同功能所需的电压大小不同:小电压能量损耗低,但对信号质量的要求较高;大电压能量损耗高,对信号质量的要求?#31995;汀?#22240;此可以根据实?#26159;?#20917;,使用不同的电压供电,例如CPU core只需1.2v左右即可,而大部分的I/O则需要3.3v左右。

    3)系统运行的大部分时间,并不需要所有模块都处于power on状态,因此可以通过关闭不工作模块的供电,将它们的耗电降为最低。

    4)等等

    虽然电源域的?#20040;?#22810;多,却不是越多越好,因为划分电源域是需要成本的(需要在PMU中使用模拟电路完成,包括金钱成本和空间成本)。因此,大多数系统会根据功能,设置有限的几个电源域,例如:CPU core(1、2、3…);GPU;NAND;DDR;USB;Display;Codec;等?#21462;?

    这种设计引出一个问题:存在多个模块共用一个电源域的情况。因而要求在?#38405;?#22359;power on/off的时候,考虑power共用的情况:只要一个模块工作,就要power on;直到所有模块停止工作,才能power off。

    Kernel的PM domain framework(位于drivers/base/power/domain.c中),提供了管理和使用系统power domain的统一方法,在解决上面提到的问题的同时,结合kernel的suspendruntime pmclock framework?#28982;?#21046;,以非常巧妙、灵活的方式,管理系统供电,?#28304;?#21040;高效、节能的目的。

    同样,作为一个framework,我们可?#28304;?#19977;个?#23884;?#20998;析:使用者(consumer)的?#23884;齲?#25552;供者(provider)的?#23884;齲?#20869;部实现。具体如下。

    注:本文的linux kernel版本为3.18-rc4。一般情况下,对于那些相对稳定的framework,蜗蜗不会说明文章所使用的kernel版本,但本文是个例外,因为PM domain很多方便、?#23376;?#30340;patch,只能在最新版本(当前为3.18-rc4)kernel上才能看到。

    阅读全文>>

    标签: Linux PM 电源管理 framework domain

    评论(31) 浏览(14943)

    我眼中?#30446;?#31359;戴设备

    作者:travelhop 发布于:2014-11-5 14:55 分类:技术漫谈

    可穿戴设备,一个现在非常火热的话题,它是很多创业者眼中河滩?#31995;?#23453;钻、沙漠中的?#35752;蕖?#25096;壁滩?#31995;?#37329;球球……

    作者从一个曾经的创业者、同时也是一个技术人员的观点来看可穿戴设备的市场现状,提出了自己的想法。

    技术寓言神马的,爱信不信,信也不一定灵。不过看待滚滚红尘中的一波未平一波又起的热?#20445;?#20316;者的冷静值得借鉴……

    阅读全文>>

    标签: 可穿戴设备 创业

    评论(15) 浏览(5163)

    新技能get: 订阅Linux内核邮件列表

    作者:wowo 发布于:2014-11-4 22:37 分类:Linux应用技巧

    本文给小伙伴们分享一下怎么订阅Linux内核邮件列表(Linux kernel mailing list,LKML)。

    阅读全文>>

    标签: Linux Kernel mailing list LKML

    评论(21) 浏览(21008)

    Copyright @ 2013-2015 蜗窝科技 All rights reserved. Powered by emlog
    连码三全中是什么
  • <div id="0yoao"><tr id="0yoao"></tr></div>
    <dl id="0yoao"></dl>
  • <sup id="0yoao"></sup>
    <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
    <dl id="0yoao"></dl>
  • <sup id="0yoao"></sup>
    <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>