
MIPS
文章平均质量分 79
myxmu
不积跬步无以至千里,不积小流无以成江海
展开
-
MIPS体系结构 Q & A
MIPS体系结构 Q & A Part 0x01 寄存器与内存访问 最近问我MIPS体系结构相关问题的人越来越多,在这里小结一下。 一般在职业有段者水平的MIPS体系结构问题,都能在这里找到答案。 1. Q: MIPS有多少一般用途的寄存器? A: 32个。 2. Q: 我在看反汇编代码的时候,看到一些寄存器名叫zero, a1, a2...还有sp, ra这样的名字。转载 2013-08-29 15:40:13 · 1723 阅读 · 1 评论 -
深入浅出MIPS 四 MIPS的异常与中断
MIPS的异常和中断,同其他体系结构,例如Intel的IA32架构下的中断/调用门/陷阱机制类似,其目的主要有三: 一,提供一个合法地从用户态到内核态的切换通道,使得程序能够访问如CP0、KSeg等平时被保护的资源; 二,处理一些非法的操作,如TLB Miss/Address Error等; 三,处理外部和内部的中断。与IA32架构区别的是,所有的中断均来自0号Exception。转载 2013-08-29 11:56:56 · 5329 阅读 · 0 评论 -
深入浅出MIPS 二 MIPS的内存映射 .
二 MIPS的内存映射 在32位MIPS体系结构下,最多可寻址4GB地址空间。这4GB空间的分配是怎样的呢?让我们看下面这张图:+----------------------------------------------+ | | 0xFFFFFFFF | | | | | Kernel Space Mapped Cached | | | | | 0xC0000转载 2013-08-29 14:20:55 · 1616 阅读 · 0 评论 -
mips一致性DMA映射、流式DMA映射的使用
一、流式DMA:1、一般的使用方法是:dma_buf = (void *)__get_free_pages(GFP_ATOMIC|GFP_DMA, get_order(s->fragsize));desc->snd_buffer = dma_buf;desc->snd_dma = dma_map_single(NULL, desc->snd_buffer, s->frags转载 2014-03-17 20:41:13 · 1388 阅读 · 0 评论 -
深入浅出MIPS 三 MIPS的协处理器CP0
在MIPS体系结构中,最多支持4个协处理器(Co-Processor)。其中,协处理器CP0是体系结构中必须实现的。它起到控制CPU的作用。MMU、异常处理、乘除法等功能,都依赖于协处理器CP0来实现。它是MIPS的精髓之一,也是打开MIPS特权级模式的大门。MIPS的CP0包含32个寄存器。关于它们的资料可以参照MIPS官方的资料MIPS32(R) Architecture For Pr转载 2013-08-29 12:51:24 · 4265 阅读 · 0 评论 -
内存未对齐导致性能降低及其处理
内存未对齐是指cpu要读取N字节数据,但数据的起始地址不能被N所整除,导致效率降低,甚至异常的出现。例如当cpu读取一个int类型的变量,而变量地址是0x10005的时候就产生未对齐访问。自然对齐: N字节的数据类型需要放在起始地址为被N整除的地址这称为自然对齐。并不是所有体系结构的计算机带都要求自然对齐,有的可以指定对齐方式。但是为了达到好的可移植性编写代码的时候最转载 2014-04-16 22:01:06 · 1865 阅读 · 0 评论