独立编址,统一编址,IO端口,IO内存,冯·诺伊曼,哈佛结构

独立编址,统一编址,IO端口,IO内存,冯·诺伊曼,哈佛结构独立编址,统一编址:I/O地址空间与内存地址空间编址方式是否统一?例如51为统一编址,I/O和存储器总计64K地址空间;X86为独立编址,分为I/O地址空间和存储器地址空间。IO空间,内存空间X86:支持内存空间,IO空间,独立编址。ARM,MIPS,PowerPC只支持内存空间,即统一编址。IO端口和IO内存:对于X86系统区别很大,例如,网卡接口,可以连接在IO的这

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

独立编址,统一编址: I/O地址空间与内存地址空间编址方式是否统一?例如51为统一编址,I/O和存储器总计64K地址空间;X86为独立编址,分为I/O地址空间和存储器地址空间。 IO空间,内存空间

X86:支持内存空间,IO空间,独立编址。 ARM,MIPS,PowerPC只支持内存空间,即统一编址。

IO端口和IO内存:对于X86系统区别很大,例如,网卡接口,可以连接在IO的这一组地址总线上,也可以连接在内存的这一组地址总线上,就可分别出现IO端口和IO内存的区别。

IO端口:当一个寄存器或内存位于IO空间时,称之为IO端口。

IO端口的操作:申请,访问,释放

申请:struct resource * __request_region(struct resource *parent, resource_size_t start, resource_size_t n, const char *name, int flags)

申请完以后,可以在/proc/ioports下面看到端口的占用情况。

访问:static inline int inb(unsigned long i) //读字节端口(8位) static inline void outb(char c, unsigned long i)//写字节端口(8位)其余访问16位,32位IO端口的函数为:inw,outw,inl,outl。

IO内存:当一个寄存器或内存位于内存空间时,称之为IO内存。

IO内存的操作:申请,映射,访问,释放

申请:request_mem_region(start, n, name)//start:申请的起始地址,n:申请的长度,name:申请使用区域的名字。

申请完以后,同样可以在/proc/iomem中查看iomem的使用情况。

映射:由于linux系统中不能直接使用物理地址,必须使用虚拟虚拟地址,所以对IO内存的操作,必须有一个映射的过程。

映射函数:ioremap(cookie, size)//cookie:物理地址,size :映射大小。

访问:访问IO内存,最好不要直接用*addr直接赋值的方式来完成,在某些情况下易出错,推荐使用内核已经提供的函数来完成。内核提供的函数有:ioread8,iowrite8,ioread16,iowrite16,ioread32,iowrite32等函数。而老版本的内核中也提供了例如:readb,writeb,readw,writew,readl,writel等函数

释放:iounmap()和release_mem_region()

冯·诺伊曼,哈佛结构: 哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储 器中读取数据,并进行下一步的操作(通常是执行)。程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度,如Microchip公司的 PIC16芯片的程序指令是14位宽度,而数据是8位宽度。 目前使用哈佛结构的中央处理器和微控制器有很多,除了上面提到的Microchip公司的PIC系列芯片,还有摩托罗拉公司的MC68系列、Zilog公 司的Z8系列、ATMEL公司的AVR系列和安谋公司的ARM9、ARM10和ARM11,51单片机也属于哈佛结构 冯·诺伊曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽。 目前使用冯·诺伊曼结构的中央处理器和微控制器有很多。除了上面提到的英特尔公司的8086,英特尔公司的其他中央处理器、安谋公司的ARM7、MIPS公司的MIPS处理器也采用了冯·诺伊曼结构。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188517.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • fstream 获取文件大小_c++获取文件大小

    fstream 获取文件大小_c++获取文件大小fstream获得文件大小

    2022年9月19日
    2
  • 开发者一定要了解的六款大数据采集平台

    开发者一定要了解的六款大数据采集平台    随着大数据越来越被重视,数据采集的挑战变的尤为突出。今天为大家介绍几款数据采集平台:  ApacheFlume  Fluentd  Logstash  Chukwa  Scribe  SplunkForwarder  大数据平台与数据采集  任何完整的大数据平台,一般包括以下的几个过程:  数据采集  数据存储  数据处理  数据展现…

    2022年5月1日
    101
  • pycharm 激活码Key is invalid(JetBrains全家桶)

    (pycharm 激活码Key is invalid)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1STL5S9V8F-eyJsaWNlbnNlSWQiOi…

    2022年3月27日
    1.1K
  • 在PHP代码中空格的写法,html空格代码怎么写?

    在PHP代码中空格的写法,html空格代码怎么写?html 空格代码怎么写 html 空格代码是为 html 空格字符代码 由 amp n b s p 组成 记住最后一个分号不要忘记了 CSS 中当 white space 属性取值为 pre 时 浏览器会保留文本中的空格和换行 例如 AABB 显示效果为 AABBCSS 的 letter spacing 属性用于设置文本中字符之间的间隔 例如 欢迎光临 显示效果为 欢迎光

    2025年7月30日
    5
  • Pytest(6)重复运行用例pytest-repeat[通俗易懂]

    Pytest(6)重复运行用例pytest-repeat[通俗易懂]前言平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,最终复现出问题来。自动化运行用例时候,也会出现偶然的bug,可以针对单个用例,

    2022年7月28日
    8
  • java11-泛型及其使用[通俗易懂]

    java11-泛型及其使用[通俗易懂]1.概述就本质而言“泛型”的意思就是参数化类型。参数化类型很重要,因为使用该特性创建的类、接口以及方法可以以参数的形式指定操作的数据类型。泛型通俗的说就是方法的返回值或参数是不确定的,可以随创建

    2022年8月4日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号