linux内核完全剖析——基于0.12内核-笔记(2)-统一编址和独立编址
IO是什么 ?
IO(Input and Output)是输入输出接口。是CPU和其他外部设备(如串口、LCD、触摸屏、LED等)之间通信的接口。一般的,我们说的IO就是指CPU的各种内部或外部外设。对于CPU而言,CPU操作外设就是操作外设中的寄存器,为了区分外设中的寄存器,每个被操作的外设寄存器就需要一个地址。
什么是IO端口的寻址方式?
CPU为了访问IO接口控制器或控制卡上的数据和状态信息,首先需要指定他们的地址。这种地址就称为I/O端口地址或者简称端口。通常,一个IO控制器包含访问数据的数据端口、输出命令的命令端口和访问控制器执行状态的状态端口
端口地址的设置方法一般有两种:统一编址和独立编址;
CPU访问各种外设有2种方式:一种是类似于访问内存的方式,即把外设的寄存器当作一个内存地址来读写,从而以访问内存相同的方式来操作外设寄存器,这时,IO与内存统一编址;
IO的地址与内存的地址在同一个地址空间下,这种编址方式叫做IO与内存统一编址;
另一种编址方式是IO地址与内存地址分开独立编址,这种编址方式叫做IO与内存独立编址,此时,CPU访问内存和访问IO就需要不同的CPU指令去访问。
统一寻址与独立编址的优缺点:
外设与内存统一的编址方式,优点是编程简单,因为可以像访问内存一样去访问外设。缺点是IO也占用CPU的寻址空间。
而独立编址的方式,优点是不占用CPU的寻址空间,但是CPU的构造比较复杂。(因为额外的CPU指令需要对CPU进行额外的设计处理)。
linux内核完全剖析——基于0.12内核-笔记(2)-统一编址和独立编址的更多相关文章
- linux内核完全剖析——基于0.12内核-笔记(1)-CPU 数据通信
CPU数据通信总线 CPU通过地址线.数据线.控制信号组成的本地总线(或称为内部总线)与系统其它部分进行数据通信. 地址总线 地址总线用于内存或I/O设备的地址,即指明需要读/写数据的具体位置. 数据 ...
- Linux内核完全剖析基于0.12内核
控制寄存器(CR0,CR1,CR2,CR3)用于控制和确定处理器的操作模式以及当前执行任务的特性.CR0中含有控制处理器操作模式和状态的系统控制标志,CR1保留不用,CR2含有导致页错误的线性地址,C ...
- Linux 0.12 内核管理存储器
Linux 0.12 内核管理存储器 其分段,用分段的机制把进程间的虚拟地址分隔开. 每一个进程都有一张段表LDT.整个系统有一张GDT表.且整个系统仅仅有一个总页表. 其地址翻译过程为: 程序中给出 ...
- 《linux 内核全然剖析》编译linux 0.12 内核 Ubuntu 64bits 环境
我×.. . 最终好了,大概3 4个小时吧...各种毛刺问题.终究还是闯过来了.. .. ubuntu2@ubuntu:~/Downloads/linux-0.00-050613/linux-0.00 ...
- linux使用glibc版本安装mysql8.0.12
1.前言 使用yum安装虽然很方便,但是如果要是在没有公网的环境下,是没有办法使用yum源的.所以我们可以使用mysql提供的glibc版本的安装包,进行安装. 但是在安装之前,一定要将以前的版本删除 ...
- Linux系统启动那些事—基于Linux 3.10内核【转】
转自:https://blog.csdn.net/shichaog/article/details/40218763 Linux系统启动那些事—基于Linux 3.10内核 csdn 我的空间的下载地 ...
- 从内核3.7版本开始,Linux就开始支持VXLAN 到了内核3.12版本,Linux对VXLAN的支持已经完备,支持单播和组播,IPv4和IPv6。
一.关于VXLAN VXLAN 是 Virtual eXtensible LANs 的缩写,它是对 VLAN 的一个扩展,是非常新的一个 tunnel 技术,在Open vSwitch中应用也非常多. ...
- Linux 从4.12内核版本开始移除了 tcp_tw_recycle 配置。 tcp_max_tw_buckets TIME-WAIT 稳定值
被抛弃的tcp_recycle_小米云技术-CSDN博客_sysctl: cannot stat /proc/sys/net/ipv4/tcp_tw_recy https://blog.csdn.ne ...
- Ubuntu 编译安装 Linux 4.0.5 内核,并修复 vmware 网络内核模块编译错误
. . . . . 今天把 Ubuntu 14.04 升级到了最新的 4.0.5 的内核版本,本来不打算记录下来的,但是升级的过程中确实遇到了一些问题,所以还是记录下来,分享给遇到同样问题的猿友. 先 ...
随机推荐
- 数据库字典查询,从EF工具操作中提取的
用户表: SELECT [Project1].[C1] AS [C1] , [Project1].[CatalogName] AS [CatalogName] , [Project1].[Schema ...
- javascript 易错点、难点笔记
本文主要记录在学习过程中遇到的JavaScript难点或者容易疏忽的细节,也方便自己日后翻阅学习. 1.arr.length === + arr.length arr.length === + arr ...
- 使用Docker调试Asp.Net Core
使用 Docker 进行部署 目前还是使用将发布出来的文件打包进docker镜像的形式 $ docker build -t pims . $ docker run --name pims --rm - ...
- ubuntu 上安装ssh
1. 执行 sudo apt-get update 2. 安装 sudo apt-get install openssh-server 3.查看ssh服务状态 sudo service ssh sta ...
- 提供PPT嵌入Winform/WPF解决方案,Winform/WPF 中嵌入 office ppt 解决方案
Winform/WPF 中嵌入 office ppt(powerpoint)解决方案示: 1. 在winform中操作ppt,翻页.播放.退出:显示 总页数.当前播放页数 2. 启动播放ppt时录制视 ...
- Docker的下载与安装
一丶下载 1.win10之外的 Docker下载地址: https://www.docker.com/products/docker-toolbox 2.win10 Docker下载地址: https ...
- github小白上传本地代码及更新代码到GitHub及华为云教程
上传本地代码 第一步:去github上创建自己的Repository,创建页面如下图所示: 红框为新建的仓库的https地址 第二步: echo "# Test" >> ...
- Android - Navigation Drawer
http://www.jianshu.com/p/c8cbeb7ea43a 用Navigation Drawer 和 Navigation View 来实现左右侧滑 Activity里甚至什么都不用写 ...
- TF-IDF原理
什么是TF-IDF TF-IDF(Term Frequency-Inverse Document Frequency, 词频-逆文件频率). 是一种用于资讯检索与资讯探勘的常用加权技术.TF-IDF ...
- Linux常用基本命令(head)
head命令 作用:显示文件的头部内容,默认显示前面10行 格式: head [option] [file] -n <行数> -c <字节> ghostwu@dev:~/lin ...