内存映射 I/O 与端口映射 I/O [关闭]

2024-01-04

内存映射 I/O 是一种允许使用中央内存 (RAM) 与外设进行通信的技术。端口映射 I/O 使用端口(带有特殊汇编指令)通过数字端口进行通信。

一种方法相对于另一种方法有哪些优点?


正如克苏鲁所说,

  • 内存映射 I/O 允许对 I/O 设备端口进行写/读操作,就像读/写普通内存一样(使用相同的机器代码/asm)

但有一个缺点:

  • 你用完了内存映射 I/O 设备的物理内存地址空间(想想 32 位 Windows 无法访问 PC 上的所有 4G RAM)

因此,使用端口映射 I/O 方法的一个优点是,您的 I/O 设备拥有单独的地址空间,并且可以使用整个内存寻址范围来访问内存。

编辑:这是对您的问题的更完整的答案:硬件端口到内存地址 https://stackoverflow.com/questions/4333849/what-real-platforms-map-hardware-ports-to-memory-addresses?rq=1

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

内存映射 I/O 与端口映射 I/O [关闭] 的相关文章

  • Codeigniter 处理大文件时允许的内存大小耗尽

    我发布此内容是为了防止其他人正在寻找相同的解决方案 因为我刚刚在这个废话上浪费了两天时间 我有一个 cron 作业 每天使用一个非常大的文件更新数据库一次 使用以下代码 if handle fopen dirname FILE uncomp
  • List、IList、IEnumerable、IQueryable、ICollection,哪个返回类型最灵活?

    我之前已经在这里看到过这个问题 但我不满意我理解的完整后果 问题是使用 linq to sql 返回的数据层应该使用什么返回类型以获得最大的灵活性和查询能力 这是我读过 发现的 IEnumerable 是有限的 只允许向前读操作 IEnum
  • 可以禁用“应用程序错误”对话框吗?

    我使用 Hudson 作为持续集成服务器来测试 C C 代码 不幸的是 我在某个地方有一个错误导致内存损坏 因此在某些 Windows 计算机上我有时会收到一个 应用程序错误 对话框 解释一条指令引用了无法读取的内存 弹出此对话框并基本上挂
  • 哪个更快:堆栈分配或堆分配

    这个问题听起来可能相当简单 但这是我与另一位合作的开发人员进行的辩论 我小心翼翼地在可能的地方进行堆栈分配 而不是堆分配它们 他一边跟我说话 一边看着我 并评论说没有必要 因为他们的表现是一样的 我总是有这样的印象 堆栈的增长是恒定的时间
  • WPF 和 WCF 应用程序的用户身份验证/授权的“最佳实践”是什么?

    假设我有一个 NET 富客户端 WPF 应用程序 它将同时部署在 3 个不同的场景中 客户端和服务器代码在单个进程中运行 客户端代码在 Intranet 计算机上运行 并通过 WCF 与运行应用程序 域 基础设施代码的服务器计算机进行通信
  • 每个 CPU 核心处于 C0 电源状态的时间

    任何帮助弄清楚如何做到这一点都会很棒 在过去一秒内 每个 CPU 核心处于 C0 电源状态的时间有多少 这是针对 Mac 应用程序的 因此需要 Objective C cocoa 和 c OS X 没有任何公开 CPU c 状态的 API
  • AVX-512 指令编码 - {er} 含义

    在 Intel x86 指令集参考中 有许多 AVX 512 指令在指令中具有可选的 er 例如 VADDPD 的一种形式定义为 EVEX NDS 512 66 0F W1 58 r VADDPD zmm1 k1 z zmm2 zmm3 m
  • 在 python 中将变量设置为“None”是否更节省内存?

    这是一个简单的问题 但由于我没有找到任何答案 我认为答案是否定的 但是 为了确保这一点 我要问 将变量设置为是否会使Python代码更有效None当我们在函数中使用完它们之后 举个例子 def foo fname temp 1 temp 2
  • linux x86 汇编语言 sys_read 调用的第一个参数应为 0 (stdin)

    我正在编写一个简单的汇编程序来从标准输入读取 如 scanf 这是我的代码 section bss num resb 5 section txt global start start mov eax 3 sys read mov ebx 0
  • Objective-C 使用字符串池吗?

    我知道Java https stackoverflow com questions 3801343 what is string pool in java and C http msdn microsoft com en us librar
  • 定时任务应该放在哪一层?

    我正在尝试使用分层架构来实现 DDD 应用程序 我有 基础设施层 实现应用程序的技术特定部分的层 领域层 包含领域模型的层 应用层 包含与领域模型交互的干扰的层 接口层 从外部接收事件的层 经典的 3 层 基础设施 架构非常清晰 但我的应用
  • Chrome 内存/垃圾收集问题

    我在使用 Chrome 时遇到内存 垃圾收集问题 我正在开发一个照片上传网站 该网站允许我的客户使用 HTML5 和文件 API 拖放照片进行上传 因此这在 IE 中不起作用 它仅适用于 Chrome 和 FF 我还没有在 Safari O
  • 为什么 Go 禁止取 (&) 映射成员的地址,却允许取 (&) 切片元素?

    Go 不允许获取地图成员的地址 if I do this p mm abc Syntax Error cannot take the address of mm abc 理由是 如果 Go 允许使用此地址 那么当地图后台存储增长或缩小时 该
  • Android - WindowManager 导致崩溃并显示“窗口数超过最大 300”

    我看到我的日志软件中报告了此错误 但无法确定导致该错误的原因 或者 300 限制指的是什么 视图数或列表中可能显示的项目数 这就是我可以从日志中获取的全部内容 window count is over max 300 android vie
  • 用于具有转换的非导航应用程序的视图控制器/NIB 架构?

    我正在修补一个 iPad 应用程序 就像许多 iPad 应用程序一样 它不使用 UINavigation 根视图控制系统 因此我没有每个应用程序 视图 的自然所有权 我基本上有两个基本视图 文档列表视图和文档编辑视图 我正在使用 UIVie
  • 长多字节 NOP:通常理解的宏或其他符号

    x86 和 x86 64 处理器不仅具有单字节 这不是什么大秘密NOP指令 还包括各种类型的多字节类 NOP 指令 这些是我设法找到的 AMD 推荐 参考 AMD 系列 15h 处理器的 AMD 软件优化指南 文档 47414 http s
  • JVisualVM/JConsole 中的 System.gc() 与 GC 按钮

    我目前正在测试处理 XML 模式的概念验证原型 并围绕一个非常消耗内存的树自动机外部库 我已经获得了源代码 构建 我想绘制 真实峰值 堆 随着模式大小的增加 不同运行的内存消耗 使用的指标符合我的目的并且不会影响问题 或者至少是它的合理近似
  • Objective-C:int值无故改变

    Objective C 我需要帮助保留 int 的值 无需我的命令 它就在我身上发生变化 最初的问题是 如何声明和保留 int 这在另一篇文章中得到了满足 Objective C 如何声明和保留 int https stackoverflo
  • 在 C 中复制两个相邻字节的最快方法是什么?

    好吧 让我们从最明显的解决方案开始 memcpy Ptr const char a b 2 调用库函数的开销相当大 编译器有时不会优化它 我不会依赖编译器优化 但即使 GCC 很聪明 如果我将程序移植到带有垃圾编译器的更奇特的平台上 我也不
  • 从类模板参数为 asm 生成唯一的字符串文字

    我有一个非常特殊的情况 我需要为类模板中声明的变量生成唯一的汇编程序名称 我需要该名称对于类模板的每个实例都是唯一的 并且我需要将其传递给asm关键字 see here https gcc gnu org onlinedocs gcc 12

随机推荐

  • 角度,指令中,向模板添加带有 ng 模型的元素

    我正在尝试在指令中添加带有 ng model 的输入元素 my code http jsfiddle net Ajsy7 1 我的指令的链接功能 link function scope element attrs var elem 0 an
  • 读取/解密加密的XML文件,然后进行内部处理

    我过去曾使用此代码来写入和读取 xml 文件 这次我想编写一些加密的生成的 XML 然后读取它并在内部处理它 我将发布代码 也许有人可以发现问题 当我测试解密时 我已经能够输出一个具有连续行空字符代码的文件 加密文件似乎包含数据 并且随着数
  • 如何在 Windows 上将 svn 存储库转换为 git

    我们有远程 svn 存储库 我们希望将其转换为 git 你能告诉我如何在 Windows 上做到这一点吗 感谢 在 Windows 上安装应用程序 适用于 Windows 的 Git https github com git for win
  • 如何在 Windows 8.1 x64 上安装 VB6 SP6?

    需要直接在最新的操作系统中支持一些旧项目 而不是在虚拟机中 我已成功从 VS6 磁盘 1 安装了 VB6 但无法为此开发环境安装 SP6 当我启动它时 会出现一个信息窗口 通知我安装进度几毫秒 但系统文件夹中所需的文件 ADVPACK DL
  • 如何限制角度 $q 承诺并发?

    我该怎么做 q all但限制同时执行的承诺数量 我的问题就像如何限制 Q Promise 并发数 https stackoverflow com q 20546373 135114 我希望一次生成的进程不超过 5 个 另一个问题的公认答案是
  • Google Charts API:在图例单击上显示/隐藏系列。如何?

    我在网上找到了以下代码 并希望将其改编为我现有的代码 这是显示 隐藏数据系列的代码点击我发现 http jsfiddle net asgallant 6gz2Q http jsfiddle net asgallant 6gz2Q 到目前为止
  • 安卓、摇篮。如何开始具体的仪器测试方法?

    当我想启动特定的本地单元测试 在文件夹 test 中 时 我开始 Dev是构建类型 gradlew testDevUnitTest tests com example StringUtilTest testMethod 好的 是工作 但我也
  • “添加新约束”复选框和字段被禁用

    我有一个项目正在从 Xcode 4 6 3 升级到 Xcode 6 1 1 我在 Xcode 6 1 1 中打开它 并打开每个 xib 每个 xib 的格式按预期更改 我想尝试使用自动布局 选中 使用自动布局 和 使用尺寸类别 我将每个适当
  • HTML 表单回发后隐藏字段不会更新

    Html HiddenFor model gt model JobIndicator 提交页面后 JobIndicator 的值不会刷新 当我将其显示在显示字段中时 我可以看到该值正在更新 将其放入您的控制器中 ModelState Rem
  • SQLAlchemy 中的 contains_eager 和限制

    我有两节课 class A Base id Column Integer primary key True name Column String children relationship B class B Base id Column
  • 使用 Spark 运行纱线不适用于 Java 8

    我的集群有 1 个主节点和 6 个从节点 它使用预构建版本的 hadoop 2 6 0 和 Spark 1 6 2 我在所有节点上安装 openjdk 7 时运行 hadoop MR 和 Spark 作业 没有任何问题 但是 当我在所有节点
  • sfinae 使用 decltype 检查静态成员

    我编写了以下代码来尝试检测类型是否具有静态成员变量 不幸的是 它总是返回该变量不存在 有人能告诉我哪里出错了吗 我正在使用 g 4 7 1 include
  • VueJS - 使用 vue-test-utils 进行单元测试给出错误 - TypeError: _vm.$t 不是函数

    对于 Vuejs 来说相对较新并正在测试其组件 使用 vue test utils 和 jest 进行测试 出现以下错误test log https i stack imgur com rQejp jpg vue 文件由模板 组件和样式组成
  • 为什么在 golang 中仅初始化定义中的一个变量会失败

    在调用具有以下签名的库函数时 func New sql DB Sqlmock error 像这样 suite db suite mock err sqlmock New inside a suite method 我收到错误 expecte
  • 二值化图像中的单独交叉线段

    我有一些图像处理 允许我提取包含厚片段的二进制图像 并且我面临着这些片段可能相互交叉的问题 因此 我需要找到一种有效的方法来分离它们 我必须在 C 中实现它 这样任何基于 OpenCV 的东西都会有所帮助 这是一个示例输入图像 两个 斑点
  • gcc 是否有任何选项可以在 ELF 二进制文件中添加版本信息?

    我的意思是 gcc 是否可以将一些源代码版本信息作为部分或类似的内容插入到 ELF 二进制文件中 我不想更改我的源文件 但在 Makefile 中使用 gcc 选项添加一些信息 如果您不介意只更改源文件一次 请添加如下内容 const vo
  • 无异常的错误处理

    在搜索与业务规则验证相关的错误处理方法时 我遇到的只是结构化异常处理的示例 MSDN 和许多其他著名的开发资源都非常清楚地表明异常是不用于处理常规错误情况 它们仅用于特殊情况和由于程序员 而非用户 使用不当而可能发生的意外错误 在许多情况下
  • git squash 提交时保留作者信息

    我和我的同事 我们在这里称他为约翰 正在开发一个功能 我们的工作分支如下所示 o o o this is develop branch o o o this is John s branch o o o o o o o this is ou
  • 如何从 SQL Server 中的日期获取月份编号(而不是月份名称)?

    如何在sql中获取月份数 我使用以下代码 但它返回月份名称 SELECT DATENAME mm GETDATE 使用带有 m 扩展名的 datepart 函数 SELECT DATEPART m getdate
  • 内存映射 I/O 与端口映射 I/O [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi