MIPS32

北京君正智能视频“芯”产品T20

去年北京君正推出了智能视频芯片T10,凭借高性能、低功耗等特性获得了市场广泛认可。日前,北京君正再推出第二代智能视频芯片产品T20。

普及型300万像素编码处理器
• 专业级成像ISP,微光夜视
• Smart H.264编码引擎,超低码流控制
• 高性能计算平台,视觉智能分析
• 领先的低功耗技术

芯片框图

芯片规格

T20 Medlar开发板

CPU空操作的原理是什么?

来源: http://www.tuicool.com/articles/YJfqUjV

最近在利用空余时间写一个兼容MIPS32指令集架构的CPU,尽管它和Intel的不同,但MIPS对nop指令的处理方式可以给你一点启发。

首先上过计算机体系结构课的你一定知道,现代CPU都采用流水线结构。在一个简单的五级流水的MIPS32处理器中,五级流水分别实现的逻辑操作是: 取指、译码、执行、访存、回写 。

CPU空操作的原理是什么?

(图片来自网络,侵删)

在取指阶段,cpu从内存中代码区读取指令,然后将其送入译码阶段进行译码。那么译码阶段做了什么呢?要了解这一点,我们先来看看指令本身长什么样子,以移位操作指令sll为例,其在汇编语言中的用法为:

sll rd, rt, sa

意思是将地址为rt的通用寄存器的值向左移sa位(空出来的位置用0填充),得到的结果保存到地址为rd的通用寄存器中。(寄存器在上面那张图中就是译码阶段上方的那个“Register file”方块)

MIPS M6200是32位M级CPU设计,用于运行实时操作系统的微控制器和嵌入式设备。处理器包括SRAM控制器及64位指令和数据存储器接口。

详阅请点击下载:
《MIPS32®M6200处理器核心系列程序员指南》
《MIPS32®M6200 Datasheet》

专访炬芯蓝牙音频产品总监:对声音体验的无限追求

随着物联网智能家居时代的到来和人们越来越多的对无线音频的青睐,蓝牙从一度被忽视的沉寂中大肆崛起,蓝牙音频作为蓝牙的主力军,更是迎来了爆发的第二春。纵观2016年,蓝牙音频市场可谓是风起云涌,蓝牙立足风口,以乘风破浪之势席卷整个音频领域,蓝牙音频产品如雨后春笋般不断冒泡。然而随之而来的乱象:产品鱼龙混杂、品牌多样化、价格两极化、等问题频现,甚至继续细分蓝牙市场,针对不同需求的消费人群打造个性化产品也是成了一种新趋势。

蓝牙刚刚开始,炬芯全面市场布局

【技术参考手册】MIPS32架构: MIPS16e2应用程序特定扩展

本章介绍了MIPS32®架构的MIPS16e2™特定应用扩展(ASE)的目的和主要特性。 MIPS16e2 ASE是对之前 MIPS16e™ASE的增强,它提供了额外的指令来提高代码的压缩性和整体性能。

详阅请点击下载《MIPS32架构: MIPS16e2应用程序特定扩展》

精彩专辑《MIPS处理器》阅读同主题信息。

淘了一块联发科 Linkit 7688 DUO 开发板(99元)。 这是一块物联网开发板,基于联发科 Linkit 7688芯片、同时兼容Arduino. 内置OpenWrt系统、支持Wifi联网,用于开发智能路由器、智能物体等。

上手过程,记录一下

开发板做得很精致:

 Linkit 7688 DUO

1, 首先去官网, 学一下入门教程:
7688官网入口如下:
https://labs.mediatek.com/site/znch/developer_tools/mediatek_linkit_smar...

进入“入门”, 教程写得很详细: 准备硬件及软件、开发板上电、登录WebUI设密码、设置Wifi, 连入互联网, 电脑SSH登入。。。

官网写得很好,过程也不难,这里不重复了

kmalloc/kzalloc 直接分配连续的物理地址(虚拟地址也是连续的),mips32架构中分配的是kseg0的低256M地址(0x80000000),不经过TLB的,访问时直接将虚拟地址的的高三bit清0就能得到物理地址.

vmalloc 分配的地址连续的虚拟地址,但是物理地址不一定连续,这段虚拟地址是经过页表转换(TLB)的,mips32架构中分配的是kseg2和kseg3中的地址,经过TLB.需要额外注意,vmalloc分配的地址是对所有进程可见的.

malloc是用户空间申请内存的方法,分配的地址是虚拟地址连续,物理地址一般不会连续,通过系统调用sys_brk来实现,sys_brk分配的地址是经过TLB的,mips32架构中分配的useg/kuseg的地址.

sys_brk和vmalloc分配的区别是sys_brk分配的仅仅是一个虚拟的空间vma,在分配时并没有做实际物理页的分配动作,实际分配物理页的动作是在do_page_fault异常处理中完成的,而vmalloc分配内存时不仅仅分配了虚拟空间vma,并且还分配了实际的物理页,不过这个物理页是和在公共的页表进行了映射,并没有在本进程的页表进行映射.所以当访问这段vma时,触发的do_page_fault异常处理在实际上完成了页表的同步工作.

结合Linux的应用场景看MIPS32架构之内存管理

由于本系列文档在介绍过程中,参考了很多MIPS官方,以及北京君正(Ingenic)的xburst系列处理器的资料,目的仅仅是为拓展MIPS架构以及Linux进自己的绵薄之力,如果有侵权行为时,请告知本人处理,谢谢

1 MIPS32的内存管理

1.1 引子

谈论一个话题,总得有个头儿,我们从哪里开始呢?MIPS官方文档和《See MIPS Run Linux》介绍MIPS架构是按照一个模块一个模块进行介绍,每一个模块独立成一个部分,这个是最快的也是最合理的介绍方式,不过没有操作系统的原理作为基础,看过这些文档或者书籍还是不能对MIPS架构有深入的理解。这里我不打算按照这种方式把官方文档再翻译一遍,而是换种思路来聊聊MIPS32的CPU架构.

大部分人编程生涯的入门都是从C语言开始的,在没有接触过计算机体系结构之前的C语言仅仅是停留在语言的层面,对于编程语言是如何控制计算机的没有深入的了解(至于其他高级语言,比如Java,Python等等,对于计算机运行程序的原理就更加偏远了)。所以我们就从最简单的一个C语言代码开始谈起,看看下面一段代码

1 int c;
2
3 int main(int argc, char *argv[])
4 {

【资料下载】MIPS Classic处理器内核之MIPS32 24K

MIPS Classic内核着眼于嵌入式设计、数字消费类产品、宽带接入、网络以及先进通信领域中从入门级到高性能级的每项设计需求。

MIPS32 24K介绍

MIPS32 24K是一种采用MIPS32版本2架构的8级流水线处理器内核,其中包括支持动态分支预测、可选MIPS DSP模块、MIPS16e指令集架构和可编程一级缓存控制器。

24K包括一个OCP总线接口单元,同时提供EJTAG调试和MIPS跟踪支持。处理器内核可提供1.6 DMIPS/MHz和3.1 Coremarks/MHz的优异性能。24Kf版包括一个支持单精度和双精度数据类型且符合IEEE754标准的浮点单元。

请点击后面链接下载相关文档:

【资料下载】MIPS Classic处理器内核之MIPS32 M14K/c

MIPS Classic内核着眼于嵌入式设计、数字消费类产品、宽带接入、网络以及先进通信领域中从入门级到高性能级的每项设计需求。

MIPS32 M14K/c介绍

MIPS32 M14K内核系列采用高性能紧凑型低功耗设计,并带有各项经过优化的功能,从而为微控制器 (MCU) 和即时嵌入式系统应用程序提供卓越的解决方案。MIPS32 M14K™系列包括MIPS32 M14K和MIPS32 M14Kc处理器内核,这是首批执行新microMIPS™代码压缩指令集架构 (ISA) 的MIPS32兼容处理器内核。

M14K内核包括即时性能、闪存加速、更短的中断等待时间、顶级MCU设计所要求的功能。内核包括可编程指令、数据缓存控制器和转译后备缓冲器内存管理单元 (TLB MMU),实现Linux及其他虚拟存储操作系统的高性能执行。M14K处理器内核可提供1.57 DMIPS/MHz和3.4 Coremarks/MHz的优异性能。

请点击后面链接下载相关文档:

同步内容
--电子创新网--
粤ICP备12070055号