精华内容
下载资源
问答
  • 在CPU的寄存器中,()对用户是完全透明的。 A.程序计数器 B.指令寄存器 C.状态寄存器 D.通用寄存器 答案:【B】 解析: 首先,了解一下计算机网络对用户“透明”是什么意思? 1、“透明”一次在计算机领域通常是指...

    计算机系统知识

    在CPU的寄存器中,()对用户是完全透明的。
    A.程序计数器
    B.指令寄存器
    C.状态寄存器
    D.通用寄存器

    答案:【B】

    解析:

    首先,了解一下计算机网络对用户“透明”是什么意思?

    1、“透明”一次在计算机领域通常是指存在但不干预。即:计算机中存在的,但对于某些人员而言又不需要了解的东西,这就是计算机所指的透明性.简单的说就是:计算机中存在,但你不需要了解的.

    2、用户不需要关心具体的网络传输、网络控制、网络通讯、网络会话等,对用户来说就是透明的、不可见的。用户只需要使用即可。

    在计算机中,这里的"透明"(Transparency)是常用的一个专业术语,表示实际存在,但在某个角度看好像没有。

    正版解析:

    汇编程序员可以通过指定待执行指令的地址来设置PC(程序计数器)的值,状态寄存器、通用寄存器只有为汇编程序员可见,才能实现编程。而IR、MAR、MDR是CPU的内部工作寄存器,对程序员均不可见,所以它们被称为“透明”寄存器。
    展开全文
  • 指令寄存器

    2020-12-28 19:49:18
    指令寄存器(Instructions Register,IR )用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到数据寄存器(DR)中,然后再传送至IR。指令划分为操作码和地址码字...指令寄存器对用户是完全透明的 ...

    指令寄存器(Instructions Register,IR )用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到数据寄存器(DR)中,然后再传送至IR。指令划分为操作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。 指令译码器就是做这项工作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。

    指令寄存器对用户是完全透明的

    展开全文
  • 明确:不管是在用户空间还是在内核空间,软件一律不能去直接访问设备的物理地址;...这两个地址是不同的,mmu会帮你搞定,你是透明的。 对于一个系统来讲,会有很多的外设,那么这些外设的管理都是通过CP...

    明确:不管是在用户空间还是在内核空间,软件一律不能去直接访问设备物理地址

           linux的线程只能访问虚拟地址,不管是不是内核,ioremap应用,比如有个寄存器地址是0xe8000000你要用ioremap映射后,才能访问地址0xe8000000。这两个地址是不同的,mmu会帮你搞定,对你是透明的。

           对于一个系统来讲,会有很多的外设,那么这些外设的管理都是通过CPU完成。那么CPU在这个过程中是如何找到外设的呢?

          尽管在一个系统中会有诸多的外设,在每个外设的接口电路中会有多个端口。但是如果系统能够每个端口都被赋予一个具体的地址值,那么在系统中就能轻易的找到任何一个外设。系统在管理的时候,不管是内存还是外设都需要分配一个内存地址。对于一个32bit的系统来讲,可寻址的范围为2^32=4G的地址空间。

    既然说到地址空间,就要明确地址空间的种类:物理地址、总线地址、虚拟地址。

    (1)物理地址

            CPU地址总线传来的地址,由硬件电路控制其具体含义。物理地址中很大一部分是留给内存条中内存的,但也常被映射到其他存储器上(如显存、bios等)。在程序指令中的虚拟地址经过段映射和页面映射后,就生成了物理地址,这个物理地址被放到CPU的地址线上。

    (2)总线地址

           总线的地址线或在地址周期上产生的信号。外设使用的是地址总线,cpu使用的是物理地址。物理地址和总线地址之间的关系有系统设计决定的。在X86平台上,物理地址就是总线地址,这是因为它们共享相同的地址空间。在其他平台上,可能需要转换/映射。

    (3)虚拟地址

           现代操作系统普遍采用虚拟内存管理(virtual memory management)机制,这需要MMU的支持。MMU通常是CPU的一部分,如果处理器没有MMU,或者有MMU但没有启用,CPU执行单元发出的内存地址将直接传到芯片引脚上,被内存芯片(物理内存)接收,这成为物理地址,如果处理器启用了MMU,CPU执行单元发出的内存地址将被MMU截获,从CPU到MMU的地址称为虚拟地址,而MMU将这个地址翻译成另一个地址发到CPU芯片的外部地址引脚上,也就是讲虚拟地址映射成物理地址。

          linux中,进程的4GB内存分为用户空间和内核空间。用户空间分布为1~3GB剩下的1GB为内核空间。程序员只能使用虚拟地址。系统中每个进程有各自的私有用户控件(0~3GB),这个空间对系统中的其他进程是不可见的。
     

    根据CPU体系结构的不同,CPU对IO端口的编址方式有两种:

      (1)I/O映射方式(I/O-mapped)
      典型地,如X86处理器为外设专门实现了一个单独的地址空间,称为"I/O地址空间"或者"I/O端口空间",CPU通过专门的I/O指令(如X86的IN和OUT指令)来访问这一空间中的地址单元。
      (2)内存映射方式(Memory-mapped)
      RISC指令系统的CPU(如ARM、PowerPC等)通常只实现一个物理地址空间,外设I/O端口成为内存的一部分。此时,CPU可以象访问一个内存单元那样访问外设I/O端口,而不需要设立专门的外设I/O指令。
      但是,这两者在硬件实现上的差异对于软件来说是完全透明的,驱动程序开发人员可以将内存映射方式的I/O端口和外设内存统一看作是"I/O内存"资源。
     ,  一般来说,在系统运行时,外设的I/O内存资源的物理地址是已知的,由硬件的设计决定。但是CPU通常并没有为这些已知的外设I/O内存资源的物理地址预定义虚拟地址范围,驱动程序并不能直接通过物理地址访问I/O内存资源,而必须将它们映射到核心虚地址空间内(通过页表),然后才能根据映射所得到的核心虚地址范围,通过访内指令访问这些I/O内存资源。比如isa设备和pci设备,或者是fb,硬件的跳线或者是物理连接方式决定了硬件上的内存影射到的cpu物理地址。 在内核访问这些地址必须分配给这段内存以虚拟地址,这正是__ioremap的意义所在 ,需要注意的是,物理内存已经"存在"了,无需alloc page给这段地址了,为了使软件访问I/O内存,必须为设备分配虚拟地址.这就是ioremap的工作.这个函数专门用来为I/O内存区域分配虚拟地址(空间).对于直接映射的I/O地址ioremap不做任何事情。有了ioremap(和iounmap),设备就可以访问任何I/O内存空间,不论它是否直接映射到虚拟地址空间.但是,这些地址永远不能直接使用(指物理地址),而要用readb这种函数。

            使用I/O内存首先要申请,然后才能映射,使用I/O端口首先要申请,或者叫请求,对于I/O端口的请求意思是让内核知道你要访问这个端口,这样内核知道了以后它就不会再让别人也访问这个端口了.毕竟这个世界僧多粥少啊.申请I/O端口的函数是request_region, 申请I/O内存的函数是request_mem_region。request_mem_region函数并没有做实际性的映射工作,只是告诉内核要使用一块内存地址,声明占有,也方便内核管理这些资源。重要的还是ioremap函数,ioremap主要是检查传入地址的合法性,建立页表(包括访问权限),完成物理地址到虚拟地址的转换。

    编址方式

           外设都是通过读写设备上的寄存器来进行工作的,外设寄存器也称为“IO端口”,而IO端口的编址方式有两种,独立编址和统一编址。统一编址:外设接口中的IO寄存器(即IO端口)与主存单元一样看待,每个端口占用一个存储单元的地址,将主存的一部分划出来用作IO地址空间。 统一编址的原理是将IO的端口地址存储器寻址的地址空间范围之内,此方法也成为存储器映像编址。CPU访问一个端口的操作与访问内存的操作相同,也使用访问内存的指令。独立编址是为端口地址单独开辟一部分地址空间,其访问指令也需要使用单独的指令(不同于内存访问指令)。

     

    1、在内核驱动中如果要访问设备的物理地址(内核驱动访问设备地址),需要利用ioremap(I/O映射方式(I/O-mapped))将设备的物理地址映射到内核虚拟地址上(动态内存映射区),以后驱动程序访问这个内核虚拟地址就是在间接得访问设备的物理地址(MMU,TLB,TTW)

    void * __ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags) 
    入口: phys_addr:要映射的起始的IO地址; 
    
    size:要映射的空间的大小; 
    
    flags:要映射的IO空间的和权限有关的标志; 
    
    功能: 将一个IO地址空间映射到内核的虚拟地址空间上去,便于访问;

    2、如果用户要访问硬件设备不能直接访问,也不能在用户空间访问,只能通过系统调用(open,close,read,write,ioctl)来访问映射好的内核虚拟地址,通过这种间接的访问来访问硬件设备,但是如果设计到数据的拷贝,还需要借助4个内存拷贝函数(strcpy,memcpy函数,memmove函数,strncpy函数)!

    通过以上的分析

           发现应用程序通过read,write,ioctl访问硬件设备,它们都要经过两次的数据拷贝一次用户空间和内核空间的数据拷贝另外一次是内核空间和硬件之间的数据拷贝,如果设备拷贝的数据量比较小,那么read,write,ioctl的两次数据拷贝的过程对系统的影响几乎可以忽略不计,如果设备的数据量非常大,例如显卡(独立),LCD屏幕(显存共享主存),摄像头,声卡这类设备涉及的数据量比较庞大,如果还是用read,write,ioctl进行访问设备数据,无形对系统的性能影响非常大。用户访问设备最终其实涉及的用户和硬件read,write,ioctl本身会牵扯到内核,所以这些函数涉及2次的数据拷贝。

    用户要直接去访问硬件设备,只需要将硬件设备的物理地址信息映射到用户的虚拟地址空间即可,一旦完毕,不会在牵扯到内核空间,以后用户直接访问用户的虚拟地址就是在访问设备硬件,由2次的数据拷贝的转换为一次的数据拷贝。

    mmap()目的硬件物理地址映射到用户虚拟地址空间,由2次数据拷贝变成1次数据拷贝!

    #include <sys/mman.h>
    void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);
    int munmap(void *addr, size_t length);
    
    addr:如果不为NULL,内核会在此地址创建映射;否则,内核会选择一个合适的虚拟地址。大部分情况不指定虚拟地址,意义不大,而是让内核选择返回一个地址给用户空间使用。
    length:表示映射到进程地址空间的大小。
    prot:内存区域的读/写/执行属性。
    flags:内存映射的属性,共享、私有、匿名、文件等。
    fd:表示这是一个文件映射,fd是打开文件的句柄。如果是文件映射,需要指定fd;匿名映射就指定一个特殊的-1。
    offset:在文件映射时,表示相对文件头的偏移量;返回的地址是偏移量对应的虚拟地址

     



    ————————————————
    版权声明:本文为CSDN博主「野-百-合」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/codectq/article/details/25658813

    展开全文
  • 本方案是采用博通(BEKEN)BK2411 2.4G无线收发...既不需要做任何额外的工作,只需要加上电源就能够实现其最基本的功能,不需要客户去慢慢研究复杂的RF芯片的寄存器配置及指令数据的读写,完完全全做到数据的透明传输。
  • 2. 基本硬件系统:运算器(算术逻辑单元,累加寄存器(暂存用户数据),数据缓冲寄存器,状态条件寄存器),控制器(指令寄存器(IR)(存放指令操作码和地址码,对用户完全透明),PC(程序员可访问),指令译码...

    考点:总线结构,可靠性,流水线,进制及各种码表示的整数范围,寻址方式,存储体系,磁盘计算,编址(页面地址),校验码

    0. 总线分为3类:数据,地址,控制 。   三总线结构 : CPU,内存,I/O

    1. CPU,存储器,I/O,三者串联。

    2. 基本硬件系统:运算器(算术逻辑单元,累加寄存器(暂存用户数据),数据缓冲寄存器,状态条件寄存器),控制器(指令寄存器(IR)(存放指令的操作码和地址码,对用户完全透明),PC(程序员可访问),指令译码器,地址寄存器,时序寄存器),存储器,输入输出。

    3. 存储体系:分为两层次:1)主存/外存:构成了虚拟存储器,由硬件和软件实现,不透明,利用地址变换。

     2)Cache/主存:Cache由硬件实现(还有DMA),透明,地址映像。

    相联存储器:按内容访问

    读取速度 : 通用寄存器 > Cache > 内存 > 硬盘·

    4. 可靠性:串联:R1*R2*R3       并联:1-(1-R1)*(1-R2)*(1-R3) 

    失效性:串联:(1-R1)+(1-R2)+(1-R3) 

    平均故障时间 = 故障数/(工作时间*工作机数)

    5. 进制:正数和正0的原码反码补码完全相同。

       原码(除符号位)逐位取反 = 反码     反码+1=补码  ,补码的符号位取反 = 移码 

    补码表示整数范围:-2^(n-1)~~+2^(n-1)-1    表示定点小数:-1~~1-2^(-n+1)

    补码用于简化运算及电路。

    6. 寻址方式: 立即寻址:操作数在指令中 (最快)

     直接寻址:操作数在内存,操作数地址在指令中

     寄存器寻址:操作数在寄存器

     寄存器间接寻址:操作数地址在寄存器

    7. 流水线:    各步骤时间相加 + (n- 1)*最长的步骤时间      或者       K*tj+(n-1)*tj     k为指令步骤数 ,tj为最长时间,n为指令数

    8. Cache: 由控制部分和缓存部分组成,查找由硬件自动完成,提高CUP 对主存的访问效率

    访问存储系统时间 = h* t1 + (1 - h )* t2   h为命中率,t1为Cache 周期,t2 为主存周期。

    映像方式:直接映射:主存中的一块------>Cache 一个确定块

      全相联映射: 主存中的任意------>Cache 任意

    块冲突 : 指Cache映射到相同内存块

    全相联映像 < 组相联 < 直接

    9. 编址: 容量为 2 ^(n)*r 的芯片,引出的地址线为 n ,数据线为 r 。

    物理地址 = 绝对页号 * 页面大小 + 页内地址  = 物理块号+ 页内地址

    逻辑地址 = 逻辑页号 + 页内地址

    页内地址: eg : 页面大小为4k , 2 ^(12) = 16^ (3),所以页内地址是3 位数 

    磁道数 =  (外半径- 内半径) * 道密度 * 记录面数 

    非格式化容量 = 位密度* Pi * 最内圈直径 * 磁道数

    格式化容量 = 每道扇区数 * 扇区容量 * 磁道数

    平均传输速率 = 每道扇区数 * 扇区容量 * 盘片转数 = 最内圈直径 * Pi * 位密度         (比较与容量的关系)

    10. 校验码 : 纠错1 位 :海明码 2 ^ (k) >= r + k +1r为数据位,k为校验位 ,通常求 k。

    11. 浮点数运算: 2 ^ (E)*F 阶数 E 为移码,长度表示范围,尾数 F 为原码,长度表示精度。

    对阶 : 对阶为较大阶,尾数右移(阶码之差的绝对值)

    12. 中断: 中断向量可提供中断服务程序的入口地址,多重中断时,断点保存在堆栈中。

    中断响应时间: 发出请求 ——>  开始处理

    可屏蔽中断:可响应/可不响应     eg : I/O设备断电,打印机中断

    不可屏蔽中断 : 必须响应   eg  :  电源掉电


    细碎知识点:

    1. 多CPU系统为MIMD

    2. 计算机的实现内存为1 MB ,若程序员可用的存储空间超过1 MB,则他所用地址为逻辑地址,实际访问的物理地址。

    3. 利用DMA  直接建立数据通路 : I/O设备 和 主存 。

    4. PCI 属于内总线


           



    展开全文
  • Wishbone 开放总线连接器允许在FPGA 上实现的逻辑模块可以透明的连接到各 种处理器上。引入了以FPGA 为目标的虚拟仪器,当其与LiveDesign-enabled 硬 件平台NanoBoard 结合时,用户可以快速、交互地实现和调试基于...
  • 软设复习资料

    2017-11-02 01:20:13
    2011(下)1.若某条无条件转移汇编指令采用直接寻址,则该指令的功能是将指令中的地址码送入 PC(程序计数器)。2.若某计算机系统的I/O接口...5.在CPU的寄存器中,指令寄存器对用户是完全透明。6.CPU中译码器的主要作用
  • 3.CPU的寄存器中,指令寄存器对用户是完全透明的。 4.CPU中译码器的主要作用是进行指令译码。 5.利用漏洞扫描系统可以获取FTP服务器中是否存在可写目录的信息。 6.通过内部发起连接与外部主机建立连接,由外部...
  • 计算机系统概论

    千次阅读 2020-02-23 15:07:18
    3.寄存器的数据位微程序级用户不是透明 4.软件与硬件具有逻辑功能等价性 5.计算机字长与运算精确度有关 6.CPU地址线数量与内存容量密切相关 7.低层用户对硬件的透明度比高层用户低 8.不同层次面对不同用户,...
  • 用户线程由线程库管理,内核是透明的。不支持线程(即不支持内核线程)的操作系统上只能用这种方式实现用户线程。 管理用户线程的方法: 线程库在管理线程时,要为用户线程所属的进程创建专用的线程表(存在于用户...
  • 华中科技大学计算机组成原理慕课答案

    万次阅读 多人点赞 2020-01-26 00:09:18
    寄存器的数据位微程序级用户透明 C.软件与硬件具有逻辑功能等效性 D.计算机系统层次结构中,微程序属于硬件级 2、完整计算机系统通常包括( A ) A.硬件系统与软件系统 B.运算器、控制器、存储器 C.主机...
  • 操作系统第三章测试

    千次阅读 2018-08-03 16:32:27
    1.设基址寄存器的内容为 1000,在采用动态重定位的系统...2.分页系统的页面是为 ( ) 所感知的, ( ) 是透明的用户/操作系统 操作系统/用户 编译系统/操作系统 连接装配程序/编译系统 [参考答案] 操作系统...
  • 计算机组成原理慕课网一二单元测试题

    万次阅读 多人点赞 2020-02-24 16:26:55
    寄存器的数据位微程序级用户透明 C.固件功能类似软件,形态类似硬件 D.计算机系统层次结构中,微程序属于硬件级 3.完整计算机系统通常包括:B A.运算器,控制器,存储器 B.硬件系统与软件系统 C.主机和应用软件 ...
  • 关于GPIO

    2015-03-21 17:04:04
    用户可以通过ARM上的寄存器操作实现响应硬件操作,这是开发者透明的。51单片机基本要代码一行一行实现操作,印象中的I2C协议就是如此。晚点回忆单片机再写好了,这里不影响理解。 GPIO,就是通用IO端口,说白...
  • ioremap和mmap

    2017-05-15 22:51:11
    ioremap是将物理地址转换为虚拟地址 mmap是将设备内存线性地址映射到用户地址空间 ...这两个地址是不同的,mmu会帮你搞定,你是透明的 mmap在内核我用过ops中的mmap方法 我写过一个例程,见附件。里面还有用
  • 测试说明 测试模块数:3 ...用户可通过串口对寄存器进行访问,从而控制模块工作状态 - 3 深度休眠 1 1 模块进入休眠 - 配置模块(进入配置模式) 用安卓数据线连接模块后 打开官方提供配置软件Configur
  • 13.3.2 在用户态通过DLL使用通信端口范例 311 13.4 Minifilter安装与加载 314 13.4.1 安装MinifilterINF文件 314 13.4.2 启动安装完成Minifilter 316 第14章 网络传输层过滤 317 14.1 TDI概要 317 ...
  • 13.3.2 在用户态通过DLL使用通信端口范例 311 13.4 Minifilter安装与加载 314 13.4.1 安装MinifilterINF文件 314 13.4.2 启动安装完成Minifilter 316 第14章 网络传输层过滤 317 14.1 TDI概要 317 ...
  • 用户作用:用于保存用户进程子程序间相互调用参数、返回值、返回点、以及子程序局部变量。9. 用户堆栈段长度为何无法确定 ? 答:用户堆栈段长度主要取决于两个因素:(1)用户进程(线程)中子程序...
  • 计算机组成原理课后参考答案

    热门讨论 2012-05-01 21:49:31
    计算机组成是指如何实现计算机体系结构所体现的属性,它包含了许多程序员来说是透明的(即程序员不知道的)硬件细节。例如一台机器是否具备乘法指令是一个结构问题,而实现乘法指令采用什么方式是一个组成问题。 ...
  • 新版Android开发教程.rar

    千次下载 热门讨论 2010-12-14 15:49:11
    � 采用了有限内存、电池和 CPU 优化过虚拟机 Dalvik , Android 运行速度比想象要快很多。 � 运营商(中国移动等)大力支持,产业链条热捧。 � 良好盈利模式( 3/7 开),产业链条各方:运营商、...
  • 自定义数据表示包括标志符数据表示和______两类, 标志符应由编绎程序建立, ______ 程序透明,以减轻应用程序员负担。 三、简答题(本大题共 5 小题,每小题 6 分,共 30 分) 简答题 本大题共 小题, 21.简述...
  • GPRS通用分组无线业务

    热门讨论 2012-08-03 21:14:49
    4.4 MSC和位置寄存器的识别 4.4.1 用于路由选择识别 4.4.2 HLR识别 4.4.3 GSN地址 4.5 国际移动台设备识别码和软件版本号 4.5.1 IMEI与IMEISV组成 4.5.2 分配原理 4.6 SCCP子系统号码 4.6.1 GSM使用...
  • 实例113 使用指向指针指针字符串排序 实例114 分解字符串中单词 3.3 数组 实例115 向数组中赋值 实例116 遍历数组 实例117 求数组中元素平均和 实例118 数组排序 实例119 向数组中插入元素 实例...
  • 实例113 使用指向指针指针字符串排序 实例114 分解字符串中单词 3.3 数组 实例115 向数组中赋值 实例116 遍历数组 实例117 求数组中元素平均和 实例118 数组排序 实例119 向数组中插入元素 实例...
  • 8.汇编语言程序员,下列(A)不是透明的。 A. 中断字寄存器 B.乘法器 C. 移位器 D.指令缓冲器 9.在采用基准测试程序来测试评价机器的性能时,下列方法按照评价准确性递增的顺序排列是(B )。(1)实际的应用程序...

空空如也

空空如也

1 2
收藏数 26
精华内容 10
关键字:

对用户透明的寄存器