CH.8 硬體管理.

Slides:



Advertisements
Similar presentations
如何戰勝教師檢定考試 北縣及人小學 周毓貞 教檢與實習,其實是脣齒相依 最濃縮精準的葵花寶典 倒數 100 天的準備之道 正向的心靈喊話 提高得分的心機術 放榜後的規劃.
Advertisements

99 級鄭郁立 教甄分享 桃園縣霄裡國小資源班教師. 我想當老師 !!!  從小的志願  教會別人的成就感  穩定的工作 ~ 金飯碗 ( 以現在的景氣來說 …)  早下班有很多自己的時間 (3:40 或 4:00)  寒暑假 ( 偶爾要到學校 )  待遇不錯  有很多優惠 ?!( 我目前並沒有感受到.
時間:2015/11/07 會議地點:中興大學化學系館107 比賽時間:2015/11/28-11/29
第一章 微型计算机系统概述 1.1 计算机的发展与应用 微型计算机的发展与分类 微型计算机的应用
计算机应用基础 项目化教程 第1章计算机基础知识与操作入门.
Ch17 績效管理 章首個案:員工績效管理:奇異強迫排名,3M的15%「私釀酒」時間 17.1 績效管理的意義 17.2 績效管理的流程
公會組織糾紛 指導老師:柯伶玫 組員 495B0065 劉致維 495B0072 廖怡塵 495B0097 范家皓.
散文選及習作 [墨池記] 曾鞏 國二甲 S 洪國勛 指導教授:胡翰平 老師.
计算机组成原理 北京理工大学计算机科学工程系 赵清杰 北京理工大学计算机科学工程系.
2013 澎湖自助旅行講座 澎湖,其實就是一片海洋 主辦:沿著菊島旅行 協辦: 台北澎湖同鄉會、台中澎湖同鄉會、高雄澎湖同鄉會
台中區會領導幹部研討會 財報解析&財務管理 報告人:王仁宏.
近代的中华民族可谓多灾多难,饱受了西方列强的侵略。在前两课的学习中,我们已经了解了西方列强发动的两次侵略战争,下面我们来简单地回顾一下,这两次战争的名字叫什么?侵略者分别是谁? 在中国近代史上,侵略中国时间最长、危害最大的是哪个国家?
计算机导论 第4讲 微型计算机硬件系统 1.
基于ARM和linux的开发 华中科技大学 武汉创维特 2017/3/20.
计算机基础.
Chapter 6 時序.
運用網路資源趣味化 「每日飲食指南份量」教學
计算机与信息技术应用基础 徐东雨 计算机中心
教育部補助 「大專校院社團帶動中小學社團發展」
企業講座 組長: 張仁杰 組員: 指導老師:洪伯毅 楊巧歆 楊明芬 陳璿安
2.4 微型计算机硬件系统 主机系统 1. 微型计算机的诞生
能量買賣訊號 ◎波段賣訊:下列四項出現三項以上(含三項) 1、空方能量升至整波上漲之最高水準,且空方能量>多方 能量30%以上。
第1章 计算机概述 1.1 计算机系统组成 1.2 多媒体系统 1.3 数制与信息的表示 1.4 计算机的发展与应用
中國大陸稅法 ─增值稅 真理大學會計資訊學系 會計專題研究 2009/12/14.
Hardware Chen Ching-Jung
Xen基础架构安全性分析 云朋
資策會 南區資訊處 教育訓練中心 吳建興 個人電腦組裝 PC DIY 資策會 南區資訊處 教育訓練中心 吳建興
主讲教师:唐大仕 第5讲 计算机硬件 主讲教师:唐大仕
嵌入式操作系统 陈香兰 Fall 2009.
教育人員退休新法說明會 106年12月14日 ★資料來源:參考銓敘部及高雄市教育局人事室簡報檔.
國文(一) 1.第一單元---青春印記 (學習篇、愛情篇) 2.第二單元---生活美學 3.第三單元---優遊家園.
微处理器设计1 刘鹏 College of ISEE Zhejiang University
C语言程序设计 第十二章 位运算.
第一章 C语言概述.
中国科学技术大学计算机系 陈香兰(0512- ) spring 2011
第一章 计算机基础知识 计算机基础知识.
99(1)義守大學工讀職場技能精進訓練班 資訊工程系 林義隆 老師
作 業 系 統 第三組 楊育翰 顏瑞霖.
第3章 ARM体系结构.
1-1 微電腦系統單元 1-2 微電腦系統架構 1-3 微控制器(單晶片微電腦) 1-4 類比與數位訊號介面
1-1 微電腦系統單元 1-2 微電腦系統架構 1-3 微控制器(單晶片微電腦) 1-4 類比與數位訊號介面
5 Computer Organization (計算機組織).
資料來源:張弘明 張迪安 林欣螢 吳柏農 吳沛錡
第2章 電腦硬體的架構及功能.
嵌入式系統概論-以S3C2440核心為架構 第1章 嵌入式系統概念.
在專用的嵌入式板子運行 GNU/Linux 系統已經變得越來越流行。一個嵌入式 Linux 系統從軟體的角度看通常可以分為四個層次:
Ch9 Communicating with Hardware
主題:需求與供給彈性 (一) 第八週 授課:黃柏凱.
(第2版).
8051單晶片 蘇恆生 老師.
青少年常見犯法行為.
Chapter 7 掌控記憶體.
第二章 電腦硬體知識 Chapter 2-電腦硬體知識.
ARM Developer Suite 介 绍.
兒少保護通報處理流程介紹 臺中市家庭暴力及性侵害防治中心 陳秀婷/張美慧 社工督導員 2012/10/19.
第五章 输入/输出系统 本章讨论: 接口的基本概念 总线的基本概念 中断方式及其接口组成 中断方式及其接口组成 DMA方式及其接口组成
Chapter 7 掌控記憶體.
第二章 类型、对象、运算符和表达式.
勞工保險年金制度 簡報人:吳宏翔.
Introduction to the C Programming Language
批次請(休)假單 功能路徑:[請假作業專區]→[批次請(休)假單] 功能說明:提供使用者線上申請/維護 多天、不連續請(休)假
实验二:添加Linux系统调用及熟悉常见系统调用
第十二章 位运算.
Ch9 Communicating with Hardware
法律的解釋 楊智傑.
變數、資料型態、運算子.
C/C++基礎程式設計班 C語言入門、變數、基本處理與輸入輸出 講師:林業峻 CSIE, NTU 3/7, 2015.
獨孤派作業系統 main memory 中正大學 作業系統實驗室 指導教授:羅習五.
新選課系統說明會 電算中心 林以仁.
Presentation transcript:

CH.8 硬體管理

Outline 1. I/O 埠 v.s I/O 記憶體 2. 使用I/O 埠 3. 數位I/O 埠 (並列埠) 4. 使用I/O 記憶體 5. Kernel版本相容性

I/O 埠 v.s I/O 記憶體 I/O 暫存器 & 傳統記憶體 (RAM) 最大差別: I/O 操作有副作用 ,記憶體操作沒有 記憶體存取速度對CPU 效能影響致為關鍵(ex: Cache,重新安排read/ write 指令順序) for 傳統記憶體: 最佳化存取速度是有益的 for I/O暫存器: 干擾到I/O指令的副作用,可能發生錯誤 Solution: 設 memory barrier ,讓compiler知道這段程式 不要最佳化

Memory barrier #include <linux/kernel.h> void barrier (void); #include <asm/system.h> void rmb (void); /保證在barrier前的read動作都完成/ void wmb (void);/保證在barrier前的write動作都完成/ void mb (void); P.S memory barrier會影響效率,真正需要才使用

Memory barrier的用法 writel (dev->registers.addr, io_destination_address); writel (dev->registers.size, io_size); writel (dev->registers.operation, DEV_READ); wmb (); writel (dev->registers.control, DEV_GO); 確認所有動作皆完成 write memory barrier

使用I/O 埠(1/3) 驅動程式用I/O埠前,必須先配置他們,才可讀or寫埠 <asm/io.h>定義用來存取I/O埠的內插函式 #include <linux/ioport.h> int check_region(unsigned long start,unsigned long len); struct resource *request_region(unsigned long start,unsigned long len,char *name); void release_region(unsigned long start,unsigned long len);

使用I/O 埠(2/3) For 1 byte 埠 unsigned inb(unsigned port); void outb(unsigned char byte,unsigned port); For 16bits埠 (word寬度) unsigned inw(unsigned port); void outw(unsigned short word,unsigned port); For 32bits埠 (longword寬度) unsigned inl(unsigned port); void outl(unsigned longword,unsigned port);

使用I/O 埠(3/3) String instruction 暫停I/O 平台相依性 有些processor 有提供字串指令,讓一連串同大小的bytes,words,long 讀or寫到I/O埠, 達到迴圈效果 暫停I/O 舊裝置如ISA跟不上處理器的傳輸速度,需要暫停函式,如: inb_p() ,outb_p() 平台相依性 I/O指令和處理器有高度相依性,必須針對特定平台(ex: Alpha ,ARM, PowerPC, SPARC…)

範例程式demo 範例: ~/ldd2/misc-progs/inp.c 目的: 示範在user-space 讀出I/O port Step1: make all Step2: cat /proc/ioports Step3: 比較和我們在user-space讀出來的資訊是否一樣

數位I/O 埠(1/2) 把值寫出到輸出埠,會被轉換成對應輸出腳位的電子信號 每台PC 都有兩個並列埠,第一個介面從0X378開始;第二個從0X278開始 每個並列埠都有三個暫存器: 資料暫存器(bidirectional to pin2~pin9) 狀態暫存器(read-only) 控制暫存器(output-only) 唯一與腳位信號無關:控制埠的 bit4 (0x10),可發出irq See figure below…

數位I/O 埠(2/2)

使用I/O記憶體 I/O記憶體只是類似RAM的特殊區域,不同的是處理器可從其匯流排存取特定硬體裝置 Driver必須要求kernel將實體位址搬入driver的可見範圍,所以要先呼叫ioremap() 直接映射記憶體 ex: PDA用的MIPS處理器,內有兩段位置範圍(各512 Mb)直接映射到實體位址,在此區MMU不會理會,也無Cache. 軟體映射I/O記憶體 PCI裝置的位置是由系統軟體指派,每次開機都會不同,所以要用ioremap()將虛擬位址指向裝置

Kernel版本相容性 Linux 2.0 無硬體memory barrier ,但只要引入sysdep.h,將硬體屏障定義成跟軟體屏障一樣 只要引入sysdep.h,就可在舊kernel上使用ioremap Memory management的三個函式 check_mem_region() request_mem_region() release_mem_region()