Enviar pesquisa
Carregar
20分でわかった事にするパワーマネジメント
•
Transferir como PPTX, PDF
•
2 gostaram
•
3,303 visualizações
magoroku Yamamoto
Seguir
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 20
Baixar agora
Recomendados
tf,tf2完全理解
tf,tf2完全理解
Koji Terada
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
Mori Ken
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
Yoshitaka HARA
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
akio19937
2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ
2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ
智啓 出川
Visual slam
Visual slam
Takuya Minagawa
ロボコン勉強会向けStm32を用いてマスタースレーブシステム
ロボコン勉強会向けStm32を用いてマスタースレーブシステム
DoNabe1
ロボティクスにおける SLAM 手法と実用化例
ロボティクスにおける SLAM 手法と実用化例
Yoshitaka HARA
Recomendados
tf,tf2完全理解
tf,tf2完全理解
Koji Terada
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
Mori Ken
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
Yoshitaka HARA
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
akio19937
2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ
2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ
智啓 出川
Visual slam
Visual slam
Takuya Minagawa
ロボコン勉強会向けStm32を用いてマスタースレーブシステム
ロボコン勉強会向けStm32を用いてマスタースレーブシステム
DoNabe1
ロボティクスにおける SLAM 手法と実用化例
ロボティクスにおける SLAM 手法と実用化例
Yoshitaka HARA
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
Mori Ken
SLAM開発における課題と対策の一例の紹介
SLAM開発における課題と対策の一例の紹介
miyanegi
ros_whillとROS2対応(ROS勉強会第28回LT大会)
ros_whillとROS2対応(ROS勉強会第28回LT大会)
Seiya Shimizu
ROS を用いた自律移動ロボットのシステム構築
ROS を用いた自律移動ロボットのシステム構築
Yoshitaka HARA
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
レシピの作り方入門
レシピの作り方入門
Nobuhiro Iwamatsu
ROS2勉強会@別府 第7章Pythonクライアントライブラリrclpy
ROS2勉強会@別府 第7章Pythonクライアントライブラリrclpy
Atsuki Yokota
2015年度GPGPU実践プログラミング 第6回 パフォーマンス解析ツール
2015年度GPGPU実践プログラミング 第6回 パフォーマンス解析ツール
智啓 出川
C++でできる!OS自作入門
C++でできる!OS自作入門
uchan_nos
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門
Fixstars Corporation
Use After Free 脆弱性攻撃を試す
Use After Free 脆弱性攻撃を試す
monochrojazz
NEDO講座 MoveIt! チュートリアル 第1部
NEDO講座 MoveIt! チュートリアル 第1部
openrtm
オープンソース SLAM の分類
オープンソース SLAM の分類
Yoshitaka HARA
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
ROBOTIS Japan
20190307 visualslam summary
20190307 visualslam summary
Takuya Minagawa
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
Fixstars Corporation
Sift特徴量について
Sift特徴量について
la_flance
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
Kitsukawa Yuki
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
MobileRoboticsResear
ORB-SLAMの手法解説
ORB-SLAMの手法解説
Masaya Kaneko
Poormans sdk
Poormans sdk
magoroku Yamamoto
仮想記憶入門 BSD-4.3を例題に
仮想記憶入門 BSD-4.3を例題に
magoroku Yamamoto
Mais conteúdo relacionado
Mais procurados
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
Mori Ken
SLAM開発における課題と対策の一例の紹介
SLAM開発における課題と対策の一例の紹介
miyanegi
ros_whillとROS2対応(ROS勉強会第28回LT大会)
ros_whillとROS2対応(ROS勉強会第28回LT大会)
Seiya Shimizu
ROS を用いた自律移動ロボットのシステム構築
ROS を用いた自律移動ロボットのシステム構築
Yoshitaka HARA
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
レシピの作り方入門
レシピの作り方入門
Nobuhiro Iwamatsu
ROS2勉強会@別府 第7章Pythonクライアントライブラリrclpy
ROS2勉強会@別府 第7章Pythonクライアントライブラリrclpy
Atsuki Yokota
2015年度GPGPU実践プログラミング 第6回 パフォーマンス解析ツール
2015年度GPGPU実践プログラミング 第6回 パフォーマンス解析ツール
智啓 出川
C++でできる!OS自作入門
C++でできる!OS自作入門
uchan_nos
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門
Fixstars Corporation
Use After Free 脆弱性攻撃を試す
Use After Free 脆弱性攻撃を試す
monochrojazz
NEDO講座 MoveIt! チュートリアル 第1部
NEDO講座 MoveIt! チュートリアル 第1部
openrtm
オープンソース SLAM の分類
オープンソース SLAM の分類
Yoshitaka HARA
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
ROBOTIS Japan
20190307 visualslam summary
20190307 visualslam summary
Takuya Minagawa
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
Fixstars Corporation
Sift特徴量について
Sift特徴量について
la_flance
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
Kitsukawa Yuki
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
MobileRoboticsResear
ORB-SLAMの手法解説
ORB-SLAMの手法解説
Masaya Kaneko
Mais procurados
(20)
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
SLAM開発における課題と対策の一例の紹介
SLAM開発における課題と対策の一例の紹介
ros_whillとROS2対応(ROS勉強会第28回LT大会)
ros_whillとROS2対応(ROS勉強会第28回LT大会)
ROS を用いた自律移動ロボットのシステム構築
ROS を用いた自律移動ロボットのシステム構築
メタプログラミングって何だろう
メタプログラミングって何だろう
レシピの作り方入門
レシピの作り方入門
ROS2勉強会@別府 第7章Pythonクライアントライブラリrclpy
ROS2勉強会@別府 第7章Pythonクライアントライブラリrclpy
2015年度GPGPU実践プログラミング 第6回 パフォーマンス解析ツール
2015年度GPGPU実践プログラミング 第6回 パフォーマンス解析ツール
C++でできる!OS自作入門
C++でできる!OS自作入門
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門
Use After Free 脆弱性攻撃を試す
Use After Free 脆弱性攻撃を試す
NEDO講座 MoveIt! チュートリアル 第1部
NEDO講座 MoveIt! チュートリアル 第1部
オープンソース SLAM の分類
オープンソース SLAM の分類
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
20190307 visualslam summary
20190307 visualslam summary
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
Sift特徴量について
Sift特徴量について
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
ORB-SLAMの手法解説
ORB-SLAMの手法解説
Destaque
Poormans sdk
Poormans sdk
magoroku Yamamoto
仮想記憶入門 BSD-4.3を例題に
仮想記憶入門 BSD-4.3を例題に
magoroku Yamamoto
ぐだ生って何
ぐだ生って何
magoroku Yamamoto
Oscar compiler for power reduction
Oscar compiler for power reduction
magoroku Yamamoto
Unix v6 セミナー vol. 5
Unix v6 セミナー vol. 5
magoroku Yamamoto
V6 unix vol.2 in okinawa
V6 unix vol.2 in okinawa
magoroku Yamamoto
波形で見るBig.little
波形で見るBig.little
magoroku Yamamoto
V6read#4
V6read#4
magoroku Yamamoto
Adk2012
Adk2012
magoroku Yamamoto
Ngk2011 b
Ngk2011 b
magoroku Yamamoto
オレオレ家電
オレオレ家電
magoroku Yamamoto
自動並列化コンパイラをAndroidに適用してみた
自動並列化コンパイラをAndroidに適用してみた
magoroku Yamamoto
Android binder-ipc
Android binder-ipc
magoroku Yamamoto
Bluemixを使ったTwitter分析
Bluemixを使ったTwitter分析
Tanaka Yuichi
Deep learning入門
Deep learning入門
magoroku Yamamoto
PythonでDeepLearningを始めるよ
PythonでDeepLearningを始めるよ
Tanaka Yuichi
Chainer v1.6からv1.7の新機能
Chainer v1.6からv1.7の新機能
Ryosuke Okuta
Deep Learningを用いたロボット制御
Deep Learningを用いたロボット制御
Ryosuke Okuta
Deep learning実装の基礎と実践
Deep learning実装の基礎と実践
Seiya Tokui
Chainerを使って細胞を数えてみた
Chainerを使って細胞を数えてみた
samacoba1983
Destaque
(20)
Poormans sdk
Poormans sdk
仮想記憶入門 BSD-4.3を例題に
仮想記憶入門 BSD-4.3を例題に
ぐだ生って何
ぐだ生って何
Oscar compiler for power reduction
Oscar compiler for power reduction
Unix v6 セミナー vol. 5
Unix v6 セミナー vol. 5
V6 unix vol.2 in okinawa
V6 unix vol.2 in okinawa
波形で見るBig.little
波形で見るBig.little
V6read#4
V6read#4
Adk2012
Adk2012
Ngk2011 b
Ngk2011 b
オレオレ家電
オレオレ家電
自動並列化コンパイラをAndroidに適用してみた
自動並列化コンパイラをAndroidに適用してみた
Android binder-ipc
Android binder-ipc
Bluemixを使ったTwitter分析
Bluemixを使ったTwitter分析
Deep learning入門
Deep learning入門
PythonでDeepLearningを始めるよ
PythonでDeepLearningを始めるよ
Chainer v1.6からv1.7の新機能
Chainer v1.6からv1.7の新機能
Deep Learningを用いたロボット制御
Deep Learningを用いたロボット制御
Deep learning実装の基礎と実践
Deep learning実装の基礎と実践
Chainerを使って細胞を数えてみた
Chainerを使って細胞を数えてみた
Semelhante a 20分でわかった事にするパワーマネジメント
Gingerbread
Gingerbread
android sola
【学習メモ#8th】12ステップで作る組込みOS自作入門
【学習メモ#8th】12ステップで作る組込みOS自作入門
sandai
【学習メモ#7th】12ステップで作る組込みOS自作入門
【学習メモ#7th】12ステップで作る組込みOS自作入門
sandai
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQL
akirahiguchi
Android デバッグ小ネタ
Android デバッグ小ネタ
l_b__
Linuxのプロセススケジューラ(Reading the Linux process scheduler)
Linuxのプロセススケジューラ(Reading the Linux process scheduler)
Hiraku Toyooka
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
京大 マイコンクラブ
Task Spooler を試した
Task Spooler を試した
y-uti
Read daemon on 20121110 by shinaisan
Read daemon on 20121110 by shinaisan
shinaisan
リアルタイムOsのカスタマイズ
リアルタイムOsのカスタマイズ
Kazuhiro Takahashi
マイコンロボット実習
マイコンロボット実習
Takehiko YOSHIDA
発表資料 Fortranを用いた高位合成技術FortRockの開発
発表資料 Fortranを用いた高位合成技術FortRockの開発
貴大 山下
Linux Performance Analysis in 15 minutes
Linux Performance Analysis in 15 minutes
Yohei Azekatsu
4章 Linuxカーネル - 割り込み・例外 2
4章 Linuxカーネル - 割り込み・例外 2
mao999
Interrupts on xv6
Interrupts on xv6
Takuya ASADA
20200709 fjt7tdmi-blog-appendix
20200709 fjt7tdmi-blog-appendix
Akifumi Fujita
システムパフォーマンス勉強会#5
システムパフォーマンス勉強会#5
shingo suzuki
Tremaで試すFirewall
Tremaで試すFirewall
M Hagiwara
as-6. スーパーバイザモード,特権命令,割り込み
as-6. スーパーバイザモード,特権命令,割り込み
kunihikokaneko1
Open VZ
Open VZ
Kazuaki Fujikura
Semelhante a 20分でわかった事にするパワーマネジメント
(20)
Gingerbread
Gingerbread
【学習メモ#8th】12ステップで作る組込みOS自作入門
【学習メモ#8th】12ステップで作る組込みOS自作入門
【学習メモ#7th】12ステップで作る組込みOS自作入門
【学習メモ#7th】12ステップで作る組込みOS自作入門
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQL
Android デバッグ小ネタ
Android デバッグ小ネタ
Linuxのプロセススケジューラ(Reading the Linux process scheduler)
Linuxのプロセススケジューラ(Reading the Linux process scheduler)
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
Task Spooler を試した
Task Spooler を試した
Read daemon on 20121110 by shinaisan
Read daemon on 20121110 by shinaisan
リアルタイムOsのカスタマイズ
リアルタイムOsのカスタマイズ
マイコンロボット実習
マイコンロボット実習
発表資料 Fortranを用いた高位合成技術FortRockの開発
発表資料 Fortranを用いた高位合成技術FortRockの開発
Linux Performance Analysis in 15 minutes
Linux Performance Analysis in 15 minutes
4章 Linuxカーネル - 割り込み・例外 2
4章 Linuxカーネル - 割り込み・例外 2
Interrupts on xv6
Interrupts on xv6
20200709 fjt7tdmi-blog-appendix
20200709 fjt7tdmi-blog-appendix
システムパフォーマンス勉強会#5
システムパフォーマンス勉強会#5
Tremaで試すFirewall
Tremaで試すFirewall
as-6. スーパーバイザモード,特権命令,割り込み
as-6. スーパーバイザモード,特権命令,割り込み
Open VZ
Open VZ
Mais de magoroku Yamamoto
V6 unix in okinawa
V6 unix in okinawa
magoroku Yamamoto
ぐだ生システム#2
ぐだ生システム#2
magoroku Yamamoto
Android builders summit slide tour
Android builders summit slide tour
magoroku Yamamoto
第4回名古屋Android勉強会資料
第4回名古屋Android勉強会資料
magoroku Yamamoto
Poorman’s adk トレーナ
Poorman’s adk トレーナ
magoroku Yamamoto
V6read#3
V6read#3
magoroku Yamamoto
Unixファイルシステムの歴史
Unixファイルシステムの歴史
magoroku Yamamoto
Pdp11 on-fpga
Pdp11 on-fpga
magoroku Yamamoto
V6read#2
V6read#2
magoroku Yamamoto
Androidの入力システム
Androidの入力システム
magoroku Yamamoto
ぐだ生システム再構成4
ぐだ生システム再構成4
magoroku Yamamoto
20分で理解する仮想記憶
20分で理解する仮想記憶
magoroku Yamamoto
Android のusb support
Android のusb support
magoroku Yamamoto
Os真髄
Os真髄
magoroku Yamamoto
Ustream入門
Ustream入門
magoroku Yamamoto
仮想記憶の構築法
仮想記憶の構築法
magoroku Yamamoto
Mais de magoroku Yamamoto
(16)
V6 unix in okinawa
V6 unix in okinawa
ぐだ生システム#2
ぐだ生システム#2
Android builders summit slide tour
Android builders summit slide tour
第4回名古屋Android勉強会資料
第4回名古屋Android勉強会資料
Poorman’s adk トレーナ
Poorman’s adk トレーナ
V6read#3
V6read#3
Unixファイルシステムの歴史
Unixファイルシステムの歴史
Pdp11 on-fpga
Pdp11 on-fpga
V6read#2
V6read#2
Androidの入力システム
Androidの入力システム
ぐだ生システム再構成4
ぐだ生システム再構成4
20分で理解する仮想記憶
20分で理解する仮想記憶
Android のusb support
Android のusb support
Os真髄
Os真髄
Ustream入門
Ustream入門
仮想記憶の構築法
仮想記憶の構築法
20分でわかった事にするパワーマネジメント
1.
20分でわかった事にする Power
Management cpuidle編 @magoroku15 最底辺活動家
2.
Androidzaurusのつぶやき
使用未許諾 • われらの恐竜先生、販売日にTegra 3のタブ レットをご購入 • 買った、直後の勉強会にてustream送出マ シンとして華麗にデビュー • 独自の視点での解析 -お約束ですね-
3.
Android Zairusの日記
使用未許諾
4.
GovernorはInteractive What dose this
mean? Governor?
5.
Power management ちょー入門 •
家庭のパワーマネジメント – 照明はコマメに消す – 冷房は設定温度を高めに →住人が決める・操作する • CPUのパワーマネジメント – 不要なものは止める – 処理速度と落とす →どうやって決めるのか?操作するの か?
6.
UNIX/BSD/Mac/Linux
App System call 動かすプロセスが無いとidleを呼ぶ KERNEL idle HDD
7.
BSD 4.3 GENERIC/locore.c 1498
.globl Idle 1499 Idle: idle: 1500 mtpr $0,$IPL # must allow interrupts here 1501 tstl _whichqs # look for non-empty queue 1502 bneq sw1 1503 brb idle
8.
Tegraのidle Kernel_V9_4_2_7/arch/arm/mach-tegra static int tegra_cpuidle_register_device(unsigned
int cpu) // cpuidleへの登録 { : state->enter = tegra_idle_enter_lp2; : } static inline void tegra_idle_lp2(struct cpuidle_device *dev, struct cpuidle_state *state) { #ifdef CONFIG_ARCH_TEGRA_2x_SOC // tegra2の場合 tegra2_idle_lp2(dev, state); #endif #ifdef CONFIG_ARCH_TEGRA_3x_SOC // tegra3の場合 tegra3_idle_lp2(dev, state); #endif }
9.
Tegra3のidle Kernel_V9_4_2_7/arch/arm/mach-tegra/sleep.S void tegra3_idle_lp2(struct cpuidle_device
*dev, struct cpuidle_state *state) { s64 request = ktime_to_us(tick_nohz_get_sleep_length()); bool last_cpu = tegra_set_cpu_in_lp2(dev->cpu); cpu_pm_enter(); if (last_cpu && (dev->cpu == 0)) // CPU0だけ別扱い tegra3_idle_enter_lp2_cpu_0(dev, state, request); else tegra3_idle_enter_lp2_cpu_n(dev, state, request); cpu_pm_exit(); tegra_clear_cpu_in_lp2(dev->cpu); }
10.
Tegra3のidle Kernel_V9_4_2_7/arch/arm/mach-tegra/sleep.S ENTRY(tegra_cpu_wfi)
cpu_id r0 cpu_to_halt_reg r1, r0 cpu_to_csr_reg r2, r0 mov32 r0, TEGRA_FLOW_CTRL_VIRT mov r3, #FLOW_CTRL_CSR_INTR_FLAG | FLOW_CTRL_CSR_EVENT_FLAG str r3, [r0, r2] @ clear event & interrupt status mov r3, #FLOW_CTRL_WAIT_FOR_INTERRUPT | FLOW_CTRL_JTAG_RESUME str r3, [r0, r1] @ put flow controller in wait irq mode dsb wfi mov r3, #0 str r3, [r0, r1] @ clear flow controller halt status mov r3, #FLOW_CTRL_CSR_INTR_FLAG | FLOW_CTRL_CSR_EVENT_FLAG str r3, [r0, r2] @ clear event & interrupt status dsb mov pc, lr ENDPROC(tegra_cpu_wfi)
11.
WFI Wait For
Interrupt • ARMの命令 • 割り込が発生するまで、CPUを低電力モード で命令の実行を止める • 眠りの深さ/寝起きの良さ – 深く眠ると • 電力低減効果大/寝起きは悪い • もっさり – 浅く眠ると • 電力低減効果小/寝起きは良い • さくさく • WFIを呼ぶ前に眠りの深さを指定する
12.
おっと • この時点でTegraのStateを理解していない
事に気づく • Flow controllerって何?
13.
Omap3のidle int __init omap3_idle_init(void) {
: state->enter = (state->flags & CPUIDLE_FLAG_CHECK_BM) ? omap3_enter_idle_bm : omap3_enter_idle; : } static int omap3_enter_idle(struct cpuidle_device *dev, struct cpuidle_state *state) { : }
14.
omap3のC-ステート #define OMAP3_STATE_C1 0
/* C1 - MPU WFI + Core active */ IDLE 昼寝 #define OMAP3_STATE_C2 1 /* C2 - MPU WFI + Core inactive */ #define OMAP3_STATE_C3 2 /* C3 - MPU CSWR + Core inactive */ #define OMAP3_STATE_C4 3 /* C4 - MPU OFF + Core iactive */ #define OMAP3_STATE_C5 4 /* C5 - MPU RET + Core RET */ #define OMAP3_STATE_C6 5 /* C6 - MPU OFF + Core RET */ #define OMAP3_STATE_C7 6 /* C7 - MPU OFF + Core OFF */ 爆睡
15.
ステートの指定はどうするの? • CPUIdle Framework
– CPU依存のCステート – Governor(統治者)によるポリシーベースの管理 – /sys/power/cpuidle_deepest_state – /sys/proc/pm_prepwstst • Governor – “ladder”,”menu” – drivers/cpuidle/governors
16.
cpuidleの構成
/sys/devices/syste/cpu/cpuidle ユーザレベル インターフェース menu ladder Governor Cpuidle アーキ無依存 Generic cpuidle omap3-cpuidle tegra2-cpuidle tegra3-cpuidle Cpuidle アーキ依存
17.
cpuidle • 実行可能なプロセスがない状態を管理 –
昔は単純な停止orループ – ARMでは命令を追加して明にidleを通知 WFI – WFIを呼ぶ前に、寝る深さC-Stateを指定 • 標準でLadderとmenuのGovernor – ユーザプログラムで統計情報から指定も可 • 他の省電力機能もcpuidleを起点に動作
18.
他のフレームワーク • cpufreq
– 動作周波数を変更 – 電源電圧も合わせて変更 • runtime_pm – SoC内部コアを機能単位ごとに停止するヒントを 管理 – SoC内の機能毎にusecountを用意し、idleのタイミ ング未使用の機能を止める – Beagle のpm_branchで実機評価可能 • cpuhotplug – cpuidleのC-state変更をCPU単位に拡張
19.
上級者向けの話題 • Runtime_PM
– http://elinux.org/OMAP_Power_Management – http://git.kernel.org/?p=linux/kernel/git/khilman/l inux-omap-pm.git • BeagleboardでSleep時の電流を8mWにした 話 – http://groups.google.com/group/beagleboard/bro wse_thread/thread/197a8ef6b46cc828 – 回路を改造して、ボード上のコントローラの 電源供給を止める
20.
おわり
Baixar agora