memory-mapping

    0热度

    1回答

    好的,这里是我的意思: 假设你想编写自己的可启动代码。 此外,您的代码将非常简单。 这么简单,实际上它只包含一条指令。 您的可启动代码将写入一个字节或字或双字或任何内容到外围设备上的寄存器或RAM位置,而不是主RAM或CPU寄存器。 你如何知道BIOS/UEFI分配给外设存储单元的地址? 这里有一个更具体的例子: 我的引导代码的第一个也是唯一指令将数11H写到位于声卡上的寄存器。 如果BIOS/U

    -1热度

    1回答

    编辑:如果你想downvote,请解释为什么请。不帮助任何人。 我真的很想了解如何正确使用内存映射文件,但我遇到了一些问题。这里的场景: 我有一些大文件,从1-10 GB的任何地方。这些文件由structs组成,除文件的第一个外,全部128字节。 我需要对这些结构中的任何一个进行快速的随机访问,从我读的是内存映射文件是完美的。我也需要这些内存映射文件能够被其他进程打开,但不会有任何写入,只是读取文

    0热度

    1回答

    我正在读取一个50 GB的文件(只读)使用多个线程,每个线程从文件中读取一个连续的段。我试图使用FileChannel 使用从FileChannel 获得MemoryMappedBuffer我期待MemoryMappedBuffer跑赢FileChannel但FileChannel执行约30%更好始终两种方法 。 我正在寻找解释。 我是一次一GB的内存映射,一旦我用完,我映射另一个1 GB。 我的

    0热度

    1回答

    我对X86-64体系结构中的4级页面布局感到困惑。在Linux的源代码实现,他们使用: PGD(页全局目录) - > PUD(页上级目录) - > PMD(页介质目录) - > PTE 不过,我也发现另外四个级的页面布局来回回X86体系结构: PML4(L4) - > PDP(L3) - > PD(L2) - > PTE(L1) 那么,有没有任何人知道的差这两个页面布局之间?我可以将PML4视为与

    1热度

    1回答

    调试在simics-x86-core-i7-x58-ich10目标上运行的内核时,如何打印物理内存映射? memory-map似乎只打印对象(ram,apic,vga等)的物理内存空间映射。 l2p打印特定逻辑地址的映射,而不是所有的映射。

    1热度

    2回答

    这是一个关于记忆的组织问题,我不得不非常难以理解, 假设我们有N路组相联缓存,容量4096字节。设置的地址字段大小为7位,标记字段为21位。如果我们假设 高速缓存与32位处理器一起使用,那么块大小是多少(在 字节中),高速缓存包含多少个有效位,以及高速缓存的相关性是多少?

    3热度

    1回答

    我正在使用OpenCL来做一些图像处理,并且想用它将RGBA图像直接写入framebuffer。工作流程如下所示: 1)将framebuffer映射到用户空间。 2)创建使用clCreateBuffer用 “CL_MEM_ALLOC_HOST_PTR” 3)的标志的OpenCL缓冲器使用clEnqueueMapBuffer映射结果的帧缓冲器。 但是,它不起作用。屏幕上没有任何东西。然后我发现来自帧

    0热度

    1回答

    为什么elf的入口点是0x8048320.从This问题来看,它是操作系统内核用来映射进程的虚拟地址。但,进程映射(在x86处理器中)的虚拟地址为0xc0000000(用户空间较低,3GB,内核空间较高,1GB)。现在这个0x8048320起点地址背后的理论是什么。它不应该是0c0000000h ?? 问候,

    0热度

    1回答

    我在Windows 10(64位)中编写了一个内核模式驱动程序,其主要目的是从DMA读取,而且我想知道如果不是将内存块从内核空间复制到用户空间中分配的缓冲区,我可以以某种方式将地址暴露给用户空间(当然不是物理地址),并保存在内存复制操作中。 也许是这样的: 分配的连续物理存储器块(和在内核空间映射物理地址和虚拟地址)。 将内核空间中的虚拟地址映射到用户空间中的虚拟地址。 顺便说一句,因为,因为在系

    2热度

    1回答

    我试图创建用c的存储器映射命令 void* mem_map = mmap(NULL, sizeof(serverData), //200000 PROT_READ | PROT_WRITE, MAP_SHARED, mem_map_fp, 0); if(mem_map == MAP_F