計算機組成原理:I/O

計算機組成:I/O

  • I/O概述
    • I/O系統構成
    • I/O接口
    • I/O端口
      • 兩種編址區分
  • I/O數據傳送控制方式
    • 程序查詢方式
      • 獨占查詢
    • 中斷控制方式
      • 硬件判優法(向量中斷法)
      • 多重中斷嵌套
    • DMA控制方式
      • 三種DMA方式
      • DMA操作步驟
  • 內部異常和中斷
    • 異常和中斷的關系

I/O概述

在這里插入圖片描述

I/O系統構成

在這里插入圖片描述
一個最基礎I/O系統的構成:CPU、I/O接口、硬件(鼠標)。

最主要學習:一個硬件、兩個模型,硬件就是指I/O接口,兩個模型,一個是中斷模型:外設與CPU;另一個是DMA模型:外設與內存(磁盤與主存)。

上面的圖里,一個I/O接口對應了不同的外設,這種結構也是可能有的,外設是同樣的外設,例如:好多個打印機。但是408考的應該是一個外設對應一個I/O接口。

I/O接口

在這里插入圖片描述例如打印機和I/O接口,打印機肯定有自己的時鐘,并不是受到CPU控制的,所以為異步方式。

  1. I/O接口組成
    在這里插入圖片描述
    例子:計算機與打印機相連,計算機發送一個“開始打印”的命令給打印機,這條指令實際上是由一串二進制代碼構成的,通過數據線傳入到狀態/控制寄存器中。隨即I/O接口進行譯碼,將譯碼以后的控制信號發送給外設控制邏輯。
    地址譯碼和I/O控制: 用于對要訪問的I/O寄存器號進行譯碼,對于控制字譯碼生成控制信號。
    控制線: 傳輸讀/寫的命令;并且CPU和外設是異步方式,控制線上還會傳輸握手信號、寄存器清0等。

問題:控制線是可以雙向傳輸的么?答案:是的,CPU給它發命令,它給CPU發中斷信號。

  1. 舉個栗子
    在這里插入圖片描述
  • 問題1:地址線上傳送的是打印機的編址?
    非也,408內基本上是一個外設對應一個I/O接口,那么CPU選擇外設是通過傳送不同的I/O接口中的端口地址來“間接選擇”的。
  • 命令字就是控制指令,不是指我們IR中的指令吧?
    不是捏,但是有點兒像思密達。

詳解“狀態字”: 類似PSW內的狀態信息,包含的內容有:是否已經開機啊,是否有紙張啊,是否有墨水啊。

I/O端口

I/O接口又名“設備控制器”,I/O端口就是I/O接口中的寄存器,例如:數據緩沖寄存器、控制/狀態寄存器。CPU編址是對I/O接口中的寄存器進行編址。
在這里插入圖片描述

  1. 統一編址
    在這里插入圖片描述
    在這里插入圖片描述
  2. 獨立編址
    在這里插入圖片描述
    獨立編址下,就不能用load/store指令進行訪問外設,而必須用專門的輸入/輸出指令訪問I/O端

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/83043.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/83043.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/83043.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ssti模板注入學習

ssti模板注入原理 ssti模板注入是一種基于服務器的模板引擎的特性和漏洞產生的一種漏洞,通過將而已代碼注入模板中實現的服務器的攻擊 模板引擎 為什么要有模板引擎 在web開發中,為了使用戶界面與業務數據(內容)分離而產生的&…

NVMe簡介2

共分2部分,這里是第2部分。 NVMe數據結構 NVMe協議中規定每個提交命令的大小為64字節,完成命令大小為16字節,NVMe命令分為Admin和IO兩類,NVMe的數據塊組織方式有PRP和SGL兩種。提交命令的格式如圖5所示。 圖5 提交命令數據格 N…

高壓啟動電路--學習記錄

常見反激的啟動電路 優點:電路設計簡單,價格便宜 缺點:損壞大,輸入寬范圍的時候,為了保證低壓能正常啟動,啟動電阻阻值需要選小,那么高壓時損耗會非常大,設計的不好很容易在高壓時損…

VS打印printf、cout或者Qt的qDebug等傳出的打印信息

在vs中打印printf、cout或者Qt的qDebug等常見的打印信息有時也是必要的,簡單的敘述一下過程: 1、在vs中打開你的解決方案。 2、鼠標移動到你的項目名稱上,點擊鼠標右鍵,再點擊屬性,此刻會此項目的屬性頁。 3、在配置…

蒼穹外賣--新增菜品

1.需求分析和設計 產品原型 業務規則: 菜品名稱必須是唯一的 菜品必須屬于某個分類下,不能單獨存在 新增菜品時可以根據情況選擇菜品的口味 每個菜品必須對應一張圖片 接口設計: 根據類型查詢分類(已完成) 文件上傳 新增菜品 根據類型…

如何高效集成MySQL數據到金蝶云星空

MySQL數據集成到金蝶云星空:SC采購入庫-深圳天一-OK案例分享 在企業信息化建設中,數據的高效流轉和準確對接是實現業務流程自動化的關鍵。本文將聚焦于一個具體的系統對接集成案例——“SC采購入庫-深圳天一-OK”,詳細探討如何通過輕易云數據…

【springcloud學習(dalston.sr1)】使用Feign實現接口調用(八)

該系列項目整體介紹及源代碼請參照前面寫的一篇文章【springcloud學習(dalston.sr1)】項目整體介紹(含源代碼)(一) (一)Feign的理解 前面文章【springcloud學習(dalston.sr1)】服務消費者通過restTemplat…

SpringbBoot nginx代理獲取用戶真實IP

為了演示多級代理場景,我們分配了以下服務器資源: 10.1.9.98:充當客戶端10.0.3.137:一級代理10.0.4.105:二級代理10.0.4.129:三級代理10.0.4.120:服務器端 各級代理配置 以下是各級代理的基本配…

實驗九視圖索引

設計性實驗 1. 創建視圖V_A包括學號,姓名,性別,課程號,課程名、成績; 一個語句把學號103 課程號3-105 的姓名改為陸君茹1,性別為女 ,然后查看學生表的信息變化,再把上述數據改為原…

typeof運算符和深拷貝

typeof運算符 識別所有值類型識別函數判斷是否是引用類型(不可再細分) //判斷所有值類型 let a; typeof a //undefined const strabc; typeof str //string const n100; typeof n //number const …

NAT/代理服務器/內網穿透

目錄 一 NAT技術 二 內網穿透/內網打洞 三 代理服務器 一 NAT技術 跨網絡傳輸的時候,私網不能直接訪問公網,就引入了NAT能講私網轉換為公網進行訪問,主要解決IPv4(2^32)地址不足的問題。 1. NAT原理 當某個內網想訪問公網,就必…

Git的安裝和配置(idea中配置Git)

一、Git的下載和安裝 前提條件:IntelliJ IDEA 版本是2023.3 ,那么配置 Git 時推薦使用 Git 2.40.x 或更高版本 下載地址:CNPM Binaries Mirror 操作:打開鏈接 → 滾動到頁面底部 → 選擇2.40.x或更高版本的 .exe 文件&#xf…

【教程】Docker更換存儲位置

轉載請注明出處:小鋒學長生活大爆炸[xfxuezhagn.cn] 如果本文幫助到了你,歡迎[點贊、收藏、關注]哦~ 目錄 背景說明 更換教程 1. 停止 Docker 服務 2. 創建新的存儲目錄 3. 編輯 Docker 配置文件 4. 遷移已有數據到新位置 5. 啟動 Docker 服務 6…

PostgreSQL 配置設置函數

PostgreSQL 配置設置函數 PostgreSQL 提供了一組配置設置函數(Configuration Settings Functions),用于查詢和修改數據庫服務器的運行時配置參數。這些函數為數據庫管理員提供了動態管理數據庫配置的能力,無需重啟數據庫服務。 …

sql server 2019 將單用戶狀態修改為多用戶狀態

記錄兩種將單用戶狀態修改為多用戶狀態,我曾經成功過的方法,供參考 第一種方法 USE master; GO -- 終止所有活動連接 DECLARE kill_connections NVARCHAR(MAX) ; SELECT kill_connections KILL CAST(session_id AS NVARCHAR(10)) ; FROM sys.dm_ex…

主機A向主機B發送一個長度為L字節的文件,假設TCP的MSS為1460字節,則在TCP的序號不重復使用的前提下,L的最大值是多少?

📘題干回顧: 主機A向主機B發送一個長度為L字節的文件,假設TCP的MSS為1460字節,則在TCP的序號不重復使用的前提下,L的最大值是多少? 這個問題關鍵在于“TCP序號不重復使用”。 ? 正確答案是:D.…

一次因校時服務器異常引起的性能差異分析

一次因校時服務器異常引起的性能差異分析 一.背景知識1. **TSC 頻率**:硬件級高精度計時2. **gettimeofday**:用戶態時間接口3. **adjtimex**:系統時鐘的軟件校準4. **`clock_adjtime(CLOCK_REALTIME, {modes=ADJ_TICK})`**: 用于修改系統時鐘中斷間隔(`tick` 值)。5. 關系…

acwing 4275. Dijkstra序列

題目背景 輸入 輸出 完整代碼 #include<bits/stdc.h> using namespace std; int n,m,k,a[1010],dist[1010],g[1010][1010],st[1010];int dij(int u){memset(st,0,sizeof st);memset(dist,0x3f,sizeof dist);dist[u]0;for(int i0;i<n;i){int ta[i];for(int j1;j<n;…

[思維模式-37]:什么是事?什么是物?什么事物?如何通過數學的方法闡述事物?

一、基本概念 1、事&#xff08;Event) “事”通常指的是人類在社會生活中的各種活動、行為、事件或情況&#xff0c;具有動態性和過程性&#xff0c;強調的是一種變化、發展或相互作用的流程。 特點 動態性&#xff1a;“事”往往涉及一系列的動作、變化和發展過程。例如&a…

Linux常用命令40——alias設置命令別名

在使用Linux或macOS日常開發中&#xff0c;熟悉一些基本的命令有助于提高工作效率&#xff0c;alias命令來自英文單詞alias&#xff0c;中文譯為“別名”&#xff0c;其功能是設置命令別名信息。我們可以使用alias將一些較長的命令進行簡寫&#xff0c;往往幾十個字符的命令會變…